You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Initial blind fixup for arm for irq changes
Untested, but this should fix up the bulk of the totally mechanical issues, and should make the actual detail fixing easier. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
+10
-15
@@ -163,8 +163,7 @@ static struct locomo_dev_info locomo_devices[] = {
|
||||
#define LOCOMO_IRQ_LT_START (IRQ_LOCOMO_LT)
|
||||
#define LOCOMO_IRQ_SPI_START (IRQ_LOCOMO_SPI_RFR)
|
||||
|
||||
static void locomo_handler(unsigned int irq, struct irqdesc *desc,
|
||||
struct pt_regs *regs)
|
||||
static void locomo_handler(unsigned int irq, struct irqdesc *desc)
|
||||
{
|
||||
int req, i;
|
||||
struct irqdesc *d;
|
||||
@@ -182,7 +181,7 @@ static void locomo_handler(unsigned int irq, struct irqdesc *desc,
|
||||
d = irq_desc + irq;
|
||||
for (i = 0; i <= 3; i++, d++, irq++) {
|
||||
if (req & (0x0100 << i)) {
|
||||
desc_handle_irq(irq, d, regs);
|
||||
desc_handle_irq(irq, d);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -218,15 +217,14 @@ static struct irq_chip locomo_chip = {
|
||||
.unmask = locomo_unmask_irq,
|
||||
};
|
||||
|
||||
static void locomo_key_handler(unsigned int irq, struct irqdesc *desc,
|
||||
struct pt_regs *regs)
|
||||
static void locomo_key_handler(unsigned int irq, struct irqdesc *desc)
|
||||
{
|
||||
struct irqdesc *d;
|
||||
void __iomem *mapbase = get_irq_chipdata(irq);
|
||||
|
||||
if (locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC) & 0x0001) {
|
||||
d = irq_desc + LOCOMO_IRQ_KEY_START;
|
||||
desc_handle_irq(LOCOMO_IRQ_KEY_START, d, regs);
|
||||
desc_handle_irq(LOCOMO_IRQ_KEY_START, d);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -264,8 +262,7 @@ static struct irq_chip locomo_key_chip = {
|
||||
.unmask = locomo_key_unmask_irq,
|
||||
};
|
||||
|
||||
static void locomo_gpio_handler(unsigned int irq, struct irqdesc *desc,
|
||||
struct pt_regs *regs)
|
||||
static void locomo_gpio_handler(unsigned int irq, struct irqdesc *desc)
|
||||
{
|
||||
int req, i;
|
||||
struct irqdesc *d;
|
||||
@@ -280,7 +277,7 @@ static void locomo_gpio_handler(unsigned int irq, struct irqdesc *desc,
|
||||
d = irq_desc + LOCOMO_IRQ_GPIO_START;
|
||||
for (i = 0; i <= 15; i++, irq++, d++) {
|
||||
if (req & (0x0001 << i)) {
|
||||
desc_handle_irq(irq, d, regs);
|
||||
desc_handle_irq(irq, d);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -328,15 +325,14 @@ static struct irq_chip locomo_gpio_chip = {
|
||||
.unmask = locomo_gpio_unmask_irq,
|
||||
};
|
||||
|
||||
static void locomo_lt_handler(unsigned int irq, struct irqdesc *desc,
|
||||
struct pt_regs *regs)
|
||||
static void locomo_lt_handler(unsigned int irq, struct irqdesc *desc)
|
||||
{
|
||||
struct irqdesc *d;
|
||||
void __iomem *mapbase = get_irq_chipdata(irq);
|
||||
|
||||
if (locomo_readl(mapbase + LOCOMO_LTINT) & 0x0001) {
|
||||
d = irq_desc + LOCOMO_IRQ_LT_START;
|
||||
desc_handle_irq(LOCOMO_IRQ_LT_START, d, regs);
|
||||
desc_handle_irq(LOCOMO_IRQ_LT_START, d);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -374,8 +370,7 @@ static struct irq_chip locomo_lt_chip = {
|
||||
.unmask = locomo_lt_unmask_irq,
|
||||
};
|
||||
|
||||
static void locomo_spi_handler(unsigned int irq, struct irqdesc *desc,
|
||||
struct pt_regs *regs)
|
||||
static void locomo_spi_handler(unsigned int irq, struct irqdesc *desc)
|
||||
{
|
||||
int req, i;
|
||||
struct irqdesc *d;
|
||||
@@ -388,7 +383,7 @@ static void locomo_spi_handler(unsigned int irq, struct irqdesc *desc,
|
||||
|
||||
for (i = 0; i <= 3; i++, irq++, d++) {
|
||||
if (req & (0x0001 << i)) {
|
||||
desc_handle_irq(irq, d, regs);
|
||||
desc_handle_irq(irq, d);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -147,7 +147,7 @@ void __init sa1111_adjust_zones(int node, unsigned long *size, unsigned long *ho
|
||||
* will call us again if there are more interrupts to process.
|
||||
*/
|
||||
static void
|
||||
sa1111_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
|
||||
sa1111_irq_handler(unsigned int irq, struct irqdesc *desc)
|
||||
{
|
||||
unsigned int stat0, stat1, i;
|
||||
void __iomem *base = get_irq_data(irq);
|
||||
@@ -162,17 +162,17 @@ sa1111_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
|
||||
sa1111_writel(stat1, base + SA1111_INTSTATCLR1);
|
||||
|
||||
if (stat0 == 0 && stat1 == 0) {
|
||||
do_bad_IRQ(irq, desc, regs);
|
||||
do_bad_IRQ(irq, desc);
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = IRQ_SA1111_START; stat0; i++, stat0 >>= 1)
|
||||
if (stat0 & 1)
|
||||
handle_edge_irq(i, irq_desc + i, regs);
|
||||
handle_edge_irq(i, irq_desc + i);
|
||||
|
||||
for (i = IRQ_SA1111_START + 32; stat1; i++, stat1 >>= 1)
|
||||
if (stat1 & 1)
|
||||
handle_edge_irq(i, irq_desc + i, regs);
|
||||
handle_edge_irq(i, irq_desc + i);
|
||||
|
||||
/* For level-based interrupts */
|
||||
desc->chip->unmask(irq);
|
||||
|
||||
@@ -258,7 +258,7 @@ static void sharpsl_ac_timer(unsigned long data)
|
||||
}
|
||||
|
||||
|
||||
irqreturn_t sharpsl_ac_isr(int irq, void *dev_id, struct pt_regs *fp)
|
||||
irqreturn_t sharpsl_ac_isr(int irq, void *dev_id)
|
||||
{
|
||||
/* Delay the event slightly to debounce */
|
||||
/* Must be a smaller delay than the chrg_full_isr below */
|
||||
@@ -293,7 +293,7 @@ static void sharpsl_chrg_full_timer(unsigned long data)
|
||||
/* Charging Finished Interrupt (Not present on Corgi) */
|
||||
/* Can trigger at the same time as an AC staus change so
|
||||
delay until after that has been processed */
|
||||
irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id, struct pt_regs *fp)
|
||||
irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id)
|
||||
{
|
||||
if (sharpsl_pm.flags & SHARPSL_SUSPENDED)
|
||||
return IRQ_HANDLED;
|
||||
@@ -304,7 +304,7 @@ irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id, struct pt_regs *fp)
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
irqreturn_t sharpsl_fatal_isr(int irq, void *dev_id, struct pt_regs *fp)
|
||||
irqreturn_t sharpsl_fatal_isr(int irq, void *dev_id)
|
||||
{
|
||||
int is_fatal = 0;
|
||||
|
||||
|
||||
@@ -67,10 +67,10 @@ void __init ioctime_init(void)
|
||||
}
|
||||
|
||||
static irqreturn_t
|
||||
ioc_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
ioc_timer_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
write_seqlock(&xtime_lock);
|
||||
timer_tick(regs);
|
||||
timer_tick();
|
||||
write_sequnlock(&xtime_lock);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
@@ -567,7 +567,7 @@ static void ecard_check_lockup(struct irqdesc *desc)
|
||||
}
|
||||
|
||||
static void
|
||||
ecard_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
|
||||
ecard_irq_handler(unsigned int irq, struct irqdesc *desc)
|
||||
{
|
||||
ecard_t *ec;
|
||||
int called = 0;
|
||||
@@ -586,7 +586,7 @@ ecard_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
|
||||
|
||||
if (pending) {
|
||||
struct irqdesc *d = irq_desc + ec->irq;
|
||||
desc_handle_irq(ec->irq, d, regs);
|
||||
desc_handle_irq(ec->irq, d);
|
||||
called ++;
|
||||
}
|
||||
}
|
||||
@@ -609,7 +609,7 @@ static unsigned char first_set[] =
|
||||
};
|
||||
|
||||
static void
|
||||
ecard_irqexp_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
|
||||
ecard_irqexp_handler(unsigned int irq, struct irqdesc *desc)
|
||||
{
|
||||
const unsigned int statusmask = 15;
|
||||
unsigned int status;
|
||||
@@ -633,7 +633,7 @@ ecard_irqexp_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *reg
|
||||
* Serial cards should go in 0/1, ethernet/scsi in 2/3
|
||||
* otherwise you will lose serial data at high speeds!
|
||||
*/
|
||||
desc_handle_irq(ec->irq, d, regs);
|
||||
desc_handle_irq(ec->irq, d);
|
||||
} else {
|
||||
printk(KERN_WARNING "card%d: interrupt from unclaimed "
|
||||
"card???\n", slot);
|
||||
|
||||
@@ -122,7 +122,8 @@ asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
|
||||
|
||||
irq_enter();
|
||||
|
||||
desc_handle_irq(irq, desc, regs);
|
||||
set_irq_regs(regs);
|
||||
desc_handle_irq(irq, desc);
|
||||
|
||||
/* AT91 specific workaround */
|
||||
irq_finish(irq);
|
||||
|
||||
@@ -324,8 +324,9 @@ EXPORT_SYMBOL(restore_time_delta);
|
||||
/*
|
||||
* Kernel system timer support.
|
||||
*/
|
||||
void timer_tick(struct pt_regs *regs)
|
||||
void timer_tick(void)
|
||||
{
|
||||
struct pt_regs *regs = get_irq_regs();
|
||||
profile_tick(CPU_PROFILING, regs);
|
||||
do_leds();
|
||||
do_set_rtc();
|
||||
|
||||
@@ -127,12 +127,12 @@ static unsigned long aaec2000_gettimeoffset(void)
|
||||
|
||||
/* We enter here with IRQs enabled */
|
||||
static irqreturn_t
|
||||
aaec2000_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
aaec2000_timer_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
/* TODO: Check timer accuracy */
|
||||
write_seqlock(&xtime_lock);
|
||||
|
||||
timer_tick(regs);
|
||||
timer_tick();
|
||||
TIMER1_CLEAR = 1;
|
||||
|
||||
write_sequnlock(&xtime_lock);
|
||||
|
||||
@@ -65,13 +65,13 @@ static unsigned long at91rm9200_gettimeoffset(void)
|
||||
/*
|
||||
* IRQ handler for the timer.
|
||||
*/
|
||||
static irqreturn_t at91rm9200_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t at91rm9200_timer_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
if (at91_sys_read(AT91_ST_SR) & AT91_ST_PITS) { /* This is a shared interrupt */
|
||||
write_seqlock(&xtime_lock);
|
||||
|
||||
while (((read_CRTR() - last_crtr) & AT91_ST_ALMV) >= LATCH) {
|
||||
timer_tick(regs);
|
||||
timer_tick();
|
||||
last_crtr = (last_crtr + LATCH) & AT91_ST_ALMV;
|
||||
}
|
||||
|
||||
|
||||
@@ -332,7 +332,7 @@ static struct irq_chip gpio_irqchip = {
|
||||
.set_wake = gpio_irq_set_wake,
|
||||
};
|
||||
|
||||
static void gpio_irq_handler(unsigned irq, struct irqdesc *desc, struct pt_regs *regs)
|
||||
static void gpio_irq_handler(unsigned irq, struct irqdesc *desc)
|
||||
{
|
||||
unsigned pin;
|
||||
struct irqdesc *gpio;
|
||||
@@ -363,7 +363,7 @@ static void gpio_irq_handler(unsigned irq, struct irqdesc *desc, struct pt_regs
|
||||
gpio_irq_mask(pin);
|
||||
}
|
||||
else
|
||||
desc_handle_irq(pin, gpio, regs);
|
||||
desc_handle_irq(pin, gpio);
|
||||
}
|
||||
pin++;
|
||||
gpio++;
|
||||
|
||||
@@ -48,10 +48,10 @@ static unsigned long clps711x_gettimeoffset(void)
|
||||
* IRQ handler for the timer
|
||||
*/
|
||||
static irqreturn_t
|
||||
p720t_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
p720t_timer_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
write_seqlock(&xtime_lock);
|
||||
timer_tick(regs);
|
||||
timer_tick();
|
||||
write_sequnlock(&xtime_lock);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
@@ -292,11 +292,11 @@ extern void ioctime_init(void);
|
||||
extern unsigned long ioc_timer_gettimeoffset(void);
|
||||
|
||||
static irqreturn_t
|
||||
clps7500_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
clps7500_timer_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
write_seqlock(&xtime_lock);
|
||||
|
||||
timer_tick(regs);
|
||||
timer_tick();
|
||||
|
||||
/* Why not using do_leds interface?? */
|
||||
{
|
||||
|
||||
@@ -174,7 +174,7 @@ static unsigned long ebsa110_gettimeoffset(void)
|
||||
}
|
||||
|
||||
static irqreturn_t
|
||||
ebsa110_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
ebsa110_timer_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
u32 count;
|
||||
|
||||
@@ -190,7 +190,7 @@ ebsa110_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
__raw_writeb(count & 0xff, PIT_T1);
|
||||
__raw_writeb(count >> 8, PIT_T1);
|
||||
|
||||
timer_tick(regs);
|
||||
timer_tick();
|
||||
|
||||
write_sequnlock(&xtime_lock);
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ static unsigned int last_jiffy_time;
|
||||
|
||||
#define TIMER4_TICKS_PER_JIFFY ((CLOCK_TICK_RATE + (HZ/2)) / HZ)
|
||||
|
||||
static int ep93xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static int ep93xx_timer_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
write_seqlock(&xtime_lock);
|
||||
|
||||
@@ -106,7 +106,7 @@ static int ep93xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
(__raw_readl(EP93XX_TIMER4_VALUE_LOW) - last_jiffy_time)
|
||||
>= TIMER4_TICKS_PER_JIFFY) {
|
||||
last_jiffy_time += TIMER4_TICKS_PER_JIFFY;
|
||||
timer_tick(regs);
|
||||
timer_tick();
|
||||
}
|
||||
|
||||
write_sequnlock(&xtime_lock);
|
||||
@@ -245,7 +245,7 @@ EXPORT_SYMBOL(gpio_line_set);
|
||||
* EP93xx IRQ handling
|
||||
*************************************************************************/
|
||||
static void ep93xx_gpio_ab_irq_handler(unsigned int irq,
|
||||
struct irqdesc *desc, struct pt_regs *regs)
|
||||
struct irqdesc *desc)
|
||||
{
|
||||
unsigned char status;
|
||||
int i;
|
||||
@@ -254,7 +254,7 @@ static void ep93xx_gpio_ab_irq_handler(unsigned int irq,
|
||||
for (i = 0; i < 8; i++) {
|
||||
if (status & (1 << i)) {
|
||||
desc = irq_desc + IRQ_EP93XX_GPIO(0) + i;
|
||||
desc_handle_irq(IRQ_EP93XX_GPIO(0) + i, desc, regs);
|
||||
desc_handle_irq(IRQ_EP93XX_GPIO(0) + i, desc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -262,7 +262,7 @@ static void ep93xx_gpio_ab_irq_handler(unsigned int irq,
|
||||
for (i = 0; i < 8; i++) {
|
||||
if (status & (1 << i)) {
|
||||
desc = irq_desc + IRQ_EP93XX_GPIO(8) + i;
|
||||
desc_handle_irq(IRQ_EP93XX_GPIO(8) + i, desc, regs);
|
||||
desc_handle_irq(IRQ_EP93XX_GPIO(8) + i, desc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,13 +28,13 @@ static unsigned long timer1_gettimeoffset (void)
|
||||
}
|
||||
|
||||
static irqreturn_t
|
||||
timer1_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
timer1_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
write_seqlock(&xtime_lock);
|
||||
|
||||
*CSR_TIMER1_CLR = 0;
|
||||
|
||||
timer_tick(regs);
|
||||
timer_tick();
|
||||
|
||||
write_sequnlock(&xtime_lock);
|
||||
|
||||
|
||||
@@ -154,7 +154,7 @@ static void dc21285_enable_error(unsigned long __data)
|
||||
/*
|
||||
* Warn on PCI errors.
|
||||
*/
|
||||
static irqreturn_t dc21285_abort_irq(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t dc21285_abort_irq(int irq, void *dev_id)
|
||||
{
|
||||
unsigned int cmd;
|
||||
unsigned int status;
|
||||
@@ -165,7 +165,7 @@ static irqreturn_t dc21285_abort_irq(int irq, void *dev_id, struct pt_regs *regs
|
||||
|
||||
if (status & PCI_STATUS_REC_MASTER_ABORT) {
|
||||
printk(KERN_DEBUG "PCI: master abort, pc=0x%08lx\n",
|
||||
instruction_pointer(regs));
|
||||
instruction_pointer(get_irq_regs()));
|
||||
cmd |= PCI_STATUS_REC_MASTER_ABORT << 16;
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@ static irqreturn_t dc21285_abort_irq(int irq, void *dev_id, struct pt_regs *regs
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static irqreturn_t dc21285_serr_irq(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t dc21285_serr_irq(int irq, void *dev_id)
|
||||
{
|
||||
struct timer_list *timer = dev_id;
|
||||
unsigned int cntl;
|
||||
@@ -206,7 +206,7 @@ static irqreturn_t dc21285_serr_irq(int irq, void *dev_id, struct pt_regs *regs)
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static irqreturn_t dc21285_discard_irq(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t dc21285_discard_irq(int irq, void *dev_id)
|
||||
{
|
||||
printk(KERN_DEBUG "PCI: discard timer expired\n");
|
||||
*CSR_SA110_CNTL &= 0xffffde07;
|
||||
@@ -214,7 +214,7 @@ static irqreturn_t dc21285_discard_irq(int irq, void *dev_id, struct pt_regs *re
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static irqreturn_t dc21285_dparity_irq(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t dc21285_dparity_irq(int irq, void *dev_id)
|
||||
{
|
||||
unsigned int cmd;
|
||||
|
||||
@@ -228,7 +228,7 @@ static irqreturn_t dc21285_dparity_irq(int irq, void *dev_id, struct pt_regs *re
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static irqreturn_t dc21285_parity_irq(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t dc21285_parity_irq(int irq, void *dev_id)
|
||||
{
|
||||
struct timer_list *timer = dev_id;
|
||||
unsigned int cmd;
|
||||
|
||||
@@ -85,17 +85,17 @@ static struct irqchip isa_hi_chip = {
|
||||
};
|
||||
|
||||
static void
|
||||
isa_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
|
||||
isa_irq_handler(unsigned int irq, struct irqdesc *desc)
|
||||
{
|
||||
unsigned int isa_irq = *(unsigned char *)PCIIACK_BASE;
|
||||
|
||||
if (isa_irq < _ISA_IRQ(0) || isa_irq >= _ISA_IRQ(16)) {
|
||||
do_bad_IRQ(isa_irq, desc, regs);
|
||||
do_bad_IRQ(isa_irq, desc);
|
||||
return;
|
||||
}
|
||||
|
||||
desc = irq_desc + isa_irq;
|
||||
desc_handle_irq(isa_irq, desc, regs);
|
||||
desc_handle_irq(isa_irq, desc);
|
||||
}
|
||||
|
||||
static struct irqaction irq_cascade = {
|
||||
|
||||
@@ -62,10 +62,10 @@ static unsigned long isa_gettimeoffset(void)
|
||||
}
|
||||
|
||||
static irqreturn_t
|
||||
isa_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
isa_timer_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
write_seqlock(&xtime_lock);
|
||||
timer_tick(regs);
|
||||
timer_tick();
|
||||
write_sequnlock(&xtime_lock);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
@@ -101,14 +101,14 @@ static void inline unmask_gpio_irq(u32 irq)
|
||||
|
||||
static void
|
||||
h720x_gpio_handler(unsigned int mask, unsigned int irq,
|
||||
struct irqdesc *desc, struct pt_regs *regs)
|
||||
struct irqdesc *desc)
|
||||
{
|
||||
IRQDBG("%s irq: %d\n",__FUNCTION__,irq);
|
||||
desc = irq_desc + irq;
|
||||
while (mask) {
|
||||
if (mask & 1) {
|
||||
IRQDBG("handling irq %d\n", irq);
|
||||
desc_handle_irq(irq, desc, regs);
|
||||
desc_handle_irq(irq, desc);
|
||||
}
|
||||
irq++;
|
||||
desc++;
|
||||
@@ -117,63 +117,58 @@ h720x_gpio_handler(unsigned int mask, unsigned int irq,
|
||||
}
|
||||
|
||||
static void
|
||||
h720x_gpioa_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
|
||||
struct pt_regs *regs)
|
||||
h720x_gpioa_demux_handler(unsigned int irq_unused, struct irqdesc *desc)
|
||||
{
|
||||
unsigned int mask, irq;
|
||||
|
||||
mask = CPU_REG(GPIO_A_VIRT,GPIO_STAT);
|
||||
irq = IRQ_CHAINED_GPIOA(0);
|
||||
IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq);
|
||||
h720x_gpio_handler(mask, irq, desc, regs);
|
||||
h720x_gpio_handler(mask, irq, desc);
|
||||
}
|
||||
|
||||
static void
|
||||
h720x_gpiob_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
|
||||
struct pt_regs *regs)
|
||||
h720x_gpiob_demux_handler(unsigned int irq_unused, struct irqdesc *desc)
|
||||
{
|
||||
unsigned int mask, irq;
|
||||
mask = CPU_REG(GPIO_B_VIRT,GPIO_STAT);
|
||||
irq = IRQ_CHAINED_GPIOB(0);
|
||||
IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq);
|
||||
h720x_gpio_handler(mask, irq, desc, regs);
|
||||
h720x_gpio_handler(mask, irq, desc);
|
||||
}
|
||||
|
||||
static void
|
||||
h720x_gpioc_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
|
||||
struct pt_regs *regs)
|
||||
h720x_gpioc_demux_handler(unsigned int irq_unused, struct irqdesc *desc)
|
||||
{
|
||||
unsigned int mask, irq;
|
||||
|
||||
mask = CPU_REG(GPIO_C_VIRT,GPIO_STAT);
|
||||
irq = IRQ_CHAINED_GPIOC(0);
|
||||
IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq);
|
||||
h720x_gpio_handler(mask, irq, desc, regs);
|
||||
h720x_gpio_handler(mask, irq, desc);
|
||||
}
|
||||
|
||||
static void
|
||||
h720x_gpiod_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
|
||||
struct pt_regs *regs)
|
||||
h720x_gpiod_demux_handler(unsigned int irq_unused, struct irqdesc *desc)
|
||||
{
|
||||
unsigned int mask, irq;
|
||||
|
||||
mask = CPU_REG(GPIO_D_VIRT,GPIO_STAT);
|
||||
irq = IRQ_CHAINED_GPIOD(0);
|
||||
IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq);
|
||||
h720x_gpio_handler(mask, irq, desc, regs);
|
||||
h720x_gpio_handler(mask, irq, desc);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_CPU_H7202
|
||||
static void
|
||||
h720x_gpioe_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
|
||||
struct pt_regs *regs)
|
||||
h720x_gpioe_demux_handler(unsigned int irq_unused, struct irqdesc *desc)
|
||||
{
|
||||
unsigned int mask, irq;
|
||||
|
||||
mask = CPU_REG(GPIO_E_VIRT,GPIO_STAT);
|
||||
irq = IRQ_CHAINED_GPIOE(0);
|
||||
IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq);
|
||||
h720x_gpio_handler(mask, irq, desc, regs);
|
||||
h720x_gpio_handler(mask, irq, desc);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -27,12 +27,12 @@
|
||||
* Timer interrupt handler
|
||||
*/
|
||||
static irqreturn_t
|
||||
h7201_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
h7201_timer_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
write_seqlock(&xtime_lock);
|
||||
|
||||
CPU_REG (TIMER_VIRT, TIMER_TOPSTAT);
|
||||
timer_tick(regs);
|
||||
timer_tick();
|
||||
|
||||
write_sequnlock(&xtime_lock);
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user