Noralf Trønnes
e0ce0e2a5d
drm/stm: Use drm_fbdev_generic_setup()
...
The CMA helper is already using the drm_fb_helper_generic_probe part of
the generic fbdev emulation. This patch makes full use of the generic
fbdev emulation by using its drm_client callbacks. This means that
drm_mode_config_funcs->output_poll_changed and drm_driver->lastclose are
now handled by the emulation code. Additionally fbdev unregister happens
automatically on drm_dev_unregister().
The drm_fbdev_generic_setup() call is put after drm_dev_register() in the
driver. This is done to highlight the fact that fbdev emulation is an
internal client that makes use of the driver, it is not part of the
driver as such. If fbdev setup fails, an error is printed, but the driver
succeeds probing.
drm_fbdev_generic_setup() handles mode_config.num_connector being zero.
In that case it retries fbdev setup on the next .output_poll_changed.
Cc: Yannick Fertre <yannick.fertre@st.com >
Cc: Philippe Cornu <philippe.cornu@st.com >
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Cc: Vincent Abriou <vincent.abriou@st.com >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Yannick Fertré <yannick.fertre@st.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180908134648.2582-15-noralf@tronnes.org
2018-10-25 17:00:28 +02:00
Benjamin Gaignard
53273b5222
drm: stm: implement get_scanout_position function
...
Hardware allow to read the position in scanout buffer so
we can use this information to make wait of vblank more accurate.
Active area bounds (start, end, total height) have already been
computed and written in ltdc registers, read them and get the
current line position to compute vpos value.
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com >
Reviewed-by: Yannick Fertré <yannick.fertre@st.com >
Tested-by: Yannick Fertré <yannick.fertre@st.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180629130140.16004-1-benjamin.gaignard@linaro.org
2018-09-27 15:04:26 +02:00
Thomas Zimmermann
a1a6fa3dcd
drm/stm: Replace drm_dev_unref with drm_dev_put
...
This patch unifies the naming of DRM functions for reference counting
of struct drm_device. The resulting code is more aligned with the rest
of the Linux kernel interfaces.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Acked-by: Philippe Cornu <philippe.cornu@st.com >
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180713080625.18256-1-tzimmermann@suse.de
2018-07-13 10:11:02 +02:00
Philippe CORNU
c8da819478
drm/stm: move enable/disable_vblank to crtc
...
enable/disable_vblank() functions at drm_driver level
are deprecated. Move them to the ltdc drm_crtc_funcs
structure.
Signed-off-by: Philippe Cornu <philippe.cornu@st.com >
Reviewed-by: Vincent Abriou <vincent.abriou@st.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180407212937.30407-1-philippe.cornu@st.com
2018-04-19 12:03:11 +02:00
Benjamin Gaignard
879659bb87
drm/stm: check pitch and size calculations even if !CONFIG_MMU
...
In all cases we have to check pitch and size calculations to speed up
data transfer.
Fixes: 21f815bf77
("drm/stm: drv: Improve data transfers")
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Tested-by: Philippe Cornu <philippe.cornu@st.com >
Reviewed-by: Philippe Cornu <philippe.cornu@st.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180131080508.14356-1-benjamin.gaignard@linaro.org
2018-02-23 09:37:12 +01:00
Philippe Cornu
21f815bf77
drm/stm: drv: Improve data transfers
...
To optimize data transfers, align pitch on 128 bytes & height
on 4 bytes. This optimization is not applicable on hw without MMU.
Signed-off-by: Yannick Fertre <yannick.fertre@st.com >
Signed-off-by: Vincent Abriou <vincent.abriou@st.com >
Signed-off-by: Philippe Cornu <philippe.cornu@st.com >
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180130104200.21602-1-philippe.cornu@st.com
2018-01-30 11:45:15 +01:00
Noralf Trønnes
068b393c1a
drm/stm: Use drm_fb_cma_fbdev_init/fini()
...
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Remove duplicate ldev assignment.
Cc: Yannick Fertre <yannick.fertre@st.com >
Cc: Philippe Cornu <philippe.cornu@st.com >
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Cc: Vincent Abriou <vincent.abriou@st.com >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Philippe Cornu <philippe.cornu@st.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171115142001.45358-14-noralf@tronnes.org
2017-12-08 14:47:41 +01:00
Benjamin Gaignard
ec17f0341d
gpu: drm: stm: Adopt SPDX identifiers
...
Add SPDX identifiers to files under stm directory
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com >
Acked-by: Vincent Abriou <vincent.abriou@st.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171206112947.9569-1-benjamin.gaignard@st.com
2017-12-06 15:51:37 +01:00
Noralf Trønnes
4930a4334e
drm/stm: Use drm_gem_fb_create()
...
drm_fb_cma_create() is just a wrapper around drm_gem_fb_create() now,
so use the function directly.
Cc: Yannick Fertre <yannick.fertre@st.com >
Cc: Philippe Cornu <philippe.cornu@st.com >
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Cc: Vincent Abriou <vincent.abriou@st.com >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Philippe Cornu <philippe.cornu@st.com >
Tested-by: Philippe Cornu <philippe.cornu@st.com >
Link: https://patchwork.freedesktop.org/patch/msgid/1502631125-13557-18-git-send-email-noralf@tronnes.org
2017-09-02 14:23:27 +02:00
Noralf Trønnes
58ba9aabb8
drm/stm: Use .dumb_map_offset and .dumb_destroy defaults
...
This driver can use the drm_driver.dumb_destroy and
drm_driver.dumb_map_offset defaults, so no need to set them.
Cc: Yannick Fertre <yannick.fertre@st.com >
Cc: Philippe Cornu <philippe.cornu@st.com >
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Cc: Vincent Abriou <vincent.abriou@st.com >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Tested-by: Philippe Cornu <philippe.cornu@st.com >
Acked-by: Philippe Cornu <philippe.cornu@st.com >
Link: https://patchwork.freedesktop.org/patch/msgid/1500837417-40580-17-git-send-email-noralf@tronnes.org
2017-07-29 13:57:51 +02:00
Philippe CORNU
af5125de7a
drm/stm: drv: Rename platform driver name
...
Rename the platform driver name from "stm" to "stm32-display"
for a better readability in /sys/bus/platform/drivers entries.
Note: We keep "stm" as drm_driver.name because it is better
when using "modetest -M stm ..." (even if recent modetest patch
avoids using -M).
Signed-off-by: Philippe CORNU <philippe.cornu@st.com >
Reviewed-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/1500552357-29487-2-git-send-email-philippe.cornu@st.com
2017-07-26 15:01:24 +02:00
Yannick Fertre
b759012c5f
drm/stm: Add STM32 LTDC driver
...
This controller provides output signals to interface directly a variety
of LCD and TFT panels. These output signals are: RGB signals
(up to 24bpp), vertical & horizontal synchronisations, data enable and
the pixel clock.
Reviewed-by: Eric Anholt <eric@anholt.net >
Signed-off-by: Yannick Fertre <yannick.fertre@st.com >
Signed-off-by: Eric Anholt <eric@anholt.net >
Link: http://patchwork.freedesktop.org/patch/msgid/1492164819-10513-5-git-send-email-yannick.fertre@st.com
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
2017-04-14 11:30:29 -07:00