{"id":1974,"url":"https://patchwork.libcamera.org/api/1.1/patches/1974/?format=json","web_url":"https://patchwork.libcamera.org/patch/1974/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20190915202318.5825-1-laurent.pinchart@ideasonboard.com>","date":"2019-09-15T20:23:18","name":"[libcamera-devel] libcamera: ipa_manager: Rework error messages when enumerating IPAs","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"5ca0812555c942957bf92e08f859a09f0cab66fb","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/1.1/people/2/?format=json","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/1974/mbox/","series":[{"id":496,"url":"https://patchwork.libcamera.org/api/1.1/series/496/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=496","date":"2019-09-15T20:23:18","name":"[libcamera-devel] libcamera: ipa_manager: Rework error messages when enumerating IPAs","version":1,"mbox":"https://patchwork.libcamera.org/series/496/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/1974/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/1974/checks/","tags":{},"headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A00F660BB6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 15 Sep 2019 22:23:30 +0200 (CEST)","from pendragon.lan (bl10-204-24.dsl.telepac.pt [85.243.204.24])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id CDFDB23F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 15 Sep 2019 22:23:29 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1568579010;\n\tbh=mYtfRQW8Nr01xT7zCUI82lzd9Gxu5BweyGpCZHZZz2I=;\n\th=From:To:Subject:Date:From;\n\tb=Hq9w/nY7BFx8FOtm8pHgbRGrV/ebRYbhpTjSdGLYVLWSjc4wgFyUR8mBZrzMmBxly\n\tLF8WI3+KVgSir7F9aMMfIDCmBTWtpEo/uY5DcNrgJw8dN7AK8T0a9AGH1PuwgEdXC3\n\tYavNBIhtF8BufxZtbm0a3Oc4PnPR7DdPeK0VYa0M=","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","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","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH] libcamera: ipa_manager: Rework error\n\tmessages when enumerating IPAs","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Sun, 15 Sep 2019 20:23:30 -0000"},"content":"When enumerating IPAs, the system IPA directory and all the directories\nlisted in the LIBCAMERA_IPA_MODULE_PATH environment variable are listed\nin turn. Failing to list any of those directories results in an error\nmessage being printed for every failure. This is particularly common\nwhen developing libcamera, as IPAs may not have been installed locally.\n\nTo avoid unnecessarily worrying error messages, rework the enumeration\nprocedure to only print a message when no IPA can be found at all.\nIndividual missing directories are not considered as an issue anymore.\nThe message is also downgraded from an error to a warning as the\nsituation may still be normal.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n src/libcamera/ipa_manager.cpp | 24 ++++++++++++++++++------\n 1 file changed, 18 insertions(+), 6 deletions(-)","diff":"diff --git a/src/libcamera/ipa_manager.cpp b/src/libcamera/ipa_manager.cpp\nindex 0a908eae6261..f3e08375820c 100644\n--- a/src/libcamera/ipa_manager.cpp\n+++ b/src/libcamera/ipa_manager.cpp\n@@ -94,11 +94,19 @@ LOG_DEFINE_CATEGORY(IPAManager)\n \n IPAManager::IPAManager()\n {\n-\taddDir(IPA_MODULE_DIR);\n+\tunsigned int ipaCount = 0;\n+\tint ret;\n+\n+\tret = addDir(IPA_MODULE_DIR);\n+\tif (ret > 0)\n+\t\tipaCount += ret;\n \n \tconst char *modulePaths = utils::secure_getenv(\"LIBCAMERA_IPA_MODULE_PATH\");\n-\tif (!modulePaths)\n+\tif (!modulePaths) {\n+\t\tLOG(IPAManager, Warning)\n+\t\t\t<< \"No IPA found in '\" IPA_MODULE_DIR \"'\";\n \t\treturn;\n+\t}\n \n \twhile (1) {\n \t\tconst char *delim = strchrnul(modulePaths, ':');\n@@ -106,7 +114,9 @@ IPAManager::IPAManager()\n \n \t\tif (count) {\n \t\t\tstd::string path(modulePaths, count);\n-\t\t\taddDir(path.c_str());\n+\t\t\tret = addDir(path.c_str());\n+\t\t\tif (ret > 0)\n+\t\t\t\tipaCount += ret;\n \t\t}\n \n \t\tif (*delim == '\\0')\n@@ -114,6 +124,11 @@ IPAManager::IPAManager()\n \n \t\tmodulePaths += count + 1;\n \t}\n+\n+\tif (!ipaCount)\n+\t\tLOG(IPAManager, Warning)\n+\t\t\t<< \"No IPA found in '\" IPA_MODULE_DIR \"' and '\"\n+\t\t\t<< modulePaths << \"'\";\n }\n \n IPAManager::~IPAManager()\n@@ -155,9 +170,6 @@ int IPAManager::addDir(const char *libDir)\n \tdir = opendir(libDir);\n \tif (!dir) {\n \t\tint ret = -errno;\n-\t\tLOG(IPAManager, Error)\n-\t\t\t<< \"Invalid path \" << libDir << \" for IPA modules: \"\n-\t\t\t<< strerror(-ret);\n \t\treturn ret;\n \t}\n \n","prefixes":["libcamera-devel"]}