Re: [PATCH v2 3/4] usb: dwc3: Add property snps,enable-refclk-sof

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Rob Herring <robh@xxxxxxxxxx> writes:
> On Fri, Dec 07, 2018 at 06:27:43PM -0800, Thinh Nguyen wrote:
>> This patch adds a property to enable the controller to track the
>> frame number based on the reference clock.
>> 
>> When operating in USB 2.0 mode, the peripheral controller uses the USB2
>> PHY clocks to track the frame number. This prevents the controller from
>> suspending the USB2 PHY when the device goes into low power. Version
>> 1.80a of the DWC_usb31 peripheral controller introduces a way to track
>> frame number based on the reference clock instead. This feature allows
>> the controller to suspend the USB2 PHY when the device goes into low
>> power. This improves power saving for devices that have isochronous
>> endpoints.
>> 
>> Signed-off-by: Thinh Nguyen <thinhn@xxxxxxxxxxxx>
>> ---
>> Changes in v2:
>> - Revise property description
>> - Rename property from snps,enable-refclk-lpm to snps,enable-refclk-sof
>> 
>>  Documentation/devicetree/bindings/usb/dwc3.txt | 3 +++
>>  1 file changed, 3 insertions(+)
>> 
>> diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt
>> index b7e67edff9b2..01b948fff0eb 100644
>> --- a/Documentation/devicetree/bindings/usb/dwc3.txt
>> +++ b/Documentation/devicetree/bindings/usb/dwc3.txt
>> @@ -101,6 +101,9 @@ Optional properties:
>>  			enable periodic ESS TX threshold.
>>   - snps,refclk-period-ns: if set, this value informs the controller of the
>>  			reference clock period in nanoseconds.
>> + - snps,enable-refclk-sof: set to enable reference clock based frame number
>> +			tracking while in low power, allowing the controller to
>> +			suspend the PHY during low power states.
>
> This should be implied by the compatible string.

Two problems with this:

1) Won't work for PCI-based systems

2) If we start having many users of this we will end up with:

	if (of_device_is_compatible("a") ||
        	of_device_is_compatible("b") ||
        	of_device_is_compatible("c") ||
                of_device_is_compatible("d") ||
                ...)
		foo();

Conversely, if we just pass a flag, this branch will never change. We
won't need changes to the kernel because a new platform needing refclk
based frame number tracking is, now, supported upstream.

-- 
balbi

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux