From patchwork Tue Apr 8 02:57:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ming Qian(OSS)" X-Patchwork-Id: 14042101 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 B383BC36010 for ; Tue, 8 Apr 2025 03:05:38 +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:MIME-Version:Content-Type: Content-Transfer-Encoding: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=nEwnsUOYFD8PB9vSTS06sKHvcoQ+lMaOkizrKjAAqko=; b=NVXeWFn5VOQ2An3Bnsw7/DIzEu 5HJt/i0Osc79HEgjJ2zSrwZ5r3C7FEilNPYE7C6nnz134XIu8nrK6QyCwzUYqm3KpOC4Y0+RfAKSk 7sGne43SqpskiJ7SKe9rTVuSGmwJp9XH3aUTq5be6Kbl5dtInFHT+oHtG57aNgQ7+4pJfmG+LhP0S N9tvV1JArQKtC2RnlLYlzOiyVM2oS5zb7sAqi7ubp5oNK2rgc4kHaNlO4ZCU0k0AGUgO3W+Xbj8SM /JZp/Ty30lTbT+8+SdkdHXokTfxRRBjuF7cJJA453j07PLqAzQ2n8q1JQyFARORM4tJC1kryLo4Yq vG/N5Jxg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.1 #2 (Red Hat Linux)) id 1u1zHD-00000002aOG-12ra; Tue, 08 Apr 2025 03:05:27 +0000 Received: from mail-westeuropeazlp170110003.outbound.protection.outlook.com ([2a01:111:f403:c201::3] helo=AS8PR04CU009.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.1 #2 (Red Hat Linux)) id 1u1zAT-00000002Z56-0lfp for linux-arm-kernel@lists.infradead.org; Tue, 08 Apr 2025 02:58:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AvJagqf70MIXCUi15CDVruDzZs08+I3QvzG+jhDeYuv+BWTIZCEed5i1mLlKPeDau4/pt7KXQlQVpcTGC8iJi3HxfiiDRtJksSLKd0ZDhMpgWmYBHF9TsJ3JM1lDjODpkFQKoaFnJFH+pNTro5NYX6lWEzfxPQMKRKe143hUa20Nme/n1w7Cqq/FGhWUOj/eGKBj+eR6GNDGE9LlUaT/Z48nQ80ifNXnXg9JQ274CVtuKOcgUEQ/zU93BnyF1lWv6jQQdPfrEeanXRYH2j61qF9gIPuF73TcDepxgminFwXqQb0e2oEB/seQ37CdnMsOtpd7ylLpO1Zmn6ZWmV1Xzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=nEwnsUOYFD8PB9vSTS06sKHvcoQ+lMaOkizrKjAAqko=; b=efmHdGaxNC+t2vLLtSxBnBdX45ZY/ofzvP/5eR1i/U533LtC9UmKvccVse0PhxVkQR88f4/6a6loGZTxwvDYPVClABJ0mF5U9V0RCQPRWmS2vHRDhR2PTtV46YUT7tfEkbjfVoqOYN7Uso7bDSYsufPLv7qpIUJtGt81Dhs97W7CUkCmPMhtF5pZGj8mxnlRe/LWqcneUxGfHIw6bInu/nDnHamfmEKcabuqQKjzt93ISedCN4hvbUCTnbQjbwTW6wTsDUiH3VE8zDNxlqHNvig6YQgaeVWzOWgDRirw3Sd5hYjzV7xwb8abxU2DU2T51+s3IZiUZCyRVjK1E5Jxng== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nEwnsUOYFD8PB9vSTS06sKHvcoQ+lMaOkizrKjAAqko=; b=a/KxxtfiUvMWBNMc02TcqZIXm+Y47C51OkH9rnuUeV7woAZE3eEIyHtM/n+cx+IPyU0wDNYEWshY2g4MEpZNYznUAPMENQiZYnuJIiKGSdj3TM6z25NI+mwy0jvrwyZ81rcd+SQL40a36cenqgOuInjmfNY+inf+rRhi2E/zrksuSaKso354YytI866UaN3pbVymiosQEJKa7y0nS7O1vxXoasvDj+2UC39cynxorlAoYwTR5X3k6naUgzv11l+OnoTIycyfB6ML3DdEb4wRTFwrEGyH2vF/+eCw8UYf4Zm44N1GcSg+76qwwhw6qfY134LlhwBcqI0wotV+lXJ6QQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB8254.eurprd04.prod.outlook.com (2603:10a6:102:1cd::24) by VI1PR04MB6944.eurprd04.prod.outlook.com (2603:10a6:803:133::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Tue, 8 Apr 2025 02:58:27 +0000 Received: from PAXPR04MB8254.eurprd04.prod.outlook.com ([fe80::2755:55ac:5d6f:4f87]) by PAXPR04MB8254.eurprd04.prod.outlook.com ([fe80::2755:55ac:5d6f:4f87%4]) with mapi id 15.20.8606.033; Tue, 8 Apr 2025 02:58:27 +0000 From: ming.qian@oss.nxp.com To: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, mirela.rabulea@oss.nxp.com Cc: shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, xiahong.bao@nxp.com, eagle.zhou@nxp.com, linux-imx@nxp.com, imx@lists.linux.dev, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v3 3/4] media: imx-jpeg: Change the pattern size to 128x64 Date: Tue, 8 Apr 2025 10:57:19 +0800 Message-ID: <20250408025725.1244-4-ming.qian@oss.nxp.com> X-Mailer: git-send-email 2.48.1.windows.1 In-Reply-To: <20250408025725.1244-1-ming.qian@oss.nxp.com> References: <20250408025725.1244-1-ming.qian@oss.nxp.com> X-ClientProxiedBy: SI2P153CA0019.APCP153.PROD.OUTLOOK.COM (2603:1096:4:190::10) To PAXPR04MB8254.eurprd04.prod.outlook.com (2603:10a6:102:1cd::24) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8254:EE_|VI1PR04MB6944:EE_ X-MS-Office365-Filtering-Correlation-Id: 7ceb8768-9418-47b4-7a93-08dd76493c21 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|52116014|7416014|376014|38350700014; X-Microsoft-Antispam-Message-Info: 7xXkgeeOEF+PCSX2a120+Z+IRLVQfOUlslfjA4zUoh4viWQawwAiF4sW07pgFsBGmEfc5/y6VGx9iaSLYQ+xRYBqYl3BvFNAChcMUE40TxSZFnI2zUnKZ+9zjLo/BfJ+iy139MlqR4kRqwOTWldH93VKa0eDUsGq4qh8vmPI+kS+i79qg6T1MmZy+Xf391QVNx8BLQkSofzgGS8lxSzZ7pBhAuDRf9edn1xQ+h6T+Anx5b2qkfNpVcZ5Z7koBj3/Y8ETVDtA8ImC1HuzVgfgcrcNSUzIO5zTPW3fx/khuvzdMqlh6kJk0fHtb9I8qWn1oB/2qK8fIEv43T3TpJShJrUdydEJlSX8JYXy5KHNwfUWxWhNt2MqxorizqPPgLc91ATm60CQ43PpMDF+obsHds+UfR0V7rfjLbp7eaYvI7ZEEzKu3JVCjuOqyH0PYvOgGMiKcAIlbYi1+xN4DXbdQNjlHy4U7gNJFfSLn6yyFAW2f30VgZNN50HFWySguvXMOTOJy9wGrvQVWv46dH/4WxduAO6ZPp+HeulVrVxF2+idksgqs4YEI7YfgF9/nkYHQSREcRMC0BHqhTHBbBHyc09M+mJnsSyxYeU/KVzja/D1hq/LrcLbOGbQl35/w+cMWzEmgI/1WV5kIhNUipS+L2NF//FZE23IJr4PVQd18nL/SDO/XeUc1gtPbkNrg+MsPYAsXb6NjZ+25iIWAgNOxbnO42CzmAx+aw/Y6dd3l8bNp0ayHYpUWOE6ZIiPkkjuezITCH8XXkSXb85rO5dav9XlKFyNWGviBmRKaoypiP0uQdhD6r1POKq6Z0bhS759kewq6pR7wGu9gjnAGcfahNE+kiPhuIbt8Z1+8Va1q+4DYBz3aM06U8GMA5N5uchfrACtP9f6pEa74JjPbS3XBg+L002uUU8w4plLAw9W7zilxDDstsjk6yQqX1q9uOtP9Au0Uh2W9m/teOTf6vcbwtlvYPaXJDGOqUow9KpMa2IcCekl0TblPNdTyvvAz4w0+g1KLuqSLFNUnwgYDnjLx8/6y29QPTh/muMGbnacxdt9XxYHaZhBqT2B57qj8MVSTBIRQA4upZti7Z6Ij6rlhMOzoK0NgRrlL1ecuFa4C0PKzSnivs851DdQuoGUZ7BKCoiQyzinsfWhOAoFxzZ0DbrRfX/qSzpIHLY5kPGNs/0O3wwzlY47atkjnvfGOP1MKJjBdPnxGhOtbZAAdhBxT1Kpu4LvYXzVIfuhRPMB6KEU9GrlCr+JOULtZK3twN/I7SOu73YUHWh1bzD68/DxSpBAK6VZgwgDFnzBVE+YMFf6KulyihsaeyjKKkw2C0dgOgjV6KRHB75lTKKRMi6dTh9uvEHDrTuOXXUOBm8ZZlSx6O+gw1c9Q6oEm/q1EE36uV3eJTUOoA/ullsd2j2J8hqgV687n6mt+a/01Rd5xiADE/sFVdJR/OOI1Pqso2b3 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8254.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(52116014)(7416014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: PB8q4fXlxSHIhcxbP2/bXcUFeymrTYFYTILB2xl+8sVAZLw32X5Kbv6GEJjAalHz+SU7KRBh+tZ+QsBfN9iOC0zjA85gCWwzhAbM65N028u52zuxPT2LExgs2qMEIArUm98kVjRLPrO9OsKfrKgVvpphcvOZDuO5BAVToV2ExAuYmj9uB+xTsfBsRNsmRWj9EDBPOTgGgUXh+8OerR9EqhdJV3nFXK2r9WbuCcKo3VDTlyKnW57d+l8A4mUhM5MjBo1YcnbP+Pn8xYmaeMS7ESAytKhMRdrS1nYi6zErNqhVIJz181/QxxdRHX2sxYOSk4k3LxxE/nQw/PQUhRnPBstzMrwYKJ15LfzLE+jVxXqjB+KY+V5cKlu8dxx6f0Jy5uLuMoSGFNBVTCDqFYQG3+Vz8z4D3JBjwFkVs5ciQCs4s4Ms4s/6HOv2MubZtA5WyfN9jxk3XDo9ROjysoXqfxuJprN6DjppSxJCgObVDLvQmXTSsb2XaAz3B1XwNyLlWu1L58uMGege5Zvq9ck8vjJ3pC62oxh0q9H+efhWeg2kXIM8ZH+IIjJrp6ZLNg+KayZZx0/wK/DKGzMTm6jatg9qUpMrir96Fwqd5VNtSvxg1jm6zoGya7rm2r+VSNhnzTNKeFlj95wfw11u2jeOCS8LcQ/NtNdvjGnOStitvTXihM3Bmq1WvGBUtSI99xww0gbt9Jg4YQZCWR22B3qwisQKjs01/NIMYrXtNJtjFt6hRU/4fo6EtJ58ZTgvNIDEqxjdFRh9hqvtFUa7FY/sK1NZ+3zjifvO8pbpHUlytGU+lvCcW7lQaKmMtdkxxx283cjZkGh5rD5KeEtIMQC4BSd5lTVIw4X3++N8MtBrWYzBgyovkFRAKOp0eWRHdCGIyL1X/BU5rljnY84yvg5e8fRfSqXxsBPEJhh+BcEyUe+MSV0idpxLIEmPIPVat5vzYg4Tj4j5xDwdPdV+croNm4xa2LNO7Exiar9B5HqwnUFUkeIALGMwqK53C8J7p0lsJhxMIDaJjbSrWWtXlwjPpy+iIO82idEt0VBNvkOKjR12zoQgdtDUi/QHauPcQaEDHat5/Ok9Sx1fFHTwB4oL4QHXkt8y6i3ciVZMiRmPLD7FoP1PKCaQT13g7U6AkMAx4wW7I5QZDsZkrFjQlgRCJ1r92QufhY1FZpnaQX0DPcF/OjeX5WQFFoINGGLDY/TXeZdExsL6Rf4bAfKjsxJykFezmMW3FzTa/8Rlu/UH+nAKzKE3jsGpT7K57+cnMwjlKiWpYzdIXIo2t/J8p18tUKM3T9qWqBYvguY7IkD02vDrD2u8NuztVXKvPuLCyoc7CPQcc1YiLbMSC+1APfbCs/gwIo9ux5LhOep0mTvnZ+jThzNjrJO8ROOjSoNfdWVELGPQhzpaF2zzeY1pIWbMmzUHISS9fp6qlblZgpzYzChhUdhSTXNeSVSl76LpT/NPRvZsWocrLnpGjN7RM+IOHnxbenBw18VRufh24NvkESzdWnW3fGu4EWJuJsf97Ua7AaKNekiP8o9T/EWM+YdLkSoo8LnJA/WaLTTYtg9Btd6oSnCwozQxDQ4rdlo9vTcd X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7ceb8768-9418-47b4-7a93-08dd76493c21 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8254.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 02:58:27.2847 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: EhG592xggi4/LTSNiycVLSBAAi2elirXdapK/bMEli/1jROgn3uyG4VHVjOpuWtcuUFjmz0YR0HTDE0F347EmQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6944 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250407_195829_225919_D5684A3B X-CRM114-Status: GOOD ( 16.01 ) 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 From: Ming Qian In order to decode a motion-jpeg bitstream, which doesn't provide a DHT, the driver will first decode a pattern jpeg and use the DHT found in the pattern to decode the first actual frame. This mode is called "repeat-mode" and it utilizes linked descriptors. The smallest supported resolution of 64x64 was used for that pattern to not cause unneeded performance delay. This choice, however, can cause a corrupted decoded picture of the first frame after the pattern, when the resolution of that frame is larger than the pattern and is not aligned to 64. By altering the pattern size to 128x64, this corruption can be avoided. That size has been confirmed to be safe by the hardware designers. Additionally, a DMA buffer needs to be allocated to store the decoded picture of the pattern image. Signed-off-by: Ming Qian Reviewed-by: Frank Li --- v3 - Improve commit message .../media/platform/nxp/imx-jpeg/mxc-jpeg.c | 42 +++++++++++++++---- .../media/platform/nxp/imx-jpeg/mxc-jpeg.h | 5 +++ 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c index 12661c177f5a..45705c606769 100644 --- a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c +++ b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c @@ -535,7 +535,18 @@ static const unsigned char jpeg_sos_maximal[] = { }; static const unsigned char jpeg_image_red[] = { - 0xFC, 0x5F, 0xA2, 0xBF, 0xCA, 0x73, 0xFE, 0xFE, + 0xF9, 0xFE, 0x8A, 0xFC, 0x34, 0xFD, 0xC4, 0x28, + 0xA0, 0x02, 0x8A, 0x00, 0x28, 0xA0, 0x02, 0x8A, + 0x00, 0x28, 0xA0, 0x02, 0x8A, 0x00, 0x28, 0xA0, + 0x02, 0x8A, 0x00, 0x28, 0xA0, 0x02, 0x8A, 0x00, + 0x28, 0xA0, 0x02, 0x8A, 0x00, 0x28, 0xA0, 0x02, + 0x8A, 0x00, 0x28, 0xA0, 0x02, 0x8A, 0x00, 0x28, + 0xA0, 0x02, 0x8A, 0x00, 0x28, 0xA0, 0x02, 0x8A, + 0x00, 0x28, 0xA0, 0x02, 0x8A, 0x00, 0x28, 0xA0, + 0x02, 0x8A, 0x00, 0x28, 0xA0, 0x02, 0x8A, 0x00, + 0x28, 0xA0, 0x02, 0x8A, 0x00, 0x28, 0xA0, 0x02, + 0x8A, 0x00, 0x28, 0xA0, 0x0F, 0xFF, 0xD0, 0xF9, + 0xFE, 0x8A, 0xFC, 0x34, 0xFD, 0xC4, 0x28, 0xA0, 0x02, 0x8A, 0x00, 0x28, 0xA0, 0x02, 0x8A, 0x00, 0x28, 0xA0, 0x02, 0x8A, 0x00, 0x28, 0xA0, 0x02, 0x8A, 0x00, 0x28, 0xA0, 0x02, 0x8A, 0x00, 0x28, @@ -545,7 +556,7 @@ static const unsigned char jpeg_image_red[] = { 0x28, 0xA0, 0x02, 0x8A, 0x00, 0x28, 0xA0, 0x02, 0x8A, 0x00, 0x28, 0xA0, 0x02, 0x8A, 0x00, 0x28, 0xA0, 0x02, 0x8A, 0x00, 0x28, 0xA0, 0x02, 0x8A, - 0x00, 0x28, 0xA0, 0x02, 0x8A, 0x00 + 0x00, 0x28, 0xA0, 0x0F }; static const unsigned char jpeg_eoi[] = { @@ -775,6 +786,13 @@ static void mxc_jpeg_free_slot_data(struct mxc_jpeg_dev *jpeg) jpeg->slot_data.cfg_stream_vaddr = NULL; jpeg->slot_data.cfg_stream_handle = 0; + dma_free_coherent(jpeg->dev, jpeg->slot_data.cfg_dec_size, + jpeg->slot_data.cfg_dec_vaddr, + jpeg->slot_data.cfg_dec_daddr); + jpeg->slot_data.cfg_dec_size = 0; + jpeg->slot_data.cfg_dec_vaddr = NULL; + jpeg->slot_data.cfg_dec_daddr = 0; + jpeg->slot_data.used = false; } @@ -814,6 +832,14 @@ static bool mxc_jpeg_alloc_slot_data(struct mxc_jpeg_dev *jpeg) goto err; jpeg->slot_data.cfg_stream_vaddr = cfg_stm; + jpeg->slot_data.cfg_dec_size = MXC_JPEG_PATTERN_WIDTH * MXC_JPEG_PATTERN_HEIGHT * 2; + jpeg->slot_data.cfg_dec_vaddr = dma_alloc_coherent(jpeg->dev, + jpeg->slot_data.cfg_dec_size, + &jpeg->slot_data.cfg_dec_daddr, + GFP_ATOMIC); + if (!jpeg->slot_data.cfg_dec_vaddr) + goto err; + skip_alloc: jpeg->slot_data.used = true; @@ -1216,14 +1242,14 @@ static void mxc_jpeg_config_dec_desc(struct vb2_buffer *out_buf, */ *cfg_size = mxc_jpeg_setup_cfg_stream(cfg_stream_vaddr, V4L2_PIX_FMT_YUYV, - MXC_JPEG_MIN_WIDTH, - MXC_JPEG_MIN_HEIGHT); + MXC_JPEG_PATTERN_WIDTH, + MXC_JPEG_PATTERN_HEIGHT); cfg_desc->next_descpt_ptr = desc_handle | MXC_NXT_DESCPT_EN; - cfg_desc->buf_base0 = vb2_dma_contig_plane_dma_addr(dst_buf, 0); + cfg_desc->buf_base0 = jpeg->slot_data.cfg_dec_daddr; cfg_desc->buf_base1 = 0; - cfg_desc->imgsize = MXC_JPEG_MIN_WIDTH << 16; - cfg_desc->imgsize |= MXC_JPEG_MIN_HEIGHT; - cfg_desc->line_pitch = MXC_JPEG_MIN_WIDTH * 2; + cfg_desc->imgsize = MXC_JPEG_PATTERN_WIDTH << 16; + cfg_desc->imgsize |= MXC_JPEG_PATTERN_HEIGHT; + cfg_desc->line_pitch = MXC_JPEG_PATTERN_WIDTH * 2; cfg_desc->stm_ctrl = STM_CTRL_IMAGE_FORMAT(MXC_JPEG_YUV422); cfg_desc->stm_ctrl |= STM_CTRL_BITBUF_PTR_CLR(1); cfg_desc->stm_bufbase = cfg_stream_handle; diff --git a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h index 86e324b21aed..fdde45f7e163 100644 --- a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h +++ b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h @@ -28,6 +28,8 @@ #define MXC_JPEG_W_ALIGN 3 #define MXC_JPEG_MAX_SIZEIMAGE 0xFFFFFC00 #define MXC_JPEG_MAX_PLANES 2 +#define MXC_JPEG_PATTERN_WIDTH 128 +#define MXC_JPEG_PATTERN_HEIGHT 64 enum mxc_jpeg_enc_state { MXC_JPEG_ENCODING = 0, /* jpeg encode phase */ @@ -117,6 +119,9 @@ struct mxc_jpeg_slot_data { dma_addr_t desc_handle; dma_addr_t cfg_desc_handle; // configuration descriptor dma address dma_addr_t cfg_stream_handle; // configuration bitstream dma address + dma_addr_t cfg_dec_size; + void *cfg_dec_vaddr; + dma_addr_t cfg_dec_daddr; }; struct mxc_jpeg_dev {