From patchwork Fri Dec 13 12:54:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Boris Brezillon X-Patchwork-Id: 11291669 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2E39214BD for ; Fri, 13 Dec 2019 22:24:26 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1438C2077B for ; Fri, 13 Dec 2019 22:24:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Cgypn0Fj" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1438C2077B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=collabora.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-rockchip-bounces+patchwork-linux-rockchip=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=4mQOwIccvHqw1tSdXyLp6Un8aXj/gMCEOx9pbyinveU=; b=Cgypn0FjPpKWdg 9jfiXXJ6RQajeOEnGdQx1N7e0X3KVJeCD4vlpOYtEnejHVHl70MIEcT0pnyJ5vWc0PqIigcHufgDc +81upsBLIFi6DN5V3qyM5X9p2MZKTEP3KvV2mY/jL9uiPhbt5mVAHsG/Y49m5SA63Y4U7mn0hJizZ grz74WXX1qXvq6UPjrvia9ATChqLfrhtblmyjIaFl3lagssaCo66lj4wL0hMoA9fh/6vH3mDYvsS+ IQInHWbBdns9W57QJCC8+ul2tupOdhlB8iKTak2axZkOm5HK+M2blKvhuaKdgu63ClHJEm+kohQhe GZTTHp2lskiXiBOdlEfg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1ifkSn-0000a9-JT; Fri, 13 Dec 2019 12:54:33 +0000 Received: from bhuna.collabora.co.uk ([2a00:1098:0:82:1000:25:2eeb:e3e3]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1ifkSj-0000Ws-5y for linux-rockchip@lists.infradead.org; Fri, 13 Dec 2019 12:54:30 +0000 Received: from localhost.localdomain (unknown [IPv6:2a01:e0a:2c:6930:5cf4:84a1:2763:fe0d]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: bbrezillon) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id 2EA78294061; Fri, 13 Dec 2019 12:54:19 +0000 (GMT) From: Boris Brezillon To: Mauro Carvalho Chehab , Hans Verkuil , Laurent Pinchart , Sakari Ailus , linux-media@vger.kernel.org Subject: [PATCH v3 0/7] media: rockchip: Add the rkvdec driver Date: Fri, 13 Dec 2019 13:54:07 +0100 Message-Id: <20191213125414.90725-1-boris.brezillon@collabora.com> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191213_045429_347817_11833BF1 X-CRM114-Status: GOOD ( 12.25 ) X-Spam-Score: -0.0 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , devicetree@vger.kernel.org, Tomasz Figa , Heiko Stuebner , Jonas Karlman , Nicolas Dufresne , Paul Kocialkowski , linux-rockchip@lists.infradead.org, Rob Herring , Boris Brezillon , kernel@collabora.com, Ezequiel Garcia Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+patchwork-linux-rockchip=patchwork.kernel.org@lists.infradead.org Hello, This is v3 of the rkvdec driver adding both the core of the driver and a backend to decode H24 streams. The most notable change in this version is the addition of generic helpers to build the reflists, along with Jonas' patch adding new DPB flags to express the field being referenced by each DPB entry. Driver-wise, a few things have been reworked/clarified, but most of the code is unchanged. See the changelog attached to each patch for more details. Regards, Boris Boris Brezillon (6): media: vb2: Add a helper to get the vb2 buffer attached to a request media: v4l2-core: Add helpers to build the H264 P/B0/B1 reflists media: hantro: h264: Use the generic H264 reflist builder media: dt-bindings: rockchip: Document RK3399 Video Decoder bindings media: rkvdec: Add the rkvdec driver arm64: dts: rockchip: rk3399: Define the rockchip Video Decoder node Jonas Karlman (1): media: uapi: h264: Add DPB entry field reference flags .../bindings/media/rockchip,vdec.yaml | 71 + .../media/uapi/v4l/ext-ctrls-codec.rst | 16 + arch/arm64/boot/dts/rockchip/rk3399.dtsi | 14 +- .../media/common/videobuf2/videobuf2-core.c | 23 + drivers/media/v4l2-core/Kconfig | 4 + drivers/media/v4l2-core/Makefile | 1 + drivers/media/v4l2-core/v4l2-h264.c | 258 ++++ drivers/staging/media/Kconfig | 2 + drivers/staging/media/Makefile | 1 + drivers/staging/media/hantro/hantro_h264.c | 237 +--- drivers/staging/media/rkvdec/Kconfig | 15 + drivers/staging/media/rkvdec/Makefile | 3 + drivers/staging/media/rkvdec/rkvdec-h264.c | 1154 +++++++++++++++++ drivers/staging/media/rkvdec/rkvdec-regs.h | 239 ++++ drivers/staging/media/rkvdec/rkvdec.c | 1130 ++++++++++++++++ drivers/staging/media/rkvdec/rkvdec.h | 124 ++ include/media/h264-ctrls.h | 2 + include/media/v4l2-h264.h | 86 ++ include/media/videobuf2-core.h | 11 + 19 files changed, 3161 insertions(+), 230 deletions(-) create mode 100644 Documentation/devicetree/bindings/media/rockchip,vdec.yaml create mode 100644 drivers/media/v4l2-core/v4l2-h264.c create mode 100644 drivers/staging/media/rkvdec/Kconfig create mode 100644 drivers/staging/media/rkvdec/Makefile create mode 100644 drivers/staging/media/rkvdec/rkvdec-h264.c create mode 100644 drivers/staging/media/rkvdec/rkvdec-regs.h create mode 100644 drivers/staging/media/rkvdec/rkvdec.c create mode 100644 drivers/staging/media/rkvdec/rkvdec.h create mode 100644 include/media/v4l2-h264.h