HID: i2c-hid: note that I2C xfer buffers are DMA-safe
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 18 Jan 2022 07:26:28 +0000 (23:26 -0800)
committerJiri Kosina <jkosina@suse.cz>
Mon, 14 Feb 2022 09:52:29 +0000 (10:52 +0100)
All I2C communications in the driver use driver-private buffers that are
DMA-safe, so mark them as such.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Tested-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/i2c-hid/i2c-hid-core.c

index f312d2afd3196a6f4d866840377dce1ccfe446a1..91b2fa0d33c7cbcd1cab74274608e1576b5f34ee 100644 (file)
@@ -180,7 +180,7 @@ static int i2c_hid_xfer(struct i2c_hid *ihid,
                            __func__, send_len, send_buf);
 
                msgs[n].addr = client->addr;
-               msgs[n].flags = client->flags & I2C_M_TEN;
+               msgs[n].flags = (client->flags & I2C_M_TEN) | I2C_M_DMA_SAFE;
                msgs[n].len = send_len;
                msgs[n].buf = send_buf;
                n++;
@@ -188,7 +188,8 @@ static int i2c_hid_xfer(struct i2c_hid *ihid,
 
        if (recv_len) {
                msgs[n].addr = client->addr;
-               msgs[n].flags = (client->flags & I2C_M_TEN) | I2C_M_RD;
+               msgs[n].flags = (client->flags & I2C_M_TEN) |
+                               I2C_M_RD | I2C_M_DMA_SAFE;
                msgs[n].len = recv_len;
                msgs[n].buf = recv_buf;
                n++;