All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] EeePC 1005PE rfkill fix
@ 2010-01-28 12:53 Paul Brook
  2010-01-28 13:26   ` Corentin Chary
  0 siblings, 1 reply; 6+ messages in thread
From: Paul Brook @ 2010-01-28 12:53 UTC (permalink / raw)
  To: acpi4asus-user; +Cc: Corentin Chary, linux-kernel

The EeePC 1005PE has the wireless card on PCI bus 2.

Signed-off-by: Paul Brook <paul@codesourcery.com>
---
Same as before, but without mail client mangling the patch.

I couldn't figure out a smart way of figuring out the correct bus, so I 
hardcoded the device name. lspci and acpi dumps available at 
http://www.pbrook80.webspace.virginmedia.com/

My guess is that the 1005HA is configured similarly, however I don't have 
hardware to test. The preceding comments imply that the 1005HA does not 
require the pci hotplug bits. On my 1005PE the hotplug bits are definitely 
required (the device stops responding when the rfkill is activated), we just 
need to make sure we disable the right bus. PCI bus 1 contains the wired 
Ethernet controller.

 drivers/platform/x86/eeepc-laptop.c |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
index e2be6bb..6b53701 100644
--- a/drivers/platform/x86/eeepc-laptop.c
+++ b/drivers/platform/x86/eeepc-laptop.c
@@ -161,6 +161,7 @@ struct eeepc_laptop {
 					   by this BIOS */
 	bool cpufv_disabled;
 	bool hotplug_disabled;
+	int hotplug_bus;
 	u16 event_count[128];		/* count for each event */
 
 	struct platform_device *platform_device;
@@ -585,9 +586,10 @@ static void eeepc_rfkill_hotplug(struct eeepc_laptop *eeepc)
 	mutex_lock(&eeepc->hotplug_lock);
 
 	if (eeepc->hotplug_slot) {
-		bus = pci_find_bus(0, 1);
+		bus = pci_find_bus(0, eeepc->hotplug_bus);
 		if (!bus) {
-			pr_warning("Unable to find PCI bus 1?\n");
+			pr_warning("Unable to find PCI bus %d?\n",
+				   eeepc->hotplug_bus);
 			goto out_unlock;
 		}
 
@@ -695,7 +697,7 @@ static struct hotplug_slot_ops eeepc_hotplug_slot_ops = {
 static int eeepc_setup_pci_hotplug(struct eeepc_laptop *eeepc)
 {
 	int ret = -ENOMEM;
-	struct pci_bus *bus = pci_find_bus(0, 1);
+	struct pci_bus *bus = pci_find_bus(0, eeepc->hotplug_bus);
 
 	if (!bus) {
 		pr_err("Unable to find wifi PCI bus\n");
@@ -1281,6 +1283,13 @@ static void eeepc_dmi_check(struct eeepc_laptop *eeepc)
 		eeepc->hotplug_disabled = true;
 		pr_info("wlan hotplug disabled\n");
 	}
+
+	/* The eeepc 1005PE has the wireless chip on the second PCIe bus.  */
+	if (strcmp(model, "1005PE") == 0) {
+	    eeepc->hotplug_bus = 2;
+	} else {
+	    eeepc->hotplug_bus = 1;
+	}
 }
 
 static void cmsg_quirk(struct eeepc_laptop *eeepc, int cm, const char *name)
-- 
1.6.6


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] EeePC 1005PE rfkill fix
  2010-01-28 12:53 [PATCH] EeePC 1005PE rfkill fix Paul Brook
@ 2010-01-28 13:26   ` Corentin Chary
  0 siblings, 0 replies; 6+ messages in thread
From: Corentin Chary @ 2010-01-28 13:26 UTC (permalink / raw)
  To: Paul Brook
  Cc: acpi4asus-user, linux-kernel, linux acpi, Matthew Garrett, Alan Jenkins

