kbd_backlight
if (drvdata->kbd_backlight) {
drvdata->kbd_backlight->brightness };
if (drvdata->kbd_backlight) {
asus_hid_unregister_listener(&drvdata->kbd_backlight->listener);
spin_lock_irqsave(&drvdata->kbd_backlight->lock, flags);
drvdata->kbd_backlight->removed = true;
spin_unlock_irqrestore(&drvdata->kbd_backlight->lock, flags);
cancel_work_sync(&drvdata->kbd_backlight->work);
struct asus_kbd_leds *kbd_backlight;
drvdata->kbd_backlight = devm_kzalloc(&hdev->dev,
if (!drvdata->kbd_backlight)
drvdata->kbd_backlight->removed = false;
drvdata->kbd_backlight->brightness = 0;
drvdata->kbd_backlight->hdev = hdev;
drvdata->kbd_backlight->listener.brightness_set = asus_kbd_backlight_set;
INIT_WORK(&drvdata->kbd_backlight->work, asus_kbd_backlight_work);
spin_lock_init(&drvdata->kbd_backlight->lock);
ret = asus_hid_register_listener(&drvdata->kbd_backlight->listener);
devm_kfree(&hdev->dev, drvdata->kbd_backlight);
struct hammer_kbd_leds *kbd_backlight;
kbd_backlight = devm_kzalloc(&hdev->dev, sizeof(*kbd_backlight),
if (!kbd_backlight)
kbd_backlight->hdev = hdev;
kbd_backlight->cdev.name = "hammer::kbd_backlight";
kbd_backlight->cdev.max_brightness = MAX_BRIGHTNESS;
kbd_backlight->cdev.brightness_set_blocking =
kbd_backlight->cdev.flags = LED_HW_PLUGGABLE;
hammer_kbd_brightness_set_blocking(&kbd_backlight->cdev, 0);
return devm_led_classdev_register(&hdev->dev, &kbd_backlight->cdev);
struct led_classdev kbd_backlight;
kbd_backlight);
kbd_backlight);
enum led_brightness brightness = t14s_kbd_bl_get(&ec->kbd_backlight);
led_classdev_notify_brightness_hw_changed(&ec->kbd_backlight, brightness);
ec->kbd_backlight.name = "platform::kbd_backlight";
ec->kbd_backlight.flags = LED_BRIGHT_HW_CHANGED;
ec->kbd_backlight.max_brightness = 2;
ec->kbd_backlight.brightness_set_blocking = t14s_kbd_bl_set;
ec->kbd_backlight.brightness_get = t14s_kbd_bl_get;
return devm_led_classdev_register(ec->dev, &ec->kbd_backlight);
led_classdev_suspend(&ec->kbd_backlight);
led_classdev_resume(&ec->kbd_backlight);
static struct led_classdev kbd_backlight;
&kbd_backlight, get_kbd_backlight_level(kbd_backlight.dev->parent));
static LED_DEVICE(kbd_backlight, 255, LED_BRIGHT_HW_CHANGED);
led_classdev_register(&pf_device->dev, &kbd_backlight);
led_classdev_unregister(&kbd_backlight);
brightness = galaxybook->kbd_backlight.brightness;
if (brightness < galaxybook->kbd_backlight.max_brightness)
err = led_set_brightness_sync(&galaxybook->kbd_backlight, brightness);
led_classdev_notify_brightness_hw_changed(&galaxybook->kbd_backlight, brightness);
container_of(led, struct samsung_galaxybook, kbd_backlight);
container_of_const(led, struct samsung_galaxybook, kbd_backlight);
galaxybook->kbd_backlight.brightness_get = kbd_backlight_show;
galaxybook->kbd_backlight.brightness_set_blocking = kbd_backlight_store;
galaxybook->kbd_backlight.flags = LED_BRIGHT_HW_CHANGED;
galaxybook->kbd_backlight.max_brightness = GB_KBD_BACKLIGHT_MAX_BRIGHTNESS;
&galaxybook->kbd_backlight, &init_data);
struct led_classdev kbd_backlight;
if (commands->kbd_backlight == 0xFFFF)
retval = sabi_command(samsung, commands->kbd_backlight,
retval = sabi_command(samsung, commands->kbd_backlight,
return sabi_command(samsung, commands->kbd_backlight,
u16 kbd_backlight;
.kbd_backlight = 0xFFFF,
.kbd_backlight = 0x78,
static int kbd_backlight = -1;
module_param(kbd_backlight, int, 0444);
MODULE_PARM_DESC(kbd_backlight,
static struct kbd_backlight *kbdbl_ctl;
kbdbl_ctl->mode = kbd_backlight;