class DynamicFlexIoScratchPad
Defined at line 188 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h
PORT_TX_DFLEXDPSP (PORT_TX_DFLEXDPSP1)
Dynamic FlexIO DP Scratch Pad for Type-C Connectors
The connector ID here is the logical number for each FIA. Type-C port to FIA
connector ID mapping is available at:
Tiger Lake: IHD-OS-TGL-Vol 12-1.22-Rev2.0 "TypeC Programming" > "Port
Mapping" table, Page 400.
Tiger Lake: IHD-OS-TGL-Vol 2c-1.22-Rev 2.0 Part 2, Pages 919-922.
Public Members
field_type_c_live_state_connector_1_201
field_firmware_supports_mfd_214
field_display_port_tx_lane_assignment_bits_connector_1_226
field_type_c_live_state_connector_0_232
field_is_modular_flexi_io_adapter_245
field_display_port_tx_lane_assignment_bits_connector_0_252
Public Methods
template <, >
SelfType & set_type_c_live_state_connector_1 (typename SelfType::ValueType val)
This indicates whether a display is connected to the Type-C connector and
the type (DP-Alt on Type-C, or Thunderbolt) of the display.
See enum class `TypeCLiveState` for valid values.
Drivers can use the helper method `type_c_live_state` to get Type-C state
for a given DDI.
The register has bits 0-7 representing the states for connector 0 to 7.
Since on Tiger Lake each FIA only connects to two connectors, we only
define the bits for connector 0 and 1 in this class.
Defined at line 201 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h
template <, >
typename SelfType::ValueType type_c_live_state_connector_1 ()
This indicates whether a display is connected to the Type-C connector and
the type (DP-Alt on Type-C, or Thunderbolt) of the display.
See enum class `TypeCLiveState` for valid values.
Drivers can use the helper method `type_c_live_state` to get Type-C state
for a given DDI.
The register has bits 0-7 representing the states for connector 0 to 7.
Since on Tiger Lake each FIA only connects to two connectors, we only
define the bits for connector 0 and 1 in this class.
Defined at line 201 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h
template <, >
typename SelfType::ValueType firmware_supports_mfd ()
True if the IOM (Type C) firmware version supports MFD.
If this bit is false, the IOM (Type C subsystem microcontroller) firmware
is too old to support MFD. This configuration is not supported by our
driver, as we assume MFD is always supported when configuring the Type-C
clock.
The MFD acronym is not explained in Intel's documentation, but it probably
stands for Multi-functional display (simultaneous DisplayPort and USB
Enhanced SuperSpeed) over USB Type-C, as described in VESA DisplayPort Alt
Mode Standard Version 1.0b, Section 4.1 "Scenario 1 USB Type-C Cable".
Defined at line 214 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h
template <, >
SelfType & set_firmware_supports_mfd (typename SelfType::ValueType val)
True if the IOM (Type C) firmware version supports MFD.
If this bit is false, the IOM (Type C subsystem microcontroller) firmware
is too old to support MFD. This configuration is not supported by our
driver, as we assume MFD is always supported when configuring the Type-C
clock.
The MFD acronym is not explained in Intel's documentation, but it probably
stands for Multi-functional display (simultaneous DisplayPort and USB
Enhanced SuperSpeed) over USB Type-C, as described in VESA DisplayPort Alt
Mode Standard Version 1.0b, Section 4.1 "Scenario 1 USB Type-C Cable".
Defined at line 214 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h
template <, >
typename SelfType::ValueType display_port_tx_lane_assignment_bits_connector_1 ()
Firmware writes to the bits to indicate the PHY lane assignment for
display. Each bit correspond to a Type-C PHY lane (0-3).
Drivers can use the helper method `display_port_tx_lane_assignment` to get
Type-C transmitter lane assignment for a given DDI, or use
`display_port_assigned_tx_lane_count` to count lanes assigned for DDI.
The register has bits 0-7 representing the states for connector 0 to 7.
Since on Tiger Lake each FIA only connects to two connectors, we only
define the bits for connector 0 and 1 in this class.
Defined at line 226 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h
template <, >
SelfType & set_display_port_tx_lane_assignment_bits_connector_1 (typename SelfType::ValueType val)
Firmware writes to the bits to indicate the PHY lane assignment for
display. Each bit correspond to a Type-C PHY lane (0-3).
Drivers can use the helper method `display_port_tx_lane_assignment` to get
Type-C transmitter lane assignment for a given DDI, or use
`display_port_assigned_tx_lane_count` to count lanes assigned for DDI.
The register has bits 0-7 representing the states for connector 0 to 7.
Since on Tiger Lake each FIA only connects to two connectors, we only
define the bits for connector 0 and 1 in this class.
Defined at line 226 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h
template <, >
SelfType & set_type_c_live_state_connector_0 (typename SelfType::ValueType val)
Same as `type_c_live_state_connector_1` but for Connector 0.
Drivers can use the helper method `type_c_live_state` to get Type-C state
for a given DDI.
Defined at line 232 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h
template <, >
typename SelfType::ValueType type_c_live_state_connector_0 ()
Same as `type_c_live_state_connector_1` but for Connector 0.
Drivers can use the helper method `type_c_live_state` to get Type-C state
for a given DDI.
Defined at line 232 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h
template <, >
typename SelfType::ValueType is_modular_flexi_io_adapter ()
True if the FIA (Flexi IO Adapter) is modular.
If this bit is false for the FIA1 register instance, the display engine has
one monolithic FIA that houses all connections (for example, Ice Lake).
The driver must not access the register instances for other FIAs.
On Tiger Lake, this bit must be set true by the firmware, because Tiger
Lake display engines always have modular FIAs.
If this bit is true for the FIA1 register instance, the display engine has
multiple modular FIAs, and each FIA instance hosts two Type C connections.
Defined at line 245 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h
template <, >
SelfType & set_is_modular_flexi_io_adapter (typename SelfType::ValueType val)
True if the FIA (Flexi IO Adapter) is modular.
If this bit is false for the FIA1 register instance, the display engine has
one monolithic FIA that houses all connections (for example, Ice Lake).
The driver must not access the register instances for other FIAs.
On Tiger Lake, this bit must be set true by the firmware, because Tiger
Lake display engines always have modular FIAs.
If this bit is true for the FIA1 register instance, the display engine has
multiple modular FIAs, and each FIA instance hosts two Type C connections.
Defined at line 245 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h
template <, >
typename SelfType::ValueType display_port_tx_lane_assignment_bits_connector_0 ()
Same as `tx_lane_assignment_bits_connector_1` but for Connector 0.
Drivers can use the helper method `display_port_tx_lane_assignment` to get
Type-C transmitter lane assignment for a given DDI, or use
`display_port_assigned_tx_lane_count` to count lanes assigned for DDI.
Defined at line 252 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h
template <, >
SelfType & set_display_port_tx_lane_assignment_bits_connector_0 (typename SelfType::ValueType val)
Same as `tx_lane_assignment_bits_connector_1` but for Connector 0.
Drivers can use the helper method `display_port_tx_lane_assignment` to get
Type-C transmitter lane assignment for a given DDI, or use
`display_port_assigned_tx_lane_count` to count lanes assigned for DDI.
Defined at line 252 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h
TypeCLiveState type_c_live_state (intel_display::DdiId ddi_id)
Get the Type-C connection live state of a given DDI.
This reads `type_c_live_state_connector_0` or
`type_c_live_state_connector_1` field based on `ddi_id`.
Callers must make sure they read from the correct FIA register.
Defined at line 267 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h
uint32_t display_port_tx_lane_assignment (intel_display::DdiId ddi_id)
Get the PHY lane assignment for display of a given DDI.
This reads `display_port_tx_lane_assignment_bits_connector_0` or
`display_port_tx_lane_assignment_bits_connector_1` field based on `ddi_id`.
Callers must make sure they read from the correct FIA register.
Defined at line 286 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h
size_t display_port_assigned_tx_lane_count (intel_display::DdiId ddi_id)
A helper method to count number of lanes for display of a given DDI.
This reads `display_port_tx_lane_assignment_bits_connector_0` or
`display_port_tx_lane_assignment_bits_connector_1` field based on `ddi_id`
and counts number of ones in the bitmap.
Callers must make sure they read from the correct FIA register.
Defined at line 299 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h
hwreg::RegisterAddr<SelfType> GetForDdi (intel_display::DdiId ddi_id)
Defined at line 304 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h
Enumerations
enum TypeCLiveState
| Name | Value |
|---|---|
| kNoHotplugDisplay | 0b000 |
| kTypeCHotplugDisplay | 0b001 |
| kThunderboltHotplugDisplay | 0b010 |
| kInvalid | 0b011 |
Defined at line 254 of file ../../src/graphics/display/drivers/intel-display/registers-typec.h