mirror of
https://github.com/suyu-emu/horinux.git
synced 2026-09-21 14:15:21 -07:00
backlight: add backlight type
There may be multiple ways of controlling the backlight on a given machine. Allow drivers to expose the type of interface they are providing, making it possible for userspace to make appropriate policy decisions. Signed-off-by: Matthew Garrett <mjg@redhat.com> Cc: Richard Purdie <rpurdie@rpsys.net> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: David Airlie <airlied@linux.ie> Cc: Alex Deucher <alexdeucher@gmail.com> Cc: Ben Skeggs <bskeggs@redhat.com> Cc: Zhang Rui <rui.zhang@intel.com> Cc: Len Brown <lenb@kernel.org> Cc: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
ccd7510fd8
commit
bb7ca747f8
@@ -34,3 +34,23 @@ Contact: Richard Purdie <rpurdie@rpsys.net>
|
||||
Description:
|
||||
Maximum brightness for <backlight>.
|
||||
Users: HAL
|
||||
|
||||
What: /sys/class/backlight/<backlight>/type
|
||||
Date: September 2010
|
||||
KernelVersion: 2.6.37
|
||||
Contact: Matthew Garrett <mjg@redhat.com>
|
||||
Description:
|
||||
The type of interface controlled by <backlight>.
|
||||
"firmware": The driver uses a standard firmware interface
|
||||
"platform": The driver uses a platform-specific interface
|
||||
"raw": The driver controls hardware registers directly
|
||||
|
||||
In the general case, when multiple backlight
|
||||
interfaces are available for a single device, firmware
|
||||
control should be preferred to platform control should
|
||||
be preferred to raw control. Using a firmware
|
||||
interface reduces the probability of confusion with
|
||||
the hardware and the OS independently updating the
|
||||
backlight state. Platform interfaces are mostly a
|
||||
holdover from pre-standardisation of firmware
|
||||
interfaces.
|
||||
|
||||
@@ -795,6 +795,7 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device)
|
||||
count++;
|
||||
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.type = BACKLIGHT_FIRMWARE;
|
||||
props.max_brightness = device->brightness->count - 3;
|
||||
device->backlight = backlight_device_register(name, NULL, device,
|
||||
&acpi_backlight_ops,
|
||||
|
||||
@@ -98,6 +98,7 @@ static int nouveau_nv40_backlight_init(struct drm_device *dev)
|
||||
return 0;
|
||||
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.type = BACKLIGHT_RAW;
|
||||
props.max_brightness = 31;
|
||||
bd = backlight_device_register("nv_backlight", &dev->pdev->dev, dev,
|
||||
&nv40_bl_ops, &props);
|
||||
@@ -121,6 +122,7 @@ static int nouveau_nv50_backlight_init(struct drm_device *dev)
|
||||
return 0;
|
||||
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.type = BACKLIGHT_RAW;
|
||||
props.max_brightness = 1025;
|
||||
bd = backlight_device_register("nv_backlight", &dev->pdev->dev, dev,
|
||||
&nv50_bl_ops, &props);
|
||||
|
||||
@@ -944,6 +944,7 @@ static int picolcd_init_backlight(struct picolcd_data *data, struct hid_report *
|
||||
}
|
||||
|
||||
memset(&props, 0, sizeof(props));
|
||||
props.type = BACKLIGHT_RAW;
|
||||
props.max_brightness = 0xff;
|
||||
bdev = backlight_device_register(dev_name(dev), dev, data,
|
||||
&picolcd_blops, &props);
|
||||
|
||||
@@ -163,6 +163,7 @@ void __init pmu_backlight_init()
|
||||
snprintf(name, sizeof(name), "pmubl");
|
||||
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.type = BACKLIGHT_PLATFORM;
|
||||
props.max_brightness = FB_BACKLIGHT_LEVELS - 1;
|
||||
bd = backlight_device_register(name, NULL, NULL, &pmu_backlight_data,
|
||||
&props);
|
||||
|
||||
@@ -1031,6 +1031,7 @@ static int __devinit acer_backlight_init(struct device *dev)
|
||||
struct backlight_device *bd;
|
||||
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.type = BACKLIGHT_PLATFORM;
|
||||
props.max_brightness = max_brightness;
|
||||
bd = backlight_device_register("acer-wmi", dev, NULL, &acer_bl_ops,
|
||||
&props);
|
||||
|
||||
@@ -667,6 +667,7 @@ static int asus_backlight_init(struct asus_laptop *asus)
|
||||
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.max_brightness = 15;
|
||||
props.type = BACKLIGHT_PLATFORM;
|
||||
|
||||
bd = backlight_device_register(ASUS_LAPTOP_FILE,
|
||||
&asus->platform_device->dev, asus,
|
||||
|
||||
@@ -1507,6 +1507,7 @@ static int __init asus_acpi_init(void)
|
||||
}
|
||||
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.type = BACKLIGHT_PLATFORM;
|
||||
props.max_brightness = 15;
|
||||
asus_backlight_device = backlight_device_register("asus", NULL, NULL,
|
||||
&asus_backlight_data,
|
||||
|
||||
@@ -564,6 +564,7 @@ static int cmpc_ipml_add(struct acpi_device *acpi)
|
||||
return -ENOMEM;
|
||||
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.type = BACKLIGHT_PLATFORM;
|
||||
props.max_brightness = 7;
|
||||
ipml->bd = backlight_device_register("cmpc_bl", &acpi->dev,
|
||||
acpi->handle, &cmpc_bl_ops,
|
||||
|
||||
@@ -970,6 +970,7 @@ static int __init compal_init(void)
|
||||
if (!acpi_video_backlight_support()) {
|
||||
struct backlight_properties props;
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.type = BACKLIGHT_PLATFORM;
|
||||
props.max_brightness = BACKLIGHT_LEVEL_MAX;
|
||||
compalbl_device = backlight_device_register(DRIVER_NAME,
|
||||
NULL, NULL,
|
||||
|
||||
@@ -671,6 +671,7 @@ static int __init dell_init(void)
|
||||
if (max_intensity) {
|
||||
struct backlight_properties props;
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.type = BACKLIGHT_PLATFORM;
|
||||
props.max_brightness = max_intensity;
|
||||
dell_backlight_device = backlight_device_register("dell_backlight",
|
||||
&platform_device->dev,
|
||||
|
||||
@@ -1147,6 +1147,7 @@ static int eeepc_backlight_init(struct eeepc_laptop *eeepc)
|
||||
struct backlight_device *bd;
|
||||
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.type = BACKLIGHT_PLATFORM;
|
||||
props.max_brightness = 15;
|
||||
bd = backlight_device_register(EEEPC_LAPTOP_FILE,
|
||||
&eeepc->platform_device->dev, eeepc,
|
||||
|
||||
@@ -1128,6 +1128,7 @@ static int __init fujitsu_init(void)
|
||||
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
max_brightness = fujitsu->max_brightness;
|
||||
props.type = BACKLIGHT_PLATFORM;
|
||||
props.max_brightness = max_brightness - 1;
|
||||
fujitsu->bl_device = backlight_device_register("fujitsu-laptop",
|
||||
NULL, NULL,
|
||||
|
||||
@@ -804,6 +804,7 @@ static int __init msi_init(void)
|
||||
} else {
|
||||
struct backlight_properties props;
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.type = BACKLIGHT_PLATFORM;
|
||||
props.max_brightness = MSI_LCD_LEVEL_MAX - 1;
|
||||
msibl_device = backlight_device_register("msi-laptop-bl", NULL,
|
||||
NULL, &msibl_ops,
|
||||
|
||||
@@ -254,6 +254,7 @@ static int __init msi_wmi_init(void)
|
||||
if (!acpi_video_backlight_support()) {
|
||||
struct backlight_properties props;
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.type = BACKLIGHT_PLATFORM;
|
||||
props.max_brightness = ARRAY_SIZE(backlight_map) - 1;
|
||||
backlight = backlight_device_register(DRV_NAME, NULL, NULL,
|
||||
&msi_backlight_ops,
|
||||
|
||||
@@ -602,6 +602,7 @@ static int acpi_pcc_hotkey_add(struct acpi_device *device)
|
||||
}
|
||||
/* initialize backlight */
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.type = BACKLIGHT_PLATFORM;
|
||||
props.max_brightness = pcc->sinf[SINF_AC_MAX_BRIGHT];
|
||||
pcc->backlight = backlight_device_register("panasonic", NULL, pcc,
|
||||
&pcc_backlight_ops, &props);
|
||||
|
||||
@@ -1305,8 +1305,9 @@ static int sony_nc_add(struct acpi_device *device)
|
||||
"controlled by ACPI video driver\n");
|
||||
} else if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle, "GBRT",
|
||||
&handle))) {
|
||||
struct backlight_properties props;
|
||||
struct backlight_properties props;
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.type = BACKLIGHT_PLATFORM;
|
||||
props.max_brightness = SONY_MAX_BRIGHTNESS - 1;
|
||||
sony_backlight_device = backlight_device_register("sony", NULL,
|
||||
NULL,
|
||||
|
||||
@@ -6307,6 +6307,7 @@ static int __init brightness_init(struct ibm_init_struct *iibm)
|
||||
return 1;
|
||||
|
||||
memset(&props, 0, sizeof(struct backlight_properties));
|
||||
props.type = BACKLIGHT_PLATFORM;
|
||||
props.max_brightness = bright_maxlvl;
|
||||
props.brightness = b & TP_EC_BACKLIGHT_LVLMSK;
|
||||
ibm_backlight_device = backlight_device_register(TPACPI_BACKLIGHT_DEV_NAME,
|
||||
|
||||
@@ -1018,6 +1018,7 @@ static int __init toshiba_acpi_init(void)
|
||||
create_toshiba_proc_entries();
|
||||
}
|
||||
|
||||
props.type = BACKLIGHT_PLATFORM;
|
||||
props.max_brightness = HCI_LCD_BRIGHTNESS_LEVELS - 1;
|
||||
toshiba_backlight_device = backlight_device_register("toshiba",
|
||||
&toshiba_acpi.p_dev->dev,
|
||||
|
||||
@@ -574,6 +574,7 @@ static const struct backlight_ops dcon_bl_ops = {
|
||||
|
||||
static struct backlight_properties dcon_bl_props = {
|
||||
.max_brightness = 15,
|
||||
.type = BACKLIGHT_RAW,
|
||||
.power = FB_BLANK_UNBLANK,
|
||||
};
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user