Skip to content
  1. Dec 01, 2021
  2. Oct 06, 2021
  3. Oct 04, 2021
  4. Sep 30, 2021
  5. Sep 29, 2021
  6. Sep 28, 2021
    • Maxime Ripard's avatar
      drm/vc4: Fix out of order frames during asynchronous page flips · f694d1cf
      Maxime Ripard authored
      
      
      When doing an asynchronous page flip (PAGE_FLIP ioctl with the
      DRM_MODE_PAGE_FLIP_ASYNC flag set), the current code waits for the
      possible GPU buffer being rendered through a call to
      vc4_queue_seqno_cb().
      
      On the BCM2835-37, the GPU driver is part of the vc4 driver and that
      function is defined in vc4_gem.c to wait for the buffer to be rendered,
      and once it's done, call a callback.
      
      However, on the BCM2711 used on the RaspberryPi4, the GPU driver is
      separate (v3d) and that function won't do anything. This was working
      because we were going into a path, due to uninitialized variables, that
      was always scheduling the callback.
      
      However, we were never actually waiting for the buffer to be rendered
      which was resulting in frames being displayed out of order.
      
      The generic API to signal those kind of completion in the kernel are the
      DMA fences, and fortunately the v3d drivers supports them and signal
      when its job is done. That API also provides an equivalent function that
      allows to have a callback being executed when the fence is signalled as
      done.
      
      Let's change our driver a bit to rely on the previous function for the
      older SoCs, and on DMA fences for the BCM2711.
      
      Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
      f694d1cf
    • Dom Cobley's avatar
      Revert "firmware: Updated mailbox header" · 6fc5285c
      Dom Cobley authored
      This reverts commit 02038a75.
      6fc5285c
    • Dom Cobley's avatar
      2b33debb
    • madimario's avatar
      bcm2835_smi_dev: Fix handling of word-odd lengths · ab7e4aee
      madimario authored
      
      
      The read and write functions did not use the correct pointer offset
      when dealing with an odd number of bytes after a DMA transfer. Also,
      only handle the remaining odd bytes if the DMA transfer completed
      successfully.
      
      Submitted-by: @madimario (GitHub)
      Signed-off-by: default avatarPhil Elwell <phil@raspberrypi.com>
      1.20210928
      ab7e4aee
  7. Sep 27, 2021
  8. Sep 23, 2021