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
Luc Van Oostenryck
e14d509d25
drm/hisilicon: fix mode_valid's return type
...
The method struct drm_connector_helper_funcs::mode_valid is defined
as returning an 'enum drm_mode_status' but the driver implementation
for this method uses an 'int' for it.
Fix this by using 'enum drm_mode_status' in the driver too.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20180424131504.2159-1-luc.vanoostenryck@gmail.com
2018-04-25 09:09:22 +02:00
Christian König
dde5da2379
drm/ttm: add bo as parameter to the ttm_tt_create callback
...
Instead of calculating the size in bytes just to recalculate the number
of pages from it pass the BO directly to the function.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Roger He <Hongbo.He@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2018-03-14 14:38:27 -05:00
Christian König
724daa4fd6
drm/ttm: drop persistent_swap_storage from ttm_bo_init and co
...
Never used as parameter, the only driver actually using this is nouveau
and there it is initialized after the BO is initialized.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2018-02-26 23:09:45 -05:00
Christian König
231cdafc75
drm/ttm: drop ttm->dummy_read_page
...
Only used by the AGP backend and there it can be easily accessed using
ttm->bdev->glob.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2018-02-26 23:09:45 -05:00
Christian König
401fedc218
drm/hisilicon: remove ttm_pool_* wrappers
...
TTM calls the default implementation now.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2018-02-26 23:09:42 -05:00
Roger He
d0cef9fa44
drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver (v2)
...
forward the operation context to ttm_tt_populate as well,
and the ultimate goal is swapout enablement for reserved BOs.
v2: squash in fix for vboxvideo
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Roger He <Hongbo.He@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2017-12-28 09:48:19 -05:00
Christian König
19be557010
drm/ttm: add operation ctx to ttm_bo_validate v2
...
Give moving a BO into place an operation context to work with.
v2: rebased
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de >
Tested-by: Michel Dänzer <michel.daenzer@amd.com >
Acked-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2017-12-06 12:48:01 -05:00
Keith Packard
418da17214
drm: Pass struct drm_file * to __drm_mode_object_find [v2]
...
This will allow __drm_mode_object_file to be extended to perform
access control checks based on the file in use.
v2: Also fix up vboxvideo driver in staging
[airlied: merging early as this is an API change]
Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Signed-off-by: Keith Packard <keithp@keithp.com >
Signed-off-by: Dave Airlie <airlied@redhat.com >
2017-10-12 10:03:04 +10:00
Cihangir Akturk
5bda902725
drm/hisilicon: switch to drm_*_get(), drm_*_put() helpers
...
Use drm_*_get() and drm_*_put() helpers instead of drm_*_reference()
and drm_*_unreference() helpers.
drm_*_reference() and drm_*_unreference() functions are just
compatibility alias for drm_*_get() and drm_*_put() and should not be
used by new code. So convert all users of compatibility functions to
use the new APIs.
Generated by: scripts/coccinelle/api/drm-get-put.cocci
Signed-off-by: Cihangir Akturk <cakturk@gmail.com >
Signed-off-by: Sean Paul <seanpaul@chromium.org >
Link: https://patchwork.freedesktop.org/patch/msgid/1502454794-28558-11-git-send-email-cakturk@gmail.com
2017-08-11 11:35:52 -04: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
Daniel Vetter
e90271bc07
drm: Nuke drm_atomic_helper_plane_set_property
...
It's dead code, the core handles all this directly now. This also
allows us to unexport drm_atomic_plane_set_property.
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Liviu Dudau <liviu.dudau@arm.com >
Cc: Brian Starkey <brian.starkey@arm.com >
Cc: Mali DP Maintainers <malidp@foss.arm.com >
Cc: Boris Brezillon <boris.brezillon@free-electrons.com >
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: Ben Skeggs <bskeggs@redhat.com >
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com >
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
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: Jyri Sarha <jsarha@ti.com >
Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com >
Cc: Rongrong Zou <zourongrong@gmail.com >
Cc: Shawn Guo <shawn.guo@linaro.org >
Cc: Alexey Brodkin <abrodkin@synopsys.com >
Cc: Eric Engestrom <eric@engestrom.ch >
Cc: Chris Wilson <chris@chris-wilson.co.uk >
Cc: Rob Clark <robdclark@gmail.com >
Cc: Archit Taneja <architt@codeaurora.org >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: intel-gfx@lists.freedesktop.org
Cc: nouveau@lists.freedesktop.org
Cc: linux-renesas-soc@vger.kernel.org
Cc: Thomas Hellstrom <thellstrom@vmware.com >
Cc: Maxime Ripard <maxime.ripard@free-electrons.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20170725080122.20548-6-daniel.vetter@ffwll.ch
Reviewed-by: Archit Taneja <architt@codeaurora.org >
Acked-by: Philippe Cornu <philippe.cornu@st.com >
Tested-by: Philippe Cornu <philippe.cornu@st.com >
Acked-by: Liviu Dudau <Liviu.Dudau@arm.com >
Acked-by: Vincent Abriou <vincent.abriou@st.com >
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
2017-08-08 14:45:16 +02:00
Ben Widawsky
e6fc3b6855
drm: Plumb modifiers through plane init
...
This is the plumbing for supporting fb modifiers on planes. Modifiers
have already been introduced to some extent, but this series will extend
this to allow querying modifiers per plane. Based on this, the client to
enable optimal modifications for framebuffers.
This patch simply allows the DRM drivers to initialize their list of
supported modifiers upon initializing the plane.
v2: A minor addition from Daniel
v3:
* Updated commit message
* s/INVALID/DRM_FORMAT_MOD_INVALID (Liviu)
* Remove some excess newlines (Liviu)
* Update comment for > 64 modifiers (Liviu)
v4: Minor comment adjustments (Liviu)
v5: Some new platforms added due to rebase
v6: Add some missed plane inits (or maybe they're new - who knows at
this point) (Daniel)
Signed-off-by: Ben Widawsky <ben@bwidawsk.net >
Reviewed-by: Daniel Stone <daniels@collabora.com > (v2)
Reviewed-by: Liviu Dudau <Liviu.Dudau@arm.com >
Signed-off-by: Daniel Stone <daniels@collabora.com >
2017-08-01 17:50:06 +01:00
Noralf Trønnes
d6cedc11c4
drm/hisilicon: hibmc: Use the drm_driver.dumb_destroy default
...
drm_gem_dumb_destroy() is the drm_driver.dumb_destroy default,
so no need to set it.
Cc: Chen Feng <puck.chen@hisilicon.com >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Reviewed-by: Sean Paul <seanpaul@chromium.org >
Link: https://patchwork.freedesktop.org/patch/msgid/1500837417-40580-37-git-send-email-noralf@tronnes.org
2017-07-29 14:02:52 +02:00
Daniel Vetter
e1923ab3d0
drm/<drivers>: Drop fbdev info flags
...
- FBINFO_CAN_FORCE_OUTPUT has been a lie ever since we nerfed&removed
the entire panic handling code in our fbdev emulation. We might
restore kms panic output, but not through the bazillion of legacy
code layers called fbdev/fbcon, there's just no way to make that
work safely.
- With the module check change FBINFO_DEFAULT is always 0, so can be
removed too.
That removes another change to cargo-cult stuff in kms drivers, yay!
Reviewed-by: Sean Paul <seanpaul@chromium.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20170706125735.28299-5-daniel.vetter@ffwll.ch
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
2017-07-26 13:22:40 +02:00
Laurent Pinchart
64581714b5
drm: Convert atomic drivers from CRTC .disable() to .atomic_disable()
...
The CRTC .disable() helper operation is deprecated for atomic drivers,
the new .atomic_disable() helper operation being preferred. Convert all
atomic drivers to .atomic_disable() to avoid cargo-cult use of
.disable() in new drivers.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com > # for sun4i
Acked-by: Philipp Zabel <p.zabel@pengutronix.de > # for mediatek
Acked-by: Alexey Brodkin <abrodkin@synopsys.com > # for arcpgu
Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com > # for atmel-hlcdc
Tested-by: Philippe Cornu <philippe.cornu@st.com > # for stm
Acked-by: Philippe Cornu <philippe.cornu@st.com > # for stm
Acked-by: Vincent Abriou <vincent.abriou@st.com > # for sti
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com > # for vmwgfx
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/20170630093646.7928-3-laurent.pinchart+renesas@ideasonboard.com
2017-06-30 14:53:15 +02:00
Laurent Pinchart
0b20a0f8c3
drm: Add old state pointer to CRTC .enable() helper function
...
The old state is useful for drivers that need to perform operations at
enable time that depend on the transition between the old and new
states.
While at it, rename the operation to .atomic_enable() to be consistent
with .atomic_disable(), as the .enable() operation is used by atomic
helpers only.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com > # for sun4i
Acked-by: Philipp Zabel <p.zabel@pengutronix.de > # for imx-drm and mediatek
Acked-by: Alexey Brodkin <abrodkin@synopsys.com > # for arcpgu
Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com > # for atmel-hlcdc
Acked-by: Liviu Dudau <Liviu.Dudau@arm.com > # for hdlcd and mali-dp
Acked-by: Stefan Agner <stefan@agner.ch > # for fsl-dcu
Tested-by: Philippe Cornu <philippe.cornu@st.com > # for stm
Acked-by: Philippe Cornu <philippe.cornu@st.com > # for stm
Acked-by: Vincent Abriou <vincent.abriou@st.com > # for sti
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com > # for vmwgfx
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/20170630093646.7928-2-laurent.pinchart+renesas@ideasonboard.com
2017-06-30 14:53:14 +02:00
Daniel Vetter
b3df5e65cc
drm/hibmc: Drop drm_vblank_cleanup
...
So this seems to be the first driver that does it the right way round,
so fix it up by calling drm_atomic_helper_shutdown instead. We need to
do that before the last kms user is gone (fbdev emulation), but before
we start shutting down hw stuff like interrupts.
Cc: Xinliang Liu <z.liuxinliang@hisilicon.com >
Cc: Rongrong Zou <zourongrong@gmail.com >
Cc: Xinwei Kong <kong.kongxinwei@hisilicon.com >
Cc: Chen Feng <puck.chen@hisilicon.com >
Reviewed-by: Sean Paul <seanpaul@chromium.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/20170621082850.13224-3-daniel.vetter@ffwll.ch
2017-06-26 11:02:51 +02:00
Masahiro Yamada
385157d9fa
drm/hisilicon: fix include notation and remove -Iinclude/drm flag
...
Include <drm/*.h> instead of relative path from include/drm, then
remove the -Iinclude/drm compiler flag.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/1493009447-31524-9-git-send-email-yamada.masahiro@socionext.com
2017-05-17 14:35:22 +02:00
Shawn Guo
14de02cdb0
drm: hibmc: use vblank hooks in struct drm_crtc_funcs
...
The vblank hooks in struct drm_driver are deprecated and only meant for
legacy drivers. For modern drivers with DRIVER_MODESET flag, the hooks
in struct drm_crtc_funcs should be used instead.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org >
Cc: Xinliang Liu <z.liuxinliang@hisilicon.com >
Reviewed-by: Sean Paul <seanpaul@chromium.org >
Link: http://patchwork.freedesktop.org/patch/msgid/1486458995-31018-11-git-send-email-shawnguo@kernel.org
2017-02-09 16:06:00 +08:00
Shawn Guo
967dd48417
drm: remove drm_vblank_no_hw_counter assignment from driver code
...
Core code already makes drm_driver.get_vblank_counter hook optional by
letting drm_vblank_no_hw_counter be the default implementation for the
function hook. So the drm_vblank_no_hw_counter assignment in the driver
code becomes redundant and can be removed now.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org >
Cc: Alexey Brodkin <abrodkin@synopsys.com >
Cc: Liviu Dudau <liviu.dudau@arm.com >
Cc: Mali DP Maintainers <malidp@foss.arm.com >
Cc: Russell King <linux@armlinux.org.uk >
Cc: Boris Brezillon <boris.brezillon@free-electrons.com >
Cc: Inki Dae <inki.dae@samsung.com >
Cc: Stefan Agner <stefan@agner.ch >
Cc: Xinliang Liu <z.liuxinliang@hisilicon.com >
Cc: Daniel Vetter <daniel.vetter@intel.com >
Cc: Philipp Zabel <p.zabel@pengutronix.de >
Cc: CK Hu <ck.hu@mediatek.com >
Cc: Neil Armstrong <narmstrong@baylibre.com >
Cc: Rob Clark <robdclark@gmail.com >
Cc: Marek Vasut <marex@denx.de >
Cc: Ben Skeggs <bskeggs@redhat.com >
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com >
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Cc: Mark Yao <mark.yao@rock-chips.com >
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Cc: Maxime Ripard <maxime.ripard@free-electrons.com >
Cc: Jyri Sarha <jsarha@ti.com >
Cc: Eric Anholt <eric@anholt.net >
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com >
Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com >
Acked-by: Neil Armstrong <narmstrong@baylibre.com >
Acked-by: Russell King <rmk+kernel@armlinux.org.uk >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Acked-by: Alexey Brodkin <abrodkin@synopsys.com >
Acked-by: Liviu Dudau <liviu.dudau@arm.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/1486458995-31018-3-git-send-email-shawnguo@kernel.org
2017-02-07 21:43:55 +01:00
Daniel Vetter
da7bdda2af
drm/fb-helper: Automatically clean up fb_info
...
Noticed that everyone duplicates the same logic here and we could safe
a few lines per driver. Yay for lots of drivers to make such tiny
refactors worth-while!
v2: Forgot to git add everything :(
v3: Actually remove release_fbi (Sean, Emil, Chris) ...
Cc: Chris Wilson <chris@chris-wilson.co.uk >
Cc: Sean Paul <seanpaul@chromium.org >
Cc: Noralf Trønnes <noralf@tronnes.org >
Cc: Emil Velikov <emil.l.velikov@gmail.com >
Reviewed-by: Sean Paul <seanpaul@chromium.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Link: http://patchwork.freedesktop.org/patch/msgid/20170207161603.17611-1-daniel.vetter@ffwll.ch
2017-02-07 21:36:28 +01:00
Gabriel Krisman Bertazi
e4563f6ba7
drm: Rely on mode_config data for fb_helper initialization
...
Instead of receiving the num_crts as a parameter, we can read it
directly from the mode_config structure. I audited the drivers that
invoke this helper and I believe all of them initialize the mode_config
struct accordingly, prior to calling the fb_helper.
I used the following coccinelle hack to make this transformation, except
for the function headers and comment updates. The first and second
rules are split because I couldn't find a way to remove the unused
temporary variables at the same time I removed the parameter.
// <smpl>
@r@
expression A,B,D,E;
identifier C;
@@
(
- drm_fb_helper_init(A,B,C,D)
+ drm_fb_helper_init(A,B,D)
|
- drm_fbdev_cma_init_with_funcs(A,B,C,D,E)
+ drm_fbdev_cma_init_with_funcs(A,B,D,E)
|
- drm_fbdev_cma_init(A,B,C,D)
+ drm_fbdev_cma_init(A,B,D)
)
@@
expression A,B,C,D,E;
@@
(
- drm_fb_helper_init(A,B,C,D)
+ drm_fb_helper_init(A,B,D)
|
- drm_fbdev_cma_init_with_funcs(A,B,C,D,E)
+ drm_fbdev_cma_init_with_funcs(A,B,D,E)
|
- drm_fbdev_cma_init(A,B,C,D)
+ drm_fbdev_cma_init(A,B,D)
)
@@
identifier r.C;
type T;
expression V;
@@
- T C;
<...
when != C
- C = V;
...>
// </smpl>
Changes since v1:
- Rebased on top of the tip of drm-misc-next.
- Remove mention to sti since a proper fix got merged.
Suggested-by: Daniel Vetter <daniel.vetter@intel.com >
Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk >
Reviewed-by: Eric Anholt <eric@anholt.net >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/20170202162640.27261-1-krisman@collabora.co.uk
2017-02-02 19:12:00 +01:00
Dave Airlie
29a73d906b
Merge branch 'drm-next-4.11' of git://people.freedesktop.org/~agd5f/linux into drm-next
...
This is the main feature pull for radeon and amdgpu for 4.11. Highlights:
- Power and clockgating improvements
- Preliminary SR-IOV support
- ttm buffer priority support
- ttm eviction fixes
- Removal of the ttm lru callbacks
- Remove SI DPM quirks due to MC firmware issues
- Handle VFCT with multiple vbioses
- Powerplay improvements
- Lots of driver cleanups
* 'drm-next-4.11' of git://people.freedesktop.org/~agd5f/linux: (120 commits)
drm/amdgpu: fix amdgpu_bo_va_mapping flags
drm/amdgpu: access stolen VRAM directly on CZ (v2)
drm/amdgpu: access stolen VRAM directly on KV/KB (v2)
drm/amdgpu: fix kernel panic when dpm disabled on Kv.
drm/amdgpu: fix dpm bug on Kv.
drm/amd/powerplay: fix regresstion issue can't set manual dpm mode.
drm/amdgpu: handle vfct with multiple vbios images
drm/radeon: handle vfct with multiple vbios images
drm/amdgpu: move misc si headers into amdgpu
drm/amdgpu: remove unused header si_reg.h
drm/radeon: drop pitcairn dpm quirks
drm/amdgpu: drop pitcairn dpm quirks
drm: radeon: radeon_ttm: Handle return NULL error from ioremap_nocache
drm/amd/amdgpu/amdgpu_ttm: Handle return NULL error from ioremap_nocache
drm/amdgpu: add new virtual display ID
drm/amd/amdgpu: remove the uncessary parameter for ib scheduler
drm/amdgpu: Bring bo creation in line with radeon driver (v2)
drm/amd/powerplay: fix misspelling in header guard
drm/ttm: revert "add optional LRU removal callback v2"
drm/ttm: revert "implement LRU add callbacks v2"
...
2017-02-01 08:39:35 +10:00
Christian König
260498f2cd
drm/ttm: revert "implement LRU add callbacks v2"
...
The additional housekeeping had too much CPU overhead,
let's use the BO priorities instead.
agd: also revert hibmc changes
Reviewed-by: Sinclair Yeh <syeh@vmware.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-and-Tested-by: Roger.He <Hongbo.He@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2017-01-27 12:20:34 -05:00
Wei Yongjun
bdf6f13597
drm/hisilicon/hibmc: Fix wrong pointer passed to PTR_ERR()
...
PTR_ERR should access the value just tested by IS_ERR, otherwise
the wrong error code will be returned.
Fixes: d1667b8679 ("drm/hisilicon/hibmc: Add support for frame buffer")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com >
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/20170112151921.16538-1-weiyj.lk@gmail.com
2017-01-23 09:02:28 +01:00
Benjamin Gaignard
011cda5899
drm: fix compilations issues introduced by "drm: allow to use mmuless SoC"
...
Removing MMU configuration flag from DRM make few automatic
build failed when they answer yes to all flags.
Add asm/vga.h file on Blackfin architecture to not broke compilation.
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Fixes: 62a0d98a18 ("drm: allow to use mmuless SoC")
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/1483789151-6603-1-git-send-email-benjamin.gaignard@linaro.org
2017-01-09 11:30:30 +01:00
Ville Syrjälä
272725c7db
drm: Nuke fb->bits_per_pixel
...
Replace uses of fb->bits_per_pixel with fb->format->cpp[0]*8.
Less duplicated information is a good thing.
Note that I didn't put parens around the cpp*8 in the below cocci script,
on account of not wanting spurious parens all over the place. Instead I
did the unsafe way, and tried to look over the entire diff to spot if
any dangerous expressions were produced. I didn't see any.
There are some cases where previously the code did X*bpp/8, so the
division happened after the multiplication. Those are now just X*cpp
so the division effectively happens before the multiplication,
but that is perfectly fine since bpp is always a multiple of 8.
@@
struct drm_framebuffer *FB;
expression E;
@@
drm_helper_mode_fill_fb_struct(...) {
...
- FB->bits_per_pixel = E;
...
}
@@
struct drm_framebuffer *FB;
expression E;
@@
i9xx_get_initial_plane_config(...) {
...
- FB->bits_per_pixel = E;
...
}
@@
struct drm_framebuffer *FB;
expression E;
@@
ironlake_get_initial_plane_config(...) {
...
- FB->bits_per_pixel = E;
...
}
@@
struct drm_framebuffer *FB;
expression E;
@@
skylake_get_initial_plane_config(...) {
...
- FB->bits_per_pixel = E;
...
}
@@
struct drm_framebuffer FB;
expression E;
@@
(
- E * FB.bits_per_pixel / 8
+ E * FB.format->cpp[0]
|
- FB.bits_per_pixel / 8
+ FB.format->cpp[0]
|
- E * FB.bits_per_pixel >> 3
+ E * FB.format->cpp[0]
|
- FB.bits_per_pixel >> 3
+ FB.format->cpp[0]
|
- (FB.bits_per_pixel + 7) / 8
+ FB.format->cpp[0]
|
- FB.bits_per_pixel
+ FB.format->cpp[0] * 8
|
- FB.format->cpp[0] * 8 != 8
+ FB.format->cpp[0] != 1
)
@@
struct drm_framebuffer *FB;
expression E;
@@
(
- E * FB->bits_per_pixel / 8
+ E * FB->format->cpp[0]
|
- FB->bits_per_pixel / 8
+ FB->format->cpp[0]
|
- E * FB->bits_per_pixel >> 3
+ E * FB->format->cpp[0]
|
- FB->bits_per_pixel >> 3
+ FB->format->cpp[0]
|
- (FB->bits_per_pixel + 7) / 8
+ FB->format->cpp[0]
|
- FB->bits_per_pixel
+ FB->format->cpp[0] * 8
|
- FB->format->cpp[0] * 8 != 8
+ FB->format->cpp[0] != 1
)
@@
struct drm_plane_state *state;
expression E;
@@
(
- E * state->fb->bits_per_pixel / 8
+ E * state->fb->format->cpp[0]
|
- state->fb->bits_per_pixel / 8
+ state->fb->format->cpp[0]
|
- E * state->fb->bits_per_pixel >> 3
+ E * state->fb->format->cpp[0]
|
- state->fb->bits_per_pixel >> 3
+ state->fb->format->cpp[0]
|
- (state->fb->bits_per_pixel + 7) / 8
+ state->fb->format->cpp[0]
|
- state->fb->bits_per_pixel
+ state->fb->format->cpp[0] * 8
|
- state->fb->format->cpp[0] * 8 != 8
+ state->fb->format->cpp[0] != 1
)
@@
@@
- (8 * 8)
+ 8 * 8
@@
struct drm_framebuffer FB;
@@
- (FB.format->cpp[0])
+ FB.format->cpp[0]
@@
struct drm_framebuffer *FB;
@@
- (FB->format->cpp[0])
+ FB->format->cpp[0]
@@
@@
struct drm_framebuffer {
...
- int bits_per_pixel;
...
};
v2: Clean up the 'cpp*8 != 8' and '(8 * 8)' cases (Laurent)
v3: Adjusted the semantic patch a bit and regenerated due to code
changes
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com > (v1)
Link: http://patchwork.freedesktop.org/patch/msgid/1481751140-18352-1-git-send-email-ville.syrjala@linux.intel.com
2016-12-15 14:55:34 +02:00
Ville Syrjälä
b00c600e91
drm: Nuke fb->depth
...
Replace uses of fb->depth with fb->format->depth. Less duplicate
information is a good thing.
@@
struct drm_framebuffer *fb;
expression E;
@@
drm_helper_mode_fill_fb_struct(...) {
...
- fb->depth = E;
...
}
@@
struct nouveau_framebuffer *fb;
@@
- fb->base.depth
+ fb->base.format->depth
@@
struct drm_framebuffer fb;
@@
- fb.depth
+ fb.format->depth
@@
struct drm_framebuffer *fb;
@@
- fb->depth
+ fb->format->depth
@@
struct drm_framebuffer fb;
@@
- (fb.format->depth)
+ fb.format->depth
@@
struct drm_framebuffer *fb;
@@
- (fb->format->depth)
+ fb->format->depth
@@
@@
struct drm_framebuffer {
...
- unsigned int depth;
...
};
v2: Drop the vmw stuff (Daniel)
Rerun spatch due to code changes
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/1481751095-18249-1-git-send-email-ville.syrjala@linux.intel.com
2016-12-15 14:55:33 +02:00
Ville Syrjälä
a3f913ca98
drm: Pass 'dev' to drm_helper_mode_fill_fb_struct()
...
Pass the drm_device to drm_helper_mode_fill_fb_struct() so that we can
populate fb->dev early. Will make it easier to use the fb before we
register it.
@@
identifier fb, mode_cmd;
@@
void drm_helper_mode_fill_fb_struct(
+ struct drm_device *dev,
struct drm_framebuffer *fb,
const struct drm_mode_fb_cmd2 *mode_cmd
);
@@
identifier fb, mode_cmd;
@@
void drm_helper_mode_fill_fb_struct(
+ struct drm_device *dev,
struct drm_framebuffer *fb,
const struct drm_mode_fb_cmd2 *mode_cmd
)
{ ... }
@@
function func;
identifier dev;
expression E1, E2;
@@
func(struct drm_device *dev, ...)
{
...
drm_helper_mode_fill_fb_struct(
+ dev,
E1, E2);
...
}
@@
expression E1, E2;
@@
drm_helper_mode_fill_fb_struct(
+ dev,
E1, E2);
v2: Rerun spatch due to code changes
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Link: http://patchwork.freedesktop.org/patch/msgid/1481748539-18283-1-git-send-email-ville.syrjala@linux.intel.com
2016-12-15 14:03:30 +02:00
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
Arnd Bergmann
b61abd49c5
drm/hisilicon/hibmc: mark PM functions __maybe_unused
...
When CONFIG_PM_SLEEP is disabled, we get a harmless warning
drm/hisilicon/hibmc/hibmc_drm_drv.c:115:12: error: ‘hibmc_pm_resume’ defined but not used [-Werror=unused-function]
drm/hisilicon/hibmc/hibmc_drm_drv.c:97:12: error: ‘hibmc_pm_suspend’ defined but not used [-Werror=unused-function]
Marking the functions as __maybe_unused avoids the warning without
having to add an #ifdef.
Fixes: 5e0df3a08f ("drm/hisilicon/hibmc: Add hisilicon hibmc drm master driver")
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/20161124163107.3914495-1-arnd@arndb.de
2016-11-25 07:58:55 +01:00
Dan Carpenter
0a4c9ffbd4
drm/hisilicon/hibmc: Checking for NULL instead of IS_ERR()
...
The drm_dev_alloc() function returns error pointers. It never returns
NULLs.
Fixes: 5e0df3a08f ("drm/hisilicon/hibmc: Add hisilicon hibmc drm master driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/20161124113545.GP17225@mwanda
2016-11-25 07:58:49 +01:00
Rongrong Zou
1d98b91611
drm/hisilicon/hibmc: Add support for vblank interrupt
...
Add vblank interrupt.
Signed-off-by: Rongrong Zou <zourongrong@gmail.com >
Reviewed-by: Sean Paul <seanpaul@chromium.org >
Reviewed-by: Xinliang Liu <xinliang.liu@linaro.org >
Acked-by: Sean Paul <seanpaul@chromium.org >
2016-11-17 15:26:27 +08:00
Rongrong Zou
5294967f4a
drm/hisilicon/hibmc: Add support for VDAC
...
VDAC(Video Digital-to-Analog converter) converts the RGB diaital data
stream from DE to VGA analog signals.
Signed-off-by: Rongrong Zou <zourongrong@gmail.com >
Reviewed-by: Sean Paul <seanpaul@chromium.org >
Reviewed-by: Xinliang Liu <xinliang.liu@linaro.org >
Acked-by: Sean Paul <seanpaul@chromium.org >
2016-11-17 15:26:26 +08:00
Rongrong Zou
da52605eea
drm/hisilicon/hibmc: Add support for display engine
...
Add display engine function, crtc/plane is initialized here.
Signed-off-by: Rongrong Zou <zourongrong@gmail.com >
Reviewed-by: Sean Paul <seanpaul@chromium.org >
Reviewed-by: Xinliang Liu <xinliang.liu@linaro.org >
Acked-by: Sean Paul <seanpaul@chromium.org >
2016-11-17 15:26:25 +08:00
Rongrong Zou
d1667b8679
drm/hisilicon/hibmc: Add support for frame buffer
...
Add support for fbdev and kms fb management.
Signed-off-by: Rongrong Zou <zourongrong@gmail.com >
Reviewed-by: Sean Paul <seanpaul@chromium.org >
Reviewed-by: Xinliang Liu <xinliang.liu@linaro.org >
Acked-by: Sean Paul <seanpaul@chromium.org >
2016-11-17 15:26:25 +08:00
Rongrong Zou
e4daebc77e
drm/hisilicon/hibmc: Add video memory management
...
Hibmc have 32m video memory which can be accessed through PCIe by host,
we use ttm to manage these memory.
Signed-off-by: Rongrong Zou <zourongrong@gmail.com >
Reviewed-by: Sean Paul <seanpaul@chromium.org >
Reviewed-by: Xinliang Liu <xinliang.liu@linaro.org >
Acked-by: Sean Paul <seanpaul@chromium.org >
2016-11-17 15:26:24 +08:00
Rongrong Zou
5e0df3a08f
drm/hisilicon/hibmc: Add hisilicon hibmc drm master driver
...
Add DRM master driver for Hisilicon Hibmc SoC which used for
Out-of-band management. Blow is the general hardware connection,
both the Hibmc and the host CPU are on the same mother board.
+----------+ +----------+
| | PCIe | Hibmc |
|host CPU( |<----->| display |
|arm64,x86)| |subsystem |
+----------+ +----------+
Signed-off-by: Rongrong Zou <zourongrong@gmail.com >
Reviewed-by: Sean Paul <seanpaul@chromium.org >
Reviewed-by: Xinliang Liu <xinliang.liu@linaro.org >
Acked-by: Sean Paul <seanpaul@chromium.org >
2016-11-17 15:26:24 +08:00