<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/gpu/drm/vc4, branch v5.10.7</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v5.10.7</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v5.10.7'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2020-11-23T16:59:30+00:00</updated>
<entry>
<title>drm/vc4: kms: Don't disable the muxing of an active CRTC</title>
<updated>2020-11-23T16:59:30+00:00</updated>
<author>
<name>Maxime Ripard</name>
<email>maxime@cerno.tech</email>
</author>
<published>2020-11-20T14:42:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=2820526dd5c27326d9c0d2c831a34b8f14e7c404'/>
<id>urn:sha1:2820526dd5c27326d9c0d2c831a34b8f14e7c404</id>
<content type='text'>
The current HVS muxing code will consider the CRTCs in a given state to
setup their muxing in the HVS, and disable the other CRTCs muxes.

However, it's valid to only update a single CRTC with a state, and in this
situation we would mux out a CRTC that was enabled but left untouched by
the new state.

Fix this by setting a flag on the CRTC state when the muxing has been
changed, and only change the muxing configuration when that flag is there.

Fixes: 87ebcd42fb7b ("drm/vc4: crtc: Assign output to channel automatically")
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Tested-by: Hoegeun Kwon &lt;hoegeun.kwon@samsung.com&gt;
Reviewed-by: Hoegeun Kwon &lt;hoegeun.kwon@samsung.com&gt;
Reviewed-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20201120144245.398711-3-maxime@cerno.tech
</content>
</entry>
<entry>
<title>drm/vc4: kms: Store the unassigned channel list in the state</title>
<updated>2020-11-23T16:59:23+00:00</updated>
<author>
<name>Maxime Ripard</name>
<email>maxime@cerno.tech</email>
</author>
<published>2020-11-20T14:42:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f2df84e096a8254ddb18c531b185fc2a45879077'/>
<id>urn:sha1:f2df84e096a8254ddb18c531b185fc2a45879077</id>
<content type='text'>
If a CRTC is enabled but not active, and that we're then doing a page
flip on another CRTC, drm_atomic_get_crtc_state will bring the first
CRTC state into the global state, and will make us wait for its vblank
as well, even though that might never occur.

Instead of creating the list of the free channels each time atomic_check
is called, and calling drm_atomic_get_crtc_state to retrieve the
allocated channels, let's create a private state object in the main
atomic state, and use it to store the available channels.

Since vc4 has a semaphore (with a value of 1, so a lock) in its commit
implementation to serialize all the commits, even the nonblocking ones, we
are free from the use-after-free race if two subsequent commits are not ran
in their submission order.

Fixes: 87ebcd42fb7b ("drm/vc4: crtc: Assign output to channel automatically")
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Tested-by: Hoegeun Kwon &lt;hoegeun.kwon@samsung.com&gt;
Reviewed-by: Hoegeun Kwon &lt;hoegeun.kwon@samsung.com&gt;
Reviewed-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20201120144245.398711-2-maxime@cerno.tech
</content>
</entry>
<entry>
<title>drm/vc4: hdmi: Disable Wifi Frequencies</title>
<updated>2020-11-19T14:46:08+00:00</updated>
<author>
<name>Maxime Ripard</name>
<email>maxime@cerno.tech</email>
</author>
<published>2020-10-29T13:40:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=9fa1d7e60ad5ad2f7859ea8912d7b0b57821a5b7'/>
<id>urn:sha1:9fa1d7e60ad5ad2f7859ea8912d7b0b57821a5b7</id>
<content type='text'>
There's cross-talk on the RPi4 between the 2.4GHz channels used by the WiFi
chip and some resolutions, most notably 1440p at 60Hz.

