<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/stable/linux.git/drivers/gpu/drm/panel, 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-20T00:58:44+00:00</updated>
<entry>
<title>BackMerge tag 'v7.2' into drm-next</title>
<updated>2026-08-20T00:58:44+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2026-08-20T00:58: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=c44e278ce02efd0c4be79a8eda1ea6885c1ce5ec'/>
<id>urn:sha1:c44e278ce02efd0c4be79a8eda1ea6885c1ce5ec</id>
<content type='text'>
Linux 7.2

There was a lot of conflicts this round between fixes and next,
and I'd like to get the merge resolutions that we have in drm-tip.

Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/panel: tdo-tl070wsh30: Use mipi_dsi_*_multi(); fix minor bugs</title>
<updated>2026-08-06T17:28:07+00:00</updated>
<author>
<name>Akash Sukhavasi</name>
<email>akash.sukhavasi@gmail.com</email>
</author>
<published>2026-07-31T00:11:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=263728b4c4d03dbed2e6106cccd24626d682b6cb'/>
<id>urn:sha1:263728b4c4d03dbed2e6106cccd24626d682b6cb</id>
<content type='text'>
The mipi_dsi_dcs_*() functions used by this driver are deprecated in
favor of their _multi() counterparts, as noted in
Documentation/gpu/todo.rst. The _multi() variants record the first
error in a context structure and skip every later call once an error
is set, so the return value no longer has to be checked after each
command. They also log their own failures, which makes the per-call
dev_err() calls redundant.

Convert prepare() and unprepare(). prepare() uses mipi_dsi_msleep()
for the delays between DSI commands. unprepare() uses plain
usleep_range() so the delays run unconditionally after the
accumulated error is cleared. The delays in the GPIO reset sequence
stay as plain msleep() and usleep_range(), since they run before any
DSI transaction.

unprepare() now disables the regulator unconditionally and returns 0.
Previously a failure of set_display_off() was logged and the sequence
continued, while a failure of enter_sleep_mode() returned early,
leaving the regulator enabled and the panel unable to be brought back
up, since drm_panel_unprepare() skips panel-&gt;prepared = false on
error. The accumulated error from set_display_off() is cleared so
that the delay and enter_sleep_mode() are still attempted, preserving
the original fall-through behavior. Both drm_panel_prepare() and
drm_panel_unprepare() return void, so the error was never propagated
to a caller in any case.

Signed-off-by: Akash Sukhavasi &lt;akash.sukhavasi@gmail.com&gt;
Reviewed-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Signed-off-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Link: https://patch.msgid.link/20260730-mipi-dsi-tl070wsh30-multi-v3-1-60592caef4f4@gmail.com
</content>
</entry>
<entry>
<title>drm/panel-edp: Add pre_unprepare delay</title>
<updated>2026-08-05T20:47:53+00:00</updated>
<author>
<name>Hsin-Te Yuan</name>
<email>yuanhsinte@chromium.org</email>
</author>
<published>2026-08-03T09:47:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=c8d3d795dd40c7fb35b39ebcb99ae5f2f1884b48'/>
<id>urn:sha1:c8d3d795dd40c7fb35b39ebcb99ae5f2f1884b48</id>
<content type='text'>
In eDP power-off timing specifications, T10 defines the minimum delay
required between the end of valid video data from the source and panel
power-down (main VDD off).

Currently, panel-edp only supports the 'disable' delay, which corresponds
to T9 (backlight off to end of video data) and runs in panel_edp_disable()
while video data is still active. For panels that require a delay after
video data has stopped before cutting power, this delay must occur in
panel_edp_unprepare() before turning off power rails.

Add a 'pre_unprepare' field to struct panel_delay to model T10-min, and
delay for this duration in panel_edp_unprepare() before calling
pm_runtime_put_sync_suspend().

Additionally, adjust the timing entry for TM156VDXP25 to use
delay_200_500_e80_pu100 (enable = 80ms, pre_unprepare = 100ms) to match
its panel specification, replacing the previous delay_200_500_e50_d100.

Fixes: b9e2d5cdaab0 ("drm/panel-edp: Support NV140FHM-N5B and TM156VDXP25")
Signed-off-by: Hsin-Te Yuan &lt;yuanhsinte@chromium.org&gt;
Reviewed-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Signed-off-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Link: https://patch.msgid.link/20260803-edp-v1-1-3e92dec1d56c@chromium.org
</content>
</entry>
<entry>
<title>drm/panel-edp: Add Sharp LQ120P1JX51 (Surface Pro 12in 1st Ed.)</title>
<updated>2026-08-03T19:59:27+00:00</updated>
<author>
<name>François Roux</name>
<email>info@humanlearning.ch</email>
</author>
<published>2026-08-02T13:50: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=6ed8d820cea9cae226f500d3af86e156eede27f6'/>
<id>urn:sha1:6ed8d820cea9cae226f500d3af86e156eede27f6</id>
<content type='text'>
The internal eDP panel of the Microsoft Surface Pro 12in 1st Edition
(Snapdragon X Plus, X1P42100) is not in edp_panels[], so every boot
produces the deliberate WARN_ON splat in panel_edp_probe() and the panel
falls back to conservative timings:

  WARNING: drivers/gpu/drm/panel/panel-edp.c:814 panel_edp_probe+0x53c/0x56c
  panel-simple-dp-aux aux-aea0000.displayport-controller:
      Unknown panel SHP 0x15a7, using conservative timings

EDID, read over the panel's DP AUX DDC bus:

  00 ff ff ff ff ff ff 00 4d 10 a7 15 a0 00 00 1f
  31 22 01 04 a5 19 11 78 07 ee 91 a3 54 4c 99 26
  0f 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
  01 01 01 01 01 01 62 53 94 a0 80 b8 2e 50 18 10
  3a 00 fe a9 00 00 00 18 13 7d 94 a0 80 b8 2e 50
  18 10 3a 00 fe a9 00 00 00 18 00 00 00 fd 00 18
  5a 88 88 21 01 00 00 00 00 00 00 00 00 00 00 fc
  00 4c 51 31 32 30 50 31 4a 58 35 31 0a 20 00 69

  Manufacturer: SHP
  Model: 0x15a7
  Made in: week 49 of 2024
  Display Product Name: 'LQ120P1JX51'
  DTD 1: 2196x1464 60.001799 Hz 3:2 (254 mm x 169 mm)
  DTD 2: 2196x1464 90.002698 Hz 3:2 (254 mm x 169 mm)

Timings are deliberately cautious rather than datasheet-derived. The
conservative fallback sets unprepare=2000 and enable=200; unprepare=2000
is a safety margin for unknown panels only and is the single occurrence
of that value in the file -- no real panel entry uses it.
delay_200_500_e200 keeps the same generous 200 ms enable delay while
using the 500 ms unprepare shared by every actual panel in the table. A
shorter enable delay may well be fine, but has not been validated here.

Signed-off-by: François Roux &lt;info@humanlearning.ch&gt;
Reviewed-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Signed-off-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Link: https://patch.msgid.link/20260802135107.4420-1-info@humanlearning.ch
</content>
</entry>
<entry>
<title>drm/panel-edp: Add CMN N116BCP-EA2 (HW: C3)</title>
<updated>2026-07-30T01:28:19+00:00</updated>
<author>
<name>Terry Hsiao</name>
<email>terry_hsiao@compal.corp-partner.google.com</email>
</author>
<published>2026-07-28T03:59:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=35b6cf07851a2b430b0eefbcb7b5a856f9030264'/>
<id>urn:sha1:35b6cf07851a2b430b0eefbcb7b5a856f9030264</id>
<content type='text'>
The raw EDID:
00 ff ff ff ff ff ff 00 0d ae 6c 11 00 00 00 00
02 24 01 04 95 1a 0e 78 03 67 75 98 59 53 90 27
1c 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 da 1d 56 e2 50 00 20 30 30 20
a6 00 00 90 10 00 00 1a e7 13 56 e2 50 00 20 30
30 20 a6 00 00 90 10 00 00 1a 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02
00 0c 47 ff 08 3c 7d 0d 0a 15 7d 00 00 00 00 05

Signed-off-by: Terry Hsiao &lt;terry_hsiao@compal.corp-partner.google.com&gt;
Reviewed-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Signed-off-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Link: https://patch.msgid.link/20260728035931.10342-1-terry_hsiao@compal.corp-partner.google.com
</content>
</entry>
<entry>
<title>drm/panel-edp: Add BOE NE140QDM-NX2</title>
<updated>2026-07-30T01:25:36+00:00</updated>
<author>
<name>Weiji Wang</name>
<email>nebclllo0444@gmail.com</email>
</author>
<published>2026-07-27T19:58:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=354b9c43d36ce9b41e48b2d67c5d9b953a0e9d64'/>
<id>urn:sha1:354b9c43d36ce9b41e48b2d67c5d9b953a0e9d64</id>
<content type='text'>
Add timing from datasheet for BOE NE140QDM-NX2.

edid-decode (hex):

00 ff ff ff ff ff ff 00 09 e5 f2 0a 00 00 00 00
20 1f 01 04 a5 1e 13 78 03 ee 96 a3 54 4c 99 26
0f 4e 51 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 60 d2 00 a0 a0 40 32 60 30 20
35 00 2e bd 10 00 00 18 c8 9d 00 a0 a0 40 32 60
30 20 35 00 2e bd 10 00 00 18 00 00 00 fd 00 30
78 c6 c6 36 01 0a 20 20 20 20 20 20 00 00 00 fe
00 4e 45 31 34 30 51 44 4d 2d 4e 58 32 20 01 f8

