mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2025-04-19 20:58:31 +09:00
Miscellaneous fixes:
- Fix BCM2712 irqchip driver Kconfig dependencies required on the Raspberry PI5 - Fix spurious interrupts on RZ/G3E SMARC EVK systems - Fix crash regression on Sun/NIU hardware - Apply MSI driver quirk for Sun Neptune chips Signed-off-by: Ingo Molnar <mingo@kernel.org> -----BEGIN PGP SIGNATURE----- iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmgCtVYRHG1pbmdvQGtl cm5lbC5vcmcACgkQEnMQ0APhK1gU2Q//eEhRXZbzzDq8M9e70ll4qBSoIdSNJLK1 Neyf+mGuGJ8qsFPnoTjj21t9/zn/AFROPBdXUwLslOKgnXAiD9Zm0OO60Xrujrhb ezaqMp3VCotoDchotbKWhWPD26cXfwjs44QbqOxS17NYyv5TVGVXfbo3sY9x5m/S 1eSFgWcYxjp4v++sbWJpeEOo9nm++ozhY+vlFX8dhzaW/uOiEVRG1sW8scs//uEe I/V8wTh0ZYoGBsf7WgBpFXdEr/obZd7Iy/GFMnghBY1zHZcWX5xfGfHGMaMq8/cU SNrTqInaWSgIxsQfiagbZsyGwM35SmNC1yQ2MH4nDayRrBa67bjbYawNK5lXrXbB me6o4RIWnz3Xcy0RZZPyPyXzSa5z8Ut5jbCbcdct9o0FmzJyvKKDBcljw22AJjls h3hWBCIxINB2+KwfAOcKLLolOQ/LdY8tHgpv/8OoELIOlbmvdkBtYC2cIQ58OHZm M8IGnJyT1OgZukBBNCClSBZbuzrtR63sS7t3oep+fNpK1cFpzYRjB1YFGruGe2m1 BT6vjwmuDBCNv8LQTkj07xGAwmKgJ0baqhdqK5fNyTD7iIMTPtVd8CI/EelGygVO rUEGS5cP7EMRZEvpyefqCbv+96RHbtGooEPR+/l2qJgQcKoZfv8wuuUpK+7u/Z8H b+jUwtdLZ9M= =HJUJ -----END PGP SIGNATURE----- Merge tag 'irq-urgent-2025-04-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull misc irq fixes from Ingo Molnar: - Fix BCM2712 irqchip driver Kconfig dependencies required on the Raspberry PI5 - Fix spurious interrupts on RZ/G3E SMARC EVK systems - Fix crash regression on Sun/NIU hardware - Apply MSI driver quirk for Sun Neptune chips * tag 'irq-urgent-2025-04-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/irq-bcm2712-mip: Enable driver when ARCH_BCM2835 is enabled irqchip/renesas-rzv2h: Prevent TINT spurious interrupt net/niu: Niu requires MSIX ENTRY_DATA fields touch before entry reads PCI/MSI: Add an option to write MSIX ENTRY_DATA before any reads
This commit is contained in:
commit
b0c3bc35a5
@ -114,8 +114,8 @@ config I8259
|
||||
|
||||
config BCM2712_MIP
|
||||
tristate "Broadcom BCM2712 MSI-X Interrupt Peripheral support"
|
||||
depends on ARCH_BRCMSTB || COMPILE_TEST
|
||||
default m if ARCH_BRCMSTB
|
||||
depends on ARCH_BRCMSTB || ARCH_BCM2835 || COMPILE_TEST
|
||||
default m if ARCH_BRCMSTB || ARCH_BCM2835
|
||||
depends on ARM_GIC
|
||||
select GENERIC_IRQ_CHIP
|
||||
select IRQ_DOMAIN_HIERARCHY
|
||||
|
@ -170,6 +170,14 @@ static void rzv2h_tint_irq_endisable(struct irq_data *d, bool enable)
|
||||
else
|
||||
tssr &= ~ICU_TSSR_TIEN(tssel_n, priv->info->field_width);
|
||||
writel_relaxed(tssr, priv->base + priv->info->t_offs + ICU_TSSR(k));
|
||||
|
||||
/*
|
||||
* A glitch in the edge detection circuit can cause a spurious
|
||||
* interrupt. Clear the status flag after setting the ICU_TSSRk
|
||||
* registers, which is recommended by the hardware manual as a
|
||||
* countermeasure.
|
||||
*/
|
||||
writel_relaxed(BIT(tint_nr), priv->base + priv->info->t_offs + ICU_TSCLR);
|
||||
}
|
||||
|
||||
static void rzv2h_icu_irq_disable(struct irq_data *d)
|
||||
|
@ -9064,6 +9064,8 @@ static void niu_try_msix(struct niu *np, u8 *ldg_num_map)
|
||||
msi_vec[i].entry = i;
|
||||
}
|
||||
|
||||
pdev->dev_flags |= PCI_DEV_FLAGS_MSIX_TOUCH_ENTRY_DATA_FIRST;
|
||||
|
||||
num_irqs = pci_enable_msix_range(pdev, msi_vec, 1, num_irqs);
|
||||
if (num_irqs < 0) {
|
||||
np->flags &= ~NIU_FLAGS_MSIX;
|
||||
|
@ -615,6 +615,9 @@ void msix_prepare_msi_desc(struct pci_dev *dev, struct msi_desc *desc)
|
||||
void __iomem *addr = pci_msix_desc_addr(desc);
|
||||
|
||||
desc->pci.msi_attrib.can_mask = 1;
|
||||
/* Workaround for SUN NIU insanity, which requires write before read */
|
||||
if (dev->dev_flags & PCI_DEV_FLAGS_MSIX_TOUCH_ENTRY_DATA_FIRST)
|
||||
writel(0, addr + PCI_MSIX_ENTRY_DATA);
|
||||
desc->pci.msix_ctrl = readl(addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
|
||||
}
|
||||
}
|
||||
|
@ -245,6 +245,8 @@ enum pci_dev_flags {
|
||||
PCI_DEV_FLAGS_NO_RELAXED_ORDERING = (__force pci_dev_flags_t) (1 << 11),
|
||||
/* Device does honor MSI masking despite saying otherwise */
|
||||
PCI_DEV_FLAGS_HAS_MSI_MASKING = (__force pci_dev_flags_t) (1 << 12),
|
||||
/* Device requires write to PCI_MSIX_ENTRY_DATA before any MSIX reads */
|
||||
PCI_DEV_FLAGS_MSIX_TOUCH_ENTRY_DATA_FIRST = (__force pci_dev_flags_t) (1 << 13),
|
||||
};
|
||||
|
||||
enum pci_irq_reroute_variant {
|
||||
|
Loading…
x
Reference in New Issue
Block a user