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: Lyude Paul <lyude@redhat.com> Signed-off-by: Hamza Mahfooz <hamza.mahfooz@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
33fa4f1df5
commit
34f667634a
|
@ -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 */
|
||||
if ((endpoint_dsc & DP_DSC_DECOMPRESSION_IS_SUPPORTED) &&
|
||||
(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;
|
||||
}
|
||||
|
||||
/* Virtual DPCD decompression with DP-to-DP peer device */
|
||||
return &immediate_upstream_port->aux;
|
||||
|
|
|
@ -239,6 +239,7 @@
|
|||
|
||||
#define DP_DSC_SUPPORT 0x060 /* DP 1.4 */
|
||||
# define DP_DSC_DECOMPRESSION_IS_SUPPORTED (1 << 0)
|
||||
# define DP_DSC_PASSTHROUGH_IS_SUPPORTED (1 << 1)
|
||||
|
||||
#define DP_DSC_REV 0x061
|
||||
# define DP_DSC_MAJOR_MASK (0xf << 0)
|
||||
|
|
|
@ -86,6 +86,8 @@ struct drm_dp_vcpi {
|
|||
* @next: link to next port on this branch device
|
||||
* @aux: i2c aux transport to talk to device connected to this port, protected
|
||||
* 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
|
||||
* @vcpi: Virtual Channel Payload info for this port.
|
||||
* @connector: DRM connector this port is connected to. Protected by
|
||||
|
@ -140,6 +142,7 @@ struct drm_dp_mst_port {
|
|||
*/
|
||||
struct drm_dp_mst_branch *mstb;
|
||||
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_vcpi vcpi;
|
||||
|
|
Loading…
Reference in New Issue