<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/gpu/drm/vc4, branch v4.19.252</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.19.252</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.19.252'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2022-06-14T14:59:19+00:00</updated>
<entry>
<title>drm/vc4: txp: Force alpha to be 0xff if it's disabled</title>
<updated>2022-06-14T14:59:19+00:00</updated>
<author>
<name>Maxime Ripard</name>
<email>maxime@cerno.tech</email>
</author>
<published>2022-03-28T15:36:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c4e427b77c6dd22f918f9c0d6ef4e38936d90f8b'/>
<id>urn:sha1:c4e427b77c6dd22f918f9c0d6ef4e38936d90f8b</id>
<content type='text'>
[ Upstream commit 5453343a88ede8b12812fced81ecd24cb888ccc3 ]

If we use a format that has padding instead of the alpha component (such
as XRGB8888), it appears that the Transposer will fill the padding to 0,
disregarding what was stored in the input buffer padding.

This leads to issues with IGT, since it will set the padding to 0xff,
but will then compare the CRC of the two frames which will thus fail.
Another nice side effect is that it is now possible to just use the
buffer as ARGB.

Fixes: 008095e065a8 ("drm/vc4: Add support for the transposer block")
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Acked-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Link: https://lore.kernel.org/r/20220328153659.2382206-4-maxime@cerno.tech
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/vc4: txp: Don't set TXP_VSTART_AT_EOF</title>
<updated>2022-06-14T14:59:19+00:00</updated>
<author>
<name>Maxime Ripard</name>
<email>maxime@cerno.tech</email>
</author>
<published>2022-03-28T15:36:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=bb59345bb77591d66089cc2d8050ba82ecb41b32'/>
<id>urn:sha1:bb59345bb77591d66089cc2d8050ba82ecb41b32</id>
<content type='text'>
[ Upstream commit 234998df929f14d00cbf2f1e81a7facb69fd9266 ]

The TXP_VSTART_AT_EOF will generate a second VSTART signal to the HVS.
However, the HVS waits for VSTART to enable the FIFO and will thus start
filling the FIFO before the start of the frame.

This leads to corruption at the beginning of the first frame, and
content from the previous frame at the beginning of the next frames.

Since one VSTART is enough, let's get rid of it.

Fixes: 008095e065a8 ("drm/vc4: Add support for the transposer block")
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Acked-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Link: https://lore.kernel.org/r/20220328153659.2382206-3-maxime@cerno.tech
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/vc4: fix error code in vc4_create_object()</title>
<updated>2021-12-01T08:27:42+00:00</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2021-11-18T11:14:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=482522c199844473cb851cf8b536a702ca095aa1'/>
<id>urn:sha1:482522c199844473cb851cf8b536a702ca095aa1</id>
<content type='text'>
[ Upstream commit 96c5f82ef0a145d3e56e5b26f2bf6dcd2ffeae1c ]

The -&gt;gem_create_object() functions are supposed to return NULL if there
is an error.  None of the callers expect error pointers so returing one
will lead to an Oops.  See drm_gem_vram_create(), for example.

Fixes: c826a6e10644 ("drm/vc4: Add a BO cache.")
Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20211118111416.GC1147@kili
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/vc4: drv: Add error handding for bind</title>
<updated>2020-11-10T11:36:00+00:00</updated>
<author>
<name>Hoegeun Kwon</name>
<email>hoegeun.kwon@samsung.com</email>
</author>
<published>2020-10-27T04:14:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6eecfcbcde431904e5837d285e9e99b5a5eac02c'/>
<id>urn:sha1:6eecfcbcde431904e5837d285e9e99b5a5eac02c</id>
<content type='text'>
[ Upstream commit 9ce0af3e9573fb84c4c807183d13ea2a68271e4b ]

There is a problem that if vc4_drm bind fails, a memory leak occurs on
the drm_property_create side. Add error handding for drm_mode_config.

Signed-off-by: Hoegeun Kwon &lt;hoegeun.kwon@samsung.com&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20201027041442.30352-2-hoegeun.kwon@samsung.com
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/vc4/vc4_hdmi: fill ASoC card owner</title>
<updated>2020-10-01T11:14:52+00:00</updated>
<author>
<name>Marek Szyprowski</name>
<email>m.szyprowski@samsung.com</email>
</author>
<published>2020-07-01T07:39:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=71d4d527a17419d16360f3860fc60c23e34e7e0e'/>
<id>urn:sha1:71d4d527a17419d16360f3860fc60c23e34e7e0e</id>
<content type='text'>
[ Upstream commit ec653df2a0cbc306a4bfcb0e3484d318fa779002 ]

