diff options
author | Jani Nikula <jani.nikula@intel.com> | 2022-08-29 16:18:09 +0300 |
---|---|---|
committer | Jani Nikula <jani.nikula@intel.com> | 2022-08-31 14:21:08 +0300 |
commit | f0acaf9d6912240cf1a27f0f75d04cf149086da9 (patch) | |
tree | 9b5846d9a594c685f9329a262c46998de1f48c5b /drivers/gpu/drm/i915/display/intel_display_core.h | |
parent | eb11eabc5f26f876c514bb294dfdb0484bad28a6 (diff) | |
download | linux-f0acaf9d6912240cf1a27f0f75d04cf149086da9.tar.gz linux-f0acaf9d6912240cf1a27f0f75d04cf149086da9.tar.bz2 linux-f0acaf9d6912240cf1a27f0f75d04cf149086da9.zip |
drm/i915: move and group max_bw and bw_obj under display.bw
Move display bandwidth related members under drm_i915_private display
sub-struct.
v2: Rebase
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/c8b9e2fdc5c226ffb71759a20e561c832a774ba5.1661779055.git.jani.nikula@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_display_core.h')
-rw-r--r-- | drivers/gpu/drm/i915/display/intel_display_core.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h index 4a184eac57c3..0ea479b6c0c9 100644 --- a/drivers/gpu/drm/i915/display/intel_display_core.h +++ b/drivers/gpu/drm/i915/display/intel_display_core.h @@ -14,6 +14,7 @@ #include "intel_display.h" #include "intel_dmc.h" #include "intel_dpll_mgr.h" +#include "intel_global_state.h" #include "intel_gmbus.h" #include "intel_pm_types.h" @@ -34,6 +35,12 @@ struct intel_hotplug_funcs; struct intel_initial_plane_config; struct intel_overlay; +/* Amount of SAGV/QGV points, BSpec precisely defines this */ +#define I915_NUM_QGV_POINTS 8 + +/* Amount of PSF GV points, BSpec precisely defines this */ +#define I915_NUM_PSF_GV_POINTS 3 + struct intel_display_funcs { /* * Returns the active state of the crtc, and if the crtc is active, @@ -209,6 +216,20 @@ struct intel_display { /* Grouping using anonymous structs. Keep sorted. */ struct { + struct intel_global_obj obj; + + struct intel_bw_info { + /* for each QGV point */ + unsigned int deratedbw[I915_NUM_QGV_POINTS]; + /* for each PSF GV point */ + unsigned int psf_bw[I915_NUM_PSF_GV_POINTS]; + u8 num_qgv_points; + u8 num_psf_gv_points; + u8 num_planes; + } max[6]; + } bw; + + struct { /* list of fbdev register on this device */ struct intel_fbdev *fbdev; struct work_struct suspend_work; |