summaryrefslogtreecommitdiff
path: root/drivers/video/backlight/mbp_nvidia_bl.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/backlight/mbp_nvidia_bl.c')
-rw-r--r--drivers/video/backlight/mbp_nvidia_bl.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/video/backlight/mbp_nvidia_bl.c b/drivers/video/backlight/mbp_nvidia_bl.c
index b22cfb24bd55..dd0e145170b7 100644
--- a/drivers/video/backlight/mbp_nvidia_bl.c
+++ b/drivers/video/backlight/mbp_nvidia_bl.c
@@ -143,6 +143,7 @@ static int __devinit mb_bl_add(struct acpi_device *dev)
{
struct backlight_properties props;
struct pci_dev *host;
+ int intensity;
host = pci_get_bus_and_slot(0, 0);
@@ -163,6 +164,18 @@ static int __devinit mb_bl_add(struct acpi_device *dev)
return -ENODEV;
}
+ /* Check that the hardware responds - this may not work under EFI */
+
+ intensity = hw_data->backlight_ops.get_brightness(NULL);
+
+ if (!intensity) {
+ hw_data->set_brightness(1);
+ if (!hw_data->backlight_ops.get_brightness(NULL))
+ return -ENODEV;
+
+ hw_data->set_brightness(0);
+ }
+
if (!request_region(hw_data->iostart, hw_data->iolen,
"Macbook backlight"))
return -ENXIO;