From nobody Thu Apr 2 01:49:46 2026 Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.52]) (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 086623F0742 for ; Wed, 25 Mar 2026 19:25:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774466706; cv=none; b=okcuphqC0S5FZa5s9pzMlOwE7PiXWOi8tZtY+fJgQnqa7OwIuaYX9jp7LqtvphlYhiFQ4EIXF+NHc87I8t6eQHS9K5pUTTd8UBjqBB3zp1lfEZpMrmE4LyoIJtDxFgnycQjXEmz25vceyVOYcJ36tU9aVTPKvuqFc6kqMGSJ5kU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774466706; c=relaxed/simple; bh=g+tL8eVaWIqZhx+4B6Wiuwsvn9N45Dh20r42BE6IJ64=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=SIFOwqxVAqJcRUMpGjw8gcCUE+BHffQQsqtbyS//Au/d90m+lOdLmg8Rv4C87iIgP406gy6qEuvKaWtyNO8N3N+RLsjQTps+Yq+NC+g4LyXjtyuFVE3Ptz9JzamJu7r4twFnR7ANbtgQzOVwTui3huHOnEMOYM0P5llgTsa6pUA= 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=bzxGAGum; arc=none smtp.client-ip=209.85.221.52 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="bzxGAGum" Received: by mail-wr1-f52.google.com with SMTP id ffacd0b85a97d-439b9b190easo110389f8f.2 for ; Wed, 25 Mar 2026 12:25:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774466703; x=1775071503; 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=YVn7JZATj34qETC8kWqIZJ67U0LmJ17AJHn3nGvDANo=; b=bzxGAGumBgx1hSaxxd2cXEvhfePeyVUer/9VMzpdjZYegdZ7k8STAq1D7Gv3iSDQsZ kG5P4S6qzihRDG3whWfmkQdJ/+OhkWX25XeE0AmcHgj1+PeA6JwJYn7ncwsyvKkUd/X+ sxqjozPVS0q5OeJpUm2+E3zk5/dRzPaid0n3xgCa9cwkswNNVaMikQgZGngUey7bAkFx WRHcS94qS6ahbICBT8WIZA8pie1s4D4T3PKJ29e/wyBS8t+D8QedmcaK0yKXku6/fUUp 6VCN1WQHooQeKrepiVUK1epVjlXzHPIcg3s247PtgUXYX9UmaW2dsSTm8z0yvGACvpHN i0ZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774466703; x=1775071503; 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=YVn7JZATj34qETC8kWqIZJ67U0LmJ17AJHn3nGvDANo=; b=j2LA0nCI2E3gHDN+ky+jyV4v6FK/oCLLjInnoNQ3ngh0l43VTlWgTO0sCeBY1yJPrA 3YbR9G+72E0kjCsQk85W6t07J5SNcwYwaQSF4Ea18LldEeM93zU9X4pfxZ66agKO+Orj UUDyGrlPLIGGUD6nvjYgE8Dq92gd1TGKhY53xrGfZP1wHSCNoEyX0Ny52uk0UC6HiIcv UJhDmBP/GooJf0tbtqP/p303jMwAUwC4qUc/1SxYL2KcyeVWLLp4/x2NhGVfYX454a+6 +PC5DvrdoKnCDTjKs10PE/gJYQtGnld5k/0kWjxDsBba3bx9GP2RFkzIKVLpPDw01e4T QtDg== X-Forwarded-Encrypted: i=1; AJvYcCUkmOPyTvQf9gQkaUwEjTihK1THaeeB7hMlQ5t+byxR/ep9QbHF0kNepLE1Y+USjFMO4iP7ZBPO2V2mc/E=@vger.kernel.org X-Gm-Message-State: AOJu0YyFE1DMhQ1hk/dYIL1EAwmCXPC0SLwbNvzv38FI/ZIictkYtqaO mJ2q7kmW3xZkLe1VZJ9g/E9PhOMC6m7wEpc+I93+HbgRt0l7ABx5ZcvyCWAi7g== X-Gm-Gg: ATEYQzz94I8SWG9di7zkWtiflJltRi2kZ+cH6jsfZmpsl6pLLrzAWhUjdUZh3VqIsv3 NbmcHj3jLFcN0NSnAs1E6vNI1H91ra+616WwuDGV1n/QLsl1MTJjQBBVBYjWXkBgx2WMgQkiOcQ DDguWGT/wic52GsAslDStWw3lf8VUHijUvITW4yhJDi+xFLRfXgea8ToCkSmIq9Hqj1KbeSLSUx TU8pVEmku7LqZ5y4Ty9rUVfOjh49t3CS8SSz6CMqvERa2giaDr5iAtzEQQ+uUQHNQS3OOoF8b7K yJpX2M4NxGiVRoZyJ7EFEBWKt53vyhfHlmDyH6tXe0VRlnSKnePXmOS5ld/6aevzzvbflWsbqiX xujS2pDZ5PgabNvyqGv8cKMvIXBCTZsDBBexrTW0xHwwRvxTF3VKbNmzwiDeXqe0cY6FJEUrcca ZFc8CeNrzRPjcmnFiRi1wltS/0YB+l/Oe/aoebmth/89PzR2MR X-Received: by 2002:a05:6000:401f:b0:43b:63e5:2526 with SMTP id ffacd0b85a97d-43b88a10047mr7405755f8f.27.1774466703338; Wed, 25 Mar 2026 12:25:03 -0700 (PDT) Received: from localhost.localdomain ([2a00:23c4:a758:8a01:8138:17e4:88b1:468c]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b9192e533sm2464485f8f.2.2026.03.25.12.25.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 12:25:02 -0700 (PDT) From: Biju X-Google-Original-From: Biju To: Thomas Gleixner Cc: Biju Das , linux-kernel@vger.kernel.org, Geert Uytterhoeven , Prabhakar Mahadev Lad , Biju Das , linux-renesas-soc@vger.kernel.org Subject: [PATCH v7 10/16] irqchip/renesas-rzg2l: Split rzfive_irqc_{mask,unmask} into separate IRQ and TINT handlers Date: Wed, 25 Mar 2026 19:24:25 +0000 Message-ID: <20260325192451.172562-11-biju.das.jz@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260325192451.172562-1-biju.das.jz@bp.renesas.com> References: <20260325192451.172562-1-biju.das.jz@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Biju Das rzfive_irqc_mask() and rzfive_irqc_unmask() used hw_irq range checks to dispatch between IRQ and TINT masking operations. Split each into two dedicated handlers =E2=80=94 rzfive_irqc_irq_mask(), rzfive_irqc_tint_mask(= ), rzfive_irqc_irq_unmask(), and rzfive_irqc_tint_unmask() =E2=80=94 each operating unconditionally on its respective interrupt type, removing the runtime conditionals. Assign the IRQ-specific handlers to rzfive_irqc_irq_chip and the TINT-specific handlers to rzfive_irqc_tint_chip, consistent with the separation applied to the EOI, set_type, and enable/disable callbacks in previous patches. While at it, simplify rzfive_irqc_{irq,tint}_{mask,unmask}() by replacing raw_spin_lock locking/unlocking with scoped_guard(). Signed-off-by: Biju Das --- v6->v7: * No change. v5->v6: * Updated commit description. * Simplified rzfive_irqc_{irq,tint}_{mask,unmask}() by replacing raw_spin_lock locking/unlocking with scoped_guard(). v5: * New patch. --- drivers/irqchip/irq-renesas-rzg2l.c | 44 ++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/drivers/irqchip/irq-renesas-rzg2l.c b/drivers/irqchip/irq-rene= sas-rzg2l.c index 79837c754b60..64cfd9955d8f 100644 --- a/drivers/irqchip/irq-renesas-rzg2l.c +++ b/drivers/irqchip/irq-renesas-rzg2l.c @@ -184,31 +184,47 @@ static void rzfive_irqc_unmask_tint_interrupt(struct = rzg2l_irqc_priv *priv, writel_relaxed(readl_relaxed(priv->base + TMSK) & ~bit, priv->base + TMSK= ); } =20 -static void rzfive_irqc_mask(struct irq_data *d) +static void rzfive_irqc_irq_mask(struct irq_data *d) { struct rzg2l_irqc_priv *priv =3D irq_data_to_priv(d); unsigned int hwirq =3D irqd_to_hwirq(d); =20 - raw_spin_lock(&priv->lock); - if (hwirq >=3D IRQC_IRQ_START && hwirq <=3D IRQC_IRQ_COUNT) + scoped_guard(raw_spinlock, &priv->lock) rzfive_irqc_mask_irq_interrupt(priv, hwirq); - else if (hwirq >=3D IRQC_TINT_START && hwirq < IRQC_NUM_IRQ) + + irq_chip_mask_parent(d); +} + +static void rzfive_irqc_tint_mask(struct irq_data *d) +{ + struct rzg2l_irqc_priv *priv =3D irq_data_to_priv(d); + unsigned int hwirq =3D irqd_to_hwirq(d); + + scoped_guard(raw_spinlock, &priv->lock) rzfive_irqc_mask_tint_interrupt(priv, hwirq); - raw_spin_unlock(&priv->lock); + irq_chip_mask_parent(d); } =20 -static void rzfive_irqc_unmask(struct irq_data *d) +static void rzfive_irqc_irq_unmask(struct irq_data *d) { struct rzg2l_irqc_priv *priv =3D irq_data_to_priv(d); unsigned int hwirq =3D irqd_to_hwirq(d); =20 - raw_spin_lock(&priv->lock); - if (hwirq >=3D IRQC_IRQ_START && hwirq <=3D IRQC_IRQ_COUNT) + scoped_guard(raw_spinlock, &priv->lock) rzfive_irqc_unmask_irq_interrupt(priv, hwirq); - else if (hwirq >=3D IRQC_TINT_START && hwirq < IRQC_NUM_IRQ) + + irq_chip_unmask_parent(d); +} + +static void rzfive_irqc_tint_unmask(struct irq_data *d) +{ + struct rzg2l_irqc_priv *priv =3D irq_data_to_priv(d); + unsigned int hwirq =3D irqd_to_hwirq(d); + + scoped_guard(raw_spinlock, &priv->lock) rzfive_irqc_unmask_tint_interrupt(priv, hwirq); - raw_spin_unlock(&priv->lock); + irq_chip_unmask_parent(d); } =20 @@ -497,8 +513,8 @@ static const struct irq_chip rzg2l_irqc_tint_chip =3D { static const struct irq_chip rzfive_irqc_irq_chip =3D { .name =3D "rzfive-irqc", .irq_eoi =3D rzg2l_irqc_irq_eoi, - .irq_mask =3D rzfive_irqc_mask, - .irq_unmask =3D rzfive_irqc_unmask, + .irq_mask =3D rzfive_irqc_irq_mask, + .irq_unmask =3D rzfive_irqc_irq_unmask, .irq_disable =3D rzfive_irqc_irq_disable, .irq_enable =3D rzfive_irqc_irq_enable, .irq_get_irqchip_state =3D irq_chip_get_parent_state, @@ -514,8 +530,8 @@ static const struct irq_chip rzfive_irqc_irq_chip =3D { static const struct irq_chip rzfive_irqc_tint_chip =3D { .name =3D "rzfive-irqc", .irq_eoi =3D rzg2l_irqc_tint_eoi, - .irq_mask =3D rzfive_irqc_mask, - .irq_unmask =3D rzfive_irqc_unmask, + .irq_mask =3D rzfive_irqc_tint_mask, + .irq_unmask =3D rzfive_irqc_tint_unmask, .irq_disable =3D rzfive_irqc_tint_disable, .irq_enable =3D rzfive_irqc_tint_enable, .irq_get_irqchip_state =3D irq_chip_get_parent_state, --=20 2.43.0