From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Mon, 13 Jan 2014 15:02:38 +0100 Subject: [U-Boot] [PATCH] usb: ums: wait for usb cable connection before enter ums mode In-Reply-To: <52D3EACE.4010602@samsung.com> References: <1389103717-4619-1-git-send-email-p.marczak@samsung.com> <201401131214.26154.marex@denx.de> <52D3EACE.4010602@samsung.com> Message-ID: <201401131502.38440.marex@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Monday, January 13, 2014 at 02:31:58 PM, Przemyslaw Marczak wrote: > Hello, > > On 01/13/2014 12:14 PM, Marek Vasut wrote: > > On Monday, January 13, 2014 at 10:18:51 AM, Przemyslaw Marczak wrote: > >> Hello everyone, > >> > >> On 01/07/2014 03:08 PM, Przemyslaw Marczak wrote: > >>> Before this change ums mode can not be entered when device > >>> was using the same usb port for usb/uart communication. > >>> Switching USB cable from UART to USB always causes ums exit. > >>> > >>> Signed-off-by: Przemyslaw Marczak > >>> > >>> --- > >>> > >>> common/cmd_usb_mass_storage.c | 24 ++++++++++++++++++++++++ > >>> include/usb_mass_storage.h | 3 +++ > >>> 2 files changed, 27 insertions(+) > >>> > >>> diff --git a/common/cmd_usb_mass_storage.c > >>> b/common/cmd_usb_mass_storage.c index 99487f4..5f557d5 100644 > >>> --- a/common/cmd_usb_mass_storage.c > >>> +++ b/common/cmd_usb_mass_storage.c > >>> @@ -42,6 +42,30 @@ int do_usb_mass_storage(cmd_tbl_t *cmdtp, int flag, > >>> > >>> g_dnl_register("ums"); > >>> > >>> + /* Timeout unit: seconds */ > >>> + int cable_ready_timeout = UMS_CABLE_READY_TIMEOUT; > >>> + > >>> + if (!usb_cable_connected()) { > >>> + puts("Please connect USB cable.\n"); > >>> + > >>> + while (!usb_cable_connected()) { > >>> + if (ctrlc()) { > >>> + puts("\rCTRL+C - Operation aborted.\n"); > >>> + goto exit; > >>> + } > >>> + if (!cable_ready_timeout) { > >>> + puts("\rUSB cable not detected.\n" \ > >>> + "Command exit.\n"); > >>> + goto exit; > >>> + } > >>> + > >>> + printf("\rAuto exit in: %.2d s.", cable_ready_timeout); > >>> + mdelay(1000); > >>> + cable_ready_timeout--; > >>> + } > >>> + puts("\r\n"); > >>> + } > >>> + > >>> > >>> while (1) { > >>> > >>> usb_gadget_handle_interrupts(); > >>> > >>> diff --git a/include/usb_mass_storage.h b/include/usb_mass_storage.h > >>> index 9df3adc..058dcf1 100644 > >>> --- a/include/usb_mass_storage.h > >>> +++ b/include/usb_mass_storage.h > >>> @@ -20,6 +20,9 @@ > >>> > >>> #define UMS_NUM_SECTORS 0 > >>> #endif > >>> > >>> +/* Wait at maximum 60 seconds for cable connection */ > >>> +#define UMS_CABLE_READY_TIMEOUT 60 > >>> + > >>> > >>> struct ums { > >>> > >>> int (*read_sector)(struct ums *ums_dev, > >>> > >>> ulong start, lbaint_t blkcnt, void *buf); > >> > >> I was send some very useful fix to the ums. It is required for users who > >> are using the same usb port for USB and UART purposes. Without this fix > >> such users just can't use ums because it will always exit to prompt when > >> user change the cable. > > > > Can you please share the schematic of such a cable in public? > > Unfortunately I am not allowed to share such information. Is the trats2 so similar to galaxy SIII or what ? :) > > How does this > > "sharing" of USB and UART work? I am very curious here :-) > > Regarding the USB sharing explanation - please refer to FSA9480 data > sheet. It is available on the Internet. Thanks. > I can also recommend looking into newest kernel code support for Trats2 > device. Yes, this is helpful, thanks! > >> So I have few questions... > >> Marek, could you review this patch? > > > > On it! > > > >> And what about the release, are you going to send pull request before > >> the release? > >> If not, then is it possible to apply this patch directly to > >> u-boot/master by Tom Rini? > > > > PR will happen once I am through the load of patches in my mailbox. > > Thank you for patch apply. > > Regards,