]> git.karo-electronics.de Git - linux-beck.git/commitdiff
HID: uclogic: Override constant descriptors
authorNikolai Kondrashov <spbnick@gmail.com>
Wed, 14 Sep 2016 18:38:19 +0000 (21:38 +0300)
committerJiri Kosina <jkosina@suse.cz>
Mon, 19 Sep 2016 12:32:24 +0000 (14:32 +0200)
Make uclogic_report_fixup override constant descriptors with generated
descriptors, so models reusing product ID, but working with generated
descriptor get correct one.

Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-uclogic.c

index 72778b34046e360c3644a4b3b3312470d1696596..64abd8d731250f9ceddacc41675a3079feb80b51 100644 (file)
@@ -632,6 +632,12 @@ static __u8 *uclogic_report_fixup(struct hid_device *hdev, __u8 *rdesc,
        __u8 iface_num = iface->cur_altsetting->desc.bInterfaceNumber;
        struct uclogic_drvdata *drvdata = hid_get_drvdata(hdev);
 
+       if (drvdata->rdesc != NULL) {
+               rdesc = drvdata->rdesc;
+               *rsize = drvdata->rsize;
+               return rdesc;
+       }
+
        switch (hdev->product) {
        case USB_DEVICE_ID_UCLOGIC_TABLET_PF1209:
                if (*rsize == PF1209_RDESC_ORIG_SIZE) {
@@ -701,11 +707,6 @@ static __u8 *uclogic_report_fixup(struct hid_device *hdev, __u8 *rdesc,
                        break;
                }
                break;
-       default:
-               if (drvdata->rdesc != NULL) {
-                       rdesc = drvdata->rdesc;
-                       *rsize = drvdata->rsize;
-               }
        }
 
        return rdesc;