mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
drm/hisilicon/hibmc: add updating link cap in DP detect()
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: 607805abfb ("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
This commit is contained in:
parent
6101f78b68
commit
7d380ef98d
|
|
@ -69,5 +69,6 @@ int hibmc_dp_link_training(struct hibmc_dp_dev *dp);
|
|||
int hibmc_dp_serdes_init(struct hibmc_dp_dev *dp);
|
||||
int hibmc_dp_serdes_rate_switch(u8 rate, struct hibmc_dp_dev *dp);
|
||||
int hibmc_dp_serdes_set_tx_cfg(struct hibmc_dp_dev *dp, u8 train_set[HIBMC_DP_LANE_NUM_MAX]);
|
||||
void hibmc_dp_update_caps(struct hibmc_dp_dev *dp);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -325,7 +325,7 @@ static int hibmc_dp_link_downgrade_training_eq(struct hibmc_dp_dev *dp)
|
|||
return hibmc_dp_link_reduce_rate(dp);
|
||||
}
|
||||
|
||||
static void hibmc_dp_update_caps(struct hibmc_dp_dev *dp)
|
||||
void hibmc_dp_update_caps(struct hibmc_dp_dev *dp)
|
||||
{
|
||||
dp->link.cap.link_rate = dp->dpcd[DP_MAX_LINK_RATE];
|
||||
if (dp->link.cap.link_rate > DP_LINK_BW_8_1 || !dp->link.cap.link_rate)
|
||||
|
|
|
|||
|
|
@ -41,6 +41,8 @@ static bool hibmc_dp_get_dpcd(struct hibmc_dp_dev *dp_dev)
|
|||
if (ret)
|
||||
return false;
|
||||
|
||||
hibmc_dp_update_caps(dp_dev);
|
||||
|
||||
dp_dev->is_branch = drm_dp_is_branch(dp_dev->dpcd);
|
||||
|
||||
ret = drm_dp_read_desc(dp_dev->aux, &dp_dev->desc, dp_dev->is_branch);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user