linux_dsm_epyc7002/drivers/gpu/drm/i915
Ville Syrjälä bb6ae9e653 drm/i915: Allow planes to declare their minimum acceptable cdclk
Various pixel formats and plane scaling impose additional constraints
on the cdclk frequency. Provide a new plane->min_cdclk() hook that
will be used to compute the minimum acceptable cdclk frequency for
each plane.

Annoyingly on some platforms the numer of active planes affects
this calculation so we must also toss in more planes into the
state when the number of active planes changes.

The sequence of state computation must also be changed:
1. check_plane() (updates plane's visibility etc.)
2. figure out if more planes now require update min_cdclk
   computaion
3. calculate the new min cdclk for each plane in the state
4. if the minimum of any plane now exceeds the current
   logical cdclk we recompute the cdclk
4. during cdclk computation take the planes' min_cdclk into
   accoutn
5. follow the normal cdclk programming to change the
   cdclk frequency. This may now require a modeset (except
   on bxt/glk in some cases), which either succeeds or
   fails depending on whether userspace has given
   us permission to perform a modeset or not.

v2: Fix plane id check in intel_crtc_add_planes_to_state()
    Only print the debug message when cdclk needs bumping
    Use dev_priv->cdclk... as the old state explicitly

Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191015193035.25982-5-ville.syrjala@linux.intel.com
2019-10-24 21:22:25 +03:00
..
display drm/i915: Allow planes to declare their minimum acceptable cdclk 2019-10-24 21:22:25 +03:00
gem drm/i915/gt: Split intel_ring_submission 2019-10-24 12:14:21 +01:00
gt drm/i915/gt: Split intel_ring_submission 2019-10-24 12:14:21 +01:00
gvt drm/i915/gt: Split intel_ring_submission 2019-10-24 12:14:21 +01:00
oa
selftests drm/i915/selftests: Release ctx->engine_mutex after iteration 2019-10-23 10:07:25 +01:00
i915_active_types.h drm/i915: Coordinate i915_active with its own mutex 2019-10-04 15:39:12 +01:00
i915_active.c drm/i915/gt: Split intel_ring_submission 2019-10-24 12:14:21 +01:00
i915_active.h drm/i915: Coordinate i915_active with its own mutex 2019-10-04 15:39:12 +01:00
i915_buddy.c drm/i915/buddy: add missing call to i915_global_register 2019-09-09 10:58:20 +01:00
i915_buddy.h
i915_cmd_parser.c
i915_debugfs.c drm/i915/gt: Replace hangcheck by heartbeats 2019-10-23 23:52:10 +01:00
i915_debugfs.h
i915_drv.c drm/i915/gt: Replace hangcheck by heartbeats 2019-10-23 23:52:10 +01:00
i915_drv.h drm/i915: Rework global state locking 2019-10-24 21:22:25 +03:00
i915_fixed.h
i915_gem_evict.c drm/i915: Move request runtime management onto gt 2019-10-04 15:39:26 +01:00
i915_gem_fence_reg.c drm/i915: Move swizzle_bit under i915_ggtt 2019-10-16 19:42:19 +01:00
i915_gem_fence_reg.h drm/i915: Store i915_ggtt as the backpointer on fence registers 2019-10-16 19:41:36 +01:00
i915_gem_gtt.c drm/i915: Convert PAT setup to uncore mmio 2019-10-24 11:55:52 +01:00
i915_gem_gtt.h drm/i915: Move swizzle_bit under i915_ggtt 2019-10-16 19:42:19 +01:00
i915_gem.c drm/i915: Teach record_defaults to operate on the intel_gt 2019-10-22 20:43:07 +01:00
i915_gem.h drm/i915/execlists: Force preemption 2019-10-23 23:52:10 +01:00
i915_getparam.c drm/i915/perf: introduce a versioning of the i915-perf uapi 2019-10-14 21:30:25 +01:00
i915_globals.c
i915_globals.h
i915_gpu_error.c drm/i915/gt: Replace hangcheck by heartbeats 2019-10-23 23:52:10 +01:00
i915_gpu_error.h drm/i915/gt: Replace hangcheck by heartbeats 2019-10-23 23:52:10 +01:00
i915_ioc32.c
i915_irq.c drm/i915: Restore full symmetry in i915_driver_modeset_probe/remove 2019-10-18 22:42:59 +01:00
i915_irq.h drm/i915: Implement a better i945gm vblank irq vs. C-states workaround 2019-10-04 18:43:49 +03:00
i915_memcpy.c
i915_memcpy.h
i915_mm.c
i915_params.c drm/i915/tgl: Add DC3CO mask to allowed_dc_mask and gen9_dc_mask 2019-10-08 11:05:26 +03:00
i915_params.h drm/i915/execlists: Force preemption 2019-10-23 23:52:10 +01:00
i915_pci.c drm/i915: treat stolen as a region 2019-10-18 12:41:05 +01:00
i915_perf_types.h drm/i915/perf: Describe structure members in documentation 2019-10-24 15:01:35 +01:00
i915_perf.c drm/i915/gt: Split intel_ring_submission 2019-10-24 12:14:21 +01:00
i915_perf.h drm/i915/perf: introduce a versioning of the i915-perf uapi 2019-10-14 21:30:25 +01:00
i915_pmu.c drm/i915/gt: Convert the leftover for_each_engine(gt) 2019-10-18 14:53:48 +01:00
i915_pmu.h drm/i915/pmu: Support multiple GPUs 2019-10-17 10:50:47 +01:00
i915_priolist_types.h drm/i915/gt: Replace hangcheck by heartbeats 2019-10-23 23:52:10 +01:00
i915_pvinfo.h
i915_query.c drm/i915: add support for perf configuration queries 2019-10-14 21:30:26 +01:00
i915_query.h
i915_reg.h drm/i915/tgl: Wa_1607030317, Wa_1607186500, Wa_1607297627 2019-10-15 18:25:45 +01:00
i915_request.c drm/i915/gt: Split intel_ring_submission 2019-10-24 12:14:21 +01:00
i915_request.h drm/i915: Mark up "sentinel" requests 2019-10-12 08:51:17 +01:00
i915_scatterlist.c
i915_scatterlist.h drm/i915: s/for_each_sgt_dma/for_each_sgt_daddr/ 2019-08-29 21:59:16 +01:00
i915_scheduler_types.h drm/i915: Note the addition of timeslicing to the pretend scheduler 2019-10-11 09:36:16 +01:00
i915_scheduler.c drm/i915: Don't set queue_priority_hint if we don't kick the submission 2019-10-21 11:04:24 +01:00
i915_scheduler.h drm/i915/execlists: Don't merely skip submission if maybe timeslicing 2019-10-18 11:23:26 +01:00
i915_selftest.h
i915_suspend.c drm/i915: Drop struct_mutex from suspend state save/restore 2019-10-04 15:39:41 +01:00
i915_suspend.h
i915_sw_fence_work.c
i915_sw_fence_work.h
i915_sw_fence.c
i915_sw_fence.h
i915_switcheroo.c drm/i915: split out i915_switcheroo.[ch] from i915_drv.c 2019-10-06 11:25:00 +03:00
i915_switcheroo.h drm/i915: split out i915_switcheroo.[ch] from i915_drv.c 2019-10-06 11:25:00 +03:00
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c drm/i915: Move context management under GEM 2019-10-04 15:39:34 +01:00
i915_sysfs.h
i915_trace_points.c
i915_trace.h drm/i915: Move context management under GEM 2019-10-04 15:39:34 +01:00
i915_user_extensions.c
i915_user_extensions.h
i915_utils.c drm/i915/execlists: Force preemption 2019-10-23 23:52:10 +01:00
i915_utils.h drm/i915/execlists: Force preemption 2019-10-23 23:52:10 +01:00
i915_vgpu.c drm/i915: to make vgpu ppgtt notificaiton as atomic operation 2019-09-06 09:53:12 -07:00
i915_vgpu.h
i915_vma.c drm/i915: Lift i915_vma_parked() onto the gt 2019-10-21 21:07:56 +01:00
i915_vma.h drm/i915: Lift i915_vma_parked() onto the gt 2019-10-21 21:07:56 +01:00
intel_csr.c drm/i915/dmc: Update ICL DMC version to v1.09 2019-09-27 10:20:39 -07:00
intel_csr.h
intel_device_info.c drm/i915/tgl: s/ss/eu fuse reading support 2019-09-21 08:31:08 +01:00
intel_device_info.h drm/i915: enumerate and init each supported region 2019-10-18 12:41:02 +01:00
intel_gvt.c
intel_gvt.h
intel_memory_region.c drm/i915: treat shmem as a region 2019-10-18 12:41:03 +01:00
intel_memory_region.h drm/i915: treat shmem as a region 2019-10-18 12:41:03 +01:00
intel_pch.c drm/i915: Add new CNL PCH ID seen on a CML platform 2019-10-23 20:37:02 +03:00
intel_pch.h drm/i915: Add new CNL PCH ID seen on a CML platform 2019-10-23 20:37:02 +03:00
intel_pm.c drm/i915: Extract GT ring management 2019-10-20 20:45:18 +01:00
intel_pm.h drm/i915: Extract GT render sleep (rc6) management 2019-09-27 13:01:57 +01:00
intel_runtime_pm.c drm/i915/display: abstract all vgaarb access to intel_vga.[ch] 2019-10-02 13:31:54 +03:00
intel_runtime_pm.h
intel_sideband.c
intel_sideband.h
intel_uncore.c drm/i915/tgl: Introduce gen12 forcewake ranges 2019-09-13 20:07:36 +01:00
intel_uncore.h drm/i915: Only apply a rmw mmio update if the value changes 2019-09-17 15:25:40 +01:00
intel_wakeref.c
intel_wakeref.h
intel_wopcm.c
intel_wopcm.h
Kconfig drm/i915: Fix Kconfig indentation 2019-10-08 09:18:19 +03:00
Kconfig.debug Merge drm/drm-next into drm-intel-next-queued 2019-10-15 11:18:26 +03:00
Kconfig.profile drm/i915/gt: Replace hangcheck by heartbeats 2019-10-23 23:52:10 +01:00
Makefile drm/i915/gt: Split intel_ring_submission 2019-10-24 12:14:21 +01:00