aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s3c2410/irq.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-10-06 13:53:39 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-06 13:59:54 -0400
commit0cd61b68c340a4f901a06e8bb5e0dea4353161c0 (patch)
treecfd72be941ecd172627a06dd61d98b55cec63a39 /arch/arm/mach-s3c2410/irq.c
parentda104a83692cf07434ab3b20bf10093bdbc3f97e (diff)
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>
Diffstat (limited to 'arch/arm/mach-s3c2410/irq.c')
-rw-r--r--arch/arm/mach-s3c2410/irq.c41
1 files changed, 17 insertions, 24 deletions
diff --git a/arch/arm/mach-s3c2410/irq.c b/arch/arm/mach-s3c2410/irq.c
index 3e9f3462c61..683b3491ba3 100644
--- a/arch/arm/mach-s3c2410/irq.c
+++ b/arch/arm/mach-s3c2410/irq.c
@@ -480,8 +480,7 @@ static struct irqchip s3c_irq_adc = {
480 480
481/* irq demux for adc */ 481/* irq demux for adc */
482static void s3c_irq_demux_adc(unsigned int irq, 482static void s3c_irq_demux_adc(unsigned int irq,
483 struct irqdesc *desc, 483 struct irqdesc *desc)
484 struct pt_regs *regs)
485{ 484{
486 unsigned int subsrc, submsk; 485 unsigned int subsrc, submsk;
487 unsigned int offset = 9; 486 unsigned int offset = 9;
@@ -500,17 +499,16 @@ static void s3c_irq_demux_adc(unsigned int irq,
500 if (subsrc != 0) { 499 if (subsrc != 0) {
501 if (subsrc & 1) { 500 if (subsrc & 1) {
502 mydesc = irq_desc + IRQ_TC; 501 mydesc = irq_desc + IRQ_TC;
503 desc_handle_irq(IRQ_TC, mydesc, regs); 502 desc_handle_irq(IRQ_TC, mydesc);
504 } 503 }
505 if (subsrc & 2) { 504 if (subsrc & 2) {
506 mydesc = irq_desc + IRQ_ADC; 505 mydesc = irq_desc + IRQ_ADC;
507 desc_handle_irq(IRQ_ADC, mydesc, regs); 506 desc_handle_irq(IRQ_ADC, mydesc);
508 } 507 }
509 } 508 }
510} 509}
511 510
512static void s3c_irq_demux_uart(unsigned int start, 511static void s3c_irq_demux_uart(unsigned int start)
513 struct pt_regs *regs)
514{ 512{
515 unsigned int subsrc, submsk; 513 unsigned int subsrc, submsk;
516 unsigned int offset = start - IRQ_S3CUART_RX0; 514 unsigned int offset = start - IRQ_S3CUART_RX0;
@@ -533,17 +531,17 @@ static void s3c_irq_demux_uart(unsigned int start,
533 desc = irq_desc + start; 531 desc = irq_desc + start;
534 532
535 if (subsrc & 1) 533 if (subsrc & 1)
536 desc_handle_irq(start, desc, regs); 534 desc_handle_irq(start, desc);
537 535
538 desc++; 536 desc++;
539 537
540 if (subsrc & 2) 538 if (subsrc & 2)
541 desc_handle_irq(start+1, desc, regs); 539 desc_handle_irq(start+1, desc);
542 540
543 desc++; 541 desc++;
544 542
545 if (subsrc & 4) 543 if (subsrc & 4)
546 desc_handle_irq(start+2, desc, regs); 544 desc_handle_irq(start+2, desc);
547 } 545 }
548} 546}
549 547
@@ -551,35 +549,31 @@ static void s3c_irq_demux_uart(unsigned int start,
551 549
552static void 550static void
553s3c_irq_demux_uart0(unsigned int irq, 551s3c_irq_demux_uart0(unsigned int irq,
554 struct irqdesc *desc, 552 struct irqdesc *desc)
555 struct pt_regs *regs)
556{ 553{
557 irq = irq; 554 irq = irq;
558 s3c_irq_demux_uart(IRQ_S3CUART_RX0, regs); 555 s3c_irq_demux_uart(IRQ_S3CUART_RX0);
559} 556}
560 557
561static void 558static void
562s3c_irq_demux_uart1(unsigned int irq, 559s3c_irq_demux_uart1(unsigned int irq,
563 struct irqdesc *desc, 560 struct irqdesc *desc)
564 struct pt_regs *regs)
565{ 561{
566 irq = irq; 562 irq = irq;
567 s3c_irq_demux_uart(IRQ_S3CUART_RX1, regs); 563 s3c_irq_demux_uart(IRQ_S3CUART_RX1);
568} 564}
569 565
570static void 566static void
571s3c_irq_demux_uart2(unsigned int irq, 567s3c_irq_demux_uart2(unsigned int irq,
572 struct irqdesc *desc, 568 struct irqdesc *desc)
573 struct pt_regs *regs)
574{ 569{
575 irq = irq; 570 irq = irq;
576 s3c_irq_demux_uart(IRQ_S3CUART_RX2, regs); 571 s3c_irq_demux_uart(IRQ_S3CUART_RX2);
577} 572}
578 573
579static void 574static void
580s3c_irq_demux_extint8(unsigned int irq, 575s3c_irq_demux_extint8(unsigned int irq,
581 struct irqdesc *desc, 576 struct irqdesc *desc)
582 struct pt_regs *regs)
583{ 577{
584 unsigned long eintpnd = __raw_readl(S3C24XX_EINTPEND); 578 unsigned long eintpnd = __raw_readl(S3C24XX_EINTPEND);
585 unsigned long eintmsk = __raw_readl(S3C24XX_EINTMASK); 579 unsigned long eintmsk = __raw_readl(S3C24XX_EINTMASK);
@@ -594,15 +588,14 @@ s3c_irq_demux_extint8(unsigned int irq,
594 eintpnd &= ~(1<<irq); 588 eintpnd &= ~(1<<irq);
595 589
596 irq += (IRQ_EINT4 - 4); 590 irq += (IRQ_EINT4 - 4);
597 desc_handle_irq(irq, irq_desc + irq, regs); 591 desc_handle_irq(irq, irq_desc + irq);
598 } 592 }
599 593
600} 594}
601 595
602static void 596static void
603s3c_irq_demux_extint4t7(unsigned int irq, 597s3c_irq_demux_extint4t7(unsigned int irq,
604 struct irqdesc *desc, 598 struct irqdesc *desc)
605 struct pt_regs *regs)
606{ 599{
607 unsigned long eintpnd = __raw_readl(S3C24XX_EINTPEND); 600 unsigned long eintpnd = __raw_readl(S3C24XX_EINTPEND);
608 unsigned long eintmsk = __raw_readl(S3C24XX_EINTMASK); 601 unsigned long eintmsk = __raw_readl(S3C24XX_EINTMASK);
@@ -618,7 +611,7 @@ s3c_irq_demux_extint4t7(unsigned int irq,
618 611
619 irq += (IRQ_EINT4 - 4); 612 irq += (IRQ_EINT4 - 4);
620 613
621 desc_handle_irq(irq, irq_desc + irq, regs); 614 desc_handle_irq(irq, irq_desc + irq);
622 } 615 }
623} 616}
624 617