Re: [PATCH] eeepc-laptop: fix wlan rfkill state change during init

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Mar 29, 2009 at 11:16:25PM +0200, Corentin Chary wrote:
> 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.

Looks fine to me.

Acked-by: Matthew Garrett <mjg@xxxxxxxxxx>

-- 
Matthew Garrett | mjg59@xxxxxxxxxxxxx
--
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

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux