<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/media/cec/core, branch linux-6.8.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.8.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.8.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2024-04-17T09:23:25Z</updated>
<entry>
<title>media: cec: core: remove length check of Timer Status</title>
<updated>2024-04-17T09:23:25Z</updated>
<author>
<name>Nini Song</name>
</author>
<published>2024-01-25T13:28:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fb2d4df1dab062264ce03686124ce595f1cb0e62'/>
<id>urn:sha1:fb2d4df1dab062264ce03686124ce595f1cb0e62</id>
<content type='text'>
commit ce5d241c3ad4568c12842168288993234345c0eb upstream.

The valid_la is used to check the length requirements,
including special cases of Timer Status. If the length is
shorter than 5, that means no Duration Available is returned,
the message will be forced to be invalid.

However, the description of Duration Available in the spec
is that this parameter may be returned when these cases, or
that it can be optionally return when these cases. The key
words in the spec description are flexible choices.

Remove the special length check of Timer Status to fit the
spec which is not compulsory about that.

Signed-off-by: Nini Song &lt;nini.song@mediatek.com&gt;
Signed-off-by: Hans Verkuil &lt;hverkuil-cisco@xs4all.nl&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>media: cec: core: count low-drive, error and arb-lost conditions</title>
<updated>2023-11-23T11:59:24Z</updated>
<author>
<name>Hans Verkuil</name>
</author>
<published>2023-10-11T08:17:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=632b8b044a940e415c6d9bd5235778b0db28add1'/>
<id>urn:sha1:632b8b044a940e415c6d9bd5235778b0db28add1</id>
<content type='text'>
Count how many Low Drive, Error and Arbitration Lost transmit
status errors occurred, and expose that in debugfs.

Also log the first 8 transmits that result in Low Drive or Error
conditions. That really should not happen with well-behaved CEC devices
and good HDMI cables.

This is useful to detect and debug HDMI cable issues.

Signed-off-by: Hans Verkuil &lt;hverkuil-cisco@xs4all.nl&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge drm/drm-next into drm-intel-next</title>
<updated>2023-09-15T08:23:38Z</updated>
<author>
<name>Jani Nikula</name>
</author>
<published>2023-09-15T08:23:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a3f9e4bc1ec9d8f1e352eb7c1cbaea3168246be7'/>
<id>urn:sha1:a3f9e4bc1ec9d8f1e352eb7c1cbaea3168246be7</id>
<content type='text'>
Sync to v6.6-rc1.

Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
</content>
</entry>
<entry>
<title>media: cec: core: add note about *_from_edid() function usage in drm</title>
<updated>2023-09-01T08:59:37Z</updated>
<author>
<name>Jani Nikula</name>
</author>
<published>2023-08-31T10:51:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f208f4a49a46cc04f51b0c335d4b6390fbfcd1b8'/>
<id>urn:sha1:f208f4a49a46cc04f51b0c335d4b6390fbfcd1b8</id>
<content type='text'>
In the drm subsystem, the source physical address is, in most cases,
available without having to parse the EDID again. Add notes about
preferring to use the pre-parsed address instead.

Cc: Hans Verkuil &lt;hverkuil-cisco@xs4all.nl&gt;
Cc: linux-media@vger.kernel.org
Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
Reviewed-by: Hans Verkuil &lt;hverkuil-cisco@xs4all.nl&gt;
Acked-by: Hans Verkuil &lt;hverkuil-cisco@xs4all.nl&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20230831105144.25923-1-jani.nikula@intel.com
</content>
</entry>
<entry>
<title>media: cec-pin: only enable interrupts when monitoring the CEC pin</title>
<updated>2023-08-10T05:58:32Z</updated>
<author>
<name>Hans Verkuil</name>
</author>
<published>2023-07-07T11:26:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2f4d3718cc92d8c200a7f662e3afbaa9b1555e08'/>
<id>urn:sha1:2f4d3718cc92d8c200a7f662e3afbaa9b1555e08</id>
<content type='text'>
The CEC interrupt is only needed if userspace wants to monitor
the CEC pin for an unconfigured CEC device. That gives it the
most precise CEC pin debugging results.

This avoids a corner case where the interrupt is enabled for
a short period when the adapter is about to be configured.

Signed-off-by: Hans Verkuil &lt;hverkuil-cisco@xs4all.nl&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@kernel.org&gt;
</content>
</entry>
<entry>
<title>media: cec-pin: improve interrupt handling</title>
<updated>2023-08-10T05:58:32Z</updated>
<author>
<name>Hans Verkuil</name>
</author>
<published>2023-07-07T11:26:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9b79d776a2b3b2c6c121bd9e0faa71ba06ecd613'/>
<id>urn:sha1:9b79d776a2b3b2c6c121bd9e0faa71ba06ecd613</id>
<content type='text'>
The CEC pin framework needs a bit more control over the interrupt
handling: make sure that the disable_irq op is called even if the
device node is unregistered, log the state of the interrupt in
debugfs, and disable the interrupt when the kernel thread is stopped.

