Loading drivers/staging/gma500/gem.c +11 −0 Original line number Diff line number Diff line Loading @@ -250,3 +250,14 @@ int psb_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf) return VM_FAULT_SIGBUS; } } /* * GEM interfaces for our specific client */ int psb_gem_create_ioctl(struct drm_device *dev, void *data, struct drm_file *file) { struct drm_psb_gem_create *args = data; return psb_gem_create(file, dev, args->size, &args->handle); } drivers/staging/gma500/psb_drm.h +7 −8 Original line number Diff line number Diff line Loading @@ -159,18 +159,11 @@ struct drm_psb_register_rw_arg { * corresponding defines where they're * defined elsewhere. */ #define DRM_PVR_RESERVED1 0x12 #define DRM_PVR_RESERVED2 0x13 #define DRM_PVR_RESERVED3 0x14 #define DRM_PVR_RESERVED4 0x15 #define DRM_PVR_RESERVED5 0x16 #define DRM_PSB_GEM_CREATE 0x10 #define DRM_PSB_DPST 0x1B #define DRM_PSB_GAMMA 0x1C #define DRM_PSB_DPST_BL 0x1D #define DRM_PVR_RESERVED6 0x1E #define DRM_PSB_GET_PIPE_FROM_CRTC_ID 0x1F #define PSB_MODE_OPERATION_MODE_VALID 0x01 Loading @@ -191,4 +184,10 @@ struct psb_drm_dpu_rect { int width, height; }; struct drm_psb_gem_create { __u64 size; __u32 handle; __u32 pad; }; #endif drivers/staging/gma500/psb_drv.c +5 −0 Original line number Diff line number Diff line Loading @@ -121,6 +121,9 @@ MODULE_DEVICE_TABLE(pci, pciidlist); #define DRM_IOCTL_PSB_GET_PIPE_FROM_CRTC_ID \ DRM_IOWR(DRM_PSB_GET_PIPE_FROM_CRTC_ID + DRM_COMMAND_BASE, \ struct drm_psb_get_pipe_from_crtc_id_arg) #define DRM_IOCTL_PSB_GEM_CREATE \ DRM_IOWR(DRM_PSB_GEM_CREATE + DRM_COMMAND_BASE, \ struct drm_psb_gem_create) static int psb_sizes_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv); Loading Loading @@ -159,6 +162,8 @@ static struct drm_ioctl_desc psb_ioctls[] = { PSB_IOCTL_DEF(DRM_IOCTL_PSB_DPST_BL, psb_dpst_bl_ioctl, DRM_AUTH), PSB_IOCTL_DEF(DRM_IOCTL_PSB_GET_PIPE_FROM_CRTC_ID, psb_intel_get_pipe_from_crtc_id, 0), PSB_IOCTL_DEF(DRM_IOCTL_PSB_GEM_CREATE, psb_gem_create_ioctl, DRM_UNLOCKED | DRM_AUTH), }; Loading drivers/staging/gma500/psb_drv.h +5 −3 Original line number Diff line number Diff line Loading @@ -782,7 +782,7 @@ extern const struct drm_connector_helper_funcs psb_intel_lvds_connector_helper_funcs; extern const struct drm_connector_funcs psb_intel_lvds_connector_funcs; /* psb_gem.c */ /* gem.c */ extern int psb_gem_init_object(struct drm_gem_object *obj); extern void psb_gem_free_object(struct drm_gem_object *obj); extern int psb_gem_get_aperture(struct drm_device *dev, void *data, Loading @@ -794,6 +794,8 @@ extern int psb_gem_dumb_destroy(struct drm_file *file, struct drm_device *dev, extern int psb_gem_dumb_map_gtt(struct drm_file *file, struct drm_device *dev, uint32_t handle, uint64_t *offset); extern int psb_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf); extern int psb_gem_create_ioctl(struct drm_device *dev, void *data, struct drm_file *file); /* psb_device.c */ extern const struct psb_ops psb_chip_ops; Loading Loading
drivers/staging/gma500/gem.c +11 −0 Original line number Diff line number Diff line Loading @@ -250,3 +250,14 @@ int psb_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf) return VM_FAULT_SIGBUS; } } /* * GEM interfaces for our specific client */ int psb_gem_create_ioctl(struct drm_device *dev, void *data, struct drm_file *file) { struct drm_psb_gem_create *args = data; return psb_gem_create(file, dev, args->size, &args->handle); }
drivers/staging/gma500/psb_drm.h +7 −8 Original line number Diff line number Diff line Loading @@ -159,18 +159,11 @@ struct drm_psb_register_rw_arg { * corresponding defines where they're * defined elsewhere. */ #define DRM_PVR_RESERVED1 0x12 #define DRM_PVR_RESERVED2 0x13 #define DRM_PVR_RESERVED3 0x14 #define DRM_PVR_RESERVED4 0x15 #define DRM_PVR_RESERVED5 0x16 #define DRM_PSB_GEM_CREATE 0x10 #define DRM_PSB_DPST 0x1B #define DRM_PSB_GAMMA 0x1C #define DRM_PSB_DPST_BL 0x1D #define DRM_PVR_RESERVED6 0x1E #define DRM_PSB_GET_PIPE_FROM_CRTC_ID 0x1F #define PSB_MODE_OPERATION_MODE_VALID 0x01 Loading @@ -191,4 +184,10 @@ struct psb_drm_dpu_rect { int width, height; }; struct drm_psb_gem_create { __u64 size; __u32 handle; __u32 pad; }; #endif
drivers/staging/gma500/psb_drv.c +5 −0 Original line number Diff line number Diff line Loading @@ -121,6 +121,9 @@ MODULE_DEVICE_TABLE(pci, pciidlist); #define DRM_IOCTL_PSB_GET_PIPE_FROM_CRTC_ID \ DRM_IOWR(DRM_PSB_GET_PIPE_FROM_CRTC_ID + DRM_COMMAND_BASE, \ struct drm_psb_get_pipe_from_crtc_id_arg) #define DRM_IOCTL_PSB_GEM_CREATE \ DRM_IOWR(DRM_PSB_GEM_CREATE + DRM_COMMAND_BASE, \ struct drm_psb_gem_create) static int psb_sizes_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv); Loading Loading @@ -159,6 +162,8 @@ static struct drm_ioctl_desc psb_ioctls[] = { PSB_IOCTL_DEF(DRM_IOCTL_PSB_DPST_BL, psb_dpst_bl_ioctl, DRM_AUTH), PSB_IOCTL_DEF(DRM_IOCTL_PSB_GET_PIPE_FROM_CRTC_ID, psb_intel_get_pipe_from_crtc_id, 0), PSB_IOCTL_DEF(DRM_IOCTL_PSB_GEM_CREATE, psb_gem_create_ioctl, DRM_UNLOCKED | DRM_AUTH), }; Loading
drivers/staging/gma500/psb_drv.h +5 −3 Original line number Diff line number Diff line Loading @@ -782,7 +782,7 @@ extern const struct drm_connector_helper_funcs psb_intel_lvds_connector_helper_funcs; extern const struct drm_connector_funcs psb_intel_lvds_connector_funcs; /* psb_gem.c */ /* gem.c */ extern int psb_gem_init_object(struct drm_gem_object *obj); extern void psb_gem_free_object(struct drm_gem_object *obj); extern int psb_gem_get_aperture(struct drm_device *dev, void *data, Loading @@ -794,6 +794,8 @@ extern int psb_gem_dumb_destroy(struct drm_file *file, struct drm_device *dev, extern int psb_gem_dumb_map_gtt(struct drm_file *file, struct drm_device *dev, uint32_t handle, uint64_t *offset); extern int psb_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf); extern int psb_gem_create_ioctl(struct drm_device *dev, void *data, struct drm_file *file); /* psb_device.c */ extern const struct psb_ops psb_chip_ops; Loading