diff mbox series

[v2] usb: core: Add ACPI support for USB interface devices

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

Commit Message

Andy Shevchenko March 24, 2020, 10:09 a.m. UTC
Currently on ACPI-enabled systems the USB interface device has no link to
the actual firmware node and thus drivers may not parse additional information
given in the table. The new feature, proposed here, allows to pass properties
or other information to the drivers.

The ACPI companion of the device has to be set for USB interface devices
to achieve above. Use ACPI_COMPANION_SET macro to set this.

Note, OF already does link of_node and this is the same for ACPI case.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
v2: rewrite commit message to emphasize that it is a new feature (Greg)
 drivers/usb/core/message.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Rafael J. Wysocki March 24, 2020, 11:45 a.m. UTC | #1
On Tue, Mar 24, 2020 at 11:09 AM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
>
> Currently on ACPI-enabled systems the USB interface device has no link to
> the actual firmware node and thus drivers may not parse additional information
> given in the table. The new feature, proposed here, allows to pass properties
> or other information to the drivers.
>
> The ACPI companion of the device has to be set for USB interface devices
> to achieve above. Use ACPI_COMPANION_SET macro to set this.
>
> Note, OF already does link of_node and this is the same for ACPI case.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

> ---
> v2: rewrite commit message to emphasize that it is a new feature (Greg)
>  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
>
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;