diff options
author | Richard Purdie <rpurdie@rpsys.net> | 2007-03-03 12:43:52 -0500 |
---|---|---|
committer | Richard Purdie <rpurdie@rpsys.net> | 2007-03-05 03:49:38 -0500 |
commit | 202d4e602555e68c2bc71775228876b0356785c8 (patch) | |
tree | e47c4013016e21a231b9d2873a2d75aa2750c5fe /drivers/video/aty | |
parent | 238576e12fef1d52751c6e08db2d0bdb0e248caf (diff) |
backlight: Allow enable/disable of fb backlights, fixing regressions
Enabling the backlight by default appears to cause problems for many
users. This patch disables backlight controls unless explicitly
enabled by users via a module parameter. Since PMAC users are known
to work, default to enabled in that case.
Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Diffstat (limited to 'drivers/video/aty')
-rw-r--r-- | drivers/video/aty/aty128fb.c | 12 | ||||
-rw-r--r-- | drivers/video/aty/atyfb_base.c | 10 | ||||
-rw-r--r-- | drivers/video/aty/radeon_base.c | 10 |
3 files changed, 29 insertions, 3 deletions
diff --git a/drivers/video/aty/aty128fb.c b/drivers/video/aty/aty128fb.c index 8726c3669713..e86d7e0c9825 100644 --- a/drivers/video/aty/aty128fb.c +++ b/drivers/video/aty/aty128fb.c | |||
@@ -357,6 +357,12 @@ static int default_lcd_on __devinitdata = 1; | |||
357 | static int mtrr = 1; | 357 | static int mtrr = 1; |
358 | #endif | 358 | #endif |
359 | 359 | ||
360 | #ifdef CONFIG_PMAC_BACKLIGHT | ||
361 | static int backlight __devinitdata = 1; | ||
362 | #else | ||
363 | static int backlight __devinitdata = 0; | ||
364 | #endif | ||
365 | |||
360 | /* PLL constants */ | 366 | /* PLL constants */ |
361 | struct aty128_constants { | 367 | struct aty128_constants { |
362 | u32 ref_clk; | 368 | u32 ref_clk; |
@@ -1652,6 +1658,9 @@ static int __devinit aty128fb_setup(char *options) | |||
1652 | } else if (!strncmp(this_opt, "crt:", 4)) { | 1658 | } else if (!strncmp(this_opt, "crt:", 4)) { |
1653 | default_crt_on = simple_strtoul(this_opt+4, NULL, 0); | 1659 | default_crt_on = simple_strtoul(this_opt+4, NULL, 0); |
1654 | continue; | 1660 | continue; |
1661 | } else if (!strncmp(this_opt, "backlight:", 10)) { | ||
1662 | backlight = simple_strtoul(this_opt+10, NULL, 0); | ||
1663 | continue; | ||
1655 | } | 1664 | } |
1656 | #ifdef CONFIG_MTRR | 1665 | #ifdef CONFIG_MTRR |
1657 | if(!strncmp(this_opt, "nomtrr", 6)) { | 1666 | if(!strncmp(this_opt, "nomtrr", 6)) { |
@@ -1985,7 +1994,8 @@ static int __devinit aty128_init(struct pci_dev *pdev, const struct pci_device_i | |||
1985 | par->lock_blank = 0; | 1994 | par->lock_blank = 0; |
1986 | 1995 | ||
1987 | #ifdef CONFIG_FB_ATY128_BACKLIGHT | 1996 | #ifdef CONFIG_FB_ATY128_BACKLIGHT |
1988 | aty128_bl_init(par); | 1997 | if (backlight) |
1998 | aty128_bl_init(par); | ||
1989 | #endif | 1999 | #endif |
1990 | 2000 | ||
1991 | if (register_framebuffer(info) < 0) | 2001 | if (register_framebuffer(info) < 0) |
diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c index a7e0062233f2..00a51835fd82 100644 --- a/drivers/video/aty/atyfb_base.c +++ b/drivers/video/aty/atyfb_base.c | |||
@@ -308,6 +308,12 @@ static int xclk; | |||
308 | static int comp_sync __devinitdata = -1; | 308 | static int comp_sync __devinitdata = -1; |
309 | static char *mode; | 309 | static char *mode; |
310 | 310 | ||
311 | #ifdef CONFIG_PMAC_BACKLIGHT | ||
312 | static int backlight __devinitdata = 1; | ||
313 | #else | ||
314 | static int backlight __devinitdata = 0; | ||
315 | #endif | ||
316 | |||
311 | #ifdef CONFIG_PPC | 317 | #ifdef CONFIG_PPC |
312 | static int default_vmode __devinitdata = VMODE_CHOOSE; | 318 | static int default_vmode __devinitdata = VMODE_CHOOSE; |
313 | static int default_cmode __devinitdata = CMODE_CHOOSE; | 319 | static int default_cmode __devinitdata = CMODE_CHOOSE; |
@@ -2575,7 +2581,7 @@ static int __devinit aty_init(struct fb_info *info) | |||
2575 | | (USE_F32KHZ | TRISTATE_MEM_EN), par); | 2581 | | (USE_F32KHZ | TRISTATE_MEM_EN), par); |
2576 | } else | 2582 | } else |
2577 | #endif | 2583 | #endif |
2578 | if (M64_HAS(MOBIL_BUS)) { | 2584 | if (M64_HAS(MOBIL_BUS) && backlight) { |
2579 | #ifdef CONFIG_FB_ATY_BACKLIGHT | 2585 | #ifdef CONFIG_FB_ATY_BACKLIGHT |
2580 | aty_bl_init (par); | 2586 | aty_bl_init (par); |
2581 | #endif | 2587 | #endif |
@@ -3757,6 +3763,8 @@ static int __init atyfb_setup(char *options) | |||
3757 | xclk = simple_strtoul(this_opt+5, NULL, 0); | 3763 | xclk = simple_strtoul(this_opt+5, NULL, 0); |
3758 | else if (!strncmp(this_opt, "comp_sync:", 10)) | 3764 | else if (!strncmp(this_opt, "comp_sync:", 10)) |
3759 | comp_sync = simple_strtoul(this_opt+10, NULL, 0); | 3765 | comp_sync = simple_strtoul(this_opt+10, NULL, 0); |
3766 | else if (!strncmp(this_opt, "backlight:", 10)) | ||
3767 | backlight = simple_strtoul(this_opt+10, NULL, 0); | ||
3760 | #ifdef CONFIG_PPC | 3768 | #ifdef CONFIG_PPC |
3761 | else if (!strncmp(this_opt, "vmode:", 6)) { | 3769 | else if (!strncmp(this_opt, "vmode:", 6)) { |
3762 | unsigned int vmode = | 3770 | unsigned int vmode = |
diff --git a/drivers/video/aty/radeon_base.c b/drivers/video/aty/radeon_base.c index 46ba1235f03a..1bf6f42eb400 100644 --- a/drivers/video/aty/radeon_base.c +++ b/drivers/video/aty/radeon_base.c | |||
@@ -268,6 +268,11 @@ static int nomtrr = 0; | |||
268 | #endif | 268 | #endif |
269 | static int force_sleep; | 269 | static int force_sleep; |
270 | static int ignore_devlist; | 270 | static int ignore_devlist; |
271 | #ifdef CONFIG_PMAC_BACKLIGHT | ||
272 | static int backlight = 1; | ||
273 | #else | ||
274 | static int backlight = 0; | ||
275 | #endif | ||
271 | 276 | ||
272 | /* | 277 | /* |
273 | * prototypes | 278 | * prototypes |
@@ -2348,7 +2353,8 @@ static int __devinit radeonfb_pci_register (struct pci_dev *pdev, | |||
2348 | MTRR_TYPE_WRCOMB, 1); | 2353 | MTRR_TYPE_WRCOMB, 1); |
2349 | #endif | 2354 | #endif |
2350 | 2355 | ||
2351 | radeonfb_bl_init(rinfo); | 2356 | if (backlight) |
2357 | radeonfb_bl_init(rinfo); | ||
2352 | 2358 | ||
2353 | printk ("radeonfb (%s): %s\n", pci_name(rinfo->pdev), rinfo->name); | 2359 | printk ("radeonfb (%s): %s\n", pci_name(rinfo->pdev), rinfo->name); |
2354 | 2360 | ||
@@ -2469,6 +2475,8 @@ static int __init radeonfb_setup (char *options) | |||
2469 | force_dfp = 1; | 2475 | force_dfp = 1; |
2470 | } else if (!strncmp(this_opt, "panel_yres:", 11)) { | 2476 | } else if (!strncmp(this_opt, "panel_yres:", 11)) { |
2471 | panel_yres = simple_strtoul((this_opt+11), NULL, 0); | 2477 | panel_yres = simple_strtoul((this_opt+11), NULL, 0); |
2478 | } else if (!strncmp(this_opt, "backlight:", 10)) { | ||
2479 | backlight = simple_strtoul(this_opt+10, NULL, 0); | ||
2472 | #ifdef CONFIG_MTRR | 2480 | #ifdef CONFIG_MTRR |
2473 | } else if (!strncmp(this_opt, "nomtrr", 6)) { | 2481 | } else if (!strncmp(this_opt, "nomtrr", 6)) { |
2474 | nomtrr = 1; | 2482 | nomtrr = 1; |