[PATCH weston] compositor-drm: rename outputs to follow kernel style
Bryce Harrington
bryce at osg.samsung.com
Thu Aug 20 11:05:39 PDT 2015
On Thu, Aug 20, 2015 at 10:04:45AM +0300, Pekka Paalanen wrote:
> On Wed, 19 Aug 2015 10:46:41 -0500
> Derek Foreman <derekf at osg.samsung.com> wrote:
>
> > Excellent!
> >
> > Incidentally, this is also how Enlightenment names its outputs.
> >
> > Reviewed-by: Derek Foreman <derekf at osg.samsung.com>
>
> Cheers.
>
> Any objections to landing this for 1.9-beta? It does force users to fix
> their weston.ini if they have any DRM output configurations there.
No objections, if it can be landed soonish. It'd be nice if someone
could test it out manually just for a sanity check.
(I wish we had some tests with coverage of this chunk of code, so I could
give my usual plug for adding test cases; if we did, it'd probably
pretty easy to add a couple test cases here and give us a bit extra
confidence.)
Bryce
> Thanks,
> pq
>
> > On 19/08/15 07:54 AM, Pekka Paalanen wrote:
> > > From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
> > >
> > > The problem with the old table of names is that it contains duplicates.
> > > It is possible to end up with multiple outputs with the same name. In
> > > that case you cannot write individual configurations for these outputs
> > > in weston.ini, because they are matched by the name.
> > >
> > > Change all names to follow the kernel naming scheme set in
> > > drivers/gpu/drm/drm_crtc.c. The snprintf format now follows the kernel
> > > style, too. Use the DRM_MODE_CONNECTOR_* macros rather than implicit
> > > table ordering.
> > >
> > > Completely new entries in the table are "Virtual" and "DSI".
> > >
> > > There should not be any gaps in the macro values, but if there are, deal
> > > with a NULL entry.
> > >
> > > Also change "UNKNOWN" to "UNNAMED" so it's easier to distinguish from
> > > "Unknown" by the kernel.
> > >
> > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89361
> > > Signed-off-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
> > > ---
> > > src/compositor-drm.c | 42 +++++++++++++++++++++++-------------------
> > > 1 file changed, 23 insertions(+), 19 deletions(-)
> > >
> > > diff --git a/src/compositor-drm.c b/src/compositor-drm.c
> > > index 26f0012..400bc0c 100644
> > > --- a/src/compositor-drm.c
> > > +++ b/src/compositor-drm.c
> > > @@ -1745,34 +1745,38 @@ drm_set_dpms(struct weston_output *output_base, enum dpms_enum level)
> > > }
> > >
> > > static const char * const connector_type_names[] = {
> > > - "None",
> > > - "VGA",
> > > - "DVI",
> > > - "DVI",
> > > - "DVI",
> > > - "Composite",
> > > - "TV",
> > > - "LVDS",
> > > - "CTV",
> > > - "DIN",
> > > - "DP",
> > > - "HDMI",
> > > - "HDMI",
> > > - "TV",
> > > - "eDP",
> > > + [DRM_MODE_CONNECTOR_Unknown] = "Unknown",
> > > + [DRM_MODE_CONNECTOR_VGA] = "VGA",
> > > + [DRM_MODE_CONNECTOR_DVII] = "DVI-I",
> > > + [DRM_MODE_CONNECTOR_DVID] = "DVI-D",
> > > + [DRM_MODE_CONNECTOR_DVIA] = "DVI-A",
> > > + [DRM_MODE_CONNECTOR_Composite] = "Composite",
> > > + [DRM_MODE_CONNECTOR_SVIDEO] = "SVIDEO",
> > > + [DRM_MODE_CONNECTOR_LVDS] = "LVDS",
> > > + [DRM_MODE_CONNECTOR_Component] = "Component",
> > > + [DRM_MODE_CONNECTOR_9PinDIN] = "DIN",
> > > + [DRM_MODE_CONNECTOR_DisplayPort] = "DP",
> > > + [DRM_MODE_CONNECTOR_HDMIA] = "HDMI-A",
> > > + [DRM_MODE_CONNECTOR_HDMIB] = "HDMI-B",
> > > + [DRM_MODE_CONNECTOR_TV] = "TV",
> > > + [DRM_MODE_CONNECTOR_eDP] = "eDP",
> > > + [DRM_MODE_CONNECTOR_VIRTUAL] = "Virtual",
> > > + [DRM_MODE_CONNECTOR_DSI] = "DSI",
> > > };
> > >
> > > static char *
> > > make_connector_name(const drmModeConnector *con)
> > > {
> > > char name[32];
> > > - const char *type_name;
> > > + const char *type_name = NULL;
> > >
> > > if (con->connector_type < ARRAY_LENGTH(connector_type_names))
> > > type_name = connector_type_names[con->connector_type];
> > > - else
> > > - type_name = "UNKNOWN";
> > > - snprintf(name, sizeof name, "%s%d", type_name, con->connector_type_id);
> > > +
> > > + if (!type_name)
> > > + type_name = "UNNAMED";
> > > +
> > > + snprintf(name, sizeof name, "%s-%d", type_name, con->connector_type_id);
> > >
> > > return strdup(name);
> > > }
> > >
> >
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2
>
> iQIVAwUBVdV8FCNf5bQRqqqnAQgouRAAgwqKVHYvGhtjqv85EFrzOn+GJX5bSYKm
> 0SKDa9hYypXDCV278t2Knc5vhPATqyL6BvKAeczGQSTRzROuyXzzULboxyR2ZCC1
> fStYSfULNoU3DuWUhShxEHqkfv06bFapALdITchWt6EcZsL4pJPefnPn8DceDeqv
> reVhokeS70GOP+7rVWjpuEytJLXKy473zSkwutvhcu7TS+kc2o322sQqTYQ3Sd8z
> UTn+GcxEk1YXr5BlmDDeqdMVPlfG4p6h+X+ugwNcgjd1/HqWWIOM+thcoYQeJ0n7
> lY5nvbNDbH//lR7fKnsr1/jPwFi70clDzpVPTOeQx85vF/yJOfapfLqHA4Fysa6H
> 1E064SJwIFHTxT8T/t4EK+cluB72Dbl5N1USpyvw2/kaGAw2POgHX+811KIUK3/2
> 4oumE7dykXPN9dK5XxiP+OFU1Sk3wg+LRJSCi9y3t+yACsmdmD1VxdPaJrllBpiG
> C4/sWDlz8uq8g/qsximxul8BYtGyjDts6Clq0OVKCN0W1Q1M2SuoeO4p5y+PcbRr
> d1r77oaoeqPoT6EQpmmcPOB75iFmDBtiKYt6hicrqAahxesILFDJHYEwdUcaCatb
> vO/ztdqmh1UVZt/ynjY3Wc5X8gazv/uLe3MkKP7Ie35Llwj0sgK/GOUgU6FpXc8a
> LNA7+nA6+ic=
> =0zFu
> -----END PGP SIGNATURE-----
More information about the wayland-devel
mailing list