In such a case, we can either reject entirely the mode, or lower slightly
the pixel frequency to remove the overlap. Let's go for the latter.

Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Acked-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20201029134018.1948636-2-maxime@cerno.tech
</content>
</entry>
<entry>
<title>drm/vc4: kms: Document the muxing corner cases</title>
<updated>2020-11-19T13:48:32+00:00</updated>
<author>
<name>Maxime Ripard</name>
<email>maxime@cerno.tech</email>
</author>
<published>2020-11-05T13:56:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=b5dbc4d36885bef6257054a737a76101d293b185'/>
<id>urn:sha1:b5dbc4d36885bef6257054a737a76101d293b185</id>
<content type='text'>
We've had a number of muxing corner-cases with specific ways to reproduce
them, so let's document them to make sure they aren't lost and introduce
regressions later on.

Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Tested-by: Hoegeun Kwon &lt;hoegeun.kwon@samsung.com&gt;
Reviewed-by: Hoegeun Kwon &lt;hoegeun.kwon@samsung.com&gt;
Acked-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20201105135656.383350-6-maxime@cerno.tech
</content>
</entry>
<entry>
<title>drm/vc4: kms: Split the HVS muxing check in a separate function</title>
<updated>2020-11-19T13:45:16+00:00</updated>
<author>
<name>Maxime Ripard</name>
<email>maxime@cerno.tech</email>
</author>
<published>2020-11-05T13:56:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a72b0458cd5123b40dd5084f6e536af63aeacda1'/>
<id>urn:sha1:a72b0458cd5123b40dd5084f6e536af63aeacda1</id>
<content type='text'>
The code that assigns HVS channels during atomic_check is starting to grow
a bit big, let's move it into a separate function.

Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Tested-by: Hoegeun Kwon &lt;hoegeun.kwon@samsung.com&gt;
Reviewed-by: Hoegeun Kwon &lt;hoegeun.kwon@samsung.com&gt;
Reviewed-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20201105135656.383350-5-maxime@cerno.tech
</content>
</entry>
<entry>
<title>drm/vc4: kms: Rename NUM_CHANNELS</title>
<updated>2020-11-19T13:45:03+00:00</updated>
<author>
<name>Maxime Ripard</name>
<email>maxime@cerno.tech</email>
</author>
<published>2020-11-05T13:56:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a9661f27dc6bfbb6869b07cf68f9c2fd05167746'/>
<id>urn:sha1:a9661f27dc6bfbb6869b07cf68f9c2fd05167746</id>
<content type='text'>
The NUM_CHANNELS define has a pretty generic name and was right before the
function using it. Let's move to something that makes the hardware-specific
nature more obvious, and to a more appropriate place.

Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Tested-by: Hoegeun Kwon &lt;hoegeun.kwon@samsung.com&gt;
Reviewed-by: Hoegeun Kwon &lt;hoegeun.kwon@samsung.com&gt;
Reviewed-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20201105135656.383350-4-maxime@cerno.tech
</content>
</entry>
<entry>
<title>drm/vc4: kms: Remove useless define</title>
<updated>2020-11-19T13:44:56+00:00</updated>
<author>
<name>Maxime Ripard</name>
<email>maxime@cerno.tech</email>
</author>
<published>2020-11-05T13:56:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=213189dbe7a1d7b1032aca4eacb0348a3ed67823'/>
<id>urn:sha1:213189dbe7a1d7b1032aca4eacb0348a3ed67823</id>
<content type='text'>
NUM_OUTPUTS isn't used anymore, let's remove it.

Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Tested-by: Hoegeun Kwon &lt;hoegeun.kwon@samsung.com&gt;
Reviewed-by: Hoegeun Kwon &lt;hoegeun.kwon@samsung.com&gt;
Reviewed-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20201105135656.383350-3-maxime@cerno.tech
</content>
</entry>
<entry>
<title>drm/vc4: kms: Switch to drmm_add_action_or_reset</title>
<updated>2020-11-19T13:44:33+00:00</updated>
<author>
<name>Maxime Ripard</name>
<email>maxime@cerno.tech</email>
</author>
<published>2020-11-05T13:56:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=3c354ed1c43dabbdaae8569f982cdcccfdecd6a8'/>
<id>urn:sha1:3c354ed1c43dabbdaae8569f982cdcccfdecd6a8</id>
<content type='text'>
Even though it was pointed in the review by Daniel, and I thought to have
fixed it while applying the patches, but it turns out I forgot to commit
the fixes in the process. Properly fix it this time.

Fixes: dcda7c28bff2 ("drm/vc4: kms: Add functions to create the state objects")
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Reviewed-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20201105135656.383350-2-maxime@cerno.tech
</content>
</entry>
<entry>
<title>drm/vc4: hdmi: Block odd horizontal timings</title>
<updated>2020-11-19T13:29:26+00:00</updated>
<author>
<name>Maxime Ripard</name>
<email>maxime@cerno.tech</email>
</author>
<published>2020-10-29T12:25:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=57fb32e632be4d406b4594829e3befdae1100c12'/>
<id>urn:sha1:57fb32e632be4d406b4594829e3befdae1100c12</id>
<content type='text'>
The FIFO between the pixelvalve and the HDMI controller runs at 2 pixels
per clock cycle, and cannot deal with odd timings.

Let's reject any mode with such timings.

Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Reviewed-by: Dave Stevenson &lt;dave.stevenson@raspberrypi.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20201029122522.1917579-2-maxime@cerno.tech
</content>
</entry>
<entry>
<title>drm/vc4: hdmi: Make sure our clock rate is within limits</title>
<updated>2020-11-19T13:29:13+00:00</updated>
<author>
<name>Maxime Ripard</name>
<email>maxime@cerno.tech</email>
</author>
<published>2020-10-29T12:25:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=63495f6b4aede26e6f8fe3da69e5cfdd8a4ccc3b'/>
<id>urn:sha1:63495f6b4aede26e6f8fe3da69e5cfdd8a4ccc3b</id>
<content type='text'>
The HDMI controller cannot go above a certain pixel rate limit depending on
the generations, but that limit is only enforced in mode_valid at the
moment, which means that we won't advertise modes that exceed that limit,
but the userspace is still free to try to setup a mode that would.

Implement atomic_check to make sure we check it in that scenario too.

Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Reviewed-by: Dave Stevenson &lt;dave.stevenson@raspberrypi.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20201029122522.1917579-1-maxime@cerno.tech
</content>
</entry>
</feed>
