OSDN Git Service

lk4oms(linux-image.deb) 3.16 master
authoryk700101 <eigyo@bekisys.co.jp>
Sat, 21 May 2016 10:53:11 +0000 (19:53 +0900)
committeryk700101 <eigyo@bekisys.co.jp>
Sat, 21 May 2016 10:53:11 +0000 (19:53 +0900)
config-3.16-oms [new file with mode: 0644]
linux-patch-3.16-oms.patch [new file with mode: 0644]
vender/Debian/linux-source-3.16.tar.xz [new file with mode: 0644]

diff --git a/config-3.16-oms b/config-3.16-oms
new file mode 100644 (file)
index 0000000..d024786
--- /dev/null
@@ -0,0 +1,2973 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/mips 3.16.7-ckt25-oms Kernel Configuration
+#
+CONFIG_MIPS=y
+
+#
+# Machine selection
+#
+CONFIG_MIPS_ALCHEMY=y
+# CONFIG_AR7 is not set
+# CONFIG_ATH79 is not set
+# CONFIG_BCM47XX is not set
+# CONFIG_BCM63XX is not set
+# CONFIG_MIPS_COBALT is not set
+# CONFIG_MACH_DECSTATION is not set
+# CONFIG_MACH_JAZZ is not set
+# CONFIG_MACH_JZ4740 is not set
+# CONFIG_LANTIQ is not set
+# CONFIG_LASAT is not set
+# CONFIG_MACH_LOONGSON is not set
+# CONFIG_MACH_LOONGSON1 is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD3 is not set
+# CONFIG_NEC_MARKEINS is not set
+# CONFIG_MACH_VR41XX is not set
+# CONFIG_NXP_STB220 is not set
+# CONFIG_NXP_STB225 is not set
+# CONFIG_PMC_MSP is not set
+# CONFIG_RALINK is not set
+# 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_CRHINE is not set
+# CONFIG_SIBYTE_CARMEL is not set
+# CONFIG_SIBYTE_CRHONE is not set
+# CONFIG_SIBYTE_RHONE is not set
+# CONFIG_SIBYTE_SWARM is not set
+# CONFIG_SIBYTE_LITTLESUR is not set
+# CONFIG_SIBYTE_SENTOSA is not set
+# CONFIG_SIBYTE_BIGSUR is not set
+# CONFIG_SNI_RM is not set
+# CONFIG_MACH_TX39XX is not set
+# CONFIG_MACH_TX49XX is not set
+# CONFIG_MIKROTIK_RB532 is not set
+# CONFIG_CAVIUM_OCTEON_SOC is not set
+# CONFIG_NLM_XLR_BOARD is not set
+# CONFIG_NLM_XLP_BOARD is not set
+# CONFIG_MIPS_PARAVIRT is not set
+# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
+# CONFIG_MIPS_MTX1 is not set
+# CONFIG_MIPS_DB1XXX is not set
+CONFIG_MIPS_OMS400=y
+# CONFIG_MIPS_XXS1500 is not set
+# CONFIG_MIPS_GPR is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_OMS400_PUSHSW=y
+CONFIG_OMS400_LED=y
+CONFIG_OMS400_DIO=y
+CONFIG_CEVT_R4K=y
+CONFIG_CSRC_R4K=y
+# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set
+CONFIG_DMA_MAYBE_COHERENT=y
+CONFIG_DMA_NONCOHERENT=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_SYS_HAS_EARLY_PRINTK=y
+# CONFIG_MIPS_MACHINE is not set
+# CONFIG_NO_IOPORT_MAP is not set
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
+# CONFIG_MIPS_HUGE_TLB_SUPPORT is not set
+CONFIG_IRQ_CPU=y
+CONFIG_MIPS_L1_CACHE_SHIFT=5
+
+#
+# CPU selection
+#
+CONFIG_CPU_MIPS32_R1=y
+CONFIG_SYS_SUPPORTS_ZBOOT=y
+CONFIG_SYS_HAS_CPU_MIPS32_R1=y
+CONFIG_CPU_MIPS32=y
+CONFIG_CPU_MIPSR1=y
+CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
+CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
+CONFIG_HARDWARE_WATCHPOINTS=y
+
+#
+# Kernel type
+#
+CONFIG_32BIT=y
+# CONFIG_KVM_GUEST is not set
+CONFIG_PAGE_SIZE_4KB=y
+# CONFIG_PAGE_SIZE_16KB is not set
+# CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_FORCE_MAX_ZONEORDER=11
+CONFIG_CPU_HAS_PREFETCH=y
+CONFIG_CPU_GENERIC_DUMP_TLB=y
+CONFIG_CPU_R4K_FPU=y
+CONFIG_CPU_R4K_CACHE_TLB=y
+CONFIG_64BIT_PHYS_ADDR=y
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_CPU_HAS_SYNC=y
+CONFIG_CPU_SUPPORTS_HIGHMEM=y
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_ARCH_DISCARD_MEMBLOCK=y
+# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_COMPACTION is not set
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_VIRT_TO_BUS=y
+# CONFIG_KSM is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_NEED_PER_CPU_KM=y
+# CONFIG_CLEANCACHE is not set
+# CONFIG_FRONTSWAP is not set
+# CONFIG_CMA is not set
+# CONFIG_ZBUD is not set
+# CONFIG_ZSMALLOC is not set
+# CONFIG_HZ_48 is not set
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_128 is not set
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_256 is not set
+CONFIG_HZ_1000=y
+# CONFIG_HZ_1024 is not set
+CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
+CONFIG_HZ=1000
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+# CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+CONFIG_SECCOMP=y
+# CONFIG_MIPS_O32_FP64_SUPPORT is not set
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_EXTABLE_SORT=y
+
+#
+# General setup
+#
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+# CONFIG_COMPILE_TEST is not set
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KERNEL_LZ4=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_XZ is not set
+# CONFIG_KERNEL_LZO is not set
+# CONFIG_KERNEL_LZ4 is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_CROSS_MEMORY_ATTACH=y
+# CONFIG_FHANDLE is not set
+CONFIG_USELIB=y
+# CONFIG_AUDIT is not set
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+
+#
+# Timers subsystem
+#
+CONFIG_HZ_PERIODIC=y
+# CONFIG_NO_HZ_IDLE is not set
+# CONFIG_NO_HZ is not set
+# CONFIG_HIGH_RES_TIMERS is not set
+
+#
+# CPU/Task time and stats accounting
+#
+CONFIG_TICK_CPU_ACCOUNTING=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TINY_RCU=y
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_RCU_STALL_COMMON is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
+# CONFIG_CHECKPOINT_RESTORE is not set
+# CONFIG_NAMESPACES is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+# CONFIG_SYSFS_DEPRECATED is not set
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
+# CONFIG_RD_XZ is not set
+# CONFIG_RD_LZO is not set
+# CONFIG_RD_LZ4 is not set
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_EXPERT=y
+CONFIG_SGETMASK_SYSCALL=y
+CONFIG_SYSFS_SYSCALL=y
+CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_KALLSYMS is not set
+CONFIG_PRINTK=y
+# CONFIG_BUG is not set
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_EMBEDDED=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
+
+#
+# Kernel Performance Events And Counters
+#
+# CONFIG_PERF_EVENTS is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_COMPAT_BRK=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+# CONFIG_JUMP_LABEL is not set
+# CONFIG_UPROBES is not set
+# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP_FILTER=y
+CONFIG_HAVE_CC_STACKPROTECTOR=y
+# CONFIG_CC_STACKPROTECTOR is not set
+CONFIG_CC_STACKPROTECTOR_NONE=y
+# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
+# CONFIG_CC_STACKPROTECTOR_STRONG is not set
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_MODULES_USE_ELF_REL=y
+CONFIG_CLONE_BACKWARDS=y
+
+#
+# GCOV-based kernel profiling
+#
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+# CONFIG_MODULE_SIG is not set
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_BSGLIB is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+# CONFIG_BLK_CMDLINE_PARSER is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_EFI_PARTITION=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="deadline"
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_FREEZER is not set
+
+#
+# Bus options (PCI, PCMCIA, EISA, ISA, TC)
+#
+CONFIG_HW_HAS_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCI_MSI is not set
+# CONFIG_PCI_DEBUG is not set
+# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
+# CONFIG_PCI_STUB is not set
+# CONFIG_PCI_IOV is not set
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
+
+#
+# PCI host controller drivers
+#
+# CONFIG_PCIEPORTBUS is not set
+CONFIG_MMU=y
+CONFIG_PCCARD=y
+CONFIG_PCMCIA=y
+# CONFIG_PCMCIA_LOAD_CIS is not set
+# CONFIG_CARDBUS is not set
+
+#
+# PC-card bridges
+#
+# CONFIG_YENTA is not set
+# CONFIG_PD6729 is not set
+# CONFIG_I82092 is not set
+CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
+# CONFIG_HOTPLUG_PCI is not set
+# CONFIG_RAPIDIO is not set
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_BINFMT_SCRIPT=y
+# CONFIG_HAVE_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+CONFIG_COREDUMP=y
+CONFIG_TRAD_SIGNALS=y
+
+#
+# Power management options
+#
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# CONFIG_SUSPEND is not set
+# CONFIG_HIBERNATION is not set
+# CONFIG_PM_RUNTIME is not set
+
+#
+# CPU Power Management
+#
+
+#
+# CPU Idle
+#
+# CONFIG_CPU_IDLE is not set
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_DIAG is not set
+CONFIG_UNIX=y
+# CONFIG_UNIX_DIAG is not set
+CONFIG_XFRM=y
+CONFIG_XFRM_ALGO=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=y
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=y
+# CONFIG_NET_IPGRE_DEMUX is not set
+CONFIG_NET_IP_TUNNEL=y
+CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_NET_IPVTI is not set
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=y
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+# CONFIG_INET_LRO is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_INET_UDP_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=y
+CONFIG_IPV6_ROUTER_PREF=y
+# CONFIG_IPV6_ROUTE_INFO is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+# CONFIG_IPV6_MIP6 is not set
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+# CONFIG_IPV6_VTI is not set
+CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_SIT_6RD is not set
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+# CONFIG_IPV6_GRE is not set
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+# CONFIG_IPV6_MROUTE is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NET_PTP_CLASSIFY is not set
+# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=y
+# CONFIG_NETFILTER_NETLINK_ACCT is not set
+CONFIG_NETFILTER_NETLINK_QUEUE=y
+CONFIG_NETFILTER_NETLINK_LOG=y
+CONFIG_NF_CONNTRACK=y
+CONFIG_NF_CONNTRACK_MARK=y
+# CONFIG_NF_CONNTRACK_ZONES is not set
+CONFIG_NF_CONNTRACK_PROCFS=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+# CONFIG_NF_CONNTRACK_TIMEOUT is not set
+# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
+CONFIG_NF_CT_PROTO_DCCP=y
+CONFIG_NF_CT_PROTO_GRE=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+CONFIG_NF_CONNTRACK_AMANDA=y
+CONFIG_NF_CONNTRACK_FTP=y
+CONFIG_NF_CONNTRACK_H323=y
+CONFIG_NF_CONNTRACK_IRC=y
+CONFIG_NF_CONNTRACK_BROADCAST=y
+CONFIG_NF_CONNTRACK_NETBIOS_NS=y
+# CONFIG_NF_CONNTRACK_SNMP is not set
+CONFIG_NF_CONNTRACK_PPTP=y
+CONFIG_NF_CONNTRACK_SANE=y
+CONFIG_NF_CONNTRACK_SIP=y
+CONFIG_NF_CONNTRACK_TFTP=y
+CONFIG_NF_CT_NETLINK=y
+# CONFIG_NF_CT_NETLINK_TIMEOUT is not set
+# CONFIG_NETFILTER_NETLINK_QUEUE_CT is not set
+# CONFIG_NF_TABLES is not set
+CONFIG_NETFILTER_XTABLES=y
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=y
+CONFIG_NETFILTER_XT_CONNMARK=y
+
+#
+# Xtables targets
+#
+# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=y
+CONFIG_NETFILTER_XT_TARGET_CT=y
+CONFIG_NETFILTER_XT_TARGET_DSCP=y
+CONFIG_NETFILTER_XT_TARGET_HL=y
+# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
+# CONFIG_NETFILTER_XT_TARGET_LOG is not set
+CONFIG_NETFILTER_XT_TARGET_MARK=y
+CONFIG_NETFILTER_XT_TARGET_NFLOG=y
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+CONFIG_NETFILTER_XT_TARGET_RATEEST=y
+# CONFIG_NETFILTER_XT_TARGET_TEE is not set
+# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set
+CONFIG_NETFILTER_XT_TARGET_TRACE=y
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=y
+
+#
+# Xtables matches
+#
+# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_BPF is not set
+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
+CONFIG_NETFILTER_XT_MATCH_COMMENT=y
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=y
+# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=y
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
+# CONFIG_NETFILTER_XT_MATCH_CPU is not set
+CONFIG_NETFILTER_XT_MATCH_DCCP=y
+# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
+CONFIG_NETFILTER_XT_MATCH_DSCP=y
+CONFIG_NETFILTER_XT_MATCH_ECN=y
+CONFIG_NETFILTER_XT_MATCH_ESP=y
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y
+CONFIG_NETFILTER_XT_MATCH_HELPER=y
+CONFIG_NETFILTER_XT_MATCH_HL=y
+# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=y
+# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
+CONFIG_NETFILTER_XT_MATCH_LENGTH=y
+CONFIG_NETFILTER_XT_MATCH_LIMIT=y
+CONFIG_NETFILTER_XT_MATCH_MAC=y
+CONFIG_NETFILTER_XT_MATCH_MARK=y
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y
+# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
+# CONFIG_NETFILTER_XT_MATCH_OSF is not set
+CONFIG_NETFILTER_XT_MATCH_OWNER=y
+CONFIG_NETFILTER_XT_MATCH_POLICY=y
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
+CONFIG_NETFILTER_XT_MATCH_QUOTA=y
+CONFIG_NETFILTER_XT_MATCH_RATEEST=y
+CONFIG_NETFILTER_XT_MATCH_REALM=y
+# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
+CONFIG_NETFILTER_XT_MATCH_SCTP=y
+# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
+CONFIG_NETFILTER_XT_MATCH_STATE=y
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=y
+CONFIG_NETFILTER_XT_MATCH_STRING=y
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=y
+CONFIG_NETFILTER_XT_MATCH_TIME=y
+CONFIG_NETFILTER_XT_MATCH_U32=y
+# CONFIG_IP_SET is not set
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=y
+CONFIG_NF_CONNTRACK_IPV4=y
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_IPTABLES=y
+CONFIG_IP_NF_MATCH_AH=y
+CONFIG_IP_NF_MATCH_ECN=y
+# CONFIG_IP_NF_MATCH_RPFILTER is not set
+CONFIG_IP_NF_MATCH_TTL=y
+CONFIG_IP_NF_FILTER=y
+CONFIG_IP_NF_TARGET_REJECT=y
+# CONFIG_IP_NF_TARGET_SYNPROXY is not set
+CONFIG_IP_NF_TARGET_ULOG=y
+# CONFIG_NF_NAT_IPV4 is not set
+CONFIG_IP_NF_MANGLE=y
+CONFIG_IP_NF_TARGET_CLUSTERIP=y
+CONFIG_IP_NF_TARGET_ECN=y
+CONFIG_IP_NF_TARGET_TTL=y
+CONFIG_IP_NF_RAW=y
+CONFIG_IP_NF_ARPTABLES=y
+CONFIG_IP_NF_ARPFILTER=y
+CONFIG_IP_NF_ARP_MANGLE=y
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=y
+CONFIG_NF_CONNTRACK_IPV6=y
+CONFIG_IP6_NF_IPTABLES=y
+CONFIG_IP6_NF_MATCH_AH=y
+CONFIG_IP6_NF_MATCH_EUI64=y
+CONFIG_IP6_NF_MATCH_FRAG=y
+CONFIG_IP6_NF_MATCH_OPTS=y
+CONFIG_IP6_NF_MATCH_HL=y
+CONFIG_IP6_NF_MATCH_IPV6HEADER=y
+CONFIG_IP6_NF_MATCH_MH=y
+# CONFIG_IP6_NF_MATCH_RPFILTER is not set
+CONFIG_IP6_NF_MATCH_RT=y
+CONFIG_IP6_NF_TARGET_HL=y
+CONFIG_IP6_NF_FILTER=y
+CONFIG_IP6_NF_TARGET_REJECT=y
+# CONFIG_IP6_NF_TARGET_SYNPROXY is not set
+CONFIG_IP6_NF_MANGLE=y
+CONFIG_IP6_NF_RAW=y
+# CONFIG_NF_NAT_IPV6 is not set
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+# CONFIG_BRIDGE_EBT_IP6 is not set
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+# CONFIG_BRIDGE_EBT_ULOG is not set
+# CONFIG_BRIDGE_EBT_NFLOG is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_L2TP is not set
+CONFIG_STP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+# CONFIG_BRIDGE_VLAN_FILTERING is not set
+CONFIG_HAVE_NET_DSA=y
+CONFIG_VLAN_8021Q=y
+# CONFIG_VLAN_8021Q_GVRP is not set
+# CONFIG_VLAN_8021Q_MVRP is not set
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_PHONET is not set
+# CONFIG_IEEE802154 is not set
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+# CONFIG_NET_SCH_CBQ is not set
+# CONFIG_NET_SCH_HTB is not set
+# CONFIG_NET_SCH_HFSC is not set
+# CONFIG_NET_SCH_PRIO is not set
+# CONFIG_NET_SCH_MULTIQ is not set
+# CONFIG_NET_SCH_RED is not set
+# CONFIG_NET_SCH_SFB is not set
+# CONFIG_NET_SCH_SFQ is not set
+# CONFIG_NET_SCH_TEQL is not set
+# CONFIG_NET_SCH_TBF is not set
+# CONFIG_NET_SCH_GRED is not set
+# CONFIG_NET_SCH_DSMARK is not set
+CONFIG_NET_SCH_NETEM=m
+# CONFIG_NET_SCH_DRR is not set
+# CONFIG_NET_SCH_MQPRIO is not set
+# CONFIG_NET_SCH_CHOKE is not set
+# CONFIG_NET_SCH_QFQ is not set
+# CONFIG_NET_SCH_CODEL is not set
+# CONFIG_NET_SCH_FQ_CODEL is not set
+# CONFIG_NET_SCH_FQ is not set
+# CONFIG_NET_SCH_HHF is not set
+# CONFIG_NET_SCH_PIE is not set
+# CONFIG_NET_SCH_PLUG is not set
+
+#
+# Classification
+#
+# CONFIG_NET_CLS_BASIC is not set
+# CONFIG_NET_CLS_TCINDEX is not set
+# CONFIG_NET_CLS_ROUTE4 is not set
+# CONFIG_NET_CLS_FW is not set
+# CONFIG_NET_CLS_U32 is not set
+# CONFIG_NET_CLS_RSVP is not set
+# CONFIG_NET_CLS_RSVP6 is not set
+# CONFIG_NET_CLS_FLOW is not set
+# CONFIG_NET_CLS_BPF is not set
+# CONFIG_NET_EMATCH is not set
+# CONFIG_NET_CLS_ACT is not set
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+# CONFIG_BATMAN_ADV is not set
+# CONFIG_OPENVSWITCH is not set
+# CONFIG_VSOCKETS is not set
+# CONFIG_NETLINK_MMAP is not set
+# CONFIG_NETLINK_DIAG is not set
+# CONFIG_NET_MPLS_GSO is not set
+# CONFIG_HSR is not set
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_BQL=y
+# CONFIG_BPF_JIT is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=m
+# CONFIG_BT_6LOWPAN is not set
+# CONFIG_BT_RFCOMM is not set
+# CONFIG_BT_BNEP is not set
+# CONFIG_BT_HIDP is not set
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIBTUSB is not set
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+# CONFIG_BT_HCIUART_ATH3K is not set
+# CONFIG_BT_HCIUART_LL is not set
+# CONFIG_BT_HCIUART_3WIRE is not set
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+# CONFIG_BT_HCIDTL1 is not set
+# CONFIG_BT_HCIBT3C is not set
+# CONFIG_BT_HCIBLUECARD is not set
+# CONFIG_BT_HCIBTUART is not set
+CONFIG_BT_HCIVHCI=m
+# CONFIG_BT_MRVL is not set
+# CONFIG_AF_RXRPC is not set
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+# CONFIG_LIB80211 is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_PID=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+CONFIG_MAC80211_RC_DEFAULT_PID=y
+# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
+CONFIG_MAC80211_RC_DEFAULT="pid"
+# CONFIG_MAC80211_MESH is not set
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+# CONFIG_WIMAX is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+# CONFIG_CEPH_LIB is not set
+# CONFIG_NFC is not set
+CONFIG_HAVE_BPF_JIT=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER=y
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+CONFIG_FW_LOADER_USER_HELPER=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_GENERIC_CPU_DEVICES is not set
+# CONFIG_DMA_SHARED_BUFFER is not set
+
+#
+# Bus devices
+#
+# CONFIG_CONNECTOR is not set
+CONFIG_MTD=y
+# CONFIG_MTD_TESTS is not set
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_SM_FTL is not set
+# CONFIG_MTD_OOPS is not set
+# CONFIG_MTD_SWAP is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 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 is not set
+CONFIG_MTD_CFI_AMDSTD=y
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+CONFIG_MTD_PHYSMAP=y
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOCG3 is not set
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR & LPDDR2 PCM memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+# CONFIG_MTD_SPI_NOR is not set
+# CONFIG_MTD_UBI is not set
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_NULL_BLK is not set
+# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_DRBD is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_NVME is not set
+# CONFIG_BLK_DEV_SX8 is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=2
+CONFIG_BLK_DEV_RAM_SIZE=81920
+# CONFIG_BLK_DEV_XIP is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_BLK_DEV_HD is not set
+# CONFIG_BLK_DEV_RBD is not set
+# CONFIG_BLK_DEV_RSXX is not set
+
+#
+# Misc devices
+#
+# CONFIG_SENSORS_LIS3LV02D is not set
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_DUMMY_IRQ is not set
+# CONFIG_PHANTOM is not set
+# CONFIG_SGI_IOC4 is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_ICS932S401 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HP_ILO is not set
+# CONFIG_APDS9802ALS is not set
+# CONFIG_ISL29003 is not set
+# CONFIG_ISL29020 is not set
+CONFIG_OMS400_EEPROM=y
+CONFIG_OMS400_RTC=y
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_SENSORS_BH1780 is not set
+# CONFIG_SENSORS_BH1770 is not set
+# CONFIG_SENSORS_APDS990X is not set
+# CONFIG_HMC6352 is not set
+# CONFIG_DS1682 is not set
+# CONFIG_BMP085_I2C is not set
+# CONFIG_USB_SWITCH_FSA9480 is not set
+# CONFIG_SRAM is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT24 is not set
+# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_MAX6875 is not set
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_CB710_CORE is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+# CONFIG_TI_ST is not set
+# CONFIG_SENSORS_LIS3_I2C is not set
+
+#
+# Altera FPGA firmware download module
+#
+# CONFIG_ALTERA_STAPL is not set
+
+#
+# Intel MIC Host Driver
+#
+
+#
+# Intel MIC Card Driver
+#
+# CONFIG_ECHO is not set
+CONFIG_HAVE_IDE=y
+CONFIG_IDE=y
+
+#
+# Please see Documentation/ide/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_IDE_GD=y
+CONFIG_IDE_GD_ATA=y
+# CONFIG_IDE_GD_ATAPI is not set
+CONFIG_BLK_DEV_IDECS=y
+# CONFIG_BLK_DEV_IDECD is not set
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_IDE_PROC_FS=y
+
+#
+# IDE chipset support/bugfixes
+#
+# CONFIG_IDE_GENERIC is not set
+# CONFIG_BLK_DEV_PLATFORM is not set
+
+#
+# PCI IDE chipsets support
+#
+# CONFIG_BLK_DEV_GENERIC is not set
+# CONFIG_BLK_DEV_OPTI621 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_CMD64X is not set
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_JMICRON is not set
+# CONFIG_BLK_DEV_PIIX is not set
+# CONFIG_BLK_DEV_IT8172 is not set
+# CONFIG_BLK_DEV_IT8213 is not set
+# CONFIG_BLK_DEV_IT821X is not set
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+# CONFIG_BLK_DEV_TC86C001 is not set
+# CONFIG_BLK_DEV_IDE_AU1XXX is not set
+# CONFIG_BLK_DEV_IDEDMA is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=y
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=y
+# CONFIG_CHR_DEV_SCH is not set
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
+CONFIG_SCSI_LOWLEVEL=y
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_ISCSI_BOOT_SYSFS is not set
+# CONFIG_SCSI_CXGB3_ISCSI is not set
+# CONFIG_SCSI_CXGB4_ISCSI is not set
+# CONFIG_SCSI_BNX2_ISCSI is not set
+# CONFIG_SCSI_BNX2X_FCOE is not set
+# CONFIG_BE2ISCSI is not set
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_HPSA is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_3W_SAS is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_AIC94XX is not set
+# CONFIG_SCSI_MVSAS is not set
+# CONFIG_SCSI_MVUMI is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_SCSI_ARCMSR is not set
+# CONFIG_SCSI_ESAS2R is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_MEGARAID_SAS is not set
+# CONFIG_SCSI_MPT2SAS is not set
+# CONFIG_SCSI_MPT3SAS is not set
+# CONFIG_SCSI_UFSHCD is not set
+# CONFIG_SCSI_HPTIOP is not set
+# CONFIG_LIBFC is not set
+# CONFIG_LIBFCOE is not set
+# CONFIG_FCOE is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_STEX is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_QLA_FC is not set
+# CONFIG_SCSI_QLA_ISCSI is not set
+# CONFIG_SCSI_LPFC is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_NSP32 is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI_PMCRAID is not set
+# CONFIG_SCSI_PM8001 is not set
+# CONFIG_SCSI_SRP is not set
+# CONFIG_SCSI_BFA_FC is not set
+# CONFIG_SCSI_CHELSIO_FCOE is not set
+# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
+# CONFIG_SCSI_DH is not set
+# CONFIG_SCSI_OSD_INITIATOR is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+# CONFIG_TARGET_CORE is not set
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_FIREWIRE is not set
+# CONFIG_FIREWIRE_NOSY is not set
+# CONFIG_I2O is not set
+CONFIG_NETDEVICES=y
+CONFIG_MII=m
+CONFIG_NET_CORE=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+# CONFIG_EQUALIZER is not set
+# CONFIG_NET_FC is not set
+# CONFIG_NET_TEAM is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_VXLAN is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+CONFIG_TUN=y
+# CONFIG_VETH is not set
+# CONFIG_NLMON is not set
+# CONFIG_ARCNET is not set
+
+#
+# CAIF transport drivers
+#
+
+#
+# Distributed Switch Architecture drivers
+#
+# CONFIG_NET_DSA_MV88E6XXX is not set
+# CONFIG_NET_DSA_MV88E6060 is not set
+# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set
+# CONFIG_NET_DSA_MV88E6131 is not set
+# CONFIG_NET_DSA_MV88E6123_61_65 is not set
+CONFIG_ETHERNET=y
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_NET_VENDOR_ADAPTEC is not set
+# CONFIG_NET_VENDOR_ALTEON is not set
+# CONFIG_ALTERA_TSE is not set
+CONFIG_NET_VENDOR_AMD=y
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_PCNET32 is not set
+CONFIG_MIPS_AU1X00_ENET=y
+# CONFIG_PCMCIA_NMCLAN is not set
+# CONFIG_NET_XGENE is not set
+CONFIG_NET_VENDOR_ARC=y
+# CONFIG_NET_VENDOR_ATHEROS is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_BROCADE is not set
+# CONFIG_NET_CALXEDA_XGMAC is not set
+# CONFIG_NET_VENDOR_CHELSIO is not set
+# CONFIG_NET_VENDOR_CISCO is not set
+# CONFIG_DM9000 is not set
+# CONFIG_DNET is not set
+# CONFIG_NET_VENDOR_DEC is not set
+# CONFIG_NET_VENDOR_DLINK is not set
+# CONFIG_NET_VENDOR_EMULEX is not set
+# CONFIG_NET_VENDOR_EXAR is not set
+# CONFIG_NET_VENDOR_FUJITSU is not set
+# CONFIG_NET_VENDOR_HP is not set
+CONFIG_NET_VENDOR_INTEL=y
+# CONFIG_E100 is not set
+CONFIG_E1000=y
+# CONFIG_E1000E is not set
+# CONFIG_IGB is not set
+# CONFIG_IGBVF is not set
+# CONFIG_IXGB is not set
+# CONFIG_IXGBE is not set
+# CONFIG_I40E is not set
+# CONFIG_NET_VENDOR_I825XX is not set
+# CONFIG_IP1000 is not set
+# CONFIG_JME is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MELLANOX is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MYRI is not set
+# CONFIG_FEALNX is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NVIDIA is not set
+# CONFIG_NET_VENDOR_OKI is not set
+# CONFIG_ETHOC is not set
+# CONFIG_NET_PACKET_ENGINE is not set
+# CONFIG_NET_VENDOR_QLOGIC is not set
+# CONFIG_NET_VENDOR_REALTEK is not set
+# CONFIG_SH_ETH is not set
+# CONFIG_NET_VENDOR_RDC is not set
+CONFIG_NET_VENDOR_SAMSUNG=y
+# CONFIG_SXGBE_ETH is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SILAN is not set
+# CONFIG_NET_VENDOR_SIS is not set
+# CONFIG_SFC is not set
+# CONFIG_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+# CONFIG_NET_VENDOR_SUN is not set
+# CONFIG_NET_VENDOR_TEHUTI is not set
+# CONFIG_NET_VENDOR_TI is not set
+# CONFIG_NET_VENDOR_TOSHIBA is not set
+# CONFIG_NET_VENDOR_VIA is not set
+CONFIG_NET_VENDOR_WIZNET=y
+# CONFIG_WIZNET_W5100 is not set
+# CONFIG_WIZNET_W5300 is not set
+# CONFIG_NET_VENDOR_XIRCOM is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+# CONFIG_AT803X_PHY is not set
+# CONFIG_AMD_PHY is not set
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_BCM7XXX_PHY is not set
+# CONFIG_BCM87XX_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_STE10XP is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_MICREL_PHY is not set
+# CONFIG_FIXED_PHY is not set
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_PPP=y
+CONFIG_PPP_BSDCOMP=y
+CONFIG_PPP_DEFLATE=y
+# CONFIG_PPP_FILTER is not set
+# CONFIG_PPP_MPPE is not set
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOE=y
+CONFIG_PPP_ASYNC=y
+CONFIG_PPP_SYNC_TTY=y
+# CONFIG_SLIP is not set
+CONFIG_SLHC=y
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+# CONFIG_USB_RTL8152 is not set
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_AX88179_178A=m
+CONFIG_USB_NET_CDCETHER=m
+# CONFIG_USB_NET_CDC_EEM is not set
+# CONFIG_USB_NET_CDC_NCM is not set
+# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set
+# CONFIG_USB_NET_CDC_MBIM is not set
+CONFIG_USB_NET_DM9601=m
+# CONFIG_USB_NET_SR9700 is not set
+# CONFIG_USB_NET_SR9800 is not set
+# CONFIG_USB_NET_SMSC75XX is not set
+# CONFIG_USB_NET_SMSC95XX is not set
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+# CONFIG_USB_NET_CX82310_ETH is not set
+# CONFIG_USB_NET_KALMIA is not set
+# CONFIG_USB_NET_QMI_WWAN is not set
+# CONFIG_USB_NET_INT51X1 is not set
+# CONFIG_USB_IPHETH is not set
+# CONFIG_USB_SIERRA_NET is not set
+# CONFIG_USB_VL600 is not set
+CONFIG_WLAN=y
+# CONFIG_PCMCIA_RAYCS is not set
+# CONFIG_LIBERTAS_THINFIRM is not set
+# CONFIG_ATMEL is not set
+# CONFIG_AT76C50X_USB is not set
+# CONFIG_AIRO_CS is not set
+# CONFIG_PCMCIA_WL3501 is not set
+# CONFIG_PRISM54 is not set
+CONFIG_USB_ZD1201=m
+# CONFIG_USB_NET_RNDIS_WLAN is not set
+# CONFIG_RTL8180 is not set
+# CONFIG_RTL8187 is not set
+# CONFIG_ADM8211 is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_MWL8K is not set
+# CONFIG_ATH_CARDS is not set
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+# CONFIG_BRCMSMAC is not set
+# CONFIG_BRCMFMAC is not set
+# CONFIG_HOSTAP is not set
+# CONFIG_IPW2100 is not set
+# CONFIG_IPW2200 is not set
+# CONFIG_IWLWIFI is not set
+# CONFIG_IWL4965 is not set
+# CONFIG_IWL3945 is not set
+# CONFIG_LIBERTAS is not set
+# CONFIG_HERMES is not set
+# CONFIG_P54_COMMON is not set
+# CONFIG_RT2X00 is not set
+CONFIG_RTL_CARDS=m
+# CONFIG_RTL8192CE is not set
+# CONFIG_RTL8192SE is not set
+# CONFIG_RTL8192DE is not set
+# CONFIG_RTL8723AE is not set
+# CONFIG_RTL8723BE is not set
+# CONFIG_RTL8188EE is not set
+# CONFIG_RTL8192CU is not set
+# CONFIG_WL_TI is not set
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+# CONFIG_MWIFIEX is not set
+# CONFIG_CW1200 is not set
+# CONFIG_RSI_91X is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+# CONFIG_WAN is not set
+# CONFIG_VMXNET3 is not set
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+# CONFIG_INPUT_SPARSEKMAP is not set
+# CONFIG_INPUT_MATRIXKMAP is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
+# CONFIG_KEYBOARD_ADP5589 is not set
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_QT1070 is not set
+# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_GPIO is not set
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
+# CONFIG_KEYBOARD_TCA6416 is not set
+# CONFIG_KEYBOARD_TCA8418 is not set
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_LM8333 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_MCS is not set
+# CONFIG_KEYBOARD_MPR121 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_CYPRESS=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+# CONFIG_MOUSE_PS2_ELANTECH is not set
+# CONFIG_MOUSE_PS2_SENTELIC is not set
+CONFIG_MOUSE_PS2_TOUCHKIT=y
+CONFIG_MOUSE_PS2_FOCALTECH=y
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_APPLETOUCH is not set
+# CONFIG_MOUSE_BCM5974 is not set
+# CONFIG_MOUSE_CYAPA is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_MOUSE_GPIO is not set
+# CONFIG_MOUSE_SYNAPTICS_I2C is not set
+# CONFIG_MOUSE_SYNAPTICS_USB is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=y
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_SERIO_ALTERA_PS2 is not set
+# CONFIG_SERIO_PS2MULT is not set
+# CONFIG_SERIO_ARC_PS2 is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_TTY=y
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_NOZOMI is not set
+# CONFIG_N_GSM is not set
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVKMEM=y
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
+CONFIG_SERIAL_8250_CONSOLE=y
+# CONFIG_SERIAL_8250_PCI is not set
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+# CONFIG_SERIAL_8250_DW is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_MFD_HSU is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+# CONFIG_SERIAL_SCCNXP is not set
+# CONFIG_SERIAL_SC16IS7XX is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_ARC is not set
+# CONFIG_SERIAL_RP2 is not set
+# CONFIG_SERIAL_FSL_LPUART is not set
+# CONFIG_TTY_PRINTK is not set
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# PCMCIA character devices
+#
+# CONFIG_SYNCLINK_CS is not set
+# CONFIG_CARDMAN_4000 is not set
+# CONFIG_CARDMAN_4040 is not set
+# CONFIG_IPWIRELESS is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_DEVPORT=y
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=y
+# CONFIG_I2C_MUX is not set
+CONFIG_I2C_HELPER_AUTO=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+# 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_I801 is not set
+# CONFIG_I2C_ISCH is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_AU1550=y
+# CONFIG_I2C_CBUS_GPIO is not set
+# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
+# CONFIG_I2C_DESIGNWARE_PCI is not set
+# CONFIG_I2C_GPIO is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_PXA_PCI is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_XILINX is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_DIOLAN_U2C is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_TINY_USB is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_SPI is not set
+# CONFIG_SPMI is not set
+# CONFIG_HSI is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+# CONFIG_PTP_1588_CLOCK is not set
+
+#
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_DEVRES=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_GPIO_SYSFS is not set
+
+#
+# Memory mapped GPIO drivers:
+#
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+# CONFIG_GPIO_SCH311X is not set
+# CONFIG_GPIO_VX855 is not set
+
+#
+# I2C GPIO expanders:
+#
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_SX150X is not set
+# CONFIG_GPIO_ADP5588 is not set
+
+#
+# PCI GPIO expanders:
+#
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_AMD8111 is not set
+# CONFIG_GPIO_ML_IOH is not set
+# CONFIG_GPIO_RDC321X is not set
+
+#
+# SPI GPIO expanders:
+#
+
+#
+# AC97 GPIO expanders:
+#
+
+#
+# LPC GPIO expanders:
+#
+
+#
+# MODULbus GPIO expanders:
+#
+
+#
+# USB GPIO expanders:
+#
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_POWER_AVS is not set
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+# CONFIG_SENSORS_AD7414 is not set
+# CONFIG_SENSORS_AD7418 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_ADT7410 is not set
+# CONFIG_SENSORS_ADT7411 is not set
+# CONFIG_SENSORS_ADT7462 is not set
+# CONFIG_SENSORS_ADT7470 is not set
+# CONFIG_SENSORS_ADT7475 is not set
+# CONFIG_SENSORS_ASC7621 is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_DS620 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_I5K_AMB is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_G760A is not set
+# CONFIG_SENSORS_G762 is not set
+# CONFIG_SENSORS_GPIO_FAN is not set
+# CONFIG_SENSORS_HIH6130 is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_JC42 is not set
+# CONFIG_SENSORS_LINEAGE is not set
+# CONFIG_SENSORS_LTC2945 is not set
+# CONFIG_SENSORS_LTC4151 is not set
+# CONFIG_SENSORS_LTC4215 is not set
+# CONFIG_SENSORS_LTC4222 is not set
+# CONFIG_SENSORS_LTC4245 is not set
+# CONFIG_SENSORS_LTC4260 is not set
+# CONFIG_SENSORS_LTC4261 is not set
+# CONFIG_SENSORS_MAX16065 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX1668 is not set
+# CONFIG_SENSORS_MAX197 is not set
+# CONFIG_SENSORS_MAX6639 is not set
+# CONFIG_SENSORS_MAX6642 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_MAX6697 is not set
+# CONFIG_SENSORS_HTU21 is not set
+# CONFIG_SENSORS_MCP3021 is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM73 is not set
+# CONFIG_SENSORS_LM75 is not set
+CONFIG_SENSORS_LM77=y
+# 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_LM95234 is not set
+# CONFIG_SENSORS_LM95241 is not set
+# CONFIG_SENSORS_LM95245 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_NTC_THERMISTOR is not set
+# CONFIG_SENSORS_NCT6683 is not set
+# CONFIG_SENSORS_NCT6775 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_PMBUS is not set
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_SHT21 is not set
+# CONFIG_SENSORS_SHTC1 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_EMC1403 is not set
+# CONFIG_SENSORS_EMC2103 is not set
+# CONFIG_SENSORS_EMC6W201 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_SCH56XX_COMMON is not set
+# CONFIG_SENSORS_SMM665 is not set
+# CONFIG_SENSORS_ADC128D818 is not set
+# CONFIG_SENSORS_ADS1015 is not set
+# CONFIG_SENSORS_ADS7828 is not set
+# CONFIG_SENSORS_AMC6821 is not set
+# CONFIG_SENSORS_INA209 is not set
+# CONFIG_SENSORS_INA2XX is not set
+# CONFIG_SENSORS_THMC50 is not set
+# CONFIG_SENSORS_TMP102 is not set
+# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_VT8231 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_W83795 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83L786NG is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+# CONFIG_THERMAL is not set
+# CONFIG_WATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+# CONFIG_SSB is not set
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+# CONFIG_BCMA is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_AS3711 is not set
+# CONFIG_PMIC_ADP5520 is not set
+# CONFIG_MFD_AAT2870_CORE is not set
+# CONFIG_MFD_BCM590XX is not set
+# CONFIG_MFD_AXP20X is not set
+# CONFIG_MFD_CROS_EC is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_MFD_DA9052_I2C is not set
+# CONFIG_MFD_DA9055 is not set
+# CONFIG_MFD_DA9063 is not set
+# CONFIG_MFD_MC13XXX_I2C is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HTC_I2CPLD is not set
+# CONFIG_LPC_ICH is not set
+# CONFIG_LPC_SCH is not set
+# CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_KEMPLD is not set
+# CONFIG_MFD_88PM800 is not set
+# CONFIG_MFD_88PM805 is not set
+# CONFIG_MFD_88PM860X is not set
+# CONFIG_MFD_MAX14577 is not set
+# CONFIG_MFD_MAX77686 is not set
+# CONFIG_MFD_MAX77693 is not set
+# CONFIG_MFD_MAX8907 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
+# CONFIG_MFD_VIPERBOARD is not set
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_RTSX_PCI is not set
+# CONFIG_MFD_RTSX_USB is not set
+# CONFIG_MFD_RC5T583 is not set
+# CONFIG_MFD_SEC_CORE is not set
+# CONFIG_MFD_SI476X_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_SMSC is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_MFD_SYSCON is not set
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_LP3943 is not set
+# CONFIG_MFD_LP8788 is not set
+# CONFIG_MFD_PALMAS is not set
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS65090 is not set
+# CONFIG_MFD_TPS65217 is not set
+# CONFIG_MFD_TPS65218 is not set
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_MFD_TPS80031 is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_TWL6040_CORE is not set
+# CONFIG_MFD_WL1273_CORE is not set
+# CONFIG_MFD_LM3533 is not set
+# CONFIG_MFD_TIMBERDALE is not set
+# CONFIG_MFD_TC3589X is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_MFD_VX855 is not set
+# CONFIG_MFD_ARIZONA_I2C is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
+# CONFIG_REGULATOR is not set
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+
+#
+# Direct Rendering Manager
+#
+# CONFIG_DRM is not set
+
+#
+# Frame buffer Devices
+#
+CONFIG_FB=m
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+# CONFIG_FB_CFB_FILLRECT is not set
+# CONFIG_FB_CFB_COPYAREA is not set
+# CONFIG_FB_CFB_IMAGEBLIT is not set
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_OPENCORES is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_I740 is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_SMSCUFX is not set
+# CONFIG_FB_UDL is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+# CONFIG_FB_AUO_K190X is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+# CONFIG_LCD_PLATFORM is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=m
+CONFIG_BACKLIGHT_GENERIC=m
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
+# CONFIG_BACKLIGHT_LM3639 is not set
+# CONFIG_BACKLIGHT_GPIO is not set
+# CONFIG_BACKLIGHT_LV5207LP is not set
+# CONFIG_BACKLIGHT_BD6107 is not set
+# CONFIG_VGASTATE is not set
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=m
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+# CONFIG_LOGO is not set
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_SEQUENCER=m
+# CONFIG_SND_SEQ_DUMMY is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+# CONFIG_SND_VERBOSE_PROCFS is not set
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_RAWMIDI_SEQ=m
+# CONFIG_SND_OPL3_LIB_SEQ is not set
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+# CONFIG_SND_EMU10K1_SEQ is not set
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_ALOOP is not set
+# CONFIG_SND_VIRMIDI is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+CONFIG_SND_PCI=y
+# CONFIG_SND_AD1889 is not set
+# CONFIG_SND_ALS300 is not set
+# CONFIG_SND_ALI5451 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_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_OXYGEN is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CS5535AUDIO is not set
+# CONFIG_SND_CTXFI is not set
+# CONFIG_SND_DARLA20 is not set
+# CONFIG_SND_GINA20 is not set
+# CONFIG_SND_LAYLA20 is not set
+# CONFIG_SND_DARLA24 is not set
+# CONFIG_SND_GINA24 is not set
+# CONFIG_SND_LAYLA24 is not set
+# CONFIG_SND_MONA is not set
+# CONFIG_SND_MIA is not set
+# CONFIG_SND_ECHO3G is not set
+# CONFIG_SND_INDIGO is not set
+# CONFIG_SND_INDIGOIO is not set
+# CONFIG_SND_INDIGODJ is not set
+# CONFIG_SND_INDIGOIOX is not set
+# CONFIG_SND_INDIGODJX 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_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_HDSPM is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_LOLA is not set
+# CONFIG_SND_LX6464ES is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_PCXHR is not set
+# CONFIG_SND_RIPTIDE is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_TRIDENT is not set
+# 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_YMFPCI is not set
+
+#
+# HD-Audio
+#
+# CONFIG_SND_HDA_INTEL is not set
+CONFIG_SND_MIPS=y
+# CONFIG_SND_AU1X00 is not set
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+# CONFIG_SND_USB_UA101 is not set
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+# CONFIG_SND_USB_6FIRE is not set
+# CONFIG_SND_USB_HIFACE is not set
+# CONFIG_SND_BCD2000 is not set
+CONFIG_SND_PCMCIA=y
+# CONFIG_SND_VXPOCKET is not set
+# CONFIG_SND_PDAUDIOCF is not set
+# CONFIG_SND_SOC is not set
+# CONFIG_SOUND_PRIME is not set
+
+#
+# HID support
+#
+CONFIG_HID=y
+# CONFIG_HIDRAW is not set
+# CONFIG_UHID is not set
+CONFIG_HID_GENERIC=y
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_ACRUX is not set
+# CONFIG_HID_APPLE is not set
+# CONFIG_HID_APPLEIR is not set
+# CONFIG_HID_AUREAL is not set
+# CONFIG_HID_BELKIN is not set
+# CONFIG_HID_CHERRY is not set
+# CONFIG_HID_CHICONY is not set
+# CONFIG_HID_PRODIKEYS is not set
+# CONFIG_HID_CP2112 is not set
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_ELECOM is not set
+# CONFIG_HID_ELO is not set
+# CONFIG_HID_EZKEY is not set
+# CONFIG_HID_HOLTEK is not set
+# CONFIG_HID_HUION is not set
+# CONFIG_HID_KEYTOUCH is not set
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_UCLOGIC is not set
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_ICADE is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LCPOWER is not set
+# CONFIG_HID_LENOVO_TPKBD is not set
+# CONFIG_HID_LOGITECH is not set
+# CONFIG_HID_MAGICMOUSE is not set
+# CONFIG_HID_MICROSOFT is not set
+# CONFIG_HID_MONTEREY is not set
+# CONFIG_HID_MULTITOUCH is not set
+# CONFIG_HID_NTRIG is not set
+# CONFIG_HID_ORTEK is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_PICOLCD is not set
+# CONFIG_HID_PRIMAX is not set
+# CONFIG_HID_ROCCAT is not set
+# CONFIG_HID_SAITEK is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SPEEDLINK is not set
+# CONFIG_HID_STEELSERIES is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_RMI is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TIVO is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_XINMO is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+# CONFIG_HID_SENSOR_HUB is not set
+
+#
+# USB HID support
+#
+CONFIG_USB_HID=m
+# CONFIG_HID_PID is not set
+CONFIG_USB_HIDDEV=y
+
+#
+# USB HID Boot Protocol drivers
+#
+CONFIG_USB_KBD=m
+CONFIG_USB_MOUSE=m
+
+#
+# I2C HID support
+#
+# CONFIG_I2C_HID is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=y
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEFAULT_PERSIST=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_OTG_FSM is not set
+# CONFIG_USB_MON is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+# CONFIG_USB_XHCI_HCD is not set
+CONFIG_USB_EHCI_HCD=y
+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_EHCI_PCI=y
+# CONFIG_USB_EHCI_HCD_PLATFORM is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
+# CONFIG_USB_FUSBH200_HCD is not set
+# CONFIG_USB_FOTG210_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PCI=y
+# CONFIG_USB_OHCI_HCD_PLATFORM is not set
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_U132_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HCD_TEST_MODE is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_REALTEK is not set
+CONFIG_USB_STORAGE_DATAFAB=y
+CONFIG_USB_STORAGE_FREECOM=y
+CONFIG_USB_STORAGE_ISD200=y
+CONFIG_USB_STORAGE_USBAT=y
+CONFIG_USB_STORAGE_SDDR09=y
+CONFIG_USB_STORAGE_SDDR55=y
+CONFIG_USB_STORAGE_JUMPSHOT=y
+CONFIG_USB_STORAGE_ALAUDA=y
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+CONFIG_USB_STORAGE_KARMA=y
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+# CONFIG_USB_STORAGE_ENE_UB6250 is not set
+# CONFIG_USB_UAS is not set
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+# CONFIG_USB_MUSB_HDRC is not set
+# CONFIG_USB_DWC3 is not set
+# CONFIG_USB_DWC2 is not set
+# CONFIG_USB_CHIPIDEA is not set
+
+#
+# USB port drivers
+#
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+# CONFIG_USB_SERIAL_SIMPLE is not set
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+# CONFIG_USB_SERIAL_CH341 is not set
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+# CONFIG_USB_SERIAL_CP210X is not set
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+# CONFIG_USB_SERIAL_F81232 is not set
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+# CONFIG_USB_SERIAL_IUU is not set
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+# CONFIG_USB_SERIAL_METRO is not set
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+# CONFIG_USB_SERIAL_MXUPORT is not set
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+# CONFIG_USB_SERIAL_OTI6858 is not set
+# CONFIG_USB_SERIAL_QCAUX is not set
+# CONFIG_USB_SERIAL_QUALCOMM is not set
+# CONFIG_USB_SERIAL_SPCP8X5 is not set
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+# CONFIG_USB_SERIAL_SYMBOL is not set
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+# CONFIG_USB_SERIAL_OPTICON is not set
+# CONFIG_USB_SERIAL_XSENS_MT is not set
+# CONFIG_USB_SERIAL_WISHBONE is not set
+# CONFIG_USB_SERIAL_ZTE is not set
+# CONFIG_USB_SERIAL_SSU100 is not set
+# CONFIG_USB_SERIAL_QT2 is not set
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+# CONFIG_USB_SEVSEG is not set
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+# CONFIG_USB_EHSET_TEST_FIXTURE is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_YUREX is not set
+CONFIG_USB_EZUSB_FX2=m
+# CONFIG_USB_HSIC_USB3503 is not set
+
+#
+# USB Physical Layer drivers
+#
+# CONFIG_USB_PHY is not set
+# CONFIG_NOP_USB_XCEIV is not set
+# CONFIG_SAMSUNG_USB2PHY is not set
+# CONFIG_SAMSUNG_USB3PHY is not set
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_USB_ISP1301 is not set
+# CONFIG_USB_GADGET is not set
+# CONFIG_UWB is not set
+# CONFIG_MMC is not set
+# CONFIG_MEMSTICK is not set
+# CONFIG_NEW_LEDS is not set
+# CONFIG_ACCESSIBILITY is not set
+# CONFIG_INFINIBAND is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_DS3232 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+CONFIG_RTC_DRV_RS5C372=y
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_ISL12022 is not set
+# CONFIG_RTC_DRV_ISL12057 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF2127 is not set
+# CONFIG_RTC_DRV_PCF8523 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_BQ32K is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+# CONFIG_RTC_DRV_EM3027 is not set
+# CONFIG_RTC_DRV_RV3029C2 is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+# CONFIG_RTC_DRV_DS2404 is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_AU1XXX is not set
+# CONFIG_RTC_DRV_MOXART is not set
+# CONFIG_RTC_DRV_XGENE is not set
+
+#
+# HID Sensor RTC drivers
+#
+# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
+# CONFIG_DMADEVICES is not set
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+# CONFIG_VIRT_DRIVERS is not set
+
+#
+# Virtio drivers
+#
+# CONFIG_VIRTIO_PCI is not set
+# CONFIG_VIRTIO_MMIO is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+# CONFIG_STAGING is not set
+
+#
+# SOC (System On Chip) specific Drivers
+#
+
+#
+# Hardware Spinlock drivers
+#
+# CONFIG_SH_TIMER_CMT is not set
+# CONFIG_SH_TIMER_MTU2 is not set
+# CONFIG_SH_TIMER_TMU is not set
+# CONFIG_EM_TIMER_STI is not set
+# CONFIG_MAILBOX is not set
+# CONFIG_IOMMU_SUPPORT is not set
+
+#
+# Remoteproc drivers
+#
+# CONFIG_STE_MODEM_RPROC is not set
+
+#
+# Rpmsg drivers
+#
+# CONFIG_PM_DEVFREQ is not set
+# CONFIG_EXTCON is not set
+# CONFIG_MEMORY is not set
+# CONFIG_IIO is not set
+# CONFIG_VME_BUS is not set
+# CONFIG_PWM is not set
+# CONFIG_IPACK_BUS is not set
+# CONFIG_RESET_CONTROLLER is not set
+# CONFIG_FMC is not set
+
+#
+# PHY Subsystem
+#
+# CONFIG_GENERIC_PHY is not set
+# CONFIG_BCM_KONA_USB2_PHY is not set
+# CONFIG_PHY_SAMSUNG_USB2 is not set
+# CONFIG_POWERCAP is not set
+# CONFIG_MCB is not set
+# CONFIG_THUNDERBOLT is not set
+
+#
+# Firmware Drivers
+#
+# CONFIG_FIRMWARE_MEMMAP is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+# CONFIG_EXT2_FS_SECURITY is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+# CONFIG_EXT3_FS_SECURITY is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=y
+CONFIG_JBD2=y
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=m
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+# CONFIG_DNOTIFY is not set
+CONFIG_INOTIFY_USER=y
+# CONFIG_FANOTIFY is not set
+# CONFIG_QUOTA is not set
+# CONFIG_QUOTACTL is not set
+CONFIG_AUTOFS4_FS=y
+# CONFIG_FUSE_FS is not set
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+# CONFIG_ZISOFS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_KERNFS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_LOGFS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_SQUASHFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_MINIX_FS_NATIVE_ENDIAN is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX6FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_F2FS_FS is not set
+# CONFIG_AUFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V2=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_SWAP is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+# CONFIG_NFSD_V4 is not set
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_SUNRPC_DEBUG is not set
+# CONFIG_CEPH_FS is not set
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+CONFIG_CIFS_STATS2=y
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_DEBUG=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_SMB2 is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# 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_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+CONFIG_NLS_CODEPAGE_932=y
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# 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_9 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_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_MAC_ROMAN is not set
+# CONFIG_NLS_MAC_CELTIC is not set
+# CONFIG_NLS_MAC_CENTEURO is not set
+# CONFIG_NLS_MAC_CROATIAN is not set
+# CONFIG_NLS_MAC_CYRILLIC is not set
+# CONFIG_NLS_MAC_GAELIC is not set
+# CONFIG_NLS_MAC_GREEK is not set
+# CONFIG_NLS_MAC_ICELAND is not set
+# CONFIG_NLS_MAC_INUIT is not set
+# CONFIG_NLS_MAC_ROMANIAN is not set
+# CONFIG_NLS_MAC_TURKISH is not set
+CONFIG_NLS_UTF8=y
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+
+#
+# printk and dmesg options
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
+# CONFIG_BOOT_PRINTK_DELAY is not set
+
+#
+# Compile-time checks and compiler options
+#
+# CONFIG_DEBUG_INFO is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=1024
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_READABLE_ASM is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_MAGIC_SYSRQ is not set
+CONFIG_DEBUG_KERNEL=y
+
+#
+# Memory Debugging
+#
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_SHIRQ is not set
+
+#
+# Debug Lockups and Hangs
+#
+# CONFIG_LOCKUP_DETECTOR is not set
+# CONFIG_DETECT_HUNG_TASK is not set
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_LOCK_TORTURE_TEST is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_PI_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+
+#
+# RCU Debugging
+#
+# CONFIG_SPARSE_RCU_POINTER is not set
+# CONFIG_TORTURE_TEST is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_TRACE is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_NOTIFIER_ERROR_INJECTION is not set
+# CONFIG_FAULT_INJECTION is not set
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+
+#
+# Runtime Testing
+#
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_RBTREE_TEST is not set
+# CONFIG_INTERVAL_TREE_TEST is not set
+# CONFIG_PERCPU_TEST is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_TEST_MODULE is not set
+# CONFIG_TEST_USER_COPY is not set
+# CONFIG_TEST_BPF is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_EARLY_PRINTK is not set
+CONFIG_CMDLINE_BOOL=y
+CONFIG_CMDLINE="\"console=ttyS0,115200 root=/dev/ram\""
+# CONFIG_CMDLINE_OVERRIDE is not set
+# CONFIG_RUNTIME_DEBUG is not set
+# CONFIG_DEBUG_ZBOOT is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+# CONFIG_CRYPTO_USER is not set
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_CMAC=m
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_XCBC=m
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=y
+# CONFIG_CRYPTO_CRC32 is not set
+# CONFIG_CRYPTO_CRCT10DIF is not set
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_MICHAEL_MIC=m
+# 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_SHA1=y
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST_COMMON=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_ZLIB is not set
+CONFIG_CRYPTO_LZO=m
+# CONFIG_CRYPTO_LZ4 is not set
+# CONFIG_CRYPTO_LZ4HC is not set
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+# CONFIG_CRYPTO_USER_API_HASH is not set
+# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_NET_UTILS=y
+CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_IO=y
+CONFIG_CRC_CCITT=y
+CONFIG_CRC16=y
+# CONFIG_CRC_T10DIF is not set
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+# CONFIG_CRC32_SELFTEST is not set
+CONFIG_CRC32_SLICEBY8=y
+# CONFIG_CRC32_SLICEBY4 is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_BIT is not set
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=y
+# CONFIG_CRC8 is not set
+# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=m
+CONFIG_LZO_DECOMPRESS=m
+# CONFIG_XZ_DEC is not set
+# CONFIG_XZ_DEC_BCJ is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=y
+CONFIG_TEXTSEARCH_BM=y
+CONFIG_TEXTSEARCH_FSM=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAS_DMA=y
+CONFIG_DQL=y
+CONFIG_NLATTR=y
+CONFIG_GENERIC_ATOMIC64=y
+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
+CONFIG_AVERAGE=y
+# CONFIG_CORDIC is not set
+# CONFIG_DDR is not set
+CONFIG_FONT_SUPPORT=m
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_FONT_AUTOSELECT=y
+# CONFIG_VIRTUALIZATION is not set
diff --git a/linux-patch-3.16-oms.patch b/linux-patch-3.16-oms.patch
new file mode 100644 (file)
index 0000000..8545c03
--- /dev/null
@@ -0,0 +1,2402 @@
+diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
+index 4e238e6..4356ab2 100644
+--- a/arch/mips/Kconfig
++++ b/arch/mips/Kconfig
+@@ -876,6 +876,21 @@ config SCHED_OMIT_FRAME_POINTER
+       bool
+       default y
++config OMS400_PUSHSW
++      bool
++      depends on MIPS && MIPS_OMS400
++      default y
++
++config OMS400_LED
++      bool
++      depends on MIPS && MIPS_OMS400
++      default y
++
++config OMS400_DIO
++      bool
++      depends on MIPS && MIPS_OMS400
++      default y
++
+ #
+ # Select some configuration options automatically based on user selections.
+ #
+diff --git a/arch/mips/alchemy/Kconfig b/arch/mips/alchemy/Kconfig
+index b962898..1de48ea 100644
+--- a/arch/mips/alchemy/Kconfig
++++ b/arch/mips/alchemy/Kconfig
+@@ -37,6 +37,13 @@ config MIPS_DB1XXX
+                              PB1500 PB1100 PB1550 PB1200
+         Board type is autodetected during boot.
++config MIPS_OMS400
++      bool "Plat'Home Open Micro Server based on  AU1550/400"
++      select ARCH_REQUIRE_GPIOLIB
++      select HW_HAS_PCI
++      select SYS_SUPPORTS_LITTLE_ENDIAN
++      select SYS_HAS_EARLY_PRINTK
++
+ config MIPS_XXS1500
+       bool "MyCable XXS1500 board"
+       select ALCHEMY_GPIOINT_AU1000
+diff --git a/arch/mips/alchemy/Platform b/arch/mips/alchemy/Platform
+index 33c9da3..3b06436 100644
+--- a/arch/mips/alchemy/Platform
++++ b/arch/mips/alchemy/Platform
+@@ -13,6 +13,13 @@ cflags-$(CONFIG_MIPS_DB1XXX)        += -I$(srctree)/arch/mips/include/asm/mach-db1x00
+ load-$(CONFIG_MIPS_DB1XXX)    += 0xffffffff80100000
+ #
++# Plathome OMS-AL400/128
++#
++platform-$(CONFIG_MIPS_OMS400)        += alchemy/devboards/
++cflags-$(CONFIG_MIPS_OMS400)  += -I$(srctree)/arch/mips/include/asm/mach-db1x00
++load-$(CONFIG_MIPS_OMS400)    += 0xffffffff80100000
++
++#
+ # 4G-Systems MTX-1 "MeshCube" wireless router
+ #
+ platform-$(CONFIG_MIPS_MTX1)  += alchemy/
+diff --git a/arch/mips/alchemy/devboards/Makefile b/arch/mips/alchemy/devboards/Makefile
+index 9da3659..58269d8 100644
+--- a/arch/mips/alchemy/devboards/Makefile
++++ b/arch/mips/alchemy/devboards/Makefile
+@@ -2,5 +2,7 @@
+ # Alchemy Develboards
+ #
+-obj-y += bcsr.o platform.o db1000.o db1200.o db1300.o db1550.o db1xxx.o
++#obj-y += bcsr.o platform.o db1000.o db1200.o db1300.o db1550.o db1xxx.o
++obj-y += bcsr.o platform.o
+ obj-$(CONFIG_PM)              += pm.o
++obj-$(CONFIG_MIPS_OMS400)     += oms400.o
+diff --git a/arch/mips/alchemy/devboards/oms400.c b/arch/mips/alchemy/devboards/oms400.c
+new file mode 100644
+index 0000000..cbd0534
+--- /dev/null
++++ b/arch/mips/alchemy/devboards/oms400.c
+@@ -0,0 +1,204 @@
++/*
++ *
++ * BRIEF MODULE DESCRIPTION
++ *    Plat'Home OMS-AL400/128 setup.
++ *            (based on arch/mips/alchemy/devboards/db1x00/platform.c
++ *                  and arch/mips/alchemy/devboards/db1x00/board_setup.c)
++ *
++ * Author: YAMAMOTO Kenji
++ *
++ *  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.
++ *
++ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
++ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
++ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
++ *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
++ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
++ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
++ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
++ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
++ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
++ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++ *
++ *  You should have received a copy of the  GNU General Public License along
++ *  with this program; if not, write  to the Free Software Foundation, Inc.,
++ *  675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <linux/gpio.h>
++#include <linux/interrupt.h>
++#include <linux/platform_device.h>
++#include <asm/mach-au1x00/au1000_dma.h>
++#include <asm/mach-db1x00/bcsr.h>
++#include "platform.h"
++
++const char *get_system_type(void)
++{
++      return "Plat'Home OMS-AL400/128";
++}
++
++void __init board_setup(void)
++{
++      printk("Plat'Home OMS-AL400/128 based on AMD Alchemy Au1550/400\n");
++
++      /* initialize board register space */
++      bcsr_init(DB1000_BCSR_PHYS_ADDR,
++                DB1000_BCSR_PHYS_ADDR + DB1000_BCSR_HEXLED_OFS);
++
++      bcsr_write(BCSR_PCMCIA, 0);     /* turn off PCMCIA power */
++
++      /* Enable GPIO[31:0] inputs */
++      alchemy_gpio1_input_enable();
++
++      au_sync();
++}
++
++static int __init oms400_init_irq(void)
++{
++      irq_set_irq_type(AU1550_GPIO0_INT, IRQF_TRIGGER_LOW);  /* CD0# */
++      irq_set_irq_type(AU1550_GPIO1_INT, IRQF_TRIGGER_LOW);  /* CD1# */
++      irq_set_irq_type(AU1550_GPIO3_INT, IRQF_TRIGGER_LOW);  /* CARD0# */ /* PCMCIA Card 0 IRQ# */
++      irq_set_irq_type(AU1550_GPIO5_INT, IRQF_TRIGGER_LOW);  /* CARD1# */
++      irq_set_irq_type(AU1550_GPIO21_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
++      irq_set_irq_type(AU1550_GPIO22_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
++      irq_set_irq_type(AU1550_GPIO15_INT, IRQF_TRIGGER_HIGH);  /* PUSH BUTTON IRQ#   */
++      irq_set_irq_type(AU1550_GPIO201_205_INT, (IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING));  /* DIO in */
++
++      return 0;
++}
++arch_initcall(oms400_init_irq);
++
++static int oms400_map_pci_irq(const struct pci_dev *d, u8 slot, u8 pin)
++{
++      if ((slot < 1) || (slot > 4) || pin == 0)
++              return -1;
++      /* External PCI slot */
++      if (slot == 1) {
++              switch (pin) {
++              case 1: return AU1550_PCI_INTD;
++              case 2: return AU1550_PCI_INTD;
++              case 3: return AU1550_PCI_INTD;
++              case 4: return AU1550_PCI_INTD;
++      }
++      }
++      /* uPD720101 USB     */
++      if (slot == 2) {
++              switch (pin) {
++              case 1: return AU1550_PCI_INTC;
++              case 2: return AU1550_PCI_INTC;
++              case 3: return AU1550_PCI_INTC;
++              case 4: return 0xff;
++              }
++      }
++      /* E1000 GBEther     */
++      if (slot == 3) {
++              switch (pin) {
++              case 1: return AU1550_PCI_INTB;
++              case 2: return 0xff;
++              case 3: return 0xff;
++              case 4: return 0xff;
++              }
++      }
++      /* E1000 GBEther     */
++      if (slot == 4) {
++              switch (pin) {
++              case 1: return AU1550_PCI_INTA;
++              case 2: return 0xff;
++              case 3: return 0xff;
++              case 4: return 0xff;
++              }
++      }
++      return -1;
++}
++
++static struct resource oms400_pci_host_res[] = {
++      [0] = {
++              .start  = AU1500_PCI_PHYS_ADDR,
++              .end    = AU1500_PCI_PHYS_ADDR + 0xfff,
++              .flags  = IORESOURCE_MEM,
++      },
++};
++
++static struct alchemy_pci_platdata oms400_pci_pd = {
++      .board_map_irq  = oms400_map_pci_irq,
++};
++
++static struct platform_device oms400_pci_host_dev = {
++      .dev.platform_data = &oms400_pci_pd,
++      .name           = "alchemy-pci",
++      .id             = 0,
++      .num_resources  = ARRAY_SIZE(oms400_pci_host_res),
++      .resource       = oms400_pci_host_res,
++};
++
++static int __init oms400_pci_init(void)
++{
++      return platform_device_register(&oms400_pci_host_dev);
++}
++/* must be arch_initcall; MIPS PCI scans busses in a subsys_initcall */
++arch_initcall(oms400_pci_init);
++
++static struct resource alchemy_ac97c_res[] = {
++      [0] = {
++              .start  = AU1000_AC97_PHYS_ADDR,
++              .end    = AU1000_AC97_PHYS_ADDR + 0xfff,
++              .flags  = IORESOURCE_MEM,
++      },
++      [1] = {
++              .start  = DMA_ID_AC97C_TX,
++              .end    = DMA_ID_AC97C_TX,
++              .flags  = IORESOURCE_DMA,
++      },
++      [2] = {
++              .start  = DMA_ID_AC97C_RX,
++              .end    = DMA_ID_AC97C_RX,
++              .flags  = IORESOURCE_DMA,
++      },
++};
++
++static struct platform_device alchemy_ac97c_dev = {
++      .name           = "alchemy-ac97c",
++      .id             = -1,
++      .resource       = alchemy_ac97c_res,
++      .num_resources  = ARRAY_SIZE(alchemy_ac97c_res),
++};
++
++static struct platform_device alchemy_ac97c_dma_dev = {
++      .name           = "alchemy-pcm-dma",
++      .id             = 0,
++};
++
++static struct platform_device oms400_codec_dev = {
++      .name           = "ac97-codec",
++      .id             = -1,
++};
++
++static struct platform_device oms400_audio_dev = {
++      .name           = "db1000-audio",
++};
++
++static int __init oms400_dev_init(void)
++{
++      db1x_register_pcmcia_socket(
++              AU1000_PCMCIA_ATTR_PHYS_ADDR,
++              AU1000_PCMCIA_ATTR_PHYS_ADDR + 0x000400000 - 1,
++              AU1000_PCMCIA_MEM_PHYS_ADDR,
++              AU1000_PCMCIA_MEM_PHYS_ADDR  + 0x000400000 - 1,
++              AU1000_PCMCIA_IO_PHYS_ADDR,
++              AU1000_PCMCIA_IO_PHYS_ADDR   + 0x000010000 - 1,
++              AU1550_GPIO3_INT, AU1550_GPIO0_INT,
++              /*AU1550_GPIO21_INT*/0, 0, 0);
++
++      db1x_register_norflash(0x01000000, 2 /* 16-bits */, (bcsr_read(BCSR_STATUS) & BCSR_STATUS_DB1000_SWAPBOOT));
++
++      platform_device_register(&oms400_codec_dev);
++      platform_device_register(&alchemy_ac97c_dma_dev);
++      platform_device_register(&alchemy_ac97c_dev);
++      platform_device_register(&oms400_audio_dev);
++
++      return 0;
++}
++device_initcall(oms400_dev_init);
+diff --git a/arch/mips/alchemy/devboards/platform.c b/arch/mips/alchemy/devboards/platform.c
+index 8df86eb..bf0fe45 100644
+--- a/arch/mips/alchemy/devboards/platform.c
++++ b/arch/mips/alchemy/devboards/platform.c
+@@ -199,6 +199,15 @@ int __init db1x_register_norflash(unsigned long size, int width,
+        * to swap the physical locations of the 2 NOR flash banks.
+        */
+       i = 0;
++#ifdef CONFIG_MIPS_OMS400
++      {
++              /* first NOR chip */
++              parts[i].offset = 0;
++              parts[i].name = "Firmware";
++              parts[i].size = size - 0x00400000;
++              i++;
++      }
++#else
+       if (!swapped) {
+               /* first NOR chip */
+               parts[i].offset = 0;
+@@ -211,13 +220,40 @@ int __init db1x_register_norflash(unsigned long size, int width,
+       parts[i].name = "User FS 2";
+       parts[i].size = (size / 2) - (0x20000000 - 0x1fc00000);
+       i++;
++#endif
+       parts[i].offset = MTDPART_OFS_APPEND;
+       parts[i].name = "YAMON";
++#ifdef CONFIG_MIPS_OMS400
++      parts[i].size = 0x0180000;
++#else
+       parts[i].size = YAMON_SIZE;
++#endif
+       parts[i].mask_flags = MTD_WRITEABLE;
+       i++;
++#ifdef CONFIG_MIPS_OMS400
++      parts[i].offset = MTDPART_OFS_APPEND;
++      parts[i].name = "User Area";
++      parts[i].size = 0x00200000;
++      i++;
++
++      parts[i].offset = MTDPART_OFS_APPEND;
++      parts[i].name = "flashcfg save area";
++      parts[i].size = 0x00040000;
++      i++;
++
++      parts[i].offset = MTDPART_OFS_APPEND;
++      parts[i].name = "YAMON Params";
++      parts[i].size = 0x00040000;
++      i++;
++
++      parts[i].offset = 0x00000000;
++      parts[i].name = "Entire Flash ROM";
++      parts[i].size = size;
++      parts[i].mask_flags = MTD_WRITEABLE;
++      i++;
++#else
+       parts[i].offset = MTDPART_OFS_APPEND;
+       parts[i].name = "raw kernel";
+       parts[i].size = 0x00400000 - YAMON_SIZE - YAMON_ENV_SIZE;
+@@ -235,10 +271,16 @@ int __init db1x_register_norflash(unsigned long size, int width,
+               parts[i].size = size / 2;
+               i++;
+       }
++#endif
+       pfd->width = width;
+       pfd->parts = parts;
++
++#ifdef CONFIG_MIPS_OMS400
++      pfd->nr_parts = i;
++#else
+       pfd->nr_parts = 5;
++#endif
+       pd->dev.platform_data = pfd;
+       pd->resource = res;
+diff --git a/arch/mips/include/asm/dio_oms400.h b/arch/mips/include/asm/dio_oms400.h
+new file mode 100644
+index 0000000..55ef266
+--- /dev/null
++++ b/arch/mips/include/asm/dio_oms400.h
+@@ -0,0 +1,20 @@
++/*
++ * 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) 1995, 1996, 2001 Ralf Baechle
++ * Copyright (C) 2001 MIPS Technologies, Inc.
++ */
++#ifndef _DIO_OMS400_H
++#define _DIO_OMS400_H
++
++#include <asm/ioctl.h>
++
++#define DIOIOC_RD_DIN         _IOR('D', 0x31, int)
++#define DIOIOC_WT_DOUT                _IOW('D', 0x32, int)
++#define DIOIOC_RD_DOUT                _IOR('D', 0x33, int)
++#define DIOIOC_WAITCHANGE     _IOR('D', 0x34, int)
++#define DIOIOC_GETWAITPID     _IOR('D', 0x35, int)
++
++#endif /* _DOI_OMS400_H */
+diff --git a/arch/mips/include/asm/mach-db1x00/bcsr.h b/arch/mips/include/asm/mach-db1x00/bcsr.h
+index 3c3ed4a..4744e93 100644
+--- a/arch/mips/include/asm/mach-db1x00/bcsr.h
++++ b/arch/mips/include/asm/mach-db1x00/bcsr.h
+@@ -93,6 +93,7 @@ enum bcsr_id {
+ /* register "WHOAMI" bits 11:8 identify the board */
+ enum bcsr_whoami_boards {
++      BCSR_WHOAMI_OMS400 = 0, /* ???? */
+       BCSR_WHOAMI_PB1500 = 1,
+       BCSR_WHOAMI_PB1500R2,
+       BCSR_WHOAMI_PB1100,
+diff --git a/arch/mips/include/asm/pushsw_oms400.h b/arch/mips/include/asm/pushsw_oms400.h
+new file mode 100644
+index 0000000..a99505b
+--- /dev/null
++++ b/arch/mips/include/asm/pushsw_oms400.h
+@@ -0,0 +1,19 @@
++/*
++ *    Century <www.centurysys.co.jp>
++ *            - Century's push switch driver header
++ */
++
++#include <linux/ioctl.h>
++#include <linux/major.h>
++/* #include <linux/miscdevice.h> */
++
++#define PUSHSW_MAJOR          (MISC_MAJOR)
++
++#define       PUSHSW_IOCTL_BASE       'P'
++
++#define       PSWIOC_GETSTATUS        _IOR(PUSHSW_IOCTL_BASE, 0, int)
++#define       PSWIOC_WAITPUSH         _IOR(PUSHSW_IOCTL_BASE, 1, int)
++#define       PSWIOC_GETWAITPID       _IOR(PUSHSW_IOCTL_BASE, 2, int)
++
++#define PSWIOF_PUSHED         (1)
++#define PSWIOF_NOTPUSHED      (0)
+diff --git a/arch/mips/kernel/reset.c b/arch/mips/kernel/reset.c
+index 07fc524..adb2620 100644
+--- a/arch/mips/kernel/reset.c
++++ b/arch/mips/kernel/reset.c
+@@ -14,6 +14,12 @@
+ #include <asm/reboot.h>
++#if defined(CONFIG_MIPS_OMS400) && defined(CONFIG_OMS400_LED)
++#include <linux/delay.h>
++#define BLINK_MSEC (1000)
++extern int obsled_out(int);
++#endif
++
+ /*
+  * Urgs ...  Too many MIPS machines to handle this in a generic way.
+  * So handle all using function pointers to machine specific
+@@ -41,4 +47,15 @@ void machine_power_off(void)
+ {
+       if (pm_power_off)
+               pm_power_off();
++
++#if defined(CONFIG_MIPS_OMS400) && defined(CONFIG_OMS400_LED)
++      while(1) {
++              obsled_out(7);
++              __asm__ volatile ("sync");
++              mdelay(BLINK_MSEC);
++              obsled_out(0);
++              __asm__ volatile ("sync");
++              mdelay(BLINK_MSEC);
++      }
++#endif
+ }
+diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S
+index 3b46f7c..9eb5aa9 100644
+--- a/arch/mips/kernel/vmlinux.lds.S
++++ b/arch/mips/kernel/vmlinux.lds.S
+@@ -137,6 +137,12 @@ SECTIONS
+       __init_end = .;
+       /* freed after init ends here */
++#ifdef CONFIG_MIPS_OMS400
++      . = ALIGN(PAGE_SIZE);
++      .initrd_data : { *(.initrd_data) }
++      . = ALIGN(PAGE_SIZE);
++#endif
++
+       /*
+        * Force .bss to 64K alignment so that .bss..swapper_pg_dir
+        * gets that alignment.  .sbss should be empty, so there will be
+diff --git a/drivers/Makefile b/drivers/Makefile
+index 37b9ed4..14091df 100644
+--- a/drivers/Makefile
++++ b/drivers/Makefile
+@@ -62,6 +62,7 @@ obj-$(CONFIG_FB_INTEL)          += video/fbdev/intelfb/
+ obj-$(CONFIG_PARPORT)         += parport/
+ obj-y                         += base/ block/ misc/ mfd/ nfc/
+ obj-$(CONFIG_NUBUS)           += nubus/
++obj-$(CONFIG_PCCARD)          += pcmcia/
+ obj-y                         += macintosh/
+ obj-$(CONFIG_IDE)             += ide/
+ obj-$(CONFIG_SCSI)            += scsi/
+@@ -79,7 +80,7 @@ obj-$(CONFIG_UIO)            += uio/
+ obj-$(CONFIG_VFIO)            += vfio/
+ obj-y                         += cdrom/
+ obj-y                         += auxdisplay/
+-obj-$(CONFIG_PCCARD)          += pcmcia/
++#obj-$(CONFIG_PCCARD)         += pcmcia/
+ obj-$(CONFIG_DIO)             += dio/
+ obj-$(CONFIG_SBUS)            += sbus/
+ obj-$(CONFIG_ZORRO)           += zorro/
+diff --git a/drivers/char/Makefile b/drivers/char/Makefile
+index a324f93..489738a 100644
+--- a/drivers/char/Makefile
++++ b/drivers/char/Makefile
+@@ -47,6 +47,9 @@ obj-$(CONFIG_PC8736x_GPIO)   += pc8736x_gpio.o
+ obj-$(CONFIG_NSC_GPIO)                += nsc_gpio.o
+ obj-$(CONFIG_GPIO_TB0219)     += tb0219.o
+ obj-$(CONFIG_TELCLOCK)                += tlclk.o
++obj-$(CONFIG_OMS400_PUSHSW)   += pushsw_oms400.o
++obj-$(CONFIG_OMS400_LED)      += led_oms400.o
++obj-$(CONFIG_OMS400_DIO)      += dio_oms400.o
+ obj-$(CONFIG_MWAVE)           += mwave/
+ obj-y                         += agp/
+diff --git a/drivers/char/dio_oms400.c b/drivers/char/dio_oms400.c
+new file mode 100644
+index 0000000..226b153
+--- /dev/null
++++ b/drivers/char/dio_oms400.c
+@@ -0,0 +1,199 @@
++/*
++ *    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/module.h>
++#include <linux/sched.h>
++#include <linux/miscdevice.h>
++#include <linux/delay.h>
++#include <linux/proc_fs.h>
++#include <linux/capability.h>
++#include <linux/init.h>
++
++#include <asm/uaccess.h>
++#include <linux/types.h>
++#include <linux/interrupt.h>
++#include <linux/errno.h>
++#include <linux/kernel.h>
++#include <linux/fcntl.h>
++#include <asm/irq.h>
++#include <asm/ioctls.h>
++#include <asm/dio_oms400.h>
++#include <asm/io.h>
++#include <asm/mach-au1x00/au1000.h>
++#include <asm/mach-au1x00/gpio-au1000.h>
++
++#define DBGON(x)      x
++#define DBGOFF(x)
++
++#define DIO_VER               "0.01"
++#define DIO_IRQ               AU1500_GPIO_201_205
++
++/*----------------------------------------------------------------------------
++ *    Prototypes.
++ *----------------------------------------------------------------------------*/
++int dio_init(void);
++irqreturn_t dio_isr(int irq, void *dev_id, struct pt_regs *regs);
++static long dio_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
++static int dio_open(struct inode *inode, struct file *file);
++static int dio_release(struct inode *inode, struct file *file);
++
++/*----------------------------------------------------------------------------
++ *----------------------------------------------------------------------------*/
++static struct file_operations dio_fops = {
++      owner:          THIS_MODULE,
++      unlocked_ioctl:         dio_ioctl,
++      open:           dio_open,
++      release:        dio_release,
++};
++static struct miscdevice      dio_miscdev =
++      { OMS400DIO_MINOR, "dio", &dio_fops };
++static DECLARE_WAIT_QUEUE_HEAD(dio_wait);
++
++/* used to allow only one process at a time to "own" the DIO */
++static pid_t                  dio_wait_pid = 0;
++/*----------------------------------------------------------------------------
++ *----------------------------------------------------------------------------*/
++int
++dio_init(void)
++{
++      printk("DIO driver v%s\n", DIO_VER);
++
++#ifdef CONFIG_OMS400_DIO_ENABLE_IRQ
++      /* Install the DIO interrupt handler */
++      if (request_irq(DIO_IRQ, dio_isr, IRQF_IRQPOLL, "dio", NULL)) {
++              printk("[dio_open] interrupt %u not free\n", DIO_IRQ);
++              return (-EIO);
++      }
++      DBGOFF(printk("[dio_init] DIO installed on interrupt %u\n", DIO_IRQ);)
++#endif
++      misc_register(&dio_miscdev);
++      return (0);
++}     /* dio_init() */
++
++/*----------------------------------------------------------------------------
++ *----------------------------------------------------------------------------*/
++irqreturn_t
++dio_isr(int irq, void *dev_id, struct pt_regs *regs)
++{
++      dio_wait_pid = 0;
++
++      /* DBGOFF(printk(KERN_CRIT "p");) */
++      wake_up_interruptible(&dio_wait);
++      return IRQ_HANDLED;
++}     /* dio_isr() */
++
++/*----------------------------------------------------------------------------
++ *----------------------------------------------------------------------------*/
++static long
++dio_ioctl(struct file *file, unsigned int cmd,
++      unsigned long arg)
++{
++      unsigned long   flags;
++      DEFINE_SPINLOCK(driver_lock);
++      int val, mask, err;
++
++      if (iminor(file->f_path.dentry->d_inode) != OMS400DIO_MINOR) {
++              return (-ENODEV);
++      }
++
++      switch (cmd) {
++#ifdef CONFIG_OMS400_DIO_ENABLE_IRQ
++      case DIOIOC_GETWAITPID:
++              return (put_user(dio_wait_pid, (int *) arg));
++      case DIOIOC_WAITCHANGE:
++              /* protect dio_wait_pid */
++              spin_lock_irqsave(&driver_lock, flags);
++              if (dio_wait_pid == 0) {
++                      dio_wait_pid = current->pid;
++                      spin_unlock_irqrestore(&driver_lock, flags);
++                      DBGOFF(printk("[dio_ioctl] DIOIOC_WAITCHANGE pid %u\n", dio_wait_pid);)
++                      /* block until DIN change */
++                      wait_event_interruptible(dio_wait, (dio_wait_pid == 0));
++                      spin_lock_irqsave(&driver_lock, flags);
++                      dio_wait_pid = 0;
++                      spin_unlock_irqrestore(&driver_lock, flags);
++
++                      DBGOFF(printk("[dio_ioctl] unblocked\n");)
++                      if (signal_pending(current)) {
++                              DBGOFF(printk("[dio_ioctl] sig\n");)
++                              return (-ERESTARTSYS);
++                      }
++                      return (0);
++              } else {
++                      spin_unlock_irqrestore(&driver_lock, flags);
++                      return (-EBUSY);
++              }
++#endif
++      case DIOIOC_RD_DIN:
++              return (put_user((au_readl(GPIO2_PINSTATE) >> 1) & 0x0f, (int *) arg));
++
++      case DIOIOC_WT_DOUT:
++              err = get_user(val, (int *) arg);
++              if (err)
++                      return err;
++              mask = (val >> 16) & 0x0f;
++              val &= 0x0f;
++              au_writel ((val << 11) | (mask << 27), GPIO2_OUTPUT);
++              return 0;
++      case DIOIOC_RD_DOUT:
++              return (put_user((au_readl(GPIO2_PINSTATE) >> 11) & 0x0f, (int *) arg));
++      default:
++              break;
++      }
++      return (-ENOIOCTLCMD);
++}     /* dio_ioctl() */
++
++/*----------------------------------------------------------------------------
++ *----------------------------------------------------------------------------*/
++static int
++dio_open(struct inode *inode, struct file *file)
++{
++      switch (MINOR(inode->i_rdev)) {
++      case OMS400DIO_MINOR:
++//            MOD_INC_USE_COUNT;
++              return (0);
++      default:
++              return (-ENODEV);
++      }
++}     /* dio_open() */
++
++/*----------------------------------------------------------------------------
++ *----------------------------------------------------------------------------*/
++static int
++dio_release(struct inode *inode, struct file *file)
++{
++      unsigned long   flags;
++      DEFINE_SPINLOCK(driver_lock);
++
++      DBGOFF(printk("[dio_release] ");)
++      if (MINOR(inode->i_rdev) == OMS400DIO_MINOR) {
++              DBGOFF(printk("by pid %u\n", current->pid);)
++              spin_lock_irqsave(&driver_lock, flags);
++              if (dio_wait_pid && (dio_wait_pid == current->pid)) {
++                      dio_wait_pid = 0;
++                      spin_unlock_irqrestore(&driver_lock, flags);
++                      DBGOFF(printk("cleared\n");)
++              } else {
++                      spin_unlock_irqrestore(&driver_lock, flags);
++                      DBGOFF(if (dio_wait_pid) printk("dio_wait_pid %u, current->pid %u\n", dio_wait_pid, current->pid);)
++              }
++//            MOD_DEC_USE_COUNT;
++      }
++      return (0);
++}     /* dio_release() */
++
++static void
++dio_exit(void)
++{
++      misc_deregister(&dio_miscdev);
++#ifdef CONFIG_OMS400_DIO_ENABLE_IRQ
++      free_irq(DIO_IRQ, NULL);
++#endif
++}     /* cleanup_module() */
++module_init(dio_init);
++module_exit(dio_exit);
+diff --git a/drivers/char/led_oms400.c b/drivers/char/led_oms400.c
+new file mode 100644
+index 0000000..14285d9
+--- /dev/null
++++ b/drivers/char/led_oms400.c
+@@ -0,0 +1,147 @@
++/*
++ * FILE NAME au1000_gpio.c
++ *
++ * BRIEF MODULE DESCRIPTION
++ *  Driver for Alchemy Au1000 GPIO.
++ *
++ *  Author: MontaVista Software, Inc.  <source@mvista.com>
++ *          Steve Longerbeam <stevel@mvista.com>
++ *
++ * Copyright 2001 MontaVista Software Inc.
++ *
++ *  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.
++ *
++ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
++ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
++ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
++ *  NO  EVENT  SHALL   THE AUTHOR  BE LIABLE FOR ANY   DIRECT, INDIRECT,
++ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
++ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
++ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
++ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
++ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
++ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++ *
++ *  You should have received a copy of the  GNU General Public License along
++ *  with this program; if not, write  to the Free Software Foundation, Inc.,
++ *  675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <linux/module.h>
++#include <linux/types.h>
++#include <linux/kernel.h>
++#include <linux/miscdevice.h>
++#include <linux/init.h>
++#include <linux/fs.h>
++#include <asm/uaccess.h>
++#include <asm/io.h>
++#include <asm/mach-au1x00/au1000.h>
++#include <asm/mach-au1x00/gpio-au1000.h>
++
++#define VERSION "0.01"
++
++#define OMSLED_MINOR    SEGLED_MINOR
++
++static int is_open = 0;
++
++/*
++ * Return the pin state. Pins configured as outputs will return
++ * the output state, and pins configured as inputs (tri-stated)
++ * will return input pin state.
++ */
++static int oms400led_in(u32 *val)
++{
++      *val = (inl(SYS_BASE + SYS_PINSTATERD) >> 6) & 0x07;
++      return 0;
++}
++
++/*
++ * Set/clear GPIO pins. Only available GPIOs will be affected.
++ */
++static int oms400led_out(u32 data)
++{
++      int  set, clr;
++      set = (data & 0x07) << 6;
++      clr = set ^ (0x07 << 6);
++
++      if (set)
++              au_writel(set, (SYS_BASE + SYS_OUTPUTSET));
++      if (clr)
++              au_writel(clr, (SYS_BASE + SYS_OUTPUTCLR));
++      return 0;
++}
++
++static int oms400led_open(struct inode *inode, struct file *file)
++{
++      is_open = 1;
++      return 0;
++}
++
++static int oms400led_release(struct inode *inode, struct file *file)
++{
++      is_open = 0;
++      return 0;
++}
++
++static ssize_t oms400led_write(struct file *file, const char *buf, size_t count,
++                          loff_t *ppos)
++{
++      int err, i, led;
++
++      if (count <= 0)
++              return 0;
++
++      for (i = 0; i < count; i++) {
++              err = get_user(led, buf + i);
++              if (err)
++                      return err;
++              if ((led < '0' ) || (led > '7'))
++                      continue;
++              err = oms400led_out(led);
++              if (err)
++                      return err;
++      }
++      return count;
++}
++
++static struct file_operations oms400led_fops =
++{
++      .owner          = THIS_MODULE,
++      .write          = oms400led_write,
++      .open           = oms400led_open,
++      .release        = oms400led_release,
++};
++
++
++static struct miscdevice oms400led_miscdev =
++{
++      OMSLED_MINOR,
++      "oms400 led",
++      &oms400led_fops
++};
++
++int __init oms400led_init(void)
++{
++      misc_register(&oms400led_miscdev);
++      printk("OMS-AL400 LED driver, version %s\n", VERSION);
++      return 0;
++}     
++
++void __exit oms400led_exit(void)
++{
++      misc_deregister(&oms400led_miscdev);
++}
++
++module_init(oms400led_init);
++module_exit(oms400led_exit);
++
++int obsled_out(int val)
++{
++      int err;
++
++      err = oms400led_out(val & 0x07);
++      return err;
++}
+diff --git a/drivers/char/pushsw_oms400.c b/drivers/char/pushsw_oms400.c
+new file mode 100644
+index 0000000..0d92094
+--- /dev/null
++++ b/drivers/char/pushsw_oms400.c
+@@ -0,0 +1,194 @@
++/*
++ *    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/module.h>
++#include <linux/sched.h>
++#include <linux/miscdevice.h>
++#include <linux/delay.h>
++#include <linux/proc_fs.h>
++#include <linux/capability.h>
++#include <linux/init.h>
++
++#include <asm/uaccess.h>
++#include <linux/types.h>
++#include <linux/interrupt.h>
++#include <linux/errno.h>
++#include <linux/kernel.h>
++#include <linux/fcntl.h>
++#include <asm/irq.h>
++#include <asm/pushsw_oms400.h>
++#include <asm/dio_oms400.h>
++#include <asm/io.h>
++#include <asm/mach-au1x00/au1000.h>
++#include <asm/mach-au1x00/gpio-au1000.h>
++
++//#define USE_DIN
++
++#define DBGON(x)      
++#define DBGOFF(x)     x
++
++#define PSW_VER               "0.02"
++#ifdef USE_DIN
++#define PSW_IRQ               AU1550_GPIO201_205_INT
++#define DIO_MASK      2
++#define DIO_CHECKV    0
++#else
++#define PSW_IRQ               AU1550_GPIO15_INT
++#endif
++
++/*----------------------------------------------------------------------------
++ *    Prototypes.
++ *----------------------------------------------------------------------------*/
++int psw_init(void);
++irqreturn_t psw_isr(int irq, void *dev_id);
++static long psw_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
++static int psw_open(struct inode *inode, struct file *file);
++static int psw_release(struct inode *inode, struct file *file);
++
++/*----------------------------------------------------------------------------
++ *----------------------------------------------------------------------------*/
++static struct file_operations psw_fops = {
++      owner:          THIS_MODULE,
++      unlocked_ioctl:         psw_ioctl,
++      open:           psw_open,
++      release:        psw_release,
++};
++static struct miscdevice      psw_miscdev =
++      { PUSHSW_MINOR, "pushsw", &psw_fops };
++static DECLARE_WAIT_QUEUE_HEAD(psw_wait);
++
++/* used to allow only one process at a time to "own" the push switch */
++static pid_t                  psw_wait_pid = 0;
++/*----------------------------------------------------------------------------
++ *----------------------------------------------------------------------------*/
++int
++psw_init(void)
++{
++      printk("Push switch driver v%s\n", PSW_VER);
++
++      /* Install the push switch interrupt handler */
++      if (request_irq(PSW_IRQ, psw_isr, IRQF_IRQPOLL, "push switch", NULL)) {
++              printk("[psw_open] interrupt %u not free\n", PSW_IRQ);
++              return (-EIO);
++      }
++      DBGOFF(printk("[psw_init] Push switch installed on interrupt %u\n", PSW_IRQ);)
++      misc_register(&psw_miscdev);
++      return (0);
++}     /* psw_init() */
++
++/*----------------------------------------------------------------------------
++ *----------------------------------------------------------------------------*/
++irqreturn_t
++psw_isr(int irq, void *dev_id)
++{
++      psw_wait_pid = 0;
++
++      /* DBGOFF(printk(KERN_CRIT "p");) */
++      wake_up_interruptible(&psw_wait);
++      return IRQ_HANDLED;
++}     /* psw_isr() */
++
++/*----------------------------------------------------------------------------
++ *----------------------------------------------------------------------------*/
++static long
++psw_ioctl(struct file *file, unsigned int cmd,
++      unsigned long arg)
++{
++      unsigned long   flags;
++      DEFINE_SPINLOCK(driver_lock);
++
++      if (iminor(file->f_path.dentry->d_inode) != PUSHSW_MINOR) {
++              return (-ENODEV);
++      }
++
++      switch (cmd) {
++      case PSWIOC_GETWAITPID:
++              return (put_user(psw_wait_pid, (int *) arg));
++      case PSWIOC_WAITPUSH:
++              /* protect psw_wait_pid */
++              spin_lock_irqsave(&driver_lock, flags);
++              if (psw_wait_pid == 0) {
++                      psw_wait_pid = current->pid;
++                      spin_unlock_irqrestore(&driver_lock, flags);
++                      DBGOFF(printk("[psw_ioctl] PSWIOC_WAITPUSH pid %u\n", psw_wait_pid);)
++                      /* block until switch pushed */
++                      while (1) {
++                              wait_event_interruptible(psw_wait, (psw_wait_pid == 0));
++#ifdef USE_DIN
++                              msleep(5);
++                              if ((au_readl(GPIO2_PINSTATE) & DIO_MASK) == DIO_CHECKV)
++#endif
++                                      break;
++                      }
++                      spin_lock_irqsave(&driver_lock, flags);
++                      psw_wait_pid = 0;
++                      spin_unlock_irqrestore(&driver_lock, flags);
++
++                      DBGOFF(printk("[psw_ioctl] unblocked\n");)
++                      if (signal_pending(current)) {
++                              DBGOFF(printk("[psw_ioctl] sig\n");)
++                              return (-ERESTARTSYS);
++                      }
++                      return (0);
++              } else {
++                      spin_unlock_irqrestore(&driver_lock, flags);
++                      return (-EBUSY);
++              }
++      default:
++              break;
++      }
++      return (-ENOIOCTLCMD);
++}     /* psw_ioctl() */
++
++/*----------------------------------------------------------------------------
++ *----------------------------------------------------------------------------*/
++static int
++psw_open(struct inode *inode, struct file *file)
++{
++      switch (MINOR(inode->i_rdev)) {
++      case PUSHSW_MINOR:
++//            MOD_INC_USE_COUNT;
++              return (0);
++      default:
++              return (-ENODEV);
++      }
++}     /* psw_open() */
++
++/*----------------------------------------------------------------------------
++ *----------------------------------------------------------------------------*/
++static int
++psw_release(struct inode *inode, struct file *file)
++{
++      unsigned long   flags;
++      DEFINE_SPINLOCK(driver_lock);
++
++      DBGOFF(printk("[psw_release] ");)
++      if (MINOR(inode->i_rdev) == PUSHSW_MINOR) {
++              DBGOFF(printk("by pid %u\n", current->pid);)
++              spin_lock_irqsave(&driver_lock, flags);
++              if (psw_wait_pid && (psw_wait_pid == current->pid)) {
++                      psw_wait_pid = 0;
++                      spin_unlock_irqrestore(&driver_lock, flags);
++                      DBGOFF(printk("cleared\n");)
++              } else {
++                      spin_unlock_irqrestore(&driver_lock, flags);
++                      DBGOFF(if (psw_wait_pid) printk("psw_wait_pid %u, current->pid %u\n", psw_wait_pid, current->pid);)
++              }
++//            MOD_DEC_USE_COUNT;
++      }
++      return (0);
++}     /* psw_release() */
++
++static void
++psw_exit(void)
++{
++      misc_deregister(&psw_miscdev);
++      free_irq(PSW_IRQ, NULL);
++}     /* cleanup_module() */
++module_init(psw_init);
++module_exit(psw_exit);
+diff --git a/drivers/i2c/busses/i2c-au1550.c b/drivers/i2c/busses/i2c-au1550.c
+index 8762458..4360e60 100644
+--- a/drivers/i2c/busses/i2c-au1550.c
++++ b/drivers/i2c/busses/i2c-au1550.c
+@@ -346,6 +346,7 @@ i2c_au1550_probe(struct platform_device *pdev)
+       priv->xfer_timeout = 200;
+       priv->adap.nr = pdev->id;
++      priv->adap.class = I2C_CLASS_HWMON;
+       priv->adap.algo = &au1550_algo;
+       priv->adap.algo_data = priv;
+       priv->adap.dev.parent = &pdev->dev;
+diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
+index 685ec0f..fcff0e1 100644
+--- a/drivers/misc/Kconfig
++++ b/drivers/misc/Kconfig
+@@ -334,6 +334,18 @@ config ISL29020
+         This driver can also be built as a module.  If so, the module
+         will be called isl29020.
++config OMS400_EEPROM
++      tristate "OMS400_EEPROM"
++      depends on I2C && MIPS_OMS400
++      help
++        OMS-AL400/128 EEPROM driver.
++
++config OMS400_RTC
++      tristate "OMS400_RTC"
++      depends on I2C && MIPS_OMS400
++      help
++        OMS-AL400/128 RTC driver.
++
+ config SENSORS_TSL2550
+       tristate "Taos TSL2550 ambient light sensor"
+       depends on I2C && SYSFS
+diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
+index d59ce12..cb1a1fb 100644
+--- a/drivers/misc/Makefile
++++ b/drivers/misc/Makefile
+@@ -33,6 +33,8 @@ obj-$(CONFIG_APDS9802ALS)    += apds9802als.o
+ obj-$(CONFIG_ISL29003)                += isl29003.o
+ obj-$(CONFIG_ISL29020)                += isl29020.o
+ obj-$(CONFIG_SENSORS_TSL2550) += tsl2550.o
++obj-$(CONFIG_OMS400_EEPROM)   += eeprom-oms400.o
++obj-$(CONFIG_OMS400_RTC)      += r2025x-rtc.o
+ obj-$(CONFIG_DS1682)          += ds1682.o
+ obj-$(CONFIG_TI_DAC7512)      += ti_dac7512.o
+ obj-$(CONFIG_C2PORT)          += c2port/
+diff --git a/drivers/misc/eeprom-oms400.c b/drivers/misc/eeprom-oms400.c
+new file mode 100644
+index 0000000..0675ad1
+--- /dev/null
++++ b/drivers/misc/eeprom-oms400.c
+@@ -0,0 +1,432 @@
++/*
++ *  linux/drivers/misc/eeprom-oms400.c
++ *
++ *
++ *  Copyright 
++ *  Author: 2002 AXE Inc.  
++ *            takawata@axe-inc.co.jp
++ *
++ *  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.
++ *
++ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
++ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
++ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
++ *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
++ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
++ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
++ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
++ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
++ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
++ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++ *
++ *  You should have received a copy of the  GNU General Public License along
++ *  with this program; if not, write  to the Free Software Foundation, Inc.,
++ *  675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ *  TODO:
++ *    - implement alarm and periodic IRQ support.
++ *
++ */
++/*
++ *  Based On 
++ *  linux/drivers/char/x1226-rtc.c
++ *
++ *  I2C Real Time Clock Client Driver for Xicor X1226 RTC/Calendar
++ *
++ *  Copyright 2002 MontaVista Software Inc.
++ *  Author: MontaVista Software, Inc.
++ *            stevel@mvista.com or source@mvista.com
++ *
++ *  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.
++ *
++ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
++ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
++ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
++ *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
++ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
++ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
++ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
++ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
++ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
++ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++ *
++ *  You should have received a copy of the  GNU General Public License along
++ *  with this program; if not, write  to the Free Software Foundation, Inc.,
++ *  675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ *  TODO:
++ *    - implement alarm and periodic IRQ support.
++ *
++ */
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/types.h>
++#include <linux/miscdevice.h>
++#include <linux/fcntl.h>
++#include <linux/poll.h>
++#include <linux/fs.h>
++#include <linux/init.h>
++#include <linux/delay.h>
++#include <linux/i2c.h>
++#include <linux/slab.h>
++#include <linux/string.h>
++#include <linux/rtc.h>
++#include <linux/proc_fs.h>
++#include <linux/spinlock.h>
++#include <asm/uaccess.h>
++#include <asm/time.h>
++
++#define EEPROM_MAJOR 240
++#define EEPROM_T_WR 10
++struct eepromi2c_private
++{
++      u8 ei2_addr;
++      int ei2_size;
++      int ei2_maxpage;
++      int use_count;
++      unsigned char *tmpbuf;
++      struct i2c_client *ei2_i2c;
++};
++
++static DEFINE_SPINLOCK(eeprom_state_lock);
++
++struct eepromi2c_private eepromi2c_conf[]=
++{
++      {0x50, 0x200, 16, 0, NULL, NULL},
++};
++
++#define MAXEEPROMDEVS (sizeof(eepromi2c_conf)/ sizeof(struct eepromi2c_private))
++#ifndef I2C_M_WR
++#define I2C_M_WR 0x0
++#endif
++
++#ifdef DEBUG_I2CEEPROM
++#define       dbg(fmt, args...) printk(KERN_DEBUG "%s: " fmt, __func__, ## args)
++#else
++#define       dbg(fmt, args...)
++#endif
++
++#define I2CEEPROM_MODULE_NAME "LARGEEEPROM"
++#define PFX I2CEEPROM_MODULE_NAME
++
++#define err(format, arg...) printk(KERN_ERR PFX ": " format , ## arg)
++#define info(format, arg...) printk(KERN_INFO PFX ": " format , ## arg)
++#define warn(format, arg...) printk(KERN_WARNING PFX ": " format , ## arg)
++#define emerg(format, arg...) printk(KERN_EMERG PFX ": " format , ## arg)
++
++static int i2ceeprom_read(struct i2c_client *client,
++                        u16 reg_offset, u8 *buf, int len)
++{
++      int ret;
++      u8 regbuf = reg_offset;
++      struct i2c_msg random_addr_read[2] = {
++              {
++                      /* "Set Current Address" */
++                      client->addr,
++                      client->flags | I2C_M_WR,
++                      1,
++                      &regbuf
++              },
++              {
++                      /* "Sequential Read" if len>1,
++                         "Current Address Read" if len=1 */
++                      client->addr ,
++                      client->flags| I2C_M_RD ,
++                      len,
++                      buf
++              }
++      };
++
++      random_addr_read[0].addr |= (reg_offset >> 8) &0x07;;
++      random_addr_read[1].addr |= (reg_offset >> 8) &0x07;;
++
++      dbg("i2c_transfer %04x %04x\n",random_addr_read[0].addr,regbuf);
++
++      if ((ret = i2c_transfer(client->adapter, random_addr_read, 2)) != 2) {
++              ret = -ENXIO;
++              dbg("i2c_transfer failed\n");
++      }
++
++      return ret;
++}
++
++static int i2ceeprom_write(struct i2c_client *client,
++                         u16 reg_offset, u8 *buf, int len)
++{
++      int ret;
++      u8* local_buf;
++      struct i2c_msg page_write = {
++              client->addr,
++              client->flags ,
++              len + 1,
++              NULL
++      };
++
++      if ((local_buf = (u8*)kmalloc(len + 1, GFP_KERNEL)) == NULL) {
++              err("buffer alloc failed\n");
++              return -ENOMEM;
++      }
++
++      local_buf[0] = reg_offset;
++      memcpy(local_buf + 1, buf, len);
++      page_write.buf = local_buf;
++
++      page_write.addr |= (reg_offset >> 8) &0x07;
++      dbg("i2c_transfer %04x %04x\n",page_write.addr,regbuf);
++
++      if ((ret = i2c_transfer(client->adapter, &page_write, 1)) != 1) {
++              ret = -ENXIO;
++              dbg("i2c_transfer failed\n");
++      }
++
++      msleep(EEPROM_T_WR);
++      kfree(local_buf);
++      return ret;
++}
++
++static long long eepromi2c_llseek(struct file *file, loff_t offset, int origin)
++{
++      int minor;
++      struct inode *minode = file->f_dentry->d_inode;
++      struct eepromi2c_private *pri;
++
++      if ((minor = MINOR(minode->i_rdev)) >= MAXEEPROMDEVS)
++              return -ENXIO;
++      pri = &eepromi2c_conf[minor];
++      switch (origin) {
++      case 0:
++              file->f_pos = offset;
++              return file->f_pos;
++      case 1:
++              file->f_pos += offset;
++              return file->f_pos;
++      case 2:
++              file->f_pos = pri->ei2_size - offset;
++              return file->f_pos;
++      default:
++              return -EINVAL;
++      }
++}
++
++static ssize_t eepromi2c_read(struct file *file, char *buf, size_t count,
++                            loff_t *ppos)
++{
++      int minor;
++      struct i2c_client *client;
++      struct eepromi2c_private *pri;
++      int offset, remaining, copysize;
++      struct inode *minode = file->f_dentry->d_inode;
++      if ((minor = MINOR(minode->i_rdev)) >= MAXEEPROMDEVS)
++              return -ENXIO;
++      pri = &eepromi2c_conf[minor];
++      if (!(client = pri->ei2_i2c))
++              return -ENXIO;
++      offset = *ppos;
++      offset += 16;
++      if ((offset + count) > pri->ei2_size)
++              count = pri->ei2_size - offset;
++      if (count <= 0) {
++              return 0;
++      }
++      remaining = count;
++      do {
++              copysize = (remaining > pri->ei2_maxpage)
++                              ? pri->ei2_maxpage : remaining;
++              dbg("; copysize=%d\n", copysize);       
++              i2ceeprom_read(client, offset, pri->tmpbuf, copysize);
++              if (copy_to_user(buf, pri->tmpbuf, copysize))
++                      return -EFAULT;
++              *ppos += copysize;
++              offset += copysize;
++              buf += copysize;
++              remaining -= copysize;
++      } while (remaining > 0);
++      return count;
++}
++
++static ssize_t eepromi2c_write(struct file *file, const char *buf, size_t count,
++                             loff_t *ppos)
++{
++      int minor;
++      struct i2c_client *client;
++      struct eepromi2c_private *pri;
++      int offset, remaining, copysize;
++      struct inode *minode = file->f_dentry->d_inode;
++      if ((minor = MINOR(minode->i_rdev)) >= MAXEEPROMDEVS)
++              return -ENXIO;
++      pri = &eepromi2c_conf[minor];
++      if (!(client = pri->ei2_i2c))
++              return -ENXIO;
++      offset = *ppos;
++      offset += 16;
++      if ((offset + count) > pri->ei2_size)
++              count = pri->ei2_size - offset;
++      if (count <= 0) {
++              return 0;
++      }
++      /*Write regeon should be aligned */
++      copysize = (count > pri->ei2_maxpage) ? pri->ei2_maxpage : count;
++      if ((offset / pri->ei2_maxpage) !=
++          ((offset + copysize) / pri->ei2_maxpage))
++              copysize = pri->ei2_maxpage - (offset % pri->ei2_maxpage);
++      dbg("; offset=%d\n", offset);
++      remaining = count;
++      do {
++              dbg("; copysize=%d\n", copysize);
++              if (copy_from_user(pri->tmpbuf, buf, copysize)) {
++                      return -EFAULT;
++              }
++
++              i2ceeprom_write(client, offset, pri->tmpbuf, copysize);
++              *ppos += copysize;
++              offset += copysize;
++              buf += copysize;
++              remaining -= copysize;
++              copysize = (remaining > pri->ei2_maxpage)
++                              ? pri->ei2_maxpage : remaining;
++      } while (remaining > 0);
++      return count;
++}
++
++static int eepromi2c_open(struct inode *minode, struct file *mfile)
++{
++      int minor;
++      spin_lock(&eeprom_state_lock);
++      if ((minor = MINOR(minode->i_rdev)) >= MAXEEPROMDEVS)
++              return -ENXIO;
++      if (!eepromi2c_conf[minor].ei2_i2c)
++              return -ENXIO;
++
++      if (eepromi2c_conf[minor].use_count)
++              return -EBUSY;
++      eepromi2c_conf[minor].use_count++;
++      spin_unlock(&eeprom_state_lock);
++      return 0;
++}
++
++static long eepromi2c_ioctl(struct file *file,
++                         unsigned int cmd, unsigned long arg)
++{
++      return -ENOTTY;
++}
++
++static int eepromi2c_release(struct inode *inode, struct file *file)
++{
++      int minor;
++      spin_lock(&eeprom_state_lock);
++      if ((minor = MINOR(inode->i_rdev)) >= MAXEEPROMDEVS)
++              return -ENXIO;
++      eepromi2c_conf[minor].use_count--;
++      spin_unlock(&eeprom_state_lock);
++      return 0;
++}
++
++static struct file_operations eepromi2c_fops = {
++      owner:          THIS_MODULE,
++      llseek:         eepromi2c_llseek,
++      read:           eepromi2c_read,
++      write:          eepromi2c_write,
++      unlocked_ioctl:         eepromi2c_ioctl,
++      open:           eepromi2c_open,
++      release:        eepromi2c_release,
++};
++
++static int i2ceeprom_probe(struct i2c_client *client, const struct i2c_device_id *id)
++{
++      int res, i;
++      int ret = 1;
++      unsigned char stat;
++      struct i2c_client *this_client;
++
++      res = -ENXIO;
++      register_chrdev(EEPROM_MAJOR, "eeprom", &eepromi2c_fops);
++
++      this_client = kmalloc(sizeof(*this_client), GFP_KERNEL);
++
++      for (i = 0; i < MAXEEPROMDEVS; i++) {
++              if (this_client == NULL) {
++                      break;
++              }
++
++              memset(this_client, 0, sizeof(*this_client));
++
++              this_client = client;
++
++              if ((res = i2ceeprom_read(this_client, 0, &stat, 1)) < 0) {
++                      printk("Probe read %d\n", res);
++                      continue;
++              }
++
++              if ((eepromi2c_conf[i].tmpbuf =
++                   kmalloc(eepromi2c_conf[i].ei2_size, GFP_KERNEL)) == NULL) {
++                      continue;
++              }
++
++              printk("Serial EEPROM FOUND at %x\n", this_client->addr);
++
++              eepromi2c_conf[i].ei2_i2c = this_client;
++              ret = 0;        /*At least 1 dev found */
++              this_client = kmalloc(sizeof(*this_client), GFP_KERNEL);
++      }
++      kfree(this_client);
++      return ret;
++}
++
++static int i2ceeprom_remove(struct i2c_client *client)
++{
++      kfree(client);
++
++      return 0;
++}
++
++static int i2ceeprom_command(struct i2c_client *client, unsigned int cmd,
++                           void *arg)
++{
++
++      return -EINVAL;
++}
++
++static struct i2c_device_id i2ceeprom_idtable[] = {
++      { "i2ceeprom", 0 },
++      { }
++};
++
++MODULE_DEVICE_TABLE(i2c, i2ceeprom_idtable);
++
++static struct i2c_driver i2ceeprom_driver = {
++      .driver = {
++              .name   = I2CEEPROM_MODULE_NAME,
++      },
++      .id_table       = i2ceeprom_idtable,
++      .probe          = i2ceeprom_probe,
++      .remove         = i2ceeprom_remove,
++      .command        = i2ceeprom_command
++};
++
++
++static __init int i2ceeprom_init(void)
++{
++      int ret;
++      
++      info("I2C based EEPROM driver.\n");
++      ret = i2c_add_driver(&i2ceeprom_driver);
++      if (ret) {
++              err("Register I2C driver failed, errno is %d\n", ret);
++              return ret;
++      }
++      return 0;
++}
++
++static void __exit i2ceeprom_exit(void)
++{
++      i2c_del_driver(&i2ceeprom_driver);
++}
++
++module_init(i2ceeprom_init);
++module_exit(i2ceeprom_exit);
+diff --git a/drivers/misc/r2025x-rtc.c b/drivers/misc/r2025x-rtc.c
+new file mode 100644
+index 0000000..e9004b2
+--- /dev/null
++++ b/drivers/misc/r2025x-rtc.c
+@@ -0,0 +1,463 @@
++/*
++ *  linux/drivers/misc/r2025x-rtc.c
++ *
++ *  I2C Real Time Clock Client Driver for Xicor R2025x RTC/Calendar
++ *
++ *  Copyright 2002 MontaVista Software Inc.
++ *  Author: MontaVista Software, Inc.
++ *            stevel@mvista.com or source@mvista.com
++ *
++ *  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.
++ *
++ *  THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR IMPLIED
++ *  WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
++ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
++ *  NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT, INDIRECT,
++ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
++ *  NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
++ *  USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
++ *  ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
++ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
++ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++ *
++ *  You should have received a copy of the  GNU General Public License along
++ *  with this program; if not, write  to the Free Software Foundation, Inc.,
++ *  675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ *  TODO:
++ *    - implement alarm and periodic IRQ support.
++ *
++ */
++#include <linux/delay.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/types.h>
++#include <linux/miscdevice.h>
++#include <linux/fcntl.h>
++#include <linux/poll.h>
++#include <linux/fs.h>
++#include <linux/init.h>
++#include <linux/i2c.h>
++#include <linux/slab.h>
++#include <linux/string.h>
++#include <linux/rtc.h>
++#include <linux/proc_fs.h>
++#include <linux/spinlock.h>
++#include <asm/uaccess.h>
++#include <asm/time.h>
++
++#ifdef DEBUG_R2025x
++#define       dbg(fmt, args...) printk(KERN_DEBUG "%s: " fmt, __func__, ## args)
++#else
++#define       dbg(fmt, args...)
++#endif
++
++#define R2025x_MODULE_NAME "R2025x"
++#define PFX R2025x_MODULE_NAME
++
++#define err(format, arg...) printk(KERN_ERR PFX ": " format , ## arg)
++#define info(format, arg...) printk(KERN_INFO PFX ": " format , ## arg)
++#define warn(format, arg...) printk(KERN_WARNING PFX ": " format , ## arg)
++#define emerg(format, arg...) printk(KERN_EMERG PFX ": " format , ## arg)
++
++
++#define R2025x_RTC_SR      0x3f
++#define   RTC_SR_RTCF  (1)
++#define   RTC_SR_WEL  (1<<1)
++#define   RTC_SR_RWEL (1<<2)
++
++#define R2025x_RTC_BASE    0x00
++
++/* This is an image of the RTC registers starting at offset 0x30 */
++struct rtc_registers {
++      unsigned char secs;     // 00
++      unsigned char mins;     // 01
++      unsigned char hours;    // 02
++      unsigned char dayofweek;// 03
++      unsigned char day;      // 04
++      unsigned char mon;      // 05
++      unsigned char year;     // 06
++      unsigned char adjust;   // 07
++      unsigned char almwmin;  // 08
++      unsigned char almwhours;// 09
++      unsigned char almwdow;  // 0a
++      unsigned char almdmin;  // 0b
++      unsigned char almdhours;// 0c
++      unsigned char dummy;    // 0d
++      unsigned char ctrl1;    // 0e
++      unsigned char ctrl2;    // 0f
++};
++
++#define RTC_ACCESS_WAIT       100
++#define DEVID_RTC     0x32
++#define SLAVE_READ    0x01
++#ifndef I2C_M_WR
++#define I2C_M_WR      0x0
++#endif
++
++static int r2025x_use_count = 0;
++
++static struct i2c_client *this_client = NULL;
++
++static int rtc_proc_open(struct inode *inode, struct file *file);
++
++static int r2025x_read (struct i2c_client *client,
++                     u8 reg_offset, u8* buf, int len)
++{
++      u8* local_buf;
++      int ret;
++      struct i2c_msg random_addr_read;
++
++      if (reg_offset > 15)
++              return -EINVAL;
++      if (reg_offset + len > 16)
++              return -EINVAL;
++
++      if ((local_buf = (u8*)kmalloc(sizeof(struct rtc_registers) + 1,
++                                    GFP_KERNEL)) == NULL) {
++              err("buffer alloc failed\n");
++              return -ENOMEM;
++      }
++
++      random_addr_read.addr  = client->addr;
++      random_addr_read.flags = client->flags| I2C_M_RD;
++      random_addr_read.len   = 16;
++      random_addr_read.buf   = local_buf;
++
++      if ((ret = i2c_transfer(client->adapter, &random_addr_read, 1)) != 1) {
++              dbg("i2c_transfer failed %08x\n",ret);
++              ret = -ENXIO;
++      }
++
++      local_buf[16] = local_buf[0];
++      memcpy(buf, local_buf + 1 + reg_offset, len);
++
++      kfree(local_buf);
++      udelay(RTC_ACCESS_WAIT);
++      return ret;
++}
++
++static int r2025x_write (struct i2c_client *client,
++                      u8 reg_offset, u8* buf, int len)
++{
++      int ret;
++      u8* local_buf;
++      struct i2c_msg page_write = {
++              client->addr,
++              client->flags ,
++              len,
++              NULL
++      };
++
++      if (reg_offset > 15)
++              return -EINVAL;
++      if (reg_offset + len > 16)
++              return -EINVAL;
++
++      if ((local_buf = (u8*)kmalloc(len + 1,
++                                    GFP_KERNEL)) == NULL) {
++              err("buffer alloc failed\n");
++              return -ENOMEM;
++      }
++
++      local_buf[0] = reg_offset;
++      memcpy(local_buf + 1, buf, len);
++      page_write.buf = local_buf;
++
++      if ((ret = i2c_transfer(client->adapter, &page_write, 1)) != 1) {
++              ret = -ENXIO;
++              dbg("i2c_transfer failed\n");
++      }
++
++      kfree(local_buf);
++      udelay(RTC_ACCESS_WAIT);
++      return ret;
++}
++
++static int
++r2025x_get_time(struct i2c_client *client, struct rtc_time *tm)
++{
++      struct rtc_registers rtc;
++      int ret;
++
++      /* read RTC registers */
++      if ((ret = r2025x_read(client, R2025x_RTC_BASE, (u8*)&rtc,
++                            sizeof(struct rtc_registers))) < 0) {
++              dbg("couldn't read RTC\n");
++              return ret;
++      }
++      dbg("IN: year=%02x, mon=%02x, day=%02x, hour=%02x, "
++          "min=%02x, sec=%02x\n",
++          rtc.year, rtc.mon, rtc.day, rtc.hours,
++          rtc.mins, rtc.secs);
++
++      tm->tm_year = ((rtc.year >>4 ) & 0xf) *10 + (rtc.year & 0x0f);
++      if (rtc.mon & 0x80)
++              tm->tm_year += 100;
++      tm->tm_mon = ((rtc.mon >>4 ) & 0x1) *10 + (rtc.mon & 0x0f);
++      tm->tm_mon--;   /* tm_mon is 0 to 11 */
++      tm->tm_mday = ((rtc.day >>4 ) & 0x3) *10 + (rtc.day & 0x0f);
++      tm->tm_hour = ((rtc.hours >>4 ) & 0x7) *10 + (rtc.hours & 0x0f);
++      if ((rtc.ctrl1 & 0x20) == 0) {
++              tm->tm_hour = ((rtc.hours >>4 ) & 0x1) *10 + (rtc.hours & 0x0f);
++              if (rtc.hours & 0x20)
++                      tm->tm_hour += 12;
++      } else {
++              tm->tm_hour = ((rtc.hours >>4 ) & 0x3) *10 + (rtc.hours & 0x0f);
++      }
++      tm->tm_min = ((rtc.mins >>4 ) & 0x7) *10 + (rtc.mins & 0x0f);
++      tm->tm_sec = ((rtc.secs >>4 ) & 0x7) *10 + (rtc.secs & 0x0f);
++
++      dbg("OUT: year=%d, mon=%d, day=%d, hour=%d, min=%d, sec=%d\n",
++          tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_hour,
++          tm->tm_min, tm->tm_sec);
++
++      return 0;
++}
++
++static int
++r2025x_set_time(struct i2c_client *client, const struct rtc_time *tm)
++{
++      struct rtc_registers rtc;
++      int ret;
++      int tmpy;
++
++      dbg("IN: year=%d, mon=%d, day=%d, hour=%d, min=%d, sec=%d\n",
++          tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_hour,
++          tm->tm_min, tm->tm_sec);
++
++      tmpy = tm->tm_year % 100;
++
++      rtc.year  = (((tmpy / 10) << 4) | (tmpy % 10));
++      rtc.mon   = ((((tm->tm_mon + 1) / 10) << 4) | ((tm->tm_mon + 1) % 10)) & 0x3f;
++      if (tm->tm_year >= 100)
++              rtc.mon |= 0x80;
++      rtc.day   = (((tm->tm_mday / 10) << 4) | (tm->tm_mday % 10)) & 0x3f;
++      rtc.dayofweek = 0; // ignore day of week
++      rtc.hours = (((tm->tm_hour / 10) << 4) | (tm->tm_hour % 10)) & 0x3f;
++      rtc.mins  = (((tm->tm_min  / 10) << 4) | (tm->tm_min  % 10)) & 0x7f;
++      rtc.secs  = (((tm->tm_sec  / 10) << 4) | (tm->tm_sec  % 10)) & 0x7f;
++
++      dbg("OUT: year=%02x, mon=%02x, day=%02x, hour=%02x, "
++          "min=%02x, sec=%02x\n",
++          rtc.year, rtc.mon, rtc.day, rtc.hours,
++          rtc.mins, rtc.secs);
++
++      /* write RTC registers */
++      if ((ret = r2025x_write(client, R2025x_RTC_BASE, (u8*)&rtc, 8)) < 0) {
++              dbg("couldn't write RTC\n");
++              return ret;
++      }
++
++      return 0;
++}
++
++static int r2025x_probe(struct i2c_client *client, const struct i2c_device_id *id)
++{
++      int ret;
++      struct rtc_registers rtc;
++
++      if (this_client != NULL)
++              return -EBUSY;
++
++      this_client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
++      if (this_client == NULL) {
++              return -ENOMEM;
++      }
++
++      memset(this_client, 0, sizeof(struct i2c_client));
++
++      this_client = client;
++
++      /*
++       * use r2025x_get_time() to probe for an R2025x on this bus.
++       */
++      dbg("r2025x_probe Entry %08x\n",(u32)this_client);
++      if((ret = r2025x_read(this_client,R2025x_RTC_BASE, (u8 *)&rtc, 
++                              sizeof(struct rtc_registers)))< 0){
++              dbg("r2025x_probe r2025x_read error\n");
++              kfree(this_client);
++              this_client = NULL;
++              return ret;
++      }
++
++      return ret;
++}
++
++static int r2025x_remove(struct i2c_client *client)
++{
++      if (this_client != NULL) {
++              kfree(this_client);
++              this_client = NULL;
++      }
++
++      return 0;
++}
++
++static int rtc_open(struct inode *minode, struct file *mfile)
++{
++      /*if(MOD_IN_USE)*/
++      if(r2025x_use_count > 0) {
++              return -EBUSY;
++      }
++      //      MOD_INC_USE_COUNT;
++      ++r2025x_use_count;
++      return 0;
++}
++
++static int rtc_release(struct inode *minode, struct file *mfile)
++{
++      //      MOD_DEC_USE_COUNT;
++      --r2025x_use_count;
++      return 0;
++}
++
++static loff_t rtc_llseek(struct file *mfile, loff_t offset, int origint)
++{
++      return -ESPIPE;
++}
++
++static int
++r2025x_command(struct i2c_client *client, unsigned int cmd, void *arg)
++{
++      return -EINVAL;
++}
++
++static long rtc_ioctl(struct file *file, unsigned int cmd,
++                   unsigned long arg)
++{
++      struct rtc_time rtc_tm;
++      int ret;
++
++      switch (cmd) {
++      case RTC_RD_TIME:       /* Read the time/date from RTC  */
++              if ((ret = r2025x_get_time(this_client, &rtc_tm)) < 0)
++                      return ret;
++              return copy_to_user((void *)arg, &rtc_tm, sizeof(rtc_tm)) ?
++                      -EFAULT : 0;
++      case RTC_SET_TIME:      /* Set the RTC */
++              if (!capable(CAP_SYS_TIME))
++                      return -EACCES;
++
++              if (copy_from_user(&rtc_tm,
++                                 (struct rtc_time *) arg,
++                                 sizeof(struct rtc_time)))
++                      return -EFAULT;
++
++              return r2025x_set_time(this_client, &rtc_tm);
++      default:
++              return -EINVAL;
++      }
++}
++
++static struct i2c_device_id r2025x_idtable[] = {
++      { "r2025x", 0 },
++      { }
++};
++
++MODULE_DEVICE_TABLE(i2c, r2025x_idtable);
++
++static struct i2c_driver r2025x_driver = {
++      .driver = {
++              .name   = R2025x_MODULE_NAME,
++      },
++      .id_table       = r2025x_idtable,
++      .probe          = r2025x_probe,
++      .remove         = r2025x_remove,
++      .command        = r2025x_command
++};
++
++static struct file_operations rtc_fops = {
++      owner:          THIS_MODULE,
++      llseek:         rtc_llseek,
++      unlocked_ioctl:         rtc_ioctl,
++      open:           rtc_open,
++      release:        rtc_release,
++};
++
++static const struct file_operations rtc_proc_fops = {
++      .open           = rtc_proc_open,
++      .read           = seq_read,
++      .llseek         = seq_lseek,
++      .release        = seq_release,
++};
++
++static struct miscdevice r2025xrtc_miscdev = {
++      RTC_MINOR,
++      "rtc",
++      &rtc_fops
++};
++
++static __init int r2025x_init(void)
++{
++      int ret;
++
++      info("I2C based RTC driver.\n");
++      ret = i2c_add_driver(&r2025x_driver);
++      dbg("r2025x_init i2c_add_driver call ret=%d\n",ret);
++      if (ret) {
++              err("Register I2C driver failed, errno is %d\n", ret);
++              return ret;
++      }
++      dbg("r2025x_init misc_register call\n");
++      ret = misc_register(&r2025xrtc_miscdev);
++      dbg("r2025x_init misc_register call ret=%d\n",ret);
++      if (ret) {
++              err("Register misc driver failed, errno is %d\n", ret);
++              i2c_del_driver(&r2025x_driver);
++              return ret;
++      }
++
++      proc_create("driver/rtc", 0, NULL, &rtc_proc_fops);
++      dbg("r2025x_init Success\n");
++      return 0;
++}
++
++static void __exit r2025x_exit(void)
++{
++      remove_proc_entry("driver/rtc", NULL);
++      misc_deregister(&r2025xrtc_miscdev);
++      i2c_del_driver(&r2025x_driver);
++}
++
++
++module_init(r2025x_init);
++module_exit(r2025x_exit);
++
++/*
++ *    Info exported via "/proc/driver/rtc".
++ */
++
++static int rtc_proc_show(struct seq_file *m, void *v)
++{
++      struct rtc_time tm;
++      int ret;
++
++      if ((ret = r2025x_get_time(this_client, &tm)) < 0)
++              return ret;
++
++      /*
++       * There is no way to tell if the luser has the RTC set for local
++       * time or for Universal Standard Time (GMT). Probably local though.
++       */
++      seq_printf(m,
++                   "rtc_time\t: %02d:%02d:%02d\n"
++                   "rtc_date\t: %04d-%02d-%02d\n",
++                   tm.tm_hour, tm.tm_min, tm.tm_sec,
++                   tm.tm_year + 1900, tm.tm_mon + 1,
++                   tm.tm_mday);
++
++      return 0;
++}
++
++static int rtc_proc_open(struct inode *inode, struct file *file)
++{
++      return single_open(file, rtc_proc_show, NULL);
++}
++
++MODULE_AUTHOR("Steve Longerbeam");
++MODULE_LICENSE("GPL");
++
+diff --git a/drivers/net/phy/lxt.c b/drivers/net/phy/lxt.c
+index 9108f31..a4e382e 100644
+--- a/drivers/net/phy/lxt.c
++++ b/drivers/net/phy/lxt.c
+@@ -99,6 +99,16 @@ static int lxt970_config_init(struct phy_device *phydev)
+       return err;
+ }
++#ifdef CONFIG_MIPS_OMS400
++#define MII_LXT971A_CFG               16      /* PHY Configuration Register */
++static int lxt971_config_init(struct phy_device *phydev)
++{
++      int err;
++
++      err = phy_write(phydev, MII_LXT971A_CFG, 0x0180);
++        return err;
++}
++#endif
+ static int lxt971_ack_interrupt(struct phy_device *phydev)
+ {
+@@ -285,6 +295,9 @@ static struct phy_driver lxt97x_driver[] = {
+       .phy_id_mask    = 0xfffffff0,
+       .features       = PHY_BASIC_FEATURES,
+       .flags          = PHY_HAS_INTERRUPT,
++#ifdef CONFIG_MIPS_OMS400
++      .config_init    = lxt971_config_init,
++#endif
+       .config_aneg    = genphy_config_aneg,
+       .read_status    = genphy_read_status,
+       .ack_interrupt  = lxt971_ack_interrupt,
+diff --git a/drivers/pcmcia/db1xxx_ss.c b/drivers/pcmcia/db1xxx_ss.c
+index a31e69e..e166bb8 100644
+--- a/drivers/pcmcia/db1xxx_ss.c
++++ b/drivers/pcmcia/db1xxx_ss.c
+@@ -428,6 +428,7 @@ static int db1x_pcmcia_socket_probe(struct platform_device *pdev)
+       case BCSR_WHOAMI_PB1100:
+               sock->board_type = BOARD_TYPE_PB1100;
+               break;
++      case BCSR_WHOAMI_OMS400:
+       case BCSR_WHOAMI_DB1000 ... BCSR_WHOAMI_PB1550_SDR:
+               sock->board_type = BOARD_TYPE_DEFAULT;
+               break;
+diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h
+index ee80dd7..2841430 100644
+--- a/include/linux/miscdevice.h
++++ b/include/linux/miscdevice.h
+@@ -1,5 +1,11 @@
+ #ifndef _LINUX_MISCDEVICE_H
+ #define _LINUX_MISCDEVICE_H
++
++/*
++      PlatHome <openlab.plathome.co.jp>
++              - Added PUSHSW_MINOR, SEGLED_MINOR for OpenBlockS
++*/
++
+ #include <linux/major.h>
+ #include <linux/list.h>
+ #include <linux/types.h>
+@@ -30,6 +36,10 @@
+ #define SGI_MMTIMER           153
+ #define STORE_QUEUE_MINOR     155     /* unused */
+ #define I2O_MINOR             166
++#define PUSHSW_MINOR  170
++#define SEGLED_MINOR  171
++#define OMS400TEMP_MINOR      172
++#define OMS400DIO_MINOR               173
+ #define MICROCODE_MINOR               184
+ #define VFIO_MINOR            196
+ #define TUN_MINOR             200
+diff --git a/init/do_mounts.c b/init/do_mounts.c
+index 82f2288..3bbaba9 100644
+--- a/init/do_mounts.c
++++ b/init/do_mounts.c
+@@ -179,6 +179,17 @@ done:
+ }
+ #endif
++#if defined(CONFIG_MIPS_OMS400)
++int __initdata no_flashcfg;
++
++static int __init exec_flashcfg(char * str)
++{
++      no_flashcfg = simple_strtoul(str,NULL,0);
++      return 1;
++}
++__setup("noflashcfg=", exec_flashcfg);
++#endif
++
+ /*
+  *    Convert a name into device number.  We accept the following variants:
+  *
+@@ -539,6 +550,10 @@ void __init prepare_namespace(void)
+ {
+       int is_floppy;
++#if defined(CONFIG_MIPS_OMS400)
++      int real_root_mountflags = root_mountflags;
++#endif
++
+       if (root_delay) {
+               printk(KERN_INFO "Waiting %d sec before mounting root device...\n",
+                      root_delay);
+@@ -586,11 +601,35 @@ void __init prepare_namespace(void)
+       if (is_floppy && rd_doload && rd_load_disk(0))
+               ROOT_DEV = Root_RAM0;
++#if defined(CONFIG_MIPS_OMS400)
++      /* write able root mount if load user configuration from flash necessary. */
++      if ((no_flashcfg == 0) && mount_initrd) {
++              root_mountflags &= ~MS_RDONLY;
++      }
++#endif        
++
+       mount_root();
+ out:
+       devtmpfs_mount("dev");
+       sys_mount(".", "/", NULL, MS_MOVE, NULL);
+       sys_chroot(".");
++#if defined(CONFIG_MIPS_OMS400)
++      if ((no_flashcfg == 0) && mount_initrd) {
++              root_mountflags = real_root_mountflags;
++              printk("[prepare_namespace] Executing flashcfg...\n");
++              if ((MAJOR(ROOT_DEV) == RAMDISK_MAJOR) && (MINOR(ROOT_DEV) == 0)) {
++                      int pid,i;
++                      pid = kernel_thread(do_restore, "/usr/sbin/flashcfg", SIGCHLD);
++                      if (pid > 0) {
++                              while (pid != sys_wait4(-1, &i, 0, NULL))
++                                      yield();
++                      }
++                      else
++                              printk("[prepare_namespace] Error starting restore thread!\n");
++              }
++              printk("[prepare_namespace] Finished executing flashcfg\n");
++      }
++#endif
+ }
+ static bool is_tmpfs;
+diff --git a/init/do_mounts.h b/init/do_mounts.h
+index f5b978a..884f516 100644
+--- a/init/do_mounts.h
++++ b/init/do_mounts.h
+@@ -55,6 +55,8 @@ static inline int rd_load_image(char *from) { return 0; }
+ #endif
++extern int __initdata mount_initrd;
++
+ #ifdef CONFIG_BLK_DEV_INITRD
+ int __init initrd_load(void);
+@@ -74,3 +76,7 @@ void md_run_setup(void);
+ static inline void md_run_setup(void) {}
+ #endif
++
++#if defined(CONFIG_MIPS_OMS400)
++int __init do_restore(void *shell);
++#endif
+diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
+index 3e0878e..01a9771 100644
+--- a/init/do_mounts_initrd.c
++++ b/init/do_mounts_initrd.c
+@@ -20,10 +20,19 @@
+ #include "do_mounts.h"
++/*
++      ozawa CONFIG_OBSS
++      PlatHome <openlab.plathome.co.jp>
++              - Added do_restore()
++              - write able root mount if load user configuration
++                in prepare_namespace()
++      - Added for CONFIG_MIPS_OMS400
++*/
++
+ unsigned long initrd_start, initrd_end;
+ int initrd_below_start_ok;
+ unsigned int real_root_dev;   /* do_proc_dointvec cannot handle kdev_t */
+-static int __initdata mount_initrd = 1;
++int __initdata mount_initrd = 1;
+ static int __init no_initrd(char *str)
+ {
+@@ -135,3 +144,29 @@ int __init initrd_load(void)
+       sys_unlink("/initrd.image");
+       return 0;
+ }
++
++#if defined(CONFIG_MIPS_OMS400)
++int __init do_restore(void *shell)
++{
++      struct subprocess_info *info;
++      static char *argv[] = { "flashcfg",
++                              "-x",
++                              NULL, };
++      extern char *envp_init[];
++
++      sys_close(0);sys_close(1);sys_close(2);
++      sys_setsid();
++      (void) sys_open("/dev/console",O_RDWR,0);
++      (void) sys_dup(0);
++      (void) sys_dup(0);
++      info = call_usermodehelper_setup("/linuxrc", argv, envp_init,
++                                       GFP_KERNEL, init_linuxrc, NULL, NULL);
++      if (!info){
++              printk("[do_restore] Error starting restore thread!\n");
++              return (-1);
++      }
++      call_usermodehelper_exec(info, UMH_WAIT_PROC);
++
++      return 0;
++}
++#endif
+diff --git a/init/do_mounts_rd.c b/init/do_mounts_rd.c
+index a822702..c6edfdf 100644
+--- a/init/do_mounts_rd.c
++++ b/init/do_mounts_rd.c
+@@ -186,7 +186,11 @@ int __init rd_load_image(char *from)
+ {
+       int res = 0;
+       int in_fd, out_fd;
++#if defined(CONFIG_MIPS_OMS400)
++      long rd_blocks, devblocks;
++#else
+       unsigned long rd_blocks, devblocks;
++#endif
+       int nblocks, i, disk;
+       char *buf = NULL;
+       unsigned short rotate = 0;
+diff --git a/init/main.c b/init/main.c
+index 44af5b5..3c97d0c 100644
+--- a/init/main.c
++++ b/init/main.c
+@@ -7,6 +7,14 @@
+  *  Added initrd & change_root: Werner Almesberger & Hans Lermen, Feb '96
+  *  Moan early if gcc is old, avoiding bogus kernels - Paul Gortmaker, May '96
+  *  Simplified starting of init:  Michael A. Griffith <grif@acm.org> 
++ *
++ *    Century <www.centurysys.co.jp>
++ *            - Added LED display
++ *            - Added recovery mode handling
++ *    2001-12-25 ozawa CONFIG_OBSS
++ *    PlatHome <openlab.plathome.co.jp>
++ *            - Added for OpenBlockS 266
++ *
+  */
+ #define DEBUG         /* Enable initcall_debug */
+@@ -110,6 +118,14 @@ bool early_boot_irqs_disabled __read_mostly;
+ enum system_states system_state __read_mostly;
+ EXPORT_SYMBOL(system_state);
++#if defined(CONFIG_MIPS_OMS400) && defined(CONFIG_OMS400_LED)
++#define STATUS_LED_OUT 1
++#endif
++
++#if defined(STATUS_LED_OUT)
++extern int obsled_out(int);
++#endif
++
+ /*
+  * Boot command-line arguments
+  */
+@@ -503,6 +519,10 @@ asmlinkage __visible void __init start_kernel(void)
+       char * command_line, *after_dashes;
+       extern const struct kernel_param __start___param[], __stop___param[];
++#if defined(STATUS_LED_OUT)
++      obsled_out(1);
++#endif
++
+       /*
+        * Need to run as early as possible, to initialize the
+        * lockdep hash:
+@@ -527,6 +547,9 @@ asmlinkage __visible void __init start_kernel(void)
+  */
+       boot_cpu_init();
+       page_address_init();
++#if defined(STATUS_LED_OUT)
++      obsled_out(2);
++#endif
+       pr_notice("%s", linux_banner);
+       setup_arch(&command_line);
+       mm_init_cpumask(&init_mm);
+@@ -956,6 +979,9 @@ static int __ref kernel_init(void *unused)
+        * The Bourne shell can be used instead of init if we are
+        * trying to recover a really broken machine.
+        */
++#if defined(STATUS_LED_OUT)
++      obsled_out(6);
++#endif
+       if (execute_command) {
+               ret = run_init_process(execute_command);
+               if (!ret)
+@@ -980,6 +1006,11 @@ static noinline void __init kernel_init_freeable(void)
+        */
+       wait_for_completion(&kthreadd_done);
++
++#if defined(STATUS_LED_OUT)
++      obsled_out(3);
++#endif
++
+       /* Now the scheduler is fully set up and can do blocking allocations */
+       gfp_allowed_mask = __GFP_BITS_MASK;
+@@ -1002,8 +1033,15 @@ static noinline void __init kernel_init_freeable(void)
+       smp_init();
+       sched_init_smp();
++#if defined(STATUS_LED_OUT)
++      obsled_out(4);
++#endif
+       do_basic_setup();
++#if defined(STATUS_LED_OUT)
++      obsled_out(5);
++#endif
++
+       /* Open the /dev/console on the rootfs, this should never fail */
+       if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
+               pr_err("Warning: unable to open an initial console.\n");
+diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
+index c600d42..5e37d79 100644
+--- a/sound/usb/quirks-table.h
++++ b/sound/usb/quirks-table.h
+@@ -2443,6 +2443,17 @@ YAMAHA_DEVICE(0x7010, "UB99"),
+       }
+ },
++{
++      /* Creative Sound Blaster Degital Music LX */
++      USB_DEVICE(0x041e, 0x3015),
++      .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
++              .vendor_name = "Creative Labs",
++              .product_name = "Sound Blaster Music LX",
++              .ifnum = QUIRK_NO_INTERFACE
++      }
++      
++},
++
+ /* Emagic devices */
+ {
+       USB_DEVICE(0x086a, 0x0001),
+diff --git a/usr/Makefile b/usr/Makefile
+index e767f01..e2a421b 100644
+--- a/usr/Makefile
++++ b/usr/Makefile
+@@ -72,3 +72,14 @@ $(deps_initramfs): klibcdirs
+ $(obj)/initramfs_data.cpio$(suffix_y): $(obj)/gen_init_cpio $(deps_initramfs) klibcdirs
+       $(Q)$(initramfs) -l $(ramfs-input) > $(obj)/.initramfs_data.cpio.d
+       $(call if_changed,initfs)
++
++ifdef CONFIG_MIPS_OMS400
++
++obj-y += initrd_data.o
++
++$(obj)/initrd_data.o: $(obj)/ramdisk.image.gz FORCE
++
++$(obj)/ramdisk.image.gz:
++      touch $(obj)/ramdisk.image.gz
++
++endif
+diff --git a/usr/initrd_data.S b/usr/initrd_data.S
+new file mode 100644
+index 0000000..1161056
+--- /dev/null
++++ b/usr/initrd_data.S
+@@ -0,0 +1,7 @@
++.section .initrd_data,"a"
++.global Initrd_Data
++_initrdstart:
++.incbin "usr/ramdisk.image.gz"
++_initrdend:
++Initrd_Data:
++.word   0x494e5244 , _initrdstart , _initrdend
diff --git a/vender/Debian/linux-source-3.16.tar.xz b/vender/Debian/linux-source-3.16.tar.xz
new file mode 100644 (file)
index 0000000..622bf91
Binary files /dev/null and b/vender/Debian/linux-source-3.16.tar.xz differ