Lines Matching +full:wait +full:- +full:pin

1 .. SPDX-License-Identifier: GPL-2.0
15 ----------------
33 ---------------------
53 will be stored in adap->priv and can be used by the adapter ops.
95 Implementing the Low-Level CEC Adapter
96 --------------------------------------
98 The following low-level adapter operations have to be implemented in
103 .. code-block:: none
107 /* Low-level callbacks */
123 /* High-level callback */
127 These low-level ops deal with various aspects of controlling the CEC adapter
128 hardware. They are all called with the mutex adap->lock held.
159 To enable/disable the 'monitor pin' mode::
163 If enabled, then the adapter should be put in a mode to also monitor CEC pin
166 (some hardware may always be in 'monitor pin' mode).
178 should return -ENXIO. Once a logical address is programmed the CEC hardware
201 wait when the line is free before attempting to send a message. This value
210 To pass on the result of a canceled non-blocking transmit::
216 non-blocking transmit with sequence number msg->sequence. This is
219 was successful, but the wait for the expected reply was either aborted
311 ----------------------------------
323 ----------------------------------------------
328 .. code-block:: none
331 /* Low-level callbacks */
338 /* High-level CEC message callback */
342 If both callbacks are set, then an ``error-inj`` file will appear in debugfs.
353 This ensures that you can always do ``echo clear >error-inj`` to clear any error
354 injections without having to know the details of the driver-specific commands.
356 Note that the output of ``error-inj`` shall be valid as input to ``error-inj``.
359 .. code-block:: none
361 $ cat error-inj >einj.txt
362 $ cat einj.txt >error-inj
372 The second callback will parse commands written to the ``error-inj`` file::
378 are no embedded newlines) and it is 0-terminated. The callback is free to
384 Implementing the High-Level CEC Adapter
385 ---------------------------------------
387 The low-level operations drive the hardware, the high-level operations are
388 CEC protocol driven. The high-level callbacks are called without the adap->lock
389 mutex being held. The following high-level callbacks are available:
391 .. code-block:: none
394 /* Low-level callbacks */
400 /* High-level CEC message callback */
421 -ENOMSG, otherwise the CEC framework assumes it processed this message and
426 -----------------------
434 Transmit a CEC message. If block is true, then wait until the message has been
440 Change the physical address. This function will set adap->phys_addr and
465 is set. If block is true, then wait until the logical addresses have been
468 log_addrs->num_log_addrs set to 0. The block argument is ignored when
473 CEC Pin framework
474 -----------------
477 the message and the hardware handles the low-level CEC protocol. But some
478 hardware only drives the CEC pin and software has to handle the low-level
479 CEC protocol. The CEC pin framework was created to handle such devices.
481 Note that due to the close-to-realtime requirements it can never be guaranteed
486 One advantage of this low-level implementation is that it can be used as
488 CEC pin transitions from low to high or vice versa.
490 .. kernel-doc:: include/media/cec-pin.h
493 ----------------------
498 completely separate chip that deals with the CEC pin. For those cases a
502 .. kernel-doc:: include/media/cec-notifier.h