Re: [PATCH 08/10] HID: move apple quirks

From: Jiri Slaby
Date: Mon Jun 09 2008 - 06:41:59 EST


On 06/04/2008 04:13 PM, Jiri Kosina wrote:
On Fri, 16 May 2008, Jiri Slaby wrote:


+static int apple_probe(struct hid_device *hdev,
+ const struct hid_device_id *id)
+{
+ unsigned long quirks = id->driver_data;
+ struct apple_sc *asc;
+ int ret;
+
+ /* return something else or move to hid layer? device will reside
+ allocated */
+ if (id->bus == BUS_USB && (id->driver_data & APPLE_IGNORE_MOUSE) &&
+ to_usb_interface(hdev->dev.parent)->cur_altsetting->
+ desc.bInterfaceProtocol == USB_INTERFACE_PROTOCOL_MOUSE)
+ return -ENODEV;
+
+ asc = kzalloc(sizeof(*asc), GFP_KERNEL);
+ if (asc == NULL) {
+ dev_err(&hdev->dev, "can't alloc apple descriptor\n");
+ return -ENOMEM;
+ }
+
+ hid_set_drvdata(hdev, asc);
+
+ if (quirks & APPLE_HIDDEV)
+ hdev->quirks |= HID_QUIRK_HIDDEV;
+ if (quirks & APPLE_IGNORE_HIDINPUT)
+ hdev->quirks |= HID_QUIRK_IGNORE_HIDINPUT;
+
+ ret = hid_parse(hdev);
+ if (ret) {
+ dev_err(&hdev->dev, "parse failed\n");
+ goto err_free;
+ }
+
+ ret = hid_hw_start(hdev);
+ if (ret) {
+ dev_err(&hdev->dev, "hw start failed\n");
+ goto err_free;
+ }
+
+ return 0;
+err_free:
+ kfree(asc);
+ return ret;
+}

Hi Jiri,

you don't seem to set asc->quirks anywhere, but the rest of the code is testing this flag. Is something like

asc->quirks = id->driver_data;

missing in the _probe routine?

Blah, good catch! Do you want me to post a patch, or will you fix this on your own?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/