On 2019-08-26 2:05 p.m., David Francis wrote: > Synaptics DP1.4 hubs (BRANCH_ID 0x90CC24) do not > support virtual DPCD registers, but do support DSC. > The DSC caps can be read from the physical aux, > like in SST DSC. These hubs have many different > DEVICE_IDs. Add a new quirk to detect this case. > > Cc: Lyude Paul <lyude@xxxxxxxxxx> > Cc: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> > Signed-off-by: David Francis <David.Francis@xxxxxxx> > --- > drivers/gpu/drm/drm_dp_helper.c | 2 ++ > include/drm/drm_dp_helper.h | 7 +++++++ > 2 files changed, 9 insertions(+) > > diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c > index 2cc21eff4cf3..fc39323e7d52 100644 > --- a/drivers/gpu/drm/drm_dp_helper.c > +++ b/drivers/gpu/drm/drm_dp_helper.c > @@ -1270,6 +1270,8 @@ static const struct dpcd_quirk dpcd_quirk_list[] = { > { OUI(0x00, 0x10, 0xfa), DEVICE_ID_ANY, false, BIT(DP_DPCD_QUIRK_NO_PSR) }, > /* CH7511 seems to leave SINK_COUNT zeroed */ > { OUI(0x00, 0x00, 0x00), DEVICE_ID('C', 'H', '7', '5', '1', '1'), false, BIT(DP_DPCD_QUIRK_NO_SINK_COUNT) }, > + /* Synaptics DP1.4 MST hubs can support DSC without virtual DPCD */ > + { OUI(0x90, 0xCC, 0x24), DEVICE_ID_ANY, true, BIT(DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD) }, This seems to be generic OUI for Synaptics [1]. Could this cause us to cast the net too wide? Even if we check that it's DP_DPCD_REV >= 1.4 there's a good chance Synaptics is fixing this in the future and won't require the quirk. [1] https://aruljohn.com/mac/vendor/Synaptics Harry > }; > > #undef OUI > diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h > index 8364502f92cf..a1331b08705f 100644 > --- a/include/drm/drm_dp_helper.h > +++ b/include/drm/drm_dp_helper.h > @@ -1434,6 +1434,13 @@ enum drm_dp_quirk { > * The driver should ignore SINK_COUNT during detection. > */ > DP_DPCD_QUIRK_NO_SINK_COUNT, > + /** > + * @DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD: > + * > + * The device supports MST DSC despite not supporting Virtual DPCD. > + * The DSC caps can be read from the physical aux instead. > + */ > + DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD, > }; > > /** > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel