linux-stable/drivers/gpu/drm/i915
Ville Syrjälä f0521558a2 drm/i915: Don't clobber M/N values during fastset check
We're now calling intel_pipe_config_compare(..., true) uncoditionally
which means we're always going clobber the calculated M/N values with
the old values if the fuzzy M/N check passes. That causes problems
because the fuzzy check allows for a huge difference in the values.

I'm actually tempted to just make the M/N checks exact, but that might
prevent fastboot from kicking in when people want it. So for now let's
overwrite the computed values with the old values only if decide to skip
the modeset.

v2: Copy has_drrs along with M/N M2/N2 values

Cc: stable@vger.kernel.org
Cc: Blubberbub@protonmail.com
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Hans de Goede <hdegoede@redhat.com>
Tested-by: Blubberbub@protonmail.com
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110782
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110675
Fixes: d19f958db2 ("drm/i915: Enable fastset for non-boot modesets.")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190612172423.25231-1-ville.syrjala@linux.intel.com
Reviewed-by: Imre Deak <imre.deak@intel.com>
2019-06-18 18:28:51 +03:00
..
display drm/i915: Don't clobber M/N values during fastset check 2019-06-18 18:28:51 +03:00
gem drm/i915: Use drm_gem_object.resv 2019-06-18 15:30:32 +01:00
gt drm/i915/gtt: Use a common type for page directories 2019-06-17 16:30:54 +03:00
gvt drm/i915/gtt: Use a common type for page directories 2019-06-17 16:30:54 +03:00
selftests drm/i915: Replace engine->timeline with a plain list 2019-06-14 19:03:40 +01:00
.gitignore
i915_active.c drm/i915: Keep engine alive as we retire the context 2019-06-18 15:14:22 +01:00
i915_active.h drm/i915: Keep contexts pinned until after the next kernel context switch 2019-06-14 19:03:32 +01:00
i915_active_types.h drm/i915: Keep contexts pinned until after the next kernel context switch 2019-06-14 19:03:32 +01:00
i915_cmd_parser.c drm/i915: Move GEM object domain management from struct_mutex to local 2019-05-28 12:45:29 +01:00
i915_debugfs.c drm/i915: no need to check return value of debugfs_create functions 2019-06-17 15:53:08 +03:00
i915_debugfs.h
i915_drv.c drm/i915/ehl: Introduce Mule Creek Canyon PCH 2019-06-17 13:40:20 -07:00
i915_drv.h drm/i915/ehl: Introduce Mule Creek Canyon PCH 2019-06-17 13:40:20 -07:00
i915_fixed.h
i915_gem.c drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
i915_gem.h drm/i915: Load balancing across a virtual engine 2019-05-22 08:40:38 +01:00
i915_gem_batch_pool.c drm/i915: Use drm_gem_object.resv 2019-06-18 15:30:32 +01:00
i915_gem_batch_pool.h drm/i915: Split GEM object type definition to its own header 2019-05-28 12:45:29 +01:00
i915_gem_evict.c drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
i915_gem_fence_reg.c drm/i915: make intel_wakeref work on the rpm struct 2019-06-14 15:58:33 +01:00
i915_gem_fence_reg.h drm/i915: Move fence register tracking from i915->mm to ggtt 2019-06-13 09:37:39 +01:00
i915_gem_gtt.c drm/i915/gtt: Serialise both updates to PDE and our shadow 2019-06-17 20:53:03 +01:00
i915_gem_gtt.h drm/i915/gtt: Use a common type for page directories 2019-06-17 16:30:54 +03:00
i915_gem_render_state.c drm/i915: Drop the deferred active reference 2019-05-28 12:45:29 +01:00
i915_gem_render_state.h
i915_globals.c drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
i915_globals.h
i915_gpu_error.c drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
i915_gpu_error.h
i915_ioc32.c
i915_irq.c drm/i915/ehl: Introduce Mule Creek Canyon PCH 2019-06-17 13:40:20 -07:00
i915_irq.h drm/i915/guc: Correctly handle GuC interrupts on Gen11 2019-05-28 10:07:17 +01:00
i915_memcpy.c
i915_mm.c
i915_oa_bdw.c
i915_oa_bdw.h
i915_oa_bxt.c
i915_oa_bxt.h
i915_oa_cflgt2.c
i915_oa_cflgt2.h
i915_oa_cflgt3.c
i915_oa_cflgt3.h
i915_oa_chv.c
i915_oa_chv.h
i915_oa_cnl.c
i915_oa_cnl.h
i915_oa_glk.c
i915_oa_glk.h
i915_oa_hsw.c
i915_oa_hsw.h
i915_oa_icl.c
i915_oa_icl.h
i915_oa_kblgt2.c
i915_oa_kblgt2.h
i915_oa_kblgt3.c
i915_oa_kblgt3.h
i915_oa_sklgt2.c
i915_oa_sklgt2.h
i915_oa_sklgt3.c
i915_oa_sklgt3.h
i915_oa_sklgt4.c
i915_oa_sklgt4.h
i915_params.c drm/i915: add force_probe module parameter to replace alpha_support 2019-05-31 16:20:30 +03:00
i915_params.h drm/i915: add force_probe module parameter to replace alpha_support 2019-05-31 16:20:30 +03:00
i915_pci.c drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
i915_perf.c drm/i915: update rpm_get/put to use the rpm structure 2019-06-14 15:58:33 +01:00
i915_pmu.c drm/i915: update with_intel_runtime_pm to use the rpm structure 2019-06-14 15:58:33 +01:00
i915_pmu.h
i915_priolist_types.h drm/i915: Downgrade NEWCLIENT to non-preemptive 2019-05-20 18:28:22 +03:00
i915_pvinfo.h
i915_query.c Revert "drm/i915: Expand subslice mask" 2019-05-29 17:18:18 +03:00
i915_query.h
i915_reg.h drm/i915/icl: Add register definitions for Multi Segmented gamma 2019-06-17 10:26:47 +02:00
i915_request.c drm/i915: Use drm_gem_object.resv 2019-06-18 15:30:32 +01:00
i915_request.h drm/i915: Replace engine->timeline with a plain list 2019-06-14 19:03:40 +01:00
i915_scatterlist.c drm/i915: Pull scatterlist utils out of i915_gem.h 2019-05-28 12:45:29 +01:00
i915_scatterlist.h drm/i915: Pull scatterlist utils out of i915_gem.h 2019-05-28 12:45:29 +01:00
i915_scheduler.c drm/i915: Replace engine->timeline with a plain list 2019-06-14 19:03:40 +01:00
i915_scheduler.h drm/i915: Only reschedule the submission tasklet if preemption is possible 2019-05-07 17:40:20 +01:00
i915_scheduler_types.h drm/i915: Bump signaler priority on adding a waiter 2019-05-20 18:28:04 +03:00
i915_selftest.h
i915_suspend.c drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
i915_sw_fence.c
i915_sw_fence.h
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c drm/i915: update with_intel_runtime_pm to use the rpm structure 2019-06-14 15:58:33 +01:00
i915_timeline.c drm/i915: Replace engine->timeline with a plain list 2019-06-14 19:03:40 +01:00
i915_timeline.h drm/i915: Replace engine->timeline with a plain list 2019-06-14 19:03:40 +01:00
i915_timeline_types.h drm/i915: Replace engine->timeline with a plain list 2019-06-14 19:03:40 +01:00
i915_trace.h drm/i915: Pull kref into i915_address_space 2019-06-11 11:44:24 +01:00
i915_trace_points.c
i915_user_extensions.c
i915_user_extensions.h
i915_utils.h drm/i915: Move GEM object waiting to its own file 2019-05-28 12:45:29 +01:00
i915_vgpu.c
i915_vgpu.h
i915_vma.c drm/i915: Use drm_gem_object.resv 2019-06-18 15:30:32 +01:00
i915_vma.h drm/i915: Move fence register tracking from i915->mm to ggtt 2019-06-13 09:37:39 +01:00
intel_csr.c drm/i915/dmc: protect against loading wrong firmware 2019-06-17 12:32:34 -07:00
intel_csr.h
intel_device_info.c drm/i915: Kill INTEL_SUBPLATFORM_AML 2019-06-12 14:51:26 +03:00
intel_device_info.h drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
intel_drv.h drm/i915: move and rename i915_runtime_pm 2019-06-14 15:58:33 +01:00
intel_guc.c drm/i915: Make GuC GGTT reservation work on ggtt 2019-06-11 14:40:15 +01:00
intel_guc.h drm/i915: Make GuC GGTT reservation work on ggtt 2019-06-11 14:40:15 +01:00
intel_guc_ads.c drm/i915/guc: Reset GuC ADS during sanitize 2019-05-28 10:07:05 +01:00
intel_guc_ads.h drm/i915/guc: Reset GuC ADS during sanitize 2019-05-28 10:07:05 +01:00
intel_guc_ct.c drm/i915/guc: always use Command Transport Buffers 2019-06-09 11:21:33 +01:00
intel_guc_ct.h drm/i915/uc: Stop talking with GuC when resetting 2019-05-23 21:58:36 +01:00
intel_guc_fw.c drm/i915/guc: Define GuC firmware version for Icelake 2019-05-28 10:07:22 +01:00
intel_guc_fw.h
intel_guc_fwif.h drm/i915: fix documentation build warnings 2019-06-06 11:13:20 +03:00
intel_guc_log.c drm/i915/guc: Reduce verbosity on log overflows 2019-06-18 11:35:19 +01:00
intel_guc_log.h
intel_guc_reg.h drm/i915/guc: Correctly handle GuC interrupts on Gen11 2019-05-28 10:07:17 +01:00
intel_guc_submission.c drm/i915: Replace engine->timeline with a plain list 2019-06-14 19:03:40 +01:00
intel_guc_submission.h
intel_gvt.c
intel_gvt.h
intel_huc.c drm/i915: update with_intel_runtime_pm to use the rpm structure 2019-06-14 15:58:33 +01:00
intel_huc.h drm/i915/huc: New HuC status register for Gen11 2019-05-28 10:07:13 +01:00
intel_huc_fw.c drm/i915/huc: Define HuC firmware version for Icelake 2019-05-28 10:07:23 +01:00
intel_huc_fw.h
intel_pm.c drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
intel_pm.h drm/i915: move pm related declarations to intel_pm.h 2019-06-10 10:29:17 +03:00
intel_renderstate.h
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_runtime_pm.c drm/i915: update rpm_get/put to use the rpm structure 2019-06-14 15:58:33 +01:00
intel_runtime_pm.h drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
intel_sideband.c drm/i915: Make sandybridge_pcode_read() deal with the second data register 2019-05-27 20:51:48 +03:00
intel_sideband.h drm/i915: Make sandybridge_pcode_read() deal with the second data register 2019-05-27 20:51:48 +03:00
intel_uc.c drm/i915: update with_intel_runtime_pm to use the rpm structure 2019-06-14 15:58:33 +01:00
intel_uc.h
intel_uc_fw.c drm/i915: Move GEM object domain management from struct_mutex to local 2019-05-28 12:45:29 +01:00
intel_uc_fw.h
intel_uncore.c drm/i915: update with_intel_runtime_pm to use the rpm structure 2019-06-14 15:58:33 +01:00
intel_uncore.h drm/i915: move and rename i915_runtime_pm 2019-06-14 15:58:33 +01:00
intel_wakeref.c drm/i915: make intel_wakeref work on the rpm struct 2019-06-14 15:58:33 +01:00
intel_wakeref.h drm/i915: make intel_wakeref work on the rpm struct 2019-06-14 15:58:33 +01:00
intel_wopcm.c drm/i915/wopcm: update default size for gen11+ 2019-06-09 11:28:32 +01:00
intel_wopcm.h drm/i915/guc: Move intel_guc_reserved_gtt_size to intel_wopcm_guc_size 2019-06-11 14:40:14 +01:00
Kconfig drm/i915: add force_probe module parameter to replace alpha_support 2019-05-31 16:20:30 +03:00
Kconfig.debug drm/i915: Enable refcount debugging for default debug levels 2019-06-14 12:16:08 +01:00
Kconfig.profile drm/i915: Add a label for config DRM_I915_SPIN_REQUEST 2019-06-12 11:18:55 +01:00
Makefile drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
Makefile.header-test drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00