hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/iio/imu/kmx61.c
....@@ -1,14 +1,10 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * KMX61 - Kionix 6-axis Accelerometer/Magnetometer
34 *
45 * Copyright (c) 2014, Intel Corporation.
56 *
6
- * This file is subject to the terms and conditions of version 2 of
7
- * the GNU General Public License. See the file COPYING in the main
8
- * directory of this archive for more details.
9
- *
107 * IIO driver for KMX61 (7-bit I2C slave address 0x0E or 0x0F).
11
- *
128 */
139
1410 #include <linux/module.h>
....@@ -316,10 +312,10 @@
316312
317313 /**
318314 * kmx61_set_mode() - set KMX61 device operating mode
319
- * @data - kmx61 device private data pointer
320
- * @mode - bitmask, indicating operating mode for @device
321
- * @device - bitmask, indicating device for which @mode needs to be set
322
- * @update - update stby bits stored in device's private @data
315
+ * @data: kmx61 device private data pointer
316
+ * @mode: bitmask, indicating operating mode for @device
317
+ * @device: bitmask, indicating device for which @mode needs to be set
318
+ * @update: update stby bits stored in device's private @data
323319 *
324320 * For each sensor (accelerometer/magnetometer) there are two operating modes
325321 * STANDBY and OPERATION. Neither accel nor magn can be disabled independently
....@@ -722,9 +718,9 @@
722718
723719 /**
724720 * kmx61_set_power_state() - set power state for kmx61 @device
725
- * @data - kmx61 device private pointer
726
- * @on - power state to be set for @device
727
- * @device - bitmask indicating device for which @on state needs to be set
721
+ * @data: kmx61 device private pointer
722
+ * @on: power state to be set for @device
723
+ * @device: bitmask indicating device for which @on state needs to be set
728724 *
729725 * Notice that when ACC power state needs to be set to ON and MAG is in
730726 * OPERATION then we know that kmx61_runtime_resume was already called
....@@ -1252,7 +1248,6 @@
12521248
12531249 kmx61_set_data(indio_dev, data);
12541250
1255
- indio_dev->dev.parent = &data->client->dev;
12561251 indio_dev->channels = chan;
12571252 indio_dev->num_channels = num_channels;
12581253 indio_dev->name = name;
....@@ -1397,7 +1392,7 @@
13971392 ret = iio_device_register(data->acc_indio_dev);
13981393 if (ret < 0) {
13991394 dev_err(&client->dev, "Failed to register acc iio device\n");
1400
- goto err_buffer_cleanup_mag;
1395
+ goto err_pm_cleanup;
14011396 }
14021397
14031398 ret = iio_device_register(data->mag_indio_dev);
....@@ -1410,6 +1405,9 @@
14101405
14111406 err_iio_unregister_acc:
14121407 iio_device_unregister(data->acc_indio_dev);
1408
+err_pm_cleanup:
1409
+ pm_runtime_dont_use_autosuspend(&client->dev);
1410
+ pm_runtime_disable(&client->dev);
14131411 err_buffer_cleanup_mag:
14141412 if (client->irq > 0)
14151413 iio_triggered_buffer_cleanup(data->mag_indio_dev);