aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-01-27drm/i915: Skip uncore lock on earlier gensChris Wilson1-67/+91
With gen < 6 we don't need to take uncore lock as we don't have anything to protect from concurrent access. v2: rebase and account for gen9 changes Signed-off-by: Chris Wilson <[email protected]> (v1) Signed-off-by: Mika Kuoppala <[email protected]> Reviewed-by: Deepak S <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Assert that runtime pm is active on user fw accessChris Wilson4-120/+30
On user forcewake access, assert that runtime pm reference is held. Fix and cleanup the callsites accordingly. v2: Remove intel_runtime_pm_get() rebasehap (Deepak) v3: use drivers own runtime state tracking as pm_runtime_active() will return wrong results when we are in resume callchain (Mika) Signed-off-by: Chris Wilson <[email protected]> Signed-off-by: Mika Kuoppala <[email protected]> Reviewed-by: Deepak S <[email protected]> (v2) Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Rebalance runtime pm vs forcewakeChris Wilson2-14/+9
Calling intel_runtime_pm_put() is illegal from a soft-irq context, so revert the crude hack commit aa0b3b5bb8768c1a6a6788869d9c7015eae7e80c Author: Paulo Zanoni <[email protected]> Date: Tue Apr 1 14:55:07 2014 -0300 drm/i915: don't schedule force_wake_timer at gen6_read and apply the single line corrective instead. v2: assert forcewake is off after the forcewake_reset (Paulo) References: https://bugs.freedesktop.org/show_bug.cgi?id=80913 Cc: Paulo Zanoni <[email protected]> Cc: Daniel Vetter <[email protected]> Signed-off-by: Chris Wilson <[email protected]> Signed-off-by: Mika Kuoppala <[email protected]> Reviewed-by: Deepak S <[email protected]> (v1) Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Subsume intel_ctx_submit_request in to drm_i915_gem_requestNick Hoath5-62/+49
Move all remaining elements that were unique to execlists queue items in to the associated request. Issue: VIZ-4274 v2: Rebase. Fixed issue of overzealous freeing of request. v3: Removed re-addition of cleanup work queue (found by Daniel Vetter) v4: Rebase. v5: Actual removal of intel_ctx_submit_request. Update both tail and postfix pointer in __i915_add_request (found by Thomas Daniel) v6: Removed unrelated changes Signed-off-by: Nick Hoath <[email protected]> Reviewed-by: Thomas Daniel <[email protected]> [danvet: Reformat comment with strange linebreaks.] Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Remove FIXME_lrc_ctx backpointerNick Hoath4-39/+52
The first pass implementation of execlists required a backpointer to the context to be held in the intel_ringbuffer. However the context pointer is available higher in the call stack. Remove the backpointer from the ring buffer structure and instead pass it down through the call stack. v2: Integrate this changeset with the removal of duplicate request/execlist queue item members. v3: Rebase v4: Rebase. Remove passing of context when the request is passed. Signed-off-by: Nick Hoath <[email protected]> Reviewed-by: Thomas Daniel <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Removed duplicate members from submit_requestNick Hoath8-28/+29
Where there were duplicate variables for the tail, context and ring (engine) in the gem request and the execlist queue item, use the one from the request and remove the duplicate from the execlist queue item. Issue: VIZ-4274 v1: Rebase v2: Fixed build issues. Keep separate postfix & tail pointers as these are used in different ways. Reinserted missing full tail pointer update. Signed-off-by: Nick Hoath <[email protected]> Reviewed-by: Thomas Daniel <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: execlist request keeps ptr/ref to gem_requestNick Hoath2-7/+30
Add a reference and pointer from the execlist queue item to the associated gem request. For execlist requests that don't have a request, create one as a placeholder. Issue: VIZ-4274 v1: Rebase after upstream of "Replace seqno values with request structures" patchset. Signed-off-by: Nick Hoath <[email protected]> Reviewed-by: Thomas Daniel <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Keep drm_crtc->state in sync with intel_crtc->configAnder Conselvan de Oliveira1-0/+1
So that atomic operations will reference the right crtc state. Signed-off-by: Ander Conselvan de Oliveira <[email protected]> Reviewed-by: Matt Roper <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Improve how the memory for crtc state is allocatedAnder Conselvan de Oliveira2-5/+16
The previous patch changed the config field in intel_crtc to a pointer, but to keep the mechanical changes (done with spatch) separate from the new code, the pointer was made to point to a new _config field with type struct intel_crtc_state added to that struct. This patch improves that code by getting rid of that field, allocating a state struct in intel_crtc_init() a keeping it properly updated when a mode set happens. v2: Manual changes split from previous patch. (Matt) Don't leak the current state when the crtc is destroyed (Matt) Signed-off-by: Ander Conselvan de Oliveira <[email protected]> Reviewed-by: Matt Roper <[email protected]> [danvet: Squash in fixup from Matt Roper for driver unload.] Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Make intel_crtc->config a pointerAnder Conselvan de Oliveira21-262/+270
To match the semantics of drm_crtc->state, which this will eventually become. The allocation of the memory for config will be fixed in a followup patch. By adding the extra _config field to intel_crtc it was possible to generate this entire patch with the cocci script below. @@ @@ struct intel_crtc { ... -struct intel_crtc_state config; +struct intel_crtc_state _config; +struct intel_crtc_state *config; ... } @@ struct intel_crtc *crtc; @@ -memset(&crtc->config, 0, sizeof(crtc->config)); +memset(crtc->config, 0, sizeof(*crtc->config)); @@ @@ __intel_set_mode(...) { <... -to_intel_crtc(crtc)->config = *pipe_config; +(*(to_intel_crtc(crtc)->config)) = *pipe_config; ...> } @@ @@ intel_crtc_init(...) { ... WARN_ON(drm_crtc_index(&intel_crtc->base) != intel_crtc->pipe); +intel_crtc->config = &intel_crtc->_config; return; ... } @@ struct intel_crtc *crtc; @@ -&crtc->config +crtc->config @@ struct intel_crtc *crtc; identifier member; @@ -crtc->config.member +crtc->config->member @@ expression E; @@ -&(to_intel_crtc(E)->config) +to_intel_crtc(E)->config @@ expression E; identifier member; @@ -to_intel_crtc(E)->config.member +to_intel_crtc(E)->config->member v2: Clarify manual changes by splitting them into another patch. (Matt) Improve cocci script to generate even more of the changes. (Ander) Signed-off-by: Ander Conselvan de Oliveira <[email protected]> Reviewed-by: Matt Roper <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Use local pipe_config varariable when availableAnder Conselvan de Oliveira1-3/+3
In functions that define a local pipe_config variable to point to crtc->config, replace remaining references to crtc->config with the local variable. This makes the code more consistent and easier to change in an automated manner. Signed-off-by: Ander Conselvan de Oliveira <[email protected]> Reviewed-by: Matt Roper <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Pass new_config down do crtc_compute_clockAnder Conselvan de Oliveira4-75/+94
This reduces the number of direct users of crtc->new_config, opening up the possibilty of removing it altogether. Signed-off-by: Ander Conselvan de Oliveira <[email protected]> Reviewed-by: Matt Roper <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Embedded struct drm_crtc_state in intel_crtc_stateAnder Conselvan de Oliveira20-164/+157
And get rid of the duplicate mode structures. This patch was generated with the following semantic patch: @@ @@ struct intel_crtc_state { +struct drm_crtc_state base; + ... -struct drm_display_mode requested_mode; -struct drm_display_mode adjusted_mode; ... } @@ struct intel_crtc_state *state; @@ -state->adjusted_mode +state->base.adjusted_mode @@ struct intel_crtc_state *state; @@ -state->requested_mode +state->base.mode @@ struct intel_crtc_state state; @@ -state.adjusted_mode +state.base.adjusted_mode @@ struct intel_crtc_state state; @@ -state.requested_mode +state.base.mode @@ struct drm_crtc *crtc; @@ -to_intel_crtc(crtc)->config.adjusted_mode +to_intel_crtc(crtc)->config.base.adjusted_mode @@ identifier member; expression E; @@ -PIPE_CONF_CHECK_FLAGS(adjusted_mode.member, E); +PIPE_CONF_CHECK_FLAGS(base.adjusted_mode.member, E); @@ identifier member; @@ -PIPE_CONF_CHECK_I(adjusted_mode.member); +PIPE_CONF_CHECK_I(base.adjusted_mode.member); @@ identifier member; @@ -PIPE_CONF_CHECK_CLOCK_FUZZY(adjusted_mode.member); +PIPE_CONF_CHECK_CLOCK_FUZZY(base.adjusted_mode.member); v2: Completely generate the patch with cocci. (Ander) Signed-off-by: Ander Conselvan de Oliveira <[email protected]> Reviewed-by: Matt Roper <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Rename struct intel_crtc_config to intel_crtc_stateAnder Conselvan de Oliveira15-101/+101
The objective is to make this structure usable with the atomic helpers, so let's start with the rename. Patch generated with coccinelle: @@ @@ -struct intel_crtc_config { +struct intel_crtc_state { ... } @@ @@ -struct intel_crtc_config +struct intel_crtc_state v2: Completely generate the patch with cocci. (Ander) Signed-off-by: Ander Conselvan de Oliveira <[email protected]> Reviewed-by: Matt Roper <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Modifying structures related to DRRSVandana Kannan3-53/+47
Earlier, DRRS structures were specific to eDP (used only in intel_dp). Since DRRS can be extended to other internal display types (if the panel supports multiple RR), modifying structures to be part of drm_i915_private and have a provision to add display related structs like intel_dp. Also, aligning with frontbuffer tracking mechanism, the new structure contains data for busy frontbuffer bits. Signed-off-by: Vandana Kannan <[email protected]> Reviewed-by: Rodrigo Vivi <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Rename 'reg' to 'clk_reg' to unconfuse it from the other 'reg'Ville Syrjälä1-4/+4
On VLV/CHV the rc6 residency calculations read a second register to determine the actual units used for the residency value. The variable name 'reg' where that register value is stored shadows the function argument 'reg'. That can easily leave the reader utterly confused, so rename the internal variable to 'clk_reg'. Signed-off-by: Ville Syrjälä <[email protected]> Reviewed-by: Chris Wilson <[email protected]> Reviewed-by: Deepak S<[email protected]> [danvet: Spellfix in commit message.] Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Drop VLV checks from rc6p and rc6pp sysfs filesVille Syrjälä1-4/+0
We don't register the rc6p and rc6pp sysfs files on VLV, so there's no point in having any VLV checks in them. Drop the checks. Signed-off-by: Ville Syrjälä <[email protected]> Reviewed-by: Chris Wilson <[email protected]> Reviewed-by: Deepak S<[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27Revert "Revert "drm/i915/chv: Use timeout mode for RC6 on chv""Ville Syrjälä1-2/+3
The performance regression from the CHV RC6 EI->TO change is now fixed so re-enable TO mode for better RC6 resicency. This reverts commit e85a5c7989c5be8fe30acc35eba9fb54b3450f36. Signed-off-by: Ville Syrjälä <[email protected]> Reviewed-by: Deepak S<[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Configure GEN6_RP_DOWN_TIMEOUT on CHVVille Syrjälä1-0/+1
CherryViewA0_iGfx_BIOS_DRIVER_PUNIT_spec_y14w28d5 tells us not to enable the RP down timeout interrupt, and says that the timeout value is hence not used. We do enable that interrupt currently though, so leaving the timeout as 0 results in very poor performance as the GPU frequency keeps dropping constantly. So just program the register with the recommended value. Leaving the interrupt enabled doesn't seem to do any harm so far. So I've decided to leave it on for now, just to avoid making CHV a special case. This fixes the performance regression from: commit 5a0afd4b78ec23f27f5d486ac3d102c2e8d66bd7 Author: Deepak S <[email protected]> Date: Sat Dec 13 11:43:27 2014 +0530 drm/i915/chv: Use timeout mode for RC6 on chv Cc: Deepak S <[email protected]> Signed-off-by: Ville Syrjälä <[email protected]> Reviewed-by: Deepak S<[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Change VLV GEN6_RP_DOWN_TIMEOUT value to decimalVille Syrjälä1-1/+1
We use decimal for all the other RP magic values, so change GEN6_RP_DOWN_TIMEOUT to decimal as well. Also change the order of the register writes to match the BIOS spec for easier verification. Signed-off-by: Ville Syrjälä <[email protected]> Reviewed-by: Chris Wilson <[email protected]> Reviewed-by: Deepak S<[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Disable RC6 before configuring in on VLV/CHVVille Syrjälä1-0/+6
Follow the sequence in the BIOS spec and clear the RC_CONTROL register before changing any of the other RC6/RP registers. Signed-off-by: Ville Syrjälä <[email protected]> Reviewed-by: Chris Wilson <[email protected]> Reviewed-by: Deepak S<[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: New offset for reading frequencies on CHV.Deepak S2-7/+56
Use new Sideband offset to read max/min/gaur freq based on the SKU it is running on. Based on the Number of EU, we read different bits to identify the max frequencies at which system can run. v2: reuse mask definitions & INTEL_INFO() to get device info (Ville) v3: add break in switch conditions (Ville) Signed-off-by: Deepak S <[email protected]> Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Increase the range of sideband address.Deepak S2-4/+4
Looks like latest BSW/CHV production system has sideband address > 128. Use u32 data types to cover new offset/address range :) Signed-off-by: Deepak S <[email protected]> Reviewed-by: Ville Syrjälä <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915/chv: Populate total EU count on CherryviewDeepak S3-0/+23
Starting with Cherryview, devices may have a varying number of EU for a given ID due to creative fusing. Punit support different frequency for different fuse data. We use this patch to help get total eu enabled and read the right offset to get RP0 Based upon a patch from Jeff, but reworked to only store eu_total and avoid sending info to userspace v2: Format register definitions (Jani) Signed-off-by: Deepak S <[email protected]> Acked-by: Jeff McGee <[email protected]> Reviewed-by: Ville Syrjälä <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm/i915: Don't cleanup plane state in intel_plane_destroy()Matt Roper1-1/+0
When we transitioned to the atomic plane helpers in commit: commit ea2c67bb4affa84080c616920f3899f123786e56 Author: Matt Roper <[email protected]> Date: Tue Dec 23 10:41:52 2014 -0800 drm/i915: Move to atomic plane helpers (v9) one of the changes was to call intel_plane_destroy_state() while tearing down a plane to prevent leaks when unloading the driver. That made sense when the patches were first written, but before they were merged, commit 3009c0377f25c29852b218a6933a969d02cbdc5d Author: Thierry Reding <[email protected]> Date: Tue Nov 25 12:09:49 2014 +0100 drm: Free atomic state during cleanup had already landed, which made this the responsibility of the DRM core. The result was that we were kfree()'ing the state twice, and also possibly double-unref'ing a framebuffer, leading to memory corruption when the driver was unloaded. The fix is to simply not try to cleanup the state in the i915 teardown code now that the core handles this for us. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88433 Testcase: igt/drv_module_reload Root-cause-analysis-by: Ander Conselvan de Oliveira <[email protected]> Signed-off-by: Matt Roper <[email protected]> Reviewed-by: Jani Nikula <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2015-01-27drm: Add rotation value to plane stateMatt Roper2-0/+5
The rotation property is shared by multiple drivers, so it makes sense to store the rotation value (for atomic-converted drivers) in the common plane state so that core code can eventually access it as well. Cc: [email protected] Suggested-by: Daniel Vetter <[email protected]> Reviewed-by: Thierry Reding <[email protected]> Signed-off-by: Matt Roper <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2015-01-27Merge branch 'drm-next' of https://github.com/markyzq/kernel-drm-rockchip ↵Dave Airlie1-6/+3
into drm-next single rockchip fix. * 'drm-next' of https://github.com/markyzq/kernel-drm-rockchip: drm/rockchip: fix dma_alloc_attrs() error check
2015-01-27Merge branch 'drm-next-3.20' of git://people.freedesktop.org/~agd5f/linux ↵Dave Airlie46-971/+1837
into drm-next Radeon drm-next changes for 3.20. Highlights: - Indirect draw support for evergreen/NI hw - SMC fan control support for SI/CI - Manual fan control for SI/CI - DP audio support - Lots of code cleanup * 'drm-next-3.20' of git://people.freedesktop.org/~agd5f/linux: (45 commits) drm/radeon: make MMU_NOTIFIER optional drm/radeon: use NULL rather then 0 in audio detect drm/radeon: whitespace clean up in radeon_audio.c radeon/audio: enable DP audio radeon/audio: moved audio caps programming to audio_hotplug() function radeon/audio: applied audio_dpms() and audio_mode_set() calls radeon/audio: consolidate audio_mode_set() functions radeon/audio: removed unnecessary debug settings radeon/audio: moved mute programming to a separate function radeon/audio: moved audio packet programming to a separate function radeon/audio: set_avi_packet() function cleanup radeon/audio: removed unnecessary CRC control programing radeon: moved HDMI color depth programming to a separate function radeon/audio: moved VBI packet programming to separate functions radeon/audio: consolidate update_acr() functions (v2) radeon/audio: consolidate update_avi_infoframe() functions radeon/audio: consolidate audio_set_dto() functions radeon/audio: consolidate audio_fini() functions radeon/audio: consolidate audio_enable() functions radeon/audio: consolidate select_pin() functions ...
2015-01-27Merge branch 'exynos-drm-next' of ↵Dave Airlie8-495/+426
git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next This pull request includes some code refactoring which removes Exynos specific structure names and uses generic structure names instead, and makes all plane updating to be done by only exynos_update_plane function. And also it includes some cleanup and fixup patches. * 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: (22 commits) drm/exynos: fimd: check error status for drm_iommu_attach_device drm/exynos: create exynos_check_plane() drm/exynos: remove mode_set() ops from exynos_crtc drm/exynos: don't duplicate drm_display_mode in fimd context drm/exynos: remove struct exynos_drm_manager drm/exynos: remove drm_dev from struct exynos_drm_manager drm/exynos: move 'type' from manager to crtc struct drm/exynos: remove pipe member of struct exynos_drm_manager drm/exynos: add pipe param to exynos_drm_crtc_create() drm/exynos: rename base object of struct exynos_drm_crtc to 'base' drm/exynos: remove exynos_drm_crtc_mode_set_commit() drm/exynos: call exynos_update_plane() directly on page flips drm/exynos: unify plane update on exynos_update_plane() drm/exynos: remove exynos_plane_commit() wrapper drm/exynos: don't do any DPMS operation while updating planes drm/exynos: Don't touch DPMS when updating overlay planes drm/exynos/vidi: remove useless ops->commit() drm/exynos/fimd: don't initialize 'ret' variable in fimd_probe() drm/exynos: remove struct exynos_drm_overlay drm/exynos: remove exynos_drm_crtc_plane_* wrappers ...
2015-01-27Merge tag 'drm-amdkfd-next-fixes-2015-01-25' of ↵Dave Airlie6-41/+42
git://people.freedesktop.org/~gabbayo/linux into drm-next Here is a pull request of fixes for 3.20 patches, including the fix you asked me when you merged the previous pull request. * tag 'drm-amdkfd-next-fixes-2015-01-25' of git://people.freedesktop.org/~gabbayo/linux: drm/amdkfd: change amdkfd version to 0.7.1 drm/radeon: cik_sdma_ctx_switch_enable() can be static drm/amdkfd: Fix sparse errors drm/amdkfd: Handle case of invalid queue type drm/amdkfd: Add break at the end of case drm/amdkfd: Remove negative check of uint variable
2015-01-27drm: fix drm_display_info_set_bus_formats kernel doc headerBoris Brezillon1-2/+2
formats and num_formats arguments were previously called fmts and nfmts. Fix the kernel doc comment so that it matches the new argument names. Signed-off-by: Boris Brezillon <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2015-01-27Merge tag 'drm-intel-next-2015-01-17' of ↵Dave Airlie33-684/+1111
git://anongit.freedesktop.org/drm-intel into drm-next - refactor i915/snd-hda interaction to use the component framework (Imre) - psr cleanups and small fixes (Rodrigo) - a few perf w/a from Ken Graunke - switch to atomic plane helpers (Matt Roper) - wc mmap support (Chris Wilson & Akash Goel) - smaller things all over * tag 'drm-intel-next-2015-01-17' of git://anongit.freedesktop.org/drm-intel: (40 commits) drm/i915: Update DRIVER_DATE to 20150117 i915: reuse %ph to dump small buffers drm/i915: Ensure the HiZ RAW Stall Optimization is on for Cherryview. drm/i915: Enable the HiZ RAW Stall Optimization on Broadwell. drm/i915: PSR link standby at debugfs drm/i915: group link_standby setup and let this info visible everywhere. drm/i915: Add missing vbt check. drm/i915: PSR HSW/BDW: Fix inverted logic at sink main_link_active bit. drm/i915: PSR VLV/CHV: Remove condition checks that only applies to Haswell. drm/i915: VLV/CHV PSR needs to exit PSR on every flush. drm/i915: Fix kerneldoc for i915 atomic plane code drm/i915: Don't pretend SDVO hotplug works on 915 drm/i915: Don't register HDMI connectors for eDP ports on VLV/CHV drm/i915: Remove I915_HAS_HOTPLUG() check from i915_hpd_irq_setup() drm/i915: Make hpd arrays big enough to avoid out of bounds access Revert "drm/i915/chv: Use timeout mode for RC6 on chv" drm/i915: Improve HiZ throughput on Cherryview. drm/i915: Reset CSB read pointer in ring init drm/i915: Drop unused position fields (v2) drm/i915: Move to atomic plane helpers (v9) ...
2015-01-27Merge tag 'topic/core-stuff-2015-01-23' of ↵Dave Airlie19-103/+238
git://anongit.freedesktop.org/drm-intel into drm-next Just flushing out my drm-misc branch, nothing major. Well too old patches I've dug out from years since a patch from Rob look eerily familiar ;-) * tag 'topic/core-stuff-2015-01-23' of git://anongit.freedesktop.org/drm-intel: drm/probe-helper: clamp unknown connector status in the poll work drm/probe-helper: don't lose hotplug event next: drm/atomic: Use copy_from_user to copy 64 bit data from user space drm: Make drm_read() more robust against multithreaded races drm/fb-helper: Propagate errors from initial config failure drm: Drop superfluous "select VT_HW_CONSOLE_BINDING"
2015-01-25drm/exynos: fimd: check error status for drm_iommu_attach_deviceAjay Kumar1-2/+15
check error status for drm_iommu_attach_device() and make sure it propagates till the caller. Signed-off-by: Ajay Kumar <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-01-25drm/exynos: create exynos_check_plane()Gustavo Padovan3-20/+36
Split update plane in two parts, an initial check part that can fail and the update part that can't fail. This is a important step for the upcoming atomic modesetting support. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-01-25drm/exynos: remove mode_set() ops from exynos_crtcGustavo Padovan1-3/+0
It is no longer used anywhere. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-01-25drm/exynos: don't duplicate drm_display_mode in fimd contextGustavo Padovan2-16/+1
We can safely use the mode stored in the crtc. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-01-25drm/exynos: remove struct exynos_drm_managerGustavo Padovan7-244/+211
exynos_drm_manager was just a redundant struct to represent the crtc as well. In this commit we merge exynos_drm_manager into exynos_drm_crtc to remove an unnecessary level of indirection easing the understand of the flow on exynos. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-01-25drm/exynos: remove drm_dev from struct exynos_drm_managerGustavo Padovan6-12/+13
manager-drm_dev is only accessed by exynos_drm_crtc_create() so this patch pass drm_dev as argument on exynos_drm_crtc_create() and remove it from struct exynos_drm_manager. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-01-25drm/exynos: move 'type' from manager to crtc structGustavo Padovan6-14/+17
'type' is now part of the struct exynos_drm_crtc. This is just another step in the struct exynos_drm_manager removal. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-01-25drm/exynos: remove pipe member of struct exynos_drm_managerGustavo Padovan5-6/+4
It is not longer used. This is part of the process of removing struct exynos_drm_manager entirely. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-01-25drm/exynos: add pipe param to exynos_drm_crtc_create()Gustavo Padovan5-8/+8
Get the pipe value from a parameter instead of getting it from manager->pipe. We are removing manager->pipe. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-01-25drm/exynos: rename base object of struct exynos_drm_crtc to 'base'Gustavo Padovan2-6/+5
'base' is more widely used name in the drm subsystem for the base object. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-01-25drm/exynos: remove exynos_drm_crtc_mode_set_commit()Gustavo Padovan1-7/+1
This was just as extra chain in the call stack. We just rename it to _set_base() and let it do everything alone. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-01-25drm/exynos: call exynos_update_plane() directly on page flipsGustavo Padovan1-2/+6
Avoid an extra call to exynos_drm_crtc_mode_set_commit() that only calls exynos_update_plane(). Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-01-25drm/exynos: unify plane update on exynos_update_plane()Gustavo Padovan3-16/+8
We can safely use the exynos_update_plane() to update the plane framebuffer for both the overlay and primary planes. Note that this patch removes a call to manager->ops->commit() in exynos_drm_crtc_mode_set_commit(). The commit() call is used only by the fimd driver to set underlying timings and need only in full modeset operations. For plane update only win_commit is needed. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-01-25drm/exynos: remove exynos_plane_commit() wrapperGustavo Padovan3-12/+8
It's doing nothing but calling exynos_crtc->ops->win_commit(), so let's call this directly to avoid extra layers of abstraction. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-01-25drm/exynos: don't do any DPMS operation while updating planesGustavo Padovan1-1/+7
DPMS only makes sense when the mode changes, for plane update changes do not perform any dpms operation. This move places the win_commit() and commit() calls directly in the code instead of calling exynos_drm_crtc_commit() thus avoiding DPMS operations. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-01-25drm/exynos: Don't touch DPMS when updating overlay planesGustavo Padovan1-1/+0
DPMS settings should only be changed by a full modeset. exynos_plane_update() should only care about updating the planes itself and nothing else. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-01-25drm/exynos/vidi: remove useless ops->commit()Gustavo Padovan1-12/+0
vidi_commit does nothing, remove it and its callers. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>