xf86drmMode: introduce drmModeConnectorGetPossibleCrtcs
Nowadays, users don't really care about encoders except for retrieving the list of CRTCs compatible with a connector. Introduce a new function so that users no longer need to deal with encoders. This is a re-do of [1], but with a slightly different API. Signed-off-by: Simon Ser <contact@emersion.fr> [1]: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/102main
parent
0427c1f669
commit
3ee004ef52
|
@ -103,6 +103,7 @@ drmModeAtomicGetCursor
|
||||||
drmModeAtomicMerge
|
drmModeAtomicMerge
|
||||||
drmModeAtomicSetCursor
|
drmModeAtomicSetCursor
|
||||||
drmModeAttachMode
|
drmModeAttachMode
|
||||||
|
drmModeConnectorGetPossibleCrtcs
|
||||||
drmModeConnectorSetProperty
|
drmModeConnectorSetProperty
|
||||||
drmModeCreateLease
|
drmModeCreateLease
|
||||||
drmModeCreatePropertyBlob
|
drmModeCreatePropertyBlob
|
||||||
|
|
|
@ -610,6 +610,29 @@ drm_public drmModeConnectorPtr drmModeGetConnectorCurrent(int fd, uint32_t conne
|
||||||
return _drmModeGetConnector(fd, connector_id, 0);
|
return _drmModeGetConnector(fd, connector_id, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
drm_public uint32_t drmModeConnectorGetPossibleCrtcs(int fd,
|
||||||
|
const drmModeConnector *connector)
|
||||||
|
{
|
||||||
|
drmModeEncoder *encoder;
|
||||||
|
int i;
|
||||||
|
uint32_t possible_crtcs;
|
||||||
|
|
||||||
|
possible_crtcs = 0;
|
||||||
|
for (i = 0; i < connector->count_encoders; i++) {
|
||||||
|
encoder = drmModeGetEncoder(fd, connector->encoders[i]);
|
||||||
|
if (!encoder) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
possible_crtcs |= encoder->possible_crtcs;
|
||||||
|
drmModeFreeEncoder(encoder);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (possible_crtcs == 0)
|
||||||
|
errno = ENOENT;
|
||||||
|
return possible_crtcs;
|
||||||
|
}
|
||||||
|
|
||||||
drm_public int drmModeAttachMode(int fd, uint32_t connector_id, drmModeModeInfoPtr mode_info)
|
drm_public int drmModeAttachMode(int fd, uint32_t connector_id, drmModeModeInfoPtr mode_info)
|
||||||
{
|
{
|
||||||
struct drm_mode_mode_cmd res;
|
struct drm_mode_mode_cmd res;
|
||||||
|
|
|
@ -380,6 +380,19 @@ extern drmModeConnectorPtr drmModeGetConnector(int fd,
|
||||||
extern drmModeConnectorPtr drmModeGetConnectorCurrent(int fd,
|
extern drmModeConnectorPtr drmModeGetConnectorCurrent(int fd,
|
||||||
uint32_t connector_id);
|
uint32_t connector_id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a bitmask of CRTCs a connector is compatible with.
|
||||||
|
*
|
||||||
|
* The bits reference CRTC indices. If the n-th CRTC is compatible with the
|
||||||
|
* connector, the n-th bit will be set. The indices are taken from the array
|
||||||
|
* returned by drmModeGetResources(). The indices are different from the object
|
||||||
|
* IDs.
|
||||||
|
*
|
||||||
|
* Zero is returned on error.
|
||||||
|
*/
|
||||||
|
extern uint32_t drmModeConnectorGetPossibleCrtcs(int fd,
|
||||||
|
const drmModeConnector *connector);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attaches the given mode to an connector.
|
* Attaches the given mode to an connector.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue