.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
---|
1 | 2 | #include <linux/module.h> |
---|
2 | 3 | #include <linux/virtio.h> |
---|
3 | 4 | #include <linux/virtio_config.h> |
---|
4 | 5 | #include <linux/input.h> |
---|
| 6 | +#include <linux/slab.h> |
---|
5 | 7 | #include <linux/input/mt.h> |
---|
6 | 8 | |
---|
7 | 9 | #include <uapi/linux/virtio_ids.h> |
---|
.. | .. |
---|
112 | 114 | { |
---|
113 | 115 | u8 size; |
---|
114 | 116 | |
---|
115 | | - virtio_cwrite(vi->vdev, struct virtio_input_config, select, &select); |
---|
116 | | - virtio_cwrite(vi->vdev, struct virtio_input_config, subsel, &subsel); |
---|
117 | | - virtio_cread(vi->vdev, struct virtio_input_config, size, &size); |
---|
| 117 | + virtio_cwrite_le(vi->vdev, struct virtio_input_config, select, &select); |
---|
| 118 | + virtio_cwrite_le(vi->vdev, struct virtio_input_config, subsel, &subsel); |
---|
| 119 | + virtio_cread_le(vi->vdev, struct virtio_input_config, size, &size); |
---|
118 | 120 | return size; |
---|
119 | 121 | } |
---|
120 | 122 | |
---|
.. | .. |
---|
157 | 159 | u32 mi, ma, re, fu, fl; |
---|
158 | 160 | |
---|
159 | 161 | virtinput_cfg_select(vi, VIRTIO_INPUT_CFG_ABS_INFO, abs); |
---|
160 | | - virtio_cread(vi->vdev, struct virtio_input_config, u.abs.min, &mi); |
---|
161 | | - virtio_cread(vi->vdev, struct virtio_input_config, u.abs.max, &ma); |
---|
162 | | - virtio_cread(vi->vdev, struct virtio_input_config, u.abs.res, &re); |
---|
163 | | - virtio_cread(vi->vdev, struct virtio_input_config, u.abs.fuzz, &fu); |
---|
164 | | - virtio_cread(vi->vdev, struct virtio_input_config, u.abs.flat, &fl); |
---|
| 162 | + virtio_cread_le(vi->vdev, struct virtio_input_config, u.abs.min, &mi); |
---|
| 163 | + virtio_cread_le(vi->vdev, struct virtio_input_config, u.abs.max, &ma); |
---|
| 164 | + virtio_cread_le(vi->vdev, struct virtio_input_config, u.abs.res, &re); |
---|
| 165 | + virtio_cread_le(vi->vdev, struct virtio_input_config, u.abs.fuzz, &fu); |
---|
| 166 | + virtio_cread_le(vi->vdev, struct virtio_input_config, u.abs.flat, &fl); |
---|
165 | 167 | input_set_abs_params(vi->idev, abs, mi, ma, fu, fl); |
---|
166 | 168 | input_abs_set_res(vi->idev, abs, re); |
---|
167 | 169 | if (abs == ABS_MT_TRACKING_ID) { |
---|
.. | .. |
---|
252 | 254 | |
---|
253 | 255 | size = virtinput_cfg_select(vi, VIRTIO_INPUT_CFG_ID_DEVIDS, 0); |
---|
254 | 256 | if (size >= sizeof(struct virtio_input_devids)) { |
---|
255 | | - virtio_cread(vi->vdev, struct virtio_input_config, |
---|
256 | | - u.ids.bustype, &vi->idev->id.bustype); |
---|
257 | | - virtio_cread(vi->vdev, struct virtio_input_config, |
---|
258 | | - u.ids.vendor, &vi->idev->id.vendor); |
---|
259 | | - virtio_cread(vi->vdev, struct virtio_input_config, |
---|
260 | | - u.ids.product, &vi->idev->id.product); |
---|
261 | | - virtio_cread(vi->vdev, struct virtio_input_config, |
---|
262 | | - u.ids.version, &vi->idev->id.version); |
---|
| 257 | + virtio_cread_le(vi->vdev, struct virtio_input_config, |
---|
| 258 | + u.ids.bustype, &vi->idev->id.bustype); |
---|
| 259 | + virtio_cread_le(vi->vdev, struct virtio_input_config, |
---|
| 260 | + u.ids.vendor, &vi->idev->id.vendor); |
---|
| 261 | + virtio_cread_le(vi->vdev, struct virtio_input_config, |
---|
| 262 | + u.ids.product, &vi->idev->id.product); |
---|
| 263 | + virtio_cread_le(vi->vdev, struct virtio_input_config, |
---|
| 264 | + u.ids.version, &vi->idev->id.version); |
---|
263 | 265 | } else { |
---|
264 | 266 | vi->idev->id.bustype = BUS_VIRTUAL; |
---|
265 | 267 | } |
---|
.. | .. |
---|
371 | 373 | static unsigned int features[] = { |
---|
372 | 374 | /* none */ |
---|
373 | 375 | }; |
---|
374 | | -static struct virtio_device_id id_table[] = { |
---|
| 376 | +static const struct virtio_device_id id_table[] = { |
---|
375 | 377 | { VIRTIO_ID_INPUT, VIRTIO_DEV_ANY_ID }, |
---|
376 | 378 | { 0 }, |
---|
377 | 379 | }; |
---|