Date:2010-11-07 16:59:49 (13 years 4 months ago)
Author:hauke
Commit:766ef770875cf1ce2a9e91995a9c273a247e99a0
Message:kernel: update from kernel 2.6.32.16 to kernel 2.6.32.25 and refresh patches

git-svn-id: svn://svn.openwrt.org/openwrt/branches/backfire@23915 3c298f89-4303-0410-b956-a3cf2f4a3e73
Files: target/linux/adm5120/Makefile (1 diff)
target/linux/ar7/Makefile (1 diff)
target/linux/ar71xx/Makefile (1 diff)
target/linux/au1000/Makefile (1 diff)
target/linux/avr32/Makefile (1 diff)
target/linux/brcm47xx/Makefile (1 diff)
target/linux/brcm47xx/patches-2.6.32/150-cpu_fixes.patch (2 diffs)
target/linux/brcm47xx/patches-2.6.32/220-bcm5354.patch (3 diffs)
target/linux/brcm47xx/patches-2.6.32/270-ehci-ssb.patch (1 diff)
target/linux/brcm47xx/patches-2.6.32/275-usb2-bcm5354-init.patch (1 diff)
target/linux/brcm47xx/patches-2.6.32/280-activate_ssb_support_in_usb.patch (1 diff)
target/linux/brcm47xx/patches-2.6.32/610-pci_ide_fix.patch (1 diff)
target/linux/brcm47xx/patches-2.6.32/700-ssb-gigabit-ethernet-driver.patch (13 diffs)
target/linux/brcm47xx/patches-2.6.32/813-use_netdev_alloc_skb.patch (1 diff)
target/linux/brcm47xx/patches-2.6.32/920-cache-wround.patch (4 diffs)
target/linux/brcm63xx/Makefile (1 diff)
target/linux/cobalt/Makefile (1 diff)
target/linux/generic-2.6/patches-2.6.32/025-mips_disable_fpu.patch (1 diff)
target/linux/generic-2.6/patches-2.6.32/030-pci_disable_common_quirks.patch (2 diffs)
target/linux/generic-2.6/patches-2.6.32/150-netfilter_imq.patch (3 diffs)
target/linux/generic-2.6/patches-2.6.32/260-crypto_optional_tests.patch (2 diffs)
target/linux/generic-2.6/patches-2.6.32/975-ssb_update.patch (10 diffs)
target/linux/generic-2.6/patches-2.6.32/980-vm_exports.patch (3 diffs)
target/linux/ixp4xx/Makefile (1 diff)
target/linux/orion/Makefile (1 diff)
target/linux/ppc40x/Makefile (1 diff)
target/linux/ppc44x/Makefile (1 diff)
target/linux/rb532/Makefile (1 diff)
target/linux/x86/Makefile (1 diff)
target/linux/xburst/Makefile (1 diff)

Change Details

target/linux/adm5120/Makefile
99
1010BOARD:=adm5120
1111BOARDNAME:=Infineon/ADMtek ADM5120
12LINUX_VERSION:=2.6.32.16
12LINUX_VERSION:=2.6.32.25
1313SUBTARGETS:=router_le router_be
1414INITRAMFS_EXTRA_FILES:=
1515
target/linux/ar7/Makefile
1111BOARDNAME:=TI AR7
1212FEATURES:=squashfs jffs2 atm
1313
14LINUX_VERSION:=2.6.32.16
14LINUX_VERSION:=2.6.32.25
1515
1616include $(INCLUDE_DIR)/target.mk
1717
target/linux/ar71xx/Makefile
1212FEATURES:=squashfs jffs2 targz
1313CFLAGS:=-Os -pipe -mips32r2 -mtune=mips32r2 -funit-at-a-time
1414
15LINUX_VERSION:=2.6.32.16
15LINUX_VERSION:=2.6.32.25
1616
1717include $(INCLUDE_DIR)/target.mk
1818
target/linux/au1000/Makefile
1212FEATURES:=jffs2 usb pci
1313SUBTARGETS=au1500 au1550
1414
15LINUX_VERSION:=2.6.32.16
15LINUX_VERSION:=2.6.32.25
1616
1717include $(INCLUDE_DIR)/target.mk
1818DEFAULT_PACKAGES += wpad-mini yamonenv
target/linux/avr32/Makefile
1010BOARD:=avr32
1111BOARDNAME:=Atmel AVR32
1212FEATURES:=squashfs
13LINUX_VERSION:=2.6.32.16
13LINUX_VERSION:=2.6.32.25
1414
1515include $(INCLUDE_DIR)/target.mk
1616
target/linux/brcm47xx/Makefile
1111BOARDNAME:=Broadcom BCM947xx/953xx
1212FEATURES:=squashfs usb pcmcia
1313
14LINUX_VERSION:=2.6.32.16
14LINUX_VERSION:=2.6.32.25
1515
1616include $(INCLUDE_DIR)/target.mk
1717DEFAULT_PACKAGES += wpad-mini kmod-switch kmod-diag nvram
target/linux/brcm47xx/patches-2.6.32/150-cpu_fixes.patch
345345 }
346346--- a/arch/mips/mm/tlbex.c
347347+++ b/arch/mips/mm/tlbex.c
348@@ -733,6 +733,9 @@ static void __cpuinit build_r4000_tlb_re
348@@ -738,6 +738,9 @@ static void __cpuinit build_r4000_tlb_re
349349         /* No need for uasm_i_nop */
350350     }
351351
...... 
355355 #ifdef CONFIG_64BIT
356356     build_get_pmde64(&p, &l, &r, K0, K1); /* get pmd in K1 */
357357 #else
358@@ -1185,6 +1188,9 @@ build_r4000_tlbchange_handler_head(u32 *
358@@ -1190,6 +1193,9 @@ build_r4000_tlbchange_handler_head(u32 *
359359                    struct uasm_reloc **r, unsigned int pte,
360360                    unsigned int ptr)
361361 {
target/linux/brcm47xx/patches-2.6.32/220-bcm5354.patch
11--- a/drivers/ssb/driver_chipcommon.c
22+++ b/drivers/ssb/driver_chipcommon.c
3@@ -260,6 +260,8 @@ void ssb_chipco_resume(struct ssb_chipco
3@@ -261,6 +261,8 @@ void ssb_chipco_resume(struct ssb_chipco
44 void ssb_chipco_get_clockcpu(struct ssb_chipcommon *cc,
55                              u32 *plltype, u32 *n, u32 *m)
66 {
...... 
99     *n = chipco_read32(cc, SSB_CHIPCO_CLOCK_N);
1010     *plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT);
1111     switch (*plltype) {
12@@ -283,6 +285,8 @@ void ssb_chipco_get_clockcpu(struct ssb_
12@@ -284,6 +286,8 @@ void ssb_chipco_get_clockcpu(struct ssb_
1313 void ssb_chipco_get_clockcontrol(struct ssb_chipcommon *cc,
1414                  u32 *plltype, u32 *n, u32 *m)
1515 {
...... 
3131     }
3232--- a/drivers/ssb/main.c
3333+++ b/drivers/ssb/main.c
34@@ -1073,6 +1073,8 @@ u32 ssb_clockspeed(struct ssb_bus *bus)
34@@ -1075,6 +1075,8 @@ u32 ssb_clockspeed(struct ssb_bus *bus)
3535
3636     if (bus->chip_id == 0x5365) {
3737         rate = 100000000;
target/linux/brcm47xx/patches-2.6.32/270-ehci-ssb.patch
2929     depends on USB
3030--- a/drivers/usb/host/ehci-hcd.c
3131+++ b/drivers/usb/host/ehci-hcd.c
32@@ -1141,8 +1141,16 @@ MODULE_LICENSE ("GPL");
32@@ -1142,8 +1142,16 @@ MODULE_LICENSE ("GPL");
3333 #define PLATFORM_DRIVER ehci_atmel_driver
3434 #endif
3535
target/linux/brcm47xx/patches-2.6.32/275-usb2-bcm5354-init.patch
4141- ssb_write32(dev, 0x400, tmp);
4242- tmp = ssb_read32(dev, 0x400);
4343- printk("USB20H fcr: 0x%0x\n", tmp);
44-
44+ /* Work around for 5354 failures */
45+ if ((dev->id.revision == 2) && (dev->bus->chip_id == 0x5354)) {
46+ /* Change syn01 reg */
47+ tmp = 0x00fe00fe;
48+ ssb_write32(dev, 0x894, tmp);
49
4550- /* Change Shim control reg */
4651- tmp = ssb_read32(dev, 0x304);
4752- tmp &= ~0x100;
4853- ssb_write32(dev, 0x304, tmp);
4954- tmp = ssb_read32(dev, 0x304);
5055- printk("USB20H shim: 0x%0x\n", tmp);
51+ /* Work around for 5354 failures */
52+ if ((dev->id.revision == 2) && (dev->bus->chip_id == 0x5354)) {
53+ /* Change syn01 reg */
54+ tmp = 0x00fe00fe;
55+ ssb_write32(dev, 0x894, tmp);
56+
5756+ /* Change syn03 reg */
5857+ tmp = ssb_read32(dev, 0x89c);
5958+ tmp |= 0x1;
target/linux/brcm47xx/patches-2.6.32/280-activate_ssb_support_in_usb.patch
55
66--- a/drivers/ssb/Kconfig
77+++ b/drivers/ssb/Kconfig
8@@ -140,6 +140,8 @@ config SSB_DRIVER_MIPS
8@@ -141,6 +141,8 @@ config SSB_DRIVER_MIPS
99 config SSB_EMBEDDED
1010     bool
1111     depends on SSB_DRIVER_MIPS
target/linux/brcm47xx/patches-2.6.32/610-pci_ide_fix.patch
11--- a/include/linux/ide.h
22+++ b/include/linux/ide.h
3@@ -195,7 +195,11 @@
3@@ -195,7 +195,11 @@ static inline void ide_std_init_ports(st
44     hw->io_ports.ctl_addr = ctl_addr;
55 }
66
target/linux/brcm47xx/patches-2.6.32/700-ssb-gigabit-ethernet-driver.patch
88
99 #include <net/checksum.h>
1010 #include <net/ip.h>
11@@ -457,8 +458,9 @@ static void _tw32_flush(struct tg3 *tp,
11@@ -457,8 +458,9 @@ static void _tw32_flush(struct tg3 *tp,
1212 static inline void tw32_mailbox_flush(struct tg3 *tp, u32 off, u32 val)
1313 {
1414     tp->write32_mbox(tp, off, val);
...... 
5252 {
5353     u32 frame_val;
5454     unsigned int loops;
55@@ -866,6 +873,11 @@ static int tg3_writephy(struct tg3 *tp,
55@@ -866,6 +873,11 @@ static int tg3_writephy(struct tg3 *tp,
5656     return ret;
5757 }
5858
...... 
129129     tw32(GRC_MODE, tp->grc_mode);
130130
131131     if (tp->pci_chip_rev_id == CHIPREV_ID_5705_A0) {
132@@ -6704,9 +6742,12 @@ static int tg3_halt_cpu(struct tg3 *tp,
132@@ -6704,9 +6742,12 @@ static int tg3_halt_cpu(struct tg3 *tp,
133133         return -ENODEV;
134134     }
135135
...... 
157157     fw_data = (void *)tp->fw->data;
158158
159159     /* Firmware blob starts with version numbers, followed by
160@@ -6828,6 +6874,11 @@ static int tg3_load_tso_firmware(struct
160@@ -6828,6 +6874,11 @@ static int tg3_load_tso_firmware(struct
161161     unsigned long cpu_base, cpu_scratch_base, cpu_scratch_size;
162162     int err, i;
163163
...... 
181181     if (!(tp->tg3_flags & TG3_FLAG_TAGGED_STATUS)) {
182182         /* All of this garbage is because when using non-tagged
183183          * IRQ status the mailbox/status_block protocol the chip
184@@ -9800,6 +9856,11 @@ static int tg3_test_nvram(struct tg3 *tp
184@@ -9801,6 +9857,11 @@ static int tg3_test_nvram(struct tg3 *tp
185185     if (tp->tg3_flags3 & TG3_FLG3_NO_NVRAM)
186186         return 0;
187187
...... 
193193     if (tg3_nvram_read(tp, 0, &magic) != 0)
194194         return -EIO;
195195
196@@ -10594,7 +10655,7 @@ static int tg3_ioctl(struct net_device *
196@@ -10595,7 +10656,7 @@ static int tg3_ioctl(struct net_device *
197197             return -EAGAIN;
198198
199199         spin_lock_bh(&tp->lock);
...... 
202202         spin_unlock_bh(&tp->lock);
203203
204204         data->val_out = mii_regval;
205@@ -10610,7 +10671,7 @@ static int tg3_ioctl(struct net_device *
205@@ -10611,7 +10672,7 @@ static int tg3_ioctl(struct net_device *
206206             return -EAGAIN;
207207
208208         spin_lock_bh(&tp->lock);
...... 
211211         spin_unlock_bh(&tp->lock);
212212
213213         return err;
214@@ -11255,6 +11316,12 @@ static void __devinit tg3_get_5717_nvram
214@@ -11256,6 +11317,12 @@ static void __devinit tg3_get_5717_nvram
215215 /* Chips other than 5700/5701 use the NVRAM for fetching info. */
216216 static void __devinit tg3_nvram_init(struct tg3 *tp)
217217 {
...... 
224224     tw32_f(GRC_EEPROM_ADDR,
225225          (EEPROM_ADDR_FSM_RESET |
226226           (EEPROM_DEFAULT_CLOCK_PERIOD <<
227@@ -11515,6 +11582,9 @@ static int tg3_nvram_write_block(struct
227@@ -11516,6 +11583,9 @@ static int tg3_nvram_write_block(struct
228228 {
229229     int ret;
230230
...... 
234234     if (tp->tg3_flags & TG3_FLAG_EEPROM_WRITE_PROT) {
235235         tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl &
236236                ~GRC_LCLCTRL_GPIO_OUTPUT1);
237@@ -12800,6 +12870,11 @@ static int __devinit tg3_get_invariants(
237@@ -12801,6 +12871,11 @@ static int __devinit tg3_get_invariants(
238238           GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701)))
239239         tp->tg3_flags |= TG3_FLAG_SRAM_USE_CONFIG;
240240
...... 
246246     /* Get eeprom hw config before calling tg3_set_power_state().
247247      * In particular, the TG3_FLG2_IS_NIC flag must be
248248      * determined before calling tg3_set_power_state() so that
249@@ -13189,6 +13264,10 @@ static int __devinit tg3_get_device_addr
249@@ -13190,6 +13265,10 @@ static int __devinit tg3_get_device_addr
250250     }
251251
252252     if (!is_valid_ether_addr(&dev->dev_addr[0])) {
...... 
257257 #ifdef CONFIG_SPARC
258258         if (!tg3_get_default_macaddr_sparc(tp))
259259             return 0;
260@@ -13681,6 +13760,7 @@ static char * __devinit tg3_phy_string(s
260@@ -13682,6 +13761,7 @@ static char * __devinit tg3_phy_string(s
261261     case PHY_ID_BCM5704: return "5704";
262262     case PHY_ID_BCM5705: return "5705";
263263     case PHY_ID_BCM5750: return "5750";
...... 
265265     case PHY_ID_BCM5752: return "5752";
266266     case PHY_ID_BCM5714: return "5714";
267267     case PHY_ID_BCM5780: return "5780";
268@@ -13892,6 +13972,13 @@ static int __devinit tg3_init_one(struct
268@@ -13893,6 +13973,13 @@ static int __devinit tg3_init_one(struct
269269         tp->msg_enable = tg3_debug;
270270     else
271271         tp->msg_enable = TG3_DEF_MSG_ENABLE;
target/linux/brcm47xx/patches-2.6.32/813-use_netdev_alloc_skb.patch
11--- a/drivers/net/b44.c
22+++ b/drivers/net/b44.c
3@@ -850,7 +850,7 @@ static int b44_rx(struct b44 *bp, int bu
3@@ -817,7 +817,7 @@ static int b44_rx(struct b44 *bp, int bu
44             struct sk_buff *copy_skb;
55
66             b44_recycle_rx(bp, cons, bp->rx_prod);
target/linux/brcm47xx/patches-2.6.32/920-cache-wround.patch
4141     UASM_i_LA_mostly(p, ptr, pgdc);
4242 #endif
4343     uasm_i_mfc0(p, tmp, C0_BADVADDR); /* get faulting address */
44@@ -733,12 +736,12 @@ static void __cpuinit build_r4000_tlb_re
44@@ -738,12 +741,12 @@ static void __cpuinit build_r4000_tlb_re
4545         /* No need for uasm_i_nop */
4646     }
4747
...... 
5757     build_get_pgde32(&p, K0, K1); /* get pgd in K1 */
5858 #endif
5959
60@@ -750,6 +753,9 @@ static void __cpuinit build_r4000_tlb_re
60@@ -755,6 +758,9 @@ static void __cpuinit build_r4000_tlb_re
6161     build_update_entries(&p, K0, K1);
6262     build_tlb_write_entry(&p, &l, &r, tlb_random);
6363     uasm_l_leave(&l, p);
...... 
6767     uasm_i_eret(&p); /* return from trap */
6868
6969 #ifdef CONFIG_HUGETLB_PAGE
70@@ -1188,12 +1194,12 @@ build_r4000_tlbchange_handler_head(u32 *
70@@ -1193,12 +1199,12 @@ build_r4000_tlbchange_handler_head(u32 *
7171                    struct uasm_reloc **r, unsigned int pte,
7272                    unsigned int ptr)
7373 {
...... 
8383     build_get_pgde32(p, pte, ptr); /* get pgd in ptr */
8484 #endif
8585
86@@ -1230,6 +1236,9 @@ build_r4000_tlbchange_handler_tail(u32 *
86@@ -1235,6 +1241,9 @@ build_r4000_tlbchange_handler_tail(u32 *
8787     build_update_entries(p, tmp, ptr);
8888     build_tlb_write_entry(p, l, r, tlb_indexed);
8989     uasm_l_leave(l, *p);
target/linux/brcm63xx/Makefile
1010BOARD:=brcm63xx
1111BOARDNAME:=Broadcom BCM63xx
1212FEATURES:=squashfs jffs2 usb atm pci pcmcia
13LINUX_VERSION:=2.6.32.16
13LINUX_VERSION:=2.6.32.25
1414
1515include $(INCLUDE_DIR)/target.mk
1616
target/linux/cobalt/Makefile
1212FEATURES:=targz pci ext2
1313CFLAGS:=-O2 -pipe -mtune=r5000 -funit-at-a-time
1414
15LINUX_VERSION:=2.6.32.16
15LINUX_VERSION:=2.6.32.25
1616
1717include $(INCLUDE_DIR)/target.mk
1818
target/linux/generic-2.6/patches-2.6.32/025-mips_disable_fpu.patch
7171 /* Control registers */
7272
7373 #define FPCREG_RID 0 /* $0 = revision id */
74@@ -1274,6 +1276,13 @@ int fpu_emulator_cop1Handler(struct pt_r
74@@ -1281,6 +1283,13 @@ int fpu_emulator_cop1Handler(struct pt_r
7575
7676     return sig;
7777 }
target/linux/generic-2.6/patches-2.6.32/030-pci_disable_common_quirks.patch
2323 /* The Mellanox Tavor device gives false positive parity errors
2424  * Mark this device with a broken_parity_status, to allow
2525  * PCI scanning code to "skip" this now blacklisted device.
26@@ -1887,7 +1888,9 @@ static void __devinit fixup_rev1_53c810(
26@@ -1907,7 +1908,9 @@ static void __devinit fixup_rev1_53c810(
2727     }
2828 }
2929 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NCR, PCI_DEVICE_ID_NCR_53C810, fixup_rev1_53c810);
...... 
3333 /* Enable 1k I/O space granularity on the Intel P64H2 */
3434 static void __devinit quirk_p64h2_1k_io(struct pci_dev *dev)
3535 {
36@@ -2522,6 +2525,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
36@@ -2546,6 +2549,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
3737 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1518, quirk_i82576_sriov);
3838
3939 #endif /* CONFIG_PCI_IOV */
target/linux/generic-2.6/patches-2.6.32/150-netfilter_imq.patch
958958             dev_queue_xmit_nit(skb, dev);
959959
960960         if (netif_needs_gso(dev, skb)) {
961@@ -1789,8 +1796,7 @@ u16 skb_tx_hash(const struct net_device
961@@ -1789,8 +1796,7 @@ u16 skb_tx_hash(const struct net_device
962962 }
963963 EXPORT_SYMBOL(skb_tx_hash);
964964
...... 
11091109     new->csum = old->csum;
11101110     new->local_df = old->local_df;
11111111     new->pkt_type = old->pkt_type;
1112@@ -2776,6 +2879,13 @@ void __init skb_init(void)
1112@@ -2781,6 +2884,13 @@ void __init skb_init(void)
11131113                         0,
11141114                         SLAB_HWCACHE_ALIGN|SLAB_PANIC,
11151115                         NULL);
...... 
11831183 /* return EBUSY when somebody else is registered, return EEXIST if the
11841184  * same handler is registered, return 0 in case of success. */
11851185 int nf_register_queue_handler(u_int8_t pf, const struct nf_queue_handler *qh)
1186@@ -80,7 +100,7 @@ void nf_unregister_queue_handlers(const
1186@@ -80,7 +100,7 @@ void nf_unregister_queue_handlers(const
11871187 }
11881188 EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers);
11891189
target/linux/generic-2.6/patches-2.6.32/260-crypto_optional_tests.patch
2222 struct tcrypt_result {
2323     struct completion completion;
2424     int err;
25@@ -2350,8 +2352,11 @@ static int alg_find_test(const char *alg
25@@ -2434,8 +2436,11 @@ static int alg_find_test(const char *alg
2626     return -1;
2727 }
2828
...... 
3434     int i;
3535     int j;
3636     int rc;
37@@ -2406,5 +2411,8 @@ notest:
37@@ -2490,5 +2495,8 @@ notest:
3838     return 0;
3939 non_fips_alg:
4040     return -EINVAL;
target/linux/generic-2.6/patches-2.6.32/975-ssb_update.patch
11--- a/drivers/ssb/driver_chipcommon.c
22+++ b/drivers/ssb/driver_chipcommon.c
3@@ -233,6 +233,8 @@ void ssb_chipcommon_init(struct ssb_chip
4 {
5     if (!cc->dev)
6         return; /* We don't have a ChipCommon */
7+ if (cc->dev->id.revision >= 11)
8+ cc->status = chipco_read32(cc, SSB_CHIPCO_CHIPSTAT);
9     ssb_pmu_init(cc);
10     chipco_powercontrol_init(cc);
11     ssb_chipco_set_clockmode(cc, SSB_CLKMODE_FAST);
12@@ -370,6 +372,7 @@ u32 ssb_chipco_gpio_control(struct ssb_c
3@@ -373,6 +373,7 @@ u32 ssb_chipco_gpio_control(struct ssb_c
134 {
145     return chipco_write32_masked(cc, SSB_CHIPCO_GPIOCTL, mask, value);
156 }
...... 
345336 }
346337
347338 /* Get the word-offset for a SSB_SPROM_XXX define. */
348-#define SPOFF(offset) (((offset) - SSB_SPROM_BASE) / sizeof(u16))
339-#define SPOFF(offset) (((offset) - SSB_SPROM_BASE1) / sizeof(u16))
349340+#define SPOFF(offset) ((offset) / sizeof(u16))
350341 /* Helper to extract some _offset, which is one of the SSB_SPROM_XXX defines. */
351342 #define SPEX16(_outvar, _offset, _mask, _shift) \
352343     out->_outvar = ((in[SPOFF(_offset)] & (_mask)) >> (_shift))
353@@ -253,7 +254,7 @@ static int sprom_do_read(struct ssb_bus
354     int i;
355
356     for (i = 0; i < bus->sprom_size; i++)
357- sprom[i] = ioread16(bus->mmio + SSB_SPROM_BASE + (i * 2));
358+ sprom[i] = ioread16(bus->mmio + bus->sprom_offset + (i * 2));
359
360     return 0;
361 }
362@@ -284,7 +285,7 @@ static int sprom_do_write(struct ssb_bus
363             ssb_printk("75%%");
364         else if (i % 2)
365             ssb_printk(".");
366- writew(sprom[i], bus->mmio + SSB_SPROM_BASE + (i * 2));
367+ writew(sprom[i], bus->mmio + bus->sprom_offset + (i * 2));
368         mmiowb();
369         msleep(20);
370     }
371@@ -620,6 +621,14 @@ static int ssb_pci_sprom_get(struct ssb_
372     int err = -ENOMEM;
373     u16 *buf;
374
375+ if (!ssb_is_sprom_available(bus)) {
376+ ssb_printk(KERN_ERR PFX "No SPROM available!\n");
377+ return -ENODEV;
378+ }
379+
380+ bus->sprom_offset = (bus->chipco.dev->id.revision < 31) ?
381+ SSB_SPROM_BASE1 : SSB_SPROM_BASE31;
382+
383     buf = kcalloc(SSB_SPROMSIZE_WORDS_R123, sizeof(u16), GFP_KERNEL);
384     if (!buf)
385         goto out;
386344--- a/drivers/ssb/pcihost_wrapper.c
387345+++ b/drivers/ssb/pcihost_wrapper.c
388346@@ -12,6 +12,7 @@
...... 
404362+static int ssb_pcmcia_get_mac(struct pcmcia_device *p_dev,
405363+ tuple_t *tuple,
406364+ void *priv)
407+{
365 {
366- tuple_t tuple;
367- int res;
368- unsigned char buf[32];
408369+ struct ssb_sprom *sprom = priv;
409370+
410371+ if (tuple->TupleData[0] != CISTPL_FUNCE_LAN_NODE_ID)
...... 
420381+static int ssb_pcmcia_do_get_invariants(struct pcmcia_device *p_dev,
421382+ tuple_t *tuple,
422383+ void *priv)
423 {
424- tuple_t tuple;
425- int res;
426- unsigned char buf[32];
384+{
427385+ struct ssb_init_invariants *iv = priv;
428386     struct ssb_sprom *sprom = &iv->sprom;
429387     struct ssb_boardinfo *bi = &iv->boardinfo;
...... 
700658     if (err)
701659         ssb_printk(KERN_ERR PFX "SPROM write: Could not thaw all devices\n");
702660 out_unlock:
703@@ -179,3 +176,17 @@ const struct ssb_sprom *ssb_get_fallback
704 {
705     return fallback_sprom;
706 }
707+
708+/* http://bcm-v4.sipsolutions.net/802.11/IsSpromAvailable */
709+bool ssb_is_sprom_available(struct ssb_bus *bus)
710+{
711+ /* status register only exists on chipcomon rev >= 11 and we need check
712+ for >= 31 only */
713+ /* this routine differs from specs as we do not access SPROM directly
714+ on PCMCIA */
715+ if (bus->bustype == SSB_BUSTYPE_PCI &&
716+ bus->chipco.dev->id.revision >= 31)
717+ return bus->chipco.capabilities & SSB_CHIPCO_CAP_SPROM;
718+
719+ return true;
720+}
721661--- a/drivers/ssb/ssb_private.h
722662+++ b/drivers/ssb/ssb_private.h
723663@@ -176,19 +176,27 @@ extern const struct ssb_sprom *ssb_get_f
...... 
796736
797737     /* See enum ssb_quirks */
798738     unsigned int quirks;
799@@ -301,6 +305,7 @@ struct ssb_bus {
800     /* ID information about the Chip. */
801     u16 chip_id;
802     u16 chip_rev;
803+ u16 sprom_offset;
804     u16 sprom_size; /* number of words in sprom */
805     u8 chip_package;
806
807@@ -390,6 +395,9 @@ extern int ssb_bus_sdiobus_register(stru
808
809 extern void ssb_bus_unregister(struct ssb_bus *bus);
810
811+/* Does the device have an SPROM? */
812+extern bool ssb_is_sprom_available(struct ssb_bus *bus);
813+
814 /* Set a fallback SPROM.
815  * See kdoc at the function definition for complete documentation. */
816 extern int ssb_arch_set_fallback_sprom(const struct ssb_sprom *sprom);
817+++ b/include/linux/ssb/ssb_driver_chipcommon.h
818@@ -53,6 +53,7 @@
819 #define SSB_CHIPCO_CAP_64BIT 0x08000000 /* 64-bit Backplane */
820 #define SSB_CHIPCO_CAP_PMU 0x10000000 /* PMU available (rev >= 20) */
821 #define SSB_CHIPCO_CAP_ECI 0x20000000 /* ECI available (rev >= 20) */
822+#define SSB_CHIPCO_CAP_SPROM 0x40000000 /* SPROM present */
823 #define SSB_CHIPCO_CORECTL 0x0008
824 #define SSB_CHIPCO_CORECTL_UARTCLK0 0x00000001 /* Drive UART with internal clock */
825 #define SSB_CHIPCO_CORECTL_SE 0x00000002 /* sync clk out enable (corerev >= 3) */
826@@ -385,6 +386,7 @@
827
828
829 /** Chip specific Chip-Status register contents. */
830+#define SSB_CHIPCO_CHST_4322_SPROM_EXISTS 0x00000040 /* SPROM present */
831 #define SSB_CHIPCO_CHST_4325_SPROM_OTP_SEL 0x00000003
832 #define SSB_CHIPCO_CHST_4325_DEFCIS_SEL 0 /* OTP is powered up, use def. CIS, no SPROM */
833 #define SSB_CHIPCO_CHST_4325_SPROM_SEL 1 /* OTP is powered up, SPROM is present */
834@@ -398,6 +400,18 @@
835 #define SSB_CHIPCO_CHST_4325_RCAL_VALUE_SHIFT 4
836 #define SSB_CHIPCO_CHST_4325_PMUTOP_2B 0x00000200 /* 1 for 2b, 0 for to 2a */
837
838+/** Macros to determine SPROM presence based on Chip-Status register. */
839+#define SSB_CHIPCO_CHST_4312_SPROM_PRESENT(status) \
840+ ((status & SSB_CHIPCO_CHST_4325_SPROM_OTP_SEL) != \
841+ SSB_CHIPCO_CHST_4325_OTP_SEL)
842+#define SSB_CHIPCO_CHST_4322_SPROM_PRESENT(status) \
843+ (status & SSB_CHIPCO_CHST_4322_SPROM_EXISTS)
844+#define SSB_CHIPCO_CHST_4325_SPROM_PRESENT(status) \
845+ (((status & SSB_CHIPCO_CHST_4325_SPROM_OTP_SEL) != \
846+ SSB_CHIPCO_CHST_4325_DEFCIS_SEL) && \
847+ ((status & SSB_CHIPCO_CHST_4325_SPROM_OTP_SEL) != \
848+ SSB_CHIPCO_CHST_4325_OTP_SEL))
849+
850
851
852 /** Clockcontrol masks and values **/
853@@ -564,6 +578,7 @@ struct ssb_chipcommon_pmu {
854 struct ssb_chipcommon {
855     struct ssb_device *dev;
856     u32 capabilities;
857+ u32 status;
858     /* Fast Powerup Delay constant */
859     u16 fast_pwrup_delay;
860     struct ssb_chipcommon_pmu pmu;
861739--- a/include/linux/ssb/ssb_regs.h
862740+++ b/include/linux/ssb/ssb_regs.h
863@@ -170,26 +170,27 @@
864 #define SSB_SPROMSIZE_WORDS_R4 220
865 #define SSB_SPROMSIZE_BYTES_R123 (SSB_SPROMSIZE_WORDS_R123 * sizeof(u16))
741@@ -172,25 +172,25 @@
866742 #define SSB_SPROMSIZE_BYTES_R4 (SSB_SPROMSIZE_WORDS_R4 * sizeof(u16))
867-#define SSB_SPROM_BASE 0x1000
743 #define SSB_SPROM_BASE1 0x1000
744 #define SSB_SPROM_BASE31 0x0800
868745-#define SSB_SPROM_REVISION 0x107E
869+#define SSB_SPROM_BASE1 0x1000
870+#define SSB_SPROM_BASE31 0x0800
871746+#define SSB_SPROM_REVISION 0x007E
872747 #define SSB_SPROM_REVISION_REV 0x00FF /* SPROM Revision number */
873748 #define SSB_SPROM_REVISION_CRC 0xFF00 /* SPROM CRC8 value */
...... 
899773 #define SSB_SPROM1_BINF_BREV 0x00FF /* Board Revision */
900774 #define SSB_SPROM1_BINF_CCODE 0x0F00 /* Country Code */
901775 #define SSB_SPROM1_BINF_CCODE_SHIFT 8
902@@ -197,63 +198,63 @@
776@@ -198,63 +198,63 @@
903777 #define SSB_SPROM1_BINF_ANTBG_SHIFT 12
904778 #define SSB_SPROM1_BINF_ANTA 0xC000 /* Available A-PHY antennas */
905779 #define SSB_SPROM1_BINF_ANTA_SHIFT 14
...... 
991865 #define SSB_SPROM3_CCKPO_1M 0x000F /* 1M Rate PO */
992866 #define SSB_SPROM3_CCKPO_2M 0x00F0 /* 2M Rate PO */
993867 #define SSB_SPROM3_CCKPO_2M_SHIFT 4
994@@ -264,100 +265,100 @@
868@@ -265,100 +265,100 @@
995869 #define SSB_SPROM3_OFDMGPO 0x107A /* G-PHY OFDM Power Offset (4 bytes, BigEndian) */
996870
997871 /* SPROM Revision 4 */
...... 
11491023 #define SSB_SPROM8_RSSISMF2G 0x000F
11501024 #define SSB_SPROM8_RSSISMC2G 0x00F0
11511025 #define SSB_SPROM8_RSSISMC2G_SHIFT 4
1152@@ -365,7 +366,7 @@
1026@@ -366,7 +366,7 @@
11531027 #define SSB_SPROM8_RSSISAV2G_SHIFT 8
11541028 #define SSB_SPROM8_BXA2G 0x1800
11551029 #define SSB_SPROM8_BXA2G_SHIFT 11
...... 
11581032 #define SSB_SPROM8_RSSISMF5G 0x000F
11591033 #define SSB_SPROM8_RSSISMC5G 0x00F0
11601034 #define SSB_SPROM8_RSSISMC5G_SHIFT 4
1161@@ -373,47 +374,47 @@
1035@@ -374,47 +374,47 @@
11621036 #define SSB_SPROM8_RSSISAV5G_SHIFT 8
11631037 #define SSB_SPROM8_BXA5G 0x1800
11641038 #define SSB_SPROM8_BXA5G_SHIFT 11
target/linux/generic-2.6/patches-2.6.32/980-vm_exports.patch
6868  * macro override instead of weak attribute alias, to workaround
6969--- a/kernel/sched.c
7070+++ b/kernel/sched.c
71@@ -6113,6 +6113,7 @@ int can_nice(const struct task_struct *p
71@@ -6224,6 +6224,7 @@ int can_nice(const struct task_struct *p
7272     return (nice_rlim <= p->signal->rlim[RLIMIT_NICE].rlim_cur ||
7373         capable(CAP_SYS_NICE));
7474 }
...... 
8686
8787 /**
8888  * zap_vma_ptes - remove ptes mapping the vma
89@@ -2486,6 +2487,7 @@ int vmtruncate_range(struct inode *inode
89@@ -2496,6 +2497,7 @@ int vmtruncate_range(struct inode *inode
9090
9191     return 0;
9292 }
...... 
114114                 void *caller)
115115--- a/include/linux/mm.h
116116+++ b/include/linux/mm.h
117@@ -713,6 +713,7 @@ extern void show_free_areas(void);
117@@ -717,6 +717,7 @@ extern void show_free_areas(void);
118118
119119 int shmem_lock(struct file *file, int lock, struct user_struct *user);
120120 struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags);
target/linux/ixp4xx/Makefile
1212FEATURES:=squashfs
1313SUBTARGETS=generic harddisk
1414
15LINUX_VERSION:=2.6.32.16
15LINUX_VERSION:=2.6.32.25
1616
1717include $(INCLUDE_DIR)/target.mk
1818
target/linux/orion/Makefile
1313SUBTARGETS=generic harddisk
1414CFLAGS=-Os -pipe -march=armv5t -mtune=xscale -funit-at-a-time
1515
16LINUX_VERSION:=2.6.32.16
16LINUX_VERSION:=2.6.32.25
1717
1818include $(INCLUDE_DIR)/target.mk
1919
target/linux/ppc40x/Makefile
1212FEATURES:=squashfs
1313CFLAGS:=-Os -pipe -funit-at-a-time -mcpu=405
1414
15LINUX_VERSION:=2.6.32.16
15LINUX_VERSION:=2.6.32.25
1616
1717include $(INCLUDE_DIR)/target.mk
1818
target/linux/ppc44x/Makefile
1212FEATURES:=squashfs
1313CFLAGS:=-Os -pipe -funit-at-a-time -mcpu=440
1414
15LINUX_VERSION:=2.6.32.16
15LINUX_VERSION:=2.6.32.25
1616
1717include $(INCLUDE_DIR)/target.mk
1818
target/linux/rb532/Makefile
1111BOARDNAME:=Mikrotik RouterBoard 532
1212FEATURES:=jffs2 pci targz
1313
14LINUX_VERSION:=2.6.32.16
14LINUX_VERSION:=2.6.32.25
1515
1616include $(INCLUDE_DIR)/target.mk
1717DEFAULT_PACKAGES += wpad-mini kmod-madwifi kmod-input-rb532
target/linux/x86/Makefile
1212FEATURES:=squashfs jffs2 ext2 vdi vmdk pcmcia targz
1313SUBTARGETS=generic olpc xen_domu ep80579
1414
15LINUX_VERSION:=2.6.32.16
15LINUX_VERSION:=2.6.32.25
1616
1717include $(INCLUDE_DIR)/target.mk
1818
target/linux/xburst/Makefile
1212FEATURES:=jffs2 targz ubifs audio
1313SUBTARGETS:=qi_lb60 n516 n526
1414
15LINUX_VERSION:=2.6.32.16
15LINUX_VERSION:=2.6.32.25
1616
1717DEVICE_TYPE=other
1818

Archive Download the corresponding diff file



interactive