[{"id":5046,"web_url":"https://patchwork.libcamera.org/comment/5046/","msgid":"<e818592d-aded-78b8-b682-210f01e68d7f@ideasonboard.com>","date":"2020-06-05T13:01:15","subject":"Re: [libcamera-devel] [PATCH 7/8] cam: kms_sink: Enable display on\n\tfirst frame","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Laurent,\n\nOn 19/05/2020 04:25, Laurent Pinchart wrote:\n> Not all display controllers support enabling the display without any\n> active plane. Delay display enabling to the first frame.\n\nPresumably this patch can squash directly into patch 6/8 ?\n\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  src/cam/kms_sink.cpp | 31 +++++++++++--------------------\n>  src/cam/kms_sink.h   |  2 --\n>  2 files changed, 11 insertions(+), 22 deletions(-)\n> \n> diff --git a/src/cam/kms_sink.cpp b/src/cam/kms_sink.cpp\n> index 85f244ea5413..a769255c022e 100644\n> --- a/src/cam/kms_sink.cpp\n> +++ b/src/cam/kms_sink.cpp\n> @@ -184,23 +184,6 @@ int KMSSink::start()\n>  \t\treturn ret;\n>  \t}\n>  \n> -\t/* Enable the display pipeline with no plane to start with. */\n> -\trequest = std::make_unique<DRM::AtomicRequest>(&dev_);\n> -\n> -\trequest->addProperty(connector_, \"CRTC_ID\", crtc_->id());\n> -\trequest->addProperty(crtc_, \"ACTIVE\", 1);\n> -\trequest->addProperty(crtc_, \"MODE_ID\", mode_->toBlob(&dev_));\n> -\n> -\tret = request->commit(DRM::AtomicRequest::FlagAllowModeset);\n> -\tif (ret < 0) {\n> -\t\tstd::cerr\n> -\t\t\t<< \"Failed to enable display pipeline: \"\n> -\t\t\t<< strerror(-ret) << std::endl;\n> -\t\treturn ret;\n> -\t}\n> -\n> -\tplaneInitialized_ = false;\n> -\n>  \treturn 0;\n>  }\n>  \n> @@ -244,10 +227,17 @@ bool KMSSink::consumeBuffer(const libcamera::Stream *stream,\n>  \n>  \tDRM::FrameBuffer *drmBuffer = iter->second.get();\n>  \n> +\tunsigned int flags = DRM::AtomicRequest::FlagAsync;\n>  \tDRM::AtomicRequest *request = new DRM::AtomicRequest(&dev_);\n>  \trequest->addProperty(plane_, \"FB_ID\", drmBuffer->id());\n>  \n> -\tif (!planeInitialized_) {\n> +\tif (!active_ && !queued_) {\n> +\t\t/* Enable the display pipeline on the first frame. */\n> +\t\trequest->addProperty(connector_, \"CRTC_ID\", crtc_->id());\n> +\n> +\t\trequest->addProperty(crtc_, \"ACTIVE\", 1);\n> +\t\trequest->addProperty(crtc_, \"MODE_ID\", mode_->toBlob(&dev_));\n> +\n>  \t\trequest->addProperty(plane_, \"CRTC_ID\", crtc_->id());\n>  \t\trequest->addProperty(plane_, \"SRC_X\", 0 << 16);\n>  \t\trequest->addProperty(plane_, \"SRC_Y\", 0 << 16);\n> @@ -257,7 +247,8 @@ bool KMSSink::consumeBuffer(const libcamera::Stream *stream,\n>  \t\trequest->addProperty(plane_, \"CRTC_Y\", 0);\n>  \t\trequest->addProperty(plane_, \"CRTC_W\", mode_->hdisplay);\n>  \t\trequest->addProperty(plane_, \"CRTC_H\", mode_->vdisplay);\n> -\t\tplaneInitialized_ = true;\n> +\n> +\t\tflags |= DRM::AtomicRequest::FlagAllowModeset;\n>  \t}\n>  \n>  \tpending_ = std::make_unique<Request>(request, buffer);\n> @@ -265,7 +256,7 @@ bool KMSSink::consumeBuffer(const libcamera::Stream *stream,\n>  \tstd::lock_guard<std::mutex> lock(lock_);\n>  \n>  \tif (!queued_) {\n> -\t\tint ret = request->commit(DRM::AtomicRequest::FlagAsync);\n> +\t\tint ret = request->commit(flags);\n>  \t\tif (ret < 0)\n>  \t\t\tstd::cerr\n>  \t\t\t\t<< \"Failed to commit atomic request: \"\n> diff --git a/src/cam/kms_sink.h b/src/cam/kms_sink.h\n> index ee257a071c24..0879bb559e5a 100644\n> --- a/src/cam/kms_sink.h\n> +++ b/src/cam/kms_sink.h\n> @@ -63,8 +63,6 @@ private:\n>  \tlibcamera::Size size_;\n>  \tunsigned int stride_;\n>  \n> -\tbool planeInitialized_;\n> -\n>  \tstd::map<libcamera::FrameBuffer *, std::unique_ptr<DRM::FrameBuffer>> buffers_;\n>  \n>  \tstd::mutex lock_;\n>","headers":{"Return-Path":"<kieran.bingham@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 6859B603C6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  5 Jun 2020 15:01:19 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net [86.31.129.233])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id CA9D727C;\n\tFri,  5 Jun 2020 15:01:18 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"TCESEkAk\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1591362079;\n\tbh=vmk1X7ON6JiJU2qsdWHOMj0OYOaHUNu0rgIUEMzsvXE=;\n\th=Reply-To:Subject:To:References:From:Date:In-Reply-To:From;\n\tb=TCESEkAkV0+Vu5fxa84eWL/b7KkB/YFKm1uTU5PhlC7aOzIXed7dO7MGbKtAArpj2\n\tUKCYEnwUc1Jg+/8bKGWe/I4hRtW5Y7uoYHn1Ye0etDYKpHb+pWFQGCWw9Yq2nS3d4N\n\tDiyvWZuNM+EEiCs/eYco9rXzFVeE2Tyf/PvAxFrQ=","Reply-To":"kieran.bingham@ideasonboard.com","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20200519032505.17307-1-laurent.pinchart@ideasonboard.com>\n\t<20200519032505.17307-8-laurent.pinchart@ideasonboard.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tWZw01QYHU/GUV/zHJSFk","Organization":"Ideas on Board","Message-ID":"<e818592d-aded-78b8-b682-210f01e68d7f@ideasonboard.com>","Date":"Fri, 5 Jun 2020 14:01:15 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101\n\tThunderbird/68.7.0","MIME-Version":"1.0","In-Reply-To":"<20200519032505.17307-8-laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH 7/8] cam: kms_sink: Enable display on\n\tfirst frame","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>","X-List-Received-Date":"Fri, 05 Jun 2020 13:01:19 -0000"}},{"id":5047,"web_url":"https://patchwork.libcamera.org/comment/5047/","msgid":"<20200605145958.GB26752@pendragon.ideasonboard.com>","date":"2020-06-05T14:59:58","subject":"Re: [libcamera-devel] [PATCH 7/8] cam: kms_sink: Enable display on\n\tfirst frame","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nOn Fri, Jun 05, 2020 at 02:01:15PM +0100, Kieran Bingham wrote:\n> On 19/05/2020 04:25, Laurent Pinchart wrote:\n> > Not all display controllers support enabling the display without any\n> > active plane. Delay display enabling to the first frame.\n> \n> Presumably this patch can squash directly into patch 6/8 ?\n\nIt could, I think I mentioned that in the cover letter. I've kept it\nseparate to ease review, and also to make it easier to revert the patch\nshould we reconsider the approach in the future, for instance with a\nfirst frame containing a splash screen (or a black frame).\n\n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> >  src/cam/kms_sink.cpp | 31 +++++++++++--------------------\n> >  src/cam/kms_sink.h   |  2 --\n> >  2 files changed, 11 insertions(+), 22 deletions(-)\n> > \n> > diff --git a/src/cam/kms_sink.cpp b/src/cam/kms_sink.cpp\n> > index 85f244ea5413..a769255c022e 100644\n> > --- a/src/cam/kms_sink.cpp\n> > +++ b/src/cam/kms_sink.cpp\n> > @@ -184,23 +184,6 @@ int KMSSink::start()\n> >  \t\treturn ret;\n> >  \t}\n> >  \n> > -\t/* Enable the display pipeline with no plane to start with. */\n> > -\trequest = std::make_unique<DRM::AtomicRequest>(&dev_);\n> > -\n> > -\trequest->addProperty(connector_, \"CRTC_ID\", crtc_->id());\n> > -\trequest->addProperty(crtc_, \"ACTIVE\", 1);\n> > -\trequest->addProperty(crtc_, \"MODE_ID\", mode_->toBlob(&dev_));\n> > -\n> > -\tret = request->commit(DRM::AtomicRequest::FlagAllowModeset);\n> > -\tif (ret < 0) {\n> > -\t\tstd::cerr\n> > -\t\t\t<< \"Failed to enable display pipeline: \"\n> > -\t\t\t<< strerror(-ret) << std::endl;\n> > -\t\treturn ret;\n> > -\t}\n> > -\n> > -\tplaneInitialized_ = false;\n> > -\n> >  \treturn 0;\n> >  }\n> >  \n> > @@ -244,10 +227,17 @@ bool KMSSink::consumeBuffer(const libcamera::Stream *stream,\n> >  \n> >  \tDRM::FrameBuffer *drmBuffer = iter->second.get();\n> >  \n> > +\tunsigned int flags = DRM::AtomicRequest::FlagAsync;\n> >  \tDRM::AtomicRequest *request = new DRM::AtomicRequest(&dev_);\n> >  \trequest->addProperty(plane_, \"FB_ID\", drmBuffer->id());\n> >  \n> > -\tif (!planeInitialized_) {\n> > +\tif (!active_ && !queued_) {\n> > +\t\t/* Enable the display pipeline on the first frame. */\n> > +\t\trequest->addProperty(connector_, \"CRTC_ID\", crtc_->id());\n> > +\n> > +\t\trequest->addProperty(crtc_, \"ACTIVE\", 1);\n> > +\t\trequest->addProperty(crtc_, \"MODE_ID\", mode_->toBlob(&dev_));\n> > +\n> >  \t\trequest->addProperty(plane_, \"CRTC_ID\", crtc_->id());\n> >  \t\trequest->addProperty(plane_, \"SRC_X\", 0 << 16);\n> >  \t\trequest->addProperty(plane_, \"SRC_Y\", 0 << 16);\n> > @@ -257,7 +247,8 @@ bool KMSSink::consumeBuffer(const libcamera::Stream *stream,\n> >  \t\trequest->addProperty(plane_, \"CRTC_Y\", 0);\n> >  \t\trequest->addProperty(plane_, \"CRTC_W\", mode_->hdisplay);\n> >  \t\trequest->addProperty(plane_, \"CRTC_H\", mode_->vdisplay);\n> > -\t\tplaneInitialized_ = true;\n> > +\n> > +\t\tflags |= DRM::AtomicRequest::FlagAllowModeset;\n> >  \t}\n> >  \n> >  \tpending_ = std::make_unique<Request>(request, buffer);\n> > @@ -265,7 +256,7 @@ bool KMSSink::consumeBuffer(const libcamera::Stream *stream,\n> >  \tstd::lock_guard<std::mutex> lock(lock_);\n> >  \n> >  \tif (!queued_) {\n> > -\t\tint ret = request->commit(DRM::AtomicRequest::FlagAsync);\n> > +\t\tint ret = request->commit(flags);\n> >  \t\tif (ret < 0)\n> >  \t\t\tstd::cerr\n> >  \t\t\t\t<< \"Failed to commit atomic request: \"\n> > diff --git a/src/cam/kms_sink.h b/src/cam/kms_sink.h\n> > index ee257a071c24..0879bb559e5a 100644\n> > --- a/src/cam/kms_sink.h\n> > +++ b/src/cam/kms_sink.h\n> > @@ -63,8 +63,6 @@ private:\n> >  \tlibcamera::Size size_;\n> >  \tunsigned int stride_;\n> >  \n> > -\tbool planeInitialized_;\n> > -\n> >  \tstd::map<libcamera::FrameBuffer *, std::unique_ptr<DRM::FrameBuffer>> buffers_;\n> >  \n> >  \tstd::mutex lock_;","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 B7C0C603C6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  5 Jun 2020 17:00:17 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 1F35227C;\n\tFri,  5 Jun 2020 17:00:17 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"pEGf+eWA\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1591369217;\n\tbh=ITJbvczSHZwcBtvW1DT1goSdcKGhFADYwUfhyfNaxnU=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=pEGf+eWAkdQhg9Bvc14B9R5P0EsnnDckWpsBAvYXlgINJ10eEVbDe7Kmp66Pb8vXM\n\tSgLQXd9VIb4c+P992YfrcI2rWieOFmCFT/Ydp1Cvis2xb4PeOU6tnGsBQMywbRdgzY\n\txy7FOGN6z6cApnu94UlLaQ3DBMbKqVxsyrf69508=","Date":"Fri, 5 Jun 2020 17:59:58 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20200605145958.GB26752@pendragon.ideasonboard.com>","References":"<20200519032505.17307-1-laurent.pinchart@ideasonboard.com>\n\t<20200519032505.17307-8-laurent.pinchart@ideasonboard.com>\n\t<e818592d-aded-78b8-b682-210f01e68d7f@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<e818592d-aded-78b8-b682-210f01e68d7f@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 7/8] cam: kms_sink: Enable display on\n\tfirst frame","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>","X-List-Received-Date":"Fri, 05 Jun 2020 15:00:18 -0000"}}]