class DdiBufferControl
Defined at line 332 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
DDI_BUF_CTL (DDI Buffer Control)
Tiger Lake: IHD-OS-TGL-Vol 2c-1.22-Rev2.0 Part 1 pages 352-355
DG1: IHD-OS-DG1-Vol 2c-2.21 pages 331-334
Kaby Lake: IHD-OS-KBL-Vol 2c-1.17 Part 1 pages 442-445
Skylake: IHD-OS-SKL-Vol 2c-05.16 Part 1 pages 438-441
Public Members
field_enabled_335
field_override_training_tiger_lake_343
field_adjust_phy_parameters_tiger_lake_350
field_display_port_phy_config_kaby_lake_360
field_port_reversal_381
field_type_c_display_port_lane_staggering_delay_tiger_lake_393
field_is_idle_396
field_ddi_e_disabled_kaby_lake_407
field_display_port_lane_count_selection_414
field_boot_time_port_detect_pin_status_450
Public Methods
template <, >
typename SelfType::ValueType enabled ()
If true, the DDI buffer is enabled.
Defined at line 335 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
SelfType & set_enabled (typename SelfType::ValueType val)
If true, the DDI buffer is enabled.
Defined at line 335 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
typename SelfType::ValueType override_training_tiger_lake ()
If true, the DDI ignores PHY parameter changes during link training.
The impacted PHY parameters include voltage swing and pre-emphasis. This
field is generally set when using specific PHY parameters for the DDI.
This field does not exist (is reserved) on Kaby Lake and Skylake.
Defined at line 343 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
SelfType & set_override_training_tiger_lake (typename SelfType::ValueType val)
If true, the DDI ignores PHY parameter changes during link training.
The impacted PHY parameters include voltage swing and pre-emphasis. This
field is generally set when using specific PHY parameters for the DDI.
This field does not exist (is reserved) on Kaby Lake and Skylake.
Defined at line 343 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
typename SelfType::ValueType adjust_phy_parameters_tiger_lake ()
If true, the DDI uses adjusted PHY parameter values.
The value is ignored if `override_training` is false.
This field does not exist (is reserved) on Kaby Lake and Skylake.
Defined at line 350 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
SelfType & set_adjust_phy_parameters_tiger_lake (typename SelfType::ValueType val)
If true, the DDI uses adjusted PHY parameter values.
The value is ignored if `override_training` is false.
This field does not exist (is reserved) on Kaby Lake and Skylake.
Defined at line 350 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
typename SelfType::ValueType display_port_phy_config_kaby_lake ()
Selects one of the DisplayPort PHY configurations set up in DDI_BUF_TRANS.
DDIs A and E support indexes 0 through 9. DDIs B-D only support indexes 0
through 8, because the 9th PHY configuration is used for HDMI.
This field is meaningless for HDMI and DVI.
This field does not exist (is reserved) on Tiger Lake and DG1.
Defined at line 360 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
SelfType & set_display_port_phy_config_kaby_lake (typename SelfType::ValueType val)
Selects one of the DisplayPort PHY configurations set up in DDI_BUF_TRANS.
DDIs A and E support indexes 0 through 9. DDIs B-D only support indexes 0
through 8, because the 9th PHY configuration is used for HDMI.
This field is meaningless for HDMI and DVI.
This field does not exist (is reserved) on Tiger Lake and DG1.
Defined at line 360 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
typename SelfType::ValueType port_reversal ()
If true, data is swapped on the lanes output by the port.
This field must not be changed while the DDI is enabled.
Tiger Lake and DG1:
FIA handles lane reversal for Thunderbolt and USB-C DisplayPort Alt Mode,
and this field should be set to false in those cases. Static and fixed
connections (DisplayPort, HDMI) through the FIA only use this field in
"No pin Assignment (Non Type-C DP)" static configurations. Other
connections use the field.
Kaby Lake and Skylake:
For DDIs B-D, enabling swaps lanes 0
<
-> 3 and lanes 1
<
-> 2. If DDI E is
enabled (in DDI A Lane Capability Control), then DDI A reversal swaps its
two remaining lanes (0
<
-> 1). If DDI E is disabled, DDI A reversal acts
the same as B-D reversal (lanes 0
<
-> 3 and 1
<
->2 are swapped). DDI E does
not support port reversal.
Defined at line 381 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
SelfType & set_port_reversal (typename SelfType::ValueType val)
If true, data is swapped on the lanes output by the port.
This field must not be changed while the DDI is enabled.
Tiger Lake and DG1:
FIA handles lane reversal for Thunderbolt and USB-C DisplayPort Alt Mode,
and this field should be set to false in those cases. Static and fixed
connections (DisplayPort, HDMI) through the FIA only use this field in
"No pin Assignment (Non Type-C DP)" static configurations. Other
connections use the field.
Kaby Lake and Skylake:
For DDIs B-D, enabling swaps lanes 0
<
-> 3 and lanes 1
<
-> 2. If DDI E is
enabled (in DDI A Lane Capability Control), then DDI A reversal swaps its
two remaining lanes (0
<
-> 1). If DDI E is disabled, DDI A reversal acts
the same as B-D reversal (lanes 0
<
-> 3 and 1
<
->2 are swapped). DDI E does
not support port reversal.
Defined at line 381 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
SelfType & set_type_c_display_port_lane_staggering_delay_tiger_lake (typename SelfType::ValueType val)
Delay used to stagger the assertion/deassertion of the port lane enables.
The value is expressed in multiples of the symbol clock period, so it
depends on the link frequency.
The delay should be at least 100ns when the port is used in USB Type C
mode. In all other cases, the delay should be zero.
This field does not exist (is reserved) on Kaby Lake and Skylake, which
don't have Type C DDIs.
Defined at line 393 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
typename SelfType::ValueType type_c_display_port_lane_staggering_delay_tiger_lake ()
Delay used to stagger the assertion/deassertion of the port lane enables.
The value is expressed in multiples of the symbol clock period, so it
depends on the link frequency.
The delay should be at least 100ns when the port is used in USB Type C
mode. In all other cases, the delay should be zero.
This field does not exist (is reserved) on Kaby Lake and Skylake, which
don't have Type C DDIs.
Defined at line 393 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
typename SelfType::ValueType is_idle ()
If true, the DDI is idle.
Defined at line 396 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
SelfType & set_is_idle (typename SelfType::ValueType val)
If true, the DDI is idle.
Defined at line 396 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
typename SelfType::ValueType ddi_e_disabled_kaby_lake ()
If false, two lanes from DDI A are repurposed to form DDI E.
If true, DDI A has four lanes, and behaves similarly to DDIs B-D. If false,
This field is only meaningful on DDI A, whose lanes get redistributed to
DDI E. The field must be programmed at boot time (based on the board
configuration) and must not be changed afterwards.
This field does not exist (is reserved) on Tiger Lake or DG1.
Defined at line 407 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
SelfType & set_ddi_e_disabled_kaby_lake (typename SelfType::ValueType val)
If false, two lanes from DDI A are repurposed to form DDI E.
If true, DDI A has four lanes, and behaves similarly to DDIs B-D. If false,
This field is only meaningful on DDI A, whose lanes get redistributed to
DDI E. The field must be programmed at boot time (based on the board
configuration) and must not be changed afterwards.
This field does not exist (is reserved) on Tiger Lake or DG1.
Defined at line 407 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
typename SelfType::ValueType display_port_lane_count_selection ()
Selects the number of DisplayPort lanes enabled.
The field's value is the number of lanes minus 1. 0 = x1 lane, 1 = x2
lanes, 3 = x4 lanes. display_port_lane_count() and
set_display_port_lane_count() take care of this encoding detail.
Defined at line 414 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
SelfType & set_display_port_lane_count_selection (typename SelfType::ValueType val)
Selects the number of DisplayPort lanes enabled.
The field's value is the number of lanes minus 1. 0 = x1 lane, 1 = x2
lanes, 3 = x4 lanes. display_port_lane_count() and
set_display_port_lane_count() take care of this encoding detail.
Defined at line 414 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
uint8_t display_port_lane_count ()
The number of DisplayPort lanes enabled.
This field is not meaningful for HDMI, which always uses all the lanes.
When the DDI is in DisplayPort mode, the field must match the corresponding
setting in TRANS_DDI_FUNC_CTL for the transcoder attached to this DDI.
On Kaby Lake and Skylake, DDI E only supports 1 and 2 lanes
(if it's enabled), since it takes two lanes from DDI A. On the same
hardware, DDI A always supports x1 and x2, and supports x4 if DDI E is
disabled (and therefore not taking away 2 lanes from DDI A).
Defined at line 427 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
DdiBufferControl & set_display_port_lane_count (uint8_t lane_count)
See display_port_lane_count() for details.
Defined at line 434 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
typename SelfType::ValueType boot_time_port_detect_pin_status ()
The level of the port detect pin at boot time.
This field is only meaningful on DDI A. On Skylake and Kaby Lake, the other
DDIs' port detect pin status is communicated in SFUSE_STRAP.
Defined at line 450 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
template <, >
SelfType & set_boot_time_port_detect_pin_status (typename SelfType::ValueType val)
The level of the port detect pin at boot time.
This field is only meaningful on DDI A. On Skylake and Kaby Lake, the other
DDIs' port detect pin status is communicated in SFUSE_STRAP.
Defined at line 450 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
hwreg::RegisterAddr<DdiBufferControl> GetForKabyLakeDdi (intel_display::DdiId ddi_id)
For Kaby Lake and Skylake DDI A - DDI E.
Defined at line 453 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h
hwreg::RegisterAddr<DdiBufferControl> GetForTigerLakeDdi (intel_display::DdiId ddi_id)
For Tiger Lake and DG1.
Defined at line 462 of file ../../src/graphics/display/drivers/intel-display/registers-ddi.h