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