forked from mirrors/linux
		
	platform/x86: asus-wmi: Only Tell EC the OS will handle display hotkeys from asus_nb_wmi
Commit78f3ac76d9("platform/x86: asus-wmi: Tell the EC the OS will handle the display off hotkey") causes the backlight to be permanently off on various EeePC laptop models using the eeepc-wmi driver (Asus EeePC 1015BX, Asus EeePC 1025C). The asus_wmi_set_devstate(ASUS_WMI_DEVID_BACKLIGHT, 2, NULL) call added by that commit is made conditional in this commit and only enabled in the quirk_entry structs in the asus-nb-wmi driver fixing the broken display / backlight on various EeePC laptop models. Cc: João Paulo Rechi Vita <jprvita@endlessm.com> Fixes:78f3ac76d9("platform/x86: asus-wmi: Tell the EC the OS will handle the display off hotkey") Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
This commit is contained in:
		
							parent
							
								
									4e6d273940
								
							
						
					
					
						commit
						1dd93f873d
					
				
					 3 changed files with 10 additions and 1 deletions
				
			
		|  | @ -78,10 +78,12 @@ static bool asus_q500a_i8042_filter(unsigned char data, unsigned char str, | ||||||
| 
 | 
 | ||||||
| static struct quirk_entry quirk_asus_unknown = { | static struct quirk_entry quirk_asus_unknown = { | ||||||
| 	.wapf = 0, | 	.wapf = 0, | ||||||
|  | 	.wmi_backlight_set_devstate = true, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static struct quirk_entry quirk_asus_q500a = { | static struct quirk_entry quirk_asus_q500a = { | ||||||
| 	.i8042_filter = asus_q500a_i8042_filter, | 	.i8042_filter = asus_q500a_i8042_filter, | ||||||
|  | 	.wmi_backlight_set_devstate = true, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  | @ -92,26 +94,32 @@ static struct quirk_entry quirk_asus_q500a = { | ||||||
| static struct quirk_entry quirk_asus_x55u = { | static struct quirk_entry quirk_asus_x55u = { | ||||||
| 	.wapf = 4, | 	.wapf = 4, | ||||||
| 	.wmi_backlight_power = true, | 	.wmi_backlight_power = true, | ||||||
|  | 	.wmi_backlight_set_devstate = true, | ||||||
| 	.no_display_toggle = true, | 	.no_display_toggle = true, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static struct quirk_entry quirk_asus_wapf4 = { | static struct quirk_entry quirk_asus_wapf4 = { | ||||||
| 	.wapf = 4, | 	.wapf = 4, | ||||||
|  | 	.wmi_backlight_set_devstate = true, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static struct quirk_entry quirk_asus_x200ca = { | static struct quirk_entry quirk_asus_x200ca = { | ||||||
| 	.wapf = 2, | 	.wapf = 2, | ||||||
|  | 	.wmi_backlight_set_devstate = true, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static struct quirk_entry quirk_asus_ux303ub = { | static struct quirk_entry quirk_asus_ux303ub = { | ||||||
| 	.wmi_backlight_native = true, | 	.wmi_backlight_native = true, | ||||||
|  | 	.wmi_backlight_set_devstate = true, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static struct quirk_entry quirk_asus_x550lb = { | static struct quirk_entry quirk_asus_x550lb = { | ||||||
|  | 	.wmi_backlight_set_devstate = true, | ||||||
| 	.xusb2pr = 0x01D9, | 	.xusb2pr = 0x01D9, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static struct quirk_entry quirk_asus_forceals = { | static struct quirk_entry quirk_asus_forceals = { | ||||||
|  | 	.wmi_backlight_set_devstate = true, | ||||||
| 	.wmi_force_als_set = true, | 	.wmi_force_als_set = true, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2159,7 +2159,7 @@ static int asus_wmi_add(struct platform_device *pdev) | ||||||
| 		err = asus_wmi_backlight_init(asus); | 		err = asus_wmi_backlight_init(asus); | ||||||
| 		if (err && err != -ENODEV) | 		if (err && err != -ENODEV) | ||||||
| 			goto fail_backlight; | 			goto fail_backlight; | ||||||
| 	} else | 	} else if (asus->driver->quirks->wmi_backlight_set_devstate) | ||||||
| 		err = asus_wmi_set_devstate(ASUS_WMI_DEVID_BACKLIGHT, 2, NULL); | 		err = asus_wmi_set_devstate(ASUS_WMI_DEVID_BACKLIGHT, 2, NULL); | ||||||
| 
 | 
 | ||||||
| 	if (asus_wmi_has_fnlock_key(asus)) { | 	if (asus_wmi_has_fnlock_key(asus)) { | ||||||
|  |  | ||||||
|  | @ -44,6 +44,7 @@ struct quirk_entry { | ||||||
| 	bool store_backlight_power; | 	bool store_backlight_power; | ||||||
| 	bool wmi_backlight_power; | 	bool wmi_backlight_power; | ||||||
| 	bool wmi_backlight_native; | 	bool wmi_backlight_native; | ||||||
|  | 	bool wmi_backlight_set_devstate; | ||||||
| 	bool wmi_force_als_set; | 	bool wmi_force_als_set; | ||||||
| 	int wapf; | 	int wapf; | ||||||
| 	/*
 | 	/*
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Hans de Goede
						Hans de Goede