refresh 2.6.23 patches

SVN-Revision: 12311
v19.07.3_mercusys_ac12_duma
Gabor Juhos 16 years ago
parent 9379dc19b6
commit 0f18ecf43e

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/drivers/ssb/driver_chipcommon.c --- a/drivers/ssb/driver_chipcommon.c
=================================================================== +++ b/drivers/ssb/driver_chipcommon.c
--- linux-2.6.23.17.orig/drivers/ssb/driver_chipcommon.c @@ -39,12 +39,14 @@
+++ linux-2.6.23.17/drivers/ssb/driver_chipcommon.c
@@ -39,12 +39,14 @@ static inline void chipco_write32(struct
ssb_write32(cc->dev, offset, value); ssb_write32(cc->dev, offset, value);
} }
@ -19,7 +17,7 @@ Index: linux-2.6.23.17/drivers/ssb/driver_chipcommon.c
} }
void ssb_chipco_set_clockmode(struct ssb_chipcommon *cc, void ssb_chipco_set_clockmode(struct ssb_chipcommon *cc,
@@ -355,16 +357,37 @@ u32 ssb_chipco_gpio_in(struct ssb_chipco @@ -355,16 +357,37 @@
{ {
return chipco_read32(cc, SSB_CHIPCO_GPIOIN) & mask; return chipco_read32(cc, SSB_CHIPCO_GPIOIN) & mask;
} }
@ -61,11 +59,9 @@ Index: linux-2.6.23.17/drivers/ssb/driver_chipcommon.c
#ifdef CONFIG_SSB_SERIAL #ifdef CONFIG_SSB_SERIAL
int ssb_chipco_serial_init(struct ssb_chipcommon *cc, int ssb_chipco_serial_init(struct ssb_chipcommon *cc,
Index: linux-2.6.23.17/drivers/ssb/driver_extif.c --- a/drivers/ssb/driver_extif.c
=================================================================== +++ b/drivers/ssb/driver_extif.c
--- linux-2.6.23.17.orig/drivers/ssb/driver_extif.c @@ -27,12 +27,14 @@
+++ linux-2.6.23.17/drivers/ssb/driver_extif.c
@@ -27,12 +27,14 @@ static inline void extif_write32(struct
ssb_write32(extif->dev, offset, value); ssb_write32(extif->dev, offset, value);
} }
@ -82,7 +78,7 @@ Index: linux-2.6.23.17/drivers/ssb/driver_extif.c
} }
#ifdef CONFIG_SSB_SERIAL #ifdef CONFIG_SSB_SERIAL
@@ -114,16 +116,30 @@ u32 ssb_extif_gpio_in(struct ssb_extif * @@ -114,16 +116,30 @@
{ {
return extif_read32(extif, SSB_EXTIF_GPIO_IN) & mask; return extif_read32(extif, SSB_EXTIF_GPIO_IN) & mask;
} }
@ -115,11 +111,9 @@ Index: linux-2.6.23.17/drivers/ssb/driver_extif.c
+ return extif_write32_masked(extif, SSB_EXTIF_GPIO_INTMASK, mask, value); + return extif_write32_masked(extif, SSB_EXTIF_GPIO_INTMASK, mask, value);
+} +}
+EXPORT_SYMBOL(ssb_extif_gpio_intmask); +EXPORT_SYMBOL(ssb_extif_gpio_intmask);
Index: linux-2.6.23.17/include/linux/ssb/ssb_driver_chipcommon.h --- a/include/linux/ssb/ssb_driver_chipcommon.h
=================================================================== +++ b/include/linux/ssb/ssb_driver_chipcommon.h
--- linux-2.6.23.17.orig/include/linux/ssb/ssb_driver_chipcommon.h @@ -382,11 +382,13 @@
+++ linux-2.6.23.17/include/linux/ssb/ssb_driver_chipcommon.h
@@ -382,11 +382,13 @@ extern void ssb_chipco_set_clockmode(str
extern void ssb_chipco_watchdog_timer_set(struct ssb_chipcommon *cc, extern void ssb_chipco_watchdog_timer_set(struct ssb_chipcommon *cc,
u32 ticks); u32 ticks);
@ -137,11 +131,9 @@ Index: linux-2.6.23.17/include/linux/ssb/ssb_driver_chipcommon.h
#ifdef CONFIG_SSB_SERIAL #ifdef CONFIG_SSB_SERIAL
extern int ssb_chipco_serial_init(struct ssb_chipcommon *cc, extern int ssb_chipco_serial_init(struct ssb_chipcommon *cc,
Index: linux-2.6.23.17/include/linux/ssb/ssb_driver_extif.h --- a/include/linux/ssb/ssb_driver_extif.h
=================================================================== +++ b/include/linux/ssb/ssb_driver_extif.h
--- linux-2.6.23.17.orig/include/linux/ssb/ssb_driver_extif.h @@ -171,11 +171,12 @@
+++ linux-2.6.23.17/include/linux/ssb/ssb_driver_extif.h
@@ -171,11 +171,12 @@ extern void ssb_extif_get_clockcontrol(s
extern void ssb_extif_timing_init(struct ssb_extif *extif, extern void ssb_extif_timing_init(struct ssb_extif *extif,
unsigned long ns); unsigned long ns);

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/arch/mips/Kconfig --- a/arch/mips/Kconfig
=================================================================== +++ b/arch/mips/Kconfig
--- linux-2.6.23.17.orig/arch/mips/Kconfig @@ -4,6 +4,10 @@
+++ linux-2.6.23.17/arch/mips/Kconfig
@@ -4,6 +4,10 @@ config MIPS
# Horrible source of confusion. Die, die, die ... # Horrible source of confusion. Die, die, die ...
select EMBEDDED select EMBEDDED
@ -13,7 +11,7 @@ Index: linux-2.6.23.17/arch/mips/Kconfig
mainmenu "Linux/MIPS Kernel Configuration" mainmenu "Linux/MIPS Kernel Configuration"
menu "Machine selection" menu "Machine selection"
@@ -44,6 +48,23 @@ config BASLER_EXCITE_PROTOTYPE @@ -44,6 +48,23 @@
note that a kernel built with this option selected will not be note that a kernel built with this option selected will not be
able to run on normal units. able to run on normal units.
@ -37,11 +35,9 @@ Index: linux-2.6.23.17/arch/mips/Kconfig
config MIPS_COBALT config MIPS_COBALT
bool "Cobalt Server" bool "Cobalt Server"
select DMA_NONCOHERENT select DMA_NONCOHERENT
Index: linux-2.6.23.17/arch/mips/kernel/cpu-probe.c --- a/arch/mips/kernel/cpu-probe.c
=================================================================== +++ b/arch/mips/kernel/cpu-probe.c
--- linux-2.6.23.17.orig/arch/mips/kernel/cpu-probe.c @@ -793,6 +793,28 @@
+++ linux-2.6.23.17/arch/mips/kernel/cpu-probe.c
@@ -793,6 +793,28 @@ static inline void cpu_probe_philips(str
} }
@ -70,7 +66,7 @@ Index: linux-2.6.23.17/arch/mips/kernel/cpu-probe.c
__init void cpu_probe(void) __init void cpu_probe(void)
{ {
struct cpuinfo_mips *c = &current_cpu_data; struct cpuinfo_mips *c = &current_cpu_data;
@@ -815,6 +837,9 @@ __init void cpu_probe(void) @@ -815,6 +837,9 @@
case PRID_COMP_SIBYTE: case PRID_COMP_SIBYTE:
cpu_probe_sibyte(c); cpu_probe_sibyte(c);
break; break;
@ -80,11 +76,9 @@ Index: linux-2.6.23.17/arch/mips/kernel/cpu-probe.c
case PRID_COMP_SANDCRAFT: case PRID_COMP_SANDCRAFT:
cpu_probe_sandcraft(c); cpu_probe_sandcraft(c);
break; break;
Index: linux-2.6.23.17/arch/mips/kernel/proc.c --- a/arch/mips/kernel/proc.c
=================================================================== +++ b/arch/mips/kernel/proc.c
--- linux-2.6.23.17.orig/arch/mips/kernel/proc.c @@ -82,6 +82,8 @@
+++ linux-2.6.23.17/arch/mips/kernel/proc.c
@@ -82,6 +82,8 @@ static const char *cpu_name[] = {
[CPU_VR4181] = "NEC VR4181", [CPU_VR4181] = "NEC VR4181",
[CPU_VR4181A] = "NEC VR4181A", [CPU_VR4181A] = "NEC VR4181A",
[CPU_SR71000] = "Sandcraft SR71000", [CPU_SR71000] = "Sandcraft SR71000",
@ -93,11 +87,9 @@ Index: linux-2.6.23.17/arch/mips/kernel/proc.c
[CPU_PR4450] = "Philips PR4450", [CPU_PR4450] = "Philips PR4450",
[CPU_LOONGSON2] = "ICT Loongson-2", [CPU_LOONGSON2] = "ICT Loongson-2",
}; };
Index: linux-2.6.23.17/arch/mips/Makefile --- a/arch/mips/Makefile
=================================================================== +++ b/arch/mips/Makefile
--- linux-2.6.23.17.orig/arch/mips/Makefile @@ -533,6 +533,18 @@
+++ linux-2.6.23.17/arch/mips/Makefile
@@ -533,6 +533,18 @@ libs-$(CONFIG_SIBYTE_BIGSUR) += arch/mip
load-$(CONFIG_SIBYTE_BIGSUR) := 0xffffffff80100000 load-$(CONFIG_SIBYTE_BIGSUR) := 0xffffffff80100000
# #
@ -116,11 +108,9 @@ Index: linux-2.6.23.17/arch/mips/Makefile
# SNI RM # SNI RM
# #
core-$(CONFIG_SNI_RM) += arch/mips/sni/ core-$(CONFIG_SNI_RM) += arch/mips/sni/
Index: linux-2.6.23.17/arch/mips/mm/tlbex.c --- a/arch/mips/mm/tlbex.c
=================================================================== +++ b/arch/mips/mm/tlbex.c
--- linux-2.6.23.17.orig/arch/mips/mm/tlbex.c @@ -895,6 +895,8 @@
+++ linux-2.6.23.17/arch/mips/mm/tlbex.c
@@ -895,6 +895,8 @@ static __init void build_tlb_write_entry
case CPU_AU1550: case CPU_AU1550:
case CPU_AU1200: case CPU_AU1200:
case CPU_PR4450: case CPU_PR4450:
@ -129,11 +119,9 @@ Index: linux-2.6.23.17/arch/mips/mm/tlbex.c
i_nop(p); i_nop(p);
tlbw(p); tlbw(p);
break; break;
Index: linux-2.6.23.17/drivers/Kconfig --- a/drivers/Kconfig
=================================================================== +++ b/drivers/Kconfig
--- linux-2.6.23.17.orig/drivers/Kconfig @@ -60,6 +60,8 @@
+++ linux-2.6.23.17/drivers/Kconfig
@@ -60,6 +60,8 @@ source "drivers/power/Kconfig"
source "drivers/hwmon/Kconfig" source "drivers/hwmon/Kconfig"
@ -142,10 +130,8 @@ Index: linux-2.6.23.17/drivers/Kconfig
source "drivers/mfd/Kconfig" source "drivers/mfd/Kconfig"
source "drivers/media/Kconfig" source "drivers/media/Kconfig"
Index: linux-2.6.23.17/include/asm-mips/bootinfo.h --- a/include/asm-mips/bootinfo.h
=================================================================== +++ b/include/asm-mips/bootinfo.h
--- linux-2.6.23.17.orig/include/asm-mips/bootinfo.h
+++ linux-2.6.23.17/include/asm-mips/bootinfo.h
@@ -208,6 +208,12 @@ @@ -208,6 +208,12 @@
#define MACH_GROUP_WINDRIVER 28 /* Windriver boards */ #define MACH_GROUP_WINDRIVER 28 /* Windriver boards */
#define MACH_WRPPMC 1 #define MACH_WRPPMC 1
@ -159,10 +145,8 @@ Index: linux-2.6.23.17/include/asm-mips/bootinfo.h
#define CL_SIZE COMMAND_LINE_SIZE #define CL_SIZE COMMAND_LINE_SIZE
const char *get_system_type(void); const char *get_system_type(void);
Index: linux-2.6.23.17/include/asm-mips/cpu.h --- a/include/asm-mips/cpu.h
=================================================================== +++ b/include/asm-mips/cpu.h
--- linux-2.6.23.17.orig/include/asm-mips/cpu.h
+++ linux-2.6.23.17/include/asm-mips/cpu.h
@@ -106,6 +106,13 @@ @@ -106,6 +106,13 @@
#define PRID_IMP_SR71000 0x0400 #define PRID_IMP_SR71000 0x0400
@ -189,19 +173,16 @@ Index: linux-2.6.23.17/include/asm-mips/cpu.h
/* /*
* ISA Level encodings * ISA Level encodings
Index: linux-2.6.23.17/drivers/Makefile --- a/drivers/Makefile
=================================================================== +++ b/drivers/Makefile
--- linux-2.6.23.17.orig/drivers/Makefile @@ -89,3 +89,5 @@
+++ linux-2.6.23.17/drivers/Makefile obj-$(CONFIG_HID) += hid/
@@ -90,3 +90,4 @@ obj-$(CONFIG_HID) += hid/
obj-$(CONFIG_PPC_PS3) += ps3/ obj-$(CONFIG_PPC_PS3) += ps3/
obj-$(CONFIG_OF) += of/ obj-$(CONFIG_OF) += of/
obj-$(CONFIG_GPIO_DEVICE) += gpio/
+obj-$(CONFIG_SSB) += ssb/ +obj-$(CONFIG_SSB) += ssb/
Index: linux-2.6.23.17/include/linux/pci_ids.h +
=================================================================== --- a/include/linux/pci_ids.h
--- linux-2.6.23.17.orig/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h
+++ linux-2.6.23.17/include/linux/pci_ids.h
@@ -1980,6 +1980,7 @@ @@ -1980,6 +1980,7 @@
#define PCI_DEVICE_ID_TIGON3_5906M 0x1713 #define PCI_DEVICE_ID_TIGON3_5906M 0x1713
#define PCI_DEVICE_ID_BCM4401 0x4401 #define PCI_DEVICE_ID_BCM4401 0x4401

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/drivers/mtd/maps/Kconfig --- a/drivers/mtd/maps/Kconfig
=================================================================== +++ b/drivers/mtd/maps/Kconfig
--- linux-2.6.23.17.orig/drivers/mtd/maps/Kconfig @@ -352,6 +352,12 @@
+++ linux-2.6.23.17/drivers/mtd/maps/Kconfig
@@ -352,6 +352,12 @@ config MTD_CFI_FLAGADM
Mapping for the Flaga digital module. If you don't have one, ignore Mapping for the Flaga digital module. If you don't have one, ignore
this setting. this setting.
@ -15,11 +13,9 @@ Index: linux-2.6.23.17/drivers/mtd/maps/Kconfig
config MTD_WALNUT config MTD_WALNUT
tristate "Flash device mapped on IBM 405GP Walnut" tristate "Flash device mapped on IBM 405GP Walnut"
depends on MTD_JEDECPROBE && WALNUT depends on MTD_JEDECPROBE && WALNUT
Index: linux-2.6.23.17/drivers/mtd/maps/Makefile --- a/drivers/mtd/maps/Makefile
=================================================================== +++ b/drivers/mtd/maps/Makefile
--- linux-2.6.23.17.orig/drivers/mtd/maps/Makefile @@ -33,6 +33,7 @@
+++ linux-2.6.23.17/drivers/mtd/maps/Makefile
@@ -33,6 +33,7 @@ obj-$(CONFIG_MTD_PNC2000) += pnc2000.o
obj-$(CONFIG_MTD_PCMCIA) += pcmciamtd.o obj-$(CONFIG_MTD_PCMCIA) += pcmciamtd.o
obj-$(CONFIG_MTD_RPXLITE) += rpxlite.o obj-$(CONFIG_MTD_RPXLITE) += rpxlite.o
obj-$(CONFIG_MTD_TQM8XXL) += tqm8xxl.o obj-$(CONFIG_MTD_TQM8XXL) += tqm8xxl.o

@ -1,7 +1,5 @@
Index: linux-2.6.23.17/drivers/net/b44.c --- a/drivers/net/b44.c
=================================================================== +++ b/drivers/net/b44.c
--- linux-2.6.23.17.orig/drivers/net/b44.c
+++ linux-2.6.23.17/drivers/net/b44.c
@@ -1,7 +1,9 @@ @@ -1,7 +1,9 @@
-/* b44.c: Broadcom 4400 device driver. -/* b44.c: Broadcom 4400 device driver.
+/* b44.c: Broadcom 4400/47xx device driver. +/* b44.c: Broadcom 4400/47xx device driver.
@ -39,7 +37,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_VERSION(DRV_MODULE_VERSION); MODULE_VERSION(DRV_MODULE_VERSION);
@@ -96,18 +100,11 @@ static int b44_debug = -1; /* -1 == use @@ -96,18 +100,11 @@
module_param(b44_debug, int, 0); module_param(b44_debug, int, 0);
MODULE_PARM_DESC(b44_debug, "B44 bitmapped debugging message enable value"); MODULE_PARM_DESC(b44_debug, "B44 bitmapped debugging message enable value");
@ -61,7 +59,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
static void b44_halt(struct b44 *); static void b44_halt(struct b44 *);
static void b44_init_rings(struct b44 *); static void b44_init_rings(struct b44 *);
@@ -119,6 +116,7 @@ static void b44_init_hw(struct b44 *, in @@ -119,6 +116,7 @@
static int dma_desc_align_mask; static int dma_desc_align_mask;
static int dma_desc_sync_size; static int dma_desc_sync_size;
@ -69,7 +67,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
static const char b44_gstrings[][ETH_GSTRING_LEN] = { static const char b44_gstrings[][ETH_GSTRING_LEN] = {
#define _B44(x...) # x, #define _B44(x...) # x,
@@ -126,35 +124,24 @@ B44_STAT_REG_DECLARE @@ -126,35 +124,24 @@
#undef _B44 #undef _B44
}; };
@ -123,7 +121,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
} }
static int b44_wait_bit(struct b44 *bp, unsigned long reg, static int b44_wait_bit(struct b44 *bp, unsigned long reg,
@@ -182,117 +169,29 @@ static int b44_wait_bit(struct b44 *bp, @@ -182,117 +169,29 @@
return 0; return 0;
} }
@ -254,7 +252,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
{ {
u32 val; u32 val;
@@ -328,14 +227,14 @@ static void b44_enable_ints(struct b44 * @@ -328,14 +227,14 @@
bw32(bp, B44_IMASK, bp->imask); bw32(bp, B44_IMASK, bp->imask);
} }
@ -271,7 +269,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
(reg << MDIO_DATA_RA_SHIFT) | (reg << MDIO_DATA_RA_SHIFT) |
(MDIO_TA_VALID << MDIO_DATA_TA_SHIFT))); (MDIO_TA_VALID << MDIO_DATA_TA_SHIFT)));
err = b44_wait_bit(bp, B44_EMAC_ISTAT, EMAC_INT_MII, 100, 0); err = b44_wait_bit(bp, B44_EMAC_ISTAT, EMAC_INT_MII, 100, 0);
@@ -344,18 +243,34 @@ static int b44_readphy(struct b44 *bp, i @@ -344,18 +243,34 @@
return err; return err;
} }
@ -308,7 +306,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
/* miilib interface */ /* miilib interface */
/* FIXME FIXME: phy_id is ignored, bp->phy_addr use is unconditional /* FIXME FIXME: phy_id is ignored, bp->phy_addr use is unconditional
* due to code existing before miilib use was added to this driver. * due to code existing before miilib use was added to this driver.
@@ -384,6 +299,8 @@ static int b44_phy_reset(struct b44 *bp) @@ -384,6 +299,8 @@
u32 val; u32 val;
int err; int err;
@ -317,7 +315,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
err = b44_writephy(bp, MII_BMCR, BMCR_RESET); err = b44_writephy(bp, MII_BMCR, BMCR_RESET);
if (err) if (err)
return err; return err;
@@ -442,11 +359,27 @@ static void b44_set_flow_ctrl(struct b44 @@ -442,11 +359,27 @@
__b44_set_flow_ctrl(bp, pause_enab); __b44_set_flow_ctrl(bp, pause_enab);
} }
@ -345,7 +343,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
if ((err = b44_readphy(bp, B44_MII_ALEDCTRL, &val)) != 0) if ((err = b44_readphy(bp, B44_MII_ALEDCTRL, &val)) != 0)
goto out; goto out;
if ((err = b44_writephy(bp, B44_MII_ALEDCTRL, if ((err = b44_writephy(bp, B44_MII_ALEDCTRL,
@@ -542,6 +475,19 @@ static void b44_check_phy(struct b44 *bp @@ -542,6 +475,19 @@
{ {
u32 bmsr, aux; u32 bmsr, aux;
@ -365,7 +363,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
if (!b44_readphy(bp, MII_BMSR, &bmsr) && if (!b44_readphy(bp, MII_BMSR, &bmsr) &&
!b44_readphy(bp, B44_MII_AUXCTRL, &aux) && !b44_readphy(bp, B44_MII_AUXCTRL, &aux) &&
(bmsr != 0xffff)) { (bmsr != 0xffff)) {
@@ -617,10 +563,10 @@ static void b44_tx(struct b44 *bp) @@ -617,10 +563,10 @@
BUG_ON(skb == NULL); BUG_ON(skb == NULL);
@ -378,7 +376,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
rp->skb = NULL; rp->skb = NULL;
dev_kfree_skb_irq(skb); dev_kfree_skb_irq(skb);
} }
@@ -657,9 +603,9 @@ static int b44_alloc_rx_skb(struct b44 * @@ -657,9 +603,9 @@
if (skb == NULL) if (skb == NULL)
return -ENOMEM; return -ENOMEM;
@ -390,7 +388,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
/* Hardware bug work-around, the chip is unable to do PCI DMA /* Hardware bug work-around, the chip is unable to do PCI DMA
to/from anything above 1GB :-( */ to/from anything above 1GB :-( */
@@ -667,18 +613,18 @@ static int b44_alloc_rx_skb(struct b44 * @@ -667,18 +613,18 @@
mapping + RX_PKT_BUF_SZ > DMA_30BIT_MASK) { mapping + RX_PKT_BUF_SZ > DMA_30BIT_MASK) {
/* Sigh... */ /* Sigh... */
if (!dma_mapping_error(mapping)) if (!dma_mapping_error(mapping))
@ -413,7 +411,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
dev_kfree_skb_any(skb); dev_kfree_skb_any(skb);
return -ENOMEM; return -ENOMEM;
} }
@@ -705,9 +651,9 @@ static int b44_alloc_rx_skb(struct b44 * @@ -705,9 +651,9 @@
dp->addr = cpu_to_le32((u32) mapping + RX_PKT_OFFSET + bp->dma_offset); dp->addr = cpu_to_le32((u32) mapping + RX_PKT_OFFSET + bp->dma_offset);
if (bp->flags & B44_FLAG_RX_RING_HACK) if (bp->flags & B44_FLAG_RX_RING_HACK)
@ -426,7 +424,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
return RX_PKT_BUF_SZ; return RX_PKT_BUF_SZ;
} }
@@ -734,9 +680,9 @@ static void b44_recycle_rx(struct b44 *b @@ -734,9 +680,9 @@
pci_unmap_addr(src_map, mapping)); pci_unmap_addr(src_map, mapping));
if (bp->flags & B44_FLAG_RX_RING_HACK) if (bp->flags & B44_FLAG_RX_RING_HACK)
@ -439,7 +437,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
ctrl = src_desc->ctrl; ctrl = src_desc->ctrl;
if (dest_idx == (B44_RX_RING_SIZE - 1)) if (dest_idx == (B44_RX_RING_SIZE - 1))
@@ -750,13 +696,13 @@ static void b44_recycle_rx(struct b44 *b @@ -750,13 +696,13 @@
src_map->skb = NULL; src_map->skb = NULL;
if (bp->flags & B44_FLAG_RX_RING_HACK) if (bp->flags & B44_FLAG_RX_RING_HACK)
@ -458,7 +456,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
} }
static int b44_rx(struct b44 *bp, int budget) static int b44_rx(struct b44 *bp, int budget)
@@ -776,9 +722,9 @@ static int b44_rx(struct b44 *bp, int bu @@ -776,9 +722,9 @@
struct rx_header *rh; struct rx_header *rh;
u16 len; u16 len;
@ -470,7 +468,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
rh = (struct rx_header *) skb->data; rh = (struct rx_header *) skb->data;
len = le16_to_cpu(rh->len); len = le16_to_cpu(rh->len);
if ((len > (RX_PKT_BUF_SZ - RX_PKT_OFFSET)) || if ((len > (RX_PKT_BUF_SZ - RX_PKT_OFFSET)) ||
@@ -810,8 +756,8 @@ static int b44_rx(struct b44 *bp, int bu @@ -810,8 +756,8 @@
skb_size = b44_alloc_rx_skb(bp, cons, bp->rx_prod); skb_size = b44_alloc_rx_skb(bp, cons, bp->rx_prod);
if (skb_size < 0) if (skb_size < 0)
goto drop_it; goto drop_it;
@ -481,7 +479,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
/* Leave out rx_header */ /* Leave out rx_header */
skb_put(skb, len + RX_PKT_OFFSET); skb_put(skb, len + RX_PKT_OFFSET);
skb_pull(skb, RX_PKT_OFFSET); skb_pull(skb, RX_PKT_OFFSET);
@@ -982,24 +928,24 @@ static int b44_start_xmit(struct sk_buff @@ -982,24 +928,24 @@
goto err_out; goto err_out;
} }
@ -512,7 +510,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
dev_kfree_skb_any(bounce_skb); dev_kfree_skb_any(bounce_skb);
goto err_out; goto err_out;
} }
@@ -1022,9 +968,9 @@ static int b44_start_xmit(struct sk_buff @@ -1022,9 +968,9 @@
bp->tx_ring[entry].addr = cpu_to_le32((u32) mapping+bp->dma_offset); bp->tx_ring[entry].addr = cpu_to_le32((u32) mapping+bp->dma_offset);
if (bp->flags & B44_FLAG_TX_RING_HACK) if (bp->flags & B44_FLAG_TX_RING_HACK)
@ -525,7 +523,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
entry = NEXT_TX(entry); entry = NEXT_TX(entry);
@@ -1097,10 +1043,10 @@ static void b44_free_rings(struct b44 *b @@ -1097,10 +1043,10 @@
if (rp->skb == NULL) if (rp->skb == NULL)
continue; continue;
@ -538,7 +536,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
dev_kfree_skb_any(rp->skb); dev_kfree_skb_any(rp->skb);
rp->skb = NULL; rp->skb = NULL;
} }
@@ -1111,10 +1057,10 @@ static void b44_free_rings(struct b44 *b @@ -1111,10 +1057,10 @@
if (rp->skb == NULL) if (rp->skb == NULL)
continue; continue;
@ -551,7 +549,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
dev_kfree_skb_any(rp->skb); dev_kfree_skb_any(rp->skb);
rp->skb = NULL; rp->skb = NULL;
} }
@@ -1136,14 +1082,14 @@ static void b44_init_rings(struct b44 *b @@ -1136,14 +1082,14 @@
memset(bp->tx_ring, 0, B44_TX_RING_BYTES); memset(bp->tx_ring, 0, B44_TX_RING_BYTES);
if (bp->flags & B44_FLAG_RX_RING_HACK) if (bp->flags & B44_FLAG_RX_RING_HACK)
@ -572,7 +570,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
for (i = 0; i < bp->rx_pending; i++) { for (i = 0; i < bp->rx_pending; i++) {
if (b44_alloc_rx_skb(bp, -1, i) < 0) if (b44_alloc_rx_skb(bp, -1, i) < 0)
@@ -1163,24 +1109,24 @@ static void b44_free_consistent(struct b @@ -1163,24 +1109,24 @@
bp->tx_buffers = NULL; bp->tx_buffers = NULL;
if (bp->rx_ring) { if (bp->rx_ring) {
if (bp->flags & B44_FLAG_RX_RING_HACK) { if (bp->flags & B44_FLAG_RX_RING_HACK) {
@ -605,7 +603,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
bp->tx_ring, bp->tx_ring_dma); bp->tx_ring, bp->tx_ring_dma);
bp->tx_ring = NULL; bp->tx_ring = NULL;
bp->flags &= ~B44_FLAG_TX_RING_HACK; bp->flags &= ~B44_FLAG_TX_RING_HACK;
@@ -1206,7 +1152,7 @@ static int b44_alloc_consistent(struct b @@ -1206,7 +1152,7 @@
goto out_err; goto out_err;
size = DMA_TABLE_BYTES; size = DMA_TABLE_BYTES;
@ -614,7 +612,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
if (!bp->rx_ring) { if (!bp->rx_ring) {
/* Allocation may have failed due to pci_alloc_consistent /* Allocation may have failed due to pci_alloc_consistent
insisting on use of GFP_DMA, which is more restrictive insisting on use of GFP_DMA, which is more restrictive
@@ -1218,9 +1164,9 @@ static int b44_alloc_consistent(struct b @@ -1218,9 +1164,9 @@
if (!rx_ring) if (!rx_ring)
goto out_err; goto out_err;
@ -627,7 +625,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
if (dma_mapping_error(rx_ring_dma) || if (dma_mapping_error(rx_ring_dma) ||
rx_ring_dma + size > DMA_30BIT_MASK) { rx_ring_dma + size > DMA_30BIT_MASK) {
@@ -1233,9 +1179,9 @@ static int b44_alloc_consistent(struct b @@ -1233,9 +1179,9 @@
bp->flags |= B44_FLAG_RX_RING_HACK; bp->flags |= B44_FLAG_RX_RING_HACK;
} }
@ -639,7 +637,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
insisting on use of GFP_DMA, which is more restrictive insisting on use of GFP_DMA, which is more restrictive
than necessary... */ than necessary... */
struct dma_desc *tx_ring; struct dma_desc *tx_ring;
@@ -1245,9 +1191,9 @@ static int b44_alloc_consistent(struct b @@ -1245,9 +1191,9 @@
if (!tx_ring) if (!tx_ring)
goto out_err; goto out_err;
@ -652,7 +650,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
if (dma_mapping_error(tx_ring_dma) || if (dma_mapping_error(tx_ring_dma) ||
tx_ring_dma + size > DMA_30BIT_MASK) { tx_ring_dma + size > DMA_30BIT_MASK) {
@@ -1282,7 +1228,9 @@ static void b44_clear_stats(struct b44 * @@ -1282,7 +1228,9 @@
/* bp->lock is held. */ /* bp->lock is held. */
static void b44_chip_reset(struct b44 *bp) static void b44_chip_reset(struct b44 *bp)
{ {
@ -663,7 +661,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
bw32(bp, B44_RCV_LAZY, 0); bw32(bp, B44_RCV_LAZY, 0);
bw32(bp, B44_ENET_CTRL, ENET_CTRL_DISABLE); bw32(bp, B44_ENET_CTRL, ENET_CTRL_DISABLE);
b44_wait_bit(bp, B44_ENET_CTRL, ENET_CTRL_DISABLE, 200, 1); b44_wait_bit(bp, B44_ENET_CTRL, ENET_CTRL_DISABLE, 200, 1);
@@ -1294,19 +1242,24 @@ static void b44_chip_reset(struct b44 *b @@ -1294,19 +1242,24 @@
} }
bw32(bp, B44_DMARX_CTRL, 0); bw32(bp, B44_DMARX_CTRL, 0);
bp->rx_prod = bp->rx_cons = 0; bp->rx_prod = bp->rx_cons = 0;
@ -696,7 +694,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
br32(bp, B44_MDIO_CTRL); br32(bp, B44_MDIO_CTRL);
if (!(br32(bp, B44_DEVCTRL) & DEVCTRL_IPP)) { if (!(br32(bp, B44_DEVCTRL) & DEVCTRL_IPP)) {
@@ -1349,6 +1302,7 @@ static int b44_set_mac_addr(struct net_d @@ -1349,6 +1302,7 @@
{ {
struct b44 *bp = netdev_priv(dev); struct b44 *bp = netdev_priv(dev);
struct sockaddr *addr = p; struct sockaddr *addr = p;
@ -704,7 +702,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
if (netif_running(dev)) if (netif_running(dev))
return -EBUSY; return -EBUSY;
@@ -1359,7 +1313,11 @@ static int b44_set_mac_addr(struct net_d @@ -1359,7 +1313,11 @@
memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
spin_lock_irq(&bp->lock); spin_lock_irq(&bp->lock);
@ -717,7 +715,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
spin_unlock_irq(&bp->lock); spin_unlock_irq(&bp->lock);
return 0; return 0;
@@ -1445,18 +1403,6 @@ out: @@ -1445,18 +1403,6 @@
return err; return err;
} }
@ -736,7 +734,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
#ifdef CONFIG_NET_POLL_CONTROLLER #ifdef CONFIG_NET_POLL_CONTROLLER
/* /*
* Polling receive - used by netconsole and other diagnostic tools * Polling receive - used by netconsole and other diagnostic tools
@@ -1570,7 +1516,6 @@ static void b44_setup_pseudo_magicp(stru @@ -1570,7 +1516,6 @@
static void b44_setup_wol(struct b44 *bp) static void b44_setup_wol(struct b44 *bp)
{ {
u32 val; u32 val;
@ -744,7 +742,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
bw32(bp, B44_RXCONFIG, RXCONFIG_ALLMULTI); bw32(bp, B44_RXCONFIG, RXCONFIG_ALLMULTI);
@@ -1594,13 +1539,6 @@ static void b44_setup_wol(struct b44 *bp @@ -1594,13 +1539,6 @@
} else { } else {
b44_setup_pseudo_magicp(bp); b44_setup_pseudo_magicp(bp);
} }
@ -758,7 +756,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
} }
static int b44_close(struct net_device *dev) static int b44_close(struct net_device *dev)
@@ -1700,7 +1638,7 @@ static void __b44_set_rx_mode(struct net @@ -1700,7 +1638,7 @@
val = br32(bp, B44_RXCONFIG); val = br32(bp, B44_RXCONFIG);
val &= ~(RXCONFIG_PROMISC | RXCONFIG_ALLMULTI); val &= ~(RXCONFIG_PROMISC | RXCONFIG_ALLMULTI);
@ -767,7 +765,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
val |= RXCONFIG_PROMISC; val |= RXCONFIG_PROMISC;
bw32(bp, B44_RXCONFIG, val); bw32(bp, B44_RXCONFIG, val);
} else { } else {
@@ -1747,12 +1685,8 @@ static void b44_set_msglevel(struct net_ @@ -1747,12 +1685,8 @@
static void b44_get_drvinfo (struct net_device *dev, struct ethtool_drvinfo *info) static void b44_get_drvinfo (struct net_device *dev, struct ethtool_drvinfo *info)
{ {
@ -780,7 +778,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
} }
static int b44_nway_reset(struct net_device *dev) static int b44_nway_reset(struct net_device *dev)
@@ -2035,6 +1969,245 @@ static const struct ethtool_ops b44_etht @@ -2035,6 +1969,245 @@
.get_ethtool_stats = b44_get_ethtool_stats, .get_ethtool_stats = b44_get_ethtool_stats,
}; };
@ -1026,7 +1024,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
static int b44_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) static int b44_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
{ {
struct mii_ioctl_data *data = if_mii(ifr); struct mii_ioctl_data *data = if_mii(ifr);
@@ -2044,40 +2217,64 @@ static int b44_ioctl(struct net_device * @@ -2044,40 +2217,64 @@
if (!netif_running(dev)) if (!netif_running(dev))
goto out; goto out;
@ -1116,7 +1114,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
if (!is_valid_ether_addr(&bp->dev->dev_addr[0])){ if (!is_valid_ether_addr(&bp->dev->dev_addr[0])){
printk(KERN_ERR PFX "Invalid MAC address found in EEPROM\n"); printk(KERN_ERR PFX "Invalid MAC address found in EEPROM\n");
@@ -2086,103 +2283,52 @@ static int __devinit b44_get_invariants( @@ -2086,103 +2283,52 @@
memcpy(bp->dev->perm_addr, bp->dev->dev_addr, bp->dev->addr_len); memcpy(bp->dev->perm_addr, bp->dev->dev_addr, bp->dev->addr_len);
@ -1229,7 +1227,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
bp->rx_pending = B44_DEF_RX_RING_PENDING; bp->rx_pending = B44_DEF_RX_RING_PENDING;
bp->tx_pending = B44_DEF_TX_RING_PENDING; bp->tx_pending = B44_DEF_TX_RING_PENDING;
@@ -2201,16 +2347,16 @@ static int __devinit b44_init_one(struct @@ -2201,16 +2347,16 @@
dev->poll_controller = b44_poll_controller; dev->poll_controller = b44_poll_controller;
#endif #endif
dev->change_mtu = b44_change_mtu; dev->change_mtu = b44_change_mtu;
@ -1249,7 +1247,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
} }
bp->mii_if.dev = dev; bp->mii_if.dev = dev;
@@ -2229,61 +2375,52 @@ static int __devinit b44_init_one(struct @@ -2229,61 +2375,52 @@
err = register_netdev(dev); err = register_netdev(dev);
if (err) { if (err) {
@ -1327,7 +1325,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
del_timer_sync(&bp->timer); del_timer_sync(&bp->timer);
@@ -2301,33 +2438,22 @@ static int b44_suspend(struct pci_dev *p @@ -2301,33 +2438,22 @@
b44_init_hw(bp, B44_PARTIAL_RESET); b44_init_hw(bp, B44_PARTIAL_RESET);
b44_setup_wol(bp); b44_setup_wol(bp);
} }
@ -1364,7 +1362,7 @@ Index: linux-2.6.23.17/drivers/net/b44.c
return rc; return rc;
} }
@@ -2346,29 +2472,31 @@ static int b44_resume(struct pci_dev *pd @@ -2346,29 +2472,31 @@
return 0; return 0;
} }
@ -1402,10 +1400,8 @@ Index: linux-2.6.23.17/drivers/net/b44.c
} }
module_init(b44_init); module_init(b44_init);
Index: linux-2.6.23.17/drivers/net/b44.h --- a/drivers/net/b44.h
=================================================================== +++ b/drivers/net/b44.h
--- linux-2.6.23.17.orig/drivers/net/b44.h
+++ linux-2.6.23.17/drivers/net/b44.h
@@ -129,6 +129,7 @@ @@ -129,6 +129,7 @@
#define RXCONFIG_FLOW 0x00000020 /* Flow Control Enable */ #define RXCONFIG_FLOW 0x00000020 /* Flow Control Enable */
#define RXCONFIG_FLOW_ACCEPT 0x00000040 /* Accept Unicast Flow Control Frame */ #define RXCONFIG_FLOW_ACCEPT 0x00000040 /* Accept Unicast Flow Control Frame */
@ -1493,7 +1489,7 @@ Index: linux-2.6.23.17/drivers/net/b44.h
/* 4400 PHY registers */ /* 4400 PHY registers */
#define B44_MII_AUXCTRL 24 /* Auxiliary Control */ #define B44_MII_AUXCTRL 24 /* Auxiliary Control */
@@ -346,10 +281,12 @@ struct rx_header { @@ -346,10 +281,12 @@
struct ring_info { struct ring_info {
struct sk_buff *skb; struct sk_buff *skb;
@ -1507,7 +1503,7 @@ Index: linux-2.6.23.17/drivers/net/b44.h
#define B44_STAT_REG_DECLARE \ #define B44_STAT_REG_DECLARE \
_B44(tx_good_octets) \ _B44(tx_good_octets) \
@@ -425,9 +362,10 @@ struct b44 { @@ -425,9 +362,10 @@
u32 dma_offset; u32 dma_offset;
u32 flags; u32 flags;
@ -1519,7 +1515,7 @@ Index: linux-2.6.23.17/drivers/net/b44.h
#define B44_FLAG_PAUSE_AUTO 0x00008000 #define B44_FLAG_PAUSE_AUTO 0x00008000
#define B44_FLAG_FULL_DUPLEX 0x00010000 #define B44_FLAG_FULL_DUPLEX 0x00010000
#define B44_FLAG_100_BASE_T 0x00020000 #define B44_FLAG_100_BASE_T 0x00020000
@@ -450,8 +388,7 @@ struct b44 { @@ -450,8 +388,7 @@
struct net_device_stats stats; struct net_device_stats stats;
struct b44_hw_stats hw_stats; struct b44_hw_stats hw_stats;
@ -1529,11 +1525,9 @@ Index: linux-2.6.23.17/drivers/net/b44.h
struct net_device *dev; struct net_device *dev;
dma_addr_t rx_ring_dma, tx_ring_dma; dma_addr_t rx_ring_dma, tx_ring_dma;
Index: linux-2.6.23.17/drivers/net/Kconfig --- a/drivers/net/Kconfig
=================================================================== +++ b/drivers/net/Kconfig
--- linux-2.6.23.17.orig/drivers/net/Kconfig @@ -1577,7 +1577,7 @@
+++ linux-2.6.23.17/drivers/net/Kconfig
@@ -1577,7 +1577,7 @@ config APRICOT
config B44 config B44
tristate "Broadcom 4400 ethernet support" tristate "Broadcom 4400 ethernet support"

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/drivers/net/b44.c --- a/drivers/net/b44.c
=================================================================== +++ b/drivers/net/b44.c
--- linux-2.6.23.17.orig/drivers/net/b44.c @@ -2273,6 +2273,10 @@
+++ linux-2.6.23.17/drivers/net/b44.c
@@ -2273,6 +2273,10 @@ static int __devinit b44_get_invariants(
bp->phy_addr = sdev->bus->sprom.et1phyaddr; bp->phy_addr = sdev->bus->sprom.et1phyaddr;
break; break;
} }

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/arch/mips/Kconfig --- a/arch/mips/Kconfig
=================================================================== +++ b/arch/mips/Kconfig
--- linux-2.6.23.17.orig/arch/mips/Kconfig @@ -192,7 +192,6 @@
+++ linux-2.6.23.17/arch/mips/Kconfig
@@ -192,7 +192,6 @@ config MIPS_MALTA
select I8259 select I8259
select MIPS_BOARDS_GEN select MIPS_BOARDS_GEN
select MIPS_BONITO64 select MIPS_BONITO64
@ -10,7 +8,7 @@ Index: linux-2.6.23.17/arch/mips/Kconfig
select PCI_GT64XXX_PCI0 select PCI_GT64XXX_PCI0
select MIPS_MSC select MIPS_MSC
select SWAP_IO_SPACE select SWAP_IO_SPACE
@@ -1281,13 +1280,6 @@ config IP22_CPU_SCACHE @@ -1281,13 +1280,6 @@
bool bool
select BOARD_SCACHE select BOARD_SCACHE
@ -24,11 +22,9 @@ Index: linux-2.6.23.17/arch/mips/Kconfig
config R5000_CPU_SCACHE config R5000_CPU_SCACHE
bool bool
select BOARD_SCACHE select BOARD_SCACHE
Index: linux-2.6.23.17/arch/mips/kernel/cpu-probe.c --- a/arch/mips/kernel/cpu-probe.c
=================================================================== +++ b/arch/mips/kernel/cpu-probe.c
--- linux-2.6.23.17.orig/arch/mips/kernel/cpu-probe.c @@ -701,6 +701,8 @@
+++ linux-2.6.23.17/arch/mips/kernel/cpu-probe.c
@@ -701,6 +701,8 @@ static inline void cpu_probe_mips(struct
break; break;
case PRID_IMP_25KF: case PRID_IMP_25KF:
c->cputype = CPU_25KF; c->cputype = CPU_25KF;
@ -37,11 +33,9 @@ Index: linux-2.6.23.17/arch/mips/kernel/cpu-probe.c
break; break;
case PRID_IMP_34K: case PRID_IMP_34K:
c->cputype = CPU_34K; c->cputype = CPU_34K;
Index: linux-2.6.23.17/arch/mips/mm/c-r4k.c --- a/arch/mips/mm/c-r4k.c
=================================================================== +++ b/arch/mips/mm/c-r4k.c
--- linux-2.6.23.17.orig/arch/mips/mm/c-r4k.c @@ -1101,7 +1101,6 @@
+++ linux-2.6.23.17/arch/mips/mm/c-r4k.c
@@ -1101,7 +1101,6 @@ static void __init loongson2_sc_init(voi
extern int r5k_sc_init(void); extern int r5k_sc_init(void);
extern int rm7k_sc_init(void); extern int rm7k_sc_init(void);
@ -49,7 +43,7 @@ Index: linux-2.6.23.17/arch/mips/mm/c-r4k.c
static void __init setup_scache(void) static void __init setup_scache(void)
{ {
@@ -1155,29 +1154,17 @@ static void __init setup_scache(void) @@ -1155,29 +1154,17 @@
#endif #endif
default: default:
@ -84,11 +78,9 @@ Index: linux-2.6.23.17/arch/mips/mm/c-r4k.c
/* compute a couple of other cache variables */ /* compute a couple of other cache variables */
c->scache.waysize = scache_size / c->scache.ways; c->scache.waysize = scache_size / c->scache.ways;
Index: linux-2.6.23.17/arch/mips/mm/Makefile --- a/arch/mips/mm/Makefile
=================================================================== +++ b/arch/mips/mm/Makefile
--- linux-2.6.23.17.orig/arch/mips/mm/Makefile @@ -31,6 +31,5 @@
+++ linux-2.6.23.17/arch/mips/mm/Makefile
@@ -31,6 +31,5 @@ obj-$(CONFIG_CPU_VR41XX) += c-r4k.o cex-
obj-$(CONFIG_IP22_CPU_SCACHE) += sc-ip22.o obj-$(CONFIG_IP22_CPU_SCACHE) += sc-ip22.o
obj-$(CONFIG_R5000_CPU_SCACHE) += sc-r5k.o obj-$(CONFIG_R5000_CPU_SCACHE) += sc-r5k.o
obj-$(CONFIG_RM7000_CPU_SCACHE) += sc-rm7k.o obj-$(CONFIG_RM7000_CPU_SCACHE) += sc-rm7k.o

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/arch/mips/kernel/genex.S --- a/arch/mips/kernel/genex.S
=================================================================== +++ b/arch/mips/kernel/genex.S
--- linux-2.6.23.17.orig/arch/mips/kernel/genex.S @@ -51,6 +51,10 @@
+++ linux-2.6.23.17/arch/mips/kernel/genex.S
@@ -51,6 +51,10 @@ NESTED(except_vec1_generic, 0, sp)
NESTED(except_vec3_generic, 0, sp) NESTED(except_vec3_generic, 0, sp)
.set push .set push
.set noat .set noat
@ -13,10 +11,8 @@ Index: linux-2.6.23.17/arch/mips/kernel/genex.S
#if R5432_CP0_INTERRUPT_WAR #if R5432_CP0_INTERRUPT_WAR
mfc0 k0, CP0_INDEX mfc0 k0, CP0_INDEX
#endif #endif
Index: linux-2.6.23.17/arch/mips/mm/c-r4k.c --- a/arch/mips/mm/c-r4k.c
=================================================================== +++ b/arch/mips/mm/c-r4k.c
--- linux-2.6.23.17.orig/arch/mips/mm/c-r4k.c
+++ linux-2.6.23.17/arch/mips/mm/c-r4k.c
@@ -30,6 +30,9 @@ @@ -30,6 +30,9 @@
#include <asm/cacheflush.h> /* for run_uncached() */ #include <asm/cacheflush.h> /* for run_uncached() */
@ -27,7 +23,7 @@ Index: linux-2.6.23.17/arch/mips/mm/c-r4k.c
/* /*
* Special Variant of smp_call_function for use by cache functions: * Special Variant of smp_call_function for use by cache functions:
* *
@@ -94,6 +97,9 @@ static void __init r4k_blast_dcache_page @@ -94,6 +97,9 @@
{ {
unsigned long dc_lsize = cpu_dcache_line_size(); unsigned long dc_lsize = cpu_dcache_line_size();
@ -37,7 +33,7 @@ Index: linux-2.6.23.17/arch/mips/mm/c-r4k.c
if (dc_lsize == 0) if (dc_lsize == 0)
r4k_blast_dcache_page = (void *)cache_noop; r4k_blast_dcache_page = (void *)cache_noop;
else if (dc_lsize == 16) else if (dc_lsize == 16)
@@ -108,6 +114,9 @@ static void __init r4k_blast_dcache_page @@ -108,6 +114,9 @@
{ {
unsigned long dc_lsize = cpu_dcache_line_size(); unsigned long dc_lsize = cpu_dcache_line_size();
@ -47,7 +43,7 @@ Index: linux-2.6.23.17/arch/mips/mm/c-r4k.c
if (dc_lsize == 0) if (dc_lsize == 0)
r4k_blast_dcache_page_indexed = (void *)cache_noop; r4k_blast_dcache_page_indexed = (void *)cache_noop;
else if (dc_lsize == 16) else if (dc_lsize == 16)
@@ -122,6 +131,9 @@ static void __init r4k_blast_dcache_setu @@ -122,6 +131,9 @@
{ {
unsigned long dc_lsize = cpu_dcache_line_size(); unsigned long dc_lsize = cpu_dcache_line_size();
@ -57,7 +53,7 @@ Index: linux-2.6.23.17/arch/mips/mm/c-r4k.c
if (dc_lsize == 0) if (dc_lsize == 0)
r4k_blast_dcache = (void *)cache_noop; r4k_blast_dcache = (void *)cache_noop;
else if (dc_lsize == 16) else if (dc_lsize == 16)
@@ -638,6 +650,8 @@ static void local_r4k_flush_cache_sigtra @@ -638,6 +650,8 @@
unsigned long addr = (unsigned long) arg; unsigned long addr = (unsigned long) arg;
R4600_HIT_CACHEOP_WAR_IMPL; R4600_HIT_CACHEOP_WAR_IMPL;
@ -66,7 +62,7 @@ Index: linux-2.6.23.17/arch/mips/mm/c-r4k.c
if (dc_lsize) if (dc_lsize)
protected_writeback_dcache_line(addr & ~(dc_lsize - 1)); protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
if (!cpu_icache_snoops_remote_store && scache_size) if (!cpu_icache_snoops_remote_store && scache_size)
@@ -1213,6 +1227,17 @@ static void __init coherency_setup(void) @@ -1213,6 +1227,17 @@
* silly idea of putting something else there ... * silly idea of putting something else there ...
*/ */
switch (current_cpu_data.cputype) { switch (current_cpu_data.cputype) {
@ -84,7 +80,7 @@ Index: linux-2.6.23.17/arch/mips/mm/c-r4k.c
case CPU_R4000PC: case CPU_R4000PC:
case CPU_R4000SC: case CPU_R4000SC:
case CPU_R4000MC: case CPU_R4000MC:
@@ -1243,6 +1268,15 @@ void __init r4k_cache_init(void) @@ -1243,6 +1268,15 @@
/* Default cache error handler for R4000 and R5000 family */ /* Default cache error handler for R4000 and R5000 family */
set_uncached_handler (0x100, &except_vec2_generic, 0x80); set_uncached_handler (0x100, &except_vec2_generic, 0x80);
@ -100,7 +96,7 @@ Index: linux-2.6.23.17/arch/mips/mm/c-r4k.c
probe_pcache(); probe_pcache();
setup_scache(); setup_scache();
@@ -1288,5 +1322,13 @@ void __init r4k_cache_init(void) @@ -1288,5 +1322,13 @@
build_clear_page(); build_clear_page();
build_copy_page(); build_copy_page();
local_r4k___flush_cache_all(NULL); local_r4k___flush_cache_all(NULL);
@ -114,11 +110,9 @@ Index: linux-2.6.23.17/arch/mips/mm/c-r4k.c
coherency_setup(); coherency_setup();
+#endif +#endif
} }
Index: linux-2.6.23.17/arch/mips/mm/tlbex.c --- a/arch/mips/mm/tlbex.c
=================================================================== +++ b/arch/mips/mm/tlbex.c
--- linux-2.6.23.17.orig/arch/mips/mm/tlbex.c @@ -1273,6 +1273,9 @@
+++ linux-2.6.23.17/arch/mips/mm/tlbex.c
@@ -1273,6 +1273,9 @@ static void __init build_r4000_tlb_refil
/* No need for i_nop */ /* No need for i_nop */
} }
@ -128,7 +122,7 @@ Index: linux-2.6.23.17/arch/mips/mm/tlbex.c
#ifdef CONFIG_64BIT #ifdef CONFIG_64BIT
build_get_pmde64(&p, &l, &r, K0, K1); /* get pmd in K1 */ build_get_pmde64(&p, &l, &r, K0, K1); /* get pmd in K1 */
#else #else
@@ -1708,6 +1711,9 @@ build_r4000_tlbchange_handler_head(u32 * @@ -1708,6 +1711,9 @@
struct reloc **r, unsigned int pte, struct reloc **r, unsigned int pte,
unsigned int ptr) unsigned int ptr)
{ {
@ -138,10 +132,8 @@ Index: linux-2.6.23.17/arch/mips/mm/tlbex.c
#ifdef CONFIG_64BIT #ifdef CONFIG_64BIT
build_get_pmde64(p, l, r, pte, ptr); /* get pmd in ptr */ build_get_pmde64(p, l, r, pte, ptr); /* get pmd in ptr */
#else #else
Index: linux-2.6.23.17/include/asm-mips/r4kcache.h --- a/include/asm-mips/r4kcache.h
=================================================================== +++ b/include/asm-mips/r4kcache.h
--- linux-2.6.23.17.orig/include/asm-mips/r4kcache.h
+++ linux-2.6.23.17/include/asm-mips/r4kcache.h
@@ -17,6 +17,20 @@ @@ -17,6 +17,20 @@
#include <asm/cpu-features.h> #include <asm/cpu-features.h>
#include <asm/mipsmtregs.h> #include <asm/mipsmtregs.h>
@ -163,7 +155,7 @@ Index: linux-2.6.23.17/include/asm-mips/r4kcache.h
/* /*
* This macro return a properly sign-extended address suitable as base address * This macro return a properly sign-extended address suitable as base address
* for indexed cache operations. Two issues here: * for indexed cache operations. Two issues here:
@@ -150,6 +164,7 @@ static inline void flush_icache_line_ind @@ -150,6 +164,7 @@
static inline void flush_dcache_line_indexed(unsigned long addr) static inline void flush_dcache_line_indexed(unsigned long addr)
{ {
__dflush_prologue __dflush_prologue
@ -171,7 +163,7 @@ Index: linux-2.6.23.17/include/asm-mips/r4kcache.h
cache_op(Index_Writeback_Inv_D, addr); cache_op(Index_Writeback_Inv_D, addr);
__dflush_epilogue __dflush_epilogue
} }
@@ -169,6 +184,7 @@ static inline void flush_icache_line(uns @@ -169,6 +184,7 @@
static inline void flush_dcache_line(unsigned long addr) static inline void flush_dcache_line(unsigned long addr)
{ {
__dflush_prologue __dflush_prologue
@ -179,7 +171,7 @@ Index: linux-2.6.23.17/include/asm-mips/r4kcache.h
cache_op(Hit_Writeback_Inv_D, addr); cache_op(Hit_Writeback_Inv_D, addr);
__dflush_epilogue __dflush_epilogue
} }
@@ -176,6 +192,7 @@ static inline void flush_dcache_line(uns @@ -176,6 +192,7 @@
static inline void invalidate_dcache_line(unsigned long addr) static inline void invalidate_dcache_line(unsigned long addr)
{ {
__dflush_prologue __dflush_prologue
@ -187,7 +179,7 @@ Index: linux-2.6.23.17/include/asm-mips/r4kcache.h
cache_op(Hit_Invalidate_D, addr); cache_op(Hit_Invalidate_D, addr);
__dflush_epilogue __dflush_epilogue
} }
@@ -208,6 +225,7 @@ static inline void flush_scache_line(uns @@ -208,6 +225,7 @@
*/ */
static inline void protected_flush_icache_line(unsigned long addr) static inline void protected_flush_icache_line(unsigned long addr)
{ {
@ -195,7 +187,7 @@ Index: linux-2.6.23.17/include/asm-mips/r4kcache.h
protected_cache_op(Hit_Invalidate_I, addr); protected_cache_op(Hit_Invalidate_I, addr);
} }
@@ -219,6 +237,7 @@ static inline void protected_flush_icach @@ -219,6 +237,7 @@
*/ */
static inline void protected_writeback_dcache_line(unsigned long addr) static inline void protected_writeback_dcache_line(unsigned long addr)
{ {
@ -203,7 +195,7 @@ Index: linux-2.6.23.17/include/asm-mips/r4kcache.h
protected_cache_op(Hit_Writeback_Inv_D, addr); protected_cache_op(Hit_Writeback_Inv_D, addr);
} }
@@ -339,8 +358,52 @@ static inline void invalidate_tcache_pag @@ -339,8 +358,52 @@
: "r" (base), \ : "r" (base), \
"i" (op)); "i" (op));
@ -257,7 +249,7 @@ Index: linux-2.6.23.17/include/asm-mips/r4kcache.h
static inline void blast_##pfx##cache##lsize(void) \ static inline void blast_##pfx##cache##lsize(void) \
{ \ { \
unsigned long start = INDEX_BASE; \ unsigned long start = INDEX_BASE; \
@@ -352,6 +415,7 @@ static inline void blast_##pfx##cache##l @@ -352,6 +415,7 @@
\ \
__##pfx##flush_prologue \ __##pfx##flush_prologue \
\ \
@ -265,7 +257,7 @@ Index: linux-2.6.23.17/include/asm-mips/r4kcache.h
for (ws = 0; ws < ws_end; ws += ws_inc) \ for (ws = 0; ws < ws_end; ws += ws_inc) \
for (addr = start; addr < end; addr += lsize * 32) \ for (addr = start; addr < end; addr += lsize * 32) \
cache##lsize##_unroll32(addr|ws,indexop); \ cache##lsize##_unroll32(addr|ws,indexop); \
@@ -366,6 +430,7 @@ static inline void blast_##pfx##cache##l @@ -366,6 +430,7 @@
\ \
__##pfx##flush_prologue \ __##pfx##flush_prologue \
\ \
@ -273,7 +265,7 @@ Index: linux-2.6.23.17/include/asm-mips/r4kcache.h
do { \ do { \
cache##lsize##_unroll32(start,hitop); \ cache##lsize##_unroll32(start,hitop); \
start += lsize * 32; \ start += lsize * 32; \
@@ -384,6 +449,8 @@ static inline void blast_##pfx##cache##l @@ -384,6 +449,8 @@
current_cpu_data.desc.waybit; \ current_cpu_data.desc.waybit; \
unsigned long ws, addr; \ unsigned long ws, addr; \
\ \
@ -282,7 +274,7 @@ Index: linux-2.6.23.17/include/asm-mips/r4kcache.h
__##pfx##flush_prologue \ __##pfx##flush_prologue \
\ \
for (ws = 0; ws < ws_end; ws += ws_inc) \ for (ws = 0; ws < ws_end; ws += ws_inc) \
@@ -393,28 +460,30 @@ static inline void blast_##pfx##cache##l @@ -393,28 +460,30 @@
__##pfx##flush_epilogue \ __##pfx##flush_epilogue \
} }
@ -323,7 +315,7 @@ Index: linux-2.6.23.17/include/asm-mips/r4kcache.h
prot##cache_op(hitop, addr); \ prot##cache_op(hitop, addr); \
if (addr == aend) \ if (addr == aend) \
break; \ break; \
@@ -424,13 +493,13 @@ static inline void prot##blast_##pfx##ca @@ -424,13 +493,13 @@
__##pfx##flush_epilogue \ __##pfx##flush_epilogue \
} }
@ -344,10 +336,8 @@ Index: linux-2.6.23.17/include/asm-mips/r4kcache.h
+__BUILD_BLAST_CACHE_RANGE(inv_s, scache, Hit_Invalidate_SD,,, ) +__BUILD_BLAST_CACHE_RANGE(inv_s, scache, Hit_Invalidate_SD,,, )
#endif /* _ASM_R4KCACHE_H */ #endif /* _ASM_R4KCACHE_H */
Index: linux-2.6.23.17/include/asm-mips/stackframe.h --- a/include/asm-mips/stackframe.h
=================================================================== +++ b/include/asm-mips/stackframe.h
--- linux-2.6.23.17.orig/include/asm-mips/stackframe.h
+++ linux-2.6.23.17/include/asm-mips/stackframe.h
@@ -350,6 +350,10 @@ @@ -350,6 +350,10 @@
.macro RESTORE_SP_AND_RET .macro RESTORE_SP_AND_RET
LONG_L sp, PT_R29(sp) LONG_L sp, PT_R29(sp)

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/arch/mips/mm/init.c --- a/arch/mips/mm/init.c
=================================================================== +++ b/arch/mips/mm/init.c
--- linux-2.6.23.17.orig/arch/mips/mm/init.c @@ -211,7 +211,7 @@
+++ linux-2.6.23.17/arch/mips/mm/init.c
@@ -211,7 +211,7 @@ void copy_user_highpage(struct page *to,
void *vfrom, *vto; void *vfrom, *vto;
vto = kmap_atomic(to, KM_USER1); vto = kmap_atomic(to, KM_USER1);
@ -11,7 +9,7 @@ Index: linux-2.6.23.17/arch/mips/mm/init.c
vfrom = kmap_coherent(from, vaddr); vfrom = kmap_coherent(from, vaddr);
copy_page(vto, vfrom); copy_page(vto, vfrom);
kunmap_coherent(); kunmap_coherent();
@@ -234,7 +234,7 @@ void copy_to_user_page(struct vm_area_st @@ -234,7 +234,7 @@
struct page *page, unsigned long vaddr, void *dst, const void *src, struct page *page, unsigned long vaddr, void *dst, const void *src,
unsigned long len) unsigned long len)
{ {
@ -20,7 +18,7 @@ Index: linux-2.6.23.17/arch/mips/mm/init.c
void *vto = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK); void *vto = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK);
memcpy(vto, src, len); memcpy(vto, src, len);
kunmap_coherent(); kunmap_coherent();
@@ -250,7 +250,7 @@ void copy_from_user_page(struct vm_area_ @@ -250,7 +250,7 @@
struct page *page, unsigned long vaddr, void *dst, const void *src, struct page *page, unsigned long vaddr, void *dst, const void *src,
unsigned long len) unsigned long len)
{ {
@ -29,10 +27,8 @@ Index: linux-2.6.23.17/arch/mips/mm/init.c
void *vfrom = void *vfrom =
kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK); kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK);
memcpy(dst, vfrom, len); memcpy(dst, vfrom, len);
Index: linux-2.6.23.17/include/asm-mips/mach-bcm947xx/cpu-feature-overrides.h
===================================================================
--- /dev/null --- /dev/null
+++ linux-2.6.23.17/include/asm-mips/mach-bcm947xx/cpu-feature-overrides.h +++ b/include/asm-mips/mach-bcm947xx/cpu-feature-overrides.h
@@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
+/* +/*
+ * This file is subject to the terms and conditions of the GNU General Public + * This file is subject to the terms and conditions of the GNU General Public
@ -47,10 +43,8 @@ Index: linux-2.6.23.17/include/asm-mips/mach-bcm947xx/cpu-feature-overrides.h
+#define cpu_use_kmap_coherent 0 +#define cpu_use_kmap_coherent 0
+ +
+#endif /* __ASM_MACH_BCM947XX_CPU_FEATURE_OVERRIDES_H */ +#endif /* __ASM_MACH_BCM947XX_CPU_FEATURE_OVERRIDES_H */
Index: linux-2.6.23.17/include/asm-mips/cpu-features.h --- a/include/asm-mips/cpu-features.h
=================================================================== +++ b/include/asm-mips/cpu-features.h
--- linux-2.6.23.17.orig/include/asm-mips/cpu-features.h
+++ linux-2.6.23.17/include/asm-mips/cpu-features.h
@@ -101,6 +101,9 @@ @@ -101,6 +101,9 @@
#ifndef cpu_has_pindexed_dcache #ifndef cpu_has_pindexed_dcache
#define cpu_has_pindexed_dcache (cpu_data[0].dcache.flags & MIPS_CACHE_PINDEX) #define cpu_has_pindexed_dcache (cpu_data[0].dcache.flags & MIPS_CACHE_PINDEX)

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/arch/mips/kernel/cpu-probe.c --- a/arch/mips/kernel/cpu-probe.c
=================================================================== +++ b/arch/mips/kernel/cpu-probe.c
--- linux-2.6.23.17.orig/arch/mips/kernel/cpu-probe.c @@ -159,6 +159,7 @@
+++ linux-2.6.23.17/arch/mips/kernel/cpu-probe.c
@@ -159,6 +159,7 @@ static inline void check_wait(void)
case CPU_5KC: case CPU_5KC:
case CPU_25KF: case CPU_25KF:
case CPU_PR4450: case CPU_PR4450:

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/drivers/ssb/driver_chipcommon.c --- a/drivers/ssb/driver_chipcommon.c
=================================================================== +++ b/drivers/ssb/driver_chipcommon.c
--- linux-2.6.23.17.orig/drivers/ssb/driver_chipcommon.c @@ -270,6 +270,8 @@
+++ linux-2.6.23.17/drivers/ssb/driver_chipcommon.c
@@ -270,6 +270,8 @@ void ssb_chipco_resume(struct ssb_chipco
void ssb_chipco_get_clockcpu(struct ssb_chipcommon *cc, void ssb_chipco_get_clockcpu(struct ssb_chipcommon *cc,
u32 *plltype, u32 *n, u32 *m) u32 *plltype, u32 *n, u32 *m)
{ {
@ -11,7 +9,7 @@ Index: linux-2.6.23.17/drivers/ssb/driver_chipcommon.c
*n = chipco_read32(cc, SSB_CHIPCO_CLOCK_N); *n = chipco_read32(cc, SSB_CHIPCO_CLOCK_N);
*plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT); *plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT);
switch (*plltype) { switch (*plltype) {
@@ -293,6 +295,8 @@ void ssb_chipco_get_clockcpu(struct ssb_ @@ -293,6 +295,8 @@
void ssb_chipco_get_clockcontrol(struct ssb_chipcommon *cc, void ssb_chipco_get_clockcontrol(struct ssb_chipcommon *cc,
u32 *plltype, u32 *n, u32 *m) u32 *plltype, u32 *n, u32 *m)
{ {
@ -20,11 +18,9 @@ Index: linux-2.6.23.17/drivers/ssb/driver_chipcommon.c
*n = chipco_read32(cc, SSB_CHIPCO_CLOCK_N); *n = chipco_read32(cc, SSB_CHIPCO_CLOCK_N);
*plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT); *plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT);
switch (*plltype) { switch (*plltype) {
Index: linux-2.6.23.17/drivers/ssb/driver_mipscore.c --- a/drivers/ssb/driver_mipscore.c
=================================================================== +++ b/drivers/ssb/driver_mipscore.c
--- linux-2.6.23.17.orig/drivers/ssb/driver_mipscore.c @@ -161,6 +161,8 @@
+++ linux-2.6.23.17/drivers/ssb/driver_mipscore.c
@@ -161,6 +161,8 @@ u32 ssb_cpu_clock(struct ssb_mipscore *m
if ((pll_type == SSB_PLLTYPE_5) || (bus->chip_id == 0x5365)) { if ((pll_type == SSB_PLLTYPE_5) || (bus->chip_id == 0x5365)) {
rate = 200000000; rate = 200000000;
@ -33,11 +29,9 @@ Index: linux-2.6.23.17/drivers/ssb/driver_mipscore.c
} else { } else {
rate = ssb_calc_clock_rate(pll_type, n, m); rate = ssb_calc_clock_rate(pll_type, n, m);
} }
Index: linux-2.6.23.17/drivers/ssb/main.c --- a/drivers/ssb/main.c
=================================================================== +++ b/drivers/ssb/main.c
--- linux-2.6.23.17.orig/drivers/ssb/main.c @@ -862,6 +862,8 @@
+++ linux-2.6.23.17/drivers/ssb/main.c
@@ -862,6 +862,8 @@ u32 ssb_clockspeed(struct ssb_bus *bus)
if (bus->chip_id == 0x5365) { if (bus->chip_id == 0x5365) {
rate = 100000000; rate = 100000000;

@ -13,11 +13,9 @@ Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- ---
Index: linux-2.6.23.17/drivers/usb/host/Kconfig --- a/drivers/usb/host/Kconfig
=================================================================== +++ b/drivers/usb/host/Kconfig
--- linux-2.6.23.17.orig/drivers/usb/host/Kconfig @@ -154,6 +154,19 @@
+++ linux-2.6.23.17/drivers/usb/host/Kconfig
@@ -154,6 +154,19 @@ config USB_OHCI_HCD_PCI
Enables support for PCI-bus plug-in USB controller cards. Enables support for PCI-bus plug-in USB controller cards.
If unsure, say Y. If unsure, say Y.
@ -37,11 +35,9 @@ Index: linux-2.6.23.17/drivers/usb/host/Kconfig
config USB_OHCI_BIG_ENDIAN_DESC config USB_OHCI_BIG_ENDIAN_DESC
bool bool
depends on USB_OHCI_HCD depends on USB_OHCI_HCD
Index: linux-2.6.23.17/drivers/usb/host/ohci-hcd.c --- a/drivers/usb/host/ohci-hcd.c
=================================================================== +++ b/drivers/usb/host/ohci-hcd.c
--- linux-2.6.23.17.orig/drivers/usb/host/ohci-hcd.c @@ -926,11 +926,17 @@
+++ linux-2.6.23.17/drivers/usb/host/ohci-hcd.c
@@ -926,11 +926,17 @@ MODULE_LICENSE ("GPL");
#define PS3_SYSTEM_BUS_DRIVER ps3_ohci_driver #define PS3_SYSTEM_BUS_DRIVER ps3_ohci_driver
#endif #endif
@ -60,7 +56,7 @@ Index: linux-2.6.23.17/drivers/usb/host/ohci-hcd.c
#error "missing bus glue for ohci-hcd" #error "missing bus glue for ohci-hcd"
#endif #endif
@@ -975,10 +981,20 @@ static int __init ohci_hcd_mod_init(void @@ -975,10 +981,20 @@
goto error_pci; goto error_pci;
#endif #endif
@ -81,7 +77,7 @@ Index: linux-2.6.23.17/drivers/usb/host/ohci-hcd.c
error_pci: error_pci:
#endif #endif
#ifdef SA1111_DRIVER #ifdef SA1111_DRIVER
@@ -1003,6 +1019,9 @@ module_init(ohci_hcd_mod_init); @@ -1003,6 +1019,9 @@
static void __exit ohci_hcd_mod_exit(void) static void __exit ohci_hcd_mod_exit(void)
{ {
@ -91,10 +87,8 @@ Index: linux-2.6.23.17/drivers/usb/host/ohci-hcd.c
#ifdef PCI_DRIVER #ifdef PCI_DRIVER
pci_unregister_driver(&PCI_DRIVER); pci_unregister_driver(&PCI_DRIVER);
#endif #endif
Index: linux-2.6.23.17/drivers/usb/host/ohci-ssb.c
===================================================================
--- /dev/null --- /dev/null
+++ linux-2.6.23.17/drivers/usb/host/ohci-ssb.c +++ b/drivers/usb/host/ohci-ssb.c
@@ -0,0 +1,247 @@ @@ -0,0 +1,247 @@
+/* +/*
+ * Sonics Silicon Backplane + * Sonics Silicon Backplane

@ -13,11 +13,9 @@ Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
--- ---
Index: linux-2.6.23.17/drivers/usb/host/ohci-ssb.c --- a/drivers/usb/host/ohci-ssb.c
=================================================================== +++ b/drivers/usb/host/ohci-ssb.c
--- linux-2.6.23.17.orig/drivers/usb/host/ohci-ssb.c @@ -117,8 +117,10 @@
+++ linux-2.6.23.17/drivers/usb/host/ohci-ssb.c
@@ -117,8 +117,10 @@ static const struct hc_driver ssb_ohci_h
.hub_status_data = ohci_hub_status_data, .hub_status_data = ohci_hub_status_data,
.hub_control = ohci_hub_control, .hub_control = ohci_hub_control,
.hub_irq_enable = ohci_rhsc_enable, .hub_irq_enable = ohci_rhsc_enable,

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/drivers/usb/host/ohci-ssb.c --- a/drivers/usb/host/ohci-ssb.c
=================================================================== +++ b/drivers/usb/host/ohci-ssb.c
--- linux-2.6.23.17.orig/drivers/usb/host/ohci-ssb.c @@ -142,10 +142,59 @@
+++ linux-2.6.23.17/drivers/usb/host/ohci-ssb.c
@@ -142,10 +142,59 @@ static int ssb_ohci_attach(struct ssb_de
int err = -ENOMEM; int err = -ENOMEM;
u32 tmp, flags = 0; u32 tmp, flags = 0;
@ -64,7 +62,7 @@ Index: linux-2.6.23.17/drivers/usb/host/ohci-ssb.c
hcd = usb_create_hcd(&ssb_ohci_hc_driver, dev->dev, hcd = usb_create_hcd(&ssb_ohci_hc_driver, dev->dev,
dev->dev->bus_id); dev->dev->bus_id);
@@ -235,6 +284,7 @@ static int ssb_ohci_resume(struct ssb_de @@ -235,6 +284,7 @@
static const struct ssb_device_id ssb_ohci_table[] = { static const struct ssb_device_id ssb_ohci_table[] = {
SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_USB11_HOSTDEV, SSB_ANY_REV), SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_USB11_HOSTDEV, SSB_ANY_REV),
SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_USB11_HOST, SSB_ANY_REV), SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_USB11_HOST, SSB_ANY_REV),

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/drivers/usb/host/ohci-ssb.c --- a/drivers/usb/host/ohci-ssb.c
=================================================================== +++ b/drivers/usb/host/ohci-ssb.c
--- linux-2.6.23.17.orig/drivers/usb/host/ohci-ssb.c @@ -195,6 +195,11 @@
+++ linux-2.6.23.17/drivers/usb/host/ohci-ssb.c
@@ -195,6 +195,11 @@ static int ssb_ohci_attach(struct ssb_de
else else
ssb_device_enable(dev, 0); ssb_device_enable(dev, 0);

@ -1,7 +1,5 @@
Index: linux-2.6.23.17/include/asm-mips/cacheflush.h --- a/include/asm-mips/cacheflush.h
=================================================================== +++ b/include/asm-mips/cacheflush.h
--- linux-2.6.23.17.orig/include/asm-mips/cacheflush.h
+++ linux-2.6.23.17/include/asm-mips/cacheflush.h
@@ -32,7 +32,7 @@ @@ -32,7 +32,7 @@
extern void (*flush_cache_all)(void); extern void (*flush_cache_all)(void);
extern void (*__flush_cache_all)(void); extern void (*__flush_cache_all)(void);

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/arch/mips/mm/init.c --- a/arch/mips/mm/init.c
=================================================================== +++ b/arch/mips/mm/init.c
--- linux-2.6.23.17.orig/arch/mips/mm/init.c @@ -205,31 +205,6 @@
+++ linux-2.6.23.17/arch/mips/mm/init.c
@@ -205,31 +205,6 @@ void kunmap_coherent(void)
preempt_check_resched(); preempt_check_resched();
} }
@ -34,10 +32,8 @@ Index: linux-2.6.23.17/arch/mips/mm/init.c
void copy_to_user_page(struct vm_area_struct *vma, void copy_to_user_page(struct vm_area_struct *vma,
struct page *page, unsigned long vaddr, void *dst, const void *src, struct page *page, unsigned long vaddr, void *dst, const void *src,
unsigned long len) unsigned long len)
Index: linux-2.6.23.17/include/asm-mips/page.h --- a/include/asm-mips/page.h
=================================================================== +++ b/include/asm-mips/page.h
--- linux-2.6.23.17.orig/include/asm-mips/page.h
+++ linux-2.6.23.17/include/asm-mips/page.h
@@ -35,6 +35,7 @@ @@ -35,6 +35,7 @@
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
@ -46,7 +42,7 @@ Index: linux-2.6.23.17/include/asm-mips/page.h
#include <asm/io.h> #include <asm/io.h>
/* /*
@@ -67,13 +68,16 @@ static inline void clear_user_page(void @@ -67,13 +68,16 @@
flush_data_cache_page((unsigned long)addr); flush_data_cache_page((unsigned long)addr);
} }

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/drivers/ide/pci/aec62xx.c --- a/drivers/ide/pci/aec62xx.c
=================================================================== +++ b/drivers/ide/pci/aec62xx.c
--- linux-2.6.23.17.orig/drivers/ide/pci/aec62xx.c @@ -248,7 +248,14 @@
+++ linux-2.6.23.17/drivers/ide/pci/aec62xx.c
@@ -248,7 +248,14 @@ static int __devinit init_setup_aec62xx(
static int __devinit init_setup_aec6x80(struct pci_dev *dev, ide_pci_device_t *d) static int __devinit init_setup_aec6x80(struct pci_dev *dev, ide_pci_device_t *d)
{ {
@ -18,7 +16,7 @@ Index: linux-2.6.23.17/drivers/ide/pci/aec62xx.c
if (inb(dma_base + 2) & 0x10) { if (inb(dma_base + 2) & 0x10) {
d->name = (dev->device == PCI_DEVICE_ID_ARTOP_ATP865R) ? d->name = (dev->device == PCI_DEVICE_ID_ARTOP_ATP865R) ?
@@ -256,7 +263,11 @@ static int __devinit init_setup_aec6x80( @@ -256,7 +263,11 @@
d->udma_mask = 0x7f; /* udma0-6 */ d->udma_mask = 0x7f; /* udma0-6 */
} }

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/scripts/gen_initramfs_list.sh --- a/scripts/gen_initramfs_list.sh
=================================================================== +++ b/scripts/gen_initramfs_list.sh
--- linux-2.6.23.17.orig/scripts/gen_initramfs_list.sh @@ -287,7 +287,7 @@
+++ linux-2.6.23.17/scripts/gen_initramfs_list.sh
@@ -287,7 +287,7 @@ if [ ! -z ${output_file} ]; then
if [ "${is_cpio_compressed}" = "compressed" ]; then if [ "${is_cpio_compressed}" = "compressed" ]; then
cat ${cpio_tfile} > ${output_file} cat ${cpio_tfile} > ${output_file}
else else
@ -11,11 +9,9 @@ Index: linux-2.6.23.17/scripts/gen_initramfs_list.sh
fi fi
[ -z ${cpio_file} ] && rm ${cpio_tfile} [ -z ${cpio_file} ] && rm ${cpio_tfile}
fi fi
Index: linux-2.6.23.17/init/initramfs.c --- a/init/initramfs.c
=================================================================== +++ b/init/initramfs.c
--- linux-2.6.23.17.orig/init/initramfs.c @@ -441,6 +441,69 @@
+++ linux-2.6.23.17/init/initramfs.c
@@ -441,6 +441,69 @@ static void __init flush_window(void)
outcnt = 0; outcnt = 0;
} }
@ -85,7 +81,7 @@ Index: linux-2.6.23.17/init/initramfs.c
static char * __init unpack_to_rootfs(char *buf, unsigned len, int check_only) static char * __init unpack_to_rootfs(char *buf, unsigned len, int check_only)
{ {
int written; int written;
@@ -475,12 +538,28 @@ static char * __init unpack_to_rootfs(ch @@ -475,12 +538,28 @@
inptr = 0; inptr = 0;
outcnt = 0; /* bytes in output buffer */ outcnt = 0; /* bytes in output buffer */
bytes_out = 0; bytes_out = 0;

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/drivers/ssb/driver_pcicore.c --- a/drivers/ssb/driver_pcicore.c
=================================================================== +++ b/drivers/ssb/driver_pcicore.c
--- linux-2.6.23.17.orig/drivers/ssb/driver_pcicore.c @@ -66,6 +66,7 @@
+++ linux-2.6.23.17/drivers/ssb/driver_pcicore.c
@@ -66,6 +66,7 @@ int pcibios_plat_dev_init(struct pci_dev
base = &ssb_pcicore_pcibus_iobase; base = &ssb_pcicore_pcibus_iobase;
else else
base = &ssb_pcicore_pcibus_membase; base = &ssb_pcicore_pcibus_membase;
@ -10,7 +8,7 @@ Index: linux-2.6.23.17/drivers/ssb/driver_pcicore.c
if (res->end) { if (res->end) {
size = res->end - res->start + 1; size = res->end - res->start + 1;
if (*base & (size - 1)) if (*base & (size - 1))
@@ -88,10 +89,12 @@ int pcibios_plat_dev_init(struct pci_dev @@ -88,10 +89,12 @@
static void __init ssb_fixup_pcibridge(struct pci_dev *dev) static void __init ssb_fixup_pcibridge(struct pci_dev *dev)
{ {
@ -24,7 +22,7 @@ Index: linux-2.6.23.17/drivers/ssb/driver_pcicore.c
/* Enable PCI bridge bus mastering and memory space */ /* Enable PCI bridge bus mastering and memory space */
pci_set_master(dev); pci_set_master(dev);
@@ -101,7 +104,10 @@ static void __init ssb_fixup_pcibridge(s @@ -101,7 +104,10 @@
pci_write_config_dword(dev, SSB_BAR1_CONTROL, 3); pci_write_config_dword(dev, SSB_BAR1_CONTROL, 3);
/* Make sure our latency is high enough to handle the devices behind us */ /* Make sure our latency is high enough to handle the devices behind us */
@ -36,7 +34,7 @@ Index: linux-2.6.23.17/drivers/ssb/driver_pcicore.c
} }
DECLARE_PCI_FIXUP_EARLY(PCI_ANY_ID, PCI_ANY_ID, ssb_fixup_pcibridge); DECLARE_PCI_FIXUP_EARLY(PCI_ANY_ID, PCI_ANY_ID, ssb_fixup_pcibridge);
@@ -279,14 +285,14 @@ static struct resource ssb_pcicore_mem_r @@ -279,14 +285,14 @@
.name = "SSB PCIcore external memory", .name = "SSB PCIcore external memory",
.start = SSB_PCI_DMA, .start = SSB_PCI_DMA,
.end = SSB_PCI_DMA + SSB_PCI_DMA_SZ - 1, .end = SSB_PCI_DMA + SSB_PCI_DMA_SZ - 1,
@ -53,7 +51,7 @@ Index: linux-2.6.23.17/drivers/ssb/driver_pcicore.c
}; };
static struct pci_controller ssb_pcicore_controller = { static struct pci_controller ssb_pcicore_controller = {
@@ -344,7 +350,8 @@ static void ssb_pcicore_init_hostmode(st @@ -344,7 +350,8 @@
/* Ok, ready to run, register it to the system. /* Ok, ready to run, register it to the system.
* The following needs change, if we want to port hostmode * The following needs change, if we want to port hostmode
* to non-MIPS platform. */ * to non-MIPS platform. */

@ -2,11 +2,9 @@ The SSB pcicore driver does create some MMIO resource collisions.
However, the pcicore PCI-fixup routine fixes these collisions afterwards. However, the pcicore PCI-fixup routine fixes these collisions afterwards.
Remove this sanity check for now until we find a better solution. Remove this sanity check for now until we find a better solution.
--mb --mb
Index: linux-2.6.23.17/arch/mips/pci/pci.c --- a/arch/mips/pci/pci.c
=================================================================== +++ b/arch/mips/pci/pci.c
--- linux-2.6.23.17.orig/arch/mips/pci/pci.c @@ -177,10 +177,8 @@
+++ linux-2.6.23.17/arch/mips/pci/pci.c
@@ -177,10 +177,8 @@ static int pcibios_enable_resources(stru
continue; continue;
r = &dev->resource[idx]; r = &dev->resource[idx];

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/drivers/ssb/driver_chipcommon.c --- a/drivers/ssb/driver_chipcommon.c
=================================================================== +++ b/drivers/ssb/driver_chipcommon.c
--- linux-2.6.23.17.orig/drivers/ssb/driver_chipcommon.c @@ -403,6 +403,7 @@
+++ linux-2.6.23.17/drivers/ssb/driver_chipcommon.c
@@ -403,6 +403,7 @@ int ssb_chipco_serial_init(struct ssb_ch
unsigned int irq; unsigned int irq;
u32 baud_base, div; u32 baud_base, div;
u32 i, n; u32 i, n;
@ -10,7 +8,7 @@ Index: linux-2.6.23.17/drivers/ssb/driver_chipcommon.c
plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT); plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT);
irq = ssb_mips_irq(cc->dev); irq = ssb_mips_irq(cc->dev);
@@ -414,14 +415,39 @@ int ssb_chipco_serial_init(struct ssb_ch @@ -414,14 +415,39 @@
chipco_read32(cc, SSB_CHIPCO_CLOCK_M2)); chipco_read32(cc, SSB_CHIPCO_CLOCK_M2));
div = 1; div = 1;
} else { } else {
@ -53,7 +51,7 @@ Index: linux-2.6.23.17/drivers/ssb/driver_chipcommon.c
/* Internal backplane clock */ /* Internal backplane clock */
baud_base = ssb_clockspeed(bus); baud_base = ssb_clockspeed(bus);
div = chipco_read32(cc, SSB_CHIPCO_CLKDIV) div = chipco_read32(cc, SSB_CHIPCO_CLKDIV)
@@ -433,7 +459,7 @@ int ssb_chipco_serial_init(struct ssb_ch @@ -433,7 +459,7 @@
} }
/* Clock source depends on strapping if UartClkOverride is unset */ /* Clock source depends on strapping if UartClkOverride is unset */
@ -62,7 +60,7 @@ Index: linux-2.6.23.17/drivers/ssb/driver_chipcommon.c
!(chipco_read32(cc, SSB_CHIPCO_CORECTL) & SSB_CHIPCO_CORECTL_UARTCLK0)) { !(chipco_read32(cc, SSB_CHIPCO_CORECTL) & SSB_CHIPCO_CORECTL_UARTCLK0)) {
if ((cc->capabilities & SSB_CHIPCO_CAP_UARTCLK) == if ((cc->capabilities & SSB_CHIPCO_CAP_UARTCLK) ==
SSB_CHIPCO_CAP_UARTCLK_INT) { SSB_CHIPCO_CAP_UARTCLK_INT) {
@@ -455,7 +481,7 @@ int ssb_chipco_serial_init(struct ssb_ch @@ -455,7 +481,7 @@
cc_mmio = cc->dev->bus->mmio + (cc->dev->core_index * SSB_CORE_SIZE); cc_mmio = cc->dev->bus->mmio + (cc->dev->core_index * SSB_CORE_SIZE);
uart_regs = cc_mmio + SSB_CHIPCO_UART0_DATA; uart_regs = cc_mmio + SSB_CHIPCO_UART0_DATA;
/* Offset changed at after rev 0 */ /* Offset changed at after rev 0 */
@ -71,10 +69,8 @@ Index: linux-2.6.23.17/drivers/ssb/driver_chipcommon.c
uart_regs += (i * 8); uart_regs += (i * 8);
else else
uart_regs += (i * 256); uart_regs += (i * 256);
Index: linux-2.6.23.17/include/linux/ssb/ssb_driver_chipcommon.h --- a/include/linux/ssb/ssb_driver_chipcommon.h
=================================================================== +++ b/include/linux/ssb/ssb_driver_chipcommon.h
--- linux-2.6.23.17.orig/include/linux/ssb/ssb_driver_chipcommon.h
+++ linux-2.6.23.17/include/linux/ssb/ssb_driver_chipcommon.h
@@ -51,9 +51,12 @@ @@ -51,9 +51,12 @@
#define SSB_CHIPCO_CAP_JTAGM 0x00400000 /* JTAG master present */ #define SSB_CHIPCO_CAP_JTAGM 0x00400000 /* JTAG master present */
#define SSB_CHIPCO_CAP_BROM 0x00800000 /* Internal boot ROM active */ #define SSB_CHIPCO_CAP_BROM 0x00800000 /* Internal boot ROM active */

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/drivers/ssb/Kconfig --- a/drivers/ssb/Kconfig
=================================================================== +++ b/drivers/ssb/Kconfig
--- linux-2.6.23.17.orig/drivers/ssb/Kconfig @@ -105,6 +105,12 @@
+++ linux-2.6.23.17/drivers/ssb/Kconfig
@@ -105,6 +105,12 @@ config SSB_DRIVER_MIPS
If unsure, say N If unsure, say N
@ -15,10 +13,8 @@ Index: linux-2.6.23.17/drivers/ssb/Kconfig
config SSB_DRIVER_EXTIF config SSB_DRIVER_EXTIF
bool "SSB Broadcom EXTIF core driver (EXPERIMENTAL)" bool "SSB Broadcom EXTIF core driver (EXPERIMENTAL)"
depends on SSB_DRIVER_MIPS && EXPERIMENTAL depends on SSB_DRIVER_MIPS && EXPERIMENTAL
Index: linux-2.6.23.17/drivers/ssb/Makefile --- a/drivers/ssb/Makefile
=================================================================== +++ b/drivers/ssb/Makefile
--- linux-2.6.23.17.orig/drivers/ssb/Makefile
+++ linux-2.6.23.17/drivers/ssb/Makefile
@@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
# core # core
ssb-y += main.o scan.o ssb-y += main.o scan.o
@ -26,11 +22,9 @@ Index: linux-2.6.23.17/drivers/ssb/Makefile
# host support # host support
ssb-$(CONFIG_SSB_PCIHOST) += pci.o pcihost_wrapper.o ssb-$(CONFIG_SSB_PCIHOST) += pci.o pcihost_wrapper.o
Index: linux-2.6.23.17/drivers/ssb/driver_extif.c --- a/drivers/ssb/driver_extif.c
=================================================================== +++ b/drivers/ssb/driver_extif.c
--- linux-2.6.23.17.orig/drivers/ssb/driver_extif.c @@ -37,6 +37,12 @@
+++ linux-2.6.23.17/drivers/ssb/driver_extif.c
@@ -37,6 +37,12 @@ static inline u32 extif_write32_masked(s
return value; return value;
} }
@ -43,10 +37,8 @@ Index: linux-2.6.23.17/drivers/ssb/driver_extif.c
#ifdef CONFIG_SSB_SERIAL #ifdef CONFIG_SSB_SERIAL
static bool serial_exists(u8 *regs) static bool serial_exists(u8 *regs)
{ {
Index: linux-2.6.23.17/drivers/ssb/embedded.c
===================================================================
--- /dev/null --- /dev/null
+++ linux-2.6.23.17/drivers/ssb/embedded.c +++ b/drivers/ssb/embedded.c
@@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
+/* +/*
+ * Sonics Silicon Backplane + * Sonics Silicon Backplane
@ -74,11 +66,9 @@ Index: linux-2.6.23.17/drivers/ssb/embedded.c
+ } + }
+ return -ENODEV; + return -ENODEV;
+} +}
Index: linux-2.6.23.17/include/linux/ssb/ssb_driver_chipcommon.h --- a/include/linux/ssb/ssb_driver_chipcommon.h
=================================================================== +++ b/include/linux/ssb/ssb_driver_chipcommon.h
--- linux-2.6.23.17.orig/include/linux/ssb/ssb_driver_chipcommon.h @@ -360,6 +360,11 @@
+++ linux-2.6.23.17/include/linux/ssb/ssb_driver_chipcommon.h
@@ -360,6 +360,11 @@ struct ssb_chipcommon {
u16 fast_pwrup_delay; u16 fast_pwrup_delay;
}; };
@ -90,11 +80,9 @@ Index: linux-2.6.23.17/include/linux/ssb/ssb_driver_chipcommon.h
extern void ssb_chipcommon_init(struct ssb_chipcommon *cc); extern void ssb_chipcommon_init(struct ssb_chipcommon *cc);
#include <linux/pm.h> #include <linux/pm.h>
Index: linux-2.6.23.17/include/linux/ssb/ssb_driver_extif.h --- a/include/linux/ssb/ssb_driver_extif.h
=================================================================== +++ b/include/linux/ssb/ssb_driver_extif.h
--- linux-2.6.23.17.orig/include/linux/ssb/ssb_driver_extif.h @@ -178,6 +178,9 @@
+++ linux-2.6.23.17/include/linux/ssb/ssb_driver_extif.h
@@ -178,6 +178,9 @@ u32 ssb_extif_gpio_outen(struct ssb_exti
u32 ssb_extif_gpio_polarity(struct ssb_extif *extif, u32 mask, u32 value); u32 ssb_extif_gpio_polarity(struct ssb_extif *extif, u32 mask, u32 value);
u32 ssb_extif_gpio_intmask(struct ssb_extif *extif, u32 mask, u32 value); u32 ssb_extif_gpio_intmask(struct ssb_extif *extif, u32 mask, u32 value);
@ -104,7 +92,7 @@ Index: linux-2.6.23.17/include/linux/ssb/ssb_driver_extif.h
#ifdef CONFIG_SSB_SERIAL #ifdef CONFIG_SSB_SERIAL
extern int ssb_extif_serial_init(struct ssb_extif *extif, extern int ssb_extif_serial_init(struct ssb_extif *extif,
struct ssb_serial_port *ports); struct ssb_serial_port *ports);
@@ -201,5 +204,11 @@ void ssb_extif_get_clockcontrol(struct s @@ -201,5 +204,11 @@
{ {
} }
@ -116,10 +104,8 @@ Index: linux-2.6.23.17/include/linux/ssb/ssb_driver_extif.h
+ +
#endif /* CONFIG_SSB_DRIVER_EXTIF */ #endif /* CONFIG_SSB_DRIVER_EXTIF */
#endif /* LINUX_SSB_EXTIFCORE_H_ */ #endif /* LINUX_SSB_EXTIFCORE_H_ */
Index: linux-2.6.23.17/include/linux/ssb/ssb_embedded.h
===================================================================
--- /dev/null --- /dev/null
+++ linux-2.6.23.17/include/linux/ssb/ssb_embedded.h +++ b/include/linux/ssb/ssb_embedded.h
@@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
+#ifndef LINUX_SSB_EMBEDDED_H_ +#ifndef LINUX_SSB_EMBEDDED_H_
+#define LINUX_SSB_EMBEDDED_H_ +#define LINUX_SSB_EMBEDDED_H_

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/drivers/ssb/main.c --- a/drivers/ssb/main.c
=================================================================== +++ b/drivers/ssb/main.c
--- linux-2.6.23.17.orig/drivers/ssb/main.c @@ -1163,7 +1163,9 @@
+++ linux-2.6.23.17/drivers/ssb/main.c
@@ -1163,7 +1163,9 @@ static int __init ssb_modinit(void)
/* ssb must be initialized after PCI but before the ssb drivers. /* ssb must be initialized after PCI but before the ssb drivers.
* That means we must use some initcall between subsys_initcall * That means we must use some initcall between subsys_initcall
* and device_initcall. */ * and device_initcall. */

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/drivers/ssb/driver_chipcommon.c --- a/drivers/ssb/driver_chipcommon.c
=================================================================== +++ b/drivers/ssb/driver_chipcommon.c
--- linux-2.6.23.17.orig/drivers/ssb/driver_chipcommon.c @@ -361,37 +361,31 @@
+++ linux-2.6.23.17/drivers/ssb/driver_chipcommon.c
@@ -361,37 +361,31 @@ u32 ssb_chipco_gpio_in(struct ssb_chipco
{ {
return chipco_read32(cc, SSB_CHIPCO_GPIOIN) & mask; return chipco_read32(cc, SSB_CHIPCO_GPIOIN) & mask;
} }
@ -40,11 +38,9 @@ Index: linux-2.6.23.17/drivers/ssb/driver_chipcommon.c
#ifdef CONFIG_SSB_SERIAL #ifdef CONFIG_SSB_SERIAL
int ssb_chipco_serial_init(struct ssb_chipcommon *cc, int ssb_chipco_serial_init(struct ssb_chipcommon *cc,
Index: linux-2.6.23.17/drivers/ssb/driver_extif.c --- a/drivers/ssb/driver_extif.c
=================================================================== +++ b/drivers/ssb/driver_extif.c
--- linux-2.6.23.17.orig/drivers/ssb/driver_extif.c @@ -122,30 +122,25 @@
+++ linux-2.6.23.17/drivers/ssb/driver_extif.c
@@ -122,30 +122,25 @@ u32 ssb_extif_gpio_in(struct ssb_extif *
{ {
return extif_read32(extif, SSB_EXTIF_GPIO_IN) & mask; return extif_read32(extif, SSB_EXTIF_GPIO_IN) & mask;
} }
@ -75,10 +71,8 @@ Index: linux-2.6.23.17/drivers/ssb/driver_extif.c
return extif_write32_masked(extif, SSB_EXTIF_GPIO_INTMASK, mask, value); return extif_write32_masked(extif, SSB_EXTIF_GPIO_INTMASK, mask, value);
} }
-EXPORT_SYMBOL(ssb_extif_gpio_intmask); -EXPORT_SYMBOL(ssb_extif_gpio_intmask);
Index: linux-2.6.23.17/drivers/ssb/embedded.c --- a/drivers/ssb/embedded.c
=================================================================== +++ b/drivers/ssb/embedded.c
--- linux-2.6.23.17.orig/drivers/ssb/embedded.c
+++ linux-2.6.23.17/drivers/ssb/embedded.c
@@ -11,6 +11,8 @@ @@ -11,6 +11,8 @@
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
#include <linux/ssb/ssb_embedded.h> #include <linux/ssb/ssb_embedded.h>
@ -88,7 +82,7 @@ Index: linux-2.6.23.17/drivers/ssb/embedded.c
int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks) int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks)
{ {
@@ -24,3 +26,107 @@ int ssb_watchdog_timer_set(struct ssb_bu @@ -24,3 +26,107 @@
} }
return -ENODEV; return -ENODEV;
} }
@ -196,11 +190,9 @@ Index: linux-2.6.23.17/drivers/ssb/embedded.c
+ return res; + return res;
+} +}
+EXPORT_SYMBOL(ssb_gpio_polarity); +EXPORT_SYMBOL(ssb_gpio_polarity);
Index: linux-2.6.23.17/include/linux/ssb/ssb.h --- a/include/linux/ssb/ssb.h
=================================================================== +++ b/include/linux/ssb/ssb.h
--- linux-2.6.23.17.orig/include/linux/ssb/ssb.h @@ -283,6 +283,11 @@
+++ linux-2.6.23.17/include/linux/ssb/ssb.h
@@ -283,6 +283,11 @@ struct ssb_bus {
/* Contents of the SPROM. */ /* Contents of the SPROM. */
struct ssb_sprom sprom; struct ssb_sprom sprom;
@ -212,10 +204,8 @@ Index: linux-2.6.23.17/include/linux/ssb/ssb.h
/* Internal-only stuff follows. Do not touch. */ /* Internal-only stuff follows. Do not touch. */
struct list_head list; struct list_head list;
#ifdef CONFIG_SSB_DEBUG #ifdef CONFIG_SSB_DEBUG
Index: linux-2.6.23.17/include/linux/ssb/ssb_embedded.h --- a/include/linux/ssb/ssb_embedded.h
=================================================================== +++ b/include/linux/ssb/ssb_embedded.h
--- linux-2.6.23.17.orig/include/linux/ssb/ssb_embedded.h
+++ linux-2.6.23.17/include/linux/ssb/ssb_embedded.h
@@ -7,4 +7,12 @@ @@ -7,4 +7,12 @@
extern int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks); extern int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks);
@ -229,11 +219,9 @@ Index: linux-2.6.23.17/include/linux/ssb/ssb_embedded.h
+u32 ssb_gpio_polarity(struct ssb_bus *bus, u32 mask, u32 value); +u32 ssb_gpio_polarity(struct ssb_bus *bus, u32 mask, u32 value);
+ +
#endif /* LINUX_SSB_EMBEDDED_H_ */ #endif /* LINUX_SSB_EMBEDDED_H_ */
Index: linux-2.6.23.17/drivers/ssb/main.c --- a/drivers/ssb/main.c
=================================================================== +++ b/drivers/ssb/main.c
--- linux-2.6.23.17.orig/drivers/ssb/main.c @@ -571,6 +571,9 @@
+++ linux-2.6.23.17/drivers/ssb/main.c
@@ -571,6 +571,9 @@ static int ssb_bus_register(struct ssb_b
spin_lock_init(&bus->bar_lock); spin_lock_init(&bus->bar_lock);
INIT_LIST_HEAD(&bus->list); INIT_LIST_HEAD(&bus->list);

@ -1,7 +1,5 @@
Index: linux-2.6.23.17/drivers/ssb/driver_pcicore.c --- a/drivers/ssb/driver_pcicore.c
=================================================================== +++ b/drivers/ssb/driver_pcicore.c
--- linux-2.6.23.17.orig/drivers/ssb/driver_pcicore.c
+++ linux-2.6.23.17/drivers/ssb/driver_pcicore.c
@@ -11,6 +11,7 @@ @@ -11,6 +11,7 @@
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
#include <linux/pci.h> #include <linux/pci.h>
@ -10,7 +8,7 @@ Index: linux-2.6.23.17/drivers/ssb/driver_pcicore.c
#include "ssb_private.h" #include "ssb_private.h"
@@ -27,6 +28,18 @@ void pcicore_write32(struct ssb_pcicore @@ -27,6 +28,18 @@
ssb_write32(pc->dev, offset, value); ssb_write32(pc->dev, offset, value);
} }
@ -29,7 +27,7 @@ Index: linux-2.6.23.17/drivers/ssb/driver_pcicore.c
/************************************************** /**************************************************
* Code for hostmode operation. * Code for hostmode operation.
**************************************************/ **************************************************/
@@ -123,8 +136,10 @@ static u32 get_cfgspace_addr(struct ssb_ @@ -123,8 +136,10 @@
u32 addr = 0; u32 addr = 0;
u32 tmp; u32 tmp;
@ -41,7 +39,7 @@ Index: linux-2.6.23.17/drivers/ssb/driver_pcicore.c
if (bus == 0) { if (bus == 0) {
/* Type 0 transaction */ /* Type 0 transaction */
if (unlikely(dev >= SSB_PCI_SLOT_MAX)) if (unlikely(dev >= SSB_PCI_SLOT_MAX))
@@ -324,7 +339,16 @@ static void ssb_pcicore_init_hostmode(st @@ -324,7 +339,16 @@
pcicore_write32(pc, SSB_PCICORE_ARBCTL, val); pcicore_write32(pc, SSB_PCICORE_ARBCTL, val);
udelay(1); /* Assertion time demanded by the PCI standard */ udelay(1); /* Assertion time demanded by the PCI standard */
@ -59,11 +57,9 @@ Index: linux-2.6.23.17/drivers/ssb/driver_pcicore.c
/* 64MB I/O window */ /* 64MB I/O window */
pcicore_write32(pc, SSB_PCICORE_SBTOPCI0, pcicore_write32(pc, SSB_PCICORE_SBTOPCI0,
Index: linux-2.6.23.17/drivers/ssb/main.c --- a/drivers/ssb/main.c
=================================================================== +++ b/drivers/ssb/main.c
--- linux-2.6.23.17.orig/drivers/ssb/main.c @@ -559,6 +559,7 @@
+++ linux-2.6.23.17/drivers/ssb/main.c
@@ -559,6 +559,7 @@ static int ssb_fetch_invariants(struct s
goto out; goto out;
memcpy(&bus->boardinfo, &iv.boardinfo, sizeof(iv.boardinfo)); memcpy(&bus->boardinfo, &iv.boardinfo, sizeof(iv.boardinfo));
memcpy(&bus->sprom, &iv.sprom, sizeof(iv.sprom)); memcpy(&bus->sprom, &iv.sprom, sizeof(iv.sprom));
@ -71,11 +67,9 @@ Index: linux-2.6.23.17/drivers/ssb/main.c
out: out:
return err; return err;
} }
Index: linux-2.6.23.17/include/linux/ssb/ssb.h --- a/include/linux/ssb/ssb.h
=================================================================== +++ b/include/linux/ssb/ssb.h
--- linux-2.6.23.17.orig/include/linux/ssb/ssb.h @@ -282,6 +282,8 @@
+++ linux-2.6.23.17/include/linux/ssb/ssb.h
@@ -282,6 +282,8 @@ struct ssb_bus {
struct ssb_boardinfo boardinfo; struct ssb_boardinfo boardinfo;
/* Contents of the SPROM. */ /* Contents of the SPROM. */
struct ssb_sprom sprom; struct ssb_sprom sprom;
@ -84,7 +78,7 @@ Index: linux-2.6.23.17/include/linux/ssb/ssb.h
#ifdef CONFIG_SSB_EMBEDDED #ifdef CONFIG_SSB_EMBEDDED
/* Lock for GPIO register access. */ /* Lock for GPIO register access. */
@@ -299,8 +301,13 @@ struct ssb_bus { @@ -299,8 +301,13 @@
/* The initialization-invariants. */ /* The initialization-invariants. */
struct ssb_init_invariants { struct ssb_init_invariants {
@ -98,10 +92,8 @@ Index: linux-2.6.23.17/include/linux/ssb/ssb.h
}; };
/* Type of function to fetch the invariants. */ /* Type of function to fetch the invariants. */
typedef int (*ssb_invariants_func_t)(struct ssb_bus *bus, typedef int (*ssb_invariants_func_t)(struct ssb_bus *bus,
Index: linux-2.6.23.17/include/linux/ssb/ssb_driver_pci.h --- a/include/linux/ssb/ssb_driver_pci.h
=================================================================== +++ b/include/linux/ssb/ssb_driver_pci.h
--- linux-2.6.23.17.orig/include/linux/ssb/ssb_driver_pci.h
+++ linux-2.6.23.17/include/linux/ssb/ssb_driver_pci.h
@@ -51,6 +51,11 @@ @@ -51,6 +51,11 @@
#define SSB_PCICORE_SBTOPCI1_MASK 0xFC000000 #define SSB_PCICORE_SBTOPCI1_MASK 0xFC000000
#define SSB_PCICORE_SBTOPCI2 0x0108 /* Backplane to PCI translation 2 (sbtopci2) */ #define SSB_PCICORE_SBTOPCI2 0x0108 /* Backplane to PCI translation 2 (sbtopci2) */

@ -1,9 +1,7 @@
Add support for 8bit reads/writes to SSB. Add support for 8bit reads/writes to SSB.
Index: linux-2.6.23.17/drivers/ssb/main.c --- a/drivers/ssb/main.c
=================================================================== +++ b/drivers/ssb/main.c
--- linux-2.6.23.17.orig/drivers/ssb/main.c @@ -507,6 +507,14 @@
+++ linux-2.6.23.17/drivers/ssb/main.c
@@ -507,6 +507,14 @@ error:
return err; return err;
} }
@ -18,7 +16,7 @@ Index: linux-2.6.23.17/drivers/ssb/main.c
static u16 ssb_ssb_read16(struct ssb_device *dev, u16 offset) static u16 ssb_ssb_read16(struct ssb_device *dev, u16 offset)
{ {
struct ssb_bus *bus = dev->bus; struct ssb_bus *bus = dev->bus;
@@ -523,6 +531,14 @@ static u32 ssb_ssb_read32(struct ssb_dev @@ -523,6 +531,14 @@
return readl(bus->mmio + offset); return readl(bus->mmio + offset);
} }
@ -33,7 +31,7 @@ Index: linux-2.6.23.17/drivers/ssb/main.c
static void ssb_ssb_write16(struct ssb_device *dev, u16 offset, u16 value) static void ssb_ssb_write16(struct ssb_device *dev, u16 offset, u16 value)
{ {
struct ssb_bus *bus = dev->bus; struct ssb_bus *bus = dev->bus;
@@ -541,8 +557,10 @@ static void ssb_ssb_write32(struct ssb_d @@ -541,8 +557,10 @@
/* Ops for the plain SSB bus without a host-device (no PCI or PCMCIA). */ /* Ops for the plain SSB bus without a host-device (no PCI or PCMCIA). */
static const struct ssb_bus_ops ssb_ssb_ops = { static const struct ssb_bus_ops ssb_ssb_ops = {
@ -44,11 +42,9 @@ Index: linux-2.6.23.17/drivers/ssb/main.c
.write16 = ssb_ssb_write16, .write16 = ssb_ssb_write16,
.write32 = ssb_ssb_write32, .write32 = ssb_ssb_write32,
}; };
Index: linux-2.6.23.17/drivers/ssb/pci.c --- a/drivers/ssb/pci.c
=================================================================== +++ b/drivers/ssb/pci.c
--- linux-2.6.23.17.orig/drivers/ssb/pci.c @@ -572,6 +572,19 @@
+++ linux-2.6.23.17/drivers/ssb/pci.c
@@ -572,6 +572,19 @@ static inline int ssb_pci_assert_buspowe
} }
#endif /* DEBUG */ #endif /* DEBUG */
@ -68,7 +64,7 @@ Index: linux-2.6.23.17/drivers/ssb/pci.c
static u16 ssb_pci_read16(struct ssb_device *dev, u16 offset) static u16 ssb_pci_read16(struct ssb_device *dev, u16 offset)
{ {
struct ssb_bus *bus = dev->bus; struct ssb_bus *bus = dev->bus;
@@ -598,6 +611,19 @@ static u32 ssb_pci_read32(struct ssb_dev @@ -598,6 +611,19 @@
return ioread32(bus->mmio + offset); return ioread32(bus->mmio + offset);
} }
@ -88,7 +84,7 @@ Index: linux-2.6.23.17/drivers/ssb/pci.c
static void ssb_pci_write16(struct ssb_device *dev, u16 offset, u16 value) static void ssb_pci_write16(struct ssb_device *dev, u16 offset, u16 value)
{ {
struct ssb_bus *bus = dev->bus; struct ssb_bus *bus = dev->bus;
@@ -626,8 +652,10 @@ static void ssb_pci_write32(struct ssb_d @@ -626,8 +652,10 @@
/* Not "static", as it's used in main.c */ /* Not "static", as it's used in main.c */
const struct ssb_bus_ops ssb_pci_ops = { const struct ssb_bus_ops ssb_pci_ops = {
@ -99,11 +95,9 @@ Index: linux-2.6.23.17/drivers/ssb/pci.c
.write16 = ssb_pci_write16, .write16 = ssb_pci_write16,
.write32 = ssb_pci_write32, .write32 = ssb_pci_write32,
}; };
Index: linux-2.6.23.17/drivers/ssb/pcmcia.c --- a/drivers/ssb/pcmcia.c
=================================================================== +++ b/drivers/ssb/pcmcia.c
--- linux-2.6.23.17.orig/drivers/ssb/pcmcia.c @@ -172,6 +172,22 @@
+++ linux-2.6.23.17/drivers/ssb/pcmcia.c
@@ -172,6 +172,22 @@ static int select_core_and_segment(struc
return 0; return 0;
} }
@ -126,7 +120,7 @@ Index: linux-2.6.23.17/drivers/ssb/pcmcia.c
static u16 ssb_pcmcia_read16(struct ssb_device *dev, u16 offset) static u16 ssb_pcmcia_read16(struct ssb_device *dev, u16 offset)
{ {
struct ssb_bus *bus = dev->bus; struct ssb_bus *bus = dev->bus;
@@ -206,6 +222,20 @@ static u32 ssb_pcmcia_read32(struct ssb_ @@ -206,6 +222,20 @@
return (lo | (hi << 16)); return (lo | (hi << 16));
} }
@ -147,7 +141,7 @@ Index: linux-2.6.23.17/drivers/ssb/pcmcia.c
static void ssb_pcmcia_write16(struct ssb_device *dev, u16 offset, u16 value) static void ssb_pcmcia_write16(struct ssb_device *dev, u16 offset, u16 value)
{ {
struct ssb_bus *bus = dev->bus; struct ssb_bus *bus = dev->bus;
@@ -238,8 +268,10 @@ static void ssb_pcmcia_write32(struct ss @@ -238,8 +268,10 @@
/* Not "static", as it's used in main.c */ /* Not "static", as it's used in main.c */
const struct ssb_bus_ops ssb_pcmcia_ops = { const struct ssb_bus_ops ssb_pcmcia_ops = {
@ -158,11 +152,9 @@ Index: linux-2.6.23.17/drivers/ssb/pcmcia.c
.write16 = ssb_pcmcia_write16, .write16 = ssb_pcmcia_write16,
.write32 = ssb_pcmcia_write32, .write32 = ssb_pcmcia_write32,
}; };
Index: linux-2.6.23.17/include/linux/ssb/ssb.h --- a/include/linux/ssb/ssb.h
=================================================================== +++ b/include/linux/ssb/ssb.h
--- linux-2.6.23.17.orig/include/linux/ssb/ssb.h @@ -72,8 +72,10 @@
+++ linux-2.6.23.17/include/linux/ssb/ssb.h
@@ -72,8 +72,10 @@ struct ssb_device;
/* Lowlevel read/write operations on the device MMIO. /* Lowlevel read/write operations on the device MMIO.
* Internal, don't use that outside of ssb. */ * Internal, don't use that outside of ssb. */
struct ssb_bus_ops { struct ssb_bus_ops {
@ -173,7 +165,7 @@ Index: linux-2.6.23.17/include/linux/ssb/ssb.h
void (*write16)(struct ssb_device *dev, u16 offset, u16 value); void (*write16)(struct ssb_device *dev, u16 offset, u16 value);
void (*write32)(struct ssb_device *dev, u16 offset, u32 value); void (*write32)(struct ssb_device *dev, u16 offset, u32 value);
}; };
@@ -344,6 +346,10 @@ void ssb_device_disable(struct ssb_devic @@ -344,6 +346,10 @@
/* Device MMIO register read/write functions. */ /* Device MMIO register read/write functions. */
@ -184,7 +176,7 @@ Index: linux-2.6.23.17/include/linux/ssb/ssb.h
static inline u16 ssb_read16(struct ssb_device *dev, u16 offset) static inline u16 ssb_read16(struct ssb_device *dev, u16 offset)
{ {
return dev->ops->read16(dev, offset); return dev->ops->read16(dev, offset);
@@ -352,6 +358,10 @@ static inline u32 ssb_read32(struct ssb_ @@ -352,6 +358,10 @@
{ {
return dev->ops->read32(dev, offset); return dev->ops->read32(dev, offset);
} }

@ -1,10 +1,8 @@
Allow registering PCI devices after early boot. Allow registering PCI devices after early boot.
This is an ugly hack and needs to be rewritten before going upstream. This is an ugly hack and needs to be rewritten before going upstream.
Index: linux-2.6.23.17/arch/mips/pci/pci.c --- a/arch/mips/pci/pci.c
=================================================================== +++ b/arch/mips/pci/pci.c
--- linux-2.6.23.17.orig/arch/mips/pci/pci.c
+++ linux-2.6.23.17/arch/mips/pci/pci.c
@@ -21,6 +21,17 @@ @@ -21,6 +21,17 @@
*/ */
int pci_probe_only; int pci_probe_only;
@ -23,7 +21,7 @@ Index: linux-2.6.23.17/arch/mips/pci/pci.c
#define PCI_ASSIGN_ALL_BUSSES 1 #define PCI_ASSIGN_ALL_BUSSES 1
unsigned int pci_probe = PCI_ASSIGN_ALL_BUSSES; unsigned int pci_probe = PCI_ASSIGN_ALL_BUSSES;
@@ -75,8 +86,32 @@ pcibios_align_resource(void *data, struc @@ -75,8 +86,32 @@
res->start = start; res->start = start;
} }
@ -57,7 +55,7 @@ Index: linux-2.6.23.17/arch/mips/pci/pci.c
if (request_resource(&iomem_resource, hose->mem_resource) < 0) if (request_resource(&iomem_resource, hose->mem_resource) < 0)
goto out; goto out;
if (request_resource(&ioport_resource, hose->io_resource) < 0) { if (request_resource(&ioport_resource, hose->io_resource) < 0) {
@@ -84,9 +119,6 @@ void __devinit register_pci_controller(s @@ -84,9 +119,6 @@
goto out; goto out;
} }
@ -67,7 +65,7 @@ Index: linux-2.6.23.17/arch/mips/pci/pci.c
/* /*
* Do not panic here but later - this might hapen before console init. * Do not panic here but later - this might hapen before console init.
*/ */
@@ -94,41 +126,47 @@ void __devinit register_pci_controller(s @@ -94,41 +126,47 @@
printk(KERN_WARNING printk(KERN_WARNING
"registering PCI controller with io_map_base unset\n"); "registering PCI controller with io_map_base unset\n");
} }
@ -138,7 +136,7 @@ Index: linux-2.6.23.17/arch/mips/pci/pci.c
/* Scan all of the recorded PCI controllers. */ /* Scan all of the recorded PCI controllers. */
for (next_busno = 0, hose = hose_head; hose; hose = hose->next) { for (next_busno = 0, hose = hose_head; hose; hose = hose->next) {
@@ -157,6 +195,7 @@ static int __init pcibios_init(void) @@ -157,6 +195,7 @@
if (!pci_probe_only) if (!pci_probe_only)
pci_assign_unassigned_resources(); pci_assign_unassigned_resources();
pci_fixup_irqs(common_swizzle, pcibios_map_irq); pci_fixup_irqs(common_swizzle, pcibios_map_irq);
@ -146,11 +144,9 @@ Index: linux-2.6.23.17/arch/mips/pci/pci.c
return 0; return 0;
} }
Index: linux-2.6.23.17/drivers/ssb/main.c --- a/drivers/ssb/main.c
=================================================================== +++ b/drivers/ssb/main.c
--- linux-2.6.23.17.orig/drivers/ssb/main.c @@ -1185,9 +1185,7 @@
+++ linux-2.6.23.17/drivers/ssb/main.c
@@ -1185,9 +1185,7 @@ static int __init ssb_modinit(void)
/* ssb must be initialized after PCI but before the ssb drivers. /* ssb must be initialized after PCI but before the ssb drivers.
* That means we must use some initcall between subsys_initcall * That means we must use some initcall between subsys_initcall
* and device_initcall. */ * and device_initcall. */

@ -1,8 +1,6 @@
Index: linux-2.6.23.17/drivers/ssb/Kconfig --- a/drivers/ssb/Kconfig
=================================================================== +++ b/drivers/ssb/Kconfig
--- linux-2.6.23.17.orig/drivers/ssb/Kconfig @@ -120,4 +120,13 @@
+++ linux-2.6.23.17/drivers/ssb/Kconfig
@@ -120,4 +120,13 @@ config SSB_DRIVER_EXTIF
If unsure, say N If unsure, say N
@ -16,11 +14,9 @@ Index: linux-2.6.23.17/drivers/ssb/Kconfig
+ If unsure, say N + If unsure, say N
+ +
endmenu endmenu
Index: linux-2.6.23.17/drivers/ssb/Makefile --- a/drivers/ssb/Makefile
=================================================================== +++ b/drivers/ssb/Makefile
--- linux-2.6.23.17.orig/drivers/ssb/Makefile @@ -11,6 +11,7 @@
+++ linux-2.6.23.17/drivers/ssb/Makefile
@@ -11,6 +11,7 @@ ssb-y += driver_chipcommon.o
ssb-$(CONFIG_SSB_DRIVER_MIPS) += driver_mipscore.o ssb-$(CONFIG_SSB_DRIVER_MIPS) += driver_mipscore.o
ssb-$(CONFIG_SSB_DRIVER_EXTIF) += driver_extif.o ssb-$(CONFIG_SSB_DRIVER_EXTIF) += driver_extif.o
ssb-$(CONFIG_SSB_DRIVER_PCICORE) += driver_pcicore.o ssb-$(CONFIG_SSB_DRIVER_PCICORE) += driver_pcicore.o
@ -28,10 +24,8 @@ Index: linux-2.6.23.17/drivers/ssb/Makefile
# b43 pci-ssb-bridge driver # b43 pci-ssb-bridge driver
# Not strictly a part of SSB, but kept here for convenience # Not strictly a part of SSB, but kept here for convenience
Index: linux-2.6.23.17/drivers/ssb/driver_gige.c
===================================================================
--- /dev/null --- /dev/null
+++ linux-2.6.23.17/drivers/ssb/driver_gige.c +++ b/drivers/ssb/driver_gige.c
@@ -0,0 +1,294 @@ @@ -0,0 +1,294 @@
+/* +/*
+ * Sonics Silicon Backplane + * Sonics Silicon Backplane
@ -327,10 +321,8 @@ Index: linux-2.6.23.17/drivers/ssb/driver_gige.c
+{ +{
+ return ssb_driver_register(&ssb_gige_driver); + return ssb_driver_register(&ssb_gige_driver);
+} +}
Index: linux-2.6.23.17/include/linux/ssb/ssb_driver_gige.h
===================================================================
--- /dev/null --- /dev/null
+++ linux-2.6.23.17/include/linux/ssb/ssb_driver_gige.h +++ b/include/linux/ssb/ssb_driver_gige.h
@@ -0,0 +1,174 @@ @@ -0,0 +1,174 @@
+#ifndef LINUX_SSB_DRIVER_GIGE_H_ +#ifndef LINUX_SSB_DRIVER_GIGE_H_
+#define LINUX_SSB_DRIVER_GIGE_H_ +#define LINUX_SSB_DRIVER_GIGE_H_
@ -506,11 +498,9 @@ Index: linux-2.6.23.17/include/linux/ssb/ssb_driver_gige.h
+ +
+#endif /* CONFIG_SSB_DRIVER_GIGE */ +#endif /* CONFIG_SSB_DRIVER_GIGE */
+#endif /* LINUX_SSB_DRIVER_GIGE_H_ */ +#endif /* LINUX_SSB_DRIVER_GIGE_H_ */
Index: linux-2.6.23.17/drivers/ssb/driver_pcicore.c --- a/drivers/ssb/driver_pcicore.c
=================================================================== +++ b/drivers/ssb/driver_pcicore.c
--- linux-2.6.23.17.orig/drivers/ssb/driver_pcicore.c @@ -60,74 +60,6 @@
+++ linux-2.6.23.17/drivers/ssb/driver_pcicore.c
@@ -60,74 +60,6 @@ static DEFINE_SPINLOCK(cfgspace_lock);
/* Core to access the external PCI config space. Can only have one. */ /* Core to access the external PCI config space. Can only have one. */
static struct ssb_pcicore *extpci_core; static struct ssb_pcicore *extpci_core;
@ -585,7 +575,7 @@ Index: linux-2.6.23.17/drivers/ssb/driver_pcicore.c
static u32 get_cfgspace_addr(struct ssb_pcicore *pc, static u32 get_cfgspace_addr(struct ssb_pcicore *pc,
unsigned int bus, unsigned int dev, unsigned int bus, unsigned int dev,
@@ -317,6 +249,92 @@ static struct pci_controller ssb_pcicore @@ -317,6 +249,92 @@
.mem_offset = 0x24000000, .mem_offset = 0x24000000,
}; };
@ -678,10 +668,8 @@ Index: linux-2.6.23.17/drivers/ssb/driver_pcicore.c
static void ssb_pcicore_init_hostmode(struct ssb_pcicore *pc) static void ssb_pcicore_init_hostmode(struct ssb_pcicore *pc)
{ {
u32 val; u32 val;
Index: linux-2.6.23.17/drivers/ssb/embedded.c --- a/drivers/ssb/embedded.c
=================================================================== +++ b/drivers/ssb/embedded.c
--- linux-2.6.23.17.orig/drivers/ssb/embedded.c
+++ linux-2.6.23.17/drivers/ssb/embedded.c
@@ -10,6 +10,9 @@ @@ -10,6 +10,9 @@
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
@ -692,7 +680,7 @@ Index: linux-2.6.23.17/drivers/ssb/embedded.c
#include "ssb_private.h" #include "ssb_private.h"
@@ -130,3 +133,90 @@ u32 ssb_gpio_polarity(struct ssb_bus *bu @@ -130,3 +133,90 @@
return res; return res;
} }
EXPORT_SYMBOL(ssb_gpio_polarity); EXPORT_SYMBOL(ssb_gpio_polarity);
@ -783,11 +771,9 @@ Index: linux-2.6.23.17/drivers/ssb/embedded.c
+ +
+ return -ENODEV; + return -ENODEV;
+} +}
Index: linux-2.6.23.17/include/linux/ssb/ssb.h --- a/include/linux/ssb/ssb.h
=================================================================== +++ b/include/linux/ssb/ssb.h
--- linux-2.6.23.17.orig/include/linux/ssb/ssb.h @@ -422,5 +422,12 @@
+++ linux-2.6.23.17/include/linux/ssb/ssb.h
@@ -422,5 +422,12 @@ extern int ssb_bus_powerup(struct ssb_bu
extern u32 ssb_admatch_base(u32 adm); extern u32 ssb_admatch_base(u32 adm);
extern u32 ssb_admatch_size(u32 adm); extern u32 ssb_admatch_size(u32 adm);
@ -800,10 +786,8 @@ Index: linux-2.6.23.17/include/linux/ssb/ssb.h
+#endif /* CONFIG_SSB_EMBEDDED */ +#endif /* CONFIG_SSB_EMBEDDED */
#endif /* LINUX_SSB_H_ */ #endif /* LINUX_SSB_H_ */
Index: linux-2.6.23.17/include/linux/ssb/ssb_driver_pci.h --- a/include/linux/ssb/ssb_driver_pci.h
=================================================================== +++ b/include/linux/ssb/ssb_driver_pci.h
--- linux-2.6.23.17.orig/include/linux/ssb/ssb_driver_pci.h
+++ linux-2.6.23.17/include/linux/ssb/ssb_driver_pci.h
@@ -1,6 +1,11 @@ @@ -1,6 +1,11 @@
#ifndef LINUX_SSB_PCICORE_H_ #ifndef LINUX_SSB_PCICORE_H_
#define LINUX_SSB_PCICORE_H_ #define LINUX_SSB_PCICORE_H_
@ -816,7 +800,7 @@ Index: linux-2.6.23.17/include/linux/ssb/ssb_driver_pci.h
#ifdef CONFIG_SSB_DRIVER_PCICORE #ifdef CONFIG_SSB_DRIVER_PCICORE
/* PCI core registers. */ /* PCI core registers. */
@@ -88,6 +93,9 @@ extern void ssb_pcicore_init(struct ssb_ @@ -88,6 +93,9 @@
extern int ssb_pcicore_dev_irqvecs_enable(struct ssb_pcicore *pc, extern int ssb_pcicore_dev_irqvecs_enable(struct ssb_pcicore *pc,
struct ssb_device *dev); struct ssb_device *dev);
@ -826,7 +810,7 @@ Index: linux-2.6.23.17/include/linux/ssb/ssb_driver_pci.h
#else /* CONFIG_SSB_DRIVER_PCICORE */ #else /* CONFIG_SSB_DRIVER_PCICORE */
@@ -107,5 +115,16 @@ int ssb_pcicore_dev_irqvecs_enable(struc @@ -107,5 +115,16 @@
return 0; return 0;
} }
@ -843,10 +827,8 @@ Index: linux-2.6.23.17/include/linux/ssb/ssb_driver_pci.h
+ +
#endif /* CONFIG_SSB_DRIVER_PCICORE */ #endif /* CONFIG_SSB_DRIVER_PCICORE */
#endif /* LINUX_SSB_PCICORE_H_ */ #endif /* LINUX_SSB_PCICORE_H_ */
Index: linux-2.6.23.17/drivers/ssb/main.c --- a/drivers/ssb/main.c
=================================================================== +++ b/drivers/ssb/main.c
--- linux-2.6.23.17.orig/drivers/ssb/main.c
+++ linux-2.6.23.17/drivers/ssb/main.c
@@ -14,6 +14,7 @@ @@ -14,6 +14,7 @@
#include <linux/io.h> #include <linux/io.h>
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
@ -855,7 +837,7 @@ Index: linux-2.6.23.17/drivers/ssb/main.c
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <linux/pci.h> #include <linux/pci.h>
@@ -68,6 +69,25 @@ found: @@ -68,6 +69,25 @@
} }
#endif /* CONFIG_SSB_PCIHOST */ #endif /* CONFIG_SSB_PCIHOST */
@ -881,7 +863,7 @@ Index: linux-2.6.23.17/drivers/ssb/main.c
static struct ssb_device *ssb_device_get(struct ssb_device *dev) static struct ssb_device *ssb_device_get(struct ssb_device *dev)
{ {
if (dev) if (dev)
@@ -1175,7 +1195,14 @@ static int __init ssb_modinit(void) @@ -1175,7 +1195,14 @@
err = b43_pci_ssb_bridge_init(); err = b43_pci_ssb_bridge_init();
if (err) { if (err) {
ssb_printk(KERN_ERR "Broadcom 43xx PCI-SSB-bridge " ssb_printk(KERN_ERR "Broadcom 43xx PCI-SSB-bridge "
@ -897,7 +879,7 @@ Index: linux-2.6.23.17/drivers/ssb/main.c
/* don't fail SSB init because of this */ /* don't fail SSB init because of this */
err = 0; err = 0;
} }
@@ -1189,6 +1216,7 @@ fs_initcall(ssb_modinit); @@ -1189,6 +1216,7 @@
static void __exit ssb_modexit(void) static void __exit ssb_modexit(void)
{ {
@ -905,11 +887,9 @@ Index: linux-2.6.23.17/drivers/ssb/main.c
b43_pci_ssb_bridge_exit(); b43_pci_ssb_bridge_exit();
bus_unregister(&ssb_bustype); bus_unregister(&ssb_bustype);
} }
Index: linux-2.6.23.17/drivers/ssb/ssb_private.h --- a/drivers/ssb/ssb_private.h
=================================================================== +++ b/drivers/ssb/ssb_private.h
--- linux-2.6.23.17.orig/drivers/ssb/ssb_private.h @@ -118,6 +118,8 @@
+++ linux-2.6.23.17/drivers/ssb/ssb_private.h
@@ -118,6 +118,8 @@ extern u32 ssb_calc_clock_rate(u32 pllty
extern int ssb_devices_freeze(struct ssb_bus *bus); extern int ssb_devices_freeze(struct ssb_bus *bus);
extern int ssb_devices_thaw(struct ssb_bus *bus); extern int ssb_devices_thaw(struct ssb_bus *bus);
extern struct ssb_bus *ssb_pci_dev_to_bus(struct pci_dev *pdev); extern struct ssb_bus *ssb_pci_dev_to_bus(struct pci_dev *pdev);
@ -918,10 +898,8 @@ Index: linux-2.6.23.17/drivers/ssb/ssb_private.h
/* b43_pci_bridge.c */ /* b43_pci_bridge.c */
#ifdef CONFIG_SSB_PCIHOST #ifdef CONFIG_SSB_PCIHOST
Index: linux-2.6.23.17/drivers/net/tg3.c --- a/drivers/net/tg3.c
=================================================================== +++ b/drivers/net/tg3.c
--- linux-2.6.23.17.orig/drivers/net/tg3.c
+++ linux-2.6.23.17/drivers/net/tg3.c
@@ -38,6 +38,7 @@ @@ -38,6 +38,7 @@
#include <linux/workqueue.h> #include <linux/workqueue.h>
#include <linux/prefetch.h> #include <linux/prefetch.h>
@ -930,7 +908,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
#include <net/checksum.h> #include <net/checksum.h>
#include <net/ip.h> #include <net/ip.h>
@@ -410,8 +411,9 @@ static void _tw32_flush(struct tg3 *tp, @@ -410,8 +411,9 @@
static inline void tw32_mailbox_flush(struct tg3 *tp, u32 off, u32 val) static inline void tw32_mailbox_flush(struct tg3 *tp, u32 off, u32 val)
{ {
tp->write32_mbox(tp, off, val); tp->write32_mbox(tp, off, val);
@ -942,7 +920,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
tp->read32_mbox(tp, off); tp->read32_mbox(tp, off);
} }
@@ -623,7 +625,7 @@ static void tg3_switch_clocks(struct tg3 @@ -623,7 +625,7 @@
#define PHY_BUSY_LOOPS 5000 #define PHY_BUSY_LOOPS 5000
@ -951,7 +929,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
{ {
u32 frame_val; u32 frame_val;
unsigned int loops; unsigned int loops;
@@ -637,7 +639,7 @@ static int tg3_readphy(struct tg3 *tp, i @@ -637,7 +639,7 @@
*val = 0x0; *val = 0x0;
@ -960,7 +938,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
MI_COM_PHY_ADDR_MASK); MI_COM_PHY_ADDR_MASK);
frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) & frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) &
MI_COM_REG_ADDR_MASK); MI_COM_REG_ADDR_MASK);
@@ -672,7 +674,12 @@ static int tg3_readphy(struct tg3 *tp, i @@ -672,7 +674,12 @@
return ret; return ret;
} }
@ -974,7 +952,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
{ {
u32 frame_val; u32 frame_val;
unsigned int loops; unsigned int loops;
@@ -688,7 +695,7 @@ static int tg3_writephy(struct tg3 *tp, @@ -688,7 +695,7 @@
udelay(80); udelay(80);
} }
@ -983,7 +961,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
MI_COM_PHY_ADDR_MASK); MI_COM_PHY_ADDR_MASK);
frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) & frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) &
MI_COM_REG_ADDR_MASK); MI_COM_REG_ADDR_MASK);
@@ -721,6 +728,11 @@ static int tg3_writephy(struct tg3 *tp, @@ -721,6 +728,11 @@
return ret; return ret;
} }
@ -995,7 +973,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
static void tg3_phy_toggle_automdix(struct tg3 *tp, int enable) static void tg3_phy_toggle_automdix(struct tg3 *tp, int enable)
{ {
u32 phy; u32 phy;
@@ -1988,6 +2000,14 @@ static int tg3_setup_copper_phy(struct t @@ -1988,6 +2000,14 @@
tp->link_config.active_duplex = current_duplex; tp->link_config.active_duplex = current_duplex;
} }
@ -1010,7 +988,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
if (current_link_up == 1 && if (current_link_up == 1 &&
(tp->link_config.active_duplex == DUPLEX_FULL) && (tp->link_config.active_duplex == DUPLEX_FULL) &&
(tp->link_config.autoneg == AUTONEG_ENABLE)) { (tp->link_config.autoneg == AUTONEG_ENABLE)) {
@@ -4813,6 +4833,11 @@ static int tg3_poll_fw(struct tg3 *tp) @@ -4813,6 +4833,11 @@
int i; int i;
u32 val; u32 val;
@ -1022,7 +1000,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) {
/* Wait up to 20ms for init done. */ /* Wait up to 20ms for init done. */
for (i = 0; i < 200; i++) { for (i = 0; i < 200; i++) {
@@ -5040,6 +5065,14 @@ static int tg3_chip_reset(struct tg3 *tp @@ -5040,6 +5065,14 @@
tw32(0x5000, 0x400); tw32(0x5000, 0x400);
} }
@ -1037,7 +1015,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
tw32(GRC_MODE, tp->grc_mode); tw32(GRC_MODE, tp->grc_mode);
if (tp->pci_chip_rev_id == CHIPREV_ID_5705_A0) { if (tp->pci_chip_rev_id == CHIPREV_ID_5705_A0) {
@@ -5308,9 +5341,12 @@ static int tg3_halt_cpu(struct tg3 *tp, @@ -5308,9 +5341,12 @@
return -ENODEV; return -ENODEV;
} }
@ -1053,7 +1031,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
return 0; return 0;
} }
@@ -5391,6 +5427,11 @@ static int tg3_load_5701_a0_firmware_fix @@ -5391,6 +5427,11 @@
struct fw_info info; struct fw_info info;
int err, i; int err, i;
@ -1065,7 +1043,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
info.text_base = TG3_FW_TEXT_ADDR; info.text_base = TG3_FW_TEXT_ADDR;
info.text_len = TG3_FW_TEXT_LEN; info.text_len = TG3_FW_TEXT_LEN;
info.text_data = &tg3FwText[0]; info.text_data = &tg3FwText[0];
@@ -5949,6 +5990,11 @@ static int tg3_load_tso_firmware(struct @@ -5949,6 +5990,11 @@
unsigned long cpu_base, cpu_scratch_base, cpu_scratch_size; unsigned long cpu_base, cpu_scratch_base, cpu_scratch_size;
int err, i; int err, i;
@ -1077,7 +1055,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
if (tp->tg3_flags2 & TG3_FLG2_HW_TSO) if (tp->tg3_flags2 & TG3_FLG2_HW_TSO)
return 0; return 0;
@@ -6850,6 +6896,11 @@ static void tg3_timer(unsigned long __op @@ -6850,6 +6896,11 @@
spin_lock(&tp->lock); spin_lock(&tp->lock);
@ -1089,7 +1067,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
if (!(tp->tg3_flags & TG3_FLAG_TAGGED_STATUS)) { if (!(tp->tg3_flags & TG3_FLAG_TAGGED_STATUS)) {
/* All of this garbage is because when using non-tagged /* All of this garbage is because when using non-tagged
* IRQ status the mailbox/status_block protocol the chip * IRQ status the mailbox/status_block protocol the chip
@@ -8432,6 +8483,11 @@ static int tg3_test_nvram(struct tg3 *tp @@ -8432,6 +8483,11 @@
u32 *buf, csum, magic; u32 *buf, csum, magic;
int i, j, err = 0, size; int i, j, err = 0, size;
@ -1101,7 +1079,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
if (tg3_nvram_read_swab(tp, 0, &magic) != 0) if (tg3_nvram_read_swab(tp, 0, &magic) != 0)
return -EIO; return -EIO;
@@ -9154,7 +9210,7 @@ static int tg3_ioctl(struct net_device * @@ -9154,7 +9210,7 @@
return -EAGAIN; return -EAGAIN;
spin_lock_bh(&tp->lock); spin_lock_bh(&tp->lock);
@ -1110,7 +1088,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
spin_unlock_bh(&tp->lock); spin_unlock_bh(&tp->lock);
data->val_out = mii_regval; data->val_out = mii_regval;
@@ -9173,7 +9229,7 @@ static int tg3_ioctl(struct net_device * @@ -9173,7 +9229,7 @@
return -EAGAIN; return -EAGAIN;
spin_lock_bh(&tp->lock); spin_lock_bh(&tp->lock);
@ -1119,7 +1097,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
spin_unlock_bh(&tp->lock); spin_unlock_bh(&tp->lock);
return err; return err;
@@ -9571,6 +9627,12 @@ static void __devinit tg3_get_5906_nvram @@ -9571,6 +9627,12 @@
/* Chips other than 5700/5701 use the NVRAM for fetching info. */ /* Chips other than 5700/5701 use the NVRAM for fetching info. */
static void __devinit tg3_nvram_init(struct tg3 *tp) static void __devinit tg3_nvram_init(struct tg3 *tp)
{ {
@ -1132,7 +1110,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
tw32_f(GRC_EEPROM_ADDR, tw32_f(GRC_EEPROM_ADDR,
(EEPROM_ADDR_FSM_RESET | (EEPROM_ADDR_FSM_RESET |
(EEPROM_DEFAULT_CLOCK_PERIOD << (EEPROM_DEFAULT_CLOCK_PERIOD <<
@@ -9706,6 +9768,9 @@ static int tg3_nvram_read(struct tg3 *tp @@ -9706,6 +9768,9 @@
{ {
int ret; int ret;
@ -1142,7 +1120,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
if (!(tp->tg3_flags & TG3_FLAG_NVRAM)) if (!(tp->tg3_flags & TG3_FLAG_NVRAM))
return tg3_nvram_read_using_eeprom(tp, offset, val); return tg3_nvram_read_using_eeprom(tp, offset, val);
@@ -9938,6 +10003,9 @@ static int tg3_nvram_write_block(struct @@ -9938,6 +10003,9 @@
{ {
int ret; int ret;
@ -1152,7 +1130,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
if (tp->tg3_flags & TG3_FLAG_EEPROM_WRITE_PROT) { if (tp->tg3_flags & TG3_FLAG_EEPROM_WRITE_PROT) {
tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl & tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl &
~GRC_LCLCTRL_GPIO_OUTPUT1); ~GRC_LCLCTRL_GPIO_OUTPUT1);
@@ -10804,7 +10872,6 @@ static int __devinit tg3_get_invariants( @@ -10804,7 +10872,6 @@
tp->write32 = tg3_write_flush_reg32; tp->write32 = tg3_write_flush_reg32;
} }
@ -1160,7 +1138,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
if ((tp->tg3_flags & TG3_FLAG_TXD_MBOX_HWBUG) || if ((tp->tg3_flags & TG3_FLAG_TXD_MBOX_HWBUG) ||
(tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER)) { (tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER)) {
tp->write32_tx_mbox = tg3_write32_tx_mbox; tp->write32_tx_mbox = tg3_write32_tx_mbox;
@@ -10840,6 +10907,11 @@ static int __devinit tg3_get_invariants( @@ -10840,6 +10907,11 @@
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701))) GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701)))
tp->tg3_flags |= TG3_FLAG_SRAM_USE_CONFIG; tp->tg3_flags |= TG3_FLAG_SRAM_USE_CONFIG;
@ -1172,7 +1150,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
/* Get eeprom hw config before calling tg3_set_power_state(). /* Get eeprom hw config before calling tg3_set_power_state().
* In particular, the TG3_FLG2_IS_NIC flag must be * In particular, the TG3_FLG2_IS_NIC flag must be
* determined before calling tg3_set_power_state() so that * determined before calling tg3_set_power_state() so that
@@ -11184,6 +11256,10 @@ static int __devinit tg3_get_device_addr @@ -11184,6 +11256,10 @@
} }
if (!is_valid_ether_addr(&dev->dev_addr[0])) { if (!is_valid_ether_addr(&dev->dev_addr[0])) {
@ -1183,7 +1161,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
#ifdef CONFIG_SPARC64 #ifdef CONFIG_SPARC64
if (!tg3_get_default_macaddr_sparc(tp)) if (!tg3_get_default_macaddr_sparc(tp))
return 0; return 0;
@@ -11675,6 +11751,7 @@ static char * __devinit tg3_phy_string(s @@ -11675,6 +11751,7 @@
case PHY_ID_BCM5704: return "5704"; case PHY_ID_BCM5704: return "5704";
case PHY_ID_BCM5705: return "5705"; case PHY_ID_BCM5705: return "5705";
case PHY_ID_BCM5750: return "5750"; case PHY_ID_BCM5750: return "5750";
@ -1191,7 +1169,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
case PHY_ID_BCM5752: return "5752"; case PHY_ID_BCM5752: return "5752";
case PHY_ID_BCM5714: return "5714"; case PHY_ID_BCM5714: return "5714";
case PHY_ID_BCM5780: return "5780"; case PHY_ID_BCM5780: return "5780";
@@ -11859,6 +11936,13 @@ static int __devinit tg3_init_one(struct @@ -11859,6 +11936,13 @@
tp->msg_enable = tg3_debug; tp->msg_enable = tg3_debug;
else else
tp->msg_enable = TG3_DEF_MSG_ENABLE; tp->msg_enable = TG3_DEF_MSG_ENABLE;
@ -1205,11 +1183,9 @@ Index: linux-2.6.23.17/drivers/net/tg3.c
/* The word/byte swap controls here control register access byte /* The word/byte swap controls here control register access byte
* swapping. DMA data byte swapping is controlled in the GRC_MODE * swapping. DMA data byte swapping is controlled in the GRC_MODE
Index: linux-2.6.23.17/drivers/net/tg3.h --- a/drivers/net/tg3.h
=================================================================== +++ b/drivers/net/tg3.h
--- linux-2.6.23.17.orig/drivers/net/tg3.h @@ -2279,6 +2279,10 @@
+++ linux-2.6.23.17/drivers/net/tg3.h
@@ -2279,6 +2279,10 @@ struct tg3 {
#define TG3_FLG2_PHY_JITTER_BUG 0x20000000 #define TG3_FLG2_PHY_JITTER_BUG 0x20000000
#define TG3_FLG2_NO_FWARE_REPORTED 0x40000000 #define TG3_FLG2_NO_FWARE_REPORTED 0x40000000
#define TG3_FLG2_PHY_ADJUST_TRIM 0x80000000 #define TG3_FLG2_PHY_ADJUST_TRIM 0x80000000
@ -1220,7 +1196,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.h
struct timer_list timer; struct timer_list timer;
u16 timer_counter; u16 timer_counter;
@@ -2333,6 +2337,7 @@ struct tg3 { @@ -2333,6 +2337,7 @@
#define PHY_ID_BCM5714 0x60008340 #define PHY_ID_BCM5714 0x60008340
#define PHY_ID_BCM5780 0x60008350 #define PHY_ID_BCM5780 0x60008350
#define PHY_ID_BCM5755 0xbc050cc0 #define PHY_ID_BCM5755 0xbc050cc0
@ -1228,7 +1204,7 @@ Index: linux-2.6.23.17/drivers/net/tg3.h
#define PHY_ID_BCM5787 0xbc050ce0 #define PHY_ID_BCM5787 0xbc050ce0
#define PHY_ID_BCM5756 0xbc050ed0 #define PHY_ID_BCM5756 0xbc050ed0
#define PHY_ID_BCM5906 0xdc00ac40 #define PHY_ID_BCM5906 0xdc00ac40
@@ -2364,7 +2369,8 @@ struct tg3 { @@ -2364,7 +2369,8 @@
(X) == PHY_ID_BCM5752 || (X) == PHY_ID_BCM5714 || \ (X) == PHY_ID_BCM5752 || (X) == PHY_ID_BCM5714 || \
(X) == PHY_ID_BCM5780 || (X) == PHY_ID_BCM5787 || \ (X) == PHY_ID_BCM5780 || (X) == PHY_ID_BCM5787 || \
(X) == PHY_ID_BCM5755 || (X) == PHY_ID_BCM5756 || \ (X) == PHY_ID_BCM5755 || (X) == PHY_ID_BCM5756 || \
@ -1238,11 +1214,9 @@ Index: linux-2.6.23.17/drivers/net/tg3.h
struct tg3_hw_stats *hw_stats; struct tg3_hw_stats *hw_stats;
dma_addr_t stats_mapping; dma_addr_t stats_mapping;
Index: linux-2.6.23.17/drivers/ssb/driver_mipscore.c --- a/drivers/ssb/driver_mipscore.c
=================================================================== +++ b/drivers/ssb/driver_mipscore.c
--- linux-2.6.23.17.orig/drivers/ssb/driver_mipscore.c @@ -212,6 +212,7 @@
+++ linux-2.6.23.17/drivers/ssb/driver_mipscore.c
@@ -212,6 +212,7 @@ void ssb_mipscore_init(struct ssb_mipsco
/* fallthrough */ /* fallthrough */
case SSB_DEV_PCI: case SSB_DEV_PCI:
case SSB_DEV_ETHERNET: case SSB_DEV_ETHERNET:

Loading…
Cancel
Save