[Xorg-driver-geode] AMD Geode on Freebsd UPDATE, suggestion worked!

Jordan Crouse jordan.crouse at amd.com
Thu Dec 20 10:35:42 PST 2007


On 20/12/07 10:17 -0800, Larry Maloney wrote:
> Jordan,
>
> So with the NoAccel True option placed inside the card section, my graphics 
> work. :)

Our worst fears realized.

> Everything isn't perfect though.  (As I'm sure you suspect)  If I try to 
> terminate the X server
> the graphics are stalled (hung).  I can still access the system via remote 
> shell.

Ouch - I see why.   Mia culpa.  Try the attached patch.

> Anyway, I now have a high res screen with many colors (don't know what 
> color depth I have)

Looks like 8 bit according to the log.

> I'm including my Xorg.0.log file. 
> It appears that the VESA drivers are loading.  Is this correct?  I guess 
> turning off the acceleration
> enables the probing to work.

You're not really loading a vesa driver here - you are loading VBE routines
for probing DDC, which obviously was successful.  Your log shows the same
sort of VGA interaction that we would expect.

Avoiding acceleration doesn't really affect this one way or the other -
if VGA is detected,  then we probe - graphics be damned.  This is why
its different then what Martin-Eric is chasing.

> I will go ahead and add in the debug code you have asked for. 

That would be good - I'm very worried that this is where the problem is -
but I'm not sure how to go about fixing it.

Jordan
-------------- next part --------------
On shutdown, we loop waiting for the GPU, which isn't needed if

From: Jordan Crouse <jordan.crouse at amd.com>

we don't have accel enabled.
---

 src/amd_lx_driver.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/amd_lx_driver.c b/src/amd_lx_driver.c
index 7efda1f..1687752 100644
--- a/src/amd_lx_driver.c
+++ b/src/amd_lx_driver.c
@@ -917,7 +917,8 @@ LXSwitchMode(int index, DisplayModePtr pMode, int flags)
     int rotate;
 
     /* Syn the engine and shutdown the DAC momentarily */
-    gp_wait_until_idle();
+    if (!pGeode->NoAccel)
+	gp_wait_until_idle();
 
     /* Set up the memory for the new mode */
     rotate = LXGetRotation(pScrni->pScreen);
@@ -949,7 +950,8 @@ LXLeaveGraphics(ScrnInfoPtr pScrni)
   GeodeRec *pGeode = GEODEPTR(pScrni);
   VG_PANNING_COORDINATES panning;
 
-  gp_wait_until_idle();
+  if (!pGeode->NoAccel)
+	gp_wait_until_idle();
  
   lx_disable_dac_power(pScrni, DF_CRT_DISABLE);
 
@@ -1025,7 +1027,8 @@ LXEnterGraphics(ScreenPtr pScrn, ScrnInfoPtr pScrni)
 
   pGeode->VGAActive = gu3_get_vga_active();
 
-  gp_wait_until_idle();
+  if (!pGeode->NoAccel)
+	gp_wait_until_idle();
   
   //lx_disable_dac_power(pScrni, DF_CRT_DISABLE);
   


More information about the Xorg-driver-geode mailing list