Path: blob/master/arch/mn10300/unit-asb2305/pci-irq.c
10819 views
/* PCI IRQ routing on the MN103E010 based ASB23051*2* Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.3* Written by David Howells ([email protected])4*5* This program is free software; you can redistribute it and/or6* modify it under the terms of the GNU General Public Licence7* as published by the Free Software Foundation; either version8* 2 of the Licence, or (at your option) any later version.9*10* This is simple: All PCI interrupts route through the CPU's XIRQ1 pin [IRQ 35]11*/12#include <linux/types.h>13#include <linux/kernel.h>14#include <linux/pci.h>15#include <linux/init.h>16#include <linux/interrupt.h>17#include <linux/irq.h>18#include <asm/io.h>19#include <asm/smp.h>20#include "pci-asb2305.h"2122void __init pcibios_irq_init(void)23{24}2526void __init pcibios_fixup_irqs(void)27{28struct pci_dev *dev = NULL;29u8 line, pin;3031while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {32pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);33if (pin) {34dev->irq = XIRQ1;35pci_write_config_byte(dev, PCI_INTERRUPT_LINE,36dev->irq);37}38pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &line);39}40}4142void __init pcibios_penalize_isa_irq(int irq)43{44}4546void pcibios_enable_irq(struct pci_dev *dev)47{48pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);49}505152