Signed-off-by: Hans Verkuil &lt;hverkuil-cisco@xs4all.nl&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@kernel.org&gt;
</content>
</entry>
<entry>
<title>media: cec: core: add adap_unconfigured() callback</title>
<updated>2023-08-10T05:58:32Z</updated>
<author>
<name>Hans Verkuil</name>
</author>
<published>2023-06-12T13:58:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=948a77aaecf202f722cf2264025f9987e5bd5c26'/>
<id>urn:sha1:948a77aaecf202f722cf2264025f9987e5bd5c26</id>
<content type='text'>
The adap_configured() callback was called with the adap-&gt;lock mutex
held if the 'configured' argument was false, and without the adap-&gt;lock
mutex held if that argument was true.

That was very confusing, and so split this up in a adap_unconfigured()
callback and a high-level configured() callback.

This also makes it easier to understand when the mutex is held: all
low-level adap_* callbacks are called with the mutex held. All other
callbacks are called without that mutex held.

Signed-off-by: Hans Verkuil &lt;hverkuil-cisco@xs4all.nl&gt;
Fixes: f1b57164305d ("media: cec: add optional adap_configured callback")
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@kernel.org&gt;
</content>
</entry>
<entry>
<title>media: cec: core: add adap_nb_transmit_canceled() callback</title>
<updated>2023-08-10T05:58:32Z</updated>
<author>
<name>Hans Verkuil</name>
</author>
<published>2023-06-12T13:58:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=da53c36ddd3f118a525a04faa8c47ca471e6c467'/>
<id>urn:sha1:da53c36ddd3f118a525a04faa8c47ca471e6c467</id>
<content type='text'>
A potential deadlock was found by Zheng Zhang with a local syzkaller
instance.

The problem is that when a non-blocking CEC transmit is canceled by calling
cec_data_cancel, that in turn can call the high-level received() driver
callback, which can call cec_transmit_msg() to transmit a new message.

The cec_data_cancel() function is called with the adap-&gt;lock mutex held,
and cec_transmit_msg() tries to take that same lock.

The root cause is that the received() callback can either be used to pass
on a received message (and then adap-&gt;lock is not held), or to report a
canceled transmit (and then adap-&gt;lock is held).

This is confusing, so create a new low-level adap_nb_transmit_canceled
callback that reports back that a non-blocking transmit was canceled.

And the received() callback is only called when a message is received,
as was the case before commit f9d0ecbf56f4 ("media: cec: correctly pass
on reply results") complicated matters.

Reported-by: Zheng Zhang &lt;zheng.zhang@email.ucr.edu&gt;
Signed-off-by: Hans Verkuil &lt;hverkuil-cisco@xs4all.nl&gt;
Fixes: f9d0ecbf56f4 ("media: cec: correctly pass on reply results")
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@kernel.org&gt;
</content>
</entry>
<entry>
<title>media: Explicitly include correct DT includes</title>
<updated>2023-07-19T10:57:51Z</updated>
<author>
<name>Rob Herring</name>
</author>
<published>2023-07-14T17:47:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7c7e33b799ac169e5fab8abfc6819fce8b26d53d'/>
<id>urn:sha1:7c7e33b799ac169e5fab8abfc6819fce8b26d53d</id>
<content type='text'>
The DT of_device.h and of_platform.h date back to the separate
of_platform_bus_type before it as merged into the regular platform bus.
As part of that merge prepping Arm DT support 13 years ago, they
"temporarily" include each other. They also include platform_device.h
and of.h. As a result, there's a pretty much random mix of those include
files used throughout the tree. In order to detangle these headers and
replace the implicit includes with struct declarations, users need to
explicitly include the correct includes.

Signed-off-by: Rob Herring &lt;robh@kernel.org&gt;
Signed-off-by: Hans Verkuil &lt;hverkuil-cisco@xs4all.nl&gt;
</content>
</entry>
<entry>
<title>media: cec: core: don't set last_initiator if tx in progress</title>
<updated>2023-05-26T09:52:22Z</updated>
<author>
<name>Hans Verkuil</name>
</author>
<published>2023-04-24T15:07:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=73af6c7511038249cad3d5f3b44bf8d78ac0f499'/>
<id>urn:sha1:73af6c7511038249cad3d5f3b44bf8d78ac0f499</id>
<content type='text'>
When a message was received the last_initiator is set to 0xff.
This will force the signal free time for the next transmit
to that for a new initiator. However, if a new transmit is
already in progress, then don't set last_initiator, since
that's the initiator of the current transmit. Overwriting
this would cause the signal free time of a following transmit
to be that of the new initiator instead of a next transmit.

Signed-off-by: Hans Verkuil &lt;hverkuil-cisco@xs4all.nl&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@kernel.org&gt;
</content>
</entry>
</feed>
