Lines Matching full:data

135 	/* accelerometer specific data */
143 /* magnetometer specific data */
279 static void kmx61_set_data(struct iio_dev *indio_dev, struct kmx61_data *data) in kmx61_set_data() argument
283 *priv = data; in kmx61_set_data()
315 * @data: kmx61 device private data pointer
318 * @update: update stby bits stored in device's private @data
323 * mag_stby members of driver's private @data.
325 static int kmx61_set_mode(struct kmx61_data *data, u8 mode, u8 device, in kmx61_set_mode() argument
331 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_STBY); in kmx61_set_mode()
333 dev_err(&data->client->dev, "Error reading reg_stby\n"); in kmx61_set_mode()
359 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_STBY, ret); in kmx61_set_mode()
361 dev_err(&data->client->dev, "Error writing reg_stby\n"); in kmx61_set_mode()
366 data->acc_stby = acc_stby; in kmx61_set_mode()
368 data->mag_stby = mag_stby; in kmx61_set_mode()
373 static int kmx61_get_mode(struct kmx61_data *data, u8 *mode, u8 device) in kmx61_get_mode() argument
377 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_STBY); in kmx61_get_mode()
379 dev_err(&data->client->dev, "Error reading reg_stby\n"); in kmx61_get_mode()
401 static int kmx61_set_wake_up_odr(struct kmx61_data *data, int val, int val2) in kmx61_set_wake_up_odr() argument
409 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_CTRL2, in kmx61_set_wake_up_odr()
412 dev_err(&data->client->dev, "Error writing reg_ctrl2\n"); in kmx61_set_wake_up_odr()
416 static int kmx61_set_odr(struct kmx61_data *data, int val, int val2, u8 device) in kmx61_set_odr() argument
422 ret = kmx61_get_mode(data, &mode, KMX61_ACC | KMX61_MAG); in kmx61_set_odr()
431 ret = kmx61_set_mode(data, KMX61_ALL_STBY, KMX61_ACC | KMX61_MAG, in kmx61_set_odr()
442 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_ODCNTL, in kmx61_set_odr()
447 data->odr_bits = odr_bits; in kmx61_set_odr()
450 ret = kmx61_set_wake_up_odr(data, val, val2); in kmx61_set_odr()
455 return kmx61_set_mode(data, mode, KMX61_ACC | KMX61_MAG, true); in kmx61_set_odr()
458 static int kmx61_get_odr(struct kmx61_data *data, int *val, int *val2, in kmx61_get_odr() argument
464 lodr_bits = (data->odr_bits >> KMX61_ACC_ODR_SHIFT) & in kmx61_get_odr()
467 lodr_bits = (data->odr_bits >> KMX61_MAG_ODR_SHIFT) & in kmx61_get_odr()
481 static int kmx61_set_range(struct kmx61_data *data, u8 range) in kmx61_set_range() argument
485 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_CTRL1); in kmx61_set_range()
487 dev_err(&data->client->dev, "Error reading reg_ctrl1\n"); in kmx61_set_range()
494 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_CTRL1, ret); in kmx61_set_range()
496 dev_err(&data->client->dev, "Error writing reg_ctrl1\n"); in kmx61_set_range()
500 data->range = range; in kmx61_set_range()
505 static int kmx61_set_scale(struct kmx61_data *data, u16 uscale) in kmx61_set_scale() argument
512 ret = kmx61_get_mode(data, &mode, in kmx61_set_scale()
517 ret = kmx61_set_mode(data, KMX61_ALL_STBY, in kmx61_set_scale()
522 ret = kmx61_set_range(data, i); in kmx61_set_scale()
526 return kmx61_set_mode(data, mode, in kmx61_set_scale()
533 static int kmx61_chip_init(struct kmx61_data *data) in kmx61_chip_init() argument
537 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_WHO_AM_I); in kmx61_chip_init()
539 dev_err(&data->client->dev, "Error reading who_am_i\n"); in kmx61_chip_init()
544 dev_err(&data->client->dev, in kmx61_chip_init()
551 ret = kmx61_set_range(data, KMX61_RANGE_4G); in kmx61_chip_init()
555 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_ODCNTL); in kmx61_chip_init()
557 dev_err(&data->client->dev, "Error reading reg_odcntl\n"); in kmx61_chip_init()
560 data->odr_bits = ret; in kmx61_chip_init()
563 * set output data rate for wake up (motion detection) function in kmx61_chip_init()
564 * to match data rate for accelerometer sampling in kmx61_chip_init()
566 ret = kmx61_get_odr(data, &val, &val2, KMX61_ACC); in kmx61_chip_init()
570 ret = kmx61_set_wake_up_odr(data, val, val2); in kmx61_chip_init()
575 ret = kmx61_set_mode(data, 0, KMX61_ACC | KMX61_MAG, true); in kmx61_chip_init()
579 data->wake_thresh = KMX61_DEFAULT_WAKE_THRESH; in kmx61_chip_init()
580 data->wake_duration = KMX61_DEFAULT_WAKE_DURATION; in kmx61_chip_init()
585 static int kmx61_setup_new_data_interrupt(struct kmx61_data *data, in kmx61_setup_new_data_interrupt() argument
591 ret = kmx61_get_mode(data, &mode, KMX61_ACC | KMX61_MAG); in kmx61_setup_new_data_interrupt()
595 ret = kmx61_set_mode(data, KMX61_ALL_STBY, KMX61_ACC | KMX61_MAG, true); in kmx61_setup_new_data_interrupt()
599 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_INC1); in kmx61_setup_new_data_interrupt()
601 dev_err(&data->client->dev, "Error reading reg_ctrl1\n"); in kmx61_setup_new_data_interrupt()
618 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_INC1, ret); in kmx61_setup_new_data_interrupt()
620 dev_err(&data->client->dev, "Error writing reg_int_ctrl1\n"); in kmx61_setup_new_data_interrupt()
624 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_CTRL1); in kmx61_setup_new_data_interrupt()
626 dev_err(&data->client->dev, "Error reading reg_ctrl1\n"); in kmx61_setup_new_data_interrupt()
635 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_CTRL1, ret); in kmx61_setup_new_data_interrupt()
637 dev_err(&data->client->dev, "Error writing reg_ctrl1\n"); in kmx61_setup_new_data_interrupt()
641 return kmx61_set_mode(data, mode, KMX61_ACC | KMX61_MAG, true); in kmx61_setup_new_data_interrupt()
644 static int kmx61_chip_update_thresholds(struct kmx61_data *data) in kmx61_chip_update_thresholds() argument
648 ret = i2c_smbus_write_byte_data(data->client, in kmx61_chip_update_thresholds()
650 data->wake_duration); in kmx61_chip_update_thresholds()
652 dev_err(&data->client->dev, "Errow writing reg_wuf_timer\n"); in kmx61_chip_update_thresholds()
656 ret = i2c_smbus_write_byte_data(data->client, in kmx61_chip_update_thresholds()
658 data->wake_thresh); in kmx61_chip_update_thresholds()
660 dev_err(&data->client->dev, "Error writing reg_wuf_thresh\n"); in kmx61_chip_update_thresholds()
665 static int kmx61_setup_any_motion_interrupt(struct kmx61_data *data, in kmx61_setup_any_motion_interrupt() argument
671 ret = kmx61_get_mode(data, &mode, KMX61_ACC | KMX61_MAG); in kmx61_setup_any_motion_interrupt()
675 ret = kmx61_set_mode(data, KMX61_ALL_STBY, KMX61_ACC | KMX61_MAG, true); in kmx61_setup_any_motion_interrupt()
679 ret = kmx61_chip_update_thresholds(data); in kmx61_setup_any_motion_interrupt()
683 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_INC1); in kmx61_setup_any_motion_interrupt()
685 dev_err(&data->client->dev, "Error reading reg_inc1\n"); in kmx61_setup_any_motion_interrupt()
693 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_INC1, ret); in kmx61_setup_any_motion_interrupt()
695 dev_err(&data->client->dev, "Error writing reg_inc1\n"); in kmx61_setup_any_motion_interrupt()
699 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_CTRL1); in kmx61_setup_any_motion_interrupt()
701 dev_err(&data->client->dev, "Error reading reg_ctrl1\n"); in kmx61_setup_any_motion_interrupt()
710 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_CTRL1, ret); in kmx61_setup_any_motion_interrupt()
712 dev_err(&data->client->dev, "Error writing reg_ctrl1\n"); in kmx61_setup_any_motion_interrupt()
716 return kmx61_set_mode(data, mode, KMX61_ACC | KMX61_MAG, true); in kmx61_setup_any_motion_interrupt()
721 * @data: kmx61 device private pointer
730 static int kmx61_set_power_state(struct kmx61_data *data, bool on, u8 device) in kmx61_set_power_state() argument
736 if (on && !data->acc_ps && !data->mag_stby) { in kmx61_set_power_state()
737 ret = kmx61_set_mode(data, 0, KMX61_ACC, true); in kmx61_set_power_state()
741 data->acc_ps = on; in kmx61_set_power_state()
744 if (on && !data->mag_ps && !data->acc_stby) { in kmx61_set_power_state()
745 ret = kmx61_set_mode(data, 0, KMX61_MAG, true); in kmx61_set_power_state()
749 data->mag_ps = on; in kmx61_set_power_state()
753 ret = pm_runtime_get_sync(&data->client->dev); in kmx61_set_power_state()
755 pm_runtime_mark_last_busy(&data->client->dev); in kmx61_set_power_state()
756 ret = pm_runtime_put_autosuspend(&data->client->dev); in kmx61_set_power_state()
759 dev_err(&data->client->dev, in kmx61_set_power_state()
763 pm_runtime_put_noidle(&data->client->dev); in kmx61_set_power_state()
771 static int kmx61_read_measurement(struct kmx61_data *data, u8 base, u8 offset) in kmx61_read_measurement() argument
776 ret = i2c_smbus_read_word_data(data->client, reg); in kmx61_read_measurement()
778 dev_err(&data->client->dev, "failed to read reg at %x\n", reg); in kmx61_read_measurement()
789 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_read_raw() local
803 mutex_lock(&data->lock); in kmx61_read_raw()
805 ret = kmx61_set_power_state(data, true, chan->address); in kmx61_read_raw()
807 mutex_unlock(&data->lock); in kmx61_read_raw()
811 ret = kmx61_read_measurement(data, base_reg, chan->scan_index); in kmx61_read_raw()
813 kmx61_set_power_state(data, false, chan->address); in kmx61_read_raw()
814 mutex_unlock(&data->lock); in kmx61_read_raw()
819 ret = kmx61_set_power_state(data, false, chan->address); in kmx61_read_raw()
821 mutex_unlock(&data->lock); in kmx61_read_raw()
829 *val2 = kmx61_uscale_table[data->range]; in kmx61_read_raw()
843 mutex_lock(&data->lock); in kmx61_read_raw()
844 ret = kmx61_get_odr(data, val, val2, chan->address); in kmx61_read_raw()
845 mutex_unlock(&data->lock); in kmx61_read_raw()
858 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_write_raw() local
865 mutex_lock(&data->lock); in kmx61_write_raw()
866 ret = kmx61_set_odr(data, val, val2, chan->address); in kmx61_write_raw()
867 mutex_unlock(&data->lock); in kmx61_write_raw()
874 mutex_lock(&data->lock); in kmx61_write_raw()
875 ret = kmx61_set_scale(data, val2); in kmx61_write_raw()
876 mutex_unlock(&data->lock); in kmx61_write_raw()
893 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_read_event() local
898 *val = data->wake_thresh; in kmx61_read_event()
901 *val = data->wake_duration; in kmx61_read_event()
915 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_write_event() local
917 if (data->ev_enable_state) in kmx61_write_event()
922 data->wake_thresh = val; in kmx61_write_event()
925 data->wake_duration = val; in kmx61_write_event()
937 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_read_event_config() local
939 return data->ev_enable_state; in kmx61_read_event_config()
948 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_write_event_config() local
951 if (state && data->ev_enable_state) in kmx61_write_event_config()
954 mutex_lock(&data->lock); in kmx61_write_event_config()
956 if (!state && data->motion_trig_on) { in kmx61_write_event_config()
957 data->ev_enable_state = false; in kmx61_write_event_config()
961 ret = kmx61_set_power_state(data, state, KMX61_ACC); in kmx61_write_event_config()
965 ret = kmx61_setup_any_motion_interrupt(data, state); in kmx61_write_event_config()
967 kmx61_set_power_state(data, false, KMX61_ACC); in kmx61_write_event_config()
971 data->ev_enable_state = state; in kmx61_write_event_config()
974 mutex_unlock(&data->lock); in kmx61_write_event_config()
982 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_acc_validate_trigger() local
984 if (data->acc_dready_trig != trig && data->motion_trig != trig) in kmx61_acc_validate_trigger()
993 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_mag_validate_trigger() local
995 if (data->mag_dready_trig != trig) in kmx61_mag_validate_trigger()
1027 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_data_rdy_trigger_set_state() local
1029 mutex_lock(&data->lock); in kmx61_data_rdy_trigger_set_state()
1031 if (!state && data->ev_enable_state && data->motion_trig_on) { in kmx61_data_rdy_trigger_set_state()
1032 data->motion_trig_on = false; in kmx61_data_rdy_trigger_set_state()
1036 if (data->acc_dready_trig == trig || data->motion_trig == trig) in kmx61_data_rdy_trigger_set_state()
1041 ret = kmx61_set_power_state(data, state, device); in kmx61_data_rdy_trigger_set_state()
1045 if (data->acc_dready_trig == trig || data->mag_dready_trig == trig) in kmx61_data_rdy_trigger_set_state()
1046 ret = kmx61_setup_new_data_interrupt(data, state, device); in kmx61_data_rdy_trigger_set_state()
1048 ret = kmx61_setup_any_motion_interrupt(data, state); in kmx61_data_rdy_trigger_set_state()
1050 kmx61_set_power_state(data, false, device); in kmx61_data_rdy_trigger_set_state()
1054 if (data->acc_dready_trig == trig) in kmx61_data_rdy_trigger_set_state()
1055 data->acc_dready_trig_on = state; in kmx61_data_rdy_trigger_set_state()
1056 else if (data->mag_dready_trig == trig) in kmx61_data_rdy_trigger_set_state()
1057 data->mag_dready_trig_on = state; in kmx61_data_rdy_trigger_set_state()
1059 data->motion_trig_on = state; in kmx61_data_rdy_trigger_set_state()
1061 mutex_unlock(&data->lock); in kmx61_data_rdy_trigger_set_state()
1069 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_trig_try_reenable() local
1072 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_INL); in kmx61_trig_try_reenable()
1074 dev_err(&data->client->dev, "Error reading reg_inl\n"); in kmx61_trig_try_reenable()
1088 struct kmx61_data *data = private; in kmx61_event_handler() local
1089 struct iio_dev *indio_dev = data->acc_indio_dev; in kmx61_event_handler()
1092 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_INS1); in kmx61_event_handler()
1094 dev_err(&data->client->dev, "Error reading reg_ins1\n"); in kmx61_event_handler()
1099 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_INS2); in kmx61_event_handler()
1101 dev_err(&data->client->dev, "Error reading reg_ins2\n"); in kmx61_event_handler()
1161 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_CTRL1); in kmx61_event_handler()
1163 dev_err(&data->client->dev, "Error reading reg_ctrl1\n"); in kmx61_event_handler()
1166 ret = i2c_smbus_write_byte_data(data->client, KMX61_REG_CTRL1, ret); in kmx61_event_handler()
1168 dev_err(&data->client->dev, "Error writing reg_ctrl1\n"); in kmx61_event_handler()
1170 ret = i2c_smbus_read_byte_data(data->client, KMX61_REG_INL); in kmx61_event_handler()
1172 dev_err(&data->client->dev, "Error reading reg_inl\n"); in kmx61_event_handler()
1179 struct kmx61_data *data = private; in kmx61_data_rdy_trig_poll() local
1181 if (data->acc_dready_trig_on) in kmx61_data_rdy_trig_poll()
1182 iio_trigger_poll(data->acc_dready_trig); in kmx61_data_rdy_trig_poll()
1183 if (data->mag_dready_trig_on) in kmx61_data_rdy_trig_poll()
1184 iio_trigger_poll(data->mag_dready_trig); in kmx61_data_rdy_trig_poll()
1186 if (data->motion_trig_on) in kmx61_data_rdy_trig_poll()
1187 iio_trigger_poll(data->motion_trig); in kmx61_data_rdy_trig_poll()
1189 if (data->ev_enable_state) in kmx61_data_rdy_trig_poll()
1198 struct kmx61_data *data = kmx61_get_data(indio_dev); in kmx61_trigger_handler() local
1203 if (indio_dev == data->acc_indio_dev) in kmx61_trigger_handler()
1208 mutex_lock(&data->lock); in kmx61_trigger_handler()
1211 ret = kmx61_read_measurement(data, base, bit); in kmx61_trigger_handler()
1213 mutex_unlock(&data->lock); in kmx61_trigger_handler()
1218 mutex_unlock(&data->lock); in kmx61_trigger_handler()
1237 static struct iio_dev *kmx61_indiodev_setup(struct kmx61_data *data, in kmx61_indiodev_setup() argument
1245 indio_dev = devm_iio_device_alloc(&data->client->dev, sizeof(data)); in kmx61_indiodev_setup()
1249 kmx61_set_data(indio_dev, data); in kmx61_indiodev_setup()
1260 static struct iio_trigger *kmx61_trigger_setup(struct kmx61_data *data, in kmx61_trigger_setup() argument
1267 trig = devm_iio_trigger_alloc(&data->client->dev, in kmx61_trigger_setup()
1275 trig->dev.parent = &data->client->dev; in kmx61_trigger_setup()
1290 struct kmx61_data *data; in kmx61_probe() local
1293 data = devm_kzalloc(&client->dev, sizeof(*data), GFP_KERNEL); in kmx61_probe()
1294 if (!data) in kmx61_probe()
1297 i2c_set_clientdata(client, data); in kmx61_probe()
1298 data->client = client; in kmx61_probe()
1300 mutex_init(&data->lock); in kmx61_probe()
1309 data->acc_indio_dev = in kmx61_probe()
1310 kmx61_indiodev_setup(data, &kmx61_acc_info, in kmx61_probe()
1314 if (IS_ERR(data->acc_indio_dev)) in kmx61_probe()
1315 return PTR_ERR(data->acc_indio_dev); in kmx61_probe()
1317 data->mag_indio_dev = in kmx61_probe()
1318 kmx61_indiodev_setup(data, &kmx61_mag_info, in kmx61_probe()
1322 if (IS_ERR(data->mag_indio_dev)) in kmx61_probe()
1323 return PTR_ERR(data->mag_indio_dev); in kmx61_probe()
1325 ret = kmx61_chip_init(data); in kmx61_probe()
1335 data); in kmx61_probe()
1339 data->acc_dready_trig = in kmx61_probe()
1340 kmx61_trigger_setup(data, data->acc_indio_dev, in kmx61_probe()
1342 if (IS_ERR(data->acc_dready_trig)) { in kmx61_probe()
1343 ret = PTR_ERR(data->acc_dready_trig); in kmx61_probe()
1347 data->mag_dready_trig = in kmx61_probe()
1348 kmx61_trigger_setup(data, data->mag_indio_dev, in kmx61_probe()
1350 if (IS_ERR(data->mag_dready_trig)) { in kmx61_probe()
1351 ret = PTR_ERR(data->mag_dready_trig); in kmx61_probe()
1355 data->motion_trig = in kmx61_probe()
1356 kmx61_trigger_setup(data, data->acc_indio_dev, in kmx61_probe()
1358 if (IS_ERR(data->motion_trig)) { in kmx61_probe()
1359 ret = PTR_ERR(data->motion_trig); in kmx61_probe()
1363 ret = iio_triggered_buffer_setup(data->acc_indio_dev, in kmx61_probe()
1368 dev_err(&data->client->dev, in kmx61_probe()
1373 ret = iio_triggered_buffer_setup(data->mag_indio_dev, in kmx61_probe()
1378 dev_err(&data->client->dev, in kmx61_probe()
1392 ret = iio_device_register(data->acc_indio_dev); in kmx61_probe()
1398 ret = iio_device_register(data->mag_indio_dev); in kmx61_probe()
1407 iio_device_unregister(data->acc_indio_dev); in kmx61_probe()
1410 iio_triggered_buffer_cleanup(data->mag_indio_dev); in kmx61_probe()
1413 iio_triggered_buffer_cleanup(data->acc_indio_dev); in kmx61_probe()
1415 iio_trigger_unregister(data->motion_trig); in kmx61_probe()
1417 iio_trigger_unregister(data->mag_dready_trig); in kmx61_probe()
1419 iio_trigger_unregister(data->acc_dready_trig); in kmx61_probe()
1421 kmx61_set_mode(data, KMX61_ALL_STBY, KMX61_ACC | KMX61_MAG, true); in kmx61_probe()
1427 struct kmx61_data *data = i2c_get_clientdata(client); in kmx61_remove() local
1429 iio_device_unregister(data->acc_indio_dev); in kmx61_remove()
1430 iio_device_unregister(data->mag_indio_dev); in kmx61_remove()
1437 iio_triggered_buffer_cleanup(data->acc_indio_dev); in kmx61_remove()
1438 iio_triggered_buffer_cleanup(data->mag_indio_dev); in kmx61_remove()
1439 iio_trigger_unregister(data->acc_dready_trig); in kmx61_remove()
1440 iio_trigger_unregister(data->mag_dready_trig); in kmx61_remove()
1441 iio_trigger_unregister(data->motion_trig); in kmx61_remove()
1444 mutex_lock(&data->lock); in kmx61_remove()
1445 kmx61_set_mode(data, KMX61_ALL_STBY, KMX61_ACC | KMX61_MAG, true); in kmx61_remove()
1446 mutex_unlock(&data->lock); in kmx61_remove()
1455 struct kmx61_data *data = i2c_get_clientdata(to_i2c_client(dev)); in kmx61_suspend() local
1457 mutex_lock(&data->lock); in kmx61_suspend()
1458 ret = kmx61_set_mode(data, KMX61_ALL_STBY, KMX61_ACC | KMX61_MAG, in kmx61_suspend()
1460 mutex_unlock(&data->lock); in kmx61_suspend()
1468 struct kmx61_data *data = i2c_get_clientdata(to_i2c_client(dev)); in kmx61_resume() local
1470 if (data->acc_stby) in kmx61_resume()
1472 if (data->mag_stby) in kmx61_resume()
1475 return kmx61_set_mode(data, stby, KMX61_ACC | KMX61_MAG, true); in kmx61_resume()
1482 struct kmx61_data *data = i2c_get_clientdata(to_i2c_client(dev)); in kmx61_runtime_suspend() local
1485 mutex_lock(&data->lock); in kmx61_runtime_suspend()
1486 ret = kmx61_set_mode(data, KMX61_ALL_STBY, KMX61_ACC | KMX61_MAG, true); in kmx61_runtime_suspend()
1487 mutex_unlock(&data->lock); in kmx61_runtime_suspend()
1494 struct kmx61_data *data = i2c_get_clientdata(to_i2c_client(dev)); in kmx61_runtime_resume() local
1497 if (!data->acc_ps) in kmx61_runtime_resume()
1499 if (!data->mag_ps) in kmx61_runtime_resume()
1502 return kmx61_set_mode(data, stby, KMX61_ACC | KMX61_MAG, true); in kmx61_runtime_resume()