cregit-Linux how code gets into the kernel

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

/*
 * arch/arm/mach-iop32x/irq.c
 *
 * Generic IOP32X IRQ handling functionality
 *
 * Author: Rory Bolt <rorybolt@pacbell.net>
 * Copyright (C) 2002 Rory Bolt
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/list.h>
#include <asm/mach/irq.h>
#include <asm/irq.h>
#include <mach/hardware.h>
#include <asm/mach-types.h>


static u32 iop32x_mask;


static void intctl_write(u32 val) { asm volatile("mcr p6, 0, %0, c0, c0, 0" : : "r" (val)); }

Contributors

PersonTokensPropCommitsCommitProp
Eli Carter1191.67%150.00%
Lennert Buytenhek18.33%150.00%
Total12100.00%2100.00%


static void intstr_write(u32 val) { asm volatile("mcr p6, 0, %0, c4, c0, 0" : : "r" (val)); }

Contributors

PersonTokensPropCommitsCommitProp
Eli Carter1191.67%150.00%
Lennert Buytenhek18.33%150.00%
Total12100.00%2100.00%


static void iop32x_irq_mask(struct irq_data *d) { iop32x_mask &= ~(1 << d->irq); intctl_write(iop32x_mask); }

Contributors

PersonTokensPropCommitsCommitProp
Eli Carter1866.67%133.33%
Lennert Buytenhek933.33%266.67%
Total27100.00%3100.00%


static void iop32x_irq_unmask(struct irq_data *d) { iop32x_mask |= 1 << d->irq; intctl_write(iop32x_mask); }

Contributors

PersonTokensPropCommitsCommitProp
Eli Carter1562.50%133.33%
Lennert Buytenhek937.50%266.67%
Total24100.00%3100.00%

struct irq_chip ext_chip = { .name = "IOP32x", .irq_ack = iop32x_irq_mask, .irq_mask = iop32x_irq_mask, .irq_unmask = iop32x_irq_unmask, };
void __init iop32x_init_irq(void) { int i; iop_init_cp6_handler(); intctl_write(0); intstr_write(0); if (machine_is_glantank() || machine_is_iq80321() || machine_is_iq31244() || machine_is_n2100() || machine_is_em7210()) *IOP3XX_PCIIRSR = 0x0f; for (i = 0; i < NR_IRQS; i++) { irq_set_chip_and_handler(i, &ext_chip, handle_level_irq); irq_clear_status_flags(i, IRQ_NOREQUEST | IRQ_NOPROBE); } }

Contributors

PersonTokensPropCommitsCommitProp
Eli Carter5670.00%17.69%
Lennert Buytenhek1012.50%646.15%
Arnaud Patard33.75%17.69%
Rob Herring33.75%17.69%
Dan J Williams33.75%17.69%
Dave Jiang33.75%17.69%
Thomas Gleixner11.25%17.69%
Russell King11.25%17.69%
Total80100.00%13100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
Eli Carter14871.50%16.25%
Lennert Buytenhek3918.84%743.75%
David Brownell52.42%16.25%
Dan J Williams31.45%16.25%
Dave Jiang31.45%16.25%
Rob Herring31.45%16.25%
Arnaud Patard31.45%16.25%
Russell King20.97%212.50%
Thomas Gleixner10.48%16.25%
Total207100.00%16100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.