All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matt Roper <matthew.d.roper@intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: [Intel-gfx] [PATCH v2 00/23] Separate display version numbering and add XE_LPD (version 13)
Date: Thu, 11 Mar 2021 07:33:52 -0800	[thread overview]
Message-ID: <20210311153415.3024607-1-matthew.d.roper@intel.com> (raw)

Upcoming platforms will be using an updated display architecture called
"XE_LPD."  Despite the new name, XE_LPD is a pretty natural evolution
from the current design we've been using on TGL, RKL, DG1, and ADL-S.
This series provides the basic XE_LPD support that isn't tied to a
specific platform; any platforms incorporating the XE_LPD display IP
will have additional platform-specific display patches as well.

The arrival of this new display architecture coincides with a general
disaggregation of Intel GPUs' architecture version numbering for the
different component IP blocks.  Going forward it isn't accurate to talk
about a platform using INTEL_GEN() anymore since the various IP blocks
(graphics, media, display) are moving to independent internal numbering
schemes that may have different granularity and move at different
cadences; the hardware teams have asked us to start tracking these
values separately for "graphics," "media," and "display" such that
anywhere that we need to do a numerical comparison on the architecture
version, we should need to use an IP-specific version number instead of
INTEL_GEN().  This series takes the first step along that path by
introducing a DISPLAY_VER(i915) macro that should be used in place of
INTEL_GEN() throughout the display code.

