aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu
AgeCommit message (Collapse)AuthorFilesLines
2015-06-23drm/dp/mst: take lock around looking up the branch device on hpd irqDave Airlie1-0/+3
If we are doing an MST transaction and we've gotten HPD and we lookup the device from the incoming msg, we should take the mgr lock around it, so that mst_primary and mstb->ports are valid. Reviewed-by: Daniel Vetter <[email protected]> Cc: [email protected] Signed-off-by: Dave Airlie <[email protected]>
2015-06-23drm/dp/mst: make sure mst_primary mstb is valid in work functionDaniel Vetter1-5/+19
This validates the mst_primary under the lock, and then calls into the check and send function. This makes the code a lot easier to understand the locking rules in. Signed-off-by: Daniel Vetter <[email protected]> Reviewed-by: Daniel Vetter <[email protected]> Cc: [email protected] Signed-off-by: Dave Airlie <[email protected]>
2015-06-23Merge tag 'drm-intel-next-fixes-2015-06-22' of ↵Dave Airlie1-21/+21
git://anongit.freedesktop.org/drm-intel into drm-next fix warning introduced in last -fixes * tag 'drm-intel-next-fixes-2015-06-22' of git://anongit.freedesktop.org/drm-intel: drm/i915: Silence compiler warning
2015-06-23Merge branch 'exynos-drm-next' of ↵Dave Airlie26-1380/+2181
git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next Summary: . Add atomic feature support - Exynos also now supports atomic feature. However, it doesn't guarantee atomic operation yet, and is required for more cleanups. This time we just modified for Exynos drm driver to use atomic interfaces instead of legacy ones. Next time, we will enhance Exynos drm driver to support the atomic operation. . Add iommu support - This is a patch series according to below Exynos iommu integration work with DT and dma-mapping subsystem, http://lwn.net/Articles/607626/ . Consolidate Exynos drm driver initialization. - This patch sereis resolves the issue that only the first compoments was bound when happened deferred probing for other pipelines and also makes the driver to be more cleanned up by moving the dispered codes for registering kms drivers to one place. . Add new MIC, DECON drivers, and MIPI-DSI support for Exynos5433. - Add MIC(Mobile image compressor) driver. MIC is a new IP for Exynos5433 and later, which is used to transfer frame data to MIPI-DSI controller compressing the data to reduce memory bandwidth. - Add DECON driver for Exynos5433 SoC. This IP is a dislay controller similar to Exynos7's one but this controller has much different registers from Exynos7's ones so this driver has been implemented separately. We will implement a helper modules for FIMD and two DECON controllers to remove duplicated codes later. - Add Exynos5433 SoC support to MIPI-DSI driver, and device tree relevant patches. * 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: (50 commits) ARM: dts: rename the clock of MIPI DSI 'pll_clk' to 'sclk_mipi' drm/exynos: dsi: do not set TE GPIO direction by input drm/exynos: dsi: add support for MIC driver as a bridge drm/exynos: dsi: add support for Exynos5433 drm/exynos: dsi: make use of array for clock access drm/exynos: dsi: make use of driver data for static values drm/exynos: dsi: add macros for register access drm/exynos: dsi: rename pll_clk to sclk_clk drm/exynos: mic: add MIC driver of: add helper for getting endpoint node of specific identifiers drm/exynos: add Exynos5433 decon driver drm/exynos: fix the input prompt of Exynos7 DECON drm/exynos: add drm_iommu_attach_device_if_possible() drm/exynos: Add the dependency for DRM_EXYNOS to DPI/DSI/DP drm/exynos: remove the dependency of DP driver for ARCH_EXYNOS drm/exynos: do not wait for vblank at atomic operation drm/exynos: Remove unused vma field of exynos_drm_gem_obj drm/exynos: fimd: fix page fault issue with iommu drm/exynos: iommu: improve a check for non-iommu dma_ops drm/exynos: iommu: detach from default dma-mapping domain on init ...
2015-06-23Merge tag 'topic/drm-misc-2015-06-22' of ↵Dave Airlie5-21/+21
git://anongit.freedesktop.org/drm-intel into drm-next One more drm-misc pull for 4.2. The important one is the fix from Laurent for Daniel Stone's mode_blob work. * tag 'topic/drm-misc-2015-06-22' of git://anongit.freedesktop.org/drm-intel: drm/atomic: Don't set crtc_state->enable manually drm: prime: Document gem_prime_mmap drm: Avoid the double clflush on the last cache line in drm_clflush_virt_range() drm/atomic: Extract needs_modeset function drm/cma: Fix 64-bit size_t build warnings Documentation/drm: Update rotation property
2015-06-22Merge branch 'sched-core-for-linus' of ↵Linus Torvalds1-1/+2
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull scheduler updates from Ingo Molnar: "The main changes are: - lockless wakeup support for futexes and IPC message queues (Davidlohr Bueso, Peter Zijlstra) - Replace spinlocks with atomics in thread_group_cputimer(), to improve scalability (Jason Low) - NUMA balancing improvements (Rik van Riel) - SCHED_DEADLINE improvements (Wanpeng Li) - clean up and reorganize preemption helpers (Frederic Weisbecker) - decouple page fault disabling machinery from the preemption counter, to improve debuggability and robustness (David Hildenbrand) - SCHED_DEADLINE documentation updates (Luca Abeni) - topology CPU masks cleanups (Bartosz Golaszewski) - /proc/sched_debug improvements (Srikar Dronamraju)" * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (79 commits) sched/deadline: Remove needless parameter in dl_runtime_exceeded() sched: Remove superfluous resetting of the p->dl_throttled flag sched/deadline: Drop duplicate init_sched_dl_class() declaration sched/deadline: Reduce rq lock contention by eliminating locking of non-feasible target sched/deadline: Make init_sched_dl_class() __init sched/deadline: Optimize pull_dl_task() sched/preempt: Add static_key() to preempt_notifiers sched/preempt: Fix preempt notifiers documentation about hlist_del() within unsafe iteration sched/stop_machine: Fix deadlock between multiple stop_two_cpus() sched/debug: Add sum_sleep_runtime to /proc/<pid>/sched sched/debug: Replace vruntime with wait_sum in /proc/sched_debug sched/debug: Properly format runnable tasks in /proc/sched_debug sched/numa: Only consider less busy nodes as numa balancing destinations Revert 095bebf61a46 ("sched/numa: Do not move past the balance point if unbalanced") sched/fair: Prevent throttling in early pick_next_task_fair() preempt: Reorganize the notrace definitions a bit preempt: Use preempt_schedule_context() as the official tracing preemption point sched: Make preempt_schedule_context() function-tracing safe x86: Remove cpu_sibling_mask() and cpu_core_mask() x86: Replace cpu_**_mask() with topology_**_cpumask() ...
2015-06-22drm/atomic: Don't set crtc_state->enable manuallyLaurent Pinchart1-3/+7
The enable field needs to be kept in sync with the mode_blob field. Call drm_atomic_set_mode_prop_for_crtc() instead of setting enable to false in order to dereference the mode blob correctly. v2: - Check the return value of drm_atomic_set_mode_prop_for_crtc() - Drop the num_connectors local variable Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-06-22drm/exynos: dsi: do not set TE GPIO direction by inputHyungwon Hwang1-2/+2
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 <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-22drm/exynos: dsi: add support for MIC driver as a bridgeHyungwon Hwang1-0/+24
MIC must be initilized by MIPI DSI when it is being bound. Signed-off-by: Hyungwon Hwang <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-22drm/exynos: dsi: add support for Exynos5433Hyungwon Hwang2-16/+86
This patch adds support for Exynos5433 mipi dsi. Signed-off-by: Hyungwon Hwang <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-22drm/exynos: dsi: make use of array for clock accessHyungwon Hwang1-35/+33
This patch make the driver to use an array for clock access. The number of clocks are different from the existing MIPI DSI driver and Exynos5433 MIPI DSI driver. So this patch is needed before adding support for Exynos5433 MIPI DSI driver. Signed-off-by: Hyungwon Hwang <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-22drm/exynos: dsi: make use of driver data for static valuesHyungwon Hwang1-51/+145
Exynos MIPI DSI driver uses some static values such as address offsets, register setting values, and etc. This patch makes the driver get those values from the driver data. Signed-off-by: Hyungwon Hwang <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-22drm/exynos: dsi: add macros for register accessHyungwon Hwang1-47/+51
This patch adds macros for register writing/reading. This is needed for adding support Exynos5433 MIPI DSI driver, not by using if statement, but by using driver data. Signed-off-by: Hyungwon Hwang <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-22drm/exynos: dsi: rename pll_clk to sclk_clkHyungwon Hwang1-20/+16
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. But for the backward compatibility, the old clock name "pll_clk" is also OK. Signed-off-by: Hyungwon Hwang <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-22drm/exynos: mic: add MIC driverHyungwon Hwang5-3/+501
MIC(Mobile image compressor) is newly added IP in Exynos5433. MIC resides between decon and mipi dsim, and compresses frame data by 50%. With dsi, not display port, to send frame data to the panel, the bandwidth is not enough. That is why this compressor is introduced. Signed-off-by: Hyungwon Hwang <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-22drm/exynos: add Exynos5433 decon driverJoonyoung Shim4-0/+668
DECON(Display and Enhancement Controller) is new IP replacing FIMD in Exynos5433. This patch adds Exynos5433 decon driver. Signed-off-by: Joonyoung Shim <[email protected]> Signed-off-by: Hyungwon Hwang <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-22drm/exynos: fix the input prompt of Exynos7 DECONHyungwon Hwang1-1/+1
This patch is a preparation patch for adding support for Exynos5433 DECON. Exynos7 DECON have to be distinguished from Exynos5433 DECON. Signed-off-by: Hyungwon Hwang <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-22drm/exynos: add drm_iommu_attach_device_if_possible()Hyungwon Hwang6-46/+47
Every CRTC drivers in Exynos DRM implements the code which checks whether IOMMU is supported or not, and if supported enable it. Making new helper for it generalize each CRTC drivers. Signed-off-by: Hyungwon Hwang <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-22drm/exynos: Add the dependency for DRM_EXYNOS to DPI/DSI/DPHyungwon Hwang1-3/+3
Without this dependency, Kbuild is confused and the configs below them are not placed under Exynos DRM. This patch fixes it, so the configs below them become to be placed under Exynos DRM. Signed-off-by: Hyungwon Hwang <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-22drm/exynos: remove the dependency of DP driver for ARCH_EXYNOSHyungwon Hwang1-1/+1
This dependency is a historical thing. It is added when this DP driver is under media subsystem. Now because it is under Exynos DRM, this dependency is not needed anymore. Signed-off-by: Hyungwon Hwang <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-22Merge tag 'asoc-v4.2-2' of ↵Takashi Iwai13-33/+69
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next ASoC: Further updates for v4.2 There's a bunch of additional updates and fixes that came in since my orignal pull request here, including DT support for rt5645 and fairly large serieses of cleanups and improvements to tas2552 and rcar.
2015-06-22drm/i915: Silence compiler warningAnder Conselvan de Oliveira1-21/+21
Silence the following -Wmaybe-uninitialized warnings and make the code more clear. drivers/gpu/drm/i915/intel_display.c: In function ‘__intel_set_mode’: drivers/gpu/drm/i915/intel_display.c:11844:14: warning: ‘crtc_state’ may be used uninitialized in this function [-Wmaybe-uninitialized] return state->mode_changed || state->active_changed; ^ drivers/gpu/drm/i915/intel_display.c:11854:25: note: ‘crtc_state’ was declared here struct drm_crtc_state *crtc_state; ^ drivers/gpu/drm/i915/intel_display.c:11868:6: warning: ‘crtc’ may be used uninitialized in this function [-Wmaybe-uninitialized] if (crtc != intel_encoder->base.crtc) ^ drivers/gpu/drm/i915/intel_display.c:11853:19: note: ‘crtc’ was declared here struct drm_crtc *crtc; Reported-by: Chris Wilson <[email protected]> Suggested-by: Chris Wilson <[email protected]> Signed-off-by: Ander Conselvan de Oliveira <[email protected]> Signed-off-by: Daniel Vetter <[email protected]> Signed-off-by: Jani Nikula <[email protected]>
2015-06-19drm: prime: Document gem_prime_mmapDaniel Thompson1-1/+3
gem_prime_map is not currently described in the DRM manual, lets document it. Signed-off-by: Daniel Thompson <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-06-20drm/exynos: do not wait for vblank at atomic operationInki Dae1-2/+0
This patch resolves the issue that refresh rate got low at extension mode test with fimd and vidi combination. The problem was because atomic_commit callback waited for the completion of vblank to gaurantee crtc relevant registers are updated from shadow registers to real ones. However, the waiting there is really unnecessary because page flip operation does already it. Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: Remove unused vma field of exynos_drm_gem_objKrzysztof Kozlowski1-2/+0
The field 'vma' of 'exynos_drm_gem_obj' structure was introduced in 2a3098ff6c21 ("drm/exynos: add userptr feature for g2d module") but is not referenced anywhere. One instance of 'exynos_drm_gem_obj' may be mapped to multiple user-space VMAs so 'vma' field does not look useful anyway. Signed-off-by: Krzysztof Kozlowski <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: fimd: fix page fault issue with iommuInki Dae1-0/+4
This patch resolves page fault issue with iommu and atomic feature when modetest test application is terminated. ENWIN_F field of WINCONx register enables or disable a dma channel to each hardware overlay - the value of the field will be updated to real register after vsync. So this patch makes sure the dma channel is disabled by waiting for vsync one time after clearing shadow registers to all dma channels. Below shows the page fault issue: setting mode 720x1280-60Hz@XR24 on connectors 31, crtc 29 freq: 59.99Hz [ 34.831025] PAGE FAULT occurred at 0x20400000 by 11e20000.sysmmu(Page table base: 0x6e324000) [ 34.838072] Lv1 entry: 0x6e92dc01 [ 34.841489] ------------[ cut here ]------------ [ 34.846058] kernel BUG at drivers/iommu/exynos-iommu.c:364! [ 34.851614] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM [ 34.857428] Modules linked in: <--snip--> [ 35.210894] [<c02880d0>] (exynos_sysmmu_irq) from [<c00608f8>] (handle_irq_event_percpu+0x78/0x134) [ 35.219914] [<c00608f8>] (handle_irq_event_percpu) from [<c00609f0>] (handle_irq_event+0x3c/0x5c) [ 35.228768] [<c00609f0>] (handle_irq_event) from [<c0063698>] (handle_level_irq+0xc4/0x13c) [ 35.237101] [<c0063698>] (handle_level_irq) from [<c005ff7c>] (generic_handle_irq+0x2c/0x3c) [ 35.245521] [<c005ff7c>] (generic_handle_irq) from [<c02214ec>] (combiner_handle_cascade_irq+0x94/0x100) [ 35.254980] [<c02214ec>] (combiner_handle_cascade_irq) from [<c005ff7c>] (generic_handle_irq+0x2c/0x3c) [ 35.264353] [<c005ff7c>] (generic_handle_irq) from [<c0060248>] (__handle_domain_irq+0x7c/0xec) [ 35.273034] [<c0060248>] (__handle_domain_irq) from [<c0009434>] (gic_handle_irq+0x30/0x68) [ 35.281366] [<c0009434>] (gic_handle_irq) from [<c0012ec0>] (__irq_svc+0x40/0x74) Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: iommu: improve a check for non-iommu dma_opsMarek Szyprowski1-2/+2
DRM Exynos driver is relying on dma-mapping internal structures when used with IOMMU enabled. This patch partially hides dma-mapping internal things by using proper get_dma_ops/set_dma_ops calls. Signed-off-by: Marek Szyprowski <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: iommu: detach from default dma-mapping domain on initMarek Szyprowski1-0/+3
This patch adds code, which detach sub-device nodes from default iommu domain if such has been configured. This lets Exynos DRM driver to properly attach sub-devices to its own, common for all sub-devices domain. Signed-off-by: Marek Szyprowski <[email protected]> Tested-by: Javier Martinez Canillas <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: fimd: ensure proper hw state in fimd_clear_channel()Marek Szyprowski1-58/+77
One should not do any assumptions on the stare of the fimd hardware during driver initialization, so to properly reset fimd before enabling IOMMU, one should ensure that all power domains and clocks are really enabled. This patch adds pm_runtime and clocks management in the fimd_clear_channel() function to ensure that any access to fimd registers will be performed with clocks and power domains enabled. Signed-off-by: Marek Szyprowski <[email protected]> Tested-by: Javier Martinez Canillas <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: initialize VIDCON0 when fimd is disabledJoonyoung Shim1-0/+2
When the fimd is disabled by fimd_disable(), enabled overlay layers also are disabled. If clocks for fimd are enabled by fimd_enable() on this case, it can lead IOMMU page fault. The reason is that VIDCON0_ENVID and VIDCON0_ENVID_F bits of VIDCON0 register are set still even though fimd is disabled, so it may continue display output of prior when clocks for fimd are enabled again. Signed-off-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: remove chained calls to enableJoonyoung Shim5-178/+16
With atomic modesetting all the control for CRTC, Planes, Encoders and Connectors should come from DRM core, so the driver is not allowed to enable or disable planes from inside the crtc_enable()/disable() call. But it needs to disable planes with crtc_disable in exynos driver internally. Because crtc is disabled before plane is disabled, it means plane_disable just returns without any register changes, then we cannot be sure setting register to disable plane when crtc is disable. This patch removes this chainned calls to enable plane from exynos hw drivers code letting only DRM core touch planes except to disable plane. Also it leads eliminable enabled and resume of struct exynos_drm_plane. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Joonyoung Shim <[email protected]> Tested-by: Marek Szyprowski <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: remove to call mixer_wait_for_vblankJoonyoung Shim1-1/+0
The reason waiting vblank is to be power gated and disabled clocks after dma operation is completed. The dma operation is stopped already before be power gated and clocks are disabled when mixer is disabled by commit 381be025ac1a6("drm/exynos: stop mixer before gating clocks during poweroff"). Don't need to wait vblank anymore. Signed-off-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: ipp: validate a GEM handle with multiple planesHyungwon Hwang1-13/+38
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 <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: ipp: fix wrong index referencing a config elementHyungwon Hwang1-2/+1
Config depends on the opreation. So it must be referenced by an operation id, not a property id. Signed-off-by: Hyungwon Hwang <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: dsi: check whether dsi is enabled before sending dataHyungwon Hwang1-4/+14
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 DRACO 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 <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: remove SoC checking codeAndrzej Hajda1-26/+1
SoC checking code is not necessary anymore, as exynos_drm_match_add and exynos_drm_platform_probe already properly handles situation when there are no Exynos DRM components. Signed-off-by: Andrzej Hajda <[email protected]> Tested-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: fix broken component binding in case of multiple pipelinesAndrzej Hajda10-359/+100
In case there are multiple pipelines and deferred probe occurs, only components of the first pipeline were bound. As a result only one pipeline was 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 depend 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 <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: consolidate driver/device initialization codeAndrzej Hajda4-161/+138
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 <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: add error messages if clks failed to get enabledGustavo Padovan3-11/+62
Check error and call DRM_ERROR if clk_prepare_enable() fails. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: add a dependency on FB_S3C to DECON driverInki Dae1-1/+1
This patch makes one of Linux framebuffer and DRM CRTC drivers to be enabled. Display controllers, FIMD and DECON, can be controlled by Linux framebuffer or DRM CRTC drivers so only one of them should be enabled. Signed-off-by: Inki Dae <[email protected]> Reviewed-by: Gustavo Padovan <[email protected]>
2015-06-20drm/exynos: vidi: remove unused varablesInki Dae1-2/+0
This patch removes unnsed varables in vidi_disable function. Signed-off-by: Inki Dae <[email protected]> Reviewed-by: Gustavo Padovan <[email protected]>
2015-06-20drm/exynos: split exynos_crtc->dpms in enable() and disable()Gustavo Padovan6-187/+62
To follow more closely the new atomic API we split the dpms() helper into the enable() and disable() helper to get exactly the same semantics. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: remove unnecessary calls to disable_plane()Gustavo Padovan2-19/+0
The planes are already disabled by the drm_atomic_helper_commit() code so we don't need to disable the in these two places. Signed-off-by: Gustavo Padovan <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Tested-by: Tobias Jakobi <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: atomic dpms supportGustavo Padovan10-61/+40
Run dpms operations through the atomic intefaces. This basically removes the .dpms() callback from econders and crtcs and use .disable() and .enable() to turn the crtc on and off. v2: Address comments by Joonyoung: - make hdmi code call ->disable() instead of ->dpms() - do not use WARN_ON on crtc enable/disable v3: - Fix build failure after the hdmi change in v2 - Change dpms helper of ptn3460 bridge v4: - remove win_commit() call from .enable() v5: - move .atomic_check() to the atomic PageFlip patch, and transform it in .atomic_begin() Signed-off-by: Gustavo Padovan <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Tested-by: Tobias Jakobi <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: add exynos specific .atomic_commit()Gustavo Padovan1-1/+32
exynos needs to update planes with the crtc enabled (mainly for the FIMD case) so this specific atomic commit changes the order of drm_atomic_helper_commit_modeset_enables() and drm_atomic_helper_commit_planes() to commit planes after we enable crtc and encoders. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: move exynos_drm_crtc_disable()Gustavo Padovan1-18/+18
This is a preparation commit to move exynos_drm_crtc_disable() together with the future exynos_drm_crtc_enable() that will come from the split of exynos_drm_crtc_dpms() callback. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: don't disable unused functions at initGustavo Padovan1-3/+0
Everything starts disabled so we don't really need to disable anything. Signed-off-by: Gustavo Padovan <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Tested-by: Tobias Jakobi <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: remove exported functions from exynos_drm_planeGustavo Padovan2-67/+42
Now that no one is using the functions exported by exynos_drm_plane due to the atomic conversion we can make remove some of the them or make them static. v2: remove unused exynos_drm_crtc v3: fix checkpatch error (reported by Joonyoung) Signed-off-by: Gustavo Padovan <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Tested-by: Tobias Jakobi <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: atomic phase 3: convert page flipsGustavo Padovan2-63/+25
PageFlips now use the atomic helper to work through the atomic modesetting API. Async page flips are not supported yet. v2: Add .atomic_begin() step to handle the vblank part we removed from exynos page_flip code. Signed-off-by: Gustavo Padovan <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Tested-by: Tobias Jakobi <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-06-20drm/exynos: atomic phase 3: use atomic .set_config helperGustavo Padovan2-15/+1
Now that phase 1 and 2 are complete switch .set_config helper to use the atomic one. v2: also remove .prepare() callback v3: remove .mode_set() and .mode_set_base() and encoder's .prepare() callbacks Signed-off-by: Gustavo Padovan <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Tested-by: Tobias Jakobi <[email protected]> Signed-off-by: Inki Dae <[email protected]>