Skip to main content

LtpReq

Enum LtpReq 

Source
#[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
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

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.

Implementations§

Source§

impl LtpReq

Source

pub const fn from_value(value: u8) -> Option<LtpReq>

The request with the 4-bit value, or None above 0xF. Every value has exactly one request: 0x9–0xD are Reserved.

Source

pub const fn value(self) -> u8

The request’s 4-bit value (for a Reserved built by hand, the value it holds).

Trait Implementations§

Source§

impl Clone for LtpReq

Source§

fn clone(&self) -> LtpReq

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for LtpReq

Source§

impl Debug for LtpReq

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Eq for LtpReq

Source§

impl PartialEq for LtpReq

Source§

fn eq(&self, other: &LtpReq) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for LtpReq

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.