Patch Detail
Show a patch.
GET /api/patches/18309/?format=api
{ "id": 18309, "url": "https://patchwork.libcamera.org/api/patches/18309/?format=api", "web_url": "https://patchwork.libcamera.org/patch/18309/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20230227-android-gralloc-v1-1-3360fcfa7c0d@baylibre.com>", "date": "2023-02-27T08:54:02", "name": "[libcamera-devel,RFC] android: mm: generic: use GRALLOC_HARDWARE_MODULE_ID", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "b50bf149e3cfa9cb572038b928fa3718bec0b56c", "submitter": { "id": 153, "url": "https://patchwork.libcamera.org/api/people/153/?format=api", "name": "Mattijs Korpershoek", "email": "mkorpershoek@baylibre.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/18309/mbox/", "series": [ { "id": 3770, "url": "https://patchwork.libcamera.org/api/series/3770/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=3770", "date": "2023-02-27T08:54:02", "name": "[libcamera-devel,RFC] android: mm: generic: use GRALLOC_HARDWARE_MODULE_ID", "version": 1, "mbox": "https://patchwork.libcamera.org/series/3770/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/18309/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/18309/checks/", "tags": {}, "headers": { "Return-Path": "<libcamera-devel-bounces@lists.libcamera.org>", "X-Original-To": "parsemail@patchwork.libcamera.org", "Delivered-To": "parsemail@patchwork.libcamera.org", "Received": [ "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 13328BE08A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 27 Feb 2023 09:49:28 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 393FA62676;\n\tMon, 27 Feb 2023 10:49:27 +0100 (CET)", "from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com\n\t[IPv6:2a00:1450:4864:20::32f])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3CA4F603B2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Feb 2023 09:54:10 +0100 (CET)", "by mail-wm1-x32f.google.com with SMTP id\n\tfm20-20020a05600c0c1400b003ead37e6588so6516500wmb.5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Feb 2023 00:54:10 -0800 (PST)", "from mkorpershoek-xps13.local\n\t([2a01:cb19:85e6:1900:5f1e:d910:dd1e:5b09])\n\tby smtp.gmail.com with ESMTPSA id\n\td24-20020a1c7318000000b003dc522dd25esm8224632wmb.30.2023.02.27.00.54.08\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 27 Feb 2023 00:54:09 -0800 (PST)" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1677491367;\n\tbh=GpQVOI8Sm5rf1HVtXTPCZteBN3nlTkIw7C0ZaSPrQCs=;\n\th=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:Cc:From;\n\tb=QGh059hcnoAv7EclYzZmpfGhMOW2OnsxoEhYTxsDTfO5KW9kTYOK1a7V3nyOeYC4P\n\tUrDOS0YT+ROR9/e9SctlT1Pu5XgeY2sguBlVlb4u+Ti2bILdM1nCpm2BcdrPaCR2VG\n\tlaBDf6Kp+CDv0L1EchAvvkEnbw+PNJqTszaFgAgprRgdwtPLTlKZCs4SqQ9AZsKTES\n\tOjF9A+lTslrLG3PYE7u7yL78syTmE6SkwcppAaZtMUledmug43Ki8AAFsgimiIdJHE\n\t4wjFOnsPvJaXUAC9/0szdKPC3fKbKqFH3Am3owLQfJmhCkZCH07z5uXXF3RCc3RNcX\n\tlQESTo0yuHU6Q==", "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=baylibre-com.20210112.gappssmtp.com; s=20210112;\n\th=cc:to:message-id:content-transfer-encoding:mime-version:subject\n\t:date:from:from:to:cc:subject:date:message-id:reply-to;\n\tbh=BcOJBX9WszM5q7bHGN8nZjRydRRzvnmWiBanyVRkc+g=;\n\tb=fnCcznX6gNxUHLZjvYKcheksYg+R7Y1X0tMBUfJFhP2I86wpw/oRmtA6mPOG44iRM2\n\tkz5TZKwh4l5vjQzAlVa2LALze+WlpCtKkukjdbSR9LMUSHPuYd5jKBZ7tJhrVs6c9gxM\n\trFumDOSQVD1RMsLhLVULGRhwArDo+G5RE81eV0SrxoOxnJrbqMNzl6JAoOhGO4MkHJdX\n\twI91Iiy4wrTRDV/d8JQBbykP3+B3lyb2kd9F3YhB6J+YT3JPHtDbRTvbKLvjOJRGcGtS\n\tNj1YrpITCfC4EMxBdFXKOR3SkcvUyU7167cfzLePmcLYBcmbFGxHuDD1mFejz8OEow45\n\tT9SQ==" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected)\n\theader.d=baylibre-com.20210112.gappssmtp.com\n\theader.i=@baylibre-com.20210112.gappssmtp.com header.b=\"fnCcznX6\"; \n\tdkim-atps=neutral", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=cc:to:message-id:content-transfer-encoding:mime-version:subject\n\t:date:from:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=BcOJBX9WszM5q7bHGN8nZjRydRRzvnmWiBanyVRkc+g=;\n\tb=2bDoCi+Wcg+bv32yZdJgJvmhCHqS9fNlMoe551kEdvXrmQuMwXr/penI3YBpohkA3l\n\tK1Fmn/6ZMR5MqZcDunL2KDCtbn4VnjKofIa73ketxi52r4aE5rh4kNWjg9iC3RZMW0b8\n\tt9nhxkBIJ9BN9wjJpGw0xbZeT+mb6d4ltYSwqtQ3h8aav1Zl3GEog4ZaVRDBnPKK8dM0\n\tUxcfQ52aO3HrqdaQHd/bqeqhJDdnpD7vyFuelpWuvn0lDTmNPpJ7m8qz2tz3T2XIJe1+\n\tNLM1yqQRZQzLvgnkqC6nyNfvMAr4GW3JPwfCrxMw/4Zg/uLgD8RcfrjB9l6ZfD/do+Fp\n\t3DWw==", "X-Gm-Message-State": "AO0yUKXFP7pJ8a9CXsSRgwcUgs/mXwPVAQ2vM1DQNk8FhLBvZmIKgx6O\n\t//QaBSCb8xQ9ylrL5n9T5S/gmA==", "X-Google-Smtp-Source": "AK7set8/LjMND7Bdhb2iSVZPc424TbqHU/CH1MvnXlzEQVMcN3JXGrXsGquoRShNKWYCiAQYs/mplg==", "X-Received": "by 2002:a05:600c:90a:b0:3eb:2b88:a69a with SMTP id\n\tm10-20020a05600c090a00b003eb2b88a69amr6638113wmp.14.1677488049657; \n\tMon, 27 Feb 2023 00:54:09 -0800 (PST)", "Date": "Mon, 27 Feb 2023 09:54:02 +0100", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "7bit", "Message-Id": "<20230227-android-gralloc-v1-1-3360fcfa7c0d@baylibre.com>", "X-B4-Tracking": "v=1; b=H4sIAKlv/GMC/x2NywrCQAwAf6XkbGC79YVXwQ/wKh7STWwDdVcSE\n\taH03916HIZhZnAxFYdTM4PJR11LrtBuGkgj5UFQuTLEELsQ4wEpsxVlHIymqSQMW+la3gmn/RF\n\tq1ZML9kY5jWv3JH+LreJl8tDvf3WD6+UM92X5AR9ilWJ/AAAA", "To": "libcamera-devel@lists.libcamera.org", "X-Mailer": "b4 0.12.1", "X-Mailman-Approved-At": "Mon, 27 Feb 2023 10:49:26 +0100", "Subject": "[libcamera-devel] [PATCH RFC] android: mm: generic: use\n\tGRALLOC_HARDWARE_MODULE_ID", "X-BeenThere": "libcamera-devel@lists.libcamera.org", "X-Mailman-Version": "2.1.29", "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>", "From": "Mattijs Korpershoek via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>", "Reply-To": "Mattijs Korpershoek <mkorpershoek@baylibre.com>", "Cc": "Mattijs Korpershoek <mkorpershoek@baylibre.com>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "PlatformFrameBufferAllocator is an abstraction over gralloc.\nRight now hardwareModule_ points towards a CAMERA_HARDWARE_MODULE_ID.\n\nWhen gralloc_open() is called we observe:\nlibcamera: DEBUG HAL camera3_hal.cpp:75 Open camera gpu0\nlibcamera: ERROR Camera camera.cpp:524 Camera in Configured state trying acquire() requiring state Available\n01-23 14:14:04.742 370 416 E libcamera: FATAL HAL generic_frame_buffer_allocator.cpp:105 gralloc_open() failed: -87\n\nWhich is wrong, gralloc_open() is attempting to re-open the camera HAL,\ninstead of the gralloc HAL.\n\nPoint to a GRALLOC_HARDWARE_MODULE_ID instead so that we can request\nbuffers from gralloc in android.\n\nNote: this add a new dependency on android's libhardware [1]\n\n[1] https://android.googlesource.com/platform/hardware/libhardware\n\nFixes: c58662c5770e (\"android: Introduce PlatformFrameBufferAllocator\")\nSigned-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>\n---\nRFC as this adds an additional link-time dependency on an AOSP project\n(libhardware) and I'm unsure how to handle this.\n\nI thought of using the subprojects structure as done for libyuv but\nsince libhardware has other AOSP deps (like libvnksupport) I'm not sure\nthis is appropriate.\n\nAny thoughts on this?\n---\n src/android/mm/generic_frame_buffer_allocator.cpp | 5 +++--\n 1 file changed, 3 insertions(+), 2 deletions(-)\n\n\n---\nbase-commit: 58e0b6e18c425072a47594f42fc0b61801403aca\nchange-id: 20230227-android-gralloc-04e31d5edc68\n\nBest regards,", "diff": "diff --git a/src/android/mm/generic_frame_buffer_allocator.cpp b/src/android/mm/generic_frame_buffer_allocator.cpp\nindex 3750e1bf52a9..58e6c68c4998 100644\n--- a/src/android/mm/generic_frame_buffer_allocator.cpp\n+++ b/src/android/mm/generic_frame_buffer_allocator.cpp\n@@ -72,9 +72,10 @@ class PlatformFrameBufferAllocator::Private : public Extensible::Private\n public:\n \tPrivate(CameraDevice *const cameraDevice)\n \t\t: cameraDevice_(cameraDevice),\n-\t\t hardwareModule_(cameraDevice->camera3Device()->common.module),\n+\t\t hardwareModule_(nullptr),\n \t\t allocDevice_(nullptr)\n \t{\n+\t\thw_get_module(GRALLOC_HARDWARE_MODULE_ID, &hardwareModule_);\n \t\tASSERT(hardwareModule_);\n \t}\n \n@@ -85,7 +86,7 @@ public:\n \n private:\n \tconst CameraDevice *const cameraDevice_;\n-\tstruct hw_module_t *const hardwareModule_;\n+\tconst struct hw_module_t *hardwareModule_;\n \tstruct alloc_device_t *allocDevice_;\n };\n \n", "prefixes": [ "libcamera-devel", "RFC" ] }