Message ID | 20230722074230.30558-1-yunfei.dong@mediatek.com |
---|---|
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp675254vqg; Sat, 22 Jul 2023 00:44:42 -0700 (PDT) X-Google-Smtp-Source: APBJJlHz9E9eDZajRQlHCKqvVEiUB34QcJUb5DOVfnR+MnzVbXCSnYiKRWe9/8z1BYduX9MwAsy1 X-Received: by 2002:a17:906:74de:b0:993:dcca:9607 with SMTP id z30-20020a17090674de00b00993dcca9607mr4106822ejl.2.1690011881877; Sat, 22 Jul 2023 00:44:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690011881; cv=none; d=google.com; s=arc-20160816; b=hu1kBIRXDr98/SzvM7FTlc4m2pPP+M5Y+85q4wPGF5APAhCypQRftUuClSu7cukMOt ygmjx1Kt1eWkj/IBfzOSjeQKtGMsjZtj9ywbrQyud3rP8/WEezGCRHwssVaKKBz6mgup qVt2CytftvcgV0MtI9+DzDhOGsU2St1q2qS7q8LpCkFiKgJaLmV5/yvuTzQaOhwrzqA9 +OUmhGpk3RXFOUtgPSq9fxqRrnrDtnos9VA5o96l+qGqrYLfo7mY3YBT5c7ShZNNXS29 O8Ku5NC/oUZNOieg/uMtMqc06Bbb4OB/YDktUMjaqsIDJKaktogB+X6tVFU1H1RP6dmC 70AA== 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:dkim-signature; bh=ujzp6ICOMwVrN0AH1KJECL3aAmApevuDCm3GoPxgT3I=; fh=JNu33da7kzA6xRV91jumLxXvft4D8QIU8MqbM9iLAMY=; b=Vu5OAdWcGltqbiNQ/coa0Hg+YKcaD6qbimbhEutfK7r8jntaw9KrQls8rsJ6fHh3yE LnrOB3Gt1FCQqDV3/+CjGLtNHwv9gFN19VF8eb2xWtzeqc2pGMo4+fpo/1zdTcbi0q8c xx/dmb6BFm6+Y1KRspQAplsAk8d7+mlGkhBYWSATPU5fmRP5XaCVWKypNU9XCs4uVV7M LCXkeo+apm7swL10p5QJJUCcTaB1Kekjuvf5/HHGbemEomc4FFljoejxWwCnxGpTYFat miJf8Mwbp23Jjz6G2MjpL6x+jQosSjfbzVHgIihtVbuft6EWb9VBT5Ya7vZt8HY4PafW Xmtg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=ew4khwXg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id lj6-20020a170906f9c600b0099364d9f0e7si3355519ejb.543.2023.07.22.00.44.18; Sat, 22 Jul 2023 00:44:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=ew4khwXg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230329AbjGVHmu (ORCPT <rfc822;assdfgzxcv4@gmail.com> + 99 others); Sat, 22 Jul 2023 03:42:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56142 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229655AbjGVHmq (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Sat, 22 Jul 2023 03:42:46 -0400 Received: from mailgw01.mediatek.com (unknown [60.244.123.138]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1BDAF2709; Sat, 22 Jul 2023 00:42:38 -0700 (PDT) X-UUID: 519d5982286311ee9cb5633481061a41-20230722 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:Message-ID:Date:Subject:CC:To:From; bh=ujzp6ICOMwVrN0AH1KJECL3aAmApevuDCm3GoPxgT3I=; b=ew4khwXgJT3PUwBYrvdmkVWdMjqX3cAmhD4x9okN/N/GR1z+G5UFNj93jwq7ZTFJQGIcAiyQ58ERRkR9fFV0BGosHFmaO6kXByIL3fyE/QjKZbrq1oL590w194kvUwAGwyOSeHtFT92JQGAOE01fBCDdWaTEOxM3BYynMBGZPxk=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.28,REQID:671d3788-90d8-4a59-80bd-82d7a2075622,IP:0,U RL:0,TC:0,Content:-25,EDM:0,RT:0,SF:95,FILE:0,BULK:0,RULE:Release_Ham,ACTI ON:release,TS:70 X-CID-INFO: VERSION:1.1.28,REQID:671d3788-90d8-4a59-80bd-82d7a2075622,IP:0,URL :0,TC:0,Content:-25,EDM:0,RT:0,SF:95,FILE:0,BULK:0,RULE:Spam_GS981B3D,ACTI ON:quarantine,TS:70 X-CID-META: VersionHash:176cd25,CLOUDID:3203f48e-7caa-48c2-8dbb-206f0389473c,B ulkID:230722154234TW9NBYTR,BulkQuantity:0,Recheck:0,SF:29|28|17|19|48|38,T C:nil,Content:0,EDM:-3,IP:nil,URL:1,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0 ,OSI:0,OSA:0,AV:0,LES:1,SPR:NO,DKR:0,DKP:0 X-CID-BVR: 0,NGT X-CID-BAS: 0,NGT,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_SDM,TF_CID_SPAM_ASC,TF_CID_SPAM_FAS, TF_CID_SPAM_FSD,TF_CID_SPAM_ULS X-UUID: 519d5982286311ee9cb5633481061a41-20230722 Received: from mtkmbs14n2.mediatek.inc [(172.21.101.76)] by mailgw01.mediatek.com (envelope-from <yunfei.dong@mediatek.com>) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1291466516; Sat, 22 Jul 2023 15:42:33 +0800 Received: from mtkmbs13n1.mediatek.inc (172.21.101.193) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Sat, 22 Jul 2023 15:42:31 +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; Sat, 22 Jul 2023 15:42:30 +0800 From: Yunfei Dong <yunfei.dong@mediatek.com> To: =?utf-8?q?N=C3=ADcolas_F_=2E_R_=2E_A_=2E_Prado?= <nfraprado@collabora.com>, Nicolas Dufresne <nicolas.dufresne@collabora.com>, Hans Verkuil <hverkuil-cisco@xs4all.nl>, AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>, Benjamin Gaignard <benjamin.gaignard@collabora.com>, Nathan Hebert <nhebert@chromium.org> CC: Chen-Yu Tsai <wenst@chromium.org>, Hsin-Yi Wang <hsinyi@chromium.org>, Fritz Koenig <frkoenig@chromium.org>, Daniel Vetter <daniel@ffwll.ch>, "Steve Cho" <stevecho@chromium.org>, Yunfei Dong <yunfei.dong@mediatek.com>, <linux-media@vger.kernel.org>, <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>, <linux-mediatek@lists.infradead.org>, <Project_Global_Chrome_Upstream_Group@mediatek.com> Subject: [PATCH v7,0/11] media: mediatek: vcodec: separate encoder and decoder Date: Sat, 22 Jul 2023 15:42:19 +0800 Message-ID: <20230722074230.30558-1-yunfei.dong@mediatek.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-MTK: N X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS, SPF_PASS,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772105898631056020 X-GMAIL-MSGID: 1772105898631056020 |
Series |
media: mediatek: vcodec: separate encoder and decoder
|
|
Message
Yunfei Dong (董云飞)
July 22, 2023, 7:42 a.m. UTC
From: Yunfei Dong <yunfei.dong@mediatek.corp-partner.google.com>
With the driver more and more complex, encoder and decoder need to add more parameter
in shared struct 'mtk_vcodec_ctx' and 'mtk_vcodec_dev'. Encoder use about 40% and
decoder use 60% parameter. Need to allocate extra unused memory when encoder and decoder
working.
Separate encoder and decoder in different folder and use independent data struct.
patch 1 remove unused parameter.
patch 2~3 align fw and interrupt related interface.
patch 4~6 remove the dependency of debug log
patch 7~8 separate mtk_vcodec_ctx and mtk_vcodec_dev
patch 9 fix unreasonable parameter
patch 10 removed unused header files
patch 11 separate encoder and decoder in different folder
---
Changed from v6:
- rebase to: https://git.linuxtv.org/hverkuil/media_tree.git/log/?h=fo-v6.6g.
Changed from v5:
- fix some words error for patch 3/6/11.
- rename mtk_vcodec_comm_drv.h to mtk_vcodec_cmn_drv.h for patch 7.
Changed from v4:
- add one parameter to record register base for reg_base for patch 3.
- add debug string for non ctx log for patch 6.
- change the comment of struct mtk_vcodec_dec_ctx and struct mtk_vcodec_enc_ctx for patch 7.
- prefer to use struct mtk_vcodec_dec_dev an current period, will re-construct in the future for patch 8.
Changed from v3:
- re-write commit message for patch 3.
Changed from v2:
- This patch main changed:
1: add different macro mtk_dec_debug and mtk_enc_debug calling common
macro mtk_vcodec_debug in order to use dev_dbg instead of pr_debug.
2: add different macro mtk_v4l2_venc_dbg and mtk_v4l2_vdec_dbg calling common
macro in order to use dev_dbg instead of pr_debug.
Changed from v1:
- Change pr_dbg to dev_dbg for mtk_v4l2_level and mtk_vcodec_dbg for patch 4.
- Change pr_err to dev_err for mtk_v4l2_err and mtk_vcodec_err for patch 5.
- Fix unreasonable parameter for patch 8.
---
Yunfei Dong (11):
media: mediatek: vcodec: remove unused parameter
media: mediatek: vcodec: align fw interface
media: mediatek: vcodec: Removing struct 'mtk_vcodec_ctx/dev' for
shared interface
media: mediatek: vcodec: Removing useless debug log
media: mediatek: vcodec: remove the dependency of vcodec debug log
media: mediatek: vcodec: replace pr_* with dev_* for v4l2 debug
message
media: mediatek: vcodec: separate struct 'mtk_vcodec_ctx'
media: mediatek: vcodec: separate struct mtk_vcodec_dev
media: mediatek: vcodec: fix unreasonable parameter definition and
style
media: mediatek: vcodec: remove unused include header
media: mediatek: vcodec: separate decoder and encoder
.../media/platform/mediatek/vcodec/Makefile | 55 +-
.../platform/mediatek/vcodec/common/Makefile | 21 +
.../vcodec/common/mtk_vcodec_cmn_drv.h | 147 +++++
.../vcodec/{ => common}/mtk_vcodec_dbgfs.c | 55 +-
.../vcodec/{ => common}/mtk_vcodec_dbgfs.h | 24 +-
.../vcodec/{ => common}/mtk_vcodec_fw.c | 21 +-
.../vcodec/{ => common}/mtk_vcodec_fw.h | 8 +-
.../vcodec/{ => common}/mtk_vcodec_fw_priv.h | 14 +-
.../vcodec/{ => common}/mtk_vcodec_fw_scp.c | 26 +-
.../vcodec/{ => common}/mtk_vcodec_fw_vpu.c | 64 +-
.../mediatek/vcodec/common/mtk_vcodec_intr.c | 68 +++
.../vcodec/{ => common}/mtk_vcodec_intr.h | 6 +-
.../vcodec/{ => common}/mtk_vcodec_util.c | 71 +--
.../mediatek/vcodec/common/mtk_vcodec_util.h | 74 +++
.../platform/mediatek/vcodec/decoder/Makefile | 25 +
.../vcodec/{ => decoder}/mtk_vcodec_dec.c | 182 +++---
.../vcodec/{ => decoder}/mtk_vcodec_dec.h | 10 +-
.../vcodec/{ => decoder}/mtk_vcodec_dec_drv.c | 87 ++-
.../vcodec/decoder/mtk_vcodec_dec_drv.h | 317 ++++++++++
.../vcodec/{ => decoder}/mtk_vcodec_dec_hw.c | 19 +-
.../vcodec/{ => decoder}/mtk_vcodec_dec_hw.h | 6 +-
.../vcodec/{ => decoder}/mtk_vcodec_dec_pm.c | 38 +-
.../vcodec/{ => decoder}/mtk_vcodec_dec_pm.h | 6 +-
.../{ => decoder}/mtk_vcodec_dec_stateful.c | 176 +++---
.../{ => decoder}/mtk_vcodec_dec_stateless.c | 91 +--
.../{ => decoder}/vdec/vdec_av1_req_lat_if.c | 158 +++--
.../vcodec/{ => decoder}/vdec/vdec_h264_if.c | 79 ++-
.../{ => decoder}/vdec/vdec_h264_req_common.c | 4 +-
.../{ => decoder}/vdec/vdec_h264_req_common.h | 6 +-
.../{ => decoder}/vdec/vdec_h264_req_if.c | 75 ++-
.../vdec/vdec_h264_req_multi_if.c | 157 +++--
.../vdec/vdec_hevc_req_multi_if.c | 129 ++--
.../vcodec/{ => decoder}/vdec/vdec_vp8_if.c | 70 ++-
.../{ => decoder}/vdec/vdec_vp8_req_if.c | 81 ++-
.../vcodec/{ => decoder}/vdec/vdec_vp9_if.c | 132 ++---
.../{ => decoder}/vdec/vdec_vp9_req_lat_if.c | 129 ++--
.../vcodec/{ => decoder}/vdec_drv_base.h | 2 +-
.../vcodec/{ => decoder}/vdec_drv_if.c | 12 +-
.../vcodec/{ => decoder}/vdec_drv_if.h | 10 +-
.../vcodec/{ => decoder}/vdec_ipi_msg.h | 0
.../vcodec/{ => decoder}/vdec_msg_queue.c | 64 +-
.../vcodec/{ => decoder}/vdec_msg_queue.h | 14 +-
.../vcodec/{ => decoder}/vdec_vpu_if.c | 57 +-
.../vcodec/{ => decoder}/vdec_vpu_if.h | 6 +-
.../platform/mediatek/vcodec/encoder/Makefile | 11 +
.../vcodec/{ => encoder}/mtk_vcodec_enc.c | 296 +++++-----
.../vcodec/{ => encoder}/mtk_vcodec_enc.h | 12 +-
.../vcodec/{ => encoder}/mtk_vcodec_enc_drv.c | 73 +--
.../vcodec/encoder/mtk_vcodec_enc_drv.h | 246 ++++++++
.../vcodec/{ => encoder}/mtk_vcodec_enc_pm.c | 12 +-
.../vcodec/{ => encoder}/mtk_vcodec_enc_pm.h | 4 +-
.../vcodec/{ => encoder}/venc/venc_h264_if.c | 110 ++--
.../vcodec/{ => encoder}/venc/venc_vp8_if.c | 69 +--
.../vcodec/{ => encoder}/venc_drv_base.h | 4 +-
.../vcodec/{ => encoder}/venc_drv_if.c | 10 +-
.../vcodec/{ => encoder}/venc_drv_if.h | 11 +-
.../vcodec/{ => encoder}/venc_ipi_msg.h | 0
.../vcodec/{ => encoder}/venc_vpu_if.c | 75 +--
.../vcodec/{ => encoder}/venc_vpu_if.h | 3 +-
.../platform/mediatek/vcodec/mtk_vcodec_drv.h | 550 ------------------
.../mediatek/vcodec/mtk_vcodec_intr.c | 43 --
.../mediatek/vcodec/mtk_vcodec_util.h | 85 ---
62 files changed, 2222 insertions(+), 2188 deletions(-)
create mode 100644 drivers/media/platform/mediatek/vcodec/common/Makefile
create mode 100644 drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_cmn_drv.h
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_dbgfs.c (77%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_dbgfs.h (62%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_fw.c (75%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_fw.h (86%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_fw_priv.h (75%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_fw_scp.c (70%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_fw_vpu.c (58%)
create mode 100644 drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_intr.c
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_intr.h (68%)
rename drivers/media/platform/mediatek/vcodec/{ => common}/mtk_vcodec_util.c (56%)
create mode 100644 drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_util.h
create mode 100644 drivers/media/platform/mediatek/vcodec/decoder/Makefile
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec.c (83%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec.h (91%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_drv.c (84%)
create mode 100644 drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.h
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_hw.c (91%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_hw.h (92%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_pm.c (81%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_pm.h (61%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_stateful.c (73%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/mtk_vcodec_dec_stateless.c (84%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_av1_req_lat_if.c (93%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_h264_if.c (84%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_h264_req_common.c (98%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_h264_req_common.h (97%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_h264_req_if.c (86%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_h264_req_multi_if.c (85%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_hevc_req_multi_if.c (90%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_vp8_if.c (88%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_vp8_req_if.c (81%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_vp9_if.c (87%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec/vdec_vp9_req_lat_if.c (94%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_drv_base.h (95%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_drv_if.c (86%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_drv_if.h (89%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_ipi_msg.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_msg_queue.c (82%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_msg_queue.h (95%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_vpu_if.c (79%)
rename drivers/media/platform/mediatek/vcodec/{ => decoder}/vdec_vpu_if.h (97%)
create mode 100644 drivers/media/platform/mediatek/vcodec/encoder/Makefile
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/mtk_vcodec_enc.c (82%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/mtk_vcodec_enc.h (78%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/mtk_vcodec_enc_drv.c (86%)
create mode 100644 drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.h
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/mtk_vcodec_enc_pm.c (83%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/mtk_vcodec_enc_pm.h (78%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc/venc_h264_if.c (88%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc/venc_vp8_if.c (88%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_drv_base.h (94%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_drv_if.c (86%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_drv_if.h (94%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_ipi_msg.h (100%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_vpu_if.c (82%)
rename drivers/media/platform/mediatek/vcodec/{ => encoder}/venc_vpu_if.h (96%)
delete mode 100644 drivers/media/platform/mediatek/vcodec/mtk_vcodec_drv.h
delete mode 100644 drivers/media/platform/mediatek/vcodec/mtk_vcodec_intr.c
delete mode 100644 drivers/media/platform/mediatek/vcodec/mtk_vcodec_util.h
Comments
On 22/07/2023 09:42, Yunfei Dong wrote: > From: Yunfei Dong <yunfei.dong@mediatek.corp-partner.google.com> > > With the driver more and more complex, encoder and decoder need to add more parameter > in shared struct 'mtk_vcodec_ctx' and 'mtk_vcodec_dev'. Encoder use about 40% and > decoder use 60% parameter. Need to allocate extra unused memory when encoder and decoder > working. > > Separate encoder and decoder in different folder and use independent data struct. > > patch 1 remove unused parameter. > patch 2~3 align fw and interrupt related interface. > patch 4~6 remove the dependency of debug log > patch 7~8 separate mtk_vcodec_ctx and mtk_vcodec_dev > patch 9 fix unreasonable parameter > patch 10 removed unused header files > patch 11 separate encoder and decoder in different folder > --- > Changed from v6: > - rebase to: https://git.linuxtv.org/hverkuil/media_tree.git/log/?h=fo-v6.6g. > Changed from v5: > - fix some words error for patch 3/6/11. > - rename mtk_vcodec_comm_drv.h to mtk_vcodec_cmn_drv.h for patch 7. > Changed from v4: > - add one parameter to record register base for reg_base for patch 3. > - add debug string for non ctx log for patch 6. > - change the comment of struct mtk_vcodec_dec_ctx and struct mtk_vcodec_enc_ctx for patch 7. > - prefer to use struct mtk_vcodec_dec_dev an current period, will re-construct in the future for patch 8. > Changed from v3: > - re-write commit message for patch 3. > Changed from v2: > - This patch main changed: > 1: add different macro mtk_dec_debug and mtk_enc_debug calling common > macro mtk_vcodec_debug in order to use dev_dbg instead of pr_debug. > 2: add different macro mtk_v4l2_venc_dbg and mtk_v4l2_vdec_dbg calling common > macro in order to use dev_dbg instead of pr_debug. > Changed from v1: > - Change pr_dbg to dev_dbg for mtk_v4l2_level and mtk_vcodec_dbg for patch 4. > - Change pr_err to dev_err for mtk_v4l2_err and mtk_vcodec_err for patch 5. > - Fix unreasonable parameter for patch 8. > --- > Yunfei Dong (11): > media: mediatek: vcodec: remove unused parameter > media: mediatek: vcodec: align fw interface > media: mediatek: vcodec: Removing struct 'mtk_vcodec_ctx/dev' for > shared interface > media: mediatek: vcodec: Removing useless debug log > media: mediatek: vcodec: remove the dependency of vcodec debug log > media: mediatek: vcodec: replace pr_* with dev_* for v4l2 debug > message > media: mediatek: vcodec: separate struct 'mtk_vcodec_ctx' > media: mediatek: vcodec: separate struct mtk_vcodec_dev > media: mediatek: vcodec: fix unreasonable parameter definition and > style > media: mediatek: vcodec: remove unused include header > media: mediatek: vcodec: separate decoder and encoder Besides the missing argument in patch 6/11 I also get this compiler warning: drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.c: In function 'vpu_enc_ipi_handler': drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.c:64:31: warning: 'vpu' may be used uninitialized [-Wmaybe-uninitialized] 64 | struct venc_vpu_inst *vpu; | ^~~ and this smatch error: drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c:138 mtk_vcodec_get_reg_bases() error: buffer overflow 'mtk_dec_reg_names' 11 <= 11 However, I believe that was introduced by Nicolas' patch series. I'll try to pinpoint the precise patch. Regards, Hans
On 25/07/2023 11:58, Hans Verkuil wrote: > On 22/07/2023 09:42, Yunfei Dong wrote: >> From: Yunfei Dong <yunfei.dong@mediatek.corp-partner.google.com> >> >> With the driver more and more complex, encoder and decoder need to add more parameter >> in shared struct 'mtk_vcodec_ctx' and 'mtk_vcodec_dev'. Encoder use about 40% and >> decoder use 60% parameter. Need to allocate extra unused memory when encoder and decoder >> working. >> >> Separate encoder and decoder in different folder and use independent data struct. >> >> patch 1 remove unused parameter. >> patch 2~3 align fw and interrupt related interface. >> patch 4~6 remove the dependency of debug log >> patch 7~8 separate mtk_vcodec_ctx and mtk_vcodec_dev >> patch 9 fix unreasonable parameter >> patch 10 removed unused header files >> patch 11 separate encoder and decoder in different folder >> --- >> Changed from v6: >> - rebase to: https://git.linuxtv.org/hverkuil/media_tree.git/log/?h=fo-v6.6g. >> Changed from v5: >> - fix some words error for patch 3/6/11. >> - rename mtk_vcodec_comm_drv.h to mtk_vcodec_cmn_drv.h for patch 7. >> Changed from v4: >> - add one parameter to record register base for reg_base for patch 3. >> - add debug string for non ctx log for patch 6. >> - change the comment of struct mtk_vcodec_dec_ctx and struct mtk_vcodec_enc_ctx for patch 7. >> - prefer to use struct mtk_vcodec_dec_dev an current period, will re-construct in the future for patch 8. >> Changed from v3: >> - re-write commit message for patch 3. >> Changed from v2: >> - This patch main changed: >> 1: add different macro mtk_dec_debug and mtk_enc_debug calling common >> macro mtk_vcodec_debug in order to use dev_dbg instead of pr_debug. >> 2: add different macro mtk_v4l2_venc_dbg and mtk_v4l2_vdec_dbg calling common >> macro in order to use dev_dbg instead of pr_debug. >> Changed from v1: >> - Change pr_dbg to dev_dbg for mtk_v4l2_level and mtk_vcodec_dbg for patch 4. >> - Change pr_err to dev_err for mtk_v4l2_err and mtk_vcodec_err for patch 5. >> - Fix unreasonable parameter for patch 8. >> --- >> Yunfei Dong (11): >> media: mediatek: vcodec: remove unused parameter >> media: mediatek: vcodec: align fw interface >> media: mediatek: vcodec: Removing struct 'mtk_vcodec_ctx/dev' for >> shared interface >> media: mediatek: vcodec: Removing useless debug log >> media: mediatek: vcodec: remove the dependency of vcodec debug log >> media: mediatek: vcodec: replace pr_* with dev_* for v4l2 debug >> message >> media: mediatek: vcodec: separate struct 'mtk_vcodec_ctx' >> media: mediatek: vcodec: separate struct mtk_vcodec_dev >> media: mediatek: vcodec: fix unreasonable parameter definition and >> style >> media: mediatek: vcodec: remove unused include header >> media: mediatek: vcodec: separate decoder and encoder > > Besides the missing argument in patch 6/11 I also get this compiler warning: > > drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.c: In function 'vpu_enc_ipi_handler': > drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.c:64:31: warning: 'vpu' may be used uninitialized [-Wmaybe-uninitialized] > 64 | struct venc_vpu_inst *vpu; > | ^~~ > > and this smatch error: > > drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c:138 mtk_vcodec_get_reg_bases() error: buffer overflow 'mtk_dec_reg_names' 11 <= 11 > > However, I believe that was introduced by Nicolas' patch series. > > I'll try to pinpoint the precise patch. That smatch error is now found and fixed in the staging tree. Can you post a v8 fixing the other issues? Thanks! Regards, Hans > > Regards, > > Hans
Hi Hans, Thanks for your help and suggestion. On Fri, 2023-07-28 at 11:25 +0200, Hans Verkuil wrote: > > External email : Please do not click links or open attachments until > you have verified the sender or the content. > On 25/07/2023 11:58, Hans Verkuil wrote: > > On 22/07/2023 09:42, Yunfei Dong wrote: > >> From: Yunfei Dong <yunfei.dong@mediatek.corp-partner.google.com> > >> > >> With the driver more and more complex, encoder and decoder need to > add more parameter > >> in shared struct 'mtk_vcodec_ctx' and 'mtk_vcodec_dev'. Encoder > use about 40% and > >> decoder use 60% parameter. Need to allocate extra unused memory > when encoder and decoder > >> working. > >> > >> Separate encoder and decoder in different folder and use > independent data struct. > >> > >> patch 1 remove unused parameter. > >> patch 2~3 align fw and interrupt related interface. > >> patch 4~6 remove the dependency of debug log > >> patch 7~8 separate mtk_vcodec_ctx and mtk_vcodec_dev > >> patch 9 fix unreasonable parameter > >> patch 10 removed unused header files > >> patch 11 separate encoder and decoder in different folder > >> --- > >> Changed from v6: > >> - rebase to: > https://git.linuxtv.org/hverkuil/media_tree.git/log/?h=fo-v6.6g. > >> Changed from v5: > >> - fix some words error for patch 3/6/11. > >> - rename mtk_vcodec_comm_drv.h to mtk_vcodec_cmn_drv.h for patch > 7. > >> Changed from v4: > >> - add one parameter to record register base for reg_base for patch > 3. > >> - add debug string for non ctx log for patch 6. > >> - change the comment of struct mtk_vcodec_dec_ctx and struct > mtk_vcodec_enc_ctx for patch 7. > >> - prefer to use struct mtk_vcodec_dec_dev an current period, will > re-construct in the future for patch 8. > >> Changed from v3: > >> - re-write commit message for patch 3. > >> Changed from v2: > >> - This patch main changed: > >> 1: add different macro mtk_dec_debug and mtk_enc_debug calling > common > >> macro mtk_vcodec_debug in order to use dev_dbg instead of > pr_debug. > >> 2: add different macro mtk_v4l2_venc_dbg and mtk_v4l2_vdec_dbg > calling common > >> macro in order to use dev_dbg instead of pr_debug. > >> Changed from v1: > >> - Change pr_dbg to dev_dbg for mtk_v4l2_level and mtk_vcodec_dbg > for patch 4. > >> - Change pr_err to dev_err for mtk_v4l2_err and mtk_vcodec_err for > patch 5. > >> - Fix unreasonable parameter for patch 8. > >> --- > >> Yunfei Dong (11): > >> media: mediatek: vcodec: remove unused parameter > >> media: mediatek: vcodec: align fw interface > >> media: mediatek: vcodec: Removing struct 'mtk_vcodec_ctx/dev' > for > >> shared interface > >> media: mediatek: vcodec: Removing useless debug log > >> media: mediatek: vcodec: remove the dependency of vcodec debug > log > >> media: mediatek: vcodec: replace pr_* with dev_* for v4l2 debug > >> message > >> media: mediatek: vcodec: separate struct 'mtk_vcodec_ctx' > >> media: mediatek: vcodec: separate struct mtk_vcodec_dev > >> media: mediatek: vcodec: fix unreasonable parameter definition > and > >> style > >> media: mediatek: vcodec: remove unused include header > >> media: mediatek: vcodec: separate decoder and encoder > > > > Besides the missing argument in patch 6/11 I also get this compiler > warning: > > > > drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.c: In > function 'vpu_enc_ipi_handler': > > drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.c:64:31: > warning: 'vpu' may be used uninitialized [-Wmaybe-uninitialized] > > 64 | struct venc_vpu_inst *vpu; > > | ^~~ > > > > and this smatch error: > > > > > drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c:1 > 38 mtk_vcodec_get_reg_bases() error: buffer overflow > 'mtk_dec_reg_names' 11 <= 11 > > > > However, I believe that was introduced by Nicolas' patch series. > > > > I'll try to pinpoint the precise patch. > > That smatch error is now found and fixed in the staging tree. > > Can you post a v8 fixing the other issues? > > Thanks! The build fail for patch 06 and smatch fail will be fixed in next patch. Best Regards, Yunfei Dong > > Regards, > > Hans > > > > > Regards, > > > > Hans >