From b68d4fcab5d671946c187947f5d00aedff939852 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Wed, 28 Jul 2010 13:41:41 +0100 Subject: [PATCH] drmmode: Only treat a backlight as connected if it has a non-zero max Optimistically might help https://bugs.freedesktop.org/show_bug.cgi?id=29273 Signed-off-by: Chris Wilson --- src/drmmode_display.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/drmmode_display.c b/src/drmmode_display.c index 546b8d59..fd433221 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -91,7 +91,7 @@ typedef struct { drmmode_prop_ptr props; void *private_data; int dpms_mode; - char *backlight_iface; + const char *backlight_iface; int backlight_active_level; int backlight_max; xf86OutputPtr output; @@ -106,7 +106,7 @@ drmmode_output_dpms(xf86OutputPtr output, int mode); /* * List of available kernel interfaces in priority order */ -static char *backlight_interfaces[] = { +static const char *backlight_interfaces[] = { "asus-laptop", "eeepc", "thinkpad_screen", @@ -240,11 +240,13 @@ drmmode_backlight_init(xf86OutputPtr output) sprintf(path, "%s/%s", BACKLIGHT_CLASS, backlight_interfaces[i]); if (!stat(path, &buf)) { drmmode_output->backlight_iface = backlight_interfaces[i]; - xf86DrvMsg(output->scrn->scrnIndex, X_INFO, - "found backlight control interface %s\n", path); drmmode_output->backlight_max = drmmode_backlight_get_max(output); drmmode_output->backlight_active_level = drmmode_backlight_get(output); - return; + if (drmmode_backlight_get_max(output)) { + xf86DrvMsg(output->scrn->scrnIndex, X_INFO, + "found backlight control interface %s\n", path); + return; + } } } drmmode_output->backlight_iface = NULL;