Skip to content

Rework CEC driver for kernel 4.9#58

Merged
jnettlet merged 15 commits intoSolidRun:solidrun-imx_4.9.x_1.0.0_gafrom
OpenBricks:imx_4.9.x_1.0.0_ga-cec-rework2
May 14, 2018
Merged

Rework CEC driver for kernel 4.9#58
jnettlet merged 15 commits intoSolidRun:solidrun-imx_4.9.x_1.0.0_gafrom
OpenBricks:imx_4.9.x_1.0.0_ga-cec-rework2

Conversation

@warped-rudi
Copy link

This is a major overhaul of the hdmi-cec driver. It's based on the initial work by @wolfgar and is compatible with his libCEC implementation. It's the adaption of #42 to the 4.9 kernel series.

wolfgar and others added 15 commits April 14, 2018 12:40
Empty internal queue when userland closes the device

Signed-off-by: Rudi <[email protected]>
…ponsible for all this work

Since libcec does the complete handling of the state machine and the
setup logic by itself, kill any traces of "smartness" in the driver.

Signed-off-by: Rudi <[email protected]>
This includes a new function to receive hotplug notifications from
the hdmi core as well as moving the code for starting the device
out of the ioctl handler and using symbolic constants whenever
possible.

Signed-off-by: Rudi <[email protected]>
Don't vmalloc() a new buffer for each event. Instead, get memory
in units of pages from the kernel and sub-allocate as needed.

Signed-off-by: Rudi <[email protected]>
…nt libs

The maximum CEC message length is 16, not 17 as defined before. However, since
this number has been made visible to userland, ensure that older clients that
specify slightly more than 16 bytes will not be rejected.

Signed-off-by: Rudi <[email protected]>
Allow userland to distinguish between a NAKs and real error conditions.
Return EAGAIN in case no monitor is plugged in or a previous transmission
is still pending.

Signed-off-by: Rudi <[email protected]>
Even though there is only one instance of the device and
only one client that uses it, access instance data via the
private data pointer passed in rather than modifying the
global structures directly.

Signed-off-by: Rudi <[email protected]>
Inform userland after an outgoing transmission has been completed
(ACKed or NAKed).

Signed-off-by: Rudi <[email protected]>
Re-send an outgoing message when it was NAKed taking in account
the required bus arbitration timing.

Signed-off-by: Rudi <[email protected]>
If there is no link we need to allow writes otherwise libcec will
block on select() in the SocketWrite() call. The write() will still
fail with EAGAIN.

Signed-off-by: Doug Nazar <[email protected]>
@jnettlet jnettlet merged this pull request into SolidRun:solidrun-imx_4.9.x_1.0.0_ga May 14, 2018
@warped-rudi warped-rudi deleted the imx_4.9.x_1.0.0_ga-cec-rework2 branch May 30, 2018 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants