Re: [PATCH v10 0/6] Introduced new Cadence USBSS DRD Driver.

From: Roger Quadros
Date: Wed Aug 07 2019 - 07:05:32 EST


Pawel,

On 23/07/2019 07:32, Pawel Laszczak wrote:
> Hi,
>
>> On Mon 2019-07-22 13:56:44, Pavel Machek wrote:
>>> Hi!
>>>
>>>>>>> This patch introduce new Cadence USBSS DRD driver to linux kernel.
>>>>>>>
>>>>>>> The Cadence USBSS DRD Controller is a highly configurable IP Core which
>>>>>>> can be instantiated as Dual-Role Device (DRD), Peripheral Only and
>>>>>>> Host Only (XHCI)configurations.
>>>>>>
>>>>>> I see you are using debugfs to select between DRD, peripheral-onlyh and XHCI...
>>>>>>
>>>>>> Is that good idea?
>>>>>
>>>>> Yes driver allows selecting dr_mode by debugfs. Controller also support such functionality
>>>>> so I don't understand why would it not be a good idea.
>>>>>
>>>>> I personally use this for testing but it can be used to limit controller functionality without
>>>>> recompiling kernel.
>>>>
>>>> debugfs is ONLY for debugging, never rely on it being enabled, or
>>>> mounted, on a system in order to have any normal operation happen.
>>>>
>>>> So for testing, yes, this is fine. If this is going to be the normal
>>>> api/interface for how to control this driver, no, that is not acceptable
>>>> at all.
>>>
>>> It makes a lot of sense for end-user to toggle this... for example
>>> when he is lacking right cable for proper otg detection. As it is
>>> third driver offering this functionality, I believe we should stop
>>> treating it as debugging.
>>
>> At least renesas usb controller seems to have variables in sysfs:
>> drivers/phy/renesas/phy-rcar-gen3-usb2.c : functions role_show and
>> role_store. See also
>> Documentation/ABI/testing/sysfs-platform-phy-rcar-gen3-usb2 .
>>
>> I believe this driver should do same.
>>
>
> CDNS3 driver use the role framework and also has such variable defined
> in role switch framework.
>
> https://elixir.bootlin.com/linux/latest/source/drivers/usb/roles/class.c

Can we get rid of the debugfs interface for user initiated role change and just
rely on role switch framework via sysfs?

We do need user initiated role changes in production systems. So we can't
rely on debugfs for this.

--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki