ACPI: video: create "brightness_switch_enabled" modparam
Introduce new module parameter for brightness control. "brightness_switch_enabled" is set by default which means nothing changes upon brightness switch events. When "brightness_switch_enabled" is cleared via "echo 0 > /sys/module/video/parameters/brightness_switch_enabled", ACPI will not try to change the brightness level any more. Either X will take charge of this or users can change the brightness level by poking /sys/class/backlight/acpi_videoX/... Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
488b5ec871
commit
8a681a4dee
|
@ -72,6 +72,9 @@ MODULE_AUTHOR("Bruno Ducrot");
|
||||||
MODULE_DESCRIPTION("ACPI Video Driver");
|
MODULE_DESCRIPTION("ACPI Video Driver");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
|
|
||||||
|
static int brightness_switch_enabled = 1;
|
||||||
|
module_param(brightness_switch_enabled, bool, 0644);
|
||||||
|
|
||||||
static int acpi_video_bus_add(struct acpi_device *device);
|
static int acpi_video_bus_add(struct acpi_device *device);
|
||||||
static int acpi_video_bus_remove(struct acpi_device *device, int type);
|
static int acpi_video_bus_remove(struct acpi_device *device, int type);
|
||||||
|
|
||||||
|
@ -1850,27 +1853,32 @@ static void acpi_video_device_notify(acpi_handle handle, u32 event, void *data)
|
||||||
|
|
||||||
switch (event) {
|
switch (event) {
|
||||||
case ACPI_VIDEO_NOTIFY_CYCLE_BRIGHTNESS: /* Cycle brightness */
|
case ACPI_VIDEO_NOTIFY_CYCLE_BRIGHTNESS: /* Cycle brightness */
|
||||||
acpi_video_switch_brightness(video_device, event);
|
if (brightness_switch_enabled)
|
||||||
|
acpi_video_switch_brightness(video_device, event);
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
acpi_bus_generate_proc_event(device, event, 0);
|
||||||
keycode = KEY_BRIGHTNESS_CYCLE;
|
keycode = KEY_BRIGHTNESS_CYCLE;
|
||||||
break;
|
break;
|
||||||
case ACPI_VIDEO_NOTIFY_INC_BRIGHTNESS: /* Increase brightness */
|
case ACPI_VIDEO_NOTIFY_INC_BRIGHTNESS: /* Increase brightness */
|
||||||
acpi_video_switch_brightness(video_device, event);
|
if (brightness_switch_enabled)
|
||||||
|
acpi_video_switch_brightness(video_device, event);
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
acpi_bus_generate_proc_event(device, event, 0);
|
||||||
keycode = KEY_BRIGHTNESSUP;
|
keycode = KEY_BRIGHTNESSUP;
|
||||||
break;
|
break;
|
||||||
case ACPI_VIDEO_NOTIFY_DEC_BRIGHTNESS: /* Decrease brightness */
|
case ACPI_VIDEO_NOTIFY_DEC_BRIGHTNESS: /* Decrease brightness */
|
||||||
acpi_video_switch_brightness(video_device, event);
|
if (brightness_switch_enabled)
|
||||||
|
acpi_video_switch_brightness(video_device, event);
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
acpi_bus_generate_proc_event(device, event, 0);
|
||||||
keycode = KEY_BRIGHTNESSDOWN;
|
keycode = KEY_BRIGHTNESSDOWN;
|
||||||
break;
|
break;
|
||||||
case ACPI_VIDEO_NOTIFY_ZERO_BRIGHTNESS: /* zero brightnesss */
|
case ACPI_VIDEO_NOTIFY_ZERO_BRIGHTNESS: /* zero brightnesss */
|
||||||
acpi_video_switch_brightness(video_device, event);
|
if (brightness_switch_enabled)
|
||||||
|
acpi_video_switch_brightness(video_device, event);
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
acpi_bus_generate_proc_event(device, event, 0);
|
||||||
keycode = KEY_BRIGHTNESS_ZERO;
|
keycode = KEY_BRIGHTNESS_ZERO;
|
||||||
break;
|
break;
|
||||||
case ACPI_VIDEO_NOTIFY_DISPLAY_OFF: /* display device off */
|
case ACPI_VIDEO_NOTIFY_DISPLAY_OFF: /* display device off */
|
||||||
acpi_video_switch_brightness(video_device, event);
|
if (brightness_switch_enabled)
|
||||||
|
acpi_video_switch_brightness(video_device, event);
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
acpi_bus_generate_proc_event(device, event, 0);
|
||||||
keycode = KEY_DISPLAY_OFF;
|
keycode = KEY_DISPLAY_OFF;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue