xf86-video-ati with patch-src-radeon_driver.c freeze the system

Warren Block wblock at wonkity.com
Tue Mar 1 21:05:47 UTC 2011


...Well, that was interesting.  Swapped out my 4650 and X1650 cards 
again, and starting X locked up.  I swear it worked a couple of days ago 
when I tested it with the stock port patches.  Just swapped it for my 
normal HD4650.

FreeBSD lightning 8.2-STABLE FreeBSD 8.2-STABLE #0: Mon Feb 28 18:43:21 
MST 2011     root at lightning:/usr/obj/usr/src/sys/LIGHTNING  i386

X1650:  512M, PCIE: mem_size 20000000, aper_size 0
HD4650: 512M, PCIE: mem_size 20000000, aper_size 0

Yet the HD4650 has worked every time...

Is the original patch outdated?  Here's the code:

     /* Fix for RN50, M6, M7 with 8/16/32(??) MBs of VRAM -
        Novell bug 204882 + along with lots of ubuntu ones */
     if (aper_size > mem_size)
         mem_size = aper_size;

     /* don't map the whole FB in the internal address space.
      * we don't currently use fb space larger than the aperture
      * size and on cards with more than 512 MB of vram, this can overflow
      * the internal top of gart calculation on some systems.
      * Limit it to cards with more than 512 MB as this causes problems
      * on some other cards due to the way the ddx and drm set up the
      * internal memory map.
      * See fdo bug 24301.
      */

And then the patch, with the exact opposite test:

     if (mem_size > aper_size)
         mem_size = aper_size;

So unless they are equal, mem_size will be set to aper_size afterwards.

The original code continues:

     if (mem_size > 0x20000000)
         mem_size = aper_size;

Looks to me like it's not getting out of there without setting mem_size 
to zero.  Whether aper_size should really be zero, no idea.  That seems 
like an upstream bug.


More information about the freebsd-x11 mailing list