diff options
author | Michael Hanselmann <linux-kernel@hansmi.ch> | 2006-07-30 06:04:19 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-31 16:28:45 -0400 |
commit | 4b755999d6e0c1d988fb448289abb6c226cd8c36 (patch) | |
tree | 0310376a65b0d25af249554a133b5a799acf22f6 /drivers/video/aty | |
parent | 994aad251acab32a5d40d4a9501dc3e736562b6d (diff) |
[PATCH] powermac: More powermac backlight fixes
This patch fixes several problems:
- The legacy backlight value might be set at interrupt time. Introduced
a worker to prevent it from directly calling the backlight code.
- via-pmu allows the backlight to be grabbed, in which case we need to
prevent other kernel code from changing the brightness.
- Don't send PMU requests in via-pmu-backlight when the machine is about
to sleep or waking up.
- More Kconfig fixes.
Signed-off-by: Michael Hanselmann <linux-kernel@hansmi.ch>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/video/aty')
-rw-r--r-- | drivers/video/aty/aty128fb.c | 3 | ||||
-rw-r--r-- | drivers/video/aty/atyfb_base.c | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/drivers/video/aty/aty128fb.c b/drivers/video/aty/aty128fb.c index c64a717e2d4b..8b08121b390b 100644 --- a/drivers/video/aty/aty128fb.c +++ b/drivers/video/aty/aty128fb.c | |||
@@ -455,7 +455,10 @@ static void do_wait_for_fifo(u16 entries, struct aty128fb_par *par); | |||
455 | static void wait_for_fifo(u16 entries, struct aty128fb_par *par); | 455 | static void wait_for_fifo(u16 entries, struct aty128fb_par *par); |
456 | static void wait_for_idle(struct aty128fb_par *par); | 456 | static void wait_for_idle(struct aty128fb_par *par); |
457 | static u32 depth_to_dst(u32 depth); | 457 | static u32 depth_to_dst(u32 depth); |
458 | |||
459 | #ifdef CONFIG_FB_ATY128_BACKLIGHT | ||
458 | static void aty128_bl_set_power(struct fb_info *info, int power); | 460 | static void aty128_bl_set_power(struct fb_info *info, int power); |
461 | #endif | ||
459 | 462 | ||
460 | #define BIOS_IN8(v) (readb(bios + (v))) | 463 | #define BIOS_IN8(v) (readb(bios + (v))) |
461 | #define BIOS_IN16(v) (readb(bios + (v)) | \ | 464 | #define BIOS_IN16(v) (readb(bios + (v)) | \ |
diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c index 1507d19f481f..053ff63365b7 100644 --- a/drivers/video/aty/atyfb_base.c +++ b/drivers/video/aty/atyfb_base.c | |||
@@ -2812,7 +2812,7 @@ static int atyfb_blank(int blank, struct fb_info *info) | |||
2812 | if (par->lock_blank || par->asleep) | 2812 | if (par->lock_blank || par->asleep) |
2813 | return 0; | 2813 | return 0; |
2814 | 2814 | ||
2815 | #ifdef CONFIG_PMAC_BACKLIGHT | 2815 | #ifdef CONFIG_FB_ATY_BACKLIGHT |
2816 | if (machine_is(powermac) && blank > FB_BLANK_NORMAL) | 2816 | if (machine_is(powermac) && blank > FB_BLANK_NORMAL) |
2817 | aty_bl_set_power(info, FB_BLANK_POWERDOWN); | 2817 | aty_bl_set_power(info, FB_BLANK_POWERDOWN); |
2818 | #elif defined(CONFIG_FB_ATY_GENERIC_LCD) | 2818 | #elif defined(CONFIG_FB_ATY_GENERIC_LCD) |
@@ -2844,7 +2844,7 @@ static int atyfb_blank(int blank, struct fb_info *info) | |||
2844 | } | 2844 | } |
2845 | aty_st_le32(CRTC_GEN_CNTL, gen_cntl, par); | 2845 | aty_st_le32(CRTC_GEN_CNTL, gen_cntl, par); |
2846 | 2846 | ||
2847 | #ifdef CONFIG_PMAC_BACKLIGHT | 2847 | #ifdef CONFIG_FB_ATY_BACKLIGHT |
2848 | if (machine_is(powermac) && blank <= FB_BLANK_NORMAL) | 2848 | if (machine_is(powermac) && blank <= FB_BLANK_NORMAL) |
2849 | aty_bl_set_power(info, FB_BLANK_UNBLANK); | 2849 | aty_bl_set_power(info, FB_BLANK_UNBLANK); |
2850 | #elif defined(CONFIG_FB_ATY_GENERIC_LCD) | 2850 | #elif defined(CONFIG_FB_ATY_GENERIC_LCD) |