HID: i2c-hid: no longer need raw access to HID descriptor structure
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 18 Jan 2022 07:26:27 +0000 (23:26 -0800)
committerJiri Kosina <jkosina@suse.cz>
Mon, 14 Feb 2022 09:52:29 +0000 (10:52 +0100)
We can stop defining a union for HID descriptor data as we now only access
individual members of it by names and using proper types instead of
accessing by offset from the beginning of the data structure.

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 a32502d..f312d2a 100644 (file)
@@ -98,10 +98,7 @@ struct i2c_hid_desc {
 struct i2c_hid {
        struct i2c_client       *client;        /* i2c client */
        struct hid_device       *hid;   /* pointer to corresponding HID dev */
-       union {
-               __u8 hdesc_buffer[sizeof(struct i2c_hid_desc)];
-               struct i2c_hid_desc hdesc;      /* the HID Descriptor */
-       };
+       struct i2c_hid_desc hdesc;              /* the HID Descriptor */
        __le16                  wHIDDescRegister; /* location of the i2c
                                                   * register of the HID
                                                   * descriptor. */
@@ -923,7 +920,7 @@ static int i2c_hid_fetch_hid_descriptor(struct i2c_hid *ihid)
                        "weird size of HID descriptor (%u)\n", dsize);
                return -ENODEV;
        }
-       i2c_hid_dbg(ihid, "HID Descriptor: %*ph\n", dsize, ihid->hdesc_buffer);
+       i2c_hid_dbg(ihid, "HID Descriptor: %*ph\n", dsize, &ihid->hdesc);
        return 0;
 }