Marek Vasut
576828e59a
drm/panel/panel-sitronix-st7701: Remove panel on DSI attach failure
...
[ Upstream commit c62102165dd79284d42383d2f7ed17301bd8e629 ]
In case mipi_dsi_attach() fails, call drm_panel_remove() to
avoid memory leak.
Fixes: 849b2e3ff9
("drm/panel: Add Sitronix ST7701 panel driver")
Signed-off-by: Marek Vasut <marex@denx.de >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20221014231106.468063-1-marex@denx.de
Signed-off-by: Sasha Levin <sashal@kernel.org >
2023-01-14 10:15:26 +01:00
Aishwarya Kothari
c776a49d09
drm/panel: simple: set bpc field for logic technologies displays
...
[ Upstream commit 876153ab068b2507a19aa3ef481f5b00a2cc780f ]
In case bpc is not set for a panel it then throws a WARN(). Add bpc to
the panels logictechno_lt170410_2whc and logictechno_lt161010_2nh.
Fixes: 5728fe7fa5
("drm/panel: simple: add display timings for logic technologies displays")
Signed-off-by: Aishwarya Kothari <aishwarya.kothari@toradex.com >
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com >
Signed-off-by: Douglas Anderson <dianders@chromium.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20220831141622.39605-1-francesco.dolcini@toradex.com
Signed-off-by: Sasha Levin <sashal@kernel.org >
2022-11-25 17:45:44 +01:00
Heiko Schocher
1ac50c1ad4
drm/panel: simple: Fix innolux_g121i1_l01 bus_format
...
[ Upstream commit a7c48a0ab87ae52c087d663e83e56b8225ac4cce ]
innolux_g121i1_l01 sets bpc to 6, so use the corresponding bus format:
MEDIA_BUS_FMT_RGB666_1X7X3_SPWG.
Fixes: 4ae13e4868
("drm/panel: simple: Add more properties to Innolux G121I1-L01")
Signed-off-by: Heiko Schocher <hs@denx.de >
Signed-off-by: Fabio Estevam <festevam@denx.de >
Signed-off-by: Marek Vasut <marex@denx.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20220826165021.1592532-1-festevam@denx.de
Signed-off-by: Sasha Levin <sashal@kernel.org >
2022-09-28 11:10:32 +02:00
Jagan Teki
e19ece6f24
drm/panel: panel-simple: Fix proper bpc for AM-1280800N3TZQW-T00H
...
[ Upstream commit 7eafbecd2288c542ea15ea20cf1a7e64a25c21bc ]
AM-1280800N3TZQW-T00H panel support 8 bpc not 6 bpc as per
recent testing in i.MX8MM platform.
Fix it.
Fixes: bca684e69c
("drm/panel: simple: Add AM-1280800N3TZQW-T00H")
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com >
Reviewed-by: Robert Foss <robert.foss@linaro.org >
Signed-off-by: Robert Foss <robert.foss@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20211111094103.494831-1-jagan@amarulasolutions.com
Signed-off-by: Sasha Levin <sashal@kernel.org >
2022-06-09 10:21:05 +02:00
Marek Vasut
d764a7d647
drm/panel: simple: Add missing bus flags for Innolux G070Y2-L01
...
[ Upstream commit 0f73a559f916b618c0c05186bd644c90cc9e9695 ]
The DE signal is active high on this display, fill in the missing bus_flags.
This aligns panel_desc with its display_timing .
Fixes: a5d2ade627
("drm/panel: simple: Add support for Innolux G070Y2-L01")
Signed-off-by: Marek Vasut <marex@denx.de >
Cc: Christoph Fritz <chf.fritz@googlemail.com >
Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com >
Cc: Maxime Ripard <maxime@cerno.tech >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20220406093627.18011-1-marex@denx.de
Signed-off-by: Sasha Levin <sashal@kernel.org >
2022-06-09 10:21:03 +02:00
Dave Stevenson
405d984274
drm/panel/raspberrypi-touchscreen: Initialise the bridge in prepare
...
[ Upstream commit 5f18c0782b99e26121efa93d20b76c19e17aa1dd ]
The panel has a prepare call which is before video starts, and an
enable call which is after.
The Toshiba bridge should be configured before video, so move
the relevant power and initialisation calls to prepare.
Fixes: 2f733d6194
("drm/panel: Add support for the Raspberry Pi 7" Touchscreen.")
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com >
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com >
Signed-off-by: Maxime Ripard <maxime@cerno.tech >
Link: https://patchwork.freedesktop.org/patch/msgid/20220415162513.42190-3-stefan.wahren@i2se.com
Signed-off-by: Sasha Levin <sashal@kernel.org >
2022-04-27 13:53:56 +02:00
Dave Stevenson
231381f521
drm/panel/raspberrypi-touchscreen: Avoid NULL deref if not initialised
...
[ Upstream commit f92055ae0acb035891e988ce345d6b81a0316423 ]
If a call to rpi_touchscreen_i2c_write from rpi_touchscreen_probe
fails before mipi_dsi_device_register_full is called, then
in trying to log the error message if uses ts->dsi->dev when
it is still NULL.
Use ts->i2c->dev instead, which is initialised earlier in probe.
Fixes: 2f733d6194
("drm/panel: Add support for the Raspberry Pi 7" Touchscreen.")
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com >
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com >
Signed-off-by: Maxime Ripard <maxime@cerno.tech >
Link: https://patchwork.freedesktop.org/patch/msgid/20220415162513.42190-2-stefan.wahren@i2se.com
Signed-off-by: Sasha Levin <sashal@kernel.org >
2022-04-27 13:53:56 +02:00
Marek Vasut
336b6be6ad
drm/panel: simple: Fix Innolux G070Y2-L01 BPP settings
...
[ Upstream commit fc1b6ef7bfb3d1d4df868b1c3e0480cacda6cd81 ]
The Innolux G070Y2-L01 supports two modes of operation:
1) FRC=Low/NC ... MEDIA_BUS_FMT_RGB666_1X7X3_SPWG ... BPP=6
2) FRC=High ..... MEDIA_BUS_FMT_RGB888_1X7X4_SPWG ... BPP=8
Currently the panel description mixes both, BPP from 1) and bus
format from 2), which triggers a warning at panel-simple.c:615.
Pick the later, set bpp=8, fix the warning.
Fixes: a5d2ade627
("drm/panel: simple: Add support for Innolux G070Y2-L01")
Signed-off-by: Marek Vasut <marex@denx.de >
Cc: Christoph Fritz <chf.fritz@googlemail.com >
Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com >
Cc: Maxime Ripard <maxime@cerno.tech >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20220220040718.532866-1-marex@denx.de
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Signed-off-by: Sasha Levin <sashal@kernel.org >
2022-03-23 09:13:28 +01:00
Christoph Niedermaier
3b72d3f020
drm/panel: simple: Assign data from panel_dpi_probe() correctly
...
[ Upstream commit 6df4432a5eca101b5fd80fbee41d309f3d67928d ]
In the function panel_simple_probe() the pointer panel->desc is
assigned to the passed pointer desc. If function panel_dpi_probe()
is called panel->desc will be updated, but further on only desc
will be evaluated. So update the desc pointer to be able to use
the data from the function panel_dpi_probe().
Fixes: 4a1d0dbc83
("drm/panel: simple: add panel-dpi support")
Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com >
Cc: Marek Vasut <marex@denx.de >
Cc: Thierry Reding <thierry.reding@gmail.com >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: David Airlie <airlied@linux.ie >
Cc: Daniel Vetter <daniel@ffwll.ch >
To: dri-devel@lists.freedesktop.org
Reviewed-by: Sam Ravnborg <sam@ravnborg.org >
Signed-off-by: Marek Vasut <marex@denx.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20220201110153.3479-1-cniedermaier@dh-electronics.com
Signed-off-by: Sasha Levin <sashal@kernel.org >
2022-02-16 12:54:24 +01:00
Brian Norris
9bc19022aa
drm/panel: innolux-p079zca: Delete panel on attach() failure
...
[ Upstream commit 32a267e9c057e1636e7afdd20599aa5741a73079 ]
If we fail to attach (e.g., because 1 of 2 dual-DSI controllers aren't
ready), we leave a dangling drm_panel reference to freed memory. Clean
that up on failure.
This problem exists since the driver's introduction, but is especially
relevant after refactored for dual-DSI variants.
Fixes: 14c8f2e9f8
("drm/panel: add Innolux P079ZCA panel driver")
Fixes: 7ad4e4636c
("drm/panel: p079zca: Refactor panel driver to support multiple panels")
Signed-off-by: Brian Norris <briannorris@chromium.org >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20210923173336.2.I9023cf8811a3abf4964ed84eb681721d8bb489d6@changeid
Signed-off-by: Sasha Levin <sashal@kernel.org >
2022-01-27 10:53:45 +01:00
Brian Norris
b01b7b8684
drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
...
[ Upstream commit 5f31dbeae8a88f31c3eb4eb526ab4807c40da241 ]
If we fail to attach (e.g., because 1 of 2 dual-DSI controllers aren't
ready), we leave a dangling drm_panel reference to freed memory. Clean
that up on failure.
Fixes: 2a994cbed6
("drm/panel: Add Kingdisplay KD097D04 panel driver")
Signed-off-by: Brian Norris <briannorris@chromium.org >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20210923173336.1.Icb4d9dbc1817f4e826361a4f1cea7461541668f0@changeid
Signed-off-by: Sasha Levin <sashal@kernel.org >
2022-01-27 10:53:44 +01:00
Dan Johansen
00ad7a0154
drm/panel: ilitek-ili9881c: Fix sync for Feixin K101-IM2BYL02 panel
...
[ Upstream commit 772970620a839141835eaf2bc507d957b10adcca ]
This adjusts sync values according to the datasheet
Fixes: 1c243751c0
("drm/panel: ilitek-ili9881c: add support for Feixin K101-IM2BYL02 panel")
Co-developed-by: Marius Gripsgard <marius@ubports.com >
Signed-off-by: Dan Johansen <strit@manjaro.org >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20210818214818.298089-1-strit@manjaro.org
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Signed-off-by: Sasha Levin <sashal@kernel.org >
2021-10-27 09:56:49 +02:00
Vegard Nossum
d0f0e17103
drm/panel: olimex-lcd-olinuxino: select CRC32
...
commit a14bc107edd0c108bda2245e50daa22f91c95d20 upstream.
Fix the following build/link error by adding a dependency on the CRC32
routines:
ld: drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.o: in function `lcd_olinuxino_probe':
panel-olimex-lcd-olinuxino.c:(.text+0x303): undefined reference to `crc32_le'
Fixes: 17fd7a9d32
("drm/panel: Add support for Olimex LCD-OLinuXino panel")
Cc: Arnd Bergmann <arnd@arndb.de >
Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20211012115242.10325-1-vegard.nossum@oracle.com
Signed-off-by: Dave Airlie <airlied@redhat.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-10-20 11:45:05 +02:00
Maxime Ripard
b91e5b6347
drm/panel: raspberrypi-touchscreen: Prevent double-free
...
[ Upstream commit 7bbcb919e32d776ca8ddce08abb391ab92eef6a9 ]
The mipi_dsi_device allocated by mipi_dsi_device_register_full() is
already free'd on release.
Fixes: 2f733d6194
("drm/panel: Add support for the Raspberry Pi 7" Touchscreen.")
Signed-off-by: Maxime Ripard <maxime@cerno.tech >
Reviewed-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20210720134525.563936-9-maxime@cerno.tech
Signed-off-by: Sasha Levin <sashal@kernel.org >
2021-07-28 14:35:41 +02:00
Linus Walleij
bfdb38a426
drm/panel: nt35510: Do not fail if DSI read fails
...
commit 1988e0d84161dabd99d1c27033fbd6ee439bf432 upstream.
Failing to read the MTP over DSI should not bring down the
system and make us bail out from using the display, it turns
out that this happens when toggling the display off and on,
and that write is often still working so the display output
is just fine. Printing an error is enough.
Tested by killing the Gnome session repeatedly on the
Samsung Skomer.
Fixes: 899f24ed8d
("drm/panel: Add driver for Novatek NT35510-based panels")
Cc: Stephan Gerhold <stephan@gerhold.net >
Reported-by: newbyte@disroot.org
Acked-by: Stefan Hansson <newbyte@disroot.org >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20210603231830.3200040-1-linus.walleij@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-07-25 14:36:21 +02:00
Linus Walleij
ef8a039012
drm/mcde/panel: Inverse misunderstood flag
...
[ Upstream commit d0c5ac04e7feedbc069f26f4dcbf35b521ae7fc5 ]
A recent patch renaming MIPI_DSI_MODE_EOT_PACKET to
MIPI_DSI_MODE_NO_EOT_PACKET brought to light the
misunderstanding in the current MCDE driver and all
its associated panel drivers that MIPI_DSI_MODE_EOT_PACKET
would mean "use EOT packet" when in fact it means the
reverse.
Fix it up by implementing the flag right in the MCDE
DSI driver and remove the flag from panels that actually
want the EOT packet.
Suggested-by: Nicolas Boichat <drinkcat@chromium.org >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org >
Fixes: 5fc537bfd0
("drm/mcde: Add new driver for ST-Ericsson MCDE")
Fixes: 899f24ed8d
("drm/panel: Add driver for Novatek NT35510-based panels")
Fixes: ac1d6d7488
("drm/panel: Add driver for Samsung S6D16D0 panel")
Fixes: 435e06c06c
("drm/panel: s6e63m0: Add DSI transport")
Fixes: 8152c2bfd7
("drm/panel: Add driver for Sony ACX424AKP panel")
Link: https://patchwork.freedesktop.org/patch/msgid/20210304004138.1785057-1-linus.walleij@linaro.org
Signed-off-by: Sasha Levin <sashal@kernel.org >
2021-05-14 09:50:22 +02:00
Heiko Stuebner
7397365737
drm/panel: kd35t133: allow using non-continuous dsi clock
...
commit d922d58fedcd98ba625e89b625a98e222b090b10 upstream.
The panel is able to work when dsi clock is non-continuous, thus
the system power consumption can be reduced using such feature.
Add MIPI_DSI_CLOCK_NON_CONTINUOUS to panel's mode_flags.
Also the flag actually becomes necessary after
commit c6d94e37bd
("drm/bridge/synopsys: dsi: add support for non-continuous HS clock")
and without it the panel only emits stripes instead of output.
Fixes: c6d94e37bd
("drm/bridge/synopsys: dsi: add support for non-continuous HS clock")
Cc: stable@vger.kernel.org # 5.10+
Signed-off-by: Heiko Stuebner <heiko@sntech.de >
Tested-by: Ezequiel Garcia <ezequiel@collabora.com >
Reviewed-by: Christopher Morgan <macromorgan@hotmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210206135020.1991820-1-heiko@sntech.de
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-03-04 11:38:28 +01:00
Guido Günther
5eb0784f4d
drm/panel: mantix: Tweak init sequence
...
[ Upstream commit dd396dbc4d7811c1567cc43faa4b9ad68094c44d ]
We've seen some (non permanent) burn in and bad white balance
on some of the panels. Adding this bit from a vendor supplied
sequence fixes it.
Fixes: 72967d5616
("drm/panel: Add panel driver for the Mantix MLAF057WE51-X DSI panel")
Signed-off-by: Guido Günther <agx@sigxcpu.org >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Reviewed-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/8451831b60d5ecb73a156613d98218a31bd55680.1605688147.git.agx@sigxcpu.org
Signed-off-by: Sasha Levin <sashal@kernel.org >
2021-03-04 11:37:36 +01:00
Antonio Borneo
a6d508c635
drm/panel: otm8009a: allow using non-continuous dsi clock
...
commit 880ee3b7615e7cc087f659cb80ce22f5db56f9a2 upstream.
The panel is able to work when dsi clock is non-continuous, thus
the system power consumption can be reduced using such feature.
Add MIPI_DSI_CLOCK_NON_CONTINUOUS to panel's mode_flags.
Changes in v2:
- Added my signed-off
Signed-off-by: Antonio Borneo <antonio.borneo@st.com >
Signed-off-by: Yannick Fertre <yannick.fertre@st.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200922074253.28810-1-yannick.fertre@st.com
Cc: "Alex G." <mr.nuke.me@gmail.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-01-23 16:04:04 +01:00
Stephen Boyd
1a5f0500d8
drm/panel: simple: Add flags to boe_nv133fhm_n61
...
[ 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 <dianders@chromium.org >
Cc: Bjorn Andersson <bjorn.andersson@linaro.org >
Fixes: b0c664cc80
("panel: simple: Add BOE NV133FHM-N61")
Signed-off-by: Stephen Boyd <swboyd@chromium.org >
Reviewed-by: Douglas Anderson <dianders@chromium.org >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20201106182333.3080124-1-swboyd@chromium.org
Signed-off-by: Sasha Levin <sashal@kernel.org >
2020-12-30 11:53:04 +01:00
Sebastian Reichel
7c4bada12d
drm/panel: sony-acx565akm: Fix race condition in probe
...
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 3c45d05be3
("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 84192742d9
("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 45f16c82db
("drm/omap: displays: Remove unused panel drivers").
Reported-by: Jarkko Nikula <jarkko.nikula@bitmer.com >
Reported-by: Peter Ujfalusi <peter.ujfalusi@ti.com >
Reported-by: Tony Lindgren <tony@atomide.com >
Reported-by: Aaro Koskinen <aaro.koskinen@iki.fi >
Reported-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com >
Cc: Merlijn Wajer <merlijn@wizzup.org >
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com >
Fixes: 1c8fc3f0c5
("drm/panel: Add driver for the Sony ACX565AKM panel")
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com >
Tested-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com >
Tested-by: Aaro Koskinen <aaro.koskinen@iki.fi >
Tested-by: Jarkko Nikula <jarkko.nikula@bitmer.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20201127200429.129868-1-sebastian.reichel@collabora.com
2020-11-29 22:38:12 +01:00
Guido Günther
6af672523f
drm/panel: mantix: Fix panel reset
...
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: 72967d5616
("drm/panel: Add panel driver for the Mantix MLAF057WE51-X DSI panel")
Signed-off-by: Guido Günther <agx@sigxcpu.org >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Reviewed-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/ba71a8ab010d263a8058dd4f711e3bcd95877bf2.1602584953.git.agx@sigxcpu.org
2020-10-23 10:05:17 +02:00
Guido Günther
938f324e7d
drm/panel: mantix: Don't dereference NULL mode
...
Don't dereference mode which was just NULL checked.
Fixes: 72967d5616
("drm/panel: Add panel driver for the Mantix MLAF057WE51-X DSI panel")
Signed-off-by: Guido Günther <agx@sigxcpu.org >
Reported-by: Dan Carpenter <dan.carpenter@oracle.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Reviewed-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/659158549f3c6cc1c71ceed0943e760e861c1206.1602584953.git.agx@sigxcpu.org
2020-10-23 10:05:06 +02:00
YueHaibing
13138ab2da
drm/panel: s6e63m0: Add missing MODULE_LICENSE
...
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: b7b23e4476
("drm/panel: s6e63m0: Break out SPI transport")
Signed-off-by: YueHaibing <yuehaibing@huawei.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20200909134137.32284-1-yuehaibing@huawei.com
2020-09-10 08:53:06 +02:00
Linus Walleij
d2024cdf0f
drm/panel: s6e63m0: Fix up DRM_DEV* regression
...
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 <linus.walleij@linaro.org >
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Acked-by: David Airlie <airlied@linux.ie >
Link: https://patchwork.freedesktop.org/patch/msgid/20200906132903.5739-1-linus.walleij@linaro.org
2020-09-06 21:55:03 +02:00
Linus Walleij
ec219f1ba2
drm/panel: s6e63m0: Order enable/disable sequence
...
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 <linus.walleij@linaro.org >
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Cc: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com >
Cc: Stephan Gerhold <stephan@gerhold.net >
Link: https://patchwork.freedesktop.org/patch/msgid/20200817213906.88207-1-linus.walleij@linaro.org
2020-09-05 01:28:11 +02:00
Linus Walleij
83ba7a7b3d
drm/panel: s6e63m0: Add code to identify panel
...
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 <linus.walleij@linaro.org >
Tested-by: Stephan Gerhold <stephan@gerhold.net >
Cc: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com >
Acked-by: Paul Cercueil <paul@crapouillou.net >
Link: https://patchwork.freedesktop.org/patch/msgid/20200809215104.1830206-5-linus.walleij@linaro.org
2020-09-05 01:26:30 +02:00
Linus Walleij
91867ac7d6
drm/panel: s6e63m0: Add reading functionality
...
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 <linus.walleij@linaro.org >
Tested-by: Stephan Gerhold <stephan@gerhold.net >
Cc: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com >
Acked-by: Paul Cercueil <paul@crapouillou.net >
Link: https://patchwork.freedesktop.org/patch/msgid/20200809215104.1830206-4-linus.walleij@linaro.org
2020-09-05 01:24:26 +02:00
Linus Walleij
435e06c06c
drm/panel: s6e63m0: Add DSI transport
...
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 <linus.walleij@linaro.org >
Tested-by: Stephan Gerhold <stephan@gerhold.net >
Cc: Stephan Gerhold <stephan@gerhold.net >
Cc: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com >
Acked-by: Paul Cercueil <paul@crapouillou.net >
Link: https://patchwork.freedesktop.org/patch/msgid/20200809215104.1830206-3-linus.walleij@linaro.org
2020-09-05 01:23:45 +02:00
Linus Walleij
b7b23e4476
drm/panel: s6e63m0: Break out SPI transport
...
This panel can be accessed using both SPI and DSI.
To make it possible to probe and use the device also from
a DSI bus, first break out the SPI support to its own file.
Since all the panel driver does is write DCS commands to
the panel, we pass a DCS write function to probe()
from each subdriver.
We make the Kconfig entry for SPI mode default so all
current users will continue to work.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Tested-by: Stephan Gerhold <stephan@gerhold.net >
Cc: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com >
Acked-by: Paul Cercueil <paul@crapouillou.net >
Link: https://patchwork.freedesktop.org/patch/384873/
2020-09-05 01:21:48 +02:00
Laurent Pinchart
3b80951699
drm: panel: Fix bpc for OrtusTech COM43H4M85ULC panel
...
The OrtusTech COM43H4M85ULC panel is a 18-bit RGB panel. Commit
f098f168e9
("drm: panel: Fix bus format for OrtusTech COM43H4M85ULC
panel") has fixed the bus formats, but forgot to address the bpc value.
Set it to 6.
Fixes: f098f168e9
("drm: panel: Fix bus format for OrtusTech COM43H4M85ULC panel")
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200824003254.21904-1-laurent.pinchart@ideasonboard.com
2020-08-30 00:10:44 +02:00
Robert Chiras
3b634b479a
drm/panel: rm67191: Remove CLOCK_NON_CONTINUOUS flag
...
The flag MIPI_DSI_CLOCK_NON_CONTINUOUS was wrong used in the DSI driver,
so it was added to this panel, but not necessary.
So, remove this flag since it is not needed.
Signed-off-by: Robert Chiras <robert.chiras@nxp.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/1598626713-5595-1-git-send-email-robert.chiras@oss.nxp.com
2020-08-29 23:01:36 +02:00
Jagan Teki
bca684e69c
drm/panel: simple: Add AM-1280800N3TZQW-T00H
...
Add Ampire, AM-1280800N3TZQW-T00H 10.1" TFT LCD panel timings.
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200829163328.249211-2-jagan@amarulasolutions.com
2020-08-29 23:01:09 +02:00
Douglas Anderson
fc26a3758b
drm: panel: simple: Add KD116N21-30NV-A010
...
Values come from the vendor and have been tested on hardware.
Signed-off-by: Douglas Anderson <dianders@chromium.org >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200821083454.2.Idf25356dff4b36c62704188c3e3d39a2010d6f6a@changeid
2020-08-21 19:14:28 +02:00
Paul Cercueil
d738005da9
drm/panel: novatek,nt39016: Remove 'dev' field in priv struct
...
There is already a 'struct device' pointer in the drm_panel structure,
that we can access easily from our priv structure, so there's no need
for a separate 'dev' field there.
Reviewed-by: Sam Ravnborg <sam@ravnborg.org >
Signed-off-by: Paul Cercueil <paul@crapouillou.net >
Link: https://patchwork.freedesktop.org/patch/msgid/20200820121256.32037-3-paul@crapouillou.net
2020-08-20 18:34:42 +02:00
Paul Cercueil
2f4b769e4d
drm/panel: novatek,nt39016: Reorder calls in probe
...
The drm_panel_of_backlight() function must be called after
drm_panel_init(), according to the function's documentation; otherwise
the backlight won't be properly initialized.
Reviewed-by: Sam Ravnborg <sam@ravnborg.org >
Signed-off-by: Paul Cercueil <paul@crapouillou.net >
Link: https://patchwork.freedesktop.org/patch/msgid/20200820121256.32037-2-paul@crapouillou.net
2020-08-20 18:34:28 +02:00
Sam Ravnborg
a25b6b273f
drm/panel: Use dev_ based logging
...
Standardize on the dev_ based logging and drop the include of drm_print.h.
Fix a few cases where "x@" was used when printing the mode.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Reviewed-by: Guido Günther <agx@sigxcpu.org >
Cc: Jerry Han <hanxu5@huaqin.corp-partner.google.com >
Cc: Thierry Reding <thierry.reding@gmail.com >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Icenowy Zheng <icenowy@aosc.io >
Cc: Jagan Teki <jagan@amarulasolutions.com >
Cc: Linus Walleij <linus.walleij@linaro.org >
Cc: Guido Günther <agx@sigxcpu.org >
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200815125406.1153224-6-sam@ravnborg.org
2020-08-18 22:32:37 +02:00
Sam Ravnborg
65d5c86fc5
drm/panel: sitronix: Use dev_ based logging
...
Standardize on the dev_ based logging and drop the include of drm_print.h.
Fix a few cases where "x@" was used when printing the mode.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Reviewed-by: Guido Günther <agx@sigxcpu.org >
Cc: Jagan Teki <jagan@amarulasolutions.com >
Cc: Thierry Reding <thierry.reding@gmail.com >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Guido Günther <agx@sigxcpu.org >
Cc: Linus Walleij <linus.walleij@linaro.org >
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200815125406.1153224-5-sam@ravnborg.org
2020-08-18 22:32:23 +02:00
Sam Ravnborg
c8cf6990f9
drm/panel: raydium: Use dev_ based logging
...
Standardize on the dev_ based logging and drop the include of drm_print.h.
Fix a few cases where "x@" was used when printing the mode.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Reviewed-by: Guido Günther <agx@sigxcpu.org >
Cc: Robert Chiras <robert.chiras@nxp.com >
Cc: Thierry Reding <thierry.reding@gmail.com >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Guido Günther <agx@sigxcpu.org >
Cc: Linus Walleij <linus.walleij@linaro.org >
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200815125406.1153224-4-sam@ravnborg.org
2020-08-18 22:32:08 +02:00
Sam Ravnborg
b75efff5f5
drm/panel: leadtek: Use dev_ based logging
...
Standardize on the dev_ based logging and drop the include of drm_print.h.
Fix a few cases where "x@" was used when printing the mode.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Reviewed-by: Guido Günther <agx@sigxcpu.org >
Cc: Thierry Reding <thierry.reding@gmail.com >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Guido Günther <agx@sigxcpu.org >
Cc: Linus Walleij <linus.walleij@linaro.org >
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200815125406.1153224-3-sam@ravnborg.org
2020-08-18 22:31:48 +02:00
Sam Ravnborg
5936b3bdaa
drm/panel: samsung: Use dev_ based logging
...
Standardize on the dev_ based logging and drop the include of drm_print.h.
Fix a few cases where "x@" was used when printing the mode.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Reviewed-by: Guido Günther <agx@sigxcpu.org >
Cc: Thierry Reding <thierry.reding@gmail.com >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Guido Günther <agx@sigxcpu.org >
Cc: Linus Walleij <linus.walleij@linaro.org >
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200815125406.1153224-2-sam@ravnborg.org
2020-08-18 22:31:09 +02:00
Guido Günther
72967d5616
drm/panel: Add panel driver for the Mantix MLAF057WE51-X DSI panel
...
The panel uses a Focaltech FT8006p, the touch part is handled by the
already existing edt-ft5x06.
Signed-off-by: Guido Günther <agx@sigxcpu.org >
Reviewed-by: Sam Ravnborg <sam@ravnborg.org >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/118c6e03dd0ff6e86e495579102cbf7d0cfca6f4.1597652012.git.agx@sigxcpu.org
2020-08-18 18:37:23 +02:00
Dmitry Osipenko
5759c9674c
drm/panel-simple: Read panel orientation
...
The panel orientation needs to parsed from a device-tree and assigned to
the panel's connector in order to make orientation property available to
userspace. That's what this patch does for the panel-simple driver.
Signed-off-by: Dmitry Osipenko <digetx@gmail.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200813215609.28643-5-digetx@gmail.com
2020-08-16 17:12:18 +02:00
Dmitry Osipenko
58310c2ec9
drm/panel: lvds: Read panel orientation
...
The panel orientation needs to parsed from a device-tree and assigned to
the panel's connector in order to make orientation property available to
userspace. That's what this patch does for the generic LVDS panel.
Signed-off-by: Dmitry Osipenko <digetx@gmail.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200813215609.28643-4-digetx@gmail.com
2020-08-16 17:12:18 +02:00
Derek Basehore
4a135d5441
drm/panel: Read panel orientation for BOE TV101WUM-NL6
...
This reads the DT setting for the panel rotation to set the panel
orientation in the get_modes callback.
Reviewed-by: Dmitry Osipenko <digetx@gmail.com >
Signed-off-by: Derek Basehore <dbasehore@chromium.org >
Signed-off-by: Dmitry Osipenko <digetx@gmail.com >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200813215609.28643-3-digetx@gmail.com
2020-08-16 17:12:18 +02:00
Icenowy Zheng
1c243751c0
drm/panel: ilitek-ili9881c: add support for Feixin K101-IM2BYL02 panel
...
Feixin K101-IM2BYL02 is a new panel by Feixin designed as a replacement
to their K101-IM2BA02 panel. This panel utilizes the Ilitek ILI9881C
controller.
Add this panel's initialzation sequence and timing to ILI9881C driver.
Signed-off-by: Icenowy Zheng <icenowy@aosc.io >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200719171007.276383-2-icenowy@aosc.io
2020-08-15 16:51:00 +02:00
Icenowy Zheng
b7d71b6e1f
drm/panel: ilitek-ili9881c: prepare for adding support for extra panels
...
There're more panels with ILI9881C controller than the Bananapi one
supported by this driver.
Extract the mode and init sequence part, to prepare the driver for
adding new panels.
Signed-off-by: Icenowy Zheng <icenowy@aosc.io >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200719170411.275812-2-icenowy@aosc.io
2020-08-15 16:50:29 +02:00
Paul Cercueil
e6c21e6f9c
drm/panel: simple: Add 50Hz mode for sharp,ls020b1dd01d
...
Add a perfect 50.00 Hz frame rate mode to the list of available modes
for the Sharp LS020B1DD01D panel.
Signed-off-by: Paul Cercueil <paul@crapouillou.net >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200811002240.55194-6-paul@crapouillou.net
2020-08-15 16:08:04 +02:00
Paul Cercueil
c1bd32b5f6
drm/panel: simple: Tweak timings of sharp,ls020b1dd01d for perfect 60Hz
...
Modify the video mode in order to obtain a perfect 60.00 Hz frame rate
using a 3 MHz pixel clock.
Signed-off-by: Paul Cercueil <paul@crapouillou.net >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200811002240.55194-5-paul@crapouillou.net
2020-08-15 16:08:03 +02:00
Paul Cercueil
656b759636
drm/panel: simple: Convert sharp,ls020b1dd01d from timings to videomode
...
Convert the Sharp LS020B1DD01D panel entry from using a struct
display_timing to using a struct drm_display_mode, as display_timing
seems to be the old and legacy format.
Signed-off-by: Paul Cercueil <paul@crapouillou.net >
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200811002240.55194-4-paul@crapouillou.net
2020-08-15 16:08:03 +02:00