![Joonyoung Shim](/assets/img/avatar_default.png)
Changelog v3: - use __u64 instead of pointer in ioctl struct. The G2D is a 2D graphic accelerator that supports Bit Block Transfer. This G2D driver is exynos drm specific and supports only G2D(version 4.1) of later Exynos series from Exynos4X12 because supporting DMA. The G2D is performed by two tasks simply. 1. Configures the rendering parameters, such as foreground color and coordinates data by setting the drawing context registers. 2. Start the rendering process by setting thre relevant command registers accordingly. The G2D version 4.1 supports DMA mode as host interface. User can make command list to reduce HOST(ARM) loads. The contents of The command list is setted to relevant registers of G2D by DMA. The command list is composed Header and command sets and Tail. - Header: The number of command set(4Bytes) - Command set: Register offset(4Bytes) + Register data(4Bytes) - Tail: Pointer of base address of the other command list(4Bytes) By Tail field, the G2D can process many command lists without halt at one go. The G2D has following the rendering pipeline. --> Primitive Drawing --> Rotation --> Clipping --> Bilinear Sampling --> Color Key --> ROP --> Mask Operation --> Alpha Blending --> Dithering --> FrameBuffer And supports various operations from the rendering pipeline. - copy - fast solid color fill - window clipping - rotation - flip - 4 operand raster operation(ROP4) - masking operation - alpha blending - color key - dithering - etc User should make the command list to data and registers needed by operation to use. The Exynos G2D driver only manages the command lists received from user. Some registers needs memory base address(physical address) of image. User doesn't know its physical address, so fills the gem handle of that memory than address to command sets, then G2D driver converts it to memory base address. We adds three ioctls and one event for Exynos G2D. - ioctls DRM_EXYNOS_G2D_GET_VER: get the G2D hardware version DRM_EXYNOS_G2D_SET_CMDLIST: set the command list from user to driver DRM_EXYNOS_G2D_EXEC: execute the command lists setted to driver - event DRM_EXYNOS_G2D_EVENT: event to give notification completion of the command list to user Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
42 lines
1.1 KiB
Plaintext
42 lines
1.1 KiB
Plaintext
config DRM_EXYNOS
|
|
tristate "DRM Support for Samsung SoC EXYNOS Series"
|
|
depends on DRM && PLAT_SAMSUNG
|
|
select DRM_KMS_HELPER
|
|
select FB_CFB_FILLRECT
|
|
select FB_CFB_COPYAREA
|
|
select FB_CFB_IMAGEBLIT
|
|
select VT_HW_CONSOLE_BINDING if FRAMEBUFFER_CONSOLE
|
|
help
|
|
Choose this option if you have a Samsung SoC EXYNOS chipset.
|
|
If M is selected the module will be called exynosdrm.
|
|
|
|
config DRM_EXYNOS_DMABUF
|
|
bool "EXYNOS DRM DMABUF"
|
|
depends on DRM_EXYNOS
|
|
help
|
|
Choose this option if you want to use DMABUF feature for DRM.
|
|
|
|
config DRM_EXYNOS_FIMD
|
|
bool "Exynos DRM FIMD"
|
|
depends on DRM_EXYNOS && !FB_S3C
|
|
help
|
|
Choose this option if you want to use Exynos FIMD for DRM.
|
|
|
|
config DRM_EXYNOS_HDMI
|
|
bool "Exynos DRM HDMI"
|
|
depends on DRM_EXYNOS && !VIDEO_SAMSUNG_S5P_TV
|
|
help
|
|
Choose this option if you want to use Exynos HDMI for DRM.
|
|
|
|
config DRM_EXYNOS_VIDI
|
|
bool "Exynos DRM Virtual Display"
|
|
depends on DRM_EXYNOS
|
|
help
|
|
Choose this option if you want to use Exynos VIDI for DRM.
|
|
|
|
config DRM_EXYNOS_G2D
|
|
bool "Exynos DRM G2D"
|
|
depends on DRM_EXYNOS
|
|
help
|
|
Choose this option if you want to use Exynos G2D for DRM.
|