{"id":981,"url":"https://patchwork.libcamera.org/api/covers/981/?format=json","web_url":"https://patchwork.libcamera.org/cover/981/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/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":"<20190415165700.22970-1-laurent.pinchart@ideasonboard.com>","date":"2019-04-15T16:56:49","name":"[libcamera-devel,00/11] Rockchip ISP pipeline handler","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/?format=json","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/981/mbox/","series":[{"id":250,"url":"https://patchwork.libcamera.org/api/series/250/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=250","date":"2019-04-15T16:56:49","name":"Rockchip ISP pipeline handler","version":1,"mbox":"https://patchwork.libcamera.org/series/250/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/981/comments/","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2C7AC600F9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 15 Apr 2019 18:57:14 +0200 (CEST)","from pendragon.bb.dnainternet.fi (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 6B561333\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 15 Apr 2019 18:57:13 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1555347433;\n\tbh=MYO2xbnmTsNFdhuntbonjJJEiKtgQ4pRTrCCGNkizTg=;\n\th=From:To:Subject:Date:From;\n\tb=EvwyX/XHZweisXCRxCPCXL2eP2+E+wpXrFE7gTiTB/fjR5bxX8+/vWk9eD98w+bCn\n\t40Sg/wOQfTY5PF+UDRO5kxwR4JoZSFk4PUzX6se7gujPfPUgKlz+gU5hT94vfu19R2\n\t2Yfwum0XbdQuUU5YT34n2A8CxZ56u942p9ZvbPdQ=","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Mon, 15 Apr 2019 19:56:49 +0300","Message-Id":"<20190415165700.22970-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 00/11] Rockchip ISP pipeline handler","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":"Mon, 15 Apr 2019 16:57:14 -0000"},"content":"Hello everybody,\n\nThis patch series implements a pipeline handler for the Rockchip ISP1.\n\nThe first eight patches, from 01/11 to 08/11, are miscellaneous fixes\nand improvements, with the most notable change related to comparison\noperators for geometry classes. Patch 09/11 and 10/11 are were the fun\nbegins, with a new CameraSensor class that factors out code related to\nthe sensor from the IPU3 pipeline handler. Patch 11/11 finally adds the\nRkISP1 pipeline handler, using the new CameraSensor class.\n\nFeatures are limited, as explained in patch 11/11. Only CSI-2 raw Bayer\nsensors are supported, and while only one camera can be used at a time,\nmutual exclusion isn't implemented yet.\n\nThe rkisp1 driver prints warnings in the kernel log when the stream is\nstarted and stopped, as well as during capture:\n\n[ 2527.336629] rkisp1: CIF_ISP_PIC_SIZE_ERROR (0x00000001)\n[ 2527.344146] rkisp1: CIF_ISP_PIC_SIZE_ERROR (0x00000000)\n\nThis doesn't seem to prevent proper operation so far, but will need to\nbe fixed. Please note that the kernel driver isn't upstream yet, the\nversion used for this development can be found at\n\n\tgit://linuxtv.org/pinchartl/media.git rockchip\n\nThe branch is based on the latest version of the driver as posted to the\nlinux-media mailing list, plus two additional patches that address the\nbitrotting, and contains DT integration.\n\nThe patches have been tested on a Acer Chromebook Tab 10 device, based\non the Rockchip RK3399 SoC. The RK399 has two ISP instances, with one\nCSI-2 receiver each, and it should be possible, at least in theory, to\nuse both ISPs for the same camera, one in live streaming mode and one in\nmemory-to-memory mode. This isn't supported on the kernel side, and thus\nout of scope for this initial pipeline handler implementation in\nlibcamera.\n\nLaurent Pinchart (11):\n  Install the cam and qcam utilities\n  libcamera: log: Mark Loggable::_log() methods as const\n  libcamera: camera: Log requested configuration in configureStreams()\n  libcamera: geometry: Sort classes alphabetically\n  libcamera: geometry: Use Size to store min and max in SizeRange\n  libcamera: geometry: Add comparison operators to geometry classes\n  test: geometry: Add tests for Size class comparison operators\n  libcamera: v4l2-subdevice: Add method to retrieve the media entity\n  libcamera: camera_sensor: Add a new class to model a camera sensor\n  libcamera: pipeline: ipu3: Use the new CameraSensor class\n  libcamera: pipeline: Add RKISP1 pipeline\n\n include/libcamera/geometry.h                |  67 ++-\n src/cam/meson.build                         |   1 +\n src/libcamera/camera.cpp                    |  14 +\n src/libcamera/camera_sensor.cpp             | 245 +++++++++++\n src/libcamera/geometry.cpp                  | 166 ++++++--\n src/libcamera/include/camera_sensor.h       |  56 +++\n src/libcamera/include/log.h                 |   5 +-\n src/libcamera/include/v4l2_subdevice.h      |   3 +-\n src/libcamera/log.cpp                       |   5 +-\n src/libcamera/meson.build                   |   2 +\n src/libcamera/pipeline/ipu3/ipu3.cpp        |  87 +---\n src/libcamera/pipeline/meson.build          |   1 +\n src/libcamera/pipeline/rkisp1/meson.build   |   3 +\n src/libcamera/pipeline/rkisp1/rkisp1.cpp    | 448 ++++++++++++++++++++\n src/libcamera/v4l2_subdevice.cpp            |  22 +-\n src/qcam/meson.build                        |   1 +\n test/geometry.cpp                           | 125 ++++++\n test/meson.build                            |   1 +\n test/v4l2_subdevice/list_formats.cpp        |  14 +-\n test/v4l2_subdevice/v4l2_subdevice_test.cpp |   2 +-\n 20 files changed, 1112 insertions(+), 156 deletions(-)\n create mode 100644 src/libcamera/camera_sensor.cpp\n create mode 100644 src/libcamera/include/camera_sensor.h\n create mode 100644 src/libcamera/pipeline/rkisp1/meson.build\n create mode 100644 src/libcamera/pipeline/rkisp1/rkisp1.cpp\n create mode 100644 test/geometry.cpp"}