Add bcm1480 build fixes

svn path=/dists/trunk/linux-2.6/; revision=9380
This commit is contained in:
Martin Michlmayr 2007-08-24 14:37:54 +00:00
parent 744dd178b6
commit 092eba3d29
4 changed files with 89 additions and 0 deletions

4
debian/changelog vendored
View File

@ -23,6 +23,10 @@ linux-2.6 (2.6.23~rc3-1~experimental.1) UNRELEASED; urgency=low
* Enable TCG_TPM various userspace accesses it. (closes: #439020)
* Disable USB_SUSPEND due to various breakage. (closes: #435257, #419197)
[ Martin Michlmayr ]
* [mips] Add a bcm1480 PCI build fix.
* [mips] Add a bcm1480 serial build fix.
-- maximilian attems <maks@debian.org> Fri, 24 Aug 2007 15:01:08 +0200
linux-2.6 (2.6.22-2) UNRELEASED; urgency=low

View File

@ -0,0 +1,37 @@
The appended patch restores building the bcm1480 kernel. The brokenness
noted there is apparently not immediately fatal, as the resulting kernel
successfully drives a SATA RAID on PCI-X.
Presumably the sb1250 pcibios_map_irq is broken in the same way.
Thiemo
Signed-Off-By: Thiemo Seufer <ths@networkno.de>
diff --git a/arch/mips/pci/pci-bcm1480.c b/arch/mips/pci/pci-bcm1480.c
index 2b4e30c..0193aad 100644
--- a/arch/mips/pci/pci-bcm1480.c
+++ b/arch/mips/pci/pci-bcm1480.c
@@ -76,7 +76,7 @@ static inline void WRITECFG32(u32 addr, u32 data)
int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{
- This is b0rked.
+ /* XXX: This is b0rked. */
return dev->irq;
}
diff --git a/arch/mips/pci/pci-sb1250.c b/arch/mips/pci/pci-sb1250.c
index c1ac649..7af499e 100644
--- a/arch/mips/pci/pci-sb1250.c
+++ b/arch/mips/pci/pci-sb1250.c
@@ -86,6 +86,7 @@ static inline void WRITECFG32(u32 addr, u32 data)
int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{
+ /* XXX: This is b0rked. */
return dev->irq;
}

View File

@ -0,0 +1,46 @@
The appended patch restores serial functionality for the bcm1480.
I glued this together without reading documentation, so I'm not sure if
it is fully correct. It is good enough to build a kernel and have a
working serial console.
Signed-Off-By: Thiemo Seufer <ths@networkno.de>
diff --git a/drivers/serial/sb1250-duart.c b/drivers/serial/sb1250-duart.c
index 1d9d728..e7f5c0e 100644
--- a/drivers/serial/sb1250-duart.c
+++ b/drivers/serial/sb1250-duart.c
@@ -57,6 +57,12 @@
#define SBD_CTRLREGS(line) A_BCM1480_DUART_CTRLREG((line), 0)
#define SBD_INT(line) (K_BCM1480_INT_UART_0 + (line))
+#define DUART_CHANREG_SPACING BCM1480_DUART_CHANREG_SPACING
+
+#define R_DUART_IMRREG(line) R_BCM1480_DUART_IMRREG(line)
+#define R_DUART_INCHREG(line) R_BCM1480_DUART_INCHREG(line)
+#define R_DUART_ISRREG(line) R_BCM1480_DUART_ISRREG(line)
+
#elif defined(CONFIG_SIBYTE_SB1250) || defined(CONFIG_SIBYTE_BCM112X)
#include <asm/sibyte/sb1250_regs.h>
#include <asm/sibyte/sb1250_int.h>
diff --git a/include/asm-mips/sibyte/bcm1480_regs.h b/include/asm-mips/sibyte/bcm1480_regs.h
index 2738c13..c34d36b 100644
--- a/include/asm-mips/sibyte/bcm1480_regs.h
+++ b/include/asm-mips/sibyte/bcm1480_regs.h
@@ -227,10 +227,15 @@
(A_BCM1480_DUART(chan) + \
BCM1480_DUART_CHANREG_SPACING * 3 + (reg))
+#define DUART_IMRISR_SPACING 0x20
+#define DUART_INCHNG_SPACING 0x10
+
#define R_BCM1480_DUART_IMRREG(chan) \
(R_DUART_IMR_A + ((chan) & 1) * DUART_IMRISR_SPACING)
#define R_BCM1480_DUART_ISRREG(chan) \
(R_DUART_ISR_A + ((chan) & 1) * DUART_IMRISR_SPACING)
+#define R_BCM1480_DUART_INCHREG(chan) \
+ (R_DUART_IN_CHNG_A + ((chan) & 1) * DUART_INCHNG_SPACING)
#define A_BCM1480_DUART_IMRREG(chan) \
(A_BCM1480_DUART_CTRLREG((chan), R_BCM1480_DUART_IMRREG(chan)))

View File

@ -16,6 +16,8 @@
+ bugfix/mips/sgi-ioc3.patch
+ bugfix/mips/tulip_dc21143.patch
+ bugfix/mips/cobalt-ide-resources.patch
+ bugfix/mips/bcm1480-pci-build-fix.patch
+ bugfix/mips/bcm1480-serial-build-fix.patch
#+ features/arm/ixp4xx-npe-driver-0.3.1.patch
#+ features/arm/ixp4xx-net-driver-improve-mac-handling.patch
+ features/arm/nslu2-i2c-gpio-driver-support.patch