lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAMz4kuKNeu-irhcOav0a_Dp2nHN-ve5aLa0zuqPp3+XS002Z2A@mail.gmail.com>
Date:	Fri, 13 May 2016 20:35:03 +0800
From:	Baolin Wang <baolin.wang@...aro.org>
To:	Felipe Balbi <balbi@...nel.org>
Cc:	Greg KH <gregkh@...uxfoundation.org>,
	Mark Brown <broonie@...nel.org>,
	USB <linux-usb@...r.kernel.org>,
	LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] dwc3: gadget: Defer starting the gadget device until
 gadget is power on

On 13 May 2016 at 20:09, Felipe Balbi <balbi@...nel.org> wrote:
>
> Hi,
>
> Baolin Wang <baolin.wang@...aro.org> writes:
>>>> diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
>>>> index 6254b2f..dada5c6 100644
>>>> --- a/drivers/usb/dwc3/core.h
>>>> +++ b/drivers/usb/dwc3/core.h
>>>> @@ -734,6 +734,9 @@ struct dwc3_scratchpad_array {
>>>>   *   1       - -3.5dB de-emphasis
>>>>   *   2       - No de-emphasis
>>>>   *   3       - Reserved
>>>> + * @can_save_power: set if the gadget will power off when no cable plug in.
>>>
>>> nope
>>>
>>>> + * @need_restart: set if we need to restart the gadget.
>>>
>>> why does it need restart? Why is dwc3 powered off? Who powers it off?
>>
>> Because when the dwc3 Vbus is off (no cable pluging in now),
>> especially for some mobile device, the system need to power off the
>> dwc3 to save power in this situation.
>
> but dwc3 doesn't do this by itself, so who's doing it?

Yes, the dwc3 clock is controlled by the Soc system, so the Soc system
can disable the dwc3 clock when there is no cable plugging in.

>
>>> This looks like a *really* bad power management implementation. Do you
>>> have hibernation enabled? Do you have Clock gating enabled? Which dwc3
>>> version are you using? How was it configured?
>>
>> This is not hibernation, we want to power off the dwc3 to save power
>> when no cable plugging in. Yes, we have clock gating, at this
>> situation we will disable the clock and shutdown the phy to save
>> power. For mobile device, most time no cable plugging in, so we need
>> to think about the power consuming. How do you think this requirement?
>
> Well, seems like you're missing *proper* runtime PM. I've been meaning
> to work on it for weeks, but I still have a few other things to do
> before I get to that. In any case, we don't need to do what you did
> here. There are better ways.

Make sense.

>
>>> Anyway, which platform are you dealing with? Why is dwc3 off while VBUS
>>> is off? How do you handle host mode?
>>
>> On Spreadtrum platform, for thinking about some mobile devices with
>
> I meant the SoC ;-) It's their own SoC? Are we getting glue-layer
> patches any time soon?

Yes, it's their own SoC. Thanks.

>
>> strict power management. This is just for gadget mode, we don't power
>> off the dwc3 when it is host mode. Thanks.
>
> okay, thanks
>
> --
> balbi



-- 
Baolin.wang
Best Regards

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