From nobody Fri Dec 19 16:21:31 2025 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011062.outbound.protection.outlook.com [40.107.130.62]) (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 DA3EE2571B0; Fri, 5 Dec 2025 01:55:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.62 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764899736; cv=fail; b=oExBmXP+CU0c8dorMhyBefQ4QM9X/L9LsCPjmO1kX6L/Ss01OPiR9WqfG3Pv0u83fC/mdj49wql+Fqdqkph4j1fKwr8Pqrn7TAF10kfEN/qNtQIb5zD40hemicNfns2zaLnX/o9FlEowdlHLageLd8nUEXUvvG1TZc6C1foocho= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764899736; c=relaxed/simple; bh=w3AkcZSJPuXcZGgrXJyzaOIcsnoE+vyLI4LmeQqh8ns=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=BGpCPvCoMQ6eQuPO26HGJadpqsQb4ky5kJ4OlfTI4MlMf3rm+8C9nOGZiuSL5yqifZ2yOPqmqykKMjFMqo1DWzY2l/9bvFmtxkUt4YklsGQtUtN34CYCRfm7apvIlYVvmQlqxO7/osqSZbr3KWRTOlZbnpS0yO2qDCE8wq6l8oc= 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=voWeLl+1; arc=fail smtp.client-ip=40.107.130.62 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="voWeLl+1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AdQ9WCZiFsS+ySRmsfVQzAGHtMv8vg6n4rbhvMSGqNiMeSledHwvnOodZSKxyvCpB+/IQyvAZw3uYnC4IUWHf7tntLVTZs2qNGG92BPZ/bgPfxclBstbRzRMVB8+egglbepJIYENonCOiup/RWJKkgN23+xVN1dUDj/Q6WVPur6D2ik+sXW+S50xsXWlwwWR5wnN/iNLjb4oPxGLRq0q/vVPxGMX5lz9TlZQ9t2q9O3vH3rLsCofnd3lgy2uJi+ocFUX03OA+97XlvEAOavIkcUmkYJWJq57dLo9ZfIFTh1oZnp/Qt+O263ERb4ctAkMK+XZ1UFqBKyyUBciUbPQdg== 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=hpJ6YoIy1/rKrWs/TQywX/W8WuYbpz0EIXfqvy8ec1w=; b=muyd33eJUT8ucPBSxRfMICBtvGMNwX6srSSfo6OTNZI+gKhhYuu01FYVmwHMZ8l238BKt7EG6TlJSe1Frm3bX6o7MfhkR1tx1huNoM8XH/SENvCTWc94oj4wN7NEETF+3kIKO00w5ieTQ0QS3dEemJ6hqO/ikwycU9EInYBEs3ZBQK16wp4v2dj+KgpoERvxuJkVjV+peUyMNVUJi/juN+rww1K85NrWzT/amxy9YqEhMfNwmk4XOJ9yxr7aEHYskzd2aN69H3xEt0NYFJcK0+SHA+5s0285nU7yNI0QuQVKGSdLTrRzaz2HACIRG182BovkLr6qkbYsbONVL85Ftw== 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=hpJ6YoIy1/rKrWs/TQywX/W8WuYbpz0EIXfqvy8ec1w=; b=voWeLl+1BWI3jjqrVK5rdhx9HBX8UAb+yo3EZehvB8LaEl29LLYLiPjxp6+GuSFF/BAysNi1BbWPnojjG2D07mhN6Vaie4a1lkPsr5YZ06eWqRd3vfhGK4wM2MjI/S20ysp3yzPxfMR5ZPvwKE5NhR3PFxwmthiX4AEJ56yI4n8pgso4nd1dNnVd7kYvh9f63BzqQvkMA5i1x1Lh6PPETFFdU5khCu3cwxJV+wzQSq/uPXm96Z/SW2dbqDrFylWubY0gMmu3/BawOJWOcDW54KzT4kWCbIgeR+a10qtZ1U/iygSwTb2n/vZRLfdABoQk69sVqtGu+uS7tZ5RToZcSQ== 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 DB9PR04MB8313.eurprd04.prod.outlook.com (2603:10a6:10:241::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Fri, 5 Dec 2025 01:55:25 +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.9388.003; Fri, 5 Dec 2025 01:55:25 +0000 From: ming.qian@oss.nxp.com To: linux-media@vger.kernel.org Cc: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, nicolas@ndufresne.ca, benjamin.gaignard@collabora.com, p.zabel@pengutronix.de, sebastian.fricke@collabora.com, shawnguo@kernel.org, ulf.hansson@linaro.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, l.stach@pengutronix.de, Frank.li@nxp.com, peng.fan@nxp.com, eagle.zhou@nxp.com, imx@lists.linux.dev, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 1/3] media: v4l2-mem2mem: Add a kref to the v4l2_m2m_dev structure Date: Fri, 5 Dec 2025 09:54:24 +0800 Message-ID: <20251205015428.643-2-ming.qian@oss.nxp.com> X-Mailer: git-send-email 2.48.1.windows.1 In-Reply-To: <20251205015428.643-1-ming.qian@oss.nxp.com> References: <20251205015428.643-1-ming.qian@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR02CA0051.apcprd02.prod.outlook.com (2603:1096:4:196::10) 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_|DB9PR04MB8313:EE_ X-MS-Office365-Filtering-Correlation-Id: 95512183-fba9-47ac-841e-08de33a15ba4 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|1800799024|366016|376014|52116014|7416014|19092799006|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?pU7evh7ats4HNiKpujPYLJG23bz6VD8I9t8j5UqWsTn5lt+C1wKTBrQQo8fz?= =?us-ascii?Q?F2RrqHkPWrta/GoaZ5VtZTqKDY6EmYIY67EQSS5b2SLqAcwytgDvpst1xEvz?= =?us-ascii?Q?Na9NLxZppnoM/Z3WYxvc7DtD2DaY+G7bMR3lzdb0klSsE3ml2w7PCR9P62Jg?= =?us-ascii?Q?9IJa5Bn3hwlFFzGDm+kKtsYJLmTjO0S2wVVXyWWrkbFc0cVdpG40XC1ElevG?= =?us-ascii?Q?UP2g/GaiQX/ynUJSFRWBPFzqzc2MxhhVd89A+zx6rQI+qhLe7LXIyte/wyNJ?= =?us-ascii?Q?LFv4QaBIs+JywL58wijEQbLp1xU9o4M16owzhzOjPbGopiOQKCKnAnDiqnVi?= =?us-ascii?Q?fGE+78U/7KcdJ4dKLBrySGKqxkVytY1/AIWrAwEkMUDXQdvGl8DiOHJYO33n?= =?us-ascii?Q?rdF6iQ9ZY6YOFkIJLcI5LLhvIzCTl4DCWXL1CydZfPqTkQX6wIEoZcEa3MVU?= =?us-ascii?Q?UpCNfCxcu9pXDbgPw0AKjNr2e8Oz83XFIIqKgm3QA9N753C9kMZpH+7RUX4y?= =?us-ascii?Q?QSxp9nhzGx2Hh304UbeI8d4SIJABPgj0ngqTWajWqiZC3cEWFvuqrY7s+J1E?= =?us-ascii?Q?jii37UYFdcl2vqChS2KiJPEhDWBNuPfe0aT/SMUK85gnAa9mFBOOjj4PShza?= =?us-ascii?Q?UNTCUhY+OMGiiW+L1kfC+NPGvcEcQS5SQnG2OF3VBSQp6zFEGRKSsEWL1T1o?= =?us-ascii?Q?imCMvzhJEcO2ENNT7HGa+ZsMYEYF/UZl7i3Fikp4IIgLhd1epi1sxkLMTg36?= =?us-ascii?Q?Yif368v1mFndQafcRsch+i2rxbsUvn6J3XbKpKQ7IBKB37/5HFYf2POfSfmX?= =?us-ascii?Q?Ro4wCmSYO8LLuviF+ebQ2DbysZ8pVZrj2/PWfYvjDY+ye9C9QX7yXY6fI4an?= =?us-ascii?Q?KBbRHUam2IXXLfkR8fDULn+jbCRzNqew7WnCFb7YBSl4S3hALvGFntkmkhhV?= =?us-ascii?Q?fsmj1xf0rqlhXBW5lFTm4Et+BMCS25Ni2ihfVRxuFXW25wHJJoQoVE20t9nP?= =?us-ascii?Q?Fss5lnGQKTGmVDGWGH/z+qV15t1ZbIkytaeLWKgW88kzkmro2CYvdM/II74x?= =?us-ascii?Q?kvZ6k2BxjCnVUa/awJMw3AUQoHBLXXXyiy9qrKgK4q71j9tS1eI8ftN82KwC?= =?us-ascii?Q?7enaXaeOx0SSMZdEXBt1asj3kY4YYvMKuqOFyNoniZWq7npFYl3cKdCljku8?= =?us-ascii?Q?a9T67pXDJ7g75d4DUjZPSiNMj72sXrbUdJRrqVF426qKgzoYh0uHCqubM1Nz?= =?us-ascii?Q?fYSqJ13pG9XkGtNyuiqGKMBJWIJ5DugP719RQYhXj2mNQ+liwOoxCer6HuNe?= =?us-ascii?Q?Pc86AS1I7ubBO1Lyg/NZOXizDC9C9z8VoR6G/GkZIOc/7vSByUI6FF6JIbyJ?= =?us-ascii?Q?eLD4UBYtClYWkyojoK9iaeR2IUP/zgH5IS1qU/RWO+ipB8Hf8nkDCv3x2e6H?= =?us-ascii?Q?8q2iJmWXBd6hHv+K7mTiIL0ZVFUJId99IDZV27f9SV+5CvsQE1om8TtYlJ+j?= =?us-ascii?Q?z85IKYK3ASQqlz7gtAn615BrB6dTRJwN4nJE?= 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)(1800799024)(366016)(376014)(52116014)(7416014)(19092799006)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?DdXJLT1/OlOkKPsod6HvTCX+6t2ypgSUObgj2W01wKC33jJNSirgWQwPiC6H?= =?us-ascii?Q?cAiCH9wtW7ghjbBenTu7UaWg+frLK0OyK8SgDRfbz8xR1q8BgO8+J1pYx9b3?= =?us-ascii?Q?16X0SAeb9aIcwXGGKeTqCjbGXj1lu535BaLew/Ikk0DxQL2TrZrmyIn6otuV?= =?us-ascii?Q?gvM10mfy335OfeBzw+K399yQ6TjJKW7qx/21LgZr14WAJU6CkgKKLR9qtDZL?= =?us-ascii?Q?Hs3QJLTVJZvHgI4lD/H8QAAJMtbaDUgsVWTPmnt5vx5HO7NpBi1cPDEn1nw0?= =?us-ascii?Q?Nap6SzMy3b5cmAuRswRyXOtCeJSiKqu9sUYZJTA27xr2c9Immp3L7y23Suaz?= =?us-ascii?Q?aarYlGYtFtXxta4MkvzlwP2nWVBwImpEJl7tMDaNaR+owJvtube0+dJ+Dvjl?= =?us-ascii?Q?kc/1/75ORaSxs13vIzyBcmvWvG2+DPCKqjo/RxHke49gwFdUj9kMOQKeWUQB?= =?us-ascii?Q?Ro/II8fJIjY3zbZfo3hgwEwceAp5nxAhWkn6Ljhgepyu1d1EOTF9JhwX7tNJ?= =?us-ascii?Q?hZsKXhddrX7u9f3Q/KVAK8mCaUtIUezAPyk6rIy1pO1eEjgoSgqTo1zmy3F7?= =?us-ascii?Q?R32DpHgxFCuEHhdSdU0TexX7U8jYk41B7OuAAhPyuVpxCiuxgpJ7AcKPtuTC?= =?us-ascii?Q?9jOkTHD3YUW1+5w/NddHCAm6Gu5gLbU9csYYV7oBxmVpQ0Qro1t8iMA9SW4h?= =?us-ascii?Q?UHSutn4v+aqRiJ7PH5D5gOj+8r9CjBZgN9e/gFBmDgnUQXuwEsHW3SmvK5/Q?= =?us-ascii?Q?u50dXk7E6f3kuU/O6UJdmu4ErEEp6hkuOeSyv3LO/Thdsu4Mye3yqxtxPxiP?= =?us-ascii?Q?HFko4KyLhPRWzQxcZe+RoOCvjcU+S8O8E7ELIQJlXJD1EAeS+v0jeCFT+2nq?= =?us-ascii?Q?+WGXCQtJa/jOG43ehphE4hu3wJbUT0YKLL0yPWP5Ac61uNnS12GJMVAzM6MI?= =?us-ascii?Q?6Yy0gHhROeCetg1DMflqsRSR+kFS5hg5CNQBlWtLN/MXKdEBXozHkBhT8q1D?= =?us-ascii?Q?MfCDVIYuosEylM9B8Vlss2cENgQ0Z7wLiOgjEQlOIFGuibV4R+wDnSF0CewL?= =?us-ascii?Q?j1c48sG6TakxM5f8f8w8mdBPhYVRzMrsK3DvLVlRbfdSvL9AnRdQpq4jlQ7a?= =?us-ascii?Q?n+WHF/7JKZhRPvsP5CUJeJcwLXFB5YNdUPJZV7ByxiAOiFOxiuJvWNZv6pT3?= =?us-ascii?Q?CuSj2OQxAXi2ZrrpwxHEsgsordmsbzNNcMSPLrk/U2NjEWLbso94quTyhWYS?= =?us-ascii?Q?SwueP0J6oURG5HcSygVdDqAs40YDrc0+2uVTKSJddWH80b4M9MplcB4V7jXb?= =?us-ascii?Q?hRbuxDV4hJBzGrL0waOeREIC5vMhTMv+OrqXhSyvvJJkPPwuGLQWfDb2uI56?= =?us-ascii?Q?sVX3F1KsQh5EthiNZl/MOwaAk0eTyYQmn8U4L22VhKQZpwsLzufiNLav+s7R?= =?us-ascii?Q?D1vHTU0rtyDdlXEGXu8ADCJI66iQpUzkQ0QXt9PJgHlk8U9hYJb6+3CHiC2U?= =?us-ascii?Q?vy79Qrjk5tPWbPZqkzFJmpz85Yv83FY5av5josaJf+ebovdgs9mWKJSWNsLq?= =?us-ascii?Q?t78w9G4/3WiDM2GPTp91kzAsyHt+3N9As/CJ8C9E?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 95512183-fba9-47ac-841e-08de33a15ba4 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8254.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 01:55:25.6571 (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: 5yaPyV0j6gFLsfKuexoH2Ho6SytVG4bEceRxSRXfdCWMw0PZBQnMXY7lccQslkiFGcwGpMs+Z6GBdpqvcsqEeA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8313 Content-Type: text/plain; charset="utf-8" From: Nicolas Dufresne Adding a reference count to the v4l2_m2m_dev structure allow safely sharing it across multiple hardware nodes. This can be used to prevent running jobs concurrently on m2m cores that have some internal resource sharing. Signed-off-by: Nicolas Dufresne Signed-off-by: Ming Qian Reviewed-by: Frank Li --- v4 - Add my Signed-off-by drivers/media/v4l2-core/v4l2-mem2mem.c | 23 +++++++++++++++++++++++ include/media/v4l2-mem2mem.h | 21 +++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-co= re/v4l2-mem2mem.c index fec93c1a9231..ae0de54d4c3e 100644 --- a/drivers/media/v4l2-core/v4l2-mem2mem.c +++ b/drivers/media/v4l2-core/v4l2-mem2mem.c @@ -90,6 +90,7 @@ static const char * const m2m_entity_name[] =3D { * @job_work: worker to run queued jobs. * @job_queue_flags: flags of the queue status, %QUEUE_PAUSED. * @m2m_ops: driver callbacks + * @kref: device reference count */ struct v4l2_m2m_dev { struct v4l2_m2m_ctx *curr_ctx; @@ -109,6 +110,8 @@ struct v4l2_m2m_dev { unsigned long job_queue_flags; =20 const struct v4l2_m2m_ops *m2m_ops; + + struct kref kref; }; =20 static struct v4l2_m2m_queue_ctx *get_queue_ctx(struct v4l2_m2m_ctx *m2m_c= tx, @@ -1200,6 +1203,7 @@ struct v4l2_m2m_dev *v4l2_m2m_init(const struct v4l2_= m2m_ops *m2m_ops) INIT_LIST_HEAD(&m2m_dev->job_queue); spin_lock_init(&m2m_dev->job_spinlock); INIT_WORK(&m2m_dev->job_work, v4l2_m2m_device_run_work); + kref_init(&m2m_dev->kref); =20 return m2m_dev; } @@ -1211,6 +1215,25 @@ void v4l2_m2m_release(struct v4l2_m2m_dev *m2m_dev) } EXPORT_SYMBOL_GPL(v4l2_m2m_release); =20 +void v4l2_m2m_get(struct v4l2_m2m_dev *m2m_dev) +{ + kref_get(&m2m_dev->kref); +} +EXPORT_SYMBOL_GPL(v4l2_m2m_get); + +static void v4l2_m2m_release_from_kref(struct kref *kref) +{ + struct v4l2_m2m_dev *m2m_dev =3D container_of(kref, struct v4l2_m2m_dev, = kref); + + v4l2_m2m_release(m2m_dev); +} + +void v4l2_m2m_put(struct v4l2_m2m_dev *m2m_dev) +{ + kref_put(&m2m_dev->kref, v4l2_m2m_release_from_kref); +} +EXPORT_SYMBOL_GPL(v4l2_m2m_put); + struct v4l2_m2m_ctx *v4l2_m2m_ctx_init(struct v4l2_m2m_dev *m2m_dev, void *drv_priv, int (*queue_init)(void *priv, struct vb2_queue *src_vq, struct vb2_queue= *dst_vq)) diff --git a/include/media/v4l2-mem2mem.h b/include/media/v4l2-mem2mem.h index bf6a09a04dcf..ca295c660c7f 100644 --- a/include/media/v4l2-mem2mem.h +++ b/include/media/v4l2-mem2mem.h @@ -547,6 +547,27 @@ v4l2_m2m_register_media_controller(struct v4l2_m2m_dev= *m2m_dev, */ void v4l2_m2m_release(struct v4l2_m2m_dev *m2m_dev); =20 +/** + * v4l2_m2m_get() - take a reference to the m2m_dev structure + * + * @m2m_dev: opaque pointer to the internal data to handle M2M context + * + * This is used to share the M2M device across multiple devices. This + * can be used to avoid scheduling two hardware nodes concurrently. + */ +void v4l2_m2m_get(struct v4l2_m2m_dev *m2m_dev); + +/** + * v4l2_m2m_put() - remove a reference to the m2m_dev structure + * + * @m2m_dev: opaque pointer to the internal data to handle M2M context + * + * Once the M2M device have no more references, v4l2_m2m_realse() will be + * called automatically. Users of this method should never call + * v4l2_m2m_release() directly. See v4l2_m2m_get() for more details. + */ +void v4l2_m2m_put(struct v4l2_m2m_dev *m2m_dev); + /** * v4l2_m2m_ctx_init() - allocate and initialize a m2m context * --=20 2.52.0 From nobody Fri Dec 19 16:21:31 2025 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011062.outbound.protection.outlook.com [40.107.130.62]) (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 6EB6825CC7A; Fri, 5 Dec 2025 01:55:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.62 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764899743; cv=fail; b=UDdEi+DvQPZucoNTmUV8sqxzt30UcCqm4VFdKa2pDDBAJoTZwtakOZDEHHWlEzstambtNi/bRL9jOAQSZtp2jhTi92+aRv8rq3jCZMRcq3YBRl3tMtadixdHJmltW9BfJtIKniv5EhxvdXPZyVgNVFrnMCVUEUEonGugN1qgFTo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764899743; c=relaxed/simple; bh=FUte49axEV3Dht5QLyO1p75wKwx06GvNDLFKxNZUjDU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ZXwWx9fE/TiGWyC4wFwoxsNklyqRXqeO96GT6PWwAYwPhiJ5GFb+D/QZh6ooPG6XqLaDDj6xHjm5aMPXaNuIFCGE61bgKk3x17JEO16jo56TESUp5aWRQC+raLQ1Zp5D7UODJU3TOr/A3UddrlVVmuCowVt4xNFMeXx8xddQmAU= 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=V6VYtpR2; arc=fail smtp.client-ip=40.107.130.62 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="V6VYtpR2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sapDWQTDUbIPT1UV/UpUfYSmrySTGfkUUfeSinpqdmhbGn5conipkbgmvRB/Wgr74mxNoJ008ZlpW0UQgV/CDeWOfQHS/kbl84FZpaPyvCtrojBGr+g/YOVbXXMGT4Bul/PIowIene8+SrU8d8mw1XGmjsMrvRSGiJg4h3lS3pwVYRhlrIW73ZM2iz4mO2F6xYGXOP8RKxSXs9c/oQWrksiUy6YYehQ9I5/L2Rn3sX7QRNLuGb4uUcrgIaJPEuZb10xbgegOs7FAi4bw7aijO/mYcMtoDKhph5Y15N1S17vBAPU0uDXY7g14cq4rmHlecCfpJCu2XJoWioEJhvwTdA== 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=SiN8JFh+z4ieke1hYTeVdAJEv13CZxw/IrpZ/ZUyt1w=; b=teLDLfH/92E0aI38XZDbfl3DLr4ZOZlczD4H5+vdnoD4aDX/efh8bLBggDroZiLrZPbQMfc3Px4iF4sxZJdkkhJ39pdr5iOGTE1b66BInvxs7W/2W+4AG4qpmrBi3bZ6th6YlaCL9qsJF4OMgXVH5BXY/tZkOJVokPIuspIDj17G3KGOUFBN7HjjtMooP6Kz+wzmDV++5GSDg9ngaGwkdfUJ4SBIVAVXVmhHA37tX1rdob5GTcYxwLc+S/2i9crq0j0w3SJXbsPA04jFbVFQIQ96njy/9OWvOBRxsGXYT3d4UuUb4D1QA2QKg4TF988BVRTTkafrWFzpQPCJCwLACQ== 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=SiN8JFh+z4ieke1hYTeVdAJEv13CZxw/IrpZ/ZUyt1w=; b=V6VYtpR2g3t5jFQzEFlkh2sXoQ+vUOFtw3evwkaOzhF8P+3FBSHaor7YnqAx16fib+qRsI5DgYpxPqqbcTVdjGU94Si55b67Tr8Fis7+mWTGEgI1x7gMvPU/XWpSBgGWmy74iR1yWWuWzqP+nKe0Ksi1qiKoR5xZkJ8ovJvG5kRHbyIHndFfWkHxT4ZeKvWB3DyKkUI9zzCKztyZkcIHFP9RXGqMJ6ko/BTvgfJvGNTjG7R/VUzrhxXv3awDAFi/1gLTyYK+qs4QiQS4ZM87VOg43s7vIwYxrNSBs6lBm36SXP7EYLQAgznpyb+xujcl1fBYf0s6N1udANiWfZ6Z9A== 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 DB9PR04MB8313.eurprd04.prod.outlook.com (2603:10a6:10:241::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Fri, 5 Dec 2025 01:55:32 +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.9388.003; Fri, 5 Dec 2025 01:55:32 +0000 From: ming.qian@oss.nxp.com To: linux-media@vger.kernel.org Cc: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, nicolas@ndufresne.ca, benjamin.gaignard@collabora.com, p.zabel@pengutronix.de, sebastian.fricke@collabora.com, shawnguo@kernel.org, ulf.hansson@linaro.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, l.stach@pengutronix.de, Frank.li@nxp.com, peng.fan@nxp.com, eagle.zhou@nxp.com, imx@lists.linux.dev, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 2/3] pmdomain: imx8m-blk-ctrl: Remove separate rst and clk mask for 8mq vpu Date: Fri, 5 Dec 2025 09:54:25 +0800 Message-ID: <20251205015428.643-3-ming.qian@oss.nxp.com> X-Mailer: git-send-email 2.48.1.windows.1 In-Reply-To: <20251205015428.643-1-ming.qian@oss.nxp.com> References: <20251205015428.643-1-ming.qian@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR02CA0051.apcprd02.prod.outlook.com (2603:1096:4:196::10) 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_|DB9PR04MB8313:EE_ X-MS-Office365-Filtering-Correlation-Id: 2aee85b5-242b-49bd-88f5-08de33a15f7e 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|1800799024|366016|376014|52116014|7416014|19092799006|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?K0nLfB4uJV3jIPKMa6yjFv6oxt7oFLMoSKp7IzViBRzGHx95qxy/q4iUJ1ao?= =?us-ascii?Q?hgJNqDezK91RFSLqr3cZODbeKNCqIDtPGZrdqOLlYWt1GwqB5eq9F2US1i3f?= =?us-ascii?Q?GwZQ1mW2dKIRxtovMr2cnInFlkoPoW87vnCdy1VaHoXNHlmyE9X1WcKt3aNB?= =?us-ascii?Q?nc1rl6lm+NXBWU0AmIdaZ9WKboD6J7h0uUsKq9i5e0kg64oX3Q3UHvdblmid?= =?us-ascii?Q?qpLQGhitxJlspfiWqUMv1tQypOMr9aVtg/zq/oXhJRYFFSpdShB3lwn1yyxo?= =?us-ascii?Q?eyYGuBTzNpWs8DP5JqJOSOsYtUv9CWQAzNrH2oh+g6x9QT4O+1WPNwKwaWWh?= =?us-ascii?Q?VEmMUpxUNGBIpeoAlxNRNts3irmupARP6a9PkXtWIW5LiLzpxeUiXsnk4UYJ?= =?us-ascii?Q?t377D3sdy91mNnX7i9FAoxl9rE0guaRE3H9mWodRKVL+qLWkB2xlQzM7DOMu?= =?us-ascii?Q?jK+R9dSzLAzigE6vYBXrsc+18+0tW2PIvM5EoIw/OMk4p5PomS2Kvgp+vuSg?= =?us-ascii?Q?4XOKxSVkFDkDtY+NCqGWv8pNUGVTgVmURxCxmPMzaWqmHGhRYY48dpCaZEB5?= =?us-ascii?Q?6oEkYOxDYNzlox/CarOBUY0eEC9If5WJCCkRkgqPSfthzKJyEXG85SmFMiFj?= =?us-ascii?Q?gbnmkOlYCxXLHpYfJBwxzlHEranbnYPG3Kk+PhK6Jvqs9cl7Z8LtPwJeomRo?= =?us-ascii?Q?4o2f2BjyW01cqalMjRJmWEg8H+hR28SLR6SuMC36ivF7eES7HTI3iutSq2ZJ?= =?us-ascii?Q?0i/ColErw7WSXH8xI5KCTRRQpghGEYycz1mjTWw6JfuE0XxScVoHW72+2Pzw?= =?us-ascii?Q?are0RdLUB2ADuUtH9yDv3LM5CFcN139cIyz6pWz5rBiq1EZSndC/05K2JmF9?= =?us-ascii?Q?encXe9QWRPagOT/jGW+ZRyWyf8zQP6lzjRZzgLTPietkQaaaG0OJ6ZLkD7dn?= =?us-ascii?Q?EEbCMxExKm9brULdkWJ/NQkih9kIXxcVNb9YAkynspsj6PvYeSbanKJheom9?= =?us-ascii?Q?P1u+RMJo58im9spyfthmNowtrwiCRotdJCw6ZLuiGuqrIm1YwcB2e96Uw7dH?= =?us-ascii?Q?jusnNxngcdfuWuVbq9+Gjbo71Q2axenH9qkeKT+jTjQB3SSy9ZhOZ2Gi47UQ?= =?us-ascii?Q?XMrJ9opUn0diXilx3VhNCvCyvmIf0u+n556aWmcc8EHJDFtk1mu7tTYLJ5js?= =?us-ascii?Q?EEdnIl48U+Rxp5a3EqSf7surL9lC+awFqWrG+YF/+EYeUhxdvIgreEZCWPFo?= =?us-ascii?Q?13tMpDW5ZHGt9btqfca2yYMjfOygaJpxwav6c5bb9YZrBM314Z/nVl51jkVf?= =?us-ascii?Q?J7r2ayL84XqnVT+y8Wo4hsSoG+i+04b4RusXtSbjG47I/FLAd7XKwq64RRXx?= =?us-ascii?Q?AeWQ3ticROmg+2Y2Ai8zEvTtkPny5dSoj4lFfWLRDi+0Hv7WZa0L+szhAC3H?= =?us-ascii?Q?SwKoxHZZliy0VRoxpFgs7UPeXRY/HmrTrZciVG70pPvhbiqawdkFysKJi4HU?= =?us-ascii?Q?NFfy7AMXEyMRnXASJN7oK5MBZcvyPwzQ72DC?= 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)(1800799024)(366016)(376014)(52116014)(7416014)(19092799006)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?1e2zfM9VMKkf+z9N3VZAitotMqZRVScsUL6+G6D6758AFGpJdsSTi8iPMZzV?= =?us-ascii?Q?2Lcz5yobW3yrruUI5oyIU6ulr93WmBFuk9ZLGVVDQBhjGdTphfoQW3Im1fyZ?= =?us-ascii?Q?lCJypknbY5OdrVpMFsgzbNEBz6CtygfhM7PJ4VOndkB+IvoR205htltHcd5/?= =?us-ascii?Q?kLfDuh3kRWMhi/Qio3YYQfXasC6qgV+c033uxgj+JAel4+h+3U+3pQ1ol8KM?= =?us-ascii?Q?/W9dM6kXKSOKLKxZWCgY2Lp3/Mh/zIbVg1chSiIrizS9FvYVUBjeT7Vw2xPi?= =?us-ascii?Q?YhlFqpTwuNNoQuWzWog2hwydEMDtvCoEzYO3JfiRhq9TXpvosKfYOQ8F3srM?= =?us-ascii?Q?LS9o3m6iG8HUesxKD+C77diGYNOlDQLd3CI9PKTNRgiFR5EOM8DKIDDedqBc?= =?us-ascii?Q?dcf1iAoTUKQYLdXTYrm5hKVi2A8ZNJwGicN/gU9kYwkQFnYkkY8DEy4RFNBJ?= =?us-ascii?Q?0pg4paKT2cHvO+x3OtwVxmYWaohoubZDKNJTUx4X7DS99fgiW2En7VXGEeKY?= =?us-ascii?Q?UdRpARjaqHvcGcuK+6C8dnyJGijc2xh9W5VQbb+SAvuqp8/Jh4xCe2EJV4gu?= =?us-ascii?Q?Ec5IaE0p650Ng5son6A4MwqiA901mLxSvBuopQ+ywKF90lqRi+ZlOjcRtHAm?= =?us-ascii?Q?KT08QOJ7qq3ss/UzqkylmfIMWRWz8dG+4M3td06DyI0NFIwiPGCImNVcafL6?= =?us-ascii?Q?JZHXszoIKN3SwCa1wmCPX/RKviEWQdKzkiEsujZphMJNOv2WP8kB2Hqu7YQY?= =?us-ascii?Q?IhZmhr2YSFXtDxH0gJOOHGdXA4TLDW/iHqW8ZmFoIFZYiBHctQrubHgQiPOy?= =?us-ascii?Q?a6Gm+i/NULJMUQIVjdi2q7JWhBeTE1vG+oNwB3MEL3hZ+xvpNq++R8FWuQID?= =?us-ascii?Q?QtXXnmI8xPR3LRuZ4Uu8qZeplCwDQ524u2dw6cPo0zA/bbWbUOzDGzTA5h+6?= =?us-ascii?Q?28NUm8ac1EmJ/7adUZXvcBZ51FsbAUWmDXusuBFvDSHShWOF+y2Hq7Wl9Yni?= =?us-ascii?Q?qEnX1PQlI+CUkySaM5zf5JpxoukYXsoXITc2yICXboE+bx2OVZrXok7S5E3M?= =?us-ascii?Q?rW1QSGUJtUBWewPe1Egv2Nc9c0/rBSpO+QwH6CfcRNBnUA0AdIjLmLqpr+G1?= =?us-ascii?Q?c8rMch0NI5PImnry1r2ze/arfhp3s9LpPm4lWFyS0mqSDqHdB1KuB2UJWiqW?= =?us-ascii?Q?sLE4OpwdHdzIL8vlsUZDlLNKdUrGdBWbaEEstCXO67sbLrtCpWnNfCS7w8Dc?= =?us-ascii?Q?mUlItuh0qrioyNsMlzcS0qfv+IhJIvmlK7g/G8lN2Aq6tCPjJn75CmZbcvuD?= =?us-ascii?Q?Q7fJA4b26o6Aap6/cCdekFp1IL+96kTCBnxL4+LFo2SKGnw8TJTdOr7r48I5?= =?us-ascii?Q?8glKyhYFBZzD14b93RaQGSBZ3zqhYfDYQUOMEVdJLcs463W1Hz9V+2NxxG8z?= =?us-ascii?Q?mMcC/GWOUqYcKlPF+AlbIg4WcNi5IlppPwbpSZLM7ggHGFqJRbpUH5mJPwRr?= =?us-ascii?Q?IWwSzRgRQIpkxzbF6MPSpbTEIqH0yKBqZ5jSWGP6pKQWmOrAloQ7sJFLhZnQ?= =?us-ascii?Q?TFC2ZenOAMPjmKH/s0Lg3wARfHoiCvq3cv6vNC7A?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2aee85b5-242b-49bd-88f5-08de33a15f7e X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8254.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 01:55:32.0821 (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: 649Z73QT8Eq2WDE4IssgrJ/fnf3B9+wAcaGEwLgzsLLJnCxwBEW5Ga5qrt4l8Ri3WcPHbYkUqKcy0gAvJnJ0vA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8313 Content-Type: text/plain; charset="utf-8" From: Ming Qian For i.MX8MQ platform, the ADB in the VPUMIX domain has no separate reset and clock enable bits, but is ungated and reset together with the VPUs. So we can't reset G1 or G2 separately, it may led to the system hang. Remove rst_mask and clk_mask of imx8mq_vpu_blk_ctl_domain_data. Let imx8mq_vpu_power_notifier() do really vpu reset. Fixes: 608d7c325e85 ("soc: imx: imx8m-blk-ctrl: add i.MX8MQ VPU blk-ctrl") Signed-off-by: Ming Qian Reviewed-by: Benjamin Gaignard Reviewed-by: Peng Fan Reviewed-by: Frank Li --- v3 - Add some comments v2 - Update commit message drivers/pmdomain/imx/imx8m-blk-ctrl.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/pmdomain/imx/imx8m-blk-ctrl.c b/drivers/pmdomain/imx/i= mx8m-blk-ctrl.c index 5c83e5599f1e..74bf4936991d 100644 --- a/drivers/pmdomain/imx/imx8m-blk-ctrl.c +++ b/drivers/pmdomain/imx/imx8m-blk-ctrl.c @@ -846,22 +846,25 @@ static int imx8mq_vpu_power_notifier(struct notifier_= block *nb, return NOTIFY_OK; } =20 +/* + * For i.MX8MQ, the ADB in the VPUMIX domain has no separate reset and clo= ck + * enable bits, but is ungated and reset together with the VPUs. + * Resetting G1 or G2 separately may led to system hang. + * Remove the rst_mask and clk_mask from the domain data of G1 and G2, + * Let imx8mq_vpu_power_notifier() do really vpu reset. + */ static const struct imx8m_blk_ctrl_domain_data imx8mq_vpu_blk_ctl_domain_d= ata[] =3D { [IMX8MQ_VPUBLK_PD_G1] =3D { .name =3D "vpublk-g1", .clk_names =3D (const char *[]){ "g1", }, .num_clks =3D 1, .gpc_name =3D "g1", - .rst_mask =3D BIT(1), - .clk_mask =3D BIT(1), }, [IMX8MQ_VPUBLK_PD_G2] =3D { .name =3D "vpublk-g2", .clk_names =3D (const char *[]){ "g2", }, .num_clks =3D 1, .gpc_name =3D "g2", - .rst_mask =3D BIT(0), - .clk_mask =3D BIT(0), }, }; =20 --=20 2.52.0 From nobody Fri Dec 19 16:21:31 2025 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011062.outbound.protection.outlook.com [40.107.130.62]) (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 E74C22773F9; Fri, 5 Dec 2025 01:55:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.62 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764899756; cv=fail; b=fqU11OZREhXnN8jKvm1hQ8xCPoHDCzd9TX1Am5+b9fzAZyue+h/IBevLAFCEunDbBtf/gH4J9wg/+WfFprU8CQll5JcxZDBIjZ6kFggraJ9AUuRnQYNYJcbAU6X9cb88GJP3/PIXio3K1hg18CDkEOpKkLtFPf9eh6Yi6Vrh1OM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764899756; c=relaxed/simple; bh=oQ4zEDb53uEg6ZpoFog6tqkFgQ36F9z3+0ntmscOyn4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=k4zlM4B9FZa/OzbBLNAdu5/m+trYCNiX+6iqpLuwHvlP0RGMHKdzsBES5XlzJpXsXQg6nT0C+pvVNpi5sdBVlvxCOMgqq6blkojIMk+xlefnwy2i5KA7IdQ14n9oFStX6ABfwqNhbdB2bXqRBwpuaL7EtPf9zDY6g863QapD1m8= 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=iTsR+Uez; arc=fail smtp.client-ip=40.107.130.62 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="iTsR+Uez" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MutUvGzOhymBTJbIhxCywFOrqoOX6RJZdeKk2/4jQwGmscDcHLIc4h/8U5ijp2EPG6F/t2zTgcsblRTwSQKel5rNTWjSdgJhAfWvbHaTys4Twgkyaej2yygzd54lk1VgDyGux+4O9W0wknDcbYkbyRcj/5G6p1h6wt7E1LNAHdz5/knXsU+xUBh6dqcx30nrGV0RHBKSEL6i905ruvTUUcvQTGH/HT37ARds3E/TG480rLi4Qr74q+KPEYqlLxuuQo1uJ7TLypDMmWH53KkORRNzsRJw7jhMUpu72hwhWzLfCALV+sk9oipF35hhF/r4YXc4Ng9NEnlj0NeZLqApxw== 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=dk3ZRJxSvylYgKRgqlduR4j6SacDbpN9tBZ/iIUl6G4=; b=x/7TqCzW4cenfPvU71lPWp42+HBrrosLeiNP5AI+Rcdy4Rf59qz2e3cE6Qkwvxk/W0gkGPecvE1m6jInR2aQEGI6ihbiVV8qogXhOV3xTHhsxqjiMlReekmQ32KKzVPZn1Oy53Mdllfvz44YbVUjd2+yIDptajQsrztCyLoF89WdjsUDID2LSuV2oKi02sEZp6pZqhyw4INv7Wud9d8J3Z3O/9kW+qV7CzkWCq9ZNHeYglJNlcak3mYkjzPQmn0mFBXhk3IY7ZtmzcFoODQNJ+o6ABiyqRETzZo5+PmUMRmNQCkqGlsZPDinXPPVSg/yU9lu7FNwjsBTdVP6t27jCw== 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=dk3ZRJxSvylYgKRgqlduR4j6SacDbpN9tBZ/iIUl6G4=; b=iTsR+UezkhOlMsTr2pIghLnQSIkor/pS37SB5tCSGchiom0mXMDeZmFOEa006SXvzdWKhlu7tIos1km+22hEmHs1rU4d9i8Sgze/Bzj8YsT+qUghRDgnsKc+7AbSyB0YkyyoOGnKq7e77MpJQoRZiijmwmuWR4tTwbosdNAQOjzppHYepBLXxnIoyvXwBbL1dCKOxbOwws+eFJVGD0XB1LXqsDnXNKt6hXTq2XAtL7F158BXR3coar4kHmBul/V3h9g/oeC0TLJKXmhnnBJbbs6nN6HxMCABBPHYE7AFp46SbQkYLKp/NzSFLDJCd8QPufDtKJk/lQEY+YMC99m1kA== 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 DB9PR04MB8313.eurprd04.prod.outlook.com (2603:10a6:10:241::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Fri, 5 Dec 2025 01:55:38 +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.9388.003; Fri, 5 Dec 2025 01:55:38 +0000 From: ming.qian@oss.nxp.com To: linux-media@vger.kernel.org Cc: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, nicolas@ndufresne.ca, benjamin.gaignard@collabora.com, p.zabel@pengutronix.de, sebastian.fricke@collabora.com, shawnguo@kernel.org, ulf.hansson@linaro.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, l.stach@pengutronix.de, Frank.li@nxp.com, peng.fan@nxp.com, eagle.zhou@nxp.com, imx@lists.linux.dev, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 3/3] media: verisilicon: Avoid G2 bus error while decoding H.264 and HEVC Date: Fri, 5 Dec 2025 09:54:26 +0800 Message-ID: <20251205015428.643-4-ming.qian@oss.nxp.com> X-Mailer: git-send-email 2.48.1.windows.1 In-Reply-To: <20251205015428.643-1-ming.qian@oss.nxp.com> References: <20251205015428.643-1-ming.qian@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR02CA0051.apcprd02.prod.outlook.com (2603:1096:4:196::10) 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_|DB9PR04MB8313:EE_ X-MS-Office365-Filtering-Correlation-Id: 57004add-6f89-4c47-b908-08de33a16354 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|1800799024|366016|376014|52116014|7416014|19092799006|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?PGgRJSNmvl345OlOcg22iBKLYyGgHMvIQ/kk6mNjqhw5NJ5S7ogbSsbSEH2q?= =?us-ascii?Q?Skx7QoKOeUhgMI2AxSExU0ugl/rtvIdMwcfuzyBMXgCqPksNxLy2/GNQrJ+d?= =?us-ascii?Q?vzxBjGCBMVhUTt5GpdpNWqVC4cdBx+68SdV2JVgKHrQC2lCyTFzm4M58Y4a+?= =?us-ascii?Q?Z5U01sN+SUIOi/8lOORpvKyGYZhVroiYWHj5WRWuvzRlOP4j9L26xx+aBRGk?= =?us-ascii?Q?AVtcd5y4yY0ei9UagIHAtzm56WQH2q+vw6IlLFgczLZHT3gz3njJYFj5ZnS5?= =?us-ascii?Q?suZ9XtvuAgo9jwvorsb00xOPrVoP6WDhDdPNvEpnaZz8gGKaeIBr7r2HMzDE?= =?us-ascii?Q?wn60rpPzSxoCIj3FUtujlEUGn16YBqvdG6kx9tVFfyx22d+9VbtqKniRG3KQ?= =?us-ascii?Q?OaVW0/1J1jdgw14xniDtrjADBoZZb4SnMN3uXV5bObdzlBMUgqlhG3KilzDa?= =?us-ascii?Q?RSAxD+pIyZp65E6DO4Yt2POCM8hsITFoVbpaXqWDCQ8/Zbr7i7uDH2QCMYJI?= =?us-ascii?Q?mP0ZKkWgcMe6BJ8hVBm3BSKCJtF1S7x4bcJTZomZs0k4hSHHPVAx2XBF01qf?= =?us-ascii?Q?H3+xBUZNRZzJDxQBBgVOeIwwzBlI+eDz9rzMHfpmnVAcFgEOzeOfFaCFrsEW?= =?us-ascii?Q?CQzmxWepHJloORysy/+iRd/nrX8ySz+WHG7b0LUTZHWscCQmBFPnx/LeLAXI?= =?us-ascii?Q?qOl8CQYJ98hpK20k82x8eJZpYLLQve2A//ofwv3YEXX8/1P8qDrUC9212TNq?= =?us-ascii?Q?WT7bM02jY1GYhLXZKmbIpQtolOJBP7XiiCXH1zxYWBCWx3rPCfHUPBf6gqqw?= =?us-ascii?Q?4DXsBTnYKbt/Z172e5YhtNkc51AsvLcsv7xLkKR2VgKIvoUFzasDWYhT4AxQ?= =?us-ascii?Q?o3CcgfjUpT5QgVHP3YkK6Ao2ju6CmraWtxTcnT+zcutzbSj51deKKikb9vwz?= =?us-ascii?Q?eZxSMnl58Um5Ns124gX1G1DrzO/O+EVGAAYMqQYkECy+JRKLeB1SWM2zO28k?= =?us-ascii?Q?KhmPGI7olOJrwQDEt5+3pqFVafpf06kemVAhMhBMcMsci/Lnu/RBMbuPiy8u?= =?us-ascii?Q?F3EaZ8hEhkIEGPd15X3TSi7XVPKgcTNlBvC9pCtjr46GOo0dyFebofDC6Laa?= =?us-ascii?Q?69IQFqvtGsrh68vmJMQ6Sx26uRPcfx5xcqKfFK1AZuWi3eO0YeEghgV2R58y?= =?us-ascii?Q?dclARIrKdeu9hZbqO9ng40WLD8/0uMdr0iFxMIqrwlxJbySYRuuLoFYDvr9p?= =?us-ascii?Q?vaZ5RaP8VcgoPGzcQlExjPjjxIojQnDuywBMoqGIs1uIQFePu/h0jvE0qT7R?= =?us-ascii?Q?UlZUgEBw31Qx8z+xm4O/hHUpmxpUD23lGfSx3YpFQj5IdldaqqHOWjS32o9K?= =?us-ascii?Q?1xOKOzqf1ktkzIrdky3MWPmM8NjP8o+IvdK4yl84k6LndhLj8YEW8mIL7gNt?= =?us-ascii?Q?Z2Gnx2R8PVqC/EQ4bxvd9rSgeFEB5wPvJ0TWLxF0/1nbtq8FwdRfW4y7L4qW?= =?us-ascii?Q?g/6UkL6IMiF8Xthx2wThoKGR/XLTV5DrsCcN?= 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)(1800799024)(366016)(376014)(52116014)(7416014)(19092799006)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?unaZlxaWxboWkpGZWTgzZMoYXwvvcGK0KDZ37JUKheqz71AUeuzF3fiIlj84?= =?us-ascii?Q?M4YDzXaW4/Wi3aV+V34nyFa96zEfMiKNWvNtgQoLn8yv3/VBBHEZOPgNrlx0?= =?us-ascii?Q?S3Aq6QElVDI3+0nojY7pcQbaVS20QB7LxM0h4hqxLnC0n2gUECCVMPCiX4P1?= =?us-ascii?Q?TO3Dw6/wUTDFa1yqUXsJTHQ/l7kBq+Ftz3Wvwn6XHONp9ZW/vY7Ujs/0rcdy?= =?us-ascii?Q?rviNluuevS6wkUX4RHZauDbmESLdgxGsrYmSRCaTuVudeipawPP2WBG8N3w4?= =?us-ascii?Q?PBZemwy/8QzaCJAfilf1pq3rLdrG/upW7KIwU/aGPeR9FsCxEZ3hy7UOijVS?= =?us-ascii?Q?xHCSvbX7bGOOO0QcYq/j4bNKAR/lZ4HAX8JfKSA459hzl0t+mwOttfho2X8Z?= =?us-ascii?Q?rs8JdFWXtBCm2aWiTlUOkGxkwnY/xaZKi+fIn9kFw/O2ztrqrupJ8hd5TSTu?= =?us-ascii?Q?Qmv/ARN28wnmucdHL2IC0dhCRXC0sAompp1XkIjyFC4daZwE3lNbQmUL2RpI?= =?us-ascii?Q?101F8JwwWynujtxCBaJ09YaitUnZAGwjqcdNJgRVnMLxjPfXpuOXb+lhwv9R?= =?us-ascii?Q?1AfrIXP4Pj2cvwbAKxrY9foRUmL5hjJm36SZ4RMcdvArB11fJigrzdMA03ZJ?= =?us-ascii?Q?AwR0wnBK32tNV5/SjZH0Fe715QEiCeqWFCawn0DPh/ul1FBQs1Fm5igIcUce?= =?us-ascii?Q?v03WAxsFzfsTpXKRwFjMS8FyEoA1l8BOiR0uSecQ8wdgM4OMDcwUB9RgEESm?= =?us-ascii?Q?4fZBidSkSaQeeYrih1VdKQ/HtQnfZmSBL8t2q8L/vjw3AbWDBA35IclYkUFF?= =?us-ascii?Q?+VAT3HSe2D3oVxVDmhjTu+SLrFX3djR6nPD9tqQwka7dW8sDjZLTcWe8zhgf?= =?us-ascii?Q?LiD4Jw0S6+vIAyZCoYy4M9A8fHUlXWPAzB+bMuJoUGiRK1JXIG6VuUOaXpIC?= =?us-ascii?Q?2vEkuQTy0WYyrhg1bYNgcIZ3YYOqQPJ1BJsI4spv+a4JN5MEdfxo3grWg/wS?= =?us-ascii?Q?J29v7gPlSWR94ZUTEjNrai2q6RU6ykHpjuhxD/Kp6zy7Bayg0v2yCMzu8C1g?= =?us-ascii?Q?0p3cPeiJG4DyBqLKF/s1mAkiIq1iUspKGPvkMbIvhBnfPxb3vtLBtvqhBODc?= =?us-ascii?Q?4UbOdl8auOx9OQ12dyzTI8zr7ZNeTneE63lYmKbEFdmWdPtBPKcp2OOS5GVE?= =?us-ascii?Q?9ONHqUtnEmgdWyCiDW98yKj7PQO/23QN4iCW7/NtT8gr07tPMQYnSAhmxkyW?= =?us-ascii?Q?r3Pi7fCrInQKs1J/20uKe6YRLNU9fvf0wACi36fOeuc611qKU8mxOrArjkm7?= =?us-ascii?Q?YnKYUKjESahsQCvwA7VPIE3xHl4V+QwIR5jB8dtlLmnm+12b7xiiq0ID6qvx?= =?us-ascii?Q?8Xe/O65lGdBjziFjBl3w5Q4IMkHYSP4vUMcrXRrINNafLtXkGEfjAen2eNpz?= =?us-ascii?Q?LAG8EBAL7/yOmLrLBtZtYNeOuVk7rdbJm1ep+pQd9udJa5ealLr8+SkR1czE?= =?us-ascii?Q?bMCGNKDzLBCZ0Y/x1lpOCdhT2IKDzLARd7nqCPrwXpy5sANYoLl3hWk4zxNg?= =?us-ascii?Q?RQ5DBErn2ivJBgxsN1IEDG/WEkOlMdf/Tpyr/cM9?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 57004add-6f89-4c47-b908-08de33a16354 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8254.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2025 01:55:38.5382 (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: QzTVSkpN5f1A3Jw3fFlS3iWRAJqY0o+4wdavTxNqY6xiNk0SsNR3pYhVsS2vZrPlvmK4BEhADP6KZ8OaFpjawA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8313 Content-Type: text/plain; charset="utf-8" From: Ming Qian For the i.MX8MQ platform, there is a hardware limitation: the g1 VPU and g2 VPU cannot decode simultaneously; otherwise, it will cause below bus error and produce corrupted pictures, even potentially lead to system hang. [ 110.527986] hantro-vpu 38310000.video-codec: frame decode timed out. [ 110.583517] hantro-vpu 38310000.video-codec: bus error detected. Therefore, it is necessary to ensure that g1 and g2 operate alternately. This allows for successful multi-instance decoding of H.264 and HEVC. To achieve this, g1 and g2 share the same v4l2_m2m_dev, and then the v4l2_m2m_dev can handle the scheduling. Fixes: cb5dd5a0fa518 ("media: hantro: Introduce G2/HEVC decoder") Co-developed-by: Nicolas Dufresne Signed-off-by: Nicolas Dufresne Signed-off-by: Ming Qian Reviewed-by: Frank Li --- v4 - Avoid double put device node in for_each_matching_node v3 - Add some comments v2 - Update commit message drivers/media/platform/verisilicon/hantro.h | 2 + .../media/platform/verisilicon/hantro_drv.c | 42 +++++++++++++++++-- .../media/platform/verisilicon/imx8m_vpu_hw.c | 8 ++++ 3 files changed, 49 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/verisilicon/hantro.h b/drivers/media/pl= atform/verisilicon/hantro.h index e0fdc4535b2d..0353de154a1e 100644 --- a/drivers/media/platform/verisilicon/hantro.h +++ b/drivers/media/platform/verisilicon/hantro.h @@ -77,6 +77,7 @@ struct hantro_irq { * @double_buffer: core needs double buffering * @legacy_regs: core uses legacy register set * @late_postproc: postproc must be set up at the end of the job + * @shared_devices: an array of device ids that cannot run concurrently */ struct hantro_variant { unsigned int enc_offset; @@ -101,6 +102,7 @@ struct hantro_variant { unsigned int double_buffer : 1; unsigned int legacy_regs : 1; unsigned int late_postproc : 1; + const struct of_device_id *shared_devices; }; =20 /** diff --git a/drivers/media/platform/verisilicon/hantro_drv.c b/drivers/medi= a/platform/verisilicon/hantro_drv.c index 60b95b5d8565..94f58f4e4a4e 100644 --- a/drivers/media/platform/verisilicon/hantro_drv.c +++ b/drivers/media/platform/verisilicon/hantro_drv.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -1035,6 +1036,41 @@ static int hantro_disable_multicore(struct hantro_de= v *vpu) return 0; } =20 +static struct v4l2_m2m_dev *hantro_get_v4l2_m2m_dev(struct hantro_dev *vpu) +{ + struct device_node *node; + struct hantro_dev *shared_vpu; + + if (!vpu->variant || !vpu->variant->shared_devices) + goto init_new_m2m_dev; + + for_each_matching_node(node, vpu->variant->shared_devices) { + struct platform_device *pdev; + struct v4l2_m2m_dev *m2m_dev; + + pdev =3D of_find_device_by_node(node); + if (!pdev) + continue; + + shared_vpu =3D platform_get_drvdata(pdev); + if (IS_ERR_OR_NULL(shared_vpu) || shared_vpu =3D=3D vpu) { + platform_device_put(pdev); + continue; + } + + v4l2_m2m_get(shared_vpu->m2m_dev); + m2m_dev =3D shared_vpu->m2m_dev; + platform_device_put(pdev); + + of_node_put(node); + + return m2m_dev; + } + +init_new_m2m_dev: + return v4l2_m2m_init(&vpu_m2m_ops); +} + static int hantro_probe(struct platform_device *pdev) { const struct of_device_id *match; @@ -1186,7 +1222,7 @@ static int hantro_probe(struct platform_device *pdev) } platform_set_drvdata(pdev, vpu); =20 - vpu->m2m_dev =3D v4l2_m2m_init(&vpu_m2m_ops); + vpu->m2m_dev =3D hantro_get_v4l2_m2m_dev(vpu); if (IS_ERR(vpu->m2m_dev)) { v4l2_err(&vpu->v4l2_dev, "Failed to init mem2mem device\n"); ret =3D PTR_ERR(vpu->m2m_dev); @@ -1225,7 +1261,7 @@ static int hantro_probe(struct platform_device *pdev) hantro_remove_enc_func(vpu); err_m2m_rel: media_device_cleanup(&vpu->mdev); - v4l2_m2m_release(vpu->m2m_dev); + v4l2_m2m_put(vpu->m2m_dev); err_v4l2_unreg: v4l2_device_unregister(&vpu->v4l2_dev); err_clk_unprepare: @@ -1248,7 +1284,7 @@ static void hantro_remove(struct platform_device *pde= v) hantro_remove_dec_func(vpu); hantro_remove_enc_func(vpu); media_device_cleanup(&vpu->mdev); - v4l2_m2m_release(vpu->m2m_dev); + v4l2_m2m_put(vpu->m2m_dev); v4l2_device_unregister(&vpu->v4l2_dev); clk_bulk_unprepare(vpu->variant->num_clocks, vpu->clocks); reset_control_assert(vpu->resets); diff --git a/drivers/media/platform/verisilicon/imx8m_vpu_hw.c b/drivers/me= dia/platform/verisilicon/imx8m_vpu_hw.c index 5be0e2e76882..6f8e43b7f157 100644 --- a/drivers/media/platform/verisilicon/imx8m_vpu_hw.c +++ b/drivers/media/platform/verisilicon/imx8m_vpu_hw.c @@ -343,6 +343,12 @@ const struct hantro_variant imx8mq_vpu_variant =3D { .num_regs =3D ARRAY_SIZE(imx8mq_reg_names) }; =20 +static const struct of_device_id imx8mq_vpu_shared_resources[] __initconst= =3D { + { .compatible =3D "nxp,imx8mq-vpu-g1", }, + { .compatible =3D "nxp,imx8mq-vpu-g2", }, + { /* sentinel */ } +}; + const struct hantro_variant imx8mq_vpu_g1_variant =3D { .dec_fmts =3D imx8m_vpu_dec_fmts, .num_dec_fmts =3D ARRAY_SIZE(imx8m_vpu_dec_fmts), @@ -356,6 +362,7 @@ const struct hantro_variant imx8mq_vpu_g1_variant =3D { .num_irqs =3D ARRAY_SIZE(imx8mq_irqs), .clk_names =3D imx8mq_g1_clk_names, .num_clocks =3D ARRAY_SIZE(imx8mq_g1_clk_names), + .shared_devices =3D imx8mq_vpu_shared_resources, }; =20 const struct hantro_variant imx8mq_vpu_g2_variant =3D { @@ -371,6 +378,7 @@ const struct hantro_variant imx8mq_vpu_g2_variant =3D { .num_irqs =3D ARRAY_SIZE(imx8mq_g2_irqs), .clk_names =3D imx8mq_g2_clk_names, .num_clocks =3D ARRAY_SIZE(imx8mq_g2_clk_names), + .shared_devices =3D imx8mq_vpu_shared_resources, }; =20 const struct hantro_variant imx8mm_vpu_g1_variant =3D { --=20 2.52.0