• Lucas De Marchi's avatar
    drm/i915/dg1: map/unmap pll clocks · 11ffe972
    Lucas De Marchi authored
    DG1 uses 2 registers for the ddi clock mapping, with PHY A and B using
    DPCLKA_CFGCR0 and PHY C and D using DPCLKA1_CFGCR0. Hide this behind a
    single macro that chooses the correct register according to the phy
    being accessed, use the correct bitfields for each pll/phy and implement
    separate functions for DG1 since it doesn't share much with ICL/TGL
    anymore.
    
    The previous values were correct for PHY A and B since they were using
    the same register as before and the bitfields were matching.
    
    v2: Add comment and try to simplify DG1_DPCLKA* macros by reusing
    previous ones
    v3:
      - Fix DG1_DPCLKA_CFGCR0_DDI_CLK_SEL_MASK() after wrong macro reuse
      - Move phy -> id map to a separate macro (Aditya)
      - Remove DG1_DPCLKA_CFGCR0_DDI_CLK_SEL_MASK where not required
        (Aditya)
      - Use drm_WARN_ON
    
    Cc: José Roberto de Souza <jose.souza@intel.com>
    Cc: Clinton Taylor <Clinton.A.Taylor@intel.com>
    Cc: Matt Roper <matthew.d.roper@intel.com>
    Cc: Aditya Swarup <aditya.swarup@intel.com>
    Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
    Reviewed-by: default avatarAditya Swarup <aditya.swarup@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20201106210006.837953-1-lucas.demarchi@intel.com
    11ffe972
i915_reg.h 495 KB