[{"id":29688,"web_url":"https://patchwork.libcamera.org/comment/29688/","msgid":"<171714207689.2248009.7527879051408890948@ping.linuxembedded.co.uk>","date":"2024-05-31T07:54:36","subject":"Re: [PATCH v3 0/4] ipa: Move Pwl from Raspberry Pi to libipa","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Naush, David,\n\nDo you have any objections or concerns here? If not could you provide an\nAcked-by: tag please?\n\n--\nKieran\n\n\nQuoting Paul Elder (2024-05-29 20:26:07)\n> This patch series moves the piecewise linear function class from\n> the Rasberry Pi IPA to libipa so that all IPAs can use it.\n> \n> First an addition to the geometry header is needed, to add a\n> floating-point version of the Point class, then the pwl is copied over,\n> and the Raspberry Pi IPA is converted to use the libipa Pwl class.\n> \n> The main changes in v2 are s/FPoint/PointF/g and improving the\n> documentation.\n> \n> v3 has almost no change...\n> \n> Paul Elder (4):\n>   libcamera: geometry: Add floating-point version of Point class\n>   ipa: libipa: Copy pwl from rpi\n>   ipa: libipa: pwl: Clean up Pwl class to match libcamera\n>   ipa: rpi: controller: Use libipa's Pwl class\n> \n>  include/libcamera/geometry.h               |  65 ++++\n>  src/ipa/libipa/meson.build                 |   2 +\n>  src/ipa/libipa/pwl.cpp                     | 371 +++++++++++++++++++++\n>  src/ipa/libipa/pwl.h                       |  98 ++++++\n>  src/ipa/rpi/controller/cac_status.h        |   2 -\n>  src/ipa/rpi/controller/contrast_status.h   |   4 +-\n>  src/ipa/rpi/controller/meson.build         |   2 +-\n>  src/ipa/rpi/controller/rpi/af.cpp          |   4 +-\n>  src/ipa/rpi/controller/rpi/af.h            |   5 +-\n>  src/ipa/rpi/controller/rpi/agc_channel.cpp |   8 +-\n>  src/ipa/rpi/controller/rpi/agc_channel.h   |   7 +-\n>  src/ipa/rpi/controller/rpi/awb.cpp         |  40 +--\n>  src/ipa/rpi/controller/rpi/awb.h           |  23 +-\n>  src/ipa/rpi/controller/rpi/ccm.cpp         |   4 +-\n>  src/ipa/rpi/controller/rpi/ccm.h           |   5 +-\n>  src/ipa/rpi/controller/rpi/contrast.cpp    |  14 +-\n>  src/ipa/rpi/controller/rpi/contrast.h      |   5 +-\n>  src/ipa/rpi/controller/rpi/geq.cpp         |   5 +-\n>  src/ipa/rpi/controller/rpi/geq.h           |   4 +-\n>  src/ipa/rpi/controller/rpi/hdr.cpp         |   8 +-\n>  src/ipa/rpi/controller/rpi/hdr.h           |   9 +-\n>  src/ipa/rpi/controller/rpi/tonemap.cpp     |   2 +-\n>  src/ipa/rpi/controller/rpi/tonemap.h       |   5 +-\n>  src/ipa/rpi/controller/tonemap_status.h    |   4 +-\n>  src/libcamera/geometry.cpp                 | 123 ++++++-\n>  test/geometry.cpp                          | 355 ++++++++++++++++++++\n>  26 files changed, 1097 insertions(+), 77 deletions(-)\n>  create mode 100644 src/ipa/libipa/pwl.cpp\n>  create mode 100644 src/ipa/libipa/pwl.h\n> \n> -- \n> 2.39.2\n>","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 7731FBD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 31 May 2024 07:54:42 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 59A79634B6;\n\tFri, 31 May 2024 09:54:41 +0200 (CEST)","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 87CCA634AD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 31 May 2024 09:54:39 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 94017E22;\n\tFri, 31 May 2024 09:54:34 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"r4F8eLVD\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1717142074;\n\tbh=Qe/2ofdhQfepDuQLt55Z90tb31qHaBTA+fTqJQnOHN0=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=r4F8eLVDIqnxESLbfAHi7lajEJjOHRBkzJG8nMiByRLtKpdVfFakiY6/5OEk+8OZf\n\t3BhTRortO0P5D1tlyMFTkvG7vQIMSxleVzIi/7kbQ48MxGu3etAmw9vnEzzlot7trc\n\tdhw+XIFvmmqK9KNRsmdbOC78/erjwA13/YuNJQTY=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20240529192612.814515-1-paul.elder@ideasonboard.com>","References":"<20240529192612.814515-1-paul.elder@ideasonboard.com>","Subject":"Re: [PATCH v3 0/4] ipa: Move Pwl from Raspberry Pi to libipa","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Paul Elder <paul.elder@ideasonboard.com>,\n\tNaushir Patuck <naush@raspberrypi.com>,\n\tDavid Plowman <david.plowman@raspberrypi.com>","To":"Paul Elder <paul.elder@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Fri, 31 May 2024 08:54:36 +0100","Message-ID":"<171714207689.2248009.7527879051408890948@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":29689,"web_url":"https://patchwork.libcamera.org/comment/29689/","msgid":"<CAHW6GY+bkjOPa2UuVGaoJnC2D=yBMS43o+B-pAOWhzATSkQ-nw@mail.gmail.com>","date":"2024-05-31T08:14:34","subject":"Re: [PATCH v3 0/4] ipa: Move Pwl from Raspberry Pi to libipa","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi Kieran, Paul\n\nYes, I did actually have a look through and it seemed like a big no-op\nfor us functionally at least, so\n\nAcked-by: David Plowman <david.plowman@raspberrypi.com>\n\nI did have a couple of super-minor thoughts, but nothing that I think\nwarrants changing anything.\n\nI wasn't convinced by changing the name \"clip\" to \"clamp\". C++\nstd::clamp clips (or clamps?) at both ends of the range, whereas I\nthink our \"clip\" is just the top. So making them the same didn't\nreally make anything clearer for me, and maybe I preferred \"clip\". But\nI don't really mind.\n\nThere was also Naush's point from a while ago that we use our Pwl\nimplementation elsewhere so we might be wanting to keep the two in\nsync. But it's not code we touch very much these days, so we can\nprobably manage anything that comes up. Maybe we'll just change our\nother version to adopt any minor name changes (e.g. Point to PointF).\n\nDavid\n\nOn Fri, 31 May 2024 at 08:54, Kieran Bingham\n<kieran.bingham@ideasonboard.com> wrote:\n>\n> Hi Naush, David,\n>\n> Do you have any objections or concerns here? If not could you provide an\n> Acked-by: tag please?\n>\n> --\n> Kieran\n>\n>\n> Quoting Paul Elder (2024-05-29 20:26:07)\n> > This patch series moves the piecewise linear function class from\n> > the Rasberry Pi IPA to libipa so that all IPAs can use it.\n> >\n> > First an addition to the geometry header is needed, to add a\n> > floating-point version of the Point class, then the pwl is copied over,\n> > and the Raspberry Pi IPA is converted to use the libipa Pwl class.\n> >\n> > The main changes in v2 are s/FPoint/PointF/g and improving the\n> > documentation.\n> >\n> > v3 has almost no change...\n> >\n> > Paul Elder (4):\n> >   libcamera: geometry: Add floating-point version of Point class\n> >   ipa: libipa: Copy pwl from rpi\n> >   ipa: libipa: pwl: Clean up Pwl class to match libcamera\n> >   ipa: rpi: controller: Use libipa's Pwl class\n> >\n> >  include/libcamera/geometry.h               |  65 ++++\n> >  src/ipa/libipa/meson.build                 |   2 +\n> >  src/ipa/libipa/pwl.cpp                     | 371 +++++++++++++++++++++\n> >  src/ipa/libipa/pwl.h                       |  98 ++++++\n> >  src/ipa/rpi/controller/cac_status.h        |   2 -\n> >  src/ipa/rpi/controller/contrast_status.h   |   4 +-\n> >  src/ipa/rpi/controller/meson.build         |   2 +-\n> >  src/ipa/rpi/controller/rpi/af.cpp          |   4 +-\n> >  src/ipa/rpi/controller/rpi/af.h            |   5 +-\n> >  src/ipa/rpi/controller/rpi/agc_channel.cpp |   8 +-\n> >  src/ipa/rpi/controller/rpi/agc_channel.h   |   7 +-\n> >  src/ipa/rpi/controller/rpi/awb.cpp         |  40 +--\n> >  src/ipa/rpi/controller/rpi/awb.h           |  23 +-\n> >  src/ipa/rpi/controller/rpi/ccm.cpp         |   4 +-\n> >  src/ipa/rpi/controller/rpi/ccm.h           |   5 +-\n> >  src/ipa/rpi/controller/rpi/contrast.cpp    |  14 +-\n> >  src/ipa/rpi/controller/rpi/contrast.h      |   5 +-\n> >  src/ipa/rpi/controller/rpi/geq.cpp         |   5 +-\n> >  src/ipa/rpi/controller/rpi/geq.h           |   4 +-\n> >  src/ipa/rpi/controller/rpi/hdr.cpp         |   8 +-\n> >  src/ipa/rpi/controller/rpi/hdr.h           |   9 +-\n> >  src/ipa/rpi/controller/rpi/tonemap.cpp     |   2 +-\n> >  src/ipa/rpi/controller/rpi/tonemap.h       |   5 +-\n> >  src/ipa/rpi/controller/tonemap_status.h    |   4 +-\n> >  src/libcamera/geometry.cpp                 | 123 ++++++-\n> >  test/geometry.cpp                          | 355 ++++++++++++++++++++\n> >  26 files changed, 1097 insertions(+), 77 deletions(-)\n> >  create mode 100644 src/ipa/libipa/pwl.cpp\n> >  create mode 100644 src/ipa/libipa/pwl.h\n> >\n> > --\n> > 2.39.2\n> >","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 5B8A7BDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 31 May 2024 08:14:50 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 27D80634B6;\n\tFri, 31 May 2024 10:14:49 +0200 (CEST)","from mail-qv1-xf2c.google.com (mail-qv1-xf2c.google.com\n\t[IPv6:2607:f8b0:4864:20::f2c])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 724D0634AD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 31 May 2024 10:14:46 +0200 (CEST)","by mail-qv1-xf2c.google.com with SMTP id\n\t6a1803df08f44-6aedd5167d1so359126d6.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 31 May 2024 01:14:46 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"fiwYgWPV\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1717143285; x=1717748085;\n\tdarn=lists.libcamera.org; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=P57ntNXrVW6EYhuFoeONVBbHqkqA7njLXEzRPRiGKuE=;\n\tb=fiwYgWPV7UYtEUunBUObBU7nUM3QY4S9fXZDgcX+jUAYvrRP4WvTIRnN6PnNl+SHBz\n\tbsVOaV7RXQHhvoohb8mrEtxzZPw1caw8UC3KC9LoJUxIFcC2DE5pQSHu3Lisfg3NZa4D\n\tosAuzXTAPCGow672LA5FDqpQ2vb5Wd8Uq/mra6vPgDJz0HcmJpU1ZqoujzOO5KML9Xmm\n\ttbmpulzqCDXOkGeejHtZEFpXsEMe5zKMqS22JN4t7MAGRoSuxLRE2tjA8U4y5O4KF6o2\n\tqcH5rZvwSS3ibX4iUhmUObe/IVj4azRKj/dK7DskEg4bl4BCYay2QCiZxefEAz832kjc\n\tn5Kw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1717143285; x=1717748085;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=P57ntNXrVW6EYhuFoeONVBbHqkqA7njLXEzRPRiGKuE=;\n\tb=TE54gHicEFq336RhpN9gKfaV4qPZ1sAHICPRUmlri/sEKv9uBX+AGTXosk9LgAT19j\n\tCIzcrWS2QjH/zIiW34omr5qjYo5hXaAEKhHpgk0/qtRe7IrtfBLWi68liytCLQV0BHnx\n\t+u0y48iDAWzxrbPk1L8PLr5KfZ7Ln4PFQOQNSPl2u+ETse1slASYQPtG8yVGsCgLuM+w\n\tJrrtXjbdh+iBEenmVCZyBhtAnKyZ2Ld9toKD+eAE1dmq3MVnjGPQb6YCUk5tPGbuwGMI\n\tBzrOFznWi7bX7TkISxqAhvHICKFVwT+XajIwwGNYF/wPaVzGAi8jYFI4bg+/kr4HiWDu\n\t6v5A==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCWyrqRr1zGgPp9pTlUZkRPHigEaMKTvYVG4bszBgzOTtlIDQ/zYm2emiSvju3alEebkIsfrnq+3qI6OH4Rme7+nGVHNwA34M9oTcpkWYwkobu1Dtw==","X-Gm-Message-State":"AOJu0YwLT71pXaqdRZ35kVMQehaE5jklm6s4uyrWT7Y7aopMKeRWlwHb\n\txI1dUIh525sx2SzyDQxfB+GI6JIhS4smDrLrPvte0XAntcXjZXNYNmK2L2C1hh8ye27rPFznNiY\n\t8sJ5L+ScEvwzyo8tthx88iVBYRT+ngQhknPUWiw==","X-Google-Smtp-Source":"AGHT+IHjuydHa6dg/SGcZDCsAgMhaUnNr6tev/4RLksJxf3nD7dk5z7lTkH0Hjm5dZj/o2/psXWCocY1f0Hh/pO8ZkU=","X-Received":"by 2002:a05:6214:5541:b0:6ad:60ab:e096 with SMTP id\n\t6a1803df08f44-6aecd6ccdd0mr12881366d6.40.1717143285088;\n\tFri, 31 May 2024 01:14:45 -0700 (PDT)","MIME-Version":"1.0","References":"<20240529192612.814515-1-paul.elder@ideasonboard.com>\n\t<171714207689.2248009.7527879051408890948@ping.linuxembedded.co.uk>","In-Reply-To":"<171714207689.2248009.7527879051408890948@ping.linuxembedded.co.uk>","From":"David Plowman <david.plowman@raspberrypi.com>","Date":"Fri, 31 May 2024 09:14:34 +0100","Message-ID":"<CAHW6GY+bkjOPa2UuVGaoJnC2D=yBMS43o+B-pAOWhzATSkQ-nw@mail.gmail.com>","Subject":"Re: [PATCH v3 0/4] ipa: Move Pwl from Raspberry Pi to libipa","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Paul Elder <paul.elder@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org, \n\tNaushir Patuck <naush@raspberrypi.com>","Content-Type":"text/plain; charset=\"UTF-8\"","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":29693,"web_url":"https://patchwork.libcamera.org/comment/29693/","msgid":"<171715393731.2248009.1824219456685510010@ping.linuxembedded.co.uk>","date":"2024-05-31T11:12:17","subject":"Re: [PATCH v3 0/4] ipa: Move Pwl from Raspberry Pi to libipa","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting David Plowman (2024-05-31 09:14:34)\n> Hi Kieran, Paul\n> \n> Yes, I did actually have a look through and it seemed like a big no-op\n> for us functionally at least, so\n\nYes, I hope this shouldn't impact anything in the code.\n\nI'm weary we should really make a MAINTAINERS file soon that makes sure\nwe automatically catch changes to files of interest so for instance,\neven though this moves out of rpi/ I would still expect if there are\nchanges to this in the future to get your approval to make sure no one\nbreaks RPi. Something that enforces acks on specific components (i.e. to\nprevent even accidentally merging code affecting RPi without a\n\n*-by: * <*@raspberrypi.com>\n\n> Acked-by: David Plowman <david.plowman@raspberrypi.com>\n\nThanks!\n\n> I did have a couple of super-minor thoughts, but nothing that I think\n> warrants changing anything.\n> \n> I wasn't convinced by changing the name \"clip\" to \"clamp\". C++\n> std::clamp clips (or clamps?) at both ends of the range, whereas I\n> think our \"clip\" is just the top. So making them the same didn't\n> really make anything clearer for me, and maybe I preferred \"clip\". But\n> I don't really mind.\n> \n> There was also Naush's point from a while ago that we use our Pwl\n> implementation elsewhere so we might be wanting to keep the two in\n\nAha, I see that now - replying there too <done>. But probably the same\nmessage below here.\n\n> sync. But it's not code we touch very much these days, so we can\n> probably manage anything that comes up. Maybe we'll just change our\n> other version to adopt any minor name changes (e.g. Point to PointF).\n\nThat part is more tricky indeed. I still think even components like our\nV4L2/MC helpers could be used outside of libcamera too - but I don't\nknow what bar/point we should have libcamera depend on a stack of other\nlibraries for the internals. That's sort of what libcamera-base already\nis ... tricky ...\n\nThanks for the Ack, that unblocks us progressing the implementations.\n\n--\nKieran\n\n\n> \n> David\n> \n> On Fri, 31 May 2024 at 08:54, Kieran Bingham\n> <kieran.bingham@ideasonboard.com> wrote:\n> >\n> > Hi Naush, David,\n> >\n> > Do you have any objections or concerns here? If not could you provide an\n> > Acked-by: tag please?\n> >\n> > --\n> > Kieran\n> >\n> >\n> > Quoting Paul Elder (2024-05-29 20:26:07)\n> > > This patch series moves the piecewise linear function class from\n> > > the Rasberry Pi IPA to libipa so that all IPAs can use it.\n> > >\n> > > First an addition to the geometry header is needed, to add a\n> > > floating-point version of the Point class, then the pwl is copied over,\n> > > and the Raspberry Pi IPA is converted to use the libipa Pwl class.\n> > >\n> > > The main changes in v2 are s/FPoint/PointF/g and improving the\n> > > documentation.\n> > >\n> > > v3 has almost no change...\n> > >\n> > > Paul Elder (4):\n> > >   libcamera: geometry: Add floating-point version of Point class\n> > >   ipa: libipa: Copy pwl from rpi\n> > >   ipa: libipa: pwl: Clean up Pwl class to match libcamera\n> > >   ipa: rpi: controller: Use libipa's Pwl class\n> > >\n> > >  include/libcamera/geometry.h               |  65 ++++\n> > >  src/ipa/libipa/meson.build                 |   2 +\n> > >  src/ipa/libipa/pwl.cpp                     | 371 +++++++++++++++++++++\n> > >  src/ipa/libipa/pwl.h                       |  98 ++++++\n> > >  src/ipa/rpi/controller/cac_status.h        |   2 -\n> > >  src/ipa/rpi/controller/contrast_status.h   |   4 +-\n> > >  src/ipa/rpi/controller/meson.build         |   2 +-\n> > >  src/ipa/rpi/controller/rpi/af.cpp          |   4 +-\n> > >  src/ipa/rpi/controller/rpi/af.h            |   5 +-\n> > >  src/ipa/rpi/controller/rpi/agc_channel.cpp |   8 +-\n> > >  src/ipa/rpi/controller/rpi/agc_channel.h   |   7 +-\n> > >  src/ipa/rpi/controller/rpi/awb.cpp         |  40 +--\n> > >  src/ipa/rpi/controller/rpi/awb.h           |  23 +-\n> > >  src/ipa/rpi/controller/rpi/ccm.cpp         |   4 +-\n> > >  src/ipa/rpi/controller/rpi/ccm.h           |   5 +-\n> > >  src/ipa/rpi/controller/rpi/contrast.cpp    |  14 +-\n> > >  src/ipa/rpi/controller/rpi/contrast.h      |   5 +-\n> > >  src/ipa/rpi/controller/rpi/geq.cpp         |   5 +-\n> > >  src/ipa/rpi/controller/rpi/geq.h           |   4 +-\n> > >  src/ipa/rpi/controller/rpi/hdr.cpp         |   8 +-\n> > >  src/ipa/rpi/controller/rpi/hdr.h           |   9 +-\n> > >  src/ipa/rpi/controller/rpi/tonemap.cpp     |   2 +-\n> > >  src/ipa/rpi/controller/rpi/tonemap.h       |   5 +-\n> > >  src/ipa/rpi/controller/tonemap_status.h    |   4 +-\n> > >  src/libcamera/geometry.cpp                 | 123 ++++++-\n> > >  test/geometry.cpp                          | 355 ++++++++++++++++++++\n> > >  26 files changed, 1097 insertions(+), 77 deletions(-)\n> > >  create mode 100644 src/ipa/libipa/pwl.cpp\n> > >  create mode 100644 src/ipa/libipa/pwl.h\n> > >\n> > > --\n> > > 2.39.2\n> > >","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 19529BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 31 May 2024 11:12:23 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0A9E3634B6;\n\tFri, 31 May 2024 13:12:22 +0200 (CEST)","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 320E561A46\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 31 May 2024 13:12:20 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 3AA97E22;\n\tFri, 31 May 2024 13:12:15 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"i2pNYpVt\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1717153935;\n\tbh=HXrQmZsJYHC1jpWbbMshuCJn5w87/KDJgunUyT7xCyc=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=i2pNYpVtVYlEuKR6lDw+kcYc5rXCI1klwQXFSTQPvJQ0F9cbfmn3pFzUlBh/OOqG6\n\tfVKzxD3Q3In7oE1o6K8/B19ZKwbEWXROxb+PRmu/oI+hSlQ89645Yk5kfdGUg1csZW\n\ttbla+9eGm4Yd/VkO7r5RC4NXctnOfc1tnYWMW0jk=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<CAHW6GY+bkjOPa2UuVGaoJnC2D=yBMS43o+B-pAOWhzATSkQ-nw@mail.gmail.com>","References":"<20240529192612.814515-1-paul.elder@ideasonboard.com>\n\t<171714207689.2248009.7527879051408890948@ping.linuxembedded.co.uk>\n\t<CAHW6GY+bkjOPa2UuVGaoJnC2D=yBMS43o+B-pAOWhzATSkQ-nw@mail.gmail.com>","Subject":"Re: [PATCH v3 0/4] ipa: Move Pwl from Raspberry Pi to libipa","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Paul Elder <paul.elder@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org,\n\tNaushir Patuck <naush@raspberrypi.com>","To":"David Plowman <david.plowman@raspberrypi.com>","Date":"Fri, 31 May 2024 12:12:17 +0100","Message-ID":"<171715393731.2248009.1824219456685510010@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]