<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/gpu/drm/sun4i, branch v5.4.50</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v5.4.50</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v5.4.50'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2020-06-24T15:50:43+00:00</updated>
<entry>
<title>drm/sun4i: hdmi ddc clk: Fix size of m divider</title>
<updated>2020-06-24T15:50:43+00:00</updated>
<author>
<name>Jernej Skrabec</name>
<email>jernej.skrabec@siol.net</email>
</author>
<published>2020-04-13T09:54:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ab482b587207b1c39ca5cc23342937eb284291eb'/>
<id>urn:sha1:ab482b587207b1c39ca5cc23342937eb284291eb</id>
<content type='text'>
[ Upstream commit 54e1e06bcf1cf6e7ac3f86daa5f7454add24b494 ]

m divider in DDC clock register is 4 bits wide. Fix that.

Fixes: 9c5681011a0c ("drm/sun4i: Add HDMI support")
Signed-off-by: Jernej Skrabec &lt;jernej.skrabec@siol.net&gt;
Reviewed-by: Chen-Yu Tsai &lt;wens@csie.org&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20200413095457.1176754-1-jernej.skrabec@siol.net
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>sun6i: dsi: fix gcc-4.8</title>
<updated>2020-05-20T06:20:06+00:00</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2020-04-28T21:50:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e2824505a8132b0e6e0c3050bdccc07ff6185340'/>
<id>urn:sha1:e2824505a8132b0e6e0c3050bdccc07ff6185340</id>
<content type='text'>
[ Upstream commit 3a3a71f97c30983f1627c2c550d43566e9b634d2 ]

Older compilers warn about initializers with incorrect curly
braces:

drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c: In function 'sun6i_dsi_encoder_enable':
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c:720:8: error: missing braces around initializer [-Werror=missing-braces]
  union phy_configure_opts opts = { 0 };
        ^
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c:720:8: error: (near initialization for 'opts.mipi_dphy') [-Werror=missing-braces]

Use the GNU empty initializer extension to avoid this.

Fixes: bb3b6fcb6849 ("sun6i: dsi: Convert to generic phy handling")
Reviewed-by: Paul Kocialkowski &lt;paul.kocialkowski@bootlin.com&gt;
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20200428215105.3928459-1-arnd@arndb.de
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/sun4i: de2/de3: Remove unsupported VI layer formats</title>
<updated>2020-03-12T12:00:27+00:00</updated>
<author>
<name>Jernej Skrabec</name>
<email>jernej.skrabec@siol.net</email>
</author>
<published>2020-02-24T17:38:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=609b392e85230fe7b82f1ae0b4a34f47a7808eb8'/>
<id>urn:sha1:609b392e85230fe7b82f1ae0b4a34f47a7808eb8</id>
<content type='text'>
commit a4769905f0ae32cae4f096f646ab03b8b4794c74 upstream.

YUV444 and YVU444 are planar formats, but HW format RGB888 is packed.
This means that those two mappings were never correct. Remove them.

Fixes: 60a3dcf96aa8 ("drm/sun4i: Add DE2 definitions for YUV formats")
Acked-by: Maxime Ripard &lt;mripard@kernel.org&gt;
Signed-off-by: Jernej Skrabec &lt;jernej.skrabec@siol.net&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20200224173901.174016-2-jernej.skrabec@siol.net
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/sun4i: Fix DE2 VI layer format support</title>
<updated>2020-03-12T12:00:26+00:00</updated>
<author>
<name>Jernej Skrabec</name>
<email>jernej.skrabec@siol.net</email>
</author>
<published>2020-02-24T17:38:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a49ddfae6c1a86983a3feec79b520e75eed9d5e9'/>
<id>urn:sha1:a49ddfae6c1a86983a3feec79b520e75eed9d5e9</id>
<content type='text'>
commit 20896ef137340e9426cf322606f764452f5eb960 upstream.

DE2 VI layer doesn't support blending which means alpha channel is
ignored. Replace all formats with alpha with "don't care" (X) channel.

Fixes: 7480ba4d7571 ("drm/sun4i: Add support for DE2 VI planes")
Acked-by: Maxime Ripard &lt;mripard@kernel.org&gt;
Signed-off-by: Jernej Skrabec &lt;jernej.skrabec@siol.net&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20200224173901.174016-4-jernej.skrabec@siol.net
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/sun4i: Add separate DE3 VI layer formats</title>
<updated>2020-03-12T12:00:26+00:00</updated>
<author>
<name>Jernej Skrabec</name>
<email>jernej.skrabec@siol.net</email>
</author>
<published>2020-02-24T17:38:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=dfe25f9a1c26d7c80a7777c4a32e7254eadbb21c'/>
<id>urn:sha1:dfe25f9a1c26d7c80a7777c4a32e7254eadbb21c</id>
<content type='text'>
commit 169ca4b38932112e8b2ee8baef9cea44678625b3 upstream.

DE3 VI layers support alpha blending, but DE2 VI layers do not.
Additionally, DE3 VI layers support 10-bit RGB and YUV formats.

Make a separate list for DE3.

Fixes: c50519e6db4d ("drm/sun4i: Add basic support for DE3")
Acked-by: Maxime Ripard &lt;mripard@kernel.org&gt;
Signed-off-by: Jernej Skrabec &lt;jernej.skrabec@siol.net&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20200224173901.174016-3-jernej.skrabec@siol.net
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Revert "drm/sun4i: drv: Allow framebuffer modifiers in mode config"</title>
<updated>2020-02-19T18:53:09+00:00</updated>
<author>
<name>Jernej Skrabec</name>
<email>jernej.skrabec@siol.net</email>
</author>
<published>2020-01-26T06:59:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=0e365eafbcaa00645ab0469ac84d598f6bb4e03b'/>
<id>urn:sha1:0e365eafbcaa00645ab0469ac84d598f6bb4e03b</id>
<content type='text'>
commit cf913e9683273f2640501094fa63a67e29f437b3 upstream.

This reverts commit 9db9c0cf5895e4ddde2814360cae7bea9282edd2.

Setting mode_config.allow_fb_modifiers manually is completely
unnecessary. It is set automatically by drm_universal_plane_init() based
on the fact if modifier list is provided or not. Even more, it breaks
DE2 and DE3 as they don't support any modifiers beside linear. Modifiers
aware applications can be confused by provided empty modifier list - at
least linear modifier should be included, but it's not for DE2 and DE3.

Fixes: 9db9c0cf5895 ("drm/sun4i: drv: Allow framebuffer modifiers in mode config")
Signed-off-by: Jernej Skrabec &lt;jernej.skrabec@siol.net&gt;
Reviewed-by: Paul Kocialkowski &lt;paul.kocialkowski@bootlin.com&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20200126065937.9564-1-jernej.skrabec@siol.net
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/sun4i: tcon: Set RGB DCLK min. divider based on hardware model</title>
<updated>2020-01-14T19:08:25+00:00</updated>
<author>
<name>Chen-Yu Tsai</name>
<email>wens@csie.org</email>
</author>
<published>2020-01-07T07:01:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c001b900caa6ddafd5becf09fef7614141cf583e'/>
<id>urn:sha1:c001b900caa6ddafd5becf09fef7614141cf583e</id>
<content type='text'>
commit 4396393fb96449c56423fb4b351f76e45a6bcaf6 upstream.

In commit 0b8e7bbde5e7 ("drm/sun4i: tcon: Set min division of TCON0_DCLK
to 1.") it was assumed that all TCON variants support a minimum divider
of 1 if only DCLK was used.

However, the oldest generation of hardware only supports minimum divider
of 4 if only DCLK is used. If a divider of 1 was used on this old
hardware, some scrolling artifact would appear. A divider of 2 seemed
OK, but a divider of 3 had artifacts as well.

Set the minimum divider when outputing to parallel RGB based on the
hardware model, with a minimum of 4 for the oldest (A10/A10s/A13/A20)
hardware, and a minimum of 1 for the rest. A value is not set for the
TCON variants lacking channel 0.

This fixes the scrolling artifacts seen on my A13 tablet.

Fixes: 0b8e7bbde5e7 ("drm/sun4i: tcon: Set min division of TCON0_DCLK to 1.")
Cc: &lt;stable@vger.kernel.org&gt; # 5.4.x
Signed-off-by: Chen-Yu Tsai &lt;wens@csie.org&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20200107070113.28951-1-wens@kernel.org
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/sun4i: hdmi: Remove duplicate cleanup calls</title>
<updated>2020-01-09T09:19:55+00:00</updated>
<author>
<name>Stefan Mavrodiev</name>
<email>stefan@olimex.com</email>
</author>
<published>2019-12-17T12:46:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=55ab031c0a7db9617ab437f95bda85386696d2cf'/>
<id>urn:sha1:55ab031c0a7db9617ab437f95bda85386696d2cf</id>
<content type='text'>
commit 57177d214ee0816c4436c23d6c933ccb32c571f1 upstream.

When the HDMI unbinds drm_connector_cleanup() and drm_encoder_cleanup()
are called. This also happens when the connector and the encoder are
destroyed. This double call triggers a NULL pointer exception.

The patch fixes this by removing the cleanup calls in the unbind
function.

Cc: &lt;stable@vger.kernel.org&gt;
Fixes: 9c5681011a0c ("drm/sun4i: Add HDMI support")
Signed-off-by: Stefan Mavrodiev &lt;stefan@olimex.com&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20191217124632.20820-1-stefan@olimex.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/sun4i: dsi: Fix TCON DRQ set bits</title>
<updated>2019-12-31T15:43:30+00:00</updated>
<author>
<name>Jagan Teki</name>
<email>jagan@amarulasolutions.com</email>
</author>
<published>2019-10-03T06:45:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=3516e9d1ef00977854a51693ced49617e7341e96'/>
<id>urn:sha1:3516e9d1ef00977854a51693ced49617e7341e96</id>
<content type='text'>
[ Upstream commit 7ac6269968826f9cad61b501bb613cc5cadb7229 ]

The LCD timing definitions between Linux DRM vs Allwinner are different,
below diagram shows this clear differences.

           Active                 Front           Sync           Back
           Region                 Porch                          Porch
&lt;-----------------------&gt;&lt;----------------&gt;&lt;--------------&gt;&lt;--------------&gt;
  //////////////////////|
 ////////////////////// |
//////////////////////  |..................                ................
                                           ________________
&lt;----- [hv]display -----&gt;
&lt;------------- [hv]sync_start ------------&gt;
&lt;--------------------- [hv]sync_end ----------------------&gt;
&lt;-------------------------------- [hv]total ------------------------------&gt;

&lt;----- lcd_[xy] --------&gt;		  &lt;- lcd_[hv]spw -&gt;
					  &lt;---------- lcd_[hv]bp ---------&gt;
&lt;-------------------------------- lcd_[hv]t ------------------------------&gt;

The DSI driver misinterpreted the hbp term from the BSP code to refer
only to the backporch, when in fact it was backporch + sync. Thus the
driver incorrectly used the horizontal front porch plus sync in its
calculation of the DRQ set bit value, when it should not have included
the sync timing.

Including additional sync timings leads to flip_done timed out as:

WARNING: CPU: 0 PID: 31 at drivers/gpu/drm/drm_atomic_helper.c:1429 drm_atomic_helper_wait_for_vblanks.part.1+0x298/0x2a0
[CRTC:46:crtc-0] vblank wait timed out
Modules linked in:
CPU: 0 PID: 31 Comm: kworker/0:1 Not tainted 5.1.0-next-20190514-00026-g01f0c75b902d-dirty #13
Hardware name: Allwinner sun8i Family
Workqueue: events deferred_probe_work_func
[&lt;c010ed54&gt;] (unwind_backtrace) from [&lt;c010b76c&gt;] (show_stack+0x10/0x14)
[&lt;c010b76c&gt;] (show_stack) from [&lt;c0688c70&gt;] (dump_stack+0x84/0x98)
[&lt;c0688c70&gt;] (dump_stack) from [&lt;c011d9e4&gt;] (__warn+0xfc/0x114)
[&lt;c011d9e4&gt;] (__warn) from [&lt;c011da40&gt;] (warn_slowpath_fmt+0x44/0x68)
[&lt;c011da40&gt;] (warn_slowpath_fmt) from [&lt;c040cd50&gt;] (drm_atomic_helper_wait_for_vblanks.part.1+0x298/0x2a0)
[&lt;c040cd50&gt;] (drm_atomic_helper_wait_for_vblanks.part.1) from [&lt;c040e694&gt;] (drm_atomic_helper_commit_tail_rpm+0x5c/0x6c)
[&lt;c040e694&gt;] (drm_atomic_helper_commit_tail_rpm) from [&lt;c040e4dc&gt;] (commit_tail+0x40/0x6c)
[&lt;c040e4dc&gt;] (commit_tail) from [&lt;c040e5cc&gt;] (drm_atomic_helper_commit+0xbc/0x128)
[&lt;c040e5cc&gt;] (drm_atomic_helper_commit) from [&lt;c0411b64&gt;] (restore_fbdev_mode_atomic+0x1cc/0x1dc)
[&lt;c0411b64&gt;] (restore_fbdev_mode_atomic) from [&lt;c04156f8&gt;] (drm_fb_helper_restore_fbdev_mode_unlocked+0x54/0xa0)
[&lt;c04156f8&gt;] (drm_fb_helper_restore_fbdev_mode_unlocked) from [&lt;c0415774&gt;] (drm_fb_helper_set_par+0x30/0x54)
[&lt;c0415774&gt;] (drm_fb_helper_set_par) from [&lt;c03ad450&gt;] (fbcon_init+0x560/0x5ac)
[&lt;c03ad450&gt;] (fbcon_init) from [&lt;c03eb8a0&gt;] (visual_init+0xbc/0x104)
[&lt;c03eb8a0&gt;] (visual_init) from [&lt;c03ed1b8&gt;] (do_bind_con_driver+0x1b0/0x390)
[&lt;c03ed1b8&gt;] (do_bind_con_driver) from [&lt;c03ed780&gt;] (do_take_over_console+0x13c/0x1c4)
[&lt;c03ed780&gt;] (do_take_over_console) from [&lt;c03ad800&gt;] (do_fbcon_takeover+0x74/0xcc)
[&lt;c03ad800&gt;] (do_fbcon_takeover) from [&lt;c013c9c8&gt;] (notifier_call_chain+0x44/0x84)
[&lt;c013c9c8&gt;] (notifier_call_chain) from [&lt;c013cd20&gt;] (__blocking_notifier_call_chain+0x48/0x60)
[&lt;c013cd20&gt;] (__blocking_notifier_call_chain) from [&lt;c013cd50&gt;] (blocking_notifier_call_chain+0x18/0x20)
[&lt;c013cd50&gt;] (blocking_notifier_call_chain) from [&lt;c03a6e44&gt;] (register_framebuffer+0x1e0/0x2f8)
[&lt;c03a6e44&gt;] (register_framebuffer) from [&lt;c04153c0&gt;] (__drm_fb_helper_initial_config_and_unlock+0x2fc/0x50c)
[&lt;c04153c0&gt;] (__drm_fb_helper_initial_config_and_unlock) from [&lt;c04158c8&gt;] (drm_fbdev_client_hotplug+0xe8/0x1b8)
[&lt;c04158c8&gt;] (drm_fbdev_client_hotplug) from [&lt;c0415a20&gt;] (drm_fbdev_generic_setup+0x88/0x118)
[&lt;c0415a20&gt;] (drm_fbdev_generic_setup) from [&lt;c043f060&gt;] (sun4i_drv_bind+0x128/0x160)
[&lt;c043f060&gt;] (sun4i_drv_bind) from [&lt;c044b598&gt;] (try_to_bring_up_master+0x164/0x1a0)
[&lt;c044b598&gt;] (try_to_bring_up_master) from [&lt;c044b668&gt;] (__component_add+0x94/0x140)
[&lt;c044b668&gt;] (__component_add) from [&lt;c0445e1c&gt;] (sun6i_dsi_probe+0x144/0x234)
[&lt;c0445e1c&gt;] (sun6i_dsi_probe) from [&lt;c0452ef4&gt;] (platform_drv_probe+0x48/0x9c)
[&lt;c0452ef4&gt;] (platform_drv_probe) from [&lt;c04512cc&gt;] (really_probe+0x1dc/0x2c8)
[&lt;c04512cc&gt;] (really_probe) from [&lt;c0451518&gt;] (driver_probe_device+0x60/0x160)
[&lt;c0451518&gt;] (driver_probe_device) from [&lt;c044f7a4&gt;] (bus_for_each_drv+0x74/0xb8)
[&lt;c044f7a4&gt;] (bus_for_each_drv) from [&lt;c045107c&gt;] (__device_attach+0xd0/0x13c)
[&lt;c045107c&gt;] (__device_attach) from [&lt;c0450474&gt;] (bus_probe_device+0x84/0x8c)
[&lt;c0450474&gt;] (bus_probe_device) from [&lt;c0450900&gt;] (deferred_probe_work_func+0x64/0x90)
[&lt;c0450900&gt;] (deferred_probe_work_func) from [&lt;c0135970&gt;] (process_one_work+0x204/0x420)
[&lt;c0135970&gt;] (process_one_work) from [&lt;c013690c&gt;] (worker_thread+0x274/0x5a0)
[&lt;c013690c&gt;] (worker_thread) from [&lt;c013b3d8&gt;] (kthread+0x11c/0x14c)
[&lt;c013b3d8&gt;] (kthread) from [&lt;c01010e8&gt;] (ret_from_fork+0x14/0x2c)
Exception stack(0xde539fb0 to 0xde539ff8)
9fa0:                                     00000000 00000000 00000000 00000000
9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
---[ end trace b57eb1e5c64c6b8b ]---
random: fast init done
[drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CRTC:46:crtc-0] flip_done timed out
[drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CONNECTOR:48:DSI-1] flip_done timed out
[drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [PLANE:30:plane-0] flip_done timed out

With the terms(as described in above diagram) fixed, the panel
displays correctly without any timeouts.

Tested-by: Merlijn Wajer &lt;merlijn@wizzup.org&gt;
Signed-off-by: Jagan Teki &lt;jagan@amarulasolutions.com&gt;
Signed-off-by: Maxime Ripard &lt;mripard@kernel.org&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20191003064527.15128-2-jagan@amarulasolutions.com
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/sun4i: tcon: Set min division of TCON0_DCLK to 1.</title>
<updated>2019-11-13T14:20:33+00:00</updated>
<author>
<name>Yunhao Tian</name>
<email>t123yh@outlook.com</email>
</author>
<published>2019-11-13T13:27:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=0b8e7bbde5e7e2c419567e1ee29587dae3b78ee3'/>
<id>urn:sha1:0b8e7bbde5e7e2c419567e1ee29587dae3b78ee3</id>
<content type='text'>
The datasheet of V3s (and various other chips) wrote
that TCON0_DCLK_DIV can be &gt;= 1 if only dclk is used,
and must &gt;= 6 if dclk1 or dclk2 is used. As currently
neither dclk1 nor dclk2 is used (no writes to these
bits), let's set minimal division to 1.

If this minimal division is 6, some common dot clock
frequencies can't be produced (e.g. 30MHz will not be
possible and will fallback to 25MHz), which is
obviously not an expected behaviour.

Signed-off-by: Yunhao Tian &lt;t123yh@outlook.com&gt;
Signed-off-by: Maxime Ripard &lt;maxime@cerno.tech&gt;
Link: https://lore.kernel.org/linux-arm-kernel/MN2PR08MB57905AD8A00C08DA219377C989760@MN2PR08MB5790.namprd08.prod.outlook.com/
</content>
</entry>
</feed>
