Re: [PATCH v2 1/3] drm/dp_mst: add passthrough_aux to struct drm_dp_mst_port
From: Lyude Paul
Date: Tue Aug 09 2022 - 18:02:46 EST
Ah yes of course! Probably should have asked when I gave the r-b :). Also,
just so patchwork actually catches it I will say the magic incantation:
Reviewed-by: Lyude Paul <lyude@xxxxxxxxxx>
Do we want to merge just this patch to drm-misc-next, or do you want to merge
the whole series through there? If you'd rather just merge this through amd's
branch I'm fine with that as well
On Tue, 2022-08-09 at 11:15 -0400, Hamza Mahfooz wrote:
> 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@xxxxxxxxxx>
> >
> > 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@xxxxxxx>
> > > ---
> > > 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;
> >
>
--
Cheers,
Lyude Paul (she/her)
Software Engineer at Red Hat