/*
 * Automatically generated C config: don't edit
 * Linux kernel version: 2.6.31--LSDK-10.2-00082-4
 * Tue Jan 20 13:39:25 2015
 */
#define AUTOCONF_INCLUDED
#define CONFIG_HARDWARE_WATCHPOINTS 1
#define CONFIG_FRAME_WARN 1024
#define CONFIG_COMPAT_BRK 1
#define CONFIG_CPU_MIPSR2 1
#define CONFIG_FLATMEM 1
#define CONFIG_DEVKMEM 1
#define CONFIG_MTD_MAP_BANK_WIDTH_1 1
#define CONFIG_BROKEN_ON_SMP 1
#define CONFIG_BLK_DEV_SD 1
#define CONFIG_HAS_DMA 1
#define CONFIG_MTD_MAP_BANK_WIDTH_2 1
#define CONFIG_MTD_MAP_BANK_WIDTH_4 1
#define CONFIG_MAC80211_DEFAULT_PS_VALUE 0
#define CONFIG_SERIO_SERPORT_MODULE 1
#define CONFIG_HID_PID 1
#define CONFIG_HW_HAS_PCI 1
#define CONFIG_KEYBOARD_ATKBD_MODULE 1
#define CONFIG_BLK_DEV 1
#define CONFIG_HAS_IOPORT 1
#define CONFIG_JFFS2_FS_DEBUG 0
#define CONFIG_USB_EHCI_TT_NEWSCHED 1
#define CONFIG_CRYPTO_AES 1
#define CONFIG_MODULES 1
#define CONFIG_USB_ARCH_HAS_EHCI 1
#define CONFIG_PCI_QUIRKS 1
#define CONFIG_EXT2_FS 1
#define CONFIG_USB_HID_MODULE 1
#define CONFIG_GENERIC_IRQ_PROBE 1
#define CONFIG_CRYPTO_ALGAPI2 1
#define CONFIG_SND_PCI 1
#define CONFIG_DEFCONFIG_LIST "/lib/modules/$UNAME_RELEASE/.config"
#define CONFIG_ATH_BSP 1
#define CONFIG_SLAB 1
#define CONFIG_FLATMEM_MANUAL 1
#define CONFIG_USB_ARCH_HAS_OHCI 1
#define CONFIG_DEVPORT 1
#define CONFIG_FLAT_NODE_MEM_MAP 1
#define CONFIG_CPU_BIG_ENDIAN 1
#define CONFIG_VFAT_FS 1
#define CONFIG_SERIAL_8250_PCI 1
#define CONFIG_MTD_CMDLINE_PARTS 1
#define CONFIG_LOCALVERSION_AUTO 1
#define CONFIG_EMBEDDED 1
#define CONFIG_FUSE_FS 1
#define CONFIG_PROC_FS 1
#define CONFIG_INPUT_MOUSEDEV_SCREEN_X 1024
#define CONFIG_SYS_SUPPORTS_BIG_ENDIAN 1
#define CONFIG_SND_USB 1
#define CONFIG_INPUT_MOUSEDEV_SCREEN_Y 768
#define CONFIG_RD_GZIP 1
#define CONFIG_INET 1
#define CONFIG_SYSVIPC 1
#define CONFIG_SCSI 1
#define CONFIG_TCP_CONG_CUBIC 1
#define CONFIG_IRQ_CPU 1
#define CONFIG_MIPS 1
#define CONFIG_PAGEFLAGS_EXTENDED 1
#define CONFIG_JFFS2_RTIME 1
#define CONFIG_HAVE_MLOCKED_PAGE_BIT 1
#define CONFIG_CRC32 1
#define CONFIG_BLK_DEV_RAM_COUNT 1
#define CONFIG_FAT_DEFAULT_IOCHARSET "iso8859-1"
#define CONFIG_INPUT_KEYBOARD 1
#define CONFIG_BLK_DEV_INITRD 1
#define CONFIG_UNIX 1
#define CONFIG_32BIT 1
#define CONFIG_PCI_DOMAINS 1
#define CONFIG_INPUT_MOUSEDEV_PSAUX 1
#define CONFIG_SERIAL_CORE 1
#define CONFIG_SCHED_OMIT_FRAME_POINTER 1
#define CONFIG_USB_EHCI_ROOT_HUB_TT 1
#define CONFIG_SCSI_WAIT_SCAN_MODULE 1
#define CONFIG_USB_ANNOUNCE_NEW_DEVICES 1
#define CONFIG_CLASSIC_RCU 1
#define CONFIG_IP_FIB_HASH 1
#define CONFIG_DEFAULT_MMAP_MIN_ADDR 4096
#define CONFIG_GENERIC_FIND_LAST_BIT 1
#define CONFIG_SLABINFO 1
#define CONFIG_MTD_BLKDEVS 1
#define CONFIG_NLS_DEFAULT "iso8859-1"
#define CONFIG_MTD_PARTITIONS 1
#define CONFIG_SPLIT_PTLOCK_CPUS 4
#define CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ 1
#define CONFIG_JFFS2_FS 1
#define CONFIG_KERNEL_LZMA 1
#define CONFIG_BLK_DEV_RAM 1
#define CONFIG_VM_EVENT_COUNTERS 1
#define CONFIG_ATH_DDR_RELEASE_TIMER 0
#define CONFIG_INPUT_MOUSEDEV_MODULE 1
#define CONFIG_LBDAF 1
#define CONFIG_GENERIC_FIND_NEXT_BIT 1
#define CONFIG_CSRC_R4K 1
#define CONFIG_RD_BZIP2 1
#define CONFIG_USB_STORAGE 1
#define CONFIG_SERIAL_8250_RUNTIME_UARTS 1
#define CONFIG_ELF_CORE 1
#define CONFIG_SERIAL_8250_CONSOLE 1
#define CONFIG_SYS_HAS_CPU_MIPS32_R1 1
#define CONFIG_SYS_HAS_CPU_MIPS32_R2 1
#define CONFIG_MTD_CHAR 1
#define CONFIG_CEVT_R4K 1
#define CONFIG_SND_DRIVERS 1
#define CONFIG_SCSI_DMA 1
#define CONFIG_DEFAULT_IOSCHED "deadline"
#define CONFIG_UNIX98_PTYS 1
#define CONFIG_SOUND_PRIME_MODULE 1
#define CONFIG_SOUND_OSS_CORE 1
#define CONFIG_MACH_QCA953x 1
#define CONFIG_INPUT_EVDEV_MODULE 1
#define CONFIG_SCSI_MULTI_LUN 1
#define CONFIG_BLOCK 1
#define CONFIG_GENERIC_CLOCKEVENTS_BUILD 1
#define CONFIG_GENERIC_HWEIGHT 1
#define CONFIG_WIRELESS 1
#define CONFIG_ARCH_HIBERNATION_POSSIBLE 1
#define CONFIG_KALLSYMS 1
#define CONFIG_KEXEC 1
#define CONFIG_HID_SUPPORT 1
#define CONFIG_SYSVIPC_SYSCTL 1
#define CONFIG_DMA_NONCOHERENT 1
#define CONFIG_PROC_SYSCTL 1
#define CONFIG_INPUT_MOUSE 1
#define CONFIG_SND_MIPS 1
#define CONFIG_MSDOS_FS 1
#define CONFIG_NLS_CODEPAGE_437 1
#define CONFIG_STACKTRACE_SUPPORT 1
#define CONFIG_SERIO_MODULE 1
#define CONFIG_HID_LOGITECH_MODULE 1
#define CONFIG_INSMOD_KSEG0 1
#define CONFIG_ZLIB_DEFLATE 1
#define CONFIG_FILE_LOCKING 1
#define CONFIG_USB_SUPPORT 1
#define CONFIG_SND_VERBOSE_PROCFS 1
#define CONFIG_SOUND_MODULE 1
#define CONFIG_ARCH_FLATMEM_ENABLE 1
#define CONFIG_GENERIC_TIME 1
#define CONFIG_SERIO_LIBPS2_MODULE 1
#define CONFIG_WLAN_80211 1
#define CONFIG_DECOMPRESS_GZIP 1
#define CONFIG_EXPERIMENTAL 1
#define CONFIG_USB_EHCI_HCD 1
#define CONFIG_INPUT 1
#define CONFIG_VIRT_TO_BUS 1
#define CONFIG_LOCALVERSION ""
#define CONFIG_CSRC_R4K_LIB 1
#define CONFIG_ZLIB_INFLATE 1
#define CONFIG_INIT_ENV_ARG_LIMIT 32
#define CONFIG_IOSCHED_DEADLINE 1
#define CONFIG_HZ_250 1
#define CONFIG_CEVT_R4K_LIB 1
#define CONFIG_DEFAULT_DEADLINE 1
#define CONFIG_IOSCHED_NOOP 1
#define CONFIG_CPU_SUPPORTS_32BIT_KERNEL 1
#define CONFIG_PRIV_SKB_MEM_2K 1
#define CONFIG_HID_DEBUG 1
#define CONFIG_TRAD_SIGNALS 1
#define CONFIG_PRIV_SKB_MEM_4K 5
#define CONFIG_GENERIC_CLOCKEVENTS 1
#define CONFIG_USB_EHCI_ATH 1
#define CONFIG_LOCKDEP_SUPPORT 1
#define CONFIG_MSDOS_PARTITION 1
#define CONFIG_HZ 250
#define CONFIG_TRACING_SUPPORT 1
#define CONFIG_NLS_ISO8859_1 1
#define CONFIG_NET_ETHERNET 1
#define CONFIG_MIPS_L1_CACHE_SHIFT 5
#define CONFIG_DMA_NEED_PCI_MAP_STATE 1
#define CONFIG_HID_APPLE_MODULE 1
#define CONFIG_USB_WARNING_WAR 1
#define CONFIG_SSB_POSSIBLE 1
#define CONFIG_VLAN_8021Q 1
#define CONFIG_PREEMPT_NONE 1
#define CONFIG_RWSEM_GENERIC_SPINLOCK 1
#define CONFIG_BRIDGE 1
#define CONFIG_MTD_BLOCK 1
#define CONFIG_PREVENT_FIRMWARE_BUILD 1
#define CONFIG_USB_DEBUG 1
#define CONFIG_CPU_HAS_LLSC 1
#define CONFIG_GENERIC_CALIBRATE_DELAY 1
#define CONFIG_SYS_SUPPORTS_32BIT_KERNEL 1
#define CONFIG_HAS_IOMEM 1
#define CONFIG_PACKET 1
#define CONFIG_CONSTRUCTORS 1
#define CONFIG_SERIAL_CORE_CONSOLE 1
#define CONFIG_GENERIC_HARDIRQS 1
#define CONFIG_DECOMPRESS_BZIP2 1
#define CONFIG_WIRELESS_EXT 1
#define CONFIG_PRIV_SKB_MEM 1
#define CONFIG_HIDRAW 1
#define CONFIG_CPU_HAS_SYNC 1
#define CONFIG_SYS_SUPPORTS_ARBIT_HZ 1
#define CONFIG_TRACE_IRQFLAGS_SUPPORT 1
#define CONFIG_SELECT_MEMORY_MODEL 1
#define CONFIG_CPU_MIPS32_R2 1
#define CONFIG_ARCH_SUPPORTS_OPROFILE 1
#define CONFIG_USB_DEVICE_CLASS 1
#define CONFIG_USB_ARCH_HAS_HCD 1
#define CONFIG_MIPS_MT_DISABLED 1
#define CONFIG_DEFAULT_TCP_CONG "cubic"
#define CONFIG_FAT_FS 1
#define CONFIG_CPU_HAS_PREFETCH 1
#define CONFIG_HID_MODULE 1
#define CONFIG_NLATTR 1
#define CONFIG_FAT_DEFAULT_CODEPAGE 437
#define CONFIG_PAGE_SIZE_4KB 1
#define CONFIG_HAVE_KERNEL_LZMA 1
#define CONFIG_PRINTK 1
#define CONFIG_SERIAL_8250_NR_UARTS 1
#define CONFIG_LLC 1
#define CONFIG_ATH_SYS_TYPE "QCA953x"
#define CONFIG_PCI 1
#define CONFIG_INITRAMFS_SOURCE ""
#define CONFIG_BUG 1
#define CONFIG_MII 1
#define CONFIG_CRYPTO 1
#define CONFIG_SYSCTL 1
#define CONFIG_MISC_FILESYSTEMS 1
#define CONFIG_HAVE_OPROFILE 1
#define CONFIG_SND_MODULE 1
#define CONFIG_MTD 1
#define CONFIG_CPU_MIPS32 1
#define CONFIG_NETDEV_1000 1
#define CONFIG_ZONE_DMA_FLAG 0
#define CONFIG_NET 1
#define CONFIG_MODULE_UNLOAD 1
#define CONFIG_STANDALONE 1
#define CONFIG_NETDEVICES 1
#define CONFIG_USB 1
#define CONFIG_JFFS2_ZLIB 1
#define CONFIG_NLS 1
#define CONFIG_CRYPTO_ALGAPI 1
#define CONFIG_MTD_ATH_FLASH 1
#define CONFIG_SERIAL_8250 1
#define CONFIG_MTD_CFI_I1 1
#define CONFIG_MMU 1
#define CONFIG_BLK_DEV_RAM_SIZE 8192
#define CONFIG_MTD_CFI_I2 1
#define CONFIG_PCI_LEGACY 1
#define CONFIG_BASE_SMALL 1
#define CONFIG_BINFMT_ELF 1
#define CONFIG_ATH_MACH_TYPE 5
#define CONFIG_STP 1
#define CONFIG_SND_SUPPORT_OLD_API 1
#define CONFIG_SERIO_I8042_MODULE 1
#define CONFIG_HAVE_MLOCK 1
#define CONFIG_BITREVERSE 1
#define CONFIG_LOG_BUF_SHIFT 14
#define CONFIG_CMDLINE "console=ttyS0,115200 root=01:00 rd_start=0x802d0000 rd_size=0x800000 init=/sbin/init mem=32m mtdparts=ath-nor0:256k(u-boot),64k(u-boot-env),6336k(rootfs),1408k(uImage),64k(mib0),64k(ART)"
#define CONFIG_ARCH_POPULATES_NODE_MAP 1
#define CONFIG_USB_HIDDEV 1
