• Matt Roper's avatar
    drm/i915/display: Simplify GLK display version tests · 2b5a4562
    Matt Roper authored
    GLK has always been a bit of a special case since it reports INTEL_GEN()
    as 9, but has version 10 display IP.  Now we can properly represent the
    display version as 10 and simplify the display generation tests
    throughout the display code.
    
    Aside from manually adding the version to the glk_info structure, the
    rest of this patch is generated with a Coccinelle semantic patch.  Note
    that we also need to switch any code that matches gen10 today but *not*
    GLK to be CNL-specific:
    
            @@ expression dev_priv; @@
            - DISPLAY_VER(dev_priv) > 9
            + DISPLAY_VER(dev_priv) >= 10
    
            @@ expression dev_priv, E; @@
            (
            - DISPLAY_VER(dev_priv) >= 10 && E
            + (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)) && E
            |
            - DISPLAY_VER(dev_priv) >= 10
            + DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)
            |
            - IS_DISPLAY_RANGE(dev_priv, 10, E)
            + IS_DISPLAY_RANGE(dev_priv, 11, E) || IS_CANNONLAKE(dev_priv)
            )
    
            @@ expression dev_priv, E, E2; @@
            (
            - (IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv))
            + IS_DISPLAY_VER(dev_priv, 10)
            |
            - E || IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv)
            + E || IS_DISPLAY_VER(dev_priv, 10)
            |
            - (IS_GEMINILAKE(dev_priv) || IS_CANNONLAKE(dev_priv))
            + IS_DISPLAY_VER(dev_priv, 10)
            |
            - IS_GEMINILAKE(dev_priv) || E || IS_CANNONLAKE(dev_priv)
            + E || IS_DISPLAY_VER(dev_priv, 10)
            |
            - E || IS_GEMINILAKE(dev_priv) || E2 || IS_CANNONLAKE(dev_priv)
            + E || E2 || IS_DISPLAY_VER(dev_priv, 10)
            |
            - (IS_DISPLAY_VER(dev_priv, 10) || IS_GEMINILAKE(dev_priv))
            + IS_DISPLAY_VER(dev_priv, 10)
            |
            - (IS_GEMINILAKE(dev_priv) || IS_DISPLAY_VER(dev_priv, 10))
            + IS_DISPLAY_VER(dev_priv, 10)
            )
    
            @@ expression dev_priv; @@
            - (IS_DISPLAY_VER(dev_priv, 9) && !IS_GEMINILAKE(dev_priv))
            + IS_DISPLAY_VER(dev_priv, 9)
    
            @@ expression dev_priv; @@
            (
            - !(DISPLAY_VER(dev_priv) >= 11 || IS_DISPLAY_VER(dev_priv, 10))
            + DISPLAY_VER(dev_priv) < 10
            |
            - (DISPLAY_VER(dev_priv) >= 11 || IS_DISPLAY_VER(dev_priv, 10))
            + DISPLAY_VER(dev_priv) >= 10
            )
    
            @@ expression dev_priv, E; @@
            - E || DISPLAY_VER(dev_priv) >= 11 || IS_DISPLAY_VER(dev_priv, 10)
            + E || DISPLAY_VER(dev_priv) >= 10
    
            @@ expression dev_priv, E; @@
            - (IS_DISPLAY_RANGE(dev_priv, 11, E) || IS_DISPLAY_VER(dev_priv, 10))
            + IS_DISPLAY_RANGE(dev_priv, 10, E)
    
            @@ expression dev_priv; @@
            (
            - DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv) || IS_GEN9_LP(dev_priv)
            + DISPLAY_VER(dev_priv) >= 10 || IS_GEN9_LP(dev_priv)
            |
            - IS_GEN9_LP(dev_priv) || DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)
            + IS_GEN9_LP(dev_priv) || DISPLAY_VER(dev_priv) >= 10
            )
    
            @@ expression dev_priv, E; @@
            - !(DISPLAY_VER(dev_priv) >= E)
            + DISPLAY_VER(dev_priv) < E
    
    v2:
     - Convert gen10 conditions that don't include GLK into CNL conditions.
       (Ville)
    
    v3:
     - Rework coccinelle rules so that "ver>=10" turns into "ver>=11||is_cnl." (Ville)
    
    v3.1:
     - Manually re-add the ".display.version = 10" to glk_info after
       regenerating patch via Coccinelle.
    
    v4:
     - Also apply cocci rules to intel_pm.c and i915_irq.c!  (CI)
    
    Cc: Ville Syrjälä <ville.syrjala@intel.com>
    Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
    Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210322233840.4056851-1-matthew.d.roper@intel.com
    2b5a4562
intel_hdmi.c 89.8 KB