<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/stable/linux.git/drivers/gpu/drm/sun4i, branch master</title>
<subtitle>Linux kernel stable tree</subtitle>
<id>https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=master</id>
<link rel='self' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/'/>
<updated>2026-08-06T06:22:50+00:00</updated>
<entry>
<title>drm/sun4i: hdmi-phy: Fix H6 8-bit MPLL config at 594 MHz</title>
<updated>2026-08-06T06:22:50+00:00</updated>
<author>
<name>Jernej Skrabec</name>
<email>jernej.skrabec@gmail.com</email>
</author>
<published>2026-08-03T16:10:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=0ba6deddaae74f0539c0303bfb5f860adbe1a68b'/>
<id>urn:sha1:0ba6deddaae74f0539c0303bfb5f860adbe1a68b</id>
<content type='text'>
The 8-bit entry of the last MPLL row (594 MHz) doesn't lock reliably on
H6. 4K@60 RGB/YUV444, which is the mode that reaches this entry, doesn't
come up.

Align the value with the vendor driver. Other entries are left alone,
they are used by lower pixel clocks which work fine.

Tested with 4K@60 on a LG TV.

Fixes: 0fb4b858b102 ("drm/sun4i: Add support for H6 HDMI PHY")
Signed-off-by: Jernej Skrabec &lt;jernej.skrabec@gmail.com&gt;
Acked-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
Reviewed-by: Chen-Yu Tsai &lt;wens@csie.org&gt;
Link: https://patch.msgid.link/aec9060209473b8176eb43bc7c63c20b21306adf.1785772659.git.jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/sun4i: Drop node references while building component list</title>
<updated>2026-08-06T06:22:50+00:00</updated>
<author>
<name>Jernej Skrabec</name>
<email>jernej.skrabec@gmail.com</email>
</author>
<published>2026-08-03T16:10:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=08a91f2a0664b73c2af9295ecbd441e852abe33c'/>
<id>urn:sha1:08a91f2a0664b73c2af9295ecbd441e852abe33c</id>
<content type='text'>
Two references are leaked every time the display pipeline is walked:
the output port node in sun4i_drv_traverse_endpoints(), which was never
released since the driver was introduced, and each node taken out of
the endpoint fifo in sun4i_drv_probe(), which stopped being released
when the fifo was introduced. The latter is still safe to drop right
after processing, since drm_of_component_match_add() takes its own
reference.

Fixes: 9026e0d122ac ("drm: Add Allwinner A10 Display Engine support")
Fixes: 8b11aaface2b ("drm/sun4i: Implement endpoint parsing using kfifo")
Signed-off-by: Jernej Skrabec &lt;jernej.skrabec@gmail.com&gt;
Acked-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
Link: https://patch.msgid.link/759c74e3a22b97ca066ef7910ca4b91b852011e6.1785772659.git.jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/sun4i: dw-hdmi: Drop TCON TOP port reference</title>
<updated>2026-08-06T06:22:50+00:00</updated>
<author>
<name>Jernej Skrabec</name>
<email>jernej.skrabec@gmail.com</email>
</author>
<published>2026-08-03T16:10:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=d2a242e5688a17b79c89cd966cd31820c5096d80'/>
<id>urn:sha1:d2a242e5688a17b79c89cd966cd31820c5096d80</id>
<content type='text'>
When the HDMI controller is fed by TCON TOP, the port node used to
enumerate the possible CRTCs is never released.

Fixes: 57e23de02f48 ("drm/sun4i: DW HDMI: Expand algorithm for possible crtcs")
Signed-off-by: Jernej Skrabec &lt;jernej.skrabec@gmail.com&gt;
Acked-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
Link: https://patch.msgid.link/43ffcc17f7c3f94c1d7bd1ee89134c766e84df35.1785772659.git.jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/sun4i: tcon: Drop remote endpoint reference</title>
<updated>2026-08-06T06:22:50+00:00</updated>
<author>
<name>Jernej Skrabec</name>
<email>jernej.skrabec@gmail.com</email>
</author>
<published>2026-08-03T16:10:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=3f77e4072630e2301efdbe521e7fca10311043ec'/>
<id>urn:sha1:3f77e4072630e2301efdbe521e7fca10311043ec</id>
<content type='text'>
sun4i_tcon_of_get_id_from_port() never drops the reference taken by
of_graph_get_remote_endpoint(). The function is not only called during
bind, but also on every mode set through sun8i_r40_tcon_tv_set_mux(),
so the leak accumulates.

