summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/exynos/exynos_drm_fimc.c
Commit message (Collapse)AuthorAgeFilesLines
* drm: remove DRM_FORMAT_NV12MTDaniel Vetter2015-02-041-12/+2Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So this has been merged originally in commit 83052d4d5cd518332440bb4ee63d68bb5f744e0f Author: Seung-Woo Kim <sw0312.kim@samsung.com> Date: Thu Dec 15 15:40:55 2011 +0900 drm: Add multi buffer plane pixel formats which hasn't seen a lot of review really. The problem is that it's not a real pixel format, but just a different way to lay out NV12 pixels in macroblocks, i.e. a tiling format. The new way of doing this is with the soon-to-be-merged fb modifiers. This was brough up in some long irc discussion around the entire topic, as an example of where things have gone wrong. Luckily we can correct the mistake: - The kms side support for NV12MT is all dead code because format_check in drm_crtc.c never accepted NV12MT. - The gem side for the gsc support doesn't look better: The code forgets to set the pixel format and makes a big mess with the tiling mode bits, inadvertedly setting them all. Conclusion: This never really worked (at least not in upstream) and hence we can safely correct our mistake here. Cc: Seung-Woo Kim <sw0312.kim@samsung.com> Cc: Inki Dae <inki.dae@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Cc: Rob Clark <robclark@freedesktop.org> Cc: Daniel Stone <daniel@fooishbar.org> Cc: Damien Lespiau <damien.lespiau@intel.com> Reviewed-by: Rob Clark <robclark@freedesktop.org> Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Acked-by: Joonyoung Shim <jy0922.shim@samsung.com> Acked-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
* drm / exynos / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PMRafael J. Wysocki2014-12-041-1/+1
| | | | | | | | | | | | | After commit b2b49ccbdd54 (PM: Kconfig: Set PM_RUNTIME if PM_SLEEP is selected) PM_RUNTIME is always set if PM is set, so #ifdef blocks depending on CONFIG_PM_RUNTIME may now be changed to depend on CONFIG_PM. Replace CONFIG_PM_RUNTIME with CONFIG_PM in 4 files under gpu/drm/exynos/. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Reviewed-by: Jingoo Han <jg1.han@samsung.com>
* drm/exynos/fimc: fix source buffer registersAndrzej Hajda2014-09-191-8/+8
| | | | | | | | | | FIMC in default mode of operation uses only one input buffer, but the driver used also second buffer, as a result only the first frame was processed correctly. 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>
* drm/exynos/fimc: simplify buffer queuingAndrzej Hajda2014-09-191-49/+15Star
| | | | | | | | | The patch removes redundant checks, redundant HW reads and simplifies code. 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>
* drm/exynos/fimc: do not enable fimc twiceAndrzej Hajda2014-09-191-4/+1Star
| | | | | | | | The patch removes redundant H/W activation. 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>
* drm/exynos/fimc: avoid clearing overflow bitsAndrzej Hajda2014-09-191-3/+0Star
| | | | | | | | Overflow bits shall be cleared by H/W. 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>
* drm/exynos/ipp: replace work_struct casting with better constructsAndrzej Hajda2014-09-191-1/+1
| | | | | | | | | 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>
* drm/exynos: Add MODULE_DEVICE_TABLE entries for various componentsSjoerd Simons2014-08-041-0/+1
| | | | | | | | | Add MODULE_DEVICE_TABLE calls for the various OF match tables that currently don't have one. This allows the module to be autoloaded based on devicetree information. Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk> Signed-off-by: Inki Dae <inki.dae@samsung.com>
* drm/exynos/fimc: simplify and rename fimc_dst_get_buf_seqAndrzej Hajda2014-06-011-9/+5Star
| | | | | | | | | fimc_dst_get_buf_seq returns number of buffers so the name should be fimc_dst_get_buf_count. Function body has been simplified. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
* drm/exynos/fimc: replace mutex by spinlockAndrzej Hajda2014-06-011-5/+6
| | | | | | | | Function fimc_dst_set_buf_seq is called by irq handler so it should not use mutexes. This patch fixes it. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
* drm/exynos/fimc: replace hw access macros with functionsAndrzej Hajda2014-06-011-161/+150Star
| | | | | | | | HW access macros implicitly depended on presence of ctx local variable. This patch replaces them with C functions. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
* drm/exynos/fimc: simplify irq masking functionAndrzej Hajda2014-06-011-16/+9Star
| | | | | | | | | The name fimc_handle_irq suggests it is irq handler, but the function is for irq mask configuration. The patch renames the function to fimc_mask_irq and removes unused arguments. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
* drm/exynos/fimc: simplify pre-scaler ratio calculationAndrzej Hajda2014-06-011-43/+13Star
| | | | | | | | The patch replaces dedicated function for scaling ratio calculation by fls calls. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
* drm/exynos/ipp: simplify property list allocationAndrzej Hajda2014-06-011-8/+2Star
| | | | | | | | 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>
* treewide: Fix typos in printkMasanari Iida2013-12-191-1/+1
| | | | | | | | Correct spelling typo in various part of kernel Signed-off-by: Masanari Iida <standby24x7@gmail.com> Acked-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* drm/exynos: Remove redundant error messagesSachin Kamat2013-09-051-3/+1Star
| | | | | | | | 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>
* drm/exynos: Add missing of.h header includeSachin Kamat2013-09-051-0/+1
| | | | | | | Add of.h explicitly for of_* APIs. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
* drm/exynos: Add missing includesMark Brown2013-09-051-0/+1
| | | | | | | | | Ensure that all externally accessed functions are correctly prototyped when defined in each file by making sure the headers with the protoypes are included in the file with the definition. Signed-off-by: Mark Brown <broonie@linaro.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
* drm/exynos: Remove module.h header inclusionSachin Kamat2013-07-291-1/+0Star
| | | | | | | | 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>
* drm/exynos: Clean up logs for DRM_ERROR / DRM_DEBUG_KMSYoungJun Cho2013-06-281-60/+53Star
| | | | | | | | | | 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>
* drm/exynos: Remove tracking log functionsYoungJun Cho2013-06-281-16/+0Star
| | | | | | | | | | 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>
* drm/exynos: replace request_threaded_irq with devm functionSeung-Woo Kim2013-05-231-6/+2Star
| | | | | | | | devm_request_threaded_irq is used instead of request_threaded_irq and free_irq is removed. Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
* drm/exynos: fix build warnings from ipp fimcSeung-Woo Kim2013-05-231-1/+1
| | | | | | | | Becuase of order of headers, there are build warnings and they are fixed with this patch. Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
* drm/exynos: cleanup device pointer usagesSeung-Woo Kim2013-05-231-1/+1
| | | | | | | | | 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>
* drm/exynos: add device tree support for fimc ipp driverSylwester Nawrocki2013-04-291-52/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds OF initialization support for the FIMC driver. The binding documentation can be found at Documentation/devicetree/ bindings/media/samsung-fimc.txt. The syscon regmap interface is used to serialize access to the shared CAMBLK registers from within the V4L2 FIMC-IS and the DRM FIMC drivers. The DRM driver uses this interface for setting up the FIFO data link between FIMD and FIMC IP blocks, while the V4L2 one for setting up a data link between the camera ISP and FIMC for camera capture. The CAMBLK registers are not accessed any more through a statically mapped IO. Synchronized access to these registers is required for simultaneous operation of the camera ISP and the DRM IPP on Exynos4x12. The driver data and driver_ids static data structures are removed since Exynos4 is going to be a dt-only platform and there is currently no board file in mainline that defines platform data for the FIMC IPP, i.e. uses it. Camera input signal polarities are not currently parsed from the device tree. Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
* drm/exynos: rework fimc clocks handlingSylwester Nawrocki2013-04-291-70/+99
| | | | | | | | | | | | | | | | The clocks handling is refactored and a "mux" clock handling is added to account for changes in the clocks driver. After switching to the common clock framework the sclk_fimc clock is now split into two clocks: a gate and a mux clock. In order to retain the exisiting functionality two additional consumer clocks are passed to the driver from device tree: "mux" and "parent". Then the driver sets "parent" clock as a parent clock of the "mux" clock. These two additional clocks are optional, and should go away when there is a standard way of setting up parent clocks on DT platforms. Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
* drm/exynos: remove redundant devm_kfree()Sylwester Nawrocki2013-04-291-2/+0Star
| | | | | | | | | | | There is no need for explicit calls of devm_kfree(), as the allocated memory will be freed during driver's detach. Remove the redundant devm_kfree() calls from probe() and remove() callbacks. Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
* drm: Convert to devm_ioremap_resource()Thierry Reding2013-01-251-5/+3Star
| | | | | | | | | | | | Convert all uses of devm_request_and_ioremap() to the newly introduced devm_ioremap_resource() which provides more consistent error handling. devm_ioremap_resource() provides its own error messages so all explicit error messages can be removed from the failure code paths. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Cc: David Airlie <airlied@linux.ie> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linuxLinus Torvalds2013-01-091-85/+39Star
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pull drm update from Dave Airlie: "Exynos and Radeon mostly, with a dma-buf and ttm fix thrown in. It's a bit big but its mostly exynos license fix ups and I'd rather not hold those up since its legally stuff. Radeon has a couple of fixes from dma engine work, TTM is just a locking fix, and dma-buf fix has been hanging around and I finally got a chance to review it." * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (30 commits) drm/ttm: fix fence locking in ttm_buffer_object_transfer drm/prime: drop reference on imported dma-buf come from gem drm/radeon: add quirk for d3 delay during switcheroo poweron for apple macbooks drm/exynos: move finish page flip to a common place drm/exynos: fimd: modify condition in fimd resume drm/radeon: fix DMA CS parser for r6xx linear copy packet drm/radeon: split r6xx and r7xx copy_dma functions drm/exynos: Use devm_clk_get in exynos_drm_gsc.c drm/exynos: Remove redundant NULL check in exynos_drm_gsc.c drm/exynos: Remove explicit freeing using devm_* APIs in exynos_drm_gsc.c drm/exynos: Use devm_clk_get in exynos_drm_rotator.c drm/exynos: Remove redundant NULL check in exynos_drm_rotator.c drm/exynos: Remove unnecessary devm_* freeing APIs in exynos_drm_rotator.c drm/exynos: Use devm_clk_get in exynos_drm_fimc.c drm/exynos: Remove redundant NULL check drm/exynos: Remove explicit freeing using devm_* APIs in exynos_drm_fimc.c drm/exynos: Use devm_kzalloc in exynos_drm_ipp.c drm/exynos: fix gem buffer allocation type checking drm/exynos: remove needless parenthesis. drm/exynos: fix incorrect interrupt induced by m2m operation. ...
| * drm/exynos: Use devm_clk_get in exynos_drm_fimc.cSachin Kamat2013-01-041-36/+9Star
| | | | | | | | | | | | | | | | This eliminates the need for explicit clk_put and makes the cleanup and exit path code simpler. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
| * drm/exynos: Remove redundant NULL checkSachin Kamat2013-01-041-6/+0Star
| | | | | | | | | | | | | | | | devm_request_and_ioremap API checks for NULL. Hence explicit NULL check is not necessary. Saves some code. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
| * drm/exynos: Remove explicit freeing using devm_* APIs in exynos_drm_fimc.cSachin Kamat2013-01-041-21/+9Star
| | | | | | | | | | | | | | | | | | devm_* APIs are device managed and get freed automatically when the device detaches. Thus explicit freeing is not needed. This saves some code. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
| * drm/exynos: remove needless parenthesis.Eunchul Kim2013-01-041-1/+1
| | | | | | | | | | | | | | | | This patch removes needless parenthesis. This was pointed out but in case of fimc side. we missed it. Signed-off-by: Eunchul Kim <chulspro.kim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
| * drm/exynos: fix incorrect interrupt induced by m2m operation.Jinyoung Jeon2013-01-041-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | This patch fixes incorrect interrupt induced by m2m operation. the m2m operation calls s/w reset every frame but there is the case that the interrupt to m2m operation occures after s/w reset sometimes. So this patch makes dma and capture operations stop at s/w reset to avoid incorrect interrupt. Signed-off-by: Jinyoung Jeon <jy0.jeon@samsung.com> Signed-off-by: Eunchul Kim <chulspro.kim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
| * drm/exynos: remove color bar pattern operation.JoongMock Shin2013-01-041-6/+3Star
| | | | | | | | | | | | | | | | | | | | This patch removes color bar pattern register because we don't use the register anymore. because it doesn't support color bar feature for writeback operation. camera driver only supports color bar feature. but IPP doesn't support camera driver. Signed-off-by: JoongMock Shin <jmock.shin@samsung.com> Signed-off-by: Eunchul Kim <chulspro.kim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
| * drm/exynos: correct some comments to abbreviation.Eunchul Kim2013-01-041-1/+1
| | | | | | | | | | | | | | | | 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>
| * drm/exynos: consider both case of vflip and hflip.Eunchul Kim2013-01-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | This patch considers both case of vflip and hflip. If we want that the contents in buffer to be rotated to 180 degree, then we can use h,vflip or 180 degree. Changelog v2: - added EXYNOS_DRM_FLIP_BOTH enum value to avoid build warnning. Signed-off-by: Eunchul Kim <chulspro.kim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
| * drm/exynos: remove needless error handling to property.Eunchul Kim2013-01-041-12/+0Star
| | | | | | | | | | | | | | 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>
| * drm/exynos: change member variable name.Eunchul Kim2013-01-041-4/+4
| | | | | | | | | | | | | | | | | | 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>
* | Drivers: gpu: remove __dev* attributes.Greg Kroah-Hartman2013-01-041-3/+3
|/ | | | | | | | | | | | | | | 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>
* drm/exynos: add fimc ipp driverEunchul Kim2012-12-141-0/+2001
FIMC is stand for Fully Interfactive Mobile Camera and supports image scaler/rotator/crop/flip/csc and input/output DMA operations and also supports writeback and display output operations. This driver is registered to IPP subsystem framework to be used by user side and user can control the FIMC hardware through some interfaces of IPP subsystem framework. Changelog v6: - fix build warning. Changelog v1 ~ v5: - add 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>