70 13 79 00 00 03 01 14 30 69 00 05 ff 09 9f 00
2f 00 1f 00 3f 06 31 00 02 00 04 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 4d 90

Signed-off-by: Weiji Wang &lt;nebclllo0444@gmail.com&gt;
Reviewed-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Signed-off-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Link: https://patch.msgid.link/82fc6395-3425-4f71-ba58-813856cee61d@gmail.com
</content>
</entry>
<entry>
<title>drm/panel: ilitek-ili9805: make cleanup funcs void</title>
<updated>2026-07-30T01:16:40+00:00</updated>
<author>
<name>Michail Tatas</name>
<email>michail.tatas@gmail.com</email>
</author>
<published>2026-07-23T20:36:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=eb7979f6014a18f7086ecbb70da3e442056b5673'/>
<id>urn:sha1:eb7979f6014a18f7086ecbb70da3e442056b5673</id>
<content type='text'>
Make cleanup functions return void since no one is checking
their return values

Signed-off-by: Michail Tatas &lt;michail.tatas@gmail.com&gt;
Reviewed-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
Reviewed-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Signed-off-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Link: https://patch.msgid.link/20260723203601.806697-4-michail.tatas@gmail.com
</content>
</entry>
<entry>
<title>drm/panel: ilitek-ili9805: Use dsi_multi in init</title>
<updated>2026-07-30T01:16:39+00:00</updated>
<author>
<name>Michail Tatas</name>
<email>michail.tatas@gmail.com</email>
</author>
<published>2026-07-23T20:36:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=438caed529a6b6dd985afc85ee52a29bc20ab3f6'/>
<id>urn:sha1:438caed529a6b6dd985afc85ee52a29bc20ab3f6</id>
<content type='text'>
Drop the struct ili9805_instr and the init table
and use init functions.

Signed-off-by: Michail Tatas &lt;michail.tatas@gmail.com&gt;
Reviewed-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
Reviewed-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Signed-off-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Link: https://patch.msgid.link/20260723203601.806697-3-michail.tatas@gmail.com
</content>
</entry>
<entry>
<title>drm/panel: ilitek-ili9805: Use _multi variants</title>
<updated>2026-07-30T01:16:38+00:00</updated>
<author>
<name>Michail Tatas</name>
<email>michail.tatas@gmail.com</email>
</author>
<published>2026-07-23T20:35:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=fdde70f52306f74c7f2466706626f3f1ef973e61'/>
<id>urn:sha1:fdde70f52306f74c7f2466706626f3f1ef973e61</id>
<content type='text'>
Convert functions mipi_dsi_* to mipi_dsi_*_multi as per the
gpu/todo file.
The multi variant of these functions include improved error
handling.

Signed-off-by: Michail Tatas &lt;michail.tatas@gmail.com&gt;
Reviewed-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
Reviewed-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Signed-off-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Link: https://patch.msgid.link/20260723203601.806697-2-michail.tatas@gmail.com
</content>
</entry>
<entry>
<title>drm/panel: novatek-nt36536: Fix panel double-remove on attach failure</title>
<updated>2026-07-27T08:08:18+00:00</updated>
<author>
<name>David Carlier</name>
<email>devnexen@gmail.com</email>
</author>
<published>2026-07-24T04:17: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=4085da1e6ad90ca7a227d8528de2c77042fabf8a'/>
<id>urn:sha1:4085da1e6ad90ca7a227d8528de2c77042fabf8a</id>
<content type='text'>
The DSI attach error path calls drm_panel_remove() by hand even though
the panel was registered with devm_drm_panel_add(), which already
arranges for drm_panel_remove() to run on driver detach. When
mipi_dsi_attach() fails the panel is therefore removed twice: once
directly and once again while devres unwinds.

drm_panel_add() takes a reference and drm_panel_remove() drops one, so
the extra removal releases the last reference early and frees the panel
container. The put registered by devm_drm_panel_alloc() then operates on
freed memory, resulting in a use-after-free and a reference-count
underflow when a DSI host rejects the requested configuration during
probe.

Drop the manual drm_panel_remove() and let the managed cleanup handle
it, matching the other dual-DSI panel drivers.

Fixes: 75a5dbd1f4f7 ("drm/panel: Add Novatek NT36536 panel driver")
Signed-off-by: David Carlier &lt;devnexen@gmail.com&gt;
Reviewed-by: Pengyu Luo &lt;mitltlatltl@gmail.com&gt;
Signed-off-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
Link: https://patch.msgid.link/20260724041746.12887-1-devnexen@gmail.com
</content>
</entry>
</feed>
