lkml.org 
[lkml]   [2021]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 711/917] drm/bridge/lontium-lt9611uxc: fix provided connector suport
    Date
    From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

    [ Upstream commit 15184965783aab3ca7ee4f939e2598943b3f40f9 ]

    - set DRM_CONNECTOR_POLL_HPD as the connector will generate hotplug
    events on its own

    - do not call drm_kms_helper_hotplug_event() unless mode_config.funcs
    pointer is not NULL to remove possible kernel oops.

    Fixes: bc6fa8676ebb ("drm/bridge/lontium-lt9611uxc: move HPD notification out of IRQ handler")
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Robert Foss <robert.foss@linaro.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210708230329.395976-1-dmitry.baryshkov@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 9 ++++++---
    1 file changed, 6 insertions(+), 3 deletions(-)

    diff --git a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
    index 3cac16db970f0..010657ea7af78 100644
    --- a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
    +++ b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
    @@ -167,9 +167,10 @@ static void lt9611uxc_hpd_work(struct work_struct *work)
    struct lt9611uxc *lt9611uxc = container_of(work, struct lt9611uxc, work);
    bool connected;

    - if (lt9611uxc->connector.dev)
    - drm_kms_helper_hotplug_event(lt9611uxc->connector.dev);
    - else {
    + if (lt9611uxc->connector.dev) {
    + if (lt9611uxc->connector.dev->mode_config.funcs)
    + drm_kms_helper_hotplug_event(lt9611uxc->connector.dev);
    + } else {

    mutex_lock(&lt9611uxc->ocm_lock);
    connected = lt9611uxc->hdmi_connected;
    @@ -339,6 +340,8 @@ static int lt9611uxc_connector_init(struct drm_bridge *bridge, struct lt9611uxc
    return -ENODEV;
    }

    + lt9611uxc->connector.polled = DRM_CONNECTOR_POLL_HPD;
    +
    drm_connector_helper_add(&lt9611uxc->connector,
    &lt9611uxc_bridge_connector_helper_funcs);
    ret = drm_connector_init(bridge->dev, &lt9611uxc->connector,
    --
    2.33.0


    \
     
     \ /
      Last update: 2021-11-16 01:35    [W:3.227 / U:0.656 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site