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 |
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?
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 --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;
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(+)