class TranscoderClockSelect
Defined at line 512 of file ../../src/graphics/display/drivers/intel-display/registers-transcoder.h
TRANS_CLK_SEL (Transcoder Clock Select).
On Kaby Lake and Skylake, the EDP transcoder always uses the DDI A clock, so
it doesn't have a Clock Select register.
On Tiger Lake, all reserved bits are MBZ (must be zero), so this register can
be safely written without reading it first. On Kaby Lake and Skylake, the
reserved bits are not documented as MBZ, so this register should be accessed
using read-modify-write.
Tiger Lake: IHD-OS-TGL-Vol 2c-1.22-Rev2.0 Part 2 pages 1365-1366
Kaby Lake: IHD-OS-KBL-Vol 2c-1.17 Part 2 pages 947-948
Skylake: IHD-OS-SKL-Vol 2c-05.16 Part 2 pages 922-923
Public Members
field_ddi_clock_select_subtle_524
Public Methods
template <, >
typename SelfType::ValueType ddi_clock_select_subtle ()
Selects the DDI whose port clock is used by this transcoder.
This field has a non-trivial value encoding. The ddi_*() and set_ddi_*()
helpers should be preferred to accessing the field directly.
This field is tagged `_subtle` because the definition matches the bits used
on Tiger Lake, but it's used on all supported models. Kaby Lake and Skylake
have a very similar field, which only takes up bits 30-28. Fortunately,
bit 27 is reserved, and we can still paper over the field width difference
in the helpers `ddi_clock_kaby_lake()` and `set_ddi_clock_kaby_lake()`.
Defined at line 524 of file ../../src/graphics/display/drivers/intel-display/registers-transcoder.h
template <, >
SelfType & set_ddi_clock_select_subtle (typename SelfType::ValueType val)
Selects the DDI whose port clock is used by this transcoder.
This field has a non-trivial value encoding. The ddi_*() and set_ddi_*()
helpers should be preferred to accessing the field directly.
This field is tagged `_subtle` because the definition matches the bits used
on Tiger Lake, but it's used on all supported models. Kaby Lake and Skylake
have a very similar field, which only takes up bits 30-28. Fortunately,
bit 27 is reserved, and we can still paper over the field width difference
in the helpers `ddi_clock_kaby_lake()` and `set_ddi_clock_kaby_lake()`.
Defined at line 524 of file ../../src/graphics/display/drivers/intel-display/registers-transcoder.h
std::optional<intel_display::DdiId> ddi_clock_kaby_lake ()
The DDI whose port clock is used by the transcoder.
This helper works for Kaby Lake and Skylake.
This field must not be changed while the transcoder is enabled.
Defined at line 531 of file ../../src/graphics/display/drivers/intel-display/registers-transcoder.h
std::optional<intel_display::DdiId> ddi_clock_tiger_lake ()
The DDI whose port clock is used by the transcoder.
This helper works for Tiger Lake.
This field must not be changed while the transcoder is enabled.
Defined at line 547 of file ../../src/graphics/display/drivers/intel-display/registers-transcoder.h
TranscoderClockSelect & set_ddi_clock_kaby_lake (std::optional<intel_display::DdiId> ddi_id)
See `ddi_clock_kaby_lake()` for details.
Defined at line 558 of file ../../src/graphics/display/drivers/intel-display/registers-transcoder.h
TranscoderClockSelect & set_ddi_clock_tiger_lake (std::optional<intel_display::DdiId> ddi_id)
See `ddi_clock_tiger_lake()` for details.
Defined at line 570 of file ../../src/graphics/display/drivers/intel-display/registers-transcoder.h
hwreg::RegisterAddr<TranscoderClockSelect> GetForTranscoder (intel_display::TranscoderId transcoder_id)
Defined at line 574 of file ../../src/graphics/display/drivers/intel-display/registers-transcoder.h