Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /*
  2  * linux/arch/arm/mach-footbridge/ebsa285-pci.c
  3  *
  4  * PCI bios-type initialisation for PCI machines
  5  *
  6  * Bits taken from various places.
  7  */
  8 #include <linux/kernel.h>
  9 #include <linux/pci.h>
 10 #include <linux/init.h>
 11 
 12 #include <asm/irq.h>
 13 #include <asm/mach/pci.h>
 14 #include <asm/mach-types.h>
 15 
 16 static int irqmap_ebsa285[] __initdata = { IRQ_IN3, IRQ_IN1, IRQ_IN0, IRQ_PCI };
 17 
 18 static int __init ebsa285_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 19 {
 20         if (dev->vendor == PCI_VENDOR_ID_CONTAQ &&
 21             dev->device == PCI_DEVICE_ID_CONTAQ_82C693)
 22                 switch (PCI_FUNC(dev->devfn)) {
 23                         case 1: return 14;
 24                         case 2: return 15;
 25                         case 3: return 12;
 26                 }
 27 
 28         return irqmap_ebsa285[(slot + pin) & 3];
 29 }
 30 
 31 static struct hw_pci ebsa285_pci __initdata = {
 32         .swizzle                = pci_std_swizzle,
 33         .map_irq                = ebsa285_map_irq,
 34         .nr_controllers         = 1,
 35         .setup                  = dc21285_setup,
 36         .scan                   = dc21285_scan_bus,
 37         .preinit                = dc21285_preinit,
 38         .postinit               = dc21285_postinit,
 39 };
 40 
 41 static int __init ebsa285_init_pci(void)
 42 {
 43         if (machine_is_ebsa285())
 44                 pci_common_init(&ebsa285_pci);
 45         return 0;
 46 }
 47 
 48 subsys_initcall(ebsa285_init_pci);
 49 
  This page was automatically generated by the LXR engine.