Message ID | 20120730213859.063173c1@neptune.home (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, 30 Jul 2012, Bruno Prémont wrote: > Commit 4ea5454203d991ec85264f64f89ca8855fce69b0 > [HID: Fix race condition between driver core and ll-driver] introduced > new locking around proce/remove functions that prevent any report/reply > from hardware to reach driver until it returned from probe. > > As such, the ask-reply way to checking picoLCD firmware version during > probe is bound to timeout and let probe fail. > > Disabling the check lets driver sucessfully probe again. > > Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org> > --- > drivers/hid/hid-picolcd_core.c | 8 ++++---- > 1 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/hid/hid-picolcd_core.c b/drivers/hid/hid-picolcd_core.c > index 2d7ef68..42d0791 100644 > --- a/drivers/hid/hid-picolcd_core.c > +++ b/drivers/hid/hid-picolcd_core.c > @@ -478,13 +478,13 @@ static int picolcd_probe_lcd(struct hid_device *hdev, struct picolcd_data *data) > { > int error; > > - error = picolcd_check_version(hdev); > +/* error = picolcd_check_version(hdev); > if (error) > return error; > > if (data->version[0] != 0 && data->version[1] != 3) > hid_info(hdev, "Device with untested firmware revision, please submit /sys/kernel/debug/hid/%s/rdesc for this device.\n", > - dev_name(&hdev->dev)); > + dev_name(&hdev->dev)); */ Please just remove it altogether, I don't see a reason to keep the commented-out code in the in-tree driver. Once the locking mess is sorted out, we can re-introduce it again as necessary. Thanks.
diff --git a/drivers/hid/hid-picolcd_core.c b/drivers/hid/hid-picolcd_core.c index 2d7ef68..42d0791 100644 --- a/drivers/hid/hid-picolcd_core.c +++ b/drivers/hid/hid-picolcd_core.c @@ -478,13 +478,13 @@ static int picolcd_probe_lcd(struct hid_device *hdev, struct picolcd_data *data) { int error; - error = picolcd_check_version(hdev); +/* error = picolcd_check_version(hdev); if (error) return error; if (data->version[0] != 0 && data->version[1] != 3) hid_info(hdev, "Device with untested firmware revision, please submit /sys/kernel/debug/hid/%s/rdesc for this device.\n", - dev_name(&hdev->dev)); + dev_name(&hdev->dev)); */ /* Setup keypad input device */ error = picolcd_init_keys(data, picolcd_in_report(REPORT_KEY_STATE, hdev)); @@ -534,7 +534,7 @@ err: static int picolcd_probe_bootloader(struct hid_device *hdev, struct picolcd_data *data) { - int error; +/* int error; error = picolcd_check_version(hdev); if (error) @@ -542,7 +542,7 @@ static int picolcd_probe_bootloader(struct hid_device *hdev, struct picolcd_data if (data->version[0] != 1 && data->version[1] != 0) hid_info(hdev, "Device with untested bootloader revision, please submit /sys/kernel/debug/hid/%s/rdesc for this device.\n", - dev_name(&hdev->dev)); + dev_name(&hdev->dev)); */ picolcd_init_devfs(data, NULL, NULL, picolcd_out_report(REPORT_BL_READ_MEMORY, hdev),
Commit 4ea5454203d991ec85264f64f89ca8855fce69b0 [HID: Fix race condition between driver core and ll-driver] introduced new locking around proce/remove functions that prevent any report/reply from hardware to reach driver until it returned from probe. As such, the ask-reply way to checking picoLCD firmware version during probe is bound to timeout and let probe fail. Disabling the check lets driver sucessfully probe again. Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org> --- drivers/hid/hid-picolcd_core.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)