1. 30 8月, 2019 1 次提交
  2. 24 8月, 2019 1 次提交
  3. 23 8月, 2019 1 次提交
    • J
      drm/i915/psr: Make PSR registers relative to transcoders · 4ab4fa10
      José Roberto de Souza 提交于
      PSR registers are a mess, some have the full address while others just
      have the additional offset from psr_mmio_base.
      
      For BDW+ psr_mmio_base is nothing more than TRANSCODER_EDP_OFFSET +
      0x800 and using it makes more difficult for people with an PSR
      register address or PSR register name from from BSpec as i915 also
      don't match the BSpec names.
      For HSW psr_mmio_base is _DDI_BUF_CTL_A + 0x800 and PSR registers are
      only available in DDIA.
      
      Other reason to make relative to transcoder is that since BDW every
      transcoder have PSR registers, so in theory it should be possible to
      have PSR enabled in a non-eDP transcoder.
      
      So for BDW+ we can use _TRANS2() to get the register offset of any
      PSR register in any transcoder while for HSW we have _HSW_PSR_ADJ
      that will calculate the register offset for the single PSR instance,
      noting that we are already guarded about trying to enable PSR in other
      port than DDIA on HSW by the 'if (dig_port->base.port != PORT_A)' in
      intel_psr_compute_config(), this check should only be valid for HSW
      and will be changed in future.
      PSR2 registers and PSR_EVENT was added after Haswell so that is why
      _PSR_ADJ() is not used in some macros.
      
      The only registers that can not be relative to transcoder are
      PSR_IMR and PSR_IIR that are not relative to anything, so keeping it
      hardcoded. That changed for TGL but it will be handled in another
      patch.
      
      Also removing BDW_EDP_PSR_BASE from GVT because it is not used as it
      is the only PSR register that GVT have.
      
      v5:
      - Macros changed to be more explicit about HSW (Dhinakaran)
      - Squashed with the patch that added the tran parameter to the
      macros (Dhinakaran)
      
      v6:
      - Checking for interruption errors after module reload in the
      transcoder that will be used (Dhinakaran)
      - Using lowercase to the registers offsets
      
      v7:
      - Removing IS_HASWELL() from registers macros(Jani)
      
      Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
      Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Zhi Wang <zhi.a.wang@intel.com>
      Reviewed-by: NLucas De Marchi <lucas.demarchi@intel.com>
      Signed-off-by: NJosé Roberto de Souza <jose.souza@intel.com>
      Signed-off-by: NLucas De Marchi <lucas.demarchi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190820223325.27490-1-jose.souza@intel.com
      4ab4fa10
  4. 20 8月, 2019 1 次提交
  5. 17 8月, 2019 3 次提交
  6. 14 8月, 2019 2 次提交
  7. 09 8月, 2019 1 次提交
  8. 08 8月, 2019 1 次提交
  9. 02 8月, 2019 1 次提交
  10. 31 7月, 2019 5 次提交
  11. 27 7月, 2019 2 次提交
  12. 19 7月, 2019 1 次提交
  13. 14 7月, 2019 1 次提交
  14. 13 7月, 2019 1 次提交
    • A
      drm/i915: Add modular FIA · 0caf6257
      Anusha Srivatsa 提交于
      Some platforms may have Modular FIA. If Modular FIA is used in the SOC,
      then Display Driver will access the additional instances of
      FIA based on pre-assigned offset in GTTMADDR space.
      
      Each Modular FIA instance has its own IOSF Sideband Port ID
      and it houses only 2 Type-C Port. In SOC that has more than
      two Type-C Ports, there are multiple instances of Modular FIA.
      Gunit will need to use different destination ID when it access
      different pair of Type-C Port.
      
      The DFLEXDPSP register has Modular FIA bit starting on Tiger Lake.  If
      Modular FIA is used in the SOC, this register bit exists in all the
      instances of Modular FIA. IOM FW is required to program only the MF bit
      in first FIA instance that houses the Type-C Port 0 and Port 1, for
      Display Driver to read from.
      
      v2 (Lucas):
        - Move all accesses to FIA to be contained in intel_tc.c, along with
          display_fia that is now called tc_phy_fia
        - Save the fia instance number on intel_digital_port, so we don't have
          to query if modular FIA is used on every access
      v3 (Lucas): Make function static
      v4 (Lucas): Move enum phy_fia to the header and use it in
         intel_digital_port (suggested by Ville)
      v5 (Lucas): Add comment about the mapping between FIA and TC port
         (suggested by Stuart)
      
      Cc: Jani Nikula <jani.nikula@intel.com>
      Signed-off-by: NAnusha Srivatsa <anusha.srivatsa@intel.com>
      Signed-off-by: NLucas De Marchi <lucas.demarchi@intel.com>
      Acked-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NStuart Summers <stuart.summers@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190712055706.12143-2-lucas.demarchi@intel.com
      0caf6257
  15. 12 7月, 2019 9 次提交
  16. 11 7月, 2019 2 次提交
  17. 05 7月, 2019 2 次提交
  18. 01 7月, 2019 1 次提交
  19. 21 6月, 2019 2 次提交
  20. 20 6月, 2019 1 次提交
    • M
      drm/i915/ehl: Allow combo PHY A to drive a third external display · bdeb18db
      Matt Roper 提交于
      EHL has a mux on combo PHY A that allows it to be driven either by an
      internal display (DDI-A or DSI DPHY) or by an external display (DDI-D).
      This is a motherboard design decision that can not be changed on the
      fly.  Unfortunately there are no strap registers that allow us to detect
      the board configuration directly, so let's use the VBT to try to figure
      it out and program the mux accordingly.
      
      For now if we run across a broken VBT that tries to claim that PHY A
      is attached to both internal and external displays at the same time,
      we'll resolve the conflict in favor of the internal display.  To help
      debug these kind of bad VBT's, let's also add a quick DRM_DEBUG message
      during child device parsing so that it's easier to understand these
      cases if they show up in bug reports.
      
      v2:
       - Confirmed that VBT's dvo port refers to the DDI and not the PHY.
         Thus we can check more explicitly for (ddi_d && !(ddi_a || dsi)).  If
         a bad VBT contradicts itself, let internal display win.  (Ville)
      
      v3:
       - Switch condition from !IS_ICELAKE to IS_ELKHARTLAKE.  Although the
         convention is usually to assume that future platforms will inherit
         all current platform behavior, this feels more like a one-platform
         quirk.  (Ville)
       - Update commit message to describe what we do if/when we encounter
         broken VBT's, and note that the new debug print during child device
         parsing is intentional.
      
      Cc: Clint Taylor <Clinton.A.Taylor@intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190618175131.9139-1-matthew.d.roper@intel.com
      bdeb18db
  21. 19 6月, 2019 1 次提交