<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/gpu/drm/vc4, branch v4.14.263</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.14.263</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.14.263'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2021-12-08T07:46:49+00:00</updated>
<entry>
<title>drm/vc4: fix error code in vc4_create_object()</title>
<updated>2021-12-08T07:46:49+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=93cadd96c500cef7f638f652b46ee8dfe3a53c06'/>
<id>urn:sha1:93cadd96c500cef7f638f652b46ee8dfe3a53c06</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-10T09:29:06+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=25b349b4d8229209266f5dd87744bafad2306bbc'/>
<id>urn:sha1:25b349b4d8229209266f5dd87744bafad2306bbc</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:12:50+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=18d2e3a1c0bb02bca327dffffd7fb896e91cb4f9'/>
<id>urn:sha1:18d2e3a1c0bb02bca327dffffd7fb896e91cb4f9</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 compilation error reported by kbuild test bot</title>
<updated>2019-05-02T07:40:30+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=c13229b3003e142971a0551fbac74fd6b1c62951'/>
<id>urn:sha1:c13229b3003e142971a0551fbac74fd6b1c62951</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:40:30+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=8bf63442f9ca4694f4ab28e62e3b9bc84cfffa7d'/>
<id>urn:sha1:8bf63442f9ca4694f4ab28e62e3b9bc84cfffa7d</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:45:57+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=326f64c25bd4472a6ae62e77b59d9bd4a0fd840f'/>
<id>urn:sha1:326f64c25bd4472a6ae62e77b59d9bd4a0fd840f</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>
<entry>
<title>drm/vc4: Set -&gt;is_yuv to false when num_planes == 1</title>
<updated>2019-01-13T09:01:07+00:00</updated>
<author>
<name>Boris Brezillon</name>
<email>boris.brezillon@bootlin.com</email>
</author>
<published>2018-10-09T13:24:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e956139f32412160616d52f5f630da68a40e4c47'/>
<id>urn:sha1:e956139f32412160616d52f5f630da68a40e4c47</id>
<content type='text'>
commit 2b02a05bdc3a62d36e0d0b015351897109e25991 upstream.

When vc4_plane_state is duplicated -&gt;is_yuv is left assigned to its
previous value, and we never set it back to false when switching to
a non-YUV format.

Fix that by setting -&gt;is_yuv to false in the 'num_planes == 1' branch
of the vc4_plane_setup_clipping_and_scaling() function.

Fixes: fc04023fafecf ("drm/vc4: Add support for YUV planes.")
Cc: &lt;stable@vger.kernel.org&gt;
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/20181009132446.21960-1-boris.brezillon@bootlin.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/vc4: Fix the "no scaling" case on multi-planar YUV formats</title>
<updated>2018-09-29T10:06:05+00:00</updated>
<author>
<name>Boris Brezillon</name>
<email>boris.brezillon@bootlin.com</email>
</author>
<published>2018-07-25T12:29:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c70d8a488a410f067141a765af26ef2b69a1dcd8'/>
<id>urn:sha1:c70d8a488a410f067141a765af26ef2b69a1dcd8</id>
<content type='text'>
commit 658d8cbd07dae22ccecf49399e18c609c4e85c53 upstream.

When there's no scaling requested -&gt;is_unity should be true no matter
the format.

Also, when no scaling is requested and we have a multi-planar YUV
format, we should leave -&gt;y_scaling[0] to VC4_SCALING_NONE and only
set -&gt;x_scaling[0] to VC4_SCALING_PPF.

Doing this fixes an hardly visible artifact (seen when using modetest
and a rather big overlay plane in YUV420).

Fixes: fc04023fafec ("drm/vc4: Add support for YUV planes.")
Cc: &lt;stable@vger.kernel.org&gt;
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/20180725122907.13702-1-boris.brezillon@bootlin.com
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/vc4: Reset -&gt;{x, y}_scaling[1] when dealing with uniplanar formats</title>
<updated>2018-08-06T14:20:51+00:00</updated>
<author>
<name>Boris Brezillon</name>
<email>boris.brezillon@bootlin.com</email>
</author>
<published>2018-07-24T13:36:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=1a08888316d2d69d772391597fadde90d1cf1483'/>
<id>urn:sha1:1a08888316d2d69d772391597fadde90d1cf1483</id>
<content type='text'>
commit a6a00918d4ad8718c3ccde38c02cec17f116b2fd upstream.

This is needed to ensure -&gt;is_unity is correct when the plane was
previously configured to output a multi-planar format with scaling
enabled, and is then being reconfigured to output a uniplanar format.

Fixes: fc04023fafec ("drm/vc4: Add support for YUV planes.")
Cc: &lt;stable@vger.kernel.org&gt;
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/20180724133601.32114-1-boris.brezillon@bootlin.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/vc4: Fix scaling of uni-planar formats</title>
<updated>2018-05-16T08:10:28+00:00</updated>
<author>
<name>Boris Brezillon</name>
<email>boris.brezillon@bootlin.com</email>
</author>
<published>2018-05-07T12:13:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=2b2b00374a54164c77af1a3a64f13d7afc57ee68'/>
<id>urn:sha1:2b2b00374a54164c77af1a3a64f13d7afc57ee68</id>
<content type='text'>
commit 9a0e9802217291e54c4dd1fc5462f189a4be14ec upstream.

When using uni-planar formats (like RGB), the scaling parameters are
stored in plane 0, not plane 1.

Fixes: fc04023fafec ("drm/vc4: Add support for YUV planes.")
Cc: stable@vger.kernel.org
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/20180507121303.5610-1-boris.brezillon@bootlin.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
</feed>
