[PATCH 0/4] add ipp subsystem and each ipp drivers
Eunchul Kim
chulspro.kim at samsung.com
Sun Oct 28 22:20:21 PDT 2012
Thank's comment
and I will modify description of Exynos5 series. and than I will send it.
On 10/26/2012 11:43 PM, Inki Dae wrote:
> 2012/10/18 Eunchul Kim <chulspro.kim at samsung.com>:
>> Hi All.
>>
>> I am responsible for a display part from Samsung Electronics Telecommunication Division.
>> and I am going to add post-processing features in exynos drm.
>> If you have some opinion of this patch,
>> please give some comments about my patch.
>>
>> IPP is stands for Image Post Processing and supports image scaler/rotator
>> and input/output DMA operations using IPP drivers(FIMC, Rotator, GSC, SC, so on.)
>> IPP is integration device driver of same attibute hardware.
>>
>
> Please add more descriptions. Actually, GSC is a new hardware for
> Exynos5xxx SoC and later. So please, leave descriptions enough. ie. in
> case of Exynos4xxx SoCs, Image scaler, rotator and color space
> conversion had been processed by FIMC hardware. But as you know, in
> case of Exynos5xxx and layer, they are processed by GSC. And also the
> GSC can be used instead of Exynos4xxx's Video Processor. So such
> things should be described enough.
OK I will add more descriptions.
>
>> IPP drivers supports Memory to Memory operations with various converting.
>> and some drivers supports Writeback and Display output operations using local path.
>> User can make converted image using this driver.
>> and also supports streaming concept for multimedia data processing.
>>
>> And supports various operations
>> 1. Scale operation generates various sizes of image.
>> 2. CSC(Color Space Conversion) operation supports format converting.
>> 3. Crop operation supports cutting the image.
>> 4. Rotate operation supports to 90, 180, 270 degree.
>> 5. Flip operation supports to vertical, horizontal, and both.
>> 6. Writeback operation genertates cloned image from display controller(FIMD).
>> 7. Display output operation support various format display to display controller(FIMD).
>> 8. Input DMA reads image data from the memory.
>> 9. Output DMA writes image data to memory.
>> 10. Supports image effect functions.
>>
>> Descriptions)
>> User should make property informations and set this property to registers.
>> and IPP subsystem manages property id using command node and make queue list using memory node.
>> IPP subsystem supports register function of IPP drivers.
>> IPP driver manages input/output DMA with various operations. and some driver supports
>> optional operations(writeback, output).
>> IPP driver needs various informations, so User set property information to IPP driver.
>> and also IPP driver needs memory base address of image for various operations.
>> User doesn't know its address, so fills the gem handle of that memory than address of image base.
>> and than IPP driver start operation.
>>
>> We adds four ioctls and one event for IPP subsystem.
>> Basic control flow is same as below
>> Open -> Get properties -> User choose IPP driver and set property information -> Set Property -> Create gem handle ->
>> Queue buffer(Enqueue) of source/destination -> Command control(Play) -> Event occured to User
>> -> User handle converted image -> (Queue buffer(Enqueue) of source/destination -> Event occured to User)*N ->
>> Queue buffer(Dequeue) of source/destination -> Command control(Stop) -> Free gem handle -> Close
>>
>
> The above descriptions are not enough. Please add test application so
> that other people can understand your patch set. And let's start as
> RFC this time.
>
Do you want to attach ipptest application in libdrm ?
>> - ioctls
>> DRM_EXYNOS_IPP_GET_PROPERTY : get ipp driver capabilitis and id.
>> DRM_EXYNOS_IPP_SET_PROPERTY : set format, position, rotation, flip about source/destination.
>> DRM_EXYNOS_IPP_QUEUE_BUF : enqueue/dequeue buffer and make event list.
>> DRM_EXYNOS_IPP_CMD_CTRL : play/stop/pause/resume control.
>>
>> - event
>> DRM_EXYNOS_IPP_EVENT : event to give notification completion of buffer DMA with buffer list
>>
>> Eunchul Kim (4):
>> drm/exynos: add ipp subsystem
>> drm/exynos: add fimc ipp driver
>> drm/exynos: add rotator ipp driver
>> drm/exynos: add gsc ipp driver
>>
>> drivers/gpu/drm/exynos/Kconfig | 24 +
>> drivers/gpu/drm/exynos/Makefile | 4 +
>> drivers/gpu/drm/exynos/exynos_drm_drv.c | 69 +
>> drivers/gpu/drm/exynos/exynos_drm_drv.h | 10 +
>> drivers/gpu/drm/exynos/exynos_drm_fimc.c | 2041 +++++++++++++++++++++++++++
>> drivers/gpu/drm/exynos/exynos_drm_fimc.h | 35 +
>> drivers/gpu/drm/exynos/exynos_drm_gsc.c | 1476 +++++++++++++++++++
>> drivers/gpu/drm/exynos/exynos_drm_gsc.h | 35 +
>> drivers/gpu/drm/exynos/exynos_drm_ipp.c | 1937 +++++++++++++++++++++++++
>> drivers/gpu/drm/exynos/exynos_drm_ipp.h | 268 ++++
>> drivers/gpu/drm/exynos/exynos_drm_rotator.c | 801 +++++++++++
>> drivers/gpu/drm/exynos/exynos_drm_rotator.h | 13 +
>> drivers/gpu/drm/exynos/regs-fimc.h | 669 +++++++++
>> drivers/gpu/drm/exynos/regs-gsc.h | 295 ++++
>> drivers/gpu/drm/exynos/regs-rotator.h | 73 +
>> include/drm/exynos_drm.h | 33 +
>> include/uapi/drm/exynos_drm.h | 189 +++
>> 17 files changed, 7972 insertions(+), 0 deletions(-)
>> create mode 100644 drivers/gpu/drm/exynos/exynos_drm_fimc.c
>> create mode 100644 drivers/gpu/drm/exynos/exynos_drm_fimc.h
>> create mode 100644 drivers/gpu/drm/exynos/exynos_drm_gsc.c
>> create mode 100644 drivers/gpu/drm/exynos/exynos_drm_gsc.h
>> create mode 100644 drivers/gpu/drm/exynos/exynos_drm_ipp.c
>> create mode 100644 drivers/gpu/drm/exynos/exynos_drm_ipp.h
>> create mode 100644 drivers/gpu/drm/exynos/exynos_drm_rotator.c
>> create mode 100644 drivers/gpu/drm/exynos/exynos_drm_rotator.h
>> create mode 100644 drivers/gpu/drm/exynos/regs-fimc.h
>> create mode 100644 drivers/gpu/drm/exynos/regs-gsc.h
>> create mode 100644 drivers/gpu/drm/exynos/regs-rotator.h
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
More information about the dri-devel
mailing list