Hi, On 12/7/20 7:43 AM, Chris Chiu wrote: > From: Daniel Drake <drake@xxxxxxxxxxxxx> > > Sending the switch state change twice within the same frame is invalid > evdev protocol and only works if the client handles keys immediately as > well. Processing events immediately is incorrect, it forces a fake > order of events that does not exist on the device. > > Recent versions of libinput changed to only process the device state and > SYN_REPORT time, so now the key event is lost. > > Same fix as 'commit <bff5bf9db1c94> ("platform/x86: asus-wireless: send > an EV_SYN/SYN_REPORT between state changes")' > > Signed-off-by: Daniel Drake <drake@xxxxxxxxxxxxx> > Signed-off-by: Chris Chiu <chiu@xxxxxxxxxxxxx> Thank you for your patch, I've applied this patch to my review-hans branch: https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans Note it will show up in my review-hans branch once I've pushed my local branch there, which might take a while. Once I've run some tests on this branch the patches there will be added to the platform-drivers-x86/for-next branch and eventually will be included in the pdx86 pull-request to Linus for the next merge-window. Regards, Hans > --- > drivers/platform/x86/acer-wireless.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/platform/x86/acer-wireless.c b/drivers/platform/x86/acer-wireless.c > index e0976180532a..1b5d935d085a 100644 > --- a/drivers/platform/x86/acer-wireless.c > +++ b/drivers/platform/x86/acer-wireless.c > @@ -28,6 +28,7 @@ static void acer_wireless_notify(struct acpi_device *adev, u32 event) > return; > } > input_report_key(idev, KEY_RFKILL, 1); > + input_sync(idev); > input_report_key(idev, KEY_RFKILL, 0); > input_sync(idev); > } >