On Thu, Jan 28, 2010 at 1:53 PM, Paul Brook <paul@codesourcery.com> wrote:
> The EeePC 1005PE has the wireless card on PCI bus 2.
>
> Signed-off-by: Paul Brook <paul@codesourcery.com>
> ---
> Same as before, but without mail client mangling the patch.
>
> I couldn't figure out a smart way of figuring out the correct bus, so I
> hardcoded the device name. lspci and acpi dumps available at
> http://www.pbrook80.webspace.virginmedia.com/
>
> My guess is that the 1005HA is configured similarly, however I don't have
> hardware to test. The preceding comments imply that the 1005HA does not
> require the pci hotplug bits. On my 1005PE the hotplug bits are definitely
> required (the device stops responding when the rfkill is activated), we just
> need to make sure we disable the right bus. PCI bus 1 contains the wired
> Ethernet controller.
>
>  drivers/platform/x86/eeepc-laptop.c |   15 ++++++++++++---
>  1 files changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
> index e2be6bb..6b53701 100644
> --- a/drivers/platform/x86/eeepc-laptop.c
> +++ b/drivers/platform/x86/eeepc-laptop.c
> @@ -161,6 +161,7 @@ struct eeepc_laptop {
>                                           by this BIOS */
>        bool cpufv_disabled;
>        bool hotplug_disabled;
> +       int hotplug_bus;
>        u16 event_count[128];           /* count for each event */
>
>        struct platform_device *platform_device;
> @@ -585,9 +586,10 @@ static void eeepc_rfkill_hotplug(struct eeepc_laptop *eeepc)
>        mutex_lock(&eeepc->hotplug_lock);
>
>        if (eeepc->hotplug_slot) {
> -               bus = pci_find_bus(0, 1);
> +               bus = pci_find_bus(0, eeepc->hotplug_bus);
>                if (!bus) {
> -                       pr_warning("Unable to find PCI bus 1?\n");
> +                       pr_warning("Unable to find PCI bus %d?\n",
> +                                  eeepc->hotplug_bus);
>                        goto out_unlock;
>                }
>
> @@ -695,7 +697,7 @@ static struct hotplug_slot_ops eeepc_hotplug_slot_ops = {
>  static int eeepc_setup_pci_hotplug(struct eeepc_laptop *eeepc)
>  {
>        int ret = -ENOMEM;
> -       struct pci_bus *bus = pci_find_bus(0, 1);
> +       struct pci_bus *bus = pci_find_bus(0, eeepc->hotplug_bus);
>
>        if (!bus) {
>                pr_err("Unable to find wifi PCI bus\n");
> @@ -1281,6 +1283,13 @@ static void eeepc_dmi_check(struct eeepc_laptop *eeepc)
>                eeepc->hotplug_disabled = true;
>                pr_info("wlan hotplug disabled\n");
>        }
> +
> +       /* The eeepc 1005PE has the wireless chip on the second PCIe bus.  */
> +       if (strcmp(model, "1005PE") == 0) {
> +           eeepc->hotplug_bus = 2;
> +       } else {
> +           eeepc->hotplug_bus = 1;
> +       }
>  }
>
>  static void cmsg_quirk(struct eeepc_laptop *eeepc, int cm, const char *name)
> --
> 1.6.6

Hi Paul,
First did you try your patch with an updated bios ?
It's weird that 1005HA and 1005PE don't have the same behavior :/.
Any objection about this patch someone ?
If not, I'll add it to acpi4asus tree, but it may not be included in 2.6.33.
Thanks,

-- 
Corentin Chary
http://xf.iksaif.net
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] EeePC 1005PE rfkill fix
@ 2010-01-28 13:26   ` Corentin Chary
  0 siblings, 0 replies; 6+ messages in thread
From: Corentin Chary @ 2010-01-28 13:26 UTC (permalink / raw)
  To: Paul Brook
  Cc: acpi4asus-user, linux-kernel, linux acpi, Matthew Garrett, Alan Jenkins

On Thu, Jan 28, 2010 at 1:53 PM, Paul Brook <paul@codesourcery.com> wrote:
> The EeePC 1005PE has the wireless card on PCI bus 2.
>
> Signed-off-by: Paul Brook <paul@codesourcery.com>
> ---
> Same as before, but without mail client mangling the patch.
>
> I couldn't figure out a smart way of figuring out the correct bus, so I
> hardcoded the device name. lspci and acpi dumps available at
> http://www.pbrook80.webspace.virginmedia.com/
>
> My guess is that the 1005HA is configured similarly, however I don't have
> hardware to test. The preceding comments imply that the 1005HA does not
> require the pci hotplug bits. On my 1005PE the hotplug bits are definitely
> required (the device stops responding when the rfkill is activated), we just
> need to make sure we disable the right bus. PCI bus 1 contains the wired
> Ethernet controller.
>
>  drivers/platform/x86/eeepc-laptop.c |   15 ++++++++++++---
>  1 files changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
> index e2be6bb..6b53701 100644
> --- a/drivers/platform/x86/eeepc-laptop.c
> +++ b/drivers/platform/x86/eeepc-laptop.c
> @@ -161,6 +161,7 @@ struct eeepc_laptop {
>                                           by this BIOS */
>        bool cpufv_disabled;
>        bool hotplug_disabled;
> +       int hotplug_bus;
>        u16 event_count[128];           /* count for each event */
>
>        struct platform_device *platform_device;
> @@ -585,9 +586,10 @@ static void eeepc_rfkill_hotplug(struct eeepc_laptop *eeepc)
>        mutex_lock(&eeepc->hotplug_lock);
>
>        if (eeepc->hotplug_slot) {
> -               bus = pci_find_bus(0, 1);
> +               bus = pci_find_bus(0, eeepc->hotplug_bus);
>                if (!bus) {
> -                       pr_warning("Unable to find PCI bus 1?\n");
> +                       pr_warning("Unable to find PCI bus %d?\n",
> +                                  eeepc->hotplug_bus);
>                        goto out_unlock;
>                }
>
> @@ -695,7 +697,7 @@ static struct hotplug_slot_ops eeepc_hotplug_slot_ops = {
>  static int eeepc_setup_pci_hotplug(struct eeepc_laptop *eeepc)
>  {
>        int ret = -ENOMEM;
> -       struct pci_bus *bus = pci_find_bus(0, 1);
> +       struct pci_bus *bus = pci_find_bus(0, eeepc->hotplug_bus);
>
>        if (!bus) {
>                pr_err("Unable to find wifi PCI bus\n");
> @@ -1281,6 +1283,13 @@ static void eeepc_dmi_check(struct eeepc_laptop *eeepc)
>                eeepc->hotplug_disabled = true;
>                pr_info("wlan hotplug disabled\n");
>        }
> +
> +       /* The eeepc 1005PE has the wireless chip on the second PCIe bus.  */
> +       if (strcmp(model, "1005PE") == 0) {
> +           eeepc->hotplug_bus = 2;
> +       } else {
> +           eeepc->hotplug_bus = 1;
> +       }
>  }
>
>  static void cmsg_quirk(struct eeepc_laptop *eeepc, int cm, const char *name)
> --
> 1.6.6

Hi Paul,
First did you try your patch with an updated bios ?
It's weird that 1005HA and 1005PE don't have the same behavior :/.
Any objection about this patch someone ?
If not, I'll add it to acpi4asus tree, but it may not be included in 2.6.33.
Thanks,

-- 
Corentin Chary
http://xf.iksaif.net

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] EeePC 1005PE rfkill fix
  2010-01-28 13:26   ` Corentin Chary
@ 2010-01-28 16:50       ` Paul Brook
  -1 siblings, 0 replies; 6+ messages in thread
From: Paul Brook @ 2010-01-28 16:50 UTC (permalink / raw)
  To: Corentin Chary
  Cc: linux acpi, acpi4asus-user-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	Alan Jenkins, linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	Matthew Garrett

> First did you try your patch with an updated bios ?

Good point. The updated bios seems to behave better (the same as the 1005HA), 
so consider the original patch withdrawn.  We just need to add 1005PE to the 
existing blacklist.

Paul

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] EeePC 1005PE rfkill fix
@ 2010-01-28 16:50       ` Paul Brook
  0 siblings, 0 replies; 6+ messages in thread
From: Paul Brook @ 2010-01-28 16:50 UTC (permalink / raw)
  To: Corentin Chary
  Cc: acpi4asus-user, linux-kernel, linux acpi, Matthew Garrett, Alan Jenkins

> First did you try your patch with an updated bios ?

Good point. The updated bios seems to behave better (the same as the 1005HA), 
so consider the original patch withdrawn.  We just need to add 1005PE to the 
existing blacklist.

Paul

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH] EeePC 1005PE rfkill fix
@ 2010-01-27 15:35 Paul Brook
  0 siblings, 0 replies; 6+ messages in thread
From: Paul Brook @ 2010-01-27 15:35 UTC (permalink / raw)
  To: acpi4asus-user; +Cc: Corentin Chary, linux-kernel

The EeePC 1005PE has the wireless card on PCI bus 2.

Signed-off-by: Paul Brook <paul@codesourcery.com>
---

I couldn't figure out a smart way of figuring out the correct bus, so I 
hardcoded the device name. lspci and acpi dumps available at 
http://www.pbrook80.webspace.virginmedia.com/

My guess is that the 1005HA is configured similarly, however I don't have 
hardware to test. The preceding comments imply that the 1005HA does not 
require the pci hotplug bits. On my 1005PE the hotplug bits are definitely 
required (the device stops responding when the rfkill is activated), we just 
need to make sure we disable the right bus. PCI bus 1 contains the wired 
Ethernet controller.

 drivers/platform/x86/eeepc-laptop.c |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-
laptop.c
index e2be6bb..6b53701 100644
--- a/drivers/platform/x86/eeepc-laptop.c
+++ b/drivers/platform/x86/eeepc-laptop.c
@@ -161,6 +161,7 @@ struct eeepc_laptop {
 					   by this BIOS */
 	bool cpufv_disabled;
 	bool hotplug_disabled;
+	int hotplug_bus;
 	u16 event_count[128];		/* count for each event */
 
 	struct platform_device *platform_device;
@@ -585,9 +586,10 @@ static void eeepc_rfkill_hotplug(struct eeepc_laptop 
*eeepc)
 	mutex_lock(&eeepc->hotplug_lock);
 
 	if (eeepc->hotplug_slot) {
-		bus = pci_find_bus(0, 1);
+		bus = pci_find_bus(0, eeepc->hotplug_bus);
 		if (!bus) {
-			pr_warning("Unable to find PCI bus 1?\n");
+			pr_warning("Unable to find PCI bus %d?\n",
+				   eeepc->hotplug_bus);
 			goto out_unlock;
 		}
 
@@ -695,7 +697,7 @@ static struct hotplug_slot_ops eeepc_hotplug_slot_ops = {
 static int eeepc_setup_pci_hotplug(struct eeepc_laptop *eeepc)
 {
 	int ret = -ENOMEM;
-	struct pci_bus *bus = pci_find_bus(0, 1);
+	struct pci_bus *bus = pci_find_bus(0, eeepc->hotplug_bus);
 
 	if (!bus) {
 		pr_err("Unable to find wifi PCI bus\n");
@@ -1281,6 +1283,13 @@ static void eeepc_dmi_check(struct eeepc_laptop *eeepc)
 		eeepc->hotplug_disabled = true;
 		pr_info("wlan hotplug disabled\n");
 	}
+
+	/* The eeepc 1005PE has the wireless chip on the second PCI bus 2.  */
+	if (strcmp(model, "1005PE") == 0) {
+	    eeepc->hotplug_bus = 2;
+	} else {
+	    eeepc->hotplug_bus = 1;
+	}
 }
 
 static void cmsg_quirk(struct eeepc_laptop *eeepc, int cm, const char *name)
-- 
1.6.6


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-01-28 16:51 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-01-28 12:53 [PATCH] EeePC 1005PE rfkill fix Paul Brook
2010-01-28 13:26 ` Corentin Chary
2010-01-28 13:26   ` Corentin Chary
     [not found]   ` <71cd59b01001280526m54ddbd82t7803629a2149fa2c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-01-28 16:50     ` Paul Brook
2010-01-28 16:50       ` Paul Brook
  -- strict thread matches above, loose matches on Subject: below --
2010-01-27 15:35 Paul Brook

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.