aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/platform
diff options
context:
space:
mode:
authorIke Panhc <ike.pan@canonical.com>2010-10-01 15:39:14 +0800
committerMatthew Garrett <mjg@redhat.com>2010-10-21 09:36:49 -0400
commit6f8371c05e64138c305aa1b6a21857cd7a50e147 (patch)
tree50d8462ed93436ccad764d4e34ff198b60727417 /drivers/platform
parentideapad: check VPC bit before sync rfkill hw status (diff)
downloadlinux-dev-6f8371c05e64138c305aa1b6a21857cd7a50e147.tar.xz
linux-dev-6f8371c05e64138c305aa1b6a21857cd7a50e147.zip
ideapad: make sure we bind on the correct device
By reading from method _CFG to make sure we bind on the correct VPC2004 device. Signed-off-by: Ike Panhc <ike.pan@canonical.com> Signed-off-by: Matthew Garrett <mjg@redhat.com>
Diffstat (limited to 'drivers/platform')
-rw-r--r--drivers/platform/x86/ideapad_acpi.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/platform/x86/ideapad_acpi.c b/drivers/platform/x86/ideapad_acpi.c
index e07d6072e75c..bf684f421290 100644
--- a/drivers/platform/x86/ideapad_acpi.c
+++ b/drivers/platform/x86/ideapad_acpi.c
@@ -326,10 +326,13 @@ MODULE_DEVICE_TABLE(acpi, ideapad_device_ids);
static int ideapad_acpi_add(struct acpi_device *adevice)
{
- int i;
+ int i, cfg;
int devs_present[5];
struct ideapad_private *priv;
+ if (read_method_int(adevice->handle, "_CFG", &cfg))
+ return -ENODEV;
+
for (i = IDEAPAD_DEV_CAMERA; i < IDEAPAD_DEV_KILLSW; i++) {
devs_present[i] = ideapad_dev_exists(i);
if (devs_present[i] < 0)