From patchwork Sun Sep 15 20:23:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 1974 Return-Path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id A00F660BB6 for ; Sun, 15 Sep 2019 22:23:30 +0200 (CEST) Received: from pendragon.lan (bl10-204-24.dsl.telepac.pt [85.243.204.24]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id CDFDB23F for ; Sun, 15 Sep 2019 22:23:29 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1568579010; bh=mYtfRQW8Nr01xT7zCUI82lzd9Gxu5BweyGpCZHZZz2I=; h=From:To:Subject:Date:From; b=Hq9w/nY7BFx8FOtm8pHgbRGrV/ebRYbhpTjSdGLYVLWSjc4wgFyUR8mBZrzMmBxly LF8WI3+KVgSir7F9aMMfIDCmBTWtpEo/uY5DcNrgJw8dN7AK8T0a9AGH1PuwgEdXC3 YavNBIhtF8BufxZtbm0a3Oc4PnPR7DdPeK0VYa0M= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Sun, 15 Sep 2019 23:23:18 +0300 Message-Id: <20190915202318.5825-1-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH] libcamera: ipa_manager: Rework error messages when enumerating IPAs X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Sep 2019 20:23:30 -0000 When enumerating IPAs, the system IPA directory and all the directories listed in the LIBCAMERA_IPA_MODULE_PATH environment variable are listed in turn. Failing to list any of those directories results in an error message being printed for every failure. This is particularly common when developing libcamera, as IPAs may not have been installed locally. To avoid unnecessarily worrying error messages, rework the enumeration procedure to only print a message when no IPA can be found at all. Individual missing directories are not considered as an issue anymore. The message is also downgraded from an error to a warning as the situation may still be normal. Signed-off-by: Laurent Pinchart Reviewed-by: Paul Elder --- src/libcamera/ipa_manager.cpp | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/libcamera/ipa_manager.cpp b/src/libcamera/ipa_manager.cpp index 0a908eae6261..f3e08375820c 100644 --- a/src/libcamera/ipa_manager.cpp +++ b/src/libcamera/ipa_manager.cpp @@ -94,11 +94,19 @@ LOG_DEFINE_CATEGORY(IPAManager) IPAManager::IPAManager() { - addDir(IPA_MODULE_DIR); + unsigned int ipaCount = 0; + int ret; + + ret = addDir(IPA_MODULE_DIR); + if (ret > 0) + ipaCount += ret; const char *modulePaths = utils::secure_getenv("LIBCAMERA_IPA_MODULE_PATH"); - if (!modulePaths) + if (!modulePaths) { + LOG(IPAManager, Warning) + << "No IPA found in '" IPA_MODULE_DIR "'"; return; + } while (1) { const char *delim = strchrnul(modulePaths, ':'); @@ -106,7 +114,9 @@ IPAManager::IPAManager() if (count) { std::string path(modulePaths, count); - addDir(path.c_str()); + ret = addDir(path.c_str()); + if (ret > 0) + ipaCount += ret; } if (*delim == '\0') @@ -114,6 +124,11 @@ IPAManager::IPAManager() modulePaths += count + 1; } + + if (!ipaCount) + LOG(IPAManager, Warning) + << "No IPA found in '" IPA_MODULE_DIR "' and '" + << modulePaths << "'"; } IPAManager::~IPAManager() @@ -155,9 +170,6 @@ int IPAManager::addDir(const char *libDir) dir = opendir(libDir); if (!dir) { int ret = -errno; - LOG(IPAManager, Error) - << "Invalid path " << libDir << " for IPA modules: " - << strerror(-ret); return ret; }