Received: by 2002:ab2:6f44:0:b0:1fd:c486:4f03 with SMTP id l4csp228943lqq; Thu, 13 Jun 2024 00:58:30 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCV6JRejMALX3okh0njAiRqzhtNkxSd+m7BFJ3SB1DhfaLTQCEiEhSVrR7gP2e07pVsQAmXhyAtFWvdQJb7CX3xzKCsEkNQ6vpFvOO4SBQ== X-Google-Smtp-Source: AGHT+IH3nfpKg2Zxig1Fw+GheQs9MJ68EZ3akpuSq9jLXrmS0dwYCo27Zs60AxAGFPjzGZb3jhea X-Received: by 2002:a05:620a:2721:b0:797:c91b:ccc7 with SMTP id af79cd13be357-7981014994dmr299836585a.34.1718265509857; Thu, 13 Jun 2024 00:58:29 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718265509; cv=pass; d=google.com; s=arc-20160816; b=vGicuU8rUJ8J7TadMkZf2o687dlimtl2LCoe7xXBr6NT4Gl1OHnXxaeI23U0bPeOpp uDkKT4rCRYClOu0d8gdvArv7QBE21LzR/fZ/miBIejwb1DFCnZZzsQhd9uduJ4g6hdoa 82AWJV4BP1kNrc3FwgQrHouy7tG7WUIz163WeKNkFunR7wGYH75uTjQY+jvuuSqk6R+U 96PcLRcR3c7aKDurYcPSrHxnyrLqaTN9n75sy9M25ojtjhejEAfmb4DPUfRDmt3i5yMG Jbb23hZwKwdvewH/Apy1UCNlBMoIiP3cC8cwJDCIgQIUa3qMrccE8nAfVjiZJWxHmBRo dBCw== ARC-Message-Signature: i=2; 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:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=efUV+7fXfF9YZ3eGwR2krXhtXA8ycq50CEI1d9RZjro=; fh=iBFu4OfMrCc2ajIigDq/KCLfQX7kaMJQxWVUnQnR8wU=; b=Ir6EShiw5ENrBCru/C3kKZWbCbgX4O2xe2rxkKC2t00jzc/hArU478wBhqADW+mE8x Z5U/r733OwXN2WD/Suw46dGLyvLGosI9cI9S6A1bIf/QjrpkgPwiXWHVn8u3jgyE/fH7 oVZTfK6SF9bh92drJNg5XD39KTFVVMdjGehG6b4LBchy0VerOnDuzwR+F+SMJW6GA3/7 4HuUqfzc0WLIko7lFEGIEPo/8vJ2gZteLuIm+JjPYfD9gIEB5ACV2lRhnWAWrpmBWjRN ooPYD9X80PzrplbYQelUnj9YMA15ghd1WHLUIPdJqf8LvxNU8sUhJ1O2Pwqc6wFsdN6P 3lsQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=mR+oh5sp; arc=pass (i=1 spf=pass spfdomain=mediatek.com dkim=pass dkdomain=mediatek.com dmarc=pass fromdomain=mediatek.com); spf=pass (google.com: domain of linux-kernel+bounces-212763-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-212763-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id d75a77b69052e-441ef3bd2f4si9331681cf.136.2024.06.13.00.58.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 00:58:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-212763-linux.lists.archive=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=@mediatek.com header.s=dk header.b=mR+oh5sp; arc=pass (i=1 spf=pass spfdomain=mediatek.com dkim=pass dkdomain=mediatek.com dmarc=pass fromdomain=mediatek.com); spf=pass (google.com: domain of linux-kernel+bounces-212763-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-212763-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.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 491E51C20985 for ; Thu, 13 Jun 2024 07:58:26 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 79D6113D88C; Thu, 13 Jun 2024 07:56:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="mR+oh5sp" Received: from mailgw01.mediatek.com (unknown [60.244.123.138]) (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 3C95013D2AF; Thu, 13 Jun 2024 07:56:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=60.244.123.138 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718265401; cv=none; b=PzqBQWA1lAEzgNSmQwIH8LNpDJiHaTL7yzMLlyK4N5YK/KgrHATKRSuuis8ZqnRe4BOYtnTm5CYUqrYd9FIaqNmyh8zGNjmv7X/LP7mZIkXXRDzn3fzmXwlLfG0Uig5PaMGQtb6WG8szvfaT3xz2JYN/k9pfMaIMg5Loei6zH54= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718265401; c=relaxed/simple; bh=FO0HjmjmO1UkrRvFmf0wuuJ5aoMWdHBpVJ/cI6qe0Pk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ds2YO/AHxYSdiwh8CWP11FsZDHUxP+HJ8NEjplZ3tqRbVFVCc6X4/pi1RPEpsPBmEnNOhxCZVLtMU1fyuP49fWrpRbbehxSMTBCqx2pJVXuHuxa0TvypIcSxpmuJcVOPe2sisBFAYD6lWiPFITsXMa5yh3FU894bhBgsoI5ZVYw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=mediatek.com; spf=pass smtp.mailfrom=mediatek.com; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b=mR+oh5sp; arc=none smtp.client-ip=60.244.123.138 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=mediatek.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mediatek.com X-UUID: 72345d0a295a11efa54bbfbb386b949c-20240613 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=efUV+7fXfF9YZ3eGwR2krXhtXA8ycq50CEI1d9RZjro=; b=mR+oh5spuXr+O8T5AImZalggqIl4wlgVhkekdQy7iFwsGS2i5iYdxvo+FULiQHinl+EPSiU5Sh86ULTdmw9AtqXdKDZREighSrgpL29ztuvRHSw+AkvCIbK63p6QL27mShqmEiAEU6OgFj1wX9WZji9if/ZIUm83CB65grgsp7k=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.39,REQID:3d8177c2-5689-4d03-84e7-70497fe48a10,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:393d96e,CLOUDID:57088744-4544-4d06-b2b2-d7e12813c598,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL: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: 0,NGT X-CID-BAS: 0,NGT,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: 72345d0a295a11efa54bbfbb386b949c-20240613 Received: from mtkmbs14n1.mediatek.inc [(172.21.101.75)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1469798300; Thu, 13 Jun 2024 15:56:31 +0800 Received: from mtkmbs13n1.mediatek.inc (172.21.101.193) by MTKMBS09N2.mediatek.inc (172.21.101.94) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Thu, 13 Jun 2024 00:56:29 -0700 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.1118.26 via Frontend Transport; Thu, 13 Jun 2024 15:56:28 +0800 From: Yunfei Dong To: =?UTF-8?q?N=C3=ADcolas=20F=20=2E=20R=20=2E=20A=20=2E=20Prado?= , Sebastian Fricke , Nicolas Dufresne , Hans Verkuil , AngeloGioacchino Del Regno , Benjamin Gaignard , Nathan Hebert , Daniel Almeida CC: Hsin-Yi Wang , Fritz Koenig , Daniel Vetter , Steve Cho , Yunfei Dong , , , , , , Subject: [PATCH v3 4/7] media: mediatek: vcodec: using input information to get vb2 buffer Date: Thu, 13 Jun 2024 15:55:29 +0800 Message-ID: <20240613075532.32128-5-yunfei.dong@mediatek.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240613075532.32128-1-yunfei.dong@mediatek.com> References: <20240613075532.32128-1-yunfei.dong@mediatek.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-MTK: N vb2 buffer may be removed from ready list when lat try to get next src buffer, leading to vb2 buffer not the current one. Need to get vb2 buffer according to current input memory information. Signed-off-by: Yunfei Dong --- .../vcodec/decoder/vdec/vdec_av1_req_lat_if.c | 13 +++++++------ .../vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 15 +++++++-------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c index 90217cc8e242..a744740ba5f1 100644 --- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c @@ -1062,19 +1062,20 @@ static inline void vdec_av1_slice_vsi_to_remote(struct vdec_av1_slice_vsi *vsi, static int vdec_av1_slice_setup_lat_from_src_buf(struct vdec_av1_slice_instance *instance, struct vdec_av1_slice_vsi *vsi, + struct mtk_vcodec_mem *bs, struct vdec_lat_buf *lat_buf) { - struct vb2_v4l2_buffer *src; + struct mtk_video_dec_buf *src_buf_info; struct vb2_v4l2_buffer *dst; - 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; - lat_buf->vb2_v4l2_src = src; + lat_buf->vb2_v4l2_src = &src_buf_info->m2m_buf.vb; dst = &lat_buf->ts_info; - v4l2_m2m_buf_copy_metadata(src, dst, true); + v4l2_m2m_buf_copy_metadata(lat_buf->vb2_v4l2_src, dst, true); vsi->frame.cur_ts = dst->vb2_buf.timestamp; return 0; @@ -1724,7 +1725,7 @@ static int vdec_av1_slice_setup_lat(struct vdec_av1_slice_instance *instance, struct vdec_av1_slice_vsi *vsi = &pfc->vsi; int ret; - ret = vdec_av1_slice_setup_lat_from_src_buf(instance, vsi, lat_buf); + ret = vdec_av1_slice_setup_lat_from_src_buf(instance, vsi, bs, lat_buf); if (ret) return ret; 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 3dceb668ba1c..c50a454ab4f7 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 @@ -712,19 +712,18 @@ int vdec_vp9_slice_setup_single_from_src_to_dst(struct vdec_vp9_slice_instance * } static int vdec_vp9_slice_setup_lat_from_src_buf(struct vdec_vp9_slice_instance *instance, + struct mtk_vcodec_mem *bs, struct vdec_lat_buf *lat_buf) { - struct vb2_v4l2_buffer *src; - struct vb2_v4l2_buffer *dst; + struct mtk_video_dec_buf *src_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; - lat_buf->vb2_v4l2_src = src; + lat_buf->vb2_v4l2_src = &src_buf_info->m2m_buf.vb; - dst = &lat_buf->ts_info; - v4l2_m2m_buf_copy_metadata(src, dst, true); + v4l2_m2m_buf_copy_metadata(lat_buf->vb2_v4l2_src, &lat_buf->ts_info, true); return 0; } @@ -1154,7 +1153,7 @@ static int vdec_vp9_slice_setup_lat(struct vdec_vp9_slice_instance *instance, struct vdec_vp9_slice_vsi *vsi = &pfc->vsi; int ret; - ret = vdec_vp9_slice_setup_lat_from_src_buf(instance, lat_buf); + ret = vdec_vp9_slice_setup_lat_from_src_buf(instance, bs, lat_buf); if (ret) goto err; -- 2.18.0