On Tue, Feb 19, 2019 at 01:24:51PM +0000, Måns Rullgård wrote: > 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. Yes, but today if you have such a status field set, it will not skip them, so who knows who has their DT messed up :) > That said, printing a message is probably a good idea anyway. Would > "info" level be appropriate for this? That is a good idea. thanks, greg k-h