Hi, Here's a series that fixes a significant issue we missed when adding support for the BCM2711 / RaspberryPi4 in the vc4 driver. Indeed, before the introduction of the BCM2711 support, the GPU was fairly intertwined with the display hardware, and was thus supported by the vc4 driver. Among other things, the driver needed to accomodate for a bunch of hardware limitations (such as a lack of IOMMU) by implementing a custom memory management backend, tied with the v3d hardware. On the BCM2711, that GPU got moved into a completely separate hardware block and thus we gained a new driver for it, v3d. However, when we introduced the display support for the BCM2711 in vc4, we didn't properly split out the v3d-related functions and ended up reusing a significant portion of the code supposed to be backed by the v3d. This created a bunch of easy to miss issues that would only pop up with IGT tests, or when heavily testing some features (like asynchronous page-flipping). This series properly does the split now by creating separate code path where relevant, adds a loud complain when we use a v3d entry-point on the BCM2711, and fixes an issue where we would just ignore any fence on an asynchronous page-flip, resulting in frames appearing out-of-order for some workloads. Let me know what you think, Maxime Changes from v1: - Rebased on current drm-misc-next - Renamed vc4_dumb_create to vc5_dumb_create - Fixed intermediate compilation error - Fixed call to dma_resv_get_singleton - Complete async page flip immediately if there's no fence - Fix null pointer dereference on the Pi3 - Collected tags from Melissa Maxime Ripard (14): drm/vc4: plane: Prevent async update if we don't have a dlist drm/vc4: Consolidate Hardware Revision Check drm/vc4: bo: Rename vc4_dumb_create drm/vc4: bo: Split out Dumb buffers fixup drm/vc4: drv: Register a different driver on BCM2711 drm/vc4: kms: Register a different drm_mode_config_funcs on BCM2711 drm/vc4: plane: Register a different drm_plane_helper_funcs on BCM2711 drm/vc4: drv: Skip BO Backend Initialization on BCM2711 drm/vc4: crtc: Use an union to store the page flip callback drm/vc4: crtc: Move the BO handling out of common page-flip callback drm/vc4: crtc: Move the BO Handling out of Common Page-Flip Handler drm/vc4: crtc: Don't call into BO Handling on Async Page-Flips on BCM2711 drm/vc4: crtc: Fix out of order frames during asynchronous page flips drm/vc4: Warn if some v3d code is run on BCM2711 drivers/gpu/drm/vc4/vc4_bo.c | 62 ++++++- drivers/gpu/drm/vc4/vc4_crtc.c | 200 +++++++++++++++------ drivers/gpu/drm/vc4/vc4_drv.c | 97 ++++++++-- drivers/gpu/drm/vc4/vc4_drv.h | 19 +- drivers/gpu/drm/vc4/vc4_gem.c | 40 +++++ drivers/gpu/drm/vc4/vc4_hvs.c | 18 +- drivers/gpu/drm/vc4/vc4_irq.c | 16 ++ drivers/gpu/drm/vc4/vc4_kms.c | 24 ++- drivers/gpu/drm/vc4/vc4_perfmon.c | 47 ++++- drivers/gpu/drm/vc4/vc4_plane.c | 29 ++- drivers/gpu/drm/vc4/vc4_render_cl.c | 4 + drivers/gpu/drm/vc4/vc4_v3d.c | 15 ++ drivers/gpu/drm/vc4/vc4_validate.c | 16 ++ drivers/gpu/drm/vc4/vc4_validate_shaders.c | 4 + 14 files changed, 482 insertions(+), 109 deletions(-) -- 2.36.1