diff options
author | Imre Deak <imre.deak@intel.com> | 2021-10-27 15:51:50 +0300 |
---|---|---|
committer | Imre Deak <imre.deak@intel.com> | 2021-10-29 17:21:27 +0300 |
commit | 10a657dd4cbc34ba9f1bf16140a96789688f6cd5 (patch) | |
tree | 98833d4029f51837f4165d4a3efe8981c9ee46fa /drivers/gpu/drm/i915/display/intel_fb.h | |
parent | 7df7bca56902e4d96c7b17b84378774f2254b707 (diff) | |
download | linux-10a657dd4cbc34ba9f1bf16140a96789688f6cd5.tar.gz linux-10a657dd4cbc34ba9f1bf16140a96789688f6cd5.tar.bz2 linux-10a657dd4cbc34ba9f1bf16140a96789688f6cd5.zip |
drm/i915/fb: Fold modifier CCS type/tiling attribute to plane caps
By using the modifier plane capability flags to encode the modifiers'
CCS type and tiling attributes, it becomes simpler to the check for
any of these capabilities when providing the list of supported
modifiers.
This also allows distinguishing modifiers on future platforms where
platforms with the same display version support different modifiers. An
example is DG2 and ADLP, both being D13, where DG2 supports only F and X
tiling, while ADLP supports only Y and X tiling. With the
INTEL_PLANE_CAP_TILING_* flags added in this patch we can provide
the correct modifiers for each platform.
v2:
- Define PLANE_HAS_* with macros instead of an enum. (Jani)
- Rename PLANE_HAS_*_ANY to PLANE_HAS_*_MASK. (Jani)
- Rename PLANE_HAS_* to INTEL_PLANE_CAP_*.
- Set the CCS_RC_CC cap only for DISPLAY_VER >= 12.
- Set the TILING_Y cap only for DISPLAY_VER < 13 || ADLP.
- Simplify the SKL plane cap display version checks and move them
to a separate function.
Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211027125150.2891371-1-imre.deak@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_fb.h')
-rw-r--r-- | drivers/gpu/drm/i915/display/intel_fb.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h index 19f46144474d..b54997175d6d 100644 --- a/drivers/gpu/drm/i915/display/intel_fb.h +++ b/drivers/gpu/drm/i915/display/intel_fb.h @@ -20,12 +20,13 @@ struct intel_framebuffer; struct intel_plane; struct intel_plane_state; -enum intel_plane_caps { - PLANE_HAS_NO_CAPS = 0, - PLANE_HAS_TILING = BIT(0), - PLANE_HAS_CCS_RC = BIT(1), - PLANE_HAS_CCS_MC = BIT(2), -}; +#define INTEL_PLANE_CAP_NONE 0 +#define INTEL_PLANE_CAP_CCS_RC BIT(0) +#define INTEL_PLANE_CAP_CCS_RC_CC BIT(1) +#define INTEL_PLANE_CAP_CCS_MC BIT(2) +#define INTEL_PLANE_CAP_TILING_X BIT(3) +#define INTEL_PLANE_CAP_TILING_Y BIT(4) +#define INTEL_PLANE_CAP_TILING_Yf BIT(5) bool intel_fb_is_ccs_modifier(u64 modifier); bool intel_fb_is_rc_ccs_cc_modifier(u64 modifier); |