lkml.org 
[lkml]   [2022]   [Oct]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 08/12] drm/msm/dp: Don't enable HPD interrupts for edp
    Date
    From: Bjorn Andersson <bjorn.andersson@linaro.org>

    Most instances where HPD interrupts are masked and unmasked are guareded
    by the presence of an EDP panel being connected, but not all. Extend
    this to cover the last few places, as HPD interrupt handling is not used
    for the EDP case.

    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
    ---

    Changes since v2:
    - None

    drivers/gpu/drm/msm/dp/dp_display.c | 15 ++++++++++-----
    1 file changed, 10 insertions(+), 5 deletions(-)

    diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
    index a4563a0753b0..3d365950de0f 100644
    --- a/drivers/gpu/drm/msm/dp/dp_display.c
    +++ b/drivers/gpu/drm/msm/dp/dp_display.c
    @@ -610,8 +610,10 @@ static int dp_hpd_plug_handle(struct dp_display_private *dp, u32 data)
    }

    /* enable HDP irq_hpd/replug interrupt */
    - dp_catalog_hpd_config_intr(dp->catalog,
    - DP_DP_IRQ_HPD_INT_MASK | DP_DP_HPD_REPLUG_INT_MASK, true);
    + if (!dp->dp_display.is_edp)
    + dp_catalog_hpd_config_intr(dp->catalog,
    + DP_DP_IRQ_HPD_INT_MASK | DP_DP_HPD_REPLUG_INT_MASK,
    + true);

    drm_dbg_dp(dp->drm_dev, "After, type=%d hpd_state=%d\n",
    dp->dp_display.connector_type, state);
    @@ -651,8 +653,10 @@ static int dp_hpd_unplug_handle(struct dp_display_private *dp, u32 data)
    dp->dp_display.connector_type, state);

    /* disable irq_hpd/replug interrupts */
    - dp_catalog_hpd_config_intr(dp->catalog,
    - DP_DP_IRQ_HPD_INT_MASK | DP_DP_HPD_REPLUG_INT_MASK, false);
    + if (!dp->dp_display.is_edp)
    + dp_catalog_hpd_config_intr(dp->catalog,
    + DP_DP_IRQ_HPD_INT_MASK | DP_DP_HPD_REPLUG_INT_MASK,
    + false);

    /* unplugged, no more irq_hpd handle */
    dp_del_event(dp, EV_IRQ_HPD_INT);
    @@ -678,7 +682,8 @@ static int dp_hpd_unplug_handle(struct dp_display_private *dp, u32 data)
    }

    /* disable HPD plug interrupts */
    - dp_catalog_hpd_config_intr(dp->catalog, DP_DP_HPD_PLUG_INT_MASK, false);
    + if (!dp->dp_display.is_edp)
    + dp_catalog_hpd_config_intr(dp->catalog, DP_DP_HPD_PLUG_INT_MASK, false);

    /*
    * We don't need separate work for disconnect as
    --
    2.37.3
    \
     
     \ /
      Last update: 2022-10-26 05:28    [W:3.401 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site