From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 040F7C87FDA for ; Mon, 11 Aug 2025 03:36:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type: Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date :Subject:CC:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=kKNOsloWiR1iqpJAuyiWPjs31TR04/PF1Rc3QH4Cc8Y=; b=ePrspB+GESswDpWUgcbYlPj0Ba HErNMNUHuiizACfpzCQnuDgitDyUOg18UHuTvYfd2SnOiqjAI6QoWjoNqVawCYzBPL9CpCaH10DC3 eZ67u16ZNXwAxbVek/uGvCHcYVmLiltHx+yUIGOK4FWGlNIdSKKPhaBa+y4VtoxZogK7pqA1XgKSS keZb3Q142zaAz2tOuZWJhHRYOgCcbm5bzKih1ddsNAkfG2H5LOtWLyubeP9f7MWmUWqnAKYkVISWf WhMiPToB/3kA63NUGaRTeQjGDKPtRu+Fr3BjGo4w4dLF4IE68R/1NQWuePwII11pjODyOL1ElJMFe J3aoWN7Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1ulJL8-00000006Qf4-101o; Mon, 11 Aug 2025 03:36:50 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1ulJBB-00000006PXE-0yB0; Mon, 11 Aug 2025 03:26:34 +0000 X-UUID: f91c801c766211f09eb0dd999d3936bf-20250810 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Type:Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=kKNOsloWiR1iqpJAuyiWPjs31TR04/PF1Rc3QH4Cc8Y=; b=sI7cg3C1PE6F+ofvRBBqhKzbuNWHVSyzR/h5P5IGZFrcK0GL+RCF2Y4mXl4InOEVePPFZBtK6G7LIifbIUI3rsZh2cTL7HvHdmUlbCg9VsbOQLo/vJg0Ad6EHppWjlg586fJy73iB09Rn7jJP3guVs17s1IZyclKGK1KCHZFcTc=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.3.3,REQID:9a3eaef1-c14b-4910-b727-621d16f90e24,IP:0,UR L:0,TC:0,Content:-25,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION :release,TS:-25 X-CID-META: VersionHash:f1326cf,CLOUDID:136dcd9d-7ad4-4169-ab95-78e9164f00fe,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:81|82|102,TC:-5,Content:0|15|50,EDM: -3,IP:nil,URL:0,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0, AV:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0,ARC:0 X-CID-BVR: 2,SSN|SDN X-CID-BAS: 2,SSN|SDN,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-CID-RHF: D41D8CD98F00B204E9800998ECF8427E X-UUID: f91c801c766211f09eb0dd999d3936bf-20250810 Received: from mtkmbs09n1.mediatek.inc [(172.21.101.35)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1124756086; Sun, 10 Aug 2025 20:26:30 -0700 Received: from mtkmbs13n1.mediatek.inc (172.21.101.193) by MTKMBS14N1.mediatek.inc (172.21.101.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.39; Mon, 11 Aug 2025 11:26:22 +0800 Received: from mhfsdcap04.gcn.mediatek.inc (10.17.3.154) by mtkmbs13n1.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.2.1258.39 via Frontend Transport; Mon, 11 Aug 2025 11:26:20 +0800 From: Kyrie Wu To: Tiffany Lin , Andrew-CT Chen , Yunfei Dong , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Matthias Brugger , AngeloGioacchino Del Regno , Kyrie Wu , Hans Verkuil , Nicolas Dufresne , Christophe JAILLET , Sebastian Fricke , Nathan Hebert , Arnd Bergmann , Irui Wang , George Sun , , , , , CC: Neil Armstrong , Andrzej Pietrasiewicz Subject: [PATCH v2 4/8] media: mediatek: vcodec: Add core-only VP9 decoding support for MT8189 Date: Mon, 11 Aug 2025 11:26:11 +0800 Message-ID: <20250811032616.1385-5-kyrie.wu@mediatek.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20250811032616.1385-1-kyrie.wu@mediatek.com> References: <20250811032616.1385-1-kyrie.wu@mediatek.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250810_202633_269901_406090FB X-CRM114-Status: GOOD ( 14.04 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Implemented core-only VP9 decoding functions for MT8189. Signed-off-by: Kyrie Wu --- .../vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c index fa0f406f7726..04197164fb82 100644 --- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c @@ -23,6 +23,7 @@ #define VP9_TILE_BUF_SIZE 4096 #define VP9_PROB_BUF_SIZE 2560 +#define VP9_PROB_BUF_4K_SIZE 3840 #define VP9_COUNTS_BUF_SIZE 16384 #define HDR_FLAG(x) (!!((hdr)->flags & V4L2_VP9_FRAME_FLAG_##x)) @@ -616,7 +617,10 @@ static int vdec_vp9_slice_alloc_working_buffer(struct vdec_vp9_slice_instance *i } if (!instance->prob.va) { - instance->prob.size = VP9_PROB_BUF_SIZE; + instance->prob.size = ((ctx->dev->chip_name == MTK_VDEC_MT8196) || + (ctx->dev->chip_name == MTK_VDEC_MT8189)) ? + VP9_PROB_BUF_4K_SIZE : VP9_PROB_BUF_SIZE; + if (mtk_vcodec_mem_alloc(ctx, &instance->prob)) goto err; } @@ -696,21 +700,22 @@ static int vdec_vp9_slice_tile_offset(int idx, int mi_num, int tile_log2) return min(offset, mi_num); } -static -int vdec_vp9_slice_setup_single_from_src_to_dst(struct vdec_vp9_slice_instance *instance) +static int vdec_vp9_slice_setup_single_from_src_to_dst(struct vdec_vp9_slice_instance *instance, + struct mtk_vcodec_mem *bs, + struct vdec_fb *fb) { - struct vb2_v4l2_buffer *src; - struct vb2_v4l2_buffer *dst; + struct mtk_video_dec_buf *src_buf_info; + struct mtk_video_dec_buf *dst_buf_info; - src = v4l2_m2m_next_src_buf(instance->ctx->m2m_ctx); - if (!src) + src_buf_info = container_of(bs, struct mtk_video_dec_buf, bs_buffer); + if (!src_buf_info) return -EINVAL; - dst = v4l2_m2m_next_dst_buf(instance->ctx->m2m_ctx); - if (!dst) + dst_buf_info = container_of(fb, struct mtk_video_dec_buf, frame_buffer); + if (!dst_buf_info) return -EINVAL; - v4l2_m2m_buf_copy_metadata(src, dst, true); + v4l2_m2m_buf_copy_metadata(&src_buf_info->m2m_buf.vb, &dst_buf_info->m2m_buf.vb, true); return 0; } @@ -1800,7 +1805,7 @@ static int vdec_vp9_slice_setup_single(struct vdec_vp9_slice_instance *instance, struct vdec_vp9_slice_vsi *vsi = &pfc->vsi; int ret; - ret = vdec_vp9_slice_setup_single_from_src_to_dst(instance); + ret = vdec_vp9_slice_setup_single_from_src_to_dst(instance, bs, fb); if (ret) goto err; -- 2.46.0