![Pauli Nieminen](/assets/img/avatar_default.png)
Allocating multiple pages of memory for data that is coming from user space may fail. To fix memory allocation failures the buffer object should be split to multiple independ pages. drm buffer provides generic interface to copy and process large data arrays from user space. Interface includes allocation and free functions to allocate the buffer object and data storage pages. All access operations are performed relative to a internal pointer which is advanced with drm_buffer_advance function. The buffer can be accessed using drm_buffer_pointer_to_XXX functions if it is known that requested object doesn't split over a page boundary. These functions don't do any error checking to maximize performance. If there is large object which could be split there is special drm_buffer_read_object function. drm_buffer_read_object takes a pointer as argument which is used as temporary store for data if it is split over boundary in the buffer. Signed-off-by: Pauli Nieminen <suokkos@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
37 lines
1.2 KiB
Makefile
37 lines
1.2 KiB
Makefile
#
|
|
# Makefile for the drm device driver. This driver provides support for the
|
|
# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
|
|
|
|
ccflags-y := -Iinclude/drm
|
|
|
|
drm-y := drm_auth.o drm_buffer.o drm_bufs.o drm_cache.o \
|
|
drm_context.o drm_dma.o drm_drawable.o \
|
|
drm_drv.o drm_fops.o drm_gem.o drm_ioctl.o drm_irq.o \
|
|
drm_lock.o drm_memory.o drm_proc.o drm_stub.o drm_vm.o \
|
|
drm_agpsupport.o drm_scatter.o ati_pcigart.o drm_pci.o \
|
|
drm_sysfs.o drm_hashtab.o drm_sman.o drm_mm.o \
|
|
drm_crtc.o drm_modes.o drm_edid.o \
|
|
drm_info.o drm_debugfs.o drm_encoder_slave.o
|
|
|
|
drm-$(CONFIG_COMPAT) += drm_ioc32.o
|
|
|
|
drm_kms_helper-y := drm_fb_helper.o drm_crtc_helper.o drm_dp_i2c_helper.o
|
|
|
|
obj-$(CONFIG_DRM_KMS_HELPER) += drm_kms_helper.o
|
|
|
|
obj-$(CONFIG_DRM) += drm.o
|
|
obj-$(CONFIG_DRM_TTM) += ttm/
|
|
obj-$(CONFIG_DRM_TDFX) += tdfx/
|
|
obj-$(CONFIG_DRM_R128) += r128/
|
|
obj-$(CONFIG_DRM_RADEON)+= radeon/
|
|
obj-$(CONFIG_DRM_MGA) += mga/
|
|
obj-$(CONFIG_DRM_I810) += i810/
|
|
obj-$(CONFIG_DRM_I830) += i830/
|
|
obj-$(CONFIG_DRM_I915) += i915/
|
|
obj-$(CONFIG_DRM_SIS) += sis/
|
|
obj-$(CONFIG_DRM_SAVAGE)+= savage/
|
|
obj-$(CONFIG_DRM_VMWGFX)+= vmwgfx/
|
|
obj-$(CONFIG_DRM_VIA) +=via/
|
|
obj-$(CONFIG_DRM_NOUVEAU) +=nouveau/
|
|
obj-y += i2c/
|