sensor_data
int64_t opal_sensor_read(uint32_t sensor_hndl, int token, __be32 *sensor_data);
int64_t opal_sensor_read_u64(u32 sensor_hndl, int token, __be64 *sensor_data);
extern int opal_get_sensor_data(u32 sensor_hndl, u32 *sensor_data);
extern int opal_get_sensor_data_u64(u32 sensor_hndl, u64 *sensor_data);
int opal_get_sensor_data(u32 sensor_hndl, u32 *sensor_data)
*sensor_data = be32_to_cpu(data);
*sensor_data = be32_to_cpu(data);
int opal_get_sensor_data_u64(u32 sensor_hndl, u64 *sensor_data)
*sensor_data = sdata;
*sensor_data = be64_to_cpu(data);
*sensor_data = be64_to_cpu(data);
static int asus_wmi_update_values_for_source(u8 source, struct asus_wmi_sensors *sensor_data)
for (i = 0; i < sensor_data->wmi.sensor_count; i++) {
sensor = sensor_data->wmi.info_by_id[i];
struct asus_wmi_sensors *sensor_data,
mutex_lock(&sensor_data->lock);
if (time_after(jiffies, sensor_data->wmi.source_last_updated[sensor->source] + HZ)) {
ret = asus_wmi_update_values_for_source(sensor->source, sensor_data);
sensor_data->wmi.source_last_updated[sensor->source] = jiffies;
mutex_unlock(&sensor_data->lock);
struct asus_wmi_sensors *sensor_data = dev_get_drvdata(dev);
sensor = *(sensor_data->wmi.info[type] + channel);
ret = asus_wmi_get_cached_value_or_update(sensor, sensor_data, &value);
struct asus_wmi_sensors *sensor_data = dev_get_drvdata(dev);
sensor = *(sensor_data->wmi.info[type] + channel);
const struct asus_wmi_sensors *sensor_data = drvdata;
sensor = *(sensor_data->wmi.info[type] + channel);
struct asus_wmi_sensors *sensor_data)
for (i = 0; i < sensor_data->wmi.sensor_count; i++) {
sensor_data->wmi.info_by_id = devm_kcalloc(dev, sensor_data->wmi.sensor_count,
sizeof(*sensor_data->wmi.info_by_id),
if (!sensor_data->wmi.info_by_id)
sensor_data->wmi.info[type] = devm_kcalloc(dev,
sizeof(*sensor_data->wmi.info),
if (!sensor_data->wmi.info[type])
for (i = sensor_data->wmi.sensor_count - 1; i >= 0; i--) {
*(sensor_data->wmi.info[type] + idx) = temp_sensor;
sensor_data->wmi.info_by_id[i] = temp_sensor;
sensor_data->wmi.sensor_count);
sensor_data, chip_info, NULL);
struct asus_wmi_sensors *sensor_data;
sensor_data = devm_kzalloc(dev, sizeof(*sensor_data), GFP_KERNEL);
if (!sensor_data)
if (asus_wmi_get_item_count(&sensor_data->wmi.sensor_count))
if (sensor_data->wmi.sensor_count <= 0 || version < 2) {
version, sensor_data->wmi.sensor_count);
mutex_init(&sensor_data->lock);
dev_set_drvdata(dev, sensor_data);
return asus_wmi_configure_sensor_setup(dev, sensor_data);
struct sensor_data *sdata = container_of(devattr, struct sensor_data,
struct sensor_data *sdata = container_of(devattr, struct sensor_data,
struct sensor_data *sdata = container_of(devattr, struct sensor_data,
struct sensor_data *sdata = container_of(devattr, struct sensor_data,
struct sensor_data *sdata, const char *label)
static u32 get_sensor_hwmon_index(struct sensor_data *sdata,
struct sensor_data *sdata_table, int count)
static void create_hwmon_attr(struct sensor_data *sdata, const char *attr_name,
static void populate_sensor(struct sensor_data *sdata, int od, int hd, int sid,
struct sensor_data *sdata;
struct sensor_data *sensor;
sensor = container_of(attr, struct sensor_data, dev_attr_label);
struct sensor_data *sensor = &scpi_sensors->data[idx];
struct sensor_data *sensor = &scpi_sensors->data[i];
struct sensor_data *data;
static void scpi_scale_reading(u64 *value, struct sensor_data *sensor)
struct sensor_data *sensor = &scpi_sensors->data[zone->sensor_id];
struct sensor_data *sensor;
sensor = container_of(attr, struct sensor_data, dev_attr_input);
struct am2315_sensor_data *sensor_data)
sensor_data->hum_data = (rx_buf[AM2315_HUM_OFFSET] << 8) |
sensor_data->temp_data = (rx_buf[AM2315_TEMP_OFFSET] << 8) |
struct am2315_sensor_data sensor_data;
ret = am2315_read_data(data, &sensor_data);
data->scan.chans[0] = sensor_data.hum_data;
data->scan.chans[1] = sensor_data.temp_data;
data->scan.chans[i] = (bit ? sensor_data.temp_data :
sensor_data.hum_data);
struct am2315_sensor_data sensor_data;
ret = am2315_read_data(data, &sensor_data);
sensor_data.hum_data : sensor_data.temp_data;
memcpy(®s[0x01], sensor_data[sd->sensor].bridge_init, 0x19);
if (sensor_data[sd->sensor].flags & F_SIF) {
i2c_w_vector(gspca_dev, sensor_data[sd->sensor].sensor_init,
sensor_data[sd->sensor].sensor_init_size);
static const struct sensor_data sensor_data[] = {
i2cOV[1] = sensor_data[sd->sensor].sensor_addr;
i2c[1] = sensor_data[sd->sensor].sensor_addr;
i2c[1] = sensor_data[sd->sensor].sensor_addr;
i2c[1] = sensor_data[sd->sensor].sensor_addr;
if (sensor_data[sd->sensor].flags & F_SIF) {
if (!(sensor_data[sd->sensor].flags & F_SIF)) {
static const struct additional_sensor_data sensor_data[] = {
all_gain_reg[7] = sensor_data[sd->sensor].reg80;
sensor = &sensor_data[sd->sensor];
sensor = &sensor_data[sd->sensor];
reg_w_buf(gspca_dev, sensor_data[sd->sensor].stream,
sizeof sensor_data[sd->sensor].stream);
reg_w_buf(gspca_dev, sensor_data[sd->sensor].stream,
sizeof sensor_data[sd->sensor].stream);