Re: [PATCH] usb: core: skip interfaces disabled in devicetree

From: Måns Rullgård
Date: Tue Feb 19 2019 - 08:24:55 EST


Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> writes:

> On Sat, Feb 16, 2019 at 05:04:52PM +0000, Mans Rullgard wrote:
>> If an interface has an associated devicetree node with status disabled,
>> do not register the device. This is useful for boards with a built-in
>> multifunction USB device where some functions are broken or otherwise
>> undesired.
>>
>> Signed-off-by: Mans Rullgard <mans@xxxxxxxxx>
>> ---
>> drivers/usb/core/message.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
>> index bfa5eda0cc26..6b45d4835e41 100644
>> --- a/drivers/usb/core/message.c
>> +++ b/drivers/usb/core/message.c
>> @@ -2007,6 +2007,10 @@ int usb_set_configuration(struct usb_device *dev, int configuration)
>> for (i = 0; i < nintf; ++i) {
>> struct usb_interface *intf = cp->interface[i];
>>
>> + if (intf->dev.of_node &&
>> + !of_device_is_available(intf->dev.of_node))
>> + continue;
>
> Shouldn't you at least print some message out saying you are skipping
> this? Odds are this is going to cause regressions in devices that were
> not expecting this, right? So pointing them at why their devices now no
> longer work would be good :)

They will only be skipped if there is a device tree node for the
interface _and_ it has and explicit status = "disabled" property.
The default is still to create devices for all interfaces.

That said, printing a message is probably a good idea anyway. Would
"info" level be appropriate for this?

--
Måns Rullgård