aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/sis
diff options
context:
space:
mode:
authorAaro Koskinen <aaro.koskinen@iki.fi>2011-02-13 22:11:26 +0000
committerPaul Mundt <lethal@linux-sh.org>2011-03-22 15:20:33 +0900
commit5e8700bf6db24ccf6814c765519d8986f1c16357 (patch)
treeed9406ae1693566ede33d4e45d21889d5b16956b /drivers/video/sis
parentsisfb: add subroutine for detecting XGI Z9 (diff)
downloadlinux-dev-5e8700bf6db24ccf6814c765519d8986f1c16357.tar.xz
linux-dev-5e8700bf6db24ccf6814c765519d8986f1c16357.zip
sisfb: add RAM type detection for XGI Z9
Detect the XGI Z9 RAM type as "documented" by the XGI's xgifb driver. Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> Cc: Thomas Winischhofer <thomas@winischhofer.net> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'drivers/video/sis')
-rw-r--r--drivers/video/sis/sis_main.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/video/sis/sis_main.c b/drivers/video/sis/sis_main.c
index f0c48e84bcdb..de0356788375 100644
--- a/drivers/video/sis/sis_main.c
+++ b/drivers/video/sis/sis_main.c
@@ -4955,7 +4955,13 @@ sisfb_post_xgi_ramtype(struct sis_video_info *ivideo)
v1 = bios[0x1d2];
}
if (!(ramtype & 0x80)) {
- if (ivideo->chip == XGI_20) {
+ if (sisfb_xgi_is21(ivideo)) {
+ SiS_SetRegAND(SISCR, 0xb4, 0xfd); /* GPIO control */
+ SiS_SetRegOR(SISCR, 0x4a, 0x80); /* GPIOH EN */
+ reg = SiS_GetReg(SISCR, 0x48);
+ SiS_SetRegOR(SISCR, 0xb4, 0x02);
+ ramtype = reg & 0x01; /* GPIOH */
+ } else if (ivideo->chip == XGI_20) {
SiS_SetReg(SISCR, 0x97, v1);
reg = SiS_GetReg(SISCR, 0x97);
if (reg & 0x10) {