Linux I2C development
 help / color / mirror / Atom feed
* [PATCH v2 0/6] ACPI: Introduce and use acpi_dev_is_video_device() helper
@ 2026-07-14 18:53 Andy Shevchenko
  2026-07-14 18:53 ` [PATCH v2 1/6] ACPI: utils: Introduce " Andy Shevchenko
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Andy Shevchenko @ 2026-07-14 18:53 UTC (permalink / raw)
  To: Rafael J. Wysocki, Andy Shevchenko, Mario Limonciello (AMD),
	Ilpo Järvinen, linux-acpi, linux-kernel, linux-i2c,
	linux-pci, platform-driver-x86, ibm-acpi-devel
  Cc: Rafael J. Wysocki, Len Brown, Mika Westerberg, Andi Shyti,
	Bjorn Helgaas, Henrique de Moraes Holschuh, Mark Pearson,
	Derek J. Clark, Hans de Goede

There are a few users that open code functionality of matching
a given device against ACPI video device IDs. The current approach
duplicates ID table along with the matching code. Consolidate it
under the acpi_dev_is_video_device() helper's hood.

Supposed to go via ACPI tree, please ack.

Changelog v2:
- rebased on top of the latest code base
- renamed helper and changed its prototype (Rafael, Mika)
- added tag (Wolfram)
- added patch to change scan.c as well

v1: 20220630212819.42958-1-andriy.shevchenko@linux.intel.com

Andy Shevchenko (6):
  ACPI: utils: Introduce acpi_dev_is_video_device() helper
  ACPI: scan: Convert to use acpi_dev_is_video_device() helper
  ACPI: video: Convert to use acpi_dev_is_video_device() helper
  i2c: acpi: Convert to use acpi_dev_is_video_device() helper
  PCI/VGA: Convert to use acpi_dev_is_video_device() helper
  platform/x86: thinkpad_acpi: Convert to use acpi_dev_is_video_device()
    helper

 drivers/acpi/scan.c                         |  4 +++-
 drivers/acpi/utils.c                        | 17 +++++++++++++++++
 drivers/acpi/video_detect.c                 |  7 +------
 drivers/i2c/i2c-core-acpi.c                 | 15 +++++----------
 drivers/pci/vgaarb.c                        |  4 +---
 drivers/platform/x86/lenovo/thinkpad_acpi.c |  2 +-
 include/linux/acpi.h                        |  1 +
 7 files changed, 29 insertions(+), 21 deletions(-)

-- 
2.50.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 1/6] ACPI: utils: Introduce acpi_dev_is_video_device() helper
  2026-07-14 18:53 [PATCH v2 0/6] ACPI: Introduce and use acpi_dev_is_video_device() helper Andy Shevchenko
@ 2026-07-14 18:53 ` Andy Shevchenko
  2026-07-14 18:53 ` [PATCH v2 2/6] ACPI: scan: Convert to use " Andy Shevchenko
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2026-07-14 18:53 UTC (permalink / raw)
  To: Rafael J. Wysocki, Andy Shevchenko, Mario Limonciello (AMD),
	Ilpo Järvinen, linux-acpi, linux-kernel, linux-i2c,
	linux-pci, platform-driver-x86, ibm-acpi-devel
  Cc: Rafael J. Wysocki, Len Brown, Mika Westerberg, Andi Shyti,
	Bjorn Helgaas, Henrique de Moraes Holschuh, Mark Pearson,
	Derek J. Clark, Hans de Goede

There are a couple of users that open code functionality of matching
a given handle against ACPI video device IDs. The current approach
duplicates ID table along with the matching code. Consolidate it
under the acpi_dev_is_video_device() helper's hood.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/acpi/utils.c | 17 +++++++++++++++++
 include/linux/acpi.h |  1 +
 2 files changed, 18 insertions(+)

diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
index 6ab27e4826d1..8b3e49f3cefa 100644
--- a/drivers/acpi/utils.c
+++ b/drivers/acpi/utils.c
@@ -1047,6 +1047,23 @@ static int __init acpi_backlight(char *str)
 }
 __setup("acpi_backlight=", acpi_backlight);
 
+static const struct acpi_device_id video_device_ids[] = {
+	{ .id = ACPI_VIDEO_HID },
+	{ }
+};
+
+/**
+ * acpi_dev_is_video_device - test if device matches against ACPI video device IDs
+ * @adev: ACPI device to test
+ *
+ * Return: true when matches, otherwise false.
+ */
+bool acpi_dev_is_video_device(struct acpi_device *adev)
+{
+	return adev && !acpi_match_device_ids(adev, video_device_ids);
+}
+EXPORT_SYMBOL(acpi_dev_is_video_device);
+
 /**
  * acpi_match_platform_list - Check if the system matches with a given list
  * @plat: pointer to acpi_platform_list table terminated by a NULL entry
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 899dc00b4b01..99afad0eb49e 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -457,6 +457,7 @@ extern char *wmi_get_acpi_device_uid(const char *guid);
 #define ACPI_VIDEO_OUTPUT_SWITCHING_DMI_VIDEO		0x0800
 
 extern char acpi_video_backlight_string[];
+extern bool acpi_dev_is_video_device(struct acpi_device *adev);
 extern long acpi_is_video_device(acpi_handle handle);
 
 extern void acpi_osi_setup(char *str);
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 2/6] ACPI: scan: Convert to use acpi_dev_is_video_device() helper
  2026-07-14 18:53 [PATCH v2 0/6] ACPI: Introduce and use acpi_dev_is_video_device() helper Andy Shevchenko
  2026-07-14 18:53 ` [PATCH v2 1/6] ACPI: utils: Introduce " Andy Shevchenko
@ 2026-07-14 18:53 ` Andy Shevchenko
  2026-07-14 18:53 ` [PATCH v2 3/6] ACPI: video: " Andy Shevchenko
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2026-07-14 18:53 UTC (permalink / raw)
  To: Rafael J. Wysocki, Andy Shevchenko, Mario Limonciello (AMD),
	Ilpo Järvinen, linux-acpi, linux-kernel, linux-i2c,
	linux-pci, platform-driver-x86, ibm-acpi-devel
  Cc: Rafael J. Wysocki, Len Brown, Mika Westerberg, Andi Shyti,
	Bjorn Helgaas, Henrique de Moraes Holschuh, Mark Pearson,
	Derek J. Clark, Hans de Goede

Replace open coded variant of acpi_dev_is_video_device() helper.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/acpi/scan.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index 2f6185dbe785..ef9995bac746 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -1764,7 +1764,6 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
 	 * Some ACPI devs contain SerialBus resources even though they are not
 	 * attached to a serial bus at all.
 	 */
-		{ACPI_VIDEO_HID, },
 		{"MSHW0028", },
 	/*
 	 * HIDs of device with an UartSerialBusV2 resource for which userspace
@@ -1787,6 +1786,9 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
 	     fwnode_property_present(&device->fwnode, "baud")))
 		return true;
 
+	if (acpi_dev_is_video_device(device))
+		return false;
+
 	if (!acpi_match_device_ids(device, ignore_serial_bus_ids))
 		return false;
 
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 3/6] ACPI: video: Convert to use acpi_dev_is_video_device() helper
  2026-07-14 18:53 [PATCH v2 0/6] ACPI: Introduce and use acpi_dev_is_video_device() helper Andy Shevchenko
  2026-07-14 18:53 ` [PATCH v2 1/6] ACPI: utils: Introduce " Andy Shevchenko
  2026-07-14 18:53 ` [PATCH v2 2/6] ACPI: scan: Convert to use " Andy Shevchenko
@ 2026-07-14 18:53 ` Andy Shevchenko
  2026-07-14 18:53 ` [PATCH v2 4/6] i2c: acpi: " Andy Shevchenko
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2026-07-14 18:53 UTC (permalink / raw)
  To: Rafael J. Wysocki, Andy Shevchenko, Mario Limonciello (AMD),
	Ilpo Järvinen, linux-acpi, linux-kernel, linux-i2c,
	linux-pci, platform-driver-x86, ibm-acpi-devel
  Cc: Rafael J. Wysocki, Len Brown, Mika Westerberg, Andi Shyti,
	Bjorn Helgaas, Henrique de Moraes Holschuh, Mark Pearson,
	Derek J. Clark, Hans de Goede

Replace open coded variant of acpi_dev_is_video_device() helper.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/acpi/video_detect.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 458efa4fe9d4..cf267b518d2b 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -67,12 +67,7 @@ find_video(acpi_handle handle, u32 lvl, void *context, void **rv)
 	long *cap = context;
 	struct pci_dev *dev;
 
-	static const struct acpi_device_id video_ids[] = {
-		{ACPI_VIDEO_HID, 0},
-		{"", 0},
-	};
-
-	if (acpi_dev && !acpi_match_device_ids(acpi_dev, video_ids)) {
+	if (acpi_dev_is_video_device(acpi_dev)) {
 		dev = acpi_get_pci_dev(handle);
 		if (!dev)
 			return AE_OK;
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 4/6] i2c: acpi: Convert to use acpi_dev_is_video_device() helper
  2026-07-14 18:53 [PATCH v2 0/6] ACPI: Introduce and use acpi_dev_is_video_device() helper Andy Shevchenko
                   ` (2 preceding siblings ...)
  2026-07-14 18:53 ` [PATCH v2 3/6] ACPI: video: " Andy Shevchenko
@ 2026-07-14 18:53 ` Andy Shevchenko
  2026-07-14 18:53 ` [PATCH v2 5/6] PCI/VGA: " Andy Shevchenko
  2026-07-14 18:53 ` [PATCH v2 6/6] platform/x86: thinkpad_acpi: " Andy Shevchenko
  5 siblings, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2026-07-14 18:53 UTC (permalink / raw)
  To: Rafael J. Wysocki, Andy Shevchenko, Mario Limonciello (AMD),
	Ilpo Järvinen, linux-acpi, linux-kernel, linux-i2c,
	linux-pci, platform-driver-x86, ibm-acpi-devel
  Cc: Rafael J. Wysocki, Len Brown, Mika Westerberg, Andi Shyti,
	Bjorn Helgaas, Henrique de Moraes Holschuh, Mark Pearson,
	Derek J. Clark, Hans de Goede, Wolfram Sang

Replace open coded variant of acpi_dev_is_video_device() helper.

Acked-by: Wolfram Sang <wsa@kernel.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/i2c/i2c-core-acpi.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
index 10cdceaba475..8f3bdd50186e 100644
--- a/drivers/i2c/i2c-core-acpi.c
+++ b/drivers/i2c/i2c-core-acpi.c
@@ -131,15 +131,6 @@ static int i2c_acpi_fill_info(struct acpi_resource *ares, void *data)
 	return 1;
 }
 
-static const struct acpi_device_id i2c_acpi_ignored_device_ids[] = {
-	/*
-	 * ACPI video acpi_devices, which are handled by the acpi-video driver
-	 * sometimes contain a SERIAL_TYPE_I2C ACPI resource, ignore these.
-	 */
-	{ ACPI_VIDEO_HID, 0 },
-	{}
-};
-
 struct i2c_acpi_irq_context {
 	int irq;
 	bool wake_capable;
@@ -158,7 +149,11 @@ static int i2c_acpi_do_lookup(struct acpi_device *adev,
 	if (!acpi_dev_ready_for_enumeration(adev))
 		return -ENODEV;
 
-	if (acpi_match_device_ids(adev, i2c_acpi_ignored_device_ids) == 0)
+	/*
+	 * ACPI video devices, which are handled by the acpi-video driver,
+	 * sometimes contain a SERIAL_TYPE_I2C ACPI resource, ignore these.
+	 */
+	if (acpi_dev_is_video_device(adev))
 		return -ENODEV;
 
 	memset(info, 0, sizeof(*info));
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 5/6] PCI/VGA: Convert to use acpi_dev_is_video_device() helper
  2026-07-14 18:53 [PATCH v2 0/6] ACPI: Introduce and use acpi_dev_is_video_device() helper Andy Shevchenko
                   ` (3 preceding siblings ...)
  2026-07-14 18:53 ` [PATCH v2 4/6] i2c: acpi: " Andy Shevchenko
@ 2026-07-14 18:53 ` Andy Shevchenko
  2026-07-14 18:53 ` [PATCH v2 6/6] platform/x86: thinkpad_acpi: " Andy Shevchenko
  5 siblings, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2026-07-14 18:53 UTC (permalink / raw)
  To: Rafael J. Wysocki, Andy Shevchenko, Mario Limonciello (AMD),
	Ilpo Järvinen, linux-acpi, linux-kernel, linux-i2c,
	linux-pci, platform-driver-x86, ibm-acpi-devel
  Cc: Rafael J. Wysocki, Len Brown, Mika Westerberg, Andi Shyti,
	Bjorn Helgaas, Henrique de Moraes Holschuh, Mark Pearson,
	Derek J. Clark, Hans de Goede

Replace open coded variant of acpi_dev_is_video_device() helper.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/pci/vgaarb.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c
index c360eee11dd9..3de05aee7859 100644
--- a/drivers/pci/vgaarb.c
+++ b/drivers/pci/vgaarb.c
@@ -575,9 +575,7 @@ static bool vga_is_firmware_default(struct pci_dev *pdev)
 static bool vga_arb_integrated_gpu(struct device *dev)
 {
 #if defined(CONFIG_ACPI)
-	struct acpi_device *adev = ACPI_COMPANION(dev);
-
-	return adev && !strcmp(acpi_device_hid(adev), ACPI_VIDEO_HID);
+	return acpi_dev_is_video_device(ACPI_COMPANION(dev));
 #else
 	return false;
 #endif
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 6/6] platform/x86: thinkpad_acpi: Convert to use acpi_dev_is_video_device() helper
  2026-07-14 18:53 [PATCH v2 0/6] ACPI: Introduce and use acpi_dev_is_video_device() helper Andy Shevchenko
                   ` (4 preceding siblings ...)
  2026-07-14 18:53 ` [PATCH v2 5/6] PCI/VGA: " Andy Shevchenko
@ 2026-07-14 18:53 ` Andy Shevchenko
  5 siblings, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2026-07-14 18:53 UTC (permalink / raw)
  To: Rafael J. Wysocki, Andy Shevchenko, Mario Limonciello (AMD),
	Ilpo Järvinen, linux-acpi, linux-kernel, linux-i2c,
	linux-pci, platform-driver-x86, ibm-acpi-devel
  Cc: Rafael J. Wysocki, Len Brown, Mika Westerberg, Andi Shyti,
	Bjorn Helgaas, Henrique de Moraes Holschuh, Mark Pearson,
	Derek J. Clark, Hans de Goede

Replace open coded variant of acpi_dev_is_video_device() helper.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/platform/x86/lenovo/thinkpad_acpi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/platform/x86/lenovo/thinkpad_acpi.c b/drivers/platform/x86/lenovo/thinkpad_acpi.c
index 6dd7c28fc0db..aaeada46a0e7 100644
--- a/drivers/platform/x86/lenovo/thinkpad_acpi.c
+++ b/drivers/platform/x86/lenovo/thinkpad_acpi.c
@@ -774,7 +774,7 @@ static acpi_status __init tpacpi_acpi_handle_locate_callback(acpi_handle handle,
 	if (!strcmp(context, "video")) {
 		struct acpi_device *dev = acpi_fetch_acpi_dev(handle);
 
-		if (!dev || strcmp(ACPI_VIDEO_HID, acpi_device_hid(dev)))
+		if (!acpi_dev_is_video_device(dev))
 			return AE_OK;
 	}
 
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-07-14 18:59 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-14 18:53 [PATCH v2 0/6] ACPI: Introduce and use acpi_dev_is_video_device() helper Andy Shevchenko
2026-07-14 18:53 ` [PATCH v2 1/6] ACPI: utils: Introduce " Andy Shevchenko
2026-07-14 18:53 ` [PATCH v2 2/6] ACPI: scan: Convert to use " Andy Shevchenko
2026-07-14 18:53 ` [PATCH v2 3/6] ACPI: video: " Andy Shevchenko
2026-07-14 18:53 ` [PATCH v2 4/6] i2c: acpi: " Andy Shevchenko
2026-07-14 18:53 ` [PATCH v2 5/6] PCI/VGA: " Andy Shevchenko
2026-07-14 18:53 ` [PATCH v2 6/6] platform/x86: thinkpad_acpi: " Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox