Hi,

so we have actually 3 bugs here.

On Sat, Jan 23, 2010 at 15:52:47 +0100, Bernhard R. Link wrote:

> With no xorg.conf:
> 
> | Primary device is not PCI
> | (==) Using default built-in configuration (12 lines)
> | (==) --- Start of built-in configuration ---
> |     Section "Device"
> |             Identifier      "Builtin Default fbdev Device 0"
> |             Driver  "fbdev"
> |     EndSection
> |     Section "Screen"
> |             Identifier      "Builtin Default fbdev Screen 0"
> |             Device  "Builtin Default fbdev Device 0"
> |     EndSection
> |     Section "ServerLayout"
> |             Identifier      "Builtin Default Layout"
> |             Screen  "Builtin Default fbdev Screen 0"
> |     EndSection
> | (==) --- End of built-in configuration ---
> 
automatic selection of driver works only for pci and sbus, so some code
would have to be added to the server to make that work here.

> After adding an xorg.conf to use newport:
> 
> | (II) NEWPORT(0): Creating default Display subsection in Screen section
> |     "Default Screen Section" for depth/fbbpp 24/32
> | (==) NEWPORT(0): Depth 24, (==) framebuffer bpp 32
> | (==) NEWPORT(0): RGB weight 888
> | (==) NEWPORT(0): Default visual is TrueColor
> | (==) NEWPORT(0): Using gamma correction (1.0, 1.0, 1.0)
> | (--) NEWPORT(0): Newport Graphics Revisions: Board: 6, Rex3: B, Cmap: C, 
> Xmap9: A
> | (--) NEWPORT(0): Newport has 8 bitplanes
> | (EE) NEWPORT(0): Display depth(24) > number of bitplanes on Newport board(8)
> | (II) UnloadModule: "newport"
> | (EE) Screen(s) found, but none have a usable configuration.
> |
> | Fatal server error:
> | no screens found
> 
By default, the newport driver requests 24bit depth from the server.
Later, it probes the hardware and, if it only discovers 8 bitplanes, it
gives up.  The easy fix is something like:

diff --git a/src/newport_driver.c b/src/newport_driver.c
index 6bd7c9f..f82bee1 100644
--- a/src/newport_driver.c
+++ b/src/newport_driver.c
@@ -280,10 +280,10 @@ NewportPreInit(ScrnInfoPtr pScrn, int flags)
        pScrn->monitor = pScrn->confScreen->monitor;
 
 #ifdef NEWPORT_USE32BPP
-       if (!xf86SetDepthBpp(pScrn, 24, 32, 32, Support32bppFb))
+       if (!xf86SetDepthBpp(pScrn, 8, 0, 0, Support32bppFb))
                return FALSE;
 #else
-       if (!xf86SetDepthBpp(pScrn, 24, 0, 0, 
+       if (!xf86SetDepthBpp(pScrn, 8, 0, 0, 
                        Support24bppFb | SupportConvert32to24 | 
                                PreferConvert32to24 ))
                return FALSE;

and requires explicit configuration to use 24bit depth on hw that
supports it.  The better way would be to try to reorder hw probing and
xf86SetDepthBpp in NewportPreInit.

> After telling to use depth 8 in xorg.conf:
> 
> | (II) NEWPORT(0): <default monitor>: Using default hsync range of 
> 31.50-37.90 kHz
> | (II) NEWPORT(0): <default monitor>: Using default vrefresh range of 
> 50.00-70.00 Hz
> | (WW) NEWPORT(0): Unable to estimate virtual size
> | (II) NEWPORT(0): Clock range:  10.00 to 300.00 MHz
[...]
> | (II) NEWPORT(0): Not using default mode "1280x1024" (hsync out of range)
[...]
> | (II) NEWPORT(0): Not using default mode "1280x1024" (hsync out of range)
[...]
> | (II) NEWPORT(0): Not using default mode "1280x1024" (hsync out of range)
[...]
> | (--) NEWPORT(0): Virtual size is 800x600 (pitch 800)
[...]
> | (EE) NEWPORT(0): Width = 800 and height = 600 is not supported by by this 
> driver
> |

And this is the third bug, not sure how to fix that one…  Maybe there's
a way for the driver to inject the mode it wants to use into the
server's mode pool?

Cheers,
Julien



--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to