Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
exynos_drm_g2d.c File Reference
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/clk.h>
#include <linux/err.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/slab.h>
#include <linux/workqueue.h>
#include <drm/drmP.h>
#include <drm/exynos_drm.h>
#include "exynos_drm_drv.h"
#include "exynos_drm_gem.h"

Go to the source code of this file.

Data Structures

struct  g2d_cmdlist
 
struct  drm_exynos_pending_g2d_event
 
struct  g2d_gem_node
 
struct  g2d_cmdlist_node
 
struct  g2d_runqueue_node
 
struct  g2d_data
 

Macros

#define G2D_HW_MAJOR_VER   4
 
#define G2D_HW_MINOR_VER   1
 
#define G2D_VALID_START   0x0104
 
#define G2D_VALID_END   0x0880
 
#define G2D_SOFT_RESET   0x0000
 
#define G2D_INTEN   0x0004
 
#define G2D_INTC_PEND   0x000C
 
#define G2D_DMA_SFR_BASE_ADDR   0x0080
 
#define G2D_DMA_COMMAND   0x0084
 
#define G2D_DMA_STATUS   0x008C
 
#define G2D_DMA_HOLD_CMD   0x0090
 
#define G2D_BITBLT_START   0x0100
 
#define G2D_SRC_BASE_ADDR   0x0304
 
#define G2D_SRC_PLANE2_BASE_ADDR   0x0318
 
#define G2D_DST_BASE_ADDR   0x0404
 
#define G2D_DST_PLANE2_BASE_ADDR   0x0418
 
#define G2D_PAT_BASE_ADDR   0x0500
 
#define G2D_MSK_BASE_ADDR   0x0520
 
#define G2D_SFRCLEAR   (1 << 1)
 
#define G2D_R   (1 << 0)
 
#define G2D_INTEN_ACF   (1 << 3)
 
#define G2D_INTEN_UCF   (1 << 2)
 
#define G2D_INTEN_GCF   (1 << 1)
 
#define G2D_INTEN_SCF   (1 << 0)
 
#define G2D_INTP_ACMD_FIN   (1 << 3)
 
#define G2D_INTP_UCMD_FIN   (1 << 2)
 
#define G2D_INTP_GCMD_FIN   (1 << 1)
 
#define G2D_INTP_SCMD_FIN   (1 << 0)
 
#define G2D_DMA_HALT   (1 << 2)
 
#define G2D_DMA_CONTINUE   (1 << 1)
 
#define G2D_DMA_START   (1 << 0)
 
#define G2D_DMA_LIST_DONE_COUNT   (0xFF << 17)
 
#define G2D_DMA_BITBLT_DONE_COUNT   (0xFFFF << 1)
 
#define G2D_DMA_DONE   (1 << 0)
 
#define G2D_DMA_LIST_DONE_COUNT_OFFSET   17
 
#define G2D_USET_HOLD   (1 << 2)
 
#define G2D_LIST_HOLD   (1 << 1)
 
#define G2D_BITBLT_HOLD   (1 << 0)
 
#define G2D_START_CASESEL   (1 << 2)
 
#define G2D_START_NHOLT   (1 << 1)
 
#define G2D_START_BITBLT   (1 << 0)
 
#define G2D_CMDLIST_SIZE   (PAGE_SIZE / 4)
 
#define G2D_CMDLIST_NUM   64
 
#define G2D_CMDLIST_POOL_SIZE   (G2D_CMDLIST_SIZE * G2D_CMDLIST_NUM)
 
#define G2D_CMDLIST_DATA_NUM   (G2D_CMDLIST_SIZE / sizeof(u32) - 2)
 

Functions

int exynos_g2d_get_ver_ioctl (struct drm_device *drm_dev, void *data, struct drm_file *file)
 
 EXPORT_SYMBOL_GPL (exynos_g2d_get_ver_ioctl)
 
int exynos_g2d_set_cmdlist_ioctl (struct drm_device *drm_dev, void *data, struct drm_file *file)
 
 EXPORT_SYMBOL_GPL (exynos_g2d_set_cmdlist_ioctl)
 
int exynos_g2d_exec_ioctl (struct drm_device *drm_dev, void *data, struct drm_file *file)
 
 EXPORT_SYMBOL_GPL (exynos_g2d_exec_ioctl)
 

Variables

struct platform_driver g2d_driver
 

Macro Definition Documentation

#define G2D_BITBLT_HOLD   (1 << 0)

Definition at line 83 of file exynos_drm_g2d.c.

#define G2D_BITBLT_START   0x0100

Definition at line 43 of file exynos_drm_g2d.c.

#define G2D_CMDLIST_DATA_NUM   (G2D_CMDLIST_SIZE / sizeof(u32) - 2)

Definition at line 93 of file exynos_drm_g2d.c.

#define G2D_CMDLIST_NUM   64

Definition at line 91 of file exynos_drm_g2d.c.

#define G2D_CMDLIST_POOL_SIZE   (G2D_CMDLIST_SIZE * G2D_CMDLIST_NUM)

Definition at line 92 of file exynos_drm_g2d.c.

#define G2D_CMDLIST_SIZE   (PAGE_SIZE / 4)

Definition at line 90 of file exynos_drm_g2d.c.

#define G2D_DMA_BITBLT_DONE_COUNT   (0xFFFF << 1)

Definition at line 76 of file exynos_drm_g2d.c.

#define G2D_DMA_COMMAND   0x0084

Definition at line 38 of file exynos_drm_g2d.c.

#define G2D_DMA_CONTINUE   (1 << 1)

