-void drv_insert_supported_combination(struct driver *drv, uint32_t format,
- uint64_t usage, uint64_t modifier);
-void drv_insert_combinations(struct driver *drv,
- struct supported_combination *combos,
- uint32_t size);
-int drv_add_kms_flags(struct driver *drv);
+int drv_add_combination(struct driver *drv, uint32_t format, struct format_metadata *metadata,
+ uint64_t usage);
+void drv_add_combinations(struct driver *drv, const uint32_t *formats, uint32_t num_formats,
+ struct format_metadata *metadata, uint64_t usage);
+void drv_modify_combination(struct driver *drv, uint32_t format, struct format_metadata *metadata,
+ uint64_t usage);
+struct drv_array *drv_query_kms(struct driver *drv);
+int drv_modify_linear_combinations(struct driver *drv);
+uint64_t drv_pick_modifier(const uint64_t *modifiers, uint32_t count,
+ const uint64_t *modifier_order, uint32_t order_count);