kernel-testers.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alan Jenkins <sourcejedi.lkml@googlemail.com>
To: Karsten Jaeger <lists@oss42.com>
Cc: debian-eeepc-devel@lists.alioth.debian.org,
	Kernel Testers List <kernel-testers@vger.kernel.org>,
	acpi4asus-user <acpi4asus-user@lists.sourceforge.net>,
	ACPI Devel Maling List <linux-acpi@vger.kernel.org>
Subject: Re: [Debian-eeepc-devel] Problems with wlan on a 1005HA-M
Date: Thu, 20 Aug 2009 14:38:58 +0100	[thread overview]
Message-ID: <9b2b86520908200638y75c0c80cm4faf9a5c67b61397@mail.gmail.com> (raw)
In-Reply-To: <4A8D32A8.8000702@oss42.com>

[-- Attachment #1: Type: text/plain, Size: 1882 bytes --]

On 8/20/09, Karsten Jaeger <lists@oss42.com> wrote:
> Hi there,
>
> I've just ask in IRC for help and was ask to write it to the list.
>
> Last week I bought my EeePC 1005HA-M. It comes with Windows and Ubuntu
> Installation, everything works fine.
> Because my favorite OS is Debian I install it on the EeePC with
> Standard-Lenny and kernel linux-image-2.6.31-rc5, updating it to sid and
> everything worked fine. I updated it last sunday with latest sid and
> kernel linux-image-2.6.31-rc6, put in in sleep mode (which worked fine
> before) and want to restart it again on monday but nothing worked, I
> have a black screen and it do not return from sleep. So I do an cold reboot.
> After that, my wlan said, it have an segmentation fault and also gives
> the line back:
>
> SIOCSIFFLAGS: Unknown error 132
> Because I want to change some more, I do reinstalling it all, but since
> than, I can't get wlan to work again.
>
> As attachment I give you some files, that I do think are nessesary. If
> you need more, just give a hint.

That looks like the new rfkill error code.  Basically it means the
wireless has been disabled.  I guess the segmentation fault is a
userspace bug, unless you also see a BUG message in dmesg.

You should definitely be able to re-enable the wireless using the BIOS
setup screen... try these instructions:

<http://www.1-script.com/forums/wireless-card-and-camera-no-longer-work-or-show-in-hardware-article46509--25.htm>

Are you able to confirm that this happens just by upgrading the
kernel?  If so, there's only one eeepc-laptop commit between -rc5 and
-rc6, and I'm afraid it's mine.

I re-wrote it again for 2.6.32 in a slightly more sensible way.  If
we're lucky, your problem is fixed by the re-write and it can be
expedited for 2.6.31.  I've attached the relevant changes as a test
patch; it should apply cleanly to 2.6.31-rc6.

Regards
Alan

[-- Attachment #2: test.patch --]
[-- Type: text/x-diff, Size: 2442 bytes --]

diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
index 222ffb8..1790103 100644
--- a/drivers/platform/x86/eeepc-laptop.c
+++ b/drivers/platform/x86/eeepc-laptop.c
@@ -143,7 +143,7 @@ struct eeepc_hotk {
 	struct rfkill *bluetooth_rfkill;
 	struct rfkill *wwan3g_rfkill;
 	struct hotplug_slot *hotplug_slot;
-	struct work_struct hotplug_work;
+	struct mutex hotplug_lock;
 };
 
 /* The actual device the driver binds to */
@@ -661,24 +661,31 @@ static int eeepc_get_adapter_status(struct hotplug_slot *hotplug_slot,
 	return 0;
 }
 
-static void eeepc_hotplug_work(struct work_struct *work)
+static void eeepc_rfkill_hotplug(void)
 {
 	struct pci_dev *dev;
-	struct pci_bus *bus = pci_find_bus(0, 1);
-	bool blocked;
+	struct pci_bus *bus;
+	bool blocked = eeepc_wlan_rfkill_blocked();
+
+	rfkill_set_sw_state(ehotk->wlan_rfkill, blocked);
+
+	mutex_lock(&ehotk->hotplug_lock);
 
+	if (ehotk->hotplug_slot == NULL)
+		goto out_unlock;
+
+	bus = pci_find_bus(0, 1);
 	if (!bus) {
 		pr_warning("Unable to find PCI bus 1?\n");
-		return;
+		goto out_unlock;
 	}
 
-	blocked = eeepc_wlan_rfkill_blocked();
 	if (!blocked) {
 		dev = pci_get_slot(bus, 0);
 		if (dev) {
 			/* Device already present */
 			pci_dev_put(dev);
-			return;
+			goto out_unlock;
 		}
 		dev = pci_scan_single_device(bus, 0);
 		if (dev) {
@@ -694,7 +701,8 @@ static void eeepc_hotplug_work(struct work_struct *work)
 		}
 	}
 
-	rfkill_set_sw_state(ehotk->wlan_rfkill, blocked);
+out_unlock:
+	mutex_unlock(&ehotk->hotplug_lock);
 }
 
 static void eeepc_rfkill_notify(acpi_handle handle, u32 event, void *data)
@@ -702,7 +710,7 @@ static void eeepc_rfkill_notify(acpi_handle handle, u32 event, void *data)
 	if (event != ACPI_NOTIFY_BUS_CHECK)
 		return;
 
-	schedule_work(&ehotk->hotplug_work);
+	eeepc_rfkill_hotplug();
 }
 
 static void eeepc_hotk_notify(struct acpi_device *device, u32 event)
@@ -893,7 +901,7 @@ static int eeepc_hotk_resume(struct acpi_device *device)
 
 		rfkill_set_sw_state(ehotk->wlan_rfkill, wlan != 1);
 
-		schedule_work(&ehotk->hotplug_work);
+		eeepc_rfkill_hotplug();
 	}
 
 	if (ehotk->bluetooth_rfkill)
@@ -1094,7 +1102,7 @@ static int eeepc_rfkill_init(struct device *dev)
 {
 	int result = 0;
 
-	INIT_WORK(&ehotk->hotplug_work, eeepc_hotplug_work);
+	mutex_init(&ehotk->hotplug_lock);
 
 	eeepc_register_rfkill_notifier("\\_SB.PCI0.P0P6");
 	eeepc_register_rfkill_notifier("\\_SB.PCI0.P0P7");

           reply	other threads:[~2009-08-20 13:38 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <4A8D32A8.8000702@oss42.com>]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9b2b86520908200638y75c0c80cm4faf9a5c67b61397@mail.gmail.com \
    --to=sourcejedi.lkml@googlemail.com \
    --cc=acpi4asus-user@lists.sourceforge.net \
    --cc=debian-eeepc-devel@lists.alioth.debian.org \
    --cc=kernel-testers@vger.kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=lists@oss42.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).