diff options
author | Alexey Starikovskiy <astarikovskiy@suse.de> | 2008-02-09 03:22:13 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2008-02-09 03:22:13 -0500 |
commit | bbafbecb24190959d77a8fee7bd23798b81e25c2 (patch) | |
tree | cb910850195d628ee8c0ff77c2a534827cb268fa /drivers | |
parent | b1d0e4f535e10775cffde922208b49629169aeaa (diff) |
ACPI: SBS: Host controller must initialize before SBS.
In static case sbshc must be compiled ahead of sbs, so that
hc is configured first.
http://bugzilla.kernel.org/show_bug.cgi?id=9910
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/acpi/Makefile | 2 | ||||
-rw-r--r-- | drivers/acpi/sbs.c | 2 | ||||
-rw-r--r-- | drivers/acpi/sbshc.c | 6 |
3 files changed, 8 insertions, 2 deletions
diff --git a/drivers/acpi/Makefile b/drivers/acpi/Makefile index f29812a86533..40b0fcae4c78 100644 --- a/drivers/acpi/Makefile +++ b/drivers/acpi/Makefile | |||
@@ -60,5 +60,5 @@ obj-$(CONFIG_ACPI_ASUS) += asus_acpi.o | |||
60 | obj-$(CONFIG_ACPI_TOSHIBA) += toshiba_acpi.o | 60 | obj-$(CONFIG_ACPI_TOSHIBA) += toshiba_acpi.o |
61 | obj-$(CONFIG_ACPI_HOTPLUG_MEMORY) += acpi_memhotplug.o | 61 | obj-$(CONFIG_ACPI_HOTPLUG_MEMORY) += acpi_memhotplug.o |
62 | obj-$(CONFIG_ACPI_PROCFS_POWER) += cm_sbs.o | 62 | obj-$(CONFIG_ACPI_PROCFS_POWER) += cm_sbs.o |
63 | obj-$(CONFIG_ACPI_SBS) += sbs.o | ||
64 | obj-$(CONFIG_ACPI_SBS) += sbshc.o | 63 | obj-$(CONFIG_ACPI_SBS) += sbshc.o |
64 | obj-$(CONFIG_ACPI_SBS) += sbs.o | ||
diff --git a/drivers/acpi/sbs.c b/drivers/acpi/sbs.c index 1194105cc3ca..585ae3c9c8ea 100644 --- a/drivers/acpi/sbs.c +++ b/drivers/acpi/sbs.c | |||
@@ -827,7 +827,7 @@ static int acpi_battery_add(struct acpi_sbs *sbs, int id) | |||
827 | #endif | 827 | #endif |
828 | printk(KERN_INFO PREFIX "%s [%s]: Battery Slot [%s] (battery %s)\n", | 828 | printk(KERN_INFO PREFIX "%s [%s]: Battery Slot [%s] (battery %s)\n", |
829 | ACPI_SBS_DEVICE_NAME, acpi_device_bid(sbs->device), | 829 | ACPI_SBS_DEVICE_NAME, acpi_device_bid(sbs->device), |
830 | battery->name, sbs->battery->present ? "present" : "absent"); | 830 | battery->name, battery->present ? "present" : "absent"); |
831 | return result; | 831 | return result; |
832 | } | 832 | } |
833 | 833 | ||
diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c index ae9a90438e2f..a2cf3008ce6c 100644 --- a/drivers/acpi/sbshc.c +++ b/drivers/acpi/sbshc.c | |||
@@ -117,6 +117,11 @@ static int acpi_smbus_transaction(struct acpi_smb_hc *hc, u8 protocol, | |||
117 | int ret = -EFAULT, i; | 117 | int ret = -EFAULT, i; |
118 | u8 temp, sz = 0; | 118 | u8 temp, sz = 0; |
119 | 119 | ||
120 | if (!hc) { | ||
121 | printk(KERN_ERR PREFIX "host controller is not configured\n"); | ||
122 | return ret; | ||
123 | } | ||
124 | |||
120 | mutex_lock(&hc->lock); | 125 | mutex_lock(&hc->lock); |
121 | if (smb_hc_read(hc, ACPI_SMB_PROTOCOL, &temp)) | 126 | if (smb_hc_read(hc, ACPI_SMB_PROTOCOL, &temp)) |
122 | goto end; | 127 | goto end; |
@@ -292,6 +297,7 @@ static int acpi_smbus_hc_remove(struct acpi_device *device, int type) | |||
292 | hc = acpi_driver_data(device); | 297 | hc = acpi_driver_data(device); |
293 | acpi_ec_remove_query_handler(hc->ec, hc->query_bit); | 298 | acpi_ec_remove_query_handler(hc->ec, hc->query_bit); |
294 | kfree(hc); | 299 | kfree(hc); |
300 | acpi_driver_data(device) = NULL; | ||
295 | return 0; | 301 | return 0; |
296 | } | 302 | } |
297 | 303 | ||