From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Tue, 09 Sep 2014 16:25:09 +0200 Subject: [U-Boot] [PATCH v1 1/2] usb: dfu: add config option to use in dfu mode fullspeed only In-Reply-To: <540F0A1E.7060109@ti.com> References: <1410266224-4051-1-git-send-email-hs@denx.de> <1410266224-4051-2-git-send-email-hs@denx.de> <540F0A1E.7060109@ti.com> Message-ID: <20140909162509.40cff2ec@amdc2363> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Bin, > Heiko, > > On 09/09/2014 07:37 AM, Heiko Schocher wrote: > > add the new config option CONFIG_DFU_FULLSPEED. With this > > option enabled, DFU uses fullspeed only. > > Can we not introduce the new config option but check the gadget > driver speed in runtime as what the ether gadget driver does? > > I don't want two config options (CONFIG_USB_GADGET_DUALSPEED and > CONFIG_DFU_FULLSPEED) to control one feature, as in your patch 2/2. +1 > > Regards, > -Bin. > > > > > Signed-off-by: Heiko Schocher > > Cc: Tom Rini > > Cc: Lukasz Majewski > > Cc: Marek Vasut > > Cc: Liu Bin > > Cc: Lukas Stockmann > > --- > > README | 3 +++ > > drivers/usb/gadget/f_dfu.c | 3 +++ > > drivers/usb/gadget/g_dnl.c | 3 +++ > > 3 files changed, 9 insertions(+) > > > > diff --git a/README b/README > > index 0a0f528..1413392 100644 > > --- a/README > > +++ b/README > > @@ -1607,6 +1607,9 @@ The following options need to be configured: > > entering dfuMANIFEST state. Host waits this > > timeout, before sending again an USB request to the device. > > > > + CONFIG_DFU_FULLSPEED > > + use for the dfu functionality fullspeed only. > > + > > - USB Device Android Fastboot support: > > CONFIG_CMD_FASTBOOT > > This enables the command "fastboot" which enables > > the Android diff --git a/drivers/usb/gadget/f_dfu.c > > b/drivers/usb/gadget/f_dfu.c index 1145aab..dfa9f3b 100644 > > --- a/drivers/usb/gadget/f_dfu.c > > +++ b/drivers/usb/gadget/f_dfu.c > > @@ -238,6 +238,7 @@ static inline void to_dfu_mode(struct f_dfu > > *f_dfu) { > > f_dfu->usb_function.strings = dfu_strings; > > f_dfu->usb_function.hs_descriptors = f_dfu->function; > > + f_dfu->usb_function.descriptors = f_dfu->function; > > f_dfu->dfu_state = DFU_STATE_dfuIDLE; > > } > > > > @@ -245,6 +246,7 @@ static inline void to_runtime_mode(struct f_dfu > > *f_dfu) { > > f_dfu->usb_function.strings = NULL; > > f_dfu->usb_function.hs_descriptors = dfu_runtime_descs; > > + f_dfu->usb_function.descriptors = dfu_runtime_descs; > > } > > > > static int handle_upload(struct usb_request *req, u16 len) > > @@ -809,6 +811,7 @@ static int dfu_bind_config(struct > > usb_configuration *c) return -ENOMEM; > > f_dfu->usb_function.name = "dfu"; > > f_dfu->usb_function.hs_descriptors = dfu_runtime_descs; > > + f_dfu->usb_function.descriptors = dfu_runtime_descs; > > f_dfu->usb_function.bind = dfu_bind; > > f_dfu->usb_function.unbind = dfu_unbind; > > f_dfu->usb_function.set_alt = dfu_set_alt; > > diff --git a/drivers/usb/gadget/g_dnl.c b/drivers/usb/gadget/g_dnl.c > > index 58cad11..79e0c9c 100644 > > --- a/drivers/usb/gadget/g_dnl.c > > +++ b/drivers/usb/gadget/g_dnl.c > > @@ -143,6 +143,9 @@ static int g_dnl_config_register(struct > > usb_composite_dev *cdev) config->bConfigurationValue = > > CONFIGURATION_NUMBER; config->iConfiguration = STRING_USBDOWN; > > config->bind = g_dnl_do_config; > > +#if defined(CONFIG_DFU_FULLSPEED) > > + config->fullspeed = 1; > > +#endif > > > > return usb_add_config(cdev, config); > > } > > > -- Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group