From: Helge Deller Date: Wed, 11 Jan 2006 01:47:50 +0000 (-0500) Subject: [PARISC] Fix Cirrus 6832 Cardbus on RDI Tadpole PARISC Laptop X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=04d35d7324ed35983189bd396db7874a50bbea43;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git [PARISC] Fix Cirrus 6832 Cardbus on RDI Tadpole PARISC Laptop Fix irq-off-by-one for Cirrus 6832 Cardbus on RDI Tadpole PARISC Laptop. We just DECLARE_PCI_FIXUP_ENABLE as it is unlikely that this will be found in any other parisc system. Signed-off-by: Helge Deller Signed-off-by: Kyle McMartin --- diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c index 5ab75334c579..595d1987e997 100644 --- a/drivers/parisc/dino.c +++ b/drivers/parisc/dino.c @@ -435,6 +435,21 @@ static void dino_choose_irq(struct parisc_device *dev, void *ctrl) dino_assign_irq(dino, irq, &dev->irq); } + +/* + * Cirrus 6832 Cardbus reports wrong irq on RDI Tadpole PARISC Laptop (deller@gmx.de) + * (the irqs are off-by-one, not sure yet if this is a cirrus, dino-hardware or dino-driver problem...) + */ +static void __devinit quirk_cirrus_cardbus(struct pci_dev *dev) +{ + u8 new_irq = dev->irq - 1; + printk(KERN_INFO "PCI: Cirrus Cardbus IRQ fixup for %s, from %d to %d\n", + pci_name(dev), dev->irq, new_irq); + dev->irq = new_irq; +} +DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_CIRRUS, PCI_DEVICE_ID_CIRRUS_6832, quirk_cirrus_cardbus ); + + static void __init dino_bios_init(void) {