Lines Matching +full:rx +full:- +full:mode

1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
9 has low-level support for the CEC bus. Most hardware today will have
10 high-level CEC support where the hardware deals with driving the CEC bus,
19 Currently only the cec-gpio driver (when the CEC line is directly
20 connected to a pull-up GPIO line) and the AllWinner A10/A20 drm driver
25 now an ``error-inj`` file.
32 With ``cat error-inj`` you can see both the possible commands and the current
35 $ cat /sys/kernel/debug/cec/cec0/error-inj
37 # clear clear all rx and tx error injections
38 # rx-clear clear all rx error injections
39 # tx-clear clear all tx error injections
40 # <op> clear clear all rx and tx error injections for <op>
41 # <op> rx-clear clear all rx error injections for <op>
42 # <op> tx-clear clear all tx error injections for <op>
44 # RX error injection:
45 # <op>[,<mode>] rx-nack NACK the message instead of sending an ACK
46 # <op>[,<mode>] rx-low-drive <bit> force a low-drive condition at this bit position
47 # <op>[,<mode>] rx-add-byte add a spurious byte to the received CEC message
48 # <op>[,<mode>] rx-remove-byte remove the last byte from the received CEC message
49 # any[,<mode>] rx-arb-lost [<poll>] generate a POLL message to trigger an arbitration lost
52 # tx-ignore-nack-until-eom ignore early NACKs until EOM
53 # tx-custom-low-usecs <usecs> define the 'low' time for the custom pulse
54 # tx-custom-high-usecs <usecs> define the 'high' time for the custom pulse
55 # tx-custom-pulse transmit the custom pulse once the bus is idle
58 # <op>[,<mode>] tx-no-eom don't set the EOM bit
59 # <op>[,<mode>] tx-early-eom set the EOM bit one byte too soon
60 # <op>[,<mode>] tx-add-bytes <num> append <num> (1-255) spurious bytes to the message
61 # <op>[,<mode>] tx-remove-byte drop the last byte from the message
62 # <op>[,<mode>] tx-short-bit <bit> make this bit shorter than allowed
63 # <op>[,<mode>] tx-long-bit <bit> make this bit longer than allowed
64 # <op>[,<mode>] tx-custom-bit <bit> send the custom pulse instead of this bit
65 # <op>[,<mode>] tx-short-start send a start pulse that's too short
66 # <op>[,<mode>] tx-long-start send a start pulse that's too long
67 # <op>[,<mode>] tx-custom-start send the custom pulse instead of the start pulse
68 # <op>[,<mode>] tx-last-bit <bit> stop sending after this bit
69 # <op>[,<mode>] tx-low-drive <bit> force a low-drive condition at this bit position
71 # <op> CEC message opcode (0-255) or 'any'
72 # <mode> 'once' (default), 'always', 'toggle' or 'off'
73 # <bit> CEC message bit (0-159)
74 # 10 bits per 'byte': bits 0-7: data, bit 8: EOM, bit 9: ACK
75 # <poll> CEC poll message used to test arbitration lost (0x00-0xff, default 0x0f)
76 # <usecs> microseconds (0-10000000, default 1000)
80 You can write error injection commands to ``error-inj`` using
81 ``echo 'cmd' >error-inj`` or ``cat cmd.txt >error-inj``. The ``cat error-inj``
83 and use it as an input to ``error-inj`` later.
86 ------------
98 all opcodes (``any``). Each command also has a 'mode' which can be ``off``
105 So '``any rx-nack``' will NACK the next received CEC message,
106 '``any,always rx-nack``' will NACK all received CEC messages and
107 '``0x82,toggle rx-nack``' will only NACK if an Active Source message was
110 After an error was injected with mode ``once`` the error injection command
111 is cleared automatically, so ``once`` is a one-time deal.
113 All combinations of ``<op>`` and error injection commands can co-exist. So
116 0x9e tx-add-bytes 1
117 0x9e tx-early-eom
118 0x9f tx-add-bytes 2
119 any rx-nack
126 0x9e tx-add-bytes 1
127 0x9e tx-add-bytes 2
132 ----------------------
137 ``rx-clear``
140 ``tx-clear``
146 ``<op> rx-clear``
149 ``<op> tx-clear``
153 ----------------
155 ``<op>[,<mode>] rx-nack``
160 ``<op>[,<mode>] rx-low-drive <bit>``
169 ``<op>[,<mode>] rx-add-byte``
172 the high-level protocol since spurious bytes should be ignored.
174 ``<op>[,<mode>] rx-remove-byte``
176 was at least 2 bytes long. This is useful to test the high-level
179 ``<op>[,<mode>] rx-arb-lost <poll>``
183 to transmit mode and it will transmit a POLL message. By default this is
197 -----------------
199 ``tx-ignore-nack-until-eom``
210 ``<op>[,<mode>] tx-no-eom``
212 (End-Of-Message) bit set. With this command the transmit will just stop
214 handles this case. Normally receivers have a time-out after which
217 ``<op>[,<mode>] tx-early-eom``
219 of two bytes or more. The EOM bit will be set for the second-to-last byte
225 ``<op>[,<mode>] tx-add-bytes <num>``
226 Append ``<num>`` (1-255) spurious bytes to the message. The extra bytes
236 ``<op>[,<mode>] tx-remove-byte``
240 ``<op>[,<mode>] tx-short-bit <bit>``
253 sees a too-short 0 bit.
255 ``<op>[,<mode>] tx-long-bit <bit>``
271 sees a too-long 0 bit.
273 ``<op>[,<mode>] tx-short-start``
280 ``<op>[,<mode>] tx-long-start``
292 ``<op>[,<mode>] tx-last-bit <bit>``
299 ``<op>[,<mode>] tx-low-drive <bit>``
304 positions 0-3 the receiver can interpret this as an Arbitration Lost
308 -------------
310 ``tx-custom-low-usecs <usecs>``
314 ``tx-custom-high-usecs <usecs>``
318 ``tx-custom-low-usecs + tx-custom-high-usecs``.
320 ``<op>[,<mode>] tx-custom-bit <bit>``
325 ``<op>[,<mode>] tx-custom-start``
328 ``tx-custom-pulse``