All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vivek Gautam <gautamvivek1987@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [U-Boot, v3, 3/8] usb: hub: Power-cycle on root-hub ports
Date: Tue, 23 Apr 2013 12:15:45 +0530	[thread overview]
Message-ID: <CAFp+6iF8ss1TMYcKW8Kp1MERF==t8gfi1rDTnT4_fRnRCu8Fzg@mail.gmail.com> (raw)
In-Reply-To: <CAODwPW_=wzRyYgnWsT4ad4Fyp9s6im7taaMRsGkH667awC4BzQ@mail.gmail.com>

Hi,


On Tue, Apr 23, 2013 at 3:32 AM, Julius Werner <jwerner@chromium.org> wrote:
>> This 20ms delay is truely being taken to be on safer side (twice of
>> Power-on-to-power-good),
>> its not observational.
>> In my earlier patch-series, we were doing the same way as you are
>> suggesting here (power-on
>> ports only if they aren't), however Marek suggested to power-cycle the
>> ports. This would ensure
>> that we don't have any spurious Port status (telling us that port is
>> powered up).
>
> Fair enough... I guess 20ms overall is not a big deal in the whole
> picture. I sometimes tend to overoptimize things...
>
>> Actually i was seeing a strage behavior on USB 2.0 protocol ports
>> available with XHCI.
>> Since all ports with XHCI are powered-up after a Chip-reset, the
>> instant we do a power-on
>> on these ports (as with original code - simply setting the PORT_POWER
>> feature), the Connect status
>> change bit used to get cleared (however Current connect status bit was
>> still set).
>
> This is a bug in your XHCI code I hadn't spotted before: in
> xhci_submit_root(SET_FEATURE) you read the PORTSC register, add a bit,
> and write it again... without calling xhci_port_state_to_neutral()
> inbetween. Thus you clear any pending change events when you set
> PORT_POWER.

Right, we need to do that.

> (Seems the EHCI code has a similar bug in CLEAR_FEATURE,
> now that I'm looking at it... someone should put a 'reg &=
> ~EHCI_PS_CLEAR;' in there.)

True, EHCI has it for SET_FEATURE but not for CLEAR_FEATURE.

>
>> Hmm, so right now we are doing this for one port at a time.
>> I am sure parallelising things as you suggested would be best to do here, but
>> can you please explain, would handling one port at a time lead to unwanted
>> behavior from Host's side somehow ?
>
> It doesn't affect correctness, just the amount of time "wasted". Doing
> it one port at a time means you wait 100ms on a 5 port root hub, while
> you could get by with 20ms overall by parallelizing it.

True, will amend this as required.



-- 
Best Regards
Vivek

  reply	other threads:[~2013-04-23  6:45 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-12 11:04 [U-Boot] [PATCH v3 0/8] usb: ss: Some fixes and cleanup for USB super-speed support Vivek Gautam
2013-04-12 11:04 ` [U-Boot] [PATCH v3 1/8] usb: common: Weed out USB_**_PRINTFs from usb framework Vivek Gautam
2013-04-12 11:04 ` [U-Boot] [PATCH v3 2/8] USB: Some cleanup prior to USB 3.0 interface addition Vivek Gautam
2013-04-12 11:04 ` [U-Boot] [PATCH v3 3/8] usb: hub: Power-cycle on root-hub ports Vivek Gautam
2013-04-19 19:00   ` [U-Boot] [U-Boot, v3, " Julius Werner
2013-04-22  8:21     ` Vivek Gautam
2013-04-22 22:02       ` Julius Werner
2013-04-23  6:45         ` Vivek Gautam [this message]
2013-04-12 11:04 ` [U-Boot] [PATCH v3 4/8] usb: Update device class in usb device's descriptor Vivek Gautam
2013-04-19 18:39   ` [U-Boot] [U-Boot, v3, " Julius Werner
2013-04-12 11:04 ` [U-Boot] [PATCH v3 5/8] usb: hub: Fix enumration timeout Vivek Gautam
2013-04-12 11:04 ` [U-Boot] [PATCH v3 6/8] USB: SS: Add support for Super Speed USB interface Vivek Gautam
2013-04-19 18:22   ` [U-Boot] [U-Boot, v3, " Julius Werner
2013-04-19 18:38     ` Marek Vasut
2013-04-19 20:32       ` Julius Werner
2013-04-20 11:57         ` Marek Vasut
2013-04-22  6:46           ` Vivek Gautam
2013-04-23  2:24             ` Marek Vasut
2013-04-23  6:46               ` Vivek Gautam
2013-04-22  6:43     ` Vivek Gautam
2013-04-22 22:14       ` Julius Werner
2013-04-23  4:39         ` Vivek Gautam
2013-04-12 11:04 ` [U-Boot] [PATCH v3 7/8] usb: hub: Reset only usb 2.0 ports Vivek Gautam
2013-04-23 17:23   ` [U-Boot] [U-Boot,v3,7/8] " Julius Werner
2013-04-24  0:21     ` Marek Vasut
2013-04-24  6:08       ` Vivek Gautam
2013-04-30 12:24         ` Vivek Gautam
2013-04-30 17:11           ` Marek Vasut
2013-04-12 11:04 ` [U-Boot] [PATCH v3 8/8] usb: common: Use a global macro for 'min3' Vivek Gautam
2013-04-14 17:11   ` Marek Vasut
2013-04-19  9:38     ` [U-Boot] [PATCH] usb: common: Use a global definition " Vivek Gautam
2013-04-19 11:29       ` Marek Vasut
2013-04-22 13:45         ` Tom Rini
2013-04-24  6:19           ` Vivek Gautam
2013-04-24  6:21             ` Vivek Gautam
2013-04-24 12:03               ` Marek Vasut
2013-04-14 17:14 ` [U-Boot] [PATCH v3 0/8] usb: ss: Some fixes and cleanup for USB super-speed support Marek Vasut
2013-04-18  6:25   ` Vivek Gautam
2013-04-18 12:38     ` Marek Vasut
2013-04-18 13:08       ` Vivek Gautam
2013-04-14 18:13 ` Marek Vasut
2013-04-18  6:24   ` Vivek Gautam
2013-04-18 10:59     ` Vivek Gautam
2013-04-18 11:08       ` Vivek Gautam
2013-04-18 12:43         ` Marek Vasut
2013-04-18 17:11           ` Julius Werner
2013-04-18 19:15             ` Marek Vasut
2013-04-19  4:51               ` Vivek Gautam

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='CAFp+6iF8ss1TMYcKW8Kp1MERF==t8gfi1rDTnT4_fRnRCu8Fzg@mail.gmail.com' \
    --to=gautamvivek1987@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.