forked from Minki/linux
2b8ff9f276
Currently many IRQ mapping functions and data structures use the __init and __initdata optimisations. These result in the relevant functions being innaccessible after boot time. However for deferred IRQ assignment it is important to have access to these functions at PCI device enable time. Therefore, remove the optimisation from the relevant data structures and functions to prepare for deferred IRQ assignment. Signed-off-by: Matthew Minter <matt@masarand.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Cc: Rich Felker <dalias@libc.org> Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
39 lines
912 B
C
39 lines
912 B
C
/*
|
|
* arch/sh/drivers/pci/ops-titan.c
|
|
*
|
|
* Ported to new API by Paul Mundt <lethal@linux-sh.org>
|
|
*
|
|
* Modified from ops-snapgear.c written by David McCullough
|
|
* Highly leveraged from pci-bigsur.c, written by Dustin McIntire.
|
|
*
|
|
* May be copied or modified under the terms of the GNU General Public
|
|
* License. See linux/COPYING for more information.
|
|
*
|
|
* PCI initialization for the Titan boards
|
|
*/
|
|
#include <linux/kernel.h>
|
|
#include <linux/types.h>
|
|
#include <linux/init.h>
|
|
#include <linux/pci.h>
|
|
#include <linux/io.h>
|
|
#include <mach/titan.h>
|
|
#include "pci-sh4.h"
|
|
|
|
static char titan_irq_tab[] = {
|
|
TITAN_IRQ_WAN,
|
|
TITAN_IRQ_LAN,
|
|
TITAN_IRQ_MPCIA,
|
|
TITAN_IRQ_MPCIB,
|
|
TITAN_IRQ_USB,
|
|
};
|
|
|
|
int pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin)
|
|
{
|
|
int irq = titan_irq_tab[slot];
|
|
|
|
printk("PCI: Mapping TITAN IRQ for slot %d, pin %c to irq %d\n",
|
|
slot, pin - 1 + 'A', irq);
|
|
|
|
return irq;
|
|
}
|