dev: gcdb: display: Add panel name to id conversion API

Panel name to id conversion API is generic and multiple
targets should be able to include it without reimplementing
it. Keeping it part of GCDB serves this purpose.

Change-Id: I5685669d57c64a743a8a1b29ffd49e8328303af9
diff --git a/dev/gcdb/display/panel_display.c b/dev/gcdb/display/panel_display.c
index 4651051..e34d966 100644
--- a/dev/gcdb/display/panel_display.c
+++ b/dev/gcdb/display/panel_display.c
@@ -38,6 +38,7 @@
 #include <err.h>
 #include <reg.h>
 #include <mdp5.h>
+#include <string.h>
 
 
 /*---------------------------------------------------------------------------*/
@@ -325,3 +326,28 @@
 
 	return ret;
 }
+
+int32_t panel_name_to_id(struct panel_list supp_panels[],
+			  uint32_t supp_panels_size,
+			  const char *panel_name)
+{
+	uint32_t i;
+	int32_t panel_id = ERR_NOT_FOUND;
+
+	if (!panel_name) {
+		dprintf(CRITICAL, "Invalid panel name\n");
+		return panel_id;
+	}
+
+	/* Remove any leading whitespaces */
+	panel_name += strspn(panel_name, " ");
+	for (i = 0; i < supp_panels_size; i++) {
+		if (!strncmp(panel_name, supp_panels[i].name,
+			MAX_PANEL_ID_LEN)) {
+			panel_id = supp_panels[i].id;
+			break;
+		}
+	}
+
+	return panel_id;
+}