Commit bc58192a authored by Vinod Govindapillai's avatar Vinod Govindapillai Committed by Ville Syrjälä

drm/i915: Handle the DG2 max bw properly

Update DG2 init bw info similar to other platforms even though
DG2 has constant bandwidh. This will avoid branching out DG2
specific max bw calls.

V3: Fix dg2_get_bw_info() and avoid handle special cases
    for DG2 (Ville Syrjälä)

cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Signed-off-by: default avatarVinod Govindapillai <vinod.govindapillai@intel.com>
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220328230000.215094-1-vinod.govindapillai@intel.com
parent 47e794d6
...@@ -465,20 +465,25 @@ static int tgl_get_bw_info(struct drm_i915_private *dev_priv, const struct intel ...@@ -465,20 +465,25 @@ static int tgl_get_bw_info(struct drm_i915_private *dev_priv, const struct intel
static void dg2_get_bw_info(struct drm_i915_private *i915) static void dg2_get_bw_info(struct drm_i915_private *i915)
{ {
struct intel_bw_info *bi = &i915->max_bw[0]; unsigned int deratedbw = IS_DG2_G11(i915) ? 38000 : 50000;
int num_groups = ARRAY_SIZE(i915->max_bw);
int i;
/* /*
* DG2 doesn't have SAGV or QGV points, just a constant max bandwidth * DG2 doesn't have SAGV or QGV points, just a constant max bandwidth
* that doesn't depend on the number of planes enabled. Create a * that doesn't depend on the number of planes enabled. So fill all the
* single dummy QGV point to reflect that. DG2-G10 platforms have a * plane group with constant bw information for uniformity with other
* constant 50 GB/s bandwidth, whereas DG2-G11 platforms have 38 GB/s. * platforms. DG2-G10 platforms have a constant 50 GB/s bandwidth,
* whereas DG2-G11 platforms have 38 GB/s.
*/ */
for (i = 0; i < num_groups; i++) {
struct intel_bw_info *bi = &i915->max_bw[i];
bi->num_planes = 1; bi->num_planes = 1;
/* Need only one dummy QGV point per group */
bi->num_qgv_points = 1; bi->num_qgv_points = 1;
if (IS_DG2_G11(i915)) bi->deratedbw[0] = deratedbw;
bi->deratedbw[0] = 38000; }
else
bi->deratedbw[0] = 50000;
i915->sagv_status = I915_SAGV_NOT_CONTROLLED; i915->sagv_status = I915_SAGV_NOT_CONTROLLED;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment