diff mbox series

[v1] usb: core: Add ACPI support for USB interfaces

Message ID 20200323195543.51050-1-andriy.shevchenko@linux.intel.com (mailing list archive)
State Mainlined
Commit a599a0fb629a61ef0c8c47312152866d24faeaff
Headers show
Series [v1] usb: core: Add ACPI support for USB interfaces | expand

Commit Message

Andy Shevchenko March 23, 2020, 7:55 p.m. UTC
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(+)

Comments

Greg KH March 24, 2020, 6:26 a.m. UTC | #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
Andy Shevchenko March 24, 2020, 9 a.m. UTC | #2
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?
Greg KH March 24, 2020, 9:13 a.m. UTC | #3
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
diff mbox series

Patch

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;