diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-05-26 17:48:36 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-05-26 17:48:36 -0400 |
| commit | ebd4c994d2f917dffec882e7a77c28c6b28758ac (patch) | |
| tree | 1b25626dacb31bc7004d5fd455a13be14a605fb1 /include | |
| parent | 299297c63686948aab5af1534629a0a740af6688 (diff) | |
| parent | e4a5d54f924ea5ce2913d9d0687d034004816465 (diff) | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel:
drm/i915: Add support for VGA load detection (pre-945).
drm/i915: Use an I2C algo to do the flip to SDVO DDC bus.
drm/i915: Determine type before initialising connector
drm/i915: Return SDVO LVDS VBT mode if no EDID modes are detected.
drm/i915: Fetch SDVO LVDS mode lines from VBT, then reserve them
i915: support 8xx desktop cursors
drm/i915: allocate large pointer arrays with vmalloc
Diffstat (limited to 'include')
| -rw-r--r-- | include/drm/drmP.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/include/drm/drmP.h b/include/drm/drmP.h index c8c422151431..b84d8ae35e6f 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h | |||
| @@ -1519,6 +1519,30 @@ static __inline__ void *drm_calloc(size_t nmemb, size_t size, int area) | |||
| 1519 | { | 1519 | { |
| 1520 | return kcalloc(nmemb, size, GFP_KERNEL); | 1520 | return kcalloc(nmemb, size, GFP_KERNEL); |
| 1521 | } | 1521 | } |
| 1522 | |||
| 1523 | static __inline__ void *drm_calloc_large(size_t nmemb, size_t size) | ||
| 1524 | { | ||
| 1525 | u8 *addr; | ||
| 1526 | |||
| 1527 | if (size <= PAGE_SIZE) | ||
| 1528 | return kcalloc(nmemb, size, GFP_KERNEL); | ||
| 1529 | |||
| 1530 | addr = vmalloc(nmemb * size); | ||
| 1531 | if (!addr) | ||
| 1532 | return NULL; | ||
| 1533 | |||
| 1534 | memset(addr, 0, nmemb * size); | ||
| 1535 | |||
| 1536 | return addr; | ||
| 1537 | } | ||
| 1538 | |||
| 1539 | static __inline void drm_free_large(void *ptr) | ||
| 1540 | { | ||
| 1541 | if (!is_vmalloc_addr(ptr)) | ||
| 1542 | return kfree(ptr); | ||
| 1543 | |||
| 1544 | vfree(ptr); | ||
| 1545 | } | ||
| 1522 | #else | 1546 | #else |
| 1523 | extern void *drm_alloc(size_t size, int area); | 1547 | extern void *drm_alloc(size_t size, int area); |
| 1524 | extern void drm_free(void *pt, size_t size, int area); | 1548 | extern void drm_free(void *pt, size_t size, int area); |
