OpenCloudOS-Kernel/drivers/gpu/drm/i915
Jani Nikula f90e8c36c8 drm/i915/dsi: fix bxt split screen and color issue
Fix the failure mode where the display appears split, or shifted about
2/3 of the screen, and the color components are cycled. Turns out we
were missing the crucial BXT_DEFEATURE_DPI_FIFO_CTR bit in the
EOT_DISABLE register.

Per bspec, with the bit set, the "mipi_dpf_vblank_start" signal is
asserted only when the complete frame is transferred in the DPHY line
and also the DPI FIFO is flushed out at the end of each frame.

The problem was mitigated by keeping the panel fitter enabled, but that
only limited the issue to a shift of about 0..10 pixels. With the fix
here, the panel fitter workaround does not seem to be needed at all.

While at it, set BXT_DPHY_DEFEATURE_EN in EOT_DISABLE register which is
also needed per the BXT DSI mode set sequence.

Issue: VIZ-7610
Cc: Mika Kahola <mika.kahola@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Ramalingam C <ramalingam.c@intel.com>
Cc: Uma Shankar <uma.shankar@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1464965825-31035-1-git-send-email-jani.nikula@intel.com
2016-06-06 09:44:40 +03:00
..
Kconfig drm/i915: Kconfig for extra driver debugging 2016-03-03 17:26:57 +00:00
Kconfig.debug drm/i915: Add GEM debugging Kconfig option 2016-04-14 10:45:40 +01:00
Makefile drm/i915/dsi: Add DCS control for Panel PWM 2016-05-17 16:12:38 +03:00
dvo.h drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_ch7xxx.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_ch7017.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_ivch.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_ns2501.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_sil164.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_tfp410.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
i915_cmd_parser.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_debugfs.c drm/i915: Revert async unpin and nonblocking atomic commit 2016-06-01 09:46:46 +02:00
i915_dma.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-06-02 09:54:12 +02:00
i915_drv.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-06-02 09:54:12 +02:00
i915_drv.h drm/i915: Update DRIVER_DATE to 20160606 2016-06-06 00:29:53 +02:00
i915_gem.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-06-02 09:54:12 +02:00
i915_gem.h drm/i915: Add GEM debugging Kconfig option 2016-04-14 10:45:40 +01:00
i915_gem_batch_pool.c drm/i915: Propagate error from drm_gem_object_init() 2016-04-28 12:28:58 +03:00
i915_gem_batch_pool.h
i915_gem_context.c drm/i915: Merge legacy+execlists context structs 2016-05-24 15:30:31 +01:00
i915_gem_debug.c drm/i915: replace for_each_engine() 2016-03-24 14:34:11 +00:00
i915_gem_dmabuf.c Linux 4.6-rc3 2016-04-11 19:25:13 +02:00
i915_gem_evict.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_gem_execbuffer.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-06-02 09:54:12 +02:00
i915_gem_fence.c drm/i915: Introduce & use new lightweight SGL iterators 2016-05-20 13:43:00 +01:00
i915_gem_gtt.c drm/i915: Re-enable GGTT earlier during resume on pre-gen6 platforms 2016-05-23 11:10:48 +03:00
i915_gem_gtt.h drm/i915: Re-enable GGTT earlier during resume on pre-gen6 platforms 2016-05-23 11:10:48 +03:00
i915_gem_render_state.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_gem_render_state.h drm/i915: Rename intel_engine_cs function parameters 2016-03-16 15:33:10 +00:00
i915_gem_shrinker.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_gem_stolen.c drm/i915: Replace "INTEL_INFO->gen == x" checks with IS_GENx 2016-05-11 12:27:27 +01:00
i915_gem_tiling.c Merge branch 'drm-intel-next' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-02 07:58:36 +10:00
i915_gem_userptr.c drm/i915: Introduce & use new lightweight SGL iterators 2016-05-20 13:43:00 +01:00
i915_gpu_error.c drm/i915: Replace "INTEL_INFO->gen == x" checks with IS_GENx 2016-05-11 12:27:27 +01:00
i915_guc_reg.h drm/i915/bxt: reserve space for RC6 in the the GuC WOPCM 2016-05-18 12:49:19 +01:00
i915_guc_submission.c drm/i915: Put the kernel_context in drm_i915_private next to its friends 2016-05-24 15:29:57 +01:00
i915_ioc32.c
i915_irq.c drm/i915: Revert async unpin and nonblocking atomic commit 2016-06-01 09:46:46 +02:00
i915_params.c drm/i915: Revert async unpin and nonblocking atomic commit 2016-06-01 09:46:46 +02:00
i915_params.h drm/i915: Revert async unpin and nonblocking atomic commit 2016-06-01 09:46:46 +02:00
i915_reg.h drm/i915/dsi: fix bxt split screen and color issue 2016-06-06 09:44:40 +03:00
i915_suspend.c drm/i915/bxt: Don't save/restore eDP panel power during suspend (v3) 2016-02-08 11:32:32 +02:00
i915_sysfs.c drm/i915: Rename struct intel_context 2016-05-24 15:27:14 +01:00
i915_trace.h drm/i915: Rename struct intel_context 2016-05-24 15:27:14 +01:00
i915_trace_points.c
i915_vgpu.c drm/i915: Use drm_i915_private as the native pointer for intel_uncore.c 2016-05-10 17:20:20 +01:00
i915_vgpu.h drm/i915: Use drm_i915_private as the native pointer for intel_uncore.c 2016-05-10 17:20:20 +01:00
intel_acpi.c
intel_atomic.c drm/i915: Revert async unpin and nonblocking atomic commit 2016-06-01 09:46:46 +02:00
intel_atomic_plane.c drm/i915: Revert async unpin and nonblocking atomic commit 2016-06-01 09:46:46 +02:00
intel_audio.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2016-05-23 11:48:48 -07:00
intel_bios.c drm/i915: Extract physical display dimensions from VBT 2016-06-02 14:33:09 +03:00
intel_bios.h drm/i915: Parse LFP brightness control field in VBT 2016-05-02 16:17:38 +03:00
intel_color.c drm/i915: Do not check crtc_state->active in intel_color_load_luts. 2016-03-31 12:46:07 +02:00
intel_crt.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_csr.c drm/i915/kbl: Introduce the first official DMC for Kabylake. 2016-05-05 16:49:01 -07:00
intel_ddi.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_display.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-06-02 09:54:12 +02:00
intel_dp.c drm/i915: Extract physical display dimensions from VBT 2016-06-02 14:33:09 +03:00
intel_dp_aux_backlight.c drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) 2016-04-26 15:17:54 +03:00
intel_dp_link_training.c drm/i915/dp: reduce missing TPS3 support errors to debug logging 2016-02-08 11:37:17 +02:00
intel_dp_mst.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_dpio_phy.c drm/i915: Move VLV HDMI lane reset work around logic to intel_dpio_phy.c 2016-04-29 09:59:00 +03:00
intel_dpll_mgr.c drm/i915: Use crtc->name in debug messages 2016-05-30 17:01:16 +03:00
intel_dpll_mgr.h drm/i915: Use a crtc mask instead of a refcount for dpll functions, v2. 2016-03-17 09:27:28 +01:00
intel_drv.h drm/i915: Only ignore eDP ports that are connected 2016-06-01 09:46:48 +01:00
intel_dsi.c drm/i915/dsi: fix bxt split screen and color issue 2016-06-06 09:44:40 +03:00
intel_dsi.h drm/i915/dsi: CABC support for Panel PWM backlight control 2016-05-17 16:12:39 +03:00
intel_dsi_dcs_backlight.c drm/i915/dsi: CABC support for Panel PWM backlight control 2016-05-17 16:12:39 +03:00
intel_dsi_panel_vbt.c drm/i915/dsi: add support for gpio elements on CHV 2016-04-27 09:48:17 +03:00
intel_dsi_pll.c drm/i915: Eliminate {vlv,bxt}_configure_dsi_pll() 2016-04-15 16:25:27 +03:00
intel_dvo.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_fbc.c drm/i915: Revert async unpin and nonblocking atomic commit 2016-06-01 09:46:46 +02:00
intel_fbdev.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-06-02 09:54:12 +02:00
intel_fifo_underrun.c drm/i915: Do not use {HAS_*, IS_*, INTEL_INFO}(dev_priv->dev) 2016-04-07 14:50:26 +03:00
intel_frontbuffer.c
intel_guc.h drm/i915: Rename struct intel_context 2016-05-24 15:27:14 +01:00
intel_guc_fwif.h drm/i915/guc: rework guc_add_workqueue_item() 2016-05-23 14:21:53 +01:00
intel_guc_loader.c drm/i915: Update GEN6_PMINTRMSK setup with GuC enabled 2016-05-31 16:13:47 -07:00
intel_hdmi.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_hotplug.c drm/i915: Small display interrupt handlers tidy 2016-05-09 13:38:16 +01:00
intel_i2c.c drm/i915: Make GMBUS timeout message DRM_DEBUG_KMS 2016-04-12 13:23:17 +03:00
intel_lrc.c drm/i915: Revert async unpin and nonblocking atomic commit 2016-06-01 09:46:46 +02:00
intel_lrc.h drm/i915: Merge legacy+execlists context structs 2016-05-24 15:30:31 +01:00
intel_lvds.c drm/i915: Extract physical display dimensions from VBT 2016-06-02 14:33:09 +03:00
intel_mocs.c drm/i915: Unify intel_ring_begin() 2016-05-23 16:21:04 +03:00
intel_mocs.h drm/i915/mocs: Program MOCS for all engines on init 2016-04-14 10:45:40 +01:00
intel_modes.c
intel_opregion.c drm/i915/opregion: Rename init/fini functions to register/unregister 2016-05-23 16:35:50 +01:00
intel_overlay.c Merge branch 'drm-intel-next' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-02 07:58:36 +10:00
intel_panel.c Merge branch 'drm-intel-next' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-02 07:58:36 +10:00
intel_pm.c drm/i915/skl+: Use scaling amount for plane data rate calculation (v4) 2016-06-01 07:37:39 -07:00
intel_psr.c drm/i915/psr: Try to program link training times correctly 2016-05-23 15:10:25 +03:00
intel_renderstate.h
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_ringbuffer.c drm/i915: Stop automatically retiring requests after a GPU hang 2016-05-23 16:21:32 +03:00
intel_ringbuffer.h drm/i915: Rename struct intel_context 2016-05-24 15:27:14 +01:00
intel_runtime_pm.c drm/i915: Assert the dbuf is enabled when disabling DC5/6 2016-05-23 21:11:18 +03:00
intel_sdvo.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_sdvo_regs.h drm/i915/sdvo: revert bogus kernel-doc comments to normal comments 2016-01-20 10:21:34 +02:00
intel_sideband.c drm/i915: Extend gpio read/write to other cores 2016-02-04 19:11:17 +02:00
intel_sprite.c drm/i915: Give meaningful names to all the planes 2016-05-30 17:02:10 +03:00
intel_tv.c drm/i915: Give encoders useful names 2016-05-30 17:02:26 +03:00
intel_uncore.c drm/i915/guc: distinguish HAS_GUC() from HAS_GUC_UCODE/HAS_GUC_SCHED 2016-05-23 14:21:52 +01:00
intel_vbt_defs.h drm/i915: Extract physical display dimensions from VBT 2016-06-02 14:33:09 +03:00