cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

irq.c (1577B)


      1/*
      2 * This file is subject to the terms and conditions of the GNU General Public
      3 * License.  See the file "COPYING" in the main directory of this archive
      4 * for more details.
      5 *
      6 * Copyright (C) 1992 Linus Torvalds
      7 * Copyright (C) 1994 - 2000 Ralf Baechle
      8 * Copyright (C) 2006 Thomas Bogendoerfer
      9 */
     10#include <linux/delay.h>
     11#include <linux/init.h>
     12#include <linux/interrupt.h>
     13#include <linux/irq.h>
     14#include <linux/kernel.h>
     15
     16#include <asm/i8259.h>
     17#include <asm/io.h>
     18#include <asm/sni.h>
     19#include <asm/irq.h>
     20#include <asm/irq_cpu.h>
     21
     22void (*sni_hwint)(void);
     23
     24asmlinkage void plat_irq_dispatch(void)
     25{
     26	sni_hwint();
     27}
     28
     29/* ISA irq handler */
     30irqreturn_t sni_isa_irq_handler(int dummy, void *p)
     31{
     32	int irq;
     33
     34	irq = i8259_irq();
     35	if (unlikely(irq < 0))
     36		return IRQ_NONE;
     37
     38	generic_handle_irq(irq);
     39	return IRQ_HANDLED;
     40}
     41
     42/*
     43 * On systems with i8259-style interrupt controllers we assume for
     44 * driver compatibility reasons interrupts 0 - 15 to be the i8295
     45 * interrupts even if the hardware uses a different interrupt numbering.
     46 */
     47void __init arch_init_irq(void)
     48{
     49	init_i8259_irqs();			/* Integrated i8259  */
     50	switch (sni_brd_type) {
     51	case SNI_BRD_10:
     52	case SNI_BRD_10NEW:
     53	case SNI_BRD_TOWER_OASIC:
     54	case SNI_BRD_MINITOWER:
     55		sni_a20r_irq_init();
     56		break;
     57
     58	case SNI_BRD_PCI_TOWER:
     59		sni_pcit_irq_init();
     60		break;
     61
     62	case SNI_BRD_PCI_TOWER_CPLUS:
     63		sni_pcit_cplus_irq_init();
     64		break;
     65
     66	case SNI_BRD_RM200:
     67		sni_rm200_irq_init();
     68		break;
     69
     70	case SNI_BRD_PCI_MTOWER:
     71	case SNI_BRD_PCI_DESKTOP:
     72	case SNI_BRD_PCI_MTOWER_CPLUS:
     73		sni_pcimt_irq_init();
     74		break;
     75	}
     76}