Xe3p_lpd introduces new register bits to program a common SDP
Transmission line that will be used by the Hardware to position the
SDPs. Along with this, another new register is also added to stagger
the different SDPs.
This series adds support for programming the Common SDP Transmission Line
(CMN_SDP_TL) and its stagger control registers.
Rev2:
- Add tracking for AS SDP Transmission line first. Instead of directly
programming it in the register, compute the state during
compute_config_late() and write the value from crtc_state.
Readout from the register through a vrr helper, since the register is
defined in context of VRR and will be used for both DP and HDMI VRR
packets.
- Add support to track other SDP transmission lines, instead of stagger
values.
- Compute the transmission lines in compute_config_late path and add
readout.
- Always write the Common SDP Transmission line and other stagger
values, whether the packets are sent or not.
- Dump SDP transmission lines in crtc_state.
Rev3:
- Introduce new files for handling the Data Island Packets (DIPs)
programming in one place. (Ville)
- Extract the Transmission Line programming for
HDMI Extended Metadata Packet (EMP) and Adaptive Sync SDP (AS SDP)
i.e. EMP_AS_SDP_TL in the new file.
- Add programming for Common Base SDP Transmission lines and other
stagger offsets in the new file.
- Add a #TODO to extract other helpers that deal with Data Island Packets
and VIDEO_DIP registers.
- Place the HAS_* Macros related to DIP in the intel_dip.h file
instead of intel_display_devices.h (Jani)
- Make function names more descriptive and avoid overuse of multiple
acronyms. (Jani)
Note:
- Though I have fixed the naming as suggested in most places, I
have retained HAS_EMP_AS_SDP_TL for the following reasons:
1) Lack of an apt name that avoids the acronym for
'Extended Metadata Packet Adaptive Sync Secondary Packet Transmission
Line'.
2) Keeping this name makes it easier to find and map with the exact name
for such a complex register name.
However, I am open to suggestions for a better name.
Rev4:
- Drop the patch to check for DP encoder before writing EMP_AS_SDP_TL
register. Instead reset the register to 0 for non DP encoder case.
Ankit Nautiyal (11):
drm/i915/dip: Add new file to handle Data Island Packet hardware
drm/i915/vrr: Use the helper to write EMP_AS_SDP_TL register
drm/i915/intel_dip: Add check for DP encoder
drm/i915/dp: Add helper to get AS SDP Transmission Line
drm/i915/display: Add crtc state for DIP transmission lines
drm/i915/dip: Store and use AS SDP transmission line from crtc state
drm/i915/display: Add HAS_COMMON_SDP_TL macro
drm/i915/dp: Store SDP transmission lines in crtc_state
drm/i915/dp: Introduce helpers to enable/disable CMN SDP Transmission
line
drm/i915/dip: Enable Common SDP Transmission line
drm/i915/display: Dump DIP Transmission lines
Arun R Murthy (1):
drm/i915/nvl: Add register definitions for common SDP Transmission
Line
drivers/gpu/drm/i915/Makefile | 1 +
.../drm/i915/display/intel_crtc_state_dump.c | 9 +
drivers/gpu/drm/i915/display/intel_ddi.c | 5 +
drivers/gpu/drm/i915/display/intel_dip.c | 193 ++++++++++++++++++
drivers/gpu/drm/i915/display/intel_dip.h | 67 ++++++
drivers/gpu/drm/i915/display/intel_dip_regs.h | 36 ++++
drivers/gpu/drm/i915/display/intel_display.c | 7 +
.../drm/i915/display/intel_display_types.h | 3 +
drivers/gpu/drm/i915/display/intel_dp.c | 23 +++
drivers/gpu/drm/i915/display/intel_dp.h | 1 +
drivers/gpu/drm/i915/display/intel_vrr.c | 13 +-
drivers/gpu/drm/i915/display/intel_vrr_regs.h | 6 -
drivers/gpu/drm/xe/Makefile | 1 +
13 files changed, 348 insertions(+), 17 deletions(-)
create mode 100644 drivers/gpu/drm/i915/display/intel_dip.c
create mode 100644 drivers/gpu/drm/i915/display/intel_dip.h
create mode 100644 drivers/gpu/drm/i915/display/intel_dip_regs.h
--
2.45.2