From patchwork Wed Jun 19 12:15:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Boris Brezillon X-Patchwork-Id: 11003977 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E4D92186E for ; Wed, 19 Jun 2019 12:15:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D27C81FF28 for ; Wed, 19 Jun 2019 12:15:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C455628488; Wed, 19 Jun 2019 12:15:56 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 6D8961FF28 for ; Wed, 19 Jun 2019 12:15:56 +0000 (UTC) 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=8C7S45wq+cCYRYhxfJemgJu0koub3BETFxL0dnTdcTA=; b=Tfjo2uUKgRuUcr BJdblTQWeNcove4Wb7XULRJbH4/8p9G+KCloEoFSrjv59ZFr7R8MgawnMNT+AYYK9L54qVizAgEht kOkTH2gQ9Np5iDtd07NGKcKrF9QIRnxKMs6dPE5p1XB7GllmMSmzMyfm+QfGeglCIYBmEXCmlakWD GhxLmJs5Q+OP90qPRG1sc9yCwAm8g4yQkzUGW+Q4v6WDmUuiUgNvoBvmjx/znCz/KiOhhxJZONLb7 e/L/1WSPyuPiMuBQk5Z+qPLpqFRVIIwVdI2PKHwKodaiLerEFYslSu+Aq1q0GwFI/ro/rqyYgee+G Nf6EKbYP28gZSgK6HLmQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hdZVI-00058F-OX; Wed, 19 Jun 2019 12:15:52 +0000 Received: from bhuna.collabora.co.uk ([46.235.227.227]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hdZVD-00054V-S4 for linux-rockchip@lists.infradead.org; Wed, 19 Jun 2019 12:15:49 +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 7767C26069F; Wed, 19 Jun 2019 13:15:44 +0100 (BST) From: Boris Brezillon To: Mauro Carvalho Chehab , Hans Verkuil , Laurent Pinchart , Sakari Ailus , linux-media@vger.kernel.org Subject: [PATCH 0/9] media: hantro: Add support for H264 decoding Date: Wed, 19 Jun 2019 14:15:31 +0200 Message-Id: <20190619121540.29320-1-boris.brezillon@collabora.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190619_051548_167148_762DC4DD X-CRM114-Status: GOOD ( 17.75 ) 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: Tomasz Figa , Heiko Stuebner , Jonas Karlman , Rasmus Villemoes , linux-kernel@vger.kernel.org, Nicolas Dufresne , Paul Kocialkowski , linux-rockchip@lists.infradead.org, Boris Brezillon , Philipp Zabel , Andrew Morton , kernel@collabora.com, Ezequiel Garcia Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+patchwork-linux-rockchip=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Hello, This patch series adds support H264 decoding support to the hantro driver and doing some consilidation cleanup in the driver along the way. Some details about the patches forming this patchset: * The first patch is adding support for the sort_r() variant and has been posted separately by Rasmus. I put it back there because Andrew told me to repost it with the patch series using this new variant. As mentioned in the patch itself, I'd like this patch to be merged as soon as possible to avoid the synchronisation burden that might appear if we decide to delay it. * Patch 2 is needed to properly propagate the output buf timestamp to the capture buf one, which is required for intra-frame references. * Patches 3 to 6 are consolidating the code by providing helpers that can be used by all hantro backend and simplifying the ctrl initialization logic. We also constify the controls array. * Patches 7 to 8 are adding common H264 decoding bits and patch 9 is enabling H264 decoding on rk3288 Now, a few words about the dependencies. Unfortunately there are a lot, and that'd be great to have some of them merged. * This series is based on top of Ezequiel's VP8 work [1]. * It depends on [2] which defines/described the H264 decoding mode control. * Depends on [3] since I'm using vb2_get_buffer() to retrieve a reference buffer * The final dep is a fix I sent this morning allowing me to simplify the ctrl initialization logic Regards, Boris Boris Brezillon (5): media: hantro: Move copy_metadata() before doing a decode operation media: hantro: Constify the control array media: hantro: Simplify the controls creation logic media: hantro: Add hantro_get_{src,dst}_buf() helpers media: hantro: Add helpers to prepare/finish a run Hertz Wong (3): media: hantro: Add core bits to support H264 decoding media: hantro: Add support for H264 decoding on G1 media: hantro: Enable H264 decoding on rk3288 Rasmus Villemoes (1): lib/sort.c: implement sort() variant taking context argument drivers/staging/media/hantro/Makefile | 2 + drivers/staging/media/hantro/hantro.h | 24 +- drivers/staging/media/hantro/hantro_drv.c | 95 ++- .../staging/media/hantro/hantro_g1_h264_dec.c | 295 ++++++++ .../media/hantro/hantro_g1_mpeg2_dec.c | 14 +- .../staging/media/hantro/hantro_g1_vp8_dec.c | 17 +- .../staging/media/hantro/hantro_h1_jpeg_enc.c | 11 +- drivers/staging/media/hantro/hantro_h264.c | 638 ++++++++++++++++++ drivers/staging/media/hantro/hantro_hw.h | 55 ++ drivers/staging/media/hantro/hantro_v4l2.c | 15 +- drivers/staging/media/hantro/rk3288_vpu_hw.c | 21 +- .../media/hantro/rk3399_vpu_hw_jpeg_enc.c | 12 +- .../media/hantro/rk3399_vpu_hw_mpeg2_dec.c | 14 +- include/linux/sort.h | 5 + lib/sort.c | 34 +- 15 files changed, 1175 insertions(+), 77 deletions(-) create mode 100644 drivers/staging/media/hantro/hantro_g1_h264_dec.c create mode 100644 drivers/staging/media/hantro/hantro_h264.c