[PATCH v4 01/10] drm/connector: let drivers declare infoframes as unsupported
Dmitry Baryshkov
dmitry.baryshkov at oss.qualcomm.com
Wed Sep 10 08:16:25 PDT 2025
On Wed, Sep 10, 2025 at 01:03:47PM +0200, Maxime Ripard wrote:
> On Tue, Sep 09, 2025 at 05:51:59PM +0300, Dmitry Baryshkov wrote:
> > Currently DRM framework expects that the HDMI connector driver supports
> > all infoframe types: it generates the data as required and calls into
> > the driver to program all of them, letting the driver to soft-fail if
> > the infoframe is unsupported. This has a major drawback on userspace
> > API: the framework also registers debugfs files for all Infoframe types,
> > possibly surprising the users when infoframe is visible in the debugfs
> > file, but it is not visible on the wire. Drivers are also expected to
> > return success even for unsuppoted InfoFrame types.
> >
> > Let drivers declare that they support only a subset of infoframes,
> > creating a more consistent interface. Make the affected drivers return
> > -EOPNOTSUPP if they are asked to program (or clear) InfoFrames which are
> > not supported.
> >
> > Acked-by: Liu Ying <victor.liu at nxp.com>
> > Acked-by: Daniel Stone <daniels at collabora.com>
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov at oss.qualcomm.com>
>
> Again, I still believe that it's a bad idea, goes against what the spec
> states, and the framework was meant to be.
Please correct me if I'm wrong. The specs (HDMI & CEA) define several
infoframes and whether we should be sending them. If I'm reading it
correctrly, CEA spec explicitly says 'If the Source supports the
transmission of [foo] InfoFrame..." (6.4 - AVI, 6.6 - Audio, 6.7 MPEG,
6.9 - DRM). For other InfoFrames (6.5 SPD, 6.8 NTSC VBI) it just defines
that sending those frames is optional.
We can't even infer support for InfoFrames from the Source features.
E.g. CEA 6.6.1 defines a case when digital audio is allowed to be sent,
without sending Audio InfoFrame.
As we will be getting more and more features, some of the InfoFrames
or data packets will be 'good to have, but not required'.
>
> So, no, sorry. That's still a no for me. Please stop sending that patch
Oops :-)
> unless we have a discussion about it and you convince me that it's
> actually something that we'd need.
My main concern is that the drivers should not opt-out of the features.
E.g. if we start supporting ISRC packets or MPEG or NTSC VBI InfoFrames
(yes, stupid examples), it should not be required to go through all the
drivers, making sure that they disable those. Instead the DRM framework
should be able to make decisions like:
- The driver supports SPD and the VSDB defines SPD, enable this
InfoFrame (BTW, this needs to be done anyway, we should not be sending
SPD if it's not defined in VSDB, if I read it correctly).
- The driver hints that the pixel data has only 10 meaninful bits of
data per component (e.g. out of 12 for DeepColor 36), the Sink has
HF-VSDB, send HF-VSIF.
- The driver has enabled 3D stereo mode, but it doesn't declare support
for HF-VSIF. Send only H14b-VSIF.
Similarly (no, I don't have these on my TODO list, these are just
examples):
- The driver defines support for NTSC VBI, register a VBI device.
- The driver defines support for ISRC packets, register ISRC-related
properties.
- The driver defines support for MPEG Source InfoFrame, provide a way
for media players to report frame type and bit rate.
- The driver provides limited support for Extended HDR DM InfoFrames,
select the correct frame type according to driver capabilities.
Without the 'supported' information we should change atomic_check()
functions to set infoframe->set to false for all unsupported InfoFrames
_and_ go through all the drivers again each time we add support for a
feature (e.g. after adding HF-VSIF support).
--
With best wishes
Dmitry
More information about the linux-arm-kernel
mailing list