mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2025-12-25 00:10:11 +01:00
wrapper for ioremap_nocache() like for ioremap() (Paul Mundt)
This commit is contained in:
parent
44aa4d6297
commit
65d25572de
4 changed files with 54 additions and 0 deletions
|
|
@ -180,6 +180,9 @@
|
|||
#define DRM_IOREMAP(map) \
|
||||
(map)->handle = DRM(ioremap)( (map)->offset, (map)->size )
|
||||
|
||||
#define DRM_IOREMAP_NOCACHE(map) \
|
||||
(map)->handle = DRM(ioremap_nocache)((map)->offset, (map)->size)
|
||||
|
||||
#define DRM_IOREMAPFREE(map) \
|
||||
do { \
|
||||
if ( (map)->handle && (map)->size ) \
|
||||
|
|
@ -622,6 +625,7 @@ extern unsigned long DRM(alloc_pages)(int order, int area);
|
|||
extern void DRM(free_pages)(unsigned long address, int order,
|
||||
int area);
|
||||
extern void *DRM(ioremap)(unsigned long offset, unsigned long size);
|
||||
extern void *DRM(ioremap_nocache)(unsigned long offset, unsigned long size);
|
||||
extern void DRM(ioremapfree)(void *pt, unsigned long size);
|
||||
|
||||
#if __REALLY_HAVE_AGP
|
||||
|
|
|
|||
|
|
@ -314,6 +314,29 @@ void *DRM(ioremap)(unsigned long offset, unsigned long size)
|
|||
return pt;
|
||||
}
|
||||
|
||||
void *DRM(ioremap_nocache)(unsigned long offset, unsigned long size)
|
||||
{
|
||||
void *pt;
|
||||
|
||||
if (!size) {
|
||||
DRM_MEM_ERROR(DRM_MEM_MAPPINGS,
|
||||
"Mapping 0 bytes at 0x%08lx\n", offset);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!(pt = ioremap_nocache(offset, size))) {
|
||||
spin_lock(&DRM(mem_lock));
|
||||
++DRM(mem_stats)[DRM_MEM_MAPPINGS].fail_count;
|
||||
spin_unlock(&DRM(mem_lock));
|
||||
return NULL;
|
||||
}
|
||||
spin_lock(&DRM(mem_lock));
|
||||
++DRM(mem_stats)[DRM_MEM_MAPPINGS].succeed_count;
|
||||
DRM(mem_stats)[DRM_MEM_MAPPINGS].bytes_allocated += size;
|
||||
spin_unlock(&DRM(mem_lock));
|
||||
return pt;
|
||||
}
|
||||
|
||||
void DRM(ioremapfree)(void *pt, unsigned long size)
|
||||
{
|
||||
int alloc_count;
|
||||
|
|
|
|||
|
|
@ -180,6 +180,9 @@
|
|||
#define DRM_IOREMAP(map) \
|
||||
(map)->handle = DRM(ioremap)( (map)->offset, (map)->size )
|
||||
|
||||
#define DRM_IOREMAP_NOCACHE(map) \
|
||||
(map)->handle = DRM(ioremap_nocache)((map)->offset, (map)->size)
|
||||
|
||||
#define DRM_IOREMAPFREE(map) \
|
||||
do { \
|
||||
if ( (map)->handle && (map)->size ) \
|
||||
|
|
@ -622,6 +625,7 @@ extern unsigned long DRM(alloc_pages)(int order, int area);
|
|||
extern void DRM(free_pages)(unsigned long address, int order,
|
||||
int area);
|
||||
extern void *DRM(ioremap)(unsigned long offset, unsigned long size);
|
||||
extern void *DRM(ioremap_nocache)(unsigned long offset, unsigned long size);
|
||||
extern void DRM(ioremapfree)(void *pt, unsigned long size);
|
||||
|
||||
#if __REALLY_HAVE_AGP
|
||||
|
|
|
|||
|
|
@ -314,6 +314,29 @@ void *DRM(ioremap)(unsigned long offset, unsigned long size)
|
|||
return pt;
|
||||
}
|
||||
|
||||
void *DRM(ioremap_nocache)(unsigned long offset, unsigned long size)
|
||||
{
|
||||
void *pt;
|
||||
|
||||
if (!size) {
|
||||
DRM_MEM_ERROR(DRM_MEM_MAPPINGS,
|
||||
"Mapping 0 bytes at 0x%08lx\n", offset);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!(pt = ioremap_nocache(offset, size))) {
|
||||
spin_lock(&DRM(mem_lock));
|
||||
++DRM(mem_stats)[DRM_MEM_MAPPINGS].fail_count;
|
||||
spin_unlock(&DRM(mem_lock));
|
||||
return NULL;
|
||||
}
|
||||
spin_lock(&DRM(mem_lock));
|
||||
++DRM(mem_stats)[DRM_MEM_MAPPINGS].succeed_count;
|
||||
DRM(mem_stats)[DRM_MEM_MAPPINGS].bytes_allocated += size;
|
||||
spin_unlock(&DRM(mem_lock));
|
||||
return pt;
|
||||
}
|
||||
|
||||
void DRM(ioremapfree)(void *pt, unsigned long size)
|
||||
{
|
||||
int alloc_count;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue