On Sun, Mar 29, 2009 at 7:20 PM, Alan Jenkins <alan-jenkins@xxxxxxxxxxxxxx> wrote: > When an rfkill device is registered, the rfkill core will change its > state to the system default. So we need to prepare for state changes > *before* we register it. That means installing the eeepc-specific ACPI > callback which handles the hotplug of the wireless network adaptor. > > This problem doesn't occur during normal operation. You have to > > 1) Boot with wireless enabled. eeepc-laptop should load automatically. > 2) modprobe -r eeepc-laptop > 3) modprobe eeepc-laptop > > On boot, the default rfkill state will be set to enabled. > With the current core code, step 2) will disable the wireless. > Therefore in step 3), the wireless will change state during registration, > from disabled to enabled. But without this fix, the PCI device for the > wireless adaptor will not appear. > > Signed-off-by: Alan Jenkins <alan-jenkins@xxxxxxxxxxxxxx> > > diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c > index 786ed86..b8951b9 100644 > --- a/drivers/platform/x86/eeepc-laptop.c > +++ b/drivers/platform/x86/eeepc-laptop.c > @@ -645,6 +645,9 @@ static int eeepc_hotk_add(struct acpi_device *device) > if (ACPI_FAILURE(status)) > printk(EEEPC_ERR "Error installing notify handler\n"); > > + eeepc_register_rfkill_notifier("\\_SB.PCI0.P0P6"); > + eeepc_register_rfkill_notifier("\\_SB.PCI0.P0P7"); > + > if (get_acpi(CM_ASL_WLAN) != -1) { > ehotk->eeepc_wlan_rfkill = rfkill_allocate(&device->dev, > RFKILL_TYPE_WLAN); > @@ -700,9 +703,6 @@ static int eeepc_hotk_add(struct acpi_device *device) > goto bluetooth_fail; > } > > - eeepc_register_rfkill_notifier("\\_SB.PCI0.P0P6"); > - eeepc_register_rfkill_notifier("\\_SB.PCI0.P0P7"); > - > return 0; > > bluetooth_fail: > > > Hi, Cc'd linux-acpi to get more review about that. I'm not very familiar with rfkill interface. -- 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@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html