Re: [PATCH 3/7] usb: dwc3: pci: Store device properties dynamically

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

 



Hi Andy,

On 2/21/2018 6:46 AM, Andy Shevchenko wrote:
> On Tue, Feb 20, 2018 at 11:12 PM, Thinh Nguyen
> <Thinh.Nguyen@xxxxxxxxxxxx> wrote:
>> On 2/17/2018 7:29 AM, Andy Shevchenko wrote:
>>> On Fri, Feb 16, 2018 at 11:55 PM, Thinh Nguyen
>>> <Thinh.Nguyen@xxxxxxxxxxxx> wrote:
>>>> Add the ability to add device properties dynamically. Currently, device
>>>> properties are added to platform device using
>>>> platform_device_add_properties(). However, this function does not allow
>>>> adding properties incrementally. It is useful to have this ability when
>>>> the driver needs to set common device properties across different HW
>>>
>>> I'm not sure it's useful anyhow.
>>>
>>>> or
>>>> if IP and FPGA validation test different configurations for different
>>>> HW.
>>>
>>> Shouldn't be a separate stuff for FPGA exclusively?
>>
>> Can you clarify/expand your question?
> 
> FPGA is the one which might have different properties at run time for
> the same device.
> So, why do we care on driver / generic level of it?
> 
> Shouldn't be FPGA manager take care of it (via DT overlays, for example)?

Normally it is handled using DT overlays. But for using FPGA as PCI 
device, I'm not aware of a better solution.

> 
>>>> To address this issue, update dwc3_pci to store device properties to
>>>> an array and dynamically manage them here.
>>>>
>>>> Introduce two new functions to do so:
>>>>    * dwc3_pci_add_one_property() - this function adds one property to
>>>>      dwc->properties array and increase its size as needed
>>>>    * dwc3_pci_add_properties() - this function takes a null terminated
>>>>      array of device properties and add them to dwc->properties
>>>
>>> So, why you can't use ACPI / DT here?
>>>
>>
>> dwc3_pci_add_properties() is a convenient function that takes statically
>> allocated array of (quirks) properties for different HW and store them
>> to dwc->properties. The idea is to add more properties on top of these
>> required quirks.
> 
> Yes, I understand that. What's wrong with DT? The built-in device
> properties have the same nature as usual properties for DT.
> Whenever driver calls device_property_read_uXX() or alike it would
> check all property provides for asked one.

I may not have explained fully in my commit message the purpose of this 
change. That's why I think I misinterpreted your previous question.

With this new debugging feature, we want to delay adding device 
properties until the user initiates it. Because the driver cannot use 
platform_device_add_properties() to incrementally add properties to 
platform device, we need a way to store properties so they can be added 
in later time. That's why I added these 2 new functions.

> Other than that, quirks esp. for FPGA sounds so wrong. Why in the
> first place not to make non-broken hardware?!

I may have used the term 'quirk' incorrectly since they were placed in 
dwc3_pci_quirk(). There's no quirk for FPGA, but there are some initial 
setup properties for FPGA. To be specific, these properties:
     PROPERTY_ENTRY_BOOL("snps,usb3_lpm_capable"),
     PROPERTY_ENTRY_BOOL("snps,has-lpm-erratum"),
     PROPERTY_ENTRY_BOOL("snps,dis_enblslpm_quirk"),
     PROPERTY_ENTRY_BOOL("linux,sysdev_is_parent"),

BR,
Thinh
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



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

  Powered by Linux