<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/gpu/drm/vc4, branch v4.19.283</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.19.283</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.19.283'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2023-03-11T15:31:39+00:00</updated>
<entry>
<title>drm/vc4: dpi: Fix format mapping for RGB565</title>
<updated>2023-03-11T15:31:39+00:00</updated>
<author>
<name>Dave Stevenson</name>
<email>dave.stevenson@raspberrypi.com</email>
</author>
<published>2022-12-01T08:42:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=606cd8d27122ab52c2f133143b6f9caec63b8c15'/>
<id>urn:sha1:606cd8d27122ab52c2f133143b6f9caec63b8c15</id>
<content type='text'>
[ Upstream commit 0870d86eac8a9abd89a0be1b719d5dc5bac936f0 ]

The mapping is incorrect for RGB565_1X16 as it should be
DPI_FORMAT_18BIT_666_RGB_1 instead of DPI_FORMAT_18BIT_666_RGB_3.

Fixes: 08302c35b59d ("drm/vc4: Add DPI driver")
Signed-off-by: Dave Stevenson &lt;dave.stevenson@raspberrypi.com&gt;
Reviewed-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Link: https://lore.kernel.org/r/20221013-rpi-dpi-improvements-v3-7-eb76e26a772d@cerno.tech
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/vc4: dpi: Add option for inverting pixel clock and output enable</title>
<updated>2023-03-11T15:31:39+00:00</updated>
<author>
<name>Dave Stevenson</name>
<email>dave.stevenson@raspberrypi.com</email>
</author>
<published>2022-06-13T14:47:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4ede4f40c3eeba0ef6f06894e7fcd36f84f790d3'/>
<id>urn:sha1:4ede4f40c3eeba0ef6f06894e7fcd36f84f790d3</id>
<content type='text'>
[ Upstream commit 3c2707632146b22e97b0fbf6778bab8add2eaa1d ]

DRM provides flags for inverting pixel clock and output enable
signals, but these were not mapped to the relevant registers.

Add those mappings.

Signed-off-by: Dave Stevenson &lt;dave.stevenson@raspberrypi.com&gt;
Link: https://lore.kernel.org/r/20220613144800.326124-10-maxime@cerno.tech
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Stable-dep-of: 0870d86eac8a ("drm/vc4: dpi: Fix format mapping for RGB565")
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/vc4: Fix missing platform_unregister_drivers() call in vc4_drm_register()</title>
<updated>2022-11-25T16:40:17+00:00</updated>
<author>
<name>Yuan Can</name>
<email>yuancan@huawei.com</email>
</author>
<published>2022-11-03T01:47:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=b1a86e3ddf44ab2f91d716d19c5953b8f42dfc43'/>
<id>urn:sha1:b1a86e3ddf44ab2f91d716d19c5953b8f42dfc43</id>
<content type='text'>
[ Upstream commit cf53db768a8790fdaae2fa3a81322b080285f7e5 ]

A problem about modprobe vc4 failed is triggered with the following log
given:

 [  420.327987] Error: Driver 'vc4_hvs' is already registered, aborting...
 [  420.333904] failed to register platform driver vc4_hvs_driver [vc4]: -16
 modprobe: ERROR: could not insert 'vc4': Device or resource busy

The reason is that vc4_drm_register() returns platform_driver_register()
directly without checking its return value, if platform_driver_register()
fails, it returns without unregistering all the vc4 drivers, resulting the
vc4 can never be installed later.
A simple call graph is shown as below:

 vc4_drm_register()
   platform_register_drivers() # all vc4 drivers are registered
   platform_driver_register()
     driver_register()
       bus_add_driver()
         priv = kzalloc(...) # OOM happened
   # return without unregister drivers

Fixing this problem by checking the return value of
platform_driver_register() and do platform_unregister_drivers() if
error happened.

Fixes: c8b75bca92cb ("drm/vc4: Add KMS support for Raspberry Pi.")
Signed-off-by: Yuan Can &lt;yuancan@huawei.com&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20221103014705.109322-1-yuancan@huawei.com
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/vc4: vec: Fix timings for VEC modes</title>
<updated>2022-10-26T11:19:39+00:00</updated>
<author>
<name>Mateusz Kwiatkowski</name>
<email>kfyatek+publicgit@gmail.com</email>
</author>
<published>2022-08-29T13:11:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=050e4ad28ca8cc637d277e759cdbe933f5a76c38'/>
<id>urn:sha1:050e4ad28ca8cc637d277e759cdbe933f5a76c38</id>
<content type='text'>
[ Upstream commit 30d7565be96b3946c18a1ce3fd538f7946839092 ]

This commit fixes vertical timings of the VEC (composite output) modes
to accurately represent the 525-line ("NTSC") and 625-line ("PAL") ITU-R
standards.

Previous timings were actually defined as 502 and 601 lines, resulting
in non-standard 62.69 Hz and 52 Hz signals being generated,
respectively.

Signed-off-by: Mateusz Kwiatkowski &lt;kfyatek+publicgit@gmail.com&gt;
Acked-by: Noralf Trønnes &lt;noralf@tronnes.org&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20220728-rpi-analog-tv-properties-v2-28-459522d653a7@cerno.tech
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/vc4: dsi: Correct DSI divider calculations</title>
<updated>2022-08-25T09:15:05+00:00</updated>
<author>
<name>Dave Stevenson</name>
<email>dave.stevenson@raspberrypi.com</email>
</author>
<published>2022-06-13T14:47:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4a015d46048f67d860777546c4fd30065f88b1aa'/>
<id>urn:sha1:4a015d46048f67d860777546c4fd30065f88b1aa</id>
<content type='text'>
[ Upstream commit 3b45eee87da171caa28f61240ddb5c21170cda53 ]

The divider calculations tried to find the divider just faster than the
clock requested. However if it required a divider of 7 then the for loop
aborted without handling the "error" case, and could end up with a clock
lower than requested.

The integer divider from parent PLL to DSI clock is also capable of
going up to /255, not just /7 that the driver was trying.  This allows
for slower link frequencies on the DSI bus where the resolution permits.

Correct the loop so that we always have a clock greater than requested,
and covering the whole range of dividers.

Fixes: 86c1b9eff3f2 ("drm/vc4: Adjust modes in DSI to work around the integer PLL divider.")
Signed-off-by: Dave Stevenson &lt;dave.stevenson@raspberrypi.com&gt;
Link: https://lore.kernel.org/r/20220613144800.326124-13-maxime@cerno.tech
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<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>
</feed>
