mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-12-16 08:56:26 -05:00
backend/drm: add support for the subconnector property
The subconnector property indicates the connector sub-type. This is useful because that usually indicates what kind of connector the user has plugged in to their monitor, e.g. a DisplayPort-to-DVI cable will indicate a DVI subconnector. Also some laptops have non-DP connectors that are internally linked to a DP port on the GPU. Set the output description accordingly. See https://drmdb.emersion.fr/properties/3233857728/subconnector
This commit is contained in:
parent
6af748171a
commit
cb6f584496
3 changed files with 43 additions and 2 deletions
|
|
@ -1,3 +1,4 @@
|
|||
#define _POSIX_C_SOURCE 200809L
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
|
@ -24,6 +25,7 @@ static const struct prop_info connector_info[] = {
|
|||
{ "EDID", INDEX(edid) },
|
||||
{ "PATH", INDEX(path) },
|
||||
{ "link-status", INDEX(link_status) },
|
||||
{ "subconnector", INDEX(subconnector) },
|
||||
{ "vrr_capable", INDEX(vrr_capable) },
|
||||
#undef INDEX
|
||||
};
|
||||
|
|
@ -151,3 +153,27 @@ void *get_drm_prop_blob(int fd, uint32_t obj, uint32_t prop, size_t *ret_len) {
|
|||
drmModeFreePropertyBlob(blob);
|
||||
return ptr;
|
||||
}
|
||||
|
||||
char *get_drm_prop_enum(int fd, uint32_t obj, uint32_t prop_id) {
|
||||
uint64_t value;
|
||||
if (!get_drm_prop(fd, obj, prop_id, &value)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
drmModePropertyRes *prop = drmModeGetProperty(fd, prop_id);
|
||||
if (!prop) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
char *str = NULL;
|
||||
for (int i = 0; i < prop->count_enums; i++) {
|
||||
if (prop->enums[i].value == value) {
|
||||
str = strdup(prop->enums[i].name);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
drmModeFreeProperty(prop);
|
||||
|
||||
return str;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue