Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp626216ybi; Wed, 19 Jun 2019 05:18:33 -0700 (PDT) X-Google-Smtp-Source: APXvYqzCJqkoNmaMLXLXF5EzXcTbOk3CH4EVRBkfFMhaTQGRh3VfSOi7QjowIZPjcCqu7s3bmFwm X-Received: by 2002:a63:d756:: with SMTP id w22mr836354pgi.156.1560946713551; Wed, 19 Jun 2019 05:18:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560946713; cv=none; d=google.com; s=arc-20160816; b=oJuAwh4pnXw0u8O9wBT5yJSQK2vEtsHh/ECbW9Yjl/DfnhlI3n5AGo8NSG9CQm1BvE cFmFYHRB7JINgjphCexGbQuOb3oH3e3/hxJ5AK8E+fQnQXFgBgCwa7gqSWwW3zFdEgZA A+37A3kAXjVfcw90FjqJCXv0fiuG3W3zqnmy1M+qNJx2hMXKXYwjmZlwtgMrntp3mpen Np+2iOwkMrI4r26L6ZZ1z30ItGRCDOlhk7z0hkICpMdPyua1DE9M5i4C7EK8qsQU8Bhn REoPHTsmbhFcD6Rieo4YdQ+N9vi6j4QDE3Mqb2D6V8xmJlgkH5BhaUHyvi+a4Anpa/Ya hM7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=NrbbeWhKqaFHoNocA+7XHST4BObHSknNIwseMZPgXfc=; b=BYW9TIrXKhgbQF4TCjcbccl9DNXmIQLqTIIxEzsHVz1xSQOUVbp1VpRc94uvVKMyRL FQgFsfKZelBLLVQGT5xshG7mPTDUQjApe0u3+ln5cbUckVJ79Js408L56jqVqe0zbUh9 irx3+vkXwt8pZxXrsh4TEQvghgjRJbF/7JLi6Q7Y8uiXlJSZsn9PbnDLT3MK/Y8iPMTx Zp1xKbq1LeCSIH/ajWQDy3/0jVI6KIo0A5md3yXBm6ZL0JLsZij1Yjo1TyoNkuS0Y9i4 APG7dxC4wSIJmMuyRYU/fXKcTtrdQEl8eAQOgGcnVcoGOx1jEqs8Wl9Zzomxcqn7lG9H GOZw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g11si17177261plm.390.2019.06.19.05.18.18; Wed, 19 Jun 2019 05:18:33 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731680AbfFSMPr (ORCPT + 99 others); Wed, 19 Jun 2019 08:15:47 -0400 Received: from bhuna.collabora.co.uk ([46.235.227.227]:40444 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727076AbfFSMPr (ORCPT ); Wed, 19 Jun 2019 08:15:47 -0400 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 Cc: linux-kernel@vger.kernel.org, Tomasz Figa , Nicolas Dufresne , kernel@collabora.com, Paul Kocialkowski , Ezequiel Garcia , Jonas Karlman , linux-rockchip@lists.infradead.org, Heiko Stuebner , Andrew Morton , Rasmus Villemoes , Philipp Zabel , Boris Brezillon 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 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 -- 2.20.1