[U-Boot] [PATCH] USB: fix USB keyboard polling parameter

When doing a "GET_REPORT" request on the keyboard control endpoint, the report ID should 0 (ie report ID not used) rather than 1 as reports are not used in boot mode.
Signed-off-by: Vincent Palatin vpalatin@chromium.org --- common/usb_kbd.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/common/usb_kbd.c b/common/usb_kbd.c index 75107c9..aaf7d6f 100644 --- a/common/usb_kbd.c +++ b/common/usb_kbd.c @@ -320,7 +320,7 @@ static inline void usb_kbd_poll_for_event(struct usb_device *dev) struct usb_kbd_pdata *data = dev->privptr; iface = &dev->config.if_desc[0]; usb_get_report(dev, iface->desc.bInterfaceNumber, - 1, 1, data->new, sizeof(data->new)); + 1, 0, data->new, sizeof(data->new)); if (memcmp(data->old, data->new, sizeof(data->new))) usb_kbd_irq_worker(dev); #endif

When doing a "GET_REPORT" request on the keyboard control endpoint, the report ID should 0 (ie report ID not used) rather than 1 as reports are not used in boot mode.
Signed-off-by: Vincent Palatin vpalatin@chromium.org
common/usb_kbd.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/common/usb_kbd.c b/common/usb_kbd.c index 75107c9..aaf7d6f 100644 --- a/common/usb_kbd.c +++ b/common/usb_kbd.c @@ -320,7 +320,7 @@ static inline void usb_kbd_poll_for_event(struct usb_device *dev) struct usb_kbd_pdata *data = dev->privptr; iface = &dev->config.if_desc[0]; usb_get_report(dev, iface->desc.bInterfaceNumber,
1, 1, data->new, sizeof(data->new));
if (memcmp(data->old, data->new, sizeof(data->new))) usb_kbd_irq_worker(dev);1, 0, data->new, sizeof(data->new));
#endif
Good, did you test this?
M

On Mon, Jan 9, 2012 at 12:46, Marek Vasut marek.vasut@gmail.com wrote:
When doing a "GET_REPORT" request on the keyboard control endpoint, the report ID should 0 (ie report ID not used) rather than 1 as reports are not used in boot mode.
Signed-off-by: Vincent Palatin vpalatin@chromium.org
common/usb_kbd.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/common/usb_kbd.c b/common/usb_kbd.c index 75107c9..aaf7d6f 100644 --- a/common/usb_kbd.c +++ b/common/usb_kbd.c @@ -320,7 +320,7 @@ static inline void usb_kbd_poll_for_event(struct usb_device *dev) struct usb_kbd_pdata *data = dev->privptr; iface = &dev->config.if_desc[0]; usb_get_report(dev, iface->desc.bInterfaceNumber,
- 1, 1, data->new, sizeof(data->new));
- 1, 0, data->new, sizeof(data->new));
if (memcmp(data->old, data->new, sizeof(data->new))) usb_kbd_irq_worker(dev); #endif
Good, did you test this?
Yes, on about a dozen different keyboards : most don't care, a couple used to be confused and are now working.

On Mon, Jan 9, 2012 at 12:46, Marek Vasut marek.vasut@gmail.com wrote:
When doing a "GET_REPORT" request on the keyboard control endpoint, the report ID should 0 (ie report ID not used) rather than 1 as reports are not used in boot mode.
Signed-off-by: Vincent Palatin vpalatin@chromium.org
common/usb_kbd.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/common/usb_kbd.c b/common/usb_kbd.c index 75107c9..aaf7d6f 100644 --- a/common/usb_kbd.c +++ b/common/usb_kbd.c @@ -320,7 +320,7 @@ static inline void usb_kbd_poll_for_event(struct usb_device *dev) struct usb_kbd_pdata *data = dev->privptr; iface = &dev->config.if_desc[0]; usb_get_report(dev, iface->desc.bInterfaceNumber,
1, 1, data->new, sizeof(data->new));
1, 0, data->new, sizeof(data->new)); if (memcmp(data->old, data->new, sizeof(data->new))) usb_kbd_irq_worker(dev);
#endif
Good, did you test this?
Yes, on about a dozen different keyboards : most don't care, a couple used to be confused and are now working.
Awesome :-) I'll test this on mine and Ack it then.
btw. why do you even need this? Do you have some weird hardware ?
M

Hi,
2012/1/9 Vincent Palatin vpalatin@chromium.org:
When doing a "GET_REPORT" request on the keyboard control endpoint, the report ID should 0 (ie report ID not used) rather than 1 as reports are not used in boot mode.
Signed-off-by: Vincent Palatin vpalatin@chromium.org
Applied to u-boot-usb. Thanks.
Kind regards,
Remy

When doing a "GET_REPORT" request on the keyboard control endpoint, the report ID should 0 (ie report ID not used) rather than 1 as reports are not used in boot mode.
Signed-off-by: Vincent Palatin vpalatin@chromium.org
common/usb_kbd.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/common/usb_kbd.c b/common/usb_kbd.c index 75107c9..aaf7d6f 100644 --- a/common/usb_kbd.c +++ b/common/usb_kbd.c @@ -320,7 +320,7 @@ static inline void usb_kbd_poll_for_event(struct usb_device *dev) struct usb_kbd_pdata *data = dev->privptr; iface = &dev->config.if_desc[0]; usb_get_report(dev, iface->desc.bInterfaceNumber,
1, 1, data->new, sizeof(data->new));
if (memcmp(data->old, data->new, sizeof(data->new))) usb_kbd_irq_worker(dev);1, 0, data->new, sizeof(data->new));
#endif
Hi,
what's the status of this patch/patchset?
Thanks M
participants (4)
-
Marek Vasut
-
Marek Vasut
-
Remy Bohmer
-
Vincent Palatin