]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/hid/hid-cypress.c
Merge branch 'master' into tk71
[mv-sheeva.git] / drivers / hid / hid-cypress.c
index 998b6f443d7dc062fff6263030209850d0c43221..2f0be4c66af72f356fb2cedf144c1d45375493a7 100644 (file)
  * Some USB barcode readers from cypress have usage min and usage max in
  * the wrong order
  */
-static void cp_report_fixup(struct hid_device *hdev, __u8 *rdesc,
-               unsigned int rsize)
+static __u8 *cp_report_fixup(struct hid_device *hdev, __u8 *rdesc,
+               unsigned int *rsize)
 {
        unsigned long quirks = (unsigned long)hid_get_drvdata(hdev);
        unsigned int i;
 
        if (!(quirks & CP_RDESC_SWAPPED_MIN_MAX))
-               return;
+               return rdesc;
 
-       for (i = 0; i < rsize - 4; i++)
+       for (i = 0; i < *rsize - 4; i++)
                if (rdesc[i] == 0x29 && rdesc[i + 2] == 0x19) {
                        __u8 tmp;
 
@@ -50,6 +50,7 @@ static void cp_report_fixup(struct hid_device *hdev, __u8 *rdesc,
                        rdesc[i + 3] = rdesc[i + 1];
                        rdesc[i + 1] = tmp;
                }
+       return rdesc;
 }
 
 static int cp_input_mapped(struct hid_device *hdev, struct hid_input *hi,
@@ -106,13 +107,13 @@ static int cp_probe(struct hid_device *hdev, const struct hid_device_id *id)
 
        ret = hid_parse(hdev);
        if (ret) {
-               dev_err(&hdev->dev, "parse failed\n");
+               hid_err(hdev, "parse failed\n");
                goto err_free;
        }
 
        ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT);
        if (ret) {
-               dev_err(&hdev->dev, "hw start failed\n");
+               hid_err(hdev, "hw start failed\n");
                goto err_free;
        }