From 6cc1405144cafb860619ed233f9ccf30518a1ea1 Mon Sep 17 00:00:00 2001 From: starous Date: Tue, 21 Sep 2010 21:57:57 +0200 Subject: [PATCH] .../serial/common.c - added missing configuration --- ChangeLog | 5 +++++ grub-core/bus/usb/serial/common.c | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 272264165..2a7889bf7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-09-21 Aleš Nesrsta + + * grub-core/bus/usb/serial/common.c (grub_usbserial_attach): + Added missing configuration of USB device. + 2010-09-21 Colin Watson * grub-core/normal/menu_entry.c (run): Make sure we always return diff --git a/grub-core/bus/usb/serial/common.c b/grub-core/bus/usb/serial/common.c index 6b5b90059..ee8794de0 100644 --- a/grub-core/bus/usb/serial/common.c +++ b/grub-core/bus/usb/serial/common.c @@ -44,6 +44,7 @@ grub_usbserial_attach (grub_usb_device_t usbdev, int configno, int interfno, struct grub_serial_port *port; int j; struct grub_usb_desc_if *interf; + grub_usb_err_t err = GRUB_USB_ERR_NONE; interf = usbdev->config[configno].interf[interfno].descif; @@ -80,7 +81,12 @@ grub_usbserial_attach (grub_usb_device_t usbdev, int configno, int interfno, port->out_endp = endp; } } - if (!port->out_endp || !port->in_endp) + + /* Configure device */ + if (port->out_endp && port->in_endp) + err = grub_usb_set_configuration (usbdev, configno + 1); + + if (!port->out_endp || !port->in_endp || err) { grub_free (port->name); grub_free (port);