Re: Radeon PCI support

From: AU (au@surfer.sbm.temple.edu)
Date: Sat Feb 01 2003 - 01:47:52 EST


Here what I did
1) Kernel

/usr/src/linux/drivers/char/drm/radeon_cp.c

comment out
/*
#if defined(__alpha__)
# define PCIGART_ENABLED
#else
# undef PCIGART_ENABLED
#endif
*/

#define PCIGART_ENABLED

and then I got drm works

But I don't think I have to do that, but I don't know because I am
too lazy to make a new kernel without that feature, after I got Xfree86
work with glx.

Herewhat I did:

1) download 4.2.1 source code from Xfree86.org
2) modify xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c
comment out

#include "sarea.h"
/*
#if defined(__alpha__)
# define PCIGART_ENABLED
#else
# undef PCIGART_ENABLED
#endif
*/
/* insert this line */
#define PCIGART_ENABLED

/* ?? HACK - for now, put this here... */
/* ?? Alpha - this may need to be a variable to handle UP1x00 vs TITAN */
#if defined(__alpha__)
# define DRM_PAGE_SIZE 8192
#elif defined(__ia64__)
# define DRM_PAGE_SIZE getpagesize()
#else
# define DRM_PAGE_SIZE 4096
#endif

/* insert this line */
#define DRM_PAGE_SIZE 8192

3) modify
xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/radeon_cp.c

/*
#if defined(__alpha__)
# define PCIGART_ENABLED
#else
# undef PCIGART_ENABLED
#endif
*/
/* insert this line */
#define PCIGART_ENABLED

4) Last one this I trial and error, some how it works. According to
Whitney.diff patch.

in xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c
-------------------------------------------------------
*** xf86pciBus.c Thu Jan 30 23:57:29 2003
--- xf86pciBus.c.orig Sat Jan 18 01:11:45 2003
***************
*** 1518,1537 ****
                    tmp->block_end = MIN(tmp->block_end,PCI_MEM32_LENGTH_MAX);
                    tmp = tmp->next;
                }
! } /* Hacking by me */
! else if ((pbp->primary == pvp->bus) &&
! (pbp->secondary >= 0) &&
! (pbp->primary != pbp->secondary)) {
! tmp = xf86DupResList(pbp->preferred_pmem);
! avoid = xf86JoinResLists(avoid, tmp);
! tmp = xf86DupResList(pbp->pmem);
! avoid = xf86JoinResLists(avoid, tmp);
! tmp = xf86DupResList(pbp->preferred_mem);
! avoid = xf86JoinResLists(avoid, tmp);
! tmp = xf86DupResList(pbp->mem);
! avoid = xf86JoinResLists(avoid, tmp);
! }
!
            while (pbp1) {
                if (pbp1->primary == pvp->bus) {
                    tmp = xf86DupResList(pbp1->preferred_pmem);
--- 1518,1524 ----
                    tmp->block_end = MIN(tmp->block_end,PCI_MEM32_LENGTH_MAX);
                    tmp = tmp->next;
                }
! }
            while (pbp1) {
                if (pbp1->primary == pvp->bus) {
                    tmp = xf86DupResList(pbp1->preferred_pmem);
***************
*** 2211,2230 ****
                      res_m_io = xf86JoinResLists(res_m_io,
                          xf86FindIntersectOfLists(pbp->preferred_io,ResRange));
                  }
! } /* hacking */
! else if ((pbp->primary == pvp->bus) &&
! (pbp->secondary >= 0) &&
! (pbp->primary != pbp->secondary)) {
! tmp = xf86DupResList(pbp->preferred_pmem);
! avoid = xf86JoinResLists(avoid, tmp);
! tmp = xf86DupResList(pbp->preferred_mem);
! avoid = xf86JoinResLists(avoid, tmp);
! tmp = xf86DupResList(pbp->preferred_io);
! avoid = xf86JoinResLists(avoid, tmp);
! }
!
!
!
              while (pbp1) {
                  if (pbp1->primary == pvp->bus) {
                      tmp = xf86DupResList(pbp1->preferred_pmem);
--- 2198,2204 ----
                      res_m_io = xf86JoinResLists(res_m_io,
                          xf86FindIntersectOfLists(pbp->preferred_io,ResRange));
                  }
! }
              while (pbp1) {
                  if (pbp1->primary == pvp->bus) {
                      tmp = xf86DupResList(pbp1->preferred_pmem);

-------------------------------------------------------------------

Try it and let me know if you have any questions, I would like to know the
result too.

Thanks,

On Fri, 31 Jan 2003, Chris Ison wrote:

> just a couple of things I forgot to mention, my system doesn't have AGP
> and I'm using kernel version 2.4.20-ac1
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Feb 07 2003 - 22:00:08 EST