summaryrefslogtreecommitdiff
path: root/sys/dev/drm
diff options
context:
space:
mode:
authorbjs <bjs@NetBSD.org>2008-05-06 01:51:00 +0000
committerbjs <bjs@NetBSD.org>2008-05-06 01:51:00 +0000
commite28a3e014bdcb30859fb43424eff148dde4fcada (patch)
tree7e8d1f5cd8bd9b9047a2aa6ba7f5d868692819b6 /sys/dev/drm
parent829081eaa7c0d4f21194c598cf4b73dd784de4b6 (diff)
Revert all the changes this time.
Diffstat (limited to 'sys/dev/drm')
-rw-r--r--sys/dev/drm/drmP.h58
1 files changed, 16 insertions, 42 deletions
diff --git a/sys/dev/drm/drmP.h b/sys/dev/drm/drmP.h
index 338a0f9f229..724b4986709 100644
--- a/sys/dev/drm/drmP.h
+++ b/sys/dev/drm/drmP.h
@@ -1,4 +1,4 @@
-/* $NetBSD: drmP.h,v 1.22 2008/05/06 01:45:47 bjs Exp $ */
+/* $NetBSD: drmP.h,v 1.23 2008/05/06 01:51:00 bjs Exp $ */
/* drmP.h -- Private header for Direct Rendering Manager -*- linux-c -*-
* Created: Mon Jan 4 10:05:05 1999 by faith@precisioninsight.com
@@ -56,7 +56,6 @@ typedef struct drm_file drm_file_t;
#include <sys/param.h>
#include <sys/queue.h>
-#include <sys/kmem.h>
#include <sys/malloc.h>
#include <sys/kernel.h>
#ifdef __FreeBSD__
@@ -231,7 +230,7 @@ MALLOC_DECLARE(M_DRM);
#define DRM_STRUCTPROC struct proc
#define DRM_STRUCTCDEVPROC struct lwp
#define DRM_SPINTYPE kmutex_t
-#define DRM_SPININIT(l,name) mutex_init(l, MUTEX_DEFAULT, IPL_NONE)
+#define DRM_SPININIT(l,name) mutex_init(l, MUTEX_DEFAULT, IPL_VM)
#define DRM_SPINUNINIT(l) mutex_destroy(l)
#define DRM_SPINLOCK(l) mutex_enter(l)
#define DRM_SPINUNLOCK(u) mutex_exit(u)
@@ -258,7 +257,6 @@ MALLOC_DECLARE(M_DRM);
#endif /* __NetBSD__ */
#endif /* __NetBSD__ || __OpenBSD__ */
-
/* Currently our DRMFILE (filp) is a void * which is actually the pid
* of the current process. It should be a per-open unique pointer, but
* code for that is not yet written */
@@ -314,11 +312,6 @@ extern drm_device_t *drm_units[];
#define DRM_NETBSD_ADDR2HANDLE(addr) (addr)
#define DRM_NETBSD_HANDLE2ADDR(handle) (handle)
#endif
-/* see struct drm_dmamem */
-#define DRM_NETBSD_DMA_VADDR(p) ((p)->dm_kva)
-#define DRM_NETBSD_DMA_ADDR(p) ((p)->dm_segs[0].ds_addr)
-#define DRM_DMA_WAITOK BUS_DMA_WAITOK
-#define DRM_DMA_NOWAIT BUS_DMA_NOWAIT
#elif defined(__OpenBSD__)
#define DRM_DEVICE \
#define DRM_SUSER(p) (suser(p->p_ucred, &p->p_acflag) == 0)
@@ -610,21 +603,16 @@ typedef struct drm_freelist {
int high_mark; /* High water mark */
} drm_freelist_t;
-struct drm_dmamem {
- bus_dma_tag_t dm_tag;
- bus_dmamap_t dm_map;
- bus_dma_segment_t *dm_segs;
- int dm_nsegs;
- size_t dm_size;
- void *dm_kva;
-};
-
typedef struct drm_dma_handle {
void *vaddr;
bus_addr_t busaddr;
+ bus_dma_tag_t dmat;
+ bus_dmamap_t map;
+ bus_dma_segment_t segs[1];
size_t size;
- struct drm_dmamem *dmam;
+ void *addr;
} drm_dma_handle_t;
+#define DRM_PCI_DMAADDR(p) ((p)->map->dm_segs[0].ds_addr)
typedef struct drm_buf_entry {
int buf_size;
@@ -707,7 +695,6 @@ typedef struct drm_sg_mem {
int pages;
dma_addr_t *busaddr;
drm_dma_handle_t *dmah; /* Handle to PCI memory for ATI PCIGART table */
- struct drm_dmamem *dmam;
} drm_sg_mem_t;
typedef TAILQ_HEAD(drm_map_list, drm_local_map) drm_map_list_t;
@@ -983,29 +970,16 @@ extern drm_file_t *drm_find_file_by_proc(drm_device_t *dev,
DRM_STRUCTPROC *p);
#endif /* __NetBSD__ || __OpenBSD__ */
-void drm_mem_init(void); /* XXX unused */
-void drm_mem_uninit(void); /* XXX unused */
-
-/* NetBSD-specific memory allocation functions */
-inline void *drm_mem_alloc(size_t size);
-inline void *drm_mem_zalloc(size_t size);
-inline void *drm_mem_calloc(size_t nmemb, size_t size);
-inline void *drm_mem_realloc(void *oldpt, size_t oldsize, size_t size);
-inline void drm_mem_free(void *pt, size_t size);
-
-/* NetBSD-specific DMA memory management */
-inline struct drm_dmamem *drm_dmamem_alloc(bus_dma_tag_t tag, size_t size, int wait);
-inline void drm_dmamem_free(struct drm_dmamem *dmam);
-
-/* macros for os-independent code (discards deprecated 'area' argument) */
-#define drm_alloc(sz, a) drm_mem_alloc(sz)
-#define drm_calloc(sz, a) drm_mem_zalloc(sz)
-#define drm_realloc(old, oldsz, sz, a) drm_mem_realloc(old, oldsz, sz)
-#define drm_free(p, sz, a) drm_mem_free(p, sz)
-
+/* Memory management support (drm_memory.c) */
+void drm_mem_init(void);
+void drm_mem_uninit(void);
+void *drm_alloc(size_t size, int area);
+void *drm_calloc(size_t nmemb, size_t size, int area);
+void *drm_realloc(void *oldpt, size_t oldsize, size_t size,
+ int area);
+void drm_free(void *pt, size_t size, int area);
void *drm_ioremap(drm_device_t *dev, drm_local_map_t *map);
void drm_ioremapfree(drm_local_map_t *map);
-
int drm_mtrr_add(unsigned long offset, size_t size, int flags);
int drm_mtrr_del(int handle, unsigned long offset, size_t size, int flags);
@@ -1059,7 +1033,7 @@ void drm_vbl_send_signals(drm_device_t *dev);
/* AGP/PCI Express/GART support (drm_agpsupport.c) */
int drm_device_is_agp(drm_device_t *dev);
int drm_device_is_pcie(drm_device_t *dev);
-drm_agp_head_t *drm_agp_init(void);
+drm_agp_head_t *drm_agp_init(drm_device_t *dev);
int drm_agp_acquire(drm_device_t *dev);
int drm_agp_release(drm_device_t *dev);
int drm_agp_info(drm_device_t * dev, drm_agp_info_t *info);