drm/i915: Don't use DDB allocation when choosing gen9 watermark method
authorMatt Roper <matthew.d.roper@intel.com>
Tue, 11 Dec 2018 17:31:06 +0000 (09:31 -0800)
committerMatt Roper <matthew.d.roper@intel.com>
Tue, 11 Dec 2018 23:57:08 +0000 (15:57 -0800)
The bspec gives an if/else chain for choosing whether to use "method 1"
or "method 2" for calculating the watermark "Selected Result Blocks"
value for a plane.  One of the branches of the if chain is:

        "Else If ('plane buffer allocation' is known and (plane buffer
        allocation / plane blocks per line) >=1)"

Since our driver currently calculates DDB allocations first and the
actual watermark values second, the plane buffer allocation is known at
this point in our code and we include this test in our driver's logic.
However we plan to soon move to a "watermarks first, ddb allocation
second" sequence where we won't know the DDB allocation at this point.
Let's drop this arm of the if/else statement (effectively considering
the DDB allocation unknown) as an independent patch so that any
regressions can be more accurately bisected to either the different
watermark value (in this patch) or the new DDB allocation (in the next
patch).

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181211173107.11068-1-matthew.d.roper@intel.com
drivers/gpu/drm/i915/intel_pm.c

index 2bba5315b764bf25a88bad6cdfb340cca9959cec..bf970cf7b8a5dd2f02ec7a4bef356d14f826cdfa 100644 (file)
@@ -4761,13 +4761,6 @@ static int skl_compute_plane_wm(const struct intel_crtc_state *cstate,
                     wp->dbuf_block_size < 1) &&
                     (wp->plane_bytes_per_line / wp->dbuf_block_size < 1)) {
                        selected_result = method2;
-               } else if (ddb_allocation >=
-                        fixed16_to_u32_round_up(wp->plane_blocks_per_line)) {
-                       if (IS_GEN9(dev_priv) &&
-                           !IS_GEMINILAKE(dev_priv))
-                               selected_result = min_fixed16(method1, method2);
-                       else
-                               selected_result = method2;
                } else if (latency >= wp->linetime_us) {
                        if (IS_GEN9(dev_priv) &&
                            !IS_GEMINILAKE(dev_priv))