kms/mode: Add mode flags

Will be used to add flags modes specific to MetaKmsMode.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1488>
This commit is contained in:
Jonas Ådahl 2020-07-02 11:50:34 +02:00 committed by Marge Bot
parent eb66449ab7
commit 2c4a3c5959
4 changed files with 21 additions and 3 deletions

View File

@ -364,7 +364,8 @@ state_set_modes (MetaKmsConnectorState *state,
{ {
MetaKmsMode *mode; MetaKmsMode *mode;
mode = meta_kms_mode_new (impl_device, &drm_connector->modes[i]); mode = meta_kms_mode_new (impl_device, &drm_connector->modes[i],
META_KMS_MODE_FLAG_NONE);
state->modes = g_list_prepend (state->modes, mode); state->modes = g_list_prepend (state->modes, mode);
} }
state->modes = g_list_reverse (state->modes); state->modes = g_list_reverse (state->modes);

View File

@ -28,6 +28,7 @@ uint32_t meta_kms_mode_ensure_blob_id (MetaKmsMode *mode,
void meta_kms_mode_free (MetaKmsMode *mode); void meta_kms_mode_free (MetaKmsMode *mode);
MetaKmsMode * meta_kms_mode_new (MetaKmsImplDevice *impl_device, MetaKmsMode * meta_kms_mode_new (MetaKmsImplDevice *impl_device,
const drmModeModeInfo *drm_mode); const drmModeModeInfo *drm_mode,
MetaKmsModeFlag flags);
#endif /* META_KMS_MODE_PRIVATE_H */ #endif /* META_KMS_MODE_PRIVATE_H */

View File

@ -26,6 +26,7 @@
struct _MetaKmsMode struct _MetaKmsMode
{ {
MetaKmsImplDevice *impl_device; MetaKmsImplDevice *impl_device;
MetaKmsModeFlag flags;
drmModeModeInfo drm_mode; drmModeModeInfo drm_mode;
uint32_t blob_id; uint32_t blob_id;
}; };
@ -54,6 +55,12 @@ meta_kms_mode_ensure_blob_id (MetaKmsMode *mode,
return mode->blob_id; return mode->blob_id;
} }
MetaKmsModeFlag
meta_kms_mode_get_flags (MetaKmsMode *mode)
{
return mode->flags;
}
const drmModeModeInfo * const drmModeModeInfo *
meta_kms_mode_get_drm_mode (MetaKmsMode *mode) meta_kms_mode_get_drm_mode (MetaKmsMode *mode)
{ {
@ -77,12 +84,14 @@ meta_kms_mode_free (MetaKmsMode *mode)
MetaKmsMode * MetaKmsMode *
meta_kms_mode_new (MetaKmsImplDevice *impl_device, meta_kms_mode_new (MetaKmsImplDevice *impl_device,
const drmModeModeInfo *drm_mode) const drmModeModeInfo *drm_mode,
MetaKmsModeFlag flags)
{ {
MetaKmsMode *mode; MetaKmsMode *mode;
mode = g_new0 (MetaKmsMode, 1); mode = g_new0 (MetaKmsMode, 1);
mode->impl_device = impl_device; mode->impl_device = impl_device;
mode->flags = flags;
mode->drm_mode = *drm_mode; mode->drm_mode = *drm_mode;
return mode; return mode;

View File

@ -26,6 +26,13 @@
#include "backends/native/meta-kms-types.h" #include "backends/native/meta-kms-types.h"
typedef enum _MetaKmsModeFlag
{
META_KMS_MODE_FLAG_NONE = 0,
} MetaKmsModeFlag;
MetaKmsModeFlag meta_kms_mode_get_flags (MetaKmsMode *mode);
const drmModeModeInfo * meta_kms_mode_get_drm_mode (MetaKmsMode *mode); const drmModeModeInfo * meta_kms_mode_get_drm_mode (MetaKmsMode *mode);
#endif /* META_KMS_MODE_H */ #endif /* META_KMS_MODE_H */