* [mips,mipsel] Fix sb1 interrupt handlers.

* [mips,mipsel] Fix devfs-induced build failure in sb1250 serial driver.
  * [mips] SGI ip22 RTC was broken, fixed thanks to Julien Blache.

svn path=/dists/trunk/linux-2.6/; revision=6974
This commit is contained in:
Thiemo Seufer 2006-07-09 13:19:44 +00:00
parent 9d788482a2
commit 7c96bf6f26
6 changed files with 129 additions and 0 deletions

5
debian/changelog vendored
View File

@ -50,6 +50,11 @@ linux-2.6 (2.6.17-3) UNRELEASED; urgency=low
flavours if upstream resolved the issue - but that never happened.
Note that this is a measurable performance penalty on non-SMP systems.
[ Thiemo Seufer ]
* [mips,mipsel] Fix sb1 interrupt handlers.
* [mips,mipsel] Fix devfs-induced build failure in sb1250 serial driver.
* [mips] SGI ip22 RTC was broken, fixed thanks to Julien Blache.
-- dann frazier <dannf@debian.org> Sat, 8 Jul 2006 21:31:04 -0600
linux-2.6 (2.6.17-2) unstable; urgency=low

View File

@ -0,0 +1,18 @@
This fixes a fatal typo which crept in the rewritten interrupt handler.
Signed-off-by: Thiemo Seufer <ths@networkno.de>
--- a/arch/mips/sibyte/bcm1480/irq.c
+++ b/arch/mips/sibyte/bcm1480/irq.c
@@ -533,7 +533,7 @@ #endif
mask_l = __raw_readq(
IOADDR(base + R_BCM1480_IMR_INTERRUPT_STATUS_BASE_L));
- if (!mask_h) {
+ if (mask_h) {
if (mask_h ^ 1)
do_IRQ(63 - dclz(mask_h), regs);
else

16
debian/patches/mips-ip22-rtcfix.patch vendored Normal file
View File

@ -0,0 +1,16 @@
This patch fixes a typo in arch/mips/sgi-ip22/ip22-time.c, leading to
the incorrect year being set into the RTC chip.
Signed-off-by: Julien BLACHE <jb@jblache.org>
--- a/arch/mips/sgi-ip22/ip22-time.c 2006-07-08 22:17:02.000000000 +0000
+++ b/arch/mips/sgi-ip22/ip22-time.c 2006-07-08 22:17:29.000000000 +0000
@@ -76,7 +76,7 @@
save_control = hpc3c0->rtcregs[RTC_CMD] & 0xff;
hpc3c0->rtcregs[RTC_CMD] = save_control | RTC_TE;
- hpc3c0->rtcregs[RTC_YEAR] = BIN2BCD(tm.tm_sec);
+ hpc3c0->rtcregs[RTC_YEAR] = BIN2BCD(tm.tm_year);
hpc3c0->rtcregs[RTC_MONTH] = BIN2BCD(tm.tm_mon);
hpc3c0->rtcregs[RTC_DATE] = BIN2BCD(tm.tm_mday);
hpc3c0->rtcregs[RTC_HOURS] = BIN2BCD(tm.tm_hour);

View File

@ -0,0 +1,72 @@
This patch restores the behaviour of the old (assembly-written)
interrupt handler, the handler is left as soon as a single interrupt
cause is handled.
Signed-off-by: Thiemo Seufer <ths@networkno.de>
diff --git a/arch/mips/sibyte/bcm1480/irq.c b/arch/mips/sibyte/bcm1480/irq.c
index 0eb0b10..ed325f0 100644
--- a/arch/mips/sibyte/bcm1480/irq.c
+++ b/arch/mips/sibyte/bcm1480/irq.c
@@ -502,22 +502,23 @@ #endif
#ifdef CONFIG_SIBYTE_BCM1480_PROF
if (pending & CAUSEF_IP7) /* Cpu performance counter interrupt */
sbprof_cpu_intr(exception_epc(regs));
+ else
#endif
if (pending & CAUSEF_IP4)
bcm1480_timer_interrupt(regs);
#ifdef CONFIG_SMP
- if (pending & CAUSEF_IP3)
+ else if (pending & CAUSEF_IP3)
bcm1480_mailbox_interrupt(regs);
#endif
#ifdef CONFIG_KGDB
- if (pending & CAUSEF_IP6)
+ else if (pending & CAUSEF_IP6)
bcm1480_kgdb_interrupt(regs); /* KGDB (uart 1) */
#endif
- if (pending & CAUSEF_IP2) {
+ else if (pending & CAUSEF_IP2) {
unsigned long long mask_h, mask_l;
unsigned long base;
diff --git a/arch/mips/sibyte/sb1250/irq.c b/arch/mips/sibyte/sb1250/irq.c
index 8d49cb5..1de71ad 100644
--- a/arch/mips/sibyte/sb1250/irq.c
+++ b/arch/mips/sibyte/sb1250/irq.c
@@ -460,25 +460,25 @@ #endif
pending = read_c0_cause();
#ifdef CONFIG_SIBYTE_SB1250_PROF
- if (pending & CAUSEF_IP7) { /* Cpu performance counter interrupt */
+ if (pending & CAUSEF_IP7) /* Cpu performance counter interrupt */
sbprof_cpu_intr(exception_epc(regs));
- }
+ else
#endif
if (pending & CAUSEF_IP4)
sb1250_timer_interrupt(regs);
#ifdef CONFIG_SMP
- if (pending & CAUSEF_IP3)
+ else if (pending & CAUSEF_IP3)
sb1250_mailbox_interrupt(regs);
#endif
#ifdef CONFIG_KGDB
- if (pending & CAUSEF_IP6) /* KGDB (uart 1) */
+ else if (pending & CAUSEF_IP6) /* KGDB (uart 1) */
sb1250_kgdb_interrupt(regs);
#endif
- if (pending & CAUSEF_IP2) {
+ else if (pending & CAUSEF_IP2) {
unsigned long long mask;
/*

14
debian/patches/mips-sb1250-duart.patch vendored Normal file
View File

@ -0,0 +1,14 @@
This fixes a build failure caused by the devfs removal.
Signed-off-by: Thiemo Seufer <ths@networkno.de>
--- a/drivers/char/sb1250_duart.c
+++ b/drivers/char/sb1250_duart.c
@@ -763,7 +763,6 @@ static int __init sb1250_duart_init(void
sb1250_duart_driver->owner = THIS_MODULE;
sb1250_duart_driver->name = "ttyS";
- sb1250_duart_driver->devfs_name = "tts/";
sb1250_duart_driver->major = TTY_MAJOR;
sb1250_duart_driver->minor_start = SB1250_DUART_MINOR_BASE;
sb1250_duart_driver->type = TTY_DRIVER_TYPE_SERIAL;

View File

@ -3,3 +3,7 @@
+ 2.6.17.3
+ fs-asfs.patch
+ 2.6.17.4
+ mips-ip22-rtcfix.patch
+ mips-sb1-inthandler.patch
+ mips-bcm1480-inthandler-typo.patch
+ mips-sb1250-duart.patch