[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <426246e9-ccfe-40a7-81b6-a15ac1ee32e9@huawei.com>
Date: Wed, 11 Jun 2025 20:52:29 +0800
From: Yongbang Shi <shiyongbang@...wei.com>
To: Dmitry Baryshkov <dmitry.baryshkov@....qualcomm.com>
CC: <xinliang.liu@...aro.org>, <tiantao6@...ilicon.com>,
<maarten.lankhorst@...ux.intel.com>, <mripard@...nel.org>,
<tzimmermann@...e.de>, <airlied@...il.com>, <daniel@...ll.ch>,
<kong.kongxinwei@...ilicon.com>, <liangjian010@...wei.com>,
<chenjianmin@...wei.com>, <lidongming5@...wei.com>, <libaihan@...wei.com>,
<shenjian15@...wei.com>, <shaojijie@...wei.com>,
<jani.nikula@...ux.intel.com>, <dri-devel@...ts.freedesktop.org>,
<linux-kernel@...r.kernel.org>, <shiyongbang@...wei.com>
Subject: Re: [PATCH drm-dp 10/10] drm/hisilicon/hibmc: fix no showing problem
with loading hibmc manually
> On Fri, May 30, 2025 at 05:54:32PM +0800, Yongbang Shi wrote:
>> From: Baihan Li <libaihan@...wei.com>
>>
>> When using command rmmod and insmod, there is no showing in second time
>> insmoding. Because DP controller won't send HPD signals, if connection
>> doesn't change or controller isn't reset. So add reset before unreset
>> in hibmc_dp_hw_init().
>>
>> Fixes: 94ee73ee3020 ("drm/hisilicon/hibmc: add dp hw moduel in hibmc driver")
> Technically... yes and no. The function was written this way in that
> commit, however HPD signals were not handled until the latter commit.
Alright, can I put 2 commits here?
>> Signed-off-by: Baihan Li <libaihan@...wei.com>
>> ---
>> drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c | 6 ++++--
>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c b/drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c
>> index 4f93d60b932b..e1b9589ce639 100644
>> --- a/drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c
>> +++ b/drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.c
>> @@ -172,13 +172,15 @@ int hibmc_dp_hw_init(struct hibmc_dp *dp)
>> dp_dev->link.cap.lanes = 0x2;
>> dp_dev->link.cap.link_rate = DP_LINK_BW_8_1;
>>
>> - /* hdcp data */
>> - writel(HIBMC_DP_HDCP, dp_dev->base + HIBMC_DP_HDCP_CFG);
>> /* int init */
>> writel(0, dp_dev->base + HIBMC_DP_INTR_ENABLE);
>> writel(HIBMC_DP_INT_RST, dp_dev->base + HIBMC_DP_INTR_ORIGINAL_STATUS);
>> /* rst */
>> + writel(0, dp_dev->base + HIBMC_DP_DPTX_RST_CTRL);
>> + usleep_range(30, 50);
>> writel(HIBMC_DP_DPTX_RST, dp_dev->base + HIBMC_DP_DPTX_RST_CTRL);
>> + /* hdcp data */
>> + writel(HIBMC_DP_HDCP, dp_dev->base + HIBMC_DP_HDCP_CFG);
> There are two independent changes here. Split them into two commits.
Okay!
>> /* clock enable */
>> writel(HIBMC_DP_CLK_EN, dp_dev->base + HIBMC_DP_DPTX_CLK_CTRL);
>>
>> --
>> 2.33.0
>>
Powered by blists - more mailing lists