From nobody Sun Dec 14 12:34:19 2025 Received: from SEVP216CU002.outbound.protection.outlook.com (mail-koreacentralazon11022136.outbound.protection.outlook.com [40.107.43.136]) (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 EBDAC222580; Thu, 22 May 2025 07:26:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.43.136 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747898786; cv=fail; b=Ygeob/MTy/FObn6h00zo8yKpvWkTKCiznT/05TLWRU42TERH5TlY2e00EB2c4nhBDTVHsylvct+HhjVDL/zDW9iVCRBemc7JoVxS3ePE4Hy8J+XlQoFlLAZzYwH8x4QnBPxBQTEks36t0R+7Iw0BBDWkzKBRF/3uNig0a5n8zbk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747898786; c=relaxed/simple; bh=+Ix7EvhTmY3l8L5NG7HsX6FdTSFpfjGfxHhmtae2vXM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=PXoL55DLkKwxxFhKG6JA4MbV20LeyOuJnQLh7hrnEkSOAZCCPe8U9RcMVEFX+lYlzQisj6lTgBdeJaiBzWXEEVqcqx/CSe4Eo5A5xK7lF68IpNFwQGIZe8nxNGsk23bqjfKSVVXEVWxHMqnNnFSv6DmuxKVlq+by54FcCFkZkco= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=chipsnmedia.com; spf=fail smtp.mailfrom=chipsnmedia.com; dkim=pass (1024-bit key) header.d=chipsnmedia.com header.i=@chipsnmedia.com header.b=lPbQjs5t; arc=fail smtp.client-ip=40.107.43.136 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=chipsnmedia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=chipsnmedia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chipsnmedia.com header.i=@chipsnmedia.com header.b="lPbQjs5t" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jokrtI5U9MvaYvpGnNqSuvAHBf/32nOeqkmvffKWaH/8wZbrHFkMDsi9ZMon0MCFkpgbo7FIXTtZgGHXmPGSVldNEJGJ3dsJpvL+3abuG2e266bbnLu2LjGcTIF089ovaU8qTPGgd95kcZe5KWPEzEqvrL6tyIsjU+8Uy46PwLPcmpkkCvP/TpJGN3DDEAevFDLk1sp2N0zWFOb5bboNMzvt8R5guKZd7pDFDBau4uGSkgO57zRQb13oXvQg77NdVjDaB3Q0AN0eKueMfnfpsRE6uWE3XCx64BLMdxwPxgn6TnbQybRwfZpB9cwHZIpFbaF61I4EC9cIF2KS7gXhmQ== 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=Je68ULeDxVx5AGcE88T83kqMHhC6Oa+gc7PFyc7jR1A=; b=bWguU8imtl+qempBW5+9BTcbtbJphUzbuhCgv0flgmJo/vIGq49KXbT+WyoFwB0CcWFvo4LQFPSpnppOjQD/0GWJK2+jP1uGHiu6GcE6z3zkLPADM4l9lAw0dvGkgnTz8YovZf+B9JgV2n1stsZqC4L9jH6AE2finr2mwv7H7HsA7tF3ew3tNeGsFfrW4x0BOJNacO923bgoI+9NDUgSdd3BQkP5Rtpp0ei0TWFSGEaVjuo3c2zx4/xkAe82xUSiWKnEWjT7ena3wCZoS1HBVGKYLrzwNOA39fq82s8k5Igq/8UztVNL3ukpSiukBglFml4/5VkpXI6DL5DXkMFSoQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=chipsnmedia.com; dmarc=pass action=none header.from=chipsnmedia.com; dkim=pass header.d=chipsnmedia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chipsnmedia.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Je68ULeDxVx5AGcE88T83kqMHhC6Oa+gc7PFyc7jR1A=; b=lPbQjs5ttZh0gWppqJaYazdbfk0vzBYr11uOvRjpLk2RQESq8e/s0kGhFW3qr2mMV5XQv6wLUdx0WnkNk86MAqEKEG6aB9ssLfswEVgSd+6OhDf3goeugszNgVgN2T20UqX2E/mSeqXI5avCCoKujF6tZW0/L74hJasscS0uWlg= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=chipsnmedia.com; Received: from SE1P216MB1303.KORP216.PROD.OUTLOOK.COM (2603:1096:101:15::5) by PUYP216MB2872.KORP216.PROD.OUTLOOK.COM (2603:1096:301:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.20; Thu, 22 May 2025 07:26:16 +0000 Received: from SE1P216MB1303.KORP216.PROD.OUTLOOK.COM ([fe80::b711:5ab1:b5a4:d01b]) by SE1P216MB1303.KORP216.PROD.OUTLOOK.COM ([fe80::b711:5ab1:b5a4:d01b%5]) with mapi id 15.20.8769.019; Thu, 22 May 2025 07:26:16 +0000 From: "Jackson.lee" To: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, sebastian.fricke@collabora.com, nicolas.dufresne@collabora.com, bob.beckett@collabora.com, dafna.hirschfeld@collabora.com Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, jackson.lee@chipsnmedia.com, lafley.kim@chipsnmedia.com, b-brnich@ti.com, hverkuil@xs4all.nl, nas.chung@chipsnmedia.com Subject: [PATCH v2 1/7] media: chips-media: wave5: Fix Null reference while testing fluster Date: Thu, 22 May 2025 16:26:00 +0900 Message-Id: <20250522072606.51-2-jackson.lee@chipsnmedia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250522072606.51-1-jackson.lee@chipsnmedia.com> References: <20250522072606.51-1-jackson.lee@chipsnmedia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SEWP216CA0071.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2bc::13) To SE1P216MB1303.KORP216.PROD.OUTLOOK.COM (2603:1096:101:15::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SE1P216MB1303:EE_|PUYP216MB2872:EE_ X-MS-Office365-Filtering-Correlation-Id: e67f1cd8-e8d0-485a-9794-08dd9901f012 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|376014|7416014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?KR0Y/808mldD948INE84A6ekFOXqO3+LdSYrRt4hovAoT1zFzoWiZnwqAbH6?= =?us-ascii?Q?weOJJureyj0cWGYAH8K/qX7halo/Vl+zL+Hk/gl5m26gDje0mJTTwUzqS48Q?= =?us-ascii?Q?pQ+lbseET5Dq1qHcyrKCPbgvYsTjVKv0QXEb/TSN1mlh+H5R4I4FHN4GB1a1?= =?us-ascii?Q?i1O8V6bfe646LnZw1Up+uid29AglySFcCayADEZyfZyH7ugevbBuz2Wlhexw?= =?us-ascii?Q?A8CqJbhoUFGIs2mHLMJz0945ByIwH6sN+6vMUuRUwee3G8pKOMMsXjMtjsMy?= =?us-ascii?Q?Ji5DBkdaeKm+Ky6npmJvhmUxk6vb5/Ud9nMH7ckM3pD2hxlaaok+u85YtdKy?= =?us-ascii?Q?qh4Dn1pEUJPjdzh7CJwpMHiEUYlmbRVHiwdoRZHih5+eYp19UqSDobGIhbpQ?= =?us-ascii?Q?3H/4/wHgjIl3iu4+KXYptIvm/riFRfiNAxO1mh0SzUVpSHlDozsDbF8wB9+K?= =?us-ascii?Q?8PCqwdEEtAXjaL/ebmD3Nh/NpMjKQ80juosZDrPsHqwaRmgvTPbWhh6DuSvF?= =?us-ascii?Q?L8+mPk0z5+xUQJUIb6fI6T6kNmKc8p8BGCbaJfDxR1MoSSu+Zity1Rnl0NDK?= =?us-ascii?Q?MXrF5y3/Y3JXh9+kICiu6gLumf5tlUWAeGD9ejDdeOKB4dGOcMT+BnF3sUSa?= =?us-ascii?Q?wtBpOfar0czcr9fma+9T71u/DaKbxRaPmRJxzHmsZqRakelFO7S5wYujn5Ig?= =?us-ascii?Q?BrHD9zs4Aw+FjYfoIQ1foXSOoI77fXv4zvLvl+OtzPUDUaFZXolbtLC8trLW?= =?us-ascii?Q?krWx9+VpDP/jzFV3DNgAjtxUpY09xxFuQ7FaIj4L01XqiF2HK8i4xh/LAopM?= =?us-ascii?Q?RDfjlWHVkjd6eUKVBeBESYp0zMbL+mE13Xc7eepuvnDVXvZW4uvJJ9H6z/Hn?= =?us-ascii?Q?ZhcCghRNOxlsnPmswIIDgxpAp1tO++gX2xbwvROg8MRPqFSmrzCGNGEqFiHR?= =?us-ascii?Q?/zRMz3pEWmSQZKNxwZZ0/7ge7h4m2+KQ9JwW4rr1urBUqB2k4PRVzawL2Rky?= =?us-ascii?Q?mLwP2gFPWlDdTfZimbGXa9qO/An4jr5KUEudgYo3dhw1zBEAlbBsHNV6ASAL?= =?us-ascii?Q?IzqbjZsBPD75SzRMqqDU3rBQfpHilP+KUs6anGnkrnIfLzq8233HhiILBa8C?= =?us-ascii?Q?JZEgBOiWcsMcC+WTl6Cdh5hzxK+wRn7/qn25lnUSrbswtez435F24HnT7Fbd?= =?us-ascii?Q?F9qYdRvYytCWoIt7pL+7uYdq0nlskmRtjigce2GDDYFfrgCYq6fa4o259EwW?= =?us-ascii?Q?U2E/JBBx4oRdbvpw/2ODNpK9GcCAKJY8s8sAbNV/1IEhXXtKx0bOeWS7BPzZ?= =?us-ascii?Q?oQXz43DEk4vowjr6beZZJ4wB4kcVfvt6K66zs0yVKiJ/4ImGFZyYUOdzjTki?= =?us-ascii?Q?GLiA5wMn0uauyUBsFLLDSkIDTt2kcgh9nXQ8V8PEtRHsdQZdS0A3YbG8fgdd?= =?us-ascii?Q?owNA8ubHqYHY68qiETN9Wg85mY4RAeqqAqTFUH19moyuICJnOeVDug=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SE1P216MB1303.KORP216.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(376014)(7416014)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?56cTQxKpTXXEsFL9rT2+/EoZDzzszGsZxu2lfXyNrF9vVSaofhhu7rCqqxP5?= =?us-ascii?Q?oo9NmrdjQjS0+Bwfh8bBJp4YH42ft/3/zQ+OErTotPMI1QXeADSleujnQuaZ?= =?us-ascii?Q?1rc/PknLcGwhq0vhzsbZf4AsBEzmIy8FTPRkI1NGzavn3UVHEaAG7U5npmjA?= =?us-ascii?Q?1gKKTRsR63cohO90nshl3gSzGFF8rZIeM1Ft3RutHebLBq6OVAOKBeOQgpXU?= =?us-ascii?Q?xMUliYiXzvmbJXhYhKZJXVcHGeXVw6JWDa35GerPlfg752x2xUZwpFxRLqr/?= =?us-ascii?Q?RFGJ8ZBTs03MmVlOC6YOHiu3ZQMUMJckscqbdAN5itRxNHqNi4eSZ7zg1ACe?= =?us-ascii?Q?yHqGACWpy61Ek4i9JbuAc2Zp0c+sXDJJ6bUDi5yJ1Tfs6+d1btn+2MMDdH/0?= =?us-ascii?Q?ei9N+vVepzXRFEfSmYFbfSJfibnNgHQz5Ti6ssmG/AaBfn2B5cY8PBGUgDcp?= =?us-ascii?Q?fOq06yJOEvtqefqIUGVa7gQlAB/mdPgLS+6ajtzEYJTNSbTZtIi+9NKX/z/5?= =?us-ascii?Q?scnS17X7s7vf0j5RlIquny3k/6xp6NaeAIX54yNLOy5LTwM4+GZO6fXOvtxk?= =?us-ascii?Q?EXhCrXtSDsWgYQK8nNQmcwWd+dtiFulTj8m5PkisxNiZowWKNaAWXAMREvDz?= =?us-ascii?Q?HUK5I4Z+pnp0PnJ289dYEvqcKHDa7g7a4BymrsMTJ+RMMm6jFKHBkzrz/uao?= =?us-ascii?Q?8PlMnfIJprNnxyzeInz1iuYRZk2+8INCYH+HFGKokqlaPaJWrK3w4Rtsm3+s?= =?us-ascii?Q?ih+W/k+QHl29YRae7NSjvnkdpSYm7CtcsEZYF9tWS+TJOK0Eu0a9kurgTh8S?= =?us-ascii?Q?shYvrWCAZ0IMeCtL9BnVnFB2ZT+Ex31QQH40ao9j0HEgtv2D/4iAvGw1r1EI?= =?us-ascii?Q?+je4aBc7O12klm8B10FgLME2mzj70oDjjom9d0Ie5NrFAFUB//gU9qCd0wbx?= =?us-ascii?Q?yXpVQ5Ay8wugxOkAG1cqGnm2HUiSuS40PXz5E4KSQdNaZQ5UHN7zJi+XMWon?= =?us-ascii?Q?VFOK+I10esjj9+4n0Kib63kxH1g6gdi/oRIKXmBs/wj5ywA0/q6oDhz4cYIu?= =?us-ascii?Q?uvBOz5vyxkfgZRT76vdycZRGvQ+1zdbAfTayBrc/x2rSSC+sEbfX3NONZEai?= =?us-ascii?Q?jN9FOLEGwDpS/sQcJR2a0eNgSziYVpvRauNfOI+ZX1dROOqJYzlKTHxU549v?= =?us-ascii?Q?jY8HVhT9Hh+Uc6GxrY/x2w/kCojoPpmDfZUC/QMTrm11xbK0FUGlZlX6yjvf?= =?us-ascii?Q?+OcaaiOEKHg+d4U3XeZX1y+hdfO38QK+bYolAMSH/Ie0wCW6IK00C1fk24Ux?= =?us-ascii?Q?qTAEJOgbudWIdXIfq5LWEcYjCTEtjXQU7CfX8EJqQJ/Uhcm7A6/KcaS/W+9O?= =?us-ascii?Q?4JHkEvf2UTmvpCqcgI+D2maZ4DJ8EUWiYPQ2p6oZWEjw9YjF9l8/Il0zf8Qk?= =?us-ascii?Q?aUMFq9FwRBavIXuCpO5y5NSKCKfoCyOR0iVl3m1vyUYfCF+kB91kKOYkfp22?= =?us-ascii?Q?6FdwVGK174jvfpFr2QnIIuJ8qUKm9PWWyd4zy0yMeLymBOCPQ8vOY0r8q1vP?= =?us-ascii?Q?FZJwPZNPBQBVQW/V3utgf5Z4QbXAuPUpzkodHh/KoyRP5Q7y+c2XbaJSzNz1?= =?us-ascii?Q?tA=3D=3D?= X-OriginatorOrg: chipsnmedia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e67f1cd8-e8d0-485a-9794-08dd9901f012 X-MS-Exchange-CrossTenant-AuthSource: SE1P216MB1303.KORP216.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2025 07:26:16.1202 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4d70c8e9-142b-4389-b7f2-fa8a3c68c467 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Wg5EZoWES8MRzFfQ1PfHgI2bV2FLQTfJXN0wNfwG41bfiKiWa7Wja8ReI9Zng+JSmAKh+sbKobdUfkSzJfGBpeSZ1WpEKTn7BTGqXF7ysUQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PUYP216MB2872 Content-Type: text/plain; charset="utf-8" From: Jackson Lee When multi instances are created/destroyed, many interrupts happens or structures for decoder are removed. "struct vpu_instance" this structure is shared for all flow in decoder, so if the structure is not protected by lock, Null reference exception could happens sometimes. IRQ Handler was spilt to two phases and Lock was added as well. Fixes: 9707a6254a8a ("media: chips-media: wave5: Add the v4l2 layer") Signed-off-by: Jackson Lee Signed-off-by: Nas Chung --- .../platform/chips-media/wave5/wave5-helper.c | 10 ++- .../chips-media/wave5/wave5-vpu-dec.c | 5 ++ .../chips-media/wave5/wave5-vpu-enc.c | 5 ++ .../platform/chips-media/wave5/wave5-vpu.c | 69 ++++++++++++++++--- .../platform/chips-media/wave5/wave5-vpuapi.h | 6 ++ 5 files changed, 86 insertions(+), 9 deletions(-) diff --git a/drivers/media/platform/chips-media/wave5/wave5-helper.c b/driv= ers/media/platform/chips-media/wave5/wave5-helper.c index 2c9d8cbca6e4..5d9969bb7ada 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-helper.c +++ b/drivers/media/platform/chips-media/wave5/wave5-helper.c @@ -49,7 +49,7 @@ void wave5_cleanup_instance(struct vpu_instance *inst) v4l2_fh_del(&inst->v4l2_fh); v4l2_fh_exit(&inst->v4l2_fh); } - list_del_init(&inst->list); + kfifo_free(&inst->irq_status); ida_free(&inst->dev->inst_ida, inst->id); kfree(inst->codec_info); kfree(inst); @@ -61,8 +61,16 @@ int wave5_vpu_release_device(struct file *filp, { struct vpu_instance *inst =3D wave5_to_vpu_inst(filp->private_data); int ret =3D 0; + unsigned long flags; =20 v4l2_m2m_ctx_release(inst->v4l2_fh.m2m_ctx); + ret =3D mutex_lock_interruptible(&inst->dev->irq_lock); + if (ret) + return ret; + spin_lock_irqsave(&inst->dev->irq_spinlock, flags); + list_del_init(&inst->list); + spin_unlock_irqrestore(&inst->dev->irq_spinlock, flags); + mutex_unlock(&inst->dev->irq_lock); if (inst->state !=3D VPU_INST_STATE_NONE) { u32 fail_res; =20 diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c b/dri= vers/media/platform/chips-media/wave5/wave5-vpu-dec.c index fd71f0c43ac3..32de43de1870 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c @@ -1811,6 +1811,11 @@ static int wave5_vpu_open_dec(struct file *filp) inst->xfer_func =3D V4L2_XFER_FUNC_DEFAULT; =20 init_completion(&inst->irq_done); + ret =3D kfifo_alloc(&inst->irq_status, 16 * sizeof(int), GFP_KERNEL); + if (ret) { + dev_err(inst->dev->dev, "failed to allocate fifo\n"); + goto cleanup_inst; + } =20 inst->id =3D ida_alloc(&inst->dev->inst_ida, GFP_KERNEL); if (inst->id < 0) { diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c b/dri= vers/media/platform/chips-media/wave5/wave5-vpu-enc.c index 1e5fc5f8b856..52a1a00fd9bb 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c @@ -1760,6 +1760,11 @@ static int wave5_vpu_open_enc(struct file *filp) inst->frame_rate =3D 30; =20 init_completion(&inst->irq_done); + ret =3D kfifo_alloc(&inst->irq_status, 16 * sizeof(int), GFP_KERNEL); + if (ret) { + dev_err(inst->dev->dev, "failed to allocate fifo\n"); + goto cleanup_inst; + } =20 inst->id =3D ida_alloc(&inst->dev->inst_ida, GFP_KERNEL); if (inst->id < 0) { diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu.c b/drivers= /media/platform/chips-media/wave5/wave5-vpu.c index e1715d3f43b0..a2c09523d76b 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpu.c +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu.c @@ -51,8 +51,11 @@ static void wave5_vpu_handle_irq(void *dev_id) u32 seq_done; u32 cmd_done; u32 irq_reason; - struct vpu_instance *inst; + u32 irq_subreason; + struct vpu_instance *inst, *tmp; struct vpu_device *dev =3D dev_id; + int val; + unsigned long flags; =20 irq_reason =3D wave5_vdi_read_register(dev, W5_VPU_VINT_REASON); seq_done =3D wave5_vdi_read_register(dev, W5_RET_SEQ_DONE_INSTANCE_INFO); @@ -60,7 +63,8 @@ static void wave5_vpu_handle_irq(void *dev_id) wave5_vdi_write_register(dev, W5_VPU_VINT_REASON_CLR, irq_reason); wave5_vdi_write_register(dev, W5_VPU_VINT_CLEAR, 0x1); =20 - list_for_each_entry(inst, &dev->instances, list) { + spin_lock_irqsave(&dev->irq_spinlock, flags); + list_for_each_entry_safe(inst, tmp, &dev->instances, list) { =20 if (irq_reason & BIT(INT_WAVE5_INIT_SEQ) || irq_reason & BIT(INT_WAVE5_ENC_SET_PARAM)) { @@ -82,14 +86,22 @@ static void wave5_vpu_handle_irq(void *dev_id) irq_reason & BIT(INT_WAVE5_ENC_PIC)) { if (cmd_done & BIT(inst->id)) { cmd_done &=3D ~BIT(inst->id); - wave5_vdi_write_register(dev, W5_RET_QUEUE_CMD_DONE_INST, - cmd_done); - inst->ops->finish_process(inst); + if (dev->irq >=3D 0) { + irq_subreason =3D + wave5_vdi_read_register(dev, W5_VPU_VINT_REASON); + if (!(irq_subreason & BIT(INT_WAVE5_DEC_PIC))) + wave5_vdi_write_register(dev, + W5_RET_QUEUE_CMD_DONE_INST, + cmd_done); + } + val =3D BIT(INT_WAVE5_DEC_PIC); + kfifo_in(&inst->irq_status, &val, sizeof(int)); } } - - wave5_vpu_clear_interrupt(inst, irq_reason); } + spin_unlock_irqrestore(&dev->irq_spinlock, flags); + + up(&dev->irq_sem); } =20 static irqreturn_t wave5_vpu_irq_thread(int irq, void *dev_id) @@ -121,6 +133,35 @@ static enum hrtimer_restart wave5_vpu_timer_callback(s= truct hrtimer *timer) return HRTIMER_RESTART; } =20 +static int irq_thread(void *data) +{ + struct vpu_device *dev =3D (struct vpu_device *)data; + struct vpu_instance *inst, *tmp; + int irq_status, ret; + + while (!kthread_should_stop()) { + if (down_interruptible(&dev->irq_sem)) + continue; + + if (kthread_should_stop()) + break; + + mutex_lock(&dev->irq_lock); + list_for_each_entry_safe(inst, tmp, &dev->instances, list) { + while (kfifo_len(&inst->irq_status)) { + ret =3D kfifo_out(&inst->irq_status, &irq_status, sizeof(int)); + if (!ret) + break; + + inst->ops->finish_process(inst); + } + } + mutex_unlock(&dev->irq_lock); + } + + return 0; +} + static int wave5_vpu_load_firmware(struct device *dev, const char *fw_name, u32 *revision) { @@ -224,6 +265,8 @@ static int wave5_vpu_probe(struct platform_device *pdev) =20 mutex_init(&dev->dev_lock); mutex_init(&dev->hw_lock); + mutex_init(&dev->irq_lock); + spin_lock_init(&dev->irq_spinlock); dev_set_drvdata(&pdev->dev, dev); dev->dev =3D &pdev->dev; =20 @@ -266,6 +309,10 @@ static int wave5_vpu_probe(struct platform_device *pde= v) } dev->product =3D wave5_vpu_get_product_id(dev); =20 + sema_init(&dev->irq_sem, 1); + INIT_LIST_HEAD(&dev->instances); + dev->irq_thread =3D kthread_run(irq_thread, dev, "irq thread"); + dev->irq =3D platform_get_irq(pdev, 0); if (dev->irq < 0) { dev_err(&pdev->dev, "failed to get irq resource, falling back to polling= \n"); @@ -288,7 +335,6 @@ static int wave5_vpu_probe(struct platform_device *pdev) } } =20 - INIT_LIST_HEAD(&dev->instances); ret =3D v4l2_device_register(&pdev->dev, &dev->v4l2_dev); if (ret) { dev_err(&pdev->dev, "v4l2_device_register, fail: %d\n", ret); @@ -351,6 +397,12 @@ static void wave5_vpu_remove(struct platform_device *p= dev) { struct vpu_device *dev =3D dev_get_drvdata(&pdev->dev); =20 + if (dev->irq_thread) { + kthread_stop(dev->irq_thread); + up(&dev->irq_sem); + dev->irq_thread =3D NULL; + } + if (dev->irq < 0) { kthread_destroy_worker(dev->worker); hrtimer_cancel(&dev->hrtimer); @@ -361,6 +413,7 @@ static void wave5_vpu_remove(struct platform_device *pd= ev) =20 mutex_destroy(&dev->dev_lock); mutex_destroy(&dev->hw_lock); + mutex_destroy(&dev->irq_lock); reset_control_assert(dev->resets); clk_bulk_disable_unprepare(dev->num_clks, dev->clks); wave5_vpu_enc_unregister_device(dev); diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpuapi.h b/driv= ers/media/platform/chips-media/wave5/wave5-vpuapi.h index 45615c15beca..f3c1ad6fb3be 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpuapi.h +++ b/drivers/media/platform/chips-media/wave5/wave5-vpuapi.h @@ -8,6 +8,7 @@ #ifndef VPUAPI_H_INCLUDED #define VPUAPI_H_INCLUDED =20 +#include #include #include #include @@ -747,6 +748,7 @@ struct vpu_device { struct video_device *video_dev_enc; struct mutex dev_lock; /* lock for the src, dst v4l2 queues */ struct mutex hw_lock; /* lock hw configurations */ + struct mutex irq_lock; int irq; enum product_id product; struct vpu_attr attr; @@ -764,7 +766,10 @@ struct vpu_device { struct kthread_worker *worker; int vpu_poll_interval; int num_clks; + struct task_struct *irq_thread; + struct semaphore irq_sem; struct reset_control *resets; + spinlock_t irq_spinlock; /* protect instances list */ }; =20 struct vpu_instance; @@ -788,6 +793,7 @@ struct vpu_instance { enum v4l2_ycbcr_encoding ycbcr_enc; enum v4l2_quantization quantization; =20 + struct kfifo irq_status; enum vpu_instance_state state; enum vpu_instance_type type; const struct vpu_instance_ops *ops; --=20 2.43.0 From nobody Sun Dec 14 12:34:19 2025 Received: from SEVP216CU002.outbound.protection.outlook.com (mail-koreacentralazon11022104.outbound.protection.outlook.com [40.107.43.104]) (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 4373728F3; Thu, 22 May 2025 07:26:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.43.104 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747898783; cv=fail; b=nOuXsKiBTg2oJLK9UANx67Fev2XA7rEmI1f3u2xnVpD+BAYHleZJJVgPSZoNCTRyP0r20PFVVzvAVWQGh4mGGNjQzezbctE9CSnqmFfEjiIfdFh6m9LBSLUDjeYuvOi7So90HXcUCRYECHdQg1LQNWV04v0v5PKrgo+nchZhGbM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747898783; c=relaxed/simple; bh=GjcU4TiyXpTgUB4N6SmrycrijuRGAbrdxjN1FirKEWs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=O2IEJAg4ck4AJTQAwy2Tmaq9BO/06z7JoSz/RuBc3tYawl5qyjiGtnwm2f5QPoNfn0LtX5COo0cgBHZh477Xb95IzY/a/SSmG/XS2tr67BAGsgt26uMD963372Nra+EZVbLANu7LsBBAkqnYeZ34C8s4ANqOyAJtbTvV6kp+45I= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=chipsnmedia.com; spf=fail smtp.mailfrom=chipsnmedia.com; dkim=pass (1024-bit key) header.d=chipsnmedia.com header.i=@chipsnmedia.com header.b=M9wcm8Cj; arc=fail smtp.client-ip=40.107.43.104 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=chipsnmedia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=chipsnmedia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chipsnmedia.com header.i=@chipsnmedia.com header.b="M9wcm8Cj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Vt9oo4tc+IOH03bSF5VYQQt1uar2ICLEfGz5dm3OTYNpbRxkX3Tb7fOLewKNTQ9YFrv9CZWtQHBbLNKmQQ48SI+K1tuEHX5/TYm40DGE5yql3JEreTKKOMe28JIaV8Oby/unFciutpOdmwdFhge4YHo5WaOYGFUj1N70WFl5XPpspx6rolRgXSf7UeMXr2S2EK1/W0v8A20rJFgymyB0Xn3wEo0rskKM/uF5Xuk0otNu4F7nmjrF5sIlSXIp4hyJKrlk6Jx2krWQhAON91o6yvmh/CldW7FPEgTrg+cXirqYQRVqvuex7l/CuWbAc8A7wPs0BveNLs2NUO+XTG9/kQ== 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=ROdWuiLnRZCj9WCMcfOqRvY3cFL1BWpGXwM0gxQtMs0=; b=vdPiheEks0fSBBd31ZCjsUK4jADbi34RZXmeTUfvFWK/9Vm5Wdg0grmg6c+pagPKWpJXRCJ4X1z077ynRDNkpSVZd2AlEyjFPTtxOaBU7Fo/pJcCjzo4EviM2n6mjfuXo8WxmexOc35Ef73hEVQTIxC6pmOUWS2RzTQlUV8ZU9fEX/L6LihA0LKHmV+S5xmgd2zH+/ttGk6OTRm6O5T6/KldO82kW2jnjeEJ/vA082tixM8+yGqr6CfL4OVQ21AxOFvjvBls9jOWbp8+AUTy2qOJ3dW8CFsbi04m0A4zlrEN61pVGhy7NKaLF9Jk4S3GminWOdxoqtbzt/XXQNlHtA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=chipsnmedia.com; dmarc=pass action=none header.from=chipsnmedia.com; dkim=pass header.d=chipsnmedia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chipsnmedia.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ROdWuiLnRZCj9WCMcfOqRvY3cFL1BWpGXwM0gxQtMs0=; b=M9wcm8CjEEg5Y/IiAdNA61RGEtmEA+mRwBMmmMPDyMYbXKNc1zs93/yqdMCiZDDvED2Wavbpu8mwK5LYABPkYSFIb3FoJ1fQnno4D11w1ztO7jOFjqvKqlAavsxUEhe/6TTlkBtciIfpYMnc6m7QTEcblG2rDsl7h5poTvDuni0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=chipsnmedia.com; Received: from SE1P216MB1303.KORP216.PROD.OUTLOOK.COM (2603:1096:101:15::5) by PUYP216MB2872.KORP216.PROD.OUTLOOK.COM (2603:1096:301:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.20; Thu, 22 May 2025 07:26:16 +0000 Received: from SE1P216MB1303.KORP216.PROD.OUTLOOK.COM ([fe80::b711:5ab1:b5a4:d01b]) by SE1P216MB1303.KORP216.PROD.OUTLOOK.COM ([fe80::b711:5ab1:b5a4:d01b%5]) with mapi id 15.20.8769.019; Thu, 22 May 2025 07:26:16 +0000 From: "Jackson.lee" To: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, sebastian.fricke@collabora.com, nicolas.dufresne@collabora.com, bob.beckett@collabora.com, dafna.hirschfeld@collabora.com Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, jackson.lee@chipsnmedia.com, lafley.kim@chipsnmedia.com, b-brnich@ti.com, hverkuil@xs4all.nl, nas.chung@chipsnmedia.com Subject: [PATCH v2 2/7] media: chips-media: wave5: Improve performance of decoder Date: Thu, 22 May 2025 16:26:01 +0900 Message-Id: <20250522072606.51-3-jackson.lee@chipsnmedia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250522072606.51-1-jackson.lee@chipsnmedia.com> References: <20250522072606.51-1-jackson.lee@chipsnmedia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SEWP216CA0071.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2bc::13) To SE1P216MB1303.KORP216.PROD.OUTLOOK.COM (2603:1096:101:15::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SE1P216MB1303:EE_|PUYP216MB2872:EE_ X-MS-Office365-Filtering-Correlation-Id: 0fd66015-a571-4370-876d-08dd9901f07e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|376014|7416014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?5BgNjVC/ZQtL5K/r37hAzBG73Inmc0xJJhi3xBEZ9i0tZQcjv9g/D7ByiGcV?= =?us-ascii?Q?4HbGkZVOkJvGdrdbf1UfG9SSdSElSKhYjKxEk/Rz7jnu13eWuT4sZCjEhIBF?= =?us-ascii?Q?4KSzS8bAkn6Bg/5G6H4CiQfFX3bCMC30CACZoTosTFVVaoBsxZ+HxoP12CXl?= =?us-ascii?Q?AGRNxMPkKXlZ6d32v+lvCH1YNn7vdMufOGbW6zczZKvENDnqFZZ5tfzFP9D4?= =?us-ascii?Q?22Orv+msNKWAUdtBVVr7kADe8pkT/AbX7OPh4TqaE2FO90thLHfZTI8CZZzN?= =?us-ascii?Q?2isOHh8R1U5N1rQFoSbOzuQTTZ1tBInMEgcgNoI37L7JenBlR0yH8lusy1fl?= =?us-ascii?Q?NZQtKk4H2OEmA7d7eA7XrzXMqrfoIMaM16Z3OxNhUwu+vF4GFjBeZWSHyRAK?= =?us-ascii?Q?/WVqmKRznVYaAxHEgqg55q0oNwjcSL2uK8ZT1DpSrPV7DAAHzTehe9P+8+vp?= =?us-ascii?Q?0AafOMDMVH2tC43d3VFG/ok9rdXxlFhi2rLHDIQv4sGKYGc8Cq6NN/3wL0We?= =?us-ascii?Q?4tNwNbiitQFHleqUJfWuK6S4+CGoAWxEOyUgs/g5o7L3D2OKG+Bg3u1EopeB?= =?us-ascii?Q?7HWPOALVxihmYnmh8O7SWqd1I7PR2kIzGZxfknK/rycWfirZ0mN9awXbQxut?= =?us-ascii?Q?+QiSBj+V3Z6HvOr/sbHWSVnxVlzRIoQG4jLBQsgAX2+jJw+We+4dxCCPcXpy?= =?us-ascii?Q?8LMWpEtfamrQ8IUxl50/jL29YvJO5/ez6WwyL1jyxe4QVQGDBIm4IyvW1VQQ?= =?us-ascii?Q?Ns6FbDReu+e5E68umR+os6Iq6leXf6W44XmCVOTZT6hKMrICbEKdDvnNbPys?= =?us-ascii?Q?Zo2eXJhcKy02Uv9imCa3ZHwd0RMVvNvE3eOL9SJ3LA1Xn1iJvUmX+0iUNx/o?= =?us-ascii?Q?mv38PXz91PjRgmo3K/GTHHbWXAwA4Ehuy9+OtUbyDdoxMjhEVL0ljnV5BWOZ?= =?us-ascii?Q?QpVfsavmhHGkmKJxQZXzyDmdQNh5qm4hsy8/asrL9ghLSj+Yi9nftihVAoKY?= =?us-ascii?Q?ITmkyWZIqLGHgUrkDHs+AuNUlT173LSFiRZGWRZnCmGIT9iLNsd0uWY3m44Q?= =?us-ascii?Q?f6JpfJs/mp/S8LzOc9nNz81oxM4aagmO2jY3a5V/DmTcdgyLGSZijfOsFf7/?= =?us-ascii?Q?kzDLdclqPGou1QWts3v/mD7z8JHOoc1brsi+LYvuDTnqHMO6sRPbeT0mpGxm?= =?us-ascii?Q?sCpdQ4FlGXo/TzbFLktrH+owHYtp+AKPyLSi3Y+32PNO56f2T5b9/WtE1SBf?= =?us-ascii?Q?grWDQkxlRtZY1EuS97ZtKMx7u5Yi4qo8g+/d6d+pE96UGJE+ZNS77hTiUscE?= =?us-ascii?Q?2HS5QHYDgBcceMFnGzkpTNf3j/h0Ga4GAml0QeUoPNa9iotpaC+MXhGk+XkS?= =?us-ascii?Q?1JAgs4FA2zTAnQNgkirZtqGxUITt6aklk/JOb4Ux3s5+6ahs8Jsu1eRQ2bFj?= =?us-ascii?Q?TDm9QArnn+8aXgEbtLo4IuxzdkdOd7iEF77gs2EbIHa1eojGeLVrvQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SE1P216MB1303.KORP216.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(376014)(7416014)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ycTAjm9uPGzm5sKY6pQaRaT1OQqW5n1LpZZEZOkemwKG3BOfCfla38PG7qAz?= =?us-ascii?Q?0LdDqQ566nBBHPls3irqv6y58R5TgeQpwRsZOoTSNX+AFrq71xyDyUHv49sZ?= =?us-ascii?Q?ec/BbE93eMWSg6z3pBJ23eFH5YEblkYJ1Ak7nKvHAKRjDDL5lD0hrDzuiePN?= =?us-ascii?Q?D81LQ9PTlOQhRM59Vi8XqqY94d5eZgjnFh7Qu7VnBk0mvwAHVkGSswTcGqum?= =?us-ascii?Q?pBNenQPhoSswW6ncdSBhAQah+/t9uTOTxvwIgIKOszQ6mSZZQyOkOGs/e3I7?= =?us-ascii?Q?2bLQPd2C26A5st6qM5kUVmGldUQDUWsPMsxEZXZTr5jcBFJ4NRwkmzoPdY8F?= =?us-ascii?Q?j+c6C0StcCCTqJODkpVuarGFsDQSUquQ4yF8dykgJxplRNwM+Rsc5D4kOFVL?= =?us-ascii?Q?fte2AL2y3xjKd2vSf0Op0lvEEALbzrjyrfgrdBKuTQBSFaLYCegcOsdN7+WT?= =?us-ascii?Q?STq5HOUKp+QPrlw+ptVXLT4j8gbGpwHifmmRNPkptUXyTeAA4+lcMtSlPFV9?= =?us-ascii?Q?euRJO6JgawAdSjz/fT9TnHCwaffoNFsyUzj29d3A8HQqiptKbG7PHO9DOL5l?= =?us-ascii?Q?nL/L990CvMrWTOYcX36bY2VNTERoQiB1TrSUeHl9lDQ3o36OBHCb+TZdhtf0?= =?us-ascii?Q?/KDBBCM63zmzJ8EnRzscTlM0G/KfWn0hDoQFxCHIDE0IAR0dPpK1+mUsbjPd?= =?us-ascii?Q?Jn8TahVtnTbBlnK+Kbb6vmk9OWGWTtEj7VTAtnGlZbIkYPSVqIGO9kp0HIER?= =?us-ascii?Q?+uVGVyI1mLY/Hac8s1pSaozU7A+Rx8jvgMYscvDJJ/Ep5oqj9FRkY1oKvkLS?= =?us-ascii?Q?0rbZuFVBPzyzCSx9efCtboKTpoKQkI8qTeb9A7fhYCKCXuL+efwDBHa7dleo?= =?us-ascii?Q?fjuuOyNwMxdY2qDL34yVlFSH2ocV62SuyPXgtkXal8znBt0xJ58DFHBl+7Mf?= =?us-ascii?Q?8Iz96VkBVPnw24jiIZUuGlDpB6LmSOuyGjc/kgqLHvdw2WeP4X8LL08s1veh?= =?us-ascii?Q?D0XeELfriUu+EGTH0RQ7c/8biDrEdUlnm7GwNZdBAjC72TVRpzQPRTc6DsYJ?= =?us-ascii?Q?3F0aBUU8kETQE1KSvFmpzwlddT6FhYVb9U8TbVJAgpIckPBzjTFuhu9KQpRg?= =?us-ascii?Q?KRYemr1AVwAI9QuyXG0VZeJb7iuQqioxy0S6JeILXTFqjOKboxZs8qAAp6bo?= =?us-ascii?Q?KFPaZzsWJim+PfKbvK9dZK5Irhr42g05B+hjXGVg+O7nVF3rkIDZQpSqZDOZ?= =?us-ascii?Q?Ei6hNgiON54QnczrJrZcukkleXqnHaCuPxjAnWwSu9QMBAjt1ojoYshofszV?= =?us-ascii?Q?AmIA6bH37hb1nT3JR++lckDLIbVh9zNXVGrOKYBVrpzChneGvbDOt1zn5vLw?= =?us-ascii?Q?HKKCvFQJqIMa0xlW4oJIiz67MsYredG6vlO9sRjDko59vWuQMqhdanjZ2xQO?= =?us-ascii?Q?V74BtBrYtjvEYXqJNqNskXx9lAd+UkhW4graGVxsmJcliiyIOVmtcWjh1ynS?= =?us-ascii?Q?5MjdIVoQWG2rj0RNGzHtql5Gx217A0sT8UUMt+9IUdkzNWLQbKVhykNc+pxI?= =?us-ascii?Q?Mjp4HGcwtfpX4sg89xc7iAZbWA9B8bvOLO/RfbZPhpLutpJIgpn1q55xJd/N?= =?us-ascii?Q?dw=3D=3D?= X-OriginatorOrg: chipsnmedia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0fd66015-a571-4370-876d-08dd9901f07e X-MS-Exchange-CrossTenant-AuthSource: SE1P216MB1303.KORP216.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2025 07:26:16.7523 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4d70c8e9-142b-4389-b7f2-fa8a3c68c467 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OtEqgTiHU8H3fp43PkECW8c3eta7TSMFw3D2HDx/piF7fxIdzS/SqNminbiiv3vANIzhkq/PP20FBoipaCaGGhl58SE1fatLhHf/nCyUcO0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PUYP216MB2872 Content-Type: text/plain; charset="utf-8" From: Jackson Lee The current decoding method was to wait until each frame was decoded after feeding a bitstream. As a result, performance was low and Wave5 could not achieve max pixel processing rate. Update driver to use an asynchronous approach for decoding and feeding a bitstream in order to achieve full capabilities of the device. WAVE5 supports command-queueing to maximize performance by pipelining internal commands and by hiding wait cycle taken to receive a command from Host processor. Instead of waiting for each command to be executed before sending the next command, Host processor just places all the commands in the command-queue and goes on doing other things while the commands in the queue are processed by VPU. While Host processor handles its own tasks, it can receive VPU interrupt request (IRQ). In this case, host processor can simply exit interrupt service routine (ISR) without accessing to host interface to read the result of the command reported by VPU. After host processor completed its tasks, host processor can read the command result when host processor needs the reports and does response processing. To archive this goal, the device_run() calls v4l2_m2m_job_finish so that next command can be sent to VPU continuously, if there is any result, then irq is triggered and gets decoded frames and returns them to upper layer. Theses processes work independently each other without waiting a decoded frame. Signed-off-by: Jackson Lee Signed-off-by: Nas Chung --- .../platform/chips-media/wave5/wave5-hw.c | 2 +- .../chips-media/wave5/wave5-vpu-dec.c | 84 +++++++++++-------- .../platform/chips-media/wave5/wave5-vpuapi.c | 2 + .../platform/chips-media/wave5/wave5-vpuapi.h | 3 + 4 files changed, 57 insertions(+), 34 deletions(-) diff --git a/drivers/media/platform/chips-media/wave5/wave5-hw.c b/drivers/= media/platform/chips-media/wave5/wave5-hw.c index d94cf84c3ee5..687ce6ccf3ae 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-hw.c +++ b/drivers/media/platform/chips-media/wave5/wave5-hw.c @@ -102,7 +102,7 @@ static void _wave5_print_reg_err(struct vpu_device *vpu= _dev, u32 reg_fail_reason dev_dbg(dev, "%s: queueing failure: 0x%x\n", func, reg_val); break; case WAVE5_SYSERR_RESULT_NOT_READY: - dev_err(dev, "%s: result not ready: 0x%x\n", func, reg_fail_reason); + dev_dbg(dev, "%s: result not ready: 0x%x\n", func, reg_fail_reason); break; case WAVE5_SYSERR_ACCESS_VIOLATION_HW: dev_err(dev, "%s: access violation: 0x%x\n", func, reg_fail_reason); diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c b/dri= vers/media/platform/chips-media/wave5/wave5-vpu-dec.c index 32de43de1870..995234a3a6d6 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c @@ -347,13 +347,12 @@ static void wave5_vpu_dec_finish_decode(struct vpu_in= stance *inst) struct vb2_v4l2_buffer *dec_buf =3D NULL; struct vb2_v4l2_buffer *disp_buf =3D NULL; struct vb2_queue *dst_vq =3D v4l2_m2m_get_dst_vq(m2m_ctx); - struct queue_status_info q_status; =20 dev_dbg(inst->dev->dev, "%s: Fetch output info from firmware.", __func__); =20 ret =3D wave5_vpu_dec_get_output_info(inst, &dec_info); if (ret) { - dev_warn(inst->dev->dev, "%s: could not get output info.", __func__); + dev_dbg(inst->dev->dev, "%s: could not get output info.", __func__); v4l2_m2m_job_finish(inst->v4l2_m2m_dev, m2m_ctx); return; } @@ -441,20 +440,6 @@ static void wave5_vpu_dec_finish_decode(struct vpu_ins= tance *inst) } spin_unlock_irqrestore(&inst->state_spinlock, flags); } - - /* - * During a resolution change and while draining, the firmware may flush - * the reorder queue regardless of having a matching decoding operation - * pending. Only terminate the job if there are no more IRQ coming. - */ - wave5_vpu_dec_give_command(inst, DEC_GET_QUEUE_STATUS, &q_status); - if (q_status.report_queue_count =3D=3D 0 && - (q_status.instance_queue_count =3D=3D 0 || dec_info.sequence_changed)= ) { - dev_dbg(inst->dev->dev, "%s: finishing job.\n", __func__); - pm_runtime_mark_last_busy(inst->dev->dev); - pm_runtime_put_autosuspend(inst->dev->dev); - v4l2_m2m_job_finish(inst->v4l2_m2m_dev, m2m_ctx); - } } =20 static int wave5_vpu_dec_querycap(struct file *file, void *fh, struct v4l2= _capability *cap) @@ -1146,8 +1131,8 @@ static int write_to_ringbuffer(struct vpu_instance *i= nst, void *buffer, size_t b static int fill_ringbuffer(struct vpu_instance *inst) { struct v4l2_m2m_ctx *m2m_ctx =3D inst->v4l2_fh.m2m_ctx; - struct v4l2_m2m_buffer *buf, *n; - int ret; + struct vpu_src_buffer *vpu_buf; + int ret =3D 0; =20 if (m2m_ctx->last_src_buf) { struct vpu_src_buffer *vpu_buf =3D wave5_to_vpu_src_buf(m2m_ctx->last_sr= c_buf); @@ -1158,9 +1143,8 @@ static int fill_ringbuffer(struct vpu_instance *inst) } } =20 - v4l2_m2m_for_each_src_buf_safe(m2m_ctx, buf, n) { - struct vb2_v4l2_buffer *vbuf =3D &buf->vb; - struct vpu_src_buffer *vpu_buf =3D wave5_to_vpu_src_buf(vbuf); + list_for_each_entry(vpu_buf, &inst->avail_src_bufs, list) { + struct vb2_v4l2_buffer *vbuf =3D &vpu_buf->v4l2_m2m_buf.vb; struct vpu_buf *ring_buffer =3D &inst->bitstream_vbuf; size_t src_size =3D vb2_get_plane_payload(&vbuf->vb2_buf, 0); void *src_buf =3D vb2_plane_vaddr(&vbuf->vb2_buf, 0); @@ -1220,9 +1204,13 @@ static int fill_ringbuffer(struct vpu_instance *inst) dev_dbg(inst->dev->dev, "last src buffer written to the ring buffer\n"); break; } + + inst->queuing_num++; + list_del_init(&vpu_buf->list); + break; } =20 - return 0; + return ret; } =20 static void wave5_vpu_dec_buf_queue_src(struct vb2_buffer *vb) @@ -1236,6 +1224,11 @@ static void wave5_vpu_dec_buf_queue_src(struct vb2_b= uffer *vb) vbuf->sequence =3D inst->queued_src_buf_num++; =20 v4l2_m2m_buf_queue(m2m_ctx, vbuf); + + INIT_LIST_HEAD(&vpu_buf->list); + mutex_lock(&inst->feed_lock); + list_add_tail(&vpu_buf->list, &inst->avail_src_bufs); + mutex_unlock(&inst->feed_lock); } =20 static void wave5_vpu_dec_buf_queue_dst(struct vb2_buffer *vb) @@ -1385,6 +1378,13 @@ static int streamoff_output(struct vb2_queue *q) dma_addr_t new_rd_ptr; struct dec_output_info dec_info; unsigned int i; + struct vpu_src_buffer *vpu_buf, *tmp; + + inst->retry =3D false; + inst->queuing_num =3D 0; + + list_for_each_entry_safe(vpu_buf, tmp, &inst->avail_src_bufs, list) + list_del_init(&vpu_buf->list); =20 for (i =3D 0; i < v4l2_m2m_num_dst_bufs_ready(m2m_ctx); i++) { ret =3D wave5_vpu_dec_set_disp_flag(inst, i); @@ -1580,10 +1580,19 @@ static void wave5_vpu_dec_device_run(void *priv) =20 dev_dbg(inst->dev->dev, "%s: Fill the ring buffer with new bitstream data= ", __func__); pm_runtime_resume_and_get(inst->dev->dev); - ret =3D fill_ringbuffer(inst); - if (ret) { - dev_warn(inst->dev->dev, "Filling ring buffer failed\n"); - goto finish_job_and_return; + if (!inst->retry) { + mutex_lock(&inst->feed_lock); + ret =3D fill_ringbuffer(inst); + mutex_unlock(&inst->feed_lock); + if (ret < 0) { + dev_warn(inst->dev->dev, "Filling ring buffer failed\n"); + goto finish_job_and_return; + } else if (!inst->eos && + inst->queuing_num =3D=3D 0 && + inst->state =3D=3D VPU_INST_STATE_PIC_RUN) { + dev_dbg(inst->dev->dev, "%s: no bitstream for feeding, so skip ", __fun= c__); + goto finish_job_and_return; + } } =20 switch (inst->state) { @@ -1639,7 +1648,7 @@ static void wave5_vpu_dec_device_run(void *priv) } =20 if (q_status.instance_queue_count) { - dev_dbg(inst->dev->dev, "%s: leave with active job", __func__); + v4l2_m2m_job_finish(inst->v4l2_m2m_dev, m2m_ctx); return; } =20 @@ -1650,14 +1659,21 @@ static void wave5_vpu_dec_device_run(void *priv) dev_err(inst->dev->dev, "Frame decoding on m2m context (%p), fail: %d (result: %d)\n", m2m_ctx, ret, fail_res); - break; + goto finish_job_and_return; + } + + if (fail_res =3D=3D WAVE5_SYSERR_QUEUEING_FAIL) { + inst->retry =3D true; + } else { + inst->retry =3D false; + if (!inst->eos) + inst->queuing_num--; } - /* Return so that we leave this job active */ - dev_dbg(inst->dev->dev, "%s: leave with active job", __func__); - return; - default: - WARN(1, "Execution of a job in state %s illegal.\n", state_to_str(inst->= state)); break; + default: + dev_dbg(inst->dev->dev, "Execution of a job in state %s illegal.\n", + state_to_str(inst->state)); + } =20 finish_job_and_return: @@ -1755,6 +1771,8 @@ static int wave5_vpu_open_dec(struct file *filp) inst->ops =3D &wave5_vpu_dec_inst_ops; =20 spin_lock_init(&inst->state_spinlock); + mutex_init(&inst->feed_lock); + INIT_LIST_HEAD(&inst->avail_src_bufs); =20 inst->codec_info =3D kzalloc(sizeof(*inst->codec_info), GFP_KERNEL); if (!inst->codec_info) diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpuapi.c b/driv= ers/media/platform/chips-media/wave5/wave5-vpuapi.c index e5e879a13e8b..68d86625538f 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpuapi.c +++ b/drivers/media/platform/chips-media/wave5/wave5-vpuapi.c @@ -255,6 +255,8 @@ int wave5_vpu_dec_close(struct vpu_instance *inst, u32 = *fail_res) if (inst_count =3D=3D 1) pm_runtime_dont_use_autosuspend(vpu_dev->dev); =20 + mutex_destroy(&inst->feed_lock); + unlock_and_return: mutex_unlock(&vpu_dev->hw_lock); pm_runtime_put_sync(inst->dev->dev); diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpuapi.h b/driv= ers/media/platform/chips-media/wave5/wave5-vpuapi.h index f3c1ad6fb3be..fd0aef0bac4e 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpuapi.h +++ b/drivers/media/platform/chips-media/wave5/wave5-vpuapi.h @@ -818,6 +818,9 @@ struct vpu_instance { bool cbcr_interleave; bool nv21; bool eos; + bool retry; /* retry to feed bitstream if failure reason is WAVE5_SYSERR_= QUEUEING_FAIL*/ + int queuing_num; /* check if there is input buffer or not */ + struct mutex feed_lock; /* lock for feeding bitstream buffers */ struct vpu_buf bitstream_vbuf; dma_addr_t last_rd_ptr; size_t remaining_consumed_bytes; --=20 2.43.0 From nobody Sun Dec 14 12:34:19 2025 Received: from SEVP216CU002.outbound.protection.outlook.com (mail-koreacentralazon11022104.outbound.protection.outlook.com [40.107.43.104]) (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 D78A32222B0; Thu, 22 May 2025 07:26:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.43.104 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747898785; cv=fail; b=BerGFV7u3zKtQvmBsMpbILUHyXedFgHYjmiuXSI174lgRgNWhRC7WgAikxiDHfn/7LSXc1+8Mh3X7yaEMN52UipV7AqXfOyjmPNLPRunIhoZZVNronhm8QqUqNIsrE6fnTc+EFIQQNl67kV6FIUlWWaRkoy7gl2lI3gTDM55uuw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747898785; c=relaxed/simple; bh=jOe4KvZmx5D9MjGm4KdplfT31YVL/DtmWGF84ukE6zs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=LA5DR+29xCHivZLxRgmhpVlWQtsnijPlVZHpAzqaq2rN4LVx/v82tylJzZH3w6fGk5w4p1o9JmG8YEbnBQvLcxgiElNE1sNsqxd0E7tcmbRe4RbUd6gOuJkKEzutmzycgwYbQRl+FVT5MqeEsvHq0o/EPF4OGRQmvl81v//ZShQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=chipsnmedia.com; spf=fail smtp.mailfrom=chipsnmedia.com; dkim=pass (1024-bit key) header.d=chipsnmedia.com header.i=@chipsnmedia.com header.b=fJWQNtHA; arc=fail smtp.client-ip=40.107.43.104 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=chipsnmedia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=chipsnmedia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chipsnmedia.com header.i=@chipsnmedia.com header.b="fJWQNtHA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tDSct3wYR69yygJRof50POPZcl+5pkmyG6Ne6KewAY9qHd+nG221rOEtVFo/3tM6aHgaVA1Oz+8/iUwrg4RBRBSJMcrpUeS9l4sLeLj/ubIe/+LSDFS3baHjjgP4qDWNllCgYf3agn0WQp1uTznj0I6UcXP1iQ5ZoNyRFQkcydmnafFdX8sGLL5CKtysHXxFO5VMNvvcw7mXW/QSwnSBkFqZG6puWWry5hiqc+2YQDGCTJ3bUul1TYNkDWta5Yo3U6QSL/BHNnVTN1lf3H2K2CIiHCPAe7WOSwGVVk73o/E34XyIJaqKdCq5Qr6fZ94Ys+6j4tWULksh0/AFjyEL2Q== 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=GV2JstJY4lCPcmDx0AeG+whY7Z94zFXVak3e1r5UCKA=; b=M/WKiesmFWx3jmyw6p2fuDwyuUm7OqvcbBiIIGLQRZMXIHXqoeQbLamMx0NZHR3PzhmcNP3NMrxLBwX7Ep1FTa+u/5I99ooobqRJVl16/g3jeLQBWa7zb8BTRZVBAdGpsh0mZ5JsGil2wbXmGFyIiO1ukhlJKcFDXCOL2lwnh28slMcIr9IQ9KlOY+3siNUKRnonLt7UA86P2yJYZ9pZ6dHzZ7ufZISxqjmdZc2nnZ4Wx4hP0VVmaTqO4ZKkReVhHIdhs8OsCSYwtz18dO7Q7SYwRayrfnvqg6KU5mPX0/P6KrQYez10IhkUzTMENaNmxgksdXxxoDlaAxyRLaV5Lg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=chipsnmedia.com; dmarc=pass action=none header.from=chipsnmedia.com; dkim=pass header.d=chipsnmedia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chipsnmedia.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GV2JstJY4lCPcmDx0AeG+whY7Z94zFXVak3e1r5UCKA=; b=fJWQNtHAQDIgUshQYPjxTVo5zH1B/F5QtoQZyV/KXxXA8fP2JN+h3wphftXpDBuLbZ2/g9/py/h+YCJqic3MsngInWerxGA/y1X3lBRQxTEOggLhdT4mCQYvSstui2mLKcc3IDG2M/LBe9ALCrqjrvpVGCnWA24TzN4vLJ0kqtE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=chipsnmedia.com; Received: from SE1P216MB1303.KORP216.PROD.OUTLOOK.COM (2603:1096:101:15::5) by PUYP216MB2872.KORP216.PROD.OUTLOOK.COM (2603:1096:301:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.20; Thu, 22 May 2025 07:26:17 +0000 Received: from SE1P216MB1303.KORP216.PROD.OUTLOOK.COM ([fe80::b711:5ab1:b5a4:d01b]) by SE1P216MB1303.KORP216.PROD.OUTLOOK.COM ([fe80::b711:5ab1:b5a4:d01b%5]) with mapi id 15.20.8769.019; Thu, 22 May 2025 07:26:17 +0000 From: "Jackson.lee" To: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, sebastian.fricke@collabora.com, nicolas.dufresne@collabora.com, bob.beckett@collabora.com, dafna.hirschfeld@collabora.com Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, jackson.lee@chipsnmedia.com, lafley.kim@chipsnmedia.com, b-brnich@ti.com, hverkuil@xs4all.nl, nas.chung@chipsnmedia.com Subject: [PATCH v2 3/7] media: chips-media: wave5: Fix not to be closed Date: Thu, 22 May 2025 16:26:02 +0900 Message-Id: <20250522072606.51-4-jackson.lee@chipsnmedia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250522072606.51-1-jackson.lee@chipsnmedia.com> References: <20250522072606.51-1-jackson.lee@chipsnmedia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SEWP216CA0071.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2bc::13) To SE1P216MB1303.KORP216.PROD.OUTLOOK.COM (2603:1096:101:15::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SE1P216MB1303:EE_|PUYP216MB2872:EE_ X-MS-Office365-Filtering-Correlation-Id: 6fb84c26-e03d-4d79-e3ab-08dd9901f0bd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|376014|7416014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?fmp8xWxw2EhPCvUKwV6kaw3AHr53AxWtHO/uLtyQJXli/oQVbpjFi2PVMARt?= =?us-ascii?Q?PcAji36lnXKqCkLKASmm1tzBA4H9n5voQ0HI/dW166ZuiSUQaAOJIrY02H1Q?= =?us-ascii?Q?sr71MgXvVL7/TlfqbibgsX2DGPRJWWJRoXId3kJ+C9+CZEQXICGZjH/nJsQO?= =?us-ascii?Q?xg5Go04SkpBMgS2a7GJFHL4kl6hfxE27AOso99wmD8SUJbLTdzsdRQ1GeKqV?= =?us-ascii?Q?vYLzWpgZZiCPXe2ZOu1FMlJvKAsa7Uvoki5L15yfi1vhEq8dGfgIccvOZ4rw?= =?us-ascii?Q?U+ns65KhWnxlXH2UlCIFmn+ox4RdkAPCOKLTkU+p6fCsZ7CXAKcJzwckHLBe?= =?us-ascii?Q?yNDEsVudDH09RG0GNXqzPZ2HBttsoc6OQWlFW9SwnVS8PidxhtSrohKCmrif?= =?us-ascii?Q?pA8DOABhzo7GMyE2j73HujeRxDUlSlGoOJwWECKNt+KcxSMn9UsaoC9dMJDT?= =?us-ascii?Q?a/q36crafy3sw+bULqQ5nwMZcmwwU2QCXXbpnuyxPRBuBbUWitIIqq84miqd?= =?us-ascii?Q?zasT5HWAhUtqAeWe0rHV89UPxSBD1zf6v/ypAZUtS+nLWpL8/0S0Bs3YW0ff?= =?us-ascii?Q?xbbBvD1QRjfJOhh5NWHdpxCV77tNPhD0SMe1TszcInxZIv+CenkLqDWtdEhP?= =?us-ascii?Q?H8N8CyYwhffIqkec7Z9UdLjEfas1H7Aij0qwoAoX9TKyM370eoq41PEMUNuL?= =?us-ascii?Q?jz1/cmEyB/tmr7fszo/gnXy3XdIiD/nZ8cw8Q+kvR77gk/Nzd3Hp1UAQe8aY?= =?us-ascii?Q?ykKTE4gSd/v2tsRBqKAY1LmiUZPuW0HVT2Q4XAyBl+uvmYfqqSwek+aGWgIv?= =?us-ascii?Q?C118lLQiHTsywBI5bIFuQiLKDVzw6I2XSkH/PeKNbvSppxeiqaaJqUYGFC0o?= =?us-ascii?Q?9fGqrn1wiaS9Swl7KHq8ujdcX2RrGGK7ZA5krq3qNioQ2wKsKX4kpLH3XQTA?= =?us-ascii?Q?cAePOewidvb8H8J+q8TZh8YdT1UlaatTFvAHotQiBcblG1PNsQTgtTC7tbUk?= =?us-ascii?Q?ECdWbPJlKz+jUCqBOxZd7H/rsizVNwYd9QC52FMvBv/z0XhC+veLwJRuZTjz?= =?us-ascii?Q?qRHKKdU2vwRP+k8XYijxR3Q9/sQhdPiDduSNJLCPO+X7m+3DDd4C13POs7hJ?= =?us-ascii?Q?NYXLZTGlU2+QKY38AHAn2Yzrq2sL8vAGJraFUPNss5Z5URI1rMQfoHch1UCl?= =?us-ascii?Q?+kiENLiDNtn4ou/QM2Ix6N2nah1loA9fSZJkZfcxTtU0T1C9pWWfMAgCy9mr?= =?us-ascii?Q?b2NZvhhL7QdQJY6jnWaAbyri2YOFOoPAwRRGkZigdcgRw+h/Lwx4nKkZj78+?= =?us-ascii?Q?dHbOYGCRzgj+7E5+8BJ98HracFW08yRzNgrZaLiYAjc/GnSCSkantiFUG9/4?= =?us-ascii?Q?SG2rErG3gzRP9z0kB22u+IvmYYupGj+wqdIphaxN1ctqoATXJInmXiU70X68?= =?us-ascii?Q?xD7nMQTJkscedvobggyO9Ia1Z6Dd2orir2e0OME6NFkIHntsVvEawg=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SE1P216MB1303.KORP216.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(376014)(7416014)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?HwhnRda/XuSo4NRS9KV1sbsayXzJnyXZvTxhaIyRTeP3WDbBg+uu+Hk6dHu1?= =?us-ascii?Q?zkeOTaht8K/fiu4VFYDDmQaOE80wVHp+vslXDzyefQ0ACFHId2eoaNTGo8f3?= =?us-ascii?Q?4xCrefpoO2pCqBmlFLucDYTghhmN6gVuAWIO7tN1R7cpgzLngsPYDl+/VjYW?= =?us-ascii?Q?2YDabuK9icRy2N0OEzoEovvTwhCpsuMPM9xT0909Pd59GnTFCtX9YaE0BjrX?= =?us-ascii?Q?+AqwQEn4WYa9J3TGme4YQaafbjV2kP688WIEmNwPllYdDefAq6Brup7WbPE+?= =?us-ascii?Q?HbKifLuEyRuzTYvbBM8UqWQiXlf3T6/Wh1k41n//fG9VR/wKXH0Cn/yGUHK1?= =?us-ascii?Q?sZ/+VrjklZxVgoJELLV8V/edhHErmDslKiSdy1B1mRBPO3O6pGSInOx+pCgH?= =?us-ascii?Q?CNJN2V54MOPSmh9blAuaCADsrqVRG1r2nJisCKrs13awcM4UYv0KzB3xx3ta?= =?us-ascii?Q?w0uMbeBxMw2Jxm3NthyMY4hU3ot4VTQbGG3y/UNfatVmEpJEqpnK4xuAoMTf?= =?us-ascii?Q?9uNIXbJqDC2qBb6D67QNbMkxHrHRFhQVIaShvZN/izcpOI5H6t0pjebspxdO?= =?us-ascii?Q?n6J2TdRgLOMaWul55fU1Aq++6nHN+mJn7BnLASb4w4t8iLeLLlIw/oRfP3oP?= =?us-ascii?Q?Z9QMkKDCyw27gWWnhM6VKFu6hgQPj43sY6g8sABvLcmmB+WYelqd4z3vtuFK?= =?us-ascii?Q?QsFF75AQEXPtDwocEhuukquBLpKX1tRu+JleLaC9s3TJF9ly4faMRm432Fnh?= =?us-ascii?Q?fL+CiqNP/I2ory2su02AfXN3XxjN2cY12GkIN734NLkRkT/QU77Vgwdl4g2b?= =?us-ascii?Q?1V3ljefi52HfQ0+i3hz0r7xPUjRGz3vHjmCX0Dy7/BhlQfb5SPoqDqB/LOiO?= =?us-ascii?Q?EjmcooAI8C+1tVw97/y8XVqc37lUQkKakE0VjnJOPUDJXsUq9WWs3LwH77SU?= =?us-ascii?Q?CimsAnLFvE3vSPo9ZquDY8+4sTeD8i2T1XWZzVwVcMSQj38jBZBNyxEBktk3?= =?us-ascii?Q?eXV2UtMSgxXgFuhvgmrQ3R36oMDAMPym9s15j3sFdQ2hSbkkun2zr7mutkP0?= =?us-ascii?Q?D5vfOa32eqT3cjpe75yOP+jjoAv6u185j8Al4xUhj8axe759vg+a//3DFMT3?= =?us-ascii?Q?wzqPudgsboeiQjRTnQjp7vL2GSsN1wUbOp0rO7d9jRz1RlycDZ6HN6xOYIbZ?= =?us-ascii?Q?aAeUaNg9UGWOb9+F/1chpgFBIhYmzMLUTAl3tM7gRMzl8Yhb+mrSfk/TN+QN?= =?us-ascii?Q?B8ExuJZSSqfhpQRPh4wAfm49EovpTHjvREoRHEVPcxrWvMfv38tJM6Sf7ZZX?= =?us-ascii?Q?uXjvwXQCz4yFzyN0LCBV/xRkcpNvom7DsiiJ1cPLbpUpkWm8OXJUXX9KrHbD?= =?us-ascii?Q?EgmB+qRAql8iCyFswhCuvnF94PAQhWUhmt8MufJ7dMDctEHD6G2OYbLJ96pF?= =?us-ascii?Q?ADbdGlxJ69wd4SCZnPCo0w17txQ2A5NvYCOejbRgQnat4pV9OM6veT2xAvK6?= =?us-ascii?Q?ITrTqN0vEt6W/dupwMp0YModjhwdk5YL+PQpeGUHrpJ7ADTcAeP8Z59OCyUc?= =?us-ascii?Q?utDojcNM0BJq1j4TurW3SbvKYYtjlR+gHOoJEebMfv7lbaC1nha2qn4ml+0Y?= =?us-ascii?Q?vw=3D=3D?= X-OriginatorOrg: chipsnmedia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6fb84c26-e03d-4d79-e3ab-08dd9901f0bd X-MS-Exchange-CrossTenant-AuthSource: SE1P216MB1303.KORP216.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2025 07:26:17.1565 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4d70c8e9-142b-4389-b7f2-fa8a3c68c467 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4igDdhAnAREt/D5RJBqLmkV8avCYsTAJWWAn37wBMDQOLOTlFbt5kHX19xM+jtqknlyJK515akUUDdNzV2uFGWzWsFmP90EKuJOwwV+ckLM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PUYP216MB2872 Content-Type: text/plain; charset="utf-8" From: Jackson Lee The current code was to wait interrupt if queue or report queue is not 0, but since applying the performance patch, input and output is not any more synchronized. So even if queue count is not 0, an interrupt could not be triggered. Signed-off-by: Jackson Lee Signed-off-by: Nas Chung --- drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c | 6 +++--- drivers/media/platform/chips-media/wave5/wave5-vpuconfig.h | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c b/dri= vers/media/platform/chips-media/wave5/wave5-vpu-dec.c index 995234a3a6d6..42981c3b49bc 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c @@ -1481,11 +1481,11 @@ static void wave5_vpu_dec_stop_streaming(struct vb2= _queue *q) =20 wave5_vpu_dec_give_command(inst, DEC_GET_QUEUE_STATUS, &q_status); =20 - if (q_status.report_queue_count =3D=3D 0) + if ((inst->state =3D=3D VPU_INST_STATE_STOP || q_status.instance_queue_c= ount =3D=3D 0) && + q_status.report_queue_count =3D=3D 0) break; =20 - if (wave5_vpu_wait_interrupt(inst, VPU_DEC_TIMEOUT) < 0) - break; + wave5_vpu_wait_interrupt(inst, VPU_DEC_STOP_TIMEOUT); =20 if (wave5_vpu_dec_get_output_info(inst, &dec_output_info)) dev_dbg(inst->dev->dev, "there is no output info\n"); diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpuconfig.h b/d= rivers/media/platform/chips-media/wave5/wave5-vpuconfig.h index 1ea9f5f31499..4ebd48d5550e 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpuconfig.h +++ b/drivers/media/platform/chips-media/wave5/wave5-vpuconfig.h @@ -59,6 +59,7 @@ // application specific configuration #define VPU_ENC_TIMEOUT 60000 #define VPU_DEC_TIMEOUT 60000 +#define VPU_DEC_STOP_TIMEOUT 10 =20 // for WAVE encoder #define USE_SRC_PRP_AXI 0 --=20 2.43.0 From nobody Sun Dec 14 12:34:19 2025 Received: from SEVP216CU002.outbound.protection.outlook.com (mail-koreacentralazon11022104.outbound.protection.outlook.com [40.107.43.104]) (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 B37C0223313; Thu, 22 May 2025 07:26:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.43.104 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747898787; cv=fail; b=M3th4451WQftJ0Yp3tRhkBuDdz1M/Awi5U3LptSqb7Dih6F/nzFbWMhhKHq1237/eh/QeCk9n7ZmBFmqXjP6nYbvthjIq6WK802OM3bPVy/sbT/k+2l2R2CJU8WFCg4H55M6e6Kohuopf9cKiymNXQz5iiYbIWzlsxh01mRAhZo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747898787; c=relaxed/simple; bh=kAFf+g5MWw/R0mXcUCh108EnlO5ouNK3nmSEy+b8QxA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=KhNpoCRwYSVgmAKLztPprEoI7YfSMxHBfKoml4HRSwWxHIV10KwxHFt9ic4TJKDeUqIgBt8dmg1GLQgKNpB4sAFu+4pmNmZJ9TqyFvHH5xg5YmOib7XCuNMzANsrviouYWuYnvUBCWzH+PprHddtAgev23hb+0usJQ3xrkNOe1c= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=chipsnmedia.com; spf=fail smtp.mailfrom=chipsnmedia.com; dkim=pass (1024-bit key) header.d=chipsnmedia.com header.i=@chipsnmedia.com header.b=dB6wtDSc; arc=fail smtp.client-ip=40.107.43.104 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=chipsnmedia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=chipsnmedia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chipsnmedia.com header.i=@chipsnmedia.com header.b="dB6wtDSc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oHV7+oGGQ6qZK66us1Iha/haaxHqwkb3IkvjcBCdQK6+wBG3qM+VqVNJtscgLRMsYygi/5+HNB39OqkLwOK7ehjrFnC9bS8K2vH/Jzad3r/tG+kI4zQ4hX/1lhlrTDoTZRtMeayANnyc3xmqSO4eKgDRrzAGZUvV5VY9o+0UhOD9fMgDZUhdcKQjoOOBPEnJr6TvI5PFNehPj7KCoz8RrAebd1/wVpvN76YpbZ7Mg/moHp2cndVkmu1cJHeMVo40IloIrX20FEaz8eEqkRSQkoIUHBhGiLUXQgWIEM71IwIq7HfE8cSOyyZOiiDBiioUftpN1hy43XIF6lFkNNr72Q== 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=rxxhw98xqAoTpmS8xILwi5BojKJQL61BNEcSMOR1X7k=; b=CNvUeKZutnsemnlfhASTZqDckeg9Lnp+et18CaBz3/4jGwyAReFeRwZDw4z5c2TG3ckGDUu7FmIBaotw/KaJpXY26xPK5kSXTuMV1JOCj3CwF0JCsBLANjwxRvdXuZW4oCliGGxfKhpK5Y/BDQj4jLAxHC1/dovtz/1Sdkbh9cFDxS48tBaur0iTppF5S+FUYpUvFY/gvbx0L8LiQAiu52NJEeQH1GPom/nGND23X6ITuG0iV1UeTBR0tqhFRNipaqcG9dLyhotSkEMEg6tXta1reBG6X1W2THU5gyD0aBCRi8NCSXTwSrWUnvVfgxZQ14t/dFKQAsFe9cJDkGkblQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=chipsnmedia.com; dmarc=pass action=none header.from=chipsnmedia.com; dkim=pass header.d=chipsnmedia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chipsnmedia.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rxxhw98xqAoTpmS8xILwi5BojKJQL61BNEcSMOR1X7k=; b=dB6wtDScb+TYli1GZlIkiVrDn9aLUqFDualup9ILBnGsjd8Mw+mQ1UPa5ycSB0OhGiDM6cKgsdBeAdzu7KxgIMOY4McaowcyxZyN19jwcO4XSPG+OL3NHBCPsmk2ytNU/kY9S4LVMpHfEbNNqfJEVZvDOJ6d2g6Vf6+LxpwunDg= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=chipsnmedia.com; Received: from SE1P216MB1303.KORP216.PROD.OUTLOOK.COM (2603:1096:101:15::5) by PUYP216MB2872.KORP216.PROD.OUTLOOK.COM (2603:1096:301:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.20; Thu, 22 May 2025 07:26:17 +0000 Received: from SE1P216MB1303.KORP216.PROD.OUTLOOK.COM ([fe80::b711:5ab1:b5a4:d01b]) by SE1P216MB1303.KORP216.PROD.OUTLOOK.COM ([fe80::b711:5ab1:b5a4:d01b%5]) with mapi id 15.20.8769.019; Thu, 22 May 2025 07:26:17 +0000 From: "Jackson.lee" To: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, sebastian.fricke@collabora.com, nicolas.dufresne@collabora.com, bob.beckett@collabora.com, dafna.hirschfeld@collabora.com Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, jackson.lee@chipsnmedia.com, lafley.kim@chipsnmedia.com, b-brnich@ti.com, hverkuil@xs4all.nl, nas.chung@chipsnmedia.com Subject: [PATCH v2 4/7] media: chips-media: wave5: Use spinlock whenever statue is changed Date: Thu, 22 May 2025 16:26:03 +0900 Message-Id: <20250522072606.51-5-jackson.lee@chipsnmedia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250522072606.51-1-jackson.lee@chipsnmedia.com> References: <20250522072606.51-1-jackson.lee@chipsnmedia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SEWP216CA0071.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2bc::13) To SE1P216MB1303.KORP216.PROD.OUTLOOK.COM (2603:1096:101:15::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SE1P216MB1303:EE_|PUYP216MB2872:EE_ X-MS-Office365-Filtering-Correlation-Id: df79ebc4-af11-4743-3f35-08dd9901f100 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|376014|7416014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?pE7RCnC0xiBzCqWdtDC2LsGwpZEqWrrMFzIGBJWvrw6KSBw1Jy3+25v3J5J/?= =?us-ascii?Q?uFl1c1FeFYTbPZJnDX8w7LUCnl7mFaa8blsnfh9o7Mm66D3cVKxjg+UnLR5+?= =?us-ascii?Q?yD1ntB9Ts/p1/qJOUnjETXy3V9AqkOVti1/LwgAGPMJXSCTyF5bTa7dOOiD9?= =?us-ascii?Q?v62NPUt1iAd6MG0Y4aILHhxalt7tu8GYSNs1tZ58PSuOMaJHFznpVLT7uVaS?= =?us-ascii?Q?EkTqQjc/eojpewp79ihVygrlObjGbYYnXAgVaTdO8DGj8vv+ZeE2qGDy7e7Q?= =?us-ascii?Q?v6Wi3y6cBi37tKfLyWGjZ3kfhpaBO4Wx0D0i+rNAWZkWlrTCyXEmvInrJZsa?= =?us-ascii?Q?5KFXIXnzrnHCVql/sHf2KlT7M53ASq7dxiNHop3nzW3oJTvmWRy6VqRjYPs6?= =?us-ascii?Q?HOaj99MWQK4H2ChBKFnce0Q8vHOsiQZH6ltQvLiZCZEFt+QcKRREVbKNE+qx?= =?us-ascii?Q?i3MqofGzqBlh8GtU0XpchY4WJHynkEtd7zqrWBVKmVOnsyiaQFT86g7u3uyM?= =?us-ascii?Q?4vGF+yEFTFuQ14/mY6udpvgLnnjfORq1dF/b5iAwyKCGme5sYm1IauXhc9dL?= =?us-ascii?Q?d974fw8CkXyv2CXWYyQW/9VpAGQxVBZlqIBFVWksJppPDx/da/94tyD/v8in?= =?us-ascii?Q?7mZpxPlZpsFxJWxuLMnfqZzi0B+F9W1RXngJqaM7W6FhvilpBVc3PtgmqgPz?= =?us-ascii?Q?APhVU0lsQ+TRkUtuN/NgjFFoewrVl/nGEEvmDsy87srXEPFLhGjeBSa3HTXB?= =?us-ascii?Q?sCJAPaCKZoh6E4on67ntZUYpjwMaV90DtU1vI/hDtKxXdmtk6wIWQekVotph?= =?us-ascii?Q?/xpDn1f0Tj0wkNZSUJRPyDZWemreqp3tEGJWnHz7ut8LzMc/5fbo96ytkvd9?= =?us-ascii?Q?/d01IPF8ykls22c4OMEgxDlkd0DFR+x49EVA/HEdLUXVaPKA4rdA56MtKwtx?= =?us-ascii?Q?jXwcDCWmidtDB9Mq6s5NCoJRDuMnpdzI7hiRM5fkOe6aRDcveVZZsZY1H2sb?= =?us-ascii?Q?6JhkLuKOXS6VFOdVKlC64ohUk7qDLstwXrLDnCFrxNxkoBzRgoIqoKgtB1SV?= =?us-ascii?Q?1b3iEU5mEIaJIPmarfDDNhYP5BE9Gx1PUJpGh9oHlkPQIA866IOSgPQsP/L3?= =?us-ascii?Q?YyJ74zFAA37XhiNHlfnnpqR2Y7A9VoXXVSjdDxXr4VQdk2A6Hf2bHZ/XxDU+?= =?us-ascii?Q?k0g0tft6+xRS5ozNdOF2bJOZB16SrwAJTVsJ8rNHI/zSqJ85VBpAceXsPOCw?= =?us-ascii?Q?YT+AmhS0EmP1Fg4S3h01U/R6DmLjpYNjsKmFX8tC2ySWSaoencA+Plr74J8O?= =?us-ascii?Q?N/coet55Yim7UP82eHBYpAYfvJh6ujvX0487lekpKaSO3fuAvyCXMz/53Aor?= =?us-ascii?Q?kIhGUgz9hC3Qjx4sJrhrhan+gJaYnIypT1Vs9OP3KKBHXHXr6YpsjsalOY40?= =?us-ascii?Q?x/ivnOD4oZYRwiqWKgQcZQX7O8sYxwaHtwHC24hYQkNAVkLIZDYalA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SE1P216MB1303.KORP216.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(376014)(7416014)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?j82ee0NGVJ28qrllmvkXJMeKtBp2FHFaUNSpzPq55Rn7hLyHqrco6VFsXfvv?= =?us-ascii?Q?T6jAFWNSp+7n5sIn5ie196zBwwXQzcNPBTIAV1vryARv9ozMFyWTNjZvZ8Ez?= =?us-ascii?Q?JgWqZ3junhwlRNnrttgoC+uyuib+0HAVprAolUhQ79Pb4s0ANHc7Hzi2h1lV?= =?us-ascii?Q?Ev9zoZckdijiMod4zKe+doXReQrWiRQ4/wv/uuMg9dnBbXJg/di+wiQ7hCct?= =?us-ascii?Q?3HC6HHRiXV7dsZ5eLxDYohBUwDa9BvScU+l6KRfdQhH12w3J1YBjIi7lH/P1?= =?us-ascii?Q?rSJ5j8QRmVbyiAOKtxPpj6DV3/XWxJCD+NBWUUNu/WZUDj0Z51VqITRNvNfR?= =?us-ascii?Q?YmomsCYJCfdvJSkUdVCvZl9xM91SJeFp1kCkF+7ew+Sh6gXn5tbDePwJVm2V?= =?us-ascii?Q?+IC39ME4IHeirj1Kqcp+x+Kv/0GSUpHCaj2TufJowAuJRvN4d6D9p9ruOt9N?= =?us-ascii?Q?tU9eh9LW4/fgvZDljC0QIWVMxtC2W4ddSe7eCy0yR3NTBGk/J3mP929HZPYM?= =?us-ascii?Q?vecAl6cq0wbJuy7fS0Lq7by63ePxa7Nj557hGJ/uf/QlomtrKw8ShNohyLcf?= =?us-ascii?Q?soE1E4K48hZcn+D8T9ZCY1Z1wNqN0NAqLrOWamxM1qGLlOBo/lelG6nIUkLJ?= =?us-ascii?Q?kCZDnLMKh2tBVxR52L2JX2f+/7CNwXgfZs9cA258T058ezJRwBwQp8jv+cUG?= =?us-ascii?Q?Cm7vVqQ3JcM4Rna7r+/iknjtyGPK0/X2Jp1LFomFuTL70YwneeQG2AJppDX6?= =?us-ascii?Q?Smqc0KEKxt0j5QSWnxxKGh7bwtZuMwY5hhoVKTIJtcNKlXE+/XAWJDkjWkS1?= =?us-ascii?Q?lczdWXHXqH4XoZCxWRddk3pnSFeI7VqR4pNx+fzzx5+NtWzRy2lk8kvXhEtA?= =?us-ascii?Q?XQbQJHWtelSU6IvADBW8yC/ZVGa56JrY2IOknmquTEpIsh1C+uXOCwESlc0e?= =?us-ascii?Q?R/ISAzu126RkBoK9DEju30+W7Fd2HCC+zGoHbCKNiInEOfdxfWZitOs6+s12?= =?us-ascii?Q?XkgcTJi64uxB87u5BsOFYqWPUtSIedeNf3hgsc82llCIWXAIdWf1lOWIDRhp?= =?us-ascii?Q?gfEqWxVJZWnW9SsWCYYQp4bDwmifyJ3rJkVqf2tGZFgb36FwvtWdEv7xlCQg?= =?us-ascii?Q?5jEezJziIKn843q7r5JAyEhsWKj+ryzx6Rc0JCqueIb1rqjb65hCluS/1yxQ?= =?us-ascii?Q?XG7SXswFvZpxJGFRUhFVGPLEcvyInQw7KfaPR75LSzkpX/7iQW09IGlKTAad?= =?us-ascii?Q?/5leEjn0eXySj7Lx3/VVkX5kcwLsJENmrH4MOlJGegcLWzYOtQWLtFkP1eQ7?= =?us-ascii?Q?pPYdf+A8wcwbgiNKNGIGqyxXtuwMpftp9ZV0Wv0Xvb4ead21l5VoR5iiAjJ/?= =?us-ascii?Q?4cw3n4tqCE/ysJwH4vGsCwE9A+bDZ95JkBFccLZGM82XYFf/aA8uX6vlcmYX?= =?us-ascii?Q?Yxf5vqwZWjCgXBjehdvAkkMkYg0yF8xcr7lgQsKFt6UV8jFjTN0LIKj2BkF1?= =?us-ascii?Q?SQ/tG8PwPFnBZU496ei5sEH0GUTDytW648nPkUzhDahoT0255IUk9NxYvuw4?= =?us-ascii?Q?IZl2e/ykV6JHRj9I267mbKYi/mxZC4CMZ5eJfnXoKY5Uy5e25hUomE7dFJyk?= =?us-ascii?Q?FA=3D=3D?= X-OriginatorOrg: chipsnmedia.com X-MS-Exchange-CrossTenant-Network-Message-Id: df79ebc4-af11-4743-3f35-08dd9901f100 X-MS-Exchange-CrossTenant-AuthSource: SE1P216MB1303.KORP216.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2025 07:26:17.5714 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4d70c8e9-142b-4389-b7f2-fa8a3c68c467 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: jKSx0WVAYyMeVAkRBdd98mAuAJX4Tikif5IzmVcu1kV0UqC3ikGinDB608s3B8AA2oPlU0bQwfRF9U/WqImGgu2m+EDPJg5imeOKBJn6Ius= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PUYP216MB2872 Content-Type: text/plain; charset="utf-8" From: Jackson Lee The device_run and finish_decode is not any more synchronized, so lock was needed in the device_run whenever state was changed. Signed-off-by: Jackson Lee Signed-off-by: Nas Chung --- drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c b/dri= vers/media/platform/chips-media/wave5/wave5-vpu-dec.c index 42981c3b49bc..719c5527eb7f 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c @@ -1577,6 +1577,7 @@ static void wave5_vpu_dec_device_run(void *priv) struct queue_status_info q_status; u32 fail_res =3D 0; int ret =3D 0; + unsigned long flags; =20 dev_dbg(inst->dev->dev, "%s: Fill the ring buffer with new bitstream data= ", __func__); pm_runtime_resume_and_get(inst->dev->dev); @@ -1617,7 +1618,9 @@ static void wave5_vpu_dec_device_run(void *priv) } spin_unlock_irqrestore(&inst->state_spinlock, flags); } else { + spin_lock_irqsave(&inst->state_spinlock, flags); switch_state(inst, VPU_INST_STATE_INIT_SEQ); + spin_unlock_irqrestore(&inst->state_spinlock, flags); } =20 break; @@ -1628,8 +1631,9 @@ static void wave5_vpu_dec_device_run(void *priv) * we had a chance to switch, which leads to an invalid state * change. */ + spin_lock_irqsave(&inst->state_spinlock, flags); switch_state(inst, VPU_INST_STATE_PIC_RUN); - + spin_unlock_irqrestore(&inst->state_spinlock, flags); /* * During DRC, the picture decoding remains pending, so just leave the j= ob * active until this decode operation completes. @@ -1643,7 +1647,9 @@ static void wave5_vpu_dec_device_run(void *priv) ret =3D wave5_prepare_fb(inst); if (ret) { dev_warn(inst->dev->dev, "Framebuffer preparation, fail: %d\n", ret); + spin_lock_irqsave(&inst->state_spinlock, flags); switch_state(inst, VPU_INST_STATE_STOP); + spin_unlock_irqrestore(&inst->state_spinlock, flags); break; } =20 --=20 2.43.0 From nobody Sun Dec 14 12:34:19 2025 Received: from SEVP216CU002.outbound.protection.outlook.com (mail-koreacentralazon11022136.outbound.protection.outlook.com [40.107.43.136]) (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 19374223DC3; Thu, 22 May 2025 07:26:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.43.136 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747898788; cv=fail; b=MCsNqZJlITRNZ5rY7hBm++l1heq1p+tfwMK61wufhBWAIJ7R6vhIpwj26M9m9bHr4tIkbzXhc6VJc0FTdz7tpCT/lpyZ7Gqfe5e+ZshlOoEE/dXaLeaSrFE+6n7Q5RjR3Mi5nCU72LjpB/Qqd0Khsau85PFrZM4zCOU5DBt+8CY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747898788; c=relaxed/simple; bh=AH5fObUc+zqLV+I2Jr6qGKTDpLnptyB51QwBL//qg3Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=q06RBA7p3dr9nNZHXMomspfDffkPhGX3Kk75Po8BcmVSxbYBD61KgIaDCmfPdDz0cG/JtukXX+nM70PPHATuokzDT+5zJi3PgRzQ0DqZAkNOllchhq9hBmWoELRmw6rXq4Gg7mVPArgn6+PzgZBIEWLyISlIyX7+IZEBoCEoplY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=chipsnmedia.com; spf=fail smtp.mailfrom=chipsnmedia.com; dkim=pass (1024-bit key) header.d=chipsnmedia.com header.i=@chipsnmedia.com header.b=GxEUDqX5; arc=fail smtp.client-ip=40.107.43.136 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=chipsnmedia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=chipsnmedia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chipsnmedia.com header.i=@chipsnmedia.com header.b="GxEUDqX5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=haHbVaiJnJN1aeupWdyfmW85b/d7leCaf7OCJSDYUrUOtA5Mw4SoGjJi+7ow/jUgs77jNNrUiMwx3JfvjFy9wur2JsVVIzbooXTOgKLPgx+iTjGvK7aMuWL4Nilv9i9LyRJJNfW60j6h8Yq8t/wIV+6ALMLvQHVnwBkleszdUxLhv5EWNru/dlLDuylvh2LVIBSDODwfmuHCqvEuo+3X87HGiPmZlLkek6yc5wtHR2ek8aI1NZ6QKE+TGRn7eEqDAU4yOfnmFniaafbFuaN9eMFRJglwIWYOepDvsUa3vvGRYsnC6FHnJ7UbLNVP0pZtObDfcuy4XpA2R4z9BgXdhw== 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=ggZ2ztAzqLB1oq/qfR/EnIqKJxoc/27dmch8qEAQFJA=; b=VcDgCO1UfJ57fFtVZxhkD5GXoxQzYGXOuHURYXHLkjVS8zDE80Yml551OSxh9FAYCfg1OXxU28hV+QWmELvgM0lMtZYXx4IjqLt3GmGKWrLFVX9VRDOtMmEn59w9DArujUYb7HtOURMbX/JfAkxZfBZ19SZcUbSYpDaSKTZUghC4Awep4Fe0Iiq3G3weLVs0Et186kiNBumzj0V1imEOl7guDNvl/EByaf9YfJKQzPbNJpteJXvaLZDQZiclcYPDMzbj3t/GDu1jGo2aXyGasIEIkwtgu/6vXLhU4zs5lNcHgNF+rEvI/F/Hv1vCRu9aybSDXMdfsLiFUs48tsRIcg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=chipsnmedia.com; dmarc=pass action=none header.from=chipsnmedia.com; dkim=pass header.d=chipsnmedia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chipsnmedia.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ggZ2ztAzqLB1oq/qfR/EnIqKJxoc/27dmch8qEAQFJA=; b=GxEUDqX5aHPMmmZbZRP+dXIfu3LuV60x/j+3mK5jNzvxrC34jBoqjxb2ahiBvJS1z7tRKfCp6LgGb9ehr5gsSbBzy/J3Bb3agq8o5Y+A2kBJwgHSi6TPk93d8tCTnhIA8pYdZixjd57S3fhr6LdTolat/0sWCGHJOtgH5UddwFY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=chipsnmedia.com; Received: from SE1P216MB1303.KORP216.PROD.OUTLOOK.COM (2603:1096:101:15::5) by PUYP216MB2872.KORP216.PROD.OUTLOOK.COM (2603:1096:301:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.20; Thu, 22 May 2025 07:26:18 +0000 Received: from SE1P216MB1303.KORP216.PROD.OUTLOOK.COM ([fe80::b711:5ab1:b5a4:d01b]) by SE1P216MB1303.KORP216.PROD.OUTLOOK.COM ([fe80::b711:5ab1:b5a4:d01b%5]) with mapi id 15.20.8769.019; Thu, 22 May 2025 07:26:17 +0000 From: "Jackson.lee" To: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, sebastian.fricke@collabora.com, nicolas.dufresne@collabora.com, bob.beckett@collabora.com, dafna.hirschfeld@collabora.com Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, jackson.lee@chipsnmedia.com, lafley.kim@chipsnmedia.com, b-brnich@ti.com, hverkuil@xs4all.nl, nas.chung@chipsnmedia.com Subject: [PATCH v2 5/7] media: chips-media: wave5: Fix not to free resources normally when instance was destroyed Date: Thu, 22 May 2025 16:26:04 +0900 Message-Id: <20250522072606.51-6-jackson.lee@chipsnmedia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250522072606.51-1-jackson.lee@chipsnmedia.com> References: <20250522072606.51-1-jackson.lee@chipsnmedia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SEWP216CA0071.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2bc::13) To SE1P216MB1303.KORP216.PROD.OUTLOOK.COM (2603:1096:101:15::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SE1P216MB1303:EE_|PUYP216MB2872:EE_ X-MS-Office365-Filtering-Correlation-Id: 049203d9-b941-49de-c816-08dd9901f13a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|376014|7416014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?N+rRl7GadCBII0TKKjn5m1NfwSZQ2xFshAbSgZRVieWoorOOJ4gOIzK5nGej?= =?us-ascii?Q?gIoT1bWp3z26cDmRVLMYWIuMsP5URgyTQBxuY6O6JxcMOQayxCd30Gei51Ee?= =?us-ascii?Q?iEIHRNvRW5A2GwDGj5ZxHtnH2LwLIco0WVq2KQozteBXxeq29cT05QaJcdhJ?= =?us-ascii?Q?f+yTQhMHBCEywu8NEhaVEJKddg3oSCzO5A3KsyRirApxX3C0bJJY2jRssHga?= =?us-ascii?Q?mkNqlrVBk4fZBRjoBWn5ouhJw7RcavV9FxJBrCD7mLl2GgSw4DuABo0o2Hvo?= =?us-ascii?Q?r3ap9RKgCgyjTKtbeiEiltjJa+3eJYeayLxMMHS3BC9LPhkmq0zXA/fSTqh3?= =?us-ascii?Q?bYJNdZrQ3kmguqI7AQYyG3q215eiYLwLd3eI6jpGF9fTsUHalTu+0bltmkT+?= =?us-ascii?Q?PiqlweBw5yyDOBHCwVaX9hyDOAn66MiK73oxlFbBIivgXuUcSMQYrfxr7WAa?= =?us-ascii?Q?/7AALhFltmMEPX652RoNiOcMqyPiSwtRi3PImaUGWVmW7MTES2o3zONvtnVD?= =?us-ascii?Q?yVX9rYTusQQAB7W6vFkQN4UY59l4S1h1I+dtTguDF5mMPTwwYURNQMTy2T1V?= =?us-ascii?Q?f4Kq8BS5YACE0TT3LQxkraCARuhdCnmLSGx7jCfOstb6WewVy/8sZ9GJZ9m7?= =?us-ascii?Q?9S0psVbV/5yfItHEm3BbOKFsBL3dIIRhapOrPkFsqiMshWzij0jYb9ya3k1C?= =?us-ascii?Q?bFa91i3KHEwynM9yiWz0WYSHIILdBGHED18Z6RiOxcJn1DD1Mw8QHsZfrCqx?= =?us-ascii?Q?s5LwH0VeQOcODHp0Lh3FgP0WCT0J9/YsaHesGeblwtrIX9MCycRLrWu3CNVp?= =?us-ascii?Q?Cl6v7B0vgxMdZ3IEd6tmnzXfiHJ4ap6+6BAz6L51CVYkjsnu5qUcMGTvPhHe?= =?us-ascii?Q?Ey/P2GDyHQyqaVgloS8qJm7rLivFsH+5cZ33MatgGlcQPLFMj5XfVUVzm/qQ?= =?us-ascii?Q?NgoSA2h4F3CpUTAcCrjrr2h7wc4c4xX9DrsMw5YBkV9siz6DsQxf4lD4hywK?= =?us-ascii?Q?tgnfM4tD+VBrcRBzlpHukGck87dBApgqOK4LnT9z4V3VoNhunVVxJZaWFaMB?= =?us-ascii?Q?Txf+w7535O22W1TmD9eZDYKSQhQrpdNLUHu77/g25p6FwvfQSB7CyH9gmge7?= =?us-ascii?Q?fXLsnPzYdWglgg2P/aePuQnPL10CDVajBym6GPvzroXRok+F1+CVaT5Wsq1G?= =?us-ascii?Q?DtItSP0EY9JMnOxfUTSyu6ul75d4mIdajsxcbAt/ZoIsRPoCwgL9/46PGpgT?= =?us-ascii?Q?9nsTPCg949s6ZewL0XjAD4m8nR5HXf70V+RYv7O3714ylVXnXEw04/2R5wS/?= =?us-ascii?Q?FqoqttHRCLa40qathd8p0iBJgbzs3IyM7Ae4IJRyDyYLeu1VS+D05xxMrcuu?= =?us-ascii?Q?sosjSjGH3IAYXVaH28hY5PQnEVAM4nlq5kwVcmaWhr61kUspWn6Ivz2hrYTu?= =?us-ascii?Q?CVfHX1n6fCZNjAmYBknrqPNAAthb0YGhd7XYRh5Eds9qBsycX885KQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SE1P216MB1303.KORP216.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(376014)(7416014)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?hEbjqE2xEvndpnswS54X1eDxmZW6fY7BmbmDHZV+z+o5TBOVI+vh7boJMnS2?= =?us-ascii?Q?bdphQdlRq+jQqWCk5d7xCXkyLXBUR8dMPPnl92Ny1B7mtLriPeLh4zfJuHx6?= =?us-ascii?Q?dsfg/QQE4BNXrvrQru4q5e8tKseP+JtynFMLBTTK9dEKp97iDIuIWzUEQx3Y?= =?us-ascii?Q?SfHuhW1J+RcfFHYjmFsKZ9+qQz1k6Qe68My/iNytD7NgI9kAQoWSX8K2HG5B?= =?us-ascii?Q?SQ02WL8CipoAFpd9AJgOKs5GciB0pxsZO/0WCISThbATn2Tuqatw4iYT1j4S?= =?us-ascii?Q?KbcNZvR+uP4nOL7RNF7ntjPDiTQit7iV54bmxwvARII0MhUYC5CbCKgdeVJF?= =?us-ascii?Q?2GhQFx+EC9/6w321N9vTCUefd1vno8QCAAk7KCvkd2/23G11Tk8ca2POIX2V?= =?us-ascii?Q?zqwfMtNqAGK1Qwe0gsh1uKhKevLcWk5rJTudXNlrIom+HD4QhgArOyK085hp?= =?us-ascii?Q?bkCZlNxkFzhuAX4DqBci4f7EDXFRx/w/RnA/HD3ZDFRe3qcAy8V/f7S9vxV3?= =?us-ascii?Q?hIu7I7QyDrSSmU83mK0hwRef71gDFZ1JN0Ip0+khgjpL2FBhnuSOmSF/Prpv?= =?us-ascii?Q?C/b4PF8gcUoSyMO39p8gcBmGmdZW5YZfqevzjonQQTYCNu8Pviy/WzyCodEr?= =?us-ascii?Q?SiB4Vlzjvj5nplzGPmvchEmHaPfG5/ueN+OC6Dsq4EvnqfVk0JDxMTThL4XL?= =?us-ascii?Q?EMo7TkHwWDdgqM2Me1yqxuy2dK/+U/opbRWfkLBFkn3L1/meGtJaXyjeESrg?= =?us-ascii?Q?5O8uLOoQI+vyedCr0+qVojZwVxSQ1m398t59Sxbo+ufar3ZceUuxGAn2j43j?= =?us-ascii?Q?DLhcy6Ad06tc5BrhC4W6NlFp6yPkyMwjNhvzOYrNv/Q3t1bpBP0KjiWOrrSV?= =?us-ascii?Q?4q1vE09NkEF+9RSFXrTHvDi8+jgjomSSgSO4czjhSm/KD+2rUD/1UKLZSl7S?= =?us-ascii?Q?sNS7yt+7pzBt/MDRYocX19JfIx38TZflLaqYIbK+ye5JWsLOOX8T1RTRgJAI?= =?us-ascii?Q?XHRI72kUszl3QCKG0PQf6r0iANjtXcYVaIUwm2LGiU5xxRu8KNE+PpILrseR?= =?us-ascii?Q?3q5qGuORS2j4BK6Xiv0tGyxfLyi07rhvfgG2lvD9AoAq2ijl0id6nwKllyKf?= =?us-ascii?Q?X8wLV+LmvSERR8U83NhWHSjzlipzvb0rDIOP/h6Nhkt6JufYJxMx8rbx5yym?= =?us-ascii?Q?9jLWBE9rvs5uJkxSn/WuCOyZEnp0/j+mnCL0r3vnDbMs6rmLXsQzjrsXwVct?= =?us-ascii?Q?BREQdnzHm7cc72142PnAbXdyGjs5rprLCzZLncfsyA0Kh7YJVmcr17nRn5Oz?= =?us-ascii?Q?qu4Xdyw1bbsAnRb5GE6j4O3pcF8XOcnUWmAQEVQxQNMlPpSGVw0tK6MHOfmX?= =?us-ascii?Q?f8eZnAHANFwYxq4Lssxboea4XXuSrjrS9SlgcZv+kelQPJWbmnRvYKTbCqdy?= =?us-ascii?Q?QmKZ+rQ0xWemm71S3ZCTVOgDEo4nnoSw8ig7BAq1pGTv/5eAlnK/mI8S8/rV?= =?us-ascii?Q?fYSd6wJkoM8TFASqN2N9d8ppn9udLhc1xJyr9XieLzF60n+CuM253eK3takm?= =?us-ascii?Q?5Lxcrbrmd72xWyA+upsAogVvopUFhJAt9fKRBGTk0aVTgX+Zf0nHybAx80OK?= =?us-ascii?Q?ww=3D=3D?= X-OriginatorOrg: chipsnmedia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 049203d9-b941-49de-c816-08dd9901f13a X-MS-Exchange-CrossTenant-AuthSource: SE1P216MB1303.KORP216.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2025 07:26:17.9306 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4d70c8e9-142b-4389-b7f2-fa8a3c68c467 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +2oQjpoFwAVZfCM4vlkSPmBwhCSxj44P8suUuml3XE3+a68UW35HkMATdnrMi8ExQ+XO+xM7kRrhKD4hnR+K0qJ+4qrp3u9bj47Km+N8tsU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PUYP216MB2872 Content-Type: text/plain; charset="utf-8" From: Jackson Lee Since applying performance patch, there was a problem not to free resources, the root cause was that timeout sometimes happened after calling the wave5_vpu_dec_finish_seq() when application was closed forcibly,so if failure reason is WAVE5_SYSERR_VPU_STILL_RUNNING, the wave5_vpu_dec_get_output_info() should be called to flush videos decoded before closed. Signed-off-by: Jackson Lee Signed-off-by: Nas Chung --- .../platform/chips-media/wave5/wave5-vpuapi.c | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpuapi.c b/driv= ers/media/platform/chips-media/wave5/wave5-vpuapi.c index 68d86625538f..d7318d596b73 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpuapi.c +++ b/drivers/media/platform/chips-media/wave5/wave5-vpuapi.c @@ -209,6 +209,7 @@ int wave5_vpu_dec_close(struct vpu_instance *inst, u32 = *fail_res) int i; int inst_count =3D 0; struct vpu_instance *inst_elm; + struct dec_output_info dec_info; =20 *fail_res =3D 0; if (!inst->codec_info) @@ -229,11 +230,26 @@ int wave5_vpu_dec_close(struct vpu_instance *inst, u3= 2 *fail_res) goto unlock_and_return; } =20 - if (*fail_res =3D=3D WAVE5_SYSERR_VPU_STILL_RUNNING && - retry++ >=3D MAX_FIRMWARE_CALL_RETRY) { + if (ret =3D=3D 0) + break; + + if (*fail_res !=3D WAVE5_SYSERR_VPU_STILL_RUNNING) { + dev_warn(inst->dev->dev, "dec_finish_seq timed out\n"); + goto unlock_and_return; + } + + if (retry++ >=3D MAX_FIRMWARE_CALL_RETRY) { ret =3D -ETIMEDOUT; goto unlock_and_return; } + + mutex_unlock(&vpu_dev->hw_lock); + wave5_vpu_dec_get_output_info(inst, &dec_info); + ret =3D mutex_lock_interruptible(&vpu_dev->hw_lock); + if (ret) { + pm_runtime_put_sync(inst->dev->dev); + return ret; + } } while (ret !=3D 0); =20 dev_dbg(inst->dev->dev, "%s: dec_finish_seq complete\n", __func__); --=20 2.43.0 From nobody Sun Dec 14 12:34:19 2025 Received: from SEVP216CU002.outbound.protection.outlook.com (mail-koreacentralazon11022104.outbound.protection.outlook.com [40.107.43.104]) (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 776D7223DFA; Thu, 22 May 2025 07:26:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.43.104 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747898789; cv=fail; b=sl24FPVeokpNbzOp5PGH/MXvlukPdy4qwWrMTpkcR5Ys3eOmVt0U4xzWIh8UKh95gnSFgTyj5JQ21UF+H4FYHNEs8oRe70VhCsPAaFMlZ7TapKd9kpqz/TbTQ9Bsa6vPiKND9viF5iJqdaegLn+JCph61K4APEl+Y4ERJArFhpA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747898789; c=relaxed/simple; bh=bZU4WEzGRVV5IydsLg4y/+Yvw8vHU9q2leiLFJpmpjQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=i4KPtpV/IPloIYahqpYrWzDoLLHtYGWgJzR2Qmh+wFDVB91vAEEsENOVLbHreGRw9Xb1W0fOtmH/kF6SftcLuxzZRnjucvPCN1VRDQKWsVHrjmj44uXVYOSgc2csjXzt2OzNzua8MNaMOuV5Y3Ip+BamckwFWRikPKf0qy6/lc8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=chipsnmedia.com; spf=fail smtp.mailfrom=chipsnmedia.com; dkim=pass (1024-bit key) header.d=chipsnmedia.com header.i=@chipsnmedia.com header.b=afKRxxw0; arc=fail smtp.client-ip=40.107.43.104 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=chipsnmedia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=chipsnmedia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chipsnmedia.com header.i=@chipsnmedia.com header.b="afKRxxw0" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vpJowXMom/ePERk6r4YQVBU7gnlukJNa6XgAJjiN1kcfF+lM82Y2+znjuo7dso/3dDpK6bQYsq4Qat7u5eB6jjsMvI1BY6aQnv7e8TVdl2CV1Fze51fznJ0r0Q2clmoCiJQ6Fig6L4QVpddsaz27ikORnDw8Moo164GsgpkrQM7cxTBDVyN4ikWtwVTWqkjfVVoV7kzRmvDBnUM273EdkApXl6awAo/QeUuVWFNWP7jvMrHR2NnJGUZSrfsJplr6unGcOMGAFEYed6XhA/dU8MM/+8AxAfMOiGQaR/85APBpuA6SCH8oVlnLZFje5PkSEVRnwqKLSHz6tvMMXtz7aQ== 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=bNaZndYNupfjW551Lz2PDnIu1fKUAKq+o+0kK8fywLA=; b=Auh2bqBV//RJ9weAyE/en/sUmBTBMuunMaBDKULFdICBintX1gtg4oCOtpxHQ/bOGkoh3q8bKXvCV4kFtFFFB5lf06ZPSzt6j0+B64GZKiiN/zTc5u4uxOx6hKQ3vZTgpJm7c3W/O+WCjwluSJcYsvS0x6skMWlYYf+YKWHBnEc6amflr+HfTkDrxqjgnO+gcBZTKW8xvAO+cOQXPkn8KNWMBS1KZ7hg4U5unQI4TXtP0v/d19DLnBSBACpKwGCSzbX6cIsQy+Kx46n9LddrZ2XYDv4Kq6uh6Rgdc045qoBqFBPhtQ/4xNZs6wAV8KH/p3qbeM1HPAzv0R4Mi08DWg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=chipsnmedia.com; dmarc=pass action=none header.from=chipsnmedia.com; dkim=pass header.d=chipsnmedia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chipsnmedia.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bNaZndYNupfjW551Lz2PDnIu1fKUAKq+o+0kK8fywLA=; b=afKRxxw0Lcpa7rKW/TDoAFd7mKrU0Nf3xg2TDc49Xwio+Po9ISKws+adOpW/z5Fzz0LWFSAsfDPufA3T8QGxSZv7o+ca7adHJ+Yy5+pw3frW9TJZ6sAtrmLzMQkznOV2m9Vm7S6qnsghC6foQ454zAf3uxQQQ7ujj0SNh3mzKKs= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=chipsnmedia.com; Received: from SE1P216MB1303.KORP216.PROD.OUTLOOK.COM (2603:1096:101:15::5) by PUYP216MB2872.KORP216.PROD.OUTLOOK.COM (2603:1096:301:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.20; Thu, 22 May 2025 07:26:18 +0000 Received: from SE1P216MB1303.KORP216.PROD.OUTLOOK.COM ([fe80::b711:5ab1:b5a4:d01b]) by SE1P216MB1303.KORP216.PROD.OUTLOOK.COM ([fe80::b711:5ab1:b5a4:d01b%5]) with mapi id 15.20.8769.019; Thu, 22 May 2025 07:26:18 +0000 From: "Jackson.lee" To: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, sebastian.fricke@collabora.com, nicolas.dufresne@collabora.com, bob.beckett@collabora.com, dafna.hirschfeld@collabora.com Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, jackson.lee@chipsnmedia.com, lafley.kim@chipsnmedia.com, b-brnich@ti.com, hverkuil@xs4all.nl, nas.chung@chipsnmedia.com Subject: [PATCH v2 6/7] media: chips-media: wave5: Reduce high CPU load Date: Thu, 22 May 2025 16:26:05 +0900 Message-Id: <20250522072606.51-7-jackson.lee@chipsnmedia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250522072606.51-1-jackson.lee@chipsnmedia.com> References: <20250522072606.51-1-jackson.lee@chipsnmedia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SEWP216CA0071.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2bc::13) To SE1P216MB1303.KORP216.PROD.OUTLOOK.COM (2603:1096:101:15::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SE1P216MB1303:EE_|PUYP216MB2872:EE_ X-MS-Office365-Filtering-Correlation-Id: 698a7e40-d5c0-4c5e-920d-08dd9901f171 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|376014|7416014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?p1bwLz+toFC94RvrtpK9x6UwdzDxUU2zlKt06KZCXOWYos2a+gN4Iz27+R9F?= =?us-ascii?Q?w0bwrXn4dEmi/nfXO48inq+GxJfVlvjlglX26+VcjY6Wxzx8F60y3abyrl5j?= =?us-ascii?Q?4bdQH3Vg+Yj6PPWhNLZLrH+7gtIZl8faFuyn3i6pFqA9q2Lla1jycy/PGBMd?= =?us-ascii?Q?3mhxznBLAGHrJuQwpMaep3jPc7cwuU4wdh0kXj8SjBOa3ohmQuDw/udKv7u+?= =?us-ascii?Q?hoXZ5zsRMq7VUn243u83l4U4HqqtpEFrYziLV3VUhQNB0/rRg4cI2plbYziA?= =?us-ascii?Q?7XoPiNXLZlom9aP+lbeXxfYDC/MoEDdcOafXasN+x4qMlxqKKBiONMLkqXnp?= =?us-ascii?Q?eMGZ9bJ+PaUMK83Msv4xqrxdzQcvwZ6RPMgDOf5TcFF7aX4Mq+Vqu4y17zZA?= =?us-ascii?Q?yITvJ4yjwuVgC0WqyCOiLuiC2/z4bs9GEyf+dqg7/av8Oafrj0GspUOfnbHV?= =?us-ascii?Q?acRidfFPG8/jjR41J9JBrEm4N7YylKERQzR2WR9oPjiC/InCbY4D2Z5Ujpin?= =?us-ascii?Q?gSCkPve02ytmMlbUP2dZ6aXqtCrh6fWmWxKaJEkN3RkA1O8tG71qcYOL4u0f?= =?us-ascii?Q?ZRV7lPzw3VMH/TzZoISnnToEZewNxPgKKX3nr/VNfO/SBTKTC5BcnXCaufZz?= =?us-ascii?Q?06/nv0ySJThpHLn6Ap/SAQx+J83NYz/P92/mRvL5PpaILuoO22wTOp4nSDiH?= =?us-ascii?Q?42D3RL/UWigaO+KiD9/bbKPh3tRSTsy5V5TlYcvgLTBVR7XoLeXH7j5OFev5?= =?us-ascii?Q?xArfgHJsFTbXsT9nA15lOSLfOt46iKEelAqKQUmacxr2L34K8+C0zsHL5qNQ?= =?us-ascii?Q?Wltvm9/190NfJsB4oz7jkIaevM0t2tJLPBKgMi6j9ac9BT4Va6IF2J0WPYdK?= =?us-ascii?Q?n/G7VPIBro5UrZ2ZN7CHixj7zDFlvsJeq+IWibe/ksrAlWj8N0GrjqP15faP?= =?us-ascii?Q?F3izOQRib0SGlXklZ+Fee9EtJx2CM6O/5CAkw7WX4NPpL008KTxSLvPFFh6Q?= =?us-ascii?Q?5d3BNcBy8neXDeAh/tgSPtBBHS54zFsjD41b2BCz6n9sJjHXhQelB530suy2?= =?us-ascii?Q?MGeoGx2iYeDaZwW+TBI+967e9//qR6GU1piemOQRG903Za3fCKj8ezN/MVNf?= =?us-ascii?Q?aEsKIm2UeTeCHKBY0Ba/7KT2I3TV7tsKBD9A7knLh+q9dF3DCWbDpEEBHAa0?= =?us-ascii?Q?ys/14CEVvkhXY9UAsPqqK8q655gz7+sSQC7HX1PyO8iDwRqt8AUO/ur1QUhj?= =?us-ascii?Q?qWVLYK3SkcyLbHIBoOKF/liK9rEasxprC2us8yllNDT8eS1TcpAMo1G9oWVh?= =?us-ascii?Q?nKZQcurODXeId4G9g8zFBnXyaCb3MrxcFCHg4Af85BVr38c/ocFJZZTKLhZ/?= =?us-ascii?Q?NnK97QTYHWyg1zVZ+SG0HkQDNs+v7ydYCB+xszVg0EWmfpBXaQK4EG0jZ3Is?= =?us-ascii?Q?QOqGonGaLge6QPBA9NwMrFlO5n/c8c2aobyL+I767GVxrltw02rwww=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SE1P216MB1303.KORP216.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(376014)(7416014)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jupV+mJTE1pvBoznKX7CnNEX/UcHIbuuX9acjUSxpBvtr3rN6Jvj0rNUiRaN?= =?us-ascii?Q?awxJfgY4cJZ5zk1ANNjcLqD1zBEAWvE5Kn0SwBqF93AHxL0BQ7eMj1Ah9Y5r?= =?us-ascii?Q?mJ22FT0NEb+eF40otDZFBzWGAHJVg5V02P4h+FyOJy4lk2U68QWHDbqIbz9/?= =?us-ascii?Q?0Ianl+MCJ+/N/rNHDOKEoZ1WGuWtcAxivlcGRWGFlXU1ChDqZmyBSAUfRmzE?= =?us-ascii?Q?GsvEG6HU8ORxEWpdbdOZVlOBXTVONpVKKx8nPCT3M2248UWRTDz6Pc0eaRd/?= =?us-ascii?Q?UnfyHrsDcY+gZ7b6JQOvcAbnOY2PLWmPn18mCS21rO2deTAulDUhMV/L8QC0?= =?us-ascii?Q?Fq7X83rjzt0Ddx4Gm9rw4pPpLdM74EakQI9K1SlLtGNaHDEgYLk0k6pt7xhr?= =?us-ascii?Q?eTZGLXw9CkCRVCKQA/qs0/ynKhKmp+mb3/17KLJYdNRSqxUFkkKC1PiKX6ZI?= =?us-ascii?Q?qYoqPInxBQGsz6DjKFUx/LLiLEuN1w765egDHpV+WY4VKkgA/0N7S4pCgAc2?= =?us-ascii?Q?yc+K3rMw9xG2J/iLOfEpNq9xT43r1z0KPPaicry61Zk/YcuLubaZVgSDlH1G?= =?us-ascii?Q?PoIvYD8ewA3n6x5jWuN1mOPZ0JBatem7CWT3hn52p2FeaBZqPC5zXbewKk/3?= =?us-ascii?Q?vRowSCkSqO7fs7H9Rlkc8PO35Fm9/Aw2zFMMFEX3EEHgavvPLGZTVlBkkYzQ?= =?us-ascii?Q?Qdqhj8+ler1bCfwt2ilAj+ZMQodG/xjx53qw5MweK6JYoXuib9mcxHU1+5Nc?= =?us-ascii?Q?RV5h246fZV7xDwgJ+TPB9WCqY/bE47wufO/M/6hWNZXAe0FLWItlidb3Lgxj?= =?us-ascii?Q?y6IfwYOUoiZhsK5OoN74zREz+OR8ytd8uwL6egTH5F/8q0Yg9DRM5It/TWC0?= =?us-ascii?Q?QAXxOarvxHMTX4Gm0bQb/w+KRnrSj0d8p7Hhn0pfYwr3HvbA+y/pZENboX7s?= =?us-ascii?Q?bHpHPBREKqVyXTlAXHrQlo5hm/XuGCcDiFQL7Z+rl/az0iO3o10zrXZSUtV/?= =?us-ascii?Q?DbPoONYKbd/rSOPA9+Y6ddRqR1oak/fzMum7nzP++Qy2dS0nLS2BSLrugXNf?= =?us-ascii?Q?n5jdYN/TwaRt8Z2YPOh3dPisyJdLQFnt9n+VBxE2+LRtPESYfiq4cgPcdZ0B?= =?us-ascii?Q?Rxs8W5rBI14RqIfyrMAeknGXhRvjNdI0haJ3WJOiLzGV1D0S51Rm0F6xXevW?= =?us-ascii?Q?klQP+2NvzBu8+ZP/LeNnBlUx8g3d9SrPtpn7MG6EAMJr1XKlAdgzEwVFBRIK?= =?us-ascii?Q?bzY4edfN9SDGf5bHnrNHoBdi9IQQjQtpCXqK4ggwRNbdxEadW3V8JgVgN7uh?= =?us-ascii?Q?28T9m2Ep3dAcHTvluITQZTF8Y8WBgjUwW9QLiOJk7Om7wwPMlHYX7Znk5EKX?= =?us-ascii?Q?I1ePQKYv0/ZIMziUjDRaabvxNug5yDQXxs/y2qD/9jftH/HEZ/hBei2P+RYF?= =?us-ascii?Q?2OcrKzNIpj+FbN+xJMAbLZiMrapcHwIrlIQHKR/Su4bUkw+vad91fi9iekh0?= =?us-ascii?Q?pXsXlsNwx+zVRvXmAj2FS5V7Gz0QB3MRRXlIquOFfHWp6axjdU8Iq/KFt/ah?= =?us-ascii?Q?SW1N2+GJSUC7DrHqUkHA8JNBo7cZGpki8j2fADNQcl8cxN88Cos0+91U8+I3?= =?us-ascii?Q?Aw=3D=3D?= X-OriginatorOrg: chipsnmedia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 698a7e40-d5c0-4c5e-920d-08dd9901f171 X-MS-Exchange-CrossTenant-AuthSource: SE1P216MB1303.KORP216.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2025 07:26:18.3297 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4d70c8e9-142b-4389-b7f2-fa8a3c68c467 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zWn4RIo8whtx6Y+6wgU2pLyvqJX3RLYI9nBXURs9BUuKmVwnR3H1jFQanFS2Hp3j9UFx1yy8bVa2MvDVrHr2D6CBi114vswRzS2hYSt9pGY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PUYP216MB2872 Content-Type: text/plain; charset="utf-8" From: Jackson Lee Since applying changes for performance improvement of decoder, there was a problem related to high CPU load. CPU load was more than 4 times when comparing CPU load. The root cause was the device_run was called many times even if there was no bitstream which should be queued. Signed-off-by: Jackson Lee Signed-off-by: Nas Chung --- .../media/platform/chips-media/wave5/wave5-vpu-dec.c | 12 +++++++++--- .../media/platform/chips-media/wave5/wave5-vpuapi.h | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c b/dri= vers/media/platform/chips-media/wave5/wave5-vpu-dec.c index 719c5527eb7f..421a9e1a6f15 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c @@ -1280,10 +1280,13 @@ static void wave5_vpu_dec_buf_queue(struct vb2_buff= er *vb) __func__, vb->type, vb->index, vb2_plane_size(&vbuf->vb2_buf, 0), vb2_plane_size(&vbuf->vb2_buf, 1), vb2_plane_size(&vbuf->vb2_buf, 2)); =20 - if (vb->type =3D=3D V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) + if (vb->type =3D=3D V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) { + if (inst->empty_queue) + inst->empty_queue =3D false; wave5_vpu_dec_buf_queue_src(vb); - else if (vb->type =3D=3D V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) + } else if (vb->type =3D=3D V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) { wave5_vpu_dec_buf_queue_dst(vb); + } } =20 static int wave5_vpu_dec_allocate_ring_buffer(struct vpu_instance *inst) @@ -1474,6 +1477,7 @@ static void wave5_vpu_dec_stop_streaming(struct vb2_q= ueue *q) =20 dev_dbg(inst->dev->dev, "%s: type: %u\n", __func__, q->type); pm_runtime_resume_and_get(inst->dev->dev); + inst->empty_queue =3D false; =20 while (check_cmd) { struct queue_status_info q_status; @@ -1592,6 +1596,7 @@ static void wave5_vpu_dec_device_run(void *priv) inst->queuing_num =3D=3D 0 && inst->state =3D=3D VPU_INST_STATE_PIC_RUN) { dev_dbg(inst->dev->dev, "%s: no bitstream for feeding, so skip ", __fun= c__); + inst->empty_queue =3D true; goto finish_job_and_return; } } @@ -1737,7 +1742,8 @@ static int wave5_vpu_dec_job_ready(void *priv) "No capture buffer ready to decode!\n"); break; } else if (!wave5_is_draining_or_eos(inst) && - !v4l2_m2m_num_src_bufs_ready(m2m_ctx)) { + (!v4l2_m2m_num_src_bufs_ready(m2m_ctx) || + inst->empty_queue)) { dev_dbg(inst->dev->dev, "No bitstream data to decode!\n"); break; diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpuapi.h b/driv= ers/media/platform/chips-media/wave5/wave5-vpuapi.h index fd0aef0bac4e..f2596af08cdf 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpuapi.h +++ b/drivers/media/platform/chips-media/wave5/wave5-vpuapi.h @@ -821,6 +821,7 @@ struct vpu_instance { bool retry; /* retry to feed bitstream if failure reason is WAVE5_SYSERR_= QUEUEING_FAIL*/ int queuing_num; /* check if there is input buffer or not */ struct mutex feed_lock; /* lock for feeding bitstream buffers */ + bool empty_queue; struct vpu_buf bitstream_vbuf; dma_addr_t last_rd_ptr; size_t remaining_consumed_bytes; --=20 2.43.0 From nobody Sun Dec 14 12:34:19 2025 Received: from SEVP216CU002.outbound.protection.outlook.com (mail-koreacentralazon11022136.outbound.protection.outlook.com [40.107.43.136]) (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 D7335224AEE; Thu, 22 May 2025 07:26:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.43.136 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747898790; cv=fail; b=NNMgzbQZHkghuPi29Oke3nxaEK0HTC9wJFu06A9ygd1mE6sBvK6m1o8cPBHjvTMGKu3upuC+jQsT5zWPfQysVMODxXWXcCnPS5q3Nh3H6ernREvdSDQXk6UYqABuf1idfCYww5b+e0pZDghvqT1mxj2tU76mIB6T8Qi+ORp4ZQg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747898790; c=relaxed/simple; bh=PaFT5igaTSjpxSeoGSg+Vf7GB+9v69WpAbNTX8cJoCw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=aTYtuYjntDXTRib/re1ly4fe9fFZVLElkmUkO9eMv8nN/qCt+rv7g2MI6w9Y/PlQoSeDQmEbMLHi/XPpMECgW8kfR/59Q9QCDe0tg6aeoNz+dd2BHECKTNZn5HBm8VwRucxXfH3qC2p1+Zp7qbuVgioVobC6ctrJgfXfc/AtFKo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=chipsnmedia.com; spf=fail smtp.mailfrom=chipsnmedia.com; dkim=pass (1024-bit key) header.d=chipsnmedia.com header.i=@chipsnmedia.com header.b=OrdS93Ll; arc=fail smtp.client-ip=40.107.43.136 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=chipsnmedia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=chipsnmedia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chipsnmedia.com header.i=@chipsnmedia.com header.b="OrdS93Ll" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=p7T2TxdhPHjZnqJCIEeGcwh3xiJH6LdmZtSOqLrgmwafzTgvXdXm3Qgkcm3x+2ZWIr6+QjGDMwZx9IQzzUKHpWvrqhVFXy4c21YxhHvxFSuBr4n1ZgG22dGGhVj1uwujNHZSfvOVtmGKxvwLH1aIvoGMXjMRBvqbR3QUcz/6aCF0yInGus7HKJYEKZO3p0D3DbYEzbQPL190ZR54oIj8bRL79D4bc3zKgPX1ALo9PgCjCbGeadBegg7jaYO9D2peuZJ5mei951DVuhxFfn9P2Cy7VhcB1orm4O6S1srqGG8/bL9xVvo4F/SMY6rxmAyPInD3ezp+otTDiTplKbyufg== 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=BEH9NT8DCJiP4UN716FFmcS1IC7KnhaKvZzpwYDS05E=; b=O2McwxLMTCABfBsVa5onrV6PyOJ/7KXSuCz2jsvm+wZy1u6qmGOFGUvygbBX+aZW6cHY/v/cYrCa3oZLY4De6md7KCVHPyz8YSv18IiFuh2B7q7y1KldyLI5a7mEdxJzWbH2E/3lSOEQ/l8z7xo/Andpjjsb3EmeBOptkA0PxdYDpo+TKGb8SUGN6FHN3Us7wLQuucKoZG5fAkZyax2uHRApTPoQ+PoVcpAJ9nh/do9Z2cus68eImEI3QQA2rqIsoW0jcJPAWktwpgp86QcXgazVFGpww7PU9sEbckMdkUeheWUmOkCXhytqulGQ3jsdBLhtMhdJyUnlUq6sCnv8QA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=chipsnmedia.com; dmarc=pass action=none header.from=chipsnmedia.com; dkim=pass header.d=chipsnmedia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chipsnmedia.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BEH9NT8DCJiP4UN716FFmcS1IC7KnhaKvZzpwYDS05E=; b=OrdS93LlTjiztMERuoPUqdFlApTitfSBUgy78G6z/boCPhyjCkItTWFV9ADf70D9P00FgX5tid8iK4gRAUu9h5M6ElamhQhwMIdesOsPMMp+I2F84SizwG6Pdm7iHmhjmr1/1qUjjjS398+N8+mU3MPu/mLk6ohTZYD1nl6y5M0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=chipsnmedia.com; Received: from SE1P216MB1303.KORP216.PROD.OUTLOOK.COM (2603:1096:101:15::5) by PUYP216MB2872.KORP216.PROD.OUTLOOK.COM (2603:1096:301:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.20; Thu, 22 May 2025 07:26:18 +0000 Received: from SE1P216MB1303.KORP216.PROD.OUTLOOK.COM ([fe80::b711:5ab1:b5a4:d01b]) by SE1P216MB1303.KORP216.PROD.OUTLOOK.COM ([fe80::b711:5ab1:b5a4:d01b%5]) with mapi id 15.20.8769.019; Thu, 22 May 2025 07:26:18 +0000 From: "Jackson.lee" To: mchehab@kernel.org, hverkuil-cisco@xs4all.nl, sebastian.fricke@collabora.com, nicolas.dufresne@collabora.com, bob.beckett@collabora.com, dafna.hirschfeld@collabora.com Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, jackson.lee@chipsnmedia.com, lafley.kim@chipsnmedia.com, b-brnich@ti.com, hverkuil@xs4all.nl, nas.chung@chipsnmedia.com Subject: [PATCH v2 7/7] media: chips-media: wave5: Fix SError of kernel panic when closed Date: Thu, 22 May 2025 16:26:06 +0900 Message-Id: <20250522072606.51-8-jackson.lee@chipsnmedia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250522072606.51-1-jackson.lee@chipsnmedia.com> References: <20250522072606.51-1-jackson.lee@chipsnmedia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SEWP216CA0071.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2bc::13) To SE1P216MB1303.KORP216.PROD.OUTLOOK.COM (2603:1096:101:15::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SE1P216MB1303:EE_|PUYP216MB2872:EE_ X-MS-Office365-Filtering-Correlation-Id: 6666a388-232d-44d5-7b21-08dd9901f1ae X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|376014|7416014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?wBAVu1nolKnkEfxmdIbcCSAZIlcbxQh6Sqq47ep7vN4bVjgEdSo3XovSeqfl?= =?us-ascii?Q?OIp/dYXOsJCK67cwCV6HoFRR8tL2JRGn5upPe6GmOaHPGIK/tL9MzGgolPR0?= =?us-ascii?Q?9DZ6awOhkYHpFM90ieWSyARSXlltaoZ5hhj85vYZkAEmQqsK/l45fynBxnIp?= =?us-ascii?Q?euJCHPzS+E7LwjsUO6CSaOL6pVR6YBv0LDuNoh4ZuuIM8Wk3EU2PZUFMIkFW?= =?us-ascii?Q?kUQOzE+/lDCrDbgohITX+ILygPaylSKaFY38IlbwkY+0WkRg+SyLVBwXALCy?= =?us-ascii?Q?TUj4sbNoeWqpnuPVI+RURCKUZqN9LzS8yH64/N7ayUNXZRV47/XlvmKxPy9B?= =?us-ascii?Q?JQOtGScOJwsNfHkyqbzpOMtpYLfEWDOF0vWPkrdW4EFyupm+2BuNIS9Qs+Ba?= =?us-ascii?Q?Y2sYz7SFiQHyYJAwv6HN/DYJaydsSnH3qAvyt8fdgAqf74spm2qQxARSJlGZ?= =?us-ascii?Q?EKk+QDMaHILRmwApY47r5y78XS2by2ICbEK4kLHJK5QjiKq7ysvAlvW51LBy?= =?us-ascii?Q?LtBXhHLTOKMqpeL4Y/J8jbIu06cU8A0zUE/Jhs2ODmCdh47jRAxblaFNAWco?= =?us-ascii?Q?0On7kZYh0uEQKeVcWMqRoqrXJmoACq2BxUozJUp0DPtmNGtRaU9a5HTL8v86?= =?us-ascii?Q?FtPGPynllQm/FkytuDtg5Le4K/jXL2Ed9c+XPqF38VeiPVFKAgUxXhfHhfSJ?= =?us-ascii?Q?I7ft535kXKy1urPz6ngTt8ldvxU8I5RaoPziFaUCjjg/E46/9AmXWjdAReTH?= =?us-ascii?Q?3zQbkIU3U3DI3YxD0uloLH8oc0LcNi0BXGa8bPkma8HSNQoqxwV/VIZm6QUY?= =?us-ascii?Q?e+1fsadHIrxLedhN4/UQ+Kj+6j2cbytfb/hMYH64d6tT6fpandtBpJ6Movz6?= =?us-ascii?Q?QRGEEvB/PX1gkxQVIUbmNqBRyZEj7xAPPrTEzGJfz+k17thu8cWLeosmhIu9?= =?us-ascii?Q?tgm3OUVX9X3R/fnbMjd3U3p+sU51ORrlavHOycYqPk6Qur9ReHSBi7eDZTeD?= =?us-ascii?Q?vDrmKrDxgLbuse4XO6yoemfkn+7bd8nB08eZOUQOM7sI+lDxF13WO3FpxuIg?= =?us-ascii?Q?9a20tvS0zr4CrwNhGjoR5KBg/L0AU8HzE6WUDsWIrF2mypLJ7Cq+ZGTJ6Uoi?= =?us-ascii?Q?R+rr0k0uxjVRZ0SFWlYRtWB7liw1j0scZ/mdHZtbtgnz0/A1C+Hj2b9iMhuM?= =?us-ascii?Q?RzVh2rQirBSikW53BDTS3Wn2QCxqFDevdwO963rLMXSntrc6Awr0eiBH90ac?= =?us-ascii?Q?SEGUerCVeN65v8QzzkktBpUPtfLdKOQC46S4ufALG/vUWo4EvgJ1fH/c2M3Y?= =?us-ascii?Q?l+rXg760XteJRAOoebm+oRWwskQB9XvJdBEJswg+6ewb0vkpFu1unTQIqrFw?= =?us-ascii?Q?7MzeCdCfnnawIw0mWKC1DqzvpiT/bULVwIC/Uj5nfNgOra9mMKWPHEg+bLRR?= =?us-ascii?Q?NyZTqepIamNLedsBzjfIF2tBSZXCm4lbXXXmVmOc3AKDWA/lqq0qsQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SE1P216MB1303.KORP216.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(376014)(7416014)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?S9eiuf5R2OzjGhyVb4ymJ0ftLiVgNwopfU/twUsJyNqH8jSvhe+hWDoWN6cO?= =?us-ascii?Q?HNXHX6k9zAXvEgiXzrgHtmEJMYlO2fZQ7Z7WRkYyywjJgfVCGwhQ76IDD6b5?= =?us-ascii?Q?J9ZaXbfj08A+L+9/9RM/tfOnUkA6L+jwU5l1+GCD5nwhE4pRRUCPTE8Z3k45?= =?us-ascii?Q?+uypaZWMwx8SuGeosXTknCA/xlNAuBT6UUQRjPAqIfcEt3kj2Vc7ee6hS3LN?= =?us-ascii?Q?3FNWwXOsEOS8hI2kyLJP6vLRSvWTi3TwwC1XyL8ndp89jRzZD9NMMI/vUQNQ?= =?us-ascii?Q?jafy/Art1td7z54sXVc8cHEeAi9suIfpKQ+YWRxlzzo9nOeRQfFBxa25KK6K?= =?us-ascii?Q?ipDjEV7igVKnip+GhGovNgXYDS+lxRjyOKHpHgpPhixN9EMXnQlmZ2FEK5c7?= =?us-ascii?Q?gnh2q0GhMn/hng+SV+SH6yTq/LaOuQMO+tWON1THsSzRw0ONa5IfGJOeaa0t?= =?us-ascii?Q?g0/CBGobQY84zsZdOVUpOEH1QqVg3qGRL0YyavDEd0kBZsN6fj2LiZXxOICl?= =?us-ascii?Q?mxCkU1jvMC7Zao0Cvgx/opanVJ8x5Ylel8SHy5xNi4lzzlnl4Dgtlq0tuxcq?= =?us-ascii?Q?70LDRih2VUkWUdt01sbpP5Qf3AutU4MFs7e/DWMCGKZoGzTTdlV0V5cGhSu9?= =?us-ascii?Q?5upJVnrdmQGb1xyGPnjyzpom8wZFcjZv+mTe3frIKnzo8xgPOOSfeqpuaNGu?= =?us-ascii?Q?OsJsfP0KjsZPcROU0f1xmUtKP74bsUw/KOw9ZVWv1scH5TZ29ARPkhJL0tn0?= =?us-ascii?Q?3Tg3wePQX9YS8cqBR5W0+n8+wvsddpg/yDDb94/HaKW2g9Hc8GlQWzkxblEW?= =?us-ascii?Q?CD1/lsWUAkHWxS0T6jtQtva6bfityOZM0hi71GTnyCeSbfGvX47GmVeZhZdM?= =?us-ascii?Q?R4EWkwyfIYBy9GABiNhv0bbeD9zkwjI+KGpYU0JmQk66JlSLRA/YTt2o1t1x?= =?us-ascii?Q?eUqWDGxkhmfqMAiGEudZ8ZkMqnt+WmhoTv2FZ4i/Ejhr5HzCUJc2WN6DTgwu?= =?us-ascii?Q?oCpcOvYXpaRqDea3x5WAaDbA08pc7ShifRqWE+lgk2whcz4h4mPEiUxSjaXy?= =?us-ascii?Q?Gwna5lV87eLFKVBwNlq46ecPT0Z71WYnhrr++pGTn3U8ZH/OIqqFm7wTKIIO?= =?us-ascii?Q?9nFDUpbfDZZ6fe2PY8XxHX0OFTz/CMRSVvsDGntaRUeBJxHz86YRaLa/oO84?= =?us-ascii?Q?BOLAspPb5MgTfylALFecJho1AWMzVswo4sHfjL+Ix72L5ri+nLF8euV0fuk+?= =?us-ascii?Q?J8SvkBJ/bZyujV+9vqyQUYLsbgPbtVG+HGwjzbhfWWmgOZt+hwFIK+M0dXW9?= =?us-ascii?Q?D7I3O/1L1vbse6FZL0M4nJiGYIpFKB1p9ZpNrL3rJAklDj/J7R8rNZiL9vBT?= =?us-ascii?Q?LQvIBhw1/hu2sb4E5fx0IOsIwnCqIvSteNDwdrFcPmE14tOtC2YI6qRCp8Hk?= =?us-ascii?Q?qMxASh7IAmxC0h9zQ+xJgVwkh2Ie4DuQCSSN3jT6gMqQr4NBdytsESEdkPij?= =?us-ascii?Q?U3lYFviy0Z6E+1O1j3Nmau9pGc+bWuOhiXeA6jpfsOAtAIqGkFUVMmvVhvPj?= =?us-ascii?Q?czx+yUXrQtvNHNy0LyXbPIGAYxGRGqKqU4I84yoOTgn+erTQzy9J2CEPR2hT?= =?us-ascii?Q?9g=3D=3D?= X-OriginatorOrg: chipsnmedia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6666a388-232d-44d5-7b21-08dd9901f1ae X-MS-Exchange-CrossTenant-AuthSource: SE1P216MB1303.KORP216.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2025 07:26:18.6964 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4d70c8e9-142b-4389-b7f2-fa8a3c68c467 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cyApyrT4rVbw1h1MPqbjTjtsjK3PHAn7qKJQRhBOSqFAapKJep7Hfx+amtvbw7xEhUMYLvldcCQC6izX4NJ6vwHpzLQhCxiUhwA/fAbR6tc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PUYP216MB2872 Content-Type: text/plain; charset="utf-8" From: Jackson Lee Since applying "Reduce high CPU load" patch, SError of kernel panic rarely happened while testing fluster. The root cause was to enter suspend mode because timeout of autosuspend delay happened. [ 48.834439] SError Interrupt on CPU0, code 0x00000000bf000000 -- SError [ 48.834455] CPU: 0 UID: 0 PID: 1067 Comm: v4l2h265dec0:sr Not tainted 6.= 12.9-gc9e21a1ebd75-dirty #7 [ 48.834461] Hardware name: ti Texas Instruments J721S2 EVM/Texas Instrum= ents J721S2 EVM, BIOS 2025.01-00345-gbaf3aaa8ecfa 01/01/2025 [ 48.834464] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE= =3D--) [ 48.834468] pc : wave5_dec_clr_disp_flag+0x40/0x80 [wave5] [ 48.834488] lr : wave5_dec_clr_disp_flag+0x40/0x80 [wave5] [ 48.834495] sp : ffff8000856e3a30 [ 48.834497] x29: ffff8000856e3a30 x28: ffff0008093f6010 x27: ffff0008091= 58130 [ 48.834504] x26: 0000000000000000 x25: ffff00080b625000 x24: ffff000804a= 9ba80 [ 48.834509] x23: ffff000802343028 x22: ffff000809158150 x21: ffff0008022= 18000 [ 48.834513] x20: ffff0008093f6000 x19: ffff0008093f6000 x18: 00000000000= 00000 [ 48.834518] x17: 0000000000000000 x16: 0000000000000000 x15: 0000ffff740= 09618 [ 48.834523] x14: 000000010000000c x13: 0000000000000000 x12: 00000000000= 00000 [ 48.834527] x11: ffffffffffffffff x10: ffffffffffffffff x9 : ffff0008023= 43028 [ 48.834532] x8 : ffff00080b6252a0 x7 : 0000000000000038 x6 : 00000000000= 00000 [ 48.834536] x5 : ffff00080b625060 x4 : 0000000000000000 x3 : 00000000000= 00000 [ 48.834541] x2 : 0000000000000000 x1 : ffff800084bf0118 x0 : ffff800084b= f0000 [ 48.834547] Kernel panic - not syncing: Asynchronous SError Interrupt [ 48.834549] CPU: 0 UID: 0 PID: 1067 Comm: v4l2h265dec0:sr Not tainted 6.= 12.9-gc9e21a1ebd75-dirty #7 [ 48.834554] Hardware name: ti Texas Instruments J721S2 EVM/Texas Instrum= ents J721S2 EVM, BIOS 2025.01-00345-gbaf3aaa8ecfa 01/01/2025 [ 48.834556] Call trace: [ 48.834559] dump_backtrace+0x94/0xec [ 48.834574] show_stack+0x18/0x24 [ 48.834579] dump_stack_lvl+0x38/0x90 [ 48.834585] dump_stack+0x18/0x24 [ 48.834588] panic+0x35c/0x3e0 [ 48.834592] nmi_panic+0x40/0x8c [ 48.834595] arm64_serror_panic+0x64/0x70 [ 48.834598] do_serror+0x3c/0x78 [ 48.834601] el1h_64_error_handler+0x34/0x4c [ 48.834605] el1h_64_error+0x64/0x68 [ 48.834608] wave5_dec_clr_disp_flag+0x40/0x80 [wave5] [ 48.834615] wave5_vpu_dec_clr_disp_flag+0x54/0x80 [wave5] [ 48.834622] wave5_vpu_dec_buf_queue+0x19c/0x1a0 [wave5] [ 48.834628] __enqueue_in_driver+0x3c/0x74 [videobuf2_common] [ 48.834639] vb2_core_qbuf+0x508/0x61c [videobuf2_common] [ 48.834646] vb2_qbuf+0xa4/0x168 [videobuf2_v4l2] [ 48.834656] v4l2_m2m_qbuf+0x80/0x238 [v4l2_mem2mem] [ 48.834666] v4l2_m2m_ioctl_qbuf+0x18/0x24 [v4l2_mem2mem] [ 48.834673] v4l_qbuf+0x48/0x5c [videodev] [ 48.834704] __video_do_ioctl+0x180/0x3f0 [videodev] [ 48.834725] video_usercopy+0x2ec/0x68c [videodev] [ 48.834745] video_ioctl2+0x18/0x24 [videodev] [ 48.834766] v4l2_ioctl+0x40/0x60 [videodev] [ 48.834786] __arm64_sys_ioctl+0xa8/0xec [ 48.834793] invoke_syscall+0x44/0x100 [ 48.834800] el0_svc_common.constprop.0+0xc0/0xe0 [ 48.834804] do_el0_svc+0x1c/0x28 [ 48.834809] el0_svc+0x30/0xd0 [ 48.834813] el0t_64_sync_handler+0xc0/0xc4 [ 48.834816] el0t_64_sync+0x190/0x194 [ 48.834820] SMP: stopping secondary CPUs [ 48.834831] Kernel Offset: disabled [ 48.834833] CPU features: 0x08,00002002,80200000,4200421b [ 48.834837] Memory Limit: none [ 49.161404] ---[ end Kernel panic - not syncing: Asynchronous SError Int= errupt ]--- Signed-off-by: Jackson Lee Signed-off-by: Nas Chung --- .../platform/chips-media/wave5/wave5-vpu-dec.c | 3 --- .../platform/chips-media/wave5/wave5-vpu-enc.c | 3 --- .../media/platform/chips-media/wave5/wave5-vpu.c | 2 +- .../platform/chips-media/wave5/wave5-vpuapi.c | 16 ---------------- 4 files changed, 1 insertion(+), 23 deletions(-) diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c b/dri= vers/media/platform/chips-media/wave5/wave5-vpu-dec.c index 421a9e1a6f15..b4b522d7fa84 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c @@ -1865,9 +1865,6 @@ static int wave5_vpu_open_dec(struct file *filp) if (ret) goto cleanup_inst; =20 - if (list_empty(&dev->instances)) - pm_runtime_use_autosuspend(inst->dev->dev); - list_add_tail(&inst->list, &dev->instances); =20 mutex_unlock(&dev->dev_lock); diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c b/dri= vers/media/platform/chips-media/wave5/wave5-vpu-enc.c index 52a1a00fd9bb..7f1aa392805f 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c @@ -1779,9 +1779,6 @@ static int wave5_vpu_open_enc(struct file *filp) if (ret) goto cleanup_inst; =20 - if (list_empty(&dev->instances)) - pm_runtime_use_autosuspend(inst->dev->dev); - list_add_tail(&inst->list, &dev->instances); =20 mutex_unlock(&dev->dev_lock); diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu.c b/drivers= /media/platform/chips-media/wave5/wave5-vpu.c index a2c09523d76b..24a9001966e7 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpu.c +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu.c @@ -368,7 +368,7 @@ static int wave5_vpu_probe(struct platform_device *pdev) dev_info(&pdev->dev, "Product Code: 0x%x\n", dev->product_code); dev_info(&pdev->dev, "Firmware Revision: %u\n", fw_revision); =20 - pm_runtime_set_autosuspend_delay(&pdev->dev, 100); + pm_runtime_set_autosuspend_delay(&pdev->dev, 500); pm_runtime_use_autosuspend(&pdev->dev); pm_runtime_enable(&pdev->dev); wave5_vpu_sleep_wake(&pdev->dev, true, NULL, 0); diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpuapi.c b/driv= ers/media/platform/chips-media/wave5/wave5-vpuapi.c index d7318d596b73..1f7f4d214b3c 100644 --- a/drivers/media/platform/chips-media/wave5/wave5-vpuapi.c +++ b/drivers/media/platform/chips-media/wave5/wave5-vpuapi.c @@ -207,8 +207,6 @@ int wave5_vpu_dec_close(struct vpu_instance *inst, u32 = *fail_res) int retry =3D 0; struct vpu_device *vpu_dev =3D inst->dev; int i; - int inst_count =3D 0; - struct vpu_instance *inst_elm; struct dec_output_info dec_info; =20 *fail_res =3D 0; @@ -265,12 +263,6 @@ int wave5_vpu_dec_close(struct vpu_instance *inst, u32= *fail_res) } =20 wave5_vdi_free_dma_memory(vpu_dev, &p_dec_info->vb_task); - - list_for_each_entry(inst_elm, &vpu_dev->instances, list) - inst_count++; - if (inst_count =3D=3D 1) - pm_runtime_dont_use_autosuspend(vpu_dev->dev); - mutex_destroy(&inst->feed_lock); =20 unlock_and_return: @@ -738,8 +730,6 @@ int wave5_vpu_enc_close(struct vpu_instance *inst, u32 = *fail_res) int ret; int retry =3D 0; struct vpu_device *vpu_dev =3D inst->dev; - int inst_count =3D 0; - struct vpu_instance *inst_elm; =20 *fail_res =3D 0; if (!inst->codec_info) @@ -782,12 +772,6 @@ int wave5_vpu_enc_close(struct vpu_instance *inst, u32= *fail_res) } =20 wave5_vdi_free_dma_memory(vpu_dev, &p_enc_info->vb_task); - - list_for_each_entry(inst_elm, &vpu_dev->instances, list) - inst_count++; - if (inst_count =3D=3D 1) - pm_runtime_dont_use_autosuspend(vpu_dev->dev); - mutex_unlock(&vpu_dev->hw_lock); pm_runtime_put_sync(inst->dev->dev); =20 --=20 2.43.0