reassign 732514 xserver-xorg-video-radeon thanks On 18/12/2013 13:31, Robert Millan wrote: > Package: xserver-xorg-video-ati > Version: 7.2.0-1 > Tags: patch > User: debian-...@lists.debian.org > Usertags: kfreebsd > > Hi, > > Please consider this set of fixes for KMS support on kFreeBSD: > > - Load "radeonkms" module instead of "radeon".
Actually, this was done at the wrong place. The first argument to drmOpen() call is a red herring. It's supposed to load a kernel module, but unless the module is already loaded this code is never reached because drmCheckModesettingSupported() failure is treated as an abort condition. Please use this patch instead. This makes it load the module when drmCheckModesettingSupported() fails, and then try the check again. This is inspired by similar approach in intel driver (see src/intel_device.c). I'll submit it upstream as well. -- Robert Millan
diff -ur xserver-xorg-video-ati-7.2.0/debian/control xserver-xorg-video-ati-7.2.0.new/debian/control --- xserver-xorg-video-ati-7.2.0/debian/control 2013-12-16 22:40:22.000000000 +0100 +++ xserver-xorg-video-ati-7.2.0.new/debian/control 2013-12-16 22:54:49.294891823 +0100 @@ -79,7 +79,7 @@ ${misc:Depends}, ${xviddriver:Depends} Provides: ${xviddriver:Provides} -Suggests: firmware-linux +Suggests: firmware-linux [linux-any], kfreebsd-downloader (>= 10) [kfreebsd-any] Description: X.Org X server -- AMD/ATI Radeon display driver This package provides the 'radeon' driver for the AMD/ATI cards. The following chips should be supported: R100, RV100, RS100, RV200, RS200, diff -ur xserver-xorg-video-ati-7.2.0/src/radeon_probe.c xserver-xorg-video-ati-7.2.0.new/src/radeon_probe.c --- xserver-xorg-video-ati-7.2.0/src/radeon_probe.c 2013-08-07 10:44:09.000000000 +0200 +++ xserver-xorg-video-ati-7.2.0.new/src/radeon_probe.c 2013-12-18 20:56:19.525329978 +0100 @@ -46,6 +46,7 @@ #include "atipcirename.h" #include "xf86.h" +#include <xf86_OSproc.h> #include "xf86drmMode.h" #include "dri.h" @@ -92,6 +93,16 @@ busIdString = DRICreatePCIBusID(pci_dev); ret = drmCheckModesettingSupported(busIdString); + if (ret) { + if (xf86LoadKernelModule( +#ifdef __FreeBSD_kernel__ + "radeonkms" +#else + "radeon" +#endif + )) + ret = drmCheckModesettingSupported(busIdString); + } free(busIdString); if (ret) { xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 0,