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;
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_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);
MetaKmsMode * meta_kms_mode_new (MetaKmsImplDevice *impl_device,
const drmModeModeInfo *drm_mode);
const drmModeModeInfo *drm_mode,
MetaKmsModeFlag flags);
#endif /* META_KMS_MODE_PRIVATE_H */

View File

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

View File

@ -26,6 +26,13 @@
#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);
#endif /* META_KMS_MODE_H */