Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rework CEC driver for kernel 4.9 #58

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 <r.ihle@s-t.de>
…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 <r.ihle@s-t.de>
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 <r.ihle@s-t.de>
Signed-off-by: Rudi <r.ihle@s-t.de>
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 <r.ihle@s-t.de>
…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 <r.ihle@s-t.de>
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 <r.ihle@s-t.de>
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 <r.ihle@s-t.de>
Inform userland after an outgoing transmission has been completed
(ACKed or NAKed).

Signed-off-by: Rudi <r.ihle@s-t.de>
Re-send an outgoing message when it was NAKed taking in account
the required bus arbitration timing.

Signed-off-by: Rudi <r.ihle@s-t.de>
Signed-off-by: Rudi <r.ihle@s-t.de>
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 <nazard@nazar.ca>
Signed-off-by: Rudi <r.ihle@s-t.de>
@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