diff options
author | Sven Henkel <shenkel@gmail.com> | 2005-10-01 18:29:18 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-10-01 20:01:48 -0400 |
commit | 14bfd1ff94f519a59b1e88e682819332d7e98171 (patch) | |
tree | a93505ba7f7983e529b3cf19670cfc1b1af75fc7 /drivers | |
parent | 14bf01bb0599c89fc7f426d20353b76e12555308 (diff) |
[PATCH] pmac/radeonfb: Add suspend support for M11 chip in new iBook 12"
This adds suspend support for the Radeon M11 chip in 12" iBooks
manufactured after July 2005. I don't know if the new 14" iBooks also
have that chip, so they might also be supported.
The chip identifies itself as "RV350 NV" (pci id 0x4e56), revision 0x80.
Apple calls it "Snowy", xfree86 names it "ATI FireGL Mobility T2 (M11)
NV (AGP)". So, we seem to be lucky here: The suspend-code for the M10
(which also is a "RV350 NV") works flawless for that chip.
Signed-off-by: Sven Henkel <shenkel@gmail.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/aty/radeon_pm.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/video/aty/radeon_pm.c b/drivers/video/aty/radeon_pm.c index 59a1b6f85067..097d668c4fe5 100644 --- a/drivers/video/aty/radeon_pm.c +++ b/drivers/video/aty/radeon_pm.c | |||
@@ -62,9 +62,9 @@ static void radeon_pm_disable_dynamic_mode(struct radeonfb_info *rinfo) | |||
62 | OUTPLL(pllSCLK_CNTL, tmp); | 62 | OUTPLL(pllSCLK_CNTL, tmp); |
63 | return; | 63 | return; |
64 | } | 64 | } |
65 | /* RV350 (M10) */ | 65 | /* RV350 (M10/M11) */ |
66 | if (rinfo->family == CHIP_FAMILY_RV350) { | 66 | if (rinfo->family == CHIP_FAMILY_RV350) { |
67 | /* for RV350/M10, no delays are required. */ | 67 | /* for RV350/M10/M11, no delays are required. */ |
68 | tmp = INPLL(pllSCLK_CNTL2); | 68 | tmp = INPLL(pllSCLK_CNTL2); |
69 | tmp |= (SCLK_CNTL2__R300_FORCE_TCL | | 69 | tmp |= (SCLK_CNTL2__R300_FORCE_TCL | |
70 | SCLK_CNTL2__R300_FORCE_GA | | 70 | SCLK_CNTL2__R300_FORCE_GA | |
@@ -248,7 +248,7 @@ static void radeon_pm_enable_dynamic_mode(struct radeonfb_info *rinfo) | |||
248 | return; | 248 | return; |
249 | } | 249 | } |
250 | 250 | ||
251 | /* M10 */ | 251 | /* M10/M11 */ |
252 | if (rinfo->family == CHIP_FAMILY_RV350) { | 252 | if (rinfo->family == CHIP_FAMILY_RV350) { |
253 | tmp = INPLL(pllSCLK_CNTL2); | 253 | tmp = INPLL(pllSCLK_CNTL2); |
254 | tmp &= ~(SCLK_CNTL2__R300_FORCE_TCL | | 254 | tmp &= ~(SCLK_CNTL2__R300_FORCE_TCL | |
@@ -1155,7 +1155,7 @@ static void radeon_pm_full_reset_sdram(struct radeonfb_info *rinfo) | |||
1155 | OUTREG( CRTC_GEN_CNTL, (crtcGenCntl | CRTC_GEN_CNTL__CRTC_DISP_REQ_EN_B) ); | 1155 | OUTREG( CRTC_GEN_CNTL, (crtcGenCntl | CRTC_GEN_CNTL__CRTC_DISP_REQ_EN_B) ); |
1156 | OUTREG( CRTC2_GEN_CNTL, (crtcGenCntl2 | CRTC2_GEN_CNTL__CRTC2_DISP_REQ_EN_B) ); | 1156 | OUTREG( CRTC2_GEN_CNTL, (crtcGenCntl2 | CRTC2_GEN_CNTL__CRTC2_DISP_REQ_EN_B) ); |
1157 | 1157 | ||
1158 | /* This is the code for the Aluminium PowerBooks M10 */ | 1158 | /* This is the code for the Aluminium PowerBooks M10 / iBooks M11 */ |
1159 | if (rinfo->family == CHIP_FAMILY_RV350) { | 1159 | if (rinfo->family == CHIP_FAMILY_RV350) { |
1160 | u32 sdram_mode_reg = rinfo->save_regs[35]; | 1160 | u32 sdram_mode_reg = rinfo->save_regs[35]; |
1161 | static u32 default_mrtable[] = | 1161 | static u32 default_mrtable[] = |
@@ -2741,9 +2741,11 @@ void radeonfb_pm_init(struct radeonfb_info *rinfo, int dynclk) | |||
2741 | rinfo->pm_mode |= radeon_pm_d2; | 2741 | rinfo->pm_mode |= radeon_pm_d2; |
2742 | 2742 | ||
2743 | /* We can restart Jasper (M10 chip in albooks), BlueStone (7500 chip | 2743 | /* We can restart Jasper (M10 chip in albooks), BlueStone (7500 chip |
2744 | * in some desktop G4s), and Via (M9+ chip on iBook G4) | 2744 | * in some desktop G4s), Via (M9+ chip on iBook G4) and |
2745 | * Snowy (M11 chip on iBook G4 manufactured after July 2005) | ||
2745 | */ | 2746 | */ |
2746 | if (!strcmp(rinfo->of_node->name, "ATY,JasperParent")) { | 2747 | if (!strcmp(rinfo->of_node->name, "ATY,JasperParent") || |
2748 | !strcmp(rinfo->of_node->name, "ATY,SnowyParent")) { | ||
2747 | rinfo->reinit_func = radeon_reinitialize_M10; | 2749 | rinfo->reinit_func = radeon_reinitialize_M10; |
2748 | rinfo->pm_mode |= radeon_pm_off; | 2750 | rinfo->pm_mode |= radeon_pm_off; |
2749 | } | 2751 | } |