#[non_exhaustive]pub enum LtpReq {
None,
AllOnes,
AllZeros,
NyquistClock,
DdeCompliance,
Lfsr0,
Lfsr1,
Lfsr2,
Lfsr3,
FfeChange,
RateChange,
Reserved(u8),
}Expand description
Link Training Pattern requested by the sink for one lane: a 4-bit field in
Status_Flags_1 (0x41, lanes 0–1) or Status_Flags_2 (0x42, lanes 2–3).
Every 4-bit value decodes: the values the HDMI 2.1 specification leaves undefined
(0x9–0xD) are Reserved, with the raw value. Whether one matters
depends on the lanes in use, which the link training layer knows and culvert does not.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
None
0x0: no pattern requested; the lane is trained.
AllOnes
0x1: all-ones pattern.
AllZeros
0x2: all-zeros pattern.
NyquistClock
0x3: Nyquist clock pattern.
DdeCompliance
0x4: DDE (Data Dependent Equalization) compliance pattern. The Xilinx drivers name
it after their side (RxDDE in the receiver driver, TxDDE in the transmitter’s);
the name here, like hdmi-hal’s LtpPattern::DdeCompliance, is the pattern’s.
Lfsr0
0x5: LFSR 0.
Lfsr1
0x6: LFSR 1.
Lfsr2
0x7: LFSR 2.
Lfsr3
0x8: LFSR 3.
FfeChange
0xE: the sink requests a change of FFE level.
RateChange
0xF: the sink requests a lower FRL rate.
Reserved(u8)
0x9–0xD: a value the specification leaves undefined.
Build requests from a raw value with from_value, which only
produces Reserved for 0x9–0xD. A Reserved built by hand with any other value
is not a request a sink can send: Reserved(0x5) has the value of Lfsr0 but
does not compare equal to it.