card-&gt;owner is a required property and since commit 81033c6b584b ("ALSA:
core: Warn on empty module") a warning is issued if it is empty. Fix lack
of it. This fixes following warning observed on RaspberryPi 3B board
with ARM 32bit kernel and multi_v7_defconfig:

------------[ cut here ]------------
WARNING: CPU: 1 PID: 210 at sound/core/init.c:207 snd_card_new+0x378/0x398 [snd]
Modules linked in: vc4(+) snd_soc_core ac97_bus snd_pcm_dmaengine bluetooth snd_pcm snd_timer crc32_arm_ce raspberrypi_hwmon snd soundcore ecdh_generic ecc bcm2835_thermal phy_generic
CPU: 1 PID: 210 Comm: systemd-udevd Not tainted 5.8.0-rc1-00027-g81033c6b584b #1087
Hardware name: BCM2835
[&lt;c03113c0&gt;] (unwind_backtrace) from [&lt;c030bcb4&gt;] (show_stack+0x10/0x14)
[&lt;c030bcb4&gt;] (show_stack) from [&lt;c071cef8&gt;] (dump_stack+0xd4/0xe8)
[&lt;c071cef8&gt;] (dump_stack) from [&lt;c0345bfc&gt;] (__warn+0xdc/0xf4)
[&lt;c0345bfc&gt;] (__warn) from [&lt;c0345cc4&gt;] (warn_slowpath_fmt+0xb0/0xb8)
[&lt;c0345cc4&gt;] (warn_slowpath_fmt) from [&lt;bf02ff74&gt;] (snd_card_new+0x378/0x398 [snd])
[&lt;bf02ff74&gt;] (snd_card_new [snd]) from [&lt;bf11f0b4&gt;] (snd_soc_bind_card+0x280/0x99c [snd_soc_core])
[&lt;bf11f0b4&gt;] (snd_soc_bind_card [snd_soc_core]) from [&lt;bf12f000&gt;] (devm_snd_soc_register_card+0x34/0x6c [snd_soc_core])
[&lt;bf12f000&gt;] (devm_snd_soc_register_card [snd_soc_core]) from [&lt;bf165654&gt;] (vc4_hdmi_bind+0x43c/0x5f4 [vc4])
[&lt;bf165654&gt;] (vc4_hdmi_bind [vc4]) from [&lt;c09d660c&gt;] (component_bind_all+0xec/0x24c)
[&lt;c09d660c&gt;] (component_bind_all) from [&lt;bf15c44c&gt;] (vc4_drm_bind+0xd4/0x174 [vc4])
[&lt;bf15c44c&gt;] (vc4_drm_bind [vc4]) from [&lt;c09d6ac0&gt;] (try_to_bring_up_master+0x160/0x1b0)
[&lt;c09d6ac0&gt;] (try_to_bring_up_master) from [&lt;c09d6f38&gt;] (component_master_add_with_match+0xd0/0x104)
[&lt;c09d6f38&gt;] (component_master_add_with_match) from [&lt;bf15c588&gt;] (vc4_platform_drm_probe+0x9c/0xbc [vc4])
[&lt;bf15c588&gt;] (vc4_platform_drm_probe [vc4]) from [&lt;c09df740&gt;] (platform_drv_probe+0x6c/0xa4)
[&lt;c09df740&gt;] (platform_drv_probe) from [&lt;c09dd6f0&gt;] (really_probe+0x210/0x350)
[&lt;c09dd6f0&gt;] (really_probe) from [&lt;c09dd940&gt;] (driver_probe_device+0x5c/0xb4)
[&lt;c09dd940&gt;] (driver_probe_device) from [&lt;c09ddb38&gt;] (device_driver_attach+0x58/0x60)
[&lt;c09ddb38&gt;] (device_driver_attach) from [&lt;c09ddbc0&gt;] (__driver_attach+0x80/0xbc)
[&lt;c09ddbc0&gt;] (__driver_attach) from [&lt;c09db820&gt;] (bus_for_each_dev+0x68/0xb4)
[&lt;c09db820&gt;] (bus_for_each_dev) from [&lt;c09dc9f8&gt;] (bus_add_driver+0x130/0x1e8)
[&lt;c09dc9f8&gt;] (bus_add_driver) from [&lt;c09de648&gt;] (driver_register+0x78/0x110)
[&lt;c09de648&gt;] (driver_register) from [&lt;c0302038&gt;] (do_one_initcall+0x50/0x220)
[&lt;c0302038&gt;] (do_one_initcall) from [&lt;c03db544&gt;] (do_init_module+0x60/0x210)
[&lt;c03db544&gt;] (do_init_module) from [&lt;c03da4f8&gt;] (load_module+0x1e34/0x2338)
[&lt;c03da4f8&gt;] (load_module) from [&lt;c03dac00&gt;] (sys_finit_module+0xac/0xbc)
[&lt;c03dac00&gt;] (sys_finit_module) from [&lt;c03000c0&gt;] (ret_fast_syscall+0x0/0x54)
Exception stack(0xeded9fa8 to 0xeded9ff0)
...
---[ end trace 6414689569c2bc08 ]---

Fixes: bb7d78568814 ("drm/vc4: Add HDMI audio support")
Suggested-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Marek Szyprowski &lt;m.szyprowski@samsung.com&gt;
Tested-by: Stefan Wahren &lt;stefan.wahren@i2se.com&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20200701073949.28941-1-m.szyprowski@samsung.com
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/vc4: Fix HDMI mode validation</title>
<updated>2020-04-23T08:30:21+00:00</updated>
<author>
<name>Nicolas Saenz Julienne</name>
<email>nsaenzjulienne@suse.de</email>
</author>
<published>2020-03-26T12:20:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a95787ed3691fd9a85172d72b381a9337a685d85'/>
<id>urn:sha1:a95787ed3691fd9a85172d72b381a9337a685d85</id>
<content type='text'>
[ Upstream commit b1e7396a1d0e6af6806337fdaaa44098d6b3343c ]

Current mode validation impedes setting up some video modes which should
be supported otherwise. Namely 1920x1200@60Hz.

Fix this by lowering the minimum HDMI state machine clock to pixel clock
ratio allowed.

Fixes: 32e823c63e90 ("drm/vc4: Reject HDMI modes with too high of clocks.")
Reported-by: Stefan Wahren &lt;stefan.wahren@i2se.com&gt;
Suggested-by: Dave Stevenson &lt;dave.stevenson@raspberrypi.com&gt;
Signed-off-by: Nicolas Saenz Julienne &lt;nsaenzjulienne@suse.de&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20200326122001.22215-1-nsaenzjulienne@suse.de
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/vc4: fix fb references in async update</title>
<updated>2019-06-15T09:54:11+00:00</updated>
<author>
<name>Helen Koike</name>
<email>helen.koike@collabora.com</email>
</author>
<published>2019-06-03T16:56:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=3af96f3497b7ee087ce2bc5feae1390f57b87dc7'/>
<id>urn:sha1:3af96f3497b7ee087ce2bc5feae1390f57b87dc7</id>
<content type='text'>
commit c16b85559dcfb5a348cc085a7b4c75ed49b05e2c upstream.

Async update callbacks are expected to set the old_fb in the new_state
so prepare/cleanup framebuffers are balanced.

Calling drm_atomic_set_fb_for_plane() (which gets a reference of the new
fb and put the old fb) is not required, as it's taken care by
drm_mode_cursor_universal() when calling drm_atomic_helper_update_plane().

Cc: &lt;stable@vger.kernel.org&gt; # v4.19+
Fixes: 539c320bfa97 ("drm/vc4: update cursors asynchronously through atomic")
Suggested-by: Boris Brezillon &lt;boris.brezillon@collabora.com&gt;
Signed-off-by: Helen Koike &lt;helen.koike@collabora.com&gt;
Reviewed-by: Boris Brezillon &lt;boris.brezillon@collabora.com&gt;
Signed-off-by: Boris Brezillon &lt;boris.brezillon@collabora.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20190603165610.24614-5-helen.koike@collabora.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/vc4: Fix compilation error reported by kbuild test bot</title>
<updated>2019-05-02T07:58:56+00:00</updated>
<author>
<name>Maarten Lankhorst</name>
<email>maarten.lankhorst@linux.intel.com</email>
</author>
<published>2019-04-24T15:06:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8c700e902cebbdbd3737b938526a007f4640232c'/>
<id>urn:sha1:8c700e902cebbdbd3737b938526a007f4640232c</id>
<content type='text'>
commit 462ce5d963f18b71c63f6b7730a35a2ee5273540 upstream.

A pointer to crtc was missing, resulting in the following build error:
drivers/gpu/drm/vc4/vc4_crtc.c:1045:44: sparse: sparse: incorrect type in argument 1 (different base types)
drivers/gpu/drm/vc4/vc4_crtc.c:1045:44: sparse:    expected struct drm_crtc *crtc
drivers/gpu/drm/vc4/vc4_crtc.c:1045:44: sparse:    got struct drm_crtc_state *state
drivers/gpu/drm/vc4/vc4_crtc.c:1045:39: sparse: sparse: not enough arguments for function vc4_crtc_destroy_state

Signed-off-by: Maarten Lankhorst &lt;maarten.lankhorst@linux.intel.com&gt;
Reported-by: kbuild test robot &lt;lkp@intel.com&gt;
Cc: Eric Anholt &lt;eric@anholt.net&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/2b6ed5e6-81b0-4276-8860-870b54ca3262@linux.intel.com
Fixes: d08106796a78 ("drm/vc4: Fix memory leak during gpu reset.")
Cc: &lt;stable@vger.kernel.org&gt; # v4.6+
Acked-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/vc4: Fix memory leak during gpu reset.</title>
<updated>2019-05-02T07:58:55+00:00</updated>
<author>
<name>Maarten Lankhorst</name>
<email>maarten.lankhorst@linux.intel.com</email>
</author>
<published>2019-03-01T12:56:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=2c892ef094353bf8e9203a3f391158fbfaff4b06'/>
<id>urn:sha1:2c892ef094353bf8e9203a3f391158fbfaff4b06</id>
<content type='text'>
commit d08106796a78a4273e39e1bbdf538dc4334b2635 upstream.

__drm_atomic_helper_crtc_destroy_state does not free memory, it only
cleans it up. Fix this by calling the functions own destroy function.

Fixes: 6d6e50039187 ("drm/vc4: Allocate the right amount of space for boot-time CRTC state.")
Cc: Eric Anholt &lt;eric@anholt.net&gt;
Cc: &lt;stable@vger.kernel.org&gt; # v4.6+
Reviewed-by: Eric Anholt &lt;eric@anholt.net&gt;
Signed-off-by: Maarten Lankhorst &lt;maarten.lankhorst@linux.intel.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20190301125627.7285-2-maarten.lankhorst@linux.intel.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/vc4: -&gt;x_scaling[1] should never be set to VC4_SCALING_NONE</title>
<updated>2019-02-12T18:46:59+00:00</updated>
<author>
<name>Boris Brezillon</name>
<email>boris.brezillon@bootlin.com</email>
</author>
<published>2018-11-09T10:26:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7543c3cf17c6bd3e241c29d7a575d60313033da0'/>
<id>urn:sha1:7543c3cf17c6bd3e241c29d7a575d60313033da0</id>
<content type='text'>
[ Upstream commit 0560054da5673b25d56bea6c57c8d069673af73b ]

For the YUV conversion to work properly, -&gt;x_scaling[1] should never
be set to VC4_SCALING_NONE, but vc4_get_scaling_mode() might return
VC4_SCALING_NONE if the horizontal scaling ratio exactly matches the
horizontal subsampling factor. Add a test to turn VC4_SCALING_NONE
into VC4_SCALING_PPF when that happens.

The old -&gt;x_scaling[0] adjustment is dropped as I couldn't find any
mention to this constraint in the spec and it's proven to be
unnecessary (I tested various multi-planar YUV formats with scaling
disabled, and all of them worked fine without this adjustment).

Fixes: fc04023fafec ("drm/vc4: Add support for YUV planes.")
Signed-off-by: Boris Brezillon &lt;boris.brezillon@bootlin.com&gt;
Reviewed-by: Eric Anholt &lt;eric@anholt.net&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20181109102633.32603-1-boris.brezillon@bootlin.com
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
</feed>
