• Samuel Holland's avatar
    drm/sun4i: dsi: Allow binding the host without a panel · 1a2703bd
    Samuel Holland authored
    Currently, the DSI host blocks binding the display pipeline until the
    panel is available. This unnecessarily prevents other display outpus
    from working, and adds logspam to dmesg when the panel driver is built
    as a module (the component master is unsuccessfully brought up several
    times during boot).
    
    Flip the dependency, instead requiring the host to be bound before the
    panel is attached. The panel driver provides no functionality outside of
    the display pipeline anyway.
    
    Since the panel is now probed after the DRM connector, we need a hotplug
    event to turn on the connector after the panel is attached.
    
    This has the added benefit of fixing panel module removal/insertion.
    Previously, the panel would be turned off when its module was removed.
    But because the connector state was hardcoded, nothing knew to turn the
    panel back on when it was re-attached. Now, with hotplug events
    available, the connector state will follow the panel module state, and
    the panel will be re-enabled properly.
    
    Fixes: 133add5b ("drm/sun4i: Add Allwinner A31 MIPI-DSI controller support")
    Signed-off-by: default avatarSamuel Holland <samuel@sholland.org>
    Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200211072858.30784-3-samuel@sholland.org
    1a2703bd
sun6i_mipi_dsi.c 34.4 KB