switch ixp4xx and ubicom32 to 2.6.30, get rid of 2.6.28 files
authorImre Kaloz <kaloz@openwrt.org>
Sun, 27 Dec 2009 21:28:02 +0000 (21:28 +0000)
committerImre Kaloz <kaloz@openwrt.org>
Sun, 27 Dec 2009 21:28:02 +0000 (21:28 +0000)
SVN-Revision: 18952

164 files changed:
target/linux/adm5120/patches-2.6.28/001-adm5120.patch [deleted file]
target/linux/adm5120/patches-2.6.28/002-adm5120_flash.patch [deleted file]
target/linux/adm5120/patches-2.6.28/003-adm5120_switch.patch [deleted file]
target/linux/adm5120/patches-2.6.28/005-adm5120_usb.patch [deleted file]
target/linux/adm5120/patches-2.6.28/007-adm5120_pci.patch [deleted file]
target/linux/adm5120/patches-2.6.28/009-adm5120_leds_switch_trigger.patch [deleted file]
target/linux/adm5120/patches-2.6.28/101-cfi_fixup_macronix_bootloc.patch [deleted file]
target/linux/adm5120/patches-2.6.28/102-jedec_pmc_39lvxxx_chips.patch [deleted file]
target/linux/adm5120/patches-2.6.28/103-mtd_trxsplit.patch [deleted file]
target/linux/adm5120/patches-2.6.28/120-rb153_cf_driver.patch [deleted file]
target/linux/adm5120/patches-2.6.28/200-amba_pl010_hacks.patch [deleted file]
target/linux/adm5120/patches-2.6.28/201-amba_bus_hacks.patch [deleted file]
target/linux/adm5120/patches-2.6.28/203-gpio_leds_brightness.patch [deleted file]
target/linux/adm5120/patches-2.6.28/310-adm5120_wdt.patch [deleted file]
target/linux/adm5120/patches-2.6.28/801-mtd_trxsplit_2.6.28_fix.patch [deleted file]
target/linux/au1000/patches-2.6.28/001-mtx1_cmdline.patch [deleted file]
target/linux/au1000/patches-2.6.28/002-openwrt_rootfs.patch [deleted file]
target/linux/au1000/patches-2.6.28/003-au1000_eth_ioctl.patch [deleted file]
target/linux/au1000/patches-2.6.28/004-state_led_phy_fix.patch [deleted file]
target/linux/au1000/patches-2.6.28/006-missing_string_header.patch [deleted file]
target/linux/au1000/patches-2.6.28/007-gpiolib.patch [deleted file]
target/linux/brcm47xx/config-2.6.28 [deleted file]
target/linux/brcm47xx/patches-2.6.28/100-board_support.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/110-flash_map.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/130-remove_scache.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/150-cpu_fixes.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/160-kmap_coherent.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/170-128MB_ram_bugfix.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/210-b44_phy_fix.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/212-b44_alignment_fix.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/220-bcm5354.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/250-ohci-ssb-usb2.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/260-ohci-set-dma-mask.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/270-ehci-ssb.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/275-usb2-bcm5354-init.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/300-fork_cacheflush.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/301-kmod-fuse-dcache-bug-r4k.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/302-kmod-fuse-dcache-bug-fuse.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/310-no_highpage.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/400-arch-bcm47xx.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/500-lzma_initramfs.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/601-mips-remove-pci-collision-check.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/700-ssb-gigabit-ethernet-driver.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/800-fix_cfe_detection.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/811-bcm47xx-fix-gpio-direction-retval.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/812-disable_wgt634u_crap.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/813-use_netdev_alloc_skb.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/814-export_ssb_watchdog.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/815-watchdog.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/816-ssb_fix_irq_setup.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/900-disable_early_printk.patch [deleted file]
target/linux/brcm47xx/patches-2.6.28/920-cache-wround.patch [deleted file]
target/linux/generic-2.6/config-2.6.28 [deleted file]
target/linux/generic-2.6/files-2.6.28/drivers/leds/ledtrig-morse.c [deleted file]
target/linux/generic-2.6/files-2.6.28/drivers/leds/ledtrig-netdev.c [deleted file]
target/linux/generic-2.6/patches-2.6.28/001-squashfs.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/002-lzma_decompress.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/003-squashfs_lzma.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/004-extra_optimization.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/005-squashfs_fix.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/006-gcc4_inline_fix.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/007-samsung_flash.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/008-squashfs_vfs_super.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/010-disable_old_squashfs_compatibility.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/011-mips_boot.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/020-mips_multi_machine_support.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/021-mips_image_cmdline_hack.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/022-mips_div64_gcc4.4.0.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/023-mips_delay_gcc4.4.0.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/024-mips_disable_fpu.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/025-mips_fix_loading_of_modules_with_unresolved_weak_sy.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/026-mips_module_reloc.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/027-module_exports.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/028-arm_module_unresolved_weak_sym.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/030-pci_disable_common_quirks.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/060-block2mtd_init.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/065-rootfs_split.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/070-redboot_space.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/071-redboot_boardconfig.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/080-mtd_plat_nand_chip_fixup.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/081-mtd_myloader_partition_parser.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/082-mtd_myloader_use_linux_byteorder_h.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/090-mtd_fix_nand_correct_data_return_code.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/100-netfilter_layer7_2.21.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/101-netfilter_layer7_pktmatch.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/110-netfilter_match_speedup.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/130-netfilter_ipset.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/150-netfilter_imq.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/180-netfilter_depends.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/190-netfilter_rtsp.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/200-sched_esfq.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/201-jhash3.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/202-mips-freestanding.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/203-slab_maxsize.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/204-jffs2_eofdetect.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/205-skb_padding.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/207-powerpc_asm_segment_h.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/208-rtl8110sb_fix.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/209-mini_fo.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/210-mini_fo_2.6.25_fixes.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/211-mini_fo_2.6.25_dentry_open_war.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/212-mini_fo_2.6.26_fixes.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/213-mini_fo_2.6.27_fixes.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/219-kobject_uevent.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/220-sound_kconfig.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/230-add-r_arm_v4bx-relocation-for-arm-module-loader.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/240-packet_socket_type.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/250-pppoe_header_pad.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/260-extend_pfifo_fast.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/300-fix_byteorder_header.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/400-ledtrig_morse.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/402-ledtrig_netdev.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/410-gpio_buttons.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/420-gpiodev.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/450-i2c_at24_add_kernel_interface_read_write.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/510-yaffs_support.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/511-yaffs-cvs-2009-04-24.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/512-yaffs-2.6.28.1-fix.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/600-phy_extension.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/620-phy_adm6996.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/630-phy_packets.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/650-swconfig.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/670-phy_ip175c.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/690-phy_rtl8306.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/700-rtc7301.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/801-usb_serial_endpoint_size.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/840-unable_to_open_console.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/900-headers_type_and_time.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/902-darwin_scripts_include.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/903-hostap_txpower.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/903-stddef_include.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/905-i386_build.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/906-unifdef_getline.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/920-00-spi-gpio.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/920-01-hotpluggable-spi-gpio.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/920-02-spi-gpio-without-cs.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/920-03-spi-gpio-fix-miso-bit.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/920-04-spi-gpio-implement-spi-delay.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/921-gpio_spi_driver.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/922-gpiommc.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/923-gpiommc-configfs-locking.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/924-cs5535_gpio.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/925-modify-i2c-gpio-initcall-level.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/940-wireless_mesh_header.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/951-revert_gcc4_4_fixes.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/960-arm_lzma_loader.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/970-ocf_kbuild_integration.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/971-ocf_20080917.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/972-ocf_compile_fix.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/973-ocf_2.6.27_fix.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/974-ssb_b43_default_on.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/975-ssb-fallback-sprom.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/976-ssb_update.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/977-textsearch_kconfig_hacks.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/979-crypto_add_kconfig_prompts.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/980-vm_exports.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/981-vsprintf_backport.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/985-cris-headers.patch [deleted file]
target/linux/generic-2.6/patches-2.6.28/999-use_preinit_as_init.patch [deleted file]
target/linux/ixp4xx/Makefile
target/linux/ixp4xx/config-2.6.28 [deleted file]
target/linux/rdc/config-2.6.28 [deleted file]
target/linux/ubicom32/Makefile
target/linux/ubicom32/config-2.6.28 [deleted file]

diff --git a/target/linux/adm5120/patches-2.6.28/001-adm5120.patch b/target/linux/adm5120/patches-2.6.28/001-adm5120.patch
deleted file mode 100644 (file)
index b67e108..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
---- a/arch/mips/Kconfig
-+++ b/arch/mips/Kconfig
-@@ -19,6 +19,21 @@ choice
-       prompt "System type"
-       default SGI_IP22
-+config ADM5120
-+      bool "Infineon/ADMtek ADM5120 SoC based machines"
-+      select CEVT_R4K
-+      select CSRC_R4K
-+      select SYS_HAS_CPU_MIPS32_R1
-+      select SYS_HAS_EARLY_PRINTK
-+      select DMA_NONCOHERENT
-+      select IRQ_CPU
-+      select SYS_SUPPORTS_LITTLE_ENDIAN
-+      select SYS_SUPPORTS_BIG_ENDIAN
-+      select SYS_SUPPORTS_32BIT_KERNEL
-+      select ARCH_REQUIRE_GPIOLIB
-+      select SWAP_IO_SPACE if CPU_BIG_ENDIAN
-+      select MIPS_MACHINE
-+
- config MACH_ALCHEMY
-       bool "Alchemy processor based machines"
-@@ -597,6 +612,7 @@ config WR_PPMC
- endchoice
-+source "arch/mips/adm5120/Kconfig"
- source "arch/mips/alchemy/Kconfig"
- source "arch/mips/basler/excite/Kconfig"
- source "arch/mips/emma/Kconfig"
---- a/arch/mips/Makefile
-+++ b/arch/mips/Makefile
-@@ -183,6 +183,22 @@ cflags-$(CONFIG_MACH_JAZZ)        += -I$(srctre
- load-$(CONFIG_MACH_JAZZ)      += 0xffffffff80080000
- #
-+# Infineon/ADMtek ADM5120
-+#
-+libs-$(CONFIG_ADM5120)                        += arch/mips/adm5120/prom/
-+core-$(CONFIG_ADM5120)                        += arch/mips/adm5120/common/
-+core-$(CONFIG_ADM5120_OEM_CELLVISION) += arch/mips/adm5120/cellvision/
-+core-$(CONFIG_ADM5120_OEM_COMPEX)     += arch/mips/adm5120/compex/
-+core-$(CONFIG_ADM5120_OEM_EDIMAX)     += arch/mips/adm5120/edimax/
-+core-$(CONFIG_ADM5120_OEM_INFINEON)   += arch/mips/adm5120/infineon/
-+core-$(CONFIG_ADM5120_OEM_MIKROTIK)   += arch/mips/adm5120/mikrotik/
-+core-$(CONFIG_ADM5120_OEM_MOTOROLA)   += arch/mips/adm5120/motorola/
-+core-$(CONFIG_ADM5120_OEM_OSBRIDGE)   += arch/mips/adm5120/osbridge/
-+core-$(CONFIG_ADM5120_OEM_ZYXEL)      += arch/mips/adm5120/zyxel/
-+cflags-$(CONFIG_ADM5120)              += -I$(srctree)/arch/mips/include/asm/mach-adm5120
-+load-$(CONFIG_ADM5120)                        += 0xffffffff80001000
-+
-+#
- # Common Alchemy Au1x00 stuff
- #
- core-$(CONFIG_SOC_AU1X00)     += arch/mips/alchemy/common/
diff --git a/target/linux/adm5120/patches-2.6.28/002-adm5120_flash.patch b/target/linux/adm5120/patches-2.6.28/002-adm5120_flash.patch
deleted file mode 100644 (file)
index 1647070..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/drivers/mtd/maps/Kconfig
-+++ b/drivers/mtd/maps/Kconfig
-@@ -540,5 +540,9 @@ config MTD_PLATRAM
-         This selection automatically selects the map_ram driver.
-+config MTD_ADM5120
-+      tristate "Map driver for ADM5120 based boards"
-+      depends on ADM5120
-+
- endmenu
---- a/drivers/mtd/maps/Makefile
-+++ b/drivers/mtd/maps/Makefile
-@@ -42,6 +42,7 @@ obj-$(CONFIG_MTD_DBOX2)              += dbox2-flash.
- obj-$(CONFIG_MTD_SOLUTIONENGINE)+= solutionengine.o
- obj-$(CONFIG_MTD_PCI)         += pci.o
- obj-$(CONFIG_MTD_ALCHEMY)       += alchemy-flash.o
-+obj-$(CONFIG_MTD_ADM5120)             += adm5120-flash.o
- obj-$(CONFIG_MTD_AUTCPU12)    += autcpu12-nvram.o
- obj-$(CONFIG_MTD_EDB7312)     += edb7312.o
- obj-$(CONFIG_MTD_IMPA7)               += impa7.o
diff --git a/target/linux/adm5120/patches-2.6.28/003-adm5120_switch.patch b/target/linux/adm5120/patches-2.6.28/003-adm5120_switch.patch
deleted file mode 100644 (file)
index 1359078..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
---- a/drivers/net/Kconfig
-+++ b/drivers/net/Kconfig
-@@ -602,6 +602,10 @@ config MIPS_AU1X00_ENET
-         If you have an Alchemy Semi AU1X00 based system
-         say Y.  Otherwise, say N.
-+config ADM5120_ENET
-+      tristate "ADM5120 Ethernet switch support"
-+      depends on ADM5120
-+
- config SGI_IOC3_ETH
-       bool "SGI IOC3 Ethernet"
-       depends on PCI && SGI_IP27
---- a/drivers/net/Makefile
-+++ b/drivers/net/Makefile
-@@ -191,6 +191,7 @@ obj-$(CONFIG_SC92031) += sc92031.o
- # This is also a 82596 and should probably be merged
- obj-$(CONFIG_LP486E) += lp486e.o
-+obj-$(CONFIG_ADM5120_ENET) += adm5120sw.o
- obj-$(CONFIG_ETH16I) += eth16i.o
- obj-$(CONFIG_ZORRO8390) += zorro8390.o
- obj-$(CONFIG_HPLANCE) += hplance.o 7990.o
diff --git a/target/linux/adm5120/patches-2.6.28/005-adm5120_usb.patch b/target/linux/adm5120/patches-2.6.28/005-adm5120_usb.patch
deleted file mode 100644 (file)
index 75cd81b..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
---- a/drivers/usb/Makefile
-+++ b/drivers/usb/Makefile
-@@ -17,6 +17,7 @@ obj-$(CONFIG_USB_SL811_HCD)  += host/
- obj-$(CONFIG_USB_U132_HCD)    += host/
- obj-$(CONFIG_USB_R8A66597_HCD)        += host/
- obj-$(CONFIG_USB_HWA_HCD)     += host/
-+obj-$(CONFIG_USB_ADM5120_HCD) += host/
- obj-$(CONFIG_USB_C67X00_HCD)  += c67x00/
---- a/drivers/usb/host/Kconfig
-+++ b/drivers/usb/host/Kconfig
-@@ -4,6 +4,10 @@
- comment "USB Host Controller Drivers"
-       depends on USB
-+config USB_ADM5120_HCD
-+      tristate "ADM5120 HCD support (EXPERIMENTAL)"
-+      depends on USB && ADM5120 && EXPERIMENTAL
-+
- config USB_C67X00_HCD
-       tristate "Cypress C67x00 HCD support"
-       depends on USB
---- a/drivers/usb/host/Makefile
-+++ b/drivers/usb/host/Makefile
-@@ -12,6 +12,7 @@ obj-$(CONFIG_USB_WHCI_HCD)   += whci/
- obj-$(CONFIG_PCI)             += pci-quirks.o
-+obj-$(CONFIG_USB_ADM5120_HCD) += adm5120-hcd.o
- obj-$(CONFIG_USB_EHCI_HCD)    += ehci-hcd.o
- obj-$(CONFIG_USB_ISP116X_HCD) += isp116x-hcd.o
- obj-$(CONFIG_USB_OHCI_HCD)    += ohci-hcd.o
diff --git a/target/linux/adm5120/patches-2.6.28/007-adm5120_pci.patch b/target/linux/adm5120/patches-2.6.28/007-adm5120_pci.patch
deleted file mode 100644 (file)
index 3393cfe..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
---- a/arch/mips/pci/Makefile
-+++ b/arch/mips/pci/Makefile
-@@ -52,3 +52,4 @@ obj-$(CONFIG_VICTOR_MPC30X)  += fixup-mpc
- obj-$(CONFIG_ZAO_CAPCELLA)    += fixup-capcella.o
- obj-$(CONFIG_WR_PPMC)         += fixup-wrppmc.o
- obj-$(CONFIG_MIKROTIK_RB532)  += pci-rc32434.o ops-rc32434.o fixup-rc32434.o
-+obj-$(CONFIG_ADM5120)         += pci-adm5120.o
---- a/include/linux/pci_ids.h
-+++ b/include/linux/pci_ids.h
-@@ -1729,6 +1729,9 @@
- #define PCI_VENDOR_ID_ESDGMBH         0x12fe
- #define PCI_DEVICE_ID_ESDGMBH_CPCIASIO4 0x0111
-+#define PCI_VENDOR_ID_ADMTEK          0x1317
-+#define PCI_DEVICE_ID_ADMTEK_ADM5120  0x5120
-+
- #define PCI_VENDOR_ID_SIIG            0x131f
- #define PCI_SUBVENDOR_ID_SIIG         0x131f
- #define PCI_DEVICE_ID_SIIG_1S_10x_550 0x1000
diff --git a/target/linux/adm5120/patches-2.6.28/009-adm5120_leds_switch_trigger.patch b/target/linux/adm5120/patches-2.6.28/009-adm5120_leds_switch_trigger.patch
deleted file mode 100644 (file)
index 1881892..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/drivers/leds/Kconfig
-+++ b/drivers/leds/Kconfig
-@@ -234,4 +234,12 @@ config LEDS_TRIGGER_NETDEV
-         This allows LEDs to be controlled by network device activity.
-         If unsure, say Y.
-+config LEDS_TRIGGER_ADM5120_SWITCH
-+      tristate "LED ADM5120 Switch Port Status Trigger"
-+      depends on LEDS_TRIGGERS && ADM5120
-+      help
-+        This allows LEDs to be controlled by the port states of
-+        the ADM5120 built-in Ethernet Switch
-+        If unsure, say N.
-+
- endif # NEW_LEDS
---- a/drivers/leds/Makefile
-+++ b/drivers/leds/Makefile
-@@ -33,3 +33,4 @@ obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT) += 
- obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o
- obj-$(CONFIG_LEDS_TRIGGER_MORSE)      += ledtrig-morse.o
- obj-$(CONFIG_LEDS_TRIGGER_NETDEV)      += ledtrig-netdev.o
-+obj-$(CONFIG_LEDS_TRIGGER_ADM5120_SWITCH) += ledtrig-adm5120-switch.o
diff --git a/target/linux/adm5120/patches-2.6.28/101-cfi_fixup_macronix_bootloc.patch b/target/linux/adm5120/patches-2.6.28/101-cfi_fixup_macronix_bootloc.patch
deleted file mode 100644 (file)
index ab6d221..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
---- a/drivers/mtd/chips/cfi_cmdset_0002.c
-+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -53,6 +53,12 @@
- #define AT49BV6416            0x00d6
- #define MANUFACTURER_SAMSUNG  0x00ec
-+/* Macronix */
-+#define MX29LV160B    0x2249  /* MX29LV160 Bottom-boot chip */
-+#define MX29LV160T    0x22C4  /* MX29LV160 Top-boot chip */
-+#define MX29LV320B    0x22A8  /* MX29LV320 Bottom-boot chip */
-+#define MX29LV320T    0x22A7  /* MX29LV320 Top-boot chip */
-+
- static int cfi_amdstd_read (struct mtd_info *, loff_t, size_t, size_t *, u_char *);
- static int cfi_amdstd_write_words(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
- static int cfi_amdstd_write_buffers(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
-@@ -283,6 +289,41 @@ static void fixup_s29gl032n_sectors(stru
-       }
- }
-+#ifdef CONFIG_MTD_CFI_FIXUP_MACRONIX_BOOTLOC
-+/*
-+ * Some Macronix chips has no/bad bootblock information in the CFI table
-+ */
-+static void fixup_macronix_bootloc(struct mtd_info *mtd, void* param)
-+{
-+      struct map_info *map = mtd->priv;
-+      struct cfi_private *cfi = map->fldrv_priv;
-+      struct cfi_pri_amdstd *extp = cfi->cmdset_priv;
-+      __u8 t;
-+
-+      switch (cfi->id) {
-+      /* TODO: put affected chip ids here */
-+      case MX29LV160B:
-+      case MX29LV320B:
-+              t = 2;  /* Bottom boot */
-+              break;
-+      case MX29LV160T:
-+      case MX29LV320T:
-+              t = 3;  /* Top boot */
-+              break;
-+      default:
-+              return;
-+      }
-+
-+      if (extp->TopBottom == t)
-+              /* boot location detected by the CFI layer is correct */
-+              return;
-+
-+      extp->TopBottom = t;
-+      printk("%s: Macronix chip detected, id:0x%04X, boot location forced "
-+              "to %s\n", map->name, cfi->id, (t == 2) ? "bottom" : "top");
-+}
-+#endif /* CONFIG_MTD_CFI_FIXUP_MACRONIX_BOOTLOC */
-+
- static struct cfi_fixup cfi_fixup_table[] = {
-       { CFI_MFR_ATMEL, CFI_ID_ANY, fixup_convert_atmel_pri, NULL },
- #ifdef AMD_BOOTLOC_BUG
-@@ -319,6 +360,9 @@ static struct cfi_fixup fixup_table[] = 
-        */
-       { CFI_MFR_ANY, CFI_ID_ANY, fixup_use_erase_chip, NULL },
-       { CFI_MFR_ATMEL, AT49BV6416, fixup_use_atmel_lock, NULL },
-+#ifdef CONFIG_MTD_CFI_FIXUP_MACRONIX_BOOTLOC
-+      { MANUFACTURER_MACRONIX, CFI_ID_ANY, fixup_macronix_bootloc, NULL, },
-+#endif
-       { 0, 0, NULL, NULL }
- };
---- a/drivers/mtd/chips/Kconfig
-+++ b/drivers/mtd/chips/Kconfig
-@@ -198,6 +198,14 @@ config MTD_CFI_AMDSTD
-         provides support for one of those command sets, used on chips
-         including the AMD Am29LV320.
-+config MTD_CFI_FIXUP_MACRONIX_BOOTLOC
-+      bool "Fix boot-block location for Macronix flash chips"
-+      depends on MTD_CFI_AMDSTD
-+      help
-+        Some Macronix flash chips have no/wrong boot-block location in the
-+        CFI table, and the driver may detect the type incorrectly. Select
-+        this if your board has such chip.
-+
- config MTD_CFI_STAA
-       tristate "Support for ST (Advanced Architecture) flash chips"
-       depends on MTD_GEN_PROBE
diff --git a/target/linux/adm5120/patches-2.6.28/102-jedec_pmc_39lvxxx_chips.patch b/target/linux/adm5120/patches-2.6.28/102-jedec_pmc_39lvxxx_chips.patch
deleted file mode 100644 (file)
index 6c827c8..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
---- a/drivers/mtd/chips/jedec_probe.c
-+++ b/drivers/mtd/chips/jedec_probe.c
-@@ -128,6 +128,10 @@
- #define UPD29F064115  0x221C
- /* PMC */
-+#define PM39LV512     0x001B
-+#define PM39LV010     0x001C
-+#define PM39LV020     0x003D
-+#define PM39LV040     0x003E
- #define PM49FL002     0x006D
- #define PM49FL004     0x006E
- #define PM49FL008     0x006A
-@@ -1248,6 +1252,54 @@ static const struct amd_flash_info jedec
-                       ERASEINFO(0x02000,2),
-                       ERASEINFO(0x04000,1),
-               }
-+        }, {
-+              .mfr_id         = MANUFACTURER_PMC,
-+              .dev_id         = PM39LV512,
-+              .name           = "PMC Pm39LV512",
-+              .devtypes       = CFI_DEVICETYPE_X8,
-+              .uaddr          = MTD_UADDR_0x0555_0x02AA,
-+              .dev_size       = SIZE_64KiB,
-+              .cmd_set        = P_ID_AMD_STD,
-+              .nr_regions     = 1,
-+              .regions        = {
-+                      ERASEINFO(0x01000,16),
-+              }
-+        }, {
-+              .mfr_id         = MANUFACTURER_PMC,
-+              .dev_id         = PM39LV010,
-+              .name           = "PMC Pm39LV010",
-+              .devtypes       = CFI_DEVICETYPE_X8,
-+              .uaddr          = MTD_UADDR_0x0555_0x02AA,
-+              .dev_size       = SIZE_128KiB,
-+              .cmd_set        = P_ID_AMD_STD,
-+              .nr_regions     = 1,
-+              .regions        = {
-+                      ERASEINFO(0x01000,32),
-+              }
-+        }, {
-+              .mfr_id         = MANUFACTURER_PMC,
-+              .dev_id         = PM39LV020,
-+              .name           = "PMC Pm39LV020",
-+              .devtypes       = CFI_DEVICETYPE_X8,
-+              .uaddr          = MTD_UADDR_0x0555_0x02AA,
-+              .dev_size       = SIZE_256KiB,
-+              .cmd_set        = P_ID_AMD_STD,
-+              .nr_regions     = 1,
-+              .regions        = {
-+                      ERASEINFO(0x01000,64),
-+              }
-+        }, {
-+              .mfr_id         = MANUFACTURER_PMC,
-+              .dev_id         = PM39LV040,
-+              .name           = "PMC Pm39LV040",
-+              .devtypes       = CFI_DEVICETYPE_X8,
-+              .uaddr          = MTD_UADDR_0x0555_0x02AA,
-+              .dev_size       = SIZE_512KiB,
-+              .cmd_set        = P_ID_AMD_STD,
-+              .nr_regions     = 1,
-+              .regions        = {
-+                      ERASEINFO(0x01000,128),
-+              }
-       }, {
-               .mfr_id         = MANUFACTURER_PMC,
-               .dev_id         = PM49FL002,
diff --git a/target/linux/adm5120/patches-2.6.28/103-mtd_trxsplit.patch b/target/linux/adm5120/patches-2.6.28/103-mtd_trxsplit.patch
deleted file mode 100644 (file)
index d3b0858..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/drivers/mtd/Kconfig
-+++ b/drivers/mtd/Kconfig
-@@ -55,6 +55,11 @@ config MTD_ROOTFS_SPLIT
-       depends on MTD_PARTITIONS
-       default y
-+config MTD_TRXSPLIT
-+      bool "Automatically find and split TRX partitions"
-+      depends on MTD_PARTITIONS
-+      default n
-+
- config MTD_REDBOOT_PARTS
-       tristate "RedBoot partition table parsing"
-       depends on MTD_PARTITIONS
---- a/drivers/mtd/Makefile
-+++ b/drivers/mtd/Makefile
-@@ -8,6 +8,7 @@ mtd-y                          := mtdcore.o mtdsuper.o
- mtd-$(CONFIG_MTD_PARTITIONS)  += mtdpart.o
- obj-$(CONFIG_MTD_CONCAT)      += mtdconcat.o
-+obj-$(CONFIG_MTD_TRXSPLIT)    += trxsplit.o
- obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
- obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
- obj-$(CONFIG_MTD_AFS_PARTS)   += afs.o
diff --git a/target/linux/adm5120/patches-2.6.28/120-rb153_cf_driver.patch b/target/linux/adm5120/patches-2.6.28/120-rb153_cf_driver.patch
deleted file mode 100644 (file)
index 32e8590..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
---- a/drivers/ata/Makefile
-+++ b/drivers/ata/Makefile
-@@ -72,6 +72,7 @@ obj-$(CONFIG_PATA_BF54X)     += pata_bf54x.o
- obj-$(CONFIG_PATA_PLATFORM)   += pata_platform.o
- obj-$(CONFIG_PATA_OF_PLATFORM)        += pata_of_platform.o
- obj-$(CONFIG_PATA_ICSIDE)     += pata_icside.o
-+obj-$(CONFIG_PATA_RB153_CF)   += pata_rb153_cf.o
- # Should be last but two libata driver
- obj-$(CONFIG_PATA_ACPI)               += pata_acpi.o
- # Should be last but one libata driver
---- a/drivers/ata/Kconfig
-+++ b/drivers/ata/Kconfig
-@@ -567,6 +567,15 @@ config PATA_RADISYS
-         If unsure, say N.
-+config PATA_RB153_CF
-+      tristate "RouterBOARD 153 Compact Flash support"
-+      depends on ADM5120_MACH_RB_153
-+      help
-+        This option enables support for a Compact Flash connected on
-+        the RouterBOARD 153.
-+
-+        If unsure, say N.
-+
- config PATA_RB532
-       tristate "RouterBoard 532 PATA CompactFlash support"
-       depends on MIKROTIK_RB532
diff --git a/target/linux/adm5120/patches-2.6.28/200-amba_pl010_hacks.patch b/target/linux/adm5120/patches-2.6.28/200-amba_pl010_hacks.patch
deleted file mode 100644 (file)
index 2857644..0000000
+++ /dev/null
@@ -1,378 +0,0 @@
---- a/drivers/serial/amba-pl010.c
-+++ b/drivers/serial/amba-pl010.c
-@@ -50,11 +50,10 @@
- #include <asm/io.h>
--#define UART_NR               8
--
- #define SERIAL_AMBA_MAJOR     204
- #define SERIAL_AMBA_MINOR     16
--#define SERIAL_AMBA_NR                UART_NR
-+#define SERIAL_AMBA_NR                CONFIG_SERIAL_AMBA_PL010_NUMPORTS
-+#define SERIAL_AMBA_NAME      CONFIG_SERIAL_AMBA_PL010_PORTNAME
- #define AMBA_ISR_PASS_LIMIT   256
-@@ -80,9 +79,9 @@ static void pl010_stop_tx(struct uart_po
-       struct uart_amba_port *uap = (struct uart_amba_port *)port;
-       unsigned int cr;
--      cr = readb(uap->port.membase + UART010_CR);
-+      cr = __raw_readl(uap->port.membase + UART010_CR);
-       cr &= ~UART010_CR_TIE;
--      writel(cr, uap->port.membase + UART010_CR);
-+      __raw_writel(cr, uap->port.membase + UART010_CR);
- }
- static void pl010_start_tx(struct uart_port *port)
-@@ -90,9 +89,9 @@ static void pl010_start_tx(struct uart_p
-       struct uart_amba_port *uap = (struct uart_amba_port *)port;
-       unsigned int cr;
--      cr = readb(uap->port.membase + UART010_CR);
-+      cr = __raw_readl(uap->port.membase + UART010_CR);
-       cr |= UART010_CR_TIE;
--      writel(cr, uap->port.membase + UART010_CR);
-+      __raw_writel(cr, uap->port.membase + UART010_CR);
- }
- static void pl010_stop_rx(struct uart_port *port)
-@@ -100,9 +99,9 @@ static void pl010_stop_rx(struct uart_po
-       struct uart_amba_port *uap = (struct uart_amba_port *)port;
-       unsigned int cr;
--      cr = readb(uap->port.membase + UART010_CR);
-+      cr = __raw_readl(uap->port.membase + UART010_CR);
-       cr &= ~(UART010_CR_RIE | UART010_CR_RTIE);
--      writel(cr, uap->port.membase + UART010_CR);
-+      __raw_writel(cr, uap->port.membase + UART010_CR);
- }
- static void pl010_enable_ms(struct uart_port *port)
-@@ -110,9 +109,9 @@ static void pl010_enable_ms(struct uart_
-       struct uart_amba_port *uap = (struct uart_amba_port *)port;
-       unsigned int cr;
--      cr = readb(uap->port.membase + UART010_CR);
-+      cr = __raw_readl(uap->port.membase + UART010_CR);
-       cr |= UART010_CR_MSIE;
--      writel(cr, uap->port.membase + UART010_CR);
-+      __raw_writel(cr, uap->port.membase + UART010_CR);
- }
- static void pl010_rx_chars(struct uart_amba_port *uap)
-@@ -120,9 +119,9 @@ static void pl010_rx_chars(struct uart_a
-       struct tty_struct *tty = uap->port.info->port.tty;
-       unsigned int status, ch, flag, rsr, max_count = 256;
--      status = readb(uap->port.membase + UART01x_FR);
-+      status = __raw_readl(uap->port.membase + UART01x_FR);
-       while (UART_RX_DATA(status) && max_count--) {
--              ch = readb(uap->port.membase + UART01x_DR);
-+              ch = __raw_readl(uap->port.membase + UART01x_DR);
-               flag = TTY_NORMAL;
-               uap->port.icount.rx++;
-@@ -131,9 +130,9 @@ static void pl010_rx_chars(struct uart_a
-                * Note that the error handling code is
-                * out of the main execution path
-                */
--              rsr = readb(uap->port.membase + UART01x_RSR) | UART_DUMMY_RSR_RX;
-+              rsr = __raw_readl(uap->port.membase + UART01x_RSR) | UART_DUMMY_RSR_RX;
-               if (unlikely(rsr & UART01x_RSR_ANY)) {
--                      writel(0, uap->port.membase + UART01x_ECR);
-+                      __raw_writel(0, uap->port.membase + UART01x_ECR);
-                       if (rsr & UART01x_RSR_BE) {
-                               rsr &= ~(UART01x_RSR_FE | UART01x_RSR_PE);
-@@ -163,7 +162,7 @@ static void pl010_rx_chars(struct uart_a
-               uart_insert_char(&uap->port, rsr, UART01x_RSR_OE, ch, flag);
-       ignore_char:
--              status = readb(uap->port.membase + UART01x_FR);
-+              status = __raw_readl(uap->port.membase + UART01x_FR);
-       }
-       spin_unlock(&uap->port.lock);
-       tty_flip_buffer_push(tty);
-@@ -176,7 +175,7 @@ static void pl010_tx_chars(struct uart_a
-       int count;
-       if (uap->port.x_char) {
--              writel(uap->port.x_char, uap->port.membase + UART01x_DR);
-+              __raw_writel(uap->port.x_char, uap->port.membase + UART01x_DR);
-               uap->port.icount.tx++;
-               uap->port.x_char = 0;
-               return;
-@@ -188,7 +187,7 @@ static void pl010_tx_chars(struct uart_a
-       count = uap->port.fifosize >> 1;
-       do {
--              writel(xmit->buf[xmit->tail], uap->port.membase + UART01x_DR);
-+              __raw_writel(xmit->buf[xmit->tail], uap->port.membase + UART01x_DR);
-               xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
-               uap->port.icount.tx++;
-               if (uart_circ_empty(xmit))
-@@ -206,9 +205,9 @@ static void pl010_modem_status(struct ua
- {
-       unsigned int status, delta;
--      writel(0, uap->port.membase + UART010_ICR);
-+      __raw_writel(0, uap->port.membase + UART010_ICR);
--      status = readb(uap->port.membase + UART01x_FR) & UART01x_FR_MODEM_ANY;
-+      status = __raw_readl(uap->port.membase + UART01x_FR) & UART01x_FR_MODEM_ANY;
-       delta = status ^ uap->old_status;
-       uap->old_status = status;
-@@ -236,7 +235,7 @@ static irqreturn_t pl010_int(int irq, vo
-       spin_lock(&uap->port.lock);
--      status = readb(uap->port.membase + UART010_IIR);
-+      status = __raw_readl(uap->port.membase + UART010_IIR);
-       if (status) {
-               do {
-                       if (status & (UART010_IIR_RTIS | UART010_IIR_RIS))
-@@ -249,7 +248,7 @@ static irqreturn_t pl010_int(int irq, vo
-                       if (pass_counter-- == 0)
-                               break;
--                      status = readb(uap->port.membase + UART010_IIR);
-+                      status = __raw_readl(uap->port.membase + UART010_IIR);
-               } while (status & (UART010_IIR_RTIS | UART010_IIR_RIS |
-                                  UART010_IIR_TIS));
-               handled = 1;
-@@ -263,7 +262,7 @@ static irqreturn_t pl010_int(int irq, vo
- static unsigned int pl010_tx_empty(struct uart_port *port)
- {
-       struct uart_amba_port *uap = (struct uart_amba_port *)port;
--      unsigned int status = readb(uap->port.membase + UART01x_FR);
-+      unsigned int status = __raw_readl(uap->port.membase + UART01x_FR);
-       return status & UART01x_FR_BUSY ? 0 : TIOCSER_TEMT;
- }
-@@ -273,7 +272,7 @@ static unsigned int pl010_get_mctrl(stru
-       unsigned int result = 0;
-       unsigned int status;
--      status = readb(uap->port.membase + UART01x_FR);
-+      status = __raw_readl(uap->port.membase + UART01x_FR);
-       if (status & UART01x_FR_DCD)
-               result |= TIOCM_CAR;
-       if (status & UART01x_FR_DSR)
-@@ -299,12 +298,12 @@ static void pl010_break_ctl(struct uart_
-       unsigned int lcr_h;
-       spin_lock_irqsave(&uap->port.lock, flags);
--      lcr_h = readb(uap->port.membase + UART010_LCRH);
-+      lcr_h = __raw_readl(uap->port.membase + UART010_LCRH);
-       if (break_state == -1)
-               lcr_h |= UART01x_LCRH_BRK;
-       else
-               lcr_h &= ~UART01x_LCRH_BRK;
--      writel(lcr_h, uap->port.membase + UART010_LCRH);
-+      __raw_writel(lcr_h, uap->port.membase + UART010_LCRH);
-       spin_unlock_irqrestore(&uap->port.lock, flags);
- }
-@@ -332,12 +331,12 @@ static int pl010_startup(struct uart_por
-       /*
-        * initialise the old status of the modem signals
-        */
--      uap->old_status = readb(uap->port.membase + UART01x_FR) & UART01x_FR_MODEM_ANY;
-+      uap->old_status = __raw_readl(uap->port.membase + UART01x_FR) & UART01x_FR_MODEM_ANY;
-       /*
-        * Finally, enable interrupts
-        */
--      writel(UART01x_CR_UARTEN | UART010_CR_RIE | UART010_CR_RTIE,
-+      __raw_writel(UART01x_CR_UARTEN | UART010_CR_RIE | UART010_CR_RTIE,
-              uap->port.membase + UART010_CR);
-       return 0;
-@@ -360,10 +359,10 @@ static void pl010_shutdown(struct uart_p
-       /*
-        * disable all interrupts, disable the port
-        */
--      writel(0, uap->port.membase + UART010_CR);
-+      __raw_writel(0, uap->port.membase + UART010_CR);
-       /* disable break condition and fifos */
--      writel(readb(uap->port.membase + UART010_LCRH) &
-+      __raw_writel(__raw_readl(uap->port.membase + UART010_LCRH) &
-               ~(UART01x_LCRH_BRK | UART01x_LCRH_FEN),
-              uap->port.membase + UART010_LCRH);
-@@ -385,7 +384,7 @@ pl010_set_termios(struct uart_port *port
-       /*
-        * Ask the core to calculate the divisor for us.
-        */
--      baud = uart_get_baud_rate(port, termios, old, 0, uap->port.uartclk/16); 
-+      baud = uart_get_baud_rate(port, termios, old, 0, uap->port.uartclk/16);
-       quot = uart_get_divisor(port, baud);
-       switch (termios->c_cflag & CSIZE) {
-@@ -448,25 +447,25 @@ pl010_set_termios(struct uart_port *port
-               uap->port.ignore_status_mask |= UART_DUMMY_RSR_RX;
-       /* first, disable everything */
--      old_cr = readb(uap->port.membase + UART010_CR) & ~UART010_CR_MSIE;
-+      old_cr = __raw_readl(uap->port.membase + UART010_CR) & ~UART010_CR_MSIE;
-       if (UART_ENABLE_MS(port, termios->c_cflag))
-               old_cr |= UART010_CR_MSIE;
--      writel(0, uap->port.membase + UART010_CR);
-+      __raw_writel(0, uap->port.membase + UART010_CR);
-       /* Set baud rate */
-       quot -= 1;
--      writel((quot & 0xf00) >> 8, uap->port.membase + UART010_LCRM);
--      writel(quot & 0xff, uap->port.membase + UART010_LCRL);
-+      __raw_writel((quot & 0xf00) >> 8, uap->port.membase + UART010_LCRM);
-+      __raw_writel(quot & 0xff, uap->port.membase + UART010_LCRL);
-       /*
-        * ----------v----------v----------v----------v-----
-        * NOTE: MUST BE WRITTEN AFTER UARTLCR_M & UARTLCR_L
-        * ----------^----------^----------^----------^-----
-        */
--      writel(lcr_h, uap->port.membase + UART010_LCRH);
--      writel(old_cr, uap->port.membase + UART010_CR);
-+      __raw_writel(lcr_h, uap->port.membase + UART010_LCRH);
-+      __raw_writel(old_cr, uap->port.membase + UART010_CR);
-       spin_unlock_irqrestore(&uap->port.lock, flags);
- }
-@@ -538,7 +537,7 @@ static struct uart_ops amba_pl010_pops =
-       .verify_port    = pl010_verify_port,
- };
--static struct uart_amba_port *amba_ports[UART_NR];
-+static struct uart_amba_port *amba_ports[SERIAL_AMBA_NR];
- #ifdef CONFIG_SERIAL_AMBA_PL010_CONSOLE
-@@ -548,10 +547,10 @@ static void pl010_console_putchar(struct
-       unsigned int status;
-       do {
--              status = readb(uap->port.membase + UART01x_FR);
-+              status = __raw_readl(uap->port.membase + UART01x_FR);
-               barrier();
-       } while (!UART_TX_READY(status));
--      writel(ch, uap->port.membase + UART01x_DR);
-+      __raw_writel(ch, uap->port.membase + UART01x_DR);
- }
- static void
-@@ -565,8 +564,8 @@ pl010_console_write(struct console *co, 
-       /*
-        *      First save the CR then disable the interrupts
-        */
--      old_cr = readb(uap->port.membase + UART010_CR);
--      writel(UART01x_CR_UARTEN, uap->port.membase + UART010_CR);
-+      old_cr = __raw_readl(uap->port.membase + UART010_CR);
-+      __raw_writel(UART01x_CR_UARTEN, uap->port.membase + UART010_CR);
-       uart_console_write(&uap->port, s, count, pl010_console_putchar);
-@@ -575,10 +574,10 @@ pl010_console_write(struct console *co, 
-        *      and restore the TCR
-        */
-       do {
--              status = readb(uap->port.membase + UART01x_FR);
-+              status = __raw_readl(uap->port.membase + UART01x_FR);
-               barrier();
-       } while (status & UART01x_FR_BUSY);
--      writel(old_cr, uap->port.membase + UART010_CR);
-+      __raw_writel(old_cr, uap->port.membase + UART010_CR);
-       clk_disable(uap->clk);
- }
-@@ -587,9 +586,9 @@ static void __init
- pl010_console_get_options(struct uart_amba_port *uap, int *baud,
-                            int *parity, int *bits)
- {
--      if (readb(uap->port.membase + UART010_CR) & UART01x_CR_UARTEN) {
-+      if (__raw_readl(uap->port.membase + UART010_CR) & UART01x_CR_UARTEN) {
-               unsigned int lcr_h, quot;
--              lcr_h = readb(uap->port.membase + UART010_LCRH);
-+              lcr_h = __raw_readl(uap->port.membase + UART010_LCRH);
-               *parity = 'n';
-               if (lcr_h & UART01x_LCRH_PEN) {
-@@ -604,8 +603,8 @@ pl010_console_get_options(struct uart_am
-               else
-                       *bits = 8;
--              quot = readb(uap->port.membase + UART010_LCRL) |
--                     readb(uap->port.membase + UART010_LCRM) << 8;
-+              quot = __raw_readl(uap->port.membase + UART010_LCRL) |
-+                     __raw_readl(uap->port.membase + UART010_LCRM) << 8;
-               *baud = uap->port.uartclk / (16 * (quot + 1));
-       }
- }
-@@ -623,7 +622,7 @@ static int __init pl010_console_setup(st
-        * if so, search for the first available port that does have
-        * console support.
-        */
--      if (co->index >= UART_NR)
-+      if (co->index >= SERIAL_AMBA_NR)
-               co->index = 0;
-       uap = amba_ports[co->index];
-       if (!uap)
-@@ -641,7 +640,7 @@ static int __init pl010_console_setup(st
- static struct uart_driver amba_reg;
- static struct console amba_console = {
--      .name           = "ttyAM",
-+      .name           = SERIAL_AMBA_NAME,
-       .write          = pl010_console_write,
-       .device         = uart_console_device,
-       .setup          = pl010_console_setup,
-@@ -657,11 +656,11 @@ static struct console amba_console = {
- static struct uart_driver amba_reg = {
-       .owner                  = THIS_MODULE,
--      .driver_name            = "ttyAM",
--      .dev_name               = "ttyAM",
-+      .driver_name            = SERIAL_AMBA_NAME,
-+      .dev_name               = SERIAL_AMBA_NAME,
-       .major                  = SERIAL_AMBA_MAJOR,
-       .minor                  = SERIAL_AMBA_MINOR,
--      .nr                     = UART_NR,
-+      .nr                     = SERIAL_AMBA_NR,
-       .cons                   = AMBA_CONSOLE,
- };
---- a/drivers/serial/Kconfig
-+++ b/drivers/serial/Kconfig
-@@ -284,10 +284,25 @@ config SERIAL_AMBA_PL010
-       help
-         This selects the ARM(R) AMBA(R) PrimeCell PL010 UART.  If you have
-         an Integrator/AP or Integrator/PP2 platform, or if you have a
--        Cirrus Logic EP93xx CPU, say Y or M here.
-+        Cirrus Logic EP93xx CPU or an Infineon ADM5120 SOC, say Y or M here.
-         If unsure, say N.
-+config SERIAL_AMBA_PL010_NUMPORTS
-+      int "Maximum number of AMBA PL010 serial ports"
-+      depends on SERIAL_AMBA_PL010
-+      default "8"
-+      ---help---
-+        Set this to the number of serial ports you want the AMBA PL010 driver
-+        to support.
-+
-+config SERIAL_AMBA_PL010_PORTNAME
-+      string "Name of the AMBA PL010 serial ports"
-+      depends on SERIAL_AMBA_PL010
-+      default "ttyAM"
-+      ---help---
-+        ::: To be written :::
-+
- config SERIAL_AMBA_PL010_CONSOLE
-       bool "Support for console on AMBA serial port"
-       depends on SERIAL_AMBA_PL010=y
diff --git a/target/linux/adm5120/patches-2.6.28/201-amba_bus_hacks.patch b/target/linux/adm5120/patches-2.6.28/201-amba_bus_hacks.patch
deleted file mode 100644 (file)
index 299f216..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/drivers/amba/bus.c
-+++ b/drivers/amba/bus.c
-@@ -17,6 +17,10 @@
- #include <asm/io.h>
- #include <asm/sizes.h>
-+#ifndef NO_IRQ
-+#define NO_IRQ                (-1)
-+#endif
-+
- #define to_amba_device(d)     container_of(d, struct amba_device, dev)
- #define to_amba_driver(d)     container_of(d, struct amba_driver, drv)
diff --git a/target/linux/adm5120/patches-2.6.28/203-gpio_leds_brightness.patch b/target/linux/adm5120/patches-2.6.28/203-gpio_leds_brightness.patch
deleted file mode 100644 (file)
index bb94fd0..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
---- a/drivers/leds/leds-gpio.c
-+++ b/drivers/leds/leds-gpio.c
-@@ -43,13 +43,17 @@ static void gpio_led_set(struct led_clas
-               container_of(led_cdev, struct gpio_led_data, cdev);
-       int level;
--      if (value == LED_OFF)
--              level = 0;
--      else
--              level = 1;
--
--      if (led_dat->active_low)
--              level = !level;
-+      switch (value) {
-+      case LED_OFF:
-+              level = led_dat->active_low ? 1 : 0;
-+              break;
-+      case LED_FULL:
-+              level = led_dat->active_low ? 0 : 1;
-+              break;
-+      default:
-+              level = value;
-+              break;
-+      }
-       /* Setting GPIOs with I2C/etc requires a task context, and we don't
-        * seem to have a reliable way to know if we're already in one; so
diff --git a/target/linux/adm5120/patches-2.6.28/310-adm5120_wdt.patch b/target/linux/adm5120/patches-2.6.28/310-adm5120_wdt.patch
deleted file mode 100644 (file)
index 2346009..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/drivers/watchdog/Kconfig
-+++ b/drivers/watchdog/Kconfig
-@@ -696,6 +696,18 @@ config RC32434_WDT
-         To compile this driver as a module, choose M here: the
-         module will be called rc32434_wdt.
-+config ADM5120_WDT
-+      tristate "Infineon ADM5120 SoC hardware watchdog"
-+      depends on WATCHDOG && ADM5120
-+      help
-+        This is a driver for hardware watchdog integrated in Infineon
-+        ADM5120 SoC. This watchdog simply watches your kernel to make sure
-+        it doesn't freeze, and if it does, it reboots your computer after a
-+        certain amount of time.
-+
-+        To compile this driver as a module, choose M here: the module will be
-+        called adm5120_wdt.
-+
- config INDYDOG
-       tristate "Indy/I2 Hardware Watchdog"
-       depends on SGI_HAS_INDYDOG
---- a/drivers/watchdog/Makefile
-+++ b/drivers/watchdog/Makefile
-@@ -106,6 +106,7 @@ obj-$(CONFIG_WDT_RM9K_GPI) += rm9k_wdt.o
- obj-$(CONFIG_SIBYTE_WDOG) += sb_wdog.o
- obj-$(CONFIG_AR7_WDT) += ar7_wdt.o
- obj-$(CONFIG_TXX9_WDT) += txx9wdt.o
-+obj-$(CONFIG_ADM5120_WDT) += adm5120_wdt.o
- # PARISC Architecture
diff --git a/target/linux/adm5120/patches-2.6.28/801-mtd_trxsplit_2.6.28_fix.patch b/target/linux/adm5120/patches-2.6.28/801-mtd_trxsplit_2.6.28_fix.patch
deleted file mode 100644 (file)
index 6a31cd5..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/drivers/mtd/trxsplit.c
-+++ b/drivers/mtd/trxsplit.c
-@@ -18,7 +18,7 @@
- #include <linux/mtd/mtd.h>
- #include <linux/mtd/partitions.h>
--#include <linux/byteorder/generic.h>
-+//#include <linux/byteorder/generic.h>
- #define PFX   "trxsplit: "
diff --git a/target/linux/au1000/patches-2.6.28/001-mtx1_cmdline.patch b/target/linux/au1000/patches-2.6.28/001-mtx1_cmdline.patch
deleted file mode 100644 (file)
index a458327..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/arch/mips/alchemy/mtx-1/init.c
-+++ b/arch/mips/alchemy/mtx-1/init.c
-@@ -49,7 +49,7 @@ void __init prom_init(void)
-       prom_argv = (char **)fw_arg1;
-       prom_envp = (char **)fw_arg2;
--      prom_init_cmdline();
-+      strcpy(arcs_cmdline, CONFIG_CMDLINE);
-       memsize_str = prom_getenv("memsize");
-       if (!memsize_str)
diff --git a/target/linux/au1000/patches-2.6.28/002-openwrt_rootfs.patch b/target/linux/au1000/patches-2.6.28/002-openwrt_rootfs.patch
deleted file mode 100644 (file)
index e1056e9..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/arch/mips/alchemy/mtx-1/platform.c
-+++ b/arch/mips/alchemy/mtx-1/platform.c
-@@ -90,7 +90,7 @@ static struct platform_device mtx1_gpio_
- static struct mtd_partition mtx1_mtd_partitions[] = {
-       {
--              .name   = "filesystem",
-+              .name   = "rootfs",
-               .size   = 0x01C00000,
-               .offset = 0,
-       },
diff --git a/target/linux/au1000/patches-2.6.28/003-au1000_eth_ioctl.patch b/target/linux/au1000/patches-2.6.28/003-au1000_eth_ioctl.patch
deleted file mode 100644 (file)
index 4b152f3..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/drivers/net/au1000_eth.c
-+++ b/drivers/net/au1000_eth.c
-@@ -1293,9 +1293,12 @@ static void set_rx_mode(struct net_devic
-       }
- }
-+#define AU1000_KNOWN_PHY_IOCTLS               (SIOCGMIIPHY & 0xfff0)
- static int au1000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
- {
-       struct au1000_private *aup = (struct au1000_private *)dev->priv;
-+      if((cmd & AU1000_KNOWN_PHY_IOCTLS) != AU1000_KNOWN_PHY_IOCTLS)
-+              return -EINVAL;
-       if (!netif_running(dev)) return -EINVAL;
diff --git a/target/linux/au1000/patches-2.6.28/004-state_led_phy_fix.patch b/target/linux/au1000/patches-2.6.28/004-state_led_phy_fix.patch
deleted file mode 100644 (file)
index e681970..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/drivers/net/au1000_eth.c
-+++ b/drivers/net/au1000_eth.c
-@@ -184,6 +184,15 @@ struct au1000_private *au_macs[NUM_ETH_I
- #  undef AU1XXX_PHY1_IRQ
- #endif
-+#if defined(CONFIG_MIPS_MTX1)
-+/*
-+ * 4G MeshCube (MTX-1) board
-+ * PHY is at address 31 on MAC0
-+ * autodetect fails if not searched for highest address !
-+ */
-+# define AU1XXX_PHY_SEARCH_HIGHEST_ADDR
-+#endif
-+
- #if defined(AU1XXX_PHY0_BUSID) && (AU1XXX_PHY0_BUSID > 0)
- # error MAC0-associated PHY attached 2nd MACs MII bus not supported yet
- #endif
-@@ -380,6 +389,12 @@ static int mii_probe (struct net_device 
-       aup->old_duplex = -1;
-       aup->phy_dev = phydev;
-+#ifdef CONFIG_MIPS_MTX1
-+      /* set up ethernet jack LEDs on the 4G MeshCube (MTX-1 board) */
-+      printk(KERN_INFO "MTX-1 PHY: updating LED settings\n");
-+      phy_write(phydev, 0x11, 0xff80);
-+#endif
-+
-       printk(KERN_INFO "%s: attached PHY driver [%s] "
-              "(mii_bus:phy_addr=%s, irq=%d)\n",
-              dev->name, phydev->drv->name, phydev->dev.bus_id, phydev->irq);
diff --git a/target/linux/au1000/patches-2.6.28/006-missing_string_header.patch b/target/linux/au1000/patches-2.6.28/006-missing_string_header.patch
deleted file mode 100644 (file)
index 8aba202..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/arch/mips/alchemy/mtx-1/init.c
-+++ b/arch/mips/alchemy/mtx-1/init.c
-@@ -32,6 +32,7 @@
- #include <linux/init.h>
- #include <asm/bootinfo.h>
-+#include <asm/string.h>
- #include <prom.h>
diff --git a/target/linux/au1000/patches-2.6.28/007-gpiolib.patch b/target/linux/au1000/patches-2.6.28/007-gpiolib.patch
deleted file mode 100644 (file)
index bd4b563..0000000
+++ /dev/null
@@ -1,396 +0,0 @@
---- a/arch/mips/alchemy/Kconfig
-+++ b/arch/mips/alchemy/Kconfig
-@@ -134,3 +134,4 @@ config SOC_AU1X00
-       select SYS_HAS_CPU_MIPS32_R1
-       select SYS_SUPPORTS_32BIT_KERNEL
-       select SYS_SUPPORTS_APM_EMULATION
-+      select ARCH_REQUIRE_GPIOLIB
---- a/arch/mips/alchemy/common/gpio.c
-+++ b/arch/mips/alchemy/common/gpio.c
-@@ -1,5 +1,5 @@
- /*
-- *  Copyright (C) 2007, OpenWrt.org, Florian Fainelli <florian@openwrt.org>
-+ *  Copyright (C) 2007-2008, OpenWrt.org, Florian Fainelli <florian@openwrt.org>
-  *    Architecture specific GPIO support
-  *
-  *  This program is free software; you can redistribute        it and/or modify it
-@@ -27,122 +27,222 @@
-  *    others have a second one : GPIO2
-  */
-+#include <linux/kernel.h>
- #include <linux/module.h>
-+#include <linux/types.h>
-+#include <linux/platform_device.h>
-+#include <linux/gpio.h>
- #include <asm/mach-au1x00/au1000.h>
--#include <asm/gpio.h>
-+#include <asm/mach-au1x00/gpio.h>
--#define gpio1 sys
--#if !defined(CONFIG_SOC_AU1000)
-+struct au1000_gpio_chip {
-+      struct gpio_chip        chip;
-+      void __iomem            *regbase;
-+};
--static struct au1x00_gpio2 *const gpio2 = (struct au1x00_gpio2 *) GPIO2_BASE;
-+#if !defined(CONFIG_SOC_AU1000)
- #define GPIO2_OUTPUT_ENABLE_MASK      0x00010000
--static int au1xxx_gpio2_read(unsigned gpio)
-+/*
-+ * Return GPIO bank 2 level
-+ */
-+static int au1000_gpio2_get(struct gpio_chip *chip, unsigned offset)
- {
--      gpio -= AU1XXX_GPIO_BASE;
--      return ((gpio2->pinstate >> gpio) & 0x01);
-+      u32 mask = 1 << offset;
-+      struct au1000_gpio_chip *gpch;
-+      
-+      gpch = container_of(chip, struct au1000_gpio_chip, chip);
-+      return readl(gpch->regbase + AU1000_GPIO2_ST) & mask;
- }
--static void au1xxx_gpio2_write(unsigned gpio, int value)
-+/*
-+ * Set output GPIO bank 2 level
-+ */
-+static void au1000_gpio2_set(struct gpio_chip *chip,
-+                              unsigned offset, int value)
- {
--      gpio -= AU1XXX_GPIO_BASE;
--
--      gpio2->output = (GPIO2_OUTPUT_ENABLE_MASK << gpio) | ((!!value) << gpio);
-+      u32                     mask = (!!value) << offset;
-+      struct au1000_gpio_chip *gpch;
-+      unsigned long           flags;
-+
-+      gpch = container_of(chip, struct au1000_gpio_chip, chip);
-+      
-+      local_irq_save(flags);
-+      writel((GPIO2_OUTPUT_ENABLE_MASK << offset) | mask,
-+                              gpch->regbase + AU1000_GPIO2_OUT);
-+      local_irq_restore(flags);
- }
--static int au1xxx_gpio2_direction_input(unsigned gpio)
-+/*
-+ * Set GPIO bank 2 direction to input
-+ */
-+static int au1000_gpio2_direction_input(struct gpio_chip *chip, unsigned offset)
- {
--      gpio -= AU1XXX_GPIO_BASE;
--      gpio2->dir &= ~(0x01 << gpio);
-+      unsigned long           flags;
-+      u32                     mask = 1 << offset;
-+      u32                     value;
-+      struct au1000_gpio_chip *gpch;
-+      void __iomem            *gpdr;
-+
-+      gpch = container_of(chip, struct au1000_gpio_chip, chip);
-+      gpdr = gpch->regbase + AU1000_GPIO2_DIR;
-+
-+      local_irq_save(flags);
-+      value = readl(gpdr);
-+      value &= ~mask;
-+      writel(value, gpdr);
-+      local_irq_restore(flags);
-+
-       return 0;
- }
--static int au1xxx_gpio2_direction_output(unsigned gpio, int value)
-+/*
-+ * Set GPIO bank2 direction to output
-+ */
-+static int au1000_gpio2_direction_output(struct gpio_chip *chip,
-+                                      unsigned offset, int value)
- {
--      gpio -= AU1XXX_GPIO_BASE;
--      gpio2->dir |= 0x01 << gpio;
--      gpio2->output = (GPIO2_OUTPUT_ENABLE_MASK << gpio) | ((!!value) << gpio);
-+      unsigned long           flags;
-+      u32                     mask = 1 << offset;
-+      u32                     tmp;
-+      struct au1000_gpio_chip *gpch;
-+      void __iomem            *gpdr;
-+      
-+      gpch = container_of(chip, struct au1000_gpio_chip, chip);
-+      gpdr = gpch->regbase + AU1000_GPIO2_DIR;
-+      
-+      local_irq_save(flags);
-+      tmp = readl(gpdr);
-+      tmp |= mask;
-+      writel(tmp, gpdr);
-+      mask = (!!value) << offset;
-+        writel((GPIO2_OUTPUT_ENABLE_MASK << offset) | mask,
-+                                      gpch->regbase + AU1000_GPIO2_OUT);
-+      local_irq_restore(flags);
-+
-       return 0;
- }
--
- #endif /* !defined(CONFIG_SOC_AU1000) */
--static int au1xxx_gpio1_read(unsigned gpio)
-+/*
-+ * Return GPIO bank 2 level
-+ */
-+static int au1000_gpio1_get(struct gpio_chip *chip, unsigned offset)
- {
--      return (gpio1->pinstaterd >> gpio) & 0x01;
-+      u32                     mask = 1 << offset;
-+      struct au1000_gpio_chip *gpch;
-+
-+      gpch = container_of(chip, struct au1000_gpio_chip, chip);
-+      return readl(gpch->regbase + 0x0110) & mask;
- }
--static void au1xxx_gpio1_write(unsigned gpio, int value)
-+/*
-+ * Set GPIO bank 1 level
-+ */
-+static void au1000_gpio1_set(struct gpio_chip *chip,
-+                              unsigned offset, int value)
- {
-+      unsigned long           flags;
-+      u32                     mask = 1 << offset;
-+      struct au1000_gpio_chip *gpch;
-+
-+      gpch = container_of(chip, struct au1000_gpio_chip, chip);
-+      
-+      local_irq_save(flags);
-       if (value)
--              gpio1->outputset = (0x01 << gpio);
-+              writel(mask, gpch->regbase + 0x0108);   
-       else
--              /* Output a zero */
--              gpio1->outputclr = (0x01 << gpio);
-+              writel(mask, gpch->regbase + 0x010C);
-+      local_irq_restore(flags);
- }
--static int au1xxx_gpio1_direction_input(unsigned gpio)
-+/*
-+ * Set GPIO bank 1 direction to input
-+ */
-+static int au1000_gpio1_direction_input(struct gpio_chip *chip, unsigned offset)
- {
--      gpio1->pininputen = (0x01 << gpio);
--      return 0;
--}
-+      unsigned long           flags;
-+      u32                     mask = 1 << offset;
-+      u32                     value;
-+      struct au1000_gpio_chip *gpch;
-+      void __iomem            *gpdr;
-+
-+      gpch = container_of(chip, struct au1000_gpio_chip, chip);
-+      gpdr = gpch->regbase + 0x0110;
-+      
-+      local_irq_save(flags);
-+      value = readl(gpdr);
-+      value |= mask;
-+      writel(mask, gpdr);
-+      local_irq_restore(flags);
--static int au1xxx_gpio1_direction_output(unsigned gpio, int value)
--{
--      gpio1->trioutclr = (0x01 & gpio);
--      au1xxx_gpio1_write(gpio, value);
-       return 0;
- }
--int au1xxx_gpio_get_value(unsigned gpio)
-+/*
-+ * Set GPIO bank 1 direction to output
-+ */
-+static int au1000_gpio1_direction_output(struct gpio_chip *chip,
-+                                      unsigned offset, int value)
- {
--      if (gpio >= AU1XXX_GPIO_BASE)
--#if defined(CONFIG_SOC_AU1000)
--              return 0;
--#else
--              return au1xxx_gpio2_read(gpio);
--#endif
-+      unsigned long           flags;
-+      u32                     mask = 1 << offset;
-+      u32                     tmp;
-+      struct au1000_gpio_chip *gpch;
-+      void __iomem            *gpdr;
-+
-+      gpch = container_of(chip, struct au1000_gpio_chip, chip);
-+      gpdr = gpch->regbase + 0x0100;
-+      
-+      local_irq_save(flags);
-+      tmp = readl(gpdr);
-+      writel(tmp, gpdr);
-+      if (value)
-+              writel(mask, gpch->regbase + 0x0108);
-       else
--              return au1xxx_gpio1_read(gpio);
--}
--EXPORT_SYMBOL(au1xxx_gpio_get_value);
-+              writel(mask, gpch->regbase + 0x0108);
-+      local_irq_restore(flags);
--void au1xxx_gpio_set_value(unsigned gpio, int value)
--{
--      if (gpio >= AU1XXX_GPIO_BASE)
--#if defined(CONFIG_SOC_AU1000)
--              ;
--#else
--              au1xxx_gpio2_write(gpio, value);
--#endif
--      else
--              au1xxx_gpio1_write(gpio, value);
-+      return 0;
- }
--EXPORT_SYMBOL(au1xxx_gpio_set_value);
--int au1xxx_gpio_direction_input(unsigned gpio)
--{
--      if (gpio >= AU1XXX_GPIO_BASE)
--#if defined(CONFIG_SOC_AU1000)
--              return -ENODEV;
--#else
--              return au1xxx_gpio2_direction_input(gpio);
-+struct au1000_gpio_chip au1000_gpio_chip[] = {
-+      [0] = {
-+              .regbase                        = (void __iomem *)SYS_BASE,
-+              .chip = {
-+                      .label                  = "au1000-gpio1",
-+                      .direction_input        = au1000_gpio1_direction_input,
-+                      .direction_output       = au1000_gpio1_direction_output,
-+                      .get                    = au1000_gpio1_get,
-+                      .set                    = au1000_gpio1_set,
-+                      .base                   = 0,
-+                      .ngpio                  = 32,
-+              },
-+      },
-+#if !defined(CONFIG_SOC_AU1000)
-+      [1] = {
-+              .regbase                        = (void __iomem *)GPIO2_BASE,
-+              .chip = {
-+                      .label                  = "au1000-gpio2",
-+                      .direction_input        = au1000_gpio2_direction_input,
-+                      .direction_output       = au1000_gpio2_direction_output,
-+                      .get                    = au1000_gpio2_get,
-+                      .set                    = au1000_gpio2_set,
-+                      .base                   = AU1XXX_GPIO_BASE,
-+                      .ngpio                  = 32,
-+              },
-+      },
- #endif
-+};
--      return au1xxx_gpio1_direction_input(gpio);
--}
--EXPORT_SYMBOL(au1xxx_gpio_direction_input);
--
--int au1xxx_gpio_direction_output(unsigned gpio, int value)
-+int __init au1000_gpio_init(void)
- {
--      if (gpio >= AU1XXX_GPIO_BASE)
--#if defined(CONFIG_SOC_AU1000)
--              return -ENODEV;
--#else
--              return au1xxx_gpio2_direction_output(gpio, value);
-+      gpiochip_add(&au1000_gpio_chip[0].chip);
-+#if !defined(CONFIG_SOC_AU1000)
-+      gpiochip_add(&au1000_gpio_chip[1].chip);
- #endif
--      return au1xxx_gpio1_direction_output(gpio, value);
-+      return 0;
- }
--EXPORT_SYMBOL(au1xxx_gpio_direction_output);
-+arch_initcall(au1000_gpio_init);
---- a/arch/mips/include/asm/mach-au1x00/gpio.h
-+++ b/arch/mips/include/asm/mach-au1x00/gpio.h
-@@ -1,69 +1,21 @@
- #ifndef _AU1XXX_GPIO_H_
- #define _AU1XXX_GPIO_H_
--#include <linux/types.h>
--
- #define AU1XXX_GPIO_BASE      200
--struct au1x00_gpio2 {
--      u32     dir;
--      u32     reserved;
--      u32     output;
--      u32     pinstate;
--      u32     inten;
--      u32     enable;
--};
--
--extern int au1xxx_gpio_get_value(unsigned gpio);
--extern void au1xxx_gpio_set_value(unsigned gpio, int value);
--extern int au1xxx_gpio_direction_input(unsigned gpio);
--extern int au1xxx_gpio_direction_output(unsigned gpio, int value);
--
--
--/* Wrappers for the arch-neutral GPIO API */
--
--static inline int gpio_request(unsigned gpio, const char *label)
--{
--      /* Not yet implemented */
--      return 0;
--}
--
--static inline void gpio_free(unsigned gpio)
--{
--      /* Not yet implemented */
--}
--
--static inline int gpio_direction_input(unsigned gpio)
--{
--      return au1xxx_gpio_direction_input(gpio);
--}
--
--static inline int gpio_direction_output(unsigned gpio, int value)
--{
--      return au1xxx_gpio_direction_output(gpio, value);
--}
--
--static inline int gpio_get_value(unsigned gpio)
--{
--      return au1xxx_gpio_get_value(gpio);
--}
--
--static inline void gpio_set_value(unsigned gpio, int value)
--{
--      au1xxx_gpio_set_value(gpio, value);
--}
--
--static inline int gpio_to_irq(unsigned gpio)
--{
--      return gpio;
--}
--
--static inline int irq_to_gpio(unsigned irq)
--{
--      return irq;
--}
-+#define AU1000_GPIO2_DIR      0x00
-+#define AU1000_GPIO2_RSVD     0x04
-+#define AU1000_GPIO2_OUT      0x08
-+#define AU1000_GPIO2_ST               0x0C
-+#define AU1000_GPIO2_INT      0x10
-+#define AU1000_GPIO2_EN               0x14
-+
-+#define gpio_get_value                __gpio_get_value
-+#define gpio_set_value                __gpio_set_value
-+
-+#define gpio_to_irq(gpio)     NULL
-+#define irq_to_gpio(irq)      NULL
--/* For cansleep */
- #include <asm-generic/gpio.h>
- #endif /* _AU1XXX_GPIO_H_ */
diff --git a/target/linux/brcm47xx/config-2.6.28 b/target/linux/brcm47xx/config-2.6.28
deleted file mode 100644 (file)
index 509384e..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-CONFIG_32BIT=y
-# CONFIG_64BIT is not set
-# CONFIG_8139TOO is not set
-# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-CONFIG_ARCH_POPULATES_NODE_MAP=y
-# CONFIG_ARCH_SUPPORTS_MSI is not set
-CONFIG_ARCH_SUPPORTS_OPROFILE=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-# CONFIG_ARPD is not set
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_B44=y
-CONFIG_BCM47XX_WDT=y
-CONFIG_BCM47XX=y
-CONFIG_BITREVERSE=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_CEVT_R4K=y
-CONFIG_CFE=y
-CONFIG_CLASSIC_RCU=y
-CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200"
-# CONFIG_CPU_BIG_ENDIAN is not set
-CONFIG_CPU_HAS_LLSC=y
-CONFIG_CPU_HAS_PREFETCH=y
-CONFIG_CPU_HAS_SYNC=y
-CONFIG_CPU_LITTLE_ENDIAN=y
-# CONFIG_CPU_LOONGSON2 is not set
-CONFIG_CPU_MIPS32_R1=y
-# CONFIG_CPU_MIPS32_R2 is not set
-CONFIG_CPU_MIPS32=y
-# CONFIG_CPU_MIPS64_R1 is not set
-# CONFIG_CPU_MIPS64_R2 is not set
-CONFIG_CPU_MIPSR1=y
-# CONFIG_CPU_NEVADA is not set
-# CONFIG_CPU_R10000 is not set
-# CONFIG_CPU_R3000 is not set
-# CONFIG_CPU_R4300 is not set
-# CONFIG_CPU_R4X00 is not set
-# CONFIG_CPU_R5000 is not set
-# CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_R5500 is not set
-# CONFIG_CPU_R6000 is not set
-# CONFIG_CPU_R8000 is not set
-# CONFIG_CPU_RM7000 is not set
-# CONFIG_CPU_RM9000 is not set
-# CONFIG_CPU_SB1 is not set
-CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
-CONFIG_CPU_SUPPORTS_HIGHMEM=y
-# CONFIG_CPU_TX39XX is not set
-# CONFIG_CPU_TX49XX is not set
-# CONFIG_CPU_VR41XX is not set
-CONFIG_CSRC_R4K=y
-CONFIG_DEVPORT=y
-# CONFIG_DM9000 is not set
-CONFIG_DMA_NEED_PCI_MAP_STATE=y
-CONFIG_DMA_NONCOHERENT=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_GENERIC_FIND_NEXT_BIT=y
-CONFIG_GENERIC_GPIO=y
-# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
-# CONFIG_HAMRADIO is not set
-CONFIG_HARDWARE_WATCHPOINTS=y
-CONFIG_HAS_DMA=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
-CONFIG_HAVE_IDE=y
-CONFIG_HAVE_OPROFILE=y
-CONFIG_HW_HAS_PCI=y
-CONFIG_HW_RANDOM=y
-# CONFIG_HZ_100 is not set
-CONFIG_HZ=250
-CONFIG_HZ_250=y
-# CONFIG_IDE is not set
-CONFIG_INITRAMFS_SOURCE=""
-# CONFIG_IP_ROUTE_VERBOSE is not set
-CONFIG_IRQ_CPU=y
-# CONFIG_ISDN is not set
-CONFIG_KALLSYMS=y
-CONFIG_LEDS_GPIO=y
-# CONFIG_LEMOTE_FULONG is not set
-# CONFIG_MACH_ALCHEMY is not set
-# CONFIG_MACH_DECSTATION is not set
-# CONFIG_MACH_EMMA is not set
-# CONFIG_MACH_JAZZ is not set
-# CONFIG_MACH_TX39XX is not set
-# CONFIG_MACH_TX49XX is not set
-# CONFIG_MACH_VR41XX is not set
-# CONFIG_MIKROTIK_RB532 is not set
-# CONFIG_MIPS_COBALT is not set
-CONFIG_MIPS_L1_CACHE_SHIFT=5
-# CONFIG_MIPS_MACHINE is not set
-# CONFIG_MIPS_MALTA is not set
-CONFIG_MIPS_MT_DISABLED=y
-# CONFIG_MIPS_MT_SMP is not set
-# CONFIG_MIPS_MT_SMTC is not set
-# CONFIG_MIPS_SIM is not set
-CONFIG_MIPS=y
-CONFIG_MTD_BCM47XX=y
-# CONFIG_NO_IOPORT is not set
-# CONFIG_NXP_STB220 is not set
-# CONFIG_NXP_STB225 is not set
-CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_PCI_DOMAINS=y
-CONFIG_PHYLIB=y
-# CONFIG_PMC_MSP is not set
-# CONFIG_PMC_YOSEMITE is not set
-# CONFIG_PNX8550_JBS is not set
-# CONFIG_PNX8550_STB810 is not set
-# CONFIG_PROBE_INITRD_HEADER is not set
-# CONFIG_PROC_KCORE is not set
-# CONFIG_R6040 is not set
-CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
-# CONFIG_SCSI_DMA is not set
-# CONFIG_SERIAL_8250_DETECT_IRQ is not set
-CONFIG_SERIAL_8250_EXTENDED=y
-# CONFIG_SERIAL_8250_MANY_PORTS is not set
-# CONFIG_SERIAL_8250_RSA is not set
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-# CONFIG_SGI_IP22 is not set
-# CONFIG_SGI_IP27 is not set
-# CONFIG_SGI_IP28 is not set
-# CONFIG_SGI_IP32 is not set
-# CONFIG_SIBYTE_BIGSUR is not set
-# CONFIG_SIBYTE_CARMEL is not set
-# CONFIG_SIBYTE_CRHINE is not set
-# CONFIG_SIBYTE_CRHONE is not set
-# CONFIG_SIBYTE_LITTLESUR is not set
-# CONFIG_SIBYTE_RHONE is not set
-# CONFIG_SIBYTE_SENTOSA is not set
-# CONFIG_SIBYTE_SWARM is not set
-CONFIG_SSB_B43_PCI_BRIDGE=y
-CONFIG_SSB_DEBUG=y
-CONFIG_SSB_DRIVER_EXTIF=y
-CONFIG_SSB_DRIVER_GIGE=y
-CONFIG_SSB_DRIVER_MIPS=y
-CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
-CONFIG_SSB_DRIVER_PCICORE=y
-CONFIG_SSB_EMBEDDED=y
-CONFIG_SSB_PCICORE_HOSTMODE=y
-CONFIG_SSB_PCIHOST_POSSIBLE=y
-CONFIG_SSB_PCIHOST=y
-CONFIG_SSB_SERIAL=y
-CONFIG_SSB_SPROM=y
-CONFIG_SSB=y
-CONFIG_SYS_HAS_CPU_MIPS32_R1=y
-CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
-CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
-CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
-# CONFIG_TC35815 is not set
-CONFIG_TRAD_SIGNALS=y
-CONFIG_USB_EHCI_HCD_SSB=y
-CONFIG_USB_OHCI_HCD_SSB=y
-CONFIG_USB_SUPPORT=y
-# CONFIG_VGASTATE is not set
-# CONFIG_VIA_RHINE is not set
-CONFIG_WATCHDOG_NOWAYOUT=y
-CONFIG_ZONE_DMA_FLAG=0
diff --git a/target/linux/brcm47xx/patches-2.6.28/100-board_support.patch b/target/linux/brcm47xx/patches-2.6.28/100-board_support.patch
deleted file mode 100644 (file)
index ac5d912..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/arch/mips/include/asm/bootinfo.h
-+++ b/arch/mips/include/asm/bootinfo.h
-@@ -57,6 +57,12 @@
- #define       MACH_MIKROTIK_RB532     0       /* Mikrotik RouterBoard 532     */
- #define MACH_MIKROTIK_RB532A  1       /* Mikrotik RouterBoard 532A    */
-+/*
-+ * Valid machtype for group Broadcom
-+ */
-+#define MACH_GROUP_BRCM               23      /* Broadcom                     */
-+#define MACH_BCM47XX          1       /* Broadcom BCM47xx             */
-+
- #define CL_SIZE                       COMMAND_LINE_SIZE
- extern char *system_type;
---- a/include/linux/pci_ids.h
-+++ b/include/linux/pci_ids.h
-@@ -2069,6 +2069,7 @@
- #define PCI_DEVICE_ID_TIGON3_5906M    0x1713
- #define PCI_DEVICE_ID_BCM4401         0x4401
- #define PCI_DEVICE_ID_BCM4401B0               0x4402
-+#define PCI_DEVICE_ID_BCM4713         0x4713
- #define PCI_VENDOR_ID_TOPIC           0x151f
- #define PCI_DEVICE_ID_TOPIC_TP560     0x0000
diff --git a/target/linux/brcm47xx/patches-2.6.28/110-flash_map.patch b/target/linux/brcm47xx/patches-2.6.28/110-flash_map.patch
deleted file mode 100644 (file)
index 5d2fd1e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/drivers/mtd/maps/Kconfig
-+++ b/drivers/mtd/maps/Kconfig
-@@ -332,6 +332,12 @@ config MTD_CFI_FLAGADM
-         Mapping for the Flaga digital module. If you don't have one, ignore
-         this setting.
-+config MTD_BCM47XX
-+      tristate "BCM47xx flash device"
-+      depends on MIPS && MTD_CFI && BCM47XX
-+      help
-+        Support for the flash chips on the BCM947xx board.
-+
- config MTD_REDWOOD
-       tristate "CFI Flash devices mapped on IBM Redwood"
-       depends on MTD_CFI && ( REDWOOD_4 || REDWOOD_5 || REDWOOD_6 )
---- a/drivers/mtd/maps/Makefile
-+++ b/drivers/mtd/maps/Makefile
-@@ -29,6 +29,7 @@ obj-$(CONFIG_MTD_PMC_MSP_RAMROOT)+= pmcm
- obj-$(CONFIG_MTD_PCMCIA)      += pcmciamtd.o
- obj-$(CONFIG_MTD_RPXLITE)     += rpxlite.o
- obj-$(CONFIG_MTD_TQM8XXL)     += tqm8xxl.o
-+obj-$(CONFIG_MTD_BCM47XX)     += bcm47xx-flash.o
- obj-$(CONFIG_MTD_SA1100)      += sa1100-flash.o
- obj-$(CONFIG_MTD_IPAQ)                += ipaq-flash.o
- obj-$(CONFIG_MTD_SBC_GXX)     += sbc_gxx.o
diff --git a/target/linux/brcm47xx/patches-2.6.28/130-remove_scache.patch b/target/linux/brcm47xx/patches-2.6.28/130-remove_scache.patch
deleted file mode 100644 (file)
index e4ea20d..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
---- a/arch/mips/Kconfig
-+++ b/arch/mips/Kconfig
-@@ -198,7 +198,6 @@ config MIPS_MALTA
-       select I8259
-       select MIPS_BOARDS_GEN
-       select MIPS_BONITO64
--      select MIPS_CPU_SCACHE
-       select PCI_GT64XXX_PCI0
-       select MIPS_MSC
-       select SWAP_IO_SPACE
-@@ -1395,13 +1394,6 @@ config IP22_CPU_SCACHE
-       bool
-       select BOARD_SCACHE
--#
--# Support for a MIPS32 / MIPS64 style S-caches
--#
--config MIPS_CPU_SCACHE
--      bool
--      select BOARD_SCACHE
--
- config R5000_CPU_SCACHE
-       bool
-       select BOARD_SCACHE
---- a/arch/mips/kernel/cpu-probe.c
-+++ b/arch/mips/kernel/cpu-probe.c
-@@ -755,6 +755,8 @@ static inline void cpu_probe_mips(struct
-       case PRID_IMP_25KF:
-               c->cputype = CPU_25KF;
-               __cpu_name[cpu] = "MIPS 25Kc";
-+              /* Probe for L2 cache */
-+              c->scache.flags &= ~MIPS_CACHE_NOT_PRESENT;
-               break;
-       case PRID_IMP_34K:
-               c->cputype = CPU_34K;
---- a/arch/mips/mm/Makefile
-+++ b/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_R5000_CPU_SCACHE)  += sc-r5k.o
- obj-$(CONFIG_RM7000_CPU_SCACHE)       += sc-rm7k.o
--obj-$(CONFIG_MIPS_CPU_SCACHE) += sc-mips.o
- EXTRA_CFLAGS += -Werror
---- a/arch/mips/mm/c-r4k.c
-+++ b/arch/mips/mm/c-r4k.c
-@@ -1121,7 +1121,6 @@ static void __init loongson2_sc_init(voi
- extern int r5k_sc_init(void);
- extern int rm7k_sc_init(void);
--extern int mips_sc_init(void);
- static void __cpuinit setup_scache(void)
- {
-@@ -1175,29 +1174,17 @@ static void __cpuinit setup_scache(void)
- #endif
-       default:
--              if (c->isa_level == MIPS_CPU_ISA_M32R1 ||
--                  c->isa_level == MIPS_CPU_ISA_M32R2 ||
--                  c->isa_level == MIPS_CPU_ISA_M64R1 ||
--                  c->isa_level == MIPS_CPU_ISA_M64R2) {
--#ifdef CONFIG_MIPS_CPU_SCACHE
--                      if (mips_sc_init ()) {
--                              scache_size = c->scache.ways * c->scache.sets * c->scache.linesz;
--                              printk("MIPS secondary cache %ldkB, %s, linesize %d bytes.\n",
--                                     scache_size >> 10,
--                                     way_string[c->scache.ways], c->scache.linesz);
--                      }
--#else
--                      if (!(c->scache.flags & MIPS_CACHE_NOT_PRESENT))
--                              panic("Dunno how to handle MIPS32 / MIPS64 second level cache");
--#endif
--                      return;
--              }
-               sc_present = 0;
-       }
-       if (!sc_present)
-               return;
-+      if ((c->isa_level == MIPS_CPU_ISA_M32R1 ||
-+           c->isa_level == MIPS_CPU_ISA_M64R1) &&
-+          !(c->scache.flags & MIPS_CACHE_NOT_PRESENT))
-+              panic("Dunno how to handle MIPS32 / MIPS64 second level cache");
-+
-       /* compute a couple of other cache variables */
-       c->scache.waysize = scache_size / c->scache.ways;
diff --git a/target/linux/brcm47xx/patches-2.6.28/150-cpu_fixes.patch b/target/linux/brcm47xx/patches-2.6.28/150-cpu_fixes.patch
deleted file mode 100644 (file)
index 7abfbb2..0000000
+++ /dev/null
@@ -1,365 +0,0 @@
---- a/arch/mips/include/asm/r4kcache.h
-+++ b/arch/mips/include/asm/r4kcache.h
-@@ -17,6 +17,20 @@
- #include <asm/cpu-features.h>
- #include <asm/mipsmtregs.h>
-+#ifdef CONFIG_BCM47XX
-+#include <asm/paccess.h>
-+#include <linux/ssb/ssb.h>
-+#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE)))
-+
-+#define BCM4710_FILL_TLB(addr) (*(volatile unsigned long *)(addr))
-+#define BCM4710_PROTECTED_FILL_TLB(addr) ({ unsigned long x; get_dbe(x, (volatile unsigned long *)(addr)); })
-+#else
-+#define BCM4710_DUMMY_RREG()
-+
-+#define BCM4710_FILL_TLB(addr)
-+#define BCM4710_PROTECTED_FILL_TLB(addr)
-+#endif
-+
- /*
-  * This macro return a properly sign-extended address suitable as base address
-  * for indexed cache operations.  Two issues here:
-@@ -150,6 +164,7 @@ static inline void flush_icache_line_ind
- static inline void flush_dcache_line_indexed(unsigned long addr)
- {
-       __dflush_prologue
-+      BCM4710_DUMMY_RREG();
-       cache_op(Index_Writeback_Inv_D, addr);
-       __dflush_epilogue
- }
-@@ -169,6 +184,7 @@ static inline void flush_icache_line(uns
- static inline void flush_dcache_line(unsigned long addr)
- {
-       __dflush_prologue
-+      BCM4710_DUMMY_RREG();
-       cache_op(Hit_Writeback_Inv_D, addr);
-       __dflush_epilogue
- }
-@@ -176,6 +192,7 @@ static inline void flush_dcache_line(uns
- static inline void invalidate_dcache_line(unsigned long addr)
- {
-       __dflush_prologue
-+      BCM4710_DUMMY_RREG();
-       cache_op(Hit_Invalidate_D, addr);
-       __dflush_epilogue
- }
-@@ -208,6 +225,7 @@ static inline void flush_scache_line(uns
-  */
- static inline void protected_flush_icache_line(unsigned long addr)
- {
-+      BCM4710_DUMMY_RREG();
-       protected_cache_op(Hit_Invalidate_I, addr);
- }
-@@ -219,6 +237,7 @@ static inline void protected_flush_icach
-  */
- static inline void protected_writeback_dcache_line(unsigned long addr)
- {
-+      BCM4710_DUMMY_RREG();
-       protected_cache_op(Hit_Writeback_Inv_D, addr);
- }
-@@ -339,8 +358,52 @@ static inline void invalidate_tcache_pag
-               : "r" (base),                                           \
-                 "i" (op));
-+static inline void blast_dcache(void)
-+{
-+      unsigned long start = KSEG0;
-+      unsigned long dcache_size = current_cpu_data.dcache.waysize * current_cpu_data.dcache.ways;
-+      unsigned long end = (start + dcache_size);
-+
-+      do {
-+              BCM4710_DUMMY_RREG();
-+              cache_op(Index_Writeback_Inv_D, start);
-+              start += current_cpu_data.dcache.linesz;
-+      } while(start < end);
-+}
-+
-+static inline void blast_dcache_page(unsigned long page)
-+{
-+      unsigned long start = page;
-+      unsigned long end = start + PAGE_SIZE;
-+
-+      BCM4710_FILL_TLB(start);
-+      do {
-+              BCM4710_DUMMY_RREG();
-+              cache_op(Hit_Writeback_Inv_D, start);
-+              start += current_cpu_data.dcache.linesz;
-+      } while(start < end);
-+}
-+
-+static inline void blast_dcache_page_indexed(unsigned long page)
-+{
-+      unsigned long start = page;
-+      unsigned long end = start + PAGE_SIZE;
-+      unsigned long ws_inc = 1UL << current_cpu_data.dcache.waybit;
-+      unsigned long ws_end = current_cpu_data.dcache.ways <<
-+                             current_cpu_data.dcache.waybit;
-+      unsigned long ws, addr;
-+      for (ws = 0; ws < ws_end; ws += ws_inc) {
-+              start = page + ws;
-+              for (addr = start; addr < end; addr += current_cpu_data.dcache.linesz) {
-+                      BCM4710_DUMMY_RREG();
-+                      cache_op(Index_Writeback_Inv_D, addr);
-+              }
-+      }
-+}
-+
-+
- /* build blast_xxx, blast_xxx_page, blast_xxx_page_indexed */
--#define __BUILD_BLAST_CACHE(pfx, desc, indexop, hitop, lsize) \
-+#define __BUILD_BLAST_CACHE(pfx, desc, indexop, hitop, lsize, war) \
- static inline void blast_##pfx##cache##lsize(void)                    \
- {                                                                     \
-       unsigned long start = INDEX_BASE;                               \
-@@ -352,6 +415,7 @@ static inline void blast_##pfx##cache##l
-                                                                       \
-       __##pfx##flush_prologue                                         \
-                                                                       \
-+      war                                                             \
-       for (ws = 0; ws < ws_end; ws += ws_inc)                         \
-               for (addr = start; addr < end; addr += lsize * 32)      \
-                       cache##lsize##_unroll32(addr|ws, indexop);      \
-@@ -366,6 +430,7 @@ static inline void blast_##pfx##cache##l
-                                                                       \
-       __##pfx##flush_prologue                                         \
-                                                                       \
-+      war                                                             \
-       do {                                                            \
-               cache##lsize##_unroll32(start, hitop);                  \
-               start += lsize * 32;                                    \
-@@ -384,6 +449,8 @@ static inline void blast_##pfx##cache##l
-                              current_cpu_data.desc.waybit;            \
-       unsigned long ws, addr;                                         \
-                                                                       \
-+      war                                                             \
-+                                                                      \
-       __##pfx##flush_prologue                                         \
-                                                                       \
-       for (ws = 0; ws < ws_end; ws += ws_inc)                         \
-@@ -393,35 +460,37 @@ static inline void blast_##pfx##cache##l
-       __##pfx##flush_epilogue                                         \
- }
--__BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 16)
--__BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 16)
--__BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 16)
--__BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 32)
--__BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 32)
--__BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 32)
--__BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 64)
--__BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 64)
--__BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 128)
--
--__BUILD_BLAST_CACHE(inv_d, dcache, Index_Writeback_Inv_D, Hit_Invalidate_D, 16)
--__BUILD_BLAST_CACHE(inv_d, dcache, Index_Writeback_Inv_D, Hit_Invalidate_D, 32)
--__BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 16)
--__BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 32)
--__BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 64)
--__BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 128)
-+__BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 16, )
-+__BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 16, BCM4710_FILL_TLB(start);)
-+__BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 16, )
-+__BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 32, )
-+__BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 32, BCM4710_FILL_TLB(start);)
-+__BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 32, )
-+__BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 64, BCM4710_FILL_TLB(start);)
-+__BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 64, )
-+__BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 128, )
-+
-+__BUILD_BLAST_CACHE(inv_d, dcache, Index_Writeback_Inv_D, Hit_Invalidate_D, 16, )
-+__BUILD_BLAST_CACHE(inv_d, dcache, Index_Writeback_Inv_D, Hit_Invalidate_D, 32, )
-+__BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 16, )
-+__BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 32, )
-+__BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 64, )
-+__BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 128, )
- /* build blast_xxx_range, protected_blast_xxx_range */
--#define __BUILD_BLAST_CACHE_RANGE(pfx, desc, hitop, prot) \
-+#define __BUILD_BLAST_CACHE_RANGE(pfx, desc, hitop, prot, war, war2) \
- static inline void prot##blast_##pfx##cache##_range(unsigned long start, \
-                                                   unsigned long end)  \
- {                                                                     \
-       unsigned long lsize = cpu_##desc##_line_size();                 \
-       unsigned long addr = start & ~(lsize - 1);                      \
-       unsigned long aend = (end - 1) & ~(lsize - 1);                  \
-+      war                                                             \
-                                                                       \
-       __##pfx##flush_prologue                                         \
-                                                                       \
-       while (1) {                                                     \
-+              war2                                            \
-               prot##cache_op(hitop, addr);                            \
-               if (addr == aend)                                       \
-                       break;                                          \
-@@ -431,13 +500,13 @@ static inline void prot##blast_##pfx##ca
-       __##pfx##flush_epilogue                                         \
- }
--__BUILD_BLAST_CACHE_RANGE(d, dcache, Hit_Writeback_Inv_D, protected_)
--__BUILD_BLAST_CACHE_RANGE(s, scache, Hit_Writeback_Inv_SD, protected_)
--__BUILD_BLAST_CACHE_RANGE(i, icache, Hit_Invalidate_I, protected_)
--__BUILD_BLAST_CACHE_RANGE(d, dcache, Hit_Writeback_Inv_D, )
--__BUILD_BLAST_CACHE_RANGE(s, scache, Hit_Writeback_Inv_SD, )
-+__BUILD_BLAST_CACHE_RANGE(d, dcache, Hit_Writeback_Inv_D, protected_, BCM4710_PROTECTED_FILL_TLB(addr); BCM4710_PROTECTED_FILL_TLB(aend);, BCM4710_DUMMY_RREG();)
-+__BUILD_BLAST_CACHE_RANGE(s, scache, Hit_Writeback_Inv_SD, protected_,, )
-+__BUILD_BLAST_CACHE_RANGE(i, icache, Hit_Invalidate_I, protected_,, )
-+__BUILD_BLAST_CACHE_RANGE(d, dcache, Hit_Writeback_Inv_D,, BCM4710_FILL_TLB(addr); BCM4710_FILL_TLB(aend);, BCM4710_DUMMY_RREG();)
-+__BUILD_BLAST_CACHE_RANGE(s, scache, Hit_Writeback_Inv_SD,,, )
- /* blast_inv_dcache_range */
--__BUILD_BLAST_CACHE_RANGE(inv_d, dcache, Hit_Invalidate_D, )
--__BUILD_BLAST_CACHE_RANGE(inv_s, scache, Hit_Invalidate_SD, )
-+__BUILD_BLAST_CACHE_RANGE(inv_d, dcache, Hit_Invalidate_D,,,BCM4710_DUMMY_RREG();)
-+__BUILD_BLAST_CACHE_RANGE(inv_s, scache, Hit_Invalidate_SD,,, )
- #endif /* _ASM_R4KCACHE_H */
---- a/arch/mips/include/asm/stackframe.h
-+++ b/arch/mips/include/asm/stackframe.h
-@@ -409,6 +409,10 @@
-               .macro  RESTORE_SP_AND_RET
-               LONG_L  sp, PT_R29(sp)
-               .set    mips3
-+#ifdef CONFIG_BCM47XX
-+              nop
-+              nop
-+#endif
-               eret
-               .set    mips0
-               .endm
---- a/arch/mips/kernel/genex.S
-+++ b/arch/mips/kernel/genex.S
-@@ -52,6 +52,10 @@ NESTED(except_vec1_generic, 0, sp)
- NESTED(except_vec3_generic, 0, sp)
-       .set    push
-       .set    noat
-+#ifdef CONFIG_BCM47XX
-+      nop
-+      nop
-+#endif
- #if R5432_CP0_INTERRUPT_WAR
-       mfc0    k0, CP0_INDEX
- #endif
---- a/arch/mips/mm/c-r4k.c
-+++ b/arch/mips/mm/c-r4k.c
-@@ -34,6 +34,9 @@
- #include <asm/cacheflush.h> /* for run_uncached() */
-+/* For enabling BCM4710 cache workarounds */
-+int bcm4710 = 0;
-+
- /*
-  * Special Variant of smp_call_function for use by cache functions:
-  *
-@@ -104,6 +107,9 @@ static void __cpuinit r4k_blast_dcache_p
- {
-       unsigned long  dc_lsize = cpu_dcache_line_size();
-+      if (bcm4710)
-+              r4k_blast_dcache_page = blast_dcache_page;
-+      else
-       if (dc_lsize == 0)
-               r4k_blast_dcache_page = (void *)cache_noop;
-       else if (dc_lsize == 16)
-@@ -118,6 +124,9 @@ static void __cpuinit r4k_blast_dcache_p
- {
-       unsigned long dc_lsize = cpu_dcache_line_size();
-+      if (bcm4710)
-+              r4k_blast_dcache_page_indexed = blast_dcache_page_indexed;
-+      else
-       if (dc_lsize == 0)
-               r4k_blast_dcache_page_indexed = (void *)cache_noop;
-       else if (dc_lsize == 16)
-@@ -132,6 +141,9 @@ static void __cpuinit r4k_blast_dcache_s
- {
-       unsigned long dc_lsize = cpu_dcache_line_size();
-+      if (bcm4710)
-+              r4k_blast_dcache = blast_dcache;
-+      else
-       if (dc_lsize == 0)
-               r4k_blast_dcache = (void *)cache_noop;
-       else if (dc_lsize == 16)
-@@ -647,6 +659,8 @@ static void local_r4k_flush_cache_sigtra
-       unsigned long addr = (unsigned long) arg;
-       R4600_HIT_CACHEOP_WAR_IMPL;
-+      BCM4710_PROTECTED_FILL_TLB(addr);
-+      BCM4710_PROTECTED_FILL_TLB(addr + 4);
-       if (dc_lsize)
-               protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
-       if (!cpu_icache_snoops_remote_store && scache_size)
-@@ -1271,6 +1285,17 @@ static void __cpuinit coherency_setup(vo
-        * silly idea of putting something else there ...
-        */
-       switch (current_cpu_type()) {
-+      case CPU_BCM3302:
-+              {
-+                      u32 cm;
-+                      cm = read_c0_diag();
-+                      /* Enable icache */
-+                      cm |= (1 << 31);
-+                      /* Enable dcache */
-+                      cm |= (1 << 30);
-+                      write_c0_diag(cm);
-+              }
-+              break;
-       case CPU_R4000PC:
-       case CPU_R4000SC:
-       case CPU_R4000MC:
-@@ -1328,6 +1353,15 @@ void __cpuinit r4k_cache_init(void)
-               break;
-       }
-+      /* Check if special workarounds are required */
-+#ifdef CONFIG_BCM47XX
-+      if (current_cpu_data.cputype == CPU_BCM4710 && (current_cpu_data.processor_id & 0xff) == 0) {
-+              printk("Enabling BCM4710A0 cache workarounds.\n");
-+              bcm4710 = 1;
-+      } else
-+#endif
-+              bcm4710 = 0;
-+
-       probe_pcache();
-       setup_scache();
-@@ -1386,5 +1420,13 @@ void __cpuinit r4k_cache_init(void)
- #if !defined(CONFIG_MIPS_CMP)
-       local_r4k___flush_cache_all(NULL);
- #endif
-+#ifdef CONFIG_BCM47XX
-+      {
-+              static void (*_coherency_setup)(void);
-+              _coherency_setup = (void (*)(void)) KSEG1ADDR(coherency_setup);
-+              _coherency_setup();
-+      }
-+#else
-       coherency_setup();
-+#endif
- }
---- a/arch/mips/mm/tlbex.c
-+++ b/arch/mips/mm/tlbex.c
-@@ -678,6 +678,9 @@ static void __cpuinit build_r4000_tlb_re
-               /* No need for uasm_i_nop */
-       }
-+#ifdef CONFIG_BCM47XX
-+      uasm_i_nop(&p);
-+#endif
- #ifdef CONFIG_64BIT
-       build_get_pmde64(&p, &l, &r, K0, K1); /* get pmd in K1 */
- #else
-@@ -1085,6 +1088,9 @@ build_r4000_tlbchange_handler_head(u32 *
-                                  struct uasm_reloc **r, unsigned int pte,
-                                  unsigned int ptr)
- {
-+#ifdef CONFIG_BCM47XX
-+      uasm_i_nop(p);
-+#endif
- #ifdef CONFIG_64BIT
-       build_get_pmde64(p, l, r, pte, ptr); /* get pmd in ptr */
- #else
diff --git a/target/linux/brcm47xx/patches-2.6.28/160-kmap_coherent.patch b/target/linux/brcm47xx/patches-2.6.28/160-kmap_coherent.patch
deleted file mode 100644 (file)
index 0219adf..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
---- a/arch/mips/include/asm/cpu-features.h
-+++ b/arch/mips/include/asm/cpu-features.h
-@@ -101,6 +101,9 @@
- #ifndef cpu_has_pindexed_dcache
- #define cpu_has_pindexed_dcache       (cpu_data[0].dcache.flags & MIPS_CACHE_PINDEX)
- #endif
-+#ifndef cpu_use_kmap_coherent
-+#define cpu_use_kmap_coherent 1
-+#endif
- /*
-  * I-Cache snoops remote store.  This only matters on SMP.  Some multiprocessors
---- /dev/null
-+++ b/arch/mips/include/asm/mach-bcm47xx/cpu-feature-overrides.h
-@@ -0,0 +1,13 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License.  See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 2005 Ralf Baechle (ralf@linux-mips.org)
-+ */
-+#ifndef __ASM_MACH_BCM47XX_CPU_FEATURE_OVERRIDES_H
-+#define __ASM_MACH_BCM47XX_CPU_FEATURE_OVERRIDES_H
-+
-+#define cpu_use_kmap_coherent 0
-+
-+#endif /* __ASM_MACH_BCM47XX_CPU_FEATURE_OVERRIDES_H */
---- a/arch/mips/mm/c-r4k.c
-+++ b/arch/mips/mm/c-r4k.c
-@@ -494,7 +494,7 @@ static inline void local_r4k_flush_cache
-                */
-               map_coherent = (cpu_has_dc_aliases &&
-                               page_mapped(page) && !Page_dcache_dirty(page));
--              if (map_coherent)
-+              if (map_coherent && cpu_use_kmap_coherent)
-                       vaddr = kmap_coherent(page, addr);
-               else
-                       vaddr = kmap_atomic(page, KM_USER0);
-@@ -517,7 +517,7 @@ static inline void local_r4k_flush_cache
-       }
-       if (vaddr) {
--              if (map_coherent)
-+              if (map_coherent && cpu_use_kmap_coherent)
-                       kunmap_coherent();
-               else
-                       kunmap_atomic(vaddr, KM_USER0);
---- a/arch/mips/mm/init.c
-+++ b/arch/mips/mm/init.c
-@@ -212,7 +212,7 @@ void copy_user_highpage(struct page *to,
-       void *vfrom, *vto;
-       vto = kmap_atomic(to, KM_USER1);
--      if (cpu_has_dc_aliases &&
-+      if (cpu_has_dc_aliases && cpu_use_kmap_coherent &&
-           page_mapped(from) && !Page_dcache_dirty(from)) {
-               vfrom = kmap_coherent(from, vaddr);
-               copy_page(vto, vfrom);
-@@ -234,7 +234,7 @@ void copy_to_user_page(struct vm_area_st
-       struct page *page, unsigned long vaddr, void *dst, const void *src,
-       unsigned long len)
- {
--      if (cpu_has_dc_aliases &&
-+      if (cpu_has_dc_aliases && cpu_use_kmap_coherent &&
-           page_mapped(page) && !Page_dcache_dirty(page)) {
-               void *vto = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK);
-               memcpy(vto, src, len);
-@@ -252,7 +252,7 @@ void copy_from_user_page(struct vm_area_
-       struct page *page, unsigned long vaddr, void *dst, const void *src,
-       unsigned long len)
- {
--      if (cpu_has_dc_aliases &&
-+      if (cpu_has_dc_aliases && cpu_use_kmap_coherent &&
-           page_mapped(page) && !Page_dcache_dirty(page)) {
-               void *vfrom = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK);
-               memcpy(dst, vfrom, len);
diff --git a/target/linux/brcm47xx/patches-2.6.28/170-128MB_ram_bugfix.patch b/target/linux/brcm47xx/patches-2.6.28/170-128MB_ram_bugfix.patch
deleted file mode 100644 (file)
index e54e3de..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
---- a/arch/mips/bcm47xx/prom.c
-+++ b/arch/mips/bcm47xx/prom.c
-@@ -141,6 +141,14 @@ static __init void prom_init_mem(void)
-                       break;
-       }
-+      /* Ignoring the last page when ddr size is 128M. Cached
-+       * accesses to last page is causing the processor to prefetch
-+       * using address above 128M stepping out of the ddr address
-+       * space.
-+       */
-+      if (mem == 0x8000000)
-+              mem -= 0x1000;
-+
-       add_memory_region(0, mem, BOOT_MEM_RAM);
- }
diff --git a/target/linux/brcm47xx/patches-2.6.28/210-b44_phy_fix.patch b/target/linux/brcm47xx/patches-2.6.28/210-b44_phy_fix.patch
deleted file mode 100644 (file)
index e38332e..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/drivers/net/b44.c
-+++ b/drivers/net/b44.c
-@@ -339,7 +339,7 @@ static int b44_phy_reset(struct b44 *bp)
-               }
-       }
--      return 0;
-+      return err;
- }
- static void __b44_set_flow_ctrl(struct b44 *bp, u32 pause_flags)
-@@ -384,7 +384,7 @@ static void b44_set_flow_ctrl(struct b44
-       __b44_set_flow_ctrl(bp, pause_enab);
- }
--#ifdef SSB_DRIVER_MIPS
-+#ifdef CONFIG_SSB_DRIVER_MIPS
- extern char *nvram_get(char *name);
- static void b44_wap54g10_workaround(struct b44 *bp)
- {
-@@ -2213,6 +2213,10 @@ static int __devinit b44_init_one(struct
-        */
-       b44_chip_reset(bp, B44_CHIP_RESET_FULL);
-+      /* do a phy reset to test if there is an active phy */
-+      if (b44_phy_reset(bp) < 0)
-+              bp->phy_addr = B44_PHY_ADDR_NO_PHY;
-+
-       printk(KERN_INFO "%s: Broadcom 44xx/47xx 10/100BaseT Ethernet %s\n",
-              dev->name, print_mac(mac, dev->dev_addr));
diff --git a/target/linux/brcm47xx/patches-2.6.28/212-b44_alignment_fix.patch b/target/linux/brcm47xx/patches-2.6.28/212-b44_alignment_fix.patch
deleted file mode 100644 (file)
index b5840f2..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
---- a/drivers/net/b44.c
-+++ b/drivers/net/b44.c
-@@ -73,8 +73,8 @@
-         (BP)->tx_cons - (BP)->tx_prod - TX_RING_GAP(BP))
- #define NEXT_TX(N)            (((N) + 1) & (B44_TX_RING_SIZE - 1))
--#define RX_PKT_OFFSET         30
--#define RX_PKT_BUF_SZ         (1536 + RX_PKT_OFFSET + 64)
-+#define RX_PKT_OFFSET         (RX_HEADER_LEN + 2)
-+#define RX_PKT_BUF_SZ         (1536 + RX_PKT_OFFSET)
- /* minimum number of free TX descriptors required to wake up TX process */
- #define B44_TX_WAKEUP_THRESH          (B44_TX_RING_SIZE / 4)
-@@ -682,7 +682,6 @@ static int b44_alloc_rx_skb(struct b44 *
-       }
-       rh = (struct rx_header *) skb->data;
--      skb_reserve(skb, RX_PKT_OFFSET);
-       rh->len = 0;
-       rh->flags = 0;
-@@ -693,13 +692,13 @@ static int b44_alloc_rx_skb(struct b44 *
-       if (src_map != NULL)
-               src_map->skb = NULL;
--      ctrl  = (DESC_CTRL_LEN & (RX_PKT_BUF_SZ - RX_PKT_OFFSET));
-+      ctrl = (DESC_CTRL_LEN & RX_PKT_BUF_SZ);
-       if (dest_idx == (B44_RX_RING_SIZE - 1))
-               ctrl |= DESC_CTRL_EOT;
-       dp = &bp->rx_ring[dest_idx];
-       dp->ctrl = cpu_to_le32(ctrl);
--      dp->addr = cpu_to_le32((u32) mapping + RX_PKT_OFFSET + bp->dma_offset);
-+      dp->addr = cpu_to_le32((u32) mapping + bp->dma_offset);
-       if (bp->flags & B44_FLAG_RX_RING_HACK)
-               b44_sync_dma_desc_for_device(bp->sdev, bp->rx_ring_dma,
-@@ -809,8 +808,8 @@ static int b44_rx(struct b44 *bp, int bu
-                       ssb_dma_unmap_single(bp->sdev, map,
-                                            skb_size, DMA_FROM_DEVICE);
-                       /* Leave out rx_header */
--                      skb_put(skb, len + RX_PKT_OFFSET);
--                      skb_pull(skb, RX_PKT_OFFSET);
-+                      skb_put(skb, len + RX_PKT_OFFSET);
-+                      skb_pull(skb, RX_PKT_OFFSET);
-               } else {
-                       struct sk_buff *copy_skb;
diff --git a/target/linux/brcm47xx/patches-2.6.28/220-bcm5354.patch b/target/linux/brcm47xx/patches-2.6.28/220-bcm5354.patch
deleted file mode 100644 (file)
index 837bd43..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
---- a/drivers/ssb/driver_chipcommon.c
-+++ b/drivers/ssb/driver_chipcommon.c
-@@ -258,6 +258,8 @@ void ssb_chipco_resume(struct ssb_chipco
- void ssb_chipco_get_clockcpu(struct ssb_chipcommon *cc,
-                              u32 *plltype, u32 *n, u32 *m)
- {
-+      if ((chipco_read32(cc, SSB_CHIPCO_CHIPID) & SSB_CHIPCO_IDMASK) == 0x5354)
-+              return;
-       *n = chipco_read32(cc, SSB_CHIPCO_CLOCK_N);
-       *plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT);
-       switch (*plltype) {
-@@ -281,6 +283,8 @@ void ssb_chipco_get_clockcpu(struct ssb_
- void ssb_chipco_get_clockcontrol(struct ssb_chipcommon *cc,
-                                u32 *plltype, u32 *n, u32 *m)
- {
-+      if ((chipco_read32(cc, SSB_CHIPCO_CHIPID) & SSB_CHIPCO_IDMASK) == 0x5354)
-+              return;
-       *n = chipco_read32(cc, SSB_CHIPCO_CLOCK_N);
-       *plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT);
-       switch (*plltype) {
---- a/drivers/ssb/driver_mipscore.c
-+++ b/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)) {
-               rate = 200000000;
-+      } else if (bus->chip_id == 0x5354) {
-+              rate = 240000000;
-       } else {
-               rate = ssb_calc_clock_rate(pll_type, n, m);
-       }
---- a/drivers/ssb/main.c
-+++ b/drivers/ssb/main.c
-@@ -1013,6 +1013,8 @@ u32 ssb_clockspeed(struct ssb_bus *bus)
-       if (bus->chip_id == 0x5365) {
-               rate = 100000000;
-+      } else if (bus->chip_id == 0x5354) {
-+              rate = 120000000;
-       } else {
-               rate = ssb_calc_clock_rate(plltype, clkctl_n, clkctl_m);
-               if (plltype == SSB_PLLTYPE_3) /* 25Mhz, 2 dividers */
diff --git a/target/linux/brcm47xx/patches-2.6.28/250-ohci-ssb-usb2.patch b/target/linux/brcm47xx/patches-2.6.28/250-ohci-ssb-usb2.patch
deleted file mode 100644 (file)
index 25b27e4..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
----
- drivers/usb/host/ohci-ssb.c |   39 ++++++++++++++++++++++++++++++++++++---
- 1 file changed, 36 insertions(+), 3 deletions(-)
-
---- a/drivers/usb/host/ohci-ssb.c
-+++ b/drivers/usb/host/ohci-ssb.c
-@@ -106,10 +106,42 @@ static int ssb_ohci_attach(struct ssb_de
-       int err = -ENOMEM;
-       u32 tmp, flags = 0;
--      if (dev->id.coreid == SSB_DEV_USB11_HOSTDEV)
-+      if (dev->id.coreid == SSB_DEV_USB11_HOSTDEV) {
-+              /* Put the device into host-mode. */
-               flags |= SSB_OHCI_TMSLOW_HOSTMODE;
--
--      ssb_device_enable(dev, flags);
-+              ssb_device_enable(dev, flags);
-+      } else if (dev->id.coreid == SSB_DEV_USB20_HOST) {
-+              /*
-+               * USB 2.0 special considerations:
-+               *
-+               * 1. Since the core supports both OHCI and EHCI functions, it must
-+               *    only be reset once.
-+               *
-+               * 2. In addition to the standard SSB reset sequence, the Host Control
-+               *    Register must be programmed to bring the USB core and various
-+               *    phy components out of reset.
-+               */
-+              ssb_device_enable(dev, 0);
-+              ssb_write32(dev, 0x200, 0x7ff);
-+              udelay(1);
-+              if (dev->id.revision == 1) { // bug in rev 1
-+
-+                      /* Change Flush control reg */
-+                      tmp = ssb_read32(dev, 0x400);
-+                      tmp &= ~8;
-+                      ssb_write32(dev, 0x400, tmp);
-+                      tmp = ssb_read32(dev, 0x400);
-+                      printk("USB20H fcr: 0x%0x\n", tmp);
-+
-+                      /* Change Shim control reg */
-+                      tmp = ssb_read32(dev, 0x304);
-+                      tmp &= ~0x100;
-+                      ssb_write32(dev, 0x304, tmp);
-+                      tmp = ssb_read32(dev, 0x304);
-+                      printk("USB20H shim: 0x%0x\n", tmp);
-+              }
-+      } else
-+              ssb_device_enable(dev, 0);
-       hcd = usb_create_hcd(&ssb_ohci_hc_driver, dev->dev,
-                       dev_name(dev->dev));
-@@ -200,6 +232,7 @@ static int ssb_ohci_resume(struct ssb_de
- 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_HOST, SSB_ANY_REV),
-+      SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_USB20_HOST, SSB_ANY_REV),
-       SSB_DEVTABLE_END
- };
- MODULE_DEVICE_TABLE(ssb, ssb_ohci_table);
diff --git a/target/linux/brcm47xx/patches-2.6.28/260-ohci-set-dma-mask.patch b/target/linux/brcm47xx/patches-2.6.28/260-ohci-set-dma-mask.patch
deleted file mode 100644 (file)
index 50dcd57..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
----
- drivers/usb/host/ohci-ssb.c |    3 +++
- 1 file changed, 3 insertions(+)
-
---- a/drivers/usb/host/ohci-ssb.c
-+++ b/drivers/usb/host/ohci-ssb.c
-@@ -106,6 +106,9 @@ static int ssb_ohci_attach(struct ssb_de
-       int err = -ENOMEM;
-       u32 tmp, flags = 0;
-+      if (ssb_dma_set_mask(dev, DMA_32BIT_MASK))
-+              return -EOPNOTSUPP;
-+
-       if (dev->id.coreid == SSB_DEV_USB11_HOSTDEV) {
-               /* Put the device into host-mode. */
-               flags |= SSB_OHCI_TMSLOW_HOSTMODE;
diff --git a/target/linux/brcm47xx/patches-2.6.28/270-ehci-ssb.patch b/target/linux/brcm47xx/patches-2.6.28/270-ehci-ssb.patch
deleted file mode 100644 (file)
index 2af7b49..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
----
- drivers/usb/host/Kconfig    |   13 ++
- drivers/usb/host/ehci-hcd.c |   12 ++
- drivers/usb/host/ehci-ssb.c |  201 ++++++++++++++++++++++++++++++++++++++++++++
- drivers/usb/host/ohci-ssb.c |   23 +++++
- 4 files changed, 247 insertions(+), 2 deletions(-)
-
---- a/drivers/usb/host/Kconfig
-+++ b/drivers/usb/host/Kconfig
-@@ -96,6 +96,19 @@ config USB_EHCI_HCD_PPC_OF
-         Enables support for the USB controller present on the PowerPC
-         OpenFirmware platform bus.
-+config USB_EHCI_HCD_SSB
-+      bool "EHCI support for Broadcom SSB EHCI core"
-+      depends on USB_EHCI_HCD && SSB && EXPERIMENTAL
-+      default n
-+      ---help---
-+        Support for the Sonics Silicon Backplane (SSB) attached
-+        Broadcom USB EHCI core.
-+
-+        This device is present in some embedded devices with
-+        Broadcom based SSB bus.
-+
-+        If unsure, say N.
-+
- config USB_ISP116X_HCD
-       tristate "ISP116X HCD support"
-       depends on USB
---- a/drivers/usb/host/ehci-hcd.c
-+++ b/drivers/usb/host/ehci-hcd.c
-@@ -1036,8 +1036,16 @@ MODULE_LICENSE ("GPL");
- #define       PLATFORM_DRIVER         ixp4xx_ehci_driver
- #endif
--#if !defined(PCI_DRIVER) && !defined(PLATFORM_DRIVER) && \
--    !defined(PS3_SYSTEM_BUS_DRIVER) && !defined(OF_PLATFORM_DRIVER)
-+#ifdef CONFIG_USB_EHCI_HCD_SSB
-+#include "ehci-ssb.c"
-+#define SSB_EHCI_DRIVER         ssb_ehci_driver
-+#endif
-+
-+#if !defined(PCI_DRIVER) && \
-+    !defined(PLATFORM_DRIVER) && \
-+    !defined(PS3_SYSTEM_BUS_DRIVER) && \
-+    !defined(OF_PLATFORM_DRIVER) && \
-+    !defined(SSB_EHCI_DRIVER)
- #error "missing bus glue for ehci-hcd"
- #endif
---- /dev/null
-+++ b/drivers/usb/host/ehci-ssb.c
-@@ -0,0 +1,201 @@
-+/*
-+ * Sonics Silicon Backplane
-+ * Broadcom USB-core EHCI driver (SSB bus glue)
-+ *
-+ * Copyright 2007 Steven Brown <sbrown@cortland.com>
-+ *
-+ * Derived from the OHCI-SSB driver
-+ * Copyright 2007 Michael Buesch <mb@bu3sch.de>
-+ *
-+ * Derived from the EHCI-PCI driver
-+ * Copyright (c) 2000-2004 by David Brownell
-+ *
-+ * Derived from the OHCI-PCI driver
-+ * Copyright 1999 Roman Weissgaerber
-+ * Copyright 2000-2002 David Brownell
-+ * Copyright 1999 Linus Torvalds
-+ * Copyright 1999 Gregory P. Smith
-+ *
-+ * Derived from the USBcore related parts of Broadcom-SB
-+ * Copyright 2005 Broadcom Corporation
-+ *
-+ * Licensed under the GNU/GPL. See COPYING for details.
-+ */
-+#include <linux/ssb/ssb.h>
-+
-+#define SSB_OHCI_TMSLOW_HOSTMODE      (1 << 29)
-+
-+struct ssb_ehci_device {
-+      struct ehci_hcd ehci; /* _must_ be at the beginning. */
-+
-+      u32 enable_flags;
-+};
-+
-+static inline
-+struct ssb_ehci_device *hcd_to_ssb_ehci(struct usb_hcd *hcd)
-+{
-+      return (struct ssb_ehci_device *)(hcd->hcd_priv);
-+}
-+
-+
-+static int ssb_ehci_reset(struct usb_hcd *hcd)
-+{
-+      struct ehci_hcd *ehci = hcd_to_ehci(hcd);
-+      int err;
-+
-+      ehci->caps = hcd->regs;
-+      ehci->regs = hcd->regs +
-+              HC_LENGTH(ehci_readl(ehci, &ehci->caps->hc_capbase));
-+
-+      dbg_hcs_params(ehci, "reset");
-+      dbg_hcc_params(ehci, "reset");
-+
-+      ehci->hcs_params = ehci_readl(ehci, &ehci->caps->hcs_params);
-+
-+      err = ehci_halt(ehci);
-+
-+      if (err)
-+              return err;
-+
-+      err = ehci_init(hcd);
-+
-+      if (err)
-+              return err;
-+
-+      ehci_port_power(ehci, 0);
-+
-+      return err;
-+}
-+
-+static int ssb_ehci_start(struct usb_hcd *hcd)
-+{
-+      struct ehci_hcd *ehci = hcd_to_ehci(hcd);
-+      int err;
-+
-+      err = ehci_run(hcd);
-+      if (err < 0) {
-+              ehci_err(ehci, "can't start\n");
-+              ehci_stop(hcd);
-+      }
-+
-+      return err;
-+}
-+
-+#ifdef CONFIG_PM
-+static int ssb_ehci_hcd_suspend(struct usb_hcd *hcd, pm_message_t message)
-+{
-+      struct ssb_ehci_device *ehcidev = hcd_to_ssb_ehci(hcd);
-+      struct ehci_hcd *ehci = &ehcidev->ehci;
-+      unsigned long flags;
-+
-+      spin_lock_irqsave(&ehci->lock, flags);
-+
-+      ehci_writel(ehci, EHCI_INTR_MIE, &ehci->regs->intrdisable);
-+      ehci_readl(ehci, &ehci->regs->intrdisable); /* commit write */
-+
-+      /* make sure snapshot being resumed re-enumerates everything */
-+      if (message.event == PM_EVENT_PRETHAW)
-+              ehci_usb_reset(ehci);
-+
-+      clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
-+
-+      spin_unlock_irqrestore(&ehci->lock, flags);
-+      return 0;
-+}
-+
-+static int ssb_ehci_hcd_resume(struct usb_hcd *hcd)
-+{
-+      set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
-+      usb_hcd_resume_root_hub(hcd);
-+      return 0;
-+}
-+#endif /* CONFIG_PM */
-+
-+static const struct hc_driver ssb_ehci_hc_driver = {
-+      .description            = "ssb-usb-ehci",
-+      .product_desc           = "SSB EHCI Controller",
-+      .hcd_priv_size          = sizeof(struct ssb_ehci_device),
-+
-+      .irq                    = ehci_irq,
-+      .flags                  = HCD_MEMORY | HCD_USB2,
-+
-+      .reset                  = ssb_ehci_reset,
-+      .start                  = ssb_ehci_start,
-+      .stop                   = ehci_stop,
-+      .shutdown               = ehci_shutdown,
-+
-+#ifdef CONFIG_PM
-+      .suspend                = ssb_ehci_hcd_suspend,
-+      .resume                 = ssb_ehci_hcd_resume,
-+#endif
-+
-+      .urb_enqueue            = ehci_urb_enqueue,
-+      .urb_dequeue            = ehci_urb_dequeue,
-+      .endpoint_disable       = ehci_endpoint_disable,
-+
-+      .get_frame_number       = ehci_get_frame,
-+
-+      .hub_status_data        = ehci_hub_status_data,
-+      .hub_control            = ehci_hub_control,
-+#ifdef CONFIG_PM
-+      .bus_suspend            = ehci_bus_suspend,
-+      .bus_resume             = ehci_bus_resume,
-+#endif
-+
-+};
-+
-+static void ssb_ehci_detach(struct ssb_device *dev, struct usb_hcd *hcd)
-+{
-+
-+      usb_remove_hcd(hcd);
-+      iounmap(hcd->regs);
-+      usb_put_hcd(hcd);
-+}
-+EXPORT_SYMBOL_GPL(ssb_ehci_detach);
-+
-+static int ssb_ehci_attach(struct ssb_device *dev, struct usb_hcd **ehci_hcd)
-+{
-+      struct ssb_ehci_device *ehcidev;
-+      struct usb_hcd *hcd;
-+      int err = -ENOMEM;
-+      u32 tmp, flags = 0;
-+
-+      hcd = usb_create_hcd(&ssb_ehci_hc_driver, dev->dev,
-+              dev->dev->bus_id);
-+      if (!hcd)
-+              goto err_dev_disable;
-+
-+      ehcidev = hcd_to_ssb_ehci(hcd);
-+      ehcidev->enable_flags = flags;
-+      tmp = ssb_read32(dev, SSB_ADMATCH0);
-+      hcd->rsrc_start = ssb_admatch_base(tmp) + 0x800; /* ehci core offset */
-+      hcd->rsrc_len = 0x100; /* ehci reg block size */
-+      /*
-+       * start & size modified per sbutils.c
-+       */
-+      hcd->regs = ioremap_nocache(hcd->rsrc_start, hcd->rsrc_len);
-+      if (!hcd->regs)
-+              goto err_put_hcd;
-+      err = usb_add_hcd(hcd, dev->irq, IRQF_SHARED | IRQF_DISABLED);
-+      if (err)
-+              goto err_iounmap;
-+
-+      *ehci_hcd = hcd;
-+
-+      return err;
-+
-+err_iounmap:
-+      iounmap(hcd->regs);
-+err_put_hcd:
-+      usb_put_hcd(hcd);
-+err_dev_disable:
-+      ssb_device_disable(dev, flags);
-+      return err;
-+}
-+EXPORT_SYMBOL_GPL(ssb_ehci_attach);
-+
-+static const struct ssb_device_id ssb_ehci_table[] = {
-+      SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_USB20_HOST, SSB_ANY_REV),
-+      SSB_DEVTABLE_END
-+};
-+MODULE_DEVICE_TABLE(ssb, ssb_ehci_table);
---- a/drivers/usb/host/ohci-ssb.c
-+++ b/drivers/usb/host/ohci-ssb.c
-@@ -17,6 +17,8 @@
-  */
- #include <linux/ssb/ssb.h>
-+extern int ssb_ehci_attach(struct ssb_device *dev, struct usb_hcd **hcd);
-+extern void ssb_ehci_detach(struct ssb_device *dev, struct usb_hcd *hcd);
- #define SSB_OHCI_TMSLOW_HOSTMODE      (1 << 29)
-@@ -24,6 +26,7 @@ struct ssb_ohci_device {
-       struct ohci_hcd ohci; /* _must_ be at the beginning. */
-       u32 enable_flags;
-+      struct usb_hcd *ehci_hcd;
- };
- static inline
-@@ -92,13 +95,25 @@ static const struct hc_driver ssb_ohci_h
- static void ssb_ohci_detach(struct ssb_device *dev)
- {
-       struct usb_hcd *hcd = ssb_get_drvdata(dev);
-+#ifdef CONFIG_USB_EHCI_HCD_SSB
-+      struct ssb_ohci_device *ohcidev = hcd_to_ssb_ohci(hcd);
-+#endif
-       usb_remove_hcd(hcd);
-       iounmap(hcd->regs);
-       usb_put_hcd(hcd);
-+
-+#ifdef CONFIG_USB_EHCI_HCD_SSB
-+      /*
-+       * Also detach ehci function
-+       */
-+      if (dev->id.coreid == SSB_DEV_USB20_HOST)
-+              ssb_ehci_detach(dev, ohcidev->ehci_hcd);
-+#endif
-       ssb_device_disable(dev, 0);
- }
-+
- static int ssb_ohci_attach(struct ssb_device *dev)
- {
-       struct ssb_ohci_device *ohcidev;
-@@ -165,6 +180,14 @@ static int ssb_ohci_attach(struct ssb_de
-       ssb_set_drvdata(dev, hcd);
-+#ifdef CONFIG_USB_EHCI_HCD_SSB
-+      /*
-+       * attach ehci function in this core
-+       */
-+      if (dev->id.coreid == SSB_DEV_USB20_HOST)
-+              err = ssb_ehci_attach(dev, &(ohcidev->ehci_hcd));
-+#endif
-+
-       return err;
- err_iounmap:
diff --git a/target/linux/brcm47xx/patches-2.6.28/275-usb2-bcm5354-init.patch b/target/linux/brcm47xx/patches-2.6.28/275-usb2-bcm5354-init.patch
deleted file mode 100644 (file)
index 3d8327e..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-This patch significantly improves the reliability of high speed 
-usb writes on the bcm5354. It implements a work around for version 2
-of the usb20 core that was cribbed from the GPL sources for the 
-Asus wl500gpv2 and verified against the wl520gu sources.
-
-Reference:
-GPL/WL-520gu-NewUI/src/linux/linux/arch/mips/brcm-boards/bcm947xx/pcibios.c
-GPL/WL-500gPV2-NewUI/src/linux/linux/arch/mips/brcm-boards/bcm947xx/pcibios.c
-
-Signed-off-by: Steve Brown <sbrown@cortland.com>
-
----
- drivers/usb/host/ohci-ssb.c |   37 +++++++++++++++++++++++--------------
- 1 file changed, 23 insertions(+), 14 deletions(-)
-
---- a/drivers/usb/host/ohci-ssb.c
-+++ b/drivers/usb/host/ohci-ssb.c
-@@ -141,22 +141,31 @@ static int ssb_ohci_attach(struct ssb_de
-                */
-               ssb_device_enable(dev, 0);
-               ssb_write32(dev, 0x200, 0x7ff);
-+
-+              /* Change Flush control reg */
-+              tmp = ssb_read32(dev, 0x400);
-+              tmp &= ~8;
-+              ssb_write32(dev, 0x400, tmp);
-+              tmp = ssb_read32(dev, 0x400);
-+
-+              /* Change Shim control reg */
-+              tmp = ssb_read32(dev, 0x304);
-+              tmp &= ~0x100;
-+              ssb_write32(dev, 0x304, tmp);
-+              tmp = ssb_read32(dev, 0x304);
-+
-               udelay(1);
--              if (dev->id.revision == 1) { // bug in rev 1
--                      /* Change Flush control reg */
--                      tmp = ssb_read32(dev, 0x400);
--                      tmp &= ~8;
--                      ssb_write32(dev, 0x400, tmp);
--                      tmp = ssb_read32(dev, 0x400);
--                      printk("USB20H fcr: 0x%0x\n", tmp);
--
--                      /* Change Shim control reg */
--                      tmp = ssb_read32(dev, 0x304);
--                      tmp &= ~0x100;
--                      ssb_write32(dev, 0x304, tmp);
--                      tmp = ssb_read32(dev, 0x304);
--                      printk("USB20H shim: 0x%0x\n", tmp);
-+              /* Work around for 5354 failures */
-+              if ((dev->id.revision == 2) && (dev->bus->chip_id == 0x5354)) {
-+                      /* Change syn01 reg */
-+                      tmp = 0x00fe00fe;
-+                      ssb_write32(dev, 0x894, tmp);
-+
-+                      /* Change syn03 reg */
-+                      tmp = ssb_read32(dev, 0x89c);
-+                      tmp |= 0x1;
-+                      ssb_write32(dev, 0x89c, tmp);
-               }
-       } else
-               ssb_device_enable(dev, 0);
diff --git a/target/linux/brcm47xx/patches-2.6.28/300-fork_cacheflush.patch b/target/linux/brcm47xx/patches-2.6.28/300-fork_cacheflush.patch
deleted file mode 100644 (file)
index 686fb1b..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/arch/mips/include/asm/cacheflush.h
-+++ b/arch/mips/include/asm/cacheflush.h
-@@ -32,7 +32,7 @@
- extern void (*flush_cache_all)(void);
- extern void (*__flush_cache_all)(void);
- extern void (*flush_cache_mm)(struct mm_struct *mm);
--#define flush_cache_dup_mm(mm)        do { (void) (mm); } while (0)
-+#define flush_cache_dup_mm(mm) flush_cache_mm(mm)
- extern void (*flush_cache_range)(struct vm_area_struct *vma,
-       unsigned long start, unsigned long end);
- extern void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page, unsigned long pfn);
diff --git a/target/linux/brcm47xx/patches-2.6.28/301-kmod-fuse-dcache-bug-r4k.patch b/target/linux/brcm47xx/patches-2.6.28/301-kmod-fuse-dcache-bug-r4k.patch
deleted file mode 100644 (file)
index efe3891..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/arch/mips/mm/c-r4k.c
-+++ b/arch/mips/mm/c-r4k.c
-@@ -360,7 +360,7 @@ static inline void local_r4k___flush_cac
-       }
- }
--static void r4k___flush_cache_all(void)
-+void r4k___flush_cache_all(void)
- {
-       r4k_on_each_cpu(local_r4k___flush_cache_all, NULL, 1);
- }
-@@ -524,7 +524,7 @@ static inline void local_r4k_flush_cache
-       }
- }
--static void r4k_flush_cache_page(struct vm_area_struct *vma,
-+void r4k_flush_cache_page(struct vm_area_struct *vma,
-       unsigned long addr, unsigned long pfn)
- {
-       struct flush_cache_page_args args;
-@@ -1430,3 +1430,10 @@ void __cpuinit r4k_cache_init(void)
-       coherency_setup();
- #endif
- }
-+
-+// fuse package DCACHE BUG patch exports
-+void (*fuse_flush_cache_all)(void) = r4k___flush_cache_all;
-+void (*fuse_flush_cache_page)(struct vm_area_struct *vma, unsigned long page,
-+        unsigned long pfn) = r4k_flush_cache_page;
-+EXPORT_SYMBOL(fuse_flush_cache_page);
-+EXPORT_SYMBOL(fuse_flush_cache_all);
diff --git a/target/linux/brcm47xx/patches-2.6.28/302-kmod-fuse-dcache-bug-fuse.patch b/target/linux/brcm47xx/patches-2.6.28/302-kmod-fuse-dcache-bug-fuse.patch
deleted file mode 100644 (file)
index a81e767..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
---- a/fs/fuse/dev.c
-+++ b/fs/fuse/dev.c
-@@ -525,6 +525,11 @@ static void fuse_copy_finish(struct fuse
-       }
- }
-+#ifdef DCACHE_BUG
-+extern void (*fuse_flush_cache_all)(void);
-+extern void (*fuse_flush_cache_page)(struct vm_area_struct *vma, unsigned long page, unsigned long pfn);
-+#endif
-+
- /*
-  * Get another pagefull of userspace buffer, and map it to kernel
-  * address space, and lock request
-@@ -533,6 +538,9 @@ static int fuse_copy_fill(struct fuse_co
- {
-       unsigned long offset;
-       int err;
-+#ifdef DCACHE_BUG
-+      struct vm_area_struct *vma;
-+#endif
-       unlock_request(cs->fc, cs->req);
-       fuse_copy_finish(cs);
-@@ -544,14 +552,22 @@ static int fuse_copy_fill(struct fuse_co
-               cs->nr_segs --;
-       }
-       down_read(&current->mm->mmap_sem);
-+#ifndef DCACHE_BUG
-       err = get_user_pages(current, current->mm, cs->addr, 1, cs->write, 0,
-                            &cs->pg, NULL);
-+#else
-+      err = get_user_pages(current, current->mm, cs->addr, 1, cs->write, 0,
-+                           &cs->pg, &vma);
-+#endif
-       up_read(&current->mm->mmap_sem);
-       if (err < 0)
-               return err;
-       BUG_ON(err != 1);
-       offset = cs->addr % PAGE_SIZE;
-       cs->mapaddr = kmap_atomic(cs->pg, KM_USER0);
-+#ifdef DCACHE_BUG
-+      fuse_flush_cache_page(vma, cs->addr, page_to_pfn(cs->pg));
-+#endif
-       cs->buf = cs->mapaddr + offset;
-       cs->len = min(PAGE_SIZE - offset, cs->seglen);
-       cs->seglen -= cs->len;
-@@ -565,6 +581,11 @@ static int fuse_copy_do(struct fuse_copy
- {
-       unsigned ncpy = min(*size, cs->len);
-       if (val) {
-+#ifdef DCACHE_BUG
-+              // patch from mailing list, it is very important, otherwise,
-+              // can't mount, or ls mount point will hang
-+              fuse_flush_cache_all();
-+#endif
-               if (cs->write)
-                       memcpy(cs->buf, *val, ncpy);
-               else
---- a/fs/fuse/fuse_i.h
-+++ b/fs/fuse/fuse_i.h
-@@ -8,6 +8,7 @@
- #ifndef _FS_FUSE_I_H
- #define _FS_FUSE_I_H
-+#define DCACHE_BUG
- #include <linux/fuse.h>
- #include <linux/fs.h>
---- a/fs/fuse/inode.c
-+++ b/fs/fuse/inode.c
-@@ -1038,6 +1038,10 @@ static int __init fuse_init(void)
-       printk("fuse init (API version %i.%i)\n",
-              FUSE_KERNEL_VERSION, FUSE_KERNEL_MINOR_VERSION);
-+#ifdef DCACHE_BUG
-+printk("fuse init: DCACHE_BUG enabled\n");
-+#endif
-+
-       INIT_LIST_HEAD(&fuse_conn_list);
-       res = fuse_fs_init();
-       if (res)
diff --git a/target/linux/brcm47xx/patches-2.6.28/310-no_highpage.patch b/target/linux/brcm47xx/patches-2.6.28/310-no_highpage.patch
deleted file mode 100644 (file)
index 23efb59..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
---- a/arch/mips/include/asm/page.h
-+++ b/arch/mips/include/asm/page.h
-@@ -32,6 +32,7 @@
- #ifndef __ASSEMBLY__
- #include <linux/pfn.h>
-+#include <asm/cpu-features.h>
- #include <asm/io.h>
- extern void build_clear_page(void);
-@@ -67,13 +68,16 @@ static inline void clear_user_page(void 
-               flush_data_cache_page((unsigned long)addr);
- }
--extern void copy_user_page(void *vto, void *vfrom, unsigned long vaddr,
--      struct page *to);
--struct vm_area_struct;
--extern void copy_user_highpage(struct page *to, struct page *from,
--      unsigned long vaddr, struct vm_area_struct *vma);
-+static inline void copy_user_page(void *vto, void *vfrom, unsigned long vaddr,
-+      struct page *to)
-+{
-+      extern void (*flush_data_cache_page)(unsigned long addr);
--#define __HAVE_ARCH_COPY_USER_HIGHPAGE
-+      copy_page(vto, vfrom);
-+      if (!cpu_has_ic_fills_f_dc ||
-+          pages_do_alias((unsigned long)vto, vaddr & PAGE_MASK))
-+              flush_data_cache_page((unsigned long)vto);
-+}
- /*
-  * These are used to make use of C type-checking..
---- a/arch/mips/mm/init.c
-+++ b/arch/mips/mm/init.c
-@@ -206,30 +206,6 @@ void kunmap_coherent(void)
-       preempt_check_resched();
- }
--void copy_user_highpage(struct page *to, struct page *from,
--      unsigned long vaddr, struct vm_area_struct *vma)
--{
--      void *vfrom, *vto;
--
--      vto = kmap_atomic(to, KM_USER1);
--      if (cpu_has_dc_aliases && cpu_use_kmap_coherent &&
--          page_mapped(from) && !Page_dcache_dirty(from)) {
--              vfrom = kmap_coherent(from, vaddr);
--              copy_page(vto, vfrom);
--              kunmap_coherent();
--      } else {
--              vfrom = kmap_atomic(from, KM_USER0);
--              copy_page(vto, vfrom);
--              kunmap_atomic(vfrom, KM_USER0);
--      }
--      if ((!cpu_has_ic_fills_f_dc) ||
--          pages_do_alias((unsigned long)vto, vaddr & PAGE_MASK))
--              flush_data_cache_page((unsigned long)vto);
--      kunmap_atomic(vto, KM_USER1);
--      /* Make sure this page is cleared on other CPU's too before using it */
--      smp_wmb();
--}
--
- void copy_to_user_page(struct vm_area_struct *vma,
-       struct page *page, unsigned long vaddr, void *dst, const void *src,
-       unsigned long len)
diff --git a/target/linux/brcm47xx/patches-2.6.28/400-arch-bcm47xx.patch b/target/linux/brcm47xx/patches-2.6.28/400-arch-bcm47xx.patch
deleted file mode 100644 (file)
index ef6b712..0000000
+++ /dev/null
@@ -1,319 +0,0 @@
---- a/arch/mips/Kconfig
-+++ b/arch/mips/Kconfig
-@@ -53,6 +53,7 @@ config BCM47XX
-       select SSB_DRIVER_MIPS
-       select SSB_DRIVER_EXTIF
-       select SSB_EMBEDDED
-+      select SSB_B43_PCI_BRIDGE if PCI
-       select SSB_PCICORE_HOSTMODE if PCI
-       select GENERIC_GPIO
-       select SYS_HAS_EARLY_PRINTK
---- a/arch/mips/bcm47xx/Makefile
-+++ b/arch/mips/bcm47xx/Makefile
-@@ -3,4 +3,4 @@
- # under Linux.
- #
--obj-y := gpio.o irq.o prom.o serial.o setup.o time.o wgt634u.o
-+obj-y := cfe_env.o gpio.o irq.o nvram.o prom.o serial.o setup.o time.o wgt634u.o
---- a/arch/mips/bcm47xx/irq.c
-+++ b/arch/mips/bcm47xx/irq.c
-@@ -1,5 +1,6 @@
- /*
-  *  Copyright (C) 2004 Florian Schirmer <jolt@tuxbox.org>
-+ *  Copyright (C) 2008 Michael Buesch <mb@bu3sch.de>
-  *
-  *  This program is free software; you can redistribute  it and/or modify it
-  *  under  the terms of  the GNU General  Public License as published by the
-@@ -23,10 +24,19 @@
-  */
- #include <linux/types.h>
-+#include <linux/errno.h>
-+#include <linux/init.h>
- #include <linux/interrupt.h>
- #include <linux/irq.h>
-+#include <linux/pci.h>
-+#include <linux/ssb/ssb.h>
-+
- #include <asm/irq_cpu.h>
-+
-+extern struct ssb_bus ssb_bcm47xx;
-+
-+
- void plat_irq_dispatch(void)
- {
-       u32 cause;
---- a/arch/mips/bcm47xx/nvram.c
-+++ b/arch/mips/bcm47xx/nvram.c
-@@ -24,10 +24,10 @@
- #include <asm/io.h>
- #include <asm/uaccess.h>
--#include <nvram.h>
-+#include "include/nvram.h"
- #define MB * 1048576
--extern struct ssb_bus ssb;
-+extern struct ssb_bus ssb_bcm47xx;
- static char nvram_buf[NVRAM_SPACE];
- static int cfe_env;
-@@ -36,7 +36,7 @@ extern char *cfe_env_get(char *nv_buf, c
- /* Probe for NVRAM header */
- static void __init early_nvram_init(void)
- {
--      struct ssb_mipscore *mcore = &ssb.mipscore;
-+      struct ssb_mipscore *mcore = &ssb_bcm47xx.mipscore;
-       struct nvram_header *header;
-       int i;
-       u32 base, lim, off;
---- a/arch/mips/bcm47xx/setup.c
-+++ b/arch/mips/bcm47xx/setup.c
-@@ -2,7 +2,7 @@
-  *  Copyright (C) 2004 Florian Schirmer <jolt@tuxbox.org>
-  *  Copyright (C) 2005 Waldemar Brodkorb <wbx@openwrt.org>
-  *  Copyright (C) 2006 Felix Fietkau <nbd@openwrt.org>
-- *  Copyright (C) 2006 Michael Buesch <mb@bu3sch.de>
-+ *  Copyright (C) 2006-2008 Michael Buesch <mb@bu3sch.de>
-  *
-  *  This program is free software; you can redistribute  it and/or modify it
-  *  under  the terms of  the GNU General  Public License as published by the
-@@ -25,18 +25,28 @@
-  *  675 Mass Ave, Cambridge, MA 02139, USA.
-  */
-+#include <linux/init.h>
- #include <linux/types.h>
- #include <linux/ssb/ssb.h>
- #include <linux/ssb/ssb_embedded.h>
-+#include <linux/tty.h>
-+#include <linux/serial.h>
-+#include <linux/serial_core.h>
-+#include <linux/serial_reg.h>
-+#include <linux/serial_8250.h>
- #include <asm/bootinfo.h>
- #include <asm/reboot.h>
- #include <asm/time.h>
--#include <bcm47xx.h>
- #include <asm/fw/cfe/cfe_api.h>
-+#include <linux/pm.h>
-+
-+#include "include/nvram.h"
- struct ssb_bus ssb_bcm47xx;
- EXPORT_SYMBOL(ssb_bcm47xx);
-+extern void bcm47xx_pci_init(void);
-+
- static void bcm47xx_machine_restart(char *command)
- {
-       printk(KERN_ALERT "Please stand by while rebooting the system...\n");
-@@ -56,7 +66,7 @@ static void bcm47xx_machine_halt(void)
-               cpu_relax();
- }
--static void str2eaddr(char *str, char *dest)
-+static void e_aton(char *str, char *dest)
- {
-       int i = 0;
-@@ -73,52 +83,142 @@ static void str2eaddr(char *str, char *d
-       }
- }
--static int bcm47xx_get_invariants(struct ssb_bus *bus,
--                                 struct ssb_init_invariants *iv)
-+static void bcm47xx_fill_sprom(struct ssb_sprom *sprom)
- {
--      char buf[100];
-+      char *s;
--      /* Fill boardinfo structure */
--      memset(&(iv->boardinfo), 0 , sizeof(struct ssb_boardinfo));
-+      memset(sprom, 0xFF, sizeof(struct ssb_sprom));
--      if (cfe_getenv("boardvendor", buf, sizeof(buf)) >= 0)
--              iv->boardinfo.type = (u16)simple_strtoul(buf, NULL, 0);
--      if (cfe_getenv("boardtype", buf, sizeof(buf)) >= 0)
--              iv->boardinfo.type = (u16)simple_strtoul(buf, NULL, 0);
--      if (cfe_getenv("boardrev", buf, sizeof(buf)) >= 0)
--              iv->boardinfo.rev = (u16)simple_strtoul(buf, NULL, 0);
--
--      /* Fill sprom structure */
--      memset(&(iv->sprom), 0, sizeof(struct ssb_sprom));
--      iv->sprom.revision = 3;
--
--      if (cfe_getenv("et0macaddr", buf, sizeof(buf)) >= 0)
--              str2eaddr(buf, iv->sprom.et0mac);
--      if (cfe_getenv("et1macaddr", buf, sizeof(buf)) >= 0)
--              str2eaddr(buf, iv->sprom.et1mac);
--      if (cfe_getenv("et0phyaddr", buf, sizeof(buf)) >= 0)
--              iv->sprom.et0phyaddr = simple_strtoul(buf, NULL, 10);
--      if (cfe_getenv("et1phyaddr", buf, sizeof(buf)) >= 0)
--              iv->sprom.et1phyaddr = simple_strtoul(buf, NULL, 10);
--      if (cfe_getenv("et0mdcport", buf, sizeof(buf)) >= 0)
--              iv->sprom.et0mdcport = simple_strtoul(buf, NULL, 10);
--      if (cfe_getenv("et1mdcport", buf, sizeof(buf)) >= 0)
--              iv->sprom.et1mdcport = simple_strtoul(buf, NULL, 10);
-+      sprom->revision = 1;
-+      if ((s = nvram_get("il0macaddr")))
-+              e_aton(s, sprom->il0mac);
-+      if ((s = nvram_get("et0macaddr")))
-+              e_aton(s, sprom->et0mac);
-+      if ((s = nvram_get("et1macaddr")))
-+              e_aton(s, sprom->et1mac);
-+      if ((s = nvram_get("et0phyaddr")))
-+              sprom->et0phyaddr = simple_strtoul(s, NULL, 0);
-+      if ((s = nvram_get("et1phyaddr")))
-+              sprom->et1phyaddr = simple_strtoul(s, NULL, 0);
-+      if ((s = nvram_get("et0mdcport")))
-+              sprom->et0mdcport = !!simple_strtoul(s, NULL, 10);
-+      if ((s = nvram_get("et1mdcport")))
-+              sprom->et1mdcport = !!simple_strtoul(s, NULL, 10);
-+      if ((s = nvram_get("pa0b0")))
-+              sprom->pa0b0 = simple_strtoul(s, NULL, 0);
-+      if ((s = nvram_get("pa0b1")))
-+              sprom->pa0b1 = simple_strtoul(s, NULL, 0);
-+      if ((s = nvram_get("pa0b2")))
-+              sprom->pa0b2 = simple_strtoul(s, NULL, 0);
-+      if ((s = nvram_get("pa1b0")))
-+              sprom->pa1b0 = simple_strtoul(s, NULL, 0);
-+      if ((s = nvram_get("pa1b1")))
-+              sprom->pa1b1 = simple_strtoul(s, NULL, 0);
-+      if ((s = nvram_get("pa1b2")))
-+              sprom->pa1b2 = simple_strtoul(s, NULL, 0);
-+      if ((s = nvram_get("wl0gpio0")))
-+              sprom->gpio0 = simple_strtoul(s, NULL, 0);
-+      if ((s = nvram_get("wl0gpio1")))
-+              sprom->gpio1 = simple_strtoul(s, NULL, 0);
-+      if ((s = nvram_get("wl0gpio2")))
-+              sprom->gpio2 = simple_strtoul(s, NULL, 0);
-+      if ((s = nvram_get("wl0gpio3")))
-+              sprom->gpio3 = simple_strtoul(s, NULL, 0);
-+      if ((s = nvram_get("pa0maxpwr")))
-+              sprom->maxpwr_bg = simple_strtoul(s, NULL, 0);
-+      if ((s = nvram_get("pa1maxpwr")))
-+              sprom->maxpwr_a = simple_strtoul(s, NULL, 0);
-+      if ((s = nvram_get("pa0itssit")))
-+              sprom->itssi_bg = simple_strtoul(s, NULL, 0);
-+      if ((s = nvram_get("pa1itssit")))
-+              sprom->itssi_a = simple_strtoul(s, NULL, 0);
-+      sprom->boardflags_lo = 0;
-+      if ((s = nvram_get("boardflags")))
-+              sprom->boardflags_lo = simple_strtoul(s, NULL, 0);
-+      sprom->boardflags_hi = 0;
-+      if ((s = nvram_get("boardflags2")))
-+              sprom->boardflags_hi = simple_strtoul(s, NULL, 0);
-+}
-+
-+static int bcm47xx_get_invariants(struct ssb_bus *bus, struct ssb_init_invariants *iv)
-+{
-+      char *s;
-+
-+      iv->boardinfo.vendor = SSB_BOARDVENDOR_BCM;
-+      if ((s = nvram_get("boardtype")))
-+              iv->boardinfo.type = (u16)simple_strtoul(s, NULL, 0);
-+      if ((s = nvram_get("boardrev")))
-+              iv->boardinfo.rev = (u16)simple_strtoul(s, NULL, 0);
-+
-+      bcm47xx_fill_sprom(&iv->sprom);
-+
-+      if ((s = nvram_get("cardbus")))
-+              iv->has_cardbus_slot = !!simple_strtoul(s, NULL, 10);
-       return 0;
- }
- void __init plat_mem_setup(void)
- {
--      int err;
-+      int i, err;
-+      char *s;
-+      struct ssb_mipscore *mcore;
-+
-+      err = ssb_bus_ssbbus_register(&ssb_bcm47xx, SSB_ENUM_BASE, bcm47xx_get_invariants);
-+      if (err) {
-+              const char *msg = "Failed to initialize SSB bus (err %d)\n";
-+              printk(msg, err); /* Make sure the message gets out of the box. */
-+              panic(msg, err);
-+      }
-+      mcore = &ssb_bcm47xx.mipscore;
--      err = ssb_bus_ssbbus_register(&ssb_bcm47xx, SSB_ENUM_BASE,
--                                    bcm47xx_get_invariants);
--      if (err)
--              panic("Failed to initialize SSB bus (err %d)\n", err);
-+      s = nvram_get("kernel_args");
-+      if (s && !strncmp(s, "console=ttyS1", 13)) {
-+              struct ssb_serial_port port;
-+
-+              printk("Swapping serial ports!\n");
-+              /* swap serial ports */
-+              memcpy(&port, &mcore->serial_ports[0], sizeof(port));
-+              memcpy(&mcore->serial_ports[0], &mcore->serial_ports[1], sizeof(port));
-+              memcpy(&mcore->serial_ports[1], &port, sizeof(port));
-+      }
-+
-+      for (i = 0; i < mcore->nr_serial_ports; i++) {
-+              struct ssb_serial_port *port = &(mcore->serial_ports[i]);
-+              struct uart_port s;
-+
-+              memset(&s, 0, sizeof(s));
-+              s.line = i;
-+              s.mapbase = (unsigned int) port->regs;
-+              s.membase = port->regs;
-+              s.irq = port->irq + 2;
-+              s.uartclk = port->baud_base;
-+              s.flags = UPF_BOOT_AUTOCONF | UPF_SHARE_IRQ;
-+              s.iotype = SERIAL_IO_MEM;
-+              s.regshift = port->reg_shift;
-+
-+              early_serial_setup(&s);
-+      }
-+      printk("Serial init done.\n");
-       _machine_restart = bcm47xx_machine_restart;
-       _machine_halt = bcm47xx_machine_halt;
-       pm_power_off = bcm47xx_machine_halt;
- }
-+static int __init bcm47xx_register_gpiodev(void)
-+{
-+      static struct resource res = {
-+              .start = 0xFFFFFFFF,
-+      };
-+      struct platform_device *pdev;
-+
-+      pdev = platform_device_register_simple("GPIODEV", 0, &res, 1);
-+      if (!pdev) {
-+              printk(KERN_ERR "bcm47xx: GPIODEV init failed\n");
-+              return -ENODEV;
-+      }
-+
-+      return 0;
-+}
-+device_initcall(bcm47xx_register_gpiodev);
---- a/arch/mips/bcm47xx/time.c
-+++ b/arch/mips/bcm47xx/time.c
-@@ -22,11 +22,17 @@
-  *  675 Mass Ave, Cambridge, MA 02139, USA.
-  */
--
- #include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/sched.h>
-+#include <linux/serial_reg.h>
-+#include <linux/interrupt.h>
- #include <linux/ssb/ssb.h>
-+#include <asm/addrspace.h>
-+#include <asm/io.h>
- #include <asm/time.h>
--#include <bcm47xx.h>
-+
-+extern struct ssb_bus ssb_bcm47xx;
- void __init plat_time_init(void)
- {
diff --git a/target/linux/brcm47xx/patches-2.6.28/500-lzma_initramfs.patch b/target/linux/brcm47xx/patches-2.6.28/500-lzma_initramfs.patch
deleted file mode 100644 (file)
index 6a4a666..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
---- a/init/initramfs.c
-+++ b/init/initramfs.c
-@@ -7,6 +7,7 @@
- #include <linux/string.h>
- #include <linux/syscalls.h>
- #include <linux/utime.h>
-+#include <linux/vmalloc.h>
- static __initdata char *message;
- static void __init error(char *x)
-@@ -475,6 +476,69 @@ static void __init flush_window(void)
-       outcnt = 0;
- }
-+#include <linux/LzmaDecode.h>
-+static int __init lzma_unzip(void)
-+{
-+      unsigned int i;  /* temp value */
-+      unsigned int lc; /* literal context bits */
-+      unsigned int lp; /* literal pos state bits */
-+      unsigned int pb; /* pos state bits */
-+      unsigned int osize; /* uncompressed size */
-+      unsigned char *workspace;
-+      unsigned char* outputbuffer;
-+      unsigned int outsizeProcessed = 0;
-+      int workspace_size;
-+      int res;
-+
-+      // lzma args
-+      i = get_byte();
-+      lc = i % 9, i = i / 9;
-+      lp = i % 5, pb = i / 5;
-+
-+      // skip dictionary size
-+      for (i = 0; i < 4; i++)
-+              get_byte();
-+
-+      /* read the lower half of uncompressed size in the header */
-+      osize = ((unsigned int)get_byte()) +
-+              ((unsigned int)get_byte() << 8) +
-+              ((unsigned int)get_byte() << 16) +
-+              ((unsigned int)get_byte() << 24);
-+
-+      /* skip rest of the header (upper half of uncompressed size) */
-+      for (i = 0; i < 4; i++)
-+              get_byte();
-+
-+      workspace_size = ((LZMA_BASE_SIZE + (LZMA_LIT_SIZE << (lc + lp))) * sizeof(CProb)) + 100;
-+      printk( KERN_NOTICE "initramfs: LZMA lc=%d,lp=%d,pb=%d,origSize=%d\n",
-+      lc,lp,pb,osize);
-+      outputbuffer = vmalloc(osize);
-+      if (outputbuffer == 0) {
-+              printk(KERN_ERR "initramfs: Couldn't allocate lzma output buffer\n");
-+              return -1;
-+      }
-+
-+      workspace = vmalloc(workspace_size);
-+      if (workspace == NULL) {
-+              printk(KERN_ERR "initramfs: Couldn't allocate lzma workspace\n");
-+              return -1;
-+      }
-+
-+      res = LzmaDecode(workspace, workspace_size, lc, lp, pb, inbuf + inptr, insize - inptr, outputbuffer, osize, &outsizeProcessed);
-+      if( res != 0 ) {
-+              panic( KERN_ERR "initramfs: Lzma decode failure\n");
-+              return -1;
-+      }
-+
-+      flush_buffer(outputbuffer, outsizeProcessed);
-+      inptr = insize;
-+
-+      vfree(outputbuffer);
-+      vfree(workspace);
-+      state = Reset;
-+      return 0;
-+}
-+
- static char * __init unpack_to_rootfs(char *buf, unsigned len, int check_only)
- {
-       int written;
-@@ -509,12 +573,28 @@ static char * __init unpack_to_rootfs(ch
-               inptr = 0;
-               outcnt = 0;             /* bytes in output buffer */
-               bytes_out = 0;
--              crc = (ulg)0xffffffffL; /* shift register contents */
--              makecrc();
--              gunzip();
--              if (state != Reset)
-+              if( inbuf[0] == 037 && ((inbuf[1] == 0213) || (inbuf[1] == 0236)))
-+              {
-+                 printk( KERN_NOTICE "detected gzip initramfs\n");
-+                 crc = (ulg)0xffffffffL; /* shift register contents */
-+                 makecrc();
-+                 gunzip();
-+                 if (state != Reset)
-                       error("junk in gzipped archive");
--              this_header = saved_offset + inptr;
-+              }
-+              else if(!memcmp(inbuf+1, "\x00\x00\x80\x00", 4)) /* FIXME: hardcoded dictionary size */
-+              {
-+                 printk( KERN_NOTICE "detected lzma initramfs\n");
-+                 lzma_unzip();
-+              }
-+              else
-+              {
-+                 // skip forward ?
-+                 crc = (ulg)0xffffffffL; /* shift register contents */
-+                 makecrc();
-+                 gunzip();
-+              }
-+              this_header = saved_offset + inptr;
-               buf += inptr;
-               len -= inptr;
-       }
---- a/scripts/gen_initramfs_list.sh
-+++ b/scripts/gen_initramfs_list.sh
-@@ -287,7 +287,7 @@ if [ ! -z ${output_file} ]; then
-       if [ "${is_cpio_compressed}" = "compressed" ]; then
-               cat ${cpio_tfile} > ${output_file}
-       else
--              cat ${cpio_tfile} | gzip -f -9 - > ${output_file}
-+              lzma e -lc1 -lp2 -pb2 ${cpio_tfile} ${output_file}
-       fi
-       [ -z ${cpio_file} ] && rm ${cpio_tfile}
- fi
diff --git a/target/linux/brcm47xx/patches-2.6.28/601-mips-remove-pci-collision-check.patch b/target/linux/brcm47xx/patches-2.6.28/601-mips-remove-pci-collision-check.patch
deleted file mode 100644 (file)
index 8bc0090..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/arch/mips/pci/pci.c
-+++ b/arch/mips/pci/pci.c
-@@ -207,12 +207,10 @@ static int pcibios_enable_resources(stru
-               if ((idx == PCI_ROM_RESOURCE) &&
-                               (!(r->flags & IORESOURCE_ROM_ENABLE)))
-                       continue;
--              if (!r->start && r->end) {
--                      printk(KERN_ERR "PCI: Device %s not available "
--                             "because of resource collisions\n",
-+              if (!r->start && r->end)
-+                      printk(KERN_WARNING "PCI: Device %s resource"
-+                             "collisions detected. Ignoring...\n",
-                              pci_name(dev));
--                      return -EINVAL;
--              }
-               if (r->flags & IORESOURCE_IO)
-                       cmd |= PCI_COMMAND_IO;
-               if (r->flags & IORESOURCE_MEM)
diff --git a/target/linux/brcm47xx/patches-2.6.28/700-ssb-gigabit-ethernet-driver.patch b/target/linux/brcm47xx/patches-2.6.28/700-ssb-gigabit-ethernet-driver.patch
deleted file mode 100644 (file)
index 27da5fc..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
---- a/drivers/net/tg3.c
-+++ b/drivers/net/tg3.c
-@@ -40,6 +40,7 @@
- #include <linux/workqueue.h>
- #include <linux/prefetch.h>
- #include <linux/dma-mapping.h>
-+#include <linux/ssb/ssb_driver_gige.h>
- #include <net/checksum.h>
- #include <net/ip.h>
-@@ -428,8 +429,9 @@ static void _tw32_flush(struct tg3 *tp, 
- static inline void tw32_mailbox_flush(struct tg3 *tp, u32 off, u32 val)
- {
-       tp->write32_mbox(tp, off, val);
--      if (!(tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER) &&
--          !(tp->tg3_flags2 & TG3_FLG2_ICH_WORKAROUND))
-+      if ((tp->tg3_flags3 & TG3_FLG3_FLUSH_POSTED_WRITES) ||
-+          (!(tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER) &&
-+           !(tp->tg3_flags2 & TG3_FLG2_ICH_WORKAROUND)))
-               tp->read32_mbox(tp, off);
- }
-@@ -439,7 +441,7 @@ static void tg3_write32_tx_mbox(struct t
-       writel(val, mbox);
-       if (tp->tg3_flags & TG3_FLAG_TXD_MBOX_HWBUG)
-               writel(val, mbox);
--      if (tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER)
-+      if ((tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER) || (tp->tg3_flags3 & TG3_FLG3_FLUSH_POSTED_WRITES))
-               readl(mbox);
- }
-@@ -711,7 +713,7 @@ static void tg3_switch_clocks(struct tg3
- #define PHY_BUSY_LOOPS        5000
--static int tg3_readphy(struct tg3 *tp, int reg, u32 *val)
-+static int __tg3_readphy(struct tg3 *tp, unsigned int phy_addr, int reg, u32 *val)
- {
-       u32 frame_val;
-       unsigned int loops;
-@@ -725,7 +727,7 @@ static int tg3_readphy(struct tg3 *tp, i
-       *val = 0x0;
--      frame_val  = ((PHY_ADDR << MI_COM_PHY_ADDR_SHIFT) &
-+      frame_val  = ((phy_addr << MI_COM_PHY_ADDR_SHIFT) &
-                     MI_COM_PHY_ADDR_MASK);
-       frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) &
-                     MI_COM_REG_ADDR_MASK);
-@@ -760,7 +762,12 @@ static int tg3_readphy(struct tg3 *tp, i
-       return ret;
- }
--static int tg3_writephy(struct tg3 *tp, int reg, u32 val)
-+static int tg3_readphy(struct tg3 *tp, int reg, u32 *val)
-+{
-+      return __tg3_readphy(tp, PHY_ADDR, reg, val);
-+}
-+
-+static int __tg3_writephy(struct tg3 *tp, unsigned int phy_addr, int reg, u32 val)
- {
-       u32 frame_val;
-       unsigned int loops;
-@@ -776,7 +783,7 @@ static int tg3_writephy(struct tg3 *tp, 
-               udelay(80);
-       }
--      frame_val  = ((PHY_ADDR << MI_COM_PHY_ADDR_SHIFT) &
-+      frame_val  = ((phy_addr << MI_COM_PHY_ADDR_SHIFT) &
-                     MI_COM_PHY_ADDR_MASK);
-       frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) &
-                     MI_COM_REG_ADDR_MASK);
-@@ -809,6 +816,11 @@ static int tg3_writephy(struct tg3 *tp, 
-       return ret;
- }
-+static int tg3_writephy(struct tg3 *tp, int reg, u32 val)
-+{
-+      return __tg3_writephy(tp, PHY_ADDR, reg, val);
-+}
-+
- static int tg3_bmcr_reset(struct tg3 *tp)
- {
-       u32 phy_control;
-@@ -2232,8 +2244,10 @@ static int tg3_set_power_state(struct tg
-       tg3_frob_aux_power(tp);
-       /* Workaround for unstable PLL clock */
--      if ((GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5750_AX) ||
--          (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5750_BX)) {
-+      if ((tp->phy_id & PHY_ID_MASK != PHY_ID_BCM5750_2) &&
-+                              /* !!! FIXME !!! */
-+          ((GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5750_AX) ||
-+          (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5750_BX))) {
-               u32 val = tr32(0x7d00);
-               val &= ~((1 << 16) | (1 << 4) | (1 << 2) | (1 << 1) | 1);
-@@ -2725,6 +2739,14 @@ relink:
-               tg3_phy_copper_begin(tp);
-+              if (tp->tg3_flags3 & TG3_FLG3_ROBOSWITCH) {
-+                      current_link_up = 1;
-+                      current_speed = SPEED_1000; //FIXME
-+                      current_duplex = DUPLEX_FULL;
-+                      tp->link_config.active_speed = current_speed;
-+                      tp->link_config.active_duplex = current_duplex;
-+              }
-+
-               tg3_readphy(tp, MII_BMSR, &tmp);
-               if (!tg3_readphy(tp, MII_BMSR, &tmp) &&
-                   (tmp & BMSR_LSTATUS))
-@@ -5659,6 +5681,11 @@ static int tg3_poll_fw(struct tg3 *tp)
-       int i;
-       u32 val;
-+      if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE) {
-+              /* We don't use firmware. */
-+              return 0;
-+      }
-+
-       if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) {
-               /* Wait up to 20ms for init done. */
-               for (i = 0; i < 200; i++) {
-@@ -5902,6 +5929,14 @@ static int tg3_chip_reset(struct tg3 *tp
-               tw32(0x5000, 0x400);
-       }
-+      if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE) {
-+              /* BCM4785: In order to avoid repercussions from using potentially
-+               * defective internal ROM, stop the Rx RISC CPU, which is not
-+               * required. */
-+              tg3_stop_fw(tp);
-+              tg3_halt_cpu(tp, RX_CPU_BASE);
-+      }
-+
-       tw32(GRC_MODE, tp->grc_mode);
-       if (tp->pci_chip_rev_id == CHIPREV_ID_5705_A0) {
-@@ -6176,9 +6211,12 @@ static int tg3_halt_cpu(struct tg3 *tp, 
-               return -ENODEV;
-       }
--      /* Clear firmware's nvram arbitration. */
--      if (tp->tg3_flags & TG3_FLAG_NVRAM)
--              tw32(NVRAM_SWARB, SWARB_REQ_CLR0);
-+      if (!(tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE)) {
-+              /* Clear firmware's nvram arbitration. */
-+              if (tp->tg3_flags & TG3_FLAG_NVRAM)
-+                      tw32(NVRAM_SWARB, SWARB_REQ_CLR0);
-+      }
-+
-       return 0;
- }
-@@ -6259,6 +6297,11 @@ static int tg3_load_5701_a0_firmware_fix
-       struct fw_info info;
-       int err, i;
-+      if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE) {
-+              /* We don't use firmware. */
-+              return 0;
-+      }
-+
-       info.text_base = TG3_FW_TEXT_ADDR;
-       info.text_len = TG3_FW_TEXT_LEN;
-       info.text_data = &tg3FwText[0];
-@@ -6817,6 +6860,11 @@ static int tg3_load_tso_firmware(struct 
-       unsigned long cpu_base, cpu_scratch_base, cpu_scratch_size;
-       int err, i;
-+      if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE) {
-+              /* We don't use firmware. */
-+              return 0;
-+      }
-+
-       if (tp->tg3_flags2 & TG3_FLG2_HW_TSO)
-               return 0;
-@@ -7776,6 +7824,11 @@ static void tg3_timer(unsigned long __op
-       spin_lock(&tp->lock);
-+      if (tp->tg3_flags3 & TG3_FLG3_FLUSH_POSTED_WRITES) {
-+              /* BCM4785: Flush posted writes from GbE to host memory. */
-+              tr32(HOSTCC_MODE);
-+      }
-+
-       if (!(tp->tg3_flags & TG3_FLAG_TAGGED_STATUS)) {
-               /* All of this garbage is because when using non-tagged
-                * IRQ status the mailbox/status_block protocol the chip
-@@ -9469,6 +9522,11 @@ static int tg3_test_nvram(struct tg3 *tp
-       __le32 *buf;
-       int i, j, k, err = 0, size;
-+      if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE) {
-+              /* We don't have NVRAM. */
-+              return 0;
-+      }
-+
-       if (tg3_nvram_read_swab(tp, 0, &magic) != 0)
-               return -EIO;
-@@ -10262,7 +10320,7 @@ static int tg3_ioctl(struct net_device *
-                       return -EAGAIN;
-               spin_lock_bh(&tp->lock);
--              err = tg3_readphy(tp, data->reg_num & 0x1f, &mii_regval);
-+              err = __tg3_readphy(tp, data->phy_id & 0x1f, data->reg_num & 0x1f, &mii_regval);
-               spin_unlock_bh(&tp->lock);
-               data->val_out = mii_regval;
-@@ -10281,7 +10339,7 @@ static int tg3_ioctl(struct net_device *
-                       return -EAGAIN;
-               spin_lock_bh(&tp->lock);
--              err = tg3_writephy(tp, data->reg_num & 0x1f, data->val_in);
-+              err = __tg3_writephy(tp, data->phy_id & 0x1f, data->reg_num & 0x1f, data->val_in);
-               spin_unlock_bh(&tp->lock);
-               return err;
-@@ -10759,6 +10817,12 @@ static void __devinit tg3_get_5906_nvram
- /* Chips other than 5700/5701 use the NVRAM for fetching info. */
- static void __devinit tg3_nvram_init(struct tg3 *tp)
- {
-+      if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE) {
-+              /* No NVRAM and EEPROM on the SSB Broadcom GigE core. */
-+              tp->tg3_flags &= ~(TG3_FLAG_NVRAM | TG3_FLAG_NVRAM_BUFFERED);
-+              return;
-+      }
-+
-       tw32_f(GRC_EEPROM_ADDR,
-            (EEPROM_ADDR_FSM_RESET |
-             (EEPROM_DEFAULT_CLOCK_PERIOD <<
-@@ -10900,6 +10964,9 @@ static int tg3_nvram_read(struct tg3 *tp
- {
-       int ret;
-+      if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE)
-+              return -ENODEV;
-+
-       if (!(tp->tg3_flags & TG3_FLAG_NVRAM))
-               return tg3_nvram_read_using_eeprom(tp, offset, val);
-@@ -11147,6 +11214,9 @@ static int tg3_nvram_write_block(struct 
- {
-       int ret;
-+      if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE)
-+              return -ENODEV;
-+
-       if (tp->tg3_flags & TG3_FLAG_EEPROM_WRITE_PROT) {
-               tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl &
-                      ~GRC_LCLCTRL_GPIO_OUTPUT1);
-@@ -12205,7 +12275,6 @@ static int __devinit tg3_get_invariants(
-               tp->write32 = tg3_write_flush_reg32;
-       }
--
-       if ((tp->tg3_flags & TG3_FLAG_TXD_MBOX_HWBUG) ||
-           (tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER)) {
-               tp->write32_tx_mbox = tg3_write32_tx_mbox;
-@@ -12241,6 +12310,11 @@ static int __devinit tg3_get_invariants(
-             GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701)))
-               tp->tg3_flags |= TG3_FLAG_SRAM_USE_CONFIG;
-+      if (tp->tg3_flags3 & TG3_FLG3_FLUSH_POSTED_WRITES) {
-+              tp->write32_tx_mbox = tg3_write_flush_reg32;
-+              tp->write32_rx_mbox = tg3_write_flush_reg32;
-+      }
-+
-       /* Get eeprom hw config before calling tg3_set_power_state().
-        * In particular, the TG3_FLG2_IS_NIC flag must be
-        * determined before calling tg3_set_power_state() so that
-@@ -12640,6 +12714,10 @@ static int __devinit tg3_get_device_addr
-       }
-       if (!is_valid_ether_addr(&dev->dev_addr[0])) {
-+              if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE)
-+                      ssb_gige_get_macaddr(tp->pdev, &dev->dev_addr[0]);
-+      }
-+      if (!is_valid_ether_addr(&dev->dev_addr[0])) {
- #ifdef CONFIG_SPARC
-               if (!tg3_get_default_macaddr_sparc(tp))
-                       return 0;
-@@ -13131,6 +13209,7 @@ static char * __devinit tg3_phy_string(s
-       case PHY_ID_BCM5704:    return "5704";
-       case PHY_ID_BCM5705:    return "5705";
-       case PHY_ID_BCM5750:    return "5750";
-+      case PHY_ID_BCM5750_2:  return "5750-2";
-       case PHY_ID_BCM5752:    return "5752";
-       case PHY_ID_BCM5714:    return "5714";
-       case PHY_ID_BCM5780:    return "5780";
-@@ -13317,6 +13396,13 @@ static int __devinit tg3_init_one(struct
-               tp->msg_enable = tg3_debug;
-       else
-               tp->msg_enable = TG3_DEF_MSG_ENABLE;
-+      if (pdev_is_ssb_gige_core(pdev)) {
-+              tp->tg3_flags3 |= TG3_FLG3_IS_SSB_CORE;
-+              if (ssb_gige_must_flush_posted_writes(pdev))
-+                      tp->tg3_flags3 |= TG3_FLG3_FLUSH_POSTED_WRITES;
-+              if (ssb_gige_have_roboswitch(pdev))
-+                      tp->tg3_flags3 |= TG3_FLG3_ROBOSWITCH;
-+      }
-       /* The word/byte swap controls here control register access byte
-        * swapping.  DMA data byte swapping is controlled in the GRC_MODE
---- a/drivers/net/tg3.h
-+++ b/drivers/net/tg3.h
-@@ -2516,6 +2516,9 @@ struct tg3 {
- #define TG3_FLG3_RGMII_STD_IBND_DISABLE       0x00000100
- #define TG3_FLG3_RGMII_EXT_IBND_RX_EN 0x00000200
- #define TG3_FLG3_RGMII_EXT_IBND_TX_EN 0x00000400
-+#define TG3_FLG3_IS_SSB_CORE          0x00000800
-+#define TG3_FLG3_FLUSH_POSTED_WRITES  0x00001000
-+#define TG3_FLG3_ROBOSWITCH           0x00002000
-       struct timer_list               timer;
-       u16                             timer_counter;
-@@ -2574,6 +2577,7 @@ struct tg3 {
- #define PHY_ID_BCM5714                        0x60008340
- #define PHY_ID_BCM5780                        0x60008350
- #define PHY_ID_BCM5755                        0xbc050cc0
-+#define PHY_ID_BCM5750_2              0xbc050cd0
- #define PHY_ID_BCM5787                        0xbc050ce0
- #define PHY_ID_BCM5756                        0xbc050ed0
- #define PHY_ID_BCM5784                        0xbc050fa0
-@@ -2613,7 +2617,7 @@ struct tg3 {
-        (X) == PHY_ID_BCM5780 || (X) == PHY_ID_BCM5787 || \
-        (X) == PHY_ID_BCM5755 || (X) == PHY_ID_BCM5756 || \
-        (X) == PHY_ID_BCM5906 || (X) == PHY_ID_BCM5761 || \
--       (X) == PHY_ID_BCM8002)
-+       (X) == PHY_ID_BCM8002 || (X) == PHY_ID_BCM5750_2)
-       struct tg3_hw_stats             *hw_stats;
-       dma_addr_t                      stats_mapping;
diff --git a/target/linux/brcm47xx/patches-2.6.28/800-fix_cfe_detection.patch b/target/linux/brcm47xx/patches-2.6.28/800-fix_cfe_detection.patch
deleted file mode 100644 (file)
index c3a8a57..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
---- a/arch/mips/bcm47xx/prom.c
-+++ b/arch/mips/bcm47xx/prom.c
-@@ -32,6 +32,7 @@
- #include <asm/fw/cfe/cfe_error.h>
- static int cfe_cons_handle;
-+static void (* __prom_putchar)(char c);
- const char *get_system_type(void)
- {
-@@ -40,65 +41,40 @@ const char *get_system_type(void)
- void prom_putchar(char c)
- {
-+      if (__prom_putchar)
-+              __prom_putchar(c);
-+}
-+
-+void prom_putchar_cfe(char c)
-+{
-       while (cfe_write(cfe_cons_handle, &c, 1) == 0)
-               ;
- }
--static __init void prom_init_cfe(void)
-+static __init int prom_init_cfe(void)
- {
-       uint32_t cfe_ept;
-       uint32_t cfe_handle;
-       uint32_t cfe_eptseal;
--      int argc = fw_arg0;
--      char **envp = (char **) fw_arg2;
--      int *prom_vec = (int *) fw_arg3;
--
--      /*
--       * Check if a loader was used; if NOT, the 4 arguments are
--       * what CFE gives us (handle, 0, EPT and EPTSEAL)
--       */
--      if (argc < 0) {
--              cfe_handle = (uint32_t)argc;
--              cfe_ept = (uint32_t)envp;
--              cfe_eptseal = (uint32_t)prom_vec;
--      } else {
--              if ((int)prom_vec < 0) {
--                      /*
--                       * Old loader; all it gives us is the handle,
--                       * so use the "known" entrypoint and assume
--                       * the seal.
--                       */
--                      cfe_handle = (uint32_t)prom_vec;
--                      cfe_ept = 0xBFC00500;
--                      cfe_eptseal = CFE_EPTSEAL;
--              } else {
--                      /*
--                       * Newer loaders bundle the handle/ept/eptseal
--                       * Note: prom_vec is in the loader's useg
--                       * which is still alive in the TLB.
--                       */
--                      cfe_handle = prom_vec[0];
--                      cfe_ept = prom_vec[2];
--                      cfe_eptseal = prom_vec[3];
--              }
--      }
--      if (cfe_eptseal != CFE_EPTSEAL) {
--              /* too early for panic to do any good */
--              printk(KERN_ERR "CFE's entrypoint seal doesn't match.");
--              while (1) ;
--      }
-+      cfe_eptseal = (uint32_t) fw_arg3;
-+      cfe_handle = (uint32_t) fw_arg0;
-+      cfe_ept = (uint32_t) fw_arg2;
-+
-+      if (cfe_eptseal != CFE_EPTSEAL)
-+              return -1;
-       cfe_init(cfe_handle, cfe_ept);
-+      return 0;
- }
--static __init void prom_init_console(void)
-+static __init void prom_init_console_cfe(void)
- {
-       /* Initialize CFE console */
-       cfe_cons_handle = cfe_getstdhandle(CFE_STDHANDLE_CONSOLE);
- }
--static __init void prom_init_cmdline(void)
-+static __init void prom_init_cmdline_cfe(void)
- {
-       char buf[CL_SIZE];
-@@ -154,9 +130,12 @@ static __init void prom_init_mem(void)
- void __init prom_init(void)
- {
--      prom_init_cfe();
--      prom_init_console();
--      prom_init_cmdline();
-+      if (prom_init_cfe() == 0) {
-+              //prom_init_console_cfe();
-+              //prom_init_cmdline_cfe();
-+              __prom_putchar = prom_putchar_cfe;
-+      }
-+
-       prom_init_mem();
- }
diff --git a/target/linux/brcm47xx/patches-2.6.28/811-bcm47xx-fix-gpio-direction-retval.patch b/target/linux/brcm47xx/patches-2.6.28/811-bcm47xx-fix-gpio-direction-retval.patch
deleted file mode 100644 (file)
index fc9613b..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-The GPIO API is supposed to return 0 or a negative error code,
-but the SSB GPIO functions return the bitmask of the GPIO register.
-Fix this by ignoring the bitmask and always returning 0. The SSB GPIO functions can't fail.
-
---mb
-
-
-
---- a/arch/mips/include/asm/mach-bcm47xx/gpio.h
-+++ b/arch/mips/include/asm/mach-bcm47xx/gpio.h
-@@ -31,24 +31,28 @@ static inline void gpio_set_value(unsign
- static inline int gpio_direction_input(unsigned gpio)
- {
--      return ssb_gpio_outen(&ssb_bcm47xx, 1 << gpio, 0);
-+      ssb_gpio_outen(&ssb_bcm47xx, 1 << gpio, 0);
-+      return 0;
- }
- static inline int gpio_direction_output(unsigned gpio, int value)
- {
--      return ssb_gpio_outen(&ssb_bcm47xx, 1 << gpio, 1 << gpio);
-+      ssb_gpio_outen(&ssb_bcm47xx, 1 << gpio, 1 << gpio);
-+      return 0;
- }
--static int gpio_intmask(unsigned gpio, int value)
-+static inline int gpio_intmask(unsigned gpio, int value)
- {
--      return ssb_gpio_intmask(&ssb_bcm47xx, 1 << gpio,
--                              value ? 1 << gpio : 0);
-+      ssb_gpio_intmask(&ssb_bcm47xx, 1 << gpio,
-+                       value ? 1 << gpio : 0);
-+      return 0;
- }
--static int gpio_polarity(unsigned gpio, int value)
-+static inline int gpio_polarity(unsigned gpio, int value)
- {
--      return ssb_gpio_polarity(&ssb_bcm47xx, 1 << gpio,
--                               value ? 1 << gpio : 0);
-+      ssb_gpio_polarity(&ssb_bcm47xx, 1 << gpio,
-+                        value ? 1 << gpio : 0);
-+      return 0;
- }
diff --git a/target/linux/brcm47xx/patches-2.6.28/812-disable_wgt634u_crap.patch b/target/linux/brcm47xx/patches-2.6.28/812-disable_wgt634u_crap.patch
deleted file mode 100644 (file)
index eb212f3..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
---- a/arch/mips/bcm47xx/Makefile
-+++ b/arch/mips/bcm47xx/Makefile
-@@ -3,4 +3,4 @@
- # under Linux.
- #
--obj-y := cfe_env.o gpio.o irq.o nvram.o prom.o serial.o setup.o time.o wgt634u.o
-+obj-y := cfe_env.o gpio.o irq.o nvram.o prom.o serial.o setup.o time.o
---- a/arch/mips/bcm47xx/wgt634u.c
-+++ /dev/null
-@@ -1,167 +0,0 @@
--/*
-- * This file is subject to the terms and conditions of the GNU General Public
-- * License.  See the file "COPYING" in the main directory of this archive
-- * for more details.
-- *
-- * Copyright (C) 2007 Aurelien Jarno <aurelien@aurel32.net>
-- */
--
--#include <linux/platform_device.h>
--#include <linux/module.h>
--#include <linux/leds.h>
--#include <linux/mtd/physmap.h>
--#include <linux/ssb/ssb.h>
--#include <linux/interrupt.h>
--#include <linux/reboot.h>
--#include <linux/gpio.h>
--#include <asm/mach-bcm47xx/bcm47xx.h>
--
--/* GPIO definitions for the WGT634U */
--#define WGT634U_GPIO_LED      3
--#define WGT634U_GPIO_RESET    2
--#define WGT634U_GPIO_TP1      7
--#define WGT634U_GPIO_TP2      6
--#define WGT634U_GPIO_TP3      5
--#define WGT634U_GPIO_TP4      4
--#define WGT634U_GPIO_TP5      1
--
--static struct gpio_led wgt634u_leds[] = {
--      {
--              .name = "power",
--              .gpio = WGT634U_GPIO_LED,
--              .active_low = 1,
--              .default_trigger = "heartbeat",
--      },
--};
--
--static struct gpio_led_platform_data wgt634u_led_data = {
--      .num_leds =     ARRAY_SIZE(wgt634u_leds),
--      .leds =         wgt634u_leds,
--};
--
--static struct platform_device wgt634u_gpio_leds = {
--      .name =         "leds-gpio",
--      .id =           -1,
--      .dev = {
--              .platform_data = &wgt634u_led_data,
--      }
--};
--
--
--/* 8MiB flash. The struct mtd_partition matches original Netgear WGT634U
--   firmware. */
--static struct mtd_partition wgt634u_partitions[] = {
--      {
--              .name       = "cfe",
--              .offset     = 0,
--              .size       = 0x60000,          /* 384k */
--              .mask_flags = MTD_WRITEABLE     /* force read-only */
--      },
--      {
--              .name   = "config",
--              .offset = 0x60000,
--              .size   = 0x20000               /* 128k */
--      },
--      {
--              .name   = "linux",
--              .offset = 0x80000,
--              .size   = 0x140000              /* 1280k */
--      },
--      {
--              .name   = "jffs",
--              .offset = 0x1c0000,
--              .size   = 0x620000              /* 6272k */
--      },
--      {
--              .name   = "nvram",
--              .offset = 0x7e0000,
--              .size   = 0x20000               /* 128k */
--      },
--};
--
--static struct physmap_flash_data wgt634u_flash_data = {
--      .parts    = wgt634u_partitions,
--      .nr_parts = ARRAY_SIZE(wgt634u_partitions)
--};
--
--static struct resource wgt634u_flash_resource = {
--      .flags = IORESOURCE_MEM,
--};
--
--static struct platform_device wgt634u_flash = {
--      .name          = "physmap-flash",
--      .id            = 0,
--      .dev           = { .platform_data = &wgt634u_flash_data, },
--      .resource      = &wgt634u_flash_resource,
--      .num_resources = 1,
--};
--
--/* Platform devices */
--static struct platform_device *wgt634u_devices[] __initdata = {
--      &wgt634u_flash,
--      &wgt634u_gpio_leds,
--};
--
--static irqreturn_t gpio_interrupt(int irq, void *ignored)
--{
--      int state;
--
--      /* Interrupts are shared, check if the current one is
--         a GPIO interrupt. */
--      if (!ssb_chipco_irq_status(&ssb_bcm47xx.chipco,
--                                 SSB_CHIPCO_IRQ_GPIO))
--              return IRQ_NONE;
--
--      state = gpio_get_value(WGT634U_GPIO_RESET);
--
--      /* Interrupt are level triggered, revert the interrupt polarity
--         to clear the interrupt. */
--      gpio_polarity(WGT634U_GPIO_RESET, state);
--
--      if (!state) {
--              printk(KERN_INFO "Reset button pressed");
--              ctrl_alt_del();
--      }
--
--      return IRQ_HANDLED;
--}
--
--static int __init wgt634u_init(void)
--{
--      /* There is no easy way to detect that we are running on a WGT634U
--       * machine. Use the MAC address as an heuristic. Netgear Inc. has
--       * been allocated ranges 00:09:5b:xx:xx:xx and 00:0f:b5:xx:xx:xx.
--       */
--
--      u8 *et0mac = ssb_bcm47xx.sprom.et0mac;
--
--      if (et0mac[0] == 0x00 &&
--          ((et0mac[1] == 0x09 && et0mac[2] == 0x5b) ||
--           (et0mac[1] == 0x0f && et0mac[2] == 0xb5))) {
--              struct ssb_mipscore *mcore = &ssb_bcm47xx.mipscore;
--
--              printk(KERN_INFO "WGT634U machine detected.\n");
--
--              if (!request_irq(gpio_to_irq(WGT634U_GPIO_RESET),
--                               gpio_interrupt, IRQF_SHARED,
--                               "WGT634U GPIO", &ssb_bcm47xx.chipco)) {
--                      gpio_direction_input(WGT634U_GPIO_RESET);
--                      gpio_intmask(WGT634U_GPIO_RESET, 1);
--                      ssb_chipco_irq_mask(&ssb_bcm47xx.chipco,
--                                          SSB_CHIPCO_IRQ_GPIO,
--                                          SSB_CHIPCO_IRQ_GPIO);
--              }
--
--              wgt634u_flash_data.width = mcore->flash_buswidth;
--              wgt634u_flash_resource.start = mcore->flash_window;
--              wgt634u_flash_resource.end = mcore->flash_window
--                                         + mcore->flash_window_size
--                                         - 1;
--              return platform_add_devices(wgt634u_devices,
--                                          ARRAY_SIZE(wgt634u_devices));
--      } else
--              return -ENODEV;
--}
--
--module_init(wgt634u_init);
--
diff --git a/target/linux/brcm47xx/patches-2.6.28/813-use_netdev_alloc_skb.patch b/target/linux/brcm47xx/patches-2.6.28/813-use_netdev_alloc_skb.patch
deleted file mode 100644 (file)
index 6641e40..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/drivers/net/b44.c
-+++ b/drivers/net/b44.c
-@@ -814,7 +814,7 @@ static int b44_rx(struct b44 *bp, int bu
-                       struct sk_buff *copy_skb;
-                       b44_recycle_rx(bp, cons, bp->rx_prod);
--                      copy_skb = dev_alloc_skb(len + 2);
-+                      copy_skb = netdev_alloc_skb(bp->dev, len + 2);
-                       if (copy_skb == NULL)
-                               goto drop_it_no_recycle;
diff --git a/target/linux/brcm47xx/patches-2.6.28/814-export_ssb_watchdog.patch b/target/linux/brcm47xx/patches-2.6.28/814-export_ssb_watchdog.patch
deleted file mode 100644 (file)
index 4063994..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-this patch export ssb_watchdog_timer_set to allow to use it in a Linux 
-watchdog driver.
-
-
-Signed-off-by: Matthieu CASTET <castet.matthieu@free.fr>
-Acked-by : Michael Buesch <mb@bu3sch.de>
---- a/drivers/ssb/embedded.c
-+++ b/drivers/ssb/embedded.c
-@@ -29,6 +29,7 @@ int ssb_watchdog_timer_set(struct ssb_bu
-       }
-       return -ENODEV;
- }
-+EXPORT_SYMBOL(ssb_watchdog_timer_set);
- u32 ssb_gpio_in(struct ssb_bus *bus, u32 mask)
- {
diff --git a/target/linux/brcm47xx/patches-2.6.28/815-watchdog.patch b/target/linux/brcm47xx/patches-2.6.28/815-watchdog.patch
deleted file mode 100644 (file)
index f524d8c..0000000
+++ /dev/null
@@ -1,326 +0,0 @@
-This add watchdog driver for broadcom 47xx device.
-It uses the ssb subsytem to access embeded watchdog device.
-
-Because the watchdog timeout is very short (about 2s), a soft timer is used
-to increase the watchdog period.
-
-Note : A patch for exporting the ssb_watchdog_timer_set will
-be submitted on next linux-mips merge. Without this patch it can't 
-be build as a module.
-
-Signed-off-by: Aleksandar Radovanovic <biblbroks@sezampro.rs>
-Signed-off-by: Matthieu CASTET <castet.matthieu@free.fr>
---- a/drivers/watchdog/Kconfig
-+++ b/drivers/watchdog/Kconfig
-@@ -747,6 +747,12 @@ config TXX9_WDT
-       help
-         Hardware driver for the built-in watchdog timer on TXx9 MIPS SoCs.
-+config BCM47XX_WDT
-+      tristate "Broadcom BCM47xx Watchdog Timer"
-+      depends on BCM47XX
-+      help
-+        Hardware driver for the Broadcom BCM47xx Watchog Timer.
-+
- # PARISC Architecture
- # POWERPC Architecture
---- a/drivers/watchdog/Makefile
-+++ b/drivers/watchdog/Makefile
-@@ -106,6 +106,7 @@ obj-$(CONFIG_WDT_RM9K_GPI) += rm9k_wdt.o
- obj-$(CONFIG_SIBYTE_WDOG) += sb_wdog.o
- obj-$(CONFIG_AR7_WDT) += ar7_wdt.o
- obj-$(CONFIG_TXX9_WDT) += txx9wdt.o
-+obj-$(CONFIG_BCM47XX_WDT) += bcm47xx_wdt.o
- # PARISC Architecture
---- /dev/null
-+++ b/drivers/watchdog/bcm47xx_wdt.c
-@@ -0,0 +1,286 @@
-+/*
-+ *  Watchdog driver for Broadcom BCM47XX
-+ *
-+ *  Copyright (C) 2008 Aleksandar Radovanovic <biblbroks@sezampro.rs>
-+ *  Copyright (C) 2009 Matthieu CASTET <castet.matthieu@free.fr>
-+ *
-+ *  This program is free software; you can redistribute it and/or
-+ *  modify it under the terms of the GNU General Public License
-+ *  as published by the Free Software Foundation; either version
-+ *  2 of the License, or (at your option) any later version.
-+ */
-+
-+#include <linux/bitops.h>
-+#include <linux/errno.h>
-+#include <linux/fs.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/miscdevice.h>
-+#include <linux/module.h>
-+#include <linux/moduleparam.h>
-+#include <linux/reboot.h>
-+#include <linux/types.h>
-+#include <linux/uaccess.h>
-+#include <linux/watchdog.h>
-+#include <linux/timer.h>
-+#include <linux/jiffies.h>
-+#include <linux/ssb/ssb_embedded.h>
-+#include <asm/mach-bcm47xx/bcm47xx.h>
-+
-+#define DRV_NAME              "bcm47xx_wdt"
-+
-+#define WDT_DEFAULT_TIME      30      /* seconds */
-+#define WDT_MAX_TIME          256     /* seconds */
-+
-+static int wdt_time = WDT_DEFAULT_TIME;
-+static int nowayout = WATCHDOG_NOWAYOUT;
-+
-+module_param(wdt_time, int, 0);
-+MODULE_PARM_DESC(wdt_time, "Watchdog time in seconds. (default="
-+                              __MODULE_STRING(WDT_DEFAULT_TIME) ")");
-+
-+#ifdef CONFIG_WATCHDOG_NOWAYOUT
-+module_param(nowayout, int, 0);
-+MODULE_PARM_DESC(nowayout,
-+              "Watchdog cannot be stopped once started (default="
-+                              __MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
-+#endif
-+
-+static unsigned long bcm47xx_wdt_busy;
-+static char expect_release;
-+static struct timer_list wdt_timer;
-+static atomic_t ticks;
-+
-+static inline void bcm47xx_wdt_hw_start(void)
-+{
-+      /* this is 2,5s on 100Mhz clock  and 2s on 133 Mhz */
-+      ssb_watchdog_timer_set(&ssb_bcm47xx, 0xfffffff);
-+}
-+
-+static inline int bcm47xx_wdt_hw_stop(void)
-+{
-+      return ssb_watchdog_timer_set(&ssb_bcm47xx, 0);
-+}
-+
-+static void bcm47xx_timer_tick(unsigned long unused)
-+{
-+      if (!atomic_dec_and_test(&ticks)) {
-+              bcm47xx_wdt_hw_start();
-+              mod_timer(&wdt_timer, jiffies + HZ);
-+      } else {
-+              printk(KERN_CRIT DRV_NAME "Watchdog will fire soon!!!\n");
-+      }
-+}
-+
-+static inline void bcm47xx_wdt_pet(void)
-+{
-+      atomic_set(&ticks, wdt_time);
-+}
-+
-+static void bcm47xx_wdt_start(void)
-+{
-+      bcm47xx_wdt_pet();
-+      bcm47xx_timer_tick(0);
-+}
-+
-+static void bcm47xx_wdt_pause(void)
-+{
-+      del_timer_sync(&wdt_timer);
-+      bcm47xx_wdt_hw_stop();
-+}
-+
-+static void bcm47xx_wdt_stop(void)
-+{
-+      bcm47xx_wdt_pause();
-+}
-+
-+static int bcm47xx_wdt_settimeout(int new_time)
-+{
-+      if ((new_time <= 0) || (new_time > WDT_MAX_TIME))
-+              return -EINVAL;
-+
-+      wdt_time = new_time;
-+      return 0;
-+}
-+
-+static int bcm47xx_wdt_open(struct inode *inode, struct file *file)
-+{
-+      if (test_and_set_bit(0, &bcm47xx_wdt_busy))
-+              return -EBUSY;
-+
-+      bcm47xx_wdt_start();
-+      return nonseekable_open(inode, file);
-+}
-+
-+static int bcm47xx_wdt_release(struct inode *inode, struct file *file)
-+{
-+      if (expect_release == 42) {
-+              bcm47xx_wdt_stop();
-+      } else {
-+              printk(KERN_CRIT DRV_NAME
-+                      ": Unexpected close, not stopping watchdog!\n");
-+              bcm47xx_wdt_start();
-+      }
-+
-+      clear_bit(0, &bcm47xx_wdt_busy);
-+      expect_release = 0;
-+      return 0;
-+}
-+
-+static ssize_t bcm47xx_wdt_write(struct file *file, const char __user *data,
-+                            size_t len, loff_t *ppos)
-+{
-+      if (len) {
-+              if (!nowayout) {
-+                      size_t i;
-+
-+                      expect_release = 0;
-+
-+                      for (i = 0; i != len; i++) {
-+                              char c;
-+                              if (get_user(c, data + i))
-+                                      return -EFAULT;
-+                              if (c == 'V')
-+                                      expect_release = 42;
-+                      }
-+              }
-+              bcm47xx_wdt_pet();
-+      }
-+      return len;
-+}
-+
-+static struct watchdog_info bcm47xx_wdt_info = {
-+      .identity       = DRV_NAME,
-+      .options        = WDIOF_SETTIMEOUT |
-+                              WDIOF_KEEPALIVEPING |
-+                              WDIOF_MAGICCLOSE,
-+};
-+
-+static long bcm47xx_wdt_ioctl(struct file *file,
-+                                      unsigned int cmd, unsigned long arg)
-+{
-+      void __user *argp = (void __user *)arg;
-+      int __user *p = argp;
-+      int new_value, retval = -EINVAL;;
-+
-+      switch (cmd) {
-+      case WDIOC_GETSUPPORT:
-+              return copy_to_user(argp, &bcm47xx_wdt_info,
-+                              sizeof(bcm47xx_wdt_info)) ? -EFAULT : 0;
-+
-+      case WDIOC_GETSTATUS:
-+      case WDIOC_GETBOOTSTATUS:
-+              return put_user(0, p);
-+
-+      case WDIOC_SETOPTIONS:
-+              if (get_user(new_value, p))
-+                      return -EFAULT;
-+
-+              if (new_value & WDIOS_DISABLECARD) {
-+                      bcm47xx_wdt_stop();
-+                      retval = 0;
-+              }
-+
-+              if (new_value & WDIOS_ENABLECARD) {
-+                      bcm47xx_wdt_start();
-+                      retval = 0;
-+              }
-+
-+              return retval;
-+
-+      case WDIOC_KEEPALIVE:
-+              bcm47xx_wdt_pet();
-+              return 0;
-+
-+      case WDIOC_SETTIMEOUT:
-+              if (get_user(new_value, p))
-+                      return -EFAULT;
-+
-+              if (bcm47xx_wdt_settimeout(new_value))
-+                      return -EINVAL;
-+
-+              bcm47xx_wdt_pet();
-+
-+      case WDIOC_GETTIMEOUT:
-+              return put_user(wdt_time, p);
-+
-+      default:
-+              return -ENOTTY;
-+      }
-+}
-+
-+static int bcm47xx_wdt_notify_sys(struct notifier_block *this,
-+         unsigned long code, void *unused)
-+{
-+      if (code == SYS_DOWN || code == SYS_HALT)
-+              bcm47xx_wdt_stop();
-+      return NOTIFY_DONE;
-+}
-+
-+static const struct file_operations bcm47xx_wdt_fops = {
-+      .owner          = THIS_MODULE,
-+      .llseek         = no_llseek,
-+      .unlocked_ioctl = bcm47xx_wdt_ioctl,
-+      .open           = bcm47xx_wdt_open,
-+      .release        = bcm47xx_wdt_release,
-+      .write          = bcm47xx_wdt_write,
-+};
-+
-+static struct miscdevice bcm47xx_wdt_miscdev = {
-+      .minor          = WATCHDOG_MINOR,
-+      .name           = "watchdog",
-+      .fops           = &bcm47xx_wdt_fops,
-+};
-+
-+static struct notifier_block bcm47xx_wdt_notifier = {
-+      .notifier_call = bcm47xx_wdt_notify_sys,
-+};
-+
-+static int __init bcm47xx_wdt_init(void)
-+{
-+      int ret;
-+
-+      if (bcm47xx_wdt_hw_stop() < 0)
-+              return -ENODEV;
-+
-+      setup_timer(&wdt_timer, bcm47xx_timer_tick, 0L);
-+
-+      if (bcm47xx_wdt_settimeout(wdt_time)) {
-+              bcm47xx_wdt_settimeout(WDT_DEFAULT_TIME);
-+              printk(KERN_INFO DRV_NAME
-+                      ": wdt_time value must be 1 <= wdt_time <= 256, using %d\n",
-+                      wdt_time);
-+      }
-+
-+      ret = register_reboot_notifier(&bcm47xx_wdt_notifier);
-+      if (ret)
-+              return ret;
-+
-+      ret = misc_register(&bcm47xx_wdt_miscdev);
-+      if (ret) {
-+              unregister_reboot_notifier(&bcm47xx_wdt_notifier);
-+              return ret;
-+      }
-+
-+      printk(KERN_INFO "BCM47xx Watchdog Timer enabled (%d seconds%s)\n",
-+                              wdt_time, nowayout ? ", nowayout" : "");
-+      return 0;
-+}
-+
-+static void __exit bcm47xx_wdt_exit(void)
-+{
-+      if (!nowayout)
-+              bcm47xx_wdt_stop();
-+
-+      misc_deregister(&bcm47xx_wdt_miscdev);
-+
-+      unregister_reboot_notifier(&bcm47xx_wdt_notifier);
-+}
-+
-+module_init(bcm47xx_wdt_init);
-+module_exit(bcm47xx_wdt_exit);
-+
-+MODULE_AUTHOR("Aleksandar Radovanovic");
-+MODULE_DESCRIPTION("Watchdog driver for Broadcom BCM47xx");
-+MODULE_LICENSE("GPL");
-+MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
diff --git a/target/linux/brcm47xx/patches-2.6.28/816-ssb_fix_irq_setup.patch b/target/linux/brcm47xx/patches-2.6.28/816-ssb_fix_irq_setup.patch
deleted file mode 100644 (file)
index 05c3651..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-the current ssb irq setup (in ssb_mipscore_init) have some problem :
-it configure some device on some irq without checking that the irq is not taken by an other device.
-
-For example in my case PCI host is on irq 0 and IPSEC on irq 3.
-The current code :
-- store in dev->irq that IPSEC irq is 3+2
-- do a set_irq 0->3 on PCI host
-
-But now IPSEC irq is not routed anymore to the mips code and dev->irq is wrong. This cause problem described in [1].
-
-This patch try to solve the problem by making set_irq configure the device we want to take the irq on the shared irq0.
-The previous example become :
-- store in dev->irq that IPSEC irq is 3+2
-- do a set_irq 0->3 on PCI host :
-  - irq 3 is already taken by IPSEC. do a set_irq 3->0 on IPSEC
-
-
-I also added some code to print the irq configuration before and after irq setup to allow easier debugging. And I add extra checking in ssb_mips_irq to report device without irq or device with not routed irq.
-
-
-[1] http://www.danm.de/files/src/bcm5365p/REPORTED_DEVICES
-
-Signed-off-by: Matthieu CASTET <castet.matthieu@free.fr> 
---- a/drivers/ssb/driver_mipscore.c
-+++ b/drivers/ssb/driver_mipscore.c
-@@ -49,29 +49,54 @@ static const u32 ipsflag_irq_shift[] = {
- static inline u32 ssb_irqflag(struct ssb_device *dev)
- {
--      return ssb_read32(dev, SSB_TPSFLAG) & SSB_TPSFLAG_BPFLAG;
-+      u32 tpsflag = ssb_read32(dev, SSB_TPSFLAG);
-+      if (tpsflag)
-+              return ssb_read32(dev, SSB_TPSFLAG) & SSB_TPSFLAG_BPFLAG;
-+      else
-+              /* not irq supported */
-+              return 0x3f;
-+}
-+
-+static struct ssb_device *find_device(struct ssb_device *rdev, int irqflag)
-+{
-+      struct ssb_bus *bus = rdev->bus;
-+      int i;
-+      for (i = 0; i < bus->nr_devices; i++) {
-+              struct ssb_device *dev;
-+              dev = &(bus->devices[i]);
-+              if (ssb_irqflag(dev) == irqflag)
-+                      return dev;
-+      }
-+      return NULL;
- }
- /* Get the MIPS IRQ assignment for a specified device.
-  * If unassigned, 0 is returned.
-+ * If disabled, 5 is returned.
-+ * If not supported, 6 is returned.
-  */
- unsigned int ssb_mips_irq(struct ssb_device *dev)
- {
-       struct ssb_bus *bus = dev->bus;
-+      struct ssb_device *mdev = bus->mipscore.dev;
-       u32 irqflag;
-       u32 ipsflag;
-       u32 tmp;
-       unsigned int irq;
-       irqflag = ssb_irqflag(dev);
-+      if (irqflag == 0x3f)
-+              return 6;
-       ipsflag = ssb_read32(bus->mipscore.dev, SSB_IPSFLAG);
-       for (irq = 1; irq <= 4; irq++) {
-               tmp = ((ipsflag & ipsflag_irq_mask[irq]) >> ipsflag_irq_shift[irq]);
-               if (tmp == irqflag)
-                       break;
-       }
--      if (irq == 5)
--              irq = 0;
-+      if (irq == 5) {
-+              if ((1 << irqflag) & ssb_read32(mdev, SSB_INTVEC))
-+                      irq = 0;
-+      }
-       return irq;
- }
-@@ -97,25 +122,56 @@ static void set_irq(struct ssb_device *d
-       struct ssb_device *mdev = bus->mipscore.dev;
-       u32 irqflag = ssb_irqflag(dev);
-+      BUG_ON(oldirq == 6);
-+
-       dev->irq = irq + 2;
--      ssb_dprintk(KERN_INFO PFX
--                  "set_irq: core 0x%04x, irq %d => %d\n",
--                  dev->id.coreid, oldirq, irq);
-       /* clear the old irq */
-       if (oldirq == 0)
-               ssb_write32(mdev, SSB_INTVEC, (~(1 << irqflag) & ssb_read32(mdev, SSB_INTVEC)));
--      else
-+      else if (oldirq != 5)
-               clear_irq(bus, oldirq);
-       /* assign the new one */
-       if (irq == 0) {
-               ssb_write32(mdev, SSB_INTVEC, ((1 << irqflag) | ssb_read32(mdev, SSB_INTVEC)));
-       } else {
-+              u32 ipsflag = ssb_read32(mdev, SSB_IPSFLAG);
-+              if ((ipsflag & ipsflag_irq_mask[irq]) != ipsflag_irq_mask[irq]) {
-+                      u32 oldipsflag = (ipsflag & ipsflag_irq_mask[irq]) >> ipsflag_irq_shift[irq];
-+                      struct ssb_device *olddev = find_device(dev, oldipsflag);
-+                      if (olddev)
-+                              set_irq(olddev, 0);
-+              }
-               irqflag <<= ipsflag_irq_shift[irq];
--              irqflag |= (ssb_read32(mdev, SSB_IPSFLAG) & ~ipsflag_irq_mask[irq]);
-+              irqflag |= (ipsflag & ~ipsflag_irq_mask[irq]);
-               ssb_write32(mdev, SSB_IPSFLAG, irqflag);
-       }
-+      ssb_dprintk(KERN_INFO PFX
-+                  "set_irq: core 0x%04x, irq %d => %d\n",
-+                  dev->id.coreid, oldirq+2, irq+2);
-+}
-+
-+static void print_irq(struct ssb_device *dev, unsigned int irq)
-+{
-+      int i;
-+      static const char *irq_name[] = {"2(S)", "3", "4", "5", "6", "D", "I"};
-+      ssb_dprintk(KERN_INFO PFX
-+              "core 0x%04x, irq :", dev->id.coreid);
-+      for (i = 0; i <= 6; i++) {
-+              ssb_dprintk(" %s%s", irq_name[i], i==irq?"*":" ");
-+      }
-+      ssb_dprintk("\n");
-+}
-+
-+static void dump_irq(struct ssb_bus *bus)
-+{
-+      int i;
-+      for (i = 0; i < bus->nr_devices; i++) {
-+              struct ssb_device *dev;
-+              dev = &(bus->devices[i]);
-+              print_irq(dev, ssb_mips_irq(dev));
-+      }
- }
- static void ssb_mips_serial_init(struct ssb_mipscore *mcore)
-@@ -197,18 +253,26 @@ void ssb_mipscore_init(struct ssb_mipsco
-       else if (bus->chipco.dev)
-               ssb_chipco_timing_init(&bus->chipco, ns);
-+      dump_irq(bus);
-       /* Assign IRQs to all cores on the bus, start with irq line 2, because serial usually takes 1 */
-       for (irq = 2, i = 0; i < bus->nr_devices; i++) {
-+              int mips_irq;
-               dev = &(bus->devices[i]);
--              dev->irq = ssb_mips_irq(dev) + 2;
-+              mips_irq = ssb_mips_irq(dev);
-+              if (mips_irq > 4)
-+                      dev->irq = 0;
-+              else
-+                      dev->irq = mips_irq + 2;
-+              if (dev->irq > 5)
-+                      continue;
-               switch (dev->id.coreid) {
-               case SSB_DEV_USB11_HOST:
-                       /* shouldn't need a separate irq line for non-4710, most of them have a proper
-                        * external usb controller on the pci */
-                       if ((bus->chip_id == 0x4710) && (irq <= 4)) {
-                               set_irq(dev, irq++);
--                              break;
-                       }
-+                      break;
-                       /* fallthrough */
-               case SSB_DEV_PCI:
-               case SSB_DEV_ETHERNET:
-@@ -222,6 +286,8 @@ void ssb_mipscore_init(struct ssb_mipsco
-                       }
-               }
-       }
-+      ssb_dprintk(KERN_INFO PFX "after irq reconfiguration\n");
-+      dump_irq(bus);
-       ssb_mips_serial_init(mcore);
-       ssb_mips_flash_detect(mcore);
diff --git a/target/linux/brcm47xx/patches-2.6.28/900-disable_early_printk.patch b/target/linux/brcm47xx/patches-2.6.28/900-disable_early_printk.patch
deleted file mode 100644 (file)
index 3f1aeef..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/arch/mips/Kconfig
-+++ b/arch/mips/Kconfig
-@@ -56,7 +56,6 @@ config BCM47XX
-       select SSB_B43_PCI_BRIDGE if PCI
-       select SSB_PCICORE_HOSTMODE if PCI
-       select GENERIC_GPIO
--      select SYS_HAS_EARLY_PRINTK
-       select CFE
-       help
-        Support for BCM47XX based boards
diff --git a/target/linux/brcm47xx/patches-2.6.28/920-cache-wround.patch b/target/linux/brcm47xx/patches-2.6.28/920-cache-wround.patch
deleted file mode 100644 (file)
index 9986f5a..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
---- a/arch/mips/include/asm/r4kcache.h
-+++ b/arch/mips/include/asm/r4kcache.h
-@@ -20,10 +20,25 @@
- #ifdef CONFIG_BCM47XX
- #include <asm/paccess.h>
- #include <linux/ssb/ssb.h>
--#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE)))
-+#define BCM4710_DUMMY_RREG() bcm4710_dummy_rreg()
-+
-+static inline unsigned long bcm4710_dummy_rreg(void) {
-+      return (*(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE)));
-+}
-+
-+#define BCM4710_FILL_TLB(addr) bcm4710_fill_tlb((void*)(addr))
-+
-+static inline unsigned long bcm4710_fill_tlb(void *addr) {
-+      return (*(unsigned long *)addr);
-+}
-+
-+#define BCM4710_PROTECTED_FILL_TLB(addr) bcm4710_protected_fill_tlb((void*)(addr))
-+
-+static inline void bcm4710_protected_fill_tlb(void *addr) {
-+      unsigned long x;
-+      get_dbe(x, (unsigned long *)addr);;
-+}
--#define BCM4710_FILL_TLB(addr) (*(volatile unsigned long *)(addr))
--#define BCM4710_PROTECTED_FILL_TLB(addr) ({ unsigned long x; get_dbe(x, (volatile unsigned long *)(addr)); })
- #else
- #define BCM4710_DUMMY_RREG()
---- a/arch/mips/mm/tlbex.c
-+++ b/arch/mips/mm/tlbex.c
-@@ -548,6 +548,9 @@ build_get_pgde32(u32 **p, unsigned int t
- #endif
-       uasm_i_addu(p, ptr, tmp, ptr);
- #else
-+#ifdef CONFIG_BCM47XX
-+      uasm_i_nop(p);
-+#endif
-       UASM_i_LA_mostly(p, ptr, pgdc);
- #endif
-       uasm_i_mfc0(p, tmp, C0_BADVADDR); /* get faulting address */
-@@ -678,12 +681,12 @@ static void __cpuinit build_r4000_tlb_re
-               /* No need for uasm_i_nop */
-       }
--#ifdef CONFIG_BCM47XX
--      uasm_i_nop(&p);
--#endif
- #ifdef CONFIG_64BIT
-       build_get_pmde64(&p, &l, &r, K0, K1); /* get pmd in K1 */
- #else
-+# ifdef CONFIG_BCM47XX
-+      uasm_i_nop(&p);
-+# endif
-       build_get_pgde32(&p, K0, K1); /* get pgd in K1 */
- #endif
-@@ -691,6 +694,9 @@ static void __cpuinit build_r4000_tlb_re
-       build_update_entries(&p, K0, K1);
-       build_tlb_write_entry(&p, &l, &r, tlb_random);
-       uasm_l_leave(&l, p);
-+#ifdef CONFIG_BCM47XX
-+      uasm_i_nop(&p);
-+#endif
-       uasm_i_eret(&p); /* return from trap */
- #ifdef CONFIG_64BIT
-@@ -1088,12 +1094,12 @@ build_r4000_tlbchange_handler_head(u32 *
-                                  struct uasm_reloc **r, unsigned int pte,
-                                  unsigned int ptr)
- {
--#ifdef CONFIG_BCM47XX
--      uasm_i_nop(p);
--#endif
- #ifdef CONFIG_64BIT
-       build_get_pmde64(p, l, r, pte, ptr); /* get pmd in ptr */
- #else
-+# ifdef CONFIG_BCM47XX
-+      uasm_i_nop(p);
-+# endif
-       build_get_pgde32(p, pte, ptr); /* get pgd in ptr */
- #endif
-@@ -1121,6 +1127,9 @@ build_r4000_tlbchange_handler_tail(u32 *
-       build_update_entries(p, tmp, ptr);
-       build_tlb_write_entry(p, l, r, tlb_indexed);
-       uasm_l_leave(l, *p);
-+#ifdef CONFIG_BCM47XX
-+      uasm_i_nop(p);
-+#endif
-       uasm_i_eret(p); /* return from trap */
- #ifdef CONFIG_64BIT
---- a/arch/mips/kernel/genex.S
-+++ b/arch/mips/kernel/genex.S
-@@ -22,6 +22,19 @@
- #include <asm/page.h>
- #include <asm/thread_info.h>
-+#ifdef CONFIG_BCM47XX
-+# ifdef eret
-+#  undef eret
-+# endif
-+# define eret                                         \
-+      .set push;                              \
-+      .set noreorder;                         \
-+       nop;                                   \
-+       nop;                                   \
-+       eret;                                  \
-+      .set pop;
-+#endif
-+
- #define PANIC_PIC(msg)                                        \
-               .set push;                              \
-               .set    reorder;                        \
-@@ -54,7 +67,6 @@ NESTED(except_vec3_generic, 0, sp)
-       .set    noat
- #ifdef CONFIG_BCM47XX
-       nop
--      nop
- #endif
- #if R5432_CP0_INTERRUPT_WAR
-       mfc0    k0, CP0_INDEX
-@@ -79,6 +91,9 @@ NESTED(except_vec3_r4000, 0, sp)
-       .set    push
-       .set    mips3
-       .set    noat
-+#ifdef CONFIG_BCM47XX
-+      nop
-+#endif
-       mfc0    k1, CP0_CAUSE
-       li      k0, 31<<2
-       andi    k1, k1, 0x7c
diff --git a/target/linux/generic-2.6/config-2.6.28 b/target/linux/generic-2.6/config-2.6.28
deleted file mode 100644 (file)
index f6a7d05..0000000
+++ /dev/null
@@ -1,2328 +0,0 @@
-# CONFIG_6PACK is not set
-# CONFIG_8139CP is not set
-# CONFIG_9P_FS is not set
-# CONFIG_ACCESSIBILITY is not set
-# CONFIG_ACENIC is not set
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_ADAPTEC_STARFIRE is not set
-# CONFIG_ADFS_FS is not set
-# CONFIG_ADM6996_PHY is not set
-# CONFIG_ADM8211 is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_AF_RXRPC is not set
-# CONFIG_AFS_FS is not set
-CONFIG_AIO=y
-# CONFIG_AIRO_CS is not set
-# CONFIG_AIRO is not set
-# CONFIG_ALIM7101_WDT is not set
-# CONFIG_AMD8111_ETH is not set
-# CONFIG_AMIGA_PARTITION is not set
-CONFIG_ANON_INODES=y
-# CONFIG_APPLICOM is not set
-# CONFIG_AR8216_PHY is not set
-# CONFIG_ARCH_AAEC2000 is not set
-# CONFIG_ARCH_AT91 is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_CLPS7500 is not set
-# CONFIG_ARCH_DAVINCI is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-CONFIG_ARCH_FLATMEM_ENABLE=y
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_GEMINI is not set
-# CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_IMX is not set
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_IOP13XX is not set
-# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
-# CONFIG_ARCH_IXP2000 is not set
-# CONFIG_ARCH_IXP23XX is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_KIRKWOOD is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_L7200 is not set
-# CONFIG_ARCH_LH7A40X is not set
-# CONFIG_ARCH_LOKI is not set
-# CONFIG_ARCH_MMP is not set
-# CONFIG_ARCH_MSM is not set
-# CONFIG_ARCH_MV78XX0 is not set
-# CONFIG_ARCH_MXC is not set
-# CONFIG_ARCH_NETX is not set
-# CONFIG_ARCH_NS9XXX is not set
-# CONFIG_ARCH_OMAP is not set
-# CONFIG_ARCH_ORION5X is not set
-# CONFIG_ARCH_PNX4008 is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_REALVIEW is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_S3C2410 is not set
-# CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCNET is not set
-CONFIG_ARPD=y
-CONFIG_ASK_IP_FIB_HASH=y
-# CONFIG_AT24 is not set
-# CONFIG_ATA_ACPI is not set
-# CONFIG_ATA_GENERIC is not set
-# CONFIG_ATA is not set
-# CONFIG_ATALK is not set
-# CONFIG_ATA_NONSTANDARD is not set
-# CONFIG_ATA_OVER_ETH is not set
-# CONFIG_ATARI_PARTITION is not set
-CONFIG_ATA_SFF=y
-# CONFIG_ATH5K is not set
-# CONFIG_ATH9K is not set
-# CONFIG_ATL1E is not set
-# CONFIG_ATL1 is not set
-# CONFIG_ATL2 is not set
-# CONFIG_ATM_AMBASSADOR is not set
-CONFIG_ATM_BR2684_IPFILTER=y
-# CONFIG_ATM_BR2684 is not set
-# CONFIG_ATM_CLIP is not set
-CONFIG_ATM_CLIP_NO_ICMP=y
-# CONFIG_ATM_DRIVERS is not set
-# CONFIG_ATM_DUMMY is not set
-# CONFIG_ATMEL is not set
-# CONFIG_ATM_ENI is not set
-# CONFIG_ATM_FIRESTREAM is not set
-# CONFIG_ATM_FORE200E is not set
-# CONFIG_ATM_FORE200E_MAYBE is not set
-# CONFIG_ATM_HE is not set
-# CONFIG_ATM_HORIZON is not set
-# CONFIG_ATM_IA is not set
-# CONFIG_ATM_IDT77252 is not set
-# CONFIG_ATM is not set
-# CONFIG_ATM_LANAI is not set
-# CONFIG_ATM_LANE is not set
-# CONFIG_ATM_MPOA is not set
-# CONFIG_ATM_NICSTAR is not set
-# CONFIG_ATM_TCP is not set
-# CONFIG_ATM_ZATM is not set
-# CONFIG_AUDIT is not set
-# CONFIG_AUTOFS4_FS is not set
-# CONFIG_AUTOFS_FS is not set
-# CONFIG_AX25_DAMA_SLAVE is not set
-# CONFIG_AX25 is not set
-# CONFIG_AX88796 is not set
-# CONFIG_B43 is not set
-# CONFIG_B43LEGACY is not set
-# CONFIG_B44 is not set
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-CONFIG_BASE_FULL=y
-CONFIG_BASE_SMALL=0
-# CONFIG_BASLER_EXCITE is not set
-# CONFIG_BAYCOM_EPP is not set
-# CONFIG_BAYCOM_PAR is not set
-# CONFIG_BAYCOM_SER_FDX is not set
-# CONFIG_BAYCOM_SER_HDX is not set
-CONFIG_BCM43XX_DEBUG=y
-CONFIG_BCM43XX_DMA_AND_PIO_MODE=y
-# CONFIG_BCM43XX_DMA_MODE is not set
-CONFIG_BCM43XX_DMA=y
-# CONFIG_BCM43XX is not set
-# CONFIG_BCM43XX_PIO_MODE is not set
-CONFIG_BCM43XX_PIO=y
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
-# CONFIG_BLINK is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
-# CONFIG_BLK_DEV_AEC62XX is not set
-# CONFIG_BLK_DEV_ALI15X3 is not set
-# CONFIG_BLK_DEV_AMD74XX is not set
-# CONFIG_BLK_DEV_ATIIXP is not set
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_BLK_DEV_CMD640 is not set
-# CONFIG_BLK_DEV_CMD64X is not set
-# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-# CONFIG_BLK_DEV_CS5520 is not set
-# CONFIG_BLK_DEV_CS5530 is not set
-# CONFIG_BLK_DEV_CS5535 is not set
-# CONFIG_BLK_DEV_CY82C693 is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_DELKIN is not set
-# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_DEV_GENERIC is not set
-# CONFIG_BLK_DEV_HD_IDE is not set
-# CONFIG_BLK_DEV_HD is not set
-# CONFIG_BLK_DEV_HD_ONLY is not set
-# CONFIG_BLK_DEV_HPT34X is not set
-# CONFIG_BLK_DEV_HPT366 is not set
-# CONFIG_BLK_DEV_IDEACPI is not set
-# CONFIG_BLK_DEV_IDECD is not set
-# CONFIG_BLK_DEV_IDECS is not set
-# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
-# CONFIG_BLK_DEV_IDEFLOPPY is not set
-# CONFIG_BLK_DEV_IDEPCI is not set
-# CONFIG_BLK_DEV_IDEPNP is not set
-# CONFIG_BLK_DEV_IDE_SATA is not set
-# CONFIG_BLK_DEV_IDESCSI is not set
-# CONFIG_BLK_DEV_IDETAPE is not set
-CONFIG_BLK_DEV_INITRD=y
-# CONFIG_BLK_DEV_INTEGRITY is not set
-# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_BLK_DEV_IT8213 is not set
-# CONFIG_BLK_DEV_IT821X is not set
-# CONFIG_BLK_DEV_JMICRON is not set
-# CONFIG_BLK_DEV_LOOP is not set
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_NS87415 is not set
-# CONFIG_BLK_DEV_OFFBOARD is not set
-# CONFIG_BLK_DEV_OPTI621 is not set
-# CONFIG_BLK_DEV_PDC202XX_NEW is not set
-# CONFIG_BLK_DEV_PDC202XX_OLD is not set
-# CONFIG_BLK_DEV_PIIX is not set
-# CONFIG_BLK_DEV_PLATFORM is not set
-# CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_RZ1000 is not set
-# CONFIG_BLK_DEV_SC1200 is not set
-# CONFIG_BLK_DEV_SD is not set
-# CONFIG_BLK_DEV_SIIMAGE is not set
-# CONFIG_BLK_DEV_SIS5513 is not set
-# CONFIG_BLK_DEV_SL82C105 is not set
-# CONFIG_BLK_DEV_SLC90E66 is not set
-# CONFIG_BLK_DEV_SR is not set
-# CONFIG_BLK_DEV_SVWKS is not set
-# CONFIG_BLK_DEV_SX8 is not set
-# CONFIG_BLK_DEV_TC86C001 is not set
-# CONFIG_BLK_DEV_TRIFLEX is not set
-# CONFIG_BLK_DEV_TRM290 is not set
-# CONFIG_BLK_DEV_UB is not set
-# CONFIG_BLK_DEV_UMEM is not set
-# CONFIG_BLK_DEV_VIA82CXXX is not set
-# CONFIG_BLK_DEV_XIP is not set
-CONFIG_BLK_DEV=y
-CONFIG_BLOCK=y
-# CONFIG_BNX2 is not set
-# CONFIG_BONDING is not set
-# CONFIG_BPQETHER is not set
-# CONFIG_BRIDGE_EBT_802_3 is not set
-# CONFIG_BRIDGE_EBT_AMONG is not set
-# CONFIG_BRIDGE_EBT_ARP is not set
-# CONFIG_BRIDGE_EBT_ARPREPLY is not set
-# CONFIG_BRIDGE_EBT_BROUTE is not set
-# CONFIG_BRIDGE_EBT_DNAT is not set
-# CONFIG_BRIDGE_EBT_IP6 is not set
-# CONFIG_BRIDGE_EBT_IP is not set
-# CONFIG_BRIDGE_EBT_LIMIT is not set
-# CONFIG_BRIDGE_EBT_LOG is not set
-# CONFIG_BRIDGE_EBT_MARK is not set
-# CONFIG_BRIDGE_EBT_MARK_T is not set
-# CONFIG_BRIDGE_EBT_NFLOG is not set
-# CONFIG_BRIDGE_EBT_PKTTYPE is not set
-# CONFIG_BRIDGE_EBT_REDIRECT is not set
-# CONFIG_BRIDGE_EBT_SNAT is not set
-# CONFIG_BRIDGE_EBT_STP is not set
-# CONFIG_BRIDGE_EBT_T_FILTER is not set
-# CONFIG_BRIDGE_EBT_T_NAT is not set
-# CONFIG_BRIDGE_EBT_ULOG is not set
-# CONFIG_BRIDGE_EBT_VLAN is not set
-# CONFIG_BRIDGE_NETFILTER is not set
-# CONFIG_BRIDGE_NF_EBTABLES is not set
-CONFIG_BRIDGE=y
-# CONFIG_BROADCOM_PHY is not set
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_BSD_DISKLABEL=y
-# CONFIG_BSD_PROCESS_ACCT_V3 is not set
-CONFIG_BSD_PROCESS_ACCT=y
-# CONFIG_BT_BNEP is not set
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-# CONFIG_BT_CMTP is not set
-# CONFIG_BT_HCIBCM203X is not set
-# CONFIG_BT_HCIBFUSB is not set
-# CONFIG_BT_HCIBLUECARD is not set
-# CONFIG_BT_HCIBPA10X is not set
-# CONFIG_BT_HCIBT3C is not set
-# CONFIG_BT_HCIBTSDIO is not set
-# CONFIG_BT_HCIBTUART is not set
-# CONFIG_BT_HCIBTUSB is not set
-# CONFIG_BT_HCIDTL1 is not set
-CONFIG_BT_HCIUART_BCSP=y
-CONFIG_BT_HCIUART_H4=y
-# CONFIG_BT_HCIUART is not set
-# CONFIG_BT_HCIUART_LL is not set
-# CONFIG_BT_HCIUSB is not set
-CONFIG_BT_HCIUSB_SCO=y
-# CONFIG_BT_HCIVHCI is not set
-# CONFIG_BT_HIDP is not set
-# CONFIG_BT is not set
-# CONFIG_BT_L2CAP is not set
-# CONFIG_BT_RFCOMM is not set
-CONFIG_BT_RFCOMM_TTY=y
-# CONFIG_BT_SCO is not set
-CONFIG_BUG=y
-# CONFIG_C2PORT is not set
-# CONFIG_CAN is not set
-# CONFIG_CAPI_AVM is not set
-# CONFIG_CAPI_EICON is not set
-# CONFIG_CAPI_TRACE is not set
-CONFIG_CARDBUS=y
-# CONFIG_CARDMAN_4000 is not set
-# CONFIG_CARDMAN_4040 is not set
-# CONFIG_CASSINI is not set
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_CFG80211 is not set
-# CONFIG_CGROUPS is not set
-# CONFIG_CHELSIO_T1 is not set
-# CONFIG_CHELSIO_T3 is not set
-# CONFIG_CHR_DEV_OSST is not set
-# CONFIG_CHR_DEV_SCH is not set
-# CONFIG_CHR_DEV_SG is not set
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CICADA_PHY is not set
-# CONFIG_CIFS_DEBUG2 is not set
-# CONFIG_CIFS_EXPERIMENTAL is not set
-# CONFIG_CIFS is not set
-CONFIG_CIFS_POSIX=y
-# CONFIG_CIFS_STATS2 is not set
-CONFIG_CIFS_STATS=y
-# CONFIG_CIFS_WEAK_PW_HASH is not set
-# CONFIG_CIFS_XATTR is not set
-CONFIG_CLS_U32_MARK=y
-CONFIG_CLS_U32_PERF=y
-CONFIG_CMDLINE=""
-# CONFIG_CODA_FS is not set
-# CONFIG_COMPAT_BRK is not set
-# CONFIG_CONFIGFS_FS is not set
-# CONFIG_CONNECTOR is not set
-# CONFIG_CONTEXT_SWITCH_TRACER is not set
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-# CONFIG_CPU_DCACHE_DISABLE is not set
-# CONFIG_CPU_FREQ is not set
-# CONFIG_CPU_IDLE is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_CRC16 is not set
-CONFIG_CRC32=y
-# CONFIG_CRC7 is not set
-# CONFIG_CRC_CCITT is not set
-# CONFIG_CRC_ITU_T is not set
-# CONFIG_CRC_T10DIF is not set
-CONFIG_CROSSCOMPILE=y
-# CONFIG_CRYPTO_AEAD is not set
-# CONFIG_CRYPTO_AES_586 is not set
-# CONFIG_CRYPTO_AES is not set
-# CONFIG_CRYPTO_ALGAPI is not set
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-# CONFIG_CRYPTO_ANUBIS is not set
-# CONFIG_CRYPTO_ARC4 is not set
-# CONFIG_CRYPTO_AUTHENC is not set
-# CONFIG_CRYPTO_BLKCIPHER is not set
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-# CONFIG_CRYPTO_CBC is not set
-# CONFIG_CRYPTO_CCM is not set
-# CONFIG_CRYPTO_CRC32C_INTEL is not set
-# CONFIG_CRYPTO_CRC32C is not set
-# CONFIG_CRYPTO_CRYPTD is not set
-# CONFIG_CRYPTO_CTR is not set
-# CONFIG_CRYPTO_CTS is not set
-# CONFIG_CRYPTO_DEFLATE is not set
-# CONFIG_CRYPTO_DES is not set
-# CONFIG_CRYPTO_DEV_HIFN_795X is not set
-# CONFIG_CRYPTO_ECB is not set
-# CONFIG_CRYPTO_FCRYPT is not set
-# CONFIG_CRYPTO_FIPS is not set
-# CONFIG_CRYPTO_GCM is not set
-# CONFIG_CRYPTO_GF128MUL is not set
-# CONFIG_CRYPTO_HASH is not set
-# CONFIG_CRYPTO_HMAC is not set
-# CONFIG_CRYPTO_HW is not set
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_LRW is not set
-# CONFIG_CRYPTO_LZO is not set
-# CONFIG_CRYPTO_MANAGER2 is not set
-# CONFIG_CRYPTO_MANAGER is not set
-# CONFIG_CRYPTO_MD4 is not set
-# CONFIG_CRYPTO_MD5 is not set
-# CONFIG_CRYPTO_MICHAEL_MIC is not set
-# CONFIG_CRYPTO_NULL is not set
-# CONFIG_CRYPTO_PCBC is not set
-# CONFIG_CRYPTO_PRNG is not set
-# CONFIG_CRYPTO_RMD128 is not set
-# CONFIG_CRYPTO_RMD160 is not set
-# CONFIG_CRYPTO_RMD256 is not set
-# CONFIG_CRYPTO_RMD320 is not set
-# CONFIG_CRYPTO_RNG is not set
-# CONFIG_CRYPTO_SALSA20_586 is not set
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_SEED is not set
-# CONFIG_CRYPTO_SEQIV is not set
-# CONFIG_CRYPTO_SERPENT is not set
-# CONFIG_CRYPTO_SHA1 is not set
-# CONFIG_CRYPTO_SHA256 is not set
-# CONFIG_CRYPTO_SHA512 is not set
-# CONFIG_CRYPTO_TEA is not set
-# CONFIG_CRYPTO_TEST is not set
-# CONFIG_CRYPTO_TGR192 is not set
-# CONFIG_CRYPTO_TWOFISH_586 is not set
-# CONFIG_CRYPTO_TWOFISH_COMMON is not set
-# CONFIG_CRYPTO_TWOFISH is not set
-# CONFIG_CRYPTO_WP512 is not set
-# CONFIG_CRYPTO_XCBC is not set
-# CONFIG_CRYPTO_XTS is not set
-CONFIG_CRYPTO=y
-# CONFIG_DAB is not set
-# CONFIG_DAVICOM_PHY is not set
-# CONFIG_DEBUG_BUGVERBOSE is not set
-CONFIG_DEBUG_FS=y
-# CONFIG_DEBUG_KERNEL is not set
-# CONFIG_DEBUG_MEMORY_INIT is not set
-# CONFIG_DECNET is not set
-# CONFIG_DEFAULT_AS is not set
-# CONFIG_DEFAULT_BIC is not set
-# CONFIG_DEFAULT_CFQ is not set
-# CONFIG_DEFAULT_CUBIC is not set
-CONFIG_DEFAULT_DEADLINE=y
-# CONFIG_DEFAULT_HTCP is not set
-CONFIG_DEFAULT_IOSCHED="deadline"
-# CONFIG_DEFAULT_NOOP is not set
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="westwood"
-# CONFIG_DEFAULT_VEGAS is not set
-CONFIG_DEFAULT_WESTWOOD=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-# CONFIG_DEVKMEM is not set
-# CONFIG_DGRS is not set
-# CONFIG_DISCONTIGMEM_MANUAL is not set
-# CONFIG_DISPLAY_SUPPORT is not set
-# CONFIG_DL2K is not set
-# CONFIG_DLM is not set
-# CONFIG_DMADEVICES is not set
-# CONFIG_DMA_ENGINE is not set
-# CONFIG_DMASCC is not set
-# CONFIG_DMATEST is not set
-# CONFIG_DNOTIFY is not set
-# CONFIG_DRM is not set
-# CONFIG_DS1682 is not set
-# CONFIG_DTLK is not set
-# CONFIG_DUMMY is not set
-# CONFIG_DVB_CORE is not set
-# CONFIG_DVB is not set
-# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
-# CONFIG_E1000E is not set
-# CONFIG_E1000 is not set
-# CONFIG_E100 is not set
-# CONFIG_ECONET is not set
-# CONFIG_EEPRO100 is not set
-# CONFIG_EEPROM_93CX6 is not set
-# CONFIG_EFI_PARTITION is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_ELF_CORE is not set
-CONFIG_EMBEDDED=y
-# CONFIG_ENABLE_MUST_CHECK is not set
-CONFIG_ENABLE_WARN_DEPRECATED=y
-# CONFIG_ENC28J60 is not set
-# CONFIG_ENCLOSURE_SERVICES is not set
-# CONFIG_EPIC100 is not set
-CONFIG_EPOLL=y
-# CONFIG_EQUALIZER is not set
-CONFIG_EVENTFD=y
-CONFIG_EXPERIMENTAL=y
-# CONFIG_EXPORTFS is not set
-# CONFIG_EXT2_FS is not set
-# CONFIG_EXT2_FS_XATTR is not set
-# CONFIG_EXT2_FS_XIP is not set
-# CONFIG_EXT3_FS is not set
-# CONFIG_EXT3_FS_XATTR is not set
-# CONFIG_EXT4DEV_FS is not set
-# CONFIG_EXT4_FS is not set
-CONFIG_EXTRA_FIRMWARE=""
-CONFIG_EXTRA_TARGETS=""
-# CONFIG_FAIR_GROUP_SCHED is not set
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-# CONFIG_FAT_FS is not set
-# CONFIG_FB_GEODE is not set
-# CONFIG_FB_IBM_GXT4500 is not set
-# CONFIG_FB is not set
-# CONFIG_FB_PXA is not set
-# CONFIG_FDDI is not set
-# CONFIG_FEALNX is not set
-CONFIG_FIB_RULES=y
-CONFIG_FILE_LOCKING=y
-# CONFIG_FIREWIRE is not set
-# CONFIG_FIRMWARE_IN_KERNEL is not set
-# CONFIG_FIXED_PHY is not set
-CONFIG_FLATMEM_MANUAL=y
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-# CONFIG_FORCEDETH is not set
-CONFIG_FRAME_WARN=1024
-# CONFIG_FREEZER is not set
-# CONFIG_FS_POSIX_ACL is not set
-# CONFIG_FTL is not set
-# CONFIG_FTRACE is not set
-# CONFIG_FUSE_FS is not set
-# CONFIG_FUSION_FC is not set
-# CONFIG_FUSION is not set
-# CONFIG_FUSION_SAS is not set
-# CONFIG_FUSION_SPI is not set
-CONFIG_FUTEX=y
-CONFIG_FW_LOADER=y
-CONFIG_GACT_PROB=y
-# CONFIG_GAMEPORT is not set
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_TIME=y
-# CONFIG_GFS2_FS is not set
-# CONFIG_GPIO_BT8XX is not set
-# CONFIG_GPIO_DEVICE is not set
-# CONFIG_GPIOLIB is not set
-# CONFIG_GPIO_MAX7301 is not set
-# CONFIG_GPIO_MAX732X is not set
-# CONFIG_GPIO_MCP23S08 is not set
-# CONFIG_GPIO_PCA953X is not set
-# CONFIG_GPIO_PCF857X is not set
-# CONFIG_GPIO_SYSFS is not set
-# CONFIG_GPIO_XILINX is not set
-# CONFIG_GROUP_SCHED is not set
-# CONFIG_HAMACHI is not set
-CONFIG_HAMRADIO=y
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_HAVE_AOUT is not set
-# CONFIG_HCALL_STATS is not set
-# CONFIG_HDLC_CISCO is not set
-# CONFIG_HDLC_FR is not set
-# CONFIG_HDLC is not set
-# CONFIG_HDLC_PPP is not set
-# CONFIG_HDLC_RAW_ETH is not set
-# CONFIG_HDLC_RAW is not set
-# CONFIG_HEADERS_CHECK is not set
-# CONFIG_HERMES is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_HID_A4TECH is not set
-# CONFIG_HID_APPLE is not set
-# CONFIG_HID_BELKIN is not set
-# CONFIG_HID_BRIGHT is not set
-# CONFIG_HID_CHERRY is not set
-# CONFIG_HID_CHICONY is not set
-# CONFIG_HID_COMPAT is not set
-# CONFIG_HID_CYPRESS is not set
-# CONFIG_HID_DEBUG is not set
-# CONFIG_HID_DELL is not set
-# CONFIG_HID_EZKEY is not set
-# CONFIG_HID_FF is not set
-# CONFIG_HID_GYRATION is not set
-# CONFIG_HID is not set
-# CONFIG_HID_LOGITECH is not set
-# CONFIG_HID_MICROSOFT is not set
-# CONFIG_HID_MONTEREY is not set
-# CONFIG_HID_PANTHERLORD is not set
-# CONFIG_HID_PETALYNX is not set
-# CONFIG_HID_PID is not set
-# CONFIG_HIDRAW is not set
-# CONFIG_HID_SAMSUNG is not set
-# CONFIG_HID_SONY is not set
-# CONFIG_HID_SUNPLUS is not set
-# CONFIG_HID_SUPPORT is not set
-CONFIG_HIGH_RES_TIMERS=y
-# CONFIG_HIPPI is not set
-# CONFIG_HOSTAP_CS is not set
-# CONFIG_HOSTAP is not set
-# CONFIG_HOSTAP_PCI is not set
-# CONFIG_HOSTAP_PLX is not set
-# CONFIG_HOTPLUG_CPU is not set
-# CONFIG_HOTPLUG_PCI is not set
-CONFIG_HOTPLUG=y
-# CONFIG_HP100 is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_HP_ILO is not set
-# CONFIG_HTC_EGPIO is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_HUGETLB_PAGE is not set
-# CONFIG_HWMON is not set
-# CONFIG_HWMON_VID is not set
-CONFIG_HZ=100
-# CONFIG_HZ_1000 is not set
-CONFIG_HZ_100=y
-# CONFIG_HZ_1024 is not set
-# CONFIG_HZ_128 is not set
-# CONFIG_HZ_250 is not set
-# CONFIG_HZ_256 is not set
-# CONFIG_HZ_300 is not set
-# CONFIG_HZ_48 is not set
-# CONFIG_I2C_ALGOBIT is not set
-# CONFIG_I2C_ALGOPCA is not set
-# CONFIG_I2C_ALGOPCF is not set
-# CONFIG_I2C_ALI1535 is not set
-# CONFIG_I2C_ALI1563 is not set
-# CONFIG_I2C_ALI15X3 is not set
-# CONFIG_I2C_AMD756 is not set
-# CONFIG_I2C_AMD8111 is not set
-# CONFIG_I2C_CHARDEV is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_ELEKTOR is not set
-# CONFIG_I2C_GPIO is not set
-# CONFIG_I2C_HELPER_AUTO is not set
-# CONFIG_I2C_I801 is not set
-# CONFIG_I2C_I810 is not set
-# CONFIG_I2C_IBM_IIC is not set
-# CONFIG_I2C_ISCH is not set
-# CONFIG_I2C is not set
-# CONFIG_I2C_MPC is not set
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_OCORES is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_PCA_ISA is not set
-# CONFIG_I2C_PCA_PLATFORM is not set
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_PROSAVAGE is not set
-# CONFIG_I2C_SAVAGE4 is not set
-# CONFIG_I2C_SIMTEC is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_TINY_USB is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-# CONFIG_I2C_VOODOO3 is not set
-# CONFIG_I2O is not set
-# CONFIG_I82092 is not set
-# CONFIG_I82365 is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_ICPLUS_PHY is not set
-# CONFIG_ICS932S401 is not set
-# CONFIG_IDEDISK_MULTI_MODE is not set
-# CONFIG_IDEDMA_IVB is not set
-# CONFIG_IDEDMA_ONLYDISK is not set
-# CONFIG_IDE_GD is not set
-CONFIG_IDE_MAX_HWIFS=4
-# CONFIG_IDEPCI_SHARE_IRQ is not set
-CONFIG_IDE_PROC_FS=y
-# CONFIG_IDE_TASK_IOCTL is not set
-# CONFIG_IEEE1394_DV1394 is not set
-# CONFIG_IEEE1394_ETH1394 is not set
-# CONFIG_IEEE1394 is not set
-# CONFIG_IEEE1394_OHCI1394 is not set
-# CONFIG_IEEE1394_PCILYNX is not set
-# CONFIG_IEEE1394_RAWIO is not set
-# CONFIG_IEEE1394_VERBOSEDEBUG is not set
-# CONFIG_IEEE1394_VIDEO1394 is not set
-# CONFIG_IEEE80211_CRYPT_CCMP is not set
-# CONFIG_IEEE80211_CRYPT_TKIP is not set
-# CONFIG_IEEE80211_CRYPT_WEP is not set
-# CONFIG_IEEE80211_DEBUG is not set
-# CONFIG_IEEE80211 is not set
-# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
-# CONFIG_IEEE80211_SOFTMAC is not set
-# CONFIG_IFB is not set
-# CONFIG_IGB is not set
-# CONFIG_IKCONFIG is not set
-# CONFIG_IKCONFIG_PROC is not set
-# CONFIG_IMAGE_CMDLINE_HACK is not set
-# CONFIG_IMQ_BEHAVIOR_AA is not set
-# CONFIG_IMQ_BEHAVIOR_AB is not set
-# CONFIG_IMQ_BEHAVIOR_BA is not set
-# CONFIG_IMQ_BEHAVIOR_BB is not set
-# CONFIG_IMQ is not set
-CONFIG_IMQ_NUM_DEVS=2
-# CONFIG_INET6_AH is not set
-# CONFIG_INET6_ESP is not set
-# CONFIG_INET6_IPCOMP is not set
-# CONFIG_INET6_TUNNEL is not set
-# CONFIG_INET6_XFRM_MODE_BEET is not set
-# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
-# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET_AH is not set
-# CONFIG_INET_DIAG is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_INET_LRO is not set
-# CONFIG_INET_TCP_DIAG is not set
-# CONFIG_INET_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_TUNNEL is not set
-CONFIG_INET=y
-# CONFIG_INFINIBAND is not set
-# CONFIG_INFTL is not set
-CONFIG_INIT_ENV_ARG_LIMIT=32
-# CONFIG_INOTIFY is not set
-# CONFIG_INOTIFY_USER is not set
-# CONFIG_INPUT_APANEL is not set
-# CONFIG_INPUT_ATI_REMOTE2 is not set
-# CONFIG_INPUT_ATI_REMOTE is not set
-# CONFIG_INPUT_ATLAS_BTNS is not set
-# CONFIG_INPUT_CM109 is not set
-# CONFIG_INPUT_EVBUG is not set
-# CONFIG_INPUT_EVDEV is not set
-# CONFIG_INPUT_FF_MEMLESS is not set
-# CONFIG_INPUT is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_KEYSPAN_REMOTE is not set
-CONFIG_INPUT_MISC=y
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_PCSPKR is not set
-# CONFIG_INPUT_POLLDEV is not set
-# CONFIG_INPUT_POWERMATE is not set
-# CONFIG_INPUT_TABLET is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-# CONFIG_INPUT_TSDEV is not set
-# CONFIG_INPUT_UINPUT is not set
-# CONFIG_INPUT_WISTRON_BTNS is not set
-# CONFIG_INSTRUMENTATION is not set
-# CONFIG_IOSCHED_AS is not set
-# CONFIG_IOSCHED_CFQ is not set
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_NOOP=y
-# CONFIG_IP1000 is not set
-# CONFIG_IP175C_PHY is not set
-# CONFIG_IP6_NF_FILTER is not set
-# CONFIG_IP6_NF_IPTABLES is not set
-# CONFIG_IP6_NF_MANGLE is not set
-# CONFIG_IP6_NF_MATCH_AH is not set
-# CONFIG_IP6_NF_MATCH_EUI64 is not set
-# CONFIG_IP6_NF_MATCH_FRAG is not set
-# CONFIG_IP6_NF_MATCH_HL is not set
-# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
-# CONFIG_IP6_NF_MATCH_LIMIT is not set
-# CONFIG_IP6_NF_MATCH_MH is not set
-# CONFIG_IP6_NF_MATCH_OPTS is not set
-# CONFIG_IP6_NF_MATCH_OWNER is not set
-# CONFIG_IP6_NF_MATCH_RT is not set
-# CONFIG_IP6_NF_QUEUE is not set
-# CONFIG_IP6_NF_RAW is not set
-# CONFIG_IP6_NF_TARGET_HL is not set
-# CONFIG_IP6_NF_TARGET_IMQ is not set
-# CONFIG_IP6_NF_TARGET_LOG is not set
-# CONFIG_IP6_NF_TARGET_REJECT is not set
-# CONFIG_IP6_NF_TARGET_ROUTE is not set
-CONFIG_IP_ADVANCED_ROUTER=y
-# CONFIG_IPC_NS is not set
-# CONFIG_IP_DCCP is not set
-CONFIG_IP_FIB_HASH=y
-# CONFIG_IP_FIB_TRIE is not set
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_IP_MROUTE=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_MULTIPLE_TABLES=y
-# CONFIG_IP_NF_AMANDA is not set
-# CONFIG_IP_NF_ARPFILTER is not set
-# CONFIG_IP_NF_ARP_MANGLE is not set
-# CONFIG_IP_NF_ARPTABLES is not set
-# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
-CONFIG_IP_NF_CONNTRACK_MARK=y
-CONFIG_IP_NF_CONNTRACK=y
-CONFIG_IP_NF_CT_ACCT=y
-# CONFIG_IP_NF_CT_PROTO_SCTP is not set
-# CONFIG_IP_NF_FILTER is not set
-# CONFIG_IP_NF_FTP is not set
-# CONFIG_IP_NF_H323 is not set
-# CONFIG_IP_NF_IPTABLES is not set
-# CONFIG_IP_NF_IRC is not set
-# CONFIG_IP_NF_MANGLE is not set
-# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
-# CONFIG_IP_NF_MATCH_AH is not set
-# CONFIG_IP_NF_MATCH_ECN is not set
-# CONFIG_IP_NF_MATCH_HASHLIMIT is not set
-# CONFIG_IP_NF_MATCH_IPP2P is not set
-# CONFIG_IP_NF_MATCH_OWNER is not set
-# CONFIG_IP_NF_MATCH_RECENT is not set
-# CONFIG_IP_NF_MATCH_SET is not set
-# CONFIG_IP_NF_MATCH_TIME is not set
-# CONFIG_IP_NF_MATCH_TOS is not set
-# CONFIG_IP_NF_MATCH_TTL is not set
-# CONFIG_IP_NF_NAT_AMANDA is not set
-# CONFIG_IP_NF_NAT_FTP is not set
-# CONFIG_IP_NF_NAT_H323 is not set
-# CONFIG_IP_NF_NAT_IRC is not set
-CONFIG_IP_NF_NAT_NEEDED=y
-# CONFIG_IP_NF_NAT_PPTP is not set
-# CONFIG_IP_NF_NAT_SIP is not set
-# CONFIG_IP_NF_NAT_SNMP_BASIC is not set
-# CONFIG_IP_NF_NAT_TFTP is not set
-CONFIG_IP_NF_NAT=y
-# CONFIG_IP_NF_NETBIOS_NS is not set
-# CONFIG_IP_NF_PPTP is not set
-# CONFIG_IP_NF_QUEUE is not set
-# CONFIG_IP_NF_RAW is not set
-CONFIG_IP_NF_SET_HASHSIZE=1024
-# CONFIG_IP_NF_SET_IPHASH is not set
-# CONFIG_IP_NF_SET_IPMAP is not set
-# CONFIG_IP_NF_SET_IPPORTHASH is not set
-# CONFIG_IP_NF_SET_IPTREE is not set
-# CONFIG_IP_NF_SET_IPTREEMAP is not set
-# CONFIG_IP_NF_SET is not set
-# CONFIG_IP_NF_SET_MACIPMAP is not set
-CONFIG_IP_NF_SET_MAX=256
-# CONFIG_IP_NF_SET_NETHASH is not set
-# CONFIG_IP_NF_SET_PORTMAP is not set
-# CONFIG_IP_NF_SIP is not set
-# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
-# CONFIG_IP_NF_TARGET_ECN is not set
-# CONFIG_IP_NF_TARGET_IMQ is not set
-# CONFIG_IP_NF_TARGET_LOG is not set
-# CONFIG_IP_NF_TARGET_MASQUERADE is not set
-# CONFIG_IP_NF_TARGET_NETMAP is not set
-# CONFIG_IP_NF_TARGET_REDIRECT is not set
-# CONFIG_IP_NF_TARGET_REJECT is not set
-# CONFIG_IP_NF_TARGET_ROUTE is not set
-# CONFIG_IP_NF_TARGET_SAME is not set
-# CONFIG_IP_NF_TARGET_SET is not set
-# CONFIG_IP_NF_TARGET_TOS is not set
-# CONFIG_IP_NF_TARGET_TTL is not set
-# CONFIG_IP_NF_TARGET_ULOG is not set
-# CONFIG_IP_NF_TFTP is not set
-# CONFIG_IP_PIMSM_V1 is not set
-# CONFIG_IP_PIMSM_V2 is not set
-# CONFIG_IP_PNP is not set
-CONFIG_IP_ROUTE_FWMARK=y
-CONFIG_IP_ROUTE_MULTIPATH_CACHED=y
-# CONFIG_IP_ROUTE_MULTIPATH_DRR is not set
-# CONFIG_IP_ROUTE_MULTIPATH_RANDOM is not set
-# CONFIG_IP_ROUTE_MULTIPATH_RR is not set
-# CONFIG_IP_ROUTE_MULTIPATH_WRANDOM is not set
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=y
-# CONFIG_IP_SCTP is not set
-CONFIG_IPSEC_NAT_TRAVERSAL=y
-# CONFIG_IPV6 is not set
-# CONFIG_IPV6_MIP6 is not set
-# CONFIG_IPV6_MROUTE is not set
-# CONFIG_IPV6_MULTIPLE_TABLES is not set
-CONFIG_IPV6_NDISC_NODETYPE=y
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-# CONFIG_IPV6_PRIVACY is not set
-# CONFIG_IPV6_ROUTE_INFO is not set
-# CONFIG_IPV6_ROUTER_PREF is not set
-# CONFIG_IPV6_SIT is not set
-# CONFIG_IPV6_TUNNEL is not set
-# CONFIG_IP_VS is not set
-# CONFIG_IPW2100_DEBUG is not set
-# CONFIG_IPW2100 is not set
-CONFIG_IPW2100_MONITOR=y
-# CONFIG_IPW2200_DEBUG is not set
-# CONFIG_IPW2200 is not set
-CONFIG_IPW2200_MONITOR=y
-# CONFIG_IPW2200_PROMISCUOUS is not set
-# CONFIG_IPW2200_QOS is not set
-# CONFIG_IPW2200_RADIOTAP is not set
-# CONFIG_IPWIRELESS is not set
-# CONFIG_IPX is not set
-# CONFIG_IRDA is not set
-# CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_ISCSI_TCP is not set
-# CONFIG_ISDN_CAPI_CAPI20 is not set
-CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
-# CONFIG_ISDN_CAPI_CAPIFS is not set
-# CONFIG_ISDN_CAPI is not set
-CONFIG_ISDN_CAPI_MIDDLEWARE=y
-# CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON is not set
-# CONFIG_ISDN_I4L is not set
-CONFIG_ISDN=y
-# CONFIG_ISO9660_FS is not set
-# CONFIG_IWL3945 is not set
-# CONFIG_IWLAGN is not set
-# CONFIG_IWLCORE is not set
-# CONFIG_IWLWIFI_LEDS is not set
-# CONFIG_IXGB is not set
-# CONFIG_JBD2_DEBUG is not set
-# CONFIG_JBD_DEBUG is not set
-# CONFIG_JBD is not set
-# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
-# CONFIG_JFFS2_CMODE_NONE is not set
-CONFIG_JFFS2_CMODE_PRIORITY=y
-# CONFIG_JFFS2_CMODE_SIZE is not set
-CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_FS_DEBUG=0
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_XATTR is not set
-CONFIG_JFFS2_FS=y
-# CONFIG_JFFS2_LZO is not set
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-CONFIG_JFFS2_SUMMARY=y
-CONFIG_JFFS2_ZLIB=y
-# CONFIG_JFFS_FS is not set
-# CONFIG_JFS_DEBUG is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_JFS_POSIX_ACL is not set
-# CONFIG_JFS_SECURITY is not set
-# CONFIG_JFS_STATISTICS is not set
-# CONFIG_JME is not set
-CONFIG_JOLIET=y
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
-# CONFIG_KALLSYMS is not set
-# CONFIG_KARMA_PARTITION is not set
-# CONFIG_KEXEC is not set
-# CONFIG_KEYS is not set
-CONFIG_KMOD=y
-# CONFIG_KPROBES is not set
-# CONFIG_LANMEDIA is not set
-# CONFIG_LAPB is not set
-# CONFIG_LASAT is not set
-# CONFIG_LATENCYTOP is not set
-# CONFIG_LBD is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_LEDS_ALIX is not set
-CONFIG_LEDS_CLASS=y
-# CONFIG_LEDS_PCA9532 is not set
-# CONFIG_LEDS_PCA955X is not set
-# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
-# CONFIG_LEDS_TRIGGER_MORSE is not set
-CONFIG_LEDS_TRIGGER_NETDEV=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_LIBCRC32C is not set
-# CONFIG_LIBERTAS is not set
-# CONFIG_LIBERTAS_THINFIRM is not set
-# CONFIG_LIBERTAS_USB is not set
-# CONFIG_LLC2 is not set
-CONFIG_LLC=y
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_LOCKDEP_SUPPORT=y
-# CONFIG_LOCKD is not set
-CONFIG_LOCKD_V4=y
-CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_LOGIRUMBLEPAD2_FF is not set
-# CONFIG_LOGITECH_FF is not set
-# CONFIG_LSF is not set
-# CONFIG_LXT_PHY is not set
-# CONFIG_MAC80211 is not set
-# CONFIG_MAC_EMUMOUSEBTN is not set
-# CONFIG_MAC_PARTITION is not set
-# CONFIG_MACVLAN is not set
-# CONFIG_MAGIC_SYSRQ is not set
-# CONFIG_MARKEINS is not set
-# CONFIG_MARKERS is not set
-# CONFIG_MARVELL_PHY is not set
-# CONFIG_MDIO_BITBANG is not set
-# CONFIG_MD is not set
-# CONFIG_MEDIA_ATTACH is not set
-# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
-# CONFIG_MEGARAID_LEGACY is not set
-# CONFIG_MEGARAID_NEWGEN is not set
-# CONFIG_MEGARAID_SAS is not set
-# CONFIG_MEMSTICK is not set
-# CONFIG_MFD_ASIC3 is not set
-# CONFIG_MFD_CORE is not set
-# CONFIG_MFD_PCF50606 is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_MFD_T7L66XB is not set
-# CONFIG_MFD_TC6387XB is not set
-# CONFIG_MFD_TC6393XB is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MIGRATION is not set
-CONFIG_MII=y
-CONFIG_MINI_FO=y
-# CONFIG_MINIX_FS is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_MIPS_FPU_EMU is not set
-CONFIG_MISC_DEVICES=y
-# CONFIG_MISDN_HFCPCI is not set
-# CONFIG_MISDN is not set
-# CONFIG_MKISS is not set
-# CONFIG_MMC_ARMMMCI is not set
-CONFIG_MMC_BLOCK_BOUNCE=y
-# CONFIG_MMC_BLOCK is not set
-# CONFIG_MMC is not set
-# CONFIG_MMC_SDRICOH_CS is not set
-# CONFIG_MMC_TEST is not set
-CONFIG_MMU=y
-# CONFIG_MODULE_FORCE_LOAD is not set
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MOUSE_APPLETOUCH is not set
-# CONFIG_MOUSE_INPORT is not set
-# CONFIG_MOUSE_LOGIBM is not set
-# CONFIG_MOUSE_PC110PAD is not set
-# CONFIG_MSDOS_FS is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_MTD_ABSENT is not set
-# CONFIG_MTD_AFS_PARTS is not set
-# CONFIG_MTD_ALAUDA is not set
-# CONFIG_MTD_AR7_PARTS is not set
-# CONFIG_MTD_ARM_INTEGRATOR is not set
-CONFIG_MTD_BLKDEVS=y
-# CONFIG_MTD_BLOCK2MTD is not set
-CONFIG_MTD_BLOCK=y
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_CFI_AMDSTD=y
-# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_CFI_INTELEXT=y
-# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
-CONFIG_MTD_CFI_NOSWAP=y
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CHAR=y
-# CONFIG_MTD_CMDLINE_PARTS is not set
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-# CONFIG_MTD_CONCAT is not set
-# CONFIG_MTD_DATAFLASH is not set
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-CONFIG_MTD_GEN_PROBE=y
-# CONFIG_MTD_INTEL_VR_NOR is not set
-# CONFIG_MTD_JEDECPROBE is not set
-# CONFIG_MTD_LPDDR is not set
-# CONFIG_MTD_M25P80 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_MYLOADER_PARTS is not set
-# CONFIG_MTD_NAND_CAFE is not set
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_ECC_SMC is not set
-CONFIG_MTD_NAND_IDS=y
-# CONFIG_MTD_NAND is not set
-# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
-# CONFIG_MTD_NAND_PLATFORM is not set
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-# CONFIG_MTD_ONENAND is not set
-# CONFIG_MTD_OOPS is not set
-# CONFIG_MTD_OTP is not set
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_PCI is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_PHYSMAP is not set
-# CONFIG_MTD_PLATRAM is not set
-# CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_RAM is not set
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-# CONFIG_MTD_REDBOOT_PARTS is not set
-CONFIG_MTD_REDBOOT_PARTS_READONLY=y
-# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-# CONFIG_MTD_ROM is not set
-CONFIG_MTD_ROOTFS_ROOT_DEV=y
-CONFIG_MTD_ROOTFS_SPLIT=y
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_UBI is not set
-CONFIG_MTD=y
-# CONFIG_MVSWITCH_PHY is not set
-# CONFIG_MWAVE is not set
-# CONFIG_MYRI10GE is not set
-# CONFIG_NAMESPACES is not set
-# CONFIG_NATSEMI is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_NE2K_PCI is not set
-# CONFIG_NET_9P is not set
-# CONFIG_NET_ACT_GACT is not set
-# CONFIG_NET_ACT_IPT is not set
-# CONFIG_NET_ACT_MIRRED is not set
-# CONFIG_NET_ACT_NAT is not set
-# CONFIG_NET_ACT_PEDIT is not set
-# CONFIG_NET_ACT_POLICE is not set
-# CONFIG_NET_ACT_SIMP is not set
-CONFIG_NET_ACT_SKBEDIT=y
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_CLS_BASIC=y
-# CONFIG_NET_CLS_FLOW is not set
-# CONFIG_NET_CLS_FW is not set
-CONFIG_NET_CLS_IND=y
-# CONFIG_NET_CLS_ROUTE4 is not set
-# CONFIG_NET_CLS_RSVP6 is not set
-# CONFIG_NET_CLS_RSVP is not set
-# CONFIG_NET_CLS_TCINDEX is not set
-# CONFIG_NET_CLS_U32 is not set
-CONFIG_NET_CLS=y
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETDEBUG is not set
-# CONFIG_NETDEV_10000 is not set
-CONFIG_NETDEV_1000=y
-CONFIG_NETDEVICES_MULTIQUEUE=y
-CONFIG_NETDEVICES=y
-# CONFIG_NET_DSA is not set
-# CONFIG_NET_EMATCH_CMP is not set
-# CONFIG_NET_EMATCH is not set
-# CONFIG_NET_EMATCH_META is not set
-# CONFIG_NET_EMATCH_NBYTE is not set
-CONFIG_NET_EMATCH_STACK=32
-# CONFIG_NET_EMATCH_TEXT is not set
-# CONFIG_NET_EMATCH_U32 is not set
-CONFIG_NET_ESTIMATOR=y
-CONFIG_NET_ETHERNET=y
-# CONFIG_NET_FC is not set
-CONFIG_NETFILTER_ADVANCED=y
-# CONFIG_NETFILTER_DEBUG is not set
-# CONFIG_NETFILTER_NETLINK is not set
-# CONFIG_NETFILTER_NETLINK_LOG is not set
-# CONFIG_NETFILTER_NETLINK_QUEUE is not set
-# CONFIG_NETFILTER_TPROXY is not set
-# CONFIG_NETFILTER_XTABLES is not set
-# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
-# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
-# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
-# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
-# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
-# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
-# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
-# CONFIG_NETFILTER_XT_MATCH_ESP is not set
-# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
-# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
-# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
-# CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG is not set
-# CONFIG_NETFILTER_XT_MATCH_LAYER7 is not set
-# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
-# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
-# CONFIG_NETFILTER_XT_MATCH_MAC is not set
-# CONFIG_NETFILTER_XT_MATCH_MARK is not set
-# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
-# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
-# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
-# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
-# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
-# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
-# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
-# CONFIG_NETFILTER_XT_MATCH_REALM is not set
-# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
-# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
-# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
-# CONFIG_NETFILTER_XT_MATCH_STATE is not set
-# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
-# CONFIG_NETFILTER_XT_MATCH_STRING is not set
-# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
-# CONFIG_NETFILTER_XT_MATCH_TIME is not set
-# CONFIG_NETFILTER_XT_MATCH_U32 is not set
-# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
-# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
-# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
-# CONFIG_NETFILTER_XT_TARGET_IMQ is not set
-# CONFIG_NETFILTER_XT_TARGET_MARK is not set
-# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
-# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
-# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
-# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
-# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
-# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
-# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
-CONFIG_NETFILTER=y
-CONFIG_NET_IPGRE_BROADCAST=y
-# CONFIG_NET_IPGRE is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_ISA is not set
-# CONFIG_NET_KEY is not set
-# CONFIG_NET_KEY_MIGRATE is not set
-CONFIG_NET_PCI=y
-# CONFIG_NET_PCMCIA is not set
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_NETPOLL is not set
-CONFIG_NET_RADIO=y
-# CONFIG_NETROM is not set
-# CONFIG_NET_SB1000 is not set
-# CONFIG_NET_SCH_ATM is not set
-# CONFIG_NET_SCH_CBQ is not set
-# CONFIG_NET_SCH_CLK_CPU is not set
-# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
-CONFIG_NET_SCH_CLK_JIFFIES=y
-# CONFIG_NET_SCH_DSMARK is not set
-CONFIG_NET_SCHED=y
-# CONFIG_NET_SCH_ESFQ is not set
-CONFIG_NET_SCH_ESFQ_NFCT=y
-CONFIG_NET_SCH_FIFO=y
-# CONFIG_NET_SCH_GRED is not set
-# CONFIG_NET_SCH_HFSC is not set
-# CONFIG_NET_SCH_HTB is not set
-# CONFIG_NET_SCH_INGRESS is not set
-# CONFIG_NET_SCH_MULTIQ is not set
-# CONFIG_NET_SCH_NETEM is not set
-# CONFIG_NET_SCH_PRIO is not set
-# CONFIG_NET_SCH_RED is not set
-# CONFIG_NET_SCH_RR is not set
-# CONFIG_NET_SCH_SFQ is not set
-# CONFIG_NET_SCH_TBF is not set
-# CONFIG_NET_SCH_TEQL is not set
-# CONFIG_NET_TULIP is not set
-# CONFIG_NET_VENDOR_3COM is not set
-CONFIG_NET_WIRELESS_RTNETLINK=y
-CONFIG_NET_WIRELESS=y
-CONFIG_NETWORK_FILESYSTEMS=y
-# CONFIG_NETWORK_SECMARK is not set
-# CONFIG_NETXEN_NIC is not set
-CONFIG_NET=y
-# CONFIG_NEW_GPIO is not set
-CONFIG_NEW_LEDS=y
-# CONFIG_NF_CONNTRACK_AMANDA is not set
-CONFIG_NF_CONNTRACK_ENABLED=y
-# CONFIG_NF_CONNTRACK_EVENTS is not set
-# CONFIG_NF_CONNTRACK_FTP is not set
-# CONFIG_NF_CONNTRACK_H323 is not set
-# CONFIG_NF_CONNTRACK_IPV4 is not set
-# CONFIG_NF_CONNTRACK_IPV6 is not set
-# CONFIG_NF_CONNTRACK_IRC is not set
-# CONFIG_NF_CONNTRACK is not set
-CONFIG_NF_CONNTRACK_MARK=y
-# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
-# CONFIG_NF_CONNTRACK_PPTP is not set
-CONFIG_NF_CONNTRACK_PROC_COMPAT=y
-# CONFIG_NF_CONNTRACK_RTSP is not set
-# CONFIG_NF_CONNTRACK_SANE is not set
-# CONFIG_NF_CONNTRACK_SIP is not set
-CONFIG_NF_CONNTRACK_SUPPORT=y
-# CONFIG_NF_CONNTRACK_TFTP is not set
-# CONFIG_NF_CT_ACCT is not set
-# CONFIG_NF_CT_NETLINK is not set
-# CONFIG_NF_CT_PROTO_DCCP is not set
-# CONFIG_NF_CT_PROTO_GRE is not set
-# CONFIG_NF_CT_PROTO_SCTP is not set
-# CONFIG_NF_CT_PROTO_UDPLITE is not set
-# CONFIG_NF_DEFRAG_IPV4 is not set
-# CONFIG_NF_NAT_AMANDA is not set
-# CONFIG_NF_NAT_FTP is not set
-# CONFIG_NF_NAT_H323 is not set
-# CONFIG_NF_NAT_IRC is not set
-# CONFIG_NF_NAT is not set
-CONFIG_NF_NAT_NEEDED=y
-# CONFIG_NF_NAT_PPTP is not set
-# CONFIG_NF_NAT_PROTO_GRE is not set
-# CONFIG_NF_NAT_RTSP is not set
-# CONFIG_NF_NAT_SIP is not set
-# CONFIG_NF_NAT_SNMP_BASIC is not set
-# CONFIG_NF_NAT_TFTP is not set
-# CONFIG_NFS_ACL_SUPPORT is not set
-CONFIG_NFS_COMMON=y
-# CONFIG_NFS_DIRECTIO is not set
-# CONFIG_NFSD is not set
-CONFIG_NFSD_TCP=y
-# CONFIG_NFSD_V2_ACL is not set
-# CONFIG_NFSD_V3_ACL is not set
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V4=y
-# CONFIG_NFS_FS is not set
-# CONFIG_NFS_V3_ACL is not set
-CONFIG_NFS_V3=y
-CONFIG_NFS_V4=y
-# CONFIG_NFTL is not set
-CONFIG_NL80211=y
-# CONFIG_NLS_ASCII is not set
-# CONFIG_NLS_CODEPAGE_1250 is not set
-# CONFIG_NLS_CODEPAGE_1251 is not set
-# CONFIG_NLS_CODEPAGE_437 is not set
-# CONFIG_NLS_CODEPAGE_737 is not set
-# CONFIG_NLS_CODEPAGE_775 is not set
-# CONFIG_NLS_CODEPAGE_850 is not set
-# CONFIG_NLS_CODEPAGE_852 is not set
-# CONFIG_NLS_CODEPAGE_855 is not set
-# CONFIG_NLS_CODEPAGE_857 is not set
-# CONFIG_NLS_CODEPAGE_860 is not set
-# CONFIG_NLS_CODEPAGE_861 is not set
-# CONFIG_NLS_CODEPAGE_862 is not set
-# CONFIG_NLS_CODEPAGE_863 is not set
-# CONFIG_NLS_CODEPAGE_864 is not set
-# CONFIG_NLS_CODEPAGE_865 is not set
-# CONFIG_NLS_CODEPAGE_866 is not set
-# CONFIG_NLS_CODEPAGE_869 is not set
-# CONFIG_NLS_CODEPAGE_874 is not set
-# CONFIG_NLS_CODEPAGE_932 is not set
-# CONFIG_NLS_CODEPAGE_936 is not set
-# CONFIG_NLS_CODEPAGE_949 is not set
-# CONFIG_NLS_CODEPAGE_950 is not set
-CONFIG_NLS_DEFAULT="iso8859-1"
-# CONFIG_NLS is not set
-# CONFIG_NLS_ISO8859_13 is not set
-# CONFIG_NLS_ISO8859_14 is not set
-# CONFIG_NLS_ISO8859_15 is not set
-# CONFIG_NLS_ISO8859_1 is not set
-# CONFIG_NLS_ISO8859_2 is not set
-# CONFIG_NLS_ISO8859_3 is not set
-# CONFIG_NLS_ISO8859_4 is not set
-# CONFIG_NLS_ISO8859_5 is not set
-# CONFIG_NLS_ISO8859_6 is not set
-# CONFIG_NLS_ISO8859_7 is not set
-# CONFIG_NLS_ISO8859_8 is not set
-# CONFIG_NLS_ISO8859_9 is not set
-# CONFIG_NLS_KOI8_R is not set
-# CONFIG_NLS_KOI8_U is not set
-# CONFIG_NLS_UTF8 is not set
-# CONFIG_NO_HZ is not set
-# CONFIG_NORTEL_HERMES is not set
-# CONFIG_NOZOMI is not set
-# CONFIG_NS83820 is not set
-# CONFIG_NTFS_DEBUG is not set
-# CONFIG_NTFS_FS is not set
-# CONFIG_NTFS_RW is not set
-# CONFIG_NVRAM is not set
-# CONFIG_OCF_BENCH is not set
-# CONFIG_OCF_EP80579 is not set
-# CONFIG_OCF_HIFNHIPP is not set
-# CONFIG_OCF_HIFN is not set
-# CONFIG_OCF_IXP4XX is not set
-# CONFIG_OCF_OCF is not set
-# CONFIG_OCF_OCFNULL is not set
-# CONFIG_OCFS2_FS is not set
-# CONFIG_OCF_SAFE is not set
-# CONFIG_OCF_TALITOS is not set
-# CONFIG_OMFS_FS is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_P54_COMMON is not set
-CONFIG_PACKET_MMAP=y
-CONFIG_PACKET=y
-# CONFIG_PAGE_SIZE_16KB is not set
-CONFIG_PAGE_SIZE_4KB=y
-# CONFIG_PAGE_SIZE_64KB is not set
-# CONFIG_PAGE_SIZE_8KB is not set
-# CONFIG_PANTHERLORD_FF is not set
-# CONFIG_PARPORT is not set
-# CONFIG_PARPORT_PC is not set
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_PATA_ALI is not set
-# CONFIG_PATA_AMD is not set
-# CONFIG_PATA_ARTOP is not set
-# CONFIG_PATA_ATIIXP is not set
-# CONFIG_PATA_CMD640_PCI is not set
-# CONFIG_PATA_CMD64X is not set
-# CONFIG_PATA_CS5520 is not set
-# CONFIG_PATA_CS5530 is not set
-# CONFIG_PATA_CS5535 is not set
-# CONFIG_PATA_CYPRESS is not set
-# CONFIG_PATA_EFAR is not set
-# CONFIG_PATA_HPT366 is not set
-# CONFIG_PATA_HPT37X is not set
-# CONFIG_PATA_HPT3X2N is not set
-# CONFIG_PATA_HPT3X3 is not set
-# CONFIG_PATA_ISAPNP is not set
-# CONFIG_PATA_IT8213 is not set
-# CONFIG_PATA_IT821X is not set
-# CONFIG_PATA_JMICRON is not set
-# CONFIG_PATA_LEGACY is not set
-# CONFIG_PATA_MARVELL is not set
-# CONFIG_PATA_MPIIX is not set
-# CONFIG_PATA_NETCELL is not set
-# CONFIG_PATA_NINJA32 is not set
-# CONFIG_PATA_NS87410 is not set
-# CONFIG_PATA_NS87415 is not set
-# CONFIG_PATA_OLDPIIX is not set
-# CONFIG_PATA_OPTIDMA is not set
-# CONFIG_PATA_OPTI is not set
-# CONFIG_PATA_PCMCIA is not set
-# CONFIG_PATA_PDC2027X is not set
-# CONFIG_PATA_PDC_OLD is not set
-# CONFIG_PATA_PLATFORM is not set
-# CONFIG_PATA_QDI is not set
-# CONFIG_PATA_RADISYS is not set
-# CONFIG_PATA_RZ1000 is not set
-# CONFIG_PATA_SC1200 is not set
-# CONFIG_PATA_SCH is not set
-# CONFIG_PATA_SERVERWORKS is not set
-# CONFIG_PATA_SIL680 is not set
-# CONFIG_PATA_SIS is not set
-# CONFIG_PATA_TRIFLEX is not set
-# CONFIG_PATA_VIA is not set
-# CONFIG_PATA_WINBOND is not set
-# CONFIG_PATA_WINBOND_VLB is not set
-# CONFIG_PC300TOO is not set
-# CONFIG_PCCARD is not set
-# CONFIG_PCF8575 is not set
-# CONFIG_PCI200SYN is not set
-# CONFIG_PCI_ATMEL is not set
-# CONFIG_PCI_DISABLE_COMMON_QUIRKS is not set
-# CONFIG_PCI_HERMES is not set
-# CONFIG_PCI_LEGACY is not set
-# CONFIG_PCI_MSI is not set
-# CONFIG_PCIPCWATCHDOG is not set
-CONFIG_PCI_QUIRKS=y
-CONFIG_PCI_SYSCALL=y
-CONFIG_PCI=y
-# CONFIG_PCMCIA_AHA152X is not set
-# CONFIG_PCMCIA_ATMEL is not set
-# CONFIG_PCMCIA_DEBUG is not set
-# CONFIG_PCMCIA_FDOMAIN is not set
-# CONFIG_PCMCIA_HERMES is not set
-# CONFIG_PCMCIA_IOCTL is not set
-# CONFIG_PCMCIA is not set
-# CONFIG_PCMCIA_LOAD_CIS is not set
-# CONFIG_PCMCIA_NETWAVE is not set
-# CONFIG_PCMCIA_NINJA_SCSI is not set
-# CONFIG_PCMCIA_QLOGIC is not set
-# CONFIG_PCMCIA_RAYCS is not set
-# CONFIG_PCMCIA_SPECTRUM is not set
-# CONFIG_PCMCIA_SYM53C500 is not set
-# CONFIG_PCMCIA_WAVELAN is not set
-# CONFIG_PCMCIA_WL3501 is not set
-# CONFIG_PCNET32 is not set
-# CONFIG_PCSPKR_PLATFORM is not set
-# CONFIG_PD6729 is not set
-# CONFIG_PDC_ADMA is not set
-# CONFIG_PHANTOM is not set
-# CONFIG_PHONE is not set
-# CONFIG_PHONET is not set
-# CONFIG_PHYLIB is not set
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-# CONFIG_PID_NS is not set
-CONFIG_PLIST=y
-# CONFIG_PLX_HERMES is not set
-# CONFIG_PMIC_DA903X is not set
-# CONFIG_PM is not set
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_POWER_SUPPLY is not set
-CONFIG_PPC4xx_GPIO=y
-# CONFIG_PPP_ASYNC is not set
-# CONFIG_PPP_BSDCOMP is not set
-# CONFIG_PPP_DEFLATE is not set
-CONFIG_PPP_FILTER=y
-# CONFIG_PPP is not set
-# CONFIG_PPP_MPPE is not set
-CONFIG_PPP_MULTILINK=y
-# CONFIG_PPPOATM is not set
-# CONFIG_PPPOE is not set
-# CONFIG_PPPOL2TP is not set
-# CONFIG_PPP_SYNC_TTY is not set
-# CONFIG_PREEMPT is not set
-CONFIG_PREEMPT_NONE=y
-# CONFIG_PREEMPT_VOLUNTARY is not set
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-# CONFIG_PRINTK_TIME is not set
-CONFIG_PRINTK=y
-# CONFIG_PRISM54 is not set
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-# CONFIG_PROC_PAGE_MONITOR is not set
-CONFIG_PROC_SYSCTL=y
-# CONFIG_PROFILING is not set
-# CONFIG_QEMU is not set
-# CONFIG_QLA3XXX is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_QSEMI_PHY is not set
-# CONFIG_QUOTA is not set
-# CONFIG_R3964 is not set
-# CONFIG_R8169 is not set
-# CONFIG_RADIO_ADAPTERS is not set
-# CONFIG_RADIO_AZTECH is not set
-# CONFIG_RADIO_CADET is not set
-# CONFIG_RADIO_GEMTEK is not set
-# CONFIG_RADIO_GEMTEK_PCI is not set
-# CONFIG_RADIO_MAESTRO is not set
-# CONFIG_RADIO_MAXIRADIO is not set
-# CONFIG_RADIO_RTRACK2 is not set
-# CONFIG_RADIO_RTRACK is not set
-# CONFIG_RADIO_SF16FMI is not set
-# CONFIG_RADIO_SF16FMR2 is not set
-# CONFIG_RADIO_TERRATEC is not set
-# CONFIG_RADIO_TRUST is not set
-# CONFIG_RADIO_TYPHOON is not set
-# CONFIG_RADIO_ZOLTRIX is not set
-# CONFIG_RAID_ATTRS is not set
-CONFIG_RAMFS=y
-# CONFIG_RAW_DRIVER is not set
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-# CONFIG_REALTEK_PHY is not set
-# CONFIG_REGULATOR_BQ24022 is not set
-# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
-# CONFIG_REGULATOR is not set
-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_FS is not set
-# CONFIG_REISERFS_FS_XATTR is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-# CONFIG_RELAY is not set
-# CONFIG_RESOURCES_64BIT is not set
-# CONFIG_RFD_FTL is not set
-# CONFIG_RFKILL_INPUT is not set
-# CONFIG_RFKILL is not set
-# CONFIG_ROMFS_FS is not set
-# CONFIG_ROSE is not set
-# CONFIG_RPCSEC_GSS_KRB5 is not set
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-# CONFIG_RT2X00 is not set
-# CONFIG_RTC_CLASS is not set
-# CONFIG_RTC_DEBUG is not set
-# CONFIG_RTC_DRV_BQ4802 is not set
-CONFIG_RTC_DRV_CMOS=y
-# CONFIG_RTC_DRV_DS1286 is not set
-# CONFIG_RTC_DRV_DS1305 is not set
-# CONFIG_RTC_DRV_DS1307 is not set
-# CONFIG_RTC_DRV_DS1374 is not set
-# CONFIG_RTC_DRV_DS1390 is not set
-# CONFIG_RTC_DRV_DS1511 is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_DS3234 is not set
-# CONFIG_RTC_DRV_FM3130 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
-# CONFIG_RTC_DRV_M41T80 is not set
-# CONFIG_RTC_DRV_M41T94 is not set
-# CONFIG_RTC_DRV_M48T35 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_MAX6900 is not set
-# CONFIG_RTC_DRV_MAX6902 is not set
-# CONFIG_RTC_DRV_PCF50606 is not set
-# CONFIG_RTC_DRV_PCF8563 is not set
-# CONFIG_RTC_DRV_PCF8583 is not set
-# CONFIG_RTC_DRV_R9701 is not set
-# CONFIG_RTC_DRV_RS5C348 is not set
-# CONFIG_RTC_DRV_RS5C372 is not set
-# CONFIG_RTC_DRV_RTC7301 is not set
-# CONFIG_RTC_DRV_RX8581 is not set
-# CONFIG_RTC_DRV_S35390A is not set
-# CONFIG_RTC_DRV_STK17TA8 is not set
-# CONFIG_RTC_DRV_TEST is not set
-# CONFIG_RTC_DRV_V3020 is not set
-# CONFIG_RTC_DRV_X1205 is not set
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-CONFIG_RTC_HCTOSYS=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-CONFIG_RTC_INTF_DEV=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_LIB=y
-# CONFIG_RTL8180 is not set
-# CONFIG_RTL8187 is not set
-# CONFIG_RTL8306_PHY is not set
-CONFIG_RT_MUTEXES=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-# CONFIG_S2IO is not set
-# CONFIG_SAMPLES is not set
-# CONFIG_SATA_AHCI is not set
-# CONFIG_SATA_INIC162X is not set
-# CONFIG_SATA_MV is not set
-# CONFIG_SATA_NV is not set
-# CONFIG_SATA_PMP is not set
-# CONFIG_SATA_PROMISE is not set
-# CONFIG_SATA_QSTOR is not set
-# CONFIG_SATA_SIL24 is not set
-# CONFIG_SATA_SIL is not set
-# CONFIG_SATA_SIS is not set
-# CONFIG_SATA_SVW is not set
-# CONFIG_SATA_SX4 is not set
-# CONFIG_SATA_ULI is not set
-# CONFIG_SATA_VIA is not set
-# CONFIG_SATA_VITESSE is not set
-# CONFIG_SC92031 is not set
-# CONFIG_SCC is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_SCSI_3W_9XXX is not set
-# CONFIG_SCSI_7000FASST is not set
-# CONFIG_SCSI_AACRAID is not set
-# CONFIG_SCSI_ACARD is not set
-# CONFIG_SCSI_ADVANSYS is not set
-# CONFIG_SCSI_AHA152X is not set
-# CONFIG_SCSI_AHA1542 is not set
-# CONFIG_SCSI_AIC79XX is not set
-# CONFIG_SCSI_AIC7XXX is not set
-# CONFIG_SCSI_AIC7XXX_OLD is not set
-# CONFIG_SCSI_AIC94XX is not set
-# CONFIG_SCSI_ARCMSR is not set
-# CONFIG_SCSI_BUSLOGIC is not set
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_DC390T is not set
-# CONFIG_SCSI_DC395x is not set
-# CONFIG_SCSI_DEBUG is not set
-# CONFIG_SCSI_DH is not set
-CONFIG_SCSI_DMA=y
-# CONFIG_SCSI_DMX3191D is not set
-# CONFIG_SCSI_DPT_I2O is not set
-# CONFIG_SCSI_DTC3280 is not set
-# CONFIG_SCSI_EATA is not set
-# CONFIG_SCSI_ESP_CORE is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_FUTURE_DOMAIN is not set
-# CONFIG_SCSI_GDTH is not set
-# CONFIG_SCSI_GENERIC_NCR5380 is not set
-# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
-# CONFIG_SCSI_HPTIOP is not set
-# CONFIG_SCSI_IN2000 is not set
-# CONFIG_SCSI_INIA100 is not set
-# CONFIG_SCSI_INITIO is not set
-# CONFIG_SCSI_IPR is not set
-# CONFIG_SCSI_IPS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-# CONFIG_SCSI is not set
-# CONFIG_SCSI_LOGGING is not set
-# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
-CONFIG_SCSI_LOWLEVEL=y
-# CONFIG_SCSI_LPFC is not set
-CONFIG_SCSI_MULTI_LUN=y
-# CONFIG_SCSI_MVSAS is not set
-# CONFIG_SCSI_NCR53C406A is not set
-# CONFIG_SCSI_NETLINK is not set
-# CONFIG_SCSI_NSP32 is not set
-# CONFIG_SCSI_PAS16 is not set
-CONFIG_SCSI_PROC_FS=y
-# CONFIG_SCSI_PSI240I is not set
-# CONFIG_SCSI_QLA_FC is not set
-# CONFIG_SCSI_QLA_ISCSI is not set
-# CONFIG_SCSI_QLOGIC_1280 is not set
-# CONFIG_SCSI_QLOGIC_FAS is not set
-# CONFIG_SCSI_SAS_ATTRS is not set
-# CONFIG_SCSI_SAS_LIBSAS is not set
-# CONFIG_SCSI_SCAN_ASYNC is not set
-# CONFIG_SCSI_SEAGATE is not set
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_SRP_ATTRS is not set
-# CONFIG_SCSI_SRP is not set
-# CONFIG_SCSI_STEX is not set
-# CONFIG_SCSI_SYM53C416 is not set
-# CONFIG_SCSI_SYM53C8XX_2 is not set
-# CONFIG_SCSI_T128 is not set
-# CONFIG_SCSI_TGT is not set
-# CONFIG_SCSI_U14_34F is not set
-# CONFIG_SCSI_ULTRASTOR is not set
-CONFIG_SCSI_WAIT_SCAN=m
-# CONFIG_SECCOMP is not set
-# CONFIG_SECURITY_FILE_CAPABILITIES is not set
-# CONFIG_SECURITYFS is not set
-# CONFIG_SECURITY is not set
-CONFIG_SELECT_MEMORY_MODEL=y
-# CONFIG_SENSORS_ABITUGURU3 is not set
-# CONFIG_SENSORS_ABITUGURU is not set
-# CONFIG_SENSORS_AD7414 is not set
-# CONFIG_SENSORS_AD7418 is not set
-# CONFIG_SENSORS_ADCXX is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1029 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ADM9240 is not set
-# CONFIG_SENSORS_ADS7828 is not set
-# CONFIG_SENSORS_ADT7462 is not set
-# CONFIG_SENSORS_ADT7470 is not set
-# CONFIG_SENSORS_ADT7473 is not set
-# CONFIG_SENSORS_APPLESMC is not set
-# CONFIG_SENSORS_ASB100 is not set
-# CONFIG_SENSORS_ATXP1 is not set
-# CONFIG_SENSORS_CORETEMP is not set
-# CONFIG_SENSORS_DME1737 is not set
-# CONFIG_SENSORS_DS1337 is not set
-# CONFIG_SENSORS_DS1374 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_EEPROM is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_SENSORS_F71882FG is not set
-# CONFIG_SENSORS_F75375S is not set
-# CONFIG_SENSORS_FSCHER is not set
-# CONFIG_SENSORS_FSCHMD is not set
-# CONFIG_SENSORS_FSCPOS is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_HDAPS is not set
-# CONFIG_SENSORS_I5K_AMB is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_K8TEMP is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM70 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_LM93 is not set
-# CONFIG_SENSORS_M41T00 is not set
-# CONFIG_SENSORS_MAX1111 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_MAX6650 is not set
-# CONFIG_SENSORS_MAX6875 is not set
-# CONFIG_SENSORS_PC87427 is not set
-# CONFIG_SENSORS_PCA9539 is not set
-# CONFIG_SENSORS_PCF8574 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_SMSC47M192 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_THMC50 is not set
-# CONFIG_SENSORS_TSL2550 is not set
-# CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_VT1211 is not set
-# CONFIG_SENSORS_VT8231 is not set
-# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83791D is not set
-# CONFIG_SENSORS_W83792D is not set
-# CONFIG_SENSORS_W83793 is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83L786NG is not set
-CONFIG_SERIAL_8250_CONSOLE=y
-# CONFIG_SERIAL_8250_CS is not set
-CONFIG_SERIAL_8250_NR_UARTS=2
-# CONFIG_SERIAL_8250_PCI is not set
-CONFIG_SERIAL_8250_RUNTIME_UARTS=2
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_SERIAL_CORE=y
-# CONFIG_SERIAL_JSM is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-# CONFIG_SERIAL_UARTLITE is not set
-# CONFIG_SERIO is not set
-# CONFIG_SGI_IOC4 is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_SHAPER is not set
-CONFIG_SHMEM=y
-CONFIG_SIGNALFD=y
-# CONFIG_SIS190 is not set
-# CONFIG_SIS900 is not set
-# CONFIG_SK98LIN is not set
-# CONFIG_SKGE is not set
-# CONFIG_SKY2_DEBUG is not set
-# CONFIG_SKY2 is not set
-CONFIG_SLABINFO=y
-CONFIG_SLAB=y
-# CONFIG_SLHC is not set
-# CONFIG_SLIP is not set
-# CONFIG_SLOB is not set
-# CONFIG_SLUB_DEBUG is not set
-# CONFIG_SLUB is not set
-# CONFIG_SMB_FS is not set
-# CONFIG_SMB_NLS_DEFAULT is not set
-# CONFIG_SMC911X is not set
-# CONFIG_SMC91X is not set
-# CONFIG_SMP is not set
-# CONFIG_SMSC_PHY is not set
-# CONFIG_SND_AC97_POWER_SAVE is not set
-# CONFIG_SND_AD1816A is not set
-# CONFIG_SND_AD1848 is not set
-# CONFIG_SND_AD1889 is not set
-# CONFIG_SND_ADLIB is not set
-# CONFIG_SND_ALI5451 is not set
-# CONFIG_SND_ALS100 is not set
-# CONFIG_SND_ALS300 is not set
-# CONFIG_SND_ALS4000 is not set
-# CONFIG_SND_ARM is not set
-# CONFIG_SND_ATIIXP is not set
-# CONFIG_SND_ATIIXP_MODEM is not set
-# CONFIG_SND_AU8810 is not set
-# CONFIG_SND_AU8820 is not set
-# CONFIG_SND_AU8830 is not set
-# CONFIG_SND_AW2 is not set
-# CONFIG_SND_AZT2320 is not set
-# CONFIG_SND_AZT3328 is not set
-# CONFIG_SND_BT87X is not set
-# CONFIG_SND_CA0106 is not set
-# CONFIG_SND_CMI8330 is not set
-# CONFIG_SND_CMIPCI is not set
-# CONFIG_SND_CS4231 is not set
-# CONFIG_SND_CS4232 is not set
-# CONFIG_SND_CS4236 is not set
-# CONFIG_SND_CS4281 is not set
-# CONFIG_SND_CS46XX is not set
-# CONFIG_SND_CS5530 is not set
-# CONFIG_SND_CS5535AUDIO is not set
-# CONFIG_SND_DARLA20 is not set
-# CONFIG_SND_DARLA24 is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_DRIVERS=y
-# CONFIG_SND_DT019X is not set
-# CONFIG_SND_DUMMY is not set
-# CONFIG_SND_DYNAMIC_MINORS is not set
-# CONFIG_SND_ECHO3G is not set
-# CONFIG_SND_EMU10K1 is not set
-# CONFIG_SND_EMU10K1X is not set
-# CONFIG_SND_ENS1370 is not set
-# CONFIG_SND_ENS1371 is not set
-# CONFIG_SND_ES1688 is not set
-# CONFIG_SND_ES18XX is not set
-# CONFIG_SND_ES1938 is not set
-# CONFIG_SND_ES1968 is not set
-# CONFIG_SND_ES968 is not set
-# CONFIG_SND_FM801 is not set
-# CONFIG_SND_GINA20 is not set
-# CONFIG_SND_GINA24 is not set
-# CONFIG_SND_GUSCLASSIC is not set
-# CONFIG_SND_GUSEXTREME is not set
-# CONFIG_SND_GUSMAX is not set
-# CONFIG_SND_HDA_INTEL is not set
-# CONFIG_SND_HDSP is not set
-# CONFIG_SND_HDSPM is not set
-# CONFIG_SND_HIFIER is not set
-# CONFIG_SND_HWDEP is not set
-# CONFIG_SND_ICE1712 is not set
-# CONFIG_SND_ICE1724 is not set
-# CONFIG_SND_INDIGODJ is not set
-# CONFIG_SND_INDIGOIO is not set
-# CONFIG_SND_INDIGO is not set
-# CONFIG_SND_INTEL8X0 is not set
-# CONFIG_SND_INTEL8X0M is not set
-# CONFIG_SND_INTERWAVE is not set
-# CONFIG_SND_INTERWAVE_STB is not set
-# CONFIG_SND_ISA is not set
-# CONFIG_SND is not set
-# CONFIG_SND_KORG1212 is not set
-# CONFIG_SND_LAYLA20 is not set
-# CONFIG_SND_LAYLA24 is not set
-# CONFIG_SND_MAESTRO3 is not set
-# CONFIG_SND_MIA is not set
-# CONFIG_SND_MIPS is not set
-# CONFIG_SND_MIRO is not set
-# CONFIG_SND_MIXART is not set
-# CONFIG_SND_MIXER_OSS is not set
-# CONFIG_SND_MONA is not set
-# CONFIG_SND_MPU401 is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_NM256 is not set
-# CONFIG_SND_OPL3SA2 is not set
-# CONFIG_SND_OPTI92X_AD1848 is not set
-# CONFIG_SND_OPTI92X_CS4231 is not set
-# CONFIG_SND_OPTI93X is not set
-CONFIG_SND_OSSEMUL=y
-# CONFIG_SND_OXYGEN is not set
-# CONFIG_SND_PCI is not set
-# CONFIG_SND_PCMCIA is not set
-# CONFIG_SND_PCM is not set
-# CONFIG_SND_PCM_OSS is not set
-CONFIG_SND_PCM_OSS_PLUGINS=y
-# CONFIG_SND_PCXHR is not set
-# CONFIG_SND_PDAUDIOCF is not set
-# CONFIG_SND_RAWMIDI is not set
-# CONFIG_SND_RIPTIDE is not set
-# CONFIG_SND_RME32 is not set
-# CONFIG_SND_RME9652 is not set
-# CONFIG_SND_RME96 is not set
-# CONFIG_SND_RTCTIMER is not set
-# CONFIG_SND_SB16 is not set
-# CONFIG_SND_SB8 is not set
-# CONFIG_SND_SBAWE is not set
-# CONFIG_SND_SEQUENCER is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_SGALAXY is not set
-# CONFIG_SND_SOC is not set
-# CONFIG_SND_SONICVIBES is not set
-# CONFIG_SND_SPI is not set
-# CONFIG_SND_SSCAPE is not set
-# CONFIG_SND_SUPPORT_OLD_API is not set
-# CONFIG_SND_TIMER is not set
-# CONFIG_SND_TRIDENT is not set
-# CONFIG_SND_USB_AUDIO is not set
-# CONFIG_SND_USB_CAIAQ is not set
-# CONFIG_SND_USB_US122L is not set
-# CONFIG_SND_USB_USX2Y is not set
-CONFIG_SND_USB=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VIA82XX is not set
-# CONFIG_SND_VIA82XX_MODEM is not set
-# CONFIG_SND_VIRTUOSO is not set
-# CONFIG_SND_VX222 is not set
-# CONFIG_SND_VXPOCKET is not set
-# CONFIG_SND_WAVEFRONT is not set
-# CONFIG_SND_YMFPCI is not set
-# CONFIG_SNI_RM is not set
-# CONFIG_SOC_CAMERA is not set
-# CONFIG_SOFT_WATCHDOG is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_SONYPI is not set
-# CONFIG_SOUND is not set
-# CONFIG_SOUND_PRIME is not set
-# CONFIG_SPARSEMEM_MANUAL is not set
-# CONFIG_SPARSEMEM_STATIC is not set
-# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
-# CONFIG_SPI_AT25 is not set
-# CONFIG_SPI_DEBUG is not set
-# CONFIG_SPI_GPIO_OLD is not set
-# CONFIG_SPI is not set
-# CONFIG_SPI_MASTER is not set
-# CONFIG_SPI_TLE62X0 is not set
-CONFIG_SPLIT_PTLOCK_CPUS=4
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-# CONFIG_SQUASHFS_VMALLOC is not set
-CONFIG_SQUASHFS=y
-# CONFIG_SSB_BLOCKIO is not set
-# CONFIG_SSB_DEBUG is not set
-# CONFIG_SSB is not set
-# CONFIG_SSB_PCMCIAHOST is not set
-CONFIG_SSB_POSSIBLE=y
-# CONFIG_SSB_SILENT is not set
-# CONFIG_SSFDC is not set
-CONFIG_STACKTRACE_SUPPORT=y
-# CONFIG_STAGING is not set
-CONFIG_STANDALONE=y
-CONFIG_STP=y
-# CONFIG_STRIP is not set
-# CONFIG_SUNDANCE is not set
-# CONFIG_SUNGEM is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_SUNRPC_BIND34 is not set
-# CONFIG_SUNRPC_GSS is not set
-# CONFIG_SUNRPC is not set
-# CONFIG_SUNRPC_REGISTER_V4 is not set
-CONFIG_SUSPEND_UP_POSSIBLE=y
-CONFIG_SWAP=y
-# CONFIG_SWCONFIG is not set
-# CONFIG_SYNCLINK_CS is not set
-CONFIG_SYN_COOKIES=y
-CONFIG_SYSCTL_SYSCALL_CHECK=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_SYSCTL=y
-# CONFIG_SYSFS_DEPRECATED is not set
-# CONFIG_SYSFS_DEPRECATED_V2 is not set
-CONFIG_SYSFS=y
-# CONFIG_SYS_HYPERVISOR is not set
-# CONFIG_SYSV68_PARTITION is not set
-# CONFIG_SYSV_FS is not set
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_SYSVIPC=y
-# CONFIG_TASKSTATS is not set
-# CONFIG_TCG_TPM is not set
-# CONFIG_TCIC is not set
-CONFIG_TCP_CONG_ADVANCED=y
-# CONFIG_TCP_CONG_BIC is not set
-# CONFIG_TCP_CONG_CUBIC is not set
-# CONFIG_TCP_CONG_HSTCP is not set
-# CONFIG_TCP_CONG_HTCP is not set
-# CONFIG_TCP_CONG_HYBLA is not set
-# CONFIG_TCP_CONG_ILLINOIS is not set
-# CONFIG_TCP_CONG_LP is not set
-# CONFIG_TCP_CONG_SCALABLE is not set
-# CONFIG_TCP_CONG_VEGAS is not set
-# CONFIG_TCP_CONG_VENO is not set
-CONFIG_TCP_CONG_WESTWOOD=y
-# CONFIG_TCP_CONG_YEAH is not set
-# CONFIG_TCP_MD5SIG is not set
-# CONFIG_TEXTSEARCH_BM is not set
-# CONFIG_TEXTSEARCH_FSM is not set
-# CONFIG_TEXTSEARCH_KMP is not set
-CONFIG_TEXTSEARCH=y
-# CONFIG_THERMAL_HWMON is not set
-# CONFIG_THERMAL is not set
-# CONFIG_THRUSTMASTER_FF is not set
-CONFIG_TICK_ONESHOT=y
-# CONFIG_TIFM_CORE is not set
-# CONFIG_TIGON3 is not set
-CONFIG_TIMERFD=y
-# CONFIG_TINY_SHMEM is not set
-# CONFIG_TIPC is not set
-# CONFIG_TLAN is not set
-# CONFIG_TMD_HERMES is not set
-# CONFIG_TMPFS_POSIX_ACL is not set
-CONFIG_TMPFS=y
-# CONFIG_TPS65010 is not set
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-# CONFIG_TR is not set
-# CONFIG_TUNER_3036 is not set
-# CONFIG_TUNER_TEA5761 is not set
-# CONFIG_TUN is not set
-# CONFIG_UDF_FS is not set
-CONFIG_UDF_NLS=y
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_UFS_FS is not set
-# CONFIG_UIO is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_UNEVICTABLE_LRU is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_UNIXWARE_DISKLABEL is not set
-CONFIG_UNIX=y
-# CONFIG_UNUSED_SYMBOLS is not set
-# CONFIG_USB_ACECAD is not set
-# CONFIG_USB_ACM is not set
-# CONFIG_USB_ADUTUX is not set
-# CONFIG_USB_AIPTEK is not set
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
-# CONFIG_USB_APPLEDISPLAY is not set
-# CONFIG_USB_APPLETOUCH is not set
-CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB_ARMLINUX=y
-# CONFIG_USB_ATI_REMOTE2 is not set
-# CONFIG_USB_ATI_REMOTE is not set
-# CONFIG_USB_ATM is not set
-# CONFIG_USB_AUERSWALD is not set
-# CONFIG_USB_BANDWIDTH is not set
-CONFIG_USB_BELKIN=y
-# CONFIG_USB_BERRY_CHARGE is not set
-# CONFIG_USB_C67X00_HCD is not set
-# CONFIG_USB_CATC is not set
-# CONFIG_USB_CXACRU is not set
-# CONFIG_USB_CYPRESS_CY7C63 is not set
-# CONFIG_USB_CYTHERM is not set
-# CONFIG_USB_DABUSB is not set
-# CONFIG_USB_DEBUG is not set
-# CONFIG_USB_DEVICE_CLASS is not set
-CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_DSBR is not set
-# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-# CONFIG_USB_EHCI_SPLIT_ISO is not set
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-# CONFIG_USB_EMI26 is not set
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EPSON2888 is not set
-# CONFIG_USB_ET61X251 is not set
-CONFIG_USB_EZUSB=y
-# CONFIG_USB_FTDI_ELAN is not set
-# CONFIG_USB_GADGET is not set
-# CONFIG_USB_GSPCA_CONEX is not set
-# CONFIG_USB_GSPCA_ETOMS is not set
-# CONFIG_USB_GSPCA_FINEPIX is not set
-# CONFIG_USB_GSPCA is not set
-# CONFIG_USB_GSPCA_MARS is not set
-# CONFIG_USB_GSPCA_OV519 is not set
-# CONFIG_USB_GSPCA_PAC207 is not set
-# CONFIG_USB_GSPCA_PAC7311 is not set
-# CONFIG_USB_GSPCA_SONIXB is not set
-# CONFIG_USB_GSPCA_SONIXJ is not set
-# CONFIG_USB_GSPCA_SPCA500 is not set
-# CONFIG_USB_GSPCA_SPCA501 is not set
-# CONFIG_USB_GSPCA_SPCA505 is not set
-# CONFIG_USB_GSPCA_SPCA506 is not set
-# CONFIG_USB_GSPCA_SPCA508 is not set
-# CONFIG_USB_GSPCA_SPCA561 is not set
-# CONFIG_USB_GSPCA_STK014 is not set
-# CONFIG_USB_GSPCA_SUNPLUS is not set
-# CONFIG_USB_GSPCA_T613 is not set
-# CONFIG_USB_GSPCA_TV8532 is not set
-# CONFIG_USB_GSPCA_VC032X is not set
-# CONFIG_USB_GSPCA_ZC3XX is not set
-# CONFIG_USB_HIDDEV is not set
-# CONFIG_USB_HIDINPUT_POWERBOOK is not set
-CONFIG_USB_HIDINPUT=y
-# CONFIG_USB_HID is not set
-# CONFIG_USB_HSO is not set
-# CONFIG_USB_HWA_HCD is not set
-# CONFIG_USB_IBMCAM is not set
-# CONFIG_USB_IDMOUSE is not set
-# CONFIG_USB_IOWARRIOR is not set
-# CONFIG_USB_ISIGHTFW is not set
-# CONFIG_USB is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1760_HCD is not set
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_KBTAB is not set
-# CONFIG_USB_KC2190 is not set
-# CONFIG_USB_KEYSPAN_REMOTE is not set
-# CONFIG_USB_KONICAWC is not set
-# CONFIG_USB_LCD is not set
-# CONFIG_USB_LD is not set
-# CONFIG_USB_LED is not set
-# CONFIG_USB_LEGOTOWER is not set
-# CONFIG_USB_LIBUSUAL is not set
-# CONFIG_USB_M5602 is not set
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-# CONFIG_USB_MON is not set
-# CONFIG_USB_MOUSE is not set
-# CONFIG_USB_NET_AX8817X is not set
-# CONFIG_USB_NET_CDCETHER is not set
-# CONFIG_USB_NET_CDC_SUBSET is not set
-# CONFIG_USB_NET_DM9601 is not set
-# CONFIG_USB_NET_GL620A is not set
-# CONFIG_USB_NET_MCS7830 is not set
-# CONFIG_USB_NET_NET1080 is not set
-# CONFIG_USB_NET_PLUSB is not set
-# CONFIG_USB_NET_RNDIS_HOST is not set
-# CONFIG_USB_NET_RNDIS_WLAN is not set
-# CONFIG_USB_NET_SMSC95XX is not set
-# CONFIG_USB_NET_ZAURUS is not set
-# CONFIG_USB_OHCI_BIG_ENDIAN is not set
-# CONFIG_USB_OHCI_HCD is not set
-# CONFIG_USB_OHCI_HCD_SSB is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-# CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OV511 is not set
-# CONFIG_USBPCWATCHDOG is not set
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_PHIDGET is not set
-# CONFIG_USB_POWERMATE is not set
-# CONFIG_USB_PRINTER is not set
-# CONFIG_USB_QUICKCAM_MESSENGER is not set
-# CONFIG_USB_R8A66597_HCD is not set
-# CONFIG_USB_RIO500 is not set
-# CONFIG_USB_RTL8150 is not set
-# CONFIG_USB_S2255 is not set
-# CONFIG_USB_SE401 is not set
-# CONFIG_USB_SERIAL_AIRCABLE is not set
-# CONFIG_USB_SERIAL_AIRPRIME is not set
-# CONFIG_USB_SERIAL_ARK3116 is not set
-# CONFIG_USB_SERIAL_BELKIN is not set
-# CONFIG_USB_SERIAL_CH341 is not set
-# CONFIG_USB_SERIAL_CP2101 is not set
-# CONFIG_USB_SERIAL_CYBERJACK is not set
-# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
-# CONFIG_USB_SERIAL_DEBUG is not set
-# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
-# CONFIG_USB_SERIAL_EDGEPORT is not set
-# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
-# CONFIG_USB_SERIAL_EMPEG is not set
-# CONFIG_USB_SERIAL_FTDI_SIO is not set
-# CONFIG_USB_SERIAL_FUNSOFT is not set
-# CONFIG_USB_SERIAL_GARMIN is not set
-CONFIG_USB_SERIAL_GENERIC=y
-# CONFIG_USB_SERIAL_HP4X is not set
-# CONFIG_USB_SERIAL_IPAQ is not set
-# CONFIG_USB_SERIAL_IPW is not set
-# CONFIG_USB_SERIAL_IR is not set
-# CONFIG_USB_SERIAL is not set
-# CONFIG_USB_SERIAL_IUU is not set
-# CONFIG_USB_SERIAL_KEYSPAN is not set
-CONFIG_USB_SERIAL_KEYSPAN_MPR=y
-# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
-CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28=y
-CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
-CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
-# CONFIG_USB_SERIAL_KLSI is not set
-# CONFIG_USB_SERIAL_KOBIL_SCT is not set
-# CONFIG_USB_SERIAL_MCT_U232 is not set
-# CONFIG_USB_SERIAL_MOS7720 is not set
-# CONFIG_USB_SERIAL_MOS7840 is not set
-# CONFIG_USB_SERIAL_MOTOROLA is not set
-# CONFIG_USB_SERIAL_NAVMAN is not set
-# CONFIG_USB_SERIAL_OMNINET is not set
-# CONFIG_USB_SERIAL_OPTION is not set
-# CONFIG_USB_SERIAL_OTI6858 is not set
-# CONFIG_USB_SERIAL_PL2303 is not set
-# CONFIG_USB_SERIAL_SAFE is not set
-CONFIG_USB_SERIAL_SAFE_PADDED=y
-# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
-# CONFIG_USB_SERIAL_SPCP8X5 is not set
-# CONFIG_USB_SERIAL_TI is not set
-# CONFIG_USB_SERIAL_VISOR is not set
-# CONFIG_USB_SERIAL_WHITEHEAT is not set
-# CONFIG_USB_SERIAL_XIRCOM is not set
-# CONFIG_USB_SEVSEG is not set
-# CONFIG_USB_SISUSBVGA is not set
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_SN9C102 is not set
-# CONFIG_USB_SPEEDTOUCH is not set
-# CONFIG_USB_STKWEBCAM is not set
-CONFIG_USB_STORAGE_ALAUDA=y
-# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-CONFIG_USB_STORAGE_DATAFAB=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_DPCM=y
-CONFIG_USB_STORAGE_FREECOM=y
-# CONFIG_USB_STORAGE_ISD200 is not set
-# CONFIG_USB_STORAGE is not set
-CONFIG_USB_STORAGE_JUMPSHOT=y
-CONFIG_USB_STORAGE_KARMA=y
-# CONFIG_USB_STORAGE_ONETOUCH is not set
-CONFIG_USB_STORAGE_SDDR09=y
-CONFIG_USB_STORAGE_SDDR55=y
-# CONFIG_USB_STORAGE_SIERRA is not set
-CONFIG_USB_STORAGE_USBAT=y
-# CONFIG_USB_STV680 is not set
-# CONFIG_USB_SUPPORT is not set
-# CONFIG_USB_SUSPEND is not set
-# CONFIG_USB_TEST is not set
-# CONFIG_USB_TMC is not set
-# CONFIG_USB_TOUCHSCREEN is not set
-# CONFIG_USB_TRANCEVIBRATOR is not set
-# CONFIG_USB_UEAGLEATM is not set
-# CONFIG_USB_USBNET is not set
-# CONFIG_USB_USBNET_MII is not set
-# CONFIG_USB_VICAM is not set
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-# CONFIG_USB_VIDEO_CLASS is not set
-# CONFIG_USB_VST is not set
-# CONFIG_USB_W9968CF is not set
-# CONFIG_USB_WACOM is not set
-# CONFIG_USB_WDM is not set
-# CONFIG_USB_WHCI_HCD is not set
-# CONFIG_USB_WUSB_CBAF is not set
-# CONFIG_USB_WUSB is not set
-# CONFIG_USB_XPAD is not set
-# CONFIG_USB_XUSBATM is not set
-# CONFIG_USB_YEALINK is not set
-# CONFIG_USB_ZC0301 is not set
-# CONFIG_USB_ZD1201 is not set
-# CONFIG_USB_ZR364XX is not set
-# CONFIG_USE_GENERIC_SMP_HELPERS is not set
-# CONFIG_UTS_NS is not set
-# CONFIG_UWB is not set
-# CONFIG_VETH is not set
-# CONFIG_VFAT_FS is not set
-# CONFIG_VIA_VELOCITY is not set
-# CONFIG_VIDEO_ADV7170 is not set
-# CONFIG_VIDEO_ADV7175 is not set
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_ALLOW_V4L1 is not set
-# CONFIG_VIDEO_BT819 is not set
-# CONFIG_VIDEO_BT848 is not set
-# CONFIG_VIDEO_BT856 is not set
-# CONFIG_VIDEO_BT866 is not set
-# CONFIG_VIDEO_CAFE_CCIC is not set
-# CONFIG_VIDEO_CAPTURE_DRIVERS is not set
-# CONFIG_VIDEO_CPIA is not set
-# CONFIG_VIDEO_CS5345 is not set
-# CONFIG_VIDEO_CS53L32A is not set
-# CONFIG_VIDEO_CX2341X is not set
-# CONFIG_VIDEO_CX25840 is not set
-# CONFIG_VIDEO_CX88 is not set
-# CONFIG_VIDEO_DEV is not set
-# CONFIG_VIDEO_DPC is not set
-# CONFIG_VIDEO_EM28XX is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
-# CONFIG_VIDEO_HEXIUM_GEMINI is not set
-# CONFIG_VIDEO_HEXIUM_ORION is not set
-# CONFIG_VIDEO_IVTV is not set
-# CONFIG_VIDEO_KS0127 is not set
-# CONFIG_VIDEO_M52790 is not set
-# CONFIG_VIDEO_MEDIA is not set
-# CONFIG_VIDEO_MSP3400 is not set
-# CONFIG_VIDEO_MXB is not set
-# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-# CONFIG_VIDEO_OV7670 is not set
-# CONFIG_VIDEO_OVCAMCHIP is not set
-# CONFIG_VIDEO_PMS is not set
-# CONFIG_VIDEO_PVRUSB2 is not set
-# CONFIG_VIDEO_SAA5246A is not set
-# CONFIG_VIDEO_SAA5249 is not set
-# CONFIG_VIDEO_SAA7110 is not set
-# CONFIG_VIDEO_SAA7111 is not set
-# CONFIG_VIDEO_SAA7114 is not set
-# CONFIG_VIDEO_SAA711X is not set
-# CONFIG_VIDEO_SAA7127 is not set
-# CONFIG_VIDEO_SAA7134 is not set
-# CONFIG_VIDEO_SAA717X is not set
-# CONFIG_VIDEO_SAA7185 is not set
-# CONFIG_VIDEO_SAA7191 is not set
-# CONFIG_VIDEO_SH_MOBILE_CEU is not set
-# CONFIG_VIDEO_STRADIS is not set
-# CONFIG_VIDEO_TCM825X is not set
-# CONFIG_VIDEO_TDA7432 is not set
-# CONFIG_VIDEO_TDA9840 is not set
-# CONFIG_VIDEO_TDA9875 is not set
-# CONFIG_VIDEO_TEA6415C is not set
-# CONFIG_VIDEO_TEA6420 is not set
-# CONFIG_VIDEO_TLV320AIC23B is not set
-# CONFIG_VIDEO_TVAUDIO is not set
-# CONFIG_VIDEO_TVP5150 is not set
-# CONFIG_VIDEO_UPD64031A is not set
-# CONFIG_VIDEO_UPD64083 is not set
-# CONFIG_VIDEO_USBVISION is not set
-CONFIG_VIDEO_V4L1_COMPAT=y
-# CONFIG_VIDEO_V4L1 is not set
-# CONFIG_VIDEO_V4L2_COMMON is not set
-# CONFIG_VIDEO_V4L2 is not set
-# CONFIG_VIDEO_VIVI is not set
-# CONFIG_VIDEO_VP27SMPX is not set
-# CONFIG_VIDEO_VPX3220 is not set
-# CONFIG_VIDEO_WM8739 is not set
-# CONFIG_VIDEO_WM8775 is not set
-# CONFIG_VIDEO_ZORAN is not set
-# CONFIG_VIRQ_DEBUG is not set
-CONFIG_VIRT_TO_BUS=y
-# CONFIG_VIRTUALIZATION is not set
-# CONFIG_VITESSE_PHY is not set
-# CONFIG_VLAN_8021Q_GVRP is not set
-CONFIG_VLAN_8021Q=y
-# CONFIG_VM_EVENT_COUNTERS is not set
-# CONFIG_VMSPLIT_1G is not set
-# CONFIG_VMSPLIT_2G is not set
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VT is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_W1 is not set
-# CONFIG_W1_MASTER_DS1WM is not set
-# CONFIG_W1_MASTER_DS2482 is not set
-# CONFIG_W1_MASTER_DS2490 is not set
-# CONFIG_W1_MASTER_GPIO is not set
-# CONFIG_W1_MASTER_MATROX is not set
-# CONFIG_W1_SLAVE_BQ27000 is not set
-# CONFIG_W1_SLAVE_DS2433 is not set
-# CONFIG_W1_SLAVE_DS2760 is not set
-# CONFIG_W1_SLAVE_SMEM is not set
-# CONFIG_W1_SLAVE_THERM is not set
-# CONFIG_W83627HF_WDT is not set
-# CONFIG_W83697HF_WDT is not set
-# CONFIG_W83877F_WDT is not set
-# CONFIG_W83977F_WDT is not set
-# CONFIG_WAN is not set
-# CONFIG_WAN_ROUTER is not set
-# CONFIG_WANXL is not set
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-CONFIG_WATCHDOG=y
-# CONFIG_WDTPCI is not set
-CONFIG_WIRELESS_EXT_SYSFS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WIRELESS_OLD_REGULATORY=y
-CONFIG_WIRELESS=y
-CONFIG_WLAN_80211=y
-# CONFIG_WLAN_PRE80211 is not set
-# CONFIG_WR_PPMC is not set
-# CONFIG_X25 is not set
-# CONFIG_XFRM_IPCOMP is not set
-# CONFIG_XFRM_MIGRATE is not set
-# CONFIG_XFRM_STATISTICS is not set
-# CONFIG_XFRM_SUB_POLICY is not set
-# CONFIG_XFRM_USER is not set
-CONFIG_XFRM=y
-# CONFIG_XFS_DEBUG is not set
-# CONFIG_XFS_FS is not set
-# CONFIG_XFS_POSIX_ACL is not set
-# CONFIG_XFS_QUOTA is not set
-# CONFIG_XFS_RT is not set
-# CONFIG_XFS_SECURITY is not set
-# CONFIG_XIP_KERNEL is not set
-# CONFIG_YAFFS_FS is not set
-# CONFIG_YAM is not set
-# CONFIG_YELLOWFIN is not set
-# CONFIG_YENTA is not set
-# CONFIG_YENTA_O2 is not set
-# CONFIG_YENTA_RICOH is not set
-# CONFIG_YENTA_TI is not set
-# CONFIG_YENTA_TOSHIBA is not set
-# CONFIG_ZD1211RW_DEBUG is not set
-# CONFIG_ZD1211RW is not set
-# CONFIG_ZEROPLUS_FF is not set
-# CONFIG_ZISOFS_FS is not set
-CONFIG_ZISOFS=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZONE_DMA_FLAG=1
-CONFIG_ZONE_DMA=y
diff --git a/target/linux/generic-2.6/files-2.6.28/drivers/leds/ledtrig-morse.c b/target/linux/generic-2.6/files-2.6.28/drivers/leds/ledtrig-morse.c
deleted file mode 100644 (file)
index cb47480..0000000
+++ /dev/null
@@ -1,365 +0,0 @@
-/*
- *  LED Morse Trigger
- *
- *  Copyright (C) 2007 Gabor Juhos <juhosg at openwrt.org>
- *
- *  This file was based on: drivers/led/ledtrig-timer.c
- *     Copyright 2005-2006 Openedhand Ltd.
- *     Author: Richard Purdie <rpurdie@openedhand.com>
- *
- *  also based on the patch '[PATCH] 2.5.59 morse code panics' posted
- *  in the LKML by Tomas Szepe at Thu, 30 Jan 2003
- *     Copyright (C) 2002 Andrew Rodland <arodland@noln.com>
- *     Copyright (C) 2003 Tomas Szepe <szepe@pinerecords.com>
- *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License version 2 as published
- *  by the Free Software Foundation.
- *
- */
-
-#include <linux/kernel.h>
-#include <linux/version.h>
-#include <linux/module.h>
-#include <linux/jiffies.h>
-#include <linux/init.h>
-#include <linux/list.h>
-#include <linux/spinlock.h>
-#include <linux/device.h>
-#include <linux/sysdev.h>
-#include <linux/timer.h>
-#include <linux/ctype.h>
-#include <linux/leds.h>
-
-#include "leds.h"
-
-#define MORSE_DELAY_BASE       (HZ/2)
-
-#define MORSE_STATE_BLINK_START        0
-#define MORSE_STATE_BLINK_STOP 1
-
-#define MORSE_DIT_LEN  1
-#define MORSE_DAH_LEN  3
-#define MORSE_SPACE_LEN        7
-
-struct morse_trig_data {
-       unsigned long delay;
-       char *msg;
-
-       unsigned char morse;
-       unsigned char state;
-       char *msgpos;
-       struct timer_list timer;
-};
-
-const unsigned char morsetable[] = {
-       0122, 0, 0310, 0, 0, 0163,                              /* "#$%&' */
-       055, 0155, 0, 0, 0163, 0141, 0152, 0051,                /* ()*+,-./ */
-       077, 076, 074, 070, 060, 040, 041, 043, 047, 057,       /* 0-9 */
-       0107, 0125, 0, 0061, 0, 0114, 0,                        /* :;<=>?@ */
-       006, 021, 025, 011, 002, 024, 013, 020, 004,            /* A-I */
-       036, 015, 022, 007, 005, 017, 026, 033, 012,            /* J-R */
-       010, 003, 014, 030, 016, 031, 035, 023,                 /* S-Z */
-       0, 0, 0, 0, 0154                                        /* [\]^_ */
-};
-
-static inline unsigned char tomorse(char c) {
-       if (c >= 'a' && c <= 'z')
-               c = c - 'a' + 'A';
-       if (c >= '"' && c <= '_') {
-               return morsetable[c - '"'];
-       } else
-               return 0;
-}
-
-static inline unsigned long dit_len(struct morse_trig_data *morse_data)
-{
-       return MORSE_DIT_LEN*morse_data->delay;
-}
-
-static inline unsigned long dah_len(struct morse_trig_data *morse_data)
-{
-       return MORSE_DAH_LEN*morse_data->delay;
-}
-
-static inline unsigned long space_len(struct morse_trig_data *morse_data)
-{
-       return MORSE_SPACE_LEN*morse_data->delay;
-}
-
-static void morse_timer_function(unsigned long data)
-{
-       struct led_classdev *led_cdev = (struct led_classdev *)data;
-       struct morse_trig_data *morse_data = led_cdev->trigger_data;
-       unsigned long brightness = LED_OFF;
-       unsigned long delay = 0;
-
-       if (!morse_data->msg)
-               goto set_led;
-
-       switch (morse_data->state) {
-       case MORSE_STATE_BLINK_START:
-               /* Starting a new blink.  We have a valid code in morse. */
-               delay = (morse_data->morse & 001) ? dah_len(morse_data):
-                       dit_len(morse_data);
-               brightness = LED_FULL;
-               morse_data->state = MORSE_STATE_BLINK_STOP;
-               morse_data->morse >>= 1;
-               break;
-       case MORSE_STATE_BLINK_STOP:
-               /* Coming off of a blink. */
-               morse_data->state = MORSE_STATE_BLINK_START;
-
-               if (morse_data->morse > 1) {
-                       /* Not done yet, just a one-dit pause. */
-                       delay = dit_len(morse_data);
-                       break;
-               }
-
-               /* Get a new char, figure out how much space. */
-               /* First time through */
-               if (!morse_data->msgpos)
-                       morse_data->msgpos = (char *)morse_data->msg;
-
-               if (!*morse_data->msgpos) {
-                       /* Repeating */
-                       morse_data->msgpos = (char *)morse_data->msg;
-                       delay = space_len(morse_data);
-               } else {
-                       /* Inter-letter space */
-                       delay = dah_len(morse_data);
-               }
-
-               if (!(morse_data->morse = tomorse(*morse_data->msgpos))) {
-                       delay = space_len(morse_data);
-                       /* And get us back here */
-                       morse_data->state = MORSE_STATE_BLINK_STOP;
-               }
-               morse_data->msgpos++;
-               break;
-       }
-
-       mod_timer(&morse_data->timer, jiffies + msecs_to_jiffies(delay));
-
-set_led:
-       led_set_brightness(led_cdev, brightness);
-}
-
-static ssize_t _morse_delay_show(struct led_classdev *led_cdev, char *buf)
-{
-       struct morse_trig_data *morse_data = led_cdev->trigger_data;
-
-       sprintf(buf, "%lu\n", morse_data->delay);
-
-       return strlen(buf) + 1;
-}
-
-static ssize_t _morse_delay_store(struct led_classdev *led_cdev,
-               const char *buf, size_t size)
-{
-       struct morse_trig_data *morse_data = led_cdev->trigger_data;
-       char *after;
-       unsigned long state = simple_strtoul(buf, &after, 10);
-       size_t count = after - buf;
-       int ret = -EINVAL;
-
-       if (*after && isspace(*after))
-               count++;
-
-       if (count == size) {
-               morse_data->delay = state;
-               mod_timer(&morse_data->timer, jiffies + 1);
-               ret = count;
-       }
-
-       return ret;
-}
-
-static ssize_t _morse_msg_show(struct led_classdev *led_cdev, char *buf)
-{
-       struct morse_trig_data *morse_data = led_cdev->trigger_data;
-
-       if (!morse_data->msg)
-               sprintf(buf, "<none>\n");
-       else
-               sprintf(buf, "%s\n", morse_data->msg);
-
-       return strlen(buf) + 1;
-}
-
-static ssize_t _morse_msg_store(struct led_classdev *led_cdev,
-               const char *buf, size_t size)
-{
-       struct morse_trig_data *morse_data = led_cdev->trigger_data;
-       char *m;
-
-       m = kmalloc(size, GFP_KERNEL);
-       if (!m)
-               return -ENOMEM;
-
-       memcpy(m,buf,size);
-       m[size]='\0';
-
-       if (morse_data->msg)
-               kfree(morse_data->msg);
-
-       morse_data->msg = m;
-       morse_data->msgpos = NULL;
-       morse_data->state = MORSE_STATE_BLINK_STOP;
-
-       mod_timer(&morse_data->timer, jiffies + 1);
-
-       return size;
-}
-
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)
-static ssize_t morse_delay_show(struct device *dev,
-               struct device_attribute *attr, char *buf)
-{
-       struct led_classdev *led_cdev = dev_get_drvdata(dev);
-
-       return _morse_delay_show(led_cdev, buf);
-}
-
-static ssize_t morse_delay_store(struct device *dev,
-               struct device_attribute *attr, const char *buf, size_t size)
-{
-       struct led_classdev *led_cdev = dev_get_drvdata(dev);
-
-       return _morse_delay_store(led_cdev, buf, size);
-}
-
-static ssize_t morse_msg_show(struct device *dev,
-               struct device_attribute *attr, char *buf)
-{
-       struct led_classdev *led_cdev = dev_get_drvdata(dev);
-
-       return _morse_msg_show(led_cdev, buf);
-}
-
-static ssize_t morse_msg_store(struct device *dev,
-               struct device_attribute *attr, const char *buf, size_t size)
-{
-       struct led_classdev *led_cdev = dev_get_drvdata(dev);
-
-       return _morse_msg_store(led_cdev, buf, size);
-}
-
-static DEVICE_ATTR(delay, 0644, morse_delay_show, morse_delay_store);
-static DEVICE_ATTR(message, 0644, morse_msg_show, morse_msg_store);
-
-#define led_device_create_file(leddev, attr) \
-       device_create_file(leddev->dev, &dev_attr_ ## attr)
-#define led_device_remove_file(leddev, attr) \
-       device_remove_file(leddev->dev, &dev_attr_ ## attr)
-
-#else
-static ssize_t morse_delay_show(struct class_device *dev, char *buf)
-{
-       struct led_classdev *led_cdev = class_get_devdata(dev);
-
-       return _morse_delay_show(led_cdev, buf);
-}
-
-static ssize_t morse_delay_store(struct class_device *dev, const char *buf,
-               size_t size)
-{
-       struct led_classdev *led_cdev = class_get_devdata(dev);
-
-       return _morse_delay_store(led_cdev, buf, size);
-}
-
-static ssize_t morse_msg_show(struct class_device *dev, char *buf)
-{
-       struct led_classdev *led_cdev = class_get_devdata(dev);
-
-       return _morse_msg_show(led_cdev, buf);
-}
-
-static ssize_t morse_msg_store(struct class_device *dev, const char *buf,
-                               size_t size)
-{
-       struct led_classdev *led_cdev = class_get_devdata(dev);
-
-       return _morse_msg_store(led_cdev, buf, size);
-}
-
-static CLASS_DEVICE_ATTR(delay, 0644, morse_delay_show, morse_delay_store);
-static CLASS_DEVICE_ATTR(message, 0644, morse_msg_show, morse_msg_store);
-
-#define led_device_create_file(leddev, attr) \
-       class_device_create_file(leddev->class_dev, &class_device_attr_ ## attr)
-#define led_device_remove_file(leddev, attr) \
-       class_device_remove_file(leddev->class_dev, &class_device_attr_ ## attr)
-
-#endif
-
-static void morse_trig_activate(struct led_classdev *led_cdev)
-{
-       struct morse_trig_data *morse_data;
-       int rc;
-
-       morse_data = kzalloc(sizeof(*morse_data), GFP_KERNEL);
-       if (!morse_data)
-               return;
-
-       morse_data->delay = MORSE_DELAY_BASE;
-       init_timer(&morse_data->timer);
-       morse_data->timer.function = morse_timer_function;
-       morse_data->timer.data = (unsigned long)led_cdev;
-
-       rc = led_device_create_file(led_cdev, delay);
-       if (rc) goto err;
-
-       rc = led_device_create_file(led_cdev, message);
-       if (rc) goto err_delay;
-
-       led_cdev->trigger_data = morse_data;
-
-       return;
-
-err_delay:
-       led_device_remove_file(led_cdev, delay);
-err:
-       kfree(morse_data);
-}
-
-static void morse_trig_deactivate(struct led_classdev *led_cdev)
-{
-       struct morse_trig_data *morse_data = led_cdev->trigger_data;
-
-       if (!morse_data)
-               return;
-
-       led_device_remove_file(led_cdev, message);
-       led_device_remove_file(led_cdev, delay);
-
-       del_timer_sync(&morse_data->timer);
-       if (morse_data->msg)
-               kfree(morse_data->msg);
-
-       kfree(morse_data);
-}
-
-static struct led_trigger morse_led_trigger = {
-       .name           = "morse",
-       .activate       = morse_trig_activate,
-       .deactivate     = morse_trig_deactivate,
-};
-
-static int __init morse_trig_init(void)
-{
-       return led_trigger_register(&morse_led_trigger);
-}
-
-static void __exit morse_trig_exit(void)
-{
-       led_trigger_unregister(&morse_led_trigger);
-}
-
-module_init(morse_trig_init);
-module_exit(morse_trig_exit);
-
-MODULE_AUTHOR("Gabor Juhos <juhosg at openwrt.org>");
-MODULE_DESCRIPTION("Morse LED trigger");
-MODULE_LICENSE("GPL");
diff --git a/target/linux/generic-2.6/files-2.6.28/drivers/leds/ledtrig-netdev.c b/target/linux/generic-2.6/files-2.6.28/drivers/leds/ledtrig-netdev.c
deleted file mode 100644 (file)
index fac3571..0000000
+++ /dev/null
@@ -1,451 +0,0 @@
-/*
- * LED Kernel Netdev Trigger
- *
- * Toggles the LED to reflect the link and traffic state of a named net device
- *
- * Copyright 2007 Oliver Jowett <oliver@opencloud.com>
- *
- * Derived from ledtrig-timer.c which is:
- *  Copyright 2005-2006 Openedhand Ltd.
- *  Author: Richard Purdie <rpurdie@openedhand.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- */
-
-#include <linux/module.h>
-#include <linux/jiffies.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/list.h>
-#include <linux/spinlock.h>
-#include <linux/device.h>
-#include <linux/sysdev.h>
-#include <linux/netdevice.h>
-#include <linux/timer.h>
-#include <linux/ctype.h>
-#include <linux/leds.h>
-#include <linux/version.h>
-
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
-#include <net/net_namespace.h>
-#endif
-
-#include "leds.h"
-
-/*
- * Configurable sysfs attributes:
- *
- * device_name - network device name to monitor
- *
- * interval - duration of LED blink, in milliseconds
- *
- * mode - either "none" (LED is off) or a space separated list of one or more of:
- *   link: LED's normal state reflects whether the link is up (has carrier) or not
- *   tx:   LED blinks on transmitted data
- *   rx:   LED blinks on receive data
- * 
- * Some suggestions:
- *
- *  Simple link status LED:
- *  $ echo netdev >someled/trigger
- *  $ echo eth0 >someled/device_name
- *  $ echo link >someled/mode
- *
- *  Ethernet-style link/activity LED:
- *  $ echo netdev >someled/trigger
- *  $ echo eth0 >someled/device_name
- *  $ echo "link tx rx" >someled/mode
- *
- *  Modem-style tx/rx LEDs:
- *  $ echo netdev >led1/trigger
- *  $ echo ppp0 >led1/device_name
- *  $ echo tx >led1/mode
- *  $ echo netdev >led2/trigger
- *  $ echo ppp0 >led2/device_name
- *  $ echo rx >led2/mode
- *
- */
-
-#define MODE_LINK 1
-#define MODE_TX   2
-#define MODE_RX   4
-
-struct led_netdev_data {
-       rwlock_t lock;
-
-       struct timer_list timer;
-       struct notifier_block notifier;
-
-       struct led_classdev *led_cdev;
-       struct net_device *net_dev;
-
-       char device_name[IFNAMSIZ];
-       unsigned interval;
-       unsigned mode;
-       unsigned link_up;
-       unsigned last_activity;
-};
-
-static void set_baseline_state(struct led_netdev_data *trigger_data)
-{
-       if ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up)
-               led_set_brightness(trigger_data->led_cdev, LED_FULL);
-       else
-               led_set_brightness(trigger_data->led_cdev, LED_OFF);
-
-       if ((trigger_data->mode & (MODE_TX | MODE_RX)) != 0 && trigger_data->link_up)
-               mod_timer(&trigger_data->timer, jiffies + trigger_data->interval);
-       else
-               del_timer(&trigger_data->timer);
-}
-
-static ssize_t led_device_name_show(struct device *dev,
-                                   struct device_attribute *attr, char *buf)
-{
-       struct led_classdev *led_cdev = dev_get_drvdata(dev);
-       struct led_netdev_data *trigger_data = led_cdev->trigger_data;
-
-       read_lock(&trigger_data->lock);
-       sprintf(buf, "%s\n", trigger_data->device_name);
-       read_unlock(&trigger_data->lock);
-
-       return strlen(buf) + 1;
-}
-
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
-extern struct net init_net;
-#endif
-
-static ssize_t led_device_name_store(struct device *dev,
-                                    struct device_attribute *attr, const char *buf, size_t size)
-{
-       struct led_classdev *led_cdev = dev_get_drvdata(dev);
-       struct led_netdev_data *trigger_data = led_cdev->trigger_data;
-
-       if (size < 0 || size >= IFNAMSIZ)
-               return -EINVAL;
-
-       write_lock(&trigger_data->lock);
-
-       strcpy(trigger_data->device_name, buf);
-       if (size > 0 && trigger_data->device_name[size-1] == '\n')
-               trigger_data->device_name[size-1] = 0;
-
-       if (trigger_data->device_name[0] != 0) {
-               /* check for existing device to update from */
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
-               trigger_data->net_dev = dev_get_by_name(&init_net, trigger_data->device_name);
-#else
-               trigger_data->net_dev = dev_get_by_name(trigger_data->device_name);
-#endif
-               if (trigger_data->net_dev != NULL)
-                       trigger_data->link_up = (dev_get_flags(trigger_data->net_dev) & IFF_LOWER_UP) != 0;
-               set_baseline_state(trigger_data); /* updates LEDs, may start timers */
-       }
-
-       write_unlock(&trigger_data->lock);
-       return size;
-}
-
-static DEVICE_ATTR(device_name, 0644, led_device_name_show, led_device_name_store);
-
-static ssize_t led_mode_show(struct device *dev,
-                            struct device_attribute *attr, char *buf)
-{
-       struct led_classdev *led_cdev = dev_get_drvdata(dev);
-       struct led_netdev_data *trigger_data = led_cdev->trigger_data;
-
-       read_lock(&trigger_data->lock);
-
-       if (trigger_data->mode == 0) {
-               strcpy(buf, "none\n");
-       } else {
-               if (trigger_data->mode & MODE_LINK)
-                       strcat(buf, "link ");
-               if (trigger_data->mode & MODE_TX)
-                       strcat(buf, "tx ");
-               if (trigger_data->mode & MODE_RX)
-                       strcat(buf, "rx ");
-               strcat(buf, "\n");
-       }
-
-       read_unlock(&trigger_data->lock);
-
-       return strlen(buf)+1;
-}
-
-static ssize_t led_mode_store(struct device *dev,
-                             struct device_attribute *attr, const char *buf, size_t size)
-{
-       struct led_classdev *led_cdev = dev_get_drvdata(dev);
-       struct led_netdev_data *trigger_data = led_cdev->trigger_data;
-       char copybuf[1024];
-       int new_mode = -1;
-       char *p, *token;
-
-       /* take a copy since we don't want to trash the inbound buffer when using strsep */
-       strncpy(copybuf, buf, sizeof(copybuf));
-       copybuf[1023] = 0;
-       p = copybuf;
-
-       while ((token = strsep(&p, " \t\n")) != NULL) {
-               if (!*token)
-                       continue;
-
-               if (new_mode == -1)
-                       new_mode = 0;
-
-               if (!strcmp(token, "none"))
-                       new_mode = 0;
-               else if (!strcmp(token, "tx"))
-                       new_mode |= MODE_TX;
-               else if (!strcmp(token, "rx"))
-                       new_mode |= MODE_RX;
-               else if (!strcmp(token, "link"))
-                       new_mode |= MODE_LINK;
-               else
-                       return -EINVAL;
-       }
-
-       if (new_mode == -1)
-               return -EINVAL;
-
-       write_lock(&trigger_data->lock);
-       trigger_data->mode = new_mode;
-       set_baseline_state(trigger_data);
-       write_unlock(&trigger_data->lock);
-
-       return size;
-}
-
-static DEVICE_ATTR(mode, 0644, led_mode_show, led_mode_store);
-
-static ssize_t led_interval_show(struct device *dev,
-                                struct device_attribute *attr, char *buf)
-{
-       struct led_classdev *led_cdev = dev_get_drvdata(dev);
-       struct led_netdev_data *trigger_data = led_cdev->trigger_data;
-
-       read_lock(&trigger_data->lock);
-       sprintf(buf, "%u\n", jiffies_to_msecs(trigger_data->interval));
-       read_unlock(&trigger_data->lock);
-
-       return strlen(buf) + 1;
-}
-
-static ssize_t led_interval_store(struct device *dev,
-                                 struct device_attribute *attr, const char *buf, size_t size)
-{
-       struct led_classdev *led_cdev = dev_get_drvdata(dev);
-       struct led_netdev_data *trigger_data = led_cdev->trigger_data;
-       int ret = -EINVAL;
-       char *after;
-       unsigned long value = simple_strtoul(buf, &after, 10);
-       size_t count = after - buf;
-
-       if (*after && isspace(*after))
-               count++;
-
-       /* impose some basic bounds on the timer interval */
-       if (count == size && value >= 5 && value <= 10000) {
-               write_lock(&trigger_data->lock);
-               trigger_data->interval = msecs_to_jiffies(value);
-               set_baseline_state(trigger_data); // resets timer
-               write_unlock(&trigger_data->lock);
-               ret = count;
-       }
-
-       return ret;
-}
-
-static DEVICE_ATTR(interval, 0644, led_interval_show, led_interval_store);
-
-static int netdev_trig_notify(struct notifier_block *nb,
-                             unsigned long evt,
-                             void *dv)
-{
-       struct net_device *dev = dv;
-       struct led_netdev_data *trigger_data = container_of(nb, struct led_netdev_data, notifier);
-
-       if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER)
-               return NOTIFY_DONE;
-
-       write_lock(&trigger_data->lock);
-
-       if (strcmp(dev->name, trigger_data->device_name))
-               goto done;
-
-       if (evt == NETDEV_REGISTER) {
-               if (trigger_data->net_dev != NULL)
-                       dev_put(trigger_data->net_dev);
-               dev_hold(dev);
-               trigger_data->net_dev = dev;
-               trigger_data->link_up = 0;
-               goto done;
-       }
-
-       if (evt == NETDEV_UNREGISTER && trigger_data->net_dev != NULL) {
-               dev_put(trigger_data->net_dev);
-               trigger_data->net_dev = NULL;
-               goto done;
-       }
-
-       /* UP / DOWN / CHANGE */
-
-       trigger_data->link_up = (evt != NETDEV_DOWN && netif_carrier_ok(dev));
-       set_baseline_state(trigger_data);
-
-done:
-       write_unlock(&trigger_data->lock);
-       return NOTIFY_DONE;
-}
-
-/* here's the real work! */
-static void netdev_trig_timer(unsigned long arg)
-{
-       struct led_netdev_data *trigger_data = (struct led_netdev_data *)arg;
-       struct net_device_stats *dev_stats;
-       unsigned new_activity;
-
-       write_lock(&trigger_data->lock);
-
-       if (!trigger_data->link_up || !trigger_data->net_dev || (trigger_data->mode & (MODE_TX | MODE_RX)) == 0) {
-               /* we don't need to do timer work, just reflect link state. */
-               led_set_brightness(trigger_data->led_cdev, ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up) ? LED_FULL : LED_OFF);
-               goto no_restart;
-       }
-
-       dev_stats = trigger_data->net_dev->get_stats(trigger_data->net_dev);
-       new_activity =
-               ((trigger_data->mode & MODE_TX) ? dev_stats->tx_packets : 0) +
-               ((trigger_data->mode & MODE_RX) ? dev_stats->rx_packets : 0);
-
-       if (trigger_data->mode & MODE_LINK) {
-               /* base state is ON (link present) */
-               /* if there's no link, we don't get this far and the LED is off */
-
-               /* OFF -> ON always */
-               /* ON -> OFF on activity */
-               if (trigger_data->led_cdev->brightness == LED_OFF) {
-                       led_set_brightness(trigger_data->led_cdev, LED_FULL);
-               } else if (trigger_data->last_activity != new_activity) {
-                       led_set_brightness(trigger_data->led_cdev, LED_OFF);
-               }
-       } else {
-               /* base state is OFF */
-               /* ON -> OFF always */
-               /* OFF -> ON on activity */
-               if (trigger_data->led_cdev->brightness == LED_FULL) {
-                       led_set_brightness(trigger_data->led_cdev, LED_OFF);
-               } else if (trigger_data->last_activity != new_activity) {
-                       led_set_brightness(trigger_data->led_cdev, LED_FULL);
-               }
-       }
-
-       trigger_data->last_activity = new_activity;
-       mod_timer(&trigger_data->timer, jiffies + trigger_data->interval);
-
-no_restart:
-       write_unlock(&trigger_data->lock);
-}
-
-static void netdev_trig_activate(struct led_classdev *led_cdev)
-{
-       struct led_netdev_data *trigger_data;
-       int rc;
-
-       trigger_data = kzalloc(sizeof(struct led_netdev_data), GFP_KERNEL);
-       if (!trigger_data)
-               return;
-
-       rwlock_init(&trigger_data->lock);
-
-       trigger_data->notifier.notifier_call = netdev_trig_notify;
-       trigger_data->notifier.priority = 10;
-
-       setup_timer(&trigger_data->timer, netdev_trig_timer, (unsigned long) trigger_data);
-
-       trigger_data->led_cdev = led_cdev;
-       trigger_data->net_dev = NULL;
-       trigger_data->device_name[0] = 0;
-
-       trigger_data->mode = 0;
-       trigger_data->interval = msecs_to_jiffies(50);
-       trigger_data->link_up = 0;
-       trigger_data->last_activity = 0;
-
-       led_cdev->trigger_data = trigger_data;
-
-       rc = device_create_file(led_cdev->dev, &dev_attr_device_name);
-       if (rc)
-               goto err_out;
-       rc = device_create_file(led_cdev->dev, &dev_attr_mode);
-       if (rc)
-               goto err_out_device_name;
-       rc = device_create_file(led_cdev->dev, &dev_attr_interval);
-       if (rc)
-               goto err_out_mode;
-
-       register_netdevice_notifier(&trigger_data->notifier);
-       return;
-
-err_out_mode:
-       device_remove_file(led_cdev->dev, &dev_attr_mode);
-err_out_device_name:
-       device_remove_file(led_cdev->dev, &dev_attr_device_name);
-err_out:
-       led_cdev->trigger_data = NULL;
-       kfree(trigger_data);
-}
-
-static void netdev_trig_deactivate(struct led_classdev *led_cdev)
-{
-       struct led_netdev_data *trigger_data = led_cdev->trigger_data;
-
-       if (trigger_data) {
-               unregister_netdevice_notifier(&trigger_data->notifier);
-
-               device_remove_file(led_cdev->dev, &dev_attr_device_name);
-               device_remove_file(led_cdev->dev, &dev_attr_mode);
-               device_remove_file(led_cdev->dev, &dev_attr_interval);
-
-               write_lock(&trigger_data->lock);
-
-               if (trigger_data->net_dev) {
-                       dev_put(trigger_data->net_dev);
-                       trigger_data->net_dev = NULL;
-               }
-
-               write_unlock(&trigger_data->lock);
-
-               del_timer_sync(&trigger_data->timer);
-
-               kfree(trigger_data);
-       }
-}
-
-static struct led_trigger netdev_led_trigger = {
-       .name     = "netdev",
-       .activate = netdev_trig_activate,
-       .deactivate = netdev_trig_deactivate,
-};
-
-static int __init netdev_trig_init(void)
-{
-       return led_trigger_register(&netdev_led_trigger);
-}
-
-static void __exit netdev_trig_exit(void)
-{
-       led_trigger_unregister(&netdev_led_trigger);
-}
-
-module_init(netdev_trig_init);
-module_exit(netdev_trig_exit);
-
-MODULE_AUTHOR("Oliver Jowett <oliver@opencloud.com>");
-MODULE_DESCRIPTION("Netdev LED trigger");
-MODULE_LICENSE("GPL");
diff --git a/target/linux/generic-2.6/patches-2.6.28/001-squashfs.patch b/target/linux/generic-2.6/patches-2.6.28/001-squashfs.patch
deleted file mode 100644 (file)
index 606f150..0000000
+++ /dev/null
@@ -1,4170 +0,0 @@
---- a/fs/Kconfig
-+++ b/fs/Kconfig
-@@ -931,6 +931,71 @@ config CRAMFS
-         If unsure, say N.
-+config SQUASHFS
-+      tristate "SquashFS 3.0 - Squashed file system support"
-+      select ZLIB_INFLATE
-+      help
-+        Saying Y here includes support for SquashFS 3.0 (a Compressed Read-Only File
-+        System).  Squashfs is a highly compressed read-only filesystem for Linux.
-+        It uses zlib compression to compress both files, inodes and directories.
-+        Inodes in the system are very small and all blocks are packed to minimise
-+        data overhead. Block sizes greater than 4K are supported up to a maximum of 64K.
-+        SquashFS 3.0 supports 64 bit filesystems and files (larger than 4GB), full
-+        uid/gid information, hard links and timestamps.
-+
-+        Squashfs is intended for general read-only filesystem use, for archival
-+        use (i.e. in cases where a .tar.gz file may be used), and in embedded
-+        systems where low overhead is needed.  Further information and filesystem tools
-+        are available from http://squashfs.sourceforge.net.
-+
-+        If you want to compile this as a module ( = code which can be
-+        inserted in and removed from the running kernel whenever you want),
-+        say M here and read <file:Documentation/modules.txt>.  The module
-+        will be called squashfs.  Note that the root file system (the one
-+        containing the directory /) cannot be compiled as a module.
-+
-+        If unsure, say N.
-+
-+config SQUASHFS_EMBEDDED
-+
-+      bool "Additional options for memory-constrained systems"
-+      depends on SQUASHFS
-+      default n
-+      help
-+        Saying Y here allows you to specify cache sizes and how Squashfs
-+        allocates memory.  This is only intended for memory constrained
-+        systems.
-+
-+        If unsure, say N.
-+
-+config SQUASHFS_FRAGMENT_CACHE_SIZE
-+      int "Number of fragments cached" if SQUASHFS_EMBEDDED
-+      depends on SQUASHFS
-+      default "3"
-+      help
-+        By default SquashFS caches the last 3 fragments read from
-+        the filesystem.  Increasing this amount may mean SquashFS
-+        has to re-read fragments less often from disk, at the expense
-+        of extra system memory.  Decreasing this amount will mean
-+        SquashFS uses less memory at the expense of extra reads from disk.
-+
-+        Note there must be at least one cached fragment.  Anything
-+        much more than three will probably not make much difference.
-+
-+config SQUASHFS_VMALLOC
-+      bool "Use Vmalloc rather than Kmalloc" if SQUASHFS_EMBEDDED
-+      depends on SQUASHFS
-+      default n
-+      help
-+        By default SquashFS uses kmalloc to obtain fragment cache memory.
-+        Kmalloc memory is the standard kernel allocator, but it can fail
-+        on memory constrained systems.  Because of the way Vmalloc works,
-+        Vmalloc can succeed when kmalloc fails.  Specifying this option
-+        will make SquashFS always use Vmalloc to allocate the
-+        fragment cache memory.
-+
-+        If unsure, say N.
-+
- config VXFS_FS
-       tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)"
-       depends on BLOCK
---- a/fs/Makefile
-+++ b/fs/Makefile
-@@ -76,6 +76,7 @@ obj-$(CONFIG_JBD)            += jbd/
- obj-$(CONFIG_JBD2)            += jbd2/
- obj-$(CONFIG_EXT2_FS)         += ext2/
- obj-$(CONFIG_CRAMFS)          += cramfs/
-+obj-$(CONFIG_SQUASHFS)                += squashfs/
- obj-y                         += ramfs/
- obj-$(CONFIG_HUGETLBFS)               += hugetlbfs/
- obj-$(CONFIG_CODA_FS)         += coda/
---- /dev/null
-+++ b/fs/squashfs/inode.c
-@@ -0,0 +1,2122 @@
-+/*
-+ * Squashfs - a compressed read only filesystem for Linux
-+ *
-+ * Copyright (c) 2002, 2003, 2004, 2005, 2006
-+ * Phillip Lougher <phillip@lougher.org.uk>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2,
-+ * or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ *
-+ * inode.c
-+ */
-+
-+#include <linux/types.h>
-+#include <linux/squashfs_fs.h>
-+#include <linux/module.h>
-+#include <linux/errno.h>
-+#include <linux/slab.h>
-+#include <linux/fs.h>
-+#include <linux/smp_lock.h>
-+#include <linux/slab.h>
-+#include <linux/squashfs_fs_sb.h>
-+#include <linux/squashfs_fs_i.h>
-+#include <linux/buffer_head.h>
-+#include <linux/vfs.h>
-+#include <linux/init.h>
-+#include <linux/dcache.h>
-+#include <linux/wait.h>
-+#include <linux/zlib.h>
-+#include <linux/blkdev.h>
-+#include <linux/vmalloc.h>
-+#include <asm/uaccess.h>
-+#include <asm/semaphore.h>
-+
-+#include "squashfs.h"
-+
-+static void squashfs_put_super(struct super_block *);
-+static int squashfs_statfs(struct dentry *, struct kstatfs *);
-+static int squashfs_symlink_readpage(struct file *file, struct page *page);
-+static int squashfs_readpage(struct file *file, struct page *page);
-+static int squashfs_readpage4K(struct file *file, struct page *page);
-+static int squashfs_readdir(struct file *, void *, filldir_t);
-+static struct inode *squashfs_alloc_inode(struct super_block *sb);
-+static void squashfs_destroy_inode(struct inode *inode);
-+static int init_inodecache(void);
-+static void destroy_inodecache(void);
-+static struct dentry *squashfs_lookup(struct inode *, struct dentry *,
-+                              struct nameidata *);
-+static struct inode *squashfs_iget(struct super_block *s, squashfs_inode_t inode);
-+static long long read_blocklist(struct inode *inode, int index,
-+                              int readahead_blks, char *block_list,
-+                              unsigned short **block_p, unsigned int *bsize);
-+static int squashfs_get_sb(struct file_system_type *, int,
-+                      const char *, void *, struct vfsmount *);
-+
-+
-+static z_stream stream;
-+
-+static struct file_system_type squashfs_fs_type = {
-+      .owner = THIS_MODULE,
-+      .name = "squashfs",
-+      .get_sb = squashfs_get_sb,
-+      .kill_sb = kill_block_super,
-+      .fs_flags = FS_REQUIRES_DEV
-+};
-+
-+static unsigned char squashfs_filetype_table[] = {
-+      DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK
-+};
-+
-+static struct super_operations squashfs_ops = {
-+      .alloc_inode = squashfs_alloc_inode,
-+      .destroy_inode = squashfs_destroy_inode,
-+      .statfs = squashfs_statfs,
-+      .put_super = squashfs_put_super,
-+};
-+
-+SQSH_EXTERN struct address_space_operations squashfs_symlink_aops = {
-+      .readpage = squashfs_symlink_readpage
-+};
-+
-+SQSH_EXTERN struct address_space_operations squashfs_aops = {
-+      .readpage = squashfs_readpage
-+};
-+
-+SQSH_EXTERN struct address_space_operations squashfs_aops_4K = {
-+      .readpage = squashfs_readpage4K
-+};
-+
-+static struct file_operations squashfs_dir_ops = {
-+      .read = generic_read_dir,
-+      .readdir = squashfs_readdir
-+};
-+
-+SQSH_EXTERN struct inode_operations squashfs_dir_inode_ops = {
-+      .lookup = squashfs_lookup
-+};
-+
-+
-+static struct buffer_head *get_block_length(struct super_block *s,
-+                              int *cur_index, int *offset, int *c_byte)
-+{
-+      struct squashfs_sb_info *msblk = s->s_fs_info;
-+      unsigned short temp;
-+      struct buffer_head *bh;
-+
-+      if (!(bh = sb_bread(s, *cur_index)))
-+              goto out;
-+
-+      if (msblk->devblksize - *offset == 1) {
-+              if (msblk->swap)
-+                      ((unsigned char *) &temp)[1] = *((unsigned char *)
-+                              (bh->b_data + *offset));
-+              else
-+                      ((unsigned char *) &temp)[0] = *((unsigned char *)
-+                              (bh->b_data + *offset));
-+              brelse(bh);
-+              if (!(bh = sb_bread(s, ++(*cur_index))))
-+                      goto out;
-+              if (msblk->swap)
-+                      ((unsigned char *) &temp)[0] = *((unsigned char *)
-+                              bh->b_data);
-+              else
-+                      ((unsigned char *) &temp)[1] = *((unsigned char *)
-+                              bh->b_data);
-+              *c_byte = temp;
-+              *offset = 1;
-+      } else {
-+              if (msblk->swap) {
-+                      ((unsigned char *) &temp)[1] = *((unsigned char *)
-+                              (bh->b_data + *offset));
-+                      ((unsigned char *) &temp)[0] = *((unsigned char *)
-+                              (bh->b_data + *offset + 1));
-+              } else {
-+                      ((unsigned char *) &temp)[0] = *((unsigned char *)
-+                              (bh->b_data + *offset));
-+                      ((unsigned char *) &temp)[1] = *((unsigned char *)
-+                              (bh->b_data + *offset + 1));
-+              }
-+              *c_byte = temp;
-+              *offset += 2;
-+      }
-+
-+      if (SQUASHFS_CHECK_DATA(msblk->sblk.flags)) {
-+              if (*offset == msblk->devblksize) {
-+                      brelse(bh);
-+                      if (!(bh = sb_bread(s, ++(*cur_index))))
-+                              goto out;
-+                      *offset = 0;
-+              }
-+              if (*((unsigned char *) (bh->b_data + *offset)) !=
-+                                              SQUASHFS_MARKER_BYTE) {
-+                      ERROR("Metadata block marker corrupt @ %x\n",
-+                                              *cur_index);
-+                      brelse(bh);
-+                      goto out;
-+              }
-+              (*offset)++;
-+      }
-+      return bh;
-+
-+out:
-+      return NULL;
-+}
-+
-+
-+SQSH_EXTERN unsigned int squashfs_read_data(struct super_block *s, char *buffer,
-+                      long long index, unsigned int length,
-+                      long long *next_index)
-+{
-+      struct squashfs_sb_info *msblk = s->s_fs_info;
-+      struct buffer_head *bh[((SQUASHFS_FILE_MAX_SIZE - 1) >>
-+                      msblk->devblksize_log2) + 2];
-+      unsigned int offset = index & ((1 << msblk->devblksize_log2) - 1);
-+      unsigned int cur_index = index >> msblk->devblksize_log2;
-+      int bytes, avail_bytes, b = 0, k;
-+      char *c_buffer;
-+      unsigned int compressed;
-+      unsigned int c_byte = length;
-+
-+      if (c_byte) {
-+              bytes = msblk->devblksize - offset;
-+              compressed = SQUASHFS_COMPRESSED_BLOCK(c_byte);
-+              c_buffer = compressed ? msblk->read_data : buffer;
-+              c_byte = SQUASHFS_COMPRESSED_SIZE_BLOCK(c_byte);
-+
-+              TRACE("Block @ 0x%llx, %scompressed size %d\n", index, compressed
-+                                      ? "" : "un", (unsigned int) c_byte);
-+
-+              if (!(bh[0] = sb_getblk(s, cur_index)))
-+                      goto block_release;
-+
-+              for (b = 1; bytes < c_byte; b++) {
-+                      if (!(bh[b] = sb_getblk(s, ++cur_index)))
-+                              goto block_release;
-+                      bytes += msblk->devblksize;
-+              }
-+              ll_rw_block(READ, b, bh);
-+      } else {
-+              if (!(bh[0] = get_block_length(s, &cur_index, &offset,
-+                                                              &c_byte)))
-+                      goto read_failure;
-+
-+              bytes = msblk->devblksize - offset;
-+              compressed = SQUASHFS_COMPRESSED(c_byte);
-+              c_buffer = compressed ? msblk->read_data : buffer;
-+              c_byte = SQUASHFS_COMPRESSED_SIZE(c_byte);
-+
-+              TRACE("Block @ 0x%llx, %scompressed size %d\n", index, compressed
-+                                      ? "" : "un", (unsigned int) c_byte);
-+
-+              for (b = 1; bytes < c_byte; b++) {
-+                      if (!(bh[b] = sb_getblk(s, ++cur_index)))
-+                              goto block_release;
-+                      bytes += msblk->devblksize;
-+              }
-+              ll_rw_block(READ, b - 1, bh + 1);
-+      }
-+
-+      if (compressed)
-+              down(&msblk->read_data_mutex);
-+
-+      for (bytes = 0, k = 0; k < b; k++) {
-+              avail_bytes = (c_byte - bytes) > (msblk->devblksize - offset) ?
-+                                      msblk->devblksize - offset :
-+                                      c_byte - bytes;
-+              wait_on_buffer(bh[k]);
-+              if (!buffer_uptodate(bh[k]))
-+                      goto block_release;
-+              memcpy(c_buffer + bytes, bh[k]->b_data + offset, avail_bytes);
-+              bytes += avail_bytes;
-+              offset = 0;
-+              brelse(bh[k]);
-+      }
-+
-+      /*
-+       * uncompress block
-+       */
-+      if (compressed) {
-+              int zlib_err;
-+
-+              stream.next_in = c_buffer;
-+              stream.avail_in = c_byte;
-+              stream.next_out = buffer;
-+              stream.avail_out = msblk->read_size;
-+
-+              if (((zlib_err = zlib_inflateInit(&stream)) != Z_OK) ||
-+                              ((zlib_err = zlib_inflate(&stream, Z_FINISH))
-+                               != Z_STREAM_END) || ((zlib_err =
-+                              zlib_inflateEnd(&stream)) != Z_OK)) {
-+                      ERROR("zlib_fs returned unexpected result 0x%x\n",
-+                              zlib_err);
-+                      bytes = 0;
-+              } else
-+                      bytes = stream.total_out;
-+
-+              up(&msblk->read_data_mutex);
-+      }
-+
-+      if (next_index)
-+              *next_index = index + c_byte + (length ? 0 :
-+                              (SQUASHFS_CHECK_DATA(msblk->sblk.flags)
-+                               ? 3 : 2));
-+      return bytes;
-+
-+block_release:
-+      while (--b >= 0)
-+              brelse(bh[b]);
-+
-+read_failure:
-+      ERROR("sb_bread failed reading block 0x%x\n", cur_index);
-+      return 0;
-+}
-+
-+
-+SQSH_EXTERN int squashfs_get_cached_block(struct super_block *s, char *buffer,
-+                              long long block, unsigned int offset,
-+                              int length, long long *next_block,
-+                              unsigned int *next_offset)
-+{
-+      struct squashfs_sb_info *msblk = s->s_fs_info;
-+      int n, i, bytes, return_length = length;
-+      long long next_index;
-+
-+      TRACE("Entered squashfs_get_cached_block [%llx:%x]\n", block, offset);
-+
-+      while ( 1 ) {
-+              for (i = 0; i < SQUASHFS_CACHED_BLKS; i++)
-+                      if (msblk->block_cache[i].block == block)
-+                              break;
-+
-+              down(&msblk->block_cache_mutex);
-+
-+              if (i == SQUASHFS_CACHED_BLKS) {
-+                      /* read inode header block */
-+                      for (i = msblk->next_cache, n = SQUASHFS_CACHED_BLKS;
-+                                      n ; n --, i = (i + 1) %
-+          &nbs