[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAL_JsqK8V9PUCUD1iZQr52b28G39JraY=doZWzk0gNvu15qW-g@mail.gmail.com>
Date: Mon, 5 Oct 2020 14:59:04 -0500
From: Rob Herring <robh@...nel.org>
To: Alan Stern <stern@...land.harvard.edu>
Cc: Matthias Kaehlcke <mka@...omium.org>,
Doug Anderson <dianders@...omium.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Frank Rowand <frowand.list@...il.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Linux USB List <linux-usb@...r.kernel.org>,
Bastien Nocera <hadess@...ess.net>,
Stephen Boyd <swboyd@...omium.org>,
Ravi Chandra Sadineni <ravisadineni@...omium.org>,
Krzysztof Kozlowski <krzk@...nel.org>,
"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
<devicetree@...r.kernel.org>, Peter Chen <peter.chen@....com>
Subject: Re: [PATCH v4 1/2] dt-bindings: usb: Add binding for discrete onboard
USB hubs
On Mon, Oct 5, 2020 at 2:36 PM Alan Stern <stern@...land.harvard.edu> wrote:
>
> On Mon, Oct 05, 2020 at 12:18:12PM -0700, Matthias Kaehlcke wrote:
> > On Mon, Oct 05, 2020 at 12:15:27PM -0400, Alan Stern wrote:
> > > The conclusion is that we need to have code that is aware of some
> > > detailed needs of a specific device but is not part of the device's
> > > driver. I'm not sure what the best way to implement this would be.
> >
> > Wouldn't it be possible to load the module when the DT specifies that
> > the device exists? For USB the kernel would need the VID/PID to identify
> > the module, these could be extracted from the compatible string.
>
> Loading a driver module whenever DT says a device exists? Not a bad
> idea. I don't know what would be involved, but no doubt it is possible.
MODULE_DEVICE_TABLE mostly as I mentioned in my other reply.
> Note that, except for a few special cases, the kernel identifies the
> appropriate driver for USB hubs not by the VID/PID but instead by the
> device class or interface class. I suppose the compatible string could
> include that information too?
We can go back to 1998 OpenFirmware and it's already there[1].
'usb,class9' for a hub. There's a few other variations defined.
> > Having the initialization code outside of the driver could lead to code
> > duplication, since the driver might want to power the device down in
> > certain situations (e.g. system suspend).
>
> True. On the other hand, how common do you think it would be for
> drivers not to want to mess with the power settings?
I think in that case you'd generally want firmware to enable things
and the kernel then does no power control.
We have ~1500 boards using DT and maybe ~10 with USB devices described
in DT. So the whole thing is not common to begin with.
Rob
[1] https://www.devicetree.org/open-firmware/bindings/usb/usb-1_0.ps
Powered by blists - more mailing lists