genirq: Flags mismatch irq 5. 00000000 (ES1688) vs. 00000000
(ES1688)
Reply-To:
Hi all,
snd_es1688_create() seems not doing things right. It never frees the previously allocated resources on error return.. Anyone cares about this driver now?
[ 6.169981] genirq: Flags mismatch irq 5. 00000000 (ES1688) vs. 00000000 (ES1688) [ 6.170851] Pid: 1, comm: swapper Not tainted 3.5.0-00004-gceee0e9 #14 [ 6.170851] Call Trace: [ 6.170851] [<c1062237>] ? __setup_irq+0x3c7/0x420 [ 6.170851] [<c1062486>] ? request_threaded_irq+0x76/0x140 [ 6.170851] [<c1290220>] ? snd_es1688_ioctl+0x10/0x10 [ 6.170851] [<c10624c2>] ? request_threaded_irq+0xb2/0x140 [ 6.170851] [<c1291196>] ? snd_es1688_create+0x96/0x330 [ 6.170851] [<c138365d>] ? snd_gusextreme_probe+0x18d/0x5a2 [ 6.170851] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.170851] [<c10db22f>] ? sysfs_create_link+0xf/0x20 [ 6.170851] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.170851] [<c11d1502>] ? isa_bus_probe+0x12/0x20 [ 6.170851] [<c11c9b95>] ? driver_probe_device+0x55/0x1c0 [ 6.170851] [<c13ae04f>] ? _raw_spin_unlock+0xf/0x30 [ 6.170851] [<c13705ea>] ? klist_next+0x6a/0xe0 [ 6.170851] [<c11d15c1>] ? isa_bus_match+0x21/0x40 [ 6.170851] [<c11c8a24>] ? bus_for_each_drv+0x34/0x70 [ 6.170851] [<c11c9e4b>] ? device_attach+0x7b/0x90 [ 6.170851] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.170851] [<c11c8bff>] ? bus_probe_device+0x5f/0x80 [ 6.170851] [<c11c7493>] ? device_add+0x573/0x620 [ 6.170851] [<c1042820>] ? complete_all+0x40/0x60 [ 6.170851] [<c13ae08a>] ? _raw_spin_unlock_irqrestore+0x1a/0x30 [ 6.170851] [<c11d16c6>] ? isa_register_driver+0xb6/0x150 [ 6.170851] [<c15c9002>] ? alsa_card_gusmax_init+0xf/0xf [ 6.170851] [<c15a99bc>] ? do_one_initcall+0x7f/0x12b [ 6.170851] [<c15a9b7a>] ? kernel_init+0x112/0x1a9 [ 6.170851] [<c15a9423>] ? do_early_param+0x77/0x77 [ 6.170851] [<c15a9a68>] ? do_one_initcall+0x12b/0x12b [ 6.170851] [<c13aefbe>] ? kernel_thread_helper+0x6/0xd [ 6.190170] es1688: can't grab IRQ 5 [ 6.190613] genirq: Flags mismatch irq 5. 00000000 (ES1688) vs. 00000000 (ES1688) [ 6.191566] Pid: 1, comm: swapper Not tainted 3.5.0-00004-gceee0e9 #14 [ 6.192394] Call Trace: [ 6.192685] [<c1062237>] ? __setup_irq+0x3c7/0x420 [ 6.193342] [<c1062486>] ? request_threaded_irq+0x76/0x140 [ 6.194081] [<c1290220>] ? snd_es1688_ioctl+0x10/0x10 [ 6.194607] [<c10624c2>] ? request_threaded_irq+0xb2/0x140 [ 6.194607] [<c1291196>] ? snd_es1688_create+0x96/0x330 [ 6.194607] [<c138365d>] ? snd_gusextreme_probe+0x18d/0x5a2 [ 6.194607] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.194607] [<c10db22f>] ? sysfs_create_link+0xf/0x20 [ 6.194607] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.194607] [<c11d1502>] ? isa_bus_probe+0x12/0x20 [ 6.194607] [<c11c9b95>] ? driver_probe_device+0x55/0x1c0 [ 6.194607] [<c13ae04f>] ? _raw_spin_unlock+0xf/0x30 [ 6.194607] [<c13705ea>] ? klist_next+0x6a/0xe0 [ 6.194607] [<c11d15c1>] ? isa_bus_match+0x21/0x40 [ 6.194607] [<c11c8a24>] ? bus_for_each_drv+0x34/0x70 [ 6.194607] [<c11c9e4b>] ? device_attach+0x7b/0x90 [ 6.194607] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.194607] [<c11c8bff>] ? bus_probe_device+0x5f/0x80 [ 6.194607] [<c11c7493>] ? device_add+0x573/0x620 [ 6.194607] [<c1042820>] ? complete_all+0x40/0x60 [ 6.194607] [<c13ae08a>] ? _raw_spin_unlock_irqrestore+0x1a/0x30 [ 6.194607] [<c11d16c6>] ? isa_register_driver+0xb6/0x150 [ 6.194607] [<c15c9002>] ? alsa_card_gusmax_init+0xf/0xf [ 6.194607] [<c15a99bc>] ? do_one_initcall+0x7f/0x12b [ 6.194607] [<c15a9b7a>] ? kernel_init+0x112/0x1a9 [ 6.194607] [<c15a9423>] ? do_early_param+0x77/0x77 [ 6.194607] [<c15a9a68>] ? do_one_initcall+0x12b/0x12b [ 6.194607] [<c13aefbe>] ? kernel_thread_helper+0x6/0xd [ 6.210779] es1688: can't grab IRQ 5 [ 6.211305] gusextreme: probe of gusextreme.0 failed with error -16
Thanks,
Fengguang
#
# Automatically generated file; DO NOT EDIT.
# Linux/i386 3.5.0 Kernel Configuration
#
# CONFIG_64BIT is not setCONFIG_X86_32=y
# CONFIG_X86_64 is not setCONFIG_X86=yCONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf32-i386" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" CONFIG_LOCKDEP_SUPPORT=yCONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=yCONFIG_MMU=y
# CONFIG_NEED_DMA_MAP_STATE is not set CONFIG_NEED_SG_DMA_LENGTH=yCONFIG_GENERIC_ISA_DMA=yCONFIG_GENERIC_BUG=yCONFIG_GENERIC_HWEIGHT=yCONFIG_GENERIC_GPIO=yCONFIG_ARCH_MAY_HAVE_PC_FDC=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_DEFAULT_IDLE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CPU_AUTOPROBE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y
# CONFIG_ZONE_DMA32 is not set
# CONFIG_AUDIT_ARCH is not set CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_CONSTRUCTORS=yCONFIG_HAVE_IRQ_WORK=yCONFIG_IRQ_WORK=yCONFIG_BUILDTIME_EXTABLE_SORT=y
#
# General setup
#
# CONFIG_EXPERIMENTAL is not setCONFIG_BROKEN_ON_SMP=yCONFIG_INIT_ENV_ARG_LIMIT=32CONFIG_CROSS_COMPILE=""CONFIG_LOCALVERSION=""CONFIG_LOCALVERSION_AUTO=yCONFIG_HAVE_KERNEL_GZIP=yCONFIG_HAVE_KERNEL_BZIP2=yCONFIG_HAVE_KERNEL_LZMA=yCONFIG_HAVE_KERNEL_XZ=yCONFIG_HAVE_KERNEL_LZO=y
# CONFIG_KERNEL_GZIP is not set
# CONFIG_KERNEL_BZIP2 is not setCONFIG_KERNEL_LZMA=y
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not setCONFIG_DEFAULT_HOSTNAME="(none)"
# CONFIG_SYSVIPC is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_FHANDLE is not set
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not setCONFIG_HAVE_GENERIC_HARDIRQS=y
#
# IRQ subsystem
#CONFIG_GENERIC_HARDIRQS=yCONFIG_GENERIC_IRQ_PROBE=yCONFIG_GENERIC_IRQ_SHOW=yCONFIG_GENERIC_IRQ_CHIP=yCONFIG_IRQ_DOMAIN=y
# CONFIG_IRQ_DOMAIN_DEBUG is not setCONFIG_IRQ_FORCED_THREADING=yCONFIG_SPARSE_IRQ=yCONFIG_CLOCKSOURCE_WATCHDOG=yCONFIG_KTIME_SCALAR=yCONFIG_GENERIC_CLOCKEVENTS=yCONFIG_GENERIC_CLOCKEVENTS_BUILD=yCONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=yCONFIG_GENERIC_CMOS_UPDATE=y
#
# Timers subsystem
#
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set
#
# RCU Subsystem
#CONFIG_TINY_PREEMPT_RCU=yCONFIG_PREEMPT_RCU=y
# CONFIG_TREE_RCU_TRACE is not setCONFIG_RCU_BOOST=yCONFIG_RCU_BOOST_PRIO=1CONFIG_RCU_BOOST_DELAY=500CONFIG_IKCONFIG=y
# CONFIG_IKCONFIG_PROC is not setCONFIG_LOG_BUF_SHIFT=17CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=yCONFIG_CGROUPS=yCONFIG_CGROUP_DEBUG=y
# CONFIG_CGROUP_FREEZER is not set
# CONFIG_CGROUP_DEVICE is not setCONFIG_CPUSETS=yCONFIG_PROC_PID_CPUSET=y
# CONFIG_CGROUP_CPUACCT is not setCONFIG_RESOURCE_COUNTERS=y
# CONFIG_CGROUP_MEM_RES_CTLR is not setCONFIG_CGROUP_PERF=yCONFIG_CGROUP_SCHED=yCONFIG_FAIR_GROUP_SCHED=y
# CONFIG_CHECKPOINT_RESTORE is not set
# CONFIG_NAMESPACES is not setCONFIG_SCHED_AUTOGROUP=y
# CONFIG_SYSFS_DEPRECATED is not setCONFIG_RELAY=yCONFIG_BLK_DEV_INITRD=yCONFIG_INITRAMFS_SOURCE=""CONFIG_RD_GZIP=y
# CONFIG_RD_BZIP2 is not setCONFIG_RD_LZMA=y
# CONFIG_RD_XZ is not setCONFIG_RD_LZO=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not setCONFIG_ANON_INODES=yCONFIG_EXPERT=yCONFIG_UID16=yCONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not setCONFIG_HOTPLUG=yCONFIG_PRINTK=yCONFIG_BUG=y
# CONFIG_ELF_CORE is not setCONFIG_PCSPKR_PLATFORM=yCONFIG_HAVE_PCSPKR_PLATFORM=yCONFIG_BASE_FULL=yCONFIG_FUTEX=y
# CONFIG_EPOLL is not set
# CONFIG_SIGNALFD is not setCONFIG_TIMERFD=yCONFIG_EVENTFD=yCONFIG_SHMEM=y
# CONFIG_AIO is not setCONFIG_EMBEDDED=yCONFIG_HAVE_PERF_EVENTS=yCONFIG_PERF_USE_VMALLOC=y
#
# Kernel Performance Events And Counters
#CONFIG_PERF_EVENTS=yCONFIG_DEBUG_PERF_USE_VMALLOC=yCONFIG_VM_EVENT_COUNTERS=yCONFIG_PCI_QUIRKS=yCONFIG_SLUB_DEBUG=yCONFIG_COMPAT_BRK=y
# CONFIG_SLAB is not setCONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not setCONFIG_HAVE_OPROFILE=yCONFIG_OPROFILE_NMI_TIMER=yCONFIG_JUMP_LABEL=yCONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=yCONFIG_HAVE_IOREMAP_PROT=yCONFIG_HAVE_KPROBES=yCONFIG_HAVE_KRETPROBES=yCONFIG_HAVE_OPTPROBES=yCONFIG_HAVE_ARCH_TRACEHOOK=yCONFIG_HAVE_DMA_ATTRS=yCONFIG_HAVE_DMA_CONTIGUOUS=yCONFIG_GENERIC_SMP_IDLE_THREAD=yCONFIG_HAVE_REGS_AND_STACK_ACCESS_API=yCONFIG_HAVE_DMA_API_DEBUG=yCONFIG_HAVE_HW_BREAKPOINT=yCONFIG_HAVE_MIXED_BREAKPOINTS_REGS=yCONFIG_HAVE_USER_RETURN_NOTIFIER=yCONFIG_HAVE_PERF_EVENTS_NMI=yCONFIG_HAVE_ARCH_JUMP_LABEL=yCONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=yCONFIG_HAVE_ALIGNED_STRUCT_PAGE=yCONFIG_HAVE_CMPXCHG_LOCAL=yCONFIG_HAVE_CMPXCHG_DOUBLE=yCONFIG_HAVE_ARCH_SECCOMP_FILTER=y
#
# GCOV-based kernel profiling
#CONFIG_GCOV_KERNEL=y
# CONFIG_GCOV_PROFILE_ALL is not set CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=yCONFIG_RT_MUTEXES=yCONFIG_BASE_SMALL=0
# CONFIG_MODULES is not set
# CONFIG_BLOCK is not set
# CONFIG_INLINE_SPIN_TRYLOCK is not set
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set # CONFIG_INLINE_SPIN_LOCK is not set
# CONFIG_INLINE_SPIN_LOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set CONFIG_UNINLINE_SPIN_UNLOCK=y
# CONFIG_INLINE_SPIN_UNLOCK_BH is not set # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set # CONFIG_INLINE_READ_TRYLOCK is not set
# CONFIG_INLINE_READ_LOCK is not set
# CONFIG_INLINE_READ_LOCK_BH is not set
# CONFIG_INLINE_READ_LOCK_IRQ is not set
# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set # CONFIG_INLINE_READ_UNLOCK is not set
# CONFIG_INLINE_READ_UNLOCK_BH is not set # CONFIG_INLINE_READ_UNLOCK_IRQ is not set # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set # CONFIG_INLINE_WRITE_TRYLOCK is not set
# CONFIG_INLINE_WRITE_LOCK is not set
# CONFIG_INLINE_WRITE_LOCK_BH is not set
# CONFIG_INLINE_WRITE_LOCK_IRQ is not set # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set # CONFIG_INLINE_WRITE_UNLOCK is not set
# CONFIG_INLINE_WRITE_UNLOCK_BH is not set # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set # CONFIG_MUTEX_SPIN_ON_OWNER is not set CONFIG_FREEZER=y
#
# Processor type and features
#CONFIG_ZONE_DMA=y
# CONFIG_SMP is not setCONFIG_X86_EXTENDED_PLATFORM=yCONFIG_X86_WANT_INTEL_MID=yCONFIG_X86_RDC321X=yCONFIG_X86_SUPPORTS_MEMORY_FAILURE=yCONFIG_X86_32_IRIS=y
# CONFIG_SCHED_OMIT_FRAME_POINTER is not setCONFIG_PARAVIRT_GUEST=yCONFIG_PARAVIRT_TIME_ACCOUNTING=y
# CONFIG_XEN_PRIVILEGED_GUEST is not setCONFIG_KVM_CLOCK=yCONFIG_KVM_GUEST=yCONFIG_LGUEST_GUEST=yCONFIG_PARAVIRT=yCONFIG_PARAVIRT_CLOCK=y
# CONFIG_PARAVIRT_DEBUG is not setCONFIG_NO_BOOTMEM=yCONFIG_MEMTEST=y
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not setCONFIG_M686=y
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MELAN is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
# CONFIG_MCORE2 is not set
# CONFIG_MATOM is not setCONFIG_X86_GENERIC=yCONFIG_X86_INTERNODE_CACHE_SHIFT=6CONFIG_X86_CMPXCHG=yCONFIG_X86_L1_CACHE_SHIFT=6CONFIG_X86_XADD=y
# CONFIG_X86_PPRO_FENCE is not setCONFIG_X86_WP_WORKS_OK=yCONFIG_X86_INVLPG=yCONFIG_X86_BSWAP=yCONFIG_X86_POPAD_OK=yCONFIG_X86_INTEL_USERCOPY=yCONFIG_X86_USE_PPRO_CHECKSUM=yCONFIG_X86_TSC=yCONFIG_X86_CMPXCHG64=yCONFIG_X86_CMOV=yCONFIG_X86_MINIMUM_CPU_FAMILY=5CONFIG_X86_DEBUGCTLMSR=yCONFIG_PROCESSOR_SELECT=yCONFIG_CPU_SUP_INTEL=y
# CONFIG_CPU_SUP_CYRIX_32 is not set
# CONFIG_CPU_SUP_AMD is not setCONFIG_CPU_SUP_CENTAUR=y
# CONFIG_CPU_SUP_TRANSMETA_32 is not set
# CONFIG_CPU_SUP_UMC_32 is not set
# CONFIG_HPET_TIMER is not set
# CONFIG_DMI is not set
# CONFIG_IOMMU_HELPER is not setCONFIG_NR_CPUS=1
# CONFIG_IRQ_TIME_ACCOUNTING is not set
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not setCONFIG_PREEMPT=yCONFIG_PREEMPT_COUNT=y
# CONFIG_X86_UP_APIC is not setCONFIG_X86_MCE=y
# CONFIG_X86_ANCIENT_MCE is not set
# CONFIG_X86_MCE_INJECT is not setCONFIG_VM86=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not setCONFIG_X86_REBOOTFIXUPS=yCONFIG_MICROCODE=yCONFIG_MICROCODE_INTEL=y
# CONFIG_MICROCODE_AMD is not setCONFIG_MICROCODE_OLD_INTERFACE=yCONFIG_X86_MSR=yCONFIG_X86_CPUID=y
# CONFIG_NOHIGHMEM is not setCONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not setCONFIG_PAGE_OFFSET=0xC0000000CONFIG_HIGHMEM=y
# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
# CONFIG_ARCH_DMA_ADDR_T_64BIT is not setCONFIG_ARCH_FLATMEM_ENABLE=yCONFIG_ILLEGAL_POINTER_VALUE=0CONFIG_FLATMEM=yCONFIG_FLAT_NODE_MEM_MAP=yCONFIG_HAVE_MEMBLOCK=yCONFIG_HAVE_MEMBLOCK_NODE_MAP=yCONFIG_ARCH_DISCARD_MEMBLOCK=yCONFIG_PAGEFLAGS_EXTENDED=yCONFIG_SPLIT_PTLOCK_CPUS=999999CONFIG_COMPACTION=yCONFIG_MIGRATION=y
# CONFIG_PHYS_ADDR_T_64BIT is not setCONFIG_ZONE_DMA_FLAG=1CONFIG_VIRT_TO_BUS=yCONFIG_KSM=yCONFIG_DEFAULT_MMAP_MIN_ADDR=4096CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=yCONFIG_MEMORY_FAILURE=yCONFIG_HWPOISON_INJECT=yCONFIG_TRANSPARENT_HUGEPAGE=yCONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not setCONFIG_CROSS_MEMORY_ATTACH=yCONFIG_NEED_PER_CPU_KM=y
# CONFIG_CLEANCACHE is not setCONFIG_HIGHPTE=y
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not setCONFIG_X86_RESERVE_LOW=64CONFIG_MATH_EMULATION=yCONFIG_MTRR=y
# CONFIG_MTRR_SANITIZER is not setCONFIG_X86_PAT=yCONFIG_ARCH_USES_PG_UNCACHED=y
# CONFIG_ARCH_RANDOM is not set
# CONFIG_EFI is not set
# CONFIG_SECCOMP is not setCONFIG_CC_STACKPROTECTOR=y
# CONFIG_HZ_100 is not setCONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not setCONFIG_HZ=250
# CONFIG_SCHED_HRTICK is not set
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not setCONFIG_PHYSICAL_START=0x1000000CONFIG_RELOCATABLE=yCONFIG_X86_NEED_RELOCS=yCONFIG_PHYSICAL_ALIGN=0x1000000CONFIG_COMPAT_VDSO=y
# CONFIG_CMDLINE_BOOL is not setCONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
#
# Power management and ACPI options
#CONFIG_SUSPEND=yCONFIG_SUSPEND_FREEZER=yCONFIG_PM_SLEEP=y
# CONFIG_PM_AUTOSLEEP is not set
# CONFIG_PM_WAKELOCKS is not set
# CONFIG_PM_RUNTIME is not setCONFIG_PM=y
# CONFIG_PM_DEBUG is not setCONFIG_ACPI=yCONFIG_ACPI_SLEEP=y
# CONFIG_ACPI_PROCFS is not setCONFIG_ACPI_PROCFS_POWER=y
# CONFIG_ACPI_EC_DEBUGFS is not setCONFIG_ACPI_PROC_EVENT=y
# CONFIG_ACPI_AC is not set
# CONFIG_ACPI_BATTERY is not setCONFIG_ACPI_BUTTON=y
# CONFIG_ACPI_VIDEO is not setCONFIG_ACPI_FAN=y
# CONFIG_ACPI_PROCESSOR is not set
# CONFIG_ACPI_CUSTOM_DSDT is not setCONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
# CONFIG_ACPI_PCI_SLOT is not setCONFIG_X86_PM_TIMER=yCONFIG_ACPI_SBS=y
# CONFIG_ACPI_HED is not set
# CONFIG_ACPI_CUSTOM_METHOD is not set
# CONFIG_ACPI_BGRT is not set
# CONFIG_ACPI_APEI is not set
# CONFIG_SFI is not setCONFIG_X86_APM_BOOT=yCONFIG_APM=y
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
# CONFIG_APM_DO_ENABLE is not set
# CONFIG_APM_CPU_IDLE is not setCONFIG_APM_DISPLAY_BLANK=y
# CONFIG_APM_ALLOW_INTS is not set
#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set
# CONFIG_CPU_IDLE is not set
#
# Bus options (PCI etc.)
#CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not setCONFIG_PCI_GOANY=yCONFIG_PCI_BIOS=yCONFIG_PCI_DIRECT=yCONFIG_PCI_MMCONFIG=yCONFIG_PCI_DOMAINS=yCONFIG_PCIEPORTBUS=yCONFIG_HOTPLUG_PCI_PCIE=y
# CONFIG_PCIEAER is not setCONFIG_PCIEASPM=y
# CONFIG_PCIEASPM_DEBUG is not setCONFIG_PCIEASPM_DEFAULT=y
# CONFIG_PCIEASPM_POWERSAVE is not set
# CONFIG_PCIEASPM_PERFORMANCE is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
# CONFIG_PCI_STUB is not setCONFIG_PCI_ATS=y
# CONFIG_PCI_IOV is not setCONFIG_PCI_PRI=y
# CONFIG_PCI_PASID is not set
# CONFIG_PCI_IOAPIC is not setCONFIG_PCI_LABEL=yCONFIG_ISA_DMA_API=yCONFIG_ISA=yCONFIG_EISA=yCONFIG_EISA_VLB_PRIMING=yCONFIG_EISA_PCI_EISA=y
# CONFIG_EISA_VIRTUAL_ROOT is not setCONFIG_EISA_NAMES=y
# CONFIG_SCx200 is not set
# CONFIG_OLPC is not set
# CONFIG_ALIX is not setCONFIG_NET5501=y
# CONFIG_PCCARD is not setCONFIG_HOTPLUG_PCI=yCONFIG_HOTPLUG_PCI_FAKE=yCONFIG_HOTPLUG_PCI_COMPAQ=yCONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y
# CONFIG_HOTPLUG_PCI_ACPI is not setCONFIG_HOTPLUG_PCI_CPCI=yCONFIG_HOTPLUG_PCI_CPCI_ZT5550=y
# CONFIG_HOTPLUG_PCI_CPCI_GENERIC is not set
# CONFIG_HOTPLUG_PCI_SHPC is not set
# CONFIG_RAPIDIO is not set
#
# Executable file formats / Emulations
#CONFIG_BINFMT_ELF=yCONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=yCONFIG_HAVE_AOUT=y
# CONFIG_BINFMT_AOUT is not setCONFIG_BINFMT_MISC=yCONFIG_HAVE_ATOMIC_IOMAP=yCONFIG_HAVE_TEXT_POKE_SMP=yCONFIG_NET=y
#
# Networking options
#
# CONFIG_PACKET is not setCONFIG_UNIX=y
# CONFIG_UNIX_DIAG is not set
# CONFIG_NET_KEY is not set
# CONFIG_INET is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETFILTER is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_PHONET is not set
# CONFIG_NET_SCHED is not set
# CONFIG_DCB is not set
# CONFIG_DNS_RESOLVER is not set
# CONFIG_BATMAN_ADV is not set
# CONFIG_OPENVSWITCH is not set
# CONFIG_NETPRIO_CGROUP is not setCONFIG_BQL=y
#
# 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 is not setCONFIG_WIRELESS=y
# CONFIG_CFG80211 is not set
# CONFIG_LIB80211 is not set
#
# CFG80211 needs to be enabled for MAC80211
#
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
# CONFIG_CAIF is not set
#
# Device Drivers
#
#
# Generic Driver Options
#CONFIG_UEVENT_HELPER_PATH=""CONFIG_DEVTMPFS=yCONFIG_DEVTMPFS_MOUNT=yCONFIG_STANDALONE=yCONFIG_PREVENT_FIRMWARE_BUILD=yCONFIG_FW_LOADER=yCONFIG_FIRMWARE_IN_KERNEL=yCONFIG_EXTRA_FIRMWARE=""
# 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_CONNECTOR is not set
# CONFIG_MTD is not setCONFIG_PARPORT=yCONFIG_PARPORT_PC=yCONFIG_PARPORT_SERIAL=y
# CONFIG_PARPORT_GSC is not setCONFIG_PARPORT_AX88796=y
# CONFIG_PARPORT_1284 is not setCONFIG_PARPORT_NOT_PC=yCONFIG_PNP=y
# CONFIG_PNP_DEBUG_MESSAGES is not set
#
# Protocols
#CONFIG_ISAPNP=yCONFIG_PNPACPI=y
#
# Misc devices
#
# CONFIG_SENSORS_LIS3LV02D is not set
# CONFIG_PHANTOM is not setCONFIG_INTEL_MID_PTI=yCONFIG_SGI_IOC4=y
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_CS5535_MFGPT is not setCONFIG_HP_ILO=yCONFIG_VMWARE_BALLOON=y
# CONFIG_PCH_PHUB is not set
#
# EEPROM support
#CONFIG_EEPROM_93CX6=y
# CONFIG_CB710_CORE is not set
#
# Texas Instruments shared transport line discipline #
# CONFIG_TI_ST is not set
#
# Altera FPGA firmware download module
#CONFIG_HAVE_IDE=y
#
# SCSI device support
#CONFIG_SCSI_MOD=y
# CONFIG_SCSI_DMA is not set
# CONFIG_SCSI_NETLINK is not setCONFIG_FUSION=yCONFIG_FUSION_MAX_SGE=128CONFIG_FUSION_LOGGING=y
#
# IEEE 1394 (FireWire) support
#CONFIG_FIREWIRE=yCONFIG_FIREWIRE_OHCI=yCONFIG_FIREWIRE_NOSY=y
# CONFIG_I2O is not setCONFIG_MACINTOSH_DRIVERS=y
# CONFIG_NETDEVICES is not set
# CONFIG_ISDN is not set
#
# Input device support
#CONFIG_INPUT=yCONFIG_INPUT_FF_MEMLESS=yCONFIG_INPUT_POLLDEV=yCONFIG_INPUT_SPARSEKMAP=yCONFIG_INPUT_MATRIXKMAP=y
#
# Userland interfaces
#CONFIG_INPUT_MOUSEDEV=yCONFIG_INPUT_MOUSEDEV_PSAUX=yCONFIG_INPUT_MOUSEDEV_SCREEN_X=1024CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768CONFIG_INPUT_JOYDEV=y
# CONFIG_INPUT_EVDEV is not setCONFIG_INPUT_EVBUG=y
#
# Input Device Drivers
#CONFIG_INPUT_KEYBOARD=yCONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_GPIO is not set
# CONFIG_KEYBOARD_GPIO_POLLED is not set
# CONFIG_KEYBOARD_MATRIX 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_OMAP4 is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not setCONFIG_INPUT_TABLET=y
# CONFIG_TABLET_USB_ACECAD is not setCONFIG_TABLET_USB_AIPTEK=y
# CONFIG_TABLET_USB_GTCO is not set
# CONFIG_TABLET_USB_HANWANG is not setCONFIG_TABLET_USB_KBTAB=y
# CONFIG_TABLET_USB_WACOM is not set
# CONFIG_INPUT_TOUCHSCREEN is not setCONFIG_INPUT_MISC=yCONFIG_INPUT_AD714X=y
# CONFIG_INPUT_PCSPKR is not setCONFIG_INPUT_GPIO_TILT_POLLED=yCONFIG_INPUT_WISTRON_BTNS=y
# CONFIG_INPUT_ATLAS_BTNS is not setCONFIG_INPUT_ATI_REMOTE2=y
# CONFIG_INPUT_POWERMATE is not setCONFIG_INPUT_UINPUT=y
# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not setCONFIG_INPUT_ADXL34X=yCONFIG_INPUT_CMA3000=y
#
# Hardware I/O ports
#CONFIG_SERIO=yCONFIG_SERIO_I8042=yCONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PARKBD is not set
# CONFIG_SERIO_PCIPS2 is not setCONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_SERIO_ALTERA_PS2 is not set
# CONFIG_SERIO_PS2MULT is not set
# CONFIG_GAMEPORT is not set
#
# Character devices
#
# CONFIG_VT is not set
# CONFIG_UNIX98_PTYS is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_TRACE_SINK is not set
# CONFIG_DEVKMEM is not set
#
# Serial drivers
#CONFIG_SERIAL_8250=yCONFIG_SERIAL_8250_CONSOLE=yCONFIG_FIX_EARLYCON_MEM=yCONFIG_SERIAL_8250_PCI=y
# CONFIG_SERIAL_8250_PNP is not setCONFIG_SERIAL_8250_NR_UARTS=4CONFIG_SERIAL_8250_RUNTIME_UARTS=4CONFIG_SERIAL_8250_EXTENDED=yCONFIG_SERIAL_8250_MANY_PORTS=yCONFIG_SERIAL_8250_FOURPORT=y
# CONFIG_SERIAL_8250_ACCENT is not setCONFIG_SERIAL_8250_BOCA=y
# CONFIG_SERIAL_8250_EXAR_ST16C554 is not setCONFIG_SERIAL_8250_HUB6=yCONFIG_SERIAL_8250_SHARE_IRQ=yCONFIG_SERIAL_8250_DETECT_IRQ=y
# CONFIG_SERIAL_8250_RSA 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_TIMBERDALE=y CONFIG_SERIAL_ALTERA_JTAGUART=y CONFIG_SERIAL_ALTERA_JTAGUART_CONSOLE=y
# CONFIG_SERIAL_ALTERA_JTAGUART_CONSOLE_BYPASS is not set CONFIG_SERIAL_ALTERA_UART=y CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 CONFIG_SERIAL_ALTERA_UART_CONSOLE=y CONFIG_SERIAL_PCH_UART=y
# CONFIG_SERIAL_PCH_UART_CONSOLE is not set
# CONFIG_SERIAL_XILINX_PS_UART is not set
# CONFIG_TTY_PRINTK is not setCONFIG_PRINTER=yCONFIG_LP_CONSOLE=yCONFIG_PPDEV=yCONFIG_HVC_DRIVER=yCONFIG_VIRTIO_CONSOLE=yCONFIG_IPMI_HANDLER=y
# CONFIG_IPMI_PANIC_EVENT is not set
# CONFIG_IPMI_DEVICE_INTERFACE is not set
# CONFIG_IPMI_SI is not set
# CONFIG_IPMI_WATCHDOG is not set CONFIG_IPMI_POWEROFF=yCONFIG_HW_RANDOM=y
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
# CONFIG_HW_RANDOM_INTEL is not set CONFIG_HW_RANDOM_AMD=y
# CONFIG_HW_RANDOM_GEODE is not set CONFIG_HW_RANDOM_VIA=yCONFIG_HW_RANDOM_VIRTIO=yCONFIG_NVRAM=yCONFIG_RTC=yCONFIG_DTLK=yCONFIG_R3964=y
# CONFIG_APPLICOM is not set
# CONFIG_MWAVE is not set
CONFIG_PC8736x_GPIO=yCONFIG_NSC_GPIO=y
# CONFIG_HPET is not set CONFIG_HANGCHECK_TIMER=y
# CONFIG_TCG_TPM is not setCONFIG_DEVPORT=y
# CONFIG_I2C is not set
# CONFIG_SPI is not setCONFIG_HSI=yCONFIG_HSI_BOARDINFO=y
#
# HSI clients
#
# CONFIG_HSI_CHAR is not set
#
# PPS support
#
#
# PPS generators support
#
#
# PTP clock support
#
#
# Enable Device Drivers -> PPS to see the PTP clock options. #CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_GENERIC=y
#
# Memory mapped GPIO drivers:
#CONFIG_GPIO_GENERIC_PLATFORM=yCONFIG_GPIO_IT8761E=yCONFIG_GPIO_SCH=y
# CONFIG_GPIO_ICH is not set
# CONFIG_GPIO_VX855 is not set
#
# I2C GPIO expanders:
#
#
# PCI GPIO expanders:
#CONFIG_GPIO_CS5535=y
# CONFIG_GPIO_BT8XX is not setCONFIG_GPIO_LANGWELL=y
# CONFIG_GPIO_PCH is not setCONFIG_GPIO_ML_IOH=y
# CONFIG_GPIO_RDC321X is not set
#
# SPI GPIO expanders:
#
#
# AC97 GPIO expanders:
#
# CONFIG_GPIO_UCB1400 is not set
#
# MODULbus GPIO expanders:
#CONFIG_W1=y
#
# 1-wire Bus Masters
#
# CONFIG_W1_MASTER_MATROX is not set
# CONFIG_W1_MASTER_DS2490 is not setCONFIG_W1_MASTER_DS1WM=yCONFIG_W1_MASTER_GPIO=y
#
# 1-wire Slaves
#
# CONFIG_W1_SLAVE_THERM is not setCONFIG_W1_SLAVE_SMEM=y
# CONFIG_W1_SLAVE_DS2408 is not set
# CONFIG_W1_SLAVE_DS2423 is not setCONFIG_W1_SLAVE_DS2431=yCONFIG_W1_SLAVE_DS2433=yCONFIG_W1_SLAVE_DS2433_CRC=y
# CONFIG_W1_SLAVE_DS2760 is not setCONFIG_W1_SLAVE_DS2780=yCONFIG_W1_SLAVE_DS2781=yCONFIG_W1_SLAVE_BQ27000=yCONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
# CONFIG_PDA_POWER is not set
# CONFIG_TEST_POWER is not set
# CONFIG_BATTERY_DS2780 is not setCONFIG_BATTERY_DS2781=y
CONFIG_BATTERY_BQ27x00=yCONFIG_BATTERY_BQ27X00_PLATFORM=yCONFIG_CHARGER_ISP1704=y
# CONFIG_CHARGER_MAX8903 is not setCONFIG_CHARGER_GPIO=y
# CONFIG_HWMON is not setCONFIG_THERMAL=yCONFIG_WATCHDOG=yCONFIG_WATCHDOG_CORE=yCONFIG_WATCHDOG_NOWAYOUT=y
#
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_ADVANTECH_WDT is not set
# CONFIG_ALIM1535_WDT is not set
# CONFIG_ALIM7101_WDT is not set
# CONFIG_SP5100_TCO is not setCONFIG_SC520_WDT=yCONFIG_SBC_FITPC2_WATCHDOG=yCONFIG_EUROTECH_WDT=yCONFIG_IB700_WDT=yCONFIG_IBMASR=yCONFIG_WAFER_WDT=yCONFIG_I6300ESB_WDT=y
# CONFIG_IE6XX_WDT is not setCONFIG_ITCO_WDT=y
# CONFIG_ITCO_VENDOR_SUPPORT is not setCONFIG_IT8712F_WDT=yCONFIG_HP_WATCHDOG=yCONFIG_HPWDT_NMI_DECODING=y
# CONFIG_SC1200_WDT is not setCONFIG_PC87413_WDT=yCONFIG_NV_TCO=y
# CONFIG_RDC321X_WDT is not setCONFIG_60XX_WDT=y
# CONFIG_SBC8360_WDT is not set
# CONFIG_SBC7240_WDT is not set
# CONFIG_CPU5_WDT is not set
# CONFIG_SMSC_SCH311X_WDT is not set
# CONFIG_SMSC37B787_WDT is not setCONFIG_VIA_WDT=y
# CONFIG_W83627HF_WDT is not setCONFIG_W83697HF_WDT=y
# CONFIG_W83697UG_WDT is not set
# CONFIG_W83877F_WDT is not setCONFIG_W83977F_WDT=y
# CONFIG_MACHZ_WDT is not set
# CONFIG_SBC_EPX_C3_WATCHDOG is not set
#
# ISA-based Watchdog Cards
#
# CONFIG_PCWATCHDOG is not setCONFIG_MIXCOMWD=y
# CONFIG_WDT is not set
#
# PCI-based Watchdog Cards
#CONFIG_PCIPCWATCHDOG=yCONFIG_WDTPCI=y
#
# USB-based Watchdog Cards
#CONFIG_USBPCWATCHDOG=yCONFIG_SSB_POSSIBLE=y
#
# Sonics Silicon Backplane
#CONFIG_SSB=yCONFIG_SSB_PCIHOST_POSSIBLE=y
# CONFIG_SSB_PCIHOST is not set
# CONFIG_SSB_SILENT is not set
# CONFIG_SSB_DEBUG is not setCONFIG_BCMA_POSSIBLE=y
#
# Broadcom specific AMBA
#CONFIG_BCMA=yCONFIG_BCMA_HOST_PCI_POSSIBLE=yCONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_DEBUG is not set
#
# Multifunction device drivers
#CONFIG_MFD_CORE=y
# CONFIG_MFD_SM501 is not setCONFIG_HTC_PASIC3=yCONFIG_UCB1400_CORE=y
# CONFIG_MFD_TMIO is not setCONFIG_ABX500_CORE=yCONFIG_MFD_CS5535=y
# CONFIG_MFD_TIMBERDALE is not setCONFIG_LPC_SCH=yCONFIG_LPC_ICH=yCONFIG_MFD_RDC321X=y
# CONFIG_MFD_JANZ_CMODIO is not setCONFIG_MFD_VX855=y
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set
#
# Graphics support
#CONFIG_AGP=y
# CONFIG_AGP_ALI is not setCONFIG_AGP_ATI=yCONFIG_AGP_AMD=yCONFIG_AGP_INTEL=y
# CONFIG_AGP_NVIDIA is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
# CONFIG_AGP_VIA is not set
# CONFIG_AGP_EFFICEON is not setCONFIG_VGA_ARB=yCONFIG_VGA_ARB_MAX_GPUS=16CONFIG_VGA_SWITCHEROO=y
# CONFIG_DRM is not set
# CONFIG_STUB_POULSBO is not set
# CONFIG_VGASTATE is not setCONFIG_VIDEO_OUTPUT_CONTROL=y
# CONFIG_FB is not setCONFIG_EXYNOS_VIDEO=yCONFIG_BACKLIGHT_LCD_SUPPORT=y
# CONFIG_LCD_CLASS_DEVICE is not setCONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not setCONFIG_BACKLIGHT_PROGEAR=y
# CONFIG_BACKLIGHT_APPLE is not setCONFIG_BACKLIGHT_SAHARA=yCONFIG_SOUND=yCONFIG_SOUND_OSS_CORE=yCONFIG_SOUND_OSS_CORE_PRECLAIM=yCONFIG_SND=yCONFIG_SND_TIMER=yCONFIG_SND_PCM=yCONFIG_SND_HWDEP=yCONFIG_SND_RAWMIDI=yCONFIG_SND_JACK=y
# CONFIG_SND_SEQUENCER is not setCONFIG_SND_OSSEMUL=y
# CONFIG_SND_MIXER_OSS is not setCONFIG_SND_PCM_OSS=y
# CONFIG_SND_PCM_OSS_PLUGINS is not setCONFIG_SND_RTCTIMER=yCONFIG_SND_DYNAMIC_MINORS=yCONFIG_SND_SUPPORT_OLD_API=y
# CONFIG_SND_VERBOSE_PROCFS is not set
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not setCONFIG_SND_VMASTER=yCONFIG_SND_DMA_SGBUF=y
# CONFIG_SND_RAWMIDI_SEQ is not set
# 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 setCONFIG_SND_MPU401_UART=yCONFIG_SND_OPL3_LIB=yCONFIG_SND_OPL4_LIB=yCONFIG_SND_VX_LIB=yCONFIG_SND_AC97_CODEC=y
# CONFIG_SND_DRIVERS is not setCONFIG_SND_WSS_LIB=yCONFIG_SND_SB_COMMON=yCONFIG_SND_SB8_DSP=yCONFIG_SND_SB16_DSP=yCONFIG_SND_ISA=yCONFIG_SND_ADLIB=y
# CONFIG_SND_AD1816A is not setCONFIG_SND_AD1848=y
# CONFIG_SND_ALS100 is not setCONFIG_SND_AZT1605=yCONFIG_SND_AZT2316=yCONFIG_SND_AZT2320=yCONFIG_SND_CMI8330=yCONFIG_SND_CS4231=yCONFIG_SND_CS4236=yCONFIG_SND_ES1688=y
# CONFIG_SND_ES18XX is not set
# CONFIG_SND_SC6000 is not setCONFIG_SND_GUSCLASSIC=yCONFIG_SND_GUSEXTREME=yCONFIG_SND_GUSMAX=y
# CONFIG_SND_INTERWAVE is not set
# CONFIG_SND_INTERWAVE_STB is not set
# CONFIG_SND_JAZZ16 is not set
# CONFIG_SND_OPL3SA2 is not setCONFIG_SND_OPTI92X_AD1848=yCONFIG_SND_OPTI92X_CS4231=y
# CONFIG_SND_OPTI93X is not set
# CONFIG_SND_MIRO is not setCONFIG_SND_SB8=y
# CONFIG_SND_SB16 is not setCONFIG_SND_SBAWE=y
# CONFIG_SND_SB16_CSP is not setCONFIG_SND_SSCAPE=yCONFIG_SND_WAVEFRONT=yCONFIG_SND_PCI=yCONFIG_SND_AD1889=y
# CONFIG_SND_ALS300 is not setCONFIG_SND_ALS4000=yCONFIG_SND_ALI5451=yCONFIG_SND_ASIHPI=y
# CONFIG_SND_ATIIXP is not setCONFIG_SND_ATIIXP_MODEM=y
# CONFIG_SND_AU8810 is not setCONFIG_SND_AU8820=y
# CONFIG_SND_AU8830 is not setCONFIG_SND_AW2=yCONFIG_SND_AZT3328=y
# CONFIG_SND_BT87X is not setCONFIG_SND_CA0106=yCONFIG_SND_CMIPCI=yCONFIG_SND_OXYGEN_LIB=yCONFIG_SND_OXYGEN=y
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not setCONFIG_SND_CS5530=y
# CONFIG_SND_CS5535AUDIO is not setCONFIG_SND_CTXFI=yCONFIG_SND_DARLA20=y
# CONFIG_SND_GINA20 is not setCONFIG_SND_LAYLA20=y
# CONFIG_SND_DARLA24 is not setCONFIG_SND_GINA24=y
# CONFIG_SND_LAYLA24 is not set
# CONFIG_SND_MONA is not setCONFIG_SND_MIA=yCONFIG_SND_ECHO3G=y
# CONFIG_SND_INDIGO is not set
# CONFIG_SND_INDIGOIO is not setCONFIG_SND_INDIGODJ=y
# CONFIG_SND_INDIGOIOX is not set
# CONFIG_SND_INDIGODJX is not setCONFIG_SND_EMU10K1=yCONFIG_SND_EMU10K1X=y
# CONFIG_SND_ENS1370 is not setCONFIG_SND_ENS1371=yCONFIG_SND_ES1938=y
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_HDA_INTEL is not set
# CONFIG_SND_HDSP is not setCONFIG_SND_HDSPM=yCONFIG_SND_ICE1712=y
# CONFIG_SND_ICE1724 is not setCONFIG_SND_INTEL8X0=yCONFIG_SND_INTEL8X0M=yCONFIG_SND_KORG1212=yCONFIG_SND_LOLA=yCONFIG_SND_LX6464ES=yCONFIG_SND_MAESTRO3=yCONFIG_SND_MAESTRO3_INPUT=y
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not setCONFIG_SND_PCXHR=y
# CONFIG_SND_RIPTIDE is not set
# CONFIG_SND_RME32 is not setCONFIG_SND_RME96=y
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SIS7019 is not set
# CONFIG_SND_SONICVIBES is not setCONFIG_SND_TRIDENT=yCONFIG_SND_VIA82XX=yCONFIG_SND_VIA82XX_MODEM=yCONFIG_SND_VIRTUOSO=yCONFIG_SND_VX222=y
# CONFIG_SND_YMFPCI is not set
# CONFIG_SND_USB is not setCONFIG_SND_FIREWIRE=y
# CONFIG_SND_FIREWIRE_SPEAKERS is not set
# CONFIG_SND_ISIGHT is not setCONFIG_SND_SOC=yCONFIG_SND_SOC_ALL_CODECS=yCONFIG_SND_SOC_AD73311=yCONFIG_SND_SOC_ADAV80X=yCONFIG_SND_SOC_ADS117X=yCONFIG_SND_SOC_CX20442=yCONFIG_SND_SOC_JZ4740_CODEC=yCONFIG_SND_SOC_L3=yCONFIG_SND_SOC_DFBMCS320=yCONFIG_SND_SOC_PCM3008=yCONFIG_SND_SOC_SPDIF=yCONFIG_SND_SOC_UDA134X=yCONFIG_SND_SOC_WM8727=yCONFIG_SND_SOC_WM8782=yCONFIG_SND_SIMPLE_CARD=y
# CONFIG_SOUND_PRIME is not setCONFIG_AC97_BUS=y
#
# HID support
#
# CONFIG_HID is not set
#
# USB HID support
#
# CONFIG_USB_HID is not set
# CONFIG_HID_PID is not set
#
# USB HID Boot Protocol drivers
#
# CONFIG_USB_KBD is not setCONFIG_USB_MOUSE=yCONFIG_USB_ARCH_HAS_OHCI=yCONFIG_USB_ARCH_HAS_EHCI=yCONFIG_USB_ARCH_HAS_XHCI=yCONFIG_USB_SUPPORT=yCONFIG_USB_COMMON=yCONFIG_USB_ARCH_HAS_HCD=yCONFIG_USB=yCONFIG_USB_DEBUG=yCONFIG_USB_ANNOUNCE_NEW_DEVICES=y
#
# Miscellaneous USB options
#CONFIG_USB_DYNAMIC_MINORS=y
# CONFIG_USB_OTG_WHITELIST is not setCONFIG_USB_OTG_BLACKLIST_HUB=yCONFIG_USB_MON=y
# CONFIG_USB_WUSB_CBAF is not set
#
# USB Host Controller Drivers
#
# CONFIG_USB_C67X00_HCD is not set
# CONFIG_USB_EHCI_HCD is not setCONFIG_USB_EHCI_ROOT_HUB_TT=y
# CONFIG_USB_EHCI_TT_NEWSCHED is not setCONFIG_USB_OXU210HP_HCD=y
# CONFIG_USB_ISP116X_HCD is not setCONFIG_USB_ISP1362_HCD=yCONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not setCONFIG_USB_OHCI_LITTLE_ENDIAN=yCONFIG_USB_UHCI_HCD=y
# CONFIG_USB_U132_HCD is not set
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not setCONFIG_USB_CHIPIDEA=yCONFIG_USB_CHIPIDEA_HOST=yCONFIG_USB_CHIPIDEA_DEBUG=y
#
# USB Device Class drivers
#CONFIG_USB_ACM=y
# CONFIG_USB_PRINTER is not set
# 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_LIBUSUAL is not set
#
# USB Imaging devices
#CONFIG_USB_MDC800=y
#
# USB port drivers
#
# CONFIG_USB_USS720 is not set
# CONFIG_USB_SERIAL is not set
#
# USB Miscellaneous drivers
#CONFIG_USB_EMI62=yCONFIG_USB_EMI26=y
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_SEVSEG is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not setCONFIG_USB_LED=y
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_IDMOUSE is not setCONFIG_USB_FTDI_ELAN=yCONFIG_USB_APPLEDISPLAY=y
# CONFIG_USB_LD is not setCONFIG_USB_TRANCEVIBRATOR=yCONFIG_USB_IOWARRIOR=y
# CONFIG_USB_TEST is not set
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_YUREX is not set
#
# USB Physical Layer drivers
#
# CONFIG_USB_GADGET is not set
#
# OTG and related infrastructure
#CONFIG_USB_OTG_UTILS=yCONFIG_USB_GPIO_VBUS=yCONFIG_NOP_USB_XCEIV=y
# CONFIG_MMC is not setCONFIG_MEMSTICK=y
# CONFIG_MEMSTICK_DEBUG is not set
#
# MemoryStick drivers
#CONFIG_MEMSTICK_UNSAFE_RESUME=y
#
# MemoryStick Host Controller Drivers
#CONFIG_NEW_LEDS=yCONFIG_LEDS_CLASS=y
#
# LED drivers
#CONFIG_LEDS_GPIO=y
# CONFIG_LEDS_LT3593 is not set
# CONFIG_LEDS_DELL_NETBOOKS is not set
# CONFIG_LEDS_OT200 is not set
# CONFIG_LEDS_TRIGGERS is not set
#
# LED Triggers
#CONFIG_ACCESSIBILITY=y
# CONFIG_INFINIBAND is not setCONFIG_EDAC=y
#
# Reporting subsystems
#
# CONFIG_EDAC_DEBUG is not set
# CONFIG_EDAC_MM_EDAC is not set
# CONFIG_RTC_CLASS is not setCONFIG_DMADEVICES=yCONFIG_DMADEVICES_DEBUG=y
# CONFIG_DMADEVICES_VDEBUG is not set
#
# DMA Devices
#
# CONFIG_INTEL_MID_DMAC is not set
# CONFIG_INTEL_IOATDMA is not set
# CONFIG_TIMB_DMA is not setCONFIG_PCH_DMA=yCONFIG_DMA_ENGINE=y
#
# DMA Clients
#
# CONFIG_NET_DMA is not set
# CONFIG_ASYNC_TX_DMA is not set
# CONFIG_DMATEST is not setCONFIG_AUXDISPLAY=y
# CONFIG_KS0108 is not set
# CONFIG_UIO is not setCONFIG_VIRTIO=yCONFIG_VIRTIO_RING=y
#
# Virtio drivers
#
# CONFIG_VIRTIO_BALLOON is not set
#
# Microsoft Hyper-V guest support
#CONFIG_HYPERV=yCONFIG_STAGING=y
# CONFIG_SLICOSS is not set
# CONFIG_ECHO is not setCONFIG_ASUS_OLED=y
# CONFIG_PANEL is not set
# CONFIG_TRANZPORT is not set
# CONFIG_LINE6_USB is not setCONFIG_DX_SEP=yCONFIG_ZSMALLOC=y
# CONFIG_CRYSTALHD is not set
# CONFIG_ACPI_QUICKSTART is not setCONFIG_FT1000=y
# CONFIG_FT1000_USB is not set
#
# Speakup console speech
#
# CONFIG_STAGING_MEDIA is not set
#
# Android
#
# CONFIG_ANDROID is not set
# CONFIG_PHONE is not set
# CONFIG_USB_WPAN_HCD is not set
# CONFIG_IPACK_BUS is not set
# CONFIG_WIMAX_GDM72XX is not setCONFIG_X86_PLATFORM_DEVICES=y
# CONFIG_ACER_WMI is not setCONFIG_ACERHDF=yCONFIG_ASUS_LAPTOP=yCONFIG_DELL_WMI=yCONFIG_DELL_WMI_AIO=y
# CONFIG_FUJITSU_LAPTOP is not setCONFIG_FUJITSU_TABLET=y
# CONFIG_HP_ACCEL is not set
# CONFIG_HP_WMI is not setCONFIG_PANASONIC_LAPTOP=y
# CONFIG_THINKPAD_ACPI is not set
# CONFIG_SENSORS_HDAPS is not set
# CONFIG_EEEPC_LAPTOP is not setCONFIG_ACPI_WMI=y
# CONFIG_MSI_WMI is not set
# CONFIG_TOPSTAR_LAPTOP is not set
# CONFIG_ACPI_TOSHIBA is not setCONFIG_TOSHIBA_BT_RFKILL=y
# CONFIG_ACPI_CMPC is not set
# CONFIG_INTEL_IPS is not set
# CONFIG_IBM_RTL is not setCONFIG_XO15_EBOOK=yCONFIG_SAMSUNG_LAPTOP=yCONFIG_MXM_WMI=y
# CONFIG_SAMSUNG_Q10 is not setCONFIG_APPLE_GMUX=y
#
# Hardware Spinlock drivers
#CONFIG_CLKSRC_I8253=yCONFIG_CLKEVT_I8253=yCONFIG_I8253_LOCK=yCONFIG_CLKBLD_I8253=y
# CONFIG_IOMMU_SUPPORT is not set
#
# Remoteproc drivers (EXPERIMENTAL)
#
#
# Rpmsg drivers (EXPERIMENTAL)
#CONFIG_VIRT_DRIVERS=yCONFIG_PM_DEVFREQ=y
#
# DEVFREQ Governors
#CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=yCONFIG_DEVFREQ_GOV_PERFORMANCE=yCONFIG_DEVFREQ_GOV_POWERSAVE=y
# CONFIG_DEVFREQ_GOV_USERSPACE is not set
#
# DEVFREQ Drivers
#CONFIG_EXTCON=y
#
# Extcon Device Drivers
#CONFIG_EXTCON_GPIO=yCONFIG_MEMORY=y
# CONFIG_IIO is not setCONFIG_VME_BUS=y
#
# VME Bridge Drivers
#CONFIG_VME_CA91CX42=y
# CONFIG_VME_TSI148 is not set
#
# VME Board Drivers
#
# CONFIG_VMIVME_7805 is not set
#
# VME Device Drivers
#
# CONFIG_VME_USER is not set
# CONFIG_VME_PIO2 is not set
#
# Firmware Drivers
#CONFIG_EDD=y
# CONFIG_EDD_OFF is not set
# CONFIG_FIRMWARE_MEMMAP is not set
# CONFIG_DELL_RBU is not setCONFIG_DCDBAS=yCONFIG_ISCSI_IBFT_FIND=yCONFIG_GOOGLE_FIRMWARE=y
#
# Google Firmware Drivers
#
#
# File systems
#CONFIG_DCACHE_WORD_ACCESS=y
# CONFIG_FS_POSIX_ACL is not set
# CONFIG_FILE_LOCKING is not setCONFIG_FSNOTIFY=y
# CONFIG_DNOTIFY is not setCONFIG_INOTIFY_USER=y
# CONFIG_FANOTIFY is not set
# CONFIG_QUOTA is not set
# CONFIG_QUOTACTL is not setCONFIG_AUTOFS4_FS=yCONFIG_FUSE_FS=y
# CONFIG_CUSE is not set
#
# Caches
#
# CONFIG_FSCACHE is not set
#
# Pseudo filesystems
#CONFIG_PROC_FS=y
# CONFIG_PROC_KCORE is not set
# CONFIG_PROC_SYSCTL is not setCONFIG_PROC_PAGE_MONITOR=yCONFIG_SYSFS=yCONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not setCONFIG_TMPFS_XATTR=y
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
# CONFIG_CONFIGFS_FS is not setCONFIG_MISC_FILESYSTEMS=yCONFIG_PSTORE=y
# CONFIG_PSTORE_RAM is not setCONFIG_NETWORK_FILESYSTEMS=yCONFIG_NLS=yCONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_CODEPAGE_437 is not setCONFIG_NLS_CODEPAGE_737=yCONFIG_NLS_CODEPAGE_775=yCONFIG_NLS_CODEPAGE_850=yCONFIG_NLS_CODEPAGE_852=y
# CONFIG_NLS_CODEPAGE_855 is not setCONFIG_NLS_CODEPAGE_857=y
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not setCONFIG_NLS_CODEPAGE_862=yCONFIG_NLS_CODEPAGE_863=yCONFIG_NLS_CODEPAGE_864=yCONFIG_NLS_CODEPAGE_865=yCONFIG_NLS_CODEPAGE_866=yCONFIG_NLS_CODEPAGE_869=y
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not setCONFIG_NLS_CODEPAGE_932=yCONFIG_NLS_CODEPAGE_949=yCONFIG_NLS_CODEPAGE_874=yCONFIG_NLS_ISO8859_8=y
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not setCONFIG_NLS_ASCII=y
# CONFIG_NLS_ISO8859_1 is not setCONFIG_NLS_ISO8859_2=yCONFIG_NLS_ISO8859_3=y
# 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 setCONFIG_NLS_ISO8859_9=y
# CONFIG_NLS_ISO8859_13 is not setCONFIG_NLS_ISO8859_14=yCONFIG_NLS_ISO8859_15=yCONFIG_NLS_KOI8_R=y
# CONFIG_NLS_KOI8_U is not setCONFIG_NLS_MAC_ROMAN=yCONFIG_NLS_MAC_CELTIC=y
# CONFIG_NLS_MAC_CENTEURO is not setCONFIG_NLS_MAC_CROATIAN=yCONFIG_NLS_MAC_CYRILLIC=yCONFIG_NLS_MAC_GAELIC=y
# CONFIG_NLS_MAC_GREEK is not setCONFIG_NLS_MAC_ICELAND=yCONFIG_NLS_MAC_INUIT=yCONFIG_NLS_MAC_ROMANIAN=yCONFIG_NLS_MAC_TURKISH=y
# CONFIG_NLS_UTF8 is not set
#
# Kernel hacking
#CONFIG_TRACE_IRQFLAGS_SUPPORT=yCONFIG_PRINTK_TIME=yCONFIG_DEFAULT_MESSAGE_LOGLEVEL=4CONFIG_ENABLE_WARN_DEPRECATED=y
# CONFIG_ENABLE_MUST_CHECK is not setCONFIG_FRAME_WARN=1024CONFIG_MAGIC_SYSRQ=y
# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_READABLE_ASM is not set
# CONFIG_UNUSED_SYMBOLS is not setCONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not setCONFIG_DEBUG_KERNEL=yCONFIG_DEBUG_SHIRQ=y
# CONFIG_LOCKUP_DETECTOR is not set
# CONFIG_HARDLOCKUP_DETECTOR is not set
# CONFIG_PANIC_ON_OOPS is not setCONFIG_PANIC_ON_OOPS_VALUE=0
# CONFIG_DETECT_HUNG_TASK is not setCONFIG_SCHED_DEBUG=yCONFIG_SCHEDSTATS=y
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_OBJECTS is not setCONFIG_SLUB_DEBUG_ON=yCONFIG_SLUB_STATS=yCONFIG_DEBUG_PREEMPT=y
# CONFIG_DEBUG_RT_MUTEXES is not setCONFIG_RT_MUTEX_TESTER=yCONFIG_DEBUG_SPINLOCK=y
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not setCONFIG_SPARSE_RCU_POINTER=y
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_ATOMIC_SLEEP is not setCONFIG_DEBUG_LOCKING_API_SELFTESTS=y
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_HIGHMEM is not setCONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_VIRTUAL is not set
# CONFIG_DEBUG_WRITECOUNT is not setCONFIG_DEBUG_MEMORY_INIT=yCONFIG_DEBUG_LIST=y
# CONFIG_TEST_LIST_SORT is not setCONFIG_DEBUG_SG=y
# CONFIG_DEBUG_NOTIFIERS is not set
# CONFIG_DEBUG_CREDENTIALS is not setCONFIG_ARCH_WANT_FRAME_POINTERS=y
# CONFIG_FRAME_POINTER is not setCONFIG_BOOT_PRINTK_DELAY=y
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_TRACE is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not setCONFIG_FAULT_INJECTION=yCONFIG_FAILSLAB=yCONFIG_FAIL_PAGE_ALLOC=y
# CONFIG_FAULT_INJECTION_DEBUG_FS is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_DEBUG_PAGEALLOC is not setCONFIG_USER_STACKTRACE_SUPPORT=yCONFIG_HAVE_FUNCTION_TRACER=yCONFIG_HAVE_FUNCTION_GRAPH_TRACER=yCONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=yCONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=yCONFIG_HAVE_DYNAMIC_FTRACE=yCONFIG_HAVE_FTRACE_MCOUNT_RECORD=yCONFIG_HAVE_SYSCALL_TRACEPOINTS=yCONFIG_HAVE_C_RECORDMCOUNT=yCONFIG_TRACING_SUPPORT=y
# CONFIG_FTRACE is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not setCONFIG_FIREWIRE_OHCI_REMOTE_DMA=y
# CONFIG_DYNAMIC_DEBUG is not set
# CONFIG_DMA_API_DEBUG is not setCONFIG_ATOMIC64_SELFTEST=y
# CONFIG_SAMPLES is not setCONFIG_HAVE_ARCH_KGDB=yCONFIG_HAVE_ARCH_KMEMCHECK=y
# CONFIG_KMEMCHECK is not set
# CONFIG_TEST_KSTRTOX is not setCONFIG_STRICT_DEVMEM=yCONFIG_X86_VERBOSE_BOOTUP=y
# CONFIG_EARLY_PRINTK is not setCONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_X86_PTDUMP is not set
# CONFIG_DEBUG_RODATA is not set
# CONFIG_DOUBLEFAULT is not set
# CONFIG_IOMMU_STRESS is not setCONFIG_HAVE_MMIOTRACE_SUPPORT=yCONFIG_IO_DELAY_TYPE_0X80=0CONFIG_IO_DELAY_TYPE_0XED=1CONFIG_IO_DELAY_TYPE_UDELAY=2CONFIG_IO_DELAY_TYPE_NONE=3
# CONFIG_IO_DELAY_0X80 is not set
# CONFIG_IO_DELAY_0XED is not setCONFIG_IO_DELAY_UDELAY=y
# CONFIG_IO_DELAY_NONE is not setCONFIG_DEFAULT_IO_DELAY_TYPE=2
# CONFIG_DEBUG_BOOT_PARAMS is not set
# CONFIG_CPA_DEBUG is not setCONFIG_OPTIMIZE_INLINING=y
# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
#
# Security options
#CONFIG_KEYS=yCONFIG_ENCRYPTED_KEYS=y
# CONFIG_KEYS_DEBUG_PROC_KEYS is not setCONFIG_SECURITY_DMESG_RESTRICT=y
# CONFIG_SECURITY is not set
# CONFIG_SECURITYFS is not setCONFIG_DEFAULT_SECURITY_DAC=yCONFIG_DEFAULT_SECURITY=""CONFIG_CRYPTO=y
#
# Crypto core or helper
#CONFIG_CRYPTO_ALGAPI=yCONFIG_CRYPTO_ALGAPI2=yCONFIG_CRYPTO_AEAD=yCONFIG_CRYPTO_AEAD2=yCONFIG_CRYPTO_BLKCIPHER=yCONFIG_CRYPTO_BLKCIPHER2=yCONFIG_CRYPTO_HASH=yCONFIG_CRYPTO_HASH2=yCONFIG_CRYPTO_RNG=yCONFIG_CRYPTO_RNG2=yCONFIG_CRYPTO_PCOMP2=yCONFIG_CRYPTO_MANAGER=yCONFIG_CRYPTO_MANAGER2=y
# CONFIG_CRYPTO_USER is not setCONFIG_CRYPTO_MANAGER_DISABLE_TESTS=yCONFIG_CRYPTO_GF128MUL=yCONFIG_CRYPTO_NULL=yCONFIG_CRYPTO_WORKQUEUE=yCONFIG_CRYPTO_CRYPTD=yCONFIG_CRYPTO_AUTHENC=y
#
# Authenticated Encryption with Associated Data
#CONFIG_CRYPTO_CCM=yCONFIG_CRYPTO_GCM=yCONFIG_CRYPTO_SEQIV=y
#
# Block modes
#CONFIG_CRYPTO_CBC=yCONFIG_CRYPTO_CTR=y
# CONFIG_CRYPTO_CTS is not set
# CONFIG_CRYPTO_ECB is not set
# CONFIG_CRYPTO_LRW is not setCONFIG_CRYPTO_PCBC=y
# CONFIG_CRYPTO_XTS is not set
#
# Hash modes
#CONFIG_CRYPTO_HMAC=y
#
# Digest
#CONFIG_CRYPTO_CRC32C=y
# CONFIG_CRYPTO_CRC32C_INTEL is not setCONFIG_CRYPTO_GHASH=y
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not setCONFIG_CRYPTO_MICHAEL_MIC=yCONFIG_CRYPTO_RMD128=yCONFIG_CRYPTO_RMD160=yCONFIG_CRYPTO_RMD256=yCONFIG_CRYPTO_RMD320=yCONFIG_CRYPTO_SHA1=yCONFIG_CRYPTO_SHA256=y
# CONFIG_CRYPTO_SHA512 is not setCONFIG_CRYPTO_TGR192=yCONFIG_CRYPTO_WP512=y
#
# Ciphers
#CONFIG_CRYPTO_AES=y
# CONFIG_CRYPTO_AES_586 is not set
# CONFIG_CRYPTO_AES_NI_INTEL is not set
# CONFIG_CRYPTO_ANUBIS is not setCONFIG_CRYPTO_ARC4=yCONFIG_CRYPTO_BLOWFISH=yCONFIG_CRYPTO_BLOWFISH_COMMON=yCONFIG_CRYPTO_CAMELLIA=yCONFIG_CRYPTO_CAST5=y
# CONFIG_CRYPTO_CAST6 is not setCONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_FCRYPT is not setCONFIG_CRYPTO_KHAZAD=yCONFIG_CRYPTO_SEED=yCONFIG_CRYPTO_SERPENT=y
# CONFIG_CRYPTO_SERPENT_SSE2_586 is not setCONFIG_CRYPTO_TEA=y
# CONFIG_CRYPTO_TWOFISH is not setCONFIG_CRYPTO_TWOFISH_COMMON=yCONFIG_CRYPTO_TWOFISH_586=y
#
# Compression
#CONFIG_CRYPTO_DEFLATE=y
# CONFIG_CRYPTO_ZLIB is not set
# CONFIG_CRYPTO_LZO is not set
#
# Random Number Generation
#CONFIG_CRYPTO_ANSI_CPRNG=y
# CONFIG_CRYPTO_USER_API_HASH is not set
# CONFIG_CRYPTO_USER_API_SKCIPHER is not setCONFIG_CRYPTO_HW=yCONFIG_CRYPTO_DEV_PADLOCK=yCONFIG_CRYPTO_DEV_PADLOCK_AES=yCONFIG_CRYPTO_DEV_PADLOCK_SHA=y
# CONFIG_CRYPTO_DEV_GEODE is not setCONFIG_CRYPTO_DEV_HIFN_795X=yCONFIG_CRYPTO_DEV_HIFN_795X_RNG=yCONFIG_HAVE_KVM=yCONFIG_VIRTUALIZATION=y
# CONFIG_KVM is not set
# CONFIG_BINARY_PRINTF is not set
#
# Library routines
#CONFIG_BITREVERSE=yCONFIG_GENERIC_STRNCPY_FROM_USER=yCONFIG_GENERIC_STRNLEN_USER=yCONFIG_GENERIC_FIND_FIRST_BIT=yCONFIG_GENERIC_PCI_IOMAP=yCONFIG_GENERIC_IOMAP=yCONFIG_GENERIC_IO=y
# CONFIG_CRC_CCITT is not setCONFIG_CRC16=y
# CONFIG_CRC_T10DIF is not setCONFIG_CRC_ITU_T=yCONFIG_CRC32=yCONFIG_CRC32_SELFTEST=y
# CONFIG_CRC32_SLICEBY8 is not set
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not setCONFIG_CRC32_BIT=yCONFIG_CRC7=yCONFIG_LIBCRC32C=yCONFIG_CRC8=yCONFIG_ZLIB_INFLATE=yCONFIG_ZLIB_DEFLATE=yCONFIG_LZO_DECOMPRESS=yCONFIG_XZ_DEC=yCONFIG_XZ_DEC_X86=yCONFIG_XZ_DEC_POWERPC=yCONFIG_XZ_DEC_IA64=y
# CONFIG_XZ_DEC_ARM is not set
# CONFIG_XZ_DEC_ARMTHUMB is not setCONFIG_XZ_DEC_SPARC=yCONFIG_XZ_DEC_BCJ=y
# CONFIG_XZ_DEC_TEST is not setCONFIG_DECOMPRESS_GZIP=yCONFIG_DECOMPRESS_LZMA=yCONFIG_DECOMPRESS_LZO=yCONFIG_HAS_IOMEM=yCONFIG_HAS_IOPORT=yCONFIG_HAS_DMA=yCONFIG_CHECK_SIGNATURE=yCONFIG_DQL=yCONFIG_NLATTR=y
# CONFIG_AVERAGE is not setCONFIG_CORDIC=y
# CONFIG_DDR is not set
Quoted 8 lines · Fengguang Wu
(ES1688)
Reply-To:Hi all,
snd_es1688_create()seems not doing things right. It never frees the previously allocated resources on error return.. Anyone cares about this driver now?
Could you try the (not even compile-tested) patch attached?
Daniel
sound/isa/es1688/es1688_lib.c +24 -8
@@ -658,18 +658,25 @@ int snd_es1688_create(struct snd_card *card, chip->irq =-1 ; chip->dma8 =-1 ; -if ((chip->res_port =request_region (port +4 ,12 ,"ES1688" )) ==NULL ) { + chip->res_port =request_region (port +4 ,12 ,"ES1688" ); +if (chip->res_port ==NULL ) {snd_printk (KERN_ERR "es1688: can't grab port 0x%lx\n" , port +4 ); -return -EBUSY ; + err = -EBUSY ; + goto exit; } -if (request_irq (irq, snd_es1688_interrupt,0 ,"ES1688" , (void *) chip)) { + + err =request_irq (irq, snd_es1688_interrupt,0 ,"ES1688" , (void *) chip); +if (err <0 ) {snd_printk (KERN_ERR "es1688: can't grab IRQ %d\n" , irq); -return -EBUSY ; + goto exit_release_region; } + chip->irq = irq; -if (request_dma (dma8,"ES1688" )) { + err =request_dma (dma8,"ES1688" ); + +if (err <0 ) {snd_printk (KERN_ERR "es1688: can't grab DMA8 %d\n" , dma8); -return -EBUSY ; + goto exit_release_irq; } chip->dma8 = dma8;
@@ -685,14 +692,23 @@ int snd_es1688_create(struct snd_card *card, err =snd_es1688_probe (chip);if (err <0 ) -return err; + goto exit_release_dma; err =snd_es1688_init (chip,1 );if (err <0 ) -return err; + goto exit_release_dma;/* Register device */ return snd_device_new (card,SNDRV_DEV_LOWLEVEL , chip, &ops); + +exit_release_dma: +free_dma (chip->dma8); +exit_release_irq: +free_irq (chip->irq, chip); +exit_release_region: +release_and_free_resource (chip->res_port); +exit: +return err; }static struct snd_pcm_ops snd_es1688_playback_ops = {
At Sat, 28 Jul 2012 17:13:53 +0200,
Quoted 50 lines · Daniel Mack
sound/isa/es1688/es1688_lib.c +15
-8@@ -658,18 +658,25 @@ int snd_es1688_create(struct snd_card *card, chip->irq =-1 ; chip->dma8 =-1 ; -if ((chip->res_port =request_region (port +4 ,12 ,"ES1688" )) ==NULL ) { + chip->res_port =request_region (port +4 ,12 ,"ES1688" ); +if (chip->res_port ==NULL ) {snd_printk (KERN_ERR "es1688: can't grab port 0x%lx\n" , port +4 ); -return -EBUSY ; + err = -EBUSY ; + goto exit; } -if (request_irq (irq, snd_es1688_interrupt,0 ,"ES1688" , (void *) chip)) { + + err =request_irq (irq, snd_es1688_interrupt,0 ,"ES1688" , (void *) chip); +if (err <0 ) {snd_printk (KERN_ERR "es1688: can't grab IRQ %d\n" , irq); -return -EBUSY ; + goto exit_release_region; } + chip->irq = irq; -if (request_dma (dma8,"ES1688" )) { + err =request_dma (dma8,"ES1688" ); + +if (err <0 ) {snd_printk (KERN_ERR "es1688: can't grab DMA8 %d\n" , dma8); -return -EBUSY ; + goto exit_release_irq; } chip->dma8 = dma8;@@ -685,14 +692,23 @@ int snd_es1688_create(struct snd_card *card, err =snd_es1688_probe (chip);if (err <0 ) -return err; + goto exit_release_dma; err =snd_es1688_init (chip,1 );if (err <0 ) -return err; + goto exit_release_dma;/* Register device */
sound/isa/es1688/es1688_lib.c int snd_es1688_create(struct snd_card *card, · line 711
Quoted 10 lines
sound/isa/es1688/es1688_lib.c +9
-0return snd_device_new (card,SNDRV_DEV_LOWLEVEL , chip, &ops); + +exit_release_dma: +free_dma (chip->dma8); +exit_release_irq: +free_irq (chip->irq, chip); +exit_release_region: +release_and_free_resource (chip->res_port); +exit: +return err;
You can simply call snd_es1688_free(chip) instead of a bunch of labels. That is, all goto's can be "goto exit", and
exit:
snd_es1688_free(chip); return err;
thanks,
Takashi
PATCH 1/1 es1688 - freeup resources on init failure
Quoted 20 lines
Quoted 6 lines
(quoted diff) +1
-1err = snd_es1688_init(chip, 1); if (err < 0) - return err; + goto exit_release_dma; /* Register device */Review
Quoted 10 lines
(quoted diff) +9
-0return snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops); + +exit_release_dma: + free_dma(chip->dma8); +exit_release_irq: + free_irq(chip->irq, chip); +exit_release_region: + release_and_free_resource(chip->res_port); +exit: + return err;You can simply call
snd_es1688_free(chip)instead of a bunch of labels. That is, all goto's can be "goto exit", and
Quoted 3 lines
exit:
snd_es1688_free(chip); return err;
snd_es1688_free() will call snd_es1688_init() which in turn use the uninitialized spin locks and other data. So I end up with the below patch. snd_device_new() could also return errors and will be handled in the same way.
I don't have the hardware, however tests show it at least fixed the boot time irq mismatch warnings.
Daniel, thanks for your initial implementation and please kindly confirm the below 3rd version :)
Thanks,
Fengguang
---
es1688 - freeup resources on init failure
This will fix the following oops:
[ 6.169981] genirq: Flags mismatch irq 5. 00000000 (ES1688) vs. 00000000 (ES1688) [ 6.170851] Pid: 1, comm: swapper Not tainted 3.5.0-00004-gceee0e9 #14 [ 6.170851] Call Trace: [ 6.170851] [<c1062237>] ? __setup_irq+0x3c7/0x420 [ 6.170851] [<c1062486>] ? request_threaded_irq+0x76/0x140 [ 6.170851] [<c1290220>] ? snd_es1688_ioctl+0x10/0x10 [ 6.170851] [<c10624c2>] ? request_threaded_irq+0xb2/0x140 [ 6.170851] [<c1291196>] ? snd_es1688_create+0x96/0x330 [ 6.170851] [<c138365d>] ? snd_gusextreme_probe+0x18d/0x5a2 [ 6.170851] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.170851] [<c10db22f>] ? sysfs_create_link+0xf/0x20 [ 6.170851] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.170851] [<c11d1502>] ? isa_bus_probe+0x12/0x20 [ 6.170851] [<c11c9b95>] ? driver_probe_device+0x55/0x1c0 [ 6.170851] [<c13ae04f>] ? _raw_spin_unlock+0xf/0x30 [ 6.170851] [<c13705ea>] ? klist_next+0x6a/0xe0 [ 6.170851] [<c11d15c1>] ? isa_bus_match+0x21/0x40 [ 6.170851] [<c11c8a24>] ? bus_for_each_drv+0x34/0x70 [ 6.170851] [<c11c9e4b>] ? device_attach+0x7b/0x90 [ 6.170851] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.170851] [<c11c8bff>] ? bus_probe_device+0x5f/0x80 [ 6.170851] [<c11c7493>] ? device_add+0x573/0x620 [ 6.170851] [<c1042820>] ? complete_all+0x40/0x60 [ 6.170851] [<c13ae08a>] ? _raw_spin_unlock_irqrestore+0x1a/0x30 [ 6.170851] [<c11d16c6>] ? isa_register_driver+0xb6/0x150 [ 6.170851] [<c15c9002>] ? alsa_card_gusmax_init+0xf/0xf [ 6.170851] [<c15a99bc>] ? do_one_initcall+0x7f/0x12b [ 6.170851] [<c15a9b7a>] ? kernel_init+0x112/0x1a9 [ 6.170851] [<c15a9423>] ? do_early_param+0x77/0x77 [ 6.170851] [<c15a9a68>] ? do_one_initcall+0x12b/0x12b [ 6.170851] [<c13aefbe>] ? kernel_thread_helper+0x6/0xd [ 6.190170] es1688: can't grab IRQ 5 [ 6.190613] genirq: Flags mismatch irq 5. 00000000 (ES1688) vs. 00000000 (ES1688) [ 6.191566] Pid: 1, comm: swapper Not tainted 3.5.0-00004-gceee0e9 #14 [ 6.192394] Call Trace: [ 6.192685] [<c1062237>] ? __setup_irq+0x3c7/0x420 [ 6.193342] [<c1062486>] ? request_threaded_irq+0x76/0x140 [ 6.194081] [<c1290220>] ? snd_es1688_ioctl+0x10/0x10 [ 6.194607] [<c10624c2>] ? request_threaded_irq+0xb2/0x140 [ 6.194607] [<c1291196>] ? snd_es1688_create+0x96/0x330 [ 6.194607] [<c138365d>] ? snd_gusextreme_probe+0x18d/0x5a2 [ 6.194607] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.194607] [<c10db22f>] ? sysfs_create_link+0xf/0x20 [ 6.194607] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.194607] [<c11d1502>] ? isa_bus_probe+0x12/0x20 [ 6.194607] [<c11c9b95>] ? driver_probe_device+0x55/0x1c0 [ 6.194607] [<c13ae04f>] ? _raw_spin_unlock+0xf/0x30 [ 6.194607] [<c13705ea>] ? klist_next+0x6a/0xe0 [ 6.194607] [<c11d15c1>] ? isa_bus_match+0x21/0x40 [ 6.194607] [<c11c8a24>] ? bus_for_each_drv+0x34/0x70 [ 6.194607] [<c11c9e4b>] ? device_attach+0x7b/0x90 [ 6.194607] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.194607] [<c11c8bff>] ? bus_probe_device+0x5f/0x80 [ 6.194607] [<c11c7493>] ? device_add+0x573/0x620 [ 6.194607] [<c1042820>] ? complete_all+0x40/0x60 [ 6.194607] [<c13ae08a>] ? _raw_spin_unlock_irqrestore+0x1a/0x30 [ 6.194607] [<c11d16c6>] ? isa_register_driver+0xb6/0x150 [ 6.194607] [<c15c9002>] ? alsa_card_gusmax_init+0xf/0xf [ 6.194607] [<c15a99bc>] ? do_one_initcall+0x7f/0x12b [ 6.194607] [<c15a9b7a>] ? kernel_init+0x112/0x1a9 [ 6.194607] [<c15a9423>] ? do_early_param+0x77/0x77 [ 6.194607] [<c15a9a68>] ? do_one_initcall+0x12b/0x12b [ 6.194607] [<c13aefbe>] ? kernel_thread_helper+0x6/0xd [ 6.210779] es1688: can't grab IRQ 5 [ 6.211305] gusextreme: probe of gusextreme.0 failed with error -16
--- include/sound/es1688.h | 1 sound/isa/es1688/es1688_lib.c | 34 +++++++++++++++++++++----------- 2 files changed, 24 insertions(+), 11 deletions(-)
sound/isa/es1688/es1688_lib.c +23 -11
@@ -612,10 +612,10 @@ static int snd_es1688_capture_close(strustatic int snd_es1688_free (struct snd_es1688 *chip) { -if (chip->res_port) { +if (chip->hardware !=ES1688_HW_UNDEF )snd_es1688_init (chip,0 ); +if (chip->res_port)release_and_free_resource (chip->res_port); - }if (chip->irq >=0 )free_irq (chip->irq, (void *) chip);if (chip->dma8 >=0 ) {
@@ -657,19 +657,27 @@ int snd_es1688_create(struct snd_card *creturn -ENOMEM ; chip->irq =-1 ; chip->dma8 =-1 ; + chip->hardware =ES1688_HW_UNDEF ; -if ((chip->res_port =request_region (port +4 ,12 ,"ES1688" )) ==NULL ) { + chip->res_port =request_region (port +4 ,12 ,"ES1688" ); +if (chip->res_port ==NULL ) {snd_printk (KERN_ERR "es1688: can't grab port 0x%lx\n" , port +4 ); -return -EBUSY ; + err = -EBUSY ; + goto exit; } -if (request_irq (irq, snd_es1688_interrupt,0 ,"ES1688" , (void *) chip)) { + + err =request_irq (irq, snd_es1688_interrupt,0 ,"ES1688" , (void *) chip); +if (err <0 ) {snd_printk (KERN_ERR "es1688: can't grab IRQ %d\n" , irq); -return -EBUSY ; + goto exit; } + chip->irq = irq; -if (request_dma (dma8,"ES1688" )) { + err =request_dma (dma8,"ES1688" ); + +if (err <0 ) {snd_printk (KERN_ERR "es1688: can't grab DMA8 %d\n" , dma8); -return -EBUSY ; + goto exit; } chip->dma8 = dma8;
@@ -685,14 +693,18 @@ int snd_es1688_create(struct snd_card *c err =snd_es1688_probe (chip);if (err <0 ) -return err; + goto exit; err =snd_es1688_init (chip,1 );if (err <0 ) -return err; + goto exit;/* Register device */ -return snd_device_new (card,SNDRV_DEV_LOWLEVEL , chip, &ops); + err =snd_device_new (card,SNDRV_DEV_LOWLEVEL , chip, &ops); +exit: +if (err) +snd_es1688_free (chip); +return err; }static struct snd_pcm_ops snd_es1688_playback_ops = {
include/sound/es1688.h +1 -0
@@ -29,6 +29,7 @@#define ES1688_HW_AUTO 0x0000#define ES1688_HW_688 0x0001#define ES1688_HW_1688 0x0002 +#define ES1688_HW_UNDEF 0x0003struct snd_es1688 {unsigned long port;/* port of ESS chip */
Re: [PATCH] es1688 - freeup resources on init failure
Quoted 29 lines · Fengguang Wu
Quoted 20 lines
Quoted 6 lines
(quoted diff) +1
-1err = snd_es1688_init(chip, 1); if (err < 0) - return err; + goto exit_release_dma; /* Register device */Review
Quoted 10 lines
(quoted diff) +9
-0return snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops); + +exit_release_dma: + free_dma(chip->dma8); +exit_release_irq: + free_irq(chip->irq, chip); +exit_release_region: + release_and_free_resource(chip->res_port); +exit: + return err;You can simply call
snd_es1688_free(chip)instead of a bunch of labels. That is, all goto's can be "goto exit", andQuoted 3 lines
exit:
snd_es1688_free(chip); return err;
snd_es1688_free()will callsnd_es1688_init()which in turn use the uninitialized spin locks and other data. So I end up with the below patch.snd_device_new()could also return errors and will be handled in the same way.
Quoted 5 lines
I don't have the hardware, however tests show it at least fixed the boot time irq mismatch warnings.
Daniel, thanks for your initial implementation and please kindly confirm the below 3rd version :)
Looks good to me, but I don't have the hardware either :)
Daniel
Quoted 160 lines
---
es1688 - freeup resources on init failureThis will fix the following oops:
[ 6.169981] genirq: Flags mismatch irq 5. 00000000 (ES1688) vs. 00000000 (ES1688) [ 6.170851] Pid: 1, comm: swapper Not tainted 3.5.0-00004-gceee0e9 #14 [ 6.170851] Call Trace: [ 6.170851] [<c1062237>] ? __setup_irq+0x3c7/0x420 [ 6.170851] [<c1062486>] ? request_threaded_irq+0x76/0x140 [ 6.170851] [<c1290220>] ? snd_es1688_ioctl+0x10/0x10 [ 6.170851] [<c10624c2>] ? request_threaded_irq+0xb2/0x140 [ 6.170851] [<c1291196>] ? snd_es1688_create+0x96/0x330 [ 6.170851] [<c138365d>] ? snd_gusextreme_probe+0x18d/0x5a2 [ 6.170851] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.170851] [<c10db22f>] ? sysfs_create_link+0xf/0x20 [ 6.170851] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.170851] [<c11d1502>] ? isa_bus_probe+0x12/0x20 [ 6.170851] [<c11c9b95>] ? driver_probe_device+0x55/0x1c0 [ 6.170851] [<c13ae04f>] ? _raw_spin_unlock+0xf/0x30 [ 6.170851] [<c13705ea>] ? klist_next+0x6a/0xe0 [ 6.170851] [<c11d15c1>] ? isa_bus_match+0x21/0x40 [ 6.170851] [<c11c8a24>] ? bus_for_each_drv+0x34/0x70 [ 6.170851] [<c11c9e4b>] ? device_attach+0x7b/0x90 [ 6.170851] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.170851] [<c11c8bff>] ? bus_probe_device+0x5f/0x80 [ 6.170851] [<c11c7493>] ? device_add+0x573/0x620 [ 6.170851] [<c1042820>] ? complete_all+0x40/0x60 [ 6.170851] [<c13ae08a>] ? _raw_spin_unlock_irqrestore+0x1a/0x30 [ 6.170851] [<c11d16c6>] ? isa_register_driver+0xb6/0x150 [ 6.170851] [<c15c9002>] ? alsa_card_gusmax_init+0xf/0xf [ 6.170851] [<c15a99bc>] ? do_one_initcall+0x7f/0x12b [ 6.170851] [<c15a9b7a>] ? kernel_init+0x112/0x1a9 [ 6.170851] [<c15a9423>] ? do_early_param+0x77/0x77 [ 6.170851] [<c15a9a68>] ? do_one_initcall+0x12b/0x12b [ 6.170851] [<c13aefbe>] ? kernel_thread_helper+0x6/0xd [ 6.190170] es1688: can't grab IRQ 5 [ 6.190613] genirq: Flags mismatch irq 5. 00000000 (ES1688) vs. 00000000 (ES1688) [ 6.191566] Pid: 1, comm: swapper Not tainted 3.5.0-00004-gceee0e9 #14 [ 6.192394] Call Trace: [ 6.192685] [<c1062237>] ? __setup_irq+0x3c7/0x420 [ 6.193342] [<c1062486>] ? request_threaded_irq+0x76/0x140 [ 6.194081] [<c1290220>] ? snd_es1688_ioctl+0x10/0x10 [ 6.194607] [<c10624c2>] ? request_threaded_irq+0xb2/0x140 [ 6.194607] [<c1291196>] ? snd_es1688_create+0x96/0x330 [ 6.194607] [<c138365d>] ? snd_gusextreme_probe+0x18d/0x5a2 [ 6.194607] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.194607] [<c10db22f>] ? sysfs_create_link+0xf/0x20 [ 6.194607] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.194607] [<c11d1502>] ? isa_bus_probe+0x12/0x20 [ 6.194607] [<c11c9b95>] ? driver_probe_device+0x55/0x1c0 [ 6.194607] [<c13ae04f>] ? _raw_spin_unlock+0xf/0x30 [ 6.194607] [<c13705ea>] ? klist_next+0x6a/0xe0 [ 6.194607] [<c11d15c1>] ? isa_bus_match+0x21/0x40 [ 6.194607] [<c11c8a24>] ? bus_for_each_drv+0x34/0x70 [ 6.194607] [<c11c9e4b>] ? device_attach+0x7b/0x90 [ 6.194607] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.194607] [<c11c8bff>] ? bus_probe_device+0x5f/0x80 [ 6.194607] [<c11c7493>] ? device_add+0x573/0x620 [ 6.194607] [<c1042820>] ? complete_all+0x40/0x60 [ 6.194607] [<c13ae08a>] ? _raw_spin_unlock_irqrestore+0x1a/0x30 [ 6.194607] [<c11d16c6>] ? isa_register_driver+0xb6/0x150 [ 6.194607] [<c15c9002>] ? alsa_card_gusmax_init+0xf/0xf [ 6.194607] [<c15a99bc>] ? do_one_initcall+0x7f/0x12b [ 6.194607] [<c15a9b7a>] ? kernel_init+0x112/0x1a9 [ 6.194607] [<c15a9423>] ? do_early_param+0x77/0x77 [ 6.194607] [<c15a9a68>] ? do_one_initcall+0x12b/0x12b [ 6.194607] [<c13aefbe>] ? kernel_thread_helper+0x6/0xd [ 6.210779] es1688: can't grab IRQ 5 [ 6.211305] gusextreme: probe of gusextreme.0 failed with error -16Signed-off-by Daniel Mack <[email protected]>Signed-off-by Fengguang Wu <[email protected]>--- include/sound/es1688.h | 1 sound/isa/es1688/es1688_lib.c | 34 +++++++++++++++++++++----------- 2 files changed, 24 insertions(+), 11 deletions(-)sound/isa/es1688/es1688_lib.c +23
-11@@ -612,10 +612,10 @@ static int snd_es1688_capture_close(strustatic int snd_es1688_free (struct snd_es1688 *chip) { -if (chip->res_port) { +if (chip->hardware !=ES1688_HW_UNDEF )snd_es1688_init (chip,0 ); +if (chip->res_port)release_and_free_resource (chip->res_port); - }if (chip->irq >=0 )free_irq (chip->irq, (void *) chip);if (chip->dma8 >=0 ) {@@ -657,19 +657,27 @@ int snd_es1688_create(struct snd_card *creturn -ENOMEM ; chip->irq =-1 ; chip->dma8 =-1 ; + chip->hardware =ES1688_HW_UNDEF ; -if ((chip->res_port =request_region (port +4 ,12 ,"ES1688" )) ==NULL ) { + chip->res_port =request_region (port +4 ,12 ,"ES1688" ); +if (chip->res_port ==NULL ) {snd_printk (KERN_ERR "es1688: can't grab port 0x%lx\n" , port +4 ); -return -EBUSY ; + err = -EBUSY ; + goto exit; } -if (request_irq (irq, snd_es1688_interrupt,0 ,"ES1688" , (void *) chip)) { + + err =request_irq (irq, snd_es1688_interrupt,0 ,"ES1688" , (void *) chip); +if (err <0 ) {snd_printk (KERN_ERR "es1688: can't grab IRQ %d\n" , irq); -return -EBUSY ; + goto exit; } + chip->irq = irq; -if (request_dma (dma8,"ES1688" )) { + err =request_dma (dma8,"ES1688" ); + +if (err <0 ) {snd_printk (KERN_ERR "es1688: can't grab DMA8 %d\n" , dma8); -return -EBUSY ; + goto exit; } chip->dma8 = dma8;@@ -685,14 +693,18 @@ int snd_es1688_create(struct snd_card *c err =snd_es1688_probe (chip);if (err <0 ) -return err; + goto exit; err =snd_es1688_init (chip,1 );if (err <0 ) -return err; + goto exit;/* Register device */ -return snd_device_new (card,SNDRV_DEV_LOWLEVEL , chip, &ops); + err =snd_device_new (card,SNDRV_DEV_LOWLEVEL , chip, &ops); +exit: +if (err) +snd_es1688_free (chip); +return err; }static struct snd_pcm_ops snd_es1688_playback_ops = {include/sound/es1688.h +1
-0@@ -29,6 +29,7 @@#define ES1688_HW_AUTO 0x0000#define ES1688_HW_688 0x0001#define ES1688_HW_1688 0x0002 +#define ES1688_HW_UNDEF 0x0003struct snd_es1688 {unsigned long port;/* port of ESS chip */
Re: [PATCH] es1688 - freeup resources on init failure
At Sun, 29 Jul 2012 16:23:08 +0200,
Quoted 31 lines · Daniel Mack
Quoted 29 lines · Fengguang Wu
Quoted 20 lines
Quoted 6 lines
(quoted diff) +1
-1err = snd_es1688_init(chip, 1); if (err < 0) - return err; + goto exit_release_dma; /* Register device */Review
Quoted 10 lines
(quoted diff) +9
-0return snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops); + +exit_release_dma: + free_dma(chip->dma8); +exit_release_irq: + free_irq(chip->irq, chip); +exit_release_region: + release_and_free_resource(chip->res_port); +exit: + return err;You can simply call
snd_es1688_free(chip)instead of a bunch of labels. That is, all goto's can be "goto exit", andQuoted 3 lines
exit:
snd_es1688_free(chip); return err;
snd_es1688_free()will callsnd_es1688_init()which in turn use the uninitialized spin locks and other data. So I end up with the below patch.snd_device_new()could also return errors and will be handled in the same way.
Quoted 7 lines
Quoted 5 lines
I don't have the hardware, however tests show it at least fixed the boot time irq mismatch warnings.
Daniel, thanks for your initial implementation and please kindly confirm the below 3rd version :)
Looks good to me, but I don't have the hardware either :)
I see no obvious problem there so I took the patch now.
Thanks!
Takashi
Quoted 166 lines
Daniel
Quoted 160 lines
---
es1688 - freeup resources on init failureThis will fix the following oops:
[ 6.169981] genirq: Flags mismatch irq 5. 00000000 (ES1688) vs. 00000000 (ES1688) [ 6.170851] Pid: 1, comm: swapper Not tainted 3.5.0-00004-gceee0e9 #14 [ 6.170851] Call Trace: [ 6.170851] [<c1062237>] ? __setup_irq+0x3c7/0x420 [ 6.170851] [<c1062486>] ? request_threaded_irq+0x76/0x140 [ 6.170851] [<c1290220>] ? snd_es1688_ioctl+0x10/0x10 [ 6.170851] [<c10624c2>] ? request_threaded_irq+0xb2/0x140 [ 6.170851] [<c1291196>] ? snd_es1688_create+0x96/0x330 [ 6.170851] [<c138365d>] ? snd_gusextreme_probe+0x18d/0x5a2 [ 6.170851] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.170851] [<c10db22f>] ? sysfs_create_link+0xf/0x20 [ 6.170851] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.170851] [<c11d1502>] ? isa_bus_probe+0x12/0x20 [ 6.170851] [<c11c9b95>] ? driver_probe_device+0x55/0x1c0 [ 6.170851] [<c13ae04f>] ? _raw_spin_unlock+0xf/0x30 [ 6.170851] [<c13705ea>] ? klist_next+0x6a/0xe0 [ 6.170851] [<c11d15c1>] ? isa_bus_match+0x21/0x40 [ 6.170851] [<c11c8a24>] ? bus_for_each_drv+0x34/0x70 [ 6.170851] [<c11c9e4b>] ? device_attach+0x7b/0x90 [ 6.170851] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.170851] [<c11c8bff>] ? bus_probe_device+0x5f/0x80 [ 6.170851] [<c11c7493>] ? device_add+0x573/0x620 [ 6.170851] [<c1042820>] ? complete_all+0x40/0x60 [ 6.170851] [<c13ae08a>] ? _raw_spin_unlock_irqrestore+0x1a/0x30 [ 6.170851] [<c11d16c6>] ? isa_register_driver+0xb6/0x150 [ 6.170851] [<c15c9002>] ? alsa_card_gusmax_init+0xf/0xf [ 6.170851] [<c15a99bc>] ? do_one_initcall+0x7f/0x12b [ 6.170851] [<c15a9b7a>] ? kernel_init+0x112/0x1a9 [ 6.170851] [<c15a9423>] ? do_early_param+0x77/0x77 [ 6.170851] [<c15a9a68>] ? do_one_initcall+0x12b/0x12b [ 6.170851] [<c13aefbe>] ? kernel_thread_helper+0x6/0xd [ 6.190170] es1688: can't grab IRQ 5 [ 6.190613] genirq: Flags mismatch irq 5. 00000000 (ES1688) vs. 00000000 (ES1688) [ 6.191566] Pid: 1, comm: swapper Not tainted 3.5.0-00004-gceee0e9 #14 [ 6.192394] Call Trace: [ 6.192685] [<c1062237>] ? __setup_irq+0x3c7/0x420 [ 6.193342] [<c1062486>] ? request_threaded_irq+0x76/0x140 [ 6.194081] [<c1290220>] ? snd_es1688_ioctl+0x10/0x10 [ 6.194607] [<c10624c2>] ? request_threaded_irq+0xb2/0x140 [ 6.194607] [<c1291196>] ? snd_es1688_create+0x96/0x330 [ 6.194607] [<c138365d>] ? snd_gusextreme_probe+0x18d/0x5a2 [ 6.194607] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.194607] [<c10db22f>] ? sysfs_create_link+0xf/0x20 [ 6.194607] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.194607] [<c11d1502>] ? isa_bus_probe+0x12/0x20 [ 6.194607] [<c11c9b95>] ? driver_probe_device+0x55/0x1c0 [ 6.194607] [<c13ae04f>] ? _raw_spin_unlock+0xf/0x30 [ 6.194607] [<c13705ea>] ? klist_next+0x6a/0xe0 [ 6.194607] [<c11d15c1>] ? isa_bus_match+0x21/0x40 [ 6.194607] [<c11c8a24>] ? bus_for_each_drv+0x34/0x70 [ 6.194607] [<c11c9e4b>] ? device_attach+0x7b/0x90 [ 6.194607] [<c11c9d80>] ? __driver_attach+0x80/0x80 [ 6.194607] [<c11c8bff>] ? bus_probe_device+0x5f/0x80 [ 6.194607] [<c11c7493>] ? device_add+0x573/0x620 [ 6.194607] [<c1042820>] ? complete_all+0x40/0x60 [ 6.194607] [<c13ae08a>] ? _raw_spin_unlock_irqrestore+0x1a/0x30 [ 6.194607] [<c11d16c6>] ? isa_register_driver+0xb6/0x150 [ 6.194607] [<c15c9002>] ? alsa_card_gusmax_init+0xf/0xf [ 6.194607] [<c15a99bc>] ? do_one_initcall+0x7f/0x12b [ 6.194607] [<c15a9b7a>] ? kernel_init+0x112/0x1a9 [ 6.194607] [<c15a9423>] ? do_early_param+0x77/0x77 [ 6.194607] [<c15a9a68>] ? do_one_initcall+0x12b/0x12b [ 6.194607] [<c13aefbe>] ? kernel_thread_helper+0x6/0xd [ 6.210779] es1688: can't grab IRQ 5 [ 6.211305] gusextreme: probe of gusextreme.0 failed with error -16Signed-off-by Daniel Mack <[email protected]>Signed-off-by Fengguang Wu <[email protected]>--- include/sound/es1688.h | 1 sound/isa/es1688/es1688_lib.c | 34 +++++++++++++++++++++----------- 2 files changed, 24 insertions(+), 11 deletions(-)sound/isa/es1688/es1688_lib.c +23
-11@@ -612,10 +612,10 @@ static int snd_es1688_capture_close(strustatic int snd_es1688_free (struct snd_es1688 *chip) { -if (chip->res_port) { +if (chip->hardware !=ES1688_HW_UNDEF )snd_es1688_init (chip,0 ); +if (chip->res_port)release_and_free_resource (chip->res_port); - }if (chip->irq >=0 )free_irq (chip->irq, (void *) chip);if (chip->dma8 >=0 ) {@@ -657,19 +657,27 @@ int snd_es1688_create(struct snd_card *creturn -ENOMEM ; chip->irq =-1 ; chip->dma8 =-1 ; + chip->hardware =ES1688_HW_UNDEF ; -if ((chip->res_port =request_region (port +4 ,12 ,"ES1688" )) ==NULL ) { + chip->res_port =request_region (port +4 ,12 ,"ES1688" ); +if (chip->res_port ==NULL ) {snd_printk (KERN_ERR "es1688: can't grab port 0x%lx\n" , port +4 ); -return -EBUSY ; + err = -EBUSY ; + goto exit; } -if (request_irq (irq, snd_es1688_interrupt,0 ,"ES1688" , (void *) chip)) { + + err =request_irq (irq, snd_es1688_interrupt,0 ,"ES1688" , (void *) chip); +if (err <0 ) {snd_printk (KERN_ERR "es1688: can't grab IRQ %d\n" , irq); -return -EBUSY ; + goto exit; } + chip->irq = irq; -if (request_dma (dma8,"ES1688" )) { + err =request_dma (dma8,"ES1688" ); + +if (err <0 ) {snd_printk (KERN_ERR "es1688: can't grab DMA8 %d\n" , dma8); -return -EBUSY ; + goto exit; } chip->dma8 = dma8;@@ -685,14 +693,18 @@ int snd_es1688_create(struct snd_card *c err =snd_es1688_probe (chip);if (err <0 ) -return err; + goto exit; err =snd_es1688_init (chip,1 );if (err <0 ) -return err; + goto exit;/* Register device */ -return snd_device_new (card,SNDRV_DEV_LOWLEVEL , chip, &ops); + err =snd_device_new (card,SNDRV_DEV_LOWLEVEL , chip, &ops); +exit: +if (err) +snd_es1688_free (chip); +return err; }static struct snd_pcm_ops snd_es1688_playback_ops = {include/sound/es1688.h +1
-0@@ -29,6 +29,7 @@#define ES1688_HW_AUTO 0x0000#define ES1688_HW_688 0x0001#define ES1688_HW_1688 0x0002 +#define ES1688_HW_UNDEF 0x0003struct snd_es1688 {unsigned long port;/* port of ESS chip */