media: Documentation: v4l: Rework LP-11 documentation, add callbacks

Rework LP-11 and LP-111 mode documentation to make it more understandable
and useful. This involves adding pre_streamon and post_streamon callbacks
that make it possible to explicitly transition the transmitter to either
mode.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
Sakari Ailus 2021-06-23 14:38:31 +02:00 committed by Mauro Carvalho Chehab
parent e5a466d4bc
commit 013c35b22e

View file

@ -93,18 +93,34 @@ where
LP-11 and LP-111 modes LP-11 and LP-111 modes
^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^
The transmitter drivers must, if possible, configure the CSI-2 transmitter to As part of transitioning to high speed mode, a CSI-2 transmitter typically
*LP-11 or LP-111 mode* whenever the transmitter is powered on but not active, briefly sets the bus to LP-11 or LP-111 state, depending on the PHY. This period
and maintain *LP-11 or LP-111 mode* until stream on. Only at stream on time may be as short as 100 µs, during which the receiver observes this state and
should the transmitter activate the clock on the clock lane and transition to proceeds its own part of high speed mode transition.
*HS mode*.
Some transmitters do this automatically but some have to be explicitly Most receivers are capable of autonomously handling this once the software has
programmed to do so, and some are unable to do so altogether due to configured them to do so, but there are receivers which require software
hardware constraints. involvement in observing LP-11 or LP-111 state. 100 µs is a brief period to hit
in software, especially when there is no interrupt telling something is
happening.
The receiver thus need to be configured to expect LP-11 or LP-111 mode from the One way to address this is to configure the transmitter side explicitly to LP-11
transmitter before the transmitter driver's ``.s_stream()`` op is called. or LP-111 mode, which requires support from the transmitter hardware. This is
not universally available. Many devices return to this state once streaming is
stopped while the state after power-on is LP-00 or LP-000.
The ``.pre_streamon()`` callback may be used to prepare a transmitter for
transitioning to streaming state, but not yet start streaming. Similarly, the
``.post_streamoff()`` callback is used to undo what was done by the
``.pre_streamon()`` callback. The caller of ``.pre_streamon()`` is thus required
to call ``.post_streamoff()`` for each successful call of ``.pre_streamon()``.
In the context of CSI-2, the ``.pre_streamon()`` callback is used to transition
the transmitter to the LP-11 or LP-111 mode. This also requires powering on the
device, so this should be only done when it is needed.
Receiver drivers that do not need explicit LP-11 or LP-111 mode setup are waived
from calling the two callbacks.
Stopping the transmitter Stopping the transmitter
^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^