Re: acer-wmi problem handling device states from WMI events

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

 



On Tue, Jun 21, 2011 at 08:14:42AM -0500, Seth Forshee wrote:
> On Tue, Jun 21, 2011 at 04:16:38AM -0600, Joey Lee wrote:
> > Hi Seth, 
> > 
> > 於 一,2011-06-20 於 14:06 -0500,Seth Forshee 提到:
> > > Hi Joey,
> > > 
> > > acer-wmi is indiscriminately using the device state from hotkey events
> > > to update the various rfkill states. On the Aspire 1830 this can result
> > > in a soft block on the wlan when the touchpad hotkey is pressed, as it
> > > is reporting a non-zero device state that does not reflect the wireless
> > > status.
> > > 
> > 
> > Thank's for you found out this issue, I didn't meet it because touchpad
> > hotkey didn't emit any wmi event on my Acer TravelMate 8572. 
> > 
> > I will double check it.
> > 
> > > I beleive the following (untested) patch is a roughly correct fix for
> > > this issue.  It changes acer-wmi to only update the rfkill states when
> > > the appropriate hotkeys are pressed, but I'm a little unsure about the
> > > way I've split out the rfkill updates acording to the hotkeys. I don't
> > > see any support in the driver for a 3G hotkey, so I've grouped it with
> > > the wlan key, and I have split out bluetooth to be handled separately
> > > from these. Does this patch look correct?
> > > 
> > > Thanks,
> > > Seth
> > > 
> > 
> > Yes, I thought your patch can avoid acer-wmi update killswitch state
> > base on the result from non-Communication button.
> > 
> > On some Acer machines only have one wireless key, the key only emit
> > KEY_WIRELESS but EC updates 3 communication devices' states, I thought
> > we can direct update 3 killswitch state when received KEY_WLAN or
> > KEY_BLUETOOTH. maybe like this:
> > 
> > +			switch (key->keycode) {
> > +			case KEY_WLAN:
> > +			case KEY_BLUETOOTH:
> > +				if (has_cap(ACER_CAP_WIRELESS))
> > +					rfkill_set_sw_state(wireless_rfkill,
> > +						!(device_state & ACER_WMID3_GDS_WIRELESS));
> > +				if (has_cap(ACER_CAP_THREEG))
> > +					rfkill_set_sw_state(threeg_rfkill,
> > +						!(device_state & ACER_WMID3_GDS_THREEG));
> > +				if (has_cap(ACER_CAP_BLUETOOTH))
> > +					rfkill_set_sw_state(bluetooth_rfkill,
> > +						!(device_state & ACER_WMID3_GDS_BLUETOOTH));
> > +				break;
> > +			}
> > +			sparse_keymap_report_entry(acer_wmi_input_dev, key,
> > +						   1, true);
> > 
> > Of course need more testing on my and your Acer machines.
> > I will double check this patch on my TravelMate 8572 then reply result
> > on this mail tomorrow.
> 
> That is the other way I was thinking of doing this, but I wasn't sure
> which was correct, and the machine in question doesn't have bluetooth
> for me to test. Based on your explanation I think doing it as above is
> best.
> 
> I'll get some testing with the version above, and if it tests well for
> both of us I will send an updated patch plus one other patch to support
> the wlan hotkey on the 1830. I don't personally have this machine so it
> may be a few days before I receive results back from my tester.

I got test results back already, and the patch is working. I'll follow
up with both patches, that way if they work fine in your testing you can
go ahead and take them.

Thanks!
Seth
--
To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux