[PATCH v4 2/9] drm/exynos: ipp: Add IPP v2 framework
Dave Airlie
airlied at gmail.com
Wed Nov 1 03:47:22 UTC 2017
On 23 October 2017 at 17:54, Marek Szyprowski <m.szyprowski at samsung.com> wrote:
> This patch adds Exynos IPP v2 subsystem and userspace API.
>
> New userspace API is focused ONLY on memory-to-memory image processing.
> The two remainging IPP operation modes (framebuffer writeback and
> local-path output with image processing) can be implemented using
> standard DRM features: writeback connectors and additional DRM planes with
> scaling features.
>
> V2 IPP userspace API is not compatible with old IPP ioctls. This is a
> significant change, but the old IPP subsystem in mainline Linux kernel was
> partially disfunctional anyway and not used in any open-source project.
>
> V2 IPP userspace API is based on stateless approach, which much better fits
> to memory-to-memory image processing model. It also provides support for
> all image formats, which are both already defined in DRM API and supported
> by the existing IPP hardware modules.
>
> The API consists of the following ioctls:
> - DRM_IOCTL_EXYNOS_IPP_GET_RESOURCES: to enumerate all available image
> processing modules,
> - DRM_IOCTL_EXYNOS_IPP_GET_CAPS: to query capabilities and supported image
> formats of given IPP module,
> - DRM_IOCTL_EXYNOS_IPP_GET_LIMITS: to query hardware limitiations for
> selected image format of given IPP module,
> - DRM_IOCTL_EXYNOS_IPP_COMMIT: to perform operation described by the
> provided structures (source and destination buffers, operation rectangle,
> transformation, etc).
>
> The proposed userspace API is extensible. In the future more advanced image
> processing operations can be defined to support for example blending.
>
> Userspace API is fully functional also on DRM render nodes, so it is not
> limited to the root/privileged client.
>
> Internal driver API also has been completely rewritten. New IPP core
> performs all possible input validation, checks and object life-time
> control. The drivers can focus only on writing configuration to hardware
> registers. Stateless nature of DRM_IOCTL_EXYNOS_IPP_COMMIT ioctl simplifies
> the driver API. Minimal driver needs to provide a single callback for
> starting processing and an array with supported image formats.
Is there userspace user for this? This is pretty significant
driver-specific API addition.
The commit should contain pointers to a userspace project using this,
or patches to one.
Dave.
More information about the dri-devel
mailing list