Skip to content
  1. Sep 16, 2021
  2. Sep 14, 2021
  3. Sep 13, 2021
  4. Sep 06, 2021
    • Phil Elwell's avatar
    • Stefan Wahren's avatar
      overlays: Add overlay for QCA7000 via UART0 · e6ce5f21
      Stefan Wahren authored
      
      
      This adds an overlay to connect the QCA7000 in UART mode via UART0.
      The qcauart driver uses the serial device bus instead of deprecated
      line disciplines.
      
      Signed-off-by: default avatarStefan Wahren <stefan.wahren@in-tech.com>
      e6ce5f21
    • Maxime Ripard's avatar
      drm/vc4: Set a default HSM rate · cbd9f6cc
      Maxime Ripard authored
      
      
      When the firmware doesn't setup the HSM rate (such as when booting
      without an HDMI cable plugged in), its rate is 0 and thus any register
      access results in a CPU stall, even though HSM is enabled.
      
      Let's enforce a minimum rate at boot to avoid this issue.
      
      Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
      cbd9f6cc
    • Maxime Ripard's avatar
      drm/vc4: hdmi: Remove the DDC probing for status detection · 6d217854
      Maxime Ripard authored
      Commit 9d44abbb ("drm/vc4: Fall back to using an EDID probe in the
      absence of a GPIO.") added some code to read the EDID through DDC in the
      HDMI driver detect hook since the Pi3 had no HPD GPIO back then.
      However, commit b1b8f45b
      
       ("ARM: dts: bcm2837: Add missing GPIOs of
      Expander") changed that a couple of years later.
      
      This causes an issue though since some TV (like the LG 55C8) when it
      comes out of standy will deassert the HPD line, but the EDID will
      remain readable.
      
      It causes an issues nn platforms without an HPD GPIO, like the Pi4,
      where the DDC probing will be our primary mean to detect a display, and
      thus we will never detect the HPD pulse. This was fine before since the
      pulse was small enough that we would never detect it, and we also didn't
      have anything (like the scrambler) that needed to be set up in the
      display.
      
      However, now that we have both, the display during the HPD pulse will
      clear its scrambler status, and since we won't detect the
      disconnect/reconnect cycle we will never enable the scrambler back.
      
      As our main reason for that DDC probing is gone, let's just remove it.
      
      Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
      6d217854
    • Maxime Ripard's avatar
      drm/vc4: hdmi: Actually check for the connector status in hotplug · 3c3dabc9
      Maxime Ripard authored
      
      
      The drm_helper_hpd_irq_event() documentation states that this function
      is "useful for drivers which can't or don't track hotplug interrupts for
      each connector." and that "Drivers which support hotplug interrupts for
      each connector individually and which have a more fine-grained detect
      logic should bypass this code and directly call
      drm_kms_helper_hotplug_event()". This is thus what we ended-up doing.
      
      However, what this actually means, and is further explained in the
      drm_kms_helper_hotplug_event() documentation, is that
      drm_kms_helper_hotplug_event() should be called by drivers that can
      track the connection status change, and if it has changed we should call
      that function.
      
      This underlying expectation we failed to provide is that the caller of
      drm_kms_helper_hotplug_event() should call drm_helper_probe_detect() to
      probe the new status of the connector.
      
      Since we didn't do it, it meant that even though we were sending the
      notification to user-space and the DRM clients that something changed we
      never probed or updated our internal connector status ourselves.
      
      This went mostly unnoticed since the detect callback usually doesn't
      have any side-effect. Also, if we were using the DRM fbdev emulation
      (which is a DRM client), or any user-space application that can deal
      with hotplug events, chances are they would react to the hotplug event
      by probing the connector status eventually.
      
      However, now that we have to enable the scrambler in detect() if it was
      enabled it has a side effect, and an application such as Kodi or
      modetest doesn't deal with hotplug events. This resulted with a black
      screen when Kodi or modetest was running when a screen was disconnected
      and then reconnected, or switched off and on.
      
      Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
      3c3dabc9
    • Maxime Ripard's avatar
      drm/vc4: hdmi: Make sure the controller is powered up during bind · 3b306519
      Maxime Ripard authored
      In the bind hook, we actually need the device to have the HSM clock
      running during the final part of the display initialisation where we
      reset the controller and initialise the CEC component.
      
      Failing to do so will result in a complete, silent, hang of the CPU.
      
      Fixes: 411efa18
      
       ("drm/vc4: hdmi: Move the HSM clock enable to runtime_pm")
      Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
      3b306519