Definition at line 71 of file exynos_drm_g2d.c.

#define G2D_DMA_DONE   (1 << 0)

Definition at line 77 of file exynos_drm_g2d.c.

#define G2D_DMA_HALT   (1 << 2)

Definition at line 70 of file exynos_drm_g2d.c.

#define G2D_DMA_HOLD_CMD   0x0090

Definition at line 40 of file exynos_drm_g2d.c.

#define G2D_DMA_LIST_DONE_COUNT   (0xFF << 17)

Definition at line 75 of file exynos_drm_g2d.c.

#define G2D_DMA_LIST_DONE_COUNT_OFFSET   17

Definition at line 78 of file exynos_drm_g2d.c.

#define G2D_DMA_SFR_BASE_ADDR   0x0080

Definition at line 37 of file exynos_drm_g2d.c.

#define G2D_DMA_START   (1 << 0)

Definition at line 72 of file exynos_drm_g2d.c.

#define G2D_DMA_STATUS   0x008C

Definition at line 39 of file exynos_drm_g2d.c.

#define G2D_DST_BASE_ADDR   0x0404

Definition at line 48 of file exynos_drm_g2d.c.

#define G2D_DST_PLANE2_BASE_ADDR   0x0418

Definition at line 49 of file exynos_drm_g2d.c.

#define G2D_HW_MAJOR_VER   4

Definition at line 26 of file exynos_drm_g2d.c.

#define G2D_HW_MINOR_VER   1

Definition at line 27 of file exynos_drm_g2d.c.

#define G2D_INTC_PEND   0x000C

Definition at line 36 of file exynos_drm_g2d.c.

#define G2D_INTEN   0x0004

Definition at line 35 of file exynos_drm_g2d.c.

#define G2D_INTEN_ACF   (1 << 3)

Definition at line 58 of file exynos_drm_g2d.c.

#define G2D_INTEN_GCF   (1 << 1)

Definition at line 60 of file exynos_drm_g2d.c.

#define G2D_INTEN_SCF   (1 << 0)

Definition at line 61 of file exynos_drm_g2d.c.

#define G2D_INTEN_UCF   (1 << 2)

Definition at line 59 of file exynos_drm_g2d.c.

#define G2D_INTP_ACMD_FIN   (1 << 3)

Definition at line 64 of file exynos_drm_g2d.c.

#define G2D_INTP_GCMD_FIN   (1 << 1)

Definition at line 66 of file exynos_drm_g2d.c.

#define G2D_INTP_SCMD_FIN   (1 << 0)

Definition at line 67 of file exynos_drm_g2d.c.

#define G2D_INTP_UCMD_FIN   (1 << 2)

Definition at line 65 of file exynos_drm_g2d.c.

#define G2D_LIST_HOLD   (1 << 1)

Definition at line 82 of file exynos_drm_g2d.c.

#define G2D_MSK_BASE_ADDR   0x0520

Definition at line 51 of file exynos_drm_g2d.c.

#define G2D_PAT_BASE_ADDR   0x0500

Definition at line 50 of file exynos_drm_g2d.c.

#define G2D_R   (1 << 0)

Definition at line 55 of file exynos_drm_g2d.c.

#define G2D_SFRCLEAR   (1 << 1)

Definition at line 54 of file exynos_drm_g2d.c.

#define G2D_SOFT_RESET   0x0000

Definition at line 34 of file exynos_drm_g2d.c.

#define G2D_SRC_BASE_ADDR   0x0304

Definition at line 46 of file exynos_drm_g2d.c.

#define G2D_SRC_PLANE2_BASE_ADDR   0x0318

Definition at line 47 of file exynos_drm_g2d.c.

#define G2D_START_BITBLT   (1 << 0)

Definition at line 88 of file exynos_drm_g2d.c.

#define G2D_START_CASESEL   (1 << 2)

Definition at line 86 of file exynos_drm_g2d.c.

#define G2D_START_NHOLT   (1 << 1)

Definition at line 87 of file exynos_drm_g2d.c.

#define G2D_USET_HOLD   (1 << 2)

Definition at line 81 of file exynos_drm_g2d.c.

#define G2D_VALID_END   0x0880

Definition at line 31 of file exynos_drm_g2d.c.

#define G2D_VALID_START   0x0104

Definition at line 30 of file exynos_drm_g2d.c.

Function Documentation

EXPORT_SYMBOL_GPL ( exynos_g2d_get_ver_ioctl  )
EXPORT_SYMBOL_GPL ( exynos_g2d_set_cmdlist_ioctl  )
EXPORT_SYMBOL_GPL ( exynos_g2d_exec_ioctl  )
int exynos_g2d_exec_ioctl ( struct drm_device drm_dev,
void data,
struct drm_file *  file 
)

Definition at line 641 of file exynos_drm_g2d.c.

int exynos_g2d_get_ver_ioctl ( struct drm_device drm_dev,
void data,
struct drm_file *  file 
)

Definition at line 474 of file exynos_drm_g2d.c.

int exynos_g2d_set_cmdlist_ioctl ( struct drm_device drm_dev,
void data,
struct drm_file *  file 
)

Definition at line 486 of file exynos_drm_g2d.c.

Variable Documentation

struct platform_driver g2d_driver
Initial value:
= {
.probe = g2d_probe,
.remove = __devexit_p(g2d_remove),
.driver = {
.name = "s5p-g2d",
.owner = THIS_MODULE,
.pm = &g2d_pm_ops,
},
}

Definition at line 900 of file exynos_drm_g2d.c.