diff options
author | Zhang Rui <rui.zhang@intel.com> | 2007-08-25 02:23:31 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2007-08-25 02:23:31 -0400 |
commit | e6d9da1de0f31c57cfe3837b1b4e51c6d96fcd3c (patch) | |
tree | 51191b8b9b706f424bcadaadf02261caf80a9d2a | |
parent | 1a8f46100b657f533ce677e79bc27c6794c91c46 (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.c | 8 |
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 | ||
1836 | static int instance; | ||
1836 | static int acpi_video_bus_add(struct acpi_device *device) | 1837 | static 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); |