Although the next couple platforms we release won't support it yet, the
current expectation is that in the future the IP version will be
provided to software via MMIO registers inside each IP block so that we
won't need to do manual translation of PCI device ID -> platform -> IP
versions.  Since those registers don't exist yet on current platforms
(or the next few we'll be revealing), for now we need to just hardcode
the IP versions into our device info structures.

Notes about display version numbering:
 - We take advantage of the separate DISPLAY_VER() numbering to
   eliminate the GLK special case in the display code --- GLK is
   classified as "gen9" in i915, but technically has version 10 display
   IP; we can now capture that directly in the platform definition and
   eliminate some of the special case conditions elsewhere in the code.
 - Similar simplification may be possible with VLV and CHV which are
   based on display IP that's older than their INTEL_GEN value would
   imply, but we'll leave those platforms be for now since the situation
   there is a bit more complicated.

Note that there are a few general XE_LPD changes that aren't included
in this series and will be sent separately:
 * Tiled surfaces need to be mapped into the GGTT in a special way
   (using "Display Page Tables").
 * Color management is programmed differently on Display13 (using a
   logarithmic scheme).  Since this relates to some new DRM property
   uapi, we'll just leave color management mostly disabled in this
   series and enable the new logarithmic color management later.
 * Dither support -- Based on the feedback in v1 of the series, we're
   probably going to need some uapi changes to handle dither properly in
   general; that can happen in other threads.

v2:
 - Incorporate the new "XE_LPD" preferred name from marketing
 - Introduce DISPLAY_VER() and apply it to the entire i915 display/
   subtree, as well as display-related code in i915_irq.c and
   intel_pm.c.
 - Rebase on latest drm-tip; some of the recent refactoring has moved
   things to different files (e.g., the SKL+ universal plane code).
 - Drop the dither patches since there's going to need to be some extra
   discussion on proper uapi.
 - Incorporate minor v1 review feedback from Lucas, Ville, Chris, and
   Jani.

The previous version of this series is available here:
  https://patchwork.freedesktop.org/series/86409/


Juha-Pekka Heikkilä (1):
  drm/i915/xelpd: Support 128k plane stride

Manasi Navare (1):
  drm/i915/xelpd: Add VRR guardband for VRR CTL

Matt Roper (15):
  drm/i915/display: Convert gen5/gen6 tests to
    IS_IRONLAKE/IS_SANDYBRIDGE
  drm/i915: Add DISPLAY_VER()
  drm/i915/display: Eliminate most usage of INTEL_GEN()
  drm/i915: Convert INTEL_GEN() to DISPLAY_VER() as appropriate in
    intel_pm.c
  drm/i915: Convert INTEL_GEN() to DISPLAY_VER() as appropriate in
    i915_irq.c
  drm/i915/display: Simplify GLK display version tests
  drm/i915/xelpd: add XE_LPD display characteristics
  drm/i915/xelpd: Handle proper AUX interrupt bits
  drm/i915/xelpd: Enhanced pipe underrun reporting
  drm/i915/xelpd: Define plane capabilities
  drm/i915/xelpd: Handle new location of outputs D and E
  drm/i915/xelpd: Add XE_LPD power wells
  drm/i915/xelpd: Increase maximum watermark lines to 255
  drm/i915/xelpd: Required bandwidth increases when VT-d is active
  drm/i915/xelpd: Add Wa_14011503030

Uma Shankar (1):
  drm/i915/xelpd: Handle LPSP for XE_LPD

Vandita Kulkarni (5):
  drm/i915/display/dsc: Refactor intel_dp_dsc_compute_bpp
  drm/i915/xelpd: Support DP1.4 compression BPPs
  drm/i915: Get slice height before computing rc params
  drm/i915/xelpd: Calculate VDSC RC parameters
  drm/i915/xelpd: Add rc_qp_table for rcparams calculation

 drivers/gpu/drm/i915/display/i9xx_plane.c     |  56 +-
 drivers/gpu/drm/i915/display/icl_dsi.c        |  14 +-
 drivers/gpu/drm/i915/display/intel_atomic.c   |   7 +-
 drivers/gpu/drm/i915/display/intel_audio.c    |  18 +-
 drivers/gpu/drm/i915/display/intel_bios.c     |  22 +-
 drivers/gpu/drm/i915/display/intel_bw.c       |  13 +-
 drivers/gpu/drm/i915/display/intel_cdclk.c    |  66 +--
 drivers/gpu/drm/i915/display/intel_color.c    |  32 +-
 .../gpu/drm/i915/display/intel_combo_phy.c    |   8 +-
 drivers/gpu/drm/i915/display/intel_crt.c      |  12 +-
 drivers/gpu/drm/i915/display/intel_crtc.c     |  20 +-
 drivers/gpu/drm/i915/display/intel_csr.c      |   4 +-
 drivers/gpu/drm/i915/display/intel_cursor.c   |  14 +-
 drivers/gpu/drm/i915/display/intel_ddi.c      | 129 ++---
 .../drm/i915/display/intel_ddi_buf_trans.c    |   4 +-
 drivers/gpu/drm/i915/display/intel_display.c  | 265 +++++-----
 drivers/gpu/drm/i915/display/intel_display.h  |   8 +
 .../drm/i915/display/intel_display_debugfs.c  |  50 +-
 .../drm/i915/display/intel_display_power.c    | 480 +++++++++++++++++-
 .../drm/i915/display/intel_display_power.h    |   9 +
 .../drm/i915/display/intel_display_types.h    |   2 +-
 drivers/gpu/drm/i915/display/intel_dp.c       | 110 ++--
 drivers/gpu/drm/i915/display/intel_dp_aux.c   |  24 +-
 drivers/gpu/drm/i915/display/intel_dp_mst.c   |  20 +-
 drivers/gpu/drm/i915/display/intel_dpll.c     |  12 +-
 drivers/gpu/drm/i915/display/intel_dpll_mgr.c |  20 +-
 drivers/gpu/drm/i915/display/intel_dsi_vbt.c  |   4 +-
 drivers/gpu/drm/i915/display/intel_fbc.c      |  62 +--
 drivers/gpu/drm/i915/display/intel_fdi.c      |   6 +-
 .../drm/i915/display/intel_fifo_underrun.c    |  73 ++-
 drivers/gpu/drm/i915/display/intel_gmbus.c    |   4 +-
 drivers/gpu/drm/i915/display/intel_hdcp.c     |  11 +-
 drivers/gpu/drm/i915/display/intel_hdmi.c     |  29 +-
 drivers/gpu/drm/i915/display/intel_lvds.c     |  12 +-
 drivers/gpu/drm/i915/display/intel_overlay.c  |  12 +-
 drivers/gpu/drm/i915/display/intel_panel.c    |  18 +-
 drivers/gpu/drm/i915/display/intel_pipe_crc.c |  16 +-
 drivers/gpu/drm/i915/display/intel_pps.c      |   6 +-
 drivers/gpu/drm/i915/display/intel_psr.c      |  47 +-
 .../gpu/drm/i915/display/intel_qp_tables.c    | 272 ++++++++++
 .../gpu/drm/i915/display/intel_qp_tables.h    |  34 ++
 drivers/gpu/drm/i915/display/intel_sdvo.c     |   8 +-
 drivers/gpu/drm/i915/display/intel_sprite.c   |  16 +-
 drivers/gpu/drm/i915/display/intel_tc.c       |   8 +-
 drivers/gpu/drm/i915/display/intel_tv.c       |   8 +-
 drivers/gpu/drm/i915/display/intel_vdsc.c     | 128 ++++-
 drivers/gpu/drm/i915/display/intel_vga.c      |   4 +-
 drivers/gpu/drm/i915/display/intel_vrr.c      |  56 +-
 drivers/gpu/drm/i915/display/skl_scaler.c     |   8 +-
 .../drm/i915/display/skl_universal_plane.c    | 125 +++--
 drivers/gpu/drm/i915/i915_drv.h               |   6 +
 drivers/gpu/drm/i915/i915_irq.c               |  92 ++--
 drivers/gpu/drm/i915/i915_pci.c               |  13 +-
 drivers/gpu/drm/i915/i915_reg.h               |  47 +-
 drivers/gpu/drm/i915/intel_device_info.c      |   2 +-
 drivers/gpu/drm/i915/intel_device_info.h      |   3 +
 drivers/gpu/drm/i915/intel_pm.c               | 147 +++---
 57 files changed, 1888 insertions(+), 808 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/display/intel_qp_tables.c
 create mode 100644 drivers/gpu/drm/i915/display/intel_qp_tables.h

-- 
2.25.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

             reply	other threads:[~2021-03-11 15:34 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-11 15:33 Matt Roper [this message]
2021-03-11 15:33 ` [Intel-gfx] [PATCH v2 01/23] drm/i915/display: Convert gen5/gen6 tests to IS_IRONLAKE/IS_SANDYBRIDGE Matt Roper
2021-03-11 15:33 ` [Intel-gfx] [PATCH v2 02/23] drm/i915: Add DISPLAY_VER() Matt Roper
2021-03-17 17:45   ` Jani Nikula
2021-03-19 20:49     ` Matt Roper
2021-03-11 15:33 ` [Intel-gfx] [PATCH v2 03/23] drm/i915/display: Eliminate most usage of INTEL_GEN() Matt Roper
2021-03-15 20:14   ` Lucas De Marchi
2021-03-17 17:57     ` Jani Nikula
2021-03-17 18:37       ` Lucas De Marchi
2021-03-11 15:33 ` [Intel-gfx] [PATCH v2 04/23] drm/i915: Convert INTEL_GEN() to DISPLAY_VER() as appropriate in intel_pm.c Matt Roper
2021-03-15 20:17   ` Lucas De Marchi
2021-03-11 15:33 ` [Intel-gfx] [PATCH v2 05/23] drm/i915: Convert INTEL_GEN() to DISPLAY_VER() as appropriate in i915_irq.c Matt Roper
2021-03-15 20:19   ` Lucas De Marchi
2021-03-11 15:33 ` [Intel-gfx] [PATCH v2 06/23] drm/i915/display: Simplify GLK display version tests Matt Roper
2021-03-15 20:21   ` Lucas De Marchi
2021-03-11 15:33 ` [Intel-gfx] [PATCH v2 07/23] drm/i915/xelpd: add XE_LPD display characteristics Matt Roper
2021-03-17 17:15   ` Jani Nikula
2021-03-11 15:34 ` [Intel-gfx] [PATCH v2 08/23] drm/i915/xelpd: Handle proper AUX interrupt bits Matt Roper
2021-03-11 15:34 ` [Intel-gfx] [PATCH v2 09/23] drm/i915/xelpd: Enhanced pipe underrun reporting Matt Roper
2021-03-11 15:34 ` [Intel-gfx] [PATCH v2 10/23] drm/i915/xelpd: Define plane capabilities Matt Roper
2021-03-11 15:34 ` [Intel-gfx] [PATCH v2 11/23] drm/i915/xelpd: Support 128k plane stride Matt Roper
2021-03-11 15:34 ` [Intel-gfx] [PATCH v2 12/23] drm/i915/xelpd: Handle new location of outputs D and E Matt Roper
2021-03-11 15:34 ` [Intel-gfx] [PATCH v2 13/23] drm/i915/xelpd: Add XE_LPD power wells Matt Roper
2021-03-11 15:34 ` [Intel-gfx] [PATCH v2 14/23] drm/i915/xelpd: Handle LPSP for XE_LPD Matt Roper
2021-03-11 15:34 ` [Intel-gfx] [PATCH v2 15/23] drm/i915/xelpd: Increase maximum watermark lines to 255 Matt Roper
2021-03-11 15:34 ` [Intel-gfx] [PATCH v2 16/23] drm/i915/xelpd: Required bandwidth increases when VT-d is active Matt Roper
2021-03-11 15:34 ` [Intel-gfx] [PATCH v2 17/23] drm/i915/xelpd: Add Wa_14011503030 Matt Roper
2021-03-11 15:34 ` [Intel-gfx] [PATCH v2 18/23] drm/i915/display/dsc: Refactor intel_dp_dsc_compute_bpp Matt Roper
2021-03-11 15:34 ` [Intel-gfx] [PATCH v2 19/23] drm/i915/xelpd: Support DP1.4 compression BPPs Matt Roper
2021-03-11 15:34 ` [Intel-gfx] [PATCH v2 20/23] drm/i915: Get slice height before computing rc params Matt Roper
2021-03-11 15:34 ` [Intel-gfx] [PATCH v2 21/23] drm/i915/xelpd: Calculate VDSC RC parameters Matt Roper
2021-03-11 15:34 ` [Intel-gfx] [PATCH v2 22/23] drm/i915/xelpd: Add rc_qp_table for rcparams calculation Matt Roper
2021-03-11 15:34 ` [Intel-gfx] [PATCH v2 23/23] drm/i915/xelpd: Add VRR guardband for VRR CTL Matt Roper
2021-03-11 16:02 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Separate display version numbering and add XE_LPD (version 13) Patchwork
2021-03-11 16:04 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2021-03-11 16:29 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-03-11 18:36 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210311153415.3024607-1-matthew.d.roper@intel.com \
    --to=matthew.d.roper@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.