1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//! Error types returned by [`crate::Scdc`] operations.
/// Errors returned by [`Scdc`](crate::Scdc) register operations.
///
/// Two categories of failure are distinguished so that callers can handle them
/// separately: a transport failure means the I²C/DDC bus returned an error; a protocol
/// error means culvert refused the operation because it would break the SCDC protocol
/// (for example FFE levels the rate prohibits), before anything was written.
/// What culvert refuses because it would violate the SCDC protocol.
///
/// Every value a sink can report decodes (an undefined link training request is
/// [`LtpReq::Reserved`](crate::LtpReq::Reserved)), so these come from requests, not from
/// register content.