Skip to content

Commit 689bb48

Browse files
Lin Hegregkh
authored andcommitted
drm/hisilicon/hibmc: add updating link cap in DP detect()
[ Upstream commit 7d380ef ] In the past, the link cap is updated in link training at encoder enable stage, but the hibmc_dp_mode_valid() is called before it, which will use DP link's rate and lanes. So add the hibmc_dp_update_caps() in hibmc_dp_update_caps() to avoid some potential risks. Fixes: 607805a ("drm/hisilicon/hibmc: add dp mode valid check") Signed-off-by: Lin He <helin52@huawei.com> Signed-off-by: Yongbang Shi <shiyongbang@huawei.com> Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patch.msgid.link/20260509032302.2057227-2-shiyongbang@huawei.com Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 27af16a commit 689bb48

3 files changed

Lines changed: 4 additions & 1 deletion

File tree

drivers/gpu/drm/hisilicon/hibmc/dp/dp_comm.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,6 @@ int hibmc_dp_link_training(struct hibmc_dp_dev *dp);
6969
int hibmc_dp_serdes_init(struct hibmc_dp_dev *dp);
7070
int hibmc_dp_serdes_rate_switch(u8 rate, struct hibmc_dp_dev *dp);
7171
int hibmc_dp_serdes_set_tx_cfg(struct hibmc_dp_dev *dp, u8 train_set[HIBMC_DP_LANE_NUM_MAX]);
72+
void hibmc_dp_update_caps(struct hibmc_dp_dev *dp);
7273

7374
#endif

drivers/gpu/drm/hisilicon/hibmc/dp/dp_link.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ static int hibmc_dp_link_downgrade_training_eq(struct hibmc_dp_dev *dp)
325325
return hibmc_dp_link_reduce_rate(dp);
326326
}
327327

328-
static void hibmc_dp_update_caps(struct hibmc_dp_dev *dp)
328+
void hibmc_dp_update_caps(struct hibmc_dp_dev *dp)
329329
{
330330
dp->link.cap.link_rate = dp->dpcd[DP_MAX_LINK_RATE];
331331
if (dp->link.cap.link_rate > DP_LINK_BW_8_1 || !dp->link.cap.link_rate)

drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_dp.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ static bool hibmc_dp_get_dpcd(struct hibmc_dp_dev *dp_dev)
4141
if (ret)
4242
return false;
4343

44+
hibmc_dp_update_caps(dp_dev);
45+
4446
dp_dev->is_branch = drm_dp_is_branch(dp_dev->dpcd);
4547

4648
ret = drm_dp_read_desc(dp_dev->aux, &dp_dev->desc, dp_dev->is_branch);

0 commit comments

Comments
 (0)