Commit 34f66763 authored by Hamza Mahfooz's avatar Hamza Mahfooz Committed by Alex Deucher

drm/dp_mst: add passthrough_aux to struct drm_dp_mst_port

Currently, there is no way to identify if DSC pass-through can be
enabled and what aux DSC pass-through requests ought to be sent to. So,
add a variable to struct drm_dp_mst_port that keeps track of the
aforementioned information.
Reviewed-by: default avatarLyude Paul <lyude@redhat.com>
Signed-off-by: default avatarHamza Mahfooz <hamza.mahfooz@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 33fa4f1d
...@@ -5908,8 +5908,10 @@ struct drm_dp_aux *drm_dp_mst_dsc_aux_for_port(struct drm_dp_mst_port *port) ...@@ -5908,8 +5908,10 @@ struct drm_dp_aux *drm_dp_mst_dsc_aux_for_port(struct drm_dp_mst_port *port)
/* Enpoint decompression with DP-to-DP peer device */ /* Enpoint decompression with DP-to-DP peer device */
if ((endpoint_dsc & DP_DSC_DECOMPRESSION_IS_SUPPORTED) && if ((endpoint_dsc & DP_DSC_DECOMPRESSION_IS_SUPPORTED) &&
(endpoint_fec & DP_FEC_CAPABLE) && (endpoint_fec & DP_FEC_CAPABLE) &&
(upstream_dsc & 0x2) /* DSC passthrough */) (upstream_dsc & DP_DSC_PASSTHROUGH_IS_SUPPORTED)) {
port->passthrough_aux = &immediate_upstream_port->aux;
return &port->aux; return &port->aux;
}
/* Virtual DPCD decompression with DP-to-DP peer device */ /* Virtual DPCD decompression with DP-to-DP peer device */
return &immediate_upstream_port->aux; return &immediate_upstream_port->aux;
......
...@@ -239,6 +239,7 @@ ...@@ -239,6 +239,7 @@
#define DP_DSC_SUPPORT 0x060 /* DP 1.4 */ #define DP_DSC_SUPPORT 0x060 /* DP 1.4 */
# define DP_DSC_DECOMPRESSION_IS_SUPPORTED (1 << 0) # define DP_DSC_DECOMPRESSION_IS_SUPPORTED (1 << 0)
# define DP_DSC_PASSTHROUGH_IS_SUPPORTED (1 << 1)
#define DP_DSC_REV 0x061 #define DP_DSC_REV 0x061
# define DP_DSC_MAJOR_MASK (0xf << 0) # define DP_DSC_MAJOR_MASK (0xf << 0)
......
...@@ -86,6 +86,8 @@ struct drm_dp_vcpi { ...@@ -86,6 +86,8 @@ struct drm_dp_vcpi {
* @next: link to next port on this branch device * @next: link to next port on this branch device
* @aux: i2c aux transport to talk to device connected to this port, protected * @aux: i2c aux transport to talk to device connected to this port, protected
* by &drm_dp_mst_topology_mgr.base.lock. * by &drm_dp_mst_topology_mgr.base.lock.
* @passthrough_aux: parent aux to which DSC pass-through requests should be
* sent, only set if DSC pass-through is possible.
* @parent: branch device parent of this port * @parent: branch device parent of this port
* @vcpi: Virtual Channel Payload info for this port. * @vcpi: Virtual Channel Payload info for this port.
* @connector: DRM connector this port is connected to. Protected by * @connector: DRM connector this port is connected to. Protected by
...@@ -140,6 +142,7 @@ struct drm_dp_mst_port { ...@@ -140,6 +142,7 @@ struct drm_dp_mst_port {
*/ */
struct drm_dp_mst_branch *mstb; struct drm_dp_mst_branch *mstb;
struct drm_dp_aux aux; /* i2c bus for this port? */ struct drm_dp_aux aux; /* i2c bus for this port? */
struct drm_dp_aux *passthrough_aux;
struct drm_dp_mst_branch *parent; struct drm_dp_mst_branch *parent;
struct drm_dp_vcpi vcpi; struct drm_dp_vcpi vcpi;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment