Merge branch 'for-4.1/sensor-hub' into for-linus
[linux-2.6-block.git] / drivers / iio / accel / hid-sensor-accel-3d.c
index d5d95317003ac8dd44ed29220fd343a538aee673..2b4fad6998c150b583ed20831b5e3d4c497490fe 100644 (file)
@@ -111,26 +111,20 @@ static int accel_3d_read_raw(struct iio_dev *indio_dev,
        int report_id = -1;
        u32 address;
        int ret_type;
-       s32 poll_value;
 
        *val = 0;
        *val2 = 0;
        switch (mask) {
        case 0:
-               poll_value = hid_sensor_read_poll_value(
-                                       &accel_state->common_attributes);
-               if (poll_value < 0)
-                       return -EINVAL;
-
                hid_sensor_power_state(&accel_state->common_attributes, true);
-               msleep_interruptible(poll_value * 2);
                report_id = accel_state->accel[chan->scan_index].report_id;
                address = accel_3d_addresses[chan->scan_index];
                if (report_id >= 0)
                        *val = sensor_hub_input_attr_get_raw_value(
                                        accel_state->common_attributes.hsdev,
                                        HID_USAGE_SENSOR_ACCEL_3D, address,
-                                       report_id);
+                                       report_id,
+                                       SENSOR_HUB_SYNC);
                else {
                        *val = 0;
                        hid_sensor_power_state(&accel_state->common_attributes,
@@ -419,6 +413,7 @@ static struct platform_driver hid_accel_3d_platform_driver = {
        .id_table = hid_accel_3d_ids,
        .driver = {
                .name   = KBUILD_MODNAME,
+               .pm     = &hid_sensor_pm_ops,
        },
        .probe          = hid_accel_3d_probe,
        .remove         = hid_accel_3d_remove,