Daniel Vetter
fcd70cd36b
drm: Split out drm_probe_helper.h
...
Having the probe helper stuff (which pretty much everyone needs) in
the drm_crtc_helper.h file (which atomic drivers should never need) is
confusing. Split them out.
To make sure I actually achieved the goal here I went through all
drivers. And indeed, all atomic drivers are now free of
drm_crtc_helper.h includes.
v2: Make it compile. There was so much compile fail on arm drivers
that I figured I'll better not include any of the acks on v1.
v3: Massive rebase because i915 has lost a lot of drmP.h includes, but
not all: Through drm_crtc_helper.h > drm_modeset_helper.h -> drmP.h
there was still one, which this patch largely removes. Which means
rolling out lots more includes all over.
This will also conflict with ongoing drmP.h cleanup by others I
expect.
v3: Rebase on top of atomic bochs.
v4: Review from Laurent for bridge/rcar/omap/shmob/core bits:
- (re)move some of the added includes, use the better include files in
other places (all suggested from Laurent adopted unchanged).
- sort alphabetically
v5: Actually try to sort them, and while at it, sort all the ones I
touch.
v6: Rebase onto i915 changes.
v7: Rebase once more.
Acked-by: Harry Wentland <harry.wentland@amd.com >
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Acked-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Acked-by: Jani Nikula <jani.nikula@intel.com >
Acked-by: Neil Armstrong <narmstrong@baylibre.com >
Acked-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com >
Acked-by: CK Hu <ck.hu@mediatek.com >
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Acked-by: Liviu Dudau <liviu.dudau@arm.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: virtualization@lists.linux-foundation.org
Cc: etnaviv@lists.freedesktop.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: intel-gfx@lists.freedesktop.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-msm@vger.kernel.org
Cc: freedreno@lists.freedesktop.org
Cc: nouveau@lists.freedesktop.org
Cc: spice-devel@lists.freedesktop.org
Cc: amd-gfx@lists.freedesktop.org
Cc: linux-renesas-soc@vger.kernel.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-stm32@st-md-mailman.stormreply.com
Cc: linux-tegra@vger.kernel.org
Cc: xen-devel@lists.xen.org
Link: https://patchwork.freedesktop.org/patch/msgid/20190117210334.13234-1-daniel.vetter@ffwll.ch
2019-01-24 13:20:42 +01:00
Laurent Pinchart
63f8f3badf
drm: bridge: Constify mode arguments to bridge .mode_set() operation
...
The mode and ajusted_mode passed to the bridge .mode_set() operation
should never be modified by the bridge (and are not in any of the
existing bridge drivers). Make them const to make this clear.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
2019-01-14 03:51:14 +02:00
Peter Rosin
66e31a72dc
drm/sti: do not remove the drm_bridge that was never added
...
Removing the drm_bridge_remove call should avoid a NULL dereference
during list processing in drm_bridge_remove if the error path is ever
taken.
The more natural approach would perhaps be to add a drm_bridge_add,
but there are several other bridges that never call drm_bridge_add.
Just removing the drm_bridge_remove is the easier fix.
Fixes: 84601dbdea
("drm: sti: rework init sequence")
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Signed-off-by: Peter Rosin <peda@axentia.se >
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20180806061910.29914-2-peda@axentia.se
2018-08-07 15:33:00 +02:00
Daniel Vetter
cde4c44d87
drm: drop _mode_ from drm_mode_connector_attach_encoder
...
Again to align with the usual prefix of just drm_connector_. Again
done with sed + manual fixup for indent issues.
Reviewed-by: Sean Paul <seanpaul@chromium.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180709084016.23750-7-daniel.vetter@ffwll.ch
2018-07-13 18:40:27 +02:00
Benjamin Gaignard
e284257027
gpu: drm: sti: Adopt SPDX identifiers
...
Add SPDX identifiers to files under sti 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-2-benjamin.gaignard@st.com
2017-12-06 15:51:23 +01:00
Daniel Vetter
7d902c05b4
drm: Nuke drm_atomic_helper_connector_dpms
...
It's dead code, the core handles all this directly now.
The only special case is nouveau and tda988x which used one function
for both legacy modeset code and -nv50 atomic world instead of 2
vtables. But amounts to exactly the same.
v2: Rebase over the panel/brideg refactorings in stm/ltdc.
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Archit Taneja <architt@codeaurora.org >
Cc: Andrzej Hajda <a.hajda@samsung.com >
Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com >
Cc: Peter Senna Tschudin <peter.senna@collabora.com >
Cc: Martin Donnelly <martin.donnelly@ge.com >
Cc: Martyn Welch <martyn.welch@collabora.co.uk >
Cc: Daniel Vetter <daniel.vetter@intel.com >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Sean Paul <seanpaul@chromium.org >
Cc: David Airlie <airlied@linux.ie >
Cc: Inki Dae <inki.dae@samsung.com >
Cc: Joonyoung Shim <jy0922.shim@samsung.com >
Cc: Seung-Woo Kim <sw0312.kim@samsung.com >
Cc: Kyungmin Park <kyungmin.park@samsung.com >
Cc: Kukjin Kim <kgene@kernel.org >
Cc: Krzysztof Kozlowski <krzk@kernel.org >
Cc: Stefan Agner <stefan@agner.ch >
Cc: Alison Wang <alison.wang@freescale.com >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Philipp Zabel <p.zabel@pengutronix.de >
Cc: CK Hu <ck.hu@mediatek.com >
Cc: Matthias Brugger <matthias.bgg@gmail.com >
Cc: Neil Armstrong <narmstrong@baylibre.com >
Cc: Carlo Caione <carlo@caione.org >
Cc: Kevin Hilman <khilman@baylibre.com >
Cc: Marek Vasut <marex@denx.de >
Cc: Ben Skeggs <bskeggs@redhat.com >
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com >
Cc: Eric Anholt <eric@anholt.net >
Cc: Mark Yao <mark.yao@rock-chips.com >
Cc: Heiko Stuebner <heiko@sntech.de >
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Cc: Vincent Abriou <vincent.abriou@st.com >
Cc: Yannick Fertre <yannick.fertre@st.com >
Cc: Philippe Cornu <philippe.cornu@st.com >
Cc: Maxime Ripard <maxime.ripard@free-electrons.com >
Cc: Chen-Yu Tsai <wens@csie.org >
Cc: Thierry Reding <thierry.reding@gmail.com >
Cc: Jonathan Hunter <jonathanh@nvidia.com >
Cc: Jyri Sarha <jsarha@ti.com >
Cc: Gerd Hoffmann <kraxel@redhat.com >
Cc: Shawn Guo <shawnguo@kernel.org >
Cc: John Stultz <john.stultz@linaro.org >
Cc: Lars-Peter Clausen <lars@metafoo.de >
Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com >
Cc: Jeffy Chen <jeffy.chen@rock-chips.com >
Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Cc: Yakir Yang <kuankuan.y@gmail.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Jose Abreu <Jose.Abreu@synopsys.com >
Cc: Romain Perier <romain.perier@collabora.com >
Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com >
Cc: Xinliang Liu <z.liuxinliang@hisilicon.com >
Cc: Alexey Brodkin <abrodkin@synopsys.com >
Cc: Alex Deucher <alexander.deucher@amd.com >
Cc: Rongrong Zou <zourongrong@gmail.com >
Cc: Rob Clark <robdclark@gmail.com >
Cc: Hai Li <hali@codeaurora.org >
Cc: "Noralf Trønnes" <noralf@tronnes.org >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: intel-gfx@lists.freedesktop.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: nouveau@lists.freedesktop.org
Cc: linux-renesas-soc@vger.kernel.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-tegra@vger.kernel.org
Cc: virtualization@lists.linux-foundation.org
Cc: zain wang <wzz@rock-chips.com >
Cc: Baoyou Xie <baoyou.xie@linaro.org >
Cc: Boris Brezillon <boris.brezillon@free-electrons.com >
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20170725080122.20548-8-daniel.vetter@ffwll.ch
Acked-by: Neil Armstrong <narmstrong@baylibre.com >
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com >
Acked-by: Philipp Zabel <p.zabel@pengutronix.de >
Acked-by: Archit Taneja <architt@codeaurora.org >
Tested-by: Philippe Cornu <philippe.cornu@st.com > (on stm)
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Acked-by: Shawn Guo <shawnguo@kernel.org >
Acked-by: Shawn Guo <shawnguo@kernel.org >
Acked-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Vincent Abriou <vincent.abriou@st.com >
2017-08-08 14:48:48 +02:00
Markus Elfring
e9635133d4
drm/sti: Replace 17 seq_puts() calls by seq_putc()
...
Single characters should be put into a sequence at several places.
Thus use the corresponding function "seq_putc".
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net >
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Link: http://patchwork.freedesktop.org/patch/msgid/5b4e2964-0742-8367-976f-678356d9347a@users.sourceforge.net
2017-05-09 14:45:51 +02:00
Markus Elfring
ecf79d15c7
drm/sti: Reduce function calls for sequence output at five places
...
Some data were put into a sequence by separate function calls.
Print the same data by five single function calls instead.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net >
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Link: http://patchwork.freedesktop.org/patch/msgid/1f5c5b0d-77c4-6efc-7906-cee76c33d2b0@users.sourceforge.net
2017-05-09 14:45:42 +02:00
Noralf Trønnes
fc3706ea00
drm/sti: Remove drm_debugfs_remove_files() calls
...
drm_debugfs_cleanup() now removes all minor->debugfs_list entries
automatically, so it's not necessary to call
drm_debugfs_remove_files(). Additionally it uses
debugfs_remove_recursive() to clean up the debugfs files, so no need
for adding fake drm_info_node entries.
Cc: benjamin.gaignard@linaro.org
Cc: vincent.abriou@st.com
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Vincent Abriou <vincent.abriou@st.com >
Tested-by: Vincent Abriou <vincent.abriou@st.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/20170126225621.12314-14-noralf@tronnes.org
2017-01-27 15:27:06 +01:00
Laurent Pinchart
3bb80f2495
drm: bridge: Link encoder and bridge in core code
...
Instead of linking encoders and bridges in every driver (and getting it
wrong half of the time, as many drivers forget to set the drm_bridge
encoder pointer), do so in core code. The drm_bridge_attach() function
needs the encoder and optional previous bridge to perform that task,
update all the callers.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
Acked-by: Stefan Agner <stefan@agner.ch > # For DCU
Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com > # For atmel-hlcdc
Acked-by: Vincent Abriou <vincent.abriou@st.com > # For STI
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com > # For sun4i
Acked-by: Xinliang Liu <z.liuxinliang@hisilicon.com > # For hisilicon
Acked-by: Jyri Sarha <jsarha@ti.com > # For tilcdc
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Signed-off-by: Archit Taneja <architt@codeaurora.org >
Link: http://patchwork.freedesktop.org/patch/msgid/1481709550-29226-4-git-send-email-laurent.pinchart+renesas@ideasonboard.com
2016-12-18 16:31:45 +05:30
Laurent Pinchart
949f08862d
drm: Make the connector .detect() callback optional
...
Many drivers (21 to be exact) create connectors that are always
connected (for instance to an LVDS or DSI panel). Instead of forcing
them to implement a dummy .detect() handler, make the callback optional
and consider the connector as always connected in that case.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com >
Acked-by: Jyri Sarha <jsarha@ti.com >
Acked-by: Jani Nikula <jani.nikula@intel.com >
Acked-by: Philipp Zabel <p.zabel@pengutronix.de >
Acked-by: Vincent Abriou <vincent.abriou@st.com >
Acked-by: Alexey Brodkin <abrodkin@synopsys.com >
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
[seanpaul fixed small conflict in rcar-du/rcar_du_lvdscon.c]
Signed-off-by: Sean Paul <seanpaul@chromium.org >
2016-12-01 10:05:53 -05:00
Vincent Abriou
b4bba92dfb
drm/sti: remove stih415-416 platform support
...
stih415 and stih416 platform are obsolete and no more supported.
Only stih407 and stih410 platform are maintained.
Signed-off-by: Vincent Abriou <vincent.abriou@st.com >
Acked-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Acked-by: Peter Griffin <peter.griffin@linaro.org >
2016-09-20 15:03:33 +02:00
Fabien Dessenne
29ffa77668
drm/sti: fix debug logs
...
Add some missing \n in logs.
Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com >
Acked-by: Vincent Abriou <vincent.abriou@st.com >
2016-09-20 11:32:05 +02:00
Benjamin Gaignard
84601dbdea
drm: sti: rework init sequence
...
Use drm_dev_alloc() and drm_dev_register() instead of .load()
To simplify init sequence only create fbdev when requested
in output_poll_changed().
version 2:
remove call to drm_connector_unregister_all() and
drm_dev_set_unique()
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/1466514580-15194-4-git-send-email-benjamin.gaignard@linaro.org
2016-06-21 21:32:52 +02:00
Benjamin Gaignard
83af0a483a
drm: sti: use late_register and early_unregister callbacks
...
Make sti driver use register callback to move debugfs
initialization out of sub-components creation.
This will allow to convert driver .load() to
drm_dev_alloc() and drm_dev_register().
sti_compositor bring up 2 crtc but only one debugfs init is
needed so use drm_crtc_index to do it on the first one.
This can't be done in sti_drv because only sti_compositor have
access to the devices.
It is almost the same for sti_encoder which handle multiple
encoder while one only debugfs entry is needed so add a boolean
to avoid multiple debugfs initialization
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/1466514580-15194-3-git-send-email-benjamin.gaignard@linaro.org
2016-06-21 21:32:52 +02:00
Boris Brezillon
9625bf55fb
drm: sti: Rely on the default ->best_encoder() behavior
...
All outputs have a 1:1 relationship between connectors and encoders
and the driver is relying on the atomic helpers: we can drop the custom
->best_encoder() implementations and let the core call
drm_atomic_helper_best_encoder() for us.
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com >
Acked-by: Vincent Abriou <vincent.abriou@st.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/1465300095-16971-12-git-send-email-boris.brezillon@free-electrons.com
2016-06-09 08:43:27 +02:00
Benjamin Gaignard
ac851bf14b
drm: sti: remove useless call to dev->struct_mutex
...
No need to protect debugfs functions with dev->struct_mutex
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/1464630800-30786-19-git-send-email-daniel.vetter@ffwll.ch
2016-06-01 09:41:32 +02:00
Arnd Bergmann
0f3e15618d
drm/sti: include linux/seq_file.h where needed
...
The sti drm driver has a lot of debugfs interface that cause
build errors in some configurations when seq_file.h is not
included implicitly:
drm/sti/sti_mixer.c: In function 'mixer_dbg_ctl':
drm/sti/sti_mixer.c:88:2: error: implicit declaration of function 'seq_puts' [-Werror=implicit-function-declaration]
drm/sti/sti_mixer.c:91:4: error: implicit declaration of function 'seq_printf' [-Werror=implicit-function-declaration]
drm/sti/sti_gdp.c: In function 'gdp_dbg_ctl':
drm/sti/sti_gdp.c:146:2: error: implicit declaration of function 'seq_puts' [-Werror=implicit-function-declaration]
drm/sti/sti_gdp.c:149:4: error: implicit declaration of function 'seq_printf' [-Werror=implicit-function-declaration]
drm/sti/sti_gdp.c: In function 'gdp_dbg_show':
drm/sti/sti_gdp.c:208:32: error: dereferencing pointer to incomplete type 'struct seq_file'
This adds an explicit #include statement in all of the affected files.
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Acked-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/1462830733-1710590-2-git-send-email-arnd@arndb.de
2016-05-11 09:47:05 +02:00
Vincent Abriou
6c84578c2c
drm/sti: add debugfs entries for HDA connector
...
Signed-off-by: Vincent Abriou <vincent.abriou@st.com >
Reviewed-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
2016-02-26 10:06:21 +01:00
Vincent Abriou
9b60514d88
drm/sti: reset HD DACS when HDA connector is created
...
Make sure the HD DACS are disabled when the HDA connector
is created.
Signed-off-by: Vincent Abriou <vincent.abriou@st.com >
Reviewed-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
2016-02-26 10:06:18 +01:00
Ville Syrjälä
d0b414216f
drm/sti: Drop bogus drm_mode_sort() call
...
sti seems confused about which mode list is used in its .get_modes()
hook. It adds the modes to the probed_modes list (as is appropriate)
but then for some reason it tries to sort the old mode list.
Just drop the sorting since it does nothing, and let the probe helper
do its thing. It will sort the final mode list after merging in the
modes from the probed_modes list and validating them.
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Cc: Vincent Abriou <vincent.abriou@st.com >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/1449177255-9515-8-git-send-email-ville.syrjala@linux.intel.com
2015-12-11 09:33:18 +01:00
Thierry Reding
dcec16efd6
drm/sti: Build monolithic driver
...
There's no use building the individual drivers as separate modules
because they are all only useful if combined into a single DRM/KMS
device.
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Cc: Vincent Abriou <vincent.abriou@st.com >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Reviewed-by: Vincent Abriou <vincent.abriou@st.com >
2015-11-03 13:04:54 +01:00
Ville Syrjälä
c5de48539c
drm/sti: Constify function pointer structs
...
Moves a bunch of junk to .rodata from .data.
drivers/gpu/drm/sti/sticompositor.ko:
-.text 12216
+.text 12212
-.rodata 1284
+.rodata 1400
-.data 488
+.data 372
drivers/gpu/drm/sti/sti_drv.ko:
-.rodata 516
+.rodata 544
-.data 368
+.data 340
drivers/gpu/drm/sti/stidvo.ko:
-.text 3356
+.text 3348
-.rodata 188
+.rodata 256
-.data 572
+.data 504
drivers/gpu/drm/sti/sti_hda.ko:
-.text 3008
+.text 3004
-.rodata 2820
+.rodata 2888
-.data 684
+.data 616
drivers/gpu/drm/sti/stihdmi.ko:
-.text 6988
+.text 6980
-.rodata 1340
+.rodata 1408
-.data 176
+.data 108
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-11-03 13:04:53 +01:00
Benjamin Gaignard
de4b00b093
drm: sti: convert driver to atomic modeset
...
v1: This patch does the minimum to make sti driver use atomic helpers.
No big bang, only adapt some functions to new call order.
v2: Use dpms and page flip atomic helpers
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
2015-03-19 13:35:16 +01:00
Ajay Kumar
3d3f8b1f8b
drm/bridge: make bridge registration independent of drm flow
...
Currently, third party bridge drivers(ptn3460) are dependent
on the corresponding encoder driver init, since bridge driver
needs a drm_device pointer to finish drm initializations.
The encoder driver passes the drm_device pointer to the
bridge driver. Because of this dependency, third party drivers
like ptn3460 doesn't adhere to the driver model.
In this patch, we reframe the bridge registration framework
so that bridge initialization is split into 2 steps, and
bridge registration happens independent of drm flow:
--Step 1: gather all the bridge settings independent of drm and
add the bridge onto a global list of bridges.
--Step 2: when the encoder driver is probed, call drm_bridge_attach
for the corresponding bridge so that the bridge receives
drm_device pointer and continues with connector and other
drm initializations.
The old set of bridge helpers are removed, and a set of new helpers
are added to accomplish the 2 step initialization.
The bridge devices register themselves onto global list of bridges
when they get probed by calling "drm_bridge_add".
The parent encoder driver waits till the bridge is available
in the lookup table(by calling "of_drm_find_bridge") and then
continues with its initialization.
The encoder driver should also call "drm_bridge_attach" to pass
on the drm_device to the bridge object.
drm_bridge_attach inturn calls "bridge->funcs->attach" so that
bridge can continue with drm related initializations.
Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com >
Acked-by: Inki Dae <inki.dae@samsung.com >
Tested-by: Rahul Sharma <rahul.sharma@samsung.com >
Tested-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk >
Tested-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk >
Tested-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk >
Signed-off-by: Thierry Reding <treding@nvidia.com >
2015-01-28 08:45:40 +01:00
Ajay Kumar
b07b90fd17
drm/bridge: do not pass drm_bridge_funcs to drm_bridge_init
...
Assign the pointer to bridge ops structure(drm_bridge_funcs) in
the bridge driver itself, instead of passing it to drm_bridge_init.
This will allow bridge driver developer to pack bridge private
information inside the bridge object and pass only the drm-relevant
information to drm_bridge_init.
Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com >
Acked-by: Inki Dae <inki.dae@samsung.com >
Tested-by: Rahul Sharma <rahul.sharma@samsung.com >
Tested-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk >
Tested-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk >
Tested-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk >
Signed-off-by: Thierry Reding <treding@nvidia.com >
2015-01-28 08:45:40 +01:00
Kiran Padwal
8e932cf0eb
drm: sti: Make of_device_id array const
...
Make of_device_id array const, because all OF functions handle it as const.
Signed-off-by: Kiran Padwal <kiran.padwal@smartplayin.com >
2014-08-26 14:16:58 +02:00
Wei Yongjun
5024a2b7ae
drm: sti: hda: fix return value check in sti_hda_probe()
...
In case of error, the function devm_ioremap_nocache() returns NULL
pointer not ERR_PTR(). The IS_ERR() test in the return value check
should be replaced with NULL test.
Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn >
2014-08-26 14:16:46 +02:00
Benjamin Gaignard
c86a5f6e1b
drm: sti: add HDA driver
...
Add driver to support analog TV ouput.
HDA driver is mapped on drm_bridge and drm_connector structures.
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Reviewed-by: Rob Clark <robdclark@gmail.com >
2014-07-30 19:25:30 +02:00