@@ -123,7 +123,6 @@ module_param(fnlock_default, bool, 0444);
123
123
#define NVIDIA_TEMP_MIN 75
124
124
#define NVIDIA_TEMP_MAX 87
125
125
126
- #define ASUS_SCREENPAD_BRIGHT_MIN 20
127
126
#define ASUS_SCREENPAD_BRIGHT_MAX 255
128
127
#define ASUS_SCREENPAD_BRIGHT_DEFAULT 60
129
128
@@ -4239,43 +4238,37 @@ static int read_screenpad_brightness(struct backlight_device *bd)
4239
4238
return err ;
4240
4239
/* The device brightness can only be read if powered, so return stored */
4241
4240
if (err == BACKLIGHT_POWER_OFF )
4242
- return asus -> driver -> screenpad_brightness - ASUS_SCREENPAD_BRIGHT_MIN ;
4241
+ return bd -> props . brightness ;
4243
4242
4244
4243
err = asus_wmi_get_devstate (asus , ASUS_WMI_DEVID_SCREENPAD_LIGHT , & retval );
4245
4244
if (err < 0 )
4246
4245
return err ;
4247
4246
4248
- return (retval & ASUS_WMI_DSTS_BRIGHTNESS_MASK ) - ASUS_SCREENPAD_BRIGHT_MIN ;
4247
+ return (retval & ASUS_WMI_DSTS_BRIGHTNESS_MASK );
4249
4248
}
4250
4249
4251
4250
static int update_screenpad_bl_status (struct backlight_device * bd )
4252
4251
{
4253
- struct asus_wmi * asus = bl_get_data (bd );
4254
- int power , err = 0 ;
4252
+ int err = 0 ;
4255
4253
u32 ctrl_param ;
4256
4254
4257
- power = read_screenpad_backlight_power (asus );
4258
- if (power < 0 )
4259
- return power ;
4260
-
4261
- if (bd -> props .power != power ) {
4262
- if (power != BACKLIGHT_POWER_ON ) {
4263
- /* Only brightness > 0 can power it back on */
4264
- ctrl_param = asus -> driver -> screenpad_brightness - ASUS_SCREENPAD_BRIGHT_MIN ;
4265
- err = asus_wmi_set_devstate (ASUS_WMI_DEVID_SCREENPAD_LIGHT ,
4266
- ctrl_param , NULL );
4267
- } else {
4268
- err = asus_wmi_set_devstate (ASUS_WMI_DEVID_SCREENPAD_POWER , 0 , NULL );
4269
- }
4270
- } else if (power == BACKLIGHT_POWER_ON ) {
4271
- /* Only set brightness if powered on or we get invalid/unsync state */
4272
- ctrl_param = bd -> props .brightness + ASUS_SCREENPAD_BRIGHT_MIN ;
4255
+ ctrl_param = bd -> props .brightness ;
4256
+ if (ctrl_param >= 0 && bd -> props .power ) {
4257
+ err = asus_wmi_set_devstate (ASUS_WMI_DEVID_SCREENPAD_POWER , 1 ,
4258
+ NULL );
4259
+ if (err < 0 )
4260
+ return err ;
4261
+ ctrl_param = bd -> props .brightness ;
4273
4262
err = asus_wmi_set_devstate (ASUS_WMI_DEVID_SCREENPAD_LIGHT , ctrl_param , NULL );
4263
+ if (err < 0 )
4264
+ return err ;
4274
4265
}
4275
4266
4276
- /* Ensure brightness is stored to turn back on with */
4277
- if (err == 0 )
4278
- asus -> driver -> screenpad_brightness = bd -> props .brightness + ASUS_SCREENPAD_BRIGHT_MIN ;
4267
+ if (!bd -> props .power ) {
4268
+ err = asus_wmi_set_devstate (ASUS_WMI_DEVID_SCREENPAD_POWER , 0 , NULL );
4269
+ if (err < 0 )
4270
+ return err ;
4271
+ }
4279
4272
4280
4273
return err ;
4281
4274
}
@@ -4293,22 +4286,19 @@ static int asus_screenpad_init(struct asus_wmi *asus)
4293
4286
int err , power ;
4294
4287
int brightness = 0 ;
4295
4288
4296
- power = read_screenpad_backlight_power (asus );
4289
+ power = asus_wmi_get_devstate_simple (asus , ASUS_WMI_DEVID_SCREENPAD_POWER );
4297
4290
if (power < 0 )
4298
4291
return power ;
4299
4292
4300
- if (power != BACKLIGHT_POWER_OFF ) {
4293
+ if (power ) {
4301
4294
err = asus_wmi_get_devstate (asus , ASUS_WMI_DEVID_SCREENPAD_LIGHT , & brightness );
4302
4295
if (err < 0 )
4303
4296
return err ;
4304
4297
}
4305
- /* default to an acceptable min brightness on boot if too low */
4306
- if (brightness < ASUS_SCREENPAD_BRIGHT_MIN )
4307
- brightness = ASUS_SCREENPAD_BRIGHT_DEFAULT ;
4308
4298
4309
4299
memset (& props , 0 , sizeof (struct backlight_properties ));
4310
4300
props .type = BACKLIGHT_RAW ; /* ensure this bd is last to be picked */
4311
- props .max_brightness = ASUS_SCREENPAD_BRIGHT_MAX - ASUS_SCREENPAD_BRIGHT_MIN ;
4301
+ props .max_brightness = ASUS_SCREENPAD_BRIGHT_MAX ;
4312
4302
bd = backlight_device_register ("asus_screenpad" ,
4313
4303
& asus -> platform_device -> dev , asus ,
4314
4304
& asus_screenpad_bl_ops , & props );
@@ -4319,7 +4309,7 @@ static int asus_screenpad_init(struct asus_wmi *asus)
4319
4309
4320
4310
asus -> screenpad_backlight_device = bd ;
4321
4311
asus -> driver -> screenpad_brightness = brightness ;
4322
- bd -> props .brightness = brightness - ASUS_SCREENPAD_BRIGHT_MIN ;
4312
+ bd -> props .brightness = brightness ;
4323
4313
bd -> props .power = power ;
4324
4314
backlight_update_status (bd );
4325
4315
0 commit comments