<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/gpu/drm/panel, branch v5.10.7</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v5.10.7</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v5.10.7'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2020-12-30T10:53:04+00:00</updated>
<entry>
<title>drm/panel: simple: Add flags to boe_nv133fhm_n61</title>
<updated>2020-12-30T10:53:04+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>swboyd@chromium.org</email>
</author>
<published>2020-11-06T18:23:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=1a5f0500d885b2e97a0d3fdb5735530c168e0c78'/>
<id>urn:sha1:1a5f0500d885b2e97a0d3fdb5735530c168e0c78</id>
<content type='text'>
[ Upstream commit ab6fd5d44aa21ede9e566f89132f7bdda7f33093 ]

Reading the EDID of this panel shows that these flags should be set. Set
them so that we match what is in the EDID.

Cc: Douglas Anderson &lt;dianders@chromium.org&gt;
Cc: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
Fixes: b0c664cc80e8 ("panel: simple: Add BOE NV133FHM-N61")
Signed-off-by: Stephen Boyd &lt;swboyd@chromium.org&gt;
Reviewed-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Signed-off-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20201106182333.3080124-1-swboyd@chromium.org
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/panel: sony-acx565akm: Fix race condition in probe</title>
<updated>2020-11-29T21:38:12+00:00</updated>
<author>
<name>Sebastian Reichel</name>
<email>sebastian.reichel@collabora.com</email>
</author>
<published>2020-11-27T20:04:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7c4bada12d320d8648ba3ede6f9b6f9e10f1126a'/>
<id>urn:sha1:7c4bada12d320d8648ba3ede6f9b6f9e10f1126a</id>
<content type='text'>
The probe routine acquires the reset GPIO using GPIOD_OUT_LOW. Directly
afterwards it calls acx565akm_detect(), which sets the GPIO value to
HIGH. If the bootloader initialized the GPIO to HIGH before the probe
routine was called, there is only a very short time period of a few
instructions where the reset signal is LOW. Exact time depends on
compiler optimizations, kernel configuration and alignment of the stars,
but I expect it to be always way less than 10us. There are no public
datasheets for the panel, but acx565akm_power_on() has a comment with
timings and reset period should be at least 10us. So this potentially
brings the panel into a half-reset state.

The result is, that panel may not work after boot and can get into a
working state by re-enabling it (e.g. by blanking + unblanking), since
that does a clean reset cycle. This bug has recently been hit by Ivaylo
Dimitrov, but there are some older reports which are probably the same
bug. At least Tony Lindgren, Peter Ujfalusi and Jarkko Nikula have
experienced it in 2017 describing the blank/unblank procedure as
possible workaround.

