#
90bb087f |
|
13-Jun-2022 |
Ville Syrjälä <ville.syrjala@linux.intel.com> |
drm: Drop drm_blend.h from drm_crtc.h drm_crtc.h has no need for drm_blend.h, so don't include it. Avoids useless rebuilds of the entire universe when touching drm_blend.h. Quite a few placs do currently depend on drm_blend.h without actually including it directly. All of those need to be fixed up. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220613200317.11305-4-ville.syrjala@linux.intel.com Acked-by: Sam Ravnborg <sam@ravnborg.org> Acked-by: Jani Nikula <jani.nikula@intel.com>
|
#
6668da9f |
|
02-Jun-2021 |
Lee Jones <lee.jones@linaro.org> |
drm/exynos/exynos_drm_ipp: Fix documentation for 'exynos_drm_ipp_get_{caps,res}_ioctl()' Fixes the following W=1 kernel build warning(s): drivers/gpu/drm/exynos/exynos_drm_ipp.c:105: warning: expecting prototype for exynos_drm_ipp_ioctl_get_res_ioctl(). Prototype was for exynos_drm_ipp_get_res_ioctl() instead drivers/gpu/drm/exynos/exynos_drm_ipp.c:153: warning: expecting prototype for exynos_drm_ipp_ioctl_get_caps(). Prototype was for exynos_drm_ipp_get_caps_ioctl() instead Cc: Inki Dae <inki.dae@samsung.com> Cc: Joonyoung Shim <jy0922.shim@samsung.com> Cc: Seung-Woo Kim <sw0312.kim@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> Cc: Marek Szyprowski <m.szyprowski@samsung.com> Cc: dri-devel@lists.freedesktop.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-samsung-soc@vger.kernel.org Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20210602143300.2330146-25-lee.jones@linaro.org
|
#
226024b1 |
|
21-Aug-2019 |
Sam Ravnborg <sam@ravnborg.org> |
drm/exynos: drop use of drmP.h There was a few uses of drmP that was missed in the last patch removing this header from exynos. Remove the final uses of this header. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Inki Dae <inki.dae@samsung.com> Cc: Joonyoung Shim <jy0922.shim@samsung.com> Cc: Seung-Woo Kim <sw0312.kim@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Kukjin Kim <kgene@kernel.org> Cc: Krzysztof Kozlowski <krzk@kernel.org> Cc: Jingoo Han <jingoohan1@gmail.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
2bda34d7 |
|
24-Jun-2019 |
Sam Ravnborg <sam@ravnborg.org> |
drm/exynos: drop drmP.h usage Drop use of the deprecated drmP.h file. Replace with forwards / externals as appropriate. While touching the list of include files divide them up in blocks and sort them. v3: - fix build errors in exynos_drm_g2d.c (Inki Dae) The exynos_drm_g2d.c file is not built in the standard configurations and was therefore missed. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Inki Dae <inki.dae@samsung.com> Cc: Joonyoung Shim <jy0922.shim@samsung.com> Cc: Seung-Woo Kim <sw0312.kim@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Kukjin Kim <kgene@kernel.org> Cc: Krzysztof Kozlowski <krzk@kernel.org> Cc: Jingoo Han <jingoohan1@gmail.com> Fixed merge conflict. Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
8b955034 |
|
15-Apr-2019 |
Inki Dae <inki.dae@samsung.com> |
drm/ipp: clean up debug messages Print out debug messages with correct device name. As for this, this patch adds device pointer to exynos_drm_ipp structure, and in case of exynos_drm_ipp_task structure, replace drm_device pointer with device one. This will make each ipp driver to print out debug messages with correct device name. Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
6be90056 |
|
15-Apr-2019 |
Inki Dae <inki.dae@samsung.com> |
drm/exynos: use DRM_DEV_DEBUG* instead of DRM_DEBUG macro Use DRM_DEV_DEBUG* instead of DRM_DEBUG macro to print out debug messages. This patch just cleans up the use of debug log macro, which changes the log macro to DRM_DEV_DEBUG*. Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
e978de54 |
|
09-Jul-2018 |
Marek Szyprowski <m.szyprowski@samsung.com> |
drm/exynos: Use common exynos_drm_gem_get()/put() functions for GEM lookup Use recently introduced common helpers to unify GEM handling code. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
e94595b0 |
|
17-Jun-2018 |
Stefan Agner <stefan@agner.ch> |
drm/exynos: ipp: use correct enum type The limit_id_fallback array uses enum drm_ipp_size_id to index its content. The content itself is of type enum drm_exynos_ipp_limit_type. Cc: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
69705ad2 |
|
07-Jun-2018 |
Marek Szyprowski <m.szyprowski@samsung.com> |
drm/exynos: ipp: Rework checking for the correct buffer formats Prepare a common function for size and scale checks and call it for source and destination buffers. Then also move there the state-less checks from exynos_drm_ipp_task_setup_buffer, so the format information is already available in limits processing. Finally perform the IPP_LIMIT_BUFFER check on the real width of the buffer (the width calculated from the provided buffer pitch). Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
9913f74f |
|
09-May-2018 |
Marek Szyprowski <m.szyprowski@samsung.com> |
drm/exynos: ipp: Add IPP v2 framework 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 operation modes of obsolete IPP v1 API (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 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. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Tested-by: Hoegeun Kwon <hoegeun.kwon@samsung.com> Merge conflict so merged manually. Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
8ded5941 |
|
14-Dec-2017 |
Marek Szyprowski <m.szyprowski@samsung.com> |
drm/exynos: ipp: Remove Exynos DRM IPP subsystem Exynos DRM IPP subsystem is in fact non-functional and frankly speaking dead-code. This patch clearly marks that Exynos DRM IPP subsystem is broken and never really functional. It will be replaced by a completely rewritten API. Exynos DRM IPP user-space API can be obsoleted for the following reasons: 1. Exynos DRM IPP user-space API can be optional in Exynos DRM, so userspace should not rely that it is always available and should have a software fallback in case it is not there. 2. The only mode which was initially semi-working was memory-to-memory image processing. The remaining modes (LCD-"writeback" and "output") were never operational due to missing code (both in mainline and even vendor kernels). 3. Exynos DRM IPP mainline user-space API compatibility for memory-to-memory got broken very early by commit 083500baefd5 ("drm: remove DRM_FORMAT_NV12MT", which removed the support for tiled formats, the main feature which made this API somehow useful on Exynos platforms (video codec that time produced only tiled frames, to implement xvideo or any other video overlay, one has to de-tile them for proper display). 4. Broken drivers. Especially once support for IOMMU has been added, it revealed that drivers don't configure DMA operations properly and in many cases operate outside the provided buffers trashing memory around. 5. Need for external patches. Although IPP user-space API has been used in some vendor kernels, but in such cases there were additional patches applied (like reverting mentioned 083500baefd5 patch) what means that those userspace apps which might use it, still won't work with the mainline kernel version. We don't have time machines, so we cannot change it, but Exynos DRM IPP extension should never have been merged to mainline in that form. Exynos IPP subsystem and user-space API will be rewritten, so remove current IPP core code and mark existing drivers as BROKEN. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Acked-by: Daniel Stone <daniels@collabora.com> Acked-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
9cdf0ed2 |
|
14-Mar-2017 |
Krzysztof Kozlowski <krzk@kernel.org> |
drm/exynos: Print kernel pointers in a restricted form Printing raw kernel pointers might reveal information which sometimes we try to hide (e.g. with Kernel Address Space Layout Randomization). Use the "%pK" format so these pointers will be hidden for unprivileged users. Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
3b356785 |
|
03-Feb-2016 |
Marek Szyprowski <m.szyprowski@samsung.com> |
drm/exynos: ipp: fix incorrect format specifiers in debug messages Drivers should use %p for printing pointers instead of hardcoding them as hexadecimal integers. This patch fixes compilation warnings on 64bit architectures. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
977b5067 |
|
03-Feb-2016 |
Marek Szyprowski <m.szyprowski@samsung.com> |
drm/exynos: ipp: fix incorrect format specifiers in debug messages Drivers should use %p for printing pointers instead of hardcoding them as hexadecimal integers. This patch fixes compilation warnings on 64bit architectures. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
fb740cf2 |
|
11-Jan-2016 |
Daniel Vetter <daniel.vetter@ffwll.ch> |
drm: Create drm_send_event helpers Use them in the core vblank code and exynos/vmwgfx drivers. Note that the difference between wake_up_all and _interruptible in vmwgfx doesn't matter since the only waiter is the core code in drm_fops.c. And that is interruptible. v2: Adjust existing kerneldoc too. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> (v1) Acked-by: Daniel Stone <daniels@collabora.com> Cc: Alex Deucher <alexander.deucher@amd.com> Cc: Thomas Hellstrom <thellstrom@vmware.com> Cc: Inki Dae <inki.dae@samsung.com> Link: http://patchwork.freedesktop.org/patch/msgid/1452548477-15905-6-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> [danvet: Squash in compile fixup, spotted by 0-day.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
#
7142a348 |
|
11-Jan-2016 |
Daniel Vetter <daniel.vetter@ffwll.ch> |
drm/exynos: Use the new event init/free functions Also fixes a bug in IPP with not correctly checking/allocating for space in the event space. Not a too serious bug since it's not a real ringbuffer, just a limit to avoid too much kernel allocations. Cc: Rob Clark <robdclark@gmail.com> Cc: Inki Dae <inki.dae@samsung.com> Acked-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Link: http://patchwork.freedesktop.org/patch/msgid/1452548477-15905-4-git-send-email-daniel.vetter@ffwll.ch Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
#
bf56608a |
|
02-Jul-2015 |
Joonyoung Shim <jy0922.shim@samsung.com> |
drm/exynos: remove unnecessary checking to support iommu Already drm_iommu_attach_device and drm_iommu_detach_device check whether support iommu internally, so we don't have to call is_drm_iommu_supported before call them. Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
3c10473b |
|
08-Jun-2015 |
Hyungwon Hwang <human.hwang@samsung.com> |
drm/exynos: ipp: validate a GEM handle with multiple planes FIMC & GSC driver can calculate the offset of planes. So there are use cases which IPP receives just one GEM handle of an image with multiple plane. This patch extends ipp_validate_mem_node() to validate this case. Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
b224fa9f |
|
08-Jun-2015 |
Hyungwon Hwang <human.hwang@samsung.com> |
drm/exynos: ipp: fix wrong index referencing a config element Config depends on the opreation. So it must be referenced by an operation id, not a property id. Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
417133e4 |
|
11-Jun-2015 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos: consolidate driver/device initialization code Code registering different drivers and simple platform devices was dispersed across multiple sub-modules. This patch moves it to one place. As a result initialization code is shorter and cleaner and should simplify further development. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
e44bf6b7 |
|
04-Mar-2015 |
Beata Michalska <b.michalska@samsung.com> |
drm/exynos/ipp: Validate buffer enqueue requests As for now there is no validation of incoming buffer enqueue request as far as the gem buffers are being concerned. This might lead to some undesired cases when the driver tries to operate on invalid buffers (wiht no valid gem object handle i.e.). Add some basic checks to rule out those potential issues. Signed-off-by: Beata Michalska <b.michalska@samsung.com> [mszyprow: rebased onto v4.0-rc1 and adapted to recent ipp changes] Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
be19d933 |
|
23-Nov-2014 |
Julia Lawall <Julia.Lawall@lip6.fr> |
drm/exynos/ipp: fix error return code Propagate the returned error code on failure. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ identifier ret; expression e1,e2; @@ ( if (\(ret < 0\|ret != 0\)) { ... return ret; } | ret = 0 ) ... when != ret = e1 when != &ret *if(...) { ... when != ret = e2 when forall return ret; } // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
a36ed466 |
|
09-Sep-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: traverse ipp drivers list safely On ipp subsystem removal list of ipp drivers is traversed and their members are deleted. To do it properly safe version of list_for_each* should be used. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
18383cb9 |
|
02-Sep-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: add file checks for ioctls Process should not have access to ipp nodes created by another process. The patch adds necessary checks. It also simplifies lookup for command node. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
d9b9734c |
|
02-Sep-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: remove file argument from node related functions Since file pointer is preserved in c_node passing it as argument in node functions is redundant. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
c0592c85 |
|
28-Aug-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: remove events during command cleaning Events were removed only during stop command, as a result there were memory leaks if program prematurely exited. This patch fixes it. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
8aa99dd3 |
|
28-Aug-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: stop hardware before freeing memory Memory shouldn't be freed when hardware is still running. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
05afb1ac |
|
28-Aug-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: replace work_struct casting with better constructs Type casting should be avoided if possible. In case of work_struct it can be simply replaced by reference to member field. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
22e816f8 |
|
28-Aug-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: clean memory nodes on command node cleaning The nodes should be removed before removing command node. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
c4a856a7 |
|
28-Aug-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: move nodes cleaning to separate function The patch introduces ipp_clean_mem_nodes function which replaces redundant code. Additionally memory node function definitions are moved up to increase its visibility. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
6602ffb8 |
|
28-Aug-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: free partially allocated resources on error In case of allocation errors some already allocated buffers were not freed. The patch fixes it. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
985c293d |
|
28-Aug-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: remove unused field in command node Since command node have file pointer dev field became useless. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
21a825ee |
|
28-Aug-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: remove only related commands on file close On file close driver should remove only command nodes created via this file. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
945a0aad |
|
28-Aug-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: move file reference from memory to command node Command node should contain file reference to distinguish commands created by different processes. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
6f7d48ea |
|
28-Aug-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: cancel works before command node clean All pending works should be canceled prior to its removal. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
9b5bd1c4 |
|
28-Aug-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: remove fake pm callbacks PM callbacks in ipp core do nothing, so the patch removes it. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
9cc7d85e |
|
03-Jul-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: simplify ipp_find_driver The patch puts repeated code sequence into one function, removes verbose comments and decreases log verbosity. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
12ff54d2 |
|
03-Jul-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: simplify ipp_create_id There is no gain in passing id by pointer to be filled. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
57ace335 |
|
03-Jul-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: remove redundant messages In case of error callback prints already corresponding message. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
134f0e9b |
|
03-Jul-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: simplify ipp_find_obj The patch simplifies ipp_find_obj and removes debug messages. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
5ece5a1d |
|
03-Jul-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: remove useless registration checks Argument checks are redundant, clients always check ippdrv before calling these functions. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
fb5ee01c |
|
03-Jul-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: simplify memory check function The only thing function should check is if there are buffers in respective queues. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
187d5edf |
|
03-Jul-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: remove incorrect checks of list_first_entry result list_first_entry does not return NULL on empty list so this check does not make sense. Moreover there is already code which prevents calling list_first_entry on empty lists. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
73b00232 |
|
03-Jul-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: remove temporary variable There is no reason to allocate intermediate variable. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
a8ea17f6 |
|
03-Jul-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: correct address type exynos_drm_gem_get_dma_addr returns dma_addr_t, type casting to void* and back is not necessary. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
5c76c5b1 |
|
03-Jul-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: remove struct exynos_drm_ipp_private struct exynos_drm_ipp_private contains only one pointer so all occurrences of the struct can be replaced by the pointer itself. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
c51f73b3 |
|
03-Jul-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: remove unused field from exynos_drm_ipp_private The patch removes unused event_list field from struct exynos_drm_ipp_private. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
60b61c2f |
|
03-Jul-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: remove type casting The patch replaces type casting with proper pointer. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
4d520767 |
|
26-May-2014 |
YoungJun Cho <yj44.cho@samsung.com> |
drm/exynos: ipp: rearrange c_node->event_lock using routine The c_node->event_list should be protected with c_node->event_lock. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Acked-by: Seong-Woo Kim <sw0312.kim@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Tested-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
220db6fe |
|
26-May-2014 |
YoungJun Cho <yj44.cho@samsung.com> |
drm/exynos: ipp: rearrange c_node->mem_lock using routines The c_node->mem_list[] should be protected with c_node->mem_lock. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Acked-by: Seong-Woo Kim <sw0312.kim@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Tested-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
075436b0 |
|
26-May-2014 |
YoungJun Cho <yj44.cho@samsung.com> |
drm/exynos: ipp: add ipp_remove_id() This patch adds ipp_remove_id() for idr resource free. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Acked-by: Seong-Woo Kim <sw0312.kim@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Tested-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
7f5af059 |
|
26-May-2014 |
YoungJun Cho <yj44.cho@samsung.com> |
drm/exynos: ipp: add cmd_lock for cmd_list This patch adds cmd_lock for cmd_list synchronization. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Acked-by: Seong-Woo Kim <sw0312.kim@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Tested-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
4e4fe554 |
|
26-May-2014 |
YoungJun Cho <yj44.cho@samsung.com> |
drm/exynos: ipp: rename cmd_lock to lock The ippdrv->cmd_list requires cmd_lock. So renames cmd_lock to lock for context. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Acked-by: Seong-Woo Kim <sw0312.kim@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Tested-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
ebaf05c8 |
|
26-May-2014 |
YoungJun Cho <yj44.cho@samsung.com> |
drm/exynos: ipp: remove duplicated setting This patch removes duplicated setting. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Acked-by: Seong-Woo Kim <sw0312.cho@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Tested-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
c66ce40b |
|
26-May-2014 |
YoungJun Cho <yj44.cho@samsung.com> |
drm/exynos: ipp: remove usless list_empty() functions list_for_each_entry() handles empty lists, so there is no need to check whether the list is empty first. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Acked-by: Seong-Woo Kim <sw0312.kim@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Tested-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
31646054 |
|
18-May-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: simplify property list allocation prop_list is always allocated, so instead of allocating it dynamically the pointer can be replaced by the structure itself. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
f51bceec |
|
18-May-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: correct ipp_id field initialization prop_list.ipp_id field is not initialized properly. The patch fixes it, additionally it removes redundant field from ippdrv. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
396e103e |
|
18-May-2014 |
Andrzej Hajda <a.hajda@samsung.com> |
drm/exynos/ipp: fix get_property IOCTL Due to incorrect assignment in EXYNOS_IPP_GET_PROPERTY IOCTL handler this IOCTL did not work at all. The patch fixes it. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
9fca9acf |
|
11-Mar-2014 |
Geert Uytterhoeven <geert+renesas@linux-m68k.org> |
drm/exynos: Spelling s/contro/control/ Signed-off-by: Geert Uytterhoeven <geert+renesas@linux-m68k.org> Cc: David Airlie <airlied@linux.ie> Cc: dri-devel@lists.freedesktop.org Signed-off-by: Jiri Kosina <jkosina@suse.cz>
|
#
4fe25b82 |
|
15-Jan-2014 |
Sachin Kamat <sachin.kamat@linaro.org> |
drm/exynos: Fix trivial typo Changed quf -> qbuf. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
86ac5b84 |
|
15-Jan-2014 |
Tushar Behera <tushar.behera@linaro.org> |
drm/exynos: Fix multiplatform breakage for ipp/gsc There is no need to include "plat/map-base.h" in ipp driver. Remove this and enable this driver for multi-platform. However gsc driver is not multiplatform compliant yet, so make the compilation conditional upon !ARCH_MULTIPLATFORM. Signed-off-by: Tushar Behera <tushar.behera@linaro.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
c6b78bc8 |
|
24-Oct-2013 |
Masanari Iida <standby24x7@gmail.com> |
drm: fix typos in comment in /gpu/drm/exynos Correct spelling typo in drivers/gpu/drm/exynos Signed-off-by: Masanari Iida <standby24x7@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
|
#
38bb5253 |
|
19-Aug-2013 |
Sachin Kamat <sachin.kamat@linaro.org> |
drm/exynos: Remove redundant error messages kzalloc already has built-in error messages. Hence remove additional ones. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
db70d16e |
|
26-Jul-2013 |
Sachin Kamat <sachin.kamat@linaro.org> |
drm/exynos: Remove module.h header inclusion Remove module.h header file inclusion from files since they do not use/refer to any code from that file. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
be348790 |
|
04-Jul-2013 |
Wei Yongjun <yongjun_wei@trendmicro.com.cn> |
drm/exynos: exynos_drm_ipp: fix return value check In case of error, the function ipp_find_obj() returns ERR_PTR() and never returns NULL. The NULL test in the return value check should be replaced with IS_ERR(). Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn> Reviewed-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
2fa7b74c |
|
10-Jun-2013 |
Sachin Kamat <sachin.kamat@linaro.org> |
drm/exynos: exynos_drm_ipp: Remove redundant break statement 'break' after goto statement is redundant. Silences the following message: drivers/gpu/drm/exynos/exynos_drm_ipp.c:1067 exynos_drm_ipp_check_valid() info: ignoring unreachable code. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
cbc4c33d |
|
11-Jun-2013 |
YoungJun Cho <yj44.cho@samsung.com> |
drm/exynos: Clean up logs for DRM_ERROR / DRM_DEBUG_KMS This patch cleans up logs for DRM_ERROR / DRM_DEBUG_KMS to avoid logging duplicated function name because the macros already contain __func__. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
bca34c9a |
|
11-Jun-2013 |
YoungJun Cho <yj44.cho@samsung.com> |
drm/exynos: Remove tracking log functions This patch removes tracking log functions which were used to debug in the early development stage and are not so important as were. So remove them for code clean up. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
d873ab99 |
|
22-May-2013 |
Seung-Woo Kim <sw0312.kim@samsung.com> |
drm/exynos: cleanup device pointer usages Struct device pointer got from platform device pointer is already alsigned as variable, but some functions do not use device pointer. So this patch replaces thoes usages. Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
f0250458 |
|
28-Apr-2013 |
Sachin Kamat <sachin.kamat@linaro.org> |
drm/exynos: exynos_drm_ipp: Fix incorrect usage of IS_ERR_OR_NULL None of these functions actually return a NULL pointer. Hence use IS_ERR() instead. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
43f41900 |
|
22-Apr-2013 |
Seung-Woo Kim <sw0312.kim@samsung.com> |
drm/exynos: added ipp device registration to drm driver This patch added exynos-drm-ipp platform device registration to the exynos drm driver. When DT is enabled, platform devices need to be registered within the driver code. This patch fits the requirement of both DT and Non DT based drm drivers. Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Donghwa Lee <dh09.lee@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
8550cb2e |
|
27-Feb-2013 |
Tejun Heo <tj@kernel.org> |
drm/exynos: convert to idr_alloc() Convert to the much saner new idr interface. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: David Airlie <airlied@linux.ie> Cc: Kukjin Kim <kgene.kim@samsung.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
#
4d53233a |
|
27-Feb-2013 |
Tejun Heo <tj@kernel.org> |
drm: don't use idr_remove_all() idr_destroy() can destroy idr by itself and idr_remove_all() is being deprecated. Drop its usage. * drm_ctxbitmap_cleanup() was calling idr_remove_all() but forgetting idr_destroy() thus leaking all buffered free idr_layers. Replace it with idr_destroy(). Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: David Airlie <airlied@linux.ie> Cc: Inki Dae <inki.dae@samsung.com> Cc: Joonyoung Shim <jy0922.shim@samsung.com> Cc: Seung-Woo Kim <sw0312.kim@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
#
0bc4a0aa |
|
13-Jan-2013 |
Sachin Kamat <sachin.kamat@linaro.org> |
drm/exynos: Make ipp_handle_cmd_work static Fixes the following warning: drivers/gpu/drm/exynos/exynos_drm_ipp.c:872:6: warning: symbol 'ipp_handle_cmd_work' was not declared. Should it be static? Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
bfb6ed26 |
|
24-Dec-2012 |
Sachin Kamat <sachin.kamat@linaro.org> |
drm/exynos: Use devm_kzalloc in exynos_drm_ipp.c devm_kzalloc makes the code simpler by eliminating the need for explicit freeing. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
6fe891f6 |
|
22-Dec-2012 |
Eunchul Kim <chulspro.kim@samsung.com> |
drm/exynos: correct some comments to abbreviation. This patch cleanup corrects some comments to abbreviation. We would like to prevent it stands misunderstood. Signed-off-by: Eunchul Kim <chulspro.kim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
0ca824c7 |
|
22-Dec-2012 |
Eunchul Kim <chulspro.kim@samsung.com> |
drm/exynos: remove needless error handling to property. This patch removes property error handling. because property couldn't be NULL. Signed-off-by: Eunchul Kim <chulspro.kim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
7259c3d6 |
|
22-Dec-2012 |
Eunchul Kim <chulspro.kim@samsung.com> |
drm/exynos: change member variable name. This patch change current command name from cmd to c_node. because we are using the member name, 'cmd', for command control ioctl in another structure. so, this patch changes it to c_node to avoid such confusing. Signed-off-by: Eunchul Kim <chulspro.kim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
#
56550d94 |
|
21-Dec-2012 |
Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
Drivers: gpu: remove __dev* attributes. CONFIG_HOTPLUG is going away as an option. As a result, the __dev* markings need to be removed. This change removes the use of __devinit, __devexit_p, and __devexit from these drivers. Based on patches originally written by Bill Pemberton, but redone by me in order to handle some of the coding style issues better, by hand. Cc: Bill Pemberton <wfp5p@virginia.edu> Cc: David Airlie <airlied@linux.ie> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
#
c12e2617 |
|
14-Dec-2012 |
Eunchul Kim <chulspro.kim@samsung.com> |
drm/exynos: add iommu support for ipp This patch adds iommu support for IPP subsystem framework. For this, it adds subdrv_probe/remove callback to enable or disable ipp iommu. We can get or put device address to a gem handle from user through exynos_drm_gem_get/put_dma_addr(). Signed-off-by: Eunchul Kim <chulspro.kim@samsung.com> Signed-off-by: Jinyoung Jeon <jy0.jeon@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
|
#
cb471f14 |
|
14-Dec-2012 |
Eunchul Kim <chulspro.kim@samsung.com> |
drm/exynos: add ipp subsystem This patch adds Image Post Processing(IPP) support for exynos drm driver. IPP supports image scaler/rotator and input/output DMA operations using IPP subsystem framework to control FIMC, Rotator and GSC hardware and supports some user interfaces for user side. And each IPP-based drivers support Memory to Memory operations with various converting. And in case of FIMC hardware, it also supports Writeback and Display output operations through local path. Features: - Memory to Memory operation support. - Various pixel formats support. - Image scaling support. - Color Space Conversion support. - Image crop operation support. - Rotate operation support to 90, 180 or 270 degree. - Flip operation support to vertical, horizontal or both. - Writeback operation support to display blended image of FIMD fifo on screen A summary to IPP Subsystem operations: First of all, user should get property capabilities from IPP subsystem and set these properties to hardware registers for desired operations. The properties could be pixel format, position, rotation degree and flip operation. And next, user should set source and destination buffer data using DRM_EXYNOS_IPP_QUEUE_BUF ioctl command with gem handles to source and destinition buffers. And next, user can control user-desired hardware with desired operations such as play, stop, pause and resume controls. And finally, user can aware of dma operation completion and also get destination buffer that it contains user-desried result through dequeue command. IOCTL commands: - DRM_EXYNOS_IPP_GET_PROPERTY . get ipp driver capabilitis and id. - DRM_EXYNOS_IPP_SET_PROPERTY . set format, position, rotation, flip to source and destination buffers - 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 . a event to notify dma operation completion to user side. Basic control flow: Open -> Get properties -> User choose desired IPP sub driver(FIMC, Rotator or GSCALER) -> Set Property -> Create gem handle -> Enqueue to source and destination buffers -> Command control(Play) -> Event is notified to User -> User gets destinition buffer complated -> (Enqueue to source and destination buffers -> Event is notified to User) * N -> Queue/Dequeue to source and destination buffers -> Command control(Stop) -> Free gem handle -> Close Changelog v1 ~ v5: - added comments, code fixups and cleanups. Signed-off-by: Eunchul Kim <chulspro.kim@samsung.com> Signed-off-by: Jinyoung Jeon <jy0.jeon@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
|