[libcamera-devel,v4,2/6] libcamera: ipa_manager: Re-arrange IPA precedence

Message ID 20200221163130.4791-3-kieran.bingham@ideasonboard.com
State Accepted
Headers show
Series
  • Support loading IPAs from the build tree
Related show

Commit Message

Kieran Bingham Feb. 21, 2020, 4:31 p.m. UTC
Setting a user environment path in LIBCAMERA_IPA_MODULE_PATH should take
precedence over the system loading locations.

Adjust the IPA search orders accordingly.

Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/libcamera/ipa_manager.cpp | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

Patch

diff --git a/src/libcamera/ipa_manager.cpp b/src/libcamera/ipa_manager.cpp
index 4ffbdd712ac2..7f0a5d58749b 100644
--- a/src/libcamera/ipa_manager.cpp
+++ b/src/libcamera/ipa_manager.cpp
@@ -98,31 +98,31 @@  IPAManager::IPAManager()
 	unsigned int ipaCount = 0;
 	int ret;
 
-	ret = addDir(IPA_MODULE_DIR);
-	if (ret > 0)
-		ipaCount += ret;
-
+	/* User-specified paths take precedence. */
 	const char *modulePaths = utils::secure_getenv("LIBCAMERA_IPA_MODULE_PATH");
-	if (!modulePaths) {
+	if (modulePaths) {
+		for (const auto &dir : utils::split(modulePaths, ":")) {
+			if (dir.empty())
+				continue;
+
+			int ret = addDir(dir.c_str());
+			if (ret > 0)
+				ipaCount += ret;
+		}
+
 		if (!ipaCount)
 			LOG(IPAManager, Warning)
-				<< "No IPA found in '" IPA_MODULE_DIR "'";
-		return;
+				<< "No IPA found in '" << modulePaths << "'";
 	}
 
-	for (const auto &dir : utils::split(modulePaths, ":")) {
-		if (dir.empty())
-			continue;
-
-		int ret = addDir(dir.c_str());
-		if (ret > 0)
-			ipaCount += ret;
-	}
+	/* Load IPAs from the installed system path. */
+	ret = addDir(IPA_MODULE_DIR);
+	if (ret > 0)
+		ipaCount += ret;
 
 	if (!ipaCount)
 		LOG(IPAManager, Warning)
-			<< "No IPA found in '" IPA_MODULE_DIR "' and '"
-			<< modulePaths << "'";
+			<< "No IPA found in '" IPA_MODULE_DIR "'";
 }
 
 IPAManager::~IPAManager()