Note, that the bug really goes back in time. It has originally been
introduced in the predecessor of the omapfb driver in commit 3c45d05be382
("OMAPDSS: acx565akm panel: handle gpios in panel driver") in 2012.
That driver eventually got replaced by a newer one, which had the bug
from the beginning in commit 84192742d9c2 ("OMAPDSS: Add Sony ACX565AKM
panel driver") and still exists in fbdev world. That driver has later
been copied to omapdrm and then was used as a basis for this driver.
Last but not least the omapdrm specific driver has been removed in
commit 45f16c82db7e ("drm/omap: displays: Remove unused panel drivers").

Reported-by: Jarkko Nikula &lt;jarkko.nikula@bitmer.com&gt;
Reported-by: Peter Ujfalusi &lt;peter.ujfalusi@ti.com&gt;
Reported-by: Tony Lindgren &lt;tony@atomide.com&gt;
Reported-by: Aaro Koskinen &lt;aaro.koskinen@iki.fi&gt;
Reported-by: Ivaylo Dimitrov &lt;ivo.g.dimitrov.75@gmail.com&gt;
Cc: Merlijn Wajer &lt;merlijn@wizzup.org&gt;
Cc: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Cc: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
Fixes: 1c8fc3f0c5d2 ("drm/panel: Add driver for the Sony ACX565AKM panel")
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.com&gt;
Tested-by: Ivaylo Dimitrov &lt;ivo.g.dimitrov.75@gmail.com&gt;
Tested-by: Aaro Koskinen &lt;aaro.koskinen@iki.fi&gt;
Tested-by: Jarkko Nikula &lt;jarkko.nikula@bitmer.com&gt;
Signed-off-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20201127200429.129868-1-sebastian.reichel@collabora.com
</content>
</entry>
<entry>
<title>drm/panel: mantix: Fix panel reset</title>
<updated>2020-10-23T08:05:17+00:00</updated>
<author>
<name>Guido Günther</name>
<email>agx@sigxcpu.org</email>
</author>
<published>2020-10-13T10:32:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6af672523fe4bd71f5e70c50258fd0fc09663fae'/>
<id>urn:sha1:6af672523fe4bd71f5e70c50258fd0fc09663fae</id>
<content type='text'>
The mantix panel needs two reset lines (RESX and TP_RSTN) deasserted to
output an image. Only deasserting RESX is not enough and the display
will stay blank. Deassert in prepare() and assert in unprepare() to keep
device held in reset when off.

Fixes: 72967d5616d3 ("drm/panel: Add panel driver for the Mantix MLAF057WE51-X DSI panel")
Signed-off-by: Guido Günther &lt;agx@sigxcpu.org&gt;
Signed-off-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Reviewed-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/ba71a8ab010d263a8058dd4f711e3bcd95877bf2.1602584953.git.agx@sigxcpu.org
</content>
</entry>
<entry>
<title>drm/panel: mantix: Don't dereference NULL mode</title>
<updated>2020-10-23T08:05:06+00:00</updated>
<author>
<name>Guido Günther</name>
<email>agx@sigxcpu.org</email>
</author>
<published>2020-10-13T10:32:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=938f324e7df25e89226c6fe137028af73cd6160b'/>
<id>urn:sha1:938f324e7df25e89226c6fe137028af73cd6160b</id>
<content type='text'>
Don't dereference mode which was just NULL checked.

Fixes: 72967d5616d3 ("drm/panel: Add panel driver for the Mantix MLAF057WE51-X DSI panel")
Signed-off-by: Guido Günther &lt;agx@sigxcpu.org&gt;
Reported-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Reviewed-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/659158549f3c6cc1c71ceed0943e760e861c1206.1602584953.git.agx@sigxcpu.org
</content>
</entry>
<entry>
<title>drm/panel: s6e63m0: Add missing MODULE_LICENSE</title>
<updated>2020-09-10T06:53:06+00:00</updated>
<author>
<name>YueHaibing</name>
<email>yuehaibing@huawei.com</email>
</author>
<published>2020-09-09T13:41:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=13138ab2dacd0076a93f74b49ea8fe806e49c3f5'/>
<id>urn:sha1:13138ab2dacd0076a93f74b49ea8fe806e49c3f5</id>
<content type='text'>
Kbuild warns when this file is built as a loadable module:

WARNING: modpost: missing MODULE_LICENSE() in drivers/gpu/drm/panel/panel-samsung-s6e63m0.o

Add the missing license/author/description tags.

Fixes: b7b23e447687 ("drm/panel: s6e63m0: Break out SPI transport")
Signed-off-by: YueHaibing &lt;yuehaibing@huawei.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20200909134137.32284-1-yuehaibing@huawei.com
</content>
</entry>
<entry>
<title>drm/panel: s6e63m0: Fix up DRM_DEV* regression</title>
<updated>2020-09-06T19:55:03+00:00</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2020-09-06T13:29:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=d2024cdf0f02b9bdad2adb8ce220e30c6424e247'/>
<id>urn:sha1:d2024cdf0f02b9bdad2adb8ce220e30c6424e247</id>
<content type='text'>
Ooops the panel drivers stopped to use DRM_DEV* messages
and we predictably create errors by merging code that
still use it.

Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Acked-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Acked-by: David Airlie &lt;airlied@linux.ie&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20200906132903.5739-1-linus.walleij@linaro.org
</content>
</entry>
<entry>
<title>drm/panel: s6e63m0: Order enable/disable sequence</title>
<updated>2020-09-04T23:28:11+00:00</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2020-08-17T21:39:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ec219f1ba23777c84e913b08e192413eea22d220'/>
<id>urn:sha1:ec219f1ba23777c84e913b08e192413eea22d220</id>
<content type='text'>
The upstream S6E63M0 driver has some peculiarities around
the prepare/enable disable/unprepare sequence: the screen
is taken out of sleep in prepare() as part of
s6e63m0_init() the put to on with MIPI_DCS_SET_DISPLAY_ON
in enable().

However it is just put into sleep mode directly in
disable(). As disable()/enable() can be called without
unprepare()/prepare() being called, this is unbalanced,
we should take the display out of sleep in enable()
then turn it off().

Further MIPI_DCS_SET_DISPLAY_OFF is never called
balanced with MIPI_DCS_SET_DISPLAY_ON.

The vendor driver for Samsung GT-I8190 (Golden) does all
of these things in strict order.

Augment the driver to do exit sleep/set display on in
enable() and set display off/enter sleep in disable().

Further send an explicit reset pulse in power_on() so we
come up in a known state, and issue the MCS_ERROR_CHECK
command after setting display on like the vendor driver
does. Also use the timings from the vendor driver in
the sequence.

Doing all of these things makes the display much more
stable on the Samsung GT-I8190 when enabling/disabling
the display pipeline.

Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Acked-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Cc: Paweł Chmiel &lt;pawel.mikolaj.chmiel@gmail.com&gt;
Cc: Stephan Gerhold &lt;stephan@gerhold.net&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20200817213906.88207-1-linus.walleij@linaro.org
</content>
</entry>
<entry>
<title>drm/panel: s6e63m0: Add code to identify panel</title>
<updated>2020-09-04T23:26:30+00:00</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2020-08-09T21:51:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=83ba7a7b3d4a70fe92122f039539566c9526228c'/>
<id>urn:sha1:83ba7a7b3d4a70fe92122f039539566c9526228c</id>
<content type='text'>
We add code to identify a few different panels mounted
on the s6e63m0 controller. This is necessary to achieve
the proper biasing with DSI versions of the panel.

Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Tested-by: Stephan Gerhold &lt;stephan@gerhold.net&gt;
Cc: Paweł Chmiel &lt;pawel.mikolaj.chmiel@gmail.com&gt;
Acked-by: Paul Cercueil &lt;paul@crapouillou.net&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20200809215104.1830206-5-linus.walleij@linaro.org
</content>
</entry>
<entry>
<title>drm/panel: s6e63m0: Add reading functionality</title>
<updated>2020-09-04T23:24:26+00:00</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2020-08-09T21:51:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=91867ac7d6724c31f32c3a63e2bb5db978893eaf'/>
<id>urn:sha1:91867ac7d6724c31f32c3a63e2bb5db978893eaf</id>
<content type='text'>
This adds code to send read commands to read a single
byte from the display, in order to perform MTP ID
look-up of the mounted panel on the s6e63m0 controller.
This is needed for proper biasing on the DSI variants.

Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Tested-by: Stephan Gerhold &lt;stephan@gerhold.net&gt;
Cc: Paweł Chmiel &lt;pawel.mikolaj.chmiel@gmail.com&gt;
Acked-by: Paul Cercueil &lt;paul@crapouillou.net&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20200809215104.1830206-4-linus.walleij@linaro.org
</content>
</entry>
<entry>
<title>drm/panel: s6e63m0: Add DSI transport</title>
<updated>2020-09-04T23:23:45+00:00</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2020-08-09T21:51:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=435e06c06cb2e3bd2f650a52641ddb13a95a1624'/>
<id>urn:sha1:435e06c06cb2e3bd2f650a52641ddb13a95a1624</id>
<content type='text'>
This makes it possible to use the s6e63m0 panel with a
DSI host, such as in the Samsung GT-I8190 (Golden) mobile
phone.

Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Tested-by: Stephan Gerhold &lt;stephan@gerhold.net&gt;
Cc: Stephan Gerhold &lt;stephan@gerhold.net&gt;
Cc: Paweł Chmiel &lt;pawel.mikolaj.chmiel@gmail.com&gt;
Acked-by: Paul Cercueil &lt;paul@crapouillou.net&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20200809215104.1830206-3-linus.walleij@linaro.org
</content>
</entry>
</feed>
