Re: [PATCH 1/2] usb: dwc3: core: Introduce dwc3_device_reinit()

From: Felipe Balbi
Date: Wed Mar 16 2016 - 09:15:16 EST



Hi,

Roger Quadros <rogerq@xxxxxx> writes:
> [ text/plain ]
> We will need this function for a workaround.
> The function issues a softreset only to the device
> controller and performs minimal re-initialization
> so that the device controller can be usable.
>
> As some code is similar to dwc3_core_init() take out
> common code into dwc3_get_gctl_quirks().
>
> We add a new member (prtcap_mode) to struct dwc3 to
> keep track of the current mode in the PRTCAPDIR register.
>
> Signed-off-by: Roger Quadros <rogerq@xxxxxx>

I must say, I don't like this at all :-p There's ONE known silicon which
needs this because of a poor silicon integration which took an IP with a
known erratum where it can't be made to work on lower speeds and STILL
was integrated without a superspeed PHY.

There's a reason why I never tried to push this upstream myself ;-)

I'm really thinking we might be better off adding a quirk flag to skip
the metastability workaround and allow this ONE silicon to set the
controller to lower speed.

John, can you check with your colleagues if we would ever fall into
STAR#9000525659 if we set maximum speed to high speed during driver
probe and never touch it again ? I would assume we don't really fall
into the metastability workaround, right ? We're not doing any sort of
PM for dwc3...

--
balbi

Attachment: signature.asc
Description: PGP signature