Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions
gem.c File Reference
#include <drm/drmP.h>
#include <drm/drm.h>
#include <drm/gma_drm.h>
#include "psb_drv.h"

Go to the source code of this file.

Functions

int psb_gem_init_object (struct drm_gem_object *obj)
 
void psb_gem_free_object (struct drm_gem_object *obj)
 
int psb_gem_get_aperture (struct drm_device *dev, void *data, struct drm_file *file)
 
int psb_gem_dumb_map_gtt (struct drm_file *file, struct drm_device *dev, uint32_t handle, uint64_t *offset)
 
int psb_gem_dumb_create (struct drm_file *file, struct drm_device *dev, struct drm_mode_create_dumb *args)
 
int psb_gem_dumb_destroy (struct drm_file *file, struct drm_device *dev, uint32_t handle)
 
int psb_gem_fault (struct vm_area_struct *vma, struct vm_fault *vmf)
 
int psb_gem_create_ioctl (struct drm_device *dev, void *data, struct drm_file *file)
 
int psb_gem_mmap_ioctl (struct drm_device *dev, void *data, struct drm_file *file)
 

Function Documentation

int psb_gem_create_ioctl ( struct drm_device dev,
void data,
struct drm_file *  file 
)

Definition at line 276 of file gem.c.

int psb_gem_dumb_create ( struct drm_file *  file,
struct drm_device dev,
struct drm_mode_create_dumb args 
)

psb_gem_dumb_create - create a dumb buffer : our client file : our device : the requested arguments copied from userspace

Allocate a buffer suitable for use for a frame buffer of the form described by user space. Give userspace a handle by which to reference it.

Definition at line 159 of file gem.c.

int psb_gem_dumb_destroy ( struct drm_file *  file,
struct drm_device dev,
uint32_t  handle 
)

Definition at line 177 of file gem.c.

int psb_gem_dumb_map_gtt ( struct drm_file *  file,
struct drm_device dev,
uint32_t  handle,
uint64_t offset 
)

Definition at line 64 of file gem.c.

int psb_gem_fault ( struct vm_area_struct vma,
struct vm_fault *  vmf 
)

psb_gem_fault - pagefault handler for GEM objects : the VMA of the GEM object : fault detail

Invoked when a fault occurs on an mmap of a GEM managed area. GEM does most of the work for us including the actual map/unmap calls but we need to do the actual page work.

This code eventually needs to handle faulting objects in and out of the GTT and repacking it when we run out of space. We can put that off for now and for our simple uses

The VMA was set up by GEM. In doing so it also ensured that the vma->vm_private_data points to the GEM object that is backing this mapping.

Definition at line 201 of file gem.c.

void psb_gem_free_object ( struct drm_gem_object *  obj)

Definition at line 36 of file gem.c.

int psb_gem_get_aperture ( struct drm_device dev,
void data,
struct drm_file *  file 
)

Definition at line 49 of file gem.c.

int psb_gem_init_object ( struct drm_gem_object *  obj)

Definition at line 31 of file gem.c.

int psb_gem_mmap_ioctl ( struct drm_device dev,
void data,
struct drm_file *  file 
)

Definition at line 292 of file gem.c.