From nobody Sat Feb 7 07:10:28 2026 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013051.outbound.protection.outlook.com [40.107.162.51]) (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 143D8395D81; Tue, 3 Feb 2026 08:25:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770107104; cv=fail; b=Hj4Qz68E92P5o36zpJhjaSBEpI7+dsV4/EzTVPcSfqSoPXp1d76ijrD4ZnrD+1bpjnyGIhDLduZswKDxZhrjoldBJyu0jfWYpt0ixT/nrWW6ealeoH8q2yXdAfwL6F1z1AwOYtKUys1y/dwmJ2EFWvNNkQqWj13ex9k8f8HNwxQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770107104; c=relaxed/simple; bh=vXKEhsb5o7x+ogTNwdxPudpah0otEe2+GnwgWO4zLb0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=JB60TgKCSokPu4xIQnjq2hnUOsUSVVNu+2+86UfmSkHKv8UQZUqrpRNHUw/WAUvrO+ws8GreK3OHulq8fFFWzlFDSrkuze67hgRhhYNxuLq0EfXnsjD75HDCs5ppKR/MA6N4416ejHWiFqqSD8Vsj5rBmbNMmGHK9LRJKPk0y80= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=JO1Z/JkM; arc=fail smtp.client-ip=40.107.162.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="JO1Z/JkM" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=r2jz+jorK+gPOCyRiaFimPfNEpWSUBiGhJz50Bx/bwEHuIv7WGyBGPPnVKGyenBlLeIarSthAgraIjHamzfx4L6RIagSxxDQOsbpriZak/hQWn/jBz1hYKeWre67vEXauuEjVlqV3zL3qvLCzpHH3UKXqAnCbjZIjMGerxYWiN3U88703Ag92zmXwQDBLB9swjF3BASrxyfUODqKWRXGU75xz5NkkUn7IvBGhCYuWlKklk5eE/UkSxgApucoGJKTof1eT2Ni8i59/duR8ohorgiTC8r/FE9A9cTgxNg8zL1j+nozMU44HMpyPeiXSxIeVPLkEYqiOE5Oj8Cwvh+PSg== 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=KMT8+c8e3g0jrispwFZ7vLFyeHIUVMUiOUUqJYnNxx8=; b=K0CYCZW7wpLXELYAL9s4gbcMru1Zh06TsJ5xC0yBnsWxqLB5eUHOr96HG0U8NLKKZaeaF4DSy1J38GzVswZNHlpCg3HHv89K8OETflYyVuoU5MYWGcbJhX507fPzJklIGqsIrKr2ZnhIy1ddHsZWPe7eqhCMYxHR8ahkWZhiGM9+EGgCyTUyeqyamgKfJBxR5Vn85J0JTzy5TbEFSgWzjz8NqxzUDVRwQeMHB+OiCQMnSPZJtIJ/9qUteVHq5gxp8KZ+PxMQg6haMjcVTJjRL10l3CWaHpImnKLDq+zC3f8tFvmfDpJxQiimnpEcZERAPjKd5zwxWNg32uvtkq2EhA== 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=KMT8+c8e3g0jrispwFZ7vLFyeHIUVMUiOUUqJYnNxx8=; b=JO1Z/JkMx/pH5BgHQmGtcHcUmuvjww3KxEnwSb2Y3AN2qYsBNHMYPMi3GI1UyihPGaitWXebLBEkTbv9c25hsu1YGczRhE5ZzXiAZEIxNzO1AczCIzRi6RFMM8/pK5/nZS2ZYxDk2d6vkQj89tJTAenY2ukTFoiMGZFFFRFhzjyH7281sKLorv/gcXKsqqMOAfxBPnQEvlI/XIU7H6u5uAmddRMxyQXFmAXv+9GKUfhAczqquR2SdGn/E4VmAyWjWwYTuR2FozKy59xjEr78nEvX1/diuyQxRiq0/NCwn5tICkD0jkNcrvd9jSK9wxsYdrxjXdLkf8uJ4Z2HVPrmeQ== 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 DU6PR04MB11182.eurprd04.prod.outlook.com (2603:10a6:10:5c2::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Tue, 3 Feb 2026 08:24:58 +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.9564.016; Tue, 3 Feb 2026 08:24:58 +0000 From: ming.qian@oss.nxp.com To: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, mirela.rabulea@oss.nxp.com Cc: nicolas@ndufresne.ca, 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, Frank.li@nxp.com, imx@lists.linux.dev, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 1/4] media: imx-jpeg: Simplify descriptor initialization with memset Date: Tue, 3 Feb 2026 16:23:38 +0800 Message-ID: <20260203082349.1082-2-ming.qian@oss.nxp.com> X-Mailer: git-send-email 2.48.1.windows.1 In-Reply-To: <20260203082349.1082-1-ming.qian@oss.nxp.com> References: <20260203082349.1082-1-ming.qian@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0112.apcprd02.prod.outlook.com (2603:1096:4:92::28) To PAXPR04MB8254.eurprd04.prod.outlook.com (2603:10a6:102:1cd::24) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8254:EE_|DU6PR04MB11182:EE_ X-MS-Office365-Filtering-Correlation-Id: f7a1cc03-024b-4439-e32b-08de62fdb7cc 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|19092799006|52116014|7416014|376014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?+URPK9WknAWMIoNPEA1t6hT1721ie47+4YXlkL7VS8z0JwZxh1up8Zm7WJm0?= =?us-ascii?Q?hy4uH47ZEJ2PAsk9XRzLbfrXWO4wHmTDARTcDZUhWJB0j/7OnCl/MN2OMXth?= =?us-ascii?Q?RM6hRxAi1qSE6IY1g7HDgDdS54wQ0SiNwr5F2nS0BDUL7dOcM4NiTFJyvGVY?= =?us-ascii?Q?Ax0ITmXkuoObClL604xhA+ijW7QQiQ7V2AzqFhX8Z6VzB4DioZeFniGBD2BK?= =?us-ascii?Q?7nHOG7ldzQmeDfzc1HDdLILNAxTcvmfHVLdFMWukHE3K2JQ//HhwR+DrYRa7?= =?us-ascii?Q?Cb6mYTosWIaHM9jwdKLmFDlDFwsAJuzdOhOkiRw+IEYxNdur3GK5TTyo7Cv6?= =?us-ascii?Q?QCrucFYwFuMGxxSiTtaiG7HrawSyk9UZFjQKNytbEtLy2xiQFfo5qH0xdaby?= =?us-ascii?Q?APc+qH/NXOI3GrvRQUnmKvF2eu2AdXThbWlwGt0ghrYGvht+xwwazjRijoNG?= =?us-ascii?Q?3HAGJzgxK0WyBKI2lfFrJsne9ot1x4xUxBiDD8JG99BHMmmi+Sgvh2hopVg1?= =?us-ascii?Q?jseqyydR/w4ztvAmZRjmdetGuJNw/MJ4enSH6CQHU8ZBdKrQutcUSFl+iUDd?= =?us-ascii?Q?oZo9O011l+ZQ9lljycK9dQ3w6oMDFf/l6AQGGHf0XwYJa+IxdWtVlW5yPjkW?= =?us-ascii?Q?64mhpQfw0DvinDS6TGVrTzQE6b+qEsRE1BXNcU6eEFwgYUPY+i9Oc15/52Vz?= =?us-ascii?Q?sbbMgXhqg96O00pHuMndn4PfuZ9/nVWPwd6K1H4FWVTy1JsQphhcVC7T71Ro?= =?us-ascii?Q?nKdmLLWZPg0GtVAS7YT/Fvbvl5fyk7G3dVyJYAUjloBRSG6bDV/K5LM6KSCi?= =?us-ascii?Q?luN1g3FVTcW8NMp7WAX93QRrvT7Mv23Q3UV/8Mm0JDXi/lgGplFCMCbAA4uv?= =?us-ascii?Q?bBU+Bmh5B3NJ7sLz6KHWgQ/ZPviGZq7Mwi3rgFz3tNpu2W3RG64UNbyYZfpj?= =?us-ascii?Q?ZLPpRi0uCaQ5YVLxPGSWhnWEskpnG69zPsN/KyHc+fQPwv/M4xBycf9cfpFT?= =?us-ascii?Q?13cT4WRo2vgo0ST5ucJE9ODgRgpi6/aqskiaYEldcWqSvwpMsAQYbH20/+m8?= =?us-ascii?Q?/q0GO97Bx0AIfISMjar1rGzL7G1sfDmovphF1i7Vc/vkwWc2oAM1QxD2xK/S?= =?us-ascii?Q?gHUMxfsMtVhJ2GlfOlTCFf7Nh0D3mhcLACgXoj3aEoXi7NtQGgeBLmOHgliQ?= =?us-ascii?Q?ioA322BJ/V63gEZ5V0s51bSWzuZ4E/6KPFO5Vus7cRm9TxWXF60e2Djwcwoj?= =?us-ascii?Q?Ge0dmJipS86m/IqZhSjweqD8q1fFjh7h0MObVjATX/tYCdsH+aPKWaTNCnAH?= =?us-ascii?Q?rW91L+E1snAAcHWX5uPlDOwtxkvJG5kL2a8QXNLKEWEhUWcoFzerWtC3eNjf?= =?us-ascii?Q?mYIEDyxaN/yAiQxmoado9M2vXD7iLW/X8DdKJcQUgjV7ZyLJoTOiZdqJhgol?= =?us-ascii?Q?r8cbqGGNPuxMkR0WkxwptaQ5K0X0AYj/aq+r4G0rBQL5BKtwc4M5FVGefYBk?= =?us-ascii?Q?h+kWiaNPe7W/IOSVlAdzPv+Jgx//BPkMMNgt0NB7AopZqfnmGZ/GSpodzdHz?= =?us-ascii?Q?Ox1IukKOnQvnFdyx0DfUy7AO5ONcHRek5VlTM5cwBa0hj3I7sH12bSuq9hJR?= =?us-ascii?Q?OiWAZjtnF7ymTJoFW990Ok4=3D?= 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)(19092799006)(52116014)(7416014)(376014)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QGLTWVIBNQ+LXOIvWybecIMYjW54/e8AWZePyhysUJTD0GmEYWxf8Iw2Y35N?= =?us-ascii?Q?XVOI/es4VANlFOICOHgQDoELyb90kFLFDSVm+2cCBSdUuQAty9P9D2IcE6Ys?= =?us-ascii?Q?jWvt8fNpeVoYtvAuM9qP946foAnii/gtltSjWkbblgsgfMdjvQG5rgRyeIMH?= =?us-ascii?Q?ygbVWDKAkolgErjnIvClSinkS48VbCmjLHr7sooAyEFVwFkBBMkUn4JQHqMI?= =?us-ascii?Q?jTvXdBoa/n2i9AS/nun4uTQYJiiIAJvDmbtWGDja6zLoyiEFEZUNwEfSPi46?= =?us-ascii?Q?bbotVpBFntOMWlmvl0/EZa6WbxvbkDvaA9pIK2M7Ke1/A1X2XfN9LpAVoETA?= =?us-ascii?Q?/VWdmyd3FaeGByFZFA9mJuAZs7pgKlkVyDyGxe8LugI9UUv1VYZSQ3peWsw/?= =?us-ascii?Q?YXv758SReeIBqYZ/tVcTk45mm1BucG0kXMYOw8bvcXFDLVY3oOpNBpRh84gk?= =?us-ascii?Q?yrXZ0WCQuaUe2AIVyyi9Co6vYnGXJE4lGWI/siyixcLoryMiO47oSmFBBybz?= =?us-ascii?Q?2FIGcn8tq1aPCizYUjsEA7JZRfKauTDmKY8CgNxPARlFzgFZ/tjCqoEFIZ0M?= =?us-ascii?Q?R2zIxAP0jquRazaNDB+fhcsAWLWxbOCkiLOv1FpDPstxBN3sbfjz5354SVha?= =?us-ascii?Q?7ImsyQRv6bpo+9GJtDGPybKCBDamqD7R3VsgBrbXQZqaMlaHGNtB97JyMYtY?= =?us-ascii?Q?qKxl5YDePKF5yv0iMjV5o9rODq+TOPewJ5VH5e0Ygmi1o1bf+LtPSTbUaC4k?= =?us-ascii?Q?Ul+uVjIihkGi15O/rrelb8eMQALJf71AMqWOOXhrzioVRwKXLj3fklv81swN?= =?us-ascii?Q?+f/lWsM6Mu6dsqMfQ3P/o6f9TGWOopVdiUohO+/JtCpMrwLZ+dWleRYEAvmN?= =?us-ascii?Q?kzddx0aPbZtSYE7JNnSRY23EtW02hEvG42k44azqjjEJC7NzLQwch6SfRd36?= =?us-ascii?Q?NK1kZNz7ekWubxQaHj1Waup4ONlhjyzRW+t23vodqmTmj5W4NJ9AdCCgfJvQ?= =?us-ascii?Q?wapAnIbObVgwtCu2U0IKWXOJ8rmkg5HEpl13z8VHxl/oxMeLBqVLDs8UulC8?= =?us-ascii?Q?4E9nTlNQ7IESff9zl8pjvRhngEXoTgIJBf9S7URG46redc596tG74eMzQpeO?= =?us-ascii?Q?FfHCqSHfm39jPZfYTilqPLU9OywnTgl19udLY6DE1//u+5MD8N+txAq7oUsF?= =?us-ascii?Q?3W3vTIwZl/d2Zy1JgDjUqe8a78xchs4Yb57QY89qCeMFrQT8C2dgFYVERjUn?= =?us-ascii?Q?jo4FwVVbWxoWExS0rLfxVufdezmJ1niHwLBT5BnKqP1eHRtJZz49HhoGp2XD?= =?us-ascii?Q?E/+dqm+6M7MEICgXIODq1Y/3QHPJXdQLxSN1mvUcjns7xLYGwGftNG++IFxD?= =?us-ascii?Q?NqoDgkzOZpib0L8apD67bMjKq8cEUJbj37hTTtDJ/N+2HN2xL2yw3crRmPPf?= =?us-ascii?Q?AvJU4R5iQtqm0c70QppVaUeuv2xk77yHw/UpGprCOemWurCcXUDQuk+QL1f3?= =?us-ascii?Q?lrxC8YnWD8BTEyqGHFq43XuRmdWzTXFOSgU+6DbS0iGsYOoVY0NmdAm/gNLZ?= =?us-ascii?Q?HTvy2O7VcgYAeTjjU8e/Qb4+RA+bT3j7G1j6H3cqyjg4jMVvFMmHr94ipYEm?= =?us-ascii?Q?FRwCgwU8QyQriGod0XP2cFrLtLU5sDAyGmzWccrvjZC/vi9a7g/pse4SvkN7?= =?us-ascii?Q?ZHyUWg3Q9FpmBqtEvu9vvaRnoI1UwzgJ9jO8Fsrj+kOkqJn9Z8Ayh938QPPo?= =?us-ascii?Q?CqGmO27zJg=3D=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f7a1cc03-024b-4439-e32b-08de62fdb7cc X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8254.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 08:24:58.5959 (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: bBW/C3+2VqmhtNKEiGDjzA11peM/2ajcr2DXbvRrfWRi5IR5uyPoxV6A5/P/g9s0m3YgPUtGTi0Q3mQ812j93g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU6PR04MB11182 Content-Type: text/plain; charset="utf-8" From: Ming Qian Use memset() to zero-initialize desc and cfg_desc structures instead of assigning individual fields to zero. This is cleaner and ensures all descriptor fields are properly initialized. No functional change. Reviewed-by: Frank Li Signed-off-by: Ming Qian --- drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c b/drivers/media= /platform/nxp/imx-jpeg/mxc-jpeg.c index b558700d1d96..39022c1bf36d 100644 --- a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c +++ b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c @@ -1338,6 +1338,8 @@ static void mxc_jpeg_config_enc_desc(struct vb2_buffe= r *out_buf, =20 q_data =3D mxc_jpeg_get_q_data(ctx, src_buf->vb2_queue->type); =20 + memset(desc, 0, sizeof(struct mxc_jpeg_desc)); + memset(cfg_desc, 0, sizeof(struct mxc_jpeg_desc)); jpeg->slot_data.cfg_stream_size =3D mxc_jpeg_setup_cfg_stream(cfg_stream_vaddr, q_data->fmt->fourcc, @@ -1348,11 +1350,6 @@ static void mxc_jpeg_config_enc_desc(struct vb2_buff= er *out_buf, cfg_desc->next_descpt_ptr =3D desc_handle | MXC_NXT_DESCPT_EN; =20 cfg_desc->buf_base0 =3D jpeg->slot_data.cfg_stream_handle; - cfg_desc->buf_base1 =3D 0; - cfg_desc->line_pitch =3D 0; - cfg_desc->stm_bufbase =3D 0; /* no output expected */ - cfg_desc->stm_bufsize =3D 0x0; - cfg_desc->imgsize =3D 0; cfg_desc->stm_ctrl =3D STM_CTRL_CONFIG_MOD(1); cfg_desc->stm_ctrl |=3D STM_CTRL_BITBUF_PTR_CLR(1); =20 --=20 2.52.0 From nobody Sat Feb 7 07:10:28 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013041.outbound.protection.outlook.com [52.101.72.41]) (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 97F49395D9A; Tue, 3 Feb 2026 08:25:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.41 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770107113; cv=fail; b=Cq5Vq3u1mJ6Pj1U/YCmVqCphZ6/qQ+aj/bOYv48Xf42CBDwuo9N0MvlDFxNmGdl8sCLk+qBAMC9W76pzY4HRDhKBt5//tYgyNCtb5TRPlxnC2DxVLnuQRi55/We/Z0xGamSYuWjrgecOgeXiW5xcNaw0OHu/bSgXQLRzs4s8Tts= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770107113; c=relaxed/simple; bh=kv79AkqPavr5/SrH0fgaz590HIg9KzlIp33pl7AS/Qs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ITz/tsNsuRSMESN3yYxs0yBtSkrzKndjDSTPXiEkeTEO1rjIIGVDTxKd8EAuN1wfVd3Pdd2mqn+A910Ei4EyqG5oc3s6dfV+q44uiukszttJSKEABMKt6soPCwI1GQ4wHJPZD4JPlB9KLsDnRfk94Yy9+2ClE43IqRLUYYkGi3I= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=q0lxZcwR; arc=fail smtp.client-ip=52.101.72.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="q0lxZcwR" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=M9g4NBnq76NQ/+CcL/j+c6yLNMeb64XFWEucHwi3x8okvG4C/aaQ5f1SDUsaKS8bd0H3PNn5l5QwxJYk1bh4np2/8qfe8uYkUIMXHKf2WMswrPHVdsHd/pC0MVKZ4ap5gKFZfpxCTtQPMuiS6kUFZm/bnEPuNAeTf4g4JkztyzbnrKZMTg8grDhRdXxpXRup2B3wnmHD3OwxDbUC/BhqyelMuoHymGkPd3Zi8Snl2Hf5Da45DMlMDWJuajqEU7eWm63M75wxoygtR3LnJvVTQBSPOY+30BV0ljGLZzGaKQhYIA0uyVp1dOqze0KafBQIYNUuMJ7f/tAbjOmA123diw== 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=QS5B1YUvF/urgghlAyH/WIexuPQtnI9CXkAAb7pqo+A=; b=Kr7ywHE/SjoxepeI1/7TcrpzS/dDXejnfWkb7kOkUIcFxMjkgF3e34no6JhcYDfxW1D5N7Cl8u0UCl8eDjXdbk1UbJWg6ySV9wp4oH2oAk+VV+a5rZsXPHZ/3jZ3ShmSPsG9HRIjrJoMda/r3+XZlmz3LHHm8B6F7G0cxWMsPeognHU6jqYZ2/n68YOsBSMta9dppNx/iZvXvygx7Rn2ZZAuBfeU66s+g5+d/NbbSdF/GG4AKn6Bb+EnBd4A79cin7qYi9MuF0/Y5Nm2NckN16D+rzPpyz/HW2OYnFJRojCHvBMEn3MyLlGEAs+Mm/tT7oDn0zP4kJX9yDCogaQQlQ== 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=QS5B1YUvF/urgghlAyH/WIexuPQtnI9CXkAAb7pqo+A=; b=q0lxZcwRByoprgKJxRpz2mXeqROsYPd6LvLqd6W6zKaKw9OdCND0my3svoQJiMRQsFs6g+qyZRl4eoiwMZFmKaQD2vW6feV3AkwzTUrYzRRmuRUNOOz7b3P/XYkPzYBvUZkje+IB1FSrL+Sh0+1MS98/Xz9grukDKYVs+iRHUe6dj0zVQdxRjVxZ20OhbeeXsYt4cPaBLKOZVydSit4UVaGVJugLgxn+kSIKdy5eiaMWL3xyLEyzdCN/X8ZvgQenG0QJTvfdQqUyKQ566yepzzTA0W5f1LOTT6EBV4gkYdzvol+IC3SbIwK0wBjUdxciuGMVAFCMzp9P6W69l7Wh2Q== 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 DUZPR04MB9919.eurprd04.prod.outlook.com (2603:10a6:10:4d9::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Tue, 3 Feb 2026 08:25:04 +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.9564.016; Tue, 3 Feb 2026 08:25:04 +0000 From: ming.qian@oss.nxp.com To: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, mirela.rabulea@oss.nxp.com Cc: nicolas@ndufresne.ca, 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, Frank.li@nxp.com, imx@lists.linux.dev, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 2/4] media: imx-jpeg: Use devm_pm_runtime_enable() helper Date: Tue, 3 Feb 2026 16:23:39 +0800 Message-ID: <20260203082349.1082-3-ming.qian@oss.nxp.com> X-Mailer: git-send-email 2.48.1.windows.1 In-Reply-To: <20260203082349.1082-1-ming.qian@oss.nxp.com> References: <20260203082349.1082-1-ming.qian@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0112.apcprd02.prod.outlook.com (2603:1096:4:92::28) To PAXPR04MB8254.eurprd04.prod.outlook.com (2603:10a6:102:1cd::24) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8254:EE_|DUZPR04MB9919:EE_ X-MS-Office365-Filtering-Correlation-Id: 2911d33d-63cb-4749-a83a-08de62fdbb01 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|19092799006|7416014|366016|1800799024|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?E+GGJmzR/XgekxRkiUQd/CHvT4+gd+wKSEn2hKxu8fAbPslFOKFoSRwH4C6i?= =?us-ascii?Q?UwcWq0vre4quypqGcsGRlJADoM6+Gdj/r/xwYjnzWhDR1pAFcSo+uJp8VTe2?= =?us-ascii?Q?mHMghxWjf/jZq8QzCJy7wyHfVsyY2djzMz0J0N23W/5O+ZrAY5qZLUDTm0EQ?= =?us-ascii?Q?n04QPhydj98HEhugce/0293Zs5XIRP5KCNO+lPebMGPxgf/E5GOWaApceh64?= =?us-ascii?Q?D8A2hQl4rIQkPhRhhWIvs6Y4wEerulN0CdyOzwqz94v7dAVs6jihpGi1FuMr?= =?us-ascii?Q?ysaZdYUNZbKpq9cBEvIQuO0Ef5U3cU04U0vBKd6QOISszWnFdHYW4sI4KsY4?= =?us-ascii?Q?XhIB+k4Zd4segmPhyDloHjCPTDoMfopwC7PdOrf0mypIAydhG8azbv4q9ww9?= =?us-ascii?Q?wV4R/zByY3ILRi3AmDX4l/ikg61aSH+eYytNCj/45mr0I1bn/dbco++oU3Xh?= =?us-ascii?Q?xKmrZoYzsFzShSfayMprk/yHDRYKkiZeuK5khxGTNFNIhZZX4NM6aJBZd3m/?= =?us-ascii?Q?a6IEj7j89zZo1zTqemo9oDvQ095Qb8EtBz6JxSiOcwJH1D0IT2wyog2jOvtW?= =?us-ascii?Q?Lu6AESTQMxMynIUWr1tde5AZNHMr3TUUWzGXVTzPp7wxmhy43FWbLuV+DwCy?= =?us-ascii?Q?PzTLw1ABf2PSruVUZmoicEMwYvMte4qdGusMbzzunl9hnpCkhN+cizvSBr3C?= =?us-ascii?Q?I0khJoPmXxO4LXr1xcf44ECnE3WkyzQ0oos2/U8hYZtALQlxFwACezZLsrNS?= =?us-ascii?Q?6NkeF1R6g+CByeHgr/FaEXswIOvw78+Lj/A788W2123rCaxUU9YL0eaLFR+7?= =?us-ascii?Q?6yPmMecqTBU0DZfhGYP8FXc9xFxeveW5FEfy//oBHp1y1ebMyL4qI5mQAIz5?= =?us-ascii?Q?qF2inMYQ1mZaXdYikG/ah/RCLx0Wv0c6Er9Px+7y29ABt1kVMEOM9PELPECu?= =?us-ascii?Q?Ne9Eae8lL5Y51jQflYfHHSsGyfPpHMhlko3B4dIWNiS8BKU6HVdFb5SKw1UM?= =?us-ascii?Q?2NAH1Q1R+3tedyVFL2NoJCgMG2Ho6ywMtS8IJ8jo6n5QvOL72aOFYwNasJBH?= =?us-ascii?Q?tqeOhejsL1umw2kTdhmEsrdb81653mA3FMTr88b6MYibND1Xu7L1EqYlIOL1?= =?us-ascii?Q?gxdVEIZWH79wUcnGEd55//ajGL0vqqh2DIkK1JqqhZFcfLBSQWqhZYKaCIDT?= =?us-ascii?Q?XA/fyCq3/VnkOdPcLrdjiJkK3bbe0Ja37bN9mBTzOsIJfeID06Ptl/JV0x7i?= =?us-ascii?Q?zaqAUTfE7xmWbs0YEzbS4wSHTp6QpgFYI8xMknx+7aBN9EmWrE+JUT4+WTFf?= =?us-ascii?Q?Nr58kTJ0ASokYC/8XhoNHZrZXlZKBjFRwTwZEvN4ord7l2tI4P5t9eDYAkl+?= =?us-ascii?Q?MtqSVXVALnl1OCaNQaEVef/E38eH9G1Q3RfAVZVmrvkKe5lNQCZmzqdTCkqJ?= =?us-ascii?Q?TlrFDbgdCU3rUk7up7/DNJcUweLmNO44S4LC9vOqceSJvOnXtNoQPEE9HUfL?= =?us-ascii?Q?Xbd12ODt5FSM2kn+HOY6Gonpx0OP7L8Im7yPzIaxDpPVUr34rgswehYITaRU?= =?us-ascii?Q?echEClje8KfKoTK0m/ihClczG7/k1YYCa/LeaqjHRKe+sidLQm0wpHD1QyTt?= =?us-ascii?Q?Rn1TIFDHX4/mZ05xvoZ1o6g=3D?= 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)(19092799006)(7416014)(366016)(1800799024)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?u6l1Jp4/iMvfUB/jzoh2kilk5qsITqUQKJFxFDgSdbBroAr9EN+K9uxN7pco?= =?us-ascii?Q?gjABGXTF+aOZsLbHYzAFWb6aNSCTCYE4jw4H86RJf28nOTTA5stLXvsCM49G?= =?us-ascii?Q?0H8L3ybBvxiQTZa085sNJ5DABGzWrpYn0ZWfNOEexLDr63L2T7/lJpOAlNU5?= =?us-ascii?Q?klq982knyGDAfkXlB+r6vhNbkdLfjmc6v/8pmuNUnpXO2nLPi4fTFHgrqET2?= =?us-ascii?Q?gOM+3puWp0aPHbO/RGNtT+1Y0DVXTFKEdllBbrN679TC+C2JrZ568mBud/nu?= =?us-ascii?Q?yqFHmdOvToM1eUlnt+ysTnklzdZ73uD0+VlPFa/d3AcDV/9D9v38vGJZAjxw?= =?us-ascii?Q?TBrdhFhjluLfLwr3xi1IL/Oegk1QuK0CuI7SWOfQY9ge0VzttQapiPggvfvM?= =?us-ascii?Q?id5wn74dvEOsPrxLjCBU/43xuEcSPuuXCqOkaVxAKvFXkWaqnvbcsMMdQh/f?= =?us-ascii?Q?a+5KnpWtR8H1kNdbk6uHEejsf8hWUzWKQwIcU2KaCgbt7LV8O1gYm9Pg+HL0?= =?us-ascii?Q?PaOtYtVL3uKP/YZYx5D6j432itdajASZ1wG8WVOWuF41Lpag9wE534+b3uHw?= =?us-ascii?Q?OmHlxbh59wzQLxgVjtAwi/XjZGzrRgkx8t+ZmlFhYxO2rMktF2bIuPE9xZTH?= =?us-ascii?Q?ySLT7hA9o3FSvlEwf624l2RYHLr71rRYYT2Am60Cn1v6bNLU+bIbtEt1MGfT?= =?us-ascii?Q?j8CJkP9kBa3a7jVZRSlDYrkC2FZHQYa3JYio94gHFZQBXbXmL2bkmWrGSAB3?= =?us-ascii?Q?k1pe7HTBCga5TcV16j4KrP0hWpFqz8+okJ6G/IrXl/wYvahLd+s+DM8khTSz?= =?us-ascii?Q?/dZxWgnNFhIoSdTdlD00QR05Rurqp7HA+W+1MWZWPlM/Cd9F1ezion6GdAMI?= =?us-ascii?Q?DxEL473Wo1FsrSPRRm9PERCaqPLgyjrTv6UViiRAiI7SNuRCp9lb+R1pj3pQ?= =?us-ascii?Q?ZhqVrcjO7eFSVyPuHu52ia/iKcMtfR37hkSVnzpZ/t04Z3hEGnGb/JjGDryP?= =?us-ascii?Q?8UXzbshZYRN933Kjuw9X3nkFPLxQnzUD8YQe2j+yXFHT6VqzfjErUoz4ZJmJ?= =?us-ascii?Q?Scpw9r2M0gENbgbYOaZIGHmFTTeOaXjVxCNNtbcgEB28+n5fvQGzr6ewaZs3?= =?us-ascii?Q?XEdOwnqX0KbCyHjPn8Ozz1UtaBjHLqnusW8DsJvh7S4XgGUX/kmCA2UPox/S?= =?us-ascii?Q?yKnjD5YY5alWAOqkWVuscSORpj4k33YNp9Q95fVMM3PJHz115ASzMowNMBuw?= =?us-ascii?Q?p2I3vGDZDMQ/nPQ/ulIgPQuoKWED6gDWVFI//94I8hh69oXlP/d0J8F7l01S?= =?us-ascii?Q?wfn0F6OlNeEa9p34L/NMkBoGC6B2KJE4qSfzIrVboZA4aQsd27JtUzBpyM3n?= =?us-ascii?Q?l0ZaMrF0Eg05FbsvgEgIr/n7f9X8jO0Th9wUvEZC0PPo4Qntv5kFgRYZ5OQj?= =?us-ascii?Q?Cvx8iGZAD5FZ+rp77Vqfng8qBm48l7sBVLJFU7Ah6nZhDagZvye3DatvnUi5?= =?us-ascii?Q?5pFw0bdxi9R91v8BBZVyKJRFgsOw0kIPpzHo+Q98naeTzqO4UD7R2vOGupr6?= =?us-ascii?Q?vH2IeB9FcvRyEqMdkZ/FmpS7GgbnjoGFl0Ggk8gPZY1ueEfyR3mM0V1XxB5f?= =?us-ascii?Q?hMI9v0JZ6Jt52mn184Sl3WSjLTvvDIvz8+I1TlkdboDdBTWhTwJTCeRsDiwk?= =?us-ascii?Q?TAKMpRH0gsgUtJ2H2Hty2CYDQOrWTllV8dNWrdVpxne3D/r3d4wEnTLAm0oT?= =?us-ascii?Q?Ucr4kpMQdA=3D=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2911d33d-63cb-4749-a83a-08de62fdbb01 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8254.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 08:25:04.0597 (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: mA1rioxPV17piyzPrZHnJSeaS8aaoWaxpqFVstKURaf2hlPmW1Liqt5d06kb0223+JbYrZT14DO3gi0KSxrobQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DUZPR04MB9919 Content-Type: text/plain; charset="utf-8" From: Ming Qian Use devm_pm_runtime_enable() to simplify probe and exit paths. No functional change. Signed-off-by: Ming Qian --- drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c b/drivers/media= /platform/nxp/imx-jpeg/mxc-jpeg.c index 39022c1bf36d..877e6c4f7406 100644 --- a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c +++ b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c @@ -2971,12 +2971,22 @@ static int mxc_jpeg_probe(struct platform_device *p= dev) jpeg->dec_vdev->minor); =20 platform_set_drvdata(pdev, jpeg); - pm_runtime_enable(dev); + ret =3D devm_pm_runtime_enable(dev); + if (ret) { + dev_err(dev, "Failed to enable runtime PM: %d\n", ret); + goto err_pm; + } =20 return 0; =20 +err_pm: + video_unregister_device(jpeg->dec_vdev); + /* set NULL to prevent double-free */ + jpeg->dec_vdev =3D NULL; err_vdev_register: - video_device_release(jpeg->dec_vdev); + /* Only release if allocation succeeded but registration failed */ + if (jpeg->dec_vdev) + video_device_release(jpeg->dec_vdev); =20 err_vdev_alloc: v4l2_m2m_release(jpeg->m2m_dev); @@ -3047,7 +3057,6 @@ static void mxc_jpeg_remove(struct platform_device *p= dev) =20 mxc_jpeg_free_slot_data(jpeg); =20 - pm_runtime_disable(&pdev->dev); video_unregister_device(jpeg->dec_vdev); v4l2_m2m_release(jpeg->m2m_dev); v4l2_device_unregister(&jpeg->v4l2_dev); --=20 2.52.0 From nobody Sat Feb 7 07:10:28 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013041.outbound.protection.outlook.com [52.101.72.41]) (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 6114A395D8A; Tue, 3 Feb 2026 08:25:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.41 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770107119; cv=fail; b=nl1KKVXDe1srD6Kh/HhLqlToGLrxkTPG/2DI/IEoLbpWlYGNwEr7GEU+EMde86/yiO4P9vDZnm7deFN9y63PUSSnSGzTdfvfz1pcSvUCrRrypCZyLpa0GvNzR7xtkXDwZtmUGvHMgWf4ShVFzPbfMEbo9mv125ebAgdQlNTiu6U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770107119; c=relaxed/simple; bh=b8BHX6wjr0TK13Dx9K7/l0BNoSbPgv4O9FIpjd9nXJU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=A1gPuV+uGBfoetdWx8nDOO3tGxmY5YPAo9EsX+c1E9ydOVdRsqhCH0q+8C9Qd8zFYkAfOYhUjTz7QpU9juLnbHSVT9Ie35lhCTwZXhh150IWMDbnA+kGee0BBQ9iWGrDCu/M+2J27mM2RsEdFULS+B62bVNf753nkWdvnXPDBhY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=ISKg/43n; arc=fail smtp.client-ip=52.101.72.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="ISKg/43n" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hgvqLlEYbwpVryXgSFsUP6MeYTGgpS7eR9aGcYEjqqiOw0LJrg3nDh8lInFY/UfY3fx2yCyX5MJTAjTlPOpH5SzlbcyAjR4Z9HBjRa7zFc/2BtCHNrWscuCP9CqjsgagEV/e1OveK/y/MnfNsxUrfcpx4Qu74FRMBmaV/M8Q6p6aTlXJyk8XlfXV9N17EcsLpI95t+PQJjdqgh4vvNpfIe7UWeT6SkI03K/8Y5mIdCi1o+GAQCxo4/M1PYzAytQX7tiBJPP7EQn5I1fWbCbTnoT+jKtmHzyFEZZBgdqr99hrAe7a1n37Nhl4XoIpGKr/ZwpleNdOnq/21nHbgNGh3g== 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=T/wdbiaoeK04gk0F/GIsuk5jtWZuMabb5IPMuPLeNRY=; b=EsKGzojM264AcL2QzmKsmA9KqtqCH02u+yb0hPaX0ZZOuFdddJkpGbRTBaRxRM6axmau7FKMbvgML71PHUj1ma/MsQQVlh9wo3WhwIjnsTefD8SgJR3oCtme620E+HWwHGCVsJNQf+TOHtowZRFWCqGQDRdmvmISMsqhIfobDvRkA3sp1VyMNK/Lz7lr7tZDk9Jh5ZomlzSmwdttKUe3hYLWxOQULJPJeJo+37r9zEPkXZTD7K9mjbUsvKaG2fgz+laD09mAsDK+MFxEieJqKfuUwg4MGS6TAXjKFriZ7Ao4J5YlleAHFEk1xOKXR6DYezLpo1/0srTvB/V0OJim2A== 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=T/wdbiaoeK04gk0F/GIsuk5jtWZuMabb5IPMuPLeNRY=; b=ISKg/43njNcml9TrzhIKNTRyVJFN5RLBG2VPqZNzIADv5ygbT2DS1qY+lKc5l+nAw4fyJZkqTb1ifebN49pnlAkSsve3nzsiFfGctgx5ScXmmBml2corilpMe/utW1jYQd3kejM2u7JkTklW3gkgb25waebK2FFGupGKgi4IrJJLsHm/1a7xFzC+3Ynmux8WCWfnESheHGb5sh6kua/c41gnvGQguGrg0sXdbIkgJKnXzTSguPm3YoezZnqklvsk7s7Ol9mnfETEkEIGRL13/UNVVIIw/7aPqAQF+uODZUaca0x7E6LIbPNMg3gsZyLaf25yepKmh+qTVGFEVGb+YA== 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 DUZPR04MB9919.eurprd04.prod.outlook.com (2603:10a6:10:4d9::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Tue, 3 Feb 2026 08:25:09 +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.9564.016; Tue, 3 Feb 2026 08:25:09 +0000 From: ming.qian@oss.nxp.com To: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, mirela.rabulea@oss.nxp.com Cc: nicolas@ndufresne.ca, 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, Frank.li@nxp.com, imx@lists.linux.dev, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 3/4] media: imx-jpeg: Add encoder ops layer for hardware abstraction Date: Tue, 3 Feb 2026 16:23:40 +0800 Message-ID: <20260203082349.1082-4-ming.qian@oss.nxp.com> X-Mailer: git-send-email 2.48.1.windows.1 In-Reply-To: <20260203082349.1082-1-ming.qian@oss.nxp.com> References: <20260203082349.1082-1-ming.qian@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0112.apcprd02.prod.outlook.com (2603:1096:4:92::28) To PAXPR04MB8254.eurprd04.prod.outlook.com (2603:10a6:102:1cd::24) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8254:EE_|DUZPR04MB9919:EE_ X-MS-Office365-Filtering-Correlation-Id: 5474ba77-a7c9-4789-5767-08de62fdbe62 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|19092799006|7416014|366016|1800799024|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?10NDXl+gS8tHhhaf+sxVSFFOjmdooH9pdzJpGgkNd2f4EmQuXzuYk3BNZzJe?= =?us-ascii?Q?/H7g7H4yOCDH933L1gebSyY0Cro+1s5qKlu/DrVuGbPHZOq+HCv+zb4B1wAc?= =?us-ascii?Q?89lAQ1DaTQF8hyiBjGgRcyfd0ndEOVS1q3eE5i3OGmuL+2XA9RRoSK/b4x4U?= =?us-ascii?Q?LB2csufz1knWjGmQOaKG/+LDXgU2np/zjnfM7CAenAvNtKjJxvcJbZLkubNn?= =?us-ascii?Q?RPgil3avlzyz00H618gYd83ekaUSY3U+tVtelWBy4aXlTaH/LMh9xxONMIXo?= =?us-ascii?Q?TTd7n7hRBpMeDf3VpWK7PMV75ptWeTEUMTU8Da26k22V71RmAai58RHi0JpV?= =?us-ascii?Q?Flr9s2O1ScK5rfJY5vPhfzXdrJ5sh+XWBwAMaJJSFhpqIKTBeugmlFDFhSKp?= =?us-ascii?Q?y3DivTWBHTIJyNHdESZkwi8zmG5QEmsL3NRbI5wBv/H665zgIkmJ4HqEQ9RT?= =?us-ascii?Q?MuP6o9jDIwWXqWQsAxIDaVj9b1UvAt5jkIYRmBvn84QaefJrz8GX2JC1M7oB?= =?us-ascii?Q?deQTvYNCsxb80FIZNcOl0gQJn/V/0h1Mutul0MUlgP0TtXj17a76epMtDo31?= =?us-ascii?Q?+pxRVKrJ7CNq0I3RS3xVUPgV2BlkA9Vcox6qCMYTjdsJ4BzmFZZfHoJTBbHj?= =?us-ascii?Q?Wc03Vmblii1hayppH+CLOUX7O7pIVcVw824/gmqxR8WK0DXdDq1/3BxTgTp6?= =?us-ascii?Q?8brInRKrw3nggYBtRV7v/Hq7hLOWOfd/vjMv/PBDsoi/FaZ+Yu8k/EjyJkMy?= =?us-ascii?Q?WMfxF/K0HYWy3e63AHk7YR6aGS0leudUNx9Snsc+xXBnO6bMQUEqX9yMv2Rz?= =?us-ascii?Q?jc1WyHkVwL5JoK0ZReXkieTtoqvCQ1T8eEts5RYzuSuSZwi7QZ3MFPT89bki?= =?us-ascii?Q?HUmvVC91vnat8Zyfa1Fkr0OrU83uWMlq9aWA068hVaEN6HnCyYp2gSM4NiHO?= =?us-ascii?Q?FqpN5fHVkodXSrANfmO0Dy1XtLNfHrSG7cOZCf9eurCcP9x5jNC50/ovc8um?= =?us-ascii?Q?XZVH+I1Lko5DP7QYFZPqV8S/EV13W5g1vanzq2LmKO+N3ScH1B6zmzoycqBx?= =?us-ascii?Q?PG77F+vT310iZ5GIKR5Gm9w6HV6nHy5+GKb14mI4FPSCoGsZ5l9MCFt06GXv?= =?us-ascii?Q?zNJpYiObVhOMOJyq+J1S6ZXoY2qaLmvg8S9Y1Fbp8JAounQz2G9lEbcBXVEO?= =?us-ascii?Q?kKR3pPO3T12xFzv+huFZOMPPahhJys5ZJ149eT3xkjNip4VljKI2ureRsxOw?= =?us-ascii?Q?V1FiKf6TnBVpn5Q61zz1B+r9dJlmZ0uJzFnKrmc9WaPzhup7Cck/C4yh4B30?= =?us-ascii?Q?9ppCxR2SFUKAXSDqsUf2gWm4Zyy8/7VURJltMg2d67/Cw9VkhZu8saaqgI3c?= =?us-ascii?Q?pq47ySEuDscA3wuEmiHRDcnILkj6CFwfRo1TOIAu/yxpe2JbPPfugAi+sDA/?= =?us-ascii?Q?XR2JcXO3HkXKjtvbAaPJmfFC6IurIkLX1z0QDO0Yl8aP5T6Vkee/YT7Mlgmg?= =?us-ascii?Q?zCJ4y3gteOPOs0sKkIruBhM8UKOrsCJ0gXBdMDM+cApoZiFFRbhkoYs/RMA4?= =?us-ascii?Q?3hiRXL0FRDkRpmgjiPKq8nAs4YScGAiuzcVlg9jnFniRj7o094TijZwh32RK?= =?us-ascii?Q?tXH5PbY50apwcfJeE6gJzX8=3D?= 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)(19092799006)(7416014)(366016)(1800799024)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?afs7+7PD75zHUWMy+v1nL0UdxX76mFRlKmdIc+lJhUqoyDbaWhXJSw+nQCfJ?= =?us-ascii?Q?hbesJ6asEScBsUAgxTqGnuw+Xfq5aA3dlmjOXpm5zvvKO7AYoD/nvg8ps6lQ?= =?us-ascii?Q?aC7mzLsr07i4sIJQo1Ew8qoHtcs488qE8huLG/yeQCZthjbdLE7jw1amh8im?= =?us-ascii?Q?ksA+HXUXqUb/zfOYgULP0DDUKjPdCkX2rlfAZOidGn6EpZsoRvNDC9SpGFD0?= =?us-ascii?Q?w3QvJR28hiaUuQTiEt+/T1S0gtfgeqf9dJnyKfBW8Kyicf9IS9ApTtuOzlUo?= =?us-ascii?Q?s5y0Fqidrqw8boPWTGQ+k/D9vV4JCkDiJa4gC6vs751oic9wVPNAUcL8okt5?= =?us-ascii?Q?c0LZlGLK1gBqsVQvN0IuTQgddEIbgGzqtnGFCC1Tph+Pv/bwNEe7+v6S9MUp?= =?us-ascii?Q?UPm02viFnM5VKcaHkK7XPS64eII9B2lB7Y6gdbbTAwrGM21Bpt0CDNKhVk+0?= =?us-ascii?Q?NWAl7gwPa2yebM+Wh+QufalTj8knDNAZXO61FpqliG054DpFAvXPrYyymvc2?= =?us-ascii?Q?XjUs2G4KybnF+4hkmM4bNYhoo3g8WMvWEg0Fki8Xop85zbNKP5WX+GEzP420?= =?us-ascii?Q?F95YKEgMd1uYKKUe6TXPUYK4jJ3g5FEZbpCrpqUOsZULTqB+4mkOI5G8ykVS?= =?us-ascii?Q?jMFpJ4/0tYx+X085vNJe3kGOs++CoPVQcsszm62jkaXimG4F3DpYw0/EMh2M?= =?us-ascii?Q?CHF+HTPIOUJPAicibyPKXqB1Lr8O02cVJxtWko6mvzgI9MMrObVb25x81AE9?= =?us-ascii?Q?AFGjjbzYLk/sjq9JmeUonQ77OyyZdtLjUVIwGSmV8VzJZzhzUKAh8zj1fN6M?= =?us-ascii?Q?N9e50ySqrnNaO4Qcr5BuD3RPyPE1L2JepZJ9W2cSbm4ODNMkkSCjfxbxijyX?= =?us-ascii?Q?o4osfjDhTGiKepuYa426bU0leKLaq3hx7CT5bgOObVfAd+oMTeUaQ0LElubM?= =?us-ascii?Q?w4rISOcDNPfPgemOdNHCprtiSIiVnbOz0olE8JYye8P6ZM2oMygVZe1t789M?= =?us-ascii?Q?w8dHSUG/cDABCzDdFd4umNsRCuC8fOPip/3kzVWYwPL+FvKF89cxa9yv81gU?= =?us-ascii?Q?aDY19V6M4bkj4A3Ze6PyIKiA20Tf2jKj5jFZuPJ50OoQlH6da9oKedMSg6Nr?= =?us-ascii?Q?5mBcjqRDpudWKcJwsuwAtCgm3bMhcY5rutRV1aaooPA3/QM5eToDzLwGmrMg?= =?us-ascii?Q?/kAhu3xq/uchnKAVyIWC2frrDHqh98bKxFbe29Of1Bl4Vke0JpAOiD/aUUcR?= =?us-ascii?Q?gfBJnY9uIwD+2uGhkfAg/hU6bJKinQoMydQ578hz97bynUet3ioQXe+RrLmo?= =?us-ascii?Q?hlpK1aSN5CZXDHlTq36Zj9M2/j93JxlfTdZaCdMQz1M5tvjgCsrDJP8QvDnZ?= =?us-ascii?Q?tKlrpKc09KGu3Q1wYghz76VIl95YYDndVYgEYFxXmGX2xwGc0RmqLUw6/vO9?= =?us-ascii?Q?TVoWdRxNDtFWs6rhx18/5RlnoGPmrZs9g/LnjLXQjb1QQiqpcuZGE2T3pkOC?= =?us-ascii?Q?Sic4etRNKh9yYQY1WcXC1YIsHJTRPRWadDFeYpOZ55cyPkQ+avWnF1tL6NzX?= =?us-ascii?Q?OSDy00ZjjxSeNuGmNQPHiiXlxAdDAFMguX5G3b6Am2HfF7wmGUTSa1CzWH0o?= =?us-ascii?Q?1gNiAOnKYiL3F3U0D+Fbat98KFz86r2tB5r8q7rxSOjq4LBLkVsRwre/0VK2?= =?us-ascii?Q?CAutsm3xeCW+sB1Evd2/CG0zK+lE2R7ZPvtRl8uxIEqk24xgqsO1DA9jlmvb?= =?us-ascii?Q?tCNNsN13fA=3D=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5474ba77-a7c9-4789-5767-08de62fdbe62 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8254.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 08:25:09.6610 (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: /CiL7JhZVwp+ZtGx4gD+/fzIgXLaxqe4OJyAZ4Mh4++oTnrKX0qZ1N6jN2XqTKNkkEqG1vVoLyXhKzIXcQ20ag== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DUZPR04MB9919 Content-Type: text/plain; charset="utf-8" From: Ming Qian Introduce mxc_jpeg_enc_ops function pointer structure to abstract encoder configuration differences between hardware versions. Extract the existing two-phase manual configuration into dedicated functions (enter_config_mode/exit_config_mode) for v0 hardware. Add setup_desc callback placeholder for future v1 hardware support which will use descriptor-based configuration. Store the extended sequential mode flag in the context to avoid recalculating it during configuration phases. No functional change. Reviewed-by: Frank Li Signed-off-by: Ming Qian --- .../media/platform/nxp/imx-jpeg/mxc-jpeg.c | 56 ++++++++++++++++--- .../media/platform/nxp/imx-jpeg/mxc-jpeg.h | 11 ++++ 2 files changed, 58 insertions(+), 9 deletions(-) diff --git a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c b/drivers/media= /platform/nxp/imx-jpeg/mxc-jpeg.c index 877e6c4f7406..c2e2c028b410 100644 --- a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c +++ b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c @@ -64,6 +64,12 @@ #include "mxc-jpeg-hw.h" #include "mxc-jpeg.h" =20 +#define call_void_jpeg_enc_ops(jpeg, op, args...) \ + do { \ + if ((jpeg)->enc_cfg_ops && (jpeg)->enc_cfg_ops->op) \ + (jpeg)->enc_cfg_ops->op(args); \ + } while (0) + static const struct mxc_jpeg_fmt mxc_formats[] =3D { { .name =3D "JPEG", @@ -1030,11 +1036,7 @@ static irqreturn_t mxc_jpeg_dec_irq(int irq, void *p= riv) =20 if (jpeg->mode =3D=3D MXC_JPEG_ENCODE && ctx->enc_state =3D=3D MXC_JPEG_ENC_CONF) { - q_data =3D mxc_jpeg_get_q_data(ctx, V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE); - ctx->enc_state =3D MXC_JPEG_ENCODING; - dev_dbg(dev, "Encoder config finished. Start encoding...\n"); - mxc_jpeg_enc_set_quality(dev, reg, ctx->jpeg_quality); - mxc_jpeg_enc_mode_go(dev, reg, mxc_jpeg_is_extended_sequential(q_data->f= mt)); + call_void_jpeg_enc_ops(jpeg, exit_config_mode, ctx); goto job_unlock; } if (jpeg->mode =3D=3D MXC_JPEG_DECODE && jpeg_src_buf->dht_needed && @@ -1272,6 +1274,7 @@ static void mxc_jpeg_config_dec_desc(struct vb2_buffe= r *out_buf, =20 jpeg_src_buf =3D vb2_to_mxc_buf(src_buf); =20 + ctx->extseq =3D mxc_jpeg_is_extended_sequential(jpeg_src_buf->fmt); /* setup the decoding descriptor */ desc->next_descpt_ptr =3D 0; /* end of chain */ q_data_cap =3D mxc_jpeg_get_q_data(ctx, cap_type); @@ -1335,8 +1338,12 @@ static void mxc_jpeg_config_enc_desc(struct vb2_buff= er *out_buf, struct mxc_jpeg_q_data *q_data; enum mxc_jpeg_image_format img_fmt; int w, h; + bool extseq; =20 q_data =3D mxc_jpeg_get_q_data(ctx, src_buf->vb2_queue->type); + extseq =3D mxc_jpeg_is_extended_sequential(q_data->fmt); + + ctx->extseq =3D extseq; =20 memset(desc, 0, sizeof(struct mxc_jpeg_desc)); memset(cfg_desc, 0, sizeof(struct mxc_jpeg_desc)); @@ -1369,11 +1376,14 @@ static void mxc_jpeg_config_enc_desc(struct vb2_buf= fer *out_buf, desc->stm_ctrl =3D STM_CTRL_CONFIG_MOD(0) | STM_CTRL_IMAGE_FORMAT(img_fmt); desc->stm_ctrl |=3D STM_CTRL_BITBUF_PTR_CLR(1); - if (mxc_jpeg_is_extended_sequential(q_data->fmt)) + if (extseq) desc->stm_ctrl |=3D STM_CTRL_PIXEL_PRECISION; else desc->stm_ctrl &=3D ~STM_CTRL_PIXEL_PRECISION; mxc_jpeg_addrs(desc, src_buf, dst_buf, 0); + + call_void_jpeg_enc_ops(jpeg, setup_desc, ctx); + dev_dbg(jpeg->dev, "cfg_desc:\n"); print_descriptor_info(jpeg->dev, cfg_desc); dev_dbg(jpeg->dev, "enc desc:\n"); @@ -1385,6 +1395,33 @@ static void mxc_jpeg_config_enc_desc(struct vb2_buff= er *out_buf, mxc_jpeg_set_desc(cfg_desc_handle, reg, slot); } =20 +static void mxc_jpeg_enc_start_config_manually(struct mxc_jpeg_ctx *ctx) +{ + struct mxc_jpeg_dev *jpeg =3D ctx->mxc_jpeg; + void __iomem *reg =3D jpeg->base_reg; + struct device *dev =3D jpeg->dev; + + ctx->enc_state =3D MXC_JPEG_ENC_CONF; + mxc_jpeg_enc_mode_conf(dev, reg, ctx->extseq); +} + +static void mxc_jpeg_enc_finish_config_manually(struct mxc_jpeg_ctx *ctx) +{ + struct mxc_jpeg_dev *jpeg =3D ctx->mxc_jpeg; + void __iomem *reg =3D jpeg->base_reg; + struct device *dev =3D jpeg->dev; + + ctx->enc_state =3D MXC_JPEG_ENCODING; + dev_dbg(dev, "Encoder config finished. Start encoding...\n"); + mxc_jpeg_enc_set_quality(dev, reg, ctx->jpeg_quality); + mxc_jpeg_enc_mode_go(dev, reg, ctx->extseq); +} + +static const struct mxc_jpeg_enc_ops mxc_jpeg_enc_cfg_ops_v0 =3D { + .enter_config_mode =3D mxc_jpeg_enc_start_config_manually, + .exit_config_mode =3D mxc_jpeg_enc_finish_config_manually +}; + static const struct mxc_jpeg_fmt *mxc_jpeg_get_sibling_format(const struct= mxc_jpeg_fmt *fmt) { int i; @@ -1590,12 +1627,10 @@ static void mxc_jpeg_device_run(void *priv) =20 if (jpeg->mode =3D=3D MXC_JPEG_ENCODE) { dev_dbg(dev, "Encoding on slot %d\n", ctx->slot); - ctx->enc_state =3D MXC_JPEG_ENC_CONF; mxc_jpeg_config_enc_desc(&dst_buf->vb2_buf, ctx, &src_buf->vb2_buf, &dst_buf->vb2_buf); /* start config phase */ - mxc_jpeg_enc_mode_conf(dev, reg, - mxc_jpeg_is_extended_sequential(q_data_out->fmt)); + call_void_jpeg_enc_ops(jpeg, enter_config_mode, ctx); } else { dev_dbg(dev, "Decoding on slot %d\n", ctx->slot); print_mxc_buf(jpeg, &src_buf->vb2_buf, 0); @@ -2977,6 +3012,9 @@ static int mxc_jpeg_probe(struct platform_device *pde= v) goto err_pm; } =20 + if (mode =3D=3D MXC_JPEG_ENCODE) + jpeg->enc_cfg_ops =3D &mxc_jpeg_enc_cfg_ops_v0; + return 0; =20 err_pm: diff --git a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h b/drivers/media= /platform/nxp/imx-jpeg/mxc-jpeg.h index 9c5b4f053ded..cdfefb68346a 100644 --- a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h +++ b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h @@ -105,6 +105,7 @@ struct mxc_jpeg_ctx { unsigned int source_change; bool need_initial_source_change_evt; bool header_parsed; + bool extseq; struct v4l2_ctrl_handler ctrl_handler; u8 jpeg_quality; struct delayed_work task_timer; @@ -125,6 +126,15 @@ struct mxc_jpeg_slot_data { dma_addr_t cfg_dec_daddr; }; =20 +struct mxc_jpeg_enc_ops { + /* Manual configuration (v0 hardware) - two-phase process */ + void (*enter_config_mode)(struct mxc_jpeg_ctx *ctx); + void (*exit_config_mode)(struct mxc_jpeg_ctx *ctx); + + /* Descriptor-based configuration (v1 hardware) - single-phase */ + void (*setup_desc)(struct mxc_jpeg_ctx *ctx); +}; + struct mxc_jpeg_dev { spinlock_t hw_lock; /* hardware access lock */ unsigned int mode; @@ -142,6 +152,7 @@ struct mxc_jpeg_dev { struct device **pd_dev; struct device_link **pd_link; struct gen_pool *sram_pool; + const struct mxc_jpeg_enc_ops *enc_cfg_ops; }; =20 /** --=20 2.52.0 From nobody Sat Feb 7 07:10:28 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013041.outbound.protection.outlook.com [52.101.72.41]) (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 7FCC9393DC8; Tue, 3 Feb 2026 08:25:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.41 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770107124; cv=fail; b=HxHbl1hnwf4Kab/fzzuSHTEX/f5qtakBAdWjyRttGL/sWY+ml0PMxO4xq07kcq1Vt9wW2CGerPRZ02ZiWs4xvrmXcB3uLHxp27sHJl+cJqbde5anoJOC+8cVNRIz1T0K9BDbendGWIAUG5QxF9rhKjfGMeCC9dsJ7ENZ9ehRf4o= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770107124; c=relaxed/simple; bh=a2+iRhKeUdcEiwWkvvyA84w+oNAuAaqpZp8H0eW9CAo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=b+1/Pd2e6CmdifsD4Z15+SotfsbPtZDIiXANVrG+3asxBoVN2Bi2S5+AY4q4wXHdC+IiDCT7lsFKRbusEMjBYgv810MdUeB8kuJ9s0lAxGLmpb3wZRvSa0CRWju9inkMxq/l7+eVRqf3Q761w+cA+xmJ/XMoJni53nqK5FlBhl4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=FtnaGp/1; arc=fail smtp.client-ip=52.101.72.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="FtnaGp/1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EEEW81t9PVvts0zUUiwuDYsjA8AVpSl5fTCOiFt35xebTQbLv1A5/Zzq19clw6SaxEpi0d1UYLW10BrdHDJdwxWK6CLaPqJfbTTlstmkGEduO/Pnl51TuTtyct3KT5YceU6coJP83bMu5Wj9qs+qPWYGA9FRx2Fzc0Av9ffdFTnKO7AnU8t2Cpg+CH/nCB/Gb+LO8yQD9EXBhxL1eXeIU4kLzoLuBdpF4PyswyQSMQSRbmqdN1T5vKCft+JWbi/zxBvsnwq8PK/hiMxF+3o14v+LN8gzAAez9/mUruXG9YaAh0fpzHWlQnp9PJci/NM8enRxTgztn8zvck09zXkG2Q== 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=jD+27UQ/alJpluHJg4yM9vm9JaVVyn7c0qvbcJsQgdM=; b=mVKii7v9pOgFxmkaYSHT/H3C1wfv71ungrgPTWVjYgT/esM8ASDQS0rRmZi/zOZ2e6hO+dvuvnN5GdomtQkR2iIP7mG5B0XVoEPWzpW0GNWqFbMyJfjCdRPGbFGAcbd3BjE08vUng+nG3Sr8APi7LNO1tPxEaUmHPanElDI8TpI41U9LoMPISPkZEypjxhY/HlB4GU6oxUvunNKdc4Ak8+fH168oR2eTYFjeT8LVbXoqpg4JSow35utnw+VuGkfj4hUnvnHANvBktGjiF1jQQ4WyERWnXNrbOOwabPA8VtyIg5U4HSLFhqBl5WyXYfWGadOADkcB1asrW5XeR9kEig== 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=jD+27UQ/alJpluHJg4yM9vm9JaVVyn7c0qvbcJsQgdM=; b=FtnaGp/1r4Qd2dV4kPnFlAIhuUElief/quafqOEEkUfEaCCXsP06/3sbIfUwLO30HLoloME3NJfAFtDry5btfpoBJNGz/fLiJb6s1vb8REdqk9D1iJs7z+0i7p7qJqZiZ4OeHe+EhT1SJc5l3kwmpepaH4hIwpNGyGCrIeETTxql8U9Hs9+w7QiHyKGYBYBsIlmLSagHbtVP/oDb4n05EPqsamJQ4H6Vfsp7VbWKPrX1wCRon6Y2J5QpCZEHlyz8qSGvSXQUDEizMhoT0DbqaX5LjNBSSpOXRj0LCdPu1oZ1AGRsWgOzkwVGW6IGXjCNo8BJxsGA7kk4yMfi4WzNdA== 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 DUZPR04MB9919.eurprd04.prod.outlook.com (2603:10a6:10:4d9::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Tue, 3 Feb 2026 08:25:15 +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.9564.016; Tue, 3 Feb 2026 08:25:15 +0000 From: ming.qian@oss.nxp.com To: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, mirela.rabulea@oss.nxp.com Cc: nicolas@ndufresne.ca, 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, Frank.li@nxp.com, imx@lists.linux.dev, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 4/4] media: imx-jpeg: Add support for encoder v1 descriptor configuration Date: Tue, 3 Feb 2026 16:23:41 +0800 Message-ID: <20260203082349.1082-5-ming.qian@oss.nxp.com> X-Mailer: git-send-email 2.48.1.windows.1 In-Reply-To: <20260203082349.1082-1-ming.qian@oss.nxp.com> References: <20260203082349.1082-1-ming.qian@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0112.apcprd02.prod.outlook.com (2603:1096:4:92::28) To PAXPR04MB8254.eurprd04.prod.outlook.com (2603:10a6:102:1cd::24) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8254:EE_|DUZPR04MB9919:EE_ X-MS-Office365-Filtering-Correlation-Id: 834c8fca-3ed3-4f59-c353-08de62fdc1d8 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|19092799006|7416014|366016|1800799024|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?RTmugrM1IdZTizyIOvMU4clVtkXIxqvzQXSJSLLfhK1x3xO4/JzaPjZaCyEM?= =?us-ascii?Q?ZLToWHNMefPPk/Oivy+hrR4ljNbVoX8/QNORMxqE38SP0HV6ie4W50lmIxuA?= =?us-ascii?Q?aM490drh5CqCF2MTsAMngJ4ddIPVOiOXegTJoxXwNCHj+ETtn+j76d3BLVD7?= =?us-ascii?Q?2CMbURREP+eAXdulbfIntcATJUxbpmXELPGXcsaTp8FwePkySJB6udlibNX4?= =?us-ascii?Q?pqrTdiIm/ijO6SHaofwaWu5ZhIlR/FJwtTF6sFkEeW+Bywfsnja+8C9+vgDp?= =?us-ascii?Q?I1mV7bd5BY6+kGhZOY3olXBBUm4LL0OX9bxvjhOII6JLVsJseEaiIrTyxgRc?= =?us-ascii?Q?CkpHuDyU6F82mx4SPVMZIiIZNCVf6ZP/gResZze0U0LdkO/aUGqtXXeBa/9d?= =?us-ascii?Q?YS97ngPZoDAgCTQ/pRudf0rTqT+oAysLS53MH9qqIOxzZqlW81aSwWU6OlWZ?= =?us-ascii?Q?rzCuEOi8blXn9hbjK7Gk5b5bnXnDBN9gtg5j3C9AZcA/NHQ4DU1q2bo/GDRg?= =?us-ascii?Q?OLA62vgJTnMDUueS1oyFav0h+U8piPguMIaoDDmemZdPoloVZV7U+3nwRbUn?= =?us-ascii?Q?CjF+4hD8U/BulP2ARWV0kJDRpC+/vhsFxGdfpLkHMvhLgBUwexSIOT2x8USg?= =?us-ascii?Q?lsgsVkOrO7VM0klb3SYvFQ4Vl3X/9xqZoox4I3M+ARGZR2dH6Av1vlrI9zKo?= =?us-ascii?Q?Enx5Vzht9QXLnAfid9LlF1AuyjWB8MDKIS+2ZWUNQdRNRAcfC6Ja9Uqff8cm?= =?us-ascii?Q?r33p5pvF30ExvaMm8sIRHJkS97r2s9s4JnHfKXoMfaeGaGuRG7bAJJvwQqN2?= =?us-ascii?Q?YwIl1aK+/vUxunGhMRT3ATRHzCYy7yTNPxBm9xBVvDTgs3zpjTPYo8Dq/oW9?= =?us-ascii?Q?oshad+J6oNjRvBHzibwV8HE3+6mjDDxSUkAhAQ9iM/NLdfZPyMCU94poZRQP?= =?us-ascii?Q?VHV60ULiSZBMzd6cPvfCYb+uqV4k+WwE3p24v265e6WbrYUPdPLdEfKtsFM9?= =?us-ascii?Q?2HssuVtlePf1XW+qxMHhi7Yek0aPijiw16qvMwsbkBX6CNir6HG8sf9UFxF0?= =?us-ascii?Q?XC+ScvEARWEv1qzC+cFLtv679xAWfwVGYKUlS4vW3kptX8G2cYt9aaptrcz/?= =?us-ascii?Q?9dr3XGLnQh0mzflqeGBfFyoN/HnQdEuuKVi3cqd9DtImae3RnWBd90odL2o/?= =?us-ascii?Q?OzgiyRYDEVahV9sDLcd6pgJ58lnB6uqPWD+IUbPHT4H5V5+/ZnBPbMCUukY8?= =?us-ascii?Q?tsJiASJJnWqlW1h9mXHv+xvutK630PKmyzcvnp6DrXYUKNKmUyLrc81rOAEG?= =?us-ascii?Q?JGvcz+JKQCY7a4LL89ujvUZndB/XaMHLSdd9OOIDR8PAsHXf14h0pnlw9Muj?= =?us-ascii?Q?O0npYLrR7L1/Zo1K2iV7MaSCOEeR/wJ2uLwG20NdiRs7gPdIOlJJ0vewl7SC?= =?us-ascii?Q?HYv8bOnkuTk8HnkIX+gGLYaYqpywueKZrqhJ3Zn3uggVLp3ftrOk5LK9QrIm?= =?us-ascii?Q?7DJdzQzF+zeoWlwz5dNyjKjfAGvk80k59soyY6M++Gz39I+t1NVaJ4w/Nq3E?= =?us-ascii?Q?v78XynFRD8IfXOi+YvAzNhl4tf2TK/QX03HtKGE/GUxMDRRaILnO/fd+PKx1?= =?us-ascii?Q?ZTjhav4wHPnL+/OlzM6yhvM=3D?= 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)(19092799006)(7416014)(366016)(1800799024)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?LhjAgAZ2tVtG4rlCfcs84pfHbbBY7+FW7NcV1lT/DVIvoI2Xi8pMw0QSLTjy?= =?us-ascii?Q?5/9je8DGdp9pmV3n/06lIfO7ZeiFsgxuZ9HiRmTkn5QcnDEi8YT53WX7HhKb?= =?us-ascii?Q?Y1uoPd0CooruZ2ghDPjvjt9Dbzao+Hg/wPXNloFFQh2dyzrP1xX0UG7kvxet?= =?us-ascii?Q?TT3drDqRT4tSNEvsP7IHlcYez0msGfrQbnI2brRBn+sUgceFXFx9qZ1Jc9Wg?= =?us-ascii?Q?uqbA9EQ84+INhfx7jyOAydvZmthGQIkxOeUeuhXb/Sb2M81PIHJi7Zrruu/a?= =?us-ascii?Q?w+ZG9BEb4c13sU9pp8FDwOR6UiLfrSQDuyEt+0DtNUk/3q/a3EX5R9ZtsS0f?= =?us-ascii?Q?ASWh5jVLXC8nSU7Y1i2UIhRr0pghe+JFUs/x+tLlEjtU6QJ91yS/eIPRd1VD?= =?us-ascii?Q?ft6K10O2/FjTm2UJ0IU5qhSgkm20CnfaI03mVtafJIOaBhWRgAyW19bfH03n?= =?us-ascii?Q?TdxI79cSuWczPl3Lfw6e8X0TCmujeKw0Uvs6xotbHze3G7skt62VFpIviNqN?= =?us-ascii?Q?jtU4aAt/1WwcjBKmxqjK6ksKlZ1FwbFZ9Ygor4WoY1KslOIRP4IQX/P+c/x/?= =?us-ascii?Q?cXo4Om/dthwhzne6X3iOIETixIKvHCb7ExbyGEhm4maREpuVg32ADHRIyl1C?= =?us-ascii?Q?PAP/w1sm6JOgwcUv4eP/RNeOeOIXZuEj4A+M9gt6sjktCg74xG567R+2lEZr?= =?us-ascii?Q?pVj8V31fxtJT/AjSPLKgHtvuzCIacWfVhD8n0qwIEHDJlGrK+X8S6+F1oqcD?= =?us-ascii?Q?NZnERzsA6ihp1BIwe3MIPoiueO3dWKyupjqlpE8e+71MTyz7212AMxz5BvXm?= =?us-ascii?Q?GvL0yA+SmWa0/lKRtwKoPVpnQ1B52asiIJBrP+VnuyR43vWNZWMHc6+GnnJE?= =?us-ascii?Q?JG8bE/zzW2wvp1tFlWX4CX/zj426KAEwrgwnRs3Zcp5TYeY4Ki4/KLP3ZdE0?= =?us-ascii?Q?ncnGnmpisfs7k5wUQPJ7Et07fT02oX8FqZaFBAN/3DPqHr3OlUKAAT2aWwBH?= =?us-ascii?Q?mUkCH5rUlgF0FxEmlLOOaGQN4vL0heO7ztx5wAhZgU0YS+ByGDuzt+7HpHzi?= =?us-ascii?Q?waC84QhSpnnbgaLGc6hwHwesS8yWAwrMClkQ7xBoNC29pS4pSi/p2uwUc5k5?= =?us-ascii?Q?yEY4nI4LrcZKIUQMlAiQTypQDNKcDEkFMRYijx7OBTH4w6cj1vEK80lw8bTP?= =?us-ascii?Q?u2lKANxfJhlZ+11cF4ALZ5JzcJFzuNGwinb82yfAN95/4q4MsGTRO43x12Nk?= =?us-ascii?Q?4rQ4TqaR3h0gcZd9Z0X36a3cuSIwHmzA/YMCjjTeCReu6UEp3TX8Ht0n4fOz?= =?us-ascii?Q?cNrGLLoURdeAYRnlIiMJY51TRW8MdmIlulCk2Y5JJuBitou99mNSm88p5QqU?= =?us-ascii?Q?shYxwHrPjMzA4DeBPy/0OVEANOfiBkckP2yrQPQpOnlUEWcDh0CdYEeCe1bO?= =?us-ascii?Q?W56W7SvF3NYmKRxkqbeyTY60lshjHknLKmymtlUq8d0Ntka/aK0P7h8rACpS?= =?us-ascii?Q?fMFnAChgcwLPj4zgsYDVQpbjTnLEz5DGcuTHKdTbDhDuBusMZcSpjnK1MXtb?= =?us-ascii?Q?Bgt9G8dJ2LRjn8b66892oQQS8WcQY2If9wd9voFjV2Vfs/mpuT5aRbqeBIhH?= =?us-ascii?Q?p4CVbQ+Ld1CgS63W27cd1Kga4PYe6fwPEheVxGaQqDo+ZkSlTG42TaxrogXR?= =?us-ascii?Q?t2uaYwG7iHuGfVbtBDVziEKymPUR5EH8F2xiIHVOIOfy5NEoWFVRZflqWlN7?= =?us-ascii?Q?tAlLZlIGQA=3D=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 834c8fca-3ed3-4f59-c353-08de62fdc1d8 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8254.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 08:25:15.6076 (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: H83Mra+VL9j5dFbmfn27UOk8kCRktfDwQT7DiA01fVxseccRdvgwJFFDfW83Qb3eZqX+RQQ2Osk030a8gp17bg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DUZPR04MB9919 Content-Type: text/plain; charset="utf-8" From: Ming Qian Support the upgraded JPEG encoder v1 found on i.MX952 SoC. Detect the encoder hardware version via the version register. The v1 encoder uses an expanded descriptor format that allows all encoding parameters, including JPEG quality, to be configured directly in the descriptor. This removes the manual register-based configuration step required by v0 and reduces the interrupt count from two to one per frame. V0 encoding flow: 1. Write quality to registers -> trigger config interrupt 2. Start encoding -> trigger completion interrupt V1 encoding flow: 1. Configure descriptor with all parameters including quality 2. Start encoding -> trigger completion interrupt Reviewed-by: Frank Li Signed-off-by: Ming Qian --- .../media/platform/nxp/imx-jpeg/mxc-jpeg-hw.h | 1 + .../media/platform/nxp/imx-jpeg/mxc-jpeg.c | 43 ++++++++++++++++++- .../media/platform/nxp/imx-jpeg/mxc-jpeg.h | 11 +++++ 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.h b/drivers/me= dia/platform/nxp/imx-jpeg/mxc-jpeg-hw.h index adb93e977be9..0d78443cb270 100644 --- a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.h +++ b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.h @@ -73,6 +73,7 @@ #define GLB_CTRL_DEC_GO (0x1 << 2) #define GLB_CTRL_L_ENDIAN(le) ((le) << 3) #define GLB_CTRL_SLOT_EN(slot) (0x1 << ((slot) + 4)) +#define GLB_CTRL_CUR_VERSION(r) FIELD_GET(GENMASK_U32(19, 16), r) =20 /* COM_STAUS fields */ #define COM_STATUS_DEC_ONGOING(r) (((r) & (1 << 31)) >> 31) diff --git a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c b/drivers/media= /platform/nxp/imx-jpeg/mxc-jpeg.c index c2e2c028b410..5723ae677153 100644 --- a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c +++ b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c @@ -1417,11 +1417,32 @@ static void mxc_jpeg_enc_finish_config_manually(str= uct mxc_jpeg_ctx *ctx) mxc_jpeg_enc_mode_go(dev, reg, ctx->extseq); } =20 +static void mxc_jpeg_enc_configure_desc(struct mxc_jpeg_ctx *ctx) +{ + struct mxc_jpeg_dev *jpeg =3D ctx->mxc_jpeg; + struct mxc_jpeg_desc *desc =3D jpeg->slot_data.desc; + struct mxc_jpeg_desc *cfg_desc =3D jpeg->slot_data.cfg_desc; + + ctx->enc_state =3D MXC_JPEG_ENCODING; + cfg_desc->mode =3D (ctx->extseq) ? 0xb0 : 0xa0; + cfg_desc->cfg_mode =3D 0x3ff; + + desc->mode =3D (ctx->extseq) ? 0x150 : 0x140; + desc->cfg_mode =3D 0x3ff; + desc->quality =3D ctx->jpeg_quality; + desc->lumth =3D 0xffff; + desc->chrth =3D 0xffff; +} + static const struct mxc_jpeg_enc_ops mxc_jpeg_enc_cfg_ops_v0 =3D { .enter_config_mode =3D mxc_jpeg_enc_start_config_manually, .exit_config_mode =3D mxc_jpeg_enc_finish_config_manually }; =20 +static const struct mxc_jpeg_enc_ops mxc_jpeg_enc_cfg_ops_v1 =3D { + .setup_desc =3D mxc_jpeg_enc_configure_desc +}; + static const struct mxc_jpeg_fmt *mxc_jpeg_get_sibling_format(const struct= mxc_jpeg_fmt *fmt) { int i; @@ -2874,6 +2895,14 @@ static int mxc_jpeg_attach_pm_domains(struct mxc_jpe= g_dev *jpeg) return ret; } =20 +static int mxc_jpeg_get_version(void __iomem *reg) +{ + u32 regval; + + regval =3D readl(reg + GLB_CTRL); + return GLB_CTRL_CUR_VERSION(regval); +} + static int mxc_jpeg_probe(struct platform_device *pdev) { struct mxc_jpeg_dev *jpeg; @@ -3012,8 +3041,18 @@ static int mxc_jpeg_probe(struct platform_device *pd= ev) goto err_pm; } =20 - if (mode =3D=3D MXC_JPEG_ENCODE) - jpeg->enc_cfg_ops =3D &mxc_jpeg_enc_cfg_ops_v0; + if (mode =3D=3D MXC_JPEG_ENCODE) { + ret =3D pm_runtime_resume_and_get(dev); + if (ret < 0) + goto err_pm; + + if (mxc_jpeg_get_version(jpeg->base_reg) =3D=3D 0) + jpeg->enc_cfg_ops =3D &mxc_jpeg_enc_cfg_ops_v0; + else + jpeg->enc_cfg_ops =3D &mxc_jpeg_enc_cfg_ops_v1; + + pm_runtime_put_sync(dev); + } =20 return 0; =20 diff --git a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h b/drivers/media= /platform/nxp/imx-jpeg/mxc-jpeg.h index cdfefb68346a..c00c13549746 100644 --- a/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h +++ b/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h @@ -81,6 +81,17 @@ struct mxc_jpeg_desc { u32 stm_bufsize; u32 imgsize; u32 stm_ctrl; + /* below parameters are valid for v1 */ + u32 mode; + u32 cfg_mode; + u32 quality; + u32 rc_regs_sel; + u32 lumth; + u32 chrth; + u32 nomfrsize_lo; + u32 nomfrsize_hi; + u32 ofbsize_lo; + u32 ofbsize_hi; } __packed; =20 struct mxc_jpeg_q_data { --=20 2.52.0