1/* PCI IRQ routing on the MN103E010 based ASB2305 2 * 3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Written by David Howells (dhowells@redhat.com) 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public Licence 8 * as published by the Free Software Foundation; either version 9 * 2 of the Licence, or (at your option) any later version. 10 * 11 * This is simple: All PCI interrupts route through the CPU's XIRQ1 pin [IRQ 35] 12 */ 13#include <linux/types.h> 14#include <linux/kernel.h> 15#include <linux/pci.h> 16#include <linux/init.h> 17#include <linux/interrupt.h> 18#include <linux/irq.h> 19#include <asm/io.h> 20#include <asm/smp.h> 21#include "pci-asb2305.h" 22 23void __init pcibios_irq_init(void) 24{ 25} 26 27void __init pcibios_fixup_irqs(void) 28{ 29 struct pci_dev *dev = NULL; 30 u8 line, pin; 31 32 for_each_pci_dev(dev) { 33 pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin); 34 if (pin) { 35 dev->irq = XIRQ1; 36 pci_write_config_byte(dev, PCI_INTERRUPT_LINE, 37 dev->irq); 38 } 39 pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &line); 40 } 41} 42 43void pcibios_enable_irq(struct pci_dev *dev) 44{ 45 pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq); 46} 47