| .. | .. |
|---|
| 13 | 13 | #include <linux/i2c.h> |
|---|
| 14 | 14 | #include <linux/delay.h> |
|---|
| 15 | 15 | #include <linux/module.h> |
|---|
| 16 | +#include <linux/mod_devicetable.h> |
|---|
| 16 | 17 | #include <linux/pm_runtime.h> |
|---|
| 17 | 18 | #include <linux/iio/iio.h> |
|---|
| 18 | 19 | #include <linux/iio/sysfs.h> |
|---|
| .. | .. |
|---|
| 140 | 141 | |
|---|
| 141 | 142 | static int lidar_read_measurement(struct lidar_data *data, u16 *reg) |
|---|
| 142 | 143 | { |
|---|
| 144 | + __be16 value; |
|---|
| 143 | 145 | int ret = data->xfer(data, LIDAR_REG_DATA_HBYTE | |
|---|
| 144 | 146 | (data->i2c_enabled ? LIDAR_REG_DATA_WORD_READ : 0), |
|---|
| 145 | | - (u8 *) reg, 2); |
|---|
| 147 | + (u8 *) &value, 2); |
|---|
| 146 | 148 | |
|---|
| 147 | 149 | if (!ret) |
|---|
| 148 | | - *reg = be16_to_cpu(*reg); |
|---|
| 150 | + *reg = be16_to_cpu(value); |
|---|
| 149 | 151 | |
|---|
| 150 | 152 | return ret; |
|---|
| 151 | 153 | } |
|---|
| .. | .. |
|---|
| 274 | 276 | indio_dev->name = LIDAR_DRV_NAME; |
|---|
| 275 | 277 | indio_dev->channels = lidar_channels; |
|---|
| 276 | 278 | indio_dev->num_channels = ARRAY_SIZE(lidar_channels); |
|---|
| 277 | | - indio_dev->dev.parent = &client->dev; |
|---|
| 278 | 279 | indio_dev->modes = INDIO_DIRECT_MODE; |
|---|
| 279 | 280 | |
|---|
| 280 | 281 | i2c_set_clientdata(client, indio_dev); |
|---|
| .. | .. |
|---|
| 365 | 366 | static struct i2c_driver lidar_driver = { |
|---|
| 366 | 367 | .driver = { |
|---|
| 367 | 368 | .name = LIDAR_DRV_NAME, |
|---|
| 368 | | - .of_match_table = of_match_ptr(lidar_dt_ids), |
|---|
| 369 | + .of_match_table = lidar_dt_ids, |
|---|
| 369 | 370 | .pm = &lidar_pm_ops, |
|---|
| 370 | 371 | }, |
|---|
| 371 | 372 | .probe = lidar_probe, |
|---|