Lines Matching refs:data

285 static void kmx61_set_data(struct iio_dev *indio_dev, struct kmx61_data *data)  in kmx61_set_data()  argument
289 *priv = data; in kmx61_set_data()
331 static int kmx61_set_mode(struct kmx61_data *data, u8 mode, u8 device, in kmx61_set_mode() argument
337 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_STBY); in kmx61_set_mode()
339 dev_err(&data->client->dev, "Error reading reg_stby\n"); in kmx61_set_mode()
365 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_STBY, ret); in kmx61_set_mode()
367 dev_err(&data->client->dev, "Error writing reg_stby\n"); in kmx61_set_mode()
372 data->acc_stby = acc_stby; in kmx61_set_mode()
374 data->mag_stby = mag_stby; in kmx61_set_mode()
379 static int kmx61_get_mode(struct kmx61_data *data, u8 *mode, u8 device) in kmx61_get_mode() argument
383 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_STBY); in kmx61_get_mode()
385 dev_err(&data->client->dev, "Error reading reg_stby\n"); in kmx61_get_mode()
407 static int kmx61_set_wake_up_odr(struct kmx61_data *data, int val, int val2) in kmx61_set_wake_up_odr() argument
415 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_CTRL2, in kmx61_set_wake_up_odr()
418 dev_err(&data->client->dev, "Error writing reg_ctrl2\n"); in kmx61_set_wake_up_odr()
422 static int kmx61_set_odr(struct kmx61_data *data, int val, int val2, u8 device) in kmx61_set_odr() argument
428 ret = kmx61_get_mode(data, &mode, KMX61_ACC | KMX61_MAG); in kmx61_set_odr()
437 ret = kmx61_set_mode(data, KMX61_ALL_STBY, KMX61_ACC | KMX61_MAG, in kmx61_set_odr()
448 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_ODCNTL, in kmx61_set_odr()
453 data->odr_bits = odr_bits; in kmx61_set_odr()
456 ret = kmx61_set_wake_up_odr(data, val, val2); in kmx61_set_odr()
461 return kmx61_set_mode(data, mode, KMX61_ACC | KMX61_MAG, true); in kmx61_set_odr()
464 static int kmx61_get_odr(struct kmx61_data *data, int *val, int *val2, in kmx61_get_odr() argument
470 lodr_bits = (data->odr_bits >> KMX61_ACC_ODR_SHIFT) & in kmx61_get_odr()
473 lodr_bits = (data->odr_bits >> KMX61_MAG_ODR_SHIFT) & in kmx61_get_odr()
487 static int kmx61_set_range(struct kmx61_data *data, u8 range) in kmx61_set_range() argument
491 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_CTRL1); in kmx61_set_range()
493 dev_err(&data->client->dev, "Error reading reg_ctrl1\n"); in kmx61_set_range()
500 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_CTRL1, ret); in kmx61_set_range()
502 dev_err(&data->client->dev, "Error writing reg_ctrl1\n"); in kmx61_set_range()
506 data->range = range; in kmx61_set_range()
511 static int kmx61_set_scale(struct kmx61_data *data, u16 uscale) in kmx61_set_scale() argument
518 ret = kmx61_get_mode(data, &mode, in kmx61_set_scale()
523 ret = kmx61_set_mode(data, KMX61_ALL_STBY, in kmx61_set_scale()
528 ret = kmx61_set_range(data, i); in kmx61_set_scale()
532 return kmx61_set_mode(data, mode, in kmx61_set_scale()
539 static int kmx61_chip_init(struct kmx61_data *data) in kmx61_chip_init() argument
543 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_WHO_AM_I); in kmx61_chip_init()
545 dev_err(&data->client->dev, "Error reading who_am_i\n"); in kmx61_chip_init()
550 dev_err(&data->client->dev, in kmx61_chip_init()
557 ret = kmx61_set_range(data, KMX61_RANGE_4G); in kmx61_chip_init()
561 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_ODCNTL); in kmx61_chip_init()
563 dev_err(&data->client->dev, "Error reading reg_odcntl\n"); in kmx61_chip_init()
566 data->odr_bits = ret; in kmx61_chip_init()
572 ret = kmx61_get_odr(data, &val, &val2, KMX61_ACC); in kmx61_chip_init()
576 ret = kmx61_set_wake_up_odr(data, val, val2); in kmx61_chip_init()
581 ret = kmx61_set_mode(data, 0, KMX61_ACC | KMX61_MAG, true); in kmx61_chip_init()
585 data->wake_thresh = KMX61_DEFAULT_WAKE_THRESH; in kmx61_chip_init()
586 data->wake_duration = KMX61_DEFAULT_WAKE_DURATION; in kmx61_chip_init()
591 static int kmx61_setup_new_data_interrupt(struct kmx61_data *data, in kmx61_setup_new_data_interrupt() argument
597 ret = kmx61_get_mode(data, &mode, KMX61_ACC | KMX61_MAG); in kmx61_setup_new_data_interrupt()
601 ret = kmx61_set_mode(data, KMX61_ALL_STBY, KMX61_ACC | KMX61_MAG, true); in kmx61_setup_new_data_interrupt()
605 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_INC1); in kmx61_setup_new_data_interrupt()
607 dev_err(&data->client->dev, "Error reading reg_ctrl1\n"); in kmx61_setup_new_data_interrupt()
624 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_INC1, ret); in kmx61_setup_new_data_interrupt()
626 dev_err(&data->client->dev, "Error writing reg_int_ctrl1\n"); in kmx61_setup_new_data_interrupt()
630 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_CTRL1); in kmx61_setup_new_data_interrupt()
632 dev_err(&data->client->dev, "Error reading reg_ctrl1\n"); in kmx61_setup_new_data_interrupt()
641 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_CTRL1, ret); in kmx61_setup_new_data_interrupt()
643 dev_err(&data->client->dev, "Error writing reg_ctrl1\n"); in kmx61_setup_new_data_interrupt()
647 return kmx61_set_mode(data, mode, KMX61_ACC | KMX61_MAG, true); in kmx61_setup_new_data_interrupt()
650 static int kmx61_chip_update_thresholds(struct kmx61_data *data) in kmx61_chip_update_thresholds() argument
654 ret = i2c_smbus_write_byte_data(data->client, in kmx61_chip_update_thresholds()
656 data->wake_duration); in kmx61_chip_update_thresholds()
658 dev_err(&data->client->dev, "Errow writing reg_wuf_timer\n"); in kmx61_chip_update_thresholds()
662 ret = i2c_smbus_write_byte_data(data->client, in kmx61_chip_update_thresholds()
664 data->wake_thresh); in kmx61_chip_update_thresholds()
666 dev_err(&data->client->dev, "Error writing reg_wuf_thresh\n"); in kmx61_chip_update_thresholds()
671 static int kmx61_setup_any_motion_interrupt(struct kmx61_data *data, in kmx61_setup_any_motion_interrupt() argument
677 ret = kmx61_get_mode(data, &mode, KMX61_ACC | KMX61_MAG); in kmx61_setup_any_motion_interrupt()
681 ret = kmx61_set_mode(data, KMX61_ALL_STBY, KMX61_ACC | KMX61_MAG, true); in kmx61_setup_any_motion_interrupt()
685 ret = kmx61_chip_update_thresholds(data); in kmx61_setup_any_motion_interrupt()
689 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_INC1); in kmx61_setup_any_motion_interrupt()
691 dev_err(&data->client->dev, "Error reading reg_inc1\n"); in kmx61_setup_any_motion_interrupt()
699 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_INC1, ret); in kmx61_setup_any_motion_interrupt()
701 dev_err(&data->client->dev, "Error writing reg_inc1\n"); in kmx61_setup_any_motion_interrupt()
705 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_CTRL1); in kmx61_setup_any_motion_interrupt()
707 dev_err(&data->client->dev, "Error reading reg_ctrl1\n"); in kmx61_setup_any_motion_interrupt()
716 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_CTRL1, ret); in kmx61_setup_any_motion_interrupt()
718 dev_err(&data->client->dev, "Error writing reg_ctrl1\n"); in kmx61_setup_any_motion_interrupt()
722 return kmx61_set_mode(data, mode, KMX61_ACC | KMX61_MAG, true); in kmx61_setup_any_motion_interrupt()
736 static int kmx61_set_power_state(struct kmx61_data *data, bool on, u8 device) in kmx61_set_power_state() argument
742 if (on && !data->acc_ps && !data->mag_stby) { in kmx61_set_power_state()
743 ret = kmx61_set_mode(data, 0, KMX61_ACC, true); in kmx61_set_power_state()
747 data->acc_ps = on; in kmx61_set_power_state()
750 if (on && !data->mag_ps && !data->acc_stby) { in kmx61_set_power_state()
751 ret = kmx61_set_mode(data, 0, KMX61_MAG, true); in kmx61_set_power_state()
755 data->mag_ps = on; in kmx61_set_power_state()
759 ret = pm_runtime_get_sync(&data->client->dev); in kmx61_set_power_state()
761 pm_runtime_mark_last_busy(&data->client->dev); in kmx61_set_power_state()
762 ret = pm_runtime_put_autosuspend(&data->client->dev); in kmx61_set_power_state()
765 dev_err(&data->client->dev, in kmx61_set_power_state()
769 pm_runtime_put_noidle(&data->client->dev); in kmx61_set_power_state()
777 static int kmx61_read_measurement(struct kmx61_data *data, u8 base, u8 offset) in kmx61_read_measurement() argument
782 ret = i2c_smbus_read_word_data(data->client, reg); in kmx61_read_measurement()
784 dev_err(&data->client->dev, "failed to read reg at %x\n", reg); in kmx61_read_measurement()
795 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_read_raw() local
809 mutex_lock(&data->lock); in kmx61_read_raw()
811 ret = kmx61_set_power_state(data, true, chan->address); in kmx61_read_raw()
813 mutex_unlock(&data->lock); in kmx61_read_raw()
817 ret = kmx61_read_measurement(data, base_reg, chan->scan_index); in kmx61_read_raw()
819 kmx61_set_power_state(data, false, chan->address); in kmx61_read_raw()
820 mutex_unlock(&data->lock); in kmx61_read_raw()
825 ret = kmx61_set_power_state(data, false, chan->address); in kmx61_read_raw()
827 mutex_unlock(&data->lock); in kmx61_read_raw()
835 *val2 = kmx61_uscale_table[data->range]; in kmx61_read_raw()
849 mutex_lock(&data->lock); in kmx61_read_raw()
850 ret = kmx61_get_odr(data, val, val2, chan->address); in kmx61_read_raw()
851 mutex_unlock(&data->lock); in kmx61_read_raw()
864 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_write_raw() local
871 mutex_lock(&data->lock); in kmx61_write_raw()
872 ret = kmx61_set_odr(data, val, val2, chan->address); in kmx61_write_raw()
873 mutex_unlock(&data->lock); in kmx61_write_raw()
880 mutex_lock(&data->lock); in kmx61_write_raw()
881 ret = kmx61_set_scale(data, val2); in kmx61_write_raw()
882 mutex_unlock(&data->lock); in kmx61_write_raw()
899 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_read_event() local
904 *val = data->wake_thresh; in kmx61_read_event()
907 *val = data->wake_duration; in kmx61_read_event()
921 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_write_event() local
923 if (data->ev_enable_state) in kmx61_write_event()
928 data->wake_thresh = val; in kmx61_write_event()
931 data->wake_duration = val; in kmx61_write_event()
943 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_read_event_config() local
945 return data->ev_enable_state; in kmx61_read_event_config()
954 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_write_event_config() local
957 if (state && data->ev_enable_state) in kmx61_write_event_config()
960 mutex_lock(&data->lock); in kmx61_write_event_config()
962 if (!state && data->motion_trig_on) { in kmx61_write_event_config()
963 data->ev_enable_state = false; in kmx61_write_event_config()
967 ret = kmx61_set_power_state(data, state, KMX61_ACC); in kmx61_write_event_config()
971 ret = kmx61_setup_any_motion_interrupt(data, state); in kmx61_write_event_config()
973 kmx61_set_power_state(data, false, KMX61_ACC); in kmx61_write_event_config()
977 data->ev_enable_state = state; in kmx61_write_event_config()
980 mutex_unlock(&data->lock); in kmx61_write_event_config()
988 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_acc_validate_trigger() local
990 if (data->acc_dready_trig != trig && data->motion_trig != trig) in kmx61_acc_validate_trigger()
999 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_mag_validate_trigger() local
1001 if (data->mag_dready_trig != trig) in kmx61_mag_validate_trigger()
1035 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_data_rdy_trigger_set_state() local
1037 mutex_lock(&data->lock); in kmx61_data_rdy_trigger_set_state()
1039 if (!state && data->ev_enable_state && data->motion_trig_on) { in kmx61_data_rdy_trigger_set_state()
1040 data->motion_trig_on = false; in kmx61_data_rdy_trigger_set_state()
1044 if (data->acc_dready_trig == trig || data->motion_trig == trig) in kmx61_data_rdy_trigger_set_state()
1049 ret = kmx61_set_power_state(data, state, device); in kmx61_data_rdy_trigger_set_state()
1053 if (data->acc_dready_trig == trig || data->mag_dready_trig == trig) in kmx61_data_rdy_trigger_set_state()
1054 ret = kmx61_setup_new_data_interrupt(data, state, device); in kmx61_data_rdy_trigger_set_state()
1056 ret = kmx61_setup_any_motion_interrupt(data, state); in kmx61_data_rdy_trigger_set_state()
1058 kmx61_set_power_state(data, false, device); in kmx61_data_rdy_trigger_set_state()
1062 if (data->acc_dready_trig == trig) in kmx61_data_rdy_trigger_set_state()
1063 data->acc_dready_trig_on = state; in kmx61_data_rdy_trigger_set_state()
1064 else if (data->mag_dready_trig == trig) in kmx61_data_rdy_trigger_set_state()
1065 data->mag_dready_trig_on = state; in kmx61_data_rdy_trigger_set_state()
1067 data->motion_trig_on = state; in kmx61_data_rdy_trigger_set_state()
1069 mutex_unlock(&data->lock); in kmx61_data_rdy_trigger_set_state()
1077 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_trig_try_reenable() local
1080 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_INL); in kmx61_trig_try_reenable()
1082 dev_err(&data->client->dev, "Error reading reg_inl\n"); in kmx61_trig_try_reenable()
1097 struct kmx61_data *data = private; in kmx61_event_handler() local
1098 struct iio_dev *indio_dev = data->acc_indio_dev; in kmx61_event_handler()
1101 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_INS1); in kmx61_event_handler()
1103 dev_err(&data->client->dev, "Error reading reg_ins1\n"); in kmx61_event_handler()
1108 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_INS2); in kmx61_event_handler()
1110 dev_err(&data->client->dev, "Error reading reg_ins2\n"); in kmx61_event_handler()
1170 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_CTRL1); in kmx61_event_handler()
1172 dev_err(&data->client->dev, "Error reading reg_ctrl1\n"); in kmx61_event_handler()
1175 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_CTRL1, ret); in kmx61_event_handler()
1177 dev_err(&data->client->dev, "Error writing reg_ctrl1\n"); in kmx61_event_handler()
1179 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_INL); in kmx61_event_handler()
1181 dev_err(&data->client->dev, "Error reading reg_inl\n"); in kmx61_event_handler()
1188 struct kmx61_data *data = private; in kmx61_data_rdy_trig_poll() local
1190 if (data->acc_dready_trig_on) in kmx61_data_rdy_trig_poll()
1191 iio_trigger_poll(data->acc_dready_trig); in kmx61_data_rdy_trig_poll()
1192 if (data->mag_dready_trig_on) in kmx61_data_rdy_trig_poll()
1193 iio_trigger_poll(data->mag_dready_trig); in kmx61_data_rdy_trig_poll()
1195 if (data->motion_trig_on) in kmx61_data_rdy_trig_poll()
1196 iio_trigger_poll(data->motion_trig); in kmx61_data_rdy_trig_poll()
1198 if (data->ev_enable_state) in kmx61_data_rdy_trig_poll()
1207 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_trigger_handler() local
1212 if (indio_dev == data->acc_indio_dev) in kmx61_trigger_handler()
1217 mutex_lock(&data->lock); in kmx61_trigger_handler()
1220 ret = kmx61_read_measurement(data, base, bit); in kmx61_trigger_handler()
1222 mutex_unlock(&data->lock); in kmx61_trigger_handler()
1227 mutex_unlock(&data->lock); in kmx61_trigger_handler()
1246 static int kmx61_gpio_probe(struct i2c_client *client, struct kmx61_data *data) in kmx61_gpio_probe() argument
1270 static struct iio_dev *kmx61_indiodev_setup(struct kmx61_data *data, in kmx61_indiodev_setup() argument
1278 indio_dev = devm_iio_device_alloc(&data->client->dev, sizeof(data)); in kmx61_indiodev_setup()
1282 kmx61_set_data(indio_dev, data); in kmx61_indiodev_setup()
1284 indio_dev->dev.parent = &data->client->dev; in kmx61_indiodev_setup()
1294 static struct iio_trigger *kmx61_trigger_setup(struct kmx61_data *data, in kmx61_trigger_setup() argument
1301 trig = devm_iio_trigger_alloc(&data->client->dev, in kmx61_trigger_setup()
1309 trig->dev.parent = &data->client->dev; in kmx61_trigger_setup()
1324 struct kmx61_data *data; in kmx61_probe() local
1327 data = devm_kzalloc(&client->dev, sizeof(*data), GFP_KERNEL); in kmx61_probe()
1328 if (!data) in kmx61_probe()
1331 i2c_set_clientdata(client, data); in kmx61_probe()
1332 data->client = client; in kmx61_probe()
1334 mutex_init(&data->lock); in kmx61_probe()
1343 data->acc_indio_dev = in kmx61_probe()
1344 kmx61_indiodev_setup(data, &kmx61_acc_info, in kmx61_probe()
1348 if (IS_ERR(data->acc_indio_dev)) in kmx61_probe()
1349 return PTR_ERR(data->acc_indio_dev); in kmx61_probe()
1351 data->mag_indio_dev = in kmx61_probe()
1352 kmx61_indiodev_setup(data, &kmx61_mag_info, in kmx61_probe()
1356 if (IS_ERR(data->mag_indio_dev)) in kmx61_probe()
1357 return PTR_ERR(data->mag_indio_dev); in kmx61_probe()
1359 ret = kmx61_chip_init(data); in kmx61_probe()
1364 client->irq = kmx61_gpio_probe(client, data); in kmx61_probe()
1372 data); in kmx61_probe()
1376 data->acc_dready_trig = in kmx61_probe()
1377 kmx61_trigger_setup(data, data->acc_indio_dev, in kmx61_probe()
1379 if (IS_ERR(data->acc_dready_trig)) { in kmx61_probe()
1380 ret = PTR_ERR(data->acc_dready_trig); in kmx61_probe()
1384 data->mag_dready_trig = in kmx61_probe()
1385 kmx61_trigger_setup(data, data->mag_indio_dev, in kmx61_probe()
1387 if (IS_ERR(data->mag_dready_trig)) { in kmx61_probe()
1388 ret = PTR_ERR(data->mag_dready_trig); in kmx61_probe()
1392 data->motion_trig = in kmx61_probe()
1393 kmx61_trigger_setup(data, data->acc_indio_dev, in kmx61_probe()
1395 if (IS_ERR(data->motion_trig)) { in kmx61_probe()
1396 ret = PTR_ERR(data->motion_trig); in kmx61_probe()
1400 ret = iio_triggered_buffer_setup(data->acc_indio_dev, in kmx61_probe()
1405 dev_err(&data->client->dev, in kmx61_probe()
1410 ret = iio_triggered_buffer_setup(data->mag_indio_dev, in kmx61_probe()
1415 dev_err(&data->client->dev, in kmx61_probe()
1421 ret = iio_device_register(data->acc_indio_dev); in kmx61_probe()
1427 ret = iio_device_register(data->mag_indio_dev); in kmx61_probe()
1444 iio_device_unregister(data->mag_indio_dev); in kmx61_probe()
1446 iio_device_unregister(data->acc_indio_dev); in kmx61_probe()
1449 iio_triggered_buffer_cleanup(data->mag_indio_dev); in kmx61_probe()
1452 iio_triggered_buffer_cleanup(data->acc_indio_dev); in kmx61_probe()
1454 iio_trigger_unregister(data->motion_trig); in kmx61_probe()
1456 iio_trigger_unregister(data->mag_dready_trig); in kmx61_probe()
1458 iio_trigger_unregister(data->acc_dready_trig); in kmx61_probe()
1460 kmx61_set_mode(data, KMX61_ALL_STBY, KMX61_ACC | KMX61_MAG, true); in kmx61_probe()
1466 struct kmx61_data *data = i2c_get_clientdata(client); in kmx61_remove() local
1472 iio_device_unregister(data->acc_indio_dev); in kmx61_remove()
1473 iio_device_unregister(data->mag_indio_dev); in kmx61_remove()
1476 iio_triggered_buffer_cleanup(data->acc_indio_dev); in kmx61_remove()
1477 iio_triggered_buffer_cleanup(data->mag_indio_dev); in kmx61_remove()
1478 iio_trigger_unregister(data->acc_dready_trig); in kmx61_remove()
1479 iio_trigger_unregister(data->mag_dready_trig); in kmx61_remove()
1480 iio_trigger_unregister(data->motion_trig); in kmx61_remove()
1483 mutex_lock(&data->lock); in kmx61_remove()
1484 kmx61_set_mode(data, KMX61_ALL_STBY, KMX61_ACC | KMX61_MAG, true); in kmx61_remove()
1485 mutex_unlock(&data->lock); in kmx61_remove()
1494 struct kmx61_data *data = i2c_get_clientdata(to_i2c_client(dev)); in kmx61_suspend() local
1496 mutex_lock(&data->lock); in kmx61_suspend()
1497 ret = kmx61_set_mode(data, KMX61_ALL_STBY, KMX61_ACC | KMX61_MAG, in kmx61_suspend()
1499 mutex_unlock(&data->lock); in kmx61_suspend()
1507 struct kmx61_data *data = i2c_get_clientdata(to_i2c_client(dev)); in kmx61_resume() local
1509 if (data->acc_stby) in kmx61_resume()
1511 if (data->mag_stby) in kmx61_resume()
1514 return kmx61_set_mode(data, stby, KMX61_ACC | KMX61_MAG, true); in kmx61_resume()
1521 struct kmx61_data *data = i2c_get_clientdata(to_i2c_client(dev)); in kmx61_runtime_suspend() local
1524 mutex_lock(&data->lock); in kmx61_runtime_suspend()
1525 ret = kmx61_set_mode(data, KMX61_ALL_STBY, KMX61_ACC | KMX61_MAG, true); in kmx61_runtime_suspend()
1526 mutex_unlock(&data->lock); in kmx61_runtime_suspend()
1533 struct kmx61_data *data = i2c_get_clientdata(to_i2c_client(dev)); in kmx61_runtime_resume() local
1536 if (!data->acc_ps) in kmx61_runtime_resume()
1538 if (!data->mag_ps) in kmx61_runtime_resume()
1541 return kmx61_set_mode(data, stby, KMX61_ACC | KMX61_MAG, true); in kmx61_runtime_resume()