aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhang Rui <rui.zhang@intel.com>2007-08-25 02:23:31 -0400
committerLen Brown <len.brown@intel.com>2007-08-25 02:23:31 -0400
commite6d9da1de0f31c57cfe3837b1b4e51c6d96fcd3c (patch)
tree51191b8b9b706f424bcadaadf02261caf80a9d2a
parent1a8f46100b657f533ce677e79bc27c6794c91c46 (diff)
ACPI: work around duplicate name "VID" problem on T61
This can only fix the problem that more than one video bus device have the same AML name "VID". ie. the proc I/F for the second "VID" video bus device is located under /proc/acpi/video/VID1/... As this is really rare and the ACPI proc I/F is a legacy feature that we are planning to remove. We won't provide a generic solution for this problem. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r--drivers/acpi/video.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index d98701941981..ac63be4e8197 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -1833,6 +1833,7 @@ static void acpi_video_device_notify(acpi_handle handle, u32 event, void *data)
1833 return; 1833 return;
1834} 1834}
1835 1835
1836static int instance;
1836static int acpi_video_bus_add(struct acpi_device *device) 1837static int acpi_video_bus_add(struct acpi_device *device)
1837{ 1838{
1838 int result = 0; 1839 int result = 0;
@@ -1847,6 +1848,13 @@ static int acpi_video_bus_add(struct acpi_device *device)
1847 if (!video) 1848 if (!video)
1848 return -ENOMEM; 1849 return -ENOMEM;
1849 1850
1851 /* a hack to fix the duplicate name "VID" problem on T61 */
1852 if (!strcmp(device->pnp.bus_id, "VID")) {
1853 if (instance)
1854 device->pnp.bus_id[3] = '0' + instance;
1855 instance ++;
1856 }
1857
1850 video->device = device; 1858 video->device = device;
1851 strcpy(acpi_device_name(device), ACPI_VIDEO_BUS_NAME); 1859 strcpy(acpi_device_name(device), ACPI_VIDEO_BUS_NAME);
1852 strcpy(acpi_device_class(device), ACPI_VIDEO_CLASS); 1860 strcpy(acpi_device_class(device), ACPI_VIDEO_CLASS);