Fixes: e8d5bbf7f4c4 ("drm/sun4i: tcon: get TCON ID and matching engine with remote endpoint ID")
Signed-off-by: Jernej Skrabec &lt;jernej.skrabec@gmail.com&gt;
Acked-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
Reviewed-by: Jernej Skrabec &lt;jernej.skrabec@gmail.com&gt;
Link: https://patch.msgid.link/3f5ec952ad80cb51efebf2fe230df50259041a23.1785772659.git.jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/sun4i: crtc: Propagate layer initialization error</title>
<updated>2026-08-06T06:22:50+00:00</updated>
<author>
<name>Jernej Skrabec</name>
<email>jernej.skrabec@gmail.com</email>
</author>
<published>2026-08-03T16:10:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7061ff05ed4a3cf16e83f7e3ad09cbd212508a32'/>
<id>urn:sha1:7061ff05ed4a3cf16e83f7e3ad09cbd212508a32</id>
<content type='text'>
sun4i_crtc_init() returns plain NULL when layer initialization fails,
while all its other error paths return an error pointer. The only
caller, sun4i_tcon_bind(), checks the result with IS_ERR() and happily
continues with tcon-&gt;crtc set to NULL. sun4i_rgb_init() and
sun4i_lvds_init() then dereference it in drm_crtc_mask(), which
oopses.

Return the error pointer instead.

Fixes: dcd215801b02 ("drm/sun4i: Drop primary layer pointer from sun4i_drv")
Signed-off-by: Jernej Skrabec &lt;jernej.skrabec@gmail.com&gt;
Acked-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
Link: https://patch.msgid.link/b26a0d427d9dfae9c82e3ca90a67d24d8ece5a28.1785772659.git.jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/sun4i: hdmi: Don't leak sync polarity bits into packet control</title>
<updated>2026-08-06T06:22:50+00:00</updated>
<author>
<name>Jernej Skrabec</name>
<email>jernej.skrabec@gmail.com</email>
</author>
<published>2026-08-03T16:10:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=f5c3b1b0d228624786d22973a20c908c84e1a576'/>
<id>urn:sha1:f5c3b1b0d228624786d22973a20c908c84e1a576</id>
<content type='text'>
sun4i_hdmi_enable() keeps using the same variable after it programmed
the video timing polarity register with it. The leftover TX_CLK, HSYNC
and VSYNC bits are then ORed into the packet control register, where
each nibble selects the packet type sent in one slot.

As a result, slot 0 selects packet type 3 instead of the AVI infoframe
whenever the mode has positive HSYNC polarity, and the TX_CLK bits set
nibbles which the driver never programs.

Assign the packet types instead of ORing them into the stale value.

Fixes: 9ca6bc246035 ("drm/sun4i: hdmi: Move mode_set into enable")
Signed-off-by: Jernej Skrabec &lt;jernej.skrabec@gmail.com&gt;
Acked-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
Link: https://patch.msgid.link/51ba0918ce016a4b45313d5df1b6ce31b8c8731e.1785772659.git.jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/sun4i: tcon: Drop TCON TOP device reference</title>
<updated>2026-08-06T06:22:50+00:00</updated>
<author>
<name>Jernej Skrabec</name>
<email>jernej.skrabec@gmail.com</email>
</author>
<published>2026-08-03T16:10:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=8208832a38ff3d2560eb8a77a9d7a2f17d8ebcdc'/>
<id>urn:sha1:8208832a38ff3d2560eb8a77a9d7a2f17d8ebcdc</id>
<content type='text'>
of_find_device_by_node() takes a device reference. Drop it after mux
configuration succeeds.

Fixes: 0305189afb32 ("drm/sun4i: tcon: Add support for R40 TCON")
Signed-off-by: Jernej Skrabec &lt;jernej.skrabec@gmail.com&gt;
Acked-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
Link: https://patch.msgid.link/871a3108086c15a483eef23301984c8d2254dfa7.1785772659.git.jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/sun4i: tcon: Set output mux for DSI and LVDS</title>
<updated>2026-08-06T06:22:50+00:00</updated>
<author>
<name>Jernej Skrabec</name>
<email>jernej.skrabec@gmail.com</email>
</author>
<published>2026-08-03T16:10:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=9c90199b39637ad94253c4fd8e7b1333ca1d3e0d'/>
<id>urn:sha1:9c90199b39637ad94253c4fd8e7b1333ca1d3e0d</id>
<content type='text'>
DSI and LVDS skip output mux setup, so TCON TOP cannot route the selected
mixer. Configure them like other channel 0 outputs.

In practice this matters for D1, where channel 0 TCONs are fed through
TCON TOP. The remaining set_mux implementations only handle TMDS and
return an error for other encoder types, as before.

Fixes: b9b52d2f4aaf ("drm/sun4i: Add support for D1 TCONs")
Signed-off-by: Jernej Skrabec &lt;jernej.skrabec@gmail.com&gt;
Acked-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
Link: https://patch.msgid.link/7e9dad9eed2e91a79c4e1202caa8fed7c2427531.1785772659.git.jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/sun4i: tcon-top: Keep mixer routes distinct</title>
<updated>2026-08-06T06:22:50+00:00</updated>
<author>
<name>Jernej Skrabec</name>
<email>jernej.skrabec@gmail.com</email>
</author>
<published>2026-08-03T16:10:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=62bac3202042a8cfd4d4969a6d057cebd8b7cc1a'/>
<id>urn:sha1:62bac3202042a8cfd4d4969a6d057cebd8b7cc1a</id>
<content type='text'>
Both mixer selectors reset to TCON 0. Selecting the same TCON for both
mixers causes black or corrupted output.

When a route would collide, park the other mixer on another described
TCON, or an unused selector if none exists.

Since the TCON index is now used as a shift, also reject negative
values.

Tested on Orange Pi 3 with TCON_LCD0 and TCON_TV0.

Link: https://lore.kernel.org/linux-sunxi/Zn8GVkpwXwhaUFno@titan/
Link: https://lore.kernel.org/linux-sunxi/20241108-tcon_fix-v1-1-616218cc0d5f@jookia.org/
Fixes: 05db311a792d ("drm/sun4i: tcon-top: Add helpers for mux switching")
Signed-off-by: Jernej Skrabec &lt;jernej.skrabec@gmail.com&gt;
Reviewed-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
Link: https://patch.msgid.link/52eb247169b268054302afa71e598add0b04748d.1785772659.git.jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/sun4i: vi scaler: Restore opaque alpha in video modes</title>
<updated>2026-08-06T06:22:50+00:00</updated>
<author>
<name>Jernej Skrabec</name>
<email>jernej.skrabec@gmail.com</email>
</author>
<published>2026-08-03T16:10:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=583d99165a85c3aaee924078c0f03c72e25644ac'/>
<id>urn:sha1:583d99165a85c3aaee924078c0f03c72e25644ac</id>
<content type='text'>
The DE3 mixer initialization clears the entire mixer register space. This
also clears VSU_GLOBAL_ALPHA, despite its hardware reset value being 0xff.

The VI scaler uses Video Normal mode for subsampled YUV formats. In this
mode, VSU_GLOBAL_ALPHA provides the scaler output alpha. Leaving the
register at zero causes the scaler to produce fully transparent output.

Set VSU_GLOBAL_ALPHA to 0xff whenever configuring a DE3 or newer VI
scaler. The register is ignored in UI scaling mode.

Fixes: c50519e6db4d ("drm/sun4i: Add basic support for DE3")
Signed-off-by: Jernej Skrabec &lt;jernej.skrabec@gmail.com&gt;
Acked-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
Link: https://patch.msgid.link/c48ba85b9e4478d51afde4f36839fd1c1d363b23.1785772659.git.jernej.skrabec@gmail.com
Signed-off-by: Chen-Yu Tsai &lt;wens@kernel.org&gt;
</content>
</entry>
</feed>
