Gerd Hoffmann
e551655399
drm: call drm_gem_object_funcs.mmap with fake offset
...
The fake offset is going to stay, so change the calling convention for
drm_gem_object_funcs.mmap to include the fake offset. Update all users
accordingly.
Note that this reverts 83b8a6f242 ("drm/gem: Fix mmap fake offset
handling for drm_gem_object_funcs.mmap") and on top then adds the fake
offset to drm_gem_prime_mmap to make sure all paths leading to
obj->funcs->mmap are consistent.
v3: move fake-offset tweak in drm_gem_prime_mmap() so we have this code
only once in the function (Rob Herring).
Fixes: 83b8a6f242 ("drm/gem: Fix mmap fake offset handling for drm_gem_object_funcs.mmap")
Cc: Daniel Vetter <daniel.vetter@ffwll.ch >
Cc: Rob Herring <robh@kernel.org >
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/20191127092523.5620-2-kraxel@redhat.com
2019-12-06 11:18:11 +01:00
Rodrigo Siqueira
3f5f74203a
drm: Add FEC registers for LT-tunable repeaters
...
FEC is supported since DP 1.4, and it was expanded for LT-tunable in DP
1.4a. This commit adds the address registers for
FEC_ERROR_COUNT_PHY_REPEATER1 and FEC_CAPABILITY_PHY_REPEATER1.
Cc: Abdoulaye Berthe <Abdoulaye.Berthe@amd.com >
Cc: Harry Wentland <harry.wentland@amd.com >
Cc: Leo Li <sunpeng.li@amd.com >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Manasi Navare <manasi.d.navare@intel.com >
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com >
Signed-off-by: Abdoulaye Berthe <Abdoulaye.Berthe@amd.com >
Signed-off-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com >
Reviewed-by: Zhan Liu <zhan.liu@amd.com >
Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191205135856.232784-1-Rodrigo.Siqueira@amd.com
2019-12-05 19:26:01 -05:00
Rodrigo Siqueira
843cd325d9
drm: Fix DSC throughput mode 0 mask definition
...
Commit d7cd0e053b introduced a change at DP_DSC_THROUGHPUT_MODE_0_170
which is not aligned with the spec. This commit replace 15 << 4 by 15 <<
0 for DP_DSC_THROUGHPUT_MODE_0_170 in order to make it follow the
specification.
Cc: Harry Wentland <harry.wentland@amd.com >
Cc: Leo Li <sunpeng.li@amd.com >
Cc: Alex Deucher <alexander.deucher@amd.com >
Cc: Nikola Cornij <nikola.cornij@amd.com >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Manasi Navare <manasi.d.navare@intel.com >
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com >
Reviewed-by: Harry Wentland <harry.wentland@amd.com >
Signed-off-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191021150345.igdye4kv35nsk4ox@outlook.office365.com
2019-12-05 19:25:31 -05:00
Sean Paul
f79489074c
drm/dp_mst: Clear all payload id tables downstream when initializing
...
It seems that on certain MST hubs, namely the CableMatters USB-C 2x DP
hub, using the DP_PAYLOAD_ALLOCATE_SET and DP_PAYLOAD_TABLE_UPDATE_STATUS
register ranges to clear any pre-existing payload allocations on the hub isn't
always enough to reset things if the source device has been reset unexpectedly.
Or at least, that's the current running theory. The precise behavior appears to
be that when the source device gets reset unexpectedly, the hub begins reporting
an available_pbn value of 0 for all of its ports. This is a bit inconsistent
with the our theory, since this seems to happen even if previously set PBN
allocations should have resulted in a non-zero available_pbn value. So, it's
possible that something else may be going on here.
Strangely though, sending a CLEAR_PAYLOAD_ID_TABLE broadcast request when
initializing the MST topology seems to bring things into working order and make
available_pbn work again. Since this is a pretty safe solution, let's go ahead
and implement it.
Changes since v1:
* Change indenting on drm_dp_send_clear_payload_id_table() prototype
* Remove some braces in drm_dp_send_clear_payload_id_table()
* Reorganize some variable declarations in drm_dp_send_clear_payload_id_table()
* Don't forget to handle DP_CLEAR_PAYLOAD_ID_TABLE in
drm_dp_sideband_parse_reply()
* Move drm_dp_send_clear_payload_id_table() call into
drm_dp_mst_link_probe_work(), since we can't send sideband messages
while under lock in drm_dp_mst_topology_mgr_set_mst()
* Change commit message
Acked-by: Daniel Vetter <daniel@ffwll.ch >
Signed-off-by: Sean Paul <seanpaul@chromium.org >
Signed-off-by: Lyude Paul <lyude@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20190829000944.20722-1-lyude@redhat.com
2019-12-05 13:13:46 -05:00
Jani Nikula
bf9e25ec12
video: fbdev: make fbops member of struct fb_info a const pointer
...
Now that we no longer modify the fbops, or hold non-const pointers to
it, we can make it const. After this, we can start making the fbops
const all over the place.
Cc: linux-fbdev@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/700c6b52c39c6e7babaa921f583eac354714d9fc.1575390740.git.jani.nikula@intel.com
2019-12-05 10:57:36 +02:00
Thomas Zimmermann
1be9d5f069
drm/pci: Hide legacy PCI functions from non-legacy code
...
Declarations of drm_legacy_pci_{init,exit}() are being moved to
drm_legacy.h. CONFIG_DRM_LEGACY protects the implementation.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Emil Velikov <emil.velikov@collabora.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191203100406.9674-3-tzimmermann@suse.de
2019-12-05 08:44:04 +01:00
Thomas Zimmermann
5c7a0bb0cf
drm/pci: Only build drm_pci.c if CONFIG_PCI is set
...
Non-PCI systems should not build PCI helpers. Set up source code, header
file and Makefile accordingly.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Emil Velikov <emil.velikov@collabora.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191203100406.9674-2-tzimmermann@suse.de
2019-12-05 08:43:14 +01:00
Ville Syrjälä
65b2f7c43c
drm: Inline drm_color_lut_extract()
...
This thing can get called several thousand times per LUT
so seems like we want to inline it to:
- avoid the function call overhead
- allow constant folding
A quick synthetic test (w/o any hardware interaction) with
a ridiculously large LUT size shows about 50% reduction in
runtime on my HSW and BSW boxes. Slightly less with more
reasonable LUT size but still easily measurable in tens
of microseconds.
v2: Include drm_color_mgmt.h in the .rst (Daniel)
Cc: Daniel Vetter <daniel@ffwll.ch >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191108135654.12907-1-ville.syrjala@linux.intel.com
2019-11-29 21:29:17 +02:00
Ville Syrjälä
30218eb77d
drm/selftests: Add drm_rect selftests
...
Add selftests for drm_rect. A few basic ones for clipped and unclipped
cases, and a few special ones for specific bugs we had in the code.
I'm too lazy to think of more corner cases to check at this time.
Maybe later.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191122175623.13565-5-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Reviewed-by: Benjamin Gaignard <benjamin.gaignard@st.com >
2019-11-28 13:33:43 +02:00
Gurchetan Singh
8082731830
drm/vram: remove unused declaration
...
Commit b0e40e0805 ("vram: Have VRAM MM call GEM VRAM functions directly")
removed this.
Signed-off-by: Gurchetan Singh <gurchetansingh@chromium.org >
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Fixes: b0e40e0805 ("drm/vram: Have VRAM MM call GEM VRAM functions directly")
Cc: Gerd Hoffmann <kraxel@redhat.com >
Cc: Dave Airlie <airlied@redhat.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: Maxime Ripard <mripard@kernel.org >
Cc: David Airlie <airlied@linux.ie >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: Hans de Goede <hdegoede@redhat.com >
Cc: "Christian König" <christian.koenig@amd.com >
Cc: Alex Deucher <alexander.deucher@amd.com >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: virtualization@lists.linux-foundation.org
Cc: dri-devel@lists.freedesktop.org
Link: https://patchwork.freedesktop.org/patch/msgid/20191126184339.337-1-gurchetansingh@chromium.org
2019-11-27 07:51:49 +01:00
Daniel Vetter
4337ebbbbd
dma-buf: Remove kernel map/unmap hooks
...
All implementations are gone now.
Acked-by: Sumit Semwal <sumit.semwal@linaro.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Sumit Semwal <sumit.semwal@linaro.org >
Cc: linux-media@vger.kernel.org
Cc: linaro-mm-sig@lists.linaro.org
Link: https://patchwork.freedesktop.org/patch/msgid/20191118103536.17675-16-daniel.vetter@ffwll.ch
2019-11-26 11:52:57 +01:00
Daniel Vetter
7f0de8d808
dma-buf: Drop dma_buf_k(un)map
...
It's unused.
10 years ago, back when 32bit was still fairly common and trying to
not exhaust vmalloc space sounded like a worthwhile goal, adding these
to dma_buf made sense.
Reality is that they simply never caught on, and nowadays everyone who
needs plenty of buffers will run in 64bit mode anyway.
Also update the docs in this area to adjust them to reality.
The actual hooks in dma_buf_ops will be removed once all the
implementations are gone.
Acked-by: Sumit Semwal <sumit.semwal@linaro.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Sumit Semwal <sumit.semwal@linaro.org >
Cc: linux-media@vger.kernel.org
Cc: linaro-mm-sig@lists.linaro.org
Link: https://patchwork.freedesktop.org/patch/msgid/20191118103536.17675-10-daniel.vetter@ffwll.ch
2019-11-25 22:36:14 +01:00
Daniel Vetter
35bd71dd1c
drm/tegra: Delete host1x_bo_ops->k(un)map
...
It doesn't have any callers anymore.
Aside: The ->mmap/munmap hooks have a bit a confusing name, they don't
do userspace mmaps, but a kernel vmap. I think most places use vmap
for this, except ttm, which uses kmap for vmap for added confusion.
mmap seems entirely for userspace mappings set up through mmap(2)
syscall.
Reviewed-by: Thierry Reding <treding@nvidia.com >
Tested-by: Thierry Reding <treding@nvidia.com >
Acked-by: Sumit Semwal <sumit.semwal@linaro.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Thierry Reding <thierry.reding@gmail.com >
Cc: Jonathan Hunter <jonathanh@nvidia.com >
Cc: linux-tegra@vger.kernel.org
Link: https://patchwork.freedesktop.org/patch/msgid/20191118103536.17675-3-daniel.vetter@ffwll.ch
2019-11-25 22:36:01 +01:00
Maarten Lankhorst
ca380ab379
Merge tag 'topic/drm-mipi-dsi-dsc-updates-2019-11-11' of ssh://git.freedesktop.org/git/drm-intel into drm-misc-next
...
Core Changes:
- Update DSI data type and command definitions
- Add helpers for sending compression mode and PPS packets
Driver Changes:
- Update tiny/st7586 to reflect a definition change
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
From: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/87tv7a4eq3.fsf@intel.com
2019-11-20 14:12:00 +01:00
Jani Nikula
be14312472
drm/r128: make ATI PCI GART part of its only user, r128
...
The ATI Rage 128 driver has been the only user of ATI PCI GART code
since Radeon dropped UMS support in commit 8333f607a6 ("drm/radeon:
remove UMS support"). Clean up the drm top level directory, Kconfig and
Makefile by making ati_pcigart.[ch] part of r128. Drop the
CONFIG_DRM_ATI_PCIGART config option made redundant by the change.
This reduces drm.ko module size slightly when legacy drivers are
enabled, and moves the baggage to r128.ko instead.
Cc: Alex Deucher <alexander.deucher@amd.com >
Cc: Daniel Vetter <daniel.vetter@ffwll.ch >
Cc: Dave Airlie <airlied@redhat.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191119100536.12024-1-jani.nikula@intel.com
2019-11-20 11:09:05 +02:00
Thomas Zimmermann
f597c2089d
fbdev: Unexport unlink_framebuffer()
...
There are no external callers of unlink_framebuffer() left. Make the
function an internal interface.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Noralf Trønnes <noralf@tronnes.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20191114125106.28347-4-tzimmermann@suse.de
2019-11-19 14:38:01 +01:00
Thomas Zimmermann
6821603aa0
drm/fb-helper: Remove drm_fb_helper_unlink_fbi()
...
There are no callers of drm_fb_helper_unlink_fbi() left. Remove the
function.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Noralf Trønnes <noralf@tronnes.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20191114125106.28347-3-tzimmermann@suse.de
2019-11-19 14:37:39 +01:00
Jani Nikula
3bf149bd3f
drm/print: group logging functions by prink or device based
...
In preparation for adding struct drm_device based logging, group the
existing functions by prink or struct device based logging. No
functional changes.
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Acked-by: Sean Paul <sean@poorly.run >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/51c70d80e7dd06c49ba3be56fbb6ae70edddc102.1572258936.git.jani.nikula@intel.com
2019-11-14 14:09:08 +02:00
Jani Nikula
876905b8fe
drm/print: convert debug category macros into an enum
...
Mostly for improved documentation, convert the debug category macros
into an enum. Drop unused DRM_UT_NONE. Document previously undocumented
categories.
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Acked-by: Sean Paul <sean@poorly.run >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/96582479e7829d92b89adb805f829e23043ca85c.1572258936.git.jani.nikula@intel.com
2019-11-14 14:08:57 +02:00
Jani Nikula
99acf4716f
drm/print: underscore prefix functions that should be private to print
...
We don't want people calling the functions directly. No functional
changes.
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Acked-by: Sean Paul <sean@poorly.run >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/6b236ed4d2e6d2987eaaeb9cb737f9c3699281cc.1572258936.git.jani.nikula@intel.com
2019-11-14 14:08:42 +02:00
Jani Nikula
9f0ac02841
drm/print: rename drm_debug to __drm_debug to discourage use
...
drm_debug_enabled() is the way to check. __drm_debug is now reserved for
drm print code only. No functional changes.
v2: Rebase on move unlikely() to drm_debug_enabled()
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Acked-by: Sean Paul <sean@poorly.run >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/840ff7292d1a39512bac2fcb1f45de9d50694bf1.1572258936.git.jani.nikula@intel.com
2019-11-14 14:08:41 +02:00
james qian wang (Arm Technology China)
7ca7fcef13
drm: Add a new helper drm_color_ctm_s31_32_to_qm_n()
...
Add a new helper function drm_color_ctm_s31_32_to_qm_n() for driver to
convert S31.32 sign-magnitude to Qm.n 2's complement that supported by
hardware.
V4: Address Mihai, Daniel and Ilia's review comments.
V5: Includes the sign bit in the value of m (Qm.n).
V6: Allows m = 0 according to Mihail's comments.
V7: Address Mihail's comments.
V8: Use type 'u32' to replace 'uint32_t'
V9: Rebase.
Signed-off-by: james qian wang (Arm Technology China) <james.qian.wang@arm.com >
Reviewed-by: Mihail Atanassov <mihail.atanassov@arm.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20191112110927.20931-2-james.qian.wang@arm.com
2019-11-14 10:29:18 +08:00
Daniel Vetter
4773483568
drm/fb-helper: unexport drm_fb_helper_generic_probe
...
Not sure we don't yet have this as a patch somewhere ...
Motivation is that the automatic lifetime management of the generic fbdev
code is quite tricky, and it'll get even more tricky. Allowing drivers
to just use the fb_probe looks like a recipe for disaster.
Cc: Gerd Hoffmann <kraxel@redhat.com >
Cc: Noralf Trønnes <noralf@tronnes.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Noralf Trønnes <noralf@tronnes.org >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20191112175048.1581-1-daniel.vetter@ffwll.ch
2019-11-13 13:06:27 +01:00
Christian König
20c012b243
drm/ttm: also export ttm_bo_vm_fault v2
...
That is needed by at least a cleanup in radeon.
v2: also export ttm_bo_vm_access
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Huang Rui <ray.huang@amd.com >
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Link: https://patchwork.freedesktop.org/patch/339353/
2019-11-08 11:33:32 +01:00
Jani Nikula
f4dea1aaa9
drm/dsi: add helpers for DSI compression mode and PPS packets
...
Add helper functions for sending the DSI compression mode and picture
parameter set data type packets. For the time being, limit the support
to using VESA DSC 1.1 and the default PPS. This may need updating if the
need arises for proprietary compression or non-default PPS, however keep
it simple for starters.
v2: Add missing EXPORT_SYMBOL
Cc: Vandita Kulkarni <vandita.kulkarni@intel.com >
Reviewed-by: Thierry Reding <treding@nvidia.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191028150047.22048-5-jani.nikula@intel.com
2019-11-07 15:00:16 +02:00
Jani Nikula
97ecec8b7f
drm/dsi: rename MIPI_DCS_SET_PARTIAL_AREA to MIPI_DCS_SET_PARTIAL_ROWS
...
The DCS command has been named SET_PARTIAL_ROWS in the DCS spec since
v1.02, for more than a decade. Rename the enumeration to match the spec.
v2: add comment about the rename (David Lechner)
Cc: David Lechner <david@lechnology.com >
Cc: Vandita Kulkarni <vandita.kulkarni@intel.com >
Reviewed-by: Thierry Reding <treding@nvidia.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191028150047.22048-4-jani.nikula@intel.com
2019-11-07 14:59:56 +02:00
Jani Nikula
0676e24f62
drm/dsi: add missing DSI DCS commands
...
Update from the DCS specification.
Cc: Vandita Kulkarni <vandita.kulkarni@intel.com >
Reviewed-by: Thierry Reding <treding@nvidia.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191028150047.22048-3-jani.nikula@intel.com
2019-11-07 14:59:41 +02:00
Jani Nikula
5586363575
drm/dsi: add missing DSI data types
...
Add execute queue and compressed pixel stream packet data types for
completeness.
Cc: Vandita Kulkarni <vandita.kulkarni@intel.com >
Reviewed-by: Vandita Kulkarni <vandita.kulkarni@intel.com >
Reviewed-by: Thierry Reding <treding@nvidia.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191028150047.22048-2-jani.nikula@intel.com
2019-11-07 14:59:11 +02:00
Jani Nikula
e85c659225
drm/dsi: clean up DSI data type definitions
...
Rename picture parameter set (it's a long packet, not a long write) and
compression mode (it's not a DCS command) enumerations according to the
DSI specification. Order the types according to the spec. Use tabs
instead of spaces for indentation. Use all lower case for hex.
Cc: Vandita Kulkarni <vandita.kulkarni@intel.com >
Reviewed-by: Vandita Kulkarni <vandita.kulkarni@intel.com >
Reviewed-by: Thierry Reding <treding@nvidia.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191028150047.22048-1-jani.nikula@intel.com
2019-11-07 14:58:16 +02:00
Benjamin Gaignard
bf5d837a0a
drm: atomic helper: fix W=1 warnings
...
Few for_each macro set variables that are never used later which led
to generate unused-but-set-variable warnings.
Add (void)(foo) inside the macros to remove these warnings
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20191008124254.2144-1-benjamin.gaignard@st.com
2019-11-07 11:08:54 +01:00
Thomas Zimmermann
8204f235a6
drm/fb-helper: Remove drm_fb_helper_fbdev_{setup, teardown}()
...
Both functions are unused and can be removed. Drivers should use
drm_fbdev_generic_setup() instead.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Noralf Trønnes <noralf@tronnes.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20191106124727.11641-3-tzimmermann@suse.de
2019-11-07 09:40:11 +01:00
Daniel Vetter
6b1ce0a200
drm/ttm: remove ttm_bo_wait_unreserved
...
With nouveau fixed all ttm-using drives have the correct nesting of
mmap_sem vs dma_resv, and we can just lock the buffer.
Assuming I didn't screw up anything with my audit of course.
v2:
- Dont forget wu_mutex (Christian König)
- Keep the mmap_sem-less wait optimization (Thomas)
- Use _lock_interruptible to be good citizens (Thomas)
v3: Rebase over fault handler helperification.
Reviewed-by: Christian König <christian.koenig@amd.com > (v2)
Reviewed-by: Thomas Hellström <thellstrom@vmware.com > (v2)
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Christian Koenig <christian.koenig@amd.com >
Cc: Huang Rui <ray.huang@amd.com >
Cc: Gerd Hoffmann <kraxel@redhat.com >
Cc: "VMware Graphics" <linux-graphics-maintainer@vmware.com >
Cc: Thomas Hellstrom <thellstrom@vmware.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191104173801.2972-3-daniel.vetter@ffwll.ch
2019-11-06 11:24:14 +01:00
Patrik Jakobsson
ff1fd2945c
drm/scdc: Fix typo in bit definition of SCDC_STATUS_FLAGS
...
Fix typo where bits got compared (x < y) instead of shifted (x << y).
Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com >
Reviewed-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191016123342.19119-1-patrik.r.jakobsson@gmail.com
2019-11-04 17:58:46 +01:00
Thomas Hellstrom
caa478af48
drm/ttm: Convert vm callbacks to helpers
...
The default TTM fault handler may not be completely sufficient
(vmwgfx needs to do some bookkeeping, control the write protectionand also
needs to restrict the number of prefaults).
Also make it possible replicate ttm_bo_vm_reserve() functionality for,
for example, mkwrite handlers.
So turn the TTM vm code into helpers: ttm_bo_vm_fault_reserved(),
ttm_bo_vm_open(), ttm_bo_vm_close() and ttm_bo_vm_reserve(). Also provide
a default TTM fault handler for other drivers to use.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Link: https://patchwork.freedesktop.org/patch/332900/?series=67217&rev=1
Signed-off-by: Christian König <christian.koenig@amd.com >
2019-11-04 13:02:30 +01:00
Sean Paul
fae7d7d5f3
Revert "dma-buf: Add dma-buf heaps framework"
...
This reverts commit a69b0e855d .
This patchset doesn't meet the UAPI requirements set out in [1] for the DRM
subsystem. Once the userspace component is reviewed and ready for merge
we can try again.
[1]- https://01.org/linuxgraphics/gfx-docs/drm/gpu/drm-uapi.html#open-source-userspace-requirements
Fixes: a69b0e855d ("dma-buf: Add dma-buf heaps framework")
Cc: Laura Abbott <labbott@redhat.com >
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Cc: Sumit Semwal <sumit.semwal@linaro.org >
Cc: Liam Mark <lmark@codeaurora.org >
Cc: Pratik Patel <pratikp@codeaurora.org >
Cc: Brian Starkey <Brian.Starkey@arm.com >
Cc: Vincent Donnefort <Vincent.Donnefort@arm.com >
Cc: Sudipto Paul <Sudipto.Paul@arm.com >
Cc: Andrew F. Davis <afd@ti.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Chenbo Feng <fengc@google.com >
Cc: Alistair Strachan <astrachan@google.com >
Cc: Hridya Valsaraju <hridya@google.com >
Cc: Hillf Danton <hdanton@sina.com >
Cc: dri-devel@lists.freedesktop.org
Cc: Brian Starkey <brian.starkey@arm.com >
Cc: John Stultz <john.stultz@linaro.org >
Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Rob Herring <robh@kernel.org >
Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com >
Cc: "Paul E. McKenney" <paulmck@linux.ibm.com >
Cc: Sean Paul <seanpaul@chromium.org >
Cc: "Andrew F. Davis" <afd@ti.com >
Cc: linux-media@vger.kernel.org
Cc: linaro-mm-sig@lists.linaro.org
Acked-by: David Airlie <airlied@linux.ie >
Signed-off-by: Sean Paul <sean@poorly.run >
Link: https://patchwork.freedesktop.org/patch/msgid/20191030203003.101156-6-sean@poorly.run
2019-10-30 16:41:49 -04:00
Rob Herring
83b8a6f242
drm/gem: Fix mmap fake offset handling for drm_gem_object_funcs.mmap
...
Commit c40069cb7b ("drm: add mmap() to drm_gem_object_funcs")
introduced a GEM object mmap() hook which is expected to subtract the
fake offset from vm_pgoff. However, for mmap() on dmabufs, there is not
a fake offset.
To fix this, let's always call mmap() object callback with an offset of 0,
and leave it up to drm_gem_mmap_obj() to remove the fake offset.
TTM still needs the fake offset, so we have to add it back until that's
fixed.
Fixes: c40069cb7b ("drm: add mmap() to drm_gem_object_funcs")
Cc: Gerd Hoffmann <kraxel@redhat.com >
Cc: Daniel Vetter <daniel.vetter@ffwll.ch >
Signed-off-by: Rob Herring <robh@kernel.org >
Acked-by: Gerd Hoffmann <kraxel@redhat.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20191024191859.31700-1-robh@kernel.org
2019-10-29 13:29:21 -05:00
Thomas Zimmermann
8e86dee022
drm/fb-helper: Remove drm_fb_helper_defio_init() and update docs
...
There are no users of drm_fb_helper_defio_init(), so we can remove
it. The documentation around defio support is a bit misleading and
should mention compatibility issues with SHMEM helpers. Clarify this.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Noralf Trønnes <noralf@tronnes.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20191025092759.13069-2-tzimmermann@suse.de
2019-10-28 10:07:54 +01:00
Andrew F. Davis
a69b0e855d
dma-buf: Add dma-buf heaps framework
...
This framework allows a unified userspace interface for dma-buf
exporters, allowing userland to allocate specific types of memory
for use in dma-buf sharing.
Each heap is given its own device node, which a user can allocate
a dma-buf fd from using the DMA_HEAP_IOC_ALLOC.
This code is an evoluiton of the Android ION implementation,
and a big thanks is due to its authors/maintainers over time
for their effort:
Rebecca Schultz Zavin, Colin Cross, Benjamin Gaignard,
Laura Abbott, and many other contributors!
Cc: Laura Abbott <labbott@redhat.com >
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Cc: Sumit Semwal <sumit.semwal@linaro.org >
Cc: Liam Mark <lmark@codeaurora.org >
Cc: Pratik Patel <pratikp@codeaurora.org >
Cc: Brian Starkey <Brian.Starkey@arm.com >
Cc: Vincent Donnefort <Vincent.Donnefort@arm.com >
Cc: Sudipto Paul <Sudipto.Paul@arm.com >
Cc: Andrew F. Davis <afd@ti.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Chenbo Feng <fengc@google.com >
Cc: Alistair Strachan <astrachan@google.com >
Cc: Hridya Valsaraju <hridya@google.com >
Cc: Hillf Danton <hdanton@sina.com >
Cc: dri-devel@lists.freedesktop.org
Reviewed-by: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Reviewed-by: Brian Starkey <brian.starkey@arm.com >
Acked-by: Laura Abbott <labbott@redhat.com >
Tested-by: Ayan Kumar Halder <ayan.halder@arm.com >
Signed-off-by: Andrew F. Davis <afd@ti.com >
Signed-off-by: John Stultz <john.stultz@linaro.org >
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20191021190310.85221-2-john.stultz@linaro.org
2019-10-25 17:01:45 +05:30
Christian König
97588b5b9a
drm/ttm: remove pointers to globals
...
As the name says global memory and bo accounting is global. So it doesn't
make to much sense having pointers to global structures all around the code.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Thomas Hellström <thellstrom@vmware.com >
Link: https://patchwork.freedesktop.org/patch/332879/
2019-10-25 11:40:51 +02:00
Christian König
9165fb879f
drm/ttm: always keep BOs on the LRU
...
This allows blocking for BOs to become available
in the memory management.
Amdgpu is doing this for quite a while now during CS. Now
apply the new behavior to all drivers using TTM.
Signed-off-by: Christian König <christian.koenig@amd.com >
Acked-by: Thomas Hellstrom <thellstrom@vmware.com >
Link: https://patchwork.freedesktop.org/patch/332878/
2019-10-25 11:40:50 +02:00
Christian König
7fb03cc3e0
drm/ttm, drm/vmwgfx: move cpu_writers handling into vmwgfx
...
This feature is only used by vmwgfx and superfluous for everybody else.
Signed-off-by: Christian König <christian.koenig@amd.com >
Co-developed-by: Thomas Hellstrom <thellstrom@vmware.com >
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com >
Tested-by: Thomas Hellstrom <thellstrom@vmware.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Link: https://patchwork.freedesktop.org/patch/333650/
2019-10-25 11:40:28 +02:00
Geert Uytterhoeven
3f4bb9f750
drm: Spelling s/connet/connect/
...
Fix misspellings of "connector" and "connection"
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20191024151737.29287-1-geert+renesas@glider.be
2019-10-24 17:59:45 +02:00
Thomas Zimmermann
6542ad8918
drm/vram-helpers: Add helpers for prepare_fb() and cleanup_fb()
...
The new helpers pin and unpin a framebuffer's GEM VRAM objects during
plane updates. This should be sufficient for most drivers' implementation
of prepare_fb() and cleanup_fb().
v2:
* provide helpers for struct drm_simple_display_pipe_funcs
* rename plane-helper funcs
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20191024081404.6978-2-tzimmermann@suse.de
2019-10-24 16:12:11 +02:00
Daniel Vetter
62db7d1e1e
drm/simple-kms: Standardize arguments for callbacks
...
Passing the wrong type feels icky, everywhere else we use the pipe as
the first parameter. Spotted while discussing patches with Thomas
Zimmermann.
v2: Make xen compile correctly
Acked-By: Thomas Zimmermann <tzimmermann@suse.de > (v1)
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Cc: Noralf Trønnes <noralf@tronnes.org >
Cc: Gerd Hoffmann <kraxel@redhat.com >
Cc: Eric Anholt <eric@anholt.net >
Cc: Emil Velikov <emil.velikov@collabora.com >
Cc: virtualization@lists.linux-foundation.org
Cc: Linus Walleij <linus.walleij@linaro.org >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191023101256.20509-1-daniel.vetter@ffwll.ch
2019-10-24 13:55:56 +02:00
Christian König
15fd552d18
dma-buf: change DMA-buf locking convention v3
...
This patch is a stripped down version of the locking changes
necessary to support dynamic DMA-buf handling.
It adds a dynamic flag for both importers as well as exporters
so that drivers can choose if they want the reservation object
locked or unlocked during mapping of attachments.
For compatibility between drivers we cache the DMA-buf mapping
during attaching an importer as soon as exporter/importer
disagree on the dynamic handling.
Issues and solutions we considered:
- We can't change all existing drivers, and existing improters have
strong opinions about which locks they're holding while calling
dma_buf_attachment_map/unmap. Exporters also have strong opinions about
which locks they can acquire in their ->map/unmap callbacks, levaing no
room for change. The solution to avoid this was to move the
actual map/unmap out from this call, into the attach/detach callbacks,
and cache the mapping. This works because drivers don't call
attach/detach from deep within their code callchains (like deep in
memory management code called from cs/execbuf ioctl), but directly from
the fd2handle implementation.
- The caching has some troubles on some soc drivers, which set other modes
than DMA_BIDIRECTIONAL. We can't have 2 incompatible mappings, and we
can't re-create the mapping at _map time due to the above locking fun.
We very carefuly step around that by only caching at attach time if the
dynamic mode between importer/expoert mismatches.
- There's been quite some discussion on dma-buf mappings which need active
cache management, which would all break down when caching, plus we don't
have explicit flush operations on the attachment side. The solution to
this was to shrug and keep the current discrepancy between what the
dma-buf docs claim and what implementations do, with the hope that the
begin/end_cpu_access hooks are good enough and that all necessary
flushing to keep device mappings consistent will be done there.
v2: cleanup set_name merge, improve kerneldoc
v3: update commit message, kerneldoc and cleanup _debug_show()
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/336788/
2019-10-24 09:18:09 +02:00
Thierry Reding
9a42c7c647
drm/tegra: Move drm_dp_link helpers to Tegra DRM
...
During the discussion of patches that enhance the drm_dp_link helpers it
was concluded that these helpers aren't very useful to begin with. After
all other drivers have been converted not to use these helpers anymore,
move these helpers into the last remaining user: Tegra DRM.
If at some point these helpers are deemed more widely useful, they can
be moved out into the DRM DP helpers again.
Signed-off-by: Thierry Reding <treding@nvidia.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20191021143437.1477719-14-thierry.reding@gmail.com
2019-10-23 18:22:10 +02:00
Thierry Reding
79465e0ffe
drm/dp: Add helper to get post-cursor adjustments
...
If the transmitter supports pre-emphasis post cursor2 the sink will
request adjustments in a similar way to how it requests adjustments to
the voltage swing and pre-emphasis settings.
Add a helper to extract these adjustments on a per-lane basis from the
DPCD link status.
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de >
Reviewed-by: Lyude Paul <lyude@redhat.com >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191021143437.1477719-8-thierry.reding@gmail.com
2019-10-23 18:18:48 +02:00
Thierry Reding
7624629d06
drm/dp: Add drm_dp_alternate_scrambler_reset_cap() helper
...
Add a helper to check if the sink supports the eDP alternate scrambler
reset value of 0xfffe.
Reviewed-by: Lyude Paul <lyude@redhat.com >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191021143437.1477719-6-thierry.reding@gmail.com
2019-10-23 18:18:47 +02:00
Thierry Reding
99c830b8b7
drm/dp: Add drm_dp_channel_coding_supported() helper
...
Add a helper to check whether the sink supports ANSI 8B/10B channel
coding capability as specified in ANSI X3.230-1994, clause 11.
Reviewed-by: Lyude Paul <lyude@redhat.com >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191021143437.1477719-5-thierry.reding@gmail.com
2019-10-23 18:18:46 +02:00
Thierry Reding
8cda78b128
drm/dp: Add drm_dp_fast_training_cap() helper
...
Add a helper that checks for the fast training capability given the DPCD
receiver capabilities blob.
Reviewed-by: Lyude Paul <lyude@redhat.com >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191021143437.1477719-4-thierry.reding@gmail.com
2019-10-23 18:18:45 +02:00