forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-11 072de836f53be56a70cecf70b43ae43b7ce17376
kernel/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c
....@@ -13,6 +13,7 @@
1313 #include <linux/i2c.h>
1414 #include <linux/delay.h>
1515 #include <linux/module.h>
16
+#include <linux/mod_devicetable.h>
1617 #include <linux/pm_runtime.h>
1718 #include <linux/iio/iio.h>
1819 #include <linux/iio/sysfs.h>
....@@ -140,12 +141,13 @@
140141
141142 static int lidar_read_measurement(struct lidar_data *data, u16 *reg)
142143 {
144
+ __be16 value;
143145 int ret = data->xfer(data, LIDAR_REG_DATA_HBYTE |
144146 (data->i2c_enabled ? LIDAR_REG_DATA_WORD_READ : 0),
145
- (u8 *) reg, 2);
147
+ (u8 *) &value, 2);
146148
147149 if (!ret)
148
- *reg = be16_to_cpu(*reg);
150
+ *reg = be16_to_cpu(value);
149151
150152 return ret;
151153 }
....@@ -274,7 +276,6 @@
274276 indio_dev->name = LIDAR_DRV_NAME;
275277 indio_dev->channels = lidar_channels;
276278 indio_dev->num_channels = ARRAY_SIZE(lidar_channels);
277
- indio_dev->dev.parent = &client->dev;
278279 indio_dev->modes = INDIO_DIRECT_MODE;
279280
280281 i2c_set_clientdata(client, indio_dev);
....@@ -365,7 +366,7 @@
365366 static struct i2c_driver lidar_driver = {
366367 .driver = {
367368 .name = LIDAR_DRV_NAME,
368
- .of_match_table = of_match_ptr(lidar_dt_ids),
369
+ .of_match_table = lidar_dt_ids,
369370 .pm = &lidar_pm_ops,
370371 },
371372 .probe = lidar_probe,