* [U-Boot-Users] [PATCH] fix USB devices with multiple configurations
@ 2008-07-06 16:58 Harald Welte
2008-07-09 22:11 ` Wolfgang Denk
2008-07-10 9:59 ` Wolfgang Denk
0 siblings, 2 replies; 6+ messages in thread
From: Harald Welte @ 2008-07-06 16:58 UTC (permalink / raw)
To: u-boot
This patch fixes bugs in usbdcore*.c related to the use of devices
with multiple configurations.
The original code made mistakes about the meaning of configuration value and
configuration index, and the resulting off-by-one errors resulted in:
* SET_CONFIGURATION always selected the first configuration, no matter what
wValue is being passed.
* GET_DESCRIPTOR/CONFIGURATION always returned the descriptor for the first
configuration (index 0).
Signed-off-by: Harald Welte <laforge@openmoko.org>
diff --git a/drivers/usb/usbdcore.c b/drivers/usb/usbdcore.c
index 65a5724..a2e6711 100644
--- a/drivers/usb/usbdcore.c
+++ b/drivers/usb/usbdcore.c
@@ -147,12 +147,9 @@ struct usb_string_descriptor *usbd_get_string (__u8 index)
static struct usb_configuration_instance *usbd_device_configuration_instance (struct usb_device_instance *device,
unsigned int port, unsigned int configuration)
{
- /* XXX */
- configuration = configuration ? configuration - 1 : 0;
-
- if (configuration >= device->configurations) {
+ if (configuration >= device->configurations)
return NULL;
- }
+
return device->configuration_instance_array + configuration;
}
diff --git a/drivers/usb/usbdcore_ep0.c b/drivers/usb/usbdcore_ep0.c
index 2c89304..d9808f9 100644
--- a/drivers/usb/usbdcore_ep0.c
+++ b/drivers/usb/usbdcore_ep0.c
@@ -237,8 +237,8 @@ static int ep0_get_descriptor (struct usb_device_instance *device,
return -1;
}
/*dbg_ep0(2, "%d %d", index, device_descriptor->bNumConfigurations); */
- if (index > device_descriptor->bNumConfigurations) {
- dbg_ep0 (0, "index too large: %d > %d", index,
+ if (index >= device_descriptor->bNumConfigurations) {
+ dbg_ep0 (0, "index too large: %d >= %d", index,
device_descriptor->
bNumConfigurations);
return -1;
@@ -612,14 +612,8 @@ int ep0_recv_setup (struct urb *urb)
case USB_REQ_SET_CONFIGURATION:
/* c.f. 9.4.7 - the top half of wValue is reserved */
- /* */
- if ((device->configuration =
- le16_to_cpu (request->wValue) & 0xFF80) != 0) {
- /* c.f. 9.4.7 - zero is the default or addressed state, in our case this */
- /* is the same is configuration zero */
- serial_printf("error setting dev->config to zero!\n");
- device->configuration = 0; /* TBR - ?????? */
- }
+ device->configuration = le16_to_cpu(request->wValue) & 0xff;
+
/* reset interface and alternate settings */
device->interface = device->alternate = 0;
--
- Harald Welte <laforge@gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.denx.de/pipermail/u-boot/attachments/20080707/ae645ae3/attachment.pgp
^ permalink raw reply related [flat|nested] 6+ messages in thread* [U-Boot-Users] [PATCH] fix USB devices with multiple configurations
2008-07-06 16:58 [U-Boot-Users] [PATCH] fix USB devices with multiple configurations Harald Welte
@ 2008-07-09 22:11 ` Wolfgang Denk
2008-07-10 9:36 ` Markus Klotzbücher
[not found] ` <20080828235516.GB30743@game.jcrosoft.org>
2008-07-10 9:59 ` Wolfgang Denk
1 sibling, 2 replies; 6+ messages in thread
From: Wolfgang Denk @ 2008-07-09 22:11 UTC (permalink / raw)
To: u-boot
In message <20080706165805.GG20299@prithivi.gnumonks.org> you wrote:
>
> This patch fixes bugs in usbdcore*.c related to the use of devices
> with multiple configurations.
>
> The original code made mistakes about the meaning of configuration value and
> configuration index, and the resulting off-by-one errors resulted in:
>
> * SET_CONFIGURATION always selected the first configuration, no matter what
> wValue is being passed.
> * GET_DESCRIPTOR/CONFIGURATION always returned the descriptor for the first
> configuration (index 0).
>
> Signed-off-by: Harald Welte <laforge@openmoko.org>
Markus, are you going to add this to the USB repo any time soon?
Or you could just ACK it (if you think so) and tell me to pick up
directly.
Thanks in advance.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
It's all Klatchian to me.
- Terry Pratchett & Stephen Briggs, _The Discworld Companion_
^ permalink raw reply [flat|nested] 6+ messages in thread* [U-Boot-Users] [PATCH] fix USB devices with multiple configurations
2008-07-09 22:11 ` Wolfgang Denk
@ 2008-07-10 9:36 ` Markus Klotzbücher
2008-07-10 10:00 ` Wolfgang Denk
[not found] ` <20080828235516.GB30743@game.jcrosoft.org>
1 sibling, 1 reply; 6+ messages in thread
From: Markus Klotzbücher @ 2008-07-10 9:36 UTC (permalink / raw)
To: u-boot
Wolfgang Denk <wd@denx.de> writes:
> In message <20080706165805.GG20299@prithivi.gnumonks.org> you wrote:
>>
>> This patch fixes bugs in usbdcore*.c related to the use of devices
>> with multiple configurations.
>>
>> The original code made mistakes about the meaning of configuration value and
>> configuration index, and the resulting off-by-one errors resulted in:
>>
>> * SET_CONFIGURATION always selected the first configuration, no matter what
>> wValue is being passed.
>> * GET_DESCRIPTOR/CONFIGURATION always returned the descriptor for the first
>> configuration (index 0).
>>
>> Signed-off-by: Harald Welte <laforge@openmoko.org>
Acked-by: Markus Klotzbuecher <mk@denx.de>
> Markus, are you going to add this to the USB repo any time soon?
>
> Or you could just ACK it (if you think so) and tell me to pick up
> directly.
Wolfgang, please apply.
Sorry for the delay.
Best regards
Markus Klotzbuecher
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
^ permalink raw reply [flat|nested] 6+ messages in thread* [U-Boot-Users] [PATCH] fix USB devices with multiple configurations
2008-07-10 9:36 ` Markus Klotzbücher
@ 2008-07-10 10:00 ` Wolfgang Denk
0 siblings, 0 replies; 6+ messages in thread
From: Wolfgang Denk @ 2008-07-10 10:00 UTC (permalink / raw)
To: u-boot
In message <878wwa2i8m.fsf@denx.de> you wrote:
>
> Acked-by: Markus Klotzbuecher <mk@denx.de>
thanks.
> Wolfgang, please apply.
Done, thanks.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
We're all sorry for the other guy when he loses his job to a machine.
But when it comes to your job -- that's different. And it always will
be different.
-- McCoy, "The Ultimate Computer", stardate 4729.4
^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <20080828235516.GB30743@game.jcrosoft.org>]
* [U-Boot] [U-Boot-Users] [PATCH] fix USB devices with multiple configurations
[not found] ` <20080828235516.GB30743@game.jcrosoft.org>
@ 2008-08-29 6:07 ` Markus Klotzbücher
0 siblings, 0 replies; 6+ messages in thread
From: Markus Klotzbücher @ 2008-08-29 6:07 UTC (permalink / raw)
To: u-boot
On Fri, Aug 29, 2008 at 01:55:16AM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 00:11 Thu 10 Jul , Wolfgang Denk wrote:
> > In message <20080706165805.GG20299@prithivi.gnumonks.org> you wrote:
> > >
> > > This patch fixes bugs in usbdcore*.c related to the use of devices
> > > with multiple configurations.
> > >
> > > The original code made mistakes about the meaning of configuration value and
> > > configuration index, and the resulting off-by-one errors resulted in:
> > >
> > > * SET_CONFIGURATION always selected the first configuration, no matter what
> > > wValue is being passed.
> > > * GET_DESCRIPTOR/CONFIGURATION always returned the descriptor for the first
> > > configuration (index 0).
> > >
> > > Signed-off-by: Harald Welte <laforge@openmoko.org>
> >
> > Markus, are you going to add this to the USB repo any time soon?
> >
> > Or you could just ACK it (if you think so) and tell me to pick up
> > directly.
> Any news about this patch?
Has been merged a long time ago as
cc83b27217f7380041fea386ddb6d6d9b261617d
Or what type of news are you looking for?
Best regards
Markus
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de")
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot-Users] [PATCH] fix USB devices with multiple configurations
2008-07-06 16:58 [U-Boot-Users] [PATCH] fix USB devices with multiple configurations Harald Welte
2008-07-09 22:11 ` Wolfgang Denk
@ 2008-07-10 9:59 ` Wolfgang Denk
1 sibling, 0 replies; 6+ messages in thread
From: Wolfgang Denk @ 2008-07-10 9:59 UTC (permalink / raw)
To: u-boot
In message <20080706165805.GG20299@prithivi.gnumonks.org> you wrote:
>
> This patch fixes bugs in usbdcore*.c related to the use of devices
> with multiple configurations.
>
> The original code made mistakes about the meaning of configuration value and
> configuration index, and the resulting off-by-one errors resulted in:
>
> * SET_CONFIGURATION always selected the first configuration, no matter what
> wValue is being passed.
> * GET_DESCRIPTOR/CONFIGURATION always returned the descriptor for the first
> configuration (index 0).
>
> Signed-off-by: Harald Welte <laforge@openmoko.org>
Applied, thanks.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Everyone who comes in here wants three things:
1. They want it quick.
2. They want it good.
3. They want it cheap.
I tell 'em to pick two and call me back.
- sign on the back wall of a small printing company in Delaware
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-08-29 6:07 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-06 16:58 [U-Boot-Users] [PATCH] fix USB devices with multiple configurations Harald Welte
2008-07-09 22:11 ` Wolfgang Denk
2008-07-10 9:36 ` Markus Klotzbücher
2008-07-10 10:00 ` Wolfgang Denk
[not found] ` <20080828235516.GB30743@game.jcrosoft.org>
2008-08-29 6:07 ` [U-Boot] " Markus Klotzbücher
2008-07-10 9:59 ` Wolfgang Denk
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox