summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/exynos/exynos_drm_dsi.c
AgeCommit message (Collapse)Author
2017-02-13drm/exynos: dsi: Remove bridge node reference in removaltizen/tizenHoegeun Kwon
Since bridge node is referenced during in the probe, it should be released on removal. Change-Id: I54c0759098d44eff327889e6c21d6a8e585bbb38 Suggested-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
2016-12-14drm/exynos/dsi: mimic indentation of mainline driverAndrzej Hajda
This patch synchronizes indentation from mainline driver. It helps in developing dsi driver in both branches. Change-Id: I3ad3704d0cf9d58a4021cbc8c52ec4201a5f5724 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
2016-12-14drm/exynos/dsi: use of_graph_get_endpoint_by_regs helperPhilipp Zabel
This allows to remove the local of_graph_get_port_by_reg(), of_graph_get_endpoint_by_reg(), and of_get_child_by_name_reg() functions. Change-Id: Ia8d8e6f9f34bbde91a5f8d9c600a2b8fe5d3f80d Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Inki Dae <inki.dae@samsung.com>
2016-12-14drm/exynos/dsi: use core helper to create DSI packetAndrzej Hajda
Core provides generic helper to create DSI packet, use it instead of custom code. Change-Id: I365c64ba52b85ac1b39dbdab8bb2ccdf6620b279 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2016-12-14drm/exynos/dsi: constify read-only variablesAndrzej Hajda
Change-Id: Ie9d4cea15e40408ed3a8c8f84002da465c0cae90 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
2016-12-14drm/exynos: support exynos5422 mipi-dsiAndrzej Hajda
This patch supports mipi dsi for exynos5422. The dsi register offsets of the exynos5422 are similar with exynos5433. However, the values of the registers are quite different from the exynos5433. For example, the exynos5422 uses sw reset like previous chips. Change-Id: I82f19afc66c2893a1bfb9d09ea56e631f67921ae Signed-off-by: Chanho Park <chanho61.park@samsung.com> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2016-12-14drm/exynos/dsi: rename variables to match mainline kernelAndrzej Hajda
Decreasing number of differences in tizen and mainline should simplify development of both branches. Change-Id: I7b0ef48f01a9681e4661434916d410e1d173a30d Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
2016-12-14drm/exynos/dsi: replace registry access macros with functionsAndrzej Hajda
Functions are preferred over macros as more type-safe. Change-Id: I24a618d1c8189ad5606db4529178811957b062bb Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
2016-12-14drm/exynos: dsi: fix pm_runtime_get() result check in dsi power on pathMarek Szyprowski
pm_runtime_get_sync() might return -EACCES if it is called during system global suspend/resume procedure. In such case the correctly increases device usage count. Its return value should be ignored in such case. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Change-Id: Ic4167e2618a037716846f42f91951808dfb42b80
2016-12-14drm/exynos/dsi: make te-gpios optionalAndrzej Hajda
In case of HW-TRIGGER te-gpios interrupt is not necessary. With this patch we can get rid of 60 interrupt callbacks per second. Change-Id: Ifbe6b55eefe41e5de63e0be58c7c34054d8e73be Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
2016-12-14drm/exynos/dsi: mask frame-done interruptAndrzej Hajda
DSI driver is not really interested in this interrupt. It causes only unnecessary code execution of interrupt handler and could possibly cause FIFO overflow - as it triggers DSI interrupt handler to process next DSI transfer. With this patch we will get rid of about 30 IRQ handler calls per second. Change-Id: I51b6a205cf235fab824888364980d358950b8c85 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
2016-12-14drm/exynos: dsi: add simple runtime pm supportMarek Szyprowski
Add simple runtime pm to let driver to control power domain. No runtime pm callbacks are defined, because state of the driver is already handled by the DRM core. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> [Add error routine for component_add like decon driver from probe] Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Change-Id: I77cdcf9b669c2bee45c14ba8d86f7fd1bbf8ba9c
2016-12-14drm/exynos: fix waiting pageflip on i80 panelJoonyoung Shim
If panel is use i80 interface, encoder should wait to complete prior pageflip before encoder disables panel because te interrupt is happened by panel. Upstream Exynos DRM driver doesn't need this because Exynos atomic commit procedures already does this job of waiting for pending updates to finish. Refer the commit c4533665d819 ("drm/exynos: wait all planes updates to finish") applied from v4.3-rc1 Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> [fix build issue because of removed pending_flip] Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2016-12-14drm/exynos: fix broken component binding in case of multiple pipelinesAndrzej Hajda
In case there are multiple pipelines and deferred probe occurs, only components of first pipeline were bound. As a result only one pipeline were available. The main cause of this issue was dynamic generation of component match table - every component driver during probe registered itself on helper list, if there was at least one pipeline present on this list component match table were created without deferred components. This patch removes this helper list, instead it creates match table from existing devices requiring exynos_drm KMS drivers. This way match table do not depends on probe/deferral order and contains all KMS components. As a side effect patch makes the code cleaner and significantly smaller. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
2016-12-14drm/exynos: dsi: introduce new state for video output availabilityHyungwon Hwang
Because DSIM_STATE_ENABLED becomes to represent whether DSI can be used for data transfer or not, this state can be used for checking whether video ouput is available or not anymore. So new state have to be introduced. The stete DSIM_STATE_VIDOUT_AVAILABLE represents whether DSI is prepared for outputting video to a panel or not. Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2016-12-14drm/exynos: dsi: check whether dsi is enabled before sending dataHyungwon Hwang
exynos_dsi_host_transfer() can be called through a panel driver while DSI is turning down. It is possible because the function checks only whether DSI is initialized or not, and there is a moment which DSI is set by uninitialized, but DSI is still turning down. To prevent it, DSI must be set by disabled before starting to be turned down, and exynos_dsi_host_transfer() must check whether DSI is enabled or not. Kernel dump: [ 4721.351448] Unhandled fault: synchronous external abort (0x96000210) at 0xffffff800015e018 [ 4721.351809] Internal error: : 96000210 [#1] PREEMPT SMP [ 4721.352031] Modules linked in: [ 4721.352173] CPU: 2 PID: 300 Comm: deviced Tainted: G W 4.0.4-01017-g7964a87 #1 [ 4721.353989] Hardware name: Samsung TM2 board (DT) [ 4721.358852] task: ffffffc0a0b70000 ti: ffffffc0a00ec000 task.ti: ffffffc0a00ec000 [ 4721.366327] PC is at exynos_dsi_enable_lane+0x14/0x5c [ 4721.371353] LR is at exynos_dsi_host_transfer+0x834/0x8d8 [ 4721.376731] pc : [<ffffffc000432bcc>] lr : [<ffffffc000434590>] pstate: 60000145 [ 4721.384107] sp : ffffffc0a00efbe0 [ 4721.387405] x29: ffffffc0a00efbe0 x28: ffffffc0a00ec000 [ 4721.392699] x27: ffffffc000968000 x26: 0000000000000040 [ 4721.397994] x25: ffffffc000f74dc0 x24: ffffffc0a00efec8 [ 4721.403290] x23: ffffffc0a4815400 x22: ffffffc0009f2729 [ 4721.408584] x21: ffffffc0a00efcc8 x20: ffffffc0a4a2a848 [ 4721.413879] x19: ffffffc0a4a2a818 x18: 0000000000000004 [ 4721.419173] x17: 0000007faa5cddf0 x16: ffffffc0001a40a8 [ 4721.424469] x15: 0000000000000009 x14: 000000000000000d [ 4721.429762] x13: 6e6e6f63206b726f x12: 0000000000000010 [ 4721.435058] x11: 0101010101010101 x10: 0000000000000000 [ 4721.440353] x9 : 000000000000000a x8 : 8386838282818381 [ 4721.445648] x7 : ffffffc0a201efe8 x6 : 0000000000000000 [ 4721.450943] x5 : 00000000fffffffa x4 : ffffffc0a201f170 [ 4721.456237] x3 : ffffff800015e000 x2 : ffffff800015e018 [ 4721.461531] x1 : 000000000000000f x0 : ffffffc0a4a2a818 [ 4721.466826] [ 4721.468305] Process deviced (pid: 300, stack limit = 0xffffffc0a00ec028) [ 4721.474989] Stack: (0xffffffc0a00efbe0 to 0xffffffc0a00f0000) [ 4721.480720] fbe0: a00efca0 ffffffc0 0042c944 ffffffc0 a0f2d680 ffffffc0 00000024 00000000 [ 4721.488895] fc00: a4b6d000 ffffffc0 009f2729 ffffffc0 a4815400 ffffffc0 a00efec8 ffffffc0 Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2016-12-14Revert "drm/exynos: dsi: check whether dsi is enabled before sending data"Hyungwon Hwang
commit dcdc0fd330614aeed604d473e85ae788b93772ff is wrong, and makes problems in displaying. So this patch revert it. Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2016-12-14drm/exynos: dsi: check whether dsi is enabled before sending dataHyungwon Hwang
exynos_dsi_host_transfer() can be called through a panel driver while DSI is turning down. It is possible because the function checks only whether DSI is initialized or not, and there is a moment which DSI is set by uninitialized, but DSI is still turning down. To prevent it, DSI must be set by disabled before starting to be turned down, and exynos_dsi_host_transfer() must check whether DSI is enabled or not. Kernel dump: [ 4721.351448] Unhandled fault: synchronous external abort (0x96000210) at 0xffffff800015e018 [ 4721.351809] Internal error: : 96000210 [#1] PREEMPT SMP [ 4721.352031] Modules linked in: [ 4721.352173] CPU: 2 PID: 300 Comm: deviced Tainted: G W 4.0.4-01017-g7964a87 #1 [ 4721.353989] Hardware name: Samsung TM2 board (DT) [ 4721.358852] task: ffffffc0a0b70000 ti: ffffffc0a00ec000 task.ti: ffffffc0a00ec000 [ 4721.366327] PC is at exynos_dsi_enable_lane+0x14/0x5c [ 4721.371353] LR is at exynos_dsi_host_transfer+0x834/0x8d8 [ 4721.376731] pc : [<ffffffc000432bcc>] lr : [<ffffffc000434590>] pstate: 60000145 [ 4721.384107] sp : ffffffc0a00efbe0 [ 4721.387405] x29: ffffffc0a00efbe0 x28: ffffffc0a00ec000 [ 4721.392699] x27: ffffffc000968000 x26: 0000000000000040 [ 4721.397994] x25: ffffffc000f74dc0 x24: ffffffc0a00efec8 [ 4721.403290] x23: ffffffc0a4815400 x22: ffffffc0009f2729 [ 4721.408584] x21: ffffffc0a00efcc8 x20: ffffffc0a4a2a848 [ 4721.413879] x19: ffffffc0a4a2a818 x18: 0000000000000004 [ 4721.419173] x17: 0000007faa5cddf0 x16: ffffffc0001a40a8 [ 4721.424469] x15: 0000000000000009 x14: 000000000000000d [ 4721.429762] x13: 6e6e6f63206b726f x12: 0000000000000010 [ 4721.435058] x11: 0101010101010101 x10: 0000000000000000 [ 4721.440353] x9 : 000000000000000a x8 : 8386838282818381 [ 4721.445648] x7 : ffffffc0a201efe8 x6 : 0000000000000000 [ 4721.450943] x5 : 00000000fffffffa x4 : ffffffc0a201f170 [ 4721.456237] x3 : ffffff800015e000 x2 : ffffff800015e018 [ 4721.461531] x1 : 000000000000000f x0 : ffffffc0a4a2a818 [ 4721.466826] [ 4721.468305] Process deviced (pid: 300, stack limit = 0xffffffc0a00ec028) [ 4721.474989] Stack: (0xffffffc0a00efbe0 to 0xffffffc0a00f0000) [ 4721.480720] fbe0: a00efca0 ffffffc0 0042c944 ffffffc0 a0f2d680 ffffffc0 00000024 00000000 [ 4721.488895] fc00: a4b6d000 ffffffc0 009f2729 ffffffc0 a4815400 ffffffc0 a00efec8 ffffffc0 Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2016-12-14drm/exynos: dsi: enable lanes before configuring the lanes' clockHyungwon Hwang
Function reset doesn't reset the configuration for lanes, so dsi could be configured inappropriately when it turns on. So the lanes must be enabled properly before configuring the clocks of them. Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2016-12-14LOCAL / drm/exynos: dsi: Fix NULL pointer dereference on memory allocation errorKrzysztof Kozlowski
Driver did not checked the result of devm_kzalloc() and dereferenced it always. Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2016-12-14Revert "temporary / remove dsi phy related code"Hyungwon Hwang
This reverts the commit 38bf1efd189fb4578b97bbf857eeb12d987f9021 ("temporary / remove dsi phy related code"). Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2016-12-14drm/exynos: dsi: add the backward compatibility for the renamed clockHyungwon Hwang
From the commit a45abd04a46048a4956408543cdbdd8bdedd3215 ("drm/exynos: dsi: rename pll_clk to sclk_clk'), the compiled dtb which contains 'pll_clk' becomes not compatible with the current DSI driver. This patch adds the backward compatibility for this issue. Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2016-12-14LOCAL / drm/exynos: fix the bug during generalizing the register settingHyungwon Hwang
From the commit f9f70912f41e347acd60e22ad0bb6962e83add81 (drm/exynos: dsi: generalize register setting and clock control), plltmr setting has not been done correctly. Also, there was a line which does not use the newly introduced macro. This patch fixes the problem, make all code in the driver use the new macro, and clean up the code. Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2016-12-14temporary / remove dsi phy related codeHyungwon Hwang
Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2016-12-14drm/exynos: dsi: do not set TE GPIO direction by inputHyungwon Hwang
On some board, TE GPIO should be configured properly thoughout pinctrl driver as an wakeup interrupt. So this gpio should be configurable in the board's DT, not being requested as a input pin. Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2016-12-14drm/exynos: dsi: add support for MIC driver as a bridgeHyungwon Hwang
MIC must be initilized by MIPI DSI when it is being bound. Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2016-12-14drm/exynos: dsi: add support for Exynos5433Hyungwon Hwang
This patch adds support for Exynos5433 mipi dsi. Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2016-12-14drm/exynos: dsi: generalize register setting and clock controlHyungwon Hwang
This patch makes the driver use arrays for clocks, register address, and values. By doing this, it becomes easier to add support for another SoC. Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2016-12-14drm/exynos: dsi: rename pll_clk to sclk_clkHyungwon Hwang
This patch renames pll_clk to sclk_clk. The clock referenced by pll_clk is actually not the pll input clock for dsi. The pll input clock comes from the board's oscillator directly. Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2015-04-13drm/exynos: dsi: remove the empty mode_valid callbackHyungwon Hwang
Because the helper function which calls this callback checks whether it is registered or not. It is not necessary if it does nothing. So it would be better to remove the function for clarity. Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-24drm/exynos: dsi: set TE GPIO IRQ status as IRQ_NOAUTOENYoungJun Cho
The exynos_dsi_te_irq_handler() works only dsi(DPMS) is on. So it is enough to enable and disable TE GPIO IRQ in exynos_dsi_enable(disable)_irq() like DSI IRQ. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com>a Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-24drm/exynos: dsi: move TE irq handler registration positionYoungJun Cho
The drm_helper_hpd_irq_event() does dpms control and the panel is initialized and displayed on by it. So the exynos_dsi_te_irq_handler() should be registered beforehand. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-24drm/exynos: dsi: move DSIM_STATE_ENABLED set positionYoungJun Cho
The command mode panel should draw image earlier than the display on command execution to prevent showing garbage GRAM screen data. So should set dsi->state as DSIM_STATE_ENABLED between calling exynos_dsi_set_display_enable() and drm_panel_enable() to transmit image data before executing display on command. And moves the display on command execution routine from prepare() to enable() in drm_panel_funcs also. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-24drm/exynos: dsi: support Exynos4415 SoCYoungJun Cho
This patch supports Exynos4415 SoC. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-24drm/exynos: dsi: stop using display->ctx pointerAndrzej Hajda
The patch replaces accesses to display->ctx pointer by container_of construct. It will allow to remove ctx field in the future. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-24drm/exynos: dsi: remove redundant encoder fieldAndrzej Hajda
The patch removes redundant encoder field from private DSI context. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-24drm/exynos: dsi: simplify device pointer evaluationAndrzej Hajda
The patch replaces multiple evaluation of device address with local variable. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-24drm/exynos: dsi: remove global variable exynos_dsi_displayAndrzej Hajda
exynos_dsi_display is used by internal Exynos DRM framework for representing pair encoder->connecter. As it should be mapped 1:1 to dsi private context it seems more reasonable to embed it directly in that context. As a result further code simplification will be possible. Moreover it will be possible to handle multiple DSI devices in the system. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-11-15Merge tag 'drm/panel/for-3.19-rc1' of ↵Dave Airlie
git://people.freedesktop.org/~tagr/linux into drm-next drm/panel: Changes for v3.19-rc1 This contains support for a couple of new panels, updates for some GPIO API changes and a bunch of updates to the MIPI DSI support that should make it easier to write panel drivers in the future. * tag 'drm/panel/for-3.19-rc1' of git://people.freedesktop.org/~tagr/linux: (31 commits) drm/panel: Add Sharp LQ101R1SX01 support drm/dsi: Do not require .owner field to be set drm/dsi: Resolve MIPI DSI device from phandle drm/dsi: Implement DCS set_{column,page}_address commands drm/dsi: Implement DCS {get,set}_pixel_format commands drm/dsi: Implement DCS get_power_mode command drm/dsi: Implement DCS soft_reset command drm/dsi: Implement DCS nop command drm/dsi: Add to DocBook documentation drm/dsi: Implement some standard DCS commands drm/dsi: Implement generic read and write commands drm/panel: s6e8aa0: Use standard MIPI DSI function drm/dsi: Add mipi_dsi_set_maximum_return_packet_size() helper drm/dsi: Constify mipi_dsi_msg drm/dsi: Make mipi_dsi_dcs_{read,write}() symmetrical drm/dsi: Add DSI transfer helper drm/dsi: Add message to packet translator drm/dsi: Introduce packet format helpers drm/panel: s6e8aa0: Fix build warnings on 64-bit drm/panel: ld9040: Fix build warnings on 64-bit ...
2014-11-13drm/dsi: Constify mipi_dsi_msgThierry Reding
struct mipi_dsi_msg is a read-only structure, drivers should never need to modify it. Make this explicit by making all references to the struct const. Acked-by: Andrzej Hajda <a.hajda@samsung.com> Reviewed-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-03drm/exynos: remove explicit encoder/connector de-initializationAndrzej Hajda
All KMS objects are destroyed by drm_mode_config_cleanup in proper order so component drivers should not care about it. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-09-20drm/exynos/dsi: unregister connector on removalAndrzej Hajda
During component unbind connector should be unregistered. Also DSI host should be unregistered after KMS cleanup. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-09-20drm/exynos: mipi-dsi: add Exynos3 SoC supportInki Dae
This patch adds Exynos3250/3472 SoCs support. Signed-off-by: Inki Dae <inki.dae@samsung.com> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
2014-09-20drm/exynos: mipi-dsi: consider non-continuous clock modeInki Dae
This patch adds non-continuous clock mode support Clock mode on Clock Lane is continuous clock by default. So if we want to transmit data in non-continuous clock mode to reduce power consumption, then host driver should set DSIM_CLKLANE_STOP bit. In this case, host controller turns off HS clock between high speed transmissions. For this, this patch adds a new bit, DSIM_CLKLANE_STOP, and makes the host driver sets this bit only in case that dsi->mode_flags has MIPI_DSI_CLOCK_NON_CONTINUOUS flag. Signed-off-by: Inki Dae <inki.dae@samsung.com> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
2014-09-20drm/exynos: dsi: fix exynos_dsi_set_pll() wrong return valueYoungJun Cho
The type of this function is unsigned long, and it is expected to return proper fout value or zero if something is wrong. So this patch fixes wrong return value for error cases. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-08-07Merge tag 'drm/panel/for-3.17-rc1' of ↵Dave Airlie
git://anongit.freedesktop.org/tegra/linux into drm-next drm/panel: Changes for v3.17-rc1 Panels can now be more finely controlled via .prepare() and .unprepare() callbacks in addition to .enable() and .disable(). New kerneldoc details what they are supposed to do and when they should be called. The simple panel driver gained support for a couple of new panels and it is now possible to specify additional delays during power up and power down sequences if panels require it. DSI devices can now advertise that they support non-continuous clock mode which will allow DSI host controllers to disable the high speed clock after transmissions to save power. * tag 'drm/panel/for-3.17-rc1' of git://anongit.freedesktop.org/tegra/linux: (30 commits) drm/panel: simple: Use devm_gpiod_get_optional() drm/dsi: Replace upcasting macro by function drm/panel: ld9040: Replace upcasting macro by function drm/exynos: dp: Modify driver to support drm_panel drm/exynos: Move DP setup into commit() drm/panel: simple: Add AUO B133HTN01 panel support drm/panel: simple: Support delays in panel functions drm/panel: simple: Add proper definition for prepare and unprepare drm/panel: s6e8aa0: Add proper definition for prepare and unprepare drm/panel: ld9040: Add proper definition for prepare and unprepare drm/tegra: Add support for panel prepare and unprepare routines drm/exynos: dsi: Add support for panel prepare and unprepare routines drm/exynos: dpi: Add support for panel prepare and unprepare routines drm/panel: simple: Add dummy prepare and unprepare routines drm/panel: s6e8aa0: Add dummy prepare and unprepare routines drm/panel: ld9040: Add dummy prepare and unprepare routines drm/panel: Provide convenience wrapper for .get_modes() drm/panel: add .prepare() and .unprepare() functions drm/panel: simple: Remove simple-panel compatible drm/panel: simple: Add Innolux N116BGE panel support ...
2014-08-06drm/exynos: dsi: Add support for panel prepare and unprepare routinesAjay Kumar
Modify exynos_dsi driver to support the new panel calls: prepare and unprepare. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-08-04Subject: Revert "drm/exynos: remove MODULE_DEVICE_TABLE definitions"Sjoerd Simons
This reverts commit d089621896c3530a9bd309f96e9c9124d07f6c3f was original to prevent multiple MODULE_DEVICE_TABLE in one module. Which, as a side-effect broke autoloading of the module. Since 21bdd17b21b45ea48e06e23918d681afbe0622e9 it is possible to have multiple calls to MODULE_DEVICE_TABLE, so the patch can be reverted to restore support for autoloading Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-08-03drm/exynos: dsi: add driver data to support Exynos5410/5420/5440 SoCsYoungJun Cho
The offset of register DSIM_PLLTMR_REG in Exynos5410 / 5420 / 5440 SoCs is different from the one in Exynos4 SoCs. In case of Exynos5410 / 5420 / 5440 SoCs, there is no frequency band bit in DSIM_PLLCTRL_REG, and it uses DSIM_PHYCTRL_REG and DSIM_PHYTIMING*_REG instead. So this patch adds driver data to distinguish it. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
2014-08-03drm/exynos: dsi: add TE interrupt handler to support LCD I80 interfaceYoungJun Cho
This is a temporary solution and should be made by more generic way. To support LCD I80 interface, the DSI host should register TE interrupt handler from the TE GPIO of attached panel. So the panel generates a tearing effect synchronization signal then the DSI host calls the CRTC device manager to trigger to transfer video image. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Acked-by: Inki Dae <inki.dae@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>