Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp1395337pxj; Fri, 18 Jun 2021 06:16:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwIx6TQeIBep/KcCCjWpgMVk2Zi6dezzeQtEoxt7LugBtEgh9AZTXMqYsj81UQS9ObaShO2 X-Received: by 2002:a6b:1d3:: with SMTP id 202mr8142245iob.100.1624022201067; Fri, 18 Jun 2021 06:16:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624022201; cv=none; d=google.com; s=arc-20160816; b=y9zrRcq98TdwV03bRU6qjgppOdE1MFRaljKFD1dmGXLiz3IdvgFmO2psZi3OQX0/4l NnCtco1nuKub/BPYHjf4LNUyoptnEQmABgRm3N5wLMFYM2MDGRZM7hVXvPjn8LpHyOj2 s1FnfTl+ePxDRy2AbR/0/iCoGYErmItnQ7U4G5BEpunCzG3vgxhyvoWqZCT+VI0pX2J9 PTH2EjlhZv+W3hSlJRaQCA2TwJEHuWdKPJh4N81kM4odsN/dyho9HZbIv63ZKEutIaBO uY48EErnLJS4uDGogJa+eEKsQVdt7EL3KJA1EU4Ut727+ziQkxcGPDZL9yXKaK+jIW12 fVXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=+qH0guZ/UlMPlRnin7HtRHvAGaic0/9FN/VLGYNnSwI=; b=f8RNHU/hfXhpdQQwtDvfe9AgkQIVQv/zZloMIscgSjYwCWfus7d2Egf1J+gNC0epHJ bAUI11m4cYYCWz4YgKnJ+bNaTkB07AsWbISr9BA0HoBcwWqQC05nDjqUuVhIpIJrFU8P 19Io0bfg6HKPie93WML/kESkFQaRO6WiY8OrZIA/aPS6IU0wMEK6bCHM7VBVyej7t2IR AwDsFc97o1veFoSjCTfur5YKNbgFqfYy4BlMHsglVIixwjTbJVOypogHNo0ELTLNi1pc F3fmNHCGYWYB8g5lyyZq7wfOwBTodt5xYVugGl2KkIHOU7S6UxI7C5n6VXoTcILq3lNL Wxvg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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. [23.128.96.18]) by mx.google.com with ESMTP id j12si2324392ils.44.2021.06.18.06.16.28; Fri, 18 Jun 2021 06:16:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S232969AbhFRNRs (ORCPT + 99 others); Fri, 18 Jun 2021 09:17:48 -0400 Received: from bhuna.collabora.co.uk ([46.235.227.227]:44442 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232895AbhFRNRq (ORCPT ); Fri, 18 Jun 2021 09:17:46 -0400 Received: from localhost.localdomain (unknown [IPv6:2a01:e0a:4cb:a870:141f:c87a:873e:7b6f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: benjamin.gaignard) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id 772591F448CC; Fri, 18 Jun 2021 14:15:34 +0100 (BST) From: Benjamin Gaignard To: hverkuil@xs4all.nl, ezequiel@collabora.com, p.zabel@pengutronix.de, mchehab@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, festevam@gmail.com, gregkh@linuxfoundation.org, mripard@kernel.org, paul.kocialkowski@bootlin.com, wens@csie.org, jernej.skrabec@siol.net, emil.l.velikov@gmail.com, andrzej.p@collabora.com, jc@kynesim.co.uk, jernej.skrabec@gmail.com, nicolas@ndufresne.ca Cc: kernel@pengutronix.de, linux-imx@nxp.com, linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Benjamin Gaignard Subject: [PATCH v3 0/8] Additional features for Hantro HEVC Date: Fri, 18 Jun 2021 15:15:18 +0200 Message-Id: <20210618131526.566762-1-benjamin.gaignard@collabora.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org version 3: - Change trace file name to hantro_trace.h version 2: - Fix structure name in ext-ctrls-codec.rst - Define the value for compression storage size - Add comments about registers usage - Add documentation about P010 padding Basic HEVC support has been added to Hantro driver in this pull request: https://www.spinics.net/lists/linux-media/msg193744.html Thanks to that it is now possible to support more features for this driver. The first patch allow to log the hardware performance per macroblock. The second patch makes the driver use compressed reference frames to reduce memory bandwidth consumption. Patches 3 to 5 allow to decode and produce 10-bits P010 frames. Patch 6 make usage of G2 post processor to scale down the frames. Patches 7 and 8 add the support of HEVC scaling matrix by adding a new control. All these patches enhance the HEVC support for Hantro (G2) hardware. Unluckily they almost all touch the same pieces of code, where buffer size, offset and addresses are set, so they have to be in this order. They depend of the series pushed in this pull request: https://www.spinics.net/lists/linux-media/msg193744.html Benjamin Benjamin Gaignard (8): media: hantro: Trace hevc hw cycles performance register media: hantro: Add support of compressed reference buffers media: hantro: hevc: Allow 10-bits encoded streams media: Add P010 video format media: hantro: hevc: Allow to produce 10-bit frames media: hantro: enumerate scaled output formats media: hevc: Add scaling matrix control media: hantro: Add scaling lists feature .../media/v4l/ext-ctrls-codec.rst | 45 +++++ .../media/v4l/pixfmt-yuv-planar.rst | 78 +++++++- .../media/v4l/vidioc-queryctrl.rst | 6 + drivers/media/v4l2-core/v4l2-common.c | 1 + drivers/media/v4l2-core/v4l2-ctrls-core.c | 6 + drivers/media/v4l2-core/v4l2-ctrls-defs.c | 4 + drivers/media/v4l2-core/v4l2-ioctl.c | 1 + drivers/staging/media/hantro/hantro.h | 4 + drivers/staging/media/hantro/hantro_drv.c | 32 ++- .../staging/media/hantro/hantro_g2_hevc_dec.c | 186 ++++++++++++++++-- drivers/staging/media/hantro/hantro_g2_regs.h | 12 ++ drivers/staging/media/hantro/hantro_hevc.c | 67 ++++++- drivers/staging/media/hantro/hantro_hw.h | 7 + drivers/staging/media/hantro/hantro_trace.h | 39 ++++ drivers/staging/media/hantro/hantro_v4l2.c | 10 +- drivers/staging/media/hantro/imx8m_vpu_hw.c | 6 + include/media/hevc-ctrls.h | 11 ++ include/uapi/linux/videodev2.h | 1 + 18 files changed, 492 insertions(+), 24 deletions(-) create mode 100644 drivers/staging/media/hantro/hantro_trace.h -- 2.25.1