1. 06 Oct, 2020 1 commit
    • Imre Deak's avatar
      drm/i915/skl: Work around incorrect BIOS WRPLL PDIV programming · 7a8a95f5
      Imre Deak authored
      The BIOS of at least one ASUS-Z170M system with an SKL I have programs
      the 101b WRPLL PDIV divider value, which is the encoding for PDIV=7 with
      bit#0 incorrectly set.
      
      This happens with the
      
      "3840x2160": 30 262750 3840 3888 3920 4000 2160 2163 2168 2191 0x48 0x9
      
      HDMI mode (scaled from a 1024x768 src fb) set by BIOS and the
      
      ref_clock=24000, dco_integer=383, dco_fraction=5802, pdiv=7, qdiv=1, kdiv=1
      
      WRPLL parameters (assuming PDIV=7 was the intended setting). This
      corresponds to 262749 PLL frequency/port clock.
      
      Later the driver sets the same mode for which it calculates the same
      dco_int/dco_frac/div WRPLL parameters (with the correct PDIV=7 encoding).
      
      Based on the above, let's assume that PDIV=7 was intended and the HW
      just ignores bit#0 in the PDIV register field for this setting, treating
      100b and 101b encodings the same way.
      
      While at it add the MISSING_CASE() for the p0,p2 divider decodings.
      
      v2: (Ville)
      - Add a define for the incorrect divider value.
      - Emit only a debug message when detecting the incorrect divider value.
      - Use fallthrough from the incorrect divider value case.
      - Add the MISSING_CASE()s.
      
      v3: Return 0 freq for incorrect divider values. (Ville)
      
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201006013555.1488262-1-imre.deak@intel.com
      7a8a95f5
  2. 05 Oct, 2020 2 commits
  3. 02 Oct, 2020 1 commit
  4. 01 Oct, 2020 13 commits
  5. 30 Sep, 2020 2 commits
  6. 28 Sep, 2020 21 commits