Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Mar 2011 14:05:45 -0700 (MST)
From:      Warren Block <wblock@wonkity.com>
To:        Roland Smith <rsmith@xs4all.nl>
Cc:        freebsd-x11@freebsd.org
Subject:   Re: xf86-video-ati with patch-src-radeon_driver.c freeze the system
Message-ID:  <alpine.BSF.2.00.1103011329120.56328@wonkity.com>
In-Reply-To: <alpine.BSF.2.00.1103011305240.55961@wonkity.com>
References:  <20110228221844.GA2957@compaq.yuetime> <ikim95$2gnn$1@lorvorc.mips.inka.de> <20110301191536.GA28125@slackbox.erewhon.net> <alpine.BSF.2.00.1103011305240.55961@wonkity.com>

next in thread | previous in thread | raw e-mail | index | archive | help
...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@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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1103011329120.56328>