From patchwork Thu Dec 21 08:47:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hugues Fruchet X-Patchwork-Id: 18407 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:2483:b0:fb:cd0c:d3e with SMTP id q3csp273788dyi; Thu, 21 Dec 2023 00:49:35 -0800 (PST) X-Google-Smtp-Source: AGHT+IG4EwHSHJHPByhvkdrVV9QFUm1lvKhCc9JaG8H0yny3uvcsWzzeZMJvZ+WEqXj5uTMywQmD X-Received: by 2002:a05:6214:c6b:b0:67f:1bff:ed2d with SMTP id t11-20020a0562140c6b00b0067f1bffed2dmr13914211qvj.65.1703148574801; Thu, 21 Dec 2023 00:49:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703148574; cv=none; d=google.com; s=arc-20160816; b=TCQt/erMdJdGHmEHwhfrw1pwqVlEPaSaZF6ieCRpxny379PKZ6j6wouPHrTEIIdIMD X7JJjdPhIs9FEam3MUAN+2lGRcLmEdZKOhyiC0S42JvTJwJOEkvsgz/x7VEW+zi5k2mV IXM6MltUhMZrkv5fpu2IE5Q4HDzIyMpmz65pohqSxI7LvLqVMh0yYYY+7ODy1JCFcHtM AWNDvuZiO5w+HFg3hI0R8F15OgS+9lKailFxKJCQF+Od4B4FHjaRJp60Nt3nLvnc4PvY ryFUs9CPW/9IOR2hJvYTqyxRXSxi+CUpGRWceNlHdCpfBhD+zEdd0vGfhP2ECpplz1Ho sfwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=jeRT+eK7Vhl0LiS2NYUaPuSsz9Ja8QWgixI33nTKj3w=; fh=ErwLDw9+98Mb4Q3i5RoHr7UOS7Ns3CK5YbB+qheGbUs=; b=NN/GqZJj9E0Ls3kcJKClBFWiN+gJzPqj0vwgJmEdfjem9LJjUqAdO/0DtXzpSQzlCC nKTituCp3jZmDjDFR1Bq/vgCSjpMGYf08MjGI4ATN4f05pAePWWuk4O+a7oLUKW6sk6j Zho7y2Nd+KWv8testXMv5myJ2TfG7HCrr8PLUznKQYYoXhQXUqQcoxDaYVhM70i0gJ6Z DE4G1kGigtF6LjRR830oVMGOeAossTvBzAdoQTH6oPm9ji1dzLsQ1VabJDUXdgebcyiq fPdrZrlHiFkxl106dsf9G8t0jhRaG7PP98yKq0rAmC20vJhUKisOvVNVApUjoZLVI1cq ll3Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@foss.st.com header.s=selector1 header.b=cxN0BXhC; spf=pass (google.com: domain of linux-kernel+bounces-8015-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-8015-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=foss.st.com Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id d27-20020a0cb2db000000b0067f70fc7fcdsi1618755qvf.405.2023.12.21.00.49.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 21 Dec 2023 00:49:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-8015-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@foss.st.com header.s=selector1 header.b=cxN0BXhC; spf=pass (google.com: domain of linux-kernel+bounces-8015-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-8015-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=foss.st.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 979331C21B97 for ; Thu, 21 Dec 2023 08:49:34 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2A3893FE5E; Thu, 21 Dec 2023 08:48:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="cxN0BXhC" X-Original-To: linux-kernel@vger.kernel.org Received: from mx07-00178001.pphosted.com (mx08-00178001.pphosted.com [91.207.212.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F23A01A70A; Thu, 21 Dec 2023 08:48:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Received: from pps.filterd (m0046661.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.17.1.22/8.17.1.22) with ESMTP id 3BL24G1s012155; Thu, 21 Dec 2023 09:47:28 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; h= from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding:content-type; s=selector1; bh=jeRT+eK 7Vhl0LiS2NYUaPuSsz9Ja8QWgixI33nTKj3w=; b=cxN0BXhC6kFkwbBZlqXoMQG AMpG8S781Rpd6LlI084zqO6s9DQLxjy3ttzt/j9GgY48m8+ATwmJZIPSOj+vcwyw FhCuS3s+J3FK8DAvXPraZdQdY7aY/0sWMagGXXWK0fjmezQiakF7ha+iUIK5DRrT J9TJQlaEoQauvcUA5d8pybCEFfxBWdq17iCI/YrZ4IOauHi7G5ofHQ/y+AN6LwAu AHs3pDHp1WcX2QRe6Y9KLQ2M1bh559xNIIvg4+J4B77nPAk/DPn57JCBa1nxPy/V 4LbeRIgnTxqT47Uw6jTfdPD+8I4qIyLaH1DMoAkTZAJzLXZFJzkwuv/ogPmIKJQ= = Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 3v13nhnxu6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 21 Dec 2023 09:47:28 +0100 (CET) Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 82424100066; Thu, 21 Dec 2023 09:47:25 +0100 (CET) Received: from Webmail-eu.st.com (shfdag1node1.st.com [10.75.129.69]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 72D1B22A6D2; Thu, 21 Dec 2023 09:47:25 +0100 (CET) Received: from localhost (10.201.20.120) by SHFDAG1NODE1.st.com (10.75.129.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Thu, 21 Dec 2023 09:47:25 +0100 From: Hugues Fruchet To: Ezequiel Garcia , Philipp Zabel , Andrzej Pietrasiewicz , Nicolas Dufresne , Sakari Ailus , Benjamin Gaignard , Laurent Pinchart , Daniel Almeida , Benjamin Mugnier , Heiko Stuebner , Mauro Carvalho Chehab , Hans Verkuil , , Maxime Coquelin , Alexandre Torgue , , Rob Herring , Krzysztof Kozlowski , Conor Dooley , , , , CC: Hugues Fruchet , Marco Felsch , Adam Ford Subject: [PATCH v5 0/5] Add support for video hardware codec of STMicroelectronics STM32 SoC series Date: Thu, 21 Dec 2023 09:47:18 +0100 Message-ID: <20231221084723.2152034-1-hugues.fruchet@foss.st.com> X-Mailer: git-send-email 2.25.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: EQNCAS1NODE3.st.com (10.75.129.80) To SHFDAG1NODE1.st.com (10.75.129.69) X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-12-21_04,2023-12-20_01,2023-05-22_02 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1785880720267717259 X-GMAIL-MSGID: 1785880720267717259 This patchset introduces support for VDEC video hardware decoder and VENC video hardware encoder of STMicroelectronics STM32MP25 SoC series. This initial support implements H264 decoding, VP8 decoding and JPEG encoding. This has been tested on STM32MP257F-EV1 evaluation board. =========== = history = =========== version 5: - Precise that video decoding as been successfully tested up to full HD - Add Nicolas Dufresne reviewed-by version 4: - Fix comments from Nicolas about dropping encoder raw steps version 3: - Fix remarks from Krzysztof Kozlowski: - drop "items", we keep simple enum in such case - drop second example - it is the same as the first - Drop unused node labels as suggested by Conor Dooley - Revisit min/max resolutions as suggested by Nicolas Dufresne version 2: - Fix remarks from Krzysztof Kozlowski on v1: - single video-codec binding for both VDEC/VENC - get rid of "-names" - use of generic node name "video-codec" version 1: - Initial submission Hugues Fruchet (5): dt-bindings: media: Document STM32MP25 VDEC & VENC video codecs media: hantro: add support for STM32MP25 VDEC media: hantro: add support for STM32MP25 VENC arm64: dts: st: add video decoder support to stm32mp255 arm64: dts: st: add video encoder support to stm32mp255 .../media/st,stm32mp25-video-codec.yaml | 50 ++++++++ arch/arm64/boot/dts/st/stm32mp251.dtsi | 12 ++ arch/arm64/boot/dts/st/stm32mp255.dtsi | 17 +++ drivers/media/platform/verisilicon/Kconfig | 14 ++- drivers/media/platform/verisilicon/Makefile | 4 + .../media/platform/verisilicon/hantro_drv.c | 4 + .../media/platform/verisilicon/hantro_hw.h | 2 + .../platform/verisilicon/stm32mp25_vdec_hw.c | 92 ++++++++++++++ .../platform/verisilicon/stm32mp25_venc_hw.c | 115 ++++++++++++++++++ 9 files changed, 307 insertions(+), 3 deletions(-) create mode 100644 Documentation/devicetree/bindings/media/st,stm32mp25-video-codec.yaml create mode 100644 drivers/media/platform/verisilicon/stm32mp25_vdec_hw.c create mode 100644 drivers/media/platform/verisilicon/stm32mp25_venc_hw.c