mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 03:23:53 -04:00
drm/connector: Add a function to lookup a TV mode by its name
As part of the command line parsing rework coming in the next patches, we'll need to lookup drm_connector_tv_mode values by their name, already defined in drm_tv_mode_enum_list. In order to avoid any code duplication, let's do a function that will perform a lookup of a TV mode name and return its value. Reviewed-by: Noralf Trønnes <noralf@tronnes.org> Tested-by: Mateusz Kwiatkowski <kfyatek+publicgit@gmail.com> Acked-in-principle-or-something-like-that-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://lore.kernel.org/r/20220728-rpi-analog-tv-properties-v10-7-256dad125326@cerno.tech Signed-off-by: Maxime Ripard <maxime@cerno.tech>
This commit is contained in:
@@ -995,6 +995,30 @@ static const struct drm_prop_enum_list drm_tv_mode_enum_list[] = {
|
||||
};
|
||||
DRM_ENUM_NAME_FN(drm_get_tv_mode_name, drm_tv_mode_enum_list)
|
||||
|
||||
/**
|
||||
* drm_get_tv_mode_from_name - Translates a TV mode name into its enum value
|
||||
* @name: TV Mode name we want to convert
|
||||
* @len: Length of @name
|
||||
*
|
||||
* Translates @name into an enum drm_connector_tv_mode.
|
||||
*
|
||||
* Returns: the enum value on success, a negative errno otherwise.
|
||||
*/
|
||||
int drm_get_tv_mode_from_name(const char *name, size_t len)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(drm_tv_mode_enum_list); i++) {
|
||||
const struct drm_prop_enum_list *item = &drm_tv_mode_enum_list[i];
|
||||
|
||||
if (strlen(item->name) == len && !strncmp(item->name, name, len))
|
||||
return item->type;
|
||||
}
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
EXPORT_SYMBOL(drm_get_tv_mode_from_name);
|
||||
|
||||
static const struct drm_prop_enum_list drm_tv_select_enum_list[] = {
|
||||
{ DRM_MODE_SUBCONNECTOR_Automatic, "Automatic" }, /* DVI-I and TV-out */
|
||||
{ DRM_MODE_SUBCONNECTOR_Composite, "Composite" }, /* TV-out */
|
||||
|
||||
Reference in New Issue
Block a user