eeepc-laptop: Disable wireless hotplug on more models where the controller is not at the expected address (Closes: #576199)
svn path=/dists/sid/linux-2.6/; revision=15847
This commit is contained in:
parent
cc2bd813a3
commit
bc7f0aa2e3
|
@ -16,6 +16,8 @@ linux-2.6 (2.6.32-16) UNRELEASED; urgency=low
|
|||
* sctp: fix append error cause to ERROR chunk correctly (regression due
|
||||
to fix for CVE-2010-1173)
|
||||
* [powerpc] Enable pata_amd driver, replacing amd74xx
|
||||
* eeepc-laptop: Disable wireless hotplug on more models where the
|
||||
controller is not at the expected address (Closes: #576199)
|
||||
|
||||
[ Aurelien Jarno ]
|
||||
* [sh4] fix sh_tmu clocksource following recent nohz changes.
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
From 5e28809d08bf5002e3b11f500573476d0d4e1ab8 Mon Sep 17 00:00:00 2001
|
||||
From: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
|
||||
Date: Mon, 22 Feb 2010 16:03:58 +0000
|
||||
Subject: [PATCH] eeepc-laptop: check wireless hotplug events
|
||||
|
||||
commit bc9d24a3aeb1532fc3e234907a8b6d671f7ed68f upstream.
|
||||
|
||||
Before we mark the wireless device as unplugged, check PCI config space
|
||||
to see whether the wireless device is really disabled (and vice versa).
|
||||
This works around newer models which don't want the hotplug code, where
|
||||
we end up disabling the wired network device.
|
||||
|
||||
My old 701 still works correctly with this. I can also simulate an
|
||||
afflicted model by changing the hardcoded PCI bus/slot number in the
|
||||
driver, and it seems to work nicely (although it is a bit noisy).
|
||||
|
||||
In future this type of hotplug support will be implemented by the PCI
|
||||
core. The existing blacklist and the new warning message will be
|
||||
removed at that point.
|
||||
|
||||
Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
|
||||
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
|
||||
[bwh: Adjust context for 2.6.32]
|
||||
---
|
||||
drivers/platform/x86/eeepc-laptop.c | 18 ++++++++++++++++++
|
||||
1 files changed, 18 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
|
||||
index 329093e..c533b1c 100644
|
||||
--- a/drivers/platform/x86/eeepc-laptop.c
|
||||
+++ b/drivers/platform/x86/eeepc-laptop.c
|
||||
@@ -752,6 +752,8 @@ static void eeepc_rfkill_hotplug(void)
|
||||
struct pci_dev *dev;
|
||||
struct pci_bus *bus;
|
||||
bool blocked = eeepc_wlan_rfkill_blocked();
|
||||
+ bool absent;
|
||||
+ u32 l;
|
||||
|
||||
if (ehotk->wlan_rfkill)
|
||||
rfkill_set_sw_state(ehotk->wlan_rfkill, blocked);
|
||||
@@ -765,6 +767,22 @@ static void eeepc_rfkill_hotplug(void)
|
||||
goto out_unlock;
|
||||
}
|
||||
|
||||
+ if (pci_bus_read_config_dword(bus, 0, PCI_VENDOR_ID, &l)) {
|
||||
+ pr_err("Unable to read PCI config space?\n");
|
||||
+ goto out_unlock;
|
||||
+ }
|
||||
+ absent = (l == 0xffffffff);
|
||||
+
|
||||
+ if (blocked != absent) {
|
||||
+ pr_warning("BIOS says wireless lan is %s, "
|
||||
+ "but the pci device is %s\n",
|
||||
+ blocked ? "blocked" : "unblocked",
|
||||
+ absent ? "absent" : "present");
|
||||
+ pr_warning("skipped wireless hotplug as probably "
|
||||
+ "inappropriate for this model\n");
|
||||
+ goto out_unlock;
|
||||
+ }
|
||||
+
|
||||
if (!blocked) {
|
||||
dev = pci_get_slot(bus, 0);
|
||||
if (dev) {
|
||||
--
|
||||
1.7.1
|
||||
|
|
@ -127,3 +127,4 @@
|
|||
- bugfix/all/thinkpad-acpi-add-x100e.patch
|
||||
+ bugfix/all/sctp-fix-append-error-cause-to-ERROR-chunk-correctly.patch
|
||||
+ bugfix/mips/sibyte-m3-tlb-exception.patch
|
||||
+ bugfix/x86/eeepc-laptop-check-wireless-hotplug-events.patch
|
||||
|
|
Loading…
Reference in New Issue