cregit-Linux how code gets into the kernel

Release 4.11 arch/arm/mach-footbridge/cats-pci.c

/*
 * linux/arch/arm/mach-footbridge/cats-pci.c
 *
 * PCI bios-type initialisation for PCI machines
 *
 * Bits taken from various places.
 */
#include <linux/kernel.h>
#include <linux/pci.h>
#include <linux/init.h>

#include <asm/irq.h>
#include <asm/mach/pci.h>
#include <asm/mach-types.h>

/* cats host-specific stuff */

static int irqmap_cats[] __initdata = { IRQ_PCI, IRQ_IN0, IRQ_IN1, IRQ_IN3 };


static u8 cats_no_swizzle(struct pci_dev *dev, u8 *pin) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Russell King18100.00%1100.00%
Total18100.00%1100.00%


static int __init cats_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) { if (dev->irq >= 255) return -1; /* not a valid interrupt. */ if (dev->irq >= 128) return dev->irq & 0x1f; if (dev->irq >= 1 && dev->irq <= 4) return irqmap_cats[dev->irq - 1]; if (dev->irq != 0) printk("PCI: device %02x:%02x has unknown irq line %x\n", dev->bus->number, dev->devfn, dev->irq); return -1; }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)8886.27%133.33%
Ben Dooks1312.75%133.33%
Ralf Bächle10.98%133.33%
Total102100.00%3100.00%

/* * why not the standard PCI swizzle? does this prevent 4-port tulip * cards being used (ie, pci-pci bridge based cards)? */ static struct hw_pci cats_pci __initdata = { .swizzle = cats_no_swizzle, .map_irq = cats_map_irq, .nr_controllers = 1, .ops = &dc21285_ops, .setup = dc21285_setup, .preinit = dc21285_preinit, .postinit = dc21285_postinit, };
static int __init cats_pci_init(void) { if (machine_is_cats()) pci_common_init(&cats_pci); return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Russell King23100.00%2100.00%
Total23100.00%2100.00%

subsys_initcall(cats_pci_init);

Overall Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)13157.21%110.00%
Russell King7030.57%550.00%
Linus Torvalds146.11%220.00%
Ben Dooks135.68%110.00%
Ralf Bächle10.44%110.00%
Total229100.00%10100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.