mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2025-12-25 07:10:11 +01:00
bring in trunk & a few more cleanups
This commit is contained in:
parent
7b7fbe2257
commit
47c5631735
8 changed files with 46 additions and 8 deletions
|
|
@ -546,7 +546,11 @@ typedef struct drm_device {
|
|||
drm_agp_head_t *agp;
|
||||
#endif
|
||||
#ifdef __alpha__
|
||||
#if LINUX_VERSION_CODE < 0x020403
|
||||
struct pci_controler *hose;
|
||||
#else
|
||||
struct pci_controller *hose;
|
||||
#endif
|
||||
#endif
|
||||
drm_sg_mem_t *sg; /* Scatter gather memory */
|
||||
unsigned long *ctx_bitmap;
|
||||
|
|
|
|||
|
|
@ -164,8 +164,10 @@ static drm_ioctl_desc_t DRM(ioctls)[] = {
|
|||
[DRM_IOCTL_NR(DRM_IOCTL_ADD_MAP)] = { DRM(addmap), 1, 1 },
|
||||
[DRM_IOCTL_NR(DRM_IOCTL_RM_MAP)] = { DRM(rmmap), 1, 0 },
|
||||
|
||||
#if __HAVE_CTX_BITMAP
|
||||
[DRM_IOCTL_NR(DRM_IOCTL_SET_SAREA_CTX)] = { DRM(setsareactx), 1, 1 },
|
||||
[DRM_IOCTL_NR(DRM_IOCTL_GET_SAREA_CTX)] = { DRM(getsareactx), 1, 0 },
|
||||
#endif
|
||||
|
||||
[DRM_IOCTL_NR(DRM_IOCTL_ADD_CTX)] = { DRM(addctx), 1, 1 },
|
||||
[DRM_IOCTL_NR(DRM_IOCTL_RM_CTX)] = { DRM(rmctx), 1, 1 },
|
||||
|
|
|
|||
|
|
@ -307,11 +307,17 @@ void DRM(free)(void *pt, size_t size, int area)
|
|||
|
||||
unsigned long DRM(alloc_pages)(int order, int area)
|
||||
{
|
||||
#ifdef __linux__
|
||||
unsigned long address;
|
||||
#endif
|
||||
#ifdef __FreeBSD_
|
||||
vm_offset_t address;
|
||||
#endif
|
||||
unsigned long bytes = PAGE_SIZE << order;
|
||||
unsigned long addr;
|
||||
unsigned int sz;
|
||||
|
||||
#ifdef __linux__
|
||||
DRM_OS_SPINLOCK(&DRM(mem_lock));
|
||||
if ((DRM(ram_used) >> PAGE_SHIFT)
|
||||
> (DRM_RAM_PERCENT * DRM(ram_available)) / 100) {
|
||||
|
|
@ -319,6 +325,7 @@ unsigned long DRM(alloc_pages)(int order, int area)
|
|||
return 0;
|
||||
}
|
||||
DRM_OS_SPINUNLOCK(&DRM(mem_lock));
|
||||
#endif
|
||||
|
||||
#ifdef __linux__
|
||||
address = __get_free_pages(GFP_KERNEL, order);
|
||||
|
|
@ -497,13 +504,13 @@ int DRM(free_agp)(agp_memory *handle, int pages)
|
|||
device_t dev = agp_find_device();
|
||||
|
||||
if (!dev)
|
||||
return NULL;
|
||||
return EINVAL;
|
||||
#endif
|
||||
|
||||
if (!handle) {
|
||||
DRM_MEM_ERROR(DRM_MEM_TOTALAGP,
|
||||
"Attempt to free NULL AGP handle\n");
|
||||
return retval;;
|
||||
return retval;
|
||||
}
|
||||
|
||||
if (DRM(agp_free_memory)(handle)) {
|
||||
|
|
|
|||
|
|
@ -546,7 +546,11 @@ typedef struct drm_device {
|
|||
drm_agp_head_t *agp;
|
||||
#endif
|
||||
#ifdef __alpha__
|
||||
#if LINUX_VERSION_CODE < 0x020403
|
||||
struct pci_controler *hose;
|
||||
#else
|
||||
struct pci_controller *hose;
|
||||
#endif
|
||||
#endif
|
||||
drm_sg_mem_t *sg; /* Scatter gather memory */
|
||||
unsigned long *ctx_bitmap;
|
||||
|
|
|
|||
|
|
@ -164,8 +164,10 @@ static drm_ioctl_desc_t DRM(ioctls)[] = {
|
|||
[DRM_IOCTL_NR(DRM_IOCTL_ADD_MAP)] = { DRM(addmap), 1, 1 },
|
||||
[DRM_IOCTL_NR(DRM_IOCTL_RM_MAP)] = { DRM(rmmap), 1, 0 },
|
||||
|
||||
#if __HAVE_CTX_BITMAP
|
||||
[DRM_IOCTL_NR(DRM_IOCTL_SET_SAREA_CTX)] = { DRM(setsareactx), 1, 1 },
|
||||
[DRM_IOCTL_NR(DRM_IOCTL_GET_SAREA_CTX)] = { DRM(getsareactx), 1, 0 },
|
||||
#endif
|
||||
|
||||
[DRM_IOCTL_NR(DRM_IOCTL_ADD_CTX)] = { DRM(addctx), 1, 1 },
|
||||
[DRM_IOCTL_NR(DRM_IOCTL_RM_CTX)] = { DRM(rmctx), 1, 1 },
|
||||
|
|
|
|||
|
|
@ -307,11 +307,17 @@ void DRM(free)(void *pt, size_t size, int area)
|
|||
|
||||
unsigned long DRM(alloc_pages)(int order, int area)
|
||||
{
|
||||
#ifdef __linux__
|
||||
unsigned long address;
|
||||
#endif
|
||||
#ifdef __FreeBSD_
|
||||
vm_offset_t address;
|
||||
#endif
|
||||
unsigned long bytes = PAGE_SIZE << order;
|
||||
unsigned long addr;
|
||||
unsigned int sz;
|
||||
|
||||
#ifdef __linux__
|
||||
DRM_OS_SPINLOCK(&DRM(mem_lock));
|
||||
if ((DRM(ram_used) >> PAGE_SHIFT)
|
||||
> (DRM_RAM_PERCENT * DRM(ram_available)) / 100) {
|
||||
|
|
@ -319,6 +325,7 @@ unsigned long DRM(alloc_pages)(int order, int area)
|
|||
return 0;
|
||||
}
|
||||
DRM_OS_SPINUNLOCK(&DRM(mem_lock));
|
||||
#endif
|
||||
|
||||
#ifdef __linux__
|
||||
address = __get_free_pages(GFP_KERNEL, order);
|
||||
|
|
@ -497,13 +504,13 @@ int DRM(free_agp)(agp_memory *handle, int pages)
|
|||
device_t dev = agp_find_device();
|
||||
|
||||
if (!dev)
|
||||
return NULL;
|
||||
return EINVAL;
|
||||
#endif
|
||||
|
||||
if (!handle) {
|
||||
DRM_MEM_ERROR(DRM_MEM_TOTALAGP,
|
||||
"Attempt to free NULL AGP handle\n");
|
||||
return retval;;
|
||||
return retval;
|
||||
}
|
||||
|
||||
if (DRM(agp_free_memory)(handle)) {
|
||||
|
|
|
|||
|
|
@ -38,6 +38,12 @@
|
|||
|
||||
#define RADEON_FIFO_DEBUG 0
|
||||
|
||||
#if defined(__alpha__)
|
||||
# define PCIGART_ENABLED
|
||||
#else
|
||||
# undef PCIGART_ENABLED
|
||||
#endif
|
||||
|
||||
|
||||
/* CP microcode (from ATI) */
|
||||
static u32 radeon_cp_microcode[][2] = {
|
||||
|
|
@ -659,7 +665,7 @@ static int radeon_do_init_cp( drm_device_t *dev, drm_radeon_init_t *init )
|
|||
|
||||
dev_priv->is_pci = init->is_pci;
|
||||
|
||||
#if 1
|
||||
#if !defined(PCIGART_ENABLED)
|
||||
/* PCI support is not 100% working, so we disable it here.
|
||||
*/
|
||||
if ( dev_priv->is_pci ) {
|
||||
|
|
@ -671,7 +677,6 @@ static int radeon_do_init_cp( drm_device_t *dev, drm_radeon_init_t *init )
|
|||
#endif
|
||||
|
||||
if ( dev_priv->is_pci && !dev->sg ) {
|
||||
DRM_DEBUG( "PCI GART memory not allocated!\n" );
|
||||
DRM_ERROR( "PCI GART memory not allocated!\n" );
|
||||
DRM(free)( dev_priv, sizeof(*dev_priv), DRM_MEM_DRIVER );
|
||||
dev->dev_private = NULL;
|
||||
|
|
@ -878,7 +883,6 @@ static int radeon_do_init_cp( drm_device_t *dev, drm_radeon_init_t *init )
|
|||
if ( dev_priv->is_pci ) {
|
||||
dev_priv->phys_pci_gart = DRM(ati_pcigart_init)( dev );
|
||||
if ( !dev_priv->phys_pci_gart ) {
|
||||
DRM_DEBUG( "failed to init PCI GART!\n" );
|
||||
DRM_ERROR( "failed to init PCI GART!\n" );
|
||||
DRM(free)( dev_priv, sizeof(*dev_priv),
|
||||
DRM_MEM_DRIVER );
|
||||
|
|
@ -904,7 +908,14 @@ static int radeon_do_init_cp( drm_device_t *dev, drm_radeon_init_t *init )
|
|||
|
||||
/* Turn off AGP aperture -- is this required for PCIGART?
|
||||
*/
|
||||
RADEON_WRITE( RADEON_MC_AGP_LOCATION, 0 );
|
||||
RADEON_WRITE( RADEON_MC_AGP_LOCATION, 0xffffffc0 ); /* ?? */
|
||||
RADEON_WRITE( RADEON_AGP_COMMAND, 0 ); /* clear AGP_COMMAND */
|
||||
#if defined(__alpha__)
|
||||
/* HACK! something is clobbering MEM_CNTL on Alpha! */
|
||||
DRM_ERROR( "MEM_CNTL 0x%x\n",
|
||||
RADEON_READ(0x0140) );
|
||||
RADEON_WRITE(0x0140, 0x29002901);
|
||||
#endif
|
||||
} else {
|
||||
/* Turn off PCI GART
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -181,6 +181,7 @@ extern int radeon_cp_indirect( struct inode *inode, struct file *filp,
|
|||
* for Radeon kernel driver.
|
||||
*/
|
||||
|
||||
#define RADEON_AGP_COMMAND 0x0f60
|
||||
#define RADEON_AUX_SCISSOR_CNTL 0x26f0
|
||||
# define RADEON_EXCLUSIVE_SCISSOR_0 (1 << 24)
|
||||
# define RADEON_EXCLUSIVE_SCISSOR_1 (1 << 25)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue