From nobody Mon Jun 8 09:48:38 2026 Received: from mail-dy1-f194.google.com (mail-dy1-f194.google.com [74.125.82.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4493F37F8A7 for ; Thu, 4 Jun 2026 08:25:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.194 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780561533; cv=none; b=U+Tu8y6DEPDGqvOKc7Xham/duQ/lY1W6Lo3h5Qginqw6mIDIBZTE9W05e0ipfWu3pcddPaI2SNp/q7nOwpYKGy26TFarmrYBfnL2tzy9ZeQjDsjPxUmu3sZ60ejksdD3ELSc6UJvNr7AIYQwmgZi8ZgvT08WICF5ta9iq3NgL4o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780561533; c=relaxed/simple; bh=GNlfIQn3/4sj74l0bcAd1OCnJv85ehz8xRgjB3l7X6w=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Q1vc1dbJvTuKF/GXSQoQAefpQ2EkiEKkTQXJx5Vm1FiL0uIqgMQLv8jihfW4QRjeDkwaBjHvWg4vmn5Km0Ok1/EP+rnGR/bI3znJyTV3Ng6zKznfEx1UX+YoCbIwwaZ3T0u09ekfSr9c1ATVUEUU8fPh8uDFig1UvoGiEM5y0Q4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=XXbLxKVL; arc=none smtp.client-ip=74.125.82.194 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="XXbLxKVL" Received: by mail-dy1-f194.google.com with SMTP id 5a478bee46e88-304f590dd91so433766eec.0 for ; Thu, 04 Jun 2026 01:25:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780561531; x=1781166331; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=al7V+0dBM4yLTh7JxiBYF8Db9WJHRQf85PY/9QPCuro=; b=XXbLxKVLKa6Picp0p2Z7ddO/jLVr+icoub5TuAom6IiX8YK64IAC1XSTxkYW5ChS7h GgIYlQWp65BoFopZMDaIZoc0wVu1GwJDQqFC90pU38SHB3wTNoABxF/n8gW/Oc45WprI Tl1yq9LnhiWsVexLHjq1RBYOo0oOwARB3nox0WtHoraBFjU8MWjhRRm3ASI8J2jUo6I/ m2KCmh13PKNkCQPiw4WuH9sEpeBDOul5iGQR3d8Pp3e5lWt4LGPT4NECouOFEnALEJ5C W2DbvXTuWhIqy68sHdVwRuGj5LhfxCQFZGjcVeWvcFhT084Efen4nq7HxrO8kZW+qiUc cjXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780561531; x=1781166331; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=al7V+0dBM4yLTh7JxiBYF8Db9WJHRQf85PY/9QPCuro=; b=Ifsk9KPP08+rpOB2tgeqrmjmwO+Uqqc7r1+NPq8hIrzsdwpxW7iY2pr+SjRvH/vLqY LL77t+Gq1Dqn8VT2mSCpAZ1UA4T6lBUWdgOj4rY4i+QATy+Fu+MYXLW5/+VbeMbyE2eX 3yad+prigeavLMAc/JXLk2EcQ1eLBdWxendYjN36AYYA8bUqo5usQdsQRqygJmDTH3U6 Ud8tQNrrDgne6WnOUJd8IZZBCYcsr1Z/8vKc/YG3flTJyPdnyi3FVDIuCaBkCb9JJOnt f34tnISgZ4ry0N9r1hvss8E4IMwCToH/6vwZpn/V7C22HRCP85gvIeeUziE4D/1HivUs bmcA== X-Forwarded-Encrypted: i=1; AFNElJ8nUZH6PhdWvPLqyD9AvPNMYGfvm4yqWEdnh/yxbFCgDRqidQhl5/jokFoAfeaoPd56Dy9JOPUXwp5G9xo=@vger.kernel.org X-Gm-Message-State: AOJu0Yx1vm8nD5QNVAyh6NefDi00RQ6s3MDY37NIywaHK4yRQ2DqK4FH nwcclWUHoXBA8JvBphutypLMNefgDa6KfEvrgf4yJFP79C/01DQtE4+6 X-Gm-Gg: Acq92OG8c2y18OFbf/ZyU84mnz9zK+146d0AetXWqeOjyxp71vnxuYdtCPVDkjf71y/ ibF4QqvZBfAj6KYHLj3eZEHJMkiLf98kLWNu/zhHESfC++7qmMG2c/ppsmyEbwMrjtuAp4aJXQ1 spJXRQET5xbrc6r0DFu7MPDPuH/fOyMx3HxlRPs2ccmUXBdrfSrRyq9PDplqbT5f7JwZrv1u1zN HkCIB5vO7XJsbVAWClrphRZenC0gYmpw5nWTQ0VeDL6iVyg2VP2p1XoYii8VEIPgFmVaURtgBSi WejXM8W7TSxtmpcMQJCqEhgjJGgM4xhA9a5P8r1EkJnp9VI4GLEpv7M6BqXZSifWmZz4+RYAIuW ZaL55uS2aSG6cM1jrUAMirVJE2zn/lZeJsafk1vrcahsiz8jUkY3Trp/hL4JWqH+wJ4X5cl5ZuC yOsLYmMQ8Ojh2RQjvrxnnT6EApF/egk8s8bjA1cDj5cYwS/SYJYfYwV6BHysFHSNJkpA== X-Received: by 2002:a05:693c:68ca:b0:304:5db8:da95 with SMTP id 5a478bee46e88-3074fb8754bmr1843173eec.23.1780561531220; Thu, 04 Jun 2026 01:25:31 -0700 (PDT) Received: from localhost.localdomain ([76.32.119.210]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3074df3b234sm6014312eec.23.2026.06.04.01.25.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Jun 2026 01:25:30 -0700 (PDT) From: Hungyu Lin To: Vikash Garodia Cc: Abhinav Kumar , Bryan O'Donoghue , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Hungyu Lin Subject: [PATCH v3] media: qcom: iris: guard IRQ handler with runtime PM check Date: Thu, 4 Jun 2026 08:25:10 +0000 Message-Id: <20260604082510.45733-1-dennylin0707@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Use pm_runtime_get_if_active() before accessing hardware registers in the threaded IRQ handler. Skip interrupt processing when the device is not active. Signed-off-by: Hungyu Lin --- v2: - Use pm_runtime_get_if_active() instead of pm_runtime_get_if_in_use() - Handle negative runtime PM return values correctly - Return IRQ_NONE when interrupt processing is skipped v3: - Remove the early enable_irq() from the PM-inactive early-return path - IRQ re-enablement is already handled by iris_vpu_power_on() after power-on drivers/media/platform/qcom/iris/iris_hfi_common.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/media/platform/qcom/iris/iris_hfi_common.c b/drivers/m= edia/platform/qcom/iris/iris_hfi_common.c index 621c66593d88..59040cce8cf1 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_common.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_common.c @@ -100,10 +100,15 @@ irqreturn_t iris_hfi_isr(int irq, void *data) irqreturn_t iris_hfi_isr_handler(int irq, void *data) { struct iris_core *core =3D data; + int ret; =20 if (!core) return IRQ_NONE; =20 + ret =3D pm_runtime_get_if_active(core->dev); + if (ret <=3D 0) + return IRQ_NONE; + mutex_lock(&core->lock); pm_runtime_mark_last_busy(core->dev); iris_vpu_clear_interrupt(core); @@ -111,6 +116,8 @@ irqreturn_t iris_hfi_isr_handler(int irq, void *data) =20 core->hfi_response_ops->hfi_response_handler(core); =20 + pm_runtime_put_autosuspend(core->dev); + if (!iris_vpu_watchdog(core, core->intr_status)) enable_irq(irq); =20 --=20 2.34.1