cregit-Linux how code gets into the kernel

Release 4.11 arch/arm/mach-rpc/irq.c

#include <linux/init.h>
#include <linux/list.h>
#include <linux/io.h>

#include <asm/mach/irq.h>
#include <asm/hardware/iomd.h>
#include <asm/irq.h>
#include <asm/fiq.h>


static void iomd_ack_irq_a(struct irq_data *d) { unsigned int val, mask; mask = 1 << d->irq; val = iomd_readb(IOMD_IRQMASKA); iomd_writeb(val & ~mask, IOMD_IRQMASKA); iomd_writeb(mask, IOMD_IRQCLRA); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds4285.71%133.33%
Lennert Buytenhek612.24%133.33%
Russell King12.04%133.33%
Total49100.00%3100.00%


static void iomd_mask_irq_a(struct irq_data *d) { unsigned int val, mask; mask = 1 << d->irq; val = iomd_readb(IOMD_IRQMASKA); iomd_writeb(val & ~mask, IOMD_IRQMASKA); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds3583.33%133.33%
Lennert Buytenhek614.29%133.33%
Russell King12.38%133.33%
Total42100.00%3100.00%


static void iomd_unmask_irq_a(struct irq_data *d) { unsigned int val, mask; mask = 1 << d->irq; val = iomd_readb(IOMD_IRQMASKA); iomd_writeb(val | mask, IOMD_IRQMASKA); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds3482.93%133.33%
Lennert Buytenhek614.63%133.33%
Russell King12.44%133.33%
Total41100.00%3100.00%

static struct irq_chip iomd_a_chip = { .irq_ack = iomd_ack_irq_a, .irq_mask = iomd_mask_irq_a, .irq_unmask = iomd_unmask_irq_a, };
static void iomd_mask_irq_b(struct irq_data *d) { unsigned int val, mask; mask = 1 << (d->irq & 7); val = iomd_readb(IOMD_IRQMASKB); iomd_writeb(val & ~mask, IOMD_IRQMASKB); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds3984.78%133.33%
Lennert Buytenhek613.04%133.33%
Russell King12.17%133.33%
Total46100.00%3100.00%


static void iomd_unmask_irq_b(struct irq_data *d) { unsigned int val, mask; mask = 1 << (d->irq & 7); val = iomd_readb(IOMD_IRQMASKB); iomd_writeb(val | mask, IOMD_IRQMASKB); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds3884.44%133.33%
Lennert Buytenhek613.33%133.33%
Russell King12.22%133.33%
Total45100.00%3100.00%

static struct irq_chip iomd_b_chip = { .irq_ack = iomd_mask_irq_b, .irq_mask = iomd_mask_irq_b, .irq_unmask = iomd_unmask_irq_b, };
static void iomd_mask_irq_dma(struct irq_data *d) { unsigned int val, mask; mask = 1 << (d->irq & 7); val = iomd_readb(IOMD_DMAMASK); iomd_writeb(val & ~mask, IOMD_DMAMASK); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds3984.78%133.33%
Lennert Buytenhek613.04%133.33%
Russell King12.17%133.33%
Total46100.00%3100.00%


static void iomd_unmask_irq_dma(struct irq_data *d) { unsigned int val, mask; mask = 1 << (d->irq & 7); val = iomd_readb(IOMD_DMAMASK); iomd_writeb(val | mask, IOMD_DMAMASK); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds3884.44%133.33%
Lennert Buytenhek613.33%133.33%
Russell King12.22%133.33%
Total45100.00%3100.00%

static struct irq_chip iomd_dma_chip = { .irq_ack = iomd_mask_irq_dma, .irq_mask = iomd_mask_irq_dma, .irq_unmask = iomd_unmask_irq_dma, };
static void iomd_mask_irq_fiq(struct irq_data *d) { unsigned int val, mask; mask = 1 << (d->irq & 7); val = iomd_readb(IOMD_FIQMASK); iomd_writeb(val & ~mask, IOMD_FIQMASK); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds3984.78%133.33%
Lennert Buytenhek613.04%133.33%
Russell King12.17%133.33%
Total46100.00%3100.00%


static void iomd_unmask_irq_fiq(struct irq_data *d) { unsigned int val, mask; mask = 1 << (d->irq & 7); val = iomd_readb(IOMD_FIQMASK); iomd_writeb(val | mask, IOMD_FIQMASK); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds3884.44%133.33%
Lennert Buytenhek613.33%133.33%
Russell King12.22%133.33%
Total45100.00%3100.00%

static struct irq_chip iomd_fiq_chip = { .irq_ack = iomd_mask_irq_fiq, .irq_mask = iomd_mask_irq_fiq, .irq_unmask = iomd_unmask_irq_fiq, }; extern unsigned char rpc_default_fiq_start, rpc_default_fiq_end;
void __init rpc_init_irq(void) { unsigned int irq, clr, set = 0; iomd_writeb(0, IOMD_IRQMASKA); iomd_writeb(0, IOMD_IRQMASKB); iomd_writeb(0, IOMD_FIQMASK); iomd_writeb(0, IOMD_DMAMASK); set_fiq_handler(&rpc_default_fiq_start, &rpc_default_fiq_end - &rpc_default_fiq_start); for (irq = 0; irq < NR_IRQS; irq++) { clr = IRQ_NOREQUEST; if (irq <= 6 || (irq >= 9 && irq <= 15)) clr |= IRQ_NOPROBE; if (irq == 21 || (irq >= 16 && irq <= 19) || irq == IRQ_KEYBOARDTX) set |= IRQ_NOAUTOEN; switch (irq) { case 0 ... 7: irq_set_chip_and_handler(irq, &iomd_a_chip, handle_level_irq); irq_modify_status(irq, clr, set); break; case 8 ... 15: irq_set_chip_and_handler(irq, &iomd_b_chip, handle_level_irq); irq_modify_status(irq, clr, set); break; case 16 ... 21: irq_set_chip_and_handler(irq, &iomd_dma_chip, handle_level_irq); irq_modify_status(irq, clr, set); break; case 64 ... 71: irq_set_chip(irq, &iomd_fiq_chip); irq_modify_status(irq, clr, set); break; } } init_FIQ(FIQ_START); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds10143.91%112.50%
Russell King8336.09%225.00%
Rob Herring3916.96%225.00%
Thomas Gleixner41.74%225.00%
Shawn Guo31.30%112.50%
Total230100.00%8100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds45460.45%18.33%
Russell King17523.30%541.67%
Lennert Buytenhek668.79%18.33%
Rob Herring496.52%216.67%
Thomas Gleixner40.53%216.67%
Shawn Guo30.40%18.33%
Total751100.00%12100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.