2020-08-11 20:07:57

by Lyude Paul

[permalink] [raw]
Subject: [RFC 10/20] drm/nouveau/kms: Use new drm_dp_has_mst() helper for checking MST caps

Signed-off-by: Lyude Paul <[email protected]>
---
drivers/gpu/drm/nouveau/nouveau_dp.c | 16 +++-------------
1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_dp.c b/drivers/gpu/drm/nouveau/nouveau_dp.c
index d701f09aea645..bb85d81c25244 100644
--- a/drivers/gpu/drm/nouveau/nouveau_dp.c
+++ b/drivers/gpu/drm/nouveau/nouveau_dp.c
@@ -44,7 +44,6 @@ nouveau_dp_probe_dpcd(struct nouveau_connector *nv_connector,
struct nv50_mstm *mstm = NULL;
int ret;
u8 *dpcd = outp->dp.dpcd;
- u8 tmp;

ret = drm_dp_dpcd_read(aux, DP_DPCD_REV, dpcd, DP_RECEIVER_CAP_SIZE);
if (ret == DP_RECEIVER_CAP_SIZE && dpcd[DP_DPCD_REV]) {
@@ -56,19 +55,10 @@ nouveau_dp_probe_dpcd(struct nouveau_connector *nv_connector,
return connector_status_disconnected;
}

- if (nouveau_mst)
+ if (nouveau_mst) {
mstm = outp->dp.mstm;
-
- if (mstm) {
- if (dpcd[DP_DPCD_REV] >= DP_DPCD_REV_12) {
- ret = drm_dp_dpcd_readb(aux, DP_MSTM_CAP, &tmp);
- if (ret < 0)
- return connector_status_disconnected;
-
- mstm->can_mst = !!(tmp & DP_MST_CAP);
- } else {
- mstm->can_mst = false;
- }
+ if (mstm)
+ mstm->can_mst = drm_dp_has_mst(aux, dpcd);
}

return connector_status_connected;
--
2.26.2


2020-08-12 00:13:52

by Ben Skeggs

[permalink] [raw]
Subject: Re: [RFC 10/20] drm/nouveau/kms: Use new drm_dp_has_mst() helper for checking MST caps

On Wed, 12 Aug 2020 at 06:06, Lyude Paul <[email protected]> wrote:
>
> Signed-off-by: Lyude Paul <[email protected]>
Reviewed-by: Ben Skeggs <[email protected]>

> ---
> drivers/gpu/drm/nouveau/nouveau_dp.c | 16 +++-------------
> 1 file changed, 3 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/gpu/drm/nouveau/nouveau_dp.c b/drivers/gpu/drm/nouveau/nouveau_dp.c
> index d701f09aea645..bb85d81c25244 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_dp.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_dp.c
> @@ -44,7 +44,6 @@ nouveau_dp_probe_dpcd(struct nouveau_connector *nv_connector,
> struct nv50_mstm *mstm = NULL;
> int ret;
> u8 *dpcd = outp->dp.dpcd;
> - u8 tmp;
>
> ret = drm_dp_dpcd_read(aux, DP_DPCD_REV, dpcd, DP_RECEIVER_CAP_SIZE);
> if (ret == DP_RECEIVER_CAP_SIZE && dpcd[DP_DPCD_REV]) {
> @@ -56,19 +55,10 @@ nouveau_dp_probe_dpcd(struct nouveau_connector *nv_connector,
> return connector_status_disconnected;
> }
>
> - if (nouveau_mst)
> + if (nouveau_mst) {
> mstm = outp->dp.mstm;
> -
> - if (mstm) {
> - if (dpcd[DP_DPCD_REV] >= DP_DPCD_REV_12) {
> - ret = drm_dp_dpcd_readb(aux, DP_MSTM_CAP, &tmp);
> - if (ret < 0)
> - return connector_status_disconnected;
> -
> - mstm->can_mst = !!(tmp & DP_MST_CAP);
> - } else {
> - mstm->can_mst = false;
> - }
> + if (mstm)
> + mstm->can_mst = drm_dp_has_mst(aux, dpcd);
> }
>
> return connector_status_connected;
> --
> 2.26.2
>
> _______________________________________________
> dri-devel mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/dri-devel