From: Jeevan B <jeevan.b@intel.com>
To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org
Cc: jani.nikula@intel.com, nouveau@lists.freedesktop.org,
Oleg Vasilev <oleg.vasilev@intel.com>,
Jeevan B <jeevan.b@intel.com>, Ben Skeggs <bskeggs@redhat.com>
Subject: [PATCH 3/5] drm/nouveau: utilize subconnector property for DP
Date: Tue, 7 Apr 2020 12:20:05 +0530 [thread overview]
Message-ID: <1586242207-23214-3-git-send-email-jeevan.b@intel.com> (raw)
In-Reply-To: <1586242207-23214-1-git-send-email-jeevan.b@intel.com>
From: Oleg Vasilev <oleg.vasilev@intel.com>
Since DP-specific information is stored in driver's structures, every
driver needs to implement subconnector property by itself.
v2: rebase
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: nouveau@lists.freedesktop.org
Signed-off-by: Jeevan B <jeevan.b@intel.com>
Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190829114854.1539-5-oleg.vasilev@intel.com
---
drivers/gpu/drm/nouveau/nouveau_connector.c | 13 +++++++++++++
drivers/gpu/drm/nouveau/nouveau_dp.c | 9 +++++++++
drivers/gpu/drm/nouveau/nouveau_encoder.h | 1 +
3 files changed, 23 insertions(+)
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index 9a9a7f5..6464e48 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -648,6 +648,17 @@ nouveau_connector_detect(struct drm_connector *connector, bool force)
pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
+ if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
+ connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
+ enum drm_mode_subconnector subconnector = DRM_MODE_SUBCONNECTOR_Unknown;
+
+ if (conn_status == connector_status_connected && nv_encoder)
+ subconnector = nv_encoder->dp.subconnector;
+ drm_object_property_set_value(&connector->base,
+ connector->dev->mode_config.dp_subconnector_property,
+ subconnector);
+ }
+
return conn_status;
}
@@ -1373,6 +1384,8 @@ nouveau_connector_create(struct drm_device *dev,
kfree(nv_connector);
return ERR_PTR(ret);
}
+
+ drm_mode_add_dp_subconnector_property(connector);
funcs = &nouveau_connector_funcs;
break;
default:
diff --git a/drivers/gpu/drm/nouveau/nouveau_dp.c b/drivers/gpu/drm/nouveau/nouveau_dp.c
index 2674f15..85eac85 100644
--- a/drivers/gpu/drm/nouveau/nouveau_dp.c
+++ b/drivers/gpu/drm/nouveau/nouveau_dp.c
@@ -62,6 +62,7 @@ nouveau_dp_detect(struct nouveau_encoder *nv_encoder)
struct nouveau_drm *drm = nouveau_drm(dev);
struct nvkm_i2c_aux *aux;
u8 dpcd[8];
+ u8 port_cap[DP_MAX_DOWNSTREAM_PORTS] = {};
int ret;
aux = nv_encoder->aux;
@@ -72,6 +73,14 @@ nouveau_dp_detect(struct nouveau_encoder *nv_encoder)
if (ret)
return ret;
+ if (dpcd[DP_DPCD_REV] > 0x10) {
+ ret = nvkm_rdaux(aux, DP_DOWNSTREAM_PORT_0,
+ port_cap, DP_MAX_DOWNSTREAM_PORTS);
+ if (ret)
+ memset(port_cap, 0, DP_MAX_DOWNSTREAM_PORTS);
+ }
+ nv_encoder->dp.subconnector = drm_dp_subconnector_type(dpcd, port_cap);
+
nv_encoder->dp.link_bw = 27000 * dpcd[1];
nv_encoder->dp.link_nr = dpcd[2] & DP_MAX_LANE_COUNT_MASK;
diff --git a/drivers/gpu/drm/nouveau/nouveau_encoder.h b/drivers/gpu/drm/nouveau/nouveau_encoder.h
index 3517f92..e17971a 100644
--- a/drivers/gpu/drm/nouveau/nouveau_encoder.h
+++ b/drivers/gpu/drm/nouveau/nouveau_encoder.h
@@ -63,6 +63,7 @@ struct nouveau_encoder {
struct nv50_mstm *mstm;
int link_nr;
int link_bw;
+ enum drm_mode_subconnector subconnector;
} dp;
};
--
2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: Jeevan B <jeevan.b@intel.com>
To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org
Cc: jani.nikula@intel.com, nouveau@lists.freedesktop.org,
Oleg Vasilev <oleg.vasilev@intel.com>,
Jeevan B <jeevan.b@intel.com>,
uma.shankar@intel.com, Ben Skeggs <bskeggs@redhat.com>
Subject: [PATCH 3/5] drm/nouveau: utilize subconnector property for DP
Date: Tue, 7 Apr 2020 12:20:05 +0530 [thread overview]
Message-ID: <1586242207-23214-3-git-send-email-jeevan.b@intel.com> (raw)
In-Reply-To: <1586242207-23214-1-git-send-email-jeevan.b@intel.com>
From: Oleg Vasilev <oleg.vasilev@intel.com>
Since DP-specific information is stored in driver's structures, every
driver needs to implement subconnector property by itself.
v2: rebase
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: nouveau@lists.freedesktop.org
Signed-off-by: Jeevan B <jeevan.b@intel.com>
Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190829114854.1539-5-oleg.vasilev@intel.com
---
drivers/gpu/drm/nouveau/nouveau_connector.c | 13 +++++++++++++
drivers/gpu/drm/nouveau/nouveau_dp.c | 9 +++++++++
drivers/gpu/drm/nouveau/nouveau_encoder.h | 1 +
3 files changed, 23 insertions(+)
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index 9a9a7f5..6464e48 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -648,6 +648,17 @@ nouveau_connector_detect(struct drm_connector *connector, bool force)
pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
+ if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
+ connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
+ enum drm_mode_subconnector subconnector = DRM_MODE_SUBCONNECTOR_Unknown;
+
+ if (conn_status == connector_status_connected && nv_encoder)
+ subconnector = nv_encoder->dp.subconnector;
+ drm_object_property_set_value(&connector->base,
+ connector->dev->mode_config.dp_subconnector_property,
+ subconnector);
+ }
+
return conn_status;
}
@@ -1373,6 +1384,8 @@ nouveau_connector_create(struct drm_device *dev,
kfree(nv_connector);
return ERR_PTR(ret);
}
+
+ drm_mode_add_dp_subconnector_property(connector);
funcs = &nouveau_connector_funcs;
break;
default:
diff --git a/drivers/gpu/drm/nouveau/nouveau_dp.c b/drivers/gpu/drm/nouveau/nouveau_dp.c
index 2674f15..85eac85 100644
--- a/drivers/gpu/drm/nouveau/nouveau_dp.c
+++ b/drivers/gpu/drm/nouveau/nouveau_dp.c
@@ -62,6 +62,7 @@ nouveau_dp_detect(struct nouveau_encoder *nv_encoder)
struct nouveau_drm *drm = nouveau_drm(dev);
struct nvkm_i2c_aux *aux;
u8 dpcd[8];
+ u8 port_cap[DP_MAX_DOWNSTREAM_PORTS] = {};
int ret;
aux = nv_encoder->aux;
@@ -72,6 +73,14 @@ nouveau_dp_detect(struct nouveau_encoder *nv_encoder)
if (ret)
return ret;
+ if (dpcd[DP_DPCD_REV] > 0x10) {
+ ret = nvkm_rdaux(aux, DP_DOWNSTREAM_PORT_0,
+ port_cap, DP_MAX_DOWNSTREAM_PORTS);
+ if (ret)
+ memset(port_cap, 0, DP_MAX_DOWNSTREAM_PORTS);
+ }
+ nv_encoder->dp.subconnector = drm_dp_subconnector_type(dpcd, port_cap);
+
nv_encoder->dp.link_bw = 27000 * dpcd[1];
nv_encoder->dp.link_nr = dpcd[2] & DP_MAX_LANE_COUNT_MASK;
diff --git a/drivers/gpu/drm/nouveau/nouveau_encoder.h b/drivers/gpu/drm/nouveau/nouveau_encoder.h
index 3517f92..e17971a 100644
--- a/drivers/gpu/drm/nouveau/nouveau_encoder.h
+++ b/drivers/gpu/drm/nouveau/nouveau_encoder.h
@@ -63,6 +63,7 @@ struct nouveau_encoder {
struct nv50_mstm *mstm;
int link_nr;
int link_bw;
+ enum drm_mode_subconnector subconnector;
} dp;
};
--
2.7.4
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
WARNING: multiple messages have this Message-ID (diff)
From: Jeevan B <jeevan.b@intel.com>
To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org
Cc: jani.nikula@intel.com, nouveau@lists.freedesktop.org,
Oleg Vasilev <oleg.vasilev@intel.com>,
Jeevan B <jeevan.b@intel.com>, Ben Skeggs <bskeggs@redhat.com>
Subject: [Intel-gfx] [PATCH 3/5] drm/nouveau: utilize subconnector property for DP
Date: Tue, 7 Apr 2020 12:20:05 +0530 [thread overview]
Message-ID: <1586242207-23214-3-git-send-email-jeevan.b@intel.com> (raw)
In-Reply-To: <1586242207-23214-1-git-send-email-jeevan.b@intel.com>
From: Oleg Vasilev <oleg.vasilev@intel.com>
Since DP-specific information is stored in driver's structures, every
driver needs to implement subconnector property by itself.
v2: rebase
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: nouveau@lists.freedesktop.org
Signed-off-by: Jeevan B <jeevan.b@intel.com>
Signed-off-by: Oleg Vasilev <oleg.vasilev@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190829114854.1539-5-oleg.vasilev@intel.com
---
drivers/gpu/drm/nouveau/nouveau_connector.c | 13 +++++++++++++
drivers/gpu/drm/nouveau/nouveau_dp.c | 9 +++++++++
drivers/gpu/drm/nouveau/nouveau_encoder.h | 1 +
3 files changed, 23 insertions(+)
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index 9a9a7f5..6464e48 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -648,6 +648,17 @@ nouveau_connector_detect(struct drm_connector *connector, bool force)
pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
+ if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
+ connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
+ enum drm_mode_subconnector subconnector = DRM_MODE_SUBCONNECTOR_Unknown;
+
+ if (conn_status == connector_status_connected && nv_encoder)
+ subconnector = nv_encoder->dp.subconnector;
+ drm_object_property_set_value(&connector->base,
+ connector->dev->mode_config.dp_subconnector_property,
+ subconnector);
+ }
+
return conn_status;
}
@@ -1373,6 +1384,8 @@ nouveau_connector_create(struct drm_device *dev,
kfree(nv_connector);
return ERR_PTR(ret);
}
+
+ drm_mode_add_dp_subconnector_property(connector);
funcs = &nouveau_connector_funcs;
break;
default:
diff --git a/drivers/gpu/drm/nouveau/nouveau_dp.c b/drivers/gpu/drm/nouveau/nouveau_dp.c
index 2674f15..85eac85 100644
--- a/drivers/gpu/drm/nouveau/nouveau_dp.c
+++ b/drivers/gpu/drm/nouveau/nouveau_dp.c
@@ -62,6 +62,7 @@ nouveau_dp_detect(struct nouveau_encoder *nv_encoder)
struct nouveau_drm *drm = nouveau_drm(dev);
struct nvkm_i2c_aux *aux;
u8 dpcd[8];
+ u8 port_cap[DP_MAX_DOWNSTREAM_PORTS] = {};
int ret;
aux = nv_encoder->aux;
@@ -72,6 +73,14 @@ nouveau_dp_detect(struct nouveau_encoder *nv_encoder)
if (ret)
return ret;
+ if (dpcd[DP_DPCD_REV] > 0x10) {
+ ret = nvkm_rdaux(aux, DP_DOWNSTREAM_PORT_0,
+ port_cap, DP_MAX_DOWNSTREAM_PORTS);
+ if (ret)
+ memset(port_cap, 0, DP_MAX_DOWNSTREAM_PORTS);
+ }
+ nv_encoder->dp.subconnector = drm_dp_subconnector_type(dpcd, port_cap);
+
nv_encoder->dp.link_bw = 27000 * dpcd[1];
nv_encoder->dp.link_nr = dpcd[2] & DP_MAX_LANE_COUNT_MASK;
diff --git a/drivers/gpu/drm/nouveau/nouveau_encoder.h b/drivers/gpu/drm/nouveau/nouveau_encoder.h
index 3517f92..e17971a 100644
--- a/drivers/gpu/drm/nouveau/nouveau_encoder.h
+++ b/drivers/gpu/drm/nouveau/nouveau_encoder.h
@@ -63,6 +63,7 @@ struct nouveau_encoder {
struct nv50_mstm *mstm;
int link_nr;
int link_bw;
+ enum drm_mode_subconnector subconnector;
} dp;
};
--
2.7.4
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2020-04-07 6:50 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-07 6:50 [PATCH 1/5] drm: report dp downstream port type as a subconnector property Jeevan B
2020-04-07 6:50 ` [Intel-gfx] " Jeevan B
2020-04-07 6:50 ` [PATCH 2/5] drm/i915: utilize subconnector property for DP Jeevan B
2020-04-07 6:50 ` [Intel-gfx] " Jeevan B
2020-04-15 10:01 ` Jani Nikula
2020-04-15 10:01 ` [Intel-gfx] " Jani Nikula
2020-04-21 9:37 ` Jeevan B
2020-04-21 9:37 ` [Intel-gfx] " Jeevan B
2020-04-07 6:50 ` Jeevan B [this message]
2020-04-07 6:50 ` [Intel-gfx] [PATCH 3/5] drm/nouveau: " Jeevan B
2020-04-07 6:50 ` Jeevan B
2020-04-07 6:50 ` [PATCH 4/5] drm/amdgpu: utilize subconnector property for DP through atombios Jeevan B
2020-04-07 6:50 ` Jeevan B
2020-04-07 6:50 ` [Intel-gfx] " Jeevan B
2020-04-15 10:04 ` Jani Nikula
2020-04-15 10:04 ` Jani Nikula
2020-04-15 10:04 ` Jani Nikula
2020-04-16 13:53 ` Alex Deucher
2020-04-16 13:53 ` Alex Deucher
2020-04-16 13:53 ` Alex Deucher
2020-04-16 18:39 ` Jani Nikula
2020-04-16 18:39 ` Jani Nikula
2020-04-16 18:39 ` Jani Nikula
2020-04-07 6:50 ` [PATCH 5/5] drm/amdgpu: utilize subconnector property for DP through DisplayManager Jeevan B
2020-04-07 6:50 ` Jeevan B
2020-04-07 6:50 ` [Intel-gfx] " Jeevan B
2020-04-07 7:41 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/5] drm: report dp downstream port type as a subconnector property Patchwork
2020-04-07 7:45 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2020-04-07 8:06 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2020-04-07 15:37 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2020-04-15 10:01 ` [PATCH 1/5] " Jani Nikula
2020-04-15 10:01 ` [Intel-gfx] " Jani Nikula
2020-04-21 9:33 ` Jeevan B
2020-04-21 9:33 ` [Intel-gfx] " Jeevan B
-- strict thread matches above, loose matches on Subject: below --
2020-04-24 12:50 Jeevan B
2020-04-24 12:50 ` [PATCH 3/5] drm/nouveau: utilize subconnector property for DP Jeevan B
2020-04-24 12:50 ` Jeevan B
2020-04-01 12:12 [Intel-gfx] [PATCH 1/5] drm: report dp downstream port type as a subconnector property Jeevan B
[not found] ` <1585743148-31205-1-git-send-email-jeevan.b-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2020-04-01 12:12 ` [PATCH 3/5] drm/nouveau: utilize subconnector property for DP Jeevan B
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1586242207-23214-3-git-send-email-jeevan.b@intel.com \
--to=jeevan.b@intel.com \
--cc=bskeggs@redhat.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=nouveau@lists.freedesktop.org \
--cc=oleg.vasilev@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.