compositor-drm: rename outputs to follow kernel style
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@collabora.co.uk> Reviewed-by: Derek Foreman <derekf@osg.samsung.com> Tested-by: Drew DeVault <sir@cmpwn.com>
This commit is contained in:
parent
cf34dc2334
commit
89c49b3060
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user