linux/drivers/gpu/drm
Alyssa Rosenzweig 3e2926f875 drm/panfrost: Add AFBC_FEATURES parameter
The value of the AFBC_FEATURES register is required by userspace to
determine AFBC support on Bifrost. A user on our IRC channel (#panfrost)
reported a workload that raised a fault on one system's Mali G31 but
worked flawlessly with another system's Mali G31. We determined the
cause to be missing AFBC support on one vendor's Mali implementation --
it turns out AFBC is optional on Bifrost!

Whether AFBC is supported or not is exposed in the AFBC_FEATURES
register on Bifrost, which reads back as 0 on Midgard. A zero value
indicates AFBC is fully supported, provided the architecture itself
supports AFBC, allowing backwards-compatibility with Midgard. Bits 0 and
15 indicate that AFBC support is absent for texturing and rendering
respectively.

The user experiencing the fault reports that AFBC_FEATURES reads back
0x10001 on their system, confirming the architectural lack of AFBC.
Userspace needs this parameter to know to disable AFBC on that
chip, and perhaps others.

v2: Fix typo from copy-paste fail.

v3: Bump the UABI version. This commit was cherry-picked from another
series so chalking this up to a rebase fail.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Signed-off-by: Steven Price <steven.price@arm.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210604130011.3203-1-alyssa.rosenzweig@collabora.com
2021-06-04 16:16:04 +01:00
..
amd drm/ttm: flip the switch for driver allocated resources v2 2021-06-04 15:16:46 +02:00
arm drm/arm/malidp: Always list modifiers 2021-05-06 11:43:46 +02:00
armada drm/aperture: Convert drivers to aperture interfaces 2021-04-14 09:00:04 +02:00
aspeed drm/gem: Move drm_gem_fb_prepare_fb() to GEM atomic helpers 2021-02-23 08:54:22 +01:00
ast drm/ast: Remove reference to struct drm_device.pdev 2021-04-29 21:19:10 +02:00
atmel-hlcdc drm: Use state helper instead of the plane state pointer 2021-02-25 08:05:28 +01:00
bochs drm/bochs: Add screen blanking support 2021-04-27 14:14:12 +02:00
bridge drm: bridge: cdns-mhdp8546: Fix PM reference leak in 2021-05-31 15:50:59 +02:00
etnaviv Merge drm/drm-fixes into drm-next 2021-04-13 23:15:09 +02:00
exynos drm/exynos/exynos_drm_ipp: Fix documentation for 'exynos_drm_ipp_get_{caps,res}_ioctl()' 2021-06-03 13:33:01 +02:00
fsl-dcu drm: Use state helper instead of the plane state pointer 2021-02-25 08:05:28 +01:00
gma500 drm/gma500: update comment of psb_spank() 2021-05-06 14:25:44 +02:00
gud drm/gud: cleanup coding style a bit 2021-04-27 13:13:19 +02:00
hisilicon drm/hisilicon/kirin: Use the correct HiSilicon copyright 2021-05-26 21:19:28 +02:00
i2c
i810 drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
i915 drm/dp_mst: Use kHz as link rate units when settig source max link caps at init 2021-05-27 15:30:59 -04:00
imx drm/imx: fixes, dma-fence annotation, and color encoding/range plane properties 2021-05-20 10:54:31 +10:00
ingenic drm/ingenic: Add option to alloc cached GEM buffers 2021-05-25 11:42:53 +01:00
kmb drm: fix semicolon.cocci warnings 2021-05-12 11:31:28 +02:00
lib
lima drm for 5.13-rc1 2021-04-28 10:01:40 -07:00
mcde drm/mcde: Remove redundant error printing in mcde_dsi_probe() 2021-05-22 01:58:27 +02:00
mediatek drm/mediatek/mtk_disp_rdma: Strip and demote non-conformant kernel-doc header 2021-06-03 13:28:57 +02:00
meson drm/meson: dw-hdmi: disable DW-HDMI CEC sub-driver 2021-04-20 17:22:44 +02:00
mga drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
mgag200 drm/format-helper: Pass destination pitch to drm_fb_memcpy_dstclip() 2021-05-01 12:45:03 +02:00
msm drm/msm/a6xx: add CONFIG_QCOM_LLCC dependency 2021-06-03 10:47:55 +02:00
mxsfb drm/mxsfb: Don't select DRM_KMS_FB_HELPER 2021-04-26 12:42:57 +02:00
nouveau drm/ttm: flip the switch for driver allocated resources v2 2021-06-04 15:16:46 +02:00
omapdrm Merge drm/drm-fixes into drm-next 2021-04-13 23:15:09 +02:00
panel drm/panel: add rotation support for Elida KD35T133 panels 2021-06-03 15:05:39 +02:00
panfrost drm/panfrost: Add AFBC_FEATURES parameter 2021-06-04 16:16:04 +01:00
pl111 drm/pl111: Actually fix CONFIG_VEXPRESS_CONFIG depends 2021-06-04 15:02:26 +02:00
qxl drm/ttm: flip over the range manager to self allocated nodes 2021-06-04 15:16:45 +02:00
r128 drm: fix leaked dma handles after removing drm_pci_free 2021-05-26 21:18:13 +02:00
radeon drm/ttm: flip over the range manager to self allocated nodes 2021-06-04 15:16:45 +02:00
rcar-du Merge drm/drm-fixes into drm-next 2021-04-13 23:15:09 +02:00
rockchip drm/rockchip: vop: add PX30 version info 2021-05-28 20:30:35 +02:00
savage drm/savage: Remove references to struct drm_device.pdev 2021-05-03 19:48:30 +02:00
scheduler drm/sched: Avoid data corruptions 2021-05-19 23:50:28 -04:00
selftests drm/selftests/test-drm_dp_mst_helper: Move 'sideband_msg_req_encode_decode' onto the heap 2020-11-17 20:08:29 +01:00
shmobile drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
sis drm/sis: Remove references to struct drm_device.pdev 2021-05-03 19:48:33 +02:00
sti drm/sti/sti_hqvdp: Fix incorrectly named function 'sti_hqvdp_vtg_cb()' 2021-06-03 13:29:32 +02:00
stm drm/stm: Don't set allow_fb_modifiers explicitly 2021-05-06 11:43:50 +02:00
sun4i drm/aperture: Convert drivers to aperture interfaces 2021-04-14 09:00:04 +02:00
tdfx drm: Constify drm_driver in drivers that don't modify it 2021-01-05 07:20:36 +02:00
tegra Merge drm/drm-next into drm-misc-next 2021-05-11 15:59:18 +02:00
tidss drm: Use state helper instead of the plane state pointer 2021-02-25 08:05:28 +01:00
tilcdc drm/tilcdc: fix pixel clock setting warning message 2021-03-24 12:05:28 +02:00
tiny drm/simpledrm: Use %p4cc to print 4CC format 2021-05-27 08:34:30 +02:00
ttm drm/ttm: flip the switch for driver allocated resources v2 2021-06-04 15:16:46 +02:00
tve200 drm/gem: Move drm_gem_fb_prepare_fb() to GEM atomic helpers 2021-02-23 08:54:22 +01:00
udl drm-misc-next for 5.13: 2021-03-16 17:08:46 +10:00
v3d Revert "drm/scheduler: Job timeout handler returns status (v3)" 2021-02-10 15:26:00 +01:00
vboxvideo drm/vboxvideo/modesetting: Provide function names for prototype headers 2021-06-03 13:33:18 +02:00
vc4 drm/vc4: hdmi: Fix PM reference leak in vc4_hdmi_encoder_pre_crtc_co() 2021-05-25 10:32:56 +02:00
vgem drm/vgem/vgem_drv: Standard comment blocks should not use kernel-doc format 2021-06-03 10:32:49 +02:00
via drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
virtio drm/virtio: free virtqueues on probe failure 2021-05-18 10:55:31 +02:00
vkms drm/vkms: add overlay support 2021-04-29 18:53:05 -03:00
vmwgfx drm/ttm: flip the switch for driver allocated resources v2 2021-06-04 15:16:46 +02:00
xen Merge drm/drm-fixes into drm-next 2021-04-13 23:15:09 +02:00
xlnx drm/dp: Pass drm_dp_aux to drm_dp*_link_train_channel_eq_delay() 2021-04-27 18:43:42 -04:00
zte drm/zte: Don't select DRM_KMS_FB_HELPER 2021-04-26 12:43:04 +02:00
drm_agpsupport.c drm: Include <asm/agp.h> iff CONFIG_AGP is set 2021-05-11 14:13:33 +02:00
drm_aperture.c drm/aperture: Fix missing unlock on error in devm_aperture_acquire() 2021-05-13 15:06:32 +02:00
drm_atomic_helper.c drm: drm_atomic_helper.c: Correct comments format 2021-04-12 17:57:14 +02:00
drm_atomic_state_helper.c drm: fix some kernel-doc markups 2020-11-16 20:48:20 +01:00
drm_atomic_uapi.c drm: drm_atomic_uapi.c: Use tabs for code indents 2021-04-22 10:46:00 +02:00
drm_atomic.c Merge drm/drm-next into drm-misc-next 2021-04-26 14:03:09 +02:00
drm_auth.c drm: drm_auth.c: Adjust end of block comment 2021-04-22 10:26:35 +02:00
drm_blend.c drm: drm_blend.c: Use tabs for code indents 2021-04-22 10:46:35 +02:00
drm_bridge_connector.c
drm_bridge.c drm/bridge: Fix the stop condition of drm_bridge_chain_pre_enable() 2021-04-20 08:56:44 -07:00
drm_bufs.c drm: fix leaked dma handles after removing drm_pci_free 2021-05-26 21:18:13 +02:00
drm_cache.c drm: Include <linux/mem_encrypt.h> in drm_cache.c 2021-01-14 09:42:31 +01:00
drm_client_modeset.c drm: replace drm_modeset_lock_all() in drm_client_modeset_dpms_legacy() 2021-02-09 17:16:57 +01:00
drm_client.c drm/client: Depend on GEM object kmap ref-counting 2020-11-24 09:27:54 +01:00
drm_color_mgmt.c drm: add legacy support for using degamma for gamma 2020-12-15 15:46:03 +02:00
drm_connector.c drm/connector: Add a helper to attach the colorspace property 2021-05-07 17:14:59 +02:00
drm_context.c drm: correct function name drm_legacy_ctxbitmap_flush() 2021-05-16 22:01:14 +02:00
drm_crtc_helper_internal.h drm: remove drm_fb_helper_modinit 2021-02-08 12:20:38 +01:00
drm_crtc_helper.c
drm_crtc_internal.h
drm_crtc.c drm: Switch to %p4cc format modifier 2021-02-17 12:52:59 +01:00
drm_damage_helper.c
drm_debugfs_crc.c
drm_debugfs.c
drm_displayid.c drm/displayid: rename displayid_hdr to displayid_header 2021-03-31 15:42:39 +03:00
drm_dma.c drm: remove usage of drm_pci_alloc/free 2021-04-26 18:19:15 +02:00
drm_dp_aux_dev.c drm/dp: Add backpointer to drm_device in drm_dp_aux 2021-04-27 18:43:42 -04:00
drm_dp_cec.c
drm_dp_dual_mode_helper.c drm/dp_dual_mode: Convert drm_dp_dual_mode_helper.c to using drm_err/drm_dbg_kms() 2021-04-27 18:43:45 -04:00
drm_dp_helper.c drm/dp: Fix bogus DPCD version check in drm_dp_read_downstream_info() 2021-05-10 16:26:07 -04:00
drm_dp_mst_topology_internal.h
drm_dp_mst_topology.c drm/dp_mst: Use kHz as link rate units when settig source max link caps at init 2021-05-27 15:30:59 -04:00
drm_drv.c drm: Mark PCI AGP helpers as legacy 2021-05-10 15:46:54 +02:00
drm_dsc.c drm/dsc: add helper for calculating rc buffer size from DPCD 2020-12-10 10:49:47 +02:00
drm_dumb_buffers.c drm: Don't export the drm_gem_dumb_destroy() function 2021-01-05 07:20:25 +02:00
drm_edid_load.c
drm_edid.c drm/edid: use the new displayid iterator for tile info 2021-03-31 15:42:02 +03:00
drm_encoder_slave.c
drm_encoder.c drm: add drmm_encoder_alloc() 2021-01-04 12:59:33 +01:00
drm_fb_cma_helper.c drm: Add and export function drm_fb_cma_sync_non_coherent 2021-05-25 11:42:09 +01:00
drm_fb_helper.c drm/fb-helper: improve DRM fbdev emulation device names 2021-05-26 21:22:38 +02:00
drm_file.c drm/drm_file.c: Define drm_send_event_helper() as 'static' 2021-04-27 14:23:12 +02:00
drm_flip_work.c
drm_format_helper.c drm/format-helper: Add blitter functions 2021-05-01 12:45:03 +02:00
drm_fourcc.c drm: Remove drm_get_format_name() 2021-05-27 08:34:50 +02:00
drm_framebuffer.c drm: Switch to %p4cc format modifier 2021-02-17 12:52:59 +01:00
drm_gem_atomic_helper.c drm/gem: Move drm_gem_fb_prepare_fb() to GEM atomic helpers 2021-02-23 08:54:22 +01:00
drm_gem_cma_helper.c drm: Fix misleading documentation of drm_gem_cma_create() 2021-06-01 17:27:20 +01:00
drm_gem_framebuffer_helper.c drm: log errors in drm_gem_fb_init_with_funcs 2021-05-18 19:48:18 +02:00
drm_gem_shmem_helper.c drm/shmem-helpers: vunmap: Don't put pages for dma-buf 2021-03-11 11:11:33 +01:00
drm_gem_ttm_helper.c drm/ttm: rename bo->mem and make it a pointer 2021-06-02 11:07:25 +02:00
drm_gem_vram_helper.c drm/ttm: flip the switch for driver allocated resources v2 2021-06-04 15:16:46 +02:00
drm_gem.c drm/gem: Export drm_gem_vmap() and drm_gem_vunmap() 2021-02-08 13:00:06 +01:00
drm_hashtab.c
drm_hdcp.c
drm_internal.h drm: Mark IRQ_BUSID ioctl as legacy 2021-05-17 21:19:48 +02:00
drm_ioc32.c drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
drm_ioctl.c drm: Mark IRQ_BUSID ioctl as legacy 2021-05-17 21:19:48 +02:00
drm_irq.c drm: Upcast struct drm_device.dev to struct pci_device; replace pdev 2021-01-19 09:06:38 +01:00
drm_kms_helper_common.c drm: remove drm_fb_helper_modinit 2021-02-08 12:20:38 +01:00
drm_lease.c drm: Don't include drm_legacy.h in drm_lease.c 2021-05-17 21:19:22 +02:00
drm_legacy_misc.c drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
drm_legacy.h drm: Mark IRQ_BUSID ioctl as legacy 2021-05-17 21:19:48 +02:00
drm_lock.c
drm_managed.c
drm_memory.c drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
drm_mipi_dbi.c drm: Switch to %p4cc format modifier 2021-02-17 12:52:59 +01:00
drm_mipi_dsi.c
drm_mm.c
drm_mode_config.c drm-misc-next for v5.12: 2021-01-07 13:40:20 +01:00
drm_mode_object.c drm: fix some kernel-doc markups 2020-11-16 20:48:20 +01:00
drm_modes.c Merge drm/drm-next into drm-misc-next 2021-05-11 15:59:18 +02:00
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c
drm_panel_orientation_quirks.c drm: Added orientation quirk for OneGX1 Pro 2021-01-20 22:33:01 +01:00
drm_panel.c
drm_pci.c drm: Mark IRQ_BUSID ioctl as legacy 2021-05-17 21:19:48 +02:00
drm_plane_helper.c
drm_plane.c drm/modifiers: Enforce consistency between the cap an IN_FORMATS 2021-05-12 11:31:29 +02:00
drm_prime.c drm: Set vm_ops to GEM object's values during mmap 2021-01-18 10:37:26 +01:00
drm_print.c
drm_probe_helper.c drm/probe-helper: Check epoch counter in output_poll_execute() 2021-03-16 12:45:52 +01:00
drm_property.c drm: Few typo fixes 2021-03-18 14:22:50 +01:00
drm_rect.c
drm_scatter.c
drm_scdc_helper.c drm: fix some kernel-doc markups 2020-11-16 20:48:20 +01:00
drm_self_refresh_helper.c
drm_simple_kms_helper.c drm/atomic: Pass the full state to planes atomic disable and update 2021-02-25 08:05:28 +01:00
drm_syncobj.c drm/syncobj: use newly allocated stub fences 2021-04-08 12:21:13 +02:00
drm_sysfs.c drm/sysfs: Convert sysfs sprintf/snprintf family to sysfs_emit 2021-03-23 07:41:39 -04:00
drm_trace_points.c
drm_trace.h
drm_vblank_work.c
drm_vblank.c drm/vblank: Do not store a new vblank timestamp in drm_vblank_restore() 2021-04-01 20:29:17 +03:00
drm_vm.c drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
drm_vma_manager.c
drm_writeback.c
Kconfig drm: Avoid circular dependencies for CONFIG_FB 2021-06-03 10:47:44 +02:00
Makefile drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00