On Fri, 2006-03-31 at 15:47 +0300, Jonathan Dieter wrote: > It seems that the only difference in Mesa when the r300 is enabled is > that an extra file (r300_dri.so) is installed in /usr/lib64/dri, and > that the only difference in the kernel is the drm module is patched to > not recognize the r300 PCI ids. It seems that the Mesa problem could be > easily fixed, but what is the easiest way to fix the kernel (aside from > providing my own (un)patched kernel)? We could make the crippling of R300 _optional_, by doing it with the patch below instead of just by ripping the relevant PCI IDs out. DaveJ? --- linux-2.6.16.ppc/drivers/char/drm/radeon_cp.c~ 2006-03-20 05:53:29.000000000 +0000 +++ linux-2.6.16.ppc/drivers/char/drm/radeon_cp.c 2006-03-31 18:26:00.000000000 +0100 @@ -34,6 +34,11 @@ #include "radeon_drv.h" #include "r300_reg.h" +int radeon_allow_r300; + +MODULE_PARM_DESC(allow_r300, "Allow DRI on Radeon R300 and later cards"); +module_param_named(allow_r300, radeon_allow_r300, int, 0444); + #define RADEON_FIFO_DEBUG 0 static int radeon_do_cleanup_cp(drm_device_t * dev); @@ -2104,6 +2109,11 @@ int radeon_driver_load(struct drm_device drm_radeon_private_t *dev_priv; int ret = 0; + if (!radeon_allow_r300 && (flags & CHIP_FAMILY_MASK) >= CHIP_R300) { + printk(KERN_NOTICE "Avoiding DRI on Radeon R300+. Use 'allow_r300=1' module option to override\n"); + return DRM_ERR(ENXIO); + } + dev_priv = drm_alloc(sizeof(drm_radeon_private_t), DRM_MEM_DRIVER); if (dev_priv == NULL) return DRM_ERR(ENOMEM); -- dwmw2 -- fedora-devel-list mailing list fedora-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-devel-list