Re: [PATCH v4 09/18] PCI: rcar-gen4: Add Root Port reset support

From: Marek Vasut

Date: Sat Oct 17 2026 - 13:35:07 EST


On 10/15/26 5:30 AM, Koichiro Den wrote:

[...]

+static void rcar_gen4_pcie_app_irq_sync(struct rcar_gen4_pcie *rcar)
+{
+ guard(raw_spinlock_irqsave)(&rcar->app_lock);
+
+ rcar_gen4_pcie_app_irq_sync_locked(rcar);
+}
+
static int rcar_gen4_pcie_host_msi_init(struct dw_pcie_rp *pp)
{
struct dw_pcie *dw = to_dw_pcie_from_pp(pp);
struct rcar_gen4_pcie *rcar = to_rcar_gen4_pcie(dw);
+ unsigned long flags;
u32 val;
int ret;
@@ -543,12 +589,7 @@ static int rcar_gen4_pcie_host_msi_init(struct dw_pcie_rp *pp)
}
/* Configure MSI interrupt signal */
- val = readl(rcar->base + PCIEINTSTS0EN);
- if (pci_msi_enabled())
- val |= MSI_CTRL_INT;
- else
- val &= ~MSI_CTRL_INT;
- writel(val, rcar->base + PCIEINTSTS0EN);
+ rcar_gen4_pcie_app_irq_sync(rcar);
return 0;
@@ -563,9 +604,11 @@ static int rcar_gen4_pcie_host_msi_init(struct dw_pcie_rp *pp)
writel(0, rcar->base + AXIINTCCONT);
/* Deconfigure MSI interrupt signal */
+ raw_spin_lock_irqsave(&rcar->app_lock, flags);

This is only a small nitpick. I wonder if you could use the same scoped_guard() {} call here instead of the raw_spin_lock_irqsave() and raw_spin_unlock_irqrestore() pair?

scoped_guard(raw_spinlock_irqsave, &rcar->app_lock) {

val = readl(rcar->base + PCIEINTSTS0EN);
val &= ~MSI_CTRL_INT;
writel(val, rcar->base + PCIEINTSTS0EN);

}

+ raw_spin_unlock_irqrestore(&rcar->app_lock, flags);
return ret;
}

Either way, this patch is

Reviewed-by: Marek Vasut <marek.vasut+renesas@xxxxxxxxxxx>

Thank you !