Message ID | 20180201153332.35942-1-christian.koenig@amd.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
FYI, we noticed the following commit (built with gcc-7): commit: 3cd2e64830059791297a2f7817b41557a60f9234 ("drm/ttm: move ttm_lock and ttm_object into vmwgfx") url: https://github.com/0day-ci/linux/commits/Christian-K-nig/drm-ttm-move-ttm_lock-and-ttm_object-into-vmwgfx/20180204-085007 base: git://people.freedesktop.org/~airlied/linux.git drm-next in testcase: boot on test machine: qemu-system-x86_64 -enable-kvm -m 512M caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace): +-----------------------------------------------------------------------------------------------+------------+------------+ | | 24b8ef699e | 3cd2e64830 | +-----------------------------------------------------------------------------------------------+------------+------------+ | boot_successes | 18 | 0 | | boot_failures | 30 | 9 | | INFO:task_blocked_for_more_than#seconds | 16 | | | Kernel_panic-not_syncing:hung_task:blocked_tasks | 16 | | | BUG:workqueue_lockup-pool | 14 | | | BUG:kernel_hang_in_early-boot_stage,last_printk:early_console_in_setup_code | 0 | 7 | | BUG:kernel_reboot-without-warning_in_early-boot_stage,last_printk:early_console_in_setup_code | 0 | 2 | +-----------------------------------------------------------------------------------------------+------------+------------+ early console in setup code BUG: kernel hang in early-boot stage, last printk: early console in setup code Linux version 4.15.0-rc8-01510-g3cd2e64 #1 Command line: ip=::::vm-lkp-nex04-yocto-x86_64-29::dhcp root=/dev/ram0 user=lkp job=/lkp/scheduled/vm-lkp-nex04-yocto-x86_64-29/boot-1-yocto-minimal-x86_64-2016-04-22.cgz-3cd2e64830059791297a2f7817b41557a60f9234-20180217-52809-f8gx9u-0.yaml ARCH=x86_64 kconfig=x86_64-randconfig-ws0-02131753 branch=linux-devel/devel-hourly-2018021313 commit=3cd2e64830059791297a2f7817b41557a60f9234 BOOT_IMAGE=/pkg/linux/x86_64-randconfig-ws0-02131753/gcc-7/3cd2e64830059791297a2f7817b41557a60f9234/vmlinuz-4.15.0-rc8-01510-g3cd2e64 max_uptime=600 RESULT_ROOT=/result/boot/1/vm-lkp-nex04-yocto-x86_64/yocto-minimal-x86_64-2016-04-22.cgz/x86_64-randconfig-ws0-02131753/gcc-7/3cd2e64830059791297a2f7817b41557a60f9234/0 LKP_SERVER=inn debug apic=debug sysrq_always_enabled rcupdate.rcu_cpu_stall_timeout=100 net.ifnames=0 printk.devkmsg=on panic=-1 softlockup_panic=1 nmi_watchdog=panic oops=panic load_ramdisk=2 prompt_ramdisk=0 drbd.minor_count=8 systemd.log_level=err ignore_loglevel console=tty0 earlyprintk=ttyS0,115200 console=ttyS0,115200 vga=normal rw drbd.minor_count=8 rcuperf.shutdown=0 Elapsed time: 320 To reproduce: git clone https://github.com/intel/lkp-tests.git cd lkp-tests bin/lkp qemu -k <bzImage> job-script # job-script is attached in this email Thanks, lkp # # Automatically generated file; DO NOT EDIT. # Linux/x86_64 4.15.0-rc8 Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf64-x86-64" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_MMU=y CONFIG_ARCH_MMAP_RND_BITS_MIN=28 CONFIG_ARCH_MMAP_RND_BITS_MAX=32 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_HWEIGHT=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=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_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ZONE_DMA32=y CONFIG_AUDIT_ARCH=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_KASAN_SHADOW_OFFSET=0xdffffc0000000000 CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_CONSTRUCTORS=y CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=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 is not set # CONFIG_KERNEL_BZIP2 is not set # CONFIG_KERNEL_LZMA is not set CONFIG_KERNEL_XZ=y # CONFIG_KERNEL_LZO is not set # CONFIG_KERNEL_LZ4 is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y # CONFIG_POSIX_MQUEUE is not set # CONFIG_CROSS_MEMORY_ATTACH is not set # CONFIG_USELIB is not set # CONFIG_AUDIT is not set CONFIG_HAVE_ARCH_AUDITSYSCALL=y # # IRQ subsystem # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_SIM=y CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y CONFIG_GENERIC_IRQ_RESERVATION_MODE=y # CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_DEBUGFS=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y CONFIG_GENERIC_CMOS_UPDATE=y # # Timers subsystem # CONFIG_TICK_ONESHOT=y CONFIG_HZ_PERIODIC=y # CONFIG_NO_HZ_IDLE is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y # # CPU/Task time and stats accounting # CONFIG_TICK_CPU_ACCOUNTING=y # CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set # CONFIG_IRQ_TIME_ACCOUNTING is not set CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y CONFIG_TASKSTATS=y CONFIG_TASK_DELAY_ACCT=y # CONFIG_TASK_XACCT is not set # # RCU Subsystem # CONFIG_TINY_RCU=y CONFIG_RCU_EXPERT=y CONFIG_SRCU=y CONFIG_TINY_SRCU=y CONFIG_TASKS_RCU=y # CONFIG_RCU_STALL_COMMON is not set # CONFIG_RCU_NEED_SEGCBLIST is not set CONFIG_BUILD_BIN2C=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=20 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_CGROUPS=y # CONFIG_MEMCG is not set CONFIG_CGROUP_SCHED=y # CONFIG_FAIR_GROUP_SCHED is not set CONFIG_RT_GROUP_SCHED=y CONFIG_CGROUP_PIDS=y # CONFIG_CGROUP_RDMA is not set # CONFIG_CGROUP_FREEZER is not set # CONFIG_CGROUP_HUGETLB is not set CONFIG_CGROUP_DEVICE=y # CONFIG_CGROUP_CPUACCT is not set # CONFIG_CGROUP_PERF is not set CONFIG_CGROUP_BPF=y CONFIG_CGROUP_DEBUG=y CONFIG_SOCK_CGROUP_DATA=y CONFIG_NAMESPACES=y # CONFIG_UTS_NS is not set CONFIG_IPC_NS=y # CONFIG_USER_NS is not set # CONFIG_PID_NS is not set # CONFIG_NET_NS is not set # CONFIG_SCHED_AUTOGROUP is not set # CONFIG_SYSFS_DEPRECATED is not set CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y CONFIG_RD_LZ4=y CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y CONFIG_SYSCTL_EXCEPTION_TRACE=y CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BPF=y CONFIG_EXPERT=y CONFIG_MULTIUSER=y # CONFIG_SGETMASK_SYSCALL is not set CONFIG_SYSFS_SYSCALL=y # CONFIG_SYSCTL_SYSCALL is not set CONFIG_FHANDLE=y # CONFIG_POSIX_TIMERS is not set CONFIG_PRINTK=y CONFIG_PRINTK_NMI=y CONFIG_BUG=y CONFIG_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_FUTEX_PI=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y # CONFIG_EVENTFD is not set CONFIG_SHMEM=y # CONFIG_AIO is not set CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y # CONFIG_CHECKPOINT_RESTORE is not set CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y # CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_BPF_SYSCALL=y # CONFIG_USERFAULTFD is not set CONFIG_EMBEDDED=y CONFIG_HAVE_PERF_EVENTS=y CONFIG_PERF_USE_VMALLOC=y CONFIG_PC104=y # # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y CONFIG_DEBUG_PERF_USE_VMALLOC=y # CONFIG_VM_EVENT_COUNTERS is not set CONFIG_SLUB_DEBUG=y CONFIG_COMPAT_BRK=y # CONFIG_SLAB is not set CONFIG_SLUB=y # CONFIG_SLOB is not set # CONFIG_SLAB_MERGE_DEFAULT is not set # CONFIG_SLAB_FREELIST_RANDOM is not set # CONFIG_SLAB_FREELIST_HARDENED is not set # CONFIG_SYSTEM_DATA_VERIFICATION is not set CONFIG_PROFILING=y CONFIG_TRACEPOINTS=y CONFIG_CRASH_CORE=y CONFIG_KEXEC_CORE=y # CONFIG_OPROFILE is not set CONFIG_HAVE_OPROFILE=y CONFIG_OPROFILE_NMI_TIMER=y # CONFIG_JUMP_LABEL is not set CONFIG_UPROBES=y # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_KPROBES_ON_FTRACE=y CONFIG_HAVE_NMI=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_CLK=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y CONFIG_HAVE_PERF_REGS=y CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_HAVE_RCU_TABLE_FREE=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y CONFIG_HAVE_CMPXCHG_LOCAL=y CONFIG_HAVE_CMPXCHG_DOUBLE=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y CONFIG_HAVE_GCC_PLUGINS=y CONFIG_GCC_PLUGINS=y # CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set CONFIG_GCC_PLUGIN_SANCOV=y # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set # CONFIG_GCC_PLUGIN_STRUCTLEAK is not set # CONFIG_GCC_PLUGIN_RANDSTRUCT is not set 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_THIN_ARCHIVES=y CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y CONFIG_HAVE_ARCH_HUGE_VMAP=y CONFIG_HAVE_ARCH_SOFT_DIRTY=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_MODULES_USE_ELF_RELA=y CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y CONFIG_HAVE_ARCH_MMAP_RND_BITS=y CONFIG_HAVE_EXIT_THREAD=y CONFIG_ARCH_MMAP_RND_BITS=28 CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y CONFIG_HAVE_COPY_THREAD_TLS=y CONFIG_HAVE_STACK_VALIDATION=y CONFIG_HAVE_RELIABLE_STACKTRACE=y # CONFIG_HAVE_ARCH_HASH is not set # CONFIG_ISA_BUS_API is not set # CONFIG_CPU_NO_EFFICIENT_FFS is not set CONFIG_HAVE_ARCH_VMAP_STACK=y # CONFIG_ARCH_OPTIONAL_KERNEL_RWX is not set # CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y CONFIG_ARCH_HAS_REFCOUNT=y # CONFIG_REFCOUNT_FULL is not set # # GCOV-based kernel profiling # CONFIG_GCOV_KERNEL=y CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y # CONFIG_GCOV_PROFILE_ALL is not set # CONFIG_GCOV_FORMAT_AUTODETECT is not set # CONFIG_GCOV_FORMAT_3_4 is not set CONFIG_GCOV_FORMAT_4_7=y # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 # CONFIG_MODULES is not set CONFIG_MODULES_TREE_LOOKUP=y # CONFIG_BLOCK is not set CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y CONFIG_FREEZER=y # # Processor type and features # # CONFIG_ZONE_DMA is not set # CONFIG_SMP is not set CONFIG_X86_FEATURE_NAMES=y # CONFIG_X86_FAST_FEATURE_TESTS is not set # CONFIG_X86_X2APIC is not set # CONFIG_X86_MPPARSE is not set # CONFIG_GOLDFISH is not set # CONFIG_RETPOLINE is not set CONFIG_X86_EXTENDED_PLATFORM=y # CONFIG_X86_GOLDFISH is not set # CONFIG_X86_INTEL_MID is not set # CONFIG_X86_INTEL_LPSS is not set # CONFIG_X86_AMD_PLATFORM_DEVICE is not set # CONFIG_IOSF_MBI is not set CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y # CONFIG_SCHED_OMIT_FRAME_POINTER is not set CONFIG_HYPERVISOR_GUEST=y CONFIG_PARAVIRT=y # CONFIG_PARAVIRT_DEBUG is not set # CONFIG_XEN is not set CONFIG_KVM_GUEST=y # CONFIG_KVM_DEBUG_FS is not set # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set CONFIG_PARAVIRT_CLOCK=y CONFIG_NO_BOOTMEM=y CONFIG_MK8=y # CONFIG_MPSC is not set # CONFIG_MCORE2 is not set # CONFIG_MATOM is not set # CONFIG_GENERIC_CPU is not set CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_TSC=y CONFIG_X86_CMPXCHG64=y CONFIG_X86_CMOV=y CONFIG_X86_MINIMUM_CPU_FAMILY=64 CONFIG_X86_DEBUGCTLMSR=y CONFIG_PROCESSOR_SELECT=y # CONFIG_CPU_SUP_INTEL is not set # CONFIG_CPU_SUP_AMD is not set CONFIG_CPU_SUP_CENTAUR=y CONFIG_HPET_TIMER=y # CONFIG_DMI is not set # CONFIG_CALGARY_IOMMU is not set CONFIG_SWIOTLB=y CONFIG_IOMMU_HELPER=y CONFIG_NR_CPUS=1 # CONFIG_PREEMPT_NONE is not set CONFIG_PREEMPT_VOLUNTARY=y # CONFIG_PREEMPT is not set CONFIG_PREEMPT_COUNT=y CONFIG_UP_LATE_INIT=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y CONFIG_X86_MCE=y # CONFIG_X86_MCELOG_LEGACY is not set CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_THRESHOLD=y # CONFIG_X86_MCE_INJECT is not set CONFIG_X86_THERMAL_VECTOR=y # # Performance monitoring # # CONFIG_VM86 is not set CONFIG_X86_VSYSCALL_EMULATION=y # CONFIG_I8K is not set CONFIG_X86_MSR=y CONFIG_X86_CPUID=y # CONFIG_X86_5LEVEL is not set CONFIG_ARCH_PHYS_ADDR_T_64BIT=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_ARCH_HAS_MEM_ENCRYPT=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 CONFIG_SELECT_MEMORY_MODEL=y CONFIG_SPARSEMEM_MANUAL=y CONFIG_SPARSEMEM=y CONFIG_HAVE_MEMORY_PRESENT=y CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y CONFIG_SPARSEMEM_VMEMMAP=y CONFIG_HAVE_MEMBLOCK=y CONFIG_HAVE_MEMBLOCK_NODE_MAP=y CONFIG_HAVE_GENERIC_GUP=y CONFIG_ARCH_DISCARD_MEMBLOCK=y # CONFIG_HAVE_BOOTMEM_INFO_NODE is not set # CONFIG_MEMORY_HOTPLUG is not set CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y CONFIG_MEMORY_BALLOON=y CONFIG_BALLOON_COMPACTION=y CONFIG_COMPACTION=y CONFIG_MIGRATION=y CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y CONFIG_ARCH_ENABLE_THP_MIGRATION=y CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_VIRT_TO_BUS=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y # CONFIG_MEMORY_FAILURE is not set CONFIG_TRANSPARENT_HUGEPAGE=y # CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y CONFIG_ARCH_WANTS_THP_SWAP=y CONFIG_THP_SWAP=y CONFIG_TRANSPARENT_HUGE_PAGECACHE=y CONFIG_NEED_PER_CPU_KM=y # CONFIG_CLEANCACHE is not set # CONFIG_CMA is not set CONFIG_ZPOOL=y # CONFIG_ZBUD is not set # CONFIG_Z3FOLD is not set # CONFIG_ZSMALLOC is not set CONFIG_GENERIC_EARLY_IOREMAP=y CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_ZONE_DEVICE=y CONFIG_FRAME_VECTOR=y CONFIG_PERCPU_STATS=y # CONFIG_GUP_BENCHMARK is not set CONFIG_X86_CHECK_BIOS_CORRUPTION=y CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y CONFIG_X86_RESERVE_LOW=64 CONFIG_MTRR=y # CONFIG_MTRR_SANITIZER is not set CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y # CONFIG_ARCH_RANDOM is not set # CONFIG_X86_SMAP is not set # CONFIG_EFI is not set # CONFIG_SECCOMP is not set # CONFIG_HZ_100 is not set CONFIG_HZ_250=y # CONFIG_HZ_300 is not set # CONFIG_HZ_1000 is not set CONFIG_HZ=250 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y # CONFIG_KEXEC_FILE is not set CONFIG_CRASH_DUMP=y CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y CONFIG_RANDOMIZE_BASE=y CONFIG_X86_NEED_RELOCS=y CONFIG_PHYSICAL_ALIGN=0x200000 # CONFIG_RANDOMIZE_MEMORY is not set # CONFIG_LEGACY_VSYSCALL_NATIVE is not set CONFIG_LEGACY_VSYSCALL_EMULATE=y # CONFIG_LEGACY_VSYSCALL_NONE is not set # CONFIG_CMDLINE_BOOL is not set # CONFIG_MODIFY_LDT_SYSCALL is not set CONFIG_HAVE_LIVEPATCH=y CONFIG_ARCH_HAS_ADD_PAGES=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # # Power management and ACPI options # CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_PM_SLEEP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y # CONFIG_ACPI_DEBUGGER is not set CONFIG_ACPI_LPIT=y CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS_POWER is not set CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y # CONFIG_ACPI_EC_DEBUGFS is not set CONFIG_ACPI_AC=y CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y # CONFIG_ACPI_VIDEO is not set CONFIG_ACPI_FAN=y # CONFIG_ACPI_DOCK is not set CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y CONFIG_ACPI_PROCESSOR=y # CONFIG_ACPI_IPMI is not set # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set CONFIG_ACPI_THERMAL=y # CONFIG_ACPI_CUSTOM_DSDT is not set CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y CONFIG_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_PCI_SLOT is not set CONFIG_X86_PM_TIMER=y # CONFIG_ACPI_CONTAINER is not set CONFIG_ACPI_HOTPLUG_IOAPIC=y # CONFIG_ACPI_SBS is not set # CONFIG_ACPI_HED is not set # CONFIG_ACPI_CUSTOM_METHOD is not set # CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set CONFIG_HAVE_ACPI_APEI=y CONFIG_HAVE_ACPI_APEI_NMI=y # CONFIG_ACPI_APEI is not set # CONFIG_DPTF_POWER is not set # CONFIG_ACPI_EXTLOG is not set # CONFIG_PMIC_OPREGION is not set # CONFIG_ACPI_CONFIGFS is not set CONFIG_SFI=y # # CPU Frequency scaling # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_ATTR_SET=y CONFIG_CPU_FREQ_GOV_COMMON=y CONFIG_CPU_FREQ_STAT=y # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE=y CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # # CPU frequency scaling drivers # # CONFIG_CPUFREQ_DT is not set # CONFIG_X86_INTEL_PSTATE is not set # CONFIG_X86_PCC_CPUFREQ is not set # CONFIG_X86_ACPI_CPUFREQ is not set # CONFIG_X86_SPEEDSTEP_CENTRINO is not set CONFIG_X86_P4_CLOCKMOD=y # # shared options # CONFIG_X86_SPEEDSTEP_LIB=y # # CPU Idle # CONFIG_CPU_IDLE=y # CONFIG_CPU_IDLE_GOV_LADDER is not set CONFIG_CPU_IDLE_GOV_MENU=y # CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set # # Bus options (PCI etc.) # CONFIG_PCI=y CONFIG_PCI_DIRECT=y # CONFIG_PCI_MMCONFIG is not set CONFIG_PCI_DOMAINS=y # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_PCIEPORTBUS is not set CONFIG_PCI_BUS_ADDR_T_64BIT=y # CONFIG_PCI_MSI is not set CONFIG_PCI_QUIRKS=y # CONFIG_PCI_DEBUG is not set # CONFIG_PCI_STUB is not set CONFIG_PCI_LOCKLESS_CONFIG=y # CONFIG_PCI_IOV is not set # CONFIG_PCI_PRI is not set # CONFIG_PCI_PASID is not set CONFIG_PCI_LABEL=y # CONFIG_HOTPLUG_PCI is not set # # DesignWare PCI Core Support # # # PCI host controller drivers # # # PCI Endpoint # # CONFIG_PCI_ENDPOINT is not set # # PCI switch controller drivers # # CONFIG_PCI_SW_SWITCHTEC is not set # CONFIG_ISA_BUS is not set # CONFIG_ISA_DMA_API is not set CONFIG_PCCARD=y CONFIG_PCMCIA=y # CONFIG_PCMCIA_LOAD_CIS is not set CONFIG_CARDBUS=y # # PC-card bridges # # CONFIG_YENTA is not set # CONFIG_PD6729 is not set # CONFIG_I82092 is not set # CONFIG_RAPIDIO is not set CONFIG_X86_SYSFB=y # # Executable file formats / Emulations # CONFIG_BINFMT_ELF=y CONFIG_ELFCORE=y CONFIG_BINFMT_SCRIPT=y # CONFIG_HAVE_AOUT is not set CONFIG_BINFMT_MISC=y # CONFIG_COREDUMP is not set # CONFIG_IA32_EMULATION is not set CONFIG_X86_X32=y CONFIG_COMPAT=y CONFIG_COMPAT_FOR_U64_ALIGNMENT=y CONFIG_SYSVIPC_COMPAT=y CONFIG_X86_DEV_DMA_OPS=y CONFIG_NET=y CONFIG_COMPAT_NETLINK_MESSAGES=y # # Networking options # CONFIG_PACKET=y CONFIG_PACKET_DIAG=y CONFIG_UNIX=y # CONFIG_UNIX_DIAG is not set CONFIG_TLS=y CONFIG_XFRM=y CONFIG_XFRM_OFFLOAD=y CONFIG_XFRM_ALGO=y CONFIG_XFRM_USER=y # CONFIG_XFRM_SUB_POLICY is not set CONFIG_XFRM_MIGRATE=y # CONFIG_XFRM_STATISTICS is not set CONFIG_XFRM_IPCOMP=y # CONFIG_NET_KEY is not set CONFIG_SMC=y # CONFIG_SMC_DIAG is not set CONFIG_INET=y # CONFIG_IP_MULTICAST is not set # CONFIG_IP_ADVANCED_ROUTER is not set CONFIG_IP_ROUTE_CLASSID=y CONFIG_IP_PNP=y CONFIG_IP_PNP_DHCP=y # CONFIG_IP_PNP_BOOTP is not set # CONFIG_IP_PNP_RARP is not set CONFIG_NET_IPIP=y CONFIG_NET_IPGRE_DEMUX=y CONFIG_NET_IP_TUNNEL=y # CONFIG_NET_IPGRE is not set # CONFIG_SYN_COOKIES is not set # CONFIG_NET_IPVTI is not set CONFIG_NET_UDP_TUNNEL=y CONFIG_NET_FOU=y # CONFIG_NET_FOU_IP_TUNNELS is not set # CONFIG_INET_AH is not set CONFIG_INET_ESP=y CONFIG_INET_ESP_OFFLOAD=y CONFIG_INET_IPCOMP=y CONFIG_INET_XFRM_TUNNEL=y CONFIG_INET_TUNNEL=y # CONFIG_INET_XFRM_MODE_TRANSPORT is not set CONFIG_INET_XFRM_MODE_TUNNEL=y CONFIG_INET_XFRM_MODE_BEET=y # CONFIG_INET_DIAG is not set CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=y # CONFIG_TCP_CONG_CUBIC is not set # CONFIG_TCP_CONG_WESTWOOD is not set CONFIG_TCP_CONG_HTCP=y CONFIG_TCP_CONG_HSTCP=y # CONFIG_TCP_CONG_HYBLA is not set CONFIG_TCP_CONG_VEGAS=y CONFIG_TCP_CONG_NV=y CONFIG_TCP_CONG_SCALABLE=y CONFIG_TCP_CONG_LP=y # CONFIG_TCP_CONG_VENO is not set CONFIG_TCP_CONG_YEAH=y CONFIG_TCP_CONG_ILLINOIS=y CONFIG_TCP_CONG_DCTCP=y # CONFIG_TCP_CONG_CDG is not set CONFIG_TCP_CONG_BBR=y CONFIG_DEFAULT_BIC=y # CONFIG_DEFAULT_HTCP is not set # CONFIG_DEFAULT_VEGAS is not set # CONFIG_DEFAULT_DCTCP is not set # CONFIG_DEFAULT_BBR is not set # CONFIG_DEFAULT_RENO is not set CONFIG_DEFAULT_TCP_CONG="bic" # 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=y CONFIG_INET6_ESP=y CONFIG_INET6_ESP_OFFLOAD=y # CONFIG_INET6_IPCOMP is not set CONFIG_IPV6_MIP6=y CONFIG_IPV6_ILA=y # CONFIG_INET6_XFRM_TUNNEL is not set CONFIG_INET6_TUNNEL=y CONFIG_INET6_XFRM_MODE_TRANSPORT=y CONFIG_INET6_XFRM_MODE_TUNNEL=y CONFIG_INET6_XFRM_MODE_BEET=y CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=y CONFIG_IPV6_VTI=y CONFIG_IPV6_SIT=y CONFIG_IPV6_SIT_6RD=y CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=y # CONFIG_IPV6_GRE is not set CONFIG_IPV6_FOU=y # CONFIG_IPV6_FOU_TUNNEL is not set # CONFIG_IPV6_MULTIPLE_TABLES is not set CONFIG_IPV6_MROUTE=y CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y CONFIG_IPV6_PIMSM_V2=y # CONFIG_IPV6_SEG6_LWTUNNEL is not set # CONFIG_IPV6_SEG6_HMAC is not set # CONFIG_NETWORK_SECMARK is not set CONFIG_NET_PTP_CLASSIFY=y CONFIG_NETWORK_PHY_TIMESTAMPING=y CONFIG_NETFILTER=y CONFIG_NETFILTER_ADVANCED=y # # Core Netfilter Configuration # # CONFIG_NETFILTER_INGRESS is not set CONFIG_NETFILTER_NETLINK=y CONFIG_NETFILTER_NETLINK_ACCT=y CONFIG_NETFILTER_NETLINK_QUEUE=y CONFIG_NETFILTER_NETLINK_LOG=y CONFIG_NF_CONNTRACK=y CONFIG_NF_LOG_COMMON=y # CONFIG_NF_LOG_NETDEV is not set CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_PROCFS=y # CONFIG_NF_CONNTRACK_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMEOUT is not set CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CONNTRACK_LABELS=y # CONFIG_NF_CT_PROTO_DCCP is not set CONFIG_NF_CT_PROTO_GRE=y CONFIG_NF_CT_PROTO_SCTP=y # CONFIG_NF_CT_PROTO_UDPLITE is not set CONFIG_NF_CONNTRACK_AMANDA=y CONFIG_NF_CONNTRACK_FTP=y # CONFIG_NF_CONNTRACK_H323 is not set 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=y # CONFIG_NETFILTER_NETLINK_GLUE_CT is not set CONFIG_NF_NAT=y CONFIG_NF_NAT_NEEDED=y CONFIG_NF_NAT_PROTO_SCTP=y CONFIG_NF_NAT_AMANDA=y CONFIG_NF_NAT_FTP=y CONFIG_NF_NAT_IRC=y CONFIG_NF_NAT_SIP=y CONFIG_NF_NAT_TFTP=y CONFIG_NF_NAT_REDIRECT=y CONFIG_NF_TABLES=y # CONFIG_NF_TABLES_INET is not set CONFIG_NF_TABLES_NETDEV=y CONFIG_NFT_EXTHDR=y CONFIG_NFT_META=y # CONFIG_NFT_RT is not set CONFIG_NFT_NUMGEN=y # CONFIG_NFT_CT is not set CONFIG_NFT_SET_RBTREE=y # CONFIG_NFT_SET_HASH is not set # CONFIG_NFT_SET_BITMAP is not set CONFIG_NFT_COUNTER=y # CONFIG_NFT_LOG is not set # CONFIG_NFT_LIMIT is not set CONFIG_NFT_MASQ=y # CONFIG_NFT_REDIR is not set CONFIG_NFT_NAT=y CONFIG_NFT_OBJREF=y CONFIG_NFT_QUEUE=y CONFIG_NFT_QUOTA=y CONFIG_NFT_REJECT=y CONFIG_NFT_COMPAT=y # CONFIG_NFT_HASH is not set CONFIG_NF_DUP_NETDEV=y CONFIG_NFT_DUP_NETDEV=y CONFIG_NFT_FWD_NETDEV=y CONFIG_NETFILTER_XTABLES=y # # Xtables combined modules # CONFIG_NETFILTER_XT_MARK=y CONFIG_NETFILTER_XT_CONNMARK=y CONFIG_NETFILTER_XT_SET=y # # Xtables targets # CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y CONFIG_NETFILTER_XT_TARGET_CONNMARK=y # CONFIG_NETFILTER_XT_TARGET_HMARK is not set CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y CONFIG_NETFILTER_XT_TARGET_LED=y CONFIG_NETFILTER_XT_TARGET_LOG=y CONFIG_NETFILTER_XT_TARGET_MARK=y # CONFIG_NETFILTER_XT_NAT is not set # CONFIG_NETFILTER_XT_TARGET_NETMAP is not set CONFIG_NETFILTER_XT_TARGET_NFLOG=y # CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set CONFIG_NETFILTER_XT_TARGET_RATEEST=y CONFIG_NETFILTER_XT_TARGET_REDIRECT=y CONFIG_NETFILTER_XT_TARGET_TEE=y # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set # # Xtables matches # # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set CONFIG_NETFILTER_XT_MATCH_BPF=y CONFIG_NETFILTER_XT_MATCH_CGROUP=y CONFIG_NETFILTER_XT_MATCH_CLUSTER=y CONFIG_NETFILTER_XT_MATCH_COMMENT=y # CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set CONFIG_NETFILTER_XT_MATCH_CONNLABEL=y CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y CONFIG_NETFILTER_XT_MATCH_CONNMARK=y CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y CONFIG_NETFILTER_XT_MATCH_CPU=y CONFIG_NETFILTER_XT_MATCH_DCCP=y CONFIG_NETFILTER_XT_MATCH_DEVGROUP=y # CONFIG_NETFILTER_XT_MATCH_DSCP is not set CONFIG_NETFILTER_XT_MATCH_ECN=y # CONFIG_NETFILTER_XT_MATCH_ESP is not set # CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 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=y CONFIG_NETFILTER_XT_MATCH_LENGTH=y # CONFIG_NETFILTER_XT_MATCH_LIMIT is not set CONFIG_NETFILTER_XT_MATCH_MAC=y CONFIG_NETFILTER_XT_MATCH_MARK=y # CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set CONFIG_NETFILTER_XT_MATCH_NFACCT=y CONFIG_NETFILTER_XT_MATCH_OSF=y CONFIG_NETFILTER_XT_MATCH_OWNER=y CONFIG_NETFILTER_XT_MATCH_POLICY=y # CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set CONFIG_NETFILTER_XT_MATCH_RATEEST=y CONFIG_NETFILTER_XT_MATCH_REALM=y CONFIG_NETFILTER_XT_MATCH_RECENT=y CONFIG_NETFILTER_XT_MATCH_SCTP=y CONFIG_NETFILTER_XT_MATCH_SOCKET=y CONFIG_NETFILTER_XT_MATCH_STATE=y # CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set CONFIG_NETFILTER_XT_MATCH_STRING=y CONFIG_NETFILTER_XT_MATCH_TCPMSS=y CONFIG_NETFILTER_XT_MATCH_TIME=y # CONFIG_NETFILTER_XT_MATCH_U32 is not set CONFIG_IP_SET=y CONFIG_IP_SET_MAX=256 CONFIG_IP_SET_BITMAP_IP=y CONFIG_IP_SET_BITMAP_IPMAC=y CONFIG_IP_SET_BITMAP_PORT=y CONFIG_IP_SET_HASH_IP=y CONFIG_IP_SET_HASH_IPMARK=y # CONFIG_IP_SET_HASH_IPPORT is not set # CONFIG_IP_SET_HASH_IPPORTIP is not set # CONFIG_IP_SET_HASH_IPPORTNET is not set CONFIG_IP_SET_HASH_IPMAC=y # CONFIG_IP_SET_HASH_MAC is not set # CONFIG_IP_SET_HASH_NETPORTNET is not set # CONFIG_IP_SET_HASH_NET is not set CONFIG_IP_SET_HASH_NETNET=y CONFIG_IP_SET_HASH_NETPORT=y CONFIG_IP_SET_HASH_NETIFACE=y # CONFIG_IP_SET_LIST_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_SOCKET_IPV4=y # CONFIG_NF_TABLES_IPV4 is not set CONFIG_NF_TABLES_ARP=y CONFIG_NF_DUP_IPV4=y CONFIG_NF_LOG_ARP=y CONFIG_NF_LOG_IPV4=y # CONFIG_NF_REJECT_IPV4 is not set CONFIG_NF_NAT_IPV4=y # CONFIG_NF_NAT_MASQUERADE_IPV4 is not set CONFIG_NF_NAT_PROTO_GRE=y CONFIG_NF_NAT_PPTP=y # CONFIG_NF_NAT_H323 is not set # CONFIG_IP_NF_IPTABLES is not set CONFIG_IP_NF_ARPTABLES=y # CONFIG_IP_NF_ARPFILTER is not set CONFIG_IP_NF_ARP_MANGLE=y # # IPv6: Netfilter Configuration # # CONFIG_NF_DEFRAG_IPV6 is not set # CONFIG_NF_CONNTRACK_IPV6 is not set CONFIG_NF_SOCKET_IPV6=y CONFIG_NF_TABLES_IPV6=y CONFIG_NFT_CHAIN_ROUTE_IPV6=y CONFIG_NFT_REJECT_IPV6=y CONFIG_NFT_DUP_IPV6=y # CONFIG_NFT_FIB_IPV6 is not set CONFIG_NF_DUP_IPV6=y CONFIG_NF_REJECT_IPV6=y CONFIG_NF_LOG_IPV6=y # CONFIG_IP6_NF_IPTABLES is not set # CONFIG_IP_DCCP is not set CONFIG_IP_SCTP=y # CONFIG_SCTP_DBG_OBJCNT is not set # CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y # CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set # CONFIG_SCTP_COOKIE_HMAC_MD5 is not set CONFIG_SCTP_COOKIE_HMAC_SHA1=y # CONFIG_RDS is not set # CONFIG_TIPC is not set # CONFIG_ATM is not set CONFIG_L2TP=y # CONFIG_L2TP_DEBUGFS is not set # CONFIG_L2TP_V3 is not set # CONFIG_BRIDGE is not set CONFIG_HAVE_NET_DSA=y # CONFIG_NET_DSA is not set # CONFIG_VLAN_8021Q is not set # CONFIG_DECNET is not set CONFIG_LLC=y CONFIG_LLC2=y # CONFIG_IPX is not set CONFIG_ATALK=y # CONFIG_DEV_APPLETALK is not set CONFIG_X25=y CONFIG_LAPB=y CONFIG_PHONET=y # CONFIG_6LOWPAN is not set CONFIG_IEEE802154=y CONFIG_IEEE802154_NL802154_EXPERIMENTAL=y CONFIG_IEEE802154_SOCKET=y CONFIG_MAC802154=y CONFIG_NET_SCHED=y # # Queueing/Scheduling # # CONFIG_NET_SCH_CBQ is not set CONFIG_NET_SCH_HTB=y # 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=y CONFIG_NET_SCH_SFQ=y # CONFIG_NET_SCH_TEQL is not set CONFIG_NET_SCH_TBF=y # CONFIG_NET_SCH_CBS is not set # CONFIG_NET_SCH_GRED is not set CONFIG_NET_SCH_DSMARK=y # CONFIG_NET_SCH_NETEM is not set # CONFIG_NET_SCH_DRR is not set CONFIG_NET_SCH_MQPRIO=y CONFIG_NET_SCH_CHOKE=y CONFIG_NET_SCH_QFQ=y CONFIG_NET_SCH_CODEL=y CONFIG_NET_SCH_FQ_CODEL=y CONFIG_NET_SCH_FQ=y CONFIG_NET_SCH_HHF=y CONFIG_NET_SCH_PIE=y # CONFIG_NET_SCH_PLUG is not set # CONFIG_NET_SCH_DEFAULT is not set # # Classification # CONFIG_NET_CLS=y CONFIG_NET_CLS_BASIC=y CONFIG_NET_CLS_TCINDEX=y CONFIG_NET_CLS_ROUTE4=y # CONFIG_NET_CLS_FW is not set CONFIG_NET_CLS_U32=y CONFIG_CLS_U32_PERF=y # CONFIG_CLS_U32_MARK is not set CONFIG_NET_CLS_RSVP=y CONFIG_NET_CLS_RSVP6=y CONFIG_NET_CLS_FLOW=y # CONFIG_NET_CLS_CGROUP is not set CONFIG_NET_CLS_BPF=y # CONFIG_NET_CLS_FLOWER is not set # CONFIG_NET_CLS_MATCHALL is not set # CONFIG_NET_EMATCH is not set # CONFIG_NET_CLS_ACT is not set # CONFIG_NET_CLS_IND is not set CONFIG_NET_SCH_FIFO=y CONFIG_DCB=y CONFIG_DNS_RESOLVER=y # CONFIG_BATMAN_ADV is not set CONFIG_OPENVSWITCH=y CONFIG_VSOCKETS=y # CONFIG_VSOCKETS_DIAG is not set # CONFIG_VIRTIO_VSOCKETS is not set # CONFIG_NETLINK_DIAG is not set CONFIG_MPLS=y CONFIG_NET_MPLS_GSO=y CONFIG_MPLS_ROUTING=y CONFIG_MPLS_IPTUNNEL=y CONFIG_NET_NSH=y CONFIG_HSR=y # CONFIG_NET_SWITCHDEV is not set CONFIG_NET_L3_MASTER_DEV=y # CONFIG_NET_NCSI is not set # CONFIG_CGROUP_NET_PRIO is not set CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y # CONFIG_BPF_STREAM_PARSER is not set # # Network testing # # CONFIG_NET_PKTGEN is not set # CONFIG_NET_DROP_MONITOR is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set # CONFIG_BT is not set CONFIG_AF_RXRPC=y # CONFIG_AF_RXRPC_IPV6 is not set # CONFIG_AF_RXRPC_INJECT_LOSS is not set # CONFIG_AF_RXRPC_DEBUG is not set CONFIG_RXKAD=y CONFIG_AF_KCM=y CONFIG_STREAM_PARSER=y CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y CONFIG_WEXT_CORE=y CONFIG_WEXT_PROC=y CONFIG_WEXT_SPY=y CONFIG_WEXT_PRIV=y CONFIG_CFG80211=y CONFIG_NL80211_TESTMODE=y CONFIG_CFG80211_DEVELOPER_WARNINGS=y CONFIG_CFG80211_CERTIFICATION_ONUS=y # CONFIG_CFG80211_REQUIRE_SIGNED_REGDB is not set CONFIG_CFG80211_REG_CELLULAR_HINTS=y # CONFIG_CFG80211_REG_RELAX_NO_IR is not set CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set CONFIG_CFG80211_CRDA_SUPPORT=y CONFIG_CFG80211_WEXT=y # CONFIG_LIB80211 is not set # CONFIG_MAC80211 is not set CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 CONFIG_WIMAX=y CONFIG_WIMAX_DEBUG_LEVEL=8 CONFIG_RFKILL=y CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y # CONFIG_RFKILL_GPIO is not set CONFIG_NET_9P=y # CONFIG_NET_9P_VIRTIO is not set CONFIG_NET_9P_RDMA=y # CONFIG_NET_9P_DEBUG is not set # CONFIG_CAIF is not set CONFIG_CEPH_LIB=y # CONFIG_CEPH_LIB_PRETTYDEBUG is not set # CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set CONFIG_NFC=y CONFIG_NFC_DIGITAL=y # CONFIG_NFC_NCI is not set CONFIG_NFC_HCI=y CONFIG_NFC_SHDLC=y # # Near Field Communication (NFC) devices # CONFIG_NFC_TRF7970A=y CONFIG_NFC_SIM=y CONFIG_NFC_PORT100=y # CONFIG_NFC_PN544_I2C is not set CONFIG_NFC_PN533=y # CONFIG_NFC_PN533_USB is not set CONFIG_NFC_PN533_I2C=y CONFIG_NFC_MICROREAD=y CONFIG_NFC_MICROREAD_I2C=y CONFIG_NFC_ST21NFCA=y CONFIG_NFC_ST21NFCA_I2C=y CONFIG_NFC_ST95HF=y # CONFIG_PSAMPLE is not set # CONFIG_NET_IFE is not set CONFIG_LWTUNNEL=y # CONFIG_LWTUNNEL_BPF is not set CONFIG_DST_CACHE=y CONFIG_GRO_CELLS=y # CONFIG_NET_DEVLINK is not set CONFIG_MAY_USE_DEVLINK=y CONFIG_HAVE_EBPF_JIT=y # # Device Drivers # # # Generic Driver Options # CONFIG_UEVENT_HELPER=y CONFIG_UEVENT_HELPER_PATH="" CONFIG_DEVTMPFS=y # CONFIG_DEVTMPFS_MOUNT is not set CONFIG_STANDALONE=y # CONFIG_PREVENT_FIRMWARE_BUILD is not set CONFIG_FW_LOADER=y CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE="" CONFIG_FW_LOADER_USER_HELPER=y CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y CONFIG_ALLOW_DEV_COREDUMP=y # CONFIG_DEBUG_DRIVER is not set CONFIG_DEBUG_DEVRES=y # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set # CONFIG_SYS_HYPERVISOR is not set # CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_CPU_VULNERABILITIES=y CONFIG_REGMAP=y CONFIG_REGMAP_I2C=y CONFIG_REGMAP_SPI=y CONFIG_REGMAP_SPMI=y CONFIG_REGMAP_W1=y CONFIG_REGMAP_MMIO=y CONFIG_REGMAP_IRQ=y CONFIG_DMA_SHARED_BUFFER=y CONFIG_DMA_FENCE_TRACE=y # # Bus devices # CONFIG_SIMPLE_PM_BUS=y CONFIG_CONNECTOR=y # CONFIG_PROC_EVENTS is not set CONFIG_MTD=y CONFIG_MTD_REDBOOT_PARTS=y CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y # CONFIG_MTD_REDBOOT_PARTS_READONLY is not set CONFIG_MTD_CMDLINE_PARTS=y CONFIG_MTD_OF_PARTS=y CONFIG_MTD_AR7_PARTS=y # # Partition parsers # # # User Modules And Translation Layers # CONFIG_MTD_OOPS=y # CONFIG_MTD_PARTITIONED_MASTER is not set # # RAM/ROM/Flash chip drivers # CONFIG_MTD_CFI=y CONFIG_MTD_JEDECPROBE=y 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=y CONFIG_MTD_ROM=y # 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_PHYSMAP_OF is not set CONFIG_MTD_AMD76XROM=y CONFIG_MTD_ICHXROM=y # CONFIG_MTD_ESB2ROM is not set # CONFIG_MTD_CK804XROM is not set # CONFIG_MTD_SCB2_FLASH is not set # CONFIG_MTD_NETtel is not set # CONFIG_MTD_L440GX is not set # CONFIG_MTD_INTEL_VR_NOR is not set CONFIG_MTD_PLATRAM=y # # Self-contained MTD device drivers # # CONFIG_MTD_PMC551 is not set # CONFIG_MTD_DATAFLASH is not set CONFIG_MTD_MCHP23K256=y CONFIG_MTD_SST25L=y CONFIG_MTD_SLRAM=y # CONFIG_MTD_PHRAM is not set CONFIG_MTD_MTDRAM=y CONFIG_MTDRAM_TOTAL_SIZE=4096 CONFIG_MTDRAM_ERASE_SIZE=128 # # Disk-On-Chip Device Drivers # CONFIG_MTD_DOCG3=y CONFIG_BCH_CONST_M=14 CONFIG_BCH_CONST_T=4 # CONFIG_MTD_NAND is not set # CONFIG_MTD_ONENAND is not set # # LPDDR & LPDDR2 PCM memory drivers # CONFIG_MTD_LPDDR=y CONFIG_MTD_QINFO_PROBE=y # CONFIG_MTD_SPI_NOR is not set CONFIG_MTD_UBI=y CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_LIMIT=20 CONFIG_MTD_UBI_FASTMAP=y CONFIG_MTD_UBI_GLUEBI=y CONFIG_DTC=y CONFIG_OF=y CONFIG_OF_UNITTEST=y CONFIG_OF_FLATTREE=y CONFIG_OF_EARLY_FLATTREE=y CONFIG_OF_KOBJ=y # CONFIG_OF_DYNAMIC is not set CONFIG_OF_ADDRESS=y CONFIG_OF_ADDRESS_PCI=y CONFIG_OF_IRQ=y CONFIG_OF_NET=y CONFIG_OF_MDIO=y CONFIG_OF_PCI=y CONFIG_OF_PCI_IRQ=y CONFIG_OF_RESOLVE=y # CONFIG_OF_OVERLAY is not set CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y CONFIG_PARPORT=y CONFIG_PARPORT_PC=y # CONFIG_PARPORT_SERIAL is not set CONFIG_PARPORT_PC_FIFO=y CONFIG_PARPORT_PC_SUPERIO=y CONFIG_PARPORT_PC_PCMCIA=y # CONFIG_PARPORT_GSC is not set CONFIG_PARPORT_AX88796=y CONFIG_PARPORT_1284=y CONFIG_PARPORT_NOT_PC=y CONFIG_PNP=y CONFIG_PNP_DEBUG_MESSAGES=y # # Protocols # CONFIG_PNPACPI=y # # NVME Support # # # Misc devices # CONFIG_SENSORS_LIS3LV02D=y CONFIG_AD525X_DPOT=y CONFIG_AD525X_DPOT_I2C=y CONFIG_AD525X_DPOT_SPI=y # CONFIG_DUMMY_IRQ is not set # CONFIG_IBM_ASM 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=y # CONFIG_HP_ILO is not set # CONFIG_APDS9802ALS is not set # CONFIG_ISL29003 is not set CONFIG_ISL29020=y CONFIG_SENSORS_TSL2550=y CONFIG_SENSORS_BH1770=y CONFIG_SENSORS_APDS990X=y CONFIG_HMC6352=y CONFIG_DS1682=y CONFIG_USB_SWITCH_FSA9480=y # CONFIG_LATTICE_ECP3_CONFIG is not set # CONFIG_SRAM is not set # CONFIG_PCI_ENDPOINT_TEST is not set CONFIG_C2PORT=y CONFIG_C2PORT_DURAMAR_2150=y # # EEPROM support # CONFIG_EEPROM_AT24=y CONFIG_EEPROM_AT25=y CONFIG_EEPROM_LEGACY=y CONFIG_EEPROM_MAX6875=y CONFIG_EEPROM_93CX6=y CONFIG_EEPROM_93XX46=y CONFIG_EEPROM_IDT_89HPESX=y # CONFIG_CB710_CORE is not set # # Texas Instruments shared transport line discipline # CONFIG_TI_ST=y CONFIG_SENSORS_LIS3_I2C=y CONFIG_ALTERA_STAPL=y # CONFIG_INTEL_MEI is not set # CONFIG_INTEL_MEI_ME is not set # CONFIG_INTEL_MEI_TXE is not set # CONFIG_VMWARE_VMCI is not set # # Intel MIC & related support # # # Intel MIC Bus Driver # # CONFIG_INTEL_MIC_BUS is not set # # SCIF Bus Driver # # CONFIG_SCIF_BUS is not set # # VOP Bus Driver # # CONFIG_VOP_BUS is not set # # Intel MIC Host Driver # # # Intel MIC Card Driver # # # SCIF Driver # # # Intel MIC Coprocessor State Management (COSM) Drivers # # # VOP Driver # # CONFIG_GENWQE is not set # CONFIG_ECHO is not set # CONFIG_CXL_BASE is not set # CONFIG_CXL_AFU_DRIVER_OPS is not set # CONFIG_CXL_LIB is not set CONFIG_HAVE_IDE=y # # SCSI device support # CONFIG_SCSI_MOD=y # CONFIG_SCSI_DMA is not set # CONFIG_SCSI_NETLINK is not set # CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support # CONFIG_FIREWIRE=y # CONFIG_FIREWIRE_OHCI is not set # CONFIG_FIREWIRE_NET is not set # CONFIG_FIREWIRE_NOSY is not set # CONFIG_MACINTOSH_DRIVERS is not set CONFIG_NETDEVICES=y CONFIG_MII=y # CONFIG_NET_CORE is not set # CONFIG_ARCNET is not set # # CAIF transport drivers # # # Distributed Switch Architecture drivers # CONFIG_ETHERNET=y CONFIG_MDIO=y CONFIG_NET_VENDOR_3COM=y CONFIG_PCMCIA_3C574=y CONFIG_PCMCIA_3C589=y # CONFIG_VORTEX is not set # CONFIG_TYPHOON is not set CONFIG_NET_VENDOR_ADAPTEC=y # CONFIG_ADAPTEC_STARFIRE is not set CONFIG_NET_VENDOR_AGERE=y # CONFIG_ET131X is not set # CONFIG_NET_VENDOR_ALACRITECH is not set CONFIG_NET_VENDOR_ALTEON=y # CONFIG_ACENIC is not set CONFIG_ALTERA_TSE=y # CONFIG_NET_VENDOR_AMAZON is not set # CONFIG_NET_VENDOR_AMD is not set # CONFIG_NET_VENDOR_AQUANTIA is not set # CONFIG_NET_VENDOR_ARC is not set CONFIG_NET_VENDOR_ATHEROS=y # CONFIG_ATL2 is not set # CONFIG_ATL1 is not set # CONFIG_ATL1E is not set # CONFIG_ATL1C is not set # CONFIG_ALX is not set # CONFIG_NET_VENDOR_AURORA is not set # CONFIG_NET_CADENCE is not set CONFIG_NET_VENDOR_BROADCOM=y # CONFIG_B44 is not set # CONFIG_BCMGENET is not set # CONFIG_BNX2 is not set # CONFIG_CNIC is not set # CONFIG_TIGON3 is not set # CONFIG_BNX2X is not set CONFIG_SYSTEMPORT=y # CONFIG_BNXT is not set CONFIG_NET_VENDOR_BROCADE=y # CONFIG_BNA is not set CONFIG_NET_VENDOR_CAVIUM=y # CONFIG_THUNDER_NIC_PF is not set # CONFIG_THUNDER_NIC_VF is not set # CONFIG_THUNDER_NIC_BGX is not set # CONFIG_THUNDER_NIC_RGX is not set # CONFIG_LIQUIDIO is not set CONFIG_NET_VENDOR_CHELSIO=y # CONFIG_CHELSIO_T1 is not set # CONFIG_CHELSIO_T3 is not set # CONFIG_CHELSIO_T4 is not set # CONFIG_CHELSIO_T4VF is not set CONFIG_NET_VENDOR_CISCO=y # CONFIG_ENIC is not set # CONFIG_CX_ECAT is not set CONFIG_DNET=y CONFIG_NET_VENDOR_DEC=y # CONFIG_NET_TULIP is not set CONFIG_NET_VENDOR_DLINK=y # CONFIG_DL2K is not set # CONFIG_SUNDANCE is not set CONFIG_NET_VENDOR_EMULEX=y # CONFIG_BE2NET is not set CONFIG_NET_VENDOR_EZCHIP=y CONFIG_EZCHIP_NPS_MANAGEMENT_ENET=y CONFIG_NET_VENDOR_EXAR=y # CONFIG_S2IO is not set # CONFIG_VXGE is not set CONFIG_NET_VENDOR_FUJITSU=y # CONFIG_PCMCIA_FMVJ18X is not set CONFIG_NET_VENDOR_HP=y # CONFIG_HP100 is not set CONFIG_NET_VENDOR_HUAWEI=y CONFIG_NET_VENDOR_INTEL=y # CONFIG_E100 is not set CONFIG_E1000=y CONFIG_E1000E=y CONFIG_E1000E_HWTS=y CONFIG_IGB=y CONFIG_IGB_HWMON=y # CONFIG_IGBVF is not set # CONFIG_IXGB is not set CONFIG_IXGBE=y CONFIG_IXGBE_HWMON=y # CONFIG_IXGBE_DCB is not set # CONFIG_I40E is not set CONFIG_NET_VENDOR_I825XX=y # CONFIG_JME is not set CONFIG_NET_VENDOR_MARVELL=y CONFIG_MVMDIO=y # CONFIG_SKGE is not set # CONFIG_SKY2 is not set # CONFIG_NET_VENDOR_MELLANOX is not set CONFIG_NET_VENDOR_MICREL=y # CONFIG_KS8851 is not set CONFIG_KS8851_MLL=y # CONFIG_KSZ884X_PCI is not set # CONFIG_NET_VENDOR_MICROCHIP is not set CONFIG_NET_VENDOR_MYRI=y # CONFIG_MYRI10GE is not set # CONFIG_FEALNX is not set # CONFIG_NET_VENDOR_NATSEMI is not set # CONFIG_NET_VENDOR_NETRONOME is not set CONFIG_NET_VENDOR_NVIDIA=y # CONFIG_FORCEDETH is not set CONFIG_NET_VENDOR_OKI=y CONFIG_ETHOC=y CONFIG_NET_PACKET_ENGINE=y # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set CONFIG_NET_VENDOR_QLOGIC=y # CONFIG_QLA3XXX is not set # CONFIG_QLCNIC is not set # CONFIG_QLGE is not set # CONFIG_NETXEN_NIC is not set # CONFIG_QED is not set CONFIG_NET_VENDOR_QUALCOMM=y CONFIG_QCA7000=y CONFIG_QCA7000_SPI=y # CONFIG_QCA7000_UART is not set CONFIG_QCOM_EMAC=y # CONFIG_RMNET is not set # CONFIG_NET_VENDOR_REALTEK is not set # CONFIG_NET_VENDOR_RENESAS is not set CONFIG_NET_VENDOR_RDC=y # CONFIG_R6040 is not set CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SAMSUNG=y CONFIG_SXGBE_ETH=y CONFIG_NET_VENDOR_SEEQ=y CONFIG_NET_VENDOR_SILAN=y # CONFIG_SC92031 is not set CONFIG_NET_VENDOR_SIS=y # CONFIG_SIS900 is not set # CONFIG_SIS190 is not set CONFIG_NET_VENDOR_SOLARFLARE=y # CONFIG_SFC is not set # CONFIG_SFC_FALCON is not set CONFIG_NET_VENDOR_SMSC=y # CONFIG_PCMCIA_SMC91C92 is not set # CONFIG_EPIC100 is not set # CONFIG_SMSC911X is not set # CONFIG_SMSC9420 is not set CONFIG_NET_VENDOR_STMICRO=y # CONFIG_STMMAC_ETH is not set CONFIG_NET_VENDOR_SUN=y # CONFIG_HAPPYMEAL is not set # CONFIG_SUNGEM is not set # CONFIG_CASSINI is not set # CONFIG_NIU is not set CONFIG_NET_VENDOR_TEHUTI=y # CONFIG_TEHUTI is not set CONFIG_NET_VENDOR_TI=y # CONFIG_TI_CPSW_ALE is not set # CONFIG_TLAN is not set CONFIG_NET_VENDOR_VIA=y CONFIG_VIA_RHINE=y # CONFIG_VIA_RHINE_MMIO is not set CONFIG_VIA_VELOCITY=y # CONFIG_NET_VENDOR_WIZNET is not set CONFIG_NET_VENDOR_XIRCOM=y CONFIG_PCMCIA_XIRC2PS=y # CONFIG_NET_VENDOR_SYNOPSYS is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set # CONFIG_NET_SB1000 is not set CONFIG_MDIO_DEVICE=y CONFIG_MDIO_BUS=y CONFIG_MDIO_BCM_UNIMAC=y CONFIG_MDIO_BITBANG=y CONFIG_MDIO_BUS_MUX=y # CONFIG_MDIO_BUS_MUX_GPIO is not set CONFIG_MDIO_BUS_MUX_MMIOREG=y CONFIG_MDIO_GPIO=y CONFIG_MDIO_HISI_FEMAC=y # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set CONFIG_PHYLIB=y CONFIG_SWPHY=y # CONFIG_LED_TRIGGER_PHY is not set # # MII PHY device drivers # # CONFIG_AMD_PHY is not set CONFIG_AQUANTIA_PHY=y # CONFIG_AT803X_PHY is not set # CONFIG_BCM7XXX_PHY is not set CONFIG_BCM87XX_PHY=y CONFIG_BCM_NET_PHYLIB=y CONFIG_BROADCOM_PHY=y CONFIG_CICADA_PHY=y CONFIG_CORTINA_PHY=y CONFIG_DAVICOM_PHY=y # CONFIG_DP83822_PHY is not set # CONFIG_DP83848_PHY is not set CONFIG_DP83867_PHY=y CONFIG_FIXED_PHY=y CONFIG_ICPLUS_PHY=y CONFIG_INTEL_XWAY_PHY=y CONFIG_LSI_ET1011C_PHY=y CONFIG_LXT_PHY=y CONFIG_MARVELL_PHY=y # CONFIG_MARVELL_10G_PHY is not set CONFIG_MICREL_PHY=y CONFIG_MICROCHIP_PHY=y # CONFIG_MICROSEMI_PHY is not set CONFIG_NATIONAL_PHY=y # CONFIG_QSEMI_PHY is not set # CONFIG_REALTEK_PHY is not set CONFIG_RENESAS_PHY=y CONFIG_ROCKCHIP_PHY=y # CONFIG_SMSC_PHY is not set CONFIG_STE10XP=y CONFIG_TERANETICS_PHY=y CONFIG_VITESSE_PHY=y CONFIG_XILINX_GMII2RGMII=y CONFIG_MICREL_KS8995MA=y CONFIG_PLIP=y CONFIG_PPP=y CONFIG_PPP_BSDCOMP=y # CONFIG_PPP_DEFLATE is not set CONFIG_PPP_FILTER=y # CONFIG_PPP_MPPE is not set # CONFIG_PPP_MULTILINK is not set # CONFIG_PPPOE is not set # CONFIG_PPTP is not set # CONFIG_PPPOL2TP is not set CONFIG_PPP_ASYNC=y CONFIG_PPP_SYNC_TTY=y CONFIG_SLIP=y CONFIG_SLHC=y # CONFIG_SLIP_COMPRESSED is not set # CONFIG_SLIP_SMART is not set CONFIG_SLIP_MODE_SLIP6=y CONFIG_USB_NET_DRIVERS=y CONFIG_USB_CATC=y # CONFIG_USB_KAWETH is not set CONFIG_USB_PEGASUS=y CONFIG_USB_RTL8150=y CONFIG_USB_RTL8152=y CONFIG_USB_LAN78XX=y # CONFIG_USB_USBNET is not set # CONFIG_USB_HSO is not set CONFIG_USB_IPHETH=y CONFIG_WLAN=y CONFIG_WIRELESS_WDS=y CONFIG_WLAN_VENDOR_ADMTEK=y CONFIG_WLAN_VENDOR_ATH=y # CONFIG_ATH_DEBUG is not set # CONFIG_ATH_REG_DYNAMIC_USER_REG_HINTS is not set # CONFIG_ATH5K_PCI is not set CONFIG_ATH6KL=y CONFIG_ATH6KL_SDIO=y CONFIG_ATH6KL_USB=y # CONFIG_ATH6KL_DEBUG is not set CONFIG_ATH6KL_TRACING=y CONFIG_ATH6KL_REGDOMAIN=y # CONFIG_WIL6210 is not set # CONFIG_WLAN_VENDOR_ATMEL is not set # CONFIG_WLAN_VENDOR_BROADCOM is not set CONFIG_WLAN_VENDOR_CISCO=y CONFIG_AIRO_CS=y # CONFIG_WLAN_VENDOR_INTEL is not set # CONFIG_WLAN_VENDOR_INTERSIL is not set # CONFIG_WLAN_VENDOR_MARVELL is not set # CONFIG_WLAN_VENDOR_MEDIATEK is not set CONFIG_WLAN_VENDOR_RALINK=y # CONFIG_WLAN_VENDOR_REALTEK is not set CONFIG_WLAN_VENDOR_RSI=y # CONFIG_WLAN_VENDOR_ST is not set # CONFIG_WLAN_VENDOR_TI is not set # CONFIG_WLAN_VENDOR_ZYDAS is not set # CONFIG_WLAN_VENDOR_QUANTENNA is not set CONFIG_PCMCIA_RAYCS=y CONFIG_PCMCIA_WL3501=y # CONFIG_USB_NET_RNDIS_WLAN is not set # # WiMAX Wireless Broadband devices # # CONFIG_WIMAX_I2400M_USB is not set CONFIG_WAN=y # CONFIG_LANMEDIA is not set CONFIG_HDLC=y # CONFIG_HDLC_RAW is not set CONFIG_HDLC_RAW_ETH=y CONFIG_HDLC_CISCO=y CONFIG_HDLC_FR=y # CONFIG_HDLC_PPP is not set CONFIG_HDLC_X25=y # CONFIG_PCI200SYN is not set # CONFIG_WANXL is not set # CONFIG_PC300TOO is not set # CONFIG_FARSYNC is not set CONFIG_DLCI=y CONFIG_DLCI_MAX=8 CONFIG_LAPBETHER=y CONFIG_X25_ASY=y CONFIG_SBNI=y CONFIG_SBNI_MULTILINE=y # CONFIG_IEEE802154_DRIVERS is not set # CONFIG_VMXNET3 is not set # CONFIG_FUJITSU_ES is not set CONFIG_ISDN=y CONFIG_ISDN_I4L=y CONFIG_ISDN_PPP=y CONFIG_ISDN_PPP_VJ=y # CONFIG_ISDN_MPP is not set # CONFIG_IPPP_FILTER is not set # CONFIG_ISDN_PPP_BSDCOMP is not set CONFIG_ISDN_AUDIO=y # CONFIG_ISDN_TTY_FAX is not set # CONFIG_ISDN_X25 is not set # # ISDN feature submodules # CONFIG_ISDN_DRV_LOOP=y # CONFIG_ISDN_DIVERSION is not set # # ISDN4Linux hardware drivers # # # Passive cards # CONFIG_ISDN_DRV_HISAX=y # # D-channel protocol features # CONFIG_HISAX_EURO=y CONFIG_DE_AOC=y # CONFIG_HISAX_NO_SENDCOMPLETE is not set CONFIG_HISAX_NO_LLC=y # CONFIG_HISAX_NO_KEYPAD is not set # CONFIG_HISAX_1TR6 is not set # CONFIG_HISAX_NI1 is not set CONFIG_HISAX_MAX_CARDS=8 # # HiSax supported cards # CONFIG_HISAX_16_3=y # CONFIG_HISAX_TELESPCI is not set # CONFIG_HISAX_S0BOX is not set # CONFIG_HISAX_FRITZPCI is not set CONFIG_HISAX_AVM_A1_PCMCIA=y # CONFIG_HISAX_ELSA is not set # CONFIG_HISAX_DIEHLDIVA is not set # CONFIG_HISAX_SEDLBAUER is not set # CONFIG_HISAX_NETJET is not set # CONFIG_HISAX_NETJET_U is not set CONFIG_HISAX_NICCY=y # CONFIG_HISAX_BKM_A4T is not set # CONFIG_HISAX_SCT_QUADRO is not set # CONFIG_HISAX_GAZEL is not set # CONFIG_HISAX_HFC_PCI is not set # CONFIG_HISAX_W6692 is not set # CONFIG_HISAX_HFC_SX is not set CONFIG_HISAX_DEBUG=y # # HiSax PCMCIA card service modules # CONFIG_HISAX_AVM_A1_CS=y # CONFIG_HISAX_TELES_CS is not set # # HiSax sub driver modules # CONFIG_HISAX_ST5481=y CONFIG_HISAX_HFCUSB=y CONFIG_HISAX_HFC4S8S=y # CONFIG_HISAX_FRITZ_PCIPNP is not set # CONFIG_ISDN_CAPI is not set # CONFIG_ISDN_DRV_GIGASET is not set # CONFIG_MISDN is not set CONFIG_ISDN_HDLC=y # # Input device support # CONFIG_INPUT=y # CONFIG_INPUT_LEDS is not set CONFIG_INPUT_FF_MEMLESS=y CONFIG_INPUT_POLLDEV=y CONFIG_INPUT_SPARSEKMAP=y CONFIG_INPUT_MATRIXKMAP=y # # 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=y CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_ADC is not set # CONFIG_KEYBOARD_ADP5520 is not set # CONFIG_KEYBOARD_ADP5588 is not set CONFIG_KEYBOARD_ADP5589=y CONFIG_KEYBOARD_ATKBD=y CONFIG_KEYBOARD_QT1070=y # CONFIG_KEYBOARD_QT2160 is not set CONFIG_KEYBOARD_DLINK_DIR685=y # CONFIG_KEYBOARD_LKKBD is not set CONFIG_KEYBOARD_GPIO=y CONFIG_KEYBOARD_GPIO_POLLED=y # CONFIG_KEYBOARD_TCA6416 is not set CONFIG_KEYBOARD_TCA8418=y CONFIG_KEYBOARD_MATRIX=y # CONFIG_KEYBOARD_LM8323 is not set CONFIG_KEYBOARD_LM8333=y # CONFIG_KEYBOARD_MAX7359 is not set CONFIG_KEYBOARD_MCS=y # CONFIG_KEYBOARD_MPR121 is not set CONFIG_KEYBOARD_NEWTON=y CONFIG_KEYBOARD_OPENCORES=y # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_STOWAWAY is not set # CONFIG_KEYBOARD_SUNKBD is not set # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_TM2_TOUCHKEY is not set CONFIG_KEYBOARD_TWL4030=y CONFIG_KEYBOARD_XTKBD=y CONFIG_KEYBOARD_CAP11XX=y # CONFIG_KEYBOARD_BCM is not set # CONFIG_INPUT_MOUSE is not set CONFIG_INPUT_JOYSTICK=y # CONFIG_JOYSTICK_ANALOG is not set CONFIG_JOYSTICK_A3D=y CONFIG_JOYSTICK_ADI=y CONFIG_JOYSTICK_COBRA=y CONFIG_JOYSTICK_GF2K=y # CONFIG_JOYSTICK_GRIP is not set CONFIG_JOYSTICK_GRIP_MP=y CONFIG_JOYSTICK_GUILLEMOT=y CONFIG_JOYSTICK_INTERACT=y # CONFIG_JOYSTICK_SIDEWINDER is not set CONFIG_JOYSTICK_TMDC=y CONFIG_JOYSTICK_IFORCE=y # CONFIG_JOYSTICK_IFORCE_USB is not set CONFIG_JOYSTICK_IFORCE_232=y CONFIG_JOYSTICK_WARRIOR=y CONFIG_JOYSTICK_MAGELLAN=y # CONFIG_JOYSTICK_SPACEORB is not set CONFIG_JOYSTICK_SPACEBALL=y # CONFIG_JOYSTICK_STINGER is not set CONFIG_JOYSTICK_TWIDJOY=y CONFIG_JOYSTICK_ZHENHUA=y CONFIG_JOYSTICK_DB9=y CONFIG_JOYSTICK_GAMECON=y # CONFIG_JOYSTICK_TURBOGRAFX is not set # CONFIG_JOYSTICK_AS5011 is not set CONFIG_JOYSTICK_JOYDUMP=y CONFIG_JOYSTICK_XPAD=y # CONFIG_JOYSTICK_XPAD_FF is not set # CONFIG_JOYSTICK_XPAD_LEDS is not set # CONFIG_JOYSTICK_WALKERA0701 is not set CONFIG_JOYSTICK_PSXPAD_SPI=y CONFIG_JOYSTICK_PSXPAD_SPI_FF=y # CONFIG_INPUT_TABLET is not set CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_PROPERTIES=y # CONFIG_TOUCHSCREEN_88PM860X is not set # CONFIG_TOUCHSCREEN_ADS7846 is not set CONFIG_TOUCHSCREEN_AD7877=y CONFIG_TOUCHSCREEN_AD7879=y CONFIG_TOUCHSCREEN_AD7879_I2C=y CONFIG_TOUCHSCREEN_AD7879_SPI=y CONFIG_TOUCHSCREEN_AR1021_I2C=y CONFIG_TOUCHSCREEN_ATMEL_MXT=y # CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set CONFIG_TOUCHSCREEN_AUO_PIXCIR=y CONFIG_TOUCHSCREEN_BU21013=y # CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set CONFIG_TOUCHSCREEN_CY8CTMG110=y CONFIG_TOUCHSCREEN_CYTTSP_CORE=y # CONFIG_TOUCHSCREEN_CYTTSP_I2C is not set # CONFIG_TOUCHSCREEN_CYTTSP_SPI is not set CONFIG_TOUCHSCREEN_CYTTSP4_CORE=y CONFIG_TOUCHSCREEN_CYTTSP4_I2C=y CONFIG_TOUCHSCREEN_CYTTSP4_SPI=y # CONFIG_TOUCHSCREEN_DYNAPRO is not set CONFIG_TOUCHSCREEN_HAMPSHIRE=y # CONFIG_TOUCHSCREEN_EETI is not set CONFIG_TOUCHSCREEN_EGALAX=y # CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set # CONFIG_TOUCHSCREEN_EXC3000 is not set # CONFIG_TOUCHSCREEN_FUJITSU is not set CONFIG_TOUCHSCREEN_GOODIX=y # CONFIG_TOUCHSCREEN_HIDEEP is not set CONFIG_TOUCHSCREEN_ILI210X=y # CONFIG_TOUCHSCREEN_S6SY761 is not set CONFIG_TOUCHSCREEN_GUNZE=y CONFIG_TOUCHSCREEN_EKTF2127=y # CONFIG_TOUCHSCREEN_ELAN is not set # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_WACOM_W8001 is not set CONFIG_TOUCHSCREEN_WACOM_I2C=y CONFIG_TOUCHSCREEN_MAX11801=y # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MMS114 is not set CONFIG_TOUCHSCREEN_MELFAS_MIP4=y CONFIG_TOUCHSCREEN_MTOUCH=y # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set CONFIG_TOUCHSCREEN_MK712=y CONFIG_TOUCHSCREEN_PENMOUNT=y # CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set CONFIG_TOUCHSCREEN_TOUCHRIGHT=y # CONFIG_TOUCHSCREEN_TOUCHWIN is not set CONFIG_TOUCHSCREEN_PIXCIR=y # CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set # CONFIG_TOUCHSCREEN_WM831X is not set # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set CONFIG_TOUCHSCREEN_MC13783=y # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set # CONFIG_TOUCHSCREEN_TSC_SERIO is not set CONFIG_TOUCHSCREEN_TSC200X_CORE=y # CONFIG_TOUCHSCREEN_TSC2004 is not set CONFIG_TOUCHSCREEN_TSC2005=y CONFIG_TOUCHSCREEN_TSC2007=y # CONFIG_TOUCHSCREEN_TSC2007_IIO is not set CONFIG_TOUCHSCREEN_RM_TS=y CONFIG_TOUCHSCREEN_SILEAD=y CONFIG_TOUCHSCREEN_SIS_I2C=y # CONFIG_TOUCHSCREEN_ST1232 is not set # CONFIG_TOUCHSCREEN_STMFTS is not set # CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set CONFIG_TOUCHSCREEN_SX8654=y CONFIG_TOUCHSCREEN_TPS6507X=y # CONFIG_TOUCHSCREEN_ZET6223 is not set CONFIG_TOUCHSCREEN_ZFORCE=y # CONFIG_TOUCHSCREEN_COLIBRI_VF50 is not set # CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set CONFIG_INPUT_MISC=y CONFIG_INPUT_88PM860X_ONKEY=y # CONFIG_INPUT_88PM80X_ONKEY is not set # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ATMEL_CAPTOUCH is not set # CONFIG_INPUT_BMA150 is not set CONFIG_INPUT_E3X0_BUTTON=y # CONFIG_INPUT_PCSPKR is not set CONFIG_INPUT_MAX77693_HAPTIC=y # CONFIG_INPUT_MAX8997_HAPTIC is not set CONFIG_INPUT_MC13783_PWRBUTTON=y # CONFIG_INPUT_MMA8450 is not set CONFIG_INPUT_APANEL=y CONFIG_INPUT_GP2A=y # CONFIG_INPUT_GPIO_BEEPER is not set # CONFIG_INPUT_GPIO_TILT_POLLED is not set CONFIG_INPUT_GPIO_DECODER=y # CONFIG_INPUT_CPCAP_PWRBUTTON is not set # CONFIG_INPUT_ATLAS_BTNS is not set # CONFIG_INPUT_ATI_REMOTE2 is not set # CONFIG_INPUT_KEYSPAN_REMOTE is not set CONFIG_INPUT_KXTJ9=y # CONFIG_INPUT_KXTJ9_POLLED_MODE is not set # CONFIG_INPUT_POWERMATE is not set CONFIG_INPUT_YEALINK=y CONFIG_INPUT_CM109=y # CONFIG_INPUT_REGULATOR_HAPTIC is not set CONFIG_INPUT_TPS65218_PWRBUTTON=y CONFIG_INPUT_AXP20X_PEK=y # CONFIG_INPUT_TWL4030_PWRBUTTON is not set CONFIG_INPUT_TWL4030_VIBRA=y CONFIG_INPUT_TWL6040_VIBRA=y CONFIG_INPUT_UINPUT=y # CONFIG_INPUT_PCF50633_PMU is not set CONFIG_INPUT_PCF8574=y CONFIG_INPUT_PWM_BEEPER=y # CONFIG_INPUT_PWM_VIBRA is not set CONFIG_INPUT_RK805_PWRKEY=y # CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set CONFIG_INPUT_DA9063_ONKEY=y CONFIG_INPUT_WM831X_ON=y CONFIG_INPUT_ADXL34X=y CONFIG_INPUT_ADXL34X_I2C=y # CONFIG_INPUT_ADXL34X_SPI is not set CONFIG_INPUT_IMS_PCU=y CONFIG_INPUT_CMA3000=y CONFIG_INPUT_CMA3000_I2C=y CONFIG_INPUT_IDEAPAD_SLIDEBAR=y # CONFIG_INPUT_SOC_BUTTON_ARRAY is not set CONFIG_INPUT_DRV260X_HAPTICS=y # CONFIG_INPUT_DRV2665_HAPTICS is not set CONFIG_INPUT_DRV2667_HAPTICS=y CONFIG_RMI4_CORE=y # CONFIG_RMI4_I2C is not set # CONFIG_RMI4_SPI is not set # CONFIG_RMI4_SMB is not set CONFIG_RMI4_F03=y CONFIG_RMI4_F03_SERIO=y CONFIG_RMI4_2D_SENSOR=y CONFIG_RMI4_F11=y CONFIG_RMI4_F12=y CONFIG_RMI4_F30=y CONFIG_RMI4_F34=y CONFIG_RMI4_F54=y CONFIG_RMI4_F55=y # # Hardware I/O ports # CONFIG_SERIO=y CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y CONFIG_SERIO_I8042=y CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_CT82C710 is not set CONFIG_SERIO_PARKBD=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=y CONFIG_SERIO_ARC_PS2=y CONFIG_SERIO_APBPS2=y # CONFIG_SERIO_GPIO_PS2 is not set # CONFIG_USERIO is not set CONFIG_GAMEPORT=y # CONFIG_GAMEPORT_NS558 is not set CONFIG_GAMEPORT_L4=y # CONFIG_GAMEPORT_EMU10K1 is not set # CONFIG_GAMEPORT_FM801 is not set # # Character devices # CONFIG_TTY=y # CONFIG_VT is not set CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 CONFIG_SERIAL_NONSTANDARD=y # CONFIG_ROCKETPORT is not set # CONFIG_CYCLADES is not set # CONFIG_MOXA_INTELLIO is not set # CONFIG_MOXA_SMARTIO is not set # CONFIG_SYNCLINKMP is not set # CONFIG_SYNCLINK_GT is not set # CONFIG_NOZOMI is not set # CONFIG_ISI is not set # CONFIG_N_HDLC is not set # CONFIG_N_GSM is not set # CONFIG_TRACE_SINK is not set CONFIG_DEVMEM=y CONFIG_DEVKMEM=y # # Serial drivers # CONFIG_SERIAL_EARLYCON=y CONFIG_SERIAL_8250=y # CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set CONFIG_SERIAL_8250_PNP=y # CONFIG_SERIAL_8250_FINTEK is not set CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_EXAR=y CONFIG_SERIAL_8250_CS=y CONFIG_SERIAL_8250_MEN_MCB=y CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y # CONFIG_SERIAL_8250_ASPEED_VUART is not set # CONFIG_SERIAL_8250_SHARE_IRQ is not set CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y # CONFIG_SERIAL_8250_FSL is not set # CONFIG_SERIAL_8250_DW is not set # CONFIG_SERIAL_8250_RT288X is not set CONFIG_SERIAL_8250_LPSS=y CONFIG_SERIAL_8250_MID=y # CONFIG_SERIAL_8250_MOXA is not set CONFIG_SERIAL_OF_PLATFORM=y # # Non-8250 serial port support # CONFIG_SERIAL_MAX3100=y CONFIG_SERIAL_MAX310X=y CONFIG_SERIAL_UARTLITE=y # CONFIG_SERIAL_UARTLITE_CONSOLE is not set CONFIG_SERIAL_UARTLITE_NR_UARTS=1 CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_JSM is not set # CONFIG_SERIAL_SCCNXP is not set CONFIG_SERIAL_SC16IS7XX_CORE=y CONFIG_SERIAL_SC16IS7XX=y CONFIG_SERIAL_SC16IS7XX_I2C=y # CONFIG_SERIAL_SC16IS7XX_SPI is not set CONFIG_SERIAL_ALTERA_JTAGUART=y # CONFIG_SERIAL_ALTERA_JTAGUART_CONSOLE 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 is not set CONFIG_SERIAL_IFX6X60=y CONFIG_SERIAL_XILINX_PS_UART=y CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y CONFIG_SERIAL_ARC=y CONFIG_SERIAL_ARC_CONSOLE=y CONFIG_SERIAL_ARC_NR_PORTS=1 # CONFIG_SERIAL_RP2 is not set # CONFIG_SERIAL_FSL_LPUART is not set CONFIG_SERIAL_CONEXANT_DIGICOLOR=y # CONFIG_SERIAL_CONEXANT_DIGICOLOR_CONSOLE is not set CONFIG_SERIAL_MEN_Z135=y CONFIG_SERIAL_DEV_BUS=y # CONFIG_SERIAL_DEV_CTRL_TTYPORT is not set CONFIG_TTY_PRINTK=y CONFIG_PRINTER=y # CONFIG_LP_CONSOLE is not set # CONFIG_PPDEV is not set # CONFIG_VIRTIO_CONSOLE is not set CONFIG_IPMI_HANDLER=y CONFIG_IPMI_PROC_INTERFACE=y CONFIG_IPMI_PANIC_EVENT=y CONFIG_IPMI_PANIC_STRING=y CONFIG_IPMI_DEVICE_INTERFACE=y CONFIG_IPMI_SI=y CONFIG_IPMI_SSIF=y CONFIG_IPMI_WATCHDOG=y CONFIG_IPMI_POWEROFF=y CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_TIMERIOMEM=y CONFIG_HW_RANDOM_INTEL=y CONFIG_HW_RANDOM_AMD=y # CONFIG_HW_RANDOM_VIA is not set CONFIG_HW_RANDOM_VIRTIO=y # CONFIG_HW_RANDOM_TPM is not set # CONFIG_NVRAM is not set CONFIG_R3964=y # CONFIG_APPLICOM is not set # # PCMCIA character devices # CONFIG_SYNCLINK_CS=y # CONFIG_CARDMAN_4000 is not set CONFIG_CARDMAN_4040=y # CONFIG_SCR24X is not set CONFIG_IPWIRELESS=y CONFIG_MWAVE=y # CONFIG_HPET is not set CONFIG_HANGCHECK_TIMER=y CONFIG_TCG_TPM=y CONFIG_TCG_TIS_CORE=y CONFIG_TCG_TIS=y # CONFIG_TCG_TIS_SPI is not set CONFIG_TCG_TIS_I2C_ATMEL=y CONFIG_TCG_TIS_I2C_INFINEON=y CONFIG_TCG_TIS_I2C_NUVOTON=y # CONFIG_TCG_NSC is not set CONFIG_TCG_ATMEL=y # CONFIG_TCG_INFINEON is not set # CONFIG_TCG_CRB is not set CONFIG_TCG_VTPM_PROXY=y CONFIG_TCG_TIS_ST33ZP24=y CONFIG_TCG_TIS_ST33ZP24_I2C=y CONFIG_TCG_TIS_ST33ZP24_SPI=y CONFIG_TELCLOCK=y CONFIG_DEVPORT=y CONFIG_XILLYBUS=y CONFIG_XILLYBUS_OF=y # # I2C support # CONFIG_I2C=y CONFIG_ACPI_I2C_OPREGION=y CONFIG_I2C_BOARDINFO=y # CONFIG_I2C_COMPAT is not set # CONFIG_I2C_CHARDEV is not set CONFIG_I2C_MUX=y # # Multiplexer I2C Chip support # # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set CONFIG_I2C_MUX_GPIO=y # CONFIG_I2C_MUX_GPMUX is not set CONFIG_I2C_MUX_LTC4306=y CONFIG_I2C_MUX_PCA9541=y # CONFIG_I2C_MUX_PCA954x is not set CONFIG_I2C_MUX_REG=y # CONFIG_I2C_MUX_MLXCPLD is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=y CONFIG_I2C_ALGOBIT=y CONFIG_I2C_ALGOPCA=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_ISMT 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 # # ACPI drivers # # CONFIG_I2C_SCMI is not set # # I2C system bus drivers (mostly embedded / system-on-chip) # CONFIG_I2C_CBUS_GPIO=y CONFIG_I2C_DESIGNWARE_CORE=y CONFIG_I2C_DESIGNWARE_PLATFORM=y CONFIG_I2C_DESIGNWARE_SLAVE=y # CONFIG_I2C_DESIGNWARE_PCI is not set # CONFIG_I2C_EMEV2 is not set # CONFIG_I2C_GPIO is not set CONFIG_I2C_KEMPLD=y # CONFIG_I2C_OCORES is not set CONFIG_I2C_PCA_PLATFORM=y # CONFIG_I2C_PXA_PCI is not set # CONFIG_I2C_RK3X is not set CONFIG_I2C_SIMTEC=y CONFIG_I2C_XILINX=y # # External I2C/SMBus adapter drivers # CONFIG_I2C_DIOLAN_U2C=y CONFIG_I2C_PARPORT=y # CONFIG_I2C_PARPORT_LIGHT is not set CONFIG_I2C_ROBOTFUZZ_OSIF=y CONFIG_I2C_TAOS_EVM=y CONFIG_I2C_TINY_USB=y CONFIG_I2C_VIPERBOARD=y # # Other I2C/SMBus bus drivers # # CONFIG_I2C_MLXCPLD is not set CONFIG_I2C_SLAVE=y CONFIG_I2C_SLAVE_EEPROM=y # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set CONFIG_SPI=y # CONFIG_SPI_DEBUG is not set CONFIG_SPI_MASTER=y # # SPI Master Controller Drivers # # CONFIG_SPI_ALTERA is not set CONFIG_SPI_AXI_SPI_ENGINE=y CONFIG_SPI_BITBANG=y # CONFIG_SPI_BUTTERFLY is not set CONFIG_SPI_CADENCE=y CONFIG_SPI_DESIGNWARE=y # CONFIG_SPI_DW_PCI is not set CONFIG_SPI_DW_MMIO=y CONFIG_SPI_GPIO=y CONFIG_SPI_LM70_LLP=y CONFIG_SPI_FSL_LIB=y CONFIG_SPI_FSL_SPI=y CONFIG_SPI_OC_TINY=y # CONFIG_SPI_PXA2XX is not set # CONFIG_SPI_PXA2XX_PCI is not set CONFIG_SPI_ROCKCHIP=y # CONFIG_SPI_SC18IS602 is not set CONFIG_SPI_XCOMM=y CONFIG_SPI_XILINX=y CONFIG_SPI_ZYNQMP_GQSPI=y # # SPI Protocol Masters # # CONFIG_SPI_SPIDEV is not set CONFIG_SPI_TLE62X0=y # CONFIG_SPI_SLAVE is not set CONFIG_SPMI=y # CONFIG_HSI is not set # CONFIG_PPS is not set # # PTP clock support # # CONFIG_PINCTRL is not set CONFIG_GPIOLIB=y CONFIG_OF_GPIO=y CONFIG_GPIO_ACPI=y CONFIG_GPIOLIB_IRQCHIP=y # CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_SYSFS=y CONFIG_GPIO_GENERIC=y CONFIG_GPIO_MAX730X=y # # Memory mapped GPIO drivers # CONFIG_GPIO_74XX_MMIO=y CONFIG_GPIO_ALTERA=y # CONFIG_GPIO_AMDPT is not set # CONFIG_GPIO_AXP209 is not set CONFIG_GPIO_DWAPB=y # CONFIG_GPIO_EXAR is not set CONFIG_GPIO_FTGPIO010=y # CONFIG_GPIO_GENERIC_PLATFORM is not set CONFIG_GPIO_GRGPIO=y # CONFIG_GPIO_ICH is not set # CONFIG_GPIO_LYNXPOINT is not set CONFIG_GPIO_MB86S7X=y # CONFIG_GPIO_MENZ127 is not set CONFIG_GPIO_MOCKUP=y CONFIG_GPIO_SYSCON=y # CONFIG_GPIO_VX855 is not set CONFIG_GPIO_XILINX=y # # Port-mapped I/O GPIO drivers # CONFIG_GPIO_F7188X=y # CONFIG_GPIO_IT87 is not set # CONFIG_GPIO_SCH is not set CONFIG_GPIO_SCH311X=y # # I2C GPIO expanders # # CONFIG_GPIO_ADP5588 is not set CONFIG_GPIO_ADNP=y # CONFIG_GPIO_MAX7300 is not set # CONFIG_GPIO_MAX732X is not set # CONFIG_GPIO_PCA953X is not set CONFIG_GPIO_PCF857X=y CONFIG_GPIO_TPIC2810=y # # MFD GPIO expanders # CONFIG_GPIO_ADP5520=y # CONFIG_GPIO_ARIZONA is not set CONFIG_GPIO_BD9571MWV=y CONFIG_GPIO_KEMPLD=y # CONFIG_GPIO_LP3943 is not set # CONFIG_GPIO_LP873X is not set CONFIG_GPIO_LP87565=y CONFIG_GPIO_MAX77620=y CONFIG_GPIO_RC5T583=y CONFIG_GPIO_TPS65086=y CONFIG_GPIO_TPS65218=y CONFIG_GPIO_TPS6586X=y # CONFIG_GPIO_TPS65912 is not set CONFIG_GPIO_TWL4030=y CONFIG_GPIO_TWL6040=y CONFIG_GPIO_WM831X=y # CONFIG_GPIO_WM8350 is not set # CONFIG_GPIO_WM8994 is not set # # PCI GPIO expanders # # CONFIG_GPIO_AMD8111 is not set # CONFIG_GPIO_BT8XX is not set # CONFIG_GPIO_ML_IOH is not set # CONFIG_GPIO_PCI_IDIO_16 is not set # CONFIG_GPIO_RDC321X is not set # CONFIG_GPIO_SODAVILLE is not set # # SPI GPIO expanders # # CONFIG_GPIO_74X164 is not set # CONFIG_GPIO_MAX3191X is not set CONFIG_GPIO_MAX7301=y CONFIG_GPIO_MC33880=y # CONFIG_GPIO_PISOSR is not set CONFIG_GPIO_XRA1403=y # # USB GPIO expanders # CONFIG_GPIO_VIPERBOARD=y CONFIG_W1=y # CONFIG_W1_CON is not set # # 1-wire Bus Masters # # CONFIG_W1_MASTER_MATROX is not set CONFIG_W1_MASTER_DS2490=y # CONFIG_W1_MASTER_DS2482 is not set # CONFIG_W1_MASTER_DS1WM is not set CONFIG_W1_MASTER_GPIO=y # # 1-wire Slaves # # CONFIG_W1_SLAVE_THERM is not set CONFIG_W1_SLAVE_SMEM=y # CONFIG_W1_SLAVE_DS2405 is not set # CONFIG_W1_SLAVE_DS2408 is not set CONFIG_W1_SLAVE_DS2413=y # CONFIG_W1_SLAVE_DS2406 is not set CONFIG_W1_SLAVE_DS2423=y CONFIG_W1_SLAVE_DS2805=y CONFIG_W1_SLAVE_DS2431=y CONFIG_W1_SLAVE_DS2433=y CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2438=y # CONFIG_W1_SLAVE_DS2760 is not set CONFIG_W1_SLAVE_DS2780=y CONFIG_W1_SLAVE_DS2781=y # CONFIG_W1_SLAVE_DS28E04 is not set CONFIG_W1_SLAVE_DS28E17=y # CONFIG_POWER_AVS is not set CONFIG_POWER_RESET=y # CONFIG_POWER_RESET_GPIO is not set CONFIG_POWER_RESET_GPIO_RESTART=y # CONFIG_POWER_RESET_LTC2952 is not set CONFIG_POWER_RESET_RESTART=y CONFIG_POWER_RESET_SYSCON=y CONFIG_POWER_RESET_SYSCON_POWEROFF=y # CONFIG_SYSCON_REBOOT_MODE is not set CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set CONFIG_GENERIC_ADC_BATTERY=y CONFIG_WM831X_BACKUP=y CONFIG_WM831X_POWER=y CONFIG_WM8350_POWER=y # CONFIG_TEST_POWER is not set CONFIG_BATTERY_88PM860X=y # CONFIG_BATTERY_CPCAP is not set CONFIG_BATTERY_DS2780=y CONFIG_BATTERY_DS2781=y CONFIG_BATTERY_DS2782=y CONFIG_BATTERY_LEGO_EV3=y # CONFIG_BATTERY_SBS is not set # CONFIG_CHARGER_SBS is not set CONFIG_MANAGER_SBS=y CONFIG_BATTERY_BQ27XXX=y # CONFIG_BATTERY_BQ27XXX_I2C is not set CONFIG_BATTERY_BQ27XXX_HDQ=y CONFIG_BATTERY_DA9150=y # CONFIG_CHARGER_AXP20X is not set CONFIG_BATTERY_AXP20X=y # CONFIG_AXP20X_POWER is not set CONFIG_AXP288_CHARGER=y CONFIG_AXP288_FUEL_GAUGE=y # CONFIG_BATTERY_MAX17040 is not set CONFIG_BATTERY_MAX17042=y CONFIG_BATTERY_MAX1721X=y CONFIG_BATTERY_TWL4030_MADC=y # CONFIG_CHARGER_88PM860X is not set CONFIG_CHARGER_PCF50633=y CONFIG_BATTERY_RX51=y CONFIG_CHARGER_ISP1704=y CONFIG_CHARGER_MAX8903=y CONFIG_CHARGER_TWL4030=y CONFIG_CHARGER_LP8727=y CONFIG_CHARGER_GPIO=y # CONFIG_CHARGER_MANAGER is not set CONFIG_CHARGER_LTC3651=y # CONFIG_CHARGER_MAX14577 is not set CONFIG_CHARGER_DETECTOR_MAX14656=y # CONFIG_CHARGER_MAX77693 is not set CONFIG_CHARGER_MAX8997=y CONFIG_CHARGER_BQ2415X=y CONFIG_CHARGER_BQ24190=y CONFIG_CHARGER_BQ24257=y CONFIG_CHARGER_BQ24735=y # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_SMB347 is not set CONFIG_CHARGER_TPS65090=y CONFIG_CHARGER_TPS65217=y CONFIG_BATTERY_GAUGE_LTC2941=y # CONFIG_BATTERY_RT5033 is not set # CONFIG_CHARGER_RT9455 is not set CONFIG_HWMON=y CONFIG_HWMON_VID=y CONFIG_HWMON_DEBUG_CHIP=y # # Native drivers # CONFIG_SENSORS_AD7314=y CONFIG_SENSORS_AD7414=y # CONFIG_SENSORS_AD7418 is not set CONFIG_SENSORS_ADM1021=y CONFIG_SENSORS_ADM1025=y CONFIG_SENSORS_ADM1026=y CONFIG_SENSORS_ADM1029=y CONFIG_SENSORS_ADM1031=y CONFIG_SENSORS_ADM9240=y CONFIG_SENSORS_ADT7X10=y CONFIG_SENSORS_ADT7310=y CONFIG_SENSORS_ADT7410=y CONFIG_SENSORS_ADT7411=y CONFIG_SENSORS_ADT7462=y # CONFIG_SENSORS_ADT7470 is not set # CONFIG_SENSORS_ADT7475 is not set CONFIG_SENSORS_ASC7621=y # CONFIG_SENSORS_K8TEMP is not set # CONFIG_SENSORS_K10TEMP is not set CONFIG_SENSORS_APPLESMC=y CONFIG_SENSORS_ASB100=y CONFIG_SENSORS_ASPEED=y CONFIG_SENSORS_ATXP1=y CONFIG_SENSORS_DS620=y CONFIG_SENSORS_DS1621=y CONFIG_SENSORS_DELL_SMM=y # CONFIG_SENSORS_I5K_AMB is not set # CONFIG_SENSORS_F71805F is not set CONFIG_SENSORS_F71882FG=y CONFIG_SENSORS_F75375S=y # CONFIG_SENSORS_MC13783_ADC is not set CONFIG_SENSORS_FSCHMD=y CONFIG_SENSORS_FTSTEUTATES=y CONFIG_SENSORS_GL518SM=y CONFIG_SENSORS_GL520SM=y # CONFIG_SENSORS_G760A is not set CONFIG_SENSORS_G762=y # CONFIG_SENSORS_GPIO_FAN is not set CONFIG_SENSORS_HIH6130=y CONFIG_SENSORS_IBMAEM=y # CONFIG_SENSORS_IBMPEX is not set CONFIG_SENSORS_IIO_HWMON=y # CONFIG_SENSORS_I5500 is not set CONFIG_SENSORS_CORETEMP=y CONFIG_SENSORS_IT87=y CONFIG_SENSORS_JC42=y # CONFIG_SENSORS_POWR1220 is not set CONFIG_SENSORS_LINEAGE=y CONFIG_SENSORS_LTC2945=y # CONFIG_SENSORS_LTC2990 is not set CONFIG_SENSORS_LTC4151=y # CONFIG_SENSORS_LTC4215 is not set CONFIG_SENSORS_LTC4222=y # CONFIG_SENSORS_LTC4245 is not set # CONFIG_SENSORS_LTC4260 is not set CONFIG_SENSORS_LTC4261=y CONFIG_SENSORS_MAX1111=y CONFIG_SENSORS_MAX16065=y CONFIG_SENSORS_MAX1619=y CONFIG_SENSORS_MAX1668=y CONFIG_SENSORS_MAX197=y CONFIG_SENSORS_MAX31722=y # CONFIG_SENSORS_MAX6621 is not set CONFIG_SENSORS_MAX6639=y CONFIG_SENSORS_MAX6642=y CONFIG_SENSORS_MAX6650=y CONFIG_SENSORS_MAX6697=y CONFIG_SENSORS_MAX31790=y # CONFIG_SENSORS_MCP3021 is not set # CONFIG_SENSORS_TC654 is not set CONFIG_SENSORS_MENF21BMC_HWMON=y # CONFIG_SENSORS_ADCXX is not set CONFIG_SENSORS_LM63=y CONFIG_SENSORS_LM70=y CONFIG_SENSORS_LM73=y # CONFIG_SENSORS_LM75 is not set CONFIG_SENSORS_LM77=y CONFIG_SENSORS_LM78=y # CONFIG_SENSORS_LM80 is not set CONFIG_SENSORS_LM83=y CONFIG_SENSORS_LM85=y CONFIG_SENSORS_LM87=y CONFIG_SENSORS_LM90=y CONFIG_SENSORS_LM92=y CONFIG_SENSORS_LM93=y # CONFIG_SENSORS_LM95234 is not set CONFIG_SENSORS_LM95241=y CONFIG_SENSORS_LM95245=y CONFIG_SENSORS_PC87360=y CONFIG_SENSORS_PC87427=y CONFIG_SENSORS_NTC_THERMISTOR=y CONFIG_SENSORS_NCT6683=y # CONFIG_SENSORS_NCT6775 is not set CONFIG_SENSORS_NCT7802=y CONFIG_SENSORS_NCT7904=y CONFIG_SENSORS_PCF8591=y CONFIG_PMBUS=y CONFIG_SENSORS_PMBUS=y CONFIG_SENSORS_ADM1275=y # CONFIG_SENSORS_IBM_CFFPS is not set # CONFIG_SENSORS_IR35221 is not set CONFIG_SENSORS_LM25066=y CONFIG_SENSORS_LTC2978=y CONFIG_SENSORS_LTC2978_REGULATOR=y # CONFIG_SENSORS_LTC3815 is not set # CONFIG_SENSORS_MAX16064 is not set CONFIG_SENSORS_MAX20751=y # CONFIG_SENSORS_MAX31785 is not set # CONFIG_SENSORS_MAX34440 is not set CONFIG_SENSORS_MAX8688=y CONFIG_SENSORS_TPS40422=y # CONFIG_SENSORS_TPS53679 is not set CONFIG_SENSORS_UCD9000=y # CONFIG_SENSORS_UCD9200 is not set # CONFIG_SENSORS_ZL6100 is not set # CONFIG_SENSORS_PWM_FAN is not set # CONFIG_SENSORS_SHT15 is not set CONFIG_SENSORS_SHT21=y # CONFIG_SENSORS_SHT3x is not set # CONFIG_SENSORS_SHTC1 is not set # CONFIG_SENSORS_SIS5595 is not set CONFIG_SENSORS_DME1737=y CONFIG_SENSORS_EMC1403=y CONFIG_SENSORS_EMC2103=y # CONFIG_SENSORS_EMC6W201 is not set CONFIG_SENSORS_SMSC47M1=y CONFIG_SENSORS_SMSC47M192=y CONFIG_SENSORS_SMSC47B397=y CONFIG_SENSORS_SCH56XX_COMMON=y CONFIG_SENSORS_SCH5627=y # CONFIG_SENSORS_SCH5636 is not set CONFIG_SENSORS_STTS751=y CONFIG_SENSORS_SMM665=y CONFIG_SENSORS_ADC128D818=y # CONFIG_SENSORS_ADS1015 is not set # CONFIG_SENSORS_ADS7828 is not set CONFIG_SENSORS_ADS7871=y # CONFIG_SENSORS_AMC6821 is not set CONFIG_SENSORS_INA209=y # CONFIG_SENSORS_INA2XX is not set CONFIG_SENSORS_INA3221=y CONFIG_SENSORS_TC74=y # CONFIG_SENSORS_THMC50 is not set CONFIG_SENSORS_TMP102=y # CONFIG_SENSORS_TMP103 is not set CONFIG_SENSORS_TMP108=y # CONFIG_SENSORS_TMP401 is not set CONFIG_SENSORS_TMP421=y CONFIG_SENSORS_VIA_CPUTEMP=y # CONFIG_SENSORS_VIA686A is not set CONFIG_SENSORS_VT1211=y # CONFIG_SENSORS_VT8231 is not set CONFIG_SENSORS_W83781D=y CONFIG_SENSORS_W83791D=y # CONFIG_SENSORS_W83792D is not set CONFIG_SENSORS_W83793=y # CONFIG_SENSORS_W83795 is not set CONFIG_SENSORS_W83L785TS=y # CONFIG_SENSORS_W83L786NG is not set CONFIG_SENSORS_W83627HF=y # CONFIG_SENSORS_W83627EHF is not set # CONFIG_SENSORS_WM831X is not set CONFIG_SENSORS_WM8350=y # # ACPI drivers # # CONFIG_SENSORS_ACPI_POWER is not set # CONFIG_SENSORS_ATK0110 is not set CONFIG_THERMAL=y CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 # CONFIG_THERMAL_HWMON is not set CONFIG_THERMAL_OF=y CONFIG_THERMAL_WRITABLE_TRIPS=y # CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE is not set # CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE=y # CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set # CONFIG_THERMAL_GOV_FAIR_SHARE is not set # CONFIG_THERMAL_GOV_STEP_WISE is not set CONFIG_THERMAL_GOV_BANG_BANG=y CONFIG_THERMAL_GOV_USER_SPACE=y CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y # CONFIG_CPU_THERMAL is not set # CONFIG_THERMAL_EMULATION is not set CONFIG_MAX77620_THERMAL=y # CONFIG_QORIQ_THERMAL is not set # CONFIG_DA9062_THERMAL is not set CONFIG_X86_PKG_TEMP_THERMAL=y # CONFIG_INTEL_SOC_DTS_THERMAL is not set # # ACPI INT340X thermal drivers # # CONFIG_INT340X_THERMAL is not set # CONFIG_INTEL_PCH_THERMAL is not set # CONFIG_QCOM_SPMI_TEMP_ALARM is not set CONFIG_GENERIC_ADC_THERMAL=y CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y CONFIG_WATCHDOG_SYSFS=y # # Watchdog Device Drivers # # CONFIG_SOFT_WATCHDOG is not set CONFIG_DA9062_WATCHDOG=y CONFIG_GPIO_WATCHDOG=y # CONFIG_GPIO_WATCHDOG_ARCH_INITCALL is not set CONFIG_MENF21BMC_WATCHDOG=y # CONFIG_WDAT_WDT is not set CONFIG_WM831X_WATCHDOG=y CONFIG_WM8350_WATCHDOG=y CONFIG_XILINX_WATCHDOG=y # CONFIG_ZIIRAVE_WATCHDOG is not set CONFIG_CADENCE_WATCHDOG=y CONFIG_DW_WATCHDOG=y CONFIG_RN5T618_WATCHDOG=y # CONFIG_TWL4030_WATCHDOG is not set CONFIG_MAX63XX_WATCHDOG=y CONFIG_MAX77620_WATCHDOG=y CONFIG_ACQUIRE_WDT=y CONFIG_ADVANTECH_WDT=y # CONFIG_ALIM1535_WDT is not set # CONFIG_ALIM7101_WDT is not set # CONFIG_F71808E_WDT is not set # CONFIG_SP5100_TCO is not set CONFIG_SBC_FITPC2_WATCHDOG=y # CONFIG_EUROTECH_WDT is not set # CONFIG_IB700_WDT is not set CONFIG_IBMASR=y CONFIG_WAFER_WDT=y # CONFIG_I6300ESB_WDT is not set # CONFIG_IE6XX_WDT is not set # CONFIG_ITCO_WDT is not set CONFIG_IT8712F_WDT=y # CONFIG_IT87_WDT is not set # CONFIG_HP_WATCHDOG is not set CONFIG_KEMPLD_WDT=y CONFIG_SC1200_WDT=y CONFIG_PC87413_WDT=y # CONFIG_NV_TCO is not set # CONFIG_60XX_WDT is not set # CONFIG_CPU5_WDT is not set CONFIG_SMSC_SCH311X_WDT=y # CONFIG_SMSC37B787_WDT is not set # CONFIG_VIA_WDT is not set # CONFIG_W83627HF_WDT is not set CONFIG_W83877F_WDT=y # CONFIG_W83977F_WDT is not set CONFIG_MACHZ_WDT=y CONFIG_SBC_EPX_C3_WATCHDOG=y # CONFIG_NI903X_WDT is not set # CONFIG_NIC7018_WDT is not set CONFIG_MEN_A21_WDT=y # # PCI-based Watchdog Cards # # CONFIG_PCIPCWATCHDOG is not set # CONFIG_WDTPCI is not set # # USB-based Watchdog Cards # CONFIG_USBPCWATCHDOG=y # # Watchdog Pretimeout Governors # # CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set CONFIG_SSB_POSSIBLE=y # # Sonics Silicon Backplane # # CONFIG_SSB is not set CONFIG_BCMA_POSSIBLE=y CONFIG_BCMA=y CONFIG_BCMA_HOST_PCI_POSSIBLE=y CONFIG_BCMA_HOST_PCI=y # CONFIG_BCMA_HOST_SOC is not set CONFIG_BCMA_DRIVER_PCI=y CONFIG_BCMA_DRIVER_GMAC_CMN=y CONFIG_BCMA_DRIVER_GPIO=y # CONFIG_BCMA_DEBUG is not set # # Multifunction device drivers # CONFIG_MFD_CORE=y # CONFIG_MFD_ACT8945A is not set CONFIG_MFD_AS3711=y # CONFIG_MFD_AS3722 is not set CONFIG_PMIC_ADP5520=y CONFIG_MFD_AAT2870_CORE=y CONFIG_MFD_ATMEL_FLEXCOM=y # CONFIG_MFD_ATMEL_HLCDC is not set CONFIG_MFD_BCM590XX=y CONFIG_MFD_BD9571MWV=y CONFIG_MFD_AXP20X=y CONFIG_MFD_AXP20X_I2C=y # CONFIG_MFD_CROS_EC is not set # CONFIG_PMIC_DA903X is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9055 is not set CONFIG_MFD_DA9062=y # CONFIG_MFD_DA9063 is not set CONFIG_MFD_DA9150=y # CONFIG_MFD_DLN2 is not set CONFIG_MFD_MC13XXX=y # CONFIG_MFD_MC13XXX_SPI is not set CONFIG_MFD_MC13XXX_I2C=y # CONFIG_MFD_HI6421_PMIC is not set CONFIG_HTC_PASIC3=y # CONFIG_HTC_I2CPLD is not set # CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set # CONFIG_LPC_ICH is not set # CONFIG_LPC_SCH is not set # CONFIG_INTEL_SOC_PMIC is not set # CONFIG_INTEL_SOC_PMIC_CHTWC is not set # CONFIG_INTEL_SOC_PMIC_CHTDC_TI is not set # CONFIG_MFD_INTEL_LPSS_ACPI is not set # CONFIG_MFD_INTEL_LPSS_PCI is not set # CONFIG_MFD_JANZ_CMODIO is not set CONFIG_MFD_KEMPLD=y CONFIG_MFD_88PM800=y CONFIG_MFD_88PM805=y CONFIG_MFD_88PM860X=y CONFIG_MFD_MAX14577=y CONFIG_MFD_MAX77620=y CONFIG_MFD_MAX77686=y CONFIG_MFD_MAX77693=y CONFIG_MFD_MAX77843=y # CONFIG_MFD_MAX8907 is not set # CONFIG_MFD_MAX8925 is not set CONFIG_MFD_MAX8997=y # CONFIG_MFD_MAX8998 is not set CONFIG_MFD_MT6397=y CONFIG_MFD_MENF21BMC=y # CONFIG_EZX_PCAP is not set CONFIG_MFD_CPCAP=y CONFIG_MFD_VIPERBOARD=y # CONFIG_MFD_RETU is not set CONFIG_MFD_PCF50633=y # CONFIG_PCF50633_ADC is not set CONFIG_PCF50633_GPIO=y # CONFIG_MFD_RDC321X is not set # CONFIG_MFD_RTSX_PCI is not set CONFIG_MFD_RT5033=y # CONFIG_MFD_RTSX_USB is not set CONFIG_MFD_RC5T583=y CONFIG_MFD_RK808=y CONFIG_MFD_RN5T618=y CONFIG_MFD_SEC_CORE=y # CONFIG_MFD_SI476X_CORE is not set CONFIG_MFD_SM501=y CONFIG_MFD_SM501_GPIO=y # CONFIG_MFD_SKY81452 is not set CONFIG_MFD_SMSC=y CONFIG_ABX500_CORE=y # CONFIG_AB3100_CORE is not set # CONFIG_MFD_STMPE is not set CONFIG_MFD_SYSCON=y # CONFIG_MFD_TI_AM335X_TSCADC is not set CONFIG_MFD_LP3943=y CONFIG_MFD_LP8788=y CONFIG_MFD_TI_LMU=y # CONFIG_MFD_PALMAS is not set CONFIG_TPS6105X=y # CONFIG_TPS65010 is not set CONFIG_TPS6507X=y CONFIG_MFD_TPS65086=y CONFIG_MFD_TPS65090=y CONFIG_MFD_TPS65217=y # CONFIG_MFD_TPS68470 is not set CONFIG_MFD_TI_LP873X=y CONFIG_MFD_TI_LP87565=y CONFIG_MFD_TPS65218=y CONFIG_MFD_TPS6586X=y # CONFIG_MFD_TPS65910 is not set CONFIG_MFD_TPS65912=y CONFIG_MFD_TPS65912_I2C=y CONFIG_MFD_TPS65912_SPI=y CONFIG_MFD_TPS80031=y CONFIG_TWL4030_CORE=y CONFIG_MFD_TWL4030_AUDIO=y CONFIG_TWL6040_CORE=y CONFIG_MFD_WL1273_CORE=y # CONFIG_MFD_LM3533 is not set # CONFIG_MFD_TC3589X is not set # CONFIG_MFD_TMIO is not set # CONFIG_MFD_VX855 is not set CONFIG_MFD_ARIZONA=y CONFIG_MFD_ARIZONA_I2C=y CONFIG_MFD_ARIZONA_SPI=y # CONFIG_MFD_CS47L24 is not set # CONFIG_MFD_WM5102 is not set # CONFIG_MFD_WM5110 is not set # CONFIG_MFD_WM8997 is not set CONFIG_MFD_WM8998=y # CONFIG_MFD_WM8400 is not set CONFIG_MFD_WM831X=y CONFIG_MFD_WM831X_I2C=y CONFIG_MFD_WM831X_SPI=y CONFIG_MFD_WM8350=y CONFIG_MFD_WM8350_I2C=y CONFIG_MFD_WM8994=y CONFIG_REGULATOR=y CONFIG_REGULATOR_DEBUG=y CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_REGULATOR_VIRTUAL_CONSUMER=y CONFIG_REGULATOR_USERSPACE_CONSUMER=y CONFIG_REGULATOR_88PM800=y CONFIG_REGULATOR_88PM8607=y CONFIG_REGULATOR_ACT8865=y CONFIG_REGULATOR_AD5398=y # CONFIG_REGULATOR_ANATOP is not set CONFIG_REGULATOR_AAT2870=y CONFIG_REGULATOR_AS3711=y CONFIG_REGULATOR_AXP20X=y CONFIG_REGULATOR_BCM590XX=y # CONFIG_REGULATOR_BD9571MWV is not set # CONFIG_REGULATOR_CPCAP is not set CONFIG_REGULATOR_DA9062=y # CONFIG_REGULATOR_DA9210 is not set CONFIG_REGULATOR_DA9211=y # CONFIG_REGULATOR_FAN53555 is not set CONFIG_REGULATOR_GPIO=y # CONFIG_REGULATOR_ISL9305 is not set # CONFIG_REGULATOR_ISL6271A is not set CONFIG_REGULATOR_LM363X=y # CONFIG_REGULATOR_LP3971 is not set CONFIG_REGULATOR_LP3972=y # CONFIG_REGULATOR_LP872X is not set # CONFIG_REGULATOR_LP873X is not set CONFIG_REGULATOR_LP8755=y CONFIG_REGULATOR_LP87565=y # CONFIG_REGULATOR_LP8788 is not set CONFIG_REGULATOR_LTC3589=y # CONFIG_REGULATOR_LTC3676 is not set CONFIG_REGULATOR_MAX14577=y # CONFIG_REGULATOR_MAX1586 is not set CONFIG_REGULATOR_MAX77620=y # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set CONFIG_REGULATOR_MAX8973=y CONFIG_REGULATOR_MAX8997=y # CONFIG_REGULATOR_MAX77686 is not set CONFIG_REGULATOR_MAX77693=y CONFIG_REGULATOR_MAX77802=y CONFIG_REGULATOR_MC13XXX_CORE=y CONFIG_REGULATOR_MC13783=y CONFIG_REGULATOR_MC13892=y CONFIG_REGULATOR_MT6311=y # CONFIG_REGULATOR_MT6323 is not set CONFIG_REGULATOR_MT6397=y CONFIG_REGULATOR_PCF50633=y CONFIG_REGULATOR_PFUZE100=y CONFIG_REGULATOR_PV88060=y CONFIG_REGULATOR_PV88080=y CONFIG_REGULATOR_PV88090=y CONFIG_REGULATOR_PWM=y CONFIG_REGULATOR_QCOM_SPMI=y # CONFIG_REGULATOR_RC5T583 is not set CONFIG_REGULATOR_RK808=y # CONFIG_REGULATOR_RN5T618 is not set CONFIG_REGULATOR_RT5033=y CONFIG_REGULATOR_S2MPA01=y # CONFIG_REGULATOR_S2MPS11 is not set CONFIG_REGULATOR_S5M8767=y CONFIG_REGULATOR_TPS51632=y # CONFIG_REGULATOR_TPS6105X is not set CONFIG_REGULATOR_TPS62360=y CONFIG_REGULATOR_TPS65023=y CONFIG_REGULATOR_TPS6507X=y CONFIG_REGULATOR_TPS65086=y CONFIG_REGULATOR_TPS65090=y CONFIG_REGULATOR_TPS65132=y CONFIG_REGULATOR_TPS65217=y # CONFIG_REGULATOR_TPS65218 is not set CONFIG_REGULATOR_TPS6524X=y # CONFIG_REGULATOR_TPS6586X is not set CONFIG_REGULATOR_TPS65912=y CONFIG_REGULATOR_TPS80031=y CONFIG_REGULATOR_TWL4030=y CONFIG_REGULATOR_VCTRL=y CONFIG_REGULATOR_WM831X=y # CONFIG_REGULATOR_WM8350 is not set CONFIG_REGULATOR_WM8994=y CONFIG_CEC_CORE=y CONFIG_CEC_NOTIFIER=y CONFIG_RC_CORE=y # CONFIG_RC_MAP is not set CONFIG_RC_DECODERS=y CONFIG_LIRC=y CONFIG_IR_LIRC_CODEC=y # CONFIG_IR_NEC_DECODER is not set # CONFIG_IR_RC5_DECODER is not set CONFIG_IR_RC6_DECODER=y CONFIG_IR_JVC_DECODER=y # CONFIG_IR_SONY_DECODER is not set CONFIG_IR_SANYO_DECODER=y CONFIG_IR_SHARP_DECODER=y # CONFIG_IR_MCE_KBD_DECODER is not set CONFIG_IR_XMP_DECODER=y CONFIG_RC_DEVICES=y CONFIG_RC_ATI_REMOTE=y # CONFIG_IR_ENE is not set CONFIG_IR_HIX5HD2=y # CONFIG_IR_IMON is not set CONFIG_IR_MCEUSB=y # CONFIG_IR_ITE_CIR is not set # CONFIG_IR_FINTEK is not set # CONFIG_IR_NUVOTON is not set CONFIG_IR_REDRAT3=y CONFIG_IR_SPI=y # CONFIG_IR_STREAMZAP is not set # CONFIG_IR_WINBOND_CIR is not set CONFIG_IR_IGORPLUGUSB=y # CONFIG_IR_IGUANA is not set CONFIG_IR_TTUSBIR=y CONFIG_RC_LOOPBACK=y # CONFIG_IR_GPIO_CIR is not set CONFIG_IR_GPIO_TX=y # CONFIG_IR_PWM_TX is not set CONFIG_IR_SERIAL=y # CONFIG_IR_SERIAL_TRANSMITTER is not set CONFIG_IR_SIR=y CONFIG_MEDIA_SUPPORT=y # # Multimedia core support # CONFIG_MEDIA_CAMERA_SUPPORT=y CONFIG_MEDIA_ANALOG_TV_SUPPORT=y CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y # CONFIG_MEDIA_RADIO_SUPPORT is not set # CONFIG_MEDIA_SDR_SUPPORT is not set CONFIG_MEDIA_CEC_SUPPORT=y # CONFIG_MEDIA_CEC_RC is not set CONFIG_MEDIA_CONTROLLER=y # CONFIG_MEDIA_CONTROLLER_DVB is not set CONFIG_VIDEO_DEV=y # CONFIG_VIDEO_V4L2_SUBDEV_API is not set CONFIG_VIDEO_V4L2=y CONFIG_VIDEO_ADV_DEBUG=y # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set CONFIG_V4L2_FWNODE=y CONFIG_VIDEOBUF2_CORE=y CONFIG_VIDEOBUF2_MEMOPS=y CONFIG_VIDEOBUF2_VMALLOC=y CONFIG_DVB_CORE=y CONFIG_DVB_NET=y # CONFIG_TTPCI_EEPROM is not set CONFIG_DVB_MAX_ADAPTERS=16 CONFIG_DVB_DYNAMIC_MINORS=y CONFIG_DVB_DEMUX_SECTION_LOSS_LOG=y # # Media drivers # # CONFIG_MEDIA_USB_SUPPORT is not set # CONFIG_MEDIA_PCI_SUPPORT is not set # CONFIG_V4L_PLATFORM_DRIVERS is not set CONFIG_V4L_MEM2MEM_DRIVERS=y # CONFIG_VIDEO_SH_VEU is not set # CONFIG_V4L_TEST_DRIVERS is not set # CONFIG_DVB_PLATFORM_DRIVERS is not set CONFIG_CEC_PLATFORM_DRIVERS=y # # Supported MMC/SDIO adapters # CONFIG_SMS_SDIO_DRV=y # # Supported FireWire (IEEE 1394) Adapters # CONFIG_DVB_FIREDTV=y CONFIG_DVB_FIREDTV_INPUT=y CONFIG_MEDIA_COMMON_OPTIONS=y # # common driver options # # CONFIG_CYPRESS_FIRMWARE is not set CONFIG_SMS_SIANO_MDTV=y CONFIG_SMS_SIANO_RC=y # # Media ancillary drivers (tuners, sensors, i2c, spi, frontends) # # CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set CONFIG_VIDEO_IR_I2C=y # # I2C Encoders, decoders, sensors and other helper chips # # # Audio decoders, processors and mixers # CONFIG_VIDEO_TVAUDIO=y # CONFIG_VIDEO_TDA7432 is not set CONFIG_VIDEO_TDA9840=y # CONFIG_VIDEO_TEA6415C is not set # CONFIG_VIDEO_TEA6420 is not set CONFIG_VIDEO_MSP3400=y CONFIG_VIDEO_CS3308=y CONFIG_VIDEO_CS5345=y # CONFIG_VIDEO_CS53L32A is not set # CONFIG_VIDEO_TLV320AIC23B is not set CONFIG_VIDEO_UDA1342=y CONFIG_VIDEO_WM8775=y # CONFIG_VIDEO_WM8739 is not set # CONFIG_VIDEO_VP27SMPX is not set CONFIG_VIDEO_SONY_BTF_MPX=y # # RDS decoders # CONFIG_VIDEO_SAA6588=y # # Video decoders # CONFIG_VIDEO_ADV7183=y CONFIG_VIDEO_BT819=y # CONFIG_VIDEO_BT856 is not set CONFIG_VIDEO_BT866=y CONFIG_VIDEO_KS0127=y CONFIG_VIDEO_ML86V7667=y CONFIG_VIDEO_AD5820=y CONFIG_VIDEO_SAA7110=y CONFIG_VIDEO_SAA711X=y # CONFIG_VIDEO_TVP514X is not set CONFIG_VIDEO_TVP5150=y CONFIG_VIDEO_TVP7002=y CONFIG_VIDEO_TW2804=y # CONFIG_VIDEO_TW9903 is not set CONFIG_VIDEO_TW9906=y CONFIG_VIDEO_VPX3220=y # # Video and audio decoders # CONFIG_VIDEO_SAA717X=y # CONFIG_VIDEO_CX25840 is not set # # Video encoders # CONFIG_VIDEO_SAA7127=y CONFIG_VIDEO_SAA7185=y CONFIG_VIDEO_ADV7170=y # CONFIG_VIDEO_ADV7175 is not set # CONFIG_VIDEO_ADV7343 is not set # CONFIG_VIDEO_ADV7393 is not set CONFIG_VIDEO_AK881X=y # CONFIG_VIDEO_THS8200 is not set # # Camera sensor devices # CONFIG_VIDEO_OV2640=y CONFIG_VIDEO_OV2659=y CONFIG_VIDEO_OV6650=y CONFIG_VIDEO_OV7640=y CONFIG_VIDEO_OV7670=y CONFIG_VIDEO_VS6624=y # CONFIG_VIDEO_MT9M111 is not set # CONFIG_VIDEO_MT9V011 is not set CONFIG_VIDEO_SR030PC30=y # # Flash devices # CONFIG_VIDEO_ADP1653=y # CONFIG_VIDEO_AS3645A is not set CONFIG_VIDEO_LM3560=y CONFIG_VIDEO_LM3646=y # # Video improvement chips # # CONFIG_VIDEO_UPD64031A is not set CONFIG_VIDEO_UPD64083=y # # Audio/Video compression chips # CONFIG_VIDEO_SAA6752HS=y # # SDR tuner chips # # # Miscellaneous helper chips # # CONFIG_VIDEO_THS7303 is not set # CONFIG_VIDEO_M52790 is not set # # Sensors used on soc_camera driver # # # SPI helper chips # CONFIG_MEDIA_TUNER=y # # Customize TV tuners # CONFIG_MEDIA_TUNER_SIMPLE=y CONFIG_MEDIA_TUNER_TDA8290=y CONFIG_MEDIA_TUNER_TDA827X=y CONFIG_MEDIA_TUNER_TDA18271=y CONFIG_MEDIA_TUNER_TDA9887=y CONFIG_MEDIA_TUNER_TEA5761=y CONFIG_MEDIA_TUNER_TEA5767=y # CONFIG_MEDIA_TUNER_MSI001 is not set # CONFIG_MEDIA_TUNER_MT20XX is not set # CONFIG_MEDIA_TUNER_MT2060 is not set CONFIG_MEDIA_TUNER_MT2063=y # CONFIG_MEDIA_TUNER_MT2266 is not set # CONFIG_MEDIA_TUNER_MT2131 is not set CONFIG_MEDIA_TUNER_QT1010=y CONFIG_MEDIA_TUNER_XC2028=y CONFIG_MEDIA_TUNER_XC5000=y # CONFIG_MEDIA_TUNER_XC4000 is not set # CONFIG_MEDIA_TUNER_MXL5005S is not set # CONFIG_MEDIA_TUNER_MXL5007T is not set CONFIG_MEDIA_TUNER_MC44S803=y CONFIG_MEDIA_TUNER_MAX2165=y # CONFIG_MEDIA_TUNER_TDA18218 is not set CONFIG_MEDIA_TUNER_FC0011=y CONFIG_MEDIA_TUNER_FC0012=y CONFIG_MEDIA_TUNER_FC0013=y CONFIG_MEDIA_TUNER_TDA18212=y CONFIG_MEDIA_TUNER_E4000=y # CONFIG_MEDIA_TUNER_FC2580 is not set CONFIG_MEDIA_TUNER_M88RS6000T=y CONFIG_MEDIA_TUNER_TUA9001=y CONFIG_MEDIA_TUNER_SI2157=y # CONFIG_MEDIA_TUNER_IT913X is not set CONFIG_MEDIA_TUNER_R820T=y # CONFIG_MEDIA_TUNER_MXL301RF is not set CONFIG_MEDIA_TUNER_QM1D1C0042=y # # Customise DVB Frontends # # # Multistandard (satellite) frontends # CONFIG_DVB_STB0899=y CONFIG_DVB_STB6100=y CONFIG_DVB_STV090x=y CONFIG_DVB_STV0910=y # CONFIG_DVB_STV6110x is not set CONFIG_DVB_STV6111=y # CONFIG_DVB_MXL5XX is not set CONFIG_DVB_M88DS3103=y # # Multistandard (cable + terrestrial) frontends # # CONFIG_DVB_DRXK is not set # CONFIG_DVB_TDA18271C2DD is not set # CONFIG_DVB_SI2165 is not set CONFIG_DVB_MN88472=y CONFIG_DVB_MN88473=y # # DVB-S (satellite) frontends # CONFIG_DVB_CX24110=y CONFIG_DVB_CX24123=y # CONFIG_DVB_MT312 is not set CONFIG_DVB_ZL10036=y # CONFIG_DVB_ZL10039 is not set # CONFIG_DVB_S5H1420 is not set CONFIG_DVB_STV0288=y CONFIG_DVB_STB6000=y # CONFIG_DVB_STV0299 is not set # CONFIG_DVB_STV6110 is not set # CONFIG_DVB_STV0900 is not set CONFIG_DVB_TDA8083=y CONFIG_DVB_TDA10086=y # CONFIG_DVB_TDA8261 is not set CONFIG_DVB_VES1X93=y CONFIG_DVB_TUNER_ITD1000=y CONFIG_DVB_TUNER_CX24113=y CONFIG_DVB_TDA826X=y CONFIG_DVB_TUA6100=y CONFIG_DVB_CX24116=y CONFIG_DVB_CX24117=y CONFIG_DVB_CX24120=y CONFIG_DVB_SI21XX=y # CONFIG_DVB_TS2020 is not set CONFIG_DVB_DS3000=y CONFIG_DVB_MB86A16=y # CONFIG_DVB_TDA10071 is not set # # DVB-T (terrestrial) frontends # CONFIG_DVB_SP8870=y CONFIG_DVB_SP887X=y CONFIG_DVB_CX22700=y CONFIG_DVB_CX22702=y CONFIG_DVB_S5H1432=y # CONFIG_DVB_DRXD is not set CONFIG_DVB_L64781=y CONFIG_DVB_TDA1004X=y # CONFIG_DVB_NXT6000 is not set # CONFIG_DVB_MT352 is not set # CONFIG_DVB_ZL10353 is not set CONFIG_DVB_DIB3000MB=y CONFIG_DVB_DIB3000MC=y CONFIG_DVB_DIB7000M=y # CONFIG_DVB_DIB7000P is not set CONFIG_DVB_DIB9000=y # CONFIG_DVB_TDA10048 is not set CONFIG_DVB_AF9013=y # CONFIG_DVB_EC100 is not set CONFIG_DVB_STV0367=y CONFIG_DVB_CXD2820R=y CONFIG_DVB_CXD2841ER=y # CONFIG_DVB_RTL2830 is not set CONFIG_DVB_RTL2832=y CONFIG_DVB_SI2168=y # CONFIG_DVB_AS102_FE is not set CONFIG_DVB_ZD1301_DEMOD=y # CONFIG_DVB_GP8PSK_FE is not set # # DVB-C (cable) frontends # CONFIG_DVB_VES1820=y CONFIG_DVB_TDA10021=y CONFIG_DVB_TDA10023=y CONFIG_DVB_STV0297=y # # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # CONFIG_DVB_NXT200X=y # CONFIG_DVB_OR51211 is not set # CONFIG_DVB_OR51132 is not set CONFIG_DVB_BCM3510=y CONFIG_DVB_LGDT330X=y CONFIG_DVB_LGDT3305=y CONFIG_DVB_LGDT3306A=y CONFIG_DVB_LG2160=y CONFIG_DVB_S5H1409=y CONFIG_DVB_AU8522=y CONFIG_DVB_AU8522_DTV=y CONFIG_DVB_AU8522_V4L=y # CONFIG_DVB_S5H1411 is not set # # ISDB-T (terrestrial) frontends # # CONFIG_DVB_S921 is not set CONFIG_DVB_DIB8000=y CONFIG_DVB_MB86A20S=y # # ISDB-S (satellite) & ISDB-T (terrestrial) frontends # CONFIG_DVB_TC90522=y # # Digital terrestrial only tuners/PLL # CONFIG_DVB_PLL=y CONFIG_DVB_TUNER_DIB0070=y CONFIG_DVB_TUNER_DIB0090=y # # SEC control devices for DVB-S # CONFIG_DVB_DRX39XYJ=y # CONFIG_DVB_LNBH25 is not set # CONFIG_DVB_LNBP21 is not set CONFIG_DVB_LNBP22=y CONFIG_DVB_ISL6405=y CONFIG_DVB_ISL6421=y # CONFIG_DVB_ISL6423 is not set # CONFIG_DVB_A8293 is not set CONFIG_DVB_SP2=y # CONFIG_DVB_LGS8GL5 is not set CONFIG_DVB_LGS8GXX=y CONFIG_DVB_ATBM8830=y # CONFIG_DVB_TDA665x is not set CONFIG_DVB_IX2505V=y # CONFIG_DVB_M88RS2000 is not set # CONFIG_DVB_AF9033 is not set CONFIG_DVB_HORUS3A=y CONFIG_DVB_ASCOT2E=y # CONFIG_DVB_HELENE is not set # # Tools to develop new frontends # CONFIG_DVB_DUMMY_FE=y # # Graphics support # # CONFIG_AGP is not set CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=16 # CONFIG_VGA_SWITCHEROO is not set CONFIG_DRM=y CONFIG_DRM_MIPI_DSI=y CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DEBUG_MM is not set # CONFIG_DRM_DEBUG_MM_SELFTEST is not set CONFIG_DRM_KMS_HELPER=y CONFIG_DRM_KMS_FB_HELPER=y CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=100 # CONFIG_DRM_LOAD_EDID_FIRMWARE is not set CONFIG_DRM_TTM=y CONFIG_DRM_GEM_CMA_HELPER=y CONFIG_DRM_KMS_CMA_HELPER=y CONFIG_DRM_VM=y # # I2C encoder or helper chips # CONFIG_DRM_I2C_CH7006=y CONFIG_DRM_I2C_SIL164=y # CONFIG_DRM_I2C_NXP_TDA998X is not set # CONFIG_DRM_RADEON is not set # CONFIG_DRM_AMDGPU is not set # # ACP (Audio CoProcessor) Configuration # # # AMD Library routines # # CONFIG_CHASH is not set # CONFIG_DRM_NOUVEAU is not set # CONFIG_DRM_I915 is not set CONFIG_DRM_VGEM=y # CONFIG_DRM_VMWGFX is not set # CONFIG_DRM_GMA500 is not set # CONFIG_DRM_UDL is not set # CONFIG_DRM_AST is not set # CONFIG_DRM_MGAG200 is not set # CONFIG_DRM_CIRRUS_QEMU is not set CONFIG_DRM_RCAR_DW_HDMI=y # CONFIG_DRM_QXL is not set # CONFIG_DRM_BOCHS is not set CONFIG_DRM_VIRTIO_GPU=y CONFIG_DRM_PANEL=y # # Display Panels # CONFIG_DRM_PANEL_LVDS=y CONFIG_DRM_PANEL_SIMPLE=y CONFIG_DRM_PANEL_ILITEK_IL9322=y CONFIG_DRM_PANEL_INNOLUX_P079ZCA=y CONFIG_DRM_PANEL_JDI_LT070ME05000=y CONFIG_DRM_PANEL_SAMSUNG_LD9040=y # CONFIG_DRM_PANEL_LG_LG4573 is not set # CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set # CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=y CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=y CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=y # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set CONFIG_DRM_PANEL_SEIKO_43WVF1G=y CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=y # CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set CONFIG_DRM_PANEL_SITRONIX_ST7789V=y CONFIG_DRM_BRIDGE=y CONFIG_DRM_PANEL_BRIDGE=y # # Display Interface Bridges # CONFIG_DRM_ANALOGIX_ANX78XX=y # CONFIG_DRM_DUMB_VGA_DAC is not set CONFIG_DRM_LVDS_ENCODER=y CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW=y # CONFIG_DRM_NXP_PTN3460 is not set CONFIG_DRM_PARADE_PS8622=y CONFIG_DRM_SIL_SII8620=y CONFIG_DRM_SII902X=y # CONFIG_DRM_SII9234 is not set CONFIG_DRM_TOSHIBA_TC358767=y CONFIG_DRM_TI_TFP410=y CONFIG_DRM_I2C_ADV7511=y CONFIG_DRM_I2C_ADV7533=y # CONFIG_DRM_I2C_ADV7511_CEC is not set CONFIG_DRM_DW_HDMI=y CONFIG_DRM_DW_HDMI_CEC=y CONFIG_DRM_ARCPGU=y # CONFIG_DRM_HISI_HIBMC is not set # CONFIG_DRM_MXSFB is not set CONFIG_DRM_TINYDRM=y CONFIG_TINYDRM_MIPI_DBI=y CONFIG_TINYDRM_ILI9225=y # CONFIG_TINYDRM_MI0283QT is not set CONFIG_TINYDRM_REPAPER=y CONFIG_TINYDRM_ST7586=y # CONFIG_TINYDRM_ST7735R is not set CONFIG_DRM_LEGACY=y # CONFIG_DRM_TDFX is not set # CONFIG_DRM_R128 is not set # CONFIG_DRM_MGA is not set # CONFIG_DRM_VIA is not set # CONFIG_DRM_SAVAGE is not set CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y # CONFIG_DRM_LIB_RANDOM is not set # # Frame buffer Devices # CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set CONFIG_FB_CMDLINE=y CONFIG_FB_NOTIFY=y # CONFIG_FB_DDC is not set # CONFIG_FB_BOOT_VESA_SUPPORT is not set CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set CONFIG_FB_SYS_FILLRECT=y CONFIG_FB_SYS_COPYAREA=y CONFIG_FB_SYS_IMAGEBLIT=y # CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set CONFIG_FB_FOREIGN_ENDIAN=y # CONFIG_FB_BOTH_ENDIAN is not set CONFIG_FB_BIG_ENDIAN=y # CONFIG_FB_LITTLE_ENDIAN is not set CONFIG_FB_SYS_FOPS=y CONFIG_FB_DEFERRED_IO=y CONFIG_FB_HECUBA=y # CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set CONFIG_FB_BACKLIGHT=y CONFIG_FB_MODE_HELPERS=y # 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_ARC is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB_VGA16 is not set # CONFIG_FB_UVESA is not set # CONFIG_FB_VESA is not set CONFIG_FB_N411=y CONFIG_FB_HGA=y CONFIG_FB_OPENCORES=y # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_I740 is not set # CONFIG_FB_LE80578 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_VIA 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_SM501 is not set # CONFIG_FB_SMSCUFX is not set CONFIG_FB_UDL=y CONFIG_FB_IBM_GXT4500=y # CONFIG_FB_VIRTUAL is not set CONFIG_FB_METRONOME=y # CONFIG_FB_MB862XX is not set # CONFIG_FB_BROADSHEET is not set # CONFIG_FB_AUO_K190X is not set CONFIG_FB_SIMPLE=y CONFIG_FB_SSD1307=y # CONFIG_FB_SM712 is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=y CONFIG_LCD_L4F00242T03=y CONFIG_LCD_LMS283GF05=y CONFIG_LCD_LTV350QV=y # CONFIG_LCD_ILI922X is not set # CONFIG_LCD_ILI9320 is not set CONFIG_LCD_TDO24M=y # CONFIG_LCD_VGG2432A4 is not set CONFIG_LCD_PLATFORM=y # CONFIG_LCD_S6E63M0 is not set CONFIG_LCD_LD9040=y CONFIG_LCD_AMS369FG06=y CONFIG_LCD_LMS501KF03=y CONFIG_LCD_HX8357=y CONFIG_BACKLIGHT_CLASS_DEVICE=y # CONFIG_BACKLIGHT_GENERIC is not set CONFIG_BACKLIGHT_PWM=y # CONFIG_BACKLIGHT_APPLE is not set # CONFIG_BACKLIGHT_PM8941_WLED is not set # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKLIGHT_WM831X is not set CONFIG_BACKLIGHT_ADP5520=y CONFIG_BACKLIGHT_ADP8860=y CONFIG_BACKLIGHT_ADP8870=y CONFIG_BACKLIGHT_88PM860X=y CONFIG_BACKLIGHT_PCF50633=y CONFIG_BACKLIGHT_AAT2870=y CONFIG_BACKLIGHT_LM3630A=y CONFIG_BACKLIGHT_LM3639=y # CONFIG_BACKLIGHT_LP855X is not set CONFIG_BACKLIGHT_LP8788=y # CONFIG_BACKLIGHT_PANDORA is not set CONFIG_BACKLIGHT_TPS65217=y CONFIG_BACKLIGHT_AS3711=y CONFIG_BACKLIGHT_GPIO=y # CONFIG_BACKLIGHT_LV5207LP is not set CONFIG_BACKLIGHT_BD6107=y CONFIG_BACKLIGHT_ARCXCNN=y # CONFIG_VGASTATE is not set CONFIG_VIDEOMODE_HELPERS=y CONFIG_HDMI=y # CONFIG_LOGO is not set CONFIG_SOUND=y # CONFIG_SOUND_OSS_CORE is not set # CONFIG_SND is not set # # HID support # CONFIG_HID=y CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HIDRAW=y CONFIG_UHID=y CONFIG_HID_GENERIC=y # # Special HID drivers # CONFIG_HID_A4TECH=y CONFIG_HID_ACCUTOUCH=y CONFIG_HID_ACRUX=y CONFIG_HID_ACRUX_FF=y CONFIG_HID_APPLE=y # CONFIG_HID_APPLEIR is not set CONFIG_HID_ASUS=y CONFIG_HID_AUREAL=y # CONFIG_HID_BELKIN is not set CONFIG_HID_BETOP_FF=y CONFIG_HID_CHERRY=y CONFIG_HID_CHICONY=y # CONFIG_HID_CORSAIR is not set CONFIG_HID_CMEDIA=y CONFIG_HID_CP2112=y CONFIG_HID_CYPRESS=y # CONFIG_HID_DRAGONRISE is not set CONFIG_HID_EMS_FF=y CONFIG_HID_ELECOM=y CONFIG_HID_ELO=y CONFIG_HID_EZKEY=y CONFIG_HID_GEMBIRD=y # CONFIG_HID_GFRM is not set CONFIG_HID_HOLTEK=y # CONFIG_HOLTEK_FF is not set CONFIG_HID_GT683R=y # CONFIG_HID_KEYTOUCH is not set # CONFIG_HID_KYE is not set # CONFIG_HID_UCLOGIC is not set CONFIG_HID_WALTOP=y CONFIG_HID_GYRATION=y # CONFIG_HID_ICADE is not set CONFIG_HID_ITE=y CONFIG_HID_TWINHAN=y CONFIG_HID_KENSINGTON=y CONFIG_HID_LCPOWER=y CONFIG_HID_LED=y CONFIG_HID_LENOVO=y CONFIG_HID_LOGITECH=y CONFIG_HID_LOGITECH_DJ=y CONFIG_HID_LOGITECH_HIDPP=y CONFIG_LOGITECH_FF=y CONFIG_LOGIRUMBLEPAD2_FF=y CONFIG_LOGIG940_FF=y CONFIG_LOGIWHEELS_FF=y CONFIG_HID_MAGICMOUSE=y CONFIG_HID_MAYFLASH=y CONFIG_HID_MICROSOFT=y CONFIG_HID_MONTEREY=y CONFIG_HID_MULTITOUCH=y # CONFIG_HID_NTI is not set # CONFIG_HID_NTRIG is not set # CONFIG_HID_ORTEK is not set CONFIG_HID_PANTHERLORD=y CONFIG_PANTHERLORD_FF=y # CONFIG_HID_PENMOUNT is not set # CONFIG_HID_PETALYNX is not set # CONFIG_HID_PICOLCD is not set CONFIG_HID_PLANTRONICS=y # CONFIG_HID_PRIMAX is not set CONFIG_HID_RETRODE=y CONFIG_HID_ROCCAT=y # CONFIG_HID_SAITEK is not set CONFIG_HID_SAMSUNG=y CONFIG_HID_SONY=y # CONFIG_SONY_FF is not set CONFIG_HID_SPEEDLINK=y # CONFIG_HID_STEELSERIES is not set # CONFIG_HID_SUNPLUS is not set CONFIG_HID_RMI=y CONFIG_HID_GREENASIA=y CONFIG_GREENASIA_FF=y CONFIG_HID_SMARTJOYPLUS=y # CONFIG_SMARTJOYPLUS_FF is not set # CONFIG_HID_TIVO is not set CONFIG_HID_TOPSEED=y CONFIG_HID_THINGM=y CONFIG_HID_THRUSTMASTER=y # CONFIG_THRUSTMASTER_FF is not set CONFIG_HID_UDRAW_PS3=y CONFIG_HID_WACOM=y CONFIG_HID_WIIMOTE=y # CONFIG_HID_XINMO is not set # CONFIG_HID_ZEROPLUS is not set CONFIG_HID_ZYDACRON=y # CONFIG_HID_SENSOR_HUB is not set CONFIG_HID_ALPS=y # # USB HID support # CONFIG_USB_HID=y # CONFIG_HID_PID is not set CONFIG_USB_HIDDEV=y # # I2C HID support # CONFIG_I2C_HID=y # # Intel ISH HID support # # CONFIG_INTEL_ISH_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_PCI=y # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set # # Miscellaneous USB options # CONFIG_USB_DEFAULT_PERSIST=y CONFIG_USB_DYNAMIC_MINORS=y CONFIG_USB_OTG=y # CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set CONFIG_USB_OTG_FSM=y CONFIG_USB_LEDS_TRIGGER_USBPORT=y CONFIG_USB_MON=y CONFIG_USB_WUSB_CBAF=y # CONFIG_USB_WUSB_CBAF_DEBUG is not set # # USB Host Controller Drivers # CONFIG_USB_C67X00_HCD=y # 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=y CONFIG_USB_OXU210HP_HCD=y # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1362_HCD is not set CONFIG_USB_FOTG210_HCD=y CONFIG_USB_MAX3421_HCD=y CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD_PCI=y CONFIG_USB_OHCI_HCD_PLATFORM=y # CONFIG_USB_UHCI_HCD is not set CONFIG_USB_U132_HCD=y CONFIG_USB_SL811_HCD=y # CONFIG_USB_SL811_HCD_ISO is not set CONFIG_USB_SL811_CS=y CONFIG_USB_R8A66597_HCD=y CONFIG_USB_HCD_BCMA=y # CONFIG_USB_HCD_TEST_MODE is not set # # USB Device Class drivers # CONFIG_USB_ACM=y CONFIG_USB_PRINTER=y # CONFIG_USB_WDM is not set CONFIG_USB_TMC=y # # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may # # # also be needed; see USB_STORAGE Help for more info # # # USB Imaging devices # CONFIG_USB_MDC800=y # CONFIG_USBIP_CORE is not set CONFIG_USB_MUSB_HDRC=y # CONFIG_USB_MUSB_HOST is not set # CONFIG_USB_MUSB_GADGET is not set CONFIG_USB_MUSB_DUAL_ROLE=y # # Platform Glue Layer # # # MUSB DMA mode # # CONFIG_MUSB_PIO_ONLY is not set CONFIG_USB_DWC3=y # CONFIG_USB_DWC3_HOST is not set # CONFIG_USB_DWC3_GADGET is not set CONFIG_USB_DWC3_DUAL_ROLE=y # # Platform Glue Driver Support # CONFIG_USB_DWC3_PCI=y CONFIG_USB_DWC3_OF_SIMPLE=y # CONFIG_USB_DWC2 is not set CONFIG_USB_CHIPIDEA=y CONFIG_USB_CHIPIDEA_OF=y CONFIG_USB_CHIPIDEA_PCI=y # CONFIG_USB_CHIPIDEA_UDC is not set # CONFIG_USB_CHIPIDEA_HOST is not set CONFIG_USB_ISP1760=y CONFIG_USB_ISP1761_UDC=y # CONFIG_USB_ISP1760_HOST_ROLE is not set CONFIG_USB_ISP1760_GADGET_ROLE=y # CONFIG_USB_ISP1760_DUAL_ROLE is not set # # USB port drivers # # CONFIG_USB_USS720 is not set CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL_CONSOLE=y # CONFIG_USB_SERIAL_GENERIC is not set CONFIG_USB_SERIAL_SIMPLE=y CONFIG_USB_SERIAL_AIRCABLE=y CONFIG_USB_SERIAL_ARK3116=y # CONFIG_USB_SERIAL_BELKIN is not set # CONFIG_USB_SERIAL_CH341 is not set # CONFIG_USB_SERIAL_WHITEHEAT is not set CONFIG_USB_SERIAL_DIGI_ACCELEPORT=y CONFIG_USB_SERIAL_CP210X=y CONFIG_USB_SERIAL_CYPRESS_M8=y CONFIG_USB_SERIAL_EMPEG=y # CONFIG_USB_SERIAL_FTDI_SIO is not set CONFIG_USB_SERIAL_VISOR=y # CONFIG_USB_SERIAL_IPAQ is not set CONFIG_USB_SERIAL_IR=y CONFIG_USB_SERIAL_EDGEPORT=y CONFIG_USB_SERIAL_EDGEPORT_TI=y # CONFIG_USB_SERIAL_F81232 is not set CONFIG_USB_SERIAL_F8153X=y CONFIG_USB_SERIAL_GARMIN=y # CONFIG_USB_SERIAL_IPW is not set # CONFIG_USB_SERIAL_IUU is not set CONFIG_USB_SERIAL_KEYSPAN_PDA=y CONFIG_USB_SERIAL_KEYSPAN=y # CONFIG_USB_SERIAL_KEYSPAN_MPR is not set # CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set # CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set # CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set # CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set # CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set # CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set # CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set # CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set # CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set # CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set # CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set # CONFIG_USB_SERIAL_KLSI is not set # CONFIG_USB_SERIAL_KOBIL_SCT is not set CONFIG_USB_SERIAL_MCT_U232=y CONFIG_USB_SERIAL_METRO=y # CONFIG_USB_SERIAL_MOS7720 is not set CONFIG_USB_SERIAL_MOS7840=y CONFIG_USB_SERIAL_MXUPORT=y CONFIG_USB_SERIAL_NAVMAN=y CONFIG_USB_SERIAL_PL2303=y # CONFIG_USB_SERIAL_OTI6858 is not set CONFIG_USB_SERIAL_QCAUX=y CONFIG_USB_SERIAL_QUALCOMM=y CONFIG_USB_SERIAL_SPCP8X5=y CONFIG_USB_SERIAL_SAFE=y CONFIG_USB_SERIAL_SAFE_PADDED=y # CONFIG_USB_SERIAL_SIERRAWIRELESS is not set CONFIG_USB_SERIAL_SYMBOL=y # CONFIG_USB_SERIAL_TI is not set CONFIG_USB_SERIAL_CYBERJACK=y CONFIG_USB_SERIAL_XIRCOM=y CONFIG_USB_SERIAL_WWAN=y CONFIG_USB_SERIAL_OPTION=y CONFIG_USB_SERIAL_OMNINET=y # CONFIG_USB_SERIAL_OPTICON is not set # CONFIG_USB_SERIAL_XSENS_MT is not set CONFIG_USB_SERIAL_WISHBONE=y # CONFIG_USB_SERIAL_SSU100 is not set CONFIG_USB_SERIAL_QT2=y # CONFIG_USB_SERIAL_UPD78F0730 is not set CONFIG_USB_SERIAL_DEBUG=y # # USB Miscellaneous drivers # CONFIG_USB_EMI62=y CONFIG_USB_EMI26=y CONFIG_USB_ADUTUX=y CONFIG_USB_SEVSEG=y CONFIG_USB_RIO500=y CONFIG_USB_LEGOTOWER=y CONFIG_USB_LCD=y CONFIG_USB_CYPRESS_CY7C63=y # CONFIG_USB_CYTHERM is not set CONFIG_USB_IDMOUSE=y CONFIG_USB_FTDI_ELAN=y CONFIG_USB_APPLEDISPLAY=y CONFIG_USB_SISUSBVGA=y CONFIG_USB_LD=y CONFIG_USB_TRANCEVIBRATOR=y # CONFIG_USB_IOWARRIOR is not set CONFIG_USB_TEST=y CONFIG_USB_EHSET_TEST_FIXTURE=y CONFIG_USB_ISIGHTFW=y CONFIG_USB_YUREX=y CONFIG_USB_EZUSB_FX2=y # CONFIG_USB_HUB_USB251XB is not set # CONFIG_USB_HSIC_USB3503 is not set # CONFIG_USB_HSIC_USB4604 is not set CONFIG_USB_LINK_LAYER_TEST=y # CONFIG_USB_CHAOSKEY is not set # # USB Physical Layer drivers # CONFIG_USB_PHY=y CONFIG_NOP_USB_XCEIV=y CONFIG_USB_GPIO_VBUS=y CONFIG_USB_ISP1301=y CONFIG_USB_GADGET=y CONFIG_USB_GADGET_DEBUG=y # CONFIG_USB_GADGET_VERBOSE is not set # CONFIG_USB_GADGET_DEBUG_FILES is not set CONFIG_USB_GADGET_DEBUG_FS=y CONFIG_USB_GADGET_VBUS_DRAW=2 CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 # # USB Peripheral Controller # CONFIG_USB_FOTG210_UDC=y CONFIG_USB_GR_UDC=y # CONFIG_USB_R8A66597 is not set CONFIG_USB_PXA27X=y CONFIG_USB_MV_UDC=y CONFIG_USB_MV_U3D=y CONFIG_USB_SNP_CORE=y CONFIG_USB_SNP_UDC_PLAT=y CONFIG_USB_M66592=y # CONFIG_USB_BDC_UDC is not set # CONFIG_USB_AMD5536UDC is not set CONFIG_USB_NET2272=y CONFIG_USB_NET2272_DMA=y # CONFIG_USB_NET2280 is not set # CONFIG_USB_GOKU is not set # CONFIG_USB_EG20T is not set CONFIG_USB_GADGET_XILINX=y CONFIG_USB_DUMMY_HCD=y # CONFIG_USB_CONFIGFS is not set # CONFIG_TYPEC is not set # CONFIG_USB_LED_TRIG is not set # CONFIG_USB_ULPI_BUS is not set # CONFIG_UWB is not set CONFIG_MMC=y CONFIG_PWRSEQ_EMMC=y CONFIG_PWRSEQ_SIMPLE=y CONFIG_SDIO_UART=y CONFIG_MMC_TEST=y # # MMC/SD/SDIO Host Controller Drivers # CONFIG_MMC_DEBUG=y CONFIG_MMC_SDHCI=y # CONFIG_MMC_SDHCI_PCI is not set # CONFIG_MMC_SDHCI_ACPI is not set # CONFIG_MMC_SDHCI_PLTFM is not set # CONFIG_MMC_TIFM_SD is not set # CONFIG_MMC_SPI is not set # CONFIG_MMC_SDRICOH_CS is not set # CONFIG_MMC_CB710 is not set # CONFIG_MMC_VIA_SDMMC is not set # CONFIG_MMC_VUB300 is not set CONFIG_MMC_USHC=y CONFIG_MMC_USDHI6ROL0=y # CONFIG_MMC_TOSHIBA_PCI is not set CONFIG_MMC_MTK=y CONFIG_MEMSTICK=y # CONFIG_MEMSTICK_DEBUG is not set # # MemoryStick drivers # CONFIG_MEMSTICK_UNSAFE_RESUME=y # # MemoryStick Host Controller Drivers # # CONFIG_MEMSTICK_TIFM_MS is not set # CONFIG_MEMSTICK_JMICRON_38X is not set # CONFIG_MEMSTICK_R592 is not set CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y CONFIG_LEDS_CLASS_FLASH=y CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y # # LED drivers # CONFIG_LEDS_88PM860X=y CONFIG_LEDS_AS3645A=y CONFIG_LEDS_BCM6328=y CONFIG_LEDS_BCM6358=y # CONFIG_LEDS_CPCAP is not set CONFIG_LEDS_LM3530=y CONFIG_LEDS_LM3642=y CONFIG_LEDS_MT6323=y CONFIG_LEDS_PCA9532=y # CONFIG_LEDS_PCA9532_GPIO is not set # CONFIG_LEDS_GPIO is not set # CONFIG_LEDS_LP3944 is not set # CONFIG_LEDS_LP3952 is not set CONFIG_LEDS_LP55XX_COMMON=y # CONFIG_LEDS_LP5521 is not set # CONFIG_LEDS_LP5523 is not set # CONFIG_LEDS_LP5562 is not set CONFIG_LEDS_LP8501=y CONFIG_LEDS_LP8788=y # CONFIG_LEDS_LP8860 is not set CONFIG_LEDS_PCA955X=y # CONFIG_LEDS_PCA955X_GPIO is not set # CONFIG_LEDS_PCA963X is not set CONFIG_LEDS_WM831X_STATUS=y CONFIG_LEDS_WM8350=y CONFIG_LEDS_DAC124S085=y CONFIG_LEDS_PWM=y CONFIG_LEDS_REGULATOR=y CONFIG_LEDS_BD2802=y CONFIG_LEDS_LT3593=y CONFIG_LEDS_ADP5520=y CONFIG_LEDS_MC13783=y # CONFIG_LEDS_TCA6507 is not set CONFIG_LEDS_TLC591XX=y CONFIG_LEDS_MAX77693=y # CONFIG_LEDS_MAX8997 is not set # CONFIG_LEDS_LM355x is not set CONFIG_LEDS_MENF21BMC=y CONFIG_LEDS_KTD2692=y CONFIG_LEDS_IS31FL319X=y CONFIG_LEDS_IS31FL32XX=y # # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) # # CONFIG_LEDS_BLINKM is not set CONFIG_LEDS_SYSCON=y CONFIG_LEDS_USER=y # CONFIG_LEDS_NIC78BX is not set # # LED Triggers # CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=y CONFIG_LEDS_TRIGGER_ONESHOT=y CONFIG_LEDS_TRIGGER_MTD=y CONFIG_LEDS_TRIGGER_HEARTBEAT=y CONFIG_LEDS_TRIGGER_BACKLIGHT=y # CONFIG_LEDS_TRIGGER_CPU is not set CONFIG_LEDS_TRIGGER_ACTIVITY=y CONFIG_LEDS_TRIGGER_GPIO=y CONFIG_LEDS_TRIGGER_DEFAULT_ON=y # # iptables trigger is under Netfilter config (LED target) # # CONFIG_LEDS_TRIGGER_TRANSIENT is not set CONFIG_LEDS_TRIGGER_CAMERA=y CONFIG_LEDS_TRIGGER_PANIC=y CONFIG_ACCESSIBILITY=y CONFIG_INFINIBAND=y CONFIG_INFINIBAND_USER_MAD=y CONFIG_INFINIBAND_USER_ACCESS=y CONFIG_INFINIBAND_EXP_USER_ACCESS=y CONFIG_INFINIBAND_USER_MEM=y # CONFIG_INFINIBAND_ON_DEMAND_PAGING is not set CONFIG_INFINIBAND_ADDR_TRANS=y CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y # CONFIG_INFINIBAND_MTHCA is not set # CONFIG_MLX4_INFINIBAND is not set # CONFIG_INFINIBAND_NES is not set # CONFIG_INFINIBAND_OCRDMA is not set CONFIG_INFINIBAND_IPOIB=y # CONFIG_INFINIBAND_IPOIB_CM is not set # CONFIG_INFINIBAND_IPOIB_DEBUG is not set CONFIG_INFINIBAND_OPA_VNIC=y # CONFIG_INFINIBAND_RDMAVT is not set # CONFIG_INFINIBAND_BNXT_RE is not set CONFIG_EDAC_ATOMIC_SCRUB=y CONFIG_EDAC_SUPPORT=y CONFIG_EDAC=y # CONFIG_EDAC_LEGACY_SYSFS is not set # CONFIG_EDAC_DEBUG is not set # CONFIG_EDAC_E752X is not set # CONFIG_EDAC_I82975X is not set # CONFIG_EDAC_I3000 is not set # CONFIG_EDAC_I3200 is not set # CONFIG_EDAC_IE31200 is not set # CONFIG_EDAC_X38 is not set # CONFIG_EDAC_I5400 is not set # CONFIG_EDAC_I7CORE is not set # CONFIG_EDAC_I5000 is not set # CONFIG_EDAC_I5100 is not set # CONFIG_EDAC_I7300 is not set # CONFIG_EDAC_PND2 is not set CONFIG_RTC_LIB=y CONFIG_RTC_MC146818_LIB=y # CONFIG_RTC_CLASS is not set # CONFIG_DMADEVICES is not set # # DMABUF options # CONFIG_SYNC_FILE=y # CONFIG_SW_SYNC is not set # CONFIG_AUXDISPLAY is not set # CONFIG_PANEL is not set CONFIG_UIO=y # CONFIG_UIO_CIF is not set CONFIG_UIO_PDRV_GENIRQ=y CONFIG_UIO_DMEM_GENIRQ=y # CONFIG_UIO_AEC is not set # CONFIG_UIO_SERCOS3 is not set # CONFIG_UIO_PCI_GENERIC is not set # CONFIG_UIO_NETX is not set CONFIG_UIO_PRUSS=y # CONFIG_UIO_MF624 is not set # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO=y # # Virtio drivers # # CONFIG_VIRTIO_PCI is not set CONFIG_VIRTIO_BALLOON=y CONFIG_VIRTIO_INPUT=y CONFIG_VIRTIO_MMIO=y CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y # # Microsoft Hyper-V guest support # # CONFIG_HYPERV is not set # CONFIG_HYPERV_TSCPAGE is not set # CONFIG_STAGING is not set CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_ACERHDF is not set # CONFIG_ASUS_LAPTOP is not set CONFIG_DELL_SMBIOS=y CONFIG_DELL_SMBIOS_SMM=y # CONFIG_DELL_SMO8800 is not set # CONFIG_DELL_RBTN is not set # CONFIG_FUJITSU_LAPTOP is not set # CONFIG_FUJITSU_TABLET is not set CONFIG_AMILO_RFKILL=y # CONFIG_HP_ACCEL is not set # CONFIG_HP_WIRELESS is not set # CONFIG_MSI_LAPTOP is not set # CONFIG_PANASONIC_LAPTOP is not set # CONFIG_COMPAL_LAPTOP is not set # CONFIG_SONY_LAPTOP is not set # CONFIG_IDEAPAD_LAPTOP is not set # CONFIG_THINKPAD_ACPI is not set CONFIG_SENSORS_HDAPS=y # CONFIG_INTEL_MENLOW is not set # CONFIG_ASUS_WIRELESS is not set # CONFIG_ACPI_WMI is not set # CONFIG_TOPSTAR_LAPTOP is not set # CONFIG_TOSHIBA_BT_RFKILL is not set # CONFIG_TOSHIBA_HAPS is not set # CONFIG_ACPI_CMPC is not set # CONFIG_INTEL_CHT_INT33FE is not set # CONFIG_INTEL_INT0002_VGPIO is not set # CONFIG_INTEL_HID_EVENT is not set # CONFIG_INTEL_VBTN is not set # CONFIG_INTEL_IPS is not set # CONFIG_INTEL_PMC_CORE is not set # CONFIG_IBM_RTL is not set CONFIG_SAMSUNG_LAPTOP=y # CONFIG_INTEL_OAKTRAIL is not set # CONFIG_SAMSUNG_Q10 is not set # CONFIG_APPLE_GMUX is not set # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set # CONFIG_PVPANIC is not set # CONFIG_INTEL_PMC_IPC is not set # CONFIG_SURFACE_PRO3_BUTTON is not set # CONFIG_SURFACE_3_BUTTON is not set CONFIG_INTEL_PUNIT_IPC=y CONFIG_MLX_PLATFORM=y # CONFIG_MLX_CPLD_PLATFORM is not set CONFIG_PMC_ATOM=y # CONFIG_CHROME_PLATFORMS is not set CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y # # Common Clock Framework # # CONFIG_COMMON_CLK_WM831X is not set # CONFIG_CLK_HSDK is not set # CONFIG_COMMON_CLK_MAX77686 is not set # CONFIG_COMMON_CLK_RK808 is not set # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI514 is not set # CONFIG_COMMON_CLK_SI570 is not set # CONFIG_COMMON_CLK_CDCE706 is not set # CONFIG_COMMON_CLK_CDCE925 is not set # CONFIG_COMMON_CLK_CS2000_CP is not set # CONFIG_COMMON_CLK_S2MPS11 is not set # CONFIG_CLK_TWL6040 is not set # CONFIG_COMMON_CLK_NXP is not set # CONFIG_COMMON_CLK_PWM is not set # CONFIG_COMMON_CLK_PXA is not set # CONFIG_COMMON_CLK_PIC32 is not set # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_HWSPINLOCK is not set # # Clock Source drivers # CONFIG_CLKEVT_I8253=y CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y # CONFIG_ATMEL_PIT is not set # 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=y # CONFIG_PLATFORM_MHU is not set # CONFIG_PCC is not set # CONFIG_ALTERA_MBOX is not set CONFIG_MAILBOX_TEST=y CONFIG_IOMMU_SUPPORT=y # # Generic IOMMU Pagetable Support # # CONFIG_AMD_IOMMU is not set # # Remoteproc drivers # CONFIG_REMOTEPROC=y # # Rpmsg drivers # CONFIG_RPMSG=y CONFIG_RPMSG_CHAR=y CONFIG_RPMSG_QCOM_GLINK_NATIVE=y CONFIG_RPMSG_QCOM_GLINK_RPM=y # CONFIG_RPMSG_VIRTIO is not set # # SOC (System On Chip) specific Drivers # # # Amlogic SoC drivers # # # Broadcom SoC drivers # # # i.MX SoC drivers # # # Qualcomm SoC drivers # # CONFIG_SUNXI_SRAM is not set # CONFIG_SOC_TI is not set # CONFIG_PM_DEVFREQ is not set CONFIG_EXTCON=y # # Extcon Device Drivers # # CONFIG_EXTCON_ADC_JACK is not set CONFIG_EXTCON_AXP288=y CONFIG_EXTCON_GPIO=y # CONFIG_EXTCON_INTEL_INT3496 is not set # CONFIG_EXTCON_MAX14577 is not set # CONFIG_EXTCON_MAX3355 is not set CONFIG_EXTCON_MAX77693=y CONFIG_EXTCON_MAX77843=y CONFIG_EXTCON_MAX8997=y CONFIG_EXTCON_RT8973A=y CONFIG_EXTCON_SM5502=y # CONFIG_EXTCON_USB_GPIO is not set # CONFIG_MEMORY is not set CONFIG_IIO=y CONFIG_IIO_BUFFER=y CONFIG_IIO_BUFFER_CB=y CONFIG_IIO_KFIFO_BUF=y CONFIG_IIO_TRIGGERED_BUFFER=y CONFIG_IIO_CONFIGFS=y CONFIG_IIO_TRIGGER=y CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_IIO_SW_DEVICE is not set CONFIG_IIO_SW_TRIGGER=y CONFIG_IIO_TRIGGERED_EVENT=y # # Accelerometers # CONFIG_BMA180=y CONFIG_BMA220=y CONFIG_BMC150_ACCEL=y CONFIG_BMC150_ACCEL_I2C=y CONFIG_BMC150_ACCEL_SPI=y CONFIG_DA280=y CONFIG_DA311=y CONFIG_DMARD06=y CONFIG_DMARD09=y # CONFIG_DMARD10 is not set CONFIG_IIO_CROS_EC_ACCEL_LEGACY=y CONFIG_KXSD9=y CONFIG_KXSD9_SPI=y CONFIG_KXSD9_I2C=y CONFIG_KXCJK1013=y CONFIG_MC3230=y CONFIG_MMA7455=y CONFIG_MMA7455_I2C=y # CONFIG_MMA7455_SPI is not set CONFIG_MMA7660=y CONFIG_MMA8452=y CONFIG_MMA9551_CORE=y # CONFIG_MMA9551 is not set CONFIG_MMA9553=y CONFIG_MXC4005=y CONFIG_MXC6255=y # CONFIG_SCA3000 is not set CONFIG_STK8312=y CONFIG_STK8BA50=y # # Analog to digital converters # CONFIG_AD_SIGMA_DELTA=y CONFIG_AD7266=y CONFIG_AD7291=y # CONFIG_AD7298 is not set CONFIG_AD7476=y CONFIG_AD7766=y CONFIG_AD7791=y CONFIG_AD7793=y CONFIG_AD7887=y # CONFIG_AD7923 is not set # CONFIG_AD799X is not set CONFIG_AXP20X_ADC=y CONFIG_AXP288_ADC=y # CONFIG_CC10001_ADC is not set CONFIG_CPCAP_ADC=y # CONFIG_DA9150_GPADC is not set CONFIG_ENVELOPE_DETECTOR=y CONFIG_HI8435=y CONFIG_HX711=y CONFIG_INA2XX_ADC=y # CONFIG_LP8788_ADC is not set CONFIG_LTC2471=y CONFIG_LTC2485=y # CONFIG_LTC2497 is not set CONFIG_MAX1027=y # CONFIG_MAX11100 is not set CONFIG_MAX1118=y CONFIG_MAX1363=y CONFIG_MAX9611=y CONFIG_MCP320X=y CONFIG_MCP3422=y CONFIG_MEN_Z188_ADC=y CONFIG_NAU7802=y CONFIG_QCOM_VADC_COMMON=y CONFIG_QCOM_SPMI_IADC=y CONFIG_QCOM_SPMI_VADC=y CONFIG_TI_ADC081C=y CONFIG_TI_ADC0832=y # CONFIG_TI_ADC084S021 is not set CONFIG_TI_ADC12138=y CONFIG_TI_ADC108S102=y CONFIG_TI_ADC128S052=y CONFIG_TI_ADC161S626=y # CONFIG_TI_ADS1015 is not set # CONFIG_TI_ADS7950 is not set CONFIG_TI_ADS8688=y # CONFIG_TI_TLC4541 is not set CONFIG_TWL4030_MADC=y CONFIG_TWL6030_GPADC=y CONFIG_VF610_ADC=y # CONFIG_VIPERBOARD_ADC is not set # # Amplifiers # CONFIG_AD8366=y # # Chemical Sensors # CONFIG_ATLAS_PH_SENSOR=y CONFIG_CCS811=y CONFIG_IAQCORE=y CONFIG_VZ89X=y # # Hid Sensor IIO Common # CONFIG_IIO_MS_SENSORS_I2C=y # # SSP Sensor Common # # CONFIG_IIO_SSP_SENSORHUB is not set CONFIG_IIO_ST_SENSORS_I2C=y CONFIG_IIO_ST_SENSORS_SPI=y CONFIG_IIO_ST_SENSORS_CORE=y # # Counters # # # Digital to analog converters # CONFIG_AD5064=y CONFIG_AD5360=y CONFIG_AD5380=y CONFIG_AD5421=y CONFIG_AD5446=y # CONFIG_AD5449 is not set CONFIG_AD5592R_BASE=y # CONFIG_AD5592R is not set CONFIG_AD5593R=y CONFIG_AD5504=y CONFIG_AD5624R_SPI=y CONFIG_LTC2632=y CONFIG_AD5686=y CONFIG_AD5755=y CONFIG_AD5761=y CONFIG_AD5764=y CONFIG_AD5791=y CONFIG_AD7303=y CONFIG_AD8801=y # CONFIG_DPOT_DAC is not set # CONFIG_DS4424 is not set CONFIG_M62332=y CONFIG_MAX517=y CONFIG_MAX5821=y CONFIG_MCP4725=y CONFIG_MCP4922=y CONFIG_TI_DAC082S085=y # CONFIG_VF610_DAC is not set # # IIO dummy driver # # # Frequency Synthesizers DDS/PLL # # # Clock Generator/Distribution # CONFIG_AD9523=y # # Phase-Locked Loop (PLL) frequency synthesizers # CONFIG_ADF4350=y # # Digital gyroscope sensors # CONFIG_ADIS16080=y CONFIG_ADIS16130=y # CONFIG_ADIS16136 is not set CONFIG_ADIS16260=y # CONFIG_ADXRS450 is not set CONFIG_BMG160=y CONFIG_BMG160_I2C=y CONFIG_BMG160_SPI=y CONFIG_MPU3050=y CONFIG_MPU3050_I2C=y CONFIG_IIO_ST_GYRO_3AXIS=y CONFIG_IIO_ST_GYRO_I2C_3AXIS=y CONFIG_IIO_ST_GYRO_SPI_3AXIS=y # CONFIG_ITG3200 is not set # # Health Sensors # # # Heart Rate Monitors # CONFIG_AFE4403=y CONFIG_AFE4404=y CONFIG_MAX30100=y CONFIG_MAX30102=y # # Humidity sensors # # CONFIG_AM2315 is not set # CONFIG_DHT11 is not set # CONFIG_HDC100X is not set CONFIG_HTS221=y CONFIG_HTS221_I2C=y CONFIG_HTS221_SPI=y # CONFIG_HTU21 is not set # CONFIG_SI7005 is not set # CONFIG_SI7020 is not set # # Inertial measurement units # # CONFIG_ADIS16400 is not set CONFIG_ADIS16480=y CONFIG_BMI160=y # CONFIG_BMI160_I2C is not set CONFIG_BMI160_SPI=y # CONFIG_KMX61 is not set CONFIG_INV_MPU6050_IIO=y CONFIG_INV_MPU6050_I2C=y # CONFIG_INV_MPU6050_SPI is not set CONFIG_IIO_ST_LSM6DSX=y CONFIG_IIO_ST_LSM6DSX_I2C=y CONFIG_IIO_ST_LSM6DSX_SPI=y CONFIG_IIO_ADIS_LIB=y CONFIG_IIO_ADIS_LIB_BUFFER=y # # Light sensors # # CONFIG_ACPI_ALS is not set CONFIG_ADJD_S311=y CONFIG_AL3320A=y CONFIG_APDS9300=y # CONFIG_APDS9960 is not set # CONFIG_BH1750 is not set CONFIG_BH1780=y CONFIG_CM32181=y CONFIG_CM3232=y # CONFIG_CM3323 is not set # CONFIG_CM3605 is not set CONFIG_CM36651=y CONFIG_GP2AP020A00F=y CONFIG_SENSORS_ISL29018=y # CONFIG_SENSORS_ISL29028 is not set # CONFIG_ISL29125 is not set CONFIG_JSA1212=y CONFIG_RPR0521=y CONFIG_LTR501=y CONFIG_MAX44000=y CONFIG_OPT3001=y CONFIG_PA12203001=y # CONFIG_SI1145 is not set # CONFIG_STK3310 is not set CONFIG_TCS3414=y CONFIG_TCS3472=y CONFIG_SENSORS_TSL2563=y # CONFIG_TSL2583 is not set CONFIG_TSL4531=y # CONFIG_US5182D is not set # CONFIG_VCNL4000 is not set CONFIG_VEML6070=y CONFIG_VL6180=y # # Magnetometer sensors # CONFIG_AK8974=y CONFIG_AK8975=y CONFIG_AK09911=y CONFIG_BMC150_MAGN=y CONFIG_BMC150_MAGN_I2C=y CONFIG_BMC150_MAGN_SPI=y CONFIG_MAG3110=y CONFIG_MMC35240=y # CONFIG_IIO_ST_MAGN_3AXIS is not set # CONFIG_SENSORS_HMC5843_I2C is not set # CONFIG_SENSORS_HMC5843_SPI is not set # # Multiplexers # CONFIG_IIO_MUX=y # # Inclinometer sensors # # # Triggers - standalone # CONFIG_IIO_HRTIMER_TRIGGER=y CONFIG_IIO_INTERRUPT_TRIGGER=y # CONFIG_IIO_TIGHTLOOP_TRIGGER is not set # CONFIG_IIO_SYSFS_TRIGGER is not set # # Digital potentiometers # CONFIG_DS1803=y # CONFIG_MAX5481 is not set # CONFIG_MAX5487 is not set # CONFIG_MCP4131 is not set CONFIG_MCP4531=y # CONFIG_TPL0102 is not set # # Digital potentiostats # CONFIG_LMP91000=y # # Pressure sensors # CONFIG_ABP060MG=y CONFIG_BMP280=y CONFIG_BMP280_I2C=y CONFIG_BMP280_SPI=y CONFIG_HP03=y CONFIG_MPL115=y # CONFIG_MPL115_I2C is not set CONFIG_MPL115_SPI=y # CONFIG_MPL3115 is not set # CONFIG_MS5611 is not set CONFIG_MS5637=y CONFIG_IIO_ST_PRESS=y CONFIG_IIO_ST_PRESS_I2C=y CONFIG_IIO_ST_PRESS_SPI=y CONFIG_T5403=y CONFIG_HP206C=y CONFIG_ZPA2326=y CONFIG_ZPA2326_I2C=y CONFIG_ZPA2326_SPI=y # # Lightning sensors # # CONFIG_AS3935 is not set # # Proximity and distance sensors # CONFIG_LIDAR_LITE_V2=y CONFIG_RFD77402=y CONFIG_SRF04=y CONFIG_SX9500=y CONFIG_SRF08=y # # Temperature sensors # CONFIG_MAXIM_THERMOCOUPLE=y CONFIG_MLX90614=y CONFIG_TMP006=y CONFIG_TMP007=y CONFIG_TSYS01=y CONFIG_TSYS02D=y # CONFIG_NTB is not set # CONFIG_VME_BUS is not set CONFIG_PWM=y CONFIG_PWM_SYSFS=y CONFIG_PWM_FSL_FTM=y CONFIG_PWM_LP3943=y # CONFIG_PWM_LPSS_PCI is not set # CONFIG_PWM_LPSS_PLATFORM is not set CONFIG_PWM_PCA9685=y CONFIG_PWM_TWL=y CONFIG_PWM_TWL_LED=y # # IRQ chip support # CONFIG_IRQCHIP=y CONFIG_ARM_GIC_MAX_NR=1 # CONFIG_ARM_GIC_V3_ITS is not set CONFIG_IPACK_BUS=y # CONFIG_BOARD_TPCI200 is not set CONFIG_SERIAL_IPOCTAL=y CONFIG_RESET_CONTROLLER=y # CONFIG_RESET_ATH79 is not set # CONFIG_RESET_AXS10X is not set # CONFIG_RESET_BERLIN is not set # CONFIG_RESET_IMX7 is not set # CONFIG_RESET_LANTIQ is not set # CONFIG_RESET_LPC18XX is not set # CONFIG_RESET_MESON is not set # CONFIG_RESET_PISTACHIO is not set # CONFIG_RESET_SIMPLE is not set # CONFIG_RESET_SUNXI is not set CONFIG_RESET_TI_SYSCON=y # CONFIG_RESET_ZYNQ is not set # CONFIG_RESET_TEGRA_BPMP is not set CONFIG_FMC=y CONFIG_FMC_FAKEDEV=y CONFIG_FMC_TRIVIAL=y # CONFIG_FMC_WRITE_EEPROM is not set # CONFIG_FMC_CHARDEV is not set # # PHY Subsystem # CONFIG_GENERIC_PHY=y CONFIG_BCM_KONA_USB2_PHY=y CONFIG_PHY_PXA_28NM_HSIC=y # CONFIG_PHY_PXA_28NM_USB2 is not set CONFIG_PHY_CPCAP_USB=y CONFIG_POWERCAP=y CONFIG_MCB=y # CONFIG_MCB_PCI is not set # CONFIG_MCB_LPC is not set # # Performance monitor support # CONFIG_RAS=y # CONFIG_THUNDERBOLT is not set # # Android # # CONFIG_ANDROID is not set # CONFIG_DAX is not set CONFIG_NVMEM=y # CONFIG_STM is not set CONFIG_INTEL_TH=y # CONFIG_INTEL_TH_PCI is not set # CONFIG_INTEL_TH_GTH is not set # CONFIG_INTEL_TH_MSU is not set CONFIG_INTEL_TH_PTI=y # CONFIG_INTEL_TH_DEBUG is not set # CONFIG_FPGA is not set # # FSI support # # CONFIG_FSI is not set CONFIG_MULTIPLEXER=y # # Multiplexer drivers # CONFIG_MUX_ADG792A=y CONFIG_MUX_GPIO=y # CONFIG_MUX_MMIO is not set # # Firmware Drivers # CONFIG_EDD=y CONFIG_EDD_OFF=y # CONFIG_FIRMWARE_MEMMAP is not set # CONFIG_DELL_RBU is not set CONFIG_DCDBAS=y # CONFIG_ISCSI_IBFT_FIND is not set # CONFIG_FW_CFG_SYSFS is not set CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_COREBOOT_TABLE_ACPI is not set # CONFIG_GOOGLE_COREBOOT_TABLE_OF is not set # CONFIG_EFI_DEV_PATH_PARSER is not set # # Tegra firmware driver # # # File systems # CONFIG_DCACHE_WORD_ACCESS=y # CONFIG_FS_POSIX_ACL is not set CONFIG_EXPORTFS=y CONFIG_EXPORTFS_BLOCK_OPS=y CONFIG_FILE_LOCKING=y # CONFIG_MANDATORY_FILE_LOCKING is not set CONFIG_FS_ENCRYPTION=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y # CONFIG_QUOTA is not set # CONFIG_QUOTACTL is not set # CONFIG_AUTOFS4_FS is not set # CONFIG_FUSE_FS is not set CONFIG_OVERLAY_FS=y CONFIG_OVERLAY_FS_REDIRECT_DIR=y # CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW is not set # CONFIG_OVERLAY_FS_INDEX is not set # # Caches # CONFIG_FSCACHE=y # CONFIG_FSCACHE_STATS is not set # CONFIG_FSCACHE_HISTOGRAM is not set CONFIG_FSCACHE_DEBUG=y # CONFIG_FSCACHE_OBJECT_LIST is not set # # Pseudo filesystems # CONFIG_PROC_FS=y # CONFIG_PROC_KCORE is not set CONFIG_PROC_VMCORE=y CONFIG_PROC_SYSCTL=y CONFIG_PROC_PAGE_MONITOR=y # CONFIG_PROC_CHILDREN is not set CONFIG_KERNFS=y CONFIG_SYSFS=y CONFIG_TMPFS=y # CONFIG_TMPFS_POSIX_ACL is not set # CONFIG_TMPFS_XATTR is not set CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_CONFIGFS_FS=y CONFIG_MISC_FILESYSTEMS=y # CONFIG_ORANGEFS_FS is not set CONFIG_ECRYPT_FS=y CONFIG_ECRYPT_FS_MESSAGING=y CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 # CONFIG_JFFS2_FS_WRITEBUFFER is not set # CONFIG_JFFS2_SUMMARY is not set # CONFIG_JFFS2_FS_XATTR is not set CONFIG_JFFS2_COMPRESSION_OPTIONS=y CONFIG_JFFS2_ZLIB=y # CONFIG_JFFS2_LZO is not set # CONFIG_JFFS2_RTIME is not set # CONFIG_JFFS2_RUBIN is not set # CONFIG_JFFS2_CMODE_NONE is not set CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_JFFS2_CMODE_SIZE is not set # CONFIG_JFFS2_CMODE_FAVOURLZO is not set CONFIG_UBIFS_FS=y CONFIG_UBIFS_FS_ADVANCED_COMPR=y # CONFIG_UBIFS_FS_LZO is not set # CONFIG_UBIFS_FS_ZLIB is not set CONFIG_UBIFS_ATIME_SUPPORT=y # CONFIG_UBIFS_FS_SECURITY is not set # CONFIG_CRAMFS is not set CONFIG_ROMFS_FS=y CONFIG_ROMFS_BACKED_BY_MTD=y CONFIG_ROMFS_ON_MTD=y CONFIG_PSTORE=y # CONFIG_PSTORE_ZLIB_COMPRESS is not set CONFIG_PSTORE_LZO_COMPRESS=y # CONFIG_PSTORE_LZ4_COMPRESS is not set CONFIG_PSTORE_CONSOLE=y # CONFIG_PSTORE_PMSG is not set # CONFIG_PSTORE_RAM is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=y CONFIG_NFS_V2=y CONFIG_NFS_V3=y # CONFIG_NFS_V3_ACL is not set CONFIG_NFS_V4=y # CONFIG_NFS_SWAP is not set # CONFIG_NFS_V4_1 is not set # CONFIG_ROOT_NFS is not set # CONFIG_NFS_FSCACHE is not set # CONFIG_NFS_USE_LEGACY_DNS is not set CONFIG_NFS_USE_KERNEL_DNS=y CONFIG_NFSD=y # CONFIG_NFSD_V3 is not set # CONFIG_NFSD_V4 is not set CONFIG_GRACE_PERIOD=y CONFIG_LOCKD=y CONFIG_LOCKD_V4=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y CONFIG_SUNRPC_GSS=y CONFIG_RPCSEC_GSS_KRB5=y # CONFIG_SUNRPC_DEBUG is not set CONFIG_SUNRPC_XPRT_RDMA=y CONFIG_CEPH_FS=y # CONFIG_CEPH_FSCACHE is not set # CONFIG_CEPH_FS_POSIX_ACL is not set CONFIG_CIFS=y CONFIG_CIFS_STATS=y CONFIG_CIFS_STATS2=y # CONFIG_CIFS_WEAK_PW_HASH is not set # CONFIG_CIFS_UPCALL is not set CONFIG_CIFS_XATTR=y # CONFIG_CIFS_POSIX is not set # CONFIG_CIFS_ACL is not set # CONFIG_CIFS_DEBUG is not set CONFIG_CIFS_DFS_UPCALL=y CONFIG_CIFS_SMB311=y CONFIG_CIFS_FSCACHE=y # CONFIG_NCP_FS is not set CONFIG_CODA_FS=y CONFIG_AFS_FS=y # CONFIG_AFS_DEBUG is not set CONFIG_AFS_FSCACHE=y # CONFIG_9P_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=y CONFIG_NLS_CODEPAGE_850=y CONFIG_NLS_CODEPAGE_852=y CONFIG_NLS_CODEPAGE_855=y # 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=y # CONFIG_NLS_CODEPAGE_863 is not set CONFIG_NLS_CODEPAGE_864=y CONFIG_NLS_CODEPAGE_865=y CONFIG_NLS_CODEPAGE_866=y CONFIG_NLS_CODEPAGE_869=y CONFIG_NLS_CODEPAGE_936=y # CONFIG_NLS_CODEPAGE_950 is not set CONFIG_NLS_CODEPAGE_932=y # CONFIG_NLS_CODEPAGE_949 is not set CONFIG_NLS_CODEPAGE_874=y CONFIG_NLS_ISO8859_8=y CONFIG_NLS_CODEPAGE_1250=y CONFIG_NLS_CODEPAGE_1251=y CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y CONFIG_NLS_ISO8859_2=y CONFIG_NLS_ISO8859_3=y CONFIG_NLS_ISO8859_4=y # CONFIG_NLS_ISO8859_5 is not set CONFIG_NLS_ISO8859_6=y # CONFIG_NLS_ISO8859_7 is not set # CONFIG_NLS_ISO8859_9 is not set CONFIG_NLS_ISO8859_13=y # CONFIG_NLS_ISO8859_14 is not set CONFIG_NLS_ISO8859_15=y CONFIG_NLS_KOI8_R=y CONFIG_NLS_KOI8_U=y # CONFIG_NLS_MAC_ROMAN is not set CONFIG_NLS_MAC_CELTIC=y # CONFIG_NLS_MAC_CENTEURO is not set CONFIG_NLS_MAC_CROATIAN=y # 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=y CONFIG_NLS_MAC_INUIT=y CONFIG_NLS_MAC_ROMANIAN=y CONFIG_NLS_MAC_TURKISH=y CONFIG_NLS_UTF8=y CONFIG_DLM=y # CONFIG_DLM_DEBUG is not set # # Kernel hacking # CONFIG_TRACE_IRQFLAGS_SUPPORT=y # # printk and dmesg options # CONFIG_PRINTK_TIME=y CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_DYNAMIC_DEBUG is not set # # Compile-time checks and compiler options # CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO_REDUCED=y # CONFIG_DEBUG_INFO_SPLIT is not set # CONFIG_DEBUG_INFO_DWARF4 is not set # CONFIG_GDB_SCRIPTS is not set # CONFIG_ENABLE_WARN_DEPRECATED is not set # CONFIG_ENABLE_MUST_CHECK is not set CONFIG_FRAME_WARN=8192 # CONFIG_STRIP_ASM_SYMS is not set # CONFIG_READABLE_ASM is not set # CONFIG_UNUSED_SYMBOLS is not set CONFIG_PAGE_OWNER=y CONFIG_DEBUG_FS=y CONFIG_HEADERS_CHECK=y CONFIG_DEBUG_SECTION_MISMATCH=y CONFIG_SECTION_MISMATCH_WARN_ONLY=y CONFIG_FRAME_POINTER=y CONFIG_STACK_VALIDATION=y # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_DEBUG_KERNEL=y # # Memory Debugging # CONFIG_PAGE_EXTENSION=y CONFIG_DEBUG_PAGEALLOC=y # CONFIG_DEBUG_PAGEALLOC_ENABLE_DEFAULT is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_PAGE_REF is not set CONFIG_DEBUG_RODATA_TEST=y CONFIG_DEBUG_OBJECTS=y CONFIG_DEBUG_OBJECTS_SELFTEST=y # CONFIG_DEBUG_OBJECTS_FREE is not set # CONFIG_DEBUG_OBJECTS_TIMERS is not set # CONFIG_DEBUG_OBJECTS_WORK is not set # CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 CONFIG_SLUB_DEBUG_ON=y # CONFIG_SLUB_STATS 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_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y CONFIG_HAVE_DEBUG_STACKOVERFLOW=y CONFIG_DEBUG_STACKOVERFLOW=y CONFIG_HAVE_ARCH_KASAN=y CONFIG_KASAN=y CONFIG_KASAN_OUTLINE=y # CONFIG_KASAN_INLINE is not set CONFIG_ARCH_HAS_KCOV=y CONFIG_KCOV=y CONFIG_KCOV_ENABLE_COMPARISONS=y # CONFIG_KCOV_INSTRUMENT_ALL is not set CONFIG_DEBUG_SHIRQ=y # # Debug Lockups and Hangs # CONFIG_LOCKUP_DETECTOR=y CONFIG_SOFTLOCKUP_DETECTOR=y CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y # CONFIG_HARDLOCKUP_DETECTOR is not set CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1 CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1 CONFIG_WQ_WATCHDOG=y # CONFIG_PANIC_ON_OOPS is not set CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=0 CONFIG_SCHED_DEBUG=y CONFIG_SCHED_INFO=y # CONFIG_SCHEDSTATS is not set CONFIG_SCHED_STACK_END_CHECK=y CONFIG_DEBUG_TIMEKEEPING=y # # Lock Debugging (spinlocks, mutexes, etc...) # CONFIG_DEBUG_RT_MUTEXES=y CONFIG_DEBUG_SPINLOCK=y CONFIG_DEBUG_MUTEXES=y # CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set CONFIG_DEBUG_LOCK_ALLOC=y # CONFIG_PROVE_LOCKING is not set CONFIG_LOCKDEP=y CONFIG_LOCK_STAT=y CONFIG_DEBUG_LOCKDEP=y CONFIG_DEBUG_ATOMIC_SLEEP=y CONFIG_DEBUG_LOCKING_API_SELFTESTS=y # CONFIG_LOCK_TORTURE_TEST is not set CONFIG_WW_MUTEX_SELFTEST=y CONFIG_TRACE_IRQFLAGS=y CONFIG_STACKTRACE=y # CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_LIST is not set CONFIG_DEBUG_PI_LIST=y # CONFIG_DEBUG_SG is not set CONFIG_DEBUG_NOTIFIERS=y # CONFIG_DEBUG_CREDENTIALS is not set # # RCU Debugging # # CONFIG_PROVE_RCU is not set CONFIG_TORTURE_TEST=y # CONFIG_RCU_PERF_TEST is not set CONFIG_RCU_TORTURE_TEST=y # CONFIG_RCU_TRACE is not set CONFIG_RCU_EQS_DEBUG=y CONFIG_DEBUG_WQ_FORCE_RR_CPU=y # CONFIG_NOTIFIER_ERROR_INJECTION is not set # CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_FENTRY=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACER_MAX_TRACE=y CONFIG_TRACE_CLOCK=y CONFIG_RING_BUFFER=y CONFIG_EVENT_TRACING=y CONFIG_CONTEXT_SWITCH_TRACER=y CONFIG_RING_BUFFER_ALLOW_SWAP=y CONFIG_TRACING=y CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y CONFIG_FTRACE=y # CONFIG_FUNCTION_TRACER is not set # CONFIG_PREEMPTIRQ_EVENTS is not set CONFIG_IRQSOFF_TRACER=y CONFIG_SCHED_TRACER=y # CONFIG_HWLAT_TRACER is not set # CONFIG_FTRACE_SYSCALLS is not set CONFIG_TRACER_SNAPSHOT=y CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y CONFIG_TRACE_BRANCH_PROFILING=y # CONFIG_BRANCH_PROFILE_NONE is not set # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set CONFIG_PROFILE_ALL_BRANCHES=y CONFIG_TRACING_BRANCHES=y CONFIG_BRANCH_TRACER=y # CONFIG_STACK_TRACER is not set CONFIG_UPROBE_EVENTS=y CONFIG_BPF_EVENTS=y CONFIG_PROBE_EVENTS=y # CONFIG_FTRACE_STARTUP_TEST is not set # CONFIG_MMIOTRACE is not set CONFIG_TRACING_MAP=y CONFIG_HIST_TRIGGERS=y # CONFIG_TRACEPOINT_BENCHMARK is not set CONFIG_RING_BUFFER_BENCHMARK=y # CONFIG_RING_BUFFER_STARTUP_TEST is not set # CONFIG_TRACE_EVAL_MAP_FILE is not set # CONFIG_TRACING_EVENTS_GPIO is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_DMA_API_DEBUG is not set # # Runtime Testing # CONFIG_TEST_LIST_SORT=y # CONFIG_TEST_SORT is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_RBTREE_TEST=y CONFIG_INTERVAL_TREE_TEST=y CONFIG_ATOMIC64_SELFTEST=y CONFIG_TEST_HEXDUMP=y CONFIG_TEST_STRING_HELPERS=y CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_PRINTF is not set # CONFIG_TEST_BITMAP is not set CONFIG_TEST_UUID=y CONFIG_TEST_RHASHTABLE=y # CONFIG_TEST_HASH is not set # CONFIG_TEST_FIND_BIT is not set CONFIG_TEST_FIRMWARE=y # CONFIG_TEST_SYSCTL is not set CONFIG_TEST_UDELAY=y # CONFIG_MEMTEST is not set # CONFIG_BUG_ON_DATA_CORRUPTION is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y # CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set # CONFIG_UBSAN is not set CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y # CONFIG_STRICT_DEVMEM is not set CONFIG_X86_VERBOSE_BOOTUP=y # CONFIG_EARLY_PRINTK is not set CONFIG_X86_PTDUMP_CORE=y CONFIG_X86_PTDUMP=y CONFIG_DEBUG_WX=y CONFIG_DOUBLEFAULT=y # CONFIG_DEBUG_TLBFLUSH is not set # CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y CONFIG_IO_DELAY_TYPE_0X80=0 CONFIG_IO_DELAY_TYPE_0XED=1 CONFIG_IO_DELAY_TYPE_UDELAY=2 CONFIG_IO_DELAY_TYPE_NONE=3 # CONFIG_IO_DELAY_0X80 is not set # CONFIG_IO_DELAY_0XED is not set # CONFIG_IO_DELAY_UDELAY is not set CONFIG_IO_DELAY_NONE=y CONFIG_DEFAULT_IO_DELAY_TYPE=3 CONFIG_DEBUG_BOOT_PARAMS=y # CONFIG_CPA_DEBUG is not set CONFIG_OPTIMIZE_INLINING=y # CONFIG_DEBUG_ENTRY is not set CONFIG_DEBUG_NMI_SELFTEST=y CONFIG_X86_DEBUG_FPU=y # CONFIG_PUNIT_ATOM_DEBUG is not set # CONFIG_UNWINDER_ORC is not set CONFIG_UNWINDER_FRAME_POINTER=y # # Security options # CONFIG_KEYS=y CONFIG_KEYS_COMPAT=y CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_BIG_KEYS is not set # CONFIG_TRUSTED_KEYS is not set CONFIG_ENCRYPTED_KEYS=y # CONFIG_KEY_DH_OPERATIONS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set CONFIG_SECURITYFS=y CONFIG_PAGE_TABLE_ISOLATION=y CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y CONFIG_HARDENED_USERCOPY=y # CONFIG_HARDENED_USERCOPY_PAGESPAN is not set # CONFIG_FORTIFY_SOURCE is not set CONFIG_STATIC_USERMODEHELPER=y CONFIG_STATIC_USERMODEHELPER_PATH="/sbin/usermode-helper" 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=y CONFIG_CRYPTO_AEAD2=y CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG_DEFAULT=y CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_KPP2=y CONFIG_CRYPTO_KPP=y CONFIG_CRYPTO_ACOMP2=y # CONFIG_CRYPTO_RSA is not set CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_ECDH=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y # CONFIG_CRYPTO_USER is not set CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_MCRYPTD=y CONFIG_CRYPTO_AUTHENC=y CONFIG_CRYPTO_ABLK_HELPER=y CONFIG_CRYPTO_SIMD=y CONFIG_CRYPTO_GLUE_HELPER_X86=y CONFIG_CRYPTO_ENGINE=y # # Authenticated Encryption with Associated Data # CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_CHACHA20POLY1305=y CONFIG_CRYPTO_SEQIV=y CONFIG_CRYPTO_ECHAINIV=y # # Block modes # CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=y CONFIG_CRYPTO_ECB=y CONFIG_CRYPTO_LRW=y CONFIG_CRYPTO_PCBC=y CONFIG_CRYPTO_XTS=y CONFIG_CRYPTO_KEYWRAP=y # # Hash modes # CONFIG_CRYPTO_CMAC=y CONFIG_CRYPTO_HMAC=y # CONFIG_CRYPTO_XCBC is not set # CONFIG_CRYPTO_VMAC is not set # # Digest # CONFIG_CRYPTO_CRC32C=y CONFIG_CRYPTO_CRC32C_INTEL=y # CONFIG_CRYPTO_CRC32 is not set CONFIG_CRYPTO_CRC32_PCLMUL=y CONFIG_CRYPTO_CRCT10DIF=y CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_POLY1305=y # CONFIG_CRYPTO_POLY1305_X86_64 is not set CONFIG_CRYPTO_MD4=y CONFIG_CRYPTO_MD5=y # CONFIG_CRYPTO_MICHAEL_MIC is not set # CONFIG_CRYPTO_RMD128 is not set CONFIG_CRYPTO_RMD160=y # CONFIG_CRYPTO_RMD256 is not set CONFIG_CRYPTO_RMD320=y CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA1_SSSE3=y CONFIG_CRYPTO_SHA256_SSSE3=y # CONFIG_CRYPTO_SHA512_SSSE3 is not set CONFIG_CRYPTO_SHA1_MB=y # CONFIG_CRYPTO_SHA256_MB is not set CONFIG_CRYPTO_SHA512_MB=y CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SHA3=y CONFIG_CRYPTO_SM3=y # CONFIG_CRYPTO_TGR192 is not set CONFIG_CRYPTO_WP512=y CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=y # # Ciphers # CONFIG_CRYPTO_AES=y CONFIG_CRYPTO_AES_TI=y CONFIG_CRYPTO_AES_X86_64=y CONFIG_CRYPTO_AES_NI_INTEL=y CONFIG_CRYPTO_ANUBIS=y CONFIG_CRYPTO_ARC4=y CONFIG_CRYPTO_BLOWFISH=y CONFIG_CRYPTO_BLOWFISH_COMMON=y CONFIG_CRYPTO_BLOWFISH_X86_64=y CONFIG_CRYPTO_CAMELLIA=y CONFIG_CRYPTO_CAMELLIA_X86_64=y CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=y CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=y CONFIG_CRYPTO_CAST_COMMON=y CONFIG_CRYPTO_CAST5=y CONFIG_CRYPTO_CAST5_AVX_X86_64=y CONFIG_CRYPTO_CAST6=y CONFIG_CRYPTO_CAST6_AVX_X86_64=y CONFIG_CRYPTO_DES=y CONFIG_CRYPTO_DES3_EDE_X86_64=y CONFIG_CRYPTO_FCRYPT=y # CONFIG_CRYPTO_KHAZAD is not set CONFIG_CRYPTO_SALSA20=y CONFIG_CRYPTO_SALSA20_X86_64=y CONFIG_CRYPTO_CHACHA20=y CONFIG_CRYPTO_CHACHA20_X86_64=y # CONFIG_CRYPTO_SEED is not set CONFIG_CRYPTO_SERPENT=y # CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set CONFIG_CRYPTO_SERPENT_AVX_X86_64=y CONFIG_CRYPTO_SERPENT_AVX2_X86_64=y # CONFIG_CRYPTO_TEA is not set CONFIG_CRYPTO_TWOFISH=y CONFIG_CRYPTO_TWOFISH_COMMON=y CONFIG_CRYPTO_TWOFISH_X86_64=y CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=y CONFIG_CRYPTO_TWOFISH_AVX_X86_64=y # # Compression # CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_LZO=y # CONFIG_CRYPTO_842 is not set CONFIG_CRYPTO_LZ4=y CONFIG_CRYPTO_LZ4HC=y # # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=y CONFIG_CRYPTO_DRBG_MENU=y CONFIG_CRYPTO_DRBG_HMAC=y # CONFIG_CRYPTO_DRBG_HASH is not set # CONFIG_CRYPTO_DRBG_CTR is not set CONFIG_CRYPTO_DRBG=y CONFIG_CRYPTO_JITTERENTROPY=y CONFIG_CRYPTO_USER_API=y # CONFIG_CRYPTO_USER_API_HASH is not set CONFIG_CRYPTO_USER_API_SKCIPHER=y CONFIG_CRYPTO_USER_API_RNG=y CONFIG_CRYPTO_USER_API_AEAD=y CONFIG_CRYPTO_HASH_INFO=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=y CONFIG_CRYPTO_DEV_PADLOCK_AES=y CONFIG_CRYPTO_DEV_PADLOCK_SHA=y # CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set # CONFIG_CRYPTO_DEV_CCP is not set # CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set # CONFIG_CRYPTO_DEV_QAT_C3XXX is not set # CONFIG_CRYPTO_DEV_QAT_C62X is not set # CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set # CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set # CONFIG_CRYPTO_DEV_QAT_C62XVF is not set CONFIG_CRYPTO_DEV_VIRTIO=y # CONFIG_ASYMMETRIC_KEY_TYPE is not set # # Certificates for signature checking # # CONFIG_SYSTEM_BLACKLIST_KEYRING is not set CONFIG_HAVE_KVM=y # CONFIG_VIRTUALIZATION is not set CONFIG_BINARY_PRINTF=y # # Library routines # CONFIG_BITREVERSE=y # CONFIG_HAVE_ARCH_BITREVERSE is not set CONFIG_RATIONAL=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y CONFIG_GENERIC_FIND_FIRST_BIT=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GENERIC_IOMAP=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_ARCH_HAS_FAST_MULTIPLIER=y CONFIG_CRC_CCITT=y CONFIG_CRC16=y # CONFIG_CRC_T10DIF is not set CONFIG_CRC_ITU_T=y 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_CRC4 is not set CONFIG_CRC7=y CONFIG_LIBCRC32C=y # CONFIG_CRC8 is not set # CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set CONFIG_RANDOM32_SELFTEST=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_LZ4_COMPRESS=y CONFIG_LZ4HC_COMPRESS=y CONFIG_LZ4_DECOMPRESS=y CONFIG_XZ_DEC=y CONFIG_XZ_DEC_X86=y # CONFIG_XZ_DEC_POWERPC is not set # CONFIG_XZ_DEC_IA64 is not set CONFIG_XZ_DEC_ARM=y CONFIG_XZ_DEC_ARMTHUMB=y CONFIG_XZ_DEC_SPARC=y CONFIG_XZ_DEC_BCJ=y CONFIG_XZ_DEC_TEST=y CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y CONFIG_DECOMPRESS_LZ4=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_BCH=y CONFIG_BCH_CONST_PARAMS=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=y CONFIG_TEXTSEARCH_BM=y CONFIG_TEXTSEARCH_FSM=y CONFIG_INTERVAL_TREE=y CONFIG_RADIX_TREE_MULTIORDER=y CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y # CONFIG_DMA_NOOP_OPS is not set # CONFIG_DMA_VIRT_OPS is not set CONFIG_CHECK_SIGNATURE=y CONFIG_DQL=y CONFIG_GLOB=y CONFIG_GLOB_SELFTEST=y CONFIG_NLATTR=y CONFIG_CLZ_TAB=y # CONFIG_CORDIC is not set CONFIG_DDR=y CONFIG_IRQ_POLL=y CONFIG_MPILIB=y CONFIG_LIBFDT=y CONFIG_OID_REGISTRY=y # CONFIG_SG_SPLIT is not set CONFIG_SG_POOL=y CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_ARCH_HAS_PMEM_API=y CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y CONFIG_STACKDEPOT=y CONFIG_STRING_SELFTEST=y #!/bin/sh export_top_env() { export suite='boot' export testcase='boot' export timeout='10m' export job_origin='/lkp/lkp/src/jobs/boot.yaml' export queue='bisect' export testbox='vm-lkp-nex04-yocto-x86_64-29' export tbox_group='vm-lkp-nex04-yocto-x86_64' export branch='linux-devel/devel-hourly-2018021313' export commit='3cd2e64830059791297a2f7817b41557a60f9234' export kconfig='x86_64-randconfig-ws0-02131753' export submit_id='5a87dba40b9a93ce49edb1fd' export job_file='/lkp/scheduled/vm-lkp-nex04-yocto-x86_64-29/boot-1-yocto-minimal-x86_64-2016-04-22.cgz-3cd2e64830059791297a2f7817b41557a60f9234-20180217-52809-f8gx9u-0.yaml' export id='e7fdcaa17a897a1eccc7adf2dd6664cc9114b6d8' export model='qemu-system-x86_64 -enable-kvm' export nr_vm=32 export nr_cpu=1 export memory='512M' export rootfs='yocto-minimal-x86_64-2016-04-22.cgz' export swap_partitions='/dev/vda' export need_kconfig='CONFIG_KVM_GUEST=y' export compiler='gcc-7' export enqueue_time='2018-02-17 15:37:09 +0800' export _id='5a87dba40b9a93ce49edb1fd' export _rt='/result/boot/1/vm-lkp-nex04-yocto-x86_64/yocto-minimal-x86_64-2016-04-22.cgz/x86_64-randconfig-ws0-02131753/gcc-7/3cd2e64830059791297a2f7817b41557a60f9234' export user='lkp' export result_root='/result/boot/1/vm-lkp-nex04-yocto-x86_64/yocto-minimal-x86_64-2016-04-22.cgz/x86_64-randconfig-ws0-02131753/gcc-7/3cd2e64830059791297a2f7817b41557a60f9234/0' export LKP_SERVER='inn' export max_uptime=600 export initrd='/osimage/yocto/yocto-minimal-x86_64-2016-04-22.cgz' export bootloader_append='root=/dev/ram0 user=lkp job=/lkp/scheduled/vm-lkp-nex04-yocto-x86_64-29/boot-1-yocto-minimal-x86_64-2016-04-22.cgz-3cd2e64830059791297a2f7817b41557a60f9234-20180217-52809-f8gx9u-0.yaml ARCH=x86_64 kconfig=x86_64-randconfig-ws0-02131753 branch=linux-devel/devel-hourly-2018021313 commit=3cd2e64830059791297a2f7817b41557a60f9234 BOOT_IMAGE=/pkg/linux/x86_64-randconfig-ws0-02131753/gcc-7/3cd2e64830059791297a2f7817b41557a60f9234/vmlinuz-4.15.0-rc8-01510-g3cd2e64 max_uptime=600 RESULT_ROOT=/result/boot/1/vm-lkp-nex04-yocto-x86_64/yocto-minimal-x86_64-2016-04-22.cgz/x86_64-randconfig-ws0-02131753/gcc-7/3cd2e64830059791297a2f7817b41557a60f9234/0 LKP_SERVER=inn debug apic=debug sysrq_always_enabled rcupdate.rcu_cpu_stall_timeout=100 net.ifnames=0 printk.devkmsg=on panic=-1 softlockup_panic=1 nmi_watchdog=panic oops=panic load_ramdisk=2 prompt_ramdisk=0 drbd.minor_count=8 systemd.log_level=err ignore_loglevel console=tty0 earlyprintk=ttyS0,115200 console=ttyS0,115200 vga=normal rw' export lkp_initrd='/lkp/lkp/lkp-x86_64.cgz' export site='inn' export LKP_CGI_PORT=80 export LKP_CIFS_PORT=139 export kernel='/pkg/linux/x86_64-randconfig-ws0-02131753/gcc-7/3cd2e64830059791297a2f7817b41557a60f9234/vmlinuz-4.15.0-rc8-01510-g3cd2e64' export dequeue_time='2018-02-17 15:37:25 +0800' export job_initrd='/lkp/scheduled/vm-lkp-nex04-yocto-x86_64-29/boot-1-yocto-minimal-x86_64-2016-04-22.cgz-3cd2e64830059791297a2f7817b41557a60f9234-20180217-52809-f8gx9u-0.cgz' [ -n "$LKP_SRC" ] || export LKP_SRC=/lkp/${user:-lkp}/src } run_job() { echo $$ > $TMP/run-job.pid . $LKP_SRC/lib/http.sh . $LKP_SRC/lib/job.sh . $LKP_SRC/lib/env.sh export_top_env run_monitor $LKP_SRC/monitors/one-shot/wrapper boot-slabinfo run_monitor $LKP_SRC/monitors/one-shot/wrapper boot-meminfo run_monitor $LKP_SRC/monitors/one-shot/wrapper memmap run_monitor $LKP_SRC/monitors/no-stdout/wrapper boot-time run_monitor $LKP_SRC/monitors/wrapper kmsg run_monitor $LKP_SRC/monitors/wrapper oom-killer run_monitor $LKP_SRC/monitors/plain/watchdog run_test $LKP_SRC/tests/wrapper sleep 1 } extract_stats() { $LKP_SRC/stats/wrapper boot-slabinfo $LKP_SRC/stats/wrapper boot-meminfo $LKP_SRC/stats/wrapper memmap $LKP_SRC/stats/wrapper boot-memory $LKP_SRC/stats/wrapper boot-time $LKP_SRC/stats/wrapper kernel-size $LKP_SRC/stats/wrapper kmsg $LKP_SRC/stats/wrapper time sleep.time $LKP_SRC/stats/wrapper time $LKP_SRC/stats/wrapper dmesg $LKP_SRC/stats/wrapper kmsg $LKP_SRC/stats/wrapper stderr $LKP_SRC/stats/wrapper last_state } "$@"
diff --git a/drivers/gpu/drm/ttm/Makefile b/drivers/gpu/drm/ttm/Makefile index a60e560804e0..ce845be49153 100644 --- a/drivers/gpu/drm/ttm/Makefile +++ b/drivers/gpu/drm/ttm/Makefile @@ -4,7 +4,7 @@ ttm-y := ttm_memory.o ttm_tt.o ttm_bo.o \ ttm_bo_util.o ttm_bo_vm.o ttm_module.o \ - ttm_object.o ttm_lock.o ttm_execbuf_util.o ttm_page_alloc.o \ + ttm_execbuf_util.o ttm_page_alloc.o \ ttm_bo_manager.o ttm_page_alloc_dma.o ttm-$(CONFIG_AGP) += ttm_agp_backend.o diff --git a/drivers/gpu/drm/vmwgfx/Makefile b/drivers/gpu/drm/vmwgfx/Makefile index ad80211e1098..a352ee85cc2b 100644 --- a/drivers/gpu/drm/vmwgfx/Makefile +++ b/drivers/gpu/drm/vmwgfx/Makefile @@ -7,6 +7,6 @@ vmwgfx-y := vmwgfx_execbuf.o vmwgfx_gmr.o vmwgfx_kms.o vmwgfx_drv.o \ vmwgfx_surface.o vmwgfx_prime.o vmwgfx_mob.o vmwgfx_shader.o \ vmwgfx_cmdbuf_res.o vmwgfx_cmdbuf.o vmwgfx_stdu.o \ vmwgfx_cotable.o vmwgfx_so.o vmwgfx_binding.o vmwgfx_msg.o \ - vmwgfx_simple_resource.o vmwgfx_va.o + vmwgfx_simple_resource.o vmwgfx_va.o vmwgfx_object.o vmwgfx_lock.o obj-$(CONFIG_DRM_VMWGFX) := vmwgfx.o diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c index 22231bc9e845..49c997251126 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c @@ -775,7 +775,7 @@ static void vmw_evict_flags(struct ttm_buffer_object *bo, static int vmw_verify_access(struct ttm_buffer_object *bo, struct file *filp) { - struct ttm_object_file *tfile = + struct vmwgfx_object_file *tfile = vmw_fpriv((struct drm_file *)filp->private_data)->tfile; return vmw_user_dmabuf_verify_access(bo, tfile); diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_context.c b/drivers/gpu/drm/vmwgfx/vmwgfx_context.c index 3767ac335aca..6d2a16982ee3 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_context.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_context.c @@ -32,7 +32,7 @@ #include "vmwgfx_binding.h" struct vmw_user_context { - struct ttm_base_object base; + struct vmwgfx_base_object base; struct vmw_resource res; struct vmw_ctx_binding_state *cbs; struct vmw_cmdbuf_res_manager *man; @@ -43,7 +43,7 @@ struct vmw_user_context { static void vmw_user_context_free(struct vmw_resource *res); static struct vmw_resource * -vmw_user_context_base_to_res(struct ttm_base_object *base); +vmw_user_context_base_to_res(struct vmwgfx_base_object *base); static int vmw_gb_context_create(struct vmw_resource *res); static int vmw_gb_context_bind(struct vmw_resource *res, @@ -691,7 +691,7 @@ static int vmw_dx_context_destroy(struct vmw_resource *res) */ static struct vmw_resource * -vmw_user_context_base_to_res(struct ttm_base_object *base) +vmw_user_context_base_to_res(struct vmwgfx_base_object *base) { return &(container_of(base, struct vmw_user_context, base)->res); } @@ -707,7 +707,7 @@ static void vmw_user_context_free(struct vmw_resource *res) (void) vmw_context_bind_dx_query(res, NULL); - ttm_base_object_kfree(ctx, base); + vmwgfx_base_object_kfree(ctx, base); ttm_mem_global_free(vmw_mem_glob(dev_priv), vmw_user_context_size); } @@ -717,9 +717,9 @@ static void vmw_user_context_free(struct vmw_resource *res) * base object. It releases the base-object's reference on the resource object. */ -static void vmw_user_context_base_release(struct ttm_base_object **p_base) +static void vmw_user_context_base_release(struct vmwgfx_base_object **p_base) { - struct ttm_base_object *base = *p_base; + struct vmwgfx_base_object *base = *p_base; struct vmw_user_context *ctx = container_of(base, struct vmw_user_context, base); struct vmw_resource *res = &ctx->res; @@ -732,9 +732,9 @@ int vmw_context_destroy_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv) { struct drm_vmw_context_arg *arg = (struct drm_vmw_context_arg *)data; - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; - return ttm_ref_object_base_unref(tfile, arg->cid, TTM_REF_USAGE); + return vmwgfx_ref_object_base_unref(tfile, arg->cid, VMWGFX_REF_USAGE); } static int vmw_context_define(struct drm_device *dev, void *data, @@ -745,7 +745,7 @@ static int vmw_context_define(struct drm_device *dev, void *data, struct vmw_resource *res; struct vmw_resource *tmp; struct drm_vmw_context_arg *arg = (struct drm_vmw_context_arg *)data; - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; struct ttm_operation_ctx ttm_opt_ctx = { .interruptible = true, .no_wait_gpu = false @@ -766,7 +766,7 @@ static int vmw_context_define(struct drm_device *dev, void *data, vmw_user_context_size = ttm_round_pot(sizeof(*ctx)) + 128 + ((dev_priv->has_mob) ? vmw_cmdbuf_res_man_size() : 0); - ret = ttm_read_lock(&dev_priv->reservation_sem, true); + ret = vmwgfx_read_lock(&dev_priv->reservation_sem, true); if (unlikely(ret != 0)) return ret; @@ -801,7 +801,7 @@ static int vmw_context_define(struct drm_device *dev, void *data, goto out_unlock; tmp = vmw_resource_reference(&ctx->res); - ret = ttm_base_object_init(tfile, &ctx->base, false, VMW_RES_CONTEXT, + ret = vmwgfx_base_object_init(tfile, &ctx->base, false, VMW_RES_CONTEXT, &vmw_user_context_base_release, NULL); if (unlikely(ret != 0)) { @@ -813,7 +813,7 @@ static int vmw_context_define(struct drm_device *dev, void *data, out_err: vmw_resource_unreference(&res); out_unlock: - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); return ret; } diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c index d45d2caffa5a..3784af7b0f66 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c @@ -52,7 +52,7 @@ int vmw_dmabuf_pin_in_placement(struct vmw_private *dev_priv, int ret; uint32_t new_flags; - ret = ttm_write_lock(&dev_priv->reservation_sem, interruptible); + ret = vmwgfx_write_lock(&dev_priv->reservation_sem, interruptible); if (unlikely(ret != 0)) return ret; @@ -74,7 +74,7 @@ int vmw_dmabuf_pin_in_placement(struct vmw_private *dev_priv, ttm_bo_unreserve(bo); err: - ttm_write_unlock(&dev_priv->reservation_sem); + vmwgfx_write_unlock(&dev_priv->reservation_sem); return ret; } @@ -101,7 +101,7 @@ int vmw_dmabuf_pin_in_vram_or_gmr(struct vmw_private *dev_priv, int ret; uint32_t new_flags; - ret = ttm_write_lock(&dev_priv->reservation_sem, interruptible); + ret = vmwgfx_write_lock(&dev_priv->reservation_sem, interruptible); if (unlikely(ret != 0)) return ret; @@ -129,7 +129,7 @@ int vmw_dmabuf_pin_in_vram_or_gmr(struct vmw_private *dev_priv, ttm_bo_unreserve(bo); err: - ttm_write_unlock(&dev_priv->reservation_sem); + vmwgfx_write_unlock(&dev_priv->reservation_sem); return ret; } @@ -185,7 +185,7 @@ int vmw_dmabuf_pin_in_start_of_vram(struct vmw_private *dev_priv, placement.num_busy_placement = 1; placement.busy_placement = &place; - ret = ttm_write_lock(&dev_priv->reservation_sem, interruptible); + ret = vmwgfx_write_lock(&dev_priv->reservation_sem, interruptible); if (unlikely(ret != 0)) return ret; @@ -220,7 +220,7 @@ int vmw_dmabuf_pin_in_start_of_vram(struct vmw_private *dev_priv, ttm_bo_unreserve(bo); err_unlock: - ttm_write_unlock(&dev_priv->reservation_sem); + vmwgfx_write_unlock(&dev_priv->reservation_sem); return ret; } @@ -244,7 +244,7 @@ int vmw_dmabuf_unpin(struct vmw_private *dev_priv, struct ttm_buffer_object *bo = &buf->base; int ret; - ret = ttm_read_lock(&dev_priv->reservation_sem, interruptible); + ret = vmwgfx_read_lock(&dev_priv->reservation_sem, interruptible); if (unlikely(ret != 0)) return ret; @@ -257,7 +257,7 @@ int vmw_dmabuf_unpin(struct vmw_private *dev_priv, ttm_bo_unreserve(bo); err: - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); return ret; } diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c index 184340d486c3..e18f65b0daed 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c @@ -30,9 +30,9 @@ #include <drm/drmP.h> #include "vmwgfx_drv.h" #include "vmwgfx_binding.h" +#include "vmwgfx_object.h" #include <drm/ttm/ttm_placement.h> #include <drm/ttm/ttm_bo_driver.h> -#include <drm/ttm/ttm_object.h> #include <drm/ttm/ttm_module.h> #include <linux/dma_remapping.h> @@ -644,7 +644,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset) mutex_init(&dev_priv->binding_mutex); mutex_init(&dev_priv->global_kms_state_mutex); rwlock_init(&dev_priv->resource_lock); - ttm_lock_init(&dev_priv->reservation_sem); + vmwgfx_lock_init(&dev_priv->reservation_sem); spin_lock_init(&dev_priv->hw_lock); spin_lock_init(&dev_priv->waiter_lock); spin_lock_init(&dev_priv->cap_lock); @@ -775,7 +775,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset) vmw_master_init(&dev_priv->fbdev_master); - ttm_lock_set_kill(&dev_priv->fbdev_master.lock, false, SIGTERM); + vmwgfx_lock_set_kill(&dev_priv->fbdev_master.lock, false, SIGTERM); dev_priv->active_master = &dev_priv->fbdev_master; dev_priv->mmio_virt = memremap(dev_priv->mmio_start, @@ -796,7 +796,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset) goto out_err4; } - dev_priv->tdev = ttm_object_device_init + dev_priv->tdev = vmwgfx_object_device_init (dev_priv->mem_global_ref.object, 12, &vmw_prime_dmabuf_ops); if (unlikely(dev_priv->tdev == NULL)) { @@ -943,7 +943,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset) else pci_release_regions(dev->pdev); out_no_device: - ttm_object_device_release(&dev_priv->tdev); + vmwgfx_object_device_release(&dev_priv->tdev); out_err4: memunmap(dev_priv->mmio_virt); out_err3: @@ -995,7 +995,7 @@ static void vmw_driver_unload(struct drm_device *dev) else pci_release_regions(dev->pdev); - ttm_object_device_release(&dev_priv->tdev); + vmwgfx_object_device_release(&dev_priv->tdev); memunmap(dev_priv->mmio_virt); if (dev_priv->ctx.staged_bindings) vmw_binding_state_free(dev_priv->ctx.staged_bindings); @@ -1018,12 +1018,12 @@ static void vmw_postclose(struct drm_device *dev, struct vmw_master *vmaster = vmw_master(vmw_fp->locked_master); - ttm_lock_set_kill(&vmaster->lock, true, SIGTERM); - ttm_vt_unlock(&vmaster->lock); + vmwgfx_lock_set_kill(&vmaster->lock, true, SIGTERM); + vmwgfx_vt_unlock(&vmaster->lock); drm_master_put(&vmw_fp->locked_master); } - ttm_object_file_release(&vmw_fp->tfile); + vmwgfx_object_file_release(&vmw_fp->tfile); kfree(vmw_fp); } @@ -1037,7 +1037,7 @@ static int vmw_driver_open(struct drm_device *dev, struct drm_file *file_priv) if (unlikely(!vmw_fp)) return ret; - vmw_fp->tfile = ttm_object_file_init(dev_priv->tdev, 10); + vmw_fp->tfile = vmwgfx_object_file_init(dev_priv->tdev, 10); if (unlikely(vmw_fp->tfile == NULL)) goto out_no_tfile; @@ -1092,7 +1092,7 @@ static struct vmw_master *vmw_master_check(struct drm_device *dev, * authenticating master exits. */ vmaster = vmw_master(file_priv->master); - ret = ttm_read_lock(&vmaster->lock, true); + ret = vmwgfx_read_lock(&vmaster->lock, true); if (unlikely(ret != 0)) vmaster = ERR_PTR(ret); @@ -1155,7 +1155,7 @@ static long vmw_generic_ioctl(struct file *filp, unsigned int cmd, ret = ioctl_func(filp, cmd, arg); if (vmaster) - ttm_read_unlock(&vmaster->lock); + vmwgfx_read_unlock(&vmaster->lock); return ret; @@ -1186,7 +1186,7 @@ static void vmw_lastclose(struct drm_device *dev) static void vmw_master_init(struct vmw_master *vmaster) { - ttm_lock_init(&vmaster->lock); + vmwgfx_lock_init(&vmaster->lock); } static int vmw_master_create(struct drm_device *dev, @@ -1199,7 +1199,7 @@ static int vmw_master_create(struct drm_device *dev, return -ENOMEM; vmw_master_init(vmaster); - ttm_lock_set_kill(&vmaster->lock, true, SIGTERM); + vmwgfx_lock_set_kill(&vmaster->lock, true, SIGTERM); master->driver_priv = vmaster; return 0; @@ -1226,17 +1226,17 @@ static int vmw_master_set(struct drm_device *dev, if (active) { BUG_ON(active != &dev_priv->fbdev_master); - ret = ttm_vt_lock(&active->lock, false, vmw_fp->tfile); + ret = vmwgfx_vt_lock(&active->lock, false, vmw_fp->tfile); if (unlikely(ret != 0)) return ret; - ttm_lock_set_kill(&active->lock, true, SIGTERM); + vmwgfx_lock_set_kill(&active->lock, true, SIGTERM); dev_priv->active_master = NULL; } - ttm_lock_set_kill(&vmaster->lock, false, SIGTERM); + vmwgfx_lock_set_kill(&vmaster->lock, false, SIGTERM); if (!from_open) { - ttm_vt_unlock(&vmaster->lock); + vmwgfx_vt_unlock(&vmaster->lock); BUG_ON(vmw_fp->locked_master != file_priv->master); drm_master_put(&vmw_fp->locked_master); } @@ -1261,21 +1261,21 @@ static void vmw_master_drop(struct drm_device *dev, */ vmw_fp->locked_master = drm_master_get(file_priv->master); - ret = ttm_vt_lock(&vmaster->lock, false, vmw_fp->tfile); + ret = vmwgfx_vt_lock(&vmaster->lock, false, vmw_fp->tfile); vmw_kms_legacy_hotspot_clear(dev_priv); if (unlikely((ret != 0))) { DRM_ERROR("Unable to lock TTM at VT switch.\n"); drm_master_put(&vmw_fp->locked_master); } - ttm_lock_set_kill(&vmaster->lock, false, SIGTERM); + vmwgfx_lock_set_kill(&vmaster->lock, false, SIGTERM); if (!dev_priv->enable_fb) vmw_svga_disable(dev_priv); dev_priv->active_master = &dev_priv->fbdev_master; - ttm_lock_set_kill(&dev_priv->fbdev_master.lock, false, SIGTERM); - ttm_vt_unlock(&dev_priv->fbdev_master.lock); + vmwgfx_lock_set_kill(&dev_priv->fbdev_master.lock, false, SIGTERM); + vmwgfx_vt_unlock(&dev_priv->fbdev_master.lock); if (dev_priv->enable_fb) vmw_fb_on(dev_priv); @@ -1304,9 +1304,9 @@ static void __vmw_svga_enable(struct vmw_private *dev_priv) */ void vmw_svga_enable(struct vmw_private *dev_priv) { - (void) ttm_read_lock(&dev_priv->reservation_sem, false); + (void) vmwgfx_read_lock(&dev_priv->reservation_sem, false); __vmw_svga_enable(dev_priv); - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); } /** @@ -1337,7 +1337,7 @@ static void __vmw_svga_disable(struct vmw_private *dev_priv) */ void vmw_svga_disable(struct vmw_private *dev_priv) { - ttm_write_lock(&dev_priv->reservation_sem, false); + vmwgfx_write_lock(&dev_priv->reservation_sem, false); spin_lock(&dev_priv->svga_lock); if (dev_priv->bdev.man[TTM_PL_VRAM].use_type) { dev_priv->bdev.man[TTM_PL_VRAM].use_type = false; @@ -1349,7 +1349,7 @@ void vmw_svga_disable(struct vmw_private *dev_priv) SVGA_REG_ENABLE_ENABLE); } else spin_unlock(&dev_priv->svga_lock); - ttm_write_unlock(&dev_priv->reservation_sem); + vmwgfx_write_unlock(&dev_priv->reservation_sem); } static void vmw_remove(struct pci_dev *pdev) @@ -1370,7 +1370,7 @@ static int vmwgfx_pm_notifier(struct notifier_block *nb, unsigned long val, case PM_HIBERNATION_PREPARE: if (dev_priv->enable_fb) vmw_fb_off(dev_priv); - ttm_suspend_lock(&dev_priv->reservation_sem); + vmwgfx_suspend_lock(&dev_priv->reservation_sem); /* * This empties VRAM and unbinds all GMR bindings. @@ -1385,7 +1385,7 @@ static int vmwgfx_pm_notifier(struct notifier_block *nb, unsigned long val, case PM_POST_HIBERNATION: case PM_POST_RESTORE: vmw_fence_fifo_up(dev_priv->fman); - ttm_suspend_unlock(&dev_priv->reservation_sem); + vmwgfx_suspend_unlock(&dev_priv->reservation_sem); if (dev_priv->enable_fb) vmw_fb_on(dev_priv); break; diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h index 7e5f30e234b1..2b995d3338f7 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h @@ -35,10 +35,10 @@ #include <drm/drm_auth.h> #include <linux/suspend.h> #include <drm/ttm/ttm_bo_driver.h> -#include <drm/ttm/ttm_object.h> -#include <drm/ttm/ttm_lock.h> #include <drm/ttm/ttm_execbuf_util.h> #include <drm/ttm/ttm_module.h> +#include "vmwgfx_object.h" +#include "vmwgfx_lock.h" #include "vmwgfx_fence.h" #include <linux/sync_file.h> @@ -74,15 +74,15 @@ #define VMW_PL_MOB (TTM_PL_PRIV + 1) #define VMW_PL_FLAG_MOB (TTM_PL_FLAG_PRIV << 1) -#define VMW_RES_CONTEXT ttm_driver_type0 -#define VMW_RES_SURFACE ttm_driver_type1 -#define VMW_RES_STREAM ttm_driver_type2 -#define VMW_RES_FENCE ttm_driver_type3 -#define VMW_RES_SHADER ttm_driver_type4 +#define VMW_RES_CONTEXT vmwgfx_driver_type0 +#define VMW_RES_SURFACE vmwgfx_driver_type1 +#define VMW_RES_STREAM vmwgfx_driver_type2 +#define VMW_RES_FENCE vmwgfx_driver_type3 +#define VMW_RES_SHADER vmwgfx_driver_type4 struct vmw_fpriv { struct drm_master *locked_master; - struct ttm_object_file *tfile; + struct vmwgfx_object_file *tfile; bool gb_aware; }; @@ -322,7 +322,7 @@ struct vmw_legacy_display; struct vmw_overlay; struct vmw_master { - struct ttm_lock lock; + struct vmwgfx_lock lock; }; struct vmw_vga_topology_state { @@ -441,7 +441,7 @@ struct vmw_private { * contexts. */ - struct ttm_object_device *tdev; + struct vmwgfx_object_device *tdev; /* * Fencing and IRQs. @@ -503,7 +503,7 @@ struct vmw_private { /* * Replace this with an rwsem as soon as we have down_xx_interruptible() */ - struct ttm_lock reservation_sem; + struct vmwgfx_lock reservation_sem; /* * Query processing. These members @@ -617,13 +617,13 @@ extern int vmw_resource_reserve(struct vmw_resource *res, bool interruptible, bool no_backup); extern bool vmw_resource_needs_backup(const struct vmw_resource *res); extern int vmw_user_lookup_handle(struct vmw_private *dev_priv, - struct ttm_object_file *tfile, + struct vmwgfx_object_file *tfile, uint32_t handle, struct vmw_surface **out_surf, struct vmw_dma_buffer **out_buf); extern int vmw_user_resource_lookup_handle( struct vmw_private *dev_priv, - struct ttm_object_file *tfile, + struct vmwgfx_object_file *tfile, uint32_t handle, const struct vmw_user_resource_conv *converter, struct vmw_resource **p_res); @@ -634,15 +634,15 @@ extern int vmw_dmabuf_init(struct vmw_private *dev_priv, bool interuptable, void (*bo_free) (struct ttm_buffer_object *bo)); extern int vmw_user_dmabuf_verify_access(struct ttm_buffer_object *bo, - struct ttm_object_file *tfile); + struct vmwgfx_object_file *tfile); extern int vmw_user_dmabuf_alloc(struct vmw_private *dev_priv, - struct ttm_object_file *tfile, + struct vmwgfx_object_file *tfile, uint32_t size, bool shareable, uint32_t *handle, struct vmw_dma_buffer **p_dma_buf, - struct ttm_base_object **p_base); -extern int vmw_user_dmabuf_reference(struct ttm_object_file *tfile, + struct vmwgfx_base_object **p_base); +extern int vmw_user_dmabuf_reference(struct vmwgfx_object_file *tfile, struct vmw_dma_buffer *dma_buf, uint32_t *handle); extern int vmw_dmabuf_alloc_ioctl(struct drm_device *dev, void *data, @@ -654,15 +654,15 @@ extern int vmw_user_dmabuf_synccpu_ioctl(struct drm_device *dev, void *data, extern uint32_t vmw_dmabuf_validate_node(struct ttm_buffer_object *bo, uint32_t cur_validate_node); extern void vmw_dmabuf_validate_clear(struct ttm_buffer_object *bo); -extern int vmw_user_dmabuf_lookup(struct ttm_object_file *tfile, +extern int vmw_user_dmabuf_lookup(struct vmwgfx_object_file *tfile, uint32_t id, struct vmw_dma_buffer **out, - struct ttm_base_object **base); + struct vmwgfx_base_object **base); extern int vmw_stream_claim_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv); extern int vmw_stream_unref_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv); extern int vmw_user_stream_lookup(struct vmw_private *dev_priv, - struct ttm_object_file *tfile, + struct vmwgfx_object_file *tfile, uint32_t *inout_id, struct vmw_resource **out); extern void vmw_resource_unreserve(struct vmw_resource *res, @@ -915,7 +915,7 @@ int vmw_kms_cursor_bypass_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv); void vmw_kms_cursor_post_execbuf(struct vmw_private *dev_priv); void vmw_kms_cursor_snoop(struct vmw_surface *srf, - struct ttm_object_file *tfile, + struct vmwgfx_object_file *tfile, struct ttm_buffer_object *bo, SVGA3dCmdHeader *header); int vmw_kms_write_svga(struct vmw_private *vmw_priv, @@ -1009,7 +1009,7 @@ extern void vmw_otables_takedown(struct vmw_private *dev_priv); extern const struct vmw_user_resource_conv *user_context_converter; extern int vmw_context_check(struct vmw_private *dev_priv, - struct ttm_object_file *tfile, + struct vmwgfx_object_file *tfile, int id, struct vmw_resource **p_res); extern int vmw_context_define_ioctl(struct drm_device *dev, void *data, @@ -1053,7 +1053,7 @@ extern int vmw_gb_surface_define_ioctl(struct drm_device *dev, void *data, extern int vmw_gb_surface_reference_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv); extern int vmw_surface_check(struct vmw_private *dev_priv, - struct ttm_object_file *tfile, + struct vmwgfx_object_file *tfile, uint32_t handle, int *id); extern int vmw_surface_validate(struct vmw_private *dev_priv, struct vmw_surface *srf); diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c index b700667f6f0b..1a5ee5ff0603 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c @@ -3889,8 +3889,8 @@ vmw_execbuf_copy_fence_user(struct vmw_private *dev_priv, fence_rep.fd = -1; } - ttm_ref_object_base_unref(vmw_fp->tfile, - fence_handle, TTM_REF_USAGE); + vmwgfx_ref_object_base_unref(vmw_fp->tfile, + fence_handle, VMWGFX_REF_USAGE); DRM_ERROR("Fence copy error. Syncing.\n"); (void) vmw_fence_obj_wait(fence, false, false, VMW_FENCE_WAIT_TIMEOUT); @@ -4523,7 +4523,7 @@ int vmw_execbuf_ioctl(struct drm_device *dev, unsigned long data, goto out; } - ret = ttm_read_lock(&dev_priv->reservation_sem, true); + ret = vmwgfx_read_lock(&dev_priv->reservation_sem, true); if (unlikely(ret != 0)) return ret; @@ -4534,7 +4534,7 @@ int vmw_execbuf_ioctl(struct drm_device *dev, unsigned long data, (void __user *)(unsigned long)arg.fence_rep, NULL, arg.flags); - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); if (unlikely(ret != 0)) goto out; diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c index d23a18aae476..fc3701d9e996 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c @@ -378,7 +378,7 @@ static int vmw_fb_create_bo(struct vmw_private *vmw_priv, struct vmw_dma_buffer *vmw_bo; int ret; - (void) ttm_write_lock(&vmw_priv->reservation_sem, false); + (void) vmwgfx_write_lock(&vmw_priv->reservation_sem, false); vmw_bo = kmalloc(sizeof(*vmw_bo), GFP_KERNEL); if (!vmw_bo) { @@ -394,12 +394,12 @@ static int vmw_fb_create_bo(struct vmw_private *vmw_priv, goto err_unlock; /* init frees the buffer on failure */ *out = vmw_bo; - ttm_write_unlock(&vmw_priv->reservation_sem); + vmwgfx_write_unlock(&vmw_priv->reservation_sem); return 0; err_unlock: - ttm_write_unlock(&vmw_priv->reservation_sem); + vmwgfx_write_unlock(&vmw_priv->reservation_sem); return ret; } diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c index 6c5c75cf5e6c..247ec72a8921 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c @@ -50,7 +50,7 @@ struct vmw_fence_manager { }; struct vmw_user_fence { - struct ttm_base_object base; + struct vmwgfx_base_object base; struct vmw_fence_obj fence; }; @@ -559,7 +559,7 @@ static void vmw_user_fence_destroy(struct vmw_fence_obj *fence) container_of(fence, struct vmw_user_fence, fence); struct vmw_fence_manager *fman = fman_from_fence(fence); - ttm_base_object_kfree(ufence, base); + vmwgfx_base_object_kfree(ufence, base); /* * Free kernel space accounting. */ @@ -567,9 +567,9 @@ static void vmw_user_fence_destroy(struct vmw_fence_obj *fence) fman->user_fence_size); } -static void vmw_user_fence_base_release(struct ttm_base_object **p_base) +static void vmw_user_fence_base_release(struct vmwgfx_base_object **p_base) { - struct ttm_base_object *base = *p_base; + struct vmwgfx_base_object *base = *p_base; struct vmw_user_fence *ufence = container_of(base, struct vmw_user_fence, base); struct vmw_fence_obj *fence = &ufence->fence; @@ -584,7 +584,7 @@ int vmw_user_fence_create(struct drm_file *file_priv, struct vmw_fence_obj **p_fence, uint32_t *p_handle) { - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; struct vmw_user_fence *ufence; struct vmw_fence_obj *tmp; struct ttm_mem_global *mem_glob = vmw_mem_glob(fman->dev_priv); @@ -622,7 +622,7 @@ int vmw_user_fence_create(struct drm_file *file_priv, * vmw_user_fence_base_release. */ tmp = vmw_fence_obj_reference(&ufence->fence); - ret = ttm_base_object_init(tfile, &ufence->base, false, + ret = vmwgfx_base_object_init(tfile, &ufence->base, false, VMW_RES_FENCE, &vmw_user_fence_base_release, NULL); @@ -746,7 +746,7 @@ void vmw_fence_fifo_up(struct vmw_fence_manager *fman) /** * vmw_fence_obj_lookup - Look up a user-space fence object * - * @tfile: A struct ttm_object_file identifying the caller. + * @tfile: A struct vmwgfx_object_file identifying the caller. * @handle: A handle identifying the fence object. * @return: A struct vmw_user_fence base ttm object on success or * an error pointer on failure. @@ -756,10 +756,10 @@ void vmw_fence_fifo_up(struct vmw_fence_manager *fman) * creation and fence objects aren't shareable, that's not an * issue currently. */ -static struct ttm_base_object * -vmw_fence_obj_lookup(struct ttm_object_file *tfile, u32 handle) +static struct vmwgfx_base_object * +vmw_fence_obj_lookup(struct vmwgfx_object_file *tfile, u32 handle) { - struct ttm_base_object *base = ttm_base_object_lookup(tfile, handle); + struct vmwgfx_base_object *base = vmwgfx_base_object_lookup(tfile, handle); if (!base) { pr_err("Invalid fence object handle 0x%08lx.\n", @@ -770,7 +770,7 @@ vmw_fence_obj_lookup(struct ttm_object_file *tfile, u32 handle) if (base->refcount_release != vmw_user_fence_base_release) { pr_err("Invalid fence object handle 0x%08lx.\n", (unsigned long)handle); - ttm_base_object_unref(&base); + vmwgfx_base_object_unref(&base); return ERR_PTR(-EINVAL); } @@ -784,9 +784,9 @@ int vmw_fence_obj_wait_ioctl(struct drm_device *dev, void *data, struct drm_vmw_fence_wait_arg *arg = (struct drm_vmw_fence_wait_arg *)data; unsigned long timeout; - struct ttm_base_object *base; + struct vmwgfx_base_object *base; struct vmw_fence_obj *fence; - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; int ret; uint64_t wait_timeout = ((uint64_t)arg->timeout_us * HZ); @@ -821,15 +821,15 @@ int vmw_fence_obj_wait_ioctl(struct drm_device *dev, void *data, ret = vmw_fence_obj_wait(fence, arg->lazy, true, timeout); out: - ttm_base_object_unref(&base); + vmwgfx_base_object_unref(&base); /* * Optionally unref the fence object. */ if (ret == 0 && (arg->wait_options & DRM_VMW_WAIT_OPTION_UNREF)) - return ttm_ref_object_base_unref(tfile, arg->handle, - TTM_REF_USAGE); + return vmwgfx_ref_object_base_unref(tfile, arg->handle, + VMWGFX_REF_USAGE); return ret; } @@ -838,10 +838,10 @@ int vmw_fence_obj_signaled_ioctl(struct drm_device *dev, void *data, { struct drm_vmw_fence_signaled_arg *arg = (struct drm_vmw_fence_signaled_arg *) data; - struct ttm_base_object *base; + struct vmwgfx_base_object *base; struct vmw_fence_obj *fence; struct vmw_fence_manager *fman; - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; struct vmw_private *dev_priv = vmw_priv(dev); base = vmw_fence_obj_lookup(tfile, arg->handle); @@ -858,7 +858,7 @@ int vmw_fence_obj_signaled_ioctl(struct drm_device *dev, void *data, arg->passed_seqno = dev_priv->last_read_seqno; spin_unlock(&fman->lock); - ttm_base_object_unref(&base); + vmwgfx_base_object_unref(&base); return 0; } @@ -870,9 +870,9 @@ int vmw_fence_obj_unref_ioctl(struct drm_device *dev, void *data, struct drm_vmw_fence_arg *arg = (struct drm_vmw_fence_arg *) data; - return ttm_ref_object_base_unref(vmw_fpriv(file_priv)->tfile, + return vmwgfx_ref_object_base_unref(vmw_fpriv(file_priv)->tfile, arg->handle, - TTM_REF_USAGE); + VMWGFX_REF_USAGE); } /** @@ -1091,7 +1091,7 @@ int vmw_fence_event_ioctl(struct drm_device *dev, void *data, (struct drm_vmw_fence_event_arg *) data; struct vmw_fence_obj *fence = NULL; struct vmw_fpriv *vmw_fp = vmw_fpriv(file_priv); - struct ttm_object_file *tfile = vmw_fp->tfile; + struct vmwgfx_object_file *tfile = vmw_fp->tfile; struct drm_vmw_fence_rep __user *user_fence_rep = (struct drm_vmw_fence_rep __user *)(unsigned long) arg->fence_rep; @@ -1104,7 +1104,7 @@ int vmw_fence_event_ioctl(struct drm_device *dev, void *data, * add one. */ if (arg->handle) { - struct ttm_base_object *base = + struct vmwgfx_base_object *base = vmw_fence_obj_lookup(tfile, arg->handle); if (IS_ERR(base)) @@ -1115,8 +1115,8 @@ int vmw_fence_event_ioctl(struct drm_device *dev, void *data, (void) vmw_fence_obj_reference(fence); if (user_fence_rep != NULL) { - ret = ttm_ref_object_add(vmw_fp->tfile, base, - TTM_REF_USAGE, NULL, false); + ret = vmwgfx_ref_object_add(vmw_fp->tfile, base, + VMWGFX_REF_USAGE, NULL, false); if (unlikely(ret != 0)) { DRM_ERROR("Failed to reference a fence " "object.\n"); @@ -1124,7 +1124,7 @@ int vmw_fence_event_ioctl(struct drm_device *dev, void *data, } handle = base->hash.key; } - ttm_base_object_unref(&base); + vmwgfx_base_object_unref(&base); } /* @@ -1159,7 +1159,7 @@ int vmw_fence_event_ioctl(struct drm_device *dev, void *data, return 0; out_no_create: if (user_fence_rep != NULL) - ttm_ref_object_base_unref(tfile, handle, TTM_REF_USAGE); + vmwgfx_ref_object_base_unref(tfile, handle, VMWGFX_REF_USAGE); out_no_ref_obj: vmw_fence_obj_unreference(&fence); return ret; diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c index 01be355525e4..cf2ea14fb041 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c @@ -245,7 +245,7 @@ int vmw_get_cap_3d_ioctl(struct drm_device *dev, void *data, int vmw_present_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv) { - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; struct vmw_private *dev_priv = vmw_priv(dev); struct drm_vmw_present_arg *arg = (struct drm_vmw_present_arg *)data; @@ -294,7 +294,7 @@ int vmw_present_ioctl(struct drm_device *dev, void *data, } vfb = vmw_framebuffer_to_vfb(fb); - ret = ttm_read_lock(&dev_priv->reservation_sem, true); + ret = vmwgfx_read_lock(&dev_priv->reservation_sem, true); if (unlikely(ret != 0)) goto out_no_ttm_lock; @@ -314,7 +314,7 @@ int vmw_present_ioctl(struct drm_device *dev, void *data, vmw_surface_unreference(&surface); out_no_surface: - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); out_no_ttm_lock: drm_framebuffer_unreference(fb); out_no_fb: @@ -383,7 +383,7 @@ int vmw_present_readback_ioctl(struct drm_device *dev, void *data, goto out_no_ttm_lock; } - ret = ttm_read_lock(&dev_priv->reservation_sem, true); + ret = vmwgfx_read_lock(&dev_priv->reservation_sem, true); if (unlikely(ret != 0)) goto out_no_ttm_lock; @@ -391,7 +391,7 @@ int vmw_present_readback_ioctl(struct drm_device *dev, void *data, vfb, user_fence_rep, clips, num_clips); - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); out_no_ttm_lock: drm_framebuffer_unreference(fb); out_no_fb: diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c index a2a93d7e2a04..98d723c62fb3 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c @@ -140,7 +140,7 @@ static void vmw_cursor_update_position(struct vmw_private *dev_priv, void vmw_kms_cursor_snoop(struct vmw_surface *srf, - struct ttm_object_file *tfile, + struct vmwgfx_object_file *tfile, struct ttm_buffer_object *bo, SVGA3dCmdHeader *header) { @@ -857,7 +857,7 @@ static void vmw_framebuffer_surface_destroy(struct drm_framebuffer *framebuffer) drm_framebuffer_cleanup(framebuffer); vmw_surface_unreference(&vfbs->surface); if (vfbs->base.user_obj) - ttm_base_object_unref(&vfbs->base.user_obj); + vmwgfx_base_object_unref(&vfbs->base.user_obj); kfree(vfbs); } @@ -880,7 +880,7 @@ static int vmw_framebuffer_surface_dirty(struct drm_framebuffer *framebuffer, drm_modeset_lock_all(dev_priv->dev); - ret = ttm_read_lock(&dev_priv->reservation_sem, true); + ret = vmwgfx_read_lock(&dev_priv->reservation_sem, true); if (unlikely(ret != 0)) { drm_modeset_unlock_all(dev_priv->dev); return ret; @@ -907,7 +907,7 @@ static int vmw_framebuffer_surface_dirty(struct drm_framebuffer *framebuffer, num_clips, inc, NULL); vmw_fifo_flush(dev_priv, false); - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); drm_modeset_unlock_all(dev_priv->dev); @@ -1062,7 +1062,7 @@ static void vmw_framebuffer_dmabuf_destroy(struct drm_framebuffer *framebuffer) drm_framebuffer_cleanup(framebuffer); vmw_dmabuf_unreference(&vfbd->buffer); if (vfbd->base.user_obj) - ttm_base_object_unref(&vfbd->base.user_obj); + vmwgfx_base_object_unref(&vfbd->base.user_obj); kfree(vfbd); } @@ -1081,7 +1081,7 @@ static int vmw_framebuffer_dmabuf_dirty(struct drm_framebuffer *framebuffer, drm_modeset_lock_all(dev_priv->dev); - ret = ttm_read_lock(&dev_priv->reservation_sem, true); + ret = vmwgfx_read_lock(&dev_priv->reservation_sem, true); if (unlikely(ret != 0)) { drm_modeset_unlock_all(dev_priv->dev); return ret; @@ -1120,7 +1120,7 @@ static int vmw_framebuffer_dmabuf_dirty(struct drm_framebuffer *framebuffer, } vmw_fifo_flush(dev_priv, false); - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); drm_modeset_unlock_all(dev_priv->dev); @@ -1426,11 +1426,11 @@ static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev, const struct drm_mode_fb_cmd2 *mode_cmd) { struct vmw_private *dev_priv = vmw_priv(dev); - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; struct vmw_framebuffer *vfb = NULL; struct vmw_surface *surface = NULL; struct vmw_dma_buffer *bo = NULL; - struct ttm_base_object *user_obj; + struct vmwgfx_base_object *user_obj; int ret; /** @@ -1455,7 +1455,7 @@ static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev, * command stream using user-space handles. */ - user_obj = ttm_base_object_lookup(tfile, mode_cmd->handles[0]); + user_obj = vmwgfx_base_object_lookup(tfile, mode_cmd->handles[0]); if (unlikely(user_obj == NULL)) { DRM_ERROR("Could not locate requested kms frame buffer.\n"); return ERR_PTR(-ENOENT); @@ -1499,7 +1499,7 @@ static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev, if (ret) { DRM_ERROR("failed to create vmw_framebuffer: %i\n", ret); - ttm_base_object_unref(&user_obj); + vmwgfx_base_object_unref(&user_obj); return ERR_PTR(ret); } else vfb->user_obj = user_obj; diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h index ff9c8389ff21..2824c71da29a 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h @@ -101,7 +101,7 @@ struct vmw_framebuffer { int (*pin)(struct vmw_framebuffer *fb); int (*unpin)(struct vmw_framebuffer *fb); bool dmabuf; - struct ttm_base_object *user_obj; + struct vmwgfx_base_object *user_obj; uint32_t user_handle; }; diff --git a/drivers/gpu/drm/ttm/ttm_lock.c b/drivers/gpu/drm/vmwgfx/vmwgfx_lock.c similarity index 61% rename from drivers/gpu/drm/ttm/ttm_lock.c rename to drivers/gpu/drm/vmwgfx/vmwgfx_lock.c index 913f4318cdc0..6c8ffce32134 100644 --- a/drivers/gpu/drm/ttm/ttm_lock.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_lock.c @@ -28,21 +28,21 @@ * Authors: Thomas Hellstrom <thellstrom-at-vmware-dot-com> */ -#include <drm/ttm/ttm_lock.h> #include <drm/ttm/ttm_module.h> #include <linux/atomic.h> #include <linux/errno.h> #include <linux/wait.h> #include <linux/sched/signal.h> #include <linux/module.h> +#include "vmwgfx_lock.h" -#define TTM_WRITE_LOCK_PENDING (1 << 0) -#define TTM_VT_LOCK_PENDING (1 << 1) -#define TTM_SUSPEND_LOCK_PENDING (1 << 2) -#define TTM_VT_LOCK (1 << 3) -#define TTM_SUSPEND_LOCK (1 << 4) +#define VMWGFX_WRITE_LOCK_PENDING (1 << 0) +#define VMWGFX_VT_LOCK_PENDING (1 << 1) +#define VMWGFX_SUSPEND_LOCK_PENDING (1 << 2) +#define VMWGFX_VT_LOCK (1 << 3) +#define VMWGFX_SUSPEND_LOCK (1 << 4) -void ttm_lock_init(struct ttm_lock *lock) +void vmwgfx_lock_init(struct vmwgfx_lock *lock) { spin_lock_init(&lock->lock); init_waitqueue_head(&lock->queue); @@ -51,18 +51,16 @@ void ttm_lock_init(struct ttm_lock *lock) lock->kill_takers = false; lock->signal = SIGKILL; } -EXPORT_SYMBOL(ttm_lock_init); -void ttm_read_unlock(struct ttm_lock *lock) +void vmwgfx_read_unlock(struct vmwgfx_lock *lock) { spin_lock(&lock->lock); if (--lock->rw == 0) wake_up_all(&lock->queue); spin_unlock(&lock->lock); } -EXPORT_SYMBOL(ttm_read_unlock); -static bool __ttm_read_lock(struct ttm_lock *lock) +static bool __vmwgfx_read_lock(struct vmwgfx_lock *lock) { bool locked = false; @@ -80,20 +78,19 @@ static bool __ttm_read_lock(struct ttm_lock *lock) return locked; } -int ttm_read_lock(struct ttm_lock *lock, bool interruptible) +int vmwgfx_read_lock(struct vmwgfx_lock *lock, bool interruptible) { int ret = 0; if (interruptible) ret = wait_event_interruptible(lock->queue, - __ttm_read_lock(lock)); + __vmwgfx_read_lock(lock)); else - wait_event(lock->queue, __ttm_read_lock(lock)); + wait_event(lock->queue, __vmwgfx_read_lock(lock)); return ret; } -EXPORT_SYMBOL(ttm_read_lock); -static bool __ttm_read_trylock(struct ttm_lock *lock, bool *locked) +static bool __vmwgfx_read_trylock(struct vmwgfx_lock *lock, bool *locked) { bool block = true; @@ -117,16 +114,16 @@ static bool __ttm_read_trylock(struct ttm_lock *lock, bool *locked) return !block; } -int ttm_read_trylock(struct ttm_lock *lock, bool interruptible) +int vmwgfx_read_trylock(struct vmwgfx_lock *lock, bool interruptible) { int ret = 0; bool locked; if (interruptible) ret = wait_event_interruptible - (lock->queue, __ttm_read_trylock(lock, &locked)); + (lock->queue, __vmwgfx_read_trylock(lock, &locked)); else - wait_event(lock->queue, __ttm_read_trylock(lock, &locked)); + wait_event(lock->queue, __vmwgfx_read_trylock(lock, &locked)); if (unlikely(ret != 0)) { BUG_ON(locked); @@ -136,16 +133,15 @@ int ttm_read_trylock(struct ttm_lock *lock, bool interruptible) return (locked) ? 0 : -EBUSY; } -void ttm_write_unlock(struct ttm_lock *lock) +void vmwgfx_write_unlock(struct vmwgfx_lock *lock) { spin_lock(&lock->lock); lock->rw = 0; wake_up_all(&lock->queue); spin_unlock(&lock->lock); } -EXPORT_SYMBOL(ttm_write_unlock); -static bool __ttm_write_lock(struct ttm_lock *lock) +static bool __vmwgfx_write_lock(struct vmwgfx_lock *lock) { bool locked = false; @@ -155,96 +151,94 @@ static bool __ttm_write_lock(struct ttm_lock *lock) spin_unlock(&lock->lock); return false; } - if (lock->rw == 0 && ((lock->flags & ~TTM_WRITE_LOCK_PENDING) == 0)) { + if (lock->rw == 0 && ((lock->flags & ~VMWGFX_WRITE_LOCK_PENDING) == 0)) { lock->rw = -1; - lock->flags &= ~TTM_WRITE_LOCK_PENDING; + lock->flags &= ~VMWGFX_WRITE_LOCK_PENDING; locked = true; } else { - lock->flags |= TTM_WRITE_LOCK_PENDING; + lock->flags |= VMWGFX_WRITE_LOCK_PENDING; } spin_unlock(&lock->lock); return locked; } -int ttm_write_lock(struct ttm_lock *lock, bool interruptible) +int vmwgfx_write_lock(struct vmwgfx_lock *lock, bool interruptible) { int ret = 0; if (interruptible) { ret = wait_event_interruptible(lock->queue, - __ttm_write_lock(lock)); + __vmwgfx_write_lock(lock)); if (unlikely(ret != 0)) { spin_lock(&lock->lock); - lock->flags &= ~TTM_WRITE_LOCK_PENDING; + lock->flags &= ~VMWGFX_WRITE_LOCK_PENDING; wake_up_all(&lock->queue); spin_unlock(&lock->lock); } } else - wait_event(lock->queue, __ttm_write_lock(lock)); + wait_event(lock->queue, __vmwgfx_write_lock(lock)); return ret; } -EXPORT_SYMBOL(ttm_write_lock); -static int __ttm_vt_unlock(struct ttm_lock *lock) +static int __vmwgfx_vt_unlock(struct vmwgfx_lock *lock) { int ret = 0; spin_lock(&lock->lock); - if (unlikely(!(lock->flags & TTM_VT_LOCK))) + if (unlikely(!(lock->flags & VMWGFX_VT_LOCK))) ret = -EINVAL; - lock->flags &= ~TTM_VT_LOCK; + lock->flags &= ~VMWGFX_VT_LOCK; wake_up_all(&lock->queue); spin_unlock(&lock->lock); return ret; } -static void ttm_vt_lock_remove(struct ttm_base_object **p_base) +static void vmwgfx_vt_lock_remove(struct vmwgfx_base_object **p_base) { - struct ttm_base_object *base = *p_base; - struct ttm_lock *lock = container_of(base, struct ttm_lock, base); + struct vmwgfx_base_object *base = *p_base; + struct vmwgfx_lock *lock = container_of(base, struct vmwgfx_lock, base); int ret; *p_base = NULL; - ret = __ttm_vt_unlock(lock); + ret = __vmwgfx_vt_unlock(lock); BUG_ON(ret != 0); } -static bool __ttm_vt_lock(struct ttm_lock *lock) +static bool __vmwgfx_vt_lock(struct vmwgfx_lock *lock) { bool locked = false; spin_lock(&lock->lock); if (lock->rw == 0) { - lock->flags &= ~TTM_VT_LOCK_PENDING; - lock->flags |= TTM_VT_LOCK; + lock->flags &= ~VMWGFX_VT_LOCK_PENDING; + lock->flags |= VMWGFX_VT_LOCK; locked = true; } else { - lock->flags |= TTM_VT_LOCK_PENDING; + lock->flags |= VMWGFX_VT_LOCK_PENDING; } spin_unlock(&lock->lock); return locked; } -int ttm_vt_lock(struct ttm_lock *lock, - bool interruptible, - struct ttm_object_file *tfile) +int vmwgfx_vt_lock(struct vmwgfx_lock *lock, bool interruptible, + struct vmwgfx_object_file *tfile) { int ret = 0; if (interruptible) { ret = wait_event_interruptible(lock->queue, - __ttm_vt_lock(lock)); + __vmwgfx_vt_lock(lock)); if (unlikely(ret != 0)) { spin_lock(&lock->lock); - lock->flags &= ~TTM_VT_LOCK_PENDING; + lock->flags &= ~VMWGFX_VT_LOCK_PENDING; wake_up_all(&lock->queue); spin_unlock(&lock->lock); return ret; } } else - wait_event(lock->queue, __ttm_vt_lock(lock)); + wait_event(lock->queue, __vmwgfx_vt_lock(lock)); /* * Add a base-object, the destructor of which will @@ -252,51 +246,47 @@ int ttm_vt_lock(struct ttm_lock *lock, * while holding it. */ - ret = ttm_base_object_init(tfile, &lock->base, false, - ttm_lock_type, &ttm_vt_lock_remove, NULL); + ret = vmwgfx_base_object_init(tfile, &lock->base, false, + vmwgfx_lock_type, &vmwgfx_vt_lock_remove, NULL); if (ret) - (void)__ttm_vt_unlock(lock); + (void)__vmwgfx_vt_unlock(lock); else lock->vt_holder = tfile; return ret; } -EXPORT_SYMBOL(ttm_vt_lock); -int ttm_vt_unlock(struct ttm_lock *lock) +int vmwgfx_vt_unlock(struct vmwgfx_lock *lock) { - return ttm_ref_object_base_unref(lock->vt_holder, - lock->base.hash.key, TTM_REF_USAGE); + return vmwgfx_ref_object_base_unref(lock->vt_holder, + lock->base.hash.key, VMWGFX_REF_USAGE); } -EXPORT_SYMBOL(ttm_vt_unlock); -void ttm_suspend_unlock(struct ttm_lock *lock) +void vmwgfx_suspend_unlock(struct vmwgfx_lock *lock) { spin_lock(&lock->lock); - lock->flags &= ~TTM_SUSPEND_LOCK; + lock->flags &= ~VMWGFX_SUSPEND_LOCK; wake_up_all(&lock->queue); spin_unlock(&lock->lock); } -EXPORT_SYMBOL(ttm_suspend_unlock); -static bool __ttm_suspend_lock(struct ttm_lock *lock) +static bool __vmwgfx_suspend_lock(struct vmwgfx_lock *lock) { bool locked = false; spin_lock(&lock->lock); if (lock->rw == 0) { - lock->flags &= ~TTM_SUSPEND_LOCK_PENDING; - lock->flags |= TTM_SUSPEND_LOCK; + lock->flags &= ~VMWGFX_SUSPEND_LOCK_PENDING; + lock->flags |= VMWGFX_SUSPEND_LOCK; locked = true; } else { - lock->flags |= TTM_SUSPEND_LOCK_PENDING; + lock->flags |= VMWGFX_SUSPEND_LOCK_PENDING; } spin_unlock(&lock->lock); return locked; } -void ttm_suspend_lock(struct ttm_lock *lock) +void vmwgfx_suspend_lock(struct vmwgfx_lock *lock) { - wait_event(lock->queue, __ttm_suspend_lock(lock)); + wait_event(lock->queue, __vmwgfx_suspend_lock(lock)); } -EXPORT_SYMBOL(ttm_suspend_lock); diff --git a/include/drm/ttm/ttm_lock.h b/drivers/gpu/drm/vmwgfx/vmwgfx_lock.h similarity index 69% rename from include/drm/ttm/ttm_lock.h rename to drivers/gpu/drm/vmwgfx/vmwgfx_lock.h index 0c3af9836863..95219cb1663e 100644 --- a/include/drm/ttm/ttm_lock.h +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_lock.h @@ -28,7 +28,7 @@ * Authors: Thomas Hellstrom <thellstrom-at-vmware-dot-com> */ -/** @file ttm_lock.h +/** @file vmwgfx_lock.h * This file implements a simple replacement for the buffer manager use * of the DRM heavyweight hardware lock. * The lock is a read-write lock. Taking it in read mode and write mode @@ -46,16 +46,16 @@ * */ -#ifndef _TTM_LOCK_H_ -#define _TTM_LOCK_H_ +#ifndef _VMWGFX_LOCK_H_ +#define _VMWGFX_LOCK_H_ #include <linux/wait.h> #include <linux/atomic.h> -#include "ttm_object.h" +#include "vmwgfx_object.h" /** - * struct ttm_lock + * struct vmwgfx_lock * * @base: ttm base object used solely to release the lock if the client * holding the lock dies. @@ -67,51 +67,51 @@ * @signal: Signal to send when kill_takers is true. */ -struct ttm_lock { - struct ttm_base_object base; +struct vmwgfx_lock { + struct vmwgfx_base_object base; wait_queue_head_t queue; spinlock_t lock; int32_t rw; uint32_t flags; bool kill_takers; int signal; - struct ttm_object_file *vt_holder; + struct vmwgfx_object_file *vt_holder; }; /** - * ttm_lock_init + * vmwgfx_lock_init * - * @lock: Pointer to a struct ttm_lock + * @lock: Pointer to a struct vmwgfx_lock * Initializes the lock. */ -extern void ttm_lock_init(struct ttm_lock *lock); +extern void vmwgfx_lock_init(struct vmwgfx_lock *lock); /** - * ttm_read_unlock + * vmwgfx_read_unlock * - * @lock: Pointer to a struct ttm_lock + * @lock: Pointer to a struct vmwgfx_lock * * Releases a read lock. */ -extern void ttm_read_unlock(struct ttm_lock *lock); +extern void vmwgfx_read_unlock(struct vmwgfx_lock *lock); /** - * ttm_read_lock + * vmwgfx_read_lock * - * @lock: Pointer to a struct ttm_lock + * @lock: Pointer to a struct vmwgfx_lock * @interruptible: Interruptible sleeping while waiting for a lock. * * Takes the lock in read mode. * Returns: * -ERESTARTSYS If interrupted by a signal and interruptible is true. */ -extern int ttm_read_lock(struct ttm_lock *lock, bool interruptible); +extern int vmwgfx_read_lock(struct vmwgfx_lock *lock, bool interruptible); /** - * ttm_read_trylock + * vmwgfx_read_trylock * - * @lock: Pointer to a struct ttm_lock + * @lock: Pointer to a struct vmwgfx_lock * @interruptible: Interruptible sleeping while waiting for a lock. * * Tries to take the lock in read mode. If the lock is already held @@ -123,107 +123,107 @@ extern int ttm_read_lock(struct ttm_lock *lock, bool interruptible); * -EBUSY The lock was already held in write mode. * -ERESTARTSYS If interrupted by a signal and interruptible is true. */ -extern int ttm_read_trylock(struct ttm_lock *lock, bool interruptible); +extern int vmwgfx_read_trylock(struct vmwgfx_lock *lock, bool interruptible); /** - * ttm_write_unlock + * vmwgfx_write_unlock * - * @lock: Pointer to a struct ttm_lock + * @lock: Pointer to a struct vmwgfx_lock * * Releases a write lock. */ -extern void ttm_write_unlock(struct ttm_lock *lock); +extern void vmwgfx_write_unlock(struct vmwgfx_lock *lock); /** - * ttm_write_lock + * vmwgfx_write_lock * - * @lock: Pointer to a struct ttm_lock + * @lock: Pointer to a struct vmwgfx_lock * @interruptible: Interruptible sleeping while waiting for a lock. * * Takes the lock in write mode. * Returns: * -ERESTARTSYS If interrupted by a signal and interruptible is true. */ -extern int ttm_write_lock(struct ttm_lock *lock, bool interruptible); +extern int vmwgfx_write_lock(struct vmwgfx_lock *lock, bool interruptible); /** - * ttm_lock_downgrade + * vmwgfx_lock_downgrade * - * @lock: Pointer to a struct ttm_lock + * @lock: Pointer to a struct vmwgfx_lock * * Downgrades a write lock to a read lock. */ -extern void ttm_lock_downgrade(struct ttm_lock *lock); +extern void vmwgfx_lock_downgrade(struct vmwgfx_lock *lock); /** - * ttm_suspend_lock + * vmwgfx_suspend_lock * - * @lock: Pointer to a struct ttm_lock + * @lock: Pointer to a struct vmwgfx_lock * * Takes the lock in suspend mode. Excludes read and write mode. */ -extern void ttm_suspend_lock(struct ttm_lock *lock); +extern void vmwgfx_suspend_lock(struct vmwgfx_lock *lock); /** - * ttm_suspend_unlock + * vmwgfx_suspend_unlock * - * @lock: Pointer to a struct ttm_lock + * @lock: Pointer to a struct vmwgfx_lock * * Releases a suspend lock */ -extern void ttm_suspend_unlock(struct ttm_lock *lock); +extern void vmwgfx_suspend_unlock(struct vmwgfx_lock *lock); /** - * ttm_vt_lock + * vmwgfx_vt_lock * - * @lock: Pointer to a struct ttm_lock + * @lock: Pointer to a struct vmwgfx_lock * @interruptible: Interruptible sleeping while waiting for a lock. - * @tfile: Pointer to a struct ttm_object_file to register the lock with. + * @tfile: Pointer to a struct vmwgfx_object_file to register the lock with. * * Takes the lock in vt mode. * Returns: * -ERESTARTSYS If interrupted by a signal and interruptible is true. * -ENOMEM: Out of memory when locking. */ -extern int ttm_vt_lock(struct ttm_lock *lock, bool interruptible, - struct ttm_object_file *tfile); +extern int vmwgfx_vt_lock(struct vmwgfx_lock *lock, bool interruptible, + struct vmwgfx_object_file *tfile); /** - * ttm_vt_unlock + * vmwgfx_vt_lock * - * @lock: Pointer to a struct ttm_lock + * @lock: Pointer to a struct vmwgfx_lock * * Releases a vt lock. * Returns: * -EINVAL If the lock was not held. */ -extern int ttm_vt_unlock(struct ttm_lock *lock); +extern int vmwgfx_vt_unlock(struct vmwgfx_lock *lock); /** - * ttm_write_unlock + * vmwgfx_write_unlock * - * @lock: Pointer to a struct ttm_lock + * @lock: Pointer to a struct vmwgfx_lock * * Releases a write lock. */ -extern void ttm_write_unlock(struct ttm_lock *lock); +extern void vmwgfx_write_unlock(struct vmwgfx_lock *lock); /** - * ttm_write_lock + * vmwgfx_write_lock * - * @lock: Pointer to a struct ttm_lock + * @lock: Pointer to a struct vmwgfx_lock * @interruptible: Interruptible sleeping while waiting for a lock. * * Takes the lock in write mode. * Returns: * -ERESTARTSYS If interrupted by a signal and interruptible is true. */ -extern int ttm_write_lock(struct ttm_lock *lock, bool interruptible); +extern int vmwgfx_write_lock(struct vmwgfx_lock *lock, bool interruptible); /** - * ttm_lock_set_kill + * vmwgfx_lock_set_kill * - * @lock: Pointer to a struct ttm_lock + * @lock: Pointer to a struct vmwgfx_lock * @val: Boolean whether to kill processes taking the lock. * @signal: Signal to send to the process taking the lock. * @@ -231,14 +231,14 @@ extern int ttm_write_lock(struct ttm_lock *lock, bool interruptible); * on using the TTM functionality when its resources has been taken down, for * example when the X server exits. A typical sequence would look like this: * - X server takes lock in write mode. - * - ttm_lock_set_kill() is called with @val set to true. + * - vmwgfx_lock_set_kill() is called with @val set to true. * - As part of X server exit, TTM resources are taken down. * - X server releases the lock on file release. * - Another dri client wants to render, takes the lock and is killed. * */ -static inline void ttm_lock_set_kill(struct ttm_lock *lock, bool val, - int signal) +static inline void vmwgfx_lock_set_kill(struct vmwgfx_lock *lock, bool val, + int signal) { lock->kill_takers = val; if (val) diff --git a/drivers/gpu/drm/ttm/ttm_object.c b/drivers/gpu/drm/vmwgfx/vmwgfx_object.c similarity index 69% rename from drivers/gpu/drm/ttm/ttm_object.c rename to drivers/gpu/drm/vmwgfx/vmwgfx_object.c index 1aa2baa83959..91e0102be15b 100644 --- a/drivers/gpu/drm/ttm/ttm_object.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_object.c @@ -42,9 +42,9 @@ /** - * struct ttm_object_file + * struct vmwgfx_object_file * - * @tdev: Pointer to the ttm_object_device. + * @tdev: Pointer to the vmwgfx_object_device. * * @lock: Lock that protects the ref_list list and the * ref_hash hash tables. @@ -52,30 +52,30 @@ * @ref_list: List of ttm_ref_objects to be destroyed at * file release. * - * @ref_hash: Hash tables of ref objects, one per ttm_ref_type, + * @ref_hash: Hash tables of ref objects, one per vmwgfx_ref_type, * for fast lookup of ref objects given a base object. */ -#define pr_fmt(fmt) "[TTM] " fmt +#define pr_fmt(fmt) "[VMWGFX] " fmt -#include <drm/ttm/ttm_object.h> #include <drm/ttm/ttm_module.h> #include <linux/list.h> #include <linux/spinlock.h> #include <linux/slab.h> #include <linux/module.h> #include <linux/atomic.h> +#include "vmwgfx_object.h" -struct ttm_object_file { - struct ttm_object_device *tdev; +struct vmwgfx_object_file { + struct vmwgfx_object_device *tdev; spinlock_t lock; struct list_head ref_list; - struct drm_open_hash ref_hash[TTM_REF_NUM]; + struct drm_open_hash ref_hash[VMWGFX_REF_NUM]; struct kref refcount; }; /** - * struct ttm_object_device + * struct vmwgfx_object_device * * @object_lock: lock that protects the object_hash hash table. * @@ -86,7 +86,7 @@ struct ttm_object_file { * This is the per-device data structure needed for ttm object management. */ -struct ttm_object_device { +struct vmwgfx_object_device { spinlock_t object_lock; struct drm_open_hash object_hash; atomic_t object_count; @@ -112,8 +112,8 @@ struct ttm_object_device { * This is similar to an idr object, but it also has a hash table entry * that allows lookup with a pointer to the referenced object as a key. In * that way, one can easily detect whether a base object is referenced by - * a particular ttm_object_file. It also carries a ref count to avoid creating - * multiple ref objects if a ttm_object_file references the same base + * a particular vmwgfx_object_file. It also carries a ref count to avoid creating + * multiple ref objects if a vmwgfx_object_file references the same base * object more than once. */ @@ -122,51 +122,51 @@ struct ttm_ref_object { struct drm_hash_item hash; struct list_head head; struct kref kref; - enum ttm_ref_type ref_type; - struct ttm_base_object *obj; - struct ttm_object_file *tfile; + enum vmwgfx_ref_type ref_type; + struct vmwgfx_base_object *obj; + struct vmwgfx_object_file *tfile; }; static void ttm_prime_dmabuf_release(struct dma_buf *dma_buf); -static inline struct ttm_object_file * -ttm_object_file_ref(struct ttm_object_file *tfile) +static inline struct vmwgfx_object_file * +vmwgfx_object_file_ref(struct vmwgfx_object_file *tfile) { kref_get(&tfile->refcount); return tfile; } -static void ttm_object_file_destroy(struct kref *kref) +static void vmwgfx_object_file_destroy(struct kref *kref) { - struct ttm_object_file *tfile = - container_of(kref, struct ttm_object_file, refcount); + struct vmwgfx_object_file *tfile = + container_of(kref, struct vmwgfx_object_file, refcount); kfree(tfile); } -static inline void ttm_object_file_unref(struct ttm_object_file **p_tfile) +static inline void vmwgfx_object_file_unref(struct vmwgfx_object_file **p_tfile) { - struct ttm_object_file *tfile = *p_tfile; + struct vmwgfx_object_file *tfile = *p_tfile; *p_tfile = NULL; - kref_put(&tfile->refcount, ttm_object_file_destroy); + kref_put(&tfile->refcount, vmwgfx_object_file_destroy); } -int ttm_base_object_init(struct ttm_object_file *tfile, - struct ttm_base_object *base, +int vmwgfx_base_object_init(struct vmwgfx_object_file *tfile, + struct vmwgfx_base_object *base, bool shareable, - enum ttm_object_type object_type, - void (*refcount_release) (struct ttm_base_object **), - void (*ref_obj_release) (struct ttm_base_object *, - enum ttm_ref_type ref_type)) + enum vmwgfx_object_type object_type, + void (*refcount_release) (struct vmwgfx_base_object **), + void (*ref_obj_release) (struct vmwgfx_base_object *, + enum vmwgfx_ref_type ref_type)) { - struct ttm_object_device *tdev = tfile->tdev; + struct vmwgfx_object_device *tdev = tfile->tdev; int ret; base->shareable = shareable; - base->tfile = ttm_object_file_ref(tfile); + base->tfile = vmwgfx_object_file_ref(tfile); base->refcount_release = refcount_release; base->ref_obj_release = ref_obj_release; base->object_type = object_type; @@ -179,11 +179,11 @@ int ttm_base_object_init(struct ttm_object_file *tfile, if (unlikely(ret != 0)) goto out_err0; - ret = ttm_ref_object_add(tfile, base, TTM_REF_USAGE, NULL, false); + ret = vmwgfx_ref_object_add(tfile, base, VMWGFX_REF_USAGE, NULL, false); if (unlikely(ret != 0)) goto out_err1; - ttm_base_object_unref(&base); + vmwgfx_base_object_unref(&base); return 0; out_err1: @@ -193,13 +193,13 @@ int ttm_base_object_init(struct ttm_object_file *tfile, out_err0: return ret; } -EXPORT_SYMBOL(ttm_base_object_init); +EXPORT_SYMBOL(vmwgfx_base_object_init); static void ttm_release_base(struct kref *kref) { - struct ttm_base_object *base = - container_of(kref, struct ttm_base_object, refcount); - struct ttm_object_device *tdev = base->tfile->tdev; + struct vmwgfx_base_object *base = + container_of(kref, struct vmwgfx_base_object, refcount); + struct vmwgfx_object_device *tdev = base->tfile->tdev; spin_lock(&tdev->object_lock); (void)drm_ht_remove_item_rcu(&tdev->object_hash, &base->hash); @@ -208,30 +208,30 @@ static void ttm_release_base(struct kref *kref) /* * Note: We don't use synchronize_rcu() here because it's far * too slow. It's up to the user to free the object using - * call_rcu() or ttm_base_object_kfree(). + * call_rcu() or vmwgfx_base_object_kfree(). */ - ttm_object_file_unref(&base->tfile); + vmwgfx_object_file_unref(&base->tfile); if (base->refcount_release) base->refcount_release(&base); } -void ttm_base_object_unref(struct ttm_base_object **p_base) +void vmwgfx_base_object_unref(struct vmwgfx_base_object **p_base) { - struct ttm_base_object *base = *p_base; + struct vmwgfx_base_object *base = *p_base; *p_base = NULL; kref_put(&base->refcount, ttm_release_base); } -EXPORT_SYMBOL(ttm_base_object_unref); +EXPORT_SYMBOL(vmwgfx_base_object_unref); -struct ttm_base_object *ttm_base_object_lookup(struct ttm_object_file *tfile, +struct vmwgfx_base_object *vmwgfx_base_object_lookup(struct vmwgfx_object_file *tfile, uint32_t key) { - struct ttm_base_object *base = NULL; + struct vmwgfx_base_object *base = NULL; struct drm_hash_item *hash; - struct drm_open_hash *ht = &tfile->ref_hash[TTM_REF_USAGE]; + struct drm_open_hash *ht = &tfile->ref_hash[VMWGFX_REF_USAGE]; int ret; rcu_read_lock(); @@ -246,12 +246,12 @@ struct ttm_base_object *ttm_base_object_lookup(struct ttm_object_file *tfile, return base; } -EXPORT_SYMBOL(ttm_base_object_lookup); +EXPORT_SYMBOL(vmwgfx_base_object_lookup); -struct ttm_base_object * -ttm_base_object_lookup_for_ref(struct ttm_object_device *tdev, uint32_t key) +struct vmwgfx_base_object * +vmwgfx_base_object_lookup_for_ref(struct vmwgfx_object_device *tdev, uint32_t key) { - struct ttm_base_object *base = NULL; + struct vmwgfx_base_object *base = NULL; struct drm_hash_item *hash; struct drm_open_hash *ht = &tdev->object_hash; int ret; @@ -260,7 +260,7 @@ ttm_base_object_lookup_for_ref(struct ttm_object_device *tdev, uint32_t key) ret = drm_ht_find_item_rcu(ht, key, &hash); if (likely(ret == 0)) { - base = drm_hash_entry(hash, struct ttm_base_object, hash); + base = drm_hash_entry(hash, struct vmwgfx_base_object, hash); if (!kref_get_unless_zero(&base->refcount)) base = NULL; } @@ -268,22 +268,22 @@ ttm_base_object_lookup_for_ref(struct ttm_object_device *tdev, uint32_t key) return base; } -EXPORT_SYMBOL(ttm_base_object_lookup_for_ref); +EXPORT_SYMBOL(vmwgfx_base_object_lookup_for_ref); /** - * ttm_ref_object_exists - Check whether a caller has a valid ref object + * vmwgfx_ref_object_exists - Check whether a caller has a valid ref object * (has opened) a base object. * - * @tfile: Pointer to a struct ttm_object_file identifying the caller. + * @tfile: Pointer to a struct vmwgfx_object_file identifying the caller. * @base: Pointer to a struct base object. * * Checks wether the caller identified by @tfile has put a valid USAGE * reference object on the base object identified by @base. */ -bool ttm_ref_object_exists(struct ttm_object_file *tfile, - struct ttm_base_object *base) +bool vmwgfx_ref_object_exists(struct vmwgfx_object_file *tfile, + struct vmwgfx_base_object *base) { - struct drm_open_hash *ht = &tfile->ref_hash[TTM_REF_USAGE]; + struct drm_open_hash *ht = &tfile->ref_hash[VMWGFX_REF_USAGE]; struct drm_hash_item *hash; struct ttm_ref_object *ref; @@ -314,11 +314,11 @@ bool ttm_ref_object_exists(struct ttm_object_file *tfile, rcu_read_unlock(); return false; } -EXPORT_SYMBOL(ttm_ref_object_exists); +EXPORT_SYMBOL(vmwgfx_ref_object_exists); -int ttm_ref_object_add(struct ttm_object_file *tfile, - struct ttm_base_object *base, - enum ttm_ref_type ref_type, bool *existed, +int vmwgfx_ref_object_add(struct vmwgfx_object_file *tfile, + struct vmwgfx_base_object *base, + enum vmwgfx_ref_type ref_type, bool *existed, bool require_existed) { struct drm_open_hash *ht = &tfile->ref_hash[ref_type]; @@ -390,14 +390,14 @@ int ttm_ref_object_add(struct ttm_object_file *tfile, return ret; } -EXPORT_SYMBOL(ttm_ref_object_add); +EXPORT_SYMBOL(vmwgfx_ref_object_add); static void ttm_ref_object_release(struct kref *kref) { struct ttm_ref_object *ref = container_of(kref, struct ttm_ref_object, kref); - struct ttm_base_object *base = ref->obj; - struct ttm_object_file *tfile = ref->tfile; + struct vmwgfx_base_object *base = ref->obj; + struct vmwgfx_object_file *tfile = ref->tfile; struct drm_open_hash *ht; struct ttm_mem_global *mem_glob = tfile->tdev->mem_glob; @@ -406,17 +406,17 @@ static void ttm_ref_object_release(struct kref *kref) list_del(&ref->head); spin_unlock(&tfile->lock); - if (ref->ref_type != TTM_REF_USAGE && base->ref_obj_release) + if (ref->ref_type != VMWGFX_REF_USAGE && base->ref_obj_release) base->ref_obj_release(base, ref->ref_type); - ttm_base_object_unref(&ref->obj); + vmwgfx_base_object_unref(&ref->obj); ttm_mem_global_free(mem_glob, sizeof(*ref)); kfree_rcu(ref, rcu_head); spin_lock(&tfile->lock); } -int ttm_ref_object_base_unref(struct ttm_object_file *tfile, - unsigned long key, enum ttm_ref_type ref_type) +int vmwgfx_ref_object_base_unref(struct vmwgfx_object_file *tfile, + unsigned long key, enum vmwgfx_ref_type ref_type) { struct drm_open_hash *ht = &tfile->ref_hash[ref_type]; struct ttm_ref_object *ref; @@ -434,14 +434,14 @@ int ttm_ref_object_base_unref(struct ttm_object_file *tfile, spin_unlock(&tfile->lock); return 0; } -EXPORT_SYMBOL(ttm_ref_object_base_unref); +EXPORT_SYMBOL(vmwgfx_ref_object_base_unref); -void ttm_object_file_release(struct ttm_object_file **p_tfile) +void vmwgfx_object_file_release(struct vmwgfx_object_file **p_tfile) { struct ttm_ref_object *ref; struct list_head *list; unsigned int i; - struct ttm_object_file *tfile = *p_tfile; + struct vmwgfx_object_file *tfile = *p_tfile; *p_tfile = NULL; spin_lock(&tfile->lock); @@ -458,17 +458,17 @@ void ttm_object_file_release(struct ttm_object_file **p_tfile) } spin_unlock(&tfile->lock); - for (i = 0; i < TTM_REF_NUM; ++i) + for (i = 0; i < VMWGFX_REF_NUM; ++i) drm_ht_remove(&tfile->ref_hash[i]); - ttm_object_file_unref(&tfile); + vmwgfx_object_file_unref(&tfile); } -EXPORT_SYMBOL(ttm_object_file_release); +EXPORT_SYMBOL(vmwgfx_object_file_release); -struct ttm_object_file *ttm_object_file_init(struct ttm_object_device *tdev, +struct vmwgfx_object_file *vmwgfx_object_file_init(struct vmwgfx_object_device *tdev, unsigned int hash_order) { - struct ttm_object_file *tfile = kmalloc(sizeof(*tfile), GFP_KERNEL); + struct vmwgfx_object_file *tfile = kmalloc(sizeof(*tfile), GFP_KERNEL); unsigned int i; unsigned int j = 0; int ret; @@ -481,7 +481,7 @@ struct ttm_object_file *ttm_object_file_init(struct ttm_object_device *tdev, kref_init(&tfile->refcount); INIT_LIST_HEAD(&tfile->ref_list); - for (i = 0; i < TTM_REF_NUM; ++i) { + for (i = 0; i < VMWGFX_REF_NUM; ++i) { ret = drm_ht_create(&tfile->ref_hash[i], hash_order); if (ret) { j = i; @@ -498,14 +498,14 @@ struct ttm_object_file *ttm_object_file_init(struct ttm_object_device *tdev, return NULL; } -EXPORT_SYMBOL(ttm_object_file_init); +EXPORT_SYMBOL(vmwgfx_object_file_init); -struct ttm_object_device * -ttm_object_device_init(struct ttm_mem_global *mem_glob, +struct vmwgfx_object_device * +vmwgfx_object_device_init(struct ttm_mem_global *mem_glob, unsigned int hash_order, const struct dma_buf_ops *ops) { - struct ttm_object_device *tdev = kmalloc(sizeof(*tdev), GFP_KERNEL); + struct vmwgfx_object_device *tdev = kmalloc(sizeof(*tdev), GFP_KERNEL); int ret; if (unlikely(tdev == NULL)) @@ -529,11 +529,11 @@ ttm_object_device_init(struct ttm_mem_global *mem_glob, kfree(tdev); return NULL; } -EXPORT_SYMBOL(ttm_object_device_init); +EXPORT_SYMBOL(vmwgfx_object_device_init); -void ttm_object_device_release(struct ttm_object_device **p_tdev) +void vmwgfx_object_device_release(struct vmwgfx_object_device **p_tdev) { - struct ttm_object_device *tdev = *p_tdev; + struct vmwgfx_object_device *tdev = *p_tdev; *p_tdev = NULL; @@ -541,7 +541,7 @@ void ttm_object_device_release(struct ttm_object_device **p_tdev) kfree(tdev); } -EXPORT_SYMBOL(ttm_object_device_release); +EXPORT_SYMBOL(vmwgfx_object_device_release); /** * get_dma_buf_unless_doomed - get a dma_buf reference if possible. @@ -564,20 +564,20 @@ static bool __must_check get_dma_buf_unless_doomed(struct dma_buf *dmabuf) /** * ttm_prime_refcount_release - refcount release method for a prime object. * - * @p_base: Pointer to ttm_base_object pointer. + * @p_base: Pointer to vmwgfx_base_object pointer. * * This is a wrapper that calls the refcount_release founction of the * underlying object. At the same time it cleans up the prime object. * This function is called when all references to the base object we * derive from are gone. */ -static void ttm_prime_refcount_release(struct ttm_base_object **p_base) +static void ttm_prime_refcount_release(struct vmwgfx_base_object **p_base) { - struct ttm_base_object *base = *p_base; - struct ttm_prime_object *prime; + struct vmwgfx_base_object *base = *p_base; + struct vmwgfx_prime_object *prime; *p_base = NULL; - prime = container_of(base, struct ttm_prime_object, base); + prime = container_of(base, struct vmwgfx_prime_object, base); BUG_ON(prime->dma_buf != NULL); mutex_destroy(&prime->mutex); if (prime->refcount_release) @@ -596,10 +596,10 @@ static void ttm_prime_refcount_release(struct ttm_base_object **p_base) */ static void ttm_prime_dmabuf_release(struct dma_buf *dma_buf) { - struct ttm_prime_object *prime = - (struct ttm_prime_object *) dma_buf->priv; - struct ttm_base_object *base = &prime->base; - struct ttm_object_device *tdev = base->tfile->tdev; + struct vmwgfx_prime_object *prime = + (struct vmwgfx_prime_object *) dma_buf->priv; + struct vmwgfx_base_object *base = &prime->base; + struct vmwgfx_object_device *tdev = base->tfile->tdev; if (tdev->dmabuf_release) tdev->dmabuf_release(dma_buf); @@ -608,13 +608,13 @@ static void ttm_prime_dmabuf_release(struct dma_buf *dma_buf) prime->dma_buf = NULL; mutex_unlock(&prime->mutex); ttm_mem_global_free(tdev->mem_glob, tdev->dma_buf_size); - ttm_base_object_unref(&base); + vmwgfx_base_object_unref(&base); } /** - * ttm_prime_fd_to_handle - Get a base object handle from a prime fd + * vmwgfx_prime_fd_to_handle - Get a base object handle from a prime fd * - * @tfile: A struct ttm_object_file identifying the caller. + * @tfile: A struct vmwgfx_object_file identifying the caller. * @fd: The prime / dmabuf fd. * @handle: The returned handle. * @@ -622,13 +622,13 @@ static void ttm_prime_dmabuf_release(struct dma_buf *dma_buf) * a dma-buf. Note that we don't handle imports yet, because we simply * have no consumers of that implementation. */ -int ttm_prime_fd_to_handle(struct ttm_object_file *tfile, +int vmwgfx_prime_fd_to_handle(struct vmwgfx_object_file *tfile, int fd, u32 *handle) { - struct ttm_object_device *tdev = tfile->tdev; + struct vmwgfx_object_device *tdev = tfile->tdev; struct dma_buf *dma_buf; - struct ttm_prime_object *prime; - struct ttm_base_object *base; + struct vmwgfx_prime_object *prime; + struct vmwgfx_base_object *base; int ret; dma_buf = dma_buf_get(fd); @@ -638,44 +638,44 @@ int ttm_prime_fd_to_handle(struct ttm_object_file *tfile, if (dma_buf->ops != &tdev->ops) return -ENOSYS; - prime = (struct ttm_prime_object *) dma_buf->priv; + prime = (struct vmwgfx_prime_object *) dma_buf->priv; base = &prime->base; *handle = base->hash.key; - ret = ttm_ref_object_add(tfile, base, TTM_REF_USAGE, NULL, false); + ret = vmwgfx_ref_object_add(tfile, base, VMWGFX_REF_USAGE, NULL, false); dma_buf_put(dma_buf); return ret; } -EXPORT_SYMBOL_GPL(ttm_prime_fd_to_handle); +EXPORT_SYMBOL_GPL(vmwgfx_prime_fd_to_handle); /** - * ttm_prime_handle_to_fd - Return a dma_buf fd from a ttm prime object + * vmwgfx_prime_handle_to_fd - Return a dma_buf fd from a ttm prime object * - * @tfile: Struct ttm_object_file identifying the caller. + * @tfile: Struct vmwgfx_object_file identifying the caller. * @handle: Handle to the object we're exporting from. * @flags: flags for dma-buf creation. We just pass them on. * @prime_fd: The returned file descriptor. * */ -int ttm_prime_handle_to_fd(struct ttm_object_file *tfile, +int vmwgfx_prime_handle_to_fd(struct vmwgfx_object_file *tfile, uint32_t handle, uint32_t flags, int *prime_fd) { - struct ttm_object_device *tdev = tfile->tdev; - struct ttm_base_object *base; + struct vmwgfx_object_device *tdev = tfile->tdev; + struct vmwgfx_base_object *base; struct dma_buf *dma_buf; - struct ttm_prime_object *prime; + struct vmwgfx_prime_object *prime; int ret; - base = ttm_base_object_lookup(tfile, handle); + base = vmwgfx_base_object_lookup(tfile, handle); if (unlikely(base == NULL || - base->object_type != ttm_prime_type)) { + base->object_type != vmwgfx_prime_type)) { ret = -ENOENT; goto out_unref; } - prime = container_of(base, struct ttm_prime_object, base); + prime = container_of(base, struct vmwgfx_prime_object, base); if (unlikely(!base->shareable)) { ret = -EPERM; goto out_unref; @@ -735,40 +735,40 @@ int ttm_prime_handle_to_fd(struct ttm_object_file *tfile, out_unref: if (base) - ttm_base_object_unref(&base); + vmwgfx_base_object_unref(&base); return ret; } -EXPORT_SYMBOL_GPL(ttm_prime_handle_to_fd); +EXPORT_SYMBOL_GPL(vmwgfx_prime_handle_to_fd); /** - * ttm_prime_object_init - Initialize a ttm_prime_object + * vmwgfx_prime_object_init - Initialize a vmwgfx_prime_object * - * @tfile: struct ttm_object_file identifying the caller + * @tfile: struct vmwgfx_object_file identifying the caller * @size: The size of the dma_bufs we export. * @prime: The object to be initialized. - * @shareable: See ttm_base_object_init - * @type: See ttm_base_object_init - * @refcount_release: See ttm_base_object_init - * @ref_obj_release: See ttm_base_object_init + * @shareable: See vmwgfx_base_object_init + * @type: See vmwgfx_base_object_init + * @refcount_release: See vmwgfx_base_object_init + * @ref_obj_release: See vmwgfx_base_object_init * * Initializes an object which is compatible with the drm_prime model * for data sharing between processes and devices. */ -int ttm_prime_object_init(struct ttm_object_file *tfile, size_t size, - struct ttm_prime_object *prime, bool shareable, - enum ttm_object_type type, - void (*refcount_release) (struct ttm_base_object **), - void (*ref_obj_release) (struct ttm_base_object *, - enum ttm_ref_type ref_type)) +int vmwgfx_prime_object_init(struct vmwgfx_object_file *tfile, size_t size, + struct vmwgfx_prime_object *prime, bool shareable, + enum vmwgfx_object_type type, + void (*refcount_release) (struct vmwgfx_base_object **), + void (*ref_obj_release) (struct vmwgfx_base_object *, + enum vmwgfx_ref_type ref_type)) { mutex_init(&prime->mutex); prime->size = PAGE_ALIGN(size); prime->real_type = type; prime->dma_buf = NULL; prime->refcount_release = refcount_release; - return ttm_base_object_init(tfile, &prime->base, shareable, - ttm_prime_type, + return vmwgfx_base_object_init(tfile, &prime->base, shareable, + vmwgfx_prime_type, ttm_prime_refcount_release, ref_obj_release); } -EXPORT_SYMBOL(ttm_prime_object_init); +EXPORT_SYMBOL(vmwgfx_prime_object_init); diff --git a/include/drm/ttm/ttm_object.h b/drivers/gpu/drm/vmwgfx/vmwgfx_object.h similarity index 57% rename from include/drm/ttm/ttm_object.h rename to drivers/gpu/drm/vmwgfx/vmwgfx_object.h index a98bfeb4239e..b69acfab8fac 100644 --- a/include/drm/ttm/ttm_object.h +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_object.h @@ -27,78 +27,77 @@ /* * Authors: Thomas Hellstrom <thellstrom-at-vmware-dot-com> */ -/** @file ttm_object.h +/** @file vmwgfx_object.h * * Base- and reference object implementation for the various * ttm objects. Implements reference counting, minimal security checks * and release on file close. */ -#ifndef _TTM_OBJECT_H_ -#define _TTM_OBJECT_H_ +#ifndef _VMWGFX_OBJECT_H_ +#define _VMWGFX_OBJECT_H_ #include <linux/list.h> #include <drm/drm_hashtab.h> +#include <drm/ttm/ttm_memory.h> #include <linux/kref.h> #include <linux/rcupdate.h> #include <linux/dma-buf.h> -#include "ttm_memory.h" - /** - * enum ttm_ref_type + * enum vmwgfx_ref_type * * Describes what type of reference a ref object holds. * - * TTM_REF_USAGE is a simple refcount on a base object. + * VMWGFX_REF_USAGE is a simple refcount on a base object. * - * TTM_REF_SYNCCPU_READ is a SYNCCPU_READ reference on a + * VMWGFX_REF_SYNCCPU_READ is a SYNCCPU_READ reference on a * buffer object. * - * TTM_REF_SYNCCPU_WRITE is a SYNCCPU_WRITE reference on a + * VMWGFX_REF_SYNCCPU_WRITE is a SYNCCPU_WRITE reference on a * buffer object. * */ -enum ttm_ref_type { - TTM_REF_USAGE, - TTM_REF_SYNCCPU_READ, - TTM_REF_SYNCCPU_WRITE, - TTM_REF_NUM +enum vmwgfx_ref_type { + VMWGFX_REF_USAGE, + VMWGFX_REF_SYNCCPU_READ, + VMWGFX_REF_SYNCCPU_WRITE, + VMWGFX_REF_NUM }; /** - * enum ttm_object_type + * enum vmwgfx_object_type * * One entry per ttm object type. * Device-specific types should use the - * ttm_driver_typex types. + * vmwgfx_driver_typex types. */ -enum ttm_object_type { - ttm_fence_type, - ttm_buffer_type, - ttm_lock_type, - ttm_prime_type, - ttm_driver_type0 = 256, - ttm_driver_type1, - ttm_driver_type2, - ttm_driver_type3, - ttm_driver_type4, - ttm_driver_type5 +enum vmwgfx_object_type { + vmwgfx_fence_type, + vmwgfx_buffer_type, + vmwgfx_lock_type, + vmwgfx_prime_type, + vmwgfx_driver_type0 = 256, + vmwgfx_driver_type1, + vmwgfx_driver_type2, + vmwgfx_driver_type3, + vmwgfx_driver_type4, + vmwgfx_driver_type5 }; -struct ttm_object_file; -struct ttm_object_device; +struct vmwgfx_object_file; +struct vmwgfx_object_device; /** - * struct ttm_base_object + * struct vmwgfx_base_object * * @hash: hash entry for the per-device object hash. * @type: derived type this object is base class for. - * @shareable: Other ttm_object_files can access this object. + * @shareable: Other vmwgfx_object_files can access this object. * - * @tfile: Pointer to ttm_object_file of the creator. + * @tfile: Pointer to vmwgfx_object_file of the creator. * NULL if the object was not created by a user request. * (kernel object). * @@ -114,7 +113,7 @@ struct ttm_object_device; * "base" should be set to NULL by the function. * * @ref_obj_release: A function to be called when a reference object - * with another ttm_ref_type than TTM_REF_USAGE is deleted. + * with another vmwgfx_ref_type than VMWGFX_REF_USAGE is deleted. * This function may, for example, release a lock held by a user-space * process. * @@ -123,108 +122,108 @@ struct ttm_object_device; * access and refcounting, minimal access contol and hooks for unref actions. */ -struct ttm_base_object { +struct vmwgfx_base_object { struct rcu_head rhead; struct drm_hash_item hash; - enum ttm_object_type object_type; + enum vmwgfx_object_type object_type; bool shareable; - struct ttm_object_file *tfile; + struct vmwgfx_object_file *tfile; struct kref refcount; - void (*refcount_release) (struct ttm_base_object **base); - void (*ref_obj_release) (struct ttm_base_object *base, - enum ttm_ref_type ref_type); + void (*refcount_release) (struct vmwgfx_base_object **base); + void (*ref_obj_release) (struct vmwgfx_base_object *base, + enum vmwgfx_ref_type ref_type); }; /** - * struct ttm_prime_object - Modified base object that is prime-aware + * struct vmwgfx_prime_object - Modified base object that is prime-aware * - * @base: struct ttm_base_object that we derive from + * @base: struct vmwgfx_base_object that we derive from * @mutex: Mutex protecting the @dma_buf member. * @size: Size of the dma_buf associated with this object * @real_type: Type of the underlying object. Needed since we're setting - * the value of @base::object_type to ttm_prime_type + * the value of @base::object_type to vmwgfx_prime_type * @dma_buf: Non ref-coutned pointer to a struct dma_buf created from this * object. * @refcount_release: The underlying object's release method. Needed since * we set @base::refcount_release to our own release method. */ -struct ttm_prime_object { - struct ttm_base_object base; +struct vmwgfx_prime_object { + struct vmwgfx_base_object base; struct mutex mutex; size_t size; - enum ttm_object_type real_type; + enum vmwgfx_object_type real_type; struct dma_buf *dma_buf; - void (*refcount_release) (struct ttm_base_object **); + void (*refcount_release) (struct vmwgfx_base_object **); }; /** - * ttm_base_object_init + * vmwgfx_base_object_init * - * @tfile: Pointer to a struct ttm_object_file. - * @base: The struct ttm_base_object to initialize. + * @tfile: Pointer to a struct vmwgfx_object_file. + * @base: The struct vmwgfx_base_object to initialize. * @shareable: This object is shareable with other applcations. * (different @tfile pointers.) * @type: The object type. - * @refcount_release: See the struct ttm_base_object description. - * @ref_obj_release: See the struct ttm_base_object description. + * @refcount_release: See the struct vmwgfx_base_object description. + * @ref_obj_release: See the struct vmwgfx_base_object description. * - * Initializes a struct ttm_base_object. + * Initializes a struct vmwgfx_base_object. */ -extern int ttm_base_object_init(struct ttm_object_file *tfile, - struct ttm_base_object *base, +extern int vmwgfx_base_object_init(struct vmwgfx_object_file *tfile, + struct vmwgfx_base_object *base, bool shareable, - enum ttm_object_type type, - void (*refcount_release) (struct ttm_base_object + enum vmwgfx_object_type type, + void (*refcount_release) (struct vmwgfx_base_object **), - void (*ref_obj_release) (struct ttm_base_object + void (*ref_obj_release) (struct vmwgfx_base_object *, - enum ttm_ref_type + enum vmwgfx_ref_type ref_type)); /** - * ttm_base_object_lookup + * vmwgfx_base_object_lookup * - * @tfile: Pointer to a struct ttm_object_file. + * @tfile: Pointer to a struct vmwgfx_object_file. * @key: Hash key * - * Looks up a struct ttm_base_object with the key @key. + * Looks up a struct vmwgfx_base_object with the key @key. */ -extern struct ttm_base_object *ttm_base_object_lookup(struct ttm_object_file +extern struct vmwgfx_base_object *vmwgfx_base_object_lookup(struct vmwgfx_object_file *tfile, uint32_t key); /** - * ttm_base_object_lookup_for_ref + * vmwgfx_base_object_lookup_for_ref * - * @tdev: Pointer to a struct ttm_object_device. + * @tdev: Pointer to a struct vmwgfx_object_device. * @key: Hash key * - * Looks up a struct ttm_base_object with the key @key. + * Looks up a struct vmwgfx_base_object with the key @key. * This function should only be used when the struct tfile associated with the * caller doesn't yet have a reference to the base object. */ -extern struct ttm_base_object * -ttm_base_object_lookup_for_ref(struct ttm_object_device *tdev, uint32_t key); +extern struct vmwgfx_base_object * +vmwgfx_base_object_lookup_for_ref(struct vmwgfx_object_device *tdev, uint32_t key); /** - * ttm_base_object_unref + * vmwgfx_base_object_unref * - * @p_base: Pointer to a pointer referencing a struct ttm_base_object. + * @p_base: Pointer to a pointer referencing a struct vmwgfx_base_object. * * Decrements the base object refcount and clears the pointer pointed to by * p_base. */ -extern void ttm_base_object_unref(struct ttm_base_object **p_base); +extern void vmwgfx_base_object_unref(struct vmwgfx_base_object **p_base); /** - * ttm_ref_object_add. + * vmwgfx_ref_object_add. * - * @tfile: A struct ttm_object_file representing the application owning the + * @tfile: A struct vmwgfx_object_file representing the application owning the * ref_object. * @base: The base object to reference. * @ref_type: The type of reference. @@ -244,16 +243,16 @@ extern void ttm_base_object_unref(struct ttm_base_object **p_base); * make sure the lock is released if the application dies. A ref object * will hold a single reference on a base object. */ -extern int ttm_ref_object_add(struct ttm_object_file *tfile, - struct ttm_base_object *base, - enum ttm_ref_type ref_type, bool *existed, +extern int vmwgfx_ref_object_add(struct vmwgfx_object_file *tfile, + struct vmwgfx_base_object *base, + enum vmwgfx_ref_type ref_type, bool *existed, bool require_existed); -extern bool ttm_ref_object_exists(struct ttm_object_file *tfile, - struct ttm_base_object *base); +extern bool vmwgfx_ref_object_exists(struct vmwgfx_object_file *tfile, + struct vmwgfx_base_object *base); /** - * ttm_ref_object_base_unref + * vmwgfx_ref_object_base_unref * * @key: Key representing the base object. * @ref_type: Ref type of the ref object to be dereferenced. @@ -263,38 +262,38 @@ extern bool ttm_ref_object_exists(struct ttm_object_file *tfile, * references, the ref object will be destroyed and the base object * will be unreferenced. */ -extern int ttm_ref_object_base_unref(struct ttm_object_file *tfile, +extern int vmwgfx_ref_object_base_unref(struct vmwgfx_object_file *tfile, unsigned long key, - enum ttm_ref_type ref_type); + enum vmwgfx_ref_type ref_type); /** - * ttm_object_file_init - initialize a struct ttm_object file + * vmwgfx_object_file_init - initialize a struct vmwgfx_object file * - * @tdev: A struct ttm_object device this file is initialized on. + * @tdev: A struct vmwgfx_object device this file is initialized on. * @hash_order: Order of the hash table used to hold the reference objects. * * This is typically called by the file_ops::open function. */ -extern struct ttm_object_file *ttm_object_file_init(struct ttm_object_device +extern struct vmwgfx_object_file *vmwgfx_object_file_init(struct vmwgfx_object_device *tdev, unsigned int hash_order); /** - * ttm_object_file_release - release data held by a ttm_object_file + * vmwgfx_object_file_release - release data held by a vmwgfx_object_file * - * @p_tfile: Pointer to pointer to the ttm_object_file object to release. + * @p_tfile: Pointer to pointer to the vmwgfx_object_file object to release. * *p_tfile will be set to NULL by this function. * - * Releases all data associated by a ttm_object_file. + * Releases all data associated by a vmwgfx_object_file. * Typically called from file_ops::release. The caller must * ensure that there are no concurrent users of tfile. */ -extern void ttm_object_file_release(struct ttm_object_file **p_tfile); +extern void vmwgfx_object_file_release(struct vmwgfx_object_file **p_tfile); /** - * ttm_object device init - initialize a struct ttm_object_device + * vmwgfx_object device init - initialize a struct vmwgfx_object_device * * @mem_glob: struct ttm_mem_global for memory accounting. * @hash_order: Order of hash table used to hash the base objects. @@ -304,51 +303,51 @@ extern void ttm_object_file_release(struct ttm_object_file **p_tfile); * data structures needed for ttm base and ref objects. */ -extern struct ttm_object_device * -ttm_object_device_init(struct ttm_mem_global *mem_glob, +extern struct vmwgfx_object_device * +vmwgfx_object_device_init(struct ttm_mem_global *mem_glob, unsigned int hash_order, const struct dma_buf_ops *ops); /** - * ttm_object_device_release - release data held by a ttm_object_device + * vmwgfx_object_device_release - release data held by a vmwgfx_object_device * - * @p_tdev: Pointer to pointer to the ttm_object_device object to release. + * @p_tdev: Pointer to pointer to the vmwgfx_object_device object to release. * *p_tdev will be set to NULL by this function. * - * Releases all data associated by a ttm_object_device. + * Releases all data associated by a vmwgfx_object_device. * Typically called from driver::unload before the destruction of the * device private data structure. */ -extern void ttm_object_device_release(struct ttm_object_device **p_tdev); +extern void vmwgfx_object_device_release(struct vmwgfx_object_device **p_tdev); -#define ttm_base_object_kfree(__object, __base)\ +#define vmwgfx_base_object_kfree(__object, __base)\ kfree_rcu(__object, __base.rhead) -extern int ttm_prime_object_init(struct ttm_object_file *tfile, +extern int vmwgfx_prime_object_init(struct vmwgfx_object_file *tfile, size_t size, - struct ttm_prime_object *prime, + struct vmwgfx_prime_object *prime, bool shareable, - enum ttm_object_type type, + enum vmwgfx_object_type type, void (*refcount_release) - (struct ttm_base_object **), + (struct vmwgfx_base_object **), void (*ref_obj_release) - (struct ttm_base_object *, - enum ttm_ref_type ref_type)); + (struct vmwgfx_base_object *, + enum vmwgfx_ref_type ref_type)); -static inline enum ttm_object_type -ttm_base_object_type(struct ttm_base_object *base) +static inline enum vmwgfx_object_type +vmwgfx_base_object_type(struct vmwgfx_base_object *base) { - return (base->object_type == ttm_prime_type) ? - container_of(base, struct ttm_prime_object, base)->real_type : + return (base->object_type == vmwgfx_prime_type) ? + container_of(base, struct vmwgfx_prime_object, base)->real_type : base->object_type; } -extern int ttm_prime_fd_to_handle(struct ttm_object_file *tfile, +extern int vmwgfx_prime_fd_to_handle(struct vmwgfx_object_file *tfile, int fd, u32 *handle); -extern int ttm_prime_handle_to_fd(struct ttm_object_file *tfile, +extern int vmwgfx_prime_handle_to_fd(struct vmwgfx_object_file *tfile, uint32_t handle, uint32_t flags, int *prime_fd); -#define ttm_prime_object_kfree(__obj, __prime) \ +#define vmwgfx_prime_object_kfree(__obj, __prime) \ kfree_rcu(__obj, __prime.base.rhead) #endif diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c b/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c index 222c9c2123a1..ba4546d1e6fc 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c @@ -461,7 +461,7 @@ static bool vmw_overlay_available(const struct vmw_private *dev_priv) int vmw_overlay_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv) { - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; struct vmw_private *dev_priv = vmw_priv(dev); struct vmw_overlay *overlay = dev_priv->overlay_priv; struct drm_vmw_control_stream_arg *arg = diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_prime.c b/drivers/gpu/drm/vmwgfx/vmwgfx_prime.c index 0d42a46521fc..22b548a4d632 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_prime.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_prime.c @@ -31,8 +31,8 @@ */ #include "vmwgfx_drv.h" +#include "vmwgfx_object.h" #include <linux/dma-buf.h> -#include <drm/ttm/ttm_object.h> /* * DMA-BUF attach- and mapping methods. No need to implement @@ -121,9 +121,9 @@ int vmw_prime_fd_to_handle(struct drm_device *dev, struct drm_file *file_priv, int fd, u32 *handle) { - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; - return ttm_prime_fd_to_handle(tfile, fd, handle); + return vmwgfx_prime_fd_to_handle(tfile, fd, handle); } int vmw_prime_handle_to_fd(struct drm_device *dev, @@ -131,7 +131,7 @@ int vmw_prime_handle_to_fd(struct drm_device *dev, uint32_t handle, uint32_t flags, int *prime_fd) { - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; - return ttm_prime_handle_to_fd(tfile, handle, flags, prime_fd); + return vmwgfx_prime_handle_to_fd(tfile, handle, flags, prime_fd); } diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c index 200904ff9a22..cec67e100de8 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c @@ -26,8 +26,8 @@ **************************************************************************/ #include "vmwgfx_drv.h" +#include "vmwgfx_object.h" #include <drm/vmwgfx_drm.h> -#include <drm/ttm/ttm_object.h> #include <drm/ttm/ttm_placement.h> #include <drm/drmP.h> #include "vmwgfx_resource_priv.h" @@ -36,7 +36,7 @@ #define VMW_RES_EVICT_ERR_COUNT 10 struct vmw_user_dma_buffer { - struct ttm_prime_object prime; + struct vmwgfx_prime_object prime; struct vmw_dma_buffer dma; }; @@ -239,7 +239,7 @@ void vmw_resource_activate(struct vmw_resource *res, * TTM user-space handle and perform basic type checks * * @dev_priv: Pointer to a device private struct - * @tfile: Pointer to a struct ttm_object_file identifying the caller + * @tfile: Pointer to a struct vmwgfx_object_file identifying the caller * @handle: The TTM user-space handle * @converter: Pointer to an object describing the resource type * @p_res: On successful return the location pointed to will contain @@ -249,21 +249,21 @@ void vmw_resource_activate(struct vmw_resource *res, * type, -EINVAL will be returned. */ int vmw_user_resource_lookup_handle(struct vmw_private *dev_priv, - struct ttm_object_file *tfile, + struct vmwgfx_object_file *tfile, uint32_t handle, const struct vmw_user_resource_conv *converter, struct vmw_resource **p_res) { - struct ttm_base_object *base; + struct vmwgfx_base_object *base; struct vmw_resource *res; int ret = -EINVAL; - base = ttm_base_object_lookup(tfile, handle); + base = vmwgfx_base_object_lookup(tfile, handle); if (unlikely(base == NULL)) return -EINVAL; - if (unlikely(ttm_base_object_type(base) != converter->object_type)) + if (unlikely(vmwgfx_base_object_type(base) != converter->object_type)) goto out_bad_resource; res = converter->base_obj_to_res(base); @@ -281,7 +281,7 @@ int vmw_user_resource_lookup_handle(struct vmw_private *dev_priv, ret = 0; out_bad_resource: - ttm_base_object_unref(&base); + vmwgfx_base_object_unref(&base); return ret; } @@ -292,7 +292,7 @@ int vmw_user_resource_lookup_handle(struct vmw_private *dev_priv, * The pointer this pointed at by out_surf and out_buf needs to be null. */ int vmw_user_lookup_handle(struct vmw_private *dev_priv, - struct ttm_object_file *tfile, + struct vmwgfx_object_file *tfile, uint32_t handle, struct vmw_surface **out_surf, struct vmw_dma_buffer **out_buf) @@ -361,7 +361,7 @@ static void vmw_user_dmabuf_destroy(struct ttm_buffer_object *bo) { struct vmw_user_dma_buffer *vmw_user_bo = vmw_user_dma_buffer(bo); - ttm_prime_object_kfree(vmw_user_bo, prime); + vmwgfx_prime_object_kfree(vmw_user_bo, prime); } int vmw_dmabuf_init(struct vmw_private *dev_priv, @@ -389,10 +389,10 @@ int vmw_dmabuf_init(struct vmw_private *dev_priv, return ret; } -static void vmw_user_dmabuf_release(struct ttm_base_object **p_base) +static void vmw_user_dmabuf_release(struct vmwgfx_base_object **p_base) { struct vmw_user_dma_buffer *vmw_user_bo; - struct ttm_base_object *base = *p_base; + struct vmwgfx_base_object *base = *p_base; struct ttm_buffer_object *bo; *p_base = NULL; @@ -406,14 +406,14 @@ static void vmw_user_dmabuf_release(struct ttm_base_object **p_base) ttm_bo_unref(&bo); } -static void vmw_user_dmabuf_ref_obj_release(struct ttm_base_object *base, - enum ttm_ref_type ref_type) +static void vmw_user_dmabuf_ref_obj_release(struct vmwgfx_base_object *base, + enum vmwgfx_ref_type ref_type) { struct vmw_user_dma_buffer *user_bo; user_bo = container_of(base, struct vmw_user_dma_buffer, prime.base); switch (ref_type) { - case TTM_REF_SYNCCPU_WRITE: + case VMWGFX_REF_SYNCCPU_WRITE: ttm_bo_synccpu_write_release(&user_bo->dma.base); break; default: @@ -425,7 +425,7 @@ static void vmw_user_dmabuf_ref_obj_release(struct ttm_base_object *base, * vmw_user_dmabuf_alloc - Allocate a user dma buffer * * @dev_priv: Pointer to a struct device private. - * @tfile: Pointer to a struct ttm_object_file on which to register the user + * @tfile: Pointer to a struct vmwgfx_object_file on which to register the user * object. * @size: Size of the dma buffer. * @shareable: Boolean whether the buffer is shareable with other open files. @@ -434,12 +434,12 @@ static void vmw_user_dmabuf_ref_obj_release(struct ttm_base_object *base, * should be assigned. */ int vmw_user_dmabuf_alloc(struct vmw_private *dev_priv, - struct ttm_object_file *tfile, + struct vmwgfx_object_file *tfile, uint32_t size, bool shareable, uint32_t *handle, struct vmw_dma_buffer **p_dma_buf, - struct ttm_base_object **p_base) + struct vmwgfx_base_object **p_base) { struct vmw_user_dma_buffer *user_bo; struct ttm_buffer_object *tmp; @@ -460,11 +460,11 @@ int vmw_user_dmabuf_alloc(struct vmw_private *dev_priv, return ret; tmp = ttm_bo_reference(&user_bo->dma.base); - ret = ttm_prime_object_init(tfile, + ret = vmwgfx_prime_object_init(tfile, size, &user_bo->prime, shareable, - ttm_buffer_type, + vmwgfx_buffer_type, &vmw_user_dmabuf_release, &vmw_user_dmabuf_ref_obj_release); if (unlikely(ret != 0)) { @@ -491,7 +491,7 @@ int vmw_user_dmabuf_alloc(struct vmw_private *dev_priv, * @tfile: Identifying the caller. */ int vmw_user_dmabuf_verify_access(struct ttm_buffer_object *bo, - struct ttm_object_file *tfile) + struct vmwgfx_object_file *tfile) { struct vmw_user_dma_buffer *vmw_user_bo; @@ -501,7 +501,7 @@ int vmw_user_dmabuf_verify_access(struct ttm_buffer_object *bo, vmw_user_bo = vmw_user_dma_buffer(bo); /* Check that the caller has opened the object. */ - if (likely(ttm_ref_object_exists(tfile, &vmw_user_bo->prime.base))) + if (likely(vmwgfx_ref_object_exists(tfile, &vmw_user_bo->prime.base))) return 0; DRM_ERROR("Could not grant buffer access.\n"); @@ -520,7 +520,7 @@ int vmw_user_dmabuf_verify_access(struct ttm_buffer_object *bo, * A blocking grab will be automatically released when @tfile is closed. */ static int vmw_user_dmabuf_synccpu_grab(struct vmw_user_dma_buffer *user_bo, - struct ttm_object_file *tfile, + struct vmwgfx_object_file *tfile, uint32_t flags) { struct ttm_buffer_object *bo = &user_bo->dma.base; @@ -545,8 +545,8 @@ static int vmw_user_dmabuf_synccpu_grab(struct vmw_user_dma_buffer *user_bo, if (unlikely(ret != 0)) return ret; - ret = ttm_ref_object_add(tfile, &user_bo->prime.base, - TTM_REF_SYNCCPU_WRITE, &existed, false); + ret = vmwgfx_ref_object_add(tfile, &user_bo->prime.base, + VMWGFX_REF_SYNCCPU_WRITE, &existed, false); if (ret != 0 || existed) ttm_bo_synccpu_write_release(&user_bo->dma.base); @@ -562,12 +562,12 @@ static int vmw_user_dmabuf_synccpu_grab(struct vmw_user_dma_buffer *user_bo, * @flags: Flags indicating the type of release. */ static int vmw_user_dmabuf_synccpu_release(uint32_t handle, - struct ttm_object_file *tfile, + struct vmwgfx_object_file *tfile, uint32_t flags) { if (!(flags & drm_vmw_synccpu_allow_cs)) - return ttm_ref_object_base_unref(tfile, handle, - TTM_REF_SYNCCPU_WRITE); + return vmwgfx_ref_object_base_unref(tfile, handle, + VMWGFX_REF_SYNCCPU_WRITE); return 0; } @@ -590,8 +590,8 @@ int vmw_user_dmabuf_synccpu_ioctl(struct drm_device *dev, void *data, (struct drm_vmw_synccpu_arg *) data; struct vmw_dma_buffer *dma_buf; struct vmw_user_dma_buffer *user_bo; - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; - struct ttm_base_object *buffer_base; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_base_object *buffer_base; int ret; if ((arg->flags & (drm_vmw_synccpu_read | drm_vmw_synccpu_write)) == 0 @@ -613,7 +613,7 @@ int vmw_user_dmabuf_synccpu_ioctl(struct drm_device *dev, void *data, dma); ret = vmw_user_dmabuf_synccpu_grab(user_bo, tfile, arg->flags); vmw_dmabuf_unreference(&dma_buf); - ttm_base_object_unref(&buffer_base); + vmwgfx_base_object_unref(&buffer_base); if (unlikely(ret != 0 && ret != -ERESTARTSYS && ret != -EBUSY)) { DRM_ERROR("Failed synccpu grab on handle 0x%08x.\n", @@ -650,7 +650,7 @@ int vmw_dmabuf_alloc_ioctl(struct drm_device *dev, void *data, uint32_t handle; int ret; - ret = ttm_read_lock(&dev_priv->reservation_sem, true); + ret = vmwgfx_read_lock(&dev_priv->reservation_sem, true); if (unlikely(ret != 0)) return ret; @@ -668,7 +668,7 @@ int vmw_dmabuf_alloc_ioctl(struct drm_device *dev, void *data, vmw_dmabuf_unreference(&dma_buf); out_no_dmabuf: - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); return ret; } @@ -679,27 +679,27 @@ int vmw_dmabuf_unref_ioctl(struct drm_device *dev, void *data, struct drm_vmw_unref_dmabuf_arg *arg = (struct drm_vmw_unref_dmabuf_arg *)data; - return ttm_ref_object_base_unref(vmw_fpriv(file_priv)->tfile, + return vmwgfx_ref_object_base_unref(vmw_fpriv(file_priv)->tfile, arg->handle, - TTM_REF_USAGE); + VMWGFX_REF_USAGE); } -int vmw_user_dmabuf_lookup(struct ttm_object_file *tfile, +int vmw_user_dmabuf_lookup(struct vmwgfx_object_file *tfile, uint32_t handle, struct vmw_dma_buffer **out, - struct ttm_base_object **p_base) + struct vmwgfx_base_object **p_base) { struct vmw_user_dma_buffer *vmw_user_bo; - struct ttm_base_object *base; + struct vmwgfx_base_object *base; - base = ttm_base_object_lookup(tfile, handle); + base = vmwgfx_base_object_lookup(tfile, handle); if (unlikely(base == NULL)) { pr_err("Invalid buffer object handle 0x%08lx\n", (unsigned long)handle); return -ESRCH; } - if (unlikely(ttm_base_object_type(base) != ttm_buffer_type)) { - ttm_base_object_unref(&base); + if (unlikely(vmwgfx_base_object_type(base) != vmwgfx_buffer_type)) { + vmwgfx_base_object_unref(&base); pr_err("Invalid buffer object handle 0x%08lx\n", (unsigned long)handle); return -EINVAL; @@ -711,13 +711,13 @@ int vmw_user_dmabuf_lookup(struct ttm_object_file *tfile, if (p_base) *p_base = base; else - ttm_base_object_unref(&base); + vmwgfx_base_object_unref(&base); *out = &vmw_user_bo->dma; return 0; } -int vmw_user_dmabuf_reference(struct ttm_object_file *tfile, +int vmw_user_dmabuf_reference(struct vmwgfx_object_file *tfile, struct vmw_dma_buffer *dma_buf, uint32_t *handle) { @@ -729,8 +729,8 @@ int vmw_user_dmabuf_reference(struct ttm_object_file *tfile, user_bo = container_of(dma_buf, struct vmw_user_dma_buffer, dma); *handle = user_bo->prime.base.hash.key; - return ttm_ref_object_add(tfile, &user_bo->prime.base, - TTM_REF_USAGE, NULL, false); + return vmwgfx_ref_object_add(tfile, &user_bo->prime.base, + VMWGFX_REF_USAGE, NULL, false); } /** @@ -755,7 +755,7 @@ int vmw_dumb_create(struct drm_file *file_priv, args->pitch = args->width * ((args->bpp + 7) / 8); args->size = args->pitch * args->height; - ret = ttm_read_lock(&dev_priv->reservation_sem, true); + ret = vmwgfx_read_lock(&dev_priv->reservation_sem, true); if (unlikely(ret != 0)) return ret; @@ -767,7 +767,7 @@ int vmw_dumb_create(struct drm_file *file_priv, vmw_dmabuf_unreference(&dma_buf); out_no_dmabuf: - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); return ret; } @@ -785,7 +785,7 @@ int vmw_dumb_map_offset(struct drm_file *file_priv, struct drm_device *dev, uint32_t handle, uint64_t *offset) { - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; struct vmw_dma_buffer *out_buf; int ret; @@ -811,8 +811,8 @@ int vmw_dumb_destroy(struct drm_file *file_priv, struct drm_device *dev, uint32_t handle) { - return ttm_ref_object_base_unref(vmw_fpriv(file_priv)->tfile, - handle, TTM_REF_USAGE); + return vmwgfx_ref_object_base_unref(vmw_fpriv(file_priv)->tfile, + handle, VMWGFX_REF_USAGE); } /** @@ -1451,7 +1451,7 @@ int vmw_resource_pin(struct vmw_resource *res, bool interruptible) struct vmw_private *dev_priv = res->dev_priv; int ret; - ttm_write_lock(&dev_priv->reservation_sem, interruptible); + vmwgfx_write_lock(&dev_priv->reservation_sem, interruptible); mutex_lock(&dev_priv->cmdbuf_mutex); ret = vmw_resource_reserve(res, interruptible, false); if (ret) @@ -1490,7 +1490,7 @@ int vmw_resource_pin(struct vmw_resource *res, bool interruptible) vmw_resource_unreserve(res, false, NULL, 0UL); out_no_reserve: mutex_unlock(&dev_priv->cmdbuf_mutex); - ttm_write_unlock(&dev_priv->reservation_sem); + vmwgfx_write_unlock(&dev_priv->reservation_sem); return ret; } @@ -1508,7 +1508,7 @@ void vmw_resource_unpin(struct vmw_resource *res) struct vmw_private *dev_priv = res->dev_priv; int ret; - (void) ttm_read_lock(&dev_priv->reservation_sem, false); + (void) vmwgfx_read_lock(&dev_priv->reservation_sem, false); mutex_lock(&dev_priv->cmdbuf_mutex); ret = vmw_resource_reserve(res, false, true); @@ -1526,7 +1526,7 @@ void vmw_resource_unpin(struct vmw_resource *res) vmw_resource_unreserve(res, false, NULL, 0UL); mutex_unlock(&dev_priv->cmdbuf_mutex); - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); } /** diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_resource_priv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_resource_priv.h index ac05968a832b..e16d03204358 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_resource_priv.h +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_resource_priv.h @@ -40,12 +40,12 @@ enum vmw_cmdbuf_res_state { /** * struct vmw_user_resource_conv - Identify a derived user-exported resource - * type and provide a function to convert its ttm_base_object pointer to + * type and provide a function to convert its vmwgfx_base_object pointer to * a struct vmw_resource */ struct vmw_user_resource_conv { - enum ttm_object_type object_type; - struct vmw_resource *(*base_obj_to_res)(struct ttm_base_object *base); + enum vmwgfx_object_type object_type; + struct vmw_resource *(*base_obj_to_res)(struct vmwgfx_base_object *base); void (*res_free) (struct vmw_resource *res); }; @@ -128,7 +128,7 @@ vmw_simple_resource_create_ioctl(struct drm_device *dev, struct drm_file *file_priv, const struct vmw_simple_resource_func *func); struct vmw_resource * -vmw_simple_resource_lookup(struct ttm_object_file *tfile, +vmw_simple_resource_lookup(struct vmwgfx_object_file *tfile, uint32_t handle, const struct vmw_simple_resource_func *func); #endif diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c b/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c index 73b8e9a16368..ffabce79a005 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c @@ -40,7 +40,7 @@ struct vmw_shader { }; struct vmw_user_shader { - struct ttm_base_object base; + struct vmwgfx_base_object base; struct vmw_shader shader; }; @@ -59,7 +59,7 @@ static size_t vmw_shader_dx_size; static void vmw_user_shader_free(struct vmw_resource *res); static struct vmw_resource * -vmw_user_shader_base_to_res(struct ttm_base_object *base); +vmw_user_shader_base_to_res(struct vmwgfx_base_object *base); static int vmw_gb_shader_create(struct vmw_resource *res); static int vmw_gb_shader_bind(struct vmw_resource *res, @@ -671,7 +671,7 @@ int vmw_dx_shader_add(struct vmw_cmdbuf_res_manager *man, */ static struct vmw_resource * -vmw_user_shader_base_to_res(struct ttm_base_object *base) +vmw_user_shader_base_to_res(struct vmwgfx_base_object *base) { return &(container_of(base, struct vmw_user_shader, base)-> shader.res); @@ -683,7 +683,7 @@ static void vmw_user_shader_free(struct vmw_resource *res) container_of(res, struct vmw_user_shader, shader.res); struct vmw_private *dev_priv = res->dev_priv; - ttm_base_object_kfree(ushader, base); + vmwgfx_base_object_kfree(ushader, base); ttm_mem_global_free(vmw_mem_glob(dev_priv), vmw_user_shader_size); } @@ -703,9 +703,9 @@ static void vmw_shader_free(struct vmw_resource *res) * base object. It releases the base-object's reference on the resource object. */ -static void vmw_user_shader_base_release(struct ttm_base_object **p_base) +static void vmw_user_shader_base_release(struct vmwgfx_base_object **p_base) { - struct ttm_base_object *base = *p_base; + struct vmwgfx_base_object *base = *p_base; struct vmw_resource *res = vmw_user_shader_base_to_res(base); *p_base = NULL; @@ -716,10 +716,10 @@ int vmw_shader_destroy_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv) { struct drm_vmw_shader_arg *arg = (struct drm_vmw_shader_arg *)data; - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; - return ttm_ref_object_base_unref(tfile, arg->handle, - TTM_REF_USAGE); + return vmwgfx_ref_object_base_unref(tfile, arg->handle, + VMWGFX_REF_USAGE); } static int vmw_user_shader_alloc(struct vmw_private *dev_priv, @@ -729,7 +729,7 @@ static int vmw_user_shader_alloc(struct vmw_private *dev_priv, SVGA3dShaderType shader_type, uint8_t num_input_sig, uint8_t num_output_sig, - struct ttm_object_file *tfile, + struct vmwgfx_object_file *tfile, u32 *handle) { struct vmw_user_shader *ushader; @@ -782,7 +782,7 @@ static int vmw_user_shader_alloc(struct vmw_private *dev_priv, goto out; tmp = vmw_resource_reference(res); - ret = ttm_base_object_init(tfile, &ushader->base, false, + ret = vmwgfx_base_object_init(tfile, &ushader->base, false, VMW_RES_SHADER, &vmw_user_shader_base_release, NULL); @@ -861,7 +861,7 @@ static int vmw_shader_define(struct drm_device *dev, struct drm_file *file_priv, uint32_t *shader_handle) { struct vmw_private *dev_priv = vmw_priv(dev); - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; struct vmw_dma_buffer *buffer = NULL; SVGA3dShaderType shader_type; int ret; @@ -896,7 +896,7 @@ static int vmw_shader_define(struct drm_device *dev, struct drm_file *file_priv, goto out_bad_arg; } - ret = ttm_read_lock(&dev_priv->reservation_sem, true); + ret = vmwgfx_read_lock(&dev_priv->reservation_sem, true); if (unlikely(ret != 0)) goto out_bad_arg; @@ -904,7 +904,7 @@ static int vmw_shader_define(struct drm_device *dev, struct drm_file *file_priv, shader_type, num_input_sig, num_output_sig, tfile, shader_handle); - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); out_bad_arg: vmw_dmabuf_unreference(&buffer); return ret; @@ -970,7 +970,7 @@ int vmw_shader_remove(struct vmw_cmdbuf_res_manager *man, * unique to the shader type. * @bytecode: Pointer to the bytecode of the shader. * @shader_type: Shader type. - * @tfile: Pointer to a struct ttm_object_file that the guest-backed shader is + * @tfile: Pointer to a struct vmwgfx_object_file that the guest-backed shader is * to be created with. * @list: Caller's list of staged command buffer resource actions. * diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_simple_resource.c b/drivers/gpu/drm/vmwgfx/vmwgfx_simple_resource.c index a0cb310665cc..64518dffd360 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_simple_resource.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_simple_resource.c @@ -36,7 +36,7 @@ * @simple: The embedded struct vmw_simple_resource. */ struct vmw_user_simple_resource { - struct ttm_base_object base; + struct vmwgfx_base_object base; size_t account_size; struct vmw_simple_resource simple; /* @@ -101,22 +101,22 @@ static void vmw_simple_resource_free(struct vmw_resource *res) struct vmw_private *dev_priv = res->dev_priv; size_t size = usimple->account_size; - ttm_base_object_kfree(usimple, base); + vmwgfx_base_object_kfree(usimple, base); ttm_mem_global_free(vmw_mem_glob(dev_priv), size); } /** * vmw_simple_resource_base_release - TTM object release callback * - * @p_base: The struct ttm_base_object member of the simple resource object. + * @p_base: The struct vmwgfx_base_object member of the simple resource object. * - * Called when the last reference to the embedded struct ttm_base_object is + * Called when the last reference to the embedded struct vmwgfx_base_object is * gone. Typically results in an object free, unless there are other * references to the embedded struct vmw_resource. */ -static void vmw_simple_resource_base_release(struct ttm_base_object **p_base) +static void vmw_simple_resource_base_release(struct vmwgfx_base_object **p_base) { - struct ttm_base_object *base = *p_base; + struct vmwgfx_base_object *base = *p_base; struct vmw_user_simple_resource *usimple = container_of(base, struct vmw_user_simple_resource, base); struct vmw_resource *res = &usimple->simple.res; @@ -148,7 +148,7 @@ vmw_simple_resource_create_ioctl(struct drm_device *dev, void *data, struct vmw_user_simple_resource *usimple; struct vmw_resource *res; struct vmw_resource *tmp; - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; struct ttm_operation_ctx ctx = { .interruptible = true, .no_wait_gpu = false @@ -161,13 +161,13 @@ vmw_simple_resource_create_ioctl(struct drm_device *dev, void *data, func->size; account_size = ttm_round_pot(alloc_size) + VMW_IDA_ACC_SIZE; - ret = ttm_read_lock(&dev_priv->reservation_sem, true); + ret = vmwgfx_read_lock(&dev_priv->reservation_sem, true); if (ret) return ret; ret = ttm_mem_global_alloc(vmw_mem_glob(dev_priv), account_size, &ctx); - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); if (ret) { if (ret != -ERESTARTSYS) DRM_ERROR("Out of graphics memory for %s" @@ -199,7 +199,7 @@ vmw_simple_resource_create_ioctl(struct drm_device *dev, void *data, goto out_ret; tmp = vmw_resource_reference(res); - ret = ttm_base_object_init(tfile, &usimple->base, false, + ret = vmwgfx_base_object_init(tfile, &usimple->base, false, func->ttm_res_type, &vmw_simple_resource_base_release, NULL); @@ -219,7 +219,7 @@ vmw_simple_resource_create_ioctl(struct drm_device *dev, void *data, * vmw_simple_resource_lookup - Look up a simple resource from its user-space * handle. * - * @tfile: struct ttm_object_file identifying the caller. + * @tfile: struct vmwgfx_object_file identifying the caller. * @handle: The user-space handle. * @func: The struct vmw_simple_resource_func identifying the simple resource * type. @@ -228,15 +228,15 @@ vmw_simple_resource_create_ioctl(struct drm_device *dev, void *data, * successfule. Error pointer otherwise. */ struct vmw_resource * -vmw_simple_resource_lookup(struct ttm_object_file *tfile, +vmw_simple_resource_lookup(struct vmwgfx_object_file *tfile, uint32_t handle, const struct vmw_simple_resource_func *func) { struct vmw_user_simple_resource *usimple; - struct ttm_base_object *base; + struct vmwgfx_base_object *base; struct vmw_resource *res; - base = ttm_base_object_lookup(tfile, handle); + base = vmwgfx_base_object_lookup(tfile, handle); if (!base) { DRM_ERROR("Invalid %s handle 0x%08lx.\n", func->res_func.type_name, @@ -244,8 +244,8 @@ vmw_simple_resource_lookup(struct ttm_object_file *tfile, return ERR_PTR(-ESRCH); } - if (ttm_base_object_type(base) != func->ttm_res_type) { - ttm_base_object_unref(&base); + if (vmwgfx_base_object_type(base) != func->ttm_res_type) { + vmwgfx_base_object_unref(&base); DRM_ERROR("Invalid type of %s handle 0x%08lx.\n", func->res_func.type_name, (unsigned long) handle); @@ -254,7 +254,7 @@ vmw_simple_resource_lookup(struct ttm_object_file *tfile, usimple = container_of(base, typeof(*usimple), base); res = vmw_resource_reference(&usimple->simple.res); - ttm_base_object_unref(&base); + vmwgfx_base_object_unref(&base); return res; } diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c b/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c index db1bb166845e..e9fdc10ff2c1 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c @@ -43,11 +43,11 @@ * @master: master of the creating client. Used for security check. */ struct vmw_user_surface { - struct ttm_prime_object prime; + struct vmwgfx_prime_object prime; struct vmw_surface srf; uint32_t size; struct drm_master *master; - struct ttm_base_object *backup_base; + struct vmwgfx_base_object *backup_base; }; /** @@ -66,7 +66,7 @@ struct vmw_surface_offset { static void vmw_user_surface_free(struct vmw_resource *res); static struct vmw_resource * -vmw_user_surface_base_to_res(struct ttm_base_object *base); +vmw_user_surface_base_to_res(struct vmwgfx_base_object *base); static int vmw_legacy_srf_bind(struct vmw_resource *res, struct ttm_validate_buffer *val_buf); static int vmw_legacy_srf_unbind(struct vmw_resource *res, @@ -612,7 +612,7 @@ static int vmw_surface_init(struct vmw_private *dev_priv, * for the user-visible object identified by the TTM base object @base. */ static struct vmw_resource * -vmw_user_surface_base_to_res(struct ttm_base_object *base) +vmw_user_surface_base_to_res(struct vmwgfx_base_object *base) { return &(container_of(base, struct vmw_user_surface, prime.base)->srf.res); @@ -636,7 +636,7 @@ static void vmw_user_surface_free(struct vmw_resource *res) kfree(srf->offsets); kfree(srf->sizes); kfree(srf->snooper.image); - ttm_prime_object_kfree(user_srf, prime); + vmwgfx_prime_object_kfree(user_srf, prime); ttm_mem_global_free(vmw_mem_glob(dev_priv), size); } @@ -649,16 +649,16 @@ static void vmw_user_surface_free(struct vmw_resource *res) * Drops the base object's reference on its resource, and the * pointer pointed to by *p_base is set to NULL. */ -static void vmw_user_surface_base_release(struct ttm_base_object **p_base) +static void vmw_user_surface_base_release(struct vmwgfx_base_object **p_base) { - struct ttm_base_object *base = *p_base; + struct vmwgfx_base_object *base = *p_base; struct vmw_user_surface *user_srf = container_of(base, struct vmw_user_surface, prime.base); struct vmw_resource *res = &user_srf->srf.res; *p_base = NULL; if (user_srf->backup_base) - ttm_base_object_unref(&user_srf->backup_base); + vmwgfx_base_object_unref(&user_srf->backup_base); vmw_resource_unreference(&res); } @@ -674,9 +674,9 @@ int vmw_surface_destroy_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv) { struct drm_vmw_surface_arg *arg = (struct drm_vmw_surface_arg *)data; - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; - return ttm_ref_object_base_unref(tfile, arg->sid, TTM_REF_USAGE); + return vmwgfx_ref_object_base_unref(tfile, arg->sid, VMWGFX_REF_USAGE); } /** @@ -699,7 +699,7 @@ int vmw_surface_define_ioctl(struct drm_device *dev, void *data, (union drm_vmw_surface_create_arg *)data; struct drm_vmw_surface_create_req *req = &arg->req; struct drm_vmw_surface_arg *rep = &arg->rep; - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; struct ttm_operation_ctx ctx = { .interruptible = true, .no_wait_gpu = false @@ -740,7 +740,7 @@ int vmw_surface_define_ioctl(struct drm_device *dev, void *data, return -EINVAL; } - ret = ttm_read_lock(&dev_priv->reservation_sem, true); + ret = vmwgfx_read_lock(&dev_priv->reservation_sem, true); if (unlikely(ret != 0)) return ret; @@ -857,7 +857,7 @@ int vmw_surface_define_ioctl(struct drm_device *dev, void *data, } tmp = vmw_resource_reference(&srf->res); - ret = ttm_prime_object_init(tfile, res->backup_size, &user_srf->prime, + ret = vmwgfx_prime_object_init(tfile, res->backup_size, &user_srf->prime, req->shareable, VMW_RES_SURFACE, &vmw_user_surface_base_release, NULL); @@ -870,18 +870,18 @@ int vmw_surface_define_ioctl(struct drm_device *dev, void *data, rep->sid = user_srf->prime.base.hash.key; vmw_resource_unreference(&res); - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); return 0; out_no_copy: kfree(srf->offsets); out_no_offsets: kfree(srf->sizes); out_no_sizes: - ttm_prime_object_kfree(user_srf, prime); + vmwgfx_prime_object_kfree(user_srf, prime); out_no_user_srf: ttm_mem_global_free(vmw_mem_glob(dev_priv), size); out_unlock: - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); return ret; } @@ -891,17 +891,17 @@ vmw_surface_handle_reference(struct vmw_private *dev_priv, struct drm_file *file_priv, uint32_t u_handle, enum drm_vmw_handle_type handle_type, - struct ttm_base_object **base_p) + struct vmwgfx_base_object **base_p) { - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; struct vmw_user_surface *user_srf; uint32_t handle; - struct ttm_base_object *base; + struct vmwgfx_base_object *base; int ret; bool require_exist = false; if (handle_type == DRM_VMW_HANDLE_PRIME) { - ret = ttm_prime_fd_to_handle(tfile, u_handle, &handle); + ret = vmwgfx_prime_fd_to_handle(tfile, u_handle, &handle); if (unlikely(ret != 0)) return ret; } else { @@ -918,13 +918,13 @@ vmw_surface_handle_reference(struct vmw_private *dev_priv, } ret = -EINVAL; - base = ttm_base_object_lookup_for_ref(dev_priv->tdev, handle); + base = vmwgfx_base_object_lookup_for_ref(dev_priv->tdev, handle); if (unlikely(!base)) { DRM_ERROR("Could not find surface to reference.\n"); goto out_no_lookup; } - if (unlikely(ttm_base_object_type(base) != VMW_RES_SURFACE)) { + if (unlikely(vmwgfx_base_object_type(base) != VMW_RES_SURFACE)) { DRM_ERROR("Referenced object is not a surface.\n"); goto out_bad_resource; } @@ -941,7 +941,7 @@ vmw_surface_handle_reference(struct vmw_private *dev_priv, user_srf->master != file_priv->master) require_exist = true; - ret = ttm_ref_object_add(tfile, base, TTM_REF_USAGE, NULL, + ret = vmwgfx_ref_object_add(tfile, base, VMWGFX_REF_USAGE, NULL, require_exist); if (unlikely(ret != 0)) { DRM_ERROR("Could not add a reference to a surface.\n"); @@ -953,10 +953,10 @@ vmw_surface_handle_reference(struct vmw_private *dev_priv, return 0; out_bad_resource: - ttm_base_object_unref(&base); + vmwgfx_base_object_unref(&base); out_no_lookup: if (handle_type == DRM_VMW_HANDLE_PRIME) - (void) ttm_ref_object_base_unref(tfile, handle, TTM_REF_USAGE); + (void) vmwgfx_ref_object_base_unref(tfile, handle, VMWGFX_REF_USAGE); return ret; } @@ -977,11 +977,11 @@ int vmw_surface_reference_ioctl(struct drm_device *dev, void *data, (union drm_vmw_surface_reference_arg *)data; struct drm_vmw_surface_arg *req = &arg->req; struct drm_vmw_surface_create_req *rep = &arg->rep; - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; struct vmw_surface *srf; struct vmw_user_surface *user_srf; struct drm_vmw_size __user *user_sizes; - struct ttm_base_object *base; + struct vmwgfx_base_object *base; int ret; ret = vmw_surface_handle_reference(dev_priv, file_priv, req->sid, @@ -1004,11 +1004,11 @@ int vmw_surface_reference_ioctl(struct drm_device *dev, void *data, if (unlikely(ret != 0)) { DRM_ERROR("copy_to_user failed %p %u\n", user_sizes, srf->num_sizes); - ttm_ref_object_base_unref(tfile, base->hash.key, TTM_REF_USAGE); + vmwgfx_ref_object_base_unref(tfile, base->hash.key, VMWGFX_REF_USAGE); ret = -EFAULT; } - ttm_base_object_unref(&base); + vmwgfx_base_object_unref(&base); return ret; } @@ -1276,7 +1276,7 @@ int vmw_gb_surface_define_ioctl(struct drm_device *dev, void *data, (union drm_vmw_gb_surface_create_arg *)data; struct drm_vmw_gb_surface_create_req *req = &arg->req; struct drm_vmw_gb_surface_create_rep *rep = &arg->rep; - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; int ret; uint32_t size; uint32_t backup_handle = 0; @@ -1311,7 +1311,7 @@ int vmw_gb_surface_define_ioctl(struct drm_device *dev, void *data, if (drm_is_primary_client(file_priv)) user_srf->master = drm_master_get(file_priv->master); - ret = ttm_read_lock(&dev_priv->reservation_sem, true); + ret = vmwgfx_read_lock(&dev_priv->reservation_sem, true); if (unlikely(ret != 0)) return ret; @@ -1348,7 +1348,7 @@ int vmw_gb_surface_define_ioctl(struct drm_device *dev, void *data, } tmp = vmw_resource_reference(res); - ret = ttm_prime_object_init(tfile, res->backup_size, &user_srf->prime, + ret = vmwgfx_prime_object_init(tfile, res->backup_size, &user_srf->prime, req->drm_surface_flags & drm_vmw_surface_flag_shareable, VMW_RES_SURFACE, @@ -1376,7 +1376,7 @@ int vmw_gb_surface_define_ioctl(struct drm_device *dev, void *data, vmw_resource_unreference(&res); out_unlock: - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); return ret; } @@ -1396,10 +1396,10 @@ int vmw_gb_surface_reference_ioctl(struct drm_device *dev, void *data, (union drm_vmw_gb_surface_reference_arg *)data; struct drm_vmw_surface_arg *req = &arg->req; struct drm_vmw_gb_surface_ref_rep *rep = &arg->rep; - struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmwgfx_object_file *tfile = vmw_fpriv(file_priv)->tfile; struct vmw_surface *srf; struct vmw_user_surface *user_srf; - struct ttm_base_object *base; + struct vmwgfx_base_object *base; uint32_t backup_handle; int ret = -EINVAL; @@ -1423,8 +1423,8 @@ int vmw_gb_surface_reference_ioctl(struct drm_device *dev, void *data, if (unlikely(ret != 0)) { DRM_ERROR("Could not add a reference to a GB surface " "backup buffer.\n"); - (void) ttm_ref_object_base_unref(tfile, base->hash.key, - TTM_REF_USAGE); + (void) vmwgfx_ref_object_base_unref(tfile, base->hash.key, + VMWGFX_REF_USAGE); goto out_bad_resource; } @@ -1445,7 +1445,7 @@ int vmw_gb_surface_reference_ioctl(struct drm_device *dev, void *data, rep->crep.buffer_size = srf->res.backup->base.num_pages * PAGE_SIZE; out_bad_resource: - ttm_base_object_unref(&base); + vmwgfx_base_object_unref(&base); return ret; } @@ -1528,7 +1528,7 @@ int vmw_surface_gb_priv_define(struct drm_device *dev, return -EINVAL; } - ret = ttm_read_lock(&dev_priv->reservation_sem, true); + ret = vmwgfx_read_lock(&dev_priv->reservation_sem, true); if (unlikely(ret != 0)) return ret; @@ -1591,13 +1591,13 @@ int vmw_surface_gb_priv_define(struct drm_device *dev, */ ret = vmw_surface_init(dev_priv, srf, vmw_user_surface_free); - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); return ret; out_no_user_srf: ttm_mem_global_free(vmw_mem_glob(dev_priv), user_accounting_size); out_unlock: - ttm_read_unlock(&dev_priv->reservation_sem); + vmwgfx_read_unlock(&dev_priv->reservation_sem); return ret; } diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_va.c b/drivers/gpu/drm/vmwgfx/vmwgfx_va.c index b4162fd78600..72009db37bb4 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_va.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_va.c @@ -116,8 +116,8 @@ int vmw_stream_unref_ioctl(struct drm_device *dev, void *data, { struct drm_vmw_stream_arg *arg = (struct drm_vmw_stream_arg *)data; - return ttm_ref_object_base_unref(vmw_fpriv(file_priv)->tfile, - arg->stream_id, TTM_REF_USAGE); + return vmwgfx_ref_object_base_unref(vmw_fpriv(file_priv)->tfile, + arg->stream_id, VMWGFX_REF_USAGE); } /** @@ -140,7 +140,7 @@ int vmw_stream_claim_ioctl(struct drm_device *dev, void *data, /** * vmw_user_stream_lookup - Look up a struct vmw_user_stream from a handle. * @dev_priv: Pointer to a struct vmw_private. - * @tfile: struct ttm_object_file identifying the caller. + * @tfile: struct vmwgfx_object_file identifying the caller. * @inout_id: In: The user-space handle. Out: The stream id. * @out: On output contains a refcounted pointer to the embedded * struct vmw_resource. @@ -150,7 +150,7 @@ int vmw_stream_claim_ioctl(struct drm_device *dev, void *data, * Negative error value on failure. */ int vmw_user_stream_lookup(struct vmw_private *dev_priv, - struct ttm_object_file *tfile, + struct vmwgfx_object_file *tfile, uint32_t *inout_id, struct vmw_resource **out) { struct vmw_stream *stream;
This is a mostly automated move of the functionality found in ttm_lock.[ch] and ttm_object.[ch] into vmwgfx. As far as I can see vmwgfx is the sole user of this functionality. So there is no point in keeping it inside the common TTM module. Only compile tested. Signed-off-by: Christian König <christian.koenig@amd.com> --- drivers/gpu/drm/ttm/Makefile | 2 +- drivers/gpu/drm/vmwgfx/Makefile | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_context.c | 24 +- drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c | 16 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 56 ++--- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 46 ++-- drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 8 +- drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 6 +- drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 54 ++--- drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 10 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 22 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 2 +- .../drm/{ttm/ttm_lock.c => vmwgfx/vmwgfx_lock.c} | 120 +++++----- .../gpu/drm/vmwgfx/vmwgfx_lock.h | 108 ++++----- .../{ttm/ttm_object.c => vmwgfx/vmwgfx_object.c} | 258 ++++++++++----------- .../gpu/drm/vmwgfx/vmwgfx_object.h | 215 +++++++++-------- drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_prime.c | 10 +- drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 108 ++++----- drivers/gpu/drm/vmwgfx/vmwgfx_resource_priv.h | 8 +- drivers/gpu/drm/vmwgfx/vmwgfx_shader.c | 30 +-- drivers/gpu/drm/vmwgfx/vmwgfx_simple_resource.c | 34 +-- drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 82 +++---- drivers/gpu/drm/vmwgfx/vmwgfx_va.c | 8 +- 25 files changed, 611 insertions(+), 622 deletions(-) rename drivers/gpu/drm/{ttm/ttm_lock.c => vmwgfx/vmwgfx_lock.c} (61%) rename include/drm/ttm/ttm_lock.h => drivers/gpu/drm/vmwgfx/vmwgfx_lock.h (69%) rename drivers/gpu/drm/{ttm/ttm_object.c => vmwgfx/vmwgfx_object.c} (69%) rename include/drm/ttm/ttm_object.h => drivers/gpu/drm/vmwgfx/vmwgfx_object.h (57%)