Received: by 2002:ab2:6f44:0:b0:1fd:c486:4f03 with SMTP id l4csp228678lqq; Thu, 13 Jun 2024 00:57:41 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXD/BKdHyPGQtrB5f/XOcDqx/9UlHnAOrYQ85uMX4LV2NlWDFVlXsuanFxCn/e/UE5/uczbsg6TjBl9iMyynaFWgqSVB6HKxJGE9fWZ7A== X-Google-Smtp-Source: AGHT+IGREdewcNriLoQaxYs8+aqTeO9bIpgfloOQU1B/FVsuDkxH7n/1YIhzdsl1LauIMHTXdl+0 X-Received: by 2002:a05:6a21:8cc5:b0:1b2:b2b:5698 with SMTP id adf61e73a8af0-1b8a9bd933cmr3173040637.33.1718265460853; Thu, 13 Jun 2024 00:57:40 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718265460; cv=pass; d=google.com; s=arc-20160816; b=O/HiQwb9PokNsGU/sCBotaHmVBvt9hWdJbKjMhZkUdrYzIdiRWf/u97XWMqzlm8dbj lgnNK2vnWJBf45MZrXJx3jjgZv/OKemvRUfcjm9BVNlP+6ud22ziXo1Mdch8kEELZkeo alk3saixOrmNc1TT0ibhgngIRan+gRm3RWf7UIzK6E3g/4QpfKdSKlHdp8t3uEEGRQXi 6f5C0aOQhKvAyyA72/2o8pUn2QkwvLwv8DkQIsXzq3SE1eFzSbyFXGg1QAs9zNHdVNWj tgG2Z5ydV0v366WEs+cUHRSlZe5ksB/+fRgfOdeIIzDuFk5GBeUkD00zvZ7cDrVN+Te8 MwnA== 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=XkCwA2iKKXIESghvnsGMrf/b1u79QCM/rrWHfheFC3E=; fh=iBFu4OfMrCc2ajIigDq/KCLfQX7kaMJQxWVUnQnR8wU=; b=gAvppnsZSGs5ePoMxw9ZSOr5Ke7ETAam1ZMa9AeQYs416qKGGbQjEjW2P/2F+MHdgW aRBR4fYkiCF8xuib5yUxcSmW6E8cmy0hTOZ4gYnxjiaXS4LKG0x4llj0W0cMuLYRU77b ZC1pMYxJsEl/g2BWvAwlkCz7w/D3NfKrLR7iR5qhh8mv48Goecl/X1ILmarhuMyern03 QvBc/jtDLL8eyz21fyNCzc00kgTb6twJlT3zpFByxzLwl1VLNi9GEtBVAmKt4tD/3LZj kfSfEJ6UGjEGXVuSG2tZb0CGi99wxnlJ5Qv/XwKRrKfXv0ww0QNnyTOXY7iNBSsyDj9k GMsQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=h9I18BI9; 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-212760-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-212760-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id d9443c01a7336-1f855ee308dsi7788415ad.387.2024.06.13.00.57.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 00:57:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-212760-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=h9I18BI9; 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-212760-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-212760-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 sv.mirrors.kernel.org (Postfix) with ESMTPS id 6E933281ED9 for ; Thu, 13 Jun 2024 07:57:40 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 89DA713D2B5; Thu, 13 Jun 2024 07:56:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="h9I18BI9" Received: from mailgw02.mediatek.com (unknown [210.61.82.184]) (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 B6EF513CFB2; Thu, 13 Jun 2024 07:56:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=210.61.82.184 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718265398; cv=none; b=hMMM/eVCK/l8paK3P3hECpPXp0w5fvCQZt4IzuhEQLb9+1DHzYpRwjgYKhUT/r2a6z2KPSfle1fA1mLf49lljMh9zd5QdNBkmybfz8pevfPTmPAN6L4S35Fa54/oYU3VHd14X8A6+V2J88zQZr1b4z/SP3YyRmf8lhcp0CzImz4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718265398; c=relaxed/simple; bh=Uh3KieEEk6oCjKWGdFKObgJqNfBOrfglpZzYfkP6HP8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=sPvI9ljvJ9a+w0WCgPb9jAzHCsUnFjDoH8ylbRKbNkzH3I1mYo3jigvxRoQL2E1JL2cdXxwzry/o1vDzNxcP9uA8T7jvjCmcwarYHffXW/AlmtwSO32SyINKT76ZFzkFcPEE4JkHAofMon+JADJl+LC7xYI9Rb2HMxb/YCnuKEk= 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=h9I18BI9; arc=none smtp.client-ip=210.61.82.184 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: 71a9677c295a11efa22eafcdcd04c131-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=XkCwA2iKKXIESghvnsGMrf/b1u79QCM/rrWHfheFC3E=; b=h9I18BI99DR7nyqp4DWUQguYXVFBHXHgfmjCSfHlTjjRRpEYQDAlIm8dDhHKwGefcJCT9Jy7dzsJiu/aqZYjGqN63Sv7k6W0XkwAOGGRa6WatoxHmJv93dI651CvkyGKF/qqjTEL7ce+7g6LkYcgW0BjOIpbRCY3P8ZGDz+yCbg=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.39,REQID:2eb59ee5-4ebf-4ee1-b5c1-ef9581b78426,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:6494f093-e2c0-40b0-a8fe-7c7e47299109,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: 71a9677c295a11efa22eafcdcd04c131-20240613 Received: from mtkmbs10n1.mediatek.inc [(172.21.101.34)] by mailgw02.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1989946365; Thu, 13 Jun 2024 15:56:30 +0800 Received: from mtkmbs13n1.mediatek.inc (172.21.101.193) by mtkmbs11n2.mediatek.inc (172.21.101.187) 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 15:56:28 +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.1118.26 via Frontend Transport; Thu, 13 Jun 2024 15:55:51 +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 3/7] media: mediatek: vcodec: flush decoder before remove all source buffer Date: Thu, 13 Jun 2024 15:55:28 +0800 Message-ID: <20240613075532.32128-4-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 Flush decoder will reset all driver to init status, lat and core work queue will stop to work. If lat or core work queue in working when remove all source buffer, will lead to remove source buffer again or buff done with one non-existent source buffer. Signed-off-by: Yunfei Dong --- .../mediatek/vcodec/decoder/mtk_vcodec_dec.c | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec.c index 3b278892f1d3..3e0879c41a95 100644 --- a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec.c +++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec.c @@ -883,17 +883,6 @@ void vb2ops_vdec_stop_streaming(struct vb2_queue *q) ctx->id, q->type, ctx->state, ctx->decoded_frame_cnt); if (q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) { - while ((src_buf = v4l2_m2m_src_buf_remove(ctx->m2m_ctx))) { - if (src_buf != &ctx->empty_flush_buf.vb) { - struct media_request *req = - src_buf->vb2_buf.req_obj.req; - - if (req) - v4l2_ctrl_request_complete(req, &ctx->ctrl_hdl); - v4l2_m2m_buf_done(src_buf, VB2_BUF_STATE_ERROR); - } - } - if (ctx->state >= MTK_STATE_HEADER) { /* Until STREAMOFF is called on the CAPTURE queue * (acknowledging the event), the driver operates @@ -916,6 +905,17 @@ void vb2ops_vdec_stop_streaming(struct vb2_queue *q) mtk_v4l2_vdec_err(ctx, "DecodeFinal failed, ret=%d", ret); } + while ((src_buf = v4l2_m2m_src_buf_remove(ctx->m2m_ctx))) { + if (src_buf != &ctx->empty_flush_buf.vb) { + struct media_request *req = + src_buf->vb2_buf.req_obj.req; + + if (req) + v4l2_ctrl_request_complete(req, &ctx->ctrl_hdl); + v4l2_m2m_buf_done(src_buf, VB2_BUF_STATE_ERROR); + } + } + ctx->state = MTK_STATE_FLUSH; return; } -- 2.18.0