linux-stable/drivers/gpu/drm
Simon Ser 98122e63a7 drm/amdgpu: check tiling flags when creating FB on GFX8-
On GFX9+, format modifiers are always enabled and ensure the
frame-buffers can be scanned out at ADDFB2 time.

On GFX8-, format modifiers are not supported and no other check
is performed. This means ADDFB2 IOCTLs will succeed even if the
tiling isn't supported for scan-out, and will result in garbage
displayed on screen [1].

Fix this by adding a check for tiling flags for GFX8 and older.
The check is taken from radeonsi in Mesa (see how is_displayable
is populated in gfx6_compute_surface).

Changes in v2: use drm_WARN_ONCE instead of drm_WARN (Michel)

[1]: https://github.com/swaywm/wlroots/issues/3185

Signed-off-by: Simon Ser <contact@emersion.fr>
Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Harry Wentland <hwentlan@amd.com>
Cc: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
Cc: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
2021-09-28 14:40:19 -04:00
..
amd drm/amdgpu: check tiling flags when creating FB on GFX8- 2021-09-28 14:40:19 -04:00
arm drm/arm/hdlcd: Convert to Linux IRQ interfaces 2021-08-10 20:00:51 +02:00
armada drm/aperture: Pass DRM driver structure instead of driver name 2021-07-01 11:11:55 +02:00
aspeed
ast drm/ast: Use offset-adjusted shadow-plane mappings 2021-08-08 20:27:06 +02:00
atmel-hlcdc drm/atmel-hlcdc: Convert to Linux IRQ interfaces 2021-08-10 20:00:58 +02:00
bridge drm/bridge: ti-sn65dsi86: Avoid creating multiple connectors 2021-08-12 09:56:09 -07:00
etnaviv drm/etnaviv: add missing MMU context put when reaping MMU mapping 2021-09-16 10:35:37 +02:00
exynos drm/exynos: Always initialize mapping in exynos_drm_register_dma() 2021-08-22 01:56:39 +09:00
fsl-dcu drm/fsl-dcu: Convert to Linux IRQ interfaces 2021-08-10 20:13:25 +02:00
gma500 drm/gma500: Convert to Linux IRQ interfaces 2021-08-10 20:13:32 +02:00
gud drm/gud: Get offset-adjusted mapping from drm_gem_fb_vmap() 2021-08-08 20:27:24 +02:00
hisilicon drm-misc-next for v5.15: 2021-07-30 14:52:00 +10:00
hyperv drm/hyperv: Use offset-adjusted shadow-plane mappings 2021-08-08 20:27:27 +02:00
i2c
i810 drm: IRQ midlayer is now legacy 2021-08-10 20:14:01 +02:00
i915 drm/i915: Free all DMC payloads 2021-09-21 13:36:34 +03:00
imx drm for v5.15-rc1 2021-09-01 11:26:46 -07:00
ingenic drm/ingenic: Use standard drm_atomic_helper_commit_tail 2021-08-11 15:49:15 +02:00
kmb drm for v5.15-rc1 2021-09-01 11:26:46 -07:00
lib
lima drm-misc-next for v5.15: 2021-07-21 11:58:28 +10:00
mcde drm-misc-next for v5.15: 2021-07-30 14:52:00 +10:00
mediatek drm for v5.15-rc1 2021-09-01 11:26:46 -07:00
meson drm for v5.15-rc1 2021-09-01 11:26:46 -07:00
mga drm: IRQ midlayer is now legacy 2021-08-10 20:14:01 +02:00
mgag200 drm/mgag200: Fix uninitialized variable delta 2021-08-18 20:47:59 +02:00
msm Kbuild updates for v5.15 2021-09-03 15:33:47 -07:00
mxsfb drm/mxsfb: Convert to Linux IRQ interfaces 2021-08-10 20:13:45 +02:00
nouveau drm/nouveau/nvkm: Replace -ENOSYS with -ENODEV 2021-09-20 11:05:49 -07:00
omapdrm drm/bridge: Centralize error message when bridge attach fails 2021-07-28 16:33:12 +03:00
panel drm for v5.15-rc1 2021-09-01 11:26:46 -07:00
panfrost drm/panfrost: Clamp lock region to Bifrost minimum 2021-08-25 15:40:19 +01:00
pl111 drm/pl111: Remove unused including <linux/version.h> 2021-07-31 20:52:01 +02:00
qxl drm-misc-next for v5.15: 2021-07-21 11:58:28 +10:00
r128 drm: IRQ midlayer is now legacy 2021-08-10 20:14:01 +02:00
radeon drm/radeon: pass drm dev radeon_agp_head_init directly 2021-09-16 09:56:24 -04:00
rcar-du drm: rcar-du: lvds: Use dev_err_probe() 2021-07-28 16:33:32 +03:00
rockchip drm/rockchip: cdn-dp-core: Make cdn_dp_core_resume __maybe_unused 2021-09-16 12:02:33 -07:00
savage
scheduler drm/sched: Allow using a dedicated workqueue for the timeout/fault tdr 2021-07-01 08:53:25 +02:00
selftests drm: Fix oops in damage self-tests by mocking damage property 2021-08-02 11:15:11 +02:00
shmobile drm/shmobile: Convert to Linux IRQ interfaces 2021-07-25 11:01:12 +02:00
sis
sti drm/bridge: Centralize error message when bridge attach fails 2021-07-28 16:33:12 +03:00
stm drm/stm: dsi: compute the transition time from LP to HS and back 2021-07-19 15:35:55 +02:00
sun4i drm/bridge: Centralize error message when bridge attach fails 2021-07-28 16:33:12 +03:00
tdfx
tegra drm/tegra: uapi: Fix wrong mapping end address in case of disabled IOMMU 2021-09-16 18:06:51 +02:00
tidss drm/tidss: Convert to Linux IRQ interfaces 2021-08-10 20:13:49 +02:00
tilcdc drm/tilcdc: Convert to Linux IRQ interfaces 2021-08-10 20:13:53 +02:00
tiny drm/simpledrm: Use offset-adjusted shadow-plane mapping 2021-08-08 20:27:40 +02:00
ttm drm/ttm: fix type mismatch error on sparc64 2021-09-14 13:36:02 -07:00
tve200
udl drm/udl: Use offset-adjusted shadow-plane mapping 2021-08-08 20:27:44 +02:00
v3d drm/v3d: Expose performance counters to userspace 2021-07-21 00:19:59 +01:00
vboxvideo drm/vbox: Use offset-adjusted shadow-plane mappings 2021-08-08 20:27:49 +02:00
vc4 Revert "drm/vc4: hdmi: Remove drm_encoder->crtc usage" 2021-09-19 10:11:53 -07:00
vgem Revert "drm/vgem: Implement mmap as GEM object function" 2021-07-13 13:15:52 +02:00
via drm: IRQ midlayer is now legacy 2021-08-10 20:14:01 +02:00
virtio drm/virtio: set non-cross device blob uuid_state 2021-08-12 14:58:31 +02:00
vkms drm/vkms: Use offset-adjusted shadow-plane mappings and output 2021-08-08 20:27:52 +02:00
vmwgfx RDMA v5.15 merge window Pull Request 2021-09-02 14:47:21 -07:00
xen
xlnx drm/xlnx/zynqmp_disp: Fix incorrectly named enum 'zynqmp_disp_layer_id' 2021-08-09 02:28:05 +03:00
zte drm/zte: Don't set struct drm_device.irq_enabled 2021-06-29 15:40:53 +02:00
drm_agpsupport.c
drm_aperture.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_atomic.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_atomic_helper.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_atomic_state_helper.c
drm_atomic_uapi.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_auth.c drm: add lockdep assert to drm_is_current_master_locked 2021-08-05 12:08:15 +02:00
drm_blend.c
drm_bridge.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_bridge_connector.c
drm_bufs.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_cache.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_client.c
drm_client_modeset.c
drm_color_mgmt.c
drm_connector.c drm: avoid circular locks in drm_mode_getconnector 2021-07-20 20:13:56 +02:00
drm_context.c
drm_crtc.c
drm_crtc_helper.c
drm_crtc_helper_internal.h
drm_crtc_internal.h Backmerge remote-tracking branch 'drm/drm-next' into drm-misc-next 2021-07-27 12:48:17 +02:00
drm_damage_helper.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_debugfs.c drm: avoid blocking in drm_clients_info's rcu section 2021-07-20 20:14:42 +02:00
drm_debugfs_crc.c
drm_displayid.c
drm_dma.c
drm_dp_aux_bus.c Bus: Make remove callback return void tag 2021-08-11 08:47:08 +10:00
drm_dp_aux_dev.c
drm_dp_cec.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_dp_mst_topology.c drm/dp_mst: Fix return code on sideband message failure 2021-07-27 18:58:28 -04:00
drm_dp_mst_topology_internal.h
drm_drv.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_dsc.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_dumb_buffers.c
drm_edid.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_edid_load.c
drm_encoder.c
drm_encoder_slave.c
drm_fb_cma_helper.c
drm_fb_helper.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_file.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_flip_work.c
drm_format_helper.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_fourcc.c
drm_framebuffer.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_gem.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_gem_atomic_helper.c drm/gem: Provide offset-adjusted framebuffer BO mappings 2021-08-08 20:26:16 +02:00
drm_gem_cma_helper.c
drm_gem_framebuffer_helper.c drm/gem: Provide offset-adjusted framebuffer BO mappings 2021-08-08 20:26:16 +02:00
drm_gem_shmem_helper.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_gem_ttm_helper.c
drm_gem_vram_helper.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_hashtab.c
drm_hdcp.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_internal.h
drm_ioc32.c drm: Copy drm_wait_vblank to user before returning 2021-08-17 13:56:03 -04:00
drm_ioctl.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_irq.c drm: IRQ midlayer is now legacy 2021-08-10 20:14:01 +02:00
drm_kms_helper_common.c
drm_lease.c drm: clean up unused kerneldoc in drm_lease.c 2021-07-30 11:55:41 +02:00
drm_legacy.h
drm_legacy_misc.c drm: IRQ midlayer is now legacy 2021-08-10 20:14:01 +02:00
drm_lock.c
drm_managed.c
drm_memory.c
drm_mipi_dbi.c drm/mipi-dbi: Use framebuffer dma-buf helpers 2021-07-23 20:17:59 +02:00
drm_mipi_dsi.c
drm_mm.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_mode_config.c
drm_mode_object.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_modes.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c drm/of: free the iterator object on failure 2021-07-15 10:54:04 +01:00
drm_panel.c drm/dp: Move panel DP AUX backlight support to drm_dp_helper 2021-07-13 06:38:37 -07:00
drm_panel_orientation_quirks.c
drm_pci.c
drm_plane.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_plane_helper.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_prime.c RDMA v5.15 merge window Pull Request 2021-09-02 14:47:21 -07:00
drm_print.c isystem: ship and use stdarg.h 2021-08-19 09:02:55 +09:00
drm_probe_helper.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_property.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_rect.c
drm_scatter.c
drm_scdc_helper.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_self_refresh_helper.c
drm_simple_kms_helper.c drm/simple-kms: Support custom CRTC state 2021-08-08 20:14:08 +02:00
drm_syncobj.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_sysfs.c
drm_trace.h
drm_trace_points.c
drm_vblank.c drm: IRQ midlayer is now legacy 2021-08-10 20:14:01 +02:00
drm_vblank_work.c
drm_vm.c
drm_vma_manager.c drm: Fix typo in comments 2021-08-02 10:19:43 +02:00
drm_writeback.c
Kconfig drm: amdgpu: remove obsolete reference to config CHASH 2021-08-18 18:26:10 -04:00
Makefile drm/bochs: Move to tiny/ 2021-07-05 08:54:44 +02:00