lkml.org 
[lkml]   [2022]   [Aug]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH v2 1/3] drm/dp_mst: add passthrough_aux to struct drm_dp_mst_port
    From
    Hey Lyude,

    On 2022-08-05 17:17, Lyude Paul wrote:
    > lgtm!
    >

    Any chance you can apply this to drm-misc-next?

    > Reviewed-by: Lyude Paul <lyude@redhat.com>
    >
    > On Fri, 2022-08-05 at 17:13 -0400, Hamza Mahfooz wrote:
    >> 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.
    >>
    >> Signed-off-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
    >> ---
    >> v2: define DP_DSC_PASSTHROUGH_IS_SUPPORTED
    >> ---
    >> drivers/gpu/drm/display/drm_dp_mst_topology.c | 4 +++-
    >> include/drm/display/drm_dp.h | 1 +
    >> include/drm/display/drm_dp_mst_helper.h | 3 +++
    >> 3 files changed, 7 insertions(+), 1 deletion(-)
    >>
    >> diff --git a/drivers/gpu/drm/display/drm_dp_mst_topology.c b/drivers/gpu/drm/display/drm_dp_mst_topology.c
    >> index 67b3b9697da7..71915afd9892 100644
    >> --- a/drivers/gpu/drm/display/drm_dp_mst_topology.c
    >> +++ b/drivers/gpu/drm/display/drm_dp_mst_topology.c
    >> @@ -5921,8 +5921,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;
    >> diff --git a/include/drm/display/drm_dp.h b/include/drm/display/drm_dp.h
    >> index 9e3aff7e68bb..4d0abe4c7ea9 100644
    >> --- a/include/drm/display/drm_dp.h
    >> +++ b/include/drm/display/drm_dp.h
    >> @@ -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)
    >> diff --git a/include/drm/display/drm_dp_mst_helper.h b/include/drm/display/drm_dp_mst_helper.h
    >> index 10adec068b7f..4a39c95f8afd 100644
    >> --- a/include/drm/display/drm_dp_mst_helper.h
    >> +++ b/include/drm/display/drm_dp_mst_helper.h
    >> @@ -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;
    >

    --
    Hamza

    \
     
     \ /
      Last update: 2022-08-09 17:16    [W:2.265 / U:0.292 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site