summaryrefslogtreecommitdiff
path: root/src/radeon_kms.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2010-02-23 19:27:24 +1000
committerDave Airlie <airlied@redhat.com>2010-02-23 19:27:24 +1000
commitbd83e5f1c75b8c00b43846c7225568917fc9a8ce (patch)
tree83d8572c77abaf0a91cbab67bd1fe0e06980083f /src/radeon_kms.c
parent0c3468d812e3790ce03d9e76779ae81e7b7b82d5 (diff)
zaphod: hopefully fix kms + zaphod
Diffstat (limited to 'src/radeon_kms.c')
-rw-r--r--src/radeon_kms.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 00cea421..b4e17594 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -427,14 +427,20 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags)
if (!radeon_alloc_dri(pScrn))
return FALSE;
- zaphod_mask = 0xf;
- if (info->IsPrimary)
- zaphod_mask = 0xd;
- if (info->IsSecondary)
- zaphod_mask = 0x2;
- if ((s = xf86GetOptValString(info->Options, OPTION_ZAPHOD_HEADS)))
- zaphod_mask = 0xf;
-
+ /* crtc low bits - output high bits */
+ zaphod_mask = 0xff;
+ if (info->IsPrimary) {
+ if ((s = xf86GetOptValString(info->Options, OPTION_ZAPHOD_HEADS)))
+ zaphod_mask = 0xfd;
+ else
+ zaphod_mask = 0xdd;
+ }
+ if (info->IsSecondary) {
+ if ((s = xf86GetOptValString(info->Options, OPTION_ZAPHOD_HEADS)))
+ zaphod_mask = 0xf2;
+ else
+ zaphod_mask = 0x22;
+ }
info->allowColorTiling = xf86ReturnOptValBool(info->Options,
OPTION_COLOR_TILING, FALSE);
if (info->ChipFamily >= CHIP_FAMILY_R600) {