On Tue, Mar 30, 2010 at 01:59:33PM +0200, Robert Lukassen wrote: > This is a patch that makes sure that the device ID data (idVendor, > idProduct and bcdDevice) are assigned to the descriptor in the cdev > structure *before* the composite gadget starts binding. This allows the > composite driver, and all the composite functions it uses, access to > that data. > > In one of the composite functions we created, we needed to register an > input device and wanted to use the idVendor, idProduct and bcdDevice > codes to properly initialize the id field of the input device. We could > not do that because the idVendor, idProduct and bcdDevice values were > only set in the cdec structure *after* the composite->bind(cdev) call. > > Signed-off-by: Robert Lukassen <robert.lukassen@xxxxxxxxxx> > > diff --git a/drivers/usb/gadget/composite.c > b/drivers/usb/gadget/composite.c index 09289bb..65115da 100644 > --- a/drivers/usb/gadget/composite.c > +++ b/drivers/usb/gadget/composite.c > @@ -1004,6 +1004,14 @@ static int __init composite_bind(struct > usb_gadget *gadget) > */ > usb_ep_autoconfig_reset(cdev->gadget); > > + /* standardized runtime overrides for device ID data */ > + if (idVendor) > + cdev->desc.idVendor = cpu_to_le16(idVendor); > + if (idProduct) > + cdev->desc.idProduct = cpu_to_le16(idProduct); > + if (bcdDevice) > + cdev->desc.bcdDevice = cpu_to_le16(bcdDevice); > + > /* composite gadget needs to assign strings for whole device > (like Your patch is line-wrapped and tabs converted to spaces, making it impossible to apply :( care to redo it? thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html