public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Przemyslaw Marczak <p.marczak@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] usb: ums: wait for usb cable connection before enter ums mode
Date: Mon, 13 Jan 2014 10:18:51 +0100	[thread overview]
Message-ID: <52D3AF7B.6080108@samsung.com> (raw)
In-Reply-To: <1389103717-4619-1-git-send-email-p.marczak@samsung.com>

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 <p.marczak@samsung.com>
>
> ---
>   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.

So I have few questions...
Marek, could you review this patch?
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?

Thank you,

-- 
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marczak at samsung.com

  reply	other threads:[~2014-01-13  9:18 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-07 14:08 [U-Boot] [PATCH] usb: ums: wait for usb cable connection before enter ums mode Przemyslaw Marczak
2014-01-13  9:18 ` Przemyslaw Marczak [this message]
2014-01-13 11:14   ` Marek Vasut
2014-01-13 13:31     ` Przemyslaw Marczak
2014-01-13 14:02       ` Marek Vasut
2014-01-13 11:29 ` Marek Vasut

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52D3AF7B.6080108@samsung.com \
    --to=p.marczak@samsung.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox