The ACPI companion of the device has to be set for USB interfaces in order to read and attach the properties described in the ACPI table. Use ACPI_COMPANION_SET macro to set this. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/usb/core/message.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c index 5adf489428aa..d5f834f16993 100644 --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c @@ -5,6 +5,7 @@ * Released under the GPLv2 only. */ +#include <linux/acpi.h> #include <linux/pci.h> /* for scatterlist macros */ #include <linux/usb.h> #include <linux/module.h> @@ -1941,6 +1942,7 @@ int usb_set_configuration(struct usb_device *dev, int configuration) intf->dev.of_node = usb_of_get_interface_node(dev, configuration, ifnum); } + ACPI_COMPANION_SET(&intf->dev, ACPI_COMPANION(&dev->dev)); intf->dev.driver = NULL; intf->dev.bus = &usb_bus_type; intf->dev.type = &usb_if_device_type; -- 2.25.1
On Mon, Mar 23, 2020 at 09:55:43PM +0200, Andy Shevchenko wrote:
> The ACPI companion of the device has to be set for USB interfaces
> in order to read and attach the properties described in the ACPI table.
> Use ACPI_COMPANION_SET macro to set this.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
> drivers/usb/core/message.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
> index 5adf489428aa..d5f834f16993 100644
> --- a/drivers/usb/core/message.c
> +++ b/drivers/usb/core/message.c
> @@ -5,6 +5,7 @@
> * Released under the GPLv2 only.
> */
>
> +#include <linux/acpi.h>
> #include <linux/pci.h> /* for scatterlist macros */
> #include <linux/usb.h>
> #include <linux/module.h>
> @@ -1941,6 +1942,7 @@ int usb_set_configuration(struct usb_device *dev, int configuration)
> intf->dev.of_node = usb_of_get_interface_node(dev,
> configuration, ifnum);
> }
> + ACPI_COMPANION_SET(&intf->dev, ACPI_COMPANION(&dev->dev));
> intf->dev.driver = NULL;
> intf->dev.bus = &usb_bus_type;
> intf->dev.type = &usb_if_device_type;
And what does this "fix"?
Is this a new feature, what isn't working today without this change?
And if it is a fix, should it be backported to older kernels, how far?
greg k-h
On Tue, Mar 24, 2020 at 07:26:35AM +0100, Greg Kroah-Hartman wrote: > On Mon, Mar 23, 2020 at 09:55:43PM +0200, Andy Shevchenko wrote: > > The ACPI companion of the device has to be set for USB interfaces > > in order to read and attach the properties described in the ACPI table. > > Use ACPI_COMPANION_SET macro to set this. > > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > > --- > > drivers/usb/core/message.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c > > index 5adf489428aa..d5f834f16993 100644 > > --- a/drivers/usb/core/message.c > > +++ b/drivers/usb/core/message.c > > @@ -5,6 +5,7 @@ > > * Released under the GPLv2 only. > > */ > > > > +#include <linux/acpi.h> > > #include <linux/pci.h> /* for scatterlist macros */ > > #include <linux/usb.h> > > #include <linux/module.h> > > @@ -1941,6 +1942,7 @@ int usb_set_configuration(struct usb_device *dev, int configuration) > > intf->dev.of_node = usb_of_get_interface_node(dev, > > configuration, ifnum); > > } > > + ACPI_COMPANION_SET(&intf->dev, ACPI_COMPANION(&dev->dev)); > > intf->dev.driver = NULL; > > intf->dev.bus = &usb_bus_type; > > intf->dev.type = &usb_if_device_type; > > And what does this "fix"? It links the firmware node of physical USB device to USB interface. Otherwise it will be no firmware nodes under a corresponding folder. It mimics what is done for OF in couple of lines above. > Is this a new feature, what isn't working today without this change? Yes, it is a new feature. I can't tell it fixes anything, because no complains so far. I doubt it previously works. > And if it is a fix, should it be backported to older kernels, how far? No, no need for that. Usually I put Fixes tag when I would like change to be considered for backporting. I'll probably update the commit message to clarify all this. Would it be enough? -- With Best Regards, Andy Shevchenko
On Tue, Mar 24, 2020 at 11:00:37AM +0200, Andy Shevchenko wrote:
> On Tue, Mar 24, 2020 at 07:26:35AM +0100, Greg Kroah-Hartman wrote:
> > On Mon, Mar 23, 2020 at 09:55:43PM +0200, Andy Shevchenko wrote:
> > > The ACPI companion of the device has to be set for USB interfaces
> > > in order to read and attach the properties described in the ACPI table.
> > > Use ACPI_COMPANION_SET macro to set this.
> > >
> > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > ---
> > > drivers/usb/core/message.c | 2 ++
> > > 1 file changed, 2 insertions(+)
> > >
> > > diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
> > > index 5adf489428aa..d5f834f16993 100644
> > > --- a/drivers/usb/core/message.c
> > > +++ b/drivers/usb/core/message.c
> > > @@ -5,6 +5,7 @@
> > > * Released under the GPLv2 only.
> > > */
> > >
> > > +#include <linux/acpi.h>
> > > #include <linux/pci.h> /* for scatterlist macros */
> > > #include <linux/usb.h>
> > > #include <linux/module.h>
> > > @@ -1941,6 +1942,7 @@ int usb_set_configuration(struct usb_device *dev, int configuration)
> > > intf->dev.of_node = usb_of_get_interface_node(dev,
> > > configuration, ifnum);
> > > }
> > > + ACPI_COMPANION_SET(&intf->dev, ACPI_COMPANION(&dev->dev));
> > > intf->dev.driver = NULL;
> > > intf->dev.bus = &usb_bus_type;
> > > intf->dev.type = &usb_if_device_type;
> >
>
> > And what does this "fix"?
>
> It links the firmware node of physical USB device to USB interface.
> Otherwise it will be no firmware nodes under a corresponding folder.
>
> It mimics what is done for OF in couple of lines above.
>
> > Is this a new feature, what isn't working today without this change?
>
> Yes, it is a new feature. I can't tell it fixes anything, because no complains
> so far. I doubt it previously works.
>
> > And if it is a fix, should it be backported to older kernels, how far?
>
> No, no need for that. Usually I put Fixes tag when I would like change to be
> considered for backporting.
>
> I'll probably update the commit message to clarify all this. Would it be enough?
Please do so, what you have now is insufficient :)
thanks,
greg k-h