Thomas Zimmermann
0cabcf83b2
drm/amdgpu: Track IRQ state in local device state
...
Replace usage of struct drm_device.irq_enabled with the driver's
own state field struct amdgpu_device.irq.installed. The field in
the DRM device structure is considered legacy and should not be
used by KMS drivers.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20210625082222.3845-2-tzimmermann@suse.de
2021-06-29 11:03:17 +02:00
Linus Torvalds
8ec035ac4a
Merge tag 'fallthrough-fixes-clang-5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux
...
Pull fallthrough fixes from Gustavo Silva:
"Fix many fall-through warnings when building with Clang 12.0.0 and
'-Wimplicit-fallthrough' so that we at some point will be able to
enable that warning by default"
* tag 'fallthrough-fixes-clang-5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux: (26 commits)
rxrpc: Fix fall-through warnings for Clang
drm/nouveau/clk: Fix fall-through warnings for Clang
drm/nouveau/therm: Fix fall-through warnings for Clang
drm/nouveau: Fix fall-through warnings for Clang
xfs: Fix fall-through warnings for Clang
xfrm: Fix fall-through warnings for Clang
tipc: Fix fall-through warnings for Clang
sctp: Fix fall-through warnings for Clang
rds: Fix fall-through warnings for Clang
net/packet: Fix fall-through warnings for Clang
net: netrom: Fix fall-through warnings for Clang
ide: Fix fall-through warnings for Clang
hwmon: (max6621) Fix fall-through warnings for Clang
hwmon: (corsair-cpro) Fix fall-through warnings for Clang
firewire: core: Fix fall-through warnings for Clang
braille_console: Fix fall-through warnings for Clang
ipv4: Fix fall-through warnings for Clang
qlcnic: Fix fall-through warnings for Clang
bnxt_en: Fix fall-through warnings for Clang
netxen_nic: Fix fall-through warnings for Clang
...
2021-06-28 20:03:38 -07:00
Linus Walleij
1988e0d841
drm/panel: nt35510: Do not fail if DSI read fails
...
Failing to read the MTP over DSI should not bring down the
system and make us bail out from using the display, it turns
out that this happens when toggling the display off and on,
and that write is often still working so the display output
is just fine. Printing an error is enough.
Tested by killing the Gnome session repeatedly on the
Samsung Skomer.
Fixes: 899f24ed8d ("drm/panel: Add driver for Novatek NT35510-based panels")
Cc: Stephan Gerhold <stephan@gerhold.net >
Reported-by: newbyte@disroot.org
Acked-by: Stefan Hansson <newbyte@disroot.org >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20210603231830.3200040-1-linus.walleij@linaro.org
2021-06-28 18:51:49 +02:00
Thomas Hellström
c90c4c6574
drm/i915: Reinstate the mmap ioctl for some platforms
...
Reinstate the mmap ioctl for all current integrated platforms.
The intention was really to have it disabled for discrete graphics
where we enforce a single mmap mode.
This was reported to break ADL-P with the media stack, which was not the
intention. Although longer term we do still plan to sunset this ioctl
even for integrated, in favour of using mmap_offset instead.
Fixes: 35cbd91eb5 ("drm/i915: Disable mmap ioctl for gen12+")
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com >
Reviewed-by: Matthew Auld <matthew.auld@intel.com >
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Signed-off-by: Matthew Auld <matthew.auld@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210624112914.311984-1-thomas.hellstrom@linux.intel.com
(cherry picked from commit d3f3baa356 )
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2021-06-28 07:43:56 -04:00
Jani Nikula
a193477271
drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc
...
Add a single point of truth for figuring out the primary/secondary crtc
for bigjoiner instead of duplicating the magic pipe +/- 1 in multiple
places.
Also fix the pipe validity checks to properly take non-contiguous pipes
into account. The current checks may theoretically overflow
i915->pipe_to_crtc_mapping[pipe], albeit with a warning, due to fused
off pipes, as INTEL_NUM_PIPES() returns the actual number of pipes on
the platform, and the check is for INTEL_NUM_PIPES() == pipe + 1.
Prefer primary/secondary terminology going forward.
v2:
- Improved abstractions for pipe validity etc.
Fixes: 8a029c113b ("drm/i915/dp: Modify VDSC helpers to configure DSC for Bigjoiner slave")
Fixes: d961eb20ad ("drm/i915/bigjoiner: atomic commit changes for uncompressed joiner")
Cc: Animesh Manna <animesh.manna@intel.com >
Cc: Manasi Navare <manasi.d.navare@intel.com >
Cc: Vandita Kulkarni <vandita.kulkarni@intel.com >
Reviewed-by: Manasi Navare <manasi.dl.navare@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210610090528.20511-1-jani.nikula@intel.com
(cherry picked from commit 17203224f0 )
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2021-06-28 07:43:52 -04:00
Boris Brezillon
3b5ac97ad4
drm/sched: Declare entity idle only after HW submission
...
The panfrost driver tries to kill in-flight jobs on FD close after
destroying the FD scheduler entities. For this to work properly, we
need to make sure the jobs popped from the scheduler entities have
been queued at the HW level before declaring the entity idle, otherwise
we might iterate over a list that doesn't contain those jobs.
Suggested-by: Lucas Stach <l.stach@pengutronix.de >
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Cc: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Steven Price <steven.price@arm.com >
Reviewed-by: Lucas Stach <l.stach@pengutronix.de >
Link: https://patchwork.freedesktop.org/patch/msgid/20210624140850.2229697-1-boris.brezillon@collabora.com
2021-06-28 13:16:49 +02:00
Lucas De Marchi
0bc3a4eda1
drm/i915/display: use max_level to control loop
...
Since we are already loop through the levels to sanitize them, mark what
is the real max_level so it can be used in subsequent loop. This makes
it simpler to later add the adjustment latency to "valid levels". No
change in behavior, just makes the code easier to follow.
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com >
Reviewed-by: Matt Roper <matthew.d.roper@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210622212210.3746133-2-lucas.demarchi@intel.com
2021-06-25 09:04:48 -07:00
Lucas De Marchi
cbeeb00f14
drm/i915/display: fix level 0 adjustement on display ver >= 12
...
We should no longer increment level 0 by 1usec when we have 16Gb DIMMs.
Instead spec says to add 3usec (as opposed to 2) to each valid level
when punit replies 0 to level 0.
So set wm_lv_0_adjust_needed to false for DISPLAY_VER() >= 12 and set
the proper adjustment value when handling WaWmMemoryReadLatency.
Bspec: 49326, 4381
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com >
Reviewed-by: Matt Roper <matthew.d.roper@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210622212210.3746133-1-lucas.demarchi@intel.com
2021-06-25 09:04:08 -07:00
Tejas Upadhyay
53fe9cf2da
drm/i915/selftest: Extend ctx_timestamp ICL workaround to GEN11
...
EHL and JSL are also observing requirement for 80ns interval for
CTX_TIMESTAMP thus extending it to GEN11.
Changes since V1:
- IS_GEN replaced by GRAPHICS_VER - Tvrtko
Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com >
Signed-off-by: Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com >
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210624112250.895410-1-tejaskumarx.surendrakumar.upadhyay@intel.com
2021-06-25 12:08:35 +01:00
Thomas Hellström
d3f3baa356
drm/i915: Reinstate the mmap ioctl for some platforms
...
Reinstate the mmap ioctl for all current integrated platforms.
The intention was really to have it disabled for discrete graphics
where we enforce a single mmap mode.
This was reported to break ADL-P with the media stack, which was not the
intention. Although longer term we do still plan to sunset this ioctl
even for integrated, in favour of using mmap_offset instead.
Fixes: 35cbd91eb5 ("drm/i915: Disable mmap ioctl for gen12+")
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com >
Reviewed-by: Matthew Auld <matthew.auld@intel.com >
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Signed-off-by: Matthew Auld <matthew.auld@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210624112914.311984-1-thomas.hellstrom@linux.intel.com
2021-06-25 10:08:56 +01:00
José Roberto de Souza
c4449742a7
drm/i915/display/adl_p: Implement Wa_16011303918
...
PSR2 is not compatible with DC3CO or VRR in this stepping, so not
enabling PSR2 if VRR will be enabled or not enabling DC3CO if PSR2 is
possible.
BSpec: 54369
Cc: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com >
Cc: Matt Atwood <matthew.s.atwood@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210616203158.118111-5-jose.souza@intel.com
2021-06-24 16:01:43 -07:00
José Roberto de Souza
61e887329e
drm/i915/xelpd: Handle PSR2 SDP indication in the prior scanline
...
In some modes there is not enough time during hblank to transmit PSR2
SDP plus the pixels CRC SDP, if such case happens PSR2 needs to be
disabled.
But eDP spec 1.4b allows to transmit PSR2 SDP in a prior scanline
alone and than later the CRC SDP, allowing PSR2 to be enabled in
those hblank constrained modes.
BSpec: 49274
Cc: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210616203158.118111-4-jose.souza@intel.com
2021-06-24 16:01:43 -07:00
José Roberto de Souza
1d53ccdc40
drm/i915/display/adl_p: Implement Wa_16011168373
...
Another WA that is required for PSR2.
BSpec: 54369
Cc: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com >
Cc: Matt Atwood <matthew.s.atwood@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210616203158.118111-3-jose.souza@intel.com
2021-06-24 16:01:42 -07:00
José Roberto de Souza
061093d75a
drm/i915/display/adl_p: Implement Wa_22012278275
...
The PSR2_CTL io buffer wake and fast wake values do not match
expected in pre production hardware, so here adding a table that
matches with HW to program it with values that HW expect.
Cc: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210616203158.118111-2-jose.souza@intel.com
2021-06-24 16:01:41 -07:00
José Roberto de Souza
0e20b769c4
drm/i915/display/psr: Handle SU Y granularity
...
We were only handling X and width granularity, what was causing issues
when sink had a granularity different than 4.
While at it, renaming su_x_granularity to su_w_granularity to better
match reality.
Cc: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Reviewed-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210616203158.118111-1-jose.souza@intel.com
2021-06-24 16:01:40 -07:00
Dave Airlie
5e0e7a4076
Merge tag 'drm-misc-fixes-2021-06-24' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes
...
A DMA address check for nouveau, an error code return fix for kmb, fixes
to wait for a moving fence after pinning the BO for amdgpu, nouveau and
radeon, a crtc and async page flip fix for atmel-hlcdc and a cpu hang
fix for vc4.
Signed-off-by: Dave Airlie <airlied@redhat.com >
From: Maxime Ripard <maxime@cerno.tech >
Link: https://patchwork.freedesktop.org/patch/msgid/20210624190353.wyizoil3wqrrxz5d@gilmour
2021-06-25 06:05:13 +10:00
Ville Syrjälä
f15f01a799
drm/i915: s/intel_crtc/crtc/
...
Clear out the straggler 'intel_crtc' variables.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210609085632.22026-7-ville.syrjala@linux.intel.com
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2021-06-24 22:05:10 +03:00
Ville Syrjälä
08dfd243ab
drm/i915: Clean up intel_fbdev_init_bios() a bit
...
Sort out the mess with the local variables in
intel_fbdev_init_bios(). Get rid of all aliasing pointers,
use standard naming/types, and introduce a few more locals
in the loops to avoid the hard to read long struct walks.
While at we also polish the debugs a bit to use the
canonical [CRTC:%d:%s] style.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210609085632.22026-6-ville.syrjala@linux.intel.com
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2021-06-24 22:03:58 +03:00
Ville Syrjälä
670c89eb6d
drm/i915: Clean up pre-skl wm calling convention
...
Just pass the full atomic state+crtc to the pre-skl watermark
functions, and clean up the types/variable names around the area.
Note that having both .compute_pipe_wm() and .compute_intermediate_wm()
is entirely redundant now. We could unify them to a single vfunc.
But let's do this one step at a time.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210609085632.22026-5-ville.syrjala@linux.intel.com
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2021-06-24 22:03:38 +03:00
Ville Syrjälä
7397bd54da
drm/i915: Clean up intel_find_initial_plane_obj() a bit
...
Sort out the mess with the local variables in
intel_find_initial_plane_obj(). Get rid of all aliasing pointers
and use standard naming/types.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210609085632.22026-4-ville.syrjala@linux.intel.com
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2021-06-24 21:58:50 +03:00
Ville Syrjälä
e969c2da0e
drm/i915: Clean up intel_get_load_detect_pipe() a bit
...
Sort out the mess with the local variables in
intel_get_load_detect_pipe(). Get rid of all aliasing pointers
and use standard naming/types.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210609085632.22026-3-ville.syrjala@linux.intel.com
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2021-06-24 21:57:54 +03:00
Ville Syrjälä
f07d7400ec
drm/i915: Stop hand rolling drm_crtc_mask()
...
Use drm_crtc_mask() instead of hand rolling it.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210609085632.22026-2-ville.syrjala@linux.intel.com
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2021-06-24 21:57:30 +03:00
Ville Syrjälä
46b2c40e0a
drm/i915/fbc: Allocate llb before cfb
...
Since the llb allocation has a fixed size, let's grab it before
the potentially variable sized cfb. That should avoid some allocation
failure cases once we allow different compression ratios for FBC1.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210610183237.3920-10-ville.syrjala@linux.intel.com
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
2021-06-24 21:50:20 +03:00
Ville Syrjälä
8538d78e26
drm/i915/fbc: Make the cfb allocation loop a bit more legible
...
Write the cfb allocation loop as an actual loop instead of some
hard to read goto thing.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210610183237.3920-9-ville.syrjala@linux.intel.com
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
2021-06-24 21:49:54 +03:00
Ville Syrjälä
c48f67ee91
drm/i915/fbc: Extract intel_fbc_stolen_end()
...
Declutter find_compression_limit() a bit by extracting
intel_fbc_stolen_end().
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210610183237.3920-8-ville.syrjala@linux.intel.com
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
2021-06-24 21:48:52 +03:00
Ville Syrjälä
9c8a442d9d
drm/i915/fbc: Introduce g4x_dpfc_ctl_limit()
...
Exctract the limit->register value conversion into a common
helper.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210610183237.3920-7-ville.syrjala@linux.intel.com
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
2021-06-24 21:48:35 +03:00
Ville Syrjälä
d502f6c438
drm/i915/fbc: Handle 16bpp compression limit better
...
The limit++ for the 16bpp case is nonsense since the
compression limit is always supposed to be power of two.
Replace it with <<=1.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210610183237.3920-6-ville.syrjala@linux.intel.com
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
2021-06-24 21:48:02 +03:00
Ville Syrjälä
337e54f77c
drm/i915/fbc: Don't pass around the mm node
...
No point in passing the mm node explicitly to find_compression_limit()
since it's always the same node for the cfb.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210610183237.3920-5-ville.syrjala@linux.intel.com
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
2021-06-24 21:47:37 +03:00
Ville Syrjälä
45a321a7ee
drm/i915/fbc: Embed the compressed_llb node
...
Not much point in dynamically allocating the line length
buffer mm node that I can see. Just embed it directly like
we do the for the cfb node. One less failure point to worry
about.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210610183237.3920-4-ville.syrjala@linux.intel.com
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
2021-06-24 21:47:18 +03:00
Ville Syrjälä
5826d9f211
drm/i915/fbc: Extract intel_fbc_program_cfb()
...
Extract the CFB (+LLB) programming into a separate function.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210610183237.3920-3-ville.syrjala@linux.intel.com
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
2021-06-24 21:46:54 +03:00
Ville Syrjälä
0ba1d03cd8
drm/i915/fbc: s/threshold/limit/
...
Let's call the compression limit the limit.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210610183237.3920-2-ville.syrjala@linux.intel.com
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
2021-06-24 21:46:17 +03:00
Ville Syrjälä
51565971cd
drm/i915: Add the missing adls vswing tables
...
adls is supposed to use special buf trans tables. Add what's
missing.
v2: Drop the RBR/HBR table since it's the same as for tgl
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210608073603.2408-18-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
2021-06-24 21:37:17 +03:00
Ville Syrjälä
150712dfd7
drm/i915: Nuke buf_trans hdmi functions
...
All the foo_get_buf_trans_hdmi() functions just return a single table.
Remove the pointless wrappers.
v2: Handle adl-p
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210608073603.2408-17-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
2021-06-24 21:37:07 +03:00
Ville Syrjälä
2b3bc165d0
drm/i915: Clean up jsl/ehl buf trans functions
...
The jsl/ehl buf trans functions are needlessly complicated.
Simplify them.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210608073603.2408-16-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
2021-06-24 21:36:36 +03:00
Ville Syrjälä
019d8146aa
drm/i915: Fix ehl edp hbr2 vswing table
...
EHL is supposed to use special buf trans values for eDP HBR2+.
Add such a table.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210608073603.2408-15-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
2021-06-24 21:28:43 +03:00
Thomas Hellström
32b7cf51a4
drm/i915/ttm: Use TTM for system memory
...
For discrete, use TTM for both cached and WC system memory. That means
we currently rely on the TTM memory accounting / shrinker. For cached
system memory we should consider remaining shmem-backed, which can be
implemented from our ttm_tt_populate callback. We can then also reuse our
own very elaborate shrinker for that memory.
If an object is evicted to a gem allowable region, we will now consider
the object migrated, and we flip the gem region and move the object to a
different region list. Since we are now changing gem regions, we can't
any longer rely on the CONTIGUOUS flag being set based on the region
min page size, so remove that flag update. If we want to reintroduce it,
we need to put it in the mutable flags.
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com >
Reviewed-by: Matthew Auld <matthew.auld@intel.com >
Signed-off-by: Matthew Auld <matthew.auld@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210624084240.270219-4-thomas.hellstrom@linux.intel.com
2021-06-24 18:51:01 +01:00
Thomas Hellström
3c2b8f326e
drm/i915/ttm: Adjust gem flags and caching settings after a move
...
After a TTM move or object init we need to update the i915 gem flags and
caching settings to reflect the new placement. Currently caching settings
are not changed during the lifetime of an object, although that might
change moving forward if we run into performance issues or issues with
WC system page allocations.
Also introduce gpu_binds_iomem() and cpu_maps_iomem() to clean up the
various ways we previously used to detect this.
Finally, initialize the TTM object reserved to be able to update
flags and caching before anyone else gets hold of the object.
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com >
Reviewed-by: Matthew Auld <matthew.auld@intel.com >
Signed-off-by: Matthew Auld <matthew.auld@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210624084240.270219-3-thomas.hellstrom@linux.intel.com
2021-06-24 18:51:00 +01:00
Thomas Hellström
0ff375759f
drm/i915: Update object placement flags to be mutable
...
The object ops i915_GEM_OBJECT_HAS_IOMEM and the object
I915_BO_ALLOC_STRUCT_PAGE flags are considered immutable by
much of our code. Introduce a new mem_flags member to hold these
and make sure checks for these flags being set are either done
under the object lock or with pages properly pinned. The flags
will change during migration under the object lock.
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com >
Reviewed-by: Matthew Auld <matthew.auld@intel.com >
Signed-off-by: Matthew Auld <matthew.auld@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210624084240.270219-2-thomas.hellstrom@linux.intel.com
2021-06-24 18:50:56 +01:00
Christian König
d330099115
drm/nouveau: fix dma_address check for CPU/GPU sync
...
AGP for example doesn't have a dma_address array.
Signed-off-by: Christian König <christian.koenig@amd.com >
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210614110517.1624-1-christian.koenig@amd.com
2021-06-24 15:40:44 +02:00
Daniel Vetter
7150185900
drm/tiny: drm_gem_simple_display_pipe_prepare_fb is the default
...
Goes through all the drivers and deletes the default hook since it's
the default now.
Acked-by: David Lechner <david@lechnology.com >
Acked-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com >
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Joel Stanley <joel@jms.id.au >
Cc: Andrew Jeffery <andrew@aj.id.au >
Cc: "Noralf Trønnes" <noralf@tronnes.org >
Cc: Linus Walleij <linus.walleij@linaro.org >
Cc: Emma Anholt <emma@anholt.net >
Cc: David Lechner <david@lechnology.com >
Cc: Kamlesh Gurudasani <kamlesh.gurudasani@gmail.com >
Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com >
Cc: Daniel Vetter <daniel.vetter@ffwll.ch >
Cc: Maxime Ripard <mripard@kernel.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Alex Deucher <alexander.deucher@amd.com >
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Cc: linux-aspeed@lists.ozlabs.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: xen-devel@lists.xenproject.org
Link: https://patchwork.freedesktop.org/patch/msgid/20210622165511.3169559-14-daniel.vetter@ffwll.ch
2021-06-24 15:40:11 +02:00
Daniel Vetter
40cfc7fce4
drm/simple-helper: drm_gem_simple_display_pipe_prepare_fb as default
...
It's tedious to review this all the time, and my audit showed that
arcpgu actually forgot to set this.
Make this the default and stop worrying.
Again I sprinkled WARN_ON_ONCE on top to make sure we don't have
strange combinations of hooks: cleanup_fb without prepare_fb doesn't
make sense, and since simpler drivers are all new they better be GEM
based drivers.
v2: Warn and bail when it's _not_ a GEM driver (Noralf)
v3: It's neither ... nor, not not (Sam)
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Noralf Trønnes <noralf@tronnes.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: Maxime Ripard <mripard@kernel.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Cc: David Airlie <airlied@linux.ie >
Cc: Daniel Vetter <daniel@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20210623162456.3373469-1-daniel.vetter@ffwll.ch
2021-06-24 15:39:46 +02:00
Daniel Vetter
942d8344d5
drm/omap: Follow implicit fencing in prepare_fb
...
I guess no one ever tried running omap together with lima or panfrost,
not even sure that's possible. Anyway for consistency, fix this.
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Tomi Valkeinen <tomba@kernel.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20210622165511.3169559-12-daniel.vetter@ffwll.ch
2021-06-24 15:39:37 +02:00
Daniel Vetter
f8bd3dbb9e
drm/vram-helpers: Create DRM_GEM_VRAM_PLANE_HELPER_FUNCS
...
Like we have for the shadow helpers too, and roll it out to drivers.
Acked-by: Thomas Zimmermann <tzimmermann@suse.de >
Acked-by: Tian Tao <tiantao6@hisilicon.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Dave Airlie <airlied@redhat.com >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Cc: Hans de Goede <hdegoede@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: Tian Tao <tiantao6@hisilicon.com >
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20210622165511.3169559-11-daniel.vetter@ffwll.ch
2021-06-24 15:37:08 +02:00
Daniel Vetter
1a8961307a
drm/armada: Remove prepare/cleanup_fb hooks
...
All they do is refcount the fb, which the atomic helpers already do.
This is was necessary with the legacy helpers and I guess just carry
over in the conversion. drm_plane_state always has a full reference
for its ->fb pointer during its entire lifetime,
see __drm_atomic_helper_plane_destroy_state()
Acked-by: Maxime Ripard <maxime@cerno.tech >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Russell King <linux@armlinux.org.uk >
Link: https://patchwork.freedesktop.org/patch/msgid/20210622165511.3169559-10-daniel.vetter@ffwll.ch
2021-06-24 15:35:50 +02:00
Daniel Vetter
29a8408427
drm/<driver>: drm_gem_plane_helper_prepare_fb is now the default
...
No need to set it explicitly.
Acked-by: Philipp Zabel <p.zabel@pengutronix.de >
Acked-by: Heiko Stuebner <heiko@sntech.de >
Acked-by: Paul Cercueil <paul@crapouillou.net >
Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com >
Acked-by: Chun-Kuang Hu <chunkuang.hu@kernel.org >
Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com >
Acked-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com >
Acked-by: Philippe Cornu <philippe.cornu@foss.st.com >
Acked-by: Lucas Stach <l.stach@pengutronix.de >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com >
Cc: Lucas Stach <l.stach@pengutronix.de >
Cc: Shawn Guo <shawnguo@kernel.org >
Cc: Sascha Hauer <s.hauer@pengutronix.de >
Cc: Pengutronix Kernel Team <kernel@pengutronix.de >
Cc: Fabio Estevam <festevam@gmail.com >
Cc: NXP Linux Team <linux-imx@nxp.com >
Cc: Philipp Zabel <p.zabel@pengutronix.de >
Cc: Paul Cercueil <paul@crapouillou.net >
Cc: Chun-Kuang Hu <chunkuang.hu@kernel.org >
Cc: Matthias Brugger <matthias.bgg@gmail.com >
Cc: Neil Armstrong <narmstrong@baylibre.com >
Cc: Kevin Hilman <khilman@baylibre.com >
Cc: Jerome Brunet <jbrunet@baylibre.com >
Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com >
Cc: Marek Vasut <marex@denx.de >
Cc: Stefan Agner <stefan@agner.ch >
Cc: Sandy Huang <hjc@rock-chips.com >
Cc: "Heiko Stübner" <heiko@sntech.de >
Cc: Yannick Fertre <yannick.fertre@foss.st.com >
Cc: Philippe Cornu <philippe.cornu@foss.st.com >
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org >
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com >
Cc: Alexandre Torgue <alexandre.torgue@foss.st.com >
Cc: Maxime Ripard <mripard@kernel.org >
Cc: Chen-Yu Tsai <wens@csie.org >
Cc: Jernej Skrabec <jernej.skrabec@gmail.com >
Cc: Jyri Sarha <jyri.sarha@iki.fi >
Cc: Tomi Valkeinen <tomba@kernel.org >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-stm32@st-md-mailman.stormreply.com
Cc: linux-sunxi@lists.linux.dev
Link: https://patchwork.freedesktop.org/patch/msgid/20210622165511.3169559-9-daniel.vetter@ffwll.ch
2021-06-24 15:35:24 +02:00
Daniel Vetter
7d30963fd1
drm/atomic-helper: make drm_gem_plane_helper_prepare_fb the default
...
There's a bunch of atomic drivers who don't do this quite correctly,
luckily most of them aren't in wide use or people would have noticed
the tearing.
By making this the default we avoid the constant audit pain and can
additionally remove a ton of lines from vfuncs for a bit more clarity
in smaller drivers.
While at it complain if there's a cleanup_fb hook but no prepare_fb
hook, because that makes no sense. I haven't found any driver which
violates this, but better safe than sorry.
Subsequent patches will reap the benefits.
v2: It's neither ... nor, not not (Sam)
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: Maxime Ripard <mripard@kernel.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Cc: David Airlie <airlied@linux.ie >
Cc: Daniel Vetter <daniel@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20210623162200.3372056-1-daniel.vetter@ffwll.ch
2021-06-24 15:35:13 +02:00
Daniel Vetter
d7fdae5991
drm/gem: Tiny kernel clarification for drm_gem_fence_array_add
...
Spotted while trying to convert panfrost to these.
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: "Christian König" <christian.koenig@amd.com >
Cc: Lucas Stach <l.stach@pengutronix.de >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: Maxime Ripard <mripard@kernel.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Cc: David Airlie <airlied@linux.ie >
Cc: Daniel Vetter <daniel@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20210622165511.3169559-15-daniel.vetter@ffwll.ch
2021-06-24 14:53:42 +02:00
Laurent Pinchart
379d342646
drm/bridge: ti-sn65dsi86: Split connector creation to a function
...
To prepare for making connector creation option, move connector creation
out of ti_sn_bridge_attach to a separate function.
No functional change intended.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
Reviewed-by: Stephen Boyd <swboyd@chromium.org >
Reviewed-by: Douglas Anderson <dianders@chromium.org >
Signed-off-by: Robert Foss <robert.foss@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20210624000304.16281-7-laurent.pinchart+renesas@ideasonboard.com
2021-06-24 13:38:44 +02:00
Laurent Pinchart
77674e722f
drm/bridge: ti-sn65dsi86: Group code in sections
...
Reorganize the functions in sections, related to connector operations,
bridge operations, AUX adapter, GPIO controller and probe & remove.
This prepares for proper support of DRM_BRIDGE_ATTACH_NO_CONNECTOR that
will add more functions, to ensure that the code will stay readable.
No functional change intended.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
Reviewed-by: Stephen Boyd <swboyd@chromium.org >
Reviewed-by: Douglas Anderson <dianders@chromium.org >
Signed-off-by: Robert Foss <robert.foss@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20210624000304.16281-6-laurent.pinchart+renesas@ideasonboard.com
2021-06-24 13:38:43 +02:00
Laurent Pinchart
4e5763f03e
drm/bridge: ti-sn65dsi86: Wrap panel with panel-bridge
...
To simplify interfacing with the panel, wrap it in a panel-bridge and
let the DRM bridge helpers handle chaining of operations.
This also prepares for support of DRM_BRIDGE_ATTACH_NO_CONNECTOR, which
requires all components in the display pipeline to be represented by
bridges.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com >
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com >
Signed-off-by: Robert Foss <robert.foss@linaro.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20210624000304.16281-5-laurent.pinchart+renesas@ideasonboard.com
2021-06-24 13:38:42 +02:00