From patchwork Fri Dec 3 05:34:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?S3lyaWUgV3UgKOWQtOaZlyk=?= X-Patchwork-Id: 12694590 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 A1AD3C433F5 for ; Fri, 3 Dec 2021 05:35:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version: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:In-Reply-To:References: List-Owner; bh=FFRjz3avCi11v6hg3Sx6Qq9K+aEcSy2VdkBtO3LwT2s=; b=nARslCxTAw7Yxo O3OcfsQ6PJJOx2EY+cZ/aBgKNyAj4UT/sXK0M1p3Ul4q8IO4e7u/i0sEBrsSESjegH8vHcjLyMs2Z drbib4OcSNzPWxDZ8vhh5LMEYnB6pQcN5Vs6i/oyh1H65D6U0+GaVO3i19lUU83wC9iBBZH3ZILoD mtJfsRHN3bKGNZZEnyuuaPnTH9xh32MmsGnKx0mEfuhPaMROcNCfIg1LckKvfd+9T1QgVbIpHhTe7 10lDCEmi2S9cUyfVJudRwQ3a7mTjn4RrbdXsB3RaVdwqMEWECit9PXZv0SgIkR9i6AW8uGkuO8rOh d0y+NlTMeQV3BleTR3YQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mt1DJ-00EQQo-CW; Fri, 03 Dec 2021 05:34:29 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mt1DE-00EQQ0-Rh; Fri, 03 Dec 2021 05:34:27 +0000 X-UUID: db81d47ba1a2433bbdc70fa9e457f2c0-20211202 X-UUID: db81d47ba1a2433bbdc70fa9e457f2c0-20211202 Received: from mtkcas67.mediatek.inc [(172.29.193.45)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1903674614; Thu, 02 Dec 2021 22:34:21 -0700 Received: from mtkmbs10n1.mediatek.inc (172.21.101.34) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 2 Dec 2021 21:34:19 -0800 Received: from mtkcas11.mediatek.inc (172.21.101.40) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.2.792.15; Fri, 3 Dec 2021 13:34:18 +0800 Received: from mhfsdcap04.gcn.mediatek.inc (10.17.3.154) by mtkcas11.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 3 Dec 2021 13:34:17 +0800 From: kyrie.wu To: Hans Verkuil , Mauro Carvalho Chehab , Rob Herring , Tomasz Figa , Matthias Brugger , "Tzung-Bi Shih" CC: , , , , , , , , , , Subject: [PATCH V1, 0/6] Support multi-hardware jpeg decoding using of_platform_populate Date: Fri, 3 Dec 2021 13:34:09 +0800 Message-ID: <1638509655-14296-1-git-send-email-kyrie.wu@mediatek.com> X-Mailer: git-send-email 2.6.4 MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211202_213424_984295_405F9489 X-CRM114-Status: GOOD ( 10.07 ) 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 This series adds support for multi hardware jpeg decoding, by first adding use of_platform_populate to manage each hardware information: interrupt, clock, register bases and power. Secondly add decoding work queue to deal with the decoding requests of multi-hardware at the same time. Lastly, add output picture reorder function interface to eliminate the out of order images. This series has been tested with both MT8195. Decoding worked for this chip. Patches 1~2 use of_platform_populate to manage multi-hardware. Patch 3 add jpeg decoding timeout function to judge hardware timeout. Patch 4 add decoding work queue to deal with multi-hardware decoding at the same time. Patch 5 add output picture reorder function to order images. Patch 6 refactor jpegdec func interface for HW working. --- kyrie.wu (6): dt-bindings: mediatek: Add mediatek, mt8195-jpgdec compatible media: mtk-jpegdec: manage jpegdec multi-hardware media: mtk-jpegdec: add jpegdec timeout func interface media: mtk-jpegdec: add jpeg decode worker interface media: mtk-jpegdec: add output pic reorder interface media: mtk-jpegdec: refactor jpegdec func interface .../bindings/media/mediatek-jpeg-decoder.yaml | 4 + drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c | 295 ++++++++++++---- drivers/media/platform/mtk-jpeg/mtk_jpeg_core.h | 64 ++++ drivers/media/platform/mtk-jpeg/mtk_jpeg_dec_hw.c | 369 +++++++++++++++++++-- drivers/media/platform/mtk-jpeg/mtk_jpeg_dec_hw.h | 7 +- drivers/media/platform/mtk-jpeg/mtk_jpeg_dec_reg.h | 1 + 6 files changed, 640 insertions(+), 100 deletions(-)