extern void __VERIFIER_error() __attribute__ ((__noreturn__)); /* Generated by CIL v. 1.5.1 */ /* print_CIL_Input is false */ struct va_list; typedef __builtin_va_list __gnuc_va_list; typedef __gnuc_va_list va_list; typedef unsigned char __u8; typedef unsigned short __u16; typedef int __s32; typedef unsigned int __u32; typedef unsigned long long __u64; typedef signed char s8; typedef unsigned char u8; typedef short s16; typedef unsigned short u16; typedef int s32; typedef unsigned int u32; typedef long long s64; typedef unsigned long long u64; typedef long __kernel_long_t; typedef unsigned long __kernel_ulong_t; typedef int __kernel_pid_t; typedef unsigned int __kernel_uid32_t; typedef unsigned int __kernel_gid32_t; typedef __kernel_ulong_t __kernel_size_t; typedef __kernel_long_t __kernel_ssize_t; typedef long long __kernel_loff_t; typedef __kernel_long_t __kernel_time_t; typedef __kernel_long_t __kernel_clock_t; typedef int __kernel_timer_t; typedef int __kernel_clockid_t; typedef __u16 __le16; typedef __u16 __be16; typedef __u32 __le32; typedef __u32 __be32; typedef __u64 __le64; typedef __u32 __wsum; struct kernel_symbol { unsigned long value ; char const *name ; }; struct module; typedef __u32 __kernel_dev_t; typedef __kernel_dev_t dev_t; typedef unsigned short umode_t; typedef __kernel_pid_t pid_t; typedef __kernel_clockid_t clockid_t; typedef _Bool bool; typedef __kernel_uid32_t uid_t; typedef __kernel_gid32_t gid_t; typedef __kernel_loff_t loff_t; typedef __kernel_size_t size_t; typedef __kernel_ssize_t ssize_t; typedef __kernel_time_t time_t; typedef __s32 int32_t; typedef __u8 uint8_t; typedef __u32 uint32_t; typedef __u64 uint64_t; typedef unsigned long sector_t; typedef unsigned long blkcnt_t; typedef u64 dma_addr_t; typedef unsigned int gfp_t; typedef unsigned int fmode_t; typedef unsigned int oom_flags_t; typedef u64 phys_addr_t; typedef phys_addr_t resource_size_t; typedef unsigned long irq_hw_number_t; struct __anonstruct_atomic_t_6 { int counter ; }; typedef struct __anonstruct_atomic_t_6 atomic_t; struct __anonstruct_atomic64_t_7 { long counter ; }; typedef struct __anonstruct_atomic64_t_7 atomic64_t; struct list_head { struct list_head *next ; struct list_head *prev ; }; struct hlist_node; struct hlist_head { struct hlist_node *first ; }; struct hlist_node { struct hlist_node *next ; struct hlist_node **pprev ; }; struct callback_head { struct callback_head *next ; void (*func)(struct callback_head * ) ; }; struct pt_regs { unsigned long r15 ; unsigned long r14 ; unsigned long r13 ; unsigned long r12 ; unsigned long bp ; unsigned long bx ; unsigned long r11 ; unsigned long r10 ; unsigned long r9 ; unsigned long r8 ; unsigned long ax ; unsigned long cx ; unsigned long dx ; unsigned long si ; unsigned long di ; unsigned long orig_ax ; unsigned long ip ; unsigned long cs ; unsigned long flags ; unsigned long sp ; unsigned long ss ; }; struct __anonstruct____missing_field_name_9 { unsigned int a ; unsigned int b ; }; struct __anonstruct____missing_field_name_10 { u16 limit0 ; u16 base0 ; unsigned char base1 ; unsigned char type : 4 ; unsigned char s : 1 ; unsigned char dpl : 2 ; unsigned char p : 1 ; unsigned char limit : 4 ; unsigned char avl : 1 ; unsigned char l : 1 ; unsigned char d : 1 ; unsigned char g : 1 ; unsigned char base2 ; }; union __anonunion____missing_field_name_8 { struct __anonstruct____missing_field_name_9 __annonCompField4 ; struct __anonstruct____missing_field_name_10 __annonCompField5 ; }; struct desc_struct { union __anonunion____missing_field_name_8 __annonCompField6 ; }; typedef unsigned long pteval_t; typedef unsigned long pgdval_t; typedef unsigned long pgprotval_t; struct __anonstruct_pte_t_11 { pteval_t pte ; }; typedef struct __anonstruct_pte_t_11 pte_t; struct pgprot { pgprotval_t pgprot ; }; typedef struct pgprot pgprot_t; struct __anonstruct_pgd_t_12 { pgdval_t pgd ; }; typedef struct __anonstruct_pgd_t_12 pgd_t; struct page; typedef struct page *pgtable_t; struct file; struct seq_file; struct thread_struct; struct mm_struct; struct task_struct; struct cpumask; struct qspinlock { atomic_t val ; }; typedef struct qspinlock arch_spinlock_t; struct qrwlock { atomic_t cnts ; arch_spinlock_t lock ; }; typedef struct qrwlock arch_rwlock_t; typedef void (*ctor_fn_t)(void); struct va_format { char const *fmt ; va_list *va ; }; struct device; struct net_device; struct file_operations; struct completion; struct bug_entry { int bug_addr_disp ; int file_disp ; unsigned short line ; unsigned short flags ; }; struct timespec; struct compat_timespec; struct __anonstruct_futex_16 { u32 *uaddr ; u32 val ; u32 flags ; u32 bitset ; u64 time ; u32 *uaddr2 ; }; struct __anonstruct_nanosleep_17 { clockid_t clockid ; struct timespec *rmtp ; struct compat_timespec *compat_rmtp ; u64 expires ; }; struct pollfd; struct __anonstruct_poll_18 { struct pollfd *ufds ; int nfds ; int has_timeout ; unsigned long tv_sec ; unsigned long tv_nsec ; }; union __anonunion____missing_field_name_15 { struct __anonstruct_futex_16 futex ; struct __anonstruct_nanosleep_17 nanosleep ; struct __anonstruct_poll_18 poll ; }; struct restart_block { long (*fn)(struct restart_block * ) ; union __anonunion____missing_field_name_15 __annonCompField7 ; }; struct kernel_vm86_regs { struct pt_regs pt ; unsigned short es ; unsigned short __esh ; unsigned short ds ; unsigned short __dsh ; unsigned short fs ; unsigned short __fsh ; unsigned short gs ; unsigned short __gsh ; }; union __anonunion____missing_field_name_19 { struct pt_regs *regs ; struct kernel_vm86_regs *vm86 ; }; struct math_emu_info { long ___orig_eip ; union __anonunion____missing_field_name_19 __annonCompField8 ; }; struct cpumask { unsigned long bits[128U] ; }; typedef struct cpumask cpumask_t; typedef struct cpumask *cpumask_var_t; struct fregs_state { u32 cwd ; u32 swd ; u32 twd ; u32 fip ; u32 fcs ; u32 foo ; u32 fos ; u32 st_space[20U] ; u32 status ; }; struct __anonstruct____missing_field_name_29 { u64 rip ; u64 rdp ; }; struct __anonstruct____missing_field_name_30 { u32 fip ; u32 fcs ; u32 foo ; u32 fos ; }; union __anonunion____missing_field_name_28 { struct __anonstruct____missing_field_name_29 __annonCompField12 ; struct __anonstruct____missing_field_name_30 __annonCompField13 ; }; union __anonunion____missing_field_name_31 { u32 padding1[12U] ; u32 sw_reserved[12U] ; }; struct fxregs_state { u16 cwd ; u16 swd ; u16 twd ; u16 fop ; union __anonunion____missing_field_name_28 __annonCompField14 ; u32 mxcsr ; u32 mxcsr_mask ; u32 st_space[32U] ; u32 xmm_space[64U] ; u32 padding[12U] ; union __anonunion____missing_field_name_31 __annonCompField15 ; }; struct swregs_state { u32 cwd ; u32 swd ; u32 twd ; u32 fip ; u32 fcs ; u32 foo ; u32 fos ; u32 st_space[20U] ; u8 ftop ; u8 changed ; u8 lookahead ; u8 no_update ; u8 rm ; u8 alimit ; struct math_emu_info *info ; u32 entry_eip ; }; struct xstate_header { u64 xfeatures ; u64 xcomp_bv ; u64 reserved[6U] ; }; struct xregs_state { struct fxregs_state i387 ; struct xstate_header header ; u8 __reserved[464U] ; }; union fpregs_state { struct fregs_state fsave ; struct fxregs_state fxsave ; struct swregs_state soft ; struct xregs_state xsave ; }; struct fpu { union fpregs_state state ; unsigned int last_cpu ; unsigned char fpstate_active ; unsigned char fpregs_active ; unsigned char counter ; }; struct seq_operations; struct perf_event; struct thread_struct { struct desc_struct tls_array[3U] ; unsigned long sp0 ; unsigned long sp ; unsigned short es ; unsigned short ds ; unsigned short fsindex ; unsigned short gsindex ; unsigned long fs ; unsigned long gs ; struct fpu fpu ; struct perf_event *ptrace_bps[4U] ; unsigned long debugreg6 ; unsigned long ptrace_dr7 ; unsigned long cr2 ; unsigned long trap_nr ; unsigned long error_code ; unsigned long *io_bitmap_ptr ; unsigned long iopl ; unsigned int io_bitmap_max ; }; typedef atomic64_t atomic_long_t; struct lockdep_map; struct stack_trace { unsigned int nr_entries ; unsigned int max_entries ; unsigned long *entries ; int skip ; }; struct lockdep_subclass_key { char __one_byte ; }; struct lock_class_key { struct lockdep_subclass_key subkeys[8U] ; }; struct lock_class { struct list_head hash_entry ; struct list_head lock_entry ; struct lockdep_subclass_key *key ; unsigned int subclass ; unsigned int dep_gen_id ; unsigned long usage_mask ; struct stack_trace usage_traces[13U] ; struct list_head locks_after ; struct list_head locks_before ; unsigned int version ; unsigned long ops ; char const *name ; int name_version ; unsigned long contention_point[4U] ; unsigned long contending_point[4U] ; }; struct lockdep_map { struct lock_class_key *key ; struct lock_class *class_cache[2U] ; char const *name ; int cpu ; unsigned long ip ; }; struct held_lock { u64 prev_chain_key ; unsigned long acquire_ip ; struct lockdep_map *instance ; struct lockdep_map *nest_lock ; u64 waittime_stamp ; u64 holdtime_stamp ; unsigned short class_idx : 13 ; unsigned char irq_context : 2 ; unsigned char trylock : 1 ; unsigned char read : 2 ; unsigned char check : 1 ; unsigned char hardirqs_off : 1 ; unsigned short references : 12 ; unsigned int pin_count ; }; struct raw_spinlock { arch_spinlock_t raw_lock ; unsigned int magic ; unsigned int owner_cpu ; void *owner ; struct lockdep_map dep_map ; }; typedef struct raw_spinlock raw_spinlock_t; struct __anonstruct____missing_field_name_35 { u8 __padding[24U] ; struct lockdep_map dep_map ; }; union __anonunion____missing_field_name_34 { struct raw_spinlock rlock ; struct __anonstruct____missing_field_name_35 __annonCompField17 ; }; struct spinlock { union __anonunion____missing_field_name_34 __annonCompField18 ; }; typedef struct spinlock spinlock_t; struct __anonstruct_rwlock_t_36 { arch_rwlock_t raw_lock ; unsigned int magic ; unsigned int owner_cpu ; void *owner ; struct lockdep_map dep_map ; }; typedef struct __anonstruct_rwlock_t_36 rwlock_t; struct seqcount { unsigned int sequence ; struct lockdep_map dep_map ; }; typedef struct seqcount seqcount_t; struct __anonstruct_seqlock_t_45 { struct seqcount seqcount ; spinlock_t lock ; }; typedef struct __anonstruct_seqlock_t_45 seqlock_t; struct timespec { __kernel_time_t tv_sec ; long tv_nsec ; }; struct user_namespace; struct __anonstruct_kuid_t_46 { uid_t val ; }; typedef struct __anonstruct_kuid_t_46 kuid_t; struct __anonstruct_kgid_t_47 { gid_t val ; }; typedef struct __anonstruct_kgid_t_47 kgid_t; struct kstat { u64 ino ; dev_t dev ; umode_t mode ; unsigned int nlink ; kuid_t uid ; kgid_t gid ; dev_t rdev ; loff_t size ; struct timespec atime ; struct timespec mtime ; struct timespec ctime ; unsigned long blksize ; unsigned long long blocks ; }; struct vm_area_struct; struct __wait_queue_head { spinlock_t lock ; struct list_head task_list ; }; typedef struct __wait_queue_head wait_queue_head_t; struct __anonstruct_nodemask_t_48 { unsigned long bits[16U] ; }; typedef struct __anonstruct_nodemask_t_48 nodemask_t; struct optimistic_spin_queue { atomic_t tail ; }; struct mutex { atomic_t count ; spinlock_t wait_lock ; struct list_head wait_list ; struct task_struct *owner ; void *magic ; struct lockdep_map dep_map ; }; struct mutex_waiter { struct list_head list ; struct task_struct *task ; void *magic ; }; struct rw_semaphore; struct rw_semaphore { long count ; struct list_head wait_list ; raw_spinlock_t wait_lock ; struct optimistic_spin_queue osq ; struct task_struct *owner ; struct lockdep_map dep_map ; }; struct completion { unsigned int done ; wait_queue_head_t wait ; }; union ktime { s64 tv64 ; }; typedef union ktime ktime_t; struct notifier_block; struct timer_list { struct hlist_node entry ; unsigned long expires ; void (*function)(unsigned long ) ; unsigned long data ; u32 flags ; int slack ; int start_pid ; void *start_site ; char start_comm[16U] ; struct lockdep_map lockdep_map ; }; struct hrtimer; enum hrtimer_restart; struct rb_node { unsigned long __rb_parent_color ; struct rb_node *rb_right ; struct rb_node *rb_left ; }; struct rb_root { struct rb_node *rb_node ; }; struct ctl_table; struct nsproxy; struct ctl_table_root; struct ctl_table_header; struct ctl_dir; typedef int proc_handler(struct ctl_table * , int , void * , size_t * , loff_t * ); struct ctl_table_poll { atomic_t event ; wait_queue_head_t wait ; }; struct ctl_table { char const *procname ; void *data ; int maxlen ; umode_t mode ; struct ctl_table *child ; proc_handler *proc_handler ; struct ctl_table_poll *poll ; void *extra1 ; void *extra2 ; }; struct ctl_node { struct rb_node node ; struct ctl_table_header *header ; }; struct __anonstruct____missing_field_name_50 { struct ctl_table *ctl_table ; int used ; int count ; int nreg ; }; union __anonunion____missing_field_name_49 { struct __anonstruct____missing_field_name_50 __annonCompField19 ; struct callback_head rcu ; }; struct ctl_table_set; struct ctl_table_header { union __anonunion____missing_field_name_49 __annonCompField20 ; struct completion *unregistering ; struct ctl_table *ctl_table_arg ; struct ctl_table_root *root ; struct ctl_table_set *set ; struct ctl_dir *parent ; struct ctl_node *node ; }; struct ctl_dir { struct ctl_table_header header ; struct rb_root root ; }; struct ctl_table_set { int (*is_seen)(struct ctl_table_set * ) ; struct ctl_dir dir ; }; struct ctl_table_root { struct ctl_table_set default_set ; struct ctl_table_set *(*lookup)(struct ctl_table_root * , struct nsproxy * ) ; int (*permissions)(struct ctl_table_header * , struct ctl_table * ) ; }; struct workqueue_struct; struct work_struct; struct work_struct { atomic_long_t data ; struct list_head entry ; void (*func)(struct work_struct * ) ; struct lockdep_map lockdep_map ; }; struct delayed_work { struct work_struct work ; struct timer_list timer ; struct workqueue_struct *wq ; int cpu ; }; struct notifier_block { int (*notifier_call)(struct notifier_block * , unsigned long , void * ) ; struct notifier_block *next ; int priority ; }; struct resource { resource_size_t start ; resource_size_t end ; char const *name ; unsigned long flags ; struct resource *parent ; struct resource *sibling ; struct resource *child ; }; struct pci_dev; struct pm_message { int event ; }; typedef struct pm_message pm_message_t; struct dev_pm_ops { int (*prepare)(struct device * ) ; void (*complete)(struct device * ) ; int (*suspend)(struct device * ) ; int (*resume)(struct device * ) ; int (*freeze)(struct device * ) ; int (*thaw)(struct device * ) ; int (*poweroff)(struct device * ) ; int (*restore)(struct device * ) ; int (*suspend_late)(struct device * ) ; int (*resume_early)(struct device * ) ; int (*freeze_late)(struct device * ) ; int (*thaw_early)(struct device * ) ; int (*poweroff_late)(struct device * ) ; int (*restore_early)(struct device * ) ; int (*suspend_noirq)(struct device * ) ; int (*resume_noirq)(struct device * ) ; int (*freeze_noirq)(struct device * ) ; int (*thaw_noirq)(struct device * ) ; int (*poweroff_noirq)(struct device * ) ; int (*restore_noirq)(struct device * ) ; int (*runtime_suspend)(struct device * ) ; int (*runtime_resume)(struct device * ) ; int (*runtime_idle)(struct device * ) ; }; enum rpm_status { RPM_ACTIVE = 0, RPM_RESUMING = 1, RPM_SUSPENDED = 2, RPM_SUSPENDING = 3 } ; enum rpm_request { RPM_REQ_NONE = 0, RPM_REQ_IDLE = 1, RPM_REQ_SUSPEND = 2, RPM_REQ_AUTOSUSPEND = 3, RPM_REQ_RESUME = 4 } ; struct wakeup_source; struct wake_irq; struct pm_subsys_data { spinlock_t lock ; unsigned int refcount ; struct list_head clock_list ; }; struct dev_pm_qos; struct dev_pm_info { pm_message_t power_state ; unsigned char can_wakeup : 1 ; unsigned char async_suspend : 1 ; bool is_prepared ; bool is_suspended ; bool is_noirq_suspended ; bool is_late_suspended ; bool ignore_children ; bool early_init ; bool direct_complete ; spinlock_t lock ; struct list_head entry ; struct completion completion ; struct wakeup_source *wakeup ; bool wakeup_path ; bool syscore ; struct timer_list suspend_timer ; unsigned long timer_expires ; struct work_struct work ; wait_queue_head_t wait_queue ; struct wake_irq *wakeirq ; atomic_t usage_count ; atomic_t child_count ; unsigned char disable_depth : 3 ; unsigned char idle_notification : 1 ; unsigned char request_pending : 1 ; unsigned char deferred_resume : 1 ; unsigned char run_wake : 1 ; unsigned char runtime_auto : 1 ; unsigned char no_callbacks : 1 ; unsigned char irq_safe : 1 ; unsigned char use_autosuspend : 1 ; unsigned char timer_autosuspends : 1 ; unsigned char memalloc_noio : 1 ; enum rpm_request request ; enum rpm_status runtime_status ; int runtime_error ; int autosuspend_delay ; unsigned long last_busy ; unsigned long active_jiffies ; unsigned long suspended_jiffies ; unsigned long accounting_timestamp ; struct pm_subsys_data *subsys_data ; void (*set_latency_tolerance)(struct device * , s32 ) ; struct dev_pm_qos *qos ; }; struct dev_pm_domain { struct dev_pm_ops ops ; void (*detach)(struct device * , bool ) ; int (*activate)(struct device * ) ; void (*sync)(struct device * ) ; void (*dismiss)(struct device * ) ; }; struct pci_bus; struct __anonstruct_mm_context_t_115 { void *ldt ; int size ; unsigned short ia32_compat ; struct mutex lock ; void *vdso ; atomic_t perf_rdpmc_allowed ; }; typedef struct __anonstruct_mm_context_t_115 mm_context_t; struct bio_vec; struct llist_node; struct llist_node { struct llist_node *next ; }; struct cred; struct inode; struct arch_uprobe_task { unsigned long saved_scratch_register ; unsigned int saved_trap_nr ; unsigned int saved_tf ; }; enum uprobe_task_state { UTASK_RUNNING = 0, UTASK_SSTEP = 1, UTASK_SSTEP_ACK = 2, UTASK_SSTEP_TRAPPED = 3 } ; struct __anonstruct____missing_field_name_148 { struct arch_uprobe_task autask ; unsigned long vaddr ; }; struct __anonstruct____missing_field_name_149 { struct callback_head dup_xol_work ; unsigned long dup_xol_addr ; }; union __anonunion____missing_field_name_147 { struct __anonstruct____missing_field_name_148 __annonCompField33 ; struct __anonstruct____missing_field_name_149 __annonCompField34 ; }; struct uprobe; struct return_instance; struct uprobe_task { enum uprobe_task_state state ; union __anonunion____missing_field_name_147 __annonCompField35 ; struct uprobe *active_uprobe ; unsigned long xol_vaddr ; struct return_instance *return_instances ; unsigned int depth ; }; struct xol_area; struct uprobes_state { struct xol_area *xol_area ; }; struct address_space; struct mem_cgroup; typedef void compound_page_dtor(struct page * ); union __anonunion____missing_field_name_150 { struct address_space *mapping ; void *s_mem ; }; union __anonunion____missing_field_name_152 { unsigned long index ; void *freelist ; bool pfmemalloc ; }; struct __anonstruct____missing_field_name_156 { unsigned short inuse ; unsigned short objects : 15 ; unsigned char frozen : 1 ; }; union __anonunion____missing_field_name_155 { atomic_t _mapcount ; struct __anonstruct____missing_field_name_156 __annonCompField38 ; int units ; }; struct __anonstruct____missing_field_name_154 { union __anonunion____missing_field_name_155 __annonCompField39 ; atomic_t _count ; }; union __anonunion____missing_field_name_153 { unsigned long counters ; struct __anonstruct____missing_field_name_154 __annonCompField40 ; unsigned int active ; }; struct __anonstruct____missing_field_name_151 { union __anonunion____missing_field_name_152 __annonCompField37 ; union __anonunion____missing_field_name_153 __annonCompField41 ; }; struct __anonstruct____missing_field_name_158 { struct page *next ; int pages ; int pobjects ; }; struct slab; struct __anonstruct____missing_field_name_159 { compound_page_dtor *compound_dtor ; unsigned long compound_order ; }; union __anonunion____missing_field_name_157 { struct list_head lru ; struct __anonstruct____missing_field_name_158 __annonCompField43 ; struct slab *slab_page ; struct callback_head callback_head ; struct __anonstruct____missing_field_name_159 __annonCompField44 ; pgtable_t pmd_huge_pte ; }; struct kmem_cache; union __anonunion____missing_field_name_160 { unsigned long private ; spinlock_t *ptl ; struct kmem_cache *slab_cache ; struct page *first_page ; }; struct page { unsigned long flags ; union __anonunion____missing_field_name_150 __annonCompField36 ; struct __anonstruct____missing_field_name_151 __annonCompField42 ; union __anonunion____missing_field_name_157 __annonCompField45 ; union __anonunion____missing_field_name_160 __annonCompField46 ; struct mem_cgroup *mem_cgroup ; }; struct page_frag { struct page *page ; __u32 offset ; __u32 size ; }; struct __anonstruct_shared_161 { struct rb_node rb ; unsigned long rb_subtree_last ; }; struct anon_vma; struct vm_operations_struct; struct mempolicy; struct vm_area_struct { unsigned long vm_start ; unsigned long vm_end ; struct vm_area_struct *vm_next ; struct vm_area_struct *vm_prev ; struct rb_node vm_rb ; unsigned long rb_subtree_gap ; struct mm_struct *vm_mm ; pgprot_t vm_page_prot ; unsigned long vm_flags ; struct __anonstruct_shared_161 shared ; struct list_head anon_vma_chain ; struct anon_vma *anon_vma ; struct vm_operations_struct const *vm_ops ; unsigned long vm_pgoff ; struct file *vm_file ; void *vm_private_data ; struct mempolicy *vm_policy ; }; struct core_thread { struct task_struct *task ; struct core_thread *next ; }; struct core_state { atomic_t nr_threads ; struct core_thread dumper ; struct completion startup ; }; struct task_rss_stat { int events ; int count[3U] ; }; struct mm_rss_stat { atomic_long_t count[3U] ; }; struct kioctx_table; struct linux_binfmt; struct mmu_notifier_mm; struct mm_struct { struct vm_area_struct *mmap ; struct rb_root mm_rb ; u32 vmacache_seqnum ; unsigned long (*get_unmapped_area)(struct file * , unsigned long , unsigned long , unsigned long , unsigned long ) ; unsigned long mmap_base ; unsigned long mmap_legacy_base ; unsigned long task_size ; unsigned long highest_vm_end ; pgd_t *pgd ; atomic_t mm_users ; atomic_t mm_count ; atomic_long_t nr_ptes ; atomic_long_t nr_pmds ; int map_count ; spinlock_t page_table_lock ; struct rw_semaphore mmap_sem ; struct list_head mmlist ; unsigned long hiwater_rss ; unsigned long hiwater_vm ; unsigned long total_vm ; unsigned long locked_vm ; unsigned long pinned_vm ; unsigned long shared_vm ; unsigned long exec_vm ; unsigned long stack_vm ; unsigned long def_flags ; unsigned long start_code ; unsigned long end_code ; unsigned long start_data ; unsigned long end_data ; unsigned long start_brk ; unsigned long brk ; unsigned long start_stack ; unsigned long arg_start ; unsigned long arg_end ; unsigned long env_start ; unsigned long env_end ; unsigned long saved_auxv[46U] ; struct mm_rss_stat rss_stat ; struct linux_binfmt *binfmt ; cpumask_var_t cpu_vm_mask_var ; mm_context_t context ; unsigned long flags ; struct core_state *core_state ; spinlock_t ioctx_lock ; struct kioctx_table *ioctx_table ; struct task_struct *owner ; struct file *exe_file ; struct mmu_notifier_mm *mmu_notifier_mm ; struct cpumask cpumask_allocation ; unsigned long numa_next_scan ; unsigned long numa_scan_offset ; int numa_scan_seq ; bool tlb_flush_pending ; struct uprobes_state uprobes_state ; void *bd_addr ; }; typedef __u64 Elf64_Addr; typedef __u16 Elf64_Half; typedef __u32 Elf64_Word; typedef __u64 Elf64_Xword; struct elf64_sym { Elf64_Word st_name ; unsigned char st_info ; unsigned char st_other ; Elf64_Half st_shndx ; Elf64_Addr st_value ; Elf64_Xword st_size ; }; typedef struct elf64_sym Elf64_Sym; union __anonunion____missing_field_name_166 { unsigned long bitmap[4U] ; struct callback_head callback_head ; }; struct idr_layer { int prefix ; int layer ; struct idr_layer *ary[256U] ; int count ; union __anonunion____missing_field_name_166 __annonCompField47 ; }; struct idr { struct idr_layer *hint ; struct idr_layer *top ; int layers ; int cur ; spinlock_t lock ; int id_free_cnt ; struct idr_layer *id_free ; }; struct ida_bitmap { long nr_busy ; unsigned long bitmap[15U] ; }; struct ida { struct idr idr ; struct ida_bitmap *free_bitmap ; }; struct dentry; struct iattr; struct super_block; struct file_system_type; struct kernfs_open_node; struct kernfs_iattrs; struct kernfs_root; struct kernfs_elem_dir { unsigned long subdirs ; struct rb_root children ; struct kernfs_root *root ; }; struct kernfs_node; struct kernfs_elem_symlink { struct kernfs_node *target_kn ; }; struct kernfs_ops; struct kernfs_elem_attr { struct kernfs_ops const *ops ; struct kernfs_open_node *open ; loff_t size ; struct kernfs_node *notify_next ; }; union __anonunion____missing_field_name_171 { struct kernfs_elem_dir dir ; struct kernfs_elem_symlink symlink ; struct kernfs_elem_attr attr ; }; struct kernfs_node { atomic_t count ; atomic_t active ; struct lockdep_map dep_map ; struct kernfs_node *parent ; char const *name ; struct rb_node rb ; void const *ns ; unsigned int hash ; union __anonunion____missing_field_name_171 __annonCompField48 ; void *priv ; unsigned short flags ; umode_t mode ; unsigned int ino ; struct kernfs_iattrs *iattr ; }; struct kernfs_syscall_ops { int (*remount_fs)(struct kernfs_root * , int * , char * ) ; int (*show_options)(struct seq_file * , struct kernfs_root * ) ; int (*mkdir)(struct kernfs_node * , char const * , umode_t ) ; int (*rmdir)(struct kernfs_node * ) ; int (*rename)(struct kernfs_node * , struct kernfs_node * , char const * ) ; }; struct kernfs_root { struct kernfs_node *kn ; unsigned int flags ; struct ida ino_ida ; struct kernfs_syscall_ops *syscall_ops ; struct list_head supers ; wait_queue_head_t deactivate_waitq ; }; struct kernfs_open_file { struct kernfs_node *kn ; struct file *file ; void *priv ; struct mutex mutex ; int event ; struct list_head list ; char *prealloc_buf ; size_t atomic_write_len ; bool mmapped ; struct vm_operations_struct const *vm_ops ; }; struct kernfs_ops { int (*seq_show)(struct seq_file * , void * ) ; void *(*seq_start)(struct seq_file * , loff_t * ) ; void *(*seq_next)(struct seq_file * , void * , loff_t * ) ; void (*seq_stop)(struct seq_file * , void * ) ; ssize_t (*read)(struct kernfs_open_file * , char * , size_t , loff_t ) ; size_t atomic_write_len ; bool prealloc ; ssize_t (*write)(struct kernfs_open_file * , char * , size_t , loff_t ) ; int (*mmap)(struct kernfs_open_file * , struct vm_area_struct * ) ; struct lock_class_key lockdep_key ; }; struct sock; struct kobject; enum kobj_ns_type { KOBJ_NS_TYPE_NONE = 0, KOBJ_NS_TYPE_NET = 1, KOBJ_NS_TYPES = 2 } ; struct kobj_ns_type_operations { enum kobj_ns_type type ; bool (*current_may_mount)(void) ; void *(*grab_current_ns)(void) ; void const *(*netlink_ns)(struct sock * ) ; void const *(*initial_ns)(void) ; void (*drop_ns)(void * ) ; }; struct bin_attribute; struct attribute { char const *name ; umode_t mode ; bool ignore_lockdep ; struct lock_class_key *key ; struct lock_class_key skey ; }; struct attribute_group { char const *name ; umode_t (*is_visible)(struct kobject * , struct attribute * , int ) ; struct attribute **attrs ; struct bin_attribute **bin_attrs ; }; struct bin_attribute { struct attribute attr ; size_t size ; void *private ; ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * , loff_t , size_t ) ; ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * , loff_t , size_t ) ; int (*mmap)(struct file * , struct kobject * , struct bin_attribute * , struct vm_area_struct * ) ; }; struct sysfs_ops { ssize_t (*show)(struct kobject * , struct attribute * , char * ) ; ssize_t (*store)(struct kobject * , struct attribute * , char const * , size_t ) ; }; struct kref { atomic_t refcount ; }; struct kset; struct kobj_type; struct kobject { char const *name ; struct list_head entry ; struct kobject *parent ; struct kset *kset ; struct kobj_type *ktype ; struct kernfs_node *sd ; struct kref kref ; struct delayed_work release ; unsigned char state_initialized : 1 ; unsigned char state_in_sysfs : 1 ; unsigned char state_add_uevent_sent : 1 ; unsigned char state_remove_uevent_sent : 1 ; unsigned char uevent_suppress : 1 ; }; struct kobj_type { void (*release)(struct kobject * ) ; struct sysfs_ops const *sysfs_ops ; struct attribute **default_attrs ; struct kobj_ns_type_operations const *(*child_ns_type)(struct kobject * ) ; void const *(*namespace)(struct kobject * ) ; }; struct kobj_uevent_env { char *argv[3U] ; char *envp[32U] ; int envp_idx ; char buf[2048U] ; int buflen ; }; struct kset_uevent_ops { int (* const filter)(struct kset * , struct kobject * ) ; char const *(* const name)(struct kset * , struct kobject * ) ; int (* const uevent)(struct kset * , struct kobject * , struct kobj_uevent_env * ) ; }; struct kset { struct list_head list ; spinlock_t list_lock ; struct kobject kobj ; struct kset_uevent_ops const *uevent_ops ; }; struct kernel_param; struct kernel_param_ops { unsigned int flags ; int (*set)(char const * , struct kernel_param const * ) ; int (*get)(char * , struct kernel_param const * ) ; void (*free)(void * ) ; }; struct kparam_string; struct kparam_array; union __anonunion____missing_field_name_172 { void *arg ; struct kparam_string const *str ; struct kparam_array const *arr ; }; struct kernel_param { char const *name ; struct module *mod ; struct kernel_param_ops const *ops ; u16 const perm ; s8 level ; u8 flags ; union __anonunion____missing_field_name_172 __annonCompField49 ; }; struct kparam_string { unsigned int maxlen ; char *string ; }; struct kparam_array { unsigned int max ; unsigned int elemsize ; unsigned int *num ; struct kernel_param_ops const *ops ; void *elem ; }; struct latch_tree_node { struct rb_node node[2U] ; }; struct mod_arch_specific { }; struct module_param_attrs; struct module_kobject { struct kobject kobj ; struct module *mod ; struct kobject *drivers_dir ; struct module_param_attrs *mp ; struct completion *kobj_completion ; }; struct module_attribute { struct attribute attr ; ssize_t (*show)(struct module_attribute * , struct module_kobject * , char * ) ; ssize_t (*store)(struct module_attribute * , struct module_kobject * , char const * , size_t ) ; void (*setup)(struct module * , char const * ) ; int (*test)(struct module * ) ; void (*free)(struct module * ) ; }; struct exception_table_entry; enum module_state { MODULE_STATE_LIVE = 0, MODULE_STATE_COMING = 1, MODULE_STATE_GOING = 2, MODULE_STATE_UNFORMED = 3 } ; struct mod_tree_node { struct module *mod ; struct latch_tree_node node ; }; struct module_sect_attrs; struct module_notes_attrs; struct tracepoint; struct trace_event_call; struct trace_enum_map; struct module { enum module_state state ; struct list_head list ; char name[56U] ; struct module_kobject mkobj ; struct module_attribute *modinfo_attrs ; char const *version ; char const *srcversion ; struct kobject *holders_dir ; struct kernel_symbol const *syms ; unsigned long const *crcs ; unsigned int num_syms ; struct mutex param_lock ; struct kernel_param *kp ; unsigned int num_kp ; unsigned int num_gpl_syms ; struct kernel_symbol const *gpl_syms ; unsigned long const *gpl_crcs ; struct kernel_symbol const *unused_syms ; unsigned long const *unused_crcs ; unsigned int num_unused_syms ; unsigned int num_unused_gpl_syms ; struct kernel_symbol const *unused_gpl_syms ; unsigned long const *unused_gpl_crcs ; bool sig_ok ; bool async_probe_requested ; struct kernel_symbol const *gpl_future_syms ; unsigned long const *gpl_future_crcs ; unsigned int num_gpl_future_syms ; unsigned int num_exentries ; struct exception_table_entry *extable ; int (*init)(void) ; void *module_init ; void *module_core ; unsigned int init_size ; unsigned int core_size ; unsigned int init_text_size ; unsigned int core_text_size ; struct mod_tree_node mtn_core ; struct mod_tree_node mtn_init ; unsigned int init_ro_size ; unsigned int core_ro_size ; struct mod_arch_specific arch ; unsigned int taints ; unsigned int num_bugs ; struct list_head bug_list ; struct bug_entry *bug_table ; Elf64_Sym *symtab ; Elf64_Sym *core_symtab ; unsigned int num_symtab ; unsigned int core_num_syms ; char *strtab ; char *core_strtab ; struct module_sect_attrs *sect_attrs ; struct module_notes_attrs *notes_attrs ; char *args ; void *percpu ; unsigned int percpu_size ; unsigned int num_tracepoints ; struct tracepoint * const *tracepoints_ptrs ; unsigned int num_trace_bprintk_fmt ; char const **trace_bprintk_fmt_start ; struct trace_event_call **trace_events ; unsigned int num_trace_events ; struct trace_enum_map **trace_enums ; unsigned int num_trace_enums ; unsigned int num_ftrace_callsites ; unsigned long *ftrace_callsites ; bool klp_alive ; struct list_head source_list ; struct list_head target_list ; void (*exit)(void) ; atomic_t refcnt ; ctor_fn_t (**ctors)(void) ; unsigned int num_ctors ; }; struct kernel_cap_struct { __u32 cap[2U] ; }; typedef struct kernel_cap_struct kernel_cap_t; struct plist_node { int prio ; struct list_head prio_list ; struct list_head node_list ; }; typedef unsigned long cputime_t; struct sem_undo_list; struct sysv_sem { struct sem_undo_list *undo_list ; }; struct user_struct; struct sysv_shm { struct list_head shm_clist ; }; struct __anonstruct_sigset_t_180 { unsigned long sig[1U] ; }; typedef struct __anonstruct_sigset_t_180 sigset_t; struct siginfo; typedef void __signalfn_t(int ); typedef __signalfn_t *__sighandler_t; typedef void __restorefn_t(void); typedef __restorefn_t *__sigrestore_t; union sigval { int sival_int ; void *sival_ptr ; }; typedef union sigval sigval_t; struct __anonstruct__kill_182 { __kernel_pid_t _pid ; __kernel_uid32_t _uid ; }; struct __anonstruct__timer_183 { __kernel_timer_t _tid ; int _overrun ; char _pad[0U] ; sigval_t _sigval ; int _sys_private ; }; struct __anonstruct__rt_184 { __kernel_pid_t _pid ; __kernel_uid32_t _uid ; sigval_t _sigval ; }; struct __anonstruct__sigchld_185 { __kernel_pid_t _pid ; __kernel_uid32_t _uid ; int _status ; __kernel_clock_t _utime ; __kernel_clock_t _stime ; }; struct __anonstruct__addr_bnd_187 { void *_lower ; void *_upper ; }; struct __anonstruct__sigfault_186 { void *_addr ; short _addr_lsb ; struct __anonstruct__addr_bnd_187 _addr_bnd ; }; struct __anonstruct__sigpoll_188 { long _band ; int _fd ; }; struct __anonstruct__sigsys_189 { void *_call_addr ; int _syscall ; unsigned int _arch ; }; union __anonunion__sifields_181 { int _pad[28U] ; struct __anonstruct__kill_182 _kill ; struct __anonstruct__timer_183 _timer ; struct __anonstruct__rt_184 _rt ; struct __anonstruct__sigchld_185 _sigchld ; struct __anonstruct__sigfault_186 _sigfault ; struct __anonstruct__sigpoll_188 _sigpoll ; struct __anonstruct__sigsys_189 _sigsys ; }; struct siginfo { int si_signo ; int si_errno ; int si_code ; union __anonunion__sifields_181 _sifields ; }; typedef struct siginfo siginfo_t; struct sigpending { struct list_head list ; sigset_t signal ; }; struct sigaction { __sighandler_t sa_handler ; unsigned long sa_flags ; __sigrestore_t sa_restorer ; sigset_t sa_mask ; }; struct k_sigaction { struct sigaction sa ; }; enum pid_type { PIDTYPE_PID = 0, PIDTYPE_PGID = 1, PIDTYPE_SID = 2, PIDTYPE_MAX = 3 } ; struct pid_namespace; struct upid { int nr ; struct pid_namespace *ns ; struct hlist_node pid_chain ; }; struct pid { atomic_t count ; unsigned int level ; struct hlist_head tasks[3U] ; struct callback_head rcu ; struct upid numbers[1U] ; }; struct pid_link { struct hlist_node node ; struct pid *pid ; }; struct percpu_counter { raw_spinlock_t lock ; s64 count ; struct list_head list ; s32 *counters ; }; struct seccomp_filter; struct seccomp { int mode ; struct seccomp_filter *filter ; }; struct rt_mutex_waiter; struct rlimit { __kernel_ulong_t rlim_cur ; __kernel_ulong_t rlim_max ; }; struct timerqueue_node { struct rb_node node ; ktime_t expires ; }; struct timerqueue_head { struct rb_root head ; struct timerqueue_node *next ; }; struct hrtimer_clock_base; struct hrtimer_cpu_base; enum hrtimer_restart { HRTIMER_NORESTART = 0, HRTIMER_RESTART = 1 } ; struct hrtimer { struct timerqueue_node node ; ktime_t _softexpires ; enum hrtimer_restart (*function)(struct hrtimer * ) ; struct hrtimer_clock_base *base ; unsigned long state ; int start_pid ; void *start_site ; char start_comm[16U] ; }; struct hrtimer_clock_base { struct hrtimer_cpu_base *cpu_base ; int index ; clockid_t clockid ; struct timerqueue_head active ; ktime_t (*get_time)(void) ; ktime_t offset ; }; struct hrtimer_cpu_base { raw_spinlock_t lock ; seqcount_t seq ; struct hrtimer *running ; unsigned int cpu ; unsigned int active_bases ; unsigned int clock_was_set_seq ; bool migration_enabled ; bool nohz_active ; unsigned char in_hrtirq : 1 ; unsigned char hres_active : 1 ; unsigned char hang_detected : 1 ; ktime_t expires_next ; struct hrtimer *next_timer ; unsigned int nr_events ; unsigned int nr_retries ; unsigned int nr_hangs ; unsigned int max_hang_time ; struct hrtimer_clock_base clock_base[4U] ; }; struct task_io_accounting { u64 rchar ; u64 wchar ; u64 syscr ; u64 syscw ; u64 read_bytes ; u64 write_bytes ; u64 cancelled_write_bytes ; }; struct latency_record { unsigned long backtrace[12U] ; unsigned int count ; unsigned long time ; unsigned long max ; }; struct assoc_array_ptr; struct assoc_array { struct assoc_array_ptr *root ; unsigned long nr_leaves_on_tree ; }; typedef int32_t key_serial_t; typedef uint32_t key_perm_t; struct key; struct signal_struct; struct key_type; struct keyring_index_key { struct key_type *type ; char const *description ; size_t desc_len ; }; union __anonunion____missing_field_name_196 { struct list_head graveyard_link ; struct rb_node serial_node ; }; struct key_user; union __anonunion____missing_field_name_197 { time_t expiry ; time_t revoked_at ; }; struct __anonstruct____missing_field_name_199 { struct key_type *type ; char *description ; }; union __anonunion____missing_field_name_198 { struct keyring_index_key index_key ; struct __anonstruct____missing_field_name_199 __annonCompField52 ; }; union __anonunion_type_data_200 { struct list_head link ; unsigned long x[2U] ; void *p[2U] ; int reject_error ; }; union __anonunion_payload_202 { unsigned long value ; void *rcudata ; void *data ; void *data2[2U] ; }; union __anonunion____missing_field_name_201 { union __anonunion_payload_202 payload ; struct assoc_array keys ; }; struct key { atomic_t usage ; key_serial_t serial ; union __anonunion____missing_field_name_196 __annonCompField50 ; struct rw_semaphore sem ; struct key_user *user ; void *security ; union __anonunion____missing_field_name_197 __annonCompField51 ; time_t last_used_at ; kuid_t uid ; kgid_t gid ; key_perm_t perm ; unsigned short quotalen ; unsigned short datalen ; unsigned long flags ; union __anonunion____missing_field_name_198 __annonCompField53 ; union __anonunion_type_data_200 type_data ; union __anonunion____missing_field_name_201 __annonCompField54 ; }; struct audit_context; struct group_info { atomic_t usage ; int ngroups ; int nblocks ; kgid_t small_block[32U] ; kgid_t *blocks[0U] ; }; struct cred { atomic_t usage ; atomic_t subscribers ; void *put_addr ; unsigned int magic ; kuid_t uid ; kgid_t gid ; kuid_t suid ; kgid_t sgid ; kuid_t euid ; kgid_t egid ; kuid_t fsuid ; kgid_t fsgid ; unsigned int securebits ; kernel_cap_t cap_inheritable ; kernel_cap_t cap_permitted ; kernel_cap_t cap_effective ; kernel_cap_t cap_bset ; unsigned char jit_keyring ; struct key *session_keyring ; struct key *process_keyring ; struct key *thread_keyring ; struct key *request_key_auth ; void *security ; struct user_struct *user ; struct user_namespace *user_ns ; struct group_info *group_info ; struct callback_head rcu ; }; struct percpu_ref; typedef void percpu_ref_func_t(struct percpu_ref * ); struct percpu_ref { atomic_long_t count ; unsigned long percpu_count_ptr ; percpu_ref_func_t *release ; percpu_ref_func_t *confirm_switch ; bool force_atomic ; struct callback_head rcu ; }; struct cgroup; struct cgroup_root; struct cgroup_subsys; struct cgroup_taskset; struct cgroup_subsys_state { struct cgroup *cgroup ; struct cgroup_subsys *ss ; struct percpu_ref refcnt ; struct cgroup_subsys_state *parent ; struct list_head sibling ; struct list_head children ; int id ; unsigned int flags ; u64 serial_nr ; struct callback_head callback_head ; struct work_struct destroy_work ; }; struct css_set { atomic_t refcount ; struct hlist_node hlist ; struct list_head tasks ; struct list_head mg_tasks ; struct list_head cgrp_links ; struct cgroup *dfl_cgrp ; struct cgroup_subsys_state *subsys[12U] ; struct list_head mg_preload_node ; struct list_head mg_node ; struct cgroup *mg_src_cgrp ; struct css_set *mg_dst_cset ; struct list_head e_cset_node[12U] ; struct callback_head callback_head ; }; struct cgroup { struct cgroup_subsys_state self ; unsigned long flags ; int id ; int populated_cnt ; struct kernfs_node *kn ; struct kernfs_node *procs_kn ; struct kernfs_node *populated_kn ; unsigned int subtree_control ; unsigned int child_subsys_mask ; struct cgroup_subsys_state *subsys[12U] ; struct cgroup_root *root ; struct list_head cset_links ; struct list_head e_csets[12U] ; struct list_head pidlists ; struct mutex pidlist_mutex ; wait_queue_head_t offline_waitq ; struct work_struct release_agent_work ; }; struct cgroup_root { struct kernfs_root *kf_root ; unsigned int subsys_mask ; int hierarchy_id ; struct cgroup cgrp ; atomic_t nr_cgrps ; struct list_head root_list ; unsigned int flags ; struct idr cgroup_idr ; char release_agent_path[4096U] ; char name[64U] ; }; struct cftype { char name[64U] ; int private ; umode_t mode ; size_t max_write_len ; unsigned int flags ; struct cgroup_subsys *ss ; struct list_head node ; struct kernfs_ops *kf_ops ; u64 (*read_u64)(struct cgroup_subsys_state * , struct cftype * ) ; s64 (*read_s64)(struct cgroup_subsys_state * , struct cftype * ) ; int (*seq_show)(struct seq_file * , void * ) ; void *(*seq_start)(struct seq_file * , loff_t * ) ; void *(*seq_next)(struct seq_file * , void * , loff_t * ) ; void (*seq_stop)(struct seq_file * , void * ) ; int (*write_u64)(struct cgroup_subsys_state * , struct cftype * , u64 ) ; int (*write_s64)(struct cgroup_subsys_state * , struct cftype * , s64 ) ; ssize_t (*write)(struct kernfs_open_file * , char * , size_t , loff_t ) ; struct lock_class_key lockdep_key ; }; struct cgroup_subsys { struct cgroup_subsys_state *(*css_alloc)(struct cgroup_subsys_state * ) ; int (*css_online)(struct cgroup_subsys_state * ) ; void (*css_offline)(struct cgroup_subsys_state * ) ; void (*css_released)(struct cgroup_subsys_state * ) ; void (*css_free)(struct cgroup_subsys_state * ) ; void (*css_reset)(struct cgroup_subsys_state * ) ; void (*css_e_css_changed)(struct cgroup_subsys_state * ) ; int (*can_attach)(struct cgroup_subsys_state * , struct cgroup_taskset * ) ; void (*cancel_attach)(struct cgroup_subsys_state * , struct cgroup_taskset * ) ; void (*attach)(struct cgroup_subsys_state * , struct cgroup_taskset * ) ; void (*fork)(struct task_struct * ) ; void (*exit)(struct cgroup_subsys_state * , struct cgroup_subsys_state * , struct task_struct * ) ; void (*bind)(struct cgroup_subsys_state * ) ; int disabled ; int early_init ; bool broken_hierarchy ; bool warned_broken_hierarchy ; int id ; char const *name ; struct cgroup_root *root ; struct idr css_idr ; struct list_head cfts ; struct cftype *dfl_cftypes ; struct cftype *legacy_cftypes ; unsigned int depends_on ; }; struct futex_pi_state; struct robust_list_head; struct bio_list; struct fs_struct; struct perf_event_context; struct blk_plug; struct nameidata; struct cfs_rq; struct task_group; struct sighand_struct { atomic_t count ; struct k_sigaction action[64U] ; spinlock_t siglock ; wait_queue_head_t signalfd_wqh ; }; struct pacct_struct { int ac_flag ; long ac_exitcode ; unsigned long ac_mem ; cputime_t ac_utime ; cputime_t ac_stime ; unsigned long ac_minflt ; unsigned long ac_majflt ; }; struct cpu_itimer { cputime_t expires ; cputime_t incr ; u32 error ; u32 incr_error ; }; struct cputime { cputime_t utime ; cputime_t stime ; }; struct task_cputime { cputime_t utime ; cputime_t stime ; unsigned long long sum_exec_runtime ; }; struct task_cputime_atomic { atomic64_t utime ; atomic64_t stime ; atomic64_t sum_exec_runtime ; }; struct thread_group_cputimer { struct task_cputime_atomic cputime_atomic ; int running ; }; struct autogroup; struct tty_struct; struct taskstats; struct tty_audit_buf; struct signal_struct { atomic_t sigcnt ; atomic_t live ; int nr_threads ; struct list_head thread_head ; wait_queue_head_t wait_chldexit ; struct task_struct *curr_target ; struct sigpending shared_pending ; int group_exit_code ; int notify_count ; struct task_struct *group_exit_task ; int group_stop_count ; unsigned int flags ; unsigned char is_child_subreaper : 1 ; unsigned char has_child_subreaper : 1 ; int posix_timer_id ; struct list_head posix_timers ; struct hrtimer real_timer ; struct pid *leader_pid ; ktime_t it_real_incr ; struct cpu_itimer it[2U] ; struct thread_group_cputimer cputimer ; struct task_cputime cputime_expires ; struct list_head cpu_timers[3U] ; struct pid *tty_old_pgrp ; int leader ; struct tty_struct *tty ; struct autogroup *autogroup ; seqlock_t stats_lock ; cputime_t utime ; cputime_t stime ; cputime_t cutime ; cputime_t cstime ; cputime_t gtime ; cputime_t cgtime ; struct cputime prev_cputime ; unsigned long nvcsw ; unsigned long nivcsw ; unsigned long cnvcsw ; unsigned long cnivcsw ; unsigned long min_flt ; unsigned long maj_flt ; unsigned long cmin_flt ; unsigned long cmaj_flt ; unsigned long inblock ; unsigned long oublock ; unsigned long cinblock ; unsigned long coublock ; unsigned long maxrss ; unsigned long cmaxrss ; struct task_io_accounting ioac ; unsigned long long sum_sched_runtime ; struct rlimit rlim[16U] ; struct pacct_struct pacct ; struct taskstats *stats ; unsigned int audit_tty ; unsigned int audit_tty_log_passwd ; struct tty_audit_buf *tty_audit_buf ; oom_flags_t oom_flags ; short oom_score_adj ; short oom_score_adj_min ; struct mutex cred_guard_mutex ; }; struct user_struct { atomic_t __count ; atomic_t processes ; atomic_t sigpending ; atomic_t inotify_watches ; atomic_t inotify_devs ; atomic_t fanotify_listeners ; atomic_long_t epoll_watches ; unsigned long mq_bytes ; unsigned long locked_shm ; struct key *uid_keyring ; struct key *session_keyring ; struct hlist_node uidhash_node ; kuid_t uid ; atomic_long_t locked_vm ; }; struct backing_dev_info; struct reclaim_state; struct sched_info { unsigned long pcount ; unsigned long long run_delay ; unsigned long long last_arrival ; unsigned long long last_queued ; }; struct task_delay_info { spinlock_t lock ; unsigned int flags ; u64 blkio_start ; u64 blkio_delay ; u64 swapin_delay ; u32 blkio_count ; u32 swapin_count ; u64 freepages_start ; u64 freepages_delay ; u32 freepages_count ; }; struct wake_q_node { struct wake_q_node *next ; }; struct io_context; struct pipe_inode_info; struct uts_namespace; struct load_weight { unsigned long weight ; u32 inv_weight ; }; struct sched_avg { u64 last_runnable_update ; s64 decay_count ; unsigned long load_avg_contrib ; unsigned long utilization_avg_contrib ; u32 runnable_avg_sum ; u32 avg_period ; u32 running_avg_sum ; }; struct sched_statistics { u64 wait_start ; u64 wait_max ; u64 wait_count ; u64 wait_sum ; u64 iowait_count ; u64 iowait_sum ; u64 sleep_start ; u64 sleep_max ; s64 sum_sleep_runtime ; u64 block_start ; u64 block_max ; u64 exec_max ; u64 slice_max ; u64 nr_migrations_cold ; u64 nr_failed_migrations_affine ; u64 nr_failed_migrations_running ; u64 nr_failed_migrations_hot ; u64 nr_forced_migrations ; u64 nr_wakeups ; u64 nr_wakeups_sync ; u64 nr_wakeups_migrate ; u64 nr_wakeups_local ; u64 nr_wakeups_remote ; u64 nr_wakeups_affine ; u64 nr_wakeups_affine_attempts ; u64 nr_wakeups_passive ; u64 nr_wakeups_idle ; }; struct sched_entity { struct load_weight load ; struct rb_node run_node ; struct list_head group_node ; unsigned int on_rq ; u64 exec_start ; u64 sum_exec_runtime ; u64 vruntime ; u64 prev_sum_exec_runtime ; u64 nr_migrations ; struct sched_statistics statistics ; int depth ; struct sched_entity *parent ; struct cfs_rq *cfs_rq ; struct cfs_rq *my_q ; struct sched_avg avg ; }; struct rt_rq; struct sched_rt_entity { struct list_head run_list ; unsigned long timeout ; unsigned long watchdog_stamp ; unsigned int time_slice ; struct sched_rt_entity *back ; struct sched_rt_entity *parent ; struct rt_rq *rt_rq ; struct rt_rq *my_q ; }; struct sched_dl_entity { struct rb_node rb_node ; u64 dl_runtime ; u64 dl_deadline ; u64 dl_period ; u64 dl_bw ; s64 runtime ; u64 deadline ; unsigned int flags ; int dl_throttled ; int dl_new ; int dl_boosted ; int dl_yielded ; struct hrtimer dl_timer ; }; struct memcg_oom_info { struct mem_cgroup *memcg ; gfp_t gfp_mask ; int order ; unsigned char may_oom : 1 ; }; struct sched_class; struct files_struct; struct compat_robust_list_head; struct numa_group; struct ftrace_ret_stack; struct task_struct { long volatile state ; void *stack ; atomic_t usage ; unsigned int flags ; unsigned int ptrace ; struct llist_node wake_entry ; int on_cpu ; struct task_struct *last_wakee ; unsigned long wakee_flips ; unsigned long wakee_flip_decay_ts ; int wake_cpu ; int on_rq ; int prio ; int static_prio ; int normal_prio ; unsigned int rt_priority ; struct sched_class const *sched_class ; struct sched_entity se ; struct sched_rt_entity rt ; struct task_group *sched_task_group ; struct sched_dl_entity dl ; struct hlist_head preempt_notifiers ; unsigned int btrace_seq ; unsigned int policy ; int nr_cpus_allowed ; cpumask_t cpus_allowed ; unsigned long rcu_tasks_nvcsw ; bool rcu_tasks_holdout ; struct list_head rcu_tasks_holdout_list ; int rcu_tasks_idle_cpu ; struct sched_info sched_info ; struct list_head tasks ; struct plist_node pushable_tasks ; struct rb_node pushable_dl_tasks ; struct mm_struct *mm ; struct mm_struct *active_mm ; u32 vmacache_seqnum ; struct vm_area_struct *vmacache[4U] ; struct task_rss_stat rss_stat ; int exit_state ; int exit_code ; int exit_signal ; int pdeath_signal ; unsigned long jobctl ; unsigned int personality ; unsigned char in_execve : 1 ; unsigned char in_iowait : 1 ; unsigned char sched_reset_on_fork : 1 ; unsigned char sched_contributes_to_load : 1 ; unsigned char sched_migrated : 1 ; unsigned char memcg_kmem_skip_account : 1 ; unsigned char brk_randomized : 1 ; unsigned long atomic_flags ; struct restart_block restart_block ; pid_t pid ; pid_t tgid ; struct task_struct *real_parent ; struct task_struct *parent ; struct list_head children ; struct list_head sibling ; struct task_struct *group_leader ; struct list_head ptraced ; struct list_head ptrace_entry ; struct pid_link pids[3U] ; struct list_head thread_group ; struct list_head thread_node ; struct completion *vfork_done ; int *set_child_tid ; int *clear_child_tid ; cputime_t utime ; cputime_t stime ; cputime_t utimescaled ; cputime_t stimescaled ; cputime_t gtime ; struct cputime prev_cputime ; unsigned long nvcsw ; unsigned long nivcsw ; u64 start_time ; u64 real_start_time ; unsigned long min_flt ; unsigned long maj_flt ; struct task_cputime cputime_expires ; struct list_head cpu_timers[3U] ; struct cred const *real_cred ; struct cred const *cred ; char comm[16U] ; struct nameidata *nameidata ; struct sysv_sem sysvsem ; struct sysv_shm sysvshm ; unsigned long last_switch_count ; struct thread_struct thread ; struct fs_struct *fs ; struct files_struct *files ; struct nsproxy *nsproxy ; struct signal_struct *signal ; struct sighand_struct *sighand ; sigset_t blocked ; sigset_t real_blocked ; sigset_t saved_sigmask ; struct sigpending pending ; unsigned long sas_ss_sp ; size_t sas_ss_size ; int (*notifier)(void * ) ; void *notifier_data ; sigset_t *notifier_mask ; struct callback_head *task_works ; struct audit_context *audit_context ; kuid_t loginuid ; unsigned int sessionid ; struct seccomp seccomp ; u32 parent_exec_id ; u32 self_exec_id ; spinlock_t alloc_lock ; raw_spinlock_t pi_lock ; struct wake_q_node wake_q ; struct rb_root pi_waiters ; struct rb_node *pi_waiters_leftmost ; struct rt_mutex_waiter *pi_blocked_on ; struct mutex_waiter *blocked_on ; unsigned int irq_events ; unsigned long hardirq_enable_ip ; unsigned long hardirq_disable_ip ; unsigned int hardirq_enable_event ; unsigned int hardirq_disable_event ; int hardirqs_enabled ; int hardirq_context ; unsigned long softirq_disable_ip ; unsigned long softirq_enable_ip ; unsigned int softirq_disable_event ; unsigned int softirq_enable_event ; int softirqs_enabled ; int softirq_context ; u64 curr_chain_key ; int lockdep_depth ; unsigned int lockdep_recursion ; struct held_lock held_locks[48U] ; gfp_t lockdep_reclaim_gfp ; void *journal_info ; struct bio_list *bio_list ; struct blk_plug *plug ; struct reclaim_state *reclaim_state ; struct backing_dev_info *backing_dev_info ; struct io_context *io_context ; unsigned long ptrace_message ; siginfo_t *last_siginfo ; struct task_io_accounting ioac ; u64 acct_rss_mem1 ; u64 acct_vm_mem1 ; cputime_t acct_timexpd ; nodemask_t mems_allowed ; seqcount_t mems_allowed_seq ; int cpuset_mem_spread_rotor ; int cpuset_slab_spread_rotor ; struct css_set *cgroups ; struct list_head cg_list ; struct robust_list_head *robust_list ; struct compat_robust_list_head *compat_robust_list ; struct list_head pi_state_list ; struct futex_pi_state *pi_state_cache ; struct perf_event_context *perf_event_ctxp[2U] ; struct mutex perf_event_mutex ; struct list_head perf_event_list ; struct mempolicy *mempolicy ; short il_next ; short pref_node_fork ; int numa_scan_seq ; unsigned int numa_scan_period ; unsigned int numa_scan_period_max ; int numa_preferred_nid ; unsigned long numa_migrate_retry ; u64 node_stamp ; u64 last_task_numa_placement ; u64 last_sum_exec_runtime ; struct callback_head numa_work ; struct list_head numa_entry ; struct numa_group *numa_group ; unsigned long *numa_faults ; unsigned long total_numa_faults ; unsigned long numa_faults_locality[3U] ; unsigned long numa_pages_migrated ; struct callback_head rcu ; struct pipe_inode_info *splice_pipe ; struct page_frag task_frag ; struct task_delay_info *delays ; int make_it_fail ; int nr_dirtied ; int nr_dirtied_pause ; unsigned long dirty_paused_when ; int latency_record_count ; struct latency_record latency_record[32U] ; unsigned long timer_slack_ns ; unsigned long default_timer_slack_ns ; unsigned int kasan_depth ; int curr_ret_stack ; struct ftrace_ret_stack *ret_stack ; unsigned long long ftrace_timestamp ; atomic_t trace_overrun ; atomic_t tracing_graph_pause ; unsigned long trace ; unsigned long trace_recursion ; struct memcg_oom_info memcg_oom ; struct uprobe_task *utask ; unsigned int sequential_io ; unsigned int sequential_io_avg ; unsigned long task_state_change ; int pagefault_disabled ; }; enum irqreturn { IRQ_NONE = 0, IRQ_HANDLED = 1, IRQ_WAKE_THREAD = 2 } ; typedef enum irqreturn irqreturn_t; struct ieee80211_hw; struct b43_wldev; struct ssb_device; struct b43_dmaring; struct device_attribute; struct pcmcia_device; struct sdio_func; struct bcma_device; struct iovec { void *iov_base ; __kernel_size_t iov_len ; }; struct kvec { void *iov_base ; size_t iov_len ; }; union __anonunion____missing_field_name_217 { struct iovec const *iov ; struct kvec const *kvec ; struct bio_vec const *bvec ; }; struct iov_iter { int type ; size_t iov_offset ; size_t count ; union __anonunion____missing_field_name_217 __annonCompField58 ; unsigned long nr_segs ; }; typedef unsigned short __kernel_sa_family_t; typedef __kernel_sa_family_t sa_family_t; struct sockaddr { sa_family_t sa_family ; char sa_data[14U] ; }; struct kiocb; struct msghdr { void *msg_name ; int msg_namelen ; struct iov_iter msg_iter ; void *msg_control ; __kernel_size_t msg_controllen ; unsigned int msg_flags ; struct kiocb *msg_iocb ; }; struct irq_desc; enum ldv_17739 { SS_FREE = 0, SS_UNCONNECTED = 1, SS_CONNECTING = 2, SS_CONNECTED = 3, SS_DISCONNECTING = 4 } ; typedef enum ldv_17739 socket_state; struct poll_table_struct; struct net; struct fasync_struct; struct socket_wq { wait_queue_head_t wait ; struct fasync_struct *fasync_list ; struct callback_head rcu ; }; struct proto_ops; struct socket { socket_state state ; short type ; unsigned long flags ; struct socket_wq *wq ; struct file *file ; struct sock *sk ; struct proto_ops const *ops ; }; struct proto_ops { int family ; struct module *owner ; int (*release)(struct socket * ) ; int (*bind)(struct socket * , struct sockaddr * , int ) ; int (*connect)(struct socket * , struct sockaddr * , int , int ) ; int (*socketpair)(struct socket * , struct socket * ) ; int (*accept)(struct socket * , struct socket * , int ) ; int (*getname)(struct socket * , struct sockaddr * , int * , int ) ; unsigned int (*poll)(struct file * , struct socket * , struct poll_table_struct * ) ; int (*ioctl)(struct socket * , unsigned int , unsigned long ) ; int (*compat_ioctl)(struct socket * , unsigned int , unsigned long ) ; int (*listen)(struct socket * , int ) ; int (*shutdown)(struct socket * , int ) ; int (*setsockopt)(struct socket * , int , int , char * , unsigned int ) ; int (*getsockopt)(struct socket * , int , int , char * , int * ) ; int (*compat_setsockopt)(struct socket * , int , int , char * , unsigned int ) ; int (*compat_getsockopt)(struct socket * , int , int , char * , int * ) ; int (*sendmsg)(struct socket * , struct msghdr * , size_t ) ; int (*recvmsg)(struct socket * , struct msghdr * , size_t , int ) ; int (*mmap)(struct file * , struct socket * , struct vm_area_struct * ) ; ssize_t (*sendpage)(struct socket * , struct page * , int , size_t , int ) ; ssize_t (*splice_read)(struct socket * , loff_t * , struct pipe_inode_info * , size_t , unsigned int ) ; int (*set_peek_off)(struct sock * , int ) ; }; struct exception_table_entry { int insn ; int fixup ; }; struct in6_addr; struct sk_buff; struct klist_node; struct klist_node { void *n_klist ; struct list_head n_node ; struct kref n_ref ; }; struct path; struct seq_file { char *buf ; size_t size ; size_t from ; size_t count ; size_t pad_until ; loff_t index ; loff_t read_pos ; u64 version ; struct mutex lock ; struct seq_operations const *op ; int poll_event ; struct user_namespace *user_ns ; void *private ; }; struct seq_operations { void *(*start)(struct seq_file * , loff_t * ) ; void (*stop)(struct seq_file * , void * ) ; void *(*next)(struct seq_file * , void * , loff_t * ) ; int (*show)(struct seq_file * , void * ) ; }; struct pinctrl; struct pinctrl_state; struct dev_pin_info { struct pinctrl *p ; struct pinctrl_state *default_state ; struct pinctrl_state *sleep_state ; struct pinctrl_state *idle_state ; }; struct dma_map_ops; struct dev_archdata { struct dma_map_ops *dma_ops ; void *iommu ; }; struct pdev_archdata { }; struct device_private; struct device_driver; struct driver_private; struct class; struct subsys_private; struct bus_type; struct device_node; struct fwnode_handle; struct iommu_ops; struct iommu_group; struct bus_type { char const *name ; char const *dev_name ; struct device *dev_root ; struct device_attribute *dev_attrs ; struct attribute_group const **bus_groups ; struct attribute_group const **dev_groups ; struct attribute_group const **drv_groups ; int (*match)(struct device * , struct device_driver * ) ; int (*uevent)(struct device * , struct kobj_uevent_env * ) ; int (*probe)(struct device * ) ; int (*remove)(struct device * ) ; void (*shutdown)(struct device * ) ; int (*online)(struct device * ) ; int (*offline)(struct device * ) ; int (*suspend)(struct device * , pm_message_t ) ; int (*resume)(struct device * ) ; struct dev_pm_ops const *pm ; struct iommu_ops const *iommu_ops ; struct subsys_private *p ; struct lock_class_key lock_key ; }; struct device_type; enum probe_type { PROBE_DEFAULT_STRATEGY = 0, PROBE_PREFER_ASYNCHRONOUS = 1, PROBE_FORCE_SYNCHRONOUS = 2 } ; struct of_device_id; struct acpi_device_id; struct device_driver { char const *name ; struct bus_type *bus ; struct module *owner ; char const *mod_name ; bool suppress_bind_attrs ; enum probe_type probe_type ; struct of_device_id const *of_match_table ; struct acpi_device_id const *acpi_match_table ; int (*probe)(struct device * ) ; int (*remove)(struct device * ) ; void (*shutdown)(struct device * ) ; int (*suspend)(struct device * , pm_message_t ) ; int (*resume)(struct device * ) ; struct attribute_group const **groups ; struct dev_pm_ops const *pm ; struct driver_private *p ; }; struct class_attribute; struct class { char const *name ; struct module *owner ; struct class_attribute *class_attrs ; struct attribute_group const **dev_groups ; struct kobject *dev_kobj ; int (*dev_uevent)(struct device * , struct kobj_uevent_env * ) ; char *(*devnode)(struct device * , umode_t * ) ; void (*class_release)(struct class * ) ; void (*dev_release)(struct device * ) ; int (*suspend)(struct device * , pm_message_t ) ; int (*resume)(struct device * ) ; struct kobj_ns_type_operations const *ns_type ; void const *(*namespace)(struct device * ) ; struct dev_pm_ops const *pm ; struct subsys_private *p ; }; struct class_attribute { struct attribute attr ; ssize_t (*show)(struct class * , struct class_attribute * , char * ) ; ssize_t (*store)(struct class * , struct class_attribute * , char const * , size_t ) ; }; struct device_type { char const *name ; struct attribute_group const **groups ; int (*uevent)(struct device * , struct kobj_uevent_env * ) ; char *(*devnode)(struct device * , umode_t * , kuid_t * , kgid_t * ) ; void (*release)(struct device * ) ; struct dev_pm_ops const *pm ; }; struct device_attribute { struct attribute attr ; ssize_t (*show)(struct device * , struct device_attribute * , char * ) ; ssize_t (*store)(struct device * , struct device_attribute * , char const * , size_t ) ; }; struct device_dma_parameters { unsigned int max_segment_size ; unsigned long segment_boundary_mask ; }; struct dma_coherent_mem; struct cma; struct device { struct device *parent ; struct device_private *p ; struct kobject kobj ; char const *init_name ; struct device_type const *type ; struct mutex mutex ; struct bus_type *bus ; struct device_driver *driver ; void *platform_data ; void *driver_data ; struct dev_pm_info power ; struct dev_pm_domain *pm_domain ; struct dev_pin_info *pins ; int numa_node ; u64 *dma_mask ; u64 coherent_dma_mask ; unsigned long dma_pfn_offset ; struct device_dma_parameters *dma_parms ; struct list_head dma_pools ; struct dma_coherent_mem *dma_mem ; struct cma *cma_area ; struct dev_archdata archdata ; struct device_node *of_node ; struct fwnode_handle *fwnode ; dev_t devt ; u32 id ; spinlock_t devres_lock ; struct list_head devres_head ; struct klist_node knode_class ; struct class *class ; struct attribute_group const **groups ; void (*release)(struct device * ) ; struct iommu_group *iommu_group ; bool offline_disabled ; bool offline ; }; struct wakeup_source { char const *name ; struct list_head entry ; spinlock_t lock ; struct wake_irq *wakeirq ; struct timer_list timer ; unsigned long timer_expires ; ktime_t total_time ; ktime_t max_time ; ktime_t last_time ; ktime_t start_prevent_time ; ktime_t prevent_sleep_time ; unsigned long event_count ; unsigned long active_count ; unsigned long relax_count ; unsigned long expire_count ; unsigned long wakeup_count ; bool active ; bool autosleep_enabled ; }; struct dma_attrs { unsigned long flags[1U] ; }; enum dma_data_direction { DMA_BIDIRECTIONAL = 0, DMA_TO_DEVICE = 1, DMA_FROM_DEVICE = 2, DMA_NONE = 3 } ; struct shrink_control { gfp_t gfp_mask ; unsigned long nr_to_scan ; int nid ; struct mem_cgroup *memcg ; }; struct shrinker { unsigned long (*count_objects)(struct shrinker * , struct shrink_control * ) ; unsigned long (*scan_objects)(struct shrinker * , struct shrink_control * ) ; int seeks ; long batch ; unsigned long flags ; struct list_head list ; atomic_long_t *nr_deferred ; }; struct file_ra_state; struct writeback_control; struct bdi_writeback; struct vm_fault { unsigned int flags ; unsigned long pgoff ; void *virtual_address ; struct page *cow_page ; struct page *page ; unsigned long max_pgoff ; pte_t *pte ; }; struct vm_operations_struct { void (*open)(struct vm_area_struct * ) ; void (*close)(struct vm_area_struct * ) ; int (*fault)(struct vm_area_struct * , struct vm_fault * ) ; void (*map_pages)(struct vm_area_struct * , struct vm_fault * ) ; int (*page_mkwrite)(struct vm_area_struct * , struct vm_fault * ) ; int (*pfn_mkwrite)(struct vm_area_struct * , struct vm_fault * ) ; int (*access)(struct vm_area_struct * , unsigned long , void * , int , int ) ; char const *(*name)(struct vm_area_struct * ) ; int (*set_policy)(struct vm_area_struct * , struct mempolicy * ) ; struct mempolicy *(*get_policy)(struct vm_area_struct * , unsigned long ) ; struct page *(*find_special_page)(struct vm_area_struct * , unsigned long ) ; }; struct scatterlist { unsigned long sg_magic ; unsigned long page_link ; unsigned int offset ; unsigned int length ; dma_addr_t dma_address ; unsigned int dma_length ; }; struct sg_table { struct scatterlist *sgl ; unsigned int nents ; unsigned int orig_nents ; }; struct dma_map_ops { void *(*alloc)(struct device * , size_t , dma_addr_t * , gfp_t , struct dma_attrs * ) ; void (*free)(struct device * , size_t , void * , dma_addr_t , struct dma_attrs * ) ; int (*mmap)(struct device * , struct vm_area_struct * , void * , dma_addr_t , size_t , struct dma_attrs * ) ; int (*get_sgtable)(struct device * , struct sg_table * , void * , dma_addr_t , size_t , struct dma_attrs * ) ; dma_addr_t (*map_page)(struct device * , struct page * , unsigned long , size_t , enum dma_data_direction , struct dma_attrs * ) ; void (*unmap_page)(struct device * , dma_addr_t , size_t , enum dma_data_direction , struct dma_attrs * ) ; int (*map_sg)(struct device * , struct scatterlist * , int , enum dma_data_direction , struct dma_attrs * ) ; void (*unmap_sg)(struct device * , struct scatterlist * , int , enum dma_data_direction , struct dma_attrs * ) ; void (*sync_single_for_cpu)(struct device * , dma_addr_t , size_t , enum dma_data_direction ) ; void (*sync_single_for_device)(struct device * , dma_addr_t , size_t , enum dma_data_direction ) ; void (*sync_sg_for_cpu)(struct device * , struct scatterlist * , int , enum dma_data_direction ) ; void (*sync_sg_for_device)(struct device * , struct scatterlist * , int , enum dma_data_direction ) ; int (*mapping_error)(struct device * , dma_addr_t ) ; int (*dma_supported)(struct device * , u64 ) ; int (*set_dma_mask)(struct device * , u64 ) ; int is_phys ; }; typedef u64 netdev_features_t; union __anonunion_in6_u_218 { __u8 u6_addr8[16U] ; __be16 u6_addr16[8U] ; __be32 u6_addr32[4U] ; }; struct in6_addr { union __anonunion_in6_u_218 in6_u ; }; struct ethhdr { unsigned char h_dest[6U] ; unsigned char h_source[6U] ; __be16 h_proto ; }; struct pipe_buf_operations; struct pipe_buffer { struct page *page ; unsigned int offset ; unsigned int len ; struct pipe_buf_operations const *ops ; unsigned int flags ; unsigned long private ; }; struct pipe_inode_info { struct mutex mutex ; wait_queue_head_t wait ; unsigned int nrbufs ; unsigned int curbuf ; unsigned int buffers ; unsigned int readers ; unsigned int writers ; unsigned int files ; unsigned int waiting_writers ; unsigned int r_counter ; unsigned int w_counter ; struct page *tmp_page ; struct fasync_struct *fasync_readers ; struct fasync_struct *fasync_writers ; struct pipe_buffer *bufs ; }; struct pipe_buf_operations { int can_merge ; int (*confirm)(struct pipe_inode_info * , struct pipe_buffer * ) ; void (*release)(struct pipe_inode_info * , struct pipe_buffer * ) ; int (*steal)(struct pipe_inode_info * , struct pipe_buffer * ) ; void (*get)(struct pipe_inode_info * , struct pipe_buffer * ) ; }; struct napi_struct; struct nf_conntrack { atomic_t use ; }; union __anonunion____missing_field_name_223 { struct net_device *physoutdev ; char neigh_header[8U] ; }; union __anonunion____missing_field_name_224 { __be32 ipv4_daddr ; struct in6_addr ipv6_daddr ; }; struct nf_bridge_info { atomic_t use ; unsigned char orig_proto ; bool pkt_otherhost ; __u16 frag_max_size ; unsigned int mask ; struct net_device *physindev ; union __anonunion____missing_field_name_223 __annonCompField62 ; union __anonunion____missing_field_name_224 __annonCompField63 ; }; struct sk_buff_head { struct sk_buff *next ; struct sk_buff *prev ; __u32 qlen ; spinlock_t lock ; }; struct skb_frag_struct; typedef struct skb_frag_struct skb_frag_t; struct __anonstruct_page_225 { struct page *p ; }; struct skb_frag_struct { struct __anonstruct_page_225 page ; __u32 page_offset ; __u32 size ; }; struct skb_shared_hwtstamps { ktime_t hwtstamp ; }; struct skb_shared_info { unsigned char nr_frags ; __u8 tx_flags ; unsigned short gso_size ; unsigned short gso_segs ; unsigned short gso_type ; struct sk_buff *frag_list ; struct skb_shared_hwtstamps hwtstamps ; u32 tskey ; __be32 ip6_frag_id ; atomic_t dataref ; void *destructor_arg ; skb_frag_t frags[17U] ; }; typedef unsigned int sk_buff_data_t; struct __anonstruct____missing_field_name_227 { u32 stamp_us ; u32 stamp_jiffies ; }; union __anonunion____missing_field_name_226 { u64 v64 ; struct __anonstruct____missing_field_name_227 __annonCompField64 ; }; struct skb_mstamp { union __anonunion____missing_field_name_226 __annonCompField65 ; }; union __anonunion____missing_field_name_230 { ktime_t tstamp ; struct skb_mstamp skb_mstamp ; }; struct __anonstruct____missing_field_name_229 { struct sk_buff *next ; struct sk_buff *prev ; union __anonunion____missing_field_name_230 __annonCompField66 ; }; union __anonunion____missing_field_name_228 { struct __anonstruct____missing_field_name_229 __annonCompField67 ; struct rb_node rbnode ; }; struct sec_path; struct __anonstruct____missing_field_name_232 { __u16 csum_start ; __u16 csum_offset ; }; union __anonunion____missing_field_name_231 { __wsum csum ; struct __anonstruct____missing_field_name_232 __annonCompField69 ; }; union __anonunion____missing_field_name_233 { unsigned int napi_id ; unsigned int sender_cpu ; }; union __anonunion____missing_field_name_234 { __u32 mark ; __u32 reserved_tailroom ; }; union __anonunion____missing_field_name_235 { __be16 inner_protocol ; __u8 inner_ipproto ; }; struct sk_buff { union __anonunion____missing_field_name_228 __annonCompField68 ; struct sock *sk ; struct net_device *dev ; char cb[48U] ; unsigned long _skb_refdst ; void (*destructor)(struct sk_buff * ) ; struct sec_path *sp ; struct nf_conntrack *nfct ; struct nf_bridge_info *nf_bridge ; unsigned int len ; unsigned int data_len ; __u16 mac_len ; __u16 hdr_len ; __u16 queue_mapping ; unsigned char cloned : 1 ; unsigned char nohdr : 1 ; unsigned char fclone : 2 ; unsigned char peeked : 1 ; unsigned char head_frag : 1 ; unsigned char xmit_more : 1 ; __u32 headers_start[0U] ; __u8 __pkt_type_offset[0U] ; unsigned char pkt_type : 3 ; unsigned char pfmemalloc : 1 ; unsigned char ignore_df : 1 ; unsigned char nfctinfo : 3 ; unsigned char nf_trace : 1 ; unsigned char ip_summed : 2 ; unsigned char ooo_okay : 1 ; unsigned char l4_hash : 1 ; unsigned char sw_hash : 1 ; unsigned char wifi_acked_valid : 1 ; unsigned char wifi_acked : 1 ; unsigned char no_fcs : 1 ; unsigned char encapsulation : 1 ; unsigned char encap_hdr_csum : 1 ; unsigned char csum_valid : 1 ; unsigned char csum_complete_sw : 1 ; unsigned char csum_level : 2 ; unsigned char csum_bad : 1 ; unsigned char ndisc_nodetype : 2 ; unsigned char ipvs_property : 1 ; unsigned char inner_protocol_type : 1 ; unsigned char remcsum_offload : 1 ; __u16 tc_index ; __u16 tc_verd ; union __anonunion____missing_field_name_231 __annonCompField70 ; __u32 priority ; int skb_iif ; __u32 hash ; __be16 vlan_proto ; __u16 vlan_tci ; union __anonunion____missing_field_name_233 __annonCompField71 ; __u32 secmark ; union __anonunion____missing_field_name_234 __annonCompField72 ; union __anonunion____missing_field_name_235 __annonCompField73 ; __u16 inner_transport_header ; __u16 inner_network_header ; __u16 inner_mac_header ; __be16 protocol ; __u16 transport_header ; __u16 network_header ; __u16 mac_header ; __u32 headers_end[0U] ; sk_buff_data_t tail ; sk_buff_data_t end ; unsigned char *head ; unsigned char *data ; unsigned int truesize ; atomic_t users ; }; struct dst_entry; struct dql { unsigned int num_queued ; unsigned int adj_limit ; unsigned int last_obj_cnt ; unsigned int limit ; unsigned int num_completed ; unsigned int prev_ovlimit ; unsigned int prev_num_queued ; unsigned int prev_last_obj_cnt ; unsigned int lowest_slack ; unsigned long slack_start_time ; unsigned int max_limit ; unsigned int min_limit ; unsigned int slack_hold_time ; }; struct __anonstruct_sync_serial_settings_237 { unsigned int clock_rate ; unsigned int clock_type ; unsigned short loopback ; }; typedef struct __anonstruct_sync_serial_settings_237 sync_serial_settings; struct __anonstruct_te1_settings_238 { unsigned int clock_rate ; unsigned int clock_type ; unsigned short loopback ; unsigned int slot_map ; }; typedef struct __anonstruct_te1_settings_238 te1_settings; struct __anonstruct_raw_hdlc_proto_239 { unsigned short encoding ; unsigned short parity ; }; typedef struct __anonstruct_raw_hdlc_proto_239 raw_hdlc_proto; struct __anonstruct_fr_proto_240 { unsigned int t391 ; unsigned int t392 ; unsigned int n391 ; unsigned int n392 ; unsigned int n393 ; unsigned short lmi ; unsigned short dce ; }; typedef struct __anonstruct_fr_proto_240 fr_proto; struct __anonstruct_fr_proto_pvc_241 { unsigned int dlci ; }; typedef struct __anonstruct_fr_proto_pvc_241 fr_proto_pvc; struct __anonstruct_fr_proto_pvc_info_242 { unsigned int dlci ; char master[16U] ; }; typedef struct __anonstruct_fr_proto_pvc_info_242 fr_proto_pvc_info; struct __anonstruct_cisco_proto_243 { unsigned int interval ; unsigned int timeout ; }; typedef struct __anonstruct_cisco_proto_243 cisco_proto; struct ifmap { unsigned long mem_start ; unsigned long mem_end ; unsigned short base_addr ; unsigned char irq ; unsigned char dma ; unsigned char port ; }; union __anonunion_ifs_ifsu_244 { raw_hdlc_proto *raw_hdlc ; cisco_proto *cisco ; fr_proto *fr ; fr_proto_pvc *fr_pvc ; fr_proto_pvc_info *fr_pvc_info ; sync_serial_settings *sync ; te1_settings *te1 ; }; struct if_settings { unsigned int type ; unsigned int size ; union __anonunion_ifs_ifsu_244 ifs_ifsu ; }; union __anonunion_ifr_ifrn_245 { char ifrn_name[16U] ; }; union __anonunion_ifr_ifru_246 { struct sockaddr ifru_addr ; struct sockaddr ifru_dstaddr ; struct sockaddr ifru_broadaddr ; struct sockaddr ifru_netmask ; struct sockaddr ifru_hwaddr ; short ifru_flags ; int ifru_ivalue ; int ifru_mtu ; struct ifmap ifru_map ; char ifru_slave[16U] ; char ifru_newname[16U] ; void *ifru_data ; struct if_settings ifru_settings ; }; struct ifreq { union __anonunion_ifr_ifrn_245 ifr_ifrn ; union __anonunion_ifr_ifru_246 ifr_ifru ; }; struct hlist_bl_node; struct hlist_bl_head { struct hlist_bl_node *first ; }; struct hlist_bl_node { struct hlist_bl_node *next ; struct hlist_bl_node **pprev ; }; struct __anonstruct____missing_field_name_251 { spinlock_t lock ; int count ; }; union __anonunion____missing_field_name_250 { struct __anonstruct____missing_field_name_251 __annonCompField74 ; }; struct lockref { union __anonunion____missing_field_name_250 __annonCompField75 ; }; struct vfsmount; struct __anonstruct____missing_field_name_253 { u32 hash ; u32 len ; }; union __anonunion____missing_field_name_252 { struct __anonstruct____missing_field_name_253 __annonCompField76 ; u64 hash_len ; }; struct qstr { union __anonunion____missing_field_name_252 __annonCompField77 ; unsigned char const *name ; }; struct dentry_operations; union __anonunion_d_u_254 { struct hlist_node d_alias ; struct callback_head d_rcu ; }; struct dentry { unsigned int d_flags ; seqcount_t d_seq ; struct hlist_bl_node d_hash ; struct dentry *d_parent ; struct qstr d_name ; struct inode *d_inode ; unsigned char d_iname[32U] ; struct lockref d_lockref ; struct dentry_operations const *d_op ; struct super_block *d_sb ; unsigned long d_time ; void *d_fsdata ; struct list_head d_lru ; struct list_head d_child ; struct list_head d_subdirs ; union __anonunion_d_u_254 d_u ; }; struct dentry_operations { int (*d_revalidate)(struct dentry * , unsigned int ) ; int (*d_weak_revalidate)(struct dentry * , unsigned int ) ; int (*d_hash)(struct dentry const * , struct qstr * ) ; int (*d_compare)(struct dentry const * , struct dentry const * , unsigned int , char const * , struct qstr const * ) ; int (*d_delete)(struct dentry const * ) ; void (*d_release)(struct dentry * ) ; void (*d_prune)(struct dentry * ) ; void (*d_iput)(struct dentry * , struct inode * ) ; char *(*d_dname)(struct dentry * , char * , int ) ; struct vfsmount *(*d_automount)(struct path * ) ; int (*d_manage)(struct dentry * , bool ) ; struct inode *(*d_select_inode)(struct dentry * , unsigned int ) ; }; struct path { struct vfsmount *mnt ; struct dentry *dentry ; }; struct list_lru_one { struct list_head list ; long nr_items ; }; struct list_lru_memcg { struct list_lru_one *lru[0U] ; }; struct list_lru_node { spinlock_t lock ; struct list_lru_one lru ; struct list_lru_memcg *memcg_lrus ; }; struct list_lru { struct list_lru_node *node ; struct list_head list ; }; struct __anonstruct____missing_field_name_258 { struct radix_tree_node *parent ; void *private_data ; }; union __anonunion____missing_field_name_257 { struct __anonstruct____missing_field_name_258 __annonCompField78 ; struct callback_head callback_head ; }; struct radix_tree_node { unsigned int path ; unsigned int count ; union __anonunion____missing_field_name_257 __annonCompField79 ; struct list_head private_list ; void *slots[64U] ; unsigned long tags[3U][1U] ; }; struct radix_tree_root { unsigned int height ; gfp_t gfp_mask ; struct radix_tree_node *rnode ; }; struct fiemap_extent { __u64 fe_logical ; __u64 fe_physical ; __u64 fe_length ; __u64 fe_reserved64[2U] ; __u32 fe_flags ; __u32 fe_reserved[3U] ; }; enum migrate_mode { MIGRATE_ASYNC = 0, MIGRATE_SYNC_LIGHT = 1, MIGRATE_SYNC = 2 } ; struct block_device; struct bio_vec { struct page *bv_page ; unsigned int bv_len ; unsigned int bv_offset ; }; struct export_operations; struct kstatfs; struct swap_info_struct; struct iattr { unsigned int ia_valid ; umode_t ia_mode ; kuid_t ia_uid ; kgid_t ia_gid ; loff_t ia_size ; struct timespec ia_atime ; struct timespec ia_mtime ; struct timespec ia_ctime ; struct file *ia_file ; }; struct dquot; typedef __kernel_uid32_t projid_t; struct __anonstruct_kprojid_t_262 { projid_t val ; }; typedef struct __anonstruct_kprojid_t_262 kprojid_t; enum quota_type { USRQUOTA = 0, GRPQUOTA = 1, PRJQUOTA = 2 } ; typedef long long qsize_t; union __anonunion____missing_field_name_263 { kuid_t uid ; kgid_t gid ; kprojid_t projid ; }; struct kqid { union __anonunion____missing_field_name_263 __annonCompField81 ; enum quota_type type ; }; struct mem_dqblk { qsize_t dqb_bhardlimit ; qsize_t dqb_bsoftlimit ; qsize_t dqb_curspace ; qsize_t dqb_rsvspace ; qsize_t dqb_ihardlimit ; qsize_t dqb_isoftlimit ; qsize_t dqb_curinodes ; time_t dqb_btime ; time_t dqb_itime ; }; struct quota_format_type; struct mem_dqinfo { struct quota_format_type *dqi_format ; int dqi_fmt_id ; struct list_head dqi_dirty_list ; unsigned long dqi_flags ; unsigned int dqi_bgrace ; unsigned int dqi_igrace ; qsize_t dqi_max_spc_limit ; qsize_t dqi_max_ino_limit ; void *dqi_priv ; }; struct dquot { struct hlist_node dq_hash ; struct list_head dq_inuse ; struct list_head dq_free ; struct list_head dq_dirty ; struct mutex dq_lock ; atomic_t dq_count ; wait_queue_head_t dq_wait_unused ; struct super_block *dq_sb ; struct kqid dq_id ; loff_t dq_off ; unsigned long dq_flags ; struct mem_dqblk dq_dqb ; }; struct quota_format_ops { int (*check_quota_file)(struct super_block * , int ) ; int (*read_file_info)(struct super_block * , int ) ; int (*write_file_info)(struct super_block * , int ) ; int (*free_file_info)(struct super_block * , int ) ; int (*read_dqblk)(struct dquot * ) ; int (*commit_dqblk)(struct dquot * ) ; int (*release_dqblk)(struct dquot * ) ; }; struct dquot_operations { int (*write_dquot)(struct dquot * ) ; struct dquot *(*alloc_dquot)(struct super_block * , int ) ; void (*destroy_dquot)(struct dquot * ) ; int (*acquire_dquot)(struct dquot * ) ; int (*release_dquot)(struct dquot * ) ; int (*mark_dirty)(struct dquot * ) ; int (*write_info)(struct super_block * , int ) ; qsize_t *(*get_reserved_space)(struct inode * ) ; int (*get_projid)(struct inode * , kprojid_t * ) ; }; struct qc_dqblk { int d_fieldmask ; u64 d_spc_hardlimit ; u64 d_spc_softlimit ; u64 d_ino_hardlimit ; u64 d_ino_softlimit ; u64 d_space ; u64 d_ino_count ; s64 d_ino_timer ; s64 d_spc_timer ; int d_ino_warns ; int d_spc_warns ; u64 d_rt_spc_hardlimit ; u64 d_rt_spc_softlimit ; u64 d_rt_space ; s64 d_rt_spc_timer ; int d_rt_spc_warns ; }; struct qc_type_state { unsigned int flags ; unsigned int spc_timelimit ; unsigned int ino_timelimit ; unsigned int rt_spc_timelimit ; unsigned int spc_warnlimit ; unsigned int ino_warnlimit ; unsigned int rt_spc_warnlimit ; unsigned long long ino ; blkcnt_t blocks ; blkcnt_t nextents ; }; struct qc_state { unsigned int s_incoredqs ; struct qc_type_state s_state[3U] ; }; struct qc_info { int i_fieldmask ; unsigned int i_flags ; unsigned int i_spc_timelimit ; unsigned int i_ino_timelimit ; unsigned int i_rt_spc_timelimit ; unsigned int i_spc_warnlimit ; unsigned int i_ino_warnlimit ; unsigned int i_rt_spc_warnlimit ; }; struct quotactl_ops { int (*quota_on)(struct super_block * , int , int , struct path * ) ; int (*quota_off)(struct super_block * , int ) ; int (*quota_enable)(struct super_block * , unsigned int ) ; int (*quota_disable)(struct super_block * , unsigned int ) ; int (*quota_sync)(struct super_block * , int ) ; int (*set_info)(struct super_block * , int , struct qc_info * ) ; int (*get_dqblk)(struct super_block * , struct kqid , struct qc_dqblk * ) ; int (*set_dqblk)(struct super_block * , struct kqid , struct qc_dqblk * ) ; int (*get_state)(struct super_block * , struct qc_state * ) ; int (*rm_xquota)(struct super_block * , unsigned int ) ; }; struct quota_format_type { int qf_fmt_id ; struct quota_format_ops const *qf_ops ; struct module *qf_owner ; struct quota_format_type *qf_next ; }; struct quota_info { unsigned int flags ; struct mutex dqio_mutex ; struct mutex dqonoff_mutex ; struct inode *files[3U] ; struct mem_dqinfo info[3U] ; struct quota_format_ops const *ops[3U] ; }; struct kiocb { struct file *ki_filp ; loff_t ki_pos ; void (*ki_complete)(struct kiocb * , long , long ) ; void *private ; int ki_flags ; }; struct address_space_operations { int (*writepage)(struct page * , struct writeback_control * ) ; int (*readpage)(struct file * , struct page * ) ; int (*writepages)(struct address_space * , struct writeback_control * ) ; int (*set_page_dirty)(struct page * ) ; int (*readpages)(struct file * , struct address_space * , struct list_head * , unsigned int ) ; int (*write_begin)(struct file * , struct address_space * , loff_t , unsigned int , unsigned int , struct page ** , void ** ) ; int (*write_end)(struct file * , struct address_space * , loff_t , unsigned int , unsigned int , struct page * , void * ) ; sector_t (*bmap)(struct address_space * , sector_t ) ; void (*invalidatepage)(struct page * , unsigned int , unsigned int ) ; int (*releasepage)(struct page * , gfp_t ) ; void (*freepage)(struct page * ) ; ssize_t (*direct_IO)(struct kiocb * , struct iov_iter * , loff_t ) ; int (*migratepage)(struct address_space * , struct page * , struct page * , enum migrate_mode ) ; int (*launder_page)(struct page * ) ; int (*is_partially_uptodate)(struct page * , unsigned long , unsigned long ) ; void (*is_dirty_writeback)(struct page * , bool * , bool * ) ; int (*error_remove_page)(struct address_space * , struct page * ) ; int (*swap_activate)(struct swap_info_struct * , struct file * , sector_t * ) ; void (*swap_deactivate)(struct file * ) ; }; struct address_space { struct inode *host ; struct radix_tree_root page_tree ; spinlock_t tree_lock ; atomic_t i_mmap_writable ; struct rb_root i_mmap ; struct rw_semaphore i_mmap_rwsem ; unsigned long nrpages ; unsigned long nrshadows ; unsigned long writeback_index ; struct address_space_operations const *a_ops ; unsigned long flags ; spinlock_t private_lock ; struct list_head private_list ; void *private_data ; }; struct request_queue; struct hd_struct; struct gendisk; struct block_device { dev_t bd_dev ; int bd_openers ; struct inode *bd_inode ; struct super_block *bd_super ; struct mutex bd_mutex ; struct list_head bd_inodes ; void *bd_claiming ; void *bd_holder ; int bd_holders ; bool bd_write_holder ; struct list_head bd_holder_disks ; struct block_device *bd_contains ; unsigned int bd_block_size ; struct hd_struct *bd_part ; unsigned int bd_part_count ; int bd_invalidated ; struct gendisk *bd_disk ; struct request_queue *bd_queue ; struct list_head bd_list ; unsigned long bd_private ; int bd_fsfreeze_count ; struct mutex bd_fsfreeze_mutex ; }; struct posix_acl; struct inode_operations; union __anonunion____missing_field_name_266 { unsigned int const i_nlink ; unsigned int __i_nlink ; }; union __anonunion____missing_field_name_267 { struct hlist_head i_dentry ; struct callback_head i_rcu ; }; struct file_lock_context; struct cdev; union __anonunion____missing_field_name_268 { struct pipe_inode_info *i_pipe ; struct block_device *i_bdev ; struct cdev *i_cdev ; char *i_link ; }; struct inode { umode_t i_mode ; unsigned short i_opflags ; kuid_t i_uid ; kgid_t i_gid ; unsigned int i_flags ; struct posix_acl *i_acl ; struct posix_acl *i_default_acl ; struct inode_operations const *i_op ; struct super_block *i_sb ; struct address_space *i_mapping ; void *i_security ; unsigned long i_ino ; union __anonunion____missing_field_name_266 __annonCompField82 ; dev_t i_rdev ; loff_t i_size ; struct timespec i_atime ; struct timespec i_mtime ; struct timespec i_ctime ; spinlock_t i_lock ; unsigned short i_bytes ; unsigned int i_blkbits ; blkcnt_t i_blocks ; unsigned long i_state ; struct mutex i_mutex ; unsigned long dirtied_when ; unsigned long dirtied_time_when ; struct hlist_node i_hash ; struct list_head i_wb_list ; struct bdi_writeback *i_wb ; int i_wb_frn_winner ; u16 i_wb_frn_avg_time ; u16 i_wb_frn_history ; struct list_head i_lru ; struct list_head i_sb_list ; union __anonunion____missing_field_name_267 __annonCompField83 ; u64 i_version ; atomic_t i_count ; atomic_t i_dio_count ; atomic_t i_writecount ; atomic_t i_readcount ; struct file_operations const *i_fop ; struct file_lock_context *i_flctx ; struct address_space i_data ; struct list_head i_devices ; union __anonunion____missing_field_name_268 __annonCompField84 ; __u32 i_generation ; __u32 i_fsnotify_mask ; struct hlist_head i_fsnotify_marks ; void *i_private ; }; struct fown_struct { rwlock_t lock ; struct pid *pid ; enum pid_type pid_type ; kuid_t uid ; kuid_t euid ; int signum ; }; struct file_ra_state { unsigned long start ; unsigned int size ; unsigned int async_size ; unsigned int ra_pages ; unsigned int mmap_miss ; loff_t prev_pos ; }; union __anonunion_f_u_269 { struct llist_node fu_llist ; struct callback_head fu_rcuhead ; }; struct file { union __anonunion_f_u_269 f_u ; struct path f_path ; struct inode *f_inode ; struct file_operations const *f_op ; spinlock_t f_lock ; atomic_long_t f_count ; unsigned int f_flags ; fmode_t f_mode ; struct mutex f_pos_lock ; loff_t f_pos ; struct fown_struct f_owner ; struct cred const *f_cred ; struct file_ra_state f_ra ; u64 f_version ; void *f_security ; void *private_data ; struct list_head f_ep_links ; struct list_head f_tfile_llink ; struct address_space *f_mapping ; }; typedef void *fl_owner_t; struct file_lock; struct file_lock_operations { void (*fl_copy_lock)(struct file_lock * , struct file_lock * ) ; void (*fl_release_private)(struct file_lock * ) ; }; struct lock_manager_operations { int (*lm_compare_owner)(struct file_lock * , struct file_lock * ) ; unsigned long (*lm_owner_key)(struct file_lock * ) ; fl_owner_t (*lm_get_owner)(fl_owner_t ) ; void (*lm_put_owner)(fl_owner_t ) ; void (*lm_notify)(struct file_lock * ) ; int (*lm_grant)(struct file_lock * , int ) ; bool (*lm_break)(struct file_lock * ) ; int (*lm_change)(struct file_lock * , int , struct list_head * ) ; void (*lm_setup)(struct file_lock * , void ** ) ; }; struct nlm_lockowner; struct nfs_lock_info { u32 state ; struct nlm_lockowner *owner ; struct list_head list ; }; struct nfs4_lock_state; struct nfs4_lock_info { struct nfs4_lock_state *owner ; }; struct __anonstruct_afs_271 { struct list_head link ; int state ; }; union __anonunion_fl_u_270 { struct nfs_lock_info nfs_fl ; struct nfs4_lock_info nfs4_fl ; struct __anonstruct_afs_271 afs ; }; struct file_lock { struct file_lock *fl_next ; struct list_head fl_list ; struct hlist_node fl_link ; struct list_head fl_block ; fl_owner_t fl_owner ; unsigned int fl_flags ; unsigned char fl_type ; unsigned int fl_pid ; int fl_link_cpu ; struct pid *fl_nspid ; wait_queue_head_t fl_wait ; struct file *fl_file ; loff_t fl_start ; loff_t fl_end ; struct fasync_struct *fl_fasync ; unsigned long fl_break_time ; unsigned long fl_downgrade_time ; struct file_lock_operations const *fl_ops ; struct lock_manager_operations const *fl_lmops ; union __anonunion_fl_u_270 fl_u ; }; struct file_lock_context { spinlock_t flc_lock ; struct list_head flc_flock ; struct list_head flc_posix ; struct list_head flc_lease ; }; struct fasync_struct { spinlock_t fa_lock ; int magic ; int fa_fd ; struct fasync_struct *fa_next ; struct file *fa_file ; struct callback_head fa_rcu ; }; struct sb_writers { struct percpu_counter counter[3U] ; wait_queue_head_t wait ; int frozen ; wait_queue_head_t wait_unfrozen ; struct lockdep_map lock_map[3U] ; }; struct super_operations; struct xattr_handler; struct mtd_info; struct super_block { struct list_head s_list ; dev_t s_dev ; unsigned char s_blocksize_bits ; unsigned long s_blocksize ; loff_t s_maxbytes ; struct file_system_type *s_type ; struct super_operations const *s_op ; struct dquot_operations const *dq_op ; struct quotactl_ops const *s_qcop ; struct export_operations const *s_export_op ; unsigned long s_flags ; unsigned long s_iflags ; unsigned long s_magic ; struct dentry *s_root ; struct rw_semaphore s_umount ; int s_count ; atomic_t s_active ; void *s_security ; struct xattr_handler const **s_xattr ; struct list_head s_inodes ; struct hlist_bl_head s_anon ; struct list_head s_mounts ; struct block_device *s_bdev ; struct backing_dev_info *s_bdi ; struct mtd_info *s_mtd ; struct hlist_node s_instances ; unsigned int s_quota_types ; struct quota_info s_dquot ; struct sb_writers s_writers ; char s_id[32U] ; u8 s_uuid[16U] ; void *s_fs_info ; unsigned int s_max_links ; fmode_t s_mode ; u32 s_time_gran ; struct mutex s_vfs_rename_mutex ; char *s_subtype ; char *s_options ; struct dentry_operations const *s_d_op ; int cleancache_poolid ; struct shrinker s_shrink ; atomic_long_t s_remove_count ; int s_readonly_remount ; struct workqueue_struct *s_dio_done_wq ; struct hlist_head s_pins ; struct list_lru s_dentry_lru ; struct list_lru s_inode_lru ; struct callback_head rcu ; int s_stack_depth ; }; struct fiemap_extent_info { unsigned int fi_flags ; unsigned int fi_extents_mapped ; unsigned int fi_extents_max ; struct fiemap_extent *fi_extents_start ; }; struct dir_context; struct dir_context { int (*actor)(struct dir_context * , char const * , int , loff_t , u64 , unsigned int ) ; loff_t pos ; }; struct file_operations { struct module *owner ; loff_t (*llseek)(struct file * , loff_t , int ) ; ssize_t (*read)(struct file * , char * , size_t , loff_t * ) ; ssize_t (*write)(struct file * , char const * , size_t , loff_t * ) ; ssize_t (*read_iter)(struct kiocb * , struct iov_iter * ) ; ssize_t (*write_iter)(struct kiocb * , struct iov_iter * ) ; int (*iterate)(struct file * , struct dir_context * ) ; unsigned int (*poll)(struct file * , struct poll_table_struct * ) ; long (*unlocked_ioctl)(struct file * , unsigned int , unsigned long ) ; long (*compat_ioctl)(struct file * , unsigned int , unsigned long ) ; int (*mmap)(struct file * , struct vm_area_struct * ) ; int (*mremap)(struct file * , struct vm_area_struct * ) ; int (*open)(struct inode * , struct file * ) ; int (*flush)(struct file * , fl_owner_t ) ; int (*release)(struct inode * , struct file * ) ; int (*fsync)(struct file * , loff_t , loff_t , int ) ; int (*aio_fsync)(struct kiocb * , int ) ; int (*fasync)(int , struct file * , int ) ; int (*lock)(struct file * , int , struct file_lock * ) ; ssize_t (*sendpage)(struct file * , struct page * , int , size_t , loff_t * , int ) ; unsigned long (*get_unmapped_area)(struct file * , unsigned long , unsigned long , unsigned long , unsigned long ) ; int (*check_flags)(int ) ; int (*flock)(struct file * , int , struct file_lock * ) ; ssize_t (*splice_write)(struct pipe_inode_info * , struct file * , loff_t * , size_t , unsigned int ) ; ssize_t (*splice_read)(struct file * , loff_t * , struct pipe_inode_info * , size_t , unsigned int ) ; int (*setlease)(struct file * , long , struct file_lock ** , void ** ) ; long (*fallocate)(struct file * , int , loff_t , loff_t ) ; void (*show_fdinfo)(struct seq_file * , struct file * ) ; }; struct inode_operations { struct dentry *(*lookup)(struct inode * , struct dentry * , unsigned int ) ; char const *(*follow_link)(struct dentry * , void ** ) ; int (*permission)(struct inode * , int ) ; struct posix_acl *(*get_acl)(struct inode * , int ) ; int (*readlink)(struct dentry * , char * , int ) ; void (*put_link)(struct inode * , void * ) ; int (*create)(struct inode * , struct dentry * , umode_t , bool ) ; int (*link)(struct dentry * , struct inode * , struct dentry * ) ; int (*unlink)(struct inode * , struct dentry * ) ; int (*symlink)(struct inode * , struct dentry * , char const * ) ; int (*mkdir)(struct inode * , struct dentry * , umode_t ) ; int (*rmdir)(struct inode * , struct dentry * ) ; int (*mknod)(struct inode * , struct dentry * , umode_t , dev_t ) ; int (*rename)(struct inode * , struct dentry * , struct inode * , struct dentry * ) ; int (*rename2)(struct inode * , struct dentry * , struct inode * , struct dentry * , unsigned int ) ; int (*setattr)(struct dentry * , struct iattr * ) ; int (*getattr)(struct vfsmount * , struct dentry * , struct kstat * ) ; int (*setxattr)(struct dentry * , char const * , void const * , size_t , int ) ; ssize_t (*getxattr)(struct dentry * , char const * , void * , size_t ) ; ssize_t (*listxattr)(struct dentry * , char * , size_t ) ; int (*removexattr)(struct dentry * , char const * ) ; int (*fiemap)(struct inode * , struct fiemap_extent_info * , u64 , u64 ) ; int (*update_time)(struct inode * , struct timespec * , int ) ; int (*atomic_open)(struct inode * , struct dentry * , struct file * , unsigned int , umode_t , int * ) ; int (*tmpfile)(struct inode * , struct dentry * , umode_t ) ; int (*set_acl)(struct inode * , struct posix_acl * , int ) ; }; struct super_operations { struct inode *(*alloc_inode)(struct super_block * ) ; void (*destroy_inode)(struct inode * ) ; void (*dirty_inode)(struct inode * , int ) ; int (*write_inode)(struct inode * , struct writeback_control * ) ; int (*drop_inode)(struct inode * ) ; void (*evict_inode)(struct inode * ) ; void (*put_super)(struct super_block * ) ; int (*sync_fs)(struct super_block * , int ) ; int (*freeze_super)(struct super_block * ) ; int (*freeze_fs)(struct super_block * ) ; int (*thaw_super)(struct super_block * ) ; int (*unfreeze_fs)(struct super_block * ) ; int (*statfs)(struct dentry * , struct kstatfs * ) ; int (*remount_fs)(struct super_block * , int * , char * ) ; void (*umount_begin)(struct super_block * ) ; int (*show_options)(struct seq_file * , struct dentry * ) ; int (*show_devname)(struct seq_file * , struct dentry * ) ; int (*show_path)(struct seq_file * , struct dentry * ) ; int (*show_stats)(struct seq_file * , struct dentry * ) ; ssize_t (*quota_read)(struct super_block * , int , char * , size_t , loff_t ) ; ssize_t (*quota_write)(struct super_block * , int , char const * , size_t , loff_t ) ; struct dquot **(*get_dquots)(struct inode * ) ; int (*bdev_try_to_free_page)(struct super_block * , struct page * , gfp_t ) ; long (*nr_cached_objects)(struct super_block * , struct shrink_control * ) ; long (*free_cached_objects)(struct super_block * , struct shrink_control * ) ; }; struct file_system_type { char const *name ; int fs_flags ; struct dentry *(*mount)(struct file_system_type * , int , char const * , void * ) ; void (*kill_sb)(struct super_block * ) ; struct module *owner ; struct file_system_type *next ; struct hlist_head fs_supers ; struct lock_class_key s_lock_key ; struct lock_class_key s_umount_key ; struct lock_class_key s_vfs_rename_key ; struct lock_class_key s_writers_key[3U] ; struct lock_class_key i_lock_key ; struct lock_class_key i_mutex_key ; struct lock_class_key i_mutex_dir_key ; }; typedef s32 compat_time_t; typedef s32 compat_long_t; typedef u32 compat_uptr_t; struct compat_timespec { compat_time_t tv_sec ; s32 tv_nsec ; }; struct compat_robust_list { compat_uptr_t next ; }; struct compat_robust_list_head { struct compat_robust_list list ; compat_long_t futex_offset ; compat_uptr_t list_op_pending ; }; struct ethtool_cmd { __u32 cmd ; __u32 supported ; __u32 advertising ; __u16 speed ; __u8 duplex ; __u8 port ; __u8 phy_address ; __u8 transceiver ; __u8 autoneg ; __u8 mdio_support ; __u32 maxtxpkt ; __u32 maxrxpkt ; __u16 speed_hi ; __u8 eth_tp_mdix ; __u8 eth_tp_mdix_ctrl ; __u32 lp_advertising ; __u32 reserved[2U] ; }; struct ethtool_drvinfo { __u32 cmd ; char driver[32U] ; char version[32U] ; char fw_version[32U] ; char bus_info[32U] ; char erom_version[32U] ; char reserved2[12U] ; __u32 n_priv_flags ; __u32 n_stats ; __u32 testinfo_len ; __u32 eedump_len ; __u32 regdump_len ; }; struct ethtool_wolinfo { __u32 cmd ; __u32 supported ; __u32 wolopts ; __u8 sopass[6U] ; }; struct ethtool_tunable { __u32 cmd ; __u32 id ; __u32 type_id ; __u32 len ; void *data[0U] ; }; struct ethtool_regs { __u32 cmd ; __u32 version ; __u32 len ; __u8 data[0U] ; }; struct ethtool_eeprom { __u32 cmd ; __u32 magic ; __u32 offset ; __u32 len ; __u8 data[0U] ; }; struct ethtool_eee { __u32 cmd ; __u32 supported ; __u32 advertised ; __u32 lp_advertised ; __u32 eee_active ; __u32 eee_enabled ; __u32 tx_lpi_enabled ; __u32 tx_lpi_timer ; __u32 reserved[2U] ; }; struct ethtool_modinfo { __u32 cmd ; __u32 type ; __u32 eeprom_len ; __u32 reserved[8U] ; }; struct ethtool_coalesce { __u32 cmd ; __u32 rx_coalesce_usecs ; __u32 rx_max_coalesced_frames ; __u32 rx_coalesce_usecs_irq ; __u32 rx_max_coalesced_frames_irq ; __u32 tx_coalesce_usecs ; __u32 tx_max_coalesced_frames ; __u32 tx_coalesce_usecs_irq ; __u32 tx_max_coalesced_frames_irq ; __u32 stats_block_coalesce_usecs ; __u32 use_adaptive_rx_coalesce ; __u32 use_adaptive_tx_coalesce ; __u32 pkt_rate_low ; __u32 rx_coalesce_usecs_low ; __u32 rx_max_coalesced_frames_low ; __u32 tx_coalesce_usecs_low ; __u32 tx_max_coalesced_frames_low ; __u32 pkt_rate_high ; __u32 rx_coalesce_usecs_high ; __u32 rx_max_coalesced_frames_high ; __u32 tx_coalesce_usecs_high ; __u32 tx_max_coalesced_frames_high ; __u32 rate_sample_interval ; }; struct ethtool_ringparam { __u32 cmd ; __u32 rx_max_pending ; __u32 rx_mini_max_pending ; __u32 rx_jumbo_max_pending ; __u32 tx_max_pending ; __u32 rx_pending ; __u32 rx_mini_pending ; __u32 rx_jumbo_pending ; __u32 tx_pending ; }; struct ethtool_channels { __u32 cmd ; __u32 max_rx ; __u32 max_tx ; __u32 max_other ; __u32 max_combined ; __u32 rx_count ; __u32 tx_count ; __u32 other_count ; __u32 combined_count ; }; struct ethtool_pauseparam { __u32 cmd ; __u32 autoneg ; __u32 rx_pause ; __u32 tx_pause ; }; struct ethtool_test { __u32 cmd ; __u32 flags ; __u32 reserved ; __u32 len ; __u64 data[0U] ; }; struct ethtool_stats { __u32 cmd ; __u32 n_stats ; __u64 data[0U] ; }; struct ethtool_tcpip4_spec { __be32 ip4src ; __be32 ip4dst ; __be16 psrc ; __be16 pdst ; __u8 tos ; }; struct ethtool_ah_espip4_spec { __be32 ip4src ; __be32 ip4dst ; __be32 spi ; __u8 tos ; }; struct ethtool_usrip4_spec { __be32 ip4src ; __be32 ip4dst ; __be32 l4_4_bytes ; __u8 tos ; __u8 ip_ver ; __u8 proto ; }; union ethtool_flow_union { struct ethtool_tcpip4_spec tcp_ip4_spec ; struct ethtool_tcpip4_spec udp_ip4_spec ; struct ethtool_tcpip4_spec sctp_ip4_spec ; struct ethtool_ah_espip4_spec ah_ip4_spec ; struct ethtool_ah_espip4_spec esp_ip4_spec ; struct ethtool_usrip4_spec usr_ip4_spec ; struct ethhdr ether_spec ; __u8 hdata[52U] ; }; struct ethtool_flow_ext { __u8 padding[2U] ; unsigned char h_dest[6U] ; __be16 vlan_etype ; __be16 vlan_tci ; __be32 data[2U] ; }; struct ethtool_rx_flow_spec { __u32 flow_type ; union ethtool_flow_union h_u ; struct ethtool_flow_ext h_ext ; union ethtool_flow_union m_u ; struct ethtool_flow_ext m_ext ; __u64 ring_cookie ; __u32 location ; }; struct ethtool_rxnfc { __u32 cmd ; __u32 flow_type ; __u64 data ; struct ethtool_rx_flow_spec fs ; __u32 rule_cnt ; __u32 rule_locs[0U] ; }; struct ethtool_flash { __u32 cmd ; __u32 region ; char data[128U] ; }; struct ethtool_dump { __u32 cmd ; __u32 version ; __u32 flag ; __u32 len ; __u8 data[0U] ; }; struct ethtool_ts_info { __u32 cmd ; __u32 so_timestamping ; __s32 phc_index ; __u32 tx_types ; __u32 tx_reserved[3U] ; __u32 rx_filters ; __u32 rx_reserved[3U] ; }; enum ethtool_phys_id_state { ETHTOOL_ID_INACTIVE = 0, ETHTOOL_ID_ACTIVE = 1, ETHTOOL_ID_ON = 2, ETHTOOL_ID_OFF = 3 } ; struct ethtool_ops { int (*get_settings)(struct net_device * , struct ethtool_cmd * ) ; int (*set_settings)(struct net_device * , struct ethtool_cmd * ) ; void (*get_drvinfo)(struct net_device * , struct ethtool_drvinfo * ) ; int (*get_regs_len)(struct net_device * ) ; void (*get_regs)(struct net_device * , struct ethtool_regs * , void * ) ; void (*get_wol)(struct net_device * , struct ethtool_wolinfo * ) ; int (*set_wol)(struct net_device * , struct ethtool_wolinfo * ) ; u32 (*get_msglevel)(struct net_device * ) ; void (*set_msglevel)(struct net_device * , u32 ) ; int (*nway_reset)(struct net_device * ) ; u32 (*get_link)(struct net_device * ) ; int (*get_eeprom_len)(struct net_device * ) ; int (*get_eeprom)(struct net_device * , struct ethtool_eeprom * , u8 * ) ; int (*set_eeprom)(struct net_device * , struct ethtool_eeprom * , u8 * ) ; int (*get_coalesce)(struct net_device * , struct ethtool_coalesce * ) ; int (*set_coalesce)(struct net_device * , struct ethtool_coalesce * ) ; void (*get_ringparam)(struct net_device * , struct ethtool_ringparam * ) ; int (*set_ringparam)(struct net_device * , struct ethtool_ringparam * ) ; void (*get_pauseparam)(struct net_device * , struct ethtool_pauseparam * ) ; int (*set_pauseparam)(struct net_device * , struct ethtool_pauseparam * ) ; void (*self_test)(struct net_device * , struct ethtool_test * , u64 * ) ; void (*get_strings)(struct net_device * , u32 , u8 * ) ; int (*set_phys_id)(struct net_device * , enum ethtool_phys_id_state ) ; void (*get_ethtool_stats)(struct net_device * , struct ethtool_stats * , u64 * ) ; int (*begin)(struct net_device * ) ; void (*complete)(struct net_device * ) ; u32 (*get_priv_flags)(struct net_device * ) ; int (*set_priv_flags)(struct net_device * , u32 ) ; int (*get_sset_count)(struct net_device * , int ) ; int (*get_rxnfc)(struct net_device * , struct ethtool_rxnfc * , u32 * ) ; int (*set_rxnfc)(struct net_device * , struct ethtool_rxnfc * ) ; int (*flash_device)(struct net_device * , struct ethtool_flash * ) ; int (*reset)(struct net_device * , u32 * ) ; u32 (*get_rxfh_key_size)(struct net_device * ) ; u32 (*get_rxfh_indir_size)(struct net_device * ) ; int (*get_rxfh)(struct net_device * , u32 * , u8 * , u8 * ) ; int (*set_rxfh)(struct net_device * , u32 const * , u8 const * , u8 const ) ; void (*get_channels)(struct net_device * , struct ethtool_channels * ) ; int (*set_channels)(struct net_device * , struct ethtool_channels * ) ; int (*get_dump_flag)(struct net_device * , struct ethtool_dump * ) ; int (*get_dump_data)(struct net_device * , struct ethtool_dump * , void * ) ; int (*set_dump)(struct net_device * , struct ethtool_dump * ) ; int (*get_ts_info)(struct net_device * , struct ethtool_ts_info * ) ; int (*get_module_info)(struct net_device * , struct ethtool_modinfo * ) ; int (*get_module_eeprom)(struct net_device * , struct ethtool_eeprom * , u8 * ) ; int (*get_eee)(struct net_device * , struct ethtool_eee * ) ; int (*set_eee)(struct net_device * , struct ethtool_eee * ) ; int (*get_tunable)(struct net_device * , struct ethtool_tunable const * , void * ) ; int (*set_tunable)(struct net_device * , struct ethtool_tunable const * , void const * ) ; }; struct prot_inuse; struct netns_core { struct ctl_table_header *sysctl_hdr ; int sysctl_somaxconn ; struct prot_inuse *inuse ; }; struct u64_stats_sync { }; struct ipstats_mib { u64 mibs[36U] ; struct u64_stats_sync syncp ; }; struct icmp_mib { unsigned long mibs[28U] ; }; struct icmpmsg_mib { atomic_long_t mibs[512U] ; }; struct icmpv6_mib { unsigned long mibs[6U] ; }; struct icmpv6msg_mib { atomic_long_t mibs[512U] ; }; struct tcp_mib { unsigned long mibs[16U] ; }; struct udp_mib { unsigned long mibs[9U] ; }; struct linux_mib { unsigned long mibs[115U] ; }; struct linux_xfrm_mib { unsigned long mibs[29U] ; }; struct proc_dir_entry; struct netns_mib { struct tcp_mib *tcp_statistics ; struct ipstats_mib *ip_statistics ; struct linux_mib *net_statistics ; struct udp_mib *udp_statistics ; struct udp_mib *udplite_statistics ; struct icmp_mib *icmp_statistics ; struct icmpmsg_mib *icmpmsg_statistics ; struct proc_dir_entry *proc_net_devsnmp6 ; struct udp_mib *udp_stats_in6 ; struct udp_mib *udplite_stats_in6 ; struct ipstats_mib *ipv6_statistics ; struct icmpv6_mib *icmpv6_statistics ; struct icmpv6msg_mib *icmpv6msg_statistics ; struct linux_xfrm_mib *xfrm_statistics ; }; struct netns_unix { int sysctl_max_dgram_qlen ; struct ctl_table_header *ctl ; }; struct netns_packet { struct mutex sklist_lock ; struct hlist_head sklist ; }; struct netns_frags { struct percpu_counter mem ; int timeout ; int high_thresh ; int low_thresh ; }; struct ipv4_devconf; struct fib_rules_ops; struct fib_table; struct local_ports { seqlock_t lock ; int range[2U] ; bool warned ; }; struct ping_group_range { seqlock_t lock ; kgid_t range[2U] ; }; struct inet_peer_base; struct xt_table; struct netns_ipv4 { struct ctl_table_header *forw_hdr ; struct ctl_table_header *frags_hdr ; struct ctl_table_header *ipv4_hdr ; struct ctl_table_header *route_hdr ; struct ctl_table_header *xfrm4_hdr ; struct ipv4_devconf *devconf_all ; struct ipv4_devconf *devconf_dflt ; struct fib_rules_ops *rules_ops ; bool fib_has_custom_rules ; struct fib_table *fib_local ; struct fib_table *fib_main ; struct fib_table *fib_default ; int fib_num_tclassid_users ; struct hlist_head *fib_table_hash ; bool fib_offload_disabled ; struct sock *fibnl ; struct sock **icmp_sk ; struct sock *mc_autojoin_sk ; struct inet_peer_base *peers ; struct sock **tcp_sk ; struct netns_frags frags ; struct xt_table *iptable_filter ; struct xt_table *iptable_mangle ; struct xt_table *iptable_raw ; struct xt_table *arptable_filter ; struct xt_table *iptable_security ; struct xt_table *nat_table ; int sysctl_icmp_echo_ignore_all ; int sysctl_icmp_echo_ignore_broadcasts ; int sysctl_icmp_ignore_bogus_error_responses ; int sysctl_icmp_ratelimit ; int sysctl_icmp_ratemask ; int sysctl_icmp_errors_use_inbound_ifaddr ; struct local_ports ip_local_ports ; int sysctl_tcp_ecn ; int sysctl_tcp_ecn_fallback ; int sysctl_ip_no_pmtu_disc ; int sysctl_ip_fwd_use_pmtu ; int sysctl_ip_nonlocal_bind ; int sysctl_fwmark_reflect ; int sysctl_tcp_fwmark_accept ; int sysctl_tcp_mtu_probing ; int sysctl_tcp_base_mss ; int sysctl_tcp_probe_threshold ; u32 sysctl_tcp_probe_interval ; struct ping_group_range ping_group_range ; atomic_t dev_addr_genid ; unsigned long *sysctl_local_reserved_ports ; struct list_head mr_tables ; struct fib_rules_ops *mr_rules_ops ; atomic_t rt_genid ; }; struct neighbour; struct dst_ops { unsigned short family ; unsigned int gc_thresh ; int (*gc)(struct dst_ops * ) ; struct dst_entry *(*check)(struct dst_entry * , __u32 ) ; unsigned int (*default_advmss)(struct dst_entry const * ) ; unsigned int (*mtu)(struct dst_entry const * ) ; u32 *(*cow_metrics)(struct dst_entry * , unsigned long ) ; void (*destroy)(struct dst_entry * ) ; void (*ifdown)(struct dst_entry * , struct net_device * , int ) ; struct dst_entry *(*negative_advice)(struct dst_entry * ) ; void (*link_failure)(struct sk_buff * ) ; void (*update_pmtu)(struct dst_entry * , struct sock * , struct sk_buff * , u32 ) ; void (*redirect)(struct dst_entry * , struct sock * , struct sk_buff * ) ; int (*local_out)(struct sk_buff * ) ; struct neighbour *(*neigh_lookup)(struct dst_entry const * , struct sk_buff * , void const * ) ; struct kmem_cache *kmem_cachep ; struct percpu_counter pcpuc_entries ; }; struct netns_sysctl_ipv6 { struct ctl_table_header *hdr ; struct ctl_table_header *route_hdr ; struct ctl_table_header *icmp_hdr ; struct ctl_table_header *frags_hdr ; struct ctl_table_header *xfrm6_hdr ; int bindv6only ; int flush_delay ; int ip6_rt_max_size ; int ip6_rt_gc_min_interval ; int ip6_rt_gc_timeout ; int ip6_rt_gc_interval ; int ip6_rt_gc_elasticity ; int ip6_rt_mtu_expires ; int ip6_rt_min_advmss ; int flowlabel_consistency ; int auto_flowlabels ; int icmpv6_time ; int anycast_src_echo_reply ; int fwmark_reflect ; int idgen_retries ; int idgen_delay ; int flowlabel_state_ranges ; }; struct ipv6_devconf; struct rt6_info; struct rt6_statistics; struct fib6_table; struct netns_ipv6 { struct netns_sysctl_ipv6 sysctl ; struct ipv6_devconf *devconf_all ; struct ipv6_devconf *devconf_dflt ; struct inet_peer_base *peers ; struct netns_frags frags ; struct xt_table *ip6table_filter ; struct xt_table *ip6table_mangle ; struct xt_table *ip6table_raw ; struct xt_table *ip6table_security ; struct xt_table *ip6table_nat ; struct rt6_info *ip6_null_entry ; struct rt6_statistics *rt6_stats ; struct timer_list ip6_fib_timer ; struct hlist_head *fib_table_hash ; struct fib6_table *fib6_main_tbl ; struct dst_ops ip6_dst_ops ; unsigned int ip6_rt_gc_expire ; unsigned long ip6_rt_last_gc ; struct rt6_info *ip6_prohibit_entry ; struct rt6_info *ip6_blk_hole_entry ; struct fib6_table *fib6_local_tbl ; struct fib_rules_ops *fib6_rules_ops ; struct sock **icmp_sk ; struct sock *ndisc_sk ; struct sock *tcp_sk ; struct sock *igmp_sk ; struct sock *mc_autojoin_sk ; struct list_head mr6_tables ; struct fib_rules_ops *mr6_rules_ops ; atomic_t dev_addr_genid ; atomic_t fib6_sernum ; }; struct netns_nf_frag { struct netns_sysctl_ipv6 sysctl ; struct netns_frags frags ; }; struct netns_sysctl_lowpan { struct ctl_table_header *frags_hdr ; }; struct netns_ieee802154_lowpan { struct netns_sysctl_lowpan sysctl ; struct netns_frags frags ; }; struct sctp_mib; struct netns_sctp { struct sctp_mib *sctp_statistics ; struct proc_dir_entry *proc_net_sctp ; struct ctl_table_header *sysctl_header ; struct sock *ctl_sock ; struct list_head local_addr_list ; struct list_head addr_waitq ; struct timer_list addr_wq_timer ; struct list_head auto_asconf_splist ; spinlock_t addr_wq_lock ; spinlock_t local_addr_lock ; unsigned int rto_initial ; unsigned int rto_min ; unsigned int rto_max ; int rto_alpha ; int rto_beta ; int max_burst ; int cookie_preserve_enable ; char *sctp_hmac_alg ; unsigned int valid_cookie_life ; unsigned int sack_timeout ; unsigned int hb_interval ; int max_retrans_association ; int max_retrans_path ; int max_retrans_init ; int pf_retrans ; int sndbuf_policy ; int rcvbuf_policy ; int default_auto_asconf ; int addip_enable ; int addip_noauth ; int prsctp_enable ; int auth_enable ; int scope_policy ; int rwnd_upd_shift ; unsigned long max_autoclose ; }; struct netns_dccp { struct sock *v4_ctl_sk ; struct sock *v6_ctl_sk ; }; struct nf_logger; struct netns_nf { struct proc_dir_entry *proc_netfilter ; struct nf_logger const *nf_loggers[13U] ; struct ctl_table_header *nf_log_dir_header ; }; struct ebt_table; struct netns_xt { struct list_head tables[13U] ; bool notrack_deprecated_warning ; bool clusterip_deprecated_warning ; struct ebt_table *broute_table ; struct ebt_table *frame_filter ; struct ebt_table *frame_nat ; }; struct hlist_nulls_node; struct hlist_nulls_head { struct hlist_nulls_node *first ; }; struct hlist_nulls_node { struct hlist_nulls_node *next ; struct hlist_nulls_node **pprev ; }; struct nf_proto_net { struct ctl_table_header *ctl_table_header ; struct ctl_table *ctl_table ; struct ctl_table_header *ctl_compat_header ; struct ctl_table *ctl_compat_table ; unsigned int users ; }; struct nf_generic_net { struct nf_proto_net pn ; unsigned int timeout ; }; struct nf_tcp_net { struct nf_proto_net pn ; unsigned int timeouts[14U] ; unsigned int tcp_loose ; unsigned int tcp_be_liberal ; unsigned int tcp_max_retrans ; }; struct nf_udp_net { struct nf_proto_net pn ; unsigned int timeouts[2U] ; }; struct nf_icmp_net { struct nf_proto_net pn ; unsigned int timeout ; }; struct nf_ip_net { struct nf_generic_net generic ; struct nf_tcp_net tcp ; struct nf_udp_net udp ; struct nf_icmp_net icmp ; struct nf_icmp_net icmpv6 ; struct ctl_table_header *ctl_table_header ; struct ctl_table *ctl_table ; }; struct ct_pcpu { spinlock_t lock ; struct hlist_nulls_head unconfirmed ; struct hlist_nulls_head dying ; struct hlist_nulls_head tmpl ; }; struct ip_conntrack_stat; struct nf_ct_event_notifier; struct nf_exp_event_notifier; struct netns_ct { atomic_t count ; unsigned int expect_count ; struct delayed_work ecache_dwork ; bool ecache_dwork_pending ; struct ctl_table_header *sysctl_header ; struct ctl_table_header *acct_sysctl_header ; struct ctl_table_header *tstamp_sysctl_header ; struct ctl_table_header *event_sysctl_header ; struct ctl_table_header *helper_sysctl_header ; char *slabname ; unsigned int sysctl_log_invalid ; int sysctl_events ; int sysctl_acct ; int sysctl_auto_assign_helper ; bool auto_assign_helper_warned ; int sysctl_tstamp ; int sysctl_checksum ; unsigned int htable_size ; seqcount_t generation ; struct kmem_cache *nf_conntrack_cachep ; struct hlist_nulls_head *hash ; struct hlist_head *expect_hash ; struct ct_pcpu *pcpu_lists ; struct ip_conntrack_stat *stat ; struct nf_ct_event_notifier *nf_conntrack_event_cb ; struct nf_exp_event_notifier *nf_expect_event_cb ; struct nf_ip_net nf_ct_proto ; unsigned int labels_used ; u8 label_words ; struct hlist_head *nat_bysource ; unsigned int nat_htable_size ; }; struct nft_af_info; struct netns_nftables { struct list_head af_info ; struct list_head commit_list ; struct nft_af_info *ipv4 ; struct nft_af_info *ipv6 ; struct nft_af_info *inet ; struct nft_af_info *arp ; struct nft_af_info *bridge ; struct nft_af_info *netdev ; unsigned int base_seq ; u8 gencursor ; }; struct irq_data; struct msi_msg; enum irqchip_irq_state; enum irqchip_irq_state; struct msi_desc; struct irq_domain; struct irq_common_data { unsigned int state_use_accessors ; }; struct irq_chip; struct irq_data { u32 mask ; unsigned int irq ; unsigned long hwirq ; unsigned int node ; struct irq_common_data *common ; struct irq_chip *chip ; struct irq_domain *domain ; struct irq_data *parent_data ; void *handler_data ; void *chip_data ; struct msi_desc *msi_desc ; cpumask_var_t affinity ; }; struct irq_chip { char const *name ; unsigned int (*irq_startup)(struct irq_data * ) ; void (*irq_shutdown)(struct irq_data * ) ; void (*irq_enable)(struct irq_data * ) ; void (*irq_disable)(struct irq_data * ) ; void (*irq_ack)(struct irq_data * ) ; void (*irq_mask)(struct irq_data * ) ; void (*irq_mask_ack)(struct irq_data * ) ; void (*irq_unmask)(struct irq_data * ) ; void (*irq_eoi)(struct irq_data * ) ; int (*irq_set_affinity)(struct irq_data * , struct cpumask const * , bool ) ; int (*irq_retrigger)(struct irq_data * ) ; int (*irq_set_type)(struct irq_data * , unsigned int ) ; int (*irq_set_wake)(struct irq_data * , unsigned int ) ; void (*irq_bus_lock)(struct irq_data * ) ; void (*irq_bus_sync_unlock)(struct irq_data * ) ; void (*irq_cpu_online)(struct irq_data * ) ; void (*irq_cpu_offline)(struct irq_data * ) ; void (*irq_suspend)(struct irq_data * ) ; void (*irq_resume)(struct irq_data * ) ; void (*irq_pm_shutdown)(struct irq_data * ) ; void (*irq_calc_mask)(struct irq_data * ) ; void (*irq_print_chip)(struct irq_data * , struct seq_file * ) ; int (*irq_request_resources)(struct irq_data * ) ; void (*irq_release_resources)(struct irq_data * ) ; void (*irq_compose_msi_msg)(struct irq_data * , struct msi_msg * ) ; void (*irq_write_msi_msg)(struct irq_data * , struct msi_msg * ) ; int (*irq_get_irqchip_state)(struct irq_data * , enum irqchip_irq_state , bool * ) ; int (*irq_set_irqchip_state)(struct irq_data * , enum irqchip_irq_state , bool ) ; int (*irq_set_vcpu_affinity)(struct irq_data * , void * ) ; unsigned long flags ; }; struct irq_affinity_notify; struct irqaction; struct irq_desc { struct irq_common_data irq_common_data ; struct irq_data irq_data ; unsigned int *kstat_irqs ; void (*handle_irq)(unsigned int , struct irq_desc * ) ; struct irqaction *action ; unsigned int status_use_accessors ; unsigned int core_internal_state__do_not_mess_with_it ; unsigned int depth ; unsigned int wake_depth ; unsigned int irq_count ; unsigned long last_unhandled ; unsigned int irqs_unhandled ; atomic_t threads_handled ; int threads_handled_last ; raw_spinlock_t lock ; struct cpumask *percpu_enabled ; struct cpumask const *affinity_hint ; struct irq_affinity_notify *affinity_notify ; cpumask_var_t pending_mask ; unsigned long threads_oneshot ; atomic_t threads_active ; wait_queue_head_t wait_for_threads ; unsigned int nr_actions ; unsigned int no_suspend_depth ; unsigned int cond_suspend_depth ; unsigned int force_resume_depth ; struct proc_dir_entry *dir ; int parent_irq ; struct module *owner ; char const *name ; }; struct irq_chip_regs { unsigned long enable ; unsigned long disable ; unsigned long mask ; unsigned long ack ; unsigned long eoi ; unsigned long type ; unsigned long polarity ; }; struct irq_chip_type { struct irq_chip chip ; struct irq_chip_regs regs ; void (*handler)(unsigned int , struct irq_desc * ) ; u32 type ; u32 mask_cache_priv ; u32 *mask_cache ; }; struct irq_chip_generic { raw_spinlock_t lock ; void *reg_base ; u32 (*reg_readl)(void * ) ; void (*reg_writel)(u32 , void * ) ; unsigned int irq_base ; unsigned int irq_cnt ; u32 mask_cache ; u32 type_cache ; u32 polarity_cache ; u32 wake_enabled ; u32 wake_active ; unsigned int num_ct ; void *private ; unsigned long installed ; unsigned long unused ; struct irq_domain *domain ; struct list_head list ; struct irq_chip_type chip_types[0U] ; }; enum irq_gc_flags { IRQ_GC_INIT_MASK_CACHE = 1, IRQ_GC_INIT_NESTED_LOCK = 2, IRQ_GC_MASK_CACHE_PER_TYPE = 4, IRQ_GC_NO_MASK = 8, IRQ_GC_BE_IO = 16 } ; struct irq_domain_chip_generic { unsigned int irqs_per_chip ; unsigned int num_chips ; unsigned int irq_flags_to_clear ; unsigned int irq_flags_to_set ; enum irq_gc_flags gc_flags ; struct irq_chip_generic *gc[0U] ; }; struct irqaction { irqreturn_t (*handler)(int , void * ) ; void *dev_id ; void *percpu_dev_id ; struct irqaction *next ; irqreturn_t (*thread_fn)(int , void * ) ; struct task_struct *thread ; unsigned int irq ; unsigned int flags ; unsigned long thread_flags ; unsigned long thread_mask ; char const *name ; struct proc_dir_entry *dir ; }; struct irq_affinity_notify { unsigned int irq ; struct kref kref ; struct work_struct work ; void (*notify)(struct irq_affinity_notify * , cpumask_t const * ) ; void (*release)(struct kref * ) ; }; enum irqchip_irq_state { IRQCHIP_STATE_PENDING = 0, IRQCHIP_STATE_ACTIVE = 1, IRQCHIP_STATE_MASKED = 2, IRQCHIP_STATE_LINE_LEVEL = 3 } ; struct tasklet_struct { struct tasklet_struct *next ; unsigned long state ; atomic_t count ; void (*func)(unsigned long ) ; unsigned long data ; }; struct flow_cache_percpu { struct hlist_head *hash_table ; int hash_count ; u32 hash_rnd ; int hash_rnd_recalc ; struct tasklet_struct flush_tasklet ; }; struct flow_cache { u32 hash_shift ; struct flow_cache_percpu *percpu ; struct notifier_block hotcpu_notifier ; int low_watermark ; int high_watermark ; struct timer_list rnd_timer ; }; struct xfrm_policy_hash { struct hlist_head *table ; unsigned int hmask ; u8 dbits4 ; u8 sbits4 ; u8 dbits6 ; u8 sbits6 ; }; struct xfrm_policy_hthresh { struct work_struct work ; seqlock_t lock ; u8 lbits4 ; u8 rbits4 ; u8 lbits6 ; u8 rbits6 ; }; struct netns_xfrm { struct list_head state_all ; struct hlist_head *state_bydst ; struct hlist_head *state_bysrc ; struct hlist_head *state_byspi ; unsigned int state_hmask ; unsigned int state_num ; struct work_struct state_hash_work ; struct hlist_head state_gc_list ; struct work_struct state_gc_work ; struct list_head policy_all ; struct hlist_head *policy_byidx ; unsigned int policy_idx_hmask ; struct hlist_head policy_inexact[3U] ; struct xfrm_policy_hash policy_bydst[3U] ; unsigned int policy_count[6U] ; struct work_struct policy_hash_work ; struct xfrm_policy_hthresh policy_hthresh ; struct sock *nlsk ; struct sock *nlsk_stash ; u32 sysctl_aevent_etime ; u32 sysctl_aevent_rseqth ; int sysctl_larval_drop ; u32 sysctl_acq_expires ; struct ctl_table_header *sysctl_hdr ; struct dst_ops xfrm4_dst_ops ; struct dst_ops xfrm6_dst_ops ; spinlock_t xfrm_state_lock ; rwlock_t xfrm_policy_lock ; struct mutex xfrm_cfg_mutex ; struct flow_cache flow_cache_global ; atomic_t flow_cache_genid ; struct list_head flow_cache_gc_list ; spinlock_t flow_cache_gc_lock ; struct work_struct flow_cache_gc_work ; struct work_struct flow_cache_flush_work ; struct mutex flow_flush_sem ; }; struct mpls_route; struct netns_mpls { size_t platform_labels ; struct mpls_route **platform_label ; struct ctl_table_header *ctl ; }; struct proc_ns_operations; struct ns_common { atomic_long_t stashed ; struct proc_ns_operations const *ops ; unsigned int inum ; }; struct net_generic; struct netns_ipvs; struct net { atomic_t passive ; atomic_t count ; spinlock_t rules_mod_lock ; atomic64_t cookie_gen ; struct list_head list ; struct list_head cleanup_list ; struct list_head exit_list ; struct user_namespace *user_ns ; spinlock_t nsid_lock ; struct idr netns_ids ; struct ns_common ns ; struct proc_dir_entry *proc_net ; struct proc_dir_entry *proc_net_stat ; struct ctl_table_set sysctls ; struct sock *rtnl ; struct sock *genl_sock ; struct list_head dev_base_head ; struct hlist_head *dev_name_head ; struct hlist_head *dev_index_head ; unsigned int dev_base_seq ; int ifindex ; unsigned int dev_unreg_count ; struct list_head rules_ops ; struct net_device *loopback_dev ; struct netns_core core ; struct netns_mib mib ; struct netns_packet packet ; struct netns_unix unx ; struct netns_ipv4 ipv4 ; struct netns_ipv6 ipv6 ; struct netns_ieee802154_lowpan ieee802154_lowpan ; struct netns_sctp sctp ; struct netns_dccp dccp ; struct netns_nf nf ; struct netns_xt xt ; struct netns_ct ct ; struct netns_nftables nft ; struct netns_nf_frag nf_frag ; struct sock *nfnl ; struct sock *nfnl_stash ; struct sk_buff_head wext_nlevents ; struct net_generic *gen ; struct netns_xfrm xfrm ; struct netns_ipvs *ipvs ; struct netns_mpls mpls ; struct sock *diag_nlsk ; atomic_t fnhe_genid ; }; struct __anonstruct_possible_net_t_302 { struct net *net ; }; typedef struct __anonstruct_possible_net_t_302 possible_net_t; typedef unsigned long kernel_ulong_t; struct pci_device_id { __u32 vendor ; __u32 device ; __u32 subvendor ; __u32 subdevice ; __u32 class ; __u32 class_mask ; kernel_ulong_t driver_data ; }; struct acpi_device_id { __u8 id[9U] ; kernel_ulong_t driver_data ; }; struct of_device_id { char name[32U] ; char type[32U] ; char compatible[128U] ; void const *data ; }; struct ssb_device_id { __u16 vendor ; __u16 coreid ; __u8 revision ; __u8 __pad ; }; struct bcma_device_id { __u16 manuf ; __u16 id ; __u8 rev ; __u8 class ; }; struct platform_device_id { char name[20U] ; kernel_ulong_t driver_data ; }; enum fwnode_type { FWNODE_INVALID = 0, FWNODE_OF = 1, FWNODE_ACPI = 2, FWNODE_PDATA = 3 } ; struct fwnode_handle { enum fwnode_type type ; struct fwnode_handle *secondary ; }; typedef u32 phandle; struct property { char *name ; int length ; void *value ; struct property *next ; unsigned long _flags ; unsigned int unique_id ; struct bin_attribute attr ; }; struct device_node { char const *name ; char const *type ; phandle phandle ; char const *full_name ; struct fwnode_handle fwnode ; struct property *properties ; struct property *deadprops ; struct device_node *parent ; struct device_node *child ; struct device_node *sibling ; struct kobject kobj ; unsigned long _flags ; void *data ; }; struct of_phandle_args { struct device_node *np ; int args_count ; uint32_t args[16U] ; }; enum ldv_27882 { PHY_INTERFACE_MODE_NA = 0, PHY_INTERFACE_MODE_MII = 1, PHY_INTERFACE_MODE_GMII = 2, PHY_INTERFACE_MODE_SGMII = 3, PHY_INTERFACE_MODE_TBI = 4, PHY_INTERFACE_MODE_REVMII = 5, PHY_INTERFACE_MODE_RMII = 6, PHY_INTERFACE_MODE_RGMII = 7, PHY_INTERFACE_MODE_RGMII_ID = 8, PHY_INTERFACE_MODE_RGMII_RXID = 9, PHY_INTERFACE_MODE_RGMII_TXID = 10, PHY_INTERFACE_MODE_RTBI = 11, PHY_INTERFACE_MODE_SMII = 12, PHY_INTERFACE_MODE_XGMII = 13, PHY_INTERFACE_MODE_MOCA = 14, PHY_INTERFACE_MODE_QSGMII = 15, PHY_INTERFACE_MODE_MAX = 16 } ; typedef enum ldv_27882 phy_interface_t; enum ldv_27936 { MDIOBUS_ALLOCATED = 1, MDIOBUS_REGISTERED = 2, MDIOBUS_UNREGISTERED = 3, MDIOBUS_RELEASED = 4 } ; struct phy_device; struct mii_bus { char const *name ; char id[17U] ; void *priv ; int (*read)(struct mii_bus * , int , int ) ; int (*write)(struct mii_bus * , int , int , u16 ) ; int (*reset)(struct mii_bus * ) ; struct mutex mdio_lock ; struct device *parent ; enum ldv_27936 state ; struct device dev ; struct phy_device *phy_map[32U] ; u32 phy_mask ; u32 phy_ignore_ta_mask ; int *irq ; }; enum phy_state { PHY_DOWN = 0, PHY_STARTING = 1, PHY_READY = 2, PHY_PENDING = 3, PHY_UP = 4, PHY_AN = 5, PHY_RUNNING = 6, PHY_NOLINK = 7, PHY_FORCING = 8, PHY_CHANGELINK = 9, PHY_HALTED = 10, PHY_RESUMING = 11 } ; struct phy_c45_device_ids { u32 devices_in_package ; u32 device_ids[8U] ; }; struct phy_driver; struct phy_device { struct phy_driver *drv ; struct mii_bus *bus ; struct device dev ; u32 phy_id ; struct phy_c45_device_ids c45_ids ; bool is_c45 ; bool is_internal ; bool has_fixups ; bool suspended ; enum phy_state state ; u32 dev_flags ; phy_interface_t interface ; int addr ; int speed ; int duplex ; int pause ; int asym_pause ; int link ; u32 interrupts ; u32 supported ; u32 advertising ; u32 lp_advertising ; int autoneg ; int link_timeout ; int irq ; void *priv ; struct work_struct phy_queue ; struct delayed_work state_queue ; atomic_t irq_disable ; struct mutex lock ; struct net_device *attached_dev ; void (*adjust_link)(struct net_device * ) ; }; struct phy_driver { u32 phy_id ; char *name ; unsigned int phy_id_mask ; u32 features ; u32 flags ; void const *driver_data ; int (*soft_reset)(struct phy_device * ) ; int (*config_init)(struct phy_device * ) ; int (*probe)(struct phy_device * ) ; int (*suspend)(struct phy_device * ) ; int (*resume)(struct phy_device * ) ; int (*config_aneg)(struct phy_device * ) ; int (*aneg_done)(struct phy_device * ) ; int (*read_status)(struct phy_device * ) ; int (*ack_interrupt)(struct phy_device * ) ; int (*config_intr)(struct phy_device * ) ; int (*did_interrupt)(struct phy_device * ) ; void (*remove)(struct phy_device * ) ; int (*match_phy_device)(struct phy_device * ) ; int (*ts_info)(struct phy_device * , struct ethtool_ts_info * ) ; int (*hwtstamp)(struct phy_device * , struct ifreq * ) ; bool (*rxtstamp)(struct phy_device * , struct sk_buff * , int ) ; void (*txtstamp)(struct phy_device * , struct sk_buff * , int ) ; int (*set_wol)(struct phy_device * , struct ethtool_wolinfo * ) ; void (*get_wol)(struct phy_device * , struct ethtool_wolinfo * ) ; void (*link_change_notify)(struct phy_device * ) ; int (*read_mmd_indirect)(struct phy_device * , int , int , int ) ; void (*write_mmd_indirect)(struct phy_device * , int , int , int , u32 ) ; int (*module_info)(struct phy_device * , struct ethtool_modinfo * ) ; int (*module_eeprom)(struct phy_device * , struct ethtool_eeprom * , u8 * ) ; struct device_driver driver ; }; struct fixed_phy_status { int link ; int speed ; int duplex ; int pause ; int asym_pause ; }; enum dsa_tag_protocol { DSA_TAG_PROTO_NONE = 0, DSA_TAG_PROTO_DSA = 1, DSA_TAG_PROTO_TRAILER = 2, DSA_TAG_PROTO_EDSA = 3, DSA_TAG_PROTO_BRCM = 4 } ; struct dsa_chip_data { struct device *host_dev ; int sw_addr ; int eeprom_len ; struct device_node *of_node ; char *port_names[12U] ; struct device_node *port_dn[12U] ; s8 *rtable ; }; struct dsa_platform_data { struct device *netdev ; struct net_device *of_netdev ; int nr_chips ; struct dsa_chip_data *chip ; }; struct packet_type; struct dsa_switch; struct dsa_switch_tree { struct dsa_platform_data *pd ; struct net_device *master_netdev ; int (*rcv)(struct sk_buff * , struct net_device * , struct packet_type * , struct net_device * ) ; enum dsa_tag_protocol tag_protocol ; s8 cpu_switch ; s8 cpu_port ; int link_poll_needed ; struct work_struct link_poll_work ; struct timer_list link_poll_timer ; struct dsa_switch *ds[4U] ; }; struct dsa_switch_driver; struct dsa_switch { struct dsa_switch_tree *dst ; int index ; enum dsa_tag_protocol tag_protocol ; struct dsa_chip_data *pd ; struct dsa_switch_driver *drv ; struct device *master_dev ; char hwmon_name[24U] ; struct device *hwmon_dev ; u32 dsa_port_mask ; u32 phys_port_mask ; u32 phys_mii_mask ; struct mii_bus *slave_mii_bus ; struct net_device *ports[12U] ; }; struct dsa_switch_driver { struct list_head list ; enum dsa_tag_protocol tag_protocol ; int priv_size ; char *(*probe)(struct device * , int ) ; int (*setup)(struct dsa_switch * ) ; int (*set_addr)(struct dsa_switch * , u8 * ) ; u32 (*get_phy_flags)(struct dsa_switch * , int ) ; int (*phy_read)(struct dsa_switch * , int , int ) ; int (*phy_write)(struct dsa_switch * , int , int , u16 ) ; void (*poll_link)(struct dsa_switch * ) ; void (*adjust_link)(struct dsa_switch * , int , struct phy_device * ) ; void (*fixed_link_update)(struct dsa_switch * , int , struct fixed_phy_status * ) ; void (*get_strings)(struct dsa_switch * , int , uint8_t * ) ; void (*get_ethtool_stats)(struct dsa_switch * , int , uint64_t * ) ; int (*get_sset_count)(struct dsa_switch * ) ; void (*get_wol)(struct dsa_switch * , int , struct ethtool_wolinfo * ) ; int (*set_wol)(struct dsa_switch * , int , struct ethtool_wolinfo * ) ; int (*suspend)(struct dsa_switch * ) ; int (*resume)(struct dsa_switch * ) ; int (*port_enable)(struct dsa_switch * , int , struct phy_device * ) ; void (*port_disable)(struct dsa_switch * , int , struct phy_device * ) ; int (*set_eee)(struct dsa_switch * , int , struct phy_device * , struct ethtool_eee * ) ; int (*get_eee)(struct dsa_switch * , int , struct ethtool_eee * ) ; int (*get_temp)(struct dsa_switch * , int * ) ; int (*get_temp_limit)(struct dsa_switch * , int * ) ; int (*set_temp_limit)(struct dsa_switch * , int ) ; int (*get_temp_alarm)(struct dsa_switch * , bool * ) ; int (*get_eeprom_len)(struct dsa_switch * ) ; int (*get_eeprom)(struct dsa_switch * , struct ethtool_eeprom * , u8 * ) ; int (*set_eeprom)(struct dsa_switch * , struct ethtool_eeprom * , u8 * ) ; int (*get_regs_len)(struct dsa_switch * , int ) ; void (*get_regs)(struct dsa_switch * , int , struct ethtool_regs * , void * ) ; int (*port_join_bridge)(struct dsa_switch * , int , u32 ) ; int (*port_leave_bridge)(struct dsa_switch * , int , u32 ) ; int (*port_stp_update)(struct dsa_switch * , int , u8 ) ; int (*fdb_add)(struct dsa_switch * , int , unsigned char const * , u16 ) ; int (*fdb_del)(struct dsa_switch * , int , unsigned char const * , u16 ) ; int (*fdb_getnext)(struct dsa_switch * , int , unsigned char * , bool * ) ; }; struct ieee_ets { __u8 willing ; __u8 ets_cap ; __u8 cbs ; __u8 tc_tx_bw[8U] ; __u8 tc_rx_bw[8U] ; __u8 tc_tsa[8U] ; __u8 prio_tc[8U] ; __u8 tc_reco_bw[8U] ; __u8 tc_reco_tsa[8U] ; __u8 reco_prio_tc[8U] ; }; struct ieee_maxrate { __u64 tc_maxrate[8U] ; }; struct ieee_qcn { __u8 rpg_enable[8U] ; __u32 rppp_max_rps[8U] ; __u32 rpg_time_reset[8U] ; __u32 rpg_byte_reset[8U] ; __u32 rpg_threshold[8U] ; __u32 rpg_max_rate[8U] ; __u32 rpg_ai_rate[8U] ; __u32 rpg_hai_rate[8U] ; __u32 rpg_gd[8U] ; __u32 rpg_min_dec_fac[8U] ; __u32 rpg_min_rate[8U] ; __u32 cndd_state_machine[8U] ; }; struct ieee_qcn_stats { __u64 rppp_rp_centiseconds[8U] ; __u32 rppp_created_rps[8U] ; }; struct ieee_pfc { __u8 pfc_cap ; __u8 pfc_en ; __u8 mbc ; __u16 delay ; __u64 requests[8U] ; __u64 indications[8U] ; }; struct cee_pg { __u8 willing ; __u8 error ; __u8 pg_en ; __u8 tcs_supported ; __u8 pg_bw[8U] ; __u8 prio_pg[8U] ; }; struct cee_pfc { __u8 willing ; __u8 error ; __u8 pfc_en ; __u8 tcs_supported ; }; struct dcb_app { __u8 selector ; __u8 priority ; __u16 protocol ; }; struct dcb_peer_app_info { __u8 willing ; __u8 error ; }; struct dcbnl_rtnl_ops { int (*ieee_getets)(struct net_device * , struct ieee_ets * ) ; int (*ieee_setets)(struct net_device * , struct ieee_ets * ) ; int (*ieee_getmaxrate)(struct net_device * , struct ieee_maxrate * ) ; int (*ieee_setmaxrate)(struct net_device * , struct ieee_maxrate * ) ; int (*ieee_getqcn)(struct net_device * , struct ieee_qcn * ) ; int (*ieee_setqcn)(struct net_device * , struct ieee_qcn * ) ; int (*ieee_getqcnstats)(struct net_device * , struct ieee_qcn_stats * ) ; int (*ieee_getpfc)(struct net_device * , struct ieee_pfc * ) ; int (*ieee_setpfc)(struct net_device * , struct ieee_pfc * ) ; int (*ieee_getapp)(struct net_device * , struct dcb_app * ) ; int (*ieee_setapp)(struct net_device * , struct dcb_app * ) ; int (*ieee_delapp)(struct net_device * , struct dcb_app * ) ; int (*ieee_peer_getets)(struct net_device * , struct ieee_ets * ) ; int (*ieee_peer_getpfc)(struct net_device * , struct ieee_pfc * ) ; u8 (*getstate)(struct net_device * ) ; u8 (*setstate)(struct net_device * , u8 ) ; void (*getpermhwaddr)(struct net_device * , u8 * ) ; void (*setpgtccfgtx)(struct net_device * , int , u8 , u8 , u8 , u8 ) ; void (*setpgbwgcfgtx)(struct net_device * , int , u8 ) ; void (*setpgtccfgrx)(struct net_device * , int , u8 , u8 , u8 , u8 ) ; void (*setpgbwgcfgrx)(struct net_device * , int , u8 ) ; void (*getpgtccfgtx)(struct net_device * , int , u8 * , u8 * , u8 * , u8 * ) ; void (*getpgbwgcfgtx)(struct net_device * , int , u8 * ) ; void (*getpgtccfgrx)(struct net_device * , int , u8 * , u8 * , u8 * , u8 * ) ; void (*getpgbwgcfgrx)(struct net_device * , int , u8 * ) ; void (*setpfccfg)(struct net_device * , int , u8 ) ; void (*getpfccfg)(struct net_device * , int , u8 * ) ; u8 (*setall)(struct net_device * ) ; u8 (*getcap)(struct net_device * , int , u8 * ) ; int (*getnumtcs)(struct net_device * , int , u8 * ) ; int (*setnumtcs)(struct net_device * , int , u8 ) ; u8 (*getpfcstate)(struct net_device * ) ; void (*setpfcstate)(struct net_device * , u8 ) ; void (*getbcncfg)(struct net_device * , int , u32 * ) ; void (*setbcncfg)(struct net_device * , int , u32 ) ; void (*getbcnrp)(struct net_device * , int , u8 * ) ; void (*setbcnrp)(struct net_device * , int , u8 ) ; int (*setapp)(struct net_device * , u8 , u16 , u8 ) ; int (*getapp)(struct net_device * , u8 , u16 ) ; u8 (*getfeatcfg)(struct net_device * , int , u8 * ) ; u8 (*setfeatcfg)(struct net_device * , int , u8 ) ; u8 (*getdcbx)(struct net_device * ) ; u8 (*setdcbx)(struct net_device * , u8 ) ; int (*peer_getappinfo)(struct net_device * , struct dcb_peer_app_info * , u16 * ) ; int (*peer_getapptable)(struct net_device * , struct dcb_app * ) ; int (*cee_peer_getpg)(struct net_device * , struct cee_pg * ) ; int (*cee_peer_getpfc)(struct net_device * , struct cee_pfc * ) ; }; struct taskstats { __u16 version ; __u32 ac_exitcode ; __u8 ac_flag ; __u8 ac_nice ; __u64 cpu_count ; __u64 cpu_delay_total ; __u64 blkio_count ; __u64 blkio_delay_total ; __u64 swapin_count ; __u64 swapin_delay_total ; __u64 cpu_run_real_total ; __u64 cpu_run_virtual_total ; char ac_comm[32U] ; __u8 ac_sched ; __u8 ac_pad[3U] ; __u32 ac_uid ; __u32 ac_gid ; __u32 ac_pid ; __u32 ac_ppid ; __u32 ac_btime ; __u64 ac_etime ; __u64 ac_utime ; __u64 ac_stime ; __u64 ac_minflt ; __u64 ac_majflt ; __u64 coremem ; __u64 virtmem ; __u64 hiwater_rss ; __u64 hiwater_vm ; __u64 read_char ; __u64 write_char ; __u64 read_syscalls ; __u64 write_syscalls ; __u64 read_bytes ; __u64 write_bytes ; __u64 cancelled_write_bytes ; __u64 nvcsw ; __u64 nivcsw ; __u64 ac_utimescaled ; __u64 ac_stimescaled ; __u64 cpu_scaled_run_real_total ; __u64 freepages_count ; __u64 freepages_delay_total ; }; struct netprio_map { struct callback_head rcu ; u32 priomap_len ; u32 priomap[] ; }; struct mnt_namespace; struct ipc_namespace; struct nsproxy { atomic_t count ; struct uts_namespace *uts_ns ; struct ipc_namespace *ipc_ns ; struct mnt_namespace *mnt_ns ; struct pid_namespace *pid_ns_for_children ; struct net *net_ns ; }; struct nlmsghdr { __u32 nlmsg_len ; __u16 nlmsg_type ; __u16 nlmsg_flags ; __u32 nlmsg_seq ; __u32 nlmsg_pid ; }; struct nlattr { __u16 nla_len ; __u16 nla_type ; }; struct netlink_callback { struct sk_buff *skb ; struct nlmsghdr const *nlh ; int (*dump)(struct sk_buff * , struct netlink_callback * ) ; int (*done)(struct netlink_callback * ) ; void *data ; struct module *module ; u16 family ; u16 min_dump_alloc ; unsigned int prev_seq ; unsigned int seq ; long args[6U] ; }; struct ndmsg { __u8 ndm_family ; __u8 ndm_pad1 ; __u16 ndm_pad2 ; __s32 ndm_ifindex ; __u16 ndm_state ; __u8 ndm_flags ; __u8 ndm_type ; }; struct rtnl_link_stats64 { __u64 rx_packets ; __u64 tx_packets ; __u64 rx_bytes ; __u64 tx_bytes ; __u64 rx_errors ; __u64 tx_errors ; __u64 rx_dropped ; __u64 tx_dropped ; __u64 multicast ; __u64 collisions ; __u64 rx_length_errors ; __u64 rx_over_errors ; __u64 rx_crc_errors ; __u64 rx_frame_errors ; __u64 rx_fifo_errors ; __u64 rx_missed_errors ; __u64 tx_aborted_errors ; __u64 tx_carrier_errors ; __u64 tx_fifo_errors ; __u64 tx_heartbeat_errors ; __u64 tx_window_errors ; __u64 rx_compressed ; __u64 tx_compressed ; }; struct ifla_vf_stats { __u64 rx_packets ; __u64 tx_packets ; __u64 rx_bytes ; __u64 tx_bytes ; __u64 broadcast ; __u64 multicast ; }; struct ifla_vf_info { __u32 vf ; __u8 mac[32U] ; __u32 vlan ; __u32 qos ; __u32 spoofchk ; __u32 linkstate ; __u32 min_tx_rate ; __u32 max_tx_rate ; __u32 rss_query_en ; }; struct netpoll_info; struct wireless_dev; struct wpan_dev; struct mpls_dev; enum netdev_tx { __NETDEV_TX_MIN = (-0x7FFFFFFF-1), NETDEV_TX_OK = 0, NETDEV_TX_BUSY = 16, NETDEV_TX_LOCKED = 32 } ; typedef enum netdev_tx netdev_tx_t; struct net_device_stats { unsigned long rx_packets ; unsigned long tx_packets ; unsigned long rx_bytes ; unsigned long tx_bytes ; unsigned long rx_errors ; unsigned long tx_errors ; unsigned long rx_dropped ; unsigned long tx_dropped ; unsigned long multicast ; unsigned long collisions ; unsigned long rx_length_errors ; unsigned long rx_over_errors ; unsigned long rx_crc_errors ; unsigned long rx_frame_errors ; unsigned long rx_fifo_errors ; unsigned long rx_missed_errors ; unsigned long tx_aborted_errors ; unsigned long tx_carrier_errors ; unsigned long tx_fifo_errors ; unsigned long tx_heartbeat_errors ; unsigned long tx_window_errors ; unsigned long rx_compressed ; unsigned long tx_compressed ; }; struct neigh_parms; struct netdev_hw_addr_list { struct list_head list ; int count ; }; struct hh_cache { u16 hh_len ; u16 __pad ; seqlock_t hh_lock ; unsigned long hh_data[16U] ; }; struct header_ops { int (*create)(struct sk_buff * , struct net_device * , unsigned short , void const * , void const * , unsigned int ) ; int (*parse)(struct sk_buff const * , unsigned char * ) ; int (*cache)(struct neighbour const * , struct hh_cache * , __be16 ) ; void (*cache_update)(struct hh_cache * , struct net_device const * , unsigned char const * ) ; }; struct napi_struct { struct list_head poll_list ; unsigned long state ; int weight ; unsigned int gro_count ; int (*poll)(struct napi_struct * , int ) ; spinlock_t poll_lock ; int poll_owner ; struct net_device *dev ; struct sk_buff *gro_list ; struct sk_buff *skb ; struct hrtimer timer ; struct list_head dev_list ; struct hlist_node napi_hash_node ; unsigned int napi_id ; }; enum rx_handler_result { RX_HANDLER_CONSUMED = 0, RX_HANDLER_ANOTHER = 1, RX_HANDLER_EXACT = 2, RX_HANDLER_PASS = 3 } ; typedef enum rx_handler_result rx_handler_result_t; typedef rx_handler_result_t rx_handler_func_t(struct sk_buff ** ); struct Qdisc; struct netdev_queue { struct net_device *dev ; struct Qdisc *qdisc ; struct Qdisc *qdisc_sleeping ; struct kobject kobj ; int numa_node ; spinlock_t _xmit_lock ; int xmit_lock_owner ; unsigned long trans_start ; unsigned long trans_timeout ; unsigned long state ; struct dql dql ; unsigned long tx_maxrate ; }; struct rps_map { unsigned int len ; struct callback_head rcu ; u16 cpus[0U] ; }; struct rps_dev_flow { u16 cpu ; u16 filter ; unsigned int last_qtail ; }; struct rps_dev_flow_table { unsigned int mask ; struct callback_head rcu ; struct rps_dev_flow flows[0U] ; }; struct netdev_rx_queue { struct rps_map *rps_map ; struct rps_dev_flow_table *rps_flow_table ; struct kobject kobj ; struct net_device *dev ; }; struct xps_map { unsigned int len ; unsigned int alloc_len ; struct callback_head rcu ; u16 queues[0U] ; }; struct xps_dev_maps { struct callback_head rcu ; struct xps_map *cpu_map[0U] ; }; struct netdev_tc_txq { u16 count ; u16 offset ; }; struct netdev_fcoe_hbainfo { char manufacturer[64U] ; char serial_number[64U] ; char hardware_version[64U] ; char driver_version[64U] ; char optionrom_version[64U] ; char firmware_version[64U] ; char model[256U] ; char model_description[256U] ; }; struct netdev_phys_item_id { unsigned char id[32U] ; unsigned char id_len ; }; struct net_device_ops { int (*ndo_init)(struct net_device * ) ; void (*ndo_uninit)(struct net_device * ) ; int (*ndo_open)(struct net_device * ) ; int (*ndo_stop)(struct net_device * ) ; netdev_tx_t (*ndo_start_xmit)(struct sk_buff * , struct net_device * ) ; u16 (*ndo_select_queue)(struct net_device * , struct sk_buff * , void * , u16 (*)(struct net_device * , struct sk_buff * ) ) ; void (*ndo_change_rx_flags)(struct net_device * , int ) ; void (*ndo_set_rx_mode)(struct net_device * ) ; int (*ndo_set_mac_address)(struct net_device * , void * ) ; int (*ndo_validate_addr)(struct net_device * ) ; int (*ndo_do_ioctl)(struct net_device * , struct ifreq * , int ) ; int (*ndo_set_config)(struct net_device * , struct ifmap * ) ; int (*ndo_change_mtu)(struct net_device * , int ) ; int (*ndo_neigh_setup)(struct net_device * , struct neigh_parms * ) ; void (*ndo_tx_timeout)(struct net_device * ) ; struct rtnl_link_stats64 *(*ndo_get_stats64)(struct net_device * , struct rtnl_link_stats64 * ) ; struct net_device_stats *(*ndo_get_stats)(struct net_device * ) ; int (*ndo_vlan_rx_add_vid)(struct net_device * , __be16 , u16 ) ; int (*ndo_vlan_rx_kill_vid)(struct net_device * , __be16 , u16 ) ; void (*ndo_poll_controller)(struct net_device * ) ; int (*ndo_netpoll_setup)(struct net_device * , struct netpoll_info * ) ; void (*ndo_netpoll_cleanup)(struct net_device * ) ; int (*ndo_busy_poll)(struct napi_struct * ) ; int (*ndo_set_vf_mac)(struct net_device * , int , u8 * ) ; int (*ndo_set_vf_vlan)(struct net_device * , int , u16 , u8 ) ; int (*ndo_set_vf_rate)(struct net_device * , int , int , int ) ; int (*ndo_set_vf_spoofchk)(struct net_device * , int , bool ) ; int (*ndo_get_vf_config)(struct net_device * , int , struct ifla_vf_info * ) ; int (*ndo_set_vf_link_state)(struct net_device * , int , int ) ; int (*ndo_get_vf_stats)(struct net_device * , int , struct ifla_vf_stats * ) ; int (*ndo_set_vf_port)(struct net_device * , int , struct nlattr ** ) ; int (*ndo_get_vf_port)(struct net_device * , int , struct sk_buff * ) ; int (*ndo_set_vf_rss_query_en)(struct net_device * , int , bool ) ; int (*ndo_setup_tc)(struct net_device * , u8 ) ; int (*ndo_fcoe_enable)(struct net_device * ) ; int (*ndo_fcoe_disable)(struct net_device * ) ; int (*ndo_fcoe_ddp_setup)(struct net_device * , u16 , struct scatterlist * , unsigned int ) ; int (*ndo_fcoe_ddp_done)(struct net_device * , u16 ) ; int (*ndo_fcoe_ddp_target)(struct net_device * , u16 , struct scatterlist * , unsigned int ) ; int (*ndo_fcoe_get_hbainfo)(struct net_device * , struct netdev_fcoe_hbainfo * ) ; int (*ndo_fcoe_get_wwn)(struct net_device * , u64 * , int ) ; int (*ndo_rx_flow_steer)(struct net_device * , struct sk_buff const * , u16 , u32 ) ; int (*ndo_add_slave)(struct net_device * , struct net_device * ) ; int (*ndo_del_slave)(struct net_device * , struct net_device * ) ; netdev_features_t (*ndo_fix_features)(struct net_device * , netdev_features_t ) ; int (*ndo_set_features)(struct net_device * , netdev_features_t ) ; int (*ndo_neigh_construct)(struct neighbour * ) ; void (*ndo_neigh_destroy)(struct neighbour * ) ; int (*ndo_fdb_add)(struct ndmsg * , struct nlattr ** , struct net_device * , unsigned char const * , u16 , u16 ) ; int (*ndo_fdb_del)(struct ndmsg * , struct nlattr ** , struct net_device * , unsigned char const * , u16 ) ; int (*ndo_fdb_dump)(struct sk_buff * , struct netlink_callback * , struct net_device * , struct net_device * , int ) ; int (*ndo_bridge_setlink)(struct net_device * , struct nlmsghdr * , u16 ) ; int (*ndo_bridge_getlink)(struct sk_buff * , u32 , u32 , struct net_device * , u32 , int ) ; int (*ndo_bridge_dellink)(struct net_device * , struct nlmsghdr * , u16 ) ; int (*ndo_change_carrier)(struct net_device * , bool ) ; int (*ndo_get_phys_port_id)(struct net_device * , struct netdev_phys_item_id * ) ; int (*ndo_get_phys_port_name)(struct net_device * , char * , size_t ) ; void (*ndo_add_vxlan_port)(struct net_device * , sa_family_t , __be16 ) ; void (*ndo_del_vxlan_port)(struct net_device * , sa_family_t , __be16 ) ; void *(*ndo_dfwd_add_station)(struct net_device * , struct net_device * ) ; void (*ndo_dfwd_del_station)(struct net_device * , void * ) ; netdev_tx_t (*ndo_dfwd_start_xmit)(struct sk_buff * , struct net_device * , void * ) ; int (*ndo_get_lock_subclass)(struct net_device * ) ; netdev_features_t (*ndo_features_check)(struct sk_buff * , struct net_device * , netdev_features_t ) ; int (*ndo_set_tx_maxrate)(struct net_device * , int , u32 ) ; int (*ndo_get_iflink)(struct net_device const * ) ; }; struct __anonstruct_adj_list_315 { struct list_head upper ; struct list_head lower ; }; struct __anonstruct_all_adj_list_316 { struct list_head upper ; struct list_head lower ; }; struct iw_handler_def; struct iw_public_data; struct switchdev_ops; struct vlan_info; struct tipc_bearer; struct in_device; struct dn_dev; struct inet6_dev; struct tcf_proto; struct cpu_rmap; struct pcpu_lstats; struct pcpu_sw_netstats; struct pcpu_dstats; struct pcpu_vstats; union __anonunion____missing_field_name_317 { void *ml_priv ; struct pcpu_lstats *lstats ; struct pcpu_sw_netstats *tstats ; struct pcpu_dstats *dstats ; struct pcpu_vstats *vstats ; }; struct garp_port; struct mrp_port; struct rtnl_link_ops; struct net_device { char name[16U] ; struct hlist_node name_hlist ; char *ifalias ; unsigned long mem_end ; unsigned long mem_start ; unsigned long base_addr ; int irq ; atomic_t carrier_changes ; unsigned long state ; struct list_head dev_list ; struct list_head napi_list ; struct list_head unreg_list ; struct list_head close_list ; struct list_head ptype_all ; struct list_head ptype_specific ; struct __anonstruct_adj_list_315 adj_list ; struct __anonstruct_all_adj_list_316 all_adj_list ; netdev_features_t features ; netdev_features_t hw_features ; netdev_features_t wanted_features ; netdev_features_t vlan_features ; netdev_features_t hw_enc_features ; netdev_features_t mpls_features ; int ifindex ; int group ; struct net_device_stats stats ; atomic_long_t rx_dropped ; atomic_long_t tx_dropped ; struct iw_handler_def const *wireless_handlers ; struct iw_public_data *wireless_data ; struct net_device_ops const *netdev_ops ; struct ethtool_ops const *ethtool_ops ; struct switchdev_ops const *switchdev_ops ; struct header_ops const *header_ops ; unsigned int flags ; unsigned int priv_flags ; unsigned short gflags ; unsigned short padded ; unsigned char operstate ; unsigned char link_mode ; unsigned char if_port ; unsigned char dma ; unsigned int mtu ; unsigned short type ; unsigned short hard_header_len ; unsigned short needed_headroom ; unsigned short needed_tailroom ; unsigned char perm_addr[32U] ; unsigned char addr_assign_type ; unsigned char addr_len ; unsigned short neigh_priv_len ; unsigned short dev_id ; unsigned short dev_port ; spinlock_t addr_list_lock ; unsigned char name_assign_type ; bool uc_promisc ; struct netdev_hw_addr_list uc ; struct netdev_hw_addr_list mc ; struct netdev_hw_addr_list dev_addrs ; struct kset *queues_kset ; unsigned int promiscuity ; unsigned int allmulti ; struct vlan_info *vlan_info ; struct dsa_switch_tree *dsa_ptr ; struct tipc_bearer *tipc_ptr ; void *atalk_ptr ; struct in_device *ip_ptr ; struct dn_dev *dn_ptr ; struct inet6_dev *ip6_ptr ; void *ax25_ptr ; struct wireless_dev *ieee80211_ptr ; struct wpan_dev *ieee802154_ptr ; struct mpls_dev *mpls_ptr ; unsigned long last_rx ; unsigned char *dev_addr ; struct netdev_rx_queue *_rx ; unsigned int num_rx_queues ; unsigned int real_num_rx_queues ; unsigned long gro_flush_timeout ; rx_handler_func_t *rx_handler ; void *rx_handler_data ; struct tcf_proto *ingress_cl_list ; struct netdev_queue *ingress_queue ; struct list_head nf_hooks_ingress ; unsigned char broadcast[32U] ; struct cpu_rmap *rx_cpu_rmap ; struct hlist_node index_hlist ; struct netdev_queue *_tx ; unsigned int num_tx_queues ; unsigned int real_num_tx_queues ; struct Qdisc *qdisc ; unsigned long tx_queue_len ; spinlock_t tx_global_lock ; int watchdog_timeo ; struct xps_dev_maps *xps_maps ; unsigned long trans_start ; struct timer_list watchdog_timer ; int *pcpu_refcnt ; struct list_head todo_list ; struct list_head link_watch_list ; unsigned char reg_state ; bool dismantle ; unsigned short rtnl_link_state ; void (*destructor)(struct net_device * ) ; struct netpoll_info *npinfo ; possible_net_t nd_net ; union __anonunion____missing_field_name_317 __annonCompField94 ; struct garp_port *garp_port ; struct mrp_port *mrp_port ; struct device dev ; struct attribute_group const *sysfs_groups[4U] ; struct attribute_group const *sysfs_rx_queue_group ; struct rtnl_link_ops const *rtnl_link_ops ; unsigned int gso_max_size ; u16 gso_max_segs ; u16 gso_min_segs ; struct dcbnl_rtnl_ops const *dcbnl_ops ; u8 num_tc ; struct netdev_tc_txq tc_to_txq[16U] ; u8 prio_tc_map[16U] ; unsigned int fcoe_ddp_xid ; struct netprio_map *priomap ; struct phy_device *phydev ; struct lock_class_key *qdisc_tx_busylock ; }; struct packet_type { __be16 type ; struct net_device *dev ; int (*func)(struct sk_buff * , struct net_device * , struct packet_type * , struct net_device * ) ; bool (*id_match)(struct packet_type * , struct sock * ) ; void *af_packet_priv ; struct list_head list ; }; struct pcpu_sw_netstats { u64 rx_packets ; u64 rx_bytes ; u64 tx_packets ; u64 tx_bytes ; struct u64_stats_sync syncp ; }; enum skb_free_reason { SKB_REASON_CONSUMED = 0, SKB_REASON_DROPPED = 1 } ; struct firmware { size_t size ; u8 const *data ; struct page **pages ; void *priv ; }; struct hwrng { char const *name ; int (*init)(struct hwrng * ) ; void (*cleanup)(struct hwrng * ) ; int (*data_present)(struct hwrng * , int ) ; int (*data_read)(struct hwrng * , u32 * ) ; int (*read)(struct hwrng * , void * , size_t , bool ) ; unsigned long priv ; unsigned short quality ; struct list_head list ; struct kref ref ; struct completion cleanup_done ; }; struct hotplug_slot; struct pci_slot { struct pci_bus *bus ; struct list_head list ; struct hotplug_slot *hotplug ; unsigned char number ; struct kobject kobj ; }; typedef int pci_power_t; typedef unsigned int pci_channel_state_t; enum pci_channel_state { pci_channel_io_normal = 1, pci_channel_io_frozen = 2, pci_channel_io_perm_failure = 3 } ; typedef unsigned short pci_dev_flags_t; typedef unsigned short pci_bus_flags_t; struct pcie_link_state; struct pci_vpd; struct pci_sriov; struct pci_ats; struct pci_driver; union __anonunion____missing_field_name_326 { struct pci_sriov *sriov ; struct pci_dev *physfn ; }; struct pci_dev { struct list_head bus_list ; struct pci_bus *bus ; struct pci_bus *subordinate ; void *sysdata ; struct proc_dir_entry *procent ; struct pci_slot *slot ; unsigned int devfn ; unsigned short vendor ; unsigned short device ; unsigned short subsystem_vendor ; unsigned short subsystem_device ; unsigned int class ; u8 revision ; u8 hdr_type ; u8 pcie_cap ; u8 msi_cap ; u8 msix_cap ; unsigned char pcie_mpss : 3 ; u8 rom_base_reg ; u8 pin ; u16 pcie_flags_reg ; u8 dma_alias_devfn ; struct pci_driver *driver ; u64 dma_mask ; struct device_dma_parameters dma_parms ; pci_power_t current_state ; u8 pm_cap ; unsigned char pme_support : 5 ; unsigned char pme_interrupt : 1 ; unsigned char pme_poll : 1 ; unsigned char d1_support : 1 ; unsigned char d2_support : 1 ; unsigned char no_d1d2 : 1 ; unsigned char no_d3cold : 1 ; unsigned char d3cold_allowed : 1 ; unsigned char mmio_always_on : 1 ; unsigned char wakeup_prepared : 1 ; unsigned char runtime_d3cold : 1 ; unsigned char ignore_hotplug : 1 ; unsigned int d3_delay ; unsigned int d3cold_delay ; struct pcie_link_state *link_state ; pci_channel_state_t error_state ; struct device dev ; int cfg_size ; unsigned int irq ; struct resource resource[17U] ; bool match_driver ; unsigned char transparent : 1 ; unsigned char multifunction : 1 ; unsigned char is_added : 1 ; unsigned char is_busmaster : 1 ; unsigned char no_msi : 1 ; unsigned char no_64bit_msi : 1 ; unsigned char block_cfg_access : 1 ; unsigned char broken_parity_status : 1 ; unsigned char irq_reroute_variant : 2 ; unsigned char msi_enabled : 1 ; unsigned char msix_enabled : 1 ; unsigned char ari_enabled : 1 ; unsigned char is_managed : 1 ; unsigned char needs_freset : 1 ; unsigned char state_saved : 1 ; unsigned char is_physfn : 1 ; unsigned char is_virtfn : 1 ; unsigned char reset_fn : 1 ; unsigned char is_hotplug_bridge : 1 ; unsigned char __aer_firmware_first_valid : 1 ; unsigned char __aer_firmware_first : 1 ; unsigned char broken_intx_masking : 1 ; unsigned char io_window_1k : 1 ; unsigned char irq_managed : 1 ; unsigned char has_secondary_link : 1 ; pci_dev_flags_t dev_flags ; atomic_t enable_cnt ; u32 saved_config_space[16U] ; struct hlist_head saved_cap_space ; struct bin_attribute *rom_attr ; int rom_attr_enabled ; struct bin_attribute *res_attr[17U] ; struct bin_attribute *res_attr_wc[17U] ; struct list_head msi_list ; struct attribute_group const **msi_irq_groups ; struct pci_vpd *vpd ; union __anonunion____missing_field_name_326 __annonCompField95 ; struct pci_ats *ats ; phys_addr_t rom ; size_t romlen ; char *driver_override ; }; struct pci_ops; struct msi_controller; struct pci_bus { struct list_head node ; struct pci_bus *parent ; struct list_head children ; struct list_head devices ; struct pci_dev *self ; struct list_head slots ; struct resource *resource[4U] ; struct list_head resources ; struct resource busn_res ; struct pci_ops *ops ; struct msi_controller *msi ; void *sysdata ; struct proc_dir_entry *procdir ; unsigned char number ; unsigned char primary ; unsigned char max_bus_speed ; unsigned char cur_bus_speed ; char name[48U] ; unsigned short bridge_ctl ; pci_bus_flags_t bus_flags ; struct device *bridge ; struct device dev ; struct bin_attribute *legacy_io ; struct bin_attribute *legacy_mem ; unsigned char is_added : 1 ; }; struct pci_ops { void *(*map_bus)(struct pci_bus * , unsigned int , int ) ; int (*read)(struct pci_bus * , unsigned int , int , int , u32 * ) ; int (*write)(struct pci_bus * , unsigned int , int , int , u32 ) ; }; struct pci_dynids { spinlock_t lock ; struct list_head list ; }; typedef unsigned int pci_ers_result_t; struct pci_error_handlers { pci_ers_result_t (*error_detected)(struct pci_dev * , enum pci_channel_state ) ; pci_ers_result_t (*mmio_enabled)(struct pci_dev * ) ; pci_ers_result_t (*link_reset)(struct pci_dev * ) ; pci_ers_result_t (*slot_reset)(struct pci_dev * ) ; void (*reset_notify)(struct pci_dev * , bool ) ; void (*resume)(struct pci_dev * ) ; }; struct pci_driver { struct list_head node ; char const *name ; struct pci_device_id const *id_table ; int (*probe)(struct pci_dev * , struct pci_device_id const * ) ; void (*remove)(struct pci_dev * ) ; int (*suspend)(struct pci_dev * , pm_message_t ) ; int (*suspend_late)(struct pci_dev * , pm_message_t ) ; int (*resume_early)(struct pci_dev * ) ; int (*resume)(struct pci_dev * ) ; void (*shutdown)(struct pci_dev * ) ; int (*sriov_configure)(struct pci_dev * , int ) ; struct pci_error_handlers const *err_handler ; struct device_driver driver ; struct pci_dynids dynids ; }; struct mfd_cell; struct platform_device { char const *name ; int id ; bool id_auto ; struct device dev ; u32 num_resources ; struct resource *resource ; struct platform_device_id const *id_entry ; char *driver_override ; struct mfd_cell *mfd_cell ; struct pdev_archdata archdata ; }; struct irq_domain_ops { int (*match)(struct irq_domain * , struct device_node * ) ; int (*map)(struct irq_domain * , unsigned int , irq_hw_number_t ) ; void (*unmap)(struct irq_domain * , unsigned int ) ; int (*xlate)(struct irq_domain * , struct device_node * , u32 const * , unsigned int , unsigned long * , unsigned int * ) ; int (*alloc)(struct irq_domain * , unsigned int , unsigned int , void * ) ; void (*free)(struct irq_domain * , unsigned int , unsigned int ) ; void (*activate)(struct irq_domain * , struct irq_data * ) ; void (*deactivate)(struct irq_domain * , struct irq_data * ) ; }; struct irq_domain { struct list_head link ; char const *name ; struct irq_domain_ops const *ops ; void *host_data ; unsigned int flags ; struct device_node *of_node ; struct irq_domain_chip_generic *gc ; struct irq_domain *parent ; irq_hw_number_t hwirq_max ; unsigned int revmap_direct_max_irq ; unsigned int revmap_size ; struct radix_tree_root revmap_tree ; unsigned int linear_revmap[] ; }; struct gpio_chip; struct gpio_desc; struct gpio_chip { char const *label ; struct device *dev ; struct device *cdev ; struct module *owner ; struct list_head list ; int (*request)(struct gpio_chip * , unsigned int ) ; void (*free)(struct gpio_chip * , unsigned int ) ; int (*get_direction)(struct gpio_chip * , unsigned int ) ; int (*direction_input)(struct gpio_chip * , unsigned int ) ; int (*direction_output)(struct gpio_chip * , unsigned int , int ) ; int (*get)(struct gpio_chip * , unsigned int ) ; void (*set)(struct gpio_chip * , unsigned int , int ) ; void (*set_multiple)(struct gpio_chip * , unsigned long * , unsigned long * ) ; int (*set_debounce)(struct gpio_chip * , unsigned int , unsigned int ) ; int (*to_irq)(struct gpio_chip * , unsigned int ) ; void (*dbg_show)(struct seq_file * , struct gpio_chip * ) ; int base ; u16 ngpio ; struct gpio_desc *desc ; char const * const *names ; bool can_sleep ; bool irq_not_threaded ; struct irq_chip *irqchip ; struct irq_domain *irqdomain ; unsigned int irq_base ; void (*irq_handler)(unsigned int , struct irq_desc * ) ; unsigned int irq_default_type ; int irq_parent ; struct device_node *of_node ; int of_gpio_n_cells ; int (*of_xlate)(struct gpio_chip * , struct of_phandle_args const * , u32 * ) ; struct list_head pin_ranges ; }; struct bcma_chipcommon_pmu { u8 rev ; u32 crystalfreq ; }; struct bcma_drv_cc { struct bcma_device *core ; u32 status ; u32 capabilities ; u32 capabilities_ext ; unsigned char setup_done : 1 ; unsigned char early_setup_done : 1 ; u16 fast_pwrup_delay ; struct bcma_chipcommon_pmu pmu ; u32 ticks_per_ms ; struct platform_device *watchdog ; spinlock_t gpio_lock ; struct gpio_chip gpio ; struct irq_domain *irq_domain ; }; struct bcma_drv_cc_b { struct bcma_device *core ; unsigned char setup_done : 1 ; void *mii ; }; struct bcma_drv_pci; struct bcma_bus; struct bcma_drv_pci { struct bcma_device *core ; unsigned char early_setup_done : 1 ; unsigned char setup_done : 1 ; unsigned char hostmode : 1 ; }; struct bcma_drv_pcie2 { struct bcma_device *core ; u16 reqsize ; }; struct bcma_drv_mips { struct bcma_device *core ; unsigned char setup_done : 1 ; unsigned char early_setup_done : 1 ; }; struct bcma_drv_gmac_cmn { struct bcma_device *core ; struct mutex phy_mutex ; }; struct ssb_bus; struct ssb_driver; struct ssb_sprom_core_pwr_info { u8 itssi_2g ; u8 itssi_5g ; u8 maxpwr_2g ; u8 maxpwr_5gl ; u8 maxpwr_5g ; u8 maxpwr_5gh ; u16 pa_2g[4U] ; u16 pa_5gl[4U] ; u16 pa_5g[4U] ; u16 pa_5gh[4U] ; }; struct __anonstruct_antenna_gain_327 { s8 a0 ; s8 a1 ; s8 a2 ; s8 a3 ; }; struct __anonstruct_ghz2_329 { u8 tssipos ; u8 extpa_gain ; u8 pdet_range ; u8 tr_iso ; u8 antswlut ; }; struct __anonstruct_ghz5_330 { u8 tssipos ; u8 extpa_gain ; u8 pdet_range ; u8 tr_iso ; u8 antswlut ; }; struct __anonstruct_fem_328 { struct __anonstruct_ghz2_329 ghz2 ; struct __anonstruct_ghz5_330 ghz5 ; }; struct ssb_sprom { u8 revision ; u8 il0mac[6U] ; u8 et0mac[6U] ; u8 et1mac[6U] ; u8 et2mac[6U] ; u8 et0phyaddr ; u8 et1phyaddr ; u8 et2phyaddr ; u8 et0mdcport ; u8 et1mdcport ; u8 et2mdcport ; u16 dev_id ; u16 board_rev ; u16 board_num ; u16 board_type ; u8 country_code ; char alpha2[2U] ; u8 leddc_on_time ; u8 leddc_off_time ; u8 ant_available_a ; u8 ant_available_bg ; u16 pa0b0 ; u16 pa0b1 ; u16 pa0b2 ; u16 pa1b0 ; u16 pa1b1 ; u16 pa1b2 ; u16 pa1lob0 ; u16 pa1lob1 ; u16 pa1lob2 ; u16 pa1hib0 ; u16 pa1hib1 ; u16 pa1hib2 ; u8 gpio0 ; u8 gpio1 ; u8 gpio2 ; u8 gpio3 ; u8 maxpwr_bg ; u8 maxpwr_al ; u8 maxpwr_a ; u8 maxpwr_ah ; u8 itssi_a ; u8 itssi_bg ; u8 tri2g ; u8 tri5gl ; u8 tri5g ; u8 tri5gh ; u8 txpid2g[4U] ; u8 txpid5gl[4U] ; u8 txpid5g[4U] ; u8 txpid5gh[4U] ; s8 rxpo2g ; s8 rxpo5g ; u8 rssisav2g ; u8 rssismc2g ; u8 rssismf2g ; u8 bxa2g ; u8 rssisav5g ; u8 rssismc5g ; u8 rssismf5g ; u8 bxa5g ; u16 cck2gpo ; u32 ofdm2gpo ; u32 ofdm5glpo ; u32 ofdm5gpo ; u32 ofdm5ghpo ; u32 boardflags ; u32 boardflags2 ; u32 boardflags3 ; u16 boardflags_lo ; u16 boardflags_hi ; u16 boardflags2_lo ; u16 boardflags2_hi ; struct ssb_sprom_core_pwr_info core_pwr_info[4U] ; struct __anonstruct_antenna_gain_327 antenna_gain ; struct __anonstruct_fem_328 fem ; u16 mcs2gpo[8U] ; u16 mcs5gpo[8U] ; u16 mcs5glpo[8U] ; u16 mcs5ghpo[8U] ; u8 opo ; u8 rxgainerr2ga[3U] ; u8 rxgainerr5gla[3U] ; u8 rxgainerr5gma[3U] ; u8 rxgainerr5gha[3U] ; u8 rxgainerr5gua[3U] ; u8 noiselvl2ga[3U] ; u8 noiselvl5gla[3U] ; u8 noiselvl5gma[3U] ; u8 noiselvl5gha[3U] ; u8 noiselvl5gua[3U] ; u8 regrev ; u8 txchain ; u8 rxchain ; u8 antswitch ; u16 cddpo ; u16 stbcpo ; u16 bw40po ; u16 bwduppo ; u8 tempthresh ; u8 tempoffset ; u16 rawtempsense ; u8 measpower ; u8 tempsense_slope ; u8 tempcorrx ; u8 tempsense_option ; u8 freqoffset_corr ; u8 iqcal_swp_dis ; u8 hw_iqcal_en ; u8 elna2g ; u8 elna5g ; u8 phycal_tempdelta ; u8 temps_period ; u8 temps_hysteresis ; u8 measpower1 ; u8 measpower2 ; u8 pcieingress_war ; u16 cckbw202gpo ; u16 cckbw20ul2gpo ; u32 legofdmbw202gpo ; u32 legofdmbw20ul2gpo ; u32 legofdmbw205glpo ; u32 legofdmbw20ul5glpo ; u32 legofdmbw205gmpo ; u32 legofdmbw20ul5gmpo ; u32 legofdmbw205ghpo ; u32 legofdmbw20ul5ghpo ; u32 mcsbw202gpo ; u32 mcsbw20ul2gpo ; u32 mcsbw402gpo ; u32 mcsbw205glpo ; u32 mcsbw20ul5glpo ; u32 mcsbw405glpo ; u32 mcsbw205gmpo ; u32 mcsbw20ul5gmpo ; u32 mcsbw405gmpo ; u32 mcsbw205ghpo ; u32 mcsbw20ul5ghpo ; u32 mcsbw405ghpo ; u16 mcs32po ; u16 legofdm40duppo ; u8 sar2g ; u8 sar5g ; }; struct ssb_boardinfo { u16 vendor ; u16 type ; }; struct ssb_bus_ops { u8 (*read8)(struct ssb_device * , u16 ) ; u16 (*read16)(struct ssb_device * , u16 ) ; u32 (*read32)(struct ssb_device * , u16 ) ; void (*write8)(struct ssb_device * , u16 , u8 ) ; void (*write16)(struct ssb_device * , u16 , u16 ) ; void (*write32)(struct ssb_device * , u16 , u32 ) ; void (*block_read)(struct ssb_device * , void * , size_t , u16 , u8 ) ; void (*block_write)(struct ssb_device * , void const * , size_t , u16 , u8 ) ; }; struct ssb_device { struct ssb_bus_ops const *ops ; struct device *dev ; struct device *dma_dev ; struct ssb_bus *bus ; struct ssb_device_id id ; u8 core_index ; unsigned int irq ; void *drvdata ; void *devtypedata ; }; struct ssb_driver { char const *name ; struct ssb_device_id const *id_table ; int (*probe)(struct ssb_device * , struct ssb_device_id const * ) ; void (*remove)(struct ssb_device * ) ; int (*suspend)(struct ssb_device * , pm_message_t ) ; int (*resume)(struct ssb_device * ) ; void (*shutdown)(struct ssb_device * ) ; struct device_driver drv ; }; enum ssb_bustype { SSB_BUSTYPE_SSB = 0, SSB_BUSTYPE_PCI = 1, SSB_BUSTYPE_PCMCIA = 2, SSB_BUSTYPE_SDIO = 3 } ; struct ssb_chipcommon_pmu { u8 rev ; u32 crystalfreq ; }; struct ssb_chipcommon { struct ssb_device *dev ; u32 capabilities ; u32 status ; u16 fast_pwrup_delay ; spinlock_t gpio_lock ; struct ssb_chipcommon_pmu pmu ; u32 ticks_per_ms ; u32 max_timer_ms ; }; struct ssb_mipscore { }; struct ssb_extif { }; struct ssb_pcicore { struct ssb_device *dev ; unsigned char setup_done : 1 ; unsigned char hostmode : 1 ; unsigned char cardbusmode : 1 ; }; union __anonunion____missing_field_name_331 { u8 mapped_pcmcia_seg ; u32 sdio_sbaddr ; }; union __anonunion____missing_field_name_332 { struct pci_dev *host_pci ; struct pcmcia_device *host_pcmcia ; struct sdio_func *host_sdio ; }; struct ssb_bus { void *mmio ; struct ssb_bus_ops const *ops ; struct ssb_device *mapped_device ; union __anonunion____missing_field_name_331 __annonCompField96 ; spinlock_t bar_lock ; enum ssb_bustype bustype ; union __anonunion____missing_field_name_332 __annonCompField97 ; unsigned int quirks ; struct mutex sprom_mutex ; u16 chip_id ; u8 chip_rev ; u16 sprom_offset ; u16 sprom_size ; u8 chip_package ; struct ssb_device devices[16U] ; u8 nr_devices ; unsigned int busnumber ; struct ssb_chipcommon chipco ; struct ssb_pcicore pcicore ; struct ssb_mipscore mipscore ; struct ssb_extif extif ; struct ssb_boardinfo boardinfo ; struct ssb_sprom sprom ; bool has_cardbus_slot ; struct gpio_chip gpio ; struct irq_domain *irq_domain ; struct list_head list ; }; enum bcma_hosttype { BCMA_HOSTTYPE_PCI = 0, BCMA_HOSTTYPE_SDIO = 1, BCMA_HOSTTYPE_SOC = 2 } ; struct bcma_chipinfo { u16 id ; u8 rev ; u8 pkg ; }; struct bcma_boardinfo { u16 vendor ; u16 type ; }; enum bcma_clkmode { BCMA_CLKMODE_FAST = 0, BCMA_CLKMODE_DYNAMIC = 1 } ; struct bcma_host_ops { u8 (*read8)(struct bcma_device * , u16 ) ; u16 (*read16)(struct bcma_device * , u16 ) ; u32 (*read32)(struct bcma_device * , u16 ) ; void (*write8)(struct bcma_device * , u16 , u8 ) ; void (*write16)(struct bcma_device * , u16 , u16 ) ; void (*write32)(struct bcma_device * , u16 , u32 ) ; void (*block_read)(struct bcma_device * , void * , size_t , u16 , u8 ) ; void (*block_write)(struct bcma_device * , void const * , size_t , u16 , u8 ) ; u32 (*aread32)(struct bcma_device * , u16 ) ; void (*awrite32)(struct bcma_device * , u16 , u32 ) ; }; struct bcma_device { struct bcma_bus *bus ; struct bcma_device_id id ; struct device dev ; struct device *dma_dev ; unsigned int irq ; bool dev_registered ; u8 core_index ; u8 core_unit ; u32 addr ; u32 addr_s[8U] ; u32 wrap ; void *io_addr ; void *io_wrap ; void *drvdata ; struct list_head list ; }; struct bcma_driver { char const *name ; struct bcma_device_id const *id_table ; int (*probe)(struct bcma_device * ) ; void (*remove)(struct bcma_device * ) ; int (*suspend)(struct bcma_device * ) ; int (*resume)(struct bcma_device * ) ; void (*shutdown)(struct bcma_device * ) ; struct device_driver drv ; }; union __anonunion____missing_field_name_333 { struct pci_dev *host_pci ; struct sdio_func *host_sdio ; struct platform_device *host_pdev ; }; struct bcma_bus { void *mmio ; struct bcma_host_ops const *ops ; enum bcma_hosttype hosttype ; bool host_is_pcie2 ; union __anonunion____missing_field_name_333 __annonCompField98 ; struct bcma_chipinfo chipinfo ; struct bcma_boardinfo boardinfo ; struct bcma_device *mapped_core ; struct list_head cores ; u8 nr_cores ; u8 num ; struct bcma_drv_cc drv_cc ; struct bcma_drv_cc_b drv_cc_b ; struct bcma_drv_pci drv_pci[2U] ; struct bcma_drv_pcie2 drv_pcie2 ; struct bcma_drv_mips drv_mips ; struct bcma_drv_gmac_cmn drv_gmac_cmn ; struct ssb_sprom sprom ; }; struct ieee80211_msrment_ie { u8 token ; u8 mode ; u8 type ; u8 request[0U] ; }; struct ieee80211_ext_chansw_ie { u8 mode ; u8 new_operating_class ; u8 new_ch_num ; u8 count ; }; struct ieee80211_tpc_report_ie { u8 tx_power ; u8 link_margin ; }; struct __anonstruct_auth_335 { __le16 auth_alg ; __le16 auth_transaction ; __le16 status_code ; u8 variable[0U] ; }; struct __anonstruct_deauth_336 { __le16 reason_code ; }; struct __anonstruct_assoc_req_337 { __le16 capab_info ; __le16 listen_interval ; u8 variable[0U] ; }; struct __anonstruct_assoc_resp_338 { __le16 capab_info ; __le16 status_code ; __le16 aid ; u8 variable[0U] ; }; struct __anonstruct_reassoc_resp_339 { __le16 capab_info ; __le16 status_code ; __le16 aid ; u8 variable[0U] ; }; struct __anonstruct_reassoc_req_340 { __le16 capab_info ; __le16 listen_interval ; u8 current_ap[6U] ; u8 variable[0U] ; }; struct __anonstruct_disassoc_341 { __le16 reason_code ; }; struct __anonstruct_beacon_342 { __le64 timestamp ; __le16 beacon_int ; __le16 capab_info ; u8 variable[0U] ; }; struct __anonstruct_probe_req_343 { u8 variable[0U] ; }; struct __anonstruct_probe_resp_344 { __le64 timestamp ; __le16 beacon_int ; __le16 capab_info ; u8 variable[0U] ; }; struct __anonstruct_wme_action_347 { u8 action_code ; u8 dialog_token ; u8 status_code ; u8 variable[0U] ; }; struct __anonstruct_chan_switch_348 { u8 action_code ; u8 variable[0U] ; }; struct __anonstruct_ext_chan_switch_349 { u8 action_code ; struct ieee80211_ext_chansw_ie data ; u8 variable[0U] ; }; struct __anonstruct_measurement_350 { u8 action_code ; u8 dialog_token ; u8 element_id ; u8 length ; struct ieee80211_msrment_ie msr_elem ; }; struct __anonstruct_addba_req_351 { u8 action_code ; u8 dialog_token ; __le16 capab ; __le16 timeout ; __le16 start_seq_num ; }; struct __anonstruct_addba_resp_352 { u8 action_code ; u8 dialog_token ; __le16 status ; __le16 capab ; __le16 timeout ; }; struct __anonstruct_delba_353 { u8 action_code ; __le16 params ; __le16 reason_code ; }; struct __anonstruct_self_prot_354 { u8 action_code ; u8 variable[0U] ; }; struct __anonstruct_mesh_action_355 { u8 action_code ; u8 variable[0U] ; }; struct __anonstruct_sa_query_356 { u8 action ; u8 trans_id[2U] ; }; struct __anonstruct_ht_smps_357 { u8 action ; u8 smps_control ; }; struct __anonstruct_ht_notify_cw_358 { u8 action_code ; u8 chanwidth ; }; struct __anonstruct_tdls_discover_resp_359 { u8 action_code ; u8 dialog_token ; __le16 capability ; u8 variable[0U] ; }; struct __anonstruct_vht_opmode_notif_360 { u8 action_code ; u8 operating_mode ; }; struct __anonstruct_tpc_report_361 { u8 action_code ; u8 dialog_token ; u8 tpc_elem_id ; u8 tpc_elem_length ; struct ieee80211_tpc_report_ie tpc ; }; union __anonunion_u_346 { struct __anonstruct_wme_action_347 wme_action ; struct __anonstruct_chan_switch_348 chan_switch ; struct __anonstruct_ext_chan_switch_349 ext_chan_switch ; struct __anonstruct_measurement_350 measurement ; struct __anonstruct_addba_req_351 addba_req ; struct __anonstruct_addba_resp_352 addba_resp ; struct __anonstruct_delba_353 delba ; struct __anonstruct_self_prot_354 self_prot ; struct __anonstruct_mesh_action_355 mesh_action ; struct __anonstruct_sa_query_356 sa_query ; struct __anonstruct_ht_smps_357 ht_smps ; struct __anonstruct_ht_notify_cw_358 ht_notify_cw ; struct __anonstruct_tdls_discover_resp_359 tdls_discover_resp ; struct __anonstruct_vht_opmode_notif_360 vht_opmode_notif ; struct __anonstruct_tpc_report_361 tpc_report ; }; struct __anonstruct_action_345 { u8 category ; union __anonunion_u_346 u ; }; union __anonunion_u_334 { struct __anonstruct_auth_335 auth ; struct __anonstruct_deauth_336 deauth ; struct __anonstruct_assoc_req_337 assoc_req ; struct __anonstruct_assoc_resp_338 assoc_resp ; struct __anonstruct_reassoc_resp_339 reassoc_resp ; struct __anonstruct_reassoc_req_340 reassoc_req ; struct __anonstruct_disassoc_341 disassoc ; struct __anonstruct_beacon_342 beacon ; struct __anonstruct_probe_req_343 probe_req ; struct __anonstruct_probe_resp_344 probe_resp ; struct __anonstruct_action_345 action ; }; struct ieee80211_mgmt { __le16 frame_control ; __le16 duration ; u8 da[6U] ; u8 sa[6U] ; u8 bssid[6U] ; __le16 seq_ctrl ; union __anonunion_u_334 u ; }; struct ieee80211_p2p_noa_desc { u8 count ; __le32 duration ; __le32 interval ; __le32 start_time ; }; struct ieee80211_p2p_noa_attr { u8 index ; u8 oppps_ctwindow ; struct ieee80211_p2p_noa_desc desc[4U] ; }; struct ieee80211_mcs_info { u8 rx_mask[10U] ; __le16 rx_highest ; u8 tx_params ; u8 reserved[3U] ; }; struct ieee80211_ht_cap { __le16 cap_info ; u8 ampdu_params_info ; struct ieee80211_mcs_info mcs ; __le16 extended_ht_cap_info ; __le32 tx_BF_cap_info ; u8 antenna_selection_info ; }; struct ieee80211_vht_mcs_info { __le16 rx_mcs_map ; __le16 rx_highest ; __le16 tx_mcs_map ; __le16 tx_highest ; }; struct ieee80211_vht_cap { __le32 vht_cap_info ; struct ieee80211_vht_mcs_info supp_mcs ; }; enum nl80211_iftype { NL80211_IFTYPE_UNSPECIFIED = 0, NL80211_IFTYPE_ADHOC = 1, NL80211_IFTYPE_STATION = 2, NL80211_IFTYPE_AP = 3, NL80211_IFTYPE_AP_VLAN = 4, NL80211_IFTYPE_WDS = 5, NL80211_IFTYPE_MONITOR = 6, NL80211_IFTYPE_MESH_POINT = 7, NL80211_IFTYPE_P2P_CLIENT = 8, NL80211_IFTYPE_P2P_GO = 9, NL80211_IFTYPE_P2P_DEVICE = 10, NL80211_IFTYPE_OCB = 11, NUM_NL80211_IFTYPES = 12, NL80211_IFTYPE_MAX = 11 } ; struct nl80211_sta_flag_update { __u32 mask ; __u32 set ; }; enum nl80211_reg_initiator { NL80211_REGDOM_SET_BY_CORE = 0, NL80211_REGDOM_SET_BY_USER = 1, NL80211_REGDOM_SET_BY_DRIVER = 2, NL80211_REGDOM_SET_BY_COUNTRY_IE = 3 } ; enum nl80211_dfs_regions { NL80211_DFS_UNSET = 0, NL80211_DFS_FCC = 1, NL80211_DFS_ETSI = 2, NL80211_DFS_JP = 3 } ; enum nl80211_user_reg_hint_type { NL80211_USER_REG_HINT_USER = 0, NL80211_USER_REG_HINT_CELL_BASE = 1, NL80211_USER_REG_HINT_INDOOR = 2 } ; enum nl80211_mesh_power_mode { NL80211_MESH_POWER_UNKNOWN = 0, NL80211_MESH_POWER_ACTIVE = 1, NL80211_MESH_POWER_LIGHT_SLEEP = 2, NL80211_MESH_POWER_DEEP_SLEEP = 3, __NL80211_MESH_POWER_AFTER_LAST = 4, NL80211_MESH_POWER_MAX = 3 } ; enum nl80211_channel_type { NL80211_CHAN_NO_HT = 0, NL80211_CHAN_HT20 = 1, NL80211_CHAN_HT40MINUS = 2, NL80211_CHAN_HT40PLUS = 3 } ; enum nl80211_chan_width { NL80211_CHAN_WIDTH_20_NOHT = 0, NL80211_CHAN_WIDTH_20 = 1, NL80211_CHAN_WIDTH_40 = 2, NL80211_CHAN_WIDTH_80 = 3, NL80211_CHAN_WIDTH_80P80 = 4, NL80211_CHAN_WIDTH_160 = 5, NL80211_CHAN_WIDTH_5 = 6, NL80211_CHAN_WIDTH_10 = 7 } ; enum nl80211_bss_scan_width { NL80211_BSS_CHAN_WIDTH_20 = 0, NL80211_BSS_CHAN_WIDTH_10 = 1, NL80211_BSS_CHAN_WIDTH_5 = 2 } ; enum nl80211_auth_type { NL80211_AUTHTYPE_OPEN_SYSTEM = 0, NL80211_AUTHTYPE_SHARED_KEY = 1, NL80211_AUTHTYPE_FT = 2, NL80211_AUTHTYPE_NETWORK_EAP = 3, NL80211_AUTHTYPE_SAE = 4, __NL80211_AUTHTYPE_NUM = 5, NL80211_AUTHTYPE_MAX = 4, NL80211_AUTHTYPE_AUTOMATIC = 5 } ; enum nl80211_mfp { NL80211_MFP_NO = 0, NL80211_MFP_REQUIRED = 1 } ; enum nl80211_txrate_gi { NL80211_TXRATE_DEFAULT_GI = 0, NL80211_TXRATE_FORCE_SGI = 1, NL80211_TXRATE_FORCE_LGI = 2 } ; enum nl80211_tx_power_setting { NL80211_TX_POWER_AUTOMATIC = 0, NL80211_TX_POWER_LIMITED = 1, NL80211_TX_POWER_FIXED = 2 } ; struct nl80211_wowlan_tcp_data_seq { __u32 start ; __u32 offset ; __u32 len ; }; struct nl80211_wowlan_tcp_data_token { __u32 offset ; __u32 len ; __u8 token_stream[] ; }; struct nl80211_wowlan_tcp_data_token_feature { __u32 min_len ; __u32 max_len ; __u32 bufsize ; }; enum nl80211_dfs_state { NL80211_DFS_USABLE = 0, NL80211_DFS_UNAVAILABLE = 1, NL80211_DFS_AVAILABLE = 2 } ; struct nl80211_vendor_cmd_info { __u32 vendor_id ; __u32 subcmd ; }; enum environment_cap { ENVIRON_ANY = 0, ENVIRON_INDOOR = 1, ENVIRON_OUTDOOR = 2 } ; struct regulatory_request { struct callback_head callback_head ; int wiphy_idx ; enum nl80211_reg_initiator initiator ; enum nl80211_user_reg_hint_type user_reg_hint_type ; char alpha2[2U] ; enum nl80211_dfs_regions dfs_region ; bool intersect ; bool processed ; enum environment_cap country_ie_env ; struct list_head list ; }; struct ieee80211_freq_range { u32 start_freq_khz ; u32 end_freq_khz ; u32 max_bandwidth_khz ; }; struct ieee80211_power_rule { u32 max_antenna_gain ; u32 max_eirp ; }; struct ieee80211_reg_rule { struct ieee80211_freq_range freq_range ; struct ieee80211_power_rule power_rule ; u32 flags ; u32 dfs_cac_ms ; }; struct ieee80211_regdomain { struct callback_head callback_head ; u32 n_reg_rules ; char alpha2[3U] ; enum nl80211_dfs_regions dfs_region ; struct ieee80211_reg_rule reg_rules[] ; }; struct wiphy; enum ieee80211_band { IEEE80211_BAND_2GHZ = 0, IEEE80211_BAND_5GHZ = 1, IEEE80211_BAND_60GHZ = 2, IEEE80211_NUM_BANDS = 3 } ; struct ieee80211_channel { enum ieee80211_band band ; u16 center_freq ; u16 hw_value ; u32 flags ; int max_antenna_gain ; int max_power ; int max_reg_power ; bool beacon_found ; u32 orig_flags ; int orig_mag ; int orig_mpwr ; enum nl80211_dfs_state dfs_state ; unsigned long dfs_state_entered ; unsigned int dfs_cac_ms ; }; struct ieee80211_rate { u32 flags ; u16 bitrate ; u16 hw_value ; u16 hw_value_short ; }; struct ieee80211_sta_ht_cap { u16 cap ; bool ht_supported ; u8 ampdu_factor ; u8 ampdu_density ; struct ieee80211_mcs_info mcs ; }; struct ieee80211_sta_vht_cap { bool vht_supported ; u32 cap ; struct ieee80211_vht_mcs_info vht_mcs ; }; struct ieee80211_supported_band { struct ieee80211_channel *channels ; struct ieee80211_rate *bitrates ; enum ieee80211_band band ; int n_channels ; int n_bitrates ; struct ieee80211_sta_ht_cap ht_cap ; struct ieee80211_sta_vht_cap vht_cap ; }; struct cfg80211_chan_def { struct ieee80211_channel *chan ; enum nl80211_chan_width width ; u32 center_freq1 ; u32 center_freq2 ; }; struct survey_info { struct ieee80211_channel *channel ; u64 time ; u64 time_busy ; u64 time_ext_busy ; u64 time_rx ; u64 time_tx ; u64 time_scan ; u32 filled ; s8 noise ; }; struct cfg80211_crypto_settings { u32 wpa_versions ; u32 cipher_group ; int n_ciphers_pairwise ; u32 ciphers_pairwise[5U] ; int n_akm_suites ; u32 akm_suites[2U] ; bool control_port ; __be16 control_port_ethertype ; bool control_port_no_encrypt ; }; struct mac_address { u8 addr[6U] ; }; struct rate_info { u8 flags ; u8 mcs ; u16 legacy ; u8 nss ; u8 bw ; }; struct sta_bss_parameters { u8 flags ; u8 dtim_period ; u16 beacon_interval ; }; struct cfg80211_tid_stats { u32 filled ; u64 rx_msdu ; u64 tx_msdu ; u64 tx_msdu_retries ; u64 tx_msdu_failed ; }; struct station_info { u32 filled ; u32 connected_time ; u32 inactive_time ; u64 rx_bytes ; u64 tx_bytes ; u16 llid ; u16 plid ; u8 plink_state ; s8 signal ; s8 signal_avg ; u8 chains ; s8 chain_signal[4U] ; s8 chain_signal_avg[4U] ; struct rate_info txrate ; struct rate_info rxrate ; u32 rx_packets ; u32 tx_packets ; u32 tx_retries ; u32 tx_failed ; u32 rx_dropped_misc ; struct sta_bss_parameters bss_param ; struct nl80211_sta_flag_update sta_flags ; int generation ; u8 const *assoc_req_ies ; size_t assoc_req_ies_len ; u32 beacon_loss_count ; s64 t_offset ; enum nl80211_mesh_power_mode local_pm ; enum nl80211_mesh_power_mode peer_pm ; enum nl80211_mesh_power_mode nonpeer_pm ; u32 expected_throughput ; u64 rx_beacon ; u8 rx_beacon_signal_avg ; struct cfg80211_tid_stats pertid[17U] ; }; struct cfg80211_ssid { u8 ssid[32U] ; u8 ssid_len ; }; struct cfg80211_scan_request { struct cfg80211_ssid *ssids ; int n_ssids ; u32 n_channels ; enum nl80211_bss_scan_width scan_width ; u8 const *ie ; size_t ie_len ; u32 flags ; u32 rates[3U] ; struct wireless_dev *wdev ; u8 mac_addr[6U] ; u8 mac_addr_mask[6U] ; struct wiphy *wiphy ; unsigned long scan_start ; bool aborted ; bool notified ; bool no_cck ; struct ieee80211_channel *channels[0U] ; }; struct cfg80211_match_set { struct cfg80211_ssid ssid ; s32 rssi_thold ; }; struct cfg80211_sched_scan_request { struct cfg80211_ssid *ssids ; int n_ssids ; u32 n_channels ; enum nl80211_bss_scan_width scan_width ; u32 interval ; u8 const *ie ; size_t ie_len ; u32 flags ; struct cfg80211_match_set *match_sets ; int n_match_sets ; s32 min_rssi_thold ; u32 delay ; u8 mac_addr[6U] ; u8 mac_addr_mask[6U] ; struct wiphy *wiphy ; struct net_device *dev ; unsigned long scan_start ; struct callback_head callback_head ; u32 owner_nlportid ; struct ieee80211_channel *channels[0U] ; }; enum cfg80211_signal_type { CFG80211_SIGNAL_TYPE_NONE = 0, CFG80211_SIGNAL_TYPE_MBM = 1, CFG80211_SIGNAL_TYPE_UNSPEC = 2 } ; struct cfg80211_ibss_params { u8 const *ssid ; u8 const *bssid ; struct cfg80211_chan_def chandef ; u8 const *ie ; u8 ssid_len ; u8 ie_len ; u16 beacon_interval ; u32 basic_rates ; bool channel_fixed ; bool privacy ; bool control_port ; bool userspace_handles_dfs ; int mcast_rate[3U] ; struct ieee80211_ht_cap ht_capa ; struct ieee80211_ht_cap ht_capa_mask ; }; struct cfg80211_connect_params { struct ieee80211_channel *channel ; struct ieee80211_channel *channel_hint ; u8 const *bssid ; u8 const *bssid_hint ; u8 const *ssid ; size_t ssid_len ; enum nl80211_auth_type auth_type ; u8 const *ie ; size_t ie_len ; bool privacy ; enum nl80211_mfp mfp ; struct cfg80211_crypto_settings crypto ; u8 const *key ; u8 key_len ; u8 key_idx ; u32 flags ; int bg_scan_period ; struct ieee80211_ht_cap ht_capa ; struct ieee80211_ht_cap ht_capa_mask ; struct ieee80211_vht_cap vht_capa ; struct ieee80211_vht_cap vht_capa_mask ; }; struct __anonstruct_control_373 { u32 legacy ; u8 ht_mcs[10U] ; u16 vht_mcs[8U] ; enum nl80211_txrate_gi gi ; }; struct cfg80211_bitrate_mask { struct __anonstruct_control_373 control[3U] ; }; struct cfg80211_pkt_pattern { u8 const *mask ; u8 const *pattern ; int pattern_len ; int pkt_offset ; }; struct cfg80211_wowlan_tcp { struct socket *sock ; __be32 src ; __be32 dst ; u16 src_port ; u16 dst_port ; u8 dst_mac[6U] ; int payload_len ; u8 const *payload ; struct nl80211_wowlan_tcp_data_seq payload_seq ; u32 data_interval ; u32 wake_len ; u8 const *wake_data ; u8 const *wake_mask ; u32 tokens_size ; struct nl80211_wowlan_tcp_data_token payload_tok ; }; struct cfg80211_wowlan { bool any ; bool disconnect ; bool magic_pkt ; bool gtk_rekey_failure ; bool eap_identity_req ; bool four_way_handshake ; bool rfkill_release ; struct cfg80211_pkt_pattern *patterns ; struct cfg80211_wowlan_tcp *tcp ; int n_patterns ; struct cfg80211_sched_scan_request *nd_config ; }; struct cfg80211_gtk_rekey_data { u8 const *kek ; u8 const *kck ; u8 const *replay_ctr ; }; struct ieee80211_iface_limit { u16 max ; u16 types ; }; struct ieee80211_iface_combination { struct ieee80211_iface_limit const *limits ; u32 num_different_channels ; u16 max_interfaces ; u8 n_limits ; bool beacon_int_infra_match ; u8 radar_detect_widths ; u8 radar_detect_regions ; }; struct ieee80211_txrx_stypes { u16 tx ; u16 rx ; }; struct wiphy_wowlan_tcp_support { struct nl80211_wowlan_tcp_data_token_feature const *tok ; u32 data_payload_max ; u32 data_interval_max ; u32 wake_payload_max ; bool seq ; }; struct wiphy_wowlan_support { u32 flags ; int n_patterns ; int pattern_max_len ; int pattern_min_len ; int max_pkt_offset ; int max_nd_match_sets ; struct wiphy_wowlan_tcp_support const *tcp ; }; struct wiphy_coalesce_support { int n_rules ; int max_delay ; int n_patterns ; int pattern_max_len ; int pattern_min_len ; int max_pkt_offset ; }; struct wiphy_vendor_command { struct nl80211_vendor_cmd_info info ; u32 flags ; int (*doit)(struct wiphy * , struct wireless_dev * , void const * , int ) ; }; struct wiphy { u8 perm_addr[6U] ; u8 addr_mask[6U] ; struct mac_address *addresses ; struct ieee80211_txrx_stypes const *mgmt_stypes ; struct ieee80211_iface_combination const *iface_combinations ; int n_iface_combinations ; u16 software_iftypes ; u16 n_addresses ; u16 interface_modes ; u16 max_acl_mac_addrs ; u32 flags ; u32 regulatory_flags ; u32 features ; u8 ext_features[1U] ; u32 ap_sme_capa ; enum cfg80211_signal_type signal_type ; int bss_priv_size ; u8 max_scan_ssids ; u8 max_sched_scan_ssids ; u8 max_match_sets ; u16 max_scan_ie_len ; u16 max_sched_scan_ie_len ; int n_cipher_suites ; u32 const *cipher_suites ; u8 retry_short ; u8 retry_long ; u32 frag_threshold ; u32 rts_threshold ; u8 coverage_class ; char fw_version[32U] ; u32 hw_version ; struct wiphy_wowlan_support const *wowlan ; struct cfg80211_wowlan *wowlan_config ; u16 max_remain_on_channel_duration ; u8 max_num_pmkids ; u32 available_antennas_tx ; u32 available_antennas_rx ; u32 probe_resp_offload ; u8 const *extended_capabilities ; u8 const *extended_capabilities_mask ; u8 extended_capabilities_len ; void const *privid ; struct ieee80211_supported_band *bands[3U] ; void (*reg_notifier)(struct wiphy * , struct regulatory_request * ) ; struct ieee80211_regdomain const *regd ; struct device dev ; bool registered ; struct dentry *debugfsdir ; struct ieee80211_ht_cap const *ht_capa_mod_mask ; struct ieee80211_vht_cap const *vht_capa_mod_mask ; possible_net_t _net ; struct iw_handler_def const *wext ; struct wiphy_coalesce_support const *coalesce ; struct wiphy_vendor_command const *vendor_commands ; struct nl80211_vendor_cmd_info const *vendor_events ; int n_vendor_commands ; int n_vendor_events ; u16 max_ap_assoc_sta ; u8 max_num_csa_counters ; u8 max_adj_channel_rssi_comp ; char priv[0U] ; }; struct cfg80211_conn; struct cfg80211_internal_bss; struct cfg80211_cached_keys; struct __anonstruct_wext_374 { struct cfg80211_ibss_params ibss ; struct cfg80211_connect_params connect ; struct cfg80211_cached_keys *keys ; u8 const *ie ; size_t ie_len ; u8 bssid[6U] ; u8 prev_bssid[6U] ; u8 ssid[32U] ; s8 default_key ; s8 default_mgmt_key ; bool prev_bssid_valid ; }; struct wireless_dev { struct wiphy *wiphy ; enum nl80211_iftype iftype ; struct list_head list ; struct net_device *netdev ; u32 identifier ; struct list_head mgmt_registrations ; spinlock_t mgmt_registrations_lock ; struct mutex mtx ; bool use_4addr ; bool p2p_started ; u8 address[6U] ; u8 ssid[32U] ; u8 ssid_len ; u8 mesh_id_len ; u8 mesh_id_up_len ; struct cfg80211_conn *conn ; struct cfg80211_cached_keys *connect_keys ; struct list_head event_list ; spinlock_t event_lock ; struct cfg80211_internal_bss *current_bss ; struct cfg80211_chan_def preset_chandef ; struct cfg80211_chan_def chandef ; bool ibss_fixed ; bool ibss_dfs_possible ; bool ps ; int ps_timeout ; int beacon_interval ; u32 ap_unexpected_nlportid ; bool cac_started ; unsigned long cac_start_time ; unsigned int cac_time_ms ; u32 owner_nlportid ; struct __anonstruct_wext_374 wext ; }; struct ieee80211_tx_queue_params { u16 txop ; u16 cw_min ; u16 cw_max ; u8 aifs ; bool acm ; bool uapsd ; }; struct ieee80211_low_level_stats { unsigned int dot11ACKFailureCount ; unsigned int dot11RTSFailureCount ; unsigned int dot11FCSErrorCount ; unsigned int dot11RTSSuccessCount ; }; struct ieee80211_chanctx_conf { struct cfg80211_chan_def def ; struct cfg80211_chan_def min_def ; u8 rx_chains_static ; u8 rx_chains_dynamic ; bool radar_enabled ; u8 drv_priv[0U] ; }; enum ieee80211_chanctx_switch_mode { CHANCTX_SWMODE_REASSIGN_VIF = 0, CHANCTX_SWMODE_SWAP_CONTEXTS = 1 } ; struct ieee80211_vif; struct ieee80211_vif_chanctx_switch { struct ieee80211_vif *vif ; struct ieee80211_chanctx_conf *old_ctx ; struct ieee80211_chanctx_conf *new_ctx ; }; enum ieee80211_event_type { RSSI_EVENT = 0, MLME_EVENT = 1, BAR_RX_EVENT = 2, BA_FRAME_TIMEOUT = 3 } ; enum ieee80211_rssi_event_data { RSSI_EVENT_HIGH = 0, RSSI_EVENT_LOW = 1 } ; struct ieee80211_rssi_event { enum ieee80211_rssi_event_data data ; }; enum ieee80211_mlme_event_data { AUTH_EVENT = 0, ASSOC_EVENT = 1, DEAUTH_RX_EVENT = 2, DEAUTH_TX_EVENT = 3 } ; enum ieee80211_mlme_event_status { MLME_SUCCESS = 0, MLME_DENIED = 1, MLME_TIMEOUT = 2 } ; struct ieee80211_mlme_event { enum ieee80211_mlme_event_data data ; enum ieee80211_mlme_event_status status ; u16 reason ; }; struct ieee80211_sta; struct ieee80211_ba_event { struct ieee80211_sta *sta ; u16 tid ; u16 ssn ; }; union __anonunion_u_375 { struct ieee80211_rssi_event rssi ; struct ieee80211_mlme_event mlme ; struct ieee80211_ba_event ba ; }; struct ieee80211_event { enum ieee80211_event_type type ; union __anonunion_u_375 u ; }; struct ieee80211_bss_conf { u8 const *bssid ; bool assoc ; bool ibss_joined ; bool ibss_creator ; u16 aid ; bool use_cts_prot ; bool use_short_preamble ; bool use_short_slot ; bool enable_beacon ; u8 dtim_period ; u16 beacon_int ; u16 assoc_capability ; u64 sync_tsf ; u32 sync_device_ts ; u8 sync_dtim_count ; u32 basic_rates ; struct ieee80211_rate *beacon_rate ; int mcast_rate[3U] ; u16 ht_operation_mode ; s32 cqm_rssi_thold ; u32 cqm_rssi_hyst ; struct cfg80211_chan_def chandef ; __be32 arp_addr_list[4U] ; int arp_addr_cnt ; bool qos ; bool idle ; bool ps ; u8 ssid[32U] ; size_t ssid_len ; bool hidden_ssid ; int txpower ; enum nl80211_tx_power_setting txpower_type ; struct ieee80211_p2p_noa_attr p2p_noa_attr ; }; struct ieee80211_tx_rate { s8 idx ; unsigned char count : 5 ; unsigned short flags : 11 ; }; struct __anonstruct____missing_field_name_379 { struct ieee80211_tx_rate rates[4U] ; s8 rts_cts_rate_idx ; unsigned char use_rts : 1 ; unsigned char use_cts_prot : 1 ; unsigned char short_preamble : 1 ; unsigned char skip_table : 1 ; }; union __anonunion____missing_field_name_378 { struct __anonstruct____missing_field_name_379 __annonCompField100 ; unsigned long jiffies ; }; struct ieee80211_key_conf; struct __anonstruct_control_377 { union __anonunion____missing_field_name_378 __annonCompField101 ; struct ieee80211_vif *vif ; struct ieee80211_key_conf *hw_key ; u32 flags ; }; struct __anonstruct_ack_380 { u64 cookie ; }; struct __anonstruct_status_381 { struct ieee80211_tx_rate rates[4U] ; s32 ack_signal ; u8 ampdu_ack_len ; u8 ampdu_len ; u8 antenna ; u16 tx_time ; void *status_driver_data[2U] ; }; struct __anonstruct____missing_field_name_382 { struct ieee80211_tx_rate driver_rates[4U] ; u8 pad[4U] ; void *rate_driver_data[3U] ; }; union __anonunion____missing_field_name_376 { struct __anonstruct_control_377 control ; struct __anonstruct_ack_380 ack ; struct __anonstruct_status_381 status ; struct __anonstruct____missing_field_name_382 __annonCompField102 ; void *driver_data[5U] ; }; struct ieee80211_tx_info { u32 flags ; u8 band ; u8 hw_queue ; u16 ack_frame_id ; union __anonunion____missing_field_name_376 __annonCompField103 ; }; struct ieee80211_scan_ies { u8 const *ies[3U] ; size_t len[3U] ; u8 const *common_ies ; size_t common_ie_len ; }; enum ieee80211_smps_mode { IEEE80211_SMPS_AUTOMATIC = 0, IEEE80211_SMPS_OFF = 1, IEEE80211_SMPS_STATIC = 2, IEEE80211_SMPS_DYNAMIC = 3, IEEE80211_SMPS_NUM_MODES = 4 } ; struct ieee80211_conf { u32 flags ; int power_level ; int dynamic_ps_timeout ; int max_sleep_period ; u16 listen_interval ; u8 ps_dtim_period ; u8 long_frame_max_tx_count ; u8 short_frame_max_tx_count ; struct cfg80211_chan_def chandef ; bool radar_enabled ; enum ieee80211_smps_mode smps_mode ; }; struct ieee80211_channel_switch { u64 timestamp ; u32 device_timestamp ; bool block_tx ; struct cfg80211_chan_def chandef ; u8 count ; }; struct ieee80211_txq; struct ieee80211_vif { enum nl80211_iftype type ; struct ieee80211_bss_conf bss_conf ; u8 addr[6U] ; bool p2p ; bool csa_active ; u8 cab_queue ; u8 hw_queue[4U] ; struct ieee80211_txq *txq ; struct ieee80211_chanctx_conf *chanctx_conf ; u32 driver_flags ; struct dentry *debugfs_dir ; u8 drv_priv[0U] ; }; struct ieee80211_key_conf { atomic64_t tx_pn ; u32 cipher ; u8 icv_len ; u8 iv_len ; u8 hw_key_idx ; u8 flags ; s8 keyidx ; u8 keylen ; u8 key[0U] ; }; struct __anonstruct_tkip_384 { u32 iv32 ; u16 iv16 ; }; struct __anonstruct_ccmp_385 { u8 pn[6U] ; }; struct __anonstruct_aes_cmac_386 { u8 pn[6U] ; }; struct __anonstruct_aes_gmac_387 { u8 pn[6U] ; }; struct __anonstruct_gcmp_388 { u8 pn[6U] ; }; struct __anonstruct_hw_389 { u8 seq[16U] ; u8 seq_len ; }; union __anonunion____missing_field_name_383 { struct __anonstruct_tkip_384 tkip ; struct __anonstruct_ccmp_385 ccmp ; struct __anonstruct_aes_cmac_386 aes_cmac ; struct __anonstruct_aes_gmac_387 aes_gmac ; struct __anonstruct_gcmp_388 gcmp ; struct __anonstruct_hw_389 hw ; }; struct ieee80211_key_seq { union __anonunion____missing_field_name_383 __annonCompField104 ; }; struct ieee80211_cipher_scheme { u32 cipher ; u16 iftype ; u8 hdr_len ; u8 pn_len ; u8 pn_off ; u8 key_idx_off ; u8 key_idx_mask ; u8 key_idx_shift ; u8 mic_len ; }; enum set_key_cmd { SET_KEY = 0, DISABLE_KEY = 1 } ; enum ieee80211_sta_state { IEEE80211_STA_NOTEXIST = 0, IEEE80211_STA_NONE = 1, IEEE80211_STA_AUTH = 2, IEEE80211_STA_ASSOC = 3, IEEE80211_STA_AUTHORIZED = 4 } ; enum ieee80211_sta_rx_bandwidth { IEEE80211_STA_RX_BW_20 = 0, IEEE80211_STA_RX_BW_40 = 1, IEEE80211_STA_RX_BW_80 = 2, IEEE80211_STA_RX_BW_160 = 3 } ; struct __anonstruct_rate_390 { s8 idx ; u8 count ; u8 count_cts ; u8 count_rts ; u16 flags ; }; struct ieee80211_sta_rates { struct callback_head callback_head ; struct __anonstruct_rate_390 rate[4U] ; }; struct ieee80211_sta { u32 supp_rates[3U] ; u8 addr[6U] ; u16 aid ; struct ieee80211_sta_ht_cap ht_cap ; struct ieee80211_sta_vht_cap vht_cap ; bool wme ; u8 uapsd_queues ; u8 max_sp ; u8 rx_nss ; enum ieee80211_sta_rx_bandwidth bandwidth ; enum ieee80211_smps_mode smps_mode ; struct ieee80211_sta_rates *rates ; bool tdls ; bool tdls_initiator ; bool mfp ; struct ieee80211_txq *txq[16U] ; u8 drv_priv[0U] ; }; enum sta_notify_cmd { STA_NOTIFY_SLEEP = 0, STA_NOTIFY_AWAKE = 1 } ; struct ieee80211_tx_control { struct ieee80211_sta *sta ; }; struct ieee80211_txq { struct ieee80211_vif *vif ; struct ieee80211_sta *sta ; u8 tid ; u8 ac ; u8 drv_priv[0U] ; }; enum ieee80211_hw_flags { IEEE80211_HW_HAS_RATE_CONTROL = 0, IEEE80211_HW_RX_INCLUDES_FCS = 1, IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING = 2, IEEE80211_HW_SIGNAL_UNSPEC = 3, IEEE80211_HW_SIGNAL_DBM = 4, IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC = 5, IEEE80211_HW_SPECTRUM_MGMT = 6, IEEE80211_HW_AMPDU_AGGREGATION = 7, IEEE80211_HW_SUPPORTS_PS = 8, IEEE80211_HW_PS_NULLFUNC_STACK = 9, IEEE80211_HW_SUPPORTS_DYNAMIC_PS = 10, IEEE80211_HW_MFP_CAPABLE = 11, IEEE80211_HW_WANT_MONITOR_VIF = 12, IEEE80211_HW_NO_AUTO_VIF = 13, IEEE80211_HW_SW_CRYPTO_CONTROL = 14, IEEE80211_HW_SUPPORT_FAST_XMIT = 15, IEEE80211_HW_REPORTS_TX_ACK_STATUS = 16, IEEE80211_HW_CONNECTION_MONITOR = 17, IEEE80211_HW_QUEUE_CONTROL = 18, IEEE80211_HW_SUPPORTS_PER_STA_GTK = 19, IEEE80211_HW_AP_LINK_PS = 20, IEEE80211_HW_TX_AMPDU_SETUP_IN_HW = 21, IEEE80211_HW_SUPPORTS_RC_TABLE = 22, IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF = 23, IEEE80211_HW_TIMING_BEACON_ONLY = 24, IEEE80211_HW_SUPPORTS_HT_CCK_RATES = 25, IEEE80211_HW_CHANCTX_STA_CSA = 26, IEEE80211_HW_SUPPORTS_CLONED_SKBS = 27, IEEE80211_HW_SINGLE_SCAN_ON_ALL_BANDS = 28, NUM_IEEE80211_HW_FLAGS = 29 } ; struct ieee80211_hw { struct ieee80211_conf conf ; struct wiphy *wiphy ; char const *rate_control_algorithm ; void *priv ; unsigned long flags[1U] ; unsigned int extra_tx_headroom ; unsigned int extra_beacon_tailroom ; int vif_data_size ; int sta_data_size ; int chanctx_data_size ; int txq_data_size ; u16 queues ; u16 max_listen_interval ; s8 max_signal ; u8 max_rates ; u8 max_report_rates ; u8 max_rate_tries ; u8 max_rx_aggregation_subframes ; u8 max_tx_aggregation_subframes ; u8 offchannel_tx_hw_queue ; u8 radiotap_mcs_details ; u16 radiotap_vht_details ; netdev_features_t netdev_features ; u8 uapsd_queues ; u8 uapsd_max_sp_len ; u8 n_cipher_schemes ; struct ieee80211_cipher_scheme const *cipher_schemes ; int txq_ac_max_pending ; }; struct ieee80211_scan_request { struct ieee80211_scan_ies ies ; struct cfg80211_scan_request req ; }; struct ieee80211_tdls_ch_sw_params { struct ieee80211_sta *sta ; struct cfg80211_chan_def *chandef ; u8 action_code ; u32 status ; u32 timestamp ; u16 switch_time ; u16 switch_timeout ; struct sk_buff *tmpl_skb ; u32 ch_sw_tm_ie ; }; enum ieee80211_ampdu_mlme_action { IEEE80211_AMPDU_RX_START = 0, IEEE80211_AMPDU_RX_STOP = 1, IEEE80211_AMPDU_TX_START = 2, IEEE80211_AMPDU_TX_STOP_CONT = 3, IEEE80211_AMPDU_TX_STOP_FLUSH = 4, IEEE80211_AMPDU_TX_STOP_FLUSH_CONT = 5, IEEE80211_AMPDU_TX_OPERATIONAL = 6 } ; enum ieee80211_frame_release_type { IEEE80211_FRAME_RELEASE_PSPOLL = 0, IEEE80211_FRAME_RELEASE_UAPSD = 1 } ; enum ieee80211_roc_type { IEEE80211_ROC_TYPE_NORMAL = 0, IEEE80211_ROC_TYPE_MGMT_TX = 1 } ; enum ieee80211_reconfig_type { IEEE80211_RECONFIG_TYPE_RESTART = 0, IEEE80211_RECONFIG_TYPE_SUSPEND = 1 } ; struct ieee80211_ops { void (*tx)(struct ieee80211_hw * , struct ieee80211_tx_control * , struct sk_buff * ) ; int (*start)(struct ieee80211_hw * ) ; void (*stop)(struct ieee80211_hw * ) ; int (*suspend)(struct ieee80211_hw * , struct cfg80211_wowlan * ) ; int (*resume)(struct ieee80211_hw * ) ; void (*set_wakeup)(struct ieee80211_hw * , bool ) ; int (*add_interface)(struct ieee80211_hw * , struct ieee80211_vif * ) ; int (*change_interface)(struct ieee80211_hw * , struct ieee80211_vif * , enum nl80211_iftype , bool ) ; void (*remove_interface)(struct ieee80211_hw * , struct ieee80211_vif * ) ; int (*config)(struct ieee80211_hw * , u32 ) ; void (*bss_info_changed)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_bss_conf * , u32 ) ; int (*start_ap)(struct ieee80211_hw * , struct ieee80211_vif * ) ; void (*stop_ap)(struct ieee80211_hw * , struct ieee80211_vif * ) ; u64 (*prepare_multicast)(struct ieee80211_hw * , struct netdev_hw_addr_list * ) ; void (*configure_filter)(struct ieee80211_hw * , unsigned int , unsigned int * , u64 ) ; int (*set_tim)(struct ieee80211_hw * , struct ieee80211_sta * , bool ) ; int (*set_key)(struct ieee80211_hw * , enum set_key_cmd , struct ieee80211_vif * , struct ieee80211_sta * , struct ieee80211_key_conf * ) ; void (*update_tkip_key)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_key_conf * , struct ieee80211_sta * , u32 , u16 * ) ; void (*set_rekey_data)(struct ieee80211_hw * , struct ieee80211_vif * , struct cfg80211_gtk_rekey_data * ) ; void (*set_default_unicast_key)(struct ieee80211_hw * , struct ieee80211_vif * , int ) ; int (*hw_scan)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_scan_request * ) ; void (*cancel_hw_scan)(struct ieee80211_hw * , struct ieee80211_vif * ) ; int (*sched_scan_start)(struct ieee80211_hw * , struct ieee80211_vif * , struct cfg80211_sched_scan_request * , struct ieee80211_scan_ies * ) ; int (*sched_scan_stop)(struct ieee80211_hw * , struct ieee80211_vif * ) ; void (*sw_scan_start)(struct ieee80211_hw * , struct ieee80211_vif * , u8 const * ) ; void (*sw_scan_complete)(struct ieee80211_hw * , struct ieee80211_vif * ) ; int (*get_stats)(struct ieee80211_hw * , struct ieee80211_low_level_stats * ) ; void (*get_key_seq)(struct ieee80211_hw * , struct ieee80211_key_conf * , struct ieee80211_key_seq * ) ; int (*set_frag_threshold)(struct ieee80211_hw * , u32 ) ; int (*set_rts_threshold)(struct ieee80211_hw * , u32 ) ; int (*sta_add)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_sta * ) ; int (*sta_remove)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_sta * ) ; void (*sta_add_debugfs)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_sta * , struct dentry * ) ; void (*sta_remove_debugfs)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_sta * , struct dentry * ) ; void (*sta_notify)(struct ieee80211_hw * , struct ieee80211_vif * , enum sta_notify_cmd , struct ieee80211_sta * ) ; int (*sta_state)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_sta * , enum ieee80211_sta_state , enum ieee80211_sta_state ) ; void (*sta_pre_rcu_remove)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_sta * ) ; void (*sta_rc_update)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_sta * , u32 ) ; void (*sta_rate_tbl_update)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_sta * ) ; void (*sta_statistics)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_sta * , struct station_info * ) ; int (*conf_tx)(struct ieee80211_hw * , struct ieee80211_vif * , u16 , struct ieee80211_tx_queue_params const * ) ; u64 (*get_tsf)(struct ieee80211_hw * , struct ieee80211_vif * ) ; void (*set_tsf)(struct ieee80211_hw * , struct ieee80211_vif * , u64 ) ; void (*reset_tsf)(struct ieee80211_hw * , struct ieee80211_vif * ) ; int (*tx_last_beacon)(struct ieee80211_hw * ) ; int (*ampdu_action)(struct ieee80211_hw * , struct ieee80211_vif * , enum ieee80211_ampdu_mlme_action , struct ieee80211_sta * , u16 , u16 * , u8 ) ; int (*get_survey)(struct ieee80211_hw * , int , struct survey_info * ) ; void (*rfkill_poll)(struct ieee80211_hw * ) ; void (*set_coverage_class)(struct ieee80211_hw * , s16 ) ; int (*testmode_cmd)(struct ieee80211_hw * , struct ieee80211_vif * , void * , int ) ; int (*testmode_dump)(struct ieee80211_hw * , struct sk_buff * , struct netlink_callback * , void * , int ) ; void (*flush)(struct ieee80211_hw * , struct ieee80211_vif * , u32 , bool ) ; void (*channel_switch)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_channel_switch * ) ; int (*set_antenna)(struct ieee80211_hw * , u32 , u32 ) ; int (*get_antenna)(struct ieee80211_hw * , u32 * , u32 * ) ; int (*remain_on_channel)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_channel * , int , enum ieee80211_roc_type ) ; int (*cancel_remain_on_channel)(struct ieee80211_hw * ) ; int (*set_ringparam)(struct ieee80211_hw * , u32 , u32 ) ; void (*get_ringparam)(struct ieee80211_hw * , u32 * , u32 * , u32 * , u32 * ) ; bool (*tx_frames_pending)(struct ieee80211_hw * ) ; int (*set_bitrate_mask)(struct ieee80211_hw * , struct ieee80211_vif * , struct cfg80211_bitrate_mask const * ) ; void (*event_callback)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_event const * ) ; void (*allow_buffered_frames)(struct ieee80211_hw * , struct ieee80211_sta * , u16 , int , enum ieee80211_frame_release_type , bool ) ; void (*release_buffered_frames)(struct ieee80211_hw * , struct ieee80211_sta * , u16 , int , enum ieee80211_frame_release_type , bool ) ; int (*get_et_sset_count)(struct ieee80211_hw * , struct ieee80211_vif * , int ) ; void (*get_et_stats)(struct ieee80211_hw * , struct ieee80211_vif * , struct ethtool_stats * , u64 * ) ; void (*get_et_strings)(struct ieee80211_hw * , struct ieee80211_vif * , u32 , u8 * ) ; void (*mgd_prepare_tx)(struct ieee80211_hw * , struct ieee80211_vif * ) ; void (*mgd_protect_tdls_discover)(struct ieee80211_hw * , struct ieee80211_vif * ) ; int (*add_chanctx)(struct ieee80211_hw * , struct ieee80211_chanctx_conf * ) ; void (*remove_chanctx)(struct ieee80211_hw * , struct ieee80211_chanctx_conf * ) ; void (*change_chanctx)(struct ieee80211_hw * , struct ieee80211_chanctx_conf * , u32 ) ; int (*assign_vif_chanctx)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_chanctx_conf * ) ; void (*unassign_vif_chanctx)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_chanctx_conf * ) ; int (*switch_vif_chanctx)(struct ieee80211_hw * , struct ieee80211_vif_chanctx_switch * , int , enum ieee80211_chanctx_switch_mode ) ; void (*reconfig_complete)(struct ieee80211_hw * , enum ieee80211_reconfig_type ) ; void (*ipv6_addr_change)(struct ieee80211_hw * , struct ieee80211_vif * , struct inet6_dev * ) ; void (*channel_switch_beacon)(struct ieee80211_hw * , struct ieee80211_vif * , struct cfg80211_chan_def * ) ; int (*pre_channel_switch)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_channel_switch * ) ; int (*post_channel_switch)(struct ieee80211_hw * , struct ieee80211_vif * ) ; int (*join_ibss)(struct ieee80211_hw * , struct ieee80211_vif * ) ; void (*leave_ibss)(struct ieee80211_hw * , struct ieee80211_vif * ) ; u32 (*get_expected_throughput)(struct ieee80211_sta * ) ; int (*get_txpower)(struct ieee80211_hw * , struct ieee80211_vif * , int * ) ; int (*tdls_channel_switch)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_sta * , u8 , struct cfg80211_chan_def * , struct sk_buff * , u32 ) ; void (*tdls_cancel_channel_switch)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_sta * ) ; void (*tdls_recv_channel_switch)(struct ieee80211_hw * , struct ieee80211_vif * , struct ieee80211_tdls_ch_sw_params * ) ; void (*wake_tx_queue)(struct ieee80211_hw * , struct ieee80211_txq * ) ; }; struct b43_txstatus; enum b43_dyndbg { B43_DBG_XMITPOWER = 0, B43_DBG_DMAOVERFLOW = 1, B43_DBG_DMAVERBOSE = 2, B43_DBG_PWORK_FAST = 3, B43_DBG_PWORK_STOP = 4, B43_DBG_LO = 5, B43_DBG_FIRMWARE = 6, B43_DBG_KEYS = 7, B43_DBG_VERBOSESTATS = 8, __B43_NR_DYNDBG = 9 } ; struct b43_txstatus_log { struct b43_txstatus *log ; int end ; }; struct b43_dfs_file { struct dentry *dentry ; char *buffer ; size_t data_len ; }; struct b43_dfsentry { struct b43_wldev *dev ; struct dentry *subdir ; struct b43_dfs_file file_shm16read ; struct b43_dfs_file file_shm16write ; struct b43_dfs_file file_shm32read ; struct b43_dfs_file file_shm32write ; struct b43_dfs_file file_mmio16read ; struct b43_dfs_file file_mmio16write ; struct b43_dfs_file file_mmio32read ; struct b43_dfs_file file_mmio32write ; struct b43_dfs_file file_txstat ; struct b43_dfs_file file_txpower_g ; struct b43_dfs_file file_restart ; struct b43_dfs_file file_loctls ; struct b43_txstatus_log txstatlog ; u16 mmio16read_next ; u16 mmio32read_next ; u32 shm16read_routing_next ; u32 shm16read_addr_next ; u32 shm32read_routing_next ; u32 shm32read_addr_next ; u32 dyn_debug[9U] ; struct dentry *dyn_debug_dentries[9U] ; }; struct b43_wl; enum led_brightness { LED_OFF = 0, LED_HALF = 127, LED_FULL = 255 } ; struct led_trigger; struct led_classdev { char const *name ; enum led_brightness brightness ; enum led_brightness max_brightness ; int flags ; void (*brightness_set)(struct led_classdev * , enum led_brightness ) ; int (*brightness_set_sync)(struct led_classdev * , enum led_brightness ) ; enum led_brightness (*brightness_get)(struct led_classdev * ) ; int (*blink_set)(struct led_classdev * , unsigned long * , unsigned long * ) ; struct device *dev ; struct attribute_group const **groups ; struct list_head node ; char const *default_trigger ; unsigned long blink_delay_on ; unsigned long blink_delay_off ; struct timer_list blink_timer ; int blink_brightness ; void (*flash_resume)(struct led_classdev * ) ; struct work_struct set_brightness_work ; int delayed_set_value ; struct rw_semaphore trigger_lock ; struct led_trigger *trigger ; struct list_head trig_list ; void *trigger_data ; bool activated ; struct mutex led_access ; }; struct led_trigger { char const *name ; void (*activate)(struct led_classdev * ) ; void (*deactivate)(struct led_classdev * ) ; rwlock_t leddev_list_lock ; struct list_head led_cdevs ; struct list_head next_trig ; }; struct b43_led { struct b43_wl *wl ; struct led_classdev led_dev ; u8 index ; bool activelow ; char name[32U] ; atomic_t state ; bool hw_state ; }; struct b43_leds { struct b43_led led_tx ; struct b43_led led_rx ; struct b43_led led_radio ; struct b43_led led_assoc ; bool stop ; struct work_struct work ; }; enum b43_bus_type { B43_BUS_BCMA = 0, B43_BUS_SSB = 1 } ; union __anonunion____missing_field_name_392 { struct bcma_device *bdev ; struct ssb_device *sdev ; }; struct b43_bus_dev { enum b43_bus_type bus_type ; union __anonunion____missing_field_name_392 __annonCompField105 ; int (*bus_may_powerdown)(struct b43_bus_dev * ) ; int (*bus_powerup)(struct b43_bus_dev * , bool ) ; int (*device_is_enabled)(struct b43_bus_dev * ) ; void (*device_enable)(struct b43_bus_dev * , u32 ) ; void (*device_disable)(struct b43_bus_dev * , u32 ) ; u16 (*read16)(struct b43_bus_dev * , u16 ) ; u32 (*read32)(struct b43_bus_dev * , u16 ) ; void (*write16)(struct b43_bus_dev * , u16 , u16 ) ; void (*write32)(struct b43_bus_dev * , u16 , u32 ) ; void (*block_read)(struct b43_bus_dev * , void * , size_t , u16 , u8 ) ; void (*block_write)(struct b43_bus_dev * , void const * , size_t , u16 , u8 ) ; bool flush_writes ; struct device *dev ; struct device *dma_dev ; unsigned int irq ; u16 board_vendor ; u16 board_type ; u16 board_rev ; u16 chip_id ; u8 chip_rev ; u8 chip_pkg ; struct ssb_sprom *bus_sprom ; u16 core_id ; u8 core_rev ; }; enum b43_interference_mitigation { B43_INTERFMODE_NONE = 0, B43_INTERFMODE_NONWLAN = 1, B43_INTERFMODE_MANUALWLAN = 2, B43_INTERFMODE_AUTOWLAN = 3 } ; enum b43_txpwr_result { B43_TXPWR_RES_NEED_ADJUST = 0, B43_TXPWR_RES_DONE = 1 } ; struct b43_phy_operations { int (*allocate)(struct b43_wldev * ) ; void (*free)(struct b43_wldev * ) ; void (*prepare_structs)(struct b43_wldev * ) ; int (*prepare_hardware)(struct b43_wldev * ) ; int (*init)(struct b43_wldev * ) ; void (*exit)(struct b43_wldev * ) ; u16 (*phy_read)(struct b43_wldev * , u16 ) ; void (*phy_write)(struct b43_wldev * , u16 , u16 ) ; void (*phy_maskset)(struct b43_wldev * , u16 , u16 , u16 ) ; u16 (*radio_read)(struct b43_wldev * , u16 ) ; void (*radio_write)(struct b43_wldev * , u16 , u16 ) ; bool (*supports_hwpctl)(struct b43_wldev * ) ; void (*software_rfkill)(struct b43_wldev * , bool ) ; void (*switch_analog)(struct b43_wldev * , bool ) ; int (*switch_channel)(struct b43_wldev * , unsigned int ) ; unsigned int (*get_default_chan)(struct b43_wldev * ) ; void (*set_rx_antenna)(struct b43_wldev * , int ) ; int (*interf_mitigation)(struct b43_wldev * , enum b43_interference_mitigation ) ; enum b43_txpwr_result (*recalc_txpower)(struct b43_wldev * , bool ) ; void (*adjust_txpower)(struct b43_wldev * ) ; void (*pwork_15sec)(struct b43_wldev * ) ; void (*pwork_60sec)(struct b43_wldev * ) ; }; struct b43_phy_a; struct b43_phy_g; struct b43_phy_n; struct b43_phy_lp; struct b43_phy_ht; struct b43_phy_lcn; struct b43_phy_ac; struct __anonstruct____missing_field_name_393 { struct b43_phy_a *a ; struct b43_phy_g *g ; struct b43_phy_n *n ; struct b43_phy_lp *lp ; struct b43_phy_ht *ht ; struct b43_phy_lcn *lcn ; struct b43_phy_ac *ac ; }; struct b43_phy { struct b43_phy_operations const *ops ; struct __anonstruct____missing_field_name_393 __annonCompField106 ; bool supports_2ghz ; bool supports_5ghz ; bool gmode ; bool do_full_init ; u8 analog ; u8 type ; u8 rev ; u8 writes_counter ; u16 radio_manuf ; u16 radio_ver ; u8 radio_rev ; bool radio_on ; int desired_txpower ; bool hardware_power_control ; unsigned long next_txpwr_check_time ; struct cfg80211_chan_def *chandef ; unsigned int channel ; atomic_t txerr_cnt ; bool phy_locked ; bool radio_locked ; }; struct b43_phy_a { s8 const *tssi2dbm ; int tgt_idle_tssi ; int cur_idle_tssi ; u16 txpwr_offset ; }; struct b43_rfatt { u8 att ; bool with_padmix ; }; struct b43_rfatt_list { struct b43_rfatt const *list ; u8 len ; u8 min_val ; u8 max_val ; }; struct b43_bbatt { u8 att ; }; struct b43_bbatt_list { struct b43_bbatt const *list ; u8 len ; u8 min_val ; u8 max_val ; }; struct b43_txpower_lo_control; enum ldv_35393 { B43_OFDMTAB_DIRECTION_UNKNOWN = 0, B43_OFDMTAB_DIRECTION_READ = 1, B43_OFDMTAB_DIRECTION_WRITE = 2 } ; struct __anonstruct_radio_off_context_394 { bool valid ; u16 rfover ; u16 rfoverval ; }; struct b43_phy_g { bool aci_enable ; bool aci_wlan_automatic ; bool aci_hw_rssi ; bool radio_on ; struct __anonstruct_radio_off_context_394 radio_off_context ; u16 minlowsig[2U] ; u16 minlowsigpos[2U] ; s8 const *tssi2dbm ; bool dyn_tssi_tbl ; int tgt_idle_tssi ; int cur_idle_tssi ; u8 average_tssi ; struct b43_bbatt bbatt ; struct b43_rfatt rfatt ; u8 tx_control ; int bbatt_delta ; int rfatt_delta ; struct b43_txpower_lo_control *lo_control ; s16 max_lb_gain ; s16 trsw_rx_gain ; s16 lna_lod_gain ; s16 lna_gain ; s16 pga_gain ; int interfmode ; u32 interfstack[26U] ; s16 nrssi[2U] ; s32 nrssislope ; s8 nrssi_lt[64U] ; u16 lofcal ; u16 initval ; u16 ofdmtab_addr ; enum ldv_35393 ofdmtab_addr_direction ; }; struct b43_txpower_lo_control { struct b43_rfatt_list rfatt_list ; struct b43_bbatt_list bbatt_list ; u16 dc_lt[32U] ; struct list_head calib_list ; unsigned long pwr_vec_read_time ; unsigned long txctl_measured_time ; u8 tx_bias ; u8 tx_magn ; u64 power_vector ; }; struct b43_fw_header { u8 type ; u8 ver ; u8 __padding[2U] ; __be32 size ; }; union __anonunion_data_395 { __be16 d16 ; __be32 d32 ; }; struct b43_iv { __be16 offset_size ; union __anonunion_data_395 data ; }; struct b43_dma { struct b43_dmaring *tx_ring_AC_BK ; struct b43_dmaring *tx_ring_AC_BE ; struct b43_dmaring *tx_ring_AC_VI ; struct b43_dmaring *tx_ring_AC_VO ; struct b43_dmaring *tx_ring_mcast ; struct b43_dmaring *rx_ring ; u32 translation ; bool translation_in_low ; bool parity ; }; struct b43_pio_txqueue; struct b43_pio_rxqueue; struct b43_pio { struct b43_pio_txqueue *tx_queue_AC_BK ; struct b43_pio_txqueue *tx_queue_AC_BE ; struct b43_pio_txqueue *tx_queue_AC_VI ; struct b43_pio_txqueue *tx_queue_AC_VO ; struct b43_pio_txqueue *tx_queue_mcast ; struct b43_pio_rxqueue *rx_queue ; }; struct b43_noise_calculation { bool calculation_running ; u8 nr_samples ; s8 samples[8U][4U] ; }; struct b43_stats { u8 link_noise ; }; struct b43_key { struct ieee80211_key_conf *keyconf ; u8 algorithm ; }; struct b43_qos_params { struct ieee80211_tx_queue_params p ; }; enum b43_firmware_file_type { B43_FWTYPE_PROPRIETARY = 0, B43_FWTYPE_OPENSOURCE = 1, B43_NR_FWTYPES = 2 } ; struct b43_request_fw_context { struct b43_wldev *dev ; struct firmware const *blob ; enum b43_firmware_file_type req_type ; char errors[2U][128U] ; char fwname[64U] ; int fatal_failure ; }; struct b43_firmware_file { char const *filename ; struct firmware const *data ; enum b43_firmware_file_type type ; }; enum b43_firmware_hdr_format { B43_FW_HDR_598 = 0, B43_FW_HDR_410 = 1, B43_FW_HDR_351 = 2 } ; struct b43_firmware { struct b43_firmware_file ucode ; struct b43_firmware_file pcm ; struct b43_firmware_file initvals ; struct b43_firmware_file initvals_band ; u16 rev ; u16 patch ; enum b43_firmware_hdr_format hdr_format ; bool opensource ; bool pcm_request_failed ; }; union __anonunion____missing_field_name_396 { struct b43_dma dma ; struct b43_pio pio ; }; struct b43_wldev { struct b43_bus_dev *dev ; struct b43_wl *wl ; struct completion fw_load_complete ; atomic_t __init_status ; bool bad_frames_preempt ; bool dfq_valid ; bool radio_hw_enable ; bool qos_enabled ; bool hwcrypto_enabled ; bool use_pio ; struct b43_phy phy ; union __anonunion____missing_field_name_396 __annonCompField107 ; bool __using_pio_transfers ; struct b43_stats stats ; u32 irq_reason ; u32 dma_reason[6U] ; u32 irq_mask ; struct b43_noise_calculation noisecalc ; int mac_suspended ; struct delayed_work periodic_work ; unsigned int periodic_state ; struct work_struct restart_work ; u16 ktp ; struct b43_key key[58U] ; struct b43_firmware fw ; struct list_head list ; struct b43_dfsentry *dfsentry ; unsigned int irq_count ; unsigned int irq_bit_count[32U] ; unsigned int tx_count ; unsigned int rx_count ; }; struct b43_wl { struct b43_wldev *current_dev ; struct ieee80211_hw *hw ; struct mutex mutex ; spinlock_t hardirq_lock ; bool hw_registred ; struct ieee80211_vif *vif ; u8 mac_addr[6U] ; u8 bssid[6U] ; int if_type ; bool operating ; unsigned int filter_flags ; struct ieee80211_low_level_stats ieee_stats ; struct hwrng rng ; bool rng_initialized ; char rng_name[31U] ; bool radiotap_enabled ; bool radio_enabled ; struct sk_buff *current_beacon ; bool beacon0_uploaded ; bool beacon1_uploaded ; bool beacon_templates_virgin ; struct work_struct beacon_update_trigger ; spinlock_t beacon_lock ; struct b43_qos_params qos_params[4U] ; struct work_struct txpower_adjust_work ; struct work_struct tx_work ; struct sk_buff_head tx_queue[4U] ; bool tx_queue_stopped[4U] ; struct work_struct firmware_load ; struct b43_leds leds ; u8 pio_scratchspace[118U] ; u8 pio_tailspace[4U] ; }; struct b43_ppr_rates { u8 cck[4U] ; u8 ofdm[8U] ; u8 ofdm_20_cdd[8U] ; u8 mcs_20[8U] ; u8 mcs_20_cdd[8U] ; u8 mcs_20_stbc[8U] ; u8 mcs_20_sdm[8U] ; }; union __anonunion____missing_field_name_397 { u8 __all_rates[52U] ; struct b43_ppr_rates rates ; }; struct b43_ppr { union __anonunion____missing_field_name_397 __annonCompField108 ; }; enum b43_nphy_spur_avoid { B43_SPUR_AVOID_DISABLE = 0, B43_SPUR_AVOID_AUTO = 1, B43_SPUR_AVOID_FORCE = 2 } ; struct b43_chanspec { u16 center_freq ; enum nl80211_channel_type channel_type ; }; struct b43_phy_n_iq_comp { s16 a0 ; s16 b0 ; s16 a1 ; s16 b1 ; }; struct b43_phy_n_rssical_cache { u16 rssical_radio_regs_2G[2U] ; u16 rssical_phy_regs_2G[12U] ; u16 rssical_radio_regs_5G[2U] ; u16 rssical_phy_regs_5G[12U] ; }; struct b43_phy_n_cal_cache { u16 txcal_radio_regs_2G[8U] ; u16 txcal_coeffs_2G[8U] ; struct b43_phy_n_iq_comp rxcal_coeffs_2G ; u16 txcal_radio_regs_5G[8U] ; u16 txcal_coeffs_5G[8U] ; struct b43_phy_n_iq_comp rxcal_coeffs_5G ; }; struct b43_phy_n_txpwrindex { s8 index ; s8 index_internal ; s8 index_internal_save ; u16 AfectrlOverride ; u16 AfeCtrlDacGain ; u16 rad_gain ; u8 bbmult ; u16 iqcomp_a ; u16 iqcomp_b ; u16 locomp ; }; struct b43_phy_n_pwr_ctl_info { u8 idle_tssi_2g ; u8 idle_tssi_5g ; }; struct b43_phy_n { u8 antsel_type ; u8 cal_orig_pwr_idx[2U] ; u8 measure_hold ; u8 phyrxchain ; u8 hw_phyrxchain ; u8 hw_phytxchain ; u8 perical ; u32 deaf_count ; u32 rxcalparams ; bool hang_avoid ; bool mute ; u16 papd_epsilon_offset[2U] ; s32 preamble_override ; u32 bb_mult_save ; bool gain_boost ; bool elna_gain_config ; bool band5g_pwrgain ; bool use_int_tx_iq_lo_cal ; bool lpf_bw_overrode_for_sample_play ; u8 mphase_cal_phase_id ; u16 mphase_txcal_cmdidx ; u16 mphase_txcal_numcmds ; u16 mphase_txcal_bestcoeffs[11U] ; bool txpwrctrl ; bool pwg_gain_5ghz ; u8 tx_pwr_idx[2U] ; s8 tx_power_offset[101U] ; u16 adj_pwr_tbl[84U] ; u16 txcal_bbmult ; u16 txiqlocal_bestc[11U] ; bool txiqlocal_coeffsvalid ; struct b43_phy_n_txpwrindex txpwrindex[2U] ; struct b43_phy_n_pwr_ctl_info pwr_ctl_info[2U] ; struct b43_chanspec txiqlocal_chanspec ; struct b43_ppr tx_pwr_max_ppr ; u16 tx_pwr_last_recalc_freq ; int tx_pwr_last_recalc_limit ; u8 txrx_chain ; u16 tx_rx_cal_phy_saveregs[11U] ; u16 tx_rx_cal_radio_saveregs[22U] ; u16 rfctrl_intc1_save ; u16 rfctrl_intc2_save ; u16 classifier_state ; u16 clip_state[2U] ; enum b43_nphy_spur_avoid spur_avoid ; bool aband_spurwar_en ; bool gband_spurwar_en ; bool ipa2g_on ; struct b43_chanspec iqcal_chanspec_2G ; struct b43_chanspec rssical_chanspec_2G ; bool ipa5g_on ; struct b43_chanspec iqcal_chanspec_5G ; struct b43_chanspec rssical_chanspec_5G ; struct b43_phy_n_rssical_cache rssical_cache ; struct b43_phy_n_cal_cache cal_cache ; bool crsminpwr_adjusted ; bool noisevars_adjusted ; }; struct b43_dmadesc32 { __le32 control ; __le32 address ; }; struct b43_dmadesc64 { __le32 control0 ; __le32 control1 ; __le32 address_low ; __le32 address_high ; }; union __anonunion____missing_field_name_398 { struct b43_dmadesc32 dma32 ; struct b43_dmadesc64 dma64 ; }; struct b43_dmadesc_generic { union __anonunion____missing_field_name_398 __annonCompField109 ; }; struct b43_dmadesc_meta { struct sk_buff *skb ; dma_addr_t dmaaddr ; bool is_last_fragment ; }; struct b43_dma_ops { struct b43_dmadesc_generic *(*idx2desc)(struct b43_dmaring * , int , struct b43_dmadesc_meta ** ) ; void (*fill_descriptor)(struct b43_dmaring * , struct b43_dmadesc_generic * , dma_addr_t , u16 , int , int , int ) ; void (*poke_tx)(struct b43_dmaring * , int ) ; void (*tx_suspend)(struct b43_dmaring * ) ; void (*tx_resume)(struct b43_dmaring * ) ; int (*get_current_rxslot)(struct b43_dmaring * ) ; void (*set_current_rxslot)(struct b43_dmaring * , int ) ; }; enum b43_dmatype { B43_DMA_30BIT = 30, B43_DMA_32BIT = 32, B43_DMA_64BIT = 64 } ; struct b43_dmaring { struct b43_dma_ops const *ops ; void *descbase ; struct b43_dmadesc_meta *meta ; u8 *txhdr_cache ; dma_addr_t dmabase ; int nr_slots ; int used_slots ; int current_slot ; u32 frameoffset ; u16 rx_buffersize ; u16 mmio_base ; int index ; bool tx ; enum b43_dmatype type ; bool stopped ; u8 queue_prio ; struct b43_wldev *dev ; int max_used_slots ; unsigned long last_injected_overflow ; u64 nr_succeed_tx_packets ; u64 nr_failed_tx_packets ; u64 nr_total_packet_tries ; }; struct b43_pio_txpacket { struct b43_pio_txqueue *queue ; struct sk_buff *skb ; u8 index ; struct list_head list ; }; struct b43_pio_txqueue { struct b43_wldev *dev ; u16 mmio_base ; u16 buffer_size ; u16 buffer_used ; u16 free_packet_slots ; bool stopped ; u8 index ; u8 queue_prio ; struct b43_pio_txpacket packets[32U] ; struct list_head packets_list ; u8 rev ; }; struct b43_pio_rxqueue { struct b43_wldev *dev ; u16 mmio_base ; u8 rev ; }; union __anonunion____missing_field_name_399 { __le32 data ; __u8 raw[4U] ; }; struct b43_plcp_hdr4 { union __anonunion____missing_field_name_399 __annonCompField110 ; }; struct b43_txstatus { u16 cookie ; u16 seq ; u8 phy_stat ; u8 frame_count ; u8 rts_count ; u8 supp_reason ; u8 pm_indicated ; u8 intermediate ; u8 for_ampdu ; u8 acked ; }; struct mmc_card; typedef void sdio_irq_handler_t(struct sdio_func * ); struct sdio_func_tuple { struct sdio_func_tuple *next ; unsigned char code ; unsigned char size ; unsigned char data[0U] ; }; struct sdio_func { struct mmc_card *card ; struct device dev ; sdio_irq_handler_t *irq_handler ; unsigned int num ; unsigned char class ; unsigned short vendor ; unsigned short device ; unsigned int max_blksize ; unsigned int cur_blksize ; unsigned int enable_timeout ; unsigned int state ; u8 tmpbuf[4U] ; unsigned int num_info ; char const **info ; struct sdio_func_tuple *tuples ; }; typedef bool ldv_func_ret_type; typedef bool ldv_func_ret_type___0; typedef bool ldv_func_ret_type___1; typedef bool ldv_func_ret_type___2; typedef int ldv_func_ret_type___3; typedef bool ldv_func_ret_type___4; typedef bool ldv_func_ret_type___5; typedef int ldv_func_ret_type___6; typedef bool ldv_func_ret_type___7; typedef bool ldv_func_ret_type___8; typedef struct ieee80211_hw *ldv_func_ret_type___9; typedef bool ldv_func_ret_type___10; typedef bool ldv_func_ret_type___11; typedef bool ldv_func_ret_type___12; typedef bool ldv_func_ret_type___13; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; struct init2050_saved_values { u16 reg_3EC ; u16 reg_3E6 ; u16 reg_3F4 ; u16 radio_43 ; u16 radio_51 ; u16 radio_52 ; u16 phy_pgactl ; u16 phy_cck_5A ; u16 phy_cck_59 ; u16 phy_cck_58 ; u16 phy_cck_30 ; u16 phy_rfover ; u16 phy_rfoverval ; u16 phy_analogover ; u16 phy_analogoverval ; u16 phy_crs0 ; u16 phy_classctl ; u16 phy_lo_mask ; u16 phy_lo_ctl ; u16 phy_syncctl ; }; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; struct b43_loctl { s8 i ; s8 q ; }; struct b43_lo_calib { struct b43_bbatt bbatt ; struct b43_rfatt rfatt ; struct b43_loctl ctl ; unsigned long calib_time ; struct list_head list ; }; struct lo_g_saved_values { u8 old_channel ; u16 reg_3F4 ; u16 reg_3E2 ; u16 phy_lo_mask ; u16 phy_extg_01 ; u16 phy_dacctl_hwpctl ; u16 phy_dacctl ; u16 phy_cck_14 ; u16 phy_hpwr_tssictl ; u16 phy_analogover ; u16 phy_analogoverval ; u16 phy_rfover ; u16 phy_rfoverval ; u16 phy_classctl ; u16 phy_cck_3E ; u16 phy_crs0 ; u16 phy_pgactl ; u16 phy_cck_2A ; u16 phy_syncctl ; u16 phy_cck_30 ; u16 phy_cck_06 ; u16 radio_43 ; u16 radio_7A ; u16 radio_52 ; }; struct b43_lo_g_statemachine { int current_state ; int nr_measured ; int state_val_multiplier ; u16 lowest_feedth ; struct b43_loctl min_loctl ; }; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; struct nphy_txiqcal_ladder { u8 percent ; u8 g_env ; }; struct nphy_rf_control_override_rev2 { u8 addr0 ; u8 addr1 ; u16 bmask ; u8 shift ; }; struct nphy_rf_control_override_rev3 { u16 val_mask ; u8 val_shift ; u8 en_addr0 ; u8 val_addr0 ; u8 en_addr1 ; u8 val_addr1 ; }; struct nphy_rf_control_override_rev7 { u16 field ; u16 val_addr_core0 ; u16 val_addr_core1 ; u16 val_mask ; u8 val_shift ; }; struct nphy_gain_ctl_workaround_entry { s8 lna1_gain[4U] ; s8 lna2_gain[4U] ; u8 gain_db[10U] ; u8 gain_bits[10U] ; u16 init_gain ; u16 rfseq_init[4U] ; u16 cliphi_gain ; u16 clipmd_gain ; u16 cliplo_gain ; u16 crsmin ; u16 crsminl ; u16 crsminu ; u16 nbclip ; u16 wlclip ; }; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; struct b43_phy_n_sfo_cfg { u16 phy_bw1a ; u16 phy_bw2 ; u16 phy_bw3 ; u16 phy_bw4 ; u16 phy_bw5 ; u16 phy_bw6 ; }; struct b43_nphy_channeltab_entry_rev2 { u8 channel ; u16 freq ; u16 unk2 ; u8 radio_pll_ref ; u8 radio_rf_pllmod0 ; u8 radio_rf_pllmod1 ; u8 radio_vco_captail ; u8 radio_vco_cal1 ; u8 radio_vco_cal2 ; u8 radio_pll_lfc1 ; u8 radio_pll_lfr1 ; u8 radio_pll_lfc2 ; u8 radio_lgbuf_cenbuf ; u8 radio_lgen_tune1 ; u8 radio_lgen_tune2 ; u8 radio_c1_lgbuf_atune ; u8 radio_c1_lgbuf_gtune ; u8 radio_c1_rx_rfr1 ; u8 radio_c1_tx_pgapadtn ; u8 radio_c1_tx_mxbgtrim ; u8 radio_c2_lgbuf_atune ; u8 radio_c2_lgbuf_gtune ; u8 radio_c2_rx_rfr1 ; u8 radio_c2_tx_pgapadtn ; u8 radio_c2_tx_mxbgtrim ; struct b43_phy_n_sfo_cfg phy_regs ; }; struct b2055_inittab_entry { u16 ghz5 ; u16 ghz2 ; u8 flags ; }; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; struct b43_nphy_channeltab_entry_rev3 { u16 freq ; u8 radio_syn_pll_vcocal1 ; u8 radio_syn_pll_vcocal2 ; u8 radio_syn_pll_refdiv ; u8 radio_syn_pll_mmd2 ; u8 radio_syn_pll_mmd1 ; u8 radio_syn_pll_loopfilter1 ; u8 radio_syn_pll_loopfilter2 ; u8 radio_syn_pll_loopfilter3 ; u8 radio_syn_pll_loopfilter4 ; u8 radio_syn_pll_loopfilter5 ; u8 radio_syn_reserved_addr27 ; u8 radio_syn_reserved_addr28 ; u8 radio_syn_reserved_addr29 ; u8 radio_syn_logen_vcobuf1 ; u8 radio_syn_logen_mixer2 ; u8 radio_syn_logen_buf3 ; u8 radio_syn_logen_buf4 ; u8 radio_rx0_lnaa_tune ; u8 radio_rx0_lnag_tune ; u8 radio_tx0_intpaa_boost_tune ; u8 radio_tx0_intpag_boost_tune ; u8 radio_tx0_pada_boost_tune ; u8 radio_tx0_padg_boost_tune ; u8 radio_tx0_pgaa_boost_tune ; u8 radio_tx0_pgag_boost_tune ; u8 radio_tx0_mixa_boost_tune ; u8 radio_tx0_mixg_boost_tune ; u8 radio_rx1_lnaa_tune ; u8 radio_rx1_lnag_tune ; u8 radio_tx1_intpaa_boost_tune ; u8 radio_tx1_intpag_boost_tune ; u8 radio_tx1_pada_boost_tune ; u8 radio_tx1_padg_boost_tune ; u8 radio_tx1_pgaa_boost_tune ; u8 radio_tx1_pgag_boost_tune ; u8 radio_tx1_mixa_boost_tune ; u8 radio_tx1_mixg_boost_tune ; struct b43_phy_n_sfo_cfg phy_regs ; }; struct b2056_inittab_entry { u16 ghz5 ; u16 ghz2 ; u8 flags ; }; struct b2056_inittabs_pts { struct b2056_inittab_entry const *syn ; unsigned int syn_length ; struct b2056_inittab_entry const *tx ; unsigned int tx_length ; struct b2056_inittab_entry const *rx ; unsigned int rx_length ; }; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; struct b43_nphy_chantabent_rev7 { u16 freq ; u8 radio_vcocal_countval0 ; u8 radio_vcocal_countval1 ; u8 radio_rfpll_refmaster_sparextalsize ; u8 radio_rfpll_loopfilter_r1 ; u8 radio_rfpll_loopfilter_c2 ; u8 radio_rfpll_loopfilter_c1 ; u8 radio_cp_kpd_idac ; u8 radio_rfpll_mmd0 ; u8 radio_rfpll_mmd1 ; u8 radio_vcobuf_tune ; u8 radio_logen_mx2g_tune ; u8 radio_logen_mx5g_tune ; u8 radio_logen_indbuf2g_tune ; u8 radio_logen_indbuf5g_tune ; u8 radio_txmix2g_tune_boost_pu_core0 ; u8 radio_pad2g_tune_pus_core0 ; u8 radio_pga_boost_tune_core0 ; u8 radio_txmix5g_boost_tune_core0 ; u8 radio_pad5g_tune_misc_pus_core0 ; u8 radio_lna2g_tune_core0 ; u8 radio_lna5g_tune_core0 ; u8 radio_txmix2g_tune_boost_pu_core1 ; u8 radio_pad2g_tune_pus_core1 ; u8 radio_pga_boost_tune_core1 ; u8 radio_txmix5g_boost_tune_core1 ; u8 radio_pad5g_tune_misc_pus_core1 ; u8 radio_lna2g_tune_core1 ; u8 radio_lna5g_tune_core1 ; struct b43_phy_n_sfo_cfg phy_regs ; }; struct b43_nphy_chantabent_rev7_2g { u16 freq ; u8 radio_vcocal_countval0 ; u8 radio_vcocal_countval1 ; u8 radio_rfpll_refmaster_sparextalsize ; u8 radio_rfpll_loopfilter_r1 ; u8 radio_rfpll_loopfilter_c2 ; u8 radio_rfpll_loopfilter_c1 ; u8 radio_cp_kpd_idac ; u8 radio_rfpll_mmd0 ; u8 radio_rfpll_mmd1 ; u8 radio_vcobuf_tune ; u8 radio_logen_mx2g_tune ; u8 radio_logen_indbuf2g_tune ; u8 radio_txmix2g_tune_boost_pu_core0 ; u8 radio_pad2g_tune_pus_core0 ; u8 radio_lna2g_tune_core0 ; u8 radio_txmix2g_tune_boost_pu_core1 ; u8 radio_pad2g_tune_pus_core1 ; u8 radio_lna2g_tune_core1 ; struct b43_phy_n_sfo_cfg phy_regs ; }; enum hrtimer_restart; struct b43_c32 { s32 i ; s32 q ; }; enum b43_lpphy_txpctl_mode { B43_LPPHY_TXPCTL_UNKNOWN = 0, B43_LPPHY_TXPCTL_OFF = 1, B43_LPPHY_TXPCTL_SW = 2, B43_LPPHY_TXPCTL_HW = 3 } ; struct b43_phy_lp { enum b43_lpphy_txpctl_mode txpctl_mode ; u8 tx_isolation_med_band ; u8 tx_isolation_low_band ; u8 tx_isolation_hi_band ; u16 max_tx_pwr_med_band ; u16 max_tx_pwr_low_band ; u16 max_tx_pwr_hi_band ; u16 tx_max_rate[15U] ; u16 tx_max_ratel[15U] ; u16 tx_max_rateh[15U] ; s16 txpa[3U] ; s16 txpal[3U] ; s16 txpah[3U] ; u8 rx_pwr_offset ; u16 tssi_tx_count ; u16 tssi_idx ; u16 tssi_npt ; u16 tgt_tx_freq ; s8 tx_pwr_idx_over ; u8 rssi_vf ; u8 rssi_vc ; u8 rssi_gs ; u8 rc_cap ; u8 bx_arch ; u8 full_calib_chan ; bool tx_iqloc_best_coeffs_valid ; u8 tx_iqloc_best_coeffs[11U] ; u16 dig_flt_state[9U] ; bool crs_usr_disable ; bool crs_sys_disable ; unsigned int pdiv ; u8 channel ; int antenna ; int tx_tone_freq ; }; struct b43_phy_ht { u16 rf_ctl_int_save[3U] ; bool tx_pwr_ctl ; u8 tx_pwr_idx[3U] ; s32 bb_mult_save[3U] ; u8 idle_tssi[3U] ; }; struct b43_phy_lcn { bool hw_pwr_ctl ; bool hw_pwr_ctl_capable ; u8 tx_pwr_curr_idx ; }; struct b43_phy_ac { }; enum irqchip_irq_state; enum irqchip_irq_state; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; enum b43_band { B43_BAND_2G = 0, B43_BAND_5G_LO = 1, B43_BAND_5G_MI = 2, B43_BAND_5G_HI = 3 } ; struct nphy_txgains { u16 tx_lpf[2U] ; u16 txgm[2U] ; u16 pga[2U] ; u16 pad[2U] ; u16 ipa[2U] ; }; struct nphy_iqcal_params { u16 tx_lpf ; u16 txgm ; u16 pga ; u16 pad ; u16 ipa ; u16 cal_gain ; u16 ncorr[5U] ; }; struct nphy_iq_est { s32 iq0_prod ; u32 i0_pwr ; u32 q0_pwr ; s32 iq1_prod ; u32 i1_pwr ; u32 q1_pwr ; }; enum b43_nphy_rf_sequence { B43_RFSEQ_RX2TX = 0, B43_RFSEQ_TX2RX = 1, B43_RFSEQ_RESET2RX = 2, B43_RFSEQ_UPDATE_GAINH = 3, B43_RFSEQ_UPDATE_GAINL = 4, B43_RFSEQ_UPDATE_GAINU = 5 } ; enum n_rf_ctl_over_cmd { N_RF_CTL_OVER_CMD_RXRF_PU = 0, N_RF_CTL_OVER_CMD_RX_PU = 1, N_RF_CTL_OVER_CMD_TX_PU = 2, N_RF_CTL_OVER_CMD_RX_GAIN = 3, N_RF_CTL_OVER_CMD_TX_GAIN = 4 } ; enum n_intc_override { N_INTC_OVERRIDE_OFF = 0, N_INTC_OVERRIDE_TRSW = 1, N_INTC_OVERRIDE_PA = 2, N_INTC_OVERRIDE_EXT_LNA_PU = 3, N_INTC_OVERRIDE_EXT_LNA_GAIN = 4 } ; enum n_rssi_type { N_RSSI_W1 = 0, N_RSSI_W2 = 1, N_RSSI_NB = 2, N_RSSI_IQ = 3, N_RSSI_TSSI_2G = 4, N_RSSI_TSSI_5G = 5, N_RSSI_TBD = 6 } ; enum n_rail_type { N_RAIL_I = 0, N_RAIL_Q = 1 } ; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; enum ssb_pmu_ldo_volt_id { LDO_PAREF = 0, LDO_VOLT1 = 1, LDO_VOLT2 = 2, LDO_VOLT3 = 3 } ; struct b2062_freqdata { u16 freq ; u8 data[6U] ; }; struct lpphy_stx_table_entry { u16 phy_offset ; u16 phy_shift ; u16 rf_addr ; u16 rf_shift ; u16 mask ; }; struct lpphy_iq_est { u32 iq_prod ; u32 i_pwr ; u32 q_pwr ; }; struct lpphy_tx_gains { u16 gm ; u16 pga ; u16 pad ; u16 dac ; }; struct lpphy_rx_iq_comp { u8 chan ; s8 c1 ; s8 c0 ; }; struct b206x_channel { u8 channel ; u16 freq ; u8 data[12U] ; }; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; struct lpphy_tx_gain_table_entry { u8 gm ; u8 pga ; u8 pad ; u8 dac ; u8 bb_mult ; }; struct b206x_init_tab_entry { u16 offset ; u16 value_a ; u16 value_g ; u8 flags ; }; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; struct b43_phy_ht_channeltab_e_phy { u16 bw1 ; u16 bw2 ; u16 bw3 ; u16 bw4 ; u16 bw5 ; u16 bw6 ; }; struct b43_phy_ht_channeltab_e_radio2059 { u16 freq ; u8 radio_syn16 ; u8 radio_syn17 ; u8 radio_syn22 ; u8 radio_syn25 ; u8 radio_syn27 ; u8 radio_syn28 ; u8 radio_syn29 ; u8 radio_syn2c ; u8 radio_syn2d ; u8 radio_syn37 ; u8 radio_syn41 ; u8 radio_syn43 ; u8 radio_syn47 ; u8 radio_rxtx4a ; u8 radio_rxtx58 ; u8 radio_rxtx5a ; u8 radio_rxtx6a ; u8 radio_rxtx6d ; u8 radio_rxtx6e ; u8 radio_rxtx92 ; u8 radio_rxtx98 ; struct b43_phy_ht_channeltab_e_phy phy_regs ; }; enum ht_rssi_type { HT_RSSI_W1 = 0, HT_RSSI_W2 = 1, HT_RSSI_NB = 2, HT_RSSI_IQ = 3, HT_RSSI_TSSI_2G = 4, HT_RSSI_TSSI_5G = 5, HT_RSSI_TBD = 6 } ; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; struct __ssb_dev_wrapper { struct device dev ; struct ssb_device *sdev ; }; typedef signed char __s8; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; struct ieee80211_hdr { __le16 frame_control ; __le16 duration_id ; u8 addr1[6U] ; u8 addr2[6U] ; u8 addr3[6U] ; __le16 seq_ctrl ; u8 addr4[6U] ; }; struct ieee80211_rts { __le16 frame_control ; __le16 duration ; u8 ra[6U] ; u8 ta[6U] ; }; struct ieee80211_cts { __le16 frame_control ; __le16 duration ; u8 ra[6U] ; }; struct ieee80211_rx_status; struct ieee80211_rx_status { u64 mactime ; u32 device_timestamp ; u32 ampdu_reference ; u32 flag ; u16 freq ; u8 vht_flag ; u8 rate_idx ; u8 vht_nss ; u8 rx_flags ; u8 band ; u8 antenna ; s8 signal ; u8 chains ; s8 chain_signal[4U] ; u8 ampdu_delimiter_crc ; }; union __anonunion____missing_field_name_394 { __le32 data ; __u8 raw[6U] ; }; struct b43_plcp_hdr6 { union __anonunion____missing_field_name_394 __annonCompField109 ; }; struct __anonstruct_format_598_396 { __le16 mimo_antenna ; __le16 preload_size ; u8 __p4dding53[2U] ; __le16 cookie ; __le16 tx_status ; __le16 max_n_mpdus ; __le16 max_a_bytes_mrt ; __le16 max_a_bytes_fbr ; __le16 min_m_bytes ; struct b43_plcp_hdr6 rts_plcp ; __u8 rts_frame[16U] ; u8 __p4dding62[2U] ; struct b43_plcp_hdr6 plcp ; }; struct __anonstruct_format_410_397 { __le16 mimo_antenna ; __le16 preload_size ; u8 __p4dding70[2U] ; __le16 cookie ; __le16 tx_status ; struct b43_plcp_hdr6 rts_plcp ; __u8 rts_frame[16U] ; u8 __p4dding75[2U] ; struct b43_plcp_hdr6 plcp ; }; struct __anonstruct_format_351_398 { u8 __p4dding81[2U] ; __le16 cookie ; __le16 tx_status ; struct b43_plcp_hdr6 rts_plcp ; __u8 rts_frame[16U] ; u8 __p4dding86[2U] ; struct b43_plcp_hdr6 plcp ; }; union __anonunion____missing_field_name_395 { struct __anonstruct_format_598_396 format_598 ; struct __anonstruct_format_410_397 format_410 ; struct __anonstruct_format_351_398 format_351 ; }; struct b43_txhdr { __le32 mac_ctl ; __le16 mac_frame_ctl ; __le16 tx_fes_time_norm ; __le16 phy_ctl ; __le16 phy_ctl1 ; __le16 phy_ctl1_fb ; __le16 phy_ctl1_rts ; __le16 phy_ctl1_rts_fb ; __u8 phy_rate ; __u8 phy_rate_rts ; __u8 extra_ft ; __u8 chan_radio_code ; __u8 iv[16U] ; __u8 tx_receiver[6U] ; __le16 tx_fes_time_fb ; struct b43_plcp_hdr6 rts_plcp_fb ; __le16 rts_dur_fb ; struct b43_plcp_hdr6 plcp_fb ; __le16 dur_fb ; __le16 mimo_modelen ; __le16 mimo_ratelen_fb ; __le32 timeout ; union __anonunion____missing_field_name_395 __annonCompField110 ; }; struct b43_tx_legacy_rate_phy_ctl_entry { u8 bitrate ; u16 coding_rate ; u16 modulation ; }; struct __anonstruct____missing_field_name_400 { __u8 jssi ; __u8 sig_qual ; }; struct __anonstruct____missing_field_name_401 { __s8 power0 ; __s8 power1 ; }; union __anonunion____missing_field_name_399___0 { struct __anonstruct____missing_field_name_400 __annonCompField111 ; struct __anonstruct____missing_field_name_401 __annonCompField112 ; }; struct __anonstruct____missing_field_name_403 { u8 __p4dding258[1U] ; __s8 phy_ht_power0 ; }; struct __anonstruct____missing_field_name_404 { __s8 power2 ; u8 __p4dding265[1U] ; }; union __anonunion____missing_field_name_402 { struct __anonstruct____missing_field_name_403 __annonCompField114 ; struct __anonstruct____missing_field_name_404 __annonCompField115 ; __le16 phy_status2 ; }; struct __anonstruct____missing_field_name_406 { __s8 phy_ht_power1 ; __s8 phy_ht_power2 ; }; union __anonunion____missing_field_name_405 { struct __anonstruct____missing_field_name_406 __annonCompField117 ; __le16 phy_status3 ; }; struct __anonstruct_format_598_408 { __le16 phy_status4 ; __le16 phy_status5 ; __le32 mac_status ; __le16 mac_time ; __le16 channel ; }; struct __anonstruct_format_351_409 { __le32 mac_status ; __le16 mac_time ; __le16 channel ; }; union __anonunion____missing_field_name_407 { struct __anonstruct_format_598_408 format_598 ; struct __anonstruct_format_351_409 format_351 ; }; struct b43_rxhdr_fw4 { __le16 frame_len ; u8 __p4dding240[2U] ; __le16 phy_status0 ; union __anonunion____missing_field_name_399___0 __annonCompField113 ; union __anonunion____missing_field_name_402 __annonCompField116 ; union __anonunion____missing_field_name_405 __annonCompField118 ; union __anonunion____missing_field_name_407 __annonCompField119 ; }; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; enum b43_addrtype { B43_DMA_ADDR_LOW = 0, B43_DMA_ADDR_HIGH = 1, B43_DMA_ADDR_EXT = 2 } ; struct b43_private_tx_info { void *bouncebuffer ; }; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; enum hrtimer_restart; enum b43_band; enum b43_band; enum irqchip_irq_state; enum irqchip_irq_state; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; enum b43_led_behaviour { B43_LED_OFF = 0, B43_LED_ON = 1, B43_LED_ACTIVITY = 2, B43_LED_RADIO_ALL = 3, B43_LED_RADIO_A = 4, B43_LED_RADIO_B = 5, B43_LED_MODE_BG = 6, B43_LED_TRANSFER = 7, B43_LED_APTRANSFER = 8, B43_LED_WEIRD = 9, B43_LED_ASSOC = 10, B43_LED_INACTIVE = 11 } ; typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; enum hrtimer_restart; struct pcmcia_device_id { __u16 match_flags ; __u16 manf_id ; __u16 card_id ; __u8 func_id ; __u8 function ; __u8 device_no ; __u32 prod_id_hash[4U] ; char const *prod_id[4U] ; kernel_ulong_t driver_info ; char *cisfile ; }; enum irqchip_irq_state; enum irqchip_irq_state; struct socket_state_t { u_int flags ; u_int csc_mask ; u_char Vcc ; u_char Vpp ; u_char io_irq ; }; typedef struct socket_state_t socket_state_t; struct pccard_io_map { u_char map ; u_char flags ; u_short speed ; phys_addr_t start ; phys_addr_t stop ; }; struct pccard_mem_map { u_char map ; u_char flags ; u_short speed ; phys_addr_t static_start ; u_int card_start ; struct resource *res ; }; typedef struct pccard_mem_map pccard_mem_map; struct io_window_t { u_int InUse ; u_int Config ; struct resource *res ; }; typedef struct io_window_t io_window_t; struct pcmcia_socket; struct pccard_resource_ops; struct config_t; struct pcmcia_callback; struct pccard_operations { int (*init)(struct pcmcia_socket * ) ; int (*suspend)(struct pcmcia_socket * ) ; int (*get_status)(struct pcmcia_socket * , u_int * ) ; int (*set_socket)(struct pcmcia_socket * , socket_state_t * ) ; int (*set_io_map)(struct pcmcia_socket * , struct pccard_io_map * ) ; int (*set_mem_map)(struct pcmcia_socket * , struct pccard_mem_map * ) ; }; struct pcmcia_socket { struct module *owner ; socket_state_t socket ; u_int state ; u_int suspended_state ; u_short functions ; u_short lock_count ; pccard_mem_map cis_mem ; void *cis_virt ; io_window_t io[2U] ; pccard_mem_map win[4U] ; struct list_head cis_cache ; size_t fake_cis_len ; u8 *fake_cis ; struct list_head socket_list ; struct completion socket_released ; unsigned int sock ; u_int features ; u_int irq_mask ; u_int map_size ; u_int io_offset ; u_int pci_irq ; struct pci_dev *cb_dev ; u8 resource_setup_done ; struct pccard_operations *ops ; struct pccard_resource_ops *resource_ops ; void *resource_data ; void (*zoom_video)(struct pcmcia_socket * , int ) ; int (*power_hook)(struct pcmcia_socket * , int ) ; void (*tune_bridge)(struct pcmcia_socket * , struct pci_bus * ) ; struct task_struct *thread ; struct completion thread_done ; unsigned int thread_events ; unsigned int sysfs_events ; struct mutex skt_mutex ; struct mutex ops_mutex ; spinlock_t thread_lock ; struct pcmcia_callback *callback ; struct list_head devices_list ; u8 device_count ; u8 pcmcia_pfc ; atomic_t present ; unsigned int pcmcia_irq ; struct device dev ; void *driver_data ; int resume_status ; }; struct pcmcia_dynids { struct mutex lock ; struct list_head list ; }; struct pcmcia_driver { char const *name ; int (*probe)(struct pcmcia_device * ) ; void (*remove)(struct pcmcia_device * ) ; int (*suspend)(struct pcmcia_device * ) ; int (*resume)(struct pcmcia_device * ) ; struct module *owner ; struct pcmcia_device_id const *id_table ; struct device_driver drv ; struct pcmcia_dynids dynids ; }; struct pcmcia_device { struct pcmcia_socket *socket ; char *devname ; u8 device_no ; u8 func ; struct config_t *function_config ; struct list_head socket_device_list ; unsigned int irq ; struct resource *resource[6U] ; resource_size_t card_addr ; unsigned int vpp ; unsigned int config_flags ; unsigned int config_base ; unsigned int config_index ; unsigned int config_regs ; unsigned int io_lines ; unsigned char suspended : 1 ; unsigned char _irq : 1 ; unsigned char _io : 1 ; unsigned char _win : 4 ; unsigned char _locked : 1 ; unsigned char allow_func_id_match : 1 ; unsigned char has_manf_id : 1 ; unsigned char has_card_id : 1 ; unsigned char has_func_id : 1 ; unsigned char reserved : 4 ; u8 func_id ; u16 manf_id ; u16 card_id ; char *prod_id[4U] ; u64 dma_mask ; struct device dev ; void *priv ; unsigned int open ; }; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; struct mmc_host; struct sdio_device_id { __u8 class ; __u16 vendor ; __u16 device ; kernel_ulong_t driver_data ; }; struct mmc_cid { unsigned int manfid ; char prod_name[8U] ; unsigned char prv ; unsigned int serial ; unsigned short oemid ; unsigned short year ; unsigned char hwrev ; unsigned char fwrev ; unsigned char month ; }; struct mmc_csd { unsigned char structure ; unsigned char mmca_vsn ; unsigned short cmdclass ; unsigned short tacc_clks ; unsigned int tacc_ns ; unsigned int c_size ; unsigned int r2w_factor ; unsigned int max_dtr ; unsigned int erase_size ; unsigned int read_blkbits ; unsigned int write_blkbits ; unsigned int capacity ; unsigned char read_partial : 1 ; unsigned char read_misalign : 1 ; unsigned char write_partial : 1 ; unsigned char write_misalign : 1 ; unsigned char dsr_imp : 1 ; }; struct mmc_ext_csd { u8 rev ; u8 erase_group_def ; u8 sec_feature_support ; u8 rel_sectors ; u8 rel_param ; u8 part_config ; u8 cache_ctrl ; u8 rst_n_function ; u8 max_packed_writes ; u8 max_packed_reads ; u8 packed_event_en ; unsigned int part_time ; unsigned int sa_timeout ; unsigned int generic_cmd6_time ; unsigned int power_off_longtime ; u8 power_off_notification ; unsigned int hs_max_dtr ; unsigned int hs200_max_dtr ; unsigned int sectors ; unsigned int hc_erase_size ; unsigned int hc_erase_timeout ; unsigned int sec_trim_mult ; unsigned int sec_erase_mult ; unsigned int trim_timeout ; bool partition_setting_completed ; unsigned long long enhanced_area_offset ; unsigned int enhanced_area_size ; unsigned int cache_size ; bool hpi_en ; bool hpi ; unsigned int hpi_cmd ; bool bkops ; bool man_bkops_en ; unsigned int data_sector_size ; unsigned int data_tag_unit_size ; unsigned int boot_ro_lock ; bool boot_ro_lockable ; bool ffu_capable ; u8 fwrev[8U] ; u8 raw_exception_status ; u8 raw_partition_support ; u8 raw_rpmb_size_mult ; u8 raw_erased_mem_count ; u8 raw_ext_csd_structure ; u8 raw_card_type ; u8 raw_driver_strength ; u8 out_of_int_time ; u8 raw_pwr_cl_52_195 ; u8 raw_pwr_cl_26_195 ; u8 raw_pwr_cl_52_360 ; u8 raw_pwr_cl_26_360 ; u8 raw_s_a_timeout ; u8 raw_hc_erase_gap_size ; u8 raw_erase_timeout_mult ; u8 raw_hc_erase_grp_size ; u8 raw_sec_trim_mult ; u8 raw_sec_erase_mult ; u8 raw_sec_feature_support ; u8 raw_trim_mult ; u8 raw_pwr_cl_200_195 ; u8 raw_pwr_cl_200_360 ; u8 raw_pwr_cl_ddr_52_195 ; u8 raw_pwr_cl_ddr_52_360 ; u8 raw_pwr_cl_ddr_200_360 ; u8 raw_bkops_status ; u8 raw_sectors[4U] ; unsigned int feature_support ; }; struct sd_scr { unsigned char sda_vsn ; unsigned char sda_spec3 ; unsigned char bus_widths ; unsigned char cmds ; }; struct sd_ssr { unsigned int au ; unsigned int erase_timeout ; unsigned int erase_offset ; }; struct sd_switch_caps { unsigned int hs_max_dtr ; unsigned int uhs_max_dtr ; unsigned int sd3_bus_mode ; unsigned int sd3_drv_type ; unsigned int sd3_curr_limit ; }; struct sdio_cccr { unsigned int sdio_vsn ; unsigned int sd_vsn ; unsigned char multi_block : 1 ; unsigned char low_speed : 1 ; unsigned char wide_bus : 1 ; unsigned char high_power : 1 ; unsigned char high_speed : 1 ; unsigned char disable_cd : 1 ; }; struct sdio_cis { unsigned short vendor ; unsigned short device ; unsigned short blksize ; unsigned int max_dtr ; }; struct mmc_part { unsigned int size ; unsigned int part_cfg ; char name[20U] ; bool force_ro ; unsigned int area_type ; }; struct mmc_card { struct mmc_host *host ; struct device dev ; u32 ocr ; unsigned int rca ; unsigned int type ; unsigned int state ; unsigned int quirks ; unsigned int erase_size ; unsigned int erase_shift ; unsigned int pref_erase ; u8 erased_byte ; u32 raw_cid[4U] ; u32 raw_csd[4U] ; u32 raw_scr[2U] ; struct mmc_cid cid ; struct mmc_csd csd ; struct mmc_ext_csd ext_csd ; struct sd_scr scr ; struct sd_ssr ssr ; struct sd_switch_caps sw_caps ; unsigned int sdio_funcs ; struct sdio_cccr cccr ; struct sdio_cis cis ; struct sdio_func *sdio_func[7U] ; struct sdio_func *sdio_single_irq ; unsigned int num_info ; char const **info ; struct sdio_func_tuple *tuples ; unsigned int sd_bus_speed ; unsigned int mmc_avail_type ; unsigned int drive_strength ; struct dentry *debugfs_root ; struct mmc_part part[7U] ; unsigned int nr_parts ; }; struct sdio_driver { char *name ; struct sdio_device_id const *id_table ; int (*probe)(struct sdio_func * , struct sdio_device_id const * ) ; void (*remove)(struct sdio_func * ) ; struct device_driver drv ; }; struct b43_sdio { struct ssb_bus ssb ; void *irq_handler_opaque ; void (*irq_handler)(struct b43_wldev * ) ; }; struct b43_sdio_quirk { u16 vendor ; u16 device ; unsigned int quirks ; }; enum hrtimer_restart; enum irqchip_irq_state; enum irqchip_irq_state; struct b43_debugfs_fops { ssize_t (*read)(struct b43_wldev * , char * , size_t ) ; int (*write)(struct b43_wldev * , char const * , size_t ) ; struct file_operations fops ; size_t file_struct_offset ; }; void ldv__builtin_va_end(__builtin_va_list * ) ; __inline static long ldv__builtin_expect(long exp , long c ) ; void ldv__builtin_va_start(__builtin_va_list * ) ; extern struct module __this_module ; __inline static __u32 __arch_swab32(__u32 val ) { { __asm__ ("bswapl %0": "=r" (val): "0" (val)); return (val); } } __inline static __u16 __fswab16(__u16 val ) { { return ((__u16 )((int )((short )((int )val << 8)) | (int )((short )((int )val >> 8)))); } } __inline static __u32 __fswab32(__u32 val ) { __u32 tmp ; { tmp = __arch_swab32(val); return (tmp); } } __inline static __u32 __swab32p(__u32 const *p ) { __u32 tmp ; { tmp = __fswab32(*p); return (tmp); } } __inline static __u32 __be32_to_cpup(__be32 const *p ) { __u32 tmp ; { tmp = __swab32p(p); return (tmp); } } extern int printk(char const * , ...) ; extern void print_hex_dump(char const * , char const * , int , int , int , void const * , size_t , bool ) ; extern void __might_sleep(char const * , int , int ) ; extern int snprintf(char * , size_t , char const * , ...) ; bool ldv_is_err(void const *ptr ) ; void *ldv_err_ptr(long error ) ; long ldv_ptr_err(void const *ptr ) ; __inline static void INIT_LIST_HEAD(struct list_head *list ) { { list->next = list; list->prev = list; return; } } extern void list_del(struct list_head * ) ; extern void warn_slowpath_fmt(char const * , int const , char const * , ...) ; extern void warn_slowpath_null(char const * , int const ) ; extern void *memcpy(void * , void const * , size_t ) ; extern void *memset(void * , int , size_t ) ; extern size_t strlen(char const * ) ; extern int strcmp(char const * , char const * ) ; __inline static void *ERR_PTR(long error ) ; __inline static long PTR_ERR(void const *ptr ) ; __inline static bool IS_ERR(void const *ptr ) ; __inline static int atomic_read(atomic_t const *v ) { int __var ; { __var = 0; return ((int )*((int const volatile *)(& v->counter))); } } __inline static void atomic_set(atomic_t *v , int i ) { { v->counter = i; return; } } __inline static int atomic_dec_and_test(atomic_t *v ) { char c ; { __asm__ volatile (".pushsection .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.popsection\n671:\n\tlock; decl %0; sete %1": "+m" (v->counter), "=qm" (c): : "memory"); return ((int )((signed char )c) != 0); } } extern void lockdep_init_map(struct lockdep_map * , char const * , struct lock_class_key * , int ) ; extern void __raw_spin_lock_init(raw_spinlock_t * , char const * , struct lock_class_key * ) ; extern void _raw_spin_lock(raw_spinlock_t * ) ; extern void _raw_spin_lock_irq(raw_spinlock_t * ) ; extern unsigned long _raw_spin_lock_irqsave(raw_spinlock_t * ) ; extern void _raw_spin_unlock(raw_spinlock_t * ) ; extern void _raw_spin_unlock_irq(raw_spinlock_t * ) ; extern void _raw_spin_unlock_irqrestore(raw_spinlock_t * , unsigned long ) ; __inline static raw_spinlock_t *spinlock_check(spinlock_t *lock ) { { return (& lock->__annonCompField18.rlock); } } __inline static void spin_lock(spinlock_t *lock ) { { _raw_spin_lock(& lock->__annonCompField18.rlock); return; } } __inline static void spin_lock_irq(spinlock_t *lock ) { { _raw_spin_lock_irq(& lock->__annonCompField18.rlock); return; } } __inline static void spin_unlock(spinlock_t *lock ) { { _raw_spin_unlock(& lock->__annonCompField18.rlock); return; } } __inline static void spin_unlock_irq(spinlock_t *lock ) { { _raw_spin_unlock_irq(& lock->__annonCompField18.rlock); return; } } __inline static void spin_unlock_irqrestore(spinlock_t *lock , unsigned long flags ) { { _raw_spin_unlock_irqrestore(& lock->__annonCompField18.rlock, flags); return; } } extern void __init_waitqueue_head(wait_queue_head_t * , char const * , struct lock_class_key * ) ; extern void __mutex_init(struct mutex * , char const * , struct lock_class_key * ) ; __inline static int mutex_is_locked(struct mutex *lock ) { int tmp ; { tmp = atomic_read((atomic_t const *)(& lock->count)); return (tmp != 1); } } extern void mutex_lock_nested(struct mutex * , unsigned int ) ; extern void mutex_unlock(struct mutex * ) ; __inline static void init_completion(struct completion *x ) { struct lock_class_key __key ; { x->done = 0U; __init_waitqueue_head(& x->wait, "&x->wait", & __key); return; } } extern void wait_for_completion(struct completion * ) ; extern void complete(struct completion * ) ; extern unsigned long volatile jiffies ; extern unsigned long __msecs_to_jiffies(unsigned int const ) ; __inline static unsigned long msecs_to_jiffies(unsigned int const m ) { unsigned long tmp___0 ; { tmp___0 = __msecs_to_jiffies(m); return (tmp___0); } } extern void init_timer_key(struct timer_list * , unsigned int , char const * , struct lock_class_key * ) ; extern unsigned long round_jiffies_relative(unsigned long ) ; extern void delayed_work_timer_fn(unsigned long ) ; extern void __init_work(struct work_struct * , int ) ; extern struct workqueue_struct *system_wq ; extern bool queue_work_on(int , struct workqueue_struct * , struct work_struct * ) ; bool ldv_queue_work_on_5(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_7(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; extern bool queue_delayed_work_on(int , struct workqueue_struct * , struct delayed_work * , unsigned long ) ; bool ldv_queue_delayed_work_on_6(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_9(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; extern void flush_workqueue(struct workqueue_struct * ) ; void ldv_flush_workqueue_8(struct workqueue_struct *ldv_func_arg1 ) ; extern bool cancel_work_sync(struct work_struct * ) ; bool ldv_cancel_work_sync_12(struct work_struct *ldv_func_arg1 ) ; bool ldv_cancel_work_sync_15(struct work_struct *ldv_func_arg1 ) ; bool ldv_cancel_work_sync_16(struct work_struct *ldv_func_arg1 ) ; bool ldv_cancel_work_sync_20(struct work_struct *ldv_func_arg1 ) ; bool ldv_cancel_work_sync_21(struct work_struct *ldv_func_arg1 ) ; bool ldv_cancel_work_sync_23(struct work_struct *ldv_func_arg1 ) ; bool ldv_cancel_work_sync_24(struct work_struct *ldv_func_arg1 ) ; extern bool cancel_delayed_work_sync(struct delayed_work * ) ; bool ldv_cancel_delayed_work_sync_11(struct delayed_work *ldv_func_arg1 ) ; __inline static bool queue_work(struct workqueue_struct *wq , struct work_struct *work ) { bool tmp ; { tmp = ldv_queue_work_on_5(8192, wq, work); return (tmp); } } __inline static bool schedule_work(struct work_struct *work ) { bool tmp ; { tmp = queue_work(system_wq, work); return (tmp); } } __inline static char const *kobject_name(struct kobject const *kobj ) { { return ((char const *)kobj->name); } } extern void kfree(void const * ) ; extern void *__kmalloc(size_t , gfp_t ) ; __inline static void *kmalloc(size_t size , gfp_t flags ) { void *tmp___2 ; { tmp___2 = __kmalloc(size, flags); return (tmp___2); } } __inline static void *kzalloc(size_t size , gfp_t flags ) { void *tmp ; { tmp = kmalloc(size, flags | 32768U); return (tmp); } } extern void *malloc(size_t ) ; extern void *calloc(size_t , size_t ) ; extern int __VERIFIER_nondet_int(void) ; extern unsigned long __VERIFIER_nondet_ulong(void) ; extern void *__VERIFIER_nondet_pointer(void) ; extern void __VERIFIER_assume(int ) ; void *ldv_malloc(size_t size ) { void *p ; void *tmp ; int tmp___0 ; { tmp___0 = __VERIFIER_nondet_int(); if (tmp___0 != 0) { return ((void *)0); } else { tmp = malloc(size); p = tmp; __VERIFIER_assume((unsigned long )p != (unsigned long )((void *)0)); return (p); } } } void *ldv_zalloc(size_t size ) { void *p ; void *tmp ; int tmp___0 ; { tmp___0 = __VERIFIER_nondet_int(); if (tmp___0 != 0) { return ((void *)0); } else { tmp = calloc(1UL, size); p = tmp; __VERIFIER_assume((unsigned long )p != (unsigned long )((void *)0)); return (p); } } } void *ldv_init_zalloc(size_t size ) { void *p ; void *tmp ; { tmp = calloc(1UL, size); p = tmp; __VERIFIER_assume((unsigned long )p != (unsigned long )((void *)0)); return (p); } } void *ldv_memset(void *s , int c , size_t n ) { void *tmp ; { tmp = memset(s, c, n); return (tmp); } } int ldv_undef_int(void) { int tmp ; { tmp = __VERIFIER_nondet_int(); return (tmp); } } void *ldv_undef_ptr(void) { void *tmp ; { tmp = __VERIFIER_nondet_pointer(); return (tmp); } } unsigned long ldv_undef_ulong(void) { unsigned long tmp ; { tmp = __VERIFIER_nondet_ulong(); return (tmp); } } __inline static void ldv_stop(void) { { LDV_STOP: ; goto LDV_STOP; } } __inline static long ldv__builtin_expect(long exp , long c ) { { return (exp); } } struct work_struct *ldv_work_struct_9_2 ; struct file *fops_mmio16read_group0 ; int ldv_state_variable_20 ; struct work_struct *ldv_work_struct_3_1 ; int ldv_state_variable_30 ; struct file *fops_mmio32read_group0 ; int ldv_work_8_1 ; int ldv_state_variable_0 ; struct file *fops_loctls_group0 ; int ldv_irq_2_0 = 0; int ldv_state_variable_12 ; int ldv_work_9_3 ; struct ieee80211_hw *b43_hw_ops_group0 ; struct b43_wldev *b43_phyops_ht_group0 ; int ldv_state_variable_22 ; int ldv_state_variable_14 ; int ldv_state_variable_29 ; int ldv_state_variable_17 ; struct work_struct *ldv_work_struct_10_1 ; struct work_struct *ldv_work_struct_8_1 ; void *ldv_irq_data_2_3 ; int ldv_work_7_2 ; struct b43_wldev *b43_phyops_lp_group0 ; int ldv_state_variable_19 ; struct work_struct *ldv_work_struct_4_3 ; int ldv_state_variable_27 ; int ldv_state_variable_9 ; int ldv_work_9_0 ; struct work_struct *ldv_work_struct_7_1 ; int ldv_work_6_0 ; struct b43_wldev *b43_phyops_g_group0 ; struct work_struct *ldv_work_struct_6_1 ; int ref_cnt ; int ldv_irq_line_1_1 ; void *ldv_irq_data_2_2 ; int ldv_work_3_3 ; struct work_struct *ldv_work_struct_4_0 ; struct work_struct *ldv_work_struct_10_3 ; struct ssb_device *b43_ssb_driver_group0 ; struct work_struct *ldv_work_struct_8_3 ; int ldv_state_variable_7 ; int ldv_state_variable_23 ; struct work_struct *ldv_work_struct_3_3 ; int ldv_irq_2_1 = 0; void *ldv_irq_data_2_1 ; int ldv_irq_1_3 = 0; int ldv_irq_line_2_2 ; struct file *fops_mmio16write_group0 ; int ldv_work_4_0 ; struct work_struct *ldv_work_struct_3_2 ; int ldv_state_variable_6 ; void *ldv_irq_data_1_0 ; struct file *fops_mmio32write_group0 ; int ldv_work_5_0 ; void *ldv_irq_data_1_3 ; struct work_struct *ldv_work_struct_7_2 ; int ldv_state_variable_26 ; struct work_struct *ldv_work_struct_4_2 ; int ldv_state_variable_28 ; struct work_struct *ldv_work_struct_7_0 ; struct file *fops_restart_group0 ; int LDV_IN_INTERRUPT = 1; struct b43_wldev *b43_phyops_n_group0 ; struct work_struct *ldv_work_struct_6_0 ; int ldv_irq_1_1 = 0; int ldv_work_8_3 ; struct work_struct *ldv_work_struct_5_1 ; struct b43_dmaring *dma64_ops_group0 ; int ldv_work_5_2 ; int ldv_work_7_1 ; int ldv_state_variable_3 ; int ldv_irq_line_1_0 ; int ldv_state_variable_31 ; int ldv_work_6_2 ; struct work_struct *ldv_work_struct_9_0 ; int ldv_state_variable_4 ; struct work_struct *ldv_work_struct_9_3 ; int ldv_work_10_2 ; int ldv_work_9_2 ; int ldv_state_variable_8 ; int ldv_state_variable_15 ; struct work_struct *ldv_work_struct_6_3 ; int ldv_work_8_0 ; struct device_attribute *dev_attr_interference_group0 ; struct work_struct *ldv_work_struct_5_2 ; int ldv_work_9_1 ; int ldv_state_variable_21 ; struct work_struct *ldv_work_struct_5_3 ; int ldv_state_variable_5 ; int ldv_state_variable_33 ; int ldv_state_variable_13 ; struct work_struct *ldv_work_struct_8_0 ; int ldv_work_3_2 ; int ldv_work_3_0 ; int ldv_work_10_0 ; int ldv_irq_2_2 = 0; struct b43_wldev *b43_phyops_a_group0 ; int ldv_state_variable_24 ; int ldv_work_7_3 ; int ldv_irq_line_2_0 ; struct file *fops_shm16write_group0 ; struct file *fops_shm32read_group0 ; int ldv_state_variable_1 ; int ldv_work_5_3 ; int ldv_irq_line_1_2 ; int ldv_irq_line_2_3 ; struct file *fops_shm32write_group0 ; int ldv_work_6_1 ; void *ldv_irq_data_1_1 ; struct work_struct *ldv_work_struct_10_2 ; struct work_struct *ldv_work_struct_6_2 ; int ldv_state_variable_10 ; int ldv_irq_1_0 = 0; int ldv_work_7_0 ; struct pcmcia_device *b43_pcmcia_driver_group0 ; struct work_struct *ldv_work_struct_8_2 ; int ldv_work_4_1 ; int ldv_work_4_3 ; int ldv_state_variable_16 ; int ldv_work_3_1 ; int ldv_work_10_1 ; int ldv_irq_line_2_1 ; struct work_struct *ldv_work_struct_7_3 ; int ldv_state_variable_2 ; int ldv_state_variable_25 ; int ldv_work_5_1 ; struct sdio_func *b43_sdio_driver_group0 ; struct device *dev_attr_interference_group1 ; void *ldv_irq_data_1_2 ; int ldv_work_6_3 ; struct work_struct *ldv_work_struct_10_0 ; void *ldv_irq_data_2_0 ; struct work_struct *ldv_work_struct_3_0 ; int ldv_work_4_2 ; int ldv_state_variable_11 ; struct b43_dmaring *dma32_ops_group0 ; int ldv_irq_1_2 = 0; int ldv_state_variable_18 ; int ldv_irq_2_3 = 0; struct work_struct *ldv_work_struct_5_0 ; int ldv_irq_line_1_3 ; struct file *fops_shm16read_group0 ; struct work_struct *ldv_work_struct_9_1 ; int ldv_work_8_2 ; int ldv_state_variable_32 ; struct work_struct *ldv_work_struct_4_1 ; int ldv_state_variable_34 ; struct file *fops_txstat_group0 ; struct bcma_device *b43_bcma_driver_group0 ; int ldv_work_10_3 ; void activate_work_5(struct work_struct *work , int state ) ; void ldv_initialize_b43_phy_operations_30(void) ; void ldv_initialize_b43_debugfs_fops_17(void) ; void work_init_3(void) ; void call_and_disable_all_7(int state ) ; void disable_suitable_irq_2(int line , void *data ) ; void invoke_work_6(void) ; int reg_check_1(irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) ) ; void activate_work_3(struct work_struct *work , int state ) ; void work_init_9(void) ; void work_init_5(void) ; void invoke_work_8(void) ; void call_and_disable_all_4(int state ) ; void ldv_initialize_device_attribute_26(void) ; void ldv_initialize_b43_debugfs_fops_15(void) ; void work_init_7(void) ; void invoke_work_7(void) ; void disable_work_5(struct work_struct *work ) ; void call_and_disable_work_3(struct work_struct *work ) ; void disable_work_7(struct work_struct *work ) ; void call_and_disable_all_8(int state ) ; void disable_work_3(struct work_struct *work ) ; void ldv_initialize_b43_debugfs_fops_20(void) ; void call_and_disable_work_9(struct work_struct *work ) ; void ldv_initialize_sdio_driver_22(void) ; void call_and_disable_all_6(int state ) ; void ldv_initialize_ssb_driver_32(void) ; void disable_suitable_irq_1(int line , void *data ) ; void activate_suitable_irq_1(int line , void *data ) ; void ldv_initialize_b43_debugfs_fops_13(void) ; void invoke_work_4(void) ; void call_and_disable_work_5(struct work_struct *work ) ; void ldv_initialize_bcma_driver_33(void) ; void ldv_initialize_b43_debugfs_fops_18(void) ; void ldv_initialize_pcmcia_driver_23(void) ; void ldv_initialize_b43_debugfs_fops_14(void) ; void activate_work_8(struct work_struct *work , int state ) ; int ldv_irq_2(int state , int line , void *data ) ; void ldv_initialize_b43_dma_ops_24(void) ; void activate_work_6(struct work_struct *work , int state ) ; void choose_interrupt_2(void) ; void activate_work_4(struct work_struct *work , int state ) ; void call_and_disable_work_7(struct work_struct *work ) ; void call_and_disable_all_5(int state ) ; void disable_work_9(struct work_struct *work ) ; void activate_suitable_irq_2(int line , void *data ) ; void work_init_8(void) ; void ldv_initialize_b43_phy_operations_28(void) ; void ldv_initialize_b43_dma_ops_25(void) ; void ldv_initialize_b43_debugfs_fops_11(void) ; void work_init_6(void) ; void disable_work_6(struct work_struct *work ) ; void ldv_initialize_b43_debugfs_fops_21(void) ; void ldv_initialize_b43_phy_operations_27(void) ; void call_and_disable_all_9(int state ) ; void choose_interrupt_1(void) ; void work_init_10(void) ; void invoke_work_5(void) ; void ldv_initialize_b43_debugfs_fops_16(void) ; int reg_check_2(irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) ) ; void activate_work_7(struct work_struct *work , int state ) ; void call_and_disable_work_8(struct work_struct *work ) ; void disable_work_4(struct work_struct *work ) ; void work_init_4(void) ; void invoke_work_3(void) ; void invoke_work_9(void) ; void ldv_initialize_ieee80211_ops_34(void) ; int ldv_irq_1(int state , int line , void *data ) ; void disable_work_8(struct work_struct *work ) ; void ldv_initialize_b43_phy_operations_31(void) ; void activate_work_9(struct work_struct *work , int state ) ; void call_and_disable_all_3(int state ) ; void ldv_initialize_b43_debugfs_fops_19(void) ; void ldv_initialize_b43_debugfs_fops_12(void) ; void call_and_disable_work_6(struct work_struct *work ) ; void call_and_disable_work_4(struct work_struct *work ) ; void ldv_initialize_b43_phy_operations_29(void) ; extern void __const_udelay(unsigned long ) ; extern void msleep(unsigned int ) ; extern int net_ratelimit(void) ; __inline static char const *dev_name(struct device const *dev ) { char const *tmp ; { if ((unsigned long )dev->init_name != (unsigned long )((char const */* const */)0)) { return ((char const *)dev->init_name); } else { } tmp = kobject_name(& dev->kobj); return (tmp); } } extern struct sk_buff *skb_clone(struct sk_buff * , gfp_t ) ; __inline static unsigned char *skb_end_pointer(struct sk_buff const *skb ) { { return ((unsigned char *)skb->head + (unsigned long )skb->end); } } __inline static __u32 skb_queue_len(struct sk_buff_head const *list_ ) { { return ((__u32 )list_->qlen); } } __inline static void __skb_queue_head_init(struct sk_buff_head *list ) { struct sk_buff *tmp ; { tmp = (struct sk_buff *)list; list->next = tmp; list->prev = tmp; list->qlen = 0U; return; } } __inline static void skb_queue_head_init(struct sk_buff_head *list ) { struct lock_class_key __key ; { spinlock_check(& list->lock); __raw_spin_lock_init(& list->lock.__annonCompField18.rlock, "&(&list->lock)->rlock", & __key); __skb_queue_head_init(list); return; } } extern void skb_queue_head(struct sk_buff_head * , struct sk_buff * ) ; extern void skb_queue_tail(struct sk_buff_head * , struct sk_buff * ) ; extern struct sk_buff *skb_dequeue(struct sk_buff_head * ) ; extern void synchronize_irq(unsigned int ) ; extern int request_threaded_irq(unsigned int , irqreturn_t (*)(int , void * ) , irqreturn_t (*)(int , void * ) , unsigned long , char const * , void * ) ; int ldv_request_threaded_irq_10(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; int ldv_request_threaded_irq_14(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; extern void free_irq(unsigned int , void * ) ; void ldv_free_irq_13(unsigned int ldv_func_arg1 , void *ldv_func_arg2 ) ; extern void __dev_kfree_skb_any(struct sk_buff * , enum skb_free_reason ) ; __inline static void dev_kfree_skb_any(struct sk_buff *skb ) { { __dev_kfree_skb_any(skb, 1); return; } } __inline static u32 get_unaligned_be32(void const *p ) { __u32 tmp ; { tmp = __be32_to_cpup((__be32 const *)p); return (tmp); } } __inline static bool is_zero_ether_addr(u8 const *addr ) { { return (((unsigned int )*((u32 const *)addr) | (unsigned int )*((u16 const *)addr + 4U)) == 0U); } } __inline static bool is_multicast_ether_addr(u8 const *addr ) { u32 a ; { a = *((u32 const *)addr); return ((a & 1U) != 0U); } } __inline static bool is_valid_ether_addr(u8 const *addr ) { bool tmp ; int tmp___0 ; bool tmp___1 ; int tmp___2 ; int tmp___3 ; { tmp = is_multicast_ether_addr(addr); if (tmp) { tmp___0 = 0; } else { tmp___0 = 1; } if (tmp___0) { tmp___1 = is_zero_ether_addr(addr); if (tmp___1) { tmp___2 = 0; } else { tmp___2 = 1; } if (tmp___2) { tmp___3 = 1; } else { tmp___3 = 0; } } else { tmp___3 = 0; } return ((bool )tmp___3); } } __inline static void eth_zero_addr(u8 *addr ) { { memset((void *)addr, 0, 6UL); return; } } extern int request_firmware(struct firmware const ** , char const * , struct device * ) ; extern int request_firmware_nowait(struct module * , bool , char const * , struct device * , gfp_t , void * , void (*)(struct firmware const * , void * ) ) ; extern void release_firmware(struct firmware const * ) ; extern int hwrng_register(struct hwrng * ) ; extern void hwrng_unregister(struct hwrng * ) ; extern u32 bcma_chipco_gpio_control(struct bcma_drv_cc * , u32 , u32 ) ; __inline static void *ssb_get_drvdata(struct ssb_device *dev ) { { return (dev->drvdata); } } extern void ssb_set_devtypedata(struct ssb_device * , void * ) ; __inline static void *ssb_get_devtypedata(struct ssb_device *dev ) { { return (dev->devtypedata); } } extern int __ssb_driver_register(struct ssb_driver * , struct module * ) ; extern void ssb_driver_unregister(struct ssb_driver * ) ; extern int ssb_pcicore_dev_irqvecs_enable(struct ssb_pcicore * , struct ssb_device * ) ; __inline static u32 ssb_read32(struct ssb_device *dev , u16 offset ) { u32 tmp ; { tmp = (*((dev->ops)->read32))(dev, (int )offset); return (tmp); } } __inline static void ssb_write32(struct ssb_device *dev , u16 offset , u32 value ) { { (*((dev->ops)->write32))(dev, (int )offset, value); return; } } extern void ssb_commit_settings(struct ssb_bus * ) ; __inline static void *bcma_get_drvdata(struct bcma_device *core ) { { return (core->drvdata); } } extern int __bcma_driver_register(struct bcma_driver * , struct module * ) ; extern void bcma_driver_unregister(struct bcma_driver * ) ; __inline static u32 bcma_read32(struct bcma_device *core , u16 offset ) { u32 tmp ; { tmp = (*(((core->bus)->ops)->read32))(core, (int )offset); return (tmp); } } __inline static void bcma_write32(struct bcma_device *core , u16 offset , u32 value ) { { (*(((core->bus)->ops)->write32))(core, (int )offset, value); return; } } __inline static u32 bcma_aread32(struct bcma_device *core , u16 offset ) { u32 tmp ; { tmp = (*(((core->bus)->ops)->aread32))(core, (int )offset); return (tmp); } } __inline static void bcma_awrite32(struct bcma_device *core , u16 offset , u32 value ) { { (*(((core->bus)->ops)->awrite32))(core, (int )offset, value); return; } } extern void bcma_host_pci_up(struct bcma_bus * ) ; extern void bcma_host_pci_down(struct bcma_bus * ) ; extern int bcma_host_pci_irq_ctl(struct bcma_bus * , struct bcma_device * , bool ) ; extern void bcma_core_set_clockmode(struct bcma_device * , enum bcma_clkmode ) ; extern void bcma_core_pll_ctl(struct bcma_device * , u32 , u32 , bool ) ; __inline static void set_wiphy_dev(struct wiphy *wiphy , struct device *dev ) { { wiphy->dev.parent = dev; return; } } __inline static char const *wiphy_name(struct wiphy const *wiphy ) { char const *tmp ; { tmp = dev_name(& wiphy->dev); return (tmp); } } extern struct ieee80211_rate *ieee80211_get_response_rate(struct ieee80211_supported_band * , u32 , int ) ; extern void wiphy_rfkill_start_polling(struct wiphy * ) ; __inline static struct ieee80211_tx_info *IEEE80211_SKB_CB(struct sk_buff *skb ) { { return ((struct ieee80211_tx_info *)(& skb->cb)); } } __inline static void _ieee80211_hw_set(struct ieee80211_hw *hw , enum ieee80211_hw_flags flg ) { { return; } } __inline static void SET_IEEE80211_DEV(struct ieee80211_hw *hw , struct device *dev ) { { set_wiphy_dev(hw->wiphy, dev); return; } } __inline static void SET_IEEE80211_PERM_ADDR(struct ieee80211_hw *hw , u8 *addr ) { { memcpy((void *)(& (hw->wiphy)->perm_addr), (void const *)addr, 6UL); return; } } __inline static struct ieee80211_rate *ieee80211_get_tx_rate(struct ieee80211_hw const *hw , struct ieee80211_tx_info const *c ) { bool __warned ; int __ret_warn_once ; int __ret_warn_on ; long tmp ; long tmp___0 ; long tmp___1 ; long tmp___2 ; { __ret_warn_once = (int )((signed char )c->__annonCompField103.control.__annonCompField101.__annonCompField100.rates[0].idx) < 0; tmp___1 = ldv__builtin_expect(__ret_warn_once != 0, 0L); if (tmp___1 != 0L) { __ret_warn_on = ! __warned; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("include/net/mac80211.h", 2151); } else { } tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { __warned = 1; } else { } } else { } tmp___2 = ldv__builtin_expect(__ret_warn_once != 0, 0L); if (tmp___2 != 0L) { return ((struct ieee80211_rate *)0); } else { } return (((hw->wiphy)->bands[(int )c->band])->bitrates + (unsigned long )c->__annonCompField103.control.__annonCompField101.__annonCompField100.rates[0].idx); } } extern void ieee80211_free_txskb(struct ieee80211_hw * , struct sk_buff * ) ; extern struct ieee80211_hw *ieee80211_alloc_hw_nm(size_t , struct ieee80211_ops const * , char const * ) ; __inline static struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len , struct ieee80211_ops const *ops ) { struct ieee80211_hw *tmp ; { tmp = ieee80211_alloc_hw_nm(priv_data_len, ops, (char const *)0); return (tmp); } } __inline static struct ieee80211_hw *ldv_ieee80211_alloc_hw_18(size_t priv_data_len , struct ieee80211_ops const *ops ) ; extern int ieee80211_register_hw(struct ieee80211_hw * ) ; extern void ieee80211_unregister_hw(struct ieee80211_hw * ) ; extern void ieee80211_free_hw(struct ieee80211_hw * ) ; void ldv_ieee80211_free_hw_17(struct ieee80211_hw *ldv_func_arg1 ) ; void ldv_ieee80211_free_hw_19(struct ieee80211_hw *ldv_func_arg1 ) ; void ldv_ieee80211_free_hw_22(struct ieee80211_hw *ldv_func_arg1 ) ; extern struct sk_buff *ieee80211_beacon_get_tim(struct ieee80211_hw * , struct ieee80211_vif * , u16 * , u16 * ) ; __inline static struct sk_buff *ieee80211_beacon_get(struct ieee80211_hw *hw , struct ieee80211_vif *vif ) { struct sk_buff *tmp ; { tmp = ieee80211_beacon_get_tim(hw, vif, (u16 *)0U, (u16 *)0U); return (tmp); } } extern void ieee80211_stop_queue(struct ieee80211_hw * , int ) ; extern void ieee80211_wake_queues(struct ieee80211_hw * ) ; extern void ieee80211_queue_work(struct ieee80211_hw * , struct work_struct * ) ; extern void ieee80211_queue_delayed_work(struct ieee80211_hw * , struct delayed_work * , unsigned long ) ; bool b43_debug(struct b43_wldev *dev , enum b43_dyndbg feature ) ; void b43_debugfs_init(void) ; void b43_debugfs_exit(void) ; void b43_debugfs_add_device(struct b43_wldev *dev ) ; void b43_debugfs_remove_device(struct b43_wldev *dev ) ; void b43_leds_register(struct b43_wldev *dev ) ; void b43_leds_unregister(struct b43_wl *wl ) ; void b43_leds_init(struct b43_wldev *dev ) ; void b43_leds_exit(struct b43_wldev *dev ) ; void b43_leds_stop(struct b43_wldev *dev ) ; void b43_rfkill_poll(struct ieee80211_hw *hw ) ; __inline static bool b43_bus_host_is_pcmcia(struct b43_bus_dev *dev ) { { return ((bool )((unsigned int )dev->bus_type == 1U && (unsigned int )((dev->__annonCompField105.sdev)->bus)->bustype == 2U)); } } __inline static bool b43_bus_host_is_sdio(struct b43_bus_dev *dev ) { { return ((bool )((unsigned int )dev->bus_type == 1U && (unsigned int )((dev->__annonCompField105.sdev)->bus)->bustype == 3U)); } } struct b43_bus_dev *b43_bus_dev_bcma_init(struct bcma_device *core ) ; struct b43_bus_dev *b43_bus_dev_ssb_init(struct ssb_device *sdev ) ; void *b43_bus_get_wldev(struct b43_bus_dev *dev ) ; void b43_bus_set_wldev(struct b43_bus_dev *dev , void *wldev ) ; int b43_phy_allocate(struct b43_wldev *dev ) ; void b43_phy_free(struct b43_wldev *dev ) ; int b43_phy_init(struct b43_wldev *dev ) ; void b43_phy_exit(struct b43_wldev *dev ) ; void b43_radio_write(struct b43_wldev *dev , u16 reg , u16 value ) ; void b43_phy_put_into_reset(struct b43_wldev *dev ) ; void b43_phy_take_out_of_reset(struct b43_wldev *dev ) ; int b43_switch_channel(struct b43_wldev *dev , unsigned int new_channel ) ; void b43_software_rfkill(struct b43_wldev *dev , bool blocked ) ; void b43_phy_txpower_check(struct b43_wldev *dev , unsigned int flags ) ; void b43_phy_txpower_adjust_work(struct work_struct *work ) ; __inline static struct b43_wl *hw_to_b43_wl(struct ieee80211_hw *hw ) { { return ((struct b43_wl *)hw->priv); } } __inline static int b43_is_mode(struct b43_wl *wl , int type ) { { return ((int )wl->operating && wl->if_type == type); } } __inline static enum ieee80211_band b43_current_band(struct b43_wl *wl ) { { return (((wl->hw)->conf.chandef.chan)->band); } } __inline static int b43_bus_may_powerdown(struct b43_wldev *wldev ) { int tmp ; { tmp = (*((wldev->dev)->bus_may_powerdown))(wldev->dev); return (tmp); } } __inline static int b43_bus_powerup(struct b43_wldev *wldev , bool dynamic_pctl ) { int tmp ; { tmp = (*((wldev->dev)->bus_powerup))(wldev->dev, (int )dynamic_pctl); return (tmp); } } __inline static int b43_device_is_enabled(struct b43_wldev *wldev ) { int tmp ; { tmp = (*((wldev->dev)->device_is_enabled))(wldev->dev); return (tmp); } } __inline static void b43_device_enable(struct b43_wldev *wldev , u32 core_specific_flags ) { { (*((wldev->dev)->device_enable))(wldev->dev, core_specific_flags); return; } } __inline static void b43_device_disable(struct b43_wldev *wldev , u32 core_specific_flags ) { { (*((wldev->dev)->device_disable))(wldev->dev, core_specific_flags); return; } } __inline static u16 b43_read16(struct b43_wldev *dev , u16 offset ) { u16 tmp ; { tmp = (*((dev->dev)->read16))(dev->dev, (int )offset); return (tmp); } } __inline static void b43_write16(struct b43_wldev *dev , u16 offset , u16 value ) { { (*((dev->dev)->write16))(dev->dev, (int )offset, (int )value); return; } } __inline static void b43_write16f(struct b43_wldev *dev , u16 offset , u16 value ) { { b43_write16(dev, (int )offset, (int )value); return; } } __inline static void b43_maskset16(struct b43_wldev *dev , u16 offset , u16 mask , u16 set ) { u16 tmp ; { tmp = b43_read16(dev, (int )offset); b43_write16(dev, (int )offset, ((int )tmp & (int )mask) | (int )set); return; } } __inline static u32 b43_read32(struct b43_wldev *dev , u16 offset ) { u32 tmp ; { tmp = (*((dev->dev)->read32))(dev->dev, (int )offset); return (tmp); } } __inline static void b43_write32(struct b43_wldev *dev , u16 offset , u32 value ) { { (*((dev->dev)->write32))(dev->dev, (int )offset, value); return; } } __inline static void b43_maskset32(struct b43_wldev *dev , u16 offset , u32 mask , u32 set ) { u32 tmp ; { tmp = b43_read32(dev, (int )offset); b43_write32(dev, (int )offset, (tmp & mask) | set); return; } } __inline static bool b43_using_pio_transfers(struct b43_wldev *dev ) { { return (dev->__using_pio_transfers); } } void b43info(struct b43_wl *wl , char const *fmt , ...) ; void b43err(struct b43_wl *wl , char const *fmt , ...) ; void b43warn(struct b43_wl *wl , char const *fmt , ...) ; void b43dbg(struct b43_wl *wl , char const *fmt , ...) ; int b43_modparam_verbose ; __inline static int b43_is_cck_rate(int rate ) { { return (((rate == 2 || rate == 4) || rate == 11) || rate == 22); } } u8 b43_ieee80211_antenna_sanitize(struct b43_wldev *dev , u8 antenna_nr ) ; void b43_tsf_read(struct b43_wldev *dev , u64 *tsf ) ; void b43_tsf_write(struct b43_wldev *dev , u64 tsf ) ; u32 b43_shm_read32(struct b43_wldev *dev , u16 routing , u16 offset ) ; u16 b43_shm_read16(struct b43_wldev *dev , u16 routing , u16 offset ) ; void b43_shm_write32(struct b43_wldev *dev , u16 routing , u16 offset , u32 value ) ; void b43_shm_write16(struct b43_wldev *dev , u16 routing , u16 offset , u16 value ) ; u64 b43_hf_read(struct b43_wldev *dev ) ; void b43_hf_write(struct b43_wldev *dev , u64 value ) ; void b43_dummy_transmission(struct b43_wldev *dev , bool ofdm , bool pa_on ) ; void b43_wireless_core_reset(struct b43_wldev *dev , bool gmode ) ; void b43_controller_restart(struct b43_wldev *dev , char const *reason ) ; void b43_power_saving_ctl_bits(struct b43_wldev *dev , unsigned int ps_flags ) ; void b43_wireless_core_phy_pll_reset(struct b43_wldev *dev ) ; void b43_mac_suspend(struct b43_wldev *dev ) ; void b43_mac_enable(struct b43_wldev *dev ) ; void b43_mac_phy_clock_set(struct b43_wldev *dev , bool on ) ; void b43_mac_switch_freq(struct b43_wldev *dev , u8 spurmode ) ; int b43_do_request_fw(struct b43_request_fw_context *ctx , char const *name , struct b43_firmware_file *fw , bool async ) ; void b43_do_release_fw(struct b43_firmware_file *fw ) ; int b43_dma_init(struct b43_wldev *dev ) ; void b43_dma_free(struct b43_wldev *dev ) ; int b43_dma_tx(struct b43_wldev *dev , struct sk_buff *skb ) ; void b43_dma_handle_rx_overflow(struct b43_dmaring *ring ) ; void b43_dma_rx(struct b43_dmaring *ring ) ; int b43_pio_init(struct b43_wldev *dev ) ; void b43_pio_free(struct b43_wldev *dev ) ; int b43_pio_tx(struct b43_wldev *dev , struct sk_buff *skb ) ; void b43_pio_rx(struct b43_pio_rxqueue *q ) ; u8 b43_plcp_get_ratecode_cck(u8 const bitrate ) ; u8 b43_plcp_get_ratecode_ofdm(u8 const bitrate ) ; void b43_generate_plcp_hdr(struct b43_plcp_hdr4 *plcp , u16 const octets , u8 const bitrate ) ; void b43_handle_txstatus(struct b43_wldev *dev , struct b43_txstatus const *status ) ; __inline static int b43_new_kidx_api(struct b43_wldev *dev ) { { return ((unsigned int )dev->fw.rev > 350U); } } __inline static u8 b43_kidx_to_fw(struct b43_wldev *dev , u8 raw_kidx ) { u8 firmware_kidx ; int tmp ; { tmp = b43_new_kidx_api(dev); if (tmp != 0) { firmware_kidx = raw_kidx; } else if ((unsigned int )raw_kidx > 3U) { firmware_kidx = (unsigned int )raw_kidx + 252U; } else { firmware_kidx = raw_kidx; } return (firmware_kidx); } } int b43_pcmcia_init(void) ; void b43_pcmcia_exit(void) ; int b43_sdio_request_irq(struct b43_wldev *dev , void (*handler)(struct b43_wldev * ) ) ; void b43_sdio_free_irq(struct b43_wldev *dev ) ; int b43_sdio_init(void) ; void b43_sdio_exit(void) ; static int modparam_bad_frames_preempt ; static char modparam_fwpostfix[16U] ; static int modparam_hwpctl ; static int modparam_nohwcrypt ; static int modparam_hwtkip ; static int modparam_qos = 1; static int modparam_btcoex = 1; int b43_modparam_verbose = 3; static int b43_modparam_pio = 0; static int modparam_allhwsupport = 0; static struct bcma_device_id const b43_bcma_tbl[9U] = { {1215U, 2066U, 17U, 255U}, {1215U, 2066U, 23U, 255U}, {1215U, 2066U, 24U, 255U}, {1215U, 2066U, 28U, 255U}, {1215U, 2066U, 29U, 255U}, {1215U, 2066U, 30U, 255U}, {1215U, 2066U, 40U, 255U}, {1215U, 2066U, 42U, 255U}}; struct bcma_device_id const __mod_bcma__b43_bcma_tbl_device_table[9U] ; static struct ssb_device_id const b43_ssb_tbl[11U] = { {16963U, 2066U, 5U, (unsigned char)0}, {16963U, 2066U, 6U, (unsigned char)0}, {16963U, 2066U, 7U, (unsigned char)0}, {16963U, 2066U, 9U, (unsigned char)0}, {16963U, 2066U, 10U, (unsigned char)0}, {16963U, 2066U, 11U, (unsigned char)0}, {16963U, 2066U, 12U, (unsigned char)0}, {16963U, 2066U, 13U, (unsigned char)0}, {16963U, 2066U, 15U, (unsigned char)0}, {16963U, 2066U, 16U, (unsigned char)0}}; struct ssb_device_id const __mod_ssb__b43_ssb_tbl_device_table[11U] ; static struct ieee80211_rate __b43_ratetable[12U] = { {0U, 10U, 2U, (unsigned short)0}, {1U, 20U, 4U, (unsigned short)0}, {1U, 55U, 11U, (unsigned short)0}, {1U, 110U, 22U, (unsigned short)0}, {0U, 60U, 12U, (unsigned short)0}, {0U, 90U, 18U, (unsigned short)0}, {0U, 120U, 24U, (unsigned short)0}, {0U, 180U, 36U, (unsigned short)0}, {0U, 240U, 48U, (unsigned short)0}, {0U, 360U, 72U, (unsigned short)0}, {0U, 480U, 96U, (unsigned short)0}, {0U, 540U, 108U, (unsigned short)0}}; static struct ieee80211_channel b43_2ghz_chantable[14U] = { {0, 2412U, 1U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {0, 2417U, 2U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {0, 2422U, 3U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {0, 2427U, 4U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {0, 2432U, 5U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {0, 2437U, 6U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {0, 2442U, 7U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {0, 2447U, 8U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {0, 2452U, 9U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {0, 2457U, 10U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {0, 2462U, 11U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {0, 2467U, 12U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {0, 2472U, 13U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {0, 2484U, 14U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}}; static struct ieee80211_channel b43_5ghz_nphy_chantable[110U] = { {1, 4920U, 184U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 4930U, 186U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 4940U, 188U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 4950U, 190U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 4960U, 192U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 4970U, 194U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 4980U, 196U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 4990U, 198U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5000U, 200U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5010U, 202U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5020U, 204U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5030U, 206U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5040U, 208U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5050U, 210U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5060U, 212U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5070U, 214U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5080U, 216U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5090U, 218U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5100U, 220U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5110U, 222U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5120U, 224U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5130U, 226U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5140U, 228U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5160U, 32U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5170U, 34U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5180U, 36U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5190U, 38U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5200U, 40U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5210U, 42U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5220U, 44U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5230U, 46U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5240U, 48U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5250U, 50U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5260U, 52U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5270U, 54U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5280U, 56U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5290U, 58U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5300U, 60U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5310U, 62U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5320U, 64U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5330U, 66U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5340U, 68U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5350U, 70U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5360U, 72U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5370U, 74U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5380U, 76U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5390U, 78U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5400U, 80U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5410U, 82U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5420U, 84U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5430U, 86U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5440U, 88U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5450U, 90U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5460U, 92U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5470U, 94U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5480U, 96U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5490U, 98U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5500U, 100U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5510U, 102U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5520U, 104U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5530U, 106U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5540U, 108U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5550U, 110U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5560U, 112U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5570U, 114U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5580U, 116U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5590U, 118U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5600U, 120U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5610U, 122U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5620U, 124U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5630U, 126U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5640U, 128U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5650U, 130U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5660U, 132U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5670U, 134U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5680U, 136U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5690U, 138U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5700U, 140U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5710U, 142U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5720U, 144U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5725U, 145U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5730U, 146U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5735U, 147U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5740U, 148U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5745U, 149U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5750U, 150U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5755U, 151U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5760U, 152U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5765U, 153U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5770U, 154U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5775U, 155U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5780U, 156U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5785U, 157U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5790U, 158U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5795U, 159U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5800U, 160U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5805U, 161U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5810U, 162U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5815U, 163U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5820U, 164U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5825U, 165U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5830U, 166U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5840U, 168U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5850U, 170U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5860U, 172U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5870U, 174U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5880U, 176U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5890U, 178U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5900U, 180U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5910U, 182U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}}; static struct ieee80211_channel b43_5ghz_nphy_chantable_limited[9U] = { {1, 5180U, 36U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5200U, 40U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5220U, 44U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5240U, 48U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5745U, 149U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5765U, 153U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5785U, 157U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5805U, 161U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5825U, 165U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}}; static struct ieee80211_channel b43_5ghz_aphy_chantable[37U] = { {1, 5170U, 34U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5180U, 36U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5190U, 38U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5200U, 40U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5210U, 42U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5220U, 44U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5230U, 46U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5240U, 48U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5260U, 52U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5280U, 56U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5300U, 60U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5320U, 64U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5500U, 100U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5520U, 104U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5540U, 108U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5560U, 112U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5580U, 116U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5600U, 120U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5620U, 124U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5640U, 128U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5660U, 132U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5680U, 136U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5700U, 140U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5745U, 149U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5765U, 153U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5785U, 157U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5805U, 161U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5825U, 165U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5920U, 184U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5940U, 188U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5960U, 192U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 5980U, 196U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 6000U, 200U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 6020U, 204U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 6040U, 208U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 6060U, 212U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}, {1, 6080U, 216U, 0U, 0, 30, 0, (_Bool)0, 0U, 0, 0, 0, 0UL, 0U}}; static struct ieee80211_supported_band b43_band_5GHz_nphy = {(struct ieee80211_channel *)(& b43_5ghz_nphy_chantable), (struct ieee80211_rate *)(& __b43_ratetable) + 4UL, 1, 110, 8, {(unsigned short)0, (_Bool)0, (unsigned char)0, (unsigned char)0, {{(unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0}, (unsigned short)0, (unsigned char)0, {(unsigned char)0, (unsigned char)0, (unsigned char)0}}}, {(_Bool)0, 0U, {(unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0}}}; static struct ieee80211_supported_band b43_band_5GHz_nphy_limited = {(struct ieee80211_channel *)(& b43_5ghz_nphy_chantable_limited), (struct ieee80211_rate *)(& __b43_ratetable) + 4UL, 1, 9, 8, {(unsigned short)0, (_Bool)0, (unsigned char)0, (unsigned char)0, {{(unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0}, (unsigned short)0, (unsigned char)0, {(unsigned char)0, (unsigned char)0, (unsigned char)0}}}, {(_Bool)0, 0U, {(unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0}}}; static struct ieee80211_supported_band b43_band_5GHz_aphy = {(struct ieee80211_channel *)(& b43_5ghz_aphy_chantable), (struct ieee80211_rate *)(& __b43_ratetable) + 4UL, 1, 37, 8, {(unsigned short)0, (_Bool)0, (unsigned char)0, (unsigned char)0, {{(unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0}, (unsigned short)0, (unsigned char)0, {(unsigned char)0, (unsigned char)0, (unsigned char)0}}}, {(_Bool)0, 0U, {(unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0}}}; static struct ieee80211_supported_band b43_band_2GHz = {(struct ieee80211_channel *)(& b43_2ghz_chantable), (struct ieee80211_rate *)(& __b43_ratetable), 0, 14, 12, {(unsigned short)0, (_Bool)0, (unsigned char)0, (unsigned char)0, {{(unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0}, (unsigned short)0, (unsigned char)0, {(unsigned char)0, (unsigned char)0, (unsigned char)0}}}, {(_Bool)0, 0U, {(unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0}}}; static struct ieee80211_supported_band b43_band_2ghz_limited = {(struct ieee80211_channel *)(& b43_2ghz_chantable), (struct ieee80211_rate *)(& __b43_ratetable), 0, 11, 12, {(unsigned short)0, (_Bool)0, (unsigned char)0, (unsigned char)0, {{(unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0}, (unsigned short)0, (unsigned char)0, {(unsigned char)0, (unsigned char)0, (unsigned char)0}}}, {(_Bool)0, 0U, {(unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0}}}; static void b43_wireless_core_exit(struct b43_wldev *dev ) ; static int b43_wireless_core_init(struct b43_wldev *dev ) ; static struct b43_wldev *b43_wireless_core_stop(struct b43_wldev *dev ) ; static int b43_wireless_core_start(struct b43_wldev *dev ) ; static void b43_op_bss_info_changed(struct ieee80211_hw *hw , struct ieee80211_vif *vif , struct ieee80211_bss_conf *conf , u32 changed ) ; static int b43_ratelimit(struct b43_wl *wl ) { int tmp ; int tmp___0 ; { if ((unsigned long )wl == (unsigned long )((struct b43_wl *)0) || (unsigned long )wl->current_dev == (unsigned long )((struct b43_wldev *)0)) { return (1); } else { } tmp = atomic_read((atomic_t const *)(& (wl->current_dev)->__init_status)); if (tmp <= 1) { return (1); } else { } tmp___0 = net_ratelimit(); return (tmp___0); } } void b43info(struct b43_wl *wl , char const *fmt , ...) { struct va_format vaf ; va_list args ; int tmp ; char const *tmp___0 ; char const *tmp___1 ; { if (b43_modparam_verbose <= 1) { return; } else { } tmp = b43_ratelimit(wl); if (tmp == 0) { return; } else { } ldv__builtin_va_start((va_list *)(& args)); vaf.fmt = fmt; vaf.va = & args; if ((unsigned long )wl != (unsigned long )((struct b43_wl *)0) && (unsigned long )wl->hw != (unsigned long )((struct ieee80211_hw *)0)) { tmp___0 = wiphy_name((struct wiphy const *)(wl->hw)->wiphy); tmp___1 = tmp___0; } else { tmp___1 = "wlan"; } printk("\016b43-%s: %pV", tmp___1, & vaf); ldv__builtin_va_end((va_list *)(& args)); return; } } void b43err(struct b43_wl *wl , char const *fmt , ...) { struct va_format vaf ; va_list args ; int tmp ; char const *tmp___0 ; char const *tmp___1 ; { if (b43_modparam_verbose < 0) { return; } else { } tmp = b43_ratelimit(wl); if (tmp == 0) { return; } else { } ldv__builtin_va_start((va_list *)(& args)); vaf.fmt = fmt; vaf.va = & args; if ((unsigned long )wl != (unsigned long )((struct b43_wl *)0) && (unsigned long )wl->hw != (unsigned long )((struct ieee80211_hw *)0)) { tmp___0 = wiphy_name((struct wiphy const *)(wl->hw)->wiphy); tmp___1 = tmp___0; } else { tmp___1 = "wlan"; } printk("\vb43-%s OLD_ERROR: %pV", tmp___1, & vaf); ldv__builtin_va_end((va_list *)(& args)); return; } } void b43warn(struct b43_wl *wl , char const *fmt , ...) { struct va_format vaf ; va_list args ; int tmp ; char const *tmp___0 ; char const *tmp___1 ; { if (b43_modparam_verbose <= 0) { return; } else { } tmp = b43_ratelimit(wl); if (tmp == 0) { return; } else { } ldv__builtin_va_start((va_list *)(& args)); vaf.fmt = fmt; vaf.va = & args; if ((unsigned long )wl != (unsigned long )((struct b43_wl *)0) && (unsigned long )wl->hw != (unsigned long )((struct ieee80211_hw *)0)) { tmp___0 = wiphy_name((struct wiphy const *)(wl->hw)->wiphy); tmp___1 = tmp___0; } else { tmp___1 = "wlan"; } printk("\fb43-%s warning: %pV", tmp___1, & vaf); ldv__builtin_va_end((va_list *)(& args)); return; } } void b43dbg(struct b43_wl *wl , char const *fmt , ...) { struct va_format vaf ; va_list args ; char const *tmp ; char const *tmp___0 ; { if (b43_modparam_verbose <= 2) { return; } else { } ldv__builtin_va_start((va_list *)(& args)); vaf.fmt = fmt; vaf.va = & args; if ((unsigned long )wl != (unsigned long )((struct b43_wl *)0) && (unsigned long )wl->hw != (unsigned long )((struct ieee80211_hw *)0)) { tmp = wiphy_name((struct wiphy const *)(wl->hw)->wiphy); tmp___0 = tmp; } else { tmp___0 = "wlan"; } printk("\017b43-%s debug: %pV", tmp___0, & vaf); ldv__builtin_va_end((va_list *)(& args)); return; } } static void b43_ram_write(struct b43_wldev *dev , u16 offset , u32 val ) { u32 macctl ; int __ret_warn_on ; long tmp ; __u32 tmp___0 ; { __ret_warn_on = ((unsigned int )offset & 3U) != 0U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 471); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); macctl = b43_read32(dev, 288); if ((macctl & 65536U) != 0U) { tmp___0 = __fswab32(val); val = tmp___0; } else { } b43_write32(dev, 304, (u32 )offset); __asm__ volatile ("": : : "memory"); b43_write32(dev, 308, val); return; } } __inline static void b43_shm_control_word(struct b43_wldev *dev , u16 routing , u16 offset ) { u32 control ; { control = (u32 )routing; control = control << 16; control = (u32 )offset | control; b43_write32(dev, 352, control); return; } } u32 b43_shm_read32(struct b43_wldev *dev , u16 routing , u16 offset ) { u32 ret ; int __ret_warn_on ; long tmp ; u16 tmp___0 ; u16 tmp___1 ; { if ((unsigned int )routing == 1U) { __ret_warn_on = (int )offset & 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 499); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if (((int )offset & 3) != 0) { b43_shm_control_word(dev, (int )routing, (int )offset >> 2); tmp___0 = b43_read16(dev, 358); ret = (u32 )tmp___0; b43_shm_control_word(dev, (int )routing, (int )((unsigned int )((u16 )((int )offset >> 2)) + 1U)); tmp___1 = b43_read16(dev, 356); ret = ((unsigned int )tmp___1 << 16) | ret; goto out; } else { } offset = (u16 )((int )offset >> 2); } else { } b43_shm_control_word(dev, (int )routing, (int )offset); ret = b43_read32(dev, 356); out: ; return (ret); } } u16 b43_shm_read16(struct b43_wldev *dev , u16 routing , u16 offset ) { u16 ret ; int __ret_warn_on ; long tmp ; { if ((unsigned int )routing == 1U) { __ret_warn_on = (int )offset & 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 522); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if (((int )offset & 3) != 0) { b43_shm_control_word(dev, (int )routing, (int )offset >> 2); ret = b43_read16(dev, 358); goto out; } else { } offset = (u16 )((int )offset >> 2); } else { } b43_shm_control_word(dev, (int )routing, (int )offset); ret = b43_read16(dev, 356); out: ; return (ret); } } void b43_shm_write32(struct b43_wldev *dev , u16 routing , u16 offset , u32 value ) { int __ret_warn_on ; long tmp ; { if ((unsigned int )routing == 1U) { __ret_warn_on = (int )offset & 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 541); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if (((int )offset & 3) != 0) { b43_shm_control_word(dev, (int )routing, (int )offset >> 2); b43_write16(dev, 358, (int )((u16 )value)); b43_shm_control_word(dev, (int )routing, (int )((unsigned int )((u16 )((int )offset >> 2)) + 1U)); b43_write16(dev, 356, (int )((u16 )(value >> 16))); return; } else { } offset = (u16 )((int )offset >> 2); } else { } b43_shm_control_word(dev, (int )routing, (int )offset); b43_write32(dev, 356, value); return; } } void b43_shm_write16(struct b43_wldev *dev , u16 routing , u16 offset , u16 value ) { int __ret_warn_on ; long tmp ; { if ((unsigned int )routing == 1U) { __ret_warn_on = (int )offset & 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 561); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if (((int )offset & 3) != 0) { b43_shm_control_word(dev, (int )routing, (int )offset >> 2); b43_write16(dev, 358, (int )value); return; } else { } offset = (u16 )((int )offset >> 2); } else { } b43_shm_control_word(dev, (int )routing, (int )offset); b43_write16(dev, 356, (int )value); return; } } u64 b43_hf_read(struct b43_wldev *dev ) { u64 ret ; u16 tmp ; u16 tmp___0 ; u16 tmp___1 ; { tmp = b43_shm_read16(dev, 1, 98); ret = (u64 )tmp; ret = ret << 16; tmp___0 = b43_shm_read16(dev, 1, 96); ret = (u64 )tmp___0 | ret; ret = ret << 16; tmp___1 = b43_shm_read16(dev, 1, 94); ret = (u64 )tmp___1 | ret; return (ret); } } void b43_hf_write(struct b43_wldev *dev , u64 value ) { u16 lo ; u16 mi ; u16 hi ; { lo = (u16 )value; mi = (u16 )((value & 4294901760ULL) >> 16); hi = (u16 )((value & 281470681743360ULL) >> 32); b43_shm_write16(dev, 1, 94, (int )lo); b43_shm_write16(dev, 1, 96, (int )mi); b43_shm_write16(dev, 1, 98, (int )hi); return; } } static u16 b43_fwcapa_read(struct b43_wldev *dev ) { int __ret_warn_on ; long tmp ; u16 tmp___0 ; { __ret_warn_on = ! dev->fw.opensource; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 604); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); tmp___0 = b43_shm_read16(dev, 1, 66); return (tmp___0); } } void b43_tsf_read(struct b43_wldev *dev , u64 *tsf ) { u32 low ; u32 high ; int __ret_warn_on ; long tmp ; { __ret_warn_on = (unsigned int )(dev->dev)->core_rev <= 2U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 612); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); low = b43_read32(dev, 384); high = b43_read32(dev, 388); *tsf = (u64 )high; *tsf = *tsf << 32; *tsf = *tsf | (u64 )low; return; } } static void b43_time_lock(struct b43_wldev *dev ) { { b43_maskset32(dev, 288, 4294967295U, 268435456U); b43_read32(dev, 288); return; } } static void b43_time_unlock(struct b43_wldev *dev ) { { b43_maskset32(dev, 288, 4026531839U, 0U); b43_read32(dev, 288); return; } } static void b43_tsf_write_locked(struct b43_wldev *dev , u64 tsf ) { u32 low ; u32 high ; int __ret_warn_on ; long tmp ; { __ret_warn_on = (unsigned int )(dev->dev)->core_rev <= 2U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 642); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); low = (u32 )tsf; high = (u32 )(tsf >> 32); b43_write32(dev, 384, low); __asm__ volatile ("": : : "memory"); b43_write32(dev, 388, high); __asm__ volatile ("": : : "memory"); return; } } void b43_tsf_write(struct b43_wldev *dev , u64 tsf ) { { b43_time_lock(dev); b43_tsf_write_locked(dev, tsf); b43_time_unlock(dev); return; } } static void b43_macfilter_set(struct b43_wldev *dev , u16 offset , u8 const *mac ) { u8 zero_addr[6U] ; unsigned int tmp ; u16 data ; { zero_addr[0] = 0U; tmp = 1U; while (1) { if (tmp >= 6U) { break; } else { } zero_addr[tmp] = (unsigned char)0; tmp = tmp + 1U; } if ((unsigned long )mac == (unsigned long )((u8 const *)0U)) { mac = (u8 const *)(& zero_addr); } else { } offset = (u16 )((unsigned int )offset | 32U); b43_write16(dev, 1056, (int )offset); data = (u16 )*mac; data = (u16 )((int )((short )((int )*(mac + 1UL) << 8)) | (int )((short )data)); b43_write16(dev, 1058, (int )data); data = (u16 )*(mac + 2UL); data = (u16 )((int )((short )((int )*(mac + 3UL) << 8)) | (int )((short )data)); b43_write16(dev, 1058, (int )data); data = (u16 )*(mac + 4UL); data = (u16 )((int )((short )((int )*(mac + 5UL) << 8)) | (int )((short )data)); b43_write16(dev, 1058, (int )data); return; } } static void b43_write_mac_bssid_templates(struct b43_wldev *dev ) { u8 const *mac ; u8 const *bssid ; u8 mac_bssid[12U] ; int i ; u32 tmp ; { bssid = (u8 const *)(& (dev->wl)->bssid); mac = (u8 const *)(& (dev->wl)->mac_addr); b43_macfilter_set(dev, 3, bssid); memcpy((void *)(& mac_bssid), (void const *)mac, 6UL); memcpy((void *)(& mac_bssid) + 6U, (void const *)bssid, 6UL); i = 0; goto ldv_55300; ldv_55299: tmp = (unsigned int )mac_bssid[i]; tmp = ((unsigned int )mac_bssid[i + 1] << 8) | tmp; tmp = ((unsigned int )mac_bssid[i + 2] << 16) | tmp; tmp = ((unsigned int )mac_bssid[i + 3] << 24) | tmp; b43_ram_write(dev, (int )((unsigned int )((u16 )i) + 32U), tmp); i = (int )((unsigned int )i + 4U); ldv_55300: ; if ((unsigned int )i <= 11U) { goto ldv_55299; } else { } return; } } static void b43_upload_card_macaddress(struct b43_wldev *dev ) { { b43_write_mac_bssid_templates(dev); b43_macfilter_set(dev, 0, (u8 const *)(& (dev->wl)->mac_addr)); return; } } static void b43_set_slot_time(struct b43_wldev *dev , u16 slot_time ) { enum ieee80211_band tmp ; { tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 1U) { return; } else { } b43_write16(dev, 1668, (int )((unsigned int )slot_time + 510U)); return; } } static void b43_short_slot_timing_enable(struct b43_wldev *dev ) { { b43_set_slot_time(dev, 9); return; } } static void b43_short_slot_timing_disable(struct b43_wldev *dev ) { { b43_set_slot_time(dev, 20); return; } } void b43_dummy_transmission(struct b43_wldev *dev , bool ofdm , bool pa_on ) { struct b43_phy *phy ; unsigned int i ; unsigned int max_loop ; u16 value ; u32 buffer[5U] ; { phy = & dev->phy; buffer[0] = 0U; buffer[1] = 13893632U; buffer[2] = 0U; buffer[3] = 16777216U; buffer[4] = 0U; if ((int )ofdm) { max_loop = 30U; buffer[0] = 131532U; } else { max_loop = 250U; buffer[0] = 754798U; } i = 0U; goto ldv_55326; ldv_55325: b43_ram_write(dev, (int )((unsigned int )((u16 )i) * 4U), buffer[i]); i = i + 1U; ldv_55326: ; if (i <= 4U) { goto ldv_55325; } else { } b43_write16(dev, 1384, 0); if ((unsigned int )(dev->dev)->core_rev <= 10U) { b43_write16(dev, 1984, 0); } else { b43_write16(dev, 1984, 256); } value = (int )ofdm ? 65U : 64U; b43_write16(dev, 1292, (int )value); if (((unsigned int )phy->type == 4U || (unsigned int )phy->type == 5U) || (unsigned int )phy->type == 8U) { b43_write16(dev, 1300, 6658); } else { } b43_write16(dev, 1288, 0); b43_write16(dev, 1290, 0); b43_write16(dev, 1356, 0); b43_write16(dev, 1386, 20); b43_write16(dev, 1384, 2086); b43_write16(dev, 1280, 0); switch ((int )phy->type) { case 4: ; case 8: b43_write16(dev, 1282, 208); goto ldv_55330; case 5: b43_write16(dev, 1282, 80); goto ldv_55330; default: b43_write16(dev, 1282, 48); } ldv_55330: b43_read16(dev, 1282); if ((unsigned int )phy->radio_ver == 8272U && (unsigned int )phy->radio_rev <= 5U) { b43_radio_write(dev, 81, 23); } else { } i = 0U; goto ldv_55335; ldv_55334: value = b43_read16(dev, 1294); if (((int )value & 128) != 0) { goto ldv_55333; } else { } __const_udelay(42950UL); i = i + 1U; ldv_55335: ; if (i < max_loop) { goto ldv_55334; } else { } ldv_55333: i = 0U; goto ldv_55338; ldv_55337: value = b43_read16(dev, 1294); if (((int )value & 1024) != 0) { goto ldv_55336; } else { } __const_udelay(42950UL); i = i + 1U; ldv_55338: ; if (i <= 9U) { goto ldv_55337; } else { } ldv_55336: i = 0U; goto ldv_55341; ldv_55340: value = b43_read16(dev, 1680); if (((int )value & 256) == 0) { goto ldv_55339; } else { } __const_udelay(42950UL); i = i + 1U; ldv_55341: ; if (i <= 24U) { goto ldv_55340; } else { } ldv_55339: ; if ((unsigned int )phy->radio_ver == 8272U && (unsigned int )phy->radio_rev <= 5U) { b43_radio_write(dev, 81, 55); } else { } return; } } static void key_write(struct b43_wldev *dev , u8 index , u8 algorithm , u8 const *key ) { unsigned int i ; u32 offset ; u16 value ; u16 kidx ; u8 tmp ; { tmp = b43_kidx_to_fw(dev, (int )index); kidx = (u16 )tmp; value = (u16 )((int )((short )((int )kidx << 4)) | (int )((short )algorithm)); b43_shm_write16(dev, 1, (int )((unsigned int )((u16 )((int )kidx + 746)) * 2U), (int )value); offset = (u32 )((int )dev->ktp + (int )index * 16); i = 0U; goto ldv_55353; ldv_55352: value = (u16 )*(key + (unsigned long )i); value = (u16 )((int )((short )((int )*(key + (unsigned long )(i + 1U)) << 8)) | (int )((short )value)); b43_shm_write16(dev, 1, (int )((u16 )offset) + (int )((u16 )i), (int )value); i = i + 2U; ldv_55353: ; if (i <= 15U) { goto ldv_55352; } else { } return; } } static void keymac_write(struct b43_wldev *dev , u8 index , u8 const *addr ) { u32 addrtmp[2U] ; u8 pairwise_keys_start ; int tmp ; int __ret_warn_on ; long tmp___0 ; int __ret_warn_on___0 ; long tmp___1 ; { addrtmp[0] = 0U; addrtmp[1] = 0U; pairwise_keys_start = 8U; tmp = b43_new_kidx_api(dev); if (tmp != 0) { pairwise_keys_start = 4U; } else { } __ret_warn_on = (int )index < (int )pairwise_keys_start; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 861); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); index = (int )index - (int )pairwise_keys_start; __ret_warn_on___0 = (unsigned int )index > 49U; tmp___1 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 868); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if ((unsigned long )addr != (unsigned long )((u8 const *)0U)) { addrtmp[0] = (u32 )*addr; addrtmp[0] = addrtmp[0] | ((unsigned int )*(addr + 1UL) << 8); addrtmp[0] = addrtmp[0] | ((unsigned int )*(addr + 2UL) << 16); addrtmp[0] = addrtmp[0] | ((unsigned int )*(addr + 3UL) << 24); addrtmp[1] = (u32 )*(addr + 4UL); addrtmp[1] = addrtmp[1] | ((unsigned int )*(addr + 5UL) << 8); } else { } b43_shm_write32(dev, 4, (int )((unsigned int )((u16 )index) * 2U), addrtmp[0]); b43_shm_write16(dev, 4, (int )((unsigned int )((u16 )index) * 2U + 1U), (int )((u16 )addrtmp[1])); return; } } static void rx_tkip_phase1_write(struct b43_wldev *dev , u8 index , u32 iv32 , u16 *phase1key ) { unsigned int i ; u32 offset ; u8 pairwise_keys_start ; int tmp ; int __ret_warn_on ; long tmp___0 ; int __ret_warn_on___0 ; long tmp___1 ; bool tmp___2 ; { pairwise_keys_start = 8U; if (modparam_hwtkip == 0) { return; } else { } tmp = b43_new_kidx_api(dev); if (tmp != 0) { pairwise_keys_start = 4U; } else { } __ret_warn_on = (int )index < (int )pairwise_keys_start; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 916); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); index = (int )index - (int )pairwise_keys_start; __ret_warn_on___0 = (unsigned int )index > 49U; tmp___1 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 923); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); tmp___2 = b43_debug(dev, 7); if ((int )tmp___2) { b43dbg(dev->wl, "rx_tkip_phase1_write : idx 0x%x, iv32 0x%x\n", (int )index, iv32); } else { } offset = (u32 )((int )index * 14 + 792); i = 0U; goto ldv_55380; ldv_55379: b43_shm_write16(dev, 1, (int )((u16 )offset) + (int )((u16 )i), (unsigned long )phase1key != (unsigned long )((u16 *)0U) ? (int )*(phase1key + (unsigned long )(i / 2U)) : 0); i = i + 2U; ldv_55380: ; if (i <= 9U) { goto ldv_55379; } else { } b43_shm_write16(dev, 1, (int )((u16 )offset) + (int )((u16 )i), (int )((u16 )iv32)); b43_shm_write16(dev, 1, (int )((unsigned int )((int )((u16 )offset) + (int )((u16 )i)) + 2U), (int )((u16 )(iv32 >> 16))); return; } } static void b43_op_update_tkip_key(struct ieee80211_hw *hw , struct ieee80211_vif *vif , struct ieee80211_key_conf *keyconf , struct ieee80211_sta *sta , u32 iv32 , u16 *phase1key ) { struct b43_wl *wl ; struct b43_wl *tmp ; struct b43_wldev *dev ; int index ; int __ret_warn_on ; long tmp___0 ; long tmp___1 ; int __ret_warn_on___0 ; int tmp___2 ; long tmp___3 ; int __ret_warn_on___1 ; int tmp___4 ; int tmp___5 ; long tmp___6 ; int __ret_warn_on___2 ; long tmp___7 ; long tmp___8 ; { tmp = hw_to_b43_wl(hw); wl = tmp; index = (int )keyconf->hw_key_idx; __ret_warn_on = modparam_hwtkip == 0; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 949); } else { } tmp___1 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___1 != 0L) { return; } else { } tmp___2 = mutex_is_locked(& wl->mutex); __ret_warn_on___0 = tmp___2 == 0; tmp___3 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___3 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 954); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); dev = wl->current_dev; if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { tmp___5 = 1; } else { tmp___4 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___4 <= 0) { tmp___5 = 1; } else { tmp___5 = 0; } } __ret_warn_on___1 = tmp___5; tmp___6 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___6 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 956); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); keymac_write(dev, (int )((u8 )index), (u8 const *)0U); rx_tkip_phase1_write(dev, (int )((u8 )index), iv32, phase1key); __ret_warn_on___2 = (unsigned long )sta == (unsigned long )((struct ieee80211_sta *)0); tmp___7 = ldv__builtin_expect(__ret_warn_on___2 != 0, 0L); if (tmp___7 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 962); } else { } tmp___8 = ldv__builtin_expect(__ret_warn_on___2 != 0, 0L); if (tmp___8 != 0L) { return; } else { } keymac_write(dev, (int )((u8 )index), (u8 const *)(& sta->addr)); return; } } static void do_key_write(struct b43_wldev *dev , u8 index , u8 algorithm , u8 const *key , size_t key_len , u8 const *mac_addr ) { u8 buf[16U] ; unsigned int tmp ; u8 pairwise_keys_start ; int tmp___0 ; int __ret_warn_on ; long tmp___1 ; int __ret_warn_on___0 ; long tmp___2 ; { buf[0] = 0U; tmp = 1U; while (1) { if (tmp >= 16U) { break; } else { } buf[tmp] = (unsigned char)0; tmp = tmp + 1U; } pairwise_keys_start = 8U; tmp___0 = b43_new_kidx_api(dev); if (tmp___0 != 0) { pairwise_keys_start = 4U; } else { } __ret_warn_on = (unsigned int )index > 57U; tmp___1 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 977); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); __ret_warn_on___0 = key_len > 16UL; tmp___2 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___2 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 978); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if ((int )index >= (int )pairwise_keys_start) { keymac_write(dev, (int )index, (u8 const *)0U); } else { } if ((unsigned int )algorithm == 2U) { rx_tkip_phase1_write(dev, (int )index, 4294967295U, (u16 *)(& buf)); } else if ((int )index >= (int )pairwise_keys_start) { rx_tkip_phase1_write(dev, (int )index, 0U, (u16 *)0U); } else { } if ((unsigned long )key != (unsigned long )((u8 const *)0U)) { memcpy((void *)(& buf), (void const *)key, key_len); } else { } key_write(dev, (int )index, (int )algorithm, (u8 const *)(& buf)); if ((int )index >= (int )pairwise_keys_start) { keymac_write(dev, (int )index, mac_addr); } else { } dev->key[(int )index].algorithm = algorithm; return; } } static int b43_key_write(struct b43_wldev *dev , int index , u8 algorithm , u8 const *key , size_t key_len , u8 const *mac_addr , struct ieee80211_key_conf *keyconf ) { int i ; int pairwise_keys_start ; int __ret_warn_on ; long tmp ; int tmp___0 ; int __ret_warn_on___0 ; long tmp___1 ; int __ret_warn_on___1 ; long tmp___2 ; int __ret_warn_on___2 ; long tmp___3 ; int tmp___4 ; { if ((unsigned int )algorithm == 2U && key_len == 32UL) { key_len = 16UL; } else { } if (key_len > 16UL) { return (-22); } else { } i = 0; goto ldv_55433; ldv_55432: __ret_warn_on = (unsigned long )dev->key[i].keyconf == (unsigned long )keyconf; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 1026); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); i = i + 1; ldv_55433: ; if ((unsigned int )i <= 57U) { goto ldv_55432; } else { } if (index < 0) { tmp___0 = b43_new_kidx_api(dev); if (tmp___0 != 0) { pairwise_keys_start = 4; } else { pairwise_keys_start = 8; } i = pairwise_keys_start; goto ldv_55441; ldv_55440: __ret_warn_on___0 = (unsigned int )i > 57U; tmp___1 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 1037); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if ((unsigned long )dev->key[i].keyconf == (unsigned long )((struct ieee80211_key_conf *)0)) { index = i; goto ldv_55439; } else { } i = i + 1; ldv_55441: ; if (pairwise_keys_start + 50 > i) { goto ldv_55440; } else { } ldv_55439: ; if (index < 0) { b43warn(dev->wl, "Out of hardware key memory\n"); return (-28); } else { } } else { __ret_warn_on___1 = index > 3; tmp___2 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___2 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 1049); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); } do_key_write(dev, (int )((u8 )index), (int )algorithm, key, key_len, mac_addr); if (index <= 3) { tmp___4 = b43_new_kidx_api(dev); if (tmp___4 == 0) { __ret_warn_on___2 = (unsigned long )mac_addr != (unsigned long )((u8 const *)0U); tmp___3 = ldv__builtin_expect(__ret_warn_on___2 != 0, 0L); if (tmp___3 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 1054); } else { } ldv__builtin_expect(__ret_warn_on___2 != 0, 0L); do_key_write(dev, (int )((unsigned int )((u8 )index) + 4U), (int )algorithm, key, key_len, (u8 const *)0U); } else { } } else { } keyconf->hw_key_idx = (u8 )index; dev->key[index].keyconf = keyconf; return (0); } } static int b43_key_clear(struct b43_wldev *dev , int index ) { int __ret_warn_on ; long tmp ; long tmp___0 ; int tmp___1 ; { __ret_warn_on = index < 0 || (unsigned int )index > 57U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 1065); } else { } tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { return (-22); } else { } do_key_write(dev, (int )((u8 )index), 0, (u8 const *)0U, 16UL, (u8 const *)0U); if (index <= 3) { tmp___1 = b43_new_kidx_api(dev); if (tmp___1 == 0) { do_key_write(dev, (int )((unsigned int )((u8 )index) + 4U), 0, (u8 const *)0U, 16UL, (u8 const *)0U); } else { } } else { } dev->key[index].keyconf = (struct ieee80211_key_conf *)0; return (0); } } static void b43_clear_keys(struct b43_wldev *dev ) { int i ; int count ; int tmp ; { tmp = b43_new_kidx_api(dev); if (tmp != 0) { count = 54; } else { count = 58; } i = 0; goto ldv_55460; ldv_55459: b43_key_clear(dev, i); i = i + 1; ldv_55460: ; if (i < count) { goto ldv_55459; } else { } return; } } static void b43_dump_keymemory(struct b43_wldev *dev ) { unsigned int i ; unsigned int index ; unsigned int count ; unsigned int offset ; unsigned int pairwise_keys_start ; u8 mac[6U] ; u16 algo ; u32 rcmta0 ; u16 rcmta1 ; u64 hf ; struct b43_key *key ; bool tmp ; int tmp___0 ; int tmp___1 ; u16 tmp___2 ; u16 tmp___3 ; u16 tmp___4 ; u16 tmp___5 ; { tmp = b43_debug(dev, 7); if (tmp) { tmp___0 = 0; } else { tmp___0 = 1; } if (tmp___0) { return; } else { } hf = b43_hf_read(dev); b43dbg(dev->wl, "Hardware key memory dump: USEDEFKEYS=%u\n", (hf & 16384ULL) != 0ULL); tmp___1 = b43_new_kidx_api(dev); if (tmp___1 != 0) { pairwise_keys_start = 4U; count = 54U; } else { pairwise_keys_start = 8U; count = 58U; } index = 0U; goto ldv_55485; ldv_55484: key = (struct b43_key *)(& dev->key) + (unsigned long )index; printk("\017Key slot %02u: %s", index, (unsigned long )key->keyconf == (unsigned long )((struct ieee80211_key_conf *)0) ? (char *)" " : (char *)"*"); offset = (unsigned int )dev->ktp + index * 16U; i = 0U; goto ldv_55478; ldv_55477: tmp___3 = b43_shm_read16(dev, 1, (int )((u16 )offset) + (int )((u16 )i)); tmp___2 = tmp___3; printk("%02X%02X", (int )tmp___2 & 255, ((int )tmp___2 >> 8) & 255); i = i + 2U; ldv_55478: ; if (i <= 15U) { goto ldv_55477; } else { } algo = b43_shm_read16(dev, 1, (int )((unsigned int )((u16 )(index + 746U)) * 2U)); printk(" Algo: %04X/%02X", (int )algo, (int )key->algorithm); if (index >= pairwise_keys_start) { if ((unsigned int )key->algorithm == 2U) { printk(" TKIP: "); offset = index * 14U + 736U; i = 0U; goto ldv_55482; ldv_55481: tmp___5 = b43_shm_read16(dev, 1, (int )((u16 )offset) + (int )((u16 )i)); tmp___4 = tmp___5; printk("%02X%02X", (int )tmp___4 & 255, ((int )tmp___4 >> 8) & 255); i = i + 2U; ldv_55482: ; if (i <= 13U) { goto ldv_55481; } else { } } else { } rcmta0 = b43_shm_read32(dev, 4, (int )((unsigned int )((u16 )(index - pairwise_keys_start)) * 2U)); rcmta1 = b43_shm_read16(dev, 4, (int )((unsigned int )((u16 )(index - pairwise_keys_start)) * 2U + 1U)); *((__le32 *)(& mac)) = rcmta0; *((__le16 *)(& mac) + 4U) = rcmta1; printk(" MAC: %pM", (u8 *)(& mac)); } else { printk(" DEFAULT KEY"); } printk("\n"); index = index + 1U; ldv_55485: ; if (index < count) { goto ldv_55484; } else { } return; } } void b43_power_saving_ctl_bits(struct b43_wldev *dev , unsigned int ps_flags ) { u32 macctl ; u16 ucstat ; bool hwps ; bool awake ; int i ; int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; { __ret_warn_on = (int )ps_flags & 1 && (ps_flags & 2U) != 0U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 1158); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); __ret_warn_on___0 = (ps_flags & 4U) != 0U && (ps_flags & 8U) != 0U; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 1159); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if ((int )ps_flags & 1) { hwps = 1; } else if ((ps_flags & 2U) != 0U) { hwps = 0; } else { } if ((ps_flags & 4U) != 0U) { awake = 1; } else if ((ps_flags & 8U) != 0U) { awake = 0; } else { } hwps = 0; awake = 1; macctl = b43_read32(dev, 288); if ((int )hwps) { macctl = macctl | 33554432U; } else { macctl = macctl & 4261412863U; } if ((int )awake) { macctl = macctl | 67108864U; } else { macctl = macctl & 4227858431U; } b43_write32(dev, 288, macctl); b43_read32(dev, 288); if ((int )awake && (unsigned int )(dev->dev)->core_rev > 4U) { i = 0; goto ldv_55502; ldv_55501: ucstat = b43_shm_read16(dev, 1, 64); if ((unsigned int )ucstat != 4U) { goto ldv_55500; } else { } __const_udelay(42950UL); i = i + 1; ldv_55502: ; if (i <= 99) { goto ldv_55501; } else { } ldv_55500: ; } else { } return; } } void b43_wireless_core_phy_pll_reset(struct b43_wldev *dev ) { struct bcma_drv_cc *bcma_cc ; struct ssb_chipcommon *ssb_cc ; u32 tmp ; u32 tmp___0 ; u32 tmp___1 ; u32 tmp___2 ; u32 tmp___3 ; u32 tmp___4 ; { switch ((unsigned int )(dev->dev)->bus_type) { case 0U: bcma_cc = & (((dev->dev)->__annonCompField105.bdev)->bus)->drv_cc; bcma_write32(bcma_cc->core, 1616, 0U); tmp = bcma_read32(bcma_cc->core, 1620); bcma_write32(bcma_cc->core, 1620, tmp & 4294967291U); tmp___0 = bcma_read32(bcma_cc->core, 1620); bcma_write32(bcma_cc->core, 1620, tmp___0 | 4U); tmp___1 = bcma_read32(bcma_cc->core, 1620); bcma_write32(bcma_cc->core, 1620, tmp___1 & 4294967291U); goto ldv_55509; case 1U: ssb_cc = & (((dev->dev)->__annonCompField105.sdev)->bus)->chipco; ssb_write32(ssb_cc->dev, 1616, 0U); tmp___2 = ssb_read32(ssb_cc->dev, 1620); ssb_write32(ssb_cc->dev, 1620, tmp___2 & 4294967291U); tmp___3 = ssb_read32(ssb_cc->dev, 1620); ssb_write32(ssb_cc->dev, 1620, tmp___3 | 4U); tmp___4 = ssb_read32(ssb_cc->dev, 1620); ssb_write32(ssb_cc->dev, 1620, tmp___4 & 4294967291U); goto ldv_55509; } ldv_55509: ; return; } } static void b43_bcma_phy_reset(struct b43_wldev *dev ) { u32 flags ; { flags = bcma_aread32((dev->dev)->__annonCompField105.bdev, 1032); flags = flags | 8U; flags = flags | 64U; bcma_awrite32((dev->dev)->__annonCompField105.bdev, 1032, flags); __const_udelay(8590UL); b43_phy_take_out_of_reset(dev); return; } } static void b43_bcma_wireless_core_reset(struct b43_wldev *dev , bool gmode ) { u32 req ; u32 status ; u32 flags ; u16 tmp ; u32 tmp___0 ; u32 tmp___1 ; u32 tmp___2 ; { req = 768U; status = 50331648U; flags = 4U; if ((int )gmode) { flags = flags | 8192U; } else { } b43_device_enable(dev, flags); if ((unsigned int )dev->phy.type == 11U) { tmp___0 = bcma_aread32((dev->dev)->__annonCompField105.bdev, 1032); tmp = (u16 )tmp___0; tmp = (unsigned int )tmp & 64767U; tmp = (u16 )((unsigned int )tmp | 256U); bcma_awrite32((dev->dev)->__annonCompField105.bdev, 1032, (u32 )tmp); tmp___1 = bcma_aread32((dev->dev)->__annonCompField105.bdev, 1032); tmp = (u16 )tmp___1; tmp = (unsigned int )tmp & 65531U; bcma_awrite32((dev->dev)->__annonCompField105.bdev, 1032, (u32 )tmp); tmp___2 = bcma_aread32((dev->dev)->__annonCompField105.bdev, 1032); tmp = (u16 )tmp___2; tmp = (u16 )((unsigned int )tmp | 4U); bcma_awrite32((dev->dev)->__annonCompField105.bdev, 1032, (u32 )tmp); } else { } bcma_core_set_clockmode((dev->dev)->__annonCompField105.bdev, 0); b43_bcma_phy_reset(dev); bcma_core_pll_ctl((dev->dev)->__annonCompField105.bdev, req, status, 1); return; } } static void b43_ssb_wireless_core_reset(struct b43_wldev *dev , bool gmode ) { u32 flags ; { flags = 0U; if ((int )gmode) { flags = flags | 536870912U; } else { } flags = flags | 262144U; flags = flags | 524288U; if ((unsigned int )dev->phy.type == 4U) { flags = flags | 4194304U; } else { } b43_device_enable(dev, flags); msleep(2U); b43_phy_take_out_of_reset(dev); return; } } void b43_wireless_core_reset(struct b43_wldev *dev , bool gmode ) { u32 macctl ; { switch ((unsigned int )(dev->dev)->bus_type) { case 0U: b43_bcma_wireless_core_reset(dev, (int )gmode); goto ldv_55534; case 1U: b43_ssb_wireless_core_reset(dev, (int )gmode); goto ldv_55534; } ldv_55534: ; if ((unsigned long )dev->phy.ops != (unsigned long )((struct b43_phy_operations const *)0)) { (*((dev->phy.ops)->switch_analog))(dev, 1); } else { } macctl = b43_read32(dev, 288); macctl = macctl & 2147483647U; if ((int )gmode) { macctl = macctl | 2147483648U; } else { } macctl = macctl | 1024U; b43_write32(dev, 288, macctl); return; } } static void handle_irq_transmit_status(struct b43_wldev *dev ) { u32 v0 ; u32 v1 ; u16 tmp ; struct b43_txstatus stat ; { ldv_55544: v0 = b43_read32(dev, 368); if ((v0 & 1U) == 0U) { goto ldv_55543; } else { } v1 = b43_read32(dev, 372); stat.cookie = (u16 )(v0 >> 16); stat.seq = (u16 )v1; stat.phy_stat = (u8 )((v1 & 16711680U) >> 16); tmp = (u16 )v0; stat.frame_count = (u8 )((int )tmp >> 12); stat.rts_count = (u8 )(((int )tmp & 3840) >> 8); stat.supp_reason = (u8 )(((int )tmp & 28) >> 2); stat.pm_indicated = ((int )tmp & 128) != 0; stat.intermediate = ((int )tmp & 64) != 0; stat.for_ampdu = ((int )tmp & 32) != 0; stat.acked = ((int )tmp & 2) != 0; b43_handle_txstatus(dev, (struct b43_txstatus const *)(& stat)); goto ldv_55544; ldv_55543: ; return; } } static void drain_txstatus_queue(struct b43_wldev *dev ) { u32 dummy ; { if ((unsigned int )(dev->dev)->core_rev <= 4U) { return; } else { } ldv_55550: dummy = b43_read32(dev, 368); if ((dummy & 1U) == 0U) { goto ldv_55549; } else { } dummy = b43_read32(dev, 372); goto ldv_55550; ldv_55549: ; return; } } static u32 b43_jssi_read(struct b43_wldev *dev ) { u32 val ; u16 tmp ; u16 tmp___0 ; { val = 0U; tmp = b43_shm_read16(dev, 1, 138); val = (u32 )tmp; val = val << 16; tmp___0 = b43_shm_read16(dev, 1, 136); val = (u32 )tmp___0 | val; return (val); } } static void b43_jssi_write(struct b43_wldev *dev , u32 jssi ) { { b43_shm_write16(dev, 1, 136, (int )((u16 )jssi)); b43_shm_write16(dev, 1, 138, (int )((u16 )(jssi >> 16))); return; } } static void b43_generate_noise_sample(struct b43_wldev *dev ) { u32 tmp ; { b43_jssi_write(dev, 2139062143U); tmp = b43_read32(dev, 292); b43_write32(dev, 292, tmp | 16U); return; } } static void b43_calculate_link_quality(struct b43_wldev *dev ) { { if ((unsigned int )dev->phy.type != 2U) { return; } else { } if ((int )dev->noisecalc.calculation_running) { return; } else { } dev->noisecalc.calculation_running = 1; dev->noisecalc.nr_samples = 0U; b43_generate_noise_sample(dev); return; } } static void handle_irq_noise(struct b43_wldev *dev ) { struct b43_phy_g *phy ; u16 tmp ; u8 noise[4U] ; u8 i ; u8 j ; s32 average ; int __ret_warn_on ; long tmp___0 ; int __ret_warn_on___0 ; long tmp___1 ; u8 __min1 ; u8 __max1 ; u8 __max2 ; u8 __min2 ; u8 __min1___0 ; u8 __max1___0 ; u8 __max2___0 ; u8 __min2___0 ; u8 __min1___1 ; u8 __max1___1 ; u8 __max2___1 ; u8 __min2___1 ; u8 __min1___2 ; u8 __max1___2 ; u8 __max2___2 ; u8 __min2___2 ; { phy = dev->phy.__annonCompField106.g; if ((unsigned int )dev->phy.type != 2U) { return; } else { } __ret_warn_on = ! dev->noisecalc.calculation_running; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 1445); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); *((__le32 *)(& noise)) = b43_jssi_read(dev); if ((((unsigned int )noise[0] == 127U || (unsigned int )noise[1] == 127U) || (unsigned int )noise[2] == 127U) || (unsigned int )noise[3] == 127U) { goto generate_new; } else { } __ret_warn_on___0 = (unsigned int )dev->noisecalc.nr_samples > 7U; tmp___1 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 1452); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); i = dev->noisecalc.nr_samples; __max1 = noise[0]; __max2 = 0U; __min1 = (u8 )((int )__max1 > (int )__max2 ? __max1 : __max2); __min2 = 63U; noise[0] = (u8 )((int )__min1 < (int )__min2 ? __min1 : __min2); __max1___0 = noise[1]; __max2___0 = 0U; __min1___0 = (u8 )((int )__max1___0 > (int )__max2___0 ? __max1___0 : __max2___0); __min2___0 = 63U; noise[1] = (u8 )((int )__min1___0 < (int )__min2___0 ? __min1___0 : __min2___0); __max1___1 = noise[2]; __max2___1 = 0U; __min1___1 = (u8 )((int )__max1___1 > (int )__max2___1 ? __max1___1 : __max2___1); __min2___1 = 63U; noise[2] = (u8 )((int )__min1___1 < (int )__min2___1 ? __min1___1 : __min2___1); __max1___2 = noise[3]; __max2___2 = 0U; __min1___2 = (u8 )((int )__max1___2 > (int )__max2___2 ? __max1___2 : __max2___2); __min2___2 = 63U; noise[3] = (u8 )((int )__min1___2 < (int )__min2___2 ? __min1___2 : __min2___2); dev->noisecalc.samples[(int )i][0] = phy->nrssi_lt[(int )noise[0]]; dev->noisecalc.samples[(int )i][1] = phy->nrssi_lt[(int )noise[1]]; dev->noisecalc.samples[(int )i][2] = phy->nrssi_lt[(int )noise[2]]; dev->noisecalc.samples[(int )i][3] = phy->nrssi_lt[(int )noise[3]]; dev->noisecalc.nr_samples = (u8 )((int )dev->noisecalc.nr_samples + 1); if ((unsigned int )dev->noisecalc.nr_samples == 8U) { average = 0; i = 0U; goto ldv_55615; ldv_55614: j = 0U; goto ldv_55612; ldv_55611: average = (int )dev->noisecalc.samples[(int )i][(int )j] + average; j = (u8 )((int )j + 1); ldv_55612: ; if ((unsigned int )j <= 3U) { goto ldv_55611; } else { } i = (u8 )((int )i + 1); ldv_55615: ; if ((unsigned int )i <= 7U) { goto ldv_55614; } else { } average = average / 32; average = average * 125; average = average + 64; average = average / 128; tmp = b43_shm_read16(dev, 1, 1036); tmp = (unsigned int )((u16 )((unsigned int )tmp / 128U)) & 31U; if ((unsigned int )tmp > 7U) { average = average + 2; } else { average = average + -25; } if ((unsigned int )tmp == 8U) { average = average + -72; } else { average = average + -48; } dev->stats.link_noise = (u8 )average; dev->noisecalc.calculation_running = 0; return; } else { } generate_new: b43_generate_noise_sample(dev); return; } } static void handle_irq_tbtt_indication(struct b43_wldev *dev ) { int tmp ; int tmp___0 ; { tmp = b43_is_mode(dev->wl, 3); if (tmp != 0) { } else { b43_power_saving_ctl_bits(dev, 0U); } tmp___0 = b43_is_mode(dev->wl, 1); if (tmp___0 != 0) { dev->dfq_valid = 1; } else { } return; } } static void handle_irq_atim_end(struct b43_wldev *dev ) { u32 tmp ; { if ((int )dev->dfq_valid) { tmp = b43_read32(dev, 292); b43_write32(dev, 292, tmp | 4U); dev->dfq_valid = 0; } else { } return; } } static void handle_irq_pmq(struct b43_wldev *dev ) { u32 tmp ; { ldv_55628: tmp = b43_read32(dev, 320); if ((tmp & 8U) == 0U) { goto ldv_55627; } else { } goto ldv_55628; ldv_55627: b43_write16(dev, 320, 2); return; } } static void b43_write_template_common(struct b43_wldev *dev , u8 const *data , u16 size , u16 ram_offset , u16 shm_size_offset , u8 rate ) { u32 i ; u32 tmp ; struct b43_plcp_hdr4 plcp ; { plcp.__annonCompField110.data = 0U; b43_generate_plcp_hdr(& plcp, (int )((unsigned int )((u16 const )size) + 4U), (int )rate); b43_ram_write(dev, (int )ram_offset, plcp.__annonCompField110.data); ram_offset = (unsigned int )ram_offset + 4U; tmp = (unsigned int )*data << 16; tmp = ((unsigned int )*(data + 1UL) << 24) | tmp; b43_ram_write(dev, (int )ram_offset, tmp); ram_offset = (unsigned int )ram_offset + 4U; i = 2U; goto ldv_55641; ldv_55640: tmp = (unsigned int )*(data + (unsigned long )i); if (i + 1U < (u32 )size) { tmp = ((unsigned int )*(data + (unsigned long )(i + 1U)) << 8) | tmp; } else { } if (i + 2U < (u32 )size) { tmp = ((unsigned int )*(data + (unsigned long )(i + 2U)) << 16) | tmp; } else { } if (i + 3U < (u32 )size) { tmp = ((unsigned int )*(data + (unsigned long )(i + 3U)) << 24) | tmp; } else { } b43_ram_write(dev, (int )((unsigned int )((int )((u16 )i) + (int )ram_offset) - 2U), tmp); i = i + 4U; ldv_55641: ; if ((u32 )size > i) { goto ldv_55640; } else { } b43_shm_write16(dev, 1, (int )shm_size_offset, (int )((unsigned int )size + 6U)); return; } } u8 b43_ieee80211_antenna_sanitize(struct b43_wldev *dev , u8 antenna_nr ) { u8 antenna_mask ; { if ((unsigned int )antenna_nr == 0U) { return (0U); } else { } if ((int )dev->phy.gmode) { antenna_mask = ((dev->dev)->bus_sprom)->ant_available_bg; } else { antenna_mask = ((dev->dev)->bus_sprom)->ant_available_a; } if ((((int )antenna_mask >> ((int )antenna_nr + -1)) & 1) == 0) { return (0U); } else { } return (antenna_nr); } } static u16 b43_antenna_to_phyctl(int antenna ) { int __ret_warn_on ; long tmp ; { switch (antenna) { case 0: ; return (0U); case 1: ; return (64U); case 4: ; return (256U); case 8: ; return (512U); case 2: ; case 3: ; return (192U); } __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 1606); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return (0U); } } static void b43_write_beacon_template(struct b43_wldev *dev , u16 ram_offset , u16 shm_size_offset ) { unsigned int i ; unsigned int len ; unsigned int variable_len ; struct ieee80211_mgmt const *bcn ; u8 const *ie ; bool tim_found ; unsigned int rate ; u16 ctl ; int antenna ; struct ieee80211_tx_info *info ; unsigned long flags ; struct sk_buff *beacon_skb ; raw_spinlock_t *tmp ; struct ieee80211_rate *tmp___0 ; size_t __min1 ; size_t __min2 ; u16 tmp___1 ; int tmp___2 ; uint8_t ie_id ; uint8_t ie_len ; u16 tim_position ; u16 dtim_period ; { tim_found = 0; tmp = spinlock_check(& (dev->wl)->beacon_lock); flags = _raw_spin_lock_irqsave(tmp); info = IEEE80211_SKB_CB((dev->wl)->current_beacon); tmp___0 = ieee80211_get_tx_rate((struct ieee80211_hw const *)(dev->wl)->hw, (struct ieee80211_tx_info const *)info); rate = (unsigned int )tmp___0->hw_value; beacon_skb = skb_clone((dev->wl)->current_beacon, 32U); spin_unlock_irqrestore(& (dev->wl)->beacon_lock, flags); if ((unsigned long )beacon_skb == (unsigned long )((struct sk_buff *)0)) { b43dbg(dev->wl, "Could not upload beacon. Failed to clone beacon skb."); return; } else { } bcn = (struct ieee80211_mgmt const *)beacon_skb->data; __min1 = (size_t )beacon_skb->len; __min2 = 506UL; len = (unsigned int )(__min1 < __min2 ? __min1 : __min2); b43_write_template_common(dev, (u8 const *)bcn, (int )((u16 )len), (int )ram_offset, (int )shm_size_offset, (int )((u8 )rate)); antenna = 2; tmp___1 = b43_antenna_to_phyctl(antenna); antenna = (int )tmp___1; ctl = b43_shm_read16(dev, 1, 84); ctl = (unsigned int )ctl & 65519U; ctl = (unsigned int )ctl & 64575U; ctl = (unsigned int )ctl & 65532U; ctl = (u16 )((int )((short )antenna) | (int )((short )ctl)); tmp___2 = b43_is_cck_rate((int )rate); if (tmp___2 != 0) { ctl = ctl; } else { ctl = (u16 )((unsigned int )ctl | 1U); } b43_shm_write16(dev, 1, 84, (int )ctl); ie = (u8 const *)(& bcn->u.beacon.variable); variable_len = len - 36U; i = 0U; goto ldv_55688; ldv_55687: ie_id = *(ie + (unsigned long )i); ie_len = *(ie + (unsigned long )(i + 1U)); if ((unsigned int )ie_id == 5U) { if (((unsigned int )ie_len + i) + 2U > variable_len) { goto ldv_55686; } else { } if ((unsigned int )ie_len <= 3U) { goto ldv_55686; } else { } tim_found = 1; tim_position = 6U; tim_position = (unsigned int )tim_position + 36U; tim_position = (int )((u16 )i) + (int )tim_position; dtim_period = (u16 )*(ie + (unsigned long )(i + 3U)); b43_shm_write16(dev, 1, 30, (int )tim_position); b43_shm_write16(dev, 1, 18, (int )dtim_period); goto ldv_55686; } else { } i = ((unsigned int )ie_len + i) + 2U; ldv_55688: ; if (variable_len - 2U > i) { goto ldv_55687; } else { } ldv_55686: ; if (! tim_found) { b43_shm_write16(dev, 1, 30, (int )((unsigned int )((u16 )len) + 6U)); b43_shm_write16(dev, 1, 18, 0); } else { } b43dbg(dev->wl, "Updated beacon template at 0x%x\n", (int )ram_offset); dev_kfree_skb_any(beacon_skb); return; } } static void b43_upload_beacon0(struct b43_wldev *dev ) { struct b43_wl *wl ; { wl = dev->wl; if ((int )wl->beacon0_uploaded) { return; } else { } b43_write_beacon_template(dev, 104, 24); wl->beacon0_uploaded = 1; return; } } static void b43_upload_beacon1(struct b43_wldev *dev ) { struct b43_wl *wl ; { wl = dev->wl; if ((int )wl->beacon1_uploaded) { return; } else { } b43_write_beacon_template(dev, 1128, 26); wl->beacon1_uploaded = 1; return; } } static void handle_irq_beacon(struct b43_wldev *dev ) { struct b43_wl *wl ; u32 cmd ; u32 beacon0_valid ; u32 beacon1_valid ; int tmp ; int tmp___0 ; int tmp___1 ; long tmp___2 ; { wl = dev->wl; tmp = b43_is_mode(wl, 3); if (tmp == 0) { tmp___0 = b43_is_mode(wl, 7); if (tmp___0 == 0) { tmp___1 = b43_is_mode(wl, 1); if (tmp___1 == 0) { return; } else { } } else { } } else { } dev->irq_mask = dev->irq_mask & 4294967293U; cmd = b43_read32(dev, 292); beacon0_valid = cmd & 1U; beacon1_valid = cmd & 2U; if (beacon0_valid != 0U && beacon1_valid != 0U) { b43_write32(dev, 296, 2U); dev->irq_mask = dev->irq_mask | 2U; return; } else { } tmp___2 = ldv__builtin_expect((long )wl->beacon_templates_virgin, 0L); if (tmp___2 != 0L) { wl->beacon_templates_virgin = 0; b43_upload_beacon0(dev); b43_upload_beacon1(dev); cmd = b43_read32(dev, 292); cmd = cmd | 1U; b43_write32(dev, 292, cmd); } else if (beacon0_valid == 0U) { b43_upload_beacon0(dev); cmd = b43_read32(dev, 292); cmd = cmd | 1U; b43_write32(dev, 292, cmd); } else if (beacon1_valid == 0U) { b43_upload_beacon1(dev); cmd = b43_read32(dev, 292); cmd = cmd | 2U; b43_write32(dev, 292, cmd); } else { } return; } } static void b43_do_beacon_update_trigger_work(struct b43_wldev *dev ) { u32 old_irq_mask ; int __ret_warn_on ; long tmp ; u32 tmp___0 ; { old_irq_mask = dev->irq_mask; handle_irq_beacon(dev); if (dev->irq_mask != old_irq_mask) { __ret_warn_on = dev->irq_mask == 0U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 1790); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); tmp___0 = b43_read32(dev, 300); if (tmp___0 != 0U) { b43_write32(dev, 300, dev->irq_mask); } else { } } else { } return; } } static void b43_beacon_update_trigger_work(struct work_struct *work ) { struct b43_wl *wl ; struct work_struct const *__mptr ; struct b43_wldev *dev ; bool tmp ; int tmp___0 ; int tmp___1 ; long tmp___2 ; { __mptr = (struct work_struct const *)work; wl = (struct b43_wl *)__mptr + 0xfffffffffffffde0UL; mutex_lock_nested(& wl->mutex, 0U); dev = wl->current_dev; if ((unsigned long )dev != (unsigned long )((struct b43_wldev *)0)) { tmp___0 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___0 > 0) { tmp___1 = 1; } else { tmp___1 = 0; } } else { tmp___1 = 0; } tmp___2 = ldv__builtin_expect((long )tmp___1, 1L); if (tmp___2 != 0L) { tmp = b43_bus_host_is_sdio(dev->dev); if ((int )tmp) { b43_do_beacon_update_trigger_work(dev); __asm__ volatile ("": : : "memory"); } else { spin_lock_irq(& wl->hardirq_lock); b43_do_beacon_update_trigger_work(dev); __asm__ volatile ("": : : "memory"); spin_unlock_irq(& wl->hardirq_lock); } } else { } mutex_unlock(& wl->mutex); return; } } static void b43_update_templates(struct b43_wl *wl ) { struct sk_buff *beacon ; struct sk_buff *old_beacon ; unsigned long flags ; long tmp ; raw_spinlock_t *tmp___0 ; { beacon = ieee80211_beacon_get(wl->hw, wl->vif); tmp = ldv__builtin_expect((unsigned long )beacon == (unsigned long )((struct sk_buff *)0), 0L); if (tmp != 0L) { return; } else { } tmp___0 = spinlock_check(& wl->beacon_lock); flags = _raw_spin_lock_irqsave(tmp___0); old_beacon = wl->current_beacon; wl->current_beacon = beacon; wl->beacon0_uploaded = 0; wl->beacon1_uploaded = 0; spin_unlock_irqrestore(& wl->beacon_lock, flags); ieee80211_queue_work(wl->hw, & wl->beacon_update_trigger); if ((unsigned long )old_beacon != (unsigned long )((struct sk_buff *)0)) { dev_kfree_skb_any(old_beacon); } else { } return; } } static void b43_set_beacon_int(struct b43_wldev *dev , u16 beacon_int ) { { b43_time_lock(dev); if ((unsigned int )(dev->dev)->core_rev > 2U) { b43_write32(dev, 392, (u32 )((int )beacon_int << 16)); b43_write32(dev, 396, (u32 )((int )beacon_int << 10)); } else { b43_write16(dev, 1542, (int )beacon_int >> 6); b43_write16(dev, 1552, (int )beacon_int); } b43_time_unlock(dev); b43dbg(dev->wl, "Set beacon interval to %u\n", (int )beacon_int); return; } } static void b43_handle_firmware_panic(struct b43_wldev *dev ) { u16 reason ; { reason = b43_shm_read16(dev, 2, 3); b43err(dev->wl, "Whoopsy, firmware panic! Reason: %u\n", (int )reason); switch ((int )reason) { default: b43dbg(dev->wl, "The panic reason is unknown.\n"); case 0: ; goto ldv_55736; case 1: b43_controller_restart(dev, "Microcode panic"); goto ldv_55736; } ldv_55736: ; return; } } static void handle_irq_ucode_debug(struct b43_wldev *dev ) { unsigned int i ; unsigned int cnt ; u16 reason ; u16 marker_id ; u16 marker_line ; __le16 *buf ; void *tmp ; u16 tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; u16 tmp___3 ; { if (! dev->fw.opensource) { return; } else { } reason = b43_shm_read16(dev, 2, 63); switch ((int )reason) { case 0: b43_handle_firmware_panic(dev); goto ldv_55748; case 1: tmp = kmalloc(4096UL, 32U); buf = (__le16 *)tmp; if ((unsigned long )buf == (unsigned long )((__le16 *)0U)) { b43dbg(dev->wl, "SHM-dump: Failed to allocate memory\n"); goto out; } else { } i = 0U; goto ldv_55753; ldv_55752: tmp___1 = b43_shm_read16(dev, 1, (int )((u16 )i)); tmp___0 = tmp___1; *(buf + (unsigned long )(i / 2U)) = tmp___0; i = i + 2U; ldv_55753: ; if (i <= 4095U) { goto ldv_55752; } else { } b43info(dev->wl, "Shared memory dump:\n"); print_hex_dump("\016", "", 2, 16, 2, (void const *)buf, 4096UL, 1); kfree((void const *)buf); goto ldv_55748; case 2: b43info(dev->wl, "Microcode register dump:\n"); i = 0U; cnt = 0U; goto ldv_55758; ldv_55757: tmp___3 = b43_shm_read16(dev, 2, (int )((u16 )i)); tmp___2 = tmp___3; if (cnt == 0U) { printk("\016"); } else { } printk("r%02u: 0x%04X ", i, (int )tmp___2); cnt = cnt + 1U; if (cnt == 6U) { printk("\n"); cnt = 0U; } else { } i = i + 1U; ldv_55758: ; if (i <= 63U) { goto ldv_55757; } else { } printk("\n"); goto ldv_55748; case 3: marker_id = b43_shm_read16(dev, 2, 2); marker_line = b43_shm_read16(dev, 2, 3); b43info(dev->wl, "The firmware just executed the MARKER(%u) at line number %u\n", (int )marker_id, (int )marker_line); goto ldv_55748; default: b43dbg(dev->wl, "Debug-IRQ triggered for unknown reason: %u\n", (int )reason); } ldv_55748: ; out: b43_shm_write16(dev, 2, 63, 65535); return; } } static void b43_do_interrupt_thread(struct b43_wldev *dev ) { u32 reason ; u32 dma_reason[6U] ; u32 merged_dma_reason ; int i ; int tmp ; long tmp___0 ; long tmp___1 ; int tmp___2 ; long tmp___3 ; long tmp___4 ; long tmp___5 ; long tmp___6 ; bool tmp___7 ; int __ret_warn_on ; long tmp___8 ; int __ret_warn_on___0 ; long tmp___9 ; int __ret_warn_on___1 ; long tmp___10 ; int __ret_warn_on___2 ; long tmp___11 ; int __ret_warn_on___3 ; long tmp___12 ; bool tmp___13 ; { merged_dma_reason = 0U; tmp = atomic_read((atomic_t const *)(& dev->__init_status)); tmp___0 = ldv__builtin_expect(tmp != 2, 0L); if (tmp___0 != 0L) { return; } else { } reason = dev->irq_reason; i = 0; goto ldv_55774; ldv_55773: dma_reason[i] = dev->dma_reason[i]; merged_dma_reason = dma_reason[i] | merged_dma_reason; i = i + 1; ldv_55774: ; if ((unsigned int )i <= 5U) { goto ldv_55773; } else { } tmp___1 = ldv__builtin_expect((reason & 512U) != 0U, 0L); if (tmp___1 != 0L) { b43err(dev->wl, "MAC transmission error\n"); } else { } tmp___4 = ldv__builtin_expect((reason & 2048U) != 0U, 0L); if (tmp___4 != 0L) { b43err(dev->wl, "PHY transmission error\n"); __asm__ volatile ("lfence": : : "memory"); tmp___2 = atomic_dec_and_test(& dev->phy.txerr_cnt); tmp___3 = ldv__builtin_expect(tmp___2 != 0, 0L); if (tmp___3 != 0L) { atomic_set(& dev->phy.txerr_cnt, 1000); b43err(dev->wl, "Too many PHY TX errors, restarting the controller\n"); b43_controller_restart(dev, "PHY TX errors"); } else { } } else { } tmp___5 = ldv__builtin_expect((merged_dma_reason & 56320U) != 0U, 0L); if (tmp___5 != 0L) { b43err(dev->wl, "Fatal DMA error: 0x%08X, 0x%08X, 0x%08X, 0x%08X, 0x%08X, 0x%08X\n", dma_reason[0], dma_reason[1], dma_reason[2], dma_reason[3], dma_reason[4], dma_reason[5]); b43err(dev->wl, "This device does not support DMA on your system. It will now be switched to PIO.\n"); dev->use_pio = 1; b43_controller_restart(dev, "DMA error"); return; } else { } tmp___6 = ldv__builtin_expect((reason & 134217728U) != 0U, 0L); if (tmp___6 != 0L) { handle_irq_ucode_debug(dev); } else { } if ((reason & 4U) != 0U) { handle_irq_tbtt_indication(dev); } else { } if ((reason & 32U) != 0U) { handle_irq_atim_end(dev); } else { } if ((reason & 2U) != 0U) { handle_irq_beacon(dev); } else { } if ((reason & 64U) != 0U) { handle_irq_pmq(dev); } else { } if ((reason & 262144U) != 0U) { handle_irq_noise(dev); } else { } if ((dma_reason[0] & 8192U) != 0U) { b43warn(dev->wl, "RX descriptor underrun\n"); b43_dma_handle_rx_overflow(dev->__annonCompField107.dma.rx_ring); } else { } if ((dma_reason[0] & 65536U) != 0U) { tmp___7 = b43_using_pio_transfers(dev); if ((int )tmp___7) { b43_pio_rx(dev->__annonCompField107.pio.rx_queue); } else { b43_dma_rx(dev->__annonCompField107.dma.rx_ring); } } else { } __ret_warn_on = (dma_reason[1] & 65536U) != 0U; tmp___8 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___8 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 2041); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); __ret_warn_on___0 = (dma_reason[2] & 65536U) != 0U; tmp___9 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___9 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 2042); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); __ret_warn_on___1 = (dma_reason[3] & 65536U) != 0U; tmp___10 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___10 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 2043); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); __ret_warn_on___2 = (dma_reason[4] & 65536U) != 0U; tmp___11 = ldv__builtin_expect(__ret_warn_on___2 != 0, 0L); if (tmp___11 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 2044); } else { } ldv__builtin_expect(__ret_warn_on___2 != 0, 0L); __ret_warn_on___3 = (dma_reason[5] & 65536U) != 0U; tmp___12 = ldv__builtin_expect(__ret_warn_on___3 != 0, 0L); if (tmp___12 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 2045); } else { } ldv__builtin_expect(__ret_warn_on___3 != 0, 0L); if ((reason & 536870912U) != 0U) { handle_irq_transmit_status(dev); } else { } b43_write32(dev, 300, dev->irq_mask); tmp___13 = b43_debug(dev, 8); if ((int )tmp___13) { dev->irq_count = dev->irq_count + 1U; i = 0; goto ldv_55789; ldv_55788: ; if (((u32 )(1 << i) & reason) != 0U) { dev->irq_bit_count[i] = dev->irq_bit_count[i] + 1U; } else { } i = i + 1; ldv_55789: ; if ((unsigned int )i <= 31U) { goto ldv_55788; } else { } } else { } return; } } static irqreturn_t b43_interrupt_thread_handler(int irq , void *dev_id ) { struct b43_wldev *dev ; { dev = (struct b43_wldev *)dev_id; mutex_lock_nested(& (dev->wl)->mutex, 0U); b43_do_interrupt_thread(dev); __asm__ volatile ("": : : "memory"); mutex_unlock(& (dev->wl)->mutex); return (1); } } static irqreturn_t b43_do_interrupt(struct b43_wldev *dev ) { u32 reason ; u32 tmp ; u32 tmp___0 ; u32 tmp___1 ; u32 tmp___2 ; u32 tmp___3 ; { reason = b43_read32(dev, 296); if (reason == 4294967295U) { return (0); } else { } reason = dev->irq_mask & reason; if (reason == 0U) { return (0); } else { } tmp = b43_read32(dev, 32); dev->dma_reason[0] = tmp & 130048U; tmp___0 = b43_read32(dev, 40); dev->dma_reason[1] = tmp___0 & 56320U; tmp___1 = b43_read32(dev, 48); dev->dma_reason[2] = tmp___1 & 56320U; tmp___2 = b43_read32(dev, 56); dev->dma_reason[3] = tmp___2 & 121856U; tmp___3 = b43_read32(dev, 64); dev->dma_reason[4] = tmp___3 & 56320U; b43_write32(dev, 296, reason); b43_write32(dev, 32, dev->dma_reason[0]); b43_write32(dev, 40, dev->dma_reason[1]); b43_write32(dev, 48, dev->dma_reason[2]); b43_write32(dev, 56, dev->dma_reason[3]); b43_write32(dev, 64, dev->dma_reason[4]); b43_write32(dev, 300, 0U); dev->irq_reason = reason; return (2); } } static irqreturn_t b43_interrupt_handler(int irq , void *dev_id ) { struct b43_wldev *dev ; irqreturn_t ret ; int tmp ; long tmp___0 ; { dev = (struct b43_wldev *)dev_id; tmp = atomic_read((atomic_t const *)(& dev->__init_status)); tmp___0 = ldv__builtin_expect(tmp <= 1, 0L); if (tmp___0 != 0L) { return (0); } else { } spin_lock(& (dev->wl)->hardirq_lock); ret = b43_do_interrupt(dev); __asm__ volatile ("": : : "memory"); spin_unlock(& (dev->wl)->hardirq_lock); return (ret); } } static void b43_sdio_interrupt_handler(struct b43_wldev *dev ) { struct b43_wl *wl ; irqreturn_t ret ; { wl = dev->wl; mutex_lock_nested(& wl->mutex, 0U); ret = b43_do_interrupt(dev); if ((unsigned int )ret == 2U) { b43_do_interrupt_thread(dev); } else { } mutex_unlock(& wl->mutex); return; } } void b43_do_release_fw(struct b43_firmware_file *fw ) { { release_firmware(fw->data); fw->data = (struct firmware const *)0; fw->filename = (char const *)0; return; } } static void b43_release_firmware(struct b43_wldev *dev ) { { complete(& dev->fw_load_complete); b43_do_release_fw(& dev->fw.ucode); b43_do_release_fw(& dev->fw.pcm); b43_do_release_fw(& dev->fw.initvals); b43_do_release_fw(& dev->fw.initvals_band); return; } } static void b43_print_fw_helptext(struct b43_wl *wl , bool error ) { char text[194U] ; { text[0] = 'Y'; text[1] = 'o'; text[2] = 'u'; text[3] = ' '; text[4] = 'm'; text[5] = 'u'; text[6] = 's'; text[7] = 't'; text[8] = ' '; text[9] = 'g'; text[10] = 'o'; text[11] = ' '; text[12] = 't'; text[13] = 'o'; text[14] = ' '; text[15] = 'h'; text[16] = 't'; text[17] = 't'; text[18] = 'p'; text[19] = ':'; text[20] = '/'; text[21] = '/'; text[22] = 'w'; text[23] = 'i'; text[24] = 'r'; text[25] = 'e'; text[26] = 'l'; text[27] = 'e'; text[28] = 's'; text[29] = 's'; text[30] = '.'; text[31] = 'k'; text[32] = 'e'; text[33] = 'r'; text[34] = 'n'; text[35] = 'e'; text[36] = 'l'; text[37] = '.'; text[38] = 'o'; text[39] = 'r'; text[40] = 'g'; text[41] = '/'; text[42] = 'e'; text[43] = 'n'; text[44] = '/'; text[45] = 'u'; text[46] = 's'; text[47] = 'e'; text[48] = 'r'; text[49] = 's'; text[50] = '/'; text[51] = 'D'; text[52] = 'r'; text[53] = 'i'; text[54] = 'v'; text[55] = 'e'; text[56] = 'r'; text[57] = 's'; text[58] = '/'; text[59] = 'b'; text[60] = '4'; text[61] = '3'; text[62] = '#'; text[63] = 'd'; text[64] = 'e'; text[65] = 'v'; text[66] = 'i'; text[67] = 'c'; text[68] = 'e'; text[69] = 'f'; text[70] = 'i'; text[71] = 'r'; text[72] = 'm'; text[73] = 'w'; text[74] = 'a'; text[75] = 'r'; text[76] = 'e'; text[77] = ' '; text[78] = 'a'; text[79] = 'n'; text[80] = 'd'; text[81] = ' '; text[82] = 'd'; text[83] = 'o'; text[84] = 'w'; text[85] = 'n'; text[86] = 'l'; text[87] = 'o'; text[88] = 'a'; text[89] = 'd'; text[90] = ' '; text[91] = 't'; text[92] = 'h'; text[93] = 'e'; text[94] = ' '; text[95] = 'c'; text[96] = 'o'; text[97] = 'r'; text[98] = 'r'; text[99] = 'e'; text[100] = 'c'; text[101] = 't'; text[102] = ' '; text[103] = 'f'; text[104] = 'i'; text[105] = 'r'; text[106] = 'm'; text[107] = 'w'; text[108] = 'a'; text[109] = 'r'; text[110] = 'e'; text[111] = ' '; text[112] = 'f'; text[113] = 'o'; text[114] = 'r'; text[115] = ' '; text[116] = 't'; text[117] = 'h'; text[118] = 'i'; text[119] = 's'; text[120] = ' '; text[121] = 'd'; text[122] = 'r'; text[123] = 'i'; text[124] = 'v'; text[125] = 'e'; text[126] = 'r'; text[127] = ' '; text[128] = 'v'; text[129] = 'e'; text[130] = 'r'; text[131] = 's'; text[132] = 'i'; text[133] = 'o'; text[134] = 'n'; text[135] = '.'; text[136] = ' '; text[137] = 'P'; text[138] = 'l'; text[139] = 'e'; text[140] = 'a'; text[141] = 's'; text[142] = 'e'; text[143] = ' '; text[144] = 'c'; text[145] = 'a'; text[146] = 'r'; text[147] = 'e'; text[148] = 'f'; text[149] = 'u'; text[150] = 'l'; text[151] = 'l'; text[152] = 'y'; text[153] = ' '; text[154] = 'r'; text[155] = 'e'; text[156] = 'a'; text[157] = 'd'; text[158] = ' '; text[159] = 'a'; text[160] = 'l'; text[161] = 'l'; text[162] = ' '; text[163] = 'i'; text[164] = 'n'; text[165] = 's'; text[166] = 't'; text[167] = 'r'; text[168] = 'u'; text[169] = 'c'; text[170] = 't'; text[171] = 'i'; text[172] = 'o'; text[173] = 'n'; text[174] = 's'; text[175] = ' '; text[176] = 'o'; text[177] = 'n'; text[178] = ' '; text[179] = 't'; text[180] = 'h'; text[181] = 'i'; text[182] = 's'; text[183] = ' '; text[184] = 'w'; text[185] = 'e'; text[186] = 'b'; text[187] = 's'; text[188] = 'i'; text[189] = 't'; text[190] = 'e'; text[191] = '.'; text[192] = '\n'; text[193] = '\000'; if ((int )error) { b43err(wl, (char const *)(& text)); } else { b43warn(wl, (char const *)(& text)); } return; } } static void b43_fw_cb(struct firmware const *firmware , void *context ) { struct b43_request_fw_context *ctx ; { ctx = (struct b43_request_fw_context *)context; ctx->blob = firmware; complete(& (ctx->dev)->fw_load_complete); return; } } int b43_do_request_fw(struct b43_request_fw_context *ctx , char const *name , struct b43_firmware_file *fw , bool async ) { struct b43_fw_header *hdr ; u32 size ; int err ; int tmp ; int __ret_warn_on ; long tmp___0 ; __u32 tmp___1 ; { if ((unsigned long )name == (unsigned long )((char const *)0)) { b43_do_release_fw(fw); return (0); } else { } if ((unsigned long )fw->filename != (unsigned long )((char const *)0)) { if ((unsigned int )fw->type == (unsigned int )ctx->req_type) { tmp = strcmp(fw->filename, name); if (tmp == 0) { return (0); } else { } } else { } b43_do_release_fw(fw); } else { } switch ((unsigned int )ctx->req_type) { case 0U: snprintf((char *)(& ctx->fwname), 64UL, "b43%s/%s.fw", (char *)(& modparam_fwpostfix), name); goto ldv_55837; case 1U: snprintf((char *)(& ctx->fwname), 64UL, "b43-open%s/%s.fw", (char *)(& modparam_fwpostfix), name); goto ldv_55837; default: __ret_warn_on = 1; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 2234); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return (-38); } ldv_55837: ; if ((int )async) { init_completion(& (ctx->dev)->fw_load_complete); err = request_firmware_nowait(& __this_module, 1, (char const *)(& ctx->fwname), ((ctx->dev)->dev)->dev, 208U, (void *)ctx, & b43_fw_cb); if (err < 0) { printk("\vUnable to load firmware\n"); return (err); } else { } wait_for_completion(& (ctx->dev)->fw_load_complete); if ((unsigned long )ctx->blob != (unsigned long )((struct firmware const *)0)) { goto fw_ready; } else { } } else { } err = request_firmware(& ctx->blob, (char const *)(& ctx->fwname), ((ctx->dev)->dev)->dev); if (err == -2) { snprintf((char *)(& ctx->errors) + (unsigned long )ctx->req_type, 128UL, "Firmware file \"%s\" not found\n", (char *)(& ctx->fwname)); return (err); } else if (err != 0) { snprintf((char *)(& ctx->errors) + (unsigned long )ctx->req_type, 128UL, "Firmware file \"%s\" request failed (err=%d)\n", (char *)(& ctx->fwname), err); return (err); } else { } fw_ready: ; if ((unsigned long )(ctx->blob)->size <= 7UL) { goto err_format; } else { } hdr = (struct b43_fw_header *)(ctx->blob)->data; switch ((int )hdr->type) { case 117: ; case 112: tmp___1 = __fswab32(hdr->size); size = tmp___1; if ((unsigned long )size != (unsigned long )(ctx->blob)->size - 8UL) { goto err_format; } else { } case 105: ; if ((unsigned int )hdr->ver != 1U) { goto err_format; } else { } goto ldv_55847; default: ; goto err_format; } ldv_55847: fw->data = ctx->blob; fw->filename = name; fw->type = ctx->req_type; return (0); err_format: snprintf((char *)(& ctx->errors) + (unsigned long )ctx->req_type, 128UL, "Firmware file \"%s\" format error.\n", (char *)(& ctx->fwname)); release_firmware(ctx->blob); return (-71); } } static int b43_try_request_fw(struct b43_request_fw_context *ctx ) { struct b43_wldev *dev ; struct b43_firmware *fw ; struct b43_phy *phy ; u8 rev ; char const *filename ; int err ; int tmp ; int tmp___0 ; int tmp___1 ; { dev = ctx->dev; fw = & (ctx->dev)->fw; phy = & dev->phy; rev = ((ctx->dev)->dev)->core_rev; filename = (char const *)0; switch ((int )rev) { case 42: ; if ((unsigned int )phy->type == 11U) { filename = "ucode42"; } else { } goto ldv_55859; case 40: ; if ((unsigned int )phy->type == 11U) { filename = "ucode40"; } else { } goto ldv_55859; case 33: ; if ((unsigned int )phy->type == 10U) { filename = "ucode33_lcn40"; } else { } goto ldv_55859; case 30: ; if ((unsigned int )phy->type == 4U) { filename = "ucode30_mimo"; } else { } goto ldv_55859; case 29: ; if ((unsigned int )phy->type == 7U) { filename = "ucode29_mimo"; } else { } goto ldv_55859; case 26: ; if ((unsigned int )phy->type == 7U) { filename = "ucode26_mimo"; } else { } goto ldv_55859; case 28: ; case 25: ; if ((unsigned int )phy->type == 4U) { filename = "ucode25_mimo"; } else if ((unsigned int )phy->type == 8U) { filename = "ucode25_lcn"; } else { } goto ldv_55859; case 24: ; if ((unsigned int )phy->type == 8U) { filename = "ucode24_lcn"; } else { } goto ldv_55859; case 23: ; if ((unsigned int )phy->type == 4U) { filename = "ucode16_mimo"; } else { } goto ldv_55859; case 19: case 18: case 17: case 16: ; if ((unsigned int )phy->type == 4U) { filename = "ucode16_mimo"; } else if ((unsigned int )phy->type == 5U) { filename = "ucode16_lp"; } else { } goto ldv_55859; case 15: filename = "ucode15"; goto ldv_55859; case 14: filename = "ucode14"; goto ldv_55859; case 13: filename = "ucode13"; goto ldv_55859; case 12: case 11: filename = "ucode11"; goto ldv_55859; case 10: case 9: case 8: case 7: case 6: case 5: filename = "ucode5"; goto ldv_55859; } ldv_55859: ; if ((unsigned long )filename == (unsigned long )((char const *)0)) { goto err_no_ucode; } else { } err = b43_do_request_fw(ctx, filename, & fw->ucode, 1); if (err != 0) { goto err_load; } else { } if ((unsigned int )rev > 4U && (unsigned int )rev <= 10U) { filename = "pcm5"; } else if ((unsigned int )rev > 10U) { filename = (char const *)0; } else { goto err_no_pcm; } fw->pcm_request_failed = 0; err = b43_do_request_fw(ctx, filename, & fw->pcm, 0); if (err == -2) { fw->pcm_request_failed = 1; } else if (err != 0) { goto err_load; } else { } filename = (char const *)0; switch ((int )dev->phy.type) { case 2: ; if ((unsigned int )rev == 13U) { filename = "b0g0initvals13"; } else if ((unsigned int )rev > 4U && (unsigned int )rev <= 10U) { filename = "b0g0initvals5"; } else { } goto ldv_55879; case 4: ; if ((unsigned int )rev == 30U) { filename = "n16initvals30"; } else if ((unsigned int )rev == 28U || (unsigned int )rev == 25U) { filename = "n0initvals25"; } else if ((unsigned int )rev == 24U) { filename = "n0initvals24"; } else if ((unsigned int )rev == 23U) { filename = "n0initvals16"; } else if ((unsigned int )rev > 15U && (unsigned int )rev <= 18U) { filename = "n0initvals16"; } else if ((unsigned int )rev > 10U && (unsigned int )rev <= 12U) { filename = "n0initvals11"; } else { } goto ldv_55879; case 5: ; if ((unsigned int )rev > 15U && (unsigned int )rev <= 18U) { filename = "lp0initvals16"; } else if ((unsigned int )rev == 15U) { filename = "lp0initvals15"; } else if ((unsigned int )rev == 14U) { filename = "lp0initvals14"; } else if ((unsigned int )rev == 13U) { filename = "lp0initvals13"; } else { } goto ldv_55879; case 7: ; if ((unsigned int )rev == 29U) { filename = "ht0initvals29"; } else if ((unsigned int )rev == 26U) { filename = "ht0initvals26"; } else { } goto ldv_55879; case 8: ; if ((unsigned int )rev == 24U) { filename = "lcn0initvals24"; } else { } goto ldv_55879; case 10: ; if ((unsigned int )rev == 33U) { filename = "lcn400initvals33"; } else { } goto ldv_55879; case 11: ; if ((unsigned int )rev == 42U) { filename = "ac1initvals42"; } else if ((unsigned int )rev == 40U) { filename = "ac0initvals40"; } else { } goto ldv_55879; } ldv_55879: ; if ((unsigned long )filename == (unsigned long )((char const *)0)) { goto err_no_initvals; } else { } err = b43_do_request_fw(ctx, filename, & fw->initvals, 0); if (err != 0) { goto err_load; } else { } filename = (char const *)0; switch ((int )dev->phy.type) { case 2: ; if ((unsigned int )rev == 13U) { filename = "b0g0bsinitvals13"; } else if ((unsigned int )rev > 4U && (unsigned int )rev <= 10U) { filename = "b0g0bsinitvals5"; } else { } goto ldv_55888; case 4: ; if ((unsigned int )rev == 30U) { filename = "n16bsinitvals30"; } else if ((unsigned int )rev == 28U || (unsigned int )rev == 25U) { filename = "n0bsinitvals25"; } else if ((unsigned int )rev == 24U) { filename = "n0bsinitvals24"; } else if ((unsigned int )rev == 23U) { filename = "n0bsinitvals16"; } else if ((unsigned int )rev > 15U && (unsigned int )rev <= 18U) { filename = "n0bsinitvals16"; } else if ((unsigned int )rev > 10U && (unsigned int )rev <= 12U) { filename = "n0bsinitvals11"; } else { } goto ldv_55888; case 5: ; if ((unsigned int )rev > 15U && (unsigned int )rev <= 18U) { filename = "lp0bsinitvals16"; } else if ((unsigned int )rev == 15U) { filename = "lp0bsinitvals15"; } else if ((unsigned int )rev == 14U) { filename = "lp0bsinitvals14"; } else if ((unsigned int )rev == 13U) { filename = "lp0bsinitvals13"; } else { } goto ldv_55888; case 7: ; if ((unsigned int )rev == 29U) { filename = "ht0bsinitvals29"; } else if ((unsigned int )rev == 26U) { filename = "ht0bsinitvals26"; } else { } goto ldv_55888; case 8: ; if ((unsigned int )rev == 24U) { filename = "lcn0bsinitvals24"; } else { } goto ldv_55888; case 10: ; if ((unsigned int )rev == 33U) { filename = "lcn400bsinitvals33"; } else { } goto ldv_55888; case 11: ; if ((unsigned int )rev == 42U) { filename = "ac1bsinitvals42"; } else if ((unsigned int )rev == 40U) { filename = "ac0bsinitvals40"; } else { } goto ldv_55888; } ldv_55888: ; if ((unsigned long )filename == (unsigned long )((char const *)0)) { goto err_no_initvals; } else { } err = b43_do_request_fw(ctx, filename, & fw->initvals_band, 0); if (err != 0) { goto err_load; } else { } fw->opensource = (unsigned int )ctx->req_type == 1U; return (0); err_no_ucode: tmp = -95; ctx->fatal_failure = tmp; err = tmp; b43err(dev->wl, "The driver does not know which firmware (ucode) is required for your device (wl-core rev %u)\n", (int )rev); goto error; err_no_pcm: tmp___0 = -95; ctx->fatal_failure = tmp___0; err = tmp___0; b43err(dev->wl, "The driver does not know which firmware (PCM) is required for your device (wl-core rev %u)\n", (int )rev); goto error; err_no_initvals: tmp___1 = -95; ctx->fatal_failure = tmp___1; err = tmp___1; b43err(dev->wl, "The driver does not know which firmware (initvals) is required for your device (wl-core rev %u)\n", (int )rev); goto error; err_load: ; goto error; error: b43_release_firmware(dev); return (err); } } static int b43_one_core_attach(struct b43_bus_dev *dev , struct b43_wl *wl ) ; static void b43_one_core_detach(struct b43_bus_dev *dev ) ; static int b43_rng_init(struct b43_wl *wl ) ; static void b43_request_firmware(struct work_struct *work ) { struct b43_wl *wl ; struct work_struct const *__mptr ; struct b43_wldev *dev ; struct b43_request_fw_context *ctx ; unsigned int i ; int err ; char const *errmsg ; void *tmp ; size_t tmp___0 ; { __mptr = (struct work_struct const *)work; wl = (struct b43_wl *)__mptr + 0xfffffffffffffaf8UL; dev = wl->current_dev; tmp = kzalloc(344UL, 208U); ctx = (struct b43_request_fw_context *)tmp; if ((unsigned long )ctx == (unsigned long )((struct b43_request_fw_context *)0)) { return; } else { } ctx->dev = dev; ctx->req_type = 0; err = b43_try_request_fw(ctx); if (err == 0) { goto start_ieee80211; } else { } if (ctx->fatal_failure != 0) { goto out; } else { } ctx->req_type = 1; err = b43_try_request_fw(ctx); if (err == 0) { goto start_ieee80211; } else { } if (ctx->fatal_failure != 0) { goto out; } else { } i = 0U; goto ldv_55917; ldv_55916: errmsg = (char const *)(& ctx->errors) + (unsigned long )i; tmp___0 = strlen(errmsg); if (tmp___0 != 0UL) { b43err(dev->wl, "%s", errmsg); } else { } i = i + 1U; ldv_55917: ; if (i <= 1U) { goto ldv_55916; } else { } b43_print_fw_helptext(dev->wl, 1); goto out; start_ieee80211: (wl->hw)->queues = 4U; if (modparam_qos == 0 || (int )dev->fw.opensource) { (wl->hw)->queues = 1U; } else { } err = ieee80211_register_hw(wl->hw); if (err != 0) { goto err_one_core_detach; } else { } wl->hw_registred = 1; b43_leds_register(wl->current_dev); b43_rng_init(wl); goto out; err_one_core_detach: b43_one_core_detach(dev->dev); out: kfree((void const *)ctx); return; } } static int b43_upload_microcode(struct b43_wldev *dev ) { struct wiphy *wiphy ; size_t hdr_len ; __be32 const *data ; unsigned int i ; unsigned int len ; u16 fwrev ; u16 fwpatch ; u16 fwdate ; u16 fwtime ; u32 tmp ; u32 macctl ; int err ; int __ret_warn_on ; long tmp___0 ; __u32 tmp___1 ; __u32 tmp___2 ; int __ret_warn_on___0 ; long tmp___3 ; u16 fwcapa ; int __ret_warn_on___1 ; long tmp___4 ; { wiphy = ((dev->wl)->hw)->wiphy; hdr_len = 8UL; err = 0; macctl = b43_read32(dev, 288); __ret_warn_on = (macctl & 2U) != 0U; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 2631); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); macctl = macctl | 4U; b43_write32(dev, 288, macctl); i = 0U; goto ldv_55938; ldv_55937: b43_shm_write16(dev, 2, (int )((u16 )i), 0); i = i + 1U; ldv_55938: ; if (i <= 63U) { goto ldv_55937; } else { } i = 0U; goto ldv_55941; ldv_55940: b43_shm_write16(dev, 1, (int )((u16 )i), 0); i = i + 2U; ldv_55941: ; if (i <= 4095U) { goto ldv_55940; } else { } data = (__be32 const *)((dev->fw.ucode.data)->data + hdr_len); len = (unsigned int )(((unsigned long )(dev->fw.ucode.data)->size - hdr_len) / 4UL); b43_shm_control_word(dev, 256, 0); i = 0U; goto ldv_55944; ldv_55943: tmp___1 = __fswab32(*(data + (unsigned long )i)); b43_write32(dev, 356, tmp___1); __const_udelay(42950UL); i = i + 1U; ldv_55944: ; if (i < len) { goto ldv_55943; } else { } if ((unsigned long )dev->fw.pcm.data != (unsigned long )((struct firmware const *)0)) { data = (__be32 const *)((dev->fw.pcm.data)->data + hdr_len); len = (unsigned int )(((unsigned long )(dev->fw.pcm.data)->size - hdr_len) / 4UL); b43_shm_control_word(dev, 3, 490); b43_write32(dev, 356, 16384U); b43_shm_control_word(dev, 3, 491); i = 0U; goto ldv_55947; ldv_55946: tmp___2 = __fswab32(*(data + (unsigned long )i)); b43_write32(dev, 356, tmp___2); __const_udelay(42950UL); i = i + 1U; ldv_55947: ; if (i < len) { goto ldv_55946; } else { } } else { } b43_write32(dev, 296, 4294967295U); b43_maskset32(dev, 288, 4294967291U, 2U); i = 0U; ldv_55951: tmp = b43_read32(dev, 296); if (tmp == 1U) { goto ldv_55949; } else { } i = i + 1U; if (i > 19U) { b43err(dev->wl, "Microcode not responding\n"); b43_print_fw_helptext(dev->wl, 1); err = -19; goto error; } else { } msleep(50U); goto ldv_55951; ldv_55949: b43_read32(dev, 296); fwrev = b43_shm_read16(dev, 1, 0); fwpatch = b43_shm_read16(dev, 1, 2); fwdate = b43_shm_read16(dev, 1, 4); fwtime = b43_shm_read16(dev, 1, 6); if ((unsigned int )fwrev <= 296U) { b43err(dev->wl, "YOUR FIRMWARE IS TOO OLD. Firmware from binary drivers older than version 4.x is unsupported. You must upgrade your firmware files.\n"); b43_print_fw_helptext(dev->wl, 1); err = -95; goto error; } else { } dev->fw.rev = fwrev; dev->fw.patch = fwpatch; if ((unsigned int )dev->fw.rev > 597U) { dev->fw.hdr_format = 0; } else if ((unsigned int )dev->fw.rev > 409U) { dev->fw.hdr_format = 1; } else { dev->fw.hdr_format = 2; } __ret_warn_on___0 = (int )dev->fw.opensource != ((unsigned int )fwdate == 65535U); tmp___3 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___3 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 2708); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); dev->qos_enabled = (unsigned int )((dev->wl)->hw)->queues > 1U; dev->hwcrypto_enabled = 1; if ((int )dev->fw.opensource) { dev->fw.patch = fwtime; b43info(dev->wl, "Loading OpenSource firmware version %u.%u\n", (int )dev->fw.rev, (int )dev->fw.patch); fwcapa = b43_fwcapa_read(dev); if (((int )fwcapa & 1) == 0 || (int )dev->fw.pcm_request_failed) { b43info(dev->wl, "Hardware crypto acceleration not supported by firmware\n"); dev->hwcrypto_enabled = 0; } else { } __ret_warn_on___1 = ((int )fwcapa & 2) != 0; tmp___4 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___4 != 0L) { warn_slowpath_fmt("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 2729, "QoS in OpenFW not supported\n"); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); } else { b43info(dev->wl, "Loading firmware version %u.%u (20%.2i-%.2i-%.2i %.2i:%.2i:%.2i)\n", (int )fwrev, (int )fwpatch, ((int )fwdate >> 12) & 15, ((int )fwdate >> 8) & 15, (int )fwdate & 255, ((int )fwtime >> 11) & 31, ((int )fwtime >> 5) & 63, (int )fwtime & 31); if ((int )dev->fw.pcm_request_failed) { b43warn(dev->wl, "No \"pcm5.fw\" firmware file found. Hardware accelerated cryptography is disabled.\n"); b43_print_fw_helptext(dev->wl, 0); } else { } } snprintf((char *)(& wiphy->fw_version), 32UL, "%u.%u", (int )dev->fw.rev, (int )dev->fw.patch); wiphy->hw_version = (u32 )(dev->dev)->core_id; if ((unsigned int )dev->fw.hdr_format == 2U) { b43warn(dev->wl, "You are using an old firmware image. Support for old firmware will be removed soon (official deadline was July 2008).\n"); b43_print_fw_helptext(dev->wl, 0); } else { } return (0); error: b43_maskset32(dev, 288, 4294967293U, 4U); return (err); } } static int b43_write_initvals(struct b43_wldev *dev , struct b43_iv const *ivals , size_t count , size_t array_size ) { struct b43_iv const *iv ; u16 offset ; size_t i ; bool bit32 ; __u16 tmp ; u32 value ; u16 value___0 ; __u16 tmp___0 ; { iv = ivals; i = 0UL; goto ldv_55971; ldv_55970: ; if (array_size <= 1UL) { goto err_format; } else { } array_size = array_size - 2UL; tmp = __fswab16((int )iv->offset_size); offset = tmp; bit32 = (int )((short )offset) < 0; offset = (unsigned int )offset & 32767U; if ((unsigned int )offset > 4095U) { goto err_format; } else { } if ((int )bit32) { if (array_size <= 3UL) { goto err_format; } else { } array_size = array_size - 4UL; value = get_unaligned_be32((void const *)(& iv->data.d32)); b43_write32(dev, (int )offset, value); iv = iv + 6U; } else { if (array_size <= 1UL) { goto err_format; } else { } array_size = array_size - 2UL; tmp___0 = __fswab16((int )iv->data.d16); value___0 = tmp___0; b43_write16(dev, (int )offset, (int )value___0); iv = iv + 4U; } i = i + 1UL; ldv_55971: ; if (i < count) { goto ldv_55970; } else { } if (array_size != 0UL) { goto err_format; } else { } return (0); err_format: b43err(dev->wl, "Initial Values Firmware file-format error.\n"); b43_print_fw_helptext(dev->wl, 1); return (-71); } } static int b43_upload_initvals(struct b43_wldev *dev ) { size_t hdr_len ; struct b43_fw_header const *hdr ; struct b43_firmware *fw ; struct b43_iv const *ivals ; size_t count ; __u32 tmp ; int tmp___0 ; { hdr_len = 8UL; fw = & dev->fw; hdr = (struct b43_fw_header const *)(fw->initvals.data)->data; ivals = (struct b43_iv const *)((fw->initvals.data)->data + hdr_len); tmp = __fswab32(hdr->size); count = (size_t )tmp; tmp___0 = b43_write_initvals(dev, ivals, count, (unsigned long )(fw->initvals.data)->size - hdr_len); return (tmp___0); } } static int b43_upload_initvals_band(struct b43_wldev *dev ) { size_t hdr_len ; struct b43_fw_header const *hdr ; struct b43_firmware *fw ; struct b43_iv const *ivals ; size_t count ; __u32 tmp ; int tmp___0 ; { hdr_len = 8UL; fw = & dev->fw; if ((unsigned long )fw->initvals_band.data == (unsigned long )((struct firmware const *)0)) { return (0); } else { } hdr = (struct b43_fw_header const *)(fw->initvals_band.data)->data; ivals = (struct b43_iv const *)((fw->initvals_band.data)->data + hdr_len); tmp = __fswab32(hdr->size); count = (size_t )tmp; tmp___0 = b43_write_initvals(dev, ivals, count, (unsigned long )(fw->initvals_band.data)->size - hdr_len); return (tmp___0); } } static struct ssb_device *b43_ssb_gpio_dev(struct b43_wldev *dev ) { struct ssb_bus *bus ; { bus = ((dev->dev)->__annonCompField105.sdev)->bus; return ((unsigned long )bus->chipco.dev != (unsigned long )((struct ssb_device *)0) ? bus->chipco.dev : bus->pcicore.dev); } } static int b43_gpio_init(struct b43_wldev *dev ) { struct ssb_device *gpiodev ; u32 mask ; u32 set ; u16 tmp___0 ; u32 tmp___1 ; { b43_maskset32(dev, 288, 4294918143U, 0U); b43_maskset16(dev, 1182, 65535, 15); mask = 31U; set = 15U; if ((unsigned int )(dev->dev)->chip_id == 17153U) { mask = mask | 96U; set = set | 96U; } else if ((unsigned int )(dev->dev)->chip_id == 21332U) { set = set & 2U; } else { } if (((int )((dev->dev)->bus_sprom)->boardflags_lo & 2) != 0) { tmp___0 = b43_read16(dev, 1182); b43_write16(dev, 1182, (int )((unsigned int )tmp___0 | 512U)); mask = mask | 512U; set = set | 512U; } else { } switch ((unsigned int )(dev->dev)->bus_type) { case 0U: bcma_chipco_gpio_control(& (((dev->dev)->__annonCompField105.bdev)->bus)->drv_cc, mask, set); goto ldv_56000; case 1U: gpiodev = b43_ssb_gpio_dev(dev); if ((unsigned long )gpiodev != (unsigned long )((struct ssb_device *)0)) { tmp___1 = ssb_read32(gpiodev, 108); ssb_write32(gpiodev, 108, (tmp___1 & ~ mask) | set); } else { } goto ldv_56000; } ldv_56000: ; return (0); } } static void b43_gpio_cleanup(struct b43_wldev *dev ) { struct ssb_device *gpiodev ; { switch ((unsigned int )(dev->dev)->bus_type) { case 0U: bcma_chipco_gpio_control(& (((dev->dev)->__annonCompField105.bdev)->bus)->drv_cc, 4294967295U, 0U); goto ldv_56007; case 1U: gpiodev = b43_ssb_gpio_dev(dev); if ((unsigned long )gpiodev != (unsigned long )((struct ssb_device *)0)) { ssb_write32(gpiodev, 108, 0U); } else { } goto ldv_56007; } ldv_56007: ; return; } } void b43_mac_enable(struct b43_wldev *dev ) { u16 fwstate ; bool tmp ; int __ret_warn_on ; long tmp___0 ; { tmp = b43_debug(dev, 6); if ((int )tmp) { fwstate = b43_shm_read16(dev, 1, 64); if ((unsigned int )fwstate != 3U && (unsigned int )fwstate != 4U) { b43err(dev->wl, "b43_mac_enable(): The firmware should be suspended, but current state is %u\n", (int )fwstate); } else { } } else { } dev->mac_suspended = dev->mac_suspended - 1; __ret_warn_on = dev->mac_suspended < 0; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 2977); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if (dev->mac_suspended == 0) { b43_maskset32(dev, 288, 4294967295U, 1U); b43_write32(dev, 296, 1U); b43_read32(dev, 288); b43_read32(dev, 296); b43_power_saving_ctl_bits(dev, 0U); } else { } return; } } void b43_mac_suspend(struct b43_wldev *dev ) { int i ; u32 tmp ; int __ret_warn_on ; long tmp___0 ; { __might_sleep("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 2995, 0); __ret_warn_on = dev->mac_suspended < 0; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 2996); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if (dev->mac_suspended == 0) { b43_power_saving_ctl_bits(dev, 4U); b43_maskset32(dev, 288, 4294967294U, 0U); b43_read32(dev, 288); i = 35; goto ldv_56024; ldv_56023: tmp = b43_read32(dev, 296); if ((int )tmp & 1) { goto out; } else { } __const_udelay(42950UL); i = i - 1; ldv_56024: ; if (i != 0) { goto ldv_56023; } else { } i = 40; goto ldv_56027; ldv_56026: tmp = b43_read32(dev, 296); if ((int )tmp & 1) { goto out; } else { } msleep(1U); i = i - 1; ldv_56027: ; if (i != 0) { goto ldv_56026; } else { } b43err(dev->wl, "MAC suspend failed\n"); } else { } out: dev->mac_suspended = dev->mac_suspended + 1; return; } } void b43_mac_phy_clock_set(struct b43_wldev *dev , bool on ) { u32 tmp ; { switch ((unsigned int )(dev->dev)->bus_type) { case 0U: tmp = bcma_aread32((dev->dev)->__annonCompField105.bdev, 1032); if ((int )on) { tmp = tmp | 16U; } else { tmp = tmp & 4294967279U; } bcma_awrite32((dev->dev)->__annonCompField105.bdev, 1032, tmp); goto ldv_56035; case 1U: tmp = ssb_read32((dev->dev)->__annonCompField105.sdev, 3992); if ((int )on) { tmp = tmp | 1048576U; } else { tmp = tmp & 4293918719U; } ssb_write32((dev->dev)->__annonCompField105.sdev, 3992, tmp); goto ldv_56035; } ldv_56035: ; return; } } void b43_mac_switch_freq(struct b43_wldev *dev , u8 spurmode ) { u16 chip_id ; { chip_id = (dev->dev)->chip_id; if ((unsigned int )chip_id == 17201U) { switch ((int )spurmode) { case 2: b43_write16(dev, 1582, 6242); b43_write16(dev, 1584, 6); goto ldv_56043; case 1: b43_write16(dev, 1582, 15984); b43_write16(dev, 1584, 6); goto ldv_56043; default: b43_write16(dev, 1582, 26214); b43_write16(dev, 1584, 6); goto ldv_56043; } ldv_56043: ; } else if (((((((unsigned int )chip_id == 43131U || (unsigned int )chip_id == 43217U) || (unsigned int )chip_id == 43222U) || (unsigned int )chip_id == 43224U) || (unsigned int )chip_id == 43225U) || (unsigned int )chip_id == 43227U) || (unsigned int )chip_id == 43228U) { switch ((int )spurmode) { case 2: b43_write16(dev, 1582, 8322); b43_write16(dev, 1584, 8); goto ldv_56047; case 1: b43_write16(dev, 1582, 21313); b43_write16(dev, 1584, 8); goto ldv_56047; default: b43_write16(dev, 1582, 34953); b43_write16(dev, 1584, 8); goto ldv_56047; } ldv_56047: ; } else if ((unsigned int )dev->phy.type == 8U) { switch ((int )spurmode) { case 1: b43_write16(dev, 1582, 31968); b43_write16(dev, 1584, 12); goto ldv_56051; default: b43_write16(dev, 1582, 52429); b43_write16(dev, 1584, 12); goto ldv_56051; } ldv_56051: ; } else { } return; } } static void b43_adjust_opmode(struct b43_wldev *dev ) { struct b43_wl *wl ; u32 ctl ; u16 cfp_pretbtt ; int tmp ; int tmp___0 ; int tmp___1 ; { wl = dev->wl; ctl = b43_read32(dev, 288); ctl = ctl & 4294705151U; ctl = ctl & 4290772991U; ctl = ctl & 4292870143U; ctl = ctl & 4286578687U; ctl = ctl & 4278190079U; ctl = ctl & 4293918719U; ctl = ctl | 131072U; tmp___0 = b43_is_mode(wl, 3); if (tmp___0 != 0) { ctl = ctl | 262144U; } else { tmp___1 = b43_is_mode(wl, 7); if (tmp___1 != 0) { ctl = ctl | 262144U; } else { tmp = b43_is_mode(wl, 1); if (tmp != 0) { ctl = ctl & 4294836223U; } else { } } } if ((wl->filter_flags & 32U) != 0U) { ctl = ctl | 4194304U; } else { } if ((wl->filter_flags & 4U) != 0U) { ctl = ctl | 8388608U; } else { } if ((wl->filter_flags & 8U) != 0U) { ctl = ctl | 2097152U; } else { } if ((wl->filter_flags & 16U) != 0U) { ctl = ctl | 1048576U; } else { } if ((unsigned int )(dev->dev)->core_rev <= 4U) { ctl = ctl | 16777216U; } else { } b43_write32(dev, 288, ctl); cfp_pretbtt = 2U; if ((ctl & 131072U) != 0U && (ctl & 262144U) == 0U) { if ((unsigned int )(dev->dev)->chip_id == 17158U && (unsigned int )(dev->dev)->chip_rev == 3U) { cfp_pretbtt = 100U; } else { cfp_pretbtt = 50U; } } else { } b43_write16(dev, 1554, (int )cfp_pretbtt); b43_maskset32(dev, 288, 4294967295U, 1073741824U); return; } } static void b43_rate_memory_write(struct b43_wldev *dev , u16 rate , int is_ofdm ) { u16 offset ; u8 tmp ; u8 tmp___0 ; u16 tmp___1 ; { if (is_ofdm != 0) { offset = 1152U; tmp = b43_plcp_get_ratecode_ofdm((int )((u8 const )rate)); offset = ((unsigned int )((u16 )tmp) & 15U) * 2U + (unsigned int )offset; } else { offset = 1216U; tmp___0 = b43_plcp_get_ratecode_cck((int )((u8 const )rate)); offset = ((unsigned int )((u16 )tmp___0) & 15U) * 2U + (unsigned int )offset; } tmp___1 = b43_shm_read16(dev, 1, (int )offset); b43_shm_write16(dev, 1, (int )((unsigned int )offset + 32U), (int )tmp___1); return; } } static void b43_rate_memory_init(struct b43_wldev *dev ) { int __ret_warn_on ; long tmp ; { switch ((int )dev->phy.type) { case 0: ; case 2: ; case 4: ; case 5: ; case 7: ; case 8: b43_rate_memory_write(dev, 12, 1); b43_rate_memory_write(dev, 18, 1); b43_rate_memory_write(dev, 24, 1); b43_rate_memory_write(dev, 36, 1); b43_rate_memory_write(dev, 48, 1); b43_rate_memory_write(dev, 72, 1); b43_rate_memory_write(dev, 96, 1); b43_rate_memory_write(dev, 108, 1); if ((unsigned int )dev->phy.type == 0U) { goto ldv_56074; } else { } case 1: b43_rate_memory_write(dev, 2, 0); b43_rate_memory_write(dev, 4, 0); b43_rate_memory_write(dev, 11, 0); b43_rate_memory_write(dev, 22, 0); goto ldv_56074; default: __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 3207); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); } ldv_56074: ; return; } } static void b43_set_phytxctl_defaults(struct b43_wldev *dev ) { u16 ctl ; { ctl = 0U; ctl = ctl; ctl = (u16 )((unsigned int )ctl | 192U); ctl = (u16 )((unsigned int )ctl | 64512U); b43_shm_write16(dev, 1, 84, (int )ctl); b43_shm_write16(dev, 1, 34, (int )ctl); b43_shm_write16(dev, 1, 392, (int )ctl); return; } } static void b43_mgmtframe_txantenna(struct b43_wldev *dev , int antenna ) { u16 ant ; u16 tmp ; { ant = b43_antenna_to_phyctl(antenna); tmp = b43_shm_read16(dev, 1, 34); tmp = (u16 )(((int )((short )tmp) & -961) | (int )((short )ant)); b43_shm_write16(dev, 1, 34, (int )tmp); tmp = b43_shm_read16(dev, 1, 392); tmp = (u16 )(((int )((short )tmp) & -961) | (int )((short )ant)); b43_shm_write16(dev, 1, 392, (int )tmp); return; } } static void b43_chip_exit(struct b43_wldev *dev ) { { b43_phy_exit(dev); b43_gpio_cleanup(dev); return; } } static int b43_chip_init(struct b43_wldev *dev ) { struct b43_phy *phy ; int err ; u32 macctl ; u16 value16 ; { phy = & dev->phy; macctl = 1280U; if ((int )dev->phy.gmode) { macctl = macctl | 2147483648U; } else { } macctl = macctl | 131072U; b43_write32(dev, 288, macctl); err = b43_upload_microcode(dev); if (err != 0) { goto out; } else { } err = b43_gpio_init(dev); if (err != 0) { goto out; } else { } err = b43_upload_initvals(dev); if (err != 0) { goto err_gpio_clean; } else { } err = b43_upload_initvals_band(dev); if (err != 0) { goto err_gpio_clean; } else { } (*((phy->ops)->switch_analog))(dev, 1); err = b43_phy_init(dev); if (err != 0) { goto err_gpio_clean; } else { } if ((unsigned long )(phy->ops)->interf_mitigation != (unsigned long )((int (*/* const */)(struct b43_wldev * , enum b43_interference_mitigation ))0)) { (*((phy->ops)->interf_mitigation))(dev, 0); } else { } if ((unsigned long )(phy->ops)->set_rx_antenna != (unsigned long )((void (*/* const */)(struct b43_wldev * , int ))0)) { (*((phy->ops)->set_rx_antenna))(dev, 2); } else { } b43_mgmtframe_txantenna(dev, 2); if ((unsigned int )phy->type == 1U) { value16 = b43_read16(dev, 94); value16 = (u16 )((unsigned int )value16 | 4U); b43_write16(dev, 94, (int )value16); } else { } b43_write32(dev, 256, 16777216U); if ((unsigned int )(dev->dev)->core_rev <= 4U) { b43_write32(dev, 268, 16777216U); } else { } b43_maskset32(dev, 288, 4294836223U, 0U); b43_maskset32(dev, 288, 4294967295U, 131072U); b43_shm_write16(dev, 1, 116, 0); b43_adjust_opmode(dev); if ((unsigned int )(dev->dev)->core_rev <= 2U) { b43_write16(dev, 1550, 0); b43_write16(dev, 1552, 32768); b43_write16(dev, 1540, 0); b43_write16(dev, 1542, 512); } else { b43_write32(dev, 392, 2147483648U); b43_write32(dev, 396, 33554432U); } b43_write32(dev, 296, 16384U); b43_write32(dev, 36, 130048U); b43_write32(dev, 44, 56320U); b43_write32(dev, 52, 56320U); b43_write32(dev, 60, 121856U); b43_write32(dev, 68, 56320U); b43_write32(dev, 76, 56320U); b43_mac_phy_clock_set(dev, 1); switch ((unsigned int )(dev->dev)->bus_type) { case 0U: b43_write16(dev, 1704, 3700); goto ldv_56102; case 1U: b43_write16(dev, 1704, (int )(((dev->dev)->__annonCompField105.sdev)->bus)->chipco.fast_pwrup_delay); goto ldv_56102; } ldv_56102: err = 0; b43dbg(dev->wl, "Chip initialized\n"); out: ; return (err); err_gpio_clean: b43_gpio_cleanup(dev); return (err); } } static void b43_periodic_every60sec(struct b43_wldev *dev ) { struct b43_phy_operations const *ops ; { ops = dev->phy.ops; if ((unsigned long )ops->pwork_60sec != (unsigned long )((void (*/* const */)(struct b43_wldev * ))0)) { (*(ops->pwork_60sec))(dev); } else { } b43_phy_txpower_check(dev, 1U); return; } } static void b43_periodic_every30sec(struct b43_wldev *dev ) { { b43_calculate_link_quality(dev); return; } } static void b43_periodic_every15sec(struct b43_wldev *dev ) { struct b43_phy *phy ; u16 wdr ; long tmp ; unsigned int i ; bool tmp___0 ; { phy = & dev->phy; if ((int )dev->fw.opensource) { wdr = b43_shm_read16(dev, 2, 1); tmp = ldv__builtin_expect((unsigned int )wdr != 0U, 0L); if (tmp != 0L) { b43err(dev->wl, "Firmware watchdog: The firmware died!\n"); b43_controller_restart(dev, "Firmware watchdog"); return; } else { b43_shm_write16(dev, 2, 1, 1); } } else { } if ((unsigned long )(phy->ops)->pwork_15sec != (unsigned long )((void (*/* const */)(struct b43_wldev * ))0)) { (*((phy->ops)->pwork_15sec))(dev); } else { } atomic_set(& phy->txerr_cnt, 1000); __asm__ volatile ("sfence": : : "memory"); tmp___0 = b43_debug(dev, 8); if ((int )tmp___0) { b43dbg(dev->wl, "Stats: %7u IRQs/sec, %7u TX/sec, %7u RX/sec\n", dev->irq_count / 15U, dev->tx_count / 15U, dev->rx_count / 15U); dev->irq_count = 0U; dev->tx_count = 0U; dev->rx_count = 0U; i = 0U; goto ldv_56120; ldv_56119: ; if (dev->irq_bit_count[i] != 0U) { b43dbg(dev->wl, "Stats: %7u IRQ-%02u/sec (0x%08X)\n", dev->irq_bit_count[i] / 15U, i, 1 << (int )i); dev->irq_bit_count[i] = 0U; } else { } i = i + 1U; ldv_56120: ; if (i <= 31U) { goto ldv_56119; } else { } } else { } return; } } static void do_periodic_work(struct b43_wldev *dev ) { unsigned int state ; { state = dev->periodic_state; if ((state & 3U) == 0U) { b43_periodic_every60sec(dev); } else { } if ((state & 1U) == 0U) { b43_periodic_every30sec(dev); } else { } b43_periodic_every15sec(dev); return; } } static void b43_periodic_work_handler(struct work_struct *work ) { struct b43_wldev *dev ; struct work_struct const *__mptr ; struct b43_wl *wl ; unsigned long delay ; int tmp ; long tmp___0 ; bool tmp___1 ; bool tmp___2 ; { __mptr = (struct work_struct const *)work; dev = (struct b43_wldev *)__mptr + 0xfffffffffffffe80UL; wl = dev->wl; mutex_lock_nested(& wl->mutex, 0U); tmp = atomic_read((atomic_t const *)(& dev->__init_status)); tmp___0 = ldv__builtin_expect(tmp != 2, 0L); if (tmp___0 != 0L) { goto out; } else { } tmp___1 = b43_debug(dev, 4); if ((int )tmp___1) { goto out_requeue; } else { } do_periodic_work(dev); dev->periodic_state = dev->periodic_state + 1U; out_requeue: tmp___2 = b43_debug(dev, 3); if ((int )tmp___2) { delay = msecs_to_jiffies(50U); } else { delay = round_jiffies_relative(3750UL); } ieee80211_queue_delayed_work(wl->hw, & dev->periodic_work, delay); out: mutex_unlock(& wl->mutex); return; } } static void b43_periodic_tasks_setup(struct b43_wldev *dev ) { struct delayed_work *work ; struct lock_class_key __key ; atomic_long_t __constr_expr_0 ; struct lock_class_key __key___0 ; { work = & dev->periodic_work; dev->periodic_state = 0U; __init_work(& work->work, 0); __constr_expr_0.counter = 137438953408L; work->work.data = __constr_expr_0; lockdep_init_map(& work->work.lockdep_map, "(&(work)->work)", & __key, 0); INIT_LIST_HEAD(& work->work.entry); work->work.func = & b43_periodic_work_handler; init_timer_key(& work->timer, 2097152U, "(&(work)->timer)", & __key___0); work->timer.function = & delayed_work_timer_fn; work->timer.data = (unsigned long )work; ieee80211_queue_delayed_work((dev->wl)->hw, work, 0UL); return; } } static int b43_validate_chipaccess(struct b43_wldev *dev ) { u32 v ; u32 backup0 ; u32 backup4 ; u32 tmp ; u32 tmp___0 ; u32 tmp___1 ; u16 tmp___2 ; u16 tmp___3 ; u16 tmp___4 ; u16 tmp___5 ; u16 tmp___6 ; u16 tmp___7 ; { backup0 = b43_shm_read32(dev, 1, 0); backup4 = b43_shm_read32(dev, 1, 4); b43_shm_write32(dev, 1, 0, 1437248085U); tmp = b43_shm_read32(dev, 1, 0); if (tmp != 1437248085U) { goto error; } else { } b43_shm_write32(dev, 1, 0, 2857719210U); tmp___0 = b43_shm_read32(dev, 1, 0); if (tmp___0 != 2857719210U) { goto error; } else { } b43_shm_write16(dev, 1, 0, 4386); b43_shm_write16(dev, 1, 2, 13124); b43_shm_write16(dev, 1, 4, 21862); b43_shm_write16(dev, 1, 6, 30600); tmp___1 = b43_shm_read32(dev, 1, 2); if (tmp___1 != 1432761156U) { b43warn(dev->wl, "Unaligned 32bit SHM read access is broken\n"); } else { } b43_shm_write32(dev, 1, 2, 2864434397U); tmp___2 = b43_shm_read16(dev, 1, 0); if ((unsigned int )tmp___2 != 4386U) { b43warn(dev->wl, "Unaligned 32bit SHM write access is broken\n"); } else { tmp___3 = b43_shm_read16(dev, 1, 2); if ((unsigned int )tmp___3 != 52445U) { b43warn(dev->wl, "Unaligned 32bit SHM write access is broken\n"); } else { tmp___4 = b43_shm_read16(dev, 1, 4); if ((unsigned int )tmp___4 != 43707U) { b43warn(dev->wl, "Unaligned 32bit SHM write access is broken\n"); } else { tmp___5 = b43_shm_read16(dev, 1, 6); if ((unsigned int )tmp___5 != 30600U) { b43warn(dev->wl, "Unaligned 32bit SHM write access is broken\n"); } else { } } } } b43_shm_write32(dev, 1, 0, backup0); b43_shm_write32(dev, 1, 4, backup4); if ((unsigned int )(dev->dev)->core_rev > 2U && (unsigned int )(dev->dev)->core_rev <= 10U) { b43_write16(dev, 396, 43690); b43_write32(dev, 396, 3435969467U); tmp___6 = b43_read16(dev, 1540); if ((unsigned int )tmp___6 != 48059U) { goto error; } else { } tmp___7 = b43_read16(dev, 1542); if ((unsigned int )tmp___7 != 52428U) { goto error; } else { } } else { } b43_write32(dev, 396, 0U); v = b43_read32(dev, 288); v = v | 2147483648U; if (v != 2147484672U) { goto error; } else { } return (0); error: b43err(dev->wl, "Failed to validate the chipaccess\n"); return (-19); } } static void b43_security_init(struct b43_wldev *dev ) { { dev->ktp = b43_shm_read16(dev, 1, 86); dev->ktp = (unsigned int )dev->ktp * 2U; b43_write16(dev, 1084, 50); b43_clear_keys(dev); return; } } static int b43_rng_read(struct hwrng *rng , u32 *data ) { struct b43_wl *wl ; struct b43_wldev *dev ; int count ; u16 tmp ; int tmp___0 ; int tmp___1 ; long tmp___2 ; { wl = (struct b43_wl *)rng->priv; count = -19; mutex_lock_nested(& wl->mutex, 0U); dev = wl->current_dev; if ((unsigned long )dev != (unsigned long )((struct b43_wldev *)0)) { tmp___0 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___0 > 0) { tmp___1 = 1; } else { tmp___1 = 0; } } else { tmp___1 = 0; } tmp___2 = ldv__builtin_expect((long )tmp___1, 1L); if (tmp___2 != 0L) { tmp = b43_read16(dev, 1626); *data = (u32 )tmp; count = 2; } else { } mutex_unlock(& wl->mutex); return (count); } } static void b43_rng_exit(struct b43_wl *wl ) { { if ((int )wl->rng_initialized) { hwrng_unregister(& wl->rng); } else { } return; } } static int b43_rng_init(struct b43_wl *wl ) { int err ; char const *tmp ; { err = 0; tmp = wiphy_name((struct wiphy const *)(wl->hw)->wiphy); snprintf((char *)(& wl->rng_name), 31UL, "%s_%s", (char *)"b43", tmp); wl->rng.name = (char const *)(& wl->rng_name); wl->rng.data_read = & b43_rng_read; wl->rng.priv = (unsigned long )wl; wl->rng_initialized = 1; err = hwrng_register(& wl->rng); if (err != 0) { wl->rng_initialized = 0; b43err(wl, "Failed to register the random number generator (%d)\n", err); } else { } return (err); } } static void b43_tx_work(struct work_struct *work ) { struct b43_wl *wl ; struct work_struct const *__mptr ; struct b43_wldev *dev ; struct sk_buff *skb ; int queue_num ; int err ; int tmp ; int tmp___0 ; long tmp___1 ; bool tmp___2 ; long tmp___3 ; __u32 tmp___4 ; { __mptr = (struct work_struct const *)work; wl = (struct b43_wl *)__mptr + 0xfffffffffffffcd0UL; err = 0; mutex_lock_nested(& wl->mutex, 0U); dev = wl->current_dev; if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { tmp___0 = 1; } else { tmp = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp <= 1) { tmp___0 = 1; } else { tmp___0 = 0; } } tmp___1 = ldv__builtin_expect((long )tmp___0, 0L); if (tmp___1 != 0L) { mutex_unlock(& wl->mutex); return; } else { } queue_num = 0; goto ldv_56183; ldv_56182: ; goto ldv_56181; ldv_56180: skb = skb_dequeue((struct sk_buff_head *)(& wl->tx_queue) + (unsigned long )queue_num); tmp___2 = b43_using_pio_transfers(dev); if ((int )tmp___2) { err = b43_pio_tx(dev, skb); } else { err = b43_dma_tx(dev, skb); } if (err == -28) { wl->tx_queue_stopped[queue_num] = 1; ieee80211_stop_queue(wl->hw, queue_num); skb_queue_head((struct sk_buff_head *)(& wl->tx_queue) + (unsigned long )queue_num, skb); goto ldv_56179; } else { } tmp___3 = ldv__builtin_expect(err != 0, 0L); if (tmp___3 != 0L) { ieee80211_free_txskb(wl->hw, skb); } else { } err = 0; ldv_56181: tmp___4 = skb_queue_len((struct sk_buff_head const *)(& wl->tx_queue) + (unsigned long )queue_num); if (tmp___4 != 0U) { goto ldv_56180; } else { } ldv_56179: ; if (err == 0) { wl->tx_queue_stopped[queue_num] = 0; } else { } queue_num = queue_num + 1; ldv_56183: ; if (queue_num <= 3) { goto ldv_56182; } else { } dev->tx_count = dev->tx_count + 1U; mutex_unlock(& wl->mutex); return; } } static void b43_op_tx(struct ieee80211_hw *hw , struct ieee80211_tx_control *control , struct sk_buff *skb ) { struct b43_wl *wl ; struct b43_wl *tmp ; long tmp___0 ; int __ret_warn_on ; unsigned char *tmp___1 ; long tmp___2 ; { tmp = hw_to_b43_wl(hw); wl = tmp; tmp___0 = ldv__builtin_expect(skb->len <= 9U, 0L); if (tmp___0 != 0L) { ieee80211_free_txskb(hw, skb); return; } else { } tmp___1 = skb_end_pointer((struct sk_buff const *)skb); __ret_warn_on = (unsigned int )((struct skb_shared_info *)tmp___1)->nr_frags != 0U; tmp___2 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___2 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 3652); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); skb_queue_tail((struct sk_buff_head *)(& wl->tx_queue) + (unsigned long )skb->queue_mapping, skb); if (! wl->tx_queue_stopped[(int )skb->queue_mapping]) { ieee80211_queue_work(wl->hw, & wl->tx_work); } else { ieee80211_stop_queue(wl->hw, (int )skb->queue_mapping); } return; } } static void b43_qos_params_upload(struct b43_wldev *dev , struct ieee80211_tx_queue_params const *p , u16 shm_offset ) { u16 params[16U] ; int bslots ; int tmp ; unsigned int i ; u16 tmp___0 ; u16 tmp___1 ; { if (! dev->qos_enabled) { return; } else { } tmp___0 = b43_read16(dev, 1626); bslots = (int )tmp___0 & (int )((unsigned short )p->cw_min); memset((void *)(& params), 0, 32UL); params[0] = (unsigned int )((u16 )p->txop) * 32U; params[1] = p->cw_min; params[2] = p->cw_max; params[3] = p->cw_min; params[4] = (u16 )p->aifs; params[5] = (u16 )bslots; params[6] = (int )((u16 )p->aifs) + (int )((u16 )bslots); i = 0U; goto ldv_56205; ldv_56204: ; if (i == 7U) { tmp___1 = b43_shm_read16(dev, 1, (int )((unsigned int )((u16 )i) * 2U + (unsigned int )shm_offset)); tmp = (int )tmp___1; tmp = tmp | 256; b43_shm_write16(dev, 1, (int )((unsigned int )((u16 )i) * 2U + (unsigned int )shm_offset), (int )((u16 )tmp)); } else { b43_shm_write16(dev, 1, (int )((unsigned int )((u16 )i) * 2U + (unsigned int )shm_offset), (int )params[i]); } i = i + 1U; ldv_56205: ; if (i <= 15U) { goto ldv_56204; } else { } return; } } static u16 const b43_qos_shm_offsets[4U] = { 672U, 640U, 608U, 576U}; static void b43_qos_upload_all(struct b43_wldev *dev ) { struct b43_wl *wl ; struct b43_qos_params *params ; unsigned int i ; { wl = dev->wl; if (! dev->qos_enabled) { return; } else { } b43_mac_suspend(dev); i = 0U; goto ldv_56217; ldv_56216: params = (struct b43_qos_params *)(& wl->qos_params) + (unsigned long )i; b43_qos_params_upload(dev, (struct ieee80211_tx_queue_params const *)(& params->p), (int )b43_qos_shm_offsets[i]); i = i + 1U; ldv_56217: ; if (i <= 3U) { goto ldv_56216; } else { } b43_mac_enable(dev); return; } } static void b43_qos_clear(struct b43_wl *wl ) { struct b43_qos_params *params ; unsigned int i ; int __ret_warn_on ; long tmp ; { i = 0U; goto ldv_56235; ldv_56234: params = (struct b43_qos_params *)(& wl->qos_params) + (unsigned long )i; switch ((int )b43_qos_shm_offsets[i]) { case 672: params->p.txop = 0U; params->p.aifs = 2U; params->p.cw_min = 1U; params->p.cw_max = 1U; goto ldv_56227; case 640: params->p.txop = 0U; params->p.aifs = 2U; params->p.cw_min = 1U; params->p.cw_max = 1U; goto ldv_56227; case 608: params->p.txop = 0U; params->p.aifs = 3U; params->p.cw_min = 1U; params->p.cw_max = 1023U; goto ldv_56227; case 576: params->p.txop = 0U; params->p.aifs = 7U; params->p.cw_min = 1U; params->p.cw_max = 1023U; goto ldv_56227; default: __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 3772); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); } ldv_56227: i = i + 1U; ldv_56235: ; if (i <= 3U) { goto ldv_56234; } else { } return; } } static void b43_qos_init(struct b43_wldev *dev ) { u64 tmp ; u16 tmp___0 ; u64 tmp___1 ; u16 tmp___2 ; { if (! dev->qos_enabled) { tmp = b43_hf_read(dev); b43_hf_write(dev, tmp & 0xfffffffffffffeffULL); tmp___0 = b43_read16(dev, 1672); b43_write16(dev, 1672, (int )tmp___0 & 65531); b43dbg(dev->wl, "QoS disabled\n"); return; } else { } b43_qos_upload_all(dev); tmp___1 = b43_hf_read(dev); b43_hf_write(dev, tmp___1 | 256ULL); tmp___2 = b43_read16(dev, 1672); b43_write16(dev, 1672, (int )((unsigned int )tmp___2 | 4U)); b43dbg(dev->wl, "QoS enabled\n"); return; } } static int b43_op_conf_tx(struct ieee80211_hw *hw , struct ieee80211_vif *vif , u16 _queue , struct ieee80211_tx_queue_params const *params ) { struct b43_wl *wl ; struct b43_wl *tmp ; struct b43_wldev *dev ; unsigned int queue ; int err ; int tmp___0 ; int tmp___1 ; long tmp___2 ; { tmp = hw_to_b43_wl(hw); wl = tmp; queue = (unsigned int )_queue; err = -19; if (queue > 3U) { return (0); } else { } mutex_lock_nested(& wl->mutex, 0U); dev = wl->current_dev; if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { tmp___1 = 1; } else { tmp___0 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___0 <= 0) { tmp___1 = 1; } else { tmp___1 = 0; } } tmp___2 = ldv__builtin_expect((long )tmp___1, 0L); if (tmp___2 != 0L) { goto out_unlock; } else { } memcpy((void *)(& wl->qos_params[queue].p), (void const *)params, 10UL); b43_mac_suspend(dev); b43_qos_params_upload(dev, (struct ieee80211_tx_queue_params const *)(& wl->qos_params[queue].p), (int )b43_qos_shm_offsets[queue]); b43_mac_enable(dev); err = 0; out_unlock: mutex_unlock(& wl->mutex); return (err); } } static int b43_op_get_stats(struct ieee80211_hw *hw , struct ieee80211_low_level_stats *stats ) { struct b43_wl *wl ; struct b43_wl *tmp ; { tmp = hw_to_b43_wl(hw); wl = tmp; mutex_lock_nested(& wl->mutex, 0U); memcpy((void *)stats, (void const *)(& wl->ieee_stats), 16UL); mutex_unlock(& wl->mutex); return (0); } } static u64 b43_op_get_tsf(struct ieee80211_hw *hw , struct ieee80211_vif *vif ) { struct b43_wl *wl ; struct b43_wl *tmp ; struct b43_wldev *dev ; u64 tsf ; int tmp___0 ; { tmp = hw_to_b43_wl(hw); wl = tmp; mutex_lock_nested(& wl->mutex, 0U); dev = wl->current_dev; if ((unsigned long )dev != (unsigned long )((struct b43_wldev *)0)) { tmp___0 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___0 > 0) { b43_tsf_read(dev, & tsf); } else { tsf = 0ULL; } } else { tsf = 0ULL; } mutex_unlock(& wl->mutex); return (tsf); } } static void b43_op_set_tsf(struct ieee80211_hw *hw , struct ieee80211_vif *vif , u64 tsf ) { struct b43_wl *wl ; struct b43_wl *tmp ; struct b43_wldev *dev ; int tmp___0 ; { tmp = hw_to_b43_wl(hw); wl = tmp; mutex_lock_nested(& wl->mutex, 0U); dev = wl->current_dev; if ((unsigned long )dev != (unsigned long )((struct b43_wldev *)0)) { tmp___0 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___0 > 0) { b43_tsf_write(dev, tsf); } else { } } else { } mutex_unlock(& wl->mutex); return; } } static char const *band_to_string(enum ieee80211_band band ) { int __ret_warn_on ; long tmp ; { switch ((unsigned int )band) { case 1U: ; return ("5"); case 0U: ; return ("2.4"); default: ; goto ldv_56278; } ldv_56278: __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 3893); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return (""); } } static int b43_switch_band(struct b43_wldev *dev , struct ieee80211_channel *chan ) { struct b43_phy *phy ; bool gmode ; u32 tmp ; int __ret_warn_on ; long tmp___0 ; char const *tmp___1 ; char const *tmp___2 ; { phy = & dev->phy; switch ((unsigned int )chan->band) { case 1U: gmode = 0; goto ldv_56289; case 0U: gmode = 1; goto ldv_56289; default: __ret_warn_on = 1; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 3913); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return (-22); } ldv_56289: ; if ((! gmode || ! phy->supports_2ghz) && ((int )gmode || ! phy->supports_5ghz)) { tmp___1 = band_to_string(chan->band); b43err(dev->wl, "This device doesn\'t support %s-GHz band\n", tmp___1); return (-19); } else { } if ((int )phy->gmode == (int )gmode) { return (0); } else { } tmp___2 = band_to_string(chan->band); b43dbg(dev->wl, "Switching to %s GHz band\n", tmp___2); if ((unsigned int )phy->type != 4U || (unsigned int )phy->rev <= 2U) { b43_software_rfkill(dev, 1); } else { } phy->gmode = gmode; b43_phy_put_into_reset(dev); switch ((unsigned int )(dev->dev)->bus_type) { case 0U: tmp = bcma_aread32((dev->dev)->__annonCompField105.bdev, 1032); if ((int )gmode) { tmp = tmp | 8192U; } else { tmp = tmp & 4294959103U; } bcma_awrite32((dev->dev)->__annonCompField105.bdev, 1032, tmp); goto ldv_56295; case 1U: tmp = ssb_read32((dev->dev)->__annonCompField105.sdev, 3992); if ((int )gmode) { tmp = tmp | 536870912U; } else { tmp = tmp & 3758096383U; } ssb_write32((dev->dev)->__annonCompField105.sdev, 3992, tmp); goto ldv_56295; } ldv_56295: b43_phy_take_out_of_reset(dev); b43_upload_initvals_band(dev); b43_phy_init(dev); return (0); } } static void b43_set_beacon_listen_interval(struct b43_wldev *dev , u16 interval ) { u16 __min1 ; u16 __min2 ; { __min1 = interval; __min2 = 255U; interval = (u16 )((int )__min1 < (int )__min2 ? __min1 : __min2); b43_shm_write16(dev, 1, 182, (int )interval); return; } } static void b43_set_retry_limits(struct b43_wldev *dev , unsigned int short_retry , unsigned int long_retry ) { unsigned int _min1 ; unsigned int _min2 ; unsigned int _min1___0 ; unsigned int _min2___0 ; { _min1 = short_retry; _min2 = 15U; short_retry = _min1 < _min2 ? _min1 : _min2; _min1___0 = long_retry; _min2___0 = 15U; long_retry = _min1___0 < _min2___0 ? _min1___0 : _min2___0; b43_shm_write16(dev, 2, 6, (int )((u16 )short_retry)); b43_shm_write16(dev, 2, 7, (int )((u16 )long_retry)); return; } } static int b43_op_config(struct ieee80211_hw *hw , u32 changed ) { struct b43_wl *wl ; struct b43_wl *tmp ; struct b43_wldev *dev ; struct b43_phy *phy ; struct ieee80211_conf *conf ; int antenna ; int err ; { tmp = hw_to_b43_wl(hw); wl = tmp; dev = wl->current_dev; phy = & dev->phy; conf = & hw->conf; err = 0; mutex_lock_nested(& wl->mutex, 0U); b43_mac_suspend(dev); if ((changed & 4U) != 0U) { b43_set_beacon_listen_interval(dev, (int )conf->listen_interval); } else { } if ((changed & 64U) != 0U) { phy->chandef = & conf->chandef; phy->channel = (unsigned int )(conf->chandef.chan)->hw_value; err = b43_switch_band(dev, conf->chandef.chan); if (err != 0) { goto out_mac_enable; } else { } b43_switch_channel(dev, phy->channel); } else { } if ((changed & 128U) != 0U) { b43_set_retry_limits(dev, (unsigned int )conf->short_frame_max_tx_count, (unsigned int )conf->long_frame_max_tx_count); } else { } changed = changed & 4294967167U; if (changed == 0U) { goto out_mac_enable; } else { } (dev->wl)->radiotap_enabled = ((int )conf->flags & 1) != 0; if (conf->power_level != 0) { if (conf->power_level != phy->desired_txpower) { phy->desired_txpower = conf->power_level; b43_phy_txpower_check(dev, 3U); } else { } } else { } antenna = 2; b43_mgmtframe_txantenna(dev, antenna); antenna = 2; if ((unsigned long )(phy->ops)->set_rx_antenna != (unsigned long )((void (*/* const */)(struct b43_wldev * , int ))0)) { (*((phy->ops)->set_rx_antenna))(dev, antenna); } else { } if ((int )wl->radio_enabled != (int )phy->radio_on) { if ((int )wl->radio_enabled) { b43_software_rfkill(dev, 0); b43info(dev->wl, "Radio turned on by software\n"); if (! dev->radio_hw_enable) { b43info(dev->wl, "The hardware RF-kill button still turns the radio physically off. Press the button to turn it on.\n"); } else { } } else { b43_software_rfkill(dev, 1); b43info(dev->wl, "Radio turned off by software\n"); } } else { } out_mac_enable: b43_mac_enable(dev); mutex_unlock(& wl->mutex); return (err); } } static void b43_update_basic_rates(struct b43_wldev *dev , u32 brates ) { struct ieee80211_supported_band *sband ; enum ieee80211_band tmp ; struct ieee80211_rate *rate ; int i ; u16 basic ; u16 direct ; u16 offset ; u16 basic_offset ; u16 rateptr ; u8 tmp___0 ; u8 tmp___1 ; int tmp___2 ; u8 tmp___3 ; u8 tmp___4 ; int tmp___5 ; { tmp = b43_current_band(dev->wl); sband = (((dev->wl)->hw)->wiphy)->bands[(unsigned int )tmp]; i = 0; goto ldv_56339; ldv_56338: rate = sband->bitrates + (unsigned long )i; tmp___2 = b43_is_cck_rate((int )rate->hw_value); if (tmp___2 != 0) { direct = 512U; basic = 544U; tmp___0 = b43_plcp_get_ratecode_cck((int )((u8 const )rate->hw_value)); offset = (u16 )tmp___0; offset = (unsigned int )offset & 15U; } else { direct = 448U; basic = 480U; tmp___1 = b43_plcp_get_ratecode_ofdm((int )((u8 const )rate->hw_value)); offset = (u16 )tmp___1; offset = (unsigned int )offset & 15U; } rate = ieee80211_get_response_rate(sband, brates, (int )rate->bitrate); tmp___5 = b43_is_cck_rate((int )rate->hw_value); if (tmp___5 != 0) { tmp___3 = b43_plcp_get_ratecode_cck((int )((u8 const )rate->hw_value)); basic_offset = (u16 )tmp___3; basic_offset = (unsigned int )basic_offset & 15U; } else { tmp___4 = b43_plcp_get_ratecode_ofdm((int )((u8 const )rate->hw_value)); basic_offset = (u16 )tmp___4; basic_offset = (unsigned int )basic_offset & 15U; } rateptr = b43_shm_read16(dev, 1, (int )((unsigned int )basic_offset * 2U + (unsigned int )direct)); b43_shm_write16(dev, 1, (int )((unsigned int )offset * 2U + (unsigned int )basic), (int )rateptr); i = i + 1; ldv_56339: ; if (sband->n_bitrates > i) { goto ldv_56338; } else { } return; } } static void b43_op_bss_info_changed(struct ieee80211_hw *hw , struct ieee80211_vif *vif , struct ieee80211_bss_conf *conf , u32 changed ) { struct b43_wl *wl ; struct b43_wl *tmp ; struct b43_wldev *dev ; int tmp___0 ; int __ret_warn_on ; long tmp___1 ; int tmp___2 ; int tmp___3 ; int tmp___4 ; int tmp___5 ; int tmp___6 ; int tmp___7 ; int tmp___8 ; { tmp = hw_to_b43_wl(hw); wl = tmp; mutex_lock_nested(& wl->mutex, 0U); dev = wl->current_dev; if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { goto out_unlock_mutex; } else { tmp___0 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___0 <= 1) { goto out_unlock_mutex; } else { } } __ret_warn_on = (unsigned long )wl->vif != (unsigned long )vif; tmp___1 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 4127); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if ((changed & 128U) != 0U) { if ((unsigned long )conf->bssid != (unsigned long )((u8 const *)0U)) { memcpy((void *)(& wl->bssid), (void const *)conf->bssid, 6UL); } else { eth_zero_addr((u8 *)(& wl->bssid)); } } else { } tmp___5 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___5 > 0) { if ((changed & 256U) != 0U) { tmp___2 = b43_is_mode(wl, 3); if (tmp___2 != 0) { b43_update_templates(wl); } else { tmp___3 = b43_is_mode(wl, 7); if (tmp___3 != 0) { b43_update_templates(wl); } else { tmp___4 = b43_is_mode(wl, 1); if (tmp___4 != 0) { b43_update_templates(wl); } else { } } } } else { } if ((changed & 128U) != 0U) { b43_write_mac_bssid_templates(dev); } else { } } else { } b43_mac_suspend(dev); if ((changed & 64U) != 0U) { tmp___6 = b43_is_mode(wl, 3); if (tmp___6 != 0) { goto _L; } else { tmp___7 = b43_is_mode(wl, 7); if (tmp___7 != 0) { goto _L; } else { tmp___8 = b43_is_mode(wl, 1); if (tmp___8 != 0) { _L: /* CIL Label */ if ((unsigned int )conf->beacon_int != 0U) { b43_set_beacon_int(dev, (int )conf->beacon_int); } else { } } else { } } } } else { } if ((changed & 32U) != 0U) { b43_update_basic_rates(dev, conf->basic_rates); } else { } if ((changed & 8U) != 0U) { if ((int )conf->use_short_slot) { b43_short_slot_timing_enable(dev); } else { b43_short_slot_timing_disable(dev); } } else { } b43_mac_enable(dev); out_unlock_mutex: mutex_unlock(& wl->mutex); return; } } static int b43_op_set_key(struct ieee80211_hw *hw , enum set_key_cmd cmd , struct ieee80211_vif *vif , struct ieee80211_sta *sta , struct ieee80211_key_conf *key ) { struct b43_wl *wl ; struct b43_wl *tmp ; struct b43_wldev *dev ; u8 algorithm ; u8 index ; int err ; u8 bcast_addr[6U] ; int tmp___0 ; int __ret_warn_on ; long tmp___1 ; int __ret_warn_on___0 ; long tmp___2 ; long tmp___3 ; u64 tmp___4 ; u64 tmp___5 ; int __ret_warn_on___1 ; long tmp___6 ; { tmp = hw_to_b43_wl(hw); wl = tmp; bcast_addr[0] = 255U; bcast_addr[1] = 255U; bcast_addr[2] = 255U; bcast_addr[3] = 255U; bcast_addr[4] = 255U; bcast_addr[5] = 255U; if (modparam_nohwcrypt != 0) { return (-28); } else { } if ((((unsigned int )vif->type == 1U || (unsigned int )vif->type == 7U) && (key->cipher == 1027074U || key->cipher == 1027076U)) && ((int )key->flags & 8) == 0) { return (-95); } else { } mutex_lock_nested(& wl->mutex, 0U); dev = wl->current_dev; err = -19; if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { goto out_unlock; } else { tmp___0 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___0 <= 0) { goto out_unlock; } else { } } if ((int )dev->fw.pcm_request_failed || ! dev->hwcrypto_enabled) { err = -95; goto out_unlock; } else { } err = -22; switch (key->cipher) { case 1027073U: algorithm = 1U; goto ldv_56367; case 1027077U: algorithm = 4U; goto ldv_56367; case 1027074U: algorithm = 2U; goto ldv_56367; case 1027076U: algorithm = 3U; goto ldv_56367; default: __ret_warn_on = 1; tmp___1 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 4229); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); goto out_unlock; } ldv_56367: index = (unsigned char )key->keyidx; if ((unsigned int )index > 3U) { goto out_unlock; } else { } switch ((unsigned int )cmd) { case 0U: ; if ((unsigned int )algorithm == 2U && (((int )key->flags & 8) == 0 || modparam_hwtkip == 0)) { err = -95; goto out_unlock; } else { } if (((int )key->flags & 8) != 0) { __ret_warn_on___0 = (unsigned long )sta == (unsigned long )((struct ieee80211_sta *)0); tmp___2 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___2 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 4247); } else { } tmp___3 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___3 != 0L) { err = -95; goto out_unlock; } else { } err = b43_key_write(dev, -1, (int )algorithm, (u8 const *)(& key->key), (size_t )key->keylen, (u8 const *)(& sta->addr), key); } else { err = b43_key_write(dev, (int )index, (int )algorithm, (u8 const *)(& key->key), (size_t )key->keylen, (u8 const *)0U, key); } if (err != 0) { goto out_unlock; } else { } if ((unsigned int )algorithm == 1U || (unsigned int )algorithm == 4U) { tmp___4 = b43_hf_read(dev); b43_hf_write(dev, tmp___4 | 16384ULL); } else { tmp___5 = b43_hf_read(dev); b43_hf_write(dev, tmp___5 & 0xffffffffffffbfffULL); } key->flags = (u8 )((unsigned int )key->flags | 2U); if ((unsigned int )algorithm == 2U) { key->flags = (u8 )((unsigned int )key->flags | 4U); } else { } goto ldv_56377; case 1U: err = b43_key_clear(dev, (int )key->hw_key_idx); if (err != 0) { goto out_unlock; } else { } goto ldv_56377; default: __ret_warn_on___1 = 1; tmp___6 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___6 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 4281); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); } ldv_56377: ; out_unlock: ; if (err == 0) { b43dbg(wl, "%s hardware based encryption for keyidx: %d, mac: %pM\n", (unsigned int )cmd == 0U ? (char *)"Using" : (char *)"Disabling", (int )key->keyidx, (unsigned long )sta != (unsigned long )((struct ieee80211_sta *)0) ? (unsigned char const *)(& sta->addr) : (unsigned char const *)(& bcast_addr)); b43_dump_keymemory(dev); } else { } mutex_unlock(& wl->mutex); return (err); } } static void b43_op_configure_filter(struct ieee80211_hw *hw , unsigned int changed , unsigned int *fflags , u64 multicast ) { struct b43_wl *wl ; struct b43_wl *tmp ; struct b43_wldev *dev ; int tmp___0 ; { tmp = hw_to_b43_wl(hw); wl = tmp; mutex_lock_nested(& wl->mutex, 0U); dev = wl->current_dev; if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { *fflags = 0U; goto out_unlock; } else { } *fflags = *fflags & 126U; changed = changed & 126U; wl->filter_flags = *fflags; if (changed != 0U) { tmp___0 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___0 > 0) { b43_adjust_opmode(dev); } else { } } else { } out_unlock: mutex_unlock(& wl->mutex); return; } } static struct b43_wldev *b43_wireless_core_stop(struct b43_wldev *dev ) { struct b43_wl *wl ; struct b43_wldev *orig_dev ; u32 mask ; int queue_num ; int tmp ; int tmp___0 ; bool tmp___1 ; bool tmp___2 ; int tmp___3 ; int __ret_warn_on ; long tmp___4 ; struct sk_buff *skb ; __u32 tmp___5 ; { if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { return ((struct b43_wldev *)0); } else { } wl = dev->wl; redo: ; if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { return (dev); } else { tmp = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp <= 1) { return (dev); } else { } } mutex_unlock(& wl->mutex); ldv_cancel_delayed_work_sync_11(& dev->periodic_work); ldv_cancel_work_sync_12(& wl->tx_work); b43_leds_stop(dev); mutex_lock_nested(& wl->mutex, 0U); dev = wl->current_dev; if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { return (dev); } else { tmp___0 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___0 <= 1) { return (dev); } else { } } atomic_set(& dev->__init_status, 1); __asm__ volatile ("": : : "memory"); tmp___1 = b43_bus_host_is_sdio(dev->dev); if ((int )tmp___1) { b43_write32(dev, 300, 0U); b43_read32(dev, 300); } else { spin_lock_irq(& wl->hardirq_lock); b43_write32(dev, 300, 0U); b43_read32(dev, 300); spin_unlock_irq(& wl->hardirq_lock); } orig_dev = dev; mutex_unlock(& wl->mutex); tmp___2 = b43_bus_host_is_sdio(dev->dev); if ((int )tmp___2) { b43_sdio_free_irq(dev); } else { synchronize_irq((dev->dev)->irq); ldv_free_irq_13((dev->dev)->irq, (void *)dev); } mutex_lock_nested(& wl->mutex, 0U); dev = wl->current_dev; if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { return (dev); } else { } if ((unsigned long )dev != (unsigned long )orig_dev) { tmp___3 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___3 > 1) { goto redo; } else { } return (dev); } else { } mask = b43_read32(dev, 300); __ret_warn_on = mask != 4294967295U && mask != 0U; tmp___4 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___4 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 4394); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); queue_num = 0; goto ldv_56406; ldv_56405: ; goto ldv_56403; ldv_56402: skb = skb_dequeue((struct sk_buff_head *)(& wl->tx_queue) + (unsigned long )queue_num); ieee80211_free_txskb(wl->hw, skb); ldv_56403: tmp___5 = skb_queue_len((struct sk_buff_head const *)(& wl->tx_queue) + (unsigned long )queue_num); if (tmp___5 != 0U) { goto ldv_56402; } else { } queue_num = queue_num + 1; ldv_56406: ; if (queue_num <= 3) { goto ldv_56405; } else { } b43_mac_suspend(dev); b43_leds_exit(dev); b43dbg(wl, "Wireless interface stopped\n"); return (dev); } } static int b43_wireless_core_start(struct b43_wldev *dev ) { int err ; int __ret_warn_on ; int tmp ; long tmp___0 ; bool tmp___1 ; { tmp = atomic_read((atomic_t const *)(& dev->__init_status)); __ret_warn_on = tmp != 1; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 4418); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); drain_txstatus_queue(dev); tmp___1 = b43_bus_host_is_sdio(dev->dev); if ((int )tmp___1) { err = b43_sdio_request_irq(dev, & b43_sdio_interrupt_handler); if (err != 0) { b43err(dev->wl, "Cannot request SDIO IRQ\n"); goto out; } else { } } else { err = ldv_request_threaded_irq_14((dev->dev)->irq, & b43_interrupt_handler, & b43_interrupt_thread_handler, 128UL, "b43", (void *)dev); if (err != 0) { b43err(dev->wl, "Cannot request IRQ-%d\n", (dev->dev)->irq); goto out; } else { } } ieee80211_wake_queues((dev->wl)->hw); atomic_set(& dev->__init_status, 2); __asm__ volatile ("": : : "memory"); b43_mac_enable(dev); b43_write32(dev, 300, dev->irq_mask); b43_periodic_tasks_setup(dev); b43_leds_init(dev); b43dbg(dev->wl, "Wireless interface started\n"); out: ; return (err); } } static char *b43_phy_name(struct b43_wldev *dev , u8 phy_type ) { { switch ((int )phy_type) { case 0: ; return ((char *)"A"); case 1: ; return ((char *)"B"); case 2: ; return ((char *)"G"); case 4: ; return ((char *)"N"); case 5: ; return ((char *)"LP"); case 6: ; return ((char *)"SSLPN"); case 7: ; return ((char *)"HT"); case 8: ; return ((char *)"LCN"); case 9: ; return ((char *)"LCNXN"); case 10: ; return ((char *)"LCN40"); case 11: ; return ((char *)"AC"); } return ((char *)"UNKNOWN"); } } static int b43_phy_versioning(struct b43_wldev *dev ) { struct b43_phy *phy ; u8 core_rev ; u32 tmp ; u8 analog_type ; u8 phy_type ; u8 phy_rev ; u16 radio_manuf ; u16 radio_id ; u16 radio_rev ; u8 radio_ver ; int unsupported ; u16 tmp___0 ; char *tmp___1 ; char *tmp___2 ; u16 radio24[3U] ; u16 tmp___3 ; u16 tmp___4 ; int __ret_warn_on ; long tmp___5 ; { phy = & dev->phy; core_rev = (dev->dev)->core_rev; unsupported = 0; tmp___0 = b43_read16(dev, 992); tmp = (u32 )tmp___0; analog_type = (u8 )((tmp & 61440U) >> 12); phy_type = (u8 )((tmp & 3840U) >> 8); phy_rev = (u8 )tmp; if ((unsigned int )phy_type == 9U) { phy_type = 4U; phy_rev = (unsigned int )phy_rev + 16U; } else { } switch ((int )phy_type) { case 2: ; if ((unsigned int )phy_rev > 9U) { unsupported = 1; } else { } goto ldv_56445; case 4: ; if ((unsigned int )phy_rev > 18U) { unsupported = 1; } else { } goto ldv_56445; case 5: ; if ((unsigned int )phy_rev > 2U) { unsupported = 1; } else { } goto ldv_56445; case 7: ; if ((unsigned int )phy_rev > 1U) { unsupported = 1; } else { } goto ldv_56445; default: unsupported = 1; } ldv_56445: ; if (unsupported != 0) { tmp___1 = b43_phy_name(dev, (int )phy_type); b43err(dev->wl, "FOUND UNSUPPORTED PHY (Analog %u, Type %d (%s), Revision %u)\n", (int )analog_type, (int )phy_type, tmp___1, (int )phy_rev); return (-95); } else { } tmp___2 = b43_phy_name(dev, (int )phy_type); b43info(dev->wl, "Found PHY: Analog %u, Type %d (%s), Revision %u\n", (int )analog_type, (int )phy_type, tmp___2, (int )phy_rev); if ((unsigned int )core_rev == 40U || (unsigned int )core_rev == 42U) { radio_manuf = 383U; b43_write16f(dev, 984, 0); radio_rev = b43_read16(dev, 986); b43_write16f(dev, 984, 1); radio_id = b43_read16(dev, 986); radio_ver = 0U; } else if ((unsigned int )core_rev > 23U) { tmp = 0U; goto ldv_56452; ldv_56451: b43_write16f(dev, 984, (int )((u16 )tmp)); radio24[tmp] = b43_read16(dev, 986); tmp = tmp + 1U; ldv_56452: ; if (tmp <= 2U) { goto ldv_56451; } else { } radio_manuf = 383U; radio_id = (u16 )((int )((short )((int )radio24[2] << 8)) | (int )((short )radio24[1])); radio_rev = (unsigned int )radio24[0] & 15U; radio_ver = (u8 )(((int )radio24[0] & 240) >> 4); } else { if ((unsigned int )(dev->dev)->chip_id == 17175U) { if ((unsigned int )(dev->dev)->chip_rev == 0U) { tmp = 839188863U; } else if ((unsigned int )(dev->dev)->chip_rev == 1U) { tmp = 1107624319U; } else { tmp = 1376059775U; } } else { b43_write16f(dev, 1014, 1); tmp___3 = b43_read16(dev, 1018); tmp = (u32 )tmp___3; b43_write16f(dev, 1014, 1); tmp___4 = b43_read16(dev, 1016); tmp = (u32 )((int )tmp___4 << 16) | tmp; } radio_manuf = (unsigned int )((u16 )tmp) & 4095U; radio_id = (u16 )((tmp & 268431360U) >> 12); radio_rev = (u16 )(tmp >> 28); radio_ver = 0U; } if ((unsigned int )radio_manuf != 383U) { unsupported = 1; } else { } switch ((int )phy_type) { case 0: ; if ((unsigned int )radio_id != 8288U) { unsupported = 1; } else { } if ((unsigned int )radio_rev != 1U) { unsupported = 1; } else { } if ((unsigned int )radio_manuf != 383U) { unsupported = 1; } else { } goto ldv_56455; case 1: ; if (((int )radio_id & 65520) != 8272) { unsupported = 1; } else { } goto ldv_56455; case 2: ; if ((unsigned int )radio_id != 8272U) { unsupported = 1; } else { } goto ldv_56455; case 4: ; if (((unsigned int )radio_id != 8277U && (unsigned int )radio_id != 8278U) && (unsigned int )radio_id != 8279U) { unsupported = 1; } else { } if ((unsigned int )radio_id == 8279U && ((unsigned int )radio_rev != 9U && (unsigned int )radio_rev != 14U)) { unsupported = 1; } else { } goto ldv_56455; case 5: ; if ((unsigned int )radio_id != 8290U && (unsigned int )radio_id != 8291U) { unsupported = 1; } else { } goto ldv_56455; case 7: ; if ((unsigned int )radio_id != 8281U) { unsupported = 1; } else { } goto ldv_56455; case 8: ; if ((unsigned int )radio_id != 8292U) { unsupported = 1; } else { } goto ldv_56455; case 11: ; if ((unsigned int )radio_id != 8297U) { unsupported = 1; } else { } goto ldv_56455; default: __ret_warn_on = 1; tmp___5 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___5 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 4650); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); } ldv_56455: ; if (unsupported != 0) { b43err(dev->wl, "FOUND UNSUPPORTED RADIO (Manuf 0x%X, ID 0x%X, Revision %u, Version %u)\n", (int )radio_manuf, (int )radio_id, (int )radio_rev, (int )radio_ver); return (-95); } else { } b43info(dev->wl, "Found Radio: Manuf 0x%X, ID 0x%X, Revision %u, Version %u\n", (int )radio_manuf, (int )radio_id, (int )radio_rev, (int )radio_ver); phy->radio_manuf = radio_manuf; phy->radio_ver = radio_id; phy->radio_rev = (u8 )radio_rev; phy->analog = analog_type; phy->type = phy_type; phy->rev = phy_rev; return (0); } } static void setup_struct_phy_for_init(struct b43_wldev *dev , struct b43_phy *phy ) { { phy->hardware_power_control = modparam_hwpctl != 0; phy->next_txpwr_check_time = jiffies; atomic_set(& phy->txerr_cnt, 1000); phy->phy_locked = 0; phy->radio_locked = 0; return; } } static void setup_struct_wldev_for_init(struct b43_wldev *dev ) { { dev->dfq_valid = 0; dev->radio_hw_enable = 1; memset((void *)(& dev->stats), 0, 1UL); setup_struct_phy_for_init(dev, & dev->phy); dev->irq_reason = 0U; memset((void *)(& dev->dma_reason), 0, 24UL); dev->irq_mask = 939887204U; if (b43_modparam_verbose <= 2) { dev->irq_mask = dev->irq_mask & 4294965247U; } else { } dev->mac_suspended = 1; memset((void *)(& dev->noisecalc), 0, 34UL); return; } } static void b43_bluetooth_coext_enable(struct b43_wldev *dev ) { struct ssb_sprom *sprom ; u64 hf ; { sprom = (dev->dev)->bus_sprom; if (modparam_btcoex == 0) { return; } else { } if (((int )sprom->boardflags_lo & 1) == 0) { return; } else { } if ((unsigned int )dev->phy.type != 1U && ! dev->phy.gmode) { return; } else { } hf = b43_hf_read(dev); if (((int )sprom->boardflags_lo & 16384) != 0) { hf = hf | 16777216ULL; } else { hf = hf | 16ULL; } b43_hf_write(dev, hf); return; } } static void b43_bluetooth_coext_disable(struct b43_wldev *dev ) { { if (modparam_btcoex == 0) { return; } else { } return; } } static void b43_imcfglo_timeouts_workaround(struct b43_wldev *dev ) { struct ssb_bus *bus ; u32 tmp ; { if ((unsigned int )(dev->dev)->bus_type != 1U) { return; } else { } bus = ((dev->dev)->__annonCompField105.sdev)->bus; if (((unsigned int )bus->chip_id == 17169U && (unsigned int )bus->chip_rev == 2U) || (unsigned int )bus->chip_id == 17170U) { tmp = ssb_read32((dev->dev)->__annonCompField105.sdev, 4008); tmp = tmp & 4294967183U; tmp = tmp & 4294967288U; tmp = tmp | 3U; ssb_write32((dev->dev)->__annonCompField105.sdev, 4008, tmp); ssb_commit_settings(bus); } else { } return; } } static void b43_set_synth_pu_delay(struct b43_wldev *dev , bool idle ) { u16 pu_delay ; int tmp ; u16 _max1 ; unsigned short _max2 ; { if ((unsigned int )dev->phy.type == 0U) { pu_delay = 3700U; } else { pu_delay = 1050U; } tmp = b43_is_mode(dev->wl, 1); if (tmp != 0 || (int )idle) { pu_delay = 500U; } else { } if ((unsigned int )dev->phy.radio_ver == 8272U && (unsigned int )dev->phy.radio_rev == 8U) { _max1 = pu_delay; _max2 = 2400U; pu_delay = (u16 )((int )_max1 > (int )_max2 ? (int )_max1 : (int )_max2); } else { } b43_shm_write16(dev, 1, 148, (int )pu_delay); return; } } static void b43_set_pretbtt(struct b43_wldev *dev ) { u16 pretbtt ; int tmp ; { tmp = b43_is_mode(dev->wl, 1); if (tmp != 0) { pretbtt = 2U; } else if ((unsigned int )dev->phy.type == 0U) { pretbtt = 120U; } else { pretbtt = 250U; } b43_shm_write16(dev, 1, 150, (int )pretbtt); b43_write16(dev, 1554, (int )pretbtt); return; } } static void b43_wireless_core_exit(struct b43_wldev *dev ) { int __ret_warn_on ; int tmp ; int tmp___0 ; long tmp___1 ; int tmp___2 ; { if ((unsigned long )dev != (unsigned long )((struct b43_wldev *)0)) { tmp = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp > 1) { tmp___0 = 1; } else { tmp___0 = 0; } } else { tmp___0 = 0; } __ret_warn_on = tmp___0; tmp___1 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 4805); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { return; } else { tmp___2 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___2 != 1) { return; } else { } } atomic_set(& dev->__init_status, 0); __asm__ volatile ("": : : "memory"); b43_maskset32(dev, 288, 4294967293U, 4U); switch ((unsigned int )(dev->dev)->bus_type) { case 0U: bcma_host_pci_down(((dev->dev)->__annonCompField105.bdev)->bus); goto ldv_56504; case 1U: ; goto ldv_56504; } ldv_56504: b43_dma_free(dev); b43_pio_free(dev); b43_chip_exit(dev); (*((dev->phy.ops)->switch_analog))(dev, 0); if ((unsigned long )(dev->wl)->current_beacon != (unsigned long )((struct sk_buff *)0)) { dev_kfree_skb_any((dev->wl)->current_beacon); (dev->wl)->current_beacon = (struct sk_buff *)0; } else { } b43_device_disable(dev, 0U); b43_bus_may_powerdown(dev); return; } } static int b43_wireless_core_init(struct b43_wldev *dev ) { struct ssb_sprom *sprom ; struct b43_phy *phy ; int err ; u64 hf ; int __ret_warn_on ; int tmp ; long tmp___0 ; int tmp___1 ; u32 mac_hw_cap ; u32 tmp___2 ; bool tmp___3 ; bool tmp___4 ; int __ret_warn_on___0 ; int tmp___5 ; long tmp___6 ; { sprom = (dev->dev)->bus_sprom; phy = & dev->phy; tmp = atomic_read((atomic_t const *)(& dev->__init_status)); __ret_warn_on = tmp != 0; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 4849); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); err = b43_bus_powerup(dev, 0); if (err != 0) { goto out; } else { } tmp___1 = b43_device_is_enabled(dev); if (tmp___1 == 0) { b43_wireless_core_reset(dev, (int )phy->gmode); } else { } setup_struct_wldev_for_init(dev); (*((phy->ops)->prepare_structs))(dev); switch ((unsigned int )(dev->dev)->bus_type) { case 0U: bcma_host_pci_irq_ctl(((dev->dev)->__annonCompField105.bdev)->bus, (dev->dev)->__annonCompField105.bdev, 1); bcma_host_pci_up(((dev->dev)->__annonCompField105.bdev)->bus); goto ldv_56517; case 1U: ssb_pcicore_dev_irqvecs_enable(& (((dev->dev)->__annonCompField105.sdev)->bus)->pcicore, (dev->dev)->__annonCompField105.sdev); goto ldv_56517; } ldv_56517: b43_imcfglo_timeouts_workaround(dev); b43_bluetooth_coext_disable(dev); if ((unsigned long )(phy->ops)->prepare_hardware != (unsigned long )((int (*/* const */)(struct b43_wldev * ))0)) { err = (*((phy->ops)->prepare_hardware))(dev); if (err != 0) { goto err_busdown; } else { } } else { } err = b43_chip_init(dev); if (err != 0) { goto err_busdown; } else { } b43_shm_write16(dev, 1, 22, (int )(dev->dev)->core_rev); hf = b43_hf_read(dev); if ((unsigned int )phy->type == 2U) { hf = hf | 2ULL; if ((unsigned int )phy->rev == 1U) { hf = hf | 32ULL; } else { } if (((int )sprom->boardflags_lo & 2) != 0) { hf = hf | 64ULL; } else { } } else { } if ((unsigned int )phy->radio_ver == 8272U) { if ((unsigned int )phy->radio_rev == 6U) { hf = hf | 2097152ULL; } else { } if ((unsigned int )phy->radio_rev <= 5U) { hf = hf | 262144ULL; } else { } } else { } if (((int )sprom->boardflags_lo & 32) != 0) { hf = hf | 1024ULL; } else { } if (((unsigned int )(dev->dev)->bus_type == 1U && (unsigned int )(((dev->dev)->__annonCompField105.sdev)->bus)->bustype == 1U) && (unsigned int )((((dev->dev)->__annonCompField105.sdev)->bus)->pcicore.dev)->id.revision <= 10U) { hf = hf | 524288ULL; } else { } hf = hf & 0xfffffffffbffffffULL; b43_hf_write(dev, hf); if ((unsigned int )(dev->dev)->core_rev > 12U) { tmp___2 = b43_read32(dev, 348); mac_hw_cap = tmp___2; b43_shm_write16(dev, 1, 192, (int )((u16 )mac_hw_cap)); b43_shm_write16(dev, 1, 194, (int )((u16 )(mac_hw_cap >> 16))); } else { } b43_set_retry_limits(dev, 7U, 4U); b43_shm_write16(dev, 1, 68, 3); b43_shm_write16(dev, 1, 70, 2); b43_shm_write16(dev, 1, 116, 1); b43_rate_memory_init(dev); b43_set_phytxctl_defaults(dev); if ((unsigned int )phy->type == 1U) { b43_shm_write16(dev, 2, 3, 31); } else { b43_shm_write16(dev, 2, 3, 15); } b43_shm_write16(dev, 2, 4, 1023); b43_shm_write16(dev, 1, 82, (int )phy->type); b43_shm_write16(dev, 1, 80, (int )phy->rev); tmp___3 = b43_bus_host_is_pcmcia(dev->dev); if ((int )tmp___3) { dev->__using_pio_transfers = 1; err = b43_pio_init(dev); } else { tmp___4 = b43_bus_host_is_sdio(dev->dev); if ((int )tmp___4) { dev->__using_pio_transfers = 1; err = b43_pio_init(dev); } else if ((int )dev->use_pio) { b43warn(dev->wl, "Forced PIO by use_pio module parameter. This should not be needed and will result in lower performance.\n"); dev->__using_pio_transfers = 1; err = b43_pio_init(dev); } else { dev->__using_pio_transfers = 0; err = b43_dma_init(dev); } } if (err != 0) { goto err_chip_exit; } else { } b43_qos_init(dev); b43_set_synth_pu_delay(dev, 1); b43_bluetooth_coext_enable(dev); b43_bus_powerup(dev, ((int )sprom->boardflags_lo & 32) == 0); b43_upload_card_macaddress(dev); b43_security_init(dev); ieee80211_wake_queues((dev->wl)->hw); atomic_set(& dev->__init_status, 1); __asm__ volatile ("": : : "memory"); out: ; return (err); err_chip_exit: b43_chip_exit(dev); err_busdown: b43_bus_may_powerdown(dev); tmp___5 = atomic_read((atomic_t const *)(& dev->__init_status)); __ret_warn_on___0 = tmp___5 != 0; tmp___6 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___6 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 4986); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); return (err); } } static int b43_op_add_interface(struct ieee80211_hw *hw , struct ieee80211_vif *vif ) { struct b43_wl *wl ; struct b43_wl *tmp ; struct b43_wldev *dev ; int err ; { tmp = hw_to_b43_wl(hw); wl = tmp; err = -95; if (((((unsigned int )vif->type != 3U && (unsigned int )vif->type != 7U) && (unsigned int )vif->type != 2U) && (unsigned int )vif->type != 5U) && (unsigned int )vif->type != 1U) { return (-95); } else { } mutex_lock_nested(& wl->mutex, 0U); if ((int )wl->operating) { goto out_mutex_unlock; } else { } b43dbg(wl, "Adding Interface type %d\n", (unsigned int )vif->type); dev = wl->current_dev; wl->operating = 1; wl->vif = vif; wl->if_type = (int )vif->type; memcpy((void *)(& wl->mac_addr), (void const *)(& vif->addr), 6UL); b43_adjust_opmode(dev); b43_set_pretbtt(dev); b43_set_synth_pu_delay(dev, 0); b43_upload_card_macaddress(dev); err = 0; out_mutex_unlock: mutex_unlock(& wl->mutex); if (err == 0) { b43_op_bss_info_changed(hw, vif, & vif->bss_conf, 4294967295U); } else { } return (err); } } static void b43_op_remove_interface(struct ieee80211_hw *hw , struct ieee80211_vif *vif ) { struct b43_wl *wl ; struct b43_wl *tmp ; struct b43_wldev *dev ; int __ret_warn_on ; long tmp___0 ; int __ret_warn_on___0 ; long tmp___1 ; { tmp = hw_to_b43_wl(hw); wl = tmp; dev = wl->current_dev; b43dbg(wl, "Removing Interface type %d\n", (unsigned int )vif->type); mutex_lock_nested(& wl->mutex, 0U); __ret_warn_on = ! wl->operating; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 5043); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); __ret_warn_on___0 = (unsigned long )wl->vif != (unsigned long )vif; tmp___1 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 5044); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); wl->vif = (struct ieee80211_vif *)0; wl->operating = 0; b43_adjust_opmode(dev); eth_zero_addr((u8 *)(& wl->mac_addr)); b43_upload_card_macaddress(dev); mutex_unlock(& wl->mutex); return; } } static int b43_op_start(struct ieee80211_hw *hw ) { struct b43_wl *wl ; struct b43_wl *tmp ; struct b43_wldev *dev ; int did_init ; int err ; int tmp___0 ; int tmp___1 ; { tmp = hw_to_b43_wl(hw); wl = tmp; dev = wl->current_dev; did_init = 0; err = 0; eth_zero_addr((u8 *)(& wl->bssid)); eth_zero_addr((u8 *)(& wl->mac_addr)); wl->filter_flags = 0U; wl->radiotap_enabled = 0; b43_qos_clear(wl); wl->beacon0_uploaded = 0; wl->beacon1_uploaded = 0; wl->beacon_templates_virgin = 1; wl->radio_enabled = 1; mutex_lock_nested(& wl->mutex, 0U); tmp___0 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___0 <= 0) { err = b43_wireless_core_init(dev); if (err != 0) { goto out_mutex_unlock; } else { } did_init = 1; } else { } tmp___1 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___1 <= 1) { err = b43_wireless_core_start(dev); if (err != 0) { if (did_init != 0) { b43_wireless_core_exit(dev); } else { } goto out_mutex_unlock; } else { } } else { } wiphy_rfkill_start_polling(hw->wiphy); out_mutex_unlock: mutex_unlock(& wl->mutex); if (err == 0) { b43_op_config(hw, 4294967295U); } else { } return (err); } } static void b43_op_stop(struct ieee80211_hw *hw ) { struct b43_wl *wl ; struct b43_wl *tmp ; struct b43_wldev *dev ; int tmp___0 ; { tmp = hw_to_b43_wl(hw); wl = tmp; dev = wl->current_dev; ldv_cancel_work_sync_15(& wl->beacon_update_trigger); if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { goto out; } else { } mutex_lock_nested(& wl->mutex, 0U); tmp___0 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___0 > 1) { dev = b43_wireless_core_stop(dev); if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { goto out_unlock; } else { } } else { } b43_wireless_core_exit(dev); wl->radio_enabled = 0; out_unlock: mutex_unlock(& wl->mutex); out: ldv_cancel_work_sync_16(& wl->txpower_adjust_work); return; } } static int b43_op_beacon_set_tim(struct ieee80211_hw *hw , struct ieee80211_sta *sta , bool set ) { struct b43_wl *wl ; struct b43_wl *tmp ; { tmp = hw_to_b43_wl(hw); wl = tmp; b43_update_templates(wl); return (0); } } static void b43_op_sta_notify(struct ieee80211_hw *hw , struct ieee80211_vif *vif , enum sta_notify_cmd notify_cmd , struct ieee80211_sta *sta ) { struct b43_wl *wl ; struct b43_wl *tmp ; int __ret_warn_on ; long tmp___0 ; { tmp = hw_to_b43_wl(hw); wl = tmp; __ret_warn_on = (unsigned long )vif == (unsigned long )((struct ieee80211_vif *)0) || (unsigned long )wl->vif != (unsigned long )vif; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 5154); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return; } } static void b43_op_sw_scan_start_notifier(struct ieee80211_hw *hw , struct ieee80211_vif *vif , u8 const *mac_addr ) { struct b43_wl *wl ; struct b43_wl *tmp ; struct b43_wldev *dev ; u64 tmp___0 ; int tmp___1 ; { tmp = hw_to_b43_wl(hw); wl = tmp; mutex_lock_nested(& wl->mutex, 0U); dev = wl->current_dev; if ((unsigned long )dev != (unsigned long )((struct b43_wldev *)0)) { tmp___1 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___1 > 0) { tmp___0 = b43_hf_read(dev); b43_hf_write(dev, tmp___0 | 67108864ULL); } else { } } else { } mutex_unlock(& wl->mutex); return; } } static void b43_op_sw_scan_complete_notifier(struct ieee80211_hw *hw , struct ieee80211_vif *vif ) { struct b43_wl *wl ; struct b43_wl *tmp ; struct b43_wldev *dev ; u64 tmp___0 ; int tmp___1 ; { tmp = hw_to_b43_wl(hw); wl = tmp; mutex_lock_nested(& wl->mutex, 0U); dev = wl->current_dev; if ((unsigned long )dev != (unsigned long )((struct b43_wldev *)0)) { tmp___1 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___1 > 0) { tmp___0 = b43_hf_read(dev); b43_hf_write(dev, tmp___0 & 0xfffffffffbffffffULL); } else { } } else { } mutex_unlock(& wl->mutex); return; } } static int b43_op_get_survey(struct ieee80211_hw *hw , int idx , struct survey_info *survey ) { struct b43_wl *wl ; struct b43_wl *tmp ; struct b43_wldev *dev ; struct ieee80211_conf *conf ; { tmp = hw_to_b43_wl(hw); wl = tmp; dev = wl->current_dev; conf = & hw->conf; if (idx != 0) { return (-2); } else { } survey->channel = conf->chandef.chan; survey->filled = 1U; survey->noise = (s8 )dev->stats.link_noise; return (0); } } static struct ieee80211_ops const b43_hw_ops = {& b43_op_tx, & b43_op_start, & b43_op_stop, 0, 0, 0, & b43_op_add_interface, 0, & b43_op_remove_interface, & b43_op_config, & b43_op_bss_info_changed, 0, 0, 0, & b43_op_configure_filter, & b43_op_beacon_set_tim, & b43_op_set_key, & b43_op_update_tkip_key, 0, 0, 0, 0, 0, 0, & b43_op_sw_scan_start_notifier, & b43_op_sw_scan_complete_notifier, & b43_op_get_stats, 0, 0, 0, 0, 0, 0, 0, & b43_op_sta_notify, 0, 0, 0, 0, 0, & b43_op_conf_tx, & b43_op_get_tsf, & b43_op_set_tsf, 0, 0, 0, & b43_op_get_survey, & b43_rfkill_poll, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; static void b43_chip_reset(struct work_struct *work ) { struct b43_wldev *dev ; struct work_struct const *__mptr ; struct b43_wl *wl ; int err ; int prev_status ; { __mptr = (struct work_struct const *)work; dev = (struct b43_wldev *)__mptr + 0xfffffffffffffd98UL; wl = dev->wl; err = 0; mutex_lock_nested(& wl->mutex, 0U); prev_status = atomic_read((atomic_t const *)(& dev->__init_status)); if (prev_status > 1) { dev = b43_wireless_core_stop(dev); if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { err = -19; goto out; } else { } } else { } if (prev_status > 0) { b43_wireless_core_exit(dev); } else { } if (prev_status > 0) { err = b43_wireless_core_init(dev); if (err != 0) { goto out; } else { } } else { } if (prev_status > 1) { err = b43_wireless_core_start(dev); if (err != 0) { b43_wireless_core_exit(dev); goto out; } else { } } else { } out: ; if (err != 0) { wl->current_dev = (struct b43_wldev *)0; } else { } mutex_unlock(& wl->mutex); if (err != 0) { b43err(wl, "Controller restart FAILED\n"); return; } else { } b43_op_config(wl->hw, 4294967295U); if ((unsigned long )wl->vif != (unsigned long )((struct ieee80211_vif *)0)) { b43_op_bss_info_changed(wl->hw, wl->vif, & (wl->vif)->bss_conf, 4294967295U); } else { } b43info(wl, "Controller restarted\n"); return; } } static int b43_setup_bands(struct b43_wldev *dev , bool have_2ghz_phy , bool have_5ghz_phy ) { struct ieee80211_hw *hw ; struct b43_phy *phy ; bool limited_2g ; bool limited_5g ; { hw = (dev->wl)->hw; phy = & dev->phy; limited_2g = (bool )((unsigned int )phy->radio_ver == 8279U && ((unsigned int )phy->radio_rev == 9U || (unsigned int )phy->radio_rev == 14U)); limited_5g = (bool )((unsigned int )phy->radio_ver == 8279U && (unsigned int )phy->radio_rev == 9U); if ((int )have_2ghz_phy) { (hw->wiphy)->bands[0] = (int )limited_2g ? & b43_band_2ghz_limited : & b43_band_2GHz; } else { } if ((unsigned int )dev->phy.type == 4U) { if ((int )have_5ghz_phy) { (hw->wiphy)->bands[1] = (int )limited_5g ? & b43_band_5GHz_nphy_limited : & b43_band_5GHz_nphy; } else { } } else if ((int )have_5ghz_phy) { (hw->wiphy)->bands[1] = & b43_band_5GHz_aphy; } else { } dev->phy.supports_2ghz = have_2ghz_phy; dev->phy.supports_5ghz = have_5ghz_phy; return (0); } } static void b43_wireless_core_detach(struct b43_wldev *dev ) { { b43_release_firmware(dev); b43_phy_free(dev); return; } } static void b43_supported_bands(struct b43_wldev *dev , bool *have_2ghz_phy , bool *have_5ghz_phy ) { u16 dev_id ; int __ret_warn_on ; long tmp ; { dev_id = 0U; if ((unsigned int )(dev->dev)->bus_type == 0U && (unsigned int )(((dev->dev)->__annonCompField105.bdev)->bus)->hosttype == 0U) { dev_id = ((((dev->dev)->__annonCompField105.bdev)->bus)->__annonCompField98.host_pci)->device; } else { } if ((unsigned int )(dev->dev)->bus_type == 1U && (unsigned int )(((dev->dev)->__annonCompField105.sdev)->bus)->bustype == 1U) { dev_id = ((((dev->dev)->__annonCompField105.sdev)->bus)->__annonCompField97.host_pci)->device; } else { } if ((unsigned int )((dev->dev)->bus_sprom)->dev_id != 0U) { dev_id = ((dev->dev)->bus_sprom)->dev_id; } else { } switch ((int )dev_id) { case 17188: ; case 17170: ; case 17177: ; case 17192: ; case 17195: ; case 17232: ; case 17235: ; case 1398: ; case 17247: ; case 17201: ; case 17241: ; case 17312: ; case 17329: *have_2ghz_phy = 1; *have_5ghz_phy = 1; return; case 17185: ; if ((unsigned int )dev->phy.type != 2U) { goto ldv_56636; } else { } case 17171: ; case 17178: ; case 17194: ; case 17197: ; case 17234: ; case 17242: ; case 17203: ; case 17314: ; case 17331: *have_2ghz_phy = 0; *have_5ghz_phy = 1; return; } ldv_56636: ; switch ((int )dev->phy.type) { case 0: *have_2ghz_phy = 0; *have_5ghz_phy = 1; return; case 2: ; case 4: ; case 5: ; case 7: ; case 8: *have_2ghz_phy = 1; *have_5ghz_phy = 0; return; } __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 5399); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return; } } static int b43_wireless_core_attach(struct b43_wldev *dev ) { struct b43_wl *wl ; struct b43_phy *phy ; int err ; u32 tmp ; bool have_2ghz_phy ; bool have_5ghz_phy ; int __ret_warn_on ; long tmp___0 ; struct lock_class_key __key ; atomic_long_t __constr_expr_0 ; { wl = dev->wl; phy = & dev->phy; have_2ghz_phy = 0; have_5ghz_phy = 0; err = b43_bus_powerup(dev, 0); if (err != 0) { b43err(wl, "Bus powerup failed\n"); goto out; } else { } phy->do_full_init = 1; switch ((unsigned int )(dev->dev)->bus_type) { case 0U: tmp = bcma_aread32((dev->dev)->__annonCompField105.bdev, 1280); have_2ghz_phy = ((int )tmp & 1) != 0; have_5ghz_phy = (tmp & 2U) != 0U; goto ldv_56665; case 1U: ; if ((unsigned int )(dev->dev)->core_rev > 4U) { tmp = ssb_read32((dev->dev)->__annonCompField105.sdev, 3996); have_2ghz_phy = (tmp & 65536U) != 0U; have_5ghz_phy = (tmp & 131072U) != 0U; } else { __ret_warn_on = 1; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 5441); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); } goto ldv_56665; } ldv_56665: dev->phy.gmode = have_2ghz_phy; b43_wireless_core_reset(dev, (int )dev->phy.gmode); err = b43_phy_versioning(dev); if (err != 0) { goto err_powerdown; } else { } b43_supported_bands(dev, & have_2ghz_phy, & have_5ghz_phy); if ((int )have_5ghz_phy) { switch ((int )dev->phy.type) { case 0: ; case 2: ; case 5: ; case 7: b43warn(wl, "5 GHz band is unsupported on this PHY\n"); have_5ghz_phy = 0; } } else { } if (! have_2ghz_phy && ! have_5ghz_phy) { b43err(wl, "b43 can\'t support any band on this device\n"); err = -95; goto err_powerdown; } else { } err = b43_phy_allocate(dev); if (err != 0) { goto err_powerdown; } else { } dev->phy.gmode = have_2ghz_phy; b43_wireless_core_reset(dev, (int )dev->phy.gmode); err = b43_validate_chipaccess(dev); if (err != 0) { goto err_phy_free; } else { } err = b43_setup_bands(dev, (int )have_2ghz_phy, (int )have_5ghz_phy); if (err != 0) { goto err_phy_free; } else { } if ((unsigned long )wl->current_dev == (unsigned long )((struct b43_wldev *)0)) { wl->current_dev = dev; } else { } __init_work(& dev->restart_work, 0); __constr_expr_0.counter = 137438953408L; dev->restart_work.data = __constr_expr_0; lockdep_init_map(& dev->restart_work.lockdep_map, "(&dev->restart_work)", & __key, 0); INIT_LIST_HEAD(& dev->restart_work.entry); dev->restart_work.func = & b43_chip_reset; (*((dev->phy.ops)->switch_analog))(dev, 0); b43_device_disable(dev, 0U); b43_bus_may_powerdown(dev); out: ; return (err); err_phy_free: b43_phy_free(dev); err_powerdown: b43_bus_may_powerdown(dev); return (err); } } static void b43_one_core_detach(struct b43_bus_dev *dev ) { struct b43_wldev *wldev ; struct b43_wl *wl ; void *tmp ; { tmp = b43_bus_get_wldev(dev); wldev = (struct b43_wldev *)tmp; wl = wldev->wl; b43_debugfs_remove_device(wldev); b43_wireless_core_detach(wldev); list_del(& wldev->list); b43_bus_set_wldev(dev, (void *)0); kfree((void const *)wldev); return; } } static int b43_one_core_attach(struct b43_bus_dev *dev , struct b43_wl *wl ) { struct b43_wldev *wldev ; int err ; void *tmp ; { err = -12; tmp = kzalloc(1912UL, 208U); wldev = (struct b43_wldev *)tmp; if ((unsigned long )wldev == (unsigned long )((struct b43_wldev *)0)) { goto out; } else { } wldev->use_pio = b43_modparam_pio != 0; wldev->dev = dev; wldev->wl = wl; atomic_set(& wldev->__init_status, 0); __asm__ volatile ("": : : "memory"); wldev->bad_frames_preempt = modparam_bad_frames_preempt != 0; INIT_LIST_HEAD(& wldev->list); err = b43_wireless_core_attach(wldev); if (err != 0) { goto err_kfree_wldev; } else { } b43_bus_set_wldev(dev, (void *)wldev); b43_debugfs_add_device(wldev); out: ; return (err); err_kfree_wldev: kfree((void const *)wldev); return (err); } } static void b43_sprom_fixup(struct ssb_bus *bus ) { struct pci_dev *pdev ; { if (((unsigned int )bus->boardinfo.vendor == 4136U && (unsigned int )bus->chip_id == 17153U) && (unsigned int )bus->sprom.board_rev == 116U) { bus->sprom.boardflags_lo = (u16 )((unsigned int )bus->sprom.boardflags_lo | 1U); } else { } if (((unsigned int )bus->boardinfo.vendor == 4203U && (unsigned int )bus->boardinfo.type == 78U) && (unsigned int )bus->sprom.board_rev > 64U) { bus->sprom.boardflags_lo = (u16 )((unsigned int )bus->sprom.boardflags_lo | 2U); } else { } if ((unsigned int )bus->bustype == 1U) { pdev = bus->__annonCompField97.host_pci; if ((((((((((unsigned int )pdev->vendor == 5348U && (unsigned int )pdev->device == 17176U) && (unsigned int )pdev->subsystem_vendor == 4163U) && (unsigned int )pdev->subsystem_device == 4111U) || ((((unsigned int )pdev->vendor == 5348U && (unsigned int )pdev->device == 17184U) && (unsigned int )pdev->subsystem_vendor == 4136U) && (unsigned int )pdev->subsystem_device == 3U)) || ((((unsigned int )pdev->vendor == 5348U && (unsigned int )pdev->device == 17184U) && (unsigned int )pdev->subsystem_vendor == 4156U) && (unsigned int )pdev->subsystem_device == 4856U)) || ((((unsigned int )pdev->vendor == 5348U && (unsigned int )pdev->device == 17184U) && (unsigned int )pdev->subsystem_vendor == 5943U) && (unsigned int )pdev->subsystem_device == 21U)) || ((((unsigned int )pdev->vendor == 5348U && (unsigned int )pdev->device == 17184U) && (unsigned int )pdev->subsystem_vendor == 5943U) && (unsigned int )pdev->subsystem_device == 20U)) || ((((unsigned int )pdev->vendor == 5348U && (unsigned int )pdev->device == 17184U) && (unsigned int )pdev->subsystem_vendor == 5943U) && (unsigned int )pdev->subsystem_device == 19U)) || ((((unsigned int )pdev->vendor == 5348U && (unsigned int )pdev->device == 17184U) && (unsigned int )pdev->subsystem_vendor == 4183U) && (unsigned int )pdev->subsystem_device == 28688U)) { bus->sprom.boardflags_lo = (unsigned int )bus->sprom.boardflags_lo & 65534U; } else { } } else { } return; } } static void b43_wireless_exit(struct b43_bus_dev *dev , struct b43_wl *wl ) { struct ieee80211_hw *hw ; { hw = wl->hw; ssb_set_devtypedata(dev->__annonCompField105.sdev, (void *)0); ldv_ieee80211_free_hw_17(hw); return; } } static struct b43_wl *b43_wireless_init(struct b43_bus_dev *dev ) { struct ssb_sprom *sprom ; struct ieee80211_hw *hw ; struct b43_wl *wl ; char chip_name[6U] ; int queue_num ; void *tmp ; bool tmp___0 ; struct lock_class_key __key ; struct lock_class_key __key___0 ; struct lock_class_key __key___1 ; struct lock_class_key __key___2 ; atomic_long_t __constr_expr_0 ; struct lock_class_key __key___3 ; atomic_long_t __constr_expr_1 ; struct lock_class_key __key___4 ; atomic_long_t __constr_expr_2 ; { sprom = dev->bus_sprom; hw = ldv_ieee80211_alloc_hw_18(4624UL, & b43_hw_ops); if ((unsigned long )hw == (unsigned long )((struct ieee80211_hw *)0)) { b43err((struct b43_wl *)0, "Could not allocate ieee80211 device\n"); tmp = ERR_PTR(-12L); return ((struct b43_wl *)tmp); } else { } wl = hw_to_b43_wl(hw); _ieee80211_hw_set(hw, 1); _ieee80211_hw_set(hw, 4); (hw->wiphy)->interface_modes = 174U; (hw->wiphy)->flags = (hw->wiphy)->flags | 256U; wl->hw_registred = 0; hw->max_rates = 2U; SET_IEEE80211_DEV(hw, dev->dev); tmp___0 = is_valid_ether_addr((u8 const *)(& sprom->et1mac)); if ((int )tmp___0) { SET_IEEE80211_PERM_ADDR(hw, (u8 *)(& sprom->et1mac)); } else { SET_IEEE80211_PERM_ADDR(hw, (u8 *)(& sprom->il0mac)); } wl->hw = hw; __mutex_init(& wl->mutex, "&wl->mutex", & __key); spinlock_check(& wl->hardirq_lock); __raw_spin_lock_init(& wl->hardirq_lock.__annonCompField18.rlock, "&(&wl->hardirq_lock)->rlock", & __key___0); spinlock_check(& wl->beacon_lock); __raw_spin_lock_init(& wl->beacon_lock.__annonCompField18.rlock, "&(&wl->beacon_lock)->rlock", & __key___1); __init_work(& wl->beacon_update_trigger, 0); __constr_expr_0.counter = 137438953408L; wl->beacon_update_trigger.data = __constr_expr_0; lockdep_init_map(& wl->beacon_update_trigger.lockdep_map, "(&wl->beacon_update_trigger)", & __key___2, 0); INIT_LIST_HEAD(& wl->beacon_update_trigger.entry); wl->beacon_update_trigger.func = & b43_beacon_update_trigger_work; __init_work(& wl->txpower_adjust_work, 0); __constr_expr_1.counter = 137438953408L; wl->txpower_adjust_work.data = __constr_expr_1; lockdep_init_map(& wl->txpower_adjust_work.lockdep_map, "(&wl->txpower_adjust_work)", & __key___3, 0); INIT_LIST_HEAD(& wl->txpower_adjust_work.entry); wl->txpower_adjust_work.func = & b43_phy_txpower_adjust_work; __init_work(& wl->tx_work, 0); __constr_expr_2.counter = 137438953408L; wl->tx_work.data = __constr_expr_2; lockdep_init_map(& wl->tx_work.lockdep_map, "(&wl->tx_work)", & __key___4, 0); INIT_LIST_HEAD(& wl->tx_work.entry); wl->tx_work.func = & b43_tx_work; queue_num = 0; goto ldv_56717; ldv_56716: skb_queue_head_init((struct sk_buff_head *)(& wl->tx_queue) + (unsigned long )queue_num); wl->tx_queue_stopped[queue_num] = 0; queue_num = queue_num + 1; ldv_56717: ; if (queue_num <= 3) { goto ldv_56716; } else { } snprintf((char *)(& chip_name), 6UL, (unsigned int )dev->chip_id > 39321U ? "%d" : "%04X", (int )dev->chip_id); b43info(wl, "Broadcom %s WLAN found (core revision %u)\n", (char *)(& chip_name), (int )dev->core_rev); return (wl); } } static int b43_bcma_probe(struct bcma_device *core ) { struct b43_bus_dev *dev ; struct b43_wl *wl ; int err ; long tmp ; bool tmp___0 ; struct lock_class_key __key ; atomic_long_t __constr_expr_0 ; { if (modparam_allhwsupport == 0 && ((unsigned int )core->id.rev == 23U || (unsigned int )core->id.rev == 24U)) { printk("\vSupport for cores revisions 0x17 and 0x18 disabled by module param allhwsupport=0. Try b43.allhwsupport=1\n"); return (-524); } else { } dev = b43_bus_dev_bcma_init(core); if ((unsigned long )dev == (unsigned long )((struct b43_bus_dev *)0)) { return (-19); } else { } wl = b43_wireless_init(dev); tmp___0 = IS_ERR((void const *)wl); if ((int )tmp___0) { tmp = PTR_ERR((void const *)wl); err = (int )tmp; goto bcma_out; } else { } err = b43_one_core_attach(dev, wl); if (err != 0) { goto bcma_err_wireless_exit; } else { } __init_work(& wl->firmware_load, 0); __constr_expr_0.counter = 137438953408L; wl->firmware_load.data = __constr_expr_0; lockdep_init_map(& wl->firmware_load.lockdep_map, "(&wl->firmware_load)", & __key, 0); INIT_LIST_HEAD(& wl->firmware_load.entry); wl->firmware_load.func = & b43_request_firmware; schedule_work(& wl->firmware_load); bcma_out: ; return (err); bcma_err_wireless_exit: ldv_ieee80211_free_hw_19(wl->hw); return (err); } } static void b43_bcma_remove(struct bcma_device *core ) { struct b43_wldev *wldev ; void *tmp ; struct b43_wl *wl ; int __ret_warn_on ; long tmp___0 ; { tmp = bcma_get_drvdata(core); wldev = (struct b43_wldev *)tmp; wl = wldev->wl; ldv_cancel_work_sync_20(& wldev->restart_work); ldv_cancel_work_sync_21(& wl->firmware_load); __ret_warn_on = (unsigned long )wl == (unsigned long )((struct b43_wl *)0); tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 5703); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if ((unsigned long )wldev->fw.ucode.data == (unsigned long )((struct firmware const *)0)) { return; } else { } if ((unsigned long )wl->current_dev == (unsigned long )wldev && (int )wl->hw_registred) { b43_leds_stop(wldev); ieee80211_unregister_hw(wl->hw); } else { } b43_one_core_detach(wldev->dev); b43_rng_exit(wl); b43_leds_unregister(wl); ldv_ieee80211_free_hw_22(wl->hw); return; } } static struct bcma_driver b43_bcma_driver = {"b43", (struct bcma_device_id const *)(& b43_bcma_tbl), & b43_bcma_probe, & b43_bcma_remove, 0, 0, 0, {0, 0, 0, 0, (_Bool)0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; static int b43_ssb_probe(struct ssb_device *sdev , struct ssb_device_id const *id ) { struct b43_bus_dev *dev ; struct b43_wl *wl ; int err ; void *tmp ; long tmp___0 ; bool tmp___1 ; int __ret_warn_on ; void *tmp___2 ; long tmp___3 ; struct lock_class_key __key ; atomic_long_t __constr_expr_0 ; { dev = b43_bus_dev_ssb_init(sdev); if ((unsigned long )dev == (unsigned long )((struct b43_bus_dev *)0)) { return (-12); } else { } tmp = ssb_get_devtypedata(sdev); wl = (struct b43_wl *)tmp; if ((unsigned long )wl != (unsigned long )((struct b43_wl *)0)) { b43err((struct b43_wl *)0, "Dual-core devices are not supported\n"); err = -524; goto err_ssb_kfree_dev; } else { } b43_sprom_fixup(sdev->bus); wl = b43_wireless_init(dev); tmp___1 = IS_ERR((void const *)wl); if ((int )tmp___1) { tmp___0 = PTR_ERR((void const *)wl); err = (int )tmp___0; goto err_ssb_kfree_dev; } else { } ssb_set_devtypedata(sdev, (void *)wl); tmp___2 = ssb_get_devtypedata(sdev); __ret_warn_on = (unsigned long )tmp___2 != (unsigned long )((void *)wl); tmp___3 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___3 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 5756); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); err = b43_one_core_attach(dev, wl); if (err != 0) { goto err_ssb_wireless_exit; } else { } __init_work(& wl->firmware_load, 0); __constr_expr_0.counter = 137438953408L; wl->firmware_load.data = __constr_expr_0; lockdep_init_map(& wl->firmware_load.lockdep_map, "(&wl->firmware_load)", & __key, 0); INIT_LIST_HEAD(& wl->firmware_load.entry); wl->firmware_load.func = & b43_request_firmware; schedule_work(& wl->firmware_load); return (err); err_ssb_wireless_exit: b43_wireless_exit(dev, wl); err_ssb_kfree_dev: kfree((void const *)dev); return (err); } } static void b43_ssb_remove(struct ssb_device *sdev ) { struct b43_wl *wl ; void *tmp ; struct b43_wldev *wldev ; void *tmp___0 ; struct b43_bus_dev *dev ; int __ret_warn_on ; long tmp___1 ; { tmp = ssb_get_devtypedata(sdev); wl = (struct b43_wl *)tmp; tmp___0 = ssb_get_drvdata(sdev); wldev = (struct b43_wldev *)tmp___0; dev = wldev->dev; ldv_cancel_work_sync_23(& wldev->restart_work); ldv_cancel_work_sync_24(& wl->firmware_load); __ret_warn_on = (unsigned long )wl == (unsigned long )((struct b43_wl *)0); tmp___1 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/main.c", 5786); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if ((unsigned long )wldev->fw.ucode.data == (unsigned long )((struct firmware const *)0)) { return; } else { } if ((unsigned long )wl->current_dev == (unsigned long )wldev && (int )wl->hw_registred) { b43_leds_stop(wldev); ieee80211_unregister_hw(wl->hw); } else { } b43_one_core_detach(dev); b43_rng_exit(wl); b43_leds_unregister(wl); b43_wireless_exit(dev, wl); return; } } static struct ssb_driver b43_ssb_driver = {"b43", (struct ssb_device_id const *)(& b43_ssb_tbl), & b43_ssb_probe, & b43_ssb_remove, 0, 0, 0, {0, 0, 0, 0, (_Bool)0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; void b43_controller_restart(struct b43_wldev *dev , char const *reason ) { int tmp ; { tmp = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp <= 0) { return; } else { } b43info(dev->wl, "Controller RESET (%s) ...\n", reason); ieee80211_queue_work((dev->wl)->hw, & dev->restart_work); return; } } static void b43_print_driverinfo(void) { char const *feat_pci ; char const *feat_pcmcia ; char const *feat_nphy ; char const *feat_leds ; char const *feat_sdio ; { feat_pci = ""; feat_pcmcia = ""; feat_nphy = ""; feat_leds = ""; feat_sdio = ""; feat_pci = "P"; feat_pcmcia = "M"; feat_nphy = "N"; feat_leds = "L"; feat_sdio = "S"; printk("\016Broadcom 43xx driver loaded [ Features: %s%s%s%s%s ]\n", feat_pci, feat_pcmcia, feat_nphy, feat_leds, feat_sdio); return; } } static int b43_init(void) { int err ; { b43_debugfs_init(); err = b43_pcmcia_init(); if (err != 0) { goto err_dfs_exit; } else { } err = b43_sdio_init(); if (err != 0) { goto err_pcmcia_exit; } else { } err = __bcma_driver_register(& b43_bcma_driver, & __this_module); if (err != 0) { goto err_sdio_exit; } else { } err = __ssb_driver_register(& b43_ssb_driver, & __this_module); if (err != 0) { goto err_bcma_driver_exit; } else { } b43_print_driverinfo(); return (err); err_bcma_driver_exit: bcma_driver_unregister(& b43_bcma_driver); err_sdio_exit: b43_sdio_exit(); err_pcmcia_exit: b43_pcmcia_exit(); err_dfs_exit: b43_debugfs_exit(); return (err); } } static void b43_exit(void) { { ssb_driver_unregister(& b43_ssb_driver); bcma_driver_unregister(& b43_bcma_driver); b43_sdio_exit(); b43_pcmcia_exit(); b43_debugfs_exit(); return; } } int ldv_retval_0 ; int ldv_retval_1 ; extern void ldv_initialize(void) ; void ldv_check_final_state(void) ; int ldv_retval_17 ; int ldv_retval_10 ; void activate_work_5(struct work_struct *work , int state ) { { if (ldv_work_5_0 == 0) { ldv_work_struct_5_0 = work; ldv_work_5_0 = state; return; } else { } if (ldv_work_5_1 == 0) { ldv_work_struct_5_1 = work; ldv_work_5_1 = state; return; } else { } if (ldv_work_5_2 == 0) { ldv_work_struct_5_2 = work; ldv_work_5_2 = state; return; } else { } if (ldv_work_5_3 == 0) { ldv_work_struct_5_3 = work; ldv_work_5_3 = state; return; } else { } return; } } void work_init_3(void) { { ldv_work_3_0 = 0; ldv_work_3_1 = 0; ldv_work_3_2 = 0; ldv_work_3_3 = 0; return; } } void call_and_disable_all_7(int state ) { { if (ldv_work_7_0 == state) { call_and_disable_work_7(ldv_work_struct_7_0); } else { } if (ldv_work_7_1 == state) { call_and_disable_work_7(ldv_work_struct_7_1); } else { } if (ldv_work_7_2 == state) { call_and_disable_work_7(ldv_work_struct_7_2); } else { } if (ldv_work_7_3 == state) { call_and_disable_work_7(ldv_work_struct_7_3); } else { } return; } } void disable_suitable_irq_2(int line , void *data ) { { if (ldv_irq_2_0 != 0 && line == ldv_irq_line_2_0) { ldv_irq_2_0 = 0; return; } else { } if (ldv_irq_2_1 != 0 && line == ldv_irq_line_2_1) { ldv_irq_2_1 = 0; return; } else { } if (ldv_irq_2_2 != 0 && line == ldv_irq_line_2_2) { ldv_irq_2_2 = 0; return; } else { } if (ldv_irq_2_3 != 0 && line == ldv_irq_line_2_3) { ldv_irq_2_3 = 0; return; } else { } return; } } void invoke_work_6(void) { int tmp ; { tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ; if (ldv_work_6_0 == 2 || ldv_work_6_0 == 3) { ldv_work_6_0 = 4; b43_phy_txpower_adjust_work(ldv_work_struct_6_0); ldv_work_6_0 = 1; } else { } goto ldv_56822; case 1: ; if (ldv_work_6_1 == 2 || ldv_work_6_1 == 3) { ldv_work_6_1 = 4; b43_phy_txpower_adjust_work(ldv_work_struct_6_0); ldv_work_6_1 = 1; } else { } goto ldv_56822; case 2: ; if (ldv_work_6_2 == 2 || ldv_work_6_2 == 3) { ldv_work_6_2 = 4; b43_phy_txpower_adjust_work(ldv_work_struct_6_0); ldv_work_6_2 = 1; } else { } goto ldv_56822; case 3: ; if (ldv_work_6_3 == 2 || ldv_work_6_3 == 3) { ldv_work_6_3 = 4; b43_phy_txpower_adjust_work(ldv_work_struct_6_0); ldv_work_6_3 = 1; } else { } goto ldv_56822; default: ldv_stop(); } ldv_56822: ; return; } } int reg_check_1(irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) ) { { if ((unsigned long )handler == (unsigned long )(& b43_interrupt_handler) && (unsigned long )thread_fn == (unsigned long )(& b43_interrupt_thread_handler)) { return (1); } else { } return (0); } } void activate_work_3(struct work_struct *work , int state ) { { if (ldv_work_3_0 == 0) { ldv_work_struct_3_0 = work; ldv_work_3_0 = state; return; } else { } if (ldv_work_3_1 == 0) { ldv_work_struct_3_1 = work; ldv_work_3_1 = state; return; } else { } if (ldv_work_3_2 == 0) { ldv_work_struct_3_2 = work; ldv_work_3_2 = state; return; } else { } if (ldv_work_3_3 == 0) { ldv_work_struct_3_3 = work; ldv_work_3_3 = state; return; } else { } return; } } void work_init_9(void) { { ldv_work_9_0 = 0; ldv_work_9_1 = 0; ldv_work_9_2 = 0; ldv_work_9_3 = 0; return; } } void work_init_5(void) { { ldv_work_5_0 = 0; ldv_work_5_1 = 0; ldv_work_5_2 = 0; ldv_work_5_3 = 0; return; } } void invoke_work_8(void) { int tmp ; { tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ; if (ldv_work_8_0 == 2 || ldv_work_8_0 == 3) { ldv_work_8_0 = 4; b43_request_firmware(ldv_work_struct_8_0); ldv_work_8_0 = 1; } else { } goto ldv_56851; case 1: ; if (ldv_work_8_1 == 2 || ldv_work_8_1 == 3) { ldv_work_8_1 = 4; b43_request_firmware(ldv_work_struct_8_0); ldv_work_8_1 = 1; } else { } goto ldv_56851; case 2: ; if (ldv_work_8_2 == 2 || ldv_work_8_2 == 3) { ldv_work_8_2 = 4; b43_request_firmware(ldv_work_struct_8_0); ldv_work_8_2 = 1; } else { } goto ldv_56851; case 3: ; if (ldv_work_8_3 == 2 || ldv_work_8_3 == 3) { ldv_work_8_3 = 4; b43_request_firmware(ldv_work_struct_8_0); ldv_work_8_3 = 1; } else { } goto ldv_56851; default: ldv_stop(); } ldv_56851: ; return; } } void call_and_disable_all_4(int state ) { { if (ldv_work_4_0 == state) { call_and_disable_work_4(ldv_work_struct_4_0); } else { } if (ldv_work_4_1 == state) { call_and_disable_work_4(ldv_work_struct_4_1); } else { } if (ldv_work_4_2 == state) { call_and_disable_work_4(ldv_work_struct_4_2); } else { } if (ldv_work_4_3 == state) { call_and_disable_work_4(ldv_work_struct_4_3); } else { } return; } } void work_init_7(void) { { ldv_work_7_0 = 0; ldv_work_7_1 = 0; ldv_work_7_2 = 0; ldv_work_7_3 = 0; return; } } void invoke_work_7(void) { int tmp ; { tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ; if (ldv_work_7_0 == 2 || ldv_work_7_0 == 3) { ldv_work_7_0 = 4; b43_tx_work(ldv_work_struct_7_0); ldv_work_7_0 = 1; } else { } goto ldv_56868; case 1: ; if (ldv_work_7_1 == 2 || ldv_work_7_1 == 3) { ldv_work_7_1 = 4; b43_tx_work(ldv_work_struct_7_0); ldv_work_7_1 = 1; } else { } goto ldv_56868; case 2: ; if (ldv_work_7_2 == 2 || ldv_work_7_2 == 3) { ldv_work_7_2 = 4; b43_tx_work(ldv_work_struct_7_0); ldv_work_7_2 = 1; } else { } goto ldv_56868; case 3: ; if (ldv_work_7_3 == 2 || ldv_work_7_3 == 3) { ldv_work_7_3 = 4; b43_tx_work(ldv_work_struct_7_0); ldv_work_7_3 = 1; } else { } goto ldv_56868; default: ldv_stop(); } ldv_56868: ; return; } } void disable_work_5(struct work_struct *work ) { { if ((ldv_work_5_0 == 3 || ldv_work_5_0 == 2) && (unsigned long )ldv_work_struct_5_0 == (unsigned long )work) { ldv_work_5_0 = 1; } else { } if ((ldv_work_5_1 == 3 || ldv_work_5_1 == 2) && (unsigned long )ldv_work_struct_5_1 == (unsigned long )work) { ldv_work_5_1 = 1; } else { } if ((ldv_work_5_2 == 3 || ldv_work_5_2 == 2) && (unsigned long )ldv_work_struct_5_2 == (unsigned long )work) { ldv_work_5_2 = 1; } else { } if ((ldv_work_5_3 == 3 || ldv_work_5_3 == 2) && (unsigned long )ldv_work_struct_5_3 == (unsigned long )work) { ldv_work_5_3 = 1; } else { } return; } } void call_and_disable_work_3(struct work_struct *work ) { { if ((ldv_work_3_0 == 2 || ldv_work_3_0 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_3_0) { b43_periodic_work_handler(work); ldv_work_3_0 = 1; return; } else { } if ((ldv_work_3_1 == 2 || ldv_work_3_1 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_3_1) { b43_periodic_work_handler(work); ldv_work_3_1 = 1; return; } else { } if ((ldv_work_3_2 == 2 || ldv_work_3_2 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_3_2) { b43_periodic_work_handler(work); ldv_work_3_2 = 1; return; } else { } if ((ldv_work_3_3 == 2 || ldv_work_3_3 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_3_3) { b43_periodic_work_handler(work); ldv_work_3_3 = 1; return; } else { } return; } } void disable_work_7(struct work_struct *work ) { { if ((ldv_work_7_0 == 3 || ldv_work_7_0 == 2) && (unsigned long )ldv_work_struct_7_0 == (unsigned long )work) { ldv_work_7_0 = 1; } else { } if ((ldv_work_7_1 == 3 || ldv_work_7_1 == 2) && (unsigned long )ldv_work_struct_7_1 == (unsigned long )work) { ldv_work_7_1 = 1; } else { } if ((ldv_work_7_2 == 3 || ldv_work_7_2 == 2) && (unsigned long )ldv_work_struct_7_2 == (unsigned long )work) { ldv_work_7_2 = 1; } else { } if ((ldv_work_7_3 == 3 || ldv_work_7_3 == 2) && (unsigned long )ldv_work_struct_7_3 == (unsigned long )work) { ldv_work_7_3 = 1; } else { } return; } } void call_and_disable_all_8(int state ) { { if (ldv_work_8_0 == state) { call_and_disable_work_8(ldv_work_struct_8_0); } else { } if (ldv_work_8_1 == state) { call_and_disable_work_8(ldv_work_struct_8_1); } else { } if (ldv_work_8_2 == state) { call_and_disable_work_8(ldv_work_struct_8_2); } else { } if (ldv_work_8_3 == state) { call_and_disable_work_8(ldv_work_struct_8_3); } else { } return; } } void disable_work_3(struct work_struct *work ) { { if ((ldv_work_3_0 == 3 || ldv_work_3_0 == 2) && (unsigned long )ldv_work_struct_3_0 == (unsigned long )work) { ldv_work_3_0 = 1; } else { } if ((ldv_work_3_1 == 3 || ldv_work_3_1 == 2) && (unsigned long )ldv_work_struct_3_1 == (unsigned long )work) { ldv_work_3_1 = 1; } else { } if ((ldv_work_3_2 == 3 || ldv_work_3_2 == 2) && (unsigned long )ldv_work_struct_3_2 == (unsigned long )work) { ldv_work_3_2 = 1; } else { } if ((ldv_work_3_3 == 3 || ldv_work_3_3 == 2) && (unsigned long )ldv_work_struct_3_3 == (unsigned long )work) { ldv_work_3_3 = 1; } else { } return; } } void call_and_disable_work_9(struct work_struct *work ) { { if ((ldv_work_9_0 == 2 || ldv_work_9_0 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_9_0) { b43_request_firmware(work); ldv_work_9_0 = 1; return; } else { } if ((ldv_work_9_1 == 2 || ldv_work_9_1 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_9_1) { b43_request_firmware(work); ldv_work_9_1 = 1; return; } else { } if ((ldv_work_9_2 == 2 || ldv_work_9_2 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_9_2) { b43_request_firmware(work); ldv_work_9_2 = 1; return; } else { } if ((ldv_work_9_3 == 2 || ldv_work_9_3 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_9_3) { b43_request_firmware(work); ldv_work_9_3 = 1; return; } else { } return; } } void call_and_disable_all_6(int state ) { { if (ldv_work_6_0 == state) { call_and_disable_work_6(ldv_work_struct_6_0); } else { } if (ldv_work_6_1 == state) { call_and_disable_work_6(ldv_work_struct_6_1); } else { } if (ldv_work_6_2 == state) { call_and_disable_work_6(ldv_work_struct_6_2); } else { } if (ldv_work_6_3 == state) { call_and_disable_work_6(ldv_work_struct_6_3); } else { } return; } } void ldv_initialize_ssb_driver_32(void) { void *tmp ; { tmp = ldv_init_zalloc(64UL); b43_ssb_driver_group0 = (struct ssb_device *)tmp; return; } } void disable_suitable_irq_1(int line , void *data ) { { if (ldv_irq_1_0 != 0 && line == ldv_irq_line_1_0) { ldv_irq_1_0 = 0; return; } else { } if (ldv_irq_1_1 != 0 && line == ldv_irq_line_1_1) { ldv_irq_1_1 = 0; return; } else { } if (ldv_irq_1_2 != 0 && line == ldv_irq_line_1_2) { ldv_irq_1_2 = 0; return; } else { } if (ldv_irq_1_3 != 0 && line == ldv_irq_line_1_3) { ldv_irq_1_3 = 0; return; } else { } return; } } void activate_suitable_irq_1(int line , void *data ) { { if (ldv_irq_1_0 == 0) { ldv_irq_line_1_0 = line; ldv_irq_data_1_0 = data; ldv_irq_1_0 = 1; return; } else { } if (ldv_irq_1_1 == 0) { ldv_irq_line_1_1 = line; ldv_irq_data_1_1 = data; ldv_irq_1_1 = 1; return; } else { } if (ldv_irq_1_2 == 0) { ldv_irq_line_1_2 = line; ldv_irq_data_1_2 = data; ldv_irq_1_2 = 1; return; } else { } if (ldv_irq_1_3 == 0) { ldv_irq_line_1_3 = line; ldv_irq_data_1_3 = data; ldv_irq_1_3 = 1; return; } else { } return; } } void invoke_work_4(void) { int tmp ; { tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ; if (ldv_work_4_0 == 2 || ldv_work_4_0 == 3) { ldv_work_4_0 = 4; b43_chip_reset(ldv_work_struct_4_0); ldv_work_4_0 = 1; } else { } goto ldv_56915; case 1: ; if (ldv_work_4_1 == 2 || ldv_work_4_1 == 3) { ldv_work_4_1 = 4; b43_chip_reset(ldv_work_struct_4_0); ldv_work_4_1 = 1; } else { } goto ldv_56915; case 2: ; if (ldv_work_4_2 == 2 || ldv_work_4_2 == 3) { ldv_work_4_2 = 4; b43_chip_reset(ldv_work_struct_4_0); ldv_work_4_2 = 1; } else { } goto ldv_56915; case 3: ; if (ldv_work_4_3 == 2 || ldv_work_4_3 == 3) { ldv_work_4_3 = 4; b43_chip_reset(ldv_work_struct_4_0); ldv_work_4_3 = 1; } else { } goto ldv_56915; default: ldv_stop(); } ldv_56915: ; return; } } void call_and_disable_work_5(struct work_struct *work ) { { if ((ldv_work_5_0 == 2 || ldv_work_5_0 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_5_0) { b43_beacon_update_trigger_work(work); ldv_work_5_0 = 1; return; } else { } if ((ldv_work_5_1 == 2 || ldv_work_5_1 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_5_1) { b43_beacon_update_trigger_work(work); ldv_work_5_1 = 1; return; } else { } if ((ldv_work_5_2 == 2 || ldv_work_5_2 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_5_2) { b43_beacon_update_trigger_work(work); ldv_work_5_2 = 1; return; } else { } if ((ldv_work_5_3 == 2 || ldv_work_5_3 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_5_3) { b43_beacon_update_trigger_work(work); ldv_work_5_3 = 1; return; } else { } return; } } void ldv_initialize_bcma_driver_33(void) { void *tmp ; { tmp = ldv_init_zalloc(1528UL); b43_bcma_driver_group0 = (struct bcma_device *)tmp; return; } } void activate_work_8(struct work_struct *work , int state ) { { if (ldv_work_8_0 == 0) { ldv_work_struct_8_0 = work; ldv_work_8_0 = state; return; } else { } if (ldv_work_8_1 == 0) { ldv_work_struct_8_1 = work; ldv_work_8_1 = state; return; } else { } if (ldv_work_8_2 == 0) { ldv_work_struct_8_2 = work; ldv_work_8_2 = state; return; } else { } if (ldv_work_8_3 == 0) { ldv_work_struct_8_3 = work; ldv_work_8_3 = state; return; } else { } return; } } int ldv_irq_2(int state , int line , void *data ) { irqreturn_t irq_retval ; int tmp ; int tmp___0 ; { tmp = __VERIFIER_nondet_int(); irq_retval = (irqreturn_t )tmp; if (state != 0) { tmp___0 = __VERIFIER_nondet_int(); switch (tmp___0) { case 0: ; if (state == 1) { LDV_IN_INTERRUPT = 2; irq_retval = b43_interrupt_handler(line, data); LDV_IN_INTERRUPT = 1; if ((unsigned int )irq_retval == 2U) { state = 2; } else { state = 1; } return (state); } else { } goto ldv_56939; case 1: ; if (state == 2) { b43_interrupt_thread_handler(line, data); state = 1; return (state); } else { } goto ldv_56939; default: ldv_stop(); } ldv_56939: ; } else { } return (state); } } void activate_work_6(struct work_struct *work , int state ) { { if (ldv_work_6_0 == 0) { ldv_work_struct_6_0 = work; ldv_work_6_0 = state; return; } else { } if (ldv_work_6_1 == 0) { ldv_work_struct_6_1 = work; ldv_work_6_1 = state; return; } else { } if (ldv_work_6_2 == 0) { ldv_work_struct_6_2 = work; ldv_work_6_2 = state; return; } else { } if (ldv_work_6_3 == 0) { ldv_work_struct_6_3 = work; ldv_work_6_3 = state; return; } else { } return; } } void choose_interrupt_2(void) { int tmp ; { tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ldv_irq_2_0 = ldv_irq_2(ldv_irq_2_0, ldv_irq_line_2_0, ldv_irq_data_2_0); goto ldv_56950; case 1: ldv_irq_2_0 = ldv_irq_2(ldv_irq_2_1, ldv_irq_line_2_1, ldv_irq_data_2_1); goto ldv_56950; case 2: ldv_irq_2_0 = ldv_irq_2(ldv_irq_2_2, ldv_irq_line_2_2, ldv_irq_data_2_2); goto ldv_56950; case 3: ldv_irq_2_0 = ldv_irq_2(ldv_irq_2_3, ldv_irq_line_2_3, ldv_irq_data_2_3); goto ldv_56950; default: ldv_stop(); } ldv_56950: ; return; } } void activate_work_4(struct work_struct *work , int state ) { { if (ldv_work_4_0 == 0) { ldv_work_struct_4_0 = work; ldv_work_4_0 = state; return; } else { } if (ldv_work_4_1 == 0) { ldv_work_struct_4_1 = work; ldv_work_4_1 = state; return; } else { } if (ldv_work_4_2 == 0) { ldv_work_struct_4_2 = work; ldv_work_4_2 = state; return; } else { } if (ldv_work_4_3 == 0) { ldv_work_struct_4_3 = work; ldv_work_4_3 = state; return; } else { } return; } } void call_and_disable_work_7(struct work_struct *work ) { { if ((ldv_work_7_0 == 2 || ldv_work_7_0 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_7_0) { b43_tx_work(work); ldv_work_7_0 = 1; return; } else { } if ((ldv_work_7_1 == 2 || ldv_work_7_1 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_7_1) { b43_tx_work(work); ldv_work_7_1 = 1; return; } else { } if ((ldv_work_7_2 == 2 || ldv_work_7_2 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_7_2) { b43_tx_work(work); ldv_work_7_2 = 1; return; } else { } if ((ldv_work_7_3 == 2 || ldv_work_7_3 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_7_3) { b43_tx_work(work); ldv_work_7_3 = 1; return; } else { } return; } } void call_and_disable_all_5(int state ) { { if (ldv_work_5_0 == state) { call_and_disable_work_5(ldv_work_struct_5_0); } else { } if (ldv_work_5_1 == state) { call_and_disable_work_5(ldv_work_struct_5_1); } else { } if (ldv_work_5_2 == state) { call_and_disable_work_5(ldv_work_struct_5_2); } else { } if (ldv_work_5_3 == state) { call_and_disable_work_5(ldv_work_struct_5_3); } else { } return; } } void disable_work_9(struct work_struct *work ) { { if ((ldv_work_9_0 == 3 || ldv_work_9_0 == 2) && (unsigned long )ldv_work_struct_9_0 == (unsigned long )work) { ldv_work_9_0 = 1; } else { } if ((ldv_work_9_1 == 3 || ldv_work_9_1 == 2) && (unsigned long )ldv_work_struct_9_1 == (unsigned long )work) { ldv_work_9_1 = 1; } else { } if ((ldv_work_9_2 == 3 || ldv_work_9_2 == 2) && (unsigned long )ldv_work_struct_9_2 == (unsigned long )work) { ldv_work_9_2 = 1; } else { } if ((ldv_work_9_3 == 3 || ldv_work_9_3 == 2) && (unsigned long )ldv_work_struct_9_3 == (unsigned long )work) { ldv_work_9_3 = 1; } else { } return; } } void activate_suitable_irq_2(int line , void *data ) { { if (ldv_irq_2_0 == 0) { ldv_irq_line_2_0 = line; ldv_irq_data_2_0 = data; ldv_irq_2_0 = 1; return; } else { } if (ldv_irq_2_1 == 0) { ldv_irq_line_2_1 = line; ldv_irq_data_2_1 = data; ldv_irq_2_1 = 1; return; } else { } if (ldv_irq_2_2 == 0) { ldv_irq_line_2_2 = line; ldv_irq_data_2_2 = data; ldv_irq_2_2 = 1; return; } else { } if (ldv_irq_2_3 == 0) { ldv_irq_line_2_3 = line; ldv_irq_data_2_3 = data; ldv_irq_2_3 = 1; return; } else { } return; } } void work_init_8(void) { { ldv_work_8_0 = 0; ldv_work_8_1 = 0; ldv_work_8_2 = 0; ldv_work_8_3 = 0; return; } } void work_init_6(void) { { ldv_work_6_0 = 0; ldv_work_6_1 = 0; ldv_work_6_2 = 0; ldv_work_6_3 = 0; return; } } void disable_work_6(struct work_struct *work ) { { if ((ldv_work_6_0 == 3 || ldv_work_6_0 == 2) && (unsigned long )ldv_work_struct_6_0 == (unsigned long )work) { ldv_work_6_0 = 1; } else { } if ((ldv_work_6_1 == 3 || ldv_work_6_1 == 2) && (unsigned long )ldv_work_struct_6_1 == (unsigned long )work) { ldv_work_6_1 = 1; } else { } if ((ldv_work_6_2 == 3 || ldv_work_6_2 == 2) && (unsigned long )ldv_work_struct_6_2 == (unsigned long )work) { ldv_work_6_2 = 1; } else { } if ((ldv_work_6_3 == 3 || ldv_work_6_3 == 2) && (unsigned long )ldv_work_struct_6_3 == (unsigned long )work) { ldv_work_6_3 = 1; } else { } return; } } void call_and_disable_all_9(int state ) { { if (ldv_work_9_0 == state) { call_and_disable_work_9(ldv_work_struct_9_0); } else { } if (ldv_work_9_1 == state) { call_and_disable_work_9(ldv_work_struct_9_1); } else { } if (ldv_work_9_2 == state) { call_and_disable_work_9(ldv_work_struct_9_2); } else { } if (ldv_work_9_3 == state) { call_and_disable_work_9(ldv_work_struct_9_3); } else { } return; } } void choose_interrupt_1(void) { int tmp ; { tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ldv_irq_1_0 = ldv_irq_1(ldv_irq_1_0, ldv_irq_line_1_0, ldv_irq_data_1_0); goto ldv_56990; case 1: ldv_irq_1_0 = ldv_irq_1(ldv_irq_1_1, ldv_irq_line_1_1, ldv_irq_data_1_1); goto ldv_56990; case 2: ldv_irq_1_0 = ldv_irq_1(ldv_irq_1_2, ldv_irq_line_1_2, ldv_irq_data_1_2); goto ldv_56990; case 3: ldv_irq_1_0 = ldv_irq_1(ldv_irq_1_3, ldv_irq_line_1_3, ldv_irq_data_1_3); goto ldv_56990; default: ldv_stop(); } ldv_56990: ; return; } } void invoke_work_5(void) { int tmp ; { tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ; if (ldv_work_5_0 == 2 || ldv_work_5_0 == 3) { ldv_work_5_0 = 4; b43_beacon_update_trigger_work(ldv_work_struct_5_0); ldv_work_5_0 = 1; } else { } goto ldv_57001; case 1: ; if (ldv_work_5_1 == 2 || ldv_work_5_1 == 3) { ldv_work_5_1 = 4; b43_beacon_update_trigger_work(ldv_work_struct_5_0); ldv_work_5_1 = 1; } else { } goto ldv_57001; case 2: ; if (ldv_work_5_2 == 2 || ldv_work_5_2 == 3) { ldv_work_5_2 = 4; b43_beacon_update_trigger_work(ldv_work_struct_5_0); ldv_work_5_2 = 1; } else { } goto ldv_57001; case 3: ; if (ldv_work_5_3 == 2 || ldv_work_5_3 == 3) { ldv_work_5_3 = 4; b43_beacon_update_trigger_work(ldv_work_struct_5_0); ldv_work_5_3 = 1; } else { } goto ldv_57001; default: ldv_stop(); } ldv_57001: ; return; } } int reg_check_2(irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) ) { { if ((unsigned long )handler == (unsigned long )(& b43_interrupt_handler) && (unsigned long )thread_fn == (unsigned long )(& b43_interrupt_thread_handler)) { return (1); } else { } return (0); } } void activate_work_7(struct work_struct *work , int state ) { { if (ldv_work_7_0 == 0) { ldv_work_struct_7_0 = work; ldv_work_7_0 = state; return; } else { } if (ldv_work_7_1 == 0) { ldv_work_struct_7_1 = work; ldv_work_7_1 = state; return; } else { } if (ldv_work_7_2 == 0) { ldv_work_struct_7_2 = work; ldv_work_7_2 = state; return; } else { } if (ldv_work_7_3 == 0) { ldv_work_struct_7_3 = work; ldv_work_7_3 = state; return; } else { } return; } } void call_and_disable_work_8(struct work_struct *work ) { { if ((ldv_work_8_0 == 2 || ldv_work_8_0 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_8_0) { b43_request_firmware(work); ldv_work_8_0 = 1; return; } else { } if ((ldv_work_8_1 == 2 || ldv_work_8_1 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_8_1) { b43_request_firmware(work); ldv_work_8_1 = 1; return; } else { } if ((ldv_work_8_2 == 2 || ldv_work_8_2 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_8_2) { b43_request_firmware(work); ldv_work_8_2 = 1; return; } else { } if ((ldv_work_8_3 == 2 || ldv_work_8_3 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_8_3) { b43_request_firmware(work); ldv_work_8_3 = 1; return; } else { } return; } } void disable_work_4(struct work_struct *work ) { { if ((ldv_work_4_0 == 3 || ldv_work_4_0 == 2) && (unsigned long )ldv_work_struct_4_0 == (unsigned long )work) { ldv_work_4_0 = 1; } else { } if ((ldv_work_4_1 == 3 || ldv_work_4_1 == 2) && (unsigned long )ldv_work_struct_4_1 == (unsigned long )work) { ldv_work_4_1 = 1; } else { } if ((ldv_work_4_2 == 3 || ldv_work_4_2 == 2) && (unsigned long )ldv_work_struct_4_2 == (unsigned long )work) { ldv_work_4_2 = 1; } else { } if ((ldv_work_4_3 == 3 || ldv_work_4_3 == 2) && (unsigned long )ldv_work_struct_4_3 == (unsigned long )work) { ldv_work_4_3 = 1; } else { } return; } } void work_init_4(void) { { ldv_work_4_0 = 0; ldv_work_4_1 = 0; ldv_work_4_2 = 0; ldv_work_4_3 = 0; return; } } void invoke_work_3(void) { int tmp ; { tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ; if (ldv_work_3_0 == 2 || ldv_work_3_0 == 3) { ldv_work_3_0 = 4; b43_periodic_work_handler(ldv_work_struct_3_0); ldv_work_3_0 = 1; } else { } goto ldv_57035; case 1: ; if (ldv_work_3_1 == 2 || ldv_work_3_1 == 3) { ldv_work_3_1 = 4; b43_periodic_work_handler(ldv_work_struct_3_0); ldv_work_3_1 = 1; } else { } goto ldv_57035; case 2: ; if (ldv_work_3_2 == 2 || ldv_work_3_2 == 3) { ldv_work_3_2 = 4; b43_periodic_work_handler(ldv_work_struct_3_0); ldv_work_3_2 = 1; } else { } goto ldv_57035; case 3: ; if (ldv_work_3_3 == 2 || ldv_work_3_3 == 3) { ldv_work_3_3 = 4; b43_periodic_work_handler(ldv_work_struct_3_0); ldv_work_3_3 = 1; } else { } goto ldv_57035; default: ldv_stop(); } ldv_57035: ; return; } } void invoke_work_9(void) { int tmp ; { tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ; if (ldv_work_9_0 == 2 || ldv_work_9_0 == 3) { ldv_work_9_0 = 4; b43_request_firmware(ldv_work_struct_9_0); ldv_work_9_0 = 1; } else { } goto ldv_57046; case 1: ; if (ldv_work_9_1 == 2 || ldv_work_9_1 == 3) { ldv_work_9_1 = 4; b43_request_firmware(ldv_work_struct_9_0); ldv_work_9_1 = 1; } else { } goto ldv_57046; case 2: ; if (ldv_work_9_2 == 2 || ldv_work_9_2 == 3) { ldv_work_9_2 = 4; b43_request_firmware(ldv_work_struct_9_0); ldv_work_9_2 = 1; } else { } goto ldv_57046; case 3: ; if (ldv_work_9_3 == 2 || ldv_work_9_3 == 3) { ldv_work_9_3 = 4; b43_request_firmware(ldv_work_struct_9_0); ldv_work_9_3 = 1; } else { } goto ldv_57046; default: ldv_stop(); } ldv_57046: ; return; } } void ldv_initialize_ieee80211_ops_34(void) { void *tmp ; { tmp = ldv_init_zalloc(160UL); b43_hw_ops_group0 = (struct ieee80211_hw *)tmp; return; } } int ldv_irq_1(int state , int line , void *data ) { irqreturn_t irq_retval ; int tmp ; int tmp___0 ; { tmp = __VERIFIER_nondet_int(); irq_retval = (irqreturn_t )tmp; if (state != 0) { tmp___0 = __VERIFIER_nondet_int(); switch (tmp___0) { case 0: ; if (state == 1) { LDV_IN_INTERRUPT = 2; irq_retval = b43_interrupt_handler(line, data); LDV_IN_INTERRUPT = 1; if ((unsigned int )irq_retval == 2U) { state = 2; } else { state = 1; } return (state); } else { } goto ldv_57061; case 1: ; if (state == 2) { b43_interrupt_thread_handler(line, data); state = 1; return (state); } else { } goto ldv_57061; default: ldv_stop(); } ldv_57061: ; } else { } return (state); } } void disable_work_8(struct work_struct *work ) { { if ((ldv_work_8_0 == 3 || ldv_work_8_0 == 2) && (unsigned long )ldv_work_struct_8_0 == (unsigned long )work) { ldv_work_8_0 = 1; } else { } if ((ldv_work_8_1 == 3 || ldv_work_8_1 == 2) && (unsigned long )ldv_work_struct_8_1 == (unsigned long )work) { ldv_work_8_1 = 1; } else { } if ((ldv_work_8_2 == 3 || ldv_work_8_2 == 2) && (unsigned long )ldv_work_struct_8_2 == (unsigned long )work) { ldv_work_8_2 = 1; } else { } if ((ldv_work_8_3 == 3 || ldv_work_8_3 == 2) && (unsigned long )ldv_work_struct_8_3 == (unsigned long )work) { ldv_work_8_3 = 1; } else { } return; } } void activate_work_9(struct work_struct *work , int state ) { { if (ldv_work_9_0 == 0) { ldv_work_struct_9_0 = work; ldv_work_9_0 = state; return; } else { } if (ldv_work_9_1 == 0) { ldv_work_struct_9_1 = work; ldv_work_9_1 = state; return; } else { } if (ldv_work_9_2 == 0) { ldv_work_struct_9_2 = work; ldv_work_9_2 = state; return; } else { } if (ldv_work_9_3 == 0) { ldv_work_struct_9_3 = work; ldv_work_9_3 = state; return; } else { } return; } } void call_and_disable_all_3(int state ) { { if (ldv_work_3_0 == state) { call_and_disable_work_3(ldv_work_struct_3_0); } else { } if (ldv_work_3_1 == state) { call_and_disable_work_3(ldv_work_struct_3_1); } else { } if (ldv_work_3_2 == state) { call_and_disable_work_3(ldv_work_struct_3_2); } else { } if (ldv_work_3_3 == state) { call_and_disable_work_3(ldv_work_struct_3_3); } else { } return; } } void call_and_disable_work_6(struct work_struct *work ) { { if ((ldv_work_6_0 == 2 || ldv_work_6_0 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_6_0) { b43_phy_txpower_adjust_work(work); ldv_work_6_0 = 1; return; } else { } if ((ldv_work_6_1 == 2 || ldv_work_6_1 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_6_1) { b43_phy_txpower_adjust_work(work); ldv_work_6_1 = 1; return; } else { } if ((ldv_work_6_2 == 2 || ldv_work_6_2 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_6_2) { b43_phy_txpower_adjust_work(work); ldv_work_6_2 = 1; return; } else { } if ((ldv_work_6_3 == 2 || ldv_work_6_3 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_6_3) { b43_phy_txpower_adjust_work(work); ldv_work_6_3 = 1; return; } else { } return; } } void call_and_disable_work_4(struct work_struct *work ) { { if ((ldv_work_4_0 == 2 || ldv_work_4_0 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_4_0) { b43_chip_reset(work); ldv_work_4_0 = 1; return; } else { } if ((ldv_work_4_1 == 2 || ldv_work_4_1 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_4_1) { b43_chip_reset(work); ldv_work_4_1 = 1; return; } else { } if ((ldv_work_4_2 == 2 || ldv_work_4_2 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_4_2) { b43_chip_reset(work); ldv_work_4_2 = 1; return; } else { } if ((ldv_work_4_3 == 2 || ldv_work_4_3 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_4_3) { b43_chip_reset(work); ldv_work_4_3 = 1; return; } else { } return; } } void ldv_main_exported_11(void) ; void ldv_main_exported_21(void) ; void ldv_main_exported_17(void) ; void ldv_main_exported_12(void) ; void ldv_main_exported_20(void) ; void ldv_main_exported_15(void) ; void ldv_main_exported_14(void) ; void ldv_main_exported_18(void) ; void ldv_main_exported_19(void) ; void ldv_main_exported_13(void) ; void ldv_main_exported_16(void) ; void ldv_main_exported_26(void) ; void ldv_main_exported_29(void) ; void ldv_main_exported_31(void) ; void ldv_main_exported_23(void) ; void ldv_main_exported_25(void) ; void ldv_main_exported_24(void) ; void ldv_main_exported_22(void) ; void ldv_main_exported_27(void) ; void ldv_main_exported_30(void) ; void ldv_main_exported_28(void) ; int main(void) { struct ssb_device_id *ldvarg0 ; void *tmp ; struct ieee80211_key_conf *ldvarg203 ; void *tmp___0 ; struct ieee80211_low_level_stats *ldvarg178 ; void *tmp___1 ; enum set_key_cmd ldvarg202 ; u64 ldvarg181 ; struct ieee80211_sta *ldvarg174 ; void *tmp___2 ; struct ieee80211_vif *ldvarg188 ; void *tmp___3 ; struct ieee80211_vif *ldvarg185 ; void *tmp___4 ; struct ieee80211_vif *ldvarg191 ; void *tmp___5 ; struct ieee80211_vif *ldvarg196 ; void *tmp___6 ; u32 ldvarg197 ; struct ieee80211_vif *ldvarg170 ; void *tmp___7 ; struct ieee80211_tx_queue_params *ldvarg189 ; void *tmp___8 ; unsigned int *ldvarg182 ; void *tmp___9 ; struct ieee80211_bss_conf *ldvarg198 ; void *tmp___10 ; struct ieee80211_vif *ldvarg199 ; void *tmp___11 ; struct ieee80211_vif *ldvarg201 ; void *tmp___12 ; struct ieee80211_vif *ldvarg169 ; void *tmp___13 ; struct ieee80211_vif *ldvarg204 ; void *tmp___14 ; struct ieee80211_key_conf *ldvarg175 ; void *tmp___15 ; enum sta_notify_cmd ldvarg195 ; struct ieee80211_tx_control *ldvarg187 ; void *tmp___16 ; struct ieee80211_vif *ldvarg172 ; void *tmp___17 ; u64 ldvarg184 ; struct sk_buff *ldvarg186 ; void *tmp___18 ; u32 ldvarg177 ; u16 ldvarg190 ; struct ieee80211_sta *ldvarg193 ; void *tmp___19 ; bool ldvarg192 ; unsigned int ldvarg183 ; struct ieee80211_sta *ldvarg200 ; void *tmp___20 ; struct ieee80211_vif *ldvarg176 ; void *tmp___21 ; u16 *ldvarg173 ; void *tmp___22 ; struct ieee80211_sta *ldvarg194 ; void *tmp___23 ; struct survey_info *ldvarg179 ; void *tmp___24 ; int ldvarg180 ; u32 ldvarg205 ; u8 *ldvarg171 ; void *tmp___25 ; int tmp___26 ; int tmp___27 ; int tmp___28 ; int tmp___29 ; int tmp___30 ; { tmp = ldv_init_zalloc(6UL); ldvarg0 = (struct ssb_device_id *)tmp; tmp___0 = ldv_init_zalloc(24UL); ldvarg203 = (struct ieee80211_key_conf *)tmp___0; tmp___1 = ldv_init_zalloc(16UL); ldvarg178 = (struct ieee80211_low_level_stats *)tmp___1; tmp___2 = ldv_init_zalloc(216UL); ldvarg174 = (struct ieee80211_sta *)tmp___2; tmp___3 = ldv_init_zalloc(296UL); ldvarg188 = (struct ieee80211_vif *)tmp___3; tmp___4 = ldv_init_zalloc(296UL); ldvarg185 = (struct ieee80211_vif *)tmp___4; tmp___5 = ldv_init_zalloc(296UL); ldvarg191 = (struct ieee80211_vif *)tmp___5; tmp___6 = ldv_init_zalloc(296UL); ldvarg196 = (struct ieee80211_vif *)tmp___6; tmp___7 = ldv_init_zalloc(296UL); ldvarg170 = (struct ieee80211_vif *)tmp___7; tmp___8 = ldv_init_zalloc(10UL); ldvarg189 = (struct ieee80211_tx_queue_params *)tmp___8; tmp___9 = ldv_init_zalloc(4UL); ldvarg182 = (unsigned int *)tmp___9; tmp___10 = ldv_init_zalloc(240UL); ldvarg198 = (struct ieee80211_bss_conf *)tmp___10; tmp___11 = ldv_init_zalloc(296UL); ldvarg199 = (struct ieee80211_vif *)tmp___11; tmp___12 = ldv_init_zalloc(296UL); ldvarg201 = (struct ieee80211_vif *)tmp___12; tmp___13 = ldv_init_zalloc(296UL); ldvarg169 = (struct ieee80211_vif *)tmp___13; tmp___14 = ldv_init_zalloc(296UL); ldvarg204 = (struct ieee80211_vif *)tmp___14; tmp___15 = ldv_init_zalloc(24UL); ldvarg175 = (struct ieee80211_key_conf *)tmp___15; tmp___16 = ldv_init_zalloc(8UL); ldvarg187 = (struct ieee80211_tx_control *)tmp___16; tmp___17 = ldv_init_zalloc(296UL); ldvarg172 = (struct ieee80211_vif *)tmp___17; tmp___18 = ldv_init_zalloc(232UL); ldvarg186 = (struct sk_buff *)tmp___18; tmp___19 = ldv_init_zalloc(216UL); ldvarg193 = (struct ieee80211_sta *)tmp___19; tmp___20 = ldv_init_zalloc(216UL); ldvarg200 = (struct ieee80211_sta *)tmp___20; tmp___21 = ldv_init_zalloc(296UL); ldvarg176 = (struct ieee80211_vif *)tmp___21; tmp___22 = ldv_init_zalloc(2UL); ldvarg173 = (u16 *)tmp___22; tmp___23 = ldv_init_zalloc(216UL); ldvarg194 = (struct ieee80211_sta *)tmp___23; tmp___24 = ldv_init_zalloc(64UL); ldvarg179 = (struct survey_info *)tmp___24; tmp___25 = ldv_init_zalloc(1UL); ldvarg171 = (u8 *)tmp___25; ldv_initialize(); ldv_memset((void *)(& ldvarg202), 0, 4UL); ldv_memset((void *)(& ldvarg181), 0, 8UL); ldv_memset((void *)(& ldvarg197), 0, 4UL); ldv_memset((void *)(& ldvarg195), 0, 4UL); ldv_memset((void *)(& ldvarg184), 0, 8UL); ldv_memset((void *)(& ldvarg177), 0, 4UL); ldv_memset((void *)(& ldvarg190), 0, 2UL); ldv_memset((void *)(& ldvarg192), 0, 1UL); ldv_memset((void *)(& ldvarg183), 0, 4UL); ldv_memset((void *)(& ldvarg180), 0, 4UL); ldv_memset((void *)(& ldvarg205), 0, 4UL); ldv_state_variable_33 = 0; ldv_state_variable_32 = 0; ldv_state_variable_21 = 0; work_init_7(); ldv_state_variable_7 = 1; ldv_state_variable_26 = 0; ldv_state_variable_17 = 0; ldv_state_variable_2 = 1; ldv_state_variable_1 = 1; ldv_state_variable_18 = 0; ldv_state_variable_30 = 0; ldv_state_variable_16 = 0; ldv_state_variable_27 = 0; ldv_state_variable_25 = 0; ldv_state_variable_28 = 0; ldv_state_variable_20 = 0; ldv_state_variable_14 = 0; ldv_state_variable_24 = 0; work_init_10(); ldv_state_variable_10 = 1; ldv_state_variable_31 = 0; ldv_state_variable_11 = 0; ldv_state_variable_22 = 0; ref_cnt = 0; ldv_state_variable_0 = 1; ldv_state_variable_13 = 0; ldv_state_variable_23 = 0; ldv_state_variable_29 = 0; work_init_6(); ldv_state_variable_6 = 1; work_init_3(); ldv_state_variable_3 = 1; work_init_9(); ldv_state_variable_9 = 1; ldv_state_variable_12 = 0; ldv_state_variable_15 = 0; work_init_8(); ldv_state_variable_8 = 1; work_init_4(); ldv_state_variable_4 = 1; ldv_state_variable_34 = 0; ldv_state_variable_19 = 0; work_init_5(); ldv_state_variable_5 = 1; ldv_57249: tmp___26 = __VERIFIER_nondet_int(); switch (tmp___26) { case 0: ; if (ldv_state_variable_33 != 0) { tmp___27 = __VERIFIER_nondet_int(); switch (tmp___27) { case 0: ; if (ldv_state_variable_33 == 1) { ldv_retval_0 = b43_bcma_probe(b43_bcma_driver_group0); if (ldv_retval_0 == 0) { ldv_state_variable_33 = 2; ref_cnt = ref_cnt + 1; } else { } } else { } goto ldv_57179; case 1: ; if (ldv_state_variable_33 == 2) { b43_bcma_remove(b43_bcma_driver_group0); ldv_state_variable_33 = 1; ref_cnt = ref_cnt - 1; } else { } goto ldv_57179; default: ldv_stop(); } ldv_57179: ; } else { } goto ldv_57182; case 1: ; if (ldv_state_variable_32 != 0) { tmp___28 = __VERIFIER_nondet_int(); switch (tmp___28) { case 0: ; if (ldv_state_variable_32 == 1) { ldv_retval_1 = b43_ssb_probe(b43_ssb_driver_group0, (struct ssb_device_id const *)ldvarg0); if (ldv_retval_1 == 0) { ldv_state_variable_32 = 2; ref_cnt = ref_cnt + 1; } else { } } else { } goto ldv_57185; case 1: ; if (ldv_state_variable_32 == 2) { b43_ssb_remove(b43_ssb_driver_group0); ldv_state_variable_32 = 1; ref_cnt = ref_cnt - 1; } else { } goto ldv_57185; default: ldv_stop(); } ldv_57185: ; } else { } goto ldv_57182; case 2: ; if (ldv_state_variable_21 != 0) { ldv_main_exported_21(); } else { } goto ldv_57182; case 3: ; if (ldv_state_variable_7 != 0) { invoke_work_7(); } else { } goto ldv_57182; case 4: ; if (ldv_state_variable_26 != 0) { ldv_main_exported_26(); } else { } goto ldv_57182; case 5: ; if (ldv_state_variable_17 != 0) { ldv_main_exported_17(); } else { } goto ldv_57182; case 6: ; if (ldv_state_variable_2 != 0) { choose_interrupt_2(); } else { } goto ldv_57182; case 7: ; if (ldv_state_variable_1 != 0) { choose_interrupt_1(); } else { } goto ldv_57182; case 8: ; if (ldv_state_variable_18 != 0) { ldv_main_exported_18(); } else { } goto ldv_57182; case 9: ; if (ldv_state_variable_30 != 0) { ldv_main_exported_30(); } else { } goto ldv_57182; case 10: ; if (ldv_state_variable_16 != 0) { ldv_main_exported_16(); } else { } goto ldv_57182; case 11: ; if (ldv_state_variable_27 != 0) { ldv_main_exported_27(); } else { } goto ldv_57182; case 12: ; if (ldv_state_variable_25 != 0) { ldv_main_exported_25(); } else { } goto ldv_57182; case 13: ; if (ldv_state_variable_28 != 0) { ldv_main_exported_28(); } else { } goto ldv_57182; case 14: ; if (ldv_state_variable_20 != 0) { ldv_main_exported_20(); } else { } goto ldv_57182; case 15: ; if (ldv_state_variable_14 != 0) { ldv_main_exported_14(); } else { } goto ldv_57182; case 16: ; if (ldv_state_variable_24 != 0) { ldv_main_exported_24(); } else { } goto ldv_57182; case 17: ; goto ldv_57182; case 18: ; if (ldv_state_variable_31 != 0) { ldv_main_exported_31(); } else { } goto ldv_57182; case 19: ; if (ldv_state_variable_11 != 0) { ldv_main_exported_11(); } else { } goto ldv_57182; case 20: ; if (ldv_state_variable_22 != 0) { ldv_main_exported_22(); } else { } goto ldv_57182; case 21: ; if (ldv_state_variable_0 != 0) { tmp___29 = __VERIFIER_nondet_int(); switch (tmp___29) { case 0: ; if (ldv_state_variable_0 == 2 && ref_cnt == 0) { b43_exit(); ldv_state_variable_0 = 3; goto ldv_final; } else { } goto ldv_57210; case 1: ; if (ldv_state_variable_0 == 1) { ldv_retval_10 = b43_init(); if (ldv_retval_10 != 0) { ldv_state_variable_0 = 3; goto ldv_final; } else { } if (ldv_retval_10 == 0) { ldv_state_variable_0 = 2; ldv_state_variable_31 = 1; ldv_initialize_b43_phy_operations_31(); ldv_state_variable_19 = 1; ldv_initialize_b43_debugfs_fops_19(); ldv_state_variable_24 = 1; ldv_initialize_b43_dma_ops_24(); ldv_state_variable_20 = 1; ldv_initialize_b43_debugfs_fops_20(); ldv_state_variable_15 = 1; ldv_initialize_b43_debugfs_fops_15(); ldv_state_variable_14 = 1; ldv_initialize_b43_debugfs_fops_14(); ldv_state_variable_12 = 1; ldv_initialize_b43_debugfs_fops_12(); ldv_state_variable_28 = 1; ldv_initialize_b43_phy_operations_28(); ldv_state_variable_25 = 1; ldv_initialize_b43_dma_ops_25(); ldv_state_variable_27 = 1; ldv_initialize_b43_phy_operations_27(); ldv_state_variable_29 = 1; ldv_initialize_b43_phy_operations_29(); ldv_state_variable_16 = 1; ldv_initialize_b43_debugfs_fops_16(); ldv_state_variable_13 = 1; ldv_initialize_b43_debugfs_fops_13(); ldv_state_variable_23 = 1; ldv_initialize_pcmcia_driver_23(); ldv_state_variable_30 = 1; ldv_initialize_b43_phy_operations_30(); ldv_state_variable_18 = 1; ldv_initialize_b43_debugfs_fops_18(); ldv_state_variable_22 = 1; ldv_initialize_sdio_driver_22(); ldv_state_variable_17 = 1; ldv_initialize_b43_debugfs_fops_17(); ldv_state_variable_26 = 1; ldv_initialize_device_attribute_26(); ldv_state_variable_21 = 1; ldv_initialize_b43_debugfs_fops_21(); ldv_state_variable_11 = 1; ldv_initialize_b43_debugfs_fops_11(); ldv_state_variable_32 = 1; ldv_initialize_ssb_driver_32(); ldv_state_variable_33 = 1; ldv_initialize_bcma_driver_33(); } else { } } else { } goto ldv_57210; default: ldv_stop(); } ldv_57210: ; } else { } goto ldv_57182; case 22: ; if (ldv_state_variable_13 != 0) { ldv_main_exported_13(); } else { } goto ldv_57182; case 23: ; if (ldv_state_variable_23 != 0) { ldv_main_exported_23(); } else { } goto ldv_57182; case 24: ; if (ldv_state_variable_29 != 0) { ldv_main_exported_29(); } else { } goto ldv_57182; case 25: ; if (ldv_state_variable_6 != 0) { invoke_work_6(); } else { } goto ldv_57182; case 26: ; if (ldv_state_variable_3 != 0) { invoke_work_3(); } else { } goto ldv_57182; case 27: ; if (ldv_state_variable_9 != 0) { invoke_work_9(); } else { } goto ldv_57182; case 28: ; if (ldv_state_variable_12 != 0) { ldv_main_exported_12(); } else { } goto ldv_57182; case 29: ; if (ldv_state_variable_15 != 0) { ldv_main_exported_15(); } else { } goto ldv_57182; case 30: ; if (ldv_state_variable_8 != 0) { invoke_work_8(); } else { } goto ldv_57182; case 31: ; if (ldv_state_variable_4 != 0) { invoke_work_4(); } else { } goto ldv_57182; case 32: ; if (ldv_state_variable_34 != 0) { tmp___30 = __VERIFIER_nondet_int(); switch (tmp___30) { case 0: ; if (ldv_state_variable_34 == 1) { ldv_retval_17 = b43_op_start(b43_hw_ops_group0); if (ldv_retval_17 == 0) { ldv_state_variable_34 = 2; ref_cnt = ref_cnt + 1; } else { } } else { } goto ldv_57225; case 1: ; if (ldv_state_variable_34 == 1) { b43_op_config(b43_hw_ops_group0, ldvarg205); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_op_config(b43_hw_ops_group0, ldvarg205); ldv_state_variable_34 = 2; } else { } goto ldv_57225; case 2: ; if (ldv_state_variable_34 == 1) { b43_op_get_tsf(b43_hw_ops_group0, ldvarg204); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_op_get_tsf(b43_hw_ops_group0, ldvarg204); ldv_state_variable_34 = 2; } else { } goto ldv_57225; case 3: ; if (ldv_state_variable_34 == 1) { b43_op_set_key(b43_hw_ops_group0, ldvarg202, ldvarg201, ldvarg200, ldvarg203); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_op_set_key(b43_hw_ops_group0, ldvarg202, ldvarg201, ldvarg200, ldvarg203); ldv_state_variable_34 = 2; } else { } goto ldv_57225; case 4: ; if (ldv_state_variable_34 == 1) { b43_op_bss_info_changed(b43_hw_ops_group0, ldvarg199, ldvarg198, ldvarg197); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_op_bss_info_changed(b43_hw_ops_group0, ldvarg199, ldvarg198, ldvarg197); ldv_state_variable_34 = 2; } else { } goto ldv_57225; case 5: ; if (ldv_state_variable_34 == 1) { b43_op_sta_notify(b43_hw_ops_group0, ldvarg196, ldvarg195, ldvarg194); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_op_sta_notify(b43_hw_ops_group0, ldvarg196, ldvarg195, ldvarg194); ldv_state_variable_34 = 2; } else { } goto ldv_57225; case 6: ; if (ldv_state_variable_34 == 1) { b43_op_beacon_set_tim(b43_hw_ops_group0, ldvarg193, (int )ldvarg192); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_op_beacon_set_tim(b43_hw_ops_group0, ldvarg193, (int )ldvarg192); ldv_state_variable_34 = 2; } else { } goto ldv_57225; case 7: ; if (ldv_state_variable_34 == 1) { b43_op_conf_tx(b43_hw_ops_group0, ldvarg191, (int )ldvarg190, (struct ieee80211_tx_queue_params const *)ldvarg189); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_op_conf_tx(b43_hw_ops_group0, ldvarg191, (int )ldvarg190, (struct ieee80211_tx_queue_params const *)ldvarg189); ldv_state_variable_34 = 2; } else { } goto ldv_57225; case 8: ; if (ldv_state_variable_34 == 1) { b43_op_sw_scan_complete_notifier(b43_hw_ops_group0, ldvarg188); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_op_sw_scan_complete_notifier(b43_hw_ops_group0, ldvarg188); ldv_state_variable_34 = 2; } else { } goto ldv_57225; case 9: ; if (ldv_state_variable_34 == 2) { b43_op_stop(b43_hw_ops_group0); ldv_state_variable_34 = 1; ref_cnt = ref_cnt - 1; } else { } goto ldv_57225; case 10: ; if (ldv_state_variable_34 == 1) { b43_op_tx(b43_hw_ops_group0, ldvarg187, ldvarg186); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_op_tx(b43_hw_ops_group0, ldvarg187, ldvarg186); ldv_state_variable_34 = 2; } else { } goto ldv_57225; case 11: ; if (ldv_state_variable_34 == 1) { b43_op_set_tsf(b43_hw_ops_group0, ldvarg185, ldvarg184); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_op_set_tsf(b43_hw_ops_group0, ldvarg185, ldvarg184); ldv_state_variable_34 = 2; } else { } goto ldv_57225; case 12: ; if (ldv_state_variable_34 == 1) { b43_op_configure_filter(b43_hw_ops_group0, ldvarg183, ldvarg182, ldvarg181); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_op_configure_filter(b43_hw_ops_group0, ldvarg183, ldvarg182, ldvarg181); ldv_state_variable_34 = 2; } else { } goto ldv_57225; case 13: ; if (ldv_state_variable_34 == 1) { b43_op_get_survey(b43_hw_ops_group0, ldvarg180, ldvarg179); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_op_get_survey(b43_hw_ops_group0, ldvarg180, ldvarg179); ldv_state_variable_34 = 2; } else { } goto ldv_57225; case 14: ; if (ldv_state_variable_34 == 1) { b43_op_get_stats(b43_hw_ops_group0, ldvarg178); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_op_get_stats(b43_hw_ops_group0, ldvarg178); ldv_state_variable_34 = 2; } else { } goto ldv_57225; case 15: ; if (ldv_state_variable_34 == 1) { b43_op_update_tkip_key(b43_hw_ops_group0, ldvarg176, ldvarg175, ldvarg174, ldvarg177, ldvarg173); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_op_update_tkip_key(b43_hw_ops_group0, ldvarg176, ldvarg175, ldvarg174, ldvarg177, ldvarg173); ldv_state_variable_34 = 2; } else { } goto ldv_57225; case 16: ; if (ldv_state_variable_34 == 1) { b43_rfkill_poll(b43_hw_ops_group0); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_rfkill_poll(b43_hw_ops_group0); ldv_state_variable_34 = 2; } else { } goto ldv_57225; case 17: ; if (ldv_state_variable_34 == 1) { b43_op_sw_scan_start_notifier(b43_hw_ops_group0, ldvarg172, (u8 const *)ldvarg171); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_op_sw_scan_start_notifier(b43_hw_ops_group0, ldvarg172, (u8 const *)ldvarg171); ldv_state_variable_34 = 2; } else { } goto ldv_57225; case 18: ; if (ldv_state_variable_34 == 1) { b43_op_add_interface(b43_hw_ops_group0, ldvarg170); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_op_add_interface(b43_hw_ops_group0, ldvarg170); ldv_state_variable_34 = 2; } else { } goto ldv_57225; case 19: ; if (ldv_state_variable_34 == 1) { b43_op_remove_interface(b43_hw_ops_group0, ldvarg169); ldv_state_variable_34 = 1; } else { } if (ldv_state_variable_34 == 2) { b43_op_remove_interface(b43_hw_ops_group0, ldvarg169); ldv_state_variable_34 = 2; } else { } goto ldv_57225; default: ldv_stop(); } ldv_57225: ; } else { } goto ldv_57182; case 33: ; if (ldv_state_variable_19 != 0) { ldv_main_exported_19(); } else { } goto ldv_57182; case 34: ; if (ldv_state_variable_5 != 0) { invoke_work_5(); } else { } goto ldv_57182; default: ldv_stop(); } ldv_57182: ; goto ldv_57249; ldv_final: ldv_check_final_state(); return 0; } } __inline static void *ERR_PTR(long error ) { void *tmp ; { tmp = ldv_err_ptr(error); return (tmp); } } __inline static long PTR_ERR(void const *ptr ) { long tmp ; { tmp = ldv_ptr_err(ptr); return (tmp); } } __inline static bool IS_ERR(void const *ptr ) { bool tmp ; { tmp = ldv_is_err(ptr); return (tmp); } } bool ldv_queue_work_on_5(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_6(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_7(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_8(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_9(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_10(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } bool ldv_cancel_delayed_work_sync_11(struct delayed_work *ldv_func_arg1 ) { ldv_func_ret_type___4 ldv_func_res ; bool tmp ; { tmp = cancel_delayed_work_sync(ldv_func_arg1); ldv_func_res = tmp; disable_work_7(& ldv_func_arg1->work); return (ldv_func_res); } } bool ldv_cancel_work_sync_12(struct work_struct *ldv_func_arg1 ) { ldv_func_ret_type___5 ldv_func_res ; bool tmp ; { tmp = cancel_work_sync(ldv_func_arg1); ldv_func_res = tmp; disable_work_7(ldv_func_arg1); return (ldv_func_res); } } void ldv_free_irq_13(unsigned int ldv_func_arg1 , void *ldv_func_arg2 ) { { free_irq(ldv_func_arg1, ldv_func_arg2); disable_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg2); return; } } int ldv_request_threaded_irq_14(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___6 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } bool ldv_cancel_work_sync_15(struct work_struct *ldv_func_arg1 ) { ldv_func_ret_type___7 ldv_func_res ; bool tmp ; { tmp = cancel_work_sync(ldv_func_arg1); ldv_func_res = tmp; disable_work_7(ldv_func_arg1); return (ldv_func_res); } } bool ldv_cancel_work_sync_16(struct work_struct *ldv_func_arg1 ) { ldv_func_ret_type___8 ldv_func_res ; bool tmp ; { tmp = cancel_work_sync(ldv_func_arg1); ldv_func_res = tmp; disable_work_7(ldv_func_arg1); return (ldv_func_res); } } void ldv_ieee80211_free_hw_17(struct ieee80211_hw *ldv_func_arg1 ) { { ieee80211_free_hw(ldv_func_arg1); if ((unsigned long )b43_hw_ops_group0 == (unsigned long )ldv_func_arg1) { ldv_state_variable_34 = 0; } else { } return; } } __inline static struct ieee80211_hw *ldv_ieee80211_alloc_hw_18(size_t priv_data_len , struct ieee80211_ops const *ops ) { ldv_func_ret_type___9 ldv_func_res ; struct ieee80211_hw *tmp ; { tmp = ieee80211_alloc_hw(priv_data_len, ops); ldv_func_res = tmp; if ((unsigned long )ldv_func_res != (unsigned long )((ldv_func_ret_type___9 )0)) { ldv_state_variable_34 = 1; ldv_initialize_ieee80211_ops_34(); b43_hw_ops_group0 = ldv_func_res; } else { } return (ldv_func_res); } } void ldv_ieee80211_free_hw_19(struct ieee80211_hw *ldv_func_arg1 ) { { ieee80211_free_hw(ldv_func_arg1); if ((unsigned long )b43_hw_ops_group0 == (unsigned long )ldv_func_arg1) { ldv_state_variable_34 = 0; } else { } return; } } bool ldv_cancel_work_sync_20(struct work_struct *ldv_func_arg1 ) { ldv_func_ret_type___10 ldv_func_res ; bool tmp ; { tmp = cancel_work_sync(ldv_func_arg1); ldv_func_res = tmp; disable_work_7(ldv_func_arg1); return (ldv_func_res); } } bool ldv_cancel_work_sync_21(struct work_struct *ldv_func_arg1 ) { ldv_func_ret_type___11 ldv_func_res ; bool tmp ; { tmp = cancel_work_sync(ldv_func_arg1); ldv_func_res = tmp; disable_work_7(ldv_func_arg1); return (ldv_func_res); } } void ldv_ieee80211_free_hw_22(struct ieee80211_hw *ldv_func_arg1 ) { { ieee80211_free_hw(ldv_func_arg1); if ((unsigned long )b43_hw_ops_group0 == (unsigned long )ldv_func_arg1) { ldv_state_variable_34 = 0; } else { } return; } } bool ldv_cancel_work_sync_23(struct work_struct *ldv_func_arg1 ) { ldv_func_ret_type___12 ldv_func_res ; bool tmp ; { tmp = cancel_work_sync(ldv_func_arg1); ldv_func_res = tmp; disable_work_7(ldv_func_arg1); return (ldv_func_res); } } bool ldv_cancel_work_sync_24(struct work_struct *ldv_func_arg1 ) { ldv_func_ret_type___13 ldv_func_res ; bool tmp ; { tmp = cancel_work_sync(ldv_func_arg1); ldv_func_res = tmp; disable_work_7(ldv_func_arg1); return (ldv_func_res); } } bool ldv_queue_work_on_49(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_51(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_50(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_53(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_52(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_54(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; __inline static void ssb_set_drvdata(struct ssb_device *dev , void *data ) { { dev->drvdata = data; return; } } extern int ssb_device_is_enabled(struct ssb_device * ) ; extern void ssb_device_enable(struct ssb_device * , u32 ) ; extern void ssb_device_disable(struct ssb_device * , u32 ) ; __inline static u16 ssb_read16(struct ssb_device *dev , u16 offset ) { u16 tmp ; { tmp = (*((dev->ops)->read16))(dev, (int )offset); return (tmp); } } __inline static void ssb_write16(struct ssb_device *dev , u16 offset , u16 value ) { { (*((dev->ops)->write16))(dev, (int )offset, (int )value); return; } } __inline static void ssb_block_read(struct ssb_device *dev , void *buffer , size_t count , u16 offset , u8 reg_width ) { { (*((dev->ops)->block_read))(dev, buffer, count, (int )offset, (int )reg_width); return; } } __inline static void ssb_block_write(struct ssb_device *dev , void const *buffer , size_t count , u16 offset , u8 reg_width ) { { (*((dev->ops)->block_write))(dev, buffer, count, (int )offset, (int )reg_width); return; } } extern int ssb_bus_may_powerdown(struct ssb_bus * ) ; extern int ssb_bus_powerup(struct ssb_bus * , bool ) ; __inline static void bcma_set_drvdata(struct bcma_device *core , void *drvdata ) { { core->drvdata = drvdata; return; } } __inline static u32 bcma_read16(struct bcma_device *core , u16 offset ) { u16 tmp ; { tmp = (*(((core->bus)->ops)->read16))(core, (int )offset); return ((u32 )tmp); } } __inline static void bcma_write16(struct bcma_device *core , u16 offset , u32 value ) { { (*(((core->bus)->ops)->write16))(core, (int )offset, (int )((u16 )value)); return; } } __inline static void bcma_block_read(struct bcma_device *core , void *buffer , size_t count , u16 offset , u8 reg_width ) { { (*(((core->bus)->ops)->block_read))(core, buffer, count, (int )offset, (int )reg_width); return; } } __inline static void bcma_block_write(struct bcma_device *core , void const *buffer , size_t count , u16 offset , u8 reg_width ) { { (*(((core->bus)->ops)->block_write))(core, buffer, count, (int )offset, (int )reg_width); return; } } extern bool bcma_core_is_enabled(struct bcma_device * ) ; extern void bcma_core_disable(struct bcma_device * , u32 ) ; extern int bcma_core_enable(struct bcma_device * , u32 ) ; static int b43_bus_bcma_bus_may_powerdown(struct b43_bus_dev *dev ) { { return (0); } } static int b43_bus_bcma_bus_powerup(struct b43_bus_dev *dev , bool dynamic_pctl ) { { return (0); } } static int b43_bus_bcma_device_is_enabled(struct b43_bus_dev *dev ) { bool tmp ; { tmp = bcma_core_is_enabled(dev->__annonCompField105.bdev); return ((int )tmp); } } static void b43_bus_bcma_device_enable(struct b43_bus_dev *dev , u32 core_specific_flags ) { { bcma_core_enable(dev->__annonCompField105.bdev, core_specific_flags); return; } } static void b43_bus_bcma_device_disable(struct b43_bus_dev *dev , u32 core_specific_flags ) { { bcma_core_disable(dev->__annonCompField105.bdev, core_specific_flags); return; } } static u16 b43_bus_bcma_read16(struct b43_bus_dev *dev , u16 offset ) { u32 tmp ; { tmp = bcma_read16(dev->__annonCompField105.bdev, (int )offset); return ((u16 )tmp); } } static u32 b43_bus_bcma_read32(struct b43_bus_dev *dev , u16 offset ) { u32 tmp ; { tmp = bcma_read32(dev->__annonCompField105.bdev, (int )offset); return (tmp); } } static void b43_bus_bcma_write16(struct b43_bus_dev *dev , u16 offset , u16 value ) { { bcma_write16(dev->__annonCompField105.bdev, (int )offset, (u32 )value); return; } } static void b43_bus_bcma_write32(struct b43_bus_dev *dev , u16 offset , u32 value ) { { bcma_write32(dev->__annonCompField105.bdev, (int )offset, value); return; } } static void b43_bus_bcma_block_read(struct b43_bus_dev *dev , void *buffer , size_t count , u16 offset , u8 reg_width ) { { bcma_block_read(dev->__annonCompField105.bdev, buffer, count, (int )offset, (int )reg_width); return; } } static void b43_bus_bcma_block_write(struct b43_bus_dev *dev , void const *buffer , size_t count , u16 offset , u8 reg_width ) { { bcma_block_write(dev->__annonCompField105.bdev, buffer, count, (int )offset, (int )reg_width); return; } } struct b43_bus_dev *b43_bus_dev_bcma_init(struct bcma_device *core ) { struct b43_bus_dev *dev ; void *tmp ; { tmp = kzalloc(160UL, 208U); dev = (struct b43_bus_dev *)tmp; if ((unsigned long )dev == (unsigned long )((struct b43_bus_dev *)0)) { return ((struct b43_bus_dev *)0); } else { } dev->bus_type = 0; dev->__annonCompField105.bdev = core; dev->bus_may_powerdown = & b43_bus_bcma_bus_may_powerdown; dev->bus_powerup = & b43_bus_bcma_bus_powerup; dev->device_is_enabled = & b43_bus_bcma_device_is_enabled; dev->device_enable = & b43_bus_bcma_device_enable; dev->device_disable = & b43_bus_bcma_device_disable; dev->read16 = & b43_bus_bcma_read16; dev->read32 = & b43_bus_bcma_read32; dev->write16 = & b43_bus_bcma_write16; dev->write32 = & b43_bus_bcma_write32; dev->block_read = & b43_bus_bcma_block_read; dev->block_write = & b43_bus_bcma_block_write; dev->dev = & core->dev; dev->dma_dev = core->dma_dev; dev->irq = core->irq; dev->board_vendor = (core->bus)->boardinfo.vendor; dev->board_type = (core->bus)->boardinfo.type; dev->board_rev = (core->bus)->sprom.board_rev; dev->chip_id = (core->bus)->chipinfo.id; dev->chip_rev = (core->bus)->chipinfo.rev; dev->chip_pkg = (core->bus)->chipinfo.pkg; dev->bus_sprom = & (core->bus)->sprom; dev->core_id = core->id.id; dev->core_rev = core->id.rev; return (dev); } } static int b43_bus_ssb_bus_may_powerdown(struct b43_bus_dev *dev ) { int tmp ; { tmp = ssb_bus_may_powerdown((dev->__annonCompField105.sdev)->bus); return (tmp); } } static int b43_bus_ssb_bus_powerup(struct b43_bus_dev *dev , bool dynamic_pctl ) { int tmp ; { tmp = ssb_bus_powerup((dev->__annonCompField105.sdev)->bus, (int )dynamic_pctl); return (tmp); } } static int b43_bus_ssb_device_is_enabled(struct b43_bus_dev *dev ) { int tmp ; { tmp = ssb_device_is_enabled(dev->__annonCompField105.sdev); return (tmp); } } static void b43_bus_ssb_device_enable(struct b43_bus_dev *dev , u32 core_specific_flags ) { { ssb_device_enable(dev->__annonCompField105.sdev, core_specific_flags); return; } } static void b43_bus_ssb_device_disable(struct b43_bus_dev *dev , u32 core_specific_flags ) { { ssb_device_disable(dev->__annonCompField105.sdev, core_specific_flags); return; } } static u16 b43_bus_ssb_read16(struct b43_bus_dev *dev , u16 offset ) { u16 tmp ; { tmp = ssb_read16(dev->__annonCompField105.sdev, (int )offset); return (tmp); } } static u32 b43_bus_ssb_read32(struct b43_bus_dev *dev , u16 offset ) { u32 tmp ; { tmp = ssb_read32(dev->__annonCompField105.sdev, (int )offset); return (tmp); } } static void b43_bus_ssb_write16(struct b43_bus_dev *dev , u16 offset , u16 value ) { { ssb_write16(dev->__annonCompField105.sdev, (int )offset, (int )value); return; } } static void b43_bus_ssb_write32(struct b43_bus_dev *dev , u16 offset , u32 value ) { { ssb_write32(dev->__annonCompField105.sdev, (int )offset, value); return; } } static void b43_bus_ssb_block_read(struct b43_bus_dev *dev , void *buffer , size_t count , u16 offset , u8 reg_width ) { { ssb_block_read(dev->__annonCompField105.sdev, buffer, count, (int )offset, (int )reg_width); return; } } static void b43_bus_ssb_block_write(struct b43_bus_dev *dev , void const *buffer , size_t count , u16 offset , u8 reg_width ) { { ssb_block_write(dev->__annonCompField105.sdev, buffer, count, (int )offset, (int )reg_width); return; } } struct b43_bus_dev *b43_bus_dev_ssb_init(struct ssb_device *sdev ) { struct b43_bus_dev *dev ; void *tmp ; { tmp = kzalloc(160UL, 208U); dev = (struct b43_bus_dev *)tmp; if ((unsigned long )dev == (unsigned long )((struct b43_bus_dev *)0)) { return ((struct b43_bus_dev *)0); } else { } dev->bus_type = 1; dev->__annonCompField105.sdev = sdev; dev->bus_may_powerdown = & b43_bus_ssb_bus_may_powerdown; dev->bus_powerup = & b43_bus_ssb_bus_powerup; dev->device_is_enabled = & b43_bus_ssb_device_is_enabled; dev->device_enable = & b43_bus_ssb_device_enable; dev->device_disable = & b43_bus_ssb_device_disable; dev->read16 = & b43_bus_ssb_read16; dev->read32 = & b43_bus_ssb_read32; dev->write16 = & b43_bus_ssb_write16; dev->write32 = & b43_bus_ssb_write32; dev->block_read = & b43_bus_ssb_block_read; dev->block_write = & b43_bus_ssb_block_write; dev->dev = sdev->dev; dev->dma_dev = sdev->dma_dev; dev->irq = sdev->irq; dev->board_vendor = (sdev->bus)->boardinfo.vendor; dev->board_type = (sdev->bus)->boardinfo.type; dev->board_rev = (sdev->bus)->sprom.board_rev; dev->chip_id = (sdev->bus)->chip_id; dev->chip_rev = (sdev->bus)->chip_rev; dev->chip_pkg = (sdev->bus)->chip_package; dev->bus_sprom = & (sdev->bus)->sprom; dev->core_id = sdev->id.coreid; dev->core_rev = sdev->id.revision; return (dev); } } void *b43_bus_get_wldev(struct b43_bus_dev *dev ) { void *tmp ; void *tmp___0 ; { switch ((unsigned int )dev->bus_type) { case 0U: tmp = bcma_get_drvdata(dev->__annonCompField105.bdev); return (tmp); case 1U: tmp___0 = ssb_get_drvdata(dev->__annonCompField105.sdev); return (tmp___0); } return ((void *)0); } } void b43_bus_set_wldev(struct b43_bus_dev *dev , void *wldev ) { { switch ((unsigned int )dev->bus_type) { case 0U: bcma_set_drvdata(dev->__annonCompField105.bdev, wldev); goto ldv_54019; case 1U: ssb_set_drvdata(dev->__annonCompField105.sdev, wldev); goto ldv_54019; } ldv_54019: ; return; } } bool ldv_queue_work_on_49(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_50(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_51(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_52(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_53(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_54(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; extern void dump_stack(void) ; bool ldv_queue_work_on_65(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_67(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_66(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_69(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_68(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_70(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; u16 b43_phy_read(struct b43_wldev *dev , u16 reg ) ; void b43_phy_write(struct b43_wldev *dev , u16 reg , u16 value ) ; void b43_phy_mask(struct b43_wldev *dev , u16 offset , u16 mask ) ; void b43_phy_set(struct b43_wldev *dev , u16 offset , u16 set ) ; void b43_phy_maskset(struct b43_wldev *dev , u16 offset , u16 mask , u16 set ) ; u16 b43_radio_read(struct b43_wldev *dev , u16 reg ) ; void b43_radio_mask(struct b43_wldev *dev , u16 offset , u16 mask ) ; void b43_radio_set(struct b43_wldev *dev , u16 offset , u16 set ) ; void b43_radio_maskset(struct b43_wldev *dev , u16 offset , u16 mask , u16 set ) ; void b43_phyop_switch_analog_generic(struct b43_wldev *dev , bool on ) ; void b43_ofdmtab_write16(struct b43_wldev *dev , u16 table , u16 offset , u16 value ) ; void b43_phy_inita(struct b43_wldev *dev ) ; u8 *b43_generate_dyn_tssi2dbm_tab(struct b43_wldev *dev , s16 pab0 , s16 pab1 , s16 pab2 ) ; void b43_wa_initgains(struct b43_wldev *dev ) ; void b43_wa_all(struct b43_wldev *dev ) ; u16 const b43_tab_rssiagc1[16U] ; u16 const b43_tab_rssiagc2[48U] ; __inline static u16 channel2freq_a(u8 channel ) { int __ret_warn_on ; long tmp ; { __ret_warn_on = (unsigned int )channel > 200U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_a.c", 42); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return ((unsigned int )((u16 )channel) * 5U + 5000U); } } __inline static u16 freq_r3A_value(u16 frequency ) { u16 value ; { if ((unsigned int )frequency <= 5090U) { value = 64U; } else if ((unsigned int )frequency <= 5320U) { value = 0U; } else if ((unsigned int )frequency <= 5805U) { value = 128U; } else { value = 64U; } return (value); } } static void b43_radio_set_tx_iq(struct b43_wldev *dev ) { u8 data_high[5U] ; u8 data_low[5U] ; u16 tmp ; u16 tmp___0 ; int i ; int j ; { data_high[0] = 0U; data_high[1] = 64U; data_high[2] = 128U; data_high[3] = 144U; data_high[4] = 208U; data_low[0] = 0U; data_low[1] = 1U; data_low[2] = 5U; data_low[3] = 6U; data_low[4] = 10U; tmp___0 = b43_radio_read(dev, 30); tmp = tmp___0; i = 0; goto ldv_54022; ldv_54021: j = 0; goto ldv_54019; ldv_54018: ; if ((int )tmp == (((int )data_high[i] << 4) | (int )data_low[j])) { b43_phy_write(dev, 105, (int )((u16 )((int )((short )((i - j) << 8)) | 192))); return; } else { } j = j + 1; ldv_54019: ; if (j <= 4) { goto ldv_54018; } else { } i = i + 1; ldv_54022: ; if (i <= 4) { goto ldv_54021; } else { } return; } } static void aphy_channel_switch(struct b43_wldev *dev , unsigned int channel ) { u16 freq ; u16 r8 ; u16 tmp ; u16 tmp___0 ; { freq = channel2freq_a((int )((u8 )channel)); r8 = b43_radio_read(dev, 8); b43_write16(dev, 1008, (int )freq); b43_radio_write(dev, 8, (int )r8); tmp = b43_radio_read(dev, 46); tmp = (unsigned int )tmp & 128U; b43_radio_write(dev, 46, (int )tmp); if ((unsigned int )freq > 4919U && (unsigned int )freq <= 5500U) { r8 = (u16 )(((int )freq * 3) / 116); } else { } b43_radio_write(dev, 7, (int )((u16 )((int )((short )((int )r8 << 4)) | (int )((short )r8)))); b43_radio_write(dev, 32, (int )((u16 )((int )((short )((int )r8 << 4)) | (int )((short )r8)))); b43_radio_write(dev, 33, (int )((u16 )((int )((short )((int )r8 << 4)) | (int )((short )r8)))); b43_radio_maskset(dev, 34, 15, (int )r8 << 4U); b43_radio_write(dev, 42, (int )r8 << 4U); b43_radio_write(dev, 43, (int )r8 << 4U); b43_radio_maskset(dev, 8, 240, (int )r8 << 4U); b43_radio_maskset(dev, 41, 65295, 176); b43_radio_write(dev, 53, 170); b43_radio_write(dev, 54, 133); tmp___0 = freq_r3A_value((int )freq); b43_radio_maskset(dev, 58, 65312, (int )tmp___0); b43_radio_mask(dev, 61, 255); b43_radio_maskset(dev, 129, 65407, 128); b43_radio_mask(dev, 53, 65519); b43_radio_maskset(dev, 53, 65519, 16); b43_radio_set_tx_iq(dev); return; } } static void b43_radio_init2060(struct b43_wldev *dev ) { u16 tmp ; unsigned int tmp___0 ; { b43_radio_write(dev, 4, 192); b43_radio_write(dev, 5, 8); b43_radio_write(dev, 9, 64); b43_radio_write(dev, 5, 170); b43_radio_write(dev, 50, 143); b43_radio_write(dev, 6, 143); b43_radio_write(dev, 52, 143); b43_radio_write(dev, 44, 7); b43_radio_write(dev, 130, 128); b43_radio_write(dev, 128, 0); b43_radio_write(dev, 63, 218); b43_radio_mask(dev, 5, 65527); b43_radio_mask(dev, 129, 65519); b43_radio_mask(dev, 129, 65503); b43_radio_mask(dev, 129, 65503); msleep(1U); b43_radio_maskset(dev, 129, 65503, 16); msleep(1U); b43_radio_maskset(dev, 5, 65527, 8); b43_radio_mask(dev, 133, 65519); b43_radio_mask(dev, 5, 65527); b43_radio_mask(dev, 129, 65471); b43_radio_maskset(dev, 129, 65471, 64); tmp = b43_radio_read(dev, 129); b43_radio_write(dev, 5, (int )((unsigned int )tmp | 8U)); b43_phy_write(dev, 99, 56774); b43_phy_write(dev, 105, 1982); b43_phy_write(dev, 106, 0); tmp___0 = (*((dev->phy.ops)->get_default_chan))(dev); aphy_channel_switch(dev, tmp___0); msleep(1U); return; } } static void b43_phy_rssiagc(struct b43_wldev *dev , u8 enable ) { int i ; { if ((unsigned int )dev->phy.rev <= 2U) { if ((unsigned int )enable != 0U) { i = 0; goto ldv_54040; ldv_54039: b43_ofdmtab_write16(dev, 3072, (int )((u16 )i), 65528); b43_ofdmtab_write16(dev, 4096, (int )((u16 )i), 65528); i = i + 1; ldv_54040: ; if (i <= 15) { goto ldv_54039; } else { } } else { i = 0; goto ldv_54043; ldv_54042: b43_ofdmtab_write16(dev, 3072, (int )((u16 )i), (int )b43_tab_rssiagc1[i]); b43_ofdmtab_write16(dev, 4096, (int )((u16 )i), (int )b43_tab_rssiagc1[i]); i = i + 1; ldv_54043: ; if (i <= 15) { goto ldv_54042; } else { } } } else if ((unsigned int )enable != 0U) { i = 0; goto ldv_54046; ldv_54045: b43_ofdmtab_write16(dev, 4096, (int )((u16 )i), 2080); i = i + 1; ldv_54046: ; if (i <= 15) { goto ldv_54045; } else { } } else { i = 0; goto ldv_54049; ldv_54048: b43_ofdmtab_write16(dev, 4096, (int )((u16 )i), (int )b43_tab_rssiagc2[i]); i = i + 1; ldv_54049: ; if (i <= 47) { goto ldv_54048; } else { } } return; } } static void b43_phy_ww(struct b43_wldev *dev ) { u16 b ; u16 curr_s ; u16 best_s ; int i ; u16 tmp ; { best_s = 65535U; b43_phy_mask(dev, 1065, 49151); b43_phy_set(dev, 1051, 4096); b43_phy_maskset(dev, 1154, 61695, 768); b43_radio_set(dev, 9, 128); b43_radio_maskset(dev, 18, 65532, 2); b43_wa_initgains(dev); b43_phy_write(dev, 1210, 16085); b = b43_phy_read(dev, 1027); b43_phy_write(dev, 1027, (int )((u16 )(((int )((short )b) & -8) | 5))); b43_radio_set(dev, 4, 4); i = 16; goto ldv_54060; ldv_54059: b43_radio_write(dev, 19, (int )((u16 )i)); tmp = b43_phy_read(dev, 1140); curr_s = (unsigned int )tmp & 255U; if ((unsigned int )curr_s == 0U) { best_s = 0U; goto ldv_54058; } else if ((unsigned int )curr_s > 127U) { curr_s = 256U - (unsigned int )curr_s; } else { } if ((int )curr_s < (int )best_s) { best_s = curr_s; } else { } i = i + 1; ldv_54060: ; if (i <= 32) { goto ldv_54059; } else { } ldv_54058: b43_phy_write(dev, 1027, (int )b); b43_radio_mask(dev, 4, 65531); b43_radio_write(dev, 19, (int )best_s); b43_ofdmtab_write16(dev, 19456, 0, 65516); b43_phy_write(dev, 1207, 7808); b43_phy_write(dev, 1206, 7168); b43_phy_write(dev, 1205, 3776); b43_phy_write(dev, 1202, 192); b43_phy_write(dev, 1209, 8191); b43_phy_maskset(dev, 1211, 61440, 83); b43_phy_maskset(dev, 1121, 65055, 288); b43_phy_maskset(dev, 1043, 4095, 12288); b43_phy_maskset(dev, 1044, 4095, 12288); b43_ofdmtab_write16(dev, 0, 6, 23); i = 0; goto ldv_54062; ldv_54061: b43_ofdmtab_write16(dev, 0, (int )((u16 )i), 15); i = i + 1; ldv_54062: ; if (i <= 5) { goto ldv_54061; } else { } b43_ofdmtab_write16(dev, 0, 13, 14); b43_ofdmtab_write16(dev, 0, 14, 17); b43_ofdmtab_write16(dev, 0, 15, 19); b43_phy_write(dev, 1075, 20528); b43_phy_set(dev, 1065, 16384); return; } } static void hardware_pctl_init_aphy(struct b43_wldev *dev ) { { return; } } void b43_phy_inita(struct b43_wldev *dev ) { struct b43_phy *phy ; int __ret_warn_on ; long tmp ; u16 tmp___0 ; { phy = & dev->phy; __ret_warn_on = (unsigned int )phy->type != 0U && (unsigned int )phy->type != 2U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_a.c", 274); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); __might_sleep("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_a.c", 276, 0); if ((unsigned int )phy->rev > 5U) { if ((unsigned int )phy->type == 0U) { b43_phy_mask(dev, 1051, 61439); } else { } tmp___0 = b43_phy_read(dev, 1097); if (((int )tmp___0 & 512) != 0) { b43_phy_set(dev, 1097, 16); } else { b43_phy_mask(dev, 1097, 61423); } } else { } b43_wa_all(dev); if ((unsigned int )phy->type == 0U) { if ((int )phy->gmode && (unsigned int )phy->rev <= 2U) { b43_phy_set(dev, 52, 1); } else { } b43_phy_rssiagc(dev, 0); b43_phy_set(dev, 1065, 16384); b43_radio_init2060(dev); if ((unsigned int )phy->rev > 2U) { b43_phy_ww(dev); } else { } hardware_pctl_init_aphy(dev); } else { } if ((unsigned int )phy->type == 2U && ((int )((dev->dev)->bus_sprom)->boardflags_lo & 2) != 0) { b43_phy_maskset(dev, 1134, 57344, 975); } else { } return; } } static int b43_aphy_init_tssi2dbm_table(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_a *aphy ; s16 pab0 ; s16 pab1 ; s16 pab2 ; u8 *tmp ; { phy = & dev->phy; aphy = phy->__annonCompField106.a; pab0 = (short )((dev->dev)->bus_sprom)->pa1b0; pab1 = (short )((dev->dev)->bus_sprom)->pa1b1; pab2 = (short )((dev->dev)->bus_sprom)->pa1b2; if ((((((int )pab0 != 0 && (int )pab1 != 0) && (int )pab2 != 0) && (int )pab0 != -1) && (int )pab1 != -1) && (int )pab2 != -1) { if ((unsigned int )((dev->dev)->bus_sprom)->itssi_a != 0U && (unsigned int )((dev->dev)->bus_sprom)->itssi_a != 255U) { aphy->tgt_idle_tssi = (int )((signed char )((dev->dev)->bus_sprom)->itssi_a); } else { aphy->tgt_idle_tssi = 62; } tmp = b43_generate_dyn_tssi2dbm_tab(dev, (int )pab0, (int )pab1, (int )pab2); aphy->tssi2dbm = (s8 const *)tmp; if ((unsigned long )aphy->tssi2dbm == (unsigned long )((s8 const *)0)) { return (-12); } else { } } else { aphy->tssi2dbm = (s8 const *)0; b43err(dev->wl, "Could not generate tssi2dBm table (wrong SPROM info)!\n"); return (-19); } return (0); } } static int b43_aphy_op_allocate(struct b43_wldev *dev ) { struct b43_phy_a *aphy ; int err ; void *tmp ; { tmp = kzalloc(24UL, 208U); aphy = (struct b43_phy_a *)tmp; if ((unsigned long )aphy == (unsigned long )((struct b43_phy_a *)0)) { return (-12); } else { } dev->phy.__annonCompField106.a = aphy; err = b43_aphy_init_tssi2dbm_table(dev); if (err != 0) { goto err_free_aphy; } else { } return (0); err_free_aphy: kfree((void const *)aphy); dev->phy.__annonCompField106.a = (struct b43_phy_a *)0; return (err); } } static void b43_aphy_op_prepare_structs(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_a *aphy ; void const *tssi2dbm ; int tgt_idle_tssi ; { phy = & dev->phy; aphy = phy->__annonCompField106.a; tssi2dbm = (void const *)aphy->tssi2dbm; tgt_idle_tssi = aphy->tgt_idle_tssi; memset((void *)aphy, 0, 24UL); aphy->tssi2dbm = (s8 const *)tssi2dbm; aphy->tgt_idle_tssi = tgt_idle_tssi; return; } } static void b43_aphy_op_free(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_a *aphy ; { phy = & dev->phy; aphy = phy->__annonCompField106.a; kfree((void const *)aphy->tssi2dbm); aphy->tssi2dbm = (s8 const *)0; kfree((void const *)aphy); dev->phy.__annonCompField106.a = (struct b43_phy_a *)0; return; } } static int b43_aphy_op_init(struct b43_wldev *dev ) { { b43_phy_inita(dev); return (0); } } __inline static u16 adjust_phyreg(struct b43_wldev *dev , u16 offset ) { { if (((int )offset & 3072) == 1024) { offset = (unsigned int )offset & 62463U; offset = offset; } else { } if (((int )offset & 3072) == 2048) { b43err(dev->wl, "Invalid EXT-G PHY access at 0x%04X on A-PHY\n", (int )offset); dump_stack(); } else { } if (((int )offset & 3072) == 3072) { b43err(dev->wl, "Invalid N-BMODE PHY access at 0x%04X on A-PHY\n", (int )offset); dump_stack(); } else { } return (offset); } } static u16 b43_aphy_op_read(struct b43_wldev *dev , u16 reg ) { u16 tmp ; { reg = adjust_phyreg(dev, (int )reg); b43_write16f(dev, 1020, (int )reg); tmp = b43_read16(dev, 1022); return (tmp); } } static void b43_aphy_op_write(struct b43_wldev *dev , u16 reg , u16 value ) { { reg = adjust_phyreg(dev, (int )reg); b43_write16f(dev, 1020, (int )reg); b43_write16(dev, 1022, (int )value); return; } } static u16 b43_aphy_op_radio_read(struct b43_wldev *dev , u16 reg ) { int __ret_warn_on ; long tmp ; u16 tmp___0 ; { __ret_warn_on = (unsigned int )reg == 1U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_a.c", 461); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); reg = (u16 )((unsigned int )reg | 64U); b43_write16(dev, 1014, (int )reg); tmp___0 = b43_read16(dev, 1018); return (tmp___0); } } static void b43_aphy_op_radio_write(struct b43_wldev *dev , u16 reg , u16 value ) { int __ret_warn_on ; long tmp ; { __ret_warn_on = (unsigned int )reg == 1U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_a.c", 472); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_write16(dev, 1014, (int )reg); b43_write16(dev, 1018, (int )value); return; } } static bool b43_aphy_op_supports_hwpctl(struct b43_wldev *dev ) { { return ((unsigned int )dev->phy.rev > 4U); } } static void b43_aphy_op_software_rfkill(struct b43_wldev *dev , bool blocked ) { struct b43_phy *phy ; { phy = & dev->phy; if (! blocked) { if ((int )phy->radio_on) { return; } else { } b43_radio_write(dev, 4, 192); b43_radio_write(dev, 5, 8); b43_phy_mask(dev, 16, 65527); b43_phy_mask(dev, 17, 65527); b43_radio_init2060(dev); } else { b43_radio_write(dev, 4, 255); b43_radio_write(dev, 5, 251); b43_phy_set(dev, 16, 8); b43_phy_set(dev, 17, 8); } return; } } static int b43_aphy_op_switch_channel(struct b43_wldev *dev , unsigned int new_channel ) { { if (new_channel > 200U) { return (-22); } else { } aphy_channel_switch(dev, new_channel); return (0); } } static unsigned int b43_aphy_op_get_default_chan(struct b43_wldev *dev ) { { return (36U); } } static void b43_aphy_op_set_rx_antenna(struct b43_wldev *dev , int antenna ) { struct b43_phy *phy ; u16 tmp ; int autodiv ; u64 tmp___0 ; u64 tmp___1 ; { phy = & dev->phy; autodiv = 0; if (antenna == 2 || antenna == 3) { autodiv = 1; } else { } tmp___0 = b43_hf_read(dev); b43_hf_write(dev, tmp___0 & 0xfffffffffffffffeULL); b43_phy_maskset(dev, 1025, 65151, autodiv == 0 ? (int )((u16 )antenna) << 7U : 384); if (autodiv != 0) { tmp = b43_phy_read(dev, 1067); if (antenna == 3) { tmp = (unsigned int )tmp & 65279U; } else { tmp = (u16 )((unsigned int )tmp | 256U); } b43_phy_write(dev, 1067, (int )tmp); } else { } if ((unsigned int )phy->rev <= 2U) { b43_phy_maskset(dev, 1067, 65280, 36); } else { b43_phy_set(dev, 1121, 16); if ((unsigned int )phy->rev == 3U) { b43_phy_write(dev, 1171, 29); b43_phy_write(dev, 1063, 8); } else { b43_phy_write(dev, 1171, 58); b43_phy_maskset(dev, 1063, 65280, 8); } } tmp___1 = b43_hf_read(dev); b43_hf_write(dev, tmp___1 | 1ULL); return; } } static void b43_aphy_op_adjust_txpower(struct b43_wldev *dev ) { { return; } } static enum b43_txpwr_result b43_aphy_op_recalc_txpower(struct b43_wldev *dev , bool ignore_tssi ) { { return (1); } } static void b43_aphy_op_pwork_15sec(struct b43_wldev *dev ) { { return; } } static void b43_aphy_op_pwork_60sec(struct b43_wldev *dev ) { { return; } } void ldv_initialize_b43_phy_operations_31(void) { void *tmp ; { tmp = ldv_init_zalloc(1912UL); b43_phyops_a_group0 = (struct b43_wldev *)tmp; return; } } void ldv_main_exported_31(void) { u16 ldvarg117 ; bool ldvarg114 ; u16 ldvarg119 ; unsigned int ldvarg113 ; u16 ldvarg120 ; bool ldvarg112 ; bool ldvarg111 ; u16 ldvarg115 ; u16 ldvarg118 ; int ldvarg116 ; u16 ldvarg121 ; int tmp ; { ldv_memset((void *)(& ldvarg117), 0, 2UL); ldv_memset((void *)(& ldvarg114), 0, 1UL); ldv_memset((void *)(& ldvarg119), 0, 2UL); ldv_memset((void *)(& ldvarg113), 0, 4UL); ldv_memset((void *)(& ldvarg120), 0, 2UL); ldv_memset((void *)(& ldvarg112), 0, 1UL); ldv_memset((void *)(& ldvarg111), 0, 1UL); ldv_memset((void *)(& ldvarg115), 0, 2UL); ldv_memset((void *)(& ldvarg118), 0, 2UL); ldv_memset((void *)(& ldvarg116), 0, 4UL); ldv_memset((void *)(& ldvarg121), 0, 2UL); tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ; if (ldv_state_variable_31 == 1) { b43_aphy_op_prepare_structs(b43_phyops_a_group0); ldv_state_variable_31 = 1; } else { } goto ldv_54182; case 1: ; if (ldv_state_variable_31 == 1) { b43_aphy_op_read(b43_phyops_a_group0, (int )ldvarg121); ldv_state_variable_31 = 1; } else { } goto ldv_54182; case 2: ; if (ldv_state_variable_31 == 1) { b43_aphy_op_allocate(b43_phyops_a_group0); ldv_state_variable_31 = 1; } else { } goto ldv_54182; case 3: ; if (ldv_state_variable_31 == 1) { b43_aphy_op_get_default_chan(b43_phyops_a_group0); ldv_state_variable_31 = 1; } else { } goto ldv_54182; case 4: ; if (ldv_state_variable_31 == 1) { b43_aphy_op_write(b43_phyops_a_group0, (int )ldvarg120, (int )ldvarg119); ldv_state_variable_31 = 1; } else { } goto ldv_54182; case 5: ; if (ldv_state_variable_31 == 1) { b43_aphy_op_pwork_15sec(b43_phyops_a_group0); ldv_state_variable_31 = 1; } else { } goto ldv_54182; case 6: ; if (ldv_state_variable_31 == 1) { b43_aphy_op_radio_write(b43_phyops_a_group0, (int )ldvarg118, (int )ldvarg117); ldv_state_variable_31 = 1; } else { } goto ldv_54182; case 7: ; if (ldv_state_variable_31 == 1) { b43_aphy_op_set_rx_antenna(b43_phyops_a_group0, ldvarg116); ldv_state_variable_31 = 1; } else { } goto ldv_54182; case 8: ; if (ldv_state_variable_31 == 1) { b43_aphy_op_radio_read(b43_phyops_a_group0, (int )ldvarg115); ldv_state_variable_31 = 1; } else { } goto ldv_54182; case 9: ; if (ldv_state_variable_31 == 1) { b43_aphy_op_supports_hwpctl(b43_phyops_a_group0); ldv_state_variable_31 = 1; } else { } goto ldv_54182; case 10: ; if (ldv_state_variable_31 == 1) { b43_aphy_op_adjust_txpower(b43_phyops_a_group0); ldv_state_variable_31 = 1; } else { } goto ldv_54182; case 11: ; if (ldv_state_variable_31 == 1) { b43_aphy_op_software_rfkill(b43_phyops_a_group0, (int )ldvarg114); ldv_state_variable_31 = 1; } else { } goto ldv_54182; case 12: ; if (ldv_state_variable_31 == 1) { b43_aphy_op_free(b43_phyops_a_group0); ldv_state_variable_31 = 1; } else { } goto ldv_54182; case 13: ; if (ldv_state_variable_31 == 1) { b43_aphy_op_switch_channel(b43_phyops_a_group0, ldvarg113); ldv_state_variable_31 = 1; } else { } goto ldv_54182; case 14: ; if (ldv_state_variable_31 == 1) { b43_aphy_op_recalc_txpower(b43_phyops_a_group0, (int )ldvarg112); ldv_state_variable_31 = 1; } else { } goto ldv_54182; case 15: ; if (ldv_state_variable_31 == 1) { b43_aphy_op_init(b43_phyops_a_group0); ldv_state_variable_31 = 1; } else { } goto ldv_54182; case 16: ; if (ldv_state_variable_31 == 1) { b43_aphy_op_pwork_60sec(b43_phyops_a_group0); ldv_state_variable_31 = 1; } else { } goto ldv_54182; case 17: ; if (ldv_state_variable_31 == 1) { b43_phyop_switch_analog_generic(b43_phyops_a_group0, (int )ldvarg111); ldv_state_variable_31 = 1; } else { } goto ldv_54182; default: ldv_stop(); } ldv_54182: ; return; } } bool ldv_queue_work_on_65(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_66(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_67(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_68(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_69(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_70(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; extern void *__memmove(void * , void const * , size_t ) ; bool ldv_queue_work_on_81(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_83(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_82(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_85(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_84(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_86(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; bool b43_has_hardware_pctl(struct b43_wldev *dev ) ; void b43_radio_lock(struct b43_wldev *dev ) ; void b43_radio_unlock(struct b43_wldev *dev ) ; void b43_phy_lock(struct b43_wldev *dev ) ; void b43_phy_unlock(struct b43_wldev *dev ) ; int b43_phy_shm_tssi_read(struct b43_wldev *dev , u16 shm_offset ) ; u16 b43_ofdmtab_read16(struct b43_wldev *dev , u16 table , u16 offset ) ; void b43_gphy_set_baseband_attenuation(struct b43_wldev *dev , u16 baseband_attenuation ) ; void b43_gphy_channel_switch(struct b43_wldev *dev , unsigned int channel , bool synthetic_pu_workaround ) ; struct b43_phy_operations const b43_phyops_g ; void b43_lo_g_adjust(struct b43_wldev *dev ) ; void b43_gphy_dc_lt_init(struct b43_wldev *dev , bool update_all ) ; void b43_lo_g_maintanance_work(struct b43_wldev *dev ) ; void b43_lo_g_cleanup(struct b43_wldev *dev ) ; void b43_lo_g_init(struct b43_wldev *dev ) ; extern u8 const byte_rev_table[256U] ; __inline static u8 __bitrev8(u8 byte ) { { return ((u8 )byte_rev_table[(int )byte]); } } static s8 const b43_tssi2dbm_g_table[64U] = { 77, 77, 77, 76, 76, 76, 75, 75, 74, 74, 73, 73, 73, 72, 72, 71, 71, 70, 70, 69, 68, 68, 67, 67, 66, 65, 65, 64, 63, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 50, 49, 47, 45, 43, 40, 37, 33, 28, 22, 14, 5, -7, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20}; static u8 const b43_radio_channel_codes_bg[14U] = { 12U, 17U, 22U, 27U, 32U, 37U, 42U, 47U, 52U, 57U, 62U, 67U, 72U, 84U}; static void b43_calc_nrssi_threshold(struct b43_wldev *dev ) ; __inline static u16 channel2freq_bg(u8 channel ) { int __ret_warn_on ; long tmp ; { __ret_warn_on = (unsigned int )channel == 0U || (unsigned int )channel > 14U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 75); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return ((u16 )b43_radio_channel_codes_bg[(int )channel + -1]); } } static void generate_rfatt_list(struct b43_wldev *dev , struct b43_rfatt_list *list ) { struct b43_phy *phy ; struct b43_rfatt rfatt_0[14U] ; struct b43_rfatt rfatt_1[7U] ; struct b43_rfatt rfatt_2[7U] ; bool tmp ; int tmp___0 ; { phy = & dev->phy; rfatt_0[0].att = 3U; rfatt_0[0].with_padmix = 0; rfatt_0[1].att = 1U; rfatt_0[1].with_padmix = 0; rfatt_0[2].att = 5U; rfatt_0[2].with_padmix = 0; rfatt_0[3].att = 7U; rfatt_0[3].with_padmix = 0; rfatt_0[4].att = 9U; rfatt_0[4].with_padmix = 0; rfatt_0[5].att = 2U; rfatt_0[5].with_padmix = 0; rfatt_0[6].att = 0U; rfatt_0[6].with_padmix = 0; rfatt_0[7].att = 4U; rfatt_0[7].with_padmix = 0; rfatt_0[8].att = 6U; rfatt_0[8].with_padmix = 0; rfatt_0[9].att = 8U; rfatt_0[9].with_padmix = 0; rfatt_0[10].att = 1U; rfatt_0[10].with_padmix = 1; rfatt_0[11].att = 2U; rfatt_0[11].with_padmix = 1; rfatt_0[12].att = 3U; rfatt_0[12].with_padmix = 1; rfatt_0[13].att = 4U; rfatt_0[13].with_padmix = 1; rfatt_1[0].att = 2U; rfatt_1[0].with_padmix = 1; rfatt_1[1].att = 4U; rfatt_1[1].with_padmix = 1; rfatt_1[2].att = 6U; rfatt_1[2].with_padmix = 1; rfatt_1[3].att = 8U; rfatt_1[3].with_padmix = 1; rfatt_1[4].att = 10U; rfatt_1[4].with_padmix = 1; rfatt_1[5].att = 12U; rfatt_1[5].with_padmix = 1; rfatt_1[6].att = 14U; rfatt_1[6].with_padmix = 1; rfatt_2[0].att = 0U; rfatt_2[0].with_padmix = 1; rfatt_2[1].att = 2U; rfatt_2[1].with_padmix = 1; rfatt_2[2].att = 4U; rfatt_2[2].with_padmix = 1; rfatt_2[3].att = 6U; rfatt_2[3].with_padmix = 1; rfatt_2[4].att = 8U; rfatt_2[4].with_padmix = 1; rfatt_2[5].att = 9U; rfatt_2[5].with_padmix = 1; rfatt_2[6].att = 9U; rfatt_2[6].with_padmix = 1; tmp = b43_has_hardware_pctl(dev); if (tmp) { tmp___0 = 0; } else { tmp___0 = 1; } if (tmp___0) { list->list = (struct b43_rfatt const *)(& rfatt_0); list->len = 14U; list->min_val = 0U; list->max_val = 9U; return; } else { } if ((unsigned int )phy->radio_ver == 8272U && (unsigned int )phy->radio_rev == 8U) { list->list = (struct b43_rfatt const *)(& rfatt_1); list->len = 7U; list->min_val = 0U; list->max_val = 14U; return; } else { } list->list = (struct b43_rfatt const *)(& rfatt_2); list->len = 7U; list->min_val = 0U; list->max_val = 9U; return; } } static void generate_bbatt_list(struct b43_wldev *dev , struct b43_bbatt_list *list ) { struct b43_bbatt bbatt_0[9U] ; { bbatt_0[0].att = 0U; bbatt_0[1].att = 1U; bbatt_0[2].att = 2U; bbatt_0[3].att = 3U; bbatt_0[4].att = 4U; bbatt_0[5].att = 5U; bbatt_0[6].att = 6U; bbatt_0[7].att = 7U; bbatt_0[8].att = 8U; list->list = (struct b43_bbatt const *)(& bbatt_0); list->len = 9U; list->min_val = 0U; list->max_val = 8U; return; } } static void b43_shm_clear_tssi(struct b43_wldev *dev ) { { b43_shm_write16(dev, 1, 88, 32639); b43_shm_write16(dev, 1, 90, 32639); b43_shm_write16(dev, 1, 112, 32639); b43_shm_write16(dev, 1, 114, 32639); return; } } static void b43_synth_pu_workaround(struct b43_wldev *dev , u8 channel ) { struct b43_phy *phy ; u16 tmp ; u16 tmp___0 ; u16 tmp___1 ; { phy = & dev->phy; __might_sleep("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 180, 0); if ((unsigned int )phy->radio_ver != 8272U || (unsigned int )phy->radio_rev > 5U) { return; } else { } if ((unsigned int )channel <= 10U) { tmp = channel2freq_bg((int )((unsigned int )channel + 4U)); b43_write16(dev, 1008, (int )tmp); } else { tmp___0 = channel2freq_bg(1); b43_write16(dev, 1008, (int )tmp___0); } msleep(1U); tmp___1 = channel2freq_bg((int )channel); b43_write16(dev, 1008, (int )tmp___1); return; } } void b43_gphy_set_baseband_attenuation(struct b43_wldev *dev , u16 baseband_attenuation ) { struct b43_phy *phy ; u16 tmp ; { phy = & dev->phy; if ((unsigned int )phy->analog == 0U) { tmp = b43_read16(dev, 998); b43_write16(dev, 998, (int )((u16 )(((int )((short )tmp) & -16) | (int )((short )baseband_attenuation)))); } else if ((unsigned int )phy->analog > 1U) { b43_phy_maskset(dev, 96, 65475, (int )baseband_attenuation << 2U); } else { b43_phy_maskset(dev, 96, 65415, (int )baseband_attenuation << 3U); } return; } } static void b43_set_txpower_g(struct b43_wldev *dev , struct b43_bbatt const *bbatt , struct b43_rfatt const *rfatt , u8 tx_control ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; struct b43_txpower_lo_control *lo ; u16 bb ; u16 rf ; u16 tx_bias ; u16 tx_magn ; long tmp ; bool tmp___0 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; lo = gphy->lo_control; bb = (u16 )bbatt->att; rf = (u16 )rfatt->att; tx_bias = (u16 )lo->tx_bias; tx_magn = (u16 )lo->tx_magn; tmp = ldv__builtin_expect((unsigned int )tx_bias == 255U, 0L); if (tmp != 0L) { tx_bias = 0U; } else { } gphy->tx_control = tx_control; __memmove((void *)(& gphy->rfatt), (void const *)rfatt, 2UL); gphy->rfatt.with_padmix = ((int )tx_control & 16) != 0; __memmove((void *)(& gphy->bbatt), (void const *)bbatt, 1UL); tmp___0 = b43_debug(dev, 0); if ((int )tmp___0) { b43dbg(dev->wl, "Tuning TX-power to bbatt(%u), rfatt(%u), tx_control(0x%02X), tx_bias(0x%02X), tx_magn(0x%02X)\n", (int )bb, (int )rf, (int )tx_control, (int )tx_bias, (int )tx_magn); } else { } b43_gphy_set_baseband_attenuation(dev, (int )bb); b43_shm_write16(dev, 1, 100, (int )rf); if ((unsigned int )phy->radio_ver == 8272U && (unsigned int )phy->radio_rev == 8U) { b43_radio_write(dev, 67, (int )((u16 )(((int )((short )rf) & 15) | ((int )((short )tx_control) & 112)))); } else { b43_radio_maskset(dev, 67, 65520, (int )rf & 15); b43_radio_maskset(dev, 82, 65423, (int )tx_control & 112); } if (((unsigned int )phy->rev > 1U && (unsigned int )phy->radio_ver == 8272U) && (unsigned int )phy->radio_rev == 8U) { b43_radio_write(dev, 82, (int )tx_magn | (int )tx_bias); } else { b43_radio_maskset(dev, 82, 65520, (int )tx_bias & 15); } b43_lo_g_adjust(dev); return; } } static void b43_gphy_tssi_power_lt_init(struct b43_wldev *dev ) { struct b43_phy_g *gphy ; int i ; u16 value ; { gphy = dev->phy.__annonCompField106.g; i = 0; goto ldv_54053; ldv_54052: b43_ofdmtab_write16(dev, 15392, (int )((u16 )i), (int )((u16 )*(gphy->tssi2dbm + (unsigned long )i))); i = i + 1; ldv_54053: ; if (i <= 31) { goto ldv_54052; } else { } i = 32; goto ldv_54056; ldv_54055: b43_ofdmtab_write16(dev, 15360, (int )((unsigned int )((u16 )i) + 65504U), (int )((u16 )*(gphy->tssi2dbm + (unsigned long )i))); i = i + 1; ldv_54056: ; if (i <= 63) { goto ldv_54055; } else { } i = 0; goto ldv_54059; ldv_54058: value = (unsigned short )*(gphy->tssi2dbm + (unsigned long )i); value = (u16 )((int )((short )((int )((unsigned short )*(gphy->tssi2dbm + ((unsigned long )i + 1UL))) << 8)) | (int )((short )value)); b43_phy_write(dev, (int )((unsigned int )((u16 )(i / 2)) + 896U), (int )value); i = i + 2; ldv_54059: ; if (i <= 63) { goto ldv_54058; } else { } return; } } static void b43_gphy_gain_lt_init(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; struct b43_txpower_lo_control *lo ; u16 nr_written ; u16 tmp ; u8 rf ; u8 bb ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; lo = gphy->lo_control; nr_written = 0U; rf = 0U; goto ldv_54075; ldv_54074: bb = 0U; goto ldv_54072; ldv_54071: ; if ((unsigned int )nr_written > 63U) { return; } else { } tmp = (u16 )(lo->bbatt_list.list + (unsigned long )bb)->att; tmp = (int )tmp << 8U; if ((unsigned int )phy->radio_rev == 8U) { tmp = (u16 )((unsigned int )tmp | 80U); } else { tmp = (u16 )((unsigned int )tmp | 64U); } tmp = (int )((u16 )(lo->rfatt_list.list + (unsigned long )rf)->att) | (int )tmp; b43_phy_write(dev, (int )((unsigned int )nr_written + 960U), (int )tmp); nr_written = (u16 )((int )nr_written + 1); bb = (u8 )((int )bb + 1); ldv_54072: ; if ((int )lo->bbatt_list.len > (int )bb) { goto ldv_54071; } else { } rf = (u8 )((int )rf + 1); ldv_54075: ; if ((int )lo->rfatt_list.len > (int )rf) { goto ldv_54074; } else { } return; } } static void b43_set_all_gains(struct b43_wldev *dev , s16 first , s16 second , s16 third ) { struct b43_phy *phy ; u16 i ; u16 start ; u16 end ; u16 tmp ; u16 table ; { phy = & dev->phy; start = 8U; end = 24U; if ((unsigned int )phy->rev <= 1U) { start = 16U; end = 32U; } else { } table = 1024U; if ((unsigned int )phy->rev <= 1U) { table = 20480U; } else { } i = 0U; goto ldv_54090; ldv_54089: b43_ofdmtab_write16(dev, (int )table, (int )i, (int )((u16 )first)); i = (u16 )((int )i + 1); ldv_54090: ; if ((unsigned int )i <= 3U) { goto ldv_54089; } else { } i = start; goto ldv_54093; ldv_54092: b43_ofdmtab_write16(dev, (int )table, (int )i, (int )((u16 )second)); i = (u16 )((int )i + 1); ldv_54093: ; if ((int )i < (int )end) { goto ldv_54092; } else { } if ((int )third != -1) { tmp = (u16 )((int )((short )((int )((unsigned short )third) << 14)) | (int )((short )((int )((unsigned short )third) << 6))); b43_phy_maskset(dev, 1184, 49087, (int )tmp); b43_phy_maskset(dev, 1185, 49087, (int )tmp); b43_phy_maskset(dev, 1186, 49087, (int )tmp); } else { } b43_dummy_transmission(dev, 0, 1); return; } } static void b43_set_original_gains(struct b43_wldev *dev ) { struct b43_phy *phy ; u16 i ; u16 tmp ; u16 table ; u16 start ; u16 end ; { phy = & dev->phy; start = 8U; end = 24U; if ((unsigned int )phy->rev <= 1U) { start = 16U; end = 32U; } else { } table = 1024U; if ((unsigned int )phy->rev <= 1U) { table = 20480U; } else { } i = 0U; goto ldv_54105; ldv_54104: tmp = (unsigned int )i & 65532U; tmp = (u16 )((int )((short )(((int )i & 1) << 1)) | (int )((short )tmp)); tmp = (u16 )((int )((short )(((int )i & 2) >> 1)) | (int )((short )tmp)); b43_ofdmtab_write16(dev, (int )table, (int )i, (int )tmp); i = (u16 )((int )i + 1); ldv_54105: ; if ((unsigned int )i <= 3U) { goto ldv_54104; } else { } i = start; goto ldv_54108; ldv_54107: b43_ofdmtab_write16(dev, (int )table, (int )i, (int )i - (int )start); i = (u16 )((int )i + 1); ldv_54108: ; if ((int )i < (int )end) { goto ldv_54107; } else { } b43_phy_maskset(dev, 1184, 49087, 16448); b43_phy_maskset(dev, 1185, 49087, 16448); b43_phy_maskset(dev, 1186, 49087, 16384); b43_dummy_transmission(dev, 0, 1); return; } } static void b43_nrssi_hw_write(struct b43_wldev *dev , u16 offset , s16 val ) { { b43_phy_write(dev, 2051, (int )offset); b43_phy_write(dev, 2052, (int )((unsigned short )val)); return; } } static s16 b43_nrssi_hw_read(struct b43_wldev *dev , u16 offset ) { u16 val ; { b43_phy_write(dev, 2051, (int )offset); val = b43_phy_read(dev, 2052); return ((s16 )val); } } static void b43_nrssi_hw_update(struct b43_wldev *dev , u16 val ) { u16 i ; s16 tmp ; s16 __min1 ; s16 __max1 ; s16 __max2 ; s16 __min2 ; { i = 0U; goto ldv_54133; ldv_54132: tmp = b43_nrssi_hw_read(dev, (int )i); tmp = (s16 )((int )((unsigned short )tmp) - (int )val); __max1 = tmp; __max2 = -32; __min1 = (s16 )((int )__max1 > (int )__max2 ? __max1 : __max2); __min2 = 31; tmp = (s16 )((int )__min1 < (int )__min2 ? __min1 : __min2); b43_nrssi_hw_write(dev, (int )i, (int )tmp); i = (u16 )((int )i + 1); ldv_54133: ; if ((unsigned int )i <= 63U) { goto ldv_54132; } else { } return; } } static void b43_nrssi_mem_update(struct b43_wldev *dev ) { struct b43_phy_g *gphy ; s16 i ; s16 delta ; s32 tmp ; s32 __min1 ; s32 __max1 ; s32 __max2 ; s32 __min2 ; { gphy = dev->phy.__annonCompField106.g; delta = (s16 )(31U - (unsigned int )((unsigned short )gphy->nrssi[0])); i = 0; goto ldv_54149; ldv_54148: tmp = ((int )i - (int )delta) * gphy->nrssislope; tmp = tmp / 65536; tmp = tmp + 58; __max1 = tmp; __max2 = 0; __min1 = __max1 > __max2 ? __max1 : __max2; __min2 = 63; tmp = __min1 < __min2 ? __min1 : __min2; gphy->nrssi_lt[(int )i] = (s8 )tmp; i = (s16 )((int )i + 1); ldv_54149: ; if ((int )i <= 63) { goto ldv_54148; } else { } return; } } static void b43_calc_nrssi_offset(struct b43_wldev *dev ) { struct b43_phy *phy ; u16 backup[20U] ; unsigned int tmp ; s16 v47F ; u16 i ; u16 saved ; u16 tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; u16 tmp___3 ; u16 tmp___4 ; { phy = & dev->phy; backup[0] = 0U; tmp = 1U; while (1) { if (tmp >= 20U) { break; } else { } backup[tmp] = (unsigned short)0; tmp = tmp + 1U; } saved = 65535U; backup[0] = b43_phy_read(dev, 1); backup[1] = b43_phy_read(dev, 2065); backup[2] = b43_phy_read(dev, 2066); if ((unsigned int )phy->rev != 1U) { backup[3] = b43_phy_read(dev, 2068); backup[4] = b43_phy_read(dev, 2069); } else { } backup[5] = b43_phy_read(dev, 90); backup[6] = b43_phy_read(dev, 89); backup[7] = b43_phy_read(dev, 88); backup[8] = b43_phy_read(dev, 10); backup[9] = b43_phy_read(dev, 3); backup[10] = b43_radio_read(dev, 122); backup[11] = b43_radio_read(dev, 67); b43_phy_mask(dev, 1065, 32767); b43_phy_maskset(dev, 1, 16383, 16384); b43_phy_set(dev, 2065, 12); b43_phy_maskset(dev, 2066, 65523, 4); b43_phy_mask(dev, 2050, 65532); if ((unsigned int )phy->rev > 5U) { backup[12] = b43_phy_read(dev, 46); backup[13] = b43_phy_read(dev, 47); backup[14] = b43_phy_read(dev, 2063); backup[15] = b43_phy_read(dev, 2064); backup[16] = b43_phy_read(dev, 2049); backup[17] = b43_phy_read(dev, 96); backup[18] = b43_phy_read(dev, 20); backup[19] = b43_phy_read(dev, 1144); b43_phy_write(dev, 46, 0); b43_phy_write(dev, 47, 0); b43_phy_write(dev, 2063, 0); b43_phy_write(dev, 2064, 0); b43_phy_set(dev, 1144, 256); b43_phy_set(dev, 2049, 64); b43_phy_set(dev, 96, 64); b43_phy_set(dev, 20, 512); } else { } b43_radio_set(dev, 122, 112); b43_radio_set(dev, 122, 128); __const_udelay(128850UL); tmp___0 = b43_phy_read(dev, 1151); v47F = (int )((short )((int )tmp___0 >> 8)) & 63; if ((int )v47F > 31) { v47F = (s16 )((unsigned int )((unsigned short )v47F) + 65472U); } else { } if ((int )v47F == 31) { i = 7U; goto ldv_54160; ldv_54159: b43_radio_write(dev, 123, (int )i); __const_udelay(85900UL); tmp___1 = b43_phy_read(dev, 1151); v47F = (int )((short )((int )tmp___1 >> 8)) & 63; if ((int )v47F > 31) { v47F = (s16 )((unsigned int )((unsigned short )v47F) + 65472U); } else { } if ((int )v47F <= 30 && (unsigned int )saved == 65535U) { saved = i; } else { } i = (u16 )((int )i - 1); ldv_54160: ; if ((unsigned int )i > 3U) { goto ldv_54159; } else { } if ((unsigned int )saved == 65535U) { saved = 4U; } else { } } else { b43_radio_mask(dev, 122, 127); if ((unsigned int )phy->rev != 1U) { b43_phy_set(dev, 2068, 1); b43_phy_mask(dev, 2069, 65534); } else { } b43_phy_set(dev, 2065, 12); b43_phy_set(dev, 2066, 12); b43_phy_set(dev, 2065, 48); b43_phy_set(dev, 2066, 48); b43_phy_write(dev, 90, 1152); b43_phy_write(dev, 89, 2064); b43_phy_write(dev, 88, 13); if ((unsigned int )phy->rev == 0U) { b43_phy_write(dev, 3, 290); } else { b43_phy_set(dev, 10, 8192); } if ((unsigned int )phy->rev != 1U) { b43_phy_set(dev, 2068, 4); b43_phy_mask(dev, 2069, 65531); } else { } b43_phy_maskset(dev, 3, 65439, 64); b43_radio_set(dev, 122, 15); b43_set_all_gains(dev, 3, 0, 1); b43_radio_maskset(dev, 67, 240, 15); __const_udelay(128850UL); tmp___2 = b43_phy_read(dev, 1151); v47F = (int )((short )((int )tmp___2 >> 8)) & 63; if ((int )v47F > 31) { v47F = (s16 )((unsigned int )((unsigned short )v47F) + 65472U); } else { } if ((int )v47F == -32) { i = 0U; goto ldv_54163; ldv_54162: b43_radio_write(dev, 123, (int )i); __const_udelay(85900UL); tmp___3 = b43_phy_read(dev, 1151); v47F = (int )((short )((int )tmp___3 >> 8)) & 63; if ((int )v47F > 31) { v47F = (s16 )((unsigned int )((unsigned short )v47F) + 65472U); } else { } if ((int )v47F >= -30 && (unsigned int )saved == 65535U) { saved = i; } else { } i = (u16 )((int )i + 1); ldv_54163: ; if ((unsigned int )i <= 3U) { goto ldv_54162; } else { } if ((unsigned int )saved == 65535U) { saved = 3U; } else { } } else { saved = 0U; } } b43_radio_write(dev, 123, (int )saved); if ((unsigned int )phy->rev > 5U) { b43_phy_write(dev, 46, (int )backup[12]); b43_phy_write(dev, 47, (int )backup[13]); b43_phy_write(dev, 2063, (int )backup[14]); b43_phy_write(dev, 2064, (int )backup[15]); } else { } if ((unsigned int )phy->rev != 1U) { b43_phy_write(dev, 2068, (int )backup[3]); b43_phy_write(dev, 2069, (int )backup[4]); } else { } b43_phy_write(dev, 90, (int )backup[5]); b43_phy_write(dev, 89, (int )backup[6]); b43_phy_write(dev, 88, (int )backup[7]); b43_phy_write(dev, 10, (int )backup[8]); b43_phy_write(dev, 3, (int )backup[9]); b43_radio_write(dev, 67, (int )backup[11]); b43_radio_write(dev, 122, (int )backup[10]); tmp___4 = b43_phy_read(dev, 2050); b43_phy_write(dev, 2050, (int )((unsigned int )tmp___4 | 3U)); b43_phy_set(dev, 1065, 32768); b43_set_original_gains(dev); if ((unsigned int )phy->rev > 5U) { b43_phy_write(dev, 2049, (int )backup[16]); b43_phy_write(dev, 96, (int )backup[17]); b43_phy_write(dev, 20, (int )backup[18]); b43_phy_write(dev, 1144, (int )backup[19]); } else { } b43_phy_write(dev, 1, (int )backup[0]); b43_phy_write(dev, 2066, (int )backup[2]); b43_phy_write(dev, 2065, (int )backup[1]); return; } } static void b43_calc_nrssi_slope(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; u16 backup[18U] ; unsigned int tmp ; u16 tmp___0 ; s16 nrssi0 ; s16 nrssi1 ; int __ret_warn_on ; long tmp___1 ; u16 tmp___2 ; u16 tmp___3 ; u16 tmp___4 ; u16 tmp___5 ; u16 tmp___6 ; u16 tmp___7 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; backup[0] = 0U; tmp = 1U; while (1) { if (tmp >= 18U) { break; } else { } backup[tmp] = (unsigned short)0; tmp = tmp + 1U; } __ret_warn_on = (unsigned int )phy->type != 2U; tmp___1 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 576); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if ((unsigned int )phy->radio_rev > 8U) { return; } else { } if ((unsigned int )phy->radio_rev == 8U) { b43_calc_nrssi_offset(dev); } else { } b43_phy_mask(dev, 1065, 32767); b43_phy_mask(dev, 2050, 65532); backup[7] = b43_read16(dev, 994); tmp___2 = b43_read16(dev, 994); b43_write16(dev, 994, (int )((unsigned int )tmp___2 | 32768U)); backup[0] = b43_radio_read(dev, 122); backup[1] = b43_radio_read(dev, 82); backup[2] = b43_radio_read(dev, 67); backup[3] = b43_phy_read(dev, 21); backup[4] = b43_phy_read(dev, 90); backup[5] = b43_phy_read(dev, 89); backup[6] = b43_phy_read(dev, 88); backup[8] = b43_read16(dev, 998); backup[9] = b43_read16(dev, 1012); if ((unsigned int )phy->rev > 2U) { backup[10] = b43_phy_read(dev, 46); backup[11] = b43_phy_read(dev, 47); backup[12] = b43_phy_read(dev, 2063); backup[13] = b43_phy_read(dev, 2064); backup[14] = b43_phy_read(dev, 2049); backup[15] = b43_phy_read(dev, 96); backup[16] = b43_phy_read(dev, 20); backup[17] = b43_phy_read(dev, 1144); b43_phy_write(dev, 46, 0); b43_phy_write(dev, 2064, 0); switch ((int )phy->rev) { case 4: ; case 6: ; case 7: b43_phy_set(dev, 1144, 256); b43_phy_set(dev, 2049, 64); goto ldv_54179; case 3: ; case 5: b43_phy_mask(dev, 2049, 65471); goto ldv_54179; } ldv_54179: b43_phy_set(dev, 96, 64); b43_phy_set(dev, 20, 512); } else { } b43_radio_set(dev, 122, 112); b43_set_all_gains(dev, 0, 8, 0); b43_radio_mask(dev, 122, 247); if ((unsigned int )phy->rev > 1U) { b43_phy_maskset(dev, 2065, 65487, 48); b43_phy_maskset(dev, 2066, 65487, 16); } else { } b43_radio_set(dev, 122, 128); __const_udelay(85900UL); tmp___3 = b43_phy_read(dev, 1151); nrssi0 = (int )((short )((int )tmp___3 >> 8)) & 63; if ((int )nrssi0 > 31) { nrssi0 = (s16 )((unsigned int )((unsigned short )nrssi0) + 65472U); } else { } b43_radio_mask(dev, 122, 127); if ((unsigned int )phy->rev > 1U) { b43_phy_maskset(dev, 3, 65439, 64); } else { } tmp___4 = b43_read16(dev, 1012); b43_write16(dev, 1012, (int )((unsigned int )tmp___4 | 8192U)); b43_radio_set(dev, 122, 15); b43_phy_write(dev, 21, 62256); if ((unsigned int )phy->rev > 1U) { b43_phy_maskset(dev, 2066, 65487, 32); b43_phy_maskset(dev, 2065, 65487, 32); } else { } b43_set_all_gains(dev, 3, 0, 1); if ((unsigned int )phy->radio_rev == 8U) { b43_radio_write(dev, 67, 31); } else { tmp___5 = b43_radio_read(dev, 82); tmp___0 = (unsigned int )tmp___5 & 65295U; b43_radio_write(dev, 82, (int )((unsigned int )tmp___0 | 96U)); tmp___6 = b43_radio_read(dev, 67); tmp___0 = (unsigned int )tmp___6 & 65520U; b43_radio_write(dev, 67, (int )((unsigned int )tmp___0 | 9U)); } b43_phy_write(dev, 90, 1152); b43_phy_write(dev, 89, 2064); b43_phy_write(dev, 88, 13); __const_udelay(85900UL); tmp___7 = b43_phy_read(dev, 1151); nrssi1 = (int )((short )((int )tmp___7 >> 8)) & 63; if ((int )nrssi1 > 31) { nrssi1 = (s16 )((unsigned int )((unsigned short )nrssi1) + 65472U); } else { } if ((int )nrssi0 == (int )nrssi1) { gphy->nrssislope = 65536; } else { gphy->nrssislope = 4194304 / ((int )nrssi0 - (int )nrssi1); } if ((int )nrssi0 >= -4) { gphy->nrssi[0] = nrssi1; gphy->nrssi[1] = nrssi0; } else { } if ((unsigned int )phy->rev > 2U) { b43_phy_write(dev, 46, (int )backup[10]); b43_phy_write(dev, 47, (int )backup[11]); b43_phy_write(dev, 2063, (int )backup[12]); b43_phy_write(dev, 2064, (int )backup[13]); } else { } if ((unsigned int )phy->rev > 1U) { b43_phy_mask(dev, 2066, 65487); b43_phy_mask(dev, 2065, 65487); } else { } b43_radio_write(dev, 122, (int )backup[0]); b43_radio_write(dev, 82, (int )backup[1]); b43_radio_write(dev, 67, (int )backup[2]); b43_write16(dev, 994, (int )backup[7]); b43_write16(dev, 998, (int )backup[8]); b43_write16(dev, 1012, (int )backup[9]); b43_phy_write(dev, 21, (int )backup[3]); b43_phy_write(dev, 90, (int )backup[4]); b43_phy_write(dev, 89, (int )backup[5]); b43_phy_write(dev, 88, (int )backup[6]); b43_synth_pu_workaround(dev, (int )((u8 )phy->channel)); b43_phy_set(dev, 2050, 3); b43_set_original_gains(dev); b43_phy_set(dev, 1065, 32768); if ((unsigned int )phy->rev > 2U) { b43_phy_write(dev, 2049, (int )backup[14]); b43_phy_write(dev, 96, (int )backup[15]); b43_phy_write(dev, 20, (int )backup[16]); b43_phy_write(dev, 1144, (int )backup[17]); } else { } b43_nrssi_mem_update(dev); b43_calc_nrssi_threshold(dev); return; } } static void b43_calc_nrssi_threshold(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; s32 a ; s32 b ; s16 tmp16 ; u16 tmp_u16 ; int __ret_warn_on ; long tmp ; s32 __min1 ; s32 __max1 ; s32 __max2 ; s32 __min2 ; s32 __min1___0 ; s32 __max1___0 ; s32 __max2___0 ; s32 __min2___0 ; u16 tmp___0 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; __ret_warn_on = (unsigned int )phy->type != 2U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 718); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if (! phy->gmode || ((int )((dev->dev)->bus_sprom)->boardflags_lo & 8) == 0) { tmp16 = b43_nrssi_hw_read(dev, 32); if ((int )tmp16 > 31) { tmp16 = (s16 )((unsigned int )((unsigned short )tmp16) + 65472U); } else { } if ((int )tmp16 <= 2) { b43_phy_maskset(dev, 1162, 61440, 2539); } else { b43_phy_maskset(dev, 1162, 61440, 2797); } } else { if (gphy->interfmode == 1) { a = 14; b = 10; } else if (! gphy->aci_wlan_automatic && (int )gphy->aci_enable) { a = 19; b = 18; } else { a = 14; b = 17; } a = ((int )gphy->nrssi[1] - (int )gphy->nrssi[0]) * a; a = ((int )gphy->nrssi[0] << 6) + a; if (a <= 31) { a = a + 31; } else { a = a + 32; } a = a >> 6; __max1 = a; __max2 = -31; __min1 = __max1 > __max2 ? __max1 : __max2; __min2 = 31; a = __min1 < __min2 ? __min1 : __min2; b = ((int )gphy->nrssi[1] - (int )gphy->nrssi[0]) * b; b = ((int )gphy->nrssi[0] << 6) + b; if (b <= 31) { b = b + 31; } else { b = b + 32; } b = b >> 6; __max1___0 = b; __max2___0 = -31; __min1___0 = __max1___0 > __max2___0 ? __max1___0 : __max2___0; __min2___0 = 31; b = __min1___0 < __min2___0 ? __min1___0 : __min2___0; tmp___0 = b43_phy_read(dev, 1162); tmp_u16 = (unsigned int )tmp___0 & 61440U; tmp_u16 = ((unsigned int )((u16 )b) & 63U) | (unsigned int )tmp_u16; tmp_u16 = (((unsigned int )((u16 )a) & 63U) << 6U) | (unsigned int )tmp_u16; b43_phy_write(dev, 1162, (int )tmp_u16); } return; } } static void _stack_save(u32 *_stackptr , size_t *stackidx , u8 id , u16 offset , u16 value ) { u32 *stackptr ; int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; int __ret_warn_on___1 ; long tmp___1 ; { stackptr = _stackptr + *stackidx; __ret_warn_on = ((int )offset & 61440) != 0; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 776); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); __ret_warn_on___0 = ((int )id & 240) != 0; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 777); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); *stackptr = (u32 )offset; *stackptr = *stackptr | ((unsigned int )id << 12); *stackptr = *stackptr | ((unsigned int )value << 16); *stackidx = *stackidx + 1UL; __ret_warn_on___1 = *stackidx > 25UL; tmp___1 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 782); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); return; } } static u16 _stack_restore(u32 *stackptr , u8 id , u16 offset ) { size_t i ; int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; int __ret_warn_on___1 ; long tmp___1 ; { __ret_warn_on = ((int )offset & 61440) != 0; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 789); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); __ret_warn_on___0 = ((int )id & 240) != 0; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 790); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); i = 0UL; goto ldv_54231; ldv_54230: ; if ((*stackptr & 4095U) != (u32 )offset) { goto ldv_54229; } else { } if ((*stackptr & 61440U) >> 12 != (u32 )id) { goto ldv_54229; } else { } return ((u16 )(*stackptr >> 16)); ldv_54229: i = i + 1UL; stackptr = stackptr + 1; ldv_54231: ; if (i <= 25UL) { goto ldv_54230; } else { } __ret_warn_on___1 = 1; tmp___1 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 798); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); return (0U); } } static void b43_radio_interference_mitigation_enable(struct b43_wldev *dev , int mode ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; u16 tmp ; u16 flipped ; size_t stackidx ; u32 *stack ; u16 tmp___0 ; u16 tmp___1 ; int __ret_warn_on ; long tmp___2 ; u8 __x ; u8 tmp___3 ; u8 __x___0 ; u8 tmp___4 ; u16 tmp___5 ; u16 tmp___6 ; u16 tmp___7 ; u16 tmp___8 ; u16 tmp___9 ; u16 tmp___10 ; u16 tmp___11 ; u16 tmp___12 ; u16 tmp___13 ; u16 tmp___14 ; u16 tmp___15 ; u16 tmp___16 ; u16 tmp___17 ; u16 tmp___18 ; u16 tmp___19 ; u16 tmp___20 ; u16 tmp___21 ; u16 tmp___22 ; u16 tmp___23 ; u16 tmp___24 ; u16 tmp___25 ; u16 tmp___26 ; u16 tmp___27 ; u16 tmp___28 ; u16 tmp___29 ; u16 tmp___30 ; u16 tmp___31 ; u16 tmp___32 ; u16 tmp___33 ; u16 tmp___34 ; u16 tmp___35 ; u16 tmp___36 ; u16 tmp___37 ; u16 tmp___38 ; u16 tmp___39 ; u16 tmp___40 ; u16 tmp___41 ; u16 tmp___42 ; u16 tmp___43 ; u16 tmp___44 ; u16 tmp___45 ; u64 tmp___46 ; int __ret_warn_on___0 ; long tmp___47 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; stackidx = 0UL; stack = (u32 *)(& gphy->interfstack); switch (mode) { case 1: ; if ((unsigned int )phy->rev != 1U) { b43_phy_set(dev, 1067, 2048); b43_phy_mask(dev, 1065, 49151); goto ldv_54246; } else { } tmp___0 = b43_radio_read(dev, 120); _stack_save(stack, & stackidx, 2, 120, (int )tmp___0); tmp___1 = b43_radio_read(dev, 120); tmp = (unsigned int )tmp___1 & 30U; __ret_warn_on = (unsigned int )tmp > 15U; tmp___2 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___2 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 855); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); __x = (u8 )tmp; tmp___3 = __bitrev8((int )__x); flipped = (u16 )((int )tmp___3 >> 4); if ((unsigned int )flipped <= 9U && (unsigned int )flipped > 7U) { flipped = 7U; } else if ((unsigned int )flipped > 9U) { flipped = (unsigned int )flipped + 65533U; } else { } __x___0 = (u8 )flipped; tmp___4 = __bitrev8((int )__x___0); flipped = (u16 )((int )((short )(((int )tmp___4 >> 4) << 1)) | 32); b43_radio_write(dev, 120, (int )flipped); b43_calc_nrssi_threshold(dev); tmp___5 = b43_phy_read(dev, 1030); _stack_save(stack, & stackidx, 1, 1030, (int )tmp___5); b43_phy_write(dev, 1030, 32296); b43_phy_set(dev, 1067, 2048); b43_phy_set(dev, 1025, 4096); tmp___6 = b43_phy_read(dev, 1184); _stack_save(stack, & stackidx, 1, 1184, (int )tmp___6); b43_phy_maskset(dev, 1184, 49344, 8); tmp___7 = b43_phy_read(dev, 1185); _stack_save(stack, & stackidx, 1, 1185, (int )tmp___7); b43_phy_maskset(dev, 1185, 49344, 1541); tmp___8 = b43_phy_read(dev, 1186); _stack_save(stack, & stackidx, 1, 1186, (int )tmp___8); b43_phy_maskset(dev, 1186, 49344, 516); tmp___9 = b43_phy_read(dev, 1192); _stack_save(stack, & stackidx, 1, 1192, (int )tmp___9); b43_phy_maskset(dev, 1192, 49344, 2051); tmp___10 = b43_phy_read(dev, 1195); _stack_save(stack, & stackidx, 1, 1195, (int )tmp___10); b43_phy_maskset(dev, 1195, 49344, 1541); tmp___11 = b43_phy_read(dev, 1191); _stack_save(stack, & stackidx, 1, 1191, (int )tmp___11); b43_phy_write(dev, 1191, 2); tmp___12 = b43_phy_read(dev, 1187); _stack_save(stack, & stackidx, 1, 1187, (int )tmp___12); b43_phy_write(dev, 1187, 10362); tmp___13 = b43_phy_read(dev, 1193); _stack_save(stack, & stackidx, 1, 1193, (int )tmp___13); b43_phy_write(dev, 1193, 8231); tmp___14 = b43_phy_read(dev, 1171); _stack_save(stack, & stackidx, 1, 1171, (int )tmp___14); b43_phy_write(dev, 1171, 13045); tmp___15 = b43_phy_read(dev, 1194); _stack_save(stack, & stackidx, 1, 1194, (int )tmp___15); b43_phy_write(dev, 1194, 8231); tmp___16 = b43_phy_read(dev, 1196); _stack_save(stack, & stackidx, 1, 1196, (int )tmp___16); b43_phy_write(dev, 1196, 13045); goto ldv_54246; case 2: tmp___17 = b43_phy_read(dev, 51); if (((int )tmp___17 & 2048) != 0) { goto ldv_54246; } else { } gphy->aci_enable = 1; tmp___18 = b43_phy_read(dev, 1025); _stack_save(stack, & stackidx, 1, 1025, (int )tmp___18); tmp___19 = b43_phy_read(dev, 1065); _stack_save(stack, & stackidx, 1, 1065, (int )tmp___19); if ((unsigned int )phy->rev <= 1U) { tmp___20 = b43_phy_read(dev, 1030); _stack_save(stack, & stackidx, 1, 1030, (int )tmp___20); } else { tmp___21 = b43_phy_read(dev, 1216); _stack_save(stack, & stackidx, 1, 1216, (int )tmp___21); tmp___22 = b43_phy_read(dev, 1217); _stack_save(stack, & stackidx, 1, 1217, (int )tmp___22); } tmp___23 = b43_phy_read(dev, 51); _stack_save(stack, & stackidx, 1, 51, (int )tmp___23); tmp___24 = b43_phy_read(dev, 1191); _stack_save(stack, & stackidx, 1, 1191, (int )tmp___24); tmp___25 = b43_phy_read(dev, 1187); _stack_save(stack, & stackidx, 1, 1187, (int )tmp___25); tmp___26 = b43_phy_read(dev, 1193); _stack_save(stack, & stackidx, 1, 1193, (int )tmp___26); tmp___27 = b43_phy_read(dev, 1194); _stack_save(stack, & stackidx, 1, 1194, (int )tmp___27); tmp___28 = b43_phy_read(dev, 1196); _stack_save(stack, & stackidx, 1, 1196, (int )tmp___28); tmp___29 = b43_phy_read(dev, 1171); _stack_save(stack, & stackidx, 1, 1171, (int )tmp___29); tmp___30 = b43_phy_read(dev, 1185); _stack_save(stack, & stackidx, 1, 1185, (int )tmp___30); tmp___31 = b43_phy_read(dev, 1184); _stack_save(stack, & stackidx, 1, 1184, (int )tmp___31); tmp___32 = b43_phy_read(dev, 1186); _stack_save(stack, & stackidx, 1, 1186, (int )tmp___32); tmp___33 = b43_phy_read(dev, 1162); _stack_save(stack, & stackidx, 1, 1162, (int )tmp___33); tmp___34 = b43_phy_read(dev, 1192); _stack_save(stack, & stackidx, 1, 1192, (int )tmp___34); tmp___35 = b43_phy_read(dev, 1195); _stack_save(stack, & stackidx, 1, 1195, (int )tmp___35); if ((unsigned int )phy->rev == 2U) { tmp___36 = b43_phy_read(dev, 1197); _stack_save(stack, & stackidx, 1, 1197, (int )tmp___36); tmp___37 = b43_phy_read(dev, 1198); _stack_save(stack, & stackidx, 1, 1198, (int )tmp___37); } else if ((unsigned int )phy->rev > 2U) { tmp___38 = b43_phy_read(dev, 1197); _stack_save(stack, & stackidx, 1, 1197, (int )tmp___38); tmp___39 = b43_phy_read(dev, 1045); _stack_save(stack, & stackidx, 1, 1045, (int )tmp___39); tmp___40 = b43_phy_read(dev, 1046); _stack_save(stack, & stackidx, 1, 1046, (int )tmp___40); tmp___41 = b43_phy_read(dev, 1047); _stack_save(stack, & stackidx, 1, 1047, (int )tmp___41); tmp___42 = b43_ofdmtab_read16(dev, 6656, 2); _stack_save(stack, & stackidx, 3, 6658, (int )tmp___42); tmp___43 = b43_ofdmtab_read16(dev, 6656, 3); _stack_save(stack, & stackidx, 3, 6659, (int )tmp___43); } else { } tmp___44 = b43_phy_read(dev, 1067); _stack_save(stack, & stackidx, 1, 1067, (int )tmp___44); tmp___45 = b43_phy_read(dev, 1164); _stack_save(stack, & stackidx, 1, 1164, (int )tmp___45); b43_phy_mask(dev, 1025, 61439); b43_phy_maskset(dev, 1065, 65532, 2); b43_phy_write(dev, 51, 2048); b43_phy_write(dev, 1187, 8231); b43_phy_write(dev, 1193, 7336); b43_phy_write(dev, 1171, 10362); b43_phy_write(dev, 1194, 7336); b43_phy_write(dev, 1196, 10362); b43_phy_maskset(dev, 1184, 65472, 26); b43_phy_write(dev, 1191, 13); if ((unsigned int )phy->rev <= 1U) { b43_phy_write(dev, 1030, 65293); } else if ((unsigned int )phy->rev == 2U) { b43_phy_write(dev, 1216, 65535); b43_phy_write(dev, 1217, 169); } else { b43_phy_write(dev, 1216, 193); b43_phy_write(dev, 1217, 89); } b43_phy_maskset(dev, 1185, 49407, 6144); b43_phy_maskset(dev, 1185, 65472, 21); b43_phy_maskset(dev, 1192, 53247, 4096); b43_phy_maskset(dev, 1192, 61695, 2560); b43_phy_maskset(dev, 1195, 53247, 4096); b43_phy_maskset(dev, 1195, 61695, 2048); b43_phy_maskset(dev, 1195, 65487, 16); b43_phy_maskset(dev, 1195, 65520, 5); b43_phy_maskset(dev, 1192, 65487, 16); b43_phy_maskset(dev, 1192, 65520, 6); b43_phy_maskset(dev, 1186, 61695, 2048); b43_phy_maskset(dev, 1184, 61695, 1280); b43_phy_maskset(dev, 1186, 65520, 11); if ((unsigned int )phy->rev > 2U) { b43_phy_mask(dev, 1162, 32767); b43_phy_maskset(dev, 1045, 32768, 14040); b43_phy_maskset(dev, 1046, 32768, 14040); b43_phy_maskset(dev, 1047, 65024, 365); } else { b43_phy_set(dev, 1162, 4096); b43_phy_maskset(dev, 1162, 40959, 8192); tmp___46 = b43_hf_read(dev); b43_hf_write(dev, tmp___46 | 2048ULL); } if ((unsigned int )phy->rev > 1U) { b43_phy_set(dev, 1067, 2048); } else { } b43_phy_maskset(dev, 1164, 61695, 512); if ((unsigned int )phy->rev == 2U) { b43_phy_maskset(dev, 1198, 65280, 127); b43_phy_maskset(dev, 1197, 255, 4864); } else if ((unsigned int )phy->rev > 5U) { b43_ofdmtab_write16(dev, 6656, 3, 127); b43_ofdmtab_write16(dev, 6656, 2, 127); b43_phy_mask(dev, 1197, 255); } else { } b43_calc_nrssi_slope(dev); goto ldv_54246; default: __ret_warn_on___0 = 1; tmp___47 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___47 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 999); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); } ldv_54246: ; return; } } static void b43_radio_interference_mitigation_disable(struct b43_wldev *dev , int mode ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; u32 *stack ; u16 tmp ; u16 tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; u16 tmp___3 ; u16 tmp___4 ; u16 tmp___5 ; u16 tmp___6 ; u16 tmp___7 ; u16 tmp___8 ; u16 tmp___9 ; u16 tmp___10 ; u16 tmp___11 ; u16 tmp___12 ; u16 tmp___13 ; u16 tmp___14 ; u16 tmp___15 ; u16 tmp___16 ; u16 tmp___17 ; u16 tmp___18 ; u16 tmp___19 ; u16 tmp___20 ; u16 tmp___21 ; u16 tmp___22 ; u16 tmp___23 ; u16 tmp___24 ; u16 tmp___25 ; u16 tmp___26 ; u16 tmp___27 ; u16 tmp___28 ; u16 tmp___29 ; u16 tmp___30 ; u16 tmp___31 ; u16 tmp___32 ; u16 tmp___33 ; u16 tmp___34 ; u16 tmp___35 ; u16 tmp___36 ; u16 tmp___37 ; u16 tmp___38 ; u16 tmp___39 ; u16 tmp___40 ; u64 tmp___41 ; int __ret_warn_on ; long tmp___42 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; stack = (u32 *)(& gphy->interfstack); switch (mode) { case 1: ; if ((unsigned int )phy->rev != 1U) { b43_phy_mask(dev, 1067, 63487); b43_phy_set(dev, 1065, 16384); goto ldv_54269; } else { } tmp = _stack_restore(stack, 2, 120); b43_radio_write(dev, 120, (int )tmp); b43_calc_nrssi_threshold(dev); tmp___0 = _stack_restore(stack, 1, 1030); b43_phy_write(dev, 1030, (int )tmp___0); b43_phy_mask(dev, 1067, 63487); if (! dev->bad_frames_preempt) { b43_phy_mask(dev, 1025, 63487); } else { } b43_phy_set(dev, 1065, 16384); tmp___1 = _stack_restore(stack, 1, 1184); b43_phy_write(dev, 1184, (int )tmp___1); tmp___2 = _stack_restore(stack, 1, 1185); b43_phy_write(dev, 1185, (int )tmp___2); tmp___3 = _stack_restore(stack, 1, 1186); b43_phy_write(dev, 1186, (int )tmp___3); tmp___4 = _stack_restore(stack, 1, 1192); b43_phy_write(dev, 1192, (int )tmp___4); tmp___5 = _stack_restore(stack, 1, 1195); b43_phy_write(dev, 1195, (int )tmp___5); tmp___6 = _stack_restore(stack, 1, 1191); b43_phy_write(dev, 1191, (int )tmp___6); tmp___7 = _stack_restore(stack, 1, 1187); b43_phy_write(dev, 1187, (int )tmp___7); tmp___8 = _stack_restore(stack, 1, 1193); b43_phy_write(dev, 1193, (int )tmp___8); tmp___9 = _stack_restore(stack, 1, 1171); b43_phy_write(dev, 1171, (int )tmp___9); tmp___10 = _stack_restore(stack, 1, 1194); b43_phy_write(dev, 1194, (int )tmp___10); tmp___11 = _stack_restore(stack, 1, 1196); b43_phy_write(dev, 1196, (int )tmp___11); goto ldv_54269; case 2: tmp___12 = b43_phy_read(dev, 51); if (((int )tmp___12 & 2048) == 0) { goto ldv_54269; } else { } gphy->aci_enable = 0; tmp___13 = _stack_restore(stack, 1, 1025); b43_phy_write(dev, 1025, (int )tmp___13); tmp___14 = _stack_restore(stack, 1, 1065); b43_phy_write(dev, 1065, (int )tmp___14); tmp___15 = _stack_restore(stack, 1, 51); b43_phy_write(dev, 51, (int )tmp___15); tmp___16 = _stack_restore(stack, 1, 1187); b43_phy_write(dev, 1187, (int )tmp___16); tmp___17 = _stack_restore(stack, 1, 1193); b43_phy_write(dev, 1193, (int )tmp___17); tmp___18 = _stack_restore(stack, 1, 1171); b43_phy_write(dev, 1171, (int )tmp___18); tmp___19 = _stack_restore(stack, 1, 1194); b43_phy_write(dev, 1194, (int )tmp___19); tmp___20 = _stack_restore(stack, 1, 1196); b43_phy_write(dev, 1196, (int )tmp___20); tmp___21 = _stack_restore(stack, 1, 1184); b43_phy_write(dev, 1184, (int )tmp___21); tmp___22 = _stack_restore(stack, 1, 1191); b43_phy_write(dev, 1191, (int )tmp___22); if ((unsigned int )phy->rev > 1U) { tmp___23 = _stack_restore(stack, 1, 1216); b43_phy_write(dev, 1216, (int )tmp___23); tmp___24 = _stack_restore(stack, 1, 1217); b43_phy_write(dev, 1217, (int )tmp___24); } else { tmp___25 = _stack_restore(stack, 1, 1030); b43_phy_write(dev, 1030, (int )tmp___25); } tmp___26 = _stack_restore(stack, 1, 1185); b43_phy_write(dev, 1185, (int )tmp___26); tmp___27 = _stack_restore(stack, 1, 1195); b43_phy_write(dev, 1195, (int )tmp___27); tmp___28 = _stack_restore(stack, 1, 1192); b43_phy_write(dev, 1192, (int )tmp___28); if ((unsigned int )phy->rev == 2U) { tmp___29 = _stack_restore(stack, 1, 1197); b43_phy_write(dev, 1197, (int )tmp___29); tmp___30 = _stack_restore(stack, 1, 1198); b43_phy_write(dev, 1198, (int )tmp___30); } else if ((unsigned int )phy->rev > 2U) { tmp___31 = _stack_restore(stack, 1, 1197); b43_phy_write(dev, 1197, (int )tmp___31); tmp___32 = _stack_restore(stack, 1, 1045); b43_phy_write(dev, 1045, (int )tmp___32); tmp___33 = _stack_restore(stack, 1, 1046); b43_phy_write(dev, 1046, (int )tmp___33); tmp___34 = _stack_restore(stack, 1, 1047); b43_phy_write(dev, 1047, (int )tmp___34); tmp___35 = _stack_restore(stack, 3, 6658); b43_ofdmtab_write16(dev, 6656, 2, (int )tmp___35); tmp___36 = _stack_restore(stack, 3, 6659); b43_ofdmtab_write16(dev, 6656, 3, (int )tmp___36); } else { } tmp___37 = _stack_restore(stack, 1, 1186); b43_phy_write(dev, 1186, (int )tmp___37); tmp___38 = _stack_restore(stack, 1, 1162); b43_phy_write(dev, 1162, (int )tmp___38); tmp___39 = _stack_restore(stack, 1, 1067); b43_phy_write(dev, 1067, (int )tmp___39); tmp___40 = _stack_restore(stack, 1, 1164); b43_phy_write(dev, 1164, (int )tmp___40); tmp___41 = b43_hf_read(dev); b43_hf_write(dev, tmp___41 & 0xfffffffffffff7ffULL); b43_calc_nrssi_slope(dev); goto ldv_54269; default: __ret_warn_on = 1; tmp___42 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___42 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 1080); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); } ldv_54269: ; return; } } static u16 b43_radio_core_calibration_value(struct b43_wldev *dev ) { u16 reg ; u16 index ; u16 ret ; u8 rcc_table[16U] ; { rcc_table[0] = 2U; rcc_table[1] = 3U; rcc_table[2] = 1U; rcc_table[3] = 15U; rcc_table[4] = 6U; rcc_table[5] = 7U; rcc_table[6] = 5U; rcc_table[7] = 15U; rcc_table[8] = 10U; rcc_table[9] = 11U; rcc_table[10] = 9U; rcc_table[11] = 15U; rcc_table[12] = 14U; rcc_table[13] = 15U; rcc_table[14] = 13U; rcc_table[15] = 15U; reg = b43_radio_read(dev, 96); index = (u16 )(((int )reg & 30) >> 1); ret = (int )((u16 )rcc_table[(int )index]) << 1U; ret = (u16 )(((int )((short )reg) & 1) | (int )((short )ret)); ret = (u16 )((unsigned int )ret | 32U); return (ret); } } static u16 radio2050_rfover_val(struct b43_wldev *dev , u16 phy_register , unsigned int lpd ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; struct ssb_sprom *sprom ; int max_lb_gain ; u16 extlna ; u16 i ; int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; int __ret_warn_on___1 ; long tmp___1 ; int __ret_warn_on___2 ; long tmp___2 ; int __ret_warn_on___3 ; long tmp___3 ; int __ret_warn_on___4 ; long tmp___4 ; int __ret_warn_on___5 ; long tmp___5 ; int __ret_warn_on___6 ; long tmp___6 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; sprom = (dev->dev)->bus_sprom; if (! phy->gmode) { return (0U); } else { } if ((unsigned int )phy->rev > 1U || (int )phy->gmode) { max_lb_gain = (int )gphy->max_lb_gain; if ((unsigned int )phy->radio_rev == 8U) { max_lb_gain = max_lb_gain + 62; } else { max_lb_gain = max_lb_gain + 38; } if (max_lb_gain > 69) { extlna = 12288U; max_lb_gain = max_lb_gain + -70; } else if (max_lb_gain > 57) { extlna = 4096U; max_lb_gain = max_lb_gain + -58; } else if (max_lb_gain > 45) { extlna = 8192U; max_lb_gain = max_lb_gain + -46; } else { extlna = 0U; max_lb_gain = max_lb_gain + -16; } i = 0U; goto ldv_54294; ldv_54293: max_lb_gain = (int )i * -6 + max_lb_gain; if (max_lb_gain <= 5) { goto ldv_54292; } else { } i = (u16 )((int )i + 1); ldv_54294: ; if ((unsigned int )i <= 15U) { goto ldv_54293; } else { } ldv_54292: ; if ((unsigned int )phy->rev <= 6U || ((int )sprom->boardflags_lo & 4096) == 0) { if ((unsigned int )phy_register == 2065U) { return (435U); } else if ((unsigned int )phy_register == 2066U) { extlna = (u16 )((int )((short )((int )i << 8)) | (int )((short )extlna)); switch (lpd) { case 3U: ; return (3986U); case 1U: ; case 5U: ; return ((u16 )((unsigned int )extlna | 146U)); case 4U: ; return ((u16 )((unsigned int )extlna | 147U)); } __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 1166); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); } else { } __ret_warn_on___0 = 1; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 1168); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); } else { if ((unsigned int )phy_register == 2065U) { return (2483U); } else if ((unsigned int )phy_register == 2066U) { if ((unsigned int )extlna != 0U) { extlna = (u16 )((unsigned int )extlna | 32768U); } else { } extlna = (u16 )((int )((short )((int )i << 8)) | (int )((short )extlna)); switch (lpd) { case 3U: ; return (36754U); case 1U: ; return ((u16 )((unsigned int )extlna | 32914U)); case 5U: ; return ((u16 )((unsigned int )extlna | 8338U)); case 4U: ; return ((u16 )((unsigned int )extlna | 8339U)); } __ret_warn_on___1 = 1; tmp___1 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 1186); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); } else { } __ret_warn_on___2 = 1; tmp___2 = ldv__builtin_expect(__ret_warn_on___2 != 0, 0L); if (tmp___2 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 1188); } else { } ldv__builtin_expect(__ret_warn_on___2 != 0, 0L); } } else if ((unsigned int )phy->rev <= 6U || ((int )sprom->boardflags_lo & 4096) == 0) { if ((unsigned int )phy_register == 2065U) { return (435U); } else if ((unsigned int )phy_register == 2066U) { switch (lpd) { case 3U: ; return (4018U); case 1U: ; return (178U); case 5U: ; return (12466U); case 4U: ; return (12467U); } __ret_warn_on___3 = 1; tmp___3 = ldv__builtin_expect(__ret_warn_on___3 != 0, 0L); if (tmp___3 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 1206); } else { } ldv__builtin_expect(__ret_warn_on___3 != 0, 0L); } else { } __ret_warn_on___4 = 1; tmp___4 = ldv__builtin_expect(__ret_warn_on___4 != 0, 0L); if (tmp___4 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 1208); } else { } ldv__builtin_expect(__ret_warn_on___4 != 0, 0L); } else { if ((unsigned int )phy_register == 2065U) { return (2483U); } else if ((unsigned int )phy_register == 2066U) { switch (lpd) { case 3U: ; return (36786U); case 1U: ; return (32946U); case 5U: ; return (8370U); case 4U: ; return (8371U); } __ret_warn_on___5 = 1; tmp___5 = ldv__builtin_expect(__ret_warn_on___5 != 0, 0L); if (tmp___5 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 1223); } else { } ldv__builtin_expect(__ret_warn_on___5 != 0, 0L); } else { } __ret_warn_on___6 = 1; tmp___6 = ldv__builtin_expect(__ret_warn_on___6 != 0, 0L); if (tmp___6 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 1225); } else { } ldv__builtin_expect(__ret_warn_on___6 != 0, 0L); } return (0U); } } static u16 b43_radio_init2050(struct b43_wldev *dev ) { struct b43_phy *phy ; struct init2050_saved_values sav ; u16 rcc ; u16 radio78 ; u16 ret ; u16 i ; u16 j ; u32 tmp1 ; u32 tmp2 ; u16 tmp ; u16 tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; u16 tmp___3 ; u16 tmp___4 ; u16 tmp___5 ; u16 tmp___6 ; u16 tmp___7 ; u16 tmp___8 ; u16 tmp___9 ; u8 __x ; u8 tmp___10 ; u16 tmp___11 ; u16 tmp___12 ; u16 tmp___13 ; u16 tmp___14 ; u16 tmp___15 ; u16 tmp___16 ; { phy = & dev->phy; tmp1 = 0U; tmp2 = 0U; memset((void *)(& sav), 0, 40UL); sav.radio_43 = b43_radio_read(dev, 67); sav.radio_51 = b43_radio_read(dev, 81); sav.radio_52 = b43_radio_read(dev, 82); sav.phy_pgactl = b43_phy_read(dev, 21); sav.phy_cck_5A = b43_phy_read(dev, 90); sav.phy_cck_59 = b43_phy_read(dev, 89); sav.phy_cck_58 = b43_phy_read(dev, 88); if ((unsigned int )phy->type == 1U) { sav.phy_cck_30 = b43_phy_read(dev, 48); sav.reg_3EC = b43_read16(dev, 1004); b43_phy_write(dev, 48, 255); b43_write16(dev, 1004, 16191); } else if ((int )phy->gmode || (unsigned int )phy->rev > 1U) { sav.phy_rfover = b43_phy_read(dev, 2065); sav.phy_rfoverval = b43_phy_read(dev, 2066); sav.phy_analogover = b43_phy_read(dev, 2068); sav.phy_analogoverval = b43_phy_read(dev, 2069); sav.phy_crs0 = b43_phy_read(dev, 1065); sav.phy_classctl = b43_phy_read(dev, 2050); b43_phy_set(dev, 2068, 3); b43_phy_mask(dev, 2069, 65532); b43_phy_mask(dev, 1065, 32767); b43_phy_mask(dev, 2050, 65532); if ((unsigned int )phy->rev > 1U || (int )phy->gmode) { sav.phy_lo_mask = b43_phy_read(dev, 2063); sav.phy_lo_ctl = b43_phy_read(dev, 2064); if ((unsigned int )phy->rev > 2U) { b43_phy_write(dev, 2063, 49184); } else { b43_phy_write(dev, 2063, 32800); } b43_phy_write(dev, 2064, 0); } else { } tmp = radio2050_rfover_val(dev, 2066, 3U); b43_phy_write(dev, 2066, (int )tmp); tmp___0 = radio2050_rfover_val(dev, 2065, 0U); b43_phy_write(dev, 2065, (int )tmp___0); } else { } tmp___1 = b43_read16(dev, 994); b43_write16(dev, 994, (int )((unsigned int )tmp___1 | 32768U)); sav.phy_syncctl = b43_phy_read(dev, 53); b43_phy_mask(dev, 53, 65407); sav.reg_3E6 = b43_read16(dev, 998); sav.reg_3F4 = b43_read16(dev, 1012); if ((unsigned int )phy->analog == 0U) { b43_write16(dev, 998, 290); } else { if ((unsigned int )phy->analog > 1U) { b43_phy_maskset(dev, 3, 65471, 64); } else { } tmp___2 = b43_read16(dev, 1012); b43_write16(dev, 1012, (int )((unsigned int )tmp___2 | 8192U)); } rcc = b43_radio_core_calibration_value(dev); if ((unsigned int )phy->type == 1U) { b43_radio_write(dev, 120, 38); } else { } if ((int )phy->gmode || (unsigned int )phy->rev > 1U) { tmp___3 = radio2050_rfover_val(dev, 2066, 3U); b43_phy_write(dev, 2066, (int )tmp___3); } else { } b43_phy_write(dev, 21, 49071); b43_phy_write(dev, 43, 5123); if ((int )phy->gmode || (unsigned int )phy->rev > 1U) { tmp___4 = radio2050_rfover_val(dev, 2066, 1U); b43_phy_write(dev, 2066, (int )tmp___4); } else { } b43_phy_write(dev, 21, 49056); b43_radio_set(dev, 81, 4); if ((unsigned int )phy->radio_rev == 8U) { b43_radio_write(dev, 67, 31); } else { b43_radio_write(dev, 82, 0); b43_radio_maskset(dev, 67, 65520, 9); } b43_phy_write(dev, 88, 0); i = 0U; goto ldv_54361; ldv_54360: b43_phy_write(dev, 90, 1152); b43_phy_write(dev, 89, 51216); b43_phy_write(dev, 88, 13); if ((int )phy->gmode || (unsigned int )phy->rev > 1U) { tmp___5 = radio2050_rfover_val(dev, 2066, 5U); b43_phy_write(dev, 2066, (int )tmp___5); } else { } b43_phy_write(dev, 21, 44976); __const_udelay(42950UL); if ((int )phy->gmode || (unsigned int )phy->rev > 1U) { tmp___6 = radio2050_rfover_val(dev, 2066, 5U); b43_phy_write(dev, 2066, (int )tmp___6); } else { } b43_phy_write(dev, 21, 61360); __const_udelay(42950UL); if ((int )phy->gmode || (unsigned int )phy->rev > 1U) { tmp___7 = radio2050_rfover_val(dev, 2066, 4U); b43_phy_write(dev, 2066, (int )tmp___7); } else { } b43_phy_write(dev, 21, 65520); __const_udelay(85900UL); tmp___8 = b43_phy_read(dev, 45); tmp1 = (u32 )tmp___8 + tmp1; b43_phy_write(dev, 88, 0); if ((int )phy->gmode || (unsigned int )phy->rev > 1U) { tmp___9 = radio2050_rfover_val(dev, 2066, 5U); b43_phy_write(dev, 2066, (int )tmp___9); } else { } b43_phy_write(dev, 21, 44976); i = (u16 )((int )i + 1); ldv_54361: ; if ((unsigned int )i <= 15U) { goto ldv_54360; } else { } __const_udelay(42950UL); b43_phy_write(dev, 88, 0); tmp1 = tmp1 + 1U; tmp1 = tmp1 >> 9; i = 0U; goto ldv_54372; ldv_54371: __x = (u8 )i; tmp___10 = __bitrev8((int )__x); radio78 = (u16 )((int )((short )(((int )tmp___10 >> 4) << 1)) | 32); b43_radio_write(dev, 120, (int )radio78); __const_udelay(42950UL); j = 0U; goto ldv_54368; ldv_54367: b43_phy_write(dev, 90, 3456); b43_phy_write(dev, 89, 51216); b43_phy_write(dev, 88, 13); if ((int )phy->gmode || (unsigned int )phy->rev > 1U) { tmp___11 = radio2050_rfover_val(dev, 2066, 5U); b43_phy_write(dev, 2066, (int )tmp___11); } else { } b43_phy_write(dev, 21, 44976); __const_udelay(42950UL); if ((int )phy->gmode || (unsigned int )phy->rev > 1U) { tmp___12 = radio2050_rfover_val(dev, 2066, 5U); b43_phy_write(dev, 2066, (int )tmp___12); } else { } b43_phy_write(dev, 21, 61360); __const_udelay(42950UL); if ((int )phy->gmode || (unsigned int )phy->rev > 1U) { tmp___13 = radio2050_rfover_val(dev, 2066, 4U); b43_phy_write(dev, 2066, (int )tmp___13); } else { } b43_phy_write(dev, 21, 65520); __const_udelay(42950UL); tmp___14 = b43_phy_read(dev, 45); tmp2 = (u32 )tmp___14 + tmp2; b43_phy_write(dev, 88, 0); if ((int )phy->gmode || (unsigned int )phy->rev > 1U) { tmp___15 = radio2050_rfover_val(dev, 2066, 5U); b43_phy_write(dev, 2066, (int )tmp___15); } else { } b43_phy_write(dev, 21, 44976); j = (u16 )((int )j + 1); ldv_54368: ; if ((unsigned int )j <= 15U) { goto ldv_54367; } else { } tmp2 = tmp2 + 1U; tmp2 = tmp2 >> 8; if (tmp1 < tmp2) { goto ldv_54370; } else { } i = (u16 )((int )i + 1); ldv_54372: ; if ((unsigned int )i <= 15U) { goto ldv_54371; } else { } ldv_54370: b43_phy_write(dev, 21, (int )sav.phy_pgactl); b43_radio_write(dev, 81, (int )sav.radio_51); b43_radio_write(dev, 82, (int )sav.radio_52); b43_radio_write(dev, 67, (int )sav.radio_43); b43_phy_write(dev, 90, (int )sav.phy_cck_5A); b43_phy_write(dev, 89, (int )sav.phy_cck_59); b43_phy_write(dev, 88, (int )sav.phy_cck_58); b43_write16(dev, 998, (int )sav.reg_3E6); if ((unsigned int )phy->analog != 0U) { b43_write16(dev, 1012, (int )sav.reg_3F4); } else { } b43_phy_write(dev, 53, (int )sav.phy_syncctl); b43_synth_pu_workaround(dev, (int )((u8 )phy->channel)); if ((unsigned int )phy->type == 1U) { b43_phy_write(dev, 48, (int )sav.phy_cck_30); b43_write16(dev, 1004, (int )sav.reg_3EC); } else if ((int )phy->gmode) { tmp___16 = b43_read16(dev, 994); b43_write16(dev, 994, (int )tmp___16 & 32767); b43_phy_write(dev, 2065, (int )sav.phy_rfover); b43_phy_write(dev, 2066, (int )sav.phy_rfoverval); b43_phy_write(dev, 2068, (int )sav.phy_analogover); b43_phy_write(dev, 2069, (int )sav.phy_analogoverval); b43_phy_write(dev, 1065, (int )sav.phy_crs0); b43_phy_write(dev, 2050, (int )sav.phy_classctl); if ((unsigned int )phy->rev > 1U || (int )phy->gmode) { b43_phy_write(dev, 2063, (int )sav.phy_lo_mask); b43_phy_write(dev, 2064, (int )sav.phy_lo_ctl); } else { } } else { } if ((unsigned int )i > 15U) { ret = radio78; } else { ret = rcc; } return (ret); } } static void b43_phy_initb5(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; u16 offset ; u16 value ; u8 old_channel ; u16 tmp ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; if ((unsigned int )phy->analog == 1U) { b43_radio_set(dev, 122, 80); } else { } if ((unsigned int )(dev->dev)->board_vendor != 5348U && (unsigned int )(dev->dev)->board_type != 1046U) { value = 8480U; offset = 168U; goto ldv_54382; ldv_54381: b43_phy_write(dev, (int )offset, (int )value); value = (unsigned int )value + 514U; offset = (u16 )((int )offset + 1); ldv_54382: ; if ((unsigned int )offset <= 198U) { goto ldv_54381; } else { } } else { } b43_phy_maskset(dev, 53, 61695, 1792); if ((unsigned int )phy->radio_ver == 8272U) { b43_phy_write(dev, 56, 1639); } else { } if ((int )phy->gmode || (unsigned int )phy->rev > 1U) { if ((unsigned int )phy->radio_ver == 8272U) { b43_radio_set(dev, 122, 32); b43_radio_set(dev, 81, 4); } else { } b43_write16(dev, 994, 0); b43_phy_set(dev, 2050, 256); b43_phy_set(dev, 1067, 8192); b43_phy_write(dev, 28, 6250); b43_phy_maskset(dev, 19, 255, 6400); b43_phy_maskset(dev, 53, 65472, 100); b43_phy_maskset(dev, 93, 65408, 10); } else { } if ((int )dev->bad_frames_preempt) { b43_phy_set(dev, 1025, 2048); } else { } if ((unsigned int )phy->analog == 1U) { b43_phy_write(dev, 38, 52736); b43_phy_write(dev, 33, 14179); b43_phy_write(dev, 34, 7107); b43_phy_write(dev, 35, 1785); b43_phy_write(dev, 36, 894); } else { b43_phy_write(dev, 38, 52224); } b43_phy_write(dev, 48, 198); b43_write16(dev, 1004, 16162); if ((unsigned int )phy->analog == 1U) { b43_phy_write(dev, 32, 15900); } else { b43_phy_write(dev, 32, 12316); } if ((unsigned int )phy->analog == 0U) { b43_write16(dev, 996, 12288); } else { } old_channel = (u8 )phy->channel; b43_gphy_channel_switch(dev, 7U, 0); if ((unsigned int )phy->radio_ver != 8272U) { b43_radio_write(dev, 117, 128); b43_radio_write(dev, 121, 129); } else { } b43_radio_write(dev, 80, 32); b43_radio_write(dev, 80, 35); if ((unsigned int )phy->radio_ver == 8272U) { b43_radio_write(dev, 80, 32); b43_radio_write(dev, 90, 112); } else { } b43_radio_write(dev, 91, 123); b43_radio_write(dev, 92, 176); b43_radio_set(dev, 122, 7); b43_gphy_channel_switch(dev, (unsigned int )old_channel, 0); b43_phy_write(dev, 20, 128); b43_phy_write(dev, 50, 202); b43_phy_write(dev, 42, 34979); b43_set_txpower_g(dev, (struct b43_bbatt const *)(& gphy->bbatt), (struct b43_rfatt const *)(& gphy->rfatt), (int )gphy->tx_control); if ((unsigned int )phy->radio_ver == 8272U) { b43_radio_write(dev, 93, 13); } else { } tmp = b43_read16(dev, 996); b43_write16(dev, 996, (int )((u16 )(((int )((short )tmp) & -64) | 4))); return; } } static void b43_phy_initb6(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; u16 offset ; u16 val ; u8 old_channel ; u16 tmp ; u64 tmp___0 ; int __ret_warn_on ; long tmp___1 ; u16 tmp___2 ; int __ret_warn_on___0 ; long tmp___3 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; b43_phy_write(dev, 62, 33146); tmp = b43_radio_read(dev, 122); b43_radio_write(dev, 122, (int )((unsigned int )tmp | 88U)); if ((unsigned int )phy->radio_rev == 4U || (unsigned int )phy->radio_rev == 5U) { b43_radio_write(dev, 81, 55); b43_radio_write(dev, 82, 112); b43_radio_write(dev, 83, 179); b43_radio_write(dev, 84, 155); b43_radio_write(dev, 90, 136); b43_radio_write(dev, 91, 136); b43_radio_write(dev, 93, 136); b43_radio_write(dev, 94, 136); b43_radio_write(dev, 125, 136); tmp___0 = b43_hf_read(dev); b43_hf_write(dev, tmp___0 | 512ULL); } else { } __ret_warn_on = (unsigned int )phy->radio_rev == 6U || (unsigned int )phy->radio_rev == 7U; tmp___1 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 1614); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if ((unsigned int )phy->radio_rev == 8U) { b43_radio_write(dev, 81, 0); b43_radio_write(dev, 82, 64); b43_radio_write(dev, 83, 183); b43_radio_write(dev, 84, 152); b43_radio_write(dev, 90, 136); b43_radio_write(dev, 91, 107); b43_radio_write(dev, 92, 15); if ((int )((short )((dev->dev)->bus_sprom)->boardflags_lo) < 0) { b43_radio_write(dev, 93, 250); b43_radio_write(dev, 94, 216); } else { b43_radio_write(dev, 93, 245); b43_radio_write(dev, 94, 184); } b43_radio_write(dev, 115, 3); b43_radio_write(dev, 125, 168); b43_radio_write(dev, 124, 1); b43_radio_write(dev, 126, 8); } else { } val = 7711U; offset = 136U; goto ldv_54395; ldv_54394: b43_phy_write(dev, (int )offset, (int )val); val = (unsigned int )val + 65022U; offset = (u16 )((int )offset + 1); ldv_54395: ; if ((unsigned int )offset <= 151U) { goto ldv_54394; } else { } val = 15935U; offset = 152U; goto ldv_54398; ldv_54397: b43_phy_write(dev, (int )offset, (int )val); val = (unsigned int )val + 65022U; offset = (u16 )((int )offset + 1); ldv_54398: ; if ((unsigned int )offset <= 167U) { goto ldv_54397; } else { } val = 8480U; offset = 168U; goto ldv_54401; ldv_54400: b43_phy_write(dev, (int )offset, (int )val & 16191); val = (unsigned int )val + 514U; offset = (u16 )((int )offset + 1); ldv_54401: ; if ((unsigned int )offset <= 199U) { goto ldv_54400; } else { } if ((unsigned int )phy->type == 2U) { b43_radio_set(dev, 122, 32); b43_radio_set(dev, 81, 4); b43_phy_set(dev, 2050, 256); b43_phy_set(dev, 1067, 8192); b43_phy_write(dev, 91, 0); b43_phy_write(dev, 92, 0); } else { } old_channel = (u8 )phy->channel; if ((unsigned int )old_channel > 7U) { b43_gphy_channel_switch(dev, 1U, 0); } else { b43_gphy_channel_switch(dev, 13U, 0); } b43_radio_write(dev, 80, 32); b43_radio_write(dev, 80, 35); __const_udelay(171800UL); if ((unsigned int )phy->radio_rev <= 5U || (unsigned int )phy->radio_rev == 8U) { tmp___2 = b43_radio_read(dev, 124); b43_radio_write(dev, 124, (int )((unsigned int )tmp___2 | 2U)); b43_radio_write(dev, 80, 32); } else { } if ((unsigned int )phy->radio_rev <= 2U) { b43_radio_write(dev, 80, 32); b43_radio_write(dev, 90, 112); b43_radio_write(dev, 91, 123); b43_radio_write(dev, 92, 176); } else { } b43_radio_maskset(dev, 122, 248, 7); b43_gphy_channel_switch(dev, (unsigned int )old_channel, 0); b43_phy_write(dev, 20, 512); if ((unsigned int )phy->radio_rev > 5U) { b43_phy_write(dev, 42, 35010); } else { b43_phy_write(dev, 42, 35520); } b43_phy_write(dev, 56, 1640); b43_set_txpower_g(dev, (struct b43_bbatt const *)(& gphy->bbatt), (struct b43_rfatt const *)(& gphy->rfatt), (int )gphy->tx_control); if ((unsigned int )phy->radio_rev == 4U || (unsigned int )phy->radio_rev == 5U) { b43_phy_maskset(dev, 93, 65408, 3); } else { } if ((unsigned int )phy->radio_rev <= 2U) { b43_radio_write(dev, 93, 13); } else { } if ((unsigned int )phy->analog == 4U) { b43_write16(dev, 996, 9); b43_phy_mask(dev, 97, 4095); } else { b43_phy_maskset(dev, 2, 65472, 4); } if ((unsigned int )phy->type == 1U) { __ret_warn_on___0 = 1; tmp___3 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___3 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 1702); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); } else if ((unsigned int )phy->type == 2U) { b43_write16(dev, 998, 0); } else { } return; } } static void b43_calc_loopback_gain(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; u16 backup_phy[16U] ; unsigned int tmp ; u16 backup_radio[3U] ; u16 backup_bband ; u16 i ; u16 j ; u16 loop_i_max ; u16 trsw_rx ; u16 loop1_outer_done ; u16 loop1_inner_done ; u16 tmp___0 ; u16 tmp___1 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; backup_phy[0] = 0U; tmp = 1U; while (1) { if (tmp >= 16U) { break; } else { } backup_phy[tmp] = (unsigned short)0; tmp = tmp + 1U; } backup_phy[0] = b43_phy_read(dev, 1065); backup_phy[1] = b43_phy_read(dev, 1); backup_phy[2] = b43_phy_read(dev, 2065); backup_phy[3] = b43_phy_read(dev, 2066); if ((unsigned int )phy->rev != 1U) { backup_phy[4] = b43_phy_read(dev, 2068); backup_phy[5] = b43_phy_read(dev, 2069); } else { } backup_phy[6] = b43_phy_read(dev, 90); backup_phy[7] = b43_phy_read(dev, 89); backup_phy[8] = b43_phy_read(dev, 88); backup_phy[9] = b43_phy_read(dev, 10); backup_phy[10] = b43_phy_read(dev, 3); backup_phy[11] = b43_phy_read(dev, 2063); backup_phy[12] = b43_phy_read(dev, 2064); backup_phy[13] = b43_phy_read(dev, 43); backup_phy[14] = b43_phy_read(dev, 21); backup_phy[15] = b43_phy_read(dev, 45); backup_bband = (u16 )gphy->bbatt.att; backup_radio[0] = b43_radio_read(dev, 82); backup_radio[1] = b43_radio_read(dev, 67); backup_radio[2] = b43_radio_read(dev, 122); b43_phy_mask(dev, 1065, 16383); b43_phy_set(dev, 1, 32768); b43_phy_set(dev, 2065, 2); b43_phy_mask(dev, 2066, 65533); b43_phy_set(dev, 2065, 1); b43_phy_mask(dev, 2066, 65534); if ((unsigned int )phy->rev != 1U) { b43_phy_set(dev, 2068, 1); b43_phy_mask(dev, 2069, 65534); b43_phy_set(dev, 2068, 2); b43_phy_mask(dev, 2069, 65533); } else { } b43_phy_set(dev, 2065, 12); b43_phy_set(dev, 2066, 12); b43_phy_set(dev, 2065, 48); b43_phy_maskset(dev, 2066, 65487, 16); b43_phy_write(dev, 90, 1920); b43_phy_write(dev, 89, 51216); b43_phy_write(dev, 88, 13); b43_phy_set(dev, 10, 8192); if ((unsigned int )phy->rev != 1U) { b43_phy_set(dev, 2068, 4); b43_phy_mask(dev, 2069, 65531); } else { } b43_phy_maskset(dev, 3, 65439, 64); if ((unsigned int )phy->radio_rev == 8U) { b43_radio_write(dev, 67, 15); } else { b43_radio_write(dev, 82, 0); b43_radio_maskset(dev, 67, 65520, 9); } b43_gphy_set_baseband_attenuation(dev, 11); if ((unsigned int )phy->rev > 2U) { b43_phy_write(dev, 2063, 49184); } else { b43_phy_write(dev, 2063, 32800); } b43_phy_write(dev, 2064, 0); b43_phy_maskset(dev, 43, 65472, 1); b43_phy_maskset(dev, 43, 49407, 2048); b43_phy_set(dev, 2065, 256); b43_phy_mask(dev, 2066, 53247); if (((int )((dev->dev)->bus_sprom)->boardflags_lo & 4096) != 0) { if ((unsigned int )phy->rev > 6U) { b43_phy_set(dev, 2065, 2048); b43_phy_set(dev, 2066, 32768); } else { } } else { } b43_radio_mask(dev, 122, 247); j = 0U; loop_i_max = (unsigned int )phy->radio_rev == 8U ? 15U : 9U; i = 0U; goto ldv_54424; ldv_54423: j = 0U; goto ldv_54421; ldv_54420: b43_radio_write(dev, 67, (int )i); b43_phy_maskset(dev, 2066, 61695, (int )j << 8U); b43_phy_maskset(dev, 21, 4095, 40960); b43_phy_set(dev, 21, 61440); __const_udelay(85900UL); tmp___0 = b43_phy_read(dev, 45); if ((unsigned int )tmp___0 > 3579U) { goto exit_loop1; } else { } j = (u16 )((int )j + 1); ldv_54421: ; if ((unsigned int )j <= 15U) { goto ldv_54420; } else { } i = (u16 )((int )i + 1); ldv_54424: ; if ((int )i < (int )loop_i_max) { goto ldv_54423; } else { } exit_loop1: loop1_outer_done = i; loop1_inner_done = j; if ((unsigned int )j > 7U) { b43_phy_set(dev, 2066, 48); trsw_rx = 27U; j = (unsigned int )j + 65528U; goto ldv_54428; ldv_54427: b43_phy_maskset(dev, 2066, 61695, (int )j << 8U); b43_phy_maskset(dev, 21, 4095, 40960); b43_phy_set(dev, 21, 61440); __const_udelay(85900UL); trsw_rx = (unsigned int )trsw_rx + 65533U; tmp___1 = b43_phy_read(dev, 45); if ((unsigned int )tmp___1 > 3579U) { goto exit_loop2; } else { } j = (u16 )((int )j + 1); ldv_54428: ; if ((unsigned int )j <= 15U) { goto ldv_54427; } else { } } else { trsw_rx = 24U; } exit_loop2: ; if ((unsigned int )phy->rev != 1U) { b43_phy_write(dev, 2068, (int )backup_phy[4]); b43_phy_write(dev, 2069, (int )backup_phy[5]); } else { } b43_phy_write(dev, 90, (int )backup_phy[6]); b43_phy_write(dev, 89, (int )backup_phy[7]); b43_phy_write(dev, 88, (int )backup_phy[8]); b43_phy_write(dev, 10, (int )backup_phy[9]); b43_phy_write(dev, 3, (int )backup_phy[10]); b43_phy_write(dev, 2063, (int )backup_phy[11]); b43_phy_write(dev, 2064, (int )backup_phy[12]); b43_phy_write(dev, 43, (int )backup_phy[13]); b43_phy_write(dev, 21, (int )backup_phy[14]); b43_gphy_set_baseband_attenuation(dev, (int )backup_bband); b43_radio_write(dev, 82, (int )backup_radio[0]); b43_radio_write(dev, 67, (int )backup_radio[1]); b43_radio_write(dev, 122, (int )backup_radio[2]); b43_phy_write(dev, 2065, (int )((unsigned int )backup_phy[2] | 3U)); __const_udelay(42950UL); b43_phy_write(dev, 2065, (int )backup_phy[2]); b43_phy_write(dev, 2066, (int )backup_phy[3]); b43_phy_write(dev, 1065, (int )backup_phy[0]); b43_phy_write(dev, 1, (int )backup_phy[1]); gphy->max_lb_gain = (s16 )(((unsigned int )loop1_inner_done * 6U + (unsigned int )loop1_outer_done * 65532U) + 65525U); gphy->trsw_rx_gain = (s16 )((unsigned int )trsw_rx * 2U); return; } } static void b43_hardware_pctl_early_init(struct b43_wldev *dev ) { struct b43_phy *phy ; bool tmp ; int tmp___0 ; { phy = & dev->phy; tmp = b43_has_hardware_pctl(dev); if (tmp) { tmp___0 = 0; } else { tmp___0 = 1; } if (tmp___0) { b43_phy_write(dev, 1146, 49425); return; } else { } b43_phy_mask(dev, 54, 65279); b43_phy_write(dev, 47, 514); b43_phy_set(dev, 1148, 2); b43_phy_set(dev, 1146, 61440); if ((unsigned int )phy->radio_ver == 8272U && (unsigned int )phy->radio_rev == 8U) { b43_phy_maskset(dev, 1146, 65295, 16); b43_phy_set(dev, 93, 32768); b43_phy_maskset(dev, 78, 65472, 16); b43_phy_write(dev, 46, 49279); b43_phy_set(dev, 54, 1024); } else { b43_phy_set(dev, 54, 512); b43_phy_set(dev, 54, 1024); b43_phy_mask(dev, 93, 32767); b43_phy_mask(dev, 79, 65534); b43_phy_maskset(dev, 78, 65472, 16); b43_phy_write(dev, 46, 49279); b43_phy_maskset(dev, 1146, 65295, 16); } return; } } static void b43_hardware_pctl_init_gphy(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; u64 tmp ; bool tmp___0 ; int tmp___1 ; int __ret_warn_on ; long tmp___2 ; u64 tmp___3 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; tmp___0 = b43_has_hardware_pctl(dev); if (tmp___0) { tmp___1 = 0; } else { tmp___1 = 1; } if (tmp___1) { tmp = b43_hf_read(dev); b43_hf_write(dev, tmp & 0xffffffffff7fffffULL); return; } else { } b43_phy_maskset(dev, 54, 65472, (int )((u16 )gphy->tgt_idle_tssi) - (int )((u16 )gphy->cur_idle_tssi)); b43_phy_maskset(dev, 1144, 65280, (int )((u16 )gphy->tgt_idle_tssi) - (int )((u16 )gphy->cur_idle_tssi)); b43_gphy_tssi_power_lt_init(dev); b43_gphy_gain_lt_init(dev); b43_phy_mask(dev, 96, 65471); b43_phy_write(dev, 20, 0); __ret_warn_on = (unsigned int )phy->rev <= 5U; tmp___2 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___2 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 1910); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_phy_set(dev, 1144, 2048); b43_phy_mask(dev, 1144, 65279); b43_phy_mask(dev, 2049, 65471); b43_gphy_dc_lt_init(dev, 1); tmp___3 = b43_hf_read(dev); b43_hf_write(dev, tmp___3 | 8388608ULL); return; } } static void b43_phy_init_pctl(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; struct b43_rfatt old_rfatt ; struct b43_bbatt old_bbatt ; u8 old_tx_control ; int __ret_warn_on ; long tmp ; u16 tmp___0 ; struct b43_rfatt rfatt ; struct b43_bbatt bbatt ; u16 tmp___1 ; long ret ; int __x___0 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; old_tx_control = 0U; __ret_warn_on = (unsigned int )phy->type != 2U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 1930); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if ((unsigned int )(dev->dev)->board_vendor == 5348U && (unsigned int )(dev->dev)->board_type == 1046U) { return; } else { } b43_phy_write(dev, 40, 32792); tmp___0 = b43_read16(dev, 998); b43_write16(dev, 998, (int )tmp___0 & 65503); if (! phy->gmode) { return; } else { } b43_hardware_pctl_early_init(dev); if (gphy->cur_idle_tssi == 0) { if ((unsigned int )phy->radio_ver == 8272U && (unsigned int )phy->analog == 0U) { b43_radio_maskset(dev, 118, 247, 132); } else { memcpy((void *)(& old_rfatt), (void const *)(& gphy->rfatt), 2UL); memcpy((void *)(& old_bbatt), (void const *)(& gphy->bbatt), 1UL); old_tx_control = gphy->tx_control; bbatt.att = 11U; if ((unsigned int )phy->radio_rev == 8U) { rfatt.att = 15U; rfatt.with_padmix = 1; } else { rfatt.att = 9U; rfatt.with_padmix = 0; } b43_set_txpower_g(dev, (struct b43_bbatt const *)(& bbatt), (struct b43_rfatt const *)(& rfatt), 0); } b43_dummy_transmission(dev, 0, 1); tmp___1 = b43_phy_read(dev, 41); gphy->cur_idle_tssi = (int )tmp___1; __x___0 = gphy->cur_idle_tssi - gphy->tgt_idle_tssi; ret = (long )(__x___0 < 0 ? - __x___0 : __x___0); if (ret > 19L) { b43dbg(dev->wl, "!WARNING! Idle-TSSI phy->cur_idle_tssi measuring failed. (cur=%d, tgt=%d). Disabling TX power adjustment.\n", gphy->cur_idle_tssi, gphy->tgt_idle_tssi); gphy->cur_idle_tssi = 0; } else { } if ((unsigned int )phy->radio_ver == 8272U && (unsigned int )phy->analog == 0U) { b43_radio_mask(dev, 118, 65403); } else { b43_set_txpower_g(dev, (struct b43_bbatt const *)(& old_bbatt), (struct b43_rfatt const *)(& old_rfatt), (int )old_tx_control); } } else { } b43_hardware_pctl_init_gphy(dev); b43_shm_clear_tssi(dev); return; } } static void b43_phy_initg(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; u16 tmp ; u16 tmp___0 ; int __ret_warn_on ; long tmp___1 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; if ((unsigned int )phy->rev == 1U) { b43_phy_initb5(dev); } else { b43_phy_initb6(dev); } if ((unsigned int )phy->rev > 1U || (int )phy->gmode) { b43_phy_inita(dev); } else { } if ((unsigned int )phy->rev > 1U) { b43_phy_write(dev, 2068, 0); b43_phy_write(dev, 2069, 0); } else { } if ((unsigned int )phy->rev == 2U) { b43_phy_write(dev, 2065, 0); b43_phy_write(dev, 21, 192); } else { } if ((unsigned int )phy->rev > 5U) { b43_phy_write(dev, 2065, 1024); b43_phy_write(dev, 21, 192); } else { } if ((int )phy->gmode || (unsigned int )phy->rev > 1U) { tmp = b43_phy_read(dev, 1024); tmp = (unsigned int )tmp & 255U; if ((unsigned int )tmp == 3U || (unsigned int )tmp == 5U) { b43_phy_write(dev, 1218, 6166); b43_phy_write(dev, 1219, 32774); } else { } if ((unsigned int )tmp == 5U) { b43_phy_maskset(dev, 1228, 255, 7936); } else { } } else { } if (((unsigned int )phy->rev <= 2U && (int )phy->gmode) || (unsigned int )phy->rev > 1U) { b43_phy_write(dev, 1150, 120); } else { } if ((unsigned int )phy->radio_rev == 8U) { b43_phy_set(dev, 2049, 128); b43_phy_set(dev, 1086, 4); } else { } if ((unsigned int )phy->rev > 1U || (int )phy->gmode) { b43_calc_loopback_gain(dev); } else { } if ((unsigned int )phy->radio_rev != 8U) { if ((unsigned int )gphy->initval == 65535U) { gphy->initval = b43_radio_init2050(dev); } else { b43_radio_write(dev, 120, (int )gphy->initval); } } else { } b43_lo_g_init(dev); if (((unsigned int )phy->rev > 1U && (unsigned int )phy->radio_ver == 8272U) && (unsigned int )phy->radio_rev == 8U) { tmp___0 = b43_radio_read(dev, 82); b43_radio_write(dev, 82, (int )((u16 )((((int )((short )tmp___0) & -256) | (int )((short )(gphy->lo_control)->tx_bias)) | (int )((short )(gphy->lo_control)->tx_magn)))); } else { b43_radio_maskset(dev, 82, 65520, (int )(gphy->lo_control)->tx_bias); } if ((unsigned int )phy->rev > 5U) { b43_phy_maskset(dev, 54, 4095, (int )((u16 )(gphy->lo_control)->tx_bias) << 12U); } else { } if (((int )((dev->dev)->bus_sprom)->boardflags_lo & 2) != 0) { b43_phy_write(dev, 46, 32885); } else { b43_phy_write(dev, 46, 32895); } if ((unsigned int )phy->rev <= 1U) { b43_phy_write(dev, 47, 257); } else { b43_phy_write(dev, 47, 514); } if ((int )phy->gmode || (unsigned int )phy->rev > 1U) { b43_lo_g_adjust(dev); b43_phy_write(dev, 2063, 32888); } else { } if (((int )((dev->dev)->bus_sprom)->boardflags_lo & 8) == 0) { b43_nrssi_hw_update(dev, 65535); b43_calc_nrssi_threshold(dev); } else if ((int )phy->gmode || (unsigned int )phy->rev > 1U) { if ((int )gphy->nrssi[0] == -1000) { __ret_warn_on = (int )gphy->nrssi[1] != -1000; tmp___1 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 2078); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_calc_nrssi_slope(dev); } else { b43_calc_nrssi_threshold(dev); } } else { } if ((unsigned int )phy->radio_rev == 8U) { b43_phy_write(dev, 2053, 12848); } else { } b43_phy_init_pctl(dev); if ((unsigned int )(dev->dev)->chip_id == 17158U && (unsigned int )(dev->dev)->chip_pkg == 2U) { b43_phy_mask(dev, 1065, 49151); b43_phy_mask(dev, 1219, 32767); } else { } return; } } void b43_gphy_channel_switch(struct b43_wldev *dev , unsigned int channel , bool synthetic_pu_workaround ) { u16 tmp ; u64 tmp___0 ; u64 tmp___1 ; u16 tmp___2 ; u16 tmp___3 ; { if ((int )synthetic_pu_workaround) { b43_synth_pu_workaround(dev, (int )((u8 )channel)); } else { } tmp = channel2freq_bg((int )((u8 )channel)); b43_write16(dev, 1008, (int )tmp); if (channel == 14U) { if ((unsigned int )((dev->dev)->bus_sprom)->country_code == 5U) { tmp___0 = b43_hf_read(dev); b43_hf_write(dev, tmp___0 & 0xffffffffffffff7fULL); } else { tmp___1 = b43_hf_read(dev); b43_hf_write(dev, tmp___1 | 128ULL); } tmp___2 = b43_read16(dev, 1012); b43_write16(dev, 1012, (int )((unsigned int )tmp___2 | 2048U)); } else { tmp___3 = b43_read16(dev, 1012); b43_write16(dev, 1012, (int )tmp___3 & 63423); } return; } } static void default_baseband_attenuation(struct b43_wldev *dev , struct b43_bbatt *bb ) { struct b43_phy *phy ; { phy = & dev->phy; if ((unsigned int )phy->radio_ver == 8272U && (unsigned int )phy->radio_rev <= 5U) { bb->att = 0U; } else { bb->att = 2U; } return; } } static void default_radio_attenuation(struct b43_wldev *dev , struct b43_rfatt *rf ) { struct b43_bus_dev *bdev ; struct b43_phy *phy ; { bdev = dev->dev; phy = & dev->phy; rf->with_padmix = 0; if ((unsigned int )(dev->dev)->board_vendor == 5348U && (unsigned int )(dev->dev)->board_type == 1057U) { if ((unsigned int )(dev->dev)->board_rev <= 66U) { rf->att = 2U; return; } else if ((unsigned int )(dev->dev)->board_rev <= 80U) { rf->att = 3U; return; } else { } } else { } if ((unsigned int )phy->type == 0U) { rf->att = 96U; return; } else { } switch ((int )phy->radio_ver) { case 8275: ; switch ((int )phy->radio_rev) { case 1: rf->att = 6U; return; } goto ldv_54483; case 8272: ; switch ((int )phy->radio_rev) { case 0: rf->att = 5U; return; case 1: ; if ((unsigned int )phy->type == 2U) { if (((unsigned int )bdev->board_vendor == 5348U && (unsigned int )bdev->board_type == 1057U) && (unsigned int )bdev->board_rev > 29U) { rf->att = 3U; } else if ((unsigned int )bdev->board_vendor == 5348U && (unsigned int )bdev->board_type == 1046U) { rf->att = 3U; } else { rf->att = 1U; } } else if (((unsigned int )bdev->board_vendor == 5348U && (unsigned int )bdev->board_type == 1057U) && (unsigned int )bdev->board_rev > 29U) { rf->att = 7U; } else { rf->att = 6U; } return; case 2: ; if ((unsigned int )phy->type == 2U) { if (((unsigned int )bdev->board_vendor == 5348U && (unsigned int )bdev->board_type == 1057U) && (unsigned int )bdev->board_rev > 29U) { rf->att = 3U; } else if ((unsigned int )bdev->board_vendor == 5348U && (unsigned int )bdev->board_type == 1046U) { rf->att = 5U; } else if ((unsigned int )bdev->chip_id == 17184U) { rf->att = 4U; } else { rf->att = 3U; } } else { rf->att = 6U; } return; case 3: rf->att = 5U; return; case 4: ; case 5: rf->att = 1U; return; case 6: ; case 7: rf->att = 5U; return; case 8: rf->att = 10U; rf->with_padmix = 1; return; case 9: ; default: rf->att = 5U; return; } } ldv_54483: rf->att = 5U; return; } } static u16 default_tx_control(struct b43_wldev *dev ) { struct b43_phy *phy ; { phy = & dev->phy; if ((unsigned int )phy->radio_ver != 8272U) { return (0U); } else { } if ((unsigned int )phy->radio_rev == 1U) { return (48U); } else { } if ((unsigned int )phy->radio_rev <= 5U) { return (32U); } else { } if ((unsigned int )phy->radio_rev == 8U) { return (16U); } else { } return (0U); } } static s32 b43_tssi2dbm_ad(s32 num , s32 den ) { { if (num < 0) { return (num / den); } else { return ((den / 2 + num) / den); } } } static s8 b43_tssi2dbm_entry(s8 *entry , u8 index , s16 pab0 , s16 pab1 , s16 pab2 ) { s32 m1 ; s32 m2 ; s32 f ; s32 q ; s32 delta ; s8 i ; s32 _max1 ; s32 tmp ; int _max2 ; s32 tmp___0 ; long ret ; int __x___0 ; s32 __min1 ; s32 __max1 ; s32 tmp___1 ; s32 __max2 ; s32 __min2 ; { f = 256; i = 0; m1 = b43_tssi2dbm_ad((int )pab0 * 16 + (int )index * (int )pab1, 32); tmp = b43_tssi2dbm_ad((int )index * (int )pab2 + 32768, 256); _max1 = tmp; _max2 = 1; m2 = _max1 > _max2 ? _max1 : _max2; ldv_54563: ; if ((int )i > 15) { return (-22); } else { } tmp___0 = b43_tssi2dbm_ad(m2 * f, 16); q = b43_tssi2dbm_ad((4096 - tmp___0) * f, 2048); __x___0 = q - f; ret = (long )(__x___0 < 0 ? - __x___0 : __x___0); delta = (s32 )ret; f = q; i = (s8 )((int )i + 1); if (delta > 1) { goto ldv_54563; } else { } tmp___1 = b43_tssi2dbm_ad(m1 * f, 8192); __max1 = tmp___1; __max2 = -127; __min1 = __max1 > __max2 ? __max1 : __max2; __min2 = 128; *(entry + (unsigned long )index) = (s8 )(__min1 < __min2 ? __min1 : __min2); return (0); } } u8 *b43_generate_dyn_tssi2dbm_tab(struct b43_wldev *dev , s16 pab0 , s16 pab1 , s16 pab2 ) { unsigned int i ; u8 *tab ; int err ; void *tmp ; s8 tmp___0 ; { tmp = kmalloc(64UL, 208U); tab = (u8 *)tmp; if ((unsigned long )tab == (unsigned long )((u8 *)0U)) { b43err(dev->wl, "Could not allocate memory for tssi2dbm table\n"); return ((u8 *)0U); } else { } i = 0U; goto ldv_54581; ldv_54580: tmp___0 = b43_tssi2dbm_entry((s8 *)tab, (int )((u8 )i), (int )pab0, (int )pab1, (int )pab2); err = (int )tmp___0; if (err != 0) { b43err(dev->wl, "Could not generate tssi2dBm table\n"); kfree((void const *)tab); return ((u8 *)0U); } else { } i = i + 1U; ldv_54581: ; if (i <= 63U) { goto ldv_54580; } else { } return (tab); } } static int b43_gphy_init_tssi2dbm_table(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; s16 pab0 ; s16 pab1 ; s16 pab2 ; int __ret_warn_on ; long tmp ; u8 *tmp___0 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; pab0 = (short )((dev->dev)->bus_sprom)->pa0b0; pab1 = (short )((dev->dev)->bus_sprom)->pa0b1; pab2 = (short )((dev->dev)->bus_sprom)->pa0b2; __ret_warn_on = (unsigned int )(dev->dev)->chip_id == 17153U && (unsigned int )phy->radio_ver != 8272U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 2390); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); gphy->dyn_tssi_tbl = 0; if ((((((int )pab0 != 0 && (int )pab1 != 0) && (int )pab2 != 0) && (int )pab0 != -1) && (int )pab1 != -1) && (int )pab2 != -1) { if ((unsigned int )((dev->dev)->bus_sprom)->itssi_bg != 0U && (unsigned int )((dev->dev)->bus_sprom)->itssi_bg != 255U) { gphy->tgt_idle_tssi = (int )((signed char )((dev->dev)->bus_sprom)->itssi_bg); } else { gphy->tgt_idle_tssi = 62; } tmp___0 = b43_generate_dyn_tssi2dbm_tab(dev, (int )pab0, (int )pab1, (int )pab2); gphy->tssi2dbm = (s8 const *)tmp___0; if ((unsigned long )gphy->tssi2dbm == (unsigned long )((s8 const *)0)) { return (-12); } else { } gphy->dyn_tssi_tbl = 1; } else { gphy->tgt_idle_tssi = 52; gphy->tssi2dbm = (s8 const *)(& b43_tssi2dbm_g_table); } return (0); } } static int b43_gphy_op_allocate(struct b43_wldev *dev ) { struct b43_phy_g *gphy ; struct b43_txpower_lo_control *lo ; int err ; void *tmp ; void *tmp___0 ; { tmp = kzalloc(280UL, 208U); gphy = (struct b43_phy_g *)tmp; if ((unsigned long )gphy == (unsigned long )((struct b43_phy_g *)0)) { err = -12; goto error; } else { } dev->phy.__annonCompField106.g = gphy; tmp___0 = kzalloc(144UL, 208U); lo = (struct b43_txpower_lo_control *)tmp___0; if ((unsigned long )lo == (unsigned long )((struct b43_txpower_lo_control *)0)) { err = -12; goto err_free_gphy; } else { } gphy->lo_control = lo; err = b43_gphy_init_tssi2dbm_table(dev); if (err != 0) { goto err_free_lo; } else { } return (0); err_free_lo: kfree((void const *)lo); err_free_gphy: kfree((void const *)gphy); error: ; return (err); } } static void b43_gphy_op_prepare_structs(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; void const *tssi2dbm ; int tgt_idle_tssi ; struct b43_txpower_lo_control *lo ; unsigned int i ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; tssi2dbm = (void const *)gphy->tssi2dbm; tgt_idle_tssi = gphy->tgt_idle_tssi; lo = gphy->lo_control; memset((void *)gphy, 0, 280UL); gphy->tssi2dbm = (s8 const *)tssi2dbm; gphy->tgt_idle_tssi = tgt_idle_tssi; gphy->lo_control = lo; memset((void *)(& gphy->minlowsig), 255, 4UL); i = 0U; goto ldv_54614; ldv_54613: gphy->nrssi[i] = -1000; i = i + 1U; ldv_54614: ; if (i <= 1U) { goto ldv_54613; } else { } i = 0U; goto ldv_54619; ldv_54618: gphy->nrssi_lt[i] = (s8 )i; i = i + 1U; ldv_54619: ; if (i <= 63U) { goto ldv_54618; } else { } gphy->lofcal = 65535U; gphy->initval = 65535U; gphy->interfmode = 0; gphy->ofdmtab_addr_direction = 0; gphy->average_tssi = 255U; lo->tx_bias = 255U; INIT_LIST_HEAD(& lo->calib_list); return; } } static void b43_gphy_op_free(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; kfree((void const *)gphy->lo_control); if ((int )gphy->dyn_tssi_tbl) { kfree((void const *)gphy->tssi2dbm); } else { } gphy->dyn_tssi_tbl = 0; gphy->tssi2dbm = (s8 const *)0; kfree((void const *)gphy); dev->phy.__annonCompField106.g = (struct b43_phy_g *)0; return; } } static int b43_gphy_op_prepare_hardware(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; struct b43_txpower_lo_control *lo ; int __ret_warn_on ; long tmp ; u16 tmp___0 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; lo = gphy->lo_control; __ret_warn_on = (unsigned int )phy->type != 2U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 2520); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); default_baseband_attenuation(dev, & gphy->bbatt); default_radio_attenuation(dev, & gphy->rfatt); tmp___0 = default_tx_control(dev); gphy->tx_control = (int )((u8 )tmp___0) << 4U; generate_rfatt_list(dev, & lo->rfatt_list); generate_bbatt_list(dev, & lo->bbatt_list); b43_read32(dev, 288); if ((unsigned int )phy->rev == 1U) { phy->gmode = 0; b43_wireless_core_reset(dev, 0); b43_phy_initg(dev); phy->gmode = 1; b43_wireless_core_reset(dev, 1); } else { } return (0); } } static int b43_gphy_op_init(struct b43_wldev *dev ) { { b43_phy_initg(dev); return (0); } } static void b43_gphy_op_exit(struct b43_wldev *dev ) { { b43_lo_g_cleanup(dev); return; } } static u16 b43_gphy_op_read(struct b43_wldev *dev , u16 reg ) { u16 tmp ; { b43_write16f(dev, 1020, (int )reg); tmp = b43_read16(dev, 1022); return (tmp); } } static void b43_gphy_op_write(struct b43_wldev *dev , u16 reg , u16 value ) { { b43_write16f(dev, 1020, (int )reg); b43_write16(dev, 1022, (int )value); return; } } static u16 b43_gphy_op_radio_read(struct b43_wldev *dev , u16 reg ) { int __ret_warn_on ; long tmp ; u16 tmp___0 ; { __ret_warn_on = (unsigned int )reg == 1U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 2571); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); reg = (u16 )((unsigned int )reg | 128U); b43_write16f(dev, 1014, (int )reg); tmp___0 = b43_read16(dev, 1018); return (tmp___0); } } static void b43_gphy_op_radio_write(struct b43_wldev *dev , u16 reg , u16 value ) { int __ret_warn_on ; long tmp ; { __ret_warn_on = (unsigned int )reg == 1U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 2582); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_write16f(dev, 1014, (int )reg); b43_write16(dev, 1018, (int )value); return; } } static bool b43_gphy_op_supports_hwpctl(struct b43_wldev *dev ) { { return ((unsigned int )dev->phy.rev > 5U); } } static void b43_gphy_op_software_rfkill(struct b43_wldev *dev , bool blocked ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; unsigned int channel ; u16 rfover ; u16 rfoverval ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; __might_sleep("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 2600, 0); if (! blocked) { if ((int )phy->radio_on) { return; } else { } b43_phy_write(dev, 21, 32768); b43_phy_write(dev, 21, 52224); b43_phy_write(dev, 21, (int )phy->gmode ? 192 : 0); if ((int )gphy->radio_off_context.valid) { b43_phy_write(dev, 2065, (int )gphy->radio_off_context.rfover); b43_phy_write(dev, 2066, (int )gphy->radio_off_context.rfoverval); gphy->radio_off_context.valid = 0; } else { } channel = phy->channel; b43_gphy_channel_switch(dev, 6U, 1); b43_gphy_channel_switch(dev, channel, 0); } else { rfover = b43_phy_read(dev, 2065); rfoverval = b43_phy_read(dev, 2066); gphy->radio_off_context.rfover = rfover; gphy->radio_off_context.rfoverval = rfoverval; gphy->radio_off_context.valid = 1; b43_phy_write(dev, 2065, (int )((unsigned int )rfover | 140U)); b43_phy_write(dev, 2066, (int )rfoverval & 65395); } return; } } static int b43_gphy_op_switch_channel(struct b43_wldev *dev , unsigned int new_channel ) { { if (new_channel == 0U || new_channel > 14U) { return (-22); } else { } b43_gphy_channel_switch(dev, new_channel, 0); return (0); } } static unsigned int b43_gphy_op_get_default_chan(struct b43_wldev *dev ) { { return (1U); } } static void b43_gphy_op_set_rx_antenna(struct b43_wldev *dev , int antenna ) { struct b43_phy *phy ; u16 tmp ; int autodiv ; u64 tmp___0 ; u64 tmp___1 ; { phy = & dev->phy; autodiv = 0; if (antenna == 2 || antenna == 3) { autodiv = 1; } else { } tmp___0 = b43_hf_read(dev); b43_hf_write(dev, tmp___0 & 0xfffffffffffffffeULL); b43_phy_maskset(dev, 1025, 65151, autodiv == 0 ? (int )((u16 )antenna) << 7U : 384); if (autodiv != 0) { tmp = b43_phy_read(dev, 1067); if (antenna == 3) { tmp = (unsigned int )tmp & 65279U; } else { tmp = (u16 )((unsigned int )tmp | 256U); } b43_phy_write(dev, 1067, (int )tmp); } else { } tmp = b43_phy_read(dev, 1164); if (autodiv != 0) { tmp = (u16 )((unsigned int )tmp | 8192U); } else { tmp = (unsigned int )tmp & 57343U; } b43_phy_write(dev, 1164, (int )tmp); if (autodiv != 0) { b43_phy_set(dev, 1164, 8192); } else { b43_phy_mask(dev, 1164, 8192); } if ((unsigned int )phy->rev > 1U) { b43_phy_set(dev, 1121, 16); b43_phy_maskset(dev, 1197, 65280, 21); if ((unsigned int )phy->rev == 2U) { b43_phy_write(dev, 1063, 8); } else { b43_phy_maskset(dev, 1063, 65280, 8); } } else { } if ((unsigned int )phy->rev > 5U) { b43_phy_write(dev, 1179, 220); } else { } tmp___1 = b43_hf_read(dev); b43_hf_write(dev, tmp___1 | 1ULL); return; } } static int b43_gphy_op_interf_mitigation(struct b43_wldev *dev , enum b43_interference_mitigation mode ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; int currentmode ; int __ret_warn_on ; long tmp ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; __ret_warn_on = (unsigned int )phy->type != 2U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 2710); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if ((unsigned int )phy->rev == 0U || ! phy->gmode) { return (-19); } else { } gphy->aci_wlan_automatic = 0; switch ((unsigned int )mode) { case 3U: gphy->aci_wlan_automatic = 1; if ((int )gphy->aci_enable) { mode = 2; } else { mode = 0; } goto ldv_54698; case 0U: ; case 1U: ; case 2U: ; goto ldv_54698; default: ; return (-22); } ldv_54698: currentmode = gphy->interfmode; if ((unsigned int )currentmode == (unsigned int )mode) { return (0); } else { } if (currentmode != 0) { b43_radio_interference_mitigation_disable(dev, currentmode); } else { } if ((unsigned int )mode == 0U) { gphy->aci_enable = 0; gphy->aci_hw_rssi = 0; } else { b43_radio_interference_mitigation_enable(dev, (int )mode); } gphy->interfmode = (int )mode; return (0); } } static s8 b43_gphy_estimate_power_out(struct b43_wldev *dev , s8 tssi ) { struct b43_phy_g *gphy ; s8 dbm ; s32 tmp ; s32 __min1 ; s32 __max1 ; s32 __max2 ; s32 __min2 ; { gphy = dev->phy.__annonCompField106.g; tmp = (gphy->tgt_idle_tssi - gphy->cur_idle_tssi) + (int )tssi; __max1 = tmp; __max2 = 0; __min1 = __max1 > __max2 ? __max1 : __max2; __min2 = 63; tmp = __min1 < __min2 ? __min1 : __min2; dbm = *(gphy->tssi2dbm + (unsigned long )tmp); return (dbm); } } static void b43_put_attenuation_into_ranges(struct b43_wldev *dev , int *_bbatt , int *_rfatt ) { int rfatt ; int bbatt ; struct b43_txpower_lo_control *lo ; int rf_min ; int rf_max ; int bb_min ; int bb_max ; int __min1 ; int __max1 ; int __max2 ; int __min2 ; int __min1___0 ; int __max1___0 ; int __max2___0 ; int __min2___0 ; { rfatt = *_rfatt; bbatt = *_bbatt; lo = (dev->phy.__annonCompField106.g)->lo_control; rf_min = (int const )lo->rfatt_list.min_val; rf_max = (int const )lo->rfatt_list.max_val; bb_min = (int const )lo->bbatt_list.min_val; bb_max = (int const )lo->bbatt_list.max_val; ldv_54730: ; if (rfatt > rf_max && bb_max + -4 < bbatt) { goto ldv_54728; } else { } if (rfatt < rf_min && bb_min + 4 > bbatt) { goto ldv_54728; } else { } if (bbatt > bb_max && rf_max + -1 < rfatt) { goto ldv_54728; } else { } if (bbatt < bb_min && rf_min + 1 > rfatt) { goto ldv_54728; } else { } if (bbatt > bb_max) { bbatt = bbatt + -4; rfatt = rfatt + 1; goto ldv_54729; } else { } if (bbatt < bb_min) { bbatt = bbatt + 4; rfatt = rfatt + -1; goto ldv_54729; } else { } if (rfatt > rf_max) { rfatt = rfatt + -1; bbatt = bbatt + 4; goto ldv_54729; } else { } if (rfatt < rf_min) { rfatt = rfatt + 1; bbatt = bbatt + -4; goto ldv_54729; } else { } goto ldv_54728; ldv_54729: ; goto ldv_54730; ldv_54728: __max1 = rfatt; __max2 = rf_min; __min1 = __max1 > __max2 ? __max1 : __max2; __min2 = rf_max; *_rfatt = __min1 < __min2 ? __min1 : __min2; __max1___0 = bbatt; __max2___0 = bb_min; __min1___0 = __max1___0 > __max2___0 ? __max1___0 : __max2___0; __min2___0 = bb_max; *_bbatt = __min1___0 < __min2___0 ? __min1___0 : __min2___0; return; } } static void b43_gphy_op_adjust_txpower(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; int rfatt ; int bbatt ; u8 tx_control ; bool tmp ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; b43_mac_suspend(dev); bbatt = (int )gphy->bbatt.att; bbatt = gphy->bbatt_delta + bbatt; rfatt = (int )gphy->rfatt.att; rfatt = gphy->rfatt_delta + rfatt; b43_put_attenuation_into_ranges(dev, & bbatt, & rfatt); tx_control = gphy->tx_control; if ((unsigned int )phy->radio_ver == 8272U && (unsigned int )phy->radio_rev == 2U) { if (rfatt <= 1) { if ((unsigned int )tx_control == 0U) { tx_control = 48U; rfatt = rfatt + 2; bbatt = bbatt + 2; } else if (((int )((dev->dev)->bus_sprom)->boardflags_lo & 2) != 0) { bbatt = (rfatt + -2) * 4 + bbatt; rfatt = 2; } else { } } else if (rfatt > 4 && (unsigned int )tx_control != 0U) { tx_control = 0U; if (bbatt <= 2) { rfatt = rfatt + -3; bbatt = bbatt + 2; } else { rfatt = rfatt + -2; bbatt = bbatt + -2; } } else { } } else { } gphy->tx_control = tx_control; b43_put_attenuation_into_ranges(dev, & bbatt, & rfatt); gphy->rfatt.att = (u8 )rfatt; gphy->bbatt.att = (u8 )bbatt; tmp = b43_debug(dev, 0); if ((int )tmp) { b43dbg(dev->wl, "Adjusting TX power\n"); } else { } b43_phy_lock(dev); b43_radio_lock(dev); b43_set_txpower_g(dev, (struct b43_bbatt const *)(& gphy->bbatt), (struct b43_rfatt const *)(& gphy->rfatt), (int )gphy->tx_control); b43_radio_unlock(dev); b43_phy_unlock(dev); b43_mac_enable(dev); return; } } static enum b43_txpwr_result b43_gphy_op_recalc_txpower(struct b43_wldev *dev , bool ignore_tssi ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; unsigned int average_tssi ; int cck_result ; int ofdm_result ; int estimated_pwr ; int desired_pwr ; int pwr_adjust ; int rfatt_delta ; int bbatt_delta ; unsigned int max_pwr ; long tmp ; int __ret_warn_on ; long tmp___0 ; s8 tmp___1 ; int __ret_warn_on___0 ; long tmp___2 ; long tmp___3 ; int __min1 ; int __max1 ; int __max2 ; int __min2 ; bool tmp___4 ; int dbm ; bool tmp___5 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; cck_result = b43_phy_shm_tssi_read(dev, 88); ofdm_result = b43_phy_shm_tssi_read(dev, 112); if (cck_result < 0 && ofdm_result < 0) { if (! ignore_tssi) { goto no_adjustment_needed; } else { } cck_result = 0; ofdm_result = 0; } else { } if (cck_result < 0) { average_tssi = (unsigned int )ofdm_result; } else if (ofdm_result < 0) { average_tssi = (unsigned int )cck_result; } else { average_tssi = (unsigned int )((cck_result + ofdm_result) / 2); } tmp = ldv__builtin_expect((unsigned int )gphy->average_tssi != 255U, 1L); if (tmp != 0L) { average_tssi = ((unsigned int )gphy->average_tssi + average_tssi) / 2U; } else { } gphy->average_tssi = (u8 )average_tssi; __ret_warn_on = average_tssi > 126U; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 2909); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); tmp___1 = b43_gphy_estimate_power_out(dev, (int )((s8 )average_tssi)); estimated_pwr = (int )tmp___1; __ret_warn_on___0 = (unsigned int )phy->type != 2U; tmp___2 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___2 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_g.c", 2914); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); max_pwr = (unsigned int )((dev->dev)->bus_sprom)->maxpwr_bg; if (((int )((dev->dev)->bus_sprom)->boardflags_lo & 2) != 0) { max_pwr = max_pwr - 3U; } else { } tmp___3 = ldv__builtin_expect(max_pwr > 119U, 0L); if (tmp___3 != 0L) { b43warn(dev->wl, "Invalid max-TX-power value in SPROM.\n"); max_pwr = 80U; ((dev->dev)->bus_sprom)->maxpwr_bg = (u8 )max_pwr; } else { } if (phy->desired_txpower < 0) { desired_pwr = 0; } else { desired_pwr = phy->desired_txpower << 2; } __max1 = desired_pwr; __max2 = 0; __min1 = __max1 > __max2 ? __max1 : __max2; __min2 = (int )max_pwr; desired_pwr = __min1 < __min2 ? __min1 : __min2; tmp___4 = b43_debug(dev, 0); if ((int )tmp___4) { b43dbg(dev->wl, "[TX power] current = %u.%u dBm, desired = %u.%u dBm, max = %u.%u\n", estimated_pwr >> 2, ((estimated_pwr & 3) * 100) / 4, desired_pwr >> 2, ((desired_pwr & 3) * 100) / 4, max_pwr >> 2, ((max_pwr & 3U) * 100U) / 4U); } else { } pwr_adjust = desired_pwr - estimated_pwr; if (pwr_adjust == 0) { goto no_adjustment_needed; } else { } rfatt_delta = (pwr_adjust + 7) / 8; rfatt_delta = - rfatt_delta; bbatt_delta = pwr_adjust / 2; bbatt_delta = - bbatt_delta; bbatt_delta = rfatt_delta * -4 + bbatt_delta; tmp___5 = b43_debug(dev, 0); if ((int )tmp___5) { dbm = pwr_adjust < 0 ? - pwr_adjust : pwr_adjust; b43dbg(dev->wl, "[TX power deltas] %s%u.%u dBm => bbatt-delta = %d, rfatt-delta = %d\n", pwr_adjust < 0 ? (char *)"-" : (char *)"", dbm >> 2, ((dbm & 3) * 100) / 4, bbatt_delta, rfatt_delta); } else { } if (rfatt_delta == 0 && bbatt_delta == 0) { goto no_adjustment_needed; } else { } gphy->bbatt_delta = bbatt_delta; gphy->rfatt_delta = rfatt_delta; return (0); no_adjustment_needed: ; return (1); } } static void b43_gphy_op_pwork_15sec(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; b43_mac_suspend(dev); b43_lo_g_maintanance_work(dev); b43_mac_enable(dev); return; } } static void b43_gphy_op_pwork_60sec(struct b43_wldev *dev ) { struct b43_phy *phy ; u8 old_chan ; { phy = & dev->phy; if (((int )((dev->dev)->bus_sprom)->boardflags_lo & 8) == 0) { return; } else { } b43_mac_suspend(dev); b43_calc_nrssi_slope(dev); if ((unsigned int )phy->radio_ver == 8272U && (unsigned int )phy->radio_rev == 8U) { old_chan = (u8 )phy->channel; if ((unsigned int )old_chan > 7U) { b43_switch_channel(dev, 1U); } else { b43_switch_channel(dev, 13U); } b43_switch_channel(dev, (unsigned int )old_chan); } else { } b43_mac_enable(dev); return; } } struct b43_phy_operations const b43_phyops_g = {& b43_gphy_op_allocate, & b43_gphy_op_free, & b43_gphy_op_prepare_structs, & b43_gphy_op_prepare_hardware, & b43_gphy_op_init, & b43_gphy_op_exit, & b43_gphy_op_read, & b43_gphy_op_write, 0, & b43_gphy_op_radio_read, & b43_gphy_op_radio_write, & b43_gphy_op_supports_hwpctl, & b43_gphy_op_software_rfkill, & b43_phyop_switch_analog_generic, & b43_gphy_op_switch_channel, & b43_gphy_op_get_default_chan, & b43_gphy_op_set_rx_antenna, & b43_gphy_op_interf_mitigation, & b43_gphy_op_recalc_txpower, & b43_gphy_op_adjust_txpower, & b43_gphy_op_pwork_15sec, & b43_gphy_op_pwork_60sec}; void ldv_initialize_b43_phy_operations_30(void) { void *tmp ; { tmp = ldv_init_zalloc(1912UL); b43_phyops_g_group0 = (struct b43_wldev *)tmp; return; } } void ldv_main_exported_30(void) { bool ldvarg34 ; u16 ldvarg40 ; u16 ldvarg36 ; int ldvarg37 ; unsigned int ldvarg33 ; u16 ldvarg38 ; u16 ldvarg42 ; u16 ldvarg41 ; bool ldvarg31 ; bool ldvarg32 ; enum b43_interference_mitigation ldvarg35 ; u16 ldvarg39 ; int tmp ; { ldv_memset((void *)(& ldvarg34), 0, 1UL); ldv_memset((void *)(& ldvarg40), 0, 2UL); ldv_memset((void *)(& ldvarg36), 0, 2UL); ldv_memset((void *)(& ldvarg37), 0, 4UL); ldv_memset((void *)(& ldvarg33), 0, 4UL); ldv_memset((void *)(& ldvarg38), 0, 2UL); ldv_memset((void *)(& ldvarg42), 0, 2UL); ldv_memset((void *)(& ldvarg41), 0, 2UL); ldv_memset((void *)(& ldvarg31), 0, 1UL); ldv_memset((void *)(& ldvarg32), 0, 1UL); ldv_memset((void *)(& ldvarg35), 0, 4UL); ldv_memset((void *)(& ldvarg39), 0, 2UL); tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_prepare_structs(b43_phyops_g_group0); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 1: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_read(b43_phyops_g_group0, (int )ldvarg42); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 2: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_allocate(b43_phyops_g_group0); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 3: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_get_default_chan(b43_phyops_g_group0); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 4: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_write(b43_phyops_g_group0, (int )ldvarg41, (int )ldvarg40); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 5: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_pwork_15sec(b43_phyops_g_group0); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 6: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_radio_write(b43_phyops_g_group0, (int )ldvarg39, (int )ldvarg38); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 7: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_set_rx_antenna(b43_phyops_g_group0, ldvarg37); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 8: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_radio_read(b43_phyops_g_group0, (int )ldvarg36); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 9: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_supports_hwpctl(b43_phyops_g_group0); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 10: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_adjust_txpower(b43_phyops_g_group0); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 11: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_prepare_hardware(b43_phyops_g_group0); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 12: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_interf_mitigation(b43_phyops_g_group0, ldvarg35); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 13: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_software_rfkill(b43_phyops_g_group0, (int )ldvarg34); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 14: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_free(b43_phyops_g_group0); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 15: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_switch_channel(b43_phyops_g_group0, ldvarg33); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 16: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_recalc_txpower(b43_phyops_g_group0, (int )ldvarg32); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 17: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_init(b43_phyops_g_group0); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 18: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_exit(b43_phyops_g_group0); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 19: ; if (ldv_state_variable_30 == 1) { b43_gphy_op_pwork_60sec(b43_phyops_g_group0); ldv_state_variable_30 = 1; } else { } goto ldv_54808; case 20: ; if (ldv_state_variable_30 == 1) { b43_phyop_switch_analog_generic(b43_phyops_g_group0, (int )ldvarg31); ldv_state_variable_30 = 1; } else { } goto ldv_54808; default: ldv_stop(); } ldv_54808: ; return; } } bool ldv_queue_work_on_81(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_82(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_83(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_84(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_85(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_86(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } bool ldv_queue_work_on_97(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_99(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_98(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_101(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_100(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_102(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; u32 b43_ofdmtab_read32(struct b43_wldev *dev , u16 table , u16 offset ) ; void b43_ofdmtab_write32(struct b43_wldev *dev , u16 table , u16 offset , u32 value ) ; u16 b43_gtab_read(struct b43_wldev *dev , u16 table , u16 offset ) ; void b43_gtab_write(struct b43_wldev *dev , u16 table , u16 offset , u16 value ) ; u32 const b43_tab_rotor[53U] ; u32 const b43_tab_retard[53U] ; u16 const b43_tab_finefreqa[256U] ; u16 const b43_tab_finefreqg[256U] ; u16 const b43_tab_noisea2[8U] ; u16 const b43_tab_noisea3[8U] ; u16 const b43_tab_noiseg1[8U] ; u16 const b43_tab_noiseg2[8U] ; u16 const b43_tab_noisescalea2[27U] ; u16 const b43_tab_noisescalea3[27U] ; u16 const b43_tab_noisescaleg1[27U] ; u16 const b43_tab_noisescaleg2[27U] ; u16 const b43_tab_noisescaleg3[27U] ; u16 const b43_tab_sigmasqr1[53U] ; u16 const b43_tab_sigmasqr2[53U] ; u32 const b43_tab_rotor[53U] = { 4273553405U, 4274405373U, 4275191805U, 4276043773U, 4276895742U, 4277682174U, 4278534142U, 4279320574U, 4280172542U, 4280958975U, 4281810943U, 4282662911U, 4283449343U, 4284301311U, 4285087743U, 4285939711U, 4286726144U, 4287578112U, 4288364544U, 4289216512U, 4290068480U, 4290854912U, 4291706880U, 4292493312U, 4293345280U, 4294131712U, 16384U, 868352U, 1654784U, 2506752U, 3293184U, 4145152U, 4931584U, 5783552U, 6635520U, 7421952U, 8273920U, 9060351U, 9912319U, 10698751U, 11550719U, 12337151U, 13189119U, 14041087U, 14827518U, 15679486U, 16465918U, 17317886U, 18104318U, 18956285U, 19808253U, 20594685U, 21446653U}; u32 const b43_tab_retard[53U] = { 3683896199U, 3597061988U, 3523072856U, 3450263590U, 3392724383U, 3341410996U, 3295275150U, 3261787691U, 3235837036U, 3228826210U, 3223126229U, 3228960579U, 3243642142U, 3269792617U, 3303872767U, 3349946071U, 3408405426U, 3472500953U, 3539348799U, 3619369367U, 3706008936U, 3791534197U, 3889249077U, 3982900533U, 4087037636U, 4186849191U, 16384U, 108150695U, 207961796U, 312098101U, 405748533U, 503462005U, 588985704U, 675623319U, 755641663U, 822487257U, 886580146U, 945037015U, 991107327U, 1025184617U, 1051331870U, 1066010435U, 1071841493U, 1066269282U, 1059255404U, 1033301547U, 999811214U, 953672372U, 902356383U, 844814374U, 772002648U, 698011492U, 611175303U}; u16 const b43_tab_finefreqa[256U] = { 130U, 130U, 258U, 386U, 514U, 642U, 770U, 898U, 1026U, 1154U, 1282U, 1410U, 1506U, 1634U, 1762U, 1890U, 2018U, 2114U, 2242U, 2370U, 2498U, 2594U, 2722U, 2818U, 2946U, 3042U, 3170U, 3266U, 3394U, 3490U, 3586U, 3682U, 3810U, 3906U, 4002U, 4098U, 4194U, 4290U, 4386U, 4482U, 4578U, 4674U, 4770U, 4834U, 4930U, 5026U, 5122U, 5186U, 5282U, 5346U, 5442U, 5506U, 5602U, 5666U, 5730U, 5825U, 5889U, 5953U, 6017U, 6113U, 6177U, 6241U, 6305U, 6369U, 6433U, 6497U, 6561U, 6625U, 6689U, 6753U, 6817U, 6849U, 6913U, 6977U, 7041U, 7073U, 7137U, 7201U, 7233U, 7297U, 7329U, 7393U, 7425U, 7489U, 7521U, 7585U, 7617U, 7681U, 7713U, 7777U, 7809U, 7841U, 7905U, 7937U, 7969U, 8001U, 8065U, 8097U, 8129U, 8161U, 8193U, 8257U, 8289U, 8321U, 8353U, 8385U, 8417U, 8449U, 8481U, 8513U, 8545U, 8577U, 8609U, 8641U, 8673U, 8705U, 8737U, 8769U, 8801U, 8833U, 8865U, 8897U, 8897U, 8929U, 8961U, 8993U, 9025U, 9057U, 9057U, 9089U, 9121U, 9153U, 9185U, 9185U, 9217U, 9249U, 9281U, 9281U, 9313U, 9345U, 9345U, 9377U, 9409U, 9409U, 9441U, 9473U, 9473U, 9505U, 9537U, 9537U, 9569U, 9569U, 9601U, 9633U, 9633U, 9665U, 9665U, 9697U, 9729U, 9729U, 9761U, 9761U, 9793U, 9793U, 9825U, 9825U, 9857U, 9857U, 9889U, 9889U, 9921U, 9921U, 9953U, 9953U, 9985U, 9985U, 10017U, 10017U, 10048U, 10048U, 10080U, 10080U, 10112U, 10112U, 10112U, 10144U, 10144U, 10176U, 10176U, 10208U, 10208U, 10208U, 10240U, 10240U, 10272U, 10272U, 10272U, 10304U, 10304U, 10304U, 10336U, 10336U, 10368U, 10368U, 10368U, 10400U, 10400U, 10400U, 10432U, 10432U, 10432U, 10464U, 10464U, 10464U, 10496U, 10496U, 10496U, 10528U, 10528U, 10528U, 10560U, 10560U, 10560U, 10592U, 10592U, 10592U, 10592U, 10624U, 10624U, 10624U, 10656U, 10656U, 10656U, 10656U, 10688U, 10688U, 10688U, 10720U, 10720U, 10720U, 10720U, 10752U, 10752U, 10752U, 10752U, 10784U, 10784U, 10784U, 10784U, 10816U, 10816U, 10816U, 10816U, 10848U, 10848U, 10848U}; u16 const b43_tab_finefreqg[256U] = { 137U, 745U, 1033U, 1257U, 1449U, 1641U, 1801U, 1929U, 2089U, 2217U, 2345U, 2441U, 2569U, 2665U, 2761U, 2857U, 2985U, 3049U, 3145U, 3241U, 3337U, 3433U, 3497U, 3593U, 3689U, 3753U, 3849U, 3913U, 4009U, 4073U, 4137U, 4233U, 4297U, 4361U, 4457U, 4521U, 4585U, 4649U, 4745U, 4809U, 4873U, 4937U, 5001U, 5065U, 5129U, 5193U, 5289U, 5353U, 5417U, 5481U, 5545U, 5609U, 5673U, 5737U, 5801U, 5864U, 5928U, 5992U, 6056U, 6120U, 6184U, 6248U, 6312U, 6376U, 6440U, 6504U, 6568U, 6632U, 6696U, 6760U, 6824U, 6888U, 6952U, 7016U, 7080U, 7144U, 7208U, 7272U, 7336U, 7400U, 7464U, 7528U, 7624U, 7688U, 7752U, 7816U, 7880U, 7944U, 8008U, 8072U, 8168U, 8232U, 8296U, 8360U, 8456U, 8520U, 8584U, 8648U, 8744U, 8808U, 8904U, 8968U, 9032U, 9128U, 9192U, 9288U, 9384U, 9448U, 9544U, 9640U, 9736U, 9832U, 9928U, 10024U, 10119U, 10215U, 10311U, 10439U, 10567U, 10663U, 10791U, 10951U, 11079U, 11239U, 11431U, 11623U, 11847U, 12135U, 12871U, 13606U, 13894U, 14118U, 14342U, 14502U, 14662U, 14822U, 14950U, 15078U, 15206U, 15302U, 15429U, 15525U, 15621U, 15749U, 15845U, 15941U, 16037U, 16101U, 16197U, 16293U, 16389U, 16453U, 16549U, 16613U, 16709U, 16773U, 16869U, 16933U, 16997U, 17093U, 17157U, 17221U, 17317U, 17381U, 17444U, 17508U, 17604U, 17668U, 17732U, 17796U, 17860U, 17924U, 17988U, 18084U, 18148U, 18212U, 18276U, 18340U, 18404U, 18468U, 18532U, 18596U, 18660U, 18724U, 18788U, 18852U, 18916U, 18980U, 19044U, 19108U, 19172U, 19235U, 19299U, 19363U, 19427U, 19491U, 19555U, 19619U, 19683U, 19747U, 19811U, 19875U, 19939U, 20003U, 20067U, 20131U, 20195U, 20259U, 20323U, 20419U, 20483U, 20547U, 20611U, 20675U, 20739U, 20803U, 20867U, 20962U, 21026U, 21090U, 21154U, 21218U, 21314U, 21378U, 21442U, 21506U, 21602U, 21666U, 21762U, 21826U, 21922U, 21986U, 22082U, 22146U, 22242U, 22306U, 22402U, 22497U, 22593U, 22689U, 22785U, 22881U, 22977U, 23073U, 23201U, 23297U, 23425U, 23521U, 23649U, 23809U, 23936U, 24096U, 24288U, 24480U, 24704U, 25024U}; u16 const b43_tab_noisea2[8U] = { 1U, 1U, 1U, 65534U, 65534U, 16383U, 4096U, 915U}; u16 const b43_tab_noisea3[8U] = { 24158U, 24158U, 24158U, 16200U, 19532U, 19532U, 19532U, 11574U}; u16 const b43_tab_noiseg1[8U] = { 316U, 501U, 794U, 1585U, 1U, 1U, 1U, 1U}; u16 const b43_tab_noiseg2[8U] = { 21636U, 15424U, 0U, 0U, 0U, 0U, 0U, 0U}; u16 const b43_tab_noisescalea2[27U] = { 26471U, 26471U, 26471U, 26471U, 26471U, 26471U, 26471U, 26471U, 26471U, 26471U, 26471U, 26471U, 26471U, 26368U, 26471U, 26471U, 26471U, 26471U, 26471U, 26471U, 26471U, 26471U, 26471U, 26471U, 26471U, 26471U, 103U}; u16 const b43_tab_noisescalea3[27U] = { 8995U, 8995U, 8995U, 8995U, 8995U, 8995U, 8995U, 8995U, 8995U, 8995U, 8995U, 8995U, 8995U, 8960U, 8995U, 8995U, 8995U, 8995U, 8995U, 8995U, 8995U, 8995U, 8995U, 8995U, 8995U, 8995U, 35U}; u16 const b43_tab_noisescaleg1[27U] = { 27767U, 20834U, 15168U, 13109U, 12077U, 10794U, 9511U, 7969U, 6685U, 5913U, 5654U, 5140U, 5140U, 5120U, 5140U, 5652U, 5910U, 6681U, 7965U, 9505U, 10791U, 12074U, 13101U, 15157U, 20800U, 27746U, 119U}; u16 const b43_tab_noisescaleg2[27U] = { 55517U, 52180U, 48320U, 46775U, 45744U, 44461U, 42921U, 40865U, 38555U, 37269U, 36751U, 35466U, 35466U, 35328U, 35466U, 36746U, 37263U, 38549U, 40859U, 42913U, 44457U, 45741U, 46768U, 48311U, 52160U, 55508U, 221U}; u16 const b43_tab_noisescaleg3[27U] = { 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 41984U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 164U}; u16 const b43_tab_sigmasqr1[53U] = { 122U, 117U, 113U, 108U, 103U, 99U, 94U, 89U, 84U, 80U, 75U, 70U, 66U, 61U, 61U, 61U, 61U, 61U, 61U, 61U, 61U, 61U, 61U, 61U, 61U, 61U, 0U, 61U, 61U, 61U, 61U, 61U, 61U, 61U, 61U, 61U, 61U, 61U, 61U, 61U, 66U, 70U, 75U, 80U, 84U, 89U, 94U, 99U, 103U, 108U, 113U, 117U, 122U}; u16 const b43_tab_sigmasqr2[53U] = { 222U, 220U, 218U, 216U, 214U, 212U, 210U, 207U, 205U, 202U, 199U, 196U, 193U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 0U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 193U, 196U, 199U, 202U, 205U, 207U, 210U, 212U, 214U, 216U, 218U, 220U, 222U}; u16 const b43_tab_rssiagc1[16U] = { 65528U, 65528U, 65528U, 65528U, 65528U, 65529U, 65532U, 65534U, 65528U, 65528U, 65528U, 65528U, 65528U, 65528U, 65528U, 65528U}; u16 const b43_tab_rssiagc2[48U] = { 2080U, 2080U, 2336U, 3128U, 2080U, 2080U, 2080U, 2080U, 2080U, 2080U, 2336U, 2616U, 2080U, 2080U, 2080U, 2080U, 2080U, 2080U, 2336U, 2616U, 2080U, 2080U, 2080U, 2080U, 2080U, 2080U, 2336U, 2616U, 2080U, 2080U, 2080U, 2080U, 2080U, 2080U, 2336U, 2616U, 2080U, 2080U, 2080U, 2080U, 2080U, 2080U, 2336U, 2616U, 2080U, 2080U, 2080U, 2080U}; __inline static void assert_sizes(void) { { return; } } u16 b43_ofdmtab_read16(struct b43_wldev *dev , u16 table , u16 offset ) { struct b43_phy_g *gphy ; u16 addr ; u16 tmp ; { gphy = dev->phy.__annonCompField106.g; addr = (int )table + (int )offset; if ((unsigned int )gphy->ofdmtab_addr_direction != 1U || (int )addr + -1 != (int )gphy->ofdmtab_addr) { b43_phy_write(dev, 1138, (int )addr); gphy->ofdmtab_addr_direction = 1; } else { } gphy->ofdmtab_addr = addr; tmp = b43_phy_read(dev, 1139); return (tmp); assert_sizes(); } } void b43_ofdmtab_write16(struct b43_wldev *dev , u16 table , u16 offset , u16 value ) { struct b43_phy_g *gphy ; u16 addr ; { gphy = dev->phy.__annonCompField106.g; addr = (int )table + (int )offset; if ((unsigned int )gphy->ofdmtab_addr_direction != 2U || (int )addr + -1 != (int )gphy->ofdmtab_addr) { b43_phy_write(dev, 1138, (int )addr); gphy->ofdmtab_addr_direction = 2; } else { } gphy->ofdmtab_addr = addr; b43_phy_write(dev, 1139, (int )value); return; } } u32 b43_ofdmtab_read32(struct b43_wldev *dev , u16 table , u16 offset ) { struct b43_phy_g *gphy ; u32 ret ; u16 addr ; u16 tmp ; u16 tmp___0 ; { gphy = dev->phy.__annonCompField106.g; addr = (int )table + (int )offset; if ((unsigned int )gphy->ofdmtab_addr_direction != 1U || (int )addr + -1 != (int )gphy->ofdmtab_addr) { b43_phy_write(dev, 1138, (int )addr); gphy->ofdmtab_addr_direction = 1; } else { } gphy->ofdmtab_addr = addr; tmp = b43_phy_read(dev, 1140); ret = (u32 )tmp; ret = ret << 16; tmp___0 = b43_phy_read(dev, 1139); ret = (u32 )tmp___0 | ret; return (ret); } } void b43_ofdmtab_write32(struct b43_wldev *dev , u16 table , u16 offset , u32 value ) { struct b43_phy_g *gphy ; u16 addr ; { gphy = dev->phy.__annonCompField106.g; addr = (int )table + (int )offset; if ((unsigned int )gphy->ofdmtab_addr_direction != 2U || (int )addr + -1 != (int )gphy->ofdmtab_addr) { b43_phy_write(dev, 1138, (int )addr); gphy->ofdmtab_addr_direction = 2; } else { } gphy->ofdmtab_addr = addr; b43_phy_write(dev, 1139, (int )((u16 )value)); b43_phy_write(dev, 1140, (int )((u16 )(value >> 16))); return; } } u16 b43_gtab_read(struct b43_wldev *dev , u16 table , u16 offset ) { u16 tmp ; { b43_phy_write(dev, 2051, (int )table + (int )offset); tmp = b43_phy_read(dev, 2052); return (tmp); } } void b43_gtab_write(struct b43_wldev *dev , u16 table , u16 offset , u16 value ) { { b43_phy_write(dev, 2051, (int )table + (int )offset); b43_phy_write(dev, 2052, (int )value); return; } } bool ldv_queue_work_on_97(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_98(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_99(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_100(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_101(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_102(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; extern void ___might_sleep(char const * , int , int ) ; extern void __list_add(struct list_head * , struct list_head * , struct list_head * ) ; __inline static void list_add(struct list_head *new , struct list_head *head ) { { __list_add(new, head, head->next); return; } } __inline static int list_empty(struct list_head const *head ) { { return ((unsigned long )((struct list_head const *)head->next) == (unsigned long )head); } } bool ldv_queue_work_on_113(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_115(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_114(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_117(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_116(struct workqueue_struct *ldv_func_arg1 ) ; extern int _cond_resched(void) ; int ldv_request_threaded_irq_118(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; __inline static bool b43_compare_rfatt(struct b43_rfatt const *a , struct b43_rfatt const *b ) { { return ((bool )((int )((unsigned char )a->att) == (int )((unsigned char )b->att) && (int const )a->with_padmix == (int const )b->with_padmix)); } } __inline static bool b43_compare_bbatt(struct b43_bbatt const *a , struct b43_bbatt const *b ) { { return ((int )((unsigned char )a->att) == (int )((unsigned char )b->att)); } } void b43_lo_g_adjust_to(struct b43_wldev *dev , u16 rfatt , u16 bbatt , u16 tx_control ) ; static struct b43_lo_calib *b43_find_lo_calib(struct b43_txpower_lo_control *lo , struct b43_bbatt const *bbatt , struct b43_rfatt const *rfatt ) { struct b43_lo_calib *c ; struct list_head const *__mptr ; bool tmp ; int tmp___0 ; bool tmp___1 ; int tmp___2 ; struct list_head const *__mptr___0 ; { __mptr = (struct list_head const *)lo->calib_list.next; c = (struct b43_lo_calib *)__mptr + 0xfffffffffffffff0UL; goto ldv_53992; ldv_53991: tmp = b43_compare_bbatt((struct b43_bbatt const *)(& c->bbatt), bbatt); if (tmp) { tmp___0 = 0; } else { tmp___0 = 1; } if (tmp___0) { goto ldv_53990; } else { } tmp___1 = b43_compare_rfatt((struct b43_rfatt const *)(& c->rfatt), rfatt); if (tmp___1) { tmp___2 = 0; } else { tmp___2 = 1; } if (tmp___2) { goto ldv_53990; } else { } return (c); ldv_53990: __mptr___0 = (struct list_head const *)c->list.next; c = (struct b43_lo_calib *)__mptr___0 + 0xfffffffffffffff0UL; ldv_53992: ; if ((unsigned long )(& c->list) != (unsigned long )(& lo->calib_list)) { goto ldv_53991; } else { } return ((struct b43_lo_calib *)0); } } static void b43_lo_write(struct b43_wldev *dev , struct b43_loctl *control ) { struct b43_phy *phy ; u16 value ; long ret ; int __x___0 ; long ret___0 ; int __x___2 ; int tmp ; long tmp___0 ; int __ret_warn_on ; long tmp___1 ; { phy = & dev->phy; __x___0 = (int )control->i; ret = (long )(__x___0 < 0 ? - __x___0 : __x___0); if (ret > 16L) { tmp = 1; } else { __x___2 = (int )control->q; ret___0 = (long )(__x___2 < 0 ? - __x___2 : __x___2); if (ret___0 > 16L) { tmp = 1; } else { tmp = 0; } } tmp___0 = ldv__builtin_expect((long )tmp, 0L); if (tmp___0 != 0L) { b43dbg(dev->wl, "Invalid LO control pair (I: %d, Q: %d)\n", (int )control->i, (int )control->q); dump_stack(); return; } else { } __ret_warn_on = (unsigned int )phy->type != 2U; tmp___1 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/lo.c", 71); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); value = (u16 )((unsigned char )control->q); value = (u16 )((int )((short )((int )((unsigned char )control->i) << 8)) | (int )((short )value)); b43_phy_write(dev, 2064, (int )value); return; } } static u16 lo_measure_feedthrough(struct b43_wldev *dev , u16 lna , u16 pga , u16 trsw_rx ) { struct b43_phy *phy ; u16 rfover ; u16 feedthrough ; int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; { phy = & dev->phy; if ((int )phy->gmode) { lna = (int )lna << 12U; pga = (int )pga << 8U; __ret_warn_on = ((int )lna & -28673) != 0; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/lo.c", 89); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); __ret_warn_on___0 = ((int )pga & -3841) != 0; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/lo.c", 90); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); trsw_rx = (unsigned int )trsw_rx & 227U; rfover = 16U; rfover = (u16 )((int )rfover | (int )pga); rfover = (u16 )((int )rfover | (int )lna); rfover = (u16 )((int )rfover | (int )trsw_rx); if (((int )((dev->dev)->bus_sprom)->boardflags_lo & 4096) != 0 && (unsigned int )phy->rev > 6U) { rfover = (u16 )((unsigned int )rfover | 32768U); } else { } b43_phy_write(dev, 21, 58112); b43_phy_write(dev, 2066, (int )rfover); __const_udelay(42950UL); rfover = (u16 )((unsigned int )rfover | 2U); b43_phy_write(dev, 2066, (int )rfover); __const_udelay(42950UL); rfover = (u16 )((unsigned int )rfover | 1U); b43_phy_write(dev, 2066, (int )rfover); __const_udelay(42950UL); b43_phy_write(dev, 21, 62208); } else { pga = (u16 )((unsigned int )pga | 61344U); b43_phy_write(dev, 21, (int )pga); __const_udelay(42950UL); pga = (u16 )((unsigned int )pga | 64U); b43_phy_write(dev, 21, (int )pga); __const_udelay(42950UL); pga = (u16 )((unsigned int )pga | 4096U); b43_phy_write(dev, 21, (int )pga); } __const_udelay(90195UL); feedthrough = b43_phy_read(dev, 45); ___might_sleep("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/lo.c", 131, 0); _cond_resched(); return (feedthrough); } } static u16 lo_txctl_register_table(struct b43_wldev *dev , u16 *value , u16 *pad_mix_gain ) { struct b43_phy *phy ; u16 reg ; u16 v ; u16 padmix ; { phy = & dev->phy; if ((unsigned int )phy->type == 1U) { v = 48U; if ((unsigned int )phy->radio_rev <= 5U) { reg = 67U; padmix = 0U; } else { reg = 82U; padmix = 5U; } } else if ((unsigned int )phy->rev > 1U && (unsigned int )phy->radio_rev == 8U) { reg = 67U; v = 16U; padmix = 2U; } else { reg = 82U; v = 48U; padmix = 5U; } if ((unsigned long )value != (unsigned long )((u16 *)0U)) { *value = v; } else { } if ((unsigned long )pad_mix_gain != (unsigned long )((u16 *)0U)) { *pad_mix_gain = padmix; } else { } return (reg); } } static void lo_measure_txctl_values(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; struct b43_txpower_lo_control *lo ; u16 reg ; u16 mask ; u16 trsw_rx ; u16 pga ; u16 radio_pctl_reg ; u8 tx_bias_values[9U] ; u8 tx_magn_values[2U] ; int lb_gain ; long ret ; int __x___0 ; u16 __min1 ; u16 __max1 ; u16 __max2 ; u16 __min2 ; int cmp_val ; int tmp ; int i ; int j ; int feedthrough ; int min_feedth ; u8 tx_magn ; u8 tx_bias ; u16 tmp___0 ; u16 tmp___1 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; lo = gphy->lo_control; tx_bias_values[0] = 9U; tx_bias_values[1] = 8U; tx_bias_values[2] = 10U; tx_bias_values[3] = 1U; tx_bias_values[4] = 0U; tx_bias_values[5] = 2U; tx_bias_values[6] = 5U; tx_bias_values[7] = 4U; tx_bias_values[8] = 6U; tx_magn_values[0] = 112U; tx_magn_values[1] = 64U; if ((unsigned int )phy->rev <= 1U && ! phy->gmode) { radio_pctl_reg = 6U; trsw_rx = 2U; pga = 0U; } else { trsw_rx = 0U; lb_gain = (int )gphy->max_lb_gain / 2; if (lb_gain > 10) { radio_pctl_reg = 0U; __x___0 = 10 - lb_gain; ret = (long )(__x___0 < 0 ? - __x___0 : __x___0); pga = (u16 )(ret / 6L); __max1 = pga; __max2 = 0U; __min1 = (u16 )((int )__max1 > (int )__max2 ? __max1 : __max2); __min2 = 15U; pga = (u16 )((int )__min1 < (int )__min2 ? __min1 : __min2); } else { pga = 0U; cmp_val = 36; if (((unsigned int )phy->rev > 1U && (unsigned int )phy->radio_ver == 8272U) && (unsigned int )phy->radio_rev == 8U) { cmp_val = 60; } else { } tmp = lb_gain; if (10 - lb_gain < cmp_val) { tmp = 10 - lb_gain; } else { } if (tmp < 0) { tmp = tmp + 6; } else { tmp = tmp + 3; } cmp_val = cmp_val / 4; tmp = tmp / 4; if (tmp >= cmp_val) { radio_pctl_reg = (u16 )cmp_val; } else { radio_pctl_reg = (u16 )tmp; } } } b43_radio_maskset(dev, 67, 65520, (int )radio_pctl_reg); b43_gphy_set_baseband_attenuation(dev, 2); reg = lo_txctl_register_table(dev, & mask, (u16 *)0U); mask = ~ ((int )mask); b43_radio_mask(dev, (int )reg, (int )mask); if (((unsigned int )phy->rev > 1U && (unsigned int )phy->radio_ver == 8272U) && (unsigned int )phy->radio_rev == 8U) { min_feedth = 65535; i = 0; goto ldv_54073; ldv_54072: tx_magn = tx_magn_values[i]; b43_radio_maskset(dev, 82, 65295, (int )tx_magn); j = 0; goto ldv_54071; ldv_54070: tx_bias = tx_bias_values[j]; b43_radio_maskset(dev, 82, 65520, (int )tx_bias); tmp___0 = lo_measure_feedthrough(dev, 0, (int )pga, (int )trsw_rx); feedthrough = (int )tmp___0; if (feedthrough < min_feedth) { lo->tx_bias = tx_bias; lo->tx_magn = tx_magn; min_feedth = feedthrough; } else { } if ((unsigned int )lo->tx_bias == 0U) { goto ldv_54069; } else { } j = j + 1; ldv_54071: ; if ((unsigned int )j <= 8U) { goto ldv_54070; } else { } ldv_54069: tmp___1 = b43_radio_read(dev, 82); b43_radio_write(dev, 82, (int )((u16 )((((int )((short )tmp___1) & -256) | (int )((short )lo->tx_bias)) | (int )((short )lo->tx_magn)))); i = i + 1; ldv_54073: ; if ((unsigned int )i <= 1U) { goto ldv_54072; } else { } } else { lo->tx_magn = 0U; lo->tx_bias = 0U; b43_radio_mask(dev, 82, 65520); } lo->txctl_measured_time = jiffies; return; } } static void lo_read_power_vector(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; struct b43_txpower_lo_control *lo ; int i ; u64 tmp ; u64 power_vector ; u16 tmp___0 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; lo = gphy->lo_control; power_vector = 0ULL; i = 0; goto ldv_54085; ldv_54084: tmp___0 = b43_shm_read16(dev, 1, (int )((unsigned int )((u16 )i) + 784U)); tmp = (u64 )tmp___0; power_vector = (tmp << i * 8) | power_vector; b43_shm_write16(dev, 1, (int )((unsigned int )((u16 )i) + 784U), 0); i = i + 2; ldv_54085: ; if (i <= 7) { goto ldv_54084; } else { } if (power_vector != 0ULL) { lo->power_vector = power_vector; } else { } lo->pwr_vec_read_time = jiffies; return; } } static void lo_measure_gain_values(struct b43_wldev *dev , s16 max_rx_gain , int use_trsw_rx ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; u16 tmp ; int trsw_rx_gain ; int __min1 ; int __max1 ; int __max2 ; int __min2 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; if ((int )max_rx_gain < 0) { max_rx_gain = 0; } else { } if ((unsigned int )phy->rev > 1U || (int )phy->gmode) { if (use_trsw_rx != 0) { trsw_rx_gain = (int )gphy->trsw_rx_gain / 2; if ((int )max_rx_gain >= trsw_rx_gain) { trsw_rx_gain = (int )max_rx_gain - trsw_rx_gain; } else { } } else { trsw_rx_gain = (int )max_rx_gain; } if (trsw_rx_gain <= 8) { gphy->lna_lod_gain = 0; } else { gphy->lna_lod_gain = 1; trsw_rx_gain = trsw_rx_gain + -8; } __max1 = trsw_rx_gain; __max2 = 0; __min1 = __max1 > __max2 ? __max1 : __max2; __min2 = 45; trsw_rx_gain = __min1 < __min2 ? __min1 : __min2; gphy->pga_gain = (s16 )(trsw_rx_gain / 3); if ((int )gphy->pga_gain > 4) { gphy->pga_gain = (s16 )((unsigned int )((unsigned short )gphy->pga_gain) + 65531U); gphy->lna_gain = 2; } else { gphy->lna_gain = 0; } } else { gphy->lna_gain = 0; gphy->trsw_rx_gain = 32; if ((int )max_rx_gain > 19) { gphy->lna_lod_gain = 1; gphy->pga_gain = 2; } else if ((int )max_rx_gain > 17) { gphy->lna_lod_gain = 1; gphy->pga_gain = 1; } else if ((int )max_rx_gain > 14) { gphy->lna_lod_gain = 1; gphy->pga_gain = 0; } else { gphy->lna_lod_gain = 0; gphy->pga_gain = 0; } } tmp = b43_radio_read(dev, 122); if ((int )gphy->lna_lod_gain == 0) { tmp = (unsigned int )tmp & 65527U; } else { tmp = (u16 )((unsigned int )tmp | 8U); } b43_radio_write(dev, 122, (int )tmp); return; } } static void lo_measure_setup(struct b43_wldev *dev , struct lo_g_saved_values *sav ) { struct ssb_sprom *sprom ; struct b43_phy *phy ; struct b43_phy_g *gphy ; struct b43_txpower_lo_control *lo ; u16 tmp ; bool tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; { sprom = (dev->dev)->bus_sprom; phy = & dev->phy; gphy = phy->__annonCompField106.g; lo = gphy->lo_control; tmp___0 = b43_has_hardware_pctl(dev); if ((int )tmp___0) { sav->phy_lo_mask = b43_phy_read(dev, 2063); sav->phy_extg_01 = b43_phy_read(dev, 2049); sav->phy_dacctl_hwpctl = b43_phy_read(dev, 96); sav->phy_cck_14 = b43_phy_read(dev, 20); sav->phy_hpwr_tssictl = b43_phy_read(dev, 1144); b43_phy_set(dev, 1144, 256); b43_phy_set(dev, 2049, 64); b43_phy_set(dev, 96, 64); b43_phy_set(dev, 20, 512); } else { } if (((unsigned int )phy->type == 1U && (unsigned int )phy->radio_ver == 8272U) && (unsigned int )phy->radio_rev <= 5U) { b43_phy_write(dev, 22, 1040); b43_phy_write(dev, 23, 2080); } else { } if ((unsigned int )phy->rev > 1U) { sav->phy_analogover = b43_phy_read(dev, 2068); sav->phy_analogoverval = b43_phy_read(dev, 2069); sav->phy_rfover = b43_phy_read(dev, 2065); sav->phy_rfoverval = b43_phy_read(dev, 2066); sav->phy_classctl = b43_phy_read(dev, 2050); sav->phy_cck_3E = b43_phy_read(dev, 62); sav->phy_crs0 = b43_phy_read(dev, 1065); b43_phy_mask(dev, 2050, 65532); b43_phy_mask(dev, 1065, 32767); b43_phy_set(dev, 2068, 3); b43_phy_mask(dev, 2069, 65532); if ((unsigned int )phy->type == 2U) { if ((unsigned int )phy->rev > 6U && ((int )sprom->boardflags_lo & 4096) != 0) { b43_phy_write(dev, 2065, 2355); } else { b43_phy_write(dev, 2065, 307); } } else { b43_phy_write(dev, 2065, 0); } b43_phy_write(dev, 62, 0); } else { } sav->reg_3F4 = b43_read16(dev, 1012); sav->reg_3E2 = b43_read16(dev, 994); sav->radio_43 = b43_radio_read(dev, 67); sav->radio_7A = b43_radio_read(dev, 122); sav->phy_pgactl = b43_phy_read(dev, 21); sav->phy_cck_2A = b43_phy_read(dev, 42); sav->phy_syncctl = b43_phy_read(dev, 53); sav->phy_dacctl = b43_phy_read(dev, 96); if (((unsigned int )phy->rev <= 1U || (unsigned int )phy->radio_ver != 8272U) || (unsigned int )phy->radio_rev != 8U) { sav->radio_52 = b43_radio_read(dev, 82); sav->radio_52 = (unsigned int )sav->radio_52 & 240U; } else { } if ((unsigned int )phy->type == 1U) { sav->phy_cck_30 = b43_phy_read(dev, 48); sav->phy_cck_06 = b43_phy_read(dev, 6); b43_phy_write(dev, 48, 255); b43_phy_write(dev, 6, 16191); } else { tmp___1 = b43_read16(dev, 994); b43_write16(dev, 994, (int )((unsigned int )tmp___1 | 32768U)); } tmp___2 = b43_read16(dev, 1012); b43_write16(dev, 1012, (int )tmp___2 & 61440); tmp = (unsigned int )phy->type == 2U ? 2063U : 46U; b43_phy_write(dev, (int )tmp, 127); tmp = sav->phy_syncctl; b43_phy_write(dev, 53, (int )tmp & 65407); tmp = sav->radio_7A; b43_radio_write(dev, 122, (int )tmp & 65520); b43_phy_write(dev, 42, 2211); if ((unsigned int )phy->type == 2U || (((unsigned int )phy->type == 1U && (unsigned int )phy->radio_ver == 8272U) && (unsigned int )phy->radio_rev > 5U)) { b43_phy_write(dev, 43, 4099); } else { b43_phy_write(dev, 43, 2050); } if ((unsigned int )phy->rev > 1U) { b43_dummy_transmission(dev, 0, 1); } else { } b43_gphy_channel_switch(dev, 6U, 0); b43_radio_read(dev, 81); if ((unsigned int )phy->type == 2U) { b43_phy_write(dev, 47, 0); } else { } if ((long )((lo->txctl_measured_time - (unsigned long )jiffies) + 44000UL) < 0L) { lo_measure_txctl_values(dev); } else { } if ((unsigned int )phy->type == 2U && (unsigned int )phy->rev > 2U) { b43_phy_write(dev, 2063, 49272); } else if ((unsigned int )phy->type == 1U) { b43_phy_write(dev, 46, 32888); } else { b43_phy_write(dev, 2063, 32888); } return; } } static void lo_measure_restore(struct b43_wldev *dev , struct lo_g_saved_values *sav ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; u16 tmp ; bool tmp___0 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; if ((unsigned int )phy->rev > 1U) { b43_phy_write(dev, 21, 58112); tmp = (int )((u16 )gphy->pga_gain) << 8U; b43_phy_write(dev, 2066, (int )((unsigned int )tmp | 160U)); __const_udelay(21475UL); b43_phy_write(dev, 2066, (int )((unsigned int )tmp | 162U)); __const_udelay(8590UL); b43_phy_write(dev, 2066, (int )((unsigned int )tmp | 163U)); } else { tmp = (u16 )((int )gphy->pga_gain | -4192); b43_phy_write(dev, 21, (int )tmp); } if ((unsigned int )phy->type == 2U) { if ((unsigned int )phy->rev > 2U) { b43_phy_write(dev, 46, 49272); } else { b43_phy_write(dev, 46, 32888); } if ((unsigned int )phy->rev > 1U) { b43_phy_write(dev, 47, 514); } else { b43_phy_write(dev, 47, 257); } } else { } b43_write16(dev, 1012, (int )sav->reg_3F4); b43_phy_write(dev, 21, (int )sav->phy_pgactl); b43_phy_write(dev, 42, (int )sav->phy_cck_2A); b43_phy_write(dev, 53, (int )sav->phy_syncctl); b43_phy_write(dev, 96, (int )sav->phy_dacctl); b43_radio_write(dev, 67, (int )sav->radio_43); b43_radio_write(dev, 122, (int )sav->radio_7A); if (((unsigned int )phy->rev <= 1U || (unsigned int )phy->radio_ver != 8272U) || (unsigned int )phy->radio_rev != 8U) { tmp = sav->radio_52; b43_radio_maskset(dev, 82, 65295, (int )tmp); } else { } b43_write16(dev, 994, (int )sav->reg_3E2); if (((unsigned int )phy->type == 1U && (unsigned int )phy->radio_ver == 8272U) && (unsigned int )phy->radio_rev <= 5U) { b43_phy_write(dev, 48, (int )sav->phy_cck_30); b43_phy_write(dev, 6, (int )sav->phy_cck_06); } else { } if ((unsigned int )phy->rev > 1U) { b43_phy_write(dev, 2068, (int )sav->phy_analogover); b43_phy_write(dev, 2069, (int )sav->phy_analogoverval); b43_phy_write(dev, 2050, (int )sav->phy_classctl); b43_phy_write(dev, 2065, (int )sav->phy_rfover); b43_phy_write(dev, 2066, (int )sav->phy_rfoverval); b43_phy_write(dev, 62, (int )sav->phy_cck_3E); b43_phy_write(dev, 1065, (int )sav->phy_crs0); } else { } tmp___0 = b43_has_hardware_pctl(dev); if ((int )tmp___0) { tmp = (unsigned int )sav->phy_lo_mask & 49151U; b43_phy_write(dev, 2063, (int )tmp); b43_phy_write(dev, 2049, (int )sav->phy_extg_01); b43_phy_write(dev, 96, (int )sav->phy_dacctl_hwpctl); b43_phy_write(dev, 20, (int )sav->phy_cck_14); b43_phy_write(dev, 1144, (int )sav->phy_hpwr_tssictl); } else { } b43_gphy_channel_switch(dev, (unsigned int )sav->old_channel, 1); return; } } static int lo_probe_possible_loctls(struct b43_wldev *dev , struct b43_loctl *probe_loctl , struct b43_lo_g_statemachine *d ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; struct b43_loctl test_loctl ; struct b43_loctl orig_loctl ; struct b43_loctl prev_loctl ; int i ; int begin ; int end ; int found_lower ; u16 feedth ; struct b43_loctl modifiers[8U] ; int __ret_warn_on ; long tmp ; long ret ; int __x___0 ; long ret___0 ; int __x___2 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; prev_loctl.i = -100; prev_loctl.q = -100; found_lower = 0; modifiers[0].i = 1; modifiers[0].q = 1; modifiers[1].i = 1; modifiers[1].q = 0; modifiers[2].i = 1; modifiers[2].q = -1; modifiers[3].i = 0; modifiers[3].q = -1; modifiers[4].i = -1; modifiers[4].q = -1; modifiers[5].i = -1; modifiers[5].q = 0; modifiers[6].i = -1; modifiers[6].q = 1; modifiers[7].i = 0; modifiers[7].q = 1; if (d->current_state == 0) { begin = 1; end = 8; } else if (((unsigned int )d->current_state & 1U) == 0U) { begin = d->current_state + -1; end = d->current_state + 1; } else { begin = d->current_state + -2; end = d->current_state + 2; } if (begin <= 0) { begin = begin + 8; } else { } if (end > 8) { end = end + -8; } else { } memcpy((void *)(& orig_loctl), (void const *)probe_loctl, 2UL); i = begin; d->current_state = i; ldv_54182: __ret_warn_on = i <= 0 || i > 8; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/lo.c", 623); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); memcpy((void *)(& test_loctl), (void const *)(& orig_loctl), 2UL); test_loctl.i = (s8 )((int )((unsigned char )test_loctl.i) + (int )((unsigned char )modifiers[i + -1].i) * (int )((unsigned char )d->state_val_multiplier)); test_loctl.q = (s8 )((int )((unsigned char )test_loctl.q) + (int )((unsigned char )modifiers[i + -1].q) * (int )((unsigned char )d->state_val_multiplier)); if ((int )test_loctl.i != (int )prev_loctl.i || (int )test_loctl.q != (int )prev_loctl.q) { __x___0 = (int )test_loctl.i; ret = (long )(__x___0 < 0 ? - __x___0 : __x___0); if (ret <= 16L) { __x___2 = (int )test_loctl.q; ret___0 = (long )(__x___2 < 0 ? - __x___2 : __x___2); if (ret___0 <= 16L) { b43_lo_write(dev, & test_loctl); feedth = lo_measure_feedthrough(dev, (int )((u16 )gphy->lna_gain), (int )((u16 )gphy->pga_gain), (int )((u16 )gphy->trsw_rx_gain)); if ((int )d->lowest_feedth > (int )feedth) { memcpy((void *)probe_loctl, (void const *)(& test_loctl), 2UL); found_lower = 1; d->lowest_feedth = feedth; if (d->nr_measured <= 1 && ((unsigned int )phy->rev <= 1U && ! phy->gmode)) { goto ldv_54181; } else { } } else { } } else { } } else { } } else { } memcpy((void *)(& prev_loctl), (void const *)(& test_loctl), 2UL); if (i == end) { goto ldv_54181; } else { } if (i == 8) { i = 1; } else { i = i + 1; } d->current_state = i; goto ldv_54182; ldv_54181: ; return (found_lower); } } static void lo_probe_loctls_statemachine(struct b43_wldev *dev , struct b43_loctl *loctl , int *max_rx_gain ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; struct b43_lo_g_statemachine d ; u16 feedth ; int found_lower ; struct b43_loctl probe_loctl ; int max_repeat ; int repeat_cnt ; int __ret_warn_on ; long tmp ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; max_repeat = 1; repeat_cnt = 0; d.nr_measured = 0; d.state_val_multiplier = 1; if ((unsigned int )phy->rev > 1U || (int )phy->gmode) { d.state_val_multiplier = 3; } else { } memcpy((void *)(& d.min_loctl), (void const *)loctl, 2UL); if ((unsigned int )phy->rev > 1U || (int )phy->gmode) { max_repeat = 4; } else { } ldv_54200: b43_lo_write(dev, & d.min_loctl); feedth = lo_measure_feedthrough(dev, (int )((u16 )gphy->lna_gain), (int )((u16 )gphy->pga_gain), (int )((u16 )gphy->trsw_rx_gain)); if ((unsigned int )feedth <= 599U) { if ((unsigned int )feedth > 299U) { *max_rx_gain = *max_rx_gain + 6; } else { *max_rx_gain = *max_rx_gain + 3; } feedth = lo_measure_feedthrough(dev, (int )((u16 )gphy->lna_gain), (int )((u16 )gphy->pga_gain), (int )((u16 )gphy->trsw_rx_gain)); } else { } d.lowest_feedth = feedth; d.current_state = 0; ldv_54199: __ret_warn_on = d.current_state < 0 || d.current_state > 8; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/lo.c", 697); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); memcpy((void *)(& probe_loctl), (void const *)(& d.min_loctl), 2UL); found_lower = lo_probe_possible_loctls(dev, & probe_loctl, & d); if (found_lower == 0) { goto ldv_54198; } else { } if ((int )probe_loctl.i == (int )d.min_loctl.i && (int )probe_loctl.q == (int )d.min_loctl.q) { goto ldv_54198; } else { } memcpy((void *)(& d.min_loctl), (void const *)(& probe_loctl), 2UL); d.nr_measured = d.nr_measured + 1; if (d.nr_measured <= 23) { goto ldv_54199; } else { } ldv_54198: memcpy((void *)loctl, (void const *)(& d.min_loctl), 2UL); if ((unsigned int )phy->rev > 1U || (int )phy->gmode) { if ((unsigned int )d.lowest_feedth > 4500U) { *max_rx_gain = *max_rx_gain + -6; } else if ((unsigned int )d.lowest_feedth <= 1499U) { *max_rx_gain = *max_rx_gain + 3; } else { } if (repeat_cnt == 0) { if ((unsigned int )d.lowest_feedth <= 1500U) { d.state_val_multiplier = 1; repeat_cnt = repeat_cnt + 1; } else { d.state_val_multiplier = 2; } } else if (repeat_cnt == 2) { d.state_val_multiplier = 1; } else { } } else { } lo_measure_gain_values(dev, (int )((s16 )*max_rx_gain), (unsigned int )phy->rev > 1U || (int )phy->gmode); repeat_cnt = repeat_cnt + 1; if (repeat_cnt < max_repeat) { goto ldv_54200; } else { } return; } } static struct b43_lo_calib *b43_calibrate_lo_setting(struct b43_wldev *dev , struct b43_bbatt const *bbatt , struct b43_rfatt const *rfatt ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; struct b43_loctl loctl ; int max_rx_gain ; struct b43_lo_calib *cal ; struct lo_g_saved_values saved_regs ; u16 txctl_reg ; u16 txctl_value ; u16 pad_mix_gain ; bool tmp ; void *tmp___0 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; loctl.i = 0; loctl.q = 0; saved_regs = saved_regs; saved_regs.old_channel = (u8 )phy->channel; b43_mac_suspend(dev); lo_measure_setup(dev, & saved_regs); txctl_reg = lo_txctl_register_table(dev, & txctl_value, & pad_mix_gain); b43_radio_maskset(dev, 67, 65520, (int )rfatt->att); b43_radio_maskset(dev, (int )txctl_reg, ~ ((int )txctl_value), (int )rfatt->with_padmix ? (int )txctl_value : 0); max_rx_gain = (int )rfatt->att * 2; max_rx_gain = (int )((unsigned int )((unsigned char )bbatt->att) / 2U) + max_rx_gain; if ((int )rfatt->with_padmix) { max_rx_gain = max_rx_gain - (int )pad_mix_gain; } else { } if ((unsigned int )phy->rev > 1U || (int )phy->gmode) { max_rx_gain = (int )gphy->max_lb_gain + max_rx_gain; } else { } lo_measure_gain_values(dev, (int )((s16 )max_rx_gain), (unsigned int )phy->rev > 1U || (int )phy->gmode); b43_gphy_set_baseband_attenuation(dev, (int )bbatt->att); lo_probe_loctls_statemachine(dev, & loctl, & max_rx_gain); lo_measure_restore(dev, & saved_regs); b43_mac_enable(dev); tmp = b43_debug(dev, 5); if ((int )tmp) { b43dbg(dev->wl, "LO: Calibrated for BB(%u), RF(%u,%u) => I=%d Q=%d\n", (int )bbatt->att, (int )rfatt->att, (int )rfatt->with_padmix, (int )loctl.i, (int )loctl.q); } else { } tmp___0 = kmalloc(32UL, 208U); cal = (struct b43_lo_calib *)tmp___0; if ((unsigned long )cal == (unsigned long )((struct b43_lo_calib *)0)) { b43warn(dev->wl, "LO calib: out of memory\n"); return ((struct b43_lo_calib *)0); } else { } memcpy((void *)(& cal->bbatt), (void const *)bbatt, 1UL); memcpy((void *)(& cal->rfatt), (void const *)rfatt, 2UL); memcpy((void *)(& cal->ctl), (void const *)(& loctl), 2UL); cal->calib_time = jiffies; INIT_LIST_HEAD(& cal->list); return (cal); } } static struct b43_lo_calib *b43_get_calib_lo_settings(struct b43_wldev *dev , struct b43_bbatt const *bbatt , struct b43_rfatt const *rfatt ) { struct b43_txpower_lo_control *lo ; struct b43_lo_calib *c ; { lo = (dev->phy.__annonCompField106.g)->lo_control; c = b43_find_lo_calib(lo, bbatt, rfatt); if ((unsigned long )c != (unsigned long )((struct b43_lo_calib *)0)) { return (c); } else { } c = b43_calibrate_lo_setting(dev, bbatt, rfatt); if ((unsigned long )c == (unsigned long )((struct b43_lo_calib *)0)) { return ((struct b43_lo_calib *)0); } else { } list_add(& c->list, & lo->calib_list); return (c); } } void b43_gphy_dc_lt_init(struct b43_wldev *dev , bool update_all ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; struct b43_txpower_lo_control *lo ; int i ; int rf_offset ; int bb_offset ; struct b43_rfatt const *rfatt ; struct b43_bbatt const *bbatt ; u64 power_vector ; bool table_changed ; int __ret_warn_on ; long tmp ; struct b43_lo_calib *cal ; int idx ; u16 val ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; lo = gphy->lo_control; table_changed = 0; __ret_warn_on = (int )lo->rfatt_list.len * (int )lo->bbatt_list.len > 64; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/lo.c", 832); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); power_vector = lo->power_vector; if (! update_all && power_vector == 0ULL) { return; } else { } b43_mac_suspend(dev); i = 0; goto ldv_54244; ldv_54243: ; if (! update_all && ((power_vector >> i) & 1ULL) == 0ULL) { goto ldv_54242; } else { } bb_offset = i / (int )lo->rfatt_list.len; rf_offset = i % (int )lo->rfatt_list.len; bbatt = lo->bbatt_list.list + (unsigned long )bb_offset; rfatt = lo->rfatt_list.list + (unsigned long )rf_offset; cal = b43_calibrate_lo_setting(dev, bbatt, rfatt); if ((unsigned long )cal == (unsigned long )((struct b43_lo_calib *)0)) { b43warn(dev->wl, "LO: Could not calibrate DC table entry\n"); goto ldv_54242; } else { } val = (u16 )((unsigned char )cal->ctl.q); val = (u16 )((int )((short )((int )((unsigned char )cal->ctl.i) << 4)) | (int )((short )val)); kfree((void const *)cal); idx = i / 2; if (i & 1) { lo->dc_lt[idx] = (u16 )(((int )((short )lo->dc_lt[idx]) & 255) | (int )((short )((int )val << 8))); } else { lo->dc_lt[idx] = (u16 )(((int )((short )lo->dc_lt[idx]) & -256) | ((int )((short )val) & 255)); } table_changed = 1; ldv_54242: i = i + 1; ldv_54244: ; if (i <= 63) { goto ldv_54243; } else { } if ((int )table_changed) { i = 0; goto ldv_54247; ldv_54246: b43_phy_write(dev, (int )((unsigned int )((u16 )i) + 928U), (int )lo->dc_lt[i]); i = i + 1; ldv_54247: ; if (i <= 31) { goto ldv_54246; } else { } } else { } b43_mac_enable(dev); return; } } __inline static void b43_lo_fixup_rfatt(struct b43_rfatt *rf ) { { if (! rf->with_padmix) { return; } else { } if (((unsigned int )rf->att != 1U && (unsigned int )rf->att != 2U) && (unsigned int )rf->att != 3U) { rf->att = 4U; } else { } return; } } void b43_lo_g_adjust(struct b43_wldev *dev ) { struct b43_phy_g *gphy ; struct b43_lo_calib *cal ; struct b43_rfatt rf ; { gphy = dev->phy.__annonCompField106.g; memcpy((void *)(& rf), (void const *)(& gphy->rfatt), 2UL); b43_lo_fixup_rfatt(& rf); cal = b43_get_calib_lo_settings(dev, (struct b43_bbatt const *)(& gphy->bbatt), (struct b43_rfatt const *)(& rf)); if ((unsigned long )cal == (unsigned long )((struct b43_lo_calib *)0)) { return; } else { } b43_lo_write(dev, & cal->ctl); return; } } void b43_lo_g_adjust_to(struct b43_wldev *dev , u16 rfatt , u16 bbatt , u16 tx_control ) { struct b43_rfatt rf ; struct b43_bbatt bb ; struct b43_lo_calib *cal ; { memset((void *)(& rf), 0, 2UL); memset((void *)(& bb), 0, 1UL); rf.att = (u8 )rfatt; bb.att = (u8 )bbatt; b43_lo_fixup_rfatt(& rf); cal = b43_get_calib_lo_settings(dev, (struct b43_bbatt const *)(& bb), (struct b43_rfatt const *)(& rf)); if ((unsigned long )cal == (unsigned long )((struct b43_lo_calib *)0)) { return; } else { } b43_lo_write(dev, & cal->ctl); return; } } void b43_lo_g_maintanance_work(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; struct b43_txpower_lo_control *lo ; unsigned long now ; unsigned long expire ; struct b43_lo_calib *cal ; struct b43_lo_calib *tmp ; bool current_item_expired ; bool hwpctl ; struct list_head const *__mptr ; struct list_head const *__mptr___0 ; int __ret_warn_on ; long tmp___0 ; bool tmp___1 ; bool tmp___2 ; bool tmp___3 ; struct list_head const *__mptr___1 ; bool tmp___4 ; int tmp___5 ; long tmp___6 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; lo = gphy->lo_control; current_item_expired = 0; if ((unsigned long )lo == (unsigned long )((struct b43_txpower_lo_control *)0)) { return; } else { } now = jiffies; hwpctl = b43_has_hardware_pctl(dev); if ((int )hwpctl) { expire = now - 7000UL; if ((long )(lo->pwr_vec_read_time - expire) < 0L) { lo_read_power_vector(dev); b43_gphy_dc_lt_init(dev, 0); } else { } } else { } if ((int )hwpctl) { return; } else { } expire = now - 7000UL; __mptr = (struct list_head const *)lo->calib_list.next; cal = (struct b43_lo_calib *)__mptr + 0xfffffffffffffff0UL; __mptr___0 = (struct list_head const *)cal->list.next; tmp = (struct b43_lo_calib *)__mptr___0 + 0xfffffffffffffff0UL; goto ldv_54301; ldv_54300: ; if ((long )(cal->calib_time - expire) >= 0L) { goto ldv_54297; } else { } tmp___1 = b43_compare_bbatt((struct b43_bbatt const *)(& cal->bbatt), (struct b43_bbatt const *)(& gphy->bbatt)); if ((int )tmp___1) { tmp___2 = b43_compare_rfatt((struct b43_rfatt const *)(& cal->rfatt), (struct b43_rfatt const *)(& gphy->rfatt)); if ((int )tmp___2) { __ret_warn_on = (int )current_item_expired; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/lo.c", 970); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); current_item_expired = 1; } else { } } else { } tmp___3 = b43_debug(dev, 5); if ((int )tmp___3) { b43dbg(dev->wl, "LO: Item BB(%u), RF(%u,%u), I=%d, Q=%d expired\n", (int )cal->bbatt.att, (int )cal->rfatt.att, (int )cal->rfatt.with_padmix, (int )cal->ctl.i, (int )cal->ctl.q); } else { } list_del(& cal->list); kfree((void const *)cal); ldv_54297: cal = tmp; __mptr___1 = (struct list_head const *)tmp->list.next; tmp = (struct b43_lo_calib *)__mptr___1 + 0xfffffffffffffff0UL; ldv_54301: ; if ((unsigned long )(& cal->list) != (unsigned long )(& lo->calib_list)) { goto ldv_54300; } else { } if ((int )current_item_expired) { goto _L; } else { tmp___5 = list_empty((struct list_head const *)(& lo->calib_list)); tmp___6 = ldv__builtin_expect(tmp___5 != 0, 0L); if (tmp___6 != 0L) { _L: /* CIL Label */ tmp___4 = b43_debug(dev, 5); if ((int )tmp___4) { b43dbg(dev->wl, "LO: Recalibrating current LO setting\n"); } else { } cal = b43_calibrate_lo_setting(dev, (struct b43_bbatt const *)(& gphy->bbatt), (struct b43_rfatt const *)(& gphy->rfatt)); if ((unsigned long )cal != (unsigned long )((struct b43_lo_calib *)0)) { list_add(& cal->list, & lo->calib_list); b43_lo_write(dev, & cal->ctl); } else { b43warn(dev->wl, "Failed to recalibrate current LO setting\n"); } } else { } } return; } } void b43_lo_g_cleanup(struct b43_wldev *dev ) { struct b43_txpower_lo_control *lo ; struct b43_lo_calib *cal ; struct b43_lo_calib *tmp ; struct list_head const *__mptr ; struct list_head const *__mptr___0 ; struct list_head const *__mptr___1 ; { lo = (dev->phy.__annonCompField106.g)->lo_control; if ((unsigned long )lo == (unsigned long )((struct b43_txpower_lo_control *)0)) { return; } else { } __mptr = (struct list_head const *)lo->calib_list.next; cal = (struct b43_lo_calib *)__mptr + 0xfffffffffffffff0UL; __mptr___0 = (struct list_head const *)cal->list.next; tmp = (struct b43_lo_calib *)__mptr___0 + 0xfffffffffffffff0UL; goto ldv_54316; ldv_54315: list_del(& cal->list); kfree((void const *)cal); cal = tmp; __mptr___1 = (struct list_head const *)tmp->list.next; tmp = (struct b43_lo_calib *)__mptr___1 + 0xfffffffffffffff0UL; ldv_54316: ; if ((unsigned long )(& cal->list) != (unsigned long )(& lo->calib_list)) { goto ldv_54315; } else { } return; } } void b43_lo_g_init(struct b43_wldev *dev ) { bool tmp ; { tmp = b43_has_hardware_pctl(dev); if ((int )tmp) { lo_read_power_vector(dev); b43_gphy_dc_lt_init(dev, 1); } else { } return; } } bool ldv_queue_work_on_113(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_114(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_115(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_116(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_117(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_118(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; bool ldv_queue_work_on_129(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_131(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_130(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_133(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_132(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_134(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; static void b43_wa_papd(struct b43_wldev *dev ) { u16 backup ; { backup = b43_ofdmtab_read16(dev, 14348, 0); b43_ofdmtab_write16(dev, 14348, 0, 7); b43_ofdmtab_write16(dev, 15367, 0, 0); b43_dummy_transmission(dev, 1, 1); b43_ofdmtab_write16(dev, 14348, 0, (int )backup); return; } } static void b43_wa_auxclipthr(struct b43_wldev *dev ) { { b43_phy_write(dev, 1166, 14336); return; } } static void b43_wa_afcdac(struct b43_wldev *dev ) { { b43_phy_write(dev, 53, 1023); b43_phy_write(dev, 54, 1024); return; } } static void b43_wa_txdc_offset(struct b43_wldev *dev ) { { b43_ofdmtab_write16(dev, 14343, 0, 81); return; } } void b43_wa_initgains(struct b43_wldev *dev ) { struct b43_phy *phy ; { phy = & dev->phy; b43_phy_write(dev, 1052, 8185); b43_phy_mask(dev, 1056, 65295); if ((unsigned int )phy->rev <= 2U) { b43_ofdmtab_write16(dev, 15372, 0, 8127); } else { } b43_radio_write(dev, 2, 8127); b43_phy_write(dev, 36, 18048); b43_phy_write(dev, 32, 3); b43_phy_write(dev, 29, 3904); b43_phy_write(dev, 31, 7168); if ((unsigned int )phy->rev <= 3U) { b43_phy_maskset(dev, 42, 255, 1024); } else if ((unsigned int )phy->rev == 5U) { b43_phy_maskset(dev, 42, 255, 6656); b43_phy_write(dev, 204, 8481); } else { } if ((unsigned int )phy->rev > 2U) { b43_phy_write(dev, 186, 16085); } else { } return; } } static void b43_wa_divider(struct b43_wldev *dev ) { { b43_phy_mask(dev, 43, 65279); b43_phy_write(dev, 142, 22721); return; } } static void b43_wa_gt(struct b43_wldev *dev ) { { if ((unsigned int )dev->phy.rev <= 2U) { b43_ofdmtab_write16(dev, 2051, 0, 15); b43_ofdmtab_write16(dev, 2051, 1, 31); b43_ofdmtab_write16(dev, 2051, 2, 42); b43_ofdmtab_write16(dev, 2051, 3, 48); b43_ofdmtab_write16(dev, 2051, 4, 58); b43_ofdmtab_write16(dev, 0, 0, 19); b43_ofdmtab_write16(dev, 0, 1, 19); b43_ofdmtab_write16(dev, 0, 2, 19); b43_ofdmtab_write16(dev, 0, 3, 19); b43_ofdmtab_write16(dev, 0, 4, 21); b43_ofdmtab_write16(dev, 0, 5, 21); b43_ofdmtab_write16(dev, 0, 6, 25); b43_ofdmtab_write16(dev, 1028, 0, 3); b43_ofdmtab_write16(dev, 1028, 1, 3); b43_ofdmtab_write16(dev, 1028, 2, 7); } else { b43_ofdmtab_write16(dev, 0, 0, 19); b43_ofdmtab_write16(dev, 0, 1, 19); b43_ofdmtab_write16(dev, 0, 2, 19); b43_ofdmtab_write16(dev, 0, 3, 19); b43_ofdmtab_write16(dev, 0, 4, 21); b43_ofdmtab_write16(dev, 0, 5, 21); b43_ofdmtab_write16(dev, 0, 6, 25); } return; } } static void b43_wa_rssi_lt(struct b43_wldev *dev ) { int i ; { if (0) { i = 0; goto ldv_54029; ldv_54028: b43_ofdmtab_write16(dev, 16384, (int )((u16 )i), (int )((unsigned int )((u16 )i) + 8U)); i = i + 1; ldv_54029: ; if (i <= 7) { goto ldv_54028; } else { } i = 8; goto ldv_54032; ldv_54031: b43_ofdmtab_write16(dev, 16384, (int )((u16 )i), (int )((unsigned int )((u16 )i) + 65528U)); i = i + 1; ldv_54032: ; if (i <= 15) { goto ldv_54031; } else { } } else { i = 0; goto ldv_54035; ldv_54034: b43_ofdmtab_write16(dev, 16384, (int )((u16 )i), (int )((u16 )i)); i = i + 1; ldv_54035: ; if (i <= 63) { goto ldv_54034; } else { } } return; } } static void b43_wa_analog(struct b43_wldev *dev ) { struct b43_phy *phy ; u16 ofdmrev ; u16 tmp ; { phy = & dev->phy; tmp = b43_phy_read(dev, 1024); ofdmrev = (unsigned int )tmp & 255U; if ((unsigned int )ofdmrev > 2U) { if ((unsigned int )phy->type == 0U) { b43_phy_write(dev, 1027, 6152); } else { b43_phy_write(dev, 1027, 4096); } } else { b43_ofdmtab_write16(dev, 12288, 3, 4164); b43_ofdmtab_write16(dev, 12288, 4, 29185); b43_ofdmtab_write16(dev, 12288, 6, 64); } return; } } static void b43_wa_dac(struct b43_wldev *dev ) { u16 tmp ; u16 tmp___0 ; { if ((unsigned int )dev->phy.analog == 1U) { tmp = b43_ofdmtab_read16(dev, 12288, 1); b43_ofdmtab_write16(dev, 12288, 1, (int )((u16 )(((int )((short )tmp) & -61) | 8))); } else { tmp___0 = b43_ofdmtab_read16(dev, 12288, 1); b43_ofdmtab_write16(dev, 12288, 1, (int )((u16 )(((int )((short )tmp___0) & -121) | 16))); } return; } } static void b43_wa_fft(struct b43_wldev *dev ) { int i ; { if ((unsigned int )dev->phy.type == 0U) { i = 0; goto ldv_54050; ldv_54049: b43_ofdmtab_write16(dev, 22528, (int )((u16 )i), (int )b43_tab_finefreqa[i]); i = i + 1; ldv_54050: ; if (i <= 255) { goto ldv_54049; } else { } } else { i = 0; goto ldv_54053; ldv_54052: b43_ofdmtab_write16(dev, 22528, (int )((u16 )i), (int )b43_tab_finefreqg[i]); i = i + 1; ldv_54053: ; if (i <= 255) { goto ldv_54052; } else { } } return; } } static void b43_wa_nft(struct b43_wldev *dev ) { struct b43_phy *phy ; int i ; { phy = & dev->phy; if ((unsigned int )phy->type == 0U) { if ((unsigned int )phy->rev == 2U) { i = 0; goto ldv_54061; ldv_54060: b43_ofdmtab_write16(dev, 6144, (int )((u16 )i), (int )b43_tab_noisea2[i]); i = i + 1; ldv_54061: ; if (i <= 7) { goto ldv_54060; } else { } } else { i = 0; goto ldv_54064; ldv_54063: b43_ofdmtab_write16(dev, 6144, (int )((u16 )i), (int )b43_tab_noisea3[i]); i = i + 1; ldv_54064: ; if (i <= 7) { goto ldv_54063; } else { } } } else if ((unsigned int )phy->rev == 1U) { i = 0; goto ldv_54067; ldv_54066: b43_ofdmtab_write16(dev, 6144, (int )((u16 )i), (int )b43_tab_noiseg1[i]); i = i + 1; ldv_54067: ; if (i <= 7) { goto ldv_54066; } else { } } else { i = 0; goto ldv_54070; ldv_54069: b43_ofdmtab_write16(dev, 6144, (int )((u16 )i), (int )b43_tab_noiseg2[i]); i = i + 1; ldv_54070: ; if (i <= 7) { goto ldv_54069; } else { } } return; } } static void b43_wa_rt(struct b43_wldev *dev ) { int i ; { i = 0; goto ldv_54077; ldv_54076: b43_ofdmtab_write32(dev, 8192, (int )((u16 )i), b43_tab_rotor[i]); i = i + 1; ldv_54077: ; if (i <= 52) { goto ldv_54076; } else { } return; } } static void b43_write_null_nst(struct b43_wldev *dev ) { int i ; { i = 0; goto ldv_54084; ldv_54083: b43_ofdmtab_write16(dev, 5120, (int )((u16 )i), 0); i = i + 1; ldv_54084: ; if (i <= 26) { goto ldv_54083; } else { } return; } } static void b43_write_nst(struct b43_wldev *dev , u16 const *nst ) { int i ; { i = 0; goto ldv_54092; ldv_54091: b43_ofdmtab_write16(dev, 5120, (int )((u16 )i), (int )*(nst + (unsigned long )i)); i = i + 1; ldv_54092: ; if (i <= 26) { goto ldv_54091; } else { } return; } } static void b43_wa_nst(struct b43_wldev *dev ) { struct b43_phy *phy ; u16 tmp ; { phy = & dev->phy; if ((unsigned int )phy->type == 0U) { if ((unsigned int )phy->rev <= 1U) { b43_write_null_nst(dev); } else if ((unsigned int )phy->rev == 2U) { b43_write_nst(dev, (u16 const *)(& b43_tab_noisescalea2)); } else if ((unsigned int )phy->rev == 3U) { b43_write_nst(dev, (u16 const *)(& b43_tab_noisescalea3)); } else { b43_write_nst(dev, (u16 const *)(& b43_tab_noisescaleg3)); } } else if ((unsigned int )phy->rev > 5U) { tmp = b43_phy_read(dev, 1097); if (((int )tmp & 512) != 0) { b43_write_nst(dev, (u16 const *)(& b43_tab_noisescaleg3)); } else { b43_write_nst(dev, (u16 const *)(& b43_tab_noisescaleg2)); } } else { b43_write_nst(dev, (u16 const *)(& b43_tab_noisescaleg1)); } return; } } static void b43_wa_art(struct b43_wldev *dev ) { int i ; { i = 0; goto ldv_54103; ldv_54102: b43_ofdmtab_write32(dev, 9216, (int )((u16 )i), b43_tab_retard[i]); i = i + 1; ldv_54103: ; if (i <= 52) { goto ldv_54102; } else { } return; } } static void b43_wa_txlna_gain(struct b43_wldev *dev ) { { b43_ofdmtab_write16(dev, 14343, 13, 0); return; } } static void b43_wa_crs_reset(struct b43_wldev *dev ) { { b43_phy_write(dev, 44, 100); return; } } static void b43_wa_2060txlna_gain(struct b43_wldev *dev ) { u64 tmp ; { tmp = b43_hf_read(dev); b43_hf_write(dev, tmp | 4096ULL); return; } } static void b43_wa_lms(struct b43_wldev *dev ) { { b43_phy_maskset(dev, 85, 65472, 4); return; } } static void b43_wa_mixedsignal(struct b43_wldev *dev ) { { b43_ofdmtab_write16(dev, 12288, 1, 3); return; } } static void b43_wa_msst(struct b43_wldev *dev ) { struct b43_phy *phy ; int i ; u16 const *tab ; int __ret_warn_on ; long tmp ; { phy = & dev->phy; if ((unsigned int )phy->type == 0U) { tab = (u16 const *)(& b43_tab_sigmasqr1); } else if ((unsigned int )phy->type == 2U) { tab = (u16 const *)(& b43_tab_sigmasqr2); } else { __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/wa.c", 291); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return; } i = 0; goto ldv_54129; ldv_54128: b43_ofdmtab_write16(dev, 20480, (int )((u16 )i), (int )*(tab + (unsigned long )i)); i = i + 1; ldv_54129: ; if (i <= 52) { goto ldv_54128; } else { } return; } } static void b43_wa_iqadc(struct b43_wldev *dev ) { u16 tmp ; { if ((unsigned int )dev->phy.analog == 4U) { tmp = b43_ofdmtab_read16(dev, 12288, 0); b43_ofdmtab_write16(dev, 12288, 0, (int )tmp & 4095); } else { } return; } } static void b43_wa_crs_ed(struct b43_wldev *dev ) { struct b43_phy *phy ; { phy = & dev->phy; if ((unsigned int )phy->rev == 1U) { b43_phy_write(dev, 1030, 20249); } else if ((unsigned int )phy->rev == 2U) { b43_phy_write(dev, 1216, 6241); b43_phy_write(dev, 1217, 625); b43_phy_set(dev, 1067, 2048); } else { b43_phy_write(dev, 1216, 152); b43_phy_write(dev, 1217, 112); b43_phy_write(dev, 1225, 128); b43_phy_set(dev, 1067, 2048); } return; } } static void b43_wa_crs_thr(struct b43_wldev *dev ) { { b43_phy_maskset(dev, 1065, 64575, 53248); return; } } static void b43_wa_crs_blank(struct b43_wldev *dev ) { { b43_phy_write(dev, 1068, 90); return; } } static void b43_wa_cck_shiftbits(struct b43_wldev *dev ) { { b43_phy_write(dev, 1191, 38); return; } } static void b43_wa_wrssi_offset(struct b43_wldev *dev ) { int i ; { if ((unsigned int )dev->phy.rev == 1U) { i = 0; goto ldv_54152; ldv_54151: b43_ofdmtab_write16(dev, 21508, (int )((u16 )i), 32); i = i + 1; ldv_54152: ; if (i <= 15) { goto ldv_54151; } else { } } else { i = 0; goto ldv_54155; ldv_54154: b43_ofdmtab_write16(dev, 4096, (int )((u16 )i), 2080); i = i + 1; ldv_54155: ; if (i <= 31) { goto ldv_54154; } else { } } return; } } static void b43_wa_txpuoff_rxpuon(struct b43_wldev *dev ) { { b43_ofdmtab_write16(dev, 15360, 2, 15); b43_ofdmtab_write16(dev, 15360, 3, 20); return; } } static void b43_wa_altagc(struct b43_wldev *dev ) { struct b43_phy *phy ; { phy = & dev->phy; if ((unsigned int )phy->rev == 1U) { b43_ofdmtab_write16(dev, 19456, 0, 254); b43_ofdmtab_write16(dev, 19456, 1, 13); b43_ofdmtab_write16(dev, 19456, 2, 19); b43_ofdmtab_write16(dev, 19456, 3, 25); b43_ofdmtab_write16(dev, 6144, 0, 10000); b43_ofdmtab_write16(dev, 6144, 1, 39811); b43_ofdmtab_write16(dev, 6144, 2, 39811); b43_ofdmtab_write16(dev, 6144, 3, 3981); b43_phy_write(dev, 1109, 4); } else { b43_ofdmtab_write16(dev, 0, 0, 254); b43_ofdmtab_write16(dev, 0, 1, 13); b43_ofdmtab_write16(dev, 0, 2, 19); b43_ofdmtab_write16(dev, 0, 3, 25); } b43_phy_maskset(dev, 1189, 255, 22272); b43_phy_maskset(dev, 1050, 65408, 15); b43_phy_maskset(dev, 1050, 49279, 11136); b43_phy_maskset(dev, 1164, 61695, 768); b43_radio_set(dev, 122, 8); b43_phy_maskset(dev, 1184, 65520, 8); b43_phy_maskset(dev, 1185, 61695, 1536); b43_phy_maskset(dev, 1186, 61695, 1792); b43_phy_maskset(dev, 1184, 61695, 256); if ((unsigned int )phy->rev == 1U) { b43_phy_maskset(dev, 1186, 65520, 7); } else { } b43_phy_maskset(dev, 1160, 65280, 28); b43_phy_maskset(dev, 1160, 49407, 512); b43_phy_maskset(dev, 1174, 65280, 28); b43_phy_maskset(dev, 1161, 65280, 32); b43_phy_maskset(dev, 1161, 49407, 512); b43_phy_maskset(dev, 1154, 65280, 46); b43_phy_maskset(dev, 1174, 255, 6656); b43_phy_maskset(dev, 1153, 65280, 40); b43_phy_maskset(dev, 1153, 255, 11264); if ((unsigned int )phy->rev == 1U) { b43_phy_write(dev, 1072, 2347); b43_phy_maskset(dev, 1051, 65505, 2); } else { b43_phy_mask(dev, 1051, 65505); b43_phy_write(dev, 1055, 10362); b43_phy_maskset(dev, 1056, 65520, 4); if ((unsigned int )phy->rev > 5U) { b43_phy_write(dev, 1058, 10362); b43_phy_maskset(dev, 1056, 4095, 12288); } else { } } b43_phy_maskset(dev, 1192, 32896, 30836); b43_phy_write(dev, 1166, 7168); if ((unsigned int )phy->rev == 1U) { b43_phy_maskset(dev, 1195, 61695, 1536); b43_phy_write(dev, 1163, 94); b43_phy_maskset(dev, 1164, 65280, 30); b43_phy_write(dev, 1165, 2); b43_ofdmtab_write16(dev, 21504, 0, 0); b43_ofdmtab_write16(dev, 21504, 1, 7); b43_ofdmtab_write16(dev, 21504, 2, 16); b43_ofdmtab_write16(dev, 21504, 3, 28); } else { b43_ofdmtab_write16(dev, 2048, 0, 0); b43_ofdmtab_write16(dev, 2048, 1, 7); b43_ofdmtab_write16(dev, 2048, 2, 16); b43_ofdmtab_write16(dev, 2048, 3, 28); } if ((unsigned int )phy->rev > 5U) { b43_phy_mask(dev, 1062, 65532); b43_phy_mask(dev, 1062, 61439); } else { } b43_phy_read(dev, 1024); return; } } static void b43_wa_tr_ltov(struct b43_wldev *dev ) { { b43_gtab_write(dev, 47768, 0, 30292); return; } } static void b43_wa_cpll_nonpilot(struct b43_wldev *dev ) { { b43_ofdmtab_write16(dev, 17412, 0, 0); b43_ofdmtab_write16(dev, 17412, 1, 0); return; } } static void b43_wa_rssi_adc(struct b43_wldev *dev ) { { if ((unsigned int )dev->phy.analog == 4U) { b43_phy_write(dev, 220, 29780); } else { } return; } } static void b43_wa_boards_a(struct b43_wldev *dev ) { { if (((unsigned int )(dev->dev)->board_vendor == 5348U && (unsigned int )(dev->dev)->board_type == 1046U) && (unsigned int )(dev->dev)->board_rev <= 47U) { b43_phy_write(dev, 16, 57344); b43_phy_write(dev, 19, 320); b43_phy_write(dev, 20, 640); } else { if ((unsigned int )(dev->dev)->board_type == 1098U && (unsigned int )(dev->dev)->board_rev <= 31U) { b43_phy_write(dev, 19, 528); b43_phy_write(dev, 20, 2112); } else { b43_phy_write(dev, 19, 320); b43_phy_write(dev, 20, 640); } if ((unsigned int )dev->phy.rev <= 4U) { b43_phy_write(dev, 16, 57344); } else { b43_phy_write(dev, 16, 8192); } b43_ofdmtab_write16(dev, 14343, 1, 57); b43_ofdmtab_write16(dev, 15367, 7, 64); } return; } } static void b43_wa_boards_g(struct b43_wldev *dev ) { struct ssb_sprom *sprom ; struct b43_phy *phy ; { sprom = (dev->dev)->bus_sprom; phy = & dev->phy; if (((unsigned int )(dev->dev)->board_vendor != 5348U || (unsigned int )(dev->dev)->board_type != 1046U) || (unsigned int )(dev->dev)->board_rev != 23U) { if ((unsigned int )phy->rev <= 1U) { b43_ofdmtab_write16(dev, 20480, 1, 2); b43_ofdmtab_write16(dev, 20480, 2, 1); } else { b43_ofdmtab_write16(dev, 1024, 1, 2); b43_ofdmtab_write16(dev, 1024, 2, 1); if (((int )sprom->boardflags_lo & 4096) != 0 && (unsigned int )phy->rev > 6U) { b43_phy_mask(dev, 2065, 63487); b43_ofdmtab_write16(dev, 1024, 32, 1); b43_ofdmtab_write16(dev, 1024, 33, 1); b43_ofdmtab_write16(dev, 1024, 34, 1); b43_ofdmtab_write16(dev, 1024, 35, 0); b43_ofdmtab_write16(dev, 1024, 0, 0); b43_ofdmtab_write16(dev, 1024, 3, 2); } else { } } } else { } if (((int )sprom->boardflags_lo & 2048) != 0) { b43_phy_write(dev, 2051, 12576); b43_phy_write(dev, 2052, 50304); } else { } return; } } void b43_wa_all(struct b43_wldev *dev ) { struct b43_phy *phy ; int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; int __ret_warn_on___1 ; long tmp___1 ; { phy = & dev->phy; if ((unsigned int )phy->type == 0U) { switch ((int )phy->rev) { case 2: b43_wa_papd(dev); b43_wa_auxclipthr(dev); b43_wa_afcdac(dev); b43_wa_txdc_offset(dev); b43_wa_initgains(dev); b43_wa_divider(dev); b43_wa_gt(dev); b43_wa_rssi_lt(dev); b43_wa_analog(dev); b43_wa_dac(dev); b43_wa_fft(dev); b43_wa_nft(dev); b43_wa_rt(dev); b43_wa_nst(dev); b43_wa_art(dev); b43_wa_txlna_gain(dev); b43_wa_crs_reset(dev); b43_wa_2060txlna_gain(dev); b43_wa_lms(dev); goto ldv_54186; case 3: b43_wa_papd(dev); b43_wa_mixedsignal(dev); b43_wa_rssi_lt(dev); b43_wa_txdc_offset(dev); b43_wa_initgains(dev); b43_wa_dac(dev); b43_wa_nft(dev); b43_wa_nst(dev); b43_wa_msst(dev); b43_wa_analog(dev); b43_wa_gt(dev); b43_wa_txpuoff_rxpuon(dev); b43_wa_txlna_gain(dev); goto ldv_54186; case 5: b43_wa_iqadc(dev); case 6: b43_wa_papd(dev); b43_wa_rssi_lt(dev); b43_wa_txdc_offset(dev); b43_wa_initgains(dev); b43_wa_dac(dev); b43_wa_nft(dev); b43_wa_nst(dev); b43_wa_msst(dev); b43_wa_analog(dev); b43_wa_gt(dev); b43_wa_txpuoff_rxpuon(dev); b43_wa_txlna_gain(dev); goto ldv_54186; case 7: b43_wa_iqadc(dev); b43_wa_papd(dev); b43_wa_rssi_lt(dev); b43_wa_txdc_offset(dev); b43_wa_initgains(dev); b43_wa_dac(dev); b43_wa_nft(dev); b43_wa_nst(dev); b43_wa_msst(dev); b43_wa_analog(dev); b43_wa_gt(dev); b43_wa_txpuoff_rxpuon(dev); b43_wa_txlna_gain(dev); b43_wa_rssi_adc(dev); default: __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/wa.c", 591); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); } ldv_54186: b43_wa_boards_a(dev); } else if ((unsigned int )phy->type == 2U) { switch ((int )phy->rev) { case 1: b43_wa_crs_ed(dev); b43_wa_crs_thr(dev); b43_wa_crs_blank(dev); b43_wa_cck_shiftbits(dev); b43_wa_fft(dev); b43_wa_nft(dev); b43_wa_rt(dev); b43_wa_nst(dev); b43_wa_art(dev); b43_wa_wrssi_offset(dev); b43_wa_altagc(dev); goto ldv_54195; case 2: ; case 6: ; case 7: ; case 8: ; case 9: b43_wa_tr_ltov(dev); b43_wa_crs_ed(dev); b43_wa_rssi_lt(dev); b43_wa_nft(dev); b43_wa_nst(dev); b43_wa_msst(dev); b43_wa_wrssi_offset(dev); b43_wa_altagc(dev); b43_wa_analog(dev); b43_wa_txpuoff_rxpuon(dev); goto ldv_54195; default: __ret_warn_on___0 = 1; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/wa.c", 626); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); } ldv_54195: b43_wa_boards_g(dev); } else { __ret_warn_on___1 = 1; tmp___1 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/wa.c", 630); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); } b43_wa_cpll_nonpilot(dev); return; } } bool ldv_queue_work_on_129(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_130(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_131(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_132(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_133(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_134(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; bool ldv_queue_work_on_145(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_147(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_146(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_149(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_148(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_150(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; bool b43_is_40mhz(struct b43_wldev *dev ) ; struct nphy_gain_ctl_workaround_entry *b43_nphy_get_gain_ctl_workaround_ent(struct b43_wldev *dev , bool ghz5 , bool ext_lna ) ; u32 b43_ntab_read(struct b43_wldev *dev , u32 offset ) ; void b43_ntab_read_bulk(struct b43_wldev *dev , u32 offset , unsigned int nr_elements , void *_data___0 ) ; void b43_ntab_write(struct b43_wldev *dev , u32 offset , u32 value ) ; void b43_ntab_write_bulk(struct b43_wldev *dev , u32 offset , unsigned int nr_elements , void const *_data___0 ) ; void b43_nphy_tables_init(struct b43_wldev *dev ) ; u32 const *b43_nphy_get_tx_gain_table(struct b43_wldev *dev ) ; s16 const *b43_ntab_get_rf_pwr_offset_table(struct b43_wldev *dev ) ; s8 const b43_ntab_papd_pga_gain_delta_ipa_2g[16U] ; u16 const tbl_iqcal_gainparams[2U][9U][8U] ; struct nphy_txiqcal_ladder const ladder_lo[18U] ; struct nphy_txiqcal_ladder const ladder_iq[18U] ; u16 const loscale[128U] ; u16 const tbl_tx_iqlo_cal_loft_ladder_40[18U] ; u16 const tbl_tx_iqlo_cal_loft_ladder_20[18U] ; u16 const tbl_tx_iqlo_cal_iqimb_ladder_40[18U] ; u16 const tbl_tx_iqlo_cal_iqimb_ladder_20[18U] ; u16 const tbl_tx_iqlo_cal_startcoefs_nphyrev3[11U] ; u16 const tbl_tx_iqlo_cal_startcoefs[9U] ; u16 const tbl_tx_iqlo_cal_cmds_recal_nphyrev3[12U] ; u16 const tbl_tx_iqlo_cal_cmds_recal[10U] ; u16 const tbl_tx_iqlo_cal_cmds_fullcal[10U] ; u16 const tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[12U] ; s16 const tbl_tx_filter_coef_rev4[7U][15U] ; struct nphy_rf_control_override_rev2 const tbl_rf_control_override_rev2[14U] ; struct nphy_rf_control_override_rev3 const tbl_rf_control_override_rev3[15U] ; struct nphy_rf_control_override_rev7 const *b43_nphy_get_rf_ctl_over_rev7(struct b43_wldev *dev , u16 field , u8 override ) ; static u8 const b43_ntab_adjustpower0[128U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u8 const b43_ntab_adjustpower1[128U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u16 const b43_ntab_bdi[6U] = { 112U, 294U, 300U, 582U, 1165U, 1234U}; static u32 const b43_ntab_channelest[96U] = { 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U}; static u8 const b43_ntab_estimatepowerlt0[64U] = { 80U, 79U, 78U, 77U, 76U, 75U, 74U, 73U, 72U, 71U, 70U, 69U, 68U, 67U, 66U, 65U, 64U, 63U, 62U, 61U, 60U, 59U, 58U, 57U, 56U, 55U, 54U, 53U, 52U, 51U, 50U, 49U, 48U, 47U, 46U, 45U, 44U, 43U, 42U, 41U, 40U, 39U, 38U, 37U, 36U, 35U, 34U, 33U, 32U, 31U, 30U, 29U, 28U, 27U, 26U, 25U, 24U, 23U, 22U, 21U, 20U, 19U, 18U, 17U}; static u8 const b43_ntab_estimatepowerlt1[64U] = { 80U, 79U, 78U, 77U, 76U, 75U, 74U, 73U, 72U, 71U, 70U, 69U, 68U, 67U, 66U, 65U, 64U, 63U, 62U, 61U, 60U, 59U, 58U, 57U, 56U, 55U, 54U, 53U, 52U, 51U, 50U, 49U, 48U, 47U, 46U, 45U, 44U, 43U, 42U, 41U, 40U, 39U, 38U, 37U, 36U, 35U, 34U, 33U, 32U, 31U, 30U, 29U, 28U, 27U, 26U, 25U, 24U, 23U, 22U, 21U, 20U, 19U, 18U, 17U}; static u8 const b43_ntab_framelookup[32U] = { 2U, 4U, 20U, 20U, 3U, 5U, 22U, 22U, 10U, 12U, 28U, 28U, 11U, 13U, 30U, 30U, 6U, 8U, 24U, 24U, 7U, 9U, 26U, 26U, 14U, 16U, 32U, 40U, 15U, 17U, 34U, 42U}; static u32 const b43_ntab_framestruct[832U] = { 134236676U, 1048576U, 16779781U, 1048608U, 159401222U, 1048624U, 159401223U, 1048624U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 134236684U, 1048580U, 16779789U, 1048612U, 159401230U, 1048628U, 159401231U, 1048628U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 2564U, 1048576U, 285248005U, 1048608U, 427869446U, 1048624U, 562103558U, 1048624U, 562103558U, 1048624U, 25167108U, 1048624U, 293635333U, 1048624U, 696337671U, 17825840U, 2564U, 1048576U, 285248005U, 1048608U, 562103558U, 1048624U, 562103558U, 1048624U, 696337671U, 17825840U, 0U, 0U, 0U, 0U, 0U, 0U, 2572U, 1048584U, 285248013U, 1048616U, 427869454U, 1048632U, 562103566U, 1048632U, 562103566U, 1048632U, 25167116U, 1048632U, 293635341U, 1048632U, 696337679U, 17825848U, 2572U, 1048584U, 285248013U, 1048616U, 562103566U, 1048632U, 562103566U, 1048632U, 696337679U, 17825848U, 0U, 0U, 0U, 0U, 0U, 0U, 134236676U, 1048576U, 16779781U, 1048608U, 427869446U, 1048624U, 427869446U, 1048624U, 293635332U, 1048624U, 964807173U, 1048624U, 696337671U, 17825840U, 0U, 0U, 268470788U, 1048576U, 964807173U, 1048624U, 427869446U, 1048624U, 696337671U, 17825840U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 134236684U, 1048584U, 16779789U, 1048616U, 427869454U, 1048632U, 427869454U, 1048632U, 293635340U, 1048632U, 964807181U, 1048632U, 696337679U, 17825848U, 0U, 0U, 268470796U, 1048584U, 964807181U, 1048632U, 427869454U, 1048632U, 696337679U, 17825848U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878020U, 1048576U, 33559557U, 1048640U, 184568326U, 26214496U, 318802438U, 26214496U, 318802438U, 26214496U, 1124207108U, 1048672U, 453036549U, 1048672U, 587270663U, 22020192U, 1073878020U, 1048576U, 436261893U, 1048640U, 318802438U, 26214496U, 318802438U, 26214496U, 587270663U, 22020192U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878028U, 1048592U, 33559565U, 1048656U, 184568334U, 26214512U, 318802446U, 26214512U, 318802446U, 26214512U, 1124207116U, 1048688U, 453036557U, 1048688U, 587270671U, 22020208U, 1073878028U, 1048592U, 436261901U, 1048656U, 318802446U, 26214512U, 318802446U, 26214512U, 587270671U, 22020208U, 0U, 0U, 0U, 0U, 0U, 0U, 1342346244U, 1048576U, 838964229U, 1048640U, 184568326U, 26214496U, 184568326U, 26214496U, 1526909444U, 1048672U, 989975557U, 1048672U, 587270663U, 22020192U, 0U, 0U, 1476580356U, 1048576U, 989975557U, 1048672U, 184568326U, 26214496U, 587270663U, 22020192U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1342346252U, 1048592U, 838964237U, 1048656U, 184568334U, 26214512U, 184568334U, 26214512U, 1526909452U, 1048688U, 989975565U, 1048688U, 587270671U, 22020208U, 0U, 0U, 1476580364U, 1048592U, 989975565U, 1048688U, 184568334U, 26214512U, 587270671U, 22020208U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878020U, 1001472U, 1644368901U, 1048640U, 1392675334U, 26214496U, 1392675335U, 26214496U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878028U, 1001480U, 1644368909U, 1048648U, 1392675342U, 26214504U, 1392675343U, 26214504U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 2572U, 1048580U, 285248013U, 1048612U, 427869454U, 1048628U, 562103566U, 1048628U, 562103566U, 1048628U, 25167116U, 1048632U, 293635341U, 1048632U, 293700877U, 1048632U, 696337679U, 17825848U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 2572U, 1048584U, 285248013U, 1048616U, 562103566U, 1048632U, 562103566U, 1048632U, 293700877U, 1048632U, 696337679U, 17825848U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 134236676U, 1048576U, 16779781U, 1048608U, 25216262U, 1048624U, 25216262U, 1048624U, 562087180U, 1048624U, 1233259021U, 1483056U, 1099057677U, 1483056U, 696337679U, 17825840U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 536922636U, 1048576U, 1233259021U, 1483056U, 427869454U, 1048624U, 1099057677U, 1483056U, 696337679U, 17825840U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878028U, 1048584U, 33559565U, 1048648U, 184568334U, 26214504U, 318802446U, 26214504U, 318802446U, 26214504U, 1124207116U, 1048688U, 453036557U, 1048688U, 453069325U, 1048688U, 587270671U, 22020208U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878028U, 1048592U, 436261901U, 1048656U, 318802446U, 26214512U, 318802446U, 26214512U, 453069325U, 1048688U, 587270671U, 22020208U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1342346244U, 1048576U, 838964229U, 1048640U, 50350598U, 26214496U, 50350598U, 26214496U, 1795361292U, 1048672U, 1258427405U, 1483104U, 1124226061U, 1483104U, 587270671U, 22020192U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1795363852U, 1048672U, 1258427405U, 1483104U, 184568334U, 26214496U, 1124226061U, 1483104U, 587270671U, 22020192U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878020U, 1048576U, 436261893U, 1048640U, 1392675334U, 26214496U, 1526909446U, 26214496U, 1526909446U, 26214496U, 1124207108U, 1048672U, 453036549U, 1048672U, 1392675335U, 26263648U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878028U, 1048592U, 436261901U, 1048656U, 1392675342U, 26214512U, 1526909454U, 26214512U, 1526909454U, 26214512U, 1124207116U, 1048688U, 453036557U, 1048688U, 1392675343U, 26263664U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878020U, 1048576U, 436261893U, 1048640U, 1526909446U, 26214496U, 1526909446U, 26214496U, 1392675335U, 26263648U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878028U, 1048592U, 436261901U, 1048656U, 1526909454U, 26214512U, 1526909454U, 26214512U, 1392675343U, 26263664U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u32 const b43_ntab_gainctl0[128U] = { 63712068U, 63712066U, 63712064U, 63712062U, 63712061U, 63712059U, 63449924U, 63449922U, 63449920U, 63449918U, 63449917U, 63449915U, 63449913U, 63449912U, 63449910U, 63449908U, 63187780U, 63187778U, 63187776U, 63187774U, 63187773U, 63187771U, 63187769U, 63187768U, 63187766U, 63187764U, 63187763U, 63187762U, 63187760U, 63187759U, 63187757U, 62925636U, 62925634U, 62925632U, 62925630U, 62925629U, 62925627U, 62925625U, 62925624U, 62925622U, 62925620U, 61877060U, 61877058U, 61877056U, 61877054U, 61877053U, 61877051U, 61877049U, 61877048U, 61877046U, 61877044U, 61877043U, 61877042U, 61877040U, 61877039U, 61877037U, 60828484U, 60828482U, 60828480U, 60828478U, 60828477U, 60828475U, 60828473U, 60828472U, 60828470U, 60828468U, 59779908U, 59779906U, 59779904U, 59779902U, 59779901U, 59779899U, 59779897U, 59779896U, 59779894U, 59779892U, 59779891U, 59779890U, 59779888U, 58731332U, 58731330U, 58731328U, 58731326U, 58731325U, 58731323U, 58731321U, 58731320U, 58731318U, 58731316U, 58731315U, 58731314U, 58731312U, 58731311U, 58731309U, 58731308U, 58731307U, 58731306U, 58731305U, 58731303U, 58731302U, 58731301U, 58731300U, 58731299U, 58731298U, 58731297U, 58731296U, 58731295U, 58731294U, 58731294U, 58731293U, 58731292U, 58731291U, 58731290U, 58731290U, 58731289U, 58731288U, 58731288U, 58731288U, 58731288U, 58731288U, 58731288U, 58731288U, 58731288U, 58731288U, 58731288U, 58731288U, 58731288U, 11008U}; static u32 const b43_ntab_gainctl1[128U] = { 63712068U, 63712066U, 63712064U, 63712062U, 63712061U, 63712059U, 63449924U, 63449922U, 63449920U, 63449918U, 63449917U, 63449915U, 63449913U, 63449912U, 63449910U, 63449908U, 63187780U, 63187778U, 63187776U, 63187774U, 63187773U, 63187771U, 63187769U, 63187768U, 63187766U, 63187764U, 63187763U, 63187762U, 63187760U, 63187759U, 63187757U, 62925636U, 62925634U, 62925632U, 62925630U, 62925629U, 62925627U, 62925625U, 62925624U, 62925622U, 62925620U, 61877060U, 61877058U, 61877056U, 61877054U, 61877053U, 61877051U, 61877049U, 61877048U, 61877046U, 61877044U, 61877043U, 61877042U, 61877040U, 61877039U, 61877037U, 60828484U, 60828482U, 60828480U, 60828478U, 60828477U, 60828475U, 60828473U, 60828472U, 60828470U, 60828468U, 59779908U, 59779906U, 59779904U, 59779902U, 59779901U, 59779899U, 59779897U, 59779896U, 59779894U, 59779892U, 59779891U, 59779890U, 59779888U, 58731332U, 58731330U, 58731328U, 58731326U, 58731325U, 58731323U, 58731321U, 58731320U, 58731318U, 58731316U, 58731315U, 58731314U, 58731312U, 58731311U, 58731309U, 58731308U, 58731307U, 58731306U, 58731305U, 58731303U, 58731302U, 58731301U, 58731300U, 58731299U, 58731298U, 58731297U, 58731296U, 58731295U, 58731294U, 58731294U, 58731293U, 58731292U, 58731291U, 58731290U, 58731290U, 58731289U, 58731288U, 58731288U, 58731288U, 58731288U, 58731288U, 58731288U, 58731288U, 58731288U, 58731288U, 58731288U, 58731288U, 58731288U, 11008U}; static u32 const b43_ntab_intlevel[7U] = { 8396912U, 108075149U, 174070060U, 170921542U, 12654733U, 134227154U, 112U}; static u32 const b43_ntab_iqlt0[128U] = { 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U}; static u32 const b43_ntab_iqlt1[128U] = { 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U, 127U}; static u16 const b43_ntab_loftlt0[128U] = { 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U}; static u16 const b43_ntab_loftlt1[128U] = { 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U, 0U, 257U, 2U, 259U}; static u8 const b43_ntab_mcs[128U] = { 0U, 8U, 10U, 16U, 18U, 25U, 26U, 28U, 64U, 72U, 74U, 80U, 82U, 89U, 90U, 92U, 128U, 136U, 138U, 144U, 146U, 153U, 154U, 156U, 192U, 200U, 202U, 208U, 210U, 217U, 218U, 220U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1U, 2U, 4U, 8U, 9U, 10U, 12U, 16U, 17U, 18U, 20U, 24U, 25U, 26U, 28U, 32U, 33U, 34U, 36U, 64U, 65U, 66U, 68U, 72U, 73U, 74U, 76U, 80U, 81U, 82U, 84U, 88U, 89U, 90U, 92U, 96U, 97U, 98U, 100U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u32 const b43_ntab_noisevar10[256U] = { 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U}; static u32 const b43_ntab_noisevar11[256U] = { 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U}; static u16 const b43_ntab_pilot[88U] = { 65288U, 65288U, 65288U, 65288U, 65288U, 65288U, 65288U, 65288U, 32981U, 32981U, 32981U, 32981U, 32981U, 32981U, 32981U, 32981U, 65290U, 65410U, 65440U, 65320U, 65535U, 65535U, 65535U, 65535U, 65410U, 65440U, 65320U, 65290U, 65535U, 65535U, 65535U, 65535U, 63551U, 64031U, 64151U, 64181U, 62141U, 61631U, 65535U, 65535U, 61463U, 63509U, 61973U, 61589U, 61493U, 61469U, 65535U, 65535U, 65288U, 65282U, 65408U, 65312U, 65288U, 65282U, 65408U, 65312U, 61471U, 63511U, 64021U, 62101U, 61621U, 61501U, 65535U, 65535U, 63530U, 64010U, 64130U, 64160U, 62120U, 61610U, 65535U, 65535U, 61442U, 63488U, 61952U, 61568U, 61472U, 61448U, 65535U, 65535U, 61450U, 63490U, 64000U, 62080U, 61600U, 61480U, 65535U, 65535U}; static u32 const b43_ntab_pilotlt[6U] = { 1985216803U, 1648390993U, 1985229313U, 1985217043U, 1985216803U, 1984103713U}; static u32 const b43_ntab_tdi20a0[55U] = { 594470U, 660521U, 743085U, 809136U, 875187U, 957622U, 1023674U, 49469U, 131841U, 197892U, 263944U, 329995U, 412558U, 610961U, 677012U, 759576U, 825639U, 891690U, 974126U, 1040177U, 65972U, 148407U, 214459U, 280510U, 362882U, 429061U, 627465U, 693516U, 776079U, 842130U, 908182U, 990617U, 24488U, 82476U, 164911U, 230962U, 297013U, 379448U, 445628U, 644031U, 726531U, 792582U, 858634U, 924685U, 1007120U, 32915U, 98967U, 181402U, 247424U, 313472U, 396032U, 462080U, 0U, 0U, 0U}; static u32 const b43_ntab_tdi20a1[55U] = { 84774U, 167209U, 234413U, 300592U, 383027U, 449078U, 629818U, 695869U, 770177U, 836228U, 902280U, 984715U, 18574U, 101265U, 184852U, 250904U, 317095U, 399530U, 465582U, 646321U, 728756U, 786743U, 852795U, 918846U, 1001218U, 35077U, 134153U, 201356U, 267407U, 333586U, 416022U, 596761U, 662824U, 745260U, 803247U, 869298U, 951733U, 1017784U, 51644U, 150719U, 217859U, 283910U, 366474U, 432525U, 613264U, 679315U, 761751U, 819738U, 885760U, 968192U, 1034240U, 68096U, 0U, 0U, 0U}; static u32 const b43_ntab_tdi40a0[110U] = { 1155910U, 1273039U, 1373657U, 1458658U, 1559403U, 1660021U, 1778563U, 1879308U, 1996310U, 33311U, 134056U, 251058U, 353351U, 470480U, 571098U, 656099U, 756844U, 857590U, 1172612U, 1289741U, 1390359U, 1475360U, 1576105U, 1676851U, 1795400U, 1896145U, 2013147U, 50148U, 150893U, 268023U, 370053U, 487183U, 587800U, 672801U, 773547U, 890676U, 1189449U, 1306578U, 1407196U, 1492197U, 1592942U, 1710072U, 1812102U, 1912848U, 2029977U, 66850U, 167596U, 284725U, 386890U, 504019U, 604765U, 689638U, 790383U, 907513U, 1206151U, 1323281U, 1424026U, 1508899U, 1609645U, 1726774U, 1828939U, 1946068U, 2046814U, 83687U, 200816U, 301562U, 403592U, 520722U, 621467U, 706468U, 807086U, 924215U, 1222988U, 1340117U, 1440863U, 1525864U, 1626481U, 1743611U, 1845641U, 1962771U, 2063516U, 100517U, 217519U, 318264U, 436813U, 537559U, 638304U, 723305U, 823923U, 941052U, 1256074U, 1356820U, 1457565U, 1542566U, 1643184U, 1760313U, 1862606U, 1979608U, 2080353U, 117354U, 234356U, 335101U, 453643U, 554261U, 655006U, 740007U, 840625U, 957754U, 0U, 0U}; static u32 const b43_ntab_tdi40a1[110U] = { 2022198U, 76234U, 176979U, 294109U, 379110U, 496111U, 596985U, 698887U, 799633U, 916762U, 1181987U, 1298989U, 1399863U, 1501899U, 1602644U, 1719774U, 1804775U, 1905392U, 2039034U, 93064U, 210066U, 310811U, 395812U, 512814U, 613688U, 715852U, 816469U, 933599U, 1198824U, 1315825U, 1418107U, 1518729U, 1619347U, 1720732U, 1821477U, 1938479U, 2057145U, 109901U, 226903U, 311904U, 429033U, 529651U, 631932U, 732554U, 833172U, 934557U, 1215526U, 1332656U, 1434810U, 1535566U, 1636184U, 1737569U, 1838314U, 1955444U, 2073981U, 126603U, 243605U, 328606U, 445735U, 546481U, 648646U, 749391U, 850009U, 951394U, 1248747U, 1349493U, 1451523U, 1552268U, 1652886U, 1754271U, 1855016U, 1972146U, 42695U, 143440U, 260570U, 345443U, 462572U, 563318U, 665348U, 766093U, 866839U, 1148320U, 1265449U, 1366195U, 1468360U, 1569105U, 1669851U, 1771108U, 1871853U, 1988983U, 59397U, 160143U, 277272U, 362145U, 479275U, 580020U, 682185U, 782930U, 900060U, 1165285U, 1282286U, 1383032U, 1485062U, 1585808U, 1686553U, 1787938U, 1888556U, 2005685U, 0U, 0U}; static u32 const b43_ntab_tdtrn[704U] = { 102499868U, 5303912U, 4120051254U, 4266791670U, 3128U, 4266791670U, 4120051254U, 5303912U, 102499868U, 3999793232U, 4265014674U, 318176850U, 204996608U, 318176850U, 4265014674U, 3999793232U, 102499868U, 5303912U, 4120051254U, 4266791670U, 3128U, 4266791670U, 4120051254U, 5303912U, 102499868U, 3999793232U, 4265014674U, 318176850U, 204996608U, 318176850U, 4265014674U, 3999793232U, 98764259U, 5107468U, 4126408263U, 4267774534U, 3015U, 4267774534U, 4126408263U, 5107468U, 98764259U, 4010541133U, 4266128883U, 306642529U, 197591040U, 306642529U, 4266128883U, 4010541133U, 98764259U, 5107468U, 4126408263U, 4267774534U, 3015U, 4267774534U, 4126408263U, 5107468U, 98764259U, 4010541133U, 4266128883U, 306642529U, 197591040U, 306642529U, 4266128883U, 4010541133U, 4200135256U, 4170515515U, 4283173312U, 4224122792U, 4219794308U, 127465209U, 91619618U, 92539382U, 189792256U, 95941954U, 143000626U, 115212007U, 4219794308U, 4191749732U, 4159177308U, 16775101U, 94897576U, 4156358911U, 39647208U, 107280857U, 4085578628U, 4276553437U, 70387846U, 4114744759U, 2896U, 167118212U, 19006838U, 4143515544U, 4085578628U, 4289264582U, 163643212U, 71039125U, 47448788U, 131990128U, 4237690780U, 4178247316U, 4261478188U, 47449693U, 153747606U, 1375160U, 4247584044U, 124451644U, 9893714U, 4187094407U, 4213965312U, 4273535328U, 148962454U, 77071016U, 4247584044U, 44565656U, 4237691104U, 4183883448U, 33618732U, 4253546897U, 4149346454U, 4215015274U, 4247584044U, 4223139860U, 9832746U, 106758868U, 4281138688U, 4271175946U, 127728790U, 40896478U, 47448788U, 40896478U, 127728790U, 4271175946U, 4281138688U, 106758868U, 9832746U, 4223139860U, 4247584044U, 4215015274U, 4149346454U, 4253546897U, 33618732U, 4183883448U, 4237691104U, 44565656U, 4247584044U, 77071016U, 148962454U, 4273535328U, 4213965312U, 4187094407U, 9893714U, 124451644U, 4247584044U, 1375160U, 153747606U, 47449693U, 4261478188U, 4178247316U, 4237690780U, 131990128U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 103415808U, 4277798745U, 146278664U, 4086758445U, 4191552604U, 4233033224U, 4148753814U, 129107903U, 103417386U, 4165924929U, 4148753814U, 61999608U, 4191552604U, 208274387U, 146278664U, 17234087U, 103415808U, 4277860519U, 146339576U, 4086694867U, 4191615908U, 4232972792U, 4148693610U, 129169473U, 103479766U, 4165863359U, 4148693610U, 62060040U, 4191615908U, 208337965U, 146339576U, 17172313U, 103415808U, 4277798745U, 146278664U, 4086758445U, 4191552604U, 4233033224U, 4148753814U, 129107903U, 103417386U, 4165924929U, 4148753814U, 61999608U, 4191552604U, 208274387U, 146278664U, 17234087U, 103415808U, 4277860519U, 146339576U, 4086694867U, 4191615908U, 4232972792U, 4148693610U, 129169473U, 103479766U, 4165863359U, 4148693610U, 62060040U, 4191615908U, 208337965U, 146339576U, 17172313U, 102499868U, 4281335965U, 4289859905U, 4253547348U, 4133355097U, 49215902U, 23523388U, 4294445494U, 2212U, 717867U, 15725943U, 4202957810U, 4228054865U, 136712039U, 4293919599U, 138607043U, 0U, 104724414U, 4237361168U, 4036622298U, 11469822U, 4094559612U, 176815889U, 198574070U, 4150001664U, 4132044808U, 264568474U, 107150610U, 27724195U, 78381689U, 4005494862U, 4284678352U, 4192532964U, 13696867U, 5172927U, 41485484U, 161677735U, 4245816930U, 4271509444U, 587338U, 63324U, 4294314965U, 4279306889U, 92075022U, 66977967U, 4158320793U, 1113233U, 4156425789U, 0U, 4190308418U, 57671664U, 258410534U, 4283563010U, 200473220U, 4118216943U, 4096458762U, 144965632U, 162988024U, 4030464358U, 4187882222U, 4267308637U, 4216651143U, 289537970U, 10354480U, 98762752U, 4278585093U, 139724960U, 4096130137U, 4196205610U, 4235785850U, 4155307534U, 123340646U, 98764259U, 4171692186U, 4155307534U, 59246982U, 4196205610U, 198902695U, 139724960U, 16447739U, 98762752U, 4278647035U, 139786080U, 4096066471U, 4196269014U, 4235725190U, 4155247090U, 123402394U, 98826781U, 4171630438U, 4155247090U, 59307642U, 4196269014U, 198966361U, 139786080U, 16385797U, 98762752U, 4278585093U, 139724960U, 4096130137U, 4196205610U, 4235785850U, 4155307534U, 123340646U, 98764259U, 4171692186U, 4155307534U, 59246982U, 4196205610U, 198902695U, 139724960U, 16447739U, 98762752U, 4278647035U, 139786080U, 4096066471U, 4196269014U, 4235725190U, 4155247090U, 123402394U, 98826781U, 4171630438U, 4155247090U, 59307642U, 4196269014U, 198966361U, 139786080U, 16385797U, 4200135256U, 4176543232U, 71829309U, 4257873478U, 4187030104U, 144507911U, 4250728218U, 45088224U, 138282134U, 4284090176U, 4286250391U, 16646641U, 591918U, 4204068725U, 4274911466U, 4289787539U, 4247583320U, 70516502U, 4221830621U, 4200661825U, 111544011U, 3800365U, 108526231U, 33162720U, 4170580030U, 123340427U, 19725374U, 4196661645U, 4236049731U, 4287691789U, 29428098U, 12976598U, 4247584044U, 30802118U, 159515073U, 4228775824U, 4249091196U, 4186831395U, 4231921964U, 109774682U, 4126870U, 98566650U, 4204201591U, 4247584825U, 113968806U, 54655585U, 98433956U, 4279632947U, 4200135980U, 4136894384U, 4176150221U, 4285921940U, 137232393U, 32571646U, 4254596986U, 121700186U, 76941374U, 4259316399U, 4145741148U, 67569821U, 39385489U, 4266065353U, 121439304U, 4261476592U, 4247584044U, 4242539776U, 4228513244U, 4268228951U, 80151921U, 4231724833U, 4241949224U, 91030135U, 33619456U, 2292007U, 4265345835U, 4232380220U, 65666011U, 72811283U, 80346972U, 852920U, 4200071168U, 4226351314U, 4191223307U, 19267065U, 69534143U, 53017131U, 4289266416U, 4196729175U, 33619456U, 57934904U, 4278453757U, 51183186U, 3668793U, 4285072581U, 83426595U, 4247911451U, 4247584044U, 4229692721U, 4246930680U, 80084841U, 4214816823U, 4266787596U, 100531972U, 70779764U, 4261413376U, 22542885U, 49348521U, 4197122856U, 29295653U, 4260954405U, 4262197712U, 13827049U, 64088U, 62390285U, 4284220617U, 51577943U, 4225434601U, 4282186820U, 53214780U, 4180082722U, 4261413376U, 41354605U, 36240599U, 4280417338U, 91292871U, 22543976U, 4259118089U, 83950816U, 4247584044U, 83950816U, 4259118089U, 22543976U, 91292871U, 4280417338U, 36240599U, 41354605U, 4261413376U, 4180082722U, 53214780U, 4282186820U, 4225434601U, 51577943U, 4284220617U, 62390285U, 64088U, 13827049U, 4262197712U, 4260954405U, 29295653U, 4197122856U, 49348521U, 22542885U, 4261413376U, 70779764U, 100531972U, 4266787596U, 4214816823U, 80084841U, 4246930680U, 4229692721U, 4247584044U, 4247911451U, 83426595U, 4285072581U, 3668793U, 51183186U, 4278453757U, 57934904U, 33619456U, 4196729175U, 4289266416U, 53017131U, 69534143U, 19267065U, 4191223307U, 4226351314U, 4200071168U, 852920U, 80346972U, 72811283U, 65666011U, 4232380220U, 4265345835U, 2292007U, 33619456U, 91030135U, 4241949224U, 4231724833U, 80151921U, 4268228951U, 4228513244U, 4242539776U, 94896128U, 4279240382U, 134219850U, 4103928958U, 4200072192U, 4238145242U, 4160812658U, 118490908U, 94897576U, 4176541924U, 4160812658U, 56887590U, 4200072192U, 191103874U, 134219850U, 15792450U, 94896128U, 4279302466U, 134281142U, 4103865218U, 4200135680U, 4238084390U, 4160752014U, 118552804U, 94960216U, 4176480028U, 4160752014U, 56948442U, 4200135680U, 191167614U, 134281142U, 15730366U, 94896128U, 4279240382U, 134219850U, 4103928958U, 4200072192U, 4238145242U, 4160812658U, 118490908U, 94897576U, 4176541924U, 4160812658U, 56887590U, 4200072192U, 191103874U, 134219850U, 15792450U, 94896128U, 4279302466U, 134281142U, 4103865218U, 4200135680U, 4238084390U, 4160752014U, 118552804U, 94960216U, 4176480028U, 4160752014U, 56948442U, 4200135680U, 191167614U, 134281142U, 15730366U}; static u32 const b43_ntab_tmap[448U] = { 2324212352U, 2326440586U, 2324335272U, 2184U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 4044427536U, 286331153U, 301011217U, 273U, 285212672U, 286388497U, 286331153U, 286331377U, 2324212352U, 2326440586U, 2324335272U, 698504U, 2290614272U, 2324334762U, 2326300808U, 2290657448U, 2702250256U, 286331153U, 297865489U, 273U, 285212672U, 286368017U, 286331153U, 286331297U, 2720145952U, 572662306U, 583148066U, 546U, 570425344U, 572695074U, 572662306U, 572662434U, 4044427536U, 286331153U, 301011217U, 69905U, 286326784U, 286388497U, 286331153U, 286331377U, 2829748384U, 2827520168U, 2829625482U, 559786U, 2863267840U, 2829625992U, 2827659946U, 2863303306U, 2863180448U, 2326432426U, 2861206154U, 699016U, 2326396928U, 2863179912U, 2326301322U, 2324211848U, 134744576U, 168298506U, 134875656U, 526344U, 134873088U, 134875144U, 134875144U, 168430088U, 2694881440U, 2158010496U, 2155913376U, 32896U, 2157969408U, 2158002336U, 2692784288U, 2155913376U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 2576977920U, 2610665915U, 2612631961U, 2576988601U, 2610543504U, 2612771739U, 2610666425U, 2457U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 11184264U, 570425344U, 572699170U, 572662306U, 572662450U, 2988581408U, 572662306U, 584196642U, 546U, 285212672U, 286368017U, 286331153U, 286331297U, 2702250256U, 286331153U, 297865489U, 273U, 855638016U, 859026227U, 858993459U, 858993587U, 3006477104U, 858993459U, 869479219U, 819U, 570425344U, 572695074U, 572662306U, 572662434U, 2720145952U, 572662306U, 583148066U, 546U, 2579077888U, 2610665915U, 2612631961U, 2576988601U, 2610543513U, 2612771739U, 2610666425U, 2457U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212360U, 2326440586U, 2324335272U, 145401992U, 572662272U, 572715554U, 572662306U, 572662514U, 572662306U, 572662306U, 586293794U, 546U, 285212672U, 286388497U, 286331153U, 286331153U, 4044427537U, 286331153U, 301011217U, 17895697U, 3147544832U, 3115957145U, 3113991099U, 3149634459U, 3116079547U, 3113851321U, 3115956635U, 3003U, 2852126720U, 2829625992U, 2827659946U, 2863303306U, 2829748394U, 2827520168U, 2829625482U, 176720554U, 2852126720U, 2829625992U, 2827659946U, 2863303306U, 2829748384U, 2827520168U, 2829625482U, 2730U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 2184U, 3149642496U, 2577120187U, 2612632475U, 3115956667U, 3115948987U, 3115956667U, 3116080025U, 2457U, 2315255808U, 2861082760U, 2827520170U, 2827651720U, 2827659402U, 2292755114U, 2829748906U, 143173770U, 185273088U, 151718667U, 185142027U, 151587083U, 151587595U, 151587595U, 151587593U, 2313U, 167772160U, 168298504U, 134875146U, 134875656U, 134875146U, 134744074U, 168430088U, 134744074U, 2964369408U, 2425401520U, 2427490448U, 2964369552U, 2964361392U, 2427498672U, 2964361360U, 144U, 2147483648U, 2692784256U, 2692776096U, 2692776064U, 2692784256U, 2158010528U, 2694873248U, 10526880U, 570425344U, 572715554U, 572662306U, 572662514U, 4062323232U, 572662306U, 586293794U, 546U, 285212672U, 286388497U, 286331153U, 286331377U, 4044427536U, 286331153U, 301011217U, 273U, 855638016U, 859042611U, 858993459U, 858993651U, 4080218928U, 858993459U, 871576371U, 819U, 570425344U, 572715554U, 572662306U, 572662514U, 4062323232U, 572662306U, 586293794U, 546U, 2566914048U, 2610665915U, 2612631961U, 2576988601U, 2610543504U, 2612771739U, 2610666425U, 2457U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 2184U, 2290647040U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 2184U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 11184264U, 2292746752U, 2324334762U, 2326300808U, 2290657448U, 2324212360U, 2326440586U, 2324335272U, 2184U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212360U, 2326440586U, 2324335272U, 145401992U, 285212672U, 286368017U, 286331153U, 286331297U, 2702250256U, 286331153U, 297865489U, 273U, 285212672U, 286368017U, 286331153U, 286331297U, 2702250256U, 286331153U, 297865489U, 273U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 2184U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 2184U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u32 const b43_ntab_framestruct_r3[832U] = { 134236676U, 1048576U, 16779781U, 1048608U, 159401222U, 1048624U, 159401223U, 1048624U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 134236684U, 1048580U, 16779789U, 1048612U, 159401230U, 1048628U, 159401231U, 1048628U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 2564U, 1048576U, 285248005U, 1048608U, 427869446U, 1048624U, 562103558U, 1048624U, 562103558U, 1048624U, 25167108U, 1048624U, 293635333U, 1048624U, 696337671U, 17825840U, 2564U, 1048576U, 285248005U, 1048608U, 562103558U, 1048624U, 562103558U, 1048624U, 696337671U, 17825840U, 0U, 0U, 0U, 0U, 0U, 0U, 2572U, 1048584U, 285248013U, 1048616U, 427869454U, 1048632U, 562103566U, 1048632U, 562103566U, 1048632U, 25167116U, 1048632U, 293635341U, 1048632U, 696337679U, 17825848U, 2572U, 1048584U, 285248013U, 1048616U, 562103566U, 1048632U, 562103566U, 1048632U, 696337679U, 17825848U, 0U, 0U, 0U, 0U, 0U, 0U, 134236676U, 1048576U, 16779781U, 1048608U, 427869446U, 1048624U, 427869446U, 1048624U, 293635332U, 1048624U, 964807173U, 1048624U, 696337671U, 17825840U, 0U, 0U, 268470788U, 1048576U, 964807173U, 1048624U, 427869446U, 1048624U, 696337671U, 17825840U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 134236684U, 1048584U, 16779789U, 1048616U, 427869454U, 1048632U, 427869454U, 1048632U, 293635340U, 1048632U, 964807181U, 1048632U, 696337679U, 17825848U, 0U, 0U, 268470796U, 1048584U, 964807181U, 1048632U, 427869454U, 1048632U, 696337679U, 17825848U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878020U, 1048576U, 33559557U, 1048640U, 184568326U, 26214496U, 318802438U, 26214496U, 318802438U, 26214496U, 1124207108U, 1048672U, 453036549U, 1048672U, 587270663U, 22020192U, 1073878020U, 1048576U, 436261893U, 1048640U, 318802438U, 26214496U, 318802438U, 26214496U, 587270663U, 22020192U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878028U, 1048592U, 33559565U, 1048656U, 184568334U, 26214512U, 318802446U, 26214512U, 318802446U, 26214512U, 1124207116U, 1048688U, 453036557U, 1048688U, 587270671U, 22020208U, 1073878028U, 1048592U, 436261901U, 1048656U, 318802446U, 26214512U, 318802446U, 26214512U, 587270671U, 22020208U, 0U, 0U, 0U, 0U, 0U, 0U, 1342346244U, 1048576U, 838964229U, 1048640U, 184568326U, 26214496U, 184568326U, 26214496U, 1526909444U, 1048672U, 989975557U, 1048672U, 587270663U, 22020192U, 0U, 0U, 1476580356U, 1048576U, 989975557U, 1048672U, 184568326U, 26214496U, 587270663U, 22020192U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1342346252U, 1048592U, 838964237U, 1048656U, 184568334U, 26214512U, 184568334U, 26214512U, 1526909452U, 1048688U, 989975565U, 1048688U, 587270671U, 22020208U, 0U, 0U, 1476580364U, 1048592U, 989975565U, 1048688U, 184568334U, 26214512U, 587270671U, 22020208U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878020U, 1001472U, 1644368901U, 1048640U, 1392675334U, 26214496U, 1392675335U, 26214496U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878028U, 1001480U, 1644368909U, 1048648U, 1392675342U, 26214504U, 1392675343U, 26214504U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 2572U, 1048580U, 285248013U, 1048612U, 427869454U, 1048628U, 562103566U, 1048628U, 562103566U, 1048628U, 25167116U, 1048632U, 293635341U, 1048632U, 293700877U, 1048632U, 696337679U, 17825848U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 2572U, 1048584U, 285248013U, 1048616U, 562103566U, 1048632U, 562103566U, 1048632U, 293700877U, 1048632U, 696337679U, 17825848U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 134236676U, 1048576U, 16779781U, 1048608U, 25216262U, 1048624U, 25216262U, 1048624U, 562087180U, 1048624U, 1233259021U, 1483056U, 1099057677U, 1483056U, 696337679U, 17825840U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 536922636U, 1048576U, 1233259021U, 1483056U, 427869454U, 1048624U, 1099057677U, 1483056U, 696337679U, 17825840U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878028U, 1048584U, 33559565U, 1048648U, 184568334U, 26214504U, 318802446U, 26214504U, 318802446U, 26214504U, 1124207116U, 1048688U, 453036557U, 1048688U, 453069325U, 1048688U, 587270671U, 22020208U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878028U, 1048592U, 436261901U, 1048656U, 318802446U, 26214512U, 318802446U, 26214512U, 453069325U, 1048688U, 587270671U, 22020208U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1342346244U, 1048576U, 838964229U, 1048640U, 50350598U, 26214496U, 50350598U, 26214496U, 1795361292U, 1048672U, 1258427405U, 1483104U, 1124226061U, 1483104U, 587270671U, 22020192U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1795363852U, 1048672U, 1258427405U, 1483104U, 184568334U, 26214496U, 1124226061U, 1483104U, 587270671U, 22020192U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878020U, 1048576U, 436261893U, 1048640U, 1392675334U, 26214496U, 1526909446U, 26214496U, 1526909446U, 26214496U, 1124207108U, 1048672U, 453036549U, 1048672U, 1392675335U, 26263648U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878028U, 1048592U, 436261901U, 1048656U, 1392675342U, 26214512U, 1526909454U, 26214512U, 1526909454U, 26214512U, 1124207116U, 1048688U, 453036557U, 1048688U, 1392675343U, 26263664U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878020U, 1048576U, 436261893U, 1048640U, 1526909446U, 26214496U, 1526909446U, 26214496U, 1392675335U, 26263648U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1073878028U, 1048592U, 436261901U, 1048656U, 1526909454U, 26214512U, 1526909454U, 26214512U, 1392675343U, 26263664U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u16 const b43_ntab_pilot_r3[88U] = { 65288U, 65288U, 65288U, 65288U, 65288U, 65288U, 65288U, 65288U, 32981U, 32981U, 32981U, 32981U, 32981U, 32981U, 32981U, 32981U, 65290U, 65410U, 65440U, 65320U, 65535U, 65535U, 65535U, 65535U, 65410U, 65440U, 65320U, 65290U, 65535U, 65535U, 65535U, 65535U, 63551U, 64031U, 64151U, 64181U, 62141U, 61631U, 65535U, 65535U, 61463U, 63509U, 61973U, 61589U, 61493U, 61469U, 65535U, 65535U, 65288U, 65282U, 65408U, 65312U, 65288U, 65282U, 65408U, 65312U, 61471U, 63511U, 64021U, 62101U, 61621U, 61501U, 65535U, 65535U, 63530U, 64010U, 64130U, 64160U, 62120U, 61610U, 65535U, 65535U, 61442U, 63488U, 61952U, 61568U, 61472U, 61448U, 65535U, 65535U, 61450U, 63490U, 64000U, 62080U, 61600U, 61480U, 65535U, 65535U}; static u32 const b43_ntab_tmap_r3[448U] = { 2324212352U, 2326440586U, 2324335272U, 2184U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 4044427536U, 286331153U, 301011217U, 273U, 285212672U, 286388497U, 286331153U, 286331377U, 2324212352U, 2326440586U, 2324335272U, 698504U, 2290614272U, 2324334762U, 2326300808U, 2290657448U, 2702250256U, 286331153U, 297865489U, 273U, 285212672U, 286368017U, 286331153U, 286331297U, 2720145952U, 572662306U, 583148066U, 546U, 570425344U, 572695074U, 572662306U, 572662434U, 4044427536U, 286331153U, 301011217U, 69905U, 286326784U, 286388497U, 286331153U, 286331377U, 2829748384U, 2827520168U, 2829625482U, 559786U, 2863267840U, 2829625992U, 2827659946U, 2863303306U, 2863180448U, 2326432426U, 2861206154U, 699016U, 2326396928U, 2863179912U, 2326301322U, 2324211848U, 134744576U, 168298506U, 134875656U, 526344U, 134873088U, 134875144U, 134875144U, 168430088U, 2694881440U, 2158010496U, 2155913376U, 32896U, 2157969408U, 2158002336U, 2692784288U, 2155913376U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 2576977920U, 2610665915U, 2612631961U, 2576988601U, 2610543504U, 2612771739U, 2610666425U, 2457U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 11184264U, 570425344U, 572699170U, 572662306U, 572662450U, 2988581408U, 572662306U, 584196642U, 546U, 285212672U, 286368017U, 286331153U, 286331297U, 2702250256U, 286331153U, 297865489U, 273U, 855638016U, 859026227U, 858993459U, 858993587U, 3006477104U, 858993459U, 869479219U, 819U, 570425344U, 572695074U, 572662306U, 572662434U, 2720145952U, 572662306U, 583148066U, 546U, 2579077888U, 2610665915U, 2612631961U, 2576988601U, 2610543513U, 2612771739U, 2610666425U, 2457U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212360U, 2326440586U, 2324335272U, 145401992U, 572662272U, 572715554U, 572662306U, 572662514U, 572662306U, 572662306U, 586293794U, 546U, 285212672U, 286388497U, 286331153U, 286331153U, 4044427537U, 286331153U, 301011217U, 17895697U, 3147544832U, 3115957145U, 3113991099U, 3149634459U, 3116079547U, 3113851321U, 3115956635U, 3003U, 2852126720U, 2829625992U, 2827659946U, 2863303306U, 2829748394U, 2827520168U, 2829625482U, 176720554U, 2852126720U, 2829625992U, 2827659946U, 2863303306U, 2829748384U, 2827520168U, 2829625482U, 2730U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 2184U, 3149642496U, 2577120187U, 2612632475U, 3115956667U, 3115948987U, 3115956667U, 3116080025U, 2457U, 2315255808U, 2861082760U, 2827520170U, 2827651720U, 2827659402U, 2292755114U, 2829748906U, 143173770U, 185273088U, 151718667U, 185142027U, 151587083U, 151587595U, 151587595U, 151587593U, 2313U, 167772160U, 168298504U, 134875146U, 134875656U, 134875146U, 134744074U, 168430088U, 134744074U, 2964369408U, 2425401520U, 2427490448U, 2964369552U, 2964361392U, 2427498672U, 2964361360U, 144U, 2147483648U, 2692784256U, 2692776096U, 2692776064U, 2692784256U, 2158010528U, 2694873248U, 10526880U, 570425344U, 572715554U, 572662306U, 572662514U, 4062323232U, 572662306U, 586293794U, 546U, 285212672U, 286388497U, 286331153U, 286331377U, 4044427536U, 286331153U, 301011217U, 273U, 855638016U, 859042611U, 858993459U, 858993651U, 4080218928U, 858993459U, 871576371U, 819U, 570425344U, 572715554U, 572662306U, 572662514U, 4062323232U, 572662306U, 586293794U, 546U, 2566914048U, 2610665915U, 2612631961U, 2576988601U, 2610543504U, 2612771739U, 2610666425U, 2457U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 2184U, 2290647040U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 2184U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 11184264U, 2292746752U, 2324334762U, 2326300808U, 2290657448U, 2324212360U, 2326440586U, 2324335272U, 2184U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212360U, 2326440586U, 2324335272U, 145401992U, 285212672U, 286368017U, 286331153U, 286331297U, 2702250256U, 286331153U, 297865489U, 273U, 285212672U, 286368017U, 286331153U, 286331297U, 2702250256U, 286331153U, 297865489U, 273U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 2184U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 2184U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u32 const b43_ntab_intlevel_r3[7U] = { 8396912U, 108075149U, 174070060U, 170921542U, 12654733U, 134227154U, 112U}; static u32 const b43_ntab_tdtrn_r3[704U] = { 102499868U, 5303912U, 4120051254U, 4266791670U, 3128U, 4266791670U, 4120051254U, 5303912U, 102499868U, 3999793232U, 4265014674U, 318176850U, 204996608U, 318176850U, 4265014674U, 3999793232U, 102499868U, 5303912U, 4120051254U, 4266791670U, 3128U, 4266791670U, 4120051254U, 5303912U, 102499868U, 3999793232U, 4265014674U, 318176850U, 204996608U, 318176850U, 4265014674U, 3999793232U, 98764259U, 5107468U, 4126408263U, 4267774534U, 3015U, 4267774534U, 4126408263U, 5107468U, 98764259U, 4010541133U, 4266128883U, 306642529U, 197591040U, 306642529U, 4266128883U, 4010541133U, 98764259U, 5107468U, 4126408263U, 4267774534U, 3015U, 4267774534U, 4126408263U, 5107468U, 98764259U, 4010541133U, 4266128883U, 306642529U, 197591040U, 306642529U, 4266128883U, 4010541133U, 4200135256U, 4170515515U, 4283173312U, 4224122792U, 4219794308U, 127465209U, 91619618U, 92539382U, 189792256U, 95941954U, 143000626U, 115212007U, 4219794308U, 4191749732U, 4159177308U, 16775101U, 94897576U, 4156358911U, 39647208U, 107280857U, 4085578628U, 4276553437U, 70387846U, 4114744759U, 2896U, 167118212U, 19006838U, 4143515544U, 4085578628U, 4289264582U, 163643212U, 71039125U, 47448788U, 131990128U, 4237690780U, 4178247316U, 4261478188U, 47449693U, 153747606U, 1375160U, 4247584044U, 124451644U, 9893714U, 4187094407U, 4213965312U, 4273535328U, 148962454U, 77071016U, 4247584044U, 44565656U, 4237691104U, 4183883448U, 33618732U, 4253546897U, 4149346454U, 4215015274U, 4247584044U, 4223139860U, 9832746U, 106758868U, 4281138688U, 4271175946U, 127728790U, 40896478U, 47448788U, 40896478U, 127728790U, 4271175946U, 4281138688U, 106758868U, 9832746U, 4223139860U, 4247584044U, 4215015274U, 4149346454U, 4253546897U, 33618732U, 4183883448U, 4237691104U, 44565656U, 4247584044U, 77071016U, 148962454U, 4273535328U, 4213965312U, 4187094407U, 9893714U, 124451644U, 4247584044U, 1375160U, 153747606U, 47449693U, 4261478188U, 4178247316U, 4237690780U, 131990128U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 103415808U, 4277798745U, 146278664U, 4086758445U, 4191552604U, 4233033224U, 4148753814U, 129107903U, 103417386U, 4165924929U, 4148753814U, 61999608U, 4191552604U, 208274387U, 146278664U, 17234087U, 103415808U, 4277860519U, 146339576U, 4086694867U, 4191615908U, 4232972792U, 4148693610U, 129169473U, 103479766U, 4165863359U, 4148693610U, 62060040U, 4191615908U, 208337965U, 146339576U, 17172313U, 103415808U, 4277798745U, 146278664U, 4086758445U, 4191552604U, 4233033224U, 4148753814U, 129107903U, 103417386U, 4165924929U, 4148753814U, 61999608U, 4191552604U, 208274387U, 146278664U, 17234087U, 103415808U, 4277860519U, 146339576U, 4086694867U, 4191615908U, 4232972792U, 4148693610U, 129169473U, 103479766U, 4165863359U, 4148693610U, 62060040U, 4191615908U, 208337965U, 146339576U, 17172313U, 102499868U, 4281335965U, 4289859905U, 4253547348U, 4133355097U, 49215902U, 23523388U, 4294445494U, 2212U, 717867U, 15725943U, 4202957810U, 4228054865U, 136712039U, 4293919599U, 138607043U, 0U, 104724414U, 4237361168U, 4036622298U, 11469822U, 4094559612U, 176815889U, 198574070U, 4150001664U, 4132044808U, 264568474U, 107150610U, 27724195U, 78381689U, 4005494862U, 4284678352U, 4192532964U, 13696867U, 5172927U, 41485484U, 161677735U, 4245816930U, 4271509444U, 587338U, 63324U, 4294314965U, 4279306889U, 92075022U, 66977967U, 4158320793U, 1113233U, 4156425789U, 0U, 4190308418U, 57671664U, 258410534U, 4283563010U, 200473220U, 4118216943U, 4096458762U, 144965632U, 162988024U, 4030464358U, 4187882222U, 4267308637U, 4216651143U, 289537970U, 10354480U, 98762752U, 4278585093U, 139724960U, 4096130137U, 4196205610U, 4235785850U, 4155307534U, 123340646U, 98764259U, 4171692186U, 4155307534U, 59246982U, 4196205610U, 198902695U, 139724960U, 16447739U, 98762752U, 4278647035U, 139786080U, 4096066471U, 4196269014U, 4235725190U, 4155247090U, 123402394U, 98826781U, 4171630438U, 4155247090U, 59307642U, 4196269014U, 198966361U, 139786080U, 16385797U, 98762752U, 4278585093U, 139724960U, 4096130137U, 4196205610U, 4235785850U, 4155307534U, 123340646U, 98764259U, 4171692186U, 4155307534U, 59246982U, 4196205610U, 198902695U, 139724960U, 16447739U, 98762752U, 4278647035U, 139786080U, 4096066471U, 4196269014U, 4235725190U, 4155247090U, 123402394U, 98826781U, 4171630438U, 4155247090U, 59307642U, 4196269014U, 198966361U, 139786080U, 16385797U, 4200135256U, 4176543232U, 71829309U, 4257873478U, 4187030104U, 144507911U, 4250728218U, 45088224U, 138282134U, 4284090176U, 4286250391U, 16646641U, 591918U, 4204068725U, 4274911466U, 4289787539U, 4247583320U, 70516502U, 4221830621U, 4200661825U, 111544011U, 3800365U, 108526231U, 33162720U, 4170580030U, 123340427U, 19725374U, 4196661645U, 4236049731U, 4287691789U, 29428098U, 12976598U, 4247584044U, 30802118U, 159515073U, 4228775824U, 4249091196U, 4186831395U, 4231921964U, 109774682U, 4126870U, 98566650U, 4204201591U, 4247584825U, 113968806U, 54655585U, 98433956U, 4279632947U, 4200135980U, 4136894384U, 4176150221U, 4285921940U, 137232393U, 32571646U, 4254596986U, 121700186U, 76941374U, 4259316399U, 4145741148U, 67569821U, 39385489U, 4266065353U, 121439304U, 4261476592U, 4247584044U, 4242539776U, 4228513244U, 4268228951U, 80151921U, 4231724833U, 4241949224U, 91030135U, 33619456U, 2292007U, 4265345835U, 4232380220U, 65666011U, 72811283U, 80346972U, 852920U, 4200071168U, 4226351314U, 4191223307U, 19267065U, 69534143U, 53017131U, 4289266416U, 4196729175U, 33619456U, 57934904U, 4278453757U, 51183186U, 3668793U, 4285072581U, 83426595U, 4247911451U, 4247584044U, 4229692721U, 4246930680U, 80084841U, 4214816823U, 4266787596U, 100531972U, 70779764U, 4261413376U, 22542885U, 49348521U, 4197122856U, 29295653U, 4260954405U, 4262197712U, 13827049U, 64088U, 62390285U, 4284220617U, 51577943U, 4225434601U, 4282186820U, 53214780U, 4180082722U, 4261413376U, 41354605U, 36240599U, 4280417338U, 91292871U, 22543976U, 4259118089U, 83950816U, 4247584044U, 83950816U, 4259118089U, 22543976U, 91292871U, 4280417338U, 36240599U, 41354605U, 4261413376U, 4180082722U, 53214780U, 4282186820U, 4225434601U, 51577943U, 4284220617U, 62390285U, 64088U, 13827049U, 4262197712U, 4260954405U, 29295653U, 4197122856U, 49348521U, 22542885U, 4261413376U, 70779764U, 100531972U, 4266787596U, 4214816823U, 80084841U, 4246930680U, 4229692721U, 4247584044U, 4247911451U, 83426595U, 4285072581U, 3668793U, 51183186U, 4278453757U, 57934904U, 33619456U, 4196729175U, 4289266416U, 53017131U, 69534143U, 19267065U, 4191223307U, 4226351314U, 4200071168U, 852920U, 80346972U, 72811283U, 65666011U, 4232380220U, 4265345835U, 2292007U, 33619456U, 91030135U, 4241949224U, 4231724833U, 80151921U, 4268228951U, 4228513244U, 4242539776U, 94896128U, 4279240382U, 134219850U, 4103928958U, 4200072192U, 4238145242U, 4160812658U, 118490908U, 94897576U, 4176541924U, 4160812658U, 56887590U, 4200072192U, 191103874U, 134219850U, 15792450U, 94896128U, 4279302466U, 134281142U, 4103865218U, 4200135680U, 4238084390U, 4160752014U, 118552804U, 94960216U, 4176480028U, 4160752014U, 56948442U, 4200135680U, 191167614U, 134281142U, 15730366U, 94896128U, 4279240382U, 134219850U, 4103928958U, 4200072192U, 4238145242U, 4160812658U, 118490908U, 94897576U, 4176541924U, 4160812658U, 56887590U, 4200072192U, 191103874U, 134219850U, 15792450U, 94896128U, 4279302466U, 134281142U, 4103865218U, 4200135680U, 4238084390U, 4160752014U, 118552804U, 94960216U, 4176480028U, 4160752014U, 56948442U, 4200135680U, 191167614U, 134281142U, 15730366U}; static u32 const b43_ntab_noisevar_r3[256U] = { 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U, 34669073U, 333U}; static u16 const b43_ntab_mcs_r3[128U] = { 0U, 8U, 10U, 16U, 18U, 25U, 26U, 28U, 128U, 136U, 138U, 144U, 146U, 153U, 154U, 156U, 256U, 264U, 266U, 272U, 274U, 281U, 282U, 284U, 384U, 392U, 394U, 400U, 402U, 409U, 410U, 412U, 0U, 152U, 160U, 168U, 154U, 162U, 170U, 288U, 296U, 296U, 304U, 312U, 312U, 320U, 290U, 298U, 298U, 306U, 314U, 314U, 322U, 424U, 432U, 440U, 432U, 440U, 448U, 456U, 448U, 456U, 464U, 464U, 472U, 426U, 434U, 442U, 434U, 442U, 450U, 458U, 450U, 458U, 466U, 466U, 474U, 1U, 2U, 4U, 9U, 12U, 17U, 20U, 24U, 32U, 33U, 34U, 36U, 129U, 130U, 132U, 137U, 140U, 145U, 148U, 152U, 160U, 161U, 162U, 164U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U}; static u32 const b43_ntab_tdi20a0_r3[55U] = { 594470U, 660521U, 743085U, 809136U, 875187U, 957622U, 1023674U, 49469U, 131841U, 197892U, 263944U, 329995U, 412558U, 610961U, 677012U, 759576U, 825639U, 891690U, 974126U, 1040177U, 65972U, 148407U, 214459U, 280510U, 362882U, 429061U, 627465U, 693516U, 776079U, 842130U, 908182U, 990617U, 24488U, 82476U, 164911U, 230962U, 297013U, 379448U, 445628U, 644031U, 726531U, 792582U, 858634U, 924685U, 1007120U, 32915U, 98967U, 181402U, 247424U, 313472U, 396032U, 462080U, 0U, 0U, 0U}; static u32 const b43_ntab_tdi20a1_r3[55U] = { 84774U, 167209U, 234413U, 300592U, 383027U, 449078U, 629818U, 695869U, 770177U, 836228U, 902280U, 984715U, 18574U, 101265U, 184852U, 250904U, 317095U, 399530U, 465582U, 646321U, 728756U, 786743U, 852795U, 918846U, 1001218U, 35077U, 134153U, 201356U, 267407U, 333586U, 416022U, 596761U, 662824U, 745260U, 803247U, 869298U, 951733U, 1017784U, 51644U, 150719U, 217859U, 283910U, 366474U, 432525U, 613264U, 679315U, 761751U, 819738U, 885760U, 968192U, 1034240U, 68096U, 0U, 0U, 0U}; static u32 const b43_ntab_tdi40a0_r3[110U] = { 1155910U, 1273039U, 1373657U, 1458658U, 1559403U, 1660021U, 1778563U, 1879308U, 1996310U, 33311U, 134056U, 251058U, 353351U, 470480U, 571098U, 656099U, 756844U, 857590U, 1172612U, 1289741U, 1390359U, 1475360U, 1576105U, 1676851U, 1795400U, 1896145U, 2013147U, 50148U, 150893U, 268023U, 370053U, 487183U, 587800U, 672801U, 773547U, 890676U, 1189449U, 1306578U, 1407196U, 1492197U, 1592942U, 1710072U, 1812102U, 1912848U, 2029977U, 66850U, 167596U, 284725U, 386890U, 504019U, 604765U, 689638U, 790383U, 907513U, 1206151U, 1323281U, 1424026U, 1508899U, 1609645U, 1726774U, 1828939U, 1946068U, 2046814U, 83687U, 200816U, 301562U, 403592U, 520722U, 621467U, 706468U, 807086U, 924215U, 1222988U, 1340117U, 1440863U, 1525864U, 1626481U, 1743611U, 1845641U, 1962771U, 2063516U, 100517U, 217519U, 318264U, 436813U, 537559U, 638304U, 723305U, 823923U, 941052U, 1256074U, 1356820U, 1457565U, 1542566U, 1643184U, 1760313U, 1862606U, 1979608U, 2080353U, 117354U, 234356U, 335101U, 453643U, 554261U, 655006U, 740007U, 840625U, 957754U, 0U, 0U}; static u32 const b43_ntab_tdi40a1_r3[110U] = { 2022198U, 76234U, 176979U, 294109U, 379110U, 496111U, 596985U, 698887U, 799633U, 916762U, 1181987U, 1298989U, 1399863U, 1501899U, 1602644U, 1719774U, 1804775U, 1905392U, 2039034U, 93064U, 210066U, 310811U, 395812U, 512814U, 613688U, 715852U, 816469U, 933599U, 1198824U, 1315825U, 1418107U, 1518729U, 1619347U, 1720732U, 1821477U, 1938479U, 2057145U, 109901U, 226903U, 311904U, 429033U, 529651U, 631932U, 732554U, 833172U, 934557U, 1215526U, 1332656U, 1434810U, 1535566U, 1636184U, 1737569U, 1838314U, 1955444U, 2073981U, 126603U, 243605U, 328606U, 445735U, 546481U, 648646U, 749391U, 850009U, 951394U, 1248747U, 1349493U, 1451523U, 1552268U, 1652886U, 1754271U, 1855016U, 1972146U, 42695U, 143440U, 260570U, 345443U, 462572U, 563318U, 665348U, 766093U, 866839U, 1148320U, 1265449U, 1366195U, 1468360U, 1569105U, 1669851U, 1771108U, 1871853U, 1988983U, 59397U, 160143U, 277272U, 362145U, 479275U, 580020U, 682185U, 782930U, 900060U, 1165285U, 1282286U, 1383032U, 1485062U, 1585808U, 1686553U, 1787938U, 1888556U, 2005685U, 0U, 0U}; static u32 const b43_ntab_pilotlt_r3[6U] = { 1985217043U, 1648390993U, 1985229328U, 1985217043U, 1985217043U, 1984103713U}; static u32 const b43_ntab_channelest_r3[96U] = { 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 1145324612U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U, 269488144U}; static u8 const b43_ntab_framelookup_r3[32U] = { 2U, 4U, 20U, 20U, 3U, 5U, 22U, 22U, 10U, 12U, 28U, 28U, 11U, 13U, 30U, 30U, 6U, 8U, 24U, 24U, 7U, 9U, 26U, 26U, 14U, 16U, 32U, 40U, 15U, 17U, 34U, 42U}; static u8 const b43_ntab_estimatepowerlt0_r3[64U] = { 85U, 84U, 84U, 83U, 82U, 82U, 81U, 81U, 80U, 79U, 79U, 78U, 78U, 77U, 76U, 76U, 75U, 74U, 73U, 73U, 72U, 71U, 70U, 70U, 69U, 68U, 67U, 66U, 65U, 64U, 64U, 63U, 62U, 61U, 60U, 58U, 57U, 56U, 55U, 54U, 53U, 51U, 50U, 49U, 47U, 46U, 44U, 43U, 41U, 39U, 37U, 35U, 33U, 31U, 29U, 26U, 24U, 21U, 18U, 14U, 11U, 7U, 2U, 253U}; static u8 const b43_ntab_estimatepowerlt1_r3[64U] = { 85U, 84U, 84U, 83U, 82U, 82U, 81U, 81U, 80U, 79U, 79U, 78U, 78U, 77U, 76U, 76U, 75U, 74U, 73U, 73U, 72U, 71U, 70U, 70U, 69U, 68U, 67U, 66U, 65U, 64U, 64U, 63U, 62U, 61U, 60U, 58U, 57U, 56U, 55U, 54U, 53U, 51U, 50U, 49U, 47U, 46U, 44U, 43U, 41U, 39U, 37U, 35U, 33U, 31U, 29U, 26U, 24U, 21U, 18U, 14U, 11U, 7U, 2U, 253U}; static u8 const b43_ntab_adjustpower0_r3[128U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u8 const b43_ntab_adjustpower1_r3[128U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u32 const b43_ntab_gainctl0_r3[128U] = { 1542914116U, 1542914114U, 1542914112U, 1542914110U, 1542914108U, 1542914107U, 1542914105U, 1542914103U, 1542914102U, 1542914100U, 1542914099U, 1542914097U, 1542914096U, 1537671236U, 1537671234U, 1537671232U, 1537671230U, 1537671228U, 1537671227U, 1537671225U, 1537671223U, 1537671222U, 1537671220U, 1537671219U, 1534525508U, 1534525506U, 1534525504U, 1534525502U, 1534525500U, 1534525499U, 1534525497U, 1534525495U, 1534525494U, 1534525492U, 1534525491U, 1534525489U, 1534525488U, 1534525487U, 1534525485U, 1534525484U, 1531379780U, 1531379778U, 1531379776U, 1531379774U, 1531379772U, 1531379771U, 1531379769U, 1531379767U, 1531379766U, 1531379764U, 1531379763U, 1531379761U, 1531379760U, 1531379759U, 1531379757U, 1531379756U, 1531379755U, 1531379754U, 1529282628U, 1529282626U, 1529282624U, 1529282622U, 1529282620U, 1529282619U, 1529282617U, 1529282615U, 1529282614U, 1529282612U, 1529282611U, 1529282609U, 1529282608U, 1529282607U, 1528234052U, 1528234050U, 1528234048U, 1528234046U, 1528234044U, 1528234043U, 1528234041U, 1528234039U, 1528234038U, 1528234036U, 1528234035U, 1528234033U, 1528234032U, 1528234031U, 1528234029U, 1528234028U, 1528234027U, 1528234026U, 1528234024U, 1528234023U, 1528234022U, 1528234021U, 1528234020U, 1528234019U, 1527185476U, 1527185474U, 1527185472U, 1527185470U, 1527185468U, 1527185467U, 1527185465U, 1527185463U, 1527185462U, 1527185460U, 1527185459U, 1527185457U, 1527185456U, 1527185455U, 1527185453U, 1527185452U, 1527185451U, 1527185450U, 1527185448U, 1527185447U, 1527185446U, 1527185445U, 1527185444U, 1527185443U, 1527185442U, 1527185441U, 1527185440U, 1527185439U, 1527185438U, 1527185437U, 1527185437U, 1527185436U}; static u32 const b43_ntab_gainctl1_r3[128U] = { 1542914116U, 1542914114U, 1542914112U, 1542914110U, 1542914108U, 1542914107U, 1542914105U, 1542914103U, 1542914102U, 1542914100U, 1542914099U, 1542914097U, 1542914096U, 1537671236U, 1537671234U, 1537671232U, 1537671230U, 1537671228U, 1537671227U, 1537671225U, 1537671223U, 1537671222U, 1537671220U, 1537671219U, 1534525508U, 1534525506U, 1534525504U, 1534525502U, 1534525500U, 1534525499U, 1534525497U, 1534525495U, 1534525494U, 1534525492U, 1534525491U, 1534525489U, 1534525488U, 1534525487U, 1534525485U, 1534525484U, 1531379780U, 1531379778U, 1531379776U, 1531379774U, 1531379772U, 1531379771U, 1531379769U, 1531379767U, 1531379766U, 1531379764U, 1531379763U, 1531379761U, 1531379760U, 1531379759U, 1531379757U, 1531379756U, 1531379755U, 1531379754U, 1529282628U, 1529282626U, 1529282624U, 1529282622U, 1529282620U, 1529282619U, 1529282617U, 1529282615U, 1529282614U, 1529282612U, 1529282611U, 1529282609U, 1529282608U, 1529282607U, 1528234052U, 1528234050U, 1528234048U, 1528234046U, 1528234044U, 1528234043U, 1528234041U, 1528234039U, 1528234038U, 1528234036U, 1528234035U, 1528234033U, 1528234032U, 1528234031U, 1528234029U, 1528234028U, 1528234027U, 1528234026U, 1528234024U, 1528234023U, 1528234022U, 1528234021U, 1528234020U, 1528234019U, 1527185476U, 1527185474U, 1527185472U, 1527185470U, 1527185468U, 1527185467U, 1527185465U, 1527185463U, 1527185462U, 1527185460U, 1527185459U, 1527185457U, 1527185456U, 1527185455U, 1527185453U, 1527185452U, 1527185451U, 1527185450U, 1527185448U, 1527185447U, 1527185446U, 1527185445U, 1527185444U, 1527185443U, 1527185442U, 1527185441U, 1527185440U, 1527185439U, 1527185438U, 1527185437U, 1527185437U, 1527185436U}; static u32 const b43_ntab_iqlt0_r3[128U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u32 const b43_ntab_iqlt1_r3[128U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u16 const b43_ntab_loftlt0_r3[128U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u16 const b43_ntab_loftlt1_r3[128U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u16 const b43_ntab_antswctl_r3[4U][32U] = { { 130U, 130U, 529U, 546U, 808U, 0U, 0U, 0U, 324U, 0U, 0U, 0U, 392U, 0U, 0U, 0U, 130U, 130U, 529U, 546U, 808U, 0U, 0U, 0U, 324U, 0U, 0U, 0U, 392U, 0U, 0U, 0U}, { 34U, 34U, 17U, 34U, 34U, 0U, 0U, 0U, 17U, 0U, 0U, 0U, 34U, 0U, 0U, 0U, 34U, 34U, 17U, 34U, 34U, 0U, 0U, 0U, 17U, 0U, 0U, 0U, 34U, 0U, 0U, 0U}, { 136U, 136U, 68U, 136U, 136U, 0U, 0U, 0U, 68U, 0U, 0U, 0U, 136U, 0U, 0U, 0U, 136U, 136U, 68U, 136U, 136U, 0U, 0U, 0U, 68U, 0U, 0U, 0U, 136U, 0U, 0U, 0U}, { 34U, 34U, 17U, 34U, 0U, 0U, 0U, 0U, 17U, 0U, 0U, 0U, 34U, 0U, 0U, 972U, 34U, 34U, 17U, 34U, 0U, 0U, 0U, 0U, 17U, 0U, 0U, 0U, 34U, 0U, 0U, 972U}}; static u32 const b43_ntab_tmap_r7[448U] = { 2324212352U, 2326440586U, 2324335272U, 2184U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 4044427536U, 286331153U, 301011217U, 273U, 285212672U, 286388497U, 286331153U, 286331377U, 2324212352U, 2326440586U, 2324335272U, 698504U, 2290614272U, 2324334762U, 2326300808U, 2290657448U, 2702250256U, 286331153U, 297865489U, 273U, 285212672U, 286368017U, 286331153U, 286331297U, 2720145952U, 572662306U, 583148066U, 546U, 570425344U, 572695074U, 572662306U, 572662434U, 4044427536U, 286331153U, 301011217U, 69905U, 286326784U, 286388497U, 286331153U, 286331377U, 2829748384U, 2827520168U, 2829625482U, 559786U, 2863267840U, 2829625992U, 2827659946U, 2863303306U, 2863180448U, 2326432426U, 2861206154U, 699016U, 2326396928U, 2863179912U, 2326301322U, 2324211848U, 134744576U, 168298506U, 134875656U, 526344U, 134873088U, 134875144U, 134875144U, 168430088U, 2694881440U, 2158010496U, 2155913376U, 32896U, 2157969408U, 2158002336U, 2692784288U, 2155913376U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 2576977920U, 2610665915U, 2612631961U, 2576988601U, 2610543504U, 2612771739U, 2610666425U, 2457U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 11184264U, 570425344U, 572699170U, 572662306U, 572662450U, 2988581408U, 572662306U, 584196642U, 546U, 285212672U, 286368017U, 286331153U, 286331297U, 2702250256U, 286331153U, 297865489U, 273U, 855638016U, 859026227U, 858993459U, 858993587U, 3006477104U, 858993459U, 869479219U, 819U, 570425344U, 572695074U, 572662306U, 572662434U, 2720145952U, 572662306U, 583148066U, 546U, 2579077888U, 2610665915U, 2612631961U, 2576988601U, 2610543513U, 2612771739U, 2610666425U, 2457U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212360U, 2326440586U, 2324335272U, 145401992U, 572662272U, 572715554U, 572662306U, 572662514U, 572662306U, 572662306U, 586293794U, 546U, 285212672U, 286388497U, 286331153U, 286331153U, 4044427537U, 286331153U, 301011217U, 17895697U, 3147544832U, 3115957145U, 3113991099U, 3149634459U, 3116079547U, 3113851321U, 3115956635U, 3003U, 2852126720U, 2829625992U, 2827659946U, 2863303306U, 2829748394U, 2827520168U, 2829625482U, 176720554U, 2852126720U, 2829625992U, 2827659946U, 2863303306U, 2829748384U, 2827520168U, 2829625482U, 2730U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 2184U, 3149642496U, 2577120187U, 2612632475U, 3115956667U, 3115948987U, 3115956667U, 3116080025U, 2457U, 2315255808U, 2861082760U, 2827520170U, 2827651720U, 2827659402U, 2292755114U, 2829748906U, 143173770U, 185273088U, 151718667U, 185142027U, 151587083U, 151587595U, 151587595U, 151587593U, 2313U, 167772160U, 168298504U, 134875146U, 134875656U, 134875146U, 134744074U, 168430088U, 134744074U, 2964369408U, 2425401520U, 2427490448U, 2964369552U, 2964361392U, 2427498672U, 2964361360U, 144U, 2147483648U, 2692784256U, 2692776096U, 2692776064U, 2692784256U, 2158010528U, 2694873248U, 10526880U, 570425344U, 572715554U, 572662306U, 572662514U, 4062323232U, 572662306U, 586293794U, 546U, 285212672U, 286388497U, 286331153U, 286331377U, 4044427536U, 286331153U, 301011217U, 273U, 855638016U, 859042611U, 858993459U, 858993651U, 4080218928U, 858993459U, 871576371U, 819U, 570425344U, 572715554U, 572662306U, 572662514U, 4062323232U, 572662306U, 586293794U, 546U, 2566914048U, 2610665915U, 2612631961U, 2576988601U, 2610543504U, 2612771739U, 2610666425U, 2457U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 2184U, 2290647040U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 2184U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 11184264U, 2292746752U, 2324334762U, 2326300808U, 2290657448U, 2324212360U, 2326440586U, 2324335272U, 698504U, 2290614272U, 2324334762U, 2326300808U, 2290657448U, 2324212360U, 2326440586U, 2324335272U, 145401992U, 285212672U, 286368017U, 286331153U, 286331297U, 2702250256U, 286331153U, 297865489U, 273U, 285212672U, 286368017U, 286331153U, 286331297U, 2702250256U, 286331153U, 297865489U, 273U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 2184U, 2281701376U, 2324334762U, 2326300808U, 2290657448U, 2324212352U, 2326440586U, 2324335272U, 2184U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u32 const b43_ntab_noisevar_r7[256U] = { 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U, 34341388U, 333U}; static u32 const b43_ntab_tx_gain_rev0_1_2[128U] = { 63712068U, 63712066U, 63711812U, 63711810U, 63711556U, 63449924U, 63449922U, 63449668U, 63449666U, 63449412U, 63449410U, 63449156U, 63449154U, 63187780U, 63187778U, 63187524U, 63187522U, 63187268U, 63187266U, 63187012U, 63187010U, 63186756U, 63186754U, 63186500U, 63186498U, 63186244U, 63186242U, 63185988U, 63185986U, 62925636U, 62925634U, 62925380U, 62925378U, 62925124U, 62925122U, 62924868U, 62924866U, 62924612U, 62924610U, 61877060U, 61877058U, 61876804U, 61876802U, 61876548U, 61876546U, 61876292U, 61876290U, 61876036U, 61876034U, 61875780U, 61875778U, 61875524U, 61875522U, 60828484U, 60828482U, 60828228U, 60828226U, 60827972U, 60827970U, 60827716U, 60827714U, 60827460U, 60827458U, 59779908U, 59779906U, 59779652U, 59779650U, 59779396U, 59779394U, 59779140U, 59779138U, 59778884U, 59778882U, 59778628U, 59778626U, 59778372U, 59778370U, 58731332U, 58731330U, 58731076U, 58731074U, 58730820U, 58730818U, 58730564U, 58730562U, 58730308U, 58730306U, 58730052U, 58730050U, 58729796U, 58729794U, 58729540U, 58729538U, 58729284U, 58729282U, 58729028U, 58729026U, 58728772U, 58728770U, 58728516U, 58728514U, 58728260U, 58728258U, 58728004U, 58728002U, 58727748U, 58727746U, 58727492U, 58727490U, 58727236U, 58727234U, 58726980U, 58726978U, 58726724U, 58726722U, 58726468U, 58726466U, 58726212U, 58726210U, 58725956U, 58725954U, 58725700U, 58725698U, 58725444U, 58725442U, 58725188U, 58725186U, 11008U}; static u32 const b43_ntab_tx_gain_epa_rev3_2g[128U] = { 524353604U, 524353602U, 524353600U, 524353598U, 524353596U, 524353595U, 524353593U, 524353591U, 507576388U, 507576386U, 507576384U, 507576382U, 507576380U, 507576379U, 507576377U, 507576375U, 490799172U, 490799170U, 490799168U, 490799166U, 490799164U, 490799163U, 490799161U, 490799159U, 474021956U, 474021954U, 474021952U, 474021950U, 474021948U, 474021947U, 474021945U, 474021943U, 457244740U, 457244738U, 457244736U, 457244734U, 457244732U, 457244731U, 457244729U, 457244727U, 440467524U, 440467522U, 440467520U, 440467518U, 440467516U, 440467515U, 440467513U, 440467511U, 423690308U, 423690306U, 423690304U, 423690302U, 423690300U, 423690299U, 423690297U, 423690295U, 406913092U, 406913090U, 406913088U, 406913086U, 406913084U, 406913083U, 406913081U, 406913079U, 390135876U, 390135874U, 390135872U, 390135870U, 390135868U, 390135867U, 390135865U, 390135863U, 373358660U, 373358658U, 373358656U, 373358654U, 373358652U, 373358651U, 373358649U, 373358647U, 356581444U, 356581442U, 356581440U, 356581438U, 356581436U, 356581435U, 356581433U, 356581431U, 339804228U, 339804226U, 339804224U, 339804222U, 339804220U, 339804219U, 339804217U, 339804215U, 323027012U, 323027010U, 323027008U, 323027006U, 323027004U, 323027003U, 323027001U, 323026999U, 306249796U, 306249794U, 306249792U, 306249790U, 306249788U, 306249787U, 306249785U, 306249783U, 289472580U, 289472578U, 289472576U, 289472574U, 289472572U, 289472571U, 289472569U, 289472567U, 272695364U, 272695362U, 272695360U, 272695358U, 272695356U, 272695355U, 272695353U, 272695351U}; static u32 const b43_ntab_tx_gain_epa_rev3_hi_pwr_2g[128U] = { 255918148U, 255918146U, 255918144U, 255918142U, 255918140U, 255918139U, 255918137U, 255918135U, 239140932U, 239140930U, 239140928U, 239140926U, 239140924U, 239140923U, 239140921U, 239140919U, 222363716U, 222363714U, 222363712U, 222363710U, 222363708U, 222363707U, 222363705U, 222363703U, 205586500U, 205586498U, 205586496U, 205586494U, 205586492U, 205586491U, 205586489U, 205586487U, 188809284U, 188809282U, 188809280U, 188809278U, 188809276U, 188809275U, 188809273U, 188809271U, 172032068U, 172032066U, 172032064U, 172032062U, 172032060U, 172032059U, 172032057U, 172032055U, 155254852U, 155254850U, 155254848U, 155254846U, 155254844U, 155254843U, 155254841U, 155254839U, 138477636U, 138477634U, 138477632U, 138477630U, 138477628U, 138477627U, 138477625U, 138477623U, 121700420U, 121700418U, 121700416U, 121700414U, 121700412U, 121700411U, 121700409U, 121700407U, 104923204U, 104923202U, 104923200U, 104923198U, 104923196U, 104923195U, 104923193U, 104923191U, 88145988U, 88145986U, 88145984U, 88145982U, 88145980U, 88145979U, 88145977U, 88145975U, 71368772U, 71368770U, 71368768U, 71368766U, 71368764U, 71368763U, 71368761U, 71368759U, 54591556U, 54591554U, 54591552U, 54591550U, 54591548U, 54591547U, 54591545U, 54591543U, 37814340U, 37814338U, 37814336U, 37814334U, 37814332U, 37814331U, 37814329U, 37814327U, 21037124U, 21037122U, 21037120U, 21037118U, 21037116U, 21037115U, 21037113U, 21037111U, 4259908U, 4259906U, 4259904U, 4259902U, 4259900U, 4259899U, 4259897U, 4259895U}; static u32 const b43_ntab_tx_gain_epa_rev3_5g[128U] = { 3489071172U, 3489071170U, 3489071168U, 3489071166U, 3489071164U, 3489071163U, 3489071161U, 3489071159U, 3472293956U, 3472293954U, 3472293952U, 3472293950U, 3472293948U, 3472293947U, 3472293945U, 3472293943U, 3455516740U, 3455516738U, 3455516736U, 3455516734U, 3455516732U, 3455516731U, 3455516729U, 3455516727U, 3438739524U, 3438739522U, 3438739520U, 3438739518U, 3438739516U, 3438739515U, 3438739513U, 3438739511U, 3421962308U, 3421962306U, 3421962304U, 3421962302U, 3421962300U, 3421962299U, 3421962297U, 3421962295U, 3405185092U, 3405185090U, 3405185088U, 3405185086U, 3405185084U, 3405185083U, 3405185081U, 3405185079U, 3388407876U, 3388407874U, 3388407872U, 3388407870U, 3388407868U, 3388407867U, 3388407865U, 3388407863U, 3371630660U, 3371630658U, 3371630656U, 3371630654U, 3371630652U, 3371630651U, 3371630649U, 3371630647U, 3354853444U, 3354853442U, 3354853440U, 3354853438U, 3354853436U, 3354853435U, 3354853433U, 3354853431U, 3338076228U, 3338076226U, 3338076224U, 3338076222U, 3338076220U, 3338076219U, 3338076217U, 3338076215U, 3321299012U, 3321299010U, 3321299008U, 3321299006U, 3321299004U, 3321299003U, 3321299001U, 3321298999U, 3304521796U, 3304521794U, 3304521792U, 3304521790U, 3304521788U, 3304521787U, 3304521785U, 3304521783U, 3287744580U, 3287744578U, 3287744576U, 3287744574U, 3287744572U, 3287744571U, 3287744569U, 3287744567U, 3270967364U, 3270967362U, 3270967360U, 3270967358U, 3270967356U, 3270967355U, 3270967353U, 3270967351U, 3254190148U, 3254190146U, 3254190144U, 3254190142U, 3254190140U, 3254190139U, 3254190137U, 3254190135U, 3237412932U, 3237412930U, 3237412928U, 3237412926U, 3237412924U, 3237412923U, 3237412921U, 3237412919U}; static u32 const b43_ntab_tx_gain_epa_rev4_5g[128U] = { 804388932U, 804388930U, 804388928U, 804388926U, 804388924U, 804388923U, 804388921U, 804388919U, 787611716U, 787611714U, 787611712U, 787611710U, 787611708U, 787611707U, 787611705U, 787611703U, 770834500U, 770834498U, 770834496U, 770834494U, 770834492U, 770834491U, 770834489U, 770834487U, 754057284U, 754057282U, 754057280U, 754057278U, 754057276U, 754057275U, 754057273U, 754057271U, 737280068U, 737280066U, 737280064U, 737280062U, 737280060U, 737280059U, 737280057U, 737280055U, 720502852U, 720502850U, 720502848U, 720502846U, 720502844U, 720502843U, 720502841U, 720502839U, 703725636U, 703725634U, 703725632U, 703725630U, 703725628U, 703725627U, 703725625U, 703725623U, 686948420U, 686948418U, 686948416U, 686948414U, 686948412U, 686948411U, 686948409U, 686948407U, 670171204U, 670171202U, 670171200U, 670171198U, 670171196U, 670171195U, 670171193U, 670171191U, 653393988U, 653393986U, 653393984U, 653393982U, 653393980U, 653393979U, 653393977U, 653393975U, 636616772U, 636616770U, 636616768U, 636616766U, 636616764U, 636616763U, 636616761U, 636616759U, 619839556U, 619839554U, 619839552U, 619839550U, 619839548U, 619839547U, 619839545U, 619839544U, 603062337U, 603062336U, 603062335U, 603062334U, 603062332U, 603062331U, 603062329U, 603062327U, 586285124U, 586285122U, 586285120U, 586285118U, 586285116U, 586285115U, 586285113U, 586285111U, 569507908U, 569507906U, 569507904U, 569507902U, 569507900U, 569507899U, 569507897U, 569507895U, 550633539U, 550633537U, 550633534U, 550633532U, 550633530U, 550633528U, 550633526U, 550633524U}; static u32 const b43_ntab_tx_gain_epa_rev4_hi_pwr_5g[128U] = { 804323396U, 804323394U, 804323392U, 804323390U, 804323388U, 804323387U, 804323385U, 804323383U, 787546180U, 787546178U, 787546176U, 787546174U, 787546172U, 787546171U, 787546169U, 787546167U, 770768964U, 770768962U, 770768960U, 770768958U, 770768956U, 770768955U, 770768953U, 770768951U, 753991748U, 753991746U, 753991744U, 753991742U, 753991740U, 753991739U, 753991737U, 753991735U, 737214532U, 737214530U, 737214528U, 737214526U, 737214524U, 737214523U, 737214521U, 737214519U, 720437316U, 720437314U, 720437312U, 720437310U, 720437308U, 720437307U, 720437305U, 720437303U, 703660100U, 703660098U, 703660096U, 703660094U, 703660092U, 703660091U, 703660089U, 703660087U, 686882884U, 686882882U, 686882880U, 686882878U, 686882876U, 686882875U, 686882873U, 686882871U, 670105668U, 670105666U, 670105664U, 670105662U, 670105660U, 670105659U, 670105657U, 670105655U, 653328452U, 653328450U, 653328448U, 653328446U, 653328444U, 653328443U, 653328441U, 653328439U, 636551236U, 636551234U, 636551232U, 636551230U, 636551228U, 636551227U, 636551225U, 636551223U, 619774020U, 619774018U, 619774016U, 619774014U, 619774012U, 619774011U, 619774009U, 619774008U, 602996801U, 602996800U, 602996799U, 602996798U, 602996796U, 602996795U, 602996793U, 602996791U, 586219588U, 586219586U, 586219584U, 586219582U, 586219580U, 586219579U, 586219577U, 586219575U, 569442372U, 569442370U, 569442368U, 569442366U, 569442364U, 569442363U, 569442361U, 569442359U, 550568003U, 550568001U, 550567998U, 550567996U, 550567994U, 550567992U, 550567990U, 550567988U}; static u32 const b43_ntab_tx_gain_epa_rev5_5g[128U] = { 258080842U, 258080840U, 258080838U, 258080836U, 258080834U, 258080832U, 258080830U, 258080828U, 241303620U, 241303618U, 241303616U, 241303614U, 241303612U, 241303613U, 241303611U, 241303610U, 224526403U, 224526401U, 224526400U, 224526398U, 224526397U, 224526396U, 224526395U, 224526394U, 207749185U, 207749184U, 207749183U, 207749182U, 207749180U, 207749179U, 207749177U, 207749175U, 190971974U, 190971972U, 190971970U, 190971968U, 190971966U, 190971964U, 190971963U, 190971962U, 174194753U, 174194752U, 174194750U, 174194748U, 174194747U, 174194746U, 174194745U, 174194744U, 157417534U, 157417533U, 157417532U, 157417531U, 157417529U, 157417527U, 157417525U, 157417523U, 140640324U, 140640322U, 140640320U, 140640318U, 140640316U, 140640315U, 140640314U, 140640313U, 123863107U, 123863106U, 123863104U, 123863103U, 123863101U, 123863099U, 123863098U, 123863097U, 107085886U, 107085885U, 107085884U, 107085883U, 107085881U, 107085879U, 107085877U, 107085875U, 90308678U, 90308676U, 90308674U, 90308672U, 90308670U, 90308668U, 90308667U, 90308665U, 73531460U, 73531458U, 73531456U, 73531454U, 73531452U, 73531451U, 73531449U, 73531448U, 56754236U, 56754235U, 56754234U, 56754233U, 56754232U, 56754231U, 56754229U, 56754227U, 39977036U, 39977034U, 39977032U, 39977031U, 39977030U, 39977028U, 39977027U, 39977026U, 23199818U, 23199816U, 23199814U, 23199812U, 23199811U, 23199810U, 23199809U, 23199808U, 6422594U, 6422592U, 6422590U, 6422588U, 6422587U, 6422585U, 6422583U, 6422581U}; static u32 const b43_ntab_tx_gain_ipa_rev3_2g[128U] = { 1610022957U, 1610022955U, 1610022954U, 1610022953U, 1610022952U, 1610022951U, 1610022950U, 1610022949U, 1593245741U, 1593245739U, 1593245738U, 1593245737U, 1593245736U, 1593245735U, 1593245734U, 1593245733U, 1576468525U, 1576468523U, 1576468522U, 1576468521U, 1576468520U, 1576468519U, 1576468518U, 1576468517U, 1559691309U, 1559691307U, 1559691306U, 1559691305U, 1559691304U, 1559691303U, 1559691302U, 1559691301U, 1542914093U, 1542914091U, 1542914090U, 1542914089U, 1542914088U, 1542914087U, 1542914086U, 1542914085U, 1526136877U, 1526136875U, 1526136874U, 1526136873U, 1526136872U, 1526136871U, 1526136870U, 1526136869U, 1509359661U, 1509359659U, 1509359658U, 1509359657U, 1509359656U, 1509359655U, 1509359654U, 1509359653U, 1492582445U, 1492582443U, 1492582442U, 1492582441U, 1492582440U, 1492582439U, 1492582438U, 1492582437U, 1475805229U, 1475805227U, 1475805226U, 1475805225U, 1475805224U, 1475805223U, 1475805222U, 1475805221U, 1459028013U, 1459028011U, 1459028010U, 1459028009U, 1459028008U, 1459028007U, 1459028006U, 1459028005U, 1442250797U, 1442250795U, 1442250794U, 1442250793U, 1442250792U, 1442250791U, 1442250790U, 1442250789U, 1425473581U, 1425473579U, 1425473578U, 1425473577U, 1425473576U, 1425473575U, 1425473574U, 1425473573U, 1408696365U, 1408696363U, 1408696362U, 1408696361U, 1408696360U, 1408696359U, 1408696358U, 1408696357U, 1391919149U, 1391919147U, 1391919146U, 1391919145U, 1391919144U, 1391919143U, 1391919142U, 1391919141U, 1375141933U, 1375141931U, 1375141930U, 1375141929U, 1375141928U, 1375141927U, 1375141926U, 1375141925U, 1358364717U, 1358364715U, 1358364714U, 1358364713U, 1358364712U, 1358364711U, 1358364710U, 1358364709U}; static u32 const b43_ntab_tx_gain_ipa_rev5_2g[128U] = { 536281133U, 536281131U, 536281130U, 536281129U, 536281128U, 536281127U, 536281126U, 536281125U, 519503917U, 519503915U, 519503914U, 519503913U, 519503912U, 519503911U, 519503910U, 519503909U, 502726701U, 502726699U, 502726698U, 502726697U, 502726696U, 502726695U, 502726694U, 502726693U, 485949485U, 485949483U, 485949482U, 485949481U, 485949480U, 485949479U, 485949478U, 485949477U, 469172269U, 469172267U, 469172266U, 469172265U, 469172264U, 469172263U, 469172262U, 469172261U, 452395053U, 452395051U, 452395050U, 452395049U, 452395048U, 452395047U, 452395046U, 452395045U, 435617837U, 435617835U, 435617834U, 435617833U, 435617832U, 435617831U, 435617830U, 435617829U, 418840621U, 418840619U, 418840618U, 418840617U, 418840616U, 418840615U, 418840614U, 418840613U, 402063405U, 402063403U, 402063402U, 402063401U, 402063400U, 402063399U, 402063398U, 402063397U, 385286189U, 385286187U, 385286186U, 385286185U, 385286184U, 385286183U, 385286182U, 385286181U, 368508973U, 368508971U, 368508970U, 368508969U, 368508968U, 368508967U, 368508966U, 368508965U, 351731757U, 351731755U, 351731754U, 351731753U, 351731752U, 351731751U, 351731750U, 351731749U, 334954541U, 334954539U, 334954538U, 334954537U, 334954536U, 334954535U, 334954534U, 334954533U, 318177325U, 318177323U, 318177322U, 318177321U, 318177320U, 318177319U, 318177318U, 318177317U, 301400109U, 301400107U, 301400106U, 301400105U, 301400104U, 301400103U, 301400102U, 301400101U, 284622893U, 284622891U, 284622890U, 284622889U, 284622888U, 284622887U, 284622886U, 284622885U}; static u32 const b43_ntab_tx_gain_ipa_rev6_2g[128U] = { 267845677U, 267845675U, 267845674U, 267845673U, 267845672U, 267845671U, 267845670U, 267845669U, 251068461U, 251068459U, 251068458U, 251068457U, 251068456U, 251068455U, 251068454U, 251068453U, 234291245U, 234291243U, 234291242U, 234291241U, 234291240U, 234291239U, 234291238U, 234291237U, 217514029U, 217514027U, 217514026U, 217514025U, 217514024U, 217514023U, 217514022U, 217514021U, 200736813U, 200736811U, 200736810U, 200736809U, 200736808U, 200736807U, 200736806U, 200736805U, 183959597U, 183959595U, 183959594U, 183959593U, 183959592U, 183959591U, 183959590U, 183959589U, 167182381U, 167182379U, 167182378U, 167182377U, 167182376U, 167182375U, 167182374U, 167182373U, 150405165U, 150405163U, 150405162U, 150405161U, 150405160U, 150405159U, 150405158U, 150405157U, 133627949U, 133627947U, 133627946U, 133627945U, 133627944U, 133627943U, 133627942U, 133627941U, 116850733U, 116850731U, 116850730U, 116850729U, 116850728U, 116850727U, 116850726U, 116850725U, 100073517U, 100073515U, 100073514U, 100073513U, 100073512U, 100073511U, 100073510U, 100073509U, 83296301U, 83296299U, 83296298U, 83296297U, 83296296U, 83296295U, 83296294U, 83296293U, 66519085U, 66519083U, 66519082U, 66519081U, 66519080U, 66519079U, 66519078U, 66519077U, 49741869U, 49741867U, 49741866U, 49741865U, 49741864U, 49741863U, 49741862U, 49741861U, 32964653U, 32964651U, 32964650U, 32964649U, 32964648U, 32964647U, 32964646U, 32964645U, 16187437U, 16187435U, 16187434U, 16187433U, 16187432U, 16187431U, 16187430U, 16187429U}; static u32 const b43_ntab_tx_gain_ipa_2057_rev5_2g[128U] = { 822018097U, 820445233U, 820445230U, 818872366U, 817823790U, 816775214U, 815726639U, 813629491U, 813629489U, 813629486U, 813105198U, 812580910U, 812056622U, 811532335U, 811008048U, 811008045U, 810483758U, 809959473U, 809959470U, 809959468U, 809959465U, 809435180U, 809435177U, 808910893U, 808910890U, 808910888U, 808386604U, 808386602U, 808386600U, 808386598U, 807862316U, 807862313U, 807862311U, 807862309U, 807862307U, 807338028U, 807338026U, 807338024U, 807338021U, 807338020U, 807338018U, 807338015U, 806813741U, 806813739U, 806813736U, 806813734U, 806813732U, 806813730U, 806813728U, 806813726U, 806813725U, 806813723U, 806813722U, 806813720U, 806813719U, 806813717U, 806289452U, 806289449U, 806289447U, 806289444U, 806289442U, 806289441U, 806289439U, 806289437U, 806289435U, 806289434U, 806289432U, 806289431U, 806289430U, 806289429U, 806289685U, 806289941U, 806290197U, 806290453U, 806290709U, 806290965U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U, 806291221U}; static u32 const b43_ntab_tx_gain_ipa_2057_rev9_2g[128U] = { 1627324465U, 1625751596U, 1624178730U, 1623654441U, 1622605865U, 1621557289U, 1621033002U, 1620508715U, 1619460142U, 1618411569U, 1617887282U, 1617362996U, 1617362993U, 1616838707U, 1616838705U, 1616314419U, 1616314416U, 1616314413U, 1616314411U, 1615790125U, 1615790123U, 1615790121U, 1615790118U, 1615265833U, 1615265831U, 1614741545U, 1614741543U, 1614741541U, 1614217257U, 1614217255U, 1614217252U, 1613692970U, 1613692968U, 1613692966U, 1613692964U, 1613168682U, 1613168680U, 1613168678U, 1613168676U, 1613168674U, 1612644395U, 1612644393U, 1612644391U, 1612644388U, 1612644386U, 1612644384U, 1612644383U, 1612644381U, 1612120105U, 1612120103U, 1612120101U, 1612120099U, 1612120097U, 1612120095U, 1612120093U, 1612120092U, 1612120090U, 1612120088U, 1612120088U, 1612120086U, 1612120085U, 1611595817U, 1611595815U, 1611595813U, 1611595811U, 1611595809U, 1611595807U, 1611595805U, 1611595804U, 1611595802U, 1611595801U, 1611595800U, 1611595798U, 1611595797U, 1611596053U, 1611596309U, 1611596565U, 1611596821U, 1611597077U, 1611597333U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U, 1611597589U}; static u32 const b43_ntab_tx_gain_ipa_2057_rev14_2g[128U] = { 1356791854U, 1355743277U, 1354694700U, 1354170411U, 1353646122U, 1353121833U, 1352597545U, 1352073256U, 1351548967U, 1351024679U, 1350500391U, 1349976103U, 1349451815U, 1348927527U, 1348403240U, 1347878953U, 1347354667U, 1346830382U, 1346830379U, 1346830377U, 1346306092U, 1346306089U, 1345781804U, 1345781802U, 1345781800U, 1345257517U, 1345257515U, 1345257512U, 1345257510U, 1344733229U, 1344733226U, 1344733224U, 1344733222U, 1344733220U, 1344208942U, 1344208939U, 1344208937U, 1344208935U, 1344208932U, 1344208930U, 1344208928U, 1344208927U, 1343684652U, 1343684649U, 1343684647U, 1343684644U, 1343684642U, 1343684641U, 1343684639U, 1343684637U, 1343684635U, 1343684634U, 1343684632U, 1343684631U, 1343684629U, 1343160364U, 1343160362U, 1343160359U, 1343160357U, 1343160355U, 1343160354U, 1343160351U, 1343160350U, 1343160348U, 1343160346U, 1343160345U, 1343160344U, 1343160342U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U, 1343160341U}; static u32 const b43_ntab_tx_gain_ipa_rev3_5g[128U] = { 2146893877U, 2146893875U, 2146893874U, 2146893873U, 2146893871U, 2146893870U, 2146893869U, 2146893867U, 2146893866U, 2146893865U, 2146893864U, 2146893863U, 2146893862U, 2146893860U, 2146893859U, 2146893858U, 2130116648U, 2130116647U, 2130116646U, 2130116645U, 2130116644U, 2130116643U, 2113339432U, 2113339431U, 2113339430U, 2113339429U, 2113339428U, 2113339427U, 2113339426U, 2096562217U, 2096562216U, 2096562215U, 2096562214U, 2096562213U, 2096562211U, 2096562210U, 2079785001U, 2079785000U, 2079784998U, 2079784997U, 2079784996U, 2079784995U, 2079784994U, 2079784993U, 2063007785U, 2063007784U, 2063007783U, 2063007782U, 2063007781U, 2063007780U, 2063007779U, 2063007778U, 2046230569U, 2046230568U, 2046230567U, 2046230566U, 2046230565U, 2046230564U, 2046230563U, 2046230562U, 2029453353U, 2029453352U, 2029453351U, 2029453350U, 2029453349U, 2029453348U, 2029453347U, 2029453346U, 2012676137U, 2012676136U, 2012676135U, 2012676134U, 2012676133U, 2012676132U, 2012676131U, 2012676130U, 1995898921U, 1995898920U, 1995898919U, 1995898918U, 1995898916U, 1995898915U, 1995898914U, 1995898913U, 1979121705U, 1979121704U, 1979121703U, 1979121702U, 1979121701U, 1979121700U, 1979121699U, 1962344489U, 1962344488U, 1962344486U, 1962344485U, 1962344484U, 1962344483U, 1962344482U, 1945567273U, 1945567271U, 1945567270U, 1945567269U, 1945567268U, 1945567267U, 1945567266U, 1928790056U, 1928790055U, 1928790054U, 1928790053U, 1928790052U, 1928790051U, 1928790050U, 1912012840U, 1912012839U, 1912012838U, 1912012837U, 1912012836U, 1912012835U, 1895235624U, 1895235623U, 1895235622U, 1895235620U, 1895235619U, 1895235618U, 1895235617U, 1895235616U, 1895235616U, 1895235615U}; static u32 const b43_ntab_tx_gain_ipa_2057_rev9_5g[128U] = { 2139029587U, 2139029579U, 2139029572U, 2139029567U, 2139029561U, 2139029557U, 2139029554U, 2139029552U, 2139029549U, 2122252336U, 2122252333U, 2105475122U, 2105475119U, 2105475116U, 2088697906U, 2088697904U, 2088697901U, 2071920688U, 2071920686U, 2071920683U, 2055143474U, 2055143472U, 2055143469U, 2055143467U, 2038366256U, 2038366254U, 2038366251U, 2038366249U, 2021589040U, 2021589037U, 2021589035U, 2004811826U, 2004811824U, 2004811821U, 2004811819U, 1988034609U, 1988034607U, 1988034604U, 1988034602U, 1971257393U, 1971257391U, 1971257388U, 1971257386U, 1954480176U, 1954480173U, 1954480171U, 1937702962U, 1937702959U, 1937702956U, 1937702954U, 1920925744U, 1920925741U, 1920925739U, 1920925737U, 1904148528U, 1904148525U, 1904148523U, 1887371313U, 1887371311U, 1887371308U, 1887371306U, 1887371303U, 1887371301U, 1887371299U, 1887371297U, 1887371295U, 1887371293U, 1887371292U, 1887371290U, 1887371289U, 1887371287U, 1887371286U, 1887371285U, 1887371284U, 1887371282U, 1887371282U, 1887371281U, 1887371280U, 1887371279U, 1887371278U, 1887371277U, 1887371277U, 1887371276U, 1887371275U, 1887371274U, 1887371274U, 1887371273U, 1887371272U, 1887371272U, 1887371272U, 1887371272U, 1887371271U, 1887371271U, 1887371270U, 1887371270U, 1887371270U, 1887371269U, 1887371269U, 1887371269U, 1887371268U, 1887371268U, 1887371268U, 1887371267U, 1887371267U, 1887371267U, 1887371267U, 1887371267U, 1887371267U, 1887371267U, 1887371267U, 1887371267U, 1887371267U, 1887371266U, 1887371266U, 1887371266U, 1887371266U, 1887371266U, 1887371266U, 1887371266U, 1887371266U, 1887371266U, 1887371265U, 1887371265U, 1887371265U, 1887371265U, 1887371265U, 1887371265U, 1887371265U}; s8 const b43_ntab_papd_pga_gain_delta_ipa_2g[16U] = { -114, -108, -98, -91, -84, -78, -70, -62, -54, -46, -39, -31, -23, -15, -8, 0}; static s16 const b43_ntab_rf_pwr_offset_2057_rev9_2g[32U] = { -133, -133, -107, -92, -81, -73, -66, -61, -56, -52, -48, -44, -41, -37, -34, -31, -28, -25, -22, -19, -17, -14, -12, -10, -9, -7, -5, -4, -3, -2, -1, 0}; static s16 const b43_ntab_rf_pwr_offset_2057_rev9_5g[16U] = { -101, -94, -86, -79, -72, -65, -57, -50, -42, -35, -28, -21, -16, -9, -4, 0}; static s16 const b43_ntab_rf_pwr_offset_2057_rev14_2g[32U] = { -111, -111, -111, -84, -70, -59, -52, -45, -40, -36, -32, -29, -26, -23, -21, -18, -16, -15, -13, -11, -10, -8, -7, -6, -5, -4, -4, -3, -3, -2, -2, -1}; u16 const tbl_iqcal_gainparams[2U][9U][8U] = { { { 0U, 0U, 0U, 2U, 105U, 105U, 105U, 105U}, { 1792U, 7U, 0U, 0U, 105U, 105U, 105U, 105U}, { 1808U, 7U, 1U, 0U, 104U, 104U, 104U, 104U}, { 1824U, 7U, 2U, 0U, 103U, 103U, 103U, 103U}, { 1840U, 7U, 3U, 0U, 102U, 102U, 102U, 102U}, { 1856U, 7U, 4U, 0U, 101U, 101U, 101U, 101U}, { 1857U, 7U, 4U, 1U, 101U, 101U, 101U, 101U}, { 1858U, 7U, 4U, 2U, 101U, 101U, 101U, 101U}, { 1859U, 7U, 4U, 3U, 101U, 101U, 101U, 101U}}, { { 0U, 7U, 0U, 0U, 121U, 121U, 121U, 121U}, { 1792U, 7U, 0U, 0U, 121U, 121U, 121U, 121U}, { 1808U, 7U, 1U, 0U, 121U, 121U, 121U, 121U}, { 1824U, 7U, 2U, 0U, 120U, 120U, 120U, 120U}, { 1840U, 7U, 3U, 0U, 120U, 120U, 120U, 120U}, { 1856U, 7U, 4U, 0U, 120U, 120U, 120U, 120U}, { 1857U, 7U, 4U, 1U, 120U, 120U, 120U, 120U}, { 1858U, 7U, 4U, 2U, 120U, 120U, 120U, 120U}, { 1859U, 7U, 4U, 3U, 120U, 120U, 120U, 120U}}}; struct nphy_txiqcal_ladder const ladder_lo[18U] = { {3U, 0U}, {4U, 0U}, {6U, 0U}, {9U, 0U}, {13U, 0U}, {18U, 0U}, {25U, 0U}, {25U, 1U}, {25U, 2U}, {25U, 3U}, {25U, 4U}, {25U, 5U}, {25U, 6U}, {25U, 7U}, {35U, 7U}, {50U, 7U}, {71U, 7U}, {100U, 7U}}; struct nphy_txiqcal_ladder const ladder_iq[18U] = { {3U, 0U}, {4U, 0U}, {6U, 0U}, {9U, 0U}, {13U, 0U}, {18U, 0U}, {25U, 0U}, {35U, 0U}, {50U, 0U}, {71U, 0U}, {100U, 0U}, {100U, 1U}, {100U, 2U}, {100U, 3U}, {100U, 4U}, {100U, 5U}, {100U, 6U}, {100U, 7U}}; u16 const loscale[128U] = { 256U, 256U, 271U, 271U, 287U, 256U, 256U, 271U, 271U, 287U, 287U, 304U, 304U, 256U, 256U, 271U, 271U, 287U, 287U, 304U, 304U, 322U, 322U, 341U, 341U, 362U, 362U, 383U, 383U, 256U, 256U, 271U, 271U, 287U, 287U, 304U, 304U, 322U, 322U, 256U, 256U, 271U, 271U, 287U, 287U, 304U, 304U, 322U, 322U, 341U, 341U, 362U, 362U, 256U, 256U, 271U, 271U, 287U, 287U, 304U, 304U, 322U, 322U, 256U, 256U, 271U, 271U, 287U, 287U, 304U, 304U, 322U, 322U, 341U, 341U, 362U, 362U, 256U, 256U, 271U, 271U, 287U, 287U, 304U, 304U, 322U, 322U, 341U, 341U, 362U, 362U, 383U, 383U, 406U, 406U, 430U, 430U, 455U, 455U, 482U, 482U, 511U, 511U, 541U, 541U, 573U, 573U, 607U, 607U, 643U, 643U, 681U, 681U, 722U, 722U, 764U, 764U, 810U, 810U, 858U, 858U, 908U, 908U, 962U, 962U, 1019U, 1019U, 256U}; u16 const tbl_tx_iqlo_cal_loft_ladder_40[18U] = { 512U, 768U, 1024U, 1792U, 2304U, 3072U, 4608U, 4609U, 4610U, 4611U, 4612U, 4613U, 4614U, 4615U, 6407U, 8967U, 12807U, 18183U}; u16 const tbl_tx_iqlo_cal_loft_ladder_20[18U] = { 768U, 1280U, 1792U, 2304U, 3328U, 4352U, 6400U, 6401U, 6402U, 6403U, 6404U, 6405U, 6406U, 6407U, 9223U, 12807U, 17927U, 25607U}; u16 const tbl_tx_iqlo_cal_iqimb_ladder_40[18U] = { 256U, 512U, 1024U, 1792U, 2304U, 3072U, 4608U, 6400U, 8960U, 12800U, 18176U, 18177U, 18178U, 18179U, 18180U, 18181U, 18182U, 18183U}; u16 const tbl_tx_iqlo_cal_iqimb_ladder_20[18U] = { 512U, 768U, 1536U, 2304U, 3328U, 4352U, 6400U, 9216U, 12800U, 17920U, 25600U, 25601U, 25602U, 25603U, 25604U, 25605U, 25606U, 25607U}; u16 const tbl_tx_iqlo_cal_startcoefs_nphyrev3[11U] = { (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0}; u16 const tbl_tx_iqlo_cal_startcoefs[9U] = { (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0}; u16 const tbl_tx_iqlo_cal_cmds_recal_nphyrev3[12U] = { 33827U, 33571U, 32883U, 33366U, 32837U, 33315U, 37923U, 37667U, 36979U, 37462U, 36933U, 37411U}; u16 const tbl_tx_iqlo_cal_cmds_recal[10U] = { 33025U, 33363U, 32851U, 33332U, 32820U, 37121U, 37459U, 36947U, 37428U, 36916U}; u16 const tbl_tx_iqlo_cal_cmds_fullcal[10U] = { 33059U, 33380U, 32902U, 33349U, 32854U, 37155U, 37476U, 36998U, 37445U, 36950U}; u16 const tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[12U] = { 33844U, 33588U, 32900U, 33383U, 32854U, 33332U, 37940U, 37684U, 36996U, 37479U, 36950U, 37428U}; s16 const tbl_tx_filter_coef_rev4[7U][15U] = { { -377, 137, -407, 208, -1527, 956, 93, 186, 93, 230, -44, 230, 201, -191, 201}, { -77, 20, -98, 49, -93, 60, 56, 111, 56, 26, -5, 26, 34, -32, 34}, { -360, 164, -376, 164, -1533, 576, 308, -314, 308, 121, -73, 121, 91, 124, 91}, { -295, 200, -363, 142, -1391, 826, 151, 301, 151, 151, 301, 151, 602, -752, 602}, { -92, 58, -96, 49, -104, 44, 17, 35, 17, 12, 25, 12, 13, 27, 13}, { -375, 136, -399, 209, -1479, 949, 130, 260, 130, 230, -44, 230, 201, -191, 201}, { 3801, 200, 3733, 142, 2705, 826, 151, 301, 151, 151, 301, 151, 602, 3344, 602}}; struct nphy_rf_control_override_rev2 const tbl_rf_control_override_rev2[14U] = { {120U, 120U, 56U, 3U}, {122U, 125U, 1U, 0U}, {122U, 125U, 2U, 1U}, {122U, 125U, 4U, 2U}, {122U, 125U, 48U, 4U}, {122U, 125U, 192U, 6U}, {122U, 125U, 256U, 8U}, {122U, 125U, 512U, 9U}, {120U, 120U, 4U, 2U}, {123U, 126U, 511U, 0U}, {124U, 127U, 511U, 0U}, {120U, 120U, 256U, 8U}, {120U, 120U, 512U, 9U}, {120U, 120U, 61440U, 12U}}; struct nphy_rf_control_override_rev3 const tbl_rf_control_override_rev3[15U] = { {32768U, 15U, 229U, 249U, 230U, 251U}, {1U, 0U, 231U, 122U, 236U, 125U}, {2U, 1U, 231U, 122U, 236U, 125U}, {4U, 2U, 231U, 122U, 236U, 125U}, {16U, 4U, 231U, 122U, 236U, 125U}, {32U, 5U, 231U, 122U, 236U, 125U}, {64U, 6U, 231U, 122U, 236U, 125U}, {128U, 7U, 231U, 122U, 236U, 125U}, {256U, 8U, 231U, 122U, 236U, 125U}, {7U, 0U, 231U, 248U, 236U, 250U}, {112U, 4U, 231U, 248U, 236U, 250U}, {57344U, 13U, 231U, 122U, 236U, 125U}, {65535U, 0U, 231U, 123U, 236U, 126U}, {65535U, 0U, 231U, 124U, 236U, 127U}, {192U, 6U, 231U, 249U, 236U, 251U}}; static struct nphy_rf_control_override_rev7 const tbl_rf_control_override_rev7_over0[11U] = { {4U, 122U, 125U, 2U, 1U}, {8U, 122U, 125U, 4U, 2U}, {16U, 122U, 125U, 16U, 4U}, {32U, 122U, 125U, 32U, 5U}, {64U, 122U, 125U, 64U, 6U}, {128U, 122U, 125U, 128U, 7U}, {1024U, 248U, 250U, 112U, 4U}, {2048U, 123U, 126U, 65535U, 0U}, {4096U, 124U, 127U, 65535U, 0U}, {24576U, 840U, 841U, 255U, 0U}, {8192U, 840U, 841U, 15U, 0U}}; static struct nphy_rf_control_override_rev7 const tbl_rf_control_override_rev7_over1[12U] = { {2U, 832U, 833U, 2U, 1U}, {8U, 832U, 833U, 8U, 3U}, {32U, 832U, 833U, 32U, 5U}, {16U, 832U, 833U, 16U, 4U}, {4U, 832U, 833U, 4U, 2U}, {128U, 832U, 833U, 1792U, 8U}, {2048U, 832U, 833U, 16384U, 14U}, {1024U, 832U, 833U, 8192U, 13U}, {512U, 832U, 833U, 2048U, 12U}, {256U, 832U, 833U, 256U, 11U}, {64U, 832U, 833U, 64U, 6U}, {1U, 832U, 833U, 1U, 0U}}; static struct nphy_rf_control_override_rev7 const tbl_rf_control_override_rev7_over2[5U] = { {8U, 836U, 837U, 8U, 3U}, {2U, 836U, 837U, 2U, 1U}, {1U, 836U, 837U, 1U, 0U}, {4U, 836U, 837U, 4U, 2U}, {16U, 836U, 837U, 16U, 4U}}; static struct nphy_gain_ctl_workaround_entry nphy_gain_ctl_wa_phy6_radio11_ghz2 = {{10, 14, 19, 27}, {-5, 6, 10, 15}, {10U, 10U, 10U, 10U, 10U, 10U, 10U, 10U, 10U, 10U}, {3U, 3U, 3U, 3U, 3U, 3U, 3U, 3U, 3U, 3U}, 17022U, {16703U, 16703U, 16703U, 16703U}, 126U, 102U, 4212U, 24U, 24U, 24U, 464U, 5U}; static struct nphy_gain_ctl_workaround_entry nphy_gain_ctl_workaround[2U][4U] = { { {{7, 11, 16, 23}, {-5, 6, 10, 14}, {10U, 10U, 10U, 10U, 10U, 10U, 10U, 10U, 10U, 10U}, {3U, 3U, 3U, 3U, 3U, 3U, 3U, 3U, 3U, 3U}, 25214U, {24895U, 24895U, 24895U, 24895U}, 4222U, 102U, 116U, 24U, 24U, 24U, 525U, 5U}, {{8, 12, 17, 25}, {-5, 6, 10, 14}, {10U, 10U, 10U, 10U, 10U, 10U, 10U, 10U, 10U, 10U}, {3U, 3U, 3U, 3U, 3U, 3U, 3U, 3U, 3U, 3U}, 21118U, {20799U, 20799U, 20799U, 20799U}, 126U, 102U, 116U, 24U, 24U, 24U, 417U, 5U}, {{9, 13, 18, 26}, {-3, 7, 11, 16}, {10U, 10U, 10U, 10U, 10U, 10U, 10U, 10U, 10U, 10U}, {3U, 3U, 3U, 3U, 3U, 3U, 3U, 3U, 3U, 3U}, 17022U, {16703U, 16703U, 16703U, 16703U}, 4214U, 102U, 0U, 24U, 24U, 24U, 464U, 9U}, {{8, 13, 18, 25}, {-5, 6, 10, 14}, {10U, 10U, 10U, 10U, 10U, 10U, 10U, 10U, 10U, 10U}, {3U, 3U, 3U, 3U, 3U, 3U, 3U, 3U, 3U, 3U}, 21118U, {20799U, 20799U, 20799U, 20799U}, 126U, 102U, 0U, 24U, 24U, 24U, 464U, 5U}}, { {{7, 11, 17, 23}, {-6, 2, 6, 10}, {19U, 19U, 19U, 19U, 19U, 19U, 19U, 19U, 19U, 19U}, {6U, 6U, 6U, 6U, 6U, 6U, 6U, 6U, 6U, 6U}, 21214U, {20847U, 20847U, 20847U, 20847U}, 222U, 202U, 204U, 30U, 30U, 30U, 417U, 25U}, {{8, 12, 18, 23}, {-5, 2, 6, 10}, {13U, 13U, 13U, 13U, 13U, 13U, 13U, 13U, 13U, 13U}, {4U, 4U, 4U, 4U, 4U, 4U, 4U, 4U, 4U, 4U}, 25246U, {24911U, 24911U, 24911U, 24911U}, 670U, 4228U, 134U, 36U, 36U, 36U, 263U, 25U}, {{6, 10, 16, 21}, {-7, 0, 4, 8}, {13U, 13U, 13U, 13U, 13U, 13U, 13U, 13U, 13U, 13U}, {4U, 4U, 4U, 4U, 4U, 4U, 4U, 4U, 4U, 4U}, 29342U, {29007U, 29007U, 29007U, 29007U}, 670U, 8324U, 8326U, 36U, 36U, 36U, 169U, 25U}, {{6, 10, 16, 21}, {-7, 0, 4, 8}, {13U, 13U, 13U, 13U, 13U, 13U, 13U, 13U, 13U, 13U}, {4U, 4U, 4U, 4U, 4U, 4U, 4U, 4U, 4U, 4U}, 29342U, {29007U, 29007U, 29007U, 29007U}, 670U, 8324U, 8326U, 36U, 36U, 36U, 240U, 25U}}}; u32 b43_ntab_read(struct b43_wldev *dev , u32 offset ) { u32 type ; u32 value ; int __ret_warn_on ; long tmp ; u16 tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; u16 tmp___3 ; int __ret_warn_on___0 ; long tmp___4 ; { type = offset & 4026531840U; offset = offset & 268435455U; __ret_warn_on = offset > 65535U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_nphy.c", 3329); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); switch (type) { case 268435456U: b43_phy_write(dev, 114, (int )((u16 )offset)); tmp___0 = b43_phy_read(dev, 115); value = (u32 )tmp___0 & 255U; goto ldv_54230; case 536870912U: b43_phy_write(dev, 114, (int )((u16 )offset)); tmp___1 = b43_phy_read(dev, 115); value = (u32 )tmp___1; goto ldv_54230; case 805306368U: b43_phy_write(dev, 114, (int )((u16 )offset)); tmp___2 = b43_phy_read(dev, 115); value = (u32 )tmp___2; tmp___3 = b43_phy_read(dev, 116); value = (u32 )((int )tmp___3 << 16) | value; goto ldv_54230; default: __ret_warn_on___0 = 1; tmp___4 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___4 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_nphy.c", 3346); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); value = 0U; } ldv_54230: ; return (value); } } void b43_ntab_read_bulk(struct b43_wldev *dev , u32 offset , unsigned int nr_elements , void *_data___0 ) { u32 type ; u8 *data ; unsigned int i ; int __ret_warn_on ; long tmp ; u16 tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; int __ret_warn_on___0 ; long tmp___3 ; { data = (u8 *)_data___0; type = offset & 4026531840U; offset = offset & 268435455U; __ret_warn_on = offset > 65535U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_nphy.c", 3362); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_phy_write(dev, 114, (int )((u16 )offset)); i = 0U; goto ldv_54255; ldv_54254: ; if ((unsigned int )(dev->dev)->chip_id == 43224U && (unsigned int )(dev->dev)->chip_rev == 1U) { b43_phy_read(dev, 115); b43_phy_write(dev, 114, (int )((u16 )offset) + (int )((u16 )i)); } else { } switch (type) { case 268435456U: tmp___0 = b43_phy_read(dev, 115); *data = (u8 )tmp___0; data = data + 1; goto ldv_54248; case 536870912U: *((u16 *)data) = b43_phy_read(dev, 115); data = data + 2UL; goto ldv_54248; case 805306368U: tmp___1 = b43_phy_read(dev, 115); *((u32 *)data) = (u32 )tmp___1; tmp___2 = b43_phy_read(dev, 116); *((u32 *)data) = *((u32 *)data) | (u32 )((int )tmp___2 << 16); data = data + 4UL; goto ldv_54248; default: __ret_warn_on___0 = 1; tmp___3 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___3 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_nphy.c", 3390); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); } ldv_54248: i = i + 1U; ldv_54255: ; if (i < nr_elements) { goto ldv_54254; } else { } return; } } void b43_ntab_write(struct b43_wldev *dev , u32 offset , u32 value ) { u32 type ; int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; int __ret_warn_on___1 ; long tmp___1 ; { type = offset & 4026531840U; offset = offset & 65535U; switch (type) { case 268435456U: __ret_warn_on = (value & 4294967040U) != 0U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_nphy.c", 3404); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_phy_write(dev, 114, (int )((u16 )offset)); b43_phy_write(dev, 115, (int )((u16 )value)); goto ldv_54266; case 536870912U: __ret_warn_on___0 = (value & 4294901760U) != 0U; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_nphy.c", 3409); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); b43_phy_write(dev, 114, (int )((u16 )offset)); b43_phy_write(dev, 115, (int )((u16 )value)); goto ldv_54266; case 805306368U: b43_phy_write(dev, 114, (int )((u16 )offset)); b43_phy_write(dev, 116, (int )((u16 )(value >> 16))); b43_phy_write(dev, 115, (int )((u16 )value)); goto ldv_54266; default: __ret_warn_on___1 = 1; tmp___1 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_nphy.c", 3419); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); } ldv_54266: ; return; assert_sizes(); } } void b43_ntab_write_bulk(struct b43_wldev *dev , u32 offset , unsigned int nr_elements , void const *_data___0 ) { u32 type ; u32 value ; u8 const *data ; unsigned int i ; int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; int __ret_warn_on___1 ; long tmp___1 ; int __ret_warn_on___2 ; long tmp___2 ; { data = (u8 const *)_data___0; type = offset & 4026531840U; offset = offset & 268435455U; __ret_warn_on = offset > 65535U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_nphy.c", 3437); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_phy_write(dev, 114, (int )((u16 )offset)); i = 0U; goto ldv_54298; ldv_54297: ; if ((offset >> 10 == 9U && (unsigned int )(dev->dev)->chip_id == 43224U) && (unsigned int )(dev->dev)->chip_rev == 1U) { b43_phy_read(dev, 115); b43_phy_write(dev, 114, (int )((u16 )offset) + (int )((u16 )i)); } else { } switch (type) { case 268435456U: value = (u32 )*data; data = data + 1; __ret_warn_on___0 = (value & 4294967040U) != 0U; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_nphy.c", 3453); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); b43_phy_write(dev, 115, (int )((u16 )value)); goto ldv_54289; case 536870912U: value = (u32 )*((u16 *)data); data = data + 2UL; __ret_warn_on___1 = (value & 4294901760U) != 0U; tmp___1 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_nphy.c", 3459); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); b43_phy_write(dev, 115, (int )((u16 )value)); goto ldv_54289; case 805306368U: value = *((u32 *)data); data = data + 4UL; b43_phy_write(dev, 116, (int )((u16 )(value >> 16))); b43_phy_write(dev, 115, (int )((u16 )value)); goto ldv_54289; default: __ret_warn_on___2 = 1; tmp___2 = ldv__builtin_expect(__ret_warn_on___2 != 0, 0L); if (tmp___2 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_nphy.c", 3470); } else { } ldv__builtin_expect(__ret_warn_on___2 != 0, 0L); } ldv_54289: i = i + 1U; ldv_54298: ; if (i < nr_elements) { goto ldv_54297; } else { } return; } } static void b43_nphy_tables_init_shared_lut(struct b43_wldev *dev ) { { b43_ntab_write_bulk(dev, 268462080U, 64U, (void const *)(& b43_ntab_estimatepowerlt0_r3)); b43_ntab_write_bulk(dev, 268463104U, 64U, (void const *)(& b43_ntab_estimatepowerlt1_r3)); b43_ntab_write_bulk(dev, 268462144U, 128U, (void const *)(& b43_ntab_adjustpower0_r3)); b43_ntab_write_bulk(dev, 268463168U, 128U, (void const *)(& b43_ntab_adjustpower1_r3)); b43_ntab_write_bulk(dev, 805333184U, 128U, (void const *)(& b43_ntab_gainctl0_r3)); b43_ntab_write_bulk(dev, 805334208U, 128U, (void const *)(& b43_ntab_gainctl1_r3)); b43_ntab_write_bulk(dev, 805333312U, 128U, (void const *)(& b43_ntab_iqlt0_r3)); b43_ntab_write_bulk(dev, 805334336U, 128U, (void const *)(& b43_ntab_iqlt1_r3)); b43_ntab_write_bulk(dev, 536897984U, 128U, (void const *)(& b43_ntab_loftlt0_r3)); b43_ntab_write_bulk(dev, 536899008U, 128U, (void const *)(& b43_ntab_loftlt1_r3)); return; } } static void b43_nphy_tables_init_rev7_volatile(struct b43_wldev *dev ) { struct ssb_sprom *sprom ; u8 antswlut ; int core ; int offset ; int i ; int antswlut0_offsets[3U] ; u8 antswlut0_values[2U][3U] ; enum ieee80211_band tmp ; { sprom = (dev->dev)->bus_sprom; antswlut0_offsets[0] = 0; antswlut0_offsets[1] = 4; antswlut0_offsets[2] = 8; antswlut0_values[0][0] = 2U; antswlut0_values[0][1] = 18U; antswlut0_values[0][2] = 8U; antswlut0_values[1][0] = 2U; antswlut0_values[1][1] = 24U; antswlut0_values[1][2] = 2U; tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 1U) { antswlut = sprom->fem.ghz5.antswlut; } else { antswlut = sprom->fem.ghz2.antswlut; } switch ((int )antswlut) { case 0: core = 0; goto ldv_54340; ldv_54339: i = 0; goto ldv_54337; ldv_54336: offset = core != 0 ? 32 : 0; offset = antswlut0_offsets[i] + offset; b43_ntab_write(dev, (u32 )(offset | 268444672), (u32 )antswlut0_values[core][i]); i = i + 1; ldv_54337: ; if ((unsigned int )i <= 2U) { goto ldv_54336; } else { } core = core + 1; ldv_54340: ; if (core <= 1) { goto ldv_54339; } else { } goto ldv_54342; default: b43err(dev->wl, "Unsupported antswlut: %d\n", (int )antswlut); goto ldv_54342; } ldv_54342: ; return; } } static void b43_nphy_tables_init_rev16(struct b43_wldev *dev ) { { if ((int )dev->phy.do_full_init) { b43_ntab_write_bulk(dev, 805322752U, 256U, (void const *)(& b43_ntab_noisevar_r7)); b43_nphy_tables_init_shared_lut(dev); } else { } b43_nphy_tables_init_rev7_volatile(dev); return; } } static void b43_nphy_tables_init_rev7(struct b43_wldev *dev ) { { if ((int )dev->phy.do_full_init) { b43_ntab_write_bulk(dev, 805316608U, 832U, (void const *)(& b43_ntab_framestruct_r3)); b43_ntab_write_bulk(dev, 536882176U, 88U, (void const *)(& b43_ntab_pilot_r3)); b43_ntab_write_bulk(dev, 805318656U, 448U, (void const *)(& b43_ntab_tmap_r7)); b43_ntab_write_bulk(dev, 805319680U, 7U, (void const *)(& b43_ntab_intlevel_r3)); b43_ntab_write_bulk(dev, 805320704U, 704U, (void const *)(& b43_ntab_tdtrn_r3)); b43_ntab_write_bulk(dev, 805322752U, 256U, (void const *)(& b43_ntab_noisevar_r7)); b43_ntab_write_bulk(dev, 536889344U, 128U, (void const *)(& b43_ntab_mcs_r3)); b43_ntab_write_bulk(dev, 805325952U, 55U, (void const *)(& b43_ntab_tdi20a0_r3)); b43_ntab_write_bulk(dev, 805326080U, 55U, (void const *)(& b43_ntab_tdi20a1_r3)); b43_ntab_write_bulk(dev, 805326464U, 110U, (void const *)(& b43_ntab_tdi40a0_r3)); b43_ntab_write_bulk(dev, 805326592U, 110U, (void const *)(& b43_ntab_tdi40a1_r3)); b43_ntab_write_bulk(dev, 805326848U, 6U, (void const *)(& b43_ntab_pilotlt_r3)); b43_ntab_write_bulk(dev, 805328896U, 96U, (void const *)(& b43_ntab_channelest_r3)); b43_ntab_write_bulk(dev, 268460032U, 32U, (void const *)(& b43_ntab_framelookup_r3)); b43_nphy_tables_init_shared_lut(dev); } else { } b43_nphy_tables_init_rev7_volatile(dev); return; } } static void b43_nphy_tables_init_rev3(struct b43_wldev *dev ) { struct ssb_sprom *sprom ; u8 antswlut ; enum ieee80211_band tmp ; int __ret_warn_on ; long tmp___0 ; { sprom = (dev->dev)->bus_sprom; tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 1U) { antswlut = sprom->fem.ghz5.antswlut; } else { antswlut = sprom->fem.ghz2.antswlut; } if ((int )dev->phy.do_full_init) { b43_ntab_write_bulk(dev, 805316608U, 832U, (void const *)(& b43_ntab_framestruct_r3)); b43_ntab_write_bulk(dev, 536882176U, 88U, (void const *)(& b43_ntab_pilot_r3)); b43_ntab_write_bulk(dev, 805318656U, 448U, (void const *)(& b43_ntab_tmap_r3)); b43_ntab_write_bulk(dev, 805319680U, 7U, (void const *)(& b43_ntab_intlevel_r3)); b43_ntab_write_bulk(dev, 805320704U, 704U, (void const *)(& b43_ntab_tdtrn_r3)); b43_ntab_write_bulk(dev, 805322752U, 256U, (void const *)(& b43_ntab_noisevar_r3)); b43_ntab_write_bulk(dev, 536889344U, 128U, (void const *)(& b43_ntab_mcs_r3)); b43_ntab_write_bulk(dev, 805325952U, 55U, (void const *)(& b43_ntab_tdi20a0_r3)); b43_ntab_write_bulk(dev, 805326080U, 55U, (void const *)(& b43_ntab_tdi20a1_r3)); b43_ntab_write_bulk(dev, 805326464U, 110U, (void const *)(& b43_ntab_tdi40a0_r3)); b43_ntab_write_bulk(dev, 805326592U, 110U, (void const *)(& b43_ntab_tdi40a1_r3)); b43_ntab_write_bulk(dev, 805326848U, 6U, (void const *)(& b43_ntab_pilotlt_r3)); b43_ntab_write_bulk(dev, 805328896U, 96U, (void const *)(& b43_ntab_channelest_r3)); b43_ntab_write_bulk(dev, 268460032U, 32U, (void const *)(& b43_ntab_framelookup_r3)); b43_nphy_tables_init_shared_lut(dev); } else { } if ((unsigned int )antswlut <= 3U) { b43_ntab_write_bulk(dev, 536880128U, 32U, (void const *)(& b43_ntab_antswctl_r3) + (unsigned long )antswlut); } else { __ret_warn_on = 1; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_nphy.c", 3598); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); } return; } } static void b43_nphy_tables_init_rev0(struct b43_wldev *dev ) { { if ((int )dev->phy.do_full_init) { b43_ntab_write_bulk(dev, 805316608U, 832U, (void const *)(& b43_ntab_framestruct)); b43_ntab_write_bulk(dev, 268460032U, 32U, (void const *)(& b43_ntab_framelookup)); b43_ntab_write_bulk(dev, 805318656U, 448U, (void const *)(& b43_ntab_tmap)); b43_ntab_write_bulk(dev, 805320704U, 704U, (void const *)(& b43_ntab_tdtrn)); b43_ntab_write_bulk(dev, 805319680U, 7U, (void const *)(& b43_ntab_intlevel)); b43_ntab_write_bulk(dev, 536882176U, 88U, (void const *)(& b43_ntab_pilot)); b43_ntab_write_bulk(dev, 805325952U, 55U, (void const *)(& b43_ntab_tdi20a0)); b43_ntab_write_bulk(dev, 805326080U, 55U, (void const *)(& b43_ntab_tdi20a1)); b43_ntab_write_bulk(dev, 805326464U, 110U, (void const *)(& b43_ntab_tdi40a0)); b43_ntab_write_bulk(dev, 805326592U, 110U, (void const *)(& b43_ntab_tdi40a1)); b43_ntab_write_bulk(dev, 805328896U, 96U, (void const *)(& b43_ntab_channelest)); b43_ntab_write_bulk(dev, 268453888U, 128U, (void const *)(& b43_ntab_mcs)); b43_ntab_write_bulk(dev, 805322752U, 256U, (void const *)(& b43_ntab_noisevar10)); b43_ntab_write_bulk(dev, 805322880U, 256U, (void const *)(& b43_ntab_noisevar11)); } else { } b43_ntab_write_bulk(dev, 536892416U, 6U, (void const *)(& b43_ntab_bdi)); b43_ntab_write_bulk(dev, 805326848U, 6U, (void const *)(& b43_ntab_pilotlt)); b43_ntab_write_bulk(dev, 805333184U, 128U, (void const *)(& b43_ntab_gainctl0)); b43_ntab_write_bulk(dev, 805334208U, 128U, (void const *)(& b43_ntab_gainctl1)); b43_ntab_write_bulk(dev, 268462080U, 64U, (void const *)(& b43_ntab_estimatepowerlt0)); b43_ntab_write_bulk(dev, 268463104U, 64U, (void const *)(& b43_ntab_estimatepowerlt1)); b43_ntab_write_bulk(dev, 268462144U, 128U, (void const *)(& b43_ntab_adjustpower0)); b43_ntab_write_bulk(dev, 268463168U, 128U, (void const *)(& b43_ntab_adjustpower1)); b43_ntab_write_bulk(dev, 805333312U, 128U, (void const *)(& b43_ntab_iqlt0)); b43_ntab_write_bulk(dev, 805334336U, 128U, (void const *)(& b43_ntab_iqlt1)); b43_ntab_write_bulk(dev, 536897984U, 128U, (void const *)(& b43_ntab_loftlt0)); b43_ntab_write_bulk(dev, 536899008U, 128U, (void const *)(& b43_ntab_loftlt1)); return; } } void b43_nphy_tables_init(struct b43_wldev *dev ) { { if ((unsigned int )dev->phy.rev > 15U) { b43_nphy_tables_init_rev16(dev); } else if ((unsigned int )dev->phy.rev > 6U) { b43_nphy_tables_init_rev7(dev); } else if ((unsigned int )dev->phy.rev > 2U) { b43_nphy_tables_init_rev3(dev); } else { b43_nphy_tables_init_rev0(dev); } return; } } static u32 const *b43_nphy_get_ipa_gain_table(struct b43_wldev *dev ) { struct b43_phy *phy ; enum ieee80211_band tmp ; { phy = & dev->phy; tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { switch ((int )phy->rev) { case 17: ; if ((unsigned int )phy->radio_rev == 14U) { return ((u32 const *)(& b43_ntab_tx_gain_ipa_2057_rev14_2g)); } else { } goto ldv_54482; case 16: ; if ((unsigned int )phy->radio_rev == 9U) { return ((u32 const *)(& b43_ntab_tx_gain_ipa_2057_rev9_2g)); } else { } goto ldv_54482; case 8: ; if ((unsigned int )phy->radio_rev == 5U) { return ((u32 const *)(& b43_ntab_tx_gain_ipa_2057_rev5_2g)); } else { } goto ldv_54482; case 6: ; if ((unsigned int )(dev->dev)->chip_id == 47162U) { return ((u32 const *)(& b43_ntab_tx_gain_ipa_rev5_2g)); } else { } return ((u32 const *)(& b43_ntab_tx_gain_ipa_rev6_2g)); case 5: ; return ((u32 const *)(& b43_ntab_tx_gain_ipa_rev5_2g)); case 4: ; case 3: ; return ((u32 const *)(& b43_ntab_tx_gain_ipa_rev3_2g)); } ldv_54482: b43err(dev->wl, "No 2GHz IPA gain table available for this device\n"); return ((u32 const *)0U); } else { switch ((int )phy->rev) { case 16: ; if ((unsigned int )phy->radio_rev == 9U) { return ((u32 const *)(& b43_ntab_tx_gain_ipa_2057_rev9_5g)); } else { } goto ldv_54490; case 6: case 5: case 4: case 3: ; return ((u32 const *)(& b43_ntab_tx_gain_ipa_rev3_5g)); } ldv_54490: b43err(dev->wl, "No 5GHz IPA gain table available for this device\n"); return ((u32 const *)0U); } } } u32 const *b43_nphy_get_tx_gain_table(struct b43_wldev *dev ) { struct b43_phy *phy ; enum ieee80211_band band ; enum ieee80211_band tmp ; struct ssb_sprom *sprom ; u32 const *tmp___0 ; enum ieee80211_band tmp___1 ; { phy = & dev->phy; tmp = b43_current_band(dev->wl); band = tmp; sprom = (dev->dev)->bus_sprom; if ((unsigned int )dev->phy.rev <= 2U) { return ((u32 const *)(& b43_ntab_tx_gain_rev0_1_2)); } else { } if (((int )(dev->phy.__annonCompField106.n)->ipa2g_on && (unsigned int )band == 0U) || ((int )(dev->phy.__annonCompField106.n)->ipa5g_on && (unsigned int )band == 1U)) { tmp___0 = b43_nphy_get_ipa_gain_table(dev); return (tmp___0); } else { tmp___1 = b43_current_band(dev->wl); if ((unsigned int )tmp___1 == 1U) { switch ((int )phy->rev) { case 6: ; case 5: ; return ((u32 const *)(& b43_ntab_tx_gain_epa_rev5_5g)); case 4: ; return ((unsigned int )sprom->fem.ghz5.extpa_gain == 3U ? (u32 const *)(& b43_ntab_tx_gain_epa_rev4_5g) : (u32 const *)(& b43_ntab_tx_gain_epa_rev4_hi_pwr_5g)); case 3: ; return ((u32 const *)(& b43_ntab_tx_gain_epa_rev3_5g)); default: b43err(dev->wl, "No 5GHz EPA gain table available for this device\n"); return ((u32 const *)0U); } } else { switch ((int )phy->rev) { case 6: ; case 5: ; if ((unsigned int )sprom->fem.ghz5.extpa_gain == 3U) { return ((u32 const *)(& b43_ntab_tx_gain_epa_rev3_hi_pwr_2g)); } else { } case 4: ; case 3: ; return ((u32 const *)(& b43_ntab_tx_gain_epa_rev3_2g)); default: b43err(dev->wl, "No 2GHz EPA gain table available for this device\n"); return ((u32 const *)0U); } } } } } s16 const *b43_ntab_get_rf_pwr_offset_table(struct b43_wldev *dev ) { struct b43_phy *phy ; enum ieee80211_band tmp ; { phy = & dev->phy; tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { switch ((int )phy->rev) { case 17: ; if ((unsigned int )phy->radio_rev == 14U) { return ((s16 const *)(& b43_ntab_rf_pwr_offset_2057_rev14_2g)); } else { } goto ldv_54513; case 16: ; if ((unsigned int )phy->radio_rev == 9U) { return ((s16 const *)(& b43_ntab_rf_pwr_offset_2057_rev9_2g)); } else { } goto ldv_54513; } ldv_54513: b43err(dev->wl, "No 2GHz RF power table available for this device\n"); return ((s16 const *)0); } else { switch ((int )phy->rev) { case 16: ; if ((unsigned int )phy->radio_rev == 9U) { return ((s16 const *)(& b43_ntab_rf_pwr_offset_2057_rev9_5g)); } else { } goto ldv_54516; } ldv_54516: b43err(dev->wl, "No 5GHz RF power table available for this device\n"); return ((s16 const *)0); } } } struct nphy_gain_ctl_workaround_entry *b43_nphy_get_gain_ctl_workaround_ent(struct b43_wldev *dev , bool ghz5 , bool ext_lna ) { struct b43_phy *phy ; struct nphy_gain_ctl_workaround_entry *e ; u8 phy_idx ; int __ret_warn_on ; long tmp ; u8 tr_iso ; int gain_data[8U] ; int gain_data___0[8U] ; bool tmp___0 ; int tmp___1 ; { phy = & dev->phy; if ((! ghz5 && (unsigned int )dev->phy.rev > 5U) && (unsigned int )dev->phy.radio_rev == 11U) { return (& nphy_gain_ctl_wa_phy6_radio11_ghz2); } else { } __ret_warn_on = (unsigned int )dev->phy.rev <= 2U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_nphy.c", 3788); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if ((unsigned int )dev->phy.rev > 5U) { phy_idx = 3U; } else if ((unsigned int )dev->phy.rev == 5U) { phy_idx = 2U; } else if ((unsigned int )dev->phy.rev == 4U) { phy_idx = 1U; } else { phy_idx = 0U; } e = (struct nphy_gain_ctl_workaround_entry *)(& nphy_gain_ctl_workaround) + ((unsigned long )ghz5 + (unsigned long )phy_idx); if (! ghz5) { tr_iso = ((dev->dev)->bus_sprom)->fem.ghz2.tr_iso; if ((unsigned int )tr_iso > 7U) { tr_iso = 3U; } else { } if ((unsigned int )phy->rev > 5U) { gain_data[0] = 4202; gain_data[1] = 4204; gain_data[2] = 4212; gain_data[3] = 4220; gain_data[4] = 126; gain_data[5] = 4222; gain_data[6] = 8318; gain_data[7] = 12414; e->cliplo_gain = (u16 )gain_data[(int )tr_iso]; } else if ((unsigned int )phy->rev == 5U) { gain_data___0[0] = 98; gain_data___0[1] = 100; gain_data___0[2] = 106; gain_data___0[3] = 4202; gain_data___0[4] = 4204; gain_data___0[5] = 4212; gain_data___0[6] = 4220; gain_data___0[7] = 8316; e->cliplo_gain = (u16 )gain_data___0[(int )tr_iso]; } else { } if ((unsigned int )phy->rev > 4U && (int )ext_lna) { e->rfseq_init[0] = (unsigned int )e->rfseq_init[0] & 49151U; e->rfseq_init[1] = (unsigned int )e->rfseq_init[1] & 49151U; e->rfseq_init[2] = (unsigned int )e->rfseq_init[2] & 49151U; e->rfseq_init[3] = (unsigned int )e->rfseq_init[3] & 49151U; e->init_gain = (unsigned int )e->init_gain & 49151U; } else { } } else if ((unsigned int )phy->rev > 5U) { if ((unsigned int )phy->radio_rev == 11U) { tmp___0 = b43_is_40mhz(dev); if (tmp___0) { tmp___1 = 0; } else { tmp___1 = 1; } if (tmp___1) { e->crsminu = 45U; } else { } } else { } } else if ((unsigned int )phy->rev == 4U && (int )ext_lna) { e->rfseq_init[0] = (unsigned int )e->rfseq_init[0] & 49151U; e->rfseq_init[1] = (unsigned int )e->rfseq_init[1] & 49151U; e->rfseq_init[2] = (unsigned int )e->rfseq_init[2] & 49151U; e->rfseq_init[3] = (unsigned int )e->rfseq_init[3] & 49151U; e->init_gain = (unsigned int )e->init_gain & 49151U; e->rfseq_init[0] = (u16 )((unsigned int )e->rfseq_init[0] | 4096U); e->rfseq_init[1] = (u16 )((unsigned int )e->rfseq_init[1] | 4096U); e->rfseq_init[2] = (u16 )((unsigned int )e->rfseq_init[2] | 4096U); e->rfseq_init[3] = (u16 )((unsigned int )e->rfseq_init[3] | 4096U); e->init_gain = (u16 )((unsigned int )e->init_gain | 4096U); } else { } return (e); } } struct nphy_rf_control_override_rev7 const *b43_nphy_get_rf_ctl_over_rev7(struct b43_wldev *dev , u16 field , u8 override ) { struct nphy_rf_control_override_rev7 const *e ; u8 size ; u8 i ; { switch ((int )override) { case 0: e = (struct nphy_rf_control_override_rev7 const *)(& tbl_rf_control_override_rev7_over0); size = 11U; goto ldv_54541; case 1: e = (struct nphy_rf_control_override_rev7 const *)(& tbl_rf_control_override_rev7_over1); size = 12U; goto ldv_54541; case 2: e = (struct nphy_rf_control_override_rev7 const *)(& tbl_rf_control_override_rev7_over2); size = 5U; goto ldv_54541; default: b43err(dev->wl, "Invalid override value %d\n", (int )override); return ((struct nphy_rf_control_override_rev7 const *)0); } ldv_54541: i = 0U; goto ldv_54550; ldv_54549: ; if ((int )((unsigned short )(e + (unsigned long )i)->field) == (int )field) { return (e + (unsigned long )i); } else { } i = (u8 )((int )i + 1); ldv_54550: ; if ((int )i < (int )size) { goto ldv_54549; } else { } return ((struct nphy_rf_control_override_rev7 const *)0); } } bool ldv_queue_work_on_145(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_146(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_147(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_148(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_149(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_150(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } bool ldv_queue_work_on_161(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_163(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_162(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_165(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_164(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_166(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; void b2055_upload_inittab(struct b43_wldev *dev , bool ghz5 , bool ignore_uploadflag ) ; struct b43_nphy_channeltab_entry_rev2 const *b43_nphy_get_chantabent_rev2(struct b43_wldev *dev , u8 channel ) ; static struct b2055_inittab_entry const b2055_inittab[227U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {128U, 128U, 1U}, {0U, 0U, 1U}, {39U, 39U, 1U}, {0U, 0U, 1U}, {39U, 39U, 1U}, {127U, 127U, 3U}, {7U, 7U, 3U}, {127U, 127U, 3U}, {7U, 7U, 3U}, {21U, 21U, 1U}, {21U, 21U, 1U}, {79U, 79U, 3U}, {5U, 5U, 3U}, {79U, 79U, 3U}, {5U, 5U, 3U}, {208U, 208U, 1U}, {2U, 2U, 1U}, {0U, 0U, 1U}, {64U, 64U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {192U, 192U, 1U}, {255U, 255U, 1U}, {192U, 192U, 1U}, {255U, 255U, 1U}, {192U, 192U, 1U}, {0U, 0U, 1U}, {44U, 44U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {164U, 164U, 1U}, {56U, 56U, 1U}, {0U, 0U, 1U}, {4U, 4U, 3U}, {0U, 0U, 1U}, {10U, 10U, 1U}, {135U, 135U, 1U}, {9U, 9U, 1U}, {112U, 112U, 1U}, {17U, 17U, 1U}, {24U, 24U, 3U}, {6U, 6U, 1U}, {4U, 4U, 3U}, {6U, 6U, 1U}, {158U, 158U, 1U}, {9U, 9U, 1U}, {200U, 200U, 3U}, {136U, 136U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {2U, 2U, 1U}, {150U, 150U, 1U}, {62U, 62U, 1U}, {62U, 62U, 1U}, {19U, 19U, 1U}, {2U, 2U, 1U}, {21U, 21U, 1U}, {7U, 7U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {8U, 8U, 1U}, {6U, 6U, 1U}, {132U, 132U, 3U}, {195U, 195U, 1U}, {143U, 143U, 1U}, {255U, 255U, 1U}, {255U, 255U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {0U, 0U, 1U}, {204U, 204U, 1U}, {6U, 6U, 1U}, {128U, 128U, 1U}, {128U, 128U, 1U}, {248U, 248U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {136U, 8U, 3U}, {136U, 136U, 1U}, {0U, 0U, 1U}, {1U, 1U, 3U}, {138U, 138U, 1U}, {8U, 8U, 1U}, {131U, 131U, 1U}, {6U, 6U, 1U}, {160U, 160U, 1U}, {10U, 10U, 1U}, {135U, 135U, 3U}, {42U, 42U, 1U}, {42U, 42U, 1U}, {42U, 42U, 1U}, {42U, 42U, 1U}, {24U, 24U, 1U}, {106U, 106U, 3U}, {171U, 171U, 3U}, {19U, 19U, 3U}, {193U, 193U, 3U}, {170U, 170U, 3U}, {135U, 135U, 3U}, {0U, 0U, 1U}, {6U, 6U, 1U}, {7U, 7U, 1U}, {7U, 7U, 1U}, {21U, 21U, 1U}, {85U, 85U, 1U}, {151U, 151U, 3U}, {8U, 8U, 1U}, {20U, 20U, 3U}, {51U, 51U, 1U}, {136U, 136U, 1U}, {6U, 6U, 1U}, {3U, 3U, 3U}, {10U, 10U, 1U}, {3U, 3U, 3U}, {42U, 42U, 1U}, {164U, 164U, 1U}, {24U, 24U, 1U}, {40U, 40U, 1U}, {0U, 0U, 1U}, {74U, 74U, 1U}, {0U, 0U, 1U}, {248U, 248U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {136U, 8U, 3U}, {136U, 136U, 1U}, {0U, 0U, 1U}, {1U, 1U, 3U}, {138U, 138U, 1U}, {8U, 8U, 1U}, {131U, 131U, 1U}, {6U, 6U, 1U}, {160U, 160U, 1U}, {10U, 10U, 1U}, {135U, 135U, 3U}, {42U, 42U, 1U}, {42U, 42U, 1U}, {42U, 42U, 1U}, {42U, 42U, 1U}, {24U, 24U, 1U}, {106U, 106U, 3U}, {171U, 171U, 3U}, {19U, 19U, 3U}, {193U, 193U, 3U}, {170U, 170U, 3U}, {135U, 135U, 3U}, {0U, 0U, 1U}, {6U, 6U, 1U}, {7U, 7U, 1U}, {7U, 7U, 1U}, {21U, 21U, 1U}, {85U, 85U, 1U}, {151U, 151U, 3U}, {8U, 8U, 1U}, {20U, 20U, 3U}, {51U, 51U, 1U}, {136U, 136U, 1U}, {6U, 6U, 1U}, {3U, 3U, 3U}, {10U, 10U, 1U}, {3U, 3U, 3U}, {42U, 42U, 1U}, {164U, 164U, 1U}, {24U, 24U, 1U}, {40U, 40U, 1U}, {0U, 0U, 1U}, {74U, 74U, 1U}, {0U, 0U, 1U}, {113U, 113U, 1U}, {114U, 114U, 1U}, {115U, 115U, 1U}, {116U, 116U, 1U}, {117U, 117U, 1U}, {118U, 118U, 1U}, {119U, 119U, 1U}, {120U, 120U, 1U}, {121U, 121U, 1U}, {122U, 122U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {6U, 6U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {24U, 24U, 1U}, {136U, 136U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {6U, 6U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {24U, 24U, 1U}, {136U, 136U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}}; static struct b43_nphy_channeltab_entry_rev2 const b43_nphy_channeltab_rev2[124U] = { {184U, 4920U, 3280U, 113U, 236U, 1U, 15U, 255U, 1U, 4U, 10U, 0U, 143U, 255U, 255U, 255U, 0U, 15U, 15U, 143U, 255U, 0U, 15U, 15U, 143U, {1972U, 1968U, 1964U, 532U, 533U, 534U}}, {186U, 4930U, 3287U, 113U, 237U, 1U, 15U, 255U, 1U, 4U, 10U, 0U, 143U, 255U, 255U, 255U, 0U, 15U, 15U, 143U, 255U, 0U, 15U, 15U, 143U, {1976U, 1972U, 1968U, 531U, 532U, 533U}}, {188U, 4940U, 3293U, 113U, 238U, 1U, 15U, 255U, 1U, 4U, 10U, 0U, 143U, 238U, 238U, 255U, 0U, 15U, 15U, 143U, 255U, 0U, 15U, 15U, 143U, {1980U, 1976U, 1972U, 530U, 531U, 532U}}, {190U, 4950U, 3300U, 113U, 239U, 1U, 15U, 255U, 1U, 4U, 10U, 0U, 143U, 238U, 238U, 255U, 0U, 15U, 15U, 143U, 255U, 0U, 15U, 15U, 143U, {1984U, 1980U, 1976U, 529U, 530U, 531U}}, {192U, 4960U, 3307U, 113U, 240U, 1U, 15U, 255U, 1U, 4U, 10U, 0U, 143U, 238U, 238U, 255U, 0U, 15U, 15U, 143U, 255U, 0U, 15U, 15U, 143U, {1988U, 1984U, 1980U, 527U, 529U, 530U}}, {194U, 4970U, 3313U, 113U, 241U, 1U, 15U, 255U, 1U, 4U, 10U, 0U, 143U, 238U, 238U, 255U, 0U, 15U, 15U, 143U, 255U, 0U, 15U, 15U, 143U, {1992U, 1988U, 1984U, 526U, 527U, 529U}}, {196U, 4980U, 3320U, 113U, 242U, 1U, 14U, 255U, 1U, 4U, 10U, 0U, 143U, 221U, 221U, 255U, 0U, 15U, 15U, 143U, 255U, 0U, 15U, 15U, 143U, {1996U, 1992U, 1988U, 525U, 526U, 527U}}, {198U, 4990U, 3327U, 113U, 243U, 1U, 14U, 255U, 1U, 4U, 10U, 0U, 143U, 221U, 221U, 255U, 0U, 15U, 15U, 143U, 255U, 0U, 15U, 15U, 143U, {2000U, 1996U, 1992U, 524U, 525U, 526U}}, {200U, 5000U, 3333U, 113U, 244U, 1U, 14U, 255U, 1U, 4U, 10U, 0U, 143U, 221U, 221U, 255U, 0U, 15U, 15U, 143U, 255U, 0U, 15U, 15U, 143U, {2004U, 2000U, 1996U, 523U, 524U, 525U}}, {202U, 5010U, 3340U, 113U, 245U, 1U, 14U, 255U, 1U, 4U, 10U, 0U, 143U, 221U, 221U, 255U, 0U, 15U, 15U, 143U, 255U, 0U, 15U, 15U, 143U, {2008U, 2004U, 2000U, 522U, 523U, 524U}}, {204U, 5020U, 3347U, 113U, 246U, 1U, 14U, 247U, 1U, 4U, 10U, 0U, 143U, 204U, 204U, 255U, 0U, 15U, 15U, 143U, 255U, 0U, 15U, 15U, 143U, {2012U, 2008U, 2004U, 521U, 522U, 523U}}, {206U, 5030U, 3353U, 113U, 247U, 1U, 14U, 247U, 1U, 4U, 10U, 0U, 143U, 204U, 204U, 255U, 0U, 15U, 15U, 143U, 255U, 0U, 15U, 15U, 143U, {2016U, 2012U, 2008U, 520U, 521U, 522U}}, {208U, 5040U, 3360U, 113U, 248U, 1U, 13U, 239U, 1U, 4U, 10U, 0U, 143U, 204U, 204U, 255U, 0U, 15U, 15U, 143U, 255U, 0U, 15U, 15U, 143U, {2020U, 2016U, 2012U, 519U, 520U, 521U}}, {210U, 5050U, 3367U, 113U, 249U, 1U, 13U, 239U, 1U, 4U, 10U, 0U, 143U, 204U, 204U, 255U, 0U, 15U, 15U, 143U, 255U, 0U, 15U, 15U, 143U, {2024U, 2020U, 2016U, 518U, 519U, 520U}}, {212U, 5060U, 3373U, 113U, 250U, 1U, 13U, 230U, 1U, 4U, 10U, 0U, 143U, 187U, 187U, 255U, 0U, 14U, 15U, 142U, 255U, 0U, 14U, 15U, 142U, {2028U, 2024U, 2020U, 517U, 518U, 519U}}, {214U, 5070U, 3380U, 113U, 251U, 1U, 13U, 230U, 1U, 4U, 10U, 0U, 143U, 187U, 187U, 255U, 0U, 14U, 15U, 142U, 255U, 0U, 14U, 15U, 142U, {2032U, 2028U, 2024U, 516U, 517U, 518U}}, {216U, 5080U, 3387U, 113U, 252U, 1U, 13U, 222U, 1U, 4U, 10U, 0U, 142U, 187U, 187U, 238U, 0U, 14U, 15U, 141U, 238U, 0U, 14U, 15U, 141U, {2036U, 2032U, 2028U, 515U, 516U, 517U}}, {218U, 5090U, 3393U, 113U, 253U, 1U, 13U, 222U, 1U, 4U, 10U, 0U, 142U, 187U, 187U, 238U, 0U, 14U, 15U, 141U, 238U, 0U, 14U, 15U, 141U, {2040U, 2036U, 2032U, 514U, 515U, 516U}}, {220U, 5100U, 3400U, 113U, 254U, 1U, 12U, 214U, 1U, 4U, 10U, 0U, 142U, 170U, 170U, 238U, 0U, 13U, 15U, 141U, 238U, 0U, 13U, 15U, 141U, {2044U, 2040U, 2036U, 513U, 514U, 515U}}, {222U, 5110U, 3407U, 113U, 255U, 1U, 12U, 214U, 1U, 4U, 10U, 0U, 142U, 170U, 170U, 238U, 0U, 13U, 15U, 141U, 238U, 0U, 13U, 15U, 141U, {2048U, 2044U, 2040U, 512U, 513U, 514U}}, {224U, 5120U, 3413U, 113U, 0U, 2U, 12U, 206U, 1U, 4U, 10U, 0U, 141U, 170U, 170U, 221U, 0U, 13U, 15U, 140U, 221U, 0U, 13U, 15U, 140U, {2052U, 2048U, 2044U, 511U, 512U, 513U}}, {226U, 5130U, 3420U, 113U, 1U, 2U, 12U, 206U, 1U, 4U, 10U, 0U, 141U, 170U, 170U, 221U, 0U, 13U, 15U, 140U, 221U, 0U, 13U, 15U, 140U, {2056U, 2052U, 2048U, 510U, 511U, 512U}}, {228U, 5140U, 3427U, 113U, 2U, 2U, 12U, 198U, 1U, 4U, 10U, 0U, 141U, 153U, 153U, 221U, 0U, 12U, 14U, 139U, 221U, 0U, 12U, 14U, 139U, {2060U, 2056U, 2052U, 509U, 510U, 511U}}, {32U, 5160U, 3440U, 113U, 4U, 2U, 11U, 190U, 1U, 4U, 10U, 0U, 140U, 153U, 153U, 204U, 0U, 11U, 13U, 138U, 204U, 0U, 11U, 13U, 138U, {2068U, 2064U, 2060U, 507U, 508U, 509U}}, {34U, 5170U, 3447U, 113U, 5U, 2U, 11U, 190U, 1U, 4U, 10U, 0U, 140U, 153U, 153U, 204U, 0U, 11U, 13U, 138U, 204U, 0U, 11U, 13U, 138U, {2072U, 2068U, 2064U, 506U, 507U, 508U}}, {36U, 5180U, 3453U, 113U, 6U, 2U, 11U, 182U, 1U, 4U, 10U, 0U, 140U, 136U, 136U, 204U, 0U, 11U, 12U, 137U, 204U, 0U, 11U, 12U, 137U, {2076U, 2072U, 2068U, 505U, 506U, 507U}}, {38U, 5190U, 3460U, 113U, 7U, 2U, 11U, 182U, 1U, 4U, 10U, 0U, 140U, 136U, 136U, 204U, 0U, 11U, 12U, 137U, 204U, 0U, 11U, 12U, 137U, {2080U, 2076U, 2072U, 504U, 505U, 506U}}, {40U, 5200U, 3467U, 113U, 8U, 2U, 11U, 175U, 1U, 4U, 10U, 0U, 139U, 136U, 136U, 187U, 0U, 10U, 11U, 137U, 187U, 0U, 10U, 11U, 137U, {2084U, 2080U, 2076U, 503U, 504U, 505U}}, {42U, 5210U, 3473U, 113U, 9U, 2U, 11U, 175U, 1U, 4U, 10U, 0U, 139U, 136U, 136U, 187U, 0U, 10U, 11U, 137U, 187U, 0U, 10U, 11U, 137U, {2088U, 2084U, 2080U, 502U, 503U, 504U}}, {44U, 5220U, 3480U, 113U, 10U, 2U, 10U, 167U, 1U, 4U, 10U, 0U, 139U, 119U, 119U, 187U, 0U, 9U, 10U, 136U, 187U, 0U, 9U, 10U, 136U, {2092U, 2088U, 2084U, 501U, 502U, 503U}}, {46U, 5230U, 3487U, 113U, 11U, 2U, 10U, 167U, 1U, 4U, 10U, 0U, 139U, 119U, 119U, 187U, 0U, 9U, 10U, 136U, 187U, 0U, 9U, 10U, 136U, {2096U, 2092U, 2088U, 500U, 501U, 502U}}, {48U, 5240U, 3493U, 113U, 12U, 2U, 10U, 160U, 1U, 4U, 10U, 0U, 138U, 119U, 119U, 170U, 0U, 9U, 10U, 135U, 170U, 0U, 9U, 10U, 135U, {2100U, 2096U, 2092U, 499U, 500U, 501U}}, {50U, 5250U, 3500U, 113U, 13U, 2U, 10U, 160U, 1U, 4U, 10U, 0U, 138U, 119U, 119U, 170U, 0U, 9U, 10U, 135U, 170U, 0U, 9U, 10U, 135U, {2104U, 2100U, 2096U, 498U, 499U, 500U}}, {52U, 5260U, 3507U, 113U, 14U, 2U, 10U, 152U, 1U, 4U, 10U, 0U, 138U, 102U, 102U, 170U, 0U, 8U, 9U, 135U, 170U, 0U, 8U, 9U, 135U, {2108U, 2104U, 2100U, 497U, 498U, 499U}}, {54U, 5270U, 3513U, 113U, 15U, 2U, 10U, 152U, 1U, 4U, 10U, 0U, 138U, 102U, 102U, 170U, 0U, 8U, 9U, 135U, 170U, 0U, 8U, 9U, 135U, {2112U, 2108U, 2104U, 496U, 497U, 498U}}, {56U, 5280U, 3520U, 113U, 16U, 2U, 9U, 145U, 1U, 4U, 10U, 0U, 137U, 102U, 102U, 153U, 0U, 8U, 8U, 134U, 153U, 0U, 8U, 8U, 134U, {2116U, 2112U, 2108U, 496U, 496U, 497U}}, {58U, 5290U, 3527U, 113U, 17U, 2U, 9U, 145U, 1U, 4U, 10U, 0U, 137U, 102U, 102U, 153U, 0U, 8U, 8U, 134U, 153U, 0U, 8U, 8U, 134U, {2120U, 2116U, 2112U, 495U, 496U, 496U}}, {60U, 5300U, 3533U, 113U, 18U, 2U, 9U, 138U, 1U, 4U, 10U, 0U, 137U, 85U, 85U, 153U, 0U, 8U, 7U, 133U, 153U, 0U, 8U, 7U, 133U, {2124U, 2120U, 2116U, 494U, 495U, 496U}}, {62U, 5310U, 3540U, 113U, 19U, 2U, 9U, 138U, 1U, 4U, 10U, 0U, 137U, 85U, 85U, 153U, 0U, 8U, 7U, 133U, 153U, 0U, 8U, 7U, 133U, {2128U, 2124U, 2120U, 493U, 494U, 495U}}, {64U, 5320U, 3547U, 113U, 20U, 2U, 9U, 131U, 1U, 4U, 10U, 0U, 136U, 85U, 85U, 136U, 0U, 7U, 7U, 132U, 136U, 0U, 7U, 7U, 132U, {2132U, 2128U, 2124U, 492U, 493U, 494U}}, {66U, 5330U, 3553U, 113U, 21U, 2U, 9U, 131U, 1U, 4U, 10U, 0U, 136U, 85U, 85U, 136U, 0U, 7U, 7U, 132U, 136U, 0U, 7U, 7U, 132U, {2136U, 2132U, 2128U, 491U, 492U, 493U}}, {68U, 5340U, 3560U, 113U, 22U, 2U, 8U, 124U, 1U, 4U, 10U, 0U, 136U, 68U, 68U, 136U, 0U, 7U, 6U, 132U, 136U, 0U, 7U, 6U, 132U, {2140U, 2136U, 2132U, 490U, 491U, 492U}}, {70U, 5350U, 3567U, 113U, 23U, 2U, 8U, 124U, 1U, 4U, 10U, 0U, 136U, 68U, 68U, 136U, 0U, 7U, 6U, 132U, 136U, 0U, 7U, 6U, 132U, {2144U, 2140U, 2136U, 489U, 490U, 491U}}, {72U, 5360U, 3573U, 113U, 24U, 2U, 8U, 117U, 1U, 4U, 10U, 0U, 135U, 68U, 68U, 119U, 0U, 6U, 5U, 131U, 119U, 0U, 6U, 5U, 131U, {2148U, 2144U, 2140U, 488U, 489U, 490U}}, {74U, 5370U, 3580U, 113U, 25U, 2U, 8U, 117U, 1U, 4U, 10U, 0U, 135U, 68U, 68U, 119U, 0U, 6U, 5U, 131U, 119U, 0U, 6U, 5U, 131U, {2152U, 2148U, 2144U, 487U, 488U, 489U}}, {76U, 5380U, 3587U, 113U, 26U, 2U, 8U, 110U, 1U, 4U, 10U, 0U, 135U, 51U, 51U, 119U, 0U, 6U, 4U, 130U, 119U, 0U, 6U, 4U, 130U, {2156U, 2152U, 2148U, 486U, 487U, 488U}}, {78U, 5390U, 3593U, 113U, 27U, 2U, 8U, 110U, 1U, 4U, 10U, 0U, 135U, 51U, 51U, 119U, 0U, 6U, 4U, 130U, 119U, 0U, 6U, 4U, 130U, {2160U, 2156U, 2152U, 485U, 486U, 487U}}, {80U, 5400U, 3600U, 113U, 28U, 2U, 7U, 103U, 1U, 4U, 10U, 0U, 134U, 51U, 51U, 102U, 0U, 5U, 4U, 129U, 102U, 0U, 5U, 4U, 129U, {2164U, 2160U, 2156U, 485U, 485U, 486U}}, {82U, 5410U, 3607U, 113U, 29U, 2U, 7U, 103U, 1U, 4U, 10U, 0U, 134U, 51U, 51U, 102U, 0U, 5U, 4U, 129U, 102U, 0U, 5U, 4U, 129U, {2168U, 2164U, 2160U, 484U, 485U, 485U}}, {84U, 5420U, 3613U, 113U, 30U, 2U, 7U, 97U, 1U, 4U, 10U, 0U, 134U, 34U, 34U, 102U, 0U, 5U, 3U, 128U, 102U, 0U, 5U, 3U, 128U, {2172U, 2168U, 2164U, 483U, 484U, 485U}}, {86U, 5430U, 3620U, 113U, 31U, 2U, 7U, 97U, 1U, 4U, 10U, 0U, 134U, 34U, 34U, 102U, 0U, 5U, 3U, 128U, 102U, 0U, 5U, 3U, 128U, {2176U, 2172U, 2168U, 482U, 483U, 484U}}, {88U, 5440U, 3627U, 113U, 32U, 2U, 7U, 90U, 1U, 4U, 10U, 0U, 133U, 34U, 34U, 85U, 0U, 4U, 2U, 128U, 85U, 0U, 4U, 2U, 128U, {2180U, 2176U, 2172U, 481U, 482U, 483U}}, {90U, 5450U, 3633U, 113U, 33U, 2U, 7U, 90U, 1U, 4U, 10U, 0U, 133U, 34U, 34U, 85U, 0U, 4U, 2U, 128U, 85U, 0U, 4U, 2U, 128U, {2184U, 2180U, 2176U, 480U, 481U, 482U}}, {92U, 5460U, 3640U, 113U, 34U, 2U, 6U, 83U, 1U, 4U, 10U, 0U, 133U, 17U, 17U, 85U, 0U, 4U, 1U, 128U, 85U, 0U, 4U, 1U, 128U, {2188U, 2184U, 2180U, 479U, 480U, 481U}}, {94U, 5470U, 3647U, 113U, 35U, 2U, 6U, 83U, 1U, 4U, 10U, 0U, 133U, 17U, 17U, 85U, 0U, 4U, 1U, 128U, 85U, 0U, 4U, 1U, 128U, {2192U, 2188U, 2184U, 478U, 479U, 480U}}, {96U, 5480U, 3653U, 113U, 36U, 2U, 6U, 77U, 1U, 4U, 10U, 0U, 132U, 17U, 17U, 68U, 0U, 3U, 0U, 128U, 68U, 0U, 3U, 0U, 128U, {2196U, 2192U, 2188U, 477U, 478U, 479U}}, {98U, 5490U, 3660U, 113U, 37U, 2U, 6U, 77U, 1U, 4U, 10U, 0U, 132U, 17U, 17U, 68U, 0U, 3U, 0U, 128U, 68U, 0U, 3U, 0U, 128U, {2200U, 2196U, 2192U, 477U, 477U, 478U}}, {100U, 5500U, 3667U, 113U, 38U, 2U, 6U, 71U, 1U, 4U, 10U, 0U, 132U, 0U, 0U, 68U, 0U, 3U, 0U, 128U, 68U, 0U, 3U, 0U, 128U, {2204U, 2200U, 2196U, 476U, 477U, 477U}}, {102U, 5510U, 3673U, 113U, 39U, 2U, 6U, 71U, 1U, 4U, 10U, 0U, 132U, 0U, 0U, 68U, 0U, 3U, 0U, 128U, 68U, 0U, 3U, 0U, 128U, {2208U, 2204U, 2200U, 475U, 476U, 477U}}, {104U, 5520U, 3680U, 113U, 40U, 2U, 5U, 64U, 1U, 4U, 10U, 0U, 131U, 0U, 0U, 51U, 0U, 2U, 0U, 128U, 51U, 0U, 2U, 0U, 128U, {2212U, 2208U, 2204U, 474U, 475U, 476U}}, {106U, 5530U, 3687U, 113U, 41U, 2U, 5U, 64U, 1U, 4U, 10U, 0U, 131U, 0U, 0U, 51U, 0U, 2U, 0U, 128U, 51U, 0U, 2U, 0U, 128U, {2216U, 2212U, 2208U, 473U, 474U, 475U}}, {108U, 5540U, 3693U, 113U, 42U, 2U, 5U, 58U, 1U, 4U, 10U, 0U, 131U, 0U, 0U, 51U, 0U, 2U, 0U, 128U, 51U, 0U, 2U, 0U, 128U, {2220U, 2216U, 2212U, 472U, 473U, 474U}}, {110U, 5550U, 3700U, 113U, 43U, 2U, 5U, 58U, 1U, 4U, 10U, 0U, 131U, 0U, 0U, 51U, 0U, 2U, 0U, 128U, 51U, 0U, 2U, 0U, 128U, {2224U, 2220U, 2216U, 471U, 472U, 473U}}, {112U, 5560U, 3707U, 113U, 44U, 2U, 5U, 52U, 1U, 4U, 10U, 0U, 130U, 0U, 0U, 34U, 0U, 1U, 0U, 128U, 34U, 0U, 1U, 0U, 128U, {2228U, 2224U, 2220U, 471U, 471U, 472U}}, {114U, 5570U, 3713U, 113U, 45U, 2U, 5U, 52U, 1U, 4U, 10U, 0U, 130U, 0U, 0U, 34U, 0U, 1U, 0U, 128U, 34U, 0U, 1U, 0U, 128U, {2232U, 2228U, 2224U, 470U, 471U, 471U}}, {116U, 5580U, 3720U, 113U, 46U, 2U, 4U, 46U, 1U, 4U, 10U, 0U, 130U, 0U, 0U, 34U, 0U, 1U, 0U, 128U, 34U, 0U, 1U, 0U, 128U, {2236U, 2232U, 2228U, 469U, 470U, 471U}}, {118U, 5590U, 3727U, 113U, 47U, 2U, 4U, 46U, 1U, 4U, 10U, 0U, 130U, 0U, 0U, 34U, 0U, 1U, 0U, 128U, 34U, 0U, 1U, 0U, 128U, {2240U, 2236U, 2232U, 468U, 469U, 470U}}, {120U, 5600U, 3733U, 113U, 48U, 2U, 4U, 40U, 1U, 4U, 10U, 0U, 129U, 0U, 0U, 17U, 0U, 1U, 0U, 128U, 17U, 0U, 1U, 0U, 128U, {2244U, 2240U, 2236U, 467U, 468U, 469U}}, {122U, 5610U, 3740U, 113U, 49U, 2U, 4U, 40U, 1U, 4U, 10U, 0U, 129U, 0U, 0U, 17U, 0U, 1U, 0U, 128U, 17U, 0U, 1U, 0U, 128U, {2248U, 2244U, 2240U, 466U, 467U, 468U}}, {124U, 5620U, 3747U, 113U, 50U, 2U, 4U, 33U, 1U, 4U, 10U, 0U, 129U, 0U, 0U, 17U, 0U, 0U, 0U, 128U, 17U, 0U, 0U, 0U, 128U, {2252U, 2248U, 2244U, 466U, 466U, 467U}}, {126U, 5630U, 3753U, 113U, 51U, 2U, 4U, 33U, 1U, 4U, 10U, 0U, 129U, 0U, 0U, 17U, 0U, 0U, 0U, 128U, 17U, 0U, 0U, 0U, 128U, {2256U, 2252U, 2248U, 465U, 466U, 466U}}, {128U, 5640U, 3760U, 113U, 52U, 2U, 3U, 28U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2260U, 2256U, 2252U, 464U, 465U, 466U}}, {130U, 5650U, 3767U, 113U, 53U, 2U, 3U, 28U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2264U, 2260U, 2256U, 463U, 464U, 465U}}, {132U, 5660U, 3773U, 113U, 54U, 2U, 3U, 22U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2268U, 2264U, 2260U, 462U, 463U, 464U}}, {134U, 5670U, 3780U, 113U, 55U, 2U, 3U, 22U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2272U, 2268U, 2264U, 462U, 462U, 463U}}, {136U, 5680U, 3787U, 113U, 56U, 2U, 3U, 16U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2276U, 2272U, 2268U, 461U, 462U, 462U}}, {138U, 5690U, 3793U, 113U, 57U, 2U, 3U, 16U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2280U, 2276U, 2272U, 460U, 461U, 462U}}, {140U, 5700U, 3800U, 113U, 58U, 2U, 2U, 10U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2284U, 2280U, 2276U, 459U, 460U, 461U}}, {142U, 5710U, 3807U, 113U, 59U, 2U, 2U, 10U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2288U, 2284U, 2280U, 458U, 459U, 460U}}, {144U, 5720U, 3813U, 113U, 60U, 2U, 2U, 10U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2292U, 2288U, 2284U, 457U, 458U, 459U}}, {145U, 5725U, 3817U, 114U, 121U, 4U, 2U, 3U, 1U, 3U, 20U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2294U, 2290U, 2286U, 457U, 458U, 459U}}, {146U, 5730U, 3820U, 113U, 61U, 2U, 2U, 10U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2296U, 2292U, 2288U, 457U, 457U, 458U}}, {147U, 5735U, 3823U, 114U, 123U, 4U, 2U, 3U, 1U, 3U, 20U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2298U, 2294U, 2290U, 456U, 457U, 458U}}, {148U, 5740U, 3827U, 113U, 62U, 2U, 2U, 10U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2300U, 2296U, 2292U, 456U, 457U, 457U}}, {149U, 5745U, 3830U, 114U, 125U, 4U, 2U, 254U, 0U, 3U, 20U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2302U, 2298U, 2294U, 456U, 456U, 457U}}, {150U, 5750U, 3833U, 113U, 63U, 2U, 2U, 10U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2304U, 2300U, 2296U, 455U, 456U, 457U}}, {151U, 5755U, 3837U, 114U, 127U, 4U, 2U, 254U, 0U, 3U, 20U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2306U, 2302U, 2298U, 455U, 456U, 456U}}, {152U, 5760U, 3840U, 113U, 64U, 2U, 2U, 10U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2308U, 2304U, 2300U, 454U, 455U, 456U}}, {153U, 5765U, 3843U, 114U, 129U, 4U, 2U, 248U, 0U, 3U, 20U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2310U, 2306U, 2302U, 454U, 455U, 456U}}, {154U, 5770U, 3847U, 113U, 65U, 2U, 2U, 10U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2312U, 2308U, 2304U, 454U, 454U, 455U}}, {155U, 5775U, 3850U, 114U, 131U, 4U, 2U, 248U, 0U, 3U, 20U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2314U, 2310U, 2306U, 453U, 454U, 455U}}, {156U, 5780U, 3853U, 113U, 66U, 2U, 2U, 10U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2316U, 2312U, 2308U, 453U, 454U, 454U}}, {157U, 5785U, 3857U, 114U, 133U, 4U, 2U, 242U, 0U, 3U, 20U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2318U, 2314U, 2310U, 452U, 453U, 454U}}, {158U, 5790U, 3860U, 113U, 67U, 2U, 2U, 10U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2320U, 2316U, 2312U, 452U, 453U, 454U}}, {159U, 5795U, 3863U, 114U, 135U, 4U, 2U, 242U, 0U, 3U, 20U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2322U, 2318U, 2314U, 452U, 452U, 453U}}, {160U, 5800U, 3867U, 113U, 68U, 2U, 1U, 10U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2324U, 2320U, 2316U, 451U, 452U, 453U}}, {161U, 5805U, 3870U, 114U, 137U, 4U, 1U, 237U, 0U, 3U, 20U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2326U, 2322U, 2318U, 451U, 452U, 452U}}, {162U, 5810U, 3873U, 113U, 69U, 2U, 1U, 10U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2328U, 2324U, 2320U, 450U, 451U, 452U}}, {163U, 5815U, 3877U, 114U, 139U, 4U, 1U, 237U, 0U, 3U, 20U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2330U, 2326U, 2322U, 450U, 451U, 452U}}, {164U, 5820U, 3880U, 113U, 70U, 2U, 1U, 10U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2332U, 2328U, 2324U, 450U, 450U, 451U}}, {165U, 5825U, 3883U, 114U, 141U, 4U, 1U, 237U, 0U, 3U, 20U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2334U, 2330U, 2326U, 449U, 450U, 451U}}, {166U, 5830U, 3887U, 113U, 71U, 2U, 1U, 10U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2336U, 2332U, 2328U, 449U, 450U, 450U}}, {168U, 5840U, 3893U, 113U, 72U, 2U, 1U, 10U, 1U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2340U, 2336U, 2332U, 448U, 449U, 450U}}, {170U, 5850U, 3900U, 113U, 73U, 2U, 1U, 224U, 0U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2344U, 2340U, 2336U, 447U, 448U, 449U}}, {172U, 5860U, 3907U, 113U, 74U, 2U, 1U, 222U, 0U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2348U, 2344U, 2340U, 447U, 447U, 448U}}, {174U, 5870U, 3913U, 113U, 75U, 2U, 0U, 219U, 0U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2352U, 2348U, 2344U, 446U, 447U, 447U}}, {176U, 5880U, 3920U, 113U, 76U, 2U, 0U, 216U, 0U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2356U, 2352U, 2348U, 445U, 446U, 447U}}, {178U, 5890U, 3927U, 113U, 77U, 2U, 0U, 214U, 0U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2360U, 2356U, 2352U, 444U, 445U, 446U}}, {180U, 5900U, 3933U, 113U, 78U, 2U, 0U, 211U, 0U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2364U, 2360U, 2356U, 444U, 444U, 445U}}, {182U, 5910U, 3940U, 113U, 79U, 2U, 0U, 214U, 0U, 4U, 10U, 0U, 128U, 0U, 0U, 0U, 0U, 0U, 0U, 128U, 0U, 0U, 0U, 0U, 128U, {2368U, 2364U, 2360U, 443U, 444U, 444U}}, {1U, 2412U, 3216U, 115U, 108U, 9U, 15U, 0U, 1U, 7U, 21U, 1U, 143U, 255U, 255U, 255U, 136U, 13U, 12U, 128U, 255U, 136U, 13U, 12U, 128U, {969U, 965U, 961U, 1082U, 1087U, 1091U}}, {2U, 2417U, 3223U, 115U, 113U, 9U, 15U, 0U, 1U, 7U, 21U, 1U, 143U, 255U, 255U, 255U, 136U, 12U, 11U, 128U, 255U, 136U, 12U, 11U, 128U, {971U, 967U, 963U, 1080U, 1085U, 1089U}}, {3U, 2422U, 3229U, 115U, 118U, 9U, 15U, 0U, 1U, 7U, 21U, 1U, 143U, 255U, 255U, 255U, 136U, 12U, 10U, 128U, 255U, 136U, 12U, 10U, 128U, {973U, 969U, 965U, 1078U, 1082U, 1087U}}, {4U, 2427U, 3236U, 115U, 123U, 9U, 15U, 0U, 1U, 7U, 21U, 1U, 143U, 255U, 255U, 255U, 136U, 12U, 10U, 128U, 255U, 136U, 12U, 10U, 128U, {975U, 971U, 967U, 1076U, 1080U, 1085U}}, {5U, 2432U, 3243U, 115U, 128U, 9U, 15U, 0U, 1U, 7U, 21U, 1U, 143U, 255U, 255U, 255U, 136U, 12U, 9U, 128U, 255U, 136U, 12U, 9U, 128U, {977U, 973U, 969U, 1073U, 1078U, 1082U}}, {6U, 2437U, 3249U, 115U, 133U, 9U, 15U, 0U, 1U, 7U, 21U, 1U, 143U, 255U, 255U, 255U, 136U, 11U, 8U, 128U, 255U, 136U, 11U, 8U, 128U, {979U, 975U, 971U, 1071U, 1076U, 1080U}}, {7U, 2442U, 3256U, 115U, 138U, 9U, 15U, 0U, 1U, 7U, 21U, 1U, 143U, 255U, 255U, 255U, 136U, 10U, 7U, 128U, 255U, 136U, 10U, 7U, 128U, {981U, 977U, 973U, 1069U, 1073U, 1078U}}, {8U, 2447U, 3263U, 115U, 143U, 9U, 15U, 0U, 1U, 7U, 21U, 1U, 143U, 255U, 255U, 255U, 136U, 10U, 6U, 128U, 255U, 136U, 10U, 6U, 128U, {983U, 979U, 975U, 1067U, 1071U, 1076U}}, {9U, 2452U, 3269U, 115U, 148U, 9U, 15U, 0U, 1U, 7U, 21U, 1U, 143U, 255U, 255U, 255U, 136U, 9U, 6U, 128U, 255U, 136U, 9U, 6U, 128U, {985U, 981U, 977U, 1065U, 1069U, 1073U}}, {10U, 2457U, 3276U, 115U, 153U, 9U, 15U, 0U, 1U, 7U, 21U, 1U, 143U, 255U, 255U, 255U, 136U, 8U, 5U, 128U, 255U, 136U, 8U, 5U, 128U, {987U, 983U, 979U, 1063U, 1067U, 1071U}}, {11U, 2462U, 3283U, 115U, 158U, 9U, 15U, 0U, 1U, 7U, 21U, 1U, 143U, 255U, 255U, 255U, 136U, 8U, 4U, 128U, 255U, 136U, 8U, 4U, 128U, {989U, 985U, 981U, 1060U, 1065U, 1069U}}, {12U, 2467U, 3289U, 115U, 163U, 9U, 15U, 0U, 1U, 7U, 21U, 1U, 143U, 255U, 255U, 255U, 136U, 8U, 3U, 128U, 255U, 136U, 8U, 3U, 128U, {991U, 987U, 983U, 1058U, 1063U, 1067U}}, {13U, 2472U, 3296U, 115U, 168U, 9U, 15U, 0U, 1U, 7U, 21U, 1U, 143U, 255U, 255U, 255U, 136U, 7U, 3U, 128U, 255U, 136U, 7U, 3U, 128U, {993U, 989U, 985U, 1056U, 1060U, 1065U}}, {14U, 2484U, 3312U, 115U, 180U, 9U, 15U, 255U, 1U, 7U, 21U, 1U, 143U, 255U, 255U, 255U, 136U, 7U, 1U, 128U, 255U, 136U, 7U, 1U, 128U, {998U, 994U, 990U, 1051U, 1055U, 1060U}}}; void b2055_upload_inittab(struct b43_wldev *dev , bool ghz5 , bool ignore_uploadflag ) { struct b2055_inittab_entry const *e ; unsigned int i ; unsigned int writes ; u16 value ; { writes = 0U; i = 0U; goto ldv_54046; ldv_54045: e = (struct b2055_inittab_entry const *)(& b2055_inittab) + (unsigned long )i; if (((int )e->flags & 1) == 0) { goto ldv_54044; } else { } if (((int )e->flags & 2) != 0 || (int )ignore_uploadflag) { if ((int )ghz5) { value = e->ghz5; } else { value = e->ghz2; } b43_radio_write(dev, (int )((u16 )i), (int )value); writes = writes + 1U; if ((writes & 3U) == 0U) { b43_read32(dev, 288); } else { } } else { } ldv_54044: i = i + 1U; ldv_54046: ; if (i <= 226U) { goto ldv_54045; } else { } return; } } struct b43_nphy_channeltab_entry_rev2 const *b43_nphy_get_chantabent_rev2(struct b43_wldev *dev , u8 channel ) { struct b43_nphy_channeltab_entry_rev2 const *e ; unsigned int i ; { i = 0U; goto ldv_54057; ldv_54056: e = (struct b43_nphy_channeltab_entry_rev2 const *)(& b43_nphy_channeltab_rev2) + (unsigned long )i; if ((int )((unsigned char )e->channel) == (int )channel) { return (e); } else { } i = i + 1U; ldv_54057: ; if (i <= 123U) { goto ldv_54056; } else { } return ((struct b43_nphy_channeltab_entry_rev2 const *)0); } } bool ldv_queue_work_on_161(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_162(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_163(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_164(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_165(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_166(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; bool ldv_queue_work_on_177(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_179(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_178(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_181(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_180(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_182(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; void b2056_upload_inittabs(struct b43_wldev *dev , bool ghz5 , bool ignore_uploadflag ) ; void b2056_upload_syn_pll_cp2(struct b43_wldev *dev , bool ghz5 ) ; struct b43_nphy_channeltab_entry_rev3 const *b43_nphy_get_chantabent_rev3(struct b43_wldev *dev , u16 freq ) ; static struct b2056_inittab_entry const b2056_inittab_phy_rev3_syn[183U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {96U, 96U, 1U}, {6U, 6U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {13U, 13U, 1U}, {31U, 31U, 1U}, {21U, 21U, 1U}, {15U, 15U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {19U, 19U, 1U}, {15U, 15U, 1U}, {24U, 24U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {32U, 32U, 1U}, {32U, 32U, 1U}, {0U, 0U, 1U}, {119U, 119U, 1U}, {7U, 7U, 1U}, {1U, 1U, 1U}, {4U, 4U, 1U}, {15U, 15U, 1U}, {48U, 48U, 1U}, {50U, 50U, 1U}, {13U, 13U, 1U}, {13U, 13U, 1U}, {4U, 4U, 1U}, {6U, 6U, 1U}, {1U, 1U, 1U}, {28U, 28U, 1U}, {2U, 2U, 1U}, {2U, 2U, 1U}, {247U, 247U, 3U}, {180U, 180U, 1U}, {210U, 210U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {4U, 4U, 1U}, {150U, 150U, 1U}, {62U, 62U, 1U}, {62U, 62U, 1U}, {19U, 19U, 1U}, {2U, 2U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {7U, 7U, 3U}, {8U, 8U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {64U, 64U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {96U, 96U, 1U}, {102U, 102U, 1U}, {12U, 12U, 1U}, {102U, 102U, 1U}, {143U, 143U, 3U}, {0U, 0U, 1U}, {204U, 204U, 1U}, {1U, 1U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {255U, 255U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {6U, 6U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}}; static struct b2056_inittab_entry const b2056_inittab_phy_rev3_tx[147U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {55U, 55U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {17U, 17U, 1U}, {17U, 17U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {15U, 15U, 1U}, {0U, 0U, 1U}, {45U, 45U, 1U}, {0U, 0U, 1U}, {110U, 110U, 1U}, {240U, 240U, 3U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {30U, 30U, 1U}, {0U, 0U, 1U}, {110U, 110U, 1U}, {240U, 240U, 3U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {255U, 255U, 3U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {56U, 56U, 1U}, {112U, 112U, 3U}, {2U, 2U, 1U}, {136U, 136U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {112U, 112U, 3U}, {2U, 2U, 1U}, {255U, 255U, 3U}, {0U, 0U, 1U}, {131U, 131U, 1U}, {119U, 119U, 3U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {136U, 136U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {119U, 119U, 3U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {116U, 116U, 3U}, {0U, 0U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {14U, 14U, 1U}, {14U, 14U, 1U}, {14U, 14U, 1U}, {19U, 19U, 1U}, {19U, 19U, 1U}, {27U, 27U, 1U}, {27U, 27U, 1U}, {85U, 85U, 1U}, {91U, 91U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}}; static struct b2056_inittab_entry const b2056_inittab_phy_rev3_rx[149U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {144U, 144U, 1U}, {85U, 85U, 1U}, {21U, 21U, 1U}, {5U, 5U, 1U}, {21U, 21U, 1U}, {5U, 5U, 1U}, {32U, 32U, 1U}, {17U, 17U, 1U}, {144U, 144U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {50U, 50U, 1U}, {119U, 119U, 1U}, {23U, 23U, 3U}, {255U, 255U, 3U}, {32U, 32U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {50U, 50U, 1U}, {119U, 119U, 1U}, {23U, 23U, 3U}, {240U, 240U, 3U}, {32U, 32U, 1U}, {8U, 8U, 1U}, {153U, 153U, 1U}, {0U, 0U, 1U}, {68U, 68U, 3U}, {0U, 0U, 1U}, {68U, 68U, 1U}, {15U, 15U, 3U}, {6U, 6U, 1U}, {4U, 4U, 1U}, {80U, 80U, 3U}, {8U, 8U, 1U}, {153U, 153U, 1U}, {0U, 0U, 1U}, {17U, 17U, 1U}, {0U, 0U, 1U}, {68U, 68U, 1U}, {7U, 7U, 1U}, {6U, 6U, 1U}, {4U, 4U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {87U, 87U, 1U}, {87U, 87U, 1U}, {68U, 68U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {8U, 8U, 1U}, {7U, 7U, 1U}, {34U, 34U, 1U}, {34U, 34U, 1U}, {2U, 2U, 1U}, {35U, 35U, 1U}, {7U, 7U, 1U}, {85U, 85U, 1U}, {35U, 35U, 1U}, {65U, 65U, 1U}, {1U, 1U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {34U, 34U, 1U}, {34U, 34U, 1U}, {2U, 2U, 1U}, {10U, 10U, 1U}, {1U, 1U, 1U}, {34U, 34U, 1U}, {48U, 48U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}}; static struct b2056_inittab_entry const b2056_inittab_phy_rev4_syn[183U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {96U, 96U, 1U}, {6U, 6U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {13U, 13U, 1U}, {31U, 31U, 1U}, {21U, 21U, 1U}, {15U, 15U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {19U, 19U, 1U}, {15U, 15U, 1U}, {24U, 24U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {32U, 32U, 1U}, {32U, 32U, 1U}, {0U, 0U, 1U}, {119U, 119U, 1U}, {7U, 7U, 1U}, {1U, 1U, 1U}, {4U, 4U, 1U}, {15U, 15U, 1U}, {48U, 48U, 1U}, {50U, 50U, 1U}, {13U, 13U, 1U}, {13U, 13U, 1U}, {4U, 4U, 1U}, {6U, 6U, 1U}, {1U, 1U, 1U}, {28U, 28U, 1U}, {2U, 2U, 1U}, {2U, 2U, 1U}, {247U, 247U, 3U}, {180U, 180U, 1U}, {210U, 210U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {4U, 4U, 1U}, {150U, 150U, 1U}, {62U, 62U, 1U}, {62U, 62U, 1U}, {19U, 19U, 1U}, {2U, 2U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {7U, 7U, 3U}, {8U, 8U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {64U, 64U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {96U, 96U, 1U}, {102U, 102U, 1U}, {12U, 12U, 1U}, {102U, 102U, 1U}, {143U, 143U, 3U}, {0U, 0U, 1U}, {204U, 204U, 1U}, {1U, 1U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {255U, 255U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {6U, 6U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}}; static struct b2056_inittab_entry const b2056_inittab_phy_rev4_tx[147U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {55U, 55U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {17U, 17U, 1U}, {17U, 17U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {15U, 15U, 1U}, {0U, 0U, 1U}, {45U, 45U, 1U}, {0U, 0U, 1U}, {110U, 110U, 1U}, {240U, 240U, 3U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {30U, 30U, 1U}, {0U, 0U, 1U}, {110U, 110U, 1U}, {240U, 240U, 3U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {255U, 255U, 3U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {56U, 56U, 1U}, {112U, 112U, 3U}, {2U, 2U, 1U}, {136U, 136U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {112U, 112U, 3U}, {2U, 2U, 1U}, {255U, 255U, 3U}, {0U, 0U, 1U}, {131U, 131U, 1U}, {119U, 119U, 3U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {136U, 136U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {119U, 119U, 3U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {114U, 114U, 3U}, {0U, 0U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {14U, 14U, 1U}, {14U, 14U, 1U}, {14U, 14U, 1U}, {19U, 19U, 1U}, {19U, 19U, 1U}, {27U, 27U, 1U}, {27U, 27U, 1U}, {85U, 85U, 1U}, {91U, 91U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}}; static struct b2056_inittab_entry const b2056_inittab_phy_rev4_rx[149U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {144U, 144U, 1U}, {85U, 85U, 1U}, {21U, 21U, 1U}, {5U, 5U, 1U}, {21U, 21U, 1U}, {5U, 5U, 1U}, {32U, 32U, 1U}, {17U, 17U, 1U}, {144U, 144U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {50U, 50U, 1U}, {119U, 119U, 1U}, {23U, 23U, 3U}, {255U, 255U, 3U}, {32U, 32U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {50U, 50U, 1U}, {119U, 119U, 1U}, {23U, 23U, 3U}, {240U, 240U, 3U}, {32U, 32U, 1U}, {8U, 8U, 1U}, {85U, 85U, 3U}, {0U, 0U, 1U}, {68U, 68U, 3U}, {0U, 0U, 1U}, {68U, 68U, 1U}, {15U, 15U, 3U}, {6U, 6U, 1U}, {4U, 4U, 1U}, {80U, 80U, 3U}, {8U, 8U, 1U}, {85U, 85U, 3U}, {0U, 0U, 1U}, {17U, 17U, 1U}, {0U, 0U, 1U}, {68U, 68U, 1U}, {7U, 7U, 1U}, {6U, 6U, 1U}, {4U, 4U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {38U, 38U, 3U}, {38U, 38U, 3U}, {15U, 15U, 3U}, {15U, 15U, 3U}, {68U, 68U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {8U, 8U, 1U}, {7U, 7U, 1U}, {34U, 34U, 1U}, {34U, 34U, 1U}, {2U, 2U, 1U}, {47U, 47U, 3U}, {7U, 7U, 1U}, {85U, 85U, 1U}, {35U, 35U, 1U}, {65U, 65U, 1U}, {1U, 1U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {34U, 34U, 1U}, {34U, 34U, 1U}, {0U, 0U, 3U}, {10U, 10U, 1U}, {1U, 1U, 1U}, {34U, 34U, 1U}, {48U, 48U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}}; static struct b2056_inittab_entry const b2056_inittab_radio_rev5_syn[183U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {96U, 96U, 1U}, {6U, 6U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {31U, 31U, 1U}, {21U, 21U, 1U}, {15U, 15U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {19U, 19U, 1U}, {15U, 15U, 1U}, {24U, 24U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {32U, 32U, 1U}, {32U, 32U, 1U}, {0U, 0U, 1U}, {119U, 119U, 1U}, {7U, 7U, 1U}, {1U, 1U, 1U}, {4U, 4U, 1U}, {15U, 15U, 1U}, {48U, 48U, 1U}, {50U, 50U, 1U}, {13U, 13U, 1U}, {13U, 13U, 1U}, {4U, 4U, 1U}, {6U, 6U, 1U}, {1U, 1U, 1U}, {28U, 28U, 1U}, {2U, 2U, 1U}, {2U, 2U, 1U}, {247U, 247U, 3U}, {180U, 180U, 1U}, {210U, 210U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {4U, 4U, 1U}, {150U, 150U, 1U}, {62U, 62U, 1U}, {62U, 62U, 1U}, {19U, 19U, 1U}, {2U, 2U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {7U, 7U, 3U}, {8U, 8U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {64U, 64U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {96U, 96U, 1U}, {102U, 102U, 1U}, {12U, 12U, 1U}, {102U, 102U, 1U}, {143U, 143U, 3U}, {0U, 0U, 1U}, {204U, 204U, 1U}, {1U, 1U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {255U, 255U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {6U, 6U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}}; static struct b2056_inittab_entry const b2056_inittab_radio_rev5_tx[155U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {55U, 55U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {17U, 17U, 1U}, {17U, 17U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {15U, 15U, 1U}, {0U, 0U, 1U}, {45U, 45U, 1U}, {0U, 0U, 1U}, {110U, 110U, 1U}, {240U, 240U, 3U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {30U, 30U, 1U}, {0U, 0U, 1U}, {110U, 110U, 1U}, {240U, 240U, 3U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {255U, 255U, 3U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {56U, 56U, 1U}, {112U, 112U, 3U}, {2U, 2U, 1U}, {136U, 136U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {112U, 112U, 3U}, {2U, 2U, 1U}, {255U, 255U, 3U}, {0U, 0U, 1U}, {131U, 131U, 1U}, {119U, 119U, 3U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {136U, 136U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {119U, 119U, 3U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 3U}, {0U, 0U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {14U, 14U, 1U}, {14U, 14U, 1U}, {14U, 14U, 1U}, {19U, 19U, 1U}, {19U, 19U, 1U}, {27U, 27U, 1U}, {27U, 27U, 1U}, {85U, 85U, 1U}, {91U, 91U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {112U, 112U, 1U}, {112U, 112U, 1U}, {113U, 113U, 3U}, {113U, 113U, 3U}, {114U, 114U, 3U}, {115U, 115U, 3U}, {116U, 116U, 3U}, {117U, 117U, 3U}}; static struct b2056_inittab_entry const b2056_inittab_radio_rev5_rx[149U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {144U, 144U, 1U}, {85U, 85U, 1U}, {21U, 21U, 1U}, {5U, 5U, 1U}, {21U, 21U, 1U}, {5U, 5U, 1U}, {32U, 32U, 1U}, {17U, 17U, 1U}, {144U, 144U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {50U, 50U, 1U}, {119U, 119U, 1U}, {23U, 23U, 3U}, {255U, 255U, 3U}, {32U, 32U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {50U, 50U, 1U}, {119U, 119U, 1U}, {23U, 23U, 3U}, {240U, 240U, 3U}, {32U, 32U, 1U}, {8U, 8U, 1U}, {85U, 85U, 3U}, {0U, 0U, 1U}, {136U, 136U, 3U}, {0U, 0U, 1U}, {0U, 0U, 3U}, {7U, 7U, 3U}, {6U, 6U, 1U}, {4U, 4U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {85U, 85U, 3U}, {0U, 0U, 1U}, {17U, 17U, 1U}, {0U, 0U, 1U}, {0U, 0U, 3U}, {7U, 7U, 1U}, {6U, 6U, 1U}, {4U, 4U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {38U, 38U, 3U}, {38U, 38U, 3U}, {15U, 15U, 3U}, {15U, 15U, 3U}, {68U, 68U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {8U, 8U, 1U}, {7U, 7U, 1U}, {34U, 34U, 1U}, {34U, 34U, 1U}, {2U, 2U, 1U}, {4U, 4U, 3U}, {7U, 7U, 1U}, {85U, 85U, 1U}, {35U, 35U, 1U}, {65U, 65U, 1U}, {1U, 1U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {34U, 34U, 1U}, {34U, 34U, 1U}, {0U, 0U, 3U}, {10U, 10U, 1U}, {1U, 1U, 1U}, {34U, 34U, 1U}, {48U, 48U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}}; static struct b2056_inittab_entry const b2056_inittab_radio_rev6_syn[183U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {96U, 96U, 1U}, {6U, 6U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {31U, 31U, 1U}, {21U, 21U, 1U}, {15U, 15U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {19U, 19U, 1U}, {15U, 15U, 1U}, {24U, 24U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {32U, 32U, 1U}, {32U, 32U, 1U}, {0U, 0U, 1U}, {119U, 119U, 1U}, {7U, 7U, 1U}, {1U, 1U, 1U}, {6U, 6U, 3U}, {15U, 15U, 1U}, {63U, 63U, 3U}, {50U, 50U, 1U}, {6U, 6U, 3U}, {6U, 6U, 3U}, {4U, 4U, 1U}, {43U, 43U, 3U}, {1U, 1U, 1U}, {28U, 28U, 1U}, {2U, 2U, 1U}, {2U, 2U, 1U}, {247U, 247U, 3U}, {180U, 180U, 1U}, {210U, 210U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {4U, 4U, 1U}, {150U, 150U, 1U}, {62U, 62U, 1U}, {62U, 62U, 1U}, {19U, 19U, 1U}, {2U, 2U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {7U, 7U, 3U}, {8U, 8U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {64U, 64U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {96U, 96U, 1U}, {102U, 102U, 1U}, {12U, 12U, 1U}, {102U, 102U, 1U}, {143U, 143U, 3U}, {0U, 0U, 1U}, {204U, 204U, 1U}, {1U, 1U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {255U, 255U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {6U, 6U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}}; static struct b2056_inittab_entry const b2056_inittab_radio_rev6_tx[155U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {55U, 55U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {17U, 17U, 1U}, {238U, 238U, 3U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {80U, 80U, 3U}, {0U, 0U, 1U}, {80U, 80U, 3U}, {0U, 0U, 1U}, {110U, 110U, 1U}, {240U, 240U, 3U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {30U, 30U, 1U}, {0U, 0U, 1U}, {110U, 110U, 1U}, {240U, 240U, 3U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {255U, 255U, 3U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {56U, 56U, 1U}, {112U, 112U, 3U}, {2U, 2U, 1U}, {136U, 136U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {112U, 112U, 3U}, {2U, 2U, 1U}, {255U, 255U, 3U}, {0U, 0U, 1U}, {131U, 131U, 1U}, {119U, 119U, 3U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {136U, 136U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {119U, 119U, 3U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 3U}, {0U, 0U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {14U, 14U, 1U}, {14U, 14U, 1U}, {14U, 14U, 1U}, {19U, 19U, 1U}, {19U, 19U, 1U}, {27U, 27U, 1U}, {27U, 27U, 1U}, {85U, 85U, 1U}, {91U, 91U, 1U}, {48U, 48U, 3U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {112U, 112U, 1U}, {112U, 112U, 1U}, {112U, 112U, 1U}, {112U, 112U, 1U}, {112U, 112U, 1U}, {112U, 112U, 1U}, {112U, 112U, 1U}, {112U, 112U, 1U}}; static struct b2056_inittab_entry const b2056_inittab_radio_rev6_rx[149U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {144U, 144U, 1U}, {85U, 85U, 1U}, {21U, 21U, 1U}, {5U, 5U, 1U}, {21U, 21U, 1U}, {5U, 5U, 1U}, {32U, 32U, 1U}, {17U, 17U, 1U}, {144U, 144U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {50U, 50U, 1U}, {119U, 119U, 1U}, {23U, 23U, 3U}, {255U, 255U, 3U}, {32U, 32U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {50U, 50U, 1U}, {119U, 119U, 1U}, {23U, 23U, 3U}, {240U, 240U, 3U}, {32U, 32U, 1U}, {8U, 8U, 1U}, {85U, 85U, 3U}, {0U, 0U, 1U}, {136U, 136U, 3U}, {0U, 0U, 1U}, {68U, 68U, 1U}, {7U, 7U, 3U}, {6U, 6U, 1U}, {4U, 4U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {85U, 85U, 3U}, {0U, 0U, 1U}, {17U, 17U, 1U}, {0U, 0U, 1U}, {68U, 68U, 1U}, {7U, 7U, 1U}, {6U, 6U, 1U}, {4U, 4U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {38U, 38U, 3U}, {38U, 38U, 3U}, {15U, 15U, 3U}, {15U, 15U, 3U}, {68U, 68U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {8U, 8U, 1U}, {7U, 7U, 1U}, {34U, 34U, 1U}, {34U, 34U, 1U}, {2U, 2U, 1U}, {4U, 4U, 3U}, {7U, 7U, 1U}, {85U, 85U, 1U}, {35U, 35U, 1U}, {65U, 65U, 1U}, {1U, 1U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {34U, 34U, 1U}, {34U, 34U, 1U}, {0U, 0U, 3U}, {10U, 10U, 1U}, {1U, 1U, 1U}, {34U, 34U, 1U}, {48U, 48U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {5U, 5U, 3U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}}; static struct b2056_inittab_entry const b2056_inittab_radio_rev7_9_syn[183U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {96U, 96U, 1U}, {6U, 6U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {31U, 31U, 1U}, {21U, 21U, 1U}, {15U, 15U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {19U, 19U, 1U}, {15U, 15U, 1U}, {24U, 24U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {32U, 32U, 1U}, {32U, 32U, 1U}, {0U, 0U, 1U}, {119U, 119U, 1U}, {7U, 7U, 1U}, {1U, 1U, 1U}, {4U, 4U, 1U}, {15U, 15U, 1U}, {48U, 48U, 1U}, {50U, 50U, 1U}, {13U, 13U, 1U}, {13U, 13U, 1U}, {4U, 4U, 1U}, {6U, 6U, 1U}, {1U, 1U, 1U}, {28U, 28U, 1U}, {2U, 2U, 1U}, {2U, 2U, 1U}, {247U, 247U, 3U}, {180U, 180U, 1U}, {210U, 210U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {4U, 4U, 1U}, {150U, 150U, 1U}, {62U, 62U, 1U}, {62U, 62U, 1U}, {19U, 19U, 1U}, {2U, 2U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {7U, 7U, 3U}, {8U, 8U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {64U, 64U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {96U, 96U, 1U}, {102U, 102U, 1U}, {12U, 12U, 1U}, {102U, 102U, 1U}, {143U, 143U, 3U}, {0U, 0U, 1U}, {204U, 204U, 1U}, {1U, 1U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {255U, 255U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {6U, 6U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}}; static struct b2056_inittab_entry const b2056_inittab_radio_rev7_9_tx[155U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {55U, 55U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {17U, 17U, 1U}, {238U, 238U, 3U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {80U, 80U, 3U}, {0U, 0U, 1U}, {80U, 80U, 3U}, {0U, 0U, 1U}, {110U, 110U, 1U}, {240U, 240U, 3U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {30U, 30U, 1U}, {0U, 0U, 1U}, {110U, 110U, 1U}, {240U, 240U, 3U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {255U, 255U, 3U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {56U, 56U, 1U}, {112U, 112U, 3U}, {2U, 2U, 1U}, {136U, 136U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {112U, 112U, 3U}, {2U, 2U, 1U}, {255U, 255U, 3U}, {0U, 0U, 1U}, {131U, 131U, 1U}, {119U, 119U, 3U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {136U, 136U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {119U, 119U, 3U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 3U}, {0U, 0U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {14U, 14U, 1U}, {14U, 14U, 1U}, {14U, 14U, 1U}, {19U, 19U, 1U}, {19U, 19U, 1U}, {27U, 27U, 1U}, {27U, 27U, 1U}, {85U, 85U, 1U}, {91U, 91U, 1U}, {48U, 48U, 3U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {112U, 112U, 1U}, {112U, 112U, 1U}, {113U, 113U, 3U}, {113U, 113U, 3U}, {114U, 114U, 3U}, {115U, 115U, 3U}, {116U, 116U, 3U}, {117U, 117U, 3U}}; static struct b2056_inittab_entry const b2056_inittab_radio_rev7_9_rx[149U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {144U, 144U, 1U}, {85U, 85U, 1U}, {21U, 21U, 1U}, {5U, 5U, 1U}, {21U, 21U, 1U}, {5U, 5U, 1U}, {32U, 32U, 1U}, {17U, 17U, 1U}, {144U, 144U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {50U, 50U, 1U}, {119U, 119U, 1U}, {23U, 23U, 3U}, {255U, 255U, 3U}, {32U, 32U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {50U, 50U, 1U}, {119U, 119U, 1U}, {23U, 23U, 3U}, {240U, 240U, 3U}, {32U, 32U, 1U}, {8U, 8U, 1U}, {85U, 85U, 3U}, {0U, 0U, 1U}, {136U, 136U, 3U}, {0U, 0U, 1U}, {0U, 0U, 3U}, {7U, 7U, 3U}, {6U, 6U, 1U}, {4U, 4U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {85U, 85U, 3U}, {0U, 0U, 1U}, {17U, 17U, 1U}, {0U, 0U, 1U}, {0U, 0U, 3U}, {7U, 7U, 1U}, {6U, 6U, 1U}, {4U, 4U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {38U, 38U, 3U}, {38U, 38U, 3U}, {15U, 15U, 3U}, {15U, 15U, 3U}, {68U, 68U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {8U, 8U, 1U}, {7U, 7U, 1U}, {34U, 34U, 1U}, {34U, 34U, 1U}, {2U, 2U, 1U}, {4U, 4U, 3U}, {7U, 7U, 1U}, {85U, 85U, 1U}, {35U, 35U, 1U}, {65U, 65U, 1U}, {1U, 1U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {34U, 34U, 1U}, {34U, 34U, 1U}, {0U, 0U, 3U}, {10U, 10U, 1U}, {1U, 1U, 1U}, {34U, 34U, 1U}, {48U, 48U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}}; static struct b2056_inittab_entry const b2056_inittab_radio_rev8_syn[183U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {96U, 96U, 1U}, {6U, 6U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {31U, 31U, 1U}, {21U, 21U, 1U}, {15U, 15U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {19U, 19U, 1U}, {15U, 15U, 1U}, {24U, 24U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {32U, 32U, 1U}, {32U, 32U, 1U}, {0U, 0U, 1U}, {119U, 119U, 1U}, {7U, 7U, 1U}, {1U, 1U, 1U}, {4U, 4U, 1U}, {15U, 15U, 1U}, {48U, 48U, 1U}, {50U, 50U, 1U}, {13U, 13U, 1U}, {13U, 13U, 1U}, {4U, 4U, 1U}, {6U, 6U, 1U}, {1U, 1U, 1U}, {28U, 28U, 1U}, {2U, 2U, 1U}, {2U, 2U, 1U}, {247U, 247U, 3U}, {180U, 180U, 1U}, {210U, 210U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {4U, 4U, 1U}, {150U, 150U, 1U}, {62U, 62U, 1U}, {62U, 62U, 1U}, {19U, 19U, 1U}, {2U, 2U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {7U, 7U, 3U}, {8U, 8U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {64U, 64U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {96U, 96U, 1U}, {102U, 102U, 1U}, {12U, 12U, 1U}, {102U, 102U, 1U}, {143U, 143U, 3U}, {0U, 0U, 1U}, {204U, 204U, 1U}, {1U, 1U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {255U, 255U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {6U, 6U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {102U, 102U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}}; static struct b2056_inittab_entry const b2056_inittab_radio_rev8_tx[155U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {136U, 136U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {55U, 55U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {1U, 1U, 1U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {17U, 17U, 1U}, {238U, 238U, 3U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {80U, 80U, 3U}, {0U, 0U, 1U}, {80U, 80U, 3U}, {0U, 0U, 1U}, {110U, 110U, 1U}, {240U, 240U, 3U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {30U, 30U, 1U}, {0U, 0U, 1U}, {110U, 110U, 1U}, {240U, 240U, 3U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {255U, 255U, 3U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {56U, 56U, 1U}, {112U, 112U, 3U}, {2U, 2U, 1U}, {136U, 136U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {112U, 112U, 3U}, {2U, 2U, 1U}, {255U, 255U, 3U}, {0U, 0U, 1U}, {131U, 131U, 1U}, {119U, 119U, 3U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {136U, 136U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {119U, 119U, 3U}, {1U, 1U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {0U, 0U, 1U}, {7U, 7U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 3U}, {0U, 0U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {2U, 2U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {14U, 14U, 1U}, {14U, 14U, 1U}, {14U, 14U, 1U}, {19U, 19U, 1U}, {19U, 19U, 1U}, {27U, 27U, 1U}, {27U, 27U, 1U}, {85U, 85U, 1U}, {91U, 91U, 1U}, {48U, 48U, 3U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {112U, 112U, 1U}, {112U, 112U, 1U}, {112U, 112U, 1U}, {112U, 112U, 1U}, {112U, 112U, 1U}, {112U, 112U, 1U}, {112U, 112U, 1U}, {112U, 112U, 1U}}; static struct b2056_inittab_entry const b2056_inittab_radio_rev8_rx[149U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {3U, 3U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {144U, 144U, 1U}, {85U, 85U, 1U}, {21U, 21U, 1U}, {5U, 5U, 1U}, {21U, 21U, 1U}, {5U, 5U, 1U}, {32U, 32U, 1U}, {17U, 17U, 1U}, {144U, 144U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {50U, 50U, 1U}, {119U, 119U, 1U}, {23U, 23U, 3U}, {255U, 255U, 3U}, {32U, 32U, 1U}, {0U, 0U, 1U}, {136U, 136U, 1U}, {50U, 50U, 1U}, {119U, 119U, 1U}, {23U, 23U, 3U}, {240U, 240U, 3U}, {32U, 32U, 1U}, {8U, 8U, 1U}, {85U, 85U, 3U}, {0U, 0U, 1U}, {136U, 136U, 3U}, {0U, 0U, 1U}, {68U, 68U, 1U}, {7U, 7U, 3U}, {6U, 6U, 1U}, {4U, 4U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {85U, 85U, 3U}, {0U, 0U, 1U}, {17U, 17U, 1U}, {0U, 0U, 1U}, {68U, 68U, 1U}, {7U, 7U, 1U}, {6U, 6U, 1U}, {4U, 4U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {38U, 38U, 3U}, {38U, 38U, 3U}, {15U, 15U, 3U}, {15U, 15U, 3U}, {68U, 68U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {8U, 8U, 1U}, {8U, 8U, 1U}, {7U, 7U, 1U}, {34U, 34U, 1U}, {34U, 34U, 1U}, {2U, 2U, 1U}, {4U, 4U, 3U}, {7U, 7U, 1U}, {85U, 85U, 1U}, {35U, 35U, 1U}, {65U, 65U, 1U}, {1U, 1U, 1U}, {10U, 10U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {12U, 12U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {34U, 34U, 1U}, {34U, 34U, 1U}, {0U, 0U, 3U}, {10U, 10U, 1U}, {1U, 1U, 1U}, {34U, 34U, 1U}, {48U, 48U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {5U, 5U, 3U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}, {0U, 0U, 1U}}; static struct b2056_inittab_entry const b2056_inittab_radio_rev11_syn[117U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {6U, 6U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {63U, 63U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {6U, 6U, 3U}, {6U, 6U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {43U, 43U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {247U, 247U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {7U, 7U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {143U, 143U, 3U}}; static struct b2056_inittab_entry const b2056_inittab_radio_rev11_tx[126U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {238U, 238U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {80U, 80U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {80U, 80U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {240U, 240U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {240U, 240U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {255U, 255U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {112U, 112U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {112U, 112U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {255U, 255U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {119U, 119U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {119U, 119U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {48U, 48U, 3U}}; static struct b2056_inittab_entry const b2056_inittab_radio_rev11_rx[126U] = { {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {23U, 23U, 3U}, {255U, 255U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {23U, 23U, 3U}, {240U, 240U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {85U, 85U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {136U, 136U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {7U, 7U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {85U, 85U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {38U, 38U, 3U}, {38U, 38U, 3U}, {15U, 15U, 3U}, {15U, 15U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {4U, 4U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {0U, 0U, 3U}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {(unsigned short)0, (unsigned short)0, (unsigned char)0}, {5U, 5U, 3U}}; static struct b2056_inittabs_pts const b2056_inittab_phy_rev3 = {(struct b2056_inittab_entry const *)(& b2056_inittab_phy_rev3_syn), 183U, (struct b2056_inittab_entry const *)(& b2056_inittab_phy_rev3_tx), 147U, (struct b2056_inittab_entry const *)(& b2056_inittab_phy_rev3_rx), 149U}; static struct b2056_inittabs_pts const b2056_inittab_phy_rev4 = {(struct b2056_inittab_entry const *)(& b2056_inittab_phy_rev4_syn), 183U, (struct b2056_inittab_entry const *)(& b2056_inittab_phy_rev4_tx), 147U, (struct b2056_inittab_entry const *)(& b2056_inittab_phy_rev4_rx), 149U}; static struct b2056_inittabs_pts const b2056_inittab_radio_rev5 = {(struct b2056_inittab_entry const *)(& b2056_inittab_radio_rev5_syn), 183U, (struct b2056_inittab_entry const *)(& b2056_inittab_radio_rev5_tx), 155U, (struct b2056_inittab_entry const *)(& b2056_inittab_radio_rev5_rx), 149U}; static struct b2056_inittabs_pts const b2056_inittab_radio_rev6 = {(struct b2056_inittab_entry const *)(& b2056_inittab_radio_rev6_syn), 183U, (struct b2056_inittab_entry const *)(& b2056_inittab_radio_rev6_tx), 155U, (struct b2056_inittab_entry const *)(& b2056_inittab_radio_rev6_rx), 149U}; static struct b2056_inittabs_pts const b2056_inittab_radio_rev7_9 = {(struct b2056_inittab_entry const *)(& b2056_inittab_radio_rev7_9_syn), 183U, (struct b2056_inittab_entry const *)(& b2056_inittab_radio_rev7_9_tx), 155U, (struct b2056_inittab_entry const *)(& b2056_inittab_radio_rev7_9_rx), 149U}; static struct b2056_inittabs_pts const b2056_inittab_radio_rev8 = {(struct b2056_inittab_entry const *)(& b2056_inittab_radio_rev8_syn), 183U, (struct b2056_inittab_entry const *)(& b2056_inittab_radio_rev8_tx), 155U, (struct b2056_inittab_entry const *)(& b2056_inittab_radio_rev8_rx), 149U}; static struct b2056_inittabs_pts const b2056_inittab_radio_rev11 = {(struct b2056_inittab_entry const *)(& b2056_inittab_radio_rev11_syn), 117U, (struct b2056_inittab_entry const *)(& b2056_inittab_radio_rev11_tx), 126U, (struct b2056_inittab_entry const *)(& b2056_inittab_radio_rev11_rx), 126U}; static struct b43_nphy_channeltab_entry_rev3 const b43_nphy_channeltab_phy_rev3[124U] = { {4920U, 255U, 1U, 1U, 1U, 236U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 255U, 0U, 8U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 8U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {1972U, 1968U, 1964U, 532U, 533U, 534U}}, {4930U, 255U, 1U, 1U, 1U, 237U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 255U, 0U, 8U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 8U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {1976U, 1972U, 1968U, 531U, 532U, 533U}}, {4940U, 255U, 1U, 1U, 1U, 238U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 255U, 0U, 8U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 8U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {1980U, 1976U, 1972U, 530U, 531U, 532U}}, {4950U, 255U, 1U, 1U, 1U, 239U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 255U, 0U, 8U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 8U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {1984U, 1980U, 1976U, 529U, 530U, 531U}}, {4960U, 255U, 1U, 1U, 1U, 240U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 8U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 8U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {1988U, 1984U, 1980U, 527U, 529U, 530U}}, {4970U, 255U, 1U, 1U, 1U, 241U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 8U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 8U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {1992U, 1988U, 1984U, 526U, 527U, 529U}}, {4980U, 255U, 1U, 1U, 1U, 242U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 8U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 8U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {1996U, 1992U, 1988U, 525U, 526U, 527U}}, {4990U, 255U, 1U, 1U, 1U, 243U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 8U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 8U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {2000U, 1996U, 1992U, 524U, 525U, 526U}}, {5000U, 255U, 1U, 1U, 1U, 244U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {2004U, 2000U, 1996U, 523U, 524U, 525U}}, {5010U, 255U, 1U, 1U, 1U, 245U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {2008U, 2004U, 2000U, 522U, 523U, 524U}}, {5020U, 247U, 1U, 1U, 1U, 246U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {2012U, 2008U, 2004U, 521U, 522U, 523U}}, {5030U, 247U, 1U, 1U, 1U, 247U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {2016U, 2012U, 2008U, 520U, 521U, 522U}}, {5040U, 239U, 1U, 1U, 1U, 248U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {2020U, 2016U, 2012U, 519U, 520U, 521U}}, {5050U, 239U, 1U, 1U, 1U, 249U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {2024U, 2020U, 2016U, 518U, 519U, 520U}}, {5060U, 230U, 1U, 1U, 1U, 250U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {2028U, 2024U, 2020U, 517U, 518U, 519U}}, {5070U, 230U, 1U, 1U, 1U, 251U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {2032U, 2028U, 2024U, 516U, 517U, 518U}}, {5080U, 222U, 1U, 1U, 1U, 252U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {2036U, 2032U, 2028U, 515U, 516U, 517U}}, {5090U, 222U, 1U, 1U, 1U, 253U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {2040U, 2036U, 2032U, 514U, 515U, 516U}}, {5100U, 214U, 1U, 1U, 1U, 254U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 255U, 0U, {2044U, 2040U, 2036U, 513U, 514U, 515U}}, {5110U, 214U, 1U, 1U, 1U, 255U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 252U, 0U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 252U, 0U, {2048U, 2044U, 2040U, 512U, 513U, 514U}}, {5120U, 206U, 1U, 1U, 2U, 0U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 252U, 0U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 252U, 0U, {2052U, 2048U, 2044U, 511U, 512U, 513U}}, {5130U, 206U, 1U, 1U, 2U, 1U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 252U, 0U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 252U, 0U, {2056U, 2052U, 2048U, 510U, 511U, 512U}}, {5140U, 198U, 1U, 1U, 2U, 2U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 252U, 0U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 252U, 0U, {2060U, 2056U, 2052U, 509U, 510U, 511U}}, {5160U, 190U, 1U, 1U, 2U, 4U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 252U, 0U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 252U, 0U, {2068U, 2064U, 2060U, 507U, 508U, 509U}}, {5170U, 190U, 1U, 1U, 2U, 5U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 252U, 0U, 255U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 252U, 0U, {2072U, 2068U, 2064U, 506U, 507U, 508U}}, {5180U, 182U, 1U, 1U, 2U, 6U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 239U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 252U, 0U, 239U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 252U, 0U, {2076U, 2072U, 2068U, 505U, 506U, 507U}}, {5190U, 182U, 1U, 1U, 2U, 7U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 239U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 252U, 0U, 239U, 0U, 7U, 0U, 127U, 0U, 11U, 0U, 252U, 0U, {2080U, 2076U, 2072U, 504U, 505U, 506U}}, {5200U, 175U, 1U, 1U, 2U, 8U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 239U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, 239U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, {2084U, 2080U, 2076U, 503U, 504U, 505U}}, {5210U, 175U, 1U, 1U, 2U, 9U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 223U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, 223U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, {2088U, 2084U, 2080U, 502U, 503U, 504U}}, {5220U, 167U, 1U, 1U, 2U, 10U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 223U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, 223U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, {2092U, 2088U, 2084U, 501U, 502U, 503U}}, {5230U, 167U, 1U, 1U, 2U, 11U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 223U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, 223U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, {2096U, 2092U, 2088U, 500U, 501U, 502U}}, {5240U, 160U, 1U, 1U, 2U, 12U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 207U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, 207U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, {2100U, 2096U, 2092U, 499U, 500U, 501U}}, {5250U, 160U, 1U, 1U, 2U, 13U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 207U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, 207U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, {2104U, 2100U, 2096U, 498U, 499U, 500U}}, {5260U, 152U, 1U, 1U, 2U, 14U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 207U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, 207U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, {2108U, 2104U, 2100U, 497U, 498U, 499U}}, {5270U, 152U, 1U, 1U, 2U, 15U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 15U, 0U, 255U, 207U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, 207U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, {2112U, 2108U, 2104U, 496U, 497U, 498U}}, {5280U, 145U, 1U, 1U, 2U, 16U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 15U, 0U, 255U, 191U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, 191U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, {2116U, 2112U, 2108U, 496U, 496U, 497U}}, {5290U, 145U, 1U, 1U, 2U, 17U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 15U, 0U, 255U, 191U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, 191U, 0U, 6U, 0U, 127U, 0U, 10U, 0U, 252U, 0U, {2120U, 2116U, 2112U, 495U, 496U, 496U}}, {5300U, 138U, 1U, 1U, 2U, 18U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 191U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 252U, 0U, 191U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 252U, 0U, {2124U, 2120U, 2116U, 494U, 495U, 496U}}, {5310U, 138U, 1U, 1U, 2U, 19U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 191U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, 191U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, {2128U, 2124U, 2120U, 493U, 494U, 495U}}, {5320U, 131U, 1U, 1U, 2U, 20U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 191U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, 191U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, {2132U, 2128U, 2124U, 492U, 493U, 494U}}, {5330U, 131U, 1U, 1U, 2U, 21U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 175U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, 175U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, {2136U, 2132U, 2128U, 491U, 492U, 493U}}, {5340U, 124U, 1U, 1U, 2U, 22U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 175U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, 175U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, {2140U, 2136U, 2132U, 490U, 491U, 492U}}, {5350U, 124U, 1U, 1U, 2U, 23U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 159U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, 159U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, {2144U, 2140U, 2136U, 489U, 490U, 491U}}, {5360U, 117U, 1U, 1U, 2U, 24U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 159U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, 159U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, {2148U, 2144U, 2140U, 488U, 489U, 490U}}, {5370U, 117U, 1U, 1U, 2U, 25U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 159U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, 159U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, {2152U, 2148U, 2144U, 487U, 488U, 489U}}, {5380U, 110U, 1U, 1U, 2U, 26U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 159U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, 159U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, {2156U, 2152U, 2148U, 486U, 487U, 488U}}, {5390U, 110U, 1U, 1U, 2U, 27U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 143U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, 143U, 0U, 5U, 0U, 127U, 0U, 9U, 0U, 250U, 0U, {2160U, 2156U, 2152U, 485U, 486U, 487U}}, {5400U, 103U, 1U, 1U, 2U, 28U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 200U, 143U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 250U, 0U, 143U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 250U, 0U, {2164U, 2160U, 2156U, 485U, 485U, 486U}}, {5410U, 103U, 1U, 1U, 2U, 29U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 200U, 143U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 250U, 0U, 143U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 250U, 0U, {2168U, 2164U, 2160U, 484U, 485U, 485U}}, {5420U, 97U, 1U, 1U, 2U, 30U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 200U, 142U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 250U, 0U, 142U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 250U, 0U, {2172U, 2168U, 2164U, 483U, 484U, 485U}}, {5430U, 97U, 1U, 1U, 2U, 31U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 200U, 142U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 250U, 0U, 142U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 250U, 0U, {2176U, 2172U, 2168U, 482U, 483U, 484U}}, {5440U, 90U, 1U, 1U, 2U, 32U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 126U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 250U, 0U, 126U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 250U, 0U, {2180U, 2176U, 2172U, 481U, 482U, 483U}}, {5450U, 90U, 1U, 1U, 2U, 33U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 125U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 250U, 0U, 125U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 250U, 0U, {2184U, 2180U, 2176U, 480U, 481U, 482U}}, {5460U, 83U, 1U, 1U, 2U, 34U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 109U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 248U, 0U, 109U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 248U, 0U, {2188U, 2184U, 2180U, 479U, 480U, 481U}}, {5470U, 83U, 1U, 1U, 2U, 35U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 109U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 248U, 0U, 109U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 248U, 0U, {2192U, 2188U, 2184U, 478U, 479U, 480U}}, {5480U, 77U, 1U, 1U, 2U, 36U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 93U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 248U, 0U, 93U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 248U, 0U, {2196U, 2192U, 2188U, 477U, 478U, 479U}}, {5490U, 77U, 1U, 1U, 2U, 37U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 92U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 248U, 0U, 92U, 0U, 4U, 0U, 127U, 0U, 8U, 0U, 248U, 0U, {2200U, 2196U, 2192U, 477U, 477U, 478U}}, {5500U, 71U, 1U, 1U, 2U, 38U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 92U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, 92U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, {2204U, 2200U, 2196U, 476U, 477U, 477U}}, {5510U, 71U, 1U, 1U, 2U, 39U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 76U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, 76U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, {2208U, 2204U, 2200U, 475U, 476U, 477U}}, {5520U, 64U, 1U, 1U, 2U, 40U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 76U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, 76U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, {2212U, 2208U, 2204U, 474U, 475U, 476U}}, {5530U, 64U, 1U, 1U, 2U, 41U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 59U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, 59U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, {2216U, 2212U, 2208U, 473U, 474U, 475U}}, {5540U, 58U, 1U, 1U, 2U, 42U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 59U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, 59U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, {2220U, 2216U, 2212U, 472U, 473U, 474U}}, {5550U, 58U, 1U, 1U, 2U, 43U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 59U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, 59U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, {2224U, 2220U, 2216U, 471U, 472U, 473U}}, {5560U, 52U, 1U, 1U, 2U, 44U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 43U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, 43U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, {2228U, 2224U, 2220U, 471U, 471U, 472U}}, {5570U, 52U, 1U, 1U, 2U, 45U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 42U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, 42U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, {2232U, 2228U, 2224U, 470U, 471U, 471U}}, {5580U, 46U, 1U, 1U, 2U, 46U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 26U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, 26U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, {2236U, 2232U, 2228U, 469U, 470U, 471U}}, {5590U, 46U, 1U, 1U, 2U, 47U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 26U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, 26U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, {2240U, 2236U, 2232U, 468U, 469U, 470U}}, {5600U, 40U, 1U, 1U, 2U, 48U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 26U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, 26U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, {2244U, 2240U, 2236U, 467U, 468U, 469U}}, {5610U, 40U, 1U, 1U, 2U, 49U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 25U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, 25U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, {2248U, 2244U, 2240U, 466U, 467U, 468U}}, {5620U, 33U, 1U, 1U, 2U, 50U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 25U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, 25U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, {2252U, 2248U, 2244U, 466U, 466U, 467U}}, {5630U, 33U, 1U, 1U, 2U, 51U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 9U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, 9U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, {2256U, 2252U, 2248U, 465U, 466U, 466U}}, {5640U, 28U, 1U, 1U, 2U, 52U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 9U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, 9U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, {2260U, 2256U, 2252U, 464U, 465U, 466U}}, {5650U, 28U, 1U, 1U, 2U, 53U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 8U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, 8U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 248U, 0U, {2264U, 2260U, 2256U, 463U, 464U, 465U}}, {5660U, 22U, 1U, 1U, 2U, 54U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 8U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 246U, 0U, 8U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 246U, 0U, {2268U, 2264U, 2260U, 462U, 463U, 464U}}, {5670U, 22U, 1U, 1U, 2U, 55U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 8U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 246U, 0U, 8U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 246U, 0U, {2272U, 2268U, 2264U, 462U, 462U, 463U}}, {5680U, 16U, 1U, 1U, 2U, 56U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 8U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 246U, 0U, 8U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 246U, 0U, {2276U, 2272U, 2268U, 461U, 462U, 462U}}, {5690U, 16U, 1U, 1U, 2U, 57U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 7U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 246U, 0U, 7U, 0U, 3U, 0U, 127U, 0U, 7U, 0U, 246U, 0U, {2280U, 2276U, 2272U, 460U, 461U, 462U}}, {5700U, 10U, 1U, 1U, 2U, 58U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 7U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 246U, 0U, 7U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 246U, 0U, {2284U, 2280U, 2276U, 459U, 460U, 461U}}, {5710U, 10U, 1U, 1U, 2U, 59U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 7U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 7U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2288U, 2284U, 2280U, 458U, 459U, 460U}}, {5720U, 10U, 1U, 1U, 2U, 60U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 7U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 7U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2292U, 2288U, 2284U, 457U, 458U, 459U}}, {5725U, 3U, 1U, 2U, 4U, 121U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 6U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 6U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2294U, 2290U, 2286U, 457U, 458U, 459U}}, {5730U, 10U, 1U, 1U, 2U, 61U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 6U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 6U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2296U, 2292U, 2288U, 457U, 457U, 458U}}, {5735U, 3U, 1U, 2U, 4U, 123U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 6U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 6U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2298U, 2294U, 2290U, 456U, 457U, 458U}}, {5740U, 10U, 1U, 1U, 2U, 62U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 6U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 6U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2300U, 2296U, 2292U, 456U, 457U, 457U}}, {5745U, 254U, 0U, 2U, 4U, 125U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 6U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 6U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2302U, 2298U, 2294U, 456U, 456U, 457U}}, {5750U, 10U, 1U, 1U, 2U, 63U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 6U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 6U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2304U, 2300U, 2296U, 455U, 456U, 457U}}, {5755U, 254U, 0U, 2U, 4U, 127U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 5U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 5U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2306U, 2302U, 2298U, 455U, 456U, 456U}}, {5760U, 10U, 1U, 1U, 2U, 64U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 5U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 5U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2308U, 2304U, 2300U, 454U, 455U, 456U}}, {5765U, 248U, 0U, 2U, 4U, 129U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 5U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 5U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2310U, 2306U, 2302U, 454U, 455U, 456U}}, {5770U, 10U, 1U, 1U, 2U, 65U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 5U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 5U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2312U, 2308U, 2304U, 454U, 454U, 455U}}, {5775U, 248U, 0U, 2U, 4U, 131U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 5U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 5U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2314U, 2310U, 2306U, 453U, 454U, 455U}}, {5780U, 10U, 1U, 1U, 2U, 66U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 5U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 5U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2316U, 2312U, 2308U, 453U, 454U, 454U}}, {5785U, 242U, 0U, 2U, 4U, 133U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 138U, 6U, 0U, 64U, 4U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 4U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2318U, 2314U, 2310U, 452U, 453U, 454U}}, {5790U, 10U, 1U, 1U, 2U, 67U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 138U, 6U, 0U, 64U, 4U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 4U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2320U, 2316U, 2312U, 452U, 453U, 454U}}, {5795U, 242U, 0U, 2U, 4U, 135U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 138U, 6U, 0U, 64U, 4U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 4U, 0U, 2U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2322U, 2318U, 2314U, 452U, 452U, 453U}}, {5800U, 10U, 1U, 1U, 2U, 68U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 4U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 4U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2324U, 2320U, 2316U, 451U, 452U, 453U}}, {5805U, 237U, 0U, 2U, 4U, 137U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 4U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 4U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2326U, 2322U, 2318U, 451U, 452U, 452U}}, {5810U, 10U, 1U, 1U, 2U, 69U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 4U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 4U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2328U, 2324U, 2320U, 450U, 451U, 452U}}, {5815U, 237U, 0U, 2U, 4U, 139U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 4U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 4U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2330U, 2326U, 2322U, 450U, 451U, 452U}}, {5820U, 10U, 1U, 1U, 2U, 70U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 3U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 3U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2332U, 2328U, 2324U, 450U, 450U, 451U}}, {5825U, 237U, 0U, 2U, 4U, 141U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 3U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 3U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2334U, 2330U, 2326U, 449U, 450U, 451U}}, {5830U, 10U, 1U, 1U, 2U, 71U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 3U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 3U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2336U, 2332U, 2328U, 449U, 450U, 450U}}, {5840U, 10U, 1U, 1U, 2U, 72U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 3U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 3U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2340U, 2336U, 2332U, 448U, 449U, 450U}}, {5850U, 224U, 0U, 1U, 2U, 73U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 3U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, 3U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 244U, 0U, {2344U, 2340U, 2336U, 447U, 448U, 449U}}, {5860U, 222U, 0U, 1U, 2U, 74U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 3U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 242U, 0U, 3U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 242U, 0U, {2348U, 2344U, 2340U, 447U, 447U, 448U}}, {5870U, 219U, 0U, 1U, 2U, 75U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 2U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 242U, 0U, 2U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 242U, 0U, {2352U, 2348U, 2344U, 446U, 447U, 447U}}, {5880U, 216U, 0U, 1U, 2U, 76U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 2U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 242U, 0U, 2U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 242U, 0U, {2356U, 2352U, 2348U, 445U, 446U, 447U}}, {5890U, 214U, 0U, 1U, 2U, 77U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 2U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 242U, 0U, 2U, 0U, 0U, 0U, 127U, 0U, 6U, 0U, 242U, 0U, {2360U, 2356U, 2352U, 444U, 445U, 446U}}, {5900U, 211U, 0U, 1U, 2U, 78U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 135U, 3U, 0U, 0U, 2U, 0U, 0U, 0U, 127U, 0U, 5U, 0U, 242U, 0U, 2U, 0U, 0U, 0U, 127U, 0U, 5U, 0U, 242U, 0U, {2364U, 2360U, 2356U, 444U, 444U, 445U}}, {5910U, 214U, 0U, 1U, 2U, 79U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 135U, 3U, 0U, 0U, 1U, 0U, 0U, 0U, 127U, 0U, 5U, 0U, 242U, 0U, 1U, 0U, 0U, 0U, 127U, 0U, 5U, 0U, 242U, 0U, {2368U, 2364U, 2360U, 443U, 444U, 444U}}, {2412U, 0U, 1U, 3U, 9U, 108U, 8U, 8U, 4U, 22U, 1U, 4U, 4U, 4U, 143U, 48U, 0U, 0U, 0U, 255U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, 0U, 255U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, {969U, 965U, 961U, 1082U, 1087U, 1091U}}, {2417U, 0U, 1U, 3U, 9U, 113U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 255U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, 0U, 255U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, {971U, 967U, 963U, 1080U, 1085U, 1089U}}, {2422U, 0U, 1U, 3U, 9U, 118U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 255U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, 0U, 255U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, {973U, 969U, 965U, 1078U, 1082U, 1087U}}, {2427U, 0U, 1U, 3U, 9U, 123U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 253U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, 0U, 253U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, {975U, 971U, 967U, 1076U, 1080U, 1085U}}, {2432U, 0U, 1U, 3U, 9U, 128U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 251U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, 0U, 251U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, {977U, 973U, 969U, 1073U, 1078U, 1082U}}, {2437U, 0U, 1U, 3U, 9U, 133U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 250U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, 0U, 250U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, {979U, 975U, 971U, 1071U, 1076U, 1080U}}, {2442U, 0U, 1U, 3U, 9U, 138U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 248U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, 0U, 248U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, {981U, 977U, 973U, 1069U, 1073U, 1078U}}, {2447U, 0U, 1U, 3U, 9U, 143U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 247U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, 0U, 247U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, {983U, 979U, 975U, 1067U, 1071U, 1076U}}, {2452U, 0U, 1U, 3U, 9U, 148U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 246U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, 0U, 246U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 15U, {985U, 981U, 977U, 1065U, 1069U, 1073U}}, {2457U, 0U, 1U, 3U, 9U, 153U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 245U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 13U, 0U, 245U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 13U, {987U, 983U, 979U, 1063U, 1067U, 1071U}}, {2462U, 0U, 1U, 3U, 9U, 158U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 244U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 13U, 0U, 244U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 13U, {989U, 985U, 981U, 1060U, 1065U, 1069U}}, {2467U, 0U, 1U, 3U, 9U, 163U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 243U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 13U, 0U, 243U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 13U, {991U, 987U, 983U, 1058U, 1063U, 1067U}}, {2472U, 0U, 1U, 3U, 9U, 168U, 8U, 8U, 4U, 22U, 1U, 7U, 7U, 7U, 143U, 48U, 0U, 0U, 0U, 242U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 13U, 0U, 242U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 13U, {993U, 989U, 985U, 1056U, 1060U, 1065U}}, {2484U, 255U, 1U, 3U, 9U, 180U, 8U, 8U, 4U, 22U, 1U, 7U, 7U, 7U, 143U, 48U, 0U, 0U, 0U, 240U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 13U, 0U, 240U, 0U, 5U, 0U, 112U, 0U, 15U, 0U, 13U, {998U, 994U, 990U, 1051U, 1055U, 1060U}}}; static struct b43_nphy_channeltab_entry_rev3 const b43_nphy_channeltab_phy_rev4[124U] = { {4920U, 255U, 1U, 1U, 1U, 236U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 255U, 0U, 14U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 14U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {1972U, 1968U, 1964U, 532U, 533U, 534U}}, {4930U, 255U, 1U, 1U, 1U, 237U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 255U, 0U, 14U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 14U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {1976U, 1972U, 1968U, 531U, 532U, 533U}}, {4940U, 255U, 1U, 1U, 1U, 238U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 255U, 0U, 14U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 14U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {1980U, 1976U, 1972U, 530U, 531U, 532U}}, {4950U, 255U, 1U, 1U, 1U, 239U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 255U, 0U, 14U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 14U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {1984U, 1980U, 1976U, 529U, 530U, 531U}}, {4960U, 255U, 1U, 1U, 1U, 240U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 14U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 14U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {1988U, 1984U, 1980U, 527U, 529U, 530U}}, {4970U, 255U, 1U, 1U, 1U, 241U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 14U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 14U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {1992U, 1988U, 1984U, 526U, 527U, 529U}}, {4980U, 255U, 1U, 1U, 1U, 242U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 14U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 14U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {1996U, 1992U, 1988U, 525U, 526U, 527U}}, {4990U, 255U, 1U, 1U, 1U, 243U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 14U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 14U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {2000U, 1996U, 1992U, 524U, 525U, 526U}}, {5000U, 255U, 1U, 1U, 1U, 244U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {2004U, 2000U, 1996U, 523U, 524U, 525U}}, {5010U, 255U, 1U, 1U, 1U, 245U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {2008U, 2004U, 2000U, 522U, 523U, 524U}}, {5020U, 247U, 1U, 1U, 1U, 246U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {2012U, 2008U, 2004U, 521U, 522U, 523U}}, {5030U, 247U, 1U, 1U, 1U, 247U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {2016U, 2012U, 2008U, 520U, 521U, 522U}}, {5040U, 239U, 1U, 1U, 1U, 248U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {2020U, 2016U, 2012U, 519U, 520U, 521U}}, {5050U, 239U, 1U, 1U, 1U, 249U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {2024U, 2020U, 2016U, 518U, 519U, 520U}}, {5060U, 230U, 1U, 1U, 1U, 250U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {2028U, 2024U, 2020U, 517U, 518U, 519U}}, {5070U, 230U, 1U, 1U, 1U, 251U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {2032U, 2028U, 2024U, 516U, 517U, 518U}}, {5080U, 222U, 1U, 1U, 1U, 252U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {2036U, 2032U, 2028U, 515U, 516U, 517U}}, {5090U, 222U, 1U, 1U, 1U, 253U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, 255U, 0U, 13U, 0U, 127U, 0U, 15U, 0U, 255U, 0U, {2040U, 2036U, 2032U, 514U, 515U, 516U}}, {5100U, 214U, 1U, 1U, 1U, 254U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 255U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, 255U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, {2044U, 2040U, 2036U, 513U, 514U, 515U}}, {5110U, 214U, 1U, 1U, 1U, 255U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 255U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, 255U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, {2048U, 2044U, 2040U, 512U, 513U, 514U}}, {5120U, 206U, 1U, 1U, 2U, 0U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 255U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, 255U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, {2052U, 2048U, 2044U, 511U, 512U, 513U}}, {5130U, 206U, 1U, 1U, 2U, 1U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 255U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, 255U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, {2056U, 2052U, 2048U, 510U, 511U, 512U}}, {5140U, 198U, 1U, 1U, 2U, 2U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 255U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, 255U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, {2060U, 2056U, 2052U, 509U, 510U, 511U}}, {5160U, 190U, 1U, 1U, 2U, 4U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 255U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, 255U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, {2068U, 2064U, 2060U, 507U, 508U, 509U}}, {5170U, 190U, 1U, 1U, 2U, 5U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 255U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, 255U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, {2072U, 2068U, 2064U, 506U, 507U, 508U}}, {5180U, 182U, 1U, 1U, 2U, 6U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 239U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, 239U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, {2076U, 2072U, 2068U, 505U, 506U, 507U}}, {5190U, 182U, 1U, 1U, 2U, 7U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 239U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, 239U, 0U, 12U, 0U, 127U, 0U, 15U, 0U, 254U, 0U, {2080U, 2076U, 2072U, 504U, 505U, 506U}}, {5200U, 175U, 1U, 1U, 2U, 8U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 239U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, 239U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, {2084U, 2080U, 2076U, 503U, 504U, 505U}}, {5210U, 175U, 1U, 1U, 2U, 9U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 223U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, 223U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, {2088U, 2084U, 2080U, 502U, 503U, 504U}}, {5220U, 167U, 1U, 1U, 2U, 10U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 223U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, 223U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, {2092U, 2088U, 2084U, 501U, 502U, 503U}}, {5230U, 167U, 1U, 1U, 2U, 11U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 223U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, 223U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, {2096U, 2092U, 2088U, 500U, 501U, 502U}}, {5240U, 160U, 1U, 1U, 2U, 12U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 207U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, 207U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, {2100U, 2096U, 2092U, 499U, 500U, 501U}}, {5250U, 160U, 1U, 1U, 2U, 13U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 207U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, 207U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, {2104U, 2100U, 2096U, 498U, 499U, 500U}}, {5260U, 152U, 1U, 1U, 2U, 14U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 207U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, 207U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, {2108U, 2104U, 2100U, 497U, 498U, 499U}}, {5270U, 152U, 1U, 1U, 2U, 15U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 15U, 0U, 255U, 207U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, 207U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, {2112U, 2108U, 2104U, 496U, 497U, 498U}}, {5280U, 145U, 1U, 1U, 2U, 16U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 15U, 0U, 255U, 191U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, 191U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, {2116U, 2112U, 2108U, 496U, 496U, 497U}}, {5290U, 145U, 1U, 1U, 2U, 17U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 15U, 0U, 255U, 191U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, 191U, 0U, 10U, 0U, 127U, 0U, 15U, 0U, 252U, 0U, {2120U, 2116U, 2112U, 495U, 496U, 496U}}, {5300U, 138U, 1U, 1U, 2U, 18U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 191U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, 191U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, {2124U, 2120U, 2116U, 494U, 495U, 496U}}, {5310U, 138U, 1U, 1U, 2U, 19U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 191U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, 191U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, {2128U, 2124U, 2120U, 493U, 494U, 495U}}, {5320U, 131U, 1U, 1U, 2U, 20U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 191U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, 191U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, {2132U, 2128U, 2124U, 492U, 493U, 494U}}, {5330U, 131U, 1U, 1U, 2U, 21U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 175U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, 175U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, {2136U, 2132U, 2128U, 491U, 492U, 493U}}, {5340U, 124U, 1U, 1U, 2U, 22U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 175U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, 175U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, {2140U, 2136U, 2132U, 490U, 491U, 492U}}, {5350U, 124U, 1U, 1U, 2U, 23U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 159U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, 159U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, {2144U, 2140U, 2136U, 489U, 490U, 491U}}, {5360U, 117U, 1U, 1U, 2U, 24U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 159U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, 159U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, {2148U, 2144U, 2140U, 488U, 489U, 490U}}, {5370U, 117U, 1U, 1U, 2U, 25U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 159U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, 159U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, {2152U, 2148U, 2144U, 487U, 488U, 489U}}, {5380U, 110U, 1U, 1U, 2U, 26U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 159U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, 159U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, {2156U, 2152U, 2148U, 486U, 487U, 488U}}, {5390U, 110U, 1U, 1U, 2U, 27U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 143U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, 143U, 0U, 8U, 0U, 127U, 0U, 15U, 0U, 250U, 0U, {2160U, 2156U, 2152U, 485U, 486U, 487U}}, {5400U, 103U, 1U, 1U, 2U, 28U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 200U, 143U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, 143U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, {2164U, 2160U, 2156U, 485U, 485U, 486U}}, {5410U, 103U, 1U, 1U, 2U, 29U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 200U, 143U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, 143U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, {2168U, 2164U, 2160U, 484U, 485U, 485U}}, {5420U, 97U, 1U, 1U, 2U, 30U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 200U, 142U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, 142U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, {2172U, 2168U, 2164U, 483U, 484U, 485U}}, {5430U, 97U, 1U, 1U, 2U, 31U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 200U, 142U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, 142U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, {2176U, 2172U, 2168U, 482U, 483U, 484U}}, {5440U, 90U, 1U, 1U, 2U, 32U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 126U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, 126U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, {2180U, 2176U, 2172U, 481U, 482U, 483U}}, {5450U, 90U, 1U, 1U, 2U, 33U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 125U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, 125U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, {2184U, 2180U, 2176U, 480U, 481U, 482U}}, {5460U, 83U, 1U, 1U, 2U, 34U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 109U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, 109U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, {2188U, 2184U, 2180U, 479U, 480U, 481U}}, {5470U, 83U, 1U, 1U, 2U, 35U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 109U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, 109U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, {2192U, 2188U, 2184U, 478U, 479U, 480U}}, {5480U, 77U, 1U, 1U, 2U, 36U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 93U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, 93U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, {2196U, 2192U, 2188U, 477U, 478U, 479U}}, {5490U, 77U, 1U, 1U, 2U, 37U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 92U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, 92U, 0U, 7U, 0U, 127U, 0U, 15U, 0U, 248U, 0U, {2200U, 2196U, 2192U, 477U, 477U, 478U}}, {5500U, 71U, 1U, 1U, 2U, 38U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 92U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, 92U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, {2204U, 2200U, 2196U, 476U, 477U, 477U}}, {5510U, 71U, 1U, 1U, 2U, 39U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 76U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, 76U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, {2208U, 2204U, 2200U, 475U, 476U, 477U}}, {5520U, 64U, 1U, 1U, 2U, 40U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 76U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, 76U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, {2212U, 2208U, 2204U, 474U, 475U, 476U}}, {5530U, 64U, 1U, 1U, 2U, 41U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 59U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, 59U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, {2216U, 2212U, 2208U, 473U, 474U, 475U}}, {5540U, 58U, 1U, 1U, 2U, 42U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 59U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, 59U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, {2220U, 2216U, 2212U, 472U, 473U, 474U}}, {5550U, 58U, 1U, 1U, 2U, 43U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 59U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, 59U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, {2224U, 2220U, 2216U, 471U, 472U, 473U}}, {5560U, 52U, 1U, 1U, 2U, 44U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 43U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, 43U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, {2228U, 2224U, 2220U, 471U, 471U, 472U}}, {5570U, 52U, 1U, 1U, 2U, 45U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 42U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, 42U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, {2232U, 2228U, 2224U, 470U, 471U, 471U}}, {5580U, 46U, 1U, 1U, 2U, 46U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 26U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, 26U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, {2236U, 2232U, 2228U, 469U, 470U, 471U}}, {5590U, 46U, 1U, 1U, 2U, 47U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 26U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, 26U, 0U, 6U, 0U, 127U, 0U, 13U, 0U, 246U, 0U, {2240U, 2236U, 2232U, 468U, 469U, 470U}}, {5600U, 40U, 1U, 1U, 2U, 48U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 26U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, 26U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, {2244U, 2240U, 2236U, 467U, 468U, 469U}}, {5610U, 40U, 1U, 1U, 2U, 49U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 25U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, 25U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, {2248U, 2244U, 2240U, 466U, 467U, 468U}}, {5620U, 33U, 1U, 1U, 2U, 50U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 25U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, 25U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, {2252U, 2248U, 2244U, 466U, 466U, 467U}}, {5630U, 33U, 1U, 1U, 2U, 51U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 9U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, 9U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, {2256U, 2252U, 2248U, 465U, 466U, 466U}}, {5640U, 28U, 1U, 1U, 2U, 52U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 9U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, 9U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, {2260U, 2256U, 2252U, 464U, 465U, 466U}}, {5650U, 28U, 1U, 1U, 2U, 53U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 8U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, 8U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, {2264U, 2260U, 2256U, 463U, 464U, 465U}}, {5660U, 22U, 1U, 1U, 2U, 54U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 8U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, 8U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, {2268U, 2264U, 2260U, 462U, 463U, 464U}}, {5670U, 22U, 1U, 1U, 2U, 55U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 8U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, 8U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, {2272U, 2268U, 2264U, 462U, 462U, 463U}}, {5680U, 16U, 1U, 1U, 2U, 56U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 8U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, 8U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, {2276U, 2272U, 2268U, 461U, 462U, 462U}}, {5690U, 16U, 1U, 1U, 2U, 57U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 7U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, 7U, 0U, 4U, 0U, 127U, 0U, 11U, 0U, 244U, 0U, {2280U, 2276U, 2272U, 460U, 461U, 462U}}, {5700U, 10U, 1U, 1U, 2U, 58U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 7U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 7U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2284U, 2280U, 2276U, 459U, 460U, 461U}}, {5710U, 10U, 1U, 1U, 2U, 59U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 7U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 7U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2288U, 2284U, 2280U, 458U, 459U, 460U}}, {5720U, 10U, 1U, 1U, 2U, 60U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 7U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 7U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2292U, 2288U, 2284U, 457U, 458U, 459U}}, {5725U, 3U, 1U, 2U, 4U, 121U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 6U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 6U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2294U, 2290U, 2286U, 457U, 458U, 459U}}, {5730U, 10U, 1U, 1U, 2U, 61U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 6U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 6U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2296U, 2292U, 2288U, 457U, 457U, 458U}}, {5735U, 3U, 1U, 2U, 4U, 123U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 6U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 6U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2298U, 2294U, 2290U, 456U, 457U, 458U}}, {5740U, 10U, 1U, 1U, 2U, 62U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 6U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 6U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2300U, 2296U, 2292U, 456U, 457U, 457U}}, {5745U, 254U, 0U, 2U, 4U, 125U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 6U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 6U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2302U, 2298U, 2294U, 456U, 456U, 457U}}, {5750U, 10U, 1U, 1U, 2U, 63U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 6U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 6U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2304U, 2300U, 2296U, 455U, 456U, 457U}}, {5755U, 254U, 0U, 2U, 4U, 127U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 5U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 5U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2306U, 2302U, 2298U, 455U, 456U, 456U}}, {5760U, 10U, 1U, 1U, 2U, 64U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 5U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 5U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2308U, 2304U, 2300U, 454U, 455U, 456U}}, {5765U, 248U, 0U, 2U, 4U, 129U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 5U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 5U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2310U, 2306U, 2302U, 454U, 455U, 456U}}, {5770U, 10U, 1U, 1U, 2U, 65U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 5U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 5U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2312U, 2308U, 2304U, 454U, 454U, 455U}}, {5775U, 248U, 0U, 2U, 4U, 131U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 5U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 5U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2314U, 2310U, 2306U, 453U, 454U, 455U}}, {5780U, 10U, 1U, 1U, 2U, 66U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 5U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 5U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2316U, 2312U, 2308U, 453U, 454U, 454U}}, {5785U, 242U, 0U, 2U, 4U, 133U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 138U, 6U, 0U, 64U, 4U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 4U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2318U, 2314U, 2310U, 452U, 453U, 454U}}, {5790U, 10U, 1U, 1U, 2U, 67U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 138U, 6U, 0U, 64U, 4U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 4U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2320U, 2316U, 2312U, 452U, 453U, 454U}}, {5795U, 242U, 0U, 2U, 4U, 135U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 138U, 6U, 0U, 64U, 4U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, 4U, 0U, 3U, 0U, 127U, 0U, 10U, 0U, 242U, 0U, {2322U, 2318U, 2314U, 452U, 452U, 453U}}, {5800U, 10U, 1U, 1U, 2U, 68U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 4U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, 4U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, {2324U, 2320U, 2316U, 451U, 452U, 453U}}, {5805U, 237U, 0U, 2U, 4U, 137U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 4U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, 4U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, {2326U, 2322U, 2318U, 451U, 452U, 452U}}, {5810U, 10U, 1U, 1U, 2U, 69U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 4U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, 4U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, {2328U, 2324U, 2320U, 450U, 451U, 452U}}, {5815U, 237U, 0U, 2U, 4U, 139U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 4U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, 4U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, {2330U, 2326U, 2322U, 450U, 451U, 452U}}, {5820U, 10U, 1U, 1U, 2U, 70U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 3U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, 3U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, {2332U, 2328U, 2324U, 450U, 450U, 451U}}, {5825U, 237U, 0U, 2U, 4U, 141U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 3U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, 3U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, {2334U, 2330U, 2326U, 449U, 450U, 451U}}, {5830U, 10U, 1U, 1U, 2U, 71U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 3U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, 3U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, {2336U, 2332U, 2328U, 449U, 450U, 450U}}, {5840U, 10U, 1U, 1U, 2U, 72U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 3U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, 3U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, {2340U, 2336U, 2332U, 448U, 449U, 450U}}, {5850U, 224U, 0U, 1U, 2U, 73U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 3U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, 3U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, {2344U, 2340U, 2336U, 447U, 448U, 449U}}, {5860U, 222U, 0U, 1U, 2U, 74U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 3U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, 3U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, {2348U, 2344U, 2340U, 447U, 447U, 448U}}, {5870U, 219U, 0U, 1U, 2U, 75U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 2U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, 2U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, {2352U, 2348U, 2344U, 446U, 447U, 447U}}, {5880U, 216U, 0U, 1U, 2U, 76U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 2U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, 2U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, {2356U, 2352U, 2348U, 445U, 446U, 447U}}, {5890U, 214U, 0U, 1U, 2U, 77U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 2U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, 2U, 0U, 2U, 0U, 127U, 0U, 9U, 0U, 240U, 0U, {2360U, 2356U, 2352U, 444U, 445U, 446U}}, {5900U, 211U, 0U, 1U, 2U, 78U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 135U, 3U, 0U, 0U, 2U, 0U, 0U, 0U, 127U, 0U, 7U, 0U, 240U, 0U, 2U, 0U, 0U, 0U, 127U, 0U, 7U, 0U, 240U, 0U, {2364U, 2360U, 2356U, 444U, 444U, 445U}}, {5910U, 214U, 0U, 1U, 2U, 79U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 135U, 3U, 0U, 0U, 1U, 0U, 0U, 0U, 127U, 0U, 7U, 0U, 240U, 0U, 1U, 0U, 0U, 0U, 127U, 0U, 7U, 0U, 240U, 0U, {2368U, 2364U, 2360U, 443U, 444U, 444U}}, {2412U, 0U, 1U, 3U, 9U, 108U, 8U, 8U, 4U, 22U, 1U, 4U, 4U, 4U, 143U, 48U, 0U, 0U, 0U, 255U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, 0U, 255U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, {969U, 965U, 961U, 1082U, 1087U, 1091U}}, {2417U, 0U, 1U, 3U, 9U, 113U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 255U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, 0U, 255U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, {971U, 967U, 963U, 1080U, 1085U, 1089U}}, {2422U, 0U, 1U, 3U, 9U, 118U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 255U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, 0U, 255U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, {973U, 969U, 965U, 1078U, 1082U, 1087U}}, {2427U, 0U, 1U, 3U, 9U, 123U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 253U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, 0U, 253U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, {975U, 971U, 967U, 1076U, 1080U, 1085U}}, {2432U, 0U, 1U, 3U, 9U, 128U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 251U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, 0U, 251U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, {977U, 973U, 969U, 1073U, 1078U, 1082U}}, {2437U, 0U, 1U, 3U, 9U, 133U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 250U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, 0U, 250U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, {979U, 975U, 971U, 1071U, 1076U, 1080U}}, {2442U, 0U, 1U, 3U, 9U, 138U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 248U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, 0U, 248U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, {981U, 977U, 973U, 1069U, 1073U, 1078U}}, {2447U, 0U, 1U, 3U, 9U, 143U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 247U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, 0U, 247U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, {983U, 979U, 975U, 1067U, 1071U, 1076U}}, {2452U, 0U, 1U, 3U, 9U, 148U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 246U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, 0U, 246U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, {985U, 981U, 977U, 1065U, 1069U, 1073U}}, {2457U, 0U, 1U, 3U, 9U, 153U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 245U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, 0U, 245U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, {987U, 983U, 979U, 1063U, 1067U, 1071U}}, {2462U, 0U, 1U, 3U, 9U, 158U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 244U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, 0U, 244U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, {989U, 985U, 981U, 1060U, 1065U, 1069U}}, {2467U, 0U, 1U, 3U, 9U, 163U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 243U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, 0U, 243U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, {991U, 987U, 983U, 1058U, 1063U, 1067U}}, {2472U, 0U, 1U, 3U, 9U, 168U, 8U, 8U, 4U, 22U, 1U, 7U, 7U, 7U, 143U, 48U, 0U, 0U, 0U, 242U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, 0U, 242U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, {993U, 989U, 985U, 1056U, 1060U, 1065U}}, {2484U, 255U, 1U, 3U, 9U, 180U, 8U, 8U, 4U, 22U, 1U, 7U, 7U, 7U, 143U, 48U, 0U, 0U, 0U, 240U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, 0U, 240U, 0U, 4U, 0U, 112U, 0U, 15U, 0U, 14U, {998U, 994U, 990U, 1051U, 1055U, 1060U}}}; static struct b43_nphy_channeltab_entry_rev3 const b43_nphy_channeltab_radio_rev5[124U] = { {4920U, 255U, 1U, 1U, 1U, 236U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 255U, 0U, 11U, 0U, 112U, 0U, 15U, 0U, 159U, 0U, 255U, 0U, 11U, 0U, 112U, 0U, 15U, 0U, 111U, 0U, {1972U, 1968U, 1964U, 532U, 533U, 534U}}, {4930U, 255U, 1U, 1U, 1U, 237U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 255U, 0U, 11U, 0U, 112U, 0U, 14U, 0U, 159U, 0U, 255U, 0U, 11U, 0U, 112U, 0U, 14U, 0U, 111U, 0U, {1976U, 1972U, 1968U, 531U, 532U, 533U}}, {4940U, 255U, 1U, 1U, 1U, 238U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 255U, 0U, 11U, 0U, 112U, 0U, 14U, 0U, 159U, 0U, 255U, 0U, 11U, 0U, 112U, 0U, 14U, 0U, 111U, 0U, {1980U, 1976U, 1972U, 530U, 531U, 532U}}, {4950U, 255U, 1U, 1U, 1U, 239U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 255U, 0U, 11U, 0U, 112U, 0U, 14U, 0U, 159U, 0U, 255U, 0U, 11U, 0U, 112U, 0U, 14U, 0U, 111U, 0U, {1984U, 1980U, 1976U, 529U, 530U, 531U}}, {4960U, 255U, 1U, 1U, 1U, 240U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 10U, 0U, 112U, 0U, 14U, 0U, 159U, 0U, 255U, 0U, 10U, 0U, 112U, 0U, 14U, 0U, 111U, 0U, {1988U, 1984U, 1980U, 527U, 529U, 530U}}, {4970U, 255U, 1U, 1U, 1U, 241U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 159U, 0U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 111U, 0U, {1992U, 1988U, 1984U, 526U, 527U, 529U}}, {4980U, 255U, 1U, 1U, 1U, 242U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 159U, 0U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 111U, 0U, {1996U, 1992U, 1988U, 525U, 526U, 527U}}, {4990U, 255U, 1U, 1U, 1U, 243U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 159U, 0U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 111U, 0U, {2000U, 1996U, 1992U, 524U, 525U, 526U}}, {5000U, 255U, 1U, 1U, 1U, 244U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 159U, 0U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 111U, 0U, {2004U, 2000U, 1996U, 523U, 524U, 525U}}, {5010U, 255U, 1U, 1U, 1U, 245U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 159U, 0U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 111U, 0U, {2008U, 2004U, 2000U, 522U, 523U, 524U}}, {5020U, 247U, 1U, 1U, 1U, 246U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 9U, 0U, 112U, 0U, 13U, 0U, 159U, 0U, 255U, 0U, 9U, 0U, 112U, 0U, 13U, 0U, 111U, 0U, {2012U, 2008U, 2004U, 521U, 522U, 523U}}, {5030U, 247U, 1U, 1U, 1U, 247U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 9U, 0U, 112U, 0U, 12U, 0U, 159U, 0U, 255U, 0U, 9U, 0U, 112U, 0U, 12U, 0U, 111U, 0U, {2016U, 2012U, 2008U, 520U, 521U, 522U}}, {5040U, 239U, 1U, 1U, 1U, 248U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 112U, 0U, 12U, 0U, 159U, 0U, 254U, 0U, 9U, 0U, 112U, 0U, 12U, 0U, 111U, 0U, {2020U, 2016U, 2012U, 519U, 520U, 521U}}, {5050U, 239U, 1U, 1U, 1U, 249U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 112U, 0U, 12U, 0U, 159U, 0U, 254U, 0U, 9U, 0U, 112U, 0U, 12U, 0U, 111U, 0U, {2024U, 2020U, 2016U, 518U, 519U, 520U}}, {5060U, 230U, 1U, 1U, 1U, 250U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 253U, 0U, 9U, 0U, 112U, 0U, 12U, 0U, 159U, 0U, 253U, 0U, 9U, 0U, 112U, 0U, 12U, 0U, 111U, 0U, {2028U, 2024U, 2020U, 517U, 518U, 519U}}, {5070U, 230U, 1U, 1U, 1U, 251U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 253U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 159U, 0U, 253U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 111U, 0U, {2032U, 2028U, 2024U, 516U, 517U, 518U}}, {5080U, 222U, 1U, 1U, 1U, 252U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 159U, 0U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 111U, 0U, {2036U, 2032U, 2028U, 515U, 516U, 517U}}, {5090U, 222U, 1U, 1U, 1U, 253U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 159U, 0U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 111U, 0U, {2040U, 2036U, 2032U, 514U, 515U, 516U}}, {5100U, 214U, 1U, 1U, 1U, 254U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 159U, 0U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 111U, 0U, {2044U, 2040U, 2036U, 513U, 514U, 515U}}, {5110U, 214U, 1U, 1U, 1U, 255U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 159U, 0U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 111U, 0U, {2048U, 2044U, 2040U, 512U, 513U, 514U}}, {5120U, 206U, 1U, 1U, 2U, 0U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 159U, 0U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 111U, 0U, {2052U, 2048U, 2044U, 511U, 512U, 513U}}, {5130U, 206U, 1U, 1U, 2U, 1U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 251U, 0U, 8U, 0U, 112U, 0U, 10U, 0U, 159U, 0U, 251U, 0U, 8U, 0U, 112U, 0U, 10U, 0U, 111U, 0U, {2056U, 2052U, 2048U, 510U, 511U, 512U}}, {5140U, 198U, 1U, 1U, 2U, 2U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 251U, 0U, 7U, 0U, 112U, 0U, 10U, 0U, 159U, 0U, 251U, 0U, 7U, 0U, 112U, 0U, 10U, 0U, 111U, 0U, {2060U, 2056U, 2052U, 509U, 510U, 511U}}, {5160U, 190U, 1U, 1U, 2U, 4U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 251U, 0U, 7U, 0U, 112U, 0U, 9U, 0U, 158U, 0U, 251U, 0U, 7U, 0U, 112U, 0U, 9U, 0U, 110U, 0U, {2068U, 2064U, 2060U, 507U, 508U, 509U}}, {5170U, 190U, 1U, 1U, 2U, 5U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 251U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 158U, 0U, 251U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 110U, 0U, {2072U, 2068U, 2064U, 506U, 507U, 508U}}, {5180U, 182U, 1U, 1U, 2U, 6U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 158U, 0U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 110U, 0U, {2076U, 2072U, 2068U, 505U, 506U, 507U}}, {5190U, 182U, 1U, 1U, 2U, 7U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 158U, 0U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 110U, 0U, {2080U, 2076U, 2072U, 504U, 505U, 506U}}, {5200U, 175U, 1U, 1U, 2U, 8U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 158U, 0U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 110U, 0U, {2084U, 2080U, 2076U, 503U, 504U, 505U}}, {5210U, 175U, 1U, 1U, 2U, 9U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 158U, 0U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 110U, 0U, {2088U, 2084U, 2080U, 502U, 503U, 504U}}, {5220U, 167U, 1U, 1U, 2U, 10U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 158U, 0U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 110U, 0U, {2092U, 2088U, 2084U, 501U, 502U, 503U}}, {5230U, 167U, 1U, 1U, 2U, 11U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 234U, 0U, 6U, 0U, 112U, 0U, 8U, 0U, 158U, 0U, 234U, 0U, 6U, 0U, 112U, 0U, 8U, 0U, 110U, 0U, {2096U, 2092U, 2088U, 500U, 501U, 502U}}, {5240U, 160U, 1U, 1U, 2U, 12U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 233U, 0U, 5U, 0U, 112U, 0U, 8U, 0U, 157U, 0U, 233U, 0U, 5U, 0U, 112U, 0U, 8U, 0U, 109U, 0U, {2100U, 2096U, 2092U, 499U, 500U, 501U}}, {5250U, 160U, 1U, 1U, 2U, 13U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 233U, 0U, 5U, 0U, 112U, 0U, 8U, 0U, 157U, 0U, 233U, 0U, 5U, 0U, 112U, 0U, 8U, 0U, 109U, 0U, {2104U, 2100U, 2096U, 498U, 499U, 500U}}, {5260U, 152U, 1U, 1U, 2U, 14U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 217U, 0U, 5U, 0U, 112U, 0U, 8U, 0U, 157U, 0U, 217U, 0U, 5U, 0U, 112U, 0U, 8U, 0U, 109U, 0U, {2108U, 2104U, 2100U, 497U, 498U, 499U}}, {5270U, 152U, 1U, 1U, 2U, 15U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 15U, 0U, 255U, 216U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 156U, 0U, 216U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 108U, 0U, {2112U, 2108U, 2104U, 496U, 497U, 498U}}, {5280U, 145U, 1U, 1U, 2U, 16U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 15U, 0U, 255U, 200U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 156U, 0U, 200U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 108U, 0U, {2116U, 2112U, 2108U, 496U, 496U, 497U}}, {5290U, 145U, 1U, 1U, 2U, 17U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 15U, 0U, 255U, 200U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 156U, 0U, 200U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 108U, 0U, {2120U, 2116U, 2112U, 495U, 496U, 496U}}, {5300U, 138U, 1U, 1U, 2U, 18U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 200U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 156U, 0U, 200U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 108U, 0U, {2124U, 2120U, 2116U, 494U, 495U, 496U}}, {5310U, 138U, 1U, 1U, 2U, 19U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 200U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 156U, 0U, 200U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 108U, 0U, {2128U, 2124U, 2120U, 493U, 494U, 495U}}, {5320U, 131U, 1U, 1U, 2U, 20U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 184U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 156U, 0U, 184U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 108U, 0U, {2132U, 2128U, 2124U, 492U, 493U, 494U}}, {5330U, 131U, 1U, 1U, 2U, 21U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 183U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 155U, 0U, 183U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 107U, 0U, {2136U, 2132U, 2128U, 491U, 492U, 493U}}, {5340U, 124U, 1U, 1U, 2U, 22U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 183U, 0U, 3U, 0U, 112U, 0U, 7U, 0U, 155U, 0U, 183U, 0U, 3U, 0U, 112U, 0U, 7U, 0U, 107U, 0U, {2140U, 2136U, 2132U, 490U, 491U, 492U}}, {5350U, 124U, 1U, 1U, 2U, 23U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 167U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 155U, 0U, 167U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 107U, 0U, {2144U, 2140U, 2136U, 489U, 490U, 491U}}, {5360U, 117U, 1U, 1U, 2U, 24U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 166U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 155U, 0U, 166U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 107U, 0U, {2148U, 2144U, 2140U, 488U, 489U, 490U}}, {5370U, 117U, 1U, 1U, 2U, 25U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 166U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 155U, 0U, 166U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 91U, 0U, {2152U, 2148U, 2144U, 487U, 488U, 489U}}, {5380U, 110U, 1U, 1U, 2U, 26U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 150U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 154U, 0U, 150U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 90U, 0U, {2156U, 2152U, 2148U, 486U, 487U, 488U}}, {5390U, 110U, 1U, 1U, 2U, 27U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 143U, 14U, 0U, 255U, 149U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 154U, 0U, 149U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 90U, 0U, {2160U, 2156U, 2152U, 485U, 486U, 487U}}, {5400U, 103U, 1U, 1U, 2U, 28U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 200U, 149U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 154U, 0U, 149U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 90U, 0U, {2164U, 2160U, 2156U, 485U, 485U, 486U}}, {5410U, 103U, 1U, 1U, 2U, 29U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 200U, 149U, 0U, 3U, 0U, 112U, 0U, 5U, 0U, 154U, 0U, 149U, 0U, 3U, 0U, 112U, 0U, 5U, 0U, 90U, 0U, {2168U, 2164U, 2160U, 484U, 485U, 485U}}, {5420U, 97U, 1U, 1U, 2U, 30U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 200U, 149U, 0U, 3U, 0U, 112U, 0U, 5U, 0U, 154U, 0U, 149U, 0U, 3U, 0U, 112U, 0U, 5U, 0U, 90U, 0U, {2172U, 2168U, 2164U, 483U, 484U, 485U}}, {5430U, 97U, 1U, 1U, 2U, 31U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 200U, 133U, 0U, 2U, 0U, 112U, 0U, 5U, 0U, 153U, 0U, 133U, 0U, 2U, 0U, 112U, 0U, 5U, 0U, 89U, 0U, {2176U, 2172U, 2168U, 482U, 483U, 484U}}, {5440U, 90U, 1U, 1U, 2U, 32U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 132U, 0U, 2U, 0U, 112U, 0U, 5U, 0U, 153U, 0U, 132U, 0U, 2U, 0U, 112U, 0U, 5U, 0U, 89U, 0U, {2180U, 2176U, 2172U, 481U, 482U, 483U}}, {5450U, 90U, 1U, 1U, 2U, 33U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 132U, 0U, 2U, 0U, 112U, 0U, 5U, 0U, 153U, 0U, 132U, 0U, 2U, 0U, 112U, 0U, 5U, 0U, 89U, 0U, {2184U, 2180U, 2176U, 480U, 481U, 482U}}, {5460U, 83U, 1U, 1U, 2U, 34U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 132U, 0U, 2U, 0U, 112U, 0U, 4U, 0U, 153U, 0U, 132U, 0U, 2U, 0U, 112U, 0U, 4U, 0U, 105U, 0U, {2188U, 2184U, 2180U, 479U, 480U, 481U}}, {5470U, 83U, 1U, 1U, 2U, 35U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 116U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 153U, 0U, 116U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 105U, 0U, {2192U, 2188U, 2184U, 478U, 479U, 480U}}, {5480U, 77U, 1U, 1U, 2U, 36U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 152U, 0U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 104U, 0U, {2196U, 2192U, 2188U, 477U, 478U, 479U}}, {5490U, 77U, 1U, 1U, 2U, 37U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 13U, 0U, 200U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 152U, 0U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 104U, 0U, {2200U, 2196U, 2192U, 477U, 477U, 478U}}, {5500U, 71U, 1U, 1U, 2U, 38U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 152U, 0U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 120U, 0U, {2204U, 2200U, 2196U, 476U, 477U, 477U}}, {5510U, 71U, 1U, 1U, 2U, 39U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 152U, 0U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 120U, 0U, {2208U, 2204U, 2200U, 475U, 476U, 477U}}, {5520U, 64U, 1U, 1U, 2U, 40U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 152U, 0U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 120U, 0U, {2212U, 2208U, 2204U, 474U, 475U, 476U}}, {5530U, 64U, 1U, 1U, 2U, 41U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 99U, 0U, 1U, 0U, 112U, 0U, 3U, 0U, 152U, 0U, 99U, 0U, 1U, 0U, 112U, 0U, 3U, 0U, 120U, 0U, {2216U, 2212U, 2208U, 473U, 474U, 475U}}, {5540U, 58U, 1U, 1U, 2U, 42U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 98U, 0U, 0U, 0U, 112U, 0U, 3U, 0U, 151U, 0U, 98U, 0U, 0U, 0U, 112U, 0U, 3U, 0U, 119U, 0U, {2220U, 2216U, 2212U, 472U, 473U, 474U}}, {5550U, 58U, 1U, 1U, 2U, 43U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 98U, 0U, 0U, 0U, 112U, 0U, 3U, 0U, 151U, 0U, 98U, 0U, 0U, 0U, 112U, 0U, 3U, 0U, 119U, 0U, {2224U, 2220U, 2216U, 471U, 472U, 473U}}, {5560U, 52U, 1U, 1U, 2U, 44U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 98U, 0U, 0U, 0U, 112U, 0U, 3U, 0U, 151U, 0U, 98U, 0U, 0U, 0U, 112U, 0U, 3U, 0U, 119U, 0U, {2228U, 2224U, 2220U, 471U, 471U, 472U}}, {5570U, 52U, 1U, 1U, 2U, 45U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 82U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 150U, 0U, 82U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 118U, 0U, {2232U, 2228U, 2224U, 470U, 471U, 471U}}, {5580U, 46U, 1U, 1U, 2U, 46U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 82U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 150U, 0U, 82U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 118U, 0U, {2236U, 2232U, 2228U, 469U, 470U, 471U}}, {5590U, 46U, 1U, 1U, 2U, 47U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 141U, 11U, 0U, 132U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 150U, 0U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 118U, 0U, {2240U, 2236U, 2232U, 468U, 469U, 470U}}, {5600U, 40U, 1U, 1U, 2U, 48U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 150U, 0U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 118U, 0U, {2244U, 2240U, 2236U, 467U, 468U, 469U}}, {5610U, 40U, 1U, 1U, 2U, 49U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 150U, 0U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 118U, 0U, {2248U, 2244U, 2240U, 466U, 467U, 468U}}, {5620U, 33U, 1U, 1U, 2U, 50U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 150U, 0U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 118U, 0U, {2252U, 2248U, 2244U, 466U, 466U, 467U}}, {5630U, 33U, 1U, 1U, 2U, 51U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 150U, 0U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 118U, 0U, {2256U, 2252U, 2248U, 465U, 466U, 466U}}, {5640U, 28U, 1U, 1U, 2U, 52U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 149U, 0U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 117U, 0U, {2260U, 2256U, 2252U, 464U, 465U, 466U}}, {5650U, 28U, 1U, 1U, 2U, 53U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 80U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 149U, 0U, 80U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 117U, 0U, {2264U, 2260U, 2256U, 463U, 464U, 465U}}, {5660U, 22U, 1U, 1U, 2U, 54U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 80U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 149U, 0U, 80U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 117U, 0U, {2268U, 2264U, 2260U, 462U, 463U, 464U}}, {5670U, 22U, 1U, 1U, 2U, 55U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 116U, 0U, {2272U, 2268U, 2264U, 462U, 462U, 463U}}, {5680U, 16U, 1U, 1U, 2U, 56U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 116U, 0U, {2276U, 2272U, 2268U, 461U, 462U, 462U}}, {5690U, 16U, 1U, 1U, 2U, 57U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 139U, 9U, 0U, 112U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 116U, 0U, {2280U, 2276U, 2272U, 460U, 461U, 462U}}, {5700U, 10U, 1U, 1U, 2U, 58U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 116U, 0U, {2284U, 2280U, 2276U, 459U, 460U, 461U}}, {5710U, 10U, 1U, 1U, 2U, 59U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 116U, 0U, {2288U, 2284U, 2280U, 458U, 459U, 460U}}, {5720U, 10U, 1U, 1U, 2U, 60U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 116U, 0U, {2292U, 2288U, 2284U, 457U, 458U, 459U}}, {5725U, 3U, 1U, 2U, 4U, 121U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 116U, 0U, {2294U, 2290U, 2286U, 457U, 458U, 459U}}, {5730U, 10U, 1U, 1U, 2U, 61U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 48U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, 48U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 132U, 0U, {2296U, 2292U, 2288U, 457U, 457U, 458U}}, {5735U, 3U, 1U, 2U, 4U, 123U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 131U, 0U, {2298U, 2294U, 2290U, 456U, 457U, 458U}}, {5740U, 10U, 1U, 1U, 2U, 62U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 131U, 0U, {2300U, 2296U, 2292U, 456U, 457U, 457U}}, {5745U, 254U, 0U, 2U, 4U, 125U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 131U, 0U, {2302U, 2298U, 2294U, 456U, 456U, 457U}}, {5750U, 10U, 1U, 1U, 2U, 63U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 131U, 0U, {2304U, 2300U, 2296U, 455U, 456U, 457U}}, {5755U, 254U, 0U, 2U, 4U, 127U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 131U, 0U, {2306U, 2302U, 2298U, 455U, 456U, 456U}}, {5760U, 10U, 1U, 1U, 2U, 64U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 32U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, 32U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 131U, 0U, {2308U, 2304U, 2300U, 454U, 455U, 456U}}, {5765U, 248U, 0U, 2U, 4U, 129U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 32U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 32U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 130U, 0U, {2310U, 2306U, 2302U, 454U, 455U, 456U}}, {5770U, 10U, 1U, 1U, 2U, 65U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 32U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 32U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 130U, 0U, {2312U, 2308U, 2304U, 454U, 454U, 455U}}, {5775U, 248U, 0U, 2U, 4U, 131U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 32U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 32U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 130U, 0U, {2314U, 2310U, 2306U, 453U, 454U, 455U}}, {5780U, 10U, 1U, 1U, 2U, 66U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 138U, 6U, 0U, 64U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 130U, 0U, {2316U, 2312U, 2308U, 453U, 454U, 454U}}, {5785U, 242U, 0U, 2U, 4U, 133U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 138U, 6U, 0U, 64U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 130U, 0U, {2318U, 2314U, 2310U, 452U, 453U, 454U}}, {5790U, 10U, 1U, 1U, 2U, 67U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 138U, 6U, 0U, 64U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 130U, 0U, {2320U, 2316U, 2312U, 452U, 453U, 454U}}, {5795U, 242U, 0U, 2U, 4U, 135U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 138U, 6U, 0U, 64U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 130U, 0U, {2322U, 2318U, 2314U, 452U, 452U, 453U}}, {5800U, 10U, 1U, 1U, 2U, 68U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 130U, 0U, {2324U, 2320U, 2316U, 451U, 452U, 453U}}, {5805U, 237U, 0U, 2U, 4U, 137U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 130U, 0U, {2326U, 2322U, 2318U, 451U, 452U, 452U}}, {5810U, 10U, 1U, 1U, 2U, 69U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 130U, 0U, {2328U, 2324U, 2320U, 450U, 451U, 452U}}, {5815U, 237U, 0U, 2U, 4U, 139U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 130U, 0U, {2330U, 2326U, 2322U, 450U, 451U, 452U}}, {5820U, 10U, 1U, 1U, 2U, 70U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 130U, 0U, {2332U, 2328U, 2324U, 450U, 450U, 451U}}, {5825U, 237U, 0U, 2U, 4U, 141U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 130U, 0U, {2334U, 2330U, 2326U, 449U, 450U, 451U}}, {5830U, 10U, 1U, 1U, 2U, 71U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 114U, 0U, {2336U, 2332U, 2328U, 449U, 450U, 450U}}, {5840U, 10U, 1U, 1U, 2U, 72U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 114U, 0U, {2340U, 2336U, 2332U, 448U, 449U, 450U}}, {5850U, 224U, 0U, 1U, 2U, 73U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 114U, 0U, {2344U, 2340U, 2336U, 447U, 448U, 449U}}, {5860U, 222U, 0U, 1U, 2U, 74U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 114U, 0U, {2348U, 2344U, 2340U, 447U, 447U, 448U}}, {5870U, 219U, 0U, 1U, 2U, 75U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 145U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 113U, 0U, {2352U, 2348U, 2344U, 446U, 447U, 447U}}, {5880U, 216U, 0U, 1U, 2U, 76U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 145U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 113U, 0U, {2356U, 2352U, 2348U, 445U, 446U, 447U}}, {5890U, 214U, 0U, 1U, 2U, 77U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 136U, 4U, 0U, 32U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 145U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 113U, 0U, {2360U, 2356U, 2352U, 444U, 445U, 446U}}, {5900U, 211U, 0U, 1U, 2U, 78U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 135U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 145U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 113U, 0U, {2364U, 2360U, 2356U, 444U, 444U, 445U}}, {5910U, 214U, 0U, 1U, 2U, 79U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 135U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 145U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 113U, 0U, {2368U, 2364U, 2360U, 443U, 444U, 444U}}, {2412U, 0U, 1U, 3U, 9U, 108U, 8U, 8U, 4U, 22U, 1U, 4U, 4U, 4U, 143U, 48U, 0U, 0U, 0U, 31U, 0U, 3U, 0U, 112U, 0U, 15U, 0U, 11U, 0U, 31U, 0U, 3U, 0U, 112U, 0U, 15U, 0U, 11U, {969U, 965U, 961U, 1082U, 1087U, 1091U}}, {2417U, 0U, 1U, 3U, 9U, 113U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 31U, 0U, 3U, 0U, 112U, 0U, 15U, 0U, 10U, 0U, 31U, 0U, 3U, 0U, 112U, 0U, 15U, 0U, 10U, {971U, 967U, 963U, 1080U, 1085U, 1089U}}, {2422U, 0U, 1U, 3U, 9U, 118U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 14U, 0U, 3U, 0U, 112U, 0U, 15U, 0U, 10U, 0U, 14U, 0U, 3U, 0U, 112U, 0U, 15U, 0U, 10U, {973U, 969U, 965U, 1078U, 1082U, 1087U}}, {2427U, 0U, 1U, 3U, 9U, 123U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 13U, 0U, 3U, 0U, 112U, 0U, 14U, 0U, 10U, 0U, 13U, 0U, 3U, 0U, 112U, 0U, 14U, 0U, 10U, {975U, 971U, 967U, 1076U, 1080U, 1085U}}, {2432U, 0U, 1U, 3U, 9U, 128U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 12U, 0U, 3U, 0U, 112U, 0U, 14U, 0U, 10U, 0U, 12U, 0U, 3U, 0U, 112U, 0U, 14U, 0U, 10U, {977U, 973U, 969U, 1073U, 1078U, 1082U}}, {2437U, 0U, 1U, 3U, 9U, 133U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 11U, 0U, 3U, 0U, 112U, 0U, 14U, 0U, 10U, 0U, 11U, 0U, 3U, 0U, 112U, 0U, 14U, 0U, 10U, {979U, 975U, 971U, 1071U, 1076U, 1080U}}, {2442U, 0U, 1U, 3U, 9U, 138U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 9U, 0U, 3U, 0U, 112U, 0U, 14U, 0U, 10U, 0U, 9U, 0U, 3U, 0U, 112U, 0U, 14U, 0U, 10U, {981U, 977U, 973U, 1069U, 1073U, 1078U}}, {2447U, 0U, 1U, 3U, 9U, 143U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 8U, 0U, 2U, 0U, 112U, 0U, 14U, 0U, 9U, 0U, 8U, 0U, 2U, 0U, 112U, 0U, 14U, 0U, 9U, {983U, 979U, 975U, 1067U, 1071U, 1076U}}, {2452U, 0U, 1U, 3U, 9U, 148U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 7U, 0U, 2U, 0U, 112U, 0U, 14U, 0U, 9U, 0U, 7U, 0U, 2U, 0U, 112U, 0U, 14U, 0U, 9U, {985U, 981U, 977U, 1065U, 1069U, 1073U}}, {2457U, 0U, 1U, 3U, 9U, 153U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 6U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 9U, 0U, 6U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 9U, {987U, 983U, 979U, 1063U, 1067U, 1071U}}, {2462U, 0U, 1U, 3U, 9U, 158U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 5U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 9U, 0U, 5U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 9U, {989U, 985U, 981U, 1060U, 1065U, 1069U}}, {2467U, 0U, 1U, 3U, 9U, 163U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 4U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 8U, 0U, 4U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 8U, {991U, 987U, 983U, 1058U, 1063U, 1067U}}, {2472U, 0U, 1U, 3U, 9U, 168U, 8U, 8U, 4U, 22U, 1U, 7U, 7U, 7U, 143U, 48U, 0U, 0U, 0U, 3U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 8U, 0U, 3U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 8U, {993U, 989U, 985U, 1056U, 1060U, 1065U}}, {2484U, 255U, 1U, 3U, 9U, 180U, 8U, 8U, 4U, 22U, 1U, 7U, 7U, 7U, 143U, 48U, 0U, 0U, 0U, 0U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 8U, 0U, 0U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 8U, {998U, 994U, 990U, 1051U, 1055U, 1060U}}}; static struct b43_nphy_channeltab_entry_rev3 const b43_nphy_channeltab_radio_rev6[124U] = { {4920U, 255U, 1U, 1U, 1U, 236U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1972U, 1968U, 1964U, 532U, 533U, 534U}}, {4930U, 255U, 1U, 1U, 1U, 237U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1976U, 1972U, 1968U, 531U, 532U, 533U}}, {4940U, 255U, 1U, 1U, 1U, 238U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1980U, 1976U, 1972U, 530U, 531U, 532U}}, {4950U, 255U, 1U, 1U, 1U, 239U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1984U, 1980U, 1976U, 529U, 530U, 531U}}, {4960U, 255U, 1U, 1U, 1U, 240U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1988U, 1984U, 1980U, 527U, 529U, 530U}}, {4970U, 255U, 1U, 1U, 1U, 241U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1992U, 1988U, 1984U, 526U, 527U, 529U}}, {4980U, 255U, 1U, 1U, 1U, 242U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1996U, 1992U, 1988U, 525U, 526U, 527U}}, {4990U, 255U, 1U, 1U, 1U, 243U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2000U, 1996U, 1992U, 524U, 525U, 526U}}, {5000U, 255U, 1U, 1U, 1U, 244U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2004U, 2000U, 1996U, 523U, 524U, 525U}}, {5010U, 255U, 1U, 1U, 1U, 245U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2008U, 2004U, 2000U, 522U, 523U, 524U}}, {5020U, 247U, 1U, 1U, 1U, 246U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2012U, 2008U, 2004U, 521U, 522U, 523U}}, {5030U, 247U, 1U, 1U, 1U, 247U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2016U, 2012U, 2008U, 520U, 521U, 522U}}, {5040U, 239U, 1U, 1U, 1U, 248U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2020U, 2016U, 2012U, 519U, 520U, 521U}}, {5050U, 239U, 1U, 1U, 1U, 249U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2024U, 2020U, 2016U, 518U, 519U, 520U}}, {5060U, 230U, 1U, 1U, 1U, 250U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2028U, 2024U, 2020U, 517U, 518U, 519U}}, {5070U, 230U, 1U, 1U, 1U, 251U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2032U, 2028U, 2024U, 516U, 517U, 518U}}, {5080U, 222U, 1U, 1U, 1U, 252U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2036U, 2032U, 2028U, 515U, 516U, 517U}}, {5090U, 222U, 1U, 1U, 1U, 253U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2040U, 2036U, 2032U, 514U, 515U, 516U}}, {5100U, 214U, 1U, 1U, 1U, 254U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 253U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 253U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2044U, 2040U, 2036U, 513U, 514U, 515U}}, {5110U, 214U, 1U, 1U, 1U, 255U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2048U, 2044U, 2040U, 512U, 513U, 514U}}, {5120U, 206U, 1U, 1U, 2U, 0U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2052U, 2048U, 2044U, 511U, 512U, 513U}}, {5130U, 206U, 1U, 1U, 2U, 1U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2056U, 2052U, 2048U, 510U, 511U, 512U}}, {5140U, 198U, 1U, 1U, 2U, 2U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 251U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 251U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2060U, 2056U, 2052U, 509U, 510U, 511U}}, {5160U, 190U, 1U, 1U, 2U, 4U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 250U, 0U, 7U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, 250U, 0U, 7U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, {2068U, 2064U, 2060U, 507U, 508U, 509U}}, {5170U, 190U, 1U, 1U, 2U, 5U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 250U, 0U, 7U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, 250U, 0U, 7U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, {2072U, 2068U, 2064U, 506U, 507U, 508U}}, {5180U, 182U, 1U, 1U, 2U, 6U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 249U, 0U, 6U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, 249U, 0U, 6U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, {2076U, 2072U, 2068U, 505U, 506U, 507U}}, {5190U, 182U, 1U, 1U, 2U, 7U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 249U, 0U, 6U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 249U, 0U, 6U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2080U, 2076U, 2072U, 504U, 505U, 506U}}, {5200U, 175U, 1U, 1U, 2U, 8U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 249U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 249U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2084U, 2080U, 2076U, 503U, 504U, 505U}}, {5210U, 175U, 1U, 1U, 2U, 9U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 249U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 249U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2088U, 2084U, 2080U, 502U, 503U, 504U}}, {5220U, 167U, 1U, 1U, 2U, 10U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 142U, 15U, 0U, 254U, 216U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 216U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2092U, 2088U, 2084U, 501U, 502U, 503U}}, {5230U, 167U, 1U, 1U, 2U, 11U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 142U, 15U, 0U, 238U, 216U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 216U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2096U, 2092U, 2088U, 500U, 501U, 502U}}, {5240U, 160U, 1U, 1U, 2U, 12U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 142U, 15U, 0U, 238U, 200U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 200U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2100U, 2096U, 2092U, 499U, 500U, 501U}}, {5250U, 160U, 1U, 1U, 2U, 13U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 142U, 15U, 0U, 237U, 199U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 199U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2104U, 2100U, 2096U, 498U, 499U, 500U}}, {5260U, 152U, 1U, 1U, 2U, 14U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 142U, 14U, 0U, 237U, 199U, 0U, 4U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 199U, 0U, 4U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2108U, 2104U, 2100U, 497U, 498U, 499U}}, {5270U, 152U, 1U, 1U, 2U, 15U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 142U, 14U, 0U, 237U, 199U, 0U, 4U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 199U, 0U, 4U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2112U, 2108U, 2104U, 496U, 497U, 498U}}, {5280U, 145U, 1U, 1U, 2U, 16U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 220U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2116U, 2112U, 2108U, 496U, 496U, 497U}}, {5290U, 145U, 1U, 1U, 2U, 17U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 220U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2120U, 2116U, 2112U, 495U, 496U, 496U}}, {5300U, 138U, 1U, 1U, 2U, 18U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 220U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2124U, 2120U, 2116U, 494U, 495U, 496U}}, {5310U, 138U, 1U, 1U, 2U, 19U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 220U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2128U, 2124U, 2120U, 493U, 494U, 495U}}, {5320U, 131U, 1U, 1U, 2U, 20U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 219U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2132U, 2128U, 2124U, 492U, 493U, 494U}}, {5330U, 131U, 1U, 1U, 2U, 21U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 203U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, {2136U, 2132U, 2128U, 491U, 492U, 493U}}, {5340U, 124U, 1U, 1U, 2U, 22U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 202U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, {2140U, 2136U, 2132U, 490U, 491U, 492U}}, {5350U, 124U, 1U, 1U, 2U, 23U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 13U, 0U, 202U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, {2144U, 2140U, 2136U, 489U, 490U, 491U}}, {5360U, 117U, 1U, 1U, 2U, 24U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 13U, 0U, 201U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2148U, 2144U, 2140U, 488U, 489U, 490U}}, {5370U, 117U, 1U, 1U, 2U, 25U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 13U, 0U, 201U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2152U, 2148U, 2144U, 487U, 488U, 489U}}, {5380U, 110U, 1U, 1U, 2U, 26U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 184U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2156U, 2152U, 2148U, 486U, 487U, 488U}}, {5390U, 110U, 1U, 1U, 2U, 27U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 184U, 132U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 132U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2160U, 2156U, 2152U, 485U, 486U, 487U}}, {5400U, 103U, 1U, 1U, 2U, 28U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 184U, 132U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 132U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2164U, 2160U, 2156U, 485U, 485U, 486U}}, {5410U, 103U, 1U, 1U, 2U, 29U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 183U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2168U, 2164U, 2160U, 484U, 485U, 485U}}, {5420U, 97U, 1U, 1U, 2U, 30U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 167U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2172U, 2168U, 2164U, 483U, 484U, 485U}}, {5430U, 97U, 1U, 1U, 2U, 31U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 11U, 0U, 166U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2176U, 2172U, 2168U, 482U, 483U, 484U}}, {5440U, 90U, 1U, 1U, 2U, 32U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 139U, 11U, 0U, 166U, 132U, 0U, 2U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 132U, 0U, 2U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2180U, 2176U, 2172U, 481U, 482U, 483U}}, {5450U, 90U, 1U, 1U, 2U, 33U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 139U, 11U, 0U, 149U, 132U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 132U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2184U, 2180U, 2176U, 480U, 481U, 482U}}, {5460U, 83U, 1U, 1U, 2U, 34U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 139U, 11U, 0U, 149U, 132U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 132U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2188U, 2184U, 2180U, 479U, 480U, 481U}}, {5470U, 83U, 1U, 1U, 2U, 35U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 139U, 11U, 0U, 148U, 115U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2192U, 2188U, 2184U, 478U, 479U, 480U}}, {5480U, 77U, 1U, 1U, 2U, 36U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 132U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2196U, 2192U, 2188U, 477U, 478U, 479U}}, {5490U, 77U, 1U, 1U, 2U, 37U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 131U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2200U, 2196U, 2192U, 477U, 477U, 478U}}, {5500U, 71U, 1U, 1U, 2U, 38U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 130U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2204U, 2200U, 2196U, 476U, 477U, 477U}}, {5510U, 71U, 1U, 1U, 2U, 39U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 130U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2208U, 2204U, 2200U, 475U, 476U, 477U}}, {5520U, 64U, 1U, 1U, 2U, 40U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 114U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2212U, 2208U, 2204U, 474U, 475U, 476U}}, {5530U, 64U, 1U, 1U, 2U, 41U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 9U, 0U, 114U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2216U, 2212U, 2208U, 473U, 474U, 475U}}, {5540U, 58U, 1U, 1U, 2U, 42U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 9U, 0U, 113U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2220U, 2216U, 2212U, 472U, 473U, 474U}}, {5550U, 58U, 1U, 1U, 2U, 43U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 137U, 9U, 0U, 97U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2224U, 2220U, 2216U, 471U, 472U, 473U}}, {5560U, 52U, 1U, 1U, 2U, 44U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 137U, 9U, 0U, 97U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2228U, 2224U, 2220U, 471U, 471U, 472U}}, {5570U, 52U, 1U, 1U, 2U, 45U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 137U, 9U, 0U, 97U, 98U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 98U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2232U, 2228U, 2224U, 470U, 471U, 471U}}, {5580U, 46U, 1U, 1U, 2U, 46U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 137U, 8U, 0U, 96U, 98U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, 98U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, {2236U, 2232U, 2228U, 469U, 470U, 471U}}, {5590U, 46U, 1U, 1U, 2U, 47U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 137U, 8U, 0U, 80U, 97U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, 97U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, {2240U, 2236U, 2232U, 468U, 469U, 470U}}, {5600U, 40U, 1U, 1U, 2U, 48U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 137U, 8U, 0U, 80U, 81U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, 81U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, {2244U, 2240U, 2236U, 467U, 468U, 469U}}, {5610U, 40U, 1U, 1U, 2U, 49U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 137U, 8U, 0U, 80U, 81U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, 81U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, {2248U, 2244U, 2240U, 466U, 467U, 468U}}, {5620U, 33U, 1U, 1U, 2U, 50U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 137U, 8U, 0U, 80U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, {2252U, 2248U, 2244U, 466U, 466U, 467U}}, {5630U, 33U, 1U, 1U, 2U, 51U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 80U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, {2256U, 2252U, 2248U, 465U, 466U, 466U}}, {5640U, 28U, 1U, 1U, 2U, 52U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 64U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, {2260U, 2256U, 2252U, 464U, 465U, 466U}}, {5650U, 28U, 1U, 1U, 2U, 53U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 64U, 64U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, 64U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, {2264U, 2260U, 2256U, 463U, 464U, 465U}}, {5660U, 22U, 1U, 1U, 2U, 54U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 64U, 64U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, 64U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, {2268U, 2264U, 2260U, 462U, 463U, 464U}}, {5670U, 22U, 1U, 1U, 2U, 55U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 64U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, {2272U, 2268U, 2264U, 462U, 462U, 463U}}, {5680U, 16U, 1U, 1U, 2U, 56U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, {2276U, 2272U, 2268U, 461U, 462U, 462U}}, {5690U, 16U, 1U, 1U, 2U, 57U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, {2280U, 2276U, 2272U, 460U, 461U, 462U}}, {5700U, 10U, 1U, 1U, 2U, 58U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, {2284U, 2280U, 2276U, 459U, 460U, 461U}}, {5710U, 10U, 1U, 1U, 2U, 59U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, {2288U, 2284U, 2280U, 458U, 459U, 460U}}, {5720U, 10U, 1U, 1U, 2U, 60U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, {2292U, 2288U, 2284U, 457U, 458U, 459U}}, {5725U, 3U, 1U, 2U, 4U, 121U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, {2294U, 2290U, 2286U, 457U, 458U, 459U}}, {5730U, 10U, 1U, 1U, 2U, 61U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, {2296U, 2292U, 2288U, 457U, 457U, 458U}}, {5735U, 3U, 1U, 2U, 4U, 123U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, {2298U, 2294U, 2290U, 456U, 457U, 458U}}, {5740U, 10U, 1U, 1U, 2U, 62U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, {2300U, 2296U, 2292U, 456U, 457U, 457U}}, {5745U, 254U, 0U, 2U, 4U, 125U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, {2302U, 2298U, 2294U, 456U, 456U, 457U}}, {5750U, 10U, 1U, 1U, 2U, 63U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 109U, 0U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 109U, 0U, {2304U, 2300U, 2296U, 455U, 456U, 457U}}, {5755U, 254U, 0U, 2U, 4U, 127U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 16U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, {2306U, 2302U, 2298U, 455U, 456U, 456U}}, {5760U, 10U, 1U, 1U, 2U, 64U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 134U, 5U, 0U, 16U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, {2308U, 2304U, 2300U, 454U, 455U, 456U}}, {5765U, 248U, 0U, 2U, 4U, 129U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 134U, 5U, 0U, 16U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, {2310U, 2306U, 2302U, 454U, 455U, 456U}}, {5770U, 10U, 1U, 1U, 2U, 65U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 134U, 4U, 0U, 16U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2312U, 2308U, 2304U, 454U, 454U, 455U}}, {5775U, 248U, 0U, 2U, 4U, 131U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 134U, 4U, 0U, 16U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2314U, 2310U, 2306U, 453U, 454U, 455U}}, {5780U, 10U, 1U, 1U, 2U, 66U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 134U, 4U, 0U, 16U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2316U, 2312U, 2308U, 453U, 454U, 454U}}, {5785U, 242U, 0U, 2U, 4U, 133U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2318U, 2314U, 2310U, 452U, 453U, 454U}}, {5790U, 10U, 1U, 1U, 2U, 67U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2320U, 2316U, 2312U, 452U, 453U, 454U}}, {5795U, 242U, 0U, 2U, 4U, 135U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2322U, 2318U, 2314U, 452U, 452U, 453U}}, {5800U, 10U, 1U, 1U, 2U, 68U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2324U, 2320U, 2316U, 451U, 452U, 453U}}, {5805U, 237U, 0U, 2U, 4U, 137U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, {2326U, 2322U, 2318U, 451U, 452U, 452U}}, {5810U, 10U, 1U, 1U, 2U, 69U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, {2328U, 2324U, 2320U, 450U, 451U, 452U}}, {5815U, 237U, 0U, 2U, 4U, 139U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, {2330U, 2326U, 2322U, 450U, 451U, 452U}}, {5820U, 10U, 1U, 1U, 2U, 70U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, {2332U, 2328U, 2324U, 450U, 450U, 451U}}, {5825U, 237U, 0U, 2U, 4U, 141U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 105U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 105U, 0U, {2334U, 2330U, 2326U, 449U, 450U, 451U}}, {5830U, 10U, 1U, 1U, 2U, 71U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 105U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 105U, 0U, {2336U, 2332U, 2328U, 449U, 450U, 450U}}, {5840U, 10U, 1U, 1U, 2U, 72U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, {2340U, 2336U, 2332U, 448U, 449U, 450U}}, {5850U, 224U, 0U, 1U, 2U, 73U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, {2344U, 2340U, 2336U, 447U, 448U, 449U}}, {5860U, 222U, 0U, 1U, 2U, 74U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, {2348U, 2344U, 2340U, 447U, 447U, 448U}}, {5870U, 219U, 0U, 1U, 2U, 75U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, {2352U, 2348U, 2344U, 446U, 447U, 447U}}, {5880U, 216U, 0U, 1U, 2U, 76U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, {2356U, 2352U, 2348U, 445U, 446U, 447U}}, {5890U, 214U, 0U, 1U, 2U, 77U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, {2360U, 2356U, 2352U, 444U, 445U, 446U}}, {5900U, 211U, 0U, 1U, 2U, 78U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, {2364U, 2360U, 2356U, 444U, 444U, 445U}}, {5910U, 214U, 0U, 1U, 2U, 79U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, {2368U, 2364U, 2360U, 443U, 444U, 444U}}, {2412U, 0U, 1U, 3U, 9U, 108U, 8U, 8U, 4U, 22U, 1U, 4U, 4U, 4U, 143U, 48U, 0U, 0U, 0U, 120U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, 0U, 120U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, {969U, 965U, 961U, 1082U, 1087U, 1091U}}, {2417U, 0U, 1U, 3U, 9U, 113U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 120U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, 0U, 120U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, {971U, 967U, 963U, 1080U, 1085U, 1089U}}, {2422U, 0U, 1U, 3U, 9U, 118U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 103U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, 0U, 103U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, {973U, 969U, 965U, 1078U, 1082U, 1087U}}, {2427U, 0U, 1U, 3U, 9U, 123U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 87U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, 0U, 87U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, {975U, 971U, 967U, 1076U, 1080U, 1085U}}, {2432U, 0U, 1U, 3U, 9U, 128U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 86U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, 0U, 86U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, {977U, 973U, 969U, 1073U, 1078U, 1082U}}, {2437U, 0U, 1U, 3U, 9U, 133U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 70U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, 0U, 70U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, {979U, 975U, 971U, 1071U, 1076U, 1080U}}, {2442U, 0U, 1U, 3U, 9U, 138U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 69U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 10U, 0U, 69U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 10U, {981U, 977U, 973U, 1069U, 1073U, 1078U}}, {2447U, 0U, 1U, 3U, 9U, 143U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 52U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, 0U, 52U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, {983U, 979U, 975U, 1067U, 1071U, 1076U}}, {2452U, 0U, 1U, 3U, 9U, 148U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 35U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, 0U, 35U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, {985U, 981U, 977U, 1065U, 1069U, 1073U}}, {2457U, 0U, 1U, 3U, 9U, 153U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 18U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, 0U, 18U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, {987U, 983U, 979U, 1063U, 1067U, 1071U}}, {2462U, 0U, 1U, 3U, 9U, 158U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 2U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, 0U, 2U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, {989U, 985U, 981U, 1060U, 1065U, 1069U}}, {2467U, 0U, 1U, 3U, 9U, 163U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 1U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, 0U, 1U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, {991U, 987U, 983U, 1058U, 1063U, 1067U}}, {2472U, 0U, 1U, 3U, 9U, 168U, 8U, 8U, 4U, 22U, 1U, 7U, 7U, 7U, 143U, 48U, 0U, 0U, 0U, 1U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, 0U, 1U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, {993U, 989U, 985U, 1056U, 1060U, 1065U}}, {2484U, 255U, 1U, 3U, 9U, 180U, 8U, 8U, 4U, 22U, 1U, 7U, 7U, 7U, 143U, 32U, 0U, 0U, 0U, 0U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, 0U, 0U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, {998U, 994U, 990U, 1051U, 1055U, 1060U}}}; static struct b43_nphy_channeltab_entry_rev3 const b43_nphy_channeltab_radio_rev7_9[124U] = { {4920U, 255U, 1U, 1U, 1U, 236U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 255U, 0U, 11U, 0U, 112U, 0U, 15U, 0U, 159U, 0U, 255U, 0U, 11U, 0U, 112U, 0U, 15U, 0U, 111U, 0U, {1972U, 1968U, 1964U, 532U, 533U, 534U}}, {4930U, 255U, 1U, 1U, 1U, 237U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 255U, 0U, 11U, 0U, 112U, 0U, 14U, 0U, 159U, 0U, 255U, 0U, 11U, 0U, 112U, 0U, 14U, 0U, 111U, 0U, {1976U, 1972U, 1968U, 531U, 532U, 533U}}, {4940U, 255U, 1U, 1U, 1U, 238U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 255U, 0U, 11U, 0U, 112U, 0U, 14U, 0U, 159U, 0U, 255U, 0U, 11U, 0U, 112U, 0U, 14U, 0U, 111U, 0U, {1980U, 1976U, 1972U, 530U, 531U, 532U}}, {4950U, 255U, 1U, 1U, 1U, 239U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 255U, 0U, 11U, 0U, 112U, 0U, 14U, 0U, 159U, 0U, 255U, 0U, 11U, 0U, 112U, 0U, 14U, 0U, 111U, 0U, {1984U, 1980U, 1976U, 529U, 530U, 531U}}, {4960U, 255U, 1U, 1U, 1U, 240U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 10U, 0U, 112U, 0U, 14U, 0U, 159U, 0U, 255U, 0U, 10U, 0U, 112U, 0U, 14U, 0U, 111U, 0U, {1988U, 1984U, 1980U, 527U, 529U, 530U}}, {4970U, 255U, 1U, 1U, 1U, 241U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 159U, 0U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 111U, 0U, {1992U, 1988U, 1984U, 526U, 527U, 529U}}, {4980U, 255U, 1U, 1U, 1U, 242U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 159U, 0U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 111U, 0U, {1996U, 1992U, 1988U, 525U, 526U, 527U}}, {4990U, 255U, 1U, 1U, 1U, 243U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 159U, 0U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 111U, 0U, {2000U, 1996U, 1992U, 524U, 525U, 526U}}, {5000U, 255U, 1U, 1U, 1U, 244U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 159U, 0U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 111U, 0U, {2004U, 2000U, 1996U, 523U, 524U, 525U}}, {5010U, 255U, 1U, 1U, 1U, 245U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 159U, 0U, 255U, 0U, 10U, 0U, 112U, 0U, 13U, 0U, 111U, 0U, {2008U, 2004U, 2000U, 522U, 523U, 524U}}, {5020U, 247U, 1U, 1U, 1U, 246U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 9U, 0U, 112U, 0U, 13U, 0U, 159U, 0U, 255U, 0U, 9U, 0U, 112U, 0U, 13U, 0U, 111U, 0U, {2012U, 2008U, 2004U, 521U, 522U, 523U}}, {5030U, 247U, 1U, 1U, 1U, 247U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 255U, 0U, 9U, 0U, 112U, 0U, 12U, 0U, 159U, 0U, 255U, 0U, 9U, 0U, 112U, 0U, 12U, 0U, 111U, 0U, {2016U, 2012U, 2008U, 520U, 521U, 522U}}, {5040U, 239U, 1U, 1U, 1U, 248U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 112U, 0U, 12U, 0U, 159U, 0U, 254U, 0U, 9U, 0U, 112U, 0U, 12U, 0U, 111U, 0U, {2020U, 2016U, 2012U, 519U, 520U, 521U}}, {5050U, 239U, 1U, 1U, 1U, 249U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 112U, 0U, 12U, 0U, 159U, 0U, 254U, 0U, 9U, 0U, 112U, 0U, 12U, 0U, 111U, 0U, {2024U, 2020U, 2016U, 518U, 519U, 520U}}, {5060U, 230U, 1U, 1U, 1U, 250U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 253U, 0U, 9U, 0U, 112U, 0U, 12U, 0U, 159U, 0U, 253U, 0U, 9U, 0U, 112U, 0U, 12U, 0U, 111U, 0U, {2028U, 2024U, 2020U, 517U, 518U, 519U}}, {5070U, 230U, 1U, 1U, 1U, 251U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 253U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 159U, 0U, 253U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 111U, 0U, {2032U, 2028U, 2024U, 516U, 517U, 518U}}, {5080U, 222U, 1U, 1U, 1U, 252U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 159U, 0U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 111U, 0U, {2036U, 2032U, 2028U, 515U, 516U, 517U}}, {5090U, 222U, 1U, 1U, 1U, 253U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 159U, 0U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 111U, 0U, {2040U, 2036U, 2032U, 514U, 515U, 516U}}, {5100U, 214U, 1U, 1U, 1U, 254U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 159U, 0U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 111U, 0U, {2044U, 2040U, 2036U, 513U, 514U, 515U}}, {5110U, 214U, 1U, 1U, 1U, 255U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 159U, 0U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 111U, 0U, {2048U, 2044U, 2040U, 512U, 513U, 514U}}, {5120U, 206U, 1U, 1U, 2U, 0U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 159U, 0U, 252U, 0U, 8U, 0U, 112U, 0U, 11U, 0U, 111U, 0U, {2052U, 2048U, 2044U, 511U, 512U, 513U}}, {5130U, 206U, 1U, 1U, 2U, 1U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 251U, 0U, 8U, 0U, 112U, 0U, 10U, 0U, 159U, 0U, 251U, 0U, 8U, 0U, 112U, 0U, 10U, 0U, 111U, 0U, {2056U, 2052U, 2048U, 510U, 511U, 512U}}, {5140U, 198U, 1U, 1U, 2U, 2U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 251U, 0U, 7U, 0U, 112U, 0U, 10U, 0U, 159U, 0U, 251U, 0U, 7U, 0U, 112U, 0U, 10U, 0U, 111U, 0U, {2060U, 2056U, 2052U, 509U, 510U, 511U}}, {5160U, 190U, 1U, 1U, 2U, 4U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 251U, 0U, 7U, 0U, 112U, 0U, 9U, 0U, 158U, 0U, 251U, 0U, 7U, 0U, 112U, 0U, 9U, 0U, 110U, 0U, {2068U, 2064U, 2060U, 507U, 508U, 509U}}, {5170U, 190U, 1U, 1U, 2U, 5U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 251U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 158U, 0U, 251U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 110U, 0U, {2072U, 2068U, 2064U, 506U, 507U, 508U}}, {5180U, 182U, 1U, 1U, 2U, 6U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 158U, 0U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 110U, 0U, {2076U, 2072U, 2068U, 505U, 506U, 507U}}, {5190U, 182U, 1U, 1U, 2U, 7U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 158U, 0U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 110U, 0U, {2080U, 2076U, 2072U, 504U, 505U, 506U}}, {5200U, 175U, 1U, 1U, 2U, 8U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 158U, 0U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 110U, 0U, {2084U, 2080U, 2076U, 503U, 504U, 505U}}, {5210U, 175U, 1U, 1U, 2U, 9U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 158U, 0U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 110U, 0U, {2088U, 2084U, 2080U, 502U, 503U, 504U}}, {5220U, 167U, 1U, 1U, 2U, 10U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 142U, 15U, 0U, 254U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 158U, 0U, 250U, 0U, 6U, 0U, 112U, 0U, 9U, 0U, 110U, 0U, {2092U, 2088U, 2084U, 501U, 502U, 503U}}, {5230U, 167U, 1U, 1U, 2U, 11U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 142U, 15U, 0U, 238U, 234U, 0U, 6U, 0U, 112U, 0U, 8U, 0U, 158U, 0U, 234U, 0U, 6U, 0U, 112U, 0U, 8U, 0U, 110U, 0U, {2096U, 2092U, 2088U, 500U, 501U, 502U}}, {5240U, 160U, 1U, 1U, 2U, 12U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 142U, 15U, 0U, 238U, 233U, 0U, 5U, 0U, 112U, 0U, 8U, 0U, 157U, 0U, 233U, 0U, 5U, 0U, 112U, 0U, 8U, 0U, 109U, 0U, {2100U, 2096U, 2092U, 499U, 500U, 501U}}, {5250U, 160U, 1U, 1U, 2U, 13U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 142U, 15U, 0U, 237U, 233U, 0U, 5U, 0U, 112U, 0U, 8U, 0U, 157U, 0U, 233U, 0U, 5U, 0U, 112U, 0U, 8U, 0U, 109U, 0U, {2104U, 2100U, 2096U, 498U, 499U, 500U}}, {5260U, 152U, 1U, 1U, 2U, 14U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 142U, 14U, 0U, 237U, 217U, 0U, 5U, 0U, 112U, 0U, 8U, 0U, 157U, 0U, 217U, 0U, 5U, 0U, 112U, 0U, 8U, 0U, 109U, 0U, {2108U, 2104U, 2100U, 497U, 498U, 499U}}, {5270U, 152U, 1U, 1U, 2U, 15U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 142U, 14U, 0U, 237U, 216U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 156U, 0U, 216U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 108U, 0U, {2112U, 2108U, 2104U, 496U, 497U, 498U}}, {5280U, 145U, 1U, 1U, 2U, 16U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 220U, 200U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 156U, 0U, 200U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 108U, 0U, {2116U, 2112U, 2108U, 496U, 496U, 497U}}, {5290U, 145U, 1U, 1U, 2U, 17U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 220U, 200U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 156U, 0U, 200U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 108U, 0U, {2120U, 2116U, 2112U, 495U, 496U, 496U}}, {5300U, 138U, 1U, 1U, 2U, 18U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 220U, 200U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 156U, 0U, 200U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 108U, 0U, {2124U, 2120U, 2116U, 494U, 495U, 496U}}, {5310U, 138U, 1U, 1U, 2U, 19U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 220U, 200U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 156U, 0U, 200U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 108U, 0U, {2128U, 2124U, 2120U, 493U, 494U, 495U}}, {5320U, 131U, 1U, 1U, 2U, 20U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 219U, 184U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 156U, 0U, 184U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 108U, 0U, {2132U, 2128U, 2124U, 492U, 493U, 494U}}, {5330U, 131U, 1U, 1U, 2U, 21U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 203U, 183U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 155U, 0U, 183U, 0U, 4U, 0U, 112U, 0U, 7U, 0U, 107U, 0U, {2136U, 2132U, 2128U, 491U, 492U, 493U}}, {5340U, 124U, 1U, 1U, 2U, 22U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 202U, 183U, 0U, 3U, 0U, 112U, 0U, 7U, 0U, 155U, 0U, 183U, 0U, 3U, 0U, 112U, 0U, 7U, 0U, 107U, 0U, {2140U, 2136U, 2132U, 490U, 491U, 492U}}, {5350U, 124U, 1U, 1U, 2U, 23U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 13U, 0U, 202U, 167U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 155U, 0U, 167U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 107U, 0U, {2144U, 2140U, 2136U, 489U, 490U, 491U}}, {5360U, 117U, 1U, 1U, 2U, 24U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 13U, 0U, 201U, 166U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 155U, 0U, 166U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 107U, 0U, {2148U, 2144U, 2140U, 488U, 489U, 490U}}, {5370U, 117U, 1U, 1U, 2U, 25U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 13U, 0U, 201U, 166U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 155U, 0U, 166U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 123U, 0U, {2152U, 2148U, 2144U, 487U, 488U, 489U}}, {5380U, 110U, 1U, 1U, 2U, 26U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 184U, 150U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 154U, 0U, 150U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 122U, 0U, {2156U, 2152U, 2148U, 486U, 487U, 488U}}, {5390U, 110U, 1U, 1U, 2U, 27U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 184U, 149U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 154U, 0U, 149U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 122U, 0U, {2160U, 2156U, 2152U, 485U, 486U, 487U}}, {5400U, 103U, 1U, 1U, 2U, 28U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 184U, 149U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 154U, 0U, 149U, 0U, 3U, 0U, 112U, 0U, 6U, 0U, 122U, 0U, {2164U, 2160U, 2156U, 485U, 485U, 486U}}, {5410U, 103U, 1U, 1U, 2U, 29U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 183U, 149U, 0U, 3U, 0U, 112U, 0U, 5U, 0U, 154U, 0U, 149U, 0U, 3U, 0U, 112U, 0U, 5U, 0U, 122U, 0U, {2168U, 2164U, 2160U, 484U, 485U, 485U}}, {5420U, 97U, 1U, 1U, 2U, 30U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 167U, 149U, 0U, 3U, 0U, 112U, 0U, 5U, 0U, 154U, 0U, 149U, 0U, 3U, 0U, 112U, 0U, 5U, 0U, 122U, 0U, {2172U, 2168U, 2164U, 483U, 484U, 485U}}, {5430U, 97U, 1U, 1U, 2U, 31U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 11U, 0U, 166U, 133U, 0U, 2U, 0U, 112U, 0U, 5U, 0U, 153U, 0U, 133U, 0U, 2U, 0U, 112U, 0U, 5U, 0U, 121U, 0U, {2176U, 2172U, 2168U, 482U, 483U, 484U}}, {5440U, 90U, 1U, 1U, 2U, 32U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 139U, 11U, 0U, 166U, 132U, 0U, 2U, 0U, 112U, 0U, 5U, 0U, 153U, 0U, 132U, 0U, 2U, 0U, 112U, 0U, 5U, 0U, 121U, 0U, {2180U, 2176U, 2172U, 481U, 482U, 483U}}, {5450U, 90U, 1U, 1U, 2U, 33U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 139U, 11U, 0U, 149U, 132U, 0U, 2U, 0U, 112U, 0U, 5U, 0U, 153U, 0U, 132U, 0U, 2U, 0U, 112U, 0U, 5U, 0U, 121U, 0U, {2184U, 2180U, 2176U, 480U, 481U, 482U}}, {5460U, 83U, 1U, 1U, 2U, 34U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 139U, 11U, 0U, 149U, 132U, 0U, 2U, 0U, 112U, 0U, 4U, 0U, 153U, 0U, 132U, 0U, 2U, 0U, 112U, 0U, 4U, 0U, 121U, 0U, {2188U, 2184U, 2180U, 479U, 480U, 481U}}, {5470U, 83U, 1U, 1U, 2U, 35U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 139U, 11U, 0U, 148U, 116U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 153U, 0U, 116U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 121U, 0U, {2192U, 2188U, 2184U, 478U, 479U, 480U}}, {5480U, 77U, 1U, 1U, 2U, 36U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 132U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 152U, 0U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 120U, 0U, {2196U, 2192U, 2188U, 477U, 478U, 479U}}, {5490U, 77U, 1U, 1U, 2U, 37U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 131U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 152U, 0U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 120U, 0U, {2200U, 2196U, 2192U, 477U, 477U, 478U}}, {5500U, 71U, 1U, 1U, 2U, 38U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 130U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 152U, 0U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 120U, 0U, {2204U, 2200U, 2196U, 476U, 477U, 477U}}, {5510U, 71U, 1U, 1U, 2U, 39U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 130U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 152U, 0U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 120U, 0U, {2208U, 2204U, 2200U, 475U, 476U, 477U}}, {5520U, 64U, 1U, 1U, 2U, 40U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 114U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 152U, 0U, 115U, 0U, 1U, 0U, 112U, 0U, 4U, 0U, 120U, 0U, {2212U, 2208U, 2204U, 474U, 475U, 476U}}, {5530U, 64U, 1U, 1U, 2U, 41U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 9U, 0U, 114U, 99U, 0U, 1U, 0U, 112U, 0U, 3U, 0U, 152U, 0U, 99U, 0U, 1U, 0U, 112U, 0U, 3U, 0U, 120U, 0U, {2216U, 2212U, 2208U, 473U, 474U, 475U}}, {5540U, 58U, 1U, 1U, 2U, 42U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 9U, 0U, 113U, 98U, 0U, 0U, 0U, 112U, 0U, 3U, 0U, 151U, 0U, 98U, 0U, 0U, 0U, 112U, 0U, 3U, 0U, 119U, 0U, {2220U, 2216U, 2212U, 472U, 473U, 474U}}, {5550U, 58U, 1U, 1U, 2U, 43U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 137U, 9U, 0U, 97U, 98U, 0U, 0U, 0U, 112U, 0U, 3U, 0U, 151U, 0U, 98U, 0U, 0U, 0U, 112U, 0U, 3U, 0U, 119U, 0U, {2224U, 2220U, 2216U, 471U, 472U, 473U}}, {5560U, 52U, 1U, 1U, 2U, 44U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 137U, 9U, 0U, 97U, 98U, 0U, 0U, 0U, 112U, 0U, 3U, 0U, 151U, 0U, 98U, 0U, 0U, 0U, 112U, 0U, 3U, 0U, 119U, 0U, {2228U, 2224U, 2220U, 471U, 471U, 472U}}, {5570U, 52U, 1U, 1U, 2U, 45U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 137U, 9U, 0U, 97U, 82U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 150U, 0U, 82U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 118U, 0U, {2232U, 2228U, 2224U, 470U, 471U, 471U}}, {5580U, 46U, 1U, 1U, 2U, 46U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 137U, 8U, 0U, 96U, 82U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 150U, 0U, 82U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 134U, 0U, {2236U, 2232U, 2228U, 469U, 470U, 471U}}, {5590U, 46U, 1U, 1U, 2U, 47U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 137U, 8U, 0U, 80U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 150U, 0U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 134U, 0U, {2240U, 2236U, 2232U, 468U, 469U, 470U}}, {5600U, 40U, 1U, 1U, 2U, 48U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 137U, 8U, 0U, 80U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 150U, 0U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 134U, 0U, {2244U, 2240U, 2236U, 467U, 468U, 469U}}, {5610U, 40U, 1U, 1U, 2U, 49U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 137U, 8U, 0U, 80U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 150U, 0U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 134U, 0U, {2248U, 2244U, 2240U, 466U, 467U, 468U}}, {5620U, 33U, 1U, 1U, 2U, 50U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 137U, 8U, 0U, 80U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 150U, 0U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 134U, 0U, {2252U, 2248U, 2244U, 466U, 466U, 467U}}, {5630U, 33U, 1U, 1U, 2U, 51U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 80U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 150U, 0U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 134U, 0U, {2256U, 2252U, 2248U, 465U, 466U, 466U}}, {5640U, 28U, 1U, 1U, 2U, 52U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 64U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 149U, 0U, 81U, 0U, 0U, 0U, 112U, 0U, 2U, 0U, 133U, 0U, {2260U, 2256U, 2252U, 464U, 465U, 466U}}, {5650U, 28U, 1U, 1U, 2U, 53U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 64U, 80U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 149U, 0U, 80U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 133U, 0U, {2264U, 2260U, 2256U, 463U, 464U, 465U}}, {5660U, 22U, 1U, 1U, 2U, 54U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 64U, 80U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 149U, 0U, 80U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 133U, 0U, {2268U, 2264U, 2260U, 462U, 463U, 464U}}, {5670U, 22U, 1U, 1U, 2U, 55U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 64U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 132U, 0U, {2272U, 2268U, 2264U, 462U, 462U, 463U}}, {5680U, 16U, 1U, 1U, 2U, 56U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 132U, 0U, {2276U, 2272U, 2268U, 461U, 462U, 462U}}, {5690U, 16U, 1U, 1U, 2U, 57U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, {2280U, 2276U, 2272U, 460U, 461U, 462U}}, {5700U, 10U, 1U, 1U, 2U, 58U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, {2284U, 2280U, 2276U, 459U, 460U, 461U}}, {5710U, 10U, 1U, 1U, 2U, 59U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, {2288U, 2284U, 2280U, 458U, 459U, 460U}}, {5720U, 10U, 1U, 1U, 2U, 60U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, {2292U, 2288U, 2284U, 457U, 458U, 459U}}, {5725U, 3U, 1U, 2U, 4U, 121U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, 64U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, {2294U, 2290U, 2286U, 457U, 458U, 459U}}, {5730U, 10U, 1U, 1U, 2U, 61U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 48U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, 48U, 0U, 0U, 0U, 112U, 0U, 1U, 0U, 148U, 0U, {2296U, 2292U, 2288U, 457U, 457U, 458U}}, {5735U, 3U, 1U, 2U, 4U, 123U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, {2298U, 2294U, 2290U, 456U, 457U, 458U}}, {5740U, 10U, 1U, 1U, 2U, 62U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, {2300U, 2296U, 2292U, 456U, 457U, 457U}}, {5745U, 254U, 0U, 2U, 4U, 125U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, {2302U, 2298U, 2294U, 456U, 456U, 457U}}, {5750U, 10U, 1U, 1U, 2U, 63U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, {2304U, 2300U, 2296U, 455U, 456U, 457U}}, {5755U, 254U, 0U, 2U, 4U, 127U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 16U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, 48U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, {2306U, 2302U, 2298U, 455U, 456U, 456U}}, {5760U, 10U, 1U, 1U, 2U, 64U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 134U, 5U, 0U, 16U, 32U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, 32U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 147U, 0U, {2308U, 2304U, 2300U, 454U, 455U, 456U}}, {5765U, 248U, 0U, 2U, 4U, 129U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 134U, 5U, 0U, 16U, 32U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 32U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, {2310U, 2306U, 2302U, 454U, 455U, 456U}}, {5770U, 10U, 1U, 1U, 2U, 65U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 134U, 4U, 0U, 16U, 32U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 32U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, {2312U, 2308U, 2304U, 454U, 454U, 455U}}, {5775U, 248U, 0U, 2U, 4U, 131U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 134U, 4U, 0U, 16U, 32U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 32U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, {2314U, 2310U, 2306U, 453U, 454U, 455U}}, {5780U, 10U, 1U, 1U, 2U, 66U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 134U, 4U, 0U, 16U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, {2316U, 2312U, 2308U, 453U, 454U, 454U}}, {5785U, 242U, 0U, 2U, 4U, 133U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, {2318U, 2314U, 2310U, 452U, 453U, 454U}}, {5790U, 10U, 1U, 1U, 2U, 67U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, {2320U, 2316U, 2312U, 452U, 453U, 454U}}, {5795U, 242U, 0U, 2U, 4U, 135U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, {2322U, 2318U, 2314U, 452U, 452U, 453U}}, {5800U, 10U, 1U, 1U, 2U, 68U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, {2324U, 2320U, 2316U, 451U, 452U, 453U}}, {5805U, 237U, 0U, 2U, 4U, 137U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, {2326U, 2322U, 2318U, 451U, 452U, 452U}}, {5810U, 10U, 1U, 1U, 2U, 69U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, {2328U, 2324U, 2320U, 450U, 451U, 452U}}, {5815U, 237U, 0U, 2U, 4U, 139U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, {2330U, 2326U, 2322U, 450U, 451U, 452U}}, {5820U, 10U, 1U, 1U, 2U, 70U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, {2332U, 2328U, 2324U, 450U, 450U, 451U}}, {5825U, 237U, 0U, 2U, 4U, 141U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, {2334U, 2330U, 2326U, 449U, 450U, 451U}}, {5830U, 10U, 1U, 1U, 2U, 71U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, {2336U, 2332U, 2328U, 449U, 450U, 450U}}, {5840U, 10U, 1U, 1U, 2U, 72U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 16U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, {2340U, 2336U, 2332U, 448U, 449U, 450U}}, {5850U, 224U, 0U, 1U, 2U, 73U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, {2344U, 2340U, 2336U, 447U, 448U, 449U}}, {5860U, 222U, 0U, 1U, 2U, 74U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 146U, 0U, {2348U, 2344U, 2340U, 447U, 447U, 448U}}, {5870U, 219U, 0U, 1U, 2U, 75U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 145U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 145U, 0U, {2352U, 2348U, 2344U, 446U, 447U, 447U}}, {5880U, 216U, 0U, 1U, 2U, 76U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 145U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 145U, 0U, {2356U, 2352U, 2348U, 445U, 446U, 447U}}, {5890U, 214U, 0U, 1U, 2U, 77U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 145U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 145U, 0U, {2360U, 2356U, 2352U, 444U, 445U, 446U}}, {5900U, 211U, 0U, 1U, 2U, 78U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 145U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 145U, 0U, {2364U, 2360U, 2356U, 444U, 444U, 445U}}, {5910U, 214U, 0U, 1U, 2U, 79U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 145U, 0U, 0U, 0U, 0U, 0U, 112U, 0U, 0U, 0U, 145U, 0U, {2368U, 2364U, 2360U, 443U, 444U, 444U}}, {2412U, 0U, 1U, 3U, 9U, 108U, 8U, 8U, 4U, 22U, 1U, 4U, 4U, 4U, 143U, 48U, 0U, 0U, 0U, 137U, 0U, 3U, 0U, 112U, 0U, 15U, 0U, 11U, 0U, 137U, 0U, 3U, 0U, 112U, 0U, 15U, 0U, 11U, {969U, 965U, 961U, 1082U, 1087U, 1091U}}, {2417U, 0U, 1U, 3U, 9U, 113U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 137U, 0U, 3U, 0U, 112U, 0U, 15U, 0U, 10U, 0U, 137U, 0U, 3U, 0U, 112U, 0U, 15U, 0U, 10U, {971U, 967U, 963U, 1080U, 1085U, 1089U}}, {2422U, 0U, 1U, 3U, 9U, 118U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 137U, 0U, 3U, 0U, 112U, 0U, 15U, 0U, 10U, 0U, 137U, 0U, 3U, 0U, 112U, 0U, 15U, 0U, 10U, {973U, 969U, 965U, 1078U, 1082U, 1087U}}, {2427U, 0U, 1U, 3U, 9U, 123U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 120U, 0U, 3U, 0U, 112U, 0U, 14U, 0U, 10U, 0U, 120U, 0U, 3U, 0U, 112U, 0U, 14U, 0U, 10U, {975U, 971U, 967U, 1076U, 1080U, 1085U}}, {2432U, 0U, 1U, 3U, 9U, 128U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 119U, 0U, 3U, 0U, 112U, 0U, 14U, 0U, 10U, 0U, 119U, 0U, 3U, 0U, 112U, 0U, 14U, 0U, 10U, {977U, 973U, 969U, 1073U, 1078U, 1082U}}, {2437U, 0U, 1U, 3U, 9U, 133U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 118U, 0U, 3U, 0U, 112U, 0U, 14U, 0U, 10U, 0U, 118U, 0U, 3U, 0U, 112U, 0U, 14U, 0U, 10U, {979U, 975U, 971U, 1071U, 1076U, 1080U}}, {2442U, 0U, 1U, 3U, 9U, 138U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 102U, 0U, 3U, 0U, 112U, 0U, 14U, 0U, 10U, 0U, 102U, 0U, 3U, 0U, 112U, 0U, 14U, 0U, 10U, {981U, 977U, 973U, 1069U, 1073U, 1078U}}, {2447U, 0U, 1U, 3U, 9U, 143U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 85U, 0U, 2U, 0U, 112U, 0U, 14U, 0U, 9U, 0U, 85U, 0U, 2U, 0U, 112U, 0U, 14U, 0U, 9U, {983U, 979U, 975U, 1067U, 1071U, 1076U}}, {2452U, 0U, 1U, 3U, 9U, 148U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 69U, 0U, 2U, 0U, 112U, 0U, 14U, 0U, 9U, 0U, 69U, 0U, 2U, 0U, 112U, 0U, 14U, 0U, 9U, {985U, 981U, 977U, 1065U, 1069U, 1073U}}, {2457U, 0U, 1U, 3U, 9U, 153U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 52U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 9U, 0U, 52U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 9U, {987U, 983U, 979U, 1063U, 1067U, 1071U}}, {2462U, 0U, 1U, 3U, 9U, 158U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 51U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 9U, 0U, 51U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 9U, {989U, 985U, 981U, 1060U, 1065U, 1069U}}, {2467U, 0U, 1U, 3U, 9U, 163U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 34U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 8U, 0U, 34U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 8U, {991U, 987U, 983U, 1058U, 1063U, 1067U}}, {2472U, 0U, 1U, 3U, 9U, 168U, 8U, 8U, 4U, 22U, 1U, 7U, 7U, 7U, 143U, 48U, 0U, 0U, 0U, 17U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 8U, 0U, 17U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 8U, {993U, 989U, 985U, 1056U, 1060U, 1065U}}, {2484U, 255U, 1U, 3U, 9U, 180U, 8U, 8U, 4U, 22U, 1U, 7U, 7U, 7U, 143U, 32U, 0U, 0U, 0U, 0U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 8U, 0U, 0U, 0U, 2U, 0U, 112U, 0U, 13U, 0U, 8U, {998U, 994U, 990U, 1051U, 1055U, 1060U}}}; static struct b43_nphy_channeltab_entry_rev3 const b43_nphy_channeltab_radio_rev8[124U] = { {4920U, 255U, 1U, 1U, 1U, 236U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1972U, 1968U, 1964U, 532U, 533U, 534U}}, {4930U, 255U, 1U, 1U, 1U, 237U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1976U, 1972U, 1968U, 531U, 532U, 533U}}, {4940U, 255U, 1U, 1U, 1U, 238U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1980U, 1976U, 1972U, 530U, 531U, 532U}}, {4950U, 255U, 1U, 1U, 1U, 239U, 5U, 5U, 4U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1984U, 1980U, 1976U, 529U, 530U, 531U}}, {4960U, 255U, 1U, 1U, 1U, 240U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1988U, 1984U, 1980U, 527U, 529U, 530U}}, {4970U, 255U, 1U, 1U, 1U, 241U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1992U, 1988U, 1984U, 526U, 527U, 529U}}, {4980U, 255U, 1U, 1U, 1U, 242U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1996U, 1992U, 1988U, 525U, 526U, 527U}}, {4990U, 255U, 1U, 1U, 1U, 243U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2000U, 1996U, 1992U, 524U, 525U, 526U}}, {5000U, 255U, 1U, 1U, 1U, 244U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2004U, 2000U, 1996U, 523U, 524U, 525U}}, {5010U, 255U, 1U, 1U, 1U, 245U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2008U, 2004U, 2000U, 522U, 523U, 524U}}, {5020U, 247U, 1U, 1U, 1U, 246U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2012U, 2008U, 2004U, 521U, 522U, 523U}}, {5030U, 247U, 1U, 1U, 1U, 247U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2016U, 2012U, 2008U, 520U, 521U, 522U}}, {5040U, 239U, 1U, 1U, 1U, 248U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2020U, 2016U, 2012U, 519U, 520U, 521U}}, {5050U, 239U, 1U, 1U, 1U, 249U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2024U, 2020U, 2016U, 518U, 519U, 520U}}, {5060U, 230U, 1U, 1U, 1U, 250U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2028U, 2024U, 2020U, 517U, 518U, 519U}}, {5070U, 230U, 1U, 1U, 1U, 251U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2032U, 2028U, 2024U, 516U, 517U, 518U}}, {5080U, 222U, 1U, 1U, 1U, 252U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2036U, 2032U, 2028U, 515U, 516U, 517U}}, {5090U, 222U, 1U, 1U, 1U, 253U, 5U, 5U, 4U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2040U, 2036U, 2032U, 514U, 515U, 516U}}, {5100U, 214U, 1U, 1U, 1U, 254U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 253U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 253U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2044U, 2040U, 2036U, 513U, 514U, 515U}}, {5110U, 214U, 1U, 1U, 1U, 255U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2048U, 2044U, 2040U, 512U, 513U, 514U}}, {5120U, 206U, 1U, 1U, 2U, 0U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2052U, 2048U, 2044U, 511U, 512U, 513U}}, {5130U, 206U, 1U, 1U, 2U, 1U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2056U, 2052U, 2048U, 510U, 511U, 512U}}, {5140U, 198U, 1U, 1U, 2U, 2U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 251U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 251U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2060U, 2056U, 2052U, 509U, 510U, 511U}}, {5160U, 190U, 1U, 1U, 2U, 4U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 250U, 0U, 7U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, 250U, 0U, 7U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, {2068U, 2064U, 2060U, 507U, 508U, 509U}}, {5170U, 190U, 1U, 1U, 2U, 5U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 250U, 0U, 7U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, 250U, 0U, 7U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, {2072U, 2068U, 2064U, 506U, 507U, 508U}}, {5180U, 182U, 1U, 1U, 2U, 6U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 249U, 0U, 6U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, 249U, 0U, 6U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, {2076U, 2072U, 2068U, 505U, 506U, 507U}}, {5190U, 182U, 1U, 1U, 2U, 7U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 249U, 0U, 6U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 249U, 0U, 6U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2080U, 2076U, 2072U, 504U, 505U, 506U}}, {5200U, 175U, 1U, 1U, 2U, 8U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 249U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 249U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2084U, 2080U, 2076U, 503U, 504U, 505U}}, {5210U, 175U, 1U, 1U, 2U, 9U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 249U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 249U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2088U, 2084U, 2080U, 502U, 503U, 504U}}, {5220U, 167U, 1U, 1U, 2U, 10U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 142U, 15U, 0U, 254U, 216U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 216U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2092U, 2088U, 2084U, 501U, 502U, 503U}}, {5230U, 167U, 1U, 1U, 2U, 11U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 142U, 15U, 0U, 238U, 216U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 216U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2096U, 2092U, 2088U, 500U, 501U, 502U}}, {5240U, 160U, 1U, 1U, 2U, 12U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 142U, 15U, 0U, 238U, 200U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 200U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2100U, 2096U, 2092U, 499U, 500U, 501U}}, {5250U, 160U, 1U, 1U, 2U, 13U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 142U, 15U, 0U, 237U, 199U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 199U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2104U, 2100U, 2096U, 498U, 499U, 500U}}, {5260U, 152U, 1U, 1U, 2U, 14U, 5U, 5U, 4U, 12U, 1U, 2U, 2U, 2U, 142U, 14U, 0U, 237U, 199U, 0U, 4U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 199U, 0U, 4U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2108U, 2104U, 2100U, 497U, 498U, 499U}}, {5270U, 152U, 1U, 1U, 2U, 15U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 142U, 14U, 0U, 237U, 199U, 0U, 4U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 199U, 0U, 4U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2112U, 2108U, 2104U, 496U, 497U, 498U}}, {5280U, 145U, 1U, 1U, 2U, 16U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 220U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2116U, 2112U, 2108U, 496U, 496U, 497U}}, {5290U, 145U, 1U, 1U, 2U, 17U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 220U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2120U, 2116U, 2112U, 495U, 496U, 496U}}, {5300U, 138U, 1U, 1U, 2U, 18U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 220U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2124U, 2120U, 2116U, 494U, 495U, 496U}}, {5310U, 138U, 1U, 1U, 2U, 19U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 220U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2128U, 2124U, 2120U, 493U, 494U, 495U}}, {5320U, 131U, 1U, 1U, 2U, 20U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 219U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2132U, 2128U, 2124U, 492U, 493U, 494U}}, {5330U, 131U, 1U, 1U, 2U, 21U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 203U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, {2136U, 2132U, 2128U, 491U, 492U, 493U}}, {5340U, 124U, 1U, 1U, 2U, 22U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 202U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, {2140U, 2136U, 2132U, 490U, 491U, 492U}}, {5350U, 124U, 1U, 1U, 2U, 23U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 13U, 0U, 202U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, {2144U, 2140U, 2136U, 489U, 490U, 491U}}, {5360U, 117U, 1U, 1U, 2U, 24U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 13U, 0U, 201U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2148U, 2144U, 2140U, 488U, 489U, 490U}}, {5370U, 117U, 1U, 1U, 2U, 25U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 13U, 0U, 201U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2152U, 2148U, 2144U, 487U, 488U, 489U}}, {5380U, 110U, 1U, 1U, 2U, 26U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 184U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2156U, 2152U, 2148U, 486U, 487U, 488U}}, {5390U, 110U, 1U, 1U, 2U, 27U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 184U, 132U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 132U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2160U, 2156U, 2152U, 485U, 486U, 487U}}, {5400U, 103U, 1U, 1U, 2U, 28U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 184U, 132U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 132U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2164U, 2160U, 2156U, 485U, 485U, 486U}}, {5410U, 103U, 1U, 1U, 2U, 29U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 183U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2168U, 2164U, 2160U, 484U, 485U, 485U}}, {5420U, 97U, 1U, 1U, 2U, 30U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 167U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2172U, 2168U, 2164U, 483U, 484U, 485U}}, {5430U, 97U, 1U, 1U, 2U, 31U, 5U, 5U, 4U, 12U, 1U, 3U, 3U, 3U, 140U, 11U, 0U, 166U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2176U, 2172U, 2168U, 482U, 483U, 484U}}, {5440U, 90U, 1U, 1U, 2U, 32U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 139U, 11U, 0U, 166U, 132U, 0U, 2U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 132U, 0U, 2U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2180U, 2176U, 2172U, 481U, 482U, 483U}}, {5450U, 90U, 1U, 1U, 2U, 33U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 139U, 11U, 0U, 149U, 132U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 132U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2184U, 2180U, 2176U, 480U, 481U, 482U}}, {5460U, 83U, 1U, 1U, 2U, 34U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 139U, 11U, 0U, 149U, 132U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 132U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2188U, 2184U, 2180U, 479U, 480U, 481U}}, {5470U, 83U, 1U, 1U, 2U, 35U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 139U, 11U, 0U, 148U, 115U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2192U, 2188U, 2184U, 478U, 479U, 480U}}, {5480U, 77U, 1U, 1U, 2U, 36U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 132U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2196U, 2192U, 2188U, 477U, 478U, 479U}}, {5490U, 77U, 1U, 1U, 2U, 37U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 131U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2200U, 2196U, 2192U, 477U, 477U, 478U}}, {5500U, 71U, 1U, 1U, 2U, 38U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 130U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2204U, 2200U, 2196U, 476U, 477U, 477U}}, {5510U, 71U, 1U, 1U, 2U, 39U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 130U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2208U, 2204U, 2200U, 475U, 476U, 477U}}, {5520U, 64U, 1U, 1U, 2U, 40U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 114U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2212U, 2208U, 2204U, 474U, 475U, 476U}}, {5530U, 64U, 1U, 1U, 2U, 41U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 9U, 0U, 114U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2216U, 2212U, 2208U, 473U, 474U, 475U}}, {5540U, 58U, 1U, 1U, 2U, 42U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 138U, 9U, 0U, 113U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2220U, 2216U, 2212U, 472U, 473U, 474U}}, {5550U, 58U, 1U, 1U, 2U, 43U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 137U, 9U, 0U, 97U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2224U, 2220U, 2216U, 471U, 472U, 473U}}, {5560U, 52U, 1U, 1U, 2U, 44U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 137U, 9U, 0U, 97U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2228U, 2224U, 2220U, 471U, 471U, 472U}}, {5570U, 52U, 1U, 1U, 2U, 45U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 137U, 9U, 0U, 97U, 98U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 98U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2232U, 2228U, 2224U, 470U, 471U, 471U}}, {5580U, 46U, 1U, 1U, 2U, 46U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 137U, 8U, 0U, 96U, 98U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, 98U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, {2236U, 2232U, 2228U, 469U, 470U, 471U}}, {5590U, 46U, 1U, 1U, 2U, 47U, 5U, 5U, 4U, 12U, 1U, 4U, 4U, 4U, 137U, 8U, 0U, 80U, 97U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, 97U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, {2240U, 2236U, 2232U, 468U, 469U, 470U}}, {5600U, 40U, 1U, 1U, 2U, 48U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 137U, 8U, 0U, 80U, 81U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, 81U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, {2244U, 2240U, 2236U, 467U, 468U, 469U}}, {5610U, 40U, 1U, 1U, 2U, 49U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 137U, 8U, 0U, 80U, 81U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, 81U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, {2248U, 2244U, 2240U, 466U, 467U, 468U}}, {5620U, 33U, 1U, 1U, 2U, 50U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 137U, 8U, 0U, 80U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, {2252U, 2248U, 2244U, 466U, 466U, 467U}}, {5630U, 33U, 1U, 1U, 2U, 51U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 80U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, {2256U, 2252U, 2248U, 465U, 466U, 466U}}, {5640U, 28U, 1U, 1U, 2U, 52U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 64U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, {2260U, 2256U, 2252U, 464U, 465U, 466U}}, {5650U, 28U, 1U, 1U, 2U, 53U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 64U, 64U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, 64U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, {2264U, 2260U, 2256U, 463U, 464U, 465U}}, {5660U, 22U, 1U, 1U, 2U, 54U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 64U, 64U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, 64U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, {2268U, 2264U, 2260U, 462U, 463U, 464U}}, {5670U, 22U, 1U, 1U, 2U, 55U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 64U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, {2272U, 2268U, 2264U, 462U, 462U, 463U}}, {5680U, 16U, 1U, 1U, 2U, 56U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, {2276U, 2272U, 2268U, 461U, 462U, 462U}}, {5690U, 16U, 1U, 1U, 2U, 57U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, {2280U, 2276U, 2272U, 460U, 461U, 462U}}, {5700U, 10U, 1U, 1U, 2U, 58U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, {2284U, 2280U, 2276U, 459U, 460U, 461U}}, {5710U, 10U, 1U, 1U, 2U, 59U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, {2288U, 2284U, 2280U, 458U, 459U, 460U}}, {5720U, 10U, 1U, 1U, 2U, 60U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, {2292U, 2288U, 2284U, 457U, 458U, 459U}}, {5725U, 3U, 1U, 2U, 4U, 121U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, {2294U, 2290U, 2286U, 457U, 458U, 459U}}, {5730U, 10U, 1U, 1U, 2U, 61U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, {2296U, 2292U, 2288U, 457U, 457U, 458U}}, {5735U, 3U, 1U, 2U, 4U, 123U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, {2298U, 2294U, 2290U, 456U, 457U, 458U}}, {5740U, 10U, 1U, 1U, 2U, 62U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, {2300U, 2296U, 2292U, 456U, 457U, 457U}}, {5745U, 254U, 0U, 2U, 4U, 125U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, {2302U, 2298U, 2294U, 456U, 456U, 457U}}, {5750U, 10U, 1U, 1U, 2U, 63U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 109U, 0U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 109U, 0U, {2304U, 2300U, 2296U, 455U, 456U, 457U}}, {5755U, 254U, 0U, 2U, 4U, 127U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 16U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, {2306U, 2302U, 2298U, 455U, 456U, 456U}}, {5760U, 10U, 1U, 1U, 2U, 64U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 134U, 5U, 0U, 16U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, {2308U, 2304U, 2300U, 454U, 455U, 456U}}, {5765U, 248U, 0U, 2U, 4U, 129U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 134U, 5U, 0U, 16U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, {2310U, 2306U, 2302U, 454U, 455U, 456U}}, {5770U, 10U, 1U, 1U, 2U, 65U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 134U, 4U, 0U, 16U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2312U, 2308U, 2304U, 454U, 454U, 455U}}, {5775U, 248U, 0U, 2U, 4U, 131U, 7U, 7U, 4U, 16U, 1U, 5U, 5U, 5U, 134U, 4U, 0U, 16U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2314U, 2310U, 2306U, 453U, 454U, 455U}}, {5780U, 10U, 1U, 1U, 2U, 66U, 5U, 5U, 4U, 12U, 1U, 5U, 5U, 5U, 134U, 4U, 0U, 16U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2316U, 2312U, 2308U, 453U, 454U, 454U}}, {5785U, 242U, 0U, 2U, 4U, 133U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2318U, 2314U, 2310U, 452U, 453U, 454U}}, {5790U, 10U, 1U, 1U, 2U, 67U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2320U, 2316U, 2312U, 452U, 453U, 454U}}, {5795U, 242U, 0U, 2U, 4U, 135U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2322U, 2318U, 2314U, 452U, 452U, 453U}}, {5800U, 10U, 1U, 1U, 2U, 68U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2324U, 2320U, 2316U, 451U, 452U, 453U}}, {5805U, 237U, 0U, 2U, 4U, 137U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, {2326U, 2322U, 2318U, 451U, 452U, 452U}}, {5810U, 10U, 1U, 1U, 2U, 69U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, {2328U, 2324U, 2320U, 450U, 451U, 452U}}, {5815U, 237U, 0U, 2U, 4U, 139U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, {2330U, 2326U, 2322U, 450U, 451U, 452U}}, {5820U, 10U, 1U, 1U, 2U, 70U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, {2332U, 2328U, 2324U, 450U, 450U, 451U}}, {5825U, 237U, 0U, 2U, 4U, 141U, 7U, 7U, 4U, 16U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 105U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 105U, 0U, {2334U, 2330U, 2326U, 449U, 450U, 451U}}, {5830U, 10U, 1U, 1U, 2U, 71U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 105U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 105U, 0U, {2336U, 2332U, 2328U, 449U, 450U, 450U}}, {5840U, 10U, 1U, 1U, 2U, 72U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, {2340U, 2336U, 2332U, 448U, 449U, 450U}}, {5850U, 224U, 0U, 1U, 2U, 73U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, {2344U, 2340U, 2336U, 447U, 448U, 449U}}, {5860U, 222U, 0U, 1U, 2U, 74U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, {2348U, 2344U, 2340U, 447U, 447U, 448U}}, {5870U, 219U, 0U, 1U, 2U, 75U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, {2352U, 2348U, 2344U, 446U, 447U, 447U}}, {5880U, 216U, 0U, 1U, 2U, 76U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, {2356U, 2352U, 2348U, 445U, 446U, 447U}}, {5890U, 214U, 0U, 1U, 2U, 77U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, {2360U, 2356U, 2352U, 444U, 445U, 446U}}, {5900U, 211U, 0U, 1U, 2U, 78U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, {2364U, 2360U, 2356U, 444U, 444U, 445U}}, {5910U, 214U, 0U, 1U, 2U, 79U, 5U, 5U, 4U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, {2368U, 2364U, 2360U, 443U, 444U, 444U}}, {2412U, 0U, 1U, 3U, 9U, 108U, 8U, 8U, 4U, 22U, 1U, 4U, 4U, 4U, 143U, 48U, 0U, 0U, 0U, 120U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, 0U, 137U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, {969U, 965U, 961U, 1082U, 1087U, 1091U}}, {2417U, 0U, 1U, 3U, 9U, 113U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 120U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, 0U, 137U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, {971U, 967U, 963U, 1080U, 1085U, 1089U}}, {2422U, 0U, 1U, 3U, 9U, 118U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 103U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, 0U, 137U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, {973U, 969U, 965U, 1078U, 1082U, 1087U}}, {2427U, 0U, 1U, 3U, 9U, 123U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 87U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, 0U, 120U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, {975U, 971U, 967U, 1076U, 1080U, 1085U}}, {2432U, 0U, 1U, 3U, 9U, 128U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 86U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, 0U, 119U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, {977U, 973U, 969U, 1073U, 1078U, 1082U}}, {2437U, 0U, 1U, 3U, 9U, 133U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 70U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, 0U, 118U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, {979U, 975U, 971U, 1071U, 1076U, 1080U}}, {2442U, 0U, 1U, 3U, 9U, 138U, 8U, 8U, 4U, 22U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 69U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 10U, 0U, 102U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 10U, {981U, 977U, 973U, 1069U, 1073U, 1078U}}, {2447U, 0U, 1U, 3U, 9U, 143U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 52U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, 0U, 85U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, {983U, 979U, 975U, 1067U, 1071U, 1076U}}, {2452U, 0U, 1U, 3U, 9U, 148U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 35U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, 0U, 69U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, {985U, 981U, 977U, 1065U, 1069U, 1073U}}, {2457U, 0U, 1U, 3U, 9U, 153U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 18U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, 0U, 52U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, {987U, 983U, 979U, 1063U, 1067U, 1071U}}, {2462U, 0U, 1U, 3U, 9U, 158U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 2U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, 0U, 51U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, {989U, 985U, 981U, 1060U, 1065U, 1069U}}, {2467U, 0U, 1U, 3U, 9U, 163U, 8U, 8U, 4U, 22U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 1U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, 0U, 34U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, {991U, 987U, 983U, 1058U, 1063U, 1067U}}, {2472U, 0U, 1U, 3U, 9U, 168U, 8U, 8U, 4U, 22U, 1U, 7U, 7U, 7U, 143U, 48U, 0U, 0U, 0U, 1U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, 0U, 17U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, {993U, 989U, 985U, 1056U, 1060U, 1065U}}, {2484U, 255U, 1U, 3U, 9U, 180U, 8U, 8U, 4U, 22U, 1U, 7U, 7U, 7U, 143U, 32U, 0U, 0U, 0U, 0U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, 0U, 0U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, {998U, 994U, 990U, 1051U, 1055U, 1060U}}}; static struct b43_nphy_channeltab_entry_rev3 const b43_nphy_channeltab_radio_rev11[124U] = { {4920U, 255U, 1U, 1U, 1U, 236U, 5U, 5U, 2U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1972U, 1968U, 1964U, 532U, 533U, 534U}}, {4930U, 255U, 1U, 1U, 1U, 237U, 5U, 5U, 2U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1976U, 1972U, 1968U, 531U, 532U, 533U}}, {4940U, 255U, 1U, 1U, 1U, 238U, 5U, 5U, 2U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1980U, 1976U, 1972U, 530U, 531U, 532U}}, {4950U, 255U, 1U, 1U, 1U, 239U, 5U, 5U, 2U, 12U, 1U, 0U, 0U, 0U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1984U, 1980U, 1976U, 529U, 530U, 531U}}, {4960U, 255U, 1U, 1U, 1U, 240U, 5U, 5U, 2U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1988U, 1984U, 1980U, 527U, 529U, 530U}}, {4970U, 255U, 1U, 1U, 1U, 241U, 5U, 5U, 2U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1992U, 1988U, 1984U, 526U, 527U, 529U}}, {4980U, 255U, 1U, 1U, 1U, 242U, 5U, 5U, 2U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {1996U, 1992U, 1988U, 525U, 526U, 527U}}, {4990U, 255U, 1U, 1U, 1U, 243U, 5U, 5U, 2U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2000U, 1996U, 1992U, 524U, 525U, 526U}}, {5000U, 255U, 1U, 1U, 1U, 244U, 5U, 5U, 2U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2004U, 2000U, 1996U, 523U, 524U, 525U}}, {5010U, 255U, 1U, 1U, 1U, 245U, 5U, 5U, 2U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2008U, 2004U, 2000U, 522U, 523U, 524U}}, {5020U, 247U, 1U, 1U, 1U, 246U, 5U, 5U, 2U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2012U, 2008U, 2004U, 521U, 522U, 523U}}, {5030U, 247U, 1U, 1U, 1U, 247U, 5U, 5U, 2U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2016U, 2012U, 2008U, 520U, 521U, 522U}}, {5040U, 239U, 1U, 1U, 1U, 248U, 5U, 5U, 2U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2020U, 2016U, 2012U, 519U, 520U, 521U}}, {5050U, 239U, 1U, 1U, 1U, 249U, 5U, 5U, 2U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2024U, 2020U, 2016U, 518U, 519U, 520U}}, {5060U, 230U, 1U, 1U, 1U, 250U, 5U, 5U, 2U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 254U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2028U, 2024U, 2020U, 517U, 518U, 519U}}, {5070U, 230U, 1U, 1U, 1U, 251U, 5U, 5U, 2U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2032U, 2028U, 2024U, 516U, 517U, 518U}}, {5080U, 222U, 1U, 1U, 1U, 252U, 5U, 5U, 2U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2036U, 2032U, 2028U, 515U, 516U, 517U}}, {5090U, 222U, 1U, 1U, 1U, 253U, 5U, 5U, 2U, 12U, 1U, 1U, 1U, 1U, 143U, 15U, 0U, 255U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 253U, 0U, 9U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2040U, 2036U, 2032U, 514U, 515U, 516U}}, {5100U, 214U, 1U, 1U, 1U, 254U, 5U, 5U, 2U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 253U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 253U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2044U, 2040U, 2036U, 513U, 514U, 515U}}, {5110U, 214U, 1U, 1U, 1U, 255U, 5U, 5U, 2U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2048U, 2044U, 2040U, 512U, 513U, 514U}}, {5120U, 206U, 1U, 1U, 2U, 0U, 5U, 5U, 2U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2052U, 2048U, 2044U, 511U, 512U, 513U}}, {5130U, 206U, 1U, 1U, 2U, 1U, 5U, 5U, 2U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 252U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2056U, 2052U, 2048U, 510U, 511U, 512U}}, {5140U, 198U, 1U, 1U, 2U, 2U, 5U, 5U, 2U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 251U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, 251U, 0U, 8U, 0U, 119U, 0U, 15U, 0U, 111U, 0U, {2060U, 2056U, 2052U, 509U, 510U, 511U}}, {5160U, 190U, 1U, 1U, 2U, 4U, 5U, 5U, 2U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 250U, 0U, 7U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, 250U, 0U, 7U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, {2068U, 2064U, 2060U, 507U, 508U, 509U}}, {5170U, 190U, 1U, 1U, 2U, 5U, 5U, 5U, 2U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 250U, 0U, 7U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, 250U, 0U, 7U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, {2072U, 2068U, 2064U, 506U, 507U, 508U}}, {5180U, 182U, 1U, 1U, 2U, 6U, 5U, 5U, 2U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 249U, 0U, 6U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, 249U, 0U, 6U, 0U, 119U, 0U, 14U, 0U, 111U, 0U, {2076U, 2072U, 2068U, 505U, 506U, 507U}}, {5190U, 182U, 1U, 1U, 2U, 7U, 5U, 5U, 2U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 249U, 0U, 6U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 249U, 0U, 6U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2080U, 2076U, 2072U, 504U, 505U, 506U}}, {5200U, 175U, 1U, 1U, 2U, 8U, 5U, 5U, 2U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 249U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 249U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2084U, 2080U, 2076U, 503U, 504U, 505U}}, {5210U, 175U, 1U, 1U, 2U, 9U, 5U, 5U, 2U, 12U, 1U, 2U, 2U, 2U, 143U, 15U, 0U, 255U, 249U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 249U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2088U, 2084U, 2080U, 502U, 503U, 504U}}, {5220U, 167U, 1U, 1U, 2U, 10U, 5U, 5U, 2U, 12U, 1U, 2U, 2U, 2U, 142U, 15U, 0U, 254U, 216U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 216U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2092U, 2088U, 2084U, 501U, 502U, 503U}}, {5230U, 167U, 1U, 1U, 2U, 11U, 5U, 5U, 2U, 12U, 1U, 2U, 2U, 2U, 142U, 15U, 0U, 238U, 216U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 216U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2096U, 2092U, 2088U, 500U, 501U, 502U}}, {5240U, 160U, 1U, 1U, 2U, 12U, 5U, 5U, 2U, 12U, 1U, 2U, 2U, 2U, 142U, 15U, 0U, 238U, 200U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 200U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2100U, 2096U, 2092U, 499U, 500U, 501U}}, {5250U, 160U, 1U, 1U, 2U, 13U, 5U, 5U, 2U, 12U, 1U, 2U, 2U, 2U, 142U, 15U, 0U, 237U, 199U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 199U, 0U, 5U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2104U, 2100U, 2096U, 498U, 499U, 500U}}, {5260U, 152U, 1U, 1U, 2U, 14U, 5U, 5U, 2U, 12U, 1U, 2U, 2U, 2U, 142U, 14U, 0U, 237U, 199U, 0U, 4U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, 199U, 0U, 4U, 0U, 119U, 0U, 13U, 0U, 111U, 0U, {2108U, 2104U, 2100U, 497U, 498U, 499U}}, {5270U, 152U, 1U, 1U, 2U, 15U, 5U, 5U, 2U, 12U, 1U, 3U, 3U, 3U, 142U, 14U, 0U, 237U, 199U, 0U, 4U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 199U, 0U, 4U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2112U, 2108U, 2104U, 496U, 497U, 498U}}, {5280U, 145U, 1U, 1U, 2U, 16U, 5U, 5U, 2U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 220U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2116U, 2112U, 2108U, 496U, 496U, 497U}}, {5290U, 145U, 1U, 1U, 2U, 17U, 5U, 5U, 2U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 220U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2120U, 2116U, 2112U, 495U, 496U, 496U}}, {5300U, 138U, 1U, 1U, 2U, 18U, 5U, 5U, 2U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 220U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2124U, 2120U, 2116U, 494U, 495U, 496U}}, {5310U, 138U, 1U, 1U, 2U, 19U, 5U, 5U, 2U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 220U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2128U, 2124U, 2120U, 493U, 494U, 495U}}, {5320U, 131U, 1U, 1U, 2U, 20U, 5U, 5U, 2U, 12U, 1U, 3U, 3U, 3U, 141U, 14U, 0U, 219U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, 183U, 0U, 3U, 0U, 119U, 0U, 12U, 0U, 111U, 0U, {2132U, 2128U, 2124U, 492U, 493U, 494U}}, {5330U, 131U, 1U, 1U, 2U, 21U, 5U, 5U, 2U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 203U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, {2136U, 2132U, 2128U, 491U, 492U, 493U}}, {5340U, 124U, 1U, 1U, 2U, 22U, 5U, 5U, 2U, 12U, 1U, 3U, 3U, 3U, 141U, 13U, 0U, 202U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, {2140U, 2136U, 2132U, 490U, 491U, 492U}}, {5350U, 124U, 1U, 1U, 2U, 23U, 5U, 5U, 2U, 12U, 1U, 3U, 3U, 3U, 140U, 13U, 0U, 202U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, 166U, 0U, 3U, 0U, 119U, 0U, 11U, 0U, 111U, 0U, {2144U, 2140U, 2136U, 489U, 490U, 491U}}, {5360U, 117U, 1U, 1U, 2U, 24U, 5U, 5U, 2U, 12U, 1U, 3U, 3U, 3U, 140U, 13U, 0U, 201U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2148U, 2144U, 2140U, 488U, 489U, 490U}}, {5370U, 117U, 1U, 1U, 2U, 25U, 5U, 5U, 2U, 12U, 1U, 3U, 3U, 3U, 140U, 13U, 0U, 201U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2152U, 2148U, 2144U, 487U, 488U, 489U}}, {5380U, 110U, 1U, 1U, 2U, 26U, 5U, 5U, 2U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 184U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 149U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2156U, 2152U, 2148U, 486U, 487U, 488U}}, {5390U, 110U, 1U, 1U, 2U, 27U, 5U, 5U, 2U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 184U, 132U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 132U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2160U, 2156U, 2152U, 485U, 486U, 487U}}, {5400U, 103U, 1U, 1U, 2U, 28U, 5U, 5U, 2U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 184U, 132U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 132U, 0U, 3U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2164U, 2160U, 2156U, 485U, 485U, 486U}}, {5410U, 103U, 1U, 1U, 2U, 29U, 5U, 5U, 2U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 183U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2168U, 2164U, 2160U, 484U, 485U, 485U}}, {5420U, 97U, 1U, 1U, 2U, 30U, 5U, 5U, 2U, 12U, 1U, 3U, 3U, 3U, 140U, 12U, 0U, 167U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2172U, 2168U, 2164U, 483U, 484U, 485U}}, {5430U, 97U, 1U, 1U, 2U, 31U, 5U, 5U, 2U, 12U, 1U, 3U, 3U, 3U, 140U, 11U, 0U, 166U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, 132U, 0U, 2U, 0U, 119U, 0U, 10U, 0U, 111U, 0U, {2176U, 2172U, 2168U, 482U, 483U, 484U}}, {5440U, 90U, 1U, 1U, 2U, 32U, 5U, 5U, 2U, 12U, 1U, 4U, 4U, 4U, 139U, 11U, 0U, 166U, 132U, 0U, 2U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 132U, 0U, 2U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2180U, 2176U, 2172U, 481U, 482U, 483U}}, {5450U, 90U, 1U, 1U, 2U, 33U, 5U, 5U, 2U, 12U, 1U, 4U, 4U, 4U, 139U, 11U, 0U, 149U, 132U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 132U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2184U, 2180U, 2176U, 480U, 481U, 482U}}, {5460U, 83U, 1U, 1U, 2U, 34U, 5U, 5U, 2U, 12U, 1U, 4U, 4U, 4U, 139U, 11U, 0U, 149U, 132U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 132U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2188U, 2184U, 2180U, 479U, 480U, 481U}}, {5470U, 83U, 1U, 1U, 2U, 35U, 5U, 5U, 2U, 12U, 1U, 4U, 4U, 4U, 139U, 11U, 0U, 148U, 115U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 1U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2192U, 2188U, 2184U, 478U, 479U, 480U}}, {5480U, 77U, 1U, 1U, 2U, 36U, 5U, 5U, 2U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 132U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2196U, 2192U, 2188U, 477U, 478U, 479U}}, {5490U, 77U, 1U, 1U, 2U, 37U, 5U, 5U, 2U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 131U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2200U, 2196U, 2192U, 477U, 477U, 478U}}, {5500U, 71U, 1U, 1U, 2U, 38U, 5U, 5U, 2U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 130U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2204U, 2200U, 2196U, 476U, 477U, 477U}}, {5510U, 71U, 1U, 1U, 2U, 39U, 5U, 5U, 2U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 130U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2208U, 2204U, 2200U, 475U, 476U, 477U}}, {5520U, 64U, 1U, 1U, 2U, 40U, 5U, 5U, 2U, 12U, 1U, 4U, 4U, 4U, 138U, 10U, 0U, 114U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2212U, 2208U, 2204U, 474U, 475U, 476U}}, {5530U, 64U, 1U, 1U, 2U, 41U, 5U, 5U, 2U, 12U, 1U, 4U, 4U, 4U, 138U, 9U, 0U, 114U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2216U, 2212U, 2208U, 473U, 474U, 475U}}, {5540U, 58U, 1U, 1U, 2U, 42U, 5U, 5U, 2U, 12U, 1U, 4U, 4U, 4U, 138U, 9U, 0U, 113U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2220U, 2216U, 2212U, 472U, 473U, 474U}}, {5550U, 58U, 1U, 1U, 2U, 43U, 5U, 5U, 2U, 12U, 1U, 4U, 4U, 4U, 137U, 9U, 0U, 97U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2224U, 2220U, 2216U, 471U, 472U, 473U}}, {5560U, 52U, 1U, 1U, 2U, 44U, 5U, 5U, 2U, 12U, 1U, 4U, 4U, 4U, 137U, 9U, 0U, 97U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 115U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2228U, 2224U, 2220U, 471U, 471U, 472U}}, {5570U, 52U, 1U, 1U, 2U, 45U, 5U, 5U, 2U, 12U, 1U, 4U, 4U, 4U, 137U, 9U, 0U, 97U, 98U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, 98U, 0U, 0U, 0U, 119U, 0U, 9U, 0U, 111U, 0U, {2232U, 2228U, 2224U, 470U, 471U, 471U}}, {5580U, 46U, 1U, 1U, 2U, 46U, 5U, 5U, 2U, 12U, 1U, 4U, 4U, 4U, 137U, 8U, 0U, 96U, 98U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, 98U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, {2236U, 2232U, 2228U, 469U, 470U, 471U}}, {5590U, 46U, 1U, 1U, 2U, 47U, 5U, 5U, 2U, 12U, 1U, 4U, 4U, 4U, 137U, 8U, 0U, 80U, 97U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, 97U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, {2240U, 2236U, 2232U, 468U, 469U, 470U}}, {5600U, 40U, 1U, 1U, 2U, 48U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 137U, 8U, 0U, 80U, 81U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, 81U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, {2244U, 2240U, 2236U, 467U, 468U, 469U}}, {5610U, 40U, 1U, 1U, 2U, 49U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 137U, 8U, 0U, 80U, 81U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, 81U, 0U, 0U, 0U, 119U, 0U, 8U, 0U, 111U, 0U, {2248U, 2244U, 2240U, 466U, 467U, 468U}}, {5620U, 33U, 1U, 1U, 2U, 50U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 137U, 8U, 0U, 80U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, {2252U, 2248U, 2244U, 466U, 466U, 467U}}, {5630U, 33U, 1U, 1U, 2U, 51U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 80U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, {2256U, 2252U, 2248U, 465U, 466U, 466U}}, {5640U, 28U, 1U, 1U, 2U, 52U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 64U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, 80U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, {2260U, 2256U, 2252U, 464U, 465U, 466U}}, {5650U, 28U, 1U, 1U, 2U, 53U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 64U, 64U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, 64U, 0U, 0U, 0U, 119U, 0U, 7U, 0U, 111U, 0U, {2264U, 2260U, 2256U, 463U, 464U, 465U}}, {5660U, 22U, 1U, 1U, 2U, 54U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 64U, 64U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, 64U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, {2268U, 2264U, 2260U, 462U, 463U, 464U}}, {5670U, 22U, 1U, 1U, 2U, 55U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 136U, 7U, 0U, 64U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, {2272U, 2268U, 2264U, 462U, 462U, 463U}}, {5680U, 16U, 1U, 1U, 2U, 56U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, {2276U, 2272U, 2268U, 461U, 462U, 462U}}, {5690U, 16U, 1U, 1U, 2U, 57U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 111U, 0U, {2280U, 2276U, 2272U, 460U, 461U, 462U}}, {5700U, 10U, 1U, 1U, 2U, 58U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, {2284U, 2280U, 2276U, 459U, 460U, 461U}}, {5710U, 10U, 1U, 1U, 2U, 59U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, {2288U, 2284U, 2280U, 458U, 459U, 460U}}, {5720U, 10U, 1U, 1U, 2U, 60U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, {2292U, 2288U, 2284U, 457U, 458U, 459U}}, {5725U, 3U, 1U, 2U, 4U, 121U, 5U, 5U, 2U, 21U, 1U, 5U, 5U, 5U, 135U, 6U, 0U, 48U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, {2294U, 2290U, 2286U, 457U, 458U, 459U}}, {5730U, 10U, 1U, 1U, 2U, 61U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 110U, 0U, {2296U, 2292U, 2288U, 457U, 457U, 458U}}, {5735U, 3U, 1U, 2U, 4U, 123U, 5U, 5U, 2U, 21U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, {2298U, 2294U, 2290U, 456U, 457U, 458U}}, {5740U, 10U, 1U, 1U, 2U, 62U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, {2300U, 2296U, 2292U, 456U, 457U, 457U}}, {5745U, 254U, 0U, 2U, 4U, 125U, 5U, 5U, 2U, 21U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, 48U, 0U, 0U, 0U, 119U, 0U, 6U, 0U, 109U, 0U, {2302U, 2298U, 2294U, 456U, 456U, 457U}}, {5750U, 10U, 1U, 1U, 2U, 63U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 32U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 109U, 0U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 109U, 0U, {2304U, 2300U, 2296U, 455U, 456U, 457U}}, {5755U, 254U, 0U, 2U, 4U, 127U, 5U, 5U, 2U, 21U, 1U, 5U, 5U, 5U, 135U, 5U, 0U, 16U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, {2306U, 2302U, 2298U, 455U, 456U, 456U}}, {5760U, 10U, 1U, 1U, 2U, 64U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 134U, 5U, 0U, 16U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, 32U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, {2308U, 2304U, 2300U, 454U, 455U, 456U}}, {5765U, 248U, 0U, 2U, 4U, 129U, 5U, 5U, 2U, 21U, 1U, 5U, 5U, 5U, 134U, 5U, 0U, 16U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 108U, 0U, {2310U, 2306U, 2302U, 454U, 455U, 456U}}, {5770U, 10U, 1U, 1U, 2U, 65U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 134U, 4U, 0U, 16U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2312U, 2308U, 2304U, 454U, 454U, 455U}}, {5775U, 248U, 0U, 2U, 4U, 131U, 5U, 5U, 2U, 21U, 1U, 5U, 5U, 5U, 134U, 4U, 0U, 16U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2314U, 2310U, 2306U, 453U, 454U, 455U}}, {5780U, 10U, 1U, 1U, 2U, 66U, 5U, 5U, 2U, 12U, 1U, 5U, 5U, 5U, 134U, 4U, 0U, 16U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2316U, 2312U, 2308U, 453U, 454U, 454U}}, {5785U, 242U, 0U, 2U, 4U, 133U, 5U, 5U, 2U, 21U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2318U, 2314U, 2310U, 452U, 453U, 454U}}, {5790U, 10U, 1U, 1U, 2U, 67U, 5U, 5U, 2U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 16U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2320U, 2316U, 2312U, 452U, 453U, 454U}}, {5795U, 242U, 0U, 2U, 4U, 135U, 5U, 5U, 2U, 21U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2322U, 2318U, 2314U, 452U, 452U, 453U}}, {5800U, 10U, 1U, 1U, 2U, 68U, 5U, 5U, 2U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 107U, 0U, {2324U, 2320U, 2316U, 451U, 452U, 453U}}, {5805U, 237U, 0U, 2U, 4U, 137U, 5U, 5U, 2U, 21U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, {2326U, 2322U, 2318U, 451U, 452U, 452U}}, {5810U, 10U, 1U, 1U, 2U, 69U, 5U, 5U, 2U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, {2328U, 2324U, 2320U, 450U, 451U, 452U}}, {5815U, 237U, 0U, 2U, 4U, 139U, 5U, 5U, 2U, 21U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, {2330U, 2326U, 2322U, 450U, 451U, 452U}}, {5820U, 10U, 1U, 1U, 2U, 70U, 5U, 5U, 2U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 106U, 0U, {2332U, 2328U, 2324U, 450U, 450U, 451U}}, {5825U, 237U, 0U, 2U, 4U, 141U, 5U, 5U, 2U, 21U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 105U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 105U, 0U, {2334U, 2330U, 2326U, 449U, 450U, 451U}}, {5830U, 10U, 1U, 1U, 2U, 71U, 5U, 5U, 2U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 105U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 5U, 0U, 105U, 0U, {2336U, 2332U, 2328U, 449U, 450U, 450U}}, {5840U, 10U, 1U, 1U, 2U, 72U, 5U, 5U, 2U, 12U, 1U, 6U, 6U, 6U, 134U, 4U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, {2340U, 2336U, 2332U, 448U, 449U, 450U}}, {5850U, 224U, 0U, 1U, 2U, 73U, 5U, 5U, 2U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, {2344U, 2340U, 2336U, 447U, 448U, 449U}}, {5860U, 222U, 0U, 1U, 2U, 74U, 5U, 5U, 2U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 105U, 0U, {2348U, 2344U, 2340U, 447U, 447U, 448U}}, {5870U, 219U, 0U, 1U, 2U, 75U, 5U, 5U, 2U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, {2352U, 2348U, 2344U, 446U, 447U, 447U}}, {5880U, 216U, 0U, 1U, 2U, 76U, 5U, 5U, 2U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, {2356U, 2352U, 2348U, 445U, 446U, 447U}}, {5890U, 214U, 0U, 1U, 2U, 77U, 5U, 5U, 2U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, {2360U, 2356U, 2352U, 444U, 445U, 446U}}, {5900U, 211U, 0U, 1U, 2U, 78U, 5U, 5U, 2U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, {2364U, 2360U, 2356U, 444U, 444U, 445U}}, {5910U, 214U, 0U, 1U, 2U, 79U, 5U, 5U, 2U, 12U, 1U, 6U, 6U, 6U, 133U, 3U, 0U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 4U, 0U, 104U, 0U, {2368U, 2364U, 2360U, 443U, 444U, 444U}}, {2412U, 0U, 1U, 3U, 9U, 108U, 6U, 6U, 4U, 43U, 1U, 4U, 4U, 4U, 143U, 48U, 0U, 0U, 0U, 120U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, 0U, 137U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, {969U, 965U, 961U, 1082U, 1087U, 1091U}}, {2417U, 0U, 1U, 3U, 9U, 113U, 6U, 6U, 4U, 43U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 120U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, 0U, 137U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, {971U, 967U, 963U, 1080U, 1085U, 1089U}}, {2422U, 0U, 1U, 3U, 9U, 118U, 6U, 6U, 4U, 43U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 103U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, 0U, 137U, 0U, 3U, 0U, 112U, 0U, 11U, 0U, 10U, {973U, 969U, 965U, 1078U, 1082U, 1087U}}, {2427U, 0U, 1U, 3U, 9U, 123U, 6U, 6U, 4U, 43U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 87U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, 0U, 120U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, {975U, 971U, 967U, 1076U, 1080U, 1085U}}, {2432U, 0U, 1U, 3U, 9U, 128U, 6U, 6U, 4U, 43U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 86U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, 0U, 119U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, {977U, 973U, 969U, 1073U, 1078U, 1082U}}, {2437U, 0U, 1U, 3U, 9U, 133U, 6U, 6U, 4U, 43U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 70U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, 0U, 118U, 0U, 3U, 0U, 112U, 0U, 10U, 0U, 10U, {979U, 975U, 971U, 1071U, 1076U, 1080U}}, {2442U, 0U, 1U, 3U, 9U, 138U, 6U, 6U, 4U, 43U, 1U, 5U, 5U, 5U, 143U, 48U, 0U, 0U, 0U, 69U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 10U, 0U, 102U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 10U, {981U, 977U, 973U, 1069U, 1073U, 1078U}}, {2447U, 0U, 1U, 3U, 9U, 143U, 6U, 6U, 4U, 43U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 52U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, 0U, 85U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, {983U, 979U, 975U, 1067U, 1071U, 1076U}}, {2452U, 0U, 1U, 3U, 9U, 148U, 6U, 6U, 4U, 43U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 35U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, 0U, 69U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, {985U, 981U, 977U, 1065U, 1069U, 1073U}}, {2457U, 0U, 1U, 3U, 9U, 153U, 6U, 6U, 4U, 43U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 18U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, 0U, 52U, 0U, 2U, 0U, 112U, 0U, 10U, 0U, 9U, {987U, 983U, 979U, 1063U, 1067U, 1071U}}, {2462U, 0U, 1U, 3U, 9U, 158U, 6U, 6U, 4U, 43U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 2U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, 0U, 51U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, {989U, 985U, 981U, 1060U, 1065U, 1069U}}, {2467U, 0U, 1U, 3U, 9U, 163U, 6U, 6U, 4U, 43U, 1U, 6U, 6U, 6U, 143U, 48U, 0U, 0U, 0U, 1U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, 0U, 34U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, {991U, 987U, 983U, 1058U, 1063U, 1067U}}, {2472U, 0U, 1U, 3U, 9U, 168U, 6U, 6U, 4U, 43U, 1U, 7U, 7U, 7U, 143U, 48U, 0U, 0U, 0U, 1U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, 0U, 17U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, {993U, 989U, 985U, 1056U, 1060U, 1065U}}, {2484U, 255U, 1U, 3U, 9U, 180U, 6U, 6U, 4U, 43U, 1U, 7U, 7U, 7U, 143U, 32U, 0U, 0U, 0U, 0U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, 0U, 0U, 0U, 2U, 0U, 112U, 0U, 9U, 0U, 9U, {998U, 994U, 990U, 1051U, 1055U, 1060U}}}; static struct b2056_inittabs_pts const *b43_nphy_get_inittabs_rev3(struct b43_wldev *dev ) { struct b43_phy *phy ; { phy = & dev->phy; switch ((int )dev->phy.rev) { case 3: ; return (& b2056_inittab_phy_rev3); case 4: ; return (& b2056_inittab_phy_rev4); default: ; switch ((int )phy->radio_rev) { case 5: ; return (& b2056_inittab_radio_rev5); case 6: ; return (& b2056_inittab_radio_rev6); case 7: ; case 9: ; return (& b2056_inittab_radio_rev7_9); case 8: ; return (& b2056_inittab_radio_rev8); case 11: ; return (& b2056_inittab_radio_rev11); } } return ((struct b2056_inittabs_pts const *)0); } } static void b2056_upload_inittab(struct b43_wldev *dev , bool ghz5 , bool ignore_uploadflag , u16 routing , struct b2056_inittab_entry const *e , unsigned int length ) { unsigned int i ; u16 value ; { i = 0U; goto ldv_54156; ldv_54155: ; if (((int )e->flags & 1) == 0) { goto ldv_54154; } else { } if (((int )e->flags & 2) != 0 || (int )ignore_uploadflag) { if ((int )ghz5) { value = e->ghz5; } else { value = e->ghz2; } b43_radio_write(dev, (int )((u16 )i) | (int )routing, (int )value); } else { } ldv_54154: i = i + 1U; e = e + 1; ldv_54156: ; if (i < length) { goto ldv_54155; } else { } return; } } void b2056_upload_inittabs(struct b43_wldev *dev , bool ghz5 , bool ignore_uploadflag ) { struct b2056_inittabs_pts const *pts ; int __ret_warn_on ; long tmp ; { pts = b43_nphy_get_inittabs_rev3(dev); if ((unsigned long )pts == (unsigned long )((struct b2056_inittabs_pts const *)0)) { __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/radio_2056.c", 10235); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return; } else { } b2056_upload_inittab(dev, (int )ghz5, (int )ignore_uploadflag, 0, pts->syn, pts->syn_length); b2056_upload_inittab(dev, (int )ghz5, (int )ignore_uploadflag, 8192, pts->tx, pts->tx_length); b2056_upload_inittab(dev, (int )ghz5, (int )ignore_uploadflag, 12288, pts->tx, pts->tx_length); b2056_upload_inittab(dev, (int )ghz5, (int )ignore_uploadflag, 24576, pts->rx, pts->rx_length); b2056_upload_inittab(dev, (int )ghz5, (int )ignore_uploadflag, 28672, pts->rx, pts->rx_length); return; } } void b2056_upload_syn_pll_cp2(struct b43_wldev *dev , bool ghz5 ) { struct b2056_inittabs_pts const *pts ; struct b2056_inittab_entry const *e ; int __ret_warn_on ; long tmp ; { pts = b43_nphy_get_inittabs_rev3(dev); if ((unsigned long )pts == (unsigned long )((struct b2056_inittabs_pts const *)0)) { __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/radio_2056.c", 10258); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return; } else { } e = pts->syn + 73UL; b43_radio_write(dev, 73, (int )((int )ghz5 ? e->ghz5 : e->ghz2)); return; } } struct b43_nphy_channeltab_entry_rev3 const *b43_nphy_get_chantabent_rev3(struct b43_wldev *dev , u16 freq ) { struct b43_phy *phy ; struct b43_nphy_channeltab_entry_rev3 const *e ; unsigned int length ; unsigned int i ; int __ret_warn_on ; long tmp ; { phy = & dev->phy; switch ((int )phy->rev) { case 3: e = (struct b43_nphy_channeltab_entry_rev3 const *)(& b43_nphy_channeltab_phy_rev3); length = 124U; goto ldv_54185; case 4: e = (struct b43_nphy_channeltab_entry_rev3 const *)(& b43_nphy_channeltab_phy_rev4); length = 124U; goto ldv_54185; default: ; switch ((int )phy->radio_rev) { case 5: e = (struct b43_nphy_channeltab_entry_rev3 const *)(& b43_nphy_channeltab_radio_rev5); length = 124U; goto ldv_54193; case 6: e = (struct b43_nphy_channeltab_entry_rev3 const *)(& b43_nphy_channeltab_radio_rev6); length = 124U; goto ldv_54193; case 7: ; case 9: e = (struct b43_nphy_channeltab_entry_rev3 const *)(& b43_nphy_channeltab_radio_rev7_9); length = 124U; goto ldv_54193; case 8: e = (struct b43_nphy_channeltab_entry_rev3 const *)(& b43_nphy_channeltab_radio_rev8); length = 124U; goto ldv_54193; case 11: e = (struct b43_nphy_channeltab_entry_rev3 const *)(& b43_nphy_channeltab_radio_rev11); length = 124U; goto ldv_54193; default: __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/radio_2056.c", 10307); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return ((struct b43_nphy_channeltab_entry_rev3 const *)0); } ldv_54193: ; } ldv_54185: i = 0U; goto ldv_54211; ldv_54210: ; if ((int )((unsigned short )e->freq) == (int )freq) { return (e); } else { } i = i + 1U; e = e + 1; ldv_54211: ; if (i < length) { goto ldv_54210; } else { } return ((struct b43_nphy_channeltab_entry_rev3 const *)0); } } bool ldv_queue_work_on_177(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_178(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_179(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_180(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_181(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_182(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; bool ldv_queue_work_on_193(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_195(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_194(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_197(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_196(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_198(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; void r2057_upload_inittabs(struct b43_wldev *dev ) ; void r2057_get_chantabent_rev7(struct b43_wldev *dev , u16 freq , struct b43_nphy_chantabent_rev7 const **tabent_r7 , struct b43_nphy_chantabent_rev7_2g const **tabent_r7_2g ) ; static u16 r2057_rev4_init[42U][2U] = { { 14U, 32U}, { 49U, 0U}, { 50U, 0U}, { 51U, 0U}, { 53U, 38U}, { 60U, 255U}, { 61U, 255U}, { 62U, 255U}, { 63U, 255U}, { 98U, 51U}, { 138U, 240U}, { 139U, 16U}, { 140U, 240U}, { 145U, 63U}, { 146U, 54U}, { 164U, 140U}, { 168U, 85U}, { 175U, 1U}, { 271U, 240U}, { 272U, 16U}, { 273U, 240U}, { 278U, 63U}, { 279U, 54U}, { 297U, 140U}, { 301U, 85U}, { 308U, 1U}, { 350U, 0U}, { 351U, 0U}, { 352U, 0U}, { 353U, 0U}, { 354U, 0U}, { 355U, 0U}, { 361U, 2U}, { 362U, 0U}, { 363U, 0U}, { 364U, 0U}, { 420U, 0U}, { 421U, 0U}, { 422U, 0U}, { 426U, 0U}, { 427U, 0U}, { 428U, 0U}}; static u16 r2057_rev5_init[44U][2U] = { { 0U, 0U}, { 1U, 87U}, { 2U, 32U}, { 35U, 6U}, { 49U, 0U}, { 50U, 0U}, { 51U, 0U}, { 81U, 112U}, { 89U, 136U}, { 92U, 32U}, { 98U, 51U}, { 99U, 15U}, { 100U, 15U}, { 129U, 1U}, { 145U, 63U}, { 146U, 54U}, { 161U, 32U}, { 214U, 112U}, { 222U, 136U}, { 225U, 32U}, { 232U, 15U}, { 233U, 15U}, { 262U, 1U}, { 278U, 63U}, { 279U, 54U}, { 294U, 32U}, { 350U, 0U}, { 351U, 0U}, { 352U, 0U}, { 353U, 0U}, { 354U, 0U}, { 355U, 0U}, { 362U, 0U}, { 363U, 0U}, { 364U, 0U}, { 420U, 0U}, { 421U, 0U}, { 422U, 0U}, { 426U, 0U}, { 427U, 0U}, { 428U, 0U}, { 439U, 12U}, { 449U, 1U}, { 450U, 128U}}; static u16 r2057_rev5a_init[45U][2U] = { { 0U, 21U}, { 1U, 87U}, { 2U, 32U}, { 35U, 6U}, { 49U, 0U}, { 50U, 0U}, { 51U, 0U}, { 81U, 112U}, { 89U, 136U}, { 92U, 32U}, { 98U, 51U}, { 99U, 15U}, { 100U, 15U}, { 129U, 1U}, { 145U, 63U}, { 146U, 54U}, { 201U, 1U}, { 214U, 112U}, { 222U, 136U}, { 225U, 32U}, { 232U, 15U}, { 233U, 15U}, { 262U, 1U}, { 278U, 63U}, { 279U, 54U}, { 294U, 32U}, { 334U, 1U}, { 350U, 0U}, { 351U, 0U}, { 352U, 0U}, { 353U, 0U}, { 354U, 0U}, { 355U, 0U}, { 362U, 0U}, { 363U, 0U}, { 364U, 0U}, { 420U, 0U}, { 421U, 0U}, { 422U, 0U}, { 426U, 0U}, { 427U, 0U}, { 428U, 0U}, { 439U, 12U}, { 449U, 1U}, { 450U, 128U}}; static u16 r2057_rev7_init[54U][2U] = { { 0U, 0U}, { 1U, 87U}, { 2U, 32U}, { 49U, 0U}, { 50U, 0U}, { 51U, 0U}, { 81U, 112U}, { 89U, 136U}, { 92U, 32U}, { 98U, 51U}, { 99U, 15U}, { 100U, 19U}, { 102U, 238U}, { 110U, 88U}, { 117U, 19U}, { 123U, 19U}, { 124U, 20U}, { 125U, 238U}, { 129U, 1U}, { 145U, 63U}, { 146U, 54U}, { 161U, 32U}, { 214U, 112U}, { 222U, 136U}, { 225U, 32U}, { 232U, 15U}, { 233U, 19U}, { 235U, 238U}, { 243U, 88U}, { 250U, 19U}, { 256U, 19U}, { 257U, 20U}, { 258U, 238U}, { 262U, 1U}, { 278U, 63U}, { 279U, 54U}, { 294U, 32U}, { 350U, 0U}, { 351U, 0U}, { 352U, 0U}, { 353U, 0U}, { 354U, 0U}, { 355U, 0U}, { 362U, 0U}, { 363U, 0U}, { 364U, 0U}, { 420U, 0U}, { 421U, 0U}, { 422U, 0U}, { 426U, 0U}, { 427U, 0U}, { 428U, 0U}, { 439U, 5U}, { 450U, 160U}}; static u16 r2057_rev9_init[31U][2U] = { { 39U, 31U}, { 40U, 10U}, { 41U, 47U}, { 66U, 31U}, { 72U, 63U}, { 92U, 65U}, { 99U, 20U}, { 100U, 18U}, { 102U, 255U}, { 116U, 163U}, { 123U, 20U}, { 124U, 20U}, { 125U, 238U}, { 134U, 192U}, { 196U, 16U}, { 201U, 1U}, { 225U, 65U}, { 232U, 20U}, { 233U, 18U}, { 235U, 255U}, { 245U, 10U}, { 248U, 9U}, { 249U, 163U}, { 256U, 20U}, { 257U, 16U}, { 258U, 238U}, { 267U, 192U}, { 329U, 16U}, { 334U, 1U}, { 439U, 5U}, { 450U, 160U}}; static u16 r2057_rev14_init[17U][2U] = { { 17U, 252U}, { 48U, 36U}, { 64U, 28U}, { 130U, 8U}, { 180U, 68U}, { 200U, 1U}, { 201U, 1U}, { 263U, 8U}, { 333U, 1U}, { 334U, 1U}, { 431U, 64U}, { 432U, 64U}, { 460U, 1U}, { 463U, 16U}, { 464U, 15U}, { 467U, 16U}, { 468U, 15U}}; static struct b43_nphy_chantabent_rev7_2g const b43_nphy_chantab_phy_rev8_radio_rev5[14U] = { {2412U, 72U, 22U, 48U, 27U, 10U, 10U, 48U, 108U, 9U, 13U, 8U, 14U, 97U, 3U, 255U, 97U, 3U, 255U, {969U, 965U, 961U, 1082U, 1087U, 1091U}}, {2417U, 75U, 22U, 48U, 27U, 10U, 10U, 48U, 113U, 9U, 13U, 8U, 14U, 97U, 3U, 255U, 97U, 3U, 255U, {971U, 967U, 963U, 1080U, 1085U, 1089U}}, {2422U, 78U, 22U, 48U, 27U, 10U, 10U, 48U, 118U, 9U, 13U, 8U, 14U, 97U, 3U, 239U, 97U, 3U, 239U, {973U, 969U, 965U, 1078U, 1082U, 1087U}}, {2427U, 82U, 22U, 48U, 27U, 10U, 10U, 48U, 123U, 9U, 12U, 8U, 14U, 97U, 3U, 223U, 97U, 3U, 223U, {975U, 971U, 967U, 1076U, 1080U, 1085U}}, {2432U, 85U, 22U, 48U, 27U, 10U, 10U, 48U, 128U, 9U, 12U, 7U, 13U, 97U, 3U, 207U, 97U, 3U, 207U, {977U, 973U, 969U, 1073U, 1078U, 1082U}}, {2437U, 88U, 22U, 48U, 27U, 10U, 10U, 48U, 133U, 9U, 12U, 7U, 13U, 97U, 3U, 191U, 97U, 3U, 191U, {979U, 975U, 971U, 1071U, 1076U, 1080U}}, {2442U, 92U, 22U, 48U, 27U, 10U, 10U, 48U, 138U, 9U, 11U, 7U, 13U, 97U, 3U, 175U, 97U, 3U, 175U, {981U, 977U, 973U, 1069U, 1073U, 1078U}}, {2447U, 95U, 22U, 48U, 27U, 10U, 10U, 48U, 143U, 9U, 11U, 7U, 13U, 97U, 3U, 159U, 97U, 3U, 159U, {983U, 979U, 975U, 1067U, 1071U, 1076U}}, {2452U, 98U, 22U, 48U, 27U, 10U, 10U, 48U, 148U, 9U, 11U, 7U, 13U, 97U, 3U, 143U, 97U, 3U, 143U, {985U, 981U, 977U, 1065U, 1069U, 1073U}}, {2457U, 102U, 22U, 48U, 27U, 10U, 10U, 48U, 153U, 9U, 11U, 7U, 12U, 97U, 3U, 127U, 97U, 3U, 127U, {987U, 983U, 979U, 1063U, 1067U, 1071U}}, {2462U, 105U, 22U, 48U, 27U, 10U, 10U, 48U, 158U, 9U, 11U, 7U, 12U, 97U, 3U, 111U, 97U, 3U, 111U, {989U, 985U, 981U, 1060U, 1065U, 1069U}}, {2467U, 108U, 22U, 48U, 27U, 10U, 10U, 48U, 163U, 9U, 11U, 6U, 12U, 97U, 3U, 95U, 97U, 3U, 95U, {991U, 987U, 983U, 1058U, 1063U, 1067U}}, {2472U, 112U, 22U, 48U, 27U, 10U, 10U, 48U, 168U, 9U, 10U, 6U, 11U, 97U, 3U, 79U, 97U, 3U, 79U, {993U, 989U, 985U, 1056U, 1060U, 1065U}}, {2484U, 120U, 22U, 48U, 27U, 10U, 10U, 48U, 180U, 9U, 10U, 6U, 11U, 97U, 3U, 63U, 97U, 3U, 63U, {998U, 994U, 990U, 1051U, 1055U, 1060U}}}; static struct b43_nphy_chantabent_rev7_2g const b43_nphy_chantab_phy_rev17_radio_rev14[11U] = { {2412U, 72U, 22U, 48U, 43U, 31U, 31U, 48U, 108U, 9U, 13U, 9U, 3U, 33U, 83U, 255U, 33U, 83U, 255U, {969U, 965U, 961U, 1082U, 1087U, 1091U}}, {2417U, 75U, 22U, 48U, 43U, 31U, 31U, 48U, 113U, 9U, 13U, 8U, 3U, 33U, 83U, 255U, 33U, 83U, 255U, {971U, 967U, 963U, 1080U, 1085U, 1089U}}, {2422U, 78U, 22U, 48U, 43U, 31U, 31U, 48U, 118U, 9U, 13U, 8U, 3U, 33U, 83U, 255U, 33U, 83U, 255U, {973U, 969U, 965U, 1078U, 1082U, 1087U}}, {2427U, 82U, 22U, 48U, 43U, 31U, 31U, 48U, 123U, 9U, 12U, 8U, 3U, 33U, 83U, 255U, 33U, 83U, 255U, {975U, 971U, 967U, 1076U, 1080U, 1085U}}, {2432U, 85U, 22U, 48U, 43U, 31U, 31U, 48U, 128U, 9U, 12U, 8U, 3U, 33U, 83U, 255U, 33U, 83U, 255U, {977U, 973U, 969U, 1073U, 1078U, 1082U}}, {2437U, 88U, 22U, 48U, 43U, 31U, 31U, 48U, 133U, 9U, 12U, 8U, 3U, 33U, 83U, 255U, 33U, 83U, 255U, {979U, 975U, 971U, 1071U, 1076U, 1080U}}, {2442U, 92U, 22U, 48U, 43U, 31U, 31U, 48U, 138U, 9U, 12U, 8U, 3U, 33U, 67U, 255U, 33U, 67U, 255U, {981U, 977U, 973U, 1069U, 1073U, 1078U}}, {2447U, 95U, 22U, 48U, 43U, 31U, 31U, 48U, 143U, 9U, 12U, 8U, 3U, 33U, 67U, 255U, 33U, 67U, 255U, {983U, 979U, 975U, 1067U, 1071U, 1076U}}, {2452U, 98U, 22U, 48U, 43U, 31U, 31U, 48U, 148U, 9U, 12U, 8U, 3U, 33U, 67U, 255U, 33U, 67U, 255U, {985U, 981U, 977U, 1065U, 1069U, 1073U}}, {2457U, 102U, 22U, 48U, 43U, 31U, 31U, 48U, 153U, 9U, 11U, 7U, 3U, 33U, 67U, 255U, 33U, 67U, 255U, {987U, 983U, 979U, 1063U, 1067U, 1071U}}, {2462U, 105U, 22U, 48U, 43U, 31U, 31U, 48U, 158U, 9U, 11U, 7U, 3U, 1U, 67U, 255U, 1U, 67U, 255U, {989U, 985U, 981U, 1060U, 1065U, 1069U}}}; static struct b43_nphy_chantabent_rev7 const b43_nphy_chantab_phy_rev16_radio_rev9[20U] = { {2412U, 72U, 22U, 48U, 27U, 10U, 10U, 48U, 108U, 9U, 15U, 10U, 0U, 10U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, {969U, 965U, 961U, 1082U, 1087U, 1091U}}, {2417U, 75U, 22U, 48U, 27U, 10U, 10U, 48U, 113U, 9U, 15U, 10U, 0U, 10U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, {971U, 967U, 963U, 1080U, 1085U, 1089U}}, {2422U, 78U, 22U, 48U, 27U, 10U, 10U, 48U, 118U, 9U, 15U, 9U, 0U, 9U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, {973U, 969U, 965U, 1078U, 1082U, 1087U}}, {2427U, 82U, 22U, 48U, 27U, 10U, 10U, 48U, 123U, 9U, 15U, 9U, 0U, 9U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, {975U, 971U, 967U, 1076U, 1080U, 1085U}}, {2432U, 85U, 22U, 48U, 27U, 10U, 10U, 48U, 128U, 9U, 15U, 8U, 0U, 8U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, {977U, 973U, 969U, 1073U, 1078U, 1082U}}, {2437U, 88U, 22U, 48U, 27U, 10U, 10U, 48U, 133U, 9U, 15U, 8U, 0U, 8U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, {979U, 975U, 971U, 1071U, 1076U, 1080U}}, {2442U, 92U, 22U, 48U, 27U, 10U, 10U, 48U, 138U, 9U, 15U, 7U, 0U, 7U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, {981U, 977U, 973U, 1069U, 1073U, 1078U}}, {2447U, 95U, 22U, 48U, 27U, 10U, 10U, 48U, 143U, 9U, 15U, 7U, 0U, 7U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, {983U, 979U, 975U, 1067U, 1071U, 1076U}}, {2452U, 98U, 22U, 48U, 27U, 10U, 10U, 48U, 148U, 9U, 15U, 7U, 0U, 7U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, {985U, 981U, 977U, 1065U, 1069U, 1073U}}, {2457U, 102U, 22U, 48U, 27U, 10U, 10U, 48U, 153U, 9U, 15U, 6U, 0U, 6U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, {987U, 983U, 979U, 1063U, 1067U, 1071U}}, {2462U, 105U, 22U, 48U, 27U, 10U, 10U, 48U, 158U, 9U, 15U, 6U, 0U, 6U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, 65U, 99U, 0U, 0U, 0U, 240U, 0U, {989U, 985U, 981U, 1060U, 1065U, 1069U}}, {5180U, 190U, 22U, 16U, 31U, 8U, 8U, 63U, 6U, 2U, 14U, 0U, 14U, 0U, 158U, 0U, 0U, 159U, 47U, 163U, 0U, 252U, 0U, 0U, 79U, 58U, 131U, 0U, 252U, {2076U, 2072U, 2068U, 505U, 506U, 507U}}, {5200U, 197U, 22U, 16U, 31U, 8U, 8U, 63U, 8U, 2U, 14U, 0U, 14U, 0U, 158U, 0U, 0U, 127U, 47U, 131U, 0U, 248U, 0U, 0U, 76U, 74U, 131U, 0U, 248U, {2084U, 2080U, 2076U, 503U, 504U, 505U}}, {5220U, 204U, 22U, 16U, 31U, 8U, 8U, 63U, 10U, 2U, 14U, 0U, 14U, 0U, 158U, 0U, 0U, 109U, 61U, 131U, 0U, 248U, 0U, 0U, 45U, 42U, 115U, 0U, 248U, {2092U, 2088U, 2084U, 501U, 502U, 503U}}, {5240U, 210U, 22U, 16U, 31U, 8U, 8U, 63U, 12U, 2U, 13U, 0U, 13U, 0U, 141U, 0U, 0U, 77U, 28U, 115U, 0U, 248U, 0U, 0U, 77U, 43U, 115U, 0U, 248U, {2100U, 2096U, 2092U, 499U, 500U, 501U}}, {5745U, 123U, 23U, 32U, 31U, 8U, 8U, 63U, 125U, 4U, 8U, 0U, 6U, 0U, 21U, 0U, 0U, 8U, 3U, 3U, 0U, 48U, 0U, 0U, 6U, 2U, 3U, 0U, 48U, {2302U, 2298U, 2294U, 456U, 456U, 457U}}, {5765U, 129U, 23U, 32U, 31U, 8U, 8U, 63U, 129U, 4U, 8U, 0U, 6U, 0U, 21U, 0U, 0U, 6U, 3U, 3U, 0U, 0U, 0U, 0U, 5U, 2U, 3U, 0U, 0U, {2310U, 2306U, 2302U, 454U, 455U, 456U}}, {5785U, 136U, 23U, 32U, 31U, 8U, 8U, 63U, 133U, 4U, 8U, 0U, 6U, 0U, 21U, 0U, 0U, 8U, 3U, 3U, 0U, 0U, 0U, 0U, 5U, 33U, 3U, 0U, 0U, {2318U, 2314U, 2310U, 452U, 453U, 454U}}, {5805U, 143U, 23U, 32U, 31U, 8U, 8U, 63U, 137U, 4U, 7U, 0U, 6U, 0U, 4U, 0U, 0U, 6U, 3U, 3U, 0U, 0U, 0U, 0U, 3U, 0U, 3U, 0U, 0U, {2326U, 2322U, 2318U, 451U, 452U, 452U}}, {5825U, 149U, 23U, 32U, 31U, 8U, 8U, 63U, 141U, 4U, 7U, 0U, 5U, 0U, 3U, 0U, 0U, 5U, 3U, 3U, 0U, 0U, 0U, 0U, 3U, 0U, 3U, 0U, 0U, {2334U, 2330U, 2326U, 449U, 450U, 451U}}}; void r2057_upload_inittabs(struct b43_wldev *dev ) { struct b43_phy *phy ; u16 *table ; u16 size ; u16 i ; int __ret_warn_on ; long tmp ; { phy = & dev->phy; table = (u16 *)0U; switch ((int )phy->rev) { case 7: table = (u16 *)(& r2057_rev4_init); size = 42U; goto ldv_54071; case 8: ; if ((unsigned int )phy->radio_rev == 5U) { table = (u16 *)(& r2057_rev5_init); size = 44U; } else if ((unsigned int )phy->radio_rev == 7U) { table = (u16 *)(& r2057_rev7_init); size = 54U; } else { } goto ldv_54071; case 9: ; if ((unsigned int )phy->radio_rev == 5U) { table = (u16 *)(& r2057_rev5a_init); size = 45U; } else { } goto ldv_54071; case 16: ; if ((unsigned int )phy->radio_rev == 9U) { table = (u16 *)(& r2057_rev9_init); size = 31U; } else { } goto ldv_54071; case 17: ; if ((unsigned int )phy->radio_rev == 14U) { table = (u16 *)(& r2057_rev14_init); size = 17U; } else { } goto ldv_54071; } ldv_54071: __ret_warn_on = (unsigned long )table == (unsigned long )((u16 *)0U); tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/radio_2057.c", 577); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if ((unsigned long )table != (unsigned long )((u16 *)0U)) { i = 0U; goto ldv_54089; ldv_54088: b43_radio_write(dev, (int )*table, (int )*(table + 1UL)); i = (u16 )((int )i + 1); table = table + 2UL; ldv_54089: ; if ((int )i < (int )size) { goto ldv_54088; } else { } } else { } return; } } void r2057_get_chantabent_rev7(struct b43_wldev *dev , u16 freq , struct b43_nphy_chantabent_rev7 const **tabent_r7 , struct b43_nphy_chantabent_rev7_2g const **tabent_r7_2g ) { struct b43_phy *phy ; struct b43_nphy_chantabent_rev7 const *e_r7 ; struct b43_nphy_chantabent_rev7_2g const *e_r7_2g ; unsigned int len ; unsigned int i ; int __ret_warn_on ; long tmp ; { phy = & dev->phy; e_r7 = (struct b43_nphy_chantabent_rev7 const *)0; e_r7_2g = (struct b43_nphy_chantabent_rev7_2g const *)0; *tabent_r7 = (struct b43_nphy_chantabent_rev7 const *)0; *tabent_r7_2g = (struct b43_nphy_chantabent_rev7_2g const *)0; switch ((int )phy->rev) { case 8: ; if ((unsigned int )phy->radio_rev == 5U) { e_r7_2g = (struct b43_nphy_chantabent_rev7_2g const *)(& b43_nphy_chantab_phy_rev8_radio_rev5); len = 14U; } else { } goto ldv_54105; case 16: ; if ((unsigned int )phy->radio_rev == 9U) { e_r7 = (struct b43_nphy_chantabent_rev7 const *)(& b43_nphy_chantab_phy_rev16_radio_rev9); len = 20U; } else { } goto ldv_54105; case 17: ; if ((unsigned int )phy->radio_rev == 14U) { e_r7_2g = (struct b43_nphy_chantabent_rev7_2g const *)(& b43_nphy_chantab_phy_rev17_radio_rev14); len = 11U; } else { } goto ldv_54105; default: ; goto ldv_54105; } ldv_54105: ; if ((unsigned long )e_r7 != (unsigned long )((struct b43_nphy_chantabent_rev7 const *)0)) { i = 0U; goto ldv_54114; ldv_54113: ; if ((int )((unsigned short )e_r7->freq) == (int )freq) { *tabent_r7 = e_r7; return; } else { } i = i + 1U; e_r7 = e_r7 + 1; ldv_54114: ; if (i < len) { goto ldv_54113; } else { } } else if ((unsigned long )e_r7_2g != (unsigned long )((struct b43_nphy_chantabent_rev7_2g const *)0)) { i = 0U; goto ldv_54117; ldv_54116: ; if ((int )((unsigned short )e_r7_2g->freq) == (int )freq) { *tabent_r7_2g = e_r7_2g; return; } else { } i = i + 1U; e_r7_2g = e_r7_2g + 1; ldv_54117: ; if (i < len) { goto ldv_54116; } else { } } else { __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/radio_2057.c", 635); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); } return; } } bool ldv_queue_work_on_193(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_194(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_195(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_196(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_197(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_198(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; extern unsigned long round_jiffies(unsigned long ) ; bool ldv_queue_work_on_209(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_211(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_210(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_213(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_212(struct workqueue_struct *ldv_func_arg1 ) ; void b43_phy_copy(struct b43_wldev *dev , u16 destreg , u16 srcreg ) ; bool b43_radio_wait_value(struct b43_wldev *dev , u16 offset , u16 mask , u16 value , int delay , int timeout ) ; void b43_phy_force_clock(struct b43_wldev *dev , bool force ) ; struct b43_c32 b43_cordic(int theta ) ; struct b43_phy_operations const b43_phyops_n ; struct b43_phy_operations const b43_phyops_lp ; struct b43_phy_operations const b43_phyops_ht ; int ldv_request_threaded_irq_214(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; extern void __udelay(unsigned long ) ; extern void usleep_range(unsigned long , unsigned long ) ; __inline static bool b43_bus_host_is_pci(struct b43_bus_dev *dev ) { { if ((unsigned int )dev->bus_type == 0U) { return ((unsigned int )((dev->__annonCompField105.bdev)->bus)->hosttype == 0U); } else { } if ((unsigned int )dev->bus_type == 1U) { return ((unsigned int )((dev->__annonCompField105.sdev)->bus)->bustype == 1U); } else { } return (0); } } int b43_phy_allocate(struct b43_wldev *dev ) { struct b43_phy *phy ; int err ; int __ret_warn_on ; long tmp ; long tmp___0 ; { phy = & dev->phy; phy->ops = (struct b43_phy_operations const *)0; switch ((int )phy->type) { case 2: phy->ops = & b43_phyops_g; goto ldv_54179; case 4: phy->ops = & b43_phyops_n; goto ldv_54179; case 5: phy->ops = & b43_phyops_lp; goto ldv_54179; case 7: phy->ops = & b43_phyops_ht; goto ldv_54179; case 8: ; goto ldv_54179; case 11: ; goto ldv_54179; } ldv_54179: __ret_warn_on = (unsigned long )phy->ops == (unsigned long )((struct b43_phy_operations const *)0); tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_common.c", 80); } else { } tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { return (-19); } else { } err = (*((phy->ops)->allocate))(dev); if (err != 0) { phy->ops = (struct b43_phy_operations const *)0; } else { } return (err); } } void b43_phy_free(struct b43_wldev *dev ) { { (*((dev->phy.ops)->free))(dev); dev->phy.ops = (struct b43_phy_operations const *)0; return; } } int b43_phy_init(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_operations const *ops ; int err ; { phy = & dev->phy; ops = phy->ops; if ((unsigned long )phy->chandef == (unsigned long )((struct cfg80211_chan_def *)0)) { phy->chandef = & ((dev->wl)->hw)->conf.chandef; phy->channel = (unsigned int )((phy->chandef)->chan)->hw_value; } else { } (*((phy->ops)->switch_analog))(dev, 1); b43_software_rfkill(dev, 0); err = (*(ops->init))(dev); if (err != 0) { b43err(dev->wl, "PHY init failed\n"); goto err_block_rf; } else { } phy->do_full_init = 0; err = b43_switch_channel(dev, phy->channel); if (err != 0) { b43err(dev->wl, "PHY init: Channel switch to default failed\n"); goto err_phy_exit; } else { } return (0); err_phy_exit: phy->do_full_init = 1; if ((unsigned long )ops->exit != (unsigned long )((void (*/* const */)(struct b43_wldev * ))0)) { (*(ops->exit))(dev); } else { } err_block_rf: b43_software_rfkill(dev, 1); return (err); } } void b43_phy_exit(struct b43_wldev *dev ) { struct b43_phy_operations const *ops ; { ops = dev->phy.ops; b43_software_rfkill(dev, 1); dev->phy.do_full_init = 1; if ((unsigned long )ops->exit != (unsigned long )((void (*/* const */)(struct b43_wldev * ))0)) { (*(ops->exit))(dev); } else { } return; } } bool b43_has_hardware_pctl(struct b43_wldev *dev ) { bool tmp ; { if (! dev->phy.hardware_power_control) { return (0); } else { } if ((unsigned long )(dev->phy.ops)->supports_hwpctl == (unsigned long )((bool (*/* const */)(struct b43_wldev * ))0)) { return (0); } else { } tmp = (*((dev->phy.ops)->supports_hwpctl))(dev); return (tmp); } } void b43_radio_lock(struct b43_wldev *dev ) { u32 macctl ; int __ret_warn_on ; long tmp ; { __ret_warn_on = (int )dev->phy.radio_locked; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_common.c", 162); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); dev->phy.radio_locked = 1; macctl = b43_read32(dev, 288); macctl = macctl | 524288U; b43_write32(dev, 288, macctl); b43_read32(dev, 288); __const_udelay(42950UL); return; } } void b43_radio_unlock(struct b43_wldev *dev ) { u32 macctl ; int __ret_warn_on ; long tmp ; { __ret_warn_on = ! dev->phy.radio_locked; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_common.c", 180); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); dev->phy.radio_locked = 0; b43_read16(dev, 992); macctl = b43_read32(dev, 288); macctl = macctl & 4294443007U; b43_write32(dev, 288, macctl); return; } } void b43_phy_lock(struct b43_wldev *dev ) { int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; int tmp___1 ; { __ret_warn_on = (int )dev->phy.phy_locked; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_common.c", 195); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); dev->phy.phy_locked = 1; __ret_warn_on___0 = (unsigned int )(dev->dev)->core_rev <= 2U; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_common.c", 198); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); tmp___1 = b43_is_mode(dev->wl, 3); if (tmp___1 == 0) { b43_power_saving_ctl_bits(dev, 4U); } else { } return; } } void b43_phy_unlock(struct b43_wldev *dev ) { int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; int tmp___1 ; { __ret_warn_on = ! dev->phy.phy_locked; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_common.c", 207); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); dev->phy.phy_locked = 0; __ret_warn_on___0 = (unsigned int )(dev->dev)->core_rev <= 2U; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_common.c", 210); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); tmp___1 = b43_is_mode(dev->wl, 3); if (tmp___1 == 0) { b43_power_saving_ctl_bits(dev, 0U); } else { } return; } } __inline static void assert_mac_suspended(struct b43_wldev *dev ) { int tmp ; { tmp = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp > 0 && dev->mac_suspended <= 0) { b43dbg(dev->wl, "PHY/RADIO register access with enabled MAC.\n"); dump_stack(); } else { } return; } } u16 b43_radio_read(struct b43_wldev *dev , u16 reg ) { u16 tmp ; { assert_mac_suspended(dev); dev->phy.writes_counter = 0U; tmp = (*((dev->phy.ops)->radio_read))(dev, (int )reg); return (tmp); } } void b43_radio_write(struct b43_wldev *dev , u16 reg , u16 value ) { bool tmp ; { assert_mac_suspended(dev); tmp = b43_bus_host_is_pci(dev->dev); if ((int )tmp) { dev->phy.writes_counter = (u8 )((int )dev->phy.writes_counter + 1); if ((unsigned int )dev->phy.writes_counter > 24U) { b43_read32(dev, 288); dev->phy.writes_counter = 1U; } else { } } else { } (*((dev->phy.ops)->radio_write))(dev, (int )reg, (int )value); return; } } void b43_radio_mask(struct b43_wldev *dev , u16 offset , u16 mask ) { u16 tmp ; { tmp = b43_radio_read(dev, (int )offset); b43_radio_write(dev, (int )offset, (int )tmp & (int )mask); return; } } void b43_radio_set(struct b43_wldev *dev , u16 offset , u16 set ) { u16 tmp ; { tmp = b43_radio_read(dev, (int )offset); b43_radio_write(dev, (int )offset, (int )tmp | (int )set); return; } } void b43_radio_maskset(struct b43_wldev *dev , u16 offset , u16 mask , u16 set ) { u16 tmp ; { tmp = b43_radio_read(dev, (int )offset); b43_radio_write(dev, (int )offset, ((int )tmp & (int )mask) | (int )set); return; } } bool b43_radio_wait_value(struct b43_wldev *dev , u16 offset , u16 mask , u16 value , int delay , int timeout ) { u16 val ; int i ; { i = 0; goto ldv_54270; ldv_54269: val = b43_radio_read(dev, (int )offset); if (((int )val & (int )mask) == (int )value) { return (1); } else { } __udelay((unsigned long )delay); i = i + delay; ldv_54270: ; if (i < timeout) { goto ldv_54269; } else { } return (0); } } u16 b43_phy_read(struct b43_wldev *dev , u16 reg ) { u16 tmp ; u16 tmp___0 ; { assert_mac_suspended(dev); dev->phy.writes_counter = 0U; if ((unsigned long )(dev->phy.ops)->phy_read != (unsigned long )((u16 (*/* const */)(struct b43_wldev * , u16 ))0)) { tmp = (*((dev->phy.ops)->phy_read))(dev, (int )reg); return (tmp); } else { } b43_write16f(dev, 1020, (int )reg); tmp___0 = b43_read16(dev, 1022); return (tmp___0); } } void b43_phy_write(struct b43_wldev *dev , u16 reg , u16 value ) { bool tmp ; { assert_mac_suspended(dev); tmp = b43_bus_host_is_pci(dev->dev); if ((int )tmp) { dev->phy.writes_counter = (u8 )((int )dev->phy.writes_counter + 1); if ((unsigned int )dev->phy.writes_counter > 24U) { b43_read16(dev, 992); dev->phy.writes_counter = 1U; } else { } } else { } if ((unsigned long )(dev->phy.ops)->phy_write != (unsigned long )((void (*/* const */)(struct b43_wldev * , u16 , u16 ))0)) { return; } else { } b43_write16f(dev, 1020, (int )reg); b43_write16(dev, 1022, (int )value); return; } } void b43_phy_copy(struct b43_wldev *dev , u16 destreg , u16 srcreg ) { u16 tmp ; { tmp = b43_phy_read(dev, (int )srcreg); b43_phy_write(dev, (int )destreg, (int )tmp); return; } } void b43_phy_mask(struct b43_wldev *dev , u16 offset , u16 mask ) { u16 tmp ; { if ((unsigned long )(dev->phy.ops)->phy_maskset != (unsigned long )((void (*/* const */)(struct b43_wldev * , u16 , u16 , u16 ))0)) { assert_mac_suspended(dev); (*((dev->phy.ops)->phy_maskset))(dev, (int )offset, (int )mask, 0); } else { tmp = b43_phy_read(dev, (int )offset); b43_phy_write(dev, (int )offset, (int )tmp & (int )mask); } return; } } void b43_phy_set(struct b43_wldev *dev , u16 offset , u16 set ) { u16 tmp ; { if ((unsigned long )(dev->phy.ops)->phy_maskset != (unsigned long )((void (*/* const */)(struct b43_wldev * , u16 , u16 , u16 ))0)) { assert_mac_suspended(dev); (*((dev->phy.ops)->phy_maskset))(dev, (int )offset, 65535, (int )set); } else { tmp = b43_phy_read(dev, (int )offset); b43_phy_write(dev, (int )offset, (int )tmp | (int )set); } return; } } void b43_phy_maskset(struct b43_wldev *dev , u16 offset , u16 mask , u16 set ) { u16 tmp ; { if ((unsigned long )(dev->phy.ops)->phy_maskset != (unsigned long )((void (*/* const */)(struct b43_wldev * , u16 , u16 , u16 ))0)) { assert_mac_suspended(dev); (*((dev->phy.ops)->phy_maskset))(dev, (int )offset, (int )mask, (int )set); } else { tmp = b43_phy_read(dev, (int )offset); b43_phy_write(dev, (int )offset, ((int )tmp & (int )mask) | (int )set); } return; } } void b43_phy_put_into_reset(struct b43_wldev *dev ) { u32 tmp ; { switch ((unsigned int )(dev->dev)->bus_type) { case 0U: tmp = bcma_aread32((dev->dev)->__annonCompField105.bdev, 1032); tmp = tmp & 4294959103U; tmp = tmp | 8U; tmp = tmp | 2U; bcma_awrite32((dev->dev)->__annonCompField105.bdev, 1032, tmp); __const_udelay(4295UL); tmp = bcma_aread32((dev->dev)->__annonCompField105.bdev, 1032); tmp = tmp & 4294967293U; bcma_awrite32((dev->dev)->__annonCompField105.bdev, 1032, tmp); __const_udelay(4295UL); goto ldv_54307; case 1U: tmp = ssb_read32((dev->dev)->__annonCompField105.sdev, 3992); tmp = tmp & 3758096383U; tmp = tmp | 524288U; tmp = tmp | 131072U; ssb_write32((dev->dev)->__annonCompField105.sdev, 3992, tmp); usleep_range(1000UL, 2000UL); tmp = ssb_read32((dev->dev)->__annonCompField105.sdev, 3992); tmp = tmp & 4294836223U; ssb_write32((dev->dev)->__annonCompField105.sdev, 3992, tmp); usleep_range(1000UL, 2000UL); goto ldv_54307; } ldv_54307: ; return; } } void b43_phy_take_out_of_reset(struct b43_wldev *dev ) { u32 tmp ; { switch ((unsigned int )(dev->dev)->bus_type) { case 0U: tmp = bcma_aread32((dev->dev)->__annonCompField105.bdev, 1032); tmp = tmp & 4294967287U; tmp = tmp & 4294967291U; tmp = tmp | 2U; bcma_awrite32((dev->dev)->__annonCompField105.bdev, 1032, tmp); __const_udelay(4295UL); tmp = bcma_aread32((dev->dev)->__annonCompField105.bdev, 1032); tmp = tmp & 4294967293U; tmp = tmp | 4U; bcma_awrite32((dev->dev)->__annonCompField105.bdev, 1032, tmp); __const_udelay(4295UL); goto ldv_54314; case 1U: tmp = ssb_read32((dev->dev)->__annonCompField105.sdev, 3992); tmp = tmp & 4294443007U; tmp = tmp & 4294705151U; tmp = tmp | 131072U; ssb_write32((dev->dev)->__annonCompField105.sdev, 3992, tmp); ssb_read32((dev->dev)->__annonCompField105.sdev, 3992); usleep_range(1000UL, 2000UL); tmp = ssb_read32((dev->dev)->__annonCompField105.sdev, 3992); tmp = tmp & 4294836223U; tmp = tmp | 262144U; ssb_write32((dev->dev)->__annonCompField105.sdev, 3992, tmp); ssb_read32((dev->dev)->__annonCompField105.sdev, 3992); usleep_range(1000UL, 2000UL); goto ldv_54314; } ldv_54314: ; return; } } int b43_switch_channel(struct b43_wldev *dev , unsigned int new_channel ) { struct b43_phy *phy ; u16 channelcookie ; u16 savedcookie ; int err ; enum ieee80211_band tmp ; { phy = & dev->phy; channelcookie = (u16 )new_channel; tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 1U) { channelcookie = (u16 )((unsigned int )channelcookie | 256U); } else { } savedcookie = b43_shm_read16(dev, 1, 160); b43_shm_write16(dev, 1, 160, (int )channelcookie); err = (*((phy->ops)->switch_channel))(dev, new_channel); if (err != 0) { goto err_restore_cookie; } else { } msleep(8U); return (0); err_restore_cookie: b43_shm_write16(dev, 1, 160, (int )savedcookie); return (err); } } void b43_software_rfkill(struct b43_wldev *dev , bool blocked ) { struct b43_phy *phy ; { phy = & dev->phy; b43_mac_suspend(dev); (*((phy->ops)->software_rfkill))(dev, (int )blocked); phy->radio_on = (bool )(! ((int )blocked != 0)); b43_mac_enable(dev); return; } } void b43_phy_txpower_adjust_work(struct work_struct *work ) { struct b43_wl *wl ; struct work_struct const *__mptr ; struct b43_wldev *dev ; int tmp ; int tmp___0 ; long tmp___1 ; { __mptr = (struct work_struct const *)work; wl = (struct b43_wl *)__mptr + 0xfffffffffffffd20UL; mutex_lock_nested(& wl->mutex, 0U); dev = wl->current_dev; if ((unsigned long )dev != (unsigned long )((struct b43_wldev *)0)) { tmp = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp > 1) { tmp___0 = 1; } else { tmp___0 = 0; } } else { tmp___0 = 0; } tmp___1 = ldv__builtin_expect((long )tmp___0, 1L); if (tmp___1 != 0L) { (*((dev->phy.ops)->adjust_txpower))(dev); } else { } mutex_unlock(& wl->mutex); return; } } void b43_phy_txpower_check(struct b43_wldev *dev , unsigned int flags ) { struct b43_phy *phy ; unsigned long now ; enum b43_txpwr_result result ; int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; { phy = & dev->phy; now = jiffies; if ((flags & 1U) == 0U) { if ((long )(now - phy->next_txpwr_check_time) < 0L) { return; } else { } } else { } phy->next_txpwr_check_time = round_jiffies(now + 500UL); if ((unsigned int )(dev->dev)->board_vendor == 5348U && (unsigned int )(dev->dev)->board_type == 1046U) { return; } else { } result = (*((phy->ops)->recalc_txpower))(dev, (flags & 2U) != 0U); if ((unsigned int )result == 1U) { return; } else { } __ret_warn_on = (unsigned int )result != 0U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_common.c", 515); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); __ret_warn_on___0 = (unsigned long )(phy->ops)->adjust_txpower == (unsigned long )((void (*/* const */)(struct b43_wldev * ))0); tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_common.c", 516); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); ieee80211_queue_work((dev->wl)->hw, & (dev->wl)->txpower_adjust_work); return; } } int b43_phy_shm_tssi_read(struct b43_wldev *dev , u16 shm_offset ) { bool is_ofdm ; unsigned int a ; unsigned int b ; unsigned int c ; unsigned int d ; unsigned int average ; u32 tmp ; u16 tmp___0 ; { is_ofdm = (unsigned int )shm_offset != 88U; tmp = b43_shm_read32(dev, 1, (int )shm_offset); a = tmp & 255U; b = (tmp >> 8) & 255U; c = (tmp >> 16) & 255U; d = tmp >> 24; if (((((((a == 0U || a == 127U) || b == 0U) || b == 127U) || c == 0U) || c == 127U) || d == 0U) || d == 127U) { return (-2); } else { } tmp = 2139062143U; b43_shm_write32(dev, 1, (int )shm_offset, tmp); if ((int )is_ofdm) { a = (a + 32U) & 63U; b = (b + 32U) & 63U; c = (c + 32U) & 63U; d = (d + 32U) & 63U; } else { } average = ((((a + b) + c) + d) + 2U) / 4U; if ((int )is_ofdm) { tmp___0 = b43_shm_read16(dev, 1, 94); if (((unsigned long long )tmp___0 & 8ULL) != 0ULL) { average = average > 12U ? average - 13U : 0U; } else { } } else { } return ((int )average); } } void b43_phyop_switch_analog_generic(struct b43_wldev *dev , bool on ) { { b43_write16(dev, 998, (int )on ? 0 : 244); return; } } bool b43_is_40mhz(struct b43_wldev *dev ) { { return ((unsigned int )(dev->phy.chandef)->width == 2U); } } void b43_phy_force_clock(struct b43_wldev *dev , bool force ) { u32 tmp ; int __ret_warn_on ; long tmp___0 ; { __ret_warn_on = ((unsigned int )dev->phy.type != 4U && (unsigned int )dev->phy.type != 7U) && (unsigned int )dev->phy.type != 11U; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_common.c", 582); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); switch ((unsigned int )(dev->dev)->bus_type) { case 0U: tmp = bcma_aread32((dev->dev)->__annonCompField105.bdev, 1032); if ((int )force) { tmp = tmp | 2U; } else { tmp = tmp & 4294967293U; } bcma_awrite32((dev->dev)->__annonCompField105.bdev, 1032, tmp); goto ldv_54380; case 1U: tmp = ssb_read32((dev->dev)->__annonCompField105.sdev, 3992); if ((int )force) { tmp = tmp | 131072U; } else { tmp = tmp & 4294836223U; } ssb_write32((dev->dev)->__annonCompField105.sdev, 3992, tmp); goto ldv_54380; } ldv_54380: ; return; } } struct b43_c32 b43_cordic(int theta ) { u32 arctg[18U] ; u8 i ; s32 tmp ; s8 signx ; u32 angle ; struct b43_c32 ret ; { arctg[0] = 2949120U; arctg[1] = 1740967U; arctg[2] = 919879U; arctg[3] = 466945U; arctg[4] = 234379U; arctg[5] = 117304U; arctg[6] = 58666U; arctg[7] = 29335U; arctg[8] = 14668U; arctg[9] = 7334U; arctg[10] = 3667U; arctg[11] = 1833U; arctg[12] = 917U; arctg[13] = 458U; arctg[14] = 229U; arctg[15] = 115U; arctg[16] = 57U; arctg[17] = 29U; signx = 1; angle = 0U; ret.i = 39797; ret.q = 0; goto ldv_54392; ldv_54391: theta = theta + -23592960; ldv_54392: ; if (theta > 11796480) { goto ldv_54391; } else { } goto ldv_54395; ldv_54394: theta = theta + 23592960; ldv_54395: ; if (theta < -11796480) { goto ldv_54394; } else { } if (theta > 5898240) { theta = theta + -11796480; signx = -1; } else if (theta < -5898240) { theta = theta + 11796480; signx = -1; } else { } i = 0U; goto ldv_54398; ldv_54397: ; if ((u32 )theta > angle) { tmp = ret.i - (ret.q >> (int )i); ret.q = ret.q + (ret.i >> (int )i); ret.i = tmp; angle = arctg[(int )i] + angle; } else { tmp = ret.i + (ret.q >> (int )i); ret.q = ret.q - (ret.i >> (int )i); ret.i = tmp; angle = angle - arctg[(int )i]; } i = (u8 )((int )i + 1); ldv_54398: ; if ((unsigned int )i <= 17U) { goto ldv_54397; } else { } ret.i = ret.i * (int )signx; ret.q = ret.q * (int )signx; return (ret); } } bool ldv_queue_work_on_209(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_210(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_211(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_212(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_213(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_214(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; __inline static int fls(int x ) { int r ; { __asm__ ("bsrl %1,%0": "=r" (r): "rm" (x), "0" (-1)); return (r + 1); } } __inline static unsigned int __arch_hweight32(unsigned int w ) { unsigned int res ; { res = 0U; __asm__ ("661:\n\tcall __sw_hweight32\n662:\n.skip -(((6651f-6641f)-(662b-661b)) > 0) * ((6651f-6641f)-(662b-661b)),0x90\n663:\n.pushsection .altinstructions,\"a\"\n .long 661b - .\n .long 6641f - .\n .word ( 4*32+23)\n .byte 663b-661b\n .byte 6651f-6641f\n .byte 663b-662b\n.popsection\n.pushsection .altinstr_replacement, \"ax\"\n6641:\n\t.byte 0xf3,0x40,0x0f,0xb8,0xc7\n6651:\n\t.popsection": "=a" (res): "D" (w)); return (res); } } extern unsigned long int_sqrt(unsigned long ) ; bool ldv_queue_work_on_225(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_227(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_226(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_229(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_228(struct workqueue_struct *ldv_func_arg1 ) ; __inline static void *kmalloc_array(size_t n , size_t size , gfp_t flags ) { void *tmp ; { if (size != 0UL && 0xffffffffffffffffUL / size < n) { return ((void *)0); } else { } tmp = __kmalloc(n * size, flags); return (tmp); } } __inline static void *kcalloc(size_t n , size_t size , gfp_t flags ) { void *tmp ; { tmp = kmalloc_array(n, size, flags | 32768U); return (tmp); } } int ldv_request_threaded_irq_230(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; extern void bcma_pmu_spuravoid_pllupdate(struct bcma_drv_cc * , int ) ; extern u32 ssb_chipco_gpio_control(struct ssb_chipcommon * , u32 , u32 ) ; extern void ssb_pmu_spuravoid_pllupdate(struct ssb_chipcommon * , int ) ; __inline static enum nl80211_channel_type cfg80211_get_chandef_type(struct cfg80211_chan_def const *chandef ) { int __ret_warn_on ; long tmp ; { switch ((unsigned int )chandef->width) { case 0U: ; return (0); case 1U: ; return (1); case 2U: ; if ((unsigned int )chandef->center_freq1 > (unsigned int )(chandef->chan)->center_freq) { return (3); } else { } return (2); default: __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("include/net/cfg80211.h", 423); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return (0); } } } void b43_ppr_clear(struct b43_wldev *dev , struct b43_ppr *ppr ) ; void b43_ppr_apply_max(struct b43_wldev *dev , struct b43_ppr *ppr , u8 max ) ; void b43_ppr_apply_min(struct b43_wldev *dev , struct b43_ppr *ppr , u8 min ) ; u8 b43_ppr_get_max(struct b43_wldev *dev , struct b43_ppr *ppr ) ; bool b43_ppr_load_max_from_sprom(struct b43_wldev *dev , struct b43_ppr *ppr , enum b43_band band ) ; __inline static bool b43_nphy_ipa(struct b43_wldev *dev ) { enum ieee80211_band band ; enum ieee80211_band tmp ; { tmp = b43_current_band(dev->wl); band = tmp; return ((bool )(((int )(dev->phy.__annonCompField106.n)->ipa2g_on && (unsigned int )band == 0U) || ((int )(dev->phy.__annonCompField106.n)->ipa5g_on && (unsigned int )band == 1U))); } } static u8 b43_nphy_get_rx_core_state(struct b43_wldev *dev ) { u16 tmp ; { tmp = b43_phy_read(dev, 162); return ((u8 )(((int )tmp & 240) >> 4)); } } static void b43_nphy_force_rf_sequence(struct b43_wldev *dev , enum b43_nphy_rf_sequence seq ) { u16 trigger[6U] ; int i ; u16 seq_mode ; u16 tmp ; int __ret_warn_on ; long tmp___0 ; u16 tmp___1 ; { trigger[0] = 1U; trigger[1] = 2U; trigger[2] = 32U; trigger[3] = 4U; trigger[4] = 8U; trigger[5] = 16U; tmp = b43_phy_read(dev, 161); seq_mode = tmp; __ret_warn_on = (unsigned int )seq > 5U; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_n.c", 139); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_phy_set(dev, 161, 3); b43_phy_set(dev, 163, (int )trigger[(unsigned int )seq]); i = 0; goto ldv_54417; ldv_54416: tmp___1 = b43_phy_read(dev, 164); if ((unsigned int )((int )tmp___1 & (int )trigger[(unsigned int )seq]) == 0U) { goto ok; } else { } msleep(1U); i = i + 1; ldv_54417: ; if (i <= 199) { goto ldv_54416; } else { } b43err(dev->wl, "RF sequence status timeout\n"); ok: b43_phy_write(dev, 161, (int )seq_mode); return; } } static void b43_nphy_rf_ctl_override_rev19(struct b43_wldev *dev , u16 field , u16 value , u8 core , bool off , u8 override_id ) { { return; } } static void b43_nphy_rf_ctl_override_rev7(struct b43_wldev *dev , u16 field , u16 value , u8 core , bool off , u8 override ) { struct b43_phy *phy ; struct nphy_rf_control_override_rev7 const *e ; u16 en_addrs[3U][2U] ; u16 en_addr ; u16 en_mask ; u16 val_addr ; u8 i ; int __ret_warn_on ; long tmp ; { phy = & dev->phy; en_addrs[0][0] = 231U; en_addrs[0][1] = 236U; en_addrs[1][0] = 834U; en_addrs[1][1] = 835U; en_addrs[2][0] = 838U; en_addrs[2][1] = 839U; en_mask = field; if ((unsigned int )phy->rev > 18U || (unsigned int )phy->rev <= 2U) { __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_n.c", 177); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return; } else { } e = b43_nphy_get_rf_ctl_over_rev7(dev, (int )field, (int )override); i = 0U; goto ldv_54447; ldv_54446: ; if ((unsigned int )override > 2U) { b43err(dev->wl, "Invalid override value %d\n", (int )override); return; } else { } en_addr = en_addrs[(int )override][(int )i]; if ((unsigned long )e != (unsigned long )((struct nphy_rf_control_override_rev7 const *)0)) { val_addr = (unsigned int )i == 0U ? (u16 )e->val_addr_core0 : (u16 )e->val_addr_core1; } else { } if ((int )off) { b43_phy_mask(dev, (int )en_addr, ~ ((int )en_mask)); if ((unsigned long )e != (unsigned long )((struct nphy_rf_control_override_rev7 const *)0)) { b43_phy_mask(dev, (int )val_addr, ~ ((int )((u16 )e->val_mask))); } else { } } else if ((unsigned int )core == 0U || ((int )core >> (int )i) & 1) { b43_phy_set(dev, (int )en_addr, (int )en_mask); if ((unsigned long )e != (unsigned long )((struct nphy_rf_control_override_rev7 const *)0)) { b43_phy_maskset(dev, (int )val_addr, ~ ((int )((u16 )e->val_mask)), (int )((u16 )((int )value << (int )e->val_shift))); } else { } } else { } i = (u8 )((int )i + 1); ldv_54447: ; if ((unsigned int )i <= 1U) { goto ldv_54446; } else { } return; } } static void b43_nphy_rf_ctl_override_one_to_many(struct b43_wldev *dev , enum n_rf_ctl_over_cmd cmd , u16 value , u8 core , bool off ) { struct b43_phy *phy ; u16 tmp ; int __ret_warn_on ; long tmp___0 ; { phy = & dev->phy; __ret_warn_on = (unsigned int )phy->rev <= 6U; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_n.c", 216); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); switch ((unsigned int )cmd) { case 0U: b43_nphy_rf_ctl_override_rev7(dev, 32, (int )value, (int )core, (int )off, 1); b43_nphy_rf_ctl_override_rev7(dev, 16, (int )value, (int )core, (int )off, 1); b43_nphy_rf_ctl_override_rev7(dev, 8, (int )value, (int )core, (int )off, 1); goto ldv_54461; case 1U: b43_nphy_rf_ctl_override_rev7(dev, 4, (int )value, (int )core, (int )off, 1); b43_nphy_rf_ctl_override_rev7(dev, 2, (int )value, (int )core, (int )off, 1); b43_nphy_rf_ctl_override_rev7(dev, 1, (int )value, (int )core, (int )off, 1); b43_nphy_rf_ctl_override_rev7(dev, 2, (int )value, (int )core, (int )off, 2); b43_nphy_rf_ctl_override_rev7(dev, 2048, 0, (int )core, (int )off, 1); goto ldv_54461; case 2U: b43_nphy_rf_ctl_override_rev7(dev, 4, (int )value, (int )core, (int )off, 0); b43_nphy_rf_ctl_override_rev7(dev, 2, (int )value, (int )core, (int )off, 1); b43_nphy_rf_ctl_override_rev7(dev, 1, (int )value, (int )core, (int )off, 2); b43_nphy_rf_ctl_override_rev7(dev, 2048, 1, (int )core, (int )off, 1); goto ldv_54461; case 3U: tmp = (unsigned int )value & 255U; b43_nphy_rf_ctl_override_rev7(dev, 2048, (int )tmp, (int )core, (int )off, 0); tmp = (u16 )((int )value >> 8); b43_nphy_rf_ctl_override_rev7(dev, 24576, (int )tmp, (int )core, (int )off, 0); goto ldv_54461; case 4U: tmp = (unsigned int )value & 32767U; b43_nphy_rf_ctl_override_rev7(dev, 4096, (int )tmp, (int )core, (int )off, 0); tmp = (u16 )((int )value >> 14); b43_nphy_rf_ctl_override_rev7(dev, 16384, (int )tmp, (int )core, (int )off, 0); goto ldv_54461; } ldv_54461: ; return; } } static void b43_nphy_rf_ctl_override(struct b43_wldev *dev , u16 field , u16 value , u8 core , bool off ) { int i ; u8 index ; int tmp ; u8 addr ; u8 en_addr ; u8 val_addr ; int __ret_warn_on ; long tmp___0 ; struct nphy_rf_control_override_rev3 const *rf_ctrl ; struct nphy_rf_control_override_rev2 const *rf_ctrl___0 ; { tmp = fls((int )field); index = (u8 )tmp; __ret_warn_on = ((int )field & ~ (1 << ((int )index + -1))) != 0; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_n.c", 260); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if ((unsigned int )dev->phy.rev > 2U) { i = 0; goto ldv_54482; ldv_54481: ; if ((unsigned int )index == 0U || (unsigned int )index == 16U) { b43err(dev->wl, "Unsupported RF Ctrl Override call\n"); return; } else { } rf_ctrl = (struct nphy_rf_control_override_rev3 const *)(& tbl_rf_control_override_rev3) + ((unsigned long )index + 0xffffffffffffffffUL); en_addr = i == 0 ? (u8 )rf_ctrl->en_addr0 : (u8 )rf_ctrl->en_addr1; val_addr = i == 0 ? (u8 )rf_ctrl->val_addr0 : (u8 )rf_ctrl->val_addr1; if ((int )off) { b43_phy_mask(dev, (int )en_addr, ~ ((int )field)); b43_phy_mask(dev, (int )val_addr, ~ ((int )((u16 )rf_ctrl->val_mask))); } else if ((unsigned int )core == 0U || ((int )core >> i) & 1) { b43_phy_set(dev, (int )en_addr, (int )field); b43_phy_maskset(dev, (int )val_addr, ~ ((int )((u16 )rf_ctrl->val_mask)), (int )((u16 )((int )value << (int )rf_ctrl->val_shift))); } else { } i = i + 1; ldv_54482: ; if (i <= 1) { goto ldv_54481; } else { } } else { if ((int )off) { b43_phy_mask(dev, 236, ~ ((int )field)); value = 0U; } else { b43_phy_set(dev, 236, (int )field); } i = 0; goto ldv_54486; ldv_54485: ; if ((unsigned int )index <= 1U || (unsigned int )index == 16U) { b43err(dev->wl, "Unsupported RF Ctrl Override call\n"); return; } else { } if (((unsigned int )index == 2U || (unsigned int )index == 10U) || ((unsigned int )index > 12U && (unsigned int )index <= 15U)) { core = 1U; } else { } rf_ctrl___0 = (struct nphy_rf_control_override_rev2 const *)(& tbl_rf_control_override_rev2) + ((unsigned long )index + 0xfffffffffffffffeUL); addr = i == 0 ? (u8 )rf_ctrl___0->addr0 : (u8 )rf_ctrl___0->addr1; if (((int )core >> i) & 1) { b43_phy_maskset(dev, (int )addr, ~ ((int )((u16 )rf_ctrl___0->bmask)), (int )((u16 )((int )value << (int )rf_ctrl___0->shift))); } else { } b43_phy_set(dev, 236, 1); b43_phy_set(dev, 120, 1); __const_udelay(4295UL); b43_phy_mask(dev, 236, 65534); i = i + 1; ldv_54486: ; if (i <= 1) { goto ldv_54485; } else { } } return; } } static void b43_nphy_rf_ctl_intc_override_rev7(struct b43_wldev *dev , enum n_intc_override intc_override , u16 value , u8 core_sel ) { u16 reg ; u16 tmp ; u16 tmp2 ; u16 val ; int core ; enum ieee80211_band tmp___0 ; enum ieee80211_band tmp___1 ; enum ieee80211_band tmp___2 ; { core = 0; goto ldv_54507; ldv_54506: ; if (((unsigned int )core_sel == 1U && core != 0) || ((unsigned int )core_sel == 2U && core != 1)) { goto ldv_54499; } else { } reg = core == 0 ? 145U : 146U; switch ((unsigned int )intc_override) { case 0U: b43_phy_write(dev, (int )reg, 0); b43_phy_mask(dev, 767, 57343); b43_nphy_force_rf_sequence(dev, 2); goto ldv_54501; case 1U: b43_phy_maskset(dev, (int )reg, 65343, (int )value << 6U); b43_phy_set(dev, (int )reg, 1024); b43_phy_mask(dev, 767, 16383); b43_phy_set(dev, 767, 8192); b43_phy_set(dev, 767, 1); goto ldv_54501; case 2U: tmp = 48U; tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 1U) { val = (int )value << 5U; } else { val = (int )value << 4U; } b43_phy_maskset(dev, (int )reg, ~ ((int )tmp), (int )val); b43_phy_set(dev, (int )reg, 4096); goto ldv_54501; case 3U: tmp___1 = b43_current_band(dev->wl); if ((unsigned int )tmp___1 == 1U) { tmp = 1U; tmp2 = 4U; val = value; } else { tmp = 4U; tmp2 = 1U; val = (int )value << 2U; } b43_phy_maskset(dev, (int )reg, ~ ((int )tmp), (int )val); b43_phy_mask(dev, (int )reg, ~ ((int )tmp2)); goto ldv_54501; case 4U: tmp___2 = b43_current_band(dev->wl); if ((unsigned int )tmp___2 == 1U) { tmp = 2U; tmp2 = 8U; val = (int )value << 1U; } else { tmp = 8U; tmp2 = 2U; val = (int )value << 3U; } b43_phy_maskset(dev, (int )reg, ~ ((int )tmp), (int )val); b43_phy_mask(dev, (int )reg, ~ ((int )tmp2)); goto ldv_54501; } ldv_54501: ; ldv_54499: core = core + 1; ldv_54507: ; if (core <= 1) { goto ldv_54506; } else { } return; } } static void b43_nphy_rf_ctl_intc_override(struct b43_wldev *dev , enum n_intc_override intc_override , u16 value , u8 core ) { u8 i ; u8 j ; u16 reg ; u16 tmp ; u16 val ; int __ret_warn_on ; long tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; enum ieee80211_band tmp___3 ; enum ieee80211_band tmp___4 ; enum ieee80211_band tmp___5 ; { if ((unsigned int )dev->phy.rev > 6U) { b43_nphy_rf_ctl_intc_override_rev7(dev, intc_override, (int )value, (int )core); return; } else { } __ret_warn_on = (unsigned int )dev->phy.rev <= 2U; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_n.c", 411); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); i = 0U; goto ldv_54536; ldv_54535: ; if (((unsigned int )core == 1U && (unsigned int )i == 1U) || ((unsigned int )core == 2U && (unsigned int )i == 0U)) { goto ldv_54522; } else { } reg = (unsigned int )i == 0U ? 145U : 146U; b43_phy_set(dev, (int )reg, 1024); switch ((unsigned int )intc_override) { case 0U: b43_phy_write(dev, (int )reg, 0); b43_nphy_force_rf_sequence(dev, 2); goto ldv_54524; case 1U: ; if ((unsigned int )i == 0U) { b43_phy_maskset(dev, 145, 64575, (int )value << 6U); b43_phy_maskset(dev, 231, 65534, 1); b43_phy_set(dev, 120, 1); j = 0U; goto ldv_54528; ldv_54527: tmp___1 = b43_phy_read(dev, 120); if (((int )tmp___1 & 1) == 0) { j = 0U; goto ldv_54526; } else { } __const_udelay(42950UL); j = (u8 )((int )j + 1); ldv_54528: ; if ((unsigned int )j <= 99U) { goto ldv_54527; } else { } ldv_54526: ; if ((unsigned int )j != 0U) { b43err(dev->wl, "intc override timeout\n"); } else { } b43_phy_mask(dev, 231, 65534); } else { b43_phy_maskset(dev, 146, 64575, (int )value << 6U); b43_phy_maskset(dev, 236, 65534, 1); b43_phy_set(dev, 120, 2); j = 0U; goto ldv_54531; ldv_54530: tmp___2 = b43_phy_read(dev, 120); if (((int )tmp___2 & 2) == 0) { j = 0U; goto ldv_54529; } else { } __const_udelay(42950UL); j = (u8 )((int )j + 1); ldv_54531: ; if ((unsigned int )j <= 99U) { goto ldv_54530; } else { } ldv_54529: ; if ((unsigned int )j != 0U) { b43err(dev->wl, "intc override timeout\n"); } else { } b43_phy_mask(dev, 236, 65534); } goto ldv_54524; case 2U: tmp___3 = b43_current_band(dev->wl); if ((unsigned int )tmp___3 == 1U) { tmp = 32U; val = (int )value << 5U; } else { tmp = 16U; val = (int )value << 4U; } b43_phy_maskset(dev, (int )reg, ~ ((int )tmp), (int )val); goto ldv_54524; case 3U: tmp___4 = b43_current_band(dev->wl); if ((unsigned int )tmp___4 == 1U) { tmp = 1U; val = value; } else { tmp = 4U; val = (int )value << 2U; } b43_phy_maskset(dev, (int )reg, ~ ((int )tmp), (int )val); goto ldv_54524; case 4U: tmp___5 = b43_current_band(dev->wl); if ((unsigned int )tmp___5 == 1U) { tmp = 2U; val = (int )value << 1U; } else { tmp = 8U; val = (int )value << 3U; } b43_phy_maskset(dev, (int )reg, ~ ((int )tmp), (int )val); goto ldv_54524; } ldv_54524: ; ldv_54522: i = (u8 )((int )i + 1); ldv_54536: ; if ((unsigned int )i <= 1U) { goto ldv_54535; } else { } return; } } static void b43_nphy_write_clip_detection(struct b43_wldev *dev , u16 const *clip_st ) { { b43_phy_write(dev, 44, (int )*clip_st); b43_phy_write(dev, 66, (int )*(clip_st + 1UL)); return; } } static void b43_nphy_read_clip_detection(struct b43_wldev *dev , u16 *clip_st ) { { *clip_st = b43_phy_read(dev, 44); *(clip_st + 1UL) = b43_phy_read(dev, 66); return; } } static u16 b43_nphy_classifier(struct b43_wldev *dev , u16 mask , u16 val ) { u16 tmp ; { if ((unsigned int )(dev->dev)->core_rev == 16U) { b43_mac_suspend(dev); } else { } tmp = b43_phy_read(dev, 176); tmp = (unsigned int )tmp & 7U; tmp = (u16 )(~ ((int )((short )mask)) & (int )((short )tmp)); tmp = (u16 )(((int )val & (int )mask) | (int )tmp); b43_phy_maskset(dev, 176, 65528, (int )tmp); if ((unsigned int )(dev->dev)->core_rev == 16U) { b43_mac_enable(dev); } else { } return (tmp); } } static void b43_nphy_reset_cca(struct b43_wldev *dev ) { u16 bbcfg ; { b43_phy_force_clock(dev, 1); bbcfg = b43_phy_read(dev, 1); b43_phy_write(dev, 1, (int )((unsigned int )bbcfg | 16384U)); __const_udelay(4295UL); b43_phy_write(dev, 1, (int )bbcfg & 49151); b43_phy_force_clock(dev, 0); b43_nphy_force_rf_sequence(dev, 2); return; } } static void b43_nphy_stay_in_carrier_search(struct b43_wldev *dev , bool enable ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; u16 clip[2U] ; u32 tmp ; { phy = & dev->phy; nphy = phy->__annonCompField106.n; if ((int )enable) { clip[0] = 65535U; clip[1] = 65535U; tmp = nphy->deaf_count; nphy->deaf_count = nphy->deaf_count + 1U; if (tmp == 0U) { nphy->classifier_state = b43_nphy_classifier(dev, 0, 0); b43_nphy_classifier(dev, 7, 4); b43_nphy_read_clip_detection(dev, (u16 *)(& nphy->clip_state)); b43_nphy_write_clip_detection(dev, (u16 const *)(& clip)); } else { } b43_nphy_reset_cca(dev); } else { nphy->deaf_count = nphy->deaf_count - 1U; if (nphy->deaf_count == 0U) { b43_nphy_classifier(dev, 7, (int )nphy->classifier_state); b43_nphy_write_clip_detection(dev, (u16 const *)(& nphy->clip_state)); } else { } } return; } } static u16 b43_nphy_read_lpf_ctl(struct b43_wldev *dev , u16 offset ) { bool tmp ; u32 tmp___0 ; { if ((unsigned int )offset == 0U) { tmp = b43_is_40mhz(dev); offset = (int )tmp ? 345U : 340U; } else { } tmp___0 = b43_ntab_read(dev, (u32 )((int )((unsigned int )offset | 7168U) | 536870912)); return ((unsigned int )((u16 )tmp___0) & 7U); } } static void b43_nphy_adjust_lna_gain_table(struct b43_wldev *dev ) { struct b43_phy_n *nphy ; u8 i ; s16 tmp ; u16 data[4U] ; s16 gain[2U] ; u16 minmax[2U] ; u16 lna_gain[4U] ; enum ieee80211_band tmp___0 ; { nphy = dev->phy.__annonCompField106.n; lna_gain[0] = 65534U; lna_gain[1] = 10U; lna_gain[2] = 19U; lna_gain[3] = 25U; if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 1); } else { } if ((int )nphy->gain_boost) { tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 0U) { gain[0] = 6; gain[1] = 6; } else { tmp = (s16 )(40370U - (unsigned int )((unsigned short )dev->phy.channel) * 315U); gain[0] = (s16 )((unsigned int )((unsigned short )((int )tmp >> 13)) + ((unsigned int )((unsigned short )((int )tmp >> 12)) & 1U)); tmp = (s16 )(23242U - (unsigned int )((unsigned short )dev->phy.channel) * 224U); gain[1] = (s16 )((unsigned int )((unsigned short )((int )tmp >> 13)) + ((unsigned int )((unsigned short )((int )tmp >> 12)) & 1U)); } } else { gain[0] = 0; gain[1] = 0; } i = 0U; goto ldv_54578; ldv_54577: ; if ((int )nphy->elna_gain_config) { data[0] = (unsigned int )((u16 )gain[(int )i]) + 19U; data[1] = (unsigned int )((u16 )gain[(int )i]) + 25U; data[2] = (unsigned int )((u16 )gain[(int )i]) + 25U; data[3] = (unsigned int )((u16 )gain[(int )i]) + 25U; } else { data[0] = (int )lna_gain[0] + (int )((u16 )gain[(int )i]); data[1] = (int )lna_gain[1] + (int )((u16 )gain[(int )i]); data[2] = (int )lna_gain[2] + (int )((u16 )gain[(int )i]); data[3] = (int )lna_gain[3] + (int )((u16 )gain[(int )i]); } b43_ntab_write_bulk(dev, (u32 )(((int )i << 10) | 536870920), 4U, (void const *)(& data)); minmax[(int )i] = (unsigned int )((u16 )gain[(int )i]) + 23U; i = (u8 )((int )i + 1); ldv_54578: ; if ((unsigned int )i <= 1U) { goto ldv_54577; } else { } b43_phy_maskset(dev, 30, 65280, (int )minmax[0]); b43_phy_maskset(dev, 52, 65280, (int )minmax[1]); if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 0); } else { } return; } } static void b43_nphy_set_rf_sequence(struct b43_wldev *dev , u8 cmd , u8 *events , u8 *delays , u8 length ) { struct b43_phy_n *nphy ; u8 i ; u8 end ; u16 offset1 ; u16 offset2 ; { nphy = dev->phy.__annonCompField106.n; end = (unsigned int )dev->phy.rev > 2U ? 31U : 15U; offset1 = (int )((u16 )cmd) << 4U; offset2 = (unsigned int )offset1 + 128U; if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 1); } else { } b43_ntab_write_bulk(dev, (u32 )((int )((unsigned int )offset1 | 7168U) | 268435456), (unsigned int )length, (void const *)events); b43_ntab_write_bulk(dev, (u32 )((int )((unsigned int )offset2 | 7168U) | 268435456), (unsigned int )length, (void const *)delays); i = length; goto ldv_54593; ldv_54592: b43_ntab_write(dev, (u32 )(((int )offset1 + (int )i) | 268442624), (u32 )end); b43_ntab_write(dev, (u32 )(((int )offset2 + (int )i) | 268442624), 1U); i = (u8 )((int )i + 1); ldv_54593: ; if ((unsigned int )i <= 15U) { goto ldv_54592; } else { } if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 0); } else { } return; } } static void b43_radio_2057_chantab_upload(struct b43_wldev *dev , struct b43_nphy_chantabent_rev7 const *e_r7 , struct b43_nphy_chantabent_rev7_2g const *e_r7_2g ) { { if ((unsigned long )e_r7_2g != (unsigned long )((struct b43_nphy_chantabent_rev7_2g const *)0)) { b43_radio_write(dev, 22, (int )e_r7_2g->radio_vcocal_countval0); b43_radio_write(dev, 23, (int )e_r7_2g->radio_vcocal_countval1); b43_radio_write(dev, 34, (int )e_r7_2g->radio_rfpll_refmaster_sparextalsize); b43_radio_write(dev, 37, (int )e_r7_2g->radio_rfpll_loopfilter_r1); b43_radio_write(dev, 39, (int )e_r7_2g->radio_rfpll_loopfilter_c2); b43_radio_write(dev, 40, (int )e_r7_2g->radio_rfpll_loopfilter_c1); b43_radio_write(dev, 41, (int )e_r7_2g->radio_cp_kpd_idac); b43_radio_write(dev, 44, (int )e_r7_2g->radio_rfpll_mmd0); b43_radio_write(dev, 45, (int )e_r7_2g->radio_rfpll_mmd1); b43_radio_write(dev, 55, (int )e_r7_2g->radio_vcobuf_tune); b43_radio_write(dev, 65, (int )e_r7_2g->radio_logen_mx2g_tune); b43_radio_write(dev, 71, (int )e_r7_2g->radio_logen_indbuf2g_tune); b43_radio_write(dev, 92, (int )e_r7_2g->radio_txmix2g_tune_boost_pu_core0); b43_radio_write(dev, 94, (int )e_r7_2g->radio_pad2g_tune_pus_core0); b43_radio_write(dev, 154, (int )e_r7_2g->radio_lna2g_tune_core0); b43_radio_write(dev, 225, (int )e_r7_2g->radio_txmix2g_tune_boost_pu_core1); b43_radio_write(dev, 227, (int )e_r7_2g->radio_pad2g_tune_pus_core1); b43_radio_write(dev, 287, (int )e_r7_2g->radio_lna2g_tune_core1); } else { b43_radio_write(dev, 22, (int )e_r7->radio_vcocal_countval0); b43_radio_write(dev, 23, (int )e_r7->radio_vcocal_countval1); b43_radio_write(dev, 34, (int )e_r7->radio_rfpll_refmaster_sparextalsize); b43_radio_write(dev, 37, (int )e_r7->radio_rfpll_loopfilter_r1); b43_radio_write(dev, 39, (int )e_r7->radio_rfpll_loopfilter_c2); b43_radio_write(dev, 40, (int )e_r7->radio_rfpll_loopfilter_c1); b43_radio_write(dev, 41, (int )e_r7->radio_cp_kpd_idac); b43_radio_write(dev, 44, (int )e_r7->radio_rfpll_mmd0); b43_radio_write(dev, 45, (int )e_r7->radio_rfpll_mmd1); b43_radio_write(dev, 55, (int )e_r7->radio_vcobuf_tune); b43_radio_write(dev, 65, (int )e_r7->radio_logen_mx2g_tune); b43_radio_write(dev, 67, (int )e_r7->radio_logen_mx5g_tune); b43_radio_write(dev, 71, (int )e_r7->radio_logen_indbuf2g_tune); b43_radio_write(dev, 74, (int )e_r7->radio_logen_indbuf5g_tune); b43_radio_write(dev, 92, (int )e_r7->radio_txmix2g_tune_boost_pu_core0); b43_radio_write(dev, 94, (int )e_r7->radio_pad2g_tune_pus_core0); b43_radio_write(dev, 112, (int )e_r7->radio_pga_boost_tune_core0); b43_radio_write(dev, 115, (int )e_r7->radio_txmix5g_boost_tune_core0); b43_radio_write(dev, 116, (int )e_r7->radio_pad5g_tune_misc_pus_core0); b43_radio_write(dev, 154, (int )e_r7->radio_lna2g_tune_core0); b43_radio_write(dev, 160, (int )e_r7->radio_lna5g_tune_core0); b43_radio_write(dev, 225, (int )e_r7->radio_txmix2g_tune_boost_pu_core1); b43_radio_write(dev, 227, (int )e_r7->radio_pad2g_tune_pus_core1); b43_radio_write(dev, 245, (int )e_r7->radio_pga_boost_tune_core1); b43_radio_write(dev, 248, (int )e_r7->radio_txmix5g_boost_tune_core1); b43_radio_write(dev, 249, (int )e_r7->radio_pad5g_tune_misc_pus_core1); b43_radio_write(dev, 287, (int )e_r7->radio_lna2g_tune_core1); b43_radio_write(dev, 293, (int )e_r7->radio_lna5g_tune_core1); } return; } } static void b43_radio_2057_setup(struct b43_wldev *dev , struct b43_nphy_chantabent_rev7 const *tabent_r7 , struct b43_nphy_chantabent_rev7_2g const *tabent_r7_2g ) { struct b43_phy *phy ; enum ieee80211_band tmp ; bool tmp___0 ; enum ieee80211_band tmp___1 ; u16 txmix2g_tune_boost_pu ; u16 pad2g_tune_pus ; bool tmp___2 ; enum ieee80211_band tmp___3 ; { phy = & dev->phy; b43_radio_2057_chantab_upload(dev, tabent_r7, tabent_r7_2g); switch ((int )phy->radio_rev) { case 4: case 3: case 2: case 1: case 0: ; case 6: tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { b43_radio_write(dev, 37, 63); b43_radio_write(dev, 41, 63); b43_radio_write(dev, 40, 8); b43_radio_write(dev, 39, 8); } else { b43_radio_write(dev, 37, 31); b43_radio_write(dev, 41, 63); b43_radio_write(dev, 40, 8); b43_radio_write(dev, 39, 8); } goto ldv_54608; case 9: b43_radio_write(dev, 53, 32); b43_radio_write(dev, 54, 24); tmp___1 = b43_current_band(dev->wl); if ((unsigned int )tmp___1 == 1U) { b43_radio_write(dev, 53, 56); b43_radio_write(dev, 54, 15); tmp___0 = b43_is_40mhz(dev); if ((int )tmp___0) { } else { b43_radio_write(dev, 128, 60); b43_radio_write(dev, 261, 60); } } else { } goto ldv_54608; case 14: b43_radio_write(dev, 37, 27); b43_radio_write(dev, 41, 63); b43_radio_write(dev, 40, 31); b43_radio_write(dev, 39, 31); goto ldv_54608; } ldv_54608: tmp___3 = b43_current_band(dev->wl); if ((unsigned int )tmp___3 == 0U) { txmix2g_tune_boost_pu = 0U; pad2g_tune_pus = 0U; tmp___2 = b43_nphy_ipa(dev); if ((int )tmp___2) { switch ((int )phy->radio_rev) { case 9: txmix2g_tune_boost_pu = 65U; goto ldv_54614; case 14: txmix2g_tune_boost_pu = 33U; pad2g_tune_pus = 35U; goto ldv_54614; } ldv_54614: ; } else { } if ((unsigned int )txmix2g_tune_boost_pu != 0U) { b43_radio_write(dev, 92, (int )txmix2g_tune_boost_pu); } else { } if ((unsigned int )pad2g_tune_pus != 0U) { b43_radio_write(dev, 94, (int )pad2g_tune_pus); } else { } if ((unsigned int )txmix2g_tune_boost_pu != 0U) { b43_radio_write(dev, 225, (int )txmix2g_tune_boost_pu); } else { } if ((unsigned int )pad2g_tune_pus != 0U) { b43_radio_write(dev, 227, (int )pad2g_tune_pus); } else { } } else { } usleep_range(50UL, 100UL); b43_radio_mask(dev, 43, 65534); b43_radio_mask(dev, 46, 65531); b43_radio_set(dev, 46, 4); b43_radio_set(dev, 43, 1); usleep_range(300UL, 600UL); return; } } static u8 b43_radio_2057_rcal(struct b43_wldev *dev ) { struct b43_phy *phy ; u16 saved_regs_phy[12U] ; u16 saved_regs_phy_rf[6U] ; u16 saved_regs_radio[2U] ; u16 phy_to_store[12U] ; u16 phy_to_store_rf[6U] ; u16 tmp ; int i ; bool tmp___0 ; int tmp___1 ; u16 tmp___2 ; { phy = & dev->phy; saved_regs_radio[0] = (unsigned short)0; saved_regs_radio[1] = (unsigned short)0; phy_to_store[0] = 122U; phy_to_store[1] = 125U; phy_to_store[2] = 248U; phy_to_store[3] = 250U; phy_to_store[4] = 123U; phy_to_store[5] = 126U; phy_to_store[6] = 124U; phy_to_store[7] = 127U; phy_to_store[8] = 832U; phy_to_store[9] = 833U; phy_to_store[10] = 836U; phy_to_store[11] = 837U; phy_to_store_rf[0] = 231U; phy_to_store_rf[1] = 236U; phy_to_store_rf[2] = 834U; phy_to_store_rf[3] = 835U; phy_to_store_rf[4] = 838U; phy_to_store_rf[5] = 839U; i = 0; goto ldv_54630; ldv_54629: saved_regs_phy[i] = b43_phy_read(dev, (int )phy_to_store[i]); i = i + 1; ldv_54630: ; if ((unsigned int )i <= 11U) { goto ldv_54629; } else { } i = 0; goto ldv_54635; ldv_54634: saved_regs_phy_rf[i] = b43_phy_read(dev, (int )phy_to_store_rf[i]); i = i + 1; ldv_54635: ; if ((unsigned int )i <= 5U) { goto ldv_54634; } else { } i = 0; goto ldv_54640; ldv_54639: b43_phy_write(dev, (int )phy_to_store[i], 0); i = i + 1; ldv_54640: ; if ((unsigned int )i <= 11U) { goto ldv_54639; } else { } b43_phy_write(dev, 231, 2047); b43_phy_write(dev, 236, 2047); b43_phy_write(dev, 834, 2047); b43_phy_write(dev, 835, 2047); b43_phy_write(dev, 838, 127); b43_phy_write(dev, 839, 127); switch ((int )phy->radio_rev) { case 5: b43_phy_mask(dev, 834, 65533); __const_udelay(42950UL); b43_radio_set(dev, 205, 1); b43_radio_maskset(dev, 458, 65533, 1); goto ldv_54643; case 9: b43_phy_set(dev, 834, 2); b43_phy_set(dev, 832, 2); saved_regs_radio[0] = b43_radio_read(dev, 205); b43_radio_write(dev, 205, 17); goto ldv_54643; case 14: saved_regs_radio[0] = b43_radio_read(dev, 205); saved_regs_radio[1] = b43_radio_read(dev, 458); b43_phy_set(dev, 832, 2); b43_phy_set(dev, 834, 2); b43_radio_write(dev, 458, 2); b43_radio_write(dev, 205, 1); goto ldv_54643; } ldv_54643: b43_radio_set(dev, 4, 1); __const_udelay(42950UL); b43_radio_set(dev, 4, 2); usleep_range(100UL, 200UL); b43_radio_mask(dev, 4, 65533); tmp___0 = b43_radio_wait_value(dev, 355, 1, 1, 100, 1000000); if (tmp___0) { tmp___1 = 0; } else { tmp___1 = 1; } if (tmp___1) { b43err(dev->wl, "Radio 0x2057 rcal timeout\n"); return (0U); } else { } tmp___2 = b43_radio_read(dev, 355); tmp = (unsigned int )tmp___2 & 62U; b43_radio_mask(dev, 4, 65534); i = 0; goto ldv_54649; ldv_54648: b43_phy_write(dev, (int )phy_to_store_rf[i], (int )saved_regs_phy_rf[i]); i = i + 1; ldv_54649: ; if ((unsigned int )i <= 5U) { goto ldv_54648; } else { } i = 0; goto ldv_54654; ldv_54653: b43_phy_write(dev, (int )phy_to_store[i], (int )saved_regs_phy[i]); i = i + 1; ldv_54654: ; if ((unsigned int )i <= 11U) { goto ldv_54653; } else { } switch ((int )phy->radio_rev) { case 4: case 3: case 2: case 1: case 0: ; case 6: b43_radio_maskset(dev, 12, 65475, (int )tmp); b43_radio_maskset(dev, 10, 65295, (int )tmp << 2U); goto ldv_54658; case 5: b43_radio_mask(dev, 100, 65534); b43_radio_mask(dev, 458, 65533); goto ldv_54658; case 9: b43_radio_write(dev, 205, (int )saved_regs_radio[0]); goto ldv_54658; case 14: b43_radio_write(dev, 205, (int )saved_regs_radio[0]); b43_radio_write(dev, 458, (int )saved_regs_radio[1]); goto ldv_54658; } ldv_54658: ; return ((unsigned int )((u8 )tmp) & 62U); } } static u16 b43_radio_2057_rccal(struct b43_wldev *dev ) { struct b43_phy *phy ; bool special ; u16 tmp ; bool tmp___0 ; int tmp___1 ; bool tmp___2 ; int tmp___3 ; bool tmp___4 ; int tmp___5 ; { phy = & dev->phy; special = (bool )(((unsigned int )phy->radio_rev == 3U || (unsigned int )phy->radio_rev == 4U) || (unsigned int )phy->radio_rev == 6U); if ((int )special) { b43_radio_write(dev, 2, 97); b43_radio_write(dev, 348, 192); } else { b43_radio_write(dev, 430, 97); b43_radio_write(dev, 348, 233); } b43_radio_write(dev, 347, 110); b43_radio_write(dev, 346, 85); tmp___0 = b43_radio_wait_value(dev, 350, 2, 2, 500, 5000000); if (tmp___0) { tmp___1 = 0; } else { tmp___1 = 1; } if (tmp___1) { b43dbg(dev->wl, "Radio 0x2057 rccal timeout\n"); } else { } usleep_range(35UL, 70UL); b43_radio_write(dev, 346, 21); usleep_range(70UL, 140UL); if ((int )special) { b43_radio_write(dev, 2, 105); b43_radio_write(dev, 348, 176); } else { b43_radio_write(dev, 430, 105); b43_radio_write(dev, 348, 213); } b43_radio_write(dev, 347, 110); usleep_range(35UL, 70UL); b43_radio_write(dev, 346, 85); usleep_range(70UL, 140UL); tmp___2 = b43_radio_wait_value(dev, 350, 2, 2, 500, 5000000); if (tmp___2) { tmp___3 = 0; } else { tmp___3 = 1; } if (tmp___3) { b43dbg(dev->wl, "Radio 0x2057 rccal timeout\n"); } else { } usleep_range(35UL, 70UL); b43_radio_write(dev, 346, 21); usleep_range(70UL, 140UL); if ((int )special) { b43_radio_write(dev, 2, 115); b43_radio_write(dev, 347, 40); b43_radio_write(dev, 348, 176); } else { b43_radio_write(dev, 430, 115); b43_radio_write(dev, 347, 110); b43_radio_write(dev, 348, 153); } usleep_range(35UL, 70UL); b43_radio_write(dev, 346, 85); usleep_range(70UL, 140UL); tmp___4 = b43_radio_wait_value(dev, 350, 2, 2, 500, 5000000); if (tmp___4) { tmp___5 = 0; } else { tmp___5 = 1; } if (tmp___5) { b43err(dev->wl, "Radio 0x2057 rcal timeout\n"); return (0U); } else { } tmp = b43_radio_read(dev, 350); usleep_range(35UL, 70UL); b43_radio_write(dev, 346, 21); usleep_range(70UL, 140UL); if ((int )special) { b43_radio_mask(dev, 2, 65534); } else { b43_radio_mask(dev, 430, 65534); } return (tmp); } } static void b43_radio_2057_init_pre(struct b43_wldev *dev ) { { b43_phy_mask(dev, 120, 64511); b43_phy_mask(dev, 120, 128); b43_phy_set(dev, 120, 65407); b43_phy_set(dev, 120, 1024); return; } } static void b43_radio_2057_init_post(struct b43_wldev *dev ) { unsigned long __ms ; unsigned long tmp ; { b43_radio_set(dev, 356, 1); b43_radio_set(dev, 46, 120); b43_radio_set(dev, 206, 128); if (1) { __const_udelay(8590000UL); } else { __ms = 2UL; goto ldv_54676; ldv_54675: __const_udelay(4295000UL); ldv_54676: tmp = __ms; __ms = __ms - 1UL; if (tmp != 0UL) { goto ldv_54675; } else { } } b43_radio_mask(dev, 46, 65415); b43_radio_mask(dev, 206, 65407); if ((int )dev->phy.do_full_init) { b43_radio_2057_rcal(dev); b43_radio_2057_rccal(dev); } else { } b43_radio_mask(dev, 17, 65527); return; } } static void b43_radio_2057_init(struct b43_wldev *dev ) { { b43_radio_2057_init_pre(dev); r2057_upload_inittabs(dev); b43_radio_2057_init_post(dev); return; } } static void b43_chantab_radio_2056_upload(struct b43_wldev *dev , struct b43_nphy_channeltab_entry_rev3 const *e ) { { b43_radio_write(dev, 86, (int )e->radio_syn_pll_vcocal1); b43_radio_write(dev, 87, (int )e->radio_syn_pll_vcocal2); b43_radio_write(dev, 70, (int )e->radio_syn_pll_refdiv); b43_radio_write(dev, 81, (int )e->radio_syn_pll_mmd2); b43_radio_write(dev, 80, (int )e->radio_syn_pll_mmd1); b43_radio_write(dev, 75, (int )e->radio_syn_pll_loopfilter1); b43_radio_write(dev, 76, (int )e->radio_syn_pll_loopfilter2); b43_radio_write(dev, 77, (int )e->radio_syn_pll_loopfilter3); b43_radio_write(dev, 78, (int )e->radio_syn_pll_loopfilter4); b43_radio_write(dev, 79, (int )e->radio_syn_pll_loopfilter5); b43_radio_write(dev, 27, (int )e->radio_syn_reserved_addr27); b43_radio_write(dev, 28, (int )e->radio_syn_reserved_addr28); b43_radio_write(dev, 29, (int )e->radio_syn_reserved_addr29); b43_radio_write(dev, 112, (int )e->radio_syn_logen_vcobuf1); b43_radio_write(dev, 114, (int )e->radio_syn_logen_mixer2); b43_radio_write(dev, 117, (int )e->radio_syn_logen_buf3); b43_radio_write(dev, 118, (int )e->radio_syn_logen_buf4); b43_radio_write(dev, 24621, (int )e->radio_rx0_lnaa_tune); b43_radio_write(dev, 24628, (int )e->radio_rx0_lnag_tune); b43_radio_write(dev, 8247, (int )e->radio_tx0_intpaa_boost_tune); b43_radio_write(dev, 8257, (int )e->radio_tx0_intpag_boost_tune); b43_radio_write(dev, 8269, (int )e->radio_tx0_pada_boost_tune); b43_radio_write(dev, 8275, (int )e->radio_tx0_padg_boost_tune); b43_radio_write(dev, 8280, (int )e->radio_tx0_pgaa_boost_tune); b43_radio_write(dev, 8286, (int )e->radio_tx0_pgag_boost_tune); b43_radio_write(dev, 8290, (int )e->radio_tx0_mixa_boost_tune); b43_radio_write(dev, 8292, (int )e->radio_tx0_mixg_boost_tune); b43_radio_write(dev, 28717, (int )e->radio_rx1_lnaa_tune); b43_radio_write(dev, 28724, (int )e->radio_rx1_lnag_tune); b43_radio_write(dev, 12343, (int )e->radio_tx1_intpaa_boost_tune); b43_radio_write(dev, 12353, (int )e->radio_tx1_intpag_boost_tune); b43_radio_write(dev, 12365, (int )e->radio_tx1_pada_boost_tune); b43_radio_write(dev, 12371, (int )e->radio_tx1_padg_boost_tune); b43_radio_write(dev, 12376, (int )e->radio_tx1_pgaa_boost_tune); b43_radio_write(dev, 12382, (int )e->radio_tx1_pgag_boost_tune); b43_radio_write(dev, 12386, (int )e->radio_tx1_mixa_boost_tune); b43_radio_write(dev, 12388, (int )e->radio_tx1_mixg_boost_tune); return; } } static void b43_radio_2056_setup(struct b43_wldev *dev , struct b43_nphy_channeltab_entry_rev3 const *e ) { struct b43_phy *phy ; struct ssb_sprom *sprom ; enum ieee80211_band band ; enum ieee80211_band tmp ; u16 offset ; u8 i ; u16 bias ; u16 cbias ; u16 pag_boost ; u16 padg_boost ; u16 pgag_boost ; u16 mixg_boost ; u16 paa_boost ; u16 pada_boost ; u16 pgaa_boost ; u16 mixa_boost ; bool is_pkg_fab_smic ; int __ret_warn_on ; long tmp___0 ; enum ieee80211_band tmp___1 ; enum ieee80211_band tmp___2 ; enum ieee80211_band tmp___3 ; bool tmp___4 ; u16 freq ; { phy = & dev->phy; sprom = (dev->dev)->bus_sprom; tmp = b43_current_band(dev->wl); band = tmp; __ret_warn_on = (unsigned int )dev->phy.rev <= 2U; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_n.c", 1146); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); is_pkg_fab_smic = (bool )((((unsigned int )(dev->dev)->chip_id == 43224U || (unsigned int )(dev->dev)->chip_id == 43225U) || (unsigned int )(dev->dev)->chip_id == 43421U) && (unsigned int )(dev->dev)->chip_pkg == 10U); b43_chantab_radio_2056_upload(dev, e); b2056_upload_syn_pll_cp2(dev, (unsigned int )band == 1U); if (((int )sprom->boardflags2_lo & 1024) != 0) { tmp___1 = b43_current_band(dev->wl); if ((unsigned int )tmp___1 == 0U) { b43_radio_write(dev, 75, 31); b43_radio_write(dev, 76, 31); if ((unsigned int )(dev->dev)->chip_id == 18198U || (unsigned int )(dev->dev)->chip_id == 47162U) { b43_radio_write(dev, 78, 20); b43_radio_write(dev, 73, 0); } else { b43_radio_write(dev, 78, 11); b43_radio_write(dev, 73, 20); } } else { } } else { } if ((int )sprom->boardflags2_hi & 1) { tmp___2 = b43_current_band(dev->wl); if ((unsigned int )tmp___2 == 0U) { b43_radio_write(dev, 75, 31); b43_radio_write(dev, 76, 31); b43_radio_write(dev, 78, 11); b43_radio_write(dev, 73, 32); } else { } } else { } if (((int )sprom->boardflags2_lo & 2) != 0) { tmp___3 = b43_current_band(dev->wl); if ((unsigned int )tmp___3 == 1U) { b43_radio_write(dev, 75, 31); b43_radio_write(dev, 76, 31); b43_radio_write(dev, 78, 5); b43_radio_write(dev, 73, 12); } else { } } else { } if ((int )(dev->phy.__annonCompField106.n)->ipa2g_on && (unsigned int )band == 0U) { i = 0U; goto ldv_54708; ldv_54707: offset = (unsigned int )i != 0U ? 12288U : 8192U; if ((unsigned int )dev->phy.rev > 4U) { b43_radio_write(dev, (int )((unsigned int )offset | 80U), 204); if ((unsigned int )(dev->dev)->chip_id == 18198U || (unsigned int )(dev->dev)->chip_id == 47162U) { bias = 64U; cbias = 69U; pag_boost = 5U; pgag_boost = 51U; mixg_boost = 85U; } else { bias = 37U; cbias = 32U; if ((int )is_pkg_fab_smic) { bias = 42U; cbias = 56U; } else { } pag_boost = 4U; pgag_boost = 3U; mixg_boost = 101U; } padg_boost = 119U; b43_radio_write(dev, (int )((unsigned int )offset | 68U), (int )bias); b43_radio_write(dev, (int )((unsigned int )offset | 66U), (int )bias); b43_radio_write(dev, (int )((unsigned int )offset | 70U), (int )cbias); b43_radio_write(dev, (int )((unsigned int )offset | 65U), (int )pag_boost); b43_radio_write(dev, (int )((unsigned int )offset | 94U), (int )pgag_boost); b43_radio_write(dev, (int )((unsigned int )offset | 83U), (int )padg_boost); b43_radio_write(dev, (int )((unsigned int )offset | 100U), (int )mixg_boost); } else { tmp___4 = b43_is_40mhz(dev); bias = (int )tmp___4 ? 64U : 32U; b43_radio_write(dev, (int )((unsigned int )offset | 68U), (int )bias); b43_radio_write(dev, (int )((unsigned int )offset | 66U), (int )bias); b43_radio_write(dev, (int )((unsigned int )offset | 70U), 48); } b43_radio_write(dev, (int )((unsigned int )offset | 51U), 238); i = (u8 )((int )i + 1); ldv_54708: ; if ((unsigned int )i <= 1U) { goto ldv_54707; } else { } } else if ((int )(dev->phy.__annonCompField106.n)->ipa5g_on && (unsigned int )band == 1U) { freq = ((phy->chandef)->chan)->center_freq; if ((unsigned int )freq <= 5099U) { paa_boost = 10U; pada_boost = 119U; pgaa_boost = 15U; mixa_boost = 15U; } else if ((unsigned int )freq <= 5339U) { paa_boost = 8U; pada_boost = 119U; pgaa_boost = 251U; mixa_boost = 15U; } else if ((unsigned int )freq <= 5649U) { paa_boost = 0U; pada_boost = 119U; pgaa_boost = 11U; mixa_boost = 15U; } else { paa_boost = 0U; pada_boost = 119U; if ((unsigned int )freq != 5825U) { pgaa_boost = (unsigned int )((u16 )((18 - (int )freq) / 36)) + 168U; } else { pgaa_boost = 6U; } mixa_boost = 15U; } cbias = (int )is_pkg_fab_smic ? 53U : 48U; i = 0U; goto ldv_54712; ldv_54711: offset = (unsigned int )i != 0U ? 12288U : 8192U; b43_radio_write(dev, (int )((unsigned int )offset | 55U), (int )paa_boost); b43_radio_write(dev, (int )((unsigned int )offset | 77U), (int )pada_boost); b43_radio_write(dev, (int )((unsigned int )offset | 88U), (int )pgaa_boost); b43_radio_write(dev, (int )((unsigned int )offset | 98U), (int )mixa_boost); b43_radio_write(dev, (int )((unsigned int )offset | 125U), 48); b43_radio_write(dev, (int )((unsigned int )offset | 52U), 238); b43_radio_write(dev, (int )((unsigned int )offset | 75U), 3); b43_radio_write(dev, (int )((unsigned int )offset | 56U), 48); b43_radio_write(dev, (int )((unsigned int )offset | 58U), 48); b43_radio_write(dev, (int )((unsigned int )offset | 60U), (int )cbias); i = (u8 )((int )i + 1); ldv_54712: ; if ((unsigned int )i <= 1U) { goto ldv_54711; } else { } } else { } __const_udelay(214750UL); b43_radio_write(dev, 96, 0); b43_radio_write(dev, 62, 56); b43_radio_write(dev, 62, 24); b43_radio_write(dev, 62, 56); b43_radio_write(dev, 62, 57); __const_udelay(1288500UL); return; } } static u8 b43_radio_2056_rcal(struct b43_wldev *dev ) { struct b43_phy *phy ; u16 mast2 ; u16 tmp ; bool tmp___0 ; int tmp___1 ; { phy = & dev->phy; if ((unsigned int )phy->rev != 3U) { return (0U); } else { } mast2 = b43_radio_read(dev, 61); b43_radio_write(dev, 61, (int )((unsigned int )mast2 | 7U)); __const_udelay(42950UL); b43_radio_write(dev, 44, 1); __const_udelay(42950UL); b43_radio_write(dev, 44, 9); tmp___0 = b43_radio_wait_value(dev, 45, 128, 128, 100, 1000000); if (tmp___0) { tmp___1 = 0; } else { tmp___1 = 1; } if (tmp___1) { b43err(dev->wl, "Radio recalibration timeout\n"); return (0U); } else { } b43_radio_write(dev, 44, 1); tmp = b43_radio_read(dev, 45); b43_radio_write(dev, 44, 0); b43_radio_write(dev, 61, (int )mast2); return ((unsigned int )((u8 )tmp) & 31U); } } static void b43_radio_init2056_pre(struct b43_wldev *dev ) { { b43_phy_mask(dev, 120, 64511); b43_phy_mask(dev, 120, 128); b43_phy_set(dev, 120, 65407); b43_phy_set(dev, 120, 1024); return; } } static void b43_radio_init2056_post(struct b43_wldev *dev ) { { b43_radio_set(dev, 8, 11); b43_radio_set(dev, 9, 2); b43_radio_set(dev, 11, 2); msleep(1U); b43_radio_mask(dev, 11, 65533); b43_radio_mask(dev, 61, 65283); b43_radio_mask(dev, 46, 65534); if ((int )dev->phy.do_full_init) { b43_radio_2056_rcal(dev); } else { } return; } } static void b43_radio_init2056(struct b43_wldev *dev ) { { b43_radio_init2056_pre(dev); b2056_upload_inittabs(dev, 0, 0); b43_radio_init2056_post(dev); return; } } static void b43_chantab_radio_upload(struct b43_wldev *dev , struct b43_nphy_channeltab_entry_rev2 const *e ) { { b43_radio_write(dev, 53, (int )e->radio_pll_ref); b43_radio_write(dev, 59, (int )e->radio_rf_pllmod0); b43_radio_write(dev, 60, (int )e->radio_rf_pllmod1); b43_radio_write(dev, 81, (int )e->radio_vco_captail); b43_read32(dev, 288); b43_radio_write(dev, 64, (int )e->radio_vco_cal1); b43_radio_write(dev, 65, (int )e->radio_vco_cal2); b43_radio_write(dev, 50, (int )e->radio_pll_lfc1); b43_radio_write(dev, 54, (int )e->radio_pll_lfr1); b43_read32(dev, 288); b43_radio_write(dev, 52, (int )e->radio_pll_lfc2); b43_radio_write(dev, 85, (int )e->radio_lgbuf_cenbuf); b43_radio_write(dev, 86, (int )e->radio_lgen_tune1); b43_radio_write(dev, 87, (int )e->radio_lgen_tune2); b43_read32(dev, 288); b43_radio_write(dev, 95, (int )e->radio_c1_lgbuf_atune); b43_radio_write(dev, 96, (int )e->radio_c1_lgbuf_gtune); b43_radio_write(dev, 103, (int )e->radio_c1_rx_rfr1); b43_radio_write(dev, 127, (int )e->radio_c1_tx_pgapadtn); b43_read32(dev, 288); b43_radio_write(dev, 130, (int )e->radio_c1_tx_mxbgtrim); b43_radio_write(dev, 142, (int )e->radio_c2_lgbuf_atune); b43_radio_write(dev, 143, (int )e->radio_c2_lgbuf_gtune); b43_radio_write(dev, 150, (int )e->radio_c2_rx_rfr1); b43_read32(dev, 288); b43_radio_write(dev, 174, (int )e->radio_c2_tx_pgapadtn); b43_radio_write(dev, 177, (int )e->radio_c2_tx_mxbgtrim); return; } } static void b43_radio_2055_setup(struct b43_wldev *dev , struct b43_nphy_channeltab_entry_rev2 const *e ) { int __ret_warn_on ; long tmp ; { __ret_warn_on = (unsigned int )dev->phy.rev > 2U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_n.c", 1425); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_chantab_radio_upload(dev, e); __const_udelay(214750UL); b43_radio_write(dev, 73, 5); b43_radio_write(dev, 73, 69); b43_read32(dev, 288); b43_radio_write(dev, 73, 101); __const_udelay(1288500UL); return; } } static void b43_radio_init2055_pre(struct b43_wldev *dev ) { { b43_phy_mask(dev, 120, 65471); b43_phy_set(dev, 120, 1152); b43_phy_set(dev, 120, 64); return; } } static void b43_radio_init2055_post(struct b43_wldev *dev ) { struct b43_phy_n *nphy ; struct ssb_sprom *sprom ; bool workaround ; bool tmp ; int tmp___0 ; { nphy = dev->phy.__annonCompField106.n; sprom = (dev->dev)->bus_sprom; workaround = 0; if ((unsigned int )sprom->revision <= 3U) { workaround = (bool )(((unsigned int )(dev->dev)->board_vendor != 5348U && (unsigned int )(dev->dev)->board_type == 1133U) && (unsigned int )(dev->dev)->board_rev > 64U); } else { workaround = ((int )sprom->boardflags2_lo & 1) == 0; } b43_radio_mask(dev, 17, 65523); if ((int )workaround) { b43_radio_mask(dev, 119, 127); b43_radio_mask(dev, 166, 127); } else { } b43_radio_maskset(dev, 35, 65472, 44); b43_radio_write(dev, 36, 60); b43_radio_mask(dev, 36, 65470); b43_radio_set(dev, 41, 128); b43_radio_set(dev, 36, 1); msleep(1U); b43_radio_set(dev, 36, 64); tmp = b43_radio_wait_value(dev, 38, 128, 128, 10, 2000); if (tmp) { tmp___0 = 0; } else { tmp___0 = 1; } if (tmp___0) { b43err(dev->wl, "radio post init timeout\n"); } else { } b43_radio_mask(dev, 41, 65407); b43_switch_channel(dev, dev->phy.channel); b43_radio_write(dev, 107, 9); b43_radio_write(dev, 154, 9); b43_radio_write(dev, 108, 131); b43_radio_write(dev, 155, 131); b43_radio_maskset(dev, 205, 65528, 6); b43_radio_maskset(dev, 217, 65528, 6); if (! nphy->gain_boost) { b43_radio_set(dev, 102, 2); b43_radio_set(dev, 149, 2); } else { b43_radio_mask(dev, 102, 65533); b43_radio_mask(dev, 149, 65533); } __const_udelay(8590UL); return; } } static void b43_radio_init2055(struct b43_wldev *dev ) { bool ghz5 ; enum ieee80211_band tmp ; int tmp___0 ; { b43_radio_init2055_pre(dev); tmp___0 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___0 <= 0) { b2055_upload_inittab(dev, 0, 0); } else { tmp = b43_current_band(dev->wl); ghz5 = (unsigned int )tmp == 1U; b2055_upload_inittab(dev, (int )ghz5, 0); } b43_radio_init2055_post(dev); return; } } static int b43_nphy_load_samples(struct b43_wldev *dev , struct b43_c32 *samples , u16 len ) { struct b43_phy_n *nphy ; u16 i ; u32 *data ; void *tmp ; { nphy = dev->phy.__annonCompField106.n; tmp = kzalloc((unsigned long )len * 4UL, 208U); data = (u32 *)tmp; if ((unsigned long )data == (unsigned long )((u32 *)0U)) { b43err(dev->wl, "allocation for samples loading failed\n"); return (-12); } else { } if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 1); } else { } i = 0U; goto ldv_54761; ldv_54760: *(data + (unsigned long )i) = (u32 )(samples + (unsigned long )i)->i & 1047552U; *(data + (unsigned long )i) = *(data + (unsigned long )i) | ((u32 )(samples + (unsigned long )i)->q & 1023U); i = (u16 )((int )i + 1); ldv_54761: ; if ((int )i < (int )len) { goto ldv_54760; } else { } b43_ntab_write_bulk(dev, 805323776U, (unsigned int )len, (void const *)data); kfree((void const *)data); if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 0); } else { } return (0); } } static u16 b43_nphy_gen_load_samples(struct b43_wldev *dev , u32 freq , u16 max , bool test ) { int i ; u16 bw ; u16 len ; u16 rot ; u16 angle ; struct b43_c32 *samples ; bool tmp ; u16 tmp___0 ; bool tmp___1 ; void *tmp___2 ; { tmp = b43_is_40mhz(dev); bw = (int )tmp ? 40U : 20U; len = (int )bw << 3U; if ((int )test) { tmp___0 = b43_phy_read(dev, 1); if ((int )((short )tmp___0) < 0) { bw = 82U; } else { bw = 80U; } tmp___1 = b43_is_40mhz(dev); if ((int )tmp___1) { bw = (int )bw << 1U; } else { } len = (int )bw << 1U; } else { } tmp___2 = kcalloc((size_t )len, 8UL, 208U); samples = (struct b43_c32 *)tmp___2; if ((unsigned long )samples == (unsigned long )((struct b43_c32 *)0)) { b43err(dev->wl, "allocation for samples generation failed\n"); return (0U); } else { } rot = (u16 )(((freq * 36U) / (u32 )bw << 16) / 100U); angle = 0U; i = 0; goto ldv_54776; ldv_54775: *(samples + (unsigned long )i) = b43_cordic((int )angle); angle = (int )angle + (int )rot; (samples + (unsigned long )i)->q = (samples + (unsigned long )i)->q * (int )max >= 0 ? (((samples + (unsigned long )i)->q * (int )max >> 15) + 1) >> 1 : - (((- ((samples + (unsigned long )i)->q * (int )max) >> 15) + 1) >> 1); (samples + (unsigned long )i)->i = (samples + (unsigned long )i)->i * (int )max >= 0 ? (((samples + (unsigned long )i)->i * (int )max >> 15) + 1) >> 1 : - (((- ((samples + (unsigned long )i)->i * (int )max) >> 15) + 1) >> 1); i = i + 1; ldv_54776: ; if ((int )len > i) { goto ldv_54775; } else { } i = b43_nphy_load_samples(dev, samples, (int )len); kfree((void const *)samples); return (i >= 0 ? len : 0U); } } static void b43_nphy_run_samples(struct b43_wldev *dev , u16 samps , u16 loops , u16 wait , bool iqmode , bool dac_test , bool modify_bbmult ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; int i ; u16 seq_mode ; u32 tmp ; bool lpf_bw3 ; bool lpf_bw4 ; u16 tmp___0 ; u16 tmp___1 ; u16 value ; u16 tmp___2 ; bool tmp___3 ; int tmp___4 ; u16 tmp___5 ; { phy = & dev->phy; nphy = dev->phy.__annonCompField106.n; b43_nphy_stay_in_carrier_search(dev, 1); if ((unsigned int )phy->rev > 6U) { tmp___0 = b43_phy_read(dev, 834); lpf_bw3 = ((int )tmp___0 & 128) != 0; tmp___1 = b43_phy_read(dev, 835); lpf_bw4 = ((int )tmp___1 & 128) != 0; if ((int )lpf_bw3 || (int )lpf_bw4) { } else { tmp___2 = b43_nphy_read_lpf_ctl(dev, 0); value = tmp___2; if ((unsigned int )phy->rev > 18U) { b43_nphy_rf_ctl_override_rev19(dev, 128, (int )value, 0, 0, 1); } else { b43_nphy_rf_ctl_override_rev7(dev, 128, (int )value, 0, 0, 1); } nphy->lpf_bw_overrode_for_sample_play = 1; } } else { } if ((int )nphy->bb_mult_save >= 0) { tmp = b43_ntab_read(dev, 536886359U); nphy->bb_mult_save = (tmp & 65535U) | 2147483648U; } else { } if ((int )modify_bbmult) { tmp___3 = b43_is_40mhz(dev); if (tmp___3) { tmp___4 = 0; } else { tmp___4 = 1; } tmp = tmp___4 ? 25700U : 18247U; b43_ntab_write(dev, 536886359U, tmp); } else { } b43_phy_write(dev, 198, (int )((unsigned int )samps + 65535U)); if ((unsigned int )loops != 65535U) { b43_phy_write(dev, 196, (int )((unsigned int )loops + 65535U)); } else { b43_phy_write(dev, 196, (int )loops); } b43_phy_write(dev, 197, (int )wait); seq_mode = b43_phy_read(dev, 161); b43_phy_set(dev, 161, 1); if ((int )iqmode) { b43_phy_mask(dev, 194, 32767); b43_phy_set(dev, 194, 32768); } else { tmp = (int )dac_test ? 5U : 1U; b43_phy_write(dev, 195, (int )((u16 )tmp)); } i = 0; goto ldv_54797; ldv_54796: tmp___5 = b43_phy_read(dev, 164); if (((int )tmp___5 & 1) == 0) { i = 0; goto ldv_54795; } else { } __const_udelay(42950UL); i = i + 1; ldv_54797: ; if (i <= 99) { goto ldv_54796; } else { } ldv_54795: ; if (i != 0) { b43err(dev->wl, "run samples timeout\n"); } else { } b43_phy_write(dev, 161, (int )seq_mode); b43_nphy_stay_in_carrier_search(dev, 0); return; } } static void b43_nphy_scale_offset_rssi(struct b43_wldev *dev , u16 scale , s8 offset , u8 core , enum n_rail_type rail , enum n_rssi_type rssi_type ) { u16 tmp ; bool core1or5 ; bool core2or5 ; s8 __min1 ; s8 __max1 ; s8 __max2 ; s8 __min2 ; { core1or5 = (bool )((unsigned int )core == 1U || (unsigned int )core == 5U); core2or5 = (bool )((unsigned int )core == 2U || (unsigned int )core == 5U); __max1 = offset; __max2 = -32; __min1 = (s8 )((int )__max1 > (int )__max2 ? __max1 : __max2); __min2 = 31; offset = (s8 )((int )__min1 < (int )__min2 ? __min1 : __min2); tmp = (u16 )((int )((short )(((int )scale & 63) << 8)) | ((int )((short )offset) & 63)); switch ((unsigned int )rssi_type) { case 2U: ; if ((int )core1or5 && (unsigned int )rail == 0U) { b43_phy_write(dev, 422, (int )tmp); } else { } if ((int )core1or5 && (unsigned int )rail == 1U) { b43_phy_write(dev, 428, (int )tmp); } else { } if ((int )core2or5 && (unsigned int )rail == 0U) { b43_phy_write(dev, 434, (int )tmp); } else { } if ((int )core2or5 && (unsigned int )rail == 1U) { b43_phy_write(dev, 440, (int )tmp); } else { } goto ldv_54816; case 0U: ; if ((int )core1or5 && (unsigned int )rail == 0U) { b43_phy_write(dev, 420, (int )tmp); } else { } if ((int )core1or5 && (unsigned int )rail == 1U) { b43_phy_write(dev, 426, (int )tmp); } else { } if ((int )core2or5 && (unsigned int )rail == 0U) { b43_phy_write(dev, 432, (int )tmp); } else { } if ((int )core2or5 && (unsigned int )rail == 1U) { b43_phy_write(dev, 438, (int )tmp); } else { } goto ldv_54816; case 1U: ; if ((int )core1or5 && (unsigned int )rail == 0U) { b43_phy_write(dev, 421, (int )tmp); } else { } if ((int )core1or5 && (unsigned int )rail == 1U) { b43_phy_write(dev, 427, (int )tmp); } else { } if ((int )core2or5 && (unsigned int )rail == 0U) { b43_phy_write(dev, 433, (int )tmp); } else { } if ((int )core2or5 && (unsigned int )rail == 1U) { b43_phy_write(dev, 439, (int )tmp); } else { } goto ldv_54816; case 6U: ; if ((int )core1or5 && (unsigned int )rail == 0U) { b43_phy_write(dev, 423, (int )tmp); } else { } if ((int )core1or5 && (unsigned int )rail == 1U) { b43_phy_write(dev, 429, (int )tmp); } else { } if ((int )core2or5 && (unsigned int )rail == 0U) { b43_phy_write(dev, 435, (int )tmp); } else { } if ((int )core2or5 && (unsigned int )rail == 1U) { b43_phy_write(dev, 441, (int )tmp); } else { } goto ldv_54816; case 3U: ; if ((int )core1or5 && (unsigned int )rail == 0U) { b43_phy_write(dev, 424, (int )tmp); } else { } if ((int )core1or5 && (unsigned int )rail == 1U) { b43_phy_write(dev, 430, (int )tmp); } else { } if ((int )core2or5 && (unsigned int )rail == 0U) { b43_phy_write(dev, 436, (int )tmp); } else { } if ((int )core2or5 && (unsigned int )rail == 1U) { b43_phy_write(dev, 442, (int )tmp); } else { } goto ldv_54816; case 4U: ; if ((int )core1or5) { b43_phy_write(dev, 425, (int )tmp); } else { } if ((int )core2or5) { b43_phy_write(dev, 437, (int )tmp); } else { } goto ldv_54816; case 5U: ; if ((int )core1or5) { b43_phy_write(dev, 431, (int )tmp); } else { } if ((int )core2or5) { b43_phy_write(dev, 443, (int )tmp); } else { } goto ldv_54816; } ldv_54816: ; return; } } static void b43_nphy_rssi_select_rev19(struct b43_wldev *dev , u8 code , enum n_rssi_type rssi_type ) { { return; } } static void b43_nphy_rev3_rssi_select(struct b43_wldev *dev , u8 code , enum n_rssi_type rssi_type ) { u8 i ; u16 reg ; u16 val ; enum ieee80211_band tmp ; enum ieee80211_band band ; enum ieee80211_band tmp___0 ; bool tmp___1 ; { if ((unsigned int )code == 0U) { b43_phy_mask(dev, 143, 65023); b43_phy_mask(dev, 165, 65023); b43_phy_mask(dev, 166, 64767); b43_phy_mask(dev, 167, 64767); b43_phy_mask(dev, 229, 65503); b43_phy_mask(dev, 230, 65503); b43_phy_mask(dev, 249, 65475); b43_phy_mask(dev, 251, 65475); } else { i = 0U; goto ldv_54839; ldv_54838: ; if (((unsigned int )code == 1U && (unsigned int )i == 1U) || ((unsigned int )code == 2U && (unsigned int )i == 0U)) { goto ldv_54836; } else { } reg = (unsigned int )i == 0U ? 143U : 165U; b43_phy_maskset(dev, (int )reg, 65023, 512); if (((unsigned int )rssi_type == 0U || (unsigned int )rssi_type == 1U) || (unsigned int )rssi_type == 2U) { reg = (unsigned int )i == 0U ? 166U : 167U; b43_phy_maskset(dev, (int )reg, 64767, 0); reg = (unsigned int )i == 0U ? 249U : 251U; b43_phy_maskset(dev, (int )reg, 65475, 0); if ((unsigned int )rssi_type == 0U) { tmp = b43_current_band(dev->wl); val = (unsigned int )tmp == 1U ? 4U : 8U; } else if ((unsigned int )rssi_type == 1U) { val = 16U; } else { val = 32U; } b43_phy_set(dev, (int )reg, (int )val); reg = (unsigned int )i == 0U ? 229U : 230U; b43_phy_set(dev, (int )reg, 32); } else { if ((unsigned int )rssi_type == 6U) { val = 256U; } else if ((unsigned int )rssi_type == 3U) { val = 512U; } else { val = 768U; } reg = (unsigned int )i == 0U ? 166U : 167U; b43_phy_maskset(dev, (int )reg, 64767, (int )val); b43_phy_maskset(dev, (int )reg, 62463, (int )val << 2U); if ((unsigned int )rssi_type != 3U && (unsigned int )rssi_type != 6U) { tmp___0 = b43_current_band(dev->wl); band = tmp___0; if ((unsigned int )dev->phy.rev <= 6U) { tmp___1 = b43_nphy_ipa(dev); if ((int )tmp___1) { val = (unsigned int )band == 1U ? 12U : 14U; } else { val = 17U; } reg = (unsigned int )i == 0U ? 8192U : 12288U; reg = (u16 )((unsigned int )reg | 45U); b43_radio_write(dev, (int )reg, (int )val); } else { } reg = (unsigned int )i == 0U ? 143U : 165U; b43_phy_set(dev, (int )reg, 512); } else { } } ldv_54836: i = (u8 )((int )i + 1); ldv_54839: ; if ((unsigned int )i <= 1U) { goto ldv_54838; } else { } } return; } } static void b43_nphy_rev2_rssi_select(struct b43_wldev *dev , u8 code , enum n_rssi_type rssi_type ) { u16 val ; bool rssi_w1_w2_nb ; { rssi_w1_w2_nb = 0; switch ((unsigned int )rssi_type) { case 0U: ; case 1U: ; case 2U: val = 0U; rssi_w1_w2_nb = 1; goto ldv_54851; case 6U: val = 1U; goto ldv_54851; case 3U: val = 2U; goto ldv_54851; default: val = 3U; } ldv_54851: val = (u16 )((int )((short )((int )val << 12)) | (int )((short )((int )val << 14))); b43_phy_maskset(dev, 166, 4095, (int )val); b43_phy_maskset(dev, 167, 4095, (int )val); if ((int )rssi_w1_w2_nb) { b43_phy_maskset(dev, 122, 65487, (int )(((unsigned int )((u16 )rssi_type) + 1U) << 4U)); b43_phy_maskset(dev, 125, 65487, (int )(((unsigned int )((u16 )rssi_type) + 1U) << 4U)); } else { } if ((unsigned int )code == 0U) { b43_phy_mask(dev, 165, 53247); if ((int )rssi_w1_w2_nb) { b43_phy_mask(dev, 120, 65223); b43_phy_mask(dev, 236, 61404); b43_phy_mask(dev, 120, 65534); __const_udelay(85900UL); b43_phy_mask(dev, 236, 65534); } else { } } else { b43_phy_set(dev, 165, 12288); if ((int )rssi_w1_w2_nb) { b43_phy_maskset(dev, 120, 65223, (int )((u16 )((int )((short )((int )code << 3)) | 256))); b43_phy_set(dev, 236, 4131); b43_phy_set(dev, 120, 1); __const_udelay(85900UL); b43_phy_mask(dev, 236, 65534); } else { } } return; } } static void b43_nphy_rssi_select(struct b43_wldev *dev , u8 code , enum n_rssi_type type ) { { if ((unsigned int )dev->phy.rev > 18U) { b43_nphy_rssi_select_rev19(dev, (int )code, type); } else if ((unsigned int )dev->phy.rev > 2U) { b43_nphy_rev3_rssi_select(dev, (int )code, type); } else { b43_nphy_rev2_rssi_select(dev, (int )code, type); } return; } } static void b43_nphy_set_rssi_2055_vcm(struct b43_wldev *dev , enum n_rssi_type rssi_type , u8 *buf ) { int i ; { i = 0; goto ldv_54867; ldv_54866: ; if ((unsigned int )rssi_type == 2U) { if (i == 0) { b43_radio_maskset(dev, 210, 252, (int )*buf); b43_radio_maskset(dev, 118, 252, (int )*(buf + 1UL)); } else { b43_radio_maskset(dev, 222, 252, (int )*(buf + (unsigned long )(i * 2))); b43_radio_maskset(dev, 165, 252, (int )*(buf + ((unsigned long )(i * 2) + 1UL))); } } else if (i == 0) { b43_radio_maskset(dev, 118, 243, (int )((u16 )*buf) << 2U); } else { b43_radio_maskset(dev, 165, 243, (int )((u16 )*(buf + ((unsigned long )(i * 2) + 1UL))) << 2U); } i = i + 1; ldv_54867: ; if (i <= 1) { goto ldv_54866; } else { } return; } } static int b43_nphy_poll_rssi(struct b43_wldev *dev , enum n_rssi_type rssi_type , s32 *buf , u8 nsamp ) { int i ; int out ; u16 save_regs_phy[9U] ; u16 s[2U] ; { if ((unsigned int )dev->phy.rev > 2U) { save_regs_phy[0] = b43_phy_read(dev, 166); save_regs_phy[1] = b43_phy_read(dev, 167); save_regs_phy[2] = b43_phy_read(dev, 249); save_regs_phy[3] = b43_phy_read(dev, 251); save_regs_phy[4] = b43_phy_read(dev, 143); save_regs_phy[5] = b43_phy_read(dev, 165); save_regs_phy[6] = b43_phy_read(dev, 229); save_regs_phy[7] = b43_phy_read(dev, 230); save_regs_phy[8] = 0U; } else { save_regs_phy[0] = b43_phy_read(dev, 166); save_regs_phy[1] = b43_phy_read(dev, 167); save_regs_phy[2] = b43_phy_read(dev, 165); save_regs_phy[3] = b43_phy_read(dev, 120); save_regs_phy[4] = b43_phy_read(dev, 236); save_regs_phy[5] = b43_phy_read(dev, 122); save_regs_phy[6] = b43_phy_read(dev, 125); save_regs_phy[7] = 0U; save_regs_phy[8] = 0U; } b43_nphy_rssi_select(dev, 5, rssi_type); if ((unsigned int )dev->phy.rev <= 1U) { save_regs_phy[8] = b43_phy_read(dev, 202); b43_phy_write(dev, 202, 5); } else { } i = 0; goto ldv_54880; ldv_54879: *(buf + (unsigned long )i) = 0; i = i + 1; ldv_54880: ; if (i <= 3) { goto ldv_54879; } else { } i = 0; goto ldv_54883; ldv_54882: ; if ((unsigned int )dev->phy.rev <= 1U) { s[0] = b43_phy_read(dev, 457); s[1] = b43_phy_read(dev, 458); } else { s[0] = b43_phy_read(dev, 537); s[1] = b43_phy_read(dev, 538); } *buf = *buf + ((int )((signed char )((int )s[0] << 2)) >> 2); *(buf + 1UL) = *(buf + 1UL) + ((int )((signed char )(((int )s[0] >> 8) << 2)) >> 2); *(buf + 2UL) = *(buf + 2UL) + ((int )((signed char )((int )s[1] << 2)) >> 2); *(buf + 3UL) = *(buf + 3UL) + ((int )((signed char )(((int )s[1] >> 8) << 2)) >> 2); i = i + 1; ldv_54883: ; if ((int )nsamp > i) { goto ldv_54882; } else { } out = (((*buf << 24) | ((*(buf + 1UL) & 255) << 16)) | ((*(buf + 2UL) << 8) & 65535)) | (*(buf + 3UL) & 255); if ((unsigned int )dev->phy.rev <= 1U) { b43_phy_write(dev, 202, (int )save_regs_phy[8]); } else { } if ((unsigned int )dev->phy.rev > 2U) { b43_phy_write(dev, 166, (int )save_regs_phy[0]); b43_phy_write(dev, 167, (int )save_regs_phy[1]); b43_phy_write(dev, 249, (int )save_regs_phy[2]); b43_phy_write(dev, 251, (int )save_regs_phy[3]); b43_phy_write(dev, 143, (int )save_regs_phy[4]); b43_phy_write(dev, 165, (int )save_regs_phy[5]); b43_phy_write(dev, 229, (int )save_regs_phy[6]); b43_phy_write(dev, 230, (int )save_regs_phy[7]); } else { b43_phy_write(dev, 166, (int )save_regs_phy[0]); b43_phy_write(dev, 167, (int )save_regs_phy[1]); b43_phy_write(dev, 165, (int )save_regs_phy[2]); b43_phy_write(dev, 120, (int )save_regs_phy[3]); b43_phy_write(dev, 236, (int )save_regs_phy[4]); b43_phy_write(dev, 122, (int )save_regs_phy[5]); b43_phy_write(dev, 125, (int )save_regs_phy[6]); } return (out); } } static void b43_nphy_rev3_rssi_cal(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; u16 saved_regs_phy_rfctl[2U] ; u16 saved_regs_phy[22U] ; u16 regs_to_store_rev3[13U] ; u16 regs_to_store_rev7[22U] ; u16 *regs_to_store ; int regs_amount ; u16 class ; u16 clip_state[2U] ; u16 clip_off[2U] ; u8 vcm_final ; s32 offset[4U] ; s32 results[8U][4U] ; s32 results_min[4U] ; s32 poll_results[4U] ; u16 *rssical_radio_regs ; u16 *rssical_phy_regs ; u16 r ; u8 rx_core_state ; int core ; int i ; int j ; int vcm ; long tmp ; enum ieee80211_band tmp___0 ; enum ieee80211_band tmp___1 ; s32 currd ; s32 mind ; s32 minpoll ; u8 minvcm ; long ret ; int __x___0 ; long ret___0 ; int __x___2 ; enum ieee80211_band tmp___2 ; enum ieee80211_band tmp___3 ; { phy = & dev->phy; nphy = dev->phy.__annonCompField106.n; regs_to_store_rev3[0] = 143U; regs_to_store_rev3[1] = 165U; regs_to_store_rev3[2] = 166U; regs_to_store_rev3[3] = 167U; regs_to_store_rev3[4] = 231U; regs_to_store_rev3[5] = 236U; regs_to_store_rev3[6] = 229U; regs_to_store_rev3[7] = 230U; regs_to_store_rev3[8] = 120U; regs_to_store_rev3[9] = 249U; regs_to_store_rev3[10] = 251U; regs_to_store_rev3[11] = 122U; regs_to_store_rev3[12] = 125U; regs_to_store_rev7[0] = 143U; regs_to_store_rev7[1] = 165U; regs_to_store_rev7[2] = 166U; regs_to_store_rev7[3] = 167U; regs_to_store_rev7[4] = 231U; regs_to_store_rev7[5] = 236U; regs_to_store_rev7[6] = 834U; regs_to_store_rev7[7] = 835U; regs_to_store_rev7[8] = 838U; regs_to_store_rev7[9] = 839U; regs_to_store_rev7[10] = 767U; regs_to_store_rev7[11] = 229U; regs_to_store_rev7[12] = 230U; regs_to_store_rev7[13] = 120U; regs_to_store_rev7[14] = 249U; regs_to_store_rev7[15] = 251U; regs_to_store_rev7[16] = 832U; regs_to_store_rev7[17] = 833U; regs_to_store_rev7[18] = 836U; regs_to_store_rev7[19] = 837U; regs_to_store_rev7[20] = 122U; regs_to_store_rev7[21] = 125U; clip_off[0] = 65535U; clip_off[1] = 65535U; vcm_final = 0U; results[0][0] = 0; results[0][1] = 0; results[0][2] = 0; results[0][3] = 0; results[1][0] = 0; results[1][1] = 0; results[1][2] = 0; results[1][3] = 0; results[2][0] = 0; results[2][1] = 0; results[2][2] = 0; results[2][3] = 0; results[3][0] = 0; results[3][1] = 0; results[3][2] = 0; results[3][3] = 0; results[4][0] = 0; results[4][1] = 0; results[4][2] = 0; results[4][3] = 0; results[5][0] = 0; results[5][1] = 0; results[5][2] = 0; results[5][3] = 0; results[6][0] = 0; results[6][1] = 0; results[6][2] = 0; results[6][3] = 0; results[7][0] = 0; results[7][1] = 0; results[7][2] = 0; results[7][3] = 0; results_min[0] = 0; results_min[1] = 0; results_min[2] = 0; results_min[3] = 0; poll_results[0] = 0; poll_results[1] = 0; poll_results[2] = 0; poll_results[3] = 0; rssical_radio_regs = (u16 *)0U; rssical_phy_regs = (u16 *)0U; if ((unsigned int )dev->phy.rev > 6U) { regs_to_store = (u16 *)(& regs_to_store_rev7); regs_amount = 22; } else { regs_to_store = (u16 *)(& regs_to_store_rev3); regs_amount = 13; } tmp = ldv__builtin_expect((unsigned int )regs_amount > 22U, 0L); if (tmp != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_n.c"), "i" (2099), "i" (12UL)); ldv_54918: ; goto ldv_54918; } else { } class = b43_nphy_classifier(dev, 0, 0); b43_nphy_classifier(dev, 7, 4); b43_nphy_read_clip_detection(dev, (u16 *)(& clip_state)); b43_nphy_write_clip_detection(dev, (u16 const *)(& clip_off)); saved_regs_phy_rfctl[0] = b43_phy_read(dev, 145); saved_regs_phy_rfctl[1] = b43_phy_read(dev, 146); i = 0; goto ldv_54920; ldv_54919: saved_regs_phy[i] = b43_phy_read(dev, (int )*(regs_to_store + (unsigned long )i)); i = i + 1; ldv_54920: ; if (i < regs_amount) { goto ldv_54919; } else { } b43_nphy_rf_ctl_intc_override(dev, 0, 0, 7); b43_nphy_rf_ctl_intc_override(dev, 1, 1, 7); if ((unsigned int )dev->phy.rev > 6U) { b43_nphy_rf_ctl_override_one_to_many(dev, 0, 0, 0, 0); b43_nphy_rf_ctl_override_one_to_many(dev, 1, 1, 0, 0); b43_nphy_rf_ctl_override_rev7(dev, 128, 1, 0, 0, 0); b43_nphy_rf_ctl_override_rev7(dev, 64, 1, 0, 0, 0); tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 1U) { b43_nphy_rf_ctl_override_rev7(dev, 32, 0, 0, 0, 0); b43_nphy_rf_ctl_override_rev7(dev, 16, 1, 0, 0, 0); } else { b43_nphy_rf_ctl_override_rev7(dev, 16, 0, 0, 0, 0); b43_nphy_rf_ctl_override_rev7(dev, 32, 1, 0, 0, 0); } } else { b43_nphy_rf_ctl_override(dev, 1, 0, 0, 0); b43_nphy_rf_ctl_override(dev, 2, 1, 0, 0); b43_nphy_rf_ctl_override(dev, 128, 1, 0, 0); b43_nphy_rf_ctl_override(dev, 64, 1, 0, 0); tmp___1 = b43_current_band(dev->wl); if ((unsigned int )tmp___1 == 1U) { b43_nphy_rf_ctl_override(dev, 32, 0, 0, 0); b43_nphy_rf_ctl_override(dev, 16, 1, 0, 0); } else { b43_nphy_rf_ctl_override(dev, 16, 0, 0, 0); b43_nphy_rf_ctl_override(dev, 32, 1, 0, 0); } } rx_core_state = b43_nphy_get_rx_core_state(dev); core = 0; goto ldv_54946; ldv_54945: ; if ((((int )rx_core_state >> core) & 1) == 0) { goto ldv_54922; } else { } r = core != 0 ? 28672U : 24576U; b43_nphy_scale_offset_rssi(dev, 0, 0, (int )((unsigned int )((u8 )core) + 1U), 0, 2); b43_nphy_scale_offset_rssi(dev, 0, 0, (int )((unsigned int )((u8 )core) + 1U), 1, 2); vcm = 0; goto ldv_54924; ldv_54923: ; if ((unsigned int )dev->phy.rev > 6U) { b43_radio_maskset(dev, core != 0 ? 313 : 180, 65528, (int )((u16 )vcm)); } else { b43_radio_maskset(dev, (int )((unsigned int )r | 43U), 227, (int )((u16 )vcm) << 2U); } b43_nphy_poll_rssi(dev, 2, (s32 *)(& results) + (unsigned long )vcm, 8); vcm = vcm + 1; ldv_54924: ; if (vcm <= 7) { goto ldv_54923; } else { } i = 0; goto ldv_54935; ldv_54934: mind = 1048576; minpoll = 249; minvcm = 0U; if (core * 2 != i) { goto ldv_54930; } else { } vcm = 0; goto ldv_54932; ldv_54931: currd = (results[vcm][i] + results[vcm][i + 1]) * results[vcm][i]; if (currd < mind) { mind = currd; minvcm = (u8 )vcm; } else { } if (results[vcm][i] < minpoll) { minpoll = results[vcm][i]; } else { } vcm = vcm + 1; ldv_54932: ; if (vcm <= 7) { goto ldv_54931; } else { } vcm_final = minvcm; results_min[i] = minpoll; ldv_54930: i = i + 2; ldv_54935: ; if (i <= 3) { goto ldv_54934; } else { } if ((unsigned int )dev->phy.rev > 6U) { b43_radio_maskset(dev, core != 0 ? 313 : 180, 65528, (int )((u16 )vcm)); } else { b43_radio_maskset(dev, (int )((unsigned int )r | 43U), 227, (int )((u16 )vcm_final) << 2U); } i = 0; goto ldv_54943; ldv_54942: ; if (i / 2 != core) { goto ldv_54937; } else { } offset[i] = - results[(int )vcm_final][i]; if (offset[i] < 0) { __x___0 = offset[i]; ret = (long )(__x___0 < 0 ? - __x___0 : __x___0); offset[i] = (s32 )(- ((unsigned int )((ret + 4L) / 8L))); } else { offset[i] = (offset[i] + 4) / 8; } if (results_min[i] == 248) { offset[i] = -32; } else { } b43_nphy_scale_offset_rssi(dev, 0, (int )((s8 )offset[i]), (unsigned int )i - 4294967295U <= 2U ? 1 : 2, (enum n_rail_type )((unsigned int )i & 1U), 2); ldv_54937: i = i + 1; ldv_54943: ; if (i <= 3) { goto ldv_54942; } else { } ldv_54922: core = core + 1; ldv_54946: ; if (core <= 1) { goto ldv_54945; } else { } core = 0; goto ldv_54960; ldv_54959: ; if ((((int )rx_core_state >> core) & 1) == 0) { goto ldv_54948; } else { } i = 0; goto ldv_54957; ldv_54956: b43_nphy_scale_offset_rssi(dev, 0, 0, (int )((unsigned int )((u8 )core) + 1U), 0, (enum n_rssi_type )i); b43_nphy_scale_offset_rssi(dev, 0, 0, (int )((unsigned int )((u8 )core) + 1U), 1, (enum n_rssi_type )i); b43_nphy_poll_rssi(dev, (enum n_rssi_type )i, (s32 *)(& poll_results), 8); j = 0; goto ldv_54954; ldv_54953: ; if (j / 2 == core) { offset[j] = 232 - poll_results[j]; if (offset[j] < 0) { __x___2 = offset[j] + 4; ret___0 = (long )(__x___2 < 0 ? - __x___2 : __x___2); offset[j] = (s32 )(- ((unsigned int )(ret___0 / 8L))); } else { offset[j] = (offset[j] + 4) / 8; } b43_nphy_scale_offset_rssi(dev, 0, (int )((s8 )offset[core * 2]), (int )((unsigned int )((u8 )core) + 1U), (enum n_rail_type )(j % 2), (enum n_rssi_type )i); } else { } j = j + 1; ldv_54954: ; if (j <= 3) { goto ldv_54953; } else { } i = i + 1; ldv_54957: ; if (i <= 1) { goto ldv_54956; } else { } ldv_54948: core = core + 1; ldv_54960: ; if (core <= 1) { goto ldv_54959; } else { } b43_phy_write(dev, 145, (int )saved_regs_phy_rfctl[0]); b43_phy_write(dev, 146, (int )saved_regs_phy_rfctl[1]); b43_nphy_force_rf_sequence(dev, 2); b43_phy_set(dev, 231, 1); b43_phy_set(dev, 120, 1); b43_phy_mask(dev, 231, 65534); b43_phy_set(dev, 236, 1); b43_phy_set(dev, 120, 2); b43_phy_mask(dev, 236, 65534); i = 0; goto ldv_54963; ldv_54962: b43_phy_write(dev, (int )*(regs_to_store + (unsigned long )i), (int )saved_regs_phy[i]); i = i + 1; ldv_54963: ; if (i < regs_amount) { goto ldv_54962; } else { } tmp___2 = b43_current_band(dev->wl); if ((unsigned int )tmp___2 == 0U) { rssical_radio_regs = (u16 *)(& nphy->rssical_cache.rssical_radio_regs_2G); rssical_phy_regs = (u16 *)(& nphy->rssical_cache.rssical_phy_regs_2G); } else { rssical_radio_regs = (u16 *)(& nphy->rssical_cache.rssical_radio_regs_5G); rssical_phy_regs = (u16 *)(& nphy->rssical_cache.rssical_phy_regs_5G); } if ((unsigned int )dev->phy.rev > 6U) { *rssical_radio_regs = b43_radio_read(dev, 180); *(rssical_radio_regs + 1UL) = b43_radio_read(dev, 313); } else { *rssical_radio_regs = b43_radio_read(dev, 24619); *(rssical_radio_regs + 1UL) = b43_radio_read(dev, 28715); } *rssical_phy_regs = b43_phy_read(dev, 422); *(rssical_phy_regs + 1UL) = b43_phy_read(dev, 428); *(rssical_phy_regs + 2UL) = b43_phy_read(dev, 434); *(rssical_phy_regs + 3UL) = b43_phy_read(dev, 440); *(rssical_phy_regs + 4UL) = b43_phy_read(dev, 420); *(rssical_phy_regs + 5UL) = b43_phy_read(dev, 426); *(rssical_phy_regs + 6UL) = b43_phy_read(dev, 432); *(rssical_phy_regs + 7UL) = b43_phy_read(dev, 438); *(rssical_phy_regs + 8UL) = b43_phy_read(dev, 421); *(rssical_phy_regs + 9UL) = b43_phy_read(dev, 427); *(rssical_phy_regs + 10UL) = b43_phy_read(dev, 433); *(rssical_phy_regs + 11UL) = b43_phy_read(dev, 439); tmp___3 = b43_current_band(dev->wl); if ((unsigned int )tmp___3 == 0U) { nphy->rssical_chanspec_2G.center_freq = ((phy->chandef)->chan)->center_freq; } else { nphy->rssical_chanspec_5G.center_freq = ((phy->chandef)->chan)->center_freq; } b43_nphy_classifier(dev, 7, (int )class); b43_nphy_write_clip_detection(dev, (u16 const *)(& clip_state)); return; } } static void b43_nphy_rev2_rssi_cal(struct b43_wldev *dev , enum n_rssi_type type ) { int i ; int j ; int vcm ; u8 state[4U] ; u8 code ; u8 val ; u16 class ; u16 override ; u8 regs_save_radio[2U] ; u16 regs_save_phy[2U] ; s32 offset[4U] ; u8 core ; u8 rail ; u16 clip_state[2U] ; u16 clip_off[2U] ; s32 results_min[4U] ; u8 vcm_final[4U] ; s32 results[4U][4U] ; s32 miniq[4U][2U] ; int __ret_warn_on ; long tmp ; enum ieee80211_band tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; u16 tmp___3 ; u16 tmp___4 ; u16 tmp___5 ; u16 tmp___6 ; u8 tmp___7[4U] ; s32 _min1 ; s32 _min2 ; s32 mind ; u8 minvcm ; s32 minpoll ; s32 currd ; long ret ; int __x___0 ; long ret___0 ; int __x___2 ; long ret___1 ; int __x___4 ; { clip_off[0] = 65535U; clip_off[1] = 65535U; results_min[0] = 0; results_min[1] = 0; results_min[2] = 0; results_min[3] = 0; vcm_final[0] = (unsigned char)0; vcm_final[1] = (unsigned char)0; vcm_final[2] = (unsigned char)0; vcm_final[3] = (unsigned char)0; results[0][0] = 0; results[0][1] = 0; results[0][2] = 0; results[0][3] = 0; results[1][0] = 0; results[1][1] = 0; results[1][2] = 0; results[1][3] = 0; results[2][0] = 0; results[2][1] = 0; results[2][2] = 0; results[2][3] = 0; results[3][0] = 0; results[3][1] = 0; results[3][2] = 0; results[3][3] = 0; miniq[0][0] = 0; miniq[0][1] = 0; miniq[1][0] = 0; miniq[1][1] = 0; miniq[2][0] = 0; miniq[2][1] = 0; miniq[3][0] = 0; miniq[3][1] = 0; if ((unsigned int )type == 2U) { code = 0U; val = 6U; } else if ((unsigned int )type == 0U || (unsigned int )type == 1U) { code = 25U; val = 4U; } else { __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_n.c", 2330); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return; } class = b43_nphy_classifier(dev, 0, 0); b43_nphy_classifier(dev, 7, 4); b43_nphy_read_clip_detection(dev, (u16 *)(& clip_state)); b43_nphy_write_clip_detection(dev, (u16 const *)(& clip_off)); tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 1U) { override = 320U; } else { override = 272U; } regs_save_phy[0] = b43_phy_read(dev, 145); tmp___1 = b43_radio_read(dev, 23); regs_save_radio[0] = (u8 )tmp___1; b43_phy_write(dev, 145, (int )override); b43_radio_write(dev, 23, (int )val); regs_save_phy[1] = b43_phy_read(dev, 146); tmp___2 = b43_radio_read(dev, 27); regs_save_radio[1] = (u8 )tmp___2; b43_phy_write(dev, 146, (int )override); b43_radio_write(dev, 27, (int )val); tmp___3 = b43_radio_read(dev, 24); state[0] = (unsigned int )((u8 )tmp___3) & 7U; tmp___4 = b43_radio_read(dev, 28); state[1] = (unsigned int )((u8 )tmp___4) & 7U; b43_radio_mask(dev, 24, 248); b43_radio_mask(dev, 28, 248); tmp___5 = b43_radio_read(dev, 3); state[2] = (unsigned int )((u8 )tmp___5) & 7U; tmp___6 = b43_radio_read(dev, 5); state[3] = (unsigned int )((u8 )tmp___6) & 7U; b43_nphy_rssi_select(dev, 5, type); b43_nphy_scale_offset_rssi(dev, 0, 0, 5, 0, type); b43_nphy_scale_offset_rssi(dev, 0, 0, 5, 1, type); vcm = 0; goto ldv_55001; ldv_55000: j = 0; goto ldv_54992; ldv_54991: tmp___7[j] = (u8 )vcm; j = j + 1; ldv_54992: ; if (j <= 3) { goto ldv_54991; } else { } if ((unsigned int )type != 1U) { b43_nphy_set_rssi_2055_vcm(dev, type, (u8 *)(& tmp___7)); } else { } b43_nphy_poll_rssi(dev, type, (s32 *)(& results) + (unsigned long )vcm, 8); if ((unsigned int )type == 0U || (unsigned int )type == 1U) { j = 0; goto ldv_54998; ldv_54997: _min1 = results[vcm][j * 2]; _min2 = results[vcm][j * 2 + 1]; miniq[vcm][j] = _min1 < _min2 ? _min1 : _min2; j = j + 1; ldv_54998: ; if (j <= 1) { goto ldv_54997; } else { } } else { } vcm = vcm + 1; ldv_55001: ; if (vcm <= 3) { goto ldv_55000; } else { } i = 0; goto ldv_55019; ldv_55018: mind = 1048576; minvcm = 0U; minpoll = 249; vcm = 0; goto ldv_55016; ldv_55015: ; if ((unsigned int )type == 2U) { __x___0 = results[vcm][i] + (int )code * -8; ret = (long )(__x___0 < 0 ? - __x___0 : __x___0); currd = (s32 )ret; } else { __x___2 = miniq[vcm][i / 2] + (int )code * -8; ret___0 = (long )(__x___2 < 0 ? - __x___2 : __x___2); currd = (s32 )ret___0; } if (currd < mind) { mind = currd; minvcm = (u8 )vcm; } else { } if (results[vcm][i] < minpoll) { minpoll = results[vcm][i]; } else { } vcm = vcm + 1; ldv_55016: ; if (vcm <= 3) { goto ldv_55015; } else { } results_min[i] = minpoll; vcm_final[i] = minvcm; i = i + 1; ldv_55019: ; if (i <= 3) { goto ldv_55018; } else { } if ((unsigned int )type != 1U) { b43_nphy_set_rssi_2055_vcm(dev, type, (u8 *)(& vcm_final)); } else { } i = 0; goto ldv_55026; ldv_55025: offset[i] = (int )code * 8 - results[(int )vcm_final[i]][i]; if (offset[i] < 0) { __x___4 = offset[i]; ret___1 = (long )(__x___4 < 0 ? - __x___4 : __x___4); offset[i] = (s32 )(- ((unsigned int )((ret___1 + 4L) / 8L))); } else { offset[i] = (offset[i] + 4) / 8; } if (results_min[i] == 248) { offset[i] = (int )code + -32; } else { } core = (unsigned int )i - 4294967295U > 2U ? 2U : 1U; rail = (unsigned int )((u8 )i) & 1U; b43_nphy_scale_offset_rssi(dev, 0, (int )((s8 )offset[i]), (int )core, (enum n_rail_type )rail, type); i = i + 1; ldv_55026: ; if (i <= 3) { goto ldv_55025; } else { } b43_radio_maskset(dev, 24, 248, (int )state[0]); b43_radio_maskset(dev, 28, 248, (int )state[1]); switch ((int )state[2]) { case 1: b43_nphy_rssi_select(dev, 1, 2); goto ldv_55029; case 4: b43_nphy_rssi_select(dev, 1, 0); goto ldv_55029; case 2: b43_nphy_rssi_select(dev, 1, 1); goto ldv_55029; default: b43_nphy_rssi_select(dev, 1, 1); goto ldv_55029; } ldv_55029: ; switch ((int )state[3]) { case 1: b43_nphy_rssi_select(dev, 2, 2); goto ldv_55034; case 4: b43_nphy_rssi_select(dev, 2, 0); goto ldv_55034; default: b43_nphy_rssi_select(dev, 2, 1); goto ldv_55034; } ldv_55034: b43_nphy_rssi_select(dev, 0, type); b43_phy_write(dev, 145, (int )regs_save_phy[0]); b43_radio_write(dev, 23, (int )regs_save_radio[0]); b43_phy_write(dev, 146, (int )regs_save_phy[1]); b43_radio_write(dev, 27, (int )regs_save_radio[1]); b43_nphy_classifier(dev, 7, (int )class); b43_nphy_write_clip_detection(dev, (u16 const *)(& clip_state)); b43_nphy_reset_cca(dev); return; } } static void b43_nphy_rssi_cal(struct b43_wldev *dev ) { { if ((unsigned int )dev->phy.rev > 18U) { } else if ((unsigned int )dev->phy.rev > 2U) { b43_nphy_rev3_rssi_cal(dev); } else { b43_nphy_rev2_rssi_cal(dev, 2); b43_nphy_rev2_rssi_cal(dev, 0); b43_nphy_rev2_rssi_cal(dev, 1); } return; } } static void b43_nphy_gain_ctl_workarounds_rev19(struct b43_wldev *dev ) { { return; } } static void b43_nphy_gain_ctl_workarounds_rev7(struct b43_wldev *dev ) { struct b43_phy *phy ; { phy = & dev->phy; switch ((int )phy->rev) { } return; } } static void b43_nphy_gain_ctl_workarounds_rev3(struct b43_wldev *dev ) { struct ssb_sprom *sprom ; bool ghz5 ; bool ext_lna ; u16 rssi_gain ; struct nphy_gain_ctl_workaround_entry *e ; u8 lpf_gain[6U] ; u8 lpf_bits[6U] ; u16 tmp ; { sprom = (dev->dev)->bus_sprom; lpf_gain[0] = 0U; lpf_gain[1] = 6U; lpf_gain[2] = 12U; lpf_gain[3] = 18U; lpf_gain[4] = 18U; lpf_gain[5] = 18U; lpf_bits[0] = 0U; lpf_bits[1] = 1U; lpf_bits[2] = 2U; lpf_bits[3] = 3U; lpf_bits[4] = 3U; lpf_bits[5] = 3U; tmp = b43_phy_read(dev, 9); ghz5 = ((int )tmp & 1) != 0; ext_lna = (int )ghz5 ? ((int )sprom->boardflags_hi & 4096) != 0 : ((int )sprom->boardflags_lo & 4096) != 0; e = b43_nphy_get_gain_ctl_workaround_ent(dev, (int )ghz5, (int )ext_lna); if ((int )ghz5 && (unsigned int )dev->phy.rev > 4U) { rssi_gain = 144U; } else { rssi_gain = 80U; } b43_phy_set(dev, 160, 64); b43_phy_set(dev, 28, 8192); b43_phy_set(dev, 50, 8192); b43_radio_write(dev, 24631, 23); b43_radio_write(dev, 28727, 23); b43_radio_write(dev, 24632, 240); b43_radio_write(dev, 28728, 240); b43_radio_write(dev, 24617, 0); b43_radio_write(dev, 28713, 0); b43_radio_write(dev, 24611, (int )rssi_gain); b43_radio_write(dev, 28707, (int )rssi_gain); b43_radio_write(dev, 24624, 23); b43_radio_write(dev, 28720, 23); b43_radio_write(dev, 24625, 255); b43_radio_write(dev, 28721, 255); b43_ntab_write_bulk(dev, 268435464U, 4U, (void const *)(& e->lna1_gain)); b43_ntab_write_bulk(dev, 268436488U, 4U, (void const *)(& e->lna1_gain)); b43_ntab_write_bulk(dev, 268435472U, 4U, (void const *)(& e->lna2_gain)); b43_ntab_write_bulk(dev, 268436496U, 4U, (void const *)(& e->lna2_gain)); b43_ntab_write_bulk(dev, 268435488U, 10U, (void const *)(& e->gain_db)); b43_ntab_write_bulk(dev, 268436512U, 10U, (void const *)(& e->gain_db)); b43_ntab_write_bulk(dev, 268437536U, 10U, (void const *)(& e->gain_bits)); b43_ntab_write_bulk(dev, 268438560U, 10U, (void const *)(& e->gain_bits)); b43_ntab_write_bulk(dev, 268435520U, 6U, (void const *)(& lpf_gain)); b43_ntab_write_bulk(dev, 268436544U, 6U, (void const *)(& lpf_gain)); b43_ntab_write_bulk(dev, 268437568U, 6U, (void const *)(& lpf_bits)); b43_ntab_write_bulk(dev, 268438592U, 6U, (void const *)(& lpf_bits)); b43_phy_write(dev, 32, (int )e->init_gain); b43_phy_write(dev, 679, (int )e->init_gain); b43_ntab_write_bulk(dev, 536878342U, 2U, (void const *)(& e->rfseq_init)); b43_phy_write(dev, 34, (int )e->cliphi_gain); b43_phy_write(dev, 681, (int )e->cliphi_gain); b43_phy_write(dev, 36, (int )e->clipmd_gain); b43_phy_write(dev, 683, (int )e->clipmd_gain); b43_phy_write(dev, 55, (int )e->cliplo_gain); b43_phy_write(dev, 685, (int )e->cliplo_gain); b43_phy_maskset(dev, 637, 65280, (int )e->crsmin); b43_phy_maskset(dev, 640, 65280, (int )e->crsminl); b43_phy_maskset(dev, 643, 65280, (int )e->crsminu); b43_phy_write(dev, 43, (int )e->nbclip); b43_phy_write(dev, 65, (int )e->nbclip); b43_phy_maskset(dev, 39, 65472, (int )e->wlclip); b43_phy_maskset(dev, 61, 65472, (int )e->wlclip); b43_phy_write(dev, 336, 32924); return; } } static void b43_nphy_gain_ctl_workarounds_rev1_2(struct b43_wldev *dev ) { struct b43_phy_n *nphy ; u8 i ; u8 j ; u8 code ; u16 tmp ; u8 rfseq_events[3U] ; u8 rfseq_delays[3U] ; bool tmp___0 ; int tmp___1 ; bool tmp___2 ; int tmp___3 ; enum ieee80211_band tmp___4 ; bool tmp___5 ; bool tmp___6 ; enum ieee80211_band tmp___7 ; { nphy = dev->phy.__annonCompField106.n; rfseq_events[0] = 6U; rfseq_events[1] = 8U; rfseq_events[2] = 7U; rfseq_delays[0] = 10U; rfseq_delays[1] = 30U; rfseq_delays[2] = 1U; b43_phy_set(dev, 28, 8192); b43_phy_set(dev, 50, 8192); b43_phy_write(dev, 43, 132); b43_phy_write(dev, 65, 132); tmp___0 = b43_is_40mhz(dev); if (tmp___0) { tmp___1 = 0; } else { tmp___1 = 1; } if (tmp___1) { b43_phy_write(dev, 107, 43); b43_phy_write(dev, 108, 43); b43_phy_write(dev, 109, 9); b43_phy_write(dev, 110, 9); } else { } b43_phy_maskset(dev, 39, 65472, 21); b43_phy_maskset(dev, 61, 65472, 21); tmp___2 = b43_is_40mhz(dev); if (tmp___2) { tmp___3 = 0; } else { tmp___3 = 1; } if (tmp___3) { b43_phy_maskset(dev, 28, 65504, 1); b43_phy_maskset(dev, 50, 65504, 1); b43_phy_maskset(dev, 29, 65504, 1); b43_phy_maskset(dev, 51, 65504, 1); } else { } b43_phy_write(dev, 336, 32924); if ((int )nphy->gain_boost) { tmp___4 = b43_current_band(dev->wl); if ((unsigned int )tmp___4 == 0U) { tmp___5 = b43_is_40mhz(dev); if ((int )tmp___5) { code = 4U; } else { code = 5U; } } else { code = 5U; } } else { tmp___6 = b43_is_40mhz(dev); code = (int )tmp___6 ? 6U : 7U; } b43_phy_maskset(dev, 32, 61567, (int )((u16 )code) << 7U); b43_phy_maskset(dev, 54, 61567, (int )((u16 )code) << 7U); b43_phy_write(dev, 114, 7430); i = 0U; goto ldv_55068; ldv_55067: b43_phy_write(dev, 115, (int )((u16 )((int )((short )((int )code << 8)) | 124))); i = (u8 )((int )i + 1); ldv_55068: ; if ((unsigned int )i <= 3U) { goto ldv_55067; } else { } b43_nphy_adjust_lna_gain_table(dev); if ((int )nphy->elna_gain_config) { b43_phy_write(dev, 114, 2056); b43_phy_write(dev, 115, 0); b43_phy_write(dev, 115, 1); b43_phy_write(dev, 115, 1); b43_phy_write(dev, 115, 1); b43_phy_write(dev, 114, 3080); b43_phy_write(dev, 115, 0); b43_phy_write(dev, 115, 1); b43_phy_write(dev, 115, 1); b43_phy_write(dev, 115, 1); b43_phy_write(dev, 114, 7430); i = 0U; goto ldv_55071; ldv_55070: b43_phy_write(dev, 115, (int )((u16 )((int )((short )((int )code << 8)) | 116))); i = (u8 )((int )i + 1); ldv_55071: ; if ((unsigned int )i <= 3U) { goto ldv_55070; } else { } } else { } if ((unsigned int )dev->phy.rev == 2U) { i = 0U; goto ldv_55077; ldv_55076: b43_phy_write(dev, 114, (int )((unsigned int )((u16 )i) * 1024U + 32U)); j = 0U; goto ldv_55074; ldv_55073: tmp = (unsigned int )((u16 )j) * ((unsigned int )i <= 1U ? 3U : 1U); b43_phy_write(dev, 115, (int )tmp); j = (u8 )((int )j + 1); ldv_55074: ; if ((unsigned int )j <= 20U) { goto ldv_55073; } else { } i = (u8 )((int )i + 1); ldv_55077: ; if ((unsigned int )i <= 3U) { goto ldv_55076; } else { } } else { } b43_nphy_set_rf_sequence(dev, 5, (u8 *)(& rfseq_events), (u8 *)(& rfseq_delays), 3); b43_phy_maskset(dev, 339, 255, 23040); tmp___7 = b43_current_band(dev->wl); if ((unsigned int )tmp___7 == 0U) { b43_phy_maskset(dev, 3165, 65408, 4); } else { } return; } } static void b43_nphy_gain_ctl_workarounds(struct b43_wldev *dev ) { { if ((unsigned int )dev->phy.rev > 18U) { b43_nphy_gain_ctl_workarounds_rev19(dev); } else if ((unsigned int )dev->phy.rev > 6U) { b43_nphy_gain_ctl_workarounds_rev7(dev); } else if ((unsigned int )dev->phy.rev > 2U) { b43_nphy_gain_ctl_workarounds_rev3(dev); } else { b43_nphy_gain_ctl_workarounds_rev1_2(dev); } return; } } static void b43_nphy_workarounds_rev7plus(struct b43_wldev *dev ) { struct ssb_sprom *sprom ; struct b43_phy *phy ; u8 tx2rx_events[7U] ; u8 tx2rx_delays[7U] ; u8 rx2tx_events_ipa[9U] ; u8 rx2tx_delays_ipa[9U] ; u16 ntab7_15e_16e[3U] ; u8 ntab7_138_146[2U] ; u8 ntab7_133[3U] ; u16 lpf_ofdm_20mhz[2U] ; u16 lpf_ofdm_40mhz[2U] ; u16 lpf_11b[2U] ; u16 bcap_val ; s16 bcap_val_11b[2U] ; s16 bcap_val_11n_20[2U] ; s16 bcap_val_11n_40[2U] ; u16 scap_val ; s16 scap_val_11b[2U] ; s16 scap_val_11n_20[2U] ; s16 scap_val_11n_40[2U] ; bool rccal_ovrd ; u16 bias ; u16 conv ; u16 filt ; u32 noise_tbl[2U] ; u32 tmp32 ; u8 core ; bool tmp ; bool ghz2 ; enum ieee80211_band tmp___0 ; bool tmp___1 ; enum ieee80211_band tmp___2 ; bool tmp___3 ; u16 rx2tx_lut_20_11b[2U] ; u16 rx2tx_lut_20_11n[2U] ; u16 rx2tx_lut_40_11n[2U] ; u8 rx2tx_lut_extra ; s16 __min1 ; s16 __max1 ; s16 __max2 ; s16 __min2 ; s16 __min1___0 ; s16 __max1___0 ; s16 __max2___0 ; s16 __min2___0 ; s16 __min1___1 ; s16 __max1___1 ; s16 __max2___1 ; s16 __min2___1 ; s16 __min1___2 ; s16 __max1___2 ; s16 __max2___2 ; s16 __min2___2 ; s16 __min1___3 ; s16 __max1___3 ; s16 __max2___3 ; s16 __min2___3 ; s16 __min1___4 ; s16 __max1___4 ; s16 __max2___4 ; s16 __min2___4 ; enum ieee80211_band tmp___4 ; bool tmp___5 ; int tmp___6 ; int o ; u16 freq ; enum ieee80211_band tmp___7 ; bool tmp___8 ; bool tmp___9 ; bool tmp___10 ; { sprom = (dev->dev)->bus_sprom; phy = & dev->phy; tx2rx_events[0] = 4U; tx2rx_events[1] = 3U; tx2rx_events[2] = 5U; tx2rx_events[3] = 2U; tx2rx_events[4] = 1U; tx2rx_events[5] = 8U; tx2rx_events[6] = 31U; tx2rx_delays[0] = 8U; tx2rx_delays[1] = 4U; tx2rx_delays[2] = 4U; tx2rx_delays[3] = 4U; tx2rx_delays[4] = 4U; tx2rx_delays[5] = 6U; tx2rx_delays[6] = 1U; rx2tx_events_ipa[0] = 0U; rx2tx_events_ipa[1] = 1U; rx2tx_events_ipa[2] = 2U; rx2tx_events_ipa[3] = 8U; rx2tx_events_ipa[4] = 5U; rx2tx_events_ipa[5] = 6U; rx2tx_events_ipa[6] = 15U; rx2tx_events_ipa[7] = 3U; rx2tx_events_ipa[8] = 31U; rx2tx_delays_ipa[0] = 8U; rx2tx_delays_ipa[1] = 6U; rx2tx_delays_ipa[2] = 6U; rx2tx_delays_ipa[3] = 4U; rx2tx_delays_ipa[4] = 4U; rx2tx_delays_ipa[5] = 16U; rx2tx_delays_ipa[6] = 43U; rx2tx_delays_ipa[7] = 1U; rx2tx_delays_ipa[8] = 1U; ntab7_15e_16e[0] = 0U; ntab7_15e_16e[1] = 271U; ntab7_15e_16e[2] = 271U; ntab7_138_146[0] = 17U; ntab7_138_146[1] = 17U; ntab7_133[0] = 119U; ntab7_133[1] = 17U; ntab7_133[2] = 17U; rccal_ovrd = 0; b43_phy_write(dev, 325, 293); b43_phy_write(dev, 326, 435); b43_phy_write(dev, 327, 261); b43_phy_write(dev, 328, 366); b43_phy_write(dev, 329, 205); b43_phy_write(dev, 330, 32); if ((unsigned int )phy->rev == 7U) { b43_phy_set(dev, 545, 16); b43_phy_maskset(dev, 352, 65408, 32); b43_phy_maskset(dev, 352, 33023, 9984); b43_phy_maskset(dev, 353, 65408, 46); b43_phy_maskset(dev, 353, 33023, 13056); b43_phy_maskset(dev, 354, 65408, 55); b43_phy_maskset(dev, 354, 33023, 14848); b43_phy_maskset(dev, 355, 65408, 60); b43_phy_maskset(dev, 355, 33023, 15872); b43_phy_maskset(dev, 356, 65408, 62); b43_phy_maskset(dev, 356, 33023, 16128); b43_phy_maskset(dev, 357, 65408, 64); b43_phy_maskset(dev, 357, 33023, 16384); b43_phy_maskset(dev, 358, 65408, 64); b43_phy_maskset(dev, 358, 33023, 16384); b43_phy_maskset(dev, 359, 65408, 64); b43_phy_maskset(dev, 359, 33023, 16384); } else { } if ((unsigned int )phy->rev > 15U) { b43_phy_write(dev, 575, 2047); b43_phy_write(dev, 576, 2047); } else if ((unsigned int )phy->rev <= 8U) { b43_phy_write(dev, 575, 432); b43_phy_write(dev, 576, 432); } else { } if ((unsigned int )phy->rev > 15U) { b43_phy_maskset(dev, 189, 65280, 160); } else if ((unsigned int )phy->rev > 7U) { b43_phy_maskset(dev, 189, 65280, 114); } else { } b43_ntab_write(dev, 536879104U, 2U); b43_ntab_write(dev, 536879120U, 2U); tmp32 = b43_ntab_read(dev, 805337088U); tmp32 = tmp32 & 16777215U; b43_ntab_write(dev, 805337088U, tmp32); b43_ntab_write_bulk(dev, 536878429U, 3U, (void const *)(& ntab7_15e_16e)); b43_ntab_write_bulk(dev, 536878445U, 3U, (void const *)(& ntab7_15e_16e)); b43_nphy_set_rf_sequence(dev, 1, (u8 *)(& tx2rx_events), (u8 *)(& tx2rx_delays), 7); tmp = b43_nphy_ipa(dev); if ((int )tmp) { b43_nphy_set_rf_sequence(dev, 0, (u8 *)(& rx2tx_events_ipa), (u8 *)(& rx2tx_delays_ipa), 9); } else { } b43_phy_maskset(dev, 665, 16383, 16384); b43_phy_maskset(dev, 669, 16383, 16384); core = 0U; goto ldv_55117; ldv_55116: lpf_ofdm_20mhz[(int )core] = b43_nphy_read_lpf_ctl(dev, (int )((unsigned int )((u16 )core) * 16U + 340U)); lpf_ofdm_40mhz[(int )core] = b43_nphy_read_lpf_ctl(dev, (int )((unsigned int )((u16 )core) * 16U + 345U)); lpf_11b[(int )core] = b43_nphy_read_lpf_ctl(dev, (int )((unsigned int )((u16 )core) * 16U + 338U)); core = (u8 )((int )core + 1); ldv_55117: ; if ((unsigned int )core <= 1U) { goto ldv_55116; } else { } bcap_val = b43_radio_read(dev, 363); scap_val = b43_radio_read(dev, 362); tmp___3 = b43_nphy_ipa(dev); if ((int )tmp___3) { tmp___0 = b43_current_band(dev->wl); ghz2 = (unsigned int )tmp___0 == 0U; switch ((int )phy->radio_rev) { case 5: ; if ((unsigned int )phy->rev == 8U) { tmp___1 = b43_is_40mhz(dev); if ((int )tmp___1) { core = 0U; goto ldv_55122; ldv_55121: scap_val_11b[(int )core] = (s16 )scap_val; bcap_val_11b[(int )core] = (s16 )bcap_val; scap_val_11n_20[(int )core] = (s16 )scap_val; bcap_val_11n_20[(int )core] = (s16 )bcap_val; scap_val_11n_40[(int )core] = 12; bcap_val_11n_40[(int )core] = 12; core = (u8 )((int )core + 1); ldv_55122: ; if ((unsigned int )core <= 1U) { goto ldv_55121; } else { } rccal_ovrd = 1; } else { } } else { } goto ldv_55124; case 7: ; case 8: core = 0U; goto ldv_55128; ldv_55127: scap_val_11b[(int )core] = (s16 )scap_val; bcap_val_11b[(int )core] = (s16 )bcap_val; lpf_ofdm_20mhz[(int )core] = 4U; lpf_11b[(int )core] = 1U; tmp___2 = b43_current_band(dev->wl); if ((unsigned int )tmp___2 == 0U) { scap_val_11n_20[(int )core] = 12; bcap_val_11n_20[(int )core] = 12; scap_val_11n_40[(int )core] = 10; bcap_val_11n_40[(int )core] = 10; } else { scap_val_11n_20[(int )core] = 20; bcap_val_11n_20[(int )core] = 20; scap_val_11n_40[(int )core] = 15; bcap_val_11n_40[(int )core] = 15; } core = (u8 )((int )core + 1); ldv_55128: ; if ((unsigned int )core <= 1U) { goto ldv_55127; } else { } rccal_ovrd = 1; goto ldv_55124; case 9: core = 0U; goto ldv_55132; ldv_55131: bcap_val_11b[(int )core] = (s16 )bcap_val; scap_val_11b[(int )core] = (s16 )scap_val; lpf_11b[(int )core] = 1U; if ((int )ghz2) { bcap_val_11n_20[(int )core] = (s16 )((unsigned int )bcap_val + 13U); scap_val_11n_20[(int )core] = (s16 )((unsigned int )scap_val + 15U); } else { bcap_val_11n_20[(int )core] = (s16 )((unsigned int )bcap_val + 14U); scap_val_11n_20[(int )core] = (s16 )((unsigned int )scap_val + 15U); } lpf_ofdm_20mhz[(int )core] = 4U; if ((int )ghz2) { bcap_val_11n_40[(int )core] = (s16 )((unsigned int )bcap_val + 65529U); scap_val_11n_40[(int )core] = (s16 )((unsigned int )scap_val + 65531U); } else { bcap_val_11n_40[(int )core] = (s16 )((unsigned int )bcap_val + 2U); scap_val_11n_40[(int )core] = (s16 )((unsigned int )scap_val + 4U); } lpf_ofdm_40mhz[(int )core] = 4U; core = (u8 )((int )core + 1); ldv_55132: ; if ((unsigned int )core <= 1U) { goto ldv_55131; } else { } rccal_ovrd = 1; goto ldv_55124; case 14: core = 0U; goto ldv_55136; ldv_55135: bcap_val_11b[(int )core] = (s16 )bcap_val; scap_val_11b[(int )core] = (s16 )scap_val; lpf_11b[(int )core] = 1U; core = (u8 )((int )core + 1); ldv_55136: ; if ((unsigned int )core <= 1U) { goto ldv_55135; } else { } bcap_val_11n_20[0] = (s16 )((unsigned int )bcap_val + 20U); scap_val_11n_20[0] = (s16 )((unsigned int )scap_val + 20U); lpf_ofdm_20mhz[0] = 3U; bcap_val_11n_20[1] = (s16 )((unsigned int )bcap_val + 16U); scap_val_11n_20[1] = (s16 )((unsigned int )scap_val + 16U); lpf_ofdm_20mhz[1] = 3U; bcap_val_11n_40[0] = (s16 )((unsigned int )bcap_val + 20U); scap_val_11n_40[0] = (s16 )((unsigned int )scap_val + 20U); lpf_ofdm_40mhz[0] = 4U; bcap_val_11n_40[1] = (s16 )((unsigned int )bcap_val + 10U); scap_val_11n_40[1] = (s16 )((unsigned int )scap_val + 10U); lpf_ofdm_40mhz[1] = 4U; rccal_ovrd = 1; goto ldv_55124; } ldv_55124: ; } else if ((unsigned int )phy->radio_rev == 5U) { core = 0U; goto ldv_55139; ldv_55138: lpf_ofdm_20mhz[(int )core] = 1U; lpf_ofdm_40mhz[(int )core] = 3U; scap_val_11b[(int )core] = (s16 )scap_val; bcap_val_11b[(int )core] = (s16 )bcap_val; scap_val_11n_20[(int )core] = 17; scap_val_11n_40[(int )core] = 17; bcap_val_11n_20[(int )core] = 19; bcap_val_11n_40[(int )core] = 19; core = (u8 )((int )core + 1); ldv_55139: ; if ((unsigned int )core <= 1U) { goto ldv_55138; } else { } rccal_ovrd = 1; } else { } if ((int )rccal_ovrd) { rx2tx_lut_extra = 1U; core = 0U; goto ldv_55182; ldv_55181: __max1 = bcap_val_11b[(int )core]; __max2 = 0; __min1 = (s16 )((int )__max1 > (int )__max2 ? __max1 : __max2); __min2 = 31; bcap_val_11b[(int )core] = (s16 )((int )__min1 < (int )__min2 ? __min1 : __min2); __max1___0 = scap_val_11b[(int )core]; __max2___0 = 0; __min1___0 = (s16 )((int )__max1___0 > (int )__max2___0 ? __max1___0 : __max2___0); __min2___0 = 31; scap_val_11b[(int )core] = (s16 )((int )__min1___0 < (int )__min2___0 ? __min1___0 : __min2___0); __max1___1 = bcap_val_11n_20[(int )core]; __max2___1 = 0; __min1___1 = (s16 )((int )__max1___1 > (int )__max2___1 ? __max1___1 : __max2___1); __min2___1 = 31; bcap_val_11n_20[(int )core] = (s16 )((int )__min1___1 < (int )__min2___1 ? __min1___1 : __min2___1); __max1___2 = scap_val_11n_20[(int )core]; __max2___2 = 0; __min1___2 = (s16 )((int )__max1___2 > (int )__max2___2 ? __max1___2 : __max2___2); __min2___2 = 31; scap_val_11n_20[(int )core] = (s16 )((int )__min1___2 < (int )__min2___2 ? __min1___2 : __min2___2); __max1___3 = bcap_val_11n_40[(int )core]; __max2___3 = 0; __min1___3 = (s16 )((int )__max1___3 > (int )__max2___3 ? __max1___3 : __max2___3); __min2___3 = 31; bcap_val_11n_40[(int )core] = (s16 )((int )__min1___3 < (int )__min2___3 ? __min1___3 : __min2___3); __max1___4 = scap_val_11n_40[(int )core]; __max2___4 = 0; __min1___4 = (s16 )((int )__max1___4 > (int )__max2___4 ? __max1___4 : __max2___4); __min2___4 = 31; scap_val_11n_40[(int )core] = (s16 )((int )__min1___4 < (int )__min2___4 ? __min1___4 : __min2___4); rx2tx_lut_20_11b[(int )core] = (u16 )((((int )((short )((int )rx2tx_lut_extra << 13)) | (int )((short )((int )bcap_val_11b[(int )core] << 8))) | (int )((short )((int )scap_val_11b[(int )core] << 3))) | (int )((short )lpf_11b[(int )core])); rx2tx_lut_20_11n[(int )core] = (u16 )((((int )((short )((int )rx2tx_lut_extra << 13)) | (int )((short )((int )bcap_val_11n_20[(int )core] << 8))) | (int )((short )((int )scap_val_11n_20[(int )core] << 3))) | (int )((short )lpf_ofdm_20mhz[(int )core])); rx2tx_lut_40_11n[(int )core] = (u16 )((((int )((short )((int )rx2tx_lut_extra << 13)) | (int )((short )((int )bcap_val_11n_40[(int )core] << 8))) | (int )((short )((int )scap_val_11n_40[(int )core] << 3))) | (int )((short )lpf_ofdm_40mhz[(int )core])); core = (u8 )((int )core + 1); ldv_55182: ; if ((unsigned int )core <= 1U) { goto ldv_55181; } else { } core = 0U; goto ldv_55185; ldv_55184: b43_ntab_write(dev, (u32 )(((int )core * 16 + 338) | 536878080), (u32 )rx2tx_lut_20_11b[(int )core]); b43_ntab_write(dev, (u32 )(((int )core * 16 + 339) | 536878080), (u32 )rx2tx_lut_20_11n[(int )core]); b43_ntab_write(dev, (u32 )(((int )core * 16 + 340) | 536878080), (u32 )rx2tx_lut_20_11n[(int )core]); b43_ntab_write(dev, (u32 )(((int )core * 16 + 341) | 536878080), (u32 )rx2tx_lut_40_11n[(int )core]); b43_ntab_write(dev, (u32 )(((int )core * 16 + 342) | 536878080), (u32 )rx2tx_lut_40_11n[(int )core]); b43_ntab_write(dev, (u32 )(((int )core * 16 + 343) | 536878080), (u32 )rx2tx_lut_40_11n[(int )core]); b43_ntab_write(dev, (u32 )(((int )core * 16 + 344) | 536878080), (u32 )rx2tx_lut_40_11n[(int )core]); b43_ntab_write(dev, (u32 )(((int )core * 16 + 345) | 536878080), (u32 )rx2tx_lut_40_11n[(int )core]); core = (u8 )((int )core + 1); ldv_55185: ; if ((unsigned int )core <= 1U) { goto ldv_55184; } else { } } else { } b43_phy_write(dev, 815, 3); if ((unsigned int )phy->radio_rev == 4U || (unsigned int )phy->radio_rev == 6U) { b43_nphy_rf_ctl_override_rev7(dev, 4, 1, 3, 0, 0); } else { } if (((unsigned int )phy->radio_rev == 3U || (unsigned int )phy->radio_rev == 4U) || (unsigned int )phy->radio_rev == 6U) { if ((unsigned int )sprom->revision != 0U && ((int )sprom->boardflags2_hi & 2) != 0) { b43_radio_write(dev, 5, 5); b43_radio_write(dev, 6, 48); b43_radio_write(dev, 7, 0); b43_radio_set(dev, 79, 1); b43_radio_set(dev, 212, 1); bias = 31U; conv = 111U; filt = 170U; } else { bias = 43U; conv = 127U; filt = 238U; } tmp___4 = b43_current_band(dev->wl); if ((unsigned int )tmp___4 == 0U) { core = 0U; goto ldv_55188; ldv_55187: ; if ((unsigned int )core == 0U) { b43_radio_write(dev, 95, (int )bias); b43_radio_write(dev, 100, (int )conv); b43_radio_write(dev, 102, (int )filt); } else { b43_radio_write(dev, 232, (int )bias); b43_radio_write(dev, 233, (int )conv); b43_radio_write(dev, 235, (int )filt); } core = (u8 )((int )core + 1); ldv_55188: ; if ((unsigned int )core <= 1U) { goto ldv_55187; } else { } } else { } } else { } tmp___8 = b43_nphy_ipa(dev); if ((int )tmp___8) { tmp___7 = b43_current_band(dev->wl); if ((unsigned int )tmp___7 == 0U) { if (((unsigned int )phy->radio_rev == 3U || (unsigned int )phy->radio_rev == 4U) || (unsigned int )phy->radio_rev == 6U) { core = 0U; goto ldv_55191; ldv_55190: ; if ((unsigned int )core == 0U) { b43_radio_write(dev, 81, 127); } else { b43_radio_write(dev, 214, 127); } core = (u8 )((int )core + 1); ldv_55191: ; if ((unsigned int )core <= 1U) { goto ldv_55190; } else { } } else { } switch ((int )phy->radio_rev) { case 3: core = 0U; goto ldv_55195; ldv_55194: ; if ((unsigned int )core == 0U) { b43_radio_write(dev, 100, 19); b43_radio_write(dev, 95, 31); b43_radio_write(dev, 102, 238); b43_radio_write(dev, 89, 138); b43_radio_write(dev, 128, 62); } else { b43_radio_write(dev, 105, 19); b43_radio_write(dev, 232, 31); b43_radio_write(dev, 235, 238); b43_radio_write(dev, 222, 138); b43_radio_write(dev, 261, 62); } core = (u8 )((int )core + 1); ldv_55195: ; if ((unsigned int )core <= 1U) { goto ldv_55194; } else { } goto ldv_55197; case 7: ; case 8: tmp___5 = b43_is_40mhz(dev); if (tmp___5) { tmp___6 = 0; } else { tmp___6 = 1; } if (tmp___6) { b43_radio_write(dev, 95, 20); b43_radio_write(dev, 232, 18); } else { b43_radio_write(dev, 95, 22); b43_radio_write(dev, 232, 22); } goto ldv_55197; case 14: core = 0U; goto ldv_55203; ldv_55202: o = (unsigned int )core != 0U ? 133 : 0; b43_radio_write(dev, (int )((unsigned int )((u16 )o) + 100U), 19); b43_radio_write(dev, (int )((unsigned int )((u16 )o) + 92U), 33); b43_radio_write(dev, (int )((unsigned int )((u16 )o) + 102U), 255); b43_radio_write(dev, (int )((unsigned int )((u16 )o) + 89U), 136); b43_radio_write(dev, (int )((unsigned int )((u16 )o) + 94U), 35); b43_radio_write(dev, (int )((unsigned int )((u16 )o) + 99U), 22); b43_radio_write(dev, (int )((unsigned int )((u16 )o) + 128U), 62); b43_radio_write(dev, (int )((unsigned int )((u16 )o) + 196U), 16); core = (u8 )((int )core + 1); ldv_55203: ; if ((unsigned int )core <= 1U) { goto ldv_55202; } else { } goto ldv_55197; } ldv_55197: ; } else { freq = ((phy->chandef)->chan)->center_freq; if (((unsigned int )freq > 5179U && (unsigned int )freq <= 5230U) || ((unsigned int )freq > 5744U && (unsigned int )freq <= 5805U)) { b43_radio_write(dev, 125, 255); b43_radio_write(dev, 254, 255); } else { } } } else if ((unsigned int )phy->radio_rev != 5U) { core = 0U; goto ldv_55207; ldv_55206: ; if ((unsigned int )core == 0U) { b43_radio_write(dev, 92, 97); b43_radio_write(dev, 81, 112); } else { b43_radio_write(dev, 225, 97); b43_radio_write(dev, 214, 112); } core = (u8 )((int )core + 1); ldv_55207: ; if ((unsigned int )core <= 1U) { goto ldv_55206; } else { } } else { } if ((unsigned int )phy->radio_rev == 4U) { b43_ntab_write(dev, 536879109U, 32U); b43_ntab_write(dev, 536879125U, 32U); core = 0U; goto ldv_55210; ldv_55209: ; if ((unsigned int )core == 0U) { b43_radio_write(dev, 417, 0); b43_radio_write(dev, 418, 63); b43_radio_write(dev, 422, 63); } else { b43_radio_write(dev, 423, 0); b43_radio_write(dev, 427, 63); b43_radio_write(dev, 428, 63); } core = (u8 )((int )core + 1); ldv_55210: ; if ((unsigned int )core <= 1U) { goto ldv_55209; } else { } } else { b43_phy_set(dev, 166, 4); b43_phy_set(dev, 143, 4); b43_phy_set(dev, 167, 4); b43_phy_set(dev, 165, 4); b43_phy_mask(dev, 166, 65534); b43_phy_set(dev, 143, 1); b43_phy_mask(dev, 167, 65534); b43_phy_set(dev, 165, 1); b43_ntab_write(dev, 536879109U, 0U); b43_ntab_write(dev, 536879125U, 0U); b43_phy_mask(dev, 166, 65531); b43_phy_mask(dev, 143, 65531); b43_phy_mask(dev, 167, 65531); b43_phy_mask(dev, 165, 65531); } b43_phy_write(dev, 106, 2); b43_ntab_write(dev, 805323008U, 20U); b43_ntab_write_bulk(dev, 268442936U, 2U, (void const *)(& ntab7_138_146)); b43_ntab_write(dev, 536878401U, 119U); b43_ntab_write_bulk(dev, 268442931U, 3U, (void const *)(& ntab7_133)); b43_ntab_write_bulk(dev, 268442950U, 2U, (void const *)(& ntab7_138_146)); b43_ntab_write(dev, 536878371U, 119U); b43_ntab_write(dev, 536878378U, 119U); b43_ntab_read_bulk(dev, 805322754U, 1U, (void *)(& noise_tbl)); tmp___9 = b43_is_40mhz(dev); noise_tbl[1] = (int )tmp___9 ? 333U : 397U; b43_ntab_write_bulk(dev, 805322754U, 2U, (void const *)(& noise_tbl)); b43_ntab_read_bulk(dev, 805322878U, 1U, (void *)(& noise_tbl)); tmp___10 = b43_is_40mhz(dev); noise_tbl[1] = (int )tmp___10 ? 333U : 397U; b43_ntab_write_bulk(dev, 805322878U, 2U, (void const *)(& noise_tbl)); b43_nphy_gain_ctl_workarounds(dev); return; } } static void b43_nphy_workarounds_rev3plus(struct b43_wldev *dev ) { struct b43_phy_n *nphy ; struct ssb_sprom *sprom ; u8 tx2rx_events[7U] ; u8 tx2rx_delays[7U] ; u8 rx2tx_events_ipa[9U] ; u8 rx2tx_delays_ipa[9U] ; u8 rx2tx_events[9U] ; u8 rx2tx_delays[9U] ; u16 vmids[5U][4U] ; u16 gains[5U][4U] ; u16 *vmid ; u16 *gain ; u8 pdet_range ; u16 tmp16 ; u32 tmp32 ; bool tmp ; bool tmp___0 ; enum ieee80211_band tmp___1 ; bool tmp___2 ; int tmp___3 ; enum ieee80211_band tmp___4 ; u16 __min1 ; u16 __min2 ; u16 __min1___0 ; u16 __min2___0 ; enum ieee80211_band tmp___5 ; enum ieee80211_band tmp___6 ; enum ieee80211_band tmp___7 ; enum ieee80211_band tmp___8 ; enum ieee80211_band tmp___9 ; enum ieee80211_band tmp___10 ; { nphy = dev->phy.__annonCompField106.n; sprom = (dev->dev)->bus_sprom; tx2rx_events[0] = 4U; tx2rx_events[1] = 3U; tx2rx_events[2] = 5U; tx2rx_events[3] = 2U; tx2rx_events[4] = 1U; tx2rx_events[5] = 8U; tx2rx_events[6] = 31U; tx2rx_delays[0] = 8U; tx2rx_delays[1] = 4U; tx2rx_delays[2] = 4U; tx2rx_delays[3] = 4U; tx2rx_delays[4] = 4U; tx2rx_delays[5] = 6U; tx2rx_delays[6] = 1U; rx2tx_events_ipa[0] = 0U; rx2tx_events_ipa[1] = 1U; rx2tx_events_ipa[2] = 2U; rx2tx_events_ipa[3] = 8U; rx2tx_events_ipa[4] = 5U; rx2tx_events_ipa[5] = 6U; rx2tx_events_ipa[6] = 15U; rx2tx_events_ipa[7] = 3U; rx2tx_events_ipa[8] = 31U; rx2tx_delays_ipa[0] = 8U; rx2tx_delays_ipa[1] = 6U; rx2tx_delays_ipa[2] = 6U; rx2tx_delays_ipa[3] = 4U; rx2tx_delays_ipa[4] = 4U; rx2tx_delays_ipa[5] = 16U; rx2tx_delays_ipa[6] = 43U; rx2tx_delays_ipa[7] = 1U; rx2tx_delays_ipa[8] = 1U; rx2tx_events[0] = 0U; rx2tx_events[1] = 1U; rx2tx_events[2] = 2U; rx2tx_events[3] = 8U; rx2tx_events[4] = 5U; rx2tx_events[5] = 6U; rx2tx_events[6] = 3U; rx2tx_events[7] = 4U; rx2tx_events[8] = 31U; rx2tx_delays[0] = 8U; rx2tx_delays[1] = 6U; rx2tx_delays[2] = 6U; rx2tx_delays[3] = 4U; rx2tx_delays[4] = 4U; rx2tx_delays[5] = 18U; rx2tx_delays[6] = 42U; rx2tx_delays[7] = 1U; rx2tx_delays[8] = 1U; vmids[0][0] = 162U; vmids[0][1] = 180U; vmids[0][2] = 180U; vmids[0][3] = 137U; vmids[1][0] = 180U; vmids[1][1] = 180U; vmids[1][2] = 180U; vmids[1][3] = 36U; vmids[2][0] = 162U; vmids[2][1] = 180U; vmids[2][2] = 180U; vmids[2][3] = 116U; vmids[3][0] = 162U; vmids[3][1] = 180U; vmids[3][2] = 180U; vmids[3][3] = 624U; vmids[4][0] = 162U; vmids[4][1] = 180U; vmids[4][2] = 180U; vmids[4][3] = 0U; gains[0][0] = 2U; gains[0][1] = 2U; gains[0][2] = 2U; gains[0][3] = 0U; gains[1][0] = 2U; gains[1][1] = 2U; gains[1][2] = 2U; gains[1][3] = 2U; gains[2][0] = 2U; gains[2][1] = 2U; gains[2][2] = 2U; gains[2][3] = 4U; gains[3][0] = 2U; gains[3][1] = 2U; gains[3][2] = 2U; gains[3][3] = 0U; gains[4][0] = 2U; gains[4][1] = 2U; gains[4][2] = 2U; gains[4][3] = 0U; b43_phy_write(dev, 575, 504); b43_phy_write(dev, 576, 504); tmp32 = b43_ntab_read(dev, 805337088U); tmp32 = tmp32 & 16777215U; b43_ntab_write(dev, 805337088U, tmp32); b43_phy_write(dev, 325, 293); b43_phy_write(dev, 326, 435); b43_phy_write(dev, 327, 261); b43_phy_write(dev, 328, 366); b43_phy_write(dev, 329, 205); b43_phy_write(dev, 330, 32); b43_phy_write(dev, 56, 12); b43_phy_write(dev, 686, 12); b43_nphy_set_rf_sequence(dev, 1, (u8 *)(& tx2rx_events), (u8 *)(& tx2rx_delays), 7); tmp = b43_nphy_ipa(dev); if ((int )tmp) { b43_nphy_set_rf_sequence(dev, 0, (u8 *)(& rx2tx_events_ipa), (u8 *)(& rx2tx_delays_ipa), 9); } else { } if ((unsigned int )nphy->hw_phyrxchain != 3U && (int )nphy->hw_phyrxchain != (int )nphy->hw_phytxchain) { tmp___0 = b43_nphy_ipa(dev); if ((int )tmp___0) { rx2tx_delays[5] = 59U; rx2tx_delays[6] = 1U; rx2tx_events[7] = 31U; } else { } b43_nphy_set_rf_sequence(dev, 0, (u8 *)(& rx2tx_events), (u8 *)(& rx2tx_delays), 9); } else { } tmp___1 = b43_current_band(dev->wl); tmp16 = (unsigned int )tmp___1 == 0U ? 2U : 40000U; b43_phy_write(dev, 106, (int )tmp16); b43_phy_maskset(dev, 660, 61695, 1792); tmp___2 = b43_is_40mhz(dev); if (tmp___2) { tmp___3 = 0; } else { tmp___3 = 1; } if (tmp___3) { b43_ntab_write(dev, 805322755U, 397U); b43_ntab_write(dev, 805322879U, 397U); } else { b43_ntab_write(dev, 805322755U, 333U); b43_ntab_write(dev, 805322879U, 333U); } b43_nphy_gain_ctl_workarounds(dev); b43_ntab_write(dev, 536879104U, 2U); b43_ntab_write(dev, 536879120U, 2U); tmp___4 = b43_current_band(dev->wl); if ((unsigned int )tmp___4 == 0U) { pdet_range = sprom->fem.ghz2.pdet_range; } else { pdet_range = sprom->fem.ghz5.pdet_range; } __min1 = (u16 )pdet_range; __min2 = 4U; vmid = (u16 *)(& vmids) + (unsigned long )((int )__min1 < (int )__min2 ? __min1 : __min2); __min1___0 = (u16 )pdet_range; __min2___0 = 4U; gain = (u16 *)(& gains) + (unsigned long )((int )__min1___0 < (int )__min2___0 ? __min1___0 : __min2___0); switch ((int )pdet_range) { case 3: ; if ((unsigned int )dev->phy.rev <= 3U) { goto ldv_55243; } else { tmp___5 = b43_current_band(dev->wl); if ((unsigned int )tmp___5 != 0U) { goto ldv_55243; } else { } } case 0: ; case 1: b43_ntab_write_bulk(dev, 536879112U, 4U, (void const *)vmid); b43_ntab_write_bulk(dev, 536879128U, 4U, (void const *)vmid); b43_ntab_write_bulk(dev, 536879116U, 4U, (void const *)gain); b43_ntab_write_bulk(dev, 536879132U, 4U, (void const *)gain); goto ldv_55243; case 2: ; if ((unsigned int )dev->phy.rev > 5U) { tmp___6 = b43_current_band(dev->wl); if ((unsigned int )tmp___6 == 0U) { *(vmid + 3UL) = 148U; } else { *(vmid + 3UL) = 142U; } *(gain + 3UL) = 3U; } else if ((unsigned int )dev->phy.rev == 5U) { *(vmid + 3UL) = 132U; *(gain + 3UL) = 2U; } else { } b43_ntab_write_bulk(dev, 536879112U, 4U, (void const *)vmid); b43_ntab_write_bulk(dev, 536879128U, 4U, (void const *)vmid); b43_ntab_write_bulk(dev, 536879116U, 4U, (void const *)gain); b43_ntab_write_bulk(dev, 536879132U, 4U, (void const *)gain); goto ldv_55243; case 4: ; case 5: tmp___7 = b43_current_band(dev->wl); if ((unsigned int )tmp___7 != 0U) { if ((unsigned int )pdet_range == 4U) { *(vmid + 3UL) = 142U; tmp16 = 150U; *(gain + 3UL) = 2U; } else { *(vmid + 3UL) = 137U; tmp16 = 137U; *(gain + 3UL) = 0U; } } else if ((unsigned int )pdet_range == 4U) { *(vmid + 3UL) = 137U; tmp16 = 139U; *(gain + 3UL) = 2U; } else { *(vmid + 3UL) = 116U; tmp16 = 112U; *(gain + 3UL) = 0U; } b43_ntab_write_bulk(dev, 536879112U, 4U, (void const *)vmid); b43_ntab_write_bulk(dev, 536879116U, 4U, (void const *)gain); *(vmid + 3UL) = tmp16; b43_ntab_write_bulk(dev, 536879128U, 4U, (void const *)vmid); b43_ntab_write_bulk(dev, 536879132U, 4U, (void const *)gain); goto ldv_55243; } ldv_55243: b43_radio_write(dev, 24643, 0); b43_radio_write(dev, 28739, 0); b43_radio_write(dev, 24641, 6); b43_radio_write(dev, 28737, 6); b43_radio_write(dev, 24640, 7); b43_radio_write(dev, 28736, 7); b43_radio_write(dev, 24637, 136); b43_radio_write(dev, 28733, 136); b43_radio_write(dev, 24639, 0); b43_radio_write(dev, 28735, 0); b43_radio_write(dev, 24649, 0); b43_radio_write(dev, 28745, 0); if (((int )sprom->boardflags2_lo & 2) != 0) { tmp___8 = b43_current_band(dev->wl); if ((unsigned int )tmp___8 == 1U) { tmp32 = 559240U; } else { goto _L; } } else _L: /* CIL Label */ if (((int )sprom->boardflags2_lo & 1024) != 0) { tmp___9 = b43_current_band(dev->wl); if ((unsigned int )tmp___9 == 0U) { tmp32 = 559240U; } else { tmp32 = 2290649224U; } } else { tmp32 = 2290649224U; } b43_ntab_write(dev, 805337089U, tmp32); b43_ntab_write(dev, 805337090U, tmp32); b43_ntab_write(dev, 805337091U, tmp32); if ((unsigned int )dev->phy.rev == 4U) { tmp___10 = b43_current_band(dev->wl); if ((unsigned int )tmp___10 == 1U) { b43_radio_write(dev, 8295, 112); b43_radio_write(dev, 12391, 112); } else { } } else { } b43_phy_write(dev, 548, 1003); b43_phy_write(dev, 549, 1003); b43_phy_write(dev, 550, 833); b43_phy_write(dev, 551, 833); b43_phy_write(dev, 552, 1067); b43_phy_write(dev, 553, 1067); b43_phy_write(dev, 554, 897); b43_phy_write(dev, 555, 897); b43_phy_write(dev, 556, 1067); b43_phy_write(dev, 557, 1067); b43_phy_write(dev, 558, 897); b43_phy_write(dev, 559, 897); return; } } static void b43_nphy_workarounds_rev1_2(struct b43_wldev *dev ) { struct ssb_sprom *sprom ; struct b43_phy *phy ; struct b43_phy_n *nphy ; u8 events1[7U] ; u8 delays1[7U] ; u8 events2[7U] ; u8 delays2[7U] ; enum ieee80211_band tmp ; u64 tmp___0 ; u16 tmp___1 ; { sprom = (dev->dev)->bus_sprom; phy = & dev->phy; nphy = phy->__annonCompField106.n; events1[0] = 0U; events1[1] = 1U; events1[2] = 2U; events1[3] = 8U; events1[4] = 4U; events1[5] = 5U; events1[6] = 3U; delays1[0] = 8U; delays1[1] = 6U; delays1[2] = 6U; delays1[3] = 2U; delays1[4] = 4U; delays1[5] = 60U; delays1[6] = 1U; events2[0] = 0U; events2[1] = 3U; events2[2] = 5U; events2[3] = 4U; events2[4] = 2U; events2[5] = 1U; events2[6] = 8U; delays2[0] = 8U; delays2[1] = 6U; delays2[2] = 2U; delays2[3] = 4U; delays2[4] = 4U; delays2[5] = 6U; delays2[6] = 1U; if (((int )sprom->boardflags2_lo & 256) != 0 || (unsigned int )(dev->dev)->board_type == 139U) { delays1[0] = 1U; delays1[5] = 20U; } else { } tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 1U && (int )nphy->band5g_pwrgain) { b43_radio_mask(dev, 134, 65527); b43_radio_mask(dev, 181, 65527); } else { b43_radio_set(dev, 134, 8); b43_radio_set(dev, 181, 8); } b43_ntab_write(dev, 536879104U, 10U); b43_ntab_write(dev, 536879120U, 10U); if ((unsigned int )dev->phy.rev <= 2U) { b43_ntab_write(dev, 536879106U, 52650U); b43_ntab_write(dev, 536879122U, 52650U); } else { } if ((unsigned int )dev->phy.rev <= 1U) { b43_ntab_write(dev, 536879112U, 0U); b43_ntab_write(dev, 536879128U, 0U); b43_ntab_write(dev, 536879111U, 31403U); b43_ntab_write(dev, 536879127U, 31403U); b43_ntab_write(dev, 536879110U, 2048U); b43_ntab_write(dev, 536879126U, 2048U); } else { } b43_phy_write(dev, 248, 728); b43_phy_write(dev, 249, 769); b43_phy_write(dev, 250, 728); b43_phy_write(dev, 251, 769); b43_nphy_set_rf_sequence(dev, 0, (u8 *)(& events1), (u8 *)(& delays1), 7); b43_nphy_set_rf_sequence(dev, 1, (u8 *)(& events2), (u8 *)(& delays2), 7); b43_nphy_gain_ctl_workarounds(dev); if ((unsigned int )dev->phy.rev <= 1U) { tmp___1 = b43_phy_read(dev, 160); if (((int )tmp___1 & 2) != 0) { tmp___0 = b43_hf_read(dev); b43_hf_write(dev, tmp___0 | 68719476736ULL); } else { } } else if ((unsigned int )dev->phy.rev == 2U) { b43_phy_write(dev, 483, 0); b43_phy_write(dev, 484, 0); } else { } if ((unsigned int )dev->phy.rev <= 1U) { b43_phy_mask(dev, 144, 65407); } else { } b43_phy_write(dev, 325, 293); b43_phy_write(dev, 326, 435); b43_phy_write(dev, 327, 261); b43_phy_write(dev, 328, 366); b43_phy_write(dev, 329, 205); b43_phy_write(dev, 330, 32); if ((unsigned int )dev->phy.rev <= 2U) { b43_phy_mask(dev, 322, 4095); b43_phy_write(dev, 402, 181); b43_phy_write(dev, 403, 164); b43_phy_write(dev, 404, 0); } else { } if ((unsigned int )dev->phy.rev == 2U) { b43_phy_set(dev, 545, 8); } else { } return; } } static void b43_nphy_workarounds(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; enum ieee80211_band tmp ; { phy = & dev->phy; nphy = phy->__annonCompField106.n; tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 1U) { b43_nphy_classifier(dev, 1, 0); } else { b43_nphy_classifier(dev, 1, 1); } if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 1); } else { } b43_phy_set(dev, 177, 17); if ((unsigned int )dev->phy.rev > 6U) { b43_nphy_workarounds_rev7plus(dev); } else if ((unsigned int )dev->phy.rev > 2U) { b43_nphy_workarounds_rev3plus(dev); } else { b43_nphy_workarounds_rev1_2(dev); } if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 0); } else { } return; } } static int b43_nphy_tx_tone(struct b43_wldev *dev , u32 freq , u16 max_val , bool iqmode , bool dac_test , bool modify_bbmult ) { u16 samp ; u16 tmp ; { tmp = b43_nphy_gen_load_samples(dev, freq, (int )max_val, (int )dac_test); samp = tmp; if ((unsigned int )samp == 0U) { return (-1); } else { } b43_nphy_run_samples(dev, (int )samp, 65535, 0, (int )iqmode, (int )dac_test, (int )modify_bbmult); return (0); } } static void b43_nphy_update_txrx_chain(struct b43_wldev *dev ) { struct b43_phy_n *nphy ; bool override ; u16 chain ; { nphy = dev->phy.__annonCompField106.n; override = 0; chain = 51U; if ((unsigned int )nphy->txrx_chain == 0U) { chain = 17U; override = 1; } else if ((unsigned int )nphy->txrx_chain == 1U) { chain = 34U; override = 1; } else { } b43_phy_maskset(dev, 162, 65280, (int )chain); if ((int )override) { b43_phy_set(dev, 161, 1); } else { b43_phy_mask(dev, 161, 65534); } return; } } static void b43_nphy_stop_playback(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; u16 tmp ; { phy = & dev->phy; nphy = dev->phy.__annonCompField106.n; if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 1); } else { } tmp = b43_phy_read(dev, 199); if ((int )tmp & 1) { b43_phy_set(dev, 195, 2); } else if (((int )tmp & 2) != 0) { b43_phy_mask(dev, 194, 32767); } else { } b43_phy_mask(dev, 195, 65531); if ((int )nphy->bb_mult_save < 0) { tmp = (u16 )nphy->bb_mult_save; b43_ntab_write(dev, 536886359U, (u32 )tmp); nphy->bb_mult_save = 0U; } else { } if ((unsigned int )phy->rev > 6U && (int )nphy->lpf_bw_overrode_for_sample_play) { if ((unsigned int )phy->rev > 18U) { b43_nphy_rf_ctl_override_rev19(dev, 128, 0, 0, 1, 1); } else { b43_nphy_rf_ctl_override_rev7(dev, 128, 0, 0, 1, 1); } nphy->lpf_bw_overrode_for_sample_play = 0; } else { } if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 0); } else { } return; } } static void b43_nphy_iq_cal_gain_params(struct b43_wldev *dev , u16 core , struct nphy_txgains target , struct nphy_iqcal_params *params ) { struct b43_phy *phy ; int i ; int j ; int indx ; u16 gain ; enum ieee80211_band tmp ; int _min1 ; int _min2 ; { phy = & dev->phy; if ((unsigned int )dev->phy.rev > 2U) { params->tx_lpf = target.tx_lpf[(int )core]; params->txgm = target.txgm[(int )core]; params->pga = target.pga[(int )core]; params->pad = target.pad[(int )core]; params->ipa = target.ipa[(int )core]; if ((unsigned int )phy->rev > 18U) { } else if ((unsigned int )phy->rev > 6U) { params->cal_gain = (u16 )(((((int )((short )((int )params->txgm << 12)) | (int )((short )((int )params->pga << 8))) | (int )((short )((int )params->pad << 3))) | (int )((short )params->ipa)) | (int )((short )((int )params->tx_lpf << 15))); } else { params->cal_gain = (u16 )((((int )((short )((int )params->txgm << 12)) | (int )((short )((int )params->pga << 8))) | (int )((short )((int )params->pad << 4))) | (int )((short )params->ipa)); } j = 0; goto ldv_55297; ldv_55296: params->ncorr[j] = 121U; j = j + 1; ldv_55297: ; if (j <= 4) { goto ldv_55296; } else { } } else { gain = (u16 )(((int )((short )target.pad[(int )core]) | (int )((short )((int )target.pga[(int )core] << 4))) | (int )((short )((int )target.txgm[(int )core] << 8))); tmp = b43_current_band(dev->wl); indx = (unsigned int )tmp == 1U; i = 0; goto ldv_55301; ldv_55300: ; if ((int )((unsigned short )tbl_iqcal_gainparams[indx][i][0]) == (int )gain) { goto ldv_55299; } else { } i = i + 1; ldv_55301: ; if (i <= 8) { goto ldv_55300; } else { } ldv_55299: _min1 = i; _min2 = 8; i = _min1 < _min2 ? _min1 : _min2; params->txgm = tbl_iqcal_gainparams[indx][i][1]; params->pga = tbl_iqcal_gainparams[indx][i][2]; params->pad = tbl_iqcal_gainparams[indx][i][3]; params->cal_gain = (u16 )(((int )((short )((int )params->txgm << 7)) | (int )((short )((int )params->pga << 4))) | (int )((short )((int )params->pad << 2))); j = 0; goto ldv_55306; ldv_55305: params->ncorr[j] = tbl_iqcal_gainparams[indx][i][j + 4]; j = j + 1; ldv_55306: ; if (j <= 3) { goto ldv_55305; } else { } } return; } } static void b43_nphy_tx_power_ctrl(struct b43_wldev *dev , bool enable ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; u8 i ; u16 bmask ; u16 val ; u16 tmp ; enum ieee80211_band band ; enum ieee80211_band tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; u16 tmp___3 ; u64 tmp___4 ; bool tmp___5 ; u64 tmp___6 ; bool tmp___7 ; bool tmp___8 ; { phy = & dev->phy; nphy = dev->phy.__annonCompField106.n; tmp___0 = b43_current_band(dev->wl); band = tmp___0; if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 1); } else { } nphy->txpwrctrl = enable; if (! enable) { if ((unsigned int )dev->phy.rev > 2U) { tmp___3 = b43_phy_read(dev, 487); if (((int )tmp___3 & 57344) != 0) { tmp___1 = b43_phy_read(dev, 493); nphy->tx_pwr_idx[0] = (unsigned int )((u8 )tmp___1) & 127U; tmp___2 = b43_phy_read(dev, 494); nphy->tx_pwr_idx[1] = (unsigned int )((u8 )tmp___2) & 127U; } else { } } else { } b43_phy_write(dev, 114, 26688); i = 0U; goto ldv_55320; ldv_55319: b43_phy_write(dev, 115, 0); i = (u8 )((int )i + 1); ldv_55320: ; if ((unsigned int )i <= 83U) { goto ldv_55319; } else { } b43_phy_write(dev, 114, 27712); i = 0U; goto ldv_55323; ldv_55322: b43_phy_write(dev, 115, 0); i = (u8 )((int )i + 1); ldv_55323: ; if ((unsigned int )i <= 83U) { goto ldv_55322; } else { } tmp = 24576U; if ((unsigned int )dev->phy.rev > 2U) { tmp = (u16 )((unsigned int )tmp | 32768U); } else { } b43_phy_mask(dev, 487, ~ ((int )tmp)); if ((unsigned int )dev->phy.rev > 2U) { b43_phy_set(dev, 143, 256); b43_phy_set(dev, 165, 256); } else { b43_phy_set(dev, 165, 16384); } if ((unsigned int )dev->phy.rev == 2U) { b43_phy_maskset(dev, 220, 65280, 83); } else if ((unsigned int )dev->phy.rev <= 1U) { b43_phy_maskset(dev, 220, 65280, 90); } else { } if ((unsigned int )dev->phy.rev <= 1U) { tmp___5 = b43_is_40mhz(dev); if ((int )tmp___5) { tmp___4 = b43_hf_read(dev); b43_hf_write(dev, tmp___4 | 512ULL); } else { } } else { } } else { b43_ntab_write_bulk(dev, 536897600U, 84U, (void const *)(& nphy->adj_pwr_tbl)); b43_ntab_write_bulk(dev, 536898624U, 84U, (void const *)(& nphy->adj_pwr_tbl)); bmask = 24576U; val = 24576U; if ((unsigned int )dev->phy.rev > 2U) { bmask = (u16 )((unsigned int )bmask | 32768U); if ((unsigned int )val != 0U) { val = (u16 )((unsigned int )val | 32768U); } else { } } else { } b43_phy_maskset(dev, 487, ~ ((int )bmask), (int )val); if ((unsigned int )band == 1U) { if ((unsigned int )phy->rev > 18U) { } else if ((unsigned int )phy->rev > 6U) { b43_phy_maskset(dev, 487, 65408, 50); b43_phy_maskset(dev, 546, 65280, 50); } else { b43_phy_maskset(dev, 487, 65408, 100); if ((unsigned int )phy->rev > 1U) { b43_phy_maskset(dev, 546, 65280, 100); } else { } } } else { } if ((unsigned int )dev->phy.rev > 2U) { if ((unsigned int )nphy->tx_pwr_idx[0] != 128U && (unsigned int )nphy->tx_pwr_idx[1] != 128U) { b43_phy_maskset(dev, 487, 65408, (int )nphy->tx_pwr_idx[0]); if ((unsigned int )dev->phy.rev > 1U) { b43_phy_maskset(dev, 546, 65280, (int )nphy->tx_pwr_idx[1]); } else { } } else { } } else { } if ((unsigned int )dev->phy.rev > 2U) { b43_phy_mask(dev, 143, 65279); b43_phy_mask(dev, 165, 65279); } else { b43_phy_mask(dev, 165, 49151); } if ((unsigned int )dev->phy.rev == 2U) { b43_phy_maskset(dev, 220, 65280, 59); } else if ((unsigned int )dev->phy.rev <= 1U) { b43_phy_maskset(dev, 220, 65280, 64); } else { } if ((unsigned int )dev->phy.rev <= 1U) { tmp___7 = b43_is_40mhz(dev); if ((int )tmp___7) { tmp___6 = b43_hf_read(dev); b43_hf_write(dev, tmp___6 & 0xfffffffffffffdffULL); } else { } } else { } tmp___8 = b43_nphy_ipa(dev); if ((int )tmp___8) { b43_phy_mask(dev, 663, 65531); b43_phy_mask(dev, 667, 65531); } else { } } if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 0); } else { } return; } } static void b43_nphy_tx_power_fix(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; struct ssb_sprom *sprom ; u8 txpi[2U] ; u8 bbmult ; u8 i ; u16 tmp ; u16 radio_gain ; u16 dac_gain ; u16 freq ; u32 txgain ; enum ieee80211_band tmp___0 ; u32 const *table ; u32 const *tmp___1 ; u32 tmp___2 ; u32 tmp32 ; u16 reg ; bool tmp___3 ; { phy = & dev->phy; nphy = dev->phy.__annonCompField106.n; sprom = (dev->dev)->bus_sprom; freq = ((phy->chandef)->chan)->center_freq; if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 1); } else { } if ((unsigned int )dev->phy.rev > 6U) { txpi[1] = 30U; txpi[0] = txpi[1]; } else if ((unsigned int )dev->phy.rev > 2U) { txpi[0] = 40U; txpi[1] = 40U; } else if ((unsigned int )sprom->revision <= 3U) { txpi[0] = 72U; txpi[1] = 72U; } else { tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 0U) { txpi[0] = sprom->txpid2g[0]; txpi[1] = sprom->txpid2g[1]; } else if ((unsigned int )freq > 4899U && (unsigned int )freq <= 5099U) { txpi[0] = sprom->txpid5gl[0]; txpi[1] = sprom->txpid5gl[1]; } else if ((unsigned int )freq > 5099U && (unsigned int )freq <= 5499U) { txpi[0] = sprom->txpid5g[0]; txpi[1] = sprom->txpid5g[1]; } else if ((unsigned int )freq > 5499U) { txpi[0] = sprom->txpid5gh[0]; txpi[1] = sprom->txpid5gh[1]; } else { txpi[0] = 91U; txpi[1] = 91U; } } if ((unsigned int )dev->phy.rev <= 6U && ((((unsigned int )txpi[0] <= 39U || (unsigned int )txpi[0] > 100U) || (unsigned int )txpi[1] <= 39U) || (unsigned int )txpi[1] > 100U)) { txpi[1] = 91U; txpi[0] = txpi[1]; } else { } i = 0U; goto ldv_55344; ldv_55343: tmp___1 = b43_nphy_get_tx_gain_table(dev); table = tmp___1; if ((unsigned long )table == (unsigned long )((u32 const *)0U)) { goto ldv_55340; } else { } txgain = *(table + (unsigned long )txpi[(int )i]); if ((unsigned int )dev->phy.rev > 2U) { radio_gain = (u16 )(txgain >> 16); } else { radio_gain = (unsigned int )((u16 )(txgain >> 16)) & 8191U; } if ((unsigned int )dev->phy.rev > 6U) { dac_gain = (unsigned int )((u16 )(txgain >> 8)) & 7U; } else { dac_gain = (unsigned int )((u16 )(txgain >> 8)) & 63U; } bbmult = (u8 )txgain; if ((unsigned int )dev->phy.rev > 2U) { if ((unsigned int )i == 0U) { b43_phy_set(dev, 143, 256); } else { b43_phy_set(dev, 165, 256); } } else { b43_phy_set(dev, 165, 16384); } if ((unsigned int )i == 0U) { b43_phy_write(dev, 170, (int )dac_gain); } else { b43_phy_write(dev, 171, (int )dac_gain); } b43_ntab_write(dev, (u32 )(((int )i + 272) | 536878080), (u32 )radio_gain); tmp___2 = b43_ntab_read(dev, 536886359U); tmp = (u16 )tmp___2; if ((unsigned int )i == 0U) { tmp = (u16 )(((int )((short )tmp) & 255) | (int )((short )((int )bbmult << 8))); } else { tmp = (u16 )(((int )((short )tmp) & -256) | (int )((short )bbmult)); } b43_ntab_write(dev, 536886359U, (u32 )tmp); tmp___3 = b43_nphy_ipa(dev); if ((int )tmp___3) { reg = (unsigned int )i == 0U ? 663U : 667U; tmp32 = b43_ntab_read(dev, (u32 )(((((int )i + 26) << 10) | ((int )txpi[(int )i] + 576)) | 805306368)); b43_phy_maskset(dev, (int )reg, 57359, (int )((u16 )tmp32) << 4U); b43_phy_set(dev, (int )reg, 4); } else { } i = (u8 )((int )i + 1); ldv_55344: ; if ((unsigned int )i <= 1U) { goto ldv_55343; } else { } ldv_55340: b43_phy_mask(dev, 191, 65504); if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 0); } else { } return; } } static void b43_nphy_ipa_internal_tssi_setup(struct b43_wldev *dev ) { struct b43_phy *phy ; u8 core ; u16 r ; enum ieee80211_band tmp ; enum ieee80211_band tmp___0 ; enum ieee80211_band tmp___1 ; { phy = & dev->phy; if ((unsigned int )phy->rev > 18U) { } else if ((unsigned int )phy->rev > 6U) { core = 0U; goto ldv_55352; ldv_55351: r = (unsigned int )core != 0U ? 400U : 368U; tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { b43_radio_write(dev, (int )((unsigned int )r + 5U), 5); b43_radio_write(dev, (int )((unsigned int )r + 9U), 14); if ((unsigned int )phy->rev != 5U) { b43_radio_write(dev, (int )((unsigned int )r + 10U), 0); } else { } if ((unsigned int )phy->rev != 7U) { b43_radio_write(dev, (int )((unsigned int )r + 11U), 1); } else { b43_radio_write(dev, (int )((unsigned int )r + 11U), 49); } } else { b43_radio_write(dev, (int )((unsigned int )r + 5U), 9); b43_radio_write(dev, (int )((unsigned int )r + 9U), 12); b43_radio_write(dev, (int )((unsigned int )r + 11U), 0); if ((unsigned int )phy->rev != 5U) { b43_radio_write(dev, (int )((unsigned int )r + 10U), 1); } else { b43_radio_write(dev, (int )((unsigned int )r + 10U), 49); } } b43_radio_write(dev, (int )((unsigned int )r + 6U), 0); b43_radio_write(dev, (int )((unsigned int )r + 7U), 0); b43_radio_write(dev, (int )((unsigned int )r + 8U), 3); b43_radio_write(dev, (int )((unsigned int )r + 12U), 0); core = (u8 )((int )core + 1); ldv_55352: ; if ((unsigned int )core <= 1U) { goto ldv_55351; } else { } } else { tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 0U) { b43_radio_write(dev, 31, 296); } else { b43_radio_write(dev, 31, 128); } b43_radio_write(dev, 30, 0); b43_radio_write(dev, 32, 41); core = 0U; goto ldv_55355; ldv_55354: r = (unsigned int )core != 0U ? 12288U : 8192U; b43_radio_write(dev, (int )((unsigned int )r | 41U), 0); b43_radio_write(dev, (int )((unsigned int )r | 42U), 0); b43_radio_write(dev, (int )((unsigned int )r | 43U), 3); b43_radio_write(dev, (int )((unsigned int )r | 44U), 0); b43_radio_write(dev, (int )((unsigned int )r | 48U), 8); b43_radio_write(dev, (int )((unsigned int )r | 49U), 0); b43_radio_write(dev, (int )((unsigned int )r | 50U), 0); tmp___1 = b43_current_band(dev->wl); if ((unsigned int )tmp___1 == 0U) { b43_radio_write(dev, (int )((unsigned int )r | 40U), 5); if ((unsigned int )phy->rev != 5U) { b43_radio_write(dev, (int )((unsigned int )r | 46U), 0); } else { } if ((unsigned int )phy->rev > 4U) { b43_radio_write(dev, (int )((unsigned int )r | 47U), 49); } else { b43_radio_write(dev, (int )((unsigned int )r | 47U), 17); } b43_radio_write(dev, (int )((unsigned int )r | 45U), 14); } else { b43_radio_write(dev, (int )((unsigned int )r | 40U), 9); b43_radio_write(dev, (int )((unsigned int )r | 46U), 49); b43_radio_write(dev, (int )((unsigned int )r | 47U), 0); b43_radio_write(dev, (int )((unsigned int )r | 45U), 12); } core = (u8 )((int )core + 1); ldv_55355: ; if ((unsigned int )core <= 1U) { goto ldv_55354; } else { } } return; } } static void b43_nphy_tx_power_ctl_idle_tssi(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; u32 tmp ; s32 rssi[4U] ; bool tmp___0 ; int tmp___1 ; { phy = & dev->phy; nphy = dev->phy.__annonCompField106.n; rssi[0] = 0; rssi[1] = 0; rssi[2] = 0; rssi[3] = 0; if ((((phy->chandef)->chan)->flags & 2U) != 0U) { return; } else { } tmp___0 = b43_nphy_ipa(dev); if ((int )tmp___0) { b43_nphy_ipa_internal_tssi_setup(dev); } else { } if ((unsigned int )phy->rev > 18U) { b43_nphy_rf_ctl_override_rev19(dev, 4096, 0, 3, 0, 0); } else if ((unsigned int )phy->rev > 6U) { b43_nphy_rf_ctl_override_rev7(dev, 4096, 0, 3, 0, 0); } else if ((unsigned int )phy->rev > 2U) { b43_nphy_rf_ctl_override(dev, 8192, 0, 3, 0); } else { } b43_nphy_stop_playback(dev); b43_nphy_tx_tone(dev, 4000U, 0, 0, 0, 0); __const_udelay(85900UL); tmp___1 = b43_nphy_poll_rssi(dev, 4, (s32 *)(& rssi), 1); tmp = (u32 )tmp___1; b43_nphy_stop_playback(dev); b43_nphy_rssi_select(dev, 0, 0); if ((unsigned int )phy->rev > 18U) { b43_nphy_rf_ctl_override_rev19(dev, 4096, 0, 3, 1, 0); } else if ((unsigned int )phy->rev > 6U) { b43_nphy_rf_ctl_override_rev7(dev, 4096, 0, 3, 1, 0); } else if ((unsigned int )phy->rev > 2U) { b43_nphy_rf_ctl_override(dev, 8192, 0, 3, 1); } else { } if ((unsigned int )phy->rev > 18U) { return; } else if ((unsigned int )phy->rev > 2U) { nphy->pwr_ctl_info[0].idle_tssi_5g = (u8 )(tmp >> 24); nphy->pwr_ctl_info[1].idle_tssi_5g = (u8 )(tmp >> 8); } else { nphy->pwr_ctl_info[0].idle_tssi_5g = (u8 )(tmp >> 16); nphy->pwr_ctl_info[1].idle_tssi_5g = (u8 )tmp; } nphy->pwr_ctl_info[0].idle_tssi_2g = (u8 )(tmp >> 24); nphy->pwr_ctl_info[1].idle_tssi_2g = (u8 )(tmp >> 8); return; } } static void b43_nphy_tx_prepare_adjusted_power_table(struct b43_wldev *dev ) { struct b43_phy_n *nphy ; u8 idx ; u8 delta ; u8 i ; u8 stf_mode ; bool tmp ; bool tmp___0 ; bool tmp___1 ; bool tmp___2 ; bool tmp___3 ; { nphy = dev->phy.__annonCompField106.n; i = 0U; goto ldv_55373; ldv_55372: nphy->adj_pwr_tbl[(int )i] = (u16 )nphy->tx_power_offset[(int )i]; i = (u8 )((int )i + 1); ldv_55373: ; if ((unsigned int )i <= 3U) { goto ldv_55372; } else { } stf_mode = 0U; goto ldv_55384; ldv_55383: delta = 0U; switch ((int )stf_mode) { case 0: tmp___0 = b43_is_40mhz(dev); if ((int )tmp___0 && (unsigned int )dev->phy.rev > 4U) { idx = 68U; } else { delta = 1U; tmp = b43_is_40mhz(dev); idx = (int )tmp ? 52U : 4U; } goto ldv_55376; case 1: tmp___1 = b43_is_40mhz(dev); idx = (int )tmp___1 ? 76U : 28U; goto ldv_55376; case 2: tmp___2 = b43_is_40mhz(dev); idx = (int )tmp___2 ? 84U : 36U; goto ldv_55376; case 3: tmp___3 = b43_is_40mhz(dev); idx = (int )tmp___3 ? 92U : 44U; goto ldv_55376; } ldv_55376: i = 0U; goto ldv_55381; ldv_55380: nphy->adj_pwr_tbl[((int )i + 1) * 4 + (int )stf_mode] = (u16 )nphy->tx_power_offset[(int )idx]; if ((unsigned int )i == 0U) { idx = (int )idx + (int )delta; } else { } if ((unsigned int )i == 14U) { idx = (unsigned int )((int )idx - (int )delta) + 1U; } else { } if ((((((unsigned int )i == 3U || (unsigned int )i == 4U) || (unsigned int )i == 7U) || (unsigned int )i == 8U) || (unsigned int )i == 11U) || (unsigned int )i == 13U) { idx = (unsigned int )idx + 1U; } else { } i = (u8 )((int )i + 1); ldv_55381: ; if ((unsigned int )i <= 19U) { goto ldv_55380; } else { } stf_mode = (u8 )((int )stf_mode + 1); ldv_55384: ; if ((unsigned int )stf_mode <= 3U) { goto ldv_55383; } else { } return; } } static void b43_nphy_tx_power_ctl_setup(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; struct ssb_sprom *sprom ; s16 a1[2U] ; s16 b0[2U] ; s16 b1[2U] ; u8 idle[2U] ; u8 ppr_max ; s8 target[2U] ; s32 num ; s32 den ; s32 pwr ; u32 regval[64U] ; u16 freq ; u16 tmp ; u16 r ; u8 i ; u8 c ; enum ieee80211_band tmp___0 ; enum ieee80211_band tmp___1 ; bool tmp___2 ; enum ieee80211_band tmp___3 ; bool tmp___4 ; s32 _max1 ; int _max2 ; s32 _max1___0 ; int _max2___0 ; { phy = & dev->phy; nphy = dev->phy.__annonCompField106.n; sprom = (dev->dev)->bus_sprom; freq = ((phy->chandef)->chan)->center_freq; if ((unsigned int )(dev->dev)->core_rev == 11U || (unsigned int )(dev->dev)->core_rev == 12U) { b43_maskset32(dev, 288, 4294967295U, 2097152U); b43_read32(dev, 288); __const_udelay(4295UL); } else { } if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 1); } else { } b43_phy_set(dev, 290, 1); if ((unsigned int )dev->phy.rev > 2U) { b43_phy_mask(dev, 487, 32767); } else { b43_phy_set(dev, 487, 32768); } if ((unsigned int )(dev->dev)->core_rev == 11U || (unsigned int )(dev->dev)->core_rev == 12U) { b43_maskset32(dev, 288, 4292870143U, 0U); } else { } if ((unsigned int )sprom->revision <= 3U) { idle[0] = nphy->pwr_ctl_info[0].idle_tssi_2g; idle[1] = nphy->pwr_ctl_info[1].idle_tssi_2g; target[1] = 52; target[0] = target[1]; a1[1] = -424; a1[0] = a1[1]; b0[1] = 5612; b0[0] = b0[1]; b1[1] = -1393; b1[0] = b1[1]; } else { tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 0U) { c = 0U; goto ldv_55408; ldv_55407: idle[(int )c] = nphy->pwr_ctl_info[(int )c].idle_tssi_2g; target[(int )c] = (s8 )sprom->core_pwr_info[(int )c].maxpwr_2g; a1[(int )c] = (s16 )sprom->core_pwr_info[(int )c].pa_2g[0]; b0[(int )c] = (s16 )sprom->core_pwr_info[(int )c].pa_2g[1]; b1[(int )c] = (s16 )sprom->core_pwr_info[(int )c].pa_2g[2]; c = (u8 )((int )c + 1); ldv_55408: ; if ((unsigned int )c <= 1U) { goto ldv_55407; } else { } } else if ((unsigned int )freq > 4899U && (unsigned int )freq <= 5099U) { c = 0U; goto ldv_55411; ldv_55410: idle[(int )c] = nphy->pwr_ctl_info[(int )c].idle_tssi_5g; target[(int )c] = (s8 )sprom->core_pwr_info[(int )c].maxpwr_5gl; a1[(int )c] = (s16 )sprom->core_pwr_info[(int )c].pa_5gl[0]; b0[(int )c] = (s16 )sprom->core_pwr_info[(int )c].pa_5gl[1]; b1[(int )c] = (s16 )sprom->core_pwr_info[(int )c].pa_5gl[2]; c = (u8 )((int )c + 1); ldv_55411: ; if ((unsigned int )c <= 1U) { goto ldv_55410; } else { } } else if ((unsigned int )freq > 5099U && (unsigned int )freq <= 5499U) { c = 0U; goto ldv_55414; ldv_55413: idle[(int )c] = nphy->pwr_ctl_info[(int )c].idle_tssi_5g; target[(int )c] = (s8 )sprom->core_pwr_info[(int )c].maxpwr_5g; a1[(int )c] = (s16 )sprom->core_pwr_info[(int )c].pa_5g[0]; b0[(int )c] = (s16 )sprom->core_pwr_info[(int )c].pa_5g[1]; b1[(int )c] = (s16 )sprom->core_pwr_info[(int )c].pa_5g[2]; c = (u8 )((int )c + 1); ldv_55414: ; if ((unsigned int )c <= 1U) { goto ldv_55413; } else { } } else if ((unsigned int )freq > 5499U) { c = 0U; goto ldv_55417; ldv_55416: idle[(int )c] = nphy->pwr_ctl_info[(int )c].idle_tssi_5g; target[(int )c] = (s8 )sprom->core_pwr_info[(int )c].maxpwr_5gh; a1[(int )c] = (s16 )sprom->core_pwr_info[(int )c].pa_5gh[0]; b0[(int )c] = (s16 )sprom->core_pwr_info[(int )c].pa_5gh[1]; b1[(int )c] = (s16 )sprom->core_pwr_info[(int )c].pa_5gh[2]; c = (u8 )((int )c + 1); ldv_55417: ; if ((unsigned int )c <= 1U) { goto ldv_55416; } else { } } else { idle[0] = nphy->pwr_ctl_info[0].idle_tssi_5g; idle[1] = nphy->pwr_ctl_info[1].idle_tssi_5g; target[1] = 52; target[0] = target[1]; a1[1] = -424; a1[0] = a1[1]; b0[1] = 5612; b0[0] = b0[1]; b1[1] = -1393; b1[0] = b1[1]; } } ppr_max = b43_ppr_get_max(dev, & nphy->tx_pwr_max_ppr); if ((unsigned int )ppr_max != 0U) { target[0] = (s8 )ppr_max; target[1] = (s8 )ppr_max; } else { } if ((unsigned int )dev->phy.rev > 2U) { if ((unsigned int )sprom->fem.ghz2.tssipos != 0U) { b43_phy_set(dev, 489, 16384); } else { } if ((unsigned int )dev->phy.rev > 6U) { c = 0U; goto ldv_55420; ldv_55419: r = (unsigned int )c != 0U ? 400U : 368U; tmp___2 = b43_nphy_ipa(dev); if ((int )tmp___2) { tmp___1 = b43_current_band(dev->wl); b43_radio_write(dev, (int )((unsigned int )r + 9U), (unsigned int )tmp___1 == 0U ? 14 : 12); } else { } c = (u8 )((int )c + 1); ldv_55420: ; if ((unsigned int )c <= 1U) { goto ldv_55419; } else { } } else { tmp___4 = b43_nphy_ipa(dev); if ((int )tmp___4) { tmp___3 = b43_current_band(dev->wl); tmp = (unsigned int )tmp___3 == 1U ? 12U : 14U; b43_radio_write(dev, 8237, (int )tmp); b43_radio_write(dev, 12333, (int )tmp); } else { b43_radio_write(dev, 8237, 17); b43_radio_write(dev, 12333, 17); } } } else { } if ((unsigned int )(dev->dev)->core_rev == 11U || (unsigned int )(dev->dev)->core_rev == 12U) { b43_maskset32(dev, 288, 4294967295U, 2097152U); b43_read32(dev, 288); __const_udelay(4295UL); } else { } if ((unsigned int )phy->rev > 18U) { } else if ((unsigned int )phy->rev > 6U) { b43_phy_maskset(dev, 487, 65408, 25); b43_phy_maskset(dev, 546, 65280, 25); } else { b43_phy_maskset(dev, 487, 65408, 64); if ((unsigned int )dev->phy.rev > 1U) { b43_phy_maskset(dev, 546, 65280, 64); } else { } } if ((unsigned int )(dev->dev)->core_rev == 11U || (unsigned int )(dev->dev)->core_rev == 12U) { b43_maskset32(dev, 288, 4292870143U, 0U); } else { } b43_phy_write(dev, 488, 1008); b43_phy_write(dev, 489, (int )((u16 )(((int )((short )idle[0]) | (int )((short )((int )idle[1] << 8))) | -32768))); b43_phy_write(dev, 490, (int )((u16 )((int )((short )target[0]) | (int )((short )((int )target[1] << 8))))); c = 0U; goto ldv_55432; ldv_55431: i = 0U; goto ldv_55429; ldv_55428: num = ((int )b0[(int )c] * 16 + (int )b1[(int )c] * (int )i) * 8; den = (int )a1[(int )c] * (int )i + 32768; _max1 = (num * 4 + den / 2) / den; _max2 = -8; pwr = _max1 > _max2 ? _max1 : _max2; if ((unsigned int )dev->phy.rev <= 2U && (int )i <= 32 - (int )idle[(int )c]) { _max1___0 = pwr; _max2___0 = (int )target[(int )c] + 1; pwr = _max1___0 > _max2___0 ? _max1___0 : _max2___0; } else { } regval[(int )i] = (u32 )pwr; i = (u8 )((int )i + 1); ldv_55429: ; if ((unsigned int )i <= 63U) { goto ldv_55428; } else { } b43_ntab_write_bulk(dev, (u32 )((((int )c + 26) << 10) | 805306368), 64U, (void const *)(& regval)); c = (u8 )((int )c + 1); ldv_55432: ; if ((unsigned int )c <= 1U) { goto ldv_55431; } else { } b43_nphy_tx_prepare_adjusted_power_table(dev); b43_ntab_write_bulk(dev, 536897600U, 84U, (void const *)(& nphy->adj_pwr_tbl)); b43_ntab_write_bulk(dev, 536898624U, 84U, (void const *)(& nphy->adj_pwr_tbl)); if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 0); } else { } return; } } static void b43_nphy_tx_gain_table_upload(struct b43_wldev *dev ) { struct b43_phy *phy ; u32 const *table ; u32 rfpwr_offset ; u8 pga_gain ; u8 pad_gain ; int i ; s16 const *rf_pwr_offset_table ; enum ieee80211_band tmp ; enum ieee80211_band tmp___0 ; { phy = & dev->phy; table = (u32 const *)0U; rf_pwr_offset_table = rf_pwr_offset_table; table = b43_nphy_get_tx_gain_table(dev); if ((unsigned long )table == (unsigned long )((u32 const *)0U)) { return; } else { } b43_ntab_write_bulk(dev, 805333184U, 128U, (void const *)table); b43_ntab_write_bulk(dev, 805334208U, 128U, (void const *)table); if ((unsigned int )phy->rev <= 2U) { return; } else { } if ((unsigned int )phy->rev > 18U) { return; } else if ((unsigned int )phy->rev > 6U) { rf_pwr_offset_table = b43_ntab_get_rf_pwr_offset_table(dev); if ((unsigned long )rf_pwr_offset_table == (unsigned long )((s16 const *)0)) { return; } else { } return; } else { } i = 0; goto ldv_55445; ldv_55444: ; if ((unsigned int )phy->rev > 18U) { return; } else if ((unsigned int )phy->rev > 6U) { pga_gain = (unsigned int )((u8 )(*(table + (unsigned long )i) >> 24)) & 15U; pad_gain = (unsigned int )((u8 )(*(table + (unsigned long )i) >> 19)) & 31U; tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { rfpwr_offset = (u32 )*(rf_pwr_offset_table + (unsigned long )pad_gain); } else { rfpwr_offset = (u32 )*(rf_pwr_offset_table + (unsigned long )pga_gain); } } else { pga_gain = (unsigned int )((u8 )(*(table + (unsigned long )i) >> 24)) & 15U; tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 0U) { rfpwr_offset = (u32 )b43_ntab_papd_pga_gain_delta_ipa_2g[(int )pga_gain]; } else { rfpwr_offset = 0U; } } b43_ntab_write(dev, (u32 )((i + 576) | 805332992), rfpwr_offset); b43_ntab_write(dev, (u32 )((i + 576) | 805334016), rfpwr_offset); i = i + 1; ldv_55445: ; if (i <= 127) { goto ldv_55444; } else { } return; } } static void b43_nphy_pa_override(struct b43_wldev *dev , bool enable ) { struct b43_phy_n *nphy ; enum ieee80211_band band ; u16 tmp ; { nphy = dev->phy.__annonCompField106.n; if (! enable) { nphy->rfctrl_intc1_save = b43_phy_read(dev, 145); nphy->rfctrl_intc2_save = b43_phy_read(dev, 146); band = b43_current_band(dev->wl); if ((unsigned int )dev->phy.rev > 6U) { tmp = 5248U; } else if ((unsigned int )dev->phy.rev > 2U) { if ((unsigned int )band == 1U) { tmp = 1536U; } else { tmp = 1152U; } } else if ((unsigned int )band == 1U) { tmp = 384U; } else { tmp = 288U; } b43_phy_write(dev, 145, (int )tmp); b43_phy_write(dev, 146, (int )tmp); } else { b43_phy_write(dev, 145, (int )nphy->rfctrl_intc1_save); b43_phy_write(dev, 146, (int )nphy->rfctrl_intc2_save); } return; } } static void b43_nphy_tx_lpf_bw(struct b43_wldev *dev ) { u16 tmp ; bool tmp___0 ; bool tmp___1 ; bool tmp___2 ; bool tmp___3 ; bool tmp___4 ; { if ((unsigned int )dev->phy.rev <= 2U || (unsigned int )dev->phy.rev > 6U) { return; } else { } tmp___2 = b43_nphy_ipa(dev); if ((int )tmp___2) { tmp___0 = b43_is_40mhz(dev); tmp = (int )tmp___0 ? 5U : 4U; } else { tmp___1 = b43_is_40mhz(dev); tmp = (int )tmp___1 ? 3U : 1U; } b43_phy_write(dev, 232, (int )((u16 )((((int )((short )((int )tmp << 9)) | (int )((short )((int )tmp << 6))) | (int )((short )((int )tmp << 3))) | (int )((short )tmp)))); tmp___4 = b43_nphy_ipa(dev); if ((int )tmp___4) { tmp___3 = b43_is_40mhz(dev); tmp = (int )tmp___3 ? 4U : 1U; b43_phy_write(dev, 233, (int )((u16 )((((int )((short )((int )tmp << 9)) | (int )((short )((int )tmp << 6))) | (int )((short )((int )tmp << 3))) | (int )((short )tmp)))); } else { } return; } } static void b43_nphy_rx_iq_est(struct b43_wldev *dev , struct nphy_iq_est *est , u16 samps , u8 time , bool wait ) { int i ; u16 tmp ; u16 tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; u16 tmp___3 ; u16 tmp___4 ; u16 tmp___5 ; u16 tmp___6 ; u16 tmp___7 ; u16 tmp___8 ; u16 tmp___9 ; u16 tmp___10 ; u16 tmp___11 ; { b43_phy_write(dev, 299, (int )samps); b43_phy_maskset(dev, 298, 65280, (int )time); if ((int )wait) { b43_phy_set(dev, 297, 2); } else { b43_phy_mask(dev, 297, 65533); } b43_phy_set(dev, 297, 1); i = 1000; goto ldv_55468; ldv_55467: tmp = b43_phy_read(dev, 297); if (((int )tmp & 1) == 0) { tmp___0 = b43_phy_read(dev, 303); tmp___1 = b43_phy_read(dev, 302); est->i0_pwr = (u32 )(((int )tmp___0 << 16) | (int )tmp___1); tmp___2 = b43_phy_read(dev, 305); tmp___3 = b43_phy_read(dev, 304); est->q0_pwr = (u32 )(((int )tmp___2 << 16) | (int )tmp___3); tmp___4 = b43_phy_read(dev, 301); tmp___5 = b43_phy_read(dev, 300); est->iq0_prod = ((int )tmp___4 << 16) | (int )tmp___5; tmp___6 = b43_phy_read(dev, 311); tmp___7 = b43_phy_read(dev, 310); est->i1_pwr = (u32 )(((int )tmp___6 << 16) | (int )tmp___7); tmp___8 = b43_phy_read(dev, 313); tmp___9 = b43_phy_read(dev, 312); est->q1_pwr = (u32 )(((int )tmp___8 << 16) | (int )tmp___9); tmp___10 = b43_phy_read(dev, 309); tmp___11 = b43_phy_read(dev, 308); est->iq1_prod = ((int )tmp___10 << 16) | (int )tmp___11; return; } else { } __const_udelay(42950UL); i = i - 1; ldv_55468: ; if (i != 0) { goto ldv_55467; } else { } memset((void *)est, 0, 24UL); return; } } static void b43_nphy_rx_iq_coeffs(struct b43_wldev *dev , bool write , struct b43_phy_n_iq_comp *pcomp ) { u16 tmp ; u16 tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; { if ((int )write) { b43_phy_write(dev, 154, (int )((u16 )pcomp->a0)); b43_phy_write(dev, 155, (int )((u16 )pcomp->b0)); b43_phy_write(dev, 156, (int )((u16 )pcomp->a1)); b43_phy_write(dev, 157, (int )((u16 )pcomp->b1)); } else { tmp = b43_phy_read(dev, 154); pcomp->a0 = (s16 )tmp; tmp___0 = b43_phy_read(dev, 155); pcomp->b0 = (s16 )tmp___0; tmp___1 = b43_phy_read(dev, 156); pcomp->a1 = (s16 )tmp___1; tmp___2 = b43_phy_read(dev, 157); pcomp->b1 = (s16 )tmp___2; } return; } } static void b43_nphy_calc_rx_iq_comp(struct b43_wldev *dev , u8 mask ) { int i ; s32 iq ; u32 ii ; u32 qq ; int iq_nbits ; int qq_nbits ; int arsh ; int brsh ; u16 tmp ; u16 a ; u16 b ; struct nphy_iq_est est ; struct b43_phy_n_iq_comp old ; struct b43_phy_n_iq_comp new ; bool error ; long ret ; int __x___0 ; unsigned long tmp___0 ; { new.a0 = (short)0; new.b0 = (short)0; new.a1 = (short)0; new.b1 = (short)0; error = 0; if ((unsigned int )mask == 0U) { return; } else { } b43_nphy_rx_iq_coeffs(dev, 0, & old); b43_nphy_rx_iq_coeffs(dev, 1, & new); b43_nphy_rx_iq_est(dev, & est, 16384, 32, 0); new = old; i = 0; goto ldv_55501; ldv_55500: ; if (i == 0 && (int )mask & 1) { iq = est.iq0_prod; ii = est.i0_pwr; qq = est.q0_pwr; } else if (i == 1 && ((int )mask & 2) != 0) { iq = est.iq1_prod; ii = est.i1_pwr; qq = est.q1_pwr; } else { goto ldv_55494; } if (ii + qq <= 1U) { error = 1; goto ldv_55495; } else { } __x___0 = iq; ret = (long )(__x___0 < 0 ? - __x___0 : __x___0); iq_nbits = fls((int )ret); qq_nbits = fls((int )qq); arsh = iq_nbits + -20; if (arsh >= 0) { a = - ((int )((u16 )(iq << (30 - iq_nbits))) + (int )((u16 )(ii >> (arsh + 1)))); tmp = (u16 )(ii >> arsh); } else { a = - ((int )((u16 )(iq << (30 - iq_nbits))) + (int )((u16 )(ii << ~ arsh))); tmp = (u16 )(ii << - arsh); } if ((unsigned int )tmp == 0U) { error = 1; goto ldv_55495; } else { } a = (u16 )((int )a / (int )tmp); brsh = qq_nbits + -11; if (brsh >= 0) { b = (u16 )(qq << (31 - qq_nbits)); tmp = (u16 )(ii >> brsh); } else { b = (u16 )(qq << (31 - qq_nbits)); tmp = (u16 )(ii << - brsh); } if ((unsigned int )tmp == 0U) { error = 1; goto ldv_55495; } else { } tmp___0 = int_sqrt((unsigned long )((int )b / (int )tmp - (int )a * (int )a)); b = (unsigned int )((u16 )tmp___0) - 1024U; if (i == 0 && (int )mask & 1) { if ((unsigned int )dev->phy.rev > 2U) { new.a0 = (int )((s16 )a) & 1023; new.b0 = (int )((s16 )b) & 1023; } else { new.a0 = (int )((s16 )b) & 1023; new.b0 = (int )((s16 )a) & 1023; } } else if (i == 1 && ((int )mask & 2) != 0) { if ((unsigned int )dev->phy.rev > 2U) { new.a1 = (int )((s16 )a) & 1023; new.b1 = (int )((s16 )b) & 1023; } else { new.a1 = (int )((s16 )b) & 1023; new.b1 = (int )((s16 )a) & 1023; } } else { } ldv_55494: i = i + 1; ldv_55501: ; if (i <= 1) { goto ldv_55500; } else { } ldv_55495: ; if ((int )error) { new = old; } else { } b43_nphy_rx_iq_coeffs(dev, 1, & new); return; } } static void b43_nphy_tx_iq_workaround(struct b43_wldev *dev ) { u16 array[4U] ; { b43_ntab_read_bulk(dev, 536886352U, 4U, (void *)(& array)); b43_shm_write16(dev, 1, 1792, (int )array[0]); b43_shm_write16(dev, 1, 1794, (int )array[1]); b43_shm_write16(dev, 1, 1796, (int )array[2]); b43_shm_write16(dev, 1, 1798, (int )array[3]); return; } } static void b43_nphy_spur_workaround(struct b43_wldev *dev ) { struct b43_phy_n *nphy ; u8 channel ; int tone[2U] ; u32 noise[2U] ; int __ret_warn_on ; long tmp ; bool tmp___0 ; int tmp___1 ; { nphy = dev->phy.__annonCompField106.n; channel = (u8 )dev->phy.channel; tone[0] = 57; tone[1] = 58; noise[0] = 1023U; noise[1] = 1023U; __ret_warn_on = (unsigned int )dev->phy.rev <= 2U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_n.c", 4610); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 1); } else { } if ((int )nphy->gband_spurwar_en) { if ((unsigned int )channel == 11U) { tmp___0 = b43_is_40mhz(dev); if ((int )tmp___0) { tmp___1 = 1; } else { tmp___1 = 0; } } else { tmp___1 = 0; } } else { } if ((int )nphy->aband_spurwar_en) { if ((unsigned int )channel == 54U) { tone[0] = 32; noise[0] = 607U; } else if (((unsigned int )channel == 38U || (unsigned int )channel == 102U) || (unsigned int )channel == 118U) { tone[0] = 0; noise[0] = 0U; } else if ((unsigned int )channel == 134U) { tone[0] = 32; noise[0] = 543U; } else if ((unsigned int )channel == 151U) { tone[0] = 16; noise[0] = 575U; } else if ((unsigned int )channel == 153U || (unsigned int )channel == 161U) { tone[0] = 48; noise[0] = 575U; } else { tone[0] = 0; noise[0] = 0U; } } else { } if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 0); } else { } return; } } static void b43_nphy_tx_pwr_ctrl_coef_setup(struct b43_wldev *dev ) { struct b43_phy_n *nphy ; int i ; int j ; u32 tmp ; u32 cur_real ; u32 cur_imag ; u32 real_part ; u32 imag_part ; u16 buffer[7U] ; { nphy = dev->phy.__annonCompField106.n; if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 1); } else { } b43_ntab_read_bulk(dev, 536886352U, 7U, (void *)(& buffer)); i = 0; goto ldv_55531; ldv_55530: tmp = (u32 )((((int )buffer[i * 2] & 1023) << 10) | ((int )buffer[i * 2 + 1] & 1023)); b43_phy_write(dev, 114, (int )((u16 )((int )((short )((i + 26) << 10)) | 320))); j = 0; goto ldv_55528; ldv_55527: b43_phy_write(dev, 116, (int )((u16 )(tmp >> 16))); b43_phy_write(dev, 115, (int )((u16 )tmp)); j = j + 1; ldv_55528: ; if (j <= 127) { goto ldv_55527; } else { } i = i + 1; ldv_55531: ; if (i <= 1) { goto ldv_55530; } else { } i = 0; goto ldv_55537; ldv_55536: tmp = (u32 )buffer[i + 5]; real_part = (tmp >> 8) & 255U; imag_part = tmp & 255U; b43_phy_write(dev, 114, (int )((u16 )((int )((short )((i + 26) << 10)) | 448))); if ((unsigned int )dev->phy.rev > 2U) { cur_real = real_part; cur_imag = imag_part; tmp = ((cur_real << 8) & 65535U) | (cur_imag & 255U); } else { } j = 0; goto ldv_55534; ldv_55533: ; if ((unsigned int )dev->phy.rev <= 2U) { cur_real = ((u32 )loscale[j] * real_part + 128U) >> 8; cur_imag = ((u32 )loscale[j] * imag_part + 128U) >> 8; tmp = ((cur_real << 8) & 65535U) | (cur_imag & 255U); } else { } b43_phy_write(dev, 116, (int )((u16 )(tmp >> 16))); b43_phy_write(dev, 115, (int )((u16 )tmp)); j = j + 1; ldv_55534: ; if (j <= 127) { goto ldv_55533; } else { } i = i + 1; ldv_55537: ; if (i <= 1) { goto ldv_55536; } else { } if ((unsigned int )dev->phy.rev > 2U) { b43_shm_write16(dev, 1, 1800, 65535); b43_shm_write16(dev, 1, 1806, 65535); } else { } if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 0); } else { } return; } } static void b43_nphy_restore_rssi_cal(struct b43_wldev *dev ) { struct b43_phy_n *nphy ; u16 *rssical_radio_regs ; u16 *rssical_phy_regs ; enum ieee80211_band tmp ; { nphy = dev->phy.__annonCompField106.n; rssical_radio_regs = (u16 *)0U; rssical_phy_regs = (u16 *)0U; tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { if ((unsigned int )nphy->rssical_chanspec_2G.center_freq == 0U) { return; } else { } rssical_radio_regs = (u16 *)(& nphy->rssical_cache.rssical_radio_regs_2G); rssical_phy_regs = (u16 *)(& nphy->rssical_cache.rssical_phy_regs_2G); } else { if ((unsigned int )nphy->rssical_chanspec_5G.center_freq == 0U) { return; } else { } rssical_radio_regs = (u16 *)(& nphy->rssical_cache.rssical_radio_regs_5G); rssical_phy_regs = (u16 *)(& nphy->rssical_cache.rssical_phy_regs_5G); } if ((unsigned int )dev->phy.rev > 18U) { } else if ((unsigned int )dev->phy.rev > 6U) { b43_radio_maskset(dev, 180, 65528, (int )*rssical_radio_regs); b43_radio_maskset(dev, 313, 65528, (int )*(rssical_radio_regs + 1UL)); } else { b43_radio_maskset(dev, 24619, 227, (int )*rssical_radio_regs); b43_radio_maskset(dev, 28715, 227, (int )*(rssical_radio_regs + 1UL)); } b43_phy_write(dev, 422, (int )*rssical_phy_regs); b43_phy_write(dev, 428, (int )*(rssical_phy_regs + 1UL)); b43_phy_write(dev, 434, (int )*(rssical_phy_regs + 2UL)); b43_phy_write(dev, 440, (int )*(rssical_phy_regs + 3UL)); b43_phy_write(dev, 420, (int )*(rssical_phy_regs + 4UL)); b43_phy_write(dev, 426, (int )*(rssical_phy_regs + 5UL)); b43_phy_write(dev, 432, (int )*(rssical_phy_regs + 6UL)); b43_phy_write(dev, 438, (int )*(rssical_phy_regs + 7UL)); b43_phy_write(dev, 421, (int )*(rssical_phy_regs + 8UL)); b43_phy_write(dev, 427, (int )*(rssical_phy_regs + 9UL)); b43_phy_write(dev, 433, (int )*(rssical_phy_regs + 10UL)); b43_phy_write(dev, 439, (int )*(rssical_phy_regs + 11UL)); return; } } static void b43_nphy_tx_cal_radio_setup_rev19(struct b43_wldev *dev ) { { return; } } static void b43_nphy_tx_cal_radio_setup_rev7(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; u16 *save ; int core ; int off ; u16 r ; u16 tmp ; enum ieee80211_band tmp___0 ; { phy = & dev->phy; nphy = dev->phy.__annonCompField106.n; save = (u16 *)(& nphy->tx_rx_cal_radio_saveregs); core = 0; goto ldv_55559; ldv_55558: r = core != 0 ? 32U : 0U; off = core * 11; *(save + (unsigned long )off) = b43_radio_read(dev, (int )((unsigned int )r + 373U)); *(save + ((unsigned long )off + 1UL)) = b43_radio_read(dev, (int )((unsigned int )r + 374U)); *(save + ((unsigned long )off + 2UL)) = b43_radio_read(dev, (int )((unsigned int )r + 375U)); *(save + ((unsigned long )off + 3UL)) = b43_radio_read(dev, (int )((unsigned int )r + 376U)); *(save + ((unsigned long )off + 4UL)) = 0U; *(save + ((unsigned long )off + 5UL)) = b43_radio_read(dev, (int )((unsigned int )r + 377U)); if ((unsigned int )phy->radio_rev != 5U) { *(save + ((unsigned long )off + 6UL)) = b43_radio_read(dev, (int )((unsigned int )r + 378U)); } else { } *(save + ((unsigned long )off + 7UL)) = b43_radio_read(dev, (int )((unsigned int )r + 379U)); *(save + ((unsigned long )off + 8UL)) = b43_radio_read(dev, (int )((unsigned int )r + 380U)); tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 1U) { b43_radio_write(dev, (int )((unsigned int )r + 373U), 10); b43_radio_write(dev, (int )((unsigned int )r + 374U), 67); b43_radio_write(dev, (int )((unsigned int )r + 375U), 85); b43_radio_write(dev, (int )((unsigned int )r + 376U), 0); b43_radio_write(dev, (int )((unsigned int )r + 379U), 0); if ((int )nphy->use_int_tx_iq_lo_cal) { b43_radio_write(dev, (int )((unsigned int )r + 377U), 4); tmp = 49U; b43_radio_write(dev, (int )((unsigned int )r + 378U), (int )tmp); } else { } b43_radio_write(dev, (int )((unsigned int )r + 380U), 0); } else { b43_radio_write(dev, (int )((unsigned int )r + 373U), 6); b43_radio_write(dev, (int )((unsigned int )r + 374U), 67); b43_radio_write(dev, (int )((unsigned int )r + 375U), 85); b43_radio_write(dev, (int )((unsigned int )r + 376U), 0); if ((unsigned int )phy->radio_rev != 5U) { b43_radio_write(dev, (int )((unsigned int )r + 378U), 0); } else { } if ((int )nphy->use_int_tx_iq_lo_cal) { b43_radio_write(dev, (int )((unsigned int )r + 377U), 6); tmp = 49U; b43_radio_write(dev, (int )((unsigned int )r + 379U), (int )tmp); } else { } b43_radio_write(dev, (int )((unsigned int )r + 380U), 0); } core = core + 1; ldv_55559: ; if (core <= 1) { goto ldv_55558; } else { } return; } } static void b43_nphy_tx_cal_radio_setup(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; u16 *save ; u16 tmp ; u8 offset ; u8 i ; enum ieee80211_band tmp___0 ; u16 tmp___1 ; { phy = & dev->phy; nphy = dev->phy.__annonCompField106.n; save = (u16 *)(& nphy->tx_rx_cal_radio_saveregs); if ((unsigned int )phy->rev > 18U) { b43_nphy_tx_cal_radio_setup_rev19(dev); } else if ((unsigned int )phy->rev > 6U) { b43_nphy_tx_cal_radio_setup_rev7(dev); } else if ((unsigned int )phy->rev > 2U) { i = 0U; goto ldv_55571; ldv_55570: tmp = (unsigned int )i == 0U ? 8192U : 12288U; offset = (unsigned int )i * 11U; *(save + (unsigned long )offset) = b43_radio_read(dev, 40); *(save + ((unsigned long )offset + 1UL)) = b43_radio_read(dev, 41); *(save + ((unsigned long )offset + 2UL)) = b43_radio_read(dev, 42); *(save + ((unsigned long )offset + 3UL)) = b43_radio_read(dev, 43); *(save + ((unsigned long )offset + 4UL)) = b43_radio_read(dev, 44); *(save + ((unsigned long )offset + 5UL)) = b43_radio_read(dev, 45); *(save + ((unsigned long )offset + 6UL)) = b43_radio_read(dev, 46); *(save + ((unsigned long )offset + 7UL)) = b43_radio_read(dev, 47); *(save + ((unsigned long )offset + 8UL)) = b43_radio_read(dev, 48); *(save + ((unsigned long )offset + 9UL)) = b43_radio_read(dev, 49); *(save + ((unsigned long )offset + 10UL)) = b43_radio_read(dev, 50); tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 1U) { b43_radio_write(dev, (int )((unsigned int )tmp | 40U), 10); b43_radio_write(dev, (int )((unsigned int )tmp | 41U), 64); b43_radio_write(dev, (int )((unsigned int )tmp | 42U), 85); b43_radio_write(dev, (int )((unsigned int )tmp | 43U), 0); b43_radio_write(dev, (int )((unsigned int )tmp | 44U), 0); if ((int )nphy->ipa5g_on) { b43_radio_write(dev, (int )((unsigned int )tmp | 45U), 4); b43_radio_write(dev, (int )((unsigned int )tmp | 46U), 1); } else { b43_radio_write(dev, (int )((unsigned int )tmp | 45U), 0); b43_radio_write(dev, (int )((unsigned int )tmp | 46U), 47); } b43_radio_write(dev, (int )((unsigned int )tmp | 47U), 0); } else { b43_radio_write(dev, (int )((unsigned int )tmp | 40U), 6); b43_radio_write(dev, (int )((unsigned int )tmp | 41U), 64); b43_radio_write(dev, (int )((unsigned int )tmp | 42U), 85); b43_radio_write(dev, (int )((unsigned int )tmp | 43U), 0); b43_radio_write(dev, (int )((unsigned int )tmp | 44U), 0); b43_radio_write(dev, (int )((unsigned int )tmp | 46U), 0); if ((int )nphy->ipa2g_on) { b43_radio_write(dev, (int )((unsigned int )tmp | 45U), 6); b43_radio_write(dev, (int )((unsigned int )tmp | 47U), (unsigned int )dev->phy.rev <= 4U ? 17 : 1); } else { b43_radio_write(dev, (int )((unsigned int )tmp | 45U), 0); b43_radio_write(dev, (int )((unsigned int )tmp | 47U), 0); } } b43_radio_write(dev, (int )((unsigned int )tmp | 48U), 0); b43_radio_write(dev, (int )((unsigned int )tmp | 49U), 0); b43_radio_write(dev, (int )((unsigned int )tmp | 50U), 0); i = (u8 )((int )i + 1); ldv_55571: ; if ((unsigned int )i <= 1U) { goto ldv_55570; } else { } } else { *save = b43_radio_read(dev, 135); b43_radio_write(dev, 135, 41); *(save + 1UL) = b43_radio_read(dev, 136); b43_radio_write(dev, 136, 84); *(save + 2UL) = b43_radio_read(dev, 182); b43_radio_write(dev, 182, 41); *(save + 3UL) = b43_radio_read(dev, 183); b43_radio_write(dev, 183, 84); *(save + 3UL) = b43_radio_read(dev, 31); *(save + 4UL) = b43_radio_read(dev, 33); tmp___1 = b43_phy_read(dev, 9); if (((int )tmp___1 & 1) == 0) { b43_radio_write(dev, 31, 4); b43_radio_write(dev, 33, 4); } else { b43_radio_write(dev, 31, 32); b43_radio_write(dev, 33, 32); } if ((unsigned int )dev->phy.rev <= 1U) { b43_radio_set(dev, 141, 32); b43_radio_set(dev, 188, 32); } else { b43_radio_mask(dev, 141, 65503); b43_radio_mask(dev, 188, 65503); } } return; } } static void b43_nphy_update_tx_cal_ladder(struct b43_wldev *dev , u16 core ) { struct b43_phy_n *nphy ; int i ; u16 scale ; u16 entry ; u16 tmp ; { nphy = dev->phy.__annonCompField106.n; tmp = nphy->txcal_bbmult; if ((unsigned int )core == 0U) { tmp = (u16 )((int )tmp >> 8); } else { } tmp = (unsigned int )tmp & 255U; i = 0; goto ldv_55583; ldv_55582: scale = (u16 )(((int )ladder_lo[i].percent * (int )tmp) / 100); entry = (u16 )((int )((short )((int )scale << 8)) | (int )((short )ladder_lo[i].g_env)); b43_ntab_write(dev, (u32 )(i | 536886272), (u32 )entry); scale = (u16 )(((int )ladder_iq[i].percent * (int )tmp) / 100); entry = (u16 )((int )((short )((int )scale << 8)) | (int )((short )ladder_iq[i].g_env)); b43_ntab_write(dev, (u32 )((i + 32) | 536886272), (u32 )entry); i = i + 1; ldv_55583: ; if (i <= 17) { goto ldv_55582; } else { } return; } } static void b43_nphy_pa_set_tx_dig_filter(struct b43_wldev *dev , u16 offset , s16 const *filter ) { int i ; { offset = offset; i = 0; goto ldv_55592; ldv_55591: b43_phy_write(dev, (int )offset, (int )((u16 )*(filter + (unsigned long )i))); i = i + 1; offset = (u16 )((int )offset + 1); ldv_55592: ; if (i <= 14) { goto ldv_55591; } else { } return; } } static void b43_nphy_ext_pa_set_tx_dig_filters(struct b43_wldev *dev ) { { b43_nphy_pa_set_tx_dig_filter(dev, 709, (s16 const *)(& tbl_tx_filter_coef_rev4) + 2U); return; } } static void b43_nphy_int_pa_set_tx_dig_filters(struct b43_wldev *dev ) { u16 offset[3U] ; s16 dig_filter_phy_rev16[15U] ; int i ; enum ieee80211_band tmp ; bool tmp___0 ; { offset[0] = 390U; offset[1] = 405U; offset[2] = 709U; dig_filter_phy_rev16[0] = -375; dig_filter_phy_rev16[1] = 136; dig_filter_phy_rev16[2] = -407; dig_filter_phy_rev16[3] = 208; dig_filter_phy_rev16[4] = -1527; dig_filter_phy_rev16[5] = 956; dig_filter_phy_rev16[6] = 93; dig_filter_phy_rev16[7] = 186; dig_filter_phy_rev16[8] = 93; dig_filter_phy_rev16[9] = 230; dig_filter_phy_rev16[10] = -44; dig_filter_phy_rev16[11] = 230; dig_filter_phy_rev16[12] = 201; dig_filter_phy_rev16[13] = -191; dig_filter_phy_rev16[14] = 201; i = 0; goto ldv_55604; ldv_55603: b43_nphy_pa_set_tx_dig_filter(dev, (int )offset[i], (s16 const *)(& tbl_tx_filter_coef_rev4) + (unsigned long )i); i = i + 1; ldv_55604: ; if (i <= 2) { goto ldv_55603; } else { } if ((unsigned int )dev->phy.rev == 16U) { b43_nphy_pa_set_tx_dig_filter(dev, 390, (s16 const *)(& dig_filter_phy_rev16)); } else { } if ((unsigned int )dev->phy.rev == 17U) { b43_nphy_pa_set_tx_dig_filter(dev, 390, (s16 const *)(& dig_filter_phy_rev16)); b43_nphy_pa_set_tx_dig_filter(dev, 405, (s16 const *)(& tbl_tx_filter_coef_rev4) + 1U); } else { } tmp___0 = b43_is_40mhz(dev); if ((int )tmp___0) { b43_nphy_pa_set_tx_dig_filter(dev, 390, (s16 const *)(& tbl_tx_filter_coef_rev4) + 3U); } else { tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 1U) { b43_nphy_pa_set_tx_dig_filter(dev, 390, (s16 const *)(& tbl_tx_filter_coef_rev4) + 5U); } else { } if (dev->phy.channel == 14U) { b43_nphy_pa_set_tx_dig_filter(dev, 390, (s16 const *)(& tbl_tx_filter_coef_rev4) + 6U); } else { } } return; } } static struct nphy_txgains b43_nphy_get_tx_gains(struct b43_wldev *dev ) { struct b43_phy_n *nphy ; u16 curr_gain[2U] ; struct nphy_txgains target ; u32 const *table ; int i ; int i___0 ; u16 index[2U] ; u16 tmp ; u16 tmp___0 ; { nphy = dev->phy.__annonCompField106.n; table = (u32 const *)0U; if (! nphy->txpwrctrl) { if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 1); } else { } b43_ntab_read_bulk(dev, 536878352U, 2U, (void *)(& curr_gain)); if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 0); } else { } i = 0; goto ldv_55615; ldv_55614: ; if ((unsigned int )dev->phy.rev > 6U) { target.ipa[i] = (unsigned int )curr_gain[i] & 7U; target.pad[i] = (u16 )(((int )curr_gain[i] & 248) >> 3); target.pga[i] = (u16 )(((int )curr_gain[i] & 3840) >> 8); target.txgm[i] = (u16 )(((int )curr_gain[i] & 28672) >> 12); target.tx_lpf[i] = (int )curr_gain[i] >> 15; } else if ((unsigned int )dev->phy.rev > 2U) { target.ipa[i] = (unsigned int )curr_gain[i] & 15U; target.pad[i] = (u16 )(((int )curr_gain[i] & 240) >> 4); target.pga[i] = (u16 )(((int )curr_gain[i] & 3840) >> 8); target.txgm[i] = (u16 )(((int )curr_gain[i] & 28672) >> 12); } else { target.ipa[i] = (unsigned int )curr_gain[i] & 3U; target.pad[i] = (u16 )(((int )curr_gain[i] & 12) >> 2); target.pga[i] = (u16 )(((int )curr_gain[i] & 112) >> 4); target.txgm[i] = (u16 )(((int )curr_gain[i] & 896) >> 7); } i = i + 1; ldv_55615: ; if (i <= 1) { goto ldv_55614; } else { } } else { tmp = b43_phy_read(dev, 493); index[0] = (u16 )(((int )tmp & 32512) >> 8); tmp___0 = b43_phy_read(dev, 494); index[1] = (u16 )(((int )tmp___0 & 32512) >> 8); i___0 = 0; goto ldv_55621; ldv_55620: table = b43_nphy_get_tx_gain_table(dev); if ((unsigned long )table == (unsigned long )((u32 const *)0U)) { goto ldv_55619; } else { } if ((unsigned int )dev->phy.rev > 6U) { target.ipa[i___0] = (unsigned int )((u16 )(*(table + (unsigned long )index[i___0]) >> 16)) & 7U; target.pad[i___0] = (unsigned int )((u16 )(*(table + (unsigned long )index[i___0]) >> 19)) & 31U; target.pga[i___0] = (unsigned int )((u16 )(*(table + (unsigned long )index[i___0]) >> 24)) & 15U; target.txgm[i___0] = (unsigned int )((u16 )(*(table + (unsigned long )index[i___0]) >> 28)) & 7U; target.tx_lpf[i___0] = (u16 )(*(table + (unsigned long )index[i___0]) >> 31); } else if ((unsigned int )dev->phy.rev > 2U) { target.ipa[i___0] = (unsigned int )((u16 )(*(table + (unsigned long )index[i___0]) >> 16)) & 15U; target.pad[i___0] = (unsigned int )((u16 )(*(table + (unsigned long )index[i___0]) >> 20)) & 15U; target.pga[i___0] = (unsigned int )((u16 )(*(table + (unsigned long )index[i___0]) >> 24)) & 15U; target.txgm[i___0] = (u16 )(*(table + (unsigned long )index[i___0]) >> 28); } else { target.ipa[i___0] = (unsigned int )((u16 )(*(table + (unsigned long )index[i___0]) >> 16)) & 3U; target.pad[i___0] = (unsigned int )((u16 )(*(table + (unsigned long )index[i___0]) >> 18)) & 3U; target.pga[i___0] = (unsigned int )((u16 )(*(table + (unsigned long )index[i___0]) >> 20)) & 7U; target.txgm[i___0] = (unsigned int )((u16 )(*(table + (unsigned long )index[i___0]) >> 23)) & 7U; } i___0 = i___0 + 1; ldv_55621: ; if (i___0 <= 1) { goto ldv_55620; } else { } ldv_55619: ; } return (target); } } static void b43_nphy_tx_cal_phy_cleanup(struct b43_wldev *dev ) { u16 *regs ; { regs = (u16 *)(& (dev->phy.__annonCompField106.n)->tx_rx_cal_phy_saveregs); if ((unsigned int )dev->phy.rev > 2U) { b43_phy_write(dev, 166, (int )*regs); b43_phy_write(dev, 167, (int )*(regs + 1UL)); b43_phy_write(dev, 143, (int )*(regs + 2UL)); b43_phy_write(dev, 165, (int )*(regs + 3UL)); b43_phy_write(dev, 1, (int )*(regs + 4UL)); b43_ntab_write(dev, 536879107U, (u32 )*(regs + 5UL)); b43_ntab_write(dev, 536879123U, (u32 )*(regs + 6UL)); b43_phy_write(dev, 145, (int )*(regs + 7UL)); b43_phy_write(dev, 146, (int )*(regs + 8UL)); b43_phy_write(dev, 663, (int )*(regs + 9UL)); b43_phy_write(dev, 667, (int )*(regs + 10UL)); b43_nphy_reset_cca(dev); } else { b43_phy_maskset(dev, 166, 4095, (int )*regs); b43_phy_maskset(dev, 167, 4095, (int )*(regs + 1UL)); b43_phy_write(dev, 165, (int )*(regs + 2UL)); b43_ntab_write(dev, 536879106U, (u32 )*(regs + 3UL)); b43_ntab_write(dev, 536879122U, (u32 )*(regs + 4UL)); b43_phy_write(dev, 145, (int )*(regs + 5UL)); b43_phy_write(dev, 146, (int )*(regs + 6UL)); } return; } } static void b43_nphy_tx_cal_phy_setup(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; u16 *regs ; u16 tmp ; u32 tmp___0 ; u32 tmp___1 ; enum ieee80211_band tmp___2 ; u32 tmp___3 ; u32 tmp___4 ; enum ieee80211_band tmp___5 ; { phy = & dev->phy; nphy = dev->phy.__annonCompField106.n; regs = (u16 *)(& (dev->phy.__annonCompField106.n)->tx_rx_cal_phy_saveregs); *regs = b43_phy_read(dev, 166); *(regs + 1UL) = b43_phy_read(dev, 167); if ((unsigned int )dev->phy.rev > 2U) { b43_phy_maskset(dev, 166, 61695, 2560); b43_phy_maskset(dev, 167, 61695, 2560); tmp = b43_phy_read(dev, 143); *(regs + 2UL) = tmp; b43_phy_write(dev, 143, (int )((unsigned int )tmp | 1536U)); tmp = b43_phy_read(dev, 165); *(regs + 3UL) = tmp; b43_phy_write(dev, 165, (int )((unsigned int )tmp | 1536U)); *(regs + 4UL) = b43_phy_read(dev, 1); b43_phy_mask(dev, 1, 32767); tmp___0 = b43_ntab_read(dev, 536879107U); tmp = (u16 )tmp___0; *(regs + 5UL) = tmp; b43_ntab_write(dev, 536879107U, 0U); tmp___1 = b43_ntab_read(dev, 536879123U); tmp = (u16 )tmp___1; *(regs + 6UL) = tmp; b43_ntab_write(dev, 536879123U, 0U); *(regs + 7UL) = b43_phy_read(dev, 145); *(regs + 8UL) = b43_phy_read(dev, 146); if (! nphy->use_int_tx_iq_lo_cal) { b43_nphy_rf_ctl_intc_override(dev, 2, 1, 3); } else { b43_nphy_rf_ctl_intc_override(dev, 2, 0, 3); } b43_nphy_rf_ctl_intc_override(dev, 1, 2, 1); b43_nphy_rf_ctl_intc_override(dev, 1, 8, 2); *(regs + 9UL) = b43_phy_read(dev, 663); *(regs + 10UL) = b43_phy_read(dev, 667); b43_phy_mask(dev, 663, 65534); b43_phy_mask(dev, 667, 65534); tmp = b43_nphy_read_lpf_ctl(dev, 0); if ((unsigned int )phy->rev > 18U) { b43_nphy_rf_ctl_override_rev19(dev, 128, (int )tmp, 0, 0, 1); } else if ((unsigned int )phy->rev > 6U) { b43_nphy_rf_ctl_override_rev7(dev, 128, (int )tmp, 0, 0, 1); } else { } if ((int )nphy->use_int_tx_iq_lo_cal) { if ((unsigned int )phy->rev > 18U) { b43_nphy_rf_ctl_override_rev19(dev, 8, 0, 3, 0, 0); } else if ((unsigned int )phy->rev > 7U) { b43_nphy_rf_ctl_override_rev7(dev, 8, 0, 3, 0, 0); } else if ((unsigned int )phy->rev == 7U) { b43_radio_maskset(dev, 357, 16, 16); tmp___2 = b43_current_band(dev->wl); if ((unsigned int )tmp___2 == 0U) { b43_radio_maskset(dev, 94, 65534, 0); b43_radio_maskset(dev, 227, 65534, 0); } else { b43_radio_maskset(dev, 121, 65534, 0); b43_radio_maskset(dev, 254, 65534, 0); } } else { } } else { } } else { b43_phy_maskset(dev, 166, 4095, 40960); b43_phy_maskset(dev, 167, 4095, 40960); tmp = b43_phy_read(dev, 165); *(regs + 2UL) = tmp; b43_phy_write(dev, 165, (int )((unsigned int )tmp | 12288U)); tmp___3 = b43_ntab_read(dev, 536879106U); tmp = (u16 )tmp___3; *(regs + 3UL) = tmp; tmp = (u16 )((unsigned int )tmp | 8192U); b43_ntab_write(dev, 536879106U, (u32 )tmp); tmp___4 = b43_ntab_read(dev, 536879122U); tmp = (u16 )tmp___4; *(regs + 4UL) = tmp; tmp = (u16 )((unsigned int )tmp | 8192U); b43_ntab_write(dev, 536879122U, (u32 )tmp); *(regs + 5UL) = b43_phy_read(dev, 145); *(regs + 6UL) = b43_phy_read(dev, 146); tmp___5 = b43_current_band(dev->wl); if ((unsigned int )tmp___5 == 1U) { tmp = 384U; } else { tmp = 288U; } b43_phy_write(dev, 145, (int )tmp); b43_phy_write(dev, 146, (int )tmp); } return; } } static void b43_nphy_save_cal(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; struct b43_phy_n_iq_comp *rxcal_coeffs ; u16 *txcal_radio_regs ; struct b43_chanspec *iqcal_chanspec ; u16 *table ; enum ieee80211_band tmp ; { phy = & dev->phy; nphy = dev->phy.__annonCompField106.n; rxcal_coeffs = (struct b43_phy_n_iq_comp *)0; txcal_radio_regs = (u16 *)0U; table = (u16 *)0U; if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 1); } else { } tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { rxcal_coeffs = & nphy->cal_cache.rxcal_coeffs_2G; txcal_radio_regs = (u16 *)(& nphy->cal_cache.txcal_radio_regs_2G); iqcal_chanspec = & nphy->iqcal_chanspec_2G; table = (u16 *)(& nphy->cal_cache.txcal_coeffs_2G); } else { rxcal_coeffs = & nphy->cal_cache.rxcal_coeffs_5G; txcal_radio_regs = (u16 *)(& nphy->cal_cache.txcal_radio_regs_5G); iqcal_chanspec = & nphy->iqcal_chanspec_5G; table = (u16 *)(& nphy->cal_cache.txcal_coeffs_5G); } b43_nphy_rx_iq_coeffs(dev, 0, rxcal_coeffs); if ((unsigned int )phy->rev > 18U) { } else if ((unsigned int )phy->rev > 6U) { *txcal_radio_regs = b43_radio_read(dev, 369); *(txcal_radio_regs + 1UL) = b43_radio_read(dev, 370); *(txcal_radio_regs + 4UL) = b43_radio_read(dev, 371); *(txcal_radio_regs + 5UL) = b43_radio_read(dev, 372); *(txcal_radio_regs + 2UL) = b43_radio_read(dev, 401); *(txcal_radio_regs + 3UL) = b43_radio_read(dev, 402); *(txcal_radio_regs + 6UL) = b43_radio_read(dev, 403); *(txcal_radio_regs + 7UL) = b43_radio_read(dev, 404); } else if ((unsigned int )phy->rev > 2U) { *txcal_radio_regs = b43_radio_read(dev, 8225); *(txcal_radio_regs + 1UL) = b43_radio_read(dev, 8226); *(txcal_radio_regs + 2UL) = b43_radio_read(dev, 12321); *(txcal_radio_regs + 3UL) = b43_radio_read(dev, 12322); *(txcal_radio_regs + 4UL) = b43_radio_read(dev, 8227); *(txcal_radio_regs + 5UL) = b43_radio_read(dev, 8228); *(txcal_radio_regs + 6UL) = b43_radio_read(dev, 12323); *(txcal_radio_regs + 7UL) = b43_radio_read(dev, 12324); } else { *txcal_radio_regs = b43_radio_read(dev, 139); *(txcal_radio_regs + 1UL) = b43_radio_read(dev, 186); *(txcal_radio_regs + 2UL) = b43_radio_read(dev, 141); *(txcal_radio_regs + 3UL) = b43_radio_read(dev, 188); } iqcal_chanspec->center_freq = ((dev->phy.chandef)->chan)->center_freq; iqcal_chanspec->channel_type = cfg80211_get_chandef_type((struct cfg80211_chan_def const *)dev->phy.chandef); b43_ntab_read_bulk(dev, 536886352U, 8U, (void *)table); if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 0); } else { } return; } } static void b43_nphy_restore_cal(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; u16 coef[4U] ; u16 *loft ; u16 *table ; int i ; u16 *txcal_radio_regs ; struct b43_phy_n_iq_comp *rxcal_coeffs ; enum ieee80211_band tmp ; enum ieee80211_band tmp___0 ; { phy = & dev->phy; nphy = dev->phy.__annonCompField106.n; loft = (u16 *)0U; table = (u16 *)0U; txcal_radio_regs = (u16 *)0U; rxcal_coeffs = (struct b43_phy_n_iq_comp *)0; tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { if ((unsigned int )nphy->iqcal_chanspec_2G.center_freq == 0U) { return; } else { } table = (u16 *)(& nphy->cal_cache.txcal_coeffs_2G); loft = (u16 *)(& nphy->cal_cache.txcal_coeffs_2G) + 5UL; } else { if ((unsigned int )nphy->iqcal_chanspec_5G.center_freq == 0U) { return; } else { } table = (u16 *)(& nphy->cal_cache.txcal_coeffs_5G); loft = (u16 *)(& nphy->cal_cache.txcal_coeffs_5G) + 5UL; } b43_ntab_write_bulk(dev, 536886352U, 4U, (void const *)table); i = 0; goto ldv_55654; ldv_55653: ; if ((unsigned int )dev->phy.rev > 2U) { *(table + (unsigned long )i) = coef[i]; } else { coef[i] = 0U; } i = i + 1; ldv_55654: ; if (i <= 3) { goto ldv_55653; } else { } b43_ntab_write_bulk(dev, 536886360U, 4U, (void const *)(& coef)); b43_ntab_write_bulk(dev, 536886357U, 2U, (void const *)loft); b43_ntab_write_bulk(dev, 536886365U, 2U, (void const *)loft); if ((unsigned int )dev->phy.rev <= 1U) { b43_nphy_tx_iq_workaround(dev); } else { } tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 0U) { txcal_radio_regs = (u16 *)(& nphy->cal_cache.txcal_radio_regs_2G); rxcal_coeffs = & nphy->cal_cache.rxcal_coeffs_2G; } else { txcal_radio_regs = (u16 *)(& nphy->cal_cache.txcal_radio_regs_5G); rxcal_coeffs = & nphy->cal_cache.rxcal_coeffs_5G; } if ((unsigned int )phy->rev > 18U) { } else if ((unsigned int )phy->rev > 6U) { b43_radio_write(dev, 369, (int )*txcal_radio_regs); b43_radio_write(dev, 370, (int )*(txcal_radio_regs + 1UL)); b43_radio_write(dev, 371, (int )*(txcal_radio_regs + 4UL)); b43_radio_write(dev, 372, (int )*(txcal_radio_regs + 5UL)); b43_radio_write(dev, 401, (int )*(txcal_radio_regs + 2UL)); b43_radio_write(dev, 402, (int )*(txcal_radio_regs + 3UL)); b43_radio_write(dev, 403, (int )*(txcal_radio_regs + 6UL)); b43_radio_write(dev, 404, (int )*(txcal_radio_regs + 7UL)); } else if ((unsigned int )phy->rev > 2U) { b43_radio_write(dev, 8225, (int )*txcal_radio_regs); b43_radio_write(dev, 8226, (int )*(txcal_radio_regs + 1UL)); b43_radio_write(dev, 12321, (int )*(txcal_radio_regs + 2UL)); b43_radio_write(dev, 12322, (int )*(txcal_radio_regs + 3UL)); b43_radio_write(dev, 8227, (int )*(txcal_radio_regs + 4UL)); b43_radio_write(dev, 8228, (int )*(txcal_radio_regs + 5UL)); b43_radio_write(dev, 12323, (int )*(txcal_radio_regs + 6UL)); b43_radio_write(dev, 12324, (int )*(txcal_radio_regs + 7UL)); } else { b43_radio_write(dev, 139, (int )*txcal_radio_regs); b43_radio_write(dev, 186, (int )*(txcal_radio_regs + 1UL)); b43_radio_write(dev, 141, (int )*(txcal_radio_regs + 2UL)); b43_radio_write(dev, 188, (int )*(txcal_radio_regs + 3UL)); } b43_nphy_rx_iq_coeffs(dev, 1, rxcal_coeffs); return; } } static int b43_nphy_cal_tx_iq_lo(struct b43_wldev *dev , struct nphy_txgains target , bool full , bool mphase ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; int i ; int error ; int freq ; bool avoid ; u8 length ; u16 tmp ; u16 core ; u16 type ; u16 count ; u16 max ; u16 numb ; u16 last ; u16 cmd ; u16 const *table ; bool phy6or5x ; u16 buffer[11U] ; u16 diq_start ; u16 save[2U] ; u16 gain[2U] ; struct nphy_iqcal_params params[2U] ; bool updated[2U] ; enum ieee80211_band tmp___0 ; int tmp___1 ; bool tmp___2 ; bool tmp___3 ; int tmp___4 ; bool tmp___5 ; u16 _min1 ; unsigned short _min2 ; u32 tmp___6 ; { phy = & dev->phy; nphy = dev->phy.__annonCompField106.n; error = 0; avoid = 0; last = 0U; diq_start = 0U; updated[0] = (_Bool)0; updated[1] = (_Bool)0; b43_nphy_stay_in_carrier_search(dev, 1); if ((unsigned int )dev->phy.rev > 3U) { avoid = nphy->hang_avoid; nphy->hang_avoid = 0; } else { } b43_ntab_read_bulk(dev, 536878352U, 2U, (void *)(& save)); i = 0; goto ldv_55686; ldv_55685: b43_nphy_iq_cal_gain_params(dev, (int )((u16 )i), target, (struct nphy_iqcal_params *)(& params) + (unsigned long )i); gain[i] = params[i].cal_gain; i = i + 1; ldv_55686: ; if (i <= 1) { goto ldv_55685; } else { } b43_ntab_write_bulk(dev, 536878352U, 2U, (void const *)(& gain)); b43_nphy_tx_cal_radio_setup(dev); b43_nphy_tx_cal_phy_setup(dev); if ((unsigned int )dev->phy.rev > 5U) { tmp___1 = 1; } else if ((unsigned int )dev->phy.rev == 5U && (int )nphy->ipa2g_on) { tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 0U) { tmp___1 = 1; } else { tmp___1 = 0; } } else { tmp___1 = 0; } phy6or5x = (bool )tmp___1; if ((int )phy6or5x) { tmp___2 = b43_is_40mhz(dev); if ((int )tmp___2) { b43_ntab_write_bulk(dev, 536886272U, 18U, (void const *)(& tbl_tx_iqlo_cal_loft_ladder_40)); b43_ntab_write_bulk(dev, 536886304U, 18U, (void const *)(& tbl_tx_iqlo_cal_iqimb_ladder_40)); } else { b43_ntab_write_bulk(dev, 536886272U, 18U, (void const *)(& tbl_tx_iqlo_cal_loft_ladder_20)); b43_ntab_write_bulk(dev, 536886304U, 18U, (void const *)(& tbl_tx_iqlo_cal_iqimb_ladder_20)); } } else { } if ((unsigned int )phy->rev > 18U) { } else if ((unsigned int )phy->rev > 6U) { b43_phy_write(dev, 194, 35545); } else { b43_phy_write(dev, 194, 35497); } tmp___3 = b43_is_40mhz(dev); if (tmp___3) { tmp___4 = 0; } else { tmp___4 = 1; } if (tmp___4) { freq = 2500; } else { freq = 5000; } if ((unsigned int )nphy->mphase_cal_phase_id > 2U) { tmp___5 = b43_is_40mhz(dev); b43_nphy_run_samples(dev, (int )tmp___5 ? 320 : 160, 65535, 0, 1, 0, 0); } else { error = b43_nphy_tx_tone(dev, (u32 )freq, 250, 1, 0, 0); } if (error == 0) { if ((unsigned int )nphy->mphase_cal_phase_id > 2U) { table = (u16 const *)(& nphy->mphase_txcal_bestcoeffs); length = 11U; if ((unsigned int )dev->phy.rev <= 2U) { length = (unsigned int )length + 254U; } else { } } else if (! full && (int )nphy->txiqlocal_coeffsvalid) { table = (u16 const *)(& nphy->txiqlocal_bestc); length = 11U; if ((unsigned int )dev->phy.rev <= 2U) { length = (unsigned int )length + 254U; } else { } } else { full = 1; if ((unsigned int )dev->phy.rev > 2U) { table = (u16 const *)(& tbl_tx_iqlo_cal_startcoefs_nphyrev3); length = 11U; } else { table = (u16 const *)(& tbl_tx_iqlo_cal_startcoefs); length = 9U; } } b43_ntab_write_bulk(dev, 536886336U, (unsigned int )length, (void const *)table); if ((int )full) { if ((unsigned int )dev->phy.rev > 2U) { max = 12U; } else { max = 10U; } } else if ((unsigned int )dev->phy.rev > 2U) { max = 12U; } else { max = 10U; } if ((int )mphase) { count = nphy->mphase_txcal_cmdidx; _min1 = max; _min2 = (int )nphy->mphase_txcal_numcmds + (int )count; numb = (u16 )((int )_min1 < (int )_min2 ? (int )_min1 : (int )_min2); } else { count = 0U; numb = max; } goto ldv_55695; ldv_55694: ; if ((int )full) { if ((unsigned int )dev->phy.rev > 2U) { cmd = tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[(int )count]; } else { cmd = tbl_tx_iqlo_cal_cmds_fullcal[(int )count]; } } else if ((unsigned int )dev->phy.rev > 2U) { cmd = tbl_tx_iqlo_cal_cmds_recal_nphyrev3[(int )count]; } else { cmd = tbl_tx_iqlo_cal_cmds_recal[(int )count]; } core = (u16 )(((int )cmd & 12288) >> 12); type = (u16 )(((int )cmd & 3840) >> 8); if ((int )phy6or5x && ! updated[(int )core]) { b43_nphy_update_tx_cal_ladder(dev, (int )core); updated[(int )core] = 1; } else { } tmp = (u16 )((int )((short )((int )params[(int )core].ncorr[(int )type] << 8)) | 102); b43_phy_write(dev, 193, (int )tmp); if (((unsigned int )type == 1U || (unsigned int )type == 3U) || (unsigned int )type == 4U) { tmp___6 = b43_ntab_read(dev, (u32 )(((int )core + 69) | 536886272)); buffer[0] = (u16 )tmp___6; diq_start = buffer[0]; buffer[0] = 0U; b43_ntab_write(dev, (u32 )(((int )core + 69) | 536886272), 0U); } else { } b43_phy_write(dev, 192, (int )cmd); i = 0; goto ldv_55693; ldv_55692: tmp = b43_phy_read(dev, 192); if (((int )tmp & 49152) != 0) { goto ldv_55691; } else { } __const_udelay(42950UL); i = i + 1; ldv_55693: ; if (i <= 1999) { goto ldv_55692; } else { } ldv_55691: b43_ntab_read_bulk(dev, 536886368U, (unsigned int )length, (void *)(& buffer)); b43_ntab_write_bulk(dev, 536886336U, (unsigned int )length, (void const *)(& buffer)); if (((unsigned int )type == 1U || (unsigned int )type == 3U) || (unsigned int )type == 4U) { buffer[0] = diq_start; } else { } count = (u16 )((int )count + 1); ldv_55695: ; if ((int )count < (int )numb) { goto ldv_55694; } else { } if ((int )mphase) { nphy->mphase_txcal_cmdidx = (int )numb < (int )max ? numb : 0U; } else { } last = (unsigned int )dev->phy.rev <= 2U ? 6U : 7U; if (! mphase || (int )((unsigned short )nphy->mphase_cal_phase_id) == (int )last) { b43_ntab_write_bulk(dev, 536886368U, 4U, (void const *)(& buffer)); b43_ntab_read_bulk(dev, 536886352U, 4U, (void *)(& buffer)); if ((unsigned int )dev->phy.rev <= 2U) { buffer[0] = 0U; buffer[1] = 0U; buffer[2] = 0U; buffer[3] = 0U; } else { } b43_ntab_write_bulk(dev, 536886360U, 4U, (void const *)(& buffer)); b43_ntab_read_bulk(dev, 536886373U, 2U, (void *)(& buffer)); b43_ntab_write_bulk(dev, 536886357U, 2U, (void const *)(& buffer)); b43_ntab_write_bulk(dev, 536886365U, 2U, (void const *)(& buffer)); length = 11U; if ((unsigned int )dev->phy.rev <= 2U) { length = (unsigned int )length + 254U; } else { } b43_ntab_read_bulk(dev, 536886368U, (unsigned int )length, (void *)(& nphy->txiqlocal_bestc)); nphy->txiqlocal_coeffsvalid = 1; nphy->txiqlocal_chanspec.center_freq = ((phy->chandef)->chan)->center_freq; nphy->txiqlocal_chanspec.channel_type = cfg80211_get_chandef_type((struct cfg80211_chan_def const *)phy->chandef); } else { length = 11U; if ((unsigned int )dev->phy.rev <= 2U) { length = (unsigned int )length + 254U; } else { } b43_ntab_read_bulk(dev, 536886368U, (unsigned int )length, (void *)(& nphy->mphase_txcal_bestcoeffs)); } b43_nphy_stop_playback(dev); b43_phy_write(dev, 194, 0); } else { } b43_nphy_tx_cal_phy_cleanup(dev); b43_ntab_write_bulk(dev, 536878352U, 2U, (void const *)(& save)); if ((unsigned int )dev->phy.rev <= 1U && (! mphase || (int )((unsigned short )nphy->mphase_cal_phase_id) == (int )last)) { b43_nphy_tx_iq_workaround(dev); } else { } if ((unsigned int )dev->phy.rev > 3U) { nphy->hang_avoid = avoid; } else { } b43_nphy_stay_in_carrier_search(dev, 0); return (error); } } static void b43_nphy_reapply_tx_cal_coeffs(struct b43_wldev *dev ) { struct b43_phy_n *nphy ; u8 i ; u16 buffer[7U] ; bool equal ; enum nl80211_channel_type tmp ; { nphy = dev->phy.__annonCompField106.n; equal = 1; if (! nphy->txiqlocal_coeffsvalid || (int )nphy->txiqlocal_chanspec.center_freq != (int )((dev->phy.chandef)->chan)->center_freq) { return; } else { tmp = cfg80211_get_chandef_type((struct cfg80211_chan_def const *)dev->phy.chandef); if ((unsigned int )nphy->txiqlocal_chanspec.channel_type != (unsigned int )tmp) { return; } else { } } b43_ntab_read_bulk(dev, 536886352U, 7U, (void *)(& buffer)); i = 0U; goto ldv_55706; ldv_55705: ; if ((int )buffer[(int )i] != (int )nphy->txiqlocal_bestc[(int )i]) { equal = 0; goto ldv_55704; } else { } i = (u8 )((int )i + 1); ldv_55706: ; if ((unsigned int )i <= 3U) { goto ldv_55705; } else { } ldv_55704: ; if (! equal) { b43_ntab_write_bulk(dev, 536886352U, 4U, (void const *)(& nphy->txiqlocal_bestc)); i = 0U; goto ldv_55708; ldv_55707: buffer[(int )i] = 0U; i = (u8 )((int )i + 1); ldv_55708: ; if ((unsigned int )i <= 3U) { goto ldv_55707; } else { } b43_ntab_write_bulk(dev, 536886360U, 4U, (void const *)(& buffer)); b43_ntab_write_bulk(dev, 536886357U, 2U, (void const *)(& nphy->txiqlocal_bestc) + 5U); b43_ntab_write_bulk(dev, 536886365U, 2U, (void const *)(& nphy->txiqlocal_bestc) + 5U); } else { } return; } } static int b43_nphy_rev2_cal_rx_iq(struct b43_wldev *dev , struct nphy_txgains target , u8 type , bool debug ) { struct b43_phy_n *nphy ; int i ; int j ; int index ; u8 rfctl[2U] ; u8 afectl_core ; u16 tmp[6U] ; u16 cur_hpf1 ; u16 cur_hpf2 ; u16 cur_lna ; u32 real ; u32 imag ; enum ieee80211_band band ; u8 use ; u16 cur_hpf ; u16 lna[3U] ; u16 hpf1[3U] ; u16 hpf2[3U] ; u32 power[3U] ; u16 gain_save[2U] ; u16 cal_gain[2U] ; struct nphy_iqcal_params cal_params[2U] ; struct nphy_iq_est est ; int ret ; bool playtone ; int desired ; unsigned int tmp___0 ; u16 __min1 ; u16 __max1 ; u16 __max2 ; u16 __min2 ; { nphy = dev->phy.__annonCompField106.n; cur_hpf1 = cur_hpf1; cur_hpf2 = cur_hpf2; lna[0] = 3U; lna[1] = 3U; lna[2] = 1U; hpf1[0] = 7U; hpf1[1] = 2U; hpf1[2] = 0U; hpf2[0] = 2U; hpf2[1] = 0U; hpf2[2] = 0U; power[0] = 0U; power[1] = 0U; power[2] = 0U; ret = 0; playtone = 1; desired = 13; b43_nphy_stay_in_carrier_search(dev, 1); if ((unsigned int )dev->phy.rev <= 1U) { b43_nphy_reapply_tx_cal_coeffs(dev); } else { } b43_ntab_read_bulk(dev, 536878352U, 2U, (void *)(& gain_save)); i = 0; goto ldv_55743; ldv_55742: b43_nphy_iq_cal_gain_params(dev, (int )((u16 )i), target, (struct nphy_iqcal_params *)(& cal_params) + (unsigned long )i); cal_gain[i] = cal_params[i].cal_gain; i = i + 1; ldv_55743: ; if (i <= 1) { goto ldv_55742; } else { } b43_ntab_write_bulk(dev, 536878352U, 2U, (void const *)(& cal_gain)); i = 0; goto ldv_55756; ldv_55755: ; if (i == 0) { rfctl[0] = 145U; rfctl[1] = 146U; afectl_core = 166U; } else { rfctl[0] = 146U; rfctl[1] = 145U; afectl_core = 167U; } tmp[1] = b43_phy_read(dev, 162); tmp[2] = b43_phy_read(dev, (int )afectl_core); tmp[3] = b43_phy_read(dev, 165); tmp[4] = b43_phy_read(dev, (int )rfctl[0]); tmp[5] = b43_phy_read(dev, (int )rfctl[1]); b43_phy_maskset(dev, 162, 4095, (int )((1U - (unsigned int )((u16 )i)) << 12U)); b43_phy_maskset(dev, 162, 65520, (int )(1U - (unsigned int )((u16 )i))); b43_phy_set(dev, (int )afectl_core, 6); b43_phy_set(dev, 165, 6); band = b43_current_band(dev->wl); if ((nphy->rxcalparams & 4278190080U) != 0U) { if ((unsigned int )band == 1U) { b43_phy_write(dev, (int )rfctl[0], 320); } else { b43_phy_write(dev, (int )rfctl[0], 272); } } else if ((unsigned int )band == 1U) { b43_phy_write(dev, (int )rfctl[0], 384); } else { b43_phy_write(dev, (int )rfctl[0], 288); } if ((unsigned int )band == 1U) { b43_phy_write(dev, (int )rfctl[1], 328); } else { b43_phy_write(dev, (int )rfctl[1], 276); } if ((nphy->rxcalparams & 65536U) != 0U) { b43_radio_maskset(dev, 214, 252, (int )((unsigned int )((u16 )i) + 1U)); b43_radio_maskset(dev, 226, 252, (int )(2U - (unsigned int )((u16 )i))); } else { } j = 0; goto ldv_55753; ldv_55752: ; if (j <= 2) { cur_lna = lna[j]; cur_hpf1 = hpf1[j]; cur_hpf2 = hpf2[j]; } else { if (power[1] > 10000U) { use = 1U; cur_hpf = cur_hpf1; index = 2; } else if (power[0] > 10000U) { use = 1U; cur_hpf = cur_hpf1; index = 1; } else { index = 0; use = 2U; cur_hpf = cur_hpf2; } cur_lna = lna[index]; cur_hpf1 = hpf1[index]; cur_hpf2 = hpf2[index]; tmp___0 = __arch_hweight32(power[index]); cur_hpf = ((int )((u16 )desired) - (int )((u16 )tmp___0)) + (int )cur_hpf; __max1 = cur_hpf; __max2 = 0U; __min1 = (u16 )((int )__max1 > (int )__max2 ? __max1 : __max2); __min2 = 10U; cur_hpf = (u16 )((int )__min1 < (int )__min2 ? __min1 : __min2); if ((unsigned int )use == 1U) { cur_hpf1 = cur_hpf; } else { cur_hpf2 = cur_hpf; } } tmp[0] = (u16 )(((int )((short )((int )cur_hpf2 << 8)) | (int )((short )((int )cur_hpf1 << 4))) | (int )((short )((int )cur_lna << 2))); b43_nphy_rf_ctl_override(dev, 1024, (int )tmp[0], 3, 0); b43_nphy_force_rf_sequence(dev, 2); b43_nphy_stop_playback(dev); if ((int )playtone) { ret = b43_nphy_tx_tone(dev, 4000U, (int )((u16 )nphy->rxcalparams), 0, 0, 1); playtone = 0; } else { b43_nphy_run_samples(dev, 160, 65535, 0, 0, 0, 1); } if (ret == 0) { if (j <= 2) { b43_nphy_rx_iq_est(dev, & est, 1024, 32, 0); if (i == 0) { real = est.i0_pwr; imag = est.q0_pwr; } else { real = est.i1_pwr; imag = est.q1_pwr; } power[i] = (real + imag) / 1024U + 1U; } else { b43_nphy_calc_rx_iq_comp(dev, (int )((u8 )(1 << i))); } b43_nphy_stop_playback(dev); } else { } if (ret != 0) { goto ldv_55751; } else { } j = j + 1; ldv_55753: ; if (j <= 3) { goto ldv_55752; } else { } ldv_55751: b43_radio_mask(dev, 214, 252); b43_radio_mask(dev, 226, 252); b43_phy_write(dev, (int )rfctl[1], (int )tmp[5]); b43_phy_write(dev, (int )rfctl[0], (int )tmp[4]); b43_phy_write(dev, 165, (int )tmp[3]); b43_phy_write(dev, (int )afectl_core, (int )tmp[2]); b43_phy_write(dev, 162, (int )tmp[1]); if (ret != 0) { goto ldv_55754; } else { } i = i + 1; ldv_55756: ; if (i <= 1) { goto ldv_55755; } else { } ldv_55754: b43_nphy_rf_ctl_override(dev, 1024, 0, 3, 1); b43_nphy_force_rf_sequence(dev, 2); b43_ntab_write_bulk(dev, 536878352U, 2U, (void const *)(& gain_save)); b43_nphy_stay_in_carrier_search(dev, 0); return (ret); } } static int b43_nphy_rev3_cal_rx_iq(struct b43_wldev *dev , struct nphy_txgains target , u8 type , bool debug ) { { return (-1); } } static int b43_nphy_cal_rx_iq(struct b43_wldev *dev , struct nphy_txgains target , u8 type , bool debug ) { int tmp ; int tmp___0 ; { if ((unsigned int )dev->phy.rev > 6U) { type = 0U; } else { } if ((unsigned int )dev->phy.rev > 2U) { tmp = b43_nphy_rev3_cal_rx_iq(dev, target, (int )type, (int )debug); return (tmp); } else { tmp___0 = b43_nphy_rev2_cal_rx_iq(dev, target, (int )type, (int )debug); return (tmp___0); } } } static void b43_nphy_set_rx_core_state(struct b43_wldev *dev , u8 mask ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; { phy = & dev->phy; nphy = phy->__annonCompField106.n; nphy->phyrxchain = mask; b43_mac_suspend(dev); if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 1); } else { } b43_phy_maskset(dev, 162, 65295, (int )(((unsigned int )((u16 )mask) & 3U) << 4U)); if (((int )mask & 3) != 3) { b43_phy_write(dev, 526, 1); } else { b43_phy_write(dev, 526, 30); } b43_nphy_force_rf_sequence(dev, 2); if ((int )nphy->hang_avoid) { b43_nphy_stay_in_carrier_search(dev, 0); } else { } b43_mac_enable(dev); return; } } static enum b43_txpwr_result b43_nphy_op_recalc_txpower(struct b43_wldev *dev , bool ignore_tssi ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; struct ieee80211_channel *channel ; struct b43_ppr *ppr ; u8 max ; bool tx_pwr_state ; u8 __min1 ; u8 __min2 ; u8 tmp ; u8 tmp___0 ; bool tmp___1 ; { phy = & dev->phy; nphy = dev->phy.__annonCompField106.n; channel = ((dev->wl)->hw)->conf.chandef.chan; ppr = & nphy->tx_pwr_max_ppr; if ((int )nphy->tx_pwr_last_recalc_freq == (int )channel->center_freq && nphy->tx_pwr_last_recalc_limit == phy->desired_txpower) { return (1); } else { } b43_ppr_clear(dev, ppr); b43_ppr_load_max_from_sprom(dev, ppr, 0); max = (int )((u8 )((phy->chandef)->chan)->max_power) << 2U; if (phy->desired_txpower != 0) { __min1 = max; __min2 = (int )((u8 )phy->desired_txpower) << 2U; max = (u8 )((int )__min1 < (int )__min2 ? __min1 : __min2); } else { } b43_ppr_apply_max(dev, ppr, (int )max); tmp___1 = b43_debug(dev, 0); if ((int )tmp___1) { tmp = b43_ppr_get_max(dev, ppr); tmp___0 = b43_ppr_get_max(dev, ppr); b43dbg(dev->wl, "Calculated TX power: %u.%u\n", (int )tmp___0 >> 2, (((int )tmp & 3) * 100) / 4); } else { } b43_ppr_apply_min(dev, ppr, 32); tx_pwr_state = nphy->txpwrctrl; b43_mac_suspend(dev); b43_nphy_tx_power_ctl_setup(dev); if ((unsigned int )(dev->dev)->core_rev == 11U || (unsigned int )(dev->dev)->core_rev == 12U) { b43_maskset32(dev, 288, 4294967295U, 2097152U); b43_read32(dev, 288); __const_udelay(4295UL); } else { } b43_nphy_tx_power_ctrl(dev, (int )nphy->txpwrctrl); if ((unsigned int )(dev->dev)->core_rev == 11U || (unsigned int )(dev->dev)->core_rev == 12U) { b43_maskset32(dev, 288, 4292870143U, 0U); } else { } b43_mac_enable(dev); nphy->tx_pwr_last_recalc_freq = channel->center_freq; nphy->tx_pwr_last_recalc_limit = phy->desired_txpower; return (1); } } static void b43_nphy_update_mimo_config(struct b43_wldev *dev , s32 preamble ) { u16 mimocfg ; u16 tmp ; { tmp = b43_phy_read(dev, 237); mimocfg = tmp; mimocfg = (u16 )((unsigned int )mimocfg | 256U); if (preamble == 1) { mimocfg = (u16 )((unsigned int )mimocfg | 4U); } else { mimocfg = (unsigned int )mimocfg & 65531U; } b43_phy_write(dev, 237, (int )mimocfg); return; } } static void b43_nphy_bphy_init(struct b43_wldev *dev ) { unsigned int i ; u16 val ; { val = 7711U; i = 0U; goto ldv_55799; ldv_55798: b43_phy_write(dev, (int )(((unsigned int )((u16 )i) + 136U) | 3072U), (int )val); val = (unsigned int )val + 65022U; i = i + 1U; ldv_55799: ; if (i <= 15U) { goto ldv_55798; } else { } val = 15935U; i = 0U; goto ldv_55802; ldv_55801: b43_phy_write(dev, (int )(((unsigned int )((u16 )i) + 152U) | 3072U), (int )val); val = (unsigned int )val + 65022U; i = i + 1U; ldv_55802: ; if (i <= 15U) { goto ldv_55801; } else { } b43_phy_write(dev, 3128, 1640); return; } } static void b43_nphy_superswitch_init(struct b43_wldev *dev , bool init ) { { if ((unsigned int )dev->phy.rev > 6U) { return; } else { } if ((unsigned int )dev->phy.rev > 2U) { if (! init) { return; } else { } } else { b43_phy_write(dev, 200, 0); b43_phy_write(dev, 201, 0); switch ((unsigned int )(dev->dev)->bus_type) { case 0U: bcma_chipco_gpio_control(& (((dev->dev)->__annonCompField105.bdev)->bus)->drv_cc, 64512U, 64512U); goto ldv_55809; case 1U: ssb_chipco_gpio_control(& (((dev->dev)->__annonCompField105.sdev)->bus)->chipco, 64512U, 64512U); goto ldv_55809; } ldv_55809: b43_maskset32(dev, 288, 4294918143U, 0U); b43_maskset16(dev, 1182, 65535, 64512); b43_maskset16(dev, 1180, 1023, 0); if ((int )init) { b43_phy_write(dev, 248, 728); b43_phy_write(dev, 249, 769); b43_phy_write(dev, 250, 728); b43_phy_write(dev, 251, 769); } else { } } return; } } static int b43_phy_initn(struct b43_wldev *dev ) { struct ssb_sprom *sprom ; struct b43_phy *phy ; struct b43_phy_n *nphy ; u8 tx_pwr_state ; struct nphy_txgains target ; u16 tmp ; enum ieee80211_band tmp2 ; bool do_rssi_cal ; u16 clip[2U] ; bool do_cal ; u32 tmp___0 ; u32 tmp___1 ; enum ieee80211_band tmp___2 ; bool tmp___3 ; bool tmp___4 ; enum ieee80211_band tmp___5 ; enum ieee80211_band tmp___6 ; enum ieee80211_band tmp___7 ; int tmp___8 ; int tmp___9 ; { sprom = (dev->dev)->bus_sprom; phy = & dev->phy; nphy = phy->__annonCompField106.n; do_cal = 0; if ((unsigned int )dev->phy.rev > 2U && ((int )sprom->boardflags_lo & 4096) != 0) { tmp___2 = b43_current_band(dev->wl); if ((unsigned int )tmp___2 == 0U) { switch ((unsigned int )(dev->dev)->bus_type) { case 0U: tmp___0 = bcma_read32((((dev->dev)->__annonCompField105.bdev)->bus)->drv_cc.core, 40); bcma_write32((((dev->dev)->__annonCompField105.bdev)->bus)->drv_cc.core, 40, tmp___0 | 64U); goto ldv_55825; case 1U: tmp___1 = ssb_read32((((dev->dev)->__annonCompField105.sdev)->bus)->chipco.dev, 40); ssb_write32((((dev->dev)->__annonCompField105.sdev)->bus)->chipco.dev, 40, tmp___1 | 64U); goto ldv_55825; } ldv_55825: ; } else { } } else { } tmp___3 = b43_nphy_ipa(dev); nphy->use_int_tx_iq_lo_cal = (bool )(((int )tmp___3 || (unsigned int )phy->rev > 6U) || ((unsigned int )phy->rev > 4U && ((int )sprom->boardflags2_hi & 4) != 0)); nphy->deaf_count = 0U; b43_nphy_tables_init(dev); nphy->crsminpwr_adjusted = 0; nphy->noisevars_adjusted = 0; if ((unsigned int )dev->phy.rev > 2U) { b43_phy_write(dev, 231, 0); b43_phy_write(dev, 236, 0); if ((unsigned int )phy->rev > 6U) { b43_phy_write(dev, 834, 0); b43_phy_write(dev, 835, 0); b43_phy_write(dev, 838, 0); b43_phy_write(dev, 839, 0); } else { } b43_phy_write(dev, 229, 0); b43_phy_write(dev, 230, 0); } else { b43_phy_write(dev, 236, 0); } b43_phy_write(dev, 145, 0); b43_phy_write(dev, 146, 0); if ((unsigned int )dev->phy.rev <= 5U) { b43_phy_write(dev, 147, 0); b43_phy_write(dev, 148, 0); } else { } b43_phy_mask(dev, 161, 65532); if ((unsigned int )dev->phy.rev > 2U) { b43_phy_write(dev, 143, 0); } else { } b43_phy_write(dev, 165, 0); if ((unsigned int )dev->phy.rev <= 2U) { tmp = (unsigned int )dev->phy.rev == 2U ? 59U : 64U; b43_phy_maskset(dev, 220, 65280, (int )tmp); } else { } b43_phy_write(dev, 515, 32); b43_phy_write(dev, 513, 32); if (((int )sprom->boardflags2_lo & 256) != 0 || ((unsigned int )(dev->dev)->board_vendor == 4203U && (unsigned int )(dev->dev)->board_type == 139U)) { b43_phy_write(dev, 525, 160); } else { b43_phy_write(dev, 525, 184); } b43_phy_write(dev, 314, 200); b43_phy_write(dev, 112, 80); b43_phy_write(dev, 511, 48); if ((unsigned int )phy->rev <= 7U) { b43_nphy_update_mimo_config(dev, nphy->preamble_override); } else { } b43_nphy_update_txrx_chain(dev); if ((unsigned int )phy->rev <= 1U) { b43_phy_write(dev, 384, 2728); b43_phy_write(dev, 385, 2468); } else { } tmp2 = b43_current_band(dev->wl); tmp___4 = b43_nphy_ipa(dev); if ((int )tmp___4) { b43_phy_set(dev, 663, 1); b43_phy_maskset(dev, 664, 127, (int )nphy->papd_epsilon_offset[0] << 7U); b43_phy_set(dev, 667, 1); b43_phy_maskset(dev, 668, 127, (int )nphy->papd_epsilon_offset[1] << 7U); b43_nphy_int_pa_set_tx_dig_filters(dev); } else if ((unsigned int )phy->rev > 4U) { b43_nphy_ext_pa_set_tx_dig_filters(dev); } else { } b43_nphy_workarounds(dev); b43_phy_force_clock(dev, 1); tmp = b43_phy_read(dev, 1); b43_phy_write(dev, 1, (int )((unsigned int )tmp | 16384U)); b43_phy_write(dev, 1, (int )tmp & 49151); b43_phy_force_clock(dev, 0); b43_mac_phy_clock_set(dev, 1); if ((unsigned int )phy->rev <= 6U) { b43_nphy_pa_override(dev, 0); b43_nphy_force_rf_sequence(dev, 0); b43_nphy_force_rf_sequence(dev, 2); b43_nphy_pa_override(dev, 1); } else { } b43_nphy_classifier(dev, 0, 0); b43_nphy_read_clip_detection(dev, (u16 *)(& clip)); tmp___5 = b43_current_band(dev->wl); if ((unsigned int )tmp___5 == 0U) { b43_nphy_bphy_init(dev); } else { } tx_pwr_state = (u8 )nphy->txpwrctrl; b43_nphy_tx_power_ctrl(dev, 0); b43_nphy_tx_power_fix(dev); b43_nphy_tx_power_ctl_idle_tssi(dev); b43_nphy_tx_power_ctl_setup(dev); b43_nphy_tx_gain_table_upload(dev); if ((unsigned int )nphy->phyrxchain != 3U) { b43_nphy_set_rx_core_state(dev, (int )nphy->phyrxchain); } else { } do_rssi_cal = 0; if ((unsigned int )phy->rev > 2U) { tmp___6 = b43_current_band(dev->wl); if ((unsigned int )tmp___6 == 0U) { do_rssi_cal = (unsigned int )nphy->rssical_chanspec_2G.center_freq == 0U; } else { do_rssi_cal = (unsigned int )nphy->rssical_chanspec_5G.center_freq == 0U; } if ((int )do_rssi_cal) { b43_nphy_rssi_cal(dev); } else { b43_nphy_restore_rssi_cal(dev); } } else { b43_nphy_rssi_cal(dev); } if (((int )nphy->measure_hold & 6) == 0) { tmp___7 = b43_current_band(dev->wl); if ((unsigned int )tmp___7 == 0U) { do_cal = (unsigned int )nphy->iqcal_chanspec_2G.center_freq == 0U; } else { do_cal = (unsigned int )nphy->iqcal_chanspec_5G.center_freq == 0U; } if ((int )nphy->mute) { do_cal = 0; } else { } if ((int )do_cal) { target = b43_nphy_get_tx_gains(dev); if ((unsigned int )nphy->antsel_type == 2U) { b43_nphy_superswitch_init(dev, 1); } else { } if ((unsigned int )nphy->perical != 2U) { b43_nphy_rssi_cal(dev); if ((unsigned int )phy->rev > 2U) { nphy->cal_orig_pwr_idx[0] = (u8 )nphy->txpwrindex[0].index_internal; nphy->cal_orig_pwr_idx[1] = (u8 )nphy->txpwrindex[1].index_internal; target = b43_nphy_get_tx_gains(dev); } else { } tmp___9 = b43_nphy_cal_tx_iq_lo(dev, target, 1, 0); if (tmp___9 == 0) { tmp___8 = b43_nphy_cal_rx_iq(dev, target, 2, 0); if (tmp___8 == 0) { b43_nphy_save_cal(dev); } else { } } else { } } else { } } else { b43_nphy_restore_cal(dev); } } else { } b43_nphy_tx_pwr_ctrl_coef_setup(dev); b43_nphy_tx_power_ctrl(dev, (unsigned int )tx_pwr_state != 0U); b43_phy_write(dev, 119, 21); b43_phy_write(dev, 180, 800); if ((unsigned int )phy->rev > 2U && (unsigned int )phy->rev <= 6U) { b43_phy_write(dev, 112, 50); } else { } b43_nphy_tx_lpf_bw(dev); if ((unsigned int )phy->rev > 2U) { b43_nphy_spur_workaround(dev); } else { } return (0); } } static void b43_chantab_phy_upload(struct b43_wldev *dev , struct b43_phy_n_sfo_cfg const *e ) { { b43_phy_write(dev, 462, (int )e->phy_bw1a); b43_phy_write(dev, 463, (int )e->phy_bw2); b43_phy_write(dev, 464, (int )e->phy_bw3); b43_phy_write(dev, 465, (int )e->phy_bw4); b43_phy_write(dev, 466, (int )e->phy_bw5); b43_phy_write(dev, 467, (int )e->phy_bw6); return; } } static void b43_nphy_pmu_spur_avoid(struct b43_wldev *dev , bool avoid ) { { switch ((unsigned int )(dev->dev)->bus_type) { case 0U: bcma_pmu_spuravoid_pllupdate(& (((dev->dev)->__annonCompField105.bdev)->bus)->drv_cc, (int )avoid); goto ldv_55836; case 1U: ssb_pmu_spuravoid_pllupdate(& (((dev->dev)->__annonCompField105.sdev)->bus)->chipco, (int )avoid); goto ldv_55836; } ldv_55836: ; return; } } static void b43_nphy_channel_setup(struct b43_wldev *dev , struct b43_phy_n_sfo_cfg const *e , struct ieee80211_channel *new_channel ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; int ch ; u16 tmp16 ; u8 spuravoid ; bool tmp ; int tmp___0 ; bool tmp___1 ; int tmp___2 ; { phy = & dev->phy; nphy = dev->phy.__annonCompField106.n; ch = (int )new_channel->hw_value; if ((unsigned int )new_channel->band == 1U) { b43_phy_mask(dev, 9, 65534); tmp16 = b43_read16(dev, 1170); b43_write16(dev, 1170, (int )((unsigned int )tmp16 | 4U)); b43_phy_set(dev, 3073, 49152); b43_write16(dev, 1170, (int )tmp16); b43_phy_set(dev, 9, 1); } else if ((unsigned int )new_channel->band == 0U) { b43_phy_mask(dev, 9, 65534); tmp16 = b43_read16(dev, 1170); b43_write16(dev, 1170, (int )((unsigned int )tmp16 | 4U)); b43_phy_mask(dev, 3073, 16383); b43_write16(dev, 1170, (int )tmp16); } else { } b43_chantab_phy_upload(dev, e); if ((unsigned int )new_channel->hw_value == 14U) { b43_nphy_classifier(dev, 2, 0); b43_phy_set(dev, 3082, 2048); } else { b43_nphy_classifier(dev, 2, 2); if ((unsigned int )new_channel->band == 0U) { b43_phy_mask(dev, 3082, 63423); } else { } } if (! nphy->txpwrctrl) { b43_nphy_tx_power_fix(dev); } else { } if ((unsigned int )dev->phy.rev <= 2U) { b43_nphy_adjust_lna_gain_table(dev); } else { } b43_nphy_tx_lpf_bw(dev); if ((unsigned int )dev->phy.rev > 2U && (unsigned int )(dev->phy.__annonCompField106.n)->spur_avoid != 0U) { spuravoid = 0U; if ((unsigned int )(dev->phy.__annonCompField106.n)->spur_avoid == 2U) { spuravoid = 1U; } else if ((unsigned int )phy->rev > 18U) { } else if ((unsigned int )phy->rev > 17U) { } else if ((unsigned int )phy->rev > 16U) { } else if ((unsigned int )phy->rev > 15U) { } else if ((unsigned int )phy->rev > 6U) { tmp = b43_is_40mhz(dev); if (tmp) { tmp___0 = 0; } else { tmp___0 = 1; } if (tmp___0) { if ((ch == 13 || ch == 14) || ch == 153) { spuravoid = 1U; } else { } } else if (ch == 54) { spuravoid = 1U; } else { } } else { tmp___1 = b43_is_40mhz(dev); if (tmp___1) { tmp___2 = 0; } else { tmp___2 = 1; } if (tmp___2) { if (((ch > 4 && ch <= 8) || ch == 13) || ch == 14) { spuravoid = 1U; } else { } } else if ((int )nphy->aband_spurwar_en && ((ch == 38 || ch == 102) || ch == 118)) { spuravoid = (unsigned int )(dev->dev)->chip_id == 18198U; } else { } } b43_nphy_pmu_spur_avoid(dev, (unsigned int )spuravoid != 0U); b43_mac_switch_freq(dev, (int )spuravoid); if ((unsigned int )dev->phy.rev == 3U || (unsigned int )dev->phy.rev == 4U) { b43_wireless_core_phy_pll_reset(dev); } else { } if ((unsigned int )spuravoid != 0U) { b43_phy_set(dev, 1, 32768); } else { b43_phy_mask(dev, 1, 32767); } b43_nphy_reset_cca(dev); } else { } b43_phy_write(dev, 382, 14384); if ((unsigned int )phy->rev > 2U) { b43_nphy_spur_workaround(dev); } else { } return; } } static int b43_nphy_set_channel(struct b43_wldev *dev , struct ieee80211_channel *channel , enum nl80211_channel_type channel_type ) { struct b43_phy *phy ; struct b43_nphy_channeltab_entry_rev2 const *tabent_r2 ; struct b43_nphy_channeltab_entry_rev3 const *tabent_r3 ; struct b43_nphy_chantabent_rev7 const *tabent_r7 ; struct b43_nphy_chantabent_rev7_2g const *tabent_r7_2g ; u8 tmp ; struct b43_phy_n_sfo_cfg const *phy_regs ; { phy = & dev->phy; tabent_r2 = (struct b43_nphy_channeltab_entry_rev2 const *)0; tabent_r3 = (struct b43_nphy_channeltab_entry_rev3 const *)0; tabent_r7 = (struct b43_nphy_chantabent_rev7 const *)0; tabent_r7_2g = (struct b43_nphy_chantabent_rev7_2g const *)0; if ((unsigned int )phy->rev > 18U) { return (-3); } else if ((unsigned int )phy->rev > 6U) { r2057_get_chantabent_rev7(dev, (int )channel->center_freq, & tabent_r7, & tabent_r7_2g); if ((unsigned long )tabent_r7 == (unsigned long )((struct b43_nphy_chantabent_rev7 const *)0) && (unsigned long )tabent_r7_2g == (unsigned long )((struct b43_nphy_chantabent_rev7_2g const *)0)) { return (-3); } else { } } else if ((unsigned int )phy->rev > 2U) { tabent_r3 = b43_nphy_get_chantabent_rev3(dev, (int )channel->center_freq); if ((unsigned long )tabent_r3 == (unsigned long )((struct b43_nphy_channeltab_entry_rev3 const *)0)) { return (-3); } else { } } else { tabent_r2 = b43_nphy_get_chantabent_rev2(dev, (int )((u8 )channel->hw_value)); if ((unsigned long )tabent_r2 == (unsigned long )((struct b43_nphy_channeltab_entry_rev2 const *)0)) { return (-3); } else { } } phy->channel = (unsigned int )channel->hw_value; if ((unsigned int )channel_type == 3U) { b43_phy_set(dev, 160, 16); if ((unsigned int )phy->rev > 6U) { b43_phy_set(dev, 784, 32768); } else { } } else if ((unsigned int )channel_type == 2U) { b43_phy_mask(dev, 160, 65519); if ((unsigned int )phy->rev > 6U) { b43_phy_mask(dev, 784, 32767); } else { } } else { } if ((unsigned int )phy->rev > 18U) { } else if ((unsigned int )phy->rev > 6U) { phy_regs = (unsigned long )tabent_r7 != (unsigned long )((struct b43_nphy_chantabent_rev7 const *)0) ? & tabent_r7->phy_regs : & tabent_r7_2g->phy_regs; if ((unsigned int )phy->radio_rev <= 4U || (unsigned int )phy->radio_rev == 6U) { tmp = (unsigned int )channel->band == 1U ? 2U : 0U; b43_radio_maskset(dev, 143, 65533, (int )tmp); b43_radio_maskset(dev, 276, 65533, (int )tmp); } else { } b43_radio_2057_setup(dev, tabent_r7, tabent_r7_2g); b43_nphy_channel_setup(dev, phy_regs, channel); } else if ((unsigned int )phy->rev > 2U) { tmp = (unsigned int )channel->band == 1U ? 4U : 0U; b43_radio_maskset(dev, 8, 65531, (int )tmp); b43_radio_2056_setup(dev, tabent_r3); b43_nphy_channel_setup(dev, & tabent_r3->phy_regs, channel); } else { tmp = (unsigned int )channel->band == 1U ? 32U : 80U; b43_radio_maskset(dev, 17, 65423, (int )tmp); b43_radio_2055_setup(dev, tabent_r2); b43_nphy_channel_setup(dev, & tabent_r2->phy_regs, channel); } return (0); } } static int b43_nphy_op_allocate(struct b43_wldev *dev ) { struct b43_phy_n *nphy ; void *tmp ; { tmp = kzalloc(736UL, 208U); nphy = (struct b43_phy_n *)tmp; if ((unsigned long )nphy == (unsigned long )((struct b43_phy_n *)0)) { return (-12); } else { } dev->phy.__annonCompField106.n = nphy; return (0); } } static void b43_nphy_op_prepare_structs(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; struct ssb_sprom *sprom ; struct pci_dev *pdev ; { phy = & dev->phy; nphy = phy->__annonCompField106.n; sprom = (dev->dev)->bus_sprom; memset((void *)nphy, 0, 736UL); nphy->hang_avoid = (bool )((unsigned int )phy->rev == 3U || (unsigned int )phy->rev == 4U); nphy->spur_avoid = (unsigned int )phy->rev > 2U; nphy->gain_boost = 1; nphy->txrx_chain = 2U; nphy->phyrxchain = 3U; nphy->perical = 2U; nphy->tx_pwr_idx[0] = 128U; nphy->tx_pwr_idx[1] = 128U; nphy->txpwrctrl = 0; nphy->pwg_gain_5ghz = 0; if ((unsigned int )dev->phy.rev > 2U || ((unsigned int )(dev->dev)->board_vendor == 4203U && ((unsigned int )(dev->dev)->core_rev == 11U || (unsigned int )(dev->dev)->core_rev == 12U))) { nphy->txpwrctrl = 1; nphy->pwg_gain_5ghz = 1; } else if ((unsigned int )sprom->revision > 3U) { if ((unsigned int )dev->phy.rev > 1U && ((int )sprom->boardflags2_lo & 4) != 0) { nphy->txpwrctrl = 1; if ((unsigned int )(dev->dev)->bus_type == 1U && (unsigned int )(((dev->dev)->__annonCompField105.sdev)->bus)->bustype == 1U) { pdev = (((dev->dev)->__annonCompField105.sdev)->bus)->__annonCompField97.host_pci; if ((unsigned int )pdev->device == 17192U || (unsigned int )pdev->device == 17194U) { nphy->pwg_gain_5ghz = 1; } else { } } else { } } else if (((int )sprom->boardflags2_lo & 16) != 0) { nphy->pwg_gain_5ghz = 1; } else { } } else { } if ((unsigned int )dev->phy.rev > 2U) { nphy->ipa2g_on = (unsigned int )sprom->fem.ghz2.extpa_gain == 2U; nphy->ipa5g_on = (unsigned int )sprom->fem.ghz5.extpa_gain == 2U; } else { } return; } } static void b43_nphy_op_free(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_n *nphy ; { phy = & dev->phy; nphy = phy->__annonCompField106.n; kfree((void const *)nphy); phy->__annonCompField106.n = (struct b43_phy_n *)0; return; } } static int b43_nphy_op_init(struct b43_wldev *dev ) { int tmp ; { tmp = b43_phy_initn(dev); return (tmp); } } __inline static void check_phyreg(struct b43_wldev *dev , u16 offset ) { { if (((int )offset & 3072) == 1024) { b43err(dev->wl, "Invalid OFDM PHY access at 0x%04X on N-PHY\n", (int )offset); dump_stack(); } else { } if (((int )offset & 3072) == 2048) { b43err(dev->wl, "Invalid EXT-G PHY access at 0x%04X on N-PHY\n", (int )offset); dump_stack(); } else { } return; } } static void b43_nphy_op_maskset(struct b43_wldev *dev , u16 reg , u16 mask , u16 set ) { { check_phyreg(dev, (int )reg); b43_write16f(dev, 1020, (int )reg); b43_maskset16(dev, 1022, (int )mask, (int )set); dev->phy.writes_counter = 1U; return; } } static u16 b43_nphy_op_radio_read(struct b43_wldev *dev , u16 reg ) { int __ret_warn_on ; long tmp ; u16 tmp___0 ; { __ret_warn_on = (unsigned int )dev->phy.rev <= 6U && (unsigned int )reg == 1U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_n.c", 6588); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if ((unsigned int )dev->phy.rev > 6U) { reg = (u16 )((unsigned int )reg | 512U); } else { reg = (u16 )((unsigned int )reg | 256U); } b43_write16f(dev, 1014, (int )reg); tmp___0 = b43_read16(dev, 1018); return (tmp___0); } } static void b43_nphy_op_radio_write(struct b43_wldev *dev , u16 reg , u16 value ) { int __ret_warn_on ; long tmp ; { __ret_warn_on = (unsigned int )dev->phy.rev <= 6U && (unsigned int )reg == 1U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_n.c", 6602); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_write16f(dev, 1014, (int )reg); b43_write16(dev, 1018, (int )value); return; } } static void b43_nphy_op_software_rfkill(struct b43_wldev *dev , bool blocked ) { struct b43_phy *phy ; u32 tmp ; { phy = & dev->phy; tmp = b43_read32(dev, 288); if ((int )tmp & 1) { b43err(dev->wl, "MAC not suspended\n"); } else { } if ((int )blocked) { if ((unsigned int )phy->rev > 18U) { } else if ((unsigned int )phy->rev > 7U) { b43_phy_mask(dev, 120, 64511); } else if ((unsigned int )phy->rev > 6U) { } else if ((unsigned int )phy->rev > 2U) { b43_phy_mask(dev, 120, 64511); b43_radio_mask(dev, 9, 65533); b43_radio_write(dev, 8269, 0); b43_radio_write(dev, 8275, 0); b43_radio_write(dev, 8280, 0); b43_radio_write(dev, 8286, 0); b43_radio_mask(dev, 8290, 65295); b43_radio_write(dev, 8292, 0); b43_radio_write(dev, 12365, 0); b43_radio_write(dev, 12371, 0); b43_radio_write(dev, 12376, 0); b43_radio_write(dev, 12382, 0); b43_radio_mask(dev, 12386, 65295); b43_radio_write(dev, 12388, 0); } else { } } else if ((unsigned int )phy->rev > 18U) { } else if ((unsigned int )phy->rev > 6U) { if (! dev->phy.radio_on) { b43_radio_2057_init(dev); } else { } b43_switch_channel(dev, dev->phy.channel); } else if ((unsigned int )phy->rev > 2U) { if (! dev->phy.radio_on) { b43_radio_init2056(dev); } else { } b43_switch_channel(dev, dev->phy.channel); } else { b43_radio_init2055(dev); } return; } } static void b43_nphy_op_switch_analog(struct b43_wldev *dev , bool on ) { struct b43_phy *phy ; u16 override ; u16 core ; { phy = & dev->phy; override = (int )on ? 0U : 32767U; core = (int )on ? 13U : 253U; if ((unsigned int )phy->rev > 18U) { } else if ((unsigned int )phy->rev > 2U) { if ((int )on) { b43_phy_write(dev, 166, (int )core); b43_phy_write(dev, 143, (int )override); b43_phy_write(dev, 167, (int )core); b43_phy_write(dev, 165, (int )override); } else { b43_phy_write(dev, 143, (int )override); b43_phy_write(dev, 166, (int )core); b43_phy_write(dev, 165, (int )override); b43_phy_write(dev, 167, (int )core); } } else { b43_phy_write(dev, 165, (int )override); } return; } } static int b43_nphy_op_switch_channel(struct b43_wldev *dev , unsigned int new_channel ) { struct ieee80211_channel *channel ; enum nl80211_channel_type channel_type ; enum nl80211_channel_type tmp ; enum ieee80211_band tmp___0 ; int tmp___1 ; { channel = ((dev->wl)->hw)->conf.chandef.chan; tmp = cfg80211_get_chandef_type((struct cfg80211_chan_def const *)(& ((dev->wl)->hw)->conf.chandef)); channel_type = tmp; tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 0U) { if (new_channel == 0U || new_channel > 14U) { return (-22); } else { } } else if (new_channel > 200U) { return (-22); } else { } tmp___1 = b43_nphy_set_channel(dev, channel, channel_type); return (tmp___1); } } static unsigned int b43_nphy_op_get_default_chan(struct b43_wldev *dev ) { enum ieee80211_band tmp ; { tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { return (1U); } else { } return (36U); } } struct b43_phy_operations const b43_phyops_n = {& b43_nphy_op_allocate, & b43_nphy_op_free, & b43_nphy_op_prepare_structs, 0, & b43_nphy_op_init, 0, 0, 0, & b43_nphy_op_maskset, & b43_nphy_op_radio_read, & b43_nphy_op_radio_write, 0, & b43_nphy_op_software_rfkill, & b43_nphy_op_switch_analog, & b43_nphy_op_switch_channel, & b43_nphy_op_get_default_chan, 0, 0, & b43_nphy_op_recalc_txpower, 0, 0, 0}; void ldv_initialize_b43_phy_operations_29(void) { void *tmp ; { tmp = ldv_init_zalloc(1912UL); b43_phyops_n_group0 = (struct b43_wldev *)tmp; return; } } void ldv_main_exported_29(void) { u16 ldvarg148 ; u16 ldvarg142 ; u16 ldvarg149 ; u16 ldvarg143 ; u16 ldvarg150 ; u16 ldvarg141 ; bool ldvarg144 ; unsigned int ldvarg146 ; bool ldvarg145 ; bool ldvarg147 ; int tmp ; { ldv_memset((void *)(& ldvarg148), 0, 2UL); ldv_memset((void *)(& ldvarg142), 0, 2UL); ldv_memset((void *)(& ldvarg149), 0, 2UL); ldv_memset((void *)(& ldvarg143), 0, 2UL); ldv_memset((void *)(& ldvarg150), 0, 2UL); ldv_memset((void *)(& ldvarg141), 0, 2UL); ldv_memset((void *)(& ldvarg144), 0, 1UL); ldv_memset((void *)(& ldvarg146), 0, 4UL); ldv_memset((void *)(& ldvarg145), 0, 1UL); ldv_memset((void *)(& ldvarg147), 0, 1UL); tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ; if (ldv_state_variable_29 == 1) { b43_nphy_op_prepare_structs(b43_phyops_n_group0); ldv_state_variable_29 = 1; } else { } goto ldv_55941; case 1: ; if (ldv_state_variable_29 == 1) { b43_nphy_op_allocate(b43_phyops_n_group0); ldv_state_variable_29 = 1; } else { } goto ldv_55941; case 2: ; if (ldv_state_variable_29 == 1) { b43_nphy_op_get_default_chan(b43_phyops_n_group0); ldv_state_variable_29 = 1; } else { } goto ldv_55941; case 3: ; if (ldv_state_variable_29 == 1) { b43_nphy_op_radio_write(b43_phyops_n_group0, (int )ldvarg150, (int )ldvarg149); ldv_state_variable_29 = 1; } else { } goto ldv_55941; case 4: ; if (ldv_state_variable_29 == 1) { b43_nphy_op_radio_read(b43_phyops_n_group0, (int )ldvarg148); ldv_state_variable_29 = 1; } else { } goto ldv_55941; case 5: ; if (ldv_state_variable_29 == 1) { b43_nphy_op_software_rfkill(b43_phyops_n_group0, (int )ldvarg147); ldv_state_variable_29 = 1; } else { } goto ldv_55941; case 6: ; if (ldv_state_variable_29 == 1) { b43_nphy_op_free(b43_phyops_n_group0); ldv_state_variable_29 = 1; } else { } goto ldv_55941; case 7: ; if (ldv_state_variable_29 == 1) { b43_nphy_op_switch_channel(b43_phyops_n_group0, ldvarg146); ldv_state_variable_29 = 1; } else { } goto ldv_55941; case 8: ; if (ldv_state_variable_29 == 1) { b43_nphy_op_recalc_txpower(b43_phyops_n_group0, (int )ldvarg145); ldv_state_variable_29 = 1; } else { } goto ldv_55941; case 9: ; if (ldv_state_variable_29 == 1) { b43_nphy_op_init(b43_phyops_n_group0); ldv_state_variable_29 = 1; } else { } goto ldv_55941; case 10: ; if (ldv_state_variable_29 == 1) { b43_nphy_op_switch_analog(b43_phyops_n_group0, (int )ldvarg144); ldv_state_variable_29 = 1; } else { } goto ldv_55941; case 11: ; if (ldv_state_variable_29 == 1) { b43_nphy_op_maskset(b43_phyops_n_group0, (int )ldvarg143, (int )ldvarg142, (int )ldvarg141); ldv_state_variable_29 = 1; } else { } goto ldv_55941; default: ldv_stop(); } ldv_55941: ; return; } } bool ldv_queue_work_on_225(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_226(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_227(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_228(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_229(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_230(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; bool ldv_queue_work_on_241(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_243(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_242(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_245(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_244(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_246(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; extern void ssb_pmu_set_ldo_voltage(struct ssb_chipcommon * , enum ssb_pmu_ldo_volt_id , u32 ) ; extern void ssb_pmu_set_ldo_paref(struct ssb_chipcommon * , bool ) ; u32 b43_lptab_read(struct b43_wldev *dev , u32 offset ) ; void b43_lptab_write(struct b43_wldev *dev , u32 offset , u32 value ) ; void b43_lptab_read_bulk(struct b43_wldev *dev , u32 offset , unsigned int nr_elements , void *_data___0 ) ; void b43_lptab_write_bulk(struct b43_wldev *dev , u32 offset , unsigned int nr_elements , void const *_data___0 ) ; void b2062_upload_init_table(struct b43_wldev *dev ) ; void b2063_upload_init_table(struct b43_wldev *dev ) ; void lpphy_rev0_1_table_init(struct b43_wldev *dev ) ; void lpphy_rev2plus_table_init(struct b43_wldev *dev ) ; void lpphy_init_tx_gain_table(struct b43_wldev *dev ) ; __inline static u16 channel2freq_lp(u8 channel ) { { if ((unsigned int )channel <= 13U) { return ((unsigned int )((u16 )channel) * 5U + 2407U); } else if ((unsigned int )channel == 14U) { return (2484U); } else if ((unsigned int )channel <= 183U) { return ((unsigned int )((u16 )channel) * 5U + 5000U); } else { return ((unsigned int )((u16 )channel) * 5U + 4000U); } } } static unsigned int b43_lpphy_op_get_default_chan(struct b43_wldev *dev ) { enum ieee80211_band tmp ; { tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { return (1U); } else { } return (36U); } } static int b43_lpphy_op_allocate(struct b43_wldev *dev ) { struct b43_phy_lp *lpphy ; void *tmp ; { tmp = kzalloc(188UL, 208U); lpphy = (struct b43_phy_lp *)tmp; if ((unsigned long )lpphy == (unsigned long )((struct b43_phy_lp *)0)) { return (-12); } else { } dev->phy.__annonCompField106.lp = lpphy; return (0); } } static void b43_lpphy_op_prepare_structs(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_lp *lpphy ; { phy = & dev->phy; lpphy = phy->__annonCompField106.lp; memset((void *)lpphy, 0, 188UL); lpphy->antenna = 2; return; } } static void b43_lpphy_op_free(struct b43_wldev *dev ) { struct b43_phy_lp *lpphy ; { lpphy = dev->phy.__annonCompField106.lp; kfree((void const *)lpphy); dev->phy.__annonCompField106.lp = (struct b43_phy_lp *)0; return; } } static void lpphy_read_band_sprom(struct b43_wldev *dev ) { struct ssb_sprom *sprom ; struct b43_phy_lp *lpphy ; u16 cckpo ; u16 maxpwr ; u32 ofdmpo ; int i ; u8 opo ; enum ieee80211_band tmp ; { sprom = (dev->dev)->bus_sprom; lpphy = dev->phy.__annonCompField106.lp; tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { lpphy->tx_isolation_med_band = sprom->tri2g; lpphy->bx_arch = sprom->bxa2g; lpphy->rx_pwr_offset = (u8 )sprom->rxpo2g; lpphy->rssi_vf = sprom->rssismf2g; lpphy->rssi_vc = sprom->rssismc2g; lpphy->rssi_gs = sprom->rssisav2g; lpphy->txpa[0] = (s16 )sprom->pa0b0; lpphy->txpa[1] = (s16 )sprom->pa0b1; lpphy->txpa[2] = (s16 )sprom->pa0b2; maxpwr = (u16 )sprom->maxpwr_bg; lpphy->max_tx_pwr_med_band = maxpwr; cckpo = sprom->cck2gpo; if ((unsigned int )cckpo != 0U) { ofdmpo = sprom->ofdm2gpo; i = 0; goto ldv_54095; ldv_54094: lpphy->tx_max_rate[i] = (unsigned int )maxpwr - ((unsigned int )((u16 )ofdmpo) & 15U) * 2U; ofdmpo = ofdmpo >> 4; i = i + 1; ldv_54095: ; if (i <= 3) { goto ldv_54094; } else { } ofdmpo = sprom->ofdm2gpo; i = 4; goto ldv_54098; ldv_54097: lpphy->tx_max_rate[i] = (unsigned int )maxpwr - ((unsigned int )((u16 )ofdmpo) & 15U) * 2U; ofdmpo = ofdmpo >> 4; i = i + 1; ldv_54098: ; if (i <= 14) { goto ldv_54097; } else { } } else { opo = sprom->opo; i = 0; goto ldv_54102; ldv_54101: lpphy->tx_max_rate[i] = maxpwr; i = i + 1; ldv_54102: ; if (i <= 3) { goto ldv_54101; } else { } i = 4; goto ldv_54105; ldv_54104: lpphy->tx_max_rate[i] = (int )maxpwr - (int )((u16 )opo); i = i + 1; ldv_54105: ; if (i <= 14) { goto ldv_54104; } else { } } } else { lpphy->tx_isolation_low_band = sprom->tri5gl; lpphy->tx_isolation_med_band = sprom->tri5g; lpphy->tx_isolation_hi_band = sprom->tri5gh; lpphy->bx_arch = sprom->bxa5g; lpphy->rx_pwr_offset = (u8 )sprom->rxpo5g; lpphy->rssi_vf = sprom->rssismf5g; lpphy->rssi_vc = sprom->rssismc5g; lpphy->rssi_gs = sprom->rssisav5g; lpphy->txpa[0] = (s16 )sprom->pa1b0; lpphy->txpa[1] = (s16 )sprom->pa1b1; lpphy->txpa[2] = (s16 )sprom->pa1b2; lpphy->txpal[0] = (s16 )sprom->pa1lob0; lpphy->txpal[1] = (s16 )sprom->pa1lob1; lpphy->txpal[2] = (s16 )sprom->pa1lob2; lpphy->txpah[0] = (s16 )sprom->pa1hib0; lpphy->txpah[1] = (s16 )sprom->pa1hib1; lpphy->txpah[2] = (s16 )sprom->pa1hib2; maxpwr = (u16 )sprom->maxpwr_al; ofdmpo = sprom->ofdm5glpo; lpphy->max_tx_pwr_low_band = maxpwr; i = 4; goto ldv_54108; ldv_54107: lpphy->tx_max_ratel[i] = (unsigned int )maxpwr - ((unsigned int )((u16 )ofdmpo) & 15U) * 2U; ofdmpo = ofdmpo >> 4; i = i + 1; ldv_54108: ; if (i <= 11) { goto ldv_54107; } else { } maxpwr = (u16 )sprom->maxpwr_a; ofdmpo = sprom->ofdm5gpo; lpphy->max_tx_pwr_med_band = maxpwr; i = 4; goto ldv_54111; ldv_54110: lpphy->tx_max_rate[i] = (unsigned int )maxpwr - ((unsigned int )((u16 )ofdmpo) & 15U) * 2U; ofdmpo = ofdmpo >> 4; i = i + 1; ldv_54111: ; if (i <= 11) { goto ldv_54110; } else { } maxpwr = (u16 )sprom->maxpwr_ah; ofdmpo = sprom->ofdm5ghpo; lpphy->max_tx_pwr_hi_band = maxpwr; i = 4; goto ldv_54114; ldv_54113: lpphy->tx_max_rateh[i] = (unsigned int )maxpwr - ((unsigned int )((u16 )ofdmpo) & 15U) * 2U; ofdmpo = ofdmpo >> 4; i = i + 1; ldv_54114: ; if (i <= 11) { goto ldv_54113; } else { } } return; } } static void lpphy_adjust_gain_table(struct b43_wldev *dev , u32 freq ) { struct b43_phy_lp *lpphy ; u16 temp[3U] ; u16 isolation ; int __ret_warn_on ; long tmp ; enum ieee80211_band tmp___0 ; { lpphy = dev->phy.__annonCompField106.lp; __ret_warn_on = (unsigned int )dev->phy.rev > 1U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_lp.c", 175); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 0U) { isolation = (u16 )lpphy->tx_isolation_med_band; } else if (freq <= 5320U) { isolation = (u16 )lpphy->tx_isolation_low_band; } else if (freq <= 5700U) { isolation = (u16 )lpphy->tx_isolation_med_band; } else { isolation = (u16 )lpphy->tx_isolation_hi_band; } temp[0] = (int )((u16 )(((int )isolation + -26) / 12)) << 12U; temp[1] = (unsigned int )temp[0] + 4096U; temp[2] = (unsigned int )temp[0] + 8192U; b43_lptab_write_bulk(dev, 536884224U, 3U, (void const *)(& temp)); b43_lptab_write_bulk(dev, 536883200U, 3U, (void const *)(& temp)); return; } } static void lpphy_table_init(struct b43_wldev *dev ) { u32 freq ; unsigned int tmp ; u16 tmp___0 ; { tmp = b43_lpphy_op_get_default_chan(dev); tmp___0 = channel2freq_lp((int )((u8 )tmp)); freq = (u32 )tmp___0; if ((unsigned int )dev->phy.rev <= 1U) { lpphy_rev0_1_table_init(dev); } else { lpphy_rev2plus_table_init(dev); } lpphy_init_tx_gain_table(dev); if ((unsigned int )dev->phy.rev <= 1U) { lpphy_adjust_gain_table(dev, freq); } else { } return; } } static void lpphy_baseband_rev0_1_init(struct b43_wldev *dev ) { struct ssb_bus *bus ; struct ssb_sprom *sprom ; struct b43_phy_lp *lpphy ; u16 tmp ; u16 tmp2 ; enum ieee80211_band tmp___0 ; enum ieee80211_band tmp___1 ; u64 tmp___2 ; enum ieee80211_band tmp___3 ; { bus = ((dev->dev)->__annonCompField105.sdev)->bus; sprom = (dev->dev)->bus_sprom; lpphy = dev->phy.__annonCompField106.lp; b43_phy_mask(dev, 1081, 63487); b43_phy_write(dev, 1082, 0); b43_phy_write(dev, 1083, 0); b43_phy_write(dev, 1100, 0); b43_phy_write(dev, 1200, 0); b43_phy_set(dev, 1081, 4); b43_phy_maskset(dev, 1047, 65280, 120); b43_phy_maskset(dev, 1056, 33791, 22528); b43_phy_write(dev, 1136, 22); b43_phy_maskset(dev, 1078, 65528, 4); b43_phy_maskset(dev, 1061, 255, 21504); b43_phy_maskset(dev, 1059, 255, 9216); b43_phy_maskset(dev, 1060, 255, 8448); b43_phy_maskset(dev, 1061, 65280, 6); b43_phy_mask(dev, 1198, 65534); b43_phy_maskset(dev, 1056, 65504, 5); b43_phy_maskset(dev, 1056, 64543, 384); b43_phy_maskset(dev, 1056, 33791, 15360); b43_phy_maskset(dev, 1063, 65520, 5); b43_phy_maskset(dev, 1073, 65472, 26); b43_phy_maskset(dev, 1074, 65280, 179); b43_phy_maskset(dev, 1074, 255, 44288); b43_phy_maskset(dev, 1076, 65280, (int )lpphy->rx_pwr_offset); if (((int )sprom->boardflags_lo & 2048) != 0) { tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 1U || ((int )sprom->boardflags_hi & 4) != 0) { ssb_pmu_set_ldo_voltage(& bus->chipco, 0, 40U); ssb_pmu_set_ldo_paref(& bus->chipco, 1); if ((unsigned int )dev->phy.rev == 0U) { b43_phy_maskset(dev, 1196, 65487, 16); } else { } b43_lptab_write(dev, 536882183U, 60U); } else { ssb_pmu_set_ldo_paref(& bus->chipco, 0); b43_phy_maskset(dev, 1196, 65487, 32); b43_lptab_write(dev, 536882183U, 100U); } } else { ssb_pmu_set_ldo_paref(& bus->chipco, 0); b43_phy_maskset(dev, 1196, 65487, 32); b43_lptab_write(dev, 536882183U, 100U); } tmp = (u16 )(((int )((short )lpphy->rssi_vf) | (int )((short )((int )lpphy->rssi_vc << 4))) | -24576); b43_phy_write(dev, 1085, (int )tmp); if (((int )sprom->boardflags_hi & 2) != 0) { b43_phy_maskset(dev, 1086, 61440, 2730); } else { b43_phy_maskset(dev, 1086, 61440, 682); } b43_lptab_write(dev, 536882177U, 24U); b43_phy_maskset(dev, 1198, 65529, (int )((u16 )lpphy->bx_arch) << 1U); if ((unsigned int )dev->phy.rev == 1U && ((int )sprom->boardflags_hi & 64) != 0) { b43_phy_maskset(dev, 1102, 65472, 10); b43_phy_maskset(dev, 1102, 16128, 2304); b43_phy_maskset(dev, 1103, 65472, 10); b43_phy_maskset(dev, 1103, 49407, 2816); b43_phy_maskset(dev, 1211, 65472, 10); b43_phy_maskset(dev, 1211, 49407, 1024); b43_phy_maskset(dev, 1212, 65472, 10); b43_phy_maskset(dev, 1212, 49407, 2816); b43_phy_maskset(dev, 1223, 65472, 10); b43_phy_maskset(dev, 1223, 49407, 2304); b43_phy_maskset(dev, 1224, 65472, 10); b43_phy_maskset(dev, 1224, 49407, 2816); b43_phy_maskset(dev, 1225, 65472, 10); b43_phy_maskset(dev, 1225, 49407, 2304); b43_phy_maskset(dev, 1226, 65472, 10); b43_phy_maskset(dev, 1226, 49407, 2816); } else { tmp___1 = b43_current_band(dev->wl); if (((unsigned int )tmp___1 == 1U || (unsigned int )(dev->dev)->board_type == 1162U) || ((unsigned int )dev->phy.rev == 0U && ((int )sprom->boardflags_lo & 2048) != 0)) { b43_phy_maskset(dev, 1102, 65472, 1); b43_phy_maskset(dev, 1102, 49407, 1024); b43_phy_maskset(dev, 1103, 65472, 1); b43_phy_maskset(dev, 1103, 49407, 1280); b43_phy_maskset(dev, 1211, 65472, 2); b43_phy_maskset(dev, 1211, 49407, 2048); b43_phy_maskset(dev, 1212, 65472, 2); b43_phy_maskset(dev, 1212, 49407, 2560); } else if ((unsigned int )dev->phy.rev == 1U || ((int )sprom->boardflags_lo & 2048) != 0) { b43_phy_maskset(dev, 1102, 65472, 4); b43_phy_maskset(dev, 1102, 49407, 2048); b43_phy_maskset(dev, 1103, 65472, 4); b43_phy_maskset(dev, 1103, 49407, 3072); b43_phy_maskset(dev, 1211, 65472, 2); b43_phy_maskset(dev, 1211, 49407, 256); b43_phy_maskset(dev, 1212, 65472, 2); b43_phy_maskset(dev, 1212, 49407, 768); } else { b43_phy_maskset(dev, 1102, 65472, 10); b43_phy_maskset(dev, 1102, 49407, 2304); b43_phy_maskset(dev, 1103, 65472, 10); b43_phy_maskset(dev, 1103, 49407, 2816); b43_phy_maskset(dev, 1211, 65472, 6); b43_phy_maskset(dev, 1211, 49407, 1280); b43_phy_maskset(dev, 1212, 65472, 6); b43_phy_maskset(dev, 1212, 49407, 1792); } } if ((unsigned int )dev->phy.rev == 1U && ((int )sprom->boardflags_hi & 4) != 0) { b43_phy_copy(dev, 1223, 1102); b43_phy_copy(dev, 1224, 1103); b43_phy_copy(dev, 1225, 1211); b43_phy_copy(dev, 1226, 1212); } else { } if ((((int )sprom->boardflags_hi & 64) != 0 && (unsigned int )(dev->dev)->chip_id == 21332U) && (unsigned int )(dev->dev)->chip_pkg == 1U) { b43_phy_set(dev, 1040, 6); b43_phy_write(dev, 1215, 5); b43_phy_write(dev, 1214, 65535); tmp___2 = b43_hf_read(dev); b43_hf_write(dev, tmp___2 | 8796093022208ULL); } else { } tmp___3 = b43_current_band(dev->wl); if ((unsigned int )tmp___3 == 0U) { b43_phy_set(dev, 1096, 32768); b43_phy_set(dev, 1040, 64); b43_phy_maskset(dev, 1046, 255, 41984); b43_phy_maskset(dev, 1040, 61695, 2816); b43_phy_maskset(dev, 48, 65528, 7); b43_phy_maskset(dev, 1071, 65528, 3); b43_phy_maskset(dev, 1071, 65479, 32); b43_phy_mask(dev, 1050, 255); } else { b43_phy_mask(dev, 1096, 32767); b43_phy_mask(dev, 1040, 65471); } if ((unsigned int )dev->phy.rev == 1U) { tmp = b43_phy_read(dev, 1056); tmp2 = (u16 )(((int )tmp & 992) >> 5); tmp2 = (u16 )((int )((short )((int )tmp2 << 5)) | (int )((short )tmp2)); b43_phy_write(dev, 1219, (int )tmp2); tmp = b43_phy_read(dev, 1063); tmp2 = (u16 )(((int )tmp & 7936) >> 8); tmp2 = (u16 )((int )((short )((int )tmp2 << 5)) | (int )((short )tmp2)); b43_phy_write(dev, 1220, (int )tmp2); tmp = b43_phy_read(dev, 1061); tmp2 = (unsigned int )tmp & 255U; tmp2 = (u16 )((int )((short )((int )tmp << 8)) | (int )((short )tmp2)); b43_phy_write(dev, 1221, (int )tmp2); } else { } return; } } static void lpphy_save_dig_flt_state(struct b43_wldev *dev ) { u16 addr[9U] ; u16 coefs[9U] ; struct b43_phy_lp *lpphy ; int i ; { addr[0] = 1217U; addr[1] = 1218U; addr[2] = 1219U; addr[3] = 1220U; addr[4] = 1221U; addr[5] = 1222U; addr[6] = 1223U; addr[7] = 1224U; addr[8] = 1231U; coefs[0] = 56926U; coefs[1] = 59442U; coefs[2] = 58161U; coefs[3] = 19750U; coefs[4] = 38U; coefs[5] = 5152U; coefs[6] = 32U; coefs[7] = 65032U; coefs[8] = 8U; lpphy = dev->phy.__annonCompField106.lp; i = 0; goto ldv_54147; ldv_54146: lpphy->dig_flt_state[i] = b43_phy_read(dev, (int )addr[i]); b43_phy_write(dev, (int )addr[i], (int )coefs[i]); i = i + 1; ldv_54147: ; if ((unsigned int )i <= 8U) { goto ldv_54146; } else { } return; } } static void lpphy_restore_dig_flt_state(struct b43_wldev *dev ) { u16 addr[9U] ; struct b43_phy_lp *lpphy ; int i ; { addr[0] = 1217U; addr[1] = 1218U; addr[2] = 1219U; addr[3] = 1220U; addr[4] = 1221U; addr[5] = 1222U; addr[6] = 1223U; addr[7] = 1224U; addr[8] = 1231U; lpphy = dev->phy.__annonCompField106.lp; i = 0; goto ldv_54158; ldv_54157: b43_phy_write(dev, (int )addr[i], (int )lpphy->dig_flt_state[i]); i = i + 1; ldv_54158: ; if ((unsigned int )i <= 8U) { goto ldv_54157; } else { } return; } } static void lpphy_baseband_rev2plus_init(struct b43_wldev *dev ) { struct b43_phy_lp *lpphy ; enum ieee80211_band tmp ; { lpphy = dev->phy.__annonCompField106.lp; b43_phy_write(dev, 1081, 80); b43_phy_write(dev, 1082, 34816); b43_phy_write(dev, 1083, 0); b43_phy_write(dev, 1084, 0); b43_phy_write(dev, 1100, 0); b43_phy_write(dev, 1200, 0); b43_phy_write(dev, 1273, 0); b43_phy_write(dev, 1102, 0); b43_phy_set(dev, 1136, 16); b43_phy_maskset(dev, 1047, 65280, 180); b43_phy_maskset(dev, 1052, 63743, 512); b43_phy_maskset(dev, 1052, 65280, 127); b43_phy_maskset(dev, 1063, 65295, 64); b43_phy_maskset(dev, 1054, 65280, 2); b43_phy_mask(dev, 1040, 49151); b43_phy_mask(dev, 1040, 57343); b43_phy_set(dev, 1290, 1); if ((unsigned int )(dev->dev)->board_rev > 23U) { b43_lptab_write(dev, 805323841U, 236U); b43_phy_maskset(dev, 1290, 65281, 20); } else { b43_phy_maskset(dev, 1290, 65281, 16); } b43_phy_maskset(dev, 1247, 65280, 244); b43_phy_maskset(dev, 1247, 255, 61696); b43_phy_write(dev, 1055, 72); b43_phy_maskset(dev, 1059, 65280, 70); b43_phy_maskset(dev, 1252, 65280, 16); b43_phy_maskset(dev, 1065, 65520, 9); b43_phy_mask(dev, 1063, 65520); b43_phy_maskset(dev, 1061, 255, 21760); b43_phy_maskset(dev, 1056, 64543, 160); b43_phy_maskset(dev, 1063, 57599, 768); b43_phy_maskset(dev, 1059, 255, 10752); if ((unsigned int )(dev->dev)->chip_id == 17189U && (unsigned int )(dev->dev)->chip_rev == 0U) { b43_phy_maskset(dev, 1060, 255, 8448); b43_phy_maskset(dev, 1061, 65280, 10); } else { b43_phy_maskset(dev, 1060, 255, 7680); b43_phy_maskset(dev, 1061, 65280, 13); } b43_phy_maskset(dev, 1278, 65504, 31); b43_phy_maskset(dev, 1279, 65504, 12); b43_phy_maskset(dev, 1280, 65280, 25); b43_phy_maskset(dev, 1279, 1023, 15360); b43_phy_maskset(dev, 1278, 64543, 992); b43_phy_maskset(dev, 1279, 65504, 12); b43_phy_maskset(dev, 1280, 255, 6400); b43_phy_maskset(dev, 1056, 33791, 22528); b43_phy_maskset(dev, 1056, 65504, 18); b43_phy_maskset(dev, 1062, 4095, 36864); if ((unsigned int )(dev->dev)->chip_id == 17189U && (unsigned int )(dev->dev)->chip_rev == 0U) { b43_lptab_write(dev, 536879124U, 0U); b43_lptab_write(dev, 536879122U, 64U); } else { } tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { b43_phy_set(dev, 1040, 64); b43_phy_maskset(dev, 1040, 61695, 2816); b43_phy_maskset(dev, 48, 65528, 6); b43_phy_maskset(dev, 1046, 255, 40192); b43_phy_maskset(dev, 1046, 65280, 161); b43_phy_mask(dev, 1050, 255); } else { b43_phy_mask(dev, 1040, 65471); } b43_phy_maskset(dev, 1074, 65280, 179); b43_phy_maskset(dev, 1074, 255, 44288); b43_phy_maskset(dev, 1076, 65280, (int )lpphy->rx_pwr_offset); b43_phy_set(dev, 1098, 68); b43_phy_write(dev, 1098, 128); b43_phy_write(dev, 1085, 43348); b43_phy_write(dev, 1086, (int )((u16 )((((int )((short )((int )lpphy->rssi_gs << 10)) | 8192) | (int )((short )((int )lpphy->rssi_vc << 4))) | (int )((short )lpphy->rssi_vf)))); if ((unsigned int )(dev->dev)->chip_id == 17189U && (unsigned int )(dev->dev)->chip_rev == 0U) { b43_phy_set(dev, 1078, 28); b43_phy_maskset(dev, 1082, 255, 34816); b43_phy_maskset(dev, 1079, 64572, 1024); } else { } lpphy_save_dig_flt_state(dev); return; } } static void lpphy_baseband_init(struct b43_wldev *dev ) { { lpphy_table_init(dev); if ((unsigned int )dev->phy.rev > 1U) { lpphy_baseband_rev2plus_init(dev); } else { lpphy_baseband_rev0_1_init(dev); } return; } } static void lpphy_2062_init(struct b43_wldev *dev ) { struct b43_phy_lp *lpphy ; struct ssb_bus *bus ; u32 crystalfreq ; u32 tmp ; u32 ref ; unsigned int i ; struct b2062_freqdata const *fd ; struct b2062_freqdata freqdata_tab[6U] ; u16 tmp___0 ; enum ieee80211_band tmp___1 ; int __ret_warn_on ; long tmp___2 ; int __ret_warn_on___0 ; long tmp___3 ; { lpphy = dev->phy.__annonCompField106.lp; bus = ((dev->dev)->__annonCompField105.sdev)->bus; fd = (struct b2062_freqdata const *)0; freqdata_tab[0].freq = 12000U; freqdata_tab[0].data[0] = 6U; freqdata_tab[0].data[1] = 6U; freqdata_tab[0].data[2] = 6U; freqdata_tab[0].data[3] = 6U; freqdata_tab[0].data[4] = 10U; freqdata_tab[0].data[5] = 6U; freqdata_tab[1].freq = 13000U; freqdata_tab[1].data[0] = 4U; freqdata_tab[1].data[1] = 4U; freqdata_tab[1].data[2] = 4U; freqdata_tab[1].data[3] = 4U; freqdata_tab[1].data[4] = 11U; freqdata_tab[1].data[5] = 7U; freqdata_tab[2].freq = 14400U; freqdata_tab[2].data[0] = 3U; freqdata_tab[2].data[1] = 3U; freqdata_tab[2].data[2] = 3U; freqdata_tab[2].data[3] = 3U; freqdata_tab[2].data[4] = 12U; freqdata_tab[2].data[5] = 7U; freqdata_tab[3].freq = 16200U; freqdata_tab[3].data[0] = 3U; freqdata_tab[3].data[1] = 3U; freqdata_tab[3].data[2] = 3U; freqdata_tab[3].data[3] = 3U; freqdata_tab[3].data[4] = 13U; freqdata_tab[3].data[5] = 8U; freqdata_tab[4].freq = 18000U; freqdata_tab[4].data[0] = 2U; freqdata_tab[4].data[1] = 2U; freqdata_tab[4].data[2] = 2U; freqdata_tab[4].data[3] = 2U; freqdata_tab[4].data[4] = 14U; freqdata_tab[4].data[5] = 8U; freqdata_tab[5].freq = 19200U; freqdata_tab[5].data[0] = 1U; freqdata_tab[5].data[1] = 1U; freqdata_tab[5].data[2] = 1U; freqdata_tab[5].data[3] = 1U; freqdata_tab[5].data[4] = 14U; freqdata_tab[5].data[5] = 9U; b2062_upload_init_table(dev); b43_radio_write(dev, 72, 0); b43_radio_write(dev, 73, 0); b43_radio_write(dev, 74, 0); b43_radio_write(dev, 75, 0); b43_radio_write(dev, 16, 64); b43_radio_write(dev, 16, 0); b43_radio_write(dev, 93, 16); b43_radio_write(dev, 93, 0); if ((unsigned int )dev->phy.rev != 0U) { tmp___0 = b43_radio_read(dev, 2); b43_radio_write(dev, 16405, (int )((unsigned int )((int )tmp___0 >> 1) | 128U)); } else { } tmp___1 = b43_current_band(dev->wl); if ((unsigned int )tmp___1 == 0U) { b43_radio_set(dev, 87, 1); } else { b43_radio_mask(dev, 87, 65534); } crystalfreq = bus->chipco.pmu.crystalfreq * 1000U; __ret_warn_on = (bus->chipco.capabilities & 268435456U) == 0U; tmp___2 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___2 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_lp.c", 558); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); __ret_warn_on___0 = crystalfreq == 0U; tmp___3 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___3 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_lp.c", 559); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (crystalfreq <= 30000000U) { lpphy->pdiv = 1U; b43_radio_mask(dev, 16437, 65531); } else { lpphy->pdiv = 2U; b43_radio_set(dev, 16437, 4); } tmp = ((lpphy->pdiv * 800000000U + crystalfreq) / (crystalfreq * 2U) - 8U) & 255U; b43_radio_write(dev, 16443, (int )((u16 )tmp)); tmp = ((crystalfreq * 100U + lpphy->pdiv * 16000000U) / (lpphy->pdiv * 32000000U) - 1U) & 255U; b43_radio_write(dev, 16454, (int )((u16 )tmp)); tmp = (((lpphy->pdiv * 500000U + crystalfreq) * 2U) / (lpphy->pdiv * 2000000U) - 1U) & 255U; b43_radio_write(dev, 16455, (int )((u16 )tmp)); ref = ((lpphy->pdiv * 500U + crystalfreq) * 2U) / (lpphy->pdiv * 2000U); ref = ref & 65535U; i = 0U; goto ldv_54189; ldv_54188: ; if ((u32 )freqdata_tab[i].freq > ref) { fd = (struct b2062_freqdata const *)(& freqdata_tab) + (unsigned long )i; goto ldv_54187; } else { } i = i + 1U; ldv_54189: ; if (i <= 5U) { goto ldv_54188; } else { } ldv_54187: ; if ((unsigned long )fd == (unsigned long )((struct b2062_freqdata const *)0)) { fd = (struct b2062_freqdata const *)(& freqdata_tab) + 5UL; } else { } b43dbg(dev->wl, "b2062: Using crystal tab entry %u kHz.\n", (int )fd->freq); b43_radio_write(dev, 16444, (int )((u16 )((int )((short )((int )fd->data[1] << 4)) | (int )((short )fd->data[0])))); b43_radio_write(dev, 16445, (int )((u16 )((int )((short )((int )fd->data[3] << 4)) | (int )((short )fd->data[2])))); b43_radio_write(dev, 16446, (int )fd->data[4]); b43_radio_write(dev, 16447, (int )fd->data[5]); return; } } static void lpphy_2063_init(struct b43_wldev *dev ) { { b2063_upload_init_table(dev); b43_radio_write(dev, 32, 0); b43_radio_set(dev, 8, 56); b43_radio_write(dev, 86, 86); b43_radio_mask(dev, 243, 65533); b43_radio_write(dev, 82, 0); b43_radio_write(dev, 64, 32); b43_radio_write(dev, 67, 64); if ((unsigned int )dev->phy.rev == 2U) { b43_radio_write(dev, 78, 160); b43_radio_write(dev, 79, 160); b43_radio_write(dev, 77, 24); } else { b43_radio_write(dev, 78, 32); b43_radio_write(dev, 77, 32); } return; } } static struct lpphy_stx_table_entry const lpphy_stx_table[29U] = { {2U, 6U, 61U, 3U, 1U}, {1U, 12U, 76U, 1U, 1U}, {1U, 8U, 80U, 0U, 127U}, {0U, 8U, 68U, 0U, 255U}, {1U, 0U, 74U, 0U, 255U}, {0U, 4U, 77U, 0U, 255U}, {1U, 4U, 78U, 0U, 255U}, {0U, 12U, 79U, 0U, 15U}, {1U, 0U, 79U, 4U, 15U}, {3U, 0U, 73U, 0U, 15U}, {4U, 3U, 70U, 4U, 7U}, {3U, 15U, 70U, 0U, 1U}, {4U, 0U, 70U, 1U, 7U}, {3U, 8U, 72U, 4U, 7U}, {3U, 11U, 72U, 0U, 15U}, {3U, 4U, 73U, 4U, 15U}, {2U, 15U, 69U, 0U, 1U}, {5U, 13U, 82U, 4U, 7U}, {6U, 0U, 82U, 7U, 1U}, {5U, 3U, 65U, 5U, 7U}, {5U, 6U, 65U, 0U, 15U}, {5U, 10U, 66U, 5U, 7U}, {4U, 15U, 66U, 0U, 1U}, {5U, 0U, 66U, 1U, 7U}, {4U, 11U, 67U, 4U, 15U}, {4U, 7U, 67U, 0U, 15U}, {4U, 6U, 69U, 1U, 1U}, {2U, 7U, 64U, 4U, 15U}, {2U, 11U, 64U, 0U, 15U}}; static void lpphy_sync_stx(struct b43_wldev *dev ) { struct lpphy_stx_table_entry const *e ; unsigned int i ; u16 tmp ; { i = 0U; goto ldv_54211; ldv_54210: e = (struct lpphy_stx_table_entry const *)(& lpphy_stx_table) + (unsigned long )i; tmp = b43_radio_read(dev, (int )e->rf_addr); tmp = (u16 )((int )tmp >> (int )e->rf_shift); tmp = (u16 )((int )tmp << (int )e->phy_shift); b43_phy_maskset(dev, (int )((u16 )((int )((short )((unsigned int )((unsigned short )e->phy_offset) + 242U)) | 1024)), ~ ((int )((u16 )((int )e->mask << (int )e->phy_shift))), (int )tmp); i = i + 1U; ldv_54211: ; if (i <= 28U) { goto ldv_54210; } else { } return; } } static void lpphy_radio_init(struct b43_wldev *dev ) { { b43_phy_set(dev, 1186, 2); __const_udelay(4295UL); b43_phy_mask(dev, 1186, 65533); __const_udelay(4295UL); if ((unsigned int )dev->phy.radio_ver == 8290U) { lpphy_2062_init(dev); } else { lpphy_2063_init(dev); lpphy_sync_stx(dev); b43_phy_write(dev, 1264, 24448); b43_phy_write(dev, 1265, 0); } return; } } static void lpphy_set_rc_cap(struct b43_wldev *dev ) { struct b43_phy_lp *lpphy ; u8 rc_cap ; u8 __min1 ; u8 __min2 ; u8 __max1 ; u8 __max2 ; { lpphy = dev->phy.__annonCompField106.lp; rc_cap = (u8 )(((int )lpphy->rc_cap & 31) >> 1); if ((unsigned int )dev->phy.rev == 1U) { __min1 = (unsigned int )rc_cap + 5U; __min2 = 15U; rc_cap = (u8 )((int )__min1 < (int )__min2 ? __min1 : __min2); } else { } __max1 = (unsigned int )lpphy->rc_cap + 252U; __max2 = 128U; b43_radio_write(dev, 58, (int )((u16 )((int )__max1 > (int )__max2 ? __max1 : __max2))); b43_radio_write(dev, 79, (int )((unsigned int )rc_cap | 128U)); b43_radio_write(dev, 16487, (int )((u16 )((int )((short )(((int )lpphy->rc_cap & 31) >> 2)) | 128))); return; } } static u8 lpphy_get_bb_mult(struct b43_wldev *dev ) { u32 tmp ; { tmp = b43_lptab_read(dev, 536870999U); return ((u8 )((tmp & 65280U) >> 8)); } } static void lpphy_set_bb_mult(struct b43_wldev *dev , u8 bb_mult ) { { b43_lptab_write(dev, 536870999U, (u32 )((int )bb_mult << 8)); return; } } static void lpphy_set_deaf(struct b43_wldev *dev , bool user ) { struct b43_phy_lp *lpphy ; { lpphy = dev->phy.__annonCompField106.lp; if ((int )user) { lpphy->crs_usr_disable = 1; } else { lpphy->crs_sys_disable = 1; } b43_phy_maskset(dev, 1040, 65311, 128); return; } } static void lpphy_clear_deaf(struct b43_wldev *dev , bool user ) { struct b43_phy_lp *lpphy ; enum ieee80211_band tmp ; { lpphy = dev->phy.__annonCompField106.lp; if ((int )user) { lpphy->crs_usr_disable = 0; } else { lpphy->crs_sys_disable = 0; } if (! lpphy->crs_usr_disable && ! lpphy->crs_sys_disable) { tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { b43_phy_maskset(dev, 1040, 65311, 96); } else { b43_phy_maskset(dev, 1040, 65311, 32); } } else { } return; } } static void lpphy_set_trsw_over(struct b43_wldev *dev , bool tx , bool rx ) { u16 trsw ; { trsw = (u16 )((int )((short )((int )tx << 1)) | (int )((short )rx)); b43_phy_maskset(dev, 1101, 65532, (int )trsw); b43_phy_set(dev, 1100, 3); return; } } static void lpphy_disable_crs(struct b43_wldev *dev , bool user ) { { lpphy_set_deaf(dev, (int )user); lpphy_set_trsw_over(dev, 0, 1); b43_phy_mask(dev, 1101, 65531); b43_phy_set(dev, 1100, 4); b43_phy_mask(dev, 1101, 65527); b43_phy_set(dev, 1100, 8); b43_phy_set(dev, 1101, 16); b43_phy_set(dev, 1100, 16); b43_phy_mask(dev, 1101, 65503); b43_phy_set(dev, 1100, 32); b43_phy_mask(dev, 1101, 65471); b43_phy_set(dev, 1100, 64); b43_phy_set(dev, 1201, 7); b43_phy_set(dev, 1201, 56); b43_phy_mask(dev, 1201, 65343); b43_phy_set(dev, 1201, 256); b43_phy_mask(dev, 1201, 65023); b43_phy_write(dev, 1202, 0); b43_phy_write(dev, 1203, 1); b43_phy_write(dev, 1204, 32); b43_phy_mask(dev, 1201, 64511); b43_phy_mask(dev, 1201, 63487); b43_phy_write(dev, 1205, 0); b43_phy_write(dev, 1206, 17839); b43_phy_write(dev, 1200, 1023); return; } } static void lpphy_restore_crs(struct b43_wldev *dev , bool user ) { { lpphy_clear_deaf(dev, (int )user); b43_phy_mask(dev, 1100, 65408); b43_phy_mask(dev, 1200, 64512); return; } } static void lpphy_disable_rx_gain_override(struct b43_wldev *dev ) { enum ieee80211_band tmp ; { b43_phy_mask(dev, 1100, 65534); b43_phy_mask(dev, 1100, 65519); b43_phy_mask(dev, 1100, 65471); if ((unsigned int )dev->phy.rev > 1U) { b43_phy_mask(dev, 1200, 65279); tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { b43_phy_mask(dev, 1200, 64511); b43_phy_mask(dev, 1253, 65527); } else { } } else { b43_phy_mask(dev, 1200, 65023); } return; } } static void lpphy_enable_rx_gain_override(struct b43_wldev *dev ) { enum ieee80211_band tmp ; { b43_phy_set(dev, 1100, 1); b43_phy_set(dev, 1100, 16); b43_phy_set(dev, 1100, 64); if ((unsigned int )dev->phy.rev > 1U) { b43_phy_set(dev, 1200, 256); tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { b43_phy_set(dev, 1200, 1024); b43_phy_set(dev, 1253, 8); } else { } } else { b43_phy_set(dev, 1200, 512); } return; } } static void lpphy_disable_tx_gain_override(struct b43_wldev *dev ) { { if ((unsigned int )dev->phy.rev <= 1U) { b43_phy_mask(dev, 1200, 65279); } else { b43_phy_mask(dev, 1200, 65407); b43_phy_mask(dev, 1200, 49151); } b43_phy_mask(dev, 1083, 65471); return; } } static void lpphy_enable_tx_gain_override(struct b43_wldev *dev ) { { if ((unsigned int )dev->phy.rev <= 1U) { b43_phy_set(dev, 1200, 256); } else { b43_phy_set(dev, 1200, 128); b43_phy_set(dev, 1200, 16384); } b43_phy_set(dev, 1083, 64); return; } } static struct lpphy_tx_gains lpphy_get_tx_gains(struct b43_wldev *dev ) { struct lpphy_tx_gains gains ; u16 tmp ; u16 tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; { tmp___0 = b43_phy_read(dev, 1081); gains.dac = (u16 )(((int )tmp___0 & 896) >> 7); if ((unsigned int )dev->phy.rev <= 1U) { tmp___1 = b43_phy_read(dev, 1205); tmp = (unsigned int )tmp___1 & 2047U; gains.gm = (unsigned int )tmp & 7U; gains.pga = (u16 )(((int )tmp & 120) >> 3); gains.pad = (u16 )(((int )tmp & 1920) >> 7); } else { tmp = b43_phy_read(dev, 1205); tmp___2 = b43_phy_read(dev, 1275); gains.pad = (unsigned int )tmp___2 & 255U; gains.gm = (unsigned int )tmp & 255U; gains.pga = (u16 )((int )tmp >> 8); } return (gains); } } static void lpphy_set_dac_gain(struct b43_wldev *dev , u16 dac ) { u16 ctl ; u16 tmp ; { tmp = b43_phy_read(dev, 1081); ctl = (unsigned int )tmp & 3199U; ctl = (u16 )((int )((short )((int )dac << 7)) | (int )((short )ctl)); b43_phy_maskset(dev, 1081, 61440, (int )ctl); return; } } static u16 lpphy_get_pa_gain(struct b43_wldev *dev ) { u16 tmp ; { tmp = b43_phy_read(dev, 1275); return ((unsigned int )tmp & 127U); } } static void lpphy_set_pa_gain(struct b43_wldev *dev , u16 gain ) { { b43_phy_maskset(dev, 1275, 57407, (int )gain << 6U); b43_phy_maskset(dev, 1277, 33023, (int )gain << 8U); return; } } static void lpphy_set_tx_gains(struct b43_wldev *dev , struct lpphy_tx_gains gains ) { u16 rf_gain ; u16 pa_gain ; { if ((unsigned int )dev->phy.rev <= 1U) { rf_gain = (u16 )(((int )((short )((int )gains.pad << 7)) | (int )((short )((int )gains.pga << 3))) | (int )((short )gains.gm)); b43_phy_maskset(dev, 1205, 63488, (int )rf_gain); } else { pa_gain = lpphy_get_pa_gain(dev); b43_phy_write(dev, 1205, (int )((u16 )((int )((short )((int )gains.pga << 8)) | (int )((short )gains.gm)))); b43_phy_maskset(dev, 1275, 32768, (int )((u16 )((int )((short )gains.pad) | (int )((short )((int )pa_gain << 6))))); b43_phy_write(dev, 1276, (int )((u16 )((int )((short )((int )gains.pga << 8)) | (int )((short )gains.gm)))); b43_phy_maskset(dev, 1277, 32768, (int )((u16 )((int )((short )gains.pad) | (int )((short )((int )pa_gain << 8))))); } lpphy_set_dac_gain(dev, (int )gains.dac); lpphy_enable_tx_gain_override(dev); return; } } static void lpphy_rev0_1_set_rx_gain(struct b43_wldev *dev , u32 gain ) { u16 trsw ; u16 lna ; u16 ext_lna ; { trsw = (unsigned int )((u16 )gain) & 1U; lna = ((unsigned int )((u16 )gain) & 65532U) | (unsigned int )((u16 )((gain & 12U) >> 2)); ext_lna = (u16 )((gain & 2U) >> 1); b43_phy_maskset(dev, 1101, 65534, (int )trsw); b43_phy_maskset(dev, 1201, 64511, (int )ext_lna << 10U); b43_phy_maskset(dev, 1201, 63487, (int )ext_lna << 11U); b43_phy_write(dev, 1206, (int )lna); return; } } static void lpphy_rev2plus_set_rx_gain(struct b43_wldev *dev , u32 gain ) { u16 low_gain ; u16 high_gain ; u16 ext_lna ; u16 trsw ; u16 tmp ; enum ieee80211_band tmp___0 ; { low_gain = (u16 )gain; high_gain = (unsigned int )((u16 )(gain >> 16)) & 15U; ext_lna = (unsigned int )((u16 )(gain >> 21)) & 1U; trsw = (gain & 1048576U) == 0U; b43_phy_maskset(dev, 1101, 65534, (int )trsw); b43_phy_maskset(dev, 1201, 65023, (int )ext_lna << 9U); b43_phy_maskset(dev, 1201, 64511, (int )ext_lna << 10U); b43_phy_write(dev, 1206, (int )low_gain); b43_phy_maskset(dev, 1207, 65520, (int )high_gain); tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 0U) { tmp = (unsigned int )((u16 )(gain >> 2)) & 3U; b43_phy_maskset(dev, 1201, 59391, (int )tmp << 11U); b43_phy_maskset(dev, 1254, 65511, (int )tmp << 3U); } else { } return; } } static void lpphy_set_rx_gain(struct b43_wldev *dev , u32 gain ) { { if ((unsigned int )dev->phy.rev <= 1U) { lpphy_rev0_1_set_rx_gain(dev, gain); } else { lpphy_rev2plus_set_rx_gain(dev, gain); } lpphy_enable_rx_gain_override(dev); return; } } static void lpphy_set_rx_gain_by_index(struct b43_wldev *dev , u16 idx ) { u32 gain ; u32 tmp ; { tmp = b43_lptab_read(dev, (u32 )((int )((unsigned int )idx | 12288U) | 536870912)); gain = tmp; lpphy_set_rx_gain(dev, gain); return; } } static void lpphy_stop_ddfs(struct b43_wldev *dev ) { { b43_phy_mask(dev, 1207, 65533); b43_phy_mask(dev, 1096, 65503); return; } } static void lpphy_run_ddfs(struct b43_wldev *dev , int i_on , int q_on , int incr1 , int incr2 , int scale_idx ) { { lpphy_stop_ddfs(dev); b43_phy_mask(dev, 1208, 65408); b43_phy_mask(dev, 1208, 33023); b43_phy_maskset(dev, 1209, 65408, (int )((u16 )incr1)); b43_phy_maskset(dev, 1209, 33023, (int )((u16 )incr2) << 8U); b43_phy_maskset(dev, 1207, 65527, (int )((u16 )i_on) << 3U); b43_phy_maskset(dev, 1207, 65519, (int )((u16 )q_on) << 4U); b43_phy_maskset(dev, 1207, 65439, (int )((u16 )scale_idx) << 5U); b43_phy_mask(dev, 1207, 65531); b43_phy_set(dev, 1207, 2); b43_phy_set(dev, 1096, 32); return; } } static bool lpphy_rx_iq_est(struct b43_wldev *dev , u16 samples , u8 time , struct lpphy_iq_est *iq_est ) { int i ; u16 tmp ; u16 tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; u16 tmp___3 ; u16 tmp___4 ; u16 tmp___5 ; u16 tmp___6 ; { b43_phy_mask(dev, 1040, 65527); b43_phy_write(dev, 1154, (int )samples); b43_phy_maskset(dev, 1153, 65280, (int )time); b43_phy_mask(dev, 1153, 65279); b43_phy_set(dev, 1153, 512); i = 0; goto ldv_54347; ldv_54346: tmp = b43_phy_read(dev, 1153); if (((int )tmp & 512) == 0) { goto ldv_54345; } else { } msleep(1U); i = i + 1; ldv_54347: ; if (i <= 499) { goto ldv_54346; } else { } ldv_54345: tmp___0 = b43_phy_read(dev, 1153); if (((int )tmp___0 & 512) != 0) { b43_phy_set(dev, 1040, 8); return (0); } else { } tmp___1 = b43_phy_read(dev, 1155); iq_est->iq_prod = (u32 )tmp___1; iq_est->iq_prod = iq_est->iq_prod << 16; tmp___2 = b43_phy_read(dev, 1156); iq_est->iq_prod = iq_est->iq_prod | (u32 )tmp___2; tmp___3 = b43_phy_read(dev, 1157); iq_est->i_pwr = (u32 )tmp___3; iq_est->i_pwr = iq_est->i_pwr << 16; tmp___4 = b43_phy_read(dev, 1158); iq_est->i_pwr = iq_est->i_pwr | (u32 )tmp___4; tmp___5 = b43_phy_read(dev, 1159); iq_est->q_pwr = (u32 )tmp___5; iq_est->q_pwr = iq_est->q_pwr << 16; tmp___6 = b43_phy_read(dev, 1160); iq_est->q_pwr = iq_est->q_pwr | (u32 )tmp___6; b43_phy_set(dev, 1040, 8); return (1); } } static int lpphy_loopback(struct b43_wldev *dev ) { struct lpphy_iq_est iq_est ; int i ; int index ; u32 tmp ; bool tmp___0 ; int tmp___1 ; { index = -1; memset((void *)(& iq_est), 0, 12UL); lpphy_set_trsw_over(dev, 1, 1); b43_phy_set(dev, 1083, 1); b43_phy_mask(dev, 1084, 65534); b43_phy_set(dev, 1100, 2048); b43_phy_set(dev, 1101, 2048); b43_phy_set(dev, 1100, 8); b43_phy_set(dev, 1101, 8); b43_radio_write(dev, 79, 128); b43_phy_set(dev, 1100, 128); b43_phy_set(dev, 1101, 128); i = 0; goto ldv_54358; ldv_54357: lpphy_set_rx_gain_by_index(dev, (int )((u16 )i)); lpphy_run_ddfs(dev, 1, 1, 5, 5, 0); tmp___0 = lpphy_rx_iq_est(dev, 1000, 32, & iq_est); if (tmp___0) { tmp___1 = 0; } else { tmp___1 = 1; } if (tmp___1) { goto ldv_54355; } else { } tmp = (iq_est.i_pwr + iq_est.q_pwr) / 1000U; if (tmp > 4000U && tmp <= 9999U) { index = i; goto ldv_54356; } else { } ldv_54355: i = i + 1; ldv_54358: ; if (i <= 31) { goto ldv_54357; } else { } ldv_54356: lpphy_stop_ddfs(dev); return (index); } } static u32 lpphy_qdiv_roundup(u32 dividend , u32 divisor , u8 precision ) { u32 quotient ; u32 remainder ; { if (divisor == 0U) { return (0U); } else { } quotient = dividend / divisor; remainder = dividend % divisor; goto ldv_54367; ldv_54366: quotient = quotient << 1; if (remainder << 1 >= divisor) { quotient = quotient + 1U; remainder = (remainder << 1) - divisor; } else { } precision = (u8 )((int )precision - 1); ldv_54367: ; if ((unsigned int )precision != 0U) { goto ldv_54366; } else { } if (remainder << 1 >= divisor) { quotient = quotient + 1U; } else { } return (quotient); } } static void lpphy_read_tx_pctl_mode_from_hardware(struct b43_wldev *dev ) { struct b43_phy_lp *lpphy ; u16 ctl ; int __ret_warn_on ; long tmp ; { lpphy = dev->phy.__annonCompField106.lp; ctl = b43_phy_read(dev, 1188); switch ((int )ctl & 57344) { case 0: lpphy->txpctl_mode = 1; goto ldv_54375; case 32768: lpphy->txpctl_mode = 2; goto ldv_54375; case 57344: lpphy->txpctl_mode = 3; goto ldv_54375; default: lpphy->txpctl_mode = 0; __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_lp.c", 1116); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); goto ldv_54375; } ldv_54375: ; return; } } static void lpphy_write_tx_pctl_mode_to_hardware(struct b43_wldev *dev ) { struct b43_phy_lp *lpphy ; u16 ctl ; int __ret_warn_on ; long tmp ; { lpphy = dev->phy.__annonCompField106.lp; switch ((unsigned int )lpphy->txpctl_mode) { case 1U: ctl = 0U; goto ldv_54387; case 3U: ctl = 57344U; goto ldv_54387; case 2U: ctl = 32768U; goto ldv_54387; default: ctl = 0U; __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_lp.c", 1139); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); } ldv_54387: b43_phy_maskset(dev, 1188, 8191, (int )ctl); return; } } static void lpphy_set_tx_power_control(struct b43_wldev *dev , enum b43_lpphy_txpctl_mode mode ) { struct b43_phy_lp *lpphy ; enum b43_lpphy_txpctl_mode oldmode ; { lpphy = dev->phy.__annonCompField106.lp; lpphy_read_tx_pctl_mode_from_hardware(dev); oldmode = lpphy->txpctl_mode; if ((unsigned int )oldmode == (unsigned int )mode) { return; } else { } lpphy->txpctl_mode = mode; if ((unsigned int )oldmode == 3U) { } else if ((unsigned int )mode == 3U) { b43_phy_maskset(dev, 1188, 65408, (int )lpphy->tssi_idx); b43_phy_maskset(dev, 1189, 36863, 0); lpphy_disable_tx_gain_override(dev); lpphy->tx_pwr_idx_over = -1; } else { } if ((unsigned int )dev->phy.rev > 1U) { if ((unsigned int )mode == 3U) { b43_phy_set(dev, 1232, 2); } else { b43_phy_mask(dev, 1232, 65533); } } else { } lpphy_write_tx_pctl_mode_to_hardware(dev); return; } } static int b43_lpphy_op_switch_channel(struct b43_wldev *dev , unsigned int new_channel ) ; static void lpphy_rev0_1_rc_calib(struct b43_wldev *dev ) { struct b43_phy_lp *lpphy ; struct lpphy_iq_est iq_est ; struct lpphy_tx_gains tx_gains ; u32 ideal_pwr_table[21U] ; bool old_txg_ovr ; u8 old_bbmult ; u16 old_rf_ovr ; u16 old_rf_ovrval ; u16 old_afe_ovr ; u16 old_afe_ovrval ; u16 old_rf2_ovr ; u16 old_rf2_ovrval ; u16 old_phy_ctl ; enum b43_lpphy_txpctl_mode old_txpctl ; u32 normal_pwr ; u32 ideal_pwr ; u32 mean_sq_pwr ; u32 tmp ; u32 mean_sq_pwr_min ; int loopback ; int i ; int j ; int inner_sum ; int err ; u16 tmp___0 ; bool tmp___1 ; int tmp___2 ; { lpphy = dev->phy.__annonCompField106.lp; ideal_pwr_table[0] = 65536U; ideal_pwr_table[1] = 66903U; ideal_pwr_table[2] = 69165U; ideal_pwr_table[3] = 70624U; ideal_pwr_table[4] = 69410U; ideal_pwr_table[5] = 65380U; ideal_pwr_table[6] = 60834U; ideal_pwr_table[7] = 58836U; ideal_pwr_table[8] = 61393U; ideal_pwr_table[9] = 64488U; ideal_pwr_table[10] = 47032U; ideal_pwr_table[11] = 19253U; ideal_pwr_table[12] = 6750U; ideal_pwr_table[13] = 2571U; ideal_pwr_table[14] = 1092U; ideal_pwr_table[15] = 509U; ideal_pwr_table[16] = 255U; ideal_pwr_table[17] = 136U; ideal_pwr_table[18] = 76U; ideal_pwr_table[19] = 44U; ideal_pwr_table[20] = 26U; tmp = 0U; mean_sq_pwr_min = 0U; memset((void *)(& iq_est), 0, 12UL); err = b43_lpphy_op_switch_channel(dev, 7U); if (err != 0) { b43dbg(dev->wl, "RC calib: Failed to switch to channel 7, error = %d\n", err); } else { } tmp___0 = b43_phy_read(dev, 1083); old_txg_ovr = ((int )tmp___0 & 64) != 0; old_bbmult = lpphy_get_bb_mult(dev); if ((int )old_txg_ovr) { tx_gains = lpphy_get_tx_gains(dev); } else { } old_rf_ovr = b43_phy_read(dev, 1100); old_rf_ovrval = b43_phy_read(dev, 1101); old_afe_ovr = b43_phy_read(dev, 1083); old_afe_ovrval = b43_phy_read(dev, 1084); old_rf2_ovr = b43_phy_read(dev, 1200); old_rf2_ovrval = b43_phy_read(dev, 1201); old_phy_ctl = b43_phy_read(dev, 1096); lpphy_read_tx_pctl_mode_from_hardware(dev); old_txpctl = lpphy->txpctl_mode; lpphy_set_tx_power_control(dev, 1); lpphy_disable_crs(dev, 1); loopback = lpphy_loopback(dev); if (loopback == -1) { goto finish; } else { } lpphy_set_rx_gain_by_index(dev, (int )((u16 )loopback)); b43_phy_maskset(dev, 1096, 65471, 64); b43_phy_maskset(dev, 1201, 65528, 1); b43_phy_maskset(dev, 1201, 65479, 8); b43_phy_maskset(dev, 1201, 65343, 192); i = 128; goto ldv_54434; ldv_54433: b43_radio_write(dev, 58, (int )((u16 )i)); inner_sum = 0; j = 5; goto ldv_54431; ldv_54430: lpphy_run_ddfs(dev, 1, 1, j, j, 0); tmp___1 = lpphy_rx_iq_est(dev, 1000, 32, & iq_est); if (tmp___1) { tmp___2 = 0; } else { tmp___2 = 1; } if (tmp___2) { goto finish; } else { } mean_sq_pwr = iq_est.i_pwr + iq_est.q_pwr; if (j == 5) { tmp = mean_sq_pwr; } else { } ideal_pwr = ((ideal_pwr_table[j + -5] >> 3) + 1U) >> 1; normal_pwr = lpphy_qdiv_roundup(mean_sq_pwr, tmp, 12); mean_sq_pwr = ideal_pwr - normal_pwr; mean_sq_pwr = mean_sq_pwr * mean_sq_pwr; inner_sum = (int )((u32 )inner_sum + mean_sq_pwr); if (i == 128 || (u32 )inner_sum < mean_sq_pwr_min) { lpphy->rc_cap = (u8 )i; mean_sq_pwr_min = (u32 )inner_sum; } else { } j = j + 1; ldv_54431: ; if (j <= 25) { goto ldv_54430; } else { } i = i + 1; ldv_54434: ; if (i <= 159) { goto ldv_54433; } else { } lpphy_stop_ddfs(dev); finish: lpphy_restore_crs(dev, 1); b43_phy_write(dev, 1101, (int )old_rf_ovrval); b43_phy_write(dev, 1100, (int )old_rf_ovr); b43_phy_write(dev, 1084, (int )old_afe_ovrval); b43_phy_write(dev, 1083, (int )old_afe_ovr); b43_phy_write(dev, 1201, (int )old_rf2_ovrval); b43_phy_write(dev, 1200, (int )old_rf2_ovr); b43_phy_write(dev, 1096, (int )old_phy_ctl); lpphy_set_bb_mult(dev, (int )old_bbmult); if ((int )old_txg_ovr) { lpphy_set_tx_gains(dev, tx_gains); } else { } lpphy_set_tx_power_control(dev, old_txpctl); if ((unsigned int )lpphy->rc_cap != 0U) { lpphy_set_rc_cap(dev); } else { } return; } } static void lpphy_rev2plus_rc_calib(struct b43_wldev *dev ) { struct ssb_bus *bus ; u32 crystal_freq ; u8 tmp ; u16 tmp___0 ; int i ; u16 tmp___1 ; u16 tmp___2 ; u16 tmp___3 ; u16 tmp___4 ; u16 tmp___5 ; { bus = ((dev->dev)->__annonCompField105.sdev)->bus; crystal_freq = bus->chipco.pmu.crystalfreq * 1000U; tmp___0 = b43_radio_read(dev, 58); tmp = (u8 )tmp___0; b43_radio_write(dev, 58, 0); b43_radio_write(dev, 90, 126); b43_radio_mask(dev, 26, 247); b43_radio_write(dev, 90, 124); b43_radio_write(dev, 91, 21); b43_radio_write(dev, 92, 112); b43_radio_write(dev, 93, 82); b43_radio_write(dev, 94, 1); b43_radio_write(dev, 90, 125); i = 0; goto ldv_54445; ldv_54444: tmp___1 = b43_radio_read(dev, 95); if (((int )tmp___1 & 2) != 0) { goto ldv_54443; } else { } msleep(1U); i = i + 1; ldv_54445: ; if (i <= 9999) { goto ldv_54444; } else { } ldv_54443: tmp___2 = b43_radio_read(dev, 95); if (((int )tmp___2 & 2) == 0) { b43_radio_write(dev, 58, (int )tmp); } else { } tmp___3 = b43_radio_read(dev, 85); tmp = (u8 )tmp___3; b43_radio_write(dev, 85, 0); b43_radio_write(dev, 90, 126); b43_radio_write(dev, 90, 124); b43_radio_write(dev, 91, 85); b43_radio_write(dev, 92, 118); if (crystal_freq == 24000000U) { b43_radio_write(dev, 93, 252); b43_radio_write(dev, 94, 0); } else { b43_radio_write(dev, 93, 19); b43_radio_write(dev, 94, 1); } b43_radio_write(dev, 82, 125); i = 0; goto ldv_54448; ldv_54447: tmp___4 = b43_radio_read(dev, 95); if (((int )tmp___4 & 2) != 0) { goto ldv_54446; } else { } msleep(1U); i = i + 1; ldv_54448: ; if (i <= 9999) { goto ldv_54447; } else { } ldv_54446: tmp___5 = b43_radio_read(dev, 95); if (((int )tmp___5 & 2) == 0) { b43_radio_write(dev, 85, (int )tmp); } else { } b43_radio_write(dev, 90, 126); return; } } static void lpphy_calibrate_rc(struct b43_wldev *dev ) { struct b43_phy_lp *lpphy ; enum ieee80211_band tmp ; { lpphy = dev->phy.__annonCompField106.lp; if ((unsigned int )dev->phy.rev > 1U) { lpphy_rev2plus_rc_calib(dev); } else if ((unsigned int )lpphy->rc_cap == 0U) { tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { lpphy_rev0_1_rc_calib(dev); } else { } } else { lpphy_set_rc_cap(dev); } return; } } static void b43_lpphy_op_set_rx_antenna(struct b43_wldev *dev , int antenna ) { int __ret_warn_on ; long tmp ; long tmp___0 ; u64 tmp___1 ; u64 tmp___2 ; { if ((unsigned int )dev->phy.rev > 1U) { return; } else { } __ret_warn_on = antenna > 3; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_lp.c", 1359); } else { } tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { return; } else { } tmp___1 = b43_hf_read(dev); b43_hf_write(dev, tmp___1 & 0xfffffffffffffffeULL); b43_phy_maskset(dev, 1040, 65533, (int )((u16 )antenna) & 2); b43_phy_maskset(dev, 1040, 65534, (int )((u16 )antenna) & 1); tmp___2 = b43_hf_read(dev); b43_hf_write(dev, tmp___2 | 1ULL); (dev->phy.__annonCompField106.lp)->antenna = antenna; return; } } static void lpphy_set_tx_iqcc(struct b43_wldev *dev , u16 a , u16 b ) { u16 tmp[2U] ; { tmp[0] = a; tmp[1] = b; b43_lptab_write_bulk(dev, 536870992U, 2U, (void const *)(& tmp)); return; } } static void lpphy_set_tx_power_by_index(struct b43_wldev *dev , u8 index ) { struct b43_phy_lp *lpphy ; struct lpphy_tx_gains gains ; u32 iq_comp ; u32 tx_gain ; u32 coeff ; u32 rf_power ; { lpphy = dev->phy.__annonCompField106.lp; lpphy->tx_pwr_idx_over = (s8 )index; lpphy_read_tx_pctl_mode_from_hardware(dev); if ((unsigned int )lpphy->txpctl_mode != 1U) { lpphy_set_tx_power_control(dev, 2); } else { } if ((unsigned int )dev->phy.rev > 1U) { iq_comp = b43_lptab_read(dev, (u32 )(((int )index + 320) | 805313536)); tx_gain = b43_lptab_read(dev, (u32 )(((int )index + 192) | 805313536)); gains.pad = (unsigned int )((u16 )(tx_gain >> 16)) & 255U; gains.gm = (unsigned int )((u16 )tx_gain) & 255U; gains.pga = (unsigned int )((u16 )(tx_gain >> 8)) & 255U; gains.dac = (u16 )(iq_comp >> 28); lpphy_set_tx_gains(dev, gains); } else { iq_comp = b43_lptab_read(dev, (u32 )(((int )index + 320) | 805316608)); tx_gain = b43_lptab_read(dev, (u32 )(((int )index + 192) | 805316608)); b43_phy_maskset(dev, 1205, 63488, (int )((u16 )(tx_gain >> 4)) & 32767); lpphy_set_dac_gain(dev, (int )((u16 )tx_gain) & 7); lpphy_set_pa_gain(dev, (int )((u16 )(tx_gain >> 24)) & 127); } lpphy_set_bb_mult(dev, (int )((u8 )(iq_comp >> 20))); lpphy_set_tx_iqcc(dev, (int )((u16 )(iq_comp >> 10)) & 1023, (int )((u16 )iq_comp) & 1023); if ((unsigned int )dev->phy.rev > 1U) { coeff = b43_lptab_read(dev, (u32 )(((int )index + 448) | 805313536)); } else { coeff = b43_lptab_read(dev, (u32 )(((int )index + 448) | 805316608)); } b43_lptab_write(dev, 536870997U, coeff & 65535U); if ((unsigned int )dev->phy.rev > 1U) { rf_power = b43_lptab_read(dev, (u32 )(((int )index + 576) | 805313536)); b43_phy_maskset(dev, 1235, 65280, (int )((u16 )rf_power)); } else { } lpphy_enable_tx_gain_override(dev); return; } } static void lpphy_btcoex_override(struct b43_wldev *dev ) { { b43_write16(dev, 1716, 3); b43_write16(dev, 1720, 255); return; } } static void b43_lpphy_op_software_rfkill(struct b43_wldev *dev , bool blocked ) { { if ((int )blocked) { if ((unsigned int )dev->phy.rev > 1U) { b43_phy_mask(dev, 1101, 33791); b43_phy_set(dev, 1100, 7936); b43_phy_mask(dev, 1207, 33023); b43_phy_mask(dev, 1201, 57343); b43_phy_set(dev, 1200, 2056); } else { b43_phy_mask(dev, 1101, 57599); b43_phy_set(dev, 1100, 7936); b43_phy_mask(dev, 1201, 64767); b43_phy_set(dev, 1200, 24); } } else { b43_phy_mask(dev, 1100, 57599); if ((unsigned int )dev->phy.rev > 1U) { b43_phy_mask(dev, 1200, 63479); } else { b43_phy_mask(dev, 1200, 65511); } } return; } } static void lpphy_set_analog_filter(struct b43_wldev *dev , int channel ) { struct b43_phy_lp *lpphy ; u16 tmp ; { lpphy = dev->phy.__annonCompField106.lp; tmp = channel == 14; if ((unsigned int )dev->phy.rev <= 1U) { b43_phy_maskset(dev, 1096, 64767, (int )tmp << 9U); if ((unsigned int )dev->phy.rev == 1U && (unsigned int )lpphy->rc_cap != 0U) { lpphy_set_rc_cap(dev); } else { } } else { b43_radio_write(dev, 85, 63); } return; } } static void lpphy_tx_pctl_init_sw(struct b43_wldev *dev ) { struct lpphy_tx_gains gains ; enum ieee80211_band tmp ; { tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { gains.gm = 4U; gains.pad = 12U; gains.pga = 12U; gains.dac = 0U; } else { gains.gm = 7U; gains.pad = 14U; gains.pga = 15U; gains.dac = 0U; } lpphy_set_tx_gains(dev, gains); lpphy_set_bb_mult(dev, 150); return; } } static void lpphy_tx_pctl_init(struct b43_wldev *dev ) { { lpphy_tx_pctl_init_sw(dev); return; } } static void lpphy_pr41573_workaround(struct b43_wldev *dev ) { struct b43_phy_lp *lpphy ; u32 *saved_tab ; unsigned int saved_tab_size ; enum b43_lpphy_txpctl_mode txpctl_mode ; s8 tx_pwr_idx_over ; u16 tssi_npt ; u16 tssi_idx ; void *tmp ; { lpphy = dev->phy.__annonCompField106.lp; saved_tab_size = 256U; tmp = kcalloc((size_t )saved_tab_size, 4UL, 208U); saved_tab = (u32 *)tmp; if ((unsigned long )saved_tab == (unsigned long )((u32 *)0U)) { b43err(dev->wl, "PR41573 failed. Out of memory!\n"); return; } else { } lpphy_read_tx_pctl_mode_from_hardware(dev); txpctl_mode = lpphy->txpctl_mode; tx_pwr_idx_over = lpphy->tx_pwr_idx_over; tssi_npt = lpphy->tssi_npt; tssi_idx = lpphy->tssi_idx; if ((unsigned int )dev->phy.rev <= 1U) { b43_lptab_read_bulk(dev, 805316928U, saved_tab_size, (void *)saved_tab); } else { b43_lptab_read_bulk(dev, 805313856U, saved_tab_size, (void *)saved_tab); } lpphy_table_init(dev); lpphy_baseband_init(dev); lpphy_tx_pctl_init(dev); b43_lpphy_op_software_rfkill(dev, 0); lpphy_set_tx_power_control(dev, 1); if ((unsigned int )dev->phy.rev <= 1U) { b43_lptab_write_bulk(dev, 805316928U, saved_tab_size, (void const *)saved_tab); } else { b43_lptab_write_bulk(dev, 805313856U, saved_tab_size, (void const *)saved_tab); } b43_write16(dev, 1008, (int )lpphy->channel); lpphy->tssi_npt = tssi_npt; lpphy->tssi_idx = tssi_idx; lpphy_set_analog_filter(dev, (int )lpphy->channel); if ((int )tx_pwr_idx_over != -1) { lpphy_set_tx_power_by_index(dev, (int )((u8 )tx_pwr_idx_over)); } else { } if ((unsigned int )lpphy->rc_cap != 0U) { lpphy_set_rc_cap(dev); } else { } b43_lpphy_op_set_rx_antenna(dev, lpphy->antenna); lpphy_set_tx_power_control(dev, txpctl_mode); kfree((void const *)saved_tab); return; } } static struct lpphy_rx_iq_comp const lpphy_5354_iq_table[14U] = { {1U, -66, 15}, {2U, -66, 15}, {3U, -66, 15}, {4U, -66, 15}, {5U, -66, 15}, {6U, -66, 15}, {7U, -66, 14}, {8U, -66, 14}, {9U, -66, 14}, {10U, -66, 14}, {11U, -66, 14}, {12U, -66, 13}, {13U, -66, 13}, {14U, -66, 13}}; static struct lpphy_rx_iq_comp const lpphy_rev0_1_iq_table[51U] = { {1U, -64, 13}, {2U, -64, 13}, {3U, -64, 13}, {4U, -64, 13}, {5U, -64, 12}, {6U, -64, 12}, {7U, -64, 12}, {8U, -64, 12}, {9U, -64, 12}, {10U, -64, 11}, {11U, -64, 11}, {12U, -64, 11}, {13U, -64, 11}, {14U, -64, 10}, {34U, -62, 24}, {38U, -62, 24}, {42U, -62, 24}, {46U, -62, 23}, {36U, -62, 24}, {40U, -62, 24}, {44U, -62, 23}, {48U, -62, 23}, {52U, -62, 23}, {56U, -62, 22}, {60U, -62, 22}, {64U, -62, 22}, {100U, -62, 16}, {104U, -62, 16}, {108U, -62, 15}, {112U, -62, 14}, {116U, -62, 14}, {120U, -62, 13}, {124U, -62, 12}, {128U, -62, 12}, {132U, -62, 12}, {136U, -62, 11}, {140U, -62, 10}, {149U, -61, 9}, {153U, -61, 9}, {157U, -61, 9}, {161U, -61, 8}, {165U, -61, 8}, {184U, -62, 25}, {188U, -62, 25}, {192U, -62, 25}, {196U, -62, 25}, {200U, -62, 25}, {204U, -62, 25}, {208U, -62, 25}, {212U, -62, 25}, {216U, -62, 26}}; static struct lpphy_rx_iq_comp const lpphy_rev2plus_iq_comp = {0U, -64, 0}; static int lpphy_calc_rx_iq_comp(struct b43_wldev *dev , u16 samples ) { struct lpphy_iq_est iq_est ; u16 c0 ; u16 c1 ; int prod ; int ipwr ; int qpwr ; int prod_msb ; int q_msb ; int tmp1 ; int tmp2 ; int tmp3 ; int tmp4 ; int ret ; bool tmp ; long ret___0 ; int __x___0 ; long ret___1 ; int __x___2 ; unsigned long tmp___0 ; { c1 = b43_phy_read(dev, 1182); c0 = (u16 )((int )c1 >> 8); c1 = (u16 )((unsigned int )c1 | 255U); b43_phy_maskset(dev, 1182, 65280, 192); b43_phy_mask(dev, 1182, 255); tmp = lpphy_rx_iq_est(dev, (int )samples, 32, & iq_est); ret = (int )tmp; if (ret == 0) { goto out; } else { } prod = (int )iq_est.iq_prod; ipwr = (int )iq_est.i_pwr; qpwr = (int )iq_est.q_pwr; if (ipwr + qpwr <= 1) { ret = 0; goto out; } else { } __x___0 = prod; ret___0 = (long )(__x___0 < 0 ? - __x___0 : __x___0); prod_msb = fls((int )ret___0); __x___2 = qpwr; ret___1 = (long )(__x___2 < 0 ? - __x___2 : __x___2); q_msb = fls((int )ret___1); tmp1 = prod_msb + -20; if (tmp1 >= 0) { tmp3 = ((prod << (30 - prod_msb)) + (ipwr >> (tmp1 + 1))) / (ipwr >> tmp1); } else { tmp3 = ((prod << (30 - prod_msb)) + (ipwr << ~ tmp1)) / (ipwr << - tmp1); } tmp2 = q_msb + -11; if (tmp2 >= 0) { tmp4 = (qpwr << (31 - q_msb)) / (ipwr >> tmp2); } else { tmp4 = (qpwr << (31 - q_msb)) / (ipwr << - tmp2); } tmp4 = tmp4 - tmp3 * tmp3; tmp___0 = int_sqrt((unsigned long )tmp4); tmp4 = (int )(- ((unsigned int )tmp___0)); c0 = (u16 )(tmp3 >> 3); c1 = (u16 )(tmp4 >> 4); out: b43_phy_maskset(dev, 1182, 65280, (int )c1); b43_phy_maskset(dev, 1182, 255, (int )c0 << 8U); return (ret); } } static void lpphy_run_samples(struct b43_wldev *dev , u16 samples , u16 loops , u16 wait ) { { b43_phy_maskset(dev, 1185, 65472, (int )((unsigned int )samples + 65535U)); if ((unsigned int )loops != 65535U) { loops = (u16 )((int )loops - 1); } else { } b43_phy_maskset(dev, 1184, 61440, (int )loops); b43_phy_maskset(dev, 1185, 63, (int )wait << 6U); b43_phy_set(dev, 1180, 1); return; } } static void lpphy_start_tx_tone(struct b43_wldev *dev , s32 freq , u16 max ) { struct b43_phy_lp *lpphy ; u16 buf[64U] ; int i ; int samples ; int angle ; int rotation ; struct b43_c32 sample ; long ret ; int __x___0 ; int __ret_warn_on ; long tmp ; long tmp___0 ; long ret___0 ; int __x___2 ; { lpphy = dev->phy.__annonCompField106.lp; samples = 0; angle = 0; rotation = ((freq * 36) / 20 << 16) / 100; lpphy->tx_tone_freq = freq; if (freq != 0) { i = 1; goto ldv_54581; ldv_54580: __x___0 = freq; ret = (long )(__x___0 < 0 ? - __x___0 : __x___0); samples = (int )((long )(i * 20000) / ret); __ret_warn_on = samples > 63; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_lp.c", 1793); } else { } tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { return; } else { } i = i + 1; ldv_54581: __x___2 = freq; ret___0 = (long )(__x___2 < 0 ? - __x___2 : __x___2); if ((long )samples * ret___0 != (long )(i * 20000)) { goto ldv_54580; } else { } } else { samples = 2; } i = 0; goto ldv_54584; ldv_54583: sample = b43_cordic(angle); angle = angle + rotation; buf[i] = 0U; buf[i] = buf[i]; i = i + 1; ldv_54584: ; if (i < samples) { goto ldv_54583; } else { } b43_lptab_write_bulk(dev, 536876032U, (unsigned int )samples, (void const *)(& buf)); lpphy_run_samples(dev, (int )((u16 )samples), 65535, 0); return; } } static void lpphy_stop_tx_tone(struct b43_wldev *dev ) { struct b43_phy_lp *lpphy ; int i ; u16 tmp ; { lpphy = dev->phy.__annonCompField106.lp; lpphy->tx_tone_freq = 0; b43_phy_mask(dev, 1184, 61440); i = 0; goto ldv_54593; ldv_54592: tmp = b43_phy_read(dev, 1180); if (((int )tmp & 1) == 0) { goto ldv_54591; } else { } __const_udelay(429500UL); i = i + 1; ldv_54593: ; if (i <= 30) { goto ldv_54592; } else { } ldv_54591: ; return; } } static void lpphy_papd_cal(struct b43_wldev *dev , struct lpphy_tx_gains gains , int mode , bool useindex , u8 index ) { { return; } } static void lpphy_papd_cal_txpwr(struct b43_wldev *dev ) { struct b43_phy_lp *lpphy ; struct lpphy_tx_gains gains ; struct lpphy_tx_gains oldgains ; int old_txpctl ; int old_afe_ovr ; int old_rf ; int old_bbmult ; u16 tmp ; u16 tmp___0 ; u8 tmp___1 ; { lpphy = dev->phy.__annonCompField106.lp; lpphy_read_tx_pctl_mode_from_hardware(dev); old_txpctl = (int )lpphy->txpctl_mode; tmp = b43_phy_read(dev, 1083); old_afe_ovr = (int )tmp & 64; if (old_afe_ovr != 0) { oldgains = lpphy_get_tx_gains(dev); } else { } tmp___0 = b43_phy_read(dev, 1235); old_rf = (int )tmp___0 & 255; tmp___1 = lpphy_get_bb_mult(dev); old_bbmult = (int )tmp___1; lpphy_set_tx_power_control(dev, 1); if ((unsigned int )(dev->dev)->chip_id == 17189U && (unsigned int )(dev->dev)->chip_rev == 0U) { lpphy_papd_cal(dev, gains, 0, 1, 30); } else { lpphy_papd_cal(dev, gains, 0, 1, 65); } if (old_afe_ovr != 0) { lpphy_set_tx_gains(dev, oldgains); } else { } lpphy_set_bb_mult(dev, (int )((u8 )old_bbmult)); lpphy_set_tx_power_control(dev, (enum b43_lpphy_txpctl_mode )old_txpctl); b43_phy_maskset(dev, 1235, 65280, (int )((u16 )old_rf)); return; } } static int lpphy_rx_iq_cal(struct b43_wldev *dev , bool noise , bool tx , bool rx , bool pa , struct lpphy_tx_gains *gains ) { struct b43_phy_lp *lpphy ; struct lpphy_rx_iq_comp const *iqcomp ; struct lpphy_tx_gains nogains ; struct lpphy_tx_gains oldgains ; u16 tmp ; int i ; int ret ; int __ret_warn_on ; long tmp___0 ; long tmp___1 ; enum ieee80211_band tmp___2 ; u16 tmp___3 ; { lpphy = dev->phy.__annonCompField106.lp; iqcomp = (struct lpphy_rx_iq_comp const *)0; memset((void *)(& nogains), 0, 8UL); memset((void *)(& oldgains), 0, 8UL); if ((unsigned int )(dev->dev)->chip_id == 21332U) { i = 0; goto ldv_54629; ldv_54628: ; if ((int )((unsigned char )lpphy_5354_iq_table[i].chan) == (int )lpphy->channel) { iqcomp = (struct lpphy_rx_iq_comp const *)(& lpphy_5354_iq_table) + (unsigned long )i; } else { } i = i + 1; ldv_54629: ; if ((unsigned int )i <= 13U) { goto ldv_54628; } else { } } else if ((unsigned int )dev->phy.rev > 1U) { iqcomp = & lpphy_rev2plus_iq_comp; } else { i = 0; goto ldv_54634; ldv_54633: ; if ((int )((unsigned char )lpphy_rev0_1_iq_table[i].chan) == (int )lpphy->channel) { iqcomp = (struct lpphy_rx_iq_comp const *)(& lpphy_rev0_1_iq_table) + (unsigned long )i; } else { } i = i + 1; ldv_54634: ; if ((unsigned int )i <= 50U) { goto ldv_54633; } else { } } __ret_warn_on = (unsigned long )iqcomp == (unsigned long )((struct lpphy_rx_iq_comp const *)0); tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_lp.c", 1890); } else { } tmp___1 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___1 != 0L) { return (0); } else { } b43_phy_maskset(dev, 1182, 65280, (int )((u16 )iqcomp->c1)); b43_phy_maskset(dev, 1182, 255, (int )((u16 )iqcomp->c0) << 8U); if ((int )noise) { tx = 1; rx = 0; pa = 0; } else { } lpphy_set_trsw_over(dev, (int )tx, (int )rx); tmp___2 = b43_current_band(dev->wl); if ((unsigned int )tmp___2 == 0U) { b43_phy_set(dev, 1100, 8); b43_phy_maskset(dev, 1101, 65527, (int )((u16 )pa) << 3U); } else { b43_phy_set(dev, 1100, 32); b43_phy_maskset(dev, 1101, 65503, (int )((u16 )pa) << 5U); } tmp___3 = b43_phy_read(dev, 1083); tmp = (unsigned int )tmp___3 & 64U; if ((int )noise) { lpphy_set_rx_gain(dev, 11613U); } else { if ((unsigned int )tmp != 0U) { oldgains = lpphy_get_tx_gains(dev); } else { } if ((unsigned long )gains == (unsigned long )((struct lpphy_tx_gains *)0)) { gains = & nogains; } else { } lpphy_set_tx_gains(dev, *gains); } b43_phy_mask(dev, 1083, 65534); b43_phy_mask(dev, 1084, 65534); b43_phy_set(dev, 1100, 2048); b43_phy_set(dev, 1101, 2048); lpphy_set_deaf(dev, 0); if ((int )noise) { ret = lpphy_calc_rx_iq_comp(dev, 65520); } else { lpphy_start_tx_tone(dev, 4000, 100); ret = lpphy_calc_rx_iq_comp(dev, 16384); lpphy_stop_tx_tone(dev); } lpphy_clear_deaf(dev, 0); b43_phy_mask(dev, 1100, 65532); b43_phy_mask(dev, 1100, 65527); b43_phy_mask(dev, 1100, 65503); if (! noise) { if ((unsigned int )tmp != 0U) { lpphy_set_tx_gains(dev, oldgains); } else { lpphy_disable_tx_gain_override(dev); } } else { } lpphy_disable_rx_gain_override(dev); b43_phy_mask(dev, 1083, 65534); b43_phy_mask(dev, 1084, 63487); return (ret); } } static void lpphy_calibration(struct b43_wldev *dev ) { struct b43_phy_lp *lpphy ; enum b43_lpphy_txpctl_mode saved_pctl_mode ; bool full_cal ; { lpphy = dev->phy.__annonCompField106.lp; full_cal = 0; if ((int )lpphy->full_calib_chan != (int )lpphy->channel) { full_cal = 1; lpphy->full_calib_chan = lpphy->channel; } else { } b43_mac_suspend(dev); lpphy_btcoex_override(dev); if ((unsigned int )dev->phy.rev > 1U) { lpphy_save_dig_flt_state(dev); } else { } lpphy_read_tx_pctl_mode_from_hardware(dev); saved_pctl_mode = lpphy->txpctl_mode; lpphy_set_tx_power_control(dev, 1); if ((unsigned int )dev->phy.rev == 0U && (unsigned int )saved_pctl_mode != 1U) { lpphy_pr41573_workaround(dev); } else { } if ((unsigned int )dev->phy.rev > 1U && (int )full_cal) { lpphy_papd_cal_txpwr(dev); } else { } lpphy_set_tx_power_control(dev, saved_pctl_mode); if ((unsigned int )dev->phy.rev > 1U) { lpphy_restore_dig_flt_state(dev); } else { } lpphy_rx_iq_cal(dev, 1, 1, 0, 0, (struct lpphy_tx_gains *)0); b43_mac_enable(dev); return; } } static void b43_lpphy_op_maskset(struct b43_wldev *dev , u16 reg , u16 mask , u16 set ) { u16 tmp ; { b43_write16f(dev, 1020, (int )reg); tmp = b43_read16(dev, 1022); b43_write16(dev, 1022, ((int )tmp & (int )mask) | (int )set); return; } } static u16 b43_lpphy_op_radio_read(struct b43_wldev *dev , u16 reg ) { int __ret_warn_on ; long tmp ; u16 tmp___0 ; { __ret_warn_on = (unsigned int )reg == 1U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_lp.c", 1999); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if ((unsigned int )dev->phy.rev <= 1U) { if ((unsigned int )reg != 16385U) { reg = (u16 )((unsigned int )reg | 256U); } else { } } else { reg = (u16 )((unsigned int )reg | 512U); } b43_write16f(dev, 1014, (int )reg); tmp___0 = b43_read16(dev, 1018); return (tmp___0); } } static void b43_lpphy_op_radio_write(struct b43_wldev *dev , u16 reg , u16 value ) { int __ret_warn_on ; long tmp ; { __ret_warn_on = (unsigned int )reg == 1U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_lp.c", 2014); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_write16f(dev, 1014, (int )reg); b43_write16(dev, 1018, (int )value); return; } } static struct b206x_channel const b2062_chantbl[51U] = { {1U, 2412U, {255U, 255U, 181U, 27U, 36U, 50U, 50U, 136U, 136U}}, {2U, 2417U, {255U, 255U, 181U, 27U, 36U, 50U, 50U, 136U, 136U}}, {3U, 2422U, {255U, 255U, 181U, 27U, 36U, 50U, 50U, 136U, 136U}}, {4U, 2427U, {255U, 255U, 181U, 27U, 36U, 50U, 50U, 136U, 136U}}, {5U, 2432U, {255U, 255U, 181U, 27U, 36U, 50U, 50U, 136U, 136U}}, {6U, 2437U, {255U, 255U, 181U, 27U, 36U, 50U, 50U, 136U, 136U}}, {7U, 2442U, {255U, 255U, 181U, 27U, 36U, 50U, 50U, 136U, 136U}}, {8U, 2447U, {255U, 255U, 181U, 27U, 36U, 50U, 50U, 136U, 136U}}, {9U, 2452U, {255U, 255U, 181U, 27U, 36U, 50U, 50U, 136U, 136U}}, {10U, 2457U, {255U, 255U, 181U, 27U, 36U, 50U, 50U, 136U, 136U}}, {11U, 2462U, {255U, 255U, 181U, 27U, 36U, 50U, 50U, 136U, 136U}}, {12U, 2467U, {255U, 255U, 181U, 27U, 36U, 50U, 50U, 136U, 136U}}, {13U, 2472U, {255U, 255U, 181U, 27U, 36U, 50U, 50U, 136U, 136U}}, {14U, 2484U, {255U, 255U, 181U, 27U, 36U, 50U, 50U, 136U, 136U}}, {34U, 5170U, {0U, 34U, 32U, 132U, 60U, 119U, 53U, 255U, 136U}}, {38U, 5190U, {0U, 17U, 16U, 131U, 60U, 119U, 53U, 255U, 136U}}, {42U, 5210U, {0U, 17U, 16U, 131U, 60U, 119U, 53U, 255U, 136U}}, {46U, 5230U, {0U, 0U, 0U, 131U, 60U, 119U, 53U, 255U, 136U}}, {36U, 5180U, {0U, 17U, 32U, 131U, 60U, 119U, 53U, 255U, 136U}}, {40U, 5200U, {0U, 17U, 16U, 132U, 60U, 119U, 53U, 255U, 136U}}, {44U, 5220U, {0U, 17U, 0U, 131U, 60U, 119U, 53U, 255U, 136U}}, {48U, 5240U, {0U, 0U, 0U, 131U, 60U, 119U, 53U, 255U, 136U}}, {52U, 5260U, {0U, 0U, 0U, 131U, 60U, 119U, 53U, 255U, 136U}}, {56U, 5280U, {0U, 0U, 0U, 131U, 60U, 119U, 53U, 255U, 136U}}, {60U, 5300U, {0U, 0U, 0U, 99U, 60U, 119U, 53U, 255U, 136U}}, {64U, 5320U, {0U, 0U, 0U, 98U, 60U, 119U, 53U, 255U, 136U}}, {100U, 5500U, {0U, 0U, 0U, 48U, 60U, 119U, 55U, 255U, 136U}}, {104U, 5520U, {0U, 0U, 0U, 32U, 60U, 119U, 55U, 255U, 136U}}, {108U, 5540U, {0U, 0U, 0U, 32U, 60U, 119U, 55U, 255U, 136U}}, {112U, 5560U, {0U, 0U, 0U, 32U, 60U, 119U, 55U, 255U, 136U}}, {116U, 5580U, {0U, 0U, 0U, 16U, 60U, 119U, 55U, 255U, 136U}}, {120U, 5600U, {0U, 0U, 0U, 0U, 60U, 119U, 55U, 255U, 136U}}, {124U, 5620U, {0U, 0U, 0U, 0U, 60U, 119U, 55U, 255U, 136U}}, {128U, 5640U, {0U, 0U, 0U, 0U, 60U, 119U, 55U, 255U, 136U}}, {132U, 5660U, {0U, 0U, 0U, 0U, 60U, 119U, 55U, 255U, 136U}}, {136U, 5680U, {0U, 0U, 0U, 0U, 60U, 119U, 55U, 255U, 136U}}, {140U, 5700U, {0U, 0U, 0U, 0U, 60U, 119U, 55U, 255U, 136U}}, {149U, 5745U, {0U, 0U, 0U, 0U, 60U, 119U, 55U, 255U, 136U}}, {153U, 5765U, {0U, 0U, 0U, 0U, 60U, 119U, 55U, 255U, 136U}}, {157U, 5785U, {0U, 0U, 0U, 0U, 60U, 119U, 55U, 255U, 136U}}, {161U, 5805U, {0U, 0U, 0U, 0U, 60U, 119U, 55U, 255U, 136U}}, {165U, 5825U, {0U, 0U, 0U, 0U, 60U, 119U, 55U, 255U, 136U}}, {184U, 4920U, {85U, 119U, 144U, 247U, 60U, 119U, 53U, 255U, 255U}}, {188U, 4940U, {68U, 119U, 128U, 231U, 60U, 119U, 53U, 255U, 255U}}, {192U, 4960U, {68U, 102U, 128U, 231U, 60U, 119U, 53U, 255U, 255U}}, {196U, 4980U, {51U, 102U, 112U, 199U, 60U, 119U, 53U, 255U, 255U}}, {200U, 5000U, {34U, 85U, 96U, 215U, 60U, 119U, 53U, 255U, 255U}}, {204U, 5020U, {34U, 85U, 96U, 199U, 60U, 119U, 53U, 255U, 255U}}, {208U, 5040U, {34U, 68U, 80U, 199U, 60U, 119U, 53U, 255U, 255U}}, {212U, 5060U, {17U, 68U, 80U, 165U, 60U, 119U, 53U, 255U, 136U}}, {216U, 5080U, {0U, 68U, 64U, 182U, 60U, 119U, 53U, 255U, 136U}}}; static struct b206x_channel const b2063_chantbl[51U] = { {1U, 2412U, {111U, 60U, 60U, 4U, 5U, 5U, 5U, 5U, 119U, 128U, 128U, 112U}}, {2U, 2417U, {111U, 60U, 60U, 4U, 5U, 5U, 5U, 5U, 119U, 128U, 128U, 112U}}, {3U, 2422U, {111U, 60U, 60U, 4U, 5U, 5U, 5U, 5U, 119U, 128U, 128U, 112U}}, {4U, 2427U, {111U, 44U, 44U, 4U, 5U, 5U, 5U, 5U, 119U, 128U, 128U, 112U}}, {5U, 2432U, {111U, 44U, 44U, 4U, 5U, 5U, 5U, 5U, 119U, 128U, 128U, 112U}}, {6U, 2437U, {111U, 44U, 44U, 4U, 5U, 5U, 5U, 5U, 119U, 128U, 128U, 112U}}, {7U, 2442U, {111U, 44U, 44U, 4U, 5U, 5U, 5U, 5U, 119U, 128U, 128U, 112U}}, {8U, 2447U, {111U, 44U, 44U, 4U, 5U, 5U, 5U, 5U, 119U, 128U, 128U, 112U}}, {9U, 2452U, {111U, 28U, 28U, 4U, 5U, 5U, 5U, 5U, 119U, 128U, 128U, 112U}}, {10U, 2457U, {111U, 28U, 28U, 4U, 5U, 5U, 5U, 5U, 119U, 128U, 128U, 112U}}, {11U, 2462U, {110U, 28U, 28U, 4U, 5U, 5U, 5U, 5U, 119U, 128U, 128U, 112U}}, {12U, 2467U, {110U, 28U, 28U, 4U, 5U, 5U, 5U, 5U, 119U, 128U, 128U, 112U}}, {13U, 2472U, {110U, 28U, 28U, 4U, 5U, 5U, 5U, 5U, 119U, 128U, 128U, 112U}}, {14U, 2484U, {110U, 12U, 12U, 4U, 5U, 5U, 5U, 5U, 119U, 128U, 128U, 112U}}, {34U, 5170U, {106U, 12U, 12U, 0U, 2U, 5U, 13U, 13U, 119U, 128U, 32U, 0U}}, {36U, 5180U, {106U, 12U, 12U, 0U, 1U, 5U, 13U, 12U, 119U, 128U, 32U, 0U}}, {38U, 5190U, {106U, 12U, 12U, 0U, 1U, 4U, 12U, 12U, 119U, 128U, 32U, 0U}}, {40U, 5200U, {105U, 12U, 12U, 0U, 1U, 4U, 12U, 12U, 119U, 112U, 32U, 0U}}, {42U, 5210U, {105U, 12U, 12U, 0U, 1U, 4U, 11U, 12U, 119U, 112U, 32U, 0U}}, {44U, 5220U, {105U, 12U, 12U, 0U, 0U, 4U, 11U, 11U, 119U, 96U, 32U, 0U}}, {46U, 5230U, {105U, 12U, 12U, 0U, 0U, 3U, 10U, 11U, 119U, 96U, 32U, 0U}}, {48U, 5240U, {105U, 12U, 12U, 0U, 0U, 3U, 10U, 10U, 119U, 96U, 32U, 0U}}, {52U, 5260U, {104U, 12U, 12U, 0U, 0U, 2U, 9U, 9U, 119U, 96U, 32U, 0U}}, {56U, 5280U, {104U, 12U, 12U, 0U, 0U, 1U, 8U, 8U, 119U, 80U, 16U, 0U}}, {60U, 5300U, {104U, 12U, 12U, 0U, 0U, 1U, 8U, 8U, 119U, 80U, 16U, 0U}}, {64U, 5320U, {103U, 12U, 12U, 0U, 0U, 0U, 8U, 8U, 119U, 80U, 16U, 0U}}, {100U, 5500U, {100U, 12U, 12U, 0U, 0U, 0U, 2U, 1U, 119U, 32U, 0U, 0U}}, {104U, 5520U, {100U, 12U, 12U, 0U, 0U, 0U, 1U, 1U, 119U, 32U, 0U, 0U}}, {108U, 5540U, {99U, 12U, 12U, 0U, 0U, 0U, 1U, 0U, 119U, 16U, 0U, 0U}}, {112U, 5560U, {99U, 12U, 12U, 0U, 0U, 0U, 0U, 0U, 119U, 16U, 0U, 0U}}, {116U, 5580U, {98U, 12U, 12U, 0U, 0U, 0U, 0U, 0U, 119U, 16U, 0U, 0U}}, {120U, 5600U, {98U, 12U, 12U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 0U, 0U}}, {124U, 5620U, {98U, 12U, 12U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 0U, 0U}}, {128U, 5640U, {97U, 12U, 12U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 0U, 0U}}, {132U, 5660U, {97U, 12U, 12U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 0U, 0U}}, {136U, 5680U, {97U, 12U, 12U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 0U, 0U}}, {140U, 5700U, {96U, 12U, 12U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 0U, 0U}}, {149U, 5745U, {96U, 12U, 12U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 0U, 0U}}, {153U, 5765U, {96U, 12U, 12U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 0U, 0U}}, {157U, 5785U, {96U, 12U, 12U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 0U, 0U}}, {161U, 5805U, {96U, 12U, 12U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 0U, 0U}}, {165U, 5825U, {96U, 12U, 12U, 0U, 0U, 0U, 0U, 0U, 119U, 0U, 0U, 0U}}, {184U, 4920U, {110U, 12U, 12U, 0U, 9U, 14U, 15U, 15U, 119U, 192U, 80U, 0U}}, {188U, 4940U, {110U, 12U, 12U, 0U, 9U, 13U, 15U, 15U, 119U, 176U, 80U, 0U}}, {192U, 4960U, {110U, 12U, 12U, 0U, 8U, 12U, 15U, 15U, 119U, 176U, 80U, 0U}}, {196U, 4980U, {109U, 12U, 12U, 0U, 8U, 12U, 15U, 15U, 119U, 160U, 64U, 0U}}, {200U, 5000U, {109U, 12U, 12U, 0U, 8U, 11U, 15U, 15U, 119U, 160U, 64U, 0U}}, {204U, 5020U, {109U, 12U, 12U, 0U, 8U, 10U, 15U, 15U, 119U, 160U, 64U, 0U}}, {208U, 5040U, {108U, 12U, 12U, 0U, 7U, 9U, 15U, 15U, 119U, 144U, 64U, 0U}}, {212U, 5060U, {108U, 12U, 12U, 0U, 6U, 8U, 15U, 15U, 119U, 144U, 64U, 0U}}, {216U, 5080U, {108U, 12U, 12U, 0U, 5U, 8U, 15U, 15U, 119U, 144U, 64U, 0U}}}; static void lpphy_b2062_reset_pll_bias(struct b43_wldev *dev ) { { b43_radio_write(dev, 16438, 255); __const_udelay(85900UL); if ((unsigned int )(dev->dev)->chip_id == 21332U) { b43_radio_write(dev, 0, 4); b43_radio_write(dev, 16438, 4); } else { b43_radio_write(dev, 16438, 0); } __const_udelay(21475UL); return; } } static void lpphy_b2062_vco_calib(struct b43_wldev *dev ) { { b43_radio_write(dev, 16457, 66); b43_radio_write(dev, 16457, 98); __const_udelay(859000UL); return; } } static int lpphy_b2062_tune(struct b43_wldev *dev , unsigned int channel ) { struct b43_phy_lp *lpphy ; struct ssb_bus *bus ; struct b206x_channel const *chandata ; u32 crystal_freq ; u32 tmp1 ; u32 tmp2 ; u32 tmp3 ; u32 tmp4 ; u32 tmp5 ; u32 tmp6 ; u32 tmp7 ; u32 tmp8 ; u32 tmp9 ; int i ; int err ; int __ret_warn_on ; long tmp ; long tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; u16 tmp___3 ; u16 tmp___4 ; u16 tmp___5 ; { lpphy = dev->phy.__annonCompField106.lp; bus = ((dev->dev)->__annonCompField105.sdev)->bus; chandata = (struct b206x_channel const *)0; crystal_freq = bus->chipco.pmu.crystalfreq * 1000U; err = 0; i = 0; goto ldv_54698; ldv_54697: ; if ((unsigned int )b2062_chantbl[i].channel == channel) { chandata = (struct b206x_channel const *)(& b2062_chantbl) + (unsigned long )i; goto ldv_54696; } else { } i = i + 1; ldv_54698: ; if ((unsigned int )i <= 50U) { goto ldv_54697; } else { } ldv_54696: __ret_warn_on = (unsigned long )chandata == (unsigned long )((struct b206x_channel const *)0); tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_lp.c", 2426); } else { } tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { return (-22); } else { } b43_radio_set(dev, 16450, 4); b43_radio_write(dev, 30, (int )chandata->data[0]); b43_radio_write(dev, 32, (int )chandata->data[1]); b43_radio_write(dev, 33, (int )chandata->data[2]); b43_radio_write(dev, 82, (int )chandata->data[3]); b43_radio_write(dev, 16408, (int )chandata->data[4]); b43_radio_write(dev, 36, (int )chandata->data[5]); b43_radio_write(dev, 37, (int )chandata->data[6]); b43_radio_write(dev, 84, (int )chandata->data[7]); b43_radio_write(dev, 83, (int )chandata->data[8]); tmp1 = crystal_freq / 1000U; tmp2 = lpphy->pdiv * 1000U; b43_radio_write(dev, 16469, 204); b43_radio_write(dev, 16470, 7); lpphy_b2062_reset_pll_bias(dev); tmp___1 = channel2freq_lp((int )((u8 )channel)); tmp3 = (u32 )tmp___1 * tmp2; tmp___2 = channel2freq_lp((int )((u8 )channel)); if ((unsigned int )tmp___2 <= 3999U) { tmp3 = tmp3 * 2U; } else { } tmp4 = tmp1 * 48U; tmp6 = tmp3 / tmp4; tmp7 = tmp3 % tmp4; b43_radio_write(dev, 16462, (int )((u16 )tmp6)); tmp5 = tmp7 * 256U; tmp6 = tmp5 / tmp4; tmp7 = tmp5 % tmp4; b43_radio_write(dev, 16463, (int )((u16 )tmp6)); tmp5 = tmp7 * 256U; tmp6 = tmp5 / tmp4; tmp7 = tmp5 % tmp4; b43_radio_write(dev, 16464, (int )((u16 )tmp6)); tmp5 = tmp7 * 256U; tmp6 = tmp5 / tmp4; tmp7 = tmp5 % tmp4; b43_radio_write(dev, 16465, (int )((u16 )((tmp7 * 2U) / tmp4)) + (int )((u16 )tmp6)); tmp___3 = b43_radio_read(dev, 16455); tmp8 = (u32 )tmp___3; tmp9 = (((tmp8 + 1U) * tmp3) * 2U + tmp1 * 3U) / (tmp1 * 6U); b43_radio_write(dev, 16459, (int )((unsigned int )((u16 )(tmp9 >> 8)) + 16U)); b43_radio_write(dev, 16460, (int )((u16 )tmp9) & 255); lpphy_b2062_vco_calib(dev); tmp___5 = b43_radio_read(dev, 16439); if (((int )tmp___5 & 16) != 0) { b43_radio_write(dev, 16469, 252); b43_radio_write(dev, 16470, 0); lpphy_b2062_reset_pll_bias(dev); lpphy_b2062_vco_calib(dev); tmp___4 = b43_radio_read(dev, 16439); if (((int )tmp___4 & 16) != 0) { err = -5; } else { } } else { } b43_radio_mask(dev, 16450, 65531); return (err); } } static void lpphy_b2063_vco_calib(struct b43_wldev *dev ) { u16 tmp ; u16 tmp___0 ; { b43_radio_mask(dev, 26, 65471); tmp___0 = b43_radio_read(dev, 100); tmp = (unsigned int )tmp___0 & 248U; b43_radio_write(dev, 100, (int )tmp); __const_udelay(4295UL); b43_radio_write(dev, 100, (int )((unsigned int )tmp | 4U)); __const_udelay(4295UL); b43_radio_write(dev, 100, (int )((unsigned int )tmp | 6U)); __const_udelay(4295UL); b43_radio_write(dev, 100, (int )((unsigned int )tmp | 7U)); __const_udelay(1288500UL); b43_radio_set(dev, 26, 64); return; } } static int lpphy_b2063_tune(struct b43_wldev *dev , unsigned int channel ) { struct ssb_bus *bus ; struct b206x_channel const *chandata ; u32 crystal_freq ; u32 freqref ; u32 vco_freq ; u32 val1 ; u32 val2 ; u32 val3 ; u32 timeout ; u32 timeoutref ; u32 count ; u16 old_comm15 ; u16 scale ; u32 tmp1 ; u32 tmp2 ; u32 tmp3 ; u32 tmp4 ; u32 tmp5 ; u32 tmp6 ; int i ; int div ; int __ret_warn_on ; long tmp ; long tmp___0 ; { bus = ((dev->dev)->__annonCompField105.sdev)->bus; chandata = (struct b206x_channel const *)0; crystal_freq = bus->chipco.pmu.crystalfreq * 1000U; div = crystal_freq <= 26000000U ? 1 : 2; i = 0; goto ldv_54734; ldv_54733: ; if ((unsigned int )b2063_chantbl[i].channel == channel) { chandata = (struct b206x_channel const *)(& b2063_chantbl) + (unsigned long )i; goto ldv_54732; } else { } i = i + 1; ldv_54734: ; if ((unsigned int )i <= 50U) { goto ldv_54733; } else { } ldv_54732: __ret_warn_on = (unsigned long )chandata == (unsigned long )((struct b206x_channel const *)0); tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_lp.c", 2519); } else { } tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { return (-22); } else { } b43_radio_write(dev, 162, (int )chandata->data[0]); b43_radio_write(dev, 164, (int )chandata->data[1]); b43_radio_write(dev, 166, (int )chandata->data[2]); b43_radio_write(dev, 161, (int )chandata->data[3]); b43_radio_write(dev, 208, (int )chandata->data[4]); b43_radio_write(dev, 211, (int )chandata->data[5]); b43_radio_write(dev, 214, (int )chandata->data[6]); b43_radio_write(dev, 217, (int )chandata->data[7]); b43_radio_write(dev, 223, (int )chandata->data[8]); b43_radio_write(dev, 256, (int )chandata->data[9]); b43_radio_write(dev, 259, (int )chandata->data[10]); b43_radio_write(dev, 277, (int )chandata->data[11]); old_comm15 = b43_radio_read(dev, 15); b43_radio_set(dev, 15, 30); if ((unsigned int )((unsigned short )chandata->freq) > 4000U) { vco_freq = (u32 )((int )chandata->freq << 1); } else { vco_freq = (u32 )((int )chandata->freq << 2); } freqref = crystal_freq * 3U; val1 = lpphy_qdiv_roundup(crystal_freq, 1000000U, 16); val2 = lpphy_qdiv_roundup(crystal_freq, (u32 )(div * 1000000), 16); val3 = lpphy_qdiv_roundup(vco_freq, 3U, 16); timeout = (((crystal_freq * 8U) / (u32 )(div * 5000000) + 1U) >> 1) - 1U; b43_radio_write(dev, 121, 2); b43_radio_maskset(dev, 124, 65528, (int )((u16 )(timeout >> 2))); b43_radio_maskset(dev, 125, 65439, (int )((u16 )timeout) << 5U); timeoutref = ((crystal_freq * 8U) / ((timeout + 1U) * (u32 )div) + 999999U) / 1000000U + 1U; b43_radio_write(dev, 123, (int )((u16 )timeoutref)); count = lpphy_qdiv_roundup(val3, val2 + 16U, 16); count = ((timeout + 1U) * (timeoutref + 1U)) * count; count = count - 1U; b43_radio_maskset(dev, 125, 240, (int )((u16 )(count >> 8))); b43_radio_write(dev, 126, (int )((u16 )count) & 255); tmp1 = (val3 * 62500U) / freqref << 4; tmp2 = (val3 * 62500U) % freqref << 4; goto ldv_54738; ldv_54737: tmp1 = tmp1 + 1U; tmp2 = tmp2 - freqref; ldv_54738: ; if (tmp2 >= freqref) { goto ldv_54737; } else { } b43_radio_maskset(dev, 112, 65504, (int )((u16 )(tmp1 >> 4))); b43_radio_maskset(dev, 113, 65039, (int )((u16 )tmp1) << 4U); b43_radio_maskset(dev, 113, 65520, (int )((u16 )(tmp1 >> 16))); b43_radio_write(dev, 114, (int )((u16 )(tmp2 >> 8)) & 255); b43_radio_write(dev, 115, (int )((u16 )tmp2) & 255); b43_radio_write(dev, 108, 185); b43_radio_write(dev, 109, 136); b43_radio_write(dev, 110, 40); b43_radio_write(dev, 111, 99); tmp3 = (val3 * 41U + 4294844296U) / 1200U + 27U; tmp4 = lpphy_qdiv_roundup(tmp1 * 132000U, 8451U, 16); if (((tmp4 + tmp3) - 1U) / tmp3 > 60U) { scale = 1U; tmp5 = (tmp4 + tmp3) / (tmp3 << 1) - 8U; } else { scale = 0U; tmp5 = ((tmp3 >> 1) + tmp4) / tmp3 - 8U; } b43_radio_maskset(dev, 104, 65472, (int )((u16 )tmp5)); b43_radio_maskset(dev, 104, 65471, (int )scale << 6U); tmp6 = lpphy_qdiv_roundup(val1 * 100U, val3, 16); tmp6 = (((u32 )((int )scale + 1) * tmp5) * tmp6) * 8U; if (tmp6 > 150U) { tmp6 = 0U; } else { } b43_radio_maskset(dev, 105, 65504, (int )((u16 )tmp6)); b43_radio_maskset(dev, 105, 65503, (int )scale << 5U); b43_radio_maskset(dev, 129, 65531, 4); if (crystal_freq > 26000000U) { b43_radio_set(dev, 129, 2); } else { b43_radio_mask(dev, 129, 253); } if (val1 == 45U) { b43_radio_set(dev, 117, 2); } else { b43_radio_mask(dev, 117, 253); } b43_radio_set(dev, 27, 3); __const_udelay(4295UL); b43_radio_mask(dev, 27, 65532); lpphy_b2063_vco_calib(dev); b43_radio_write(dev, 15, (int )old_comm15); return (0); } } static int b43_lpphy_op_switch_channel(struct b43_wldev *dev , unsigned int new_channel ) { struct b43_phy_lp *lpphy ; int err ; u16 tmp ; { lpphy = dev->phy.__annonCompField106.lp; if ((unsigned int )dev->phy.radio_ver == 8291U) { err = lpphy_b2063_tune(dev, new_channel); if (err != 0) { return (err); } else { } } else { err = lpphy_b2062_tune(dev, new_channel); if (err != 0) { return (err); } else { } lpphy_set_analog_filter(dev, (int )new_channel); tmp = channel2freq_lp((int )((u8 )new_channel)); lpphy_adjust_gain_table(dev, (u32 )tmp); } lpphy->channel = (u8 )new_channel; b43_write16(dev, 1008, (int )((u16 )new_channel)); return (0); } } static int b43_lpphy_op_init(struct b43_wldev *dev ) { int err ; { if ((unsigned int )(dev->dev)->bus_type != 1U) { b43err(dev->wl, "LP-PHY is supported only on SSB!\n"); return (-95); } else { } lpphy_read_band_sprom(dev); lpphy_baseband_init(dev); lpphy_radio_init(dev); lpphy_calibrate_rc(dev); err = b43_lpphy_op_switch_channel(dev, 7U); if (err != 0) { b43dbg(dev->wl, "Switch to channel 7 failed, error = %d.\n", err); } else { } lpphy_tx_pctl_init(dev); lpphy_calibration(dev); return (0); } } static void b43_lpphy_op_adjust_txpower(struct b43_wldev *dev ) { { return; } } static enum b43_txpwr_result b43_lpphy_op_recalc_txpower(struct b43_wldev *dev , bool ignore_tssi ) { { return (1); } } static void b43_lpphy_op_switch_analog(struct b43_wldev *dev , bool on ) { { if ((int )on) { b43_phy_mask(dev, 1083, 65528); } else { b43_phy_set(dev, 1084, 7); b43_phy_set(dev, 1083, 7); } return; } } static void b43_lpphy_op_pwork_15sec(struct b43_wldev *dev ) { { return; } } struct b43_phy_operations const b43_phyops_lp = {& b43_lpphy_op_allocate, & b43_lpphy_op_free, & b43_lpphy_op_prepare_structs, 0, & b43_lpphy_op_init, 0, 0, 0, & b43_lpphy_op_maskset, & b43_lpphy_op_radio_read, & b43_lpphy_op_radio_write, 0, & b43_lpphy_op_software_rfkill, & b43_lpphy_op_switch_analog, & b43_lpphy_op_switch_channel, & b43_lpphy_op_get_default_chan, & b43_lpphy_op_set_rx_antenna, 0, & b43_lpphy_op_recalc_txpower, & b43_lpphy_op_adjust_txpower, & b43_lpphy_op_pwork_15sec, & lpphy_calibration}; void ldv_initialize_b43_phy_operations_28(void) { void *tmp ; { tmp = ldv_init_zalloc(1912UL); b43_phyops_lp_group0 = (struct b43_wldev *)tmp; return; } } void ldv_main_exported_28(void) { bool ldvarg75 ; bool ldvarg76 ; u16 ldvarg74 ; u16 ldvarg82 ; u16 ldvarg79 ; u16 ldvarg72 ; bool ldvarg78 ; int ldvarg80 ; u16 ldvarg73 ; unsigned int ldvarg77 ; u16 ldvarg81 ; int tmp ; { ldv_memset((void *)(& ldvarg75), 0, 1UL); ldv_memset((void *)(& ldvarg76), 0, 1UL); ldv_memset((void *)(& ldvarg74), 0, 2UL); ldv_memset((void *)(& ldvarg82), 0, 2UL); ldv_memset((void *)(& ldvarg79), 0, 2UL); ldv_memset((void *)(& ldvarg72), 0, 2UL); ldv_memset((void *)(& ldvarg78), 0, 1UL); ldv_memset((void *)(& ldvarg80), 0, 4UL); ldv_memset((void *)(& ldvarg73), 0, 2UL); ldv_memset((void *)(& ldvarg77), 0, 4UL); ldv_memset((void *)(& ldvarg81), 0, 2UL); tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ; if (ldv_state_variable_28 == 1) { b43_lpphy_op_prepare_structs(b43_phyops_lp_group0); ldv_state_variable_28 = 1; } else { } goto ldv_54783; case 1: ; if (ldv_state_variable_28 == 1) { b43_lpphy_op_allocate(b43_phyops_lp_group0); ldv_state_variable_28 = 1; } else { } goto ldv_54783; case 2: ; if (ldv_state_variable_28 == 1) { b43_lpphy_op_get_default_chan(b43_phyops_lp_group0); ldv_state_variable_28 = 1; } else { } goto ldv_54783; case 3: ; if (ldv_state_variable_28 == 1) { b43_lpphy_op_pwork_15sec(b43_phyops_lp_group0); ldv_state_variable_28 = 1; } else { } goto ldv_54783; case 4: ; if (ldv_state_variable_28 == 1) { b43_lpphy_op_radio_write(b43_phyops_lp_group0, (int )ldvarg82, (int )ldvarg81); ldv_state_variable_28 = 1; } else { } goto ldv_54783; case 5: ; if (ldv_state_variable_28 == 1) { b43_lpphy_op_set_rx_antenna(b43_phyops_lp_group0, ldvarg80); ldv_state_variable_28 = 1; } else { } goto ldv_54783; case 6: ; if (ldv_state_variable_28 == 1) { b43_lpphy_op_radio_read(b43_phyops_lp_group0, (int )ldvarg79); ldv_state_variable_28 = 1; } else { } goto ldv_54783; case 7: ; if (ldv_state_variable_28 == 1) { b43_lpphy_op_adjust_txpower(b43_phyops_lp_group0); ldv_state_variable_28 = 1; } else { } goto ldv_54783; case 8: ; if (ldv_state_variable_28 == 1) { b43_lpphy_op_software_rfkill(b43_phyops_lp_group0, (int )ldvarg78); ldv_state_variable_28 = 1; } else { } goto ldv_54783; case 9: ; if (ldv_state_variable_28 == 1) { b43_lpphy_op_free(b43_phyops_lp_group0); ldv_state_variable_28 = 1; } else { } goto ldv_54783; case 10: ; if (ldv_state_variable_28 == 1) { b43_lpphy_op_switch_channel(b43_phyops_lp_group0, ldvarg77); ldv_state_variable_28 = 1; } else { } goto ldv_54783; case 11: ; if (ldv_state_variable_28 == 1) { b43_lpphy_op_recalc_txpower(b43_phyops_lp_group0, (int )ldvarg76); ldv_state_variable_28 = 1; } else { } goto ldv_54783; case 12: ; if (ldv_state_variable_28 == 1) { b43_lpphy_op_init(b43_phyops_lp_group0); ldv_state_variable_28 = 1; } else { } goto ldv_54783; case 13: ; if (ldv_state_variable_28 == 1) { lpphy_calibration(b43_phyops_lp_group0); ldv_state_variable_28 = 1; } else { } goto ldv_54783; case 14: ; if (ldv_state_variable_28 == 1) { b43_lpphy_op_switch_analog(b43_phyops_lp_group0, (int )ldvarg75); ldv_state_variable_28 = 1; } else { } goto ldv_54783; case 15: ; if (ldv_state_variable_28 == 1) { b43_lpphy_op_maskset(b43_phyops_lp_group0, (int )ldvarg74, (int )ldvarg73, (int )ldvarg72); ldv_state_variable_28 = 1; } else { } goto ldv_54783; default: ldv_stop(); } ldv_54783: ; return; } } bool ldv_queue_work_on_241(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_242(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_243(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_244(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_245(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_246(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; bool ldv_queue_work_on_257(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_259(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_258(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_261(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_260(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_262(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; void lpphy_write_gain_table(struct b43_wldev *dev , int offset , struct lpphy_tx_gain_table_entry data ) ; void lpphy_write_gain_table_bulk(struct b43_wldev *dev , int offset , int count , struct lpphy_tx_gain_table_entry *table ) ; static struct b206x_init_tab_entry const b2062_init_tab[47U] = { {4U, 1U, 0U, 3U}, {17U, 0U, 202U, 2U}, {19U, 0U, 0U, 3U}, {20U, 21U, 42U, 3U}, {23U, 219U, 255U, 1U}, {30U, 221U, 0U, 3U}, {32U, 221U, 0U, 3U}, {33U, 119U, 181U, 3U}, {34U, 0U, 255U, 3U}, {38U, 51U, 51U, 3U}, {40U, 0U, 0U, 2U}, {47U, 130U, 128U, 3U}, {51U, 4U, 4U, 3U}, {52U, 0U, 0U, 3U}, {73U, 3U, 3U, 3U}, {74U, 2U, 2U, 3U}, {82U, 136U, 27U, 3U}, {16388U, 1U, 0U, 3U}, {16400U, 255U, 255U, 3U}, {16407U, 248U, 216U, 3U}, {16408U, 60U, 36U, 3U}, {16415U, 136U, 128U, 3U}, {16417U, 136U, 128U, 3U}, {16436U, 152U, 152U, 3U}, {16437U, 16U, 16U, 3U}, {16441U, 67U, 67U, 3U}, {16442U, 71U, 71U, 3U}, {16443U, 12U, 12U, 3U}, {16444U, 17U, 17U, 3U}, {16445U, 17U, 17U, 3U}, {16446U, 14U, 14U, 3U}, {16447U, 8U, 8U, 3U}, {16448U, 51U, 51U, 3U}, {16449U, 10U, 10U, 3U}, {16450U, 6U, 6U, 3U}, {16454U, 62U, 62U, 3U}, {16455U, 19U, 19U, 3U}, {16457U, 98U, 98U, 3U}, {16458U, 7U, 7U, 3U}, {16459U, 22U, 22U, 3U}, {16460U, 92U, 92U, 3U}, {16461U, 149U, 149U, 3U}, {16466U, 160U, 160U, 3U}, {16467U, 4U, 4U, 3U}, {16469U, 204U, 204U, 3U}, {16470U, 7U, 7U, 3U}, {16479U, 15U, 15U, 1U}}; static struct b206x_init_tab_entry const b2063_init_tab[42U] = { {0U, 0U, 0U, 2U}, {10U, 1U, 0U, 1U}, {16U, 0U, 0U, 2U}, {17U, 0U, 0U, 2U}, {18U, 0U, 0U, 2U}, {19U, 0U, 0U, 2U}, {20U, 0U, 0U, 2U}, {21U, 0U, 0U, 2U}, {22U, 0U, 0U, 2U}, {23U, 0U, 0U, 2U}, {24U, 0U, 0U, 2U}, {28U, 232U, 212U, 3U}, {29U, 167U, 83U, 3U}, {31U, 240U, 15U, 3U}, {33U, 31U, 94U, 2U}, {34U, 127U, 126U, 2U}, {35U, 48U, 240U, 2U}, {39U, 127U, 127U, 3U}, {42U, 12U, 12U, 3U}, {44U, 60U, 63U, 1U}, {45U, 252U, 254U, 1U}, {50U, 8U, 8U, 3U}, {54U, 96U, 96U, 3U}, {58U, 48U, 48U, 3U}, {61U, 12U, 11U, 3U}, {62U, 16U, 15U, 3U}, {76U, 61U, 253U, 3U}, {83U, 2U, 2U, 3U}, {87U, 86U, 86U, 3U}, {118U, 247U, 247U, 3U}, {196U, 113U, 113U, 3U}, {197U, 113U, 113U, 3U}, {207U, 240U, 48U, 1U}, {223U, 119U, 119U, 3U}, {227U, 3U, 3U, 3U}, {228U, 15U, 15U, 3U}, {229U, 15U, 15U, 3U}, {236U, 119U, 119U, 3U}, {238U, 119U, 119U, 3U}, {243U, 4U, 4U, 3U}, {267U, 0U, 4U, 1U}, {285U, 3U, 3U, 3U}}; void b2062_upload_init_table(struct b43_wldev *dev ) { struct b206x_init_tab_entry const *e ; unsigned int i ; enum ieee80211_band tmp ; { i = 0U; goto ldv_54003; ldv_54002: e = (struct b206x_init_tab_entry const *)(& b2062_init_tab) + (unsigned long )i; tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { if (((int )e->flags & 2) == 0) { goto ldv_54001; } else { } b43_radio_write(dev, (int )e->offset, (int )e->value_g); } else { if (((int )e->flags & 1) == 0) { goto ldv_54001; } else { } b43_radio_write(dev, (int )e->offset, (int )e->value_a); } ldv_54001: i = i + 1U; ldv_54003: ; if (i <= 46U) { goto ldv_54002; } else { } return; } } void b2063_upload_init_table(struct b43_wldev *dev ) { struct b206x_init_tab_entry const *e ; unsigned int i ; enum ieee80211_band tmp ; { i = 0U; goto ldv_54014; ldv_54013: e = (struct b206x_init_tab_entry const *)(& b2063_init_tab) + (unsigned long )i; tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { if (((int )e->flags & 2) == 0) { goto ldv_54012; } else { } b43_radio_write(dev, (int )e->offset, (int )e->value_g); } else { if (((int )e->flags & 1) == 0) { goto ldv_54012; } else { } b43_radio_write(dev, (int )e->offset, (int )e->value_a); } ldv_54012: i = i + 1U; ldv_54014: ; if (i <= 41U) { goto ldv_54013; } else { } return; } } u32 b43_lptab_read(struct b43_wldev *dev , u32 offset ) { u32 type ; u32 value ; int __ret_warn_on ; long tmp ; u16 tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; u16 tmp___3 ; int __ret_warn_on___0 ; long tmp___4 ; { type = offset & 4026531840U; offset = offset & 268435455U; __ret_warn_on = offset > 65535U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_lpphy.c", 600); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); switch (type) { case 268435456U: b43_phy_write(dev, 1109, (int )((u16 )offset)); tmp___0 = b43_phy_read(dev, 1110); value = (u32 )tmp___0 & 255U; goto ldv_54025; case 536870912U: b43_phy_write(dev, 1109, (int )((u16 )offset)); tmp___1 = b43_phy_read(dev, 1110); value = (u32 )tmp___1; goto ldv_54025; case 805306368U: b43_phy_write(dev, 1109, (int )((u16 )offset)); tmp___2 = b43_phy_read(dev, 1111); value = (u32 )tmp___2; value = value << 16; tmp___3 = b43_phy_read(dev, 1110); value = (u32 )tmp___3 | value; goto ldv_54025; default: __ret_warn_on___0 = 1; tmp___4 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___4 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_lpphy.c", 618); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); value = 0U; } ldv_54025: ; return (value); } } void b43_lptab_read_bulk(struct b43_wldev *dev , u32 offset , unsigned int nr_elements , void *_data___0 ) { u32 type ; u8 *data ; unsigned int i ; int __ret_warn_on ; long tmp ; u16 tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; int __ret_warn_on___0 ; long tmp___3 ; { data = (u8 *)_data___0; type = offset & 4026531840U; offset = offset & 268435455U; __ret_warn_on = offset > 65535U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_lpphy.c", 634); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_phy_write(dev, 1109, (int )((u16 )offset)); i = 0U; goto ldv_54050; ldv_54049: ; switch (type) { case 268435456U: tmp___0 = b43_phy_read(dev, 1110); *data = (u8 )tmp___0; data = data + 1; goto ldv_54043; case 536870912U: *((u16 *)data) = b43_phy_read(dev, 1110); data = data + 2UL; goto ldv_54043; case 805306368U: tmp___1 = b43_phy_read(dev, 1111); *((u32 *)data) = (u32 )tmp___1; *((u32 *)data) = *((u32 *)data) << 16; tmp___2 = b43_phy_read(dev, 1110); *((u32 *)data) = *((u32 *)data) | (u32 )tmp___2; data = data + 4UL; goto ldv_54043; default: __ret_warn_on___0 = 1; tmp___3 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___3 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_lpphy.c", 655); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); } ldv_54043: i = i + 1U; ldv_54050: ; if (i < nr_elements) { goto ldv_54049; } else { } return; } } void b43_lptab_write(struct b43_wldev *dev , u32 offset , u32 value ) { u32 type ; int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; int __ret_warn_on___1 ; long tmp___1 ; int __ret_warn_on___2 ; long tmp___2 ; { type = offset & 4026531840U; offset = offset & 268435455U; __ret_warn_on = offset > 65535U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_lpphy.c", 666); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); switch (type) { case 268435456U: __ret_warn_on___0 = (value & 4294967040U) != 0U; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_lpphy.c", 670); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); b43_phy_write(dev, 1109, (int )((u16 )offset)); b43_phy_write(dev, 1110, (int )((u16 )value)); goto ldv_54063; case 536870912U: __ret_warn_on___1 = (value & 4294901760U) != 0U; tmp___1 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_lpphy.c", 675); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); b43_phy_write(dev, 1109, (int )((u16 )offset)); b43_phy_write(dev, 1110, (int )((u16 )value)); goto ldv_54063; case 805306368U: b43_phy_write(dev, 1109, (int )((u16 )offset)); b43_phy_write(dev, 1111, (int )((u16 )(value >> 16))); b43_phy_write(dev, 1110, (int )((u16 )value)); goto ldv_54063; default: __ret_warn_on___2 = 1; tmp___2 = ldv__builtin_expect(__ret_warn_on___2 != 0, 0L); if (tmp___2 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_lpphy.c", 685); } else { } ldv__builtin_expect(__ret_warn_on___2 != 0, 0L); } ldv_54063: ; return; } } void b43_lptab_write_bulk(struct b43_wldev *dev , u32 offset , unsigned int nr_elements , void const *_data___0 ) { u32 type ; u32 value ; u8 const *data ; unsigned int i ; int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; int __ret_warn_on___1 ; long tmp___1 ; int __ret_warn_on___2 ; long tmp___2 ; { data = (u8 const *)_data___0; type = offset & 4026531840U; offset = offset & 268435455U; __ret_warn_on = offset > 65535U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_lpphy.c", 698); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_phy_write(dev, 1109, (int )((u16 )offset)); i = 0U; goto ldv_54095; ldv_54094: ; switch (type) { case 268435456U: value = (u32 )*data; data = data + 1; __ret_warn_on___0 = (value & 4294967040U) != 0U; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_lpphy.c", 707); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); b43_phy_write(dev, 1110, (int )((u16 )value)); goto ldv_54086; case 536870912U: value = (u32 )*((u16 *)data); data = data + 2UL; __ret_warn_on___1 = (value & 4294901760U) != 0U; tmp___1 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_lpphy.c", 713); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); b43_phy_write(dev, 1110, (int )((u16 )value)); goto ldv_54086; case 805306368U: value = *((u32 *)data); data = data + 4UL; b43_phy_write(dev, 1111, (int )((u16 )(value >> 16))); b43_phy_write(dev, 1110, (int )((u16 )value)); goto ldv_54086; default: __ret_warn_on___2 = 1; tmp___2 = ldv__builtin_expect(__ret_warn_on___2 != 0, 0L); if (tmp___2 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_lpphy.c", 723); } else { } ldv__builtin_expect(__ret_warn_on___2 != 0, 0L); } ldv_54086: i = i + 1U; ldv_54095: ; if (i < nr_elements) { goto ldv_54094; } else { } return; } } static u8 const lpphy_min_sig_sq_table[53U] = { 222U, 220U, 218U, 216U, 214U, 212U, 210U, 207U, 205U, 202U, 199U, 196U, 193U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 0U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 190U, 193U, 196U, 199U, 202U, 205U, 207U, 210U, 212U, 214U, 216U, 218U, 220U, 222U}; static u16 const lpphy_rev01_noise_scale_table[40U] = { 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 41984U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 42148U, 164U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 19456U, 11574U, 0U, 0U, 19456U, 11574U}; static u16 const lpphy_rev2plus_noise_scale_table[53U] = { 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 0U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U, 164U}; static u16 const lpphy_crs_gain_nft_table[33U] = { 870U, 874U, 879U, 868U, 871U, 877U, 884U, 895U, 879U, 891U, 906U, 888U, 871U, 877U, 885U, 897U, 884U, 897U, 914U, 937U, 964U, 993U, 1U, 31U, 64U, 94U, 127U, 158U, 189U, 221U, 253U, 285U, 317U}; static u16 const lpphy_rev01_filter_control_table[10U] = { 41212U, 4348U, 4315U, 8375U, 65427U, 4287U, 4251U, 8311U, 65363U, 295U}; static u32 const lpphy_rev2plus_filter_control_table[10U] = { 82428U, 8700U, 8631U, 16751U, 130855U, 8575U, 8503U, 16623U, 130727U, 591U}; static u32 const lpphy_rev01_ps_control_table[40U] = { 65536U, 160U, 262144U, 72U, 134742273U, 128U, 134742273U, 64U, 134742273U, 192U, 145233153U, 192U, 266927361U, 192U, 137363717U, 192U, 134742529U, 192U, 136839685U, 192U, 3892839166U, 199U, 671613446U, 192U, 134742530U, 192U, 195589634U, 192U, 275251517U, 192U, 271057157U, 192U, 143130882U, 192U, 136839430U, 192U, 3892838909U, 199U, 2819096853U, 192U}; static u32 const lpphy_rev2plus_ps_control_table[20U] = { 14913032U, 14716472U, 0U, 0U, 0U, 8320U, 24960U, 12290U, 64U, 8258U, 1572935U, 524355U, 65U, 8385U, 286726U, 270338U, 262144U, 8195U, 1572870U, 524290U}; static u8 const lpphy_pll_fraction_table[16U] = { 128U, 128U, 128U, 128U, 128U, 128U, 0U, 0U, 128U, 128U, 128U, 128U, 128U, 128U, 128U, 128U}; static u16 const lpphy_iqlo_cal_table[108U] = { 512U, 768U, 1024U, 1536U, 2048U, 2816U, 4096U, 4097U, 4098U, 4099U, 4100U, 4101U, 4102U, 4103U, 5895U, 8199U, 11527U, 16391U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 512U, 768U, 1024U, 1536U, 2048U, 2816U, 4096U, 4097U, 4098U, 4099U, 4100U, 4101U, 4102U, 4103U, 5895U, 8199U, 11527U, 16391U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 16384U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u16 const lpphy_rev0_ofdm_cck_gain_table[33U] = { 1U, 1U, 1U, 1U, 4097U, 8193U, 12289U, 16385U, 20481U, 24577U, 28673U, 28689U, 28705U, 8245U, 8261U, 8277U, 8293U, 8309U, 109U, 125U, 333U, 349U, 4445U, 861U, 4957U, 1373U, 5469U, 3421U, 7517U, 11613U, 21853U, 25949U, 30045U}; static u16 const lpphy_rev1_ofdm_cck_gain_table[33U] = { 20480U, 24576U, 28672U, 1U, 4097U, 8193U, 12289U, 16385U, 20481U, 24577U, 28673U, 28689U, 28705U, 8245U, 8261U, 8277U, 8293U, 8309U, 109U, 125U, 333U, 349U, 4445U, 861U, 4957U, 1373U, 5469U, 3421U, 7517U, 11613U, 21853U, 25949U, 30045U}; static u16 const lpphy_gain_delta_table[9U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u32 const lpphy_tx_power_control_table[576U] = { 80U, 79U, 78U, 77U, 76U, 75U, 74U, 73U, 72U, 71U, 70U, 69U, 68U, 67U, 66U, 65U, 64U, 63U, 62U, 61U, 60U, 59U, 58U, 57U, 56U, 55U, 54U, 53U, 52U, 51U, 50U, 49U, 48U, 47U, 46U, 45U, 44U, 43U, 42U, 41U, 40U, 39U, 38U, 37U, 36U, 35U, 34U, 33U, 32U, 31U, 30U, 29U, 28U, 27U, 26U, 25U, 24U, 23U, 22U, 21U, 20U, 19U, 18U, 17U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 30112U, 30112U, 30113U, 30113U, 30114U, 30114U, 30115U, 30115U, 29872U, 29872U, 29873U, 29873U, 29874U, 29874U, 29875U, 29875U, 27936U, 27936U, 27937U, 27937U, 27938U, 27938U, 27939U, 27939U, 18016U, 18016U, 18017U, 18017U, 18018U, 18018U, 18019U, 18019U, 15968U, 15968U, 15969U, 15969U, 15970U, 15970U, 15971U, 15971U, 13920U, 13920U, 13921U, 13921U, 13922U, 13922U, 13923U, 13923U, 11872U, 11872U, 11873U, 11873U, 11874U, 11874U, 11875U, 11875U, 9824U, 9824U, 9825U, 9825U, 9826U, 9826U, 9827U, 9827U, 9696U, 9696U, 9697U, 9697U, 9698U, 9698U, 9699U, 9699U, 7648U, 7648U, 7649U, 7649U, 7650U, 7650U, 7651U, 7651U, 7520U, 7520U, 7521U, 7521U, 7522U, 7522U, 7523U, 7523U, 5472U, 5472U, 5473U, 5473U, 5474U, 5474U, 5475U, 5475U, 3424U, 3424U, 3425U, 3425U, 3426U, 3426U, 3427U, 3427U, 3296U, 3296U, 3297U, 3297U, 3298U, 3298U, 3299U, 3299U, 3600U, 3600U, 3601U, 3601U, 3602U, 3602U, 3603U, 3603U, 3056U, 3056U, 3057U, 3057U, 3058U, 3058U, 3059U, 3059U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 69206016U, 67108864U, 255U, 764U, 64008U, 773U, 518U, 772U, 64260U, 64767U, 1531U, 64769U, 1025U, 6U, 65283U, 2044U, 64520U, 515U, 65531U, 1536U, 64001U, 64515U, 65030U, 65024U, 258U, 2045U, 1275U, 1791U, 1277U, 65018U, 2043U, 65018U, 64006U, 1280U, 63746U, 2042U, 64250U, 1280U, 2042U, 1792U, 773U, 1279U, 2049U, 1283U, 1529U, 1028U, 64264U, 1533U, 1281U, 1029U, 64259U, 2044U, 1027U, 771U, 1026U, 64255U, 65029U, 1533U, 65025U, 2042U, 514U, 1284U, 258U, 2302U, 64004U, 64252U, 65032U, 249U, 762U, 1022U, 772U, 1273U, 256U, 64774U, 2300U, 1793U, 1284U, 65022U, 65020U, 1022U, 1796U, 764U, 1273U, 65021U, 64007U, 517U, 1021U, 1531U, 1273U, 2052U, 64518U, 64761U, 256U, 65029U, 1032U, 64258U, 772U, 1790U, 1274U, 773U, 2300U, 258U, 509U, 1276U, 65027U, 1793U, 507U, 505U, 518U, 1789U, 1288U, 1792U, 772U, 1534U, 1535U, 64004U, 771U, 65275U, 2041U, 65276U, 1277U, 1532U, 65533U, 64520U, 64505U, 64775U, 2299U, 65026U, 1787U, 1794U}; static u32 const lpphy_gain_idx_table[148U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 268435457U, 0U, 536871042U, 0U, 1073742084U, 0U, 1610629639U, 1U, 1879081866U, 1U, 3491824909U, 1U, 3762407043U, 1U, 1350731781U, 0U, 2162377352U, 0U, 2974024715U, 0U, 3785753998U, 0U, 302401297U, 1U, 2963375634U, 16U, 3775022996U, 16U, 291703061U, 17U, 834914843U, 17U, 3246688924U, 24U, 4058320288U, 24U, 575049249U, 25U, 1116131363U, 25U, 2739392676U, 25U, 3009941926U, 25U, 4092105255U, 25U, 67687209U, 26U, 608785322U, 26U, 879334571U, 26U, 1420432684U, 26U, 1690981805U, 26U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 268435457U, 0U, 536871042U, 0U, 1073742084U, 0U, 1610629639U, 1U, 1879081866U, 1U, 3491824909U, 1U, 3762407043U, 1U, 1350731781U, 0U, 2162377352U, 0U, 2974024715U, 0U, 3785753998U, 0U, 302401297U, 1U, 2963375634U, 16U, 3775022996U, 16U, 291703061U, 17U, 834914843U, 17U, 3246688924U, 24U, 4058320288U, 24U, 575049249U, 25U, 1116131363U, 25U, 2739392676U, 25U, 3009941926U, 25U, 4092105255U, 25U, 67687209U, 26U, 608785322U, 26U, 879334571U, 26U, 1420432684U, 26U, 1690981805U, 26U}; static u16 const lpphy_aux_gain_idx_table[26U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1U, 2U, 4U, 22U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1U, 2U, 4U, 22U}; static u32 const lpphy_gain_value_table[68U] = { 8U, 14U, 20U, 26U, 251U, 4U, 8U, 13U, 1U, 4U, 7U, 10U, 13U, 16U, 18U, 21U, 0U, 6U, 12U, 0U, 0U, 0U, 18U, 0U, 0U, 0U, 24U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 30U, 0U, 0U, 0U, 0U, 0U, 0U, 3U, 6U, 9U, 12U, 15U, 18U, 21U, 24U, 27U, 30U, 0U, 0U, 0U, 0U, 0U, 9U, 241U, 0U, 0U}; static u16 const lpphy_gain_table[96U] = { 0U, 1024U, 2048U, 2050U, 2052U, 2054U, 2055U, 2056U, 2058U, 2059U, 2060U, 2062U, 2063U, 2064U, 2066U, 2067U, 2068U, 2070U, 2071U, 2074U, 2075U, 2079U, 2080U, 2084U, 2096U, 2100U, 2103U, 2107U, 2111U, 2112U, 2116U, 2135U, 2139U, 2143U, 2263U, 2267U, 2271U, 2391U, 2395U, 2399U, 2903U, 2907U, 2911U, 3935U, 4959U, 5983U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u32 const lpphy_a0_gain_idx_table[64U] = { 1118688U, 6627409U, 6316117U, 5963866U, 5591136U, 5312613U, 5013611U, 4706418U, 4472952U, 4194432U, 3973255U, 3752079U, 3530904U, 3334305U, 3158186U, 2982068U, 2810047U, 2654410U, 2506966U, 2363619U, 2236656U, 2105599U, 1986830U, 1876254U, 1769775U, 1675584U, 1581395U, 1491304U, 1409405U, 1331603U, 1253803U, 1184197U, 1118688U, 1057276U, 995866U, 938554U, 889436U, 840319U, 791205U, 746189U, 705272U, 664357U, 627541U, 594823U, 558013U, 529397U, 500786U, 472177U, 443573U, 419068U, 398663U, 374168U, 353772U, 333382U, 317093U, 296714U, 280437U, 264166U, 251998U, 235741U, 223587U, 211442U, 199305U, 187176U}; static u16 const lpphy_a0_aux_gain_idx_table[26U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 2U, 20U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 2U, 20U}; static u32 const lpphy_a0_gain_value_table[68U] = { 8U, 14U, 20U, 26U, 251U, 4U, 8U, 13U, 1U, 4U, 7U, 10U, 13U, 16U, 18U, 21U, 0U, 6U, 12U, 0U, 0U, 0U, 18U, 0U, 0U, 0U, 24U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 30U, 0U, 0U, 0U, 0U, 0U, 0U, 3U, 6U, 9U, 12U, 15U, 18U, 21U, 24U, 27U, 30U, 0U, 0U, 0U, 0U, 0U, 15U, 247U, 0U, 0U}; static u16 const lpphy_a0_gain_table[96U] = { 0U, 2U, 4U, 6U, 7U, 8U, 10U, 11U, 12U, 14U, 15U, 16U, 18U, 19U, 20U, 22U, 23U, 26U, 27U, 31U, 32U, 36U, 48U, 52U, 55U, 59U, 63U, 64U, 68U, 87U, 91U, 95U, 215U, 219U, 223U, 343U, 347U, 351U, 855U, 859U, 863U, 1887U, 2911U, 3935U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u16 const lpphy_sw_control_table[64U] = { 296U, 296U, 9U, 9U, 40U, 40U, 40U, 40U, 296U, 296U, 9U, 9U, 40U, 40U, 40U, 40U, 9U, 9U, 9U, 9U, 9U, 9U, 9U, 9U, 24U, 24U, 24U, 24U, 24U, 24U, 24U, 24U, 296U, 296U, 9U, 9U, 40U, 40U, 40U, 40U, 296U, 296U, 9U, 9U, 40U, 40U, 40U, 40U, 9U, 9U, 9U, 9U, 9U, 9U, 9U, 9U, 24U, 24U, 24U, 24U, 24U, 24U, 24U, 24U}; static u8 const lpphy_hf_table[16U] = { 75U, 54U, 36U, 24U, 73U, 52U, 35U, 23U, 72U, 51U, 35U, 23U, 72U, 51U, 35U, 23U}; static u32 const lpphy_papd_eps_table[64U] = { 0U, 81916U, 122867U, 114672U, 147433U, 139231U, 167903U, 212946U, 237515U, 278471U, 323522U, 352181U, 380848U, 409512U, 429987U, 466840U, 520082U, 544651U, 581506U, 622455U, 647017U, 671586U, 712535U, 749388U, 786241U, 827193U, 851760U, 900903U, 937758U, 974614U, 1015571U, 1060625U, 1117968U, 1171217U, 1240853U, 1326876U, 1412903U, 1519413U, 1654599U, 1814367U, 1994622U, 2215844U, 2473938U, 2760712U, 3125319U, 3539088U, 4014304U, 4571445U, 5222793U, 5956055U, 6758941U, 7668314U, 8385169U, 8385215U, 8385251U, 8385279U, 8385301U, 8385321U, 8385343U, 8385366U, 8385390U, 8385436U, 8385601U, 8385798U}; static u32 const lpphy_papd_mult_table[64U] = { 1118688U, 6627409U, 6316117U, 5963866U, 5591136U, 5312613U, 5013611U, 4706418U, 4472952U, 4194432U, 3973255U, 3752079U, 3530904U, 3334305U, 3158186U, 2982068U, 2810047U, 2654410U, 2506966U, 2363619U, 2236656U, 2105599U, 1986830U, 1876254U, 1769775U, 1675584U, 1581395U, 1491304U, 1409405U, 1331603U, 1253803U, 1184197U, 1118688U, 1057276U, 995866U, 938554U, 889436U, 840319U, 791205U, 746189U, 705272U, 664357U, 627541U, 594823U, 558013U, 529397U, 500786U, 472177U, 443573U, 419068U, 398663U, 374168U, 353772U, 333382U, 317093U, 296714U, 280437U, 264166U, 251998U, 235741U, 223587U, 211442U, 199305U, 187176U}; static struct lpphy_tx_gain_table_entry lpphy_rev0_nopa_tx_gain_table[128U] = { {7U, 15U, 14U, 0U, 152U}, {7U, 15U, 14U, 0U, 147U}, {7U, 15U, 14U, 0U, 143U}, {7U, 15U, 14U, 0U, 139U}, {7U, 15U, 14U, 0U, 135U}, {7U, 15U, 14U, 0U, 131U}, {7U, 15U, 14U, 0U, 128U}, {7U, 15U, 14U, 0U, 124U}, {7U, 15U, 14U, 0U, 121U}, {7U, 15U, 14U, 0U, 117U}, {7U, 15U, 14U, 0U, 114U}, {7U, 15U, 14U, 0U, 111U}, {7U, 15U, 14U, 0U, 107U}, {7U, 15U, 14U, 0U, 104U}, {7U, 15U, 14U, 0U, 101U}, {7U, 15U, 14U, 0U, 99U}, {7U, 15U, 14U, 0U, 96U}, {7U, 15U, 14U, 0U, 93U}, {7U, 15U, 14U, 0U, 90U}, {7U, 15U, 14U, 0U, 88U}, {7U, 15U, 14U, 0U, 85U}, {7U, 15U, 14U, 0U, 83U}, {7U, 15U, 14U, 0U, 81U}, {7U, 15U, 14U, 0U, 78U}, {7U, 15U, 14U, 0U, 76U}, {7U, 15U, 14U, 0U, 74U}, {7U, 15U, 14U, 0U, 72U}, {7U, 15U, 14U, 0U, 70U}, {7U, 15U, 14U, 0U, 68U}, {7U, 15U, 14U, 0U, 66U}, {7U, 15U, 14U, 0U, 64U}, {7U, 15U, 14U, 0U, 62U}, {7U, 15U, 14U, 0U, 60U}, {7U, 15U, 14U, 0U, 59U}, {7U, 15U, 14U, 0U, 57U}, {7U, 15U, 13U, 0U, 72U}, {7U, 15U, 13U, 0U, 70U}, {7U, 15U, 13U, 0U, 68U}, {7U, 15U, 13U, 0U, 66U}, {7U, 15U, 13U, 0U, 64U}, {7U, 15U, 13U, 0U, 62U}, {7U, 15U, 13U, 0U, 60U}, {7U, 15U, 13U, 0U, 59U}, {7U, 15U, 13U, 0U, 57U}, {7U, 15U, 12U, 0U, 71U}, {7U, 15U, 12U, 0U, 69U}, {7U, 15U, 12U, 0U, 67U}, {7U, 15U, 12U, 0U, 65U}, {7U, 15U, 12U, 0U, 63U}, {7U, 15U, 12U, 0U, 62U}, {7U, 15U, 12U, 0U, 60U}, {7U, 15U, 12U, 0U, 58U}, {7U, 15U, 12U, 0U, 57U}, {7U, 15U, 11U, 0U, 70U}, {7U, 15U, 11U, 0U, 68U}, {7U, 15U, 11U, 0U, 66U}, {7U, 15U, 11U, 0U, 65U}, {7U, 15U, 11U, 0U, 63U}, {7U, 15U, 11U, 0U, 61U}, {7U, 15U, 11U, 0U, 59U}, {7U, 15U, 11U, 0U, 58U}, {7U, 15U, 10U, 0U, 71U}, {7U, 15U, 10U, 0U, 69U}, {7U, 15U, 10U, 0U, 67U}, {7U, 15U, 10U, 0U, 65U}, {7U, 15U, 10U, 0U, 63U}, {7U, 15U, 10U, 0U, 61U}, {7U, 15U, 10U, 0U, 60U}, {7U, 15U, 10U, 0U, 58U}, {7U, 15U, 10U, 0U, 56U}, {7U, 15U, 9U, 0U, 70U}, {7U, 15U, 9U, 0U, 68U}, {7U, 15U, 9U, 0U, 66U}, {7U, 15U, 9U, 0U, 64U}, {7U, 15U, 9U, 0U, 62U}, {7U, 15U, 9U, 0U, 60U}, {7U, 15U, 9U, 0U, 59U}, {7U, 14U, 9U, 0U, 72U}, {7U, 14U, 9U, 0U, 70U}, {7U, 14U, 9U, 0U, 68U}, {7U, 14U, 9U, 0U, 66U}, {7U, 14U, 9U, 0U, 64U}, {7U, 14U, 9U, 0U, 62U}, {7U, 14U, 9U, 0U, 60U}, {7U, 14U, 9U, 0U, 59U}, {7U, 13U, 9U, 0U, 72U}, {7U, 13U, 9U, 0U, 70U}, {7U, 13U, 9U, 0U, 68U}, {7U, 13U, 9U, 0U, 66U}, {7U, 13U, 9U, 0U, 64U}, {7U, 13U, 9U, 0U, 63U}, {7U, 13U, 9U, 0U, 61U}, {7U, 13U, 9U, 0U, 59U}, {7U, 13U, 9U, 0U, 57U}, {7U, 13U, 8U, 0U, 72U}, {7U, 13U, 8U, 0U, 70U}, {7U, 13U, 8U, 0U, 68U}, {7U, 13U, 8U, 0U, 66U}, {7U, 13U, 8U, 0U, 64U}, {7U, 13U, 8U, 0U, 62U}, {7U, 13U, 8U, 0U, 60U}, {7U, 13U, 8U, 0U, 59U}, {7U, 12U, 8U, 0U, 72U}, {7U, 12U, 8U, 0U, 70U}, {7U, 12U, 8U, 0U, 68U}, {7U, 12U, 8U, 0U, 66U}, {7U, 12U, 8U, 0U, 64U}, {7U, 12U, 8U, 0U, 62U}, {7U, 12U, 8U, 0U, 61U}, {7U, 12U, 8U, 0U, 59U}, {7U, 12U, 7U, 0U, 73U}, {7U, 12U, 7U, 0U, 71U}, {7U, 12U, 7U, 0U, 69U}, {7U, 12U, 7U, 0U, 67U}, {7U, 12U, 7U, 0U, 65U}, {7U, 12U, 7U, 0U, 63U}, {7U, 12U, 7U, 0U, 61U}, {7U, 12U, 7U, 0U, 59U}, {7U, 11U, 7U, 0U, 72U}, {7U, 11U, 7U, 0U, 70U}, {7U, 11U, 7U, 0U, 68U}, {7U, 11U, 7U, 0U, 66U}, {7U, 11U, 7U, 0U, 65U}, {7U, 11U, 7U, 0U, 63U}, {7U, 11U, 7U, 0U, 61U}, {7U, 11U, 7U, 0U, 59U}, {7U, 11U, 6U, 0U, 73U}, {7U, 11U, 6U, 0U, 71U}}; static struct lpphy_tx_gain_table_entry lpphy_rev0_2ghz_tx_gain_table[128U] = { {4U, 15U, 9U, 0U, 64U}, {4U, 15U, 9U, 0U, 62U}, {4U, 15U, 9U, 0U, 60U}, {4U, 15U, 9U, 0U, 59U}, {4U, 14U, 9U, 0U, 72U}, {4U, 14U, 9U, 0U, 70U}, {4U, 14U, 9U, 0U, 68U}, {4U, 14U, 9U, 0U, 66U}, {4U, 14U, 9U, 0U, 64U}, {4U, 14U, 9U, 0U, 62U}, {4U, 14U, 9U, 0U, 60U}, {4U, 14U, 9U, 0U, 59U}, {4U, 13U, 9U, 0U, 72U}, {4U, 13U, 9U, 0U, 70U}, {4U, 13U, 9U, 0U, 68U}, {4U, 13U, 9U, 0U, 66U}, {4U, 13U, 9U, 0U, 64U}, {4U, 13U, 9U, 0U, 63U}, {4U, 13U, 9U, 0U, 61U}, {4U, 13U, 9U, 0U, 59U}, {4U, 13U, 9U, 0U, 57U}, {4U, 13U, 8U, 0U, 72U}, {4U, 13U, 8U, 0U, 70U}, {4U, 13U, 8U, 0U, 68U}, {4U, 13U, 8U, 0U, 66U}, {4U, 13U, 8U, 0U, 64U}, {4U, 13U, 8U, 0U, 62U}, {4U, 13U, 8U, 0U, 60U}, {4U, 13U, 8U, 0U, 59U}, {4U, 12U, 8U, 0U, 72U}, {4U, 12U, 8U, 0U, 70U}, {4U, 12U, 8U, 0U, 68U}, {4U, 12U, 8U, 0U, 66U}, {4U, 12U, 8U, 0U, 64U}, {4U, 12U, 8U, 0U, 62U}, {4U, 12U, 8U, 0U, 61U}, {4U, 12U, 8U, 0U, 59U}, {4U, 12U, 7U, 0U, 73U}, {4U, 12U, 7U, 0U, 71U}, {4U, 12U, 7U, 0U, 69U}, {4U, 12U, 7U, 0U, 67U}, {4U, 12U, 7U, 0U, 65U}, {4U, 12U, 7U, 0U, 63U}, {4U, 12U, 7U, 0U, 61U}, {4U, 12U, 7U, 0U, 59U}, {4U, 11U, 7U, 0U, 72U}, {4U, 11U, 7U, 0U, 70U}, {4U, 11U, 7U, 0U, 68U}, {4U, 11U, 7U, 0U, 66U}, {4U, 11U, 7U, 0U, 65U}, {4U, 11U, 7U, 0U, 63U}, {4U, 11U, 7U, 0U, 61U}, {4U, 11U, 7U, 0U, 59U}, {4U, 11U, 6U, 0U, 73U}, {4U, 11U, 6U, 0U, 71U}, {4U, 11U, 6U, 0U, 69U}, {4U, 11U, 6U, 0U, 67U}, {4U, 11U, 6U, 0U, 65U}, {4U, 11U, 6U, 0U, 63U}, {4U, 11U, 6U, 0U, 61U}, {4U, 11U, 6U, 0U, 60U}, {4U, 10U, 6U, 0U, 72U}, {4U, 10U, 6U, 0U, 70U}, {4U, 10U, 6U, 0U, 68U}, {4U, 10U, 6U, 0U, 66U}, {4U, 10U, 6U, 0U, 64U}, {4U, 10U, 6U, 0U, 62U}, {4U, 10U, 6U, 0U, 60U}, {4U, 10U, 6U, 0U, 59U}, {4U, 10U, 5U, 0U, 72U}, {4U, 10U, 5U, 0U, 70U}, {4U, 10U, 5U, 0U, 68U}, {4U, 10U, 5U, 0U, 66U}, {4U, 10U, 5U, 0U, 64U}, {4U, 10U, 5U, 0U, 62U}, {4U, 10U, 5U, 0U, 60U}, {4U, 10U, 5U, 0U, 59U}, {4U, 9U, 5U, 0U, 70U}, {4U, 9U, 5U, 0U, 68U}, {4U, 9U, 5U, 0U, 66U}, {4U, 9U, 5U, 0U, 64U}, {4U, 9U, 5U, 0U, 63U}, {4U, 9U, 5U, 0U, 61U}, {4U, 9U, 5U, 0U, 59U}, {4U, 9U, 4U, 0U, 71U}, {4U, 9U, 4U, 0U, 69U}, {4U, 9U, 4U, 0U, 67U}, {4U, 9U, 4U, 0U, 65U}, {4U, 9U, 4U, 0U, 63U}, {4U, 9U, 4U, 0U, 62U}, {4U, 9U, 4U, 0U, 60U}, {4U, 9U, 4U, 0U, 58U}, {4U, 8U, 4U, 0U, 70U}, {4U, 8U, 4U, 0U, 68U}, {4U, 8U, 4U, 0U, 66U}, {4U, 8U, 4U, 0U, 65U}, {4U, 8U, 4U, 0U, 63U}, {4U, 8U, 4U, 0U, 61U}, {4U, 8U, 4U, 0U, 59U}, {4U, 7U, 4U, 0U, 68U}, {4U, 7U, 4U, 0U, 66U}, {4U, 7U, 4U, 0U, 64U}, {4U, 7U, 4U, 0U, 62U}, {4U, 7U, 4U, 0U, 61U}, {4U, 7U, 4U, 0U, 59U}, {4U, 7U, 3U, 0U, 67U}, {4U, 7U, 3U, 0U, 65U}, {4U, 7U, 3U, 0U, 63U}, {4U, 7U, 3U, 0U, 62U}, {4U, 7U, 3U, 0U, 60U}, {4U, 6U, 3U, 0U, 65U}, {4U, 6U, 3U, 0U, 63U}, {4U, 6U, 3U, 0U, 61U}, {4U, 6U, 3U, 0U, 60U}, {4U, 6U, 3U, 0U, 58U}, {4U, 5U, 3U, 0U, 68U}, {4U, 5U, 3U, 0U, 66U}, {4U, 5U, 3U, 0U, 64U}, {4U, 5U, 3U, 0U, 62U}, {4U, 5U, 3U, 0U, 60U}, {4U, 5U, 3U, 0U, 59U}, {4U, 5U, 3U, 0U, 57U}, {4U, 4U, 2U, 0U, 83U}, {4U, 4U, 2U, 0U, 81U}, {4U, 4U, 2U, 0U, 78U}, {4U, 4U, 2U, 0U, 76U}, {4U, 4U, 2U, 0U, 74U}, {4U, 4U, 2U, 0U, 72U}}; static struct lpphy_tx_gain_table_entry lpphy_rev0_5ghz_tx_gain_table[128U] = { {7U, 15U, 15U, 0U, 99U}, {7U, 15U, 15U, 0U, 96U}, {7U, 15U, 15U, 0U, 93U}, {7U, 15U, 15U, 0U, 90U}, {7U, 15U, 15U, 0U, 88U}, {7U, 15U, 15U, 0U, 85U}, {7U, 15U, 15U, 0U, 83U}, {7U, 15U, 15U, 0U, 81U}, {7U, 15U, 15U, 0U, 78U}, {7U, 15U, 15U, 0U, 76U}, {7U, 15U, 15U, 0U, 74U}, {7U, 15U, 15U, 0U, 72U}, {7U, 15U, 15U, 0U, 70U}, {7U, 15U, 15U, 0U, 68U}, {7U, 15U, 15U, 0U, 66U}, {7U, 15U, 15U, 0U, 64U}, {7U, 15U, 15U, 0U, 62U}, {7U, 15U, 15U, 0U, 60U}, {7U, 15U, 15U, 0U, 59U}, {7U, 15U, 15U, 0U, 57U}, {7U, 15U, 15U, 0U, 55U}, {7U, 15U, 14U, 0U, 72U}, {7U, 15U, 14U, 0U, 70U}, {7U, 15U, 14U, 0U, 68U}, {7U, 15U, 14U, 0U, 66U}, {7U, 15U, 14U, 0U, 64U}, {7U, 15U, 14U, 0U, 62U}, {7U, 15U, 14U, 0U, 60U}, {7U, 15U, 14U, 0U, 58U}, {7U, 15U, 14U, 0U, 56U}, {7U, 15U, 14U, 0U, 55U}, {7U, 15U, 13U, 0U, 71U}, {7U, 15U, 13U, 0U, 69U}, {7U, 15U, 13U, 0U, 67U}, {7U, 15U, 13U, 0U, 65U}, {7U, 15U, 13U, 0U, 63U}, {7U, 15U, 13U, 0U, 62U}, {7U, 15U, 13U, 0U, 60U}, {7U, 15U, 13U, 0U, 58U}, {7U, 15U, 13U, 0U, 56U}, {7U, 15U, 12U, 0U, 72U}, {7U, 15U, 12U, 0U, 70U}, {7U, 15U, 12U, 0U, 68U}, {7U, 15U, 12U, 0U, 66U}, {7U, 15U, 12U, 0U, 64U}, {7U, 15U, 12U, 0U, 62U}, {7U, 15U, 12U, 0U, 60U}, {7U, 15U, 12U, 0U, 59U}, {7U, 15U, 12U, 0U, 57U}, {7U, 15U, 11U, 0U, 73U}, {7U, 15U, 11U, 0U, 71U}, {7U, 15U, 11U, 0U, 69U}, {7U, 15U, 11U, 0U, 67U}, {7U, 15U, 11U, 0U, 65U}, {7U, 15U, 11U, 0U, 63U}, {7U, 15U, 11U, 0U, 61U}, {7U, 15U, 11U, 0U, 60U}, {7U, 15U, 11U, 0U, 58U}, {7U, 15U, 10U, 0U, 71U}, {7U, 15U, 10U, 0U, 69U}, {7U, 15U, 10U, 0U, 67U}, {7U, 15U, 10U, 0U, 65U}, {7U, 15U, 10U, 0U, 63U}, {7U, 15U, 10U, 0U, 61U}, {7U, 15U, 10U, 0U, 60U}, {7U, 15U, 10U, 0U, 58U}, {7U, 15U, 9U, 0U, 70U}, {7U, 15U, 9U, 0U, 68U}, {7U, 15U, 9U, 0U, 66U}, {7U, 15U, 9U, 0U, 64U}, {7U, 15U, 9U, 0U, 62U}, {7U, 15U, 9U, 0U, 61U}, {7U, 15U, 9U, 0U, 59U}, {7U, 15U, 9U, 0U, 57U}, {7U, 15U, 9U, 0U, 56U}, {7U, 14U, 9U, 0U, 68U}, {7U, 14U, 9U, 0U, 66U}, {7U, 14U, 9U, 0U, 65U}, {7U, 14U, 9U, 0U, 63U}, {7U, 14U, 9U, 0U, 61U}, {7U, 14U, 9U, 0U, 59U}, {7U, 14U, 9U, 0U, 58U}, {7U, 13U, 9U, 0U, 70U}, {7U, 13U, 9U, 0U, 68U}, {7U, 13U, 9U, 0U, 66U}, {7U, 13U, 9U, 0U, 64U}, {7U, 13U, 9U, 0U, 63U}, {7U, 13U, 9U, 0U, 61U}, {7U, 13U, 9U, 0U, 59U}, {7U, 13U, 9U, 0U, 57U}, {7U, 13U, 8U, 0U, 70U}, {7U, 13U, 8U, 0U, 68U}, {7U, 13U, 8U, 0U, 66U}, {7U, 13U, 8U, 0U, 64U}, {7U, 13U, 8U, 0U, 62U}, {7U, 13U, 8U, 0U, 60U}, {7U, 13U, 8U, 0U, 59U}, {7U, 13U, 8U, 0U, 57U}, {7U, 12U, 8U, 0U, 70U}, {7U, 12U, 8U, 0U, 68U}, {7U, 12U, 8U, 0U, 66U}, {7U, 12U, 8U, 0U, 64U}, {7U, 12U, 8U, 0U, 62U}, {7U, 12U, 8U, 0U, 61U}, {7U, 12U, 8U, 0U, 59U}, {7U, 12U, 8U, 0U, 57U}, {7U, 12U, 7U, 0U, 70U}, {7U, 12U, 7U, 0U, 68U}, {7U, 12U, 7U, 0U, 66U}, {7U, 12U, 7U, 0U, 64U}, {7U, 12U, 7U, 0U, 62U}, {7U, 12U, 7U, 0U, 61U}, {7U, 12U, 7U, 0U, 59U}, {7U, 12U, 7U, 0U, 57U}, {7U, 11U, 7U, 0U, 70U}, {7U, 11U, 7U, 0U, 68U}, {7U, 11U, 7U, 0U, 66U}, {7U, 11U, 7U, 0U, 64U}, {7U, 11U, 7U, 0U, 62U}, {7U, 11U, 7U, 0U, 61U}, {7U, 11U, 7U, 0U, 59U}, {7U, 11U, 7U, 0U, 57U}, {7U, 11U, 6U, 0U, 69U}, {7U, 11U, 6U, 0U, 67U}, {7U, 11U, 6U, 0U, 65U}, {7U, 11U, 6U, 0U, 63U}, {7U, 11U, 6U, 0U, 62U}, {7U, 11U, 6U, 0U, 60U}}; static struct lpphy_tx_gain_table_entry lpphy_rev1_nopa_tx_gain_table[137U] = { {7U, 15U, 14U, 0U, 152U}, {7U, 15U, 14U, 0U, 147U}, {7U, 15U, 14U, 0U, 143U}, {7U, 15U, 14U, 0U, 139U}, {7U, 15U, 14U, 0U, 135U}, {7U, 15U, 14U, 0U, 131U}, {7U, 15U, 14U, 0U, 128U}, {7U, 15U, 14U, 0U, 124U}, {7U, 15U, 14U, 0U, 121U}, {7U, 15U, 14U, 0U, 117U}, {7U, 15U, 14U, 0U, 114U}, {7U, 15U, 14U, 0U, 111U}, {7U, 15U, 14U, 0U, 107U}, {7U, 15U, 14U, 0U, 104U}, {7U, 15U, 14U, 0U, 101U}, {7U, 15U, 14U, 0U, 99U}, {7U, 15U, 14U, 0U, 96U}, {7U, 15U, 14U, 0U, 93U}, {7U, 15U, 14U, 0U, 90U}, {7U, 15U, 14U, 0U, 88U}, {7U, 15U, 14U, 0U, 85U}, {7U, 15U, 14U, 0U, 83U}, {7U, 15U, 14U, 0U, 81U}, {7U, 15U, 14U, 0U, 78U}, {7U, 15U, 14U, 0U, 76U}, {7U, 15U, 14U, 0U, 74U}, {7U, 15U, 14U, 0U, 72U}, {7U, 15U, 14U, 0U, 70U}, {7U, 15U, 14U, 0U, 68U}, {7U, 15U, 14U, 0U, 66U}, {7U, 15U, 14U, 0U, 64U}, {7U, 15U, 14U, 0U, 62U}, {7U, 15U, 14U, 0U, 60U}, {7U, 15U, 14U, 0U, 59U}, {7U, 15U, 14U, 0U, 57U}, {7U, 15U, 13U, 0U, 72U}, {7U, 15U, 13U, 0U, 70U}, {7U, 15U, 14U, 0U, 68U}, {7U, 15U, 14U, 0U, 66U}, {7U, 15U, 14U, 0U, 64U}, {7U, 15U, 14U, 0U, 62U}, {7U, 15U, 14U, 0U, 60U}, {7U, 15U, 14U, 0U, 59U}, {7U, 15U, 14U, 0U, 57U}, {7U, 15U, 13U, 0U, 72U}, {7U, 15U, 13U, 0U, 70U}, {7U, 15U, 13U, 0U, 68U}, {7U, 15U, 13U, 0U, 66U}, {7U, 15U, 13U, 0U, 64U}, {7U, 15U, 13U, 0U, 62U}, {7U, 15U, 13U, 0U, 60U}, {7U, 15U, 13U, 0U, 59U}, {7U, 15U, 13U, 0U, 57U}, {7U, 15U, 12U, 0U, 71U}, {7U, 15U, 12U, 0U, 69U}, {7U, 15U, 12U, 0U, 67U}, {7U, 15U, 12U, 0U, 65U}, {7U, 15U, 12U, 0U, 63U}, {7U, 15U, 12U, 0U, 62U}, {7U, 15U, 12U, 0U, 60U}, {7U, 15U, 12U, 0U, 58U}, {7U, 15U, 12U, 0U, 57U}, {7U, 15U, 11U, 0U, 70U}, {7U, 15U, 11U, 0U, 68U}, {7U, 15U, 11U, 0U, 66U}, {7U, 15U, 11U, 0U, 65U}, {7U, 15U, 11U, 0U, 63U}, {7U, 15U, 11U, 0U, 61U}, {7U, 15U, 11U, 0U, 59U}, {7U, 15U, 11U, 0U, 58U}, {7U, 15U, 10U, 0U, 71U}, {7U, 15U, 10U, 0U, 69U}, {7U, 15U, 10U, 0U, 67U}, {7U, 15U, 10U, 0U, 65U}, {7U, 15U, 10U, 0U, 63U}, {7U, 15U, 10U, 0U, 61U}, {7U, 15U, 10U, 0U, 60U}, {7U, 15U, 10U, 0U, 58U}, {7U, 15U, 10U, 0U, 56U}, {7U, 15U, 9U, 0U, 70U}, {7U, 15U, 9U, 0U, 68U}, {7U, 15U, 9U, 0U, 66U}, {7U, 15U, 9U, 0U, 64U}, {7U, 15U, 9U, 0U, 62U}, {7U, 15U, 9U, 0U, 60U}, {7U, 15U, 9U, 0U, 59U}, {7U, 14U, 9U, 0U, 72U}, {7U, 14U, 9U, 0U, 70U}, {7U, 14U, 9U, 0U, 68U}, {7U, 14U, 9U, 0U, 66U}, {7U, 14U, 9U, 0U, 64U}, {7U, 14U, 9U, 0U, 62U}, {7U, 14U, 9U, 0U, 60U}, {7U, 14U, 9U, 0U, 59U}, {7U, 13U, 9U, 0U, 72U}, {7U, 13U, 9U, 0U, 70U}, {7U, 13U, 9U, 0U, 68U}, {7U, 13U, 9U, 0U, 66U}, {7U, 13U, 9U, 0U, 64U}, {7U, 13U, 9U, 0U, 63U}, {7U, 13U, 9U, 0U, 61U}, {7U, 13U, 9U, 0U, 59U}, {7U, 13U, 9U, 0U, 57U}, {7U, 13U, 8U, 0U, 72U}, {7U, 13U, 8U, 0U, 70U}, {7U, 13U, 8U, 0U, 68U}, {7U, 13U, 8U, 0U, 66U}, {7U, 13U, 8U, 0U, 64U}, {7U, 13U, 8U, 0U, 62U}, {7U, 13U, 8U, 0U, 60U}, {7U, 13U, 8U, 0U, 59U}, {7U, 12U, 8U, 0U, 72U}, {7U, 12U, 8U, 0U, 70U}, {7U, 12U, 8U, 0U, 68U}, {7U, 12U, 8U, 0U, 66U}, {7U, 12U, 8U, 0U, 64U}, {7U, 12U, 8U, 0U, 62U}, {7U, 12U, 8U, 0U, 61U}, {7U, 12U, 8U, 0U, 59U}, {7U, 12U, 7U, 0U, 73U}, {7U, 12U, 7U, 0U, 71U}, {7U, 12U, 7U, 0U, 69U}, {7U, 12U, 7U, 0U, 67U}, {7U, 12U, 7U, 0U, 65U}, {7U, 12U, 7U, 0U, 63U}, {7U, 12U, 7U, 0U, 61U}, {7U, 12U, 7U, 0U, 59U}, {7U, 11U, 7U, 0U, 72U}, {7U, 11U, 7U, 0U, 70U}, {7U, 11U, 7U, 0U, 68U}, {7U, 11U, 7U, 0U, 66U}, {7U, 11U, 7U, 0U, 65U}, {7U, 11U, 7U, 0U, 63U}, {7U, 11U, 7U, 0U, 61U}, {7U, 11U, 7U, 0U, 59U}, {7U, 11U, 6U, 0U, 73U}, {7U, 11U, 6U, 0U, 71U}}; static struct lpphy_tx_gain_table_entry lpphy_rev1_2ghz_tx_gain_table[128U] = { {4U, 15U, 15U, 0U, 90U}, {4U, 15U, 15U, 0U, 88U}, {4U, 15U, 15U, 0U, 85U}, {4U, 15U, 15U, 0U, 83U}, {4U, 15U, 15U, 0U, 81U}, {4U, 15U, 15U, 0U, 78U}, {4U, 15U, 15U, 0U, 76U}, {4U, 15U, 15U, 0U, 74U}, {4U, 15U, 15U, 0U, 72U}, {4U, 15U, 15U, 0U, 70U}, {4U, 15U, 15U, 0U, 68U}, {4U, 15U, 15U, 0U, 66U}, {4U, 15U, 15U, 0U, 64U}, {4U, 15U, 15U, 0U, 62U}, {4U, 15U, 15U, 0U, 60U}, {4U, 15U, 15U, 0U, 59U}, {4U, 15U, 14U, 0U, 72U}, {4U, 15U, 14U, 0U, 70U}, {4U, 15U, 14U, 0U, 68U}, {4U, 15U, 14U, 0U, 66U}, {4U, 15U, 14U, 0U, 64U}, {4U, 15U, 14U, 0U, 62U}, {4U, 15U, 14U, 0U, 60U}, {4U, 15U, 14U, 0U, 59U}, {4U, 15U, 13U, 0U, 72U}, {4U, 15U, 13U, 0U, 70U}, {4U, 15U, 13U, 0U, 68U}, {4U, 15U, 13U, 0U, 66U}, {4U, 15U, 13U, 0U, 64U}, {4U, 15U, 13U, 0U, 62U}, {4U, 15U, 13U, 0U, 60U}, {4U, 15U, 13U, 0U, 59U}, {4U, 15U, 12U, 0U, 72U}, {4U, 15U, 12U, 0U, 70U}, {4U, 15U, 12U, 0U, 68U}, {4U, 15U, 12U, 0U, 66U}, {4U, 15U, 12U, 0U, 64U}, {4U, 15U, 12U, 0U, 62U}, {4U, 15U, 12U, 0U, 60U}, {4U, 15U, 12U, 0U, 59U}, {4U, 15U, 11U, 0U, 72U}, {4U, 15U, 11U, 0U, 70U}, {4U, 15U, 11U, 0U, 68U}, {4U, 15U, 11U, 0U, 66U}, {4U, 15U, 11U, 0U, 64U}, {4U, 15U, 11U, 0U, 62U}, {4U, 15U, 11U, 0U, 60U}, {4U, 15U, 11U, 0U, 59U}, {4U, 15U, 10U, 0U, 72U}, {4U, 15U, 10U, 0U, 70U}, {4U, 15U, 10U, 0U, 68U}, {4U, 15U, 10U, 0U, 66U}, {4U, 15U, 10U, 0U, 64U}, {4U, 15U, 10U, 0U, 62U}, {4U, 15U, 10U, 0U, 60U}, {4U, 15U, 10U, 0U, 59U}, {4U, 15U, 9U, 0U, 72U}, {4U, 15U, 9U, 0U, 70U}, {4U, 15U, 9U, 0U, 68U}, {4U, 15U, 9U, 0U, 66U}, {4U, 15U, 9U, 0U, 64U}, {4U, 15U, 9U, 0U, 62U}, {4U, 15U, 9U, 0U, 60U}, {4U, 15U, 9U, 0U, 59U}, {4U, 14U, 9U, 0U, 72U}, {4U, 14U, 9U, 0U, 70U}, {4U, 14U, 9U, 0U, 68U}, {4U, 14U, 9U, 0U, 66U}, {4U, 14U, 9U, 0U, 64U}, {4U, 14U, 9U, 0U, 62U}, {4U, 14U, 9U, 0U, 60U}, {4U, 14U, 9U, 0U, 59U}, {4U, 13U, 9U, 0U, 72U}, {4U, 13U, 9U, 0U, 70U}, {4U, 13U, 9U, 0U, 68U}, {4U, 13U, 9U, 0U, 66U}, {4U, 13U, 9U, 0U, 64U}, {4U, 13U, 9U, 0U, 63U}, {4U, 13U, 9U, 0U, 61U}, {4U, 13U, 9U, 0U, 59U}, {4U, 13U, 9U, 0U, 57U}, {4U, 13U, 8U, 0U, 72U}, {4U, 13U, 8U, 0U, 70U}, {4U, 13U, 8U, 0U, 68U}, {4U, 13U, 8U, 0U, 66U}, {4U, 13U, 8U, 0U, 64U}, {4U, 13U, 8U, 0U, 62U}, {4U, 13U, 8U, 0U, 60U}, {4U, 13U, 8U, 0U, 59U}, {4U, 12U, 8U, 0U, 72U}, {4U, 12U, 8U, 0U, 70U}, {4U, 12U, 8U, 0U, 68U}, {4U, 12U, 8U, 0U, 66U}, {4U, 12U, 8U, 0U, 64U}, {4U, 12U, 8U, 0U, 62U}, {4U, 12U, 8U, 0U, 61U}, {4U, 12U, 8U, 0U, 59U}, {4U, 12U, 7U, 0U, 73U}, {4U, 12U, 7U, 0U, 71U}, {4U, 12U, 7U, 0U, 69U}, {4U, 12U, 7U, 0U, 67U}, {4U, 12U, 7U, 0U, 65U}, {4U, 12U, 7U, 0U, 63U}, {4U, 12U, 7U, 0U, 61U}, {4U, 12U, 7U, 0U, 59U}, {4U, 11U, 7U, 0U, 72U}, {4U, 11U, 7U, 0U, 70U}, {4U, 11U, 7U, 0U, 68U}, {4U, 11U, 7U, 0U, 66U}, {4U, 11U, 7U, 0U, 65U}, {4U, 11U, 7U, 0U, 63U}, {4U, 11U, 7U, 0U, 61U}, {4U, 11U, 7U, 0U, 59U}, {4U, 11U, 6U, 0U, 73U}, {4U, 11U, 6U, 0U, 71U}, {4U, 11U, 6U, 0U, 69U}, {4U, 11U, 6U, 0U, 67U}, {4U, 11U, 6U, 0U, 65U}, {4U, 11U, 6U, 0U, 63U}, {4U, 11U, 6U, 0U, 61U}, {4U, 11U, 6U, 0U, 60U}, {4U, 10U, 6U, 0U, 72U}, {4U, 10U, 6U, 0U, 70U}, {4U, 10U, 6U, 0U, 68U}, {4U, 10U, 6U, 0U, 66U}, {4U, 10U, 6U, 0U, 64U}, {4U, 10U, 6U, 0U, 62U}, {4U, 10U, 6U, 0U, 60U}}; static struct lpphy_tx_gain_table_entry lpphy_rev1_5ghz_tx_gain_table[128U] = { {7U, 15U, 15U, 0U, 99U}, {7U, 15U, 15U, 0U, 96U}, {7U, 15U, 15U, 0U, 93U}, {7U, 15U, 15U, 0U, 90U}, {7U, 15U, 15U, 0U, 88U}, {7U, 15U, 15U, 0U, 85U}, {7U, 15U, 15U, 0U, 83U}, {7U, 15U, 15U, 0U, 81U}, {7U, 15U, 15U, 0U, 78U}, {7U, 15U, 15U, 0U, 76U}, {7U, 15U, 15U, 0U, 74U}, {7U, 15U, 15U, 0U, 72U}, {7U, 15U, 15U, 0U, 70U}, {7U, 15U, 15U, 0U, 68U}, {7U, 15U, 15U, 0U, 66U}, {7U, 15U, 15U, 0U, 64U}, {7U, 15U, 15U, 0U, 62U}, {7U, 15U, 15U, 0U, 60U}, {7U, 15U, 15U, 0U, 59U}, {7U, 15U, 15U, 0U, 57U}, {7U, 15U, 15U, 0U, 55U}, {7U, 15U, 14U, 0U, 72U}, {7U, 15U, 14U, 0U, 70U}, {7U, 15U, 14U, 0U, 68U}, {7U, 15U, 14U, 0U, 66U}, {7U, 15U, 14U, 0U, 64U}, {7U, 15U, 14U, 0U, 62U}, {7U, 15U, 14U, 0U, 60U}, {7U, 15U, 14U, 0U, 58U}, {7U, 15U, 14U, 0U, 56U}, {7U, 15U, 14U, 0U, 55U}, {7U, 15U, 13U, 0U, 71U}, {7U, 15U, 13U, 0U, 69U}, {7U, 15U, 13U, 0U, 67U}, {7U, 15U, 13U, 0U, 65U}, {7U, 15U, 13U, 0U, 63U}, {7U, 15U, 13U, 0U, 62U}, {7U, 15U, 13U, 0U, 60U}, {7U, 15U, 13U, 0U, 58U}, {7U, 15U, 13U, 0U, 56U}, {7U, 15U, 12U, 0U, 72U}, {7U, 15U, 12U, 0U, 70U}, {7U, 15U, 12U, 0U, 68U}, {7U, 15U, 12U, 0U, 66U}, {7U, 15U, 12U, 0U, 64U}, {7U, 15U, 12U, 0U, 62U}, {7U, 15U, 12U, 0U, 60U}, {7U, 15U, 12U, 0U, 59U}, {7U, 15U, 12U, 0U, 57U}, {7U, 15U, 11U, 0U, 73U}, {7U, 15U, 11U, 0U, 71U}, {7U, 15U, 11U, 0U, 69U}, {7U, 15U, 11U, 0U, 67U}, {7U, 15U, 11U, 0U, 65U}, {7U, 15U, 11U, 0U, 63U}, {7U, 15U, 11U, 0U, 61U}, {7U, 15U, 11U, 0U, 60U}, {7U, 15U, 11U, 0U, 58U}, {7U, 15U, 10U, 0U, 71U}, {7U, 15U, 10U, 0U, 69U}, {7U, 15U, 10U, 0U, 67U}, {7U, 15U, 10U, 0U, 65U}, {7U, 15U, 10U, 0U, 63U}, {7U, 15U, 10U, 0U, 61U}, {7U, 15U, 10U, 0U, 60U}, {7U, 15U, 10U, 0U, 58U}, {7U, 15U, 9U, 0U, 70U}, {7U, 15U, 9U, 0U, 68U}, {7U, 15U, 9U, 0U, 66U}, {7U, 15U, 9U, 0U, 64U}, {7U, 15U, 9U, 0U, 62U}, {7U, 15U, 9U, 0U, 61U}, {7U, 15U, 9U, 0U, 59U}, {7U, 15U, 9U, 0U, 57U}, {7U, 15U, 9U, 0U, 56U}, {7U, 14U, 9U, 0U, 68U}, {7U, 14U, 9U, 0U, 66U}, {7U, 14U, 9U, 0U, 65U}, {7U, 14U, 9U, 0U, 63U}, {7U, 14U, 9U, 0U, 61U}, {7U, 14U, 9U, 0U, 59U}, {7U, 14U, 9U, 0U, 58U}, {7U, 13U, 9U, 0U, 70U}, {7U, 13U, 9U, 0U, 68U}, {7U, 13U, 9U, 0U, 66U}, {7U, 13U, 9U, 0U, 64U}, {7U, 13U, 9U, 0U, 63U}, {7U, 13U, 9U, 0U, 61U}, {7U, 13U, 9U, 0U, 59U}, {7U, 13U, 9U, 0U, 57U}, {7U, 13U, 8U, 0U, 70U}, {7U, 13U, 8U, 0U, 68U}, {7U, 13U, 8U, 0U, 66U}, {7U, 13U, 8U, 0U, 64U}, {7U, 13U, 8U, 0U, 62U}, {7U, 13U, 8U, 0U, 60U}, {7U, 13U, 8U, 0U, 59U}, {7U, 13U, 8U, 0U, 57U}, {7U, 12U, 8U, 0U, 70U}, {7U, 12U, 8U, 0U, 68U}, {7U, 12U, 8U, 0U, 66U}, {7U, 12U, 8U, 0U, 64U}, {7U, 12U, 8U, 0U, 62U}, {7U, 12U, 8U, 0U, 61U}, {7U, 12U, 8U, 0U, 59U}, {7U, 12U, 8U, 0U, 57U}, {7U, 12U, 7U, 0U, 70U}, {7U, 12U, 7U, 0U, 68U}, {7U, 12U, 7U, 0U, 66U}, {7U, 12U, 7U, 0U, 64U}, {7U, 12U, 7U, 0U, 62U}, {7U, 12U, 7U, 0U, 61U}, {7U, 12U, 7U, 0U, 59U}, {7U, 12U, 7U, 0U, 57U}, {7U, 11U, 7U, 0U, 70U}, {7U, 11U, 7U, 0U, 68U}, {7U, 11U, 7U, 0U, 66U}, {7U, 11U, 7U, 0U, 64U}, {7U, 11U, 7U, 0U, 62U}, {7U, 11U, 7U, 0U, 61U}, {7U, 11U, 7U, 0U, 59U}, {7U, 11U, 7U, 0U, 57U}, {7U, 11U, 6U, 0U, 69U}, {7U, 11U, 6U, 0U, 67U}, {7U, 11U, 6U, 0U, 65U}, {7U, 11U, 6U, 0U, 63U}, {7U, 11U, 6U, 0U, 62U}, {7U, 11U, 6U, 0U, 60U}}; static struct lpphy_tx_gain_table_entry lpphy_rev2_nopa_tx_gain_table[128U] = { {255U, 255U, 203U, 0U, 152U}, {255U, 255U, 203U, 0U, 147U}, {255U, 255U, 203U, 0U, 143U}, {255U, 255U, 203U, 0U, 139U}, {255U, 255U, 203U, 0U, 135U}, {255U, 255U, 203U, 0U, 131U}, {255U, 255U, 203U, 0U, 128U}, {255U, 255U, 203U, 0U, 124U}, {255U, 255U, 203U, 0U, 121U}, {255U, 255U, 203U, 0U, 117U}, {255U, 255U, 203U, 0U, 114U}, {255U, 255U, 203U, 0U, 111U}, {255U, 255U, 203U, 0U, 107U}, {255U, 255U, 203U, 0U, 104U}, {255U, 255U, 203U, 0U, 101U}, {255U, 255U, 203U, 0U, 99U}, {255U, 255U, 203U, 0U, 96U}, {255U, 255U, 203U, 0U, 93U}, {255U, 255U, 203U, 0U, 90U}, {255U, 255U, 203U, 0U, 88U}, {255U, 255U, 203U, 0U, 85U}, {255U, 255U, 203U, 0U, 83U}, {255U, 255U, 203U, 0U, 81U}, {255U, 255U, 203U, 0U, 78U}, {255U, 255U, 203U, 0U, 76U}, {255U, 255U, 203U, 0U, 74U}, {255U, 255U, 203U, 0U, 72U}, {255U, 255U, 203U, 0U, 70U}, {255U, 255U, 203U, 0U, 68U}, {255U, 255U, 203U, 0U, 66U}, {255U, 255U, 203U, 0U, 64U}, {255U, 255U, 197U, 0U, 64U}, {255U, 255U, 192U, 0U, 64U}, {255U, 255U, 186U, 0U, 64U}, {255U, 255U, 181U, 0U, 64U}, {255U, 255U, 176U, 0U, 64U}, {255U, 255U, 171U, 0U, 64U}, {255U, 255U, 166U, 0U, 64U}, {255U, 255U, 161U, 0U, 64U}, {255U, 255U, 157U, 0U, 64U}, {255U, 255U, 152U, 0U, 64U}, {255U, 255U, 148U, 0U, 64U}, {255U, 255U, 144U, 0U, 64U}, {255U, 255U, 140U, 0U, 64U}, {255U, 255U, 136U, 0U, 64U}, {255U, 255U, 132U, 0U, 64U}, {255U, 255U, 128U, 0U, 64U}, {255U, 255U, 124U, 0U, 64U}, {255U, 255U, 121U, 0U, 64U}, {255U, 255U, 117U, 0U, 64U}, {255U, 255U, 114U, 0U, 64U}, {255U, 255U, 111U, 0U, 64U}, {255U, 255U, 108U, 0U, 64U}, {255U, 255U, 105U, 0U, 64U}, {255U, 255U, 102U, 0U, 64U}, {255U, 255U, 99U, 0U, 64U}, {255U, 255U, 96U, 0U, 64U}, {255U, 255U, 93U, 0U, 64U}, {255U, 255U, 91U, 0U, 64U}, {255U, 255U, 88U, 0U, 64U}, {255U, 255U, 86U, 0U, 64U}, {255U, 255U, 83U, 0U, 64U}, {255U, 255U, 81U, 0U, 64U}, {255U, 255U, 79U, 0U, 64U}, {255U, 255U, 76U, 0U, 64U}, {255U, 255U, 74U, 0U, 64U}, {255U, 255U, 72U, 0U, 64U}, {255U, 255U, 70U, 0U, 64U}, {255U, 255U, 68U, 0U, 64U}, {255U, 255U, 66U, 0U, 64U}, {255U, 255U, 64U, 0U, 64U}, {255U, 248U, 64U, 0U, 64U}, {255U, 248U, 62U, 0U, 64U}, {255U, 241U, 62U, 0U, 64U}, {255U, 241U, 60U, 0U, 64U}, {255U, 234U, 60U, 0U, 64U}, {255U, 234U, 59U, 0U, 64U}, {255U, 227U, 59U, 0U, 64U}, {255U, 227U, 57U, 0U, 64U}, {255U, 221U, 57U, 0U, 64U}, {255U, 221U, 55U, 0U, 64U}, {255U, 215U, 55U, 0U, 64U}, {255U, 215U, 54U, 0U, 64U}, {255U, 208U, 54U, 0U, 64U}, {255U, 208U, 52U, 0U, 64U}, {255U, 203U, 52U, 0U, 64U}, {255U, 203U, 51U, 0U, 64U}, {255U, 197U, 51U, 0U, 64U}, {255U, 197U, 49U, 0U, 64U}, {255U, 191U, 49U, 0U, 64U}, {255U, 191U, 48U, 0U, 64U}, {255U, 186U, 48U, 0U, 64U}, {255U, 186U, 47U, 0U, 64U}, {255U, 181U, 47U, 0U, 64U}, {255U, 181U, 45U, 0U, 64U}, {255U, 175U, 45U, 0U, 64U}, {255U, 175U, 44U, 0U, 64U}, {255U, 170U, 44U, 0U, 64U}, {255U, 170U, 43U, 0U, 64U}, {255U, 166U, 43U, 0U, 64U}, {255U, 166U, 42U, 0U, 64U}, {255U, 161U, 42U, 0U, 64U}, {255U, 161U, 40U, 0U, 64U}, {255U, 156U, 40U, 0U, 64U}, {255U, 156U, 39U, 0U, 64U}, {255U, 152U, 39U, 0U, 64U}, {255U, 152U, 38U, 0U, 64U}, {255U, 148U, 38U, 0U, 64U}, {255U, 148U, 37U, 0U, 64U}, {255U, 143U, 37U, 0U, 64U}, {255U, 143U, 36U, 0U, 64U}, {255U, 139U, 36U, 0U, 64U}, {255U, 139U, 35U, 0U, 64U}, {255U, 135U, 35U, 0U, 64U}, {255U, 135U, 34U, 0U, 64U}, {255U, 132U, 34U, 0U, 64U}, {255U, 132U, 33U, 0U, 64U}, {255U, 128U, 33U, 0U, 64U}, {255U, 128U, 32U, 0U, 64U}, {255U, 124U, 32U, 0U, 64U}, {255U, 124U, 31U, 0U, 64U}, {255U, 121U, 31U, 0U, 64U}, {255U, 121U, 30U, 0U, 64U}, {255U, 117U, 30U, 0U, 64U}, {255U, 117U, 29U, 0U, 64U}, {255U, 114U, 29U, 0U, 64U}, {255U, 114U, 29U, 0U, 64U}, {255U, 111U, 29U, 0U, 64U}}; static struct lpphy_tx_gain_table_entry lpphy_rev2_2ghz_tx_gain_table[128U] = { {7U, 99U, 255U, 0U, 64U}, {7U, 96U, 255U, 0U, 64U}, {7U, 93U, 255U, 0U, 64U}, {7U, 90U, 255U, 0U, 64U}, {7U, 88U, 255U, 0U, 64U}, {7U, 85U, 255U, 0U, 64U}, {7U, 83U, 255U, 0U, 64U}, {7U, 81U, 255U, 0U, 64U}, {7U, 78U, 255U, 0U, 64U}, {7U, 76U, 255U, 0U, 64U}, {7U, 74U, 255U, 0U, 64U}, {7U, 72U, 255U, 0U, 64U}, {7U, 70U, 255U, 0U, 64U}, {7U, 68U, 255U, 0U, 64U}, {7U, 66U, 255U, 0U, 64U}, {7U, 64U, 255U, 0U, 64U}, {7U, 64U, 255U, 0U, 64U}, {7U, 62U, 255U, 0U, 64U}, {7U, 62U, 248U, 0U, 64U}, {7U, 60U, 248U, 0U, 64U}, {7U, 60U, 241U, 0U, 64U}, {7U, 59U, 241U, 0U, 64U}, {7U, 59U, 234U, 0U, 64U}, {7U, 57U, 234U, 0U, 64U}, {7U, 57U, 227U, 0U, 64U}, {7U, 55U, 227U, 0U, 64U}, {7U, 55U, 221U, 0U, 64U}, {7U, 54U, 221U, 0U, 64U}, {7U, 54U, 215U, 0U, 64U}, {7U, 52U, 215U, 0U, 64U}, {7U, 52U, 208U, 0U, 64U}, {7U, 51U, 208U, 0U, 64U}, {7U, 51U, 203U, 0U, 64U}, {7U, 49U, 203U, 0U, 64U}, {7U, 49U, 197U, 0U, 64U}, {7U, 48U, 197U, 0U, 64U}, {7U, 48U, 191U, 0U, 64U}, {7U, 47U, 191U, 0U, 64U}, {7U, 47U, 186U, 0U, 64U}, {7U, 45U, 186U, 0U, 64U}, {7U, 45U, 181U, 0U, 64U}, {7U, 44U, 181U, 0U, 64U}, {7U, 44U, 175U, 0U, 64U}, {7U, 43U, 175U, 0U, 64U}, {7U, 43U, 170U, 0U, 64U}, {7U, 42U, 170U, 0U, 64U}, {7U, 42U, 166U, 0U, 64U}, {7U, 40U, 166U, 0U, 64U}, {7U, 40U, 161U, 0U, 64U}, {7U, 39U, 161U, 0U, 64U}, {7U, 39U, 156U, 0U, 64U}, {7U, 38U, 156U, 0U, 64U}, {7U, 38U, 152U, 0U, 64U}, {7U, 37U, 152U, 0U, 64U}, {7U, 37U, 148U, 0U, 64U}, {7U, 36U, 148U, 0U, 64U}, {7U, 36U, 143U, 0U, 64U}, {7U, 35U, 143U, 0U, 64U}, {7U, 35U, 139U, 0U, 64U}, {7U, 34U, 139U, 0U, 64U}, {7U, 34U, 135U, 0U, 64U}, {7U, 33U, 135U, 0U, 64U}, {7U, 33U, 132U, 0U, 64U}, {7U, 32U, 132U, 0U, 64U}, {7U, 32U, 128U, 0U, 64U}, {7U, 31U, 128U, 0U, 64U}, {7U, 31U, 124U, 0U, 64U}, {7U, 30U, 124U, 0U, 64U}, {7U, 30U, 121U, 0U, 64U}, {7U, 29U, 121U, 0U, 64U}, {7U, 29U, 117U, 0U, 64U}, {7U, 29U, 117U, 0U, 64U}, {7U, 29U, 114U, 0U, 64U}, {7U, 28U, 114U, 0U, 64U}, {7U, 28U, 111U, 0U, 64U}, {7U, 27U, 111U, 0U, 64U}, {7U, 27U, 108U, 0U, 64U}, {7U, 26U, 108U, 0U, 64U}, {7U, 26U, 104U, 0U, 64U}, {7U, 25U, 104U, 0U, 64U}, {7U, 25U, 102U, 0U, 64U}, {7U, 25U, 102U, 0U, 64U}, {7U, 25U, 99U, 0U, 64U}, {7U, 24U, 99U, 0U, 64U}, {7U, 24U, 96U, 0U, 64U}, {7U, 23U, 96U, 0U, 64U}, {7U, 23U, 93U, 0U, 64U}, {7U, 23U, 93U, 0U, 64U}, {7U, 23U, 90U, 0U, 64U}, {7U, 22U, 90U, 0U, 64U}, {7U, 22U, 88U, 0U, 64U}, {7U, 21U, 88U, 0U, 64U}, {7U, 21U, 85U, 0U, 64U}, {7U, 21U, 85U, 0U, 64U}, {7U, 21U, 83U, 0U, 64U}, {7U, 20U, 83U, 0U, 64U}, {7U, 20U, 81U, 0U, 64U}, {7U, 20U, 81U, 0U, 64U}, {7U, 20U, 78U, 0U, 64U}, {7U, 19U, 78U, 0U, 64U}, {7U, 19U, 76U, 0U, 64U}, {7U, 19U, 76U, 0U, 64U}, {7U, 19U, 74U, 0U, 64U}, {7U, 18U, 74U, 0U, 64U}, {7U, 18U, 72U, 0U, 64U}, {7U, 18U, 72U, 0U, 64U}, {7U, 18U, 70U, 0U, 64U}, {7U, 17U, 70U, 0U, 64U}, {7U, 17U, 68U, 0U, 64U}, {7U, 17U, 68U, 0U, 64U}, {7U, 17U, 66U, 0U, 64U}, {7U, 16U, 66U, 0U, 64U}, {7U, 16U, 64U, 0U, 64U}, {7U, 16U, 64U, 0U, 64U}, {7U, 16U, 62U, 0U, 64U}, {7U, 15U, 62U, 0U, 64U}, {7U, 15U, 60U, 0U, 64U}, {7U, 15U, 60U, 0U, 64U}, {7U, 15U, 59U, 0U, 64U}, {7U, 14U, 59U, 0U, 64U}, {7U, 14U, 57U, 0U, 64U}, {7U, 14U, 57U, 0U, 64U}, {7U, 14U, 55U, 0U, 64U}, {7U, 14U, 55U, 0U, 64U}, {7U, 14U, 54U, 0U, 64U}, {7U, 13U, 54U, 0U, 64U}, {7U, 13U, 52U, 0U, 64U}, {7U, 13U, 52U, 0U, 64U}}; static struct lpphy_tx_gain_table_entry lpphy_rev2_5ghz_tx_gain_table[128U] = { {255U, 255U, 255U, 0U, 152U}, {255U, 255U, 255U, 0U, 147U}, {255U, 255U, 255U, 0U, 143U}, {255U, 255U, 255U, 0U, 139U}, {255U, 255U, 255U, 0U, 135U}, {255U, 255U, 255U, 0U, 131U}, {255U, 255U, 255U, 0U, 128U}, {255U, 255U, 255U, 0U, 124U}, {255U, 255U, 255U, 0U, 121U}, {255U, 255U, 255U, 0U, 117U}, {255U, 255U, 255U, 0U, 114U}, {255U, 255U, 255U, 0U, 111U}, {255U, 255U, 255U, 0U, 107U}, {255U, 255U, 255U, 0U, 104U}, {255U, 255U, 255U, 0U, 101U}, {255U, 255U, 255U, 0U, 99U}, {255U, 255U, 255U, 0U, 96U}, {255U, 255U, 255U, 0U, 93U}, {255U, 255U, 255U, 0U, 90U}, {255U, 255U, 255U, 0U, 88U}, {255U, 255U, 255U, 0U, 85U}, {255U, 255U, 255U, 0U, 83U}, {255U, 255U, 255U, 0U, 81U}, {255U, 255U, 255U, 0U, 78U}, {255U, 255U, 255U, 0U, 76U}, {255U, 255U, 255U, 0U, 74U}, {255U, 255U, 255U, 0U, 72U}, {255U, 255U, 255U, 0U, 70U}, {255U, 255U, 255U, 0U, 68U}, {255U, 255U, 255U, 0U, 66U}, {255U, 255U, 255U, 0U, 64U}, {255U, 255U, 248U, 0U, 64U}, {255U, 255U, 241U, 0U, 64U}, {255U, 255U, 234U, 0U, 64U}, {255U, 255U, 227U, 0U, 64U}, {255U, 255U, 221U, 0U, 64U}, {255U, 255U, 215U, 0U, 64U}, {255U, 255U, 208U, 0U, 64U}, {255U, 255U, 203U, 0U, 64U}, {255U, 255U, 197U, 0U, 64U}, {255U, 255U, 191U, 0U, 64U}, {255U, 255U, 186U, 0U, 64U}, {255U, 255U, 181U, 0U, 64U}, {255U, 255U, 175U, 0U, 64U}, {255U, 255U, 170U, 0U, 64U}, {255U, 255U, 166U, 0U, 64U}, {255U, 255U, 161U, 0U, 64U}, {255U, 255U, 156U, 0U, 64U}, {255U, 255U, 152U, 0U, 64U}, {255U, 255U, 148U, 0U, 64U}, {255U, 255U, 143U, 0U, 64U}, {255U, 255U, 139U, 0U, 64U}, {255U, 255U, 135U, 0U, 64U}, {255U, 255U, 132U, 0U, 64U}, {255U, 255U, 128U, 0U, 64U}, {255U, 255U, 124U, 0U, 64U}, {255U, 255U, 121U, 0U, 64U}, {255U, 255U, 117U, 0U, 64U}, {255U, 255U, 114U, 0U, 64U}, {255U, 255U, 111U, 0U, 64U}, {255U, 255U, 108U, 0U, 64U}, {255U, 255U, 104U, 0U, 64U}, {255U, 255U, 102U, 0U, 64U}, {255U, 255U, 99U, 0U, 64U}, {255U, 255U, 96U, 0U, 64U}, {255U, 255U, 93U, 0U, 64U}, {255U, 255U, 90U, 0U, 64U}, {255U, 255U, 88U, 0U, 64U}, {255U, 255U, 85U, 0U, 64U}, {255U, 255U, 83U, 0U, 64U}, {255U, 255U, 81U, 0U, 64U}, {255U, 255U, 78U, 0U, 64U}, {255U, 255U, 76U, 0U, 64U}, {255U, 255U, 74U, 0U, 64U}, {255U, 255U, 72U, 0U, 64U}, {255U, 255U, 70U, 0U, 64U}, {255U, 255U, 68U, 0U, 64U}, {255U, 255U, 66U, 0U, 64U}, {255U, 255U, 64U, 0U, 64U}, {255U, 255U, 64U, 0U, 64U}, {255U, 255U, 62U, 0U, 64U}, {255U, 248U, 62U, 0U, 64U}, {255U, 248U, 60U, 0U, 64U}, {255U, 241U, 60U, 0U, 64U}, {255U, 241U, 59U, 0U, 64U}, {255U, 234U, 59U, 0U, 64U}, {255U, 234U, 57U, 0U, 64U}, {255U, 227U, 57U, 0U, 64U}, {255U, 227U, 55U, 0U, 64U}, {255U, 221U, 55U, 0U, 64U}, {255U, 221U, 54U, 0U, 64U}, {255U, 215U, 54U, 0U, 64U}, {255U, 215U, 52U, 0U, 64U}, {255U, 208U, 52U, 0U, 64U}, {255U, 208U, 51U, 0U, 64U}, {255U, 203U, 51U, 0U, 64U}, {255U, 203U, 49U, 0U, 64U}, {255U, 197U, 49U, 0U, 64U}, {255U, 197U, 48U, 0U, 64U}, {255U, 191U, 48U, 0U, 64U}, {255U, 191U, 47U, 0U, 64U}, {255U, 186U, 47U, 0U, 64U}, {255U, 186U, 45U, 0U, 64U}, {255U, 181U, 45U, 0U, 64U}, {255U, 181U, 44U, 0U, 64U}, {255U, 175U, 44U, 0U, 64U}, {255U, 175U, 43U, 0U, 64U}, {255U, 170U, 43U, 0U, 64U}, {255U, 170U, 42U, 0U, 64U}, {255U, 166U, 42U, 0U, 64U}, {255U, 166U, 40U, 0U, 64U}, {255U, 161U, 40U, 0U, 64U}, {255U, 161U, 39U, 0U, 64U}, {255U, 156U, 39U, 0U, 64U}, {255U, 156U, 38U, 0U, 64U}, {255U, 152U, 38U, 0U, 64U}, {255U, 152U, 37U, 0U, 64U}, {255U, 148U, 37U, 0U, 64U}, {255U, 148U, 36U, 0U, 64U}, {255U, 143U, 36U, 0U, 64U}, {255U, 143U, 35U, 0U, 64U}, {255U, 139U, 35U, 0U, 64U}, {255U, 139U, 34U, 0U, 64U}, {255U, 135U, 34U, 0U, 64U}, {255U, 135U, 33U, 0U, 64U}, {255U, 132U, 33U, 0U, 64U}, {255U, 132U, 32U, 0U, 64U}, {255U, 128U, 32U, 0U, 64U}}; void lpphy_rev0_1_table_init(struct b43_wldev *dev ) { int __ret_warn_on ; long tmp ; { __ret_warn_on = (unsigned int )dev->phy.rev > 1U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_lpphy.c", 2272); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_lptab_write_bulk(dev, 268437504U, 53U, (void const *)(& lpphy_min_sig_sq_table)); b43_lptab_write_bulk(dev, 536871936U, 40U, (void const *)(& lpphy_rev01_noise_scale_table)); b43_lptab_write_bulk(dev, 536885248U, 33U, (void const *)(& lpphy_crs_gain_nft_table)); b43_lptab_write_bulk(dev, 536879104U, 10U, (void const *)(& lpphy_rev01_filter_control_table)); b43_lptab_write_bulk(dev, 805315584U, 40U, (void const *)(& lpphy_rev01_ps_control_table)); b43_lptab_write_bulk(dev, 268441600U, 16U, (void const *)(& lpphy_pll_fraction_table)); b43_lptab_write_bulk(dev, 536870912U, 108U, (void const *)(& lpphy_iqlo_cal_table)); if ((unsigned int )dev->phy.rev == 0U) { b43_lptab_write_bulk(dev, 536884224U, 33U, (void const *)(& lpphy_rev0_ofdm_cck_gain_table)); b43_lptab_write_bulk(dev, 536883200U, 33U, (void const *)(& lpphy_rev0_ofdm_cck_gain_table)); } else { b43_lptab_write_bulk(dev, 536884224U, 33U, (void const *)(& lpphy_rev1_ofdm_cck_gain_table)); b43_lptab_write_bulk(dev, 536883200U, 33U, (void const *)(& lpphy_rev1_ofdm_cck_gain_table)); } b43_lptab_write_bulk(dev, 536886272U, 9U, (void const *)(& lpphy_gain_delta_table)); b43_lptab_write_bulk(dev, 805316608U, 576U, (void const *)(& lpphy_tx_power_control_table)); return; } } void lpphy_rev2plus_table_init(struct b43_wldev *dev ) { int i ; int __ret_warn_on ; long tmp ; { __ret_warn_on = (unsigned int )dev->phy.rev <= 1U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_lpphy.c", 2309); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); i = 0; goto ldv_54170; ldv_54169: b43_lptab_write(dev, (u32 )(i | 805313536), 0U); i = i + 1; ldv_54170: ; if (i <= 703) { goto ldv_54169; } else { } b43_lptab_write_bulk(dev, 268437504U, 53U, (void const *)(& lpphy_min_sig_sq_table)); b43_lptab_write_bulk(dev, 536871936U, 53U, (void const *)(& lpphy_rev2plus_noise_scale_table)); b43_lptab_write_bulk(dev, 805317632U, 10U, (void const *)(& lpphy_rev2plus_filter_control_table)); b43_lptab_write_bulk(dev, 805318656U, 20U, (void const *)(& lpphy_rev2plus_ps_control_table)); b43_lptab_write_bulk(dev, 805319680U, 148U, (void const *)(& lpphy_gain_idx_table)); b43_lptab_write_bulk(dev, 536885248U, 26U, (void const *)(& lpphy_aux_gain_idx_table)); b43_lptab_write_bulk(dev, 536886272U, 64U, (void const *)(& lpphy_sw_control_table)); b43_lptab_write_bulk(dev, 268451840U, 16U, (void const *)(& lpphy_hf_table)); b43_lptab_write_bulk(dev, 805323776U, 68U, (void const *)(& lpphy_gain_value_table)); b43_lptab_write_bulk(dev, 536889344U, 96U, (void const *)(& lpphy_gain_table)); b43_lptab_write_bulk(dev, 268441600U, 16U, (void const *)(& lpphy_pll_fraction_table)); b43_lptab_write_bulk(dev, 536870912U, 108U, (void const *)(& lpphy_iqlo_cal_table)); b43_lptab_write_bulk(dev, 805315584U, 64U, (void const *)(& lpphy_papd_eps_table)); b43_lptab_write_bulk(dev, 805316608U, 64U, (void const *)(& lpphy_papd_mult_table)); if ((unsigned int )(dev->dev)->chip_id == 17189U && (unsigned int )(dev->dev)->chip_rev == 0U) { b43_lptab_write_bulk(dev, 805319680U, 64U, (void const *)(& lpphy_a0_gain_idx_table)); b43_lptab_write_bulk(dev, 536885248U, 26U, (void const *)(& lpphy_a0_aux_gain_idx_table)); b43_lptab_write_bulk(dev, 805323776U, 68U, (void const *)(& lpphy_a0_gain_value_table)); b43_lptab_write_bulk(dev, 536889344U, 96U, (void const *)(& lpphy_a0_gain_table)); } else { } return; } } static void lpphy_rev0_1_write_gain_table(struct b43_wldev *dev , int offset , struct lpphy_tx_gain_table_entry data ) { u32 tmp ; int __ret_warn_on ; long tmp___0 ; { __ret_warn_on = (unsigned int )dev->phy.rev > 1U; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_lpphy.c", 2360); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); tmp = (u32 )((int )data.pad << 11); tmp = (u32 )((int )data.pga << 7) | tmp; tmp = (u32 )((int )data.gm << 4) | tmp; tmp = (u32 )data.dac | tmp; b43_lptab_write(dev, (u32 )((offset + 192) | 805316608), tmp); tmp = (u32 )((int )data.bb_mult << 20); b43_lptab_write(dev, (u32 )((offset + 320) | 805316608), tmp); return; } } static void lpphy_rev2plus_write_gain_table(struct b43_wldev *dev , int offset , struct lpphy_tx_gain_table_entry data ) { u32 tmp ; int __ret_warn_on ; long tmp___0 ; enum ieee80211_band tmp___1 ; enum ieee80211_band tmp___2 ; { __ret_warn_on = (unsigned int )dev->phy.rev <= 1U; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_lpphy.c", 2376); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); tmp = (u32 )((int )data.pad << 16); tmp = (u32 )((int )data.pga << 8) | tmp; tmp = (u32 )data.gm | tmp; if ((unsigned int )dev->phy.rev > 2U) { tmp___1 = b43_current_band(dev->wl); if ((unsigned int )tmp___1 == 1U) { tmp = tmp | 268435456U; } else { tmp = tmp | 1879048192U; } } else { tmp___2 = b43_current_band(dev->wl); if ((unsigned int )tmp___2 == 1U) { tmp = tmp | 335544320U; } else { tmp = tmp | 2130706432U; } } b43_lptab_write(dev, (u32 )((offset + 192) | 805313536), tmp); tmp = (u32 )((int )data.bb_mult << 20); tmp = (u32 )((int )data.dac << 28) | tmp; b43_lptab_write(dev, (u32 )((offset + 320) | 805313536), tmp); return; } } void lpphy_write_gain_table(struct b43_wldev *dev , int offset , struct lpphy_tx_gain_table_entry data ) { { if ((unsigned int )dev->phy.rev > 1U) { lpphy_rev2plus_write_gain_table(dev, offset, data); } else { lpphy_rev0_1_write_gain_table(dev, offset, data); } return; } } void lpphy_write_gain_table_bulk(struct b43_wldev *dev , int offset , int count , struct lpphy_tx_gain_table_entry *table ) { int i ; { i = offset; goto ldv_54237; ldv_54236: lpphy_write_gain_table(dev, i, *(table + (unsigned long )i)); i = i + 1; ldv_54237: ; if (i < count) { goto ldv_54236; } else { } return; } } void lpphy_init_tx_gain_table(struct b43_wldev *dev ) { struct ssb_sprom *sprom ; enum ieee80211_band tmp ; enum ieee80211_band tmp___0 ; enum ieee80211_band tmp___1 ; { sprom = (dev->dev)->bus_sprom; switch ((int )dev->phy.rev) { case 0: ; if ((int )sprom->boardflags_hi & 1 || ((int )sprom->boardflags_lo & 8192) != 0) { lpphy_write_gain_table_bulk(dev, 0, 128, (struct lpphy_tx_gain_table_entry *)(& lpphy_rev0_nopa_tx_gain_table)); } else { tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { lpphy_write_gain_table_bulk(dev, 0, 128, (struct lpphy_tx_gain_table_entry *)(& lpphy_rev0_2ghz_tx_gain_table)); } else { lpphy_write_gain_table_bulk(dev, 0, 128, (struct lpphy_tx_gain_table_entry *)(& lpphy_rev0_5ghz_tx_gain_table)); } } goto ldv_54244; case 1: ; if ((int )sprom->boardflags_hi & 1 || ((int )sprom->boardflags_lo & 8192) != 0) { lpphy_write_gain_table_bulk(dev, 0, 128, (struct lpphy_tx_gain_table_entry *)(& lpphy_rev1_nopa_tx_gain_table)); } else { tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 0U) { lpphy_write_gain_table_bulk(dev, 0, 128, (struct lpphy_tx_gain_table_entry *)(& lpphy_rev1_2ghz_tx_gain_table)); } else { lpphy_write_gain_table_bulk(dev, 0, 128, (struct lpphy_tx_gain_table_entry *)(& lpphy_rev1_5ghz_tx_gain_table)); } } goto ldv_54244; default: ; if ((int )sprom->boardflags_hi & 1) { lpphy_write_gain_table_bulk(dev, 0, 128, (struct lpphy_tx_gain_table_entry *)(& lpphy_rev2_nopa_tx_gain_table)); } else { tmp___1 = b43_current_band(dev->wl); if ((unsigned int )tmp___1 == 0U) { lpphy_write_gain_table_bulk(dev, 0, 128, (struct lpphy_tx_gain_table_entry *)(& lpphy_rev2_2ghz_tx_gain_table)); } else { lpphy_write_gain_table_bulk(dev, 0, 128, (struct lpphy_tx_gain_table_entry *)(& lpphy_rev2_5ghz_tx_gain_table)); } } } ldv_54244: ; return; } } bool ldv_queue_work_on_257(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_258(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_259(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_260(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_261(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_262(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; bool ldv_queue_work_on_273(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_275(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_274(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_277(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_276(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_278(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; u32 b43_httab_read(struct b43_wldev *dev , u32 offset ) ; void b43_httab_write(struct b43_wldev *dev , u32 offset , u32 value ) ; void b43_httab_write_few(struct b43_wldev *dev , u32 offset , size_t num , ...) ; void b43_httab_write_bulk(struct b43_wldev *dev , u32 offset , unsigned int nr_elements , void const *_data___0 ) ; void b43_phy_ht_tables_init(struct b43_wldev *dev ) ; u32 const b43_httab_0x1a_0xc0_late[128U] ; void r2059_upload_inittabs(struct b43_wldev *dev ) ; struct b43_phy_ht_channeltab_e_radio2059 const *b43_phy_ht_get_channeltab_e_r2059(struct b43_wldev *dev , u16 freq ) ; static void b43_radio_2059_channel_setup(struct b43_wldev *dev , struct b43_phy_ht_channeltab_e_radio2059 const *e ) { u16 routing[3U] ; u16 r ; int core ; { routing[0] = 0U; routing[1] = 1024U; routing[2] = 2048U; b43_radio_write(dev, 22, (int )e->radio_syn16); b43_radio_write(dev, 23, (int )e->radio_syn17); b43_radio_write(dev, 34, (int )e->radio_syn22); b43_radio_write(dev, 37, (int )e->radio_syn25); b43_radio_write(dev, 39, (int )e->radio_syn27); b43_radio_write(dev, 40, (int )e->radio_syn28); b43_radio_write(dev, 41, (int )e->radio_syn29); b43_radio_write(dev, 44, (int )e->radio_syn2c); b43_radio_write(dev, 45, (int )e->radio_syn2d); b43_radio_write(dev, 55, (int )e->radio_syn37); b43_radio_write(dev, 65, (int )e->radio_syn41); b43_radio_write(dev, 67, (int )e->radio_syn43); b43_radio_write(dev, 71, (int )e->radio_syn47); core = 0; goto ldv_54062; ldv_54061: r = routing[core]; b43_radio_write(dev, (int )((unsigned int )r | 74U), (int )e->radio_rxtx4a); b43_radio_write(dev, (int )((unsigned int )r | 88U), (int )e->radio_rxtx58); b43_radio_write(dev, (int )((unsigned int )r | 90U), (int )e->radio_rxtx5a); b43_radio_write(dev, (int )((unsigned int )r | 106U), (int )e->radio_rxtx6a); b43_radio_write(dev, (int )((unsigned int )r | 109U), (int )e->radio_rxtx6d); b43_radio_write(dev, (int )((unsigned int )r | 110U), (int )e->radio_rxtx6e); b43_radio_write(dev, (int )((unsigned int )r | 146U), (int )e->radio_rxtx92); b43_radio_write(dev, (int )((unsigned int )r | 152U), (int )e->radio_rxtx98); core = core + 1; ldv_54062: ; if (core <= 2) { goto ldv_54061; } else { } __const_udelay(214750UL); b43_radio_mask(dev, 43, 65534); b43_radio_mask(dev, 46, 65531); b43_radio_set(dev, 46, 4); b43_radio_set(dev, 43, 1); __const_udelay(1288500UL); return; } } static void b43_radio_2059_rcal(struct b43_wldev *dev ) { bool tmp ; int tmp___0 ; { b43_radio_set(dev, 2052, 1); usleep_range(10UL, 20UL); b43_radio_set(dev, 2239, 1); b43_radio_maskset(dev, 2459, 3, 2); b43_radio_set(dev, 2052, 2); usleep_range(100UL, 200UL); b43_radio_mask(dev, 2052, 65533); tmp = b43_radio_wait_value(dev, 2373, 1, 1, 100, 1000000); if (tmp) { tmp___0 = 0; } else { tmp___0 = 1; } if (tmp___0) { b43err(dev->wl, "Radio 0x2059 rcal timeout\n"); } else { } b43_radio_mask(dev, 2052, 65534); b43_radio_set(dev, 10, 96); return; } } static void b43_radio_2057_rccal___0(struct b43_wldev *dev ) { u16 radio_values[3U][2U] ; int i ; bool tmp ; int tmp___0 ; { radio_values[0][0] = 97U; radio_values[0][1] = 233U; radio_values[1][0] = 105U; radio_values[1][1] = 213U; radio_values[2][0] = 115U; radio_values[2][1] = 153U; i = 0; goto ldv_54073; ldv_54072: b43_radio_write(dev, 383, (int )radio_values[i][0]); b43_radio_write(dev, 317, 110); b43_radio_write(dev, 318, (int )radio_values[i][1]); b43_radio_write(dev, 316, 85); tmp = b43_radio_wait_value(dev, 320, 2, 2, 500, 5000000); if (tmp) { tmp___0 = 0; } else { tmp___0 = 1; } if (tmp___0) { b43err(dev->wl, "Radio 0x2059 rccal timeout\n"); } else { } b43_radio_write(dev, 316, 21); i = i + 1; ldv_54073: ; if (i <= 2) { goto ldv_54072; } else { } b43_radio_mask(dev, 383, 65534); return; } } static void b43_radio_2059_init_pre(struct b43_wldev *dev ) { { b43_phy_mask(dev, 2064, 65533); b43_phy_set(dev, 2064, 1); b43_phy_mask(dev, 2064, 65534); b43_phy_set(dev, 2064, 2); return; } } static void b43_radio_2059_init(struct b43_wldev *dev ) { u16 routing[3U] ; int i ; { routing[0] = 0U; routing[1] = 1024U; routing[2] = 2048U; b43_radio_2059_init_pre(dev); r2059_upload_inittabs(dev); i = 0; goto ldv_54086; ldv_54085: b43_radio_set(dev, (int )((unsigned int )routing[i] | 326U), 3); i = i + 1; ldv_54086: ; if ((unsigned int )i <= 2U) { goto ldv_54085; } else { } b43_radio_set(dev, 46, 120); b43_radio_set(dev, 192, 128); msleep(2U); b43_radio_mask(dev, 46, 65415); b43_radio_mask(dev, 192, 65407); b43_radio_2059_rcal(dev); b43_radio_2057_rccal___0(dev); b43_radio_mask(dev, 17, 65527); return; } } static void b43_phy_ht_force_rf_sequence(struct b43_wldev *dev , u16 rf_seq ) { u8 i ; u16 save_seq_mode ; u16 tmp ; u16 tmp___0 ; { tmp = b43_phy_read(dev, 2048); save_seq_mode = tmp; b43_phy_set(dev, 2048, 3); b43_phy_set(dev, 2051, (int )rf_seq); i = 0U; goto ldv_54096; ldv_54095: tmp___0 = b43_phy_read(dev, 2052); if ((unsigned int )((int )tmp___0 & (int )rf_seq) == 0U) { i = 0U; goto ldv_54094; } else { } msleep(1U); i = (u8 )((int )i + 1); ldv_54096: ; if ((unsigned int )i <= 199U) { goto ldv_54095; } else { } ldv_54094: ; if ((unsigned int )i != 0U) { b43err(dev->wl, "Forcing RF sequence timeout\n"); } else { } b43_phy_write(dev, 2048, (int )save_seq_mode); return; } } static void b43_phy_ht_pa_override(struct b43_wldev *dev , bool enable ) { struct b43_phy_ht *htphy ; u16 regs[3U] ; int i ; { htphy = dev->phy.__annonCompField106.ht; regs[0] = 2124U; regs[1] = 2156U; regs[2] = 2188U; if ((int )enable) { i = 0; goto ldv_54105; ldv_54104: b43_phy_write(dev, (int )regs[i], (int )htphy->rf_ctl_int_save[i]); i = i + 1; ldv_54105: ; if (i <= 2) { goto ldv_54104; } else { } } else { i = 0; goto ldv_54108; ldv_54107: htphy->rf_ctl_int_save[i] = b43_phy_read(dev, (int )regs[i]); i = i + 1; ldv_54108: ; if (i <= 2) { goto ldv_54107; } else { } i = 0; goto ldv_54111; ldv_54110: b43_phy_write(dev, (int )regs[i], 1024); i = i + 1; ldv_54111: ; if (i <= 2) { goto ldv_54110; } else { } } return; } } static u16 b43_phy_ht_classifier(struct b43_wldev *dev , u16 mask , u16 val ) { u16 tmp ; u16 allowed ; { allowed = 7U; tmp = b43_phy_read(dev, 176); tmp = (u16 )((int )tmp & (int )allowed); tmp = (u16 )(~ ((int )((short )mask)) & (int )((short )tmp)); tmp = (u16 )(((int )val & (int )mask) | (int )tmp); b43_phy_maskset(dev, 176, ~ ((int )allowed), (int )tmp); return (tmp); } } static void b43_phy_ht_reset_cca(struct b43_wldev *dev ) { u16 bbcfg ; { b43_phy_force_clock(dev, 1); bbcfg = b43_phy_read(dev, 1); b43_phy_write(dev, 1, (int )((unsigned int )bbcfg | 16384U)); __const_udelay(4295UL); b43_phy_write(dev, 1, (int )bbcfg & 49151); b43_phy_force_clock(dev, 0); b43_phy_ht_force_rf_sequence(dev, 32); return; } } static void b43_phy_ht_zero_extg(struct b43_wldev *dev ) { u8 i ; u8 j ; u16 base[3U] ; { base[0] = 64U; base[1] = 96U; base[2] = 128U; i = 0U; goto ldv_54136; ldv_54135: j = 0U; goto ldv_54133; ldv_54132: b43_phy_write(dev, (int )((u16 )((int )((short )((int )base[(int )i] + (int )((unsigned short )j))) | 2048)), 0); j = (u8 )((int )j + 1); ldv_54133: ; if ((unsigned int )j <= 3U) { goto ldv_54132; } else { } i = (u8 )((int )i + 1); ldv_54136: ; if ((unsigned int )i <= 2U) { goto ldv_54135; } else { } i = 0U; goto ldv_54141; ldv_54140: b43_phy_write(dev, (int )((u16 )((int )((short )((unsigned int )base[(int )i] + 12U)) | 2048)), 0); i = (u8 )((int )i + 1); ldv_54141: ; if ((unsigned int )i <= 2U) { goto ldv_54140; } else { } return; } } static void b43_phy_ht_afe_unk1(struct b43_wldev *dev ) { u8 i ; u16 ctl_regs[3U][2U] ; { ctl_regs[0][0] = 2320U; ctl_regs[0][1] = 2321U; ctl_regs[1][0] = 2324U; ctl_regs[1][1] = 2325U; ctl_regs[2][0] = 2328U; ctl_regs[2][1] = 2329U; i = 0U; goto ldv_54149; ldv_54148: b43_phy_set(dev, (int )ctl_regs[(int )i][1], 4); b43_phy_set(dev, (int )ctl_regs[(int )i][0], 4); b43_phy_mask(dev, (int )ctl_regs[(int )i][1], 65534); b43_phy_set(dev, (int )ctl_regs[(int )i][0], 1); b43_httab_write(dev, (u32 )(((int )i * 16 + 5) | 536879104), 0U); b43_phy_mask(dev, (int )ctl_regs[(int )i][0], 65531); i = (u8 )((int )i + 1); ldv_54149: ; if ((unsigned int )i <= 2U) { goto ldv_54148; } else { } return; } } static void b43_phy_ht_read_clip_detection(struct b43_wldev *dev , u16 *clip_st ) { { *clip_st = b43_phy_read(dev, 1038); *(clip_st + 1UL) = b43_phy_read(dev, 1102); *(clip_st + 2UL) = b43_phy_read(dev, 1166); return; } } static void b43_phy_ht_bphy_init(struct b43_wldev *dev ) { unsigned int i ; u16 val ; { val = 7711U; i = 0U; goto ldv_54161; ldv_54160: b43_phy_write(dev, (int )(((unsigned int )((u16 )i) + 136U) | 3072U), (int )val); val = (unsigned int )val + 65022U; i = i + 1U; ldv_54161: ; if (i <= 15U) { goto ldv_54160; } else { } val = 15935U; i = 0U; goto ldv_54164; ldv_54163: b43_phy_write(dev, (int )(((unsigned int )((u16 )i) + 152U) | 3072U), (int )val); val = (unsigned int )val + 65022U; i = i + 1U; ldv_54164: ; if (i <= 15U) { goto ldv_54163; } else { } b43_phy_write(dev, 3128, 1640); return; } } static void b43_phy_ht_bphy_reset(struct b43_wldev *dev , bool reset ) { u16 tmp ; { tmp = b43_read16(dev, 1170); b43_write16(dev, 1170, (int )((unsigned int )tmp | 4U)); if ((int )reset) { b43_phy_set(dev, 3073, 49152); } else { b43_phy_mask(dev, 3073, 16383); } b43_write16(dev, 1170, (int )tmp); return; } } static void b43_phy_ht_stop_playback(struct b43_wldev *dev ) { struct b43_phy_ht *phy_ht ; u16 tmp ; int i ; { phy_ht = dev->phy.__annonCompField106.ht; tmp = b43_phy_read(dev, 199); if ((int )tmp & 1) { b43_phy_set(dev, 195, 2); } else if (((int )tmp & 2) != 0) { b43_phy_mask(dev, 194, 32767); } else { } b43_phy_mask(dev, 195, 65531); i = 0; goto ldv_54178; ldv_54177: ; if (phy_ht->bb_mult_save[i] >= 0) { b43_httab_write(dev, (u32 )((i * 4 + 99) | 536884224), (u32 )phy_ht->bb_mult_save[i]); b43_httab_write(dev, (u32 )((i * 4 + 103) | 536884224), (u32 )phy_ht->bb_mult_save[i]); } else { } i = i + 1; ldv_54178: ; if (i <= 2) { goto ldv_54177; } else { } return; } } static u16 b43_phy_ht_load_samples(struct b43_wldev *dev ) { int i ; u16 len ; { len = 160U; b43_phy_write(dev, 114, 17408); i = 0; goto ldv_54186; ldv_54185: b43_phy_write(dev, 116, 0); b43_phy_write(dev, 115, 0); i = i + 1; ldv_54186: ; if ((int )len > i) { goto ldv_54185; } else { } return (len); } } static void b43_phy_ht_run_samples(struct b43_wldev *dev , u16 samps , u16 loops , u16 wait ) { struct b43_phy_ht *phy_ht ; u16 save_seq_mode ; int i ; u32 tmp ; u16 tmp___0 ; { phy_ht = dev->phy.__annonCompField106.ht; i = 0; goto ldv_54198; ldv_54197: ; if (phy_ht->bb_mult_save[i] < 0) { tmp = b43_httab_read(dev, (u32 )((i * 4 + 99) | 536884224)); phy_ht->bb_mult_save[i] = (s32 )tmp; } else { } i = i + 1; ldv_54198: ; if (i <= 2) { goto ldv_54197; } else { } b43_phy_write(dev, 198, (int )((unsigned int )samps + 65535U)); if ((unsigned int )loops != 65535U) { loops = (u16 )((int )loops - 1); } else { } b43_phy_write(dev, 196, (int )loops); b43_phy_write(dev, 197, (int )wait); save_seq_mode = b43_phy_read(dev, 2048); b43_phy_set(dev, 2048, 1); b43_phy_mask(dev, 195, 65535); b43_phy_mask(dev, 195, 65535); b43_phy_mask(dev, 194, 65535); b43_phy_set(dev, 195, 1); i = 0; goto ldv_54202; ldv_54201: tmp___0 = b43_phy_read(dev, 2052); if (((int )tmp___0 & 1) == 0) { i = 0; goto ldv_54200; } else { } __const_udelay(42950UL); i = i + 1; ldv_54202: ; if (i <= 99) { goto ldv_54201; } else { } ldv_54200: ; if (i != 0) { b43err(dev->wl, "run samples timeout\n"); } else { } b43_phy_write(dev, 2048, (int )save_seq_mode); return; } } static void b43_phy_ht_tx_tone(struct b43_wldev *dev ) { u16 samp ; { samp = b43_phy_ht_load_samples(dev); b43_phy_ht_run_samples(dev, (int )samp, 65535, 0); return; } } static void b43_phy_ht_rssi_select(struct b43_wldev *dev , u8 core_sel , enum ht_rssi_type rssi_type ) { u16 ctl_regs[3U][2U] ; u16 radio_r[3U] ; int core ; { ctl_regs[0][0] = 2321U; ctl_regs[0][1] = 2320U; ctl_regs[1][0] = 2325U; ctl_regs[1][1] = 2324U; ctl_regs[2][0] = 2329U; ctl_regs[2][1] = 2328U; radio_r[0] = 0U; radio_r[1] = 1024U; radio_r[2] = 2048U; if ((unsigned int )core_sel == 0U) { b43err(dev->wl, "RSSI selection for core off not implemented yet\n"); } else { core = 0; goto ldv_54220; ldv_54219: ; if ((((unsigned int )core_sel == 1U && core != 0) || ((unsigned int )core_sel == 2U && core != 1)) || ((unsigned int )core_sel == 3U && core != 2)) { goto ldv_54215; } else { } switch ((unsigned int )rssi_type) { case 4U: b43_phy_set(dev, (int )ctl_regs[core][0], 768); b43_phy_set(dev, (int )ctl_regs[core][0], 3072); b43_phy_set(dev, (int )ctl_regs[core][1], 512); b43_phy_set(dev, (int )ctl_regs[core][1], 1024); b43_radio_set(dev, 2239, 1); b43_radio_write(dev, (int )((unsigned int )radio_r[core] | 345U), 17); goto ldv_54217; default: b43err(dev->wl, "RSSI selection for type %d not implemented yet\n", (unsigned int )rssi_type); } ldv_54217: ; ldv_54215: core = core + 1; ldv_54220: ; if (core <= 2) { goto ldv_54219; } else { } } return; } } static void b43_phy_ht_poll_rssi(struct b43_wldev *dev , enum ht_rssi_type type , s32 *buf , u8 nsamp ) { u16 phy_regs_values[12U] ; u16 phy_regs_to_save[12U] ; u16 tmp[3U] ; int i ; { phy_regs_to_save[0] = 2321U; phy_regs_to_save[1] = 2320U; phy_regs_to_save[2] = 2120U; phy_regs_to_save[3] = 2113U; phy_regs_to_save[4] = 2325U; phy_regs_to_save[5] = 2324U; phy_regs_to_save[6] = 2152U; phy_regs_to_save[7] = 2145U; phy_regs_to_save[8] = 2329U; phy_regs_to_save[9] = 2328U; phy_regs_to_save[10] = 2184U; phy_regs_to_save[11] = 2177U; i = 0; goto ldv_54233; ldv_54232: phy_regs_values[i] = b43_phy_read(dev, (int )phy_regs_to_save[i]); i = i + 1; ldv_54233: ; if (i <= 11) { goto ldv_54232; } else { } b43_phy_ht_rssi_select(dev, 5, type); i = 0; goto ldv_54236; ldv_54235: *(buf + (unsigned long )i) = 0; i = i + 1; ldv_54236: ; if (i <= 5) { goto ldv_54235; } else { } i = 0; goto ldv_54239; ldv_54238: tmp[0] = b43_phy_read(dev, 537); tmp[1] = b43_phy_read(dev, 538); tmp[2] = b43_phy_read(dev, 539); *buf = *buf + ((int )((signed char )((int )tmp[0] << 2)) >> 2); *(buf + 1UL) = *(buf + 1UL) + ((int )((signed char )(((int )tmp[0] >> 8) << 2)) >> 2); *(buf + 2UL) = *(buf + 2UL) + ((int )((signed char )((int )tmp[1] << 2)) >> 2); *(buf + 3UL) = *(buf + 3UL) + ((int )((signed char )(((int )tmp[1] >> 8) << 2)) >> 2); *(buf + 4UL) = *(buf + 4UL) + ((int )((signed char )((int )tmp[2] << 2)) >> 2); *(buf + 5UL) = *(buf + 5UL) + ((int )((signed char )(((int )tmp[2] >> 8) << 2)) >> 2); i = i + 1; ldv_54239: ; if ((int )nsamp > i) { goto ldv_54238; } else { } i = 0; goto ldv_54242; ldv_54241: b43_phy_write(dev, (int )phy_regs_to_save[i], (int )phy_regs_values[i]); i = i + 1; ldv_54242: ; if (i <= 11) { goto ldv_54241; } else { } return; } } static void b43_phy_ht_tx_power_fix(struct b43_wldev *dev ) { int i ; u16 mask ; u32 tmp ; u32 tmp___0 ; { i = 0; goto ldv_54251; ldv_54250: tmp___0 = b43_httab_read(dev, 805333224U); tmp = tmp___0; mask = 0U; b43_phy_mask(dev, 2312, (int )mask); b43_httab_write(dev, (u32 )((i + 272) | 536878080), tmp >> 16); b43_httab_write(dev, (u32 )((i * 4 + 99) | 268448768), tmp & 255U); b43_httab_write(dev, (u32 )((i * 4 + 115) | 268448768), tmp & 255U); i = i + 1; ldv_54251: ; if (i <= 2) { goto ldv_54250; } else { } return; } } static void b43_phy_ht_tx_power_ctl(struct b43_wldev *dev , bool enable ) { struct b43_phy_ht *phy_ht ; u16 en_bits ; u16 cmd_regs[3U] ; u16 status_regs[3U] ; int i ; u16 tmp ; u16 tmp___0 ; enum ieee80211_band tmp___1 ; { phy_ht = dev->phy.__annonCompField106.ht; en_bits = 57344U; cmd_regs[0] = 487U; cmd_regs[1] = 546U; cmd_regs[2] = 2404U; status_regs[0] = 493U; status_regs[1] = 494U; status_regs[2] = 2409U; if (! enable) { tmp___0 = b43_phy_read(dev, 487); if ((unsigned int )((int )tmp___0 & (int )en_bits) != 0U) { i = 0; goto ldv_54263; ldv_54262: tmp = b43_phy_read(dev, (int )status_regs[i]); phy_ht->tx_pwr_idx[i] = (u8 )tmp; i = i + 1; ldv_54263: ; if (i <= 2) { goto ldv_54262; } else { } } else { } b43_phy_mask(dev, 487, ~ ((int )en_bits)); } else { b43_phy_set(dev, 487, (int )en_bits); tmp___1 = b43_current_band(dev->wl); if ((unsigned int )tmp___1 == 1U) { i = 0; goto ldv_54266; ldv_54265: b43_phy_write(dev, (int )cmd_regs[i], 50); i = i + 1; ldv_54266: ; if (i <= 2) { goto ldv_54265; } else { } } else { } i = 0; goto ldv_54269; ldv_54268: ; if ((int )((signed char )phy_ht->tx_pwr_idx[i]) >= 0) { b43_phy_write(dev, (int )cmd_regs[i], (int )phy_ht->tx_pwr_idx[i]); } else { } i = i + 1; ldv_54269: ; if (i <= 2) { goto ldv_54268; } else { } } phy_ht->tx_pwr_ctl = enable; return; } } static void b43_phy_ht_tx_power_ctl_idle_tssi(struct b43_wldev *dev ) { struct b43_phy_ht *phy_ht ; u16 base[3U] ; u16 save_regs[3U][3U] ; s32 rssi_buf[6U] ; int core ; { phy_ht = dev->phy.__annonCompField106.ht; base[0] = 2112U; base[1] = 2144U; base[2] = 2176U; core = 0; goto ldv_54280; ldv_54279: save_regs[core][1] = b43_phy_read(dev, (int )((unsigned int )base[core] + 6U)); save_regs[core][2] = b43_phy_read(dev, (int )((unsigned int )base[core] + 7U)); save_regs[core][0] = b43_phy_read(dev, (int )base[core]); b43_phy_write(dev, (int )((unsigned int )base[core] + 6U), 0); b43_phy_mask(dev, (int )((unsigned int )base[core] + 7U), 65520); b43_phy_set(dev, (int )base[core], 1024); b43_phy_set(dev, (int )base[core], 4096); core = core + 1; ldv_54280: ; if (core <= 2) { goto ldv_54279; } else { } b43_phy_ht_tx_tone(dev); __const_udelay(85900UL); b43_phy_ht_poll_rssi(dev, 4, (s32 *)(& rssi_buf), 1); b43_phy_ht_stop_playback(dev); b43_phy_ht_reset_cca(dev); phy_ht->idle_tssi[0] = (u8 )rssi_buf[0]; phy_ht->idle_tssi[1] = (u8 )rssi_buf[2]; phy_ht->idle_tssi[2] = (u8 )rssi_buf[4]; core = 0; goto ldv_54283; ldv_54282: b43_phy_write(dev, (int )base[core], (int )save_regs[core][0]); b43_phy_write(dev, (int )((unsigned int )base[core] + 6U), (int )save_regs[core][1]); b43_phy_write(dev, (int )((unsigned int )base[core] + 7U), (int )save_regs[core][2]); core = core + 1; ldv_54283: ; if (core <= 2) { goto ldv_54282; } else { } return; } } static void b43_phy_ht_tssi_setup(struct b43_wldev *dev ) { u16 routing[3U] ; int core ; { routing[0] = 0U; routing[1] = 1024U; routing[2] = 2048U; core = 0; goto ldv_54291; ldv_54290: b43_radio_set(dev, 2239, 1); b43_radio_write(dev, (int )((unsigned int )routing[core] | 345U), 17); core = core + 1; ldv_54291: ; if (core <= 2) { goto ldv_54290; } else { } return; } } static void b43_phy_ht_tx_power_ctl_setup(struct b43_wldev *dev ) { struct b43_phy_ht *phy_ht ; struct ssb_sprom *sprom ; u8 *idle ; u8 target[3U] ; s16 a1[3U] ; s16 b0[3U] ; s16 b1[3U] ; u16 freq ; int i ; int c ; enum ieee80211_band tmp ; s32 num ; s32 den ; s32 pwr ; u32 regval[64U] ; s32 _max1 ; int _max2 ; { phy_ht = dev->phy.__annonCompField106.ht; sprom = (dev->dev)->bus_sprom; idle = (u8 *)(& phy_ht->idle_tssi); freq = ((dev->phy.chandef)->chan)->center_freq; tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { c = 0; goto ldv_54307; ldv_54306: target[c] = sprom->core_pwr_info[c].maxpwr_2g; a1[c] = (s16 )sprom->core_pwr_info[c].pa_2g[0]; b0[c] = (s16 )sprom->core_pwr_info[c].pa_2g[1]; b1[c] = (s16 )sprom->core_pwr_info[c].pa_2g[2]; c = c + 1; ldv_54307: ; if (c <= 2) { goto ldv_54306; } else { } } else if ((unsigned int )freq > 4899U && (unsigned int )freq <= 5099U) { c = 0; goto ldv_54310; ldv_54309: target[c] = sprom->core_pwr_info[c].maxpwr_5gl; a1[c] = (s16 )sprom->core_pwr_info[c].pa_5gl[0]; b0[c] = (s16 )sprom->core_pwr_info[c].pa_5gl[1]; b1[c] = (s16 )sprom->core_pwr_info[c].pa_5gl[2]; c = c + 1; ldv_54310: ; if (c <= 2) { goto ldv_54309; } else { } } else if ((unsigned int )freq > 5099U && (unsigned int )freq <= 5499U) { c = 0; goto ldv_54313; ldv_54312: target[c] = sprom->core_pwr_info[c].maxpwr_5g; a1[c] = (s16 )sprom->core_pwr_info[c].pa_5g[0]; b0[c] = (s16 )sprom->core_pwr_info[c].pa_5g[1]; b1[c] = (s16 )sprom->core_pwr_info[c].pa_5g[2]; c = c + 1; ldv_54313: ; if (c <= 2) { goto ldv_54312; } else { } } else if ((unsigned int )freq > 5499U) { c = 0; goto ldv_54316; ldv_54315: target[c] = sprom->core_pwr_info[c].maxpwr_5gh; a1[c] = (s16 )sprom->core_pwr_info[c].pa_5gh[0]; b0[c] = (s16 )sprom->core_pwr_info[c].pa_5gh[1]; b1[c] = (s16 )sprom->core_pwr_info[c].pa_5gh[2]; c = c + 1; ldv_54316: ; if (c <= 2) { goto ldv_54315; } else { } } else { target[2] = 52U; target[1] = target[2]; target[0] = target[1]; a1[2] = -424; a1[1] = a1[2]; a1[0] = a1[1]; b0[2] = 5612; b0[1] = b0[2]; b0[0] = b0[1]; b1[2] = -1393; b1[1] = b1[2]; b1[0] = b1[1]; } b43_phy_set(dev, 290, 1); b43_phy_mask(dev, 487, 32767); b43_phy_set(dev, 489, 16384); b43_phy_maskset(dev, 487, 65408, 25); b43_phy_maskset(dev, 546, 65408, 25); b43_phy_maskset(dev, 2404, 65408, 25); b43_phy_set(dev, 489, 32768); b43_phy_maskset(dev, 489, 65472, (int )*idle); b43_phy_maskset(dev, 489, 49407, (int )((u16 )*(idle + 1UL)) << 8U); b43_phy_maskset(dev, 2405, 65472, (int )*(idle + 2UL)); b43_phy_maskset(dev, 488, 65280, 240); b43_phy_maskset(dev, 488, 63743, 768); b43_phy_maskset(dev, 490, 65280, (int )target[0]); b43_phy_maskset(dev, 490, 255, (int )((u16 )target[1]) << 8U); b43_phy_maskset(dev, 2406, 65280, (int )target[2]); c = 0; goto ldv_54329; ldv_54328: i = 0; goto ldv_54326; ldv_54325: num = ((int )b0[c] * 16 + (int )b1[c] * i) * 8; den = (int )a1[c] * i + 32768; _max1 = (num * 4 + den / 2) / den; _max2 = -8; pwr = _max1 > _max2 ? _max1 : _max2; regval[i] = (u32 )pwr; i = i + 1; ldv_54326: ; if (i <= 63) { goto ldv_54325; } else { } b43_httab_write_bulk(dev, (u32 )(((c + 26) << 10) | 536870912), 64U, (void const *)(& regval)); c = c + 1; ldv_54329: ; if (c <= 2) { goto ldv_54328; } else { } return; } } static void b43_phy_ht_spur_avoid(struct b43_wldev *dev , struct ieee80211_channel *new_channel ) { struct bcma_device *core ; int spuravoid ; { core = (dev->dev)->__annonCompField105.bdev; spuravoid = 0; if ((unsigned int )new_channel->hw_value == 13U || (unsigned int )new_channel->hw_value == 14U) { spuravoid = 1; } else { } bcma_core_pll_ctl(core, 512U, 0U, 0); bcma_pmu_spuravoid_pllupdate(& (core->bus)->drv_cc, spuravoid); bcma_core_pll_ctl(core, 768U, 50331648U, 0); b43_mac_switch_freq(dev, (int )((u8 )spuravoid)); b43_wireless_core_phy_pll_reset(dev); if (spuravoid != 0) { b43_phy_set(dev, 1, 32768); } else { b43_phy_mask(dev, 1, 32767); } b43_phy_ht_reset_cca(dev); return; } } static void b43_phy_ht_channel_setup(struct b43_wldev *dev , struct b43_phy_ht_channeltab_e_phy const *e , struct ieee80211_channel *new_channel ) { { if ((unsigned int )new_channel->band == 1U) { b43_phy_mask(dev, 9, 65534); b43_phy_ht_bphy_reset(dev, 1); b43_phy_set(dev, 9, 1); } else { b43_phy_mask(dev, 9, 65534); b43_phy_ht_bphy_reset(dev, 0); } b43_phy_write(dev, 462, (int )e->bw1); b43_phy_write(dev, 463, (int )e->bw2); b43_phy_write(dev, 464, (int )e->bw3); b43_phy_write(dev, 465, (int )e->bw4); b43_phy_write(dev, 466, (int )e->bw5); b43_phy_write(dev, 467, (int )e->bw6); if ((unsigned int )new_channel->hw_value == 14U) { b43_phy_ht_classifier(dev, 2, 0); b43_phy_set(dev, 3082, 2048); } else { b43_phy_ht_classifier(dev, 2, 2); if ((unsigned int )new_channel->band == 0U) { b43_phy_mask(dev, 3082, 63423); } else { } } b43_phy_ht_tx_power_fix(dev); b43_phy_ht_spur_avoid(dev, new_channel); b43_phy_write(dev, 382, 14384); return; } } static int b43_phy_ht_set_channel(struct b43_wldev *dev , struct ieee80211_channel *channel , enum nl80211_channel_type channel_type ) { struct b43_phy *phy ; struct b43_phy_ht_channeltab_e_radio2059 const *chent_r2059 ; { phy = & dev->phy; chent_r2059 = (struct b43_phy_ht_channeltab_e_radio2059 const *)0; if ((unsigned int )phy->radio_ver == 8281U) { chent_r2059 = b43_phy_ht_get_channeltab_e_r2059(dev, (int )channel->center_freq); if ((unsigned long )chent_r2059 == (unsigned long )((struct b43_phy_ht_channeltab_e_radio2059 const *)0)) { return (-3); } else { } } else { return (-3); } if ((unsigned int )phy->radio_ver == 8281U) { b43_radio_2059_channel_setup(dev, chent_r2059); b43_phy_ht_channel_setup(dev, & chent_r2059->phy_regs, channel); } else { return (-3); } return (0); } } static int b43_phy_ht_op_allocate(struct b43_wldev *dev ) { struct b43_phy_ht *phy_ht ; void *tmp ; { tmp = kzalloc(28UL, 208U); phy_ht = (struct b43_phy_ht *)tmp; if ((unsigned long )phy_ht == (unsigned long )((struct b43_phy_ht *)0)) { return (-12); } else { } dev->phy.__annonCompField106.ht = phy_ht; return (0); } } static void b43_phy_ht_op_prepare_structs(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_ht *phy_ht ; int i ; { phy = & dev->phy; phy_ht = phy->__annonCompField106.ht; memset((void *)phy_ht, 0, 28UL); phy_ht->tx_pwr_ctl = 1; i = 0; goto ldv_54360; ldv_54359: phy_ht->tx_pwr_idx[i] = 128U; i = i + 1; ldv_54360: ; if (i <= 2) { goto ldv_54359; } else { } i = 0; goto ldv_54363; ldv_54362: phy_ht->bb_mult_save[i] = -1; i = i + 1; ldv_54363: ; if (i <= 2) { goto ldv_54362; } else { } return; } } static int b43_phy_ht_op_init(struct b43_wldev *dev ) { struct b43_phy_ht *phy_ht ; u16 tmp ; u16 clip_state[3U] ; bool saved_tx_pwr_ctl ; enum ieee80211_band tmp___0 ; u32 tmp___1 ; u32 tmp___2 ; u32 tmp___3 ; enum ieee80211_band tmp___4 ; { phy_ht = dev->phy.__annonCompField106.ht; if ((unsigned int )(dev->dev)->bus_type != 0U) { b43err(dev->wl, "HT-PHY is supported only on BCMA bus!\n"); return (-95); } else { } b43_phy_ht_tables_init(dev); b43_phy_mask(dev, 190, 65533); b43_phy_set(dev, 575, 2047); b43_phy_set(dev, 576, 2047); b43_phy_set(dev, 577, 2047); b43_phy_ht_zero_extg(dev); b43_phy_mask(dev, 2048, 65532); b43_phy_write(dev, 2320, 0); b43_phy_write(dev, 2324, 0); b43_phy_write(dev, 2328, 0); b43_phy_write(dev, 2307, 32); b43_phy_write(dev, 2305, 32); b43_phy_write(dev, 525, 184); b43_phy_write(dev, 2383, 200); b43_phy_write(dev, 112, 80); b43_phy_write(dev, 511, 48); tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 1U) { b43_phy_ht_classifier(dev, 1, 0); } else { b43_phy_ht_classifier(dev, 1, 1); } b43_phy_set(dev, 177, 145); b43_phy_write(dev, 815, 3); b43_phy_write(dev, 119, 16); b43_phy_write(dev, 180, 600); b43_phy_mask(dev, 382, 49151); b43_phy_write(dev, 185, 114); b43_httab_write_few(dev, 536878414U, 2UL, 271, 271); b43_httab_write_few(dev, 536878430U, 2UL, 271, 271); b43_httab_write_few(dev, 536878446U, 2UL, 271, 271); b43_phy_ht_afe_unk1(dev); b43_httab_write_few(dev, 536878384U, 9UL, 1911, 273, 273, 1911, 273, 273, 1911, 273, 273); b43_httab_write(dev, 536878368U, 1911U); b43_httab_write(dev, 536878372U, 1911U); b43_httab_write(dev, 536879104U, 2U); b43_httab_write(dev, 536879120U, 2U); b43_httab_write(dev, 536879136U, 2U); b43_httab_write_few(dev, 536879112U, 4UL, 142, 150, 150, 150); b43_httab_write_few(dev, 536879128U, 4UL, 143, 159, 159, 159); b43_httab_write_few(dev, 536879144U, 4UL, 143, 159, 159, 159); b43_httab_write_few(dev, 536879116U, 4UL, 2, 2, 2, 2); b43_httab_write_few(dev, 536879132U, 4UL, 2, 2, 2, 2); b43_httab_write_few(dev, 536879148U, 4UL, 2, 2, 2, 2); b43_phy_maskset(dev, 640, 65280, 62); b43_phy_maskset(dev, 643, 65280, 62); b43_phy_maskset(dev, 1345, 65280, 70); b43_phy_maskset(dev, 643, 65280, 64); b43_httab_write_few(dev, 536870920U, 4UL, 9, 14, 19, 24); b43_httab_write_few(dev, 536871944U, 4UL, 9, 14, 19, 24); b43_httab_write_few(dev, 536911880U, 4UL, 9, 14, 19, 24); b43_phy_maskset(dev, 1060, 63, 13); b43_phy_maskset(dev, 1124, 63, 13); b43_phy_maskset(dev, 1188, 63, 13); b43_phy_set(dev, 2144, 1); b43_phy_set(dev, 2148, 1); b43_phy_set(dev, 2176, 1); b43_phy_set(dev, 2180, 1); tmp___1 = b43_httab_read(dev, 536878404U); tmp = (u16 )tmp___1; b43_httab_write(dev, 536878410U, (u32 )tmp); tmp___2 = b43_httab_read(dev, 536878420U); tmp = (u16 )tmp___2; b43_httab_write(dev, 536878426U, (u32 )tmp); tmp___3 = b43_httab_read(dev, 536878436U); tmp = (u16 )tmp___3; b43_httab_write(dev, 536878442U, (u32 )tmp); b43_phy_force_clock(dev, 1); tmp = b43_phy_read(dev, 1); b43_phy_write(dev, 1, (int )((unsigned int )tmp | 16384U)); b43_phy_write(dev, 1, (int )tmp & 49151); b43_phy_force_clock(dev, 0); b43_mac_phy_clock_set(dev, 1); b43_phy_ht_pa_override(dev, 0); b43_phy_ht_force_rf_sequence(dev, 1); b43_phy_ht_force_rf_sequence(dev, 32); b43_phy_ht_pa_override(dev, 1); b43_phy_ht_classifier(dev, 0, 0); b43_phy_ht_read_clip_detection(dev, (u16 *)(& clip_state)); tmp___4 = b43_current_band(dev->wl); if ((unsigned int )tmp___4 == 0U) { b43_phy_ht_bphy_init(dev); } else { } b43_httab_write_bulk(dev, 805333184U, 128U, (void const *)(& b43_httab_0x1a_0xc0_late)); saved_tx_pwr_ctl = phy_ht->tx_pwr_ctl; b43_phy_ht_tx_power_fix(dev); b43_phy_ht_tx_power_ctl(dev, 0); b43_phy_ht_tx_power_ctl_idle_tssi(dev); b43_phy_ht_tx_power_ctl_setup(dev); b43_phy_ht_tssi_setup(dev); b43_phy_ht_tx_power_ctl(dev, (int )saved_tx_pwr_ctl); return (0); } } static void b43_phy_ht_op_free(struct b43_wldev *dev ) { struct b43_phy *phy ; struct b43_phy_ht *phy_ht ; { phy = & dev->phy; phy_ht = phy->__annonCompField106.ht; kfree((void const *)phy_ht); phy->__annonCompField106.ht = (struct b43_phy_ht *)0; return; } } static void b43_phy_ht_op_software_rfkill(struct b43_wldev *dev , bool blocked ) { u32 tmp ; int __ret_warn_on ; long tmp___0 ; { tmp = b43_read32(dev, 288); if ((int )tmp & 1) { b43err(dev->wl, "MAC not suspended\n"); } else { } if ((int )blocked) { b43_phy_mask(dev, 2064, 65533); } else { if ((unsigned int )dev->phy.radio_ver == 8281U) { b43_radio_2059_init(dev); } else { __ret_warn_on = 1; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/phy_ht.c", 1048); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); } b43_switch_channel(dev, dev->phy.channel); } return; } } static void b43_phy_ht_op_switch_analog(struct b43_wldev *dev , bool on ) { { if ((int )on) { b43_phy_write(dev, 2321, 205); b43_phy_write(dev, 2320, 0); b43_phy_write(dev, 2325, 205); b43_phy_write(dev, 2324, 0); b43_phy_write(dev, 2329, 205); b43_phy_write(dev, 2328, 0); } else { b43_phy_write(dev, 2320, 2047); b43_phy_write(dev, 2321, 253); b43_phy_write(dev, 2324, 2047); b43_phy_write(dev, 2325, 253); b43_phy_write(dev, 2328, 2047); b43_phy_write(dev, 2329, 253); } return; } } static int b43_phy_ht_op_switch_channel(struct b43_wldev *dev , unsigned int new_channel ) { struct ieee80211_channel *channel ; enum nl80211_channel_type channel_type ; enum nl80211_channel_type tmp ; enum ieee80211_band tmp___0 ; int tmp___1 ; { channel = ((dev->wl)->hw)->conf.chandef.chan; tmp = cfg80211_get_chandef_type((struct cfg80211_chan_def const *)(& ((dev->wl)->hw)->conf.chandef)); channel_type = tmp; tmp___0 = b43_current_band(dev->wl); if ((unsigned int )tmp___0 == 0U) { if (new_channel == 0U || new_channel > 14U) { return (-22); } else { } } else { return (-22); } tmp___1 = b43_phy_ht_set_channel(dev, channel, channel_type); return (tmp___1); } } static unsigned int b43_phy_ht_op_get_default_chan(struct b43_wldev *dev ) { enum ieee80211_band tmp ; { tmp = b43_current_band(dev->wl); if ((unsigned int )tmp == 0U) { return (11U); } else { } return (36U); } } static void b43_phy_ht_op_maskset(struct b43_wldev *dev , u16 reg , u16 mask , u16 set ) { u16 tmp ; { b43_write16f(dev, 1020, (int )reg); tmp = b43_read16(dev, 1022); b43_write16(dev, 1022, ((int )tmp & (int )mask) | (int )set); return; } } static u16 b43_phy_ht_op_radio_read(struct b43_wldev *dev , u16 reg ) { u16 tmp ; { reg = (u16 )((unsigned int )reg | 512U); b43_write16f(dev, 984, (int )reg); tmp = b43_read16(dev, 986); return (tmp); } } static void b43_phy_ht_op_radio_write(struct b43_wldev *dev , u16 reg , u16 value ) { { b43_write16f(dev, 984, (int )reg); b43_write16(dev, 986, (int )value); return; } } static enum b43_txpwr_result b43_phy_ht_op_recalc_txpower(struct b43_wldev *dev , bool ignore_tssi ) { { return (1); } } static void b43_phy_ht_op_adjust_txpower(struct b43_wldev *dev ) { { return; } } struct b43_phy_operations const b43_phyops_ht = {& b43_phy_ht_op_allocate, & b43_phy_ht_op_free, & b43_phy_ht_op_prepare_structs, 0, & b43_phy_ht_op_init, 0, 0, 0, & b43_phy_ht_op_maskset, & b43_phy_ht_op_radio_read, & b43_phy_ht_op_radio_write, 0, & b43_phy_ht_op_software_rfkill, & b43_phy_ht_op_switch_analog, & b43_phy_ht_op_switch_channel, & b43_phy_ht_op_get_default_chan, 0, 0, & b43_phy_ht_op_recalc_txpower, & b43_phy_ht_op_adjust_txpower, 0, 0}; void ldv_initialize_b43_phy_operations_27(void) { void *tmp ; { tmp = ldv_init_zalloc(1912UL); b43_phyops_ht_group0 = (struct b43_wldev *)tmp; return; } } void ldv_main_exported_27(void) { u16 ldvarg52 ; bool ldvarg55 ; u16 ldvarg53 ; u16 ldvarg61 ; bool ldvarg58 ; u16 ldvarg54 ; unsigned int ldvarg57 ; bool ldvarg56 ; u16 ldvarg59 ; u16 ldvarg60 ; int tmp ; { ldv_memset((void *)(& ldvarg52), 0, 2UL); ldv_memset((void *)(& ldvarg55), 0, 1UL); ldv_memset((void *)(& ldvarg53), 0, 2UL); ldv_memset((void *)(& ldvarg61), 0, 2UL); ldv_memset((void *)(& ldvarg58), 0, 1UL); ldv_memset((void *)(& ldvarg54), 0, 2UL); ldv_memset((void *)(& ldvarg57), 0, 4UL); ldv_memset((void *)(& ldvarg56), 0, 1UL); ldv_memset((void *)(& ldvarg59), 0, 2UL); ldv_memset((void *)(& ldvarg60), 0, 2UL); tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ; if (ldv_state_variable_27 == 1) { b43_phy_ht_op_prepare_structs(b43_phyops_ht_group0); ldv_state_variable_27 = 1; } else { } goto ldv_54436; case 1: ; if (ldv_state_variable_27 == 1) { b43_phy_ht_op_allocate(b43_phyops_ht_group0); ldv_state_variable_27 = 1; } else { } goto ldv_54436; case 2: ; if (ldv_state_variable_27 == 1) { b43_phy_ht_op_get_default_chan(b43_phyops_ht_group0); ldv_state_variable_27 = 1; } else { } goto ldv_54436; case 3: ; if (ldv_state_variable_27 == 1) { b43_phy_ht_op_radio_write(b43_phyops_ht_group0, (int )ldvarg61, (int )ldvarg60); ldv_state_variable_27 = 1; } else { } goto ldv_54436; case 4: ; if (ldv_state_variable_27 == 1) { b43_phy_ht_op_radio_read(b43_phyops_ht_group0, (int )ldvarg59); ldv_state_variable_27 = 1; } else { } goto ldv_54436; case 5: ; if (ldv_state_variable_27 == 1) { b43_phy_ht_op_adjust_txpower(b43_phyops_ht_group0); ldv_state_variable_27 = 1; } else { } goto ldv_54436; case 6: ; if (ldv_state_variable_27 == 1) { b43_phy_ht_op_software_rfkill(b43_phyops_ht_group0, (int )ldvarg58); ldv_state_variable_27 = 1; } else { } goto ldv_54436; case 7: ; if (ldv_state_variable_27 == 1) { b43_phy_ht_op_free(b43_phyops_ht_group0); ldv_state_variable_27 = 1; } else { } goto ldv_54436; case 8: ; if (ldv_state_variable_27 == 1) { b43_phy_ht_op_switch_channel(b43_phyops_ht_group0, ldvarg57); ldv_state_variable_27 = 1; } else { } goto ldv_54436; case 9: ; if (ldv_state_variable_27 == 1) { b43_phy_ht_op_recalc_txpower(b43_phyops_ht_group0, (int )ldvarg56); ldv_state_variable_27 = 1; } else { } goto ldv_54436; case 10: ; if (ldv_state_variable_27 == 1) { b43_phy_ht_op_init(b43_phyops_ht_group0); ldv_state_variable_27 = 1; } else { } goto ldv_54436; case 11: ; if (ldv_state_variable_27 == 1) { b43_phy_ht_op_switch_analog(b43_phyops_ht_group0, (int )ldvarg55); ldv_state_variable_27 = 1; } else { } goto ldv_54436; case 12: ; if (ldv_state_variable_27 == 1) { b43_phy_ht_op_maskset(b43_phyops_ht_group0, (int )ldvarg54, (int )ldvarg53, (int )ldvarg52); ldv_state_variable_27 = 1; } else { } goto ldv_54436; default: ldv_stop(); } ldv_54436: ; return; } } bool ldv_queue_work_on_273(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_274(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_275(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_276(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_277(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_278(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } void ldv__builtin_va_arg(__builtin_va_list , unsigned long , void * ) ; __inline static long ldv__builtin_expect(long exp , long c ) ; bool ldv_queue_work_on_289(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_291(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_290(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_293(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_292(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_294(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; void b43_httab_read_bulk(struct b43_wldev *dev , u32 offset , unsigned int nr_elements , void *_data___0 ) ; static u16 const b43_httab_0x12[128U] = { 0U, 8U, 10U, 16U, 18U, 25U, 26U, 28U, 128U, 136U, 138U, 144U, 146U, 153U, 154U, 156U, 256U, 264U, 266U, 272U, 274U, 281U, 282U, 284U, 384U, 392U, 394U, 400U, 402U, 409U, 410U, 412U, 0U, 152U, 160U, 168U, 154U, 162U, 170U, 288U, 296U, 296U, 304U, 312U, 312U, 320U, 290U, 298U, 298U, 306U, 314U, 314U, 322U, 424U, 432U, 440U, 432U, 440U, 448U, 456U, 448U, 456U, 464U, 464U, 472U, 426U, 434U, 442U, 434U, 442U, 450U, 458U, 450U, 458U, 466U, 466U, 474U, 1U, 2U, 4U, 9U, 12U, 17U, 20U, 24U, 32U, 33U, 34U, 36U, 129U, 130U, 132U, 137U, 140U, 145U, 148U, 152U, 160U, 161U, 162U, 164U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U, 7U}; static u16 const b43_httab_0x27[32U] = { 9U, 14U, 17U, 20U, 23U, 26U, 29U, 32U, 9U, 14U, 17U, 20U, 23U, 26U, 29U, 32U, 9U, 14U, 17U, 20U, 23U, 26U, 29U, 32U, 9U, 14U, 17U, 20U, 23U, 26U, 29U, 32U}; static u16 const b43_httab_0x26[128U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u32 const b43_httab_0x25[128U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u32 const b43_httab_0x2f[22U] = { 218880U, 183450U, 157286U, 88095U, 88095U, 88095U, 88095U, 88095U, 88095U, 88095U, 88095U, 218880U, 183450U, 157286U, 88095U, 88095U, 88095U, 88095U, 88095U, 88095U, 88095U, 88095U}; static u16 const b43_httab_0x1a[64U] = { 85U, 84U, 84U, 83U, 82U, 82U, 81U, 81U, 80U, 79U, 79U, 78U, 78U, 77U, 76U, 76U, 75U, 74U, 73U, 73U, 72U, 71U, 70U, 70U, 69U, 68U, 67U, 66U, 65U, 64U, 64U, 63U, 62U, 61U, 60U, 58U, 57U, 56U, 55U, 54U, 53U, 51U, 50U, 49U, 47U, 46U, 44U, 43U, 41U, 39U, 37U, 35U, 33U, 31U, 29U, 26U, 24U, 21U, 18U, 14U, 11U, 7U, 2U, 253U}; static u16 const b43_httab_0x1b[64U] = { 85U, 84U, 84U, 83U, 82U, 82U, 81U, 81U, 80U, 79U, 79U, 78U, 78U, 77U, 76U, 76U, 75U, 74U, 73U, 73U, 72U, 71U, 70U, 70U, 69U, 68U, 67U, 66U, 65U, 64U, 64U, 63U, 62U, 61U, 60U, 58U, 57U, 56U, 55U, 54U, 53U, 51U, 50U, 49U, 47U, 46U, 44U, 43U, 41U, 39U, 37U, 35U, 33U, 31U, 29U, 26U, 24U, 21U, 18U, 14U, 11U, 7U, 2U, 253U}; static u16 const b43_httab_0x1c[64U] = { 85U, 84U, 84U, 83U, 82U, 82U, 81U, 81U, 80U, 79U, 79U, 78U, 78U, 77U, 76U, 76U, 75U, 74U, 73U, 73U, 72U, 71U, 70U, 70U, 69U, 68U, 67U, 66U, 65U, 64U, 64U, 63U, 62U, 61U, 60U, 58U, 57U, 56U, 55U, 54U, 53U, 51U, 50U, 49U, 47U, 46U, 44U, 43U, 41U, 39U, 37U, 35U, 33U, 31U, 29U, 26U, 24U, 21U, 18U, 14U, 11U, 7U, 2U, 253U}; static u32 const b43_httab_0x1a_0xc0[128U] = { 1542914116U, 1542914114U, 1542914112U, 1542914110U, 1542914108U, 1542914107U, 1542914105U, 1542914103U, 1542914102U, 1542914100U, 1542914099U, 1542914097U, 1542914096U, 1537671236U, 1537671234U, 1537671232U, 1537671230U, 1537671228U, 1537671227U, 1537671225U, 1537671223U, 1537671222U, 1537671220U, 1537671219U, 1534525508U, 1534525506U, 1534525504U, 1534525502U, 1534525500U, 1534525499U, 1534525497U, 1534525495U, 1534525494U, 1534525492U, 1534525491U, 1534525489U, 1534525488U, 1534525487U, 1534525485U, 1534525484U, 1531379780U, 1531379778U, 1531379776U, 1531379774U, 1531379772U, 1531379771U, 1531379769U, 1531379767U, 1531379766U, 1531379764U, 1531379763U, 1531379761U, 1531379760U, 1531379759U, 1531379757U, 1531379756U, 1531379755U, 1531379754U, 1529282628U, 1529282626U, 1529282624U, 1529282622U, 1529282620U, 1529282619U, 1529282617U, 1529282615U, 1529282614U, 1529282612U, 1529282611U, 1529282609U, 1529282608U, 1529282607U, 1528234052U, 1528234050U, 1528234048U, 1528234046U, 1528234044U, 1528234043U, 1528234041U, 1528234039U, 1528234038U, 1528234036U, 1528234035U, 1528234033U, 1528234032U, 1528234031U, 1528234029U, 1528234028U, 1528234027U, 1528234026U, 1528234024U, 1528234023U, 1528234022U, 1528234021U, 1528234020U, 1528234019U, 1527185476U, 1527185474U, 1527185472U, 1527185470U, 1527185468U, 1527185467U, 1527185465U, 1527185463U, 1527185462U, 1527185460U, 1527185459U, 1527185457U, 1527185456U, 1527185455U, 1527185453U, 1527185452U, 1527185451U, 1527185450U, 1527185448U, 1527185447U, 1527185446U, 1527185445U, 1527185444U, 1527185443U, 1527185442U, 1527185441U, 1527185440U, 1527185439U, 1527185438U, 1527185437U, 1527185437U, 1527185436U}; static u32 const b43_httab_0x1a_0x140[128U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u32 const b43_httab_0x1b_0x140[128U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u32 const b43_httab_0x1c_0x140[128U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u16 const b43_httab_0x1a_0x1c0[128U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u16 const b43_httab_0x1b_0x1c0[128U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u16 const b43_httab_0x1c_0x1c0[128U] = { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U}; static u16 const b43_httab_0x1a_0x240[128U] = { 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 42U, 42U, 42U, 42U, 42U, 42U, 42U, 42U, 42U, 42U, 42U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U}; static u16 const b43_httab_0x1b_0x240[128U] = { 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 42U, 42U, 42U, 42U, 42U, 42U, 42U, 42U, 42U, 42U, 42U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U}; static u16 const b43_httab_0x1c_0x240[128U] = { 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 54U, 42U, 42U, 42U, 42U, 42U, 42U, 42U, 42U, 42U, 42U, 42U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 30U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 14U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 508U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 494U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U, 470U}; static u32 const b43_httab_0x1f[64U] = { 0U, 0U, 90147U, 24616U, 213046U, 213038U, 467004U, 450615U, 458800U, 606239U, 630799U, 745485U, 819207U, 843783U, 1056767U, 1187833U, 1236996U, 1368060U, 1499126U, 1630185U, 1785829U, 1859536U, 1957826U, 2039734U, 2129828U, 2203535U, 2293629U, 2391916U, 2416475U, 2522955U, 2613051U, 2735931U, 2842415U, 2965294U, 3104554U, 3145493U, 3235595U, 3333882U, 3391211U, 3473113U, 3489477U, 3546800U, 3554971U, 3587719U, 3587696U, 3735143U, 4505266U, 5324531U, 5857041U, 6725437U, 7921631U, 10568618U, 23343103U, 23244799U, 23203839U, 23121919U, 23007231U, 22917119U, 22794239U, 22794239U, 22761471U, 22728703U, 22614015U, 22466559U}; static u32 const b43_httab_0x21[64U] = { 0U, 0U, 90147U, 24616U, 213046U, 213038U, 467004U, 450615U, 458800U, 606239U, 630799U, 745485U, 819207U, 843783U, 1056767U, 1187833U, 1236996U, 1368060U, 1499126U, 1630185U, 1785829U, 1859536U, 1957826U, 2039734U, 2129828U, 2203535U, 2293629U, 2391916U, 2416475U, 2522955U, 2613051U, 2735931U, 2842415U, 2965294U, 3104554U, 3145493U, 3235595U, 3333882U, 3391211U, 3473113U, 3489477U, 3546800U, 3554971U, 3587719U, 3587696U, 3735143U, 4505266U, 5324531U, 5857041U, 6725437U, 7921631U, 10568618U, 23343103U, 23244799U, 23203839U, 23121919U, 23007231U, 22917119U, 22794239U, 22794239U, 22761471U, 22728703U, 22614015U, 22466559U}; static u32 const b43_httab_0x23[64U] = { 0U, 0U, 90147U, 24616U, 213046U, 213038U, 467004U, 450615U, 458800U, 606239U, 630799U, 745485U, 819207U, 843783U, 1056767U, 1187833U, 1236996U, 1368060U, 1499126U, 1630185U, 1785829U, 1859536U, 1957826U, 2039734U, 2129828U, 2203535U, 2293629U, 2391916U, 2416475U, 2522955U, 2613051U, 2735931U, 2842415U, 2965294U, 3104554U, 3145493U, 3235595U, 3333882U, 3391211U, 3473113U, 3489477U, 3546800U, 3554971U, 3587719U, 3587696U, 3735143U, 4505266U, 5324531U, 5857041U, 6725437U, 7921631U, 10568618U, 23343103U, 23244799U, 23203839U, 23121919U, 23007231U, 22917119U, 22794239U, 22794239U, 22761471U, 22728703U, 22614015U, 22466559U}; static u32 const b43_httab_0x20[64U] = { 190709805U, 182583343U, 171638834U, 161939509U, 153223224U, 145424443U, 136249407U, 128057411U, 120848455U, 114425931U, 108658767U, 102170708U, 96403545U, 91291742U, 85852260U, 80937066U, 76611696U, 72089719U, 68092030U, 64553093U, 60883085U, 57606293U, 54329502U, 51052712U, 48234674U, 45678780U, 43122887U, 40698067U, 38338784U, 36241645U, 34210043U, 32243978U, 30540057U, 28770602U, 27132220U, 25690446U, 24248674U, 22872439U, 21561742U, 20382117U, 19268030U, 18153944U, 17170932U, 16187922U, 15270449U, 14418515U, 13632118U, 12845723U, 12124867U, 11469549U, 10814233U, 10224456U, 9634682U, 9110447U, 8586214U, 8127522U, 7668832U, 7210147U, 6817001U, 6423859U, 6096258U, 5768662U, 5441070U, 5113484U}; static u32 const b43_httab_0x22[64U] = { 190709805U, 182583343U, 171638834U, 161939509U, 153223224U, 145424443U, 136249407U, 128057411U, 120848455U, 114425931U, 108658767U, 102170708U, 96403545U, 91291742U, 85852260U, 80937066U, 76611696U, 72089719U, 68092030U, 64553093U, 60883085U, 57606293U, 54329502U, 51052712U, 48234674U, 45678780U, 43122887U, 40698067U, 38338784U, 36241645U, 34210043U, 32243978U, 30540057U, 28770602U, 27132220U, 25690446U, 24248674U, 22872439U, 21561742U, 20382117U, 19268030U, 18153944U, 17170932U, 16187922U, 15270449U, 14418515U, 13632118U, 12845723U, 12124867U, 11469549U, 10814233U, 10224456U, 9634682U, 9110447U, 8586214U, 8127522U, 7668832U, 7210147U, 6817001U, 6423859U, 6096258U, 5768662U, 5441070U, 5113484U}; static u32 const b43_httab_0x24[64U] = { 190709805U, 182583343U, 171638834U, 161939509U, 153223224U, 145424443U, 136249407U, 128057411U, 120848455U, 114425931U, 108658767U, 102170708U, 96403545U, 91291742U, 85852260U, 80937066U, 76611696U, 72089719U, 68092030U, 64553093U, 60883085U, 57606293U, 54329502U, 51052712U, 48234674U, 45678780U, 43122887U, 40698067U, 38338784U, 36241645U, 34210043U, 32243978U, 30540057U, 28770602U, 27132220U, 25690446U, 24248674U, 22872439U, 21561742U, 20382117U, 19268030U, 18153944U, 17170932U, 16187922U, 15270449U, 14418515U, 13632118U, 12845723U, 12124867U, 11469549U, 10814233U, 10224456U, 9634682U, 9110447U, 8586214U, 8127522U, 7668832U, 7210147U, 6817001U, 6423859U, 6096258U, 5768662U, 5441070U, 5113484U}; u32 const b43_httab_0x1a_0xc0_late[128U] = { 284753984U, 283181120U, 283181116U, 281608253U, 280559676U, 279511101U, 278986812U, 278462523U, 277938235U, 277413946U, 276889658U, 276365369U, 275841081U, 275316794U, 274792507U, 274268221U, 273743935U, 273219650U, 273219646U, 273219643U, 272695358U, 272695355U, 272171070U, 272171067U, 272171064U, 272171061U, 271646778U, 271646774U, 271646771U, 271122490U, 271122487U, 271122484U, 271122481U, 270598201U, 270598198U, 270598195U, 270598192U, 270073916U, 270073913U, 270073910U, 270073907U, 270073904U, 270073901U, 270073899U, 270073896U, 269549626U, 269549622U, 269549619U, 269549616U, 269549614U, 269549611U, 269549609U, 269549607U, 269549604U, 269549602U, 269549600U, 269549599U, 269549597U, 269025338U, 269025335U, 269025332U, 269025329U, 269025326U, 269025324U, 269025321U, 269025319U, 269025317U, 269025315U, 269025313U, 269025311U, 269025309U, 269025307U, 269025306U, 269025304U, 269025303U, 269025302U, 269025301U, 269025299U, 269025298U, 269025297U, 269025296U, 269025295U, 269025295U, 269025294U, 269025293U, 269025292U, 269025292U, 269025291U, 269025290U, 269025290U, 269025289U, 269025289U, 269025288U, 269025288U, 269025287U, 269025287U, 269025287U, 269025286U, 269025286U, 269025285U, 269025285U, 269025285U, 269025285U, 269025284U, 269025284U, 269025284U, 269025284U, 269025283U, 269025283U, 269025283U, 269025283U, 269025283U, 269025283U, 269025282U, 269025282U, 269025282U, 269025282U, 269025282U, 269025282U, 269025282U, 269025282U, 269025282U, 269025281U, 269025281U, 269025281U, 269025281U, 269025281U, 269025281U}; u32 b43_httab_read(struct b43_wldev *dev , u32 offset ) { u32 type ; u32 value ; int __ret_warn_on ; long tmp ; u16 tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; u16 tmp___3 ; int __ret_warn_on___0 ; long tmp___4 ; { type = offset & 4026531840U; offset = offset & 268435455U; __ret_warn_on = offset > 65535U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_phy_ht.c", 625); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); switch (type) { case 268435456U: b43_phy_write(dev, 114, (int )((u16 )offset)); tmp___0 = b43_phy_read(dev, 115); value = (u32 )tmp___0 & 255U; goto ldv_53972; case 536870912U: b43_phy_write(dev, 114, (int )((u16 )offset)); tmp___1 = b43_phy_read(dev, 115); value = (u32 )tmp___1; goto ldv_53972; case 805306368U: b43_phy_write(dev, 114, (int )((u16 )offset)); tmp___2 = b43_phy_read(dev, 116); value = (u32 )tmp___2; value = value << 16; tmp___3 = b43_phy_read(dev, 115); value = (u32 )tmp___3 | value; goto ldv_53972; default: __ret_warn_on___0 = 1; tmp___4 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___4 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_phy_ht.c", 643); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); value = 0U; } ldv_53972: ; return (value); } } void b43_httab_read_bulk(struct b43_wldev *dev , u32 offset , unsigned int nr_elements , void *_data___0 ) { u32 type ; u8 *data ; unsigned int i ; int __ret_warn_on ; long tmp ; u16 tmp___0 ; u16 tmp___1 ; u16 tmp___2 ; int __ret_warn_on___0 ; long tmp___3 ; { data = (u8 *)_data___0; type = offset & 4026531840U; offset = offset & 268435455U; __ret_warn_on = offset > 65535U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_phy_ht.c", 659); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_phy_write(dev, 114, (int )((u16 )offset)); i = 0U; goto ldv_53997; ldv_53996: ; switch (type) { case 268435456U: tmp___0 = b43_phy_read(dev, 115); *data = (u8 )tmp___0; data = data + 1; goto ldv_53990; case 536870912U: *((u16 *)data) = b43_phy_read(dev, 115); data = data + 2UL; goto ldv_53990; case 805306368U: tmp___1 = b43_phy_read(dev, 116); *((u32 *)data) = (u32 )tmp___1; *((u32 *)data) = *((u32 *)data) << 16; tmp___2 = b43_phy_read(dev, 115); *((u32 *)data) = *((u32 *)data) | (u32 )tmp___2; data = data + 4UL; goto ldv_53990; default: __ret_warn_on___0 = 1; tmp___3 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___3 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_phy_ht.c", 680); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); } ldv_53990: i = i + 1U; ldv_53997: ; if (i < nr_elements) { goto ldv_53996; } else { } return; } } void b43_httab_write(struct b43_wldev *dev , u32 offset , u32 value ) { u32 type ; int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; int __ret_warn_on___1 ; long tmp___1 ; { type = offset & 4026531840U; offset = offset & 65535U; switch (type) { case 268435456U: __ret_warn_on = (value & 4294967040U) != 0U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_phy_ht.c", 694); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_phy_write(dev, 114, (int )((u16 )offset)); b43_phy_write(dev, 115, (int )((u16 )value)); goto ldv_54008; case 536870912U: __ret_warn_on___0 = (value & 4294901760U) != 0U; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_phy_ht.c", 699); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); b43_phy_write(dev, 114, (int )((u16 )offset)); b43_phy_write(dev, 115, (int )((u16 )value)); goto ldv_54008; case 805306368U: b43_phy_write(dev, 114, (int )((u16 )offset)); b43_phy_write(dev, 116, (int )((u16 )(value >> 16))); b43_phy_write(dev, 115, (int )((u16 )value)); goto ldv_54008; default: __ret_warn_on___1 = 1; tmp___1 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_phy_ht.c", 709); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); } ldv_54008: ; return; } } void b43_httab_write_few(struct b43_wldev *dev , u32 offset , size_t num , ...) { va_list args ; u32 type ; u32 value ; unsigned int i ; int tmp___0 ; int __ret_warn_on ; long tmp___1 ; int tmp___3 ; int __ret_warn_on___0 ; long tmp___4 ; int tmp___6 ; int __ret_warn_on___1 ; long tmp___7 ; { type = offset & 4026531840U; offset = offset & 65535U; ldv__builtin_va_start((va_list *)(& args)); switch (type) { case 268435456U: b43_phy_write(dev, 114, (int )((u16 )offset)); i = 0U; goto ldv_54029; ldv_54028: ldv__builtin_va_arg(args, sizeof(int ), (void *)(& tmp___0)); value = (u32 )tmp___0; __ret_warn_on = (value & 4294967040U) != 0U; tmp___1 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_phy_ht.c", 730); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_phy_write(dev, 115, (int )((u16 )value)); i = i + 1U; ldv_54029: ; if ((size_t )i < num) { goto ldv_54028; } else { } goto ldv_54031; case 536870912U: b43_phy_write(dev, 114, (int )((u16 )offset)); i = 0U; goto ldv_54036; ldv_54035: ldv__builtin_va_arg(args, sizeof(int ), (void *)(& tmp___3)); value = (u32 )tmp___3; __ret_warn_on___0 = (value & 4294901760U) != 0U; tmp___4 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___4 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_phy_ht.c", 738); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); b43_phy_write(dev, 115, (int )((u16 )value)); i = i + 1U; ldv_54036: ; if ((size_t )i < num) { goto ldv_54035; } else { } goto ldv_54031; case 805306368U: b43_phy_write(dev, 114, (int )((u16 )offset)); i = 0U; goto ldv_54040; ldv_54039: ldv__builtin_va_arg(args, sizeof(int ), (void *)(& tmp___6)); value = (u32 )tmp___6; b43_phy_write(dev, 116, (int )((u16 )(value >> 16))); b43_phy_write(dev, 115, (int )((u16 )value)); i = i + 1U; ldv_54040: ; if ((size_t )i < num) { goto ldv_54039; } else { } goto ldv_54031; default: __ret_warn_on___1 = 1; tmp___7 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___7 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_phy_ht.c", 753); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); } ldv_54031: ldv__builtin_va_end((va_list *)(& args)); return; } } void b43_httab_write_bulk(struct b43_wldev *dev , u32 offset , unsigned int nr_elements , void const *_data___0 ) { u32 type ; u32 value ; u8 const *data ; unsigned int i ; int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; int __ret_warn_on___1 ; long tmp___1 ; int __ret_warn_on___2 ; long tmp___2 ; { data = (u8 const *)_data___0; type = offset & 4026531840U; offset = offset & 268435455U; __ret_warn_on = offset > 65535U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_phy_ht.c", 769); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43_phy_write(dev, 114, (int )((u16 )offset)); i = 0U; goto ldv_54069; ldv_54068: ; switch (type) { case 268435456U: value = (u32 )*data; data = data + 1; __ret_warn_on___0 = (value & 4294967040U) != 0U; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_phy_ht.c", 778); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); b43_phy_write(dev, 115, (int )((u16 )value)); goto ldv_54060; case 536870912U: value = (u32 )*((u16 *)data); data = data + 2UL; __ret_warn_on___1 = (value & 4294901760U) != 0U; tmp___1 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_phy_ht.c", 784); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); b43_phy_write(dev, 115, (int )((u16 )value)); goto ldv_54060; case 805306368U: value = *((u32 *)data); data = data + 4UL; b43_phy_write(dev, 116, (int )((u16 )(value >> 16))); b43_phy_write(dev, 115, (int )((u16 )value)); goto ldv_54060; default: __ret_warn_on___2 = 1; tmp___2 = ldv__builtin_expect(__ret_warn_on___2 != 0, 0L); if (tmp___2 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/tables_phy_ht.c", 795); } else { } ldv__builtin_expect(__ret_warn_on___2 != 0, 0L); } ldv_54060: i = i + 1U; ldv_54069: ; if (i < nr_elements) { goto ldv_54068; } else { } return; } } void b43_phy_ht_tables_init(struct b43_wldev *dev ) { { b43_httab_write_bulk(dev, 536889344U, 128U, (void const *)(& b43_httab_0x12)); b43_httab_write_bulk(dev, 536910848U, 32U, (void const *)(& b43_httab_0x27)); b43_httab_write_bulk(dev, 536909824U, 128U, (void const *)(& b43_httab_0x26)); b43_httab_write_bulk(dev, 805344256U, 128U, (void const *)(& b43_httab_0x25)); b43_httab_write_bulk(dev, 805354496U, 22U, (void const *)(& b43_httab_0x2f)); b43_httab_write_bulk(dev, 536897536U, 64U, (void const *)(& b43_httab_0x1a)); b43_httab_write_bulk(dev, 536898560U, 64U, (void const *)(& b43_httab_0x1b)); b43_httab_write_bulk(dev, 536899584U, 64U, (void const *)(& b43_httab_0x1c)); b43_httab_write_bulk(dev, 805333184U, 128U, (void const *)(& b43_httab_0x1a_0xc0)); b43_httab_write_bulk(dev, 805333312U, 128U, (void const *)(& b43_httab_0x1a_0x140)); b43_httab_write_bulk(dev, 805334336U, 128U, (void const *)(& b43_httab_0x1b_0x140)); b43_httab_write_bulk(dev, 805335360U, 128U, (void const *)(& b43_httab_0x1c_0x140)); b43_httab_write_bulk(dev, 536897984U, 128U, (void const *)(& b43_httab_0x1a_0x1c0)); b43_httab_write_bulk(dev, 536899008U, 128U, (void const *)(& b43_httab_0x1b_0x1c0)); b43_httab_write_bulk(dev, 536900032U, 128U, (void const *)(& b43_httab_0x1c_0x1c0)); b43_httab_write_bulk(dev, 536898112U, 128U, (void const *)(& b43_httab_0x1a_0x240)); b43_httab_write_bulk(dev, 536899136U, 128U, (void const *)(& b43_httab_0x1b_0x240)); b43_httab_write_bulk(dev, 536900160U, 128U, (void const *)(& b43_httab_0x1c_0x240)); b43_httab_write_bulk(dev, 805338112U, 64U, (void const *)(& b43_httab_0x1f)); b43_httab_write_bulk(dev, 805340160U, 64U, (void const *)(& b43_httab_0x21)); b43_httab_write_bulk(dev, 805342208U, 64U, (void const *)(& b43_httab_0x23)); b43_httab_write_bulk(dev, 805339136U, 64U, (void const *)(& b43_httab_0x20)); b43_httab_write_bulk(dev, 805341184U, 64U, (void const *)(& b43_httab_0x22)); b43_httab_write_bulk(dev, 805343232U, 64U, (void const *)(& b43_httab_0x24)); return; } } bool ldv_queue_work_on_289(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_290(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_291(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_292(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_293(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_294(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; bool ldv_queue_work_on_305(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_307(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_306(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_309(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_308(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_310(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; static u16 r2059_phy_rev1_init[9U][2U] = { { 81U, 112U}, { 90U, 3U}, { 121U, 1U}, { 130U, 112U}, { 131U, 0U}, { 132U, 112U}, { 154U, 127U}, { 182U, 16U}, { 392U, 5U}}; static struct b43_phy_ht_channeltab_e_radio2059 const b43_phy_ht_channeltab_radio2059[37U] = { {2412U, 72U, 22U, 48U, 27U, 10U, 10U, 48U, 108U, 9U, 15U, 10U, 0U, 10U, 0U, 97U, 115U, 0U, 0U, 0U, 208U, 0U, {969U, 965U, 961U, 1082U, 1087U, 1091U}}, {2417U, 75U, 22U, 48U, 27U, 10U, 10U, 48U, 113U, 9U, 15U, 10U, 0U, 10U, 0U, 97U, 115U, 0U, 0U, 0U, 208U, 0U, {971U, 967U, 963U, 1080U, 1085U, 1089U}}, {2422U, 78U, 22U, 48U, 27U, 10U, 10U, 48U, 118U, 9U, 15U, 9U, 0U, 9U, 0U, 97U, 115U, 0U, 0U, 0U, 208U, 0U, {973U, 969U, 965U, 1078U, 1082U, 1087U}}, {2427U, 82U, 22U, 48U, 27U, 10U, 10U, 48U, 123U, 9U, 15U, 9U, 0U, 9U, 0U, 97U, 115U, 0U, 0U, 0U, 160U, 0U, {975U, 971U, 967U, 1076U, 1080U, 1085U}}, {2432U, 85U, 22U, 48U, 27U, 10U, 10U, 48U, 128U, 9U, 15U, 8U, 0U, 8U, 0U, 97U, 115U, 0U, 0U, 0U, 160U, 0U, {977U, 973U, 969U, 1073U, 1078U, 1082U}}, {2437U, 88U, 22U, 48U, 27U, 10U, 10U, 48U, 133U, 9U, 15U, 8U, 0U, 8U, 0U, 97U, 115U, 0U, 0U, 0U, 160U, 0U, {979U, 975U, 971U, 1071U, 1076U, 1080U}}, {2442U, 92U, 22U, 48U, 27U, 10U, 10U, 48U, 138U, 9U, 15U, 7U, 0U, 7U, 0U, 97U, 115U, 0U, 0U, 0U, 128U, 0U, {981U, 977U, 973U, 1069U, 1073U, 1078U}}, {2447U, 95U, 22U, 48U, 27U, 10U, 10U, 48U, 143U, 9U, 15U, 7U, 0U, 7U, 0U, 97U, 115U, 0U, 0U, 0U, 128U, 0U, {983U, 979U, 975U, 1067U, 1071U, 1076U}}, {2452U, 98U, 22U, 48U, 27U, 10U, 10U, 48U, 148U, 9U, 15U, 7U, 0U, 7U, 0U, 97U, 115U, 0U, 0U, 0U, 128U, 0U, {985U, 981U, 977U, 1065U, 1069U, 1073U}}, {2457U, 102U, 22U, 48U, 27U, 10U, 10U, 48U, 153U, 9U, 15U, 6U, 0U, 6U, 0U, 97U, 115U, 0U, 0U, 0U, 96U, 0U, {987U, 983U, 979U, 1063U, 1067U, 1071U}}, {2462U, 105U, 22U, 48U, 27U, 10U, 10U, 48U, 158U, 9U, 15U, 6U, 0U, 6U, 0U, 97U, 115U, 0U, 0U, 0U, 96U, 0U, {989U, 985U, 981U, 1060U, 1065U, 1069U}}, {2467U, 108U, 22U, 48U, 27U, 10U, 10U, 48U, 163U, 9U, 15U, 5U, 0U, 5U, 0U, 97U, 3U, 0U, 0U, 0U, 240U, 0U, {991U, 987U, 983U, 1058U, 1063U, 1067U}}, {2472U, 112U, 22U, 48U, 27U, 10U, 10U, 48U, 168U, 9U, 15U, 5U, 0U, 5U, 0U, 97U, 3U, 0U, 0U, 0U, 240U, 0U, {993U, 989U, 985U, 1056U, 1060U, 1065U}}, {5180U, 190U, 22U, 16U, 31U, 8U, 8U, 63U, 6U, 2U, 12U, 0U, 12U, 0U, 12U, 0U, 0U, 15U, 79U, 163U, 0U, 252U, {2076U, 2072U, 2068U, 505U, 506U, 507U}}, {5200U, 197U, 22U, 16U, 31U, 8U, 8U, 63U, 8U, 2U, 12U, 0U, 12U, 0U, 12U, 0U, 0U, 15U, 79U, 147U, 0U, 251U, {2084U, 2080U, 2076U, 503U, 504U, 505U}}, {5220U, 204U, 22U, 16U, 31U, 8U, 8U, 63U, 10U, 2U, 12U, 0U, 12U, 0U, 12U, 0U, 0U, 15U, 79U, 147U, 0U, 234U, {2092U, 2088U, 2084U, 501U, 502U, 503U}}, {5240U, 210U, 22U, 16U, 31U, 8U, 8U, 63U, 12U, 2U, 12U, 0U, 12U, 0U, 12U, 0U, 0U, 15U, 79U, 147U, 0U, 218U, {2100U, 2096U, 2092U, 499U, 500U, 501U}}, {5260U, 217U, 22U, 16U, 31U, 8U, 8U, 63U, 14U, 2U, 11U, 0U, 11U, 0U, 11U, 0U, 0U, 15U, 79U, 147U, 0U, 202U, {2108U, 2104U, 2100U, 497U, 498U, 499U}}, {5280U, 224U, 22U, 16U, 31U, 8U, 8U, 63U, 16U, 2U, 11U, 0U, 11U, 0U, 11U, 0U, 0U, 15U, 79U, 147U, 0U, 185U, {2116U, 2112U, 2108U, 496U, 496U, 497U}}, {5300U, 230U, 22U, 16U, 31U, 8U, 8U, 63U, 18U, 2U, 11U, 0U, 11U, 0U, 11U, 0U, 0U, 15U, 76U, 131U, 0U, 184U, {2124U, 2120U, 2116U, 494U, 495U, 496U}}, {5320U, 237U, 22U, 16U, 31U, 8U, 8U, 63U, 20U, 2U, 11U, 0U, 11U, 0U, 11U, 0U, 0U, 15U, 76U, 131U, 0U, 168U, {2132U, 2128U, 2124U, 492U, 493U, 494U}}, {5500U, 41U, 23U, 16U, 31U, 8U, 8U, 63U, 38U, 2U, 9U, 0U, 9U, 0U, 9U, 0U, 0U, 10U, 70U, 67U, 0U, 117U, {2204U, 2200U, 2196U, 476U, 477U, 477U}}, {5520U, 48U, 23U, 16U, 31U, 8U, 8U, 63U, 40U, 2U, 8U, 0U, 8U, 0U, 8U, 0U, 0U, 10U, 70U, 67U, 0U, 117U, {2212U, 2208U, 2204U, 474U, 475U, 476U}}, {5540U, 54U, 23U, 16U, 31U, 8U, 8U, 63U, 42U, 2U, 8U, 0U, 8U, 0U, 8U, 0U, 0U, 10U, 70U, 67U, 0U, 117U, {2220U, 2216U, 2212U, 472U, 473U, 474U}}, {5560U, 61U, 23U, 16U, 31U, 8U, 8U, 63U, 44U, 2U, 8U, 0U, 8U, 0U, 8U, 0U, 0U, 10U, 70U, 67U, 0U, 117U, {2228U, 2224U, 2220U, 471U, 471U, 472U}}, {5580U, 68U, 23U, 16U, 31U, 8U, 8U, 63U, 46U, 2U, 8U, 0U, 8U, 0U, 8U, 0U, 0U, 10U, 70U, 67U, 0U, 116U, {2236U, 2232U, 2228U, 469U, 470U, 471U}}, {5600U, 74U, 23U, 16U, 31U, 8U, 8U, 63U, 48U, 2U, 8U, 0U, 8U, 0U, 8U, 0U, 0U, 9U, 68U, 35U, 0U, 84U, {2244U, 2240U, 2236U, 467U, 468U, 469U}}, {5620U, 81U, 23U, 16U, 31U, 8U, 8U, 63U, 50U, 2U, 7U, 0U, 7U, 0U, 7U, 0U, 0U, 9U, 68U, 35U, 0U, 84U, {2252U, 2248U, 2244U, 466U, 466U, 467U}}, {5640U, 88U, 23U, 16U, 31U, 8U, 8U, 63U, 52U, 2U, 7U, 0U, 7U, 0U, 7U, 0U, 0U, 9U, 68U, 35U, 0U, 67U, {2260U, 2256U, 2252U, 464U, 465U, 466U}}, {5660U, 94U, 23U, 16U, 31U, 8U, 8U, 63U, 54U, 2U, 7U, 0U, 7U, 0U, 7U, 0U, 0U, 9U, 67U, 35U, 0U, 67U, {2268U, 2264U, 2260U, 462U, 463U, 464U}}, {5680U, 101U, 23U, 16U, 31U, 8U, 8U, 63U, 56U, 2U, 7U, 0U, 7U, 0U, 7U, 0U, 0U, 9U, 66U, 35U, 0U, 67U, {2276U, 2272U, 2268U, 461U, 462U, 462U}}, {5700U, 108U, 23U, 16U, 31U, 8U, 8U, 63U, 58U, 2U, 7U, 0U, 7U, 0U, 7U, 0U, 0U, 8U, 66U, 19U, 0U, 50U, {2284U, 2280U, 2276U, 459U, 460U, 461U}}, {5745U, 123U, 23U, 32U, 31U, 8U, 8U, 63U, 125U, 4U, 6U, 0U, 6U, 0U, 6U, 0U, 0U, 8U, 66U, 19U, 0U, 33U, {2302U, 2298U, 2294U, 456U, 456U, 457U}}, {5765U, 129U, 23U, 32U, 31U, 8U, 8U, 63U, 129U, 4U, 6U, 0U, 6U, 0U, 6U, 0U, 0U, 8U, 66U, 19U, 0U, 17U, {2310U, 2306U, 2302U, 454U, 455U, 456U}}, {5785U, 136U, 23U, 32U, 31U, 8U, 8U, 63U, 133U, 4U, 5U, 0U, 5U, 0U, 5U, 0U, 0U, 8U, 66U, 19U, 0U, 0U, {2318U, 2314U, 2310U, 452U, 453U, 454U}}, {5805U, 143U, 23U, 32U, 31U, 8U, 8U, 63U, 137U, 4U, 5U, 0U, 5U, 0U, 5U, 0U, 0U, 6U, 65U, 3U, 0U, 0U, {2326U, 2322U, 2318U, 451U, 452U, 452U}}, {5825U, 149U, 23U, 32U, 31U, 8U, 8U, 63U, 141U, 4U, 5U, 0U, 5U, 0U, 5U, 0U, 0U, 6U, 65U, 3U, 0U, 0U, {2334U, 2330U, 2326U, 449U, 450U, 451U}}}; void r2059_upload_inittabs(struct b43_wldev *dev ) { struct b43_phy *phy ; u16 *table ; u16 size ; u16 i ; int __ret_warn_on ; long tmp ; { phy = & dev->phy; table = (u16 *)0U; switch ((int )phy->rev) { case 1: table = (u16 *)(& r2059_phy_rev1_init); size = 9U; goto ldv_53955; default: __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/radio_2059.c", 343); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return; } ldv_53955: i = 0U; goto ldv_53960; ldv_53959: b43_radio_write(dev, (int )((unsigned int )*table | 3072U), (int )*(table + 1UL)); i = (u16 )((int )i + 1); table = table + 2UL; ldv_53960: ; if ((int )i < (int )size) { goto ldv_53959; } else { } return; } } struct b43_phy_ht_channeltab_e_radio2059 const *b43_phy_ht_get_channeltab_e_r2059(struct b43_wldev *dev , u16 freq ) { struct b43_phy_ht_channeltab_e_radio2059 const *e ; unsigned int i ; { e = (struct b43_phy_ht_channeltab_e_radio2059 const *)(& b43_phy_ht_channeltab_radio2059); i = 0U; goto ldv_53971; ldv_53970: ; if ((int )((unsigned short )e->freq) == (int )freq) { return (e); } else { } i = i + 1U; e = e + 1; ldv_53971: ; if (i <= 36U) { goto ldv_53970; } else { } return ((struct b43_phy_ht_channeltab_e_radio2059 const *)0); } } bool ldv_queue_work_on_305(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_306(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_307(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_308(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_309(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_310(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; extern long simple_strtol(char const * , char ** , unsigned int ) ; bool ldv_queue_work_on_321(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_323(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_322(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_325(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_324(struct workqueue_struct *ldv_func_arg1 ) ; extern bool capable(int ) ; int ldv_request_threaded_irq_326(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; extern int device_create_file(struct device * , struct device_attribute const * ) ; extern void device_remove_file(struct device * , struct device_attribute const * ) ; __inline static struct ssb_device *dev_to_ssb_dev(struct device *dev ) { struct __ssb_dev_wrapper *wrap ; struct device const *__mptr ; { __mptr = (struct device const *)dev; wrap = (struct __ssb_dev_wrapper *)__mptr; return (wrap->sdev); } } __inline static struct b43_wldev *dev_to_b43_wldev(struct device *dev ) { struct ssb_device *ssb_dev ; struct ssb_device *tmp ; void *tmp___0 ; { tmp = dev_to_ssb_dev(dev); ssb_dev = tmp; tmp___0 = ssb_get_drvdata(ssb_dev); return ((struct b43_wldev *)tmp___0); } } int b43_sysfs_register(struct b43_wldev *wldev ) ; void b43_sysfs_unregister(struct b43_wldev *wldev ) ; static int get_integer(char const *buf , size_t count ) { char tmp[11U] ; unsigned int tmp___0 ; int ret ; size_t __min1 ; size_t __min2 ; long tmp___1 ; { tmp[0] = 0; tmp___0 = 1U; while (1) { if (tmp___0 >= 11U) { break; } else { } tmp[tmp___0] = (char)0; tmp___0 = tmp___0 + 1U; } ret = -22; if (count == 0UL) { goto out; } else { } __min1 = count; __min2 = 10UL; count = __min1 < __min2 ? __min1 : __min2; memcpy((void *)(& tmp), (void const *)buf, count); tmp___1 = simple_strtol((char const *)(& tmp), (char **)0, 10U); ret = (int )tmp___1; out: ; return (ret); } } static ssize_t b43_attr_interfmode_show(struct device *dev , struct device_attribute *attr , char *buf ) { struct b43_wldev *wldev ; struct b43_wldev *tmp ; ssize_t count ; bool tmp___0 ; int tmp___1 ; int tmp___2 ; int tmp___3 ; int tmp___4 ; int __ret_warn_on ; long tmp___5 ; { tmp = dev_to_b43_wldev(dev); wldev = tmp; count = 0L; tmp___0 = capable(12); if (tmp___0) { tmp___1 = 0; } else { tmp___1 = 1; } if (tmp___1) { return (-1L); } else { } mutex_lock_nested(& (wldev->wl)->mutex, 0U); if ((unsigned int )wldev->phy.type != 2U) { mutex_unlock(& (wldev->wl)->mutex); return (-38L); } else { } switch ((wldev->phy.__annonCompField106.g)->interfmode) { case 0: tmp___2 = snprintf(buf, 4096UL, "0 (No Interference Mitigation)\n"); count = (ssize_t )tmp___2; goto ldv_54002; case 1: tmp___3 = snprintf(buf, 4096UL, "1 (Non-WLAN Interference Mitigation)\n"); count = (ssize_t )tmp___3; goto ldv_54002; case 2: tmp___4 = snprintf(buf, 4096UL, "2 (WLAN Interference Mitigation)\n"); count = (ssize_t )tmp___4; goto ldv_54002; default: __ret_warn_on = 1; tmp___5 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___5 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/sysfs.c", 84); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); } ldv_54002: mutex_unlock(& (wldev->wl)->mutex); return (count); } } static ssize_t b43_attr_interfmode_store(struct device *dev , struct device_attribute *attr , char const *buf , size_t count ) { struct b43_wldev *wldev ; struct b43_wldev *tmp ; int err ; int mode ; bool tmp___0 ; int tmp___1 ; { tmp = dev_to_b43_wldev(dev); wldev = tmp; tmp___0 = capable(12); if (tmp___0) { tmp___1 = 0; } else { tmp___1 = 1; } if (tmp___1) { return (-1L); } else { } mode = get_integer(buf, count); switch (mode) { case 0: mode = 0; goto ldv_54018; case 1: mode = 1; goto ldv_54018; case 2: mode = 2; goto ldv_54018; case 3: mode = 3; goto ldv_54018; default: ; return (-22L); } ldv_54018: mutex_lock_nested(& (wldev->wl)->mutex, 0U); if ((unsigned long )(wldev->phy.ops)->interf_mitigation != (unsigned long )((int (*/* const */)(struct b43_wldev * , enum b43_interference_mitigation ))0)) { err = (*((wldev->phy.ops)->interf_mitigation))(wldev, (enum b43_interference_mitigation )mode); if (err != 0) { b43err(wldev->wl, "Interference Mitigation not supported by device\n"); } else { } } else { err = -38; } __asm__ volatile ("": : : "memory"); mutex_unlock(& (wldev->wl)->mutex); return ((ssize_t )(err != 0 ? (size_t )err : count)); } } static struct device_attribute dev_attr_interference = {{"interference", 420U, (_Bool)0, 0, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}}}}, & b43_attr_interfmode_show, & b43_attr_interfmode_store}; int b43_sysfs_register(struct b43_wldev *wldev ) { struct device *dev ; int __ret_warn_on ; int tmp ; long tmp___0 ; int tmp___1 ; { dev = (wldev->dev)->dev; tmp = atomic_read((atomic_t const *)(& wldev->__init_status)); __ret_warn_on = tmp != 1; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/sysfs.c", 145); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); tmp___1 = device_create_file(dev, (struct device_attribute const *)(& dev_attr_interference)); return (tmp___1); } } void b43_sysfs_unregister(struct b43_wldev *wldev ) { struct device *dev ; { dev = (wldev->dev)->dev; device_remove_file(dev, (struct device_attribute const *)(& dev_attr_interference)); return; } } void ldv_initialize_device_attribute_26(void) { void *tmp ; void *tmp___0 ; { tmp = ldv_init_zalloc(48UL); dev_attr_interference_group0 = (struct device_attribute *)tmp; tmp___0 = ldv_init_zalloc(1416UL); dev_attr_interference_group1 = (struct device *)tmp___0; return; } } void ldv_main_exported_26(void) { char *ldvarg12 ; void *tmp ; char *ldvarg10 ; void *tmp___0 ; size_t ldvarg11 ; int tmp___1 ; { tmp = ldv_init_zalloc(1UL); ldvarg12 = (char *)tmp; tmp___0 = ldv_init_zalloc(1UL); ldvarg10 = (char *)tmp___0; ldv_memset((void *)(& ldvarg11), 0, 8UL); tmp___1 = __VERIFIER_nondet_int(); switch (tmp___1) { case 0: ; if (ldv_state_variable_26 == 1) { b43_attr_interfmode_store(dev_attr_interference_group1, dev_attr_interference_group0, (char const *)ldvarg12, ldvarg11); ldv_state_variable_26 = 1; } else { } goto ldv_54056; case 1: ; if (ldv_state_variable_26 == 1) { b43_attr_interfmode_show(dev_attr_interference_group1, dev_attr_interference_group0, ldvarg10); ldv_state_variable_26 = 1; } else { } goto ldv_54056; default: ldv_stop(); } ldv_54056: ; return; } } bool ldv_queue_work_on_321(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_322(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_323(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_324(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_325(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_326(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; __inline static __u32 __le32_to_cpup(__le32 const *p ) { { return ((__u32 )*p); } } extern void __local_bh_disable_ip(unsigned long , unsigned int ) ; __inline static void local_bh_disable(void) { { __local_bh_disable_ip(0UL, 512U); return; } } extern void __local_bh_enable_ip(unsigned long , unsigned int ) ; __inline static void local_bh_enable(void) { { __local_bh_enable_ip(0UL, 512U); return; } } bool ldv_queue_work_on_337(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_339(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_338(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_341(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_340(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_342(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; extern unsigned char *skb_pull(struct sk_buff * , unsigned int ) ; __inline static u32 get_unaligned_le32(void const *p ) { __u32 tmp ; { tmp = __le32_to_cpup((__le32 const *)p); return (tmp); } } __inline static int ieee80211_is_beacon(__le16 fc ) { { return (((int )fc & 252) == 128); } } extern int ieee80211_channel_to_frequency(int , enum ieee80211_band ) ; extern unsigned int ieee80211_hdrlen(__le16 ) ; __inline static struct ieee80211_rx_status *IEEE80211_SKB_RXCB(struct sk_buff *skb ) { { return ((struct ieee80211_rx_status *)(& skb->cb)); } } __inline static void ieee80211_tx_info_clear_status(struct ieee80211_tx_info *info ) { int i ; { i = 0; goto ldv_51646; ldv_51645: info->__annonCompField103.status.rates[i].count = 0U; i = i + 1; ldv_51646: ; if (i <= 3) { goto ldv_51645; } else { } memset((void *)(& info->__annonCompField103.status.ampdu_ack_len), 0, 24UL); return; } } __inline static struct ieee80211_rate *ieee80211_get_rts_cts_rate(struct ieee80211_hw const *hw , struct ieee80211_tx_info const *c ) { { if ((int )((signed char )c->__annonCompField103.control.__annonCompField101.__annonCompField100.rts_cts_rate_idx) < 0) { return ((struct ieee80211_rate *)0); } else { } return (((hw->wiphy)->bands[(int )c->band])->bitrates + (unsigned long )c->__annonCompField103.control.__annonCompField101.__annonCompField100.rts_cts_rate_idx); } } __inline static struct ieee80211_rate *ieee80211_get_alt_retry_rate(struct ieee80211_hw const *hw , struct ieee80211_tx_info const *c , int idx ) { { if ((int )((signed char )c->__annonCompField103.control.__annonCompField101.__annonCompField100.rates[idx + 1].idx) < 0) { return ((struct ieee80211_rate *)0); } else { } return (((hw->wiphy)->bands[(int )c->band])->bitrates + (unsigned long )c->__annonCompField103.control.__annonCompField101.__annonCompField100.rates[idx + 1].idx); } } extern void ieee80211_rx(struct ieee80211_hw * , struct sk_buff * ) ; __inline static void ieee80211_rx_ni(struct ieee80211_hw *hw , struct sk_buff *skb ) { { local_bh_disable(); ieee80211_rx(hw, skb); local_bh_enable(); return; } } extern void ieee80211_rts_get(struct ieee80211_hw * , struct ieee80211_vif * , void const * , size_t , struct ieee80211_tx_info const * , struct ieee80211_rts * ) ; extern void ieee80211_ctstoself_get(struct ieee80211_hw * , struct ieee80211_vif * , void const * , size_t , struct ieee80211_tx_info const * , struct ieee80211_cts * ) ; extern __le16 ieee80211_generic_frame_duration(struct ieee80211_hw * , struct ieee80211_vif * , enum ieee80211_band , size_t , struct ieee80211_rate * ) ; extern void ieee80211_get_tkip_p1k_iv(struct ieee80211_key_conf * , u32 , u16 * ) ; __inline static void ieee80211_get_tkip_p1k(struct ieee80211_key_conf *keyconf , struct sk_buff *skb , u16 *p1k ) { struct ieee80211_hdr *hdr ; u8 const *data ; unsigned int tmp ; u32 iv32 ; u32 tmp___0 ; { hdr = (struct ieee80211_hdr *)skb->data; tmp = ieee80211_hdrlen((int )hdr->frame_control); data = (u8 const *)hdr + (unsigned long )tmp; tmp___0 = get_unaligned_le32((void const *)data + 4U); iv32 = tmp___0; ieee80211_get_tkip_p1k_iv(keyconf, iv32, p1k); return; } } void b43_debugfs_log_txstat(struct b43_wldev *dev , struct b43_txstatus const *status ) ; __inline static int b43_is_ofdm_rate(int rate ) { int tmp ; { tmp = b43_is_cck_rate(rate); return (tmp == 0); } } int b43_generate_txhdr(struct b43_wldev *dev , u8 *_txhdr , struct sk_buff *skb_frag , struct ieee80211_tx_info *info , u16 cookie ) ; void b43_rx(struct b43_wldev *dev , struct sk_buff *skb , void const *_rxhdr ) ; bool b43_fill_txstatus_report(struct b43_wldev *dev , struct ieee80211_tx_info *report , struct b43_txstatus const *status ) ; void b43_tx_suspend(struct b43_wldev *dev ) ; void b43_tx_resume(struct b43_wldev *dev ) ; __inline static u8 b43_kidx_to_raw(struct b43_wldev *dev , u8 firmware_kidx ) { u8 raw_kidx ; int tmp ; { tmp = b43_new_kidx_api(dev); if (tmp != 0) { raw_kidx = firmware_kidx; } else { raw_kidx = (unsigned int )firmware_kidx + 4U; } return (raw_kidx); } } void b43_dma_tx_suspend(struct b43_wldev *dev ) ; void b43_dma_tx_resume(struct b43_wldev *dev ) ; void b43_dma_handle_txstatus(struct b43_wldev *dev , struct b43_txstatus const *status ) ; void b43_pio_handle_txstatus(struct b43_wldev *dev , struct b43_txstatus const *status ) ; void b43_pio_tx_suspend(struct b43_wldev *dev ) ; void b43_pio_tx_resume(struct b43_wldev *dev ) ; static struct b43_tx_legacy_rate_phy_ctl_entry const b43_tx_legacy_rate_phy_ctl[12U] = { {2U, 0U, 0U}, {4U, 0U, 1U}, {11U, 0U, 2U}, {22U, 0U, 3U}, {12U, 0U, 0U}, {18U, 512U, 0U}, {24U, 0U, 2048U}, {36U, 512U, 2048U}, {48U, 0U, 4096U}, {72U, 512U, 4096U}, {96U, 256U, 6144U}, {108U, 512U, 6144U}}; static struct b43_tx_legacy_rate_phy_ctl_entry const *b43_tx_legacy_rate_phy_ctl_ent(u8 bitrate ) { struct b43_tx_legacy_rate_phy_ctl_entry const *e ; unsigned int i ; int __ret_warn_on ; long tmp ; { i = 0U; goto ldv_54356; ldv_54355: e = (struct b43_tx_legacy_rate_phy_ctl_entry const *)(& b43_tx_legacy_rate_phy_ctl) + (unsigned long )i; if ((int )((unsigned char )e->bitrate) == (int )bitrate) { return (e); } else { } i = i + 1U; ldv_54356: ; if (i <= 11U) { goto ldv_54355; } else { } __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/xmit.c", 62); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return ((struct b43_tx_legacy_rate_phy_ctl_entry const *)0); } } static int b43_plcp_get_bitrate_idx_cck(struct b43_plcp_hdr6 *plcp ) { { switch ((int )plcp->__annonCompField109.raw[0]) { case 10: ; return (0); case 20: ; return (1); case 55: ; return (2); case 110: ; return (3); } return (-1); } } static int b43_plcp_get_bitrate_idx_ofdm(struct b43_plcp_hdr6 *plcp , bool ghz5 ) { int base ; { base = (int )ghz5 ? 0 : 4; switch ((int )plcp->__annonCompField109.raw[0] & 15) { case 11: ; return (base); case 15: ; return (base + 1); case 10: ; return (base + 2); case 14: ; return (base + 3); case 9: ; return (base + 4); case 13: ; return (base + 5); case 8: ; return (base + 6); case 12: ; return (base + 7); } return (-1); } } u8 b43_plcp_get_ratecode_cck(u8 const bitrate ) { int __ret_warn_on ; long tmp ; { switch ((int )bitrate) { case 2: ; return (10U); case 4: ; return (20U); case 11: ; return (55U); case 22: ; return (110U); } __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/xmit.c", 121); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return (0U); } } u8 b43_plcp_get_ratecode_ofdm(u8 const bitrate ) { int __ret_warn_on ; long tmp ; { switch ((int )bitrate) { case 12: ; return (11U); case 18: ; return (15U); case 24: ; return (10U); case 36: ; return (14U); case 48: ; return (9U); case 72: ; return (13U); case 96: ; return (8U); case 108: ; return (12U); } __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/xmit.c", 145); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return (0U); } } void b43_generate_plcp_hdr(struct b43_plcp_hdr4 *plcp , u16 const octets , u8 const bitrate ) { __u8 *raw ; u32 d ; u8 tmp ; int __ret_warn_on ; long tmp___0 ; u32 plen ; int tmp___1 ; { raw = (__u8 *)(& plcp->__annonCompField110.raw); tmp___1 = b43_is_ofdm_rate((int )bitrate); if (tmp___1 != 0) { tmp = b43_plcp_get_ratecode_ofdm((int )bitrate); d = (u32 )tmp; __ret_warn_on = ((int )octets & 61440) != 0; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/xmit.c", 158); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); d = (u32 )((int )octets << 5) | d; plcp->__annonCompField110.data = d; } else { plen = (u32 )(((int )octets * 16) / (int )bitrate); if (((int )octets * 16) % (int )bitrate > 0) { plen = plen + 1U; if ((unsigned int )((unsigned char )bitrate) == 22U && ((int )octets * 8) % 11 <= 3) { *(raw + 1UL) = 132U; } else { *(raw + 1UL) = 4U; } } else { *(raw + 1UL) = 4U; } plcp->__annonCompField110.data = plcp->__annonCompField110.data | (plen << 16); *raw = b43_plcp_get_ratecode_cck((int )bitrate); } return; } } static u16 b43_generate_tx_phy_ctl1(struct b43_wldev *dev , u8 bitrate ) { struct b43_phy const *phy ; struct b43_tx_legacy_rate_phy_ctl_entry const *e ; u16 control ; u16 bw ; int tmp ; { phy = (struct b43_phy const *)(& dev->phy); control = 0U; if ((unsigned int )((unsigned char )phy->type) == 5U) { bw = 2U; } else { bw = 2U; } tmp = b43_is_cck_rate((int )bitrate); if (tmp != 0 && (unsigned int )((unsigned char )phy->type) != 5U) { control = bw; } else { control = bw; e = b43_tx_legacy_rate_phy_ctl_ent((int )bitrate); if ((unsigned long )e != (unsigned long )((struct b43_tx_legacy_rate_phy_ctl_entry const *)0)) { control = (u16 )((int )((unsigned short )e->coding_rate) | (int )control); control = (u16 )((int )((unsigned short )e->modulation) | (int )control); } else { } control = control; } return (control); } } static u8 b43_calc_fallback_rate(u8 bitrate ) { int __ret_warn_on ; long tmp ; { switch ((int )bitrate) { case 2: ; return (2U); case 4: ; return (2U); case 11: ; return (4U); case 22: ; return (11U); case 12: ; return (11U); case 18: ; return (12U); case 24: ; return (18U); case 36: ; return (24U); case 48: ; return (36U); case 72: ; return (48U); case 96: ; return (72U); case 108: ; return (96U); } __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/xmit.c", 236); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return (0U); } } int b43_generate_txhdr(struct b43_wldev *dev , u8 *_txhdr , struct sk_buff *skb_frag , struct ieee80211_tx_info *info , u16 cookie ) { unsigned char const *fragment_data ; unsigned int fragment_len ; struct b43_txhdr *txhdr ; struct b43_phy const *phy ; struct ieee80211_hdr const *wlhdr ; int use_encryption ; __le16 fctl ; struct ieee80211_rate *fbrate ; u8 rate ; u8 rate_fb ; int rate_ofdm ; int rate_fb_ofdm ; unsigned int plcp_fragment_len ; u32 mac_ctl ; u16 phy_ctl ; bool fill_phy_ctl1 ; u8 extra_ft ; struct ieee80211_rate *txrate ; struct ieee80211_tx_rate *rates ; struct ieee80211_rate *tmp ; u8 key_idx ; struct b43_key *key ; int wlhdr_len ; size_t iv_len ; int __ret_warn_on ; long tmp___0 ; long tmp___1 ; unsigned int tmp___2 ; u16 phase1key[5U] ; int i ; size_t __min1 ; size_t __min2 ; u8 tmp___3 ; int __ret_warn_on___0 ; long tmp___4 ; unsigned int len ; struct ieee80211_hdr *hdr ; int rts_rate ; int rts_rate_fb ; int rts_rate_ofdm ; int rts_rate_fb_ofdm ; struct b43_plcp_hdr6 *plcp ; struct ieee80211_rate *rts_cts_rate ; u8 tmp___5 ; struct ieee80211_cts *cts ; struct ieee80211_rts *rts ; { fragment_data = (unsigned char const *)skb_frag->data; fragment_len = skb_frag->len; txhdr = (struct b43_txhdr *)_txhdr; phy = (struct b43_phy const *)(& dev->phy); wlhdr = (struct ieee80211_hdr const *)fragment_data; use_encryption = (unsigned long )info->__annonCompField103.control.hw_key != (unsigned long )((struct ieee80211_key_conf *)0); fctl = wlhdr->frame_control; mac_ctl = 0U; phy_ctl = 0U; fill_phy_ctl1 = (bool )(((unsigned int )((unsigned char )phy->type) == 5U || (unsigned int )((unsigned char )phy->type) == 4U) || (unsigned int )((unsigned char )phy->type) == 7U); extra_ft = 0U; memset((void *)txhdr, 0, 118UL); txrate = ieee80211_get_tx_rate((struct ieee80211_hw const *)(dev->wl)->hw, (struct ieee80211_tx_info const *)info); rate = (unsigned long )txrate != (unsigned long )((struct ieee80211_rate *)0) ? (u8 )txrate->hw_value : 2U; rate_ofdm = b43_is_ofdm_rate((int )rate); tmp = ieee80211_get_alt_retry_rate((struct ieee80211_hw const *)(dev->wl)->hw, (struct ieee80211_tx_info const *)info, 0); fbrate = (unsigned long )tmp != (unsigned long )((struct ieee80211_rate *)0) ? (unsigned long )tmp != (unsigned long )((struct ieee80211_rate *)0) : txrate; rate_fb = (u8 )fbrate->hw_value; rate_fb_ofdm = b43_is_ofdm_rate((int )rate_fb); if (rate_ofdm != 0) { txhdr->phy_rate = b43_plcp_get_ratecode_ofdm((int )rate); } else { txhdr->phy_rate = b43_plcp_get_ratecode_cck((int )rate); } txhdr->mac_frame_ctl = wlhdr->frame_control; memcpy((void *)(& txhdr->tx_receiver), (void const *)(& wlhdr->addr1), 6UL); if (((int )rate_fb == (int )rate || (int )((short )wlhdr->duration_id) < 0) || (unsigned int )((unsigned short )wlhdr->duration_id) == 0U) { txhdr->dur_fb = wlhdr->duration_id; } else { txhdr->dur_fb = ieee80211_generic_frame_duration((dev->wl)->hw, info->__annonCompField103.control.vif, (enum ieee80211_band )info->band, (size_t )fragment_len, fbrate); } plcp_fragment_len = fragment_len + 4U; if (use_encryption != 0) { key_idx = (info->__annonCompField103.control.hw_key)->hw_key_idx; __ret_warn_on = (unsigned int )key_idx > 57U; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/xmit.c", 305); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); key = (struct b43_key *)(& dev->key) + (unsigned long )key_idx; tmp___1 = ldv__builtin_expect((unsigned long )key->keyconf == (unsigned long )((struct ieee80211_key_conf *)0), 0L); if (tmp___1 != 0L) { return (-126); } else { } plcp_fragment_len = (unsigned int )(info->__annonCompField103.control.hw_key)->icv_len + plcp_fragment_len; key_idx = b43_kidx_to_fw(dev, (int )key_idx); mac_ctl = ((u32 )((int )key_idx << 20) & 267386880U) | mac_ctl; mac_ctl = ((u32 )((int )key->algorithm << 16) & 458752U) | mac_ctl; tmp___2 = ieee80211_hdrlen((int )fctl); wlhdr_len = (int )tmp___2; if ((unsigned int )key->algorithm == 2U) { ieee80211_get_tkip_p1k(info->__annonCompField103.control.hw_key, skb_frag, (u16 *)(& phase1key)); i = 0; goto ldv_54474; ldv_54473: txhdr->iv[i * 2] = (__u8 )phase1key[i]; txhdr->iv[i * 2 + 1] = (__u8 )((int )phase1key[i] >> 8); i = i + 1; ldv_54474: ; if (i <= 4) { goto ldv_54473; } else { } memcpy((void *)(& txhdr->iv) + 10U, (void const *)wlhdr + (unsigned long )wlhdr_len, 3UL); } else { __min1 = (size_t )(info->__annonCompField103.control.hw_key)->iv_len; __min2 = 16UL; iv_len = __min1 < __min2 ? __min1 : __min2; memcpy((void *)(& txhdr->iv), (void const *)wlhdr + (unsigned long )wlhdr_len, iv_len); } } else { } switch ((unsigned int )dev->fw.hdr_format) { case 0U: b43_generate_plcp_hdr((struct b43_plcp_hdr4 *)(& txhdr->__annonCompField110.format_598.plcp), (int )((u16 const )plcp_fragment_len), (int )rate); goto ldv_54482; case 2U: b43_generate_plcp_hdr((struct b43_plcp_hdr4 *)(& txhdr->__annonCompField110.format_351.plcp), (int )((u16 const )plcp_fragment_len), (int )rate); goto ldv_54482; case 1U: b43_generate_plcp_hdr((struct b43_plcp_hdr4 *)(& txhdr->__annonCompField110.format_410.plcp), (int )((u16 const )plcp_fragment_len), (int )rate); goto ldv_54482; } ldv_54482: b43_generate_plcp_hdr((struct b43_plcp_hdr4 *)(& txhdr->plcp_fb), (int )((u16 const )plcp_fragment_len), (int )rate_fb); if (rate_fb_ofdm != 0) { extra_ft = (u8 )((unsigned int )extra_ft | 1U); } else { extra_ft = extra_ft; } txhdr->chan_radio_code = (__u8 )phy->channel; if (rate_ofdm != 0) { phy_ctl = (u16 )((unsigned int )phy_ctl | 1U); } else { phy_ctl = phy_ctl; } if (((int )info->__annonCompField103.control.__annonCompField101.__annonCompField100.rates[0].flags & 4) != 0) { phy_ctl = (u16 )((unsigned int )phy_ctl | 16U); } else { } tmp___3 = b43_ieee80211_antenna_sanitize(dev, 0); switch ((int )tmp___3) { case 0: phy_ctl = (u16 )((unsigned int )phy_ctl | 192U); goto ldv_54486; case 1: phy_ctl = phy_ctl; goto ldv_54486; case 2: phy_ctl = (u16 )((unsigned int )phy_ctl | 64U); goto ldv_54486; case 3: phy_ctl = (u16 )((unsigned int )phy_ctl | 256U); goto ldv_54486; case 4: phy_ctl = (u16 )((unsigned int )phy_ctl | 512U); goto ldv_54486; default: __ret_warn_on___0 = 1; tmp___4 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___4 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/xmit.c", 400); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); } ldv_54486: rates = (struct ieee80211_tx_rate *)(& info->__annonCompField103.control.__annonCompField101.__annonCompField100.rates); if ((info->flags & 4U) == 0U) { mac_ctl = mac_ctl | 1U; } else { } if ((info->flags & 2U) != 0U) { mac_ctl = mac_ctl | 16U; } else { } if ((info->flags & 16U) != 0U) { mac_ctl = mac_ctl | 8U; } else { } if (! ((_Bool )phy->gmode)) { mac_ctl = mac_ctl | 128U; } else { } if ((int )rates->flags & 1 || (int )rates->count <= (int )((dev->wl)->hw)->conf.long_frame_max_tx_count) { rates->count = ((dev->wl)->hw)->conf.long_frame_max_tx_count; mac_ctl = mac_ctl | 2U; } else { rates->count = ((dev->wl)->hw)->conf.short_frame_max_tx_count; } if ((int )rates->flags & 1 || ((int )rates->flags & 2) != 0) { hdr = hdr; plcp = plcp; rts_cts_rate = ieee80211_get_rts_cts_rate((struct ieee80211_hw const *)(dev->wl)->hw, (struct ieee80211_tx_info const *)info); rts_rate = (unsigned long )rts_cts_rate != (unsigned long )((struct ieee80211_rate *)0) ? (int )rts_cts_rate->hw_value : 2; rts_rate_ofdm = b43_is_ofdm_rate(rts_rate); tmp___5 = b43_calc_fallback_rate((int )((u8 )rts_rate)); rts_rate_fb = (int )tmp___5; rts_rate_fb_ofdm = b43_is_ofdm_rate(rts_rate_fb); if (((int )rates->flags & 2) != 0) { cts = cts; switch ((unsigned int )dev->fw.hdr_format) { case 0U: cts = (struct ieee80211_cts *)(& txhdr->__annonCompField110.format_598.rts_frame); goto ldv_54504; case 2U: cts = (struct ieee80211_cts *)(& txhdr->__annonCompField110.format_351.rts_frame); goto ldv_54504; case 1U: cts = (struct ieee80211_cts *)(& txhdr->__annonCompField110.format_410.rts_frame); goto ldv_54504; } ldv_54504: ieee80211_ctstoself_get((dev->wl)->hw, info->__annonCompField103.control.vif, (void const *)fragment_data, (size_t )fragment_len, (struct ieee80211_tx_info const *)info, cts); mac_ctl = mac_ctl | 2048U; len = 10U; } else { rts = rts; switch ((unsigned int )dev->fw.hdr_format) { case 0U: rts = (struct ieee80211_rts *)(& txhdr->__annonCompField110.format_598.rts_frame); goto ldv_54509; case 2U: rts = (struct ieee80211_rts *)(& txhdr->__annonCompField110.format_351.rts_frame); goto ldv_54509; case 1U: rts = (struct ieee80211_rts *)(& txhdr->__annonCompField110.format_410.rts_frame); goto ldv_54509; } ldv_54509: ieee80211_rts_get((dev->wl)->hw, info->__annonCompField103.control.vif, (void const *)fragment_data, (size_t )fragment_len, (struct ieee80211_tx_info const *)info, rts); mac_ctl = mac_ctl | 4U; len = 16U; } len = len + 4U; switch ((unsigned int )dev->fw.hdr_format) { case 0U: plcp = & txhdr->__annonCompField110.format_598.rts_plcp; goto ldv_54513; case 2U: plcp = & txhdr->__annonCompField110.format_351.rts_plcp; goto ldv_54513; case 1U: plcp = & txhdr->__annonCompField110.format_410.rts_plcp; goto ldv_54513; } ldv_54513: b43_generate_plcp_hdr((struct b43_plcp_hdr4 *)plcp, (int )((u16 const )len), (int )((u8 const )rts_rate)); plcp = & txhdr->rts_plcp_fb; b43_generate_plcp_hdr((struct b43_plcp_hdr4 *)plcp, (int )((u16 const )len), (int )((u8 const )rts_rate_fb)); switch ((unsigned int )dev->fw.hdr_format) { case 0U: hdr = (struct ieee80211_hdr *)(& txhdr->__annonCompField110.format_598.rts_frame); goto ldv_54517; case 2U: hdr = (struct ieee80211_hdr *)(& txhdr->__annonCompField110.format_351.rts_frame); goto ldv_54517; case 1U: hdr = (struct ieee80211_hdr *)(& txhdr->__annonCompField110.format_410.rts_frame); goto ldv_54517; } ldv_54517: txhdr->rts_dur_fb = hdr->duration_id; if (rts_rate_ofdm != 0) { extra_ft = (u8 )((unsigned int )extra_ft | 4U); txhdr->phy_rate_rts = b43_plcp_get_ratecode_ofdm((int )((u8 const )rts_rate)); } else { extra_ft = extra_ft; txhdr->phy_rate_rts = b43_plcp_get_ratecode_cck((int )((u8 const )rts_rate)); } if (rts_rate_fb_ofdm != 0) { extra_ft = (u8 )((unsigned int )extra_ft | 16U); } else { extra_ft = extra_ft; } if ((int )rates->flags & 1 && (int )fill_phy_ctl1) { txhdr->phy_ctl1_rts = b43_generate_tx_phy_ctl1(dev, (int )((u8 )rts_rate)); txhdr->phy_ctl1_rts_fb = b43_generate_tx_phy_ctl1(dev, (int )((u8 )rts_rate_fb)); } else { } } else { } switch ((unsigned int )dev->fw.hdr_format) { case 0U: txhdr->__annonCompField110.format_598.cookie = cookie; goto ldv_54521; case 2U: txhdr->__annonCompField110.format_351.cookie = cookie; goto ldv_54521; case 1U: txhdr->__annonCompField110.format_410.cookie = cookie; goto ldv_54521; } ldv_54521: ; if ((int )fill_phy_ctl1) { txhdr->phy_ctl1 = b43_generate_tx_phy_ctl1(dev, (int )rate); txhdr->phy_ctl1_fb = b43_generate_tx_phy_ctl1(dev, (int )rate_fb); } else { } txhdr->mac_ctl = mac_ctl; txhdr->phy_ctl = phy_ctl; txhdr->extra_ft = extra_ft; return (0); } } static s8 b43_rssi_postprocess(struct b43_wldev *dev , u8 in_rssi , int ofdm , int adjust_2053 , int adjust_2050 ) { struct b43_phy *phy ; struct b43_phy_g *gphy ; s32 tmp ; int __ret_warn_on ; long tmp___0 ; { phy = & dev->phy; gphy = phy->__annonCompField106.g; switch ((int )phy->radio_ver) { case 8272: ; if (ofdm != 0) { tmp = (s32 )in_rssi; if (tmp > 127) { tmp = tmp + -256; } else { } tmp = tmp * 73; tmp = tmp / 64; if (adjust_2050 != 0) { tmp = tmp + 25; } else { tmp = tmp + -3; } } else { if (((int )((dev->dev)->bus_sprom)->boardflags_lo & 8) != 0) { if ((unsigned int )in_rssi > 63U) { in_rssi = 63U; } else { } __ret_warn_on = (unsigned int )phy->type != 2U; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/xmit.c", 601); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); tmp = (s32 )gphy->nrssi_lt[(int )in_rssi]; tmp = 31 - tmp; tmp = tmp * -131; tmp = tmp / 128; tmp = tmp + -57; } else { tmp = (s32 )in_rssi; tmp = 31 - tmp; tmp = tmp * -149; tmp = tmp / 128; tmp = tmp + -68; } if ((unsigned int )phy->type == 2U && adjust_2050 != 0) { tmp = tmp + 25; } else { } } goto ldv_54537; case 8288: ; if ((int )((signed char )in_rssi) < 0) { tmp = (int )in_rssi + -256; } else { tmp = (s32 )in_rssi; } goto ldv_54537; default: tmp = (s32 )in_rssi; tmp = tmp + -11; tmp = tmp * 103; tmp = tmp / 64; if (adjust_2053 != 0) { tmp = tmp + -109; } else { tmp = tmp + -83; } } ldv_54537: ; return ((s8 )tmp); } } void b43_rx(struct b43_wldev *dev , struct sk_buff *skb , void const *_rxhdr ) { struct ieee80211_rx_status status ; struct b43_plcp_hdr6 *plcp ; struct ieee80211_hdr *wlhdr ; struct b43_rxhdr_fw4 const *rxhdr ; __le16 fctl ; u16 phystat0 ; u16 phystat3 ; u16 chanstat ; u16 mactime ; u32 macstat ; u16 chanid ; u16 phytype ; int padding ; int rate_idx ; long tmp ; long tmp___0 ; long tmp___1 ; long tmp___2 ; unsigned int keyidx ; int wlhdr_len ; u8 tmp___3 ; int __ret_warn_on ; long tmp___4 ; unsigned int tmp___5 ; long tmp___6 ; __s8 __max1 ; signed char _max1 ; signed char _max2 ; __s8 __max2 ; signed char _max1___0 ; signed char _max2___0 ; signed char _max1___1 ; signed char _max2___1 ; long tmp___7 ; u16 low_mactime_now ; int tmp___8 ; int __ret_warn_on___0 ; long tmp___9 ; int tmp___10 ; int tmp___11 ; int tmp___12 ; int __ret_warn_on___1 ; long tmp___13 ; struct ieee80211_rx_status *tmp___14 ; { rxhdr = (struct b43_rxhdr_fw4 const *)_rxhdr; chanstat = chanstat; mactime = mactime; macstat = macstat; memset((void *)(& status), 0, 40UL); phystat0 = rxhdr->phy_status0; phystat3 = rxhdr->__annonCompField118.phy_status3; switch ((unsigned int )dev->fw.hdr_format) { case 0U: macstat = rxhdr->__annonCompField119.format_598.mac_status; mactime = rxhdr->__annonCompField119.format_598.mac_time; chanstat = rxhdr->__annonCompField119.format_598.channel; goto ldv_54560; case 1U: ; case 2U: macstat = rxhdr->__annonCompField119.format_351.mac_status; mactime = rxhdr->__annonCompField119.format_351.mac_time; chanstat = rxhdr->__annonCompField119.format_351.channel; goto ldv_54560; } ldv_54560: phytype = (unsigned int )chanstat & 7U; tmp = ldv__builtin_expect((long )((int )macstat) & 1L, 0L); if (tmp != 0L) { (dev->wl)->ieee_stats.dot11FCSErrorCount = (dev->wl)->ieee_stats.dot11FCSErrorCount + 1U; status.flag = status.flag | 32U; } else { } tmp___0 = ldv__builtin_expect(((int )phystat0 & 768) != 0, 0L); if (tmp___0 != 0L) { status.flag = status.flag | 64U; } else { } if (((int )phystat0 & 128) != 0) { status.flag = status.flag | 256U; } else { } if ((macstat & 16U) != 0U) { goto drop; } else { } padding = (macstat & 4U) != 0U ? 2 : 0; tmp___1 = ldv__builtin_expect((unsigned long )skb->len < (unsigned long )padding + 6UL, 0L); if (tmp___1 != 0L) { b43dbg(dev->wl, "RX: Packet size underrun (1)\n"); goto drop; } else { } plcp = (struct b43_plcp_hdr6 *)skb->data + (unsigned long )padding; skb_pull(skb, (unsigned int )padding + 6U); tmp___2 = ldv__builtin_expect(skb->len <= 13U, 0L); if (tmp___2 != 0L) { b43dbg(dev->wl, "RX: Packet size underrun (2)\n"); goto drop; } else { } wlhdr = (struct ieee80211_hdr *)skb->data; fctl = wlhdr->frame_control; if ((macstat & 8U) != 0U) { keyidx = (macstat & 2016U) >> 5; tmp___3 = b43_kidx_to_raw(dev, (int )((u8 )keyidx)); keyidx = (unsigned int )tmp___3; __ret_warn_on = keyidx > 57U; tmp___4 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___4 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/xmit.c", 730); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if ((unsigned int )dev->key[keyidx].algorithm != 0U) { tmp___5 = ieee80211_hdrlen((int )fctl); wlhdr_len = (int )tmp___5; tmp___6 = ldv__builtin_expect(skb->len < (unsigned int )(wlhdr_len + 3), 0L); if (tmp___6 != 0L) { b43dbg(dev->wl, "RX: Packet size underrun (3)\n"); goto drop; } else { } status.flag = status.flag | 2U; } else { } } else { } switch ((int )chanstat & 7) { case 7: _max1 = rxhdr->__annonCompField116.__annonCompField114.phy_ht_power0; _max2 = rxhdr->__annonCompField118.__annonCompField117.phy_ht_power1; __max1 = (__s8 )((int )_max1 > (int )_max2 ? _max1 : _max2); __max2 = rxhdr->__annonCompField118.__annonCompField117.phy_ht_power2; status.signal = (s8 )((int )__max1 > (int )__max2 ? __max1 : __max2); goto ldv_54577; case 4: ; if ((int )((signed char )rxhdr->__annonCompField113.__annonCompField112.power0) == 16 || (int )((signed char )rxhdr->__annonCompField113.__annonCompField112.power0) == 32) { _max1___0 = rxhdr->__annonCompField113.__annonCompField112.power1; _max2___0 = rxhdr->__annonCompField116.__annonCompField115.power2; status.signal = (s8 )((int )_max1___0 > (int )_max2___0 ? _max1___0 : _max2___0); } else { _max1___1 = rxhdr->__annonCompField113.__annonCompField112.power0; _max2___1 = rxhdr->__annonCompField113.__annonCompField112.power1; status.signal = (s8 )((int )_max1___1 > (int )_max2___1 ? _max1___1 : _max2___1); } goto ldv_54577; case 0: ; case 1: ; case 2: ; case 5: status.signal = b43_rssi_postprocess(dev, (int )rxhdr->__annonCompField113.__annonCompField111.jssi, (int )phystat0 & 1, (int )phystat0 & 16384, (int )phystat3 & 1024); goto ldv_54577; } ldv_54577: ; if ((int )phystat0 & 1) { rate_idx = b43_plcp_get_bitrate_idx_ofdm(plcp, ((int )chanstat & 2048) != 0); } else { rate_idx = b43_plcp_get_bitrate_idx_cck(plcp); } tmp___7 = ldv__builtin_expect(rate_idx == -1, 0L); if (tmp___7 != 0L) { if (((dev->wl)->filter_flags & 8U) == 0U) { goto drop; } else { } } else { } status.rate_idx = (u8 )rate_idx; status.antenna = ((int )phystat0 & 32) != 0; tmp___8 = ieee80211_is_beacon((int )fctl); if (tmp___8 != 0 || (int )(dev->wl)->radiotap_enabled) { b43_tsf_read(dev, & status.mactime); low_mactime_now = (u16 )status.mactime; status.mactime = status.mactime & 0xffffffffffff0000ULL; status.mactime = status.mactime + (u64 )mactime; if ((int )low_mactime_now <= (int )mactime) { status.mactime = status.mactime - 65536ULL; } else { } status.flag = status.flag | 128U; } else { } chanid = (u16 )(((int )chanstat & 2040) >> 3); switch ((int )chanstat & 7) { case 0: status.band = 1U; __ret_warn_on___0 = 1; tmp___9 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___9 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/xmit.c", 807); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); tmp___10 = ieee80211_channel_to_frequency((int )chanid, (enum ieee80211_band )status.band); status.freq = (u16 )tmp___10; goto ldv_54593; case 2: status.band = 0U; if ((unsigned int )dev->fw.rev > 507U) { tmp___11 = ieee80211_channel_to_frequency((int )chanid, (enum ieee80211_band )status.band); status.freq = (u16 )tmp___11; } else { status.freq = (unsigned int )chanid + 2400U; } goto ldv_54593; case 4: ; case 5: ; case 7: ; if (((int )chanstat & 2048) != 0) { status.band = 1U; } else { status.band = 0U; } tmp___12 = ieee80211_channel_to_frequency((int )chanid, (enum ieee80211_band )status.band); status.freq = (u16 )tmp___12; goto ldv_54593; default: __ret_warn_on___1 = 1; tmp___13 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___13 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/xmit.c", 836); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); goto drop; } ldv_54593: tmp___14 = IEEE80211_SKB_RXCB(skb); memcpy((void *)tmp___14, (void const *)(& status), 40UL); ieee80211_rx_ni((dev->wl)->hw, skb); dev->rx_count = dev->rx_count + 1U; return; drop: dev_kfree_skb_any(skb); return; } } void b43_handle_txstatus(struct b43_wldev *dev , struct b43_txstatus const *status ) { bool tmp ; { b43_debugfs_log_txstat(dev, status); if ((unsigned int )((unsigned char )status->intermediate) != 0U) { return; } else { } if ((unsigned int )((unsigned char )status->for_ampdu) != 0U) { return; } else { } if ((unsigned int )((unsigned char )status->acked) == 0U) { (dev->wl)->ieee_stats.dot11ACKFailureCount = (dev->wl)->ieee_stats.dot11ACKFailureCount + 1U; } else { } if ((unsigned int )((unsigned char )status->rts_count) != 0U) { if ((unsigned int )((unsigned char )status->rts_count) == 15U) { (dev->wl)->ieee_stats.dot11RTSFailureCount = (dev->wl)->ieee_stats.dot11RTSFailureCount + 1U; } else { (dev->wl)->ieee_stats.dot11RTSSuccessCount = (dev->wl)->ieee_stats.dot11RTSSuccessCount + 1U; } } else { } tmp = b43_using_pio_transfers(dev); if ((int )tmp) { b43_pio_handle_txstatus(dev, status); } else { b43_dma_handle_txstatus(dev, status); } b43_phy_txpower_check(dev, 0U); return; } } bool b43_fill_txstatus_report(struct b43_wldev *dev , struct ieee80211_tx_info *report , struct b43_txstatus const *status ) { bool frame_success ; int retry_limit ; { frame_success = 1; retry_limit = (int )report->__annonCompField103.status.rates[0].count; ieee80211_tx_info_clear_status(report); if ((unsigned int )((unsigned char )status->acked) != 0U) { report->flags = report->flags | 512U; } else if ((report->flags & 4U) == 0U) { frame_success = 0; } else { } if ((unsigned int )((unsigned char )status->frame_count) == 0U) { report->__annonCompField103.status.rates[0].count = 0U; } else if ((int )((unsigned char )status->rts_count) > (int )((dev->wl)->hw)->conf.short_frame_max_tx_count) { report->__annonCompField103.status.rates[0].count = 0U; report->__annonCompField103.status.rates[1].count = (unsigned char )status->frame_count; } else if ((int )status->frame_count > retry_limit) { report->__annonCompField103.status.rates[0].count = (unsigned char )retry_limit; report->__annonCompField103.status.rates[1].count = (unsigned char )((int )((unsigned char )status->frame_count) - (int )((unsigned char )retry_limit)); } else { report->__annonCompField103.status.rates[0].count = (unsigned char )status->frame_count; report->__annonCompField103.status.rates[1].idx = -1; } return (frame_success); } } void b43_tx_suspend(struct b43_wldev *dev ) { bool tmp ; { tmp = b43_using_pio_transfers(dev); if ((int )tmp) { b43_pio_tx_suspend(dev); } else { b43_dma_tx_suspend(dev); } return; } } void b43_tx_resume(struct b43_wldev *dev ) { bool tmp ; { tmp = b43_using_pio_transfers(dev); if ((int )tmp) { b43_pio_tx_resume(dev); } else { b43_dma_tx_resume(dev); } return; } } bool ldv_queue_work_on_337(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_338(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_339(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_340(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_341(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_342(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; extern unsigned long __phys_addr(unsigned long ) ; extern void *kmemdup(void const * , size_t , gfp_t ) ; __inline static void *ERR_PTR(long error ) ; bool ldv_queue_work_on_353(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_355(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_354(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_357(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_356(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_358(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; __inline static int valid_dma_direction(int dma_direction ) { { return ((dma_direction == 0 || dma_direction == 1) || dma_direction == 2); } } __inline static void kmemcheck_mark_initialized(void *address , unsigned int n ) { { return; } } extern void debug_dma_map_page(struct device * , struct page * , size_t , size_t , int , dma_addr_t , bool ) ; extern void debug_dma_mapping_error(struct device * , dma_addr_t ) ; extern void debug_dma_unmap_page(struct device * , dma_addr_t , size_t , int , bool ) ; extern void debug_dma_sync_single_for_cpu(struct device * , dma_addr_t , size_t , int ) ; extern void debug_dma_sync_single_for_device(struct device * , dma_addr_t , size_t , int ) ; extern struct dma_map_ops *dma_ops ; __inline static struct dma_map_ops *get_dma_ops(struct device *dev ) { long tmp ; { tmp = ldv__builtin_expect((unsigned long )dev == (unsigned long )((struct device *)0), 0L); if (tmp != 0L || (unsigned long )dev->archdata.dma_ops == (unsigned long )((struct dma_map_ops *)0)) { return (dma_ops); } else { return (dev->archdata.dma_ops); } } } __inline static dma_addr_t dma_map_single_attrs(struct device *dev , void *ptr , size_t size , enum dma_data_direction dir , struct dma_attrs *attrs ) { struct dma_map_ops *ops ; struct dma_map_ops *tmp ; dma_addr_t addr ; int tmp___0 ; long tmp___1 ; unsigned long tmp___2 ; unsigned long tmp___3 ; { tmp = get_dma_ops(dev); ops = tmp; kmemcheck_mark_initialized(ptr, (unsigned int )size); tmp___0 = valid_dma_direction((int )dir); tmp___1 = ldv__builtin_expect(tmp___0 == 0, 0L); if (tmp___1 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"include/asm-generic/dma-mapping-common.h"), "i" (19), "i" (12UL)); ldv_28314: ; goto ldv_28314; } else { } tmp___2 = __phys_addr((unsigned long )ptr); addr = (*(ops->map_page))(dev, (struct page *)-24189255811072L + (tmp___2 >> 12), (unsigned long )ptr & 4095UL, size, dir, attrs); tmp___3 = __phys_addr((unsigned long )ptr); debug_dma_map_page(dev, (struct page *)-24189255811072L + (tmp___3 >> 12), (unsigned long )ptr & 4095UL, size, (int )dir, addr, 1); return (addr); } } __inline static void dma_unmap_single_attrs(struct device *dev , dma_addr_t addr , size_t size , enum dma_data_direction dir , struct dma_attrs *attrs ) { struct dma_map_ops *ops ; struct dma_map_ops *tmp ; int tmp___0 ; long tmp___1 ; { tmp = get_dma_ops(dev); ops = tmp; tmp___0 = valid_dma_direction((int )dir); tmp___1 = ldv__builtin_expect(tmp___0 == 0, 0L); if (tmp___1 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"include/asm-generic/dma-mapping-common.h"), "i" (36), "i" (12UL)); ldv_28323: ; goto ldv_28323; } else { } if ((unsigned long )ops->unmap_page != (unsigned long )((void (*)(struct device * , dma_addr_t , size_t , enum dma_data_direction , struct dma_attrs * ))0)) { (*(ops->unmap_page))(dev, addr, size, dir, attrs); } else { } debug_dma_unmap_page(dev, addr, size, (int )dir, 1); return; } } __inline static void dma_sync_single_for_cpu(struct device *dev , dma_addr_t addr , size_t size , enum dma_data_direction dir ) { struct dma_map_ops *ops ; struct dma_map_ops *tmp ; int tmp___0 ; long tmp___1 ; { tmp = get_dma_ops(dev); ops = tmp; tmp___0 = valid_dma_direction((int )dir); tmp___1 = ldv__builtin_expect(tmp___0 == 0, 0L); if (tmp___1 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"include/asm-generic/dma-mapping-common.h"), "i" (108), "i" (12UL)); ldv_28374: ; goto ldv_28374; } else { } if ((unsigned long )ops->sync_single_for_cpu != (unsigned long )((void (*)(struct device * , dma_addr_t , size_t , enum dma_data_direction ))0)) { (*(ops->sync_single_for_cpu))(dev, addr, size, dir); } else { } debug_dma_sync_single_for_cpu(dev, addr, size, (int )dir); return; } } __inline static void dma_sync_single_for_device(struct device *dev , dma_addr_t addr , size_t size , enum dma_data_direction dir ) { struct dma_map_ops *ops ; struct dma_map_ops *tmp ; int tmp___0 ; long tmp___1 ; { tmp = get_dma_ops(dev); ops = tmp; tmp___0 = valid_dma_direction((int )dir); tmp___1 = ldv__builtin_expect(tmp___0 == 0, 0L); if (tmp___1 != 0L) { __asm__ volatile ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"include/asm-generic/dma-mapping-common.h"), "i" (120), "i" (12UL)); ldv_28382: ; goto ldv_28382; } else { } if ((unsigned long )ops->sync_single_for_device != (unsigned long )((void (*)(struct device * , dma_addr_t , size_t , enum dma_data_direction ))0)) { (*(ops->sync_single_for_device))(dev, addr, size, dir); } else { } debug_dma_sync_single_for_device(dev, addr, size, (int )dir); return; } } __inline static int dma_mapping_error(struct device *dev , dma_addr_t dma_addr ) { struct dma_map_ops *ops ; struct dma_map_ops *tmp ; int tmp___0 ; { tmp = get_dma_ops(dev); ops = tmp; debug_dma_mapping_error(dev, dma_addr); if ((unsigned long )ops->mapping_error != (unsigned long )((int (*)(struct device * , dma_addr_t ))0)) { tmp___0 = (*(ops->mapping_error))(dev, dma_addr); return (tmp___0); } else { } return (dma_addr == 0ULL); } } extern int dma_supported(struct device * , u64 ) ; extern int dma_set_mask(struct device * , u64 ) ; extern void *dma_alloc_attrs(struct device * , size_t , dma_addr_t * , gfp_t , struct dma_attrs * ) ; extern void dma_free_attrs(struct device * , size_t , void * , dma_addr_t , struct dma_attrs * ) ; __inline static int dma_set_coherent_mask(struct device *dev , u64 mask ) { int tmp ; { tmp = dma_supported(dev, mask); if (tmp == 0) { return (-5); } else { } dev->coherent_dma_mask = mask; return (0); } } __inline static int dma_set_mask_and_coherent(struct device *dev , u64 mask ) { int rc ; int tmp ; { tmp = dma_set_mask(dev, mask); rc = tmp; if (rc == 0) { dma_set_coherent_mask(dev, mask); } else { } return (rc); } } __inline static void *dma_zalloc_coherent(struct device *dev , size_t size , dma_addr_t *dma_handle , gfp_t flag ) { void *ret ; void *tmp ; { tmp = dma_alloc_attrs(dev, size, dma_handle, flag | 32768U, (struct dma_attrs *)0); ret = tmp; return (ret); } } __inline static int pci_pcie_cap(struct pci_dev *dev ) { { return ((int )dev->pcie_cap); } } __inline static bool pci_is_pcie(struct pci_dev *dev ) { int tmp ; { tmp = pci_pcie_cap(dev); return (tmp != 0); } } extern u32 ssb_dma_translation(struct ssb_device * ) ; extern u32 bcma_core_dma_translation(struct bcma_device * ) ; extern void consume_skb(struct sk_buff * ) ; extern unsigned char *skb_put(struct sk_buff * , unsigned int ) ; extern struct sk_buff *__netdev_alloc_skb(struct net_device * , unsigned int , gfp_t ) ; __inline static struct sk_buff *__dev_alloc_skb(unsigned int length , gfp_t gfp_mask ) { struct sk_buff *tmp ; { tmp = __netdev_alloc_skb((struct net_device *)0, length, gfp_mask); return (tmp); } } __inline static u16 skb_get_queue_mapping(struct sk_buff const *skb ) { { return ((u16 )skb->queue_mapping); } } extern void ieee80211_tx_status(struct ieee80211_hw * , struct sk_buff * ) ; extern void ieee80211_wake_queue(struct ieee80211_hw * , int ) ; __inline static u32 b43_dma_read(struct b43_dmaring *ring , u16 offset ) { u32 tmp ; { tmp = b43_read32(ring->dev, (int )ring->mmio_base + (int )offset); return (tmp); } } __inline static void b43_dma_write(struct b43_dmaring *ring , u16 offset , u32 value ) { { b43_write32(ring->dev, (int )ring->mmio_base + (int )offset, value); return; } } void b43_dma_direct_fifo_rx(struct b43_wldev *dev , unsigned int engine_index , bool enable ) ; __inline static size_t b43_txhdr_size(struct b43_wldev *dev ) { { switch ((unsigned int )dev->fw.hdr_format) { case 0U: ; return (118UL); case 1U: ; return (110UL); case 2U: ; return (106UL); } return (0UL); } } __inline static struct b43_private_tx_info *b43_get_priv_tx_info(struct ieee80211_tx_info *info ) { { return ((struct b43_private_tx_info *)(& info->__annonCompField103.__annonCompField102.rate_driver_data)); } } static u32 b43_dma_address(struct b43_dma *dma , dma_addr_t dmaaddr , enum b43_addrtype addrtype ) { u32 addr ; { addr = addr; switch ((unsigned int )addrtype) { case 0U: addr = (unsigned int )dmaaddr; if ((int )dma->translation_in_low) { addr = addr & 1073741823U; addr = dma->translation | addr; } else { } goto ldv_54443; case 1U: addr = (unsigned int )(dmaaddr >> 32ULL); if (! dma->translation_in_low) { addr = addr & 1073741823U; addr = dma->translation | addr; } else { } goto ldv_54443; case 2U: ; if ((int )dma->translation_in_low) { addr = (unsigned int )dmaaddr; } else { addr = (unsigned int )(dmaaddr >> 32ULL); } addr = addr & 3221225472U; addr = addr >> 30; goto ldv_54443; } ldv_54443: ; return (addr); } } static struct b43_dmadesc_generic *op32_idx2desc(struct b43_dmaring *ring , int slot , struct b43_dmadesc_meta **meta ) { struct b43_dmadesc32 *desc ; { *meta = ring->meta + (unsigned long )slot; desc = (struct b43_dmadesc32 *)ring->descbase; desc = desc + (unsigned long )slot; return ((struct b43_dmadesc_generic *)desc); } } static void op32_fill_descriptor(struct b43_dmaring *ring , struct b43_dmadesc_generic *desc , dma_addr_t dmaaddr , u16 bufsize , int start , int end , int irq ) { struct b43_dmadesc32 *descbase ; int slot ; u32 ctl ; u32 addr ; u32 addrext ; int __ret_warn_on ; long tmp ; { descbase = (struct b43_dmadesc32 *)ring->descbase; slot = (int )(((long )(& desc->__annonCompField109.dma32) - (long )descbase) / 8L); __ret_warn_on = slot < 0 || ring->nr_slots <= slot; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 110); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); addr = b43_dma_address(& (ring->dev)->__annonCompField107.dma, dmaaddr, 0); addrext = b43_dma_address(& (ring->dev)->__annonCompField107.dma, dmaaddr, 2); ctl = (u32 )bufsize & 8191U; if (ring->nr_slots + -1 == slot) { ctl = ctl | 268435456U; } else { } if (start != 0) { ctl = ctl | 2147483648U; } else { } if (end != 0) { ctl = ctl | 1073741824U; } else { } if (irq != 0) { ctl = ctl | 536870912U; } else { } ctl = ((addrext << 16) & 196608U) | ctl; desc->__annonCompField109.dma32.control = ctl; desc->__annonCompField109.dma32.address = addr; return; } } static void op32_poke_tx(struct b43_dmaring *ring , int slot ) { { b43_dma_write(ring, 8, (unsigned int )((unsigned long )slot) * 8U); return; } } static void op32_tx_suspend(struct b43_dmaring *ring ) { u32 tmp ; { tmp = b43_dma_read(ring, 0); b43_dma_write(ring, 0, tmp | 2U); return; } } static void op32_tx_resume(struct b43_dmaring *ring ) { u32 tmp ; { tmp = b43_dma_read(ring, 0); b43_dma_write(ring, 0, tmp & 4294967293U); return; } } static int op32_get_current_rxslot(struct b43_dmaring *ring ) { u32 val ; { val = b43_dma_read(ring, 28); val = val & 4095U; return ((int )(val / 8U)); } } static void op32_set_current_rxslot(struct b43_dmaring *ring , int slot ) { { b43_dma_write(ring, 24, (unsigned int )((unsigned long )slot) * 8U); return; } } static struct b43_dma_ops const dma32_ops = {& op32_idx2desc, & op32_fill_descriptor, & op32_poke_tx, & op32_tx_suspend, & op32_tx_resume, & op32_get_current_rxslot, & op32_set_current_rxslot}; static struct b43_dmadesc_generic *op64_idx2desc(struct b43_dmaring *ring , int slot , struct b43_dmadesc_meta **meta ) { struct b43_dmadesc64 *desc ; { *meta = ring->meta + (unsigned long )slot; desc = (struct b43_dmadesc64 *)ring->descbase; desc = desc + (unsigned long )slot; return ((struct b43_dmadesc_generic *)desc); } } static void op64_fill_descriptor(struct b43_dmaring *ring , struct b43_dmadesc_generic *desc , dma_addr_t dmaaddr , u16 bufsize , int start , int end , int irq ) { struct b43_dmadesc64 *descbase ; int slot ; u32 ctl0 ; u32 ctl1 ; u32 addrlo ; u32 addrhi ; u32 addrext ; int __ret_warn_on ; long tmp ; { descbase = (struct b43_dmadesc64 *)ring->descbase; ctl0 = 0U; ctl1 = 0U; slot = (int )(((long )(& desc->__annonCompField109.dma64) - (long )descbase) / 16L); __ret_warn_on = slot < 0 || ring->nr_slots <= slot; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 202); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); addrlo = b43_dma_address(& (ring->dev)->__annonCompField107.dma, dmaaddr, 0); addrhi = b43_dma_address(& (ring->dev)->__annonCompField107.dma, dmaaddr, 1); addrext = b43_dma_address(& (ring->dev)->__annonCompField107.dma, dmaaddr, 2); if (ring->nr_slots + -1 == slot) { ctl0 = ctl0 | 268435456U; } else { } if (start != 0) { ctl0 = ctl0 | 2147483648U; } else { } if (end != 0) { ctl0 = ctl0 | 1073741824U; } else { } if (irq != 0) { ctl0 = ctl0 | 536870912U; } else { } ctl1 = ((u32 )bufsize & 8191U) | ctl1; ctl1 = ((addrext << 16) & 196608U) | ctl1; desc->__annonCompField109.dma64.control0 = ctl0; desc->__annonCompField109.dma64.control1 = ctl1; desc->__annonCompField109.dma64.address_low = addrlo; desc->__annonCompField109.dma64.address_high = addrhi; return; } } static void op64_poke_tx(struct b43_dmaring *ring , int slot ) { { b43_dma_write(ring, 4, (unsigned int )((unsigned long )slot) * 16U); return; } } static void op64_tx_suspend(struct b43_dmaring *ring ) { u32 tmp ; { tmp = b43_dma_read(ring, 0); b43_dma_write(ring, 0, tmp | 2U); return; } } static void op64_tx_resume(struct b43_dmaring *ring ) { u32 tmp ; { tmp = b43_dma_read(ring, 0); b43_dma_write(ring, 0, tmp & 4294967293U); return; } } static int op64_get_current_rxslot(struct b43_dmaring *ring ) { u32 val ; { val = b43_dma_read(ring, 48); val = val & 8191U; return ((int )(val / 16U)); } } static void op64_set_current_rxslot(struct b43_dmaring *ring , int slot ) { { b43_dma_write(ring, 36, (unsigned int )((unsigned long )slot) * 16U); return; } } static struct b43_dma_ops const dma64_ops = {& op64_idx2desc, & op64_fill_descriptor, & op64_poke_tx, & op64_tx_suspend, & op64_tx_resume, & op64_get_current_rxslot, & op64_set_current_rxslot}; __inline static int free_slots(struct b43_dmaring *ring ) { { return (ring->nr_slots - ring->used_slots); } } __inline static int next_slot(struct b43_dmaring *ring , int slot ) { int __ret_warn_on ; long tmp ; { __ret_warn_on = slot < -1 || ring->nr_slots + -1 < slot; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 277); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if (ring->nr_slots + -1 == slot) { return (0); } else { } return (slot + 1); } } __inline static int prev_slot(struct b43_dmaring *ring , int slot ) { int __ret_warn_on ; long tmp ; { __ret_warn_on = slot < 0 || ring->nr_slots + -1 < slot; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 285); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if (slot == 0) { return (ring->nr_slots + -1); } else { } return (slot + -1); } } static void update_max_used_slots(struct b43_dmaring *ring , int current_used_slots ) { bool tmp ; { if (ring->max_used_slots >= current_used_slots) { return; } else { } ring->max_used_slots = current_used_slots; tmp = b43_debug(ring->dev, 2); if ((int )tmp) { b43dbg((ring->dev)->wl, "max_used_slots increased to %d on %s ring %d\n", ring->max_used_slots, (int )ring->tx ? (char *)"TX" : (char *)"RX", ring->index); } else { } return; } } __inline static int request_slot(struct b43_dmaring *ring ) { int slot ; int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; int __ret_warn_on___1 ; int tmp___1 ; long tmp___2 ; { __ret_warn_on = ! ring->tx; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 317); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); __ret_warn_on___0 = (int )ring->stopped; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 318); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); tmp___1 = free_slots(ring); __ret_warn_on___1 = tmp___1 == 0; tmp___2 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___2 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 319); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); slot = next_slot(ring, ring->current_slot); ring->current_slot = slot; ring->used_slots = ring->used_slots + 1; update_max_used_slots(ring, ring->used_slots); return (slot); } } static u16 b43_dmacontroller_base(enum b43_dmatype type , int controller_idx ) { u16 map64[6U] ; u16 map32[6U] ; int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; { map64[0] = 512U; map64[1] = 576U; map64[2] = 640U; map64[3] = 704U; map64[4] = 768U; map64[5] = 832U; map32[0] = 512U; map32[1] = 544U; map32[2] = 576U; map32[3] = 608U; map32[4] = 640U; map32[5] = 672U; if ((unsigned int )type == 64U) { __ret_warn_on = controller_idx < 0 || (unsigned int )controller_idx > 5U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 351); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return (map64[controller_idx]); } else { } __ret_warn_on___0 = controller_idx < 0 || (unsigned int )controller_idx > 5U; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 355); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); return (map32[controller_idx]); } } __inline static dma_addr_t map_descbuffer(struct b43_dmaring *ring , unsigned char *buf , size_t len , int tx ) { dma_addr_t dmaaddr ; { if (tx != 0) { dmaaddr = dma_map_single_attrs(((ring->dev)->dev)->dma_dev, (void *)buf, len, 1, (struct dma_attrs *)0); } else { dmaaddr = dma_map_single_attrs(((ring->dev)->dev)->dma_dev, (void *)buf, len, 2, (struct dma_attrs *)0); } return (dmaaddr); } } __inline static void unmap_descbuffer(struct b43_dmaring *ring , dma_addr_t addr , size_t len , int tx ) { { if (tx != 0) { dma_unmap_single_attrs(((ring->dev)->dev)->dma_dev, addr, len, 1, (struct dma_attrs *)0); } else { dma_unmap_single_attrs(((ring->dev)->dev)->dma_dev, addr, len, 2, (struct dma_attrs *)0); } return; } } __inline static void sync_descbuffer_for_cpu(struct b43_dmaring *ring , dma_addr_t addr , size_t len ) { int __ret_warn_on ; long tmp ; { __ret_warn_on = (int )ring->tx; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 393); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); dma_sync_single_for_cpu(((ring->dev)->dev)->dma_dev, addr, len, 2); return; } } __inline static void sync_descbuffer_for_device(struct b43_dmaring *ring , dma_addr_t addr , size_t len ) { int __ret_warn_on ; long tmp ; { __ret_warn_on = (int )ring->tx; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 402); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); dma_sync_single_for_device(((ring->dev)->dev)->dma_dev, addr, len, 2); return; } } __inline static void free_descriptor_buffer(struct b43_dmaring *ring , struct b43_dmadesc_meta *meta ) { { if ((unsigned long )meta->skb != (unsigned long )((struct sk_buff *)0)) { if ((int )ring->tx) { ieee80211_free_txskb(((ring->dev)->wl)->hw, meta->skb); } else { dev_kfree_skb_any(meta->skb); } meta->skb = (struct sk_buff *)0; } else { } return; } } static int alloc_ringmemory(struct b43_dmaring *ring ) { u16 ring_mem_size ; { ring_mem_size = (unsigned int )ring->type == 64U ? 8192U : 4096U; ring->descbase = dma_zalloc_coherent(((ring->dev)->dev)->dma_dev, (size_t )ring_mem_size, & ring->dmabase, 208U); if ((unsigned long )ring->descbase == (unsigned long )((void *)0)) { return (-12); } else { } return (0); } } static void free_ringmemory(struct b43_dmaring *ring ) { u16 ring_mem_size ; { ring_mem_size = (unsigned int )ring->type == 64U ? 8192U : 4096U; dma_free_attrs(((ring->dev)->dev)->dma_dev, (size_t )ring_mem_size, ring->descbase, ring->dmabase, (struct dma_attrs *)0); return; } } static int b43_dmacontroller_rx_reset(struct b43_wldev *dev , u16 mmio_base , enum b43_dmatype type ) { int i ; u32 value ; u16 offset ; { __might_sleep("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 459, 0); offset = (unsigned int )type == 64U ? 32U : 16U; b43_write32(dev, (int )mmio_base + (int )offset, 0U); i = 0; goto ldv_54622; ldv_54621: offset = (unsigned int )type == 64U ? 48U : 28U; value = b43_read32(dev, (int )mmio_base + (int )offset); if ((unsigned int )type == 64U) { value = value & 4026531840U; if (value == 0U) { i = -1; goto ldv_54620; } else { } } else { value = value & 61440U; if (value == 0U) { i = -1; goto ldv_54620; } else { } } msleep(1U); i = i + 1; ldv_54622: ; if (i <= 9) { goto ldv_54621; } else { } ldv_54620: ; if (i != -1) { b43err(dev->wl, "DMA RX reset timed out\n"); return (-19); } else { } return (0); } } static int b43_dmacontroller_tx_reset(struct b43_wldev *dev , u16 mmio_base , enum b43_dmatype type ) { int i ; u32 value ; u16 offset ; { __might_sleep("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 498, 0); i = 0; goto ldv_54633; ldv_54632: offset = (unsigned int )type == 64U ? 16U : 12U; value = b43_read32(dev, (int )mmio_base + (int )offset); if ((unsigned int )type == 64U) { value = value & 4026531840U; if ((value == 0U || value == 536870912U) || value == 805306368U) { goto ldv_54631; } else { } } else { value = value & 61440U; if ((value == 0U || value == 8192U) || value == 12288U) { goto ldv_54631; } else { } } msleep(1U); i = i + 1; ldv_54633: ; if (i <= 9) { goto ldv_54632; } else { } ldv_54631: offset = 0U; b43_write32(dev, (int )mmio_base + (int )offset, 0U); i = 0; goto ldv_54636; ldv_54635: offset = (unsigned int )type == 64U ? 16U : 12U; value = b43_read32(dev, (int )mmio_base + (int )offset); if ((unsigned int )type == 64U) { value = value & 4026531840U; if (value == 0U) { i = -1; goto ldv_54634; } else { } } else { value = value & 61440U; if (value == 0U) { i = -1; goto ldv_54634; } else { } } msleep(1U); i = i + 1; ldv_54636: ; if (i <= 9) { goto ldv_54635; } else { } ldv_54634: ; if (i != -1) { b43err(dev->wl, "DMA TX reset timed out\n"); return (-19); } else { } msleep(1U); return (0); } } static bool b43_dma_mapping_error(struct b43_dmaring *ring , dma_addr_t addr , size_t buffersize , bool dma_to_device ) { int tmp ; long tmp___0 ; { tmp = dma_mapping_error(((ring->dev)->dev)->dma_dev, addr); tmp___0 = ldv__builtin_expect(tmp != 0, 0L); if (tmp___0 != 0L) { return (1); } else { } switch ((unsigned int )ring->type) { case 30U: ; if (addr + (unsigned long long )buffersize > 1073741824ULL) { goto address_error; } else { } goto ldv_54645; case 32U: ; if (addr + (unsigned long long )buffersize > 4294967296ULL) { goto address_error; } else { } goto ldv_54645; case 64U: ; goto ldv_54645; } ldv_54645: ; return (0); address_error: unmap_descbuffer(ring, addr, buffersize, (int )dma_to_device); return (1); } } static bool b43_rx_buffer_is_poisoned(struct b43_dmaring *ring , struct sk_buff *skb ) { unsigned char *f ; { f = skb->data + (unsigned long )ring->frameoffset; return ((unsigned int )((((((((int )*f & (int )*(f + 1UL)) & (int )*(f + 2UL)) & (int )*(f + 3UL)) & (int )*(f + 4UL)) & (int )*(f + 5UL)) & (int )*(f + 6UL)) & (int )*(f + 7UL)) == 255U); } } static void b43_poison_rx_buffer(struct b43_dmaring *ring , struct sk_buff *skb ) { struct b43_rxhdr_fw4 *rxhdr ; unsigned char *frame ; int __ret_warn_on ; long tmp ; { rxhdr = (struct b43_rxhdr_fw4 *)skb->data; rxhdr->frame_len = 0U; __ret_warn_on = (unsigned long )ring->rx_buffersize < (unsigned long )ring->frameoffset + 8UL; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 600); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); frame = skb->data + (unsigned long )ring->frameoffset; memset((void *)frame, 255, 8UL); return; } } static int setup_rx_descbuffer(struct b43_dmaring *ring , struct b43_dmadesc_generic *desc , struct b43_dmadesc_meta *meta , gfp_t gfp_flags ) { dma_addr_t dmaaddr ; struct sk_buff *skb ; int __ret_warn_on ; long tmp ; long tmp___0 ; long tmp___1 ; bool tmp___2 ; bool tmp___3 ; { __ret_warn_on = (int )ring->tx; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 612); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); skb = __dev_alloc_skb((unsigned int )ring->rx_buffersize, gfp_flags); tmp___0 = ldv__builtin_expect((unsigned long )skb == (unsigned long )((struct sk_buff *)0), 0L); if (tmp___0 != 0L) { return (-12); } else { } b43_poison_rx_buffer(ring, skb); dmaaddr = map_descbuffer(ring, skb->data, (size_t )ring->rx_buffersize, 0); tmp___3 = b43_dma_mapping_error(ring, dmaaddr, (size_t )ring->rx_buffersize, 0); if ((int )tmp___3) { gfp_flags = gfp_flags | 1U; dev_kfree_skb_any(skb); skb = __dev_alloc_skb((unsigned int )ring->rx_buffersize, gfp_flags); tmp___1 = ldv__builtin_expect((unsigned long )skb == (unsigned long )((struct sk_buff *)0), 0L); if (tmp___1 != 0L) { return (-12); } else { } b43_poison_rx_buffer(ring, skb); dmaaddr = map_descbuffer(ring, skb->data, (size_t )ring->rx_buffersize, 0); tmp___2 = b43_dma_mapping_error(ring, dmaaddr, (size_t )ring->rx_buffersize, 0); if ((int )tmp___2) { b43err((ring->dev)->wl, "RX DMA buffer allocation failed\n"); dev_kfree_skb_any(skb); return (-5); } else { } } else { } meta->skb = skb; meta->dmaaddr = dmaaddr; (*((ring->ops)->fill_descriptor))(ring, desc, dmaaddr, (int )ring->rx_buffersize, 0, 0, 0); return (0); } } static int alloc_initial_descbuffers(struct b43_dmaring *ring ) { int i ; int err ; struct b43_dmadesc_generic *desc ; struct b43_dmadesc_meta *meta ; { err = -12; i = 0; goto ldv_54680; ldv_54679: desc = (*((ring->ops)->idx2desc))(ring, i, & meta); err = setup_rx_descbuffer(ring, desc, meta, 208U); if (err != 0) { b43err((ring->dev)->wl, "Failed to allocate initial descbuffers\n"); goto err_unwind; } else { } i = i + 1; ldv_54680: ; if (ring->nr_slots > i) { goto ldv_54679; } else { } __asm__ volatile ("mfence": : : "memory"); ring->used_slots = ring->nr_slots; err = 0; out: ; return (err); err_unwind: i = i - 1; goto ldv_54684; ldv_54683: desc = (*((ring->ops)->idx2desc))(ring, i, & meta); unmap_descbuffer(ring, meta->dmaaddr, (size_t )ring->rx_buffersize, 0); consume_skb(meta->skb); i = i - 1; ldv_54684: ; if (i >= 0) { goto ldv_54683; } else { } goto out; } } static int dmacontroller_setup(struct b43_dmaring *ring ) { int err ; u32 value ; u32 addrext ; bool parity ; u32 addrlo ; u32 addrhi ; u64 ringbase ; u32 ringbase___0 ; u64 ringbase___1 ; u32 ringbase___2 ; { err = 0; parity = (ring->dev)->__annonCompField107.dma.parity; if ((int )ring->tx) { if ((unsigned int )ring->type == 64U) { ringbase = ring->dmabase; addrext = b43_dma_address(& (ring->dev)->__annonCompField107.dma, ringbase, 2); addrlo = b43_dma_address(& (ring->dev)->__annonCompField107.dma, ringbase, 0); addrhi = b43_dma_address(& (ring->dev)->__annonCompField107.dma, ringbase, 1); value = 1U; value = ((addrext << 16) & 196608U) | value; if (! parity) { value = value | 2048U; } else { } b43_dma_write(ring, 0, value); b43_dma_write(ring, 8, addrlo); b43_dma_write(ring, 12, addrhi); } else { ringbase___0 = (unsigned int )ring->dmabase; addrext = b43_dma_address(& (ring->dev)->__annonCompField107.dma, (dma_addr_t )ringbase___0, 2); addrlo = b43_dma_address(& (ring->dev)->__annonCompField107.dma, (dma_addr_t )ringbase___0, 0); value = 1U; value = ((addrext << 16) & 196608U) | value; if (! parity) { value = value | 2048U; } else { } b43_dma_write(ring, 0, value); b43_dma_write(ring, 4, addrlo); } } else { err = alloc_initial_descbuffers(ring); if (err != 0) { goto out; } else { } if ((unsigned int )ring->type == 64U) { ringbase___1 = ring->dmabase; addrext = b43_dma_address(& (ring->dev)->__annonCompField107.dma, ringbase___1, 2); addrlo = b43_dma_address(& (ring->dev)->__annonCompField107.dma, ringbase___1, 0); addrhi = b43_dma_address(& (ring->dev)->__annonCompField107.dma, ringbase___1, 1); value = ring->frameoffset << 1; value = value | 1U; value = ((addrext << 16) & 196608U) | value; if (! parity) { value = value | 2048U; } else { } b43_dma_write(ring, 32, value); b43_dma_write(ring, 40, addrlo); b43_dma_write(ring, 44, addrhi); b43_dma_write(ring, 36, (u32 )((unsigned long )ring->nr_slots) * 16U); } else { ringbase___2 = (unsigned int )ring->dmabase; addrext = b43_dma_address(& (ring->dev)->__annonCompField107.dma, (dma_addr_t )ringbase___2, 2); addrlo = b43_dma_address(& (ring->dev)->__annonCompField107.dma, (dma_addr_t )ringbase___2, 0); value = ring->frameoffset << 1; value = value | 1U; value = ((addrext << 16) & 196608U) | value; if (! parity) { value = value | 2048U; } else { } b43_dma_write(ring, 16, value); b43_dma_write(ring, 20, addrlo); b43_dma_write(ring, 24, (u32 )((unsigned long )ring->nr_slots) * 8U); } } out: ; return (err); } } static void dmacontroller_cleanup(struct b43_dmaring *ring ) { { if ((int )ring->tx) { b43_dmacontroller_tx_reset(ring->dev, (int )ring->mmio_base, ring->type); if ((unsigned int )ring->type == 64U) { b43_dma_write(ring, 8, 0U); b43_dma_write(ring, 12, 0U); } else { b43_dma_write(ring, 4, 0U); } } else { b43_dmacontroller_rx_reset(ring->dev, (int )ring->mmio_base, ring->type); if ((unsigned int )ring->type == 64U) { b43_dma_write(ring, 40, 0U); b43_dma_write(ring, 44, 0U); } else { b43_dma_write(ring, 20, 0U); } } return; } } static void free_all_descbuffers(struct b43_dmaring *ring ) { struct b43_dmadesc_meta *meta ; int i ; int __ret_warn_on ; long tmp ; void *tmp___0 ; long tmp___1 ; { if (ring->used_slots == 0) { return; } else { } i = 0; goto ldv_54712; ldv_54711: (*((ring->ops)->idx2desc))(ring, i, & meta); if ((unsigned long )meta->skb == (unsigned long )((struct sk_buff *)0)) { goto _L; } else { tmp___0 = ERR_PTR(-12L); tmp___1 = ldv__builtin_expect((unsigned long )((void *)meta->skb) == (unsigned long )tmp___0, 0L); if (tmp___1 != 0L) { _L: /* CIL Label */ __ret_warn_on = ! ring->tx; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 799); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); goto ldv_54710; } else { } } if ((int )ring->tx) { unmap_descbuffer(ring, meta->dmaaddr, (size_t )(meta->skb)->len, 1); } else { unmap_descbuffer(ring, meta->dmaaddr, (size_t )ring->rx_buffersize, 0); } free_descriptor_buffer(ring, meta); ldv_54710: i = i + 1; ldv_54712: ; if (ring->nr_slots > i) { goto ldv_54711; } else { } return; } } static u64 supported_dma_mask(struct b43_wldev *dev ) { u32 tmp ; u16 mmio_base ; { switch ((unsigned int )(dev->dev)->bus_type) { case 0U: tmp = bcma_aread32((dev->dev)->__annonCompField105.bdev, 1280); if ((tmp & 4096U) != 0U) { return (0xffffffffffffffffULL); } else { } goto ldv_54720; case 1U: tmp = ssb_read32((dev->dev)->__annonCompField105.sdev, 3996); if ((tmp & 268435456U) != 0U) { return (0xffffffffffffffffULL); } else { } goto ldv_54720; } ldv_54720: mmio_base = b43_dmacontroller_base(0, 0); b43_write32(dev, (int )mmio_base, 196608U); tmp = b43_read32(dev, (int )mmio_base); if ((tmp & 196608U) != 0U) { return (4294967295ULL); } else { } return (1073741823ULL); } } static enum b43_dmatype dma_mask_to_engine_type(u64 dmamask ) { int __ret_warn_on ; long tmp ; { if (dmamask == 1073741823ULL) { return (30); } else { } if (dmamask == 4294967295ULL) { return (32); } else { } if (dmamask == 0xffffffffffffffffULL) { return (64); } else { } __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 852); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return (30); } } static struct b43_dmaring *b43_setup_dmaring(struct b43_wldev *dev , int controller_index , int for_tx , enum b43_dmatype type ) { struct b43_dmaring *ring ; int i ; int err ; dma_addr_t dma_test ; void *tmp ; void *tmp___0 ; void *tmp___1 ; int __ret_warn_on ; long tmp___2 ; size_t tmp___3 ; void *tmp___4 ; size_t tmp___5 ; size_t tmp___6 ; void *tmp___7 ; size_t tmp___8 ; size_t tmp___9 ; bool tmp___10 ; size_t tmp___11 ; bool tmp___12 ; size_t tmp___13 ; { tmp = kzalloc(128UL, 208U); ring = (struct b43_dmaring *)tmp; if ((unsigned long )ring == (unsigned long )((struct b43_dmaring *)0)) { goto out; } else { } ring->nr_slots = 256; if (for_tx != 0) { ring->nr_slots = 256; } else { } tmp___0 = kcalloc((size_t )ring->nr_slots, 24UL, 208U); ring->meta = (struct b43_dmadesc_meta *)tmp___0; if ((unsigned long )ring->meta == (unsigned long )((struct b43_dmadesc_meta *)0)) { goto err_kfree_ring; } else { } i = 0; goto ldv_54740; ldv_54739: tmp___1 = ERR_PTR(-12L); (ring->meta)->skb = (struct sk_buff *)tmp___1; i = i + 1; ldv_54740: ; if (ring->nr_slots > i) { goto ldv_54739; } else { } ring->type = type; ring->dev = dev; ring->mmio_base = b43_dmacontroller_base(type, controller_index); ring->index = controller_index; if ((unsigned int )type == 64U) { ring->ops = & dma64_ops; } else { ring->ops = & dma32_ops; } if (for_tx != 0) { ring->tx = 1; ring->current_slot = -1; } else if (ring->index == 0) { switch ((unsigned int )dev->fw.hdr_format) { case 0U: ring->rx_buffersize = 2390U; ring->frameoffset = 38U; goto ldv_54743; case 1U: ; case 2U: ring->rx_buffersize = 2382U; ring->frameoffset = 30U; goto ldv_54743; } ldv_54743: ; } else { __ret_warn_on = 1; tmp___2 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___2 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 907); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); } ring->last_injected_overflow = jiffies; if (for_tx != 0) { tmp___3 = b43_txhdr_size(dev); tmp___4 = kcalloc((size_t )(ring->nr_slots / 2), tmp___3, 208U); ring->txhdr_cache = (u8 *)tmp___4; if ((unsigned long )ring->txhdr_cache == (unsigned long )((u8 *)0U)) { goto err_kfree_meta; } else { } tmp___5 = b43_txhdr_size(dev); dma_test = dma_map_single_attrs((dev->dev)->dma_dev, (void *)ring->txhdr_cache, tmp___5, 1, (struct dma_attrs *)0); tmp___11 = b43_txhdr_size(dev); tmp___12 = b43_dma_mapping_error(ring, dma_test, tmp___11, 1); if ((int )tmp___12) { kfree((void const *)ring->txhdr_cache); tmp___6 = b43_txhdr_size(dev); tmp___7 = kcalloc((size_t )(ring->nr_slots / 2), tmp___6, 209U); ring->txhdr_cache = (u8 *)tmp___7; if ((unsigned long )ring->txhdr_cache == (unsigned long )((u8 *)0U)) { goto err_kfree_meta; } else { } tmp___8 = b43_txhdr_size(dev); dma_test = dma_map_single_attrs((dev->dev)->dma_dev, (void *)ring->txhdr_cache, tmp___8, 1, (struct dma_attrs *)0); tmp___9 = b43_txhdr_size(dev); tmp___10 = b43_dma_mapping_error(ring, dma_test, tmp___9, 1); if ((int )tmp___10) { b43err(dev->wl, "TXHDR DMA allocation failed\n"); goto err_kfree_txhdr_cache; } else { } } else { } tmp___13 = b43_txhdr_size(dev); dma_unmap_single_attrs((dev->dev)->dma_dev, dma_test, tmp___13, 1, (struct dma_attrs *)0); } else { } err = alloc_ringmemory(ring); if (err != 0) { goto err_kfree_txhdr_cache; } else { } err = dmacontroller_setup(ring); if (err != 0) { goto err_free_ringmemory; } else { } out: ; return (ring); err_free_ringmemory: free_ringmemory(ring); err_kfree_txhdr_cache: kfree((void const *)ring->txhdr_cache); err_kfree_meta: kfree((void const *)ring->meta); err_kfree_ring: kfree((void const *)ring); ring = (struct b43_dmaring *)0; goto out; } } static void b43_destroy_dmaring(struct b43_dmaring *ring , char const *ringname ) { u64 failed_packets ; u64 succeed_packets ; u64 nr_packets ; u64 permille_failed ; u64 average_tries ; u64 __a ; uint32_t __base ; uint32_t __rem ; u64 __a___0 ; uint32_t __base___0 ; uint32_t __rem___0 ; u64 __a___1 ; uint32_t __base___1 ; uint32_t __rem___1 ; u64 __a___2 ; uint32_t __base___2 ; uint32_t __rem___2 ; u64 __a___3 ; uint32_t __base___3 ; uint32_t __rem___3 ; u64 __a___4 ; uint32_t __base___4 ; uint32_t __rem___4 ; { if ((unsigned long )ring == (unsigned long )((struct b43_dmaring *)0)) { return; } else { } failed_packets = ring->nr_failed_tx_packets; succeed_packets = ring->nr_succeed_tx_packets; nr_packets = failed_packets + succeed_packets; permille_failed = 0ULL; average_tries = 0ULL; if (nr_packets != 0ULL) { __a = failed_packets * 1000ULL; __base = (uint32_t )nr_packets; __rem = (uint32_t )(__a % (u64 )__base); __a = __a / (u64 )__base; permille_failed = __a; } else { } if (nr_packets != 0ULL) { __a___0 = ring->nr_total_packet_tries * 100ULL; __base___0 = (uint32_t )nr_packets; __rem___0 = (uint32_t )(__a___0 % (u64 )__base___0); __a___0 = __a___0 / (u64 )__base___0; average_tries = __a___0; } else { } __a___1 = average_tries; __base___1 = 100U; __rem___1 = (uint32_t )(__a___1 % (u64 )__base___1); __a___1 = __a___1 / (u64 )__base___1; __a___2 = average_tries; __base___2 = 100U; __rem___2 = (uint32_t )(__a___2 % (u64 )__base___2); __a___2 = __a___2 / (u64 )__base___2; __a___3 = permille_failed; __base___3 = 10U; __rem___3 = (uint32_t )(__a___3 % (u64 )__base___3); __a___3 = __a___3 / (u64 )__base___3; __a___4 = permille_failed; __base___4 = 10U; __rem___4 = (uint32_t )(__a___4 % (u64 )__base___4); __a___4 = __a___4 / (u64 )__base___4; b43dbg((ring->dev)->wl, "DMA-%u %s: Used slots %d/%d, Failed frames %llu/%llu = %llu.%01llu%%, Average tries %llu.%02llu\n", (unsigned int )ring->type, ringname, ring->max_used_slots, ring->nr_slots, failed_packets, nr_packets, __a___4, (unsigned long long )__rem___3, __a___2, (unsigned long long )__rem___1); dmacontroller_cleanup(ring); free_all_descbuffers(ring); free_ringmemory(ring); kfree((void const *)ring->txhdr_cache); kfree((void const *)ring->meta); kfree((void const *)ring); return; } } void b43_dma_free(struct b43_wldev *dev ) { struct b43_dma *dma ; bool tmp ; { tmp = b43_using_pio_transfers(dev); if ((int )tmp) { return; } else { } dma = & dev->__annonCompField107.dma; b43_destroy_dmaring(dma->rx_ring, "rx_ring"); dma->rx_ring = (struct b43_dmaring *)0; b43_destroy_dmaring(dma->tx_ring_AC_BK, "tx_ring_AC_BK"); dma->tx_ring_AC_BK = (struct b43_dmaring *)0; b43_destroy_dmaring(dma->tx_ring_AC_BE, "tx_ring_AC_BE"); dma->tx_ring_AC_BE = (struct b43_dmaring *)0; b43_destroy_dmaring(dma->tx_ring_AC_VI, "tx_ring_AC_VI"); dma->tx_ring_AC_VI = (struct b43_dmaring *)0; b43_destroy_dmaring(dma->tx_ring_AC_VO, "tx_ring_AC_VO"); dma->tx_ring_AC_VO = (struct b43_dmaring *)0; b43_destroy_dmaring(dma->tx_ring_mcast, "tx_ring_mcast"); dma->tx_ring_mcast = (struct b43_dmaring *)0; return; } } static int b43_dma_set_mask(struct b43_wldev *dev , u64 mask ) { u64 orig_mask ; bool fallback ; int err ; enum b43_dmatype tmp ; enum b43_dmatype tmp___0 ; enum b43_dmatype tmp___1 ; { orig_mask = mask; fallback = 0; ldv_54803: err = dma_set_mask_and_coherent((dev->dev)->dma_dev, mask); if (err == 0) { goto ldv_54801; } else { } if (mask == 0xffffffffffffffffULL) { mask = 4294967295ULL; fallback = 1; goto ldv_54802; } else { } if (mask == 4294967295ULL) { mask = 1073741823ULL; fallback = 1; goto ldv_54802; } else { } tmp = dma_mask_to_engine_type(orig_mask); b43err(dev->wl, "The machine/kernel does not support the required %u-bit DMA mask\n", (unsigned int )tmp); return (-95); ldv_54802: ; goto ldv_54803; ldv_54801: ; if ((int )fallback) { tmp___0 = dma_mask_to_engine_type(mask); tmp___1 = dma_mask_to_engine_type(orig_mask); b43info(dev->wl, "DMA mask fallback from %u-bit to %u-bit\n", (unsigned int )tmp___1, (unsigned int )tmp___0); } else { } return (0); } } static bool b43_dma_translation_in_low_word(struct b43_wldev *dev , enum b43_dmatype type ) { bool tmp ; int tmp___0 ; u32 tmp___1 ; { if ((unsigned int )type != 64U) { return (1); } else { } if ((unsigned int )(dev->dev)->bus_type == 1U && (unsigned int )(((dev->dev)->__annonCompField105.sdev)->bus)->bustype == 1U) { tmp = pci_is_pcie((((dev->dev)->__annonCompField105.sdev)->bus)->__annonCompField97.host_pci); if (tmp) { tmp___0 = 0; } else { tmp___0 = 1; } if (tmp___0) { return (1); } else { tmp___1 = ssb_read32((dev->dev)->__annonCompField105.sdev, 3996); if ((tmp___1 & 268435456U) == 0U) { return (1); } else { } } } else { } return (0); } } int b43_dma_init(struct b43_wldev *dev ) { struct b43_dma *dma ; int err ; u64 dmamask ; enum b43_dmatype type ; int __ret_warn_on ; long tmp ; { dma = & dev->__annonCompField107.dma; dmamask = supported_dma_mask(dev); type = dma_mask_to_engine_type(dmamask); err = b43_dma_set_mask(dev, dmamask); if (err != 0) { return (err); } else { } switch ((unsigned int )(dev->dev)->bus_type) { case 0U: dma->translation = bcma_core_dma_translation((dev->dev)->__annonCompField105.bdev); goto ldv_54816; case 1U: dma->translation = ssb_dma_translation((dev->dev)->__annonCompField105.sdev); goto ldv_54816; } ldv_54816: dma->translation_in_low = b43_dma_translation_in_low_word(dev, type); dma->parity = 1; if ((unsigned int )(dev->dev)->bus_type == 0U) { dma->parity = 0; } else { } err = -12; dma->tx_ring_AC_BK = b43_setup_dmaring(dev, 0, 1, type); if ((unsigned long )dma->tx_ring_AC_BK == (unsigned long )((struct b43_dmaring *)0)) { goto out; } else { } dma->tx_ring_AC_BE = b43_setup_dmaring(dev, 1, 1, type); if ((unsigned long )dma->tx_ring_AC_BE == (unsigned long )((struct b43_dmaring *)0)) { goto err_destroy_bk; } else { } dma->tx_ring_AC_VI = b43_setup_dmaring(dev, 2, 1, type); if ((unsigned long )dma->tx_ring_AC_VI == (unsigned long )((struct b43_dmaring *)0)) { goto err_destroy_be; } else { } dma->tx_ring_AC_VO = b43_setup_dmaring(dev, 3, 1, type); if ((unsigned long )dma->tx_ring_AC_VO == (unsigned long )((struct b43_dmaring *)0)) { goto err_destroy_vi; } else { } dma->tx_ring_mcast = b43_setup_dmaring(dev, 4, 1, type); if ((unsigned long )dma->tx_ring_mcast == (unsigned long )((struct b43_dmaring *)0)) { goto err_destroy_vo; } else { } dma->rx_ring = b43_setup_dmaring(dev, 0, 0, type); if ((unsigned long )dma->rx_ring == (unsigned long )((struct b43_dmaring *)0)) { goto err_destroy_mcast; } else { } __ret_warn_on = (unsigned int )(dev->dev)->core_rev <= 4U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 1176); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); b43dbg(dev->wl, "%u-bit DMA initialized\n", (unsigned int )type); err = 0; out: ; return (err); err_destroy_mcast: b43_destroy_dmaring(dma->tx_ring_mcast, "tx_ring_mcast"); dma->tx_ring_mcast = (struct b43_dmaring *)0; err_destroy_vo: b43_destroy_dmaring(dma->tx_ring_AC_VO, "tx_ring_AC_VO"); dma->tx_ring_AC_VO = (struct b43_dmaring *)0; err_destroy_vi: b43_destroy_dmaring(dma->tx_ring_AC_VI, "tx_ring_AC_VI"); dma->tx_ring_AC_VI = (struct b43_dmaring *)0; err_destroy_be: b43_destroy_dmaring(dma->tx_ring_AC_BE, "tx_ring_AC_BE"); dma->tx_ring_AC_BE = (struct b43_dmaring *)0; err_destroy_bk: b43_destroy_dmaring(dma->tx_ring_AC_BK, "tx_ring_AC_BK"); dma->tx_ring_AC_BK = (struct b43_dmaring *)0; return (err); } } static u16 generate_cookie(struct b43_dmaring *ring , int slot ) { u16 cookie ; int __ret_warn_on ; long tmp ; { cookie = ((unsigned int )((u16 )ring->index) + 1U) << 12U; __ret_warn_on = (slot & -4096) != 0; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 1211); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); cookie = (u16 )((int )((unsigned short )slot) | (int )cookie); return (cookie); } } static struct b43_dmaring *parse_cookie(struct b43_wldev *dev , u16 cookie , int *slot ) { struct b43_dma *dma ; struct b43_dmaring *ring ; long tmp ; { dma = & dev->__annonCompField107.dma; ring = (struct b43_dmaring *)0; switch ((int )cookie & 61440) { case 4096: ring = dma->tx_ring_AC_BK; goto ldv_54841; case 8192: ring = dma->tx_ring_AC_BE; goto ldv_54841; case 12288: ring = dma->tx_ring_AC_VI; goto ldv_54841; case 16384: ring = dma->tx_ring_AC_VO; goto ldv_54841; case 20480: ring = dma->tx_ring_mcast; goto ldv_54841; } ldv_54841: *slot = (int )cookie & 4095; tmp = ldv__builtin_expect((long )(((unsigned long )ring == (unsigned long )((struct b43_dmaring *)0) || *slot < 0) || *slot >= ring->nr_slots), 0L); if (tmp != 0L) { b43dbg(dev->wl, "TX-status contains invalid cookie: 0x%04X\n", (int )cookie); return ((struct b43_dmaring *)0); } else { } return (ring); } } static int dma_tx_fragment(struct b43_dmaring *ring , struct sk_buff *skb ) { struct b43_dma_ops const *ops ; struct ieee80211_tx_info *info ; struct ieee80211_tx_info *tmp ; struct b43_private_tx_info *priv_info ; struct b43_private_tx_info *tmp___0 ; u8 *header ; int slot ; int old_top_slot ; int old_used_slots ; int err ; struct b43_dmadesc_generic *desc ; struct b43_dmadesc_meta *meta ; struct b43_dmadesc_meta *meta_hdr ; u16 cookie ; size_t hdrsize ; size_t tmp___1 ; long tmp___2 ; bool tmp___3 ; bool tmp___4 ; bool tmp___5 ; int tmp___6 ; { ops = ring->ops; tmp = IEEE80211_SKB_CB(skb); info = tmp; tmp___0 = b43_get_priv_tx_info(info); priv_info = tmp___0; tmp___1 = b43_txhdr_size(ring->dev); hdrsize = tmp___1; old_top_slot = ring->current_slot; old_used_slots = ring->used_slots; slot = request_slot(ring); desc = (*(ops->idx2desc))(ring, slot, & meta_hdr); memset((void *)meta_hdr, 0, 24UL); header = ring->txhdr_cache + (size_t )(slot / 2) * hdrsize; cookie = generate_cookie(ring, slot); err = b43_generate_txhdr(ring->dev, header, skb, info, (int )cookie); tmp___2 = ldv__builtin_expect(err != 0, 0L); if (tmp___2 != 0L) { ring->current_slot = old_top_slot; ring->used_slots = old_used_slots; return (err); } else { } meta_hdr->dmaaddr = map_descbuffer(ring, header, hdrsize, 1); tmp___3 = b43_dma_mapping_error(ring, meta_hdr->dmaaddr, hdrsize, 1); if ((int )tmp___3) { ring->current_slot = old_top_slot; ring->used_slots = old_used_slots; return (-5); } else { } (*(ops->fill_descriptor))(ring, desc, meta_hdr->dmaaddr, (int )((u16 )hdrsize), 1, 0, 0); slot = request_slot(ring); desc = (*(ops->idx2desc))(ring, slot, & meta); memset((void *)meta, 0, 24UL); meta->skb = skb; meta->is_last_fragment = 1; priv_info->bouncebuffer = (void *)0; meta->dmaaddr = map_descbuffer(ring, skb->data, (size_t )skb->len, 1); tmp___5 = b43_dma_mapping_error(ring, meta->dmaaddr, (size_t )skb->len, 1); if ((int )tmp___5) { priv_info->bouncebuffer = kmemdup((void const *)skb->data, (size_t )skb->len, 33U); if ((unsigned long )priv_info->bouncebuffer == (unsigned long )((void *)0)) { ring->current_slot = old_top_slot; ring->used_slots = old_used_slots; err = -12; goto out_unmap_hdr; } else { } meta->dmaaddr = map_descbuffer(ring, (unsigned char *)priv_info->bouncebuffer, (size_t )skb->len, 1); tmp___4 = b43_dma_mapping_error(ring, meta->dmaaddr, (size_t )skb->len, 1); if ((int )tmp___4) { kfree((void const *)priv_info->bouncebuffer); priv_info->bouncebuffer = (void *)0; ring->current_slot = old_top_slot; ring->used_slots = old_used_slots; err = -5; goto out_unmap_hdr; } else { } } else { } (*(ops->fill_descriptor))(ring, desc, meta->dmaaddr, (int )((u16 )skb->len), 0, 1, 1); if ((info->flags & 32U) != 0U) { b43_shm_write16(ring->dev, 1, 168, (int )cookie); } else { } __asm__ volatile ("sfence": : : "memory"); tmp___6 = next_slot(ring, slot); (*(ops->poke_tx))(ring, tmp___6); return (0); out_unmap_hdr: unmap_descbuffer(ring, meta_hdr->dmaaddr, hdrsize, 1); return (err); } } __inline static int should_inject_overflow(struct b43_dmaring *ring ) { unsigned long next_overflow ; bool tmp ; long tmp___0 ; { tmp = b43_debug(ring->dev, 1); tmp___0 = ldv__builtin_expect((long )tmp, 0L); if (tmp___0 != 0L) { next_overflow = ring->last_injected_overflow + 250UL; if ((long )(next_overflow - (unsigned long )jiffies) < 0L) { ring->last_injected_overflow = jiffies; b43dbg((ring->dev)->wl, "Injecting TX ring overflow on DMA controller %d\n", ring->index); return (1); } else { } } else { } return (0); } } static struct b43_dmaring *select_ring_by_priority(struct b43_wldev *dev , u8 queue_prio ) { struct b43_dmaring *ring ; int __ret_warn_on ; long tmp ; { if ((int )dev->qos_enabled) { switch ((int )queue_prio) { default: __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 1381); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); case 0: ring = dev->__annonCompField107.dma.tx_ring_AC_VO; goto ldv_54883; case 1: ring = dev->__annonCompField107.dma.tx_ring_AC_VI; goto ldv_54883; case 2: ring = dev->__annonCompField107.dma.tx_ring_AC_BE; goto ldv_54883; case 3: ring = dev->__annonCompField107.dma.tx_ring_AC_BK; goto ldv_54883; } ldv_54883: ; } else { ring = dev->__annonCompField107.dma.tx_ring_AC_BE; } return (ring); } } int b43_dma_tx(struct b43_wldev *dev , struct sk_buff *skb ) { struct b43_dmaring *ring ; struct ieee80211_hdr *hdr ; int err ; struct ieee80211_tx_info *info ; struct ieee80211_tx_info *tmp ; u16 tmp___0 ; int __ret_warn_on ; long tmp___1 ; bool tmp___2 ; long tmp___3 ; int __ret_warn_on___0 ; int tmp___4 ; long tmp___5 ; long tmp___6 ; long tmp___7 ; u16 tmp___8 ; long tmp___9 ; long tmp___10 ; unsigned int skb_mapping ; u16 tmp___11 ; bool tmp___12 ; int tmp___13 ; int tmp___14 ; { err = 0; tmp = IEEE80211_SKB_CB(skb); info = tmp; hdr = (struct ieee80211_hdr *)skb->data; if ((info->flags & 32U) != 0U) { ring = dev->__annonCompField107.dma.tx_ring_mcast; hdr->frame_control = (__le16 )((unsigned int )hdr->frame_control | 8192U); } else { tmp___0 = skb_get_queue_mapping((struct sk_buff const *)skb); ring = select_ring_by_priority(dev, (int )((u8 )tmp___0)); } __ret_warn_on = ! ring->tx; tmp___1 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 1422); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); tmp___3 = ldv__builtin_expect((long )ring->stopped, 0L); if (tmp___3 != 0L) { tmp___2 = b43_debug(dev, 2); if ((int )tmp___2) { b43err(dev->wl, "Packet after queue stopped\n"); } else { } err = -28; goto out; } else { } tmp___4 = free_slots(ring); __ret_warn_on___0 = tmp___4 <= 1; tmp___5 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___5 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 1435); } else { } tmp___6 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); tmp___7 = ldv__builtin_expect(tmp___6 != 0L, 0L); if (tmp___7 != 0L) { b43err(dev->wl, "DMA queue overflow\n"); err = -28; goto out; } else { } tmp___8 = skb_get_queue_mapping((struct sk_buff const *)skb); ring->queue_prio = (u8 )tmp___8; err = dma_tx_fragment(ring, skb); tmp___9 = ldv__builtin_expect(err == -126, 0L); if (tmp___9 != 0L) { ieee80211_free_txskb((dev->wl)->hw, skb); err = 0; goto out; } else { } tmp___10 = ldv__builtin_expect(err != 0, 0L); if (tmp___10 != 0L) { b43err(dev->wl, "DMA tx mapping failure\n"); goto out; } else { } tmp___13 = free_slots(ring); if (tmp___13 <= 1) { goto _L; } else { tmp___14 = should_inject_overflow(ring); if (tmp___14 != 0) { _L: /* CIL Label */ tmp___11 = skb_get_queue_mapping((struct sk_buff const *)skb); skb_mapping = (unsigned int )tmp___11; ieee80211_stop_queue((dev->wl)->hw, (int )skb_mapping); (dev->wl)->tx_queue_stopped[skb_mapping] = 1; ring->stopped = 1; tmp___12 = b43_debug(dev, 2); if ((int )tmp___12) { b43dbg(dev->wl, "Stopped TX ring %d\n", ring->index); } else { } } else { } } out: ; return (err); } } void b43_dma_handle_txstatus(struct b43_wldev *dev , struct b43_txstatus const *status ) { struct b43_dma_ops const *ops ; struct b43_dmaring *ring ; struct b43_dmadesc_meta *meta ; struct b43_txstatus fake ; struct b43_txstatus const *txstat ; int slot ; int firstused ; bool frame_succeed ; int skip ; u8 err_out1 ; u8 err_out2 ; long tmp ; int __ret_warn_on ; long tmp___0 ; int tmp___1 ; int tmp___2 ; long tmp___3 ; int __ret_warn_on___0 ; long tmp___4 ; void *tmp___5 ; long tmp___6 ; struct b43_private_tx_info *priv_info ; struct ieee80211_tx_info *tmp___7 ; struct b43_private_tx_info *tmp___8 ; size_t tmp___9 ; struct ieee80211_tx_info *info ; long tmp___10 ; long tmp___11 ; void *tmp___12 ; long tmp___13 ; int __ret_warn_on___1 ; int tmp___14 ; long tmp___15 ; bool tmp___16 ; { ring = parse_cookie(dev, (int )status->cookie, & slot); tmp = ldv__builtin_expect((unsigned long )ring == (unsigned long )((struct b43_dmaring *)0), 0L); if (tmp != 0L) { return; } else { } __ret_warn_on = ! ring->tx; tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 1492); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); firstused = (ring->current_slot - ring->used_slots) + 1; if (firstused < 0) { firstused = ring->nr_slots + firstused; } else { } skip = 0; tmp___3 = ldv__builtin_expect(slot != firstused, 0L); if (tmp___3 != 0L) { tmp___1 = next_slot(ring, firstused); tmp___2 = next_slot(ring, tmp___1); if (tmp___2 == slot) { slot = firstused; skip = 2; if ((unsigned int )err_out1 == 0U) { b43dbg(dev->wl, "Skip on DMA ring %d slot %d.\n", ring->index, slot); err_out1 = 1U; } else { } } else { if ((unsigned int )err_out2 == 0U) { b43dbg(dev->wl, "Out of order TX status report on DMA ring %d. Expected %d, but got %d\n", ring->index, firstused, slot); } else { } err_out2 = 1U; return; } } else { } ops = ring->ops; ldv_54923: __ret_warn_on___0 = slot < 0 || ring->nr_slots <= slot; tmp___4 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___4 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 1534); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); (*(ops->idx2desc))(ring, slot, & meta); tmp___5 = ERR_PTR(-12L); tmp___6 = ldv__builtin_expect((unsigned long )((void *)meta->skb) == (unsigned long )tmp___5, 0L); if (tmp___6 != 0L) { b43dbg(dev->wl, "Poisoned TX slot %d (first=%d) on ring %d\n", slot, firstused, ring->index); goto ldv_54920; } else { } if ((unsigned long )meta->skb != (unsigned long )((struct sk_buff *)0)) { tmp___7 = IEEE80211_SKB_CB(meta->skb); tmp___8 = b43_get_priv_tx_info(tmp___7); priv_info = tmp___8; unmap_descbuffer(ring, meta->dmaaddr, (size_t )(meta->skb)->len, 1); kfree((void const *)priv_info->bouncebuffer); priv_info->bouncebuffer = (void *)0; } else { tmp___9 = b43_txhdr_size(dev); unmap_descbuffer(ring, meta->dmaaddr, tmp___9, 1); } if ((int )meta->is_last_fragment) { tmp___10 = ldv__builtin_expect((unsigned long )meta->skb == (unsigned long )((struct sk_buff *)0), 0L); if (tmp___10 != 0L) { b43dbg(dev->wl, "TX status unexpected NULL skb at slot %d (first=%d) on ring %d\n", slot, firstused, ring->index); goto ldv_54920; } else { } info = IEEE80211_SKB_CB(meta->skb); tmp___11 = ldv__builtin_expect(skip != 0, 0L); if (tmp___11 != 0L) { txstat = & fake; } else { txstat = status; } frame_succeed = b43_fill_txstatus_report(dev, info, txstat); if ((int )frame_succeed) { ring->nr_succeed_tx_packets = ring->nr_succeed_tx_packets + 1ULL; } else { ring->nr_failed_tx_packets = ring->nr_failed_tx_packets + 1ULL; } ring->nr_total_packet_tries = ring->nr_total_packet_tries + (u64 )status->frame_count; ieee80211_tx_status((dev->wl)->hw, meta->skb); tmp___12 = ERR_PTR(-12L); meta->skb = (struct sk_buff *)tmp___12; } else { tmp___13 = ldv__builtin_expect((unsigned long )meta->skb != (unsigned long )((struct sk_buff *)0), 0L); if (tmp___13 != 0L) { b43dbg(dev->wl, "TX status unexpected non-NULL skb at slot %d (first=%d) on ring %d\n", slot, firstused, ring->index); goto ldv_54920; } else { } } ring->used_slots = ring->used_slots - 1; if ((int )meta->is_last_fragment && skip == 0) { goto ldv_54920; } else { } slot = next_slot(ring, slot); if (skip > 0) { skip = skip - 1; } else { } goto ldv_54923; ldv_54920: ; if ((int )ring->stopped) { tmp___14 = free_slots(ring); __ret_warn_on___1 = tmp___14 <= 1; tmp___15 = ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); if (tmp___15 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 1624); } else { } ldv__builtin_expect(__ret_warn_on___1 != 0, 0L); ring->stopped = 0; } else { } if ((int )(dev->wl)->tx_queue_stopped[(int )ring->queue_prio]) { (dev->wl)->tx_queue_stopped[(int )ring->queue_prio] = 0; } else { ieee80211_wake_queue((dev->wl)->hw, (int )ring->queue_prio); tmp___16 = b43_debug(dev, 2); if ((int )tmp___16) { b43dbg(dev->wl, "Woke up TX ring %d\n", ring->index); } else { } } ieee80211_queue_work((dev->wl)->hw, & (dev->wl)->tx_work); return; } } static void dma_rx(struct b43_dmaring *ring , int *slot ) { struct b43_dma_ops const *ops ; struct b43_dmadesc_generic *desc ; struct b43_dmadesc_meta *meta ; struct b43_rxhdr_fw4 *rxhdr ; struct sk_buff *skb ; u16 len ; int err ; dma_addr_t dmaaddr ; int i ; int tmp ; long tmp___0 ; bool tmp___1 ; long tmp___2 ; int cnt ; s32 tmp___3 ; long tmp___4 ; long tmp___5 ; { ops = ring->ops; desc = (*(ops->idx2desc))(ring, *slot, & meta); sync_descbuffer_for_cpu(ring, meta->dmaaddr, (size_t )ring->rx_buffersize); skb = meta->skb; rxhdr = (struct b43_rxhdr_fw4 *)skb->data; len = rxhdr->frame_len; if ((unsigned int )len == 0U) { i = 0; ldv_54939: __const_udelay(8590UL); __asm__ volatile ("": : : "memory"); len = rxhdr->frame_len; if ((unsigned int )len == 0U) { tmp = i; i = i + 1; if (tmp <= 4) { goto ldv_54939; } else { goto ldv_54940; } } else { } ldv_54940: tmp___0 = ldv__builtin_expect((unsigned int )len == 0U, 0L); if (tmp___0 != 0L) { dmaaddr = meta->dmaaddr; goto drop_recycle_buffer; } else { } } else { } tmp___1 = b43_rx_buffer_is_poisoned(ring, skb); tmp___2 = ldv__builtin_expect((long )tmp___1, 0L); if (tmp___2 != 0L) { b43dbg((ring->dev)->wl, "DMA RX: Dropping poisoned buffer.\n"); dmaaddr = meta->dmaaddr; goto drop_recycle_buffer; } else { } tmp___4 = ldv__builtin_expect((u32 )len + ring->frameoffset > (u32 )ring->rx_buffersize, 0L); if (tmp___4 != 0L) { cnt = 0; tmp___3 = (s32 )len; ldv_54945: desc = (*(ops->idx2desc))(ring, *slot, & meta); b43_poison_rx_buffer(ring, meta->skb); sync_descbuffer_for_device(ring, meta->dmaaddr, (size_t )ring->rx_buffersize); *slot = next_slot(ring, *slot); cnt = cnt + 1; tmp___3 = tmp___3 - (int )ring->rx_buffersize; if (tmp___3 <= 0) { goto ldv_54944; } else { } goto ldv_54945; ldv_54944: b43err((ring->dev)->wl, "DMA RX buffer too small (len: %u, buffer: %u, nr-dropped: %d)\n", (int )len, (int )ring->rx_buffersize, cnt); goto drop; } else { } dmaaddr = meta->dmaaddr; err = setup_rx_descbuffer(ring, desc, meta, 32U); tmp___5 = ldv__builtin_expect(err != 0, 0L); if (tmp___5 != 0L) { b43dbg((ring->dev)->wl, "DMA RX: setup_rx_descbuffer() failed\n"); goto drop_recycle_buffer; } else { } unmap_descbuffer(ring, dmaaddr, (size_t )ring->rx_buffersize, 0); skb_put(skb, (u32 )len + ring->frameoffset); skb_pull(skb, ring->frameoffset); b43_rx(ring->dev, skb, (void const *)rxhdr); drop: ; return; drop_recycle_buffer: b43_poison_rx_buffer(ring, skb); sync_descbuffer_for_device(ring, dmaaddr, (size_t )ring->rx_buffersize); return; } } void b43_dma_handle_rx_overflow(struct b43_dmaring *ring ) { int current_slot ; int previous_slot ; int __ret_warn_on ; long tmp ; { __ret_warn_on = (int )ring->tx; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 1732); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); current_slot = (*((ring->ops)->get_current_rxslot))(ring); previous_slot = prev_slot(ring, current_slot); (*((ring->ops)->set_current_rxslot))(ring, previous_slot); return; } } void b43_dma_rx(struct b43_dmaring *ring ) { struct b43_dma_ops const *ops ; int slot ; int current_slot ; int used_slots ; int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; { ops = ring->ops; used_slots = 0; __ret_warn_on = (int )ring->tx; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 1753); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); current_slot = (*(ops->get_current_rxslot))(ring); __ret_warn_on___0 = current_slot < 0 || ring->nr_slots <= current_slot; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 1755); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); slot = ring->current_slot; goto ldv_54966; ldv_54965: dma_rx(ring, & slot); used_slots = used_slots + 1; update_max_used_slots(ring, used_slots); slot = next_slot(ring, slot); ldv_54966: ; if (slot != current_slot) { goto ldv_54965; } else { } __asm__ volatile ("sfence": : : "memory"); (*(ops->set_current_rxslot))(ring, slot); ring->current_slot = slot; return; } } static void b43_dma_tx_suspend_ring(struct b43_dmaring *ring ) { int __ret_warn_on ; long tmp ; { __ret_warn_on = ! ring->tx; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 1769); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); (*((ring->ops)->tx_suspend))(ring); return; } } static void b43_dma_tx_resume_ring(struct b43_dmaring *ring ) { int __ret_warn_on ; long tmp ; { __ret_warn_on = ! ring->tx; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/dma.c", 1775); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); (*((ring->ops)->tx_resume))(ring); return; } } void b43_dma_tx_suspend(struct b43_wldev *dev ) { { b43_power_saving_ctl_bits(dev, 4U); b43_dma_tx_suspend_ring(dev->__annonCompField107.dma.tx_ring_AC_BK); b43_dma_tx_suspend_ring(dev->__annonCompField107.dma.tx_ring_AC_BE); b43_dma_tx_suspend_ring(dev->__annonCompField107.dma.tx_ring_AC_VI); b43_dma_tx_suspend_ring(dev->__annonCompField107.dma.tx_ring_AC_VO); b43_dma_tx_suspend_ring(dev->__annonCompField107.dma.tx_ring_mcast); return; } } void b43_dma_tx_resume(struct b43_wldev *dev ) { { b43_dma_tx_resume_ring(dev->__annonCompField107.dma.tx_ring_mcast); b43_dma_tx_resume_ring(dev->__annonCompField107.dma.tx_ring_AC_VO); b43_dma_tx_resume_ring(dev->__annonCompField107.dma.tx_ring_AC_VI); b43_dma_tx_resume_ring(dev->__annonCompField107.dma.tx_ring_AC_BE); b43_dma_tx_resume_ring(dev->__annonCompField107.dma.tx_ring_AC_BK); b43_power_saving_ctl_bits(dev, 0U); return; } } static void direct_fifo_rx(struct b43_wldev *dev , enum b43_dmatype type , u16 mmio_base , bool enable ) { u32 ctl ; { if ((unsigned int )type == 64U) { ctl = b43_read32(dev, (int )((unsigned int )mmio_base + 32U)); ctl = ctl & 4294967039U; if ((int )enable) { ctl = ctl | 256U; } else { } b43_write32(dev, (int )((unsigned int )mmio_base + 32U), ctl); } else { ctl = b43_read32(dev, (int )((unsigned int )mmio_base + 16U)); ctl = ctl & 4294967039U; if ((int )enable) { ctl = ctl | 256U; } else { } b43_write32(dev, (int )((unsigned int )mmio_base + 16U), ctl); } return; } } void b43_dma_direct_fifo_rx(struct b43_wldev *dev , unsigned int engine_index , bool enable ) { enum b43_dmatype type ; u16 mmio_base ; u64 tmp ; { tmp = supported_dma_mask(dev); type = dma_mask_to_engine_type(tmp); mmio_base = b43_dmacontroller_base(type, (int )engine_index); direct_fifo_rx(dev, type, (int )mmio_base, (int )enable); return; } } void ldv_initialize_b43_dma_ops_24(void) { void *tmp ; { tmp = ldv_init_zalloc(128UL); dma64_ops_group0 = (struct b43_dmaring *)tmp; return; } } void ldv_initialize_b43_dma_ops_25(void) { void *tmp ; { tmp = ldv_init_zalloc(128UL); dma32_ops_group0 = (struct b43_dmaring *)tmp; return; } } void ldv_main_exported_25(void) { dma_addr_t ldvarg66 ; int ldvarg64 ; u16 ldvarg65 ; struct b43_dmadesc_meta **ldvarg62 ; void *tmp ; int ldvarg69 ; struct b43_dmadesc_generic *ldvarg68 ; void *tmp___0 ; int ldvarg71 ; int ldvarg67 ; int ldvarg70 ; int ldvarg63 ; int tmp___1 ; { tmp = ldv_init_zalloc(8UL); ldvarg62 = (struct b43_dmadesc_meta **)tmp; tmp___0 = ldv_init_zalloc(16UL); ldvarg68 = (struct b43_dmadesc_generic *)tmp___0; ldv_memset((void *)(& ldvarg66), 0, 8UL); ldv_memset((void *)(& ldvarg64), 0, 4UL); ldv_memset((void *)(& ldvarg65), 0, 2UL); ldv_memset((void *)(& ldvarg69), 0, 4UL); ldv_memset((void *)(& ldvarg71), 0, 4UL); ldv_memset((void *)(& ldvarg67), 0, 4UL); ldv_memset((void *)(& ldvarg70), 0, 4UL); ldv_memset((void *)(& ldvarg63), 0, 4UL); tmp___1 = __VERIFIER_nondet_int(); switch (tmp___1) { case 0: ; if (ldv_state_variable_25 == 1) { op32_tx_resume(dma32_ops_group0); ldv_state_variable_25 = 1; } else { } goto ldv_55018; case 1: ; if (ldv_state_variable_25 == 1) { op32_tx_suspend(dma32_ops_group0); ldv_state_variable_25 = 1; } else { } goto ldv_55018; case 2: ; if (ldv_state_variable_25 == 1) { op32_poke_tx(dma32_ops_group0, ldvarg71); ldv_state_variable_25 = 1; } else { } goto ldv_55018; case 3: ; if (ldv_state_variable_25 == 1) { op32_set_current_rxslot(dma32_ops_group0, ldvarg70); ldv_state_variable_25 = 1; } else { } goto ldv_55018; case 4: ; if (ldv_state_variable_25 == 1) { op32_get_current_rxslot(dma32_ops_group0); ldv_state_variable_25 = 1; } else { } goto ldv_55018; case 5: ; if (ldv_state_variable_25 == 1) { op32_fill_descriptor(dma32_ops_group0, ldvarg68, ldvarg66, (int )ldvarg65, ldvarg69, ldvarg64, ldvarg67); ldv_state_variable_25 = 1; } else { } goto ldv_55018; case 6: ; if (ldv_state_variable_25 == 1) { op32_idx2desc(dma32_ops_group0, ldvarg63, ldvarg62); ldv_state_variable_25 = 1; } else { } goto ldv_55018; default: ldv_stop(); } ldv_55018: ; return; } } void ldv_main_exported_24(void) { int ldvarg103 ; struct b43_dmadesc_generic *ldvarg107 ; void *tmp ; int ldvarg108 ; int ldvarg102 ; int ldvarg110 ; int ldvarg109 ; dma_addr_t ldvarg105 ; struct b43_dmadesc_meta **ldvarg101 ; void *tmp___0 ; int ldvarg106 ; u16 ldvarg104 ; int tmp___1 ; { tmp = ldv_init_zalloc(16UL); ldvarg107 = (struct b43_dmadesc_generic *)tmp; tmp___0 = ldv_init_zalloc(8UL); ldvarg101 = (struct b43_dmadesc_meta **)tmp___0; ldv_memset((void *)(& ldvarg103), 0, 4UL); ldv_memset((void *)(& ldvarg108), 0, 4UL); ldv_memset((void *)(& ldvarg102), 0, 4UL); ldv_memset((void *)(& ldvarg110), 0, 4UL); ldv_memset((void *)(& ldvarg109), 0, 4UL); ldv_memset((void *)(& ldvarg105), 0, 8UL); ldv_memset((void *)(& ldvarg106), 0, 4UL); ldv_memset((void *)(& ldvarg104), 0, 2UL); tmp___1 = __VERIFIER_nondet_int(); switch (tmp___1) { case 0: ; if (ldv_state_variable_24 == 1) { op64_tx_resume(dma64_ops_group0); ldv_state_variable_24 = 1; } else { } goto ldv_55040; case 1: ; if (ldv_state_variable_24 == 1) { op64_tx_suspend(dma64_ops_group0); ldv_state_variable_24 = 1; } else { } goto ldv_55040; case 2: ; if (ldv_state_variable_24 == 1) { op64_poke_tx(dma64_ops_group0, ldvarg110); ldv_state_variable_24 = 1; } else { } goto ldv_55040; case 3: ; if (ldv_state_variable_24 == 1) { op64_set_current_rxslot(dma64_ops_group0, ldvarg109); ldv_state_variable_24 = 1; } else { } goto ldv_55040; case 4: ; if (ldv_state_variable_24 == 1) { op64_get_current_rxslot(dma64_ops_group0); ldv_state_variable_24 = 1; } else { } goto ldv_55040; case 5: ; if (ldv_state_variable_24 == 1) { op64_fill_descriptor(dma64_ops_group0, ldvarg107, ldvarg105, (int )ldvarg104, ldvarg108, ldvarg103, ldvarg106); ldv_state_variable_24 = 1; } else { } goto ldv_55040; case 6: ; if (ldv_state_variable_24 == 1) { op64_idx2desc(dma64_ops_group0, ldvarg102, ldvarg101); ldv_state_variable_24 = 1; } else { } goto ldv_55040; default: ldv_stop(); } ldv_55040: ; return; } } bool ldv_queue_work_on_353(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_354(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_355(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_356(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_357(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_358(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; bool ldv_queue_work_on_369(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_371(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_370(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_373(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_372(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_374(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; __inline static void skb_reserve(struct sk_buff *skb , int len ) { { skb->data = skb->data + (unsigned long )len; skb->tail = skb->tail + (sk_buff_data_t )len; return; } } __inline static struct sk_buff *netdev_alloc_skb(struct net_device *dev , unsigned int length ) { struct sk_buff *tmp ; { tmp = __netdev_alloc_skb(dev, length, 32U); return (tmp); } } __inline static struct sk_buff *dev_alloc_skb(unsigned int length ) { struct sk_buff *tmp ; { tmp = netdev_alloc_skb((struct net_device *)0, length); return (tmp); } } __inline static void b43_block_read(struct b43_wldev *dev , void *buffer , size_t count , u16 offset , u8 reg_width ) { { (*((dev->dev)->block_read))(dev->dev, buffer, count, (int )offset, (int )reg_width); return; } } __inline static void b43_block_write(struct b43_wldev *dev , void const *buffer , size_t count , u16 offset , u8 reg_width ) { { (*((dev->dev)->block_write))(dev->dev, buffer, count, (int )offset, (int )reg_width); return; } } __inline static u16 b43_piotx_read16(struct b43_pio_txqueue *q , u16 offset ) { u16 tmp ; { tmp = b43_read16(q->dev, (int )q->mmio_base + (int )offset); return (tmp); } } __inline static u32 b43_piotx_read32(struct b43_pio_txqueue *q , u16 offset ) { u32 tmp ; { tmp = b43_read32(q->dev, (int )q->mmio_base + (int )offset); return (tmp); } } __inline static void b43_piotx_write16(struct b43_pio_txqueue *q , u16 offset , u16 value ) { { b43_write16(q->dev, (int )q->mmio_base + (int )offset, (int )value); return; } } __inline static void b43_piotx_write32(struct b43_pio_txqueue *q , u16 offset , u32 value ) { { b43_write32(q->dev, (int )q->mmio_base + (int )offset, value); return; } } __inline static u16 b43_piorx_read16(struct b43_pio_rxqueue *q , u16 offset ) { u16 tmp ; { tmp = b43_read16(q->dev, (int )q->mmio_base + (int )offset); return (tmp); } } __inline static u32 b43_piorx_read32(struct b43_pio_rxqueue *q , u16 offset ) { u32 tmp ; { tmp = b43_read32(q->dev, (int )q->mmio_base + (int )offset); return (tmp); } } __inline static void b43_piorx_write16(struct b43_pio_rxqueue *q , u16 offset , u16 value ) { { b43_write16(q->dev, (int )q->mmio_base + (int )offset, (int )value); return; } } __inline static void b43_piorx_write32(struct b43_pio_rxqueue *q , u16 offset , u32 value ) { { b43_write32(q->dev, (int )q->mmio_base + (int )offset, value); return; } } static u16 generate_cookie___0(struct b43_pio_txqueue *q , struct b43_pio_txpacket *pack ) { u16 cookie ; { cookie = ((unsigned int )((u16 )q->index) + 1U) << 12U; cookie = (int )((u16 )pack->index) | (int )cookie; return (cookie); } } static struct b43_pio_txqueue *parse_cookie___0(struct b43_wldev *dev , u16 cookie , struct b43_pio_txpacket **pack ) { struct b43_pio *pio ; struct b43_pio_txqueue *q ; unsigned int pack_index ; int __ret_warn_on ; long tmp ; long tmp___0 ; int __ret_warn_on___0 ; long tmp___1 ; long tmp___2 ; { pio = & dev->__annonCompField107.pio; q = (struct b43_pio_txqueue *)0; switch ((int )cookie & 61440) { case 4096: q = pio->tx_queue_AC_BK; goto ldv_54361; case 8192: q = pio->tx_queue_AC_BE; goto ldv_54361; case 12288: q = pio->tx_queue_AC_VI; goto ldv_54361; case 16384: q = pio->tx_queue_AC_VO; goto ldv_54361; case 20480: q = pio->tx_queue_mcast; goto ldv_54361; } ldv_54361: __ret_warn_on = (unsigned long )q == (unsigned long )((struct b43_pio_txqueue *)0); tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/pio.c", 82); } else { } tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { return ((struct b43_pio_txqueue *)0); } else { } pack_index = (unsigned int )cookie & 4095U; __ret_warn_on___0 = pack_index > 31U; tmp___1 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/pio.c", 85); } else { } tmp___2 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___2 != 0L) { return ((struct b43_pio_txqueue *)0); } else { } *pack = (struct b43_pio_txpacket *)(& q->packets) + (unsigned long )pack_index; return (q); } } static u16 index_to_pioqueue_base(struct b43_wldev *dev , unsigned int index ) { u16 bases[8U] ; u16 bases_rev11[6U] ; int __ret_warn_on ; long tmp ; int __ret_warn_on___0 ; long tmp___0 ; { bases[0] = 768U; bases[1] = 784U; bases[2] = 800U; bases[3] = 816U; bases[4] = 832U; bases[5] = 848U; bases[6] = 864U; bases[7] = 880U; bases_rev11[0] = 512U; bases_rev11[1] = 576U; bases_rev11[2] = 640U; bases_rev11[3] = 704U; bases_rev11[4] = 768U; bases_rev11[5] = 832U; if ((unsigned int )(dev->dev)->core_rev > 10U) { __ret_warn_on = index > 5U; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/pio.c", 115); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return (bases_rev11[index]); } else { } __ret_warn_on___0 = index > 7U; tmp___0 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/pio.c", 118); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); return (bases[index]); } } static u16 pio_txqueue_offset(struct b43_wldev *dev ) { { if ((unsigned int )(dev->dev)->core_rev > 10U) { return (24U); } else { } return (0U); } } static u16 pio_rxqueue_offset(struct b43_wldev *dev ) { { if ((unsigned int )(dev->dev)->core_rev > 10U) { return (56U); } else { } return (8U); } } static struct b43_pio_txqueue *b43_setup_pioqueue_tx(struct b43_wldev *dev , unsigned int index ) { struct b43_pio_txqueue *q ; struct b43_pio_txpacket *p ; unsigned int i ; void *tmp ; u16 tmp___0 ; u16 tmp___1 ; { tmp = kzalloc(1328UL, 208U); q = (struct b43_pio_txqueue *)tmp; if ((unsigned long )q == (unsigned long )((struct b43_pio_txqueue *)0)) { return ((struct b43_pio_txqueue *)0); } else { } q->dev = dev; q->rev = (dev->dev)->core_rev; tmp___0 = index_to_pioqueue_base(dev, index); tmp___1 = pio_txqueue_offset(dev); q->mmio_base = (int )tmp___0 + (int )tmp___1; q->index = (u8 )index; q->free_packet_slots = 32U; if ((unsigned int )q->rev > 7U) { q->buffer_size = 1920U; } else { q->buffer_size = b43_piotx_read16(q, 4); q->buffer_size = (unsigned int )q->buffer_size + 65456U; } INIT_LIST_HEAD(& q->packets_list); i = 0U; goto ldv_54402; ldv_54401: p = (struct b43_pio_txpacket *)(& q->packets) + (unsigned long )i; INIT_LIST_HEAD(& p->list); p->index = (u8 )i; p->queue = q; list_add(& p->list, & q->packets_list); i = i + 1U; ldv_54402: ; if (i <= 31U) { goto ldv_54401; } else { } return (q); } } static struct b43_pio_rxqueue *b43_setup_pioqueue_rx(struct b43_wldev *dev , unsigned int index ) { struct b43_pio_rxqueue *q ; void *tmp ; u16 tmp___0 ; u16 tmp___1 ; { tmp = kzalloc(16UL, 208U); q = (struct b43_pio_rxqueue *)tmp; if ((unsigned long )q == (unsigned long )((struct b43_pio_rxqueue *)0)) { return ((struct b43_pio_rxqueue *)0); } else { } q->dev = dev; q->rev = (dev->dev)->core_rev; tmp___0 = index_to_pioqueue_base(dev, index); tmp___1 = pio_rxqueue_offset(dev); q->mmio_base = (int )tmp___0 + (int )tmp___1; b43_dma_direct_fifo_rx(dev, index, 1); return (q); } } static void b43_pio_cancel_tx_packets(struct b43_pio_txqueue *q ) { struct b43_pio_txpacket *pack ; unsigned int i ; { i = 0U; goto ldv_54417; ldv_54416: pack = (struct b43_pio_txpacket *)(& q->packets) + (unsigned long )i; if ((unsigned long )pack->skb != (unsigned long )((struct sk_buff *)0)) { ieee80211_free_txskb(((q->dev)->wl)->hw, pack->skb); pack->skb = (struct sk_buff *)0; } else { } i = i + 1U; ldv_54417: ; if (i <= 31U) { goto ldv_54416; } else { } return; } } static void b43_destroy_pioqueue_tx(struct b43_pio_txqueue *q , char const *name ) { { if ((unsigned long )q == (unsigned long )((struct b43_pio_txqueue *)0)) { return; } else { } b43_pio_cancel_tx_packets(q); kfree((void const *)q); return; } } static void b43_destroy_pioqueue_rx(struct b43_pio_rxqueue *q , char const *name ) { { if ((unsigned long )q == (unsigned long )((struct b43_pio_rxqueue *)0)) { return; } else { } kfree((void const *)q); return; } } void b43_pio_free(struct b43_wldev *dev ) { struct b43_pio *pio ; bool tmp ; int tmp___0 ; { tmp = b43_using_pio_transfers(dev); if (tmp) { tmp___0 = 0; } else { tmp___0 = 1; } if (tmp___0) { return; } else { } pio = & dev->__annonCompField107.pio; b43_destroy_pioqueue_rx(pio->rx_queue, "rx_queue"); pio->rx_queue = (struct b43_pio_rxqueue *)0; b43_destroy_pioqueue_tx(pio->tx_queue_mcast, "tx_queue_mcast"); pio->tx_queue_mcast = (struct b43_pio_txqueue *)0; b43_destroy_pioqueue_tx(pio->tx_queue_AC_VO, "tx_queue_AC_VO"); pio->tx_queue_AC_VO = (struct b43_pio_txqueue *)0; b43_destroy_pioqueue_tx(pio->tx_queue_AC_VI, "tx_queue_AC_VI"); pio->tx_queue_AC_VI = (struct b43_pio_txqueue *)0; b43_destroy_pioqueue_tx(pio->tx_queue_AC_BE, "tx_queue_AC_BE"); pio->tx_queue_AC_BE = (struct b43_pio_txqueue *)0; b43_destroy_pioqueue_tx(pio->tx_queue_AC_BK, "tx_queue_AC_BK"); pio->tx_queue_AC_BK = (struct b43_pio_txqueue *)0; return; } } int b43_pio_init(struct b43_wldev *dev ) { struct b43_pio *pio ; int err ; u32 tmp ; { pio = & dev->__annonCompField107.pio; err = -12; tmp = b43_read32(dev, 288); b43_write32(dev, 288, tmp & 4294901759U); b43_shm_write16(dev, 1, 52, 0); pio->tx_queue_AC_BK = b43_setup_pioqueue_tx(dev, 0U); if ((unsigned long )pio->tx_queue_AC_BK == (unsigned long )((struct b43_pio_txqueue *)0)) { goto out; } else { } pio->tx_queue_AC_BE = b43_setup_pioqueue_tx(dev, 1U); if ((unsigned long )pio->tx_queue_AC_BE == (unsigned long )((struct b43_pio_txqueue *)0)) { goto err_destroy_bk; } else { } pio->tx_queue_AC_VI = b43_setup_pioqueue_tx(dev, 2U); if ((unsigned long )pio->tx_queue_AC_VI == (unsigned long )((struct b43_pio_txqueue *)0)) { goto err_destroy_be; } else { } pio->tx_queue_AC_VO = b43_setup_pioqueue_tx(dev, 3U); if ((unsigned long )pio->tx_queue_AC_VO == (unsigned long )((struct b43_pio_txqueue *)0)) { goto err_destroy_vi; } else { } pio->tx_queue_mcast = b43_setup_pioqueue_tx(dev, 4U); if ((unsigned long )pio->tx_queue_mcast == (unsigned long )((struct b43_pio_txqueue *)0)) { goto err_destroy_vo; } else { } pio->rx_queue = b43_setup_pioqueue_rx(dev, 0U); if ((unsigned long )pio->rx_queue == (unsigned long )((struct b43_pio_rxqueue *)0)) { goto err_destroy_mcast; } else { } b43dbg(dev->wl, "PIO initialized\n"); err = 0; out: ; return (err); err_destroy_mcast: b43_destroy_pioqueue_tx(pio->tx_queue_mcast, "tx_queue_mcast"); pio->tx_queue_mcast = (struct b43_pio_txqueue *)0; err_destroy_vo: b43_destroy_pioqueue_tx(pio->tx_queue_AC_VO, "tx_queue_AC_VO"); pio->tx_queue_AC_VO = (struct b43_pio_txqueue *)0; err_destroy_vi: b43_destroy_pioqueue_tx(pio->tx_queue_AC_VI, "tx_queue_AC_VI"); pio->tx_queue_AC_VI = (struct b43_pio_txqueue *)0; err_destroy_be: b43_destroy_pioqueue_tx(pio->tx_queue_AC_BE, "tx_queue_AC_BE"); pio->tx_queue_AC_BE = (struct b43_pio_txqueue *)0; err_destroy_bk: b43_destroy_pioqueue_tx(pio->tx_queue_AC_BK, "tx_queue_AC_BK"); pio->tx_queue_AC_BK = (struct b43_pio_txqueue *)0; return (err); } } static struct b43_pio_txqueue *select_queue_by_priority(struct b43_wldev *dev , u8 queue_prio ) { struct b43_pio_txqueue *q ; int __ret_warn_on ; long tmp ; { if ((int )dev->qos_enabled) { switch ((int )queue_prio) { default: __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/pio.c", 309); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); case 0: q = dev->__annonCompField107.pio.tx_queue_AC_VO; goto ldv_54451; case 1: q = dev->__annonCompField107.pio.tx_queue_AC_VI; goto ldv_54451; case 2: q = dev->__annonCompField107.pio.tx_queue_AC_BE; goto ldv_54451; case 3: q = dev->__annonCompField107.pio.tx_queue_AC_BK; goto ldv_54451; } ldv_54451: ; } else { q = dev->__annonCompField107.pio.tx_queue_AC_BE; } return (q); } } static u16 tx_write_2byte_queue(struct b43_pio_txqueue *q , u16 ctl , void const *_data___0 , unsigned int data_len ) { struct b43_wldev *dev ; struct b43_wl *wl ; u8 const *data ; u8 *tail ; { dev = q->dev; wl = dev->wl; data = (u8 const *)_data___0; ctl = (u16 )((unsigned int )ctl | 3U); b43_piotx_write16(q, 0, (int )ctl); b43_block_write(dev, (void const *)data, (size_t )data_len & 4294967294UL, (int )((unsigned int )q->mmio_base + 2U), 2); if ((int )data_len & 1) { tail = (u8 *)(& wl->pio_tailspace); ctl = (unsigned int )ctl & 65533U; b43_piotx_write16(q, 0, (int )ctl); *tail = *(data + (unsigned long )(data_len - 1U)); *(tail + 1UL) = 0U; b43_block_write(dev, (void const *)tail, 2UL, (int )((unsigned int )q->mmio_base + 2U), 2); } else { } return (ctl); } } static void pio_tx_frame_2byte_queue(struct b43_pio_txpacket *pack , u8 const *hdr , unsigned int hdrlen ) { struct b43_pio_txqueue *q ; char const *frame ; unsigned int frame_len ; u16 ctl ; { q = pack->queue; frame = (char const *)(pack->skb)->data; frame_len = (pack->skb)->len; ctl = b43_piotx_read16(q, 0); ctl = (u16 )((unsigned int )ctl | 8U); ctl = (unsigned int )ctl & 65531U; ctl = tx_write_2byte_queue(q, (int )ctl, (void const *)hdr, hdrlen); ctl = tx_write_2byte_queue(q, (int )ctl, (void const *)frame, frame_len); ctl = (u16 )((unsigned int )ctl | 4U); b43_piotx_write16(q, 0, (int )ctl); return; } } static u32 tx_write_4byte_queue(struct b43_pio_txqueue *q , u32 ctl , void const *_data___0 , unsigned int data_len ) { struct b43_wldev *dev ; struct b43_wl *wl ; u8 const *data ; u8 *tail ; { dev = q->dev; wl = dev->wl; data = (u8 const *)_data___0; ctl = ctl | 15U; b43_piotx_write32(q, 0, ctl); b43_block_write(dev, (void const *)data, (size_t )data_len & 4294967292UL, (int )((unsigned int )q->mmio_base + 4U), 4); if ((data_len & 3U) != 0U) { tail = (u8 *)(& wl->pio_tailspace); memset((void *)tail, 0, 4UL); ctl = ctl & 4294967281U; switch (data_len & 3U) { case 3U: ctl = ctl | 6U; *tail = *(data + (unsigned long )(data_len - 3U)); *(tail + 1UL) = *(data + (unsigned long )(data_len - 2U)); *(tail + 2UL) = *(data + (unsigned long )(data_len - 1U)); goto ldv_54485; case 2U: ctl = ctl | 2U; *tail = *(data + (unsigned long )(data_len - 2U)); *(tail + 1UL) = *(data + (unsigned long )(data_len - 1U)); goto ldv_54485; case 1U: *tail = *(data + (unsigned long )(data_len - 1U)); goto ldv_54485; } ldv_54485: b43_piotx_write32(q, 0, ctl); b43_block_write(dev, (void const *)tail, 4UL, (int )((unsigned int )q->mmio_base + 4U), 4); } else { } return (ctl); } } static void pio_tx_frame_4byte_queue(struct b43_pio_txpacket *pack , u8 const *hdr , unsigned int hdrlen ) { struct b43_pio_txqueue *q ; char const *frame ; unsigned int frame_len ; u32 ctl ; { q = pack->queue; frame = (char const *)(pack->skb)->data; frame_len = (pack->skb)->len; ctl = b43_piotx_read32(q, 0); ctl = ctl | 128U; ctl = ctl & 4294967279U; ctl = tx_write_4byte_queue(q, ctl, (void const *)hdr, hdrlen); ctl = tx_write_4byte_queue(q, ctl, (void const *)frame, frame_len); ctl = ctl | 16U; b43_piotx_write32(q, 0, ctl); return; } } static int pio_tx_frame(struct b43_pio_txqueue *q , struct sk_buff *skb ) { struct b43_wldev *dev ; struct b43_wl *wl ; struct b43_pio_txpacket *pack ; u16 cookie ; int err ; unsigned int hdrlen ; struct ieee80211_tx_info *info ; struct ieee80211_tx_info *tmp ; struct b43_txhdr *txhdr ; int __ret_warn_on ; int tmp___0 ; long tmp___1 ; struct list_head const *__mptr ; size_t tmp___2 ; int __ret_warn_on___0 ; long tmp___3 ; int __y ; { dev = q->dev; wl = dev->wl; tmp = IEEE80211_SKB_CB(skb); info = tmp; txhdr = (struct b43_txhdr *)(& wl->pio_scratchspace); tmp___0 = list_empty((struct list_head const *)(& q->packets_list)); __ret_warn_on = tmp___0 != 0; tmp___1 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/pio.c", 465); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); __mptr = (struct list_head const *)q->packets_list.next; pack = (struct b43_pio_txpacket *)__mptr + 0xffffffffffffffe8UL; cookie = generate_cookie___0(q, pack); tmp___2 = b43_txhdr_size(dev); hdrlen = (unsigned int )tmp___2; __ret_warn_on___0 = hdrlen > 118U; tmp___3 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___3 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/pio.c", 472); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); err = b43_generate_txhdr(dev, (u8 *)txhdr, skb, info, (int )cookie); if (err != 0) { return (err); } else { } if ((info->flags & 32U) != 0U) { b43_shm_write16(dev, 1, 168, (int )cookie); } else { } pack->skb = skb; if ((unsigned int )q->rev > 7U) { pio_tx_frame_4byte_queue(pack, (u8 const *)txhdr, hdrlen); } else { pio_tx_frame_2byte_queue(pack, (u8 const *)txhdr, hdrlen); } list_del(& pack->list); __y = 4; q->buffer_used = (int )q->buffer_used + (int )((u16 )(((((skb->len + hdrlen) + (unsigned int )__y) + 4294967295U) / (unsigned int )__y) * (unsigned int )__y)); q->free_packet_slots = (unsigned int )q->free_packet_slots + 65535U; return (0); } } int b43_pio_tx(struct b43_wldev *dev , struct sk_buff *skb ) { struct b43_pio_txqueue *q ; struct ieee80211_hdr *hdr ; unsigned int hdrlen ; unsigned int total_len ; int err ; struct ieee80211_tx_info *info ; struct ieee80211_tx_info *tmp ; u16 tmp___0 ; size_t tmp___1 ; int __y ; long tmp___2 ; long tmp___3 ; int __ret_warn_on ; long tmp___4 ; u16 tmp___5 ; u16 tmp___6 ; long tmp___7 ; long tmp___8 ; int __ret_warn_on___0 ; long tmp___9 ; u16 tmp___10 ; int __y___0 ; { err = 0; tmp = IEEE80211_SKB_CB(skb); info = tmp; hdr = (struct ieee80211_hdr *)skb->data; if ((info->flags & 32U) != 0U) { q = dev->__annonCompField107.pio.tx_queue_mcast; hdr->frame_control = (__le16 )((unsigned int )hdr->frame_control | 8192U); } else { tmp___0 = skb_get_queue_mapping((struct sk_buff const *)skb); q = select_queue_by_priority(dev, (int )((u8 )tmp___0)); } tmp___1 = b43_txhdr_size(dev); hdrlen = (unsigned int )tmp___1; __y = 4; total_len = ((((skb->len + hdrlen) + (unsigned int )__y) + 4294967295U) / (unsigned int )__y) * (unsigned int )__y; tmp___2 = ldv__builtin_expect((unsigned int )q->buffer_size < total_len, 0L); if (tmp___2 != 0L) { err = -105; b43dbg(dev->wl, "PIO: TX packet longer than queue.\n"); goto out; } else { } tmp___3 = ldv__builtin_expect((unsigned int )q->free_packet_slots == 0U, 0L); if (tmp___3 != 0L) { err = -105; b43warn(dev->wl, "PIO: TX packet overflow.\n"); goto out; } else { } __ret_warn_on = (int )q->buffer_used > (int )q->buffer_size; tmp___4 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___4 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/pio.c", 536); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); if ((unsigned int )((int )q->buffer_size - (int )q->buffer_used) < total_len) { err = -16; tmp___5 = skb_get_queue_mapping((struct sk_buff const *)skb); ieee80211_stop_queue((dev->wl)->hw, (int )tmp___5); q->stopped = 1; goto out; } else { } tmp___6 = skb_get_queue_mapping((struct sk_buff const *)skb); q->queue_prio = (u8 )tmp___6; err = pio_tx_frame(q, skb); tmp___7 = ldv__builtin_expect(err == -126, 0L); if (tmp___7 != 0L) { ieee80211_free_txskb((dev->wl)->hw, skb); err = 0; goto out; } else { } tmp___8 = ldv__builtin_expect(err != 0, 0L); if (tmp___8 != 0L) { b43err(dev->wl, "PIO transmission failure\n"); goto out; } else { } __ret_warn_on___0 = (int )q->buffer_used > (int )q->buffer_size; tmp___9 = ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); if (tmp___9 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/pio.c", 564); } else { } ldv__builtin_expect(__ret_warn_on___0 != 0, 0L); __y___0 = 4; if ((int )q->buffer_size - (int )q->buffer_used < ((__y___0 + 9) / __y___0) * __y___0 || (unsigned int )q->free_packet_slots == 0U) { tmp___10 = skb_get_queue_mapping((struct sk_buff const *)skb); ieee80211_stop_queue((dev->wl)->hw, (int )tmp___10); q->stopped = 1; } else { } out: ; return (err); } } void b43_pio_handle_txstatus(struct b43_wldev *dev , struct b43_txstatus const *status ) { struct b43_pio_txqueue *q ; struct b43_pio_txpacket *pack ; unsigned int total_len ; struct ieee80211_tx_info *info ; long tmp ; int __ret_warn_on ; long tmp___0 ; size_t tmp___1 ; int __y ; { pack = (struct b43_pio_txpacket *)0; q = parse_cookie___0(dev, (int )status->cookie, & pack); tmp = ldv__builtin_expect((unsigned long )q == (unsigned long )((struct b43_pio_txqueue *)0), 0L); if (tmp != 0L) { return; } else { } __ret_warn_on = (unsigned long )pack == (unsigned long )((struct b43_pio_txpacket *)0); tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/pio.c", 587); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); info = IEEE80211_SKB_CB(pack->skb); b43_fill_txstatus_report(dev, info, status); tmp___1 = b43_txhdr_size(dev); total_len = (pack->skb)->len + (unsigned int )tmp___1; __y = 4; total_len = ((((unsigned int )__y + total_len) + 4294967295U) / (unsigned int )__y) * (unsigned int )__y; q->buffer_used = (int )q->buffer_used - (int )((u16 )total_len); q->free_packet_slots = (unsigned int )q->free_packet_slots + 1U; ieee80211_tx_status((dev->wl)->hw, pack->skb); pack->skb = (struct sk_buff *)0; list_add(& pack->list, & q->packets_list); if ((int )q->stopped) { ieee80211_wake_queue((dev->wl)->hw, (int )q->queue_prio); q->stopped = 0; } else { } return; } } static bool pio_rx_frame(struct b43_pio_rxqueue *q ) { struct b43_wldev *dev ; struct b43_wl *wl ; u16 len ; u32 macstat ; unsigned int i ; unsigned int padding ; struct sk_buff *skb ; char const *err_msg ; struct b43_rxhdr_fw4 *rxhdr ; size_t rxhdr_size ; u32 ctl ; u16 ctl___0 ; long tmp ; long tmp___0 ; long tmp___1 ; u8 *tail ; u8 *tail___0 ; { dev = q->dev; wl = dev->wl; macstat = 0U; err_msg = (char const *)0; rxhdr = (struct b43_rxhdr_fw4 *)(& wl->pio_scratchspace); rxhdr_size = 24UL; switch ((unsigned int )dev->fw.hdr_format) { case 1U: ; case 2U: rxhdr_size = rxhdr_size - 4UL; goto ldv_54563; case 0U: ; goto ldv_54563; } ldv_54563: memset((void *)rxhdr, 0, rxhdr_size); if ((unsigned int )q->rev > 7U) { ctl = b43_piorx_read32(q, 0); if ((ctl & 1U) == 0U) { return (0); } else { } b43_piorx_write32(q, 0, 1U); i = 0U; goto ldv_54568; ldv_54567: ctl = b43_piorx_read32(q, 0); if ((ctl & 2U) != 0U) { goto data_ready; } else { } __const_udelay(42950UL); i = i + 1U; ldv_54568: ; if (i <= 9U) { goto ldv_54567; } else { } } else { ctl___0 = b43_piorx_read16(q, 0); if (((int )ctl___0 & 1) == 0) { return (0); } else { } b43_piorx_write16(q, 0, 1); i = 0U; goto ldv_54572; ldv_54571: ctl___0 = b43_piorx_read16(q, 0); if (((int )ctl___0 & 2) != 0) { goto data_ready; } else { } __const_udelay(42950UL); i = i + 1U; ldv_54572: ; if (i <= 9U) { goto ldv_54571; } else { } } b43dbg((q->dev)->wl, "PIO RX timed out\n"); return (1); data_ready: ; if ((unsigned int )q->rev > 7U) { b43_block_read(dev, (void *)rxhdr, rxhdr_size, (int )((unsigned int )q->mmio_base + 4U), 4); } else { b43_block_read(dev, (void *)rxhdr, rxhdr_size, (int )((unsigned int )q->mmio_base + 2U), 2); } len = rxhdr->frame_len; tmp = ldv__builtin_expect((unsigned int )len > 1792U, 0L); if (tmp != 0L) { err_msg = "len > 0x700"; goto rx_error; } else { } tmp___0 = ldv__builtin_expect((unsigned int )len == 0U, 0L); if (tmp___0 != 0L) { err_msg = "len == 0"; goto rx_error; } else { } switch ((unsigned int )dev->fw.hdr_format) { case 0U: macstat = rxhdr->__annonCompField119.format_598.mac_status; goto ldv_54576; case 1U: ; case 2U: macstat = rxhdr->__annonCompField119.format_351.mac_status; goto ldv_54576; } ldv_54576: ; if ((int )macstat & 1) { if ((((q->dev)->wl)->filter_flags & 4U) == 0U) { err_msg = "Frame FCS error"; goto rx_error; } else { } } else { } padding = (macstat & 4U) != 0U ? 2U : 0U; skb = dev_alloc_skb(((unsigned int )len + padding) + 2U); tmp___1 = ldv__builtin_expect((unsigned long )skb == (unsigned long )((struct sk_buff *)0), 0L); if (tmp___1 != 0L) { err_msg = "Out of memory"; goto rx_error; } else { } skb_reserve(skb, 2); skb_put(skb, (unsigned int )len + padding); if ((unsigned int )q->rev > 7U) { b43_block_read(dev, (void *)skb->data + (unsigned long )padding, (size_t )((int )len & -4), (int )((unsigned int )q->mmio_base + 4U), 4); if (((int )len & 3) != 0) { tail = (u8 *)(& wl->pio_tailspace); b43_block_read(dev, (void *)tail, 4UL, (int )((unsigned int )q->mmio_base + 4U), 4); switch ((int )len & 3) { case 3: *(skb->data + (unsigned long )(((unsigned int )len + padding) - 3U)) = *tail; *(skb->data + (unsigned long )(((unsigned int )len + padding) - 2U)) = *(tail + 1UL); *(skb->data + (unsigned long )(((unsigned int )len + padding) - 1U)) = *(tail + 2UL); goto ldv_54581; case 2: *(skb->data + (unsigned long )(((unsigned int )len + padding) - 2U)) = *tail; *(skb->data + (unsigned long )(((unsigned int )len + padding) - 1U)) = *(tail + 1UL); goto ldv_54581; case 1: *(skb->data + (unsigned long )(((unsigned int )len + padding) - 1U)) = *tail; goto ldv_54581; } ldv_54581: ; } else { } } else { b43_block_read(dev, (void *)skb->data + (unsigned long )padding, (size_t )((int )len & -2), (int )((unsigned int )q->mmio_base + 2U), 2); if ((int )len & 1) { tail___0 = (u8 *)(& wl->pio_tailspace); b43_block_read(dev, (void *)tail___0, 2UL, (int )((unsigned int )q->mmio_base + 2U), 2); *(skb->data + (unsigned long )(((unsigned int )len + padding) - 1U)) = *tail___0; } else { } } b43_rx(q->dev, skb, (void const *)rxhdr); return (1); rx_error: ; if ((unsigned long )err_msg != (unsigned long )((char const *)0)) { b43dbg((q->dev)->wl, "PIO RX error: %s\n", err_msg); } else { } if ((unsigned int )q->rev > 7U) { b43_piorx_write32(q, 0, 2U); } else { b43_piorx_write16(q, 0, 2); } return (1); } } void b43_pio_rx(struct b43_pio_rxqueue *q ) { unsigned int count ; bool stop ; bool tmp ; int tmp___0 ; bool __warned ; int __ret_warn_once ; int __ret_warn_on ; long tmp___1 ; long tmp___2 ; long tmp___3 ; long tmp___4 ; { count = 0U; ldv_54597: tmp = pio_rx_frame(q); if ((int )tmp != 0) { tmp___0 = 0; } else { tmp___0 = 1; } stop = (bool )tmp___0; if ((int )stop) { goto ldv_54590; } else { } ___might_sleep("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/pio.c", 784, 0); _cond_resched(); count = count + 1U; __ret_warn_once = count > 10000U; tmp___3 = ldv__builtin_expect(__ret_warn_once != 0, 0L); if (tmp___3 != 0L) { __ret_warn_on = ! __warned; tmp___1 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___1 != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/pio.c", 785); } else { } tmp___2 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___2 != 0L) { __warned = 1; } else { } } else { } tmp___4 = ldv__builtin_expect(__ret_warn_once != 0, 0L); if (tmp___4 != 0L) { goto ldv_54590; } else { } goto ldv_54597; ldv_54590: ; return; } } static void b43_pio_tx_suspend_queue(struct b43_pio_txqueue *q ) { u32 tmp ; u16 tmp___0 ; { if ((unsigned int )q->rev > 7U) { tmp = b43_piotx_read32(q, 0); b43_piotx_write32(q, 0, tmp | 256U); } else { tmp___0 = b43_piotx_read16(q, 0); b43_piotx_write16(q, 0, (int )((unsigned int )tmp___0 | 128U)); } return; } } static void b43_pio_tx_resume_queue(struct b43_pio_txqueue *q ) { u32 tmp ; u16 tmp___0 ; { if ((unsigned int )q->rev > 7U) { tmp = b43_piotx_read32(q, 0); b43_piotx_write32(q, 0, tmp & 4294967039U); } else { tmp___0 = b43_piotx_read16(q, 0); b43_piotx_write16(q, 0, (int )tmp___0 & 65407); } return; } } void b43_pio_tx_suspend(struct b43_wldev *dev ) { { b43_power_saving_ctl_bits(dev, 4U); b43_pio_tx_suspend_queue(dev->__annonCompField107.pio.tx_queue_AC_BK); b43_pio_tx_suspend_queue(dev->__annonCompField107.pio.tx_queue_AC_BE); b43_pio_tx_suspend_queue(dev->__annonCompField107.pio.tx_queue_AC_VI); b43_pio_tx_suspend_queue(dev->__annonCompField107.pio.tx_queue_AC_VO); b43_pio_tx_suspend_queue(dev->__annonCompField107.pio.tx_queue_mcast); return; } } void b43_pio_tx_resume(struct b43_wldev *dev ) { { b43_pio_tx_resume_queue(dev->__annonCompField107.pio.tx_queue_mcast); b43_pio_tx_resume_queue(dev->__annonCompField107.pio.tx_queue_AC_VO); b43_pio_tx_resume_queue(dev->__annonCompField107.pio.tx_queue_AC_VI); b43_pio_tx_resume_queue(dev->__annonCompField107.pio.tx_queue_AC_BE); b43_pio_tx_resume_queue(dev->__annonCompField107.pio.tx_queue_AC_BK); b43_power_saving_ctl_bits(dev, 0U); return; } } bool ldv_queue_work_on_369(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_370(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_371(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_372(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_373(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_374(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; bool ldv_queue_work_on_385(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_387(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_386(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_389(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_388(struct workqueue_struct *ldv_func_arg1 ) ; int ldv_request_threaded_irq_390(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; extern void wiphy_rfkill_set_hw_state(struct wiphy * , bool ) ; bool b43_is_hw_radio_enabled(struct b43_wldev *dev ) ; bool b43_is_hw_radio_enabled(struct b43_wldev *dev ) { u32 tmp ; { tmp = b43_read32(dev, 344); return ((tmp & 65536U) == 0U); } } void b43_rfkill_poll(struct ieee80211_hw *hw ) { struct b43_wl *wl ; struct b43_wl *tmp ; struct b43_wldev *dev ; bool enabled ; bool brought_up ; int tmp___0 ; int tmp___1 ; long tmp___2 ; long tmp___3 ; { tmp = hw_to_b43_wl(hw); wl = tmp; dev = wl->current_dev; brought_up = 0; mutex_lock_nested(& wl->mutex, 0U); tmp___1 = atomic_read((atomic_t const *)(& dev->__init_status)); tmp___2 = ldv__builtin_expect(tmp___1 <= 0, 0L); if (tmp___2 != 0L) { tmp___0 = b43_bus_powerup(dev, 0); if (tmp___0 != 0) { mutex_unlock(& wl->mutex); return; } else { } b43_device_enable(dev, 0U); brought_up = 1; } else { } enabled = b43_is_hw_radio_enabled(dev); tmp___3 = ldv__builtin_expect((int )dev->radio_hw_enable != (int )enabled, 0L); if (tmp___3 != 0L) { dev->radio_hw_enable = enabled; b43info(wl, "Radio hardware status changed to %s\n", (int )enabled ? (char *)"ENABLED" : (char *)"DISABLED"); wiphy_rfkill_set_hw_state(hw->wiphy, (int )((bool )(! ((int )enabled != 0)))); if ((int )dev->phy.radio_on != (int )enabled) { b43_software_rfkill(dev, (int )((bool )(! ((int )enabled != 0)))); } else { } } else { } if ((int )brought_up) { b43_device_disable(dev, 0U); b43_bus_may_powerdown(dev); } else { } mutex_unlock(& wl->mutex); return; } } bool ldv_queue_work_on_385(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_386(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_387(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_388(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_389(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_390(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; bool ldv_queue_work_on_401(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_403(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_402(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_405(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_404(struct workqueue_struct *ldv_func_arg1 ) ; void b43_ppr_add(struct b43_wldev *dev , struct b43_ppr *ppr , int diff ) ; int ldv_request_threaded_irq_406(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; void b43_ppr_clear(struct b43_wldev *dev , struct b43_ppr *ppr ) { { memset((void *)ppr, 0, 52UL); return; } } void b43_ppr_add(struct b43_wldev *dev , struct b43_ppr *ppr , int diff ) { int i ; u8 *rate ; int __min1 ; int __max1 ; int __max2 ; int __min2 ; { i = 0; rate = (u8 *)(& ppr->__annonCompField108.__all_rates) + (unsigned long )i; goto ldv_53954; ldv_53953: __max1 = (int )*rate + diff; __max2 = 0; __min1 = __max1 > __max2 ? __max1 : __max2; __min2 = 127; *rate = (u8 )(__min1 < __min2 ? __min1 : __min2); i = i + 1; rate = rate + 1; ldv_53954: ; if (i <= 51) { goto ldv_53953; } else { } return; } } void b43_ppr_apply_max(struct b43_wldev *dev , struct b43_ppr *ppr , u8 max ) { int i ; u8 *rate ; u8 _min1 ; u8 _min2 ; { i = 0; rate = (u8 *)(& ppr->__annonCompField108.__all_rates) + (unsigned long )i; goto ldv_53967; ldv_53966: _min1 = *rate; _min2 = max; *rate = (u8 )((int )_min1 < (int )_min2 ? _min1 : _min2); i = i + 1; rate = rate + 1; ldv_53967: ; if (i <= 51) { goto ldv_53966; } else { } return; } } void b43_ppr_apply_min(struct b43_wldev *dev , struct b43_ppr *ppr , u8 min ) { int i ; u8 *rate ; u8 _max1 ; u8 _max2 ; { i = 0; rate = (u8 *)(& ppr->__annonCompField108.__all_rates) + (unsigned long )i; goto ldv_53980; ldv_53979: _max1 = *rate; _max2 = min; *rate = (u8 )((int )_max1 > (int )_max2 ? _max1 : _max2); i = i + 1; rate = rate + 1; ldv_53980: ; if (i <= 51) { goto ldv_53979; } else { } return; } } u8 b43_ppr_get_max(struct b43_wldev *dev , struct b43_ppr *ppr ) { u8 res ; int i ; u8 *rate ; u8 _max1 ; u8 _max2 ; { res = 0U; i = 0; rate = (u8 *)(& ppr->__annonCompField108.__all_rates) + (unsigned long )i; goto ldv_53993; ldv_53992: _max1 = *rate; _max2 = res; res = (u8 )((int )_max1 > (int )_max2 ? _max1 : _max2); i = i + 1; rate = rate + 1; ldv_53993: ; if (i <= 51) { goto ldv_53992; } else { } return (res); } } bool b43_ppr_load_max_from_sprom(struct b43_wldev *dev , struct b43_ppr *ppr , enum b43_band band ) { struct b43_ppr_rates *rates ; struct ssb_sprom *sprom ; struct b43_phy *phy ; u8 maxpwr ; u8 off ; u32 sprom_ofdm_po ; u16 *sprom_mcs_po ; u8 extra_cdd_po ; u8 extra_stbc_po ; int i ; u8 _min1 ; u8 _min2 ; u8 _min1___0 ; u8 _min2___0 ; u8 _min1___1 ; u8 _min2___1 ; u8 _min1___2 ; u8 _min2___2 ; bool __warned ; int __ret_warn_once ; int __ret_warn_on ; long tmp ; long tmp___0 ; long tmp___1 ; { rates = & ppr->__annonCompField108.rates; sprom = (dev->dev)->bus_sprom; phy = & dev->phy; switch ((unsigned int )band) { case 0U: _min1 = sprom->core_pwr_info[0].maxpwr_2g; _min2 = sprom->core_pwr_info[1].maxpwr_2g; maxpwr = (u8 )((int )_min1 < (int )_min2 ? _min1 : _min2); sprom_ofdm_po = sprom->ofdm2gpo; sprom_mcs_po = (u16 *)(& sprom->mcs2gpo); extra_cdd_po = (unsigned int )((u8 )sprom->cddpo) & 15U; extra_stbc_po = (unsigned int )((u8 )sprom->stbcpo) & 15U; goto ldv_54014; case 1U: _min1___0 = sprom->core_pwr_info[0].maxpwr_5gl; _min2___0 = sprom->core_pwr_info[1].maxpwr_5gl; maxpwr = (u8 )((int )_min1___0 < (int )_min2___0 ? _min1___0 : _min2___0); sprom_ofdm_po = sprom->ofdm5glpo; sprom_mcs_po = (u16 *)(& sprom->mcs5glpo); extra_cdd_po = (unsigned int )((u8 )((int )sprom->cddpo >> 8)) & 15U; extra_stbc_po = (unsigned int )((u8 )((int )sprom->stbcpo >> 8)) & 15U; goto ldv_54014; case 2U: _min1___1 = sprom->core_pwr_info[0].maxpwr_5g; _min2___1 = sprom->core_pwr_info[1].maxpwr_5g; maxpwr = (u8 )((int )_min1___1 < (int )_min2___1 ? _min1___1 : _min2___1); sprom_ofdm_po = sprom->ofdm5gpo; sprom_mcs_po = (u16 *)(& sprom->mcs5gpo); extra_cdd_po = (unsigned int )((u8 )((int )sprom->cddpo >> 4)) & 15U; extra_stbc_po = (unsigned int )((u8 )((int )sprom->stbcpo >> 4)) & 15U; goto ldv_54014; case 3U: _min1___2 = sprom->core_pwr_info[0].maxpwr_5gh; _min2___2 = sprom->core_pwr_info[1].maxpwr_5gh; maxpwr = (u8 )((int )_min1___2 < (int )_min2___2 ? _min1___2 : _min2___2); sprom_ofdm_po = sprom->ofdm5ghpo; sprom_mcs_po = (u16 *)(& sprom->mcs5ghpo); extra_cdd_po = (unsigned int )((u8 )((int )sprom->cddpo >> 12)) & 15U; extra_stbc_po = (unsigned int )((u8 )((int )sprom->stbcpo >> 12)) & 15U; goto ldv_54014; default: __ret_warn_once = 1; tmp___1 = ldv__builtin_expect(__ret_warn_once != 0, 0L); if (tmp___1 != 0L) { __ret_warn_on = ! __warned; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/ppr.c", 123); } else { } tmp___0 = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp___0 != 0L) { __warned = 1; } else { } } else { } ldv__builtin_expect(__ret_warn_once != 0, 0L); return (0); } ldv_54014: ; if ((unsigned int )band == 0U) { i = 0; goto ldv_54034; ldv_54033: off = ((unsigned int )((u8 )((int )sprom->cck2gpo >> i * 4)) & 15U) * 2U; rates->cck[i] = (int )maxpwr - (int )off; i = i + 1; ldv_54034: ; if (i <= 3) { goto ldv_54033; } else { } } else { } i = 0; goto ldv_54037; ldv_54036: off = ((unsigned int )((u8 )(sprom_ofdm_po >> i * 4)) & 15U) * 2U; rates->ofdm[i] = (int )maxpwr - (int )off; i = i + 1; ldv_54037: ; if (i <= 7) { goto ldv_54036; } else { } rates->mcs_20[0] = rates->ofdm[0]; rates->mcs_20[1] = rates->ofdm[2]; rates->mcs_20[2] = rates->ofdm[3]; rates->mcs_20[3] = rates->ofdm[4]; rates->mcs_20[4] = rates->ofdm[5]; rates->mcs_20[5] = rates->ofdm[6]; rates->mcs_20[6] = rates->ofdm[7]; rates->mcs_20[7] = rates->ofdm[7]; i = 0; goto ldv_54040; ldv_54039: off = ((unsigned int )((u8 )((int )*sprom_mcs_po >> i * 4)) & 15U) * 2U; rates->mcs_20_cdd[i] = (int )maxpwr - (int )off; if ((unsigned int )phy->type == 4U && (unsigned int )phy->rev > 2U) { rates->mcs_20_cdd[i] = (int )rates->mcs_20_cdd[i] - (int )extra_cdd_po; } else { } i = i + 1; ldv_54040: ; if (i <= 3) { goto ldv_54039; } else { } i = 0; goto ldv_54043; ldv_54042: off = ((unsigned int )((u8 )((int )*(sprom_mcs_po + 1UL) >> i * 4)) & 15U) * 2U; rates->mcs_20_cdd[i + 4] = (int )maxpwr - (int )off; if ((unsigned int )phy->type == 4U && (unsigned int )phy->rev > 2U) { rates->mcs_20_cdd[i + 4] = (int )rates->mcs_20_cdd[i + 4] - (int )extra_cdd_po; } else { } i = i + 1; ldv_54043: ; if (i <= 3) { goto ldv_54042; } else { } rates->ofdm_20_cdd[0] = rates->mcs_20_cdd[0]; rates->ofdm_20_cdd[1] = rates->mcs_20_cdd[0]; rates->ofdm_20_cdd[2] = rates->mcs_20_cdd[1]; rates->ofdm_20_cdd[3] = rates->mcs_20_cdd[2]; rates->ofdm_20_cdd[4] = rates->mcs_20_cdd[3]; rates->ofdm_20_cdd[5] = rates->mcs_20_cdd[4]; rates->ofdm_20_cdd[6] = rates->mcs_20_cdd[5]; rates->ofdm_20_cdd[7] = rates->mcs_20_cdd[6]; i = 0; goto ldv_54046; ldv_54045: off = ((unsigned int )((u8 )((int )*sprom_mcs_po >> i * 4)) & 15U) * 2U; rates->mcs_20_stbc[i] = (int )maxpwr - (int )off; if ((unsigned int )phy->type == 4U && (unsigned int )phy->rev > 2U) { rates->mcs_20_stbc[i] = (int )rates->mcs_20_stbc[i] - (int )extra_stbc_po; } else { } i = i + 1; ldv_54046: ; if (i <= 3) { goto ldv_54045; } else { } i = 0; goto ldv_54049; ldv_54048: off = ((unsigned int )((u8 )((int )*(sprom_mcs_po + 1UL) >> i * 4)) & 15U) * 2U; rates->mcs_20_stbc[i + 4] = (int )maxpwr - (int )off; if ((unsigned int )phy->type == 4U && (unsigned int )phy->rev > 2U) { rates->mcs_20_stbc[i + 4] = (int )rates->mcs_20_stbc[i + 4] - (int )extra_stbc_po; } else { } i = i + 1; ldv_54049: ; if (i <= 3) { goto ldv_54048; } else { } i = 0; goto ldv_54052; ldv_54051: off = ((unsigned int )((u8 )((int )*(sprom_mcs_po + 2UL) >> i * 4)) & 15U) * 2U; rates->mcs_20_sdm[i] = (int )maxpwr - (int )off; i = i + 1; ldv_54052: ; if (i <= 3) { goto ldv_54051; } else { } i = 0; goto ldv_54055; ldv_54054: off = ((unsigned int )((u8 )((int )*(sprom_mcs_po + 3UL) >> i * 4)) & 15U) * 2U; rates->mcs_20_sdm[i + 4] = (int )maxpwr - (int )off; i = i + 1; ldv_54055: ; if (i <= 3) { goto ldv_54054; } else { } return (1); } } bool ldv_queue_work_on_401(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_402(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_403(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_404(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_405(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_406(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; extern char *strncpy(char * , char const * , __kernel_size_t ) ; bool ldv_queue_work_on_417(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_419(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_418(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_421(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_420(struct workqueue_struct *ldv_func_arg1 ) ; bool ldv_cancel_work_sync_423(struct work_struct *ldv_func_arg1 ) ; void call_and_disable_work_10(struct work_struct *work ) ; void invoke_work_10(void) ; void disable_work_10(struct work_struct *work ) ; void activate_work_10(struct work_struct *work , int state ) ; void call_and_disable_all_10(int state ) ; int ldv_request_threaded_irq_422(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; extern char const *__ieee80211_get_tx_led_name(struct ieee80211_hw * ) ; extern char const *__ieee80211_get_rx_led_name(struct ieee80211_hw * ) ; extern char const *__ieee80211_get_assoc_led_name(struct ieee80211_hw * ) ; extern char const *__ieee80211_get_radio_led_name(struct ieee80211_hw * ) ; __inline static char const *ieee80211_get_tx_led_name(struct ieee80211_hw *hw ) { char const *tmp ; { tmp = __ieee80211_get_tx_led_name(hw); return (tmp); } } __inline static char const *ieee80211_get_rx_led_name(struct ieee80211_hw *hw ) { char const *tmp ; { tmp = __ieee80211_get_rx_led_name(hw); return (tmp); } } __inline static char const *ieee80211_get_assoc_led_name(struct ieee80211_hw *hw ) { char const *tmp ; { tmp = __ieee80211_get_assoc_led_name(hw); return (tmp); } } __inline static char const *ieee80211_get_radio_led_name(struct ieee80211_hw *hw ) { char const *tmp ; { tmp = __ieee80211_get_radio_led_name(hw); return (tmp); } } extern int led_classdev_register(struct device * , struct led_classdev * ) ; extern void led_classdev_unregister(struct led_classdev * ) ; static void b43_led_turn_on(struct b43_wldev *dev , u8 led_index , bool activelow ) { u16 ctl ; { ctl = b43_read16(dev, 1180); if ((int )activelow) { ctl = (u16 )(~ ((int )((short )(1 << (int )led_index))) & (int )((short )ctl)); } else { ctl = (u16 )((int )((short )(1 << (int )led_index)) | (int )((short )ctl)); } b43_write16(dev, 1180, (int )ctl); return; } } static void b43_led_turn_off(struct b43_wldev *dev , u8 led_index , bool activelow ) { u16 ctl ; { ctl = b43_read16(dev, 1180); if ((int )activelow) { ctl = (u16 )((int )((short )(1 << (int )led_index)) | (int )((short )ctl)); } else { ctl = (u16 )(~ ((int )((short )(1 << (int )led_index))) & (int )((short )ctl)); } b43_write16(dev, 1180, (int )ctl); return; } } static void b43_led_update(struct b43_wldev *dev , struct b43_led *led ) { bool radio_enabled ; bool turn_on ; int tmp ; { if ((unsigned long )led->wl == (unsigned long )((struct b43_wl *)0)) { return; } else { } radio_enabled = (bool )((int )dev->phy.radio_on && (int )dev->radio_hw_enable); if ((int )radio_enabled) { tmp = atomic_read((atomic_t const *)(& led->state)); turn_on = tmp != 0; } else { turn_on = 0; } if ((int )led->hw_state == (int )turn_on) { return; } else { } led->hw_state = turn_on; if ((int )turn_on) { b43_led_turn_on(dev, (int )led->index, (int )led->activelow); } else { b43_led_turn_off(dev, (int )led->index, (int )led->activelow); } return; } } static void b43_leds_work(struct work_struct *work ) { struct b43_leds *leds ; struct work_struct const *__mptr ; struct b43_wl *wl ; struct b43_leds const *__mptr___0 ; struct b43_wldev *dev ; int tmp ; int tmp___0 ; long tmp___1 ; { __mptr = (struct work_struct const *)work; leds = (struct b43_leds *)__mptr + 0xfffffffffffff418UL; __mptr___0 = (struct b43_leds const *)leds; wl = (struct b43_wl *)__mptr___0 + 0xfffffffffffffaa8UL; mutex_lock_nested(& wl->mutex, 0U); dev = wl->current_dev; if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { tmp___0 = 1; } else { tmp = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp <= 1) { tmp___0 = 1; } else { tmp___0 = 0; } } tmp___1 = ldv__builtin_expect((long )tmp___0, 0L); if (tmp___1 != 0L) { goto out_unlock; } else { } b43_led_update(dev, & wl->leds.led_tx); b43_led_update(dev, & wl->leds.led_rx); b43_led_update(dev, & wl->leds.led_radio); b43_led_update(dev, & wl->leds.led_assoc); out_unlock: mutex_unlock(& wl->mutex); return; } } static void b43_led_brightness_set(struct led_classdev *led_dev , enum led_brightness brightness ) { struct b43_led *led ; struct led_classdev const *__mptr ; struct b43_wl *wl ; long tmp ; { __mptr = (struct led_classdev const *)led_dev; led = (struct b43_led *)__mptr + 0xfffffffffffffff8UL; wl = led->wl; tmp = ldv__builtin_expect((long )(! wl->leds.stop), 1L); if (tmp != 0L) { atomic_set(& led->state, (int )brightness); ieee80211_queue_work(wl->hw, & wl->leds.work); } else { } return; } } static int b43_register_led(struct b43_wldev *dev , struct b43_led *led , char const *name , char const *default_trigger , u8 led_index , bool activelow ) { int err ; { if ((unsigned long )led->wl != (unsigned long )((struct b43_wl *)0)) { return (-17); } else { } if ((unsigned long )default_trigger == (unsigned long )((char const *)0)) { return (-22); } else { } led->wl = dev->wl; led->index = led_index; led->activelow = activelow; strncpy((char *)(& led->name), name, 32UL); atomic_set(& led->state, 0); led->led_dev.name = (char const *)(& led->name); led->led_dev.default_trigger = default_trigger; led->led_dev.brightness_set = & b43_led_brightness_set; err = led_classdev_register((dev->dev)->dev, & led->led_dev); if (err != 0) { b43warn(dev->wl, "LEDs: Failed to register %s\n", name); led->wl = (struct b43_wl *)0; return (err); } else { } return (0); } } static void b43_unregister_led(struct b43_led *led ) { { if ((unsigned long )led->wl == (unsigned long )((struct b43_wl *)0)) { return; } else { } led_classdev_unregister(& led->led_dev); led->wl = (struct b43_wl *)0; return; } } static void b43_map_led(struct b43_wldev *dev , u8 led_index , enum b43_led_behaviour behaviour , bool activelow ) { struct ieee80211_hw *hw ; char name[32U] ; char const *tmp ; char const *tmp___0 ; char const *tmp___1 ; char const *tmp___2 ; char const *tmp___3 ; char const *tmp___4 ; char const *tmp___5 ; char const *tmp___6 ; { hw = (dev->wl)->hw; switch ((unsigned int )behaviour) { case 11U: ; case 0U: ; case 1U: ; goto ldv_53965; case 2U: ; case 7U: ; case 8U: tmp = wiphy_name((struct wiphy const *)hw->wiphy); snprintf((char *)(& name), 32UL, "b43-%s::tx", tmp); tmp___0 = ieee80211_get_tx_led_name(hw); b43_register_led(dev, & (dev->wl)->leds.led_tx, (char const *)(& name), tmp___0, (int )led_index, (int )activelow); tmp___1 = wiphy_name((struct wiphy const *)hw->wiphy); snprintf((char *)(& name), 32UL, "b43-%s::rx", tmp___1); tmp___2 = ieee80211_get_rx_led_name(hw); b43_register_led(dev, & (dev->wl)->leds.led_rx, (char const *)(& name), tmp___2, (int )led_index, (int )activelow); goto ldv_53965; case 3U: ; case 4U: ; case 5U: ; case 6U: tmp___3 = wiphy_name((struct wiphy const *)hw->wiphy); snprintf((char *)(& name), 32UL, "b43-%s::radio", tmp___3); tmp___4 = ieee80211_get_radio_led_name(hw); b43_register_led(dev, & (dev->wl)->leds.led_radio, (char const *)(& name), tmp___4, (int )led_index, (int )activelow); goto ldv_53965; case 9U: ; case 10U: tmp___5 = wiphy_name((struct wiphy const *)hw->wiphy); snprintf((char *)(& name), 32UL, "b43-%s::assoc", tmp___5); tmp___6 = ieee80211_get_assoc_led_name(hw); b43_register_led(dev, & (dev->wl)->leds.led_assoc, (char const *)(& name), tmp___6, (int )led_index, (int )activelow); goto ldv_53965; default: b43warn(dev->wl, "LEDs: Unknown behaviour 0x%02X\n", (unsigned int )behaviour); goto ldv_53965; } ldv_53965: ; return; } } static void b43_led_get_sprominfo(struct b43_wldev *dev , unsigned int led_index , enum b43_led_behaviour *behaviour , bool *activelow ) { u8 sprom[4U] ; int __ret_warn_on ; long tmp ; { sprom[0] = ((dev->dev)->bus_sprom)->gpio0; sprom[1] = ((dev->dev)->bus_sprom)->gpio1; sprom[2] = ((dev->dev)->bus_sprom)->gpio2; sprom[3] = ((dev->dev)->bus_sprom)->gpio3; if ((unsigned int )sprom[led_index] == 255U) { *activelow = 0; switch (led_index) { case 0U: *behaviour = 2; *activelow = 1; if ((unsigned int )(dev->dev)->board_vendor == 3601U) { *behaviour = 3; } else { } goto ldv_53984; case 1U: *behaviour = 5; if ((unsigned int )(dev->dev)->board_vendor == 4163U) { *behaviour = 10; } else { } goto ldv_53984; case 2U: *behaviour = 4; goto ldv_53984; case 3U: *behaviour = 0; goto ldv_53984; default: *behaviour = 0; __ret_warn_on = 1; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/leds.c", 249); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return; } ldv_53984: ; } else { *behaviour = (enum b43_led_behaviour )((int )sprom[led_index] & 127); *activelow = (int )((signed char )sprom[led_index]) < 0; } return; } } void b43_leds_init(struct b43_wldev *dev ) { struct b43_led *led ; unsigned int i ; enum b43_led_behaviour behaviour ; bool activelow ; bool tmp ; { led = & (dev->wl)->leds.led_radio; if ((unsigned long )led->wl != (unsigned long )((struct b43_wl *)0)) { if ((int )dev->phy.radio_on) { tmp = b43_is_hw_radio_enabled(dev); if ((int )tmp) { b43_led_turn_on(dev, (int )led->index, (int )led->activelow); led->hw_state = 1; atomic_set(& led->state, 1); } else { b43_led_turn_off(dev, (int )led->index, (int )led->activelow); led->hw_state = 0; atomic_set(& led->state, 0); } } else { b43_led_turn_off(dev, (int )led->index, (int )led->activelow); led->hw_state = 0; atomic_set(& led->state, 0); } } else { } led = & (dev->wl)->leds.led_tx; if ((unsigned long )led->wl != (unsigned long )((struct b43_wl *)0)) { b43_led_turn_off(dev, (int )led->index, (int )led->activelow); led->hw_state = 0; atomic_set(& led->state, 0); } else { } led = & (dev->wl)->leds.led_rx; if ((unsigned long )led->wl != (unsigned long )((struct b43_wl *)0)) { b43_led_turn_off(dev, (int )led->index, (int )led->activelow); led->hw_state = 0; atomic_set(& led->state, 0); } else { } led = & (dev->wl)->leds.led_assoc; if ((unsigned long )led->wl != (unsigned long )((struct b43_wl *)0)) { b43_led_turn_off(dev, (int )led->index, (int )led->activelow); led->hw_state = 0; atomic_set(& led->state, 0); } else { } i = 0U; goto ldv_54003; ldv_54002: b43_led_get_sprominfo(dev, i, & behaviour, & activelow); switch ((unsigned int )behaviour) { case 0U: b43_led_turn_off(dev, (int )((u8 )i), (int )activelow); goto ldv_53999; case 1U: b43_led_turn_on(dev, (int )((u8 )i), (int )activelow); goto ldv_53999; default: ; goto ldv_53999; } ldv_53999: i = i + 1U; ldv_54003: ; if (i <= 3U) { goto ldv_54002; } else { } (dev->wl)->leds.stop = 0; return; } } void b43_leds_exit(struct b43_wldev *dev ) { struct b43_leds *leds ; { leds = & (dev->wl)->leds; b43_led_turn_off(dev, (int )leds->led_tx.index, (int )leds->led_tx.activelow); b43_led_turn_off(dev, (int )leds->led_rx.index, (int )leds->led_rx.activelow); b43_led_turn_off(dev, (int )leds->led_assoc.index, (int )leds->led_assoc.activelow); b43_led_turn_off(dev, (int )leds->led_radio.index, (int )leds->led_radio.activelow); return; } } void b43_leds_stop(struct b43_wldev *dev ) { struct b43_leds *leds ; { leds = & (dev->wl)->leds; leds->stop = 1; ldv_cancel_work_sync_423(& leds->work); return; } } void b43_leds_register(struct b43_wldev *dev ) { unsigned int i ; enum b43_led_behaviour behaviour ; bool activelow ; struct lock_class_key __key ; atomic_long_t __constr_expr_0 ; { __init_work(& (dev->wl)->leds.work, 0); __constr_expr_0.counter = 137438953408L; (dev->wl)->leds.work.data = __constr_expr_0; lockdep_init_map(& (dev->wl)->leds.work.lockdep_map, "(&dev->wl->leds.work)", & __key, 0); INIT_LIST_HEAD(& (dev->wl)->leds.work.entry); (dev->wl)->leds.work.func = & b43_leds_work; i = 0U; goto ldv_54022; ldv_54021: b43_led_get_sprominfo(dev, i, & behaviour, & activelow); b43_map_led(dev, (int )((u8 )i), behaviour, (int )activelow); i = i + 1U; ldv_54022: ; if (i <= 3U) { goto ldv_54021; } else { } return; } } void b43_leds_unregister(struct b43_wl *wl ) { struct b43_leds *leds ; { leds = & wl->leds; b43_unregister_led(& leds->led_tx); b43_unregister_led(& leds->led_rx); b43_unregister_led(& leds->led_assoc); b43_unregister_led(& leds->led_radio); return; } } void call_and_disable_work_10(struct work_struct *work ) { { if ((ldv_work_10_0 == 2 || ldv_work_10_0 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_10_0) { b43_leds_work(work); ldv_work_10_0 = 1; return; } else { } if ((ldv_work_10_1 == 2 || ldv_work_10_1 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_10_1) { b43_leds_work(work); ldv_work_10_1 = 1; return; } else { } if ((ldv_work_10_2 == 2 || ldv_work_10_2 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_10_2) { b43_leds_work(work); ldv_work_10_2 = 1; return; } else { } if ((ldv_work_10_3 == 2 || ldv_work_10_3 == 3) && (unsigned long )work == (unsigned long )ldv_work_struct_10_3) { b43_leds_work(work); ldv_work_10_3 = 1; return; } else { } return; } } void invoke_work_10(void) { int tmp ; { tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ; if (ldv_work_10_0 == 2 || ldv_work_10_0 == 3) { ldv_work_10_0 = 4; b43_leds_work(ldv_work_struct_10_0); ldv_work_10_0 = 1; } else { } goto ldv_54039; case 1: ; if (ldv_work_10_1 == 2 || ldv_work_10_1 == 3) { ldv_work_10_1 = 4; b43_leds_work(ldv_work_struct_10_0); ldv_work_10_1 = 1; } else { } goto ldv_54039; case 2: ; if (ldv_work_10_2 == 2 || ldv_work_10_2 == 3) { ldv_work_10_2 = 4; b43_leds_work(ldv_work_struct_10_0); ldv_work_10_2 = 1; } else { } goto ldv_54039; case 3: ; if (ldv_work_10_3 == 2 || ldv_work_10_3 == 3) { ldv_work_10_3 = 4; b43_leds_work(ldv_work_struct_10_0); ldv_work_10_3 = 1; } else { } goto ldv_54039; default: ldv_stop(); } ldv_54039: ; return; } } void disable_work_10(struct work_struct *work ) { { if ((ldv_work_10_0 == 3 || ldv_work_10_0 == 2) && (unsigned long )ldv_work_struct_10_0 == (unsigned long )work) { ldv_work_10_0 = 1; } else { } if ((ldv_work_10_1 == 3 || ldv_work_10_1 == 2) && (unsigned long )ldv_work_struct_10_1 == (unsigned long )work) { ldv_work_10_1 = 1; } else { } if ((ldv_work_10_2 == 3 || ldv_work_10_2 == 2) && (unsigned long )ldv_work_struct_10_2 == (unsigned long )work) { ldv_work_10_2 = 1; } else { } if ((ldv_work_10_3 == 3 || ldv_work_10_3 == 2) && (unsigned long )ldv_work_struct_10_3 == (unsigned long )work) { ldv_work_10_3 = 1; } else { } return; } } void activate_work_10(struct work_struct *work , int state ) { { if (ldv_work_10_0 == 0) { ldv_work_struct_10_0 = work; ldv_work_10_0 = state; return; } else { } if (ldv_work_10_1 == 0) { ldv_work_struct_10_1 = work; ldv_work_10_1 = state; return; } else { } if (ldv_work_10_2 == 0) { ldv_work_struct_10_2 = work; ldv_work_10_2 = state; return; } else { } if (ldv_work_10_3 == 0) { ldv_work_struct_10_3 = work; ldv_work_10_3 = state; return; } else { } return; } } void work_init_10(void) { { ldv_work_10_0 = 0; ldv_work_10_1 = 0; ldv_work_10_2 = 0; ldv_work_10_3 = 0; return; } } void call_and_disable_all_10(int state ) { { if (ldv_work_10_0 == state) { call_and_disable_work_10(ldv_work_struct_10_0); } else { } if (ldv_work_10_1 == state) { call_and_disable_work_10(ldv_work_struct_10_1); } else { } if (ldv_work_10_2 == state) { call_and_disable_work_10(ldv_work_struct_10_2); } else { } if (ldv_work_10_3 == state) { call_and_disable_work_10(ldv_work_struct_10_3); } else { } return; } } bool ldv_queue_work_on_417(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_418(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_419(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_420(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_421(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_422(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } bool ldv_cancel_work_sync_423(struct work_struct *ldv_func_arg1 ) { ldv_func_ret_type___4 ldv_func_res ; bool tmp ; { tmp = cancel_work_sync(ldv_func_arg1); ldv_func_res = tmp; disable_work_7(ldv_func_arg1); return (ldv_func_res); } } bool ldv_queue_work_on_435(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_437(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_436(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_439(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_438(struct workqueue_struct *ldv_func_arg1 ) ; extern int ssb_bus_pcmciabus_register(struct ssb_bus * , struct pcmcia_device * , unsigned long ) ; extern void ssb_bus_unregister(struct ssb_bus * ) ; extern int ssb_bus_suspend(struct ssb_bus * ) ; extern int ssb_bus_resume(struct ssb_bus * ) ; int ldv_request_threaded_irq_440(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; extern int pcmcia_register_driver(struct pcmcia_driver * ) ; extern void pcmcia_unregister_driver(struct pcmcia_driver * ) ; extern int pcmcia_enable_device(struct pcmcia_device * ) ; extern int pcmcia_request_window(struct pcmcia_device * , struct resource * , unsigned int ) ; extern int pcmcia_map_mem_page(struct pcmcia_device * , struct resource * , unsigned int ) ; extern void pcmcia_disable_device(struct pcmcia_device * ) ; static struct pcmcia_device_id const b43_pcmcia_tbl[3U] = { {3U, 720U, 1096U, (unsigned char)0, (unsigned char)0, (unsigned char)0, {0U, 0U, 0U, 0U}, {0, 0, 0, 0}, 0UL, 0}, {3U, 720U, 1142U, (unsigned char)0, (unsigned char)0, (unsigned char)0, {0U, 0U, 0U, 0U}, {0, 0, 0, 0}, 0UL, 0}, {0U, (unsigned short)0, (unsigned short)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, {0U, 0U, 0U, 0U}, {0, 0, 0, 0}, 0UL, 0}}; struct pcmcia_device_id const __mod_pcmcia__b43_pcmcia_tbl_device_table[3U] ; static int b43_pcmcia_suspend(struct pcmcia_device *dev ) { struct ssb_bus *ssb ; int tmp ; { ssb = (struct ssb_bus *)dev->priv; tmp = ssb_bus_suspend(ssb); return (tmp); } } static int b43_pcmcia_resume(struct pcmcia_device *dev ) { struct ssb_bus *ssb ; int tmp ; { ssb = (struct ssb_bus *)dev->priv; tmp = ssb_bus_resume(ssb); return (tmp); } } static int b43_pcmcia_probe(struct pcmcia_device *dev ) { struct ssb_bus *ssb ; int err ; int res ; void *tmp ; { err = -12; res = 0; tmp = kzalloc(2288UL, 208U); ssb = (struct ssb_bus *)tmp; if ((unsigned long )ssb == (unsigned long )((struct ssb_bus *)0)) { goto out_error; } else { } err = -19; dev->config_flags = dev->config_flags | 1U; (dev->resource[2])->flags = (dev->resource[2])->flags | 67UL; (dev->resource[2])->start = 0ULL; (dev->resource[2])->end = 4096ULL; res = pcmcia_request_window(dev, dev->resource[2], 250U); if (res != 0) { goto err_kfree_ssb; } else { } res = pcmcia_map_mem_page(dev, dev->resource[2], 0U); if (res != 0) { goto err_disable; } else { } if (dev->irq == 0U) { goto err_disable; } else { } res = pcmcia_enable_device(dev); if (res != 0) { goto err_disable; } else { } err = ssb_bus_pcmciabus_register(ssb, dev, (unsigned long )(dev->resource[2])->start); if (err != 0) { goto err_disable; } else { } dev->priv = (void *)ssb; return (0); err_disable: pcmcia_disable_device(dev); err_kfree_ssb: kfree((void const *)ssb); out_error: printk("\vb43-pcmcia: Initialization failed (%d, %d)\n", res, err); return (err); } } static void b43_pcmcia_remove(struct pcmcia_device *dev ) { struct ssb_bus *ssb ; { ssb = (struct ssb_bus *)dev->priv; ssb_bus_unregister(ssb); pcmcia_disable_device(dev); kfree((void const *)ssb); dev->priv = (void *)0; return; } } static struct pcmcia_driver b43_pcmcia_driver = {"b43-pcmcia", & b43_pcmcia_probe, & b43_pcmcia_remove, & b43_pcmcia_suspend, & b43_pcmcia_resume, & __this_module, (struct pcmcia_device_id const *)(& b43_pcmcia_tbl), {0, 0, 0, 0, (_Bool)0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {{{0}, {{{{{0}}, 0U, 0U, 0, {0, {0, 0}, 0, 0, 0UL}}}}, {0, 0}, 0, 0, {0, {0, 0}, 0, 0, 0UL}}, {0, 0}}}; int b43_pcmcia_init(void) { int tmp ; { tmp = pcmcia_register_driver(& b43_pcmcia_driver); return (tmp); } } void b43_pcmcia_exit(void) { { pcmcia_unregister_driver(& b43_pcmcia_driver); return; } } int ldv_retval_12 ; int ldv_retval_14 ; int ldv_retval_13 ; void ldv_initialize_pcmcia_driver_23(void) { void *tmp ; { tmp = ldv_init_zalloc(1616UL); b43_pcmcia_driver_group0 = (struct pcmcia_device *)tmp; return; } } void ldv_main_exported_23(void) { int tmp ; { tmp = __VERIFIER_nondet_int(); switch (tmp) { case 0: ; if (ldv_state_variable_23 == 1) { ldv_retval_14 = b43_pcmcia_probe(b43_pcmcia_driver_group0); if (ldv_retval_14 == 0) { ldv_state_variable_23 = 2; ref_cnt = ref_cnt + 1; } else { } } else { } goto ldv_31675; case 1: ; if (ldv_state_variable_23 == 2) { ldv_retval_13 = b43_pcmcia_suspend(b43_pcmcia_driver_group0); if (ldv_retval_13 == 0) { ldv_state_variable_23 = 3; } else { } } else { } goto ldv_31675; case 2: ; if (ldv_state_variable_23 == 3) { ldv_retval_12 = b43_pcmcia_resume(b43_pcmcia_driver_group0); if (ldv_retval_12 == 0) { ldv_state_variable_23 = 2; } else { } } else { } goto ldv_31675; case 3: ; if (ldv_state_variable_23 == 3) { b43_pcmcia_remove(b43_pcmcia_driver_group0); ldv_state_variable_23 = 1; ref_cnt = ref_cnt - 1; } else { } if (ldv_state_variable_23 == 2) { b43_pcmcia_remove(b43_pcmcia_driver_group0); ldv_state_variable_23 = 1; ref_cnt = ref_cnt - 1; } else { } goto ldv_31675; default: ldv_stop(); } ldv_31675: ; return; } } bool ldv_queue_work_on_435(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_436(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_437(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_438(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_439(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_440(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; bool ldv_queue_work_on_451(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_453(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_452(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_455(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_454(struct workqueue_struct *ldv_func_arg1 ) ; __inline static void *dev_get_drvdata(struct device const *dev ) { { return ((void *)dev->driver_data); } } __inline static void dev_set_drvdata(struct device *dev , void *data ) { { dev->driver_data = data; return; } } extern void dev_err(struct device const * , char const * , ...) ; extern void _dev_info(struct device const * , char const * , ...) ; int ldv_request_threaded_irq_456(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; extern int sdio_register_driver(struct sdio_driver * ) ; extern void sdio_unregister_driver(struct sdio_driver * ) ; extern void sdio_claim_host(struct sdio_func * ) ; extern void sdio_release_host(struct sdio_func * ) ; extern int sdio_enable_func(struct sdio_func * ) ; extern int sdio_disable_func(struct sdio_func * ) ; extern int sdio_set_block_size(struct sdio_func * , unsigned int ) ; extern int sdio_claim_irq(struct sdio_func * , sdio_irq_handler_t * ) ; extern int sdio_release_irq(struct sdio_func * ) ; extern int ssb_bus_sdiobus_register(struct ssb_bus * , struct sdio_func * , unsigned int ) ; static struct b43_sdio_quirk const b43_sdio_quirks[2U] = { {5348U, 17176U, 1U}}; static unsigned int b43_sdio_get_quirks(u16 vendor , u16 device ) { struct b43_sdio_quirk const *q ; { q = (struct b43_sdio_quirk const *)(& b43_sdio_quirks); goto ldv_54454; ldv_54453: ; if ((int )((unsigned short )q->vendor) == (int )vendor && (int )((unsigned short )q->device) == (int )device) { return ((unsigned int )q->quirks); } else { } q = q + 1; ldv_54454: ; if ((unsigned int )q->quirks != 0U) { goto ldv_54453; } else { } return (0U); } } static void b43_sdio_interrupt_dispatcher(struct sdio_func *func ) { struct b43_sdio *sdio ; void *tmp ; struct b43_wldev *dev ; int tmp___0 ; long tmp___1 ; { tmp = dev_get_drvdata((struct device const *)(& func->dev)); sdio = (struct b43_sdio *)tmp; dev = (struct b43_wldev *)sdio->irq_handler_opaque; tmp___0 = atomic_read((atomic_t const *)(& dev->__init_status)); tmp___1 = ldv__builtin_expect(tmp___0 <= 1, 0L); if (tmp___1 != 0L) { return; } else { } sdio_release_host(func); (*(sdio->irq_handler))(dev); sdio_claim_host(func); return; } } int b43_sdio_request_irq(struct b43_wldev *dev , void (*handler)(struct b43_wldev * ) ) { struct ssb_bus *bus ; struct sdio_func *func ; struct b43_sdio *sdio ; void *tmp ; int err ; { bus = ((dev->dev)->__annonCompField105.sdev)->bus; func = bus->__annonCompField97.host_sdio; tmp = dev_get_drvdata((struct device const *)(& func->dev)); sdio = (struct b43_sdio *)tmp; sdio->irq_handler_opaque = (void *)dev; sdio->irq_handler = handler; sdio_claim_host(func); err = sdio_claim_irq(func, & b43_sdio_interrupt_dispatcher); sdio_release_host(func); return (err); } } void b43_sdio_free_irq(struct b43_wldev *dev ) { struct ssb_bus *bus ; struct sdio_func *func ; struct b43_sdio *sdio ; void *tmp ; { bus = ((dev->dev)->__annonCompField105.sdev)->bus; func = bus->__annonCompField97.host_sdio; tmp = dev_get_drvdata((struct device const *)(& func->dev)); sdio = (struct b43_sdio *)tmp; sdio_claim_host(func); sdio_release_irq(func); sdio_release_host(func); sdio->irq_handler_opaque = (void *)0; sdio->irq_handler = (void (*)(struct b43_wldev * ))0; return; } } static int b43_sdio_probe(struct sdio_func *func , struct sdio_device_id const *id ) { struct b43_sdio *sdio ; struct sdio_func_tuple *tuple ; u16 vendor ; u16 device ; int error ; void *tmp ; unsigned int tmp___0 ; { vendor = 0U; device = 0U; tuple = func->tuples; goto ldv_54492; ldv_54491: ; switch ((int )tuple->code) { case 128: ; switch ((int )tuple->data[0]) { case 1: ; if ((unsigned int )tuple->size != 5U) { goto ldv_54487; } else { } vendor = (u16 )((int )((short )tuple->data[1]) | (int )((short )((int )tuple->data[2] << 8))); device = (u16 )((int )((short )tuple->data[3]) | (int )((short )((int )tuple->data[4] << 8))); _dev_info((struct device const *)(& func->dev), "Chip ID %04x:%04x\n", (int )vendor, (int )device); goto ldv_54487; default: ; goto ldv_54487; } ldv_54487: ; goto ldv_54489; default: ; goto ldv_54489; } ldv_54489: tuple = tuple->next; ldv_54492: ; if ((unsigned long )tuple != (unsigned long )((struct sdio_func_tuple *)0)) { goto ldv_54491; } else { } if ((unsigned int )vendor == 0U || (unsigned int )device == 0U) { error = -19; goto out; } else { } sdio_claim_host(func); error = sdio_set_block_size(func, 64U); if (error != 0) { dev_err((struct device const *)(& func->dev), "failed to set block size to %u bytes, error %d\n", 64, error); goto err_release_host; } else { } error = sdio_enable_func(func); if (error != 0) { dev_err((struct device const *)(& func->dev), "failed to enable func, error %d\n", error); goto err_release_host; } else { } sdio_release_host(func); tmp = kzalloc(2304UL, 208U); sdio = (struct b43_sdio *)tmp; if ((unsigned long )sdio == (unsigned long )((struct b43_sdio *)0)) { error = -12; dev_err((struct device const *)(& func->dev), "failed to allocate ssb bus\n"); goto err_disable_func; } else { } tmp___0 = b43_sdio_get_quirks((int )vendor, (int )device); error = ssb_bus_sdiobus_register(& sdio->ssb, func, tmp___0); if (error != 0) { dev_err((struct device const *)(& func->dev), "failed to register ssb sdio bus, error %d\n", error); goto err_free_ssb; } else { } dev_set_drvdata(& func->dev, (void *)sdio); return (0); err_free_ssb: kfree((void const *)sdio); err_disable_func: sdio_claim_host(func); sdio_disable_func(func); err_release_host: sdio_release_host(func); out: ; return (error); } } static void b43_sdio_remove(struct sdio_func *func ) { struct b43_sdio *sdio ; void *tmp ; { tmp = dev_get_drvdata((struct device const *)(& func->dev)); sdio = (struct b43_sdio *)tmp; ssb_bus_unregister(& sdio->ssb); sdio_claim_host(func); sdio_disable_func(func); sdio_release_host(func); kfree((void const *)sdio); dev_set_drvdata(& func->dev, (void *)0); return; } } static struct sdio_device_id const b43_sdio_ids[3U] = { {255U, 720U, 1099U, 0UL}, {255U, 146U, 4U, 0UL}}; static struct sdio_driver b43_sdio_driver = {(char *)"b43-sdio", (struct sdio_device_id const *)(& b43_sdio_ids), & b43_sdio_probe, & b43_sdio_remove, {0, 0, 0, 0, (_Bool)0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; int b43_sdio_init(void) { int tmp ; { tmp = sdio_register_driver(& b43_sdio_driver); return (tmp); } } void b43_sdio_exit(void) { { sdio_unregister_driver(& b43_sdio_driver); return; } } int ldv_retval_9 ; void ldv_initialize_sdio_driver_22(void) { void *tmp ; { tmp = ldv_init_zalloc(1488UL); b43_sdio_driver_group0 = (struct sdio_func *)tmp; return; } } void ldv_main_exported_22(void) { struct sdio_device_id *ldvarg131 ; void *tmp ; int tmp___0 ; { tmp = ldv_init_zalloc(16UL); ldvarg131 = (struct sdio_device_id *)tmp; tmp___0 = __VERIFIER_nondet_int(); switch (tmp___0) { case 0: ; if (ldv_state_variable_22 == 1) { ldv_retval_9 = b43_sdio_probe(b43_sdio_driver_group0, (struct sdio_device_id const *)ldvarg131); if (ldv_retval_9 == 0) { ldv_state_variable_22 = 2; ref_cnt = ref_cnt + 1; } else { } } else { } goto ldv_54519; case 1: ; if (ldv_state_variable_22 == 2) { b43_sdio_remove(b43_sdio_driver_group0); ldv_state_variable_22 = 1; ref_cnt = ref_cnt - 1; } else { } goto ldv_54519; default: ldv_stop(); } ldv_54519: ; return; } } bool ldv_queue_work_on_451(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_452(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_453(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_454(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_455(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_456(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } __inline static long ldv__builtin_expect(long exp , long c ) ; __inline static int fls64(__u64 x ) { int bitpos ; { bitpos = -1; __asm__ ("bsrq %1,%q0": "+r" (bitpos): "rm" (x)); return (bitpos + 1); } } extern void __might_fault(char const * , int ) ; extern int sscanf(char const * , char const * , ...) ; __inline static int __get_order(unsigned long size ) { int order ; { size = size - 1UL; size = size >> 12; order = fls64((__u64 )size); return (order); } } __inline static void *ERR_PTR(long error ) ; __inline static bool IS_ERR(void const *ptr ) ; bool ldv_queue_work_on_467(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_work_on_469(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) ; bool ldv_queue_delayed_work_on_468(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; bool ldv_queue_delayed_work_on_471(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) ; void ldv_flush_workqueue_470(struct workqueue_struct *ldv_func_arg1 ) ; extern unsigned long __get_free_pages(gfp_t , unsigned int ) ; extern unsigned long get_zeroed_page(gfp_t ) ; extern void free_pages(unsigned long , unsigned int ) ; extern loff_t generic_file_llseek(struct file * , loff_t , int ) ; extern int simple_open(struct inode * , struct file * ) ; extern ssize_t simple_read_from_buffer(void * , size_t , loff_t * , void const * , size_t ) ; extern struct dentry *debugfs_create_file(char const * , umode_t , struct dentry * , void * , struct file_operations const * ) ; extern struct dentry *debugfs_create_dir(char const * , struct dentry * ) ; extern void debugfs_remove(struct dentry * ) ; extern struct dentry *debugfs_create_bool(char const * , umode_t , struct dentry * , u32 * ) ; extern unsigned long _copy_from_user(void * , void const * , unsigned int ) ; extern void __copy_from_user_overflow(void) ; __inline static unsigned long copy_from_user(void *to , void const *from , unsigned long n ) { int sz ; unsigned long tmp ; long tmp___0 ; { tmp = __builtin_object_size((void const *)to, 0); sz = (int )tmp; __might_fault("./arch/x86/include/asm/uaccess.h", 697); tmp___0 = ldv__builtin_expect((long )(sz < 0 || (unsigned long )sz >= n), 1L); if (tmp___0 != 0L) { n = _copy_from_user(to, from, (unsigned int )n); } else { __copy_from_user_overflow(); } return (n); } } int ldv_request_threaded_irq_472(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) ; static struct dentry *rootdir ; __inline static struct b43_dfs_file *fops_to_dfs_file(struct b43_wldev *dev , struct b43_debugfs_fops const *dfops ) { void *p ; { p = (void *)dev->dfsentry; p = p + dfops->file_struct_offset; return ((struct b43_dfs_file *)p); } } static ssize_t shm16read__read_file(struct b43_wldev *dev , char *buf , size_t bufsize ) { ssize_t count ; unsigned int routing ; unsigned int addr ; u16 val ; int tmp ; { count = 0L; routing = (dev->dfsentry)->shm16read_routing_next; addr = (dev->dfsentry)->shm16read_addr_next; if (routing > 4U || addr > 65535U) { return (-89L); } else { } val = b43_shm_read16(dev, (int )((u16 )routing), (int )((u16 )addr)); if ((unsigned long )count != bufsize) { tmp = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "0x%04X\n", (int )val); count = (ssize_t )tmp + count; } else { printk("\vb43: fappend overflow\n"); } return (count); } } static int shm16read__write_file(struct b43_wldev *dev , char const *buf , size_t count ) { unsigned int routing ; unsigned int addr ; int res ; { res = sscanf(buf, "0x%X 0x%X", & routing, & addr); if (res != 2) { return (-22); } else { } if (routing > 4U) { return (-99); } else { } if (addr > 65535U) { return (-99); } else { } if (routing == 1U) { if ((int )addr & 1) { return (-99); } else { } } else { } (dev->dfsentry)->shm16read_routing_next = routing; (dev->dfsentry)->shm16read_addr_next = addr; return (0); } } static int shm16write__write_file(struct b43_wldev *dev , char const *buf , size_t count ) { unsigned int routing ; unsigned int addr ; unsigned int mask ; unsigned int set ; u16 val ; int res ; { res = sscanf(buf, "0x%X 0x%X 0x%X 0x%X", & routing, & addr, & mask, & set); if (res != 4) { return (-22); } else { } if (routing > 4U) { return (-99); } else { } if (addr > 65535U) { return (-99); } else { } if (routing == 1U) { if ((int )addr & 1) { return (-99); } else { } } else { } if (mask > 65535U || set > 65535U) { return (-7); } else { } if (mask == 0U) { val = 0U; } else { val = b43_shm_read16(dev, (int )((u16 )routing), (int )((u16 )addr)); } val = (int )((u16 )mask) & (int )val; val = (int )((u16 )set) | (int )val; b43_shm_write16(dev, (int )((u16 )routing), (int )((u16 )addr), (int )val); return (0); } } static ssize_t shm32read__read_file(struct b43_wldev *dev , char *buf , size_t bufsize ) { ssize_t count ; unsigned int routing ; unsigned int addr ; u32 val ; int tmp ; { count = 0L; routing = (dev->dfsentry)->shm32read_routing_next; addr = (dev->dfsentry)->shm32read_addr_next; if (routing > 4U || addr > 65535U) { return (-89L); } else { } val = b43_shm_read32(dev, (int )((u16 )routing), (int )((u16 )addr)); if ((unsigned long )count != bufsize) { tmp = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "0x%08X\n", val); count = (ssize_t )tmp + count; } else { printk("\vb43: fappend overflow\n"); } return (count); } } static int shm32read__write_file(struct b43_wldev *dev , char const *buf , size_t count ) { unsigned int routing ; unsigned int addr ; int res ; { res = sscanf(buf, "0x%X 0x%X", & routing, & addr); if (res != 2) { return (-22); } else { } if (routing > 4U) { return (-99); } else { } if (addr > 65535U) { return (-99); } else { } if (routing == 1U) { if ((int )addr & 1) { return (-99); } else { } } else { } (dev->dfsentry)->shm32read_routing_next = routing; (dev->dfsentry)->shm32read_addr_next = addr; return (0); } } static int shm32write__write_file(struct b43_wldev *dev , char const *buf , size_t count ) { unsigned int routing ; unsigned int addr ; unsigned int mask ; unsigned int set ; u32 val ; int res ; { res = sscanf(buf, "0x%X 0x%X 0x%X 0x%X", & routing, & addr, & mask, & set); if (res != 4) { return (-22); } else { } if (routing > 4U) { return (-99); } else { } if (addr > 65535U) { return (-99); } else { } if (routing == 1U) { if ((int )addr & 1) { return (-99); } else { } } else { } if (mask == 0U) { val = 0U; } else { val = b43_shm_read32(dev, (int )((u16 )routing), (int )((u16 )addr)); } val = val & mask; val = val | set; b43_shm_write32(dev, (int )((u16 )routing), (int )((u16 )addr), val); return (0); } } static ssize_t mmio16read__read_file(struct b43_wldev *dev , char *buf , size_t bufsize ) { ssize_t count ; unsigned int addr ; u16 val ; int tmp ; { count = 0L; addr = (unsigned int )(dev->dfsentry)->mmio16read_next; if (addr > 3839U) { return (-89L); } else { } val = b43_read16(dev, (int )((u16 )addr)); if ((unsigned long )count != bufsize) { tmp = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "0x%04X\n", (int )val); count = (ssize_t )tmp + count; } else { printk("\vb43: fappend overflow\n"); } return (count); } } static int mmio16read__write_file(struct b43_wldev *dev , char const *buf , size_t count ) { unsigned int addr ; int res ; { res = sscanf(buf, "0x%X", & addr); if (res != 1) { return (-22); } else { } if (addr > 3839U) { return (-99); } else { } if ((int )addr & 1) { return (-22); } else { } (dev->dfsentry)->mmio16read_next = (u16 )addr; return (0); } } static int mmio16write__write_file(struct b43_wldev *dev , char const *buf , size_t count ) { unsigned int addr ; unsigned int mask ; unsigned int set ; int res ; u16 val ; { res = sscanf(buf, "0x%X 0x%X 0x%X", & addr, & mask, & set); if (res != 3) { return (-22); } else { } if (addr > 3839U) { return (-99); } else { } if (mask > 65535U || set > 65535U) { return (-7); } else { } if ((int )addr & 1) { return (-22); } else { } if (mask == 0U) { val = 0U; } else { val = b43_read16(dev, (int )((u16 )addr)); } val = (int )((u16 )mask) & (int )val; val = (int )((u16 )set) | (int )val; b43_write16(dev, (int )((u16 )addr), (int )val); return (0); } } static ssize_t mmio32read__read_file(struct b43_wldev *dev , char *buf , size_t bufsize ) { ssize_t count ; unsigned int addr ; u32 val ; int tmp ; { count = 0L; addr = (unsigned int )(dev->dfsentry)->mmio32read_next; if (addr > 3839U) { return (-89L); } else { } val = b43_read32(dev, (int )((u16 )addr)); if ((unsigned long )count != bufsize) { tmp = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "0x%08X\n", val); count = (ssize_t )tmp + count; } else { printk("\vb43: fappend overflow\n"); } return (count); } } static int mmio32read__write_file(struct b43_wldev *dev , char const *buf , size_t count ) { unsigned int addr ; int res ; { res = sscanf(buf, "0x%X", & addr); if (res != 1) { return (-22); } else { } if (addr > 3839U) { return (-99); } else { } if ((addr & 3U) != 0U) { return (-22); } else { } (dev->dfsentry)->mmio32read_next = (u16 )addr; return (0); } } static int mmio32write__write_file(struct b43_wldev *dev , char const *buf , size_t count ) { unsigned int addr ; unsigned int mask ; unsigned int set ; int res ; u32 val ; { res = sscanf(buf, "0x%X 0x%X 0x%X", & addr, & mask, & set); if (res != 3) { return (-22); } else { } if (addr > 3839U) { return (-99); } else { } if ((addr & 3U) != 0U) { return (-22); } else { } if (mask == 0U) { val = 0U; } else { val = b43_read32(dev, (int )((u16 )addr)); } val = val & mask; val = val | set; b43_write32(dev, (int )((u16 )addr), val); return (0); } } static ssize_t txstat_read_file(struct b43_wldev *dev , char *buf , size_t bufsize ) { struct b43_txstatus_log *log ; ssize_t count ; int i ; int idx ; struct b43_txstatus *stat ; int tmp ; int tmp___0 ; int tmp___1 ; { log = & (dev->dfsentry)->txstatlog; count = 0L; if (log->end < 0) { if ((unsigned long )count != bufsize) { tmp = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "Nothing transmitted, yet\n"); count = (ssize_t )tmp + count; } else { printk("\vb43: fappend overflow\n"); } goto out; } else { } if ((unsigned long )count != bufsize) { tmp___0 = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "b43 TX status reports:\n\nindex | cookie | seq | phy_stat | frame_count | rts_count | supp_reason | pm_indicated | intermediate | for_ampdu | acked\n---\n"); count = (ssize_t )tmp___0 + count; } else { printk("\vb43: fappend overflow\n"); } i = log->end + 1; idx = 0; ldv_54411: ; if (i == 100) { i = 0; } else { } stat = log->log + (unsigned long )i; if ((unsigned int )stat->cookie != 0U) { if ((unsigned long )count != bufsize) { tmp___1 = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "%03d | 0x%04X | 0x%04X | 0x%02X | 0x%X | 0x%X | %u | %u | %u | %u | %u\n", idx, (int )stat->cookie, (int )stat->seq, (int )stat->phy_stat, (int )stat->frame_count, (int )stat->rts_count, (int )stat->supp_reason, (int )stat->pm_indicated, (int )stat->intermediate, (int )stat->for_ampdu, (int )stat->acked); count = (ssize_t )tmp___1 + count; } else { printk("\vb43: fappend overflow\n"); } idx = idx + 1; } else { } if (log->end == i) { goto ldv_54410; } else { } i = i + 1; goto ldv_54411; ldv_54410: ; out: ; return (count); } } static int restart_write_file(struct b43_wldev *dev , char const *buf , size_t count ) { int err ; { err = 0; if (count != 0UL && (int )((signed char )*buf) == 49) { b43_controller_restart(dev, "manually restarted"); } else { err = -22; } return (err); } } static unsigned long calc_expire_secs(unsigned long now , unsigned long time , unsigned long expire ) { int __ret_warn_on ; long tmp ; { expire = time + expire; if ((long )(expire - now) < 0L) { return (0UL); } else { } if (expire < now) { expire = expire - 4611686018427387902UL; now = now - 4611686018427387902UL; } else { } __ret_warn_on = expire < now; tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/debugfs.c", 433); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); return ((expire - now) / 250UL); } } static ssize_t loctls_read_file(struct b43_wldev *dev , char *buf , size_t bufsize ) { ssize_t count ; struct b43_txpower_lo_control *lo ; int i ; int err ; struct b43_lo_calib *cal ; unsigned long now ; struct b43_phy *phy ; int tmp ; int tmp___0 ; int tmp___1 ; unsigned long tmp___2 ; int tmp___3 ; unsigned long tmp___4 ; int tmp___5 ; int tmp___6 ; struct list_head const *__mptr ; bool active ; bool tmp___7 ; bool tmp___8 ; int tmp___9 ; unsigned long tmp___10 ; int tmp___11 ; struct list_head const *__mptr___0 ; int tmp___12 ; int tmp___13 ; int tmp___14 ; int tmp___15 ; int tmp___16 ; int tmp___17 ; { count = 0L; err = 0; now = jiffies; phy = & dev->phy; if ((unsigned int )phy->type != 2U) { if ((unsigned long )count != bufsize) { tmp = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "Device is not a G-PHY\n"); count = (ssize_t )tmp + count; } else { printk("\vb43: fappend overflow\n"); } err = -19; goto out; } else { } lo = (phy->__annonCompField106.g)->lo_control; if ((unsigned long )count != bufsize) { tmp___0 = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "-- Local Oscillator calibration data --\n\n"); count = (ssize_t )tmp___0 + count; } else { printk("\vb43: fappend overflow\n"); } if ((unsigned long )count != bufsize) { tmp___1 = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "HW-power-control enabled: %d\n", (int )dev->phy.hardware_power_control); count = (ssize_t )tmp___1 + count; } else { printk("\vb43: fappend overflow\n"); } if ((unsigned long )count != bufsize) { tmp___2 = calc_expire_secs(now, lo->txctl_measured_time, 44000UL); tmp___3 = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "TX Bias: 0x%02X, TX Magn: 0x%02X (expire in %lu sec)\n", (int )lo->tx_bias, (int )lo->tx_magn, tmp___2); count = (ssize_t )tmp___3 + count; } else { printk("\vb43: fappend overflow\n"); } if ((unsigned long )count != bufsize) { tmp___4 = calc_expire_secs(now, lo->pwr_vec_read_time, 7000UL); tmp___5 = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "Power Vector: 0x%08X%08X (expires in %lu sec)\n", (unsigned int )(lo->power_vector >> 32), (unsigned int )lo->power_vector, tmp___4); count = (ssize_t )tmp___5 + count; } else { printk("\vb43: fappend overflow\n"); } if ((unsigned long )count != bufsize) { tmp___6 = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "\nCalibrated settings:\n"); count = (ssize_t )tmp___6 + count; } else { printk("\vb43: fappend overflow\n"); } __mptr = (struct list_head const *)lo->calib_list.next; cal = (struct b43_lo_calib *)__mptr + 0xfffffffffffffff0UL; goto ldv_54450; ldv_54449: tmp___7 = b43_compare_bbatt((struct b43_bbatt const *)(& cal->bbatt), (struct b43_bbatt const *)(& (phy->__annonCompField106.g)->bbatt)); if ((int )tmp___7) { tmp___8 = b43_compare_rfatt((struct b43_rfatt const *)(& cal->rfatt), (struct b43_rfatt const *)(& (phy->__annonCompField106.g)->rfatt)); if ((int )tmp___8) { tmp___9 = 1; } else { tmp___9 = 0; } } else { tmp___9 = 0; } active = (bool )tmp___9; if ((unsigned long )count != bufsize) { tmp___10 = calc_expire_secs(now, cal->calib_time, 7000UL); tmp___11 = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "BB(%d), RF(%d,%d) -> I=%d, Q=%d (expires in %lu sec)%s\n", (int )cal->bbatt.att, (int )cal->rfatt.att, (int )cal->rfatt.with_padmix, (int )cal->ctl.i, (int )cal->ctl.q, tmp___10, (int )active ? (char *)" ACTIVE" : (char *)""); count = (ssize_t )tmp___11 + count; } else { printk("\vb43: fappend overflow\n"); } __mptr___0 = (struct list_head const *)cal->list.next; cal = (struct b43_lo_calib *)__mptr___0 + 0xfffffffffffffff0UL; ldv_54450: ; if ((unsigned long )(& cal->list) != (unsigned long )(& lo->calib_list)) { goto ldv_54449; } else { } if ((unsigned long )count != bufsize) { tmp___12 = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "\nUsed RF attenuation values: Value(WithPadmix flag)\n"); count = (ssize_t )tmp___12 + count; } else { printk("\vb43: fappend overflow\n"); } i = 0; goto ldv_54453; ldv_54452: ; if ((unsigned long )count != bufsize) { tmp___13 = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "%u(%d), ", (int )(lo->rfatt_list.list + (unsigned long )i)->att, (int )(lo->rfatt_list.list + (unsigned long )i)->with_padmix); count = (ssize_t )tmp___13 + count; } else { printk("\vb43: fappend overflow\n"); } i = i + 1; ldv_54453: ; if ((int )lo->rfatt_list.len > i) { goto ldv_54452; } else { } if ((unsigned long )count != bufsize) { tmp___14 = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "\n"); count = (ssize_t )tmp___14 + count; } else { printk("\vb43: fappend overflow\n"); } if ((unsigned long )count != bufsize) { tmp___15 = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "\nUsed Baseband attenuation values:\n"); count = (ssize_t )tmp___15 + count; } else { printk("\vb43: fappend overflow\n"); } i = 0; goto ldv_54456; ldv_54455: ; if ((unsigned long )count != bufsize) { tmp___16 = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "%u, ", (int )(lo->bbatt_list.list + (unsigned long )i)->att); count = (ssize_t )tmp___16 + count; } else { printk("\vb43: fappend overflow\n"); } i = i + 1; ldv_54456: ; if ((int )lo->bbatt_list.len > i) { goto ldv_54455; } else { } if ((unsigned long )count != bufsize) { tmp___17 = snprintf(buf + (unsigned long )count, bufsize - (unsigned long )count, "\n"); count = (ssize_t )tmp___17 + count; } else { printk("\vb43: fappend overflow\n"); } out: ; return (err != 0 ? (ssize_t )err : count); } } static ssize_t b43_debugfs_read(struct file *file , char *userbuf , size_t count , loff_t *ppos ) { struct b43_wldev *dev ; struct b43_debugfs_fops *dfops ; struct b43_dfs_file *dfile ; ssize_t ret ; char *buf ; size_t bufsize ; size_t buforder ; int tmp ; int err ; int tmp___0 ; struct file_operations const *__mptr ; unsigned long tmp___1 ; { ret = ret; bufsize = 16384UL; tmp = __get_order(bufsize); buforder = (size_t const )tmp; err = 0; if (count == 0UL) { return (0L); } else { } dev = (struct b43_wldev *)file->private_data; if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { return (-19L); } else { } mutex_lock_nested(& (dev->wl)->mutex, 0U); tmp___0 = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp___0 <= 0) { err = -19; goto out_unlock; } else { } __mptr = file->f_op; dfops = (struct b43_debugfs_fops *)__mptr + 0xfffffffffffffff0UL; if ((unsigned long )dfops->read == (unsigned long )((ssize_t (*)(struct b43_wldev * , char * , size_t ))0)) { err = -38; goto out_unlock; } else { } dfile = fops_to_dfs_file(dev, (struct b43_debugfs_fops const *)dfops); if ((unsigned long )dfile->buffer == (unsigned long )((char *)0)) { tmp___1 = __get_free_pages(208U, (unsigned int )buforder); buf = (char *)tmp___1; if ((unsigned long )buf == (unsigned long )((char *)0)) { err = -12; goto out_unlock; } else { } memset((void *)buf, 0, bufsize); ret = (*(dfops->read))(dev, buf, bufsize); if (ret <= 0L) { free_pages((unsigned long )buf, (unsigned int )buforder); err = (int )ret; goto out_unlock; } else { } dfile->data_len = (size_t )ret; dfile->buffer = buf; } else { } ret = simple_read_from_buffer((void *)userbuf, count, ppos, (void const *)dfile->buffer, dfile->data_len); if ((unsigned long long )*ppos >= (unsigned long long )dfile->data_len) { free_pages((unsigned long )dfile->buffer, (unsigned int )buforder); dfile->buffer = (char *)0; dfile->data_len = 0UL; } else { } out_unlock: mutex_unlock(& (dev->wl)->mutex); return (err != 0 ? (ssize_t )err : ret); } } static ssize_t b43_debugfs_write(struct file *file , char const *userbuf , size_t count , loff_t *ppos ) { struct b43_wldev *dev ; struct b43_debugfs_fops *dfops ; char *buf ; int err ; int tmp ; struct file_operations const *__mptr ; unsigned long tmp___0 ; unsigned long tmp___1 ; { err = 0; if (count == 0UL) { return (0L); } else { } if (count > 4096UL) { return (-7L); } else { } dev = (struct b43_wldev *)file->private_data; if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { return (-19L); } else { } mutex_lock_nested(& (dev->wl)->mutex, 0U); tmp = atomic_read((atomic_t const *)(& dev->__init_status)); if (tmp <= 0) { err = -19; goto out_unlock; } else { } __mptr = file->f_op; dfops = (struct b43_debugfs_fops *)__mptr + 0xfffffffffffffff0UL; if ((unsigned long )dfops->write == (unsigned long )((int (*)(struct b43_wldev * , char const * , size_t ))0)) { err = -38; goto out_unlock; } else { } tmp___0 = get_zeroed_page(208U); buf = (char *)tmp___0; if ((unsigned long )buf == (unsigned long )((char *)0)) { err = -12; goto out_unlock; } else { } tmp___1 = copy_from_user((void *)buf, (void const *)userbuf, count); if (tmp___1 != 0UL) { err = -14; goto out_freepage; } else { } err = (*(dfops->write))(dev, (char const *)buf, count); if (err != 0) { } else { } out_freepage: free_pages((unsigned long )buf, 0U); out_unlock: mutex_unlock(& (dev->wl)->mutex); return ((ssize_t )(err != 0 ? (size_t )err : count)); } } static struct b43_debugfs_fops fops_shm16read = {& shm16read__read_file, & shm16read__write_file, {0, & generic_file_llseek, & b43_debugfs_read, & b43_debugfs_write, 0, 0, 0, 0, 0, 0, 0, 0, & simple_open, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 16UL}; static struct b43_debugfs_fops fops_shm16write = {(ssize_t (*)(struct b43_wldev * , char * , size_t ))0, & shm16write__write_file, {0, & generic_file_llseek, & b43_debugfs_read, & b43_debugfs_write, 0, 0, 0, 0, 0, 0, 0, 0, & simple_open, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 40UL}; static struct b43_debugfs_fops fops_shm32read = {& shm32read__read_file, & shm32read__write_file, {0, & generic_file_llseek, & b43_debugfs_read, & b43_debugfs_write, 0, 0, 0, 0, 0, 0, 0, 0, & simple_open, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 64UL}; static struct b43_debugfs_fops fops_shm32write = {(ssize_t (*)(struct b43_wldev * , char * , size_t ))0, & shm32write__write_file, {0, & generic_file_llseek, & b43_debugfs_read, & b43_debugfs_write, 0, 0, 0, 0, 0, 0, 0, 0, & simple_open, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 88UL}; static struct b43_debugfs_fops fops_mmio16read = {& mmio16read__read_file, & mmio16read__write_file, {0, & generic_file_llseek, & b43_debugfs_read, & b43_debugfs_write, 0, 0, 0, 0, 0, 0, 0, 0, & simple_open, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 112UL}; static struct b43_debugfs_fops fops_mmio16write = {(ssize_t (*)(struct b43_wldev * , char * , size_t ))0, & mmio16write__write_file, {0, & generic_file_llseek, & b43_debugfs_read, & b43_debugfs_write, 0, 0, 0, 0, 0, 0, 0, 0, & simple_open, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 136UL}; static struct b43_debugfs_fops fops_mmio32read = {& mmio32read__read_file, & mmio32read__write_file, {0, & generic_file_llseek, & b43_debugfs_read, & b43_debugfs_write, 0, 0, 0, 0, 0, 0, 0, 0, & simple_open, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 160UL}; static struct b43_debugfs_fops fops_mmio32write = {(ssize_t (*)(struct b43_wldev * , char * , size_t ))0, & mmio32write__write_file, {0, & generic_file_llseek, & b43_debugfs_read, & b43_debugfs_write, 0, 0, 0, 0, 0, 0, 0, 0, & simple_open, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 184UL}; static struct b43_debugfs_fops fops_txstat = {& txstat_read_file, (int (*)(struct b43_wldev * , char const * , size_t ))0, {0, & generic_file_llseek, & b43_debugfs_read, & b43_debugfs_write, 0, 0, 0, 0, 0, 0, 0, 0, & simple_open, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 208UL}; static struct b43_debugfs_fops fops_restart = {(ssize_t (*)(struct b43_wldev * , char * , size_t ))0, & restart_write_file, {0, & generic_file_llseek, & b43_debugfs_read, & b43_debugfs_write, 0, 0, 0, 0, 0, 0, 0, 0, & simple_open, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 256UL}; static struct b43_debugfs_fops fops_loctls = {& loctls_read_file, (int (*)(struct b43_wldev * , char const * , size_t ))0, {0, & generic_file_llseek, & b43_debugfs_read, & b43_debugfs_write, 0, 0, 0, 0, 0, 0, 0, 0, & simple_open, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 280UL}; bool b43_debug(struct b43_wldev *dev , enum b43_dyndbg feature ) { bool enabled ; long tmp ; { enabled = (bool )((unsigned long )dev->dfsentry != (unsigned long )((struct b43_dfsentry *)0) && (dev->dfsentry)->dyn_debug[(unsigned int )feature] != 0U); tmp = ldv__builtin_expect((long )enabled, 0L); if (tmp != 0L) { b43_modparam_verbose = 3; } else { } return (enabled); } } static void b43_remove_dynamic_debug(struct b43_wldev *dev ) { struct b43_dfsentry *e ; int i ; { e = dev->dfsentry; i = 0; goto ldv_54511; ldv_54510: debugfs_remove(e->dyn_debug_dentries[i]); i = i + 1; ldv_54511: ; if (i <= 8) { goto ldv_54510; } else { } return; } } static void b43_add_dynamic_debug(struct b43_wldev *dev ) { struct b43_dfsentry *e ; struct dentry *d ; bool tmp ; int tmp___0 ; bool tmp___1 ; int tmp___2 ; bool tmp___3 ; int tmp___4 ; bool tmp___5 ; int tmp___6 ; bool tmp___7 ; int tmp___8 ; bool tmp___9 ; int tmp___10 ; bool tmp___11 ; int tmp___12 ; bool tmp___13 ; int tmp___14 ; bool tmp___15 ; int tmp___16 ; { e = dev->dfsentry; e->dyn_debug[0] = 0U; d = debugfs_create_bool("debug_xmitpower", 384, e->subdir, (u32 *)(& e->dyn_debug)); tmp = IS_ERR((void const *)d); if (tmp) { tmp___0 = 0; } else { tmp___0 = 1; } if (tmp___0) { e->dyn_debug_dentries[0] = d; } else { } e->dyn_debug[1] = 0U; d = debugfs_create_bool("debug_dmaoverflow", 384, e->subdir, (u32 *)(& e->dyn_debug) + 1UL); tmp___1 = IS_ERR((void const *)d); if (tmp___1) { tmp___2 = 0; } else { tmp___2 = 1; } if (tmp___2) { e->dyn_debug_dentries[1] = d; } else { } e->dyn_debug[2] = 0U; d = debugfs_create_bool("debug_dmaverbose", 384, e->subdir, (u32 *)(& e->dyn_debug) + 2UL); tmp___3 = IS_ERR((void const *)d); if (tmp___3) { tmp___4 = 0; } else { tmp___4 = 1; } if (tmp___4) { e->dyn_debug_dentries[2] = d; } else { } e->dyn_debug[3] = 0U; d = debugfs_create_bool("debug_pwork_fast", 384, e->subdir, (u32 *)(& e->dyn_debug) + 3UL); tmp___5 = IS_ERR((void const *)d); if (tmp___5) { tmp___6 = 0; } else { tmp___6 = 1; } if (tmp___6) { e->dyn_debug_dentries[3] = d; } else { } e->dyn_debug[4] = 0U; d = debugfs_create_bool("debug_pwork_stop", 384, e->subdir, (u32 *)(& e->dyn_debug) + 4UL); tmp___7 = IS_ERR((void const *)d); if (tmp___7) { tmp___8 = 0; } else { tmp___8 = 1; } if (tmp___8) { e->dyn_debug_dentries[4] = d; } else { } e->dyn_debug[5] = 0U; d = debugfs_create_bool("debug_lo", 384, e->subdir, (u32 *)(& e->dyn_debug) + 5UL); tmp___9 = IS_ERR((void const *)d); if (tmp___9) { tmp___10 = 0; } else { tmp___10 = 1; } if (tmp___10) { e->dyn_debug_dentries[5] = d; } else { } e->dyn_debug[6] = 0U; d = debugfs_create_bool("debug_firmware", 384, e->subdir, (u32 *)(& e->dyn_debug) + 6UL); tmp___11 = IS_ERR((void const *)d); if (tmp___11) { tmp___12 = 0; } else { tmp___12 = 1; } if (tmp___12) { e->dyn_debug_dentries[6] = d; } else { } e->dyn_debug[7] = 0U; d = debugfs_create_bool("debug_keys", 384, e->subdir, (u32 *)(& e->dyn_debug) + 7UL); tmp___13 = IS_ERR((void const *)d); if (tmp___13) { tmp___14 = 0; } else { tmp___14 = 1; } if (tmp___14) { e->dyn_debug_dentries[7] = d; } else { } e->dyn_debug[8] = 0U; d = debugfs_create_bool("debug_verbose_stats", 384, e->subdir, (u32 *)(& e->dyn_debug) + 8UL); tmp___15 = IS_ERR((void const *)d); if (tmp___15) { tmp___16 = 0; } else { tmp___16 = 1; } if (tmp___16) { e->dyn_debug_dentries[8] = d; } else { } return; } } void b43_debugfs_add_device(struct b43_wldev *dev ) { struct b43_dfsentry *e ; struct b43_txstatus_log *log ; char devdir[16U] ; int __ret_warn_on ; long tmp ; void *tmp___0 ; void *tmp___1 ; char const *tmp___2 ; void *tmp___3 ; bool tmp___4 ; struct dentry *d ; bool tmp___5 ; int tmp___6 ; struct dentry *d___0 ; bool tmp___7 ; int tmp___8 ; struct dentry *d___1 ; bool tmp___9 ; int tmp___10 ; struct dentry *d___2 ; bool tmp___11 ; int tmp___12 ; struct dentry *d___3 ; bool tmp___13 ; int tmp___14 ; struct dentry *d___4 ; bool tmp___15 ; int tmp___16 ; struct dentry *d___5 ; bool tmp___17 ; int tmp___18 ; struct dentry *d___6 ; bool tmp___19 ; int tmp___20 ; struct dentry *d___7 ; bool tmp___21 ; int tmp___22 ; struct dentry *d___8 ; bool tmp___23 ; int tmp___24 ; struct dentry *d___9 ; bool tmp___25 ; int tmp___26 ; { __ret_warn_on = (unsigned long )dev == (unsigned long )((struct b43_wldev *)0); tmp = ldv__builtin_expect(__ret_warn_on != 0, 0L); if (tmp != 0L) { warn_slowpath_null("/work/ldvuser/mutilin/launch/work/current--X--drivers/--X--defaultlinux-4.2-rc1.tar.xz--X--08_1a--X--cpachecker/linux-4.2-rc1.tar.xz/csd_deg_dscv/12523/dscv_tempdir/dscv/ri/08_1a/drivers/net/wireless/b43/debugfs.c", 698); } else { } ldv__builtin_expect(__ret_warn_on != 0, 0L); tmp___0 = kzalloc(448UL, 208U); e = (struct b43_dfsentry *)tmp___0; if ((unsigned long )e == (unsigned long )((struct b43_dfsentry *)0)) { b43err(dev->wl, "debugfs: add device OOM\n"); return; } else { } e->dev = dev; log = & e->txstatlog; tmp___1 = kcalloc(100UL, 12UL, 208U); log->log = (struct b43_txstatus *)tmp___1; if ((unsigned long )log->log == (unsigned long )((struct b43_txstatus *)0)) { b43err(dev->wl, "debugfs: add device txstatus OOM\n"); kfree((void const *)e); return; } else { } log->end = -1; dev->dfsentry = e; tmp___2 = wiphy_name((struct wiphy const *)((dev->wl)->hw)->wiphy); snprintf((char *)(& devdir), 16UL, "%s", tmp___2); e->subdir = debugfs_create_dir((char const *)(& devdir), rootdir); if ((unsigned long )e->subdir == (unsigned long )((struct dentry *)0)) { goto _L; } else { tmp___4 = IS_ERR((void const *)e->subdir); if ((int )tmp___4) { _L: /* CIL Label */ tmp___3 = ERR_PTR(-19L); if ((unsigned long )((void *)e->subdir) == (unsigned long )tmp___3) { b43dbg(dev->wl, "DebugFS (CONFIG_DEBUG_FS) not enabled in kernel config\n"); } else { b43err(dev->wl, "debugfs: cannot create %s directory\n", (char *)(& devdir)); } dev->dfsentry = (struct b43_dfsentry *)0; kfree((void const *)log->log); kfree((void const *)e); return; } else { } } e->mmio16read_next = 65535U; e->mmio32read_next = 65535U; e->shm16read_routing_next = 4294967295U; e->shm16read_addr_next = 4294967295U; e->shm32read_routing_next = 4294967295U; e->shm32read_addr_next = 4294967295U; d = debugfs_create_file("shm16read", 384, e->subdir, (void *)dev, (struct file_operations const *)(& fops_shm16read.fops)); e->file_shm16read.dentry = (struct dentry *)0; tmp___5 = IS_ERR((void const *)d); if (tmp___5) { tmp___6 = 0; } else { tmp___6 = 1; } if (tmp___6) { e->file_shm16read.dentry = d; } else { } d___0 = debugfs_create_file("shm16write", 128, e->subdir, (void *)dev, (struct file_operations const *)(& fops_shm16write.fops)); e->file_shm16write.dentry = (struct dentry *)0; tmp___7 = IS_ERR((void const *)d___0); if (tmp___7) { tmp___8 = 0; } else { tmp___8 = 1; } if (tmp___8) { e->file_shm16write.dentry = d___0; } else { } d___1 = debugfs_create_file("shm32read", 384, e->subdir, (void *)dev, (struct file_operations const *)(& fops_shm32read.fops)); e->file_shm32read.dentry = (struct dentry *)0; tmp___9 = IS_ERR((void const *)d___1); if (tmp___9) { tmp___10 = 0; } else { tmp___10 = 1; } if (tmp___10) { e->file_shm32read.dentry = d___1; } else { } d___2 = debugfs_create_file("shm32write", 128, e->subdir, (void *)dev, (struct file_operations const *)(& fops_shm32write.fops)); e->file_shm32write.dentry = (struct dentry *)0; tmp___11 = IS_ERR((void const *)d___2); if (tmp___11) { tmp___12 = 0; } else { tmp___12 = 1; } if (tmp___12) { e->file_shm32write.dentry = d___2; } else { } d___3 = debugfs_create_file("mmio16read", 384, e->subdir, (void *)dev, (struct file_operations const *)(& fops_mmio16read.fops)); e->file_mmio16read.dentry = (struct dentry *)0; tmp___13 = IS_ERR((void const *)d___3); if (tmp___13) { tmp___14 = 0; } else { tmp___14 = 1; } if (tmp___14) { e->file_mmio16read.dentry = d___3; } else { } d___4 = debugfs_create_file("mmio16write", 128, e->subdir, (void *)dev, (struct file_operations const *)(& fops_mmio16write.fops)); e->file_mmio16write.dentry = (struct dentry *)0; tmp___15 = IS_ERR((void const *)d___4); if (tmp___15) { tmp___16 = 0; } else { tmp___16 = 1; } if (tmp___16) { e->file_mmio16write.dentry = d___4; } else { } d___5 = debugfs_create_file("mmio32read", 384, e->subdir, (void *)dev, (struct file_operations const *)(& fops_mmio32read.fops)); e->file_mmio32read.dentry = (struct dentry *)0; tmp___17 = IS_ERR((void const *)d___5); if (tmp___17) { tmp___18 = 0; } else { tmp___18 = 1; } if (tmp___18) { e->file_mmio32read.dentry = d___5; } else { } d___6 = debugfs_create_file("mmio32write", 128, e->subdir, (void *)dev, (struct file_operations const *)(& fops_mmio32write.fops)); e->file_mmio32write.dentry = (struct dentry *)0; tmp___19 = IS_ERR((void const *)d___6); if (tmp___19) { tmp___20 = 0; } else { tmp___20 = 1; } if (tmp___20) { e->file_mmio32write.dentry = d___6; } else { } d___7 = debugfs_create_file("txstat", 256, e->subdir, (void *)dev, (struct file_operations const *)(& fops_txstat.fops)); e->file_txstat.dentry = (struct dentry *)0; tmp___21 = IS_ERR((void const *)d___7); if (tmp___21) { tmp___22 = 0; } else { tmp___22 = 1; } if (tmp___22) { e->file_txstat.dentry = d___7; } else { } d___8 = debugfs_create_file("restart", 128, e->subdir, (void *)dev, (struct file_operations const *)(& fops_restart.fops)); e->file_restart.dentry = (struct dentry *)0; tmp___23 = IS_ERR((void const *)d___8); if (tmp___23) { tmp___24 = 0; } else { tmp___24 = 1; } if (tmp___24) { e->file_restart.dentry = d___8; } else { } d___9 = debugfs_create_file("loctls", 256, e->subdir, (void *)dev, (struct file_operations const *)(& fops_loctls.fops)); e->file_loctls.dentry = (struct dentry *)0; tmp___25 = IS_ERR((void const *)d___9); if (tmp___25) { tmp___26 = 0; } else { tmp___26 = 1; } if (tmp___26) { e->file_loctls.dentry = d___9; } else { } b43_add_dynamic_debug(dev); return; } } void b43_debugfs_remove_device(struct b43_wldev *dev ) { struct b43_dfsentry *e ; { if ((unsigned long )dev == (unsigned long )((struct b43_wldev *)0)) { return; } else { } e = dev->dfsentry; if ((unsigned long )e == (unsigned long )((struct b43_dfsentry *)0)) { return; } else { } b43_remove_dynamic_debug(dev); debugfs_remove(e->file_shm16read.dentry); debugfs_remove(e->file_shm16write.dentry); debugfs_remove(e->file_shm32read.dentry); debugfs_remove(e->file_shm32write.dentry); debugfs_remove(e->file_mmio16read.dentry); debugfs_remove(e->file_mmio16write.dentry); debugfs_remove(e->file_mmio32read.dentry); debugfs_remove(e->file_mmio32write.dentry); debugfs_remove(e->file_txstat.dentry); debugfs_remove(e->file_restart.dentry); debugfs_remove(e->file_loctls.dentry); debugfs_remove(e->subdir); kfree((void const *)e->txstatlog.log); kfree((void const *)e); return; } } void b43_debugfs_log_txstat(struct b43_wldev *dev , struct b43_txstatus const *status ) { struct b43_dfsentry *e ; struct b43_txstatus_log *log ; struct b43_txstatus *cur ; int i ; { e = dev->dfsentry; if ((unsigned long )e == (unsigned long )((struct b43_dfsentry *)0)) { return; } else { } log = & e->txstatlog; i = log->end + 1; if (i == 100) { i = 0; } else { } log->end = i; cur = log->log + (unsigned long )i; memcpy((void *)cur, (void const *)status, 12UL); return; } } void b43_debugfs_init(void) { bool tmp ; { rootdir = debugfs_create_dir("b43", (struct dentry *)0); tmp = IS_ERR((void const *)rootdir); if ((int )tmp) { rootdir = (struct dentry *)0; } else { } return; } } void b43_debugfs_exit(void) { { debugfs_remove(rootdir); return; } } extern int ldv_release_14(void) ; extern int ldv_release_20(void) ; extern int ldv_release_11(void) ; int ldv_retval_18 ; int ldv_retval_2 ; int ldv_retval_5 ; extern int ldv_release_16(void) ; extern int ldv_release_12(void) ; int ldv_retval_11 ; int ldv_retval_6 ; extern int ldv_release_18(void) ; extern int ldv_release_13(void) ; int ldv_retval_15 ; extern int ldv_release_19(void) ; int ldv_retval_16 ; extern int ldv_release_17(void) ; extern int ldv_release_21(void) ; int ldv_retval_4 ; int ldv_retval_8 ; extern int ldv_release_15(void) ; int ldv_retval_3 ; int ldv_retval_7 ; void ldv_initialize_b43_debugfs_fops_17(void) { void *tmp ; { tmp = __VERIFIER_nondet_pointer(); fops_mmio16read_group0 = (struct file *)tmp; return; } } void ldv_initialize_b43_debugfs_fops_15(void) { void *tmp ; { tmp = __VERIFIER_nondet_pointer(); fops_mmio32read_group0 = (struct file *)tmp; return; } } void ldv_initialize_b43_debugfs_fops_20(void) { void *tmp ; { tmp = __VERIFIER_nondet_pointer(); fops_shm16write_group0 = (struct file *)tmp; return; } } void ldv_initialize_b43_debugfs_fops_13(void) { void *tmp ; { tmp = __VERIFIER_nondet_pointer(); fops_txstat_group0 = (struct file *)tmp; return; } } void ldv_initialize_b43_debugfs_fops_18(void) { void *tmp ; { tmp = __VERIFIER_nondet_pointer(); fops_shm32write_group0 = (struct file *)tmp; return; } } void ldv_initialize_b43_debugfs_fops_14(void) { void *tmp ; { tmp = __VERIFIER_nondet_pointer(); fops_mmio32write_group0 = (struct file *)tmp; return; } } void ldv_initialize_b43_debugfs_fops_11(void) { void *tmp ; { tmp = __VERIFIER_nondet_pointer(); fops_loctls_group0 = (struct file *)tmp; return; } } void ldv_initialize_b43_debugfs_fops_21(void) { void *tmp ; { tmp = __VERIFIER_nondet_pointer(); fops_shm16read_group0 = (struct file *)tmp; return; } } void ldv_initialize_b43_debugfs_fops_16(void) { void *tmp ; { tmp = __VERIFIER_nondet_pointer(); fops_mmio16write_group0 = (struct file *)tmp; return; } } void ldv_initialize_b43_debugfs_fops_19(void) { void *tmp ; { tmp = __VERIFIER_nondet_pointer(); fops_shm32read_group0 = (struct file *)tmp; return; } } void ldv_initialize_b43_debugfs_fops_12(void) { void *tmp ; { tmp = __VERIFIER_nondet_pointer(); fops_restart_group0 = (struct file *)tmp; return; } } void ldv_main_exported_11(void) { size_t ldvarg125 ; struct inode *ldvarg130 ; void *tmp ; char *ldvarg129 ; void *tmp___0 ; loff_t ldvarg123 ; char *ldvarg126 ; void *tmp___1 ; size_t ldvarg128 ; int ldvarg122 ; loff_t *ldvarg124 ; void *tmp___2 ; loff_t *ldvarg127 ; void *tmp___3 ; int tmp___4 ; { tmp = ldv_init_zalloc(1000UL); ldvarg130 = (struct inode *)tmp; tmp___0 = ldv_init_zalloc(1UL); ldvarg129 = (char *)tmp___0; tmp___1 = ldv_init_zalloc(1UL); ldvarg126 = (char *)tmp___1; tmp___2 = ldv_init_zalloc(8UL); ldvarg124 = (loff_t *)tmp___2; tmp___3 = ldv_init_zalloc(8UL); ldvarg127 = (loff_t *)tmp___3; ldv_memset((void *)(& ldvarg125), 0, 8UL); ldv_memset((void *)(& ldvarg123), 0, 8UL); ldv_memset((void *)(& ldvarg128), 0, 8UL); ldv_memset((void *)(& ldvarg122), 0, 4UL); tmp___4 = __VERIFIER_nondet_int(); switch (tmp___4) { case 0: ; if (ldv_state_variable_11 == 1) { ldv_retval_8 = simple_open(ldvarg130, fops_loctls_group0); if (ldv_retval_8 == 0) { ldv_state_variable_11 = 2; ref_cnt = ref_cnt + 1; } else { } } else { } goto ldv_54634; case 1: ; if (ldv_state_variable_11 == 2) { b43_debugfs_write(fops_loctls_group0, (char const *)ldvarg129, ldvarg128, ldvarg127); ldv_state_variable_11 = 2; } else { } goto ldv_54634; case 2: ; if (ldv_state_variable_11 == 2) { b43_debugfs_read(fops_loctls_group0, ldvarg126, ldvarg125, ldvarg124); ldv_state_variable_11 = 2; } else { } goto ldv_54634; case 3: ; if (ldv_state_variable_11 == 1) { generic_file_llseek(fops_loctls_group0, ldvarg123, ldvarg122); ldv_state_variable_11 = 1; } else { } if (ldv_state_variable_11 == 2) { generic_file_llseek(fops_loctls_group0, ldvarg123, ldvarg122); ldv_state_variable_11 = 2; } else { } goto ldv_54634; case 4: ; if (ldv_state_variable_11 == 2) { ldv_release_11(); ldv_state_variable_11 = 1; ref_cnt = ref_cnt - 1; } else { } goto ldv_54634; default: ldv_stop(); } ldv_54634: ; return; } } void ldv_main_exported_21(void) { loff_t ldvarg2 ; struct inode *ldvarg9 ; void *tmp ; size_t ldvarg4 ; char *ldvarg8 ; void *tmp___0 ; int ldvarg1 ; loff_t *ldvarg6 ; void *tmp___1 ; char *ldvarg5 ; void *tmp___2 ; loff_t *ldvarg3 ; void *tmp___3 ; size_t ldvarg7 ; int tmp___4 ; { tmp = ldv_init_zalloc(1000UL); ldvarg9 = (struct inode *)tmp; tmp___0 = ldv_init_zalloc(1UL); ldvarg8 = (char *)tmp___0; tmp___1 = ldv_init_zalloc(8UL); ldvarg6 = (loff_t *)tmp___1; tmp___2 = ldv_init_zalloc(1UL); ldvarg5 = (char *)tmp___2; tmp___3 = ldv_init_zalloc(8UL); ldvarg3 = (loff_t *)tmp___3; ldv_memset((void *)(& ldvarg2), 0, 8UL); ldv_memset((void *)(& ldvarg4), 0, 8UL); ldv_memset((void *)(& ldvarg1), 0, 4UL); ldv_memset((void *)(& ldvarg7), 0, 8UL); tmp___4 = __VERIFIER_nondet_int(); switch (tmp___4) { case 0: ; if (ldv_state_variable_21 == 1) { ldv_retval_2 = simple_open(ldvarg9, fops_shm16read_group0); if (ldv_retval_2 == 0) { ldv_state_variable_21 = 2; ref_cnt = ref_cnt + 1; } else { } } else { } goto ldv_54653; case 1: ; if (ldv_state_variable_21 == 2) { b43_debugfs_write(fops_shm16read_group0, (char const *)ldvarg8, ldvarg7, ldvarg6); ldv_state_variable_21 = 2; } else { } goto ldv_54653; case 2: ; if (ldv_state_variable_21 == 2) { b43_debugfs_read(fops_shm16read_group0, ldvarg5, ldvarg4, ldvarg3); ldv_state_variable_21 = 2; } else { } goto ldv_54653; case 3: ; if (ldv_state_variable_21 == 1) { generic_file_llseek(fops_shm16read_group0, ldvarg2, ldvarg1); ldv_state_variable_21 = 1; } else { } if (ldv_state_variable_21 == 2) { generic_file_llseek(fops_shm16read_group0, ldvarg2, ldvarg1); ldv_state_variable_21 = 2; } else { } goto ldv_54653; case 4: ; if (ldv_state_variable_21 == 2) { ldv_release_21(); ldv_state_variable_21 = 1; ref_cnt = ref_cnt - 1; } else { } goto ldv_54653; default: ldv_stop(); } ldv_54653: ; return; } } void ldv_main_exported_17(void) { size_t ldvarg19 ; int ldvarg13 ; char *ldvarg17 ; void *tmp ; loff_t ldvarg14 ; struct inode *ldvarg21 ; void *tmp___0 ; loff_t *ldvarg15 ; void *tmp___1 ; size_t ldvarg16 ; char *ldvarg20 ; void *tmp___2 ; loff_t *ldvarg18 ; void *tmp___3 ; int tmp___4 ; { tmp = ldv_init_zalloc(1UL); ldvarg17 = (char *)tmp; tmp___0 = ldv_init_zalloc(1000UL); ldvarg21 = (struct inode *)tmp___0; tmp___1 = ldv_init_zalloc(8UL); ldvarg15 = (loff_t *)tmp___1; tmp___2 = ldv_init_zalloc(1UL); ldvarg20 = (char *)tmp___2; tmp___3 = ldv_init_zalloc(8UL); ldvarg18 = (loff_t *)tmp___3; ldv_memset((void *)(& ldvarg19), 0, 8UL); ldv_memset((void *)(& ldvarg13), 0, 4UL); ldv_memset((void *)(& ldvarg14), 0, 8UL); ldv_memset((void *)(& ldvarg16), 0, 8UL); tmp___4 = __VERIFIER_nondet_int(); switch (tmp___4) { case 0: ; if (ldv_state_variable_17 == 1) { ldv_retval_3 = simple_open(ldvarg21, fops_mmio16read_group0); if (ldv_retval_3 == 0) { ldv_state_variable_17 = 2; ref_cnt = ref_cnt + 1; } else { } } else { } goto ldv_54672; case 1: ; if (ldv_state_variable_17 == 2) { b43_debugfs_write(fops_mmio16read_group0, (char const *)ldvarg20, ldvarg19, ldvarg18); ldv_state_variable_17 = 2; } else { } goto ldv_54672; case 2: ; if (ldv_state_variable_17 == 2) { b43_debugfs_read(fops_mmio16read_group0, ldvarg17, ldvarg16, ldvarg15); ldv_state_variable_17 = 2; } else { } goto ldv_54672; case 3: ; if (ldv_state_variable_17 == 1) { generic_file_llseek(fops_mmio16read_group0, ldvarg14, ldvarg13); ldv_state_variable_17 = 1; } else { } if (ldv_state_variable_17 == 2) { generic_file_llseek(fops_mmio16read_group0, ldvarg14, ldvarg13); ldv_state_variable_17 = 2; } else { } goto ldv_54672; case 4: ; if (ldv_state_variable_17 == 2) { ldv_release_17(); ldv_state_variable_17 = 1; ref_cnt = ref_cnt - 1; } else { } goto ldv_54672; default: ldv_stop(); } ldv_54672: ; return; } } void ldv_main_exported_12(void) { char *ldvarg158 ; void *tmp ; char *ldvarg155 ; void *tmp___0 ; struct inode *ldvarg159 ; void *tmp___1 ; loff_t *ldvarg156 ; void *tmp___2 ; loff_t *ldvarg153 ; void *tmp___3 ; loff_t ldvarg152 ; size_t ldvarg157 ; int ldvarg151 ; size_t ldvarg154 ; int tmp___4 ; { tmp = ldv_init_zalloc(1UL); ldvarg158 = (char *)tmp; tmp___0 = ldv_init_zalloc(1UL); ldvarg155 = (char *)tmp___0; tmp___1 = ldv_init_zalloc(1000UL); ldvarg159 = (struct inode *)tmp___1; tmp___2 = ldv_init_zalloc(8UL); ldvarg156 = (loff_t *)tmp___2; tmp___3 = ldv_init_zalloc(8UL); ldvarg153 = (loff_t *)tmp___3; ldv_memset((void *)(& ldvarg152), 0, 8UL); ldv_memset((void *)(& ldvarg157), 0, 8UL); ldv_memset((void *)(& ldvarg151), 0, 4UL); ldv_memset((void *)(& ldvarg154), 0, 8UL); tmp___4 = __VERIFIER_nondet_int(); switch (tmp___4) { case 0: ; if (ldv_state_variable_12 == 1) { ldv_retval_15 = simple_open(ldvarg159, fops_restart_group0); if (ldv_retval_15 == 0) { ldv_state_variable_12 = 2; ref_cnt = ref_cnt + 1; } else { } } else { } goto ldv_54691; case 1: ; if (ldv_state_variable_12 == 2) { b43_debugfs_write(fops_restart_group0, (char const *)ldvarg158, ldvarg157, ldvarg156); ldv_state_variable_12 = 2; } else { } goto ldv_54691; case 2: ; if (ldv_state_variable_12 == 2) { b43_debugfs_read(fops_restart_group0, ldvarg155, ldvarg154, ldvarg153); ldv_state_variable_12 = 2; } else { } goto ldv_54691; case 3: ; if (ldv_state_variable_12 == 1) { generic_file_llseek(fops_restart_group0, ldvarg152, ldvarg151); ldv_state_variable_12 = 1; } else { } if (ldv_state_variable_12 == 2) { generic_file_llseek(fops_restart_group0, ldvarg152, ldvarg151); ldv_state_variable_12 = 2; } else { } goto ldv_54691; case 4: ; if (ldv_state_variable_12 == 2) { ldv_release_12(); ldv_state_variable_12 = 1; ref_cnt = ref_cnt - 1; } else { } goto ldv_54691; default: ldv_stop(); } ldv_54691: ; return; } } void ldv_main_exported_20(void) { int ldvarg83 ; size_t ldvarg89 ; size_t ldvarg86 ; char *ldvarg87 ; void *tmp ; char *ldvarg90 ; void *tmp___0 ; loff_t *ldvarg88 ; void *tmp___1 ; struct inode *ldvarg91 ; void *tmp___2 ; loff_t ldvarg84 ; loff_t *ldvarg85 ; void *tmp___3 ; int tmp___4 ; { tmp = ldv_init_zalloc(1UL); ldvarg87 = (char *)tmp; tmp___0 = ldv_init_zalloc(1UL); ldvarg90 = (char *)tmp___0; tmp___1 = ldv_init_zalloc(8UL); ldvarg88 = (loff_t *)tmp___1; tmp___2 = ldv_init_zalloc(1000UL); ldvarg91 = (struct inode *)tmp___2; tmp___3 = ldv_init_zalloc(8UL); ldvarg85 = (loff_t *)tmp___3; ldv_memset((void *)(& ldvarg83), 0, 4UL); ldv_memset((void *)(& ldvarg89), 0, 8UL); ldv_memset((void *)(& ldvarg86), 0, 8UL); ldv_memset((void *)(& ldvarg84), 0, 8UL); tmp___4 = __VERIFIER_nondet_int(); switch (tmp___4) { case 0: ; if (ldv_state_variable_20 == 1) { ldv_retval_6 = simple_open(ldvarg91, fops_shm16write_group0); if (ldv_retval_6 == 0) { ldv_state_variable_20 = 2; ref_cnt = ref_cnt + 1; } else { } } else { } goto ldv_54710; case 1: ; if (ldv_state_variable_20 == 2) { b43_debugfs_write(fops_shm16write_group0, (char const *)ldvarg90, ldvarg89, ldvarg88); ldv_state_variable_20 = 2; } else { } goto ldv_54710; case 2: ; if (ldv_state_variable_20 == 2) { b43_debugfs_read(fops_shm16write_group0, ldvarg87, ldvarg86, ldvarg85); ldv_state_variable_20 = 2; } else { } goto ldv_54710; case 3: ; if (ldv_state_variable_20 == 1) { generic_file_llseek(fops_shm16write_group0, ldvarg84, ldvarg83); ldv_state_variable_20 = 1; } else { } if (ldv_state_variable_20 == 2) { generic_file_llseek(fops_shm16write_group0, ldvarg84, ldvarg83); ldv_state_variable_20 = 2; } else { } goto ldv_54710; case 4: ; if (ldv_state_variable_20 == 2) { ldv_release_20(); ldv_state_variable_20 = 1; ref_cnt = ref_cnt - 1; } else { } goto ldv_54710; default: ldv_stop(); } ldv_54710: ; return; } } void ldv_main_exported_15(void) { int ldvarg160 ; loff_t *ldvarg162 ; void *tmp ; loff_t ldvarg161 ; size_t ldvarg166 ; loff_t *ldvarg165 ; void *tmp___0 ; size_t ldvarg163 ; struct inode *ldvarg168 ; void *tmp___1 ; char *ldvarg164 ; void *tmp___2 ; char *ldvarg167 ; void *tmp___3 ; int tmp___4 ; { tmp = ldv_init_zalloc(8UL); ldvarg162 = (loff_t *)tmp; tmp___0 = ldv_init_zalloc(8UL); ldvarg165 = (loff_t *)tmp___0; tmp___1 = ldv_init_zalloc(1000UL); ldvarg168 = (struct inode *)tmp___1; tmp___2 = ldv_init_zalloc(1UL); ldvarg164 = (char *)tmp___2; tmp___3 = ldv_init_zalloc(1UL); ldvarg167 = (char *)tmp___3; ldv_memset((void *)(& ldvarg160), 0, 4UL); ldv_memset((void *)(& ldvarg161), 0, 8UL); ldv_memset((void *)(& ldvarg166), 0, 8UL); ldv_memset((void *)(& ldvarg163), 0, 8UL); tmp___4 = __VERIFIER_nondet_int(); switch (tmp___4) { case 0: ; if (ldv_state_variable_15 == 1) { ldv_retval_16 = simple_open(ldvarg168, fops_mmio32read_group0); if (ldv_retval_16 == 0) { ldv_state_variable_15 = 2; ref_cnt = ref_cnt + 1; } else { } } else { } goto ldv_54729; case 1: ; if (ldv_state_variable_15 == 2) { b43_debugfs_write(fops_mmio32read_group0, (char const *)ldvarg167, ldvarg166, ldvarg165); ldv_state_variable_15 = 2; } else { } goto ldv_54729; case 2: ; if (ldv_state_variable_15 == 2) { b43_debugfs_read(fops_mmio32read_group0, ldvarg164, ldvarg163, ldvarg162); ldv_state_variable_15 = 2; } else { } goto ldv_54729; case 3: ; if (ldv_state_variable_15 == 1) { generic_file_llseek(fops_mmio32read_group0, ldvarg161, ldvarg160); ldv_state_variable_15 = 1; } else { } if (ldv_state_variable_15 == 2) { generic_file_llseek(fops_mmio32read_group0, ldvarg161, ldvarg160); ldv_state_variable_15 = 2; } else { } goto ldv_54729; case 4: ; if (ldv_state_variable_15 == 2) { ldv_release_15(); ldv_state_variable_15 = 1; ref_cnt = ref_cnt - 1; } else { } goto ldv_54729; default: ldv_stop(); } ldv_54729: ; return; } } void ldv_main_exported_14(void) { char *ldvarg99 ; void *tmp ; char *ldvarg96 ; void *tmp___0 ; int ldvarg92 ; loff_t *ldvarg97 ; void *tmp___1 ; size_t ldvarg98 ; loff_t ldvarg93 ; struct inode *ldvarg100 ; void *tmp___2 ; loff_t *ldvarg94 ; void *tmp___3 ; size_t ldvarg95 ; int tmp___4 ; { tmp = ldv_init_zalloc(1UL); ldvarg99 = (char *)tmp; tmp___0 = ldv_init_zalloc(1UL); ldvarg96 = (char *)tmp___0; tmp___1 = ldv_init_zalloc(8UL); ldvarg97 = (loff_t *)tmp___1; tmp___2 = ldv_init_zalloc(1000UL); ldvarg100 = (struct inode *)tmp___2; tmp___3 = ldv_init_zalloc(8UL); ldvarg94 = (loff_t *)tmp___3; ldv_memset((void *)(& ldvarg92), 0, 4UL); ldv_memset((void *)(& ldvarg98), 0, 8UL); ldv_memset((void *)(& ldvarg93), 0, 8UL); ldv_memset((void *)(& ldvarg95), 0, 8UL); tmp___4 = __VERIFIER_nondet_int(); switch (tmp___4) { case 0: ; if (ldv_state_variable_14 == 1) { ldv_retval_7 = simple_open(ldvarg100, fops_mmio32write_group0); if (ldv_retval_7 == 0) { ldv_state_variable_14 = 2; ref_cnt = ref_cnt + 1; } else { } } else { } goto ldv_54748; case 1: ; if (ldv_state_variable_14 == 2) { b43_debugfs_write(fops_mmio32write_group0, (char const *)ldvarg99, ldvarg98, ldvarg97); ldv_state_variable_14 = 2; } else { } goto ldv_54748; case 2: ; if (ldv_state_variable_14 == 2) { b43_debugfs_read(fops_mmio32write_group0, ldvarg96, ldvarg95, ldvarg94); ldv_state_variable_14 = 2; } else { } goto ldv_54748; case 3: ; if (ldv_state_variable_14 == 1) { generic_file_llseek(fops_mmio32write_group0, ldvarg93, ldvarg92); ldv_state_variable_14 = 1; } else { } if (ldv_state_variable_14 == 2) { generic_file_llseek(fops_mmio32write_group0, ldvarg93, ldvarg92); ldv_state_variable_14 = 2; } else { } goto ldv_54748; case 4: ; if (ldv_state_variable_14 == 2) { ldv_release_14(); ldv_state_variable_14 = 1; ref_cnt = ref_cnt - 1; } else { } goto ldv_54748; default: ldv_stop(); } ldv_54748: ; return; } } void ldv_main_exported_18(void) { size_t ldvarg28 ; char *ldvarg29 ; void *tmp ; int ldvarg22 ; size_t ldvarg25 ; struct inode *ldvarg30 ; void *tmp___0 ; loff_t ldvarg23 ; char *ldvarg26 ; void *tmp___1 ; loff_t *ldvarg27 ; void *tmp___2 ; loff_t *ldvarg24 ; void *tmp___3 ; int tmp___4 ; { tmp = ldv_init_zalloc(1UL); ldvarg29 = (char *)tmp; tmp___0 = ldv_init_zalloc(1000UL); ldvarg30 = (struct inode *)tmp___0; tmp___1 = ldv_init_zalloc(1UL); ldvarg26 = (char *)tmp___1; tmp___2 = ldv_init_zalloc(8UL); ldvarg27 = (loff_t *)tmp___2; tmp___3 = ldv_init_zalloc(8UL); ldvarg24 = (loff_t *)tmp___3; ldv_memset((void *)(& ldvarg28), 0, 8UL); ldv_memset((void *)(& ldvarg22), 0, 4UL); ldv_memset((void *)(& ldvarg25), 0, 8UL); ldv_memset((void *)(& ldvarg23), 0, 8UL); tmp___4 = __VERIFIER_nondet_int(); switch (tmp___4) { case 0: ; if (ldv_state_variable_18 == 1) { ldv_retval_4 = simple_open(ldvarg30, fops_shm32write_group0); if (ldv_retval_4 == 0) { ldv_state_variable_18 = 2; ref_cnt = ref_cnt + 1; } else { } } else { } goto ldv_54767; case 1: ; if (ldv_state_variable_18 == 2) { b43_debugfs_write(fops_shm32write_group0, (char const *)ldvarg29, ldvarg28, ldvarg27); ldv_state_variable_18 = 2; } else { } goto ldv_54767; case 2: ; if (ldv_state_variable_18 == 2) { b43_debugfs_read(fops_shm32write_group0, ldvarg26, ldvarg25, ldvarg24); ldv_state_variable_18 = 2; } else { } goto ldv_54767; case 3: ; if (ldv_state_variable_18 == 1) { generic_file_llseek(fops_shm32write_group0, ldvarg23, ldvarg22); ldv_state_variable_18 = 1; } else { } if (ldv_state_variable_18 == 2) { generic_file_llseek(fops_shm32write_group0, ldvarg23, ldvarg22); ldv_state_variable_18 = 2; } else { } goto ldv_54767; case 4: ; if (ldv_state_variable_18 == 2) { ldv_release_18(); ldv_state_variable_18 = 1; ref_cnt = ref_cnt - 1; } else { } goto ldv_54767; default: ldv_stop(); } ldv_54767: ; return; } } void ldv_main_exported_19(void) { char *ldvarg210 ; void *tmp ; int ldvarg206 ; loff_t *ldvarg211 ; void *tmp___0 ; size_t ldvarg209 ; size_t ldvarg212 ; struct inode *ldvarg214 ; void *tmp___1 ; loff_t ldvarg207 ; loff_t *ldvarg208 ; void *tmp___2 ; char *ldvarg213 ; void *tmp___3 ; int tmp___4 ; { tmp = ldv_init_zalloc(1UL); ldvarg210 = (char *)tmp; tmp___0 = ldv_init_zalloc(8UL); ldvarg211 = (loff_t *)tmp___0; tmp___1 = ldv_init_zalloc(1000UL); ldvarg214 = (struct inode *)tmp___1; tmp___2 = ldv_init_zalloc(8UL); ldvarg208 = (loff_t *)tmp___2; tmp___3 = ldv_init_zalloc(1UL); ldvarg213 = (char *)tmp___3; ldv_memset((void *)(& ldvarg206), 0, 4UL); ldv_memset((void *)(& ldvarg209), 0, 8UL); ldv_memset((void *)(& ldvarg212), 0, 8UL); ldv_memset((void *)(& ldvarg207), 0, 8UL); tmp___4 = __VERIFIER_nondet_int(); switch (tmp___4) { case 0: ; if (ldv_state_variable_19 == 1) { ldv_retval_18 = simple_open(ldvarg214, fops_shm32read_group0); if (ldv_retval_18 == 0) { ldv_state_variable_19 = 2; ref_cnt = ref_cnt + 1; } else { } } else { } goto ldv_54786; case 1: ; if (ldv_state_variable_19 == 2) { b43_debugfs_write(fops_shm32read_group0, (char const *)ldvarg213, ldvarg212, ldvarg211); ldv_state_variable_19 = 2; } else { } goto ldv_54786; case 2: ; if (ldv_state_variable_19 == 2) { b43_debugfs_read(fops_shm32read_group0, ldvarg210, ldvarg209, ldvarg208); ldv_state_variable_19 = 2; } else { } goto ldv_54786; case 3: ; if (ldv_state_variable_19 == 1) { generic_file_llseek(fops_shm32read_group0, ldvarg207, ldvarg206); ldv_state_variable_19 = 1; } else { } if (ldv_state_variable_19 == 2) { generic_file_llseek(fops_shm32read_group0, ldvarg207, ldvarg206); ldv_state_variable_19 = 2; } else { } goto ldv_54786; case 4: ; if (ldv_state_variable_19 == 2) { ldv_release_19(); ldv_state_variable_19 = 1; ref_cnt = ref_cnt - 1; } else { } goto ldv_54786; default: ldv_stop(); } ldv_54786: ; return; } } void ldv_main_exported_13(void) { char *ldvarg139 ; void *tmp ; size_t ldvarg135 ; size_t ldvarg138 ; char *ldvarg136 ; void *tmp___0 ; int ldvarg132 ; loff_t ldvarg133 ; loff_t *ldvarg134 ; void *tmp___1 ; loff_t *ldvarg137 ; void *tmp___2 ; struct inode *ldvarg140 ; void *tmp___3 ; int tmp___4 ; { tmp = ldv_init_zalloc(1UL); ldvarg139 = (char *)tmp; tmp___0 = ldv_init_zalloc(1UL); ldvarg136 = (char *)tmp___0; tmp___1 = ldv_init_zalloc(8UL); ldvarg134 = (loff_t *)tmp___1; tmp___2 = ldv_init_zalloc(8UL); ldvarg137 = (loff_t *)tmp___2; tmp___3 = ldv_init_zalloc(1000UL); ldvarg140 = (struct inode *)tmp___3; ldv_memset((void *)(& ldvarg135), 0, 8UL); ldv_memset((void *)(& ldvarg138), 0, 8UL); ldv_memset((void *)(& ldvarg132), 0, 4UL); ldv_memset((void *)(& ldvarg133), 0, 8UL); tmp___4 = __VERIFIER_nondet_int(); switch (tmp___4) { case 0: ; if (ldv_state_variable_13 == 1) { ldv_retval_11 = simple_open(ldvarg140, fops_txstat_group0); if (ldv_retval_11 == 0) { ldv_state_variable_13 = 2; ref_cnt = ref_cnt + 1; } else { } } else { } goto ldv_54805; case 1: ; if (ldv_state_variable_13 == 2) { b43_debugfs_write(fops_txstat_group0, (char const *)ldvarg139, ldvarg138, ldvarg137); ldv_state_variable_13 = 2; } else { } goto ldv_54805; case 2: ; if (ldv_state_variable_13 == 2) { b43_debugfs_read(fops_txstat_group0, ldvarg136, ldvarg135, ldvarg134); ldv_state_variable_13 = 2; } else { } goto ldv_54805; case 3: ; if (ldv_state_variable_13 == 1) { generic_file_llseek(fops_txstat_group0, ldvarg133, ldvarg132); ldv_state_variable_13 = 1; } else { } if (ldv_state_variable_13 == 2) { generic_file_llseek(fops_txstat_group0, ldvarg133, ldvarg132); ldv_state_variable_13 = 2; } else { } goto ldv_54805; case 4: ; if (ldv_state_variable_13 == 2) { ldv_release_13(); ldv_state_variable_13 = 1; ref_cnt = ref_cnt - 1; } else { } goto ldv_54805; default: ldv_stop(); } ldv_54805: ; return; } } void ldv_main_exported_16(void) { char *ldvarg47 ; void *tmp ; loff_t ldvarg44 ; loff_t *ldvarg48 ; void *tmp___0 ; size_t ldvarg46 ; char *ldvarg50 ; void *tmp___1 ; size_t ldvarg49 ; int ldvarg43 ; struct inode *ldvarg51 ; void *tmp___2 ; loff_t *ldvarg45 ; void *tmp___3 ; int tmp___4 ; { tmp = ldv_init_zalloc(1UL); ldvarg47 = (char *)tmp; tmp___0 = ldv_init_zalloc(8UL); ldvarg48 = (loff_t *)tmp___0; tmp___1 = ldv_init_zalloc(1UL); ldvarg50 = (char *)tmp___1; tmp___2 = ldv_init_zalloc(1000UL); ldvarg51 = (struct inode *)tmp___2; tmp___3 = ldv_init_zalloc(8UL); ldvarg45 = (loff_t *)tmp___3; ldv_memset((void *)(& ldvarg44), 0, 8UL); ldv_memset((void *)(& ldvarg46), 0, 8UL); ldv_memset((void *)(& ldvarg49), 0, 8UL); ldv_memset((void *)(& ldvarg43), 0, 4UL); tmp___4 = __VERIFIER_nondet_int(); switch (tmp___4) { case 0: ; if (ldv_state_variable_16 == 1) { ldv_retval_5 = simple_open(ldvarg51, fops_mmio16write_group0); if (ldv_retval_5 == 0) { ldv_state_variable_16 = 2; ref_cnt = ref_cnt + 1; } else { } } else { } goto ldv_54824; case 1: ; if (ldv_state_variable_16 == 2) { b43_debugfs_write(fops_mmio16write_group0, (char const *)ldvarg50, ldvarg49, ldvarg48); ldv_state_variable_16 = 2; } else { } goto ldv_54824; case 2: ; if (ldv_state_variable_16 == 2) { b43_debugfs_read(fops_mmio16write_group0, ldvarg47, ldvarg46, ldvarg45); ldv_state_variable_16 = 2; } else { } goto ldv_54824; case 3: ; if (ldv_state_variable_16 == 1) { generic_file_llseek(fops_mmio16write_group0, ldvarg44, ldvarg43); ldv_state_variable_16 = 1; } else { } if (ldv_state_variable_16 == 2) { generic_file_llseek(fops_mmio16write_group0, ldvarg44, ldvarg43); ldv_state_variable_16 = 2; } else { } goto ldv_54824; case 4: ; if (ldv_state_variable_16 == 2) { ldv_release_16(); ldv_state_variable_16 = 1; ref_cnt = ref_cnt - 1; } else { } goto ldv_54824; default: ldv_stop(); } ldv_54824: ; return; } } bool ldv_queue_work_on_467(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } bool ldv_queue_delayed_work_on_468(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___0 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } bool ldv_queue_work_on_469(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct work_struct *ldv_func_arg3 ) { ldv_func_ret_type___1 ldv_func_res ; bool tmp ; { tmp = queue_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3); ldv_func_res = tmp; activate_work_7(ldv_func_arg3, 2); return (ldv_func_res); } } void ldv_flush_workqueue_470(struct workqueue_struct *ldv_func_arg1 ) { { flush_workqueue(ldv_func_arg1); call_and_disable_all_7(2); return; } } bool ldv_queue_delayed_work_on_471(int ldv_func_arg1 , struct workqueue_struct *ldv_func_arg2 , struct delayed_work *ldv_func_arg3 , unsigned long ldv_func_arg4 ) { ldv_func_ret_type___2 ldv_func_res ; bool tmp ; { tmp = queue_delayed_work_on(ldv_func_arg1, ldv_func_arg2, ldv_func_arg3, ldv_func_arg4); ldv_func_res = tmp; activate_work_7(& ldv_func_arg3->work, 2); return (ldv_func_res); } } int ldv_request_threaded_irq_472(unsigned int ldv_func_arg1 , irqreturn_t (*handler)(int , void * ) , irqreturn_t (*thread_fn)(int , void * ) , unsigned long ldv_func_arg4 , char const *ldv_func_arg5 , void *ldv_func_arg6 ) { ldv_func_ret_type___3 ldv_func_res ; int tmp ; int tmp___0 ; { tmp = request_threaded_irq(ldv_func_arg1, handler, thread_fn, ldv_func_arg4, ldv_func_arg5, ldv_func_arg6); ldv_func_res = tmp; tmp___0 = reg_check_2(handler, thread_fn); if (tmp___0 != 0 && ldv_func_res >= 0) { activate_suitable_irq_2((int )ldv_func_arg1, ldv_func_arg6); } else { } return (ldv_func_res); } } extern void *memset(void * , int , size_t ) ; __inline static void ldv_error(void) { { ERROR: ; __VERIFIER_error(); } } bool ldv_is_err(void const *ptr ) { { return ((unsigned long )ptr > 2012UL); } } void *ldv_err_ptr(long error ) { { return ((void *)(2012L - error)); } } long ldv_ptr_err(void const *ptr ) { { return ((long )(2012UL - (unsigned long )ptr)); } } bool ldv_is_err_or_null(void const *ptr ) { bool tmp ; int tmp___0 ; { if ((unsigned long )ptr == (unsigned long )((void const *)0)) { tmp___0 = 1; } else { tmp = ldv_is_err(ptr); if ((int )tmp) { tmp___0 = 1; } else { tmp___0 = 0; } } return ((bool )tmp___0); } } int ldv_module_refcounter = 1; void ldv_module_get(struct module *module ) { { if ((unsigned long )module != (unsigned long )((struct module *)0)) { ldv_module_refcounter = ldv_module_refcounter + 1; } else { } return; } } int ldv_try_module_get(struct module *module ) { int module_get_succeeded ; { if ((unsigned long )module != (unsigned long )((struct module *)0)) { module_get_succeeded = ldv_undef_int(); if (module_get_succeeded == 1) { ldv_module_refcounter = ldv_module_refcounter + 1; return (1); } else { return (0); } } else { } return (0); } } void ldv_module_put(struct module *module ) { { if ((unsigned long )module != (unsigned long )((struct module *)0)) { if (ldv_module_refcounter <= 1) { ldv_error(); } else { } ldv_module_refcounter = ldv_module_refcounter - 1; } else { } return; } } void ldv_module_put_and_exit(void) { { ldv_module_put((struct module *)1); LDV_STOP: ; goto LDV_STOP; } } unsigned int ldv_module_refcount(void) { { return ((unsigned int )(ldv_module_refcounter + -1)); } } void ldv_check_final_state(void) { { if (ldv_module_refcounter != 1) { ldv_error(); } else { } return; } }