[077/197] eeepc-laptop: dmi blacklist to disable pci hotplug code

From: Greg KH
Date: Thu Apr 22 2010 - 15:56:51 EST


2.6.32-stable review patch. If anyone has any objections, please let us know.

------------------

commit 10ae4b5663ff3092553bfbd867e7bd474ce6c553 upstream.

This is a short term workaround for Eeepc 1005HA.

refs: <http://bugzilla.kernel.org/show_bug.cgi?id=14570>

[bwh: Backported to 2.6.32]

Signed-off-by: Corentin Chary <corentincj@xxxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
Cc: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx>

---
drivers/platform/x86/eeepc-laptop.c | 25 ++++++++++++++++++++-----
1 file changed, 20 insertions(+), 5 deletions(-)

--- a/drivers/platform/x86/eeepc-laptop.c
+++ b/drivers/platform/x86/eeepc-laptop.c
@@ -137,6 +137,7 @@ struct eeepc_hotk {
u32 cm_supported; /* the control methods supported
by this BIOS */
bool cpufv_disabled;
+ bool hotplug_disabled;
uint init_flag; /* Init flags */
u16 event_count[128]; /* count for each event */
struct input_dev *inputdev;
@@ -614,6 +615,10 @@ static void eeepc_dmi_check(void)
{
const char *model;

+ model = dmi_get_system_info(DMI_PRODUCT_NAME);
+ if (!model)
+ return;
+
/*
* Blacklist for setting cpufv (cpu speed).
*
@@ -633,17 +638,24 @@ static void eeepc_dmi_check(void)
* substring matching. We don't want to affect the "701SD"
* and "701SDX" models, because they do support S.H.E.
*/
-
- model = dmi_get_system_info(DMI_PRODUCT_NAME);
- if (!model)
- return;
-
if (strcmp(model, "701") == 0 || strcmp(model, "702") == 0) {
ehotk->cpufv_disabled = true;
pr_info("model %s does not officially support setting cpu "
"speed\n", model);
pr_info("cpufv disabled to avoid instability\n");
}
+
+ /*
+ * Blacklist for wlan hotplug
+ *
+ * Eeepc 1005HA doesn't work like others models and don't need the
+ * hotplug code. In fact, current hotplug code seems to unplug another
+ * device...
+ */
+ if (strcmp(model, "1005HA") == 0) {
+ ehotk->hotplug_disabled = true;
+ pr_info("wlan hotplug disabled\n");
+ }
}

static void cmsg_quirk(int cm, const char *name)
@@ -1177,6 +1189,9 @@ static int eeepc_rfkill_init(struct devi
if (result && result != -ENODEV)
goto exit;

+ if (ehotk->hotplug_disabled)
+ return 0;
+
result = eeepc_setup_pci_hotplug();
/*
* If we get -EBUSY then something else is handling the PCI hotplug -


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/