On Mon, 18 Mar 2019, [iso-8859-1] M� Rullg� wrote: > Mans Rullgard <mans@xxxxxxxxx> writes: > > > Mark any ports listed in the non-removable-ports DT property as > > hardwired. This is useful for boards with built-in USB devices > > that cannot be (or have not been) marked as fixed in hardware. > > > > Signed-off-by: Mans Rullgard <mans@xxxxxxxxx> > > --- > > drivers/usb/core/hub.c | 14 ++++++++++++++ > > 1 file changed, 14 insertions(+) > > Any comments on these patches? > > > diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c > > index 3adff4da2ee1..44ac49a30be1 100644 > > --- a/drivers/usb/core/hub.c > > +++ b/drivers/usb/core/hub.c > > @@ -1328,6 +1328,9 @@ static int hub_configure(struct usb_hub *hub, > > unsigned unit_load; > > unsigned full_load; > > unsigned maxchild; > > + struct property *prop; > > + const __be32 *cur; > > + u32 val; > > > > hub->buffer = kmalloc(sizeof(*hub->buffer), GFP_KERNEL); > > if (!hub->buffer) { > > @@ -1629,6 +1632,17 @@ static int hub_configure(struct usb_hub *hub, > > } > > } > > > > + of_property_for_each_u32(hub_dev->of_node, "non-removable-ports", > > + prop, cur, val) { > > + if (val < 1 || val > hdev->maxchild) { > > + dev_warn(hub_dev, "port number %u out of range\n", val); > > + continue; > > + } > > + > > + hub->ports[val - 1]->connect_type = > > + USB_PORT_CONNECT_TYPE_HARD_WIRED; > > + } > > + > > usb_hub_adjust_deviceremovable(hdev, hub->descriptor); > > > > hub_activate(hub, HUB_INIT); > > -- > > 2.20.1 This seems like a reasonable thing to do. However, you should improve the warning message; people who encounter it will have no idea what it refers to. Alan Stern