• Boris Brezillon's avatar
    drm/panthor: Add the FW logical block · 2718d918
    Boris Brezillon authored
    Contains everything that's FW related, that includes the code dealing
    with the microcontroller unit (MCU) that's running the FW, and anything
    related to allocating memory shared between the FW and the CPU.
    
    A few global FW events are processed in the IRQ handler, the rest is
    forwarded to the scheduler, since scheduling is the primary reason for
    the FW existence, and also the main source of FW <-> kernel
    interactions.
    
    v6:
    - Add Maxime's and Heiko's acks
    - Keep header inclusion alphabetically ordered
    
    v5:
    - Fix typo in GLB_PERFCNT_SAMPLE definition
    - Fix unbalanced panthor_vm_idle/active() calls
    - Fallback to a slow reset when the fast reset fails
    - Add extra information when reporting a FW boot failure
    
    v4:
    - Add a MODULE_FIRMWARE() entry for gen 10.8
    - Fix a wrong return ERR_PTR() in panthor_fw_load_section_entry()
    - Fix typos
    - Add Steve's R-b
    
    v3:
    - Make the FW path more future-proof (Liviu)
    - Use one waitqueue for all FW events
    - Simplify propagation of FW events to the scheduler logic
    - Drop the panthor_fw_mem abstraction and use panthor_kernel_bo instead
    - Account for the panthor_vm changes
    - Replace magic number with 0x7fffffff with ~0 to better signify that
      it's the maximum permitted value.
    - More accurate rounding when computing the firmware timeout.
    - Add a 'sub iterator' helper function. This also adds a check that a
      firmware entry doesn't overflow the firmware image.
    - Drop __packed from FW structures, natural alignment is good enough.
    - Other minor code improvements.
    Co-developed-by: default avatarSteven Price <steven.price@arm.com>
    Signed-off-by: default avatarSteven Price <steven.price@arm.com>
    Signed-off-by: default avatarBoris Brezillon <boris.brezillon@collabora.com>
    Reviewed-by: default avatarSteven Price <steven.price@arm.com>
    Acked-by: default avatarMaxime Ripard <mripard@kernel.org>
    Acked-by: default avatarHeiko Stuebner <heiko@sntech.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240229162230.2634044-9-boris.brezillon@collabora.com
    2718d918
panthor_fw.h 14 KB