summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--comps.py3
-rw-r--r--isys/isys.c18
-rw-r--r--xf86config.py19
3 files changed, 28 insertions, 12 deletions
diff --git a/comps.py b/comps.py
index 8e961cfec..9123f228d 100644
--- a/comps.py
+++ b/comps.py
@@ -11,8 +11,7 @@ XFreeServerPackages = { 'XFree86-3DLabs' : 1, 'XFree86-8514' : 1,
'XFree86-Mach8' : 1, 'XFree86-Mono' : 1,
'XFree86-P9000' : 1, 'XFree86-S3' : 1,
'XFree86-S3V' : 1, 'XFree86-SVGA' : 1,
- 'XFree86-W32' : 1, 'XFree86-Sun' : 1,
- 'XFree86-SunMono' : 1, 'XFree86-Sun24' : 1 }
+ 'XFree86-W32' : 1 }
# Package selection is complicated. Here are the rules:
#
diff --git a/isys/isys.c b/isys/isys.c
index c4712cb6b..670c30f56 100644
--- a/isys/isys.c
+++ b/isys/isys.c
@@ -975,6 +975,23 @@ static PyObject * doFbconProbe (PyObject * s, PyObject * args) {
int x[4], y[4], vtotal, laced = 0, dblscan = 0;
char *p;
double drate, hrate, vrate;
+#ifdef __sparc__
+ switch (fix.accel) {
+ case FB_ACCEL_SUN_CREATOR:
+ var.bits_per_pixel = 24;
+ /* FALLTHROUGH */
+ case FB_ACCEL_SUN_LEO:
+ case FB_ACCEL_SUN_CGSIX:
+ case FB_ACCEL_SUN_CG14:
+ case FB_ACCEL_SUN_BWTWO:
+ case FB_ACCEL_SUN_CGTHREE:
+ case FB_ACCEL_SUN_TCX:
+ var.xres = var.xres_virtual;
+ var.yres = var.yres_virtual;
+ fix.smem_len = 0;
+ break;
+ }
+#endif
depth = var.bits_per_pixel;
sprintf(vidmode, "%dx%d", var.xres, var.yres);
x[0] = var.xres;
@@ -1032,6 +1049,7 @@ static PyObject * doFbconProbe (PyObject * s, PyObject * args) {
switch (depth) {
case 8:
case 16:
+ case 24:
case 32:
return Py_BuildValue("(iiss)", size, depth, vidmode, vidres);
}
diff --git a/xf86config.py b/xf86config.py
index 4e722d6e5..ea02086f6 100644
--- a/xf86config.py
+++ b/xf86config.py
@@ -442,12 +442,10 @@ EndSection
Section "Module"
Load "dbe"
- Load "extmod"
- %(nonSparcMods)s
+ Load "extmod"%(nonSparcMods)s
Load "pex5"
Load "record"
- Load "xie"
- %(ia64Mods)s
+ Load "xie"%(ia64Mods)s
EndSection
Section "InputDevice"
@@ -816,12 +814,10 @@ class XF86Config:
except:
pass
if not self.vidRam and self.device:
- if self.server and self.server[0:3] == 'Sun':
- # fbconProbe gives bogus video RAM reports on SBUS and UPA servers
- return
try:
(vidram, depth, mode, monitor) = isys.fbconProbe("/dev/" + self.device)
- self.vidRam = "%d" % vidram
+ if vidram:
+ self.vidRam = "%d" % vidram
if depth:
self.modes = { "%d" % depth : [ mode ] }
self.monSect = monitor
@@ -1029,7 +1025,10 @@ Section "Screen"
screens = screens + """
EndSubsection
"""
- data = { "mouseProto" : self.mouse.info['XMOUSETYPE'],
+ mouseProto = self.mouse.info['XMOUSETYPE']
+ if mouseProto == 'sun':
+ mouseProto = 'BusMouse'
+ data = { "mouseProto" : mouseProto,
"mouseDevice" : self.mouse.device,
"cardsOptions" :
self.vidCards[self.primary].get ("LINE",
@@ -1042,7 +1041,7 @@ Section "Screen"
"files" : self.files,
"screenModes" : screens,
"ia64Mods" : "",
- "nonSparcMods" : 'Load "fbdevhw"',
+ "nonSparcMods" : '\nLoad "fbdevhw"',
"XkbRules" : self.keyRules,
"XkbModel" : self.keyModel,
"XkbLayout" : self.keyLayout,