1. 07 Jul, 2022 1 commit
    • John Stultz's avatar
      drm_hwcomposer: Fix BufferInfoMaliMeson · 9f4e3dbb
      John Stultz authored
      In commit e9fbd8d6
      
       ("drm_hwcomposer: Set return type to
      std::optional for BufferInfoGetters") the final return for
      BufferInfoMaliMeson::GetBoInfo() erroneously was changed to
      return {} instead of the calculated BufferInfo object.
      
      This simply fixes the issue, returning the BufferInfo.
      
      Change-Id: I03789b48dc4a0df64432f7ff31661746163a96b8
      Signed-off-by: John Stultz's avatarJohn Stultz <jstultz@google.com>
      9f4e3dbb
  2. 30 Jun, 2022 2 commits
    • John Stultz's avatar
      drm_hwcomposer: Workaround for screen de-activating causing db845c regression · 799e8c74
      John Stultz authored
      Since commit d0494d9b ("drm_hwcomposer: Fixes for display
      hotplug / headless mode"), which introduced an extra call to
      de-active the display on de-init, we've seen regressions on db845c
      with the VtsHalGraphicsComposerV2_3TargetTest test set.
      
      This seems to be due to an issue on db845c, where after putting the
      lt9611 bridge to sleep, the connection detection stops working even
      after the chip is reset.
      
      However, on changing the kernel driver to avoid putting the bridge
      to sleep so connect detection works, we start to see SIGSEGV crashes
      in drm_hwcomposer, due to the service expecting the hwmodule to
      finish registercallback during client detaching within 1 second.
      Exceeding this values causes VTS to crash. And msm driver introduces
      delay enough to exceed the limit.
      
      So this patch is a workaround to restore previous behavior to avoid
      the regression until we can sort out a proper fixes to db845c and
      drm_hwcomposer.
      
      Signed-off-by...
      799e8c74
    • Roman Stratiienko's avatar
      drm_hwcomposer: Split the composition cleanup and display's deactivation · af862a52
      Roman Stratiienko authored
      
      
      When drm_hwcomposer is used with drm/sun4i driver,
      'adb shell stop && adb shell start' sequence causes noise on the
      unused planes during the bootanimation.
      
      It looks like some bug in the drivers or DRM frontend itself, which
      keeps the plane assigned to the CRTC if the atomic commit contains CRTC
      deactivation.
      
      We need more time to investigate it. For now we can split disposal
      into 2 atomic commits, which fixes the noise issue.
      Signed-off-by: default avatarRoman Stratiienko <roman.o.stratiienko@globallogic.com>
      af862a52
  3. 22 Jun, 2022 1 commit
  4. 30 May, 2022 1 commit
  5. 17 May, 2022 6 commits
  6. 10 May, 2022 2 commits
  7. 09 May, 2022 3 commits
  8. 16 Apr, 2022 1 commit
  9. 28 Mar, 2022 1 commit
  10. 18 Feb, 2022 2 commits
    • Roman Stratiienko's avatar
      drm_hwcomposer: Rework HwcDisplay disposal to avoid races · bb594baa
      Roman Stratiienko authored
      
      
      The code prior to this commit has a flaw:
      
          HwcDisplay::~HwcDisplay() {
            ...
            auto &main_lock = hwc2_->GetResMan().GetMainLock();
            /* Unlock to allow pending vsync callbacks to finish */
            main_lock.unlock();
      
      At this point display is no longer in displays_[] list. After
      lock is released, hwc2 API thread starts to process transactions
      which may fail with BAD_SIAPLAY responce and cause SF to crash.
      
            vsync_worker_.VSyncControl(false);
            vsync_worker_.Exit();
            main_lock.lock();
          }
      
      1. Rework the logic in order to avoid such scenariuos:
      1.a. Temporary switch non-primary unplugged displays to headless state
           allowing remaining transactions to succeed without impacting the
           pipeline.
      1.b. Give 100mSec delay before destroying / removing display from the
           displays_[] list to allow all pending hwc2 transactions to complete.
      
      2. Support hotswap of the DrmDisplayPipeline, which makes primary display
         reattaching process smoother.
         Now SF should be able to gracefully remove all layers.
      Signed-off-by: default avatarRoman Stratiienko <roman.o.stratiienko@globallogic.com>
      bb594baa
    • Roman Stratiienko's avatar
      drm_hwcomposer: Add test utility to listen for uevents · bd973171
      Roman Stratiienko authored
      
      
      Dumping uevents is useful for debugging purposes.
      
      1. Extract logic related to uevent socket into utils/UEvent.h class.
      2. Use it by both UEventListener.cpp and tests/uevent_print.cpp.
      
      Bump clang-tidy level of UEventListener.cpp to normal.
      Signed-off-by: default avatarRoman Stratiienko <roman.o.stratiienko@globallogic.com>
      bd973171
  11. 15 Feb, 2022 3 commits
  12. 09 Feb, 2022 2 commits
  13. 04 Feb, 2022 4 commits
  14. 02 Feb, 2022 3 commits
  15. 31 Jan, 2022 8 commits