diff --git a/kernel/drivers/module-bbswitch/pspec.xml b/kernel/drivers/module-bbswitch/pspec.xml
index 1d4a1dfa..fe84ff91 100644
--- a/kernel/drivers/module-bbswitch/pspec.xml
+++ b/kernel/drivers/module-bbswitch/pspec.xml
@@ -11,7 +11,7 @@
Kernel module allowing to switch dedicated graphics card on Optimus laptops
kernel module allowing to switch dedicated graphics card on Optimus laptops
- kernel-module-headers
+ kernel-module-headers
https://github.com/Bumblebee-Project/bbswitch/archive/v0.8.tar.gz
@@ -20,7 +20,7 @@
module-bbswitch
- kernel
+ kernel
/lib/modules
@@ -34,6 +34,13 @@
+
+ 2015-12-01
+ 0.8
+ Rebuild for kernel-4.3.0.
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
2015-11-11
0.8
diff --git a/kernel/drivers/module-broadcom-wl/pspec.xml b/kernel/drivers/module-broadcom-wl/pspec.xml
index 62cfb19e..b0e1d063 100644
--- a/kernel/drivers/module-broadcom-wl/pspec.xml
+++ b/kernel/drivers/module-broadcom-wl/pspec.xml
@@ -15,7 +15,7 @@
http://www.broadcom.com/docs/linux_sta/hybrid-v35-nodebug-pcoem-6_30_223_248.tar.gz
http://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-6_30_223_248.tar.gz
- kernel-module-headers
+ kernel-module-headers
patch/linux-40.patch
@@ -32,7 +32,7 @@
module-broadcom-wl
- kernel
+ kernel
module-broadcom-wl-userspace
@@ -64,6 +64,13 @@
+
+ 2015-12-01
+ 6.30.223.248
+ Rebuild for kernel 4.3.0.
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
2015-11-11
6.30.223.248
diff --git a/kernel/drivers/module-virtualbox-guest/pspec.xml b/kernel/drivers/module-virtualbox-guest/pspec.xml
index 338231ba..75877e89 100644
--- a/kernel/drivers/module-virtualbox-guest/pspec.xml
+++ b/kernel/drivers/module-virtualbox-guest/pspec.xml
@@ -14,14 +14,14 @@
This package provides the kernel modules needed for mouse integration and shared folder support between VirtualBox host and guest systems.
http://sourceforge.net/projects/pisilinux/files/source/module-virtualbox-guest-5.0.4.tar.xz
- kernel-module-headers
+ kernel-module-headers
module-virtualbox-guest
- kernel
+ kernel
baselayout
module-virtualbox-guest-userspace
@@ -52,6 +52,13 @@
+
+ 2015-12-01
+ 5.0.4
+ Rebuild for kernel-4.3.0.
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
2015-11-11
5.0.4
diff --git a/kernel/drivers/module-virtualbox/files/vbox_linux-4.3.diff b/kernel/drivers/module-virtualbox/files/vbox_linux-4.3.diff
new file mode 100644
index 00000000..de57682f
--- /dev/null
+++ b/kernel/drivers/module-virtualbox/files/vbox_linux-4.3.diff
@@ -0,0 +1,39 @@
+#
+# https://forums.virtualbox.org/viewtopic.php?uid=80969&f=7&t=70150&start=0
+# kernel 4.3-rc1 heads up
+#
+--- ./vboxdrv/linux/SUPDrv-linux.c.orig 2015-09-25 20:56:04.704532570 -0700
++++ ./vboxdrv/linux/SUPDrv-linux.c 2015-09-25 20:57:17.265521751 -0700
+@@ -485,6 +485,7 @@
+ * opened, at least we'll blindly assume that here.
+ */
+ #ifdef CONFIG_VBOXDRV_AS_MISC
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4,3,0)
+ rc = misc_deregister(&gMiscDeviceUsr);
+ if (rc < 0)
+ {
+@@ -495,6 +496,10 @@
+ {
+ Log(("misc_deregister failed with rc=%#x on vboxdrv\n", rc));
+ }
++#else
++ misc_deregister(&gMiscDeviceUsr);
++ misc_deregister(&gMiscDeviceSys);
++#endif
+ #else /* !CONFIG_VBOXDRV_AS_MISC */
+ # ifdef CONFIG_DEVFS_FS
+ /*
+--- ./vboxnetadp/linux/VBoxNetAdp-linux.c.orig 2015-09-25 20:55:42.309667865 -0700
++++ ./vboxnetadp/linux/VBoxNetAdp-linux.c 2015-09-25 20:58:49.331034237 -0700
+@@ -436,7 +436,11 @@
+
+ vboxNetAdpShutdown();
+ /* Remove control device */
++ #if LINUX_VERSION_CODE < KERNEL_VERSION(4,3,0)
+ rc = misc_deregister(&g_CtlDev);
++ #else
++ misc_deregister(&g_CtlDev);
++ #endif
+ if (rc < 0)
+ {
+ printk(KERN_ERR "misc_deregister failed with rc=%x\n", rc);
diff --git a/kernel/drivers/module-virtualbox/pspec.xml b/kernel/drivers/module-virtualbox/pspec.xml
index a432fe8e..13eab008 100644
--- a/kernel/drivers/module-virtualbox/pspec.xml
+++ b/kernel/drivers/module-virtualbox/pspec.xml
@@ -14,14 +14,17 @@
This package provides the kernel support for VirtualBox.
http://sourceforge.net/projects/pisilinux/files/source/module-virtualbox-5.0.4.tar.xz
- kernel-module-headers
+ kernel-module-headers
+
+ vbox_linux-4.3.diff
+
module-virtualbox
- kernel
+ kernel
module-virtualbox-userspace
@@ -47,6 +50,13 @@
+
+ 2015-12-01
+ 5.0.4
+ Rebuild for kernel-4.3.0.
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
2015-11-11
5.0.4
diff --git a/kernel/drivers/ndiswrapper/pspec.xml b/kernel/drivers/ndiswrapper/pspec.xml
index e54fd57a..bca05362 100644
--- a/kernel/drivers/ndiswrapper/pspec.xml
+++ b/kernel/drivers/ndiswrapper/pspec.xml
@@ -15,7 +15,7 @@
module-ndiswrapper allows you to use Windows XP drivers for WLAN cards without proper Linux drivers.
http://download.sourceforge.net/ndiswrapper/ndiswrapper-1.59.tar.gz
- kernel-module-headers
+ kernel-module-headers
support_kernel-4.0.patch
@@ -29,7 +29,7 @@
ndiswrapper
- kernel
+ kernel
/lib/modules
@@ -45,6 +45,13 @@
+
+ 2015-12-01
+ 1.59
+ Rebuild for kernel-4.2.6.
+ PisiLinux Community
+ admins@pisilinux.org
+
2014-11-11
1.59
diff --git a/kernel/kernel/files/configs/kernel-x86_64-config b/kernel/kernel/files/configs/kernel-x86_64-config
index c2be9da5..bc6938bd 100644
--- a/kernel/kernel/files/configs/kernel-x86_64-config
+++ b/kernel/kernel/files/configs/kernel-x86_64-config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86_64 4.2.6 Kernel Configuration
+# Linux/x86_64 4.3.0 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@@ -136,10 +136,6 @@ CONFIG_SRCU=y
# CONFIG_TASKS_RCU is not set
CONFIG_RCU_STALL_COMMON=y
# CONFIG_TREE_RCU_TRACE is not set
-CONFIG_RCU_NOCB_CPU=y
-# CONFIG_RCU_NOCB_CPU_NONE is not set
-# CONFIG_RCU_NOCB_CPU_ZERO is not set
-CONFIG_RCU_NOCB_CPU_ALL=y
# CONFIG_RCU_EXPEDITE_BOOT is not set
CONFIG_BUILD_BIN2C=y
CONFIG_IKCONFIG=y
@@ -148,11 +144,13 @@ CONFIG_LOG_BUF_SHIFT=18
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
+CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
CONFIG_ARCH_SUPPORTS_INT128=y
# CONFIG_NUMA_BALANCING is not set
CONFIG_CGROUPS=y
CONFIG_CGROUP_DEBUG=y
CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CPUSETS=y
CONFIG_PROC_PID_CPUSET=y
@@ -217,7 +215,9 @@ CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_ADVISE_SYSCALLS=y
+# CONFIG_USERFAULTFD is not set
CONFIG_PCI_QUIRKS=y
+CONFIG_MEMBARRIER=y
# CONFIG_EMBEDDED is not set
CONFIG_HAVE_PERF_EVENTS=y
@@ -229,15 +229,17 @@ CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
# CONFIG_SLUB is not set
-# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
+# CONFIG_SYSTEM_DATA_VERIFICATION is not set
CONFIG_PROFILING=y
CONFIG_TRACEPOINTS=y
+CONFIG_KEXEC_CORE=y
CONFIG_OPROFILE=m
CONFIG_OPROFILE_EVENT_MULTIPLEX=y
CONFIG_HAVE_OPROFILE=y
CONFIG_OPROFILE_NMI_TIMER=y
CONFIG_KPROBES=y
CONFIG_JUMP_LABEL=y
+# CONFIG_STATIC_KEYS_SELFTEST is not set
CONFIG_OPTPROBES=y
CONFIG_KPROBES_ON_FTRACE=y
CONFIG_UPROBES=y
@@ -396,7 +398,7 @@ CONFIG_PARAVIRT=y
CONFIG_XEN=y
CONFIG_XEN_DOM0=y
CONFIG_XEN_PVHVM=y
-CONFIG_XEN_MAX_DOMAIN_MEMORY=500
+CONFIG_XEN_512GB=y
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_XEN_DEBUG_FS=y
CONFIG_XEN_PVH=y
@@ -442,6 +444,7 @@ CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_THRESHOLD=y
# CONFIG_X86_MCE_INJECT is not set
CONFIG_X86_THERMAL_VECTOR=y
+# CONFIG_VM86 is not set
CONFIG_X86_16BIT=y
CONFIG_X86_ESPFIX64=y
CONFIG_X86_VSYSCALL_EMULATION=y
@@ -496,7 +499,6 @@ CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
-CONFIG_NEED_BOUNCE_POOL=y
CONFIG_VIRT_TO_BUS=y
CONFIG_MMU_NOTIFIER=y
CONFIG_KSM=y
@@ -516,6 +518,8 @@ CONFIG_ZPOOL=y
CONFIG_GENERIC_EARLY_IOREMAP=y
CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y
# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
+# CONFIG_IDLE_PAGE_TRACKING is not set
+CONFIG_FRAME_VECTOR=y
# CONFIG_X86_PMEM_LEGACY is not set
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
@@ -554,6 +558,7 @@ CONFIG_HOTPLUG_CPU=y
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
# CONFIG_COMPAT_VDSO is not set
# CONFIG_CMDLINE_BOOL is not set
+CONFIG_MODIFY_LDT_SYSCALL=y
CONFIG_HAVE_LIVEPATCH=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -596,6 +601,8 @@ CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_FAN=y
CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_CPU_FREQ_PSS=y
+CONFIG_ACPI_PROCESSOR_IDLE=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_IPMI=m
CONFIG_ACPI_HOTPLUG_CPU=y
@@ -802,7 +809,6 @@ CONFIG_NET_IPVTI=m
CONFIG_NET_UDP_TUNNEL=m
# CONFIG_NET_FOU is not set
# CONFIG_NET_FOU_IP_TUNNELS is not set
-# CONFIG_GENEVE_CORE is not set
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
@@ -842,6 +848,7 @@ CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
CONFIG_IPV6_MIP6=y
+CONFIG_IPV6_ILA=m
CONFIG_INET6_XFRM_TUNNEL=m
CONFIG_INET6_TUNNEL=m
CONFIG_INET6_XFRM_MODE_TRANSPORT=m
@@ -1062,6 +1069,7 @@ CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
# CONFIG_IP_VS_FO is not set
+CONFIG_IP_VS_OVF=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
@@ -1090,7 +1098,9 @@ CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_NF_TABLES_IPV4=m
CONFIG_NFT_CHAIN_ROUTE_IPV4=m
CONFIG_NFT_REJECT_IPV4=m
+CONFIG_NFT_DUP_IPV4=m
CONFIG_NF_TABLES_ARP=m
+CONFIG_NF_DUP_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_NF_REJECT_IPV4=y
@@ -1133,6 +1143,8 @@ CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_NF_TABLES_IPV6=m
CONFIG_NFT_CHAIN_ROUTE_IPV6=m
CONFIG_NFT_REJECT_IPV6=m
+CONFIG_NFT_DUP_IPV6=m
+CONFIG_NF_DUP_IPV6=m
CONFIG_NF_REJECT_IPV6=m
CONFIG_NF_LOG_IPV6=m
CONFIG_NF_NAT_IPV6=m
@@ -1336,6 +1348,7 @@ CONFIG_BATMAN_ADV_DAT=y
CONFIG_OPENVSWITCH=m
CONFIG_OPENVSWITCH_GRE=m
CONFIG_OPENVSWITCH_VXLAN=m
+CONFIG_OPENVSWITCH_GENEVE=m
CONFIG_VSOCKETS=m
CONFIG_VMWARE_VMCI_VSOCKETS=m
CONFIG_NETLINK_MMAP=y
@@ -1343,6 +1356,7 @@ CONFIG_NETLINK_DIAG=m
CONFIG_MPLS=y
CONFIG_NET_MPLS_GSO=m
CONFIG_MPLS_ROUTING=m
+CONFIG_MPLS_IPTUNNEL=m
CONFIG_HSR=m
# CONFIG_NET_SWITCHDEV is not set
CONFIG_RPS=y
@@ -1447,6 +1461,7 @@ CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_CMTP=m
CONFIG_BT_HIDP=m
+CONFIG_BT_HS=y
CONFIG_BT_LE=y
CONFIG_BT_6LOWPAN=m
CONFIG_BT_DEBUGFS=y
@@ -1457,6 +1472,7 @@ CONFIG_BT_DEBUGFS=y
CONFIG_BT_INTEL=m
CONFIG_BT_BCM=m
CONFIG_BT_RTL=m
+CONFIG_BT_QCA=m
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIBTUSB_BCM=y
CONFIG_BT_HCIBTUSB_RTL=y
@@ -1469,6 +1485,7 @@ CONFIG_BT_HCIUART_LL=y
CONFIG_BT_HCIUART_3WIRE=y
CONFIG_BT_HCIUART_INTEL=y
CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIUART_QCA=y
CONFIG_BT_HCIBCM203X=m
CONFIG_BT_HCIBPA10X=m
CONFIG_BT_HCIBFUSB=m
@@ -1557,6 +1574,9 @@ CONFIG_NFC_ST21NFCA=m
CONFIG_NFC_ST21NFCA_I2C=m
# CONFIG_NFC_ST_NCI is not set
# CONFIG_NFC_NXP_NCI is not set
+CONFIG_NFC_S3FWRN5=m
+CONFIG_NFC_S3FWRN5_I2C=m
+CONFIG_LWTUNNEL=y
CONFIG_HAVE_BPF_JIT=y
#
@@ -1804,6 +1824,7 @@ CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=1
# CONFIG_ECHO is not set
# CONFIG_CXL_BASE is not set
# CONFIG_CXL_KERNEL_API is not set
+# CONFIG_CXL_EEH is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
@@ -2129,6 +2150,7 @@ CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
# CONFIG_IPVLAN is not set
CONFIG_VXLAN=m
+CONFIG_GENEVE=m
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
CONFIG_NETPOLL=y
@@ -2138,6 +2160,7 @@ CONFIG_TUN=m
CONFIG_VETH=m
CONFIG_VIRTIO_NET=m
# CONFIG_NLMON is not set
+CONFIG_NET_VRF=m
CONFIG_SUNGEM_PHY=m
# CONFIG_ARCNET is not set
CONFIG_ATM_DRIVERS=y
@@ -2214,6 +2237,7 @@ CONFIG_CNIC=m
CONFIG_TIGON3=m
CONFIG_BNX2X=m
CONFIG_BNX2X_SRIOV=y
+CONFIG_BNX2X_VXLAN=y
CONFIG_NET_VENDOR_BROCADE=y
CONFIG_BNA=m
CONFIG_NET_VENDOR_CAVIUM=y
@@ -2299,6 +2323,8 @@ CONFIG_MLX4_EN_VXLAN=y
CONFIG_MLX4_CORE=m
CONFIG_MLX4_DEBUG=y
# CONFIG_MLX5_CORE is not set
+CONFIG_MLXSW_CORE=m
+CONFIG_MLXSW_PCI=m
CONFIG_NET_VENDOR_MICREL=y
# CONFIG_KS8842 is not set
# CONFIG_KS8851_MLL is not set
@@ -2372,6 +2398,7 @@ CONFIG_HAPPYMEAL=m
CONFIG_SUNGEM=m
CONFIG_CASSINI=m
CONFIG_NIU=m
+CONFIG_NET_VENDOR_SYNOPSYS=y
CONFIG_NET_VENDOR_TEHUTI=y
CONFIG_TEHUTI=m
CONFIG_NET_VENDOR_TI=y
@@ -2397,6 +2424,7 @@ CONFIG_PHYLIB=y
#
# MII PHY device drivers
#
+CONFIG_AQUANTIA_PHY=m
CONFIG_AT803X_PHY=m
CONFIG_AMD_PHY=m
CONFIG_MARVELL_PHY=m
@@ -2405,6 +2433,7 @@ CONFIG_QSEMI_PHY=m
CONFIG_LXT_PHY=m
CONFIG_CICADA_PHY=m
CONFIG_VITESSE_PHY=m
+CONFIG_TERANETICS_PHY=m
CONFIG_SMSC_PHY=m
CONFIG_BROADCOM_PHY=m
CONFIG_BCM7XXX_PHY=m
@@ -2415,10 +2444,13 @@ CONFIG_NATIONAL_PHY=m
CONFIG_STE10XP=m
CONFIG_LSI_ET1011C_PHY=m
CONFIG_MICREL_PHY=m
+CONFIG_DP83848_PHY=m
# CONFIG_DP83867_PHY is not set
+CONFIG_MICROCHIP_PHY=m
CONFIG_FIXED_PHY=y
CONFIG_MDIO_BITBANG=m
CONFIG_MDIO_GPIO=m
+CONFIG_MDIO_OCTEON=m
# CONFIG_MDIO_BCM_UNIMAC is not set
# CONFIG_PLIP is not set
CONFIG_PPP=m
@@ -2444,6 +2476,7 @@ CONFIG_USB_KAWETH=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_RTL8150=m
CONFIG_USB_RTL8152=m
+CONFIG_USB_LAN78XX=m
CONFIG_USB_USBNET=m
CONFIG_USB_NET_AX8817X=m
CONFIG_USB_NET_AX88179_178A=m
@@ -2478,6 +2511,7 @@ CONFIG_USB_NET_INT51X1=m
CONFIG_USB_IPHETH=m
CONFIG_USB_SIERRA_NET=m
CONFIG_USB_VL600=m
+CONFIG_USB_NET_CH9200=m
CONFIG_WLAN=y
# CONFIG_PCMCIA_RAYCS is not set
# CONFIG_LIBERTAS_THINFIRM is not set
@@ -2699,6 +2733,7 @@ CONFIG_IEEE802154_FAKELB=m
CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_VMXNET3=m
+CONFIG_FUJITSU_ES=m
CONFIG_HYPERV_NET=m
CONFIG_ISDN=y
CONFIG_ISDN_I4L=m
@@ -2940,6 +2975,7 @@ CONFIG_TABLET_USB_HANWANG=m
CONFIG_TABLET_USB_KBTAB=m
CONFIG_TABLET_SERIAL_WACOM4=m
CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_PROPERTIES=y
CONFIG_TOUCHSCREEN_AD7879=m
CONFIG_TOUCHSCREEN_AD7879_I2C=m
CONFIG_TOUCHSCREEN_ATMEL_MXT=m
@@ -3118,6 +3154,7 @@ CONFIG_SERIAL_8250_DW=m
#
# Non-8250 serial port support
#
+CONFIG_SERIAL_UARTLITE=m
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_JSM=m
@@ -3207,6 +3244,7 @@ CONFIG_I2C_MUX_GPIO=m
CONFIG_I2C_MUX_PCA9541=m
CONFIG_I2C_MUX_PCA954x=m
CONFIG_I2C_MUX_PINCTRL=m
+CONFIG_I2C_MUX_REG=m
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_SMBUS=m
CONFIG_I2C_ALGOBIT=m
@@ -3249,6 +3287,7 @@ CONFIG_I2C_CBUS_GPIO=m
CONFIG_I2C_DESIGNWARE_CORE=m
CONFIG_I2C_DESIGNWARE_PLATFORM=m
# CONFIG_I2C_DESIGNWARE_PCI is not set
+CONFIG_I2C_EMEV2=m
CONFIG_I2C_GPIO=m
# CONFIG_I2C_OCORES is not set
CONFIG_I2C_PCA_PLATFORM=m
@@ -3519,6 +3558,7 @@ CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_LM25066=m
CONFIG_SENSORS_LTC2978=m
CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX20751=m
CONFIG_SENSORS_MAX34440=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_TPS40422=m
@@ -3590,10 +3630,7 @@ CONFIG_X86_PKG_TEMP_THERMAL=m
CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
CONFIG_INTEL_SOC_DTS_THERMAL=m
# CONFIG_INT340X_THERMAL is not set
-
-#
-# Texas Instruments thermal drivers
-#
+CONFIG_INTEL_PCH_THERMAL=m
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_CORE=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
@@ -3699,6 +3736,9 @@ CONFIG_MFD_CROS_EC_I2C=m
CONFIG_MFD_INTEL_QUARK_I2C_GPIO=m
CONFIG_LPC_ICH=m
CONFIG_LPC_SCH=m
+CONFIG_MFD_INTEL_LPSS=m
+CONFIG_MFD_INTEL_LPSS_ACPI=m
+CONFIG_MFD_INTEL_LPSS_PCI=m
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
CONFIG_MFD_MT6397=m
@@ -3966,13 +4006,8 @@ CONFIG_MEDIA_PCI_SUPPORT=y
# Media capture support
#
CONFIG_VIDEO_MEYE=m
-
-#
-# Media capture/analog TV support
-#
-CONFIG_VIDEO_IVTV=m
-CONFIG_VIDEO_IVTV_ALSA=m
-CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_SOLO6X10=m
+# CONFIG_VIDEO_TW68 is not set
CONFIG_VIDEO_ZORAN=m
CONFIG_VIDEO_ZORAN_DC30=m
CONFIG_VIDEO_ZORAN_ZR36060=m
@@ -3981,11 +4016,16 @@ CONFIG_VIDEO_ZORAN_DC10=m
CONFIG_VIDEO_ZORAN_LML33=m
CONFIG_VIDEO_ZORAN_LML33R10=m
CONFIG_VIDEO_ZORAN_AVS6EYES=m
+
+#
+# Media capture/analog TV support
+#
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_IVTV_ALSA=m
+CONFIG_VIDEO_FB_IVTV=m
CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_HEXIUM_ORION=m
CONFIG_VIDEO_MXB=m
-CONFIG_VIDEO_SOLO6X10=m
-# CONFIG_VIDEO_TW68 is not set
# CONFIG_VIDEO_DT3155 is not set
#
@@ -4041,6 +4081,7 @@ CONFIG_VIDEO_SH_VEU=m
CONFIG_V4L_TEST_DRIVERS=y
# CONFIG_VIDEO_VIVID is not set
# CONFIG_VIDEO_VIM2M is not set
+CONFIG_DVB_PLATFORM_DRIVERS=y
#
# Supported MMC/SDIO adapters
@@ -4360,14 +4401,11 @@ CONFIG_INTEL_GTT=y
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_VGA_SWITCHEROO=y
-
-#
-# Direct Rendering Manager
-#
CONFIG_DRM=m
CONFIG_DRM_MIPI_DSI=y
CONFIG_DRM_KMS_HELPER=m
CONFIG_DRM_KMS_FB_HELPER=y
+CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_TTM=m
@@ -4390,8 +4428,6 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_I810=m
CONFIG_DRM_I915=m
-CONFIG_DRM_I915_KMS=y
-CONFIG_DRM_I915_FBDEV=y
CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT=y
CONFIG_DRM_MACH64=m
CONFIG_DRM_MGA=m
@@ -4416,6 +4452,11 @@ CONFIG_DRM_PANEL=y
#
# Display Panels
#
+CONFIG_DRM_BRIDGE=y
+
+#
+# Display Interface Bridges
+#
# CONFIG_HSA_AMD is not set
#
@@ -4494,6 +4535,7 @@ CONFIG_XEN_FBDEV_FRONTEND=y
# CONFIG_FB_AUO_K190X is not set
CONFIG_FB_HYPERV=m
# CONFIG_FB_SIMPLE is not set
+CONFIG_FB_SM712=m
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_LCD_PLATFORM=m
@@ -4501,6 +4543,7 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
CONFIG_BACKLIGHT_PWM=m
CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_PM8941_WLED=m
# CONFIG_BACKLIGHT_SAHARA is not set
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
@@ -4736,6 +4779,7 @@ CONFIG_HID_EMS_FF=m
CONFIG_HID_ELECOM=m
CONFIG_HID_ELO=m
CONFIG_HID_EZKEY=y
+CONFIG_HID_GEMBIRD=m
CONFIG_HID_HOLTEK=m
CONFIG_HOLTEK_FF=y
CONFIG_HID_GT683R=m
@@ -4912,6 +4956,10 @@ CONFIG_USB_MUSB_HOST=y
#
# Platform Glue Layer
#
+
+#
+# MUSB DMA mode
+#
CONFIG_MUSB_PIO_ONLY=y
CONFIG_USB_DWC3=m
CONFIG_USB_DWC3_HOST=y
@@ -4920,11 +4968,6 @@ CONFIG_USB_DWC3_HOST=y
# Platform Glue Driver Support
#
CONFIG_USB_DWC3_PCI=m
-
-#
-# Debugging features
-#
-# CONFIG_USB_DWC3_DEBUG is not set
CONFIG_USB_DWC2=y
CONFIG_USB_DWC2_HOST=y
@@ -5133,7 +5176,6 @@ CONFIG_LEDS_LM355x=m
# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
#
CONFIG_LEDS_BLINKM=m
-CONFIG_LEDS_PM8941_WLED=m
#
# LED Triggers
@@ -5162,11 +5204,8 @@ CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
CONFIG_INFINIBAND_ADDR_TRANS=y
CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_MTHCA_DEBUG=y
-CONFIG_INFINIBAND_IPATH=m
CONFIG_INFINIBAND_QIB=m
CONFIG_INFINIBAND_QIB_DCA=y
-CONFIG_INFINIBAND_AMSO1100=m
-# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
CONFIG_INFINIBAND_CXGB3=m
# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
CONFIG_INFINIBAND_CXGB4=m
@@ -5189,7 +5228,6 @@ CONFIG_EDAC=y
CONFIG_EDAC_LEGACY_SYSFS=y
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_DECODE_MCE=m
-CONFIG_EDAC_MCE_INJ=m
CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_AMD64=m
# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
@@ -5298,15 +5336,16 @@ CONFIG_DMADEVICES=y
#
# DMA Devices
#
-CONFIG_INTEL_MIC_X100_DMA=m
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_VIRTUAL_CHANNELS=m
+CONFIG_DMA_ACPI=y
+CONFIG_IDMA64=m
CONFIG_INTEL_IOATDMA=m
+CONFIG_INTEL_MIC_X100_DMA=m
# CONFIG_DW_DMAC is not set
# CONFIG_DW_DMAC_PCI is not set
CONFIG_HSU_DMA=m
CONFIG_HSU_DMA_PCI=m
-CONFIG_DMA_ENGINE=y
-CONFIG_DMA_VIRTUAL_CHANNELS=m
-CONFIG_DMA_ACPI=y
#
# DMA Clients
@@ -5384,6 +5423,8 @@ CONFIG_XEN_HAVE_PVMMU=y
CONFIG_XEN_EFI=y
CONFIG_XEN_AUTO_XLATE=y
CONFIG_XEN_ACPI=y
+CONFIG_XEN_SYMS=y
+CONFIG_XEN_HAVE_VPMU=y
CONFIG_STAGING=y
# CONFIG_SLICOSS is not set
# CONFIG_PRISM2_USB is not set
@@ -5400,7 +5441,6 @@ CONFIG_8723AU_BT_COEXIST=y
CONFIG_RTS5208=m
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
-CONFIG_FB_SM7XX=m
CONFIG_FB_SM750=m
# CONFIG_FB_XGI is not set
# CONFIG_FT1000 is not set
@@ -5424,6 +5464,15 @@ CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
CONFIG_LIRC_ZILOG=m
+CONFIG_STAGING_RDMA=y
+CONFIG_INFINIBAND_AMSO1100=m
+# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
+CONFIG_INFINIBAND_HFI1=m
+CONFIG_HFI1_DEBUG_SDMA_ORDER=y
+CONFIG_HFI1_VERBS_31BIT_PSN=y
+CONFIG_SDMA_VERBOSITY=y
+CONFIG_PRESCAN_RXQ=y
+CONFIG_INFINIBAND_IPATH=m
#
# Android
@@ -5436,7 +5485,6 @@ CONFIG_SYNC=y
CONFIG_SW_SYNC=y
CONFIG_SW_SYNC_USER=y
# CONFIG_ION is not set
-CONFIG_USB_WPAN_HCD=m
CONFIG_WIMAX_GDM72XX=m
CONFIG_WIMAX_GDM72XX_QOS=y
CONFIG_WIMAX_GDM72XX_K_MODE=y
@@ -5455,6 +5503,15 @@ CONFIG_DGAP=m
# CONFIG_CRYPTO_SKEIN is not set
CONFIG_UNISYSSPAR=y
# CONFIG_UNISYS_VISORBUS is not set
+CONFIG_MOST=m
+CONFIG_MOSTCORE=m
+CONFIG_AIM_CDEV=m
+CONFIG_AIM_NETWORK=m
+CONFIG_AIM_SOUND=m
+CONFIG_AIM_V4L2=m
+CONFIG_HDM_DIM2=m
+CONFIG_HDM_I2C=m
+CONFIG_HDM_USB=m
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
@@ -5510,6 +5567,7 @@ CONFIG_INTEL_RST=m
CONFIG_SHUTTLE_WMI=m
CONFIG_PVPANIC=m
# CONFIG_INTEL_PMC_IPC is not set
+CONFIG_SURFACE_PRO3_BUTTON=m
CONFIG_CHROME_PLATFORMS=y
CONFIG_CHROMEOS_LAPTOP=m
CONFIG_CHROMEOS_PSTORE=m
@@ -5624,7 +5682,12 @@ CONFIG_PHY_SAMSUNG_USB2=m
CONFIG_POWERCAP=y
CONFIG_INTEL_RAPL=m
# CONFIG_MCB is not set
+
+#
+# Performance monitor support
+#
CONFIG_RAS=y
+CONFIG_AMD_MCE_INJ=m
CONFIG_THUNDERBOLT=m
#
@@ -5633,6 +5696,7 @@ CONFIG_THUNDERBOLT=m
CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
# CONFIG_LIBNVDIMM is not set
+CONFIG_NVMEM=m
#
# Firmware Drivers
@@ -5675,8 +5739,6 @@ CONFIG_EXT2_FS_XATTR=y
# CONFIG_EXT2_FS_POSIX_ACL is not set
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT3_FS=m
-CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
-CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_POSIX_ACL is not set
CONFIG_EXT3_FS_SECURITY=y
CONFIG_EXT4_FS=y
@@ -5685,8 +5747,6 @@ CONFIG_EXT4_FS_SECURITY=y
CONFIG_EXT4_ENCRYPTION=m
CONFIG_EXT4_FS_ENCRYPTION=y
# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD=m
-# CONFIG_JBD_DEBUG is not set
CONFIG_JBD2=y
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=y
@@ -6128,6 +6188,7 @@ CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_FIRMWARE is not set
# CONFIG_TEST_UDELAY is not set
# CONFIG_MEMTEST is not set
+CONFIG_TEST_STATIC_KEYS=m
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_STRICT_DEVMEM=y
@@ -6212,6 +6273,7 @@ CONFIG_CRYPTO_RNG_DEFAULT=y
CONFIG_CRYPTO_PCOMP=m
CONFIG_CRYPTO_PCOMP2=y
CONFIG_CRYPTO_AKCIPHER2=y
+CONFIG_CRYPTO_AKCIPHER=m
# CONFIG_CRYPTO_RSA is not set
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
@@ -6219,6 +6281,7 @@ CONFIG_CRYPTO_USER=m
# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
CONFIG_CRYPTO_GF128MUL=y
CONFIG_CRYPTO_NULL=y
+CONFIG_CRYPTO_NULL2=y
CONFIG_CRYPTO_PCRYPT=m
CONFIG_CRYPTO_WORKQUEUE=y
CONFIG_CRYPTO_CRYPTD=y
@@ -6266,7 +6329,8 @@ CONFIG_CRYPTO_CRC32_PCLMUL=m
CONFIG_CRYPTO_CRCT10DIF=y
# CONFIG_CRYPTO_CRCT10DIF_PCLMUL is not set
CONFIG_CRYPTO_GHASH=m
-# CONFIG_CRYPTO_POLY1305 is not set
+CONFIG_CRYPTO_POLY1305=m
+CONFIG_CRYPTO_POLY1305_X86_64=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
@@ -6311,7 +6375,8 @@ CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m
CONFIG_CRYPTO_SALSA20_X86_64=m
-# CONFIG_CRYPTO_CHACHA20 is not set
+CONFIG_CRYPTO_CHACHA20=m
+CONFIG_CRYPTO_CHACHA20_X86_64=m
CONFIG_CRYPTO_SEED=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
@@ -6359,11 +6424,17 @@ CONFIG_CRYPTO_DEV_CCP_DD=m
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_CRYPTO_DEV_QAT=m
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
+CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
CONFIG_ASYMMETRIC_KEY_TYPE=m
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m
CONFIG_PUBLIC_KEY_ALGO_RSA=m
CONFIG_X509_CERTIFICATE_PARSER=m
# CONFIG_PKCS7_MESSAGE_PARSER is not set
+
+#
+# Certificates for signature checking
+#
+# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQFD=y
@@ -6399,7 +6470,6 @@ CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_IO=y
-CONFIG_PERCPU_RWSEM=y
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
CONFIG_CRC_CCITT=m
@@ -6461,7 +6531,6 @@ CONFIG_GLOB=y
CONFIG_NLATTR=y
CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
CONFIG_LRU_CACHE=m
-CONFIG_AVERAGE=y
CONFIG_CLZ_TAB=y
CONFIG_CORDIC=m
# CONFIG_DDR is not set
@@ -6472,14 +6541,15 @@ CONFIG_FONT_SUPPORT=y
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
+# CONFIG_SG_SPLIT is not set
CONFIG_ARCH_HAS_SG_CHAIN=y
CONFIG_ARCH_HAS_PMEM_API=y
+CONFIG_ARCH_HAS_MMIO_FLUSH=y
#
# Unofficial 3rd party kernel additions
#
CONFIG_NDISWRAPPER=m
-CONFIG_RTL8723AS=m
CONFIG_RTL8723BS=m
CONFIG_WLAN_SDIO=y
CONFIG_VIAHSS=m
diff --git a/kernel/kernel/files/patches/mageia/3rd-rtl8723bs-4.2-buildfix.patch b/kernel/kernel/files/patches/mageia/3rd-rtl8723bs-4.2-buildfix.patch
deleted file mode 100644
index ef5769dc..00000000
--- a/kernel/kernel/files/patches/mageia/3rd-rtl8723bs-4.2-buildfix.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From:
-https://github.com/lwfinger/rtl8723bs/commit/49fcb39bc7dc0b7ae61463d493c0b630dc6a27ca
-
-From 49fcb39bc7dc0b7ae61463d493c0b630dc6a27ca Mon Sep 17 00:00:00 2001
-From: Larry Finger
-Date: Sat, 15 Aug 2015 10:51:20 -0500
-Subject: [PATCH] rtl8723bs: Fix builds on kernel 4.2
-
-Signed-off-by: Larry Finger
-[adapted to mga kernel / tmb]
-Signed-off-by: Thomas Backlund
----
- hal/hal_com_phycfg.c | 38 +++++++++++++++++++-------------------
- os_dep/ioctl_cfg80211.c | 5 +++++
- 2 files changed, 24 insertions(+), 19 deletions(-)
-
- 3rdparty/rtl8723bs/hal/hal_com_phycfg.c | 38 ++++++++++++++---------------
- 3rdparty/rtl8723bs/os_dep/ioctl_cfg80211.c | 5 +++
- 2 files changed, 24 insertions(+), 19 deletions(-)
-
-diff -Nurp linux/3rdparty/rtl8723bs.orig/hal/hal_com_phycfg.c linux/3rdparty/rtl8723bs/hal/hal_com_phycfg.c
---- linux/3rdparty/rtl8723bs.orig/hal/hal_com_phycfg.c 2015-09-30 00:51:13.000000000 +0300
-+++ linux/3rdparty/rtl8723bs/hal/hal_com_phycfg.c 2015-09-30 01:49:37.475440016 +0300
-@@ -2254,7 +2254,7 @@ Hal_ChannelPlanToRegulation(
- #ifdef CONFIG_LOAD_PHY_PARA_FROM_FILE
-
- extern char *rtw_phy_file_path;
--static char file_path[PATH_MAX];
-+static char rtl_file_path[PATH_MAX];
-
- #define GetLineFromBuffer(buffer) strsep(&buffer, "\n")
-
-@@ -2276,11 +2276,11 @@ phy_ConfigMACWithParaFile(
-
- if ((pHalData->mac_reg_len == 0) && (pHalData->mac_reg == NULL))
- {
-- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
-+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
-
-- if (rtw_is_file_readable(file_path) == true)
-+ if (rtw_is_file_readable(rtl_file_path) == true)
- {
-- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
-+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
- if (rlen > 0)
- {
- rtStatus = _SUCCESS;
-@@ -2375,11 +2375,11 @@ phy_ConfigBBWithParaFile(
-
- if ((pBufLen != NULL) && (*pBufLen == 0) && (pBuf == NULL))
- {
-- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
-+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
-
-- if (rtw_is_file_readable(file_path) == true)
-+ if (rtw_is_file_readable(rtl_file_path) == true)
- {
-- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
-+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
- if (rlen > 0)
- {
- rtStatus = _SUCCESS;
-@@ -2824,11 +2824,11 @@ phy_ConfigBBWithPgParaFile(
-
- if ((pHalData->bb_phy_reg_pg_len == 0) && (pHalData->bb_phy_reg_pg == NULL))
- {
-- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
-+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
-
-- if (rtw_is_file_readable(file_path) == true)
-+ if (rtw_is_file_readable(rtl_file_path) == true)
- {
-- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
-+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
- if (rlen > 0)
- {
- rtStatus = _SUCCESS;
-@@ -2904,11 +2904,11 @@ PHY_ConfigRFWithParaFile(
-
- if ((pBufLen != NULL) && (*pBufLen == 0) && (pBuf == NULL))
- {
-- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
-+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
-
-- if (rtw_is_file_readable(file_path) == true)
-+ if (rtw_is_file_readable(rtl_file_path) == true)
- {
-- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
-+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
- if (rlen > 0)
- {
- rtStatus = _SUCCESS;
-@@ -3178,11 +3178,11 @@ PHY_ConfigRFWithTxPwrTrackParaFile(
-
- if ((pHalData->rf_tx_pwr_track_len == 0) && (pHalData->rf_tx_pwr_track == NULL))
- {
-- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
-+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
-
-- if (rtw_is_file_readable(file_path) == true)
-+ if (rtw_is_file_readable(rtl_file_path) == true)
- {
-- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
-+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
- if (rlen > 0)
- {
- rtStatus = _SUCCESS;
-@@ -3527,11 +3527,11 @@ PHY_ConfigRFWithPowerLimitTableParaFile(
-
- if ((pHalData->rf_tx_pwr_lmt_len == 0) && (pHalData->rf_tx_pwr_lmt == NULL))
- {
-- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
-+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
-
-- if (rtw_is_file_readable(file_path) == true)
-+ if (rtw_is_file_readable(rtl_file_path) == true)
- {
-- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
-+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
- if (rlen > 0)
- {
- rtStatus = _SUCCESS;
-diff -Nurp linux/3rdparty/rtl8723bs.orig/os_dep/ioctl_cfg80211.c linux/3rdparty/rtl8723bs/os_dep/ioctl_cfg80211.c
---- linux/3rdparty/rtl8723bs.orig/os_dep/ioctl_cfg80211.c 2015-09-30 00:51:13.000000000 +0300
-+++ linux/3rdparty/rtl8723bs/os_dep/ioctl_cfg80211.c 2015-09-30 01:49:37.476440020 +0300
-@@ -587,7 +587,12 @@ void rtw_cfg80211_indicate_disconnect(_a
-
- if (!padapter->mlmepriv.not_indic_disco) {
- if(check_fwstate(&padapter->mlmepriv, _FW_LINKED))
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0))
-+ cfg80211_disconnected(padapter->pnetdev, 0,
-+ NULL, 0, true, GFP_ATOMIC);
-+#else
- cfg80211_disconnected(padapter->pnetdev, 0, NULL, 0, GFP_ATOMIC);
-+#endif
- else
- cfg80211_connect_result(padapter->pnetdev, NULL, NULL, 0, NULL, 0,
- WLAN_STATUS_UNSPECIFIED_FAILURE, GFP_ATOMIC/*GFP_KERNEL*/);
diff --git a/kernel/kernel/files/patches/mageia/3rd-rtl8723bs-buildfix.patch b/kernel/kernel/files/patches/mageia/3rd-rtl8723bs-buildfix.patch
deleted file mode 100644
index 61c96c46..00000000
--- a/kernel/kernel/files/patches/mageia/3rd-rtl8723bs-buildfix.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 842e61cb85813b1ed8a1646cbe6739950c0c9822 Mon Sep 17 00:00:00 2001
-From: Larry Finger
-Date: Thu, 7 May 2015 19:08:17 +0000
-Subject: [PATCH] rtl8723bs: Fix Makefile to allow warnings
-
-Signed-off-by: Larry Finger
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git linux.old/3rdparty/rtl8723bs/Makefile linux/3rdparty/rtl8723bs/Makefile
-index a4d9f45..4da73fa 100644
---- linux.old/3rdparty/rtl8723bs/Makefile
-+++ linux/3rdparty/rtl8723bs/Makefile
-@@ -3,7 +3,7 @@ EXTRA_CFLAGS += -O1
- #EXTRA_CFLAGS += -O3
- #EXTRA_CFLAGS += -Wall
- #EXTRA_CFLAGS += -Wextra
--EXTRA_CFLAGS += -Werror
-+#EXTRA_CFLAGS += -Werror
- #EXTRA_CFLAGS += -pedantic
- #EXTRA_CFLAGS += -Wshadow -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
-
diff --git a/kernel/kernel/files/patches/mageia/3rd-rtl8723bs-updates.patch b/kernel/kernel/files/patches/mageia/3rd-rtl8723bs-updates.patch
deleted file mode 100644
index a620e888..00000000
--- a/kernel/kernel/files/patches/mageia/3rd-rtl8723bs-updates.patch
+++ /dev/null
@@ -1,28991 +0,0 @@
-
-Updates / cleanups from:
-
-git://github.com/hadess/rtl8723bs.git
-
-Topmost commit:
-
-commit 8d329c00dba5d8805a738ecea2bddde8eb0e4945
-Author: Bastien Nocera
-Date: Tue May 5 18:30:38 2015 +0200
-
- ioctl_linux: Fix compiling with Wake-On-LAN support
-
-
-
-Signed-off-by: Thomas backlund
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_ap.c linux/3rdparty/rtl8723bs/core/rtw_ap.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_ap.c 2015-05-10 14:36:05.663667846 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_ap.c 2015-05-07 17:46:55.000000000 +0300
-@@ -21,9 +21,6 @@
-
- #include
-
--
--#ifdef CONFIG_AP_MODE
--
- extern unsigned char RTW_WPA_OUI[];
- extern unsigned char WMM_OUI[];
- extern unsigned char WPS_OUI[];
-@@ -32,7 +29,6 @@ extern unsigned char WFD_OUI[];
-
- void init_mlme_ap_info(_adapter *padapter)
- {
-- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
- struct sta_priv *pstapriv = &padapter->stapriv;
- struct wlan_acl_pool *pacl_list = &pstapriv->acl_list;
-@@ -71,9 +67,9 @@ void free_mlme_ap_info(_adapter *padapte
-
- //free bc/mc sta_info
- psta = rtw_get_bcmc_stainfo(padapter);
-- _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ spin_lock_bh(&(pstapriv->sta_hash_lock));
- rtw_free_stainfo(padapter, psta);
-- _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ spin_unlock_bh(&(pstapriv->sta_hash_lock));
- }
-
- static void update_BCNTIM(_adapter *padapter)
-@@ -191,7 +187,7 @@ static void update_BCNTIM(_adapter *pada
- {
- memcpy(dst_ie, pbackup_remainder_ie, remainder_ielen);
-
-- rtw_mfree(pbackup_remainder_ie, remainder_ielen);
-+ kfree(pbackup_remainder_ie);
- }
-
- offset = (uint)(dst_ie - pie);
-@@ -200,122 +196,6 @@ static void update_BCNTIM(_adapter *pada
- }
- }
-
--void rtw_add_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index, u8 *data, u8 len)
--{
-- PNDIS_802_11_VARIABLE_IEs pIE;
-- u8 bmatch = false;
-- u8 *pie = pnetwork->IEs;
-- u8 *p=NULL, *dst_ie=NULL, *premainder_ie=NULL, *pbackup_remainder_ie=NULL;
-- u32 i, offset, ielen, ie_offset, remainder_ielen = 0;
--
-- for (i = sizeof(NDIS_802_11_FIXED_IEs); i < pnetwork->IELength;)
-- {
-- pIE = (PNDIS_802_11_VARIABLE_IEs)(pnetwork->IEs + i);
--
-- if (pIE->ElementID > index)
-- {
-- break;
-- }
-- else if(pIE->ElementID == index) // already exist the same IE
-- {
-- p = (u8 *)pIE;
-- ielen = pIE->Length;
-- bmatch = true;
-- break;
-- }
--
-- p = (u8 *)pIE;
-- ielen = pIE->Length;
-- i += (pIE->Length + 2);
-- }
--
-- if (p != NULL && ielen>0)
-- {
-- ielen += 2;
--
-- premainder_ie = p+ielen;
--
-- ie_offset = (sint)(p -pie);
--
-- remainder_ielen = pnetwork->IELength - ie_offset - ielen;
--
-- if(bmatch)
-- dst_ie = p;
-- else
-- dst_ie = (p+ielen);
-- }
--
-- if(dst_ie == NULL)
-- return;
--
-- if(remainder_ielen>0)
-- {
-- pbackup_remainder_ie = rtw_malloc(remainder_ielen);
-- if(pbackup_remainder_ie && premainder_ie)
-- memcpy(pbackup_remainder_ie, premainder_ie, remainder_ielen);
-- }
--
-- *dst_ie++=index;
-- *dst_ie++=len;
--
-- memcpy(dst_ie, data, len);
-- dst_ie+=len;
--
-- //copy remainder IE
-- if(pbackup_remainder_ie)
-- {
-- memcpy(dst_ie, pbackup_remainder_ie, remainder_ielen);
--
-- rtw_mfree(pbackup_remainder_ie, remainder_ielen);
-- }
--
-- offset = (uint)(dst_ie - pie);
-- pnetwork->IELength = offset + remainder_ielen;
--}
--
--void rtw_remove_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index)
--{
-- u8 *p, *dst_ie=NULL, *premainder_ie=NULL, *pbackup_remainder_ie=NULL;
-- uint offset, ielen, ie_offset, remainder_ielen = 0;
-- u8 *pie = pnetwork->IEs;
--
-- p = rtw_get_ie(pie + _FIXED_IE_LENGTH_, index, &ielen, pnetwork->IELength - _FIXED_IE_LENGTH_);
-- if (p != NULL && ielen>0)
-- {
-- ielen += 2;
--
-- premainder_ie = p+ielen;
--
-- ie_offset = (sint)(p -pie);
--
-- remainder_ielen = pnetwork->IELength - ie_offset - ielen;
--
-- dst_ie = p;
-- }
-- else {
-- return;
-- }
--
-- if(remainder_ielen>0)
-- {
-- pbackup_remainder_ie = rtw_malloc(remainder_ielen);
-- if(pbackup_remainder_ie && premainder_ie)
-- memcpy(pbackup_remainder_ie, premainder_ie, remainder_ielen);
-- }
--
-- //copy remainder IE
-- if(pbackup_remainder_ie)
-- {
-- memcpy(dst_ie, pbackup_remainder_ie, remainder_ielen);
--
-- rtw_mfree(pbackup_remainder_ie, remainder_ielen);
-- }
--
-- offset = (uint)(dst_ie - pie);
-- pnetwork->IELength = offset + remainder_ielen;
--}
--
--
- u8 chk_sta_is_alive(struct sta_info *psta);
- u8 chk_sta_is_alive(struct sta_info *psta)
- {
-@@ -349,19 +229,19 @@ void expire_timeout_chk(_adapter *padapt
- int i;
-
-
-- _enter_critical_bh(&pstapriv->auth_list_lock, &irqL);
-+ spin_lock_bh(&pstapriv->auth_list_lock);
-
- phead = &pstapriv->auth_list;
- plist = get_next(phead);
-
- //check auth_queue
- #ifdef DBG_EXPIRATION_CHK
-- if (rtw_end_of_queue_search(phead, plist) == false) {
-+ if (phead != plist) {
- DBG_871X(FUNC_NDEV_FMT" auth_list, cnt:%u\n"
- , FUNC_NDEV_ARG(padapter->pnetdev), pstapriv->auth_list_cnt);
- }
- #endif
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ while (phead != plist)
- {
- psta = LIST_CONTAINOR(plist, struct sta_info, auth_list);
-
-@@ -372,41 +252,41 @@ void expire_timeout_chk(_adapter *padapt
- psta->expire_to--;
- if (psta->expire_to == 0)
- {
-- rtw_list_delete(&psta->auth_list);
-+ list_del_init(&psta->auth_list);
- pstapriv->auth_list_cnt--;
-
- DBG_871X("auth expire %02X%02X%02X%02X%02X%02X\n",
- psta->hwaddr[0],psta->hwaddr[1],psta->hwaddr[2],psta->hwaddr[3],psta->hwaddr[4],psta->hwaddr[5]);
-
-- _exit_critical_bh(&pstapriv->auth_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->auth_list_lock);
-
-- _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ spin_lock_bh(&(pstapriv->sta_hash_lock));
- rtw_free_stainfo(padapter, psta);
-- _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ spin_unlock_bh(&(pstapriv->sta_hash_lock));
-
-- _enter_critical_bh(&pstapriv->auth_list_lock, &irqL);
-+ spin_lock_bh(&pstapriv->auth_list_lock);
- }
- }
-
- }
-
-- _exit_critical_bh(&pstapriv->auth_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->auth_list_lock);
- psta = NULL;
-
-
-- _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_lock_bh(&pstapriv->asoc_list_lock);
-
- phead = &pstapriv->asoc_list;
- plist = get_next(phead);
-
- //check asoc_queue
- #ifdef DBG_EXPIRATION_CHK
-- if (rtw_end_of_queue_search(phead, plist) == false) {
-+ if (phead != plist) {
- DBG_871X(FUNC_NDEV_FMT" asoc_list, cnt:%u\n"
- , FUNC_NDEV_ARG(padapter->pnetdev), pstapriv->asoc_list_cnt);
- }
- #endif
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ while (phead != plist)
- {
- psta = LIST_CONTAINOR(plist, struct sta_info, asoc_list);
- plist = get_next(plist);
-@@ -417,14 +297,13 @@ void expire_timeout_chk(_adapter *padapt
- if (chk_sta_is_alive(psta) || !psta->expire_to) {
- psta->expire_to = pstapriv->expire_to;
- psta->keep_alive_trycnt = 0;
-- #ifdef CONFIG_TX_MCAST2UNI
- psta->under_exist_checking = 0;
-- #endif // CONFIG_TX_MCAST2UNI
- } else {
-- psta->expire_to--;
-+ if (psta->expire_to > 0)
-+ psta->expire_to--;
- }
-
-- if (psta->expire_to <= 0)
-+ if (psta->expire_to == 0)
- {
- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-
-@@ -460,7 +339,7 @@ void expire_timeout_chk(_adapter *padapt
-
- continue;
- }
-- rtw_list_delete(&psta->asoc_list);
-+ list_del_init(&psta->asoc_list);
- pstapriv->asoc_list_cnt--;
- DBG_871X("asoc expire "MAC_FMT", state=0x%x\n", MAC_ARG(psta->hwaddr), psta->state);
- updated = ap_free_sta(padapter, psta, false, WLAN_REASON_DEAUTH_LEAVING);
-@@ -479,7 +358,7 @@ void expire_timeout_chk(_adapter *padapt
- }
- }
-
-- _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->asoc_list_lock);
-
- if (chk_alive_num) {
-
-@@ -521,13 +400,13 @@ if (chk_alive_num) {
-
- psta->keep_alive_trycnt = 0;
- DBG_871X("asoc expire "MAC_FMT", state=0x%x\n", MAC_ARG(psta->hwaddr), psta->state);
-- _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-- if (rtw_is_list_empty(&psta->asoc_list)==false) {
-- rtw_list_delete(&psta->asoc_list);
-+ spin_lock_bh(&pstapriv->asoc_list_lock);
-+ if (list_empty(&psta->asoc_list)==false) {
-+ list_del_init(&psta->asoc_list);
- pstapriv->asoc_list_cnt--;
- updated = ap_free_sta(padapter, psta, false, WLAN_REASON_DEAUTH_LEAVING);
- }
-- _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->asoc_list_lock);
-
- }
-
-@@ -544,13 +423,10 @@ void add_RATid(_adapter *padapter, struc
- u8 rf_type;
- unsigned char sta_band = 0, shortGIrate = false;
- unsigned int tx_ra_bitmap=0;
-- struct ht_priv *psta_ht = NULL;
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
- WLAN_BSSID_EX *pcur_network = (WLAN_BSSID_EX *)&pmlmepriv->cur_network.network;
-
-- if(psta)
-- psta_ht = &psta->htpriv;
-- else
-+ if(!psta)
- return;
-
- if(!(psta->state & _FW_LINKED))
-@@ -672,9 +548,9 @@ void update_bmc_sta(_adapter *padapter)
-
- rtw_sta_media_status_rpt(padapter, psta, 1);
-
-- _enter_critical_bh(&psta->lock, &irqL);
-+ spin_lock_bh(&psta->lock);
- psta->state = _FW_LINKED;
-- _exit_critical_bh(&psta->lock, &irqL);
-+ spin_unlock_bh(&psta->lock);
-
- }
- else
-@@ -815,9 +691,9 @@ void update_sta_info_apmode(_adapter *pa
- //add_RATid(padapter, psta);//move to ap_sta_info_defer_update()
-
-
-- _enter_critical_bh(&psta->lock, &irqL);
-+ spin_lock_bh(&psta->lock);
- psta->state |= _FW_LINKED;
-- _exit_critical_bh(&psta->lock, &irqL);
-+ spin_unlock_bh(&psta->lock);
-
-
- }
-@@ -826,7 +702,6 @@ static void update_ap_info(_adapter *pad
- {
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
- WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX *)&pmlmepriv->cur_network.network;
-- struct security_priv *psecuritypriv = &padapter->securitypriv;
- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
- struct ht_priv *phtpriv_ap = &pmlmepriv->htpriv;
-
-@@ -875,7 +750,6 @@ static void update_hw_ht_param(_adapter
- {
- unsigned char max_AMPDU_len;
- unsigned char min_MPDU_spacing;
-- struct registry_priv *pregpriv = &padapter->registrypriv;
- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-
-@@ -933,8 +807,7 @@ void start_bss_network(_adapter *padapte
- WLAN_BSSID_EX *pnetwork_mlmeext = &(pmlmeinfo->network);
- struct HT_info_element *pht_info=NULL;
- u8 cbw40_enable=0;
-- u8 change_band = false;
--
-+
- //DBG_871X("%s\n", __FUNCTION__);
-
- bcn_interval = (u16)pnetwork->Configuration.BeaconPeriod;
-@@ -1114,15 +987,12 @@ int rtw_check_beacon_data(_adapter *pada
- u8 channel, network_type, supportRate[NDIS_802_11_LENGTH_RATES_EX];
- int supportRateNum = 0;
- u8 OUI1[] = {0x00, 0x50, 0xf2,0x01};
-- u8 wps_oui[4]={0x0,0x50,0xf2,0x04};
- u8 WMM_PARA_IE[] = {0x00, 0x50, 0xf2, 0x02, 0x01, 0x01};
- struct registry_priv *pregistrypriv = &padapter->registrypriv;
- struct security_priv *psecuritypriv = &padapter->securitypriv;
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
- WLAN_BSSID_EX *pbss_network = (WLAN_BSSID_EX *)&pmlmepriv->cur_network.network;
-- struct sta_priv *pstapriv = &padapter->stapriv;
- u8 *ie = pbss_network->IEs;
-- u8 vht_cap=false;
-
- /* SSID */
- /* Supported rates */
-@@ -1483,12 +1353,12 @@ int rtw_acl_add_sta(_adapter *padapter,
- return (-1);
-
-
-- _enter_critical_bh(&(pacl_node_q->lock), &irqL);
-+ spin_lock_bh(&(pacl_node_q->lock));
-
- phead = get_list_head(pacl_node_q);
- plist = get_next(phead);
-
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ while (phead != plist)
- {
- paclnode = LIST_CONTAINOR(plist, struct rtw_wlan_acl_node, list);
- plist = get_next(plist);
-@@ -1504,14 +1374,14 @@ int rtw_acl_add_sta(_adapter *padapter,
- }
- }
-
-- _exit_critical_bh(&(pacl_node_q->lock), &irqL);
-+ spin_unlock_bh(&(pacl_node_q->lock));
-
-
- if(added == true)
- return ret;
-
-
-- _enter_critical_bh(&(pacl_node_q->lock), &irqL);
-+ spin_lock_bh(&(pacl_node_q->lock));
-
- for(i=0; i< NUM_ACL; i++)
- {
-@@ -1519,13 +1389,13 @@ int rtw_acl_add_sta(_adapter *padapter,
-
- if(paclnode->valid == false)
- {
-- _rtw_init_listhead(&paclnode->list);
-+ INIT_LIST_HEAD(&paclnode->list);
-
- memcpy(paclnode->addr, addr, ETH_ALEN);
-
- paclnode->valid = true;
-
-- rtw_list_insert_tail(&paclnode->list, get_list_head(pacl_node_q));
-+ list_add_tail(&paclnode->list, get_list_head(pacl_node_q));
-
- pacl_list->num++;
-
-@@ -1535,7 +1405,7 @@ int rtw_acl_add_sta(_adapter *padapter,
-
- DBG_871X("%s, acl_num=%d\n", __func__, pacl_list->num);
-
-- _exit_critical_bh(&(pacl_node_q->lock), &irqL);
-+ spin_unlock_bh(&(pacl_node_q->lock));
-
- return ret;
- }
-@@ -1553,12 +1423,12 @@ int rtw_acl_remove_sta(_adapter *padapte
-
- DBG_871X("%s(acl_num=%d)=" MAC_FMT "\n", __func__, pacl_list->num, MAC_ARG(addr));
-
-- _enter_critical_bh(&(pacl_node_q->lock), &irqL);
-+ spin_lock_bh(&(pacl_node_q->lock));
-
- phead = get_list_head(pacl_node_q);
- plist = get_next(phead);
-
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ while (phead != plist)
- {
- paclnode = LIST_CONTAINOR(plist, struct rtw_wlan_acl_node, list);
- plist = get_next(plist);
-@@ -1569,14 +1439,14 @@ int rtw_acl_remove_sta(_adapter *padapte
- {
- paclnode->valid = false;
-
-- rtw_list_delete(&paclnode->list);
-+ list_del_init(&paclnode->list);
-
- pacl_list->num--;
- }
- }
- }
-
-- _exit_critical_bh(&(pacl_node_q->lock), &irqL);
-+ spin_unlock_bh(&(pacl_node_q->lock));
-
- DBG_871X("%s, acl_num=%d\n", __func__, pacl_list->num);
-
-@@ -1599,7 +1469,7 @@ u8 rtw_ap_set_pairwise_key(_adapter *pad
-
- psetstakey_para = (struct set_stakey_parm*)rtw_zmalloc(sizeof(struct set_stakey_parm));
- if(psetstakey_para==NULL){
-- rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-+ kfree((u8 *) ph2c);
- res=_FAIL;
- goto exit;
- }
-@@ -1639,7 +1509,7 @@ static int rtw_ap_set_key(_adapter *pada
- }
- psetkeyparm=(struct setkey_parm*)rtw_zmalloc(sizeof(struct setkey_parm));
- if(psetkeyparm==NULL){
-- rtw_mfree((unsigned char *)pcmd, sizeof(struct cmd_obj));
-+ kfree((unsigned char *)pcmd);
- res= _FAIL;
- goto exit;
- }
-@@ -1678,7 +1548,7 @@ static int rtw_ap_set_key(_adapter *pada
- pcmd->rspsz = 0;
-
-
-- _rtw_init_listhead(&pcmd->list);
-+ INIT_LIST_HEAD(&pcmd->list);
-
- res = rtw_enqueue_cmd(pcmdpriv, pcmd);
-
-@@ -1715,8 +1585,6 @@ int rtw_ap_set_wep_key(_adapter *padapte
- return rtw_ap_set_key(padapter, key, alg, keyid, set_tx);
- }
-
--#ifdef CONFIG_NATIVEAP_MLME
--
- static void update_bcn_fixed_ie(_adapter *padapter)
- {
- DBG_871X("%s\n", __FUNCTION__);
-@@ -1838,7 +1706,7 @@ static void update_bcn_wps_ie(_adapter *
- }
-
- if(pbackup_remainder_ie)
-- rtw_mfree(pbackup_remainder_ie, remainder_ielen);
-+ kfree(pbackup_remainder_ie);
-
- // deal with the case without set_tx_beacon_cmd() in update_beacon()
- #if defined( CONFIG_INTERRUPT_BASED_TXBCN )
-@@ -1907,7 +1775,7 @@ void update_beacon(_adapter *padapter, u
- if(false == pmlmeext->bstart_bss)
- return;
-
-- _enter_critical_bh(&pmlmepriv->bcn_update_lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->bcn_update_lock);
-
- switch(ie_id)
- {
-@@ -1959,7 +1827,7 @@ void update_beacon(_adapter *padapter, u
-
- pmlmepriv->update_bcn = true;
-
-- _exit_critical_bh(&pmlmepriv->bcn_update_lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->bcn_update_lock);
-
- #ifndef CONFIG_INTERRUPT_BASED_TXBCN
- if(tx)
-@@ -2064,13 +1932,13 @@ void associated_clients_update(_adapter
- struct sta_info *psta=NULL;
- struct sta_priv *pstapriv = &padapter->stapriv;
-
-- _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_lock_bh(&pstapriv->asoc_list_lock);
-
- phead = &pstapriv->asoc_list;
- plist = get_next(phead);
-
- //check asoc_queue
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ while (phead != plist)
- {
- psta = LIST_CONTAINOR(plist, struct sta_info, asoc_list);
-
-@@ -2079,7 +1947,7 @@ void associated_clients_update(_adapter
- VCS_update(padapter, psta);
- }
-
-- _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->asoc_list_lock);
-
- }
-
-@@ -2332,8 +2200,6 @@ u8 ap_free_sta(_adapter *padapter, struc
- {
- _irqL irqL;
- u8 beacon_updated = false;
-- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
- struct sta_priv *pstapriv = &padapter->stapriv;
-
- if(!psta)
-@@ -2360,9 +2226,9 @@ u8 ap_free_sta(_adapter *padapter, struc
- rtw_clearstakey_cmd(padapter, psta, true);
-
-
-- _enter_critical_bh(&psta->lock, &irqL);
-+ spin_lock_bh(&psta->lock);
- psta->state &= ~_FW_LINKED;
-- _exit_critical_bh(&psta->lock, &irqL);
-+ spin_unlock_bh(&psta->lock);
-
- rtw_cfg80211_indicate_sta_disassoc(padapter, psta->hwaddr, reason);
-
-@@ -2370,52 +2236,15 @@ u8 ap_free_sta(_adapter *padapter, struc
-
- beacon_updated = bss_cap_update_on_sta_leave(padapter, psta);
-
-- _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ spin_lock_bh(&(pstapriv->sta_hash_lock));
- rtw_free_stainfo(padapter, psta);
-- _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ spin_unlock_bh(&(pstapriv->sta_hash_lock));
-
-
- return beacon_updated;
-
- }
-
--int rtw_ap_inform_ch_switch(_adapter *padapter, u8 new_ch, u8 ch_offset)
--{
-- _irqL irqL;
-- _list *phead, *plist;
-- int ret=0;
-- struct sta_info *psta = NULL;
-- struct sta_priv *pstapriv = &padapter->stapriv;
-- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-- u8 bc_addr[ETH_ALEN] = {0xff,0xff,0xff,0xff,0xff,0xff};
--
-- if((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
-- return ret;
--
-- DBG_871X(FUNC_NDEV_FMT" with ch:%u, offset:%u\n",
-- FUNC_NDEV_ARG(padapter->pnetdev), new_ch, ch_offset);
--
-- _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-- phead = &pstapriv->asoc_list;
-- plist = get_next(phead);
--
-- /* for each sta in asoc_queue */
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-- {
-- psta = LIST_CONTAINOR(plist, struct sta_info, asoc_list);
-- plist = get_next(plist);
--
-- issue_action_spct_ch_switch(padapter, psta->hwaddr, new_ch, ch_offset);
-- psta->expire_to = ((pstapriv->expire_to * 2) > 5) ? 5 : (pstapriv->expire_to * 2);
-- }
-- _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
--
-- issue_action_spct_ch_switch(padapter, bc_addr, new_ch, ch_offset);
--
-- return ret;
--}
--
- int rtw_sta_flush(_adapter *padapter)
- {
- _irqL irqL;
-@@ -2433,25 +2262,25 @@ int rtw_sta_flush(_adapter *padapter)
- return ret;
-
-
-- _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_lock_bh(&pstapriv->asoc_list_lock);
- phead = &pstapriv->asoc_list;
- plist = get_next(phead);
-
- //free sta asoc_queue
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ while (phead != plist)
- {
- psta = LIST_CONTAINOR(plist, struct sta_info, asoc_list);
-
- plist = get_next(plist);
-
-- rtw_list_delete(&psta->asoc_list);
-+ list_del_init(&psta->asoc_list);
- pstapriv->asoc_list_cnt--;
-
-- //_exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ //spin_unlock_bh(&pstapriv->asoc_list_lock);
- ap_free_sta(padapter, psta, true, WLAN_REASON_DEAUTH_LEAVING);
-- //_enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ //spin_lock_bh(&pstapriv->asoc_list_lock);
- }
-- _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->asoc_list_lock);
-
-
- issue_deauth(padapter, bc_addr, WLAN_REASON_DEAUTH_LEAVING);
-@@ -2516,7 +2345,6 @@ void rtw_ap_restore_network(_adapter *pa
- {
- struct mlme_priv *mlmepriv = &padapter->mlmepriv;
- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
- struct sta_priv * pstapriv = &padapter->stapriv;
- struct sta_info *psta;
- struct security_priv* psecuritypriv=&(padapter->securitypriv);
-@@ -2539,12 +2367,12 @@ void rtw_ap_restore_network(_adapter *pa
- rtw_set_key(padapter, psecuritypriv, psecuritypriv->dot118021XGrpKeyid, 0,false);
- }
-
-- _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_lock_bh(&pstapriv->asoc_list_lock);
-
- phead = &pstapriv->asoc_list;
- plist = get_next(phead);
-
-- while ((rtw_end_of_queue_search(phead, plist)) == false) {
-+ while (phead != plist) {
- int stainfo_offset;
-
- psta = LIST_CONTAINOR(plist, struct sta_info, asoc_list);
-@@ -2556,7 +2384,7 @@ void rtw_ap_restore_network(_adapter *pa
- }
- }
-
-- _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->asoc_list_lock);
-
- for (i = 0; i < chk_alive_num; i++) {
- psta = rtw_get_stainfo_by_offset(pstapriv, chk_alive_list[i]);
-@@ -2619,12 +2447,12 @@ void start_ap_mode(_adapter *padapter)
-
-
- //for ACL
-- _rtw_init_listhead(&(pacl_list->acl_node_q.queue));
-+ INIT_LIST_HEAD(&(pacl_list->acl_node_q.queue));
- pacl_list->num = 0;
- pacl_list->mode = 0;
- for(i = 0; i < NUM_ACL; i++)
- {
-- _rtw_init_listhead(&pacl_list->aclnode[i].list);
-+ INIT_LIST_HEAD(&pacl_list->aclnode[i].list);
- pacl_list->aclnode[i].valid = false;
- }
-
-@@ -2651,10 +2479,10 @@ void stop_ap_mode(_adapter *padapter)
- padapter->securitypriv.ndisencryptstatus = Ndis802_11WEPDisabled;
-
- //for ACL
-- _enter_critical_bh(&(pacl_node_q->lock), &irqL);
-+ spin_lock_bh(&(pacl_node_q->lock));
- phead = get_list_head(pacl_node_q);
- plist = get_next(phead);
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ while (phead != plist)
- {
- paclnode = LIST_CONTAINOR(plist, struct rtw_wlan_acl_node, list);
- plist = get_next(plist);
-@@ -2663,12 +2491,12 @@ void stop_ap_mode(_adapter *padapter)
- {
- paclnode->valid = false;
-
-- rtw_list_delete(&paclnode->list);
-+ list_del_init(&paclnode->list);
-
- pacl_list->num--;
- }
- }
-- _exit_critical_bh(&(pacl_node_q->lock), &irqL);
-+ spin_unlock_bh(&(pacl_node_q->lock));
-
- DBG_871X("%s, free acl_node_queue, num=%d\n", __func__, pacl_list->num);
-
-@@ -2678,9 +2506,9 @@ void stop_ap_mode(_adapter *padapter)
- rtw_free_all_stainfo(padapter);
-
- psta = rtw_get_bcmc_stainfo(padapter);
-- _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ spin_lock_bh(&(pstapriv->sta_hash_lock));
- rtw_free_stainfo(padapter, psta);
-- _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ spin_unlock_bh(&(pstapriv->sta_hash_lock));
-
- rtw_init_bcmc_stainfo(padapter);
-
-@@ -2688,8 +2516,3 @@ void stop_ap_mode(_adapter *padapter)
-
- rtw_btcoex_MediaStatusNotify(padapter, 0); //disconnect
- }
--
--#endif //CONFIG_NATIVEAP_MLME
--
--#endif //CONFIG_AP_MODE
--
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_btcoex.c linux/3rdparty/rtl8723bs/core/rtw_btcoex.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_btcoex.c 2015-05-10 14:36:05.663667846 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_btcoex.c 2015-05-07 17:46:55.000000000 +0300
-@@ -108,16 +108,6 @@ void rtw_btcoex_HaltNotify(PADAPTER pada
- hal_btcoex_HaltNotify(padapter);
- }
-
--void rtw_btcoex_SwitchBtTRxMask(PADAPTER padapter)
--{
-- hal_btcoex_SwitchBtTRxMask(padapter);
--}
--
--void rtw_btcoex_Switch(PADAPTER padapter, u8 enable)
--{
-- hal_btcoex_SetBTCoexist(padapter, enable);
--}
--
- u8 rtw_btcoex_IsBtDisabled(PADAPTER padapter)
- {
- return hal_btcoex_IsBtDisabled(padapter);
-@@ -137,15 +127,6 @@ s32 rtw_btcoex_IsBTCoexCtrlAMPDUSize(PAD
- return coexctrl;
- }
-
--u32 rtw_btcoex_GetAMPDUSize(PADAPTER padapter)
--{
-- u32 size;
--
-- size = hal_btcoex_GetAMPDUSize(padapter);
--
-- return size;
--}
--
- void rtw_btcoex_SetManualControl(PADAPTER padapter, u8 manual)
- {
- if (true == manual)
-@@ -158,11 +139,6 @@ void rtw_btcoex_SetManualControl(PADAPTE
- }
- }
-
--u8 rtw_btcoex_1Ant(PADAPTER padapter)
--{
-- return hal_btcoex_1Ant(padapter);
--}
--
- u8 rtw_btcoex_IsBtControlLps(PADAPTER padapter)
- {
- return hal_btcoex_IsBtControlLps(padapter);
-@@ -198,11 +174,6 @@ void rtw_btcoex_SetPGAntNum(PADAPTER pad
- hal_btcoex_SetPgAntNum(padapter, antNum);
- }
-
--u8 rtw_btcoex_GetPGAntNum(PADAPTER padapter)
--{
-- return hal_btcoex_GetPgAntNum(padapter);
--}
--
- void rtw_btcoex_SetSingleAntPath(PADAPTER padapter, u8 singleAntPath)
- {
- hal_btcoex_SetSingleAntPath(padapter, singleAntPath);
-@@ -233,16 +204,6 @@ u32 rtw_btcoex_GetDBG(PADAPTER padapter,
- return hal_btcoex_GetDBG(padapter, pStrBuf, bufSize);
- }
-
--u8 rtw_btcoex_IncreaseScanDeviceNum(PADAPTER padapter)
--{
-- return hal_btcoex_IncreaseScanDeviceNum(padapter);
--}
--
--u8 rtw_btcoex_IsBtLinkExist(PADAPTER padapter)
--{
-- return hal_btcoex_IsBtLinkExist(padapter);
--}
--
- // ==================================================
- // Below Functions are called by BT-Coex
- // ==================================================
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_cmd.c linux/3rdparty/rtl8723bs/core/rtw_cmd.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_cmd.c 2015-05-10 14:36:05.665667868 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_cmd.c 2015-05-07 17:46:55.000000000 +0300
-@@ -255,10 +255,10 @@ _func_enter_;
- void *c2h;
- if ((c2h = rtw_cbuf_pop(pevtpriv->c2h_queue)) != NULL
- && c2h != (void *)pevtpriv) {
-- rtw_mfree(c2h, 16);
-+ kfree(c2h);
- }
- }
-- rtw_cbuf_free(pevtpriv->c2h_queue);
-+ kfree(pevtpriv->c2h_queue);
-
- RT_TRACE(_module_rtl871x_cmd_c_,_drv_info_,("-_rtw_free_evt_priv \n"));
-
-@@ -272,10 +272,10 @@ _func_enter_;
-
- if(pcmdpriv){
- if (pcmdpriv->cmd_allocated_buf)
-- rtw_mfree(pcmdpriv->cmd_allocated_buf, MAX_CMDSZ + CMDBUFF_ALIGN_SZ);
-+ kfree(pcmdpriv->cmd_allocated_buf);
-
- if (pcmdpriv->rsp_allocated_buf)
-- rtw_mfree(pcmdpriv->rsp_allocated_buf, MAX_RSPSZ + 4);
-+ kfree(pcmdpriv->rsp_allocated_buf);
-
- mutex_destroy(&pcmdpriv->sctx_mutex);
- }
-@@ -301,13 +301,13 @@ _func_enter_;
- if (obj == NULL)
- goto exit;
-
-- //_enter_critical_bh(&queue->lock, &irqL);
-- _enter_critical(&queue->lock, &irqL);
-+ //spin_lock_bh(&queue->lock);
-+ spin_lock_irqsave(&queue->lock, irqL);
-
-- rtw_list_insert_tail(&obj->list, &queue->queue);
-+ list_add_tail(&obj->list, &queue->queue);
-
-- //_exit_critical_bh(&queue->lock, &irqL);
-- _exit_critical(&queue->lock, &irqL);
-+ //spin_unlock_bh(&queue->lock);
-+ spin_unlock_irqrestore(&queue->lock, irqL);
-
- exit:
-
-@@ -323,18 +323,18 @@ struct cmd_obj *_rtw_dequeue_cmd(_queue
-
- _func_enter_;
-
-- //_enter_critical_bh(&(queue->lock), &irqL);
-- _enter_critical(&queue->lock, &irqL);
-- if (rtw_is_list_empty(&(queue->queue)))
-+ //spin_lock_bh(&(queue->lock));
-+ spin_lock_irqsave(&queue->lock, irqL);
-+ if (list_empty(&(queue->queue)))
- obj = NULL;
- else
- {
- obj = LIST_CONTAINOR(get_next(&(queue->queue)), struct cmd_obj, list);
-- rtw_list_delete(&obj->list);
-+ list_del_init(&obj->list);
- }
-
-- //_exit_critical_bh(&(queue->lock), &irqL);
-- _exit_critical(&queue->lock, &irqL);
-+ //spin_unlock_bh(&(queue->lock));
-+ spin_unlock_irqrestore(&queue->lock, irqL);
-
- _func_exit_;
-
-@@ -442,14 +442,6 @@ _func_exit_;
- return cmd_obj;
- }
-
--void rtw_cmd_clr_isr(struct cmd_priv *pcmdpriv)
--{
--_func_enter_;
-- pcmdpriv->cmd_done_cnt++;
-- //up(&(pcmdpriv->cmd_done_sema));
--_func_exit_;
--}
--
- void rtw_free_cmd_obj(struct cmd_obj *pcmd)
- {
- _func_enter_;
-@@ -457,7 +449,7 @@ _func_enter_;
- if((pcmd->cmdcode!=_JoinBss_CMD_) &&(pcmd->cmdcode!= _CreateBss_CMD_))
- {
- //free parmbuf in cmd_obj
-- rtw_mfree((unsigned char*)pcmd->parmbuf, pcmd->cmdsz);
-+ kfree((unsigned char*)pcmd->parmbuf);
- }
-
- if(pcmd->rsp!=NULL)
-@@ -465,12 +457,12 @@ _func_enter_;
- if(pcmd->rspsz!= 0)
- {
- //free rsp in cmd_obj
-- rtw_mfree((unsigned char*)pcmd->rsp, pcmd->rspsz);
-+ kfree((unsigned char*)pcmd->rsp);
- }
- }
-
- //free cmd_obj
-- rtw_mfree((unsigned char*)pcmd, sizeof(struct cmd_obj));
-+ kfree((unsigned char*)pcmd);
-
- _func_exit_;
- }
-@@ -533,7 +525,7 @@ _func_enter_;
- break;
- }
-
-- if(rtw_is_list_empty(&(pcmdpriv->cmd_queue.queue)))
-+ if(list_empty(&(pcmdpriv->cmd_queue.queue)))
- {
- //DBG_871X("%s: cmd queue is empty!\n", __func__);
- continue;
-@@ -573,7 +565,7 @@ _next:
-
- memcpy(pcmdbuf, pcmd->parmbuf, pcmd->cmdsz);
-
-- if(pcmd->cmdcode < (sizeof(wlancmds) /sizeof(struct cmd_hdl)))
-+ if(pcmd->cmdcode < ARRAY_SIZE(wlancmds))
- {
- cmd_hdl = wlancmds[pcmd->cmdcode].h2cfuns;
-
-@@ -594,18 +586,18 @@ _next:
-
- post_process:
-
-- _enter_critical_mutex(&(pcmd->padapter->cmdpriv.sctx_mutex), NULL);
-- if (pcmd->sctx) {
-- DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" pcmd->sctx\n",
-- FUNC_ADPT_ARG(pcmd->padapter));
--
-- if (pcmd->res == H2C_SUCCESS)
-- rtw_sctx_done(&pcmd->sctx);
-- else
-- rtw_sctx_done_err(&pcmd->sctx, RTW_SCTX_DONE_CMD_ERROR);
-+ if (mutex_lock_interruptible(&(pcmd->padapter->cmdpriv.sctx_mutex)) == 0) {
-+ if (pcmd->sctx) {
-+ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" pcmd->sctx\n",
-+ FUNC_ADPT_ARG(pcmd->padapter));
-+
-+ if (pcmd->res == H2C_SUCCESS)
-+ rtw_sctx_done(&pcmd->sctx);
-+ else
-+ rtw_sctx_done_err(&pcmd->sctx, RTW_SCTX_DONE_CMD_ERROR);
-+ }
-+ mutex_unlock(&(pcmd->padapter->cmdpriv.sctx_mutex));
- }
-- _exit_critical_mutex(&(pcmd->padapter->cmdpriv.sctx_mutex), NULL);
--
-
- if((cmd_process_time = jiffies_to_msecs(jiffies - cmd_start_time)) > 1000)
- {
-@@ -627,7 +619,7 @@ post_process:
- }
-
- //call callback function for post-processed
-- if(pcmd->cmdcode < (sizeof(rtw_cmd_callback) /sizeof(struct _cmd_callback)))
-+ if(pcmd->cmdcode < ARRAY_SIZE(rtw_cmd_callback))
- {
- pcmd_callback = rtw_cmd_callback[pcmd->cmdcode].callback;
- if(pcmd_callback == NULL)
-@@ -666,7 +658,7 @@ post_process:
- if (pcmd->cmdcode == GEN_CMD_CODE(_Set_Drv_Extra)) {
- extra_parm = (struct drvextra_cmd_parm *)pcmd->parmbuf;
- if(extra_parm->pbuf && extra_parm->size > 0) {
-- rtw_mfree(extra_parm->pbuf, extra_parm->size);
-+ kfree(extra_parm->pbuf);
- }
- }
-
-@@ -682,42 +674,6 @@ _func_exit_;
-
- }
-
--u8 rtw_setstandby_cmd(_adapter *padapter, uint action)
--{
-- struct cmd_obj* ph2c;
-- struct usb_suspend_parm* psetusbsuspend;
-- struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
--
-- u8 ret = _SUCCESS;
--
--_func_enter_;
--
-- ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-- if (ph2c == NULL) {
-- ret = _FAIL;
-- goto exit;
-- }
--
-- psetusbsuspend = (struct usb_suspend_parm*)rtw_zmalloc(sizeof(struct usb_suspend_parm));
-- if (psetusbsuspend == NULL) {
-- rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-- ret = _FAIL;
-- goto exit;
-- }
--
-- psetusbsuspend->action = action;
--
-- init_h2fwcmd_w_parm_no_rsp(ph2c, psetusbsuspend, GEN_CMD_CODE(_SetUsbSuspend));
--
-- ret = rtw_enqueue_cmd(pcmdpriv, ph2c);
--
--exit:
--
--_func_exit_;
--
-- return ret;
--}
--
- /*
- rtw_sitesurvey_cmd(~)
- ### NOTE:#### (!!!!)
-@@ -744,7 +700,7 @@ _func_enter_;
-
- psurveyPara = (struct sitesurvey_parm*)rtw_zmalloc(sizeof(struct sitesurvey_parm));
- if (psurveyPara == NULL) {
-- rtw_mfree((unsigned char*) ph2c, sizeof(struct cmd_obj));
-+ kfree((unsigned char*) ph2c);
- return _FAIL;
- }
-
-@@ -793,8 +749,6 @@ _func_enter_;
-
- pmlmepriv->scan_start_time = jiffies;
- _set_timer(&pmlmepriv->scan_to_timer, SCANNING_TIMEOUT);
--
-- rtw_led_control(padapter, LED_CTL_SITE_SURVEY);
- } else {
- _clr_fwstate_(pmlmepriv, _FW_UNDER_SURVEY);
- }
-@@ -821,7 +775,7 @@ _func_enter_;
-
- pbsetdataratepara = (struct setdatarate_parm*)rtw_zmalloc(sizeof(struct setdatarate_parm));
- if (pbsetdataratepara == NULL) {
-- rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-+ kfree((u8 *) ph2c);
- res = _FAIL;
- goto exit;
- }
-@@ -838,243 +792,17 @@ _func_exit_;
- return res;
- }
-
--u8 rtw_setbasicrate_cmd(_adapter *padapter, u8 *rateset)
--{
-- struct cmd_obj* ph2c;
-- struct setbasicrate_parm* pssetbasicratepara;
-- struct cmd_priv* pcmdpriv=&padapter->cmdpriv;
-- u8 res = _SUCCESS;
--
--_func_enter_;
--
-- ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-- if (ph2c == NULL) {
-- res= _FAIL;
-- goto exit;
-- }
-- pssetbasicratepara = (struct setbasicrate_parm*)rtw_zmalloc(sizeof(struct setbasicrate_parm));
--
-- if (pssetbasicratepara == NULL) {
-- rtw_mfree((u8*) ph2c, sizeof(struct cmd_obj));
-- res = _FAIL;
-- goto exit;
-- }
--
-- init_h2fwcmd_w_parm_no_rsp(ph2c, pssetbasicratepara, _SetBasicRate_CMD_);
--
-- memcpy(pssetbasicratepara->basicrates, rateset, NumRates);
--
-- res = rtw_enqueue_cmd(pcmdpriv, ph2c);
--exit:
--
--_func_exit_;
--
-- return res;
--}
--
--
--/*
--unsigned char rtw_setphy_cmd(unsigned char *adapter)
--
--1. be called only after rtw_update_registrypriv_dev_network( ~) or mp testing program
--2. for AdHoc/Ap mode or mp mode?
--
--*/
--u8 rtw_setphy_cmd(_adapter *padapter, u8 modem, u8 ch)
--{
-- struct cmd_obj* ph2c;
-- struct setphy_parm* psetphypara;
-- struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
--// struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
--// struct registry_priv* pregistry_priv = &padapter->registrypriv;
-- u8 res=_SUCCESS;
--
--_func_enter_;
--
-- ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-- if(ph2c==NULL){
-- res= _FAIL;
-- goto exit;
-- }
-- psetphypara = (struct setphy_parm*)rtw_zmalloc(sizeof(struct setphy_parm));
--
-- if(psetphypara==NULL){
-- rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-- res= _FAIL;
-- goto exit;
-- }
--
-- init_h2fwcmd_w_parm_no_rsp(ph2c, psetphypara, _SetPhy_CMD_);
--
-- RT_TRACE(_module_rtl871x_cmd_c_,_drv_info_,("CH=%d, modem=%d", ch, modem));
--
-- psetphypara->modem = modem;
-- psetphypara->rfchannel = ch;
--
-- res = rtw_enqueue_cmd(pcmdpriv, ph2c);
--exit:
--_func_exit_;
-- return res;
--}
--
--u8 rtw_setbbreg_cmd(_adapter*padapter, u8 offset, u8 val)
--{
-- struct cmd_obj* ph2c;
-- struct writeBB_parm* pwritebbparm;
-- struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-- u8 res=_SUCCESS;
--_func_enter_;
-- ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-- if(ph2c==NULL){
-- res= _FAIL;
-- goto exit;
-- }
-- pwritebbparm = (struct writeBB_parm*)rtw_zmalloc(sizeof(struct writeBB_parm));
--
-- if(pwritebbparm==NULL){
-- rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-- res= _FAIL;
-- goto exit;
-- }
--
-- init_h2fwcmd_w_parm_no_rsp(ph2c, pwritebbparm, GEN_CMD_CODE(_SetBBReg));
--
-- pwritebbparm->offset = offset;
-- pwritebbparm->value = val;
--
-- res = rtw_enqueue_cmd(pcmdpriv, ph2c);
--exit:
--_func_exit_;
-- return res;
--}
--
--u8 rtw_getbbreg_cmd(_adapter *padapter, u8 offset, u8 *pval)
--{
-- struct cmd_obj* ph2c;
-- struct readBB_parm* prdbbparm;
-- struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-- u8 res=_SUCCESS;
--
--_func_enter_;
-- ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-- if(ph2c==NULL){
-- res=_FAIL;
-- goto exit;
-- }
-- prdbbparm = (struct readBB_parm*)rtw_zmalloc(sizeof(struct readBB_parm));
--
-- if(prdbbparm ==NULL){
-- rtw_mfree((unsigned char *) ph2c, sizeof(struct cmd_obj));
-- return _FAIL;
-- }
--
-- _rtw_init_listhead(&ph2c->list);
-- ph2c->cmdcode =GEN_CMD_CODE(_GetBBReg);
-- ph2c->parmbuf = (unsigned char *)prdbbparm;
-- ph2c->cmdsz = sizeof(struct readBB_parm);
-- ph2c->rsp = pval;
-- ph2c->rspsz = sizeof(struct readBB_rsp);
--
-- prdbbparm ->offset = offset;
--
-- res = rtw_enqueue_cmd(pcmdpriv, ph2c);
--exit:
--_func_exit_;
-- return res;
--}
--
--u8 rtw_setrfreg_cmd(_adapter *padapter, u8 offset, u32 val)
--{
-- struct cmd_obj* ph2c;
-- struct writeRF_parm* pwriterfparm;
-- struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-- u8 res=_SUCCESS;
--_func_enter_;
-- ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-- if(ph2c==NULL){
-- res= _FAIL;
-- goto exit;
-- }
-- pwriterfparm = (struct writeRF_parm*)rtw_zmalloc(sizeof(struct writeRF_parm));
--
-- if(pwriterfparm==NULL){
-- rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-- res= _FAIL;
-- goto exit;
-- }
--
-- init_h2fwcmd_w_parm_no_rsp(ph2c, pwriterfparm, GEN_CMD_CODE(_SetRFReg));
--
-- pwriterfparm->offset = offset;
-- pwriterfparm->value = val;
--
-- res = rtw_enqueue_cmd(pcmdpriv, ph2c);
--exit:
--_func_exit_;
-- return res;
--}
--
--u8 rtw_getrfreg_cmd(_adapter *padapter, u8 offset, u8 *pval)
--{
-- struct cmd_obj* ph2c;
-- struct readRF_parm* prdrfparm;
-- struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-- u8 res=_SUCCESS;
--
--_func_enter_;
--
-- ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-- if(ph2c==NULL){
-- res= _FAIL;
-- goto exit;
-- }
--
-- prdrfparm = (struct readRF_parm*)rtw_zmalloc(sizeof(struct readRF_parm));
-- if(prdrfparm ==NULL){
-- rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-- res= _FAIL;
-- goto exit;
-- }
--
-- _rtw_init_listhead(&ph2c->list);
-- ph2c->cmdcode =GEN_CMD_CODE(_GetRFReg);
-- ph2c->parmbuf = (unsigned char *)prdrfparm;
-- ph2c->cmdsz = sizeof(struct readRF_parm);
-- ph2c->rsp = pval;
-- ph2c->rspsz = sizeof(struct readRF_rsp);
--
-- prdrfparm ->offset = offset;
--
-- res = rtw_enqueue_cmd(pcmdpriv, ph2c);
--
--exit:
--
--_func_exit_;
--
-- return res;
--}
--
- void rtw_getbbrfreg_cmdrsp_callback(_adapter* padapter, struct cmd_obj *pcmd)
- {
- _func_enter_;
-
- //rtw_free_cmd_obj(pcmd);
-- rtw_mfree((unsigned char*) pcmd->parmbuf, pcmd->cmdsz);
-- rtw_mfree((unsigned char*) pcmd, sizeof(struct cmd_obj));
-+ kfree((unsigned char*) pcmd->parmbuf);
-+ kfree((unsigned char*) pcmd);
-
- _func_exit_;
- }
-
--void rtw_readtssi_cmdrsp_callback(_adapter* padapter, struct cmd_obj *pcmd)
--{
-- _func_enter_;
--
-- rtw_mfree((unsigned char*) pcmd->parmbuf, pcmd->cmdsz);
-- rtw_mfree((unsigned char*) pcmd, sizeof(struct cmd_obj));
--
--_func_exit_;
--}
--
- u8 rtw_createbss_cmd(_adapter *padapter)
- {
- struct cmd_obj* pcmd;
-@@ -1085,8 +813,6 @@ u8 rtw_createbss_cmd(_adapter *padapter
-
- _func_enter_;
-
-- rtw_led_control(padapter, LED_CTL_START_TO_LINK);
--
- if (pmlmepriv->assoc_ssid.SsidLength == 0){
- RT_TRACE(_module_rtl871x_cmd_c_,_drv_info_,(" createbss for Any SSid:%s\n",pmlmepriv->assoc_ssid.Ssid));
- } else {
-@@ -1099,7 +825,7 @@ _func_enter_;
- goto exit;
- }
-
-- _rtw_init_listhead(&pcmd->list);
-+ INIT_LIST_HEAD(&pcmd->list);
- pcmd->cmdcode = _CreateBss_CMD_;
- pcmd->parmbuf = (unsigned char *)pdev_network;
- pcmd->cmdsz = get_WLAN_BSSID_EX_sz((WLAN_BSSID_EX*)pdev_network);
-@@ -1117,36 +843,6 @@ _func_exit_;
- return res;
- }
-
--u8 rtw_createbss_cmd_ex(_adapter *padapter, unsigned char *pbss, unsigned int sz)
--{
-- struct cmd_obj* pcmd;
-- struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-- u8 res=_SUCCESS;
--
--_func_enter_;
--
-- pcmd = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-- if(pcmd==NULL){
-- res= _FAIL;
-- goto exit;
-- }
--
-- _rtw_init_listhead(&pcmd->list);
-- pcmd->cmdcode = GEN_CMD_CODE(_CreateBss);
-- pcmd->parmbuf = pbss;
-- pcmd->cmdsz = sz;
-- pcmd->rsp = NULL;
-- pcmd->rspsz = 0;
--
-- res = rtw_enqueue_cmd(pcmdpriv, pcmd);
--
--exit:
--
--_func_exit_;
--
-- return res;
--}
--
- u8 rtw_startbss_cmd(_adapter *padapter, int flags)
- {
- struct cmd_obj* pcmd;
-@@ -1167,7 +863,7 @@ _func_enter_;
- goto exit;
- }
-
-- _rtw_init_listhead(&pcmd->list);
-+ INIT_LIST_HEAD(&pcmd->list);
- pcmd->cmdcode = GEN_CMD_CODE(_CreateBss);
- pcmd->parmbuf = NULL;
- pcmd->cmdsz = 0;
-@@ -1183,10 +879,11 @@ _func_enter_;
-
- if (res == _SUCCESS && (flags & RTW_CMDF_WAIT_ACK)) {
- rtw_sctx_wait(&sctx, __func__);
-- _enter_critical_mutex(&pcmdpriv->sctx_mutex, NULL);
-- if (sctx.status == RTW_SCTX_SUBMITTED)
-- pcmd->sctx = NULL;
-- _exit_critical_mutex(&pcmdpriv->sctx_mutex, NULL);
-+ if (mutex_lock_interruptible(&pcmdpriv->sctx_mutex) == 0) {
-+ if (sctx.status == RTW_SCTX_SUBMITTED)
-+ pcmd->sctx = NULL;
-+ mutex_unlock(&pcmdpriv->sctx_mutex);
-+ }
- }
- }
-
-@@ -1216,8 +913,6 @@ u8 rtw_joinbss_cmd(_adapter *padapter,
- u8 *ptmp=NULL;
- _func_enter_;
-
-- rtw_led_control(padapter, LED_CTL_START_TO_LINK);
--
- if (pmlmepriv->assoc_ssid.SsidLength == 0){
- RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("+Join cmd: Any SSid\n"));
- } else {
-@@ -1267,7 +962,7 @@ _func_enter_;
- if(psecnetwork==NULL)
- {
- if(pcmd !=NULL)
-- rtw_mfree((unsigned char *)pcmd, sizeof(struct cmd_obj));
-+ kfree((unsigned char *)pcmd);
-
- res=_FAIL;
-
-@@ -1348,7 +1043,7 @@ _func_enter_;
-
- pcmd->cmdsz = get_WLAN_BSSID_EX_sz(psecnetwork);//get cmdsz before endian conversion
-
-- _rtw_init_listhead(&pcmd->list);
-+ INIT_LIST_HEAD(&pcmd->list);
- pcmd->cmdcode = _JoinBss_CMD_;//GEN_CMD_CODE(_JoinBss)
- pcmd->parmbuf = (unsigned char *)psecnetwork;
- pcmd->rsp = NULL;
-@@ -1387,7 +1082,7 @@ _func_enter_;
- cmdobj = (struct cmd_obj *)rtw_zmalloc(sizeof(*cmdobj));
- if (cmdobj == NULL) {
- res = _FAIL;
-- rtw_mfree((u8 *)param, sizeof(*param));
-+ kfree((u8 *)param);
- goto exit;
- }
- init_h2fwcmd_w_parm_no_rsp(cmdobj, param, _DisConnect_CMD_);
-@@ -1396,7 +1091,7 @@ _func_enter_;
- /* no need to enqueue, do the cmd hdl directly and free cmd parameter */
- if (H2C_SUCCESS != disconnect_hdl(padapter, (u8 *)param))
- res = _FAIL;
-- rtw_mfree((u8 *)param, sizeof(*param));
-+ kfree((u8 *)param);
- }
-
- exit:
-@@ -1426,7 +1121,7 @@ _func_enter_;
- if(enqueue){
- ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
- if(ph2c==NULL){
-- rtw_mfree((u8 *)psetop, sizeof(*psetop));
-+ kfree((u8 *)psetop);
- res= _FAIL;
- goto exit;
- }
-@@ -1436,7 +1131,7 @@ _func_enter_;
- }
- else{
- setopmode_hdl(padapter, (u8 *)psetop);
-- rtw_mfree((u8 *)psetop, sizeof(*psetop));
-+ kfree((u8 *)psetop);
- }
- exit:
-
-@@ -1486,15 +1181,15 @@ _func_enter_;
- {
- ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
- if ( ph2c == NULL){
-- rtw_mfree((u8 *) psetstakey_para, sizeof(struct set_stakey_parm));
-+ kfree((u8 *) psetstakey_para);
- res= _FAIL;
- goto exit;
- }
-
- psetstakey_rsp = (struct set_stakey_rsp*)rtw_zmalloc(sizeof(struct set_stakey_rsp));
- if(psetstakey_rsp == NULL){
-- rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-- rtw_mfree((u8 *) psetstakey_para, sizeof(struct set_stakey_parm));
-+ kfree((u8 *) ph2c);
-+ kfree((u8 *) psetstakey_para);
- res=_FAIL;
- goto exit;
- }
-@@ -1506,7 +1201,7 @@ _func_enter_;
- }
- else{
- set_stakey_hdl(padapter, (u8 *)psetstakey_para);
-- rtw_mfree((u8 *) psetstakey_para, sizeof(struct set_stakey_parm));
-+ kfree((u8 *) psetstakey_para);
- }
- exit:
-
-@@ -1546,15 +1241,15 @@ _func_enter_;
-
- psetstakey_para = (struct set_stakey_parm*)rtw_zmalloc(sizeof(struct set_stakey_parm));
- if(psetstakey_para==NULL){
-- rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-+ kfree((u8 *) ph2c);
- res=_FAIL;
- goto exit;
- }
-
- psetstakey_rsp = (struct set_stakey_rsp*)rtw_zmalloc(sizeof(struct set_stakey_rsp));
- if(psetstakey_rsp == NULL){
-- rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-- rtw_mfree((u8 *) psetstakey_para, sizeof(struct set_stakey_parm));
-+ kfree((u8 *) ph2c);
-+ kfree((u8 *) psetstakey_para);
- res=_FAIL;
- goto exit;
- }
-@@ -1578,123 +1273,6 @@ _func_exit_;
- return res;
- }
-
--u8 rtw_setrttbl_cmd(_adapter *padapter, struct setratable_parm *prate_table)
--{
-- struct cmd_obj* ph2c;
-- struct setratable_parm * psetrttblparm;
-- struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-- u8 res=_SUCCESS;
--_func_enter_;
--
-- ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-- if(ph2c==NULL){
-- res= _FAIL;
-- goto exit;
-- }
-- psetrttblparm = (struct setratable_parm*)rtw_zmalloc(sizeof(struct setratable_parm));
--
-- if(psetrttblparm==NULL){
-- rtw_mfree((unsigned char *) ph2c, sizeof(struct cmd_obj));
-- res= _FAIL;
-- goto exit;
-- }
--
-- init_h2fwcmd_w_parm_no_rsp(ph2c, psetrttblparm, GEN_CMD_CODE(_SetRaTable));
--
-- memcpy(psetrttblparm,prate_table,sizeof(struct setratable_parm));
--
-- res = rtw_enqueue_cmd(pcmdpriv, ph2c);
--exit:
--_func_exit_;
-- return res;
--
--}
--
--u8 rtw_getrttbl_cmd(_adapter *padapter, struct getratable_rsp *pval)
--{
-- struct cmd_obj* ph2c;
-- struct getratable_parm * pgetrttblparm;
-- struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-- u8 res=_SUCCESS;
--_func_enter_;
--
-- ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-- if(ph2c==NULL){
-- res= _FAIL;
-- goto exit;
-- }
-- pgetrttblparm = (struct getratable_parm*)rtw_zmalloc(sizeof(struct getratable_parm));
--
-- if(pgetrttblparm==NULL){
-- rtw_mfree((unsigned char *) ph2c, sizeof(struct cmd_obj));
-- res= _FAIL;
-- goto exit;
-- }
--
--// init_h2fwcmd_w_parm_no_rsp(ph2c, psetrttblparm, GEN_CMD_CODE(_SetRaTable));
--
-- _rtw_init_listhead(&ph2c->list);
-- ph2c->cmdcode =GEN_CMD_CODE(_GetRaTable);
-- ph2c->parmbuf = (unsigned char *)pgetrttblparm;
-- ph2c->cmdsz = sizeof(struct getratable_parm);
-- ph2c->rsp = (u8*)pval;
-- ph2c->rspsz = sizeof(struct getratable_rsp);
--
-- pgetrttblparm ->rsvd = 0x0;
--
-- res = rtw_enqueue_cmd(pcmdpriv, ph2c);
--exit:
--_func_exit_;
-- return res;
--
--}
--
--u8 rtw_setassocsta_cmd(_adapter *padapter, u8 *mac_addr)
--{
-- struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
-- struct cmd_obj* ph2c;
-- struct set_assocsta_parm *psetassocsta_para;
-- struct set_stakey_rsp *psetassocsta_rsp = NULL;
--
-- u8 res=_SUCCESS;
--
--_func_enter_;
--
-- ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-- if(ph2c==NULL){
-- res= _FAIL;
-- goto exit;
-- }
--
-- psetassocsta_para = (struct set_assocsta_parm*)rtw_zmalloc(sizeof(struct set_assocsta_parm));
-- if(psetassocsta_para==NULL){
-- rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-- res=_FAIL;
-- goto exit;
-- }
--
-- psetassocsta_rsp = (struct set_stakey_rsp*)rtw_zmalloc(sizeof(struct set_assocsta_rsp));
-- if(psetassocsta_rsp==NULL){
-- rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-- rtw_mfree((u8 *) psetassocsta_para, sizeof(struct set_assocsta_parm));
-- return _FAIL;
-- }
--
-- init_h2fwcmd_w_parm_no_rsp(ph2c, psetassocsta_para, _SetAssocSta_CMD_);
-- ph2c->rsp = (u8 *) psetassocsta_rsp;
-- ph2c->rspsz = sizeof(struct set_assocsta_rsp);
--
-- memcpy(psetassocsta_para->addr, mac_addr,ETH_ALEN);
--
-- res = rtw_enqueue_cmd(pcmdpriv, ph2c);
--
--exit:
--
--_func_exit_;
--
-- return res;
-- }
--
- u8 rtw_addbareq_cmd(_adapter*padapter, u8 tid, u8 *addr)
- {
- struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
-@@ -1713,7 +1291,7 @@ _func_enter_;
-
- paddbareq_parm = (struct addBaReq_parm*)rtw_zmalloc(sizeof(struct addBaReq_parm));
- if(paddbareq_parm==NULL){
-- rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ kfree((unsigned char *)ph2c);
- res= _FAIL;
- goto exit;
- }
-@@ -1752,7 +1330,7 @@ _func_enter_;
-
- pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
- if(pdrvextra_cmd_parm==NULL){
-- rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ kfree((unsigned char *)ph2c);
- res= _FAIL;
- goto exit;
- }
-@@ -1793,7 +1371,7 @@ _func_enter_;
-
- pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
- if(pdrvextra_cmd_parm==NULL){
-- rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ kfree((unsigned char *)ph2c);
- res= _FAIL;
- goto exit;
- }
-@@ -1835,7 +1413,7 @@ _func_enter_;
-
- pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
- if(pdrvextra_cmd_parm==NULL){
-- rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ kfree((unsigned char *)ph2c);
- res= _FAIL;
- goto exit;
- }
-@@ -1858,61 +1436,6 @@ _func_exit_;
-
- }
-
--u8 rtw_set_ch_cmd(_adapter*padapter, u8 ch, u8 bw, u8 ch_offset, u8 enqueue)
--{
-- struct cmd_obj *pcmdobj;
-- struct set_ch_parm *set_ch_parm;
-- struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
--
-- u8 res=_SUCCESS;
--
--_func_enter_;
--
-- DBG_871X(FUNC_NDEV_FMT" ch:%u, bw:%u, ch_offset:%u\n",
-- FUNC_NDEV_ARG(padapter->pnetdev), ch, bw, ch_offset);
--
-- /* check input parameter */
--
-- /* prepare cmd parameter */
-- set_ch_parm = (struct set_ch_parm *)rtw_zmalloc(sizeof(*set_ch_parm));
-- if (set_ch_parm == NULL) {
-- res= _FAIL;
-- goto exit;
-- }
-- set_ch_parm->ch = ch;
-- set_ch_parm->bw = bw;
-- set_ch_parm->ch_offset = ch_offset;
--
-- if (enqueue) {
-- /* need enqueue, prepare cmd_obj and enqueue */
-- pcmdobj = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-- if(pcmdobj == NULL){
-- rtw_mfree((u8 *)set_ch_parm, sizeof(*set_ch_parm));
-- res=_FAIL;
-- goto exit;
-- }
--
-- init_h2fwcmd_w_parm_no_rsp(pcmdobj, set_ch_parm, GEN_CMD_CODE(_SetChannel));
-- res = rtw_enqueue_cmd(pcmdpriv, pcmdobj);
-- } else {
-- /* no need to enqueue, do the cmd hdl directly and free cmd parameter */
-- if( H2C_SUCCESS !=set_ch_hdl(padapter, (u8 *)set_ch_parm) )
-- res = _FAIL;
--
-- rtw_mfree((u8 *)set_ch_parm, sizeof(*set_ch_parm));
-- }
--
-- /* do something based on res... */
--
--exit:
--
-- DBG_871X(FUNC_NDEV_FMT" res:%u\n", FUNC_NDEV_ARG(padapter->pnetdev), res);
--
--_func_exit_;
--
-- return res;
--}
--
- u8 rtw_set_chplan_cmd(_adapter*padapter, u8 chplan, u8 enqueue, u8 swconfig)
- {
- struct cmd_obj* pcmdobj;
-@@ -1951,7 +1474,7 @@ _func_enter_;
- //need enqueue, prepare cmd_obj and enqueue
- pcmdobj = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
- if(pcmdobj == NULL){
-- rtw_mfree((u8 *)setChannelPlan_param, sizeof(struct SetChannelPlan_param));
-+ kfree((u8 *)setChannelPlan_param);
- res=_FAIL;
- goto exit;
- }
-@@ -1965,7 +1488,7 @@ _func_enter_;
- if( H2C_SUCCESS !=set_chplan_hdl(padapter, (unsigned char *)setChannelPlan_param) )
- res = _FAIL;
-
-- rtw_mfree((u8 *)setChannelPlan_param, sizeof(struct SetChannelPlan_param));
-+ kfree((u8 *)setChannelPlan_param);
- }
-
- //do something based on res...
-@@ -1979,92 +1502,6 @@ _func_exit_;
- return res;
- }
-
--u8 rtw_led_blink_cmd(_adapter*padapter, void * pLed)
--{
-- struct cmd_obj* pcmdobj;
-- struct LedBlink_param *ledBlink_param;
-- struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
--
-- u8 res=_SUCCESS;
--
--_func_enter_;
--
-- RT_TRACE(_module_rtl871x_cmd_c_, _drv_notice_, ("+rtw_led_blink_cmd\n"));
--
-- pcmdobj = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-- if(pcmdobj == NULL){
-- res=_FAIL;
-- goto exit;
-- }
--
-- ledBlink_param = (struct LedBlink_param *)rtw_zmalloc(sizeof(struct LedBlink_param));
-- if(ledBlink_param == NULL) {
-- rtw_mfree((u8 *)pcmdobj, sizeof(struct cmd_obj));
-- res= _FAIL;
-- goto exit;
-- }
--
-- ledBlink_param->pLed=pLed;
--
-- init_h2fwcmd_w_parm_no_rsp(pcmdobj, ledBlink_param, GEN_CMD_CODE(_LedBlink));
-- res = rtw_enqueue_cmd(pcmdpriv, pcmdobj);
--
--exit:
--
--_func_exit_;
--
-- return res;
--}
--
--u8 rtw_set_csa_cmd(_adapter*padapter, u8 new_ch_no)
--{
-- struct cmd_obj* pcmdobj;
-- struct SetChannelSwitch_param*setChannelSwitch_param;
-- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-- struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
--
-- u8 res=_SUCCESS;
--
--_func_enter_;
--
-- RT_TRACE(_module_rtl871x_cmd_c_, _drv_notice_, ("+rtw_set_csa_cmd\n"));
--
-- pcmdobj = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-- if(pcmdobj == NULL){
-- res=_FAIL;
-- goto exit;
-- }
--
-- setChannelSwitch_param = (struct SetChannelSwitch_param *)rtw_zmalloc(sizeof(struct SetChannelSwitch_param));
-- if(setChannelSwitch_param == NULL) {
-- rtw_mfree((u8 *)pcmdobj, sizeof(struct cmd_obj));
-- res= _FAIL;
-- goto exit;
-- }
--
-- setChannelSwitch_param->new_ch_no=new_ch_no;
--
-- init_h2fwcmd_w_parm_no_rsp(pcmdobj, setChannelSwitch_param, GEN_CMD_CODE(_SetChannelSwitch));
-- res = rtw_enqueue_cmd(pcmdpriv, pcmdobj);
--
--exit:
--
--_func_exit_;
--
-- return res;
--}
--
--u8 rtw_tdls_cmd(_adapter *padapter, u8 *addr, u8 option)
--{
-- u8 res=_SUCCESS;
--
--_func_enter_;
--
--_func_exit_;
--
-- return res;
--}
--
- static void collect_traffic_statistics(_adapter *padapter)
- {
- struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter);
-@@ -2150,8 +1587,6 @@ u8 traffic_status_watchdog(_adapter *pad
- TRAFFIC_PROTECT_PERIOD_MS,
- link_detect->NumTxOkInPeriod,
- link_detect->NumRxUnicastOkInPeriod);
--
-- rtw_lock_traffic_suspend_timeout(TRAFFIC_PROTECT_PERIOD_MS);
- }
- #endif
-
-@@ -2250,12 +1685,10 @@ static void dynamic_chk_wk_hdl(_adapter
- struct mlme_priv *pmlmepriv;
- pmlmepriv = &(padapter->mlmepriv);
-
--#ifdef CONFIG_AP_MODE
- if(check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
- {
- expire_timeout_chk(padapter);
- }
--#endif
-
- //for debug purpose
- _linked_info_dump(padapter);
-@@ -2370,7 +1803,7 @@ _func_enter_;
-
- pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
- if(pdrvextra_cmd_parm==NULL){
-- rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ kfree((unsigned char *)ph2c);
- res= _FAIL;
- goto exit;
- }
-@@ -2418,7 +1851,7 @@ u8 rtw_dm_in_lps_wk_cmd(_adapter*padapte
-
- pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
- if(pdrvextra_cmd_parm==NULL){
-- rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ kfree((unsigned char *)ph2c);
- res= _FAIL;
- goto exit;
- }
-@@ -2470,43 +1903,6 @@ static void rtw_lps_change_dtim_hdl(_ada
- up(&pwrpriv->lock);
- }
-
--u8 rtw_lps_change_dtim_cmd(_adapter*padapter, u8 dtim)
--{
-- struct cmd_obj *ph2c;
-- struct drvextra_cmd_parm *pdrvextra_cmd_parm;
-- struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
-- u8 res = _SUCCESS;
--
-- {
-- ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-- if(ph2c==NULL){
-- res= _FAIL;
-- goto exit;
-- }
--
-- pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
-- if(pdrvextra_cmd_parm==NULL){
-- rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-- res= _FAIL;
-- goto exit;
-- }
--
-- pdrvextra_cmd_parm->ec_id = LPS_CHANGE_DTIM_CID;
-- pdrvextra_cmd_parm->type = dtim;
-- pdrvextra_cmd_parm->size = 0;
-- pdrvextra_cmd_parm->pbuf = NULL;
--
-- init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra));
--
-- res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-- }
--
--exit:
--
-- return res;
--
--}
--
- static void rtw_dm_ra_mask_hdl(_adapter *padapter, struct sta_info *psta)
- {
- if (psta) {
-@@ -2530,7 +1926,7 @@ u8 rtw_dm_ra_mask_wk_cmd(_adapter*padapt
-
- pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
- if(pdrvextra_cmd_parm==NULL){
-- rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ kfree((unsigned char *)ph2c);
- res= _FAIL;
- goto exit;
- }
-@@ -2583,7 +1979,7 @@ _func_enter_;
-
- pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
- if(pdrvextra_cmd_parm==NULL){
-- rtw_mfree((unsigned char *)ppscmd, sizeof(struct cmd_obj));
-+ kfree((unsigned char *)ppscmd);
- res= _FAIL;
- goto exit;
- }
-@@ -2604,8 +2000,6 @@ _func_exit_;
-
- }
-
--#ifdef CONFIG_AP_MODE
--
- extern u32 g_wait_hiq_empty;
-
- static void rtw_chk_hi_queue_hdl(_adapter *padapter)
-@@ -2666,7 +2060,7 @@ u8 rtw_chk_hi_queue_cmd(_adapter*padapte
-
- pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
- if(pdrvextra_cmd_parm==NULL){
-- rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ kfree((unsigned char *)ph2c);
- res= _FAIL;
- goto exit;
- }
-@@ -2685,7 +2079,6 @@ exit:
- return res;
-
- }
--#endif
-
- struct btinfo {
- u8 cid;
-@@ -2751,50 +2144,6 @@ static void rtw_btinfo_hdl(_adapter *ada
- rtw_btcoex_BtInfoNotify(adapter ,len+1, &buf[1]);
- }
-
--u8 rtw_btinfo_cmd(_adapter *adapter, u8 *buf, u16 len)
--{
-- struct cmd_obj *ph2c;
-- struct drvextra_cmd_parm *pdrvextra_cmd_parm;
-- u8 *btinfo;
-- struct cmd_priv *pcmdpriv = &adapter->cmdpriv;
-- u8 res = _SUCCESS;
--
-- ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-- if (ph2c == NULL) {
-- res = _FAIL;
-- goto exit;
-- }
--
-- pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
-- if (pdrvextra_cmd_parm == NULL) {
-- rtw_mfree((u8*)ph2c, sizeof(struct cmd_obj));
-- res = _FAIL;
-- goto exit;
-- }
--
-- btinfo = rtw_zmalloc(len);
-- if (btinfo == NULL) {
-- rtw_mfree((u8*)ph2c, sizeof(struct cmd_obj));
-- rtw_mfree((u8*)pdrvextra_cmd_parm, sizeof(struct drvextra_cmd_parm));
-- res = _FAIL;
-- goto exit;
-- }
--
-- pdrvextra_cmd_parm->ec_id = BTINFO_WK_CID;
-- pdrvextra_cmd_parm->type = 0;
-- pdrvextra_cmd_parm->size = len;
-- pdrvextra_cmd_parm->pbuf = btinfo;
--
-- memcpy(btinfo, buf, len);
--
-- init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra));
--
-- res = rtw_enqueue_cmd(pcmdpriv, ph2c);
--
--exit:
-- return res;
--}
--
- u8 rtw_c2h_packet_wk_cmd(PADAPTER padapter, u8 *pbuf, u16 length)
- {
- struct cmd_obj *ph2c;
-@@ -2810,7 +2159,7 @@ u8 rtw_c2h_packet_wk_cmd(PADAPTER padapt
-
- pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
- if (pdrvextra_cmd_parm == NULL) {
-- rtw_mfree((u8*)ph2c, sizeof(struct cmd_obj));
-+ kfree((u8*)ph2c);
- res = _FAIL;
- goto exit;
- }
-@@ -2845,7 +2194,7 @@ u8 rtw_c2h_wk_cmd(PADAPTER padapter, u8
-
- pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
- if (pdrvextra_cmd_parm == NULL) {
-- rtw_mfree((u8*)ph2c, sizeof(struct cmd_obj));
-+ kfree((u8*)ph2c);
- res = _FAIL;
- goto exit;
- }
-@@ -2864,42 +2213,6 @@ exit:
- return res;
- }
-
--u8 rtw_run_in_thread_cmd(PADAPTER padapter, void (*func)(void*), void* context)
--{
-- struct cmd_priv *pcmdpriv;
-- struct cmd_obj *ph2c;
-- struct RunInThread_param *parm;
-- s32 res = _SUCCESS;
--
--_func_enter_;
--
-- pcmdpriv = &padapter->cmdpriv;
--
-- ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-- if (NULL == ph2c) {
-- res = _FAIL;
-- goto exit;
-- }
--
-- parm = (struct RunInThread_param*)rtw_zmalloc(sizeof(struct RunInThread_param));
-- if (NULL == parm) {
-- rtw_mfree((u8*)ph2c, sizeof(struct cmd_obj));
-- res = _FAIL;
-- goto exit;
-- }
--
-- parm->func = func;
-- parm->context = context;
-- init_h2fwcmd_w_parm_no_rsp(ph2c, parm, GEN_CMD_CODE(_RunInThreadCMD));
--
-- res = rtw_enqueue_cmd(pcmdpriv, ph2c);
--exit:
--
--_func_exit_;
--
-- return res;
--}
--
- static void c2h_wk_callback(_workitem *work)
- {
- struct evt_priv *evtpriv = container_of(work, struct evt_priv, c2h_wk);
-@@ -2916,7 +2229,7 @@ static void c2h_wk_callback(_workitem *w
- } else if ((c2h_evt = (u8 *)rtw_malloc(16)) != NULL) {
- /* This C2H event is not read, read & clear now */
- if (rtw_hal_c2h_evt_read(adapter, c2h_evt) != _SUCCESS) {
-- rtw_mfree(c2h_evt, 16);
-+ kfree(c2h_evt);
- continue;
- }
- }
-@@ -2926,14 +2239,14 @@ static void c2h_wk_callback(_workitem *w
- continue;
-
- if (!rtw_hal_c2h_valid(adapter, c2h_evt)) {
-- rtw_mfree(c2h_evt, 16);
-+ kfree(c2h_evt);
- continue;
- }
-
- if (ccx_id_filter(c2h_evt) == true) {
- /* Handle CCX report here */
- rtw_hal_c2h_handler(adapter, c2h_evt);
-- rtw_mfree(c2h_evt, 16);
-+ kfree(c2h_evt);
- } else {
- /* Enqueue into cmd_thread for others */
- rtw_c2h_wk_cmd(adapter, c2h_evt);
-@@ -2969,11 +2282,9 @@ u8 rtw_drvextra_cmd_hdl(_adapter *padapt
- case LPS_CHANGE_DTIM_CID:
- rtw_lps_change_dtim_hdl(padapter, (u8)pdrvextra_cmd->type);
- break;
--#ifdef CONFIG_AP_MODE
- case CHECK_HIQ_WK_CID:
- rtw_chk_hi_queue_hdl(padapter);
- break;
--#endif //CONFIG_AP_MODE
- #ifdef CONFIG_INTEL_WIDI
- case INTEl_WIDI_WK_CID:
- intel_widi_wk_hdl(padapter, pdrvextra_cmd->type, pdrvextra_cmd->pbuf);
-@@ -3001,7 +2312,7 @@ u8 rtw_drvextra_cmd_hdl(_adapter *padapt
-
- if (pdrvextra_cmd->pbuf && pdrvextra_cmd->size>0)
- {
-- rtw_mfree(pdrvextra_cmd->pbuf, pdrvextra_cmd->size);
-+ kfree(pdrvextra_cmd->pbuf);
- }
-
- return H2C_SUCCESS;
-@@ -3038,9 +2349,9 @@ _func_enter_;
-
- if (pcmd->res != H2C_SUCCESS)
- {
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
- set_fwstate(pmlmepriv, _FW_LINKED);
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
-
- RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\n ***Error: disconnect_cmd_callback Fail ***\n."));
-
-@@ -3100,7 +2411,7 @@ _func_enter_;
-
- _cancel_timer(&pmlmepriv->assoc_timer, &timer_cancelled);
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
-
-
- if(check_fwstate(pmlmepriv, WIFI_AP_STATE) )
-@@ -3123,28 +2434,28 @@ _func_enter_;
- _irqL irqL;
-
- pwlan = _rtw_alloc_network(pmlmepriv);
-- _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
- if ( pwlan == NULL)
- {
- pwlan = rtw_get_oldest_wlan_network(&pmlmepriv->scanned_queue);
- if( pwlan == NULL)
- {
- RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\n Error: can't get pwlan in rtw_joinbss_event_callback \n"));
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
- goto createbss_cmd_fail;
- }
- pwlan->last_scanned = jiffies;
- }
- else
- {
-- rtw_list_insert_tail(&(pwlan->list), &pmlmepriv->scanned_queue.queue);
-+ list_add_tail(&(pwlan->list), &pmlmepriv->scanned_queue.queue);
- }
-
- pnetwork->Length = get_WLAN_BSSID_EX_sz(pnetwork);
- memcpy(&(pwlan->network), pnetwork, pnetwork->Length);
- //pwlan->fixed = true;
-
-- //rtw_list_insert_tail(&(pwlan->list), &pmlmepriv->scanned_queue.queue);
-+ //list_add_tail(&(pwlan->list), &pmlmepriv->scanned_queue.queue);
-
- // copy pdev_network information to pmlmepriv->cur_network
- memcpy(&tgt_network->network, pnetwork, (get_WLAN_BSSID_EX_sz(pnetwork)));
-@@ -3154,14 +2465,14 @@ _func_enter_;
-
- _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
-
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
- // we will set _FW_LINKED when there is one more sat to join us (rtw_stassoc_event_callback)
-
- }
-
- createbss_cmd_fail:
-
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
- exit:
- rtw_free_cmd_obj(pcmd);
-
-@@ -3214,28 +2525,16 @@ _func_enter_;
-
- psta->aid = psta->mac_id = passocsta_rsp->cam_id;
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
-
- if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) && (check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == true))
- _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
-
- set_fwstate(pmlmepriv, _FW_LINKED);
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
-
- exit:
- rtw_free_cmd_obj(pcmd);
-
- _func_exit_;
- }
--
--void rtw_getrttbl_cmd_cmdrsp_callback(_adapter* padapter, struct cmd_obj *pcmd);
--void rtw_getrttbl_cmd_cmdrsp_callback(_adapter* padapter, struct cmd_obj *pcmd)
--{
--_func_enter_;
--
-- rtw_free_cmd_obj(pcmd);
--
--_func_exit_;
--
--}
--
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_debug.c linux/3rdparty/rtl8723bs/core/rtw_debug.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_debug.c 2015-05-10 14:36:05.666667879 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_debug.c 2015-05-07 17:46:55.000000000 +0300
-@@ -62,7 +62,7 @@ u32 GlobalDebugLevel = _drv_err_;
-
- void dump_drv_version(void *sel)
- {
-- DBG_871X_SEL_NL(sel, "%s %s\n", DRV_NAME, DRIVERVERSION);
-+ DBG_871X_SEL_NL(sel, "%s %s\n", "rtl8723bs", DRIVERVERSION);
- }
-
- void dump_log_level(void *sel)
-@@ -309,7 +309,6 @@ int proc_get_mlmext_state(struct seq_fil
- return 0;
- }
-
--#ifdef CONFIG_LAYER2_ROAMING
- int proc_get_roam_flags(struct seq_file *m, void *v)
- {
- struct net_device *dev = m->private;
-@@ -411,7 +410,6 @@ ssize_t proc_set_roam_tgt_addr(struct fi
-
- return count;
- }
--#endif /* CONFIG_LAYER2_ROAMING */
-
- int proc_get_qos_option(struct seq_file *m, void *v)
- {
-@@ -463,18 +461,19 @@ int proc_get_survey_info(struct seq_file
- s16 notify_noise = 0;
- u16 index = 0;
-
-- _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
- phead = get_list_head(queue);
-+ plist = phead ? get_next(phead) : NULL;
- plist = get_next(phead);
- if ((!phead) || (!plist)) {
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
- return 0;
- }
-
- DBG_871X_SEL_NL(m, "%5s %-17s %3s %-3s %-4s %-4s %5s %s\n","index", "bssid", "ch", "RSSI", "SdBm", "Noise", "age", "ssid");
- while(1)
- {
-- if (rtw_end_of_queue_search(phead,plist)== true)
-+ if (phead == plist)
- break;
-
- pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list);
-@@ -504,7 +503,7 @@ int proc_get_survey_info(struct seq_file
- pnetwork->network.Ssid.Ssid);
- plist = get_next(plist);
- }
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
-
- return 0;
- }
-@@ -1325,9 +1324,6 @@ ssize_t proc_set_rssi_disp(struct file *
-
- }
-
--
--#ifdef CONFIG_AP_MODE
--
- int proc_get_all_sta_info(struct seq_file *m, void *v)
- {
- struct net_device *dev = m->private;
-@@ -1341,14 +1337,14 @@ int proc_get_all_sta_info(struct seq_fil
-
- DBG_871X_SEL_NL(m, "sta_dz_bitmap=0x%x, tim_bitmap=0x%x\n", pstapriv->sta_dz_bitmap, pstapriv->tim_bitmap);
-
-- _enter_critical_bh(&pstapriv->sta_hash_lock, &irqL);
-+ spin_lock_bh(&pstapriv->sta_hash_lock);
-
- for(i=0; i< NUM_STA; i++)
- {
- phead = &(pstapriv->sta_hash[i]);
- plist = get_next(phead);
-
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ while (phead != plist)
- {
- psta = LIST_CONTAINOR(plist, struct sta_info, hash_list);
-
-@@ -1394,12 +1390,10 @@ int proc_get_all_sta_info(struct seq_fil
-
- }
-
-- _exit_critical_bh(&pstapriv->sta_hash_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->sta_hash_lock);
-
- return 0;
- }
--
--#endif
-
- int proc_get_btcoex_dbg(struct seq_file *m, void *v)
- {
-@@ -1497,7 +1491,7 @@ int proc_get_btcoex_info(struct seq_file
-
- DBG_871X_SEL(m, "%s\n", pbuf);
-
-- rtw_mfree(pbuf, bufsize);
-+ kfree(pbuf);
-
- return 0;
- }
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_eeprom.c linux/3rdparty/rtl8723bs/core/rtw_eeprom.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_eeprom.c 2015-05-10 14:36:05.666667879 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_eeprom.c 1970-01-01 02:00:00.000000000 +0200
-@@ -1,381 +0,0 @@
--/******************************************************************************
-- *
-- * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or modify it
-- * under the terms of version 2 of the GNU General Public License as
-- * published by the Free Software Foundation.
-- *
-- * This program is distributed in the hope that it will be useful, but WITHOUT
-- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-- * more details.
-- *
-- * You should have received a copy of the GNU General Public License along with
-- * this program; if not, write to the Free Software Foundation, Inc.,
-- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-- *
-- *
-- ******************************************************************************/
--#define _RTW_EEPROM_C_
--
--#include
--#include
--#include
--
--void up_clk(_adapter* padapter, u16 *x)
--{
--_func_enter_;
-- *x = *x | _EESK;
-- rtw_write8(padapter, EE_9346CR, (u8)*x);
-- udelay(CLOCK_RATE);
--
--_func_exit_;
--
--}
--
--void down_clk(_adapter * padapter, u16 *x )
--{
--_func_enter_;
-- *x = *x & ~_EESK;
-- rtw_write8(padapter, EE_9346CR, (u8)*x);
-- udelay(CLOCK_RATE);
--_func_exit_;
--}
--
--void shift_out_bits(_adapter * padapter, u16 data, u16 count)
--{
-- u16 x,mask;
--_func_enter_;
--
-- if(padapter->bSurpriseRemoved==true){
-- RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
-- goto out;
-- }
-- mask = 0x01 << (count - 1);
-- x = rtw_read8(padapter, EE_9346CR);
--
-- x &= ~(_EEDO | _EEDI);
--
-- do
-- {
-- x &= ~_EEDI;
-- if(data & mask)
-- x |= _EEDI;
-- if(padapter->bSurpriseRemoved==true){
-- RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
-- goto out;
-- }
-- rtw_write8(padapter, EE_9346CR, (u8)x);
-- udelay(CLOCK_RATE);
-- up_clk(padapter, &x);
-- down_clk(padapter, &x);
-- mask = mask >> 1;
-- } while(mask);
-- if(padapter->bSurpriseRemoved==true){
-- RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
-- goto out;
-- }
-- x &= ~_EEDI;
-- rtw_write8(padapter, EE_9346CR, (u8)x);
--out:
--_func_exit_;
--}
--
--u16 shift_in_bits (_adapter * padapter)
--{
-- u16 x,d=0,i;
--_func_enter_;
-- if(padapter->bSurpriseRemoved==true){
-- RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
-- goto out;
-- }
-- x = rtw_read8(padapter, EE_9346CR);
--
-- x &= ~( _EEDO | _EEDI);
-- d = 0;
--
-- for(i=0; i<16; i++)
-- {
-- d = d << 1;
-- up_clk(padapter, &x);
-- if(padapter->bSurpriseRemoved==true){
-- RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
-- goto out;
-- }
-- x = rtw_read8(padapter, EE_9346CR);
--
-- x &= ~(_EEDI);
-- if(x & _EEDO)
-- d |= 1;
--
-- down_clk(padapter, &x);
-- }
--out:
--_func_exit_;
--
-- return d;
--}
--
--void standby(_adapter * padapter )
--{
-- u8 x;
--_func_enter_;
-- x = rtw_read8(padapter, EE_9346CR);
--
-- x &= ~(_EECS | _EESK);
-- rtw_write8(padapter, EE_9346CR,x);
--
-- udelay(CLOCK_RATE);
-- x |= _EECS;
-- rtw_write8(padapter, EE_9346CR, x);
-- udelay(CLOCK_RATE);
--_func_exit_;
--}
--
--u16 wait_eeprom_cmd_done(_adapter* padapter)
--{
-- u8 x;
-- u16 i,res=false;
--_func_enter_;
-- standby(padapter );
-- for (i=0; i<200; i++)
-- {
-- x = rtw_read8(padapter, EE_9346CR);
-- if (x & _EEDO){
-- res=true;
-- goto exit;
-- }
-- udelay(CLOCK_RATE);
-- }
--exit:
--_func_exit_;
-- return res;
--}
--
--void eeprom_clean(_adapter * padapter)
--{
-- u16 x;
--_func_enter_;
-- if(padapter->bSurpriseRemoved==true){
-- RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
-- goto out;
-- }
-- x = rtw_read8(padapter, EE_9346CR);
-- if(padapter->bSurpriseRemoved==true){
-- RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
-- goto out;
-- }
-- x &= ~(_EECS | _EEDI);
-- rtw_write8(padapter, EE_9346CR, (u8)x);
-- if(padapter->bSurpriseRemoved==true){
-- RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
-- goto out;
-- }
-- up_clk(padapter, &x);
-- if(padapter->bSurpriseRemoved==true){
-- RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
-- goto out;
-- }
-- down_clk(padapter, &x);
--out:
--_func_exit_;
--}
--
--void eeprom_write16(_adapter * padapter, u16 reg, u16 data)
--{
-- u8 x;
--
--_func_enter_;
--
-- x = rtw_read8(padapter, EE_9346CR);
--
-- x &= ~(_EEDI | _EEDO | _EESK | _EEM0);
-- x |= _EEM1 | _EECS;
-- rtw_write8(padapter, EE_9346CR, x);
--
-- shift_out_bits(padapter, EEPROM_EWEN_OPCODE, 5);
--
-- if(padapter->EepromAddressSize==8) //CF+ and SDIO
-- shift_out_bits(padapter, 0, 6);
-- else //USB
-- shift_out_bits(padapter, 0, 4);
--
-- standby( padapter);
--
--// Commented out by rcnjko, 2004.0
--// // Erase this particular word. Write the erase opcode and register
--// // number in that order. The opcode is 3bits in length; reg is 6 bits long.
--// shift_out_bits(Adapter, EEPROM_ERASE_OPCODE, 3);
--// shift_out_bits(Adapter, reg, Adapter->EepromAddressSize);
--//
--// if (wait_eeprom_cmd_done(Adapter ) == false)
--// {
--// return;
--// }
--
--
-- standby(padapter );
--
-- // write the new word to the EEPROM
--
-- // send the write opcode the EEPORM
-- shift_out_bits(padapter, EEPROM_WRITE_OPCODE, 3);
--
-- // select which word in the EEPROM that we are writing to.
-- shift_out_bits(padapter, reg, padapter->EepromAddressSize);
--
-- // write the data to the selected EEPROM word.
-- shift_out_bits(padapter, data, 16);
--
-- if (wait_eeprom_cmd_done(padapter ) == false)
-- {
--
-- goto exit;
-- }
--
-- standby(padapter );
--
-- shift_out_bits(padapter, EEPROM_EWDS_OPCODE, 5);
-- shift_out_bits(padapter, reg, 4);
--
-- eeprom_clean(padapter );
--exit:
--_func_exit_;
-- return;
--}
--
--u16 eeprom_read16(_adapter * padapter, u16 reg) //ReadEEprom
--{
--
-- u16 x;
-- u16 data=0;
--
--_func_enter_;
--
-- if(padapter->bSurpriseRemoved==true){
-- RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
-- goto out;
-- }
-- // select EEPROM, reset bits, set _EECS
-- x = rtw_read8(padapter, EE_9346CR);
--
-- if(padapter->bSurpriseRemoved==true){
-- RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
-- goto out;
-- }
--
-- x &= ~(_EEDI | _EEDO | _EESK | _EEM0);
-- x |= _EEM1 | _EECS;
-- rtw_write8(padapter, EE_9346CR, (unsigned char)x);
--
-- // write the read opcode and register number in that order
-- // The opcode is 3bits in length, reg is 6 bits long
-- shift_out_bits(padapter, EEPROM_READ_OPCODE, 3);
-- shift_out_bits(padapter, reg, padapter->EepromAddressSize);
--
-- // Now read the data (16 bits) in from the selected EEPROM word
-- data = shift_in_bits(padapter);
--
-- eeprom_clean(padapter);
--out:
--_func_exit_;
-- return data;
--
--
--}
--
--
--
--
--//From even offset
--void eeprom_read_sz(_adapter * padapter, u16 reg, u8* data, u32 sz)
--{
--
-- u16 x, data16;
-- u32 i;
--_func_enter_;
-- if(padapter->bSurpriseRemoved==true){
-- RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
-- goto out;
-- }
-- // select EEPROM, reset bits, set _EECS
-- x = rtw_read8(padapter, EE_9346CR);
--
-- if(padapter->bSurpriseRemoved==true){
-- RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
-- goto out;
-- }
--
-- x &= ~(_EEDI | _EEDO | _EESK | _EEM0);
-- x |= _EEM1 | _EECS;
-- rtw_write8(padapter, EE_9346CR, (unsigned char)x);
--
-- // write the read opcode and register number in that order
-- // The opcode is 3bits in length, reg is 6 bits long
-- shift_out_bits(padapter, EEPROM_READ_OPCODE, 3);
-- shift_out_bits(padapter, reg, padapter->EepromAddressSize);
--
--
-- for(i=0; i>8;
-- }
--
-- eeprom_clean(padapter);
--out:
--_func_exit_;
--
--
--
--}
--
--
--//addr_off : address offset of the entry in eeprom (not the tuple number of eeprom (reg); that is addr_off !=reg)
--u8 eeprom_read(_adapter * padapter, u32 addr_off, u8 sz, u8* rbuf)
--{
-- u8 quotient, remainder, addr_2align_odd;
-- u16 reg, stmp , i=0, idx = 0;
--_func_enter_;
-- reg = (u16)(addr_off >> 1);
-- addr_2align_odd = (u8)(addr_off & 0x1);
--
-- if(addr_2align_odd) //read that start at high part: e.g 1,3,5,7,9,...
-- {
-- stmp = eeprom_read16(padapter, reg);
-- rbuf[idx++] = (u8) ((stmp>>8)&0xff); //return hogh-part of the short
-- reg++; sz--;
-- }
--
-- quotient = sz >> 1;
-- remainder = sz & 0x1;
--
-- for( i=0 ; i < quotient; i++)
-- {
-- stmp = eeprom_read16(padapter, reg+i);
-- rbuf[idx++] = (u8) (stmp&0xff);
-- rbuf[idx++] = (u8) ((stmp>>8)&0xff);
-- }
--
-- reg = reg+i;
-- if(remainder){ //end of read at lower part of short : 0,2,4,6,...
-- stmp = eeprom_read16(padapter, reg);
-- rbuf[idx] = (u8)(stmp & 0xff);
-- }
--_func_exit_;
-- return true;
--}
--
--
--
--void read_eeprom_content(_adapter * padapter)
--{
--
--_func_enter_;
--
--
--_func_exit_;
--}
--
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_efuse.c linux/3rdparty/rtl8723bs/core/rtw_efuse.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_efuse.c 2015-05-10 14:36:05.666667879 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_efuse.c 2015-05-07 17:46:55.000000000 +0300
-@@ -121,18 +121,8 @@ Efuse_PowerSwitch(
- pAdapter->HalFunc.EfusePowerSwitch(pAdapter, bWrite, PwrState);
- }
-
--void
--BTEfuse_PowerSwitch(
-- IN PADAPTER pAdapter,
-- IN u8 bWrite,
-- IN u8 PwrState)
--{
-- if(pAdapter->HalFunc.BTEfusePowerSwitch)
-- pAdapter->HalFunc.BTEfusePowerSwitch(pAdapter, bWrite, PwrState);
--}
--
- /*-----------------------------------------------------------------------------
-- * Function: efuse_GetCurrentSize
-+ * Function: Efuse_GetCurrentSize
- *
- * Overview: Get current efuse size!!!
- *
-@@ -174,68 +164,6 @@ Efuse_CalculateWordCnts(IN u8 word_en)
-
- //
- // Description:
--// Execute E-Fuse read byte operation.
--// Refered from SD1 Richard.
--//
--// Assumption:
--// 1. Boot from E-Fuse and successfully auto-load.
--// 2. PASSIVE_LEVEL (USB interface)
--//
--// Created by Roger, 2008.10.21.
--//
--void
--ReadEFuseByte(
-- PADAPTER Adapter,
-- u16 _offset,
-- u8 *pbuf,
-- IN bool bPseudoTest)
--{
-- u32 value32;
-- u8 readbyte;
-- u16 retry;
--
-- if(bPseudoTest)
-- {
-- Efuse_Read1ByteFromFakeContent(Adapter, _offset, pbuf);
-- return;
-- }
-- // <20130121, Kordan> For SMIC S55 EFUSE specificatoin.
-- //0x34[11]: SW force PGMEN input of efuse to high. (for the bank selected by 0x34[9:8])
-- PHY_SetMacReg(Adapter, EFUSE_TEST, BIT11, 0);
--
-- //Write Address
-- rtw_write8(Adapter, EFUSE_CTRL+1, (_offset & 0xff));
-- readbyte = rtw_read8(Adapter, EFUSE_CTRL+2);
-- rtw_write8(Adapter, EFUSE_CTRL+2, ((_offset >> 8) & 0x03) | (readbyte & 0xfc));
--
-- //Write bit 32 0
-- readbyte = rtw_read8(Adapter, EFUSE_CTRL+3);
-- rtw_write8(Adapter, EFUSE_CTRL+3, (readbyte & 0x7f));
--
-- //Check bit 32 read-ready
-- retry = 0;
-- value32 = rtw_read32(Adapter, EFUSE_CTRL);
-- //while(!(((value32 >> 24) & 0xff) & 0x80) && (retry<10))
-- while(!(((value32 >> 24) & 0xff) & 0x80) && (retry<10000))
-- {
-- value32 = rtw_read32(Adapter, EFUSE_CTRL);
-- retry++;
-- }
--
-- // 20100205 Joseph: Add delay suggested by SD1 Victor.
-- // This fix the problem that Efuse read error in high temperature condition.
-- // Designer says that there shall be some delay after ready bit is set, or the
-- // result will always stay on last data we read.
-- udelay(50);
-- value32 = rtw_read32(Adapter, EFUSE_CTRL);
--
-- *pbuf = (u8)(value32 & 0xff);
-- //DBG_871X("ReadEFuseByte _offset:%08u, in %d ms\n",_offset ,jiffies_to_msecs(jiffies - start));
--
--}
--
--//
--// Description:
- // 1. Execute E-Fuse read byte operation according as map offset and
- // save to E-Fuse table.
- // 2. Refered from SD1 Richard.
-@@ -350,76 +278,6 @@ EFUSE_Read1Byte(
-
- }/* EFUSE_Read1Byte */
-
--/*-----------------------------------------------------------------------------
-- * Function: EFUSE_Write1Byte
-- *
-- * Overview: Copy from WMAC fot EFUSE write 1 byte.
-- *
-- * Input: NONE
-- *
-- * Output: NONE
-- *
-- * Return: NONE
-- *
-- * Revised History:
-- * When Who Remark
-- * 09/23/2008 MHC Copy from WMAC.
-- *
-- *---------------------------------------------------------------------------*/
--
--void
--EFUSE_Write1Byte(
-- IN PADAPTER Adapter,
-- IN u16 Address,
-- IN u8 Value);
--void
--EFUSE_Write1Byte(
-- IN PADAPTER Adapter,
-- IN u16 Address,
-- IN u8 Value)
--{
-- u8 Bytetemp = {0x00};
-- u8 temp = {0x00};
-- u32 k=0;
-- u16 contentLen=0;
--
-- //RT_TRACE(COMP_EFUSE, DBG_LOUD, ("Addr=%x Data =%x\n", Address, Value));
-- EFUSE_GetEfuseDefinition(Adapter, EFUSE_WIFI , TYPE_EFUSE_REAL_CONTENT_LEN, (void *)&contentLen, false);
--
-- if( Address < contentLen) //E-fuse 512Byte
-- {
-- rtw_write8(Adapter, EFUSE_CTRL, Value);
--
-- //Write E-fuse Register address bit0~7
-- temp = Address & 0xFF;
-- rtw_write8(Adapter, EFUSE_CTRL+1, temp);
-- Bytetemp = rtw_read8(Adapter, EFUSE_CTRL+2);
--
-- //Write E-fuse Register address bit8~9
-- temp = ((Address >> 8) & 0x03) | (Bytetemp & 0xFC);
-- rtw_write8(Adapter, EFUSE_CTRL+2, temp);
--
-- //Write 0x30[31]=1
-- Bytetemp = rtw_read8(Adapter, EFUSE_CTRL+3);
-- temp = Bytetemp | 0x80;
-- rtw_write8(Adapter, EFUSE_CTRL+3, temp);
--
-- //Wait Write-ready (0x30[31]=0)
-- Bytetemp = rtw_read8(Adapter, EFUSE_CTRL+3);
-- while(Bytetemp & 0x80)
-- {
-- Bytetemp = rtw_read8(Adapter, EFUSE_CTRL+3);
-- k++;
-- if(k==100)
-- {
-- k=0;
-- break;
-- }
-- }
-- }
--}/* EFUSE_Write1Byte */
--
--
- /* 11/16/2008 MH Read one byte from real Efuse. */
- u8
- efuse_OneByteRead(
-@@ -642,289 +500,6 @@ Efuse_WordEnableDataWrite( IN PADAPTER p
- return ret;
- }
-
--static u8 efuse_read8(PADAPTER padapter, u16 address, u8 *value)
--{
-- return efuse_OneByteRead(padapter,address, value, false);
--}
--
--static u8 efuse_write8(PADAPTER padapter, u16 address, u8 *value)
--{
-- return efuse_OneByteWrite(padapter,address, *value, false);
--}
--
--/*
-- * read/wirte raw efuse data
-- */
--u8 rtw_efuse_access(PADAPTER padapter, u8 bWrite, u16 start_addr, u16 cnts, u8 *data)
--{
-- int i = 0;
-- u16 real_content_len = 0, max_available_size = 0;
-- u8 res = _FAIL ;
-- u8 (*rw8)(PADAPTER, u16, u8*);
--
-- EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_EFUSE_REAL_CONTENT_LEN, (void *)&real_content_len, false);
-- EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_AVAILABLE_EFUSE_BYTES_TOTAL, (void *)&max_available_size, false);
--
-- if (start_addr > real_content_len)
-- return _FAIL;
--
-- if (true == bWrite) {
-- if ((start_addr + cnts) > max_available_size)
-- return _FAIL;
-- rw8 = &efuse_write8;
-- } else
-- rw8 = &efuse_read8;
--
-- Efuse_PowerSwitch(padapter, bWrite, true);
--
-- // e-fuse one byte read / write
-- for (i = 0; i < cnts; i++) {
-- if (start_addr >= real_content_len) {
-- res = _FAIL;
-- break;
-- }
--
-- res = rw8(padapter, start_addr++, data++);
-- if (_FAIL == res) break;
-- }
--
-- Efuse_PowerSwitch(padapter, bWrite, false);
--
-- return res;
--}
--//------------------------------------------------------------------------------
--u16 efuse_GetMaxSize(PADAPTER padapter)
--{
-- u16 max_size;
-- EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI , TYPE_AVAILABLE_EFUSE_BYTES_TOTAL, (void *)&max_size, false);
-- return max_size;
--}
--//------------------------------------------------------------------------------
--u8 efuse_GetCurrentSize(PADAPTER padapter, u16 *size)
--{
-- Efuse_PowerSwitch(padapter, false, true);
-- *size = Efuse_GetCurrentSize(padapter, EFUSE_WIFI, false);
-- Efuse_PowerSwitch(padapter, false, false);
--
-- return _SUCCESS;
--}
--//------------------------------------------------------------------------------
--u8 rtw_efuse_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
--{
-- u16 mapLen=0;
--
-- EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, false);
--
-- if ((addr + cnts) > mapLen)
-- return _FAIL;
--
-- Efuse_PowerSwitch(padapter, false, true);
--
-- efuse_ReadEFuse(padapter, EFUSE_WIFI, addr, cnts, data, false);
--
-- Efuse_PowerSwitch(padapter, false, false);
--
-- return _SUCCESS;
--}
--
--u8 rtw_BT_efuse_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
--{
-- u16 mapLen=0;
--
-- EFUSE_GetEfuseDefinition(padapter, EFUSE_BT, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, false);
--
-- if ((addr + cnts) > mapLen)
-- return _FAIL;
--
-- Efuse_PowerSwitch(padapter, false, true);
--
-- efuse_ReadEFuse(padapter, EFUSE_BT, addr, cnts, data, false);
--
-- Efuse_PowerSwitch(padapter, false, false);
--
-- return _SUCCESS;
--}
--//------------------------------------------------------------------------------
--u8 rtw_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
--{
--#define RT_ASSERT_RET(expr) \
-- if(!(expr)) { \
-- printk( "Assertion failed! %s at ......\n", #expr); \
-- printk( " ......%s,%s,line=%d\n",__FILE__,__FUNCTION__,__LINE__); \
-- return _FAIL; \
-- }
--
-- u8 offset, word_en;
-- u8 *map;
-- u8 newdata[PGPKT_DATA_SIZE];
-- s32 i, j, idx;
-- u8 ret = _SUCCESS;
-- u16 mapLen=0;
-- EEPROM_EFUSE_PRIV *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter);
-- HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
--
-- EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, false);
--
-- if ((addr + cnts) > mapLen)
-- return _FAIL;
--
-- RT_ASSERT_RET(PGPKT_DATA_SIZE == 8); // have to be 8 byte alignment
-- RT_ASSERT_RET((mapLen & 0x7) == 0); // have to be PGPKT_DATA_SIZE alignment for memcpy
--
-- map = rtw_zmalloc(mapLen);
-- if(map == NULL){
-- return _FAIL;
-- }
--
-- memset(map, 0xFF, mapLen);
--
-- ret = rtw_efuse_map_read(padapter, 0, mapLen, map);
-- if (ret == _FAIL) goto exit;
--
-- Efuse_PowerSwitch(padapter, true, true);
--
-- idx = 0;
-- offset = (addr >> 3);
-- while (idx < cnts)
-- {
-- word_en = 0xF;
-- j = (addr + idx) & 0x7;
-- memcpy(newdata, &map[offset << 3], PGPKT_DATA_SIZE);
-- for (i = j; i> 1);
-- newdata[i] = data[idx];
--
-- if( addr + idx == 0x8)
-- {
-- if (IS_C_CUT(pHalData->VersionID) || IS_B_CUT(pHalData->VersionID))
-- {
-- if(pEEPROM->adjuseVoltageVal == 6)
-- {
-- newdata[i] = map[addr + idx];
-- DBG_8192C(" %s ,\n adjuseVoltageVal = %d ,newdata[%d] = %x \n",__func__,pEEPROM->adjuseVoltageVal,i,newdata[i]);
-- }
-- }
-- }
-- }
-- }
--
-- if (word_en != 0xF) {
-- ret = Efuse_PgPacketWrite(padapter, offset, word_en, newdata, false);
-- DBG_871X("offset=%x \n",offset);
-- DBG_871X("word_en=%x \n",word_en);
--
-- for(i=0;i mapLen)
-- return _FAIL;
--
-- RT_ASSERT_RET(PGPKT_DATA_SIZE == 8); // have to be 8 byte alignment
-- RT_ASSERT_RET((mapLen & 0x7) == 0); // have to be PGPKT_DATA_SIZE alignment for memcpy
--
-- map = rtw_zmalloc(mapLen);
-- if(map == NULL){
-- return _FAIL;
-- }
--
-- ret = rtw_BT_efuse_map_read(padapter, 0, mapLen, map);
-- if (ret == _FAIL) goto exit;
-- DBG_871X("OFFSET\tVALUE(hex)\n");
-- for (i=0; i<1024; i+=16) // set 512 because the iwpriv's extra size have limit 0x7FF
-- {
-- DBG_871X("0x%03x\t", i);
-- for (j=0; j<8; j++) {
-- DBG_871X("%02X ", map[i+j]);
-- }
-- DBG_871X("\t");
-- for (; j<16; j++) {
-- DBG_871X("%02X ", map[i+j]);
-- }
-- DBG_871X("\n");
-- }
-- DBG_871X("\n");
-- Efuse_PowerSwitch(padapter, true, true);
--
-- idx = 0;
-- offset = (addr >> 3);
-- while (idx < cnts)
-- {
-- word_en = 0xF;
-- j = (addr + idx) & 0x7;
-- memcpy(newdata, &map[offset << 3], PGPKT_DATA_SIZE);
-- for (i = j; i> 1);
-- newdata[i] = data[idx];
-- }
-- }
--
-- if (word_en != 0xF) {
-- DBG_871X("offset=%x \n",offset);
-- DBG_871X("word_en=%x \n",word_en);
-- DBG_871X("%s: data=", __FUNCTION__);
-- for(i=0;ipio_queue;
-- struct io_priv *pio_priv = &adapter->iopriv;
-- struct intf_hdl *pintfhdl = (struct intf_hdl*)(&(pio_priv->intf));
-- int (*_writeN)(struct intf_hdl *pintfhdl, u32 addr,u32 length, u8 *pdata);
-- int ret;
-- _func_enter_;
-- _writeN = pintfhdl->io_ops._writeN;
--
-- ret = _writeN(pintfhdl, addr,length,pdata);
-- _func_exit_;
--
-- return RTW_STATUS_CODE(ret);
--}
--
- u8 _rtw_sd_f0_read8(_adapter *adapter, u32 addr)
- {
- u8 r_val = 0x00;
-@@ -178,129 +160,6 @@ u8 _rtw_sd_f0_read8(_adapter *adapter, u
- return r_val;
- }
-
--int _rtw_write8_async(_adapter *adapter, u32 addr, u8 val)
--{
-- //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
-- struct io_priv *pio_priv = &adapter->iopriv;
-- struct intf_hdl *pintfhdl = &(pio_priv->intf);
-- int (*_write8_async)(struct intf_hdl *pintfhdl, u32 addr, u8 val);
-- int ret;
-- _func_enter_;
-- _write8_async = pintfhdl->io_ops._write8_async;
--
-- ret = _write8_async(pintfhdl, addr, val);
-- _func_exit_;
--
-- return RTW_STATUS_CODE(ret);
--}
--int _rtw_write16_async(_adapter *adapter, u32 addr, u16 val)
--{
-- //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
-- struct io_priv *pio_priv = &adapter->iopriv;
-- struct intf_hdl *pintfhdl = &(pio_priv->intf);
-- int (*_write16_async)(struct intf_hdl *pintfhdl, u32 addr, u16 val);
-- int ret;
-- _func_enter_;
-- _write16_async = pintfhdl->io_ops._write16_async;
-- val = rtw_cpu_to_le16(val);
-- ret = _write16_async(pintfhdl, addr, val);
-- _func_exit_;
--
-- return RTW_STATUS_CODE(ret);
--}
--int _rtw_write32_async(_adapter *adapter, u32 addr, u32 val)
--{
-- //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
-- struct io_priv *pio_priv = &adapter->iopriv;
-- struct intf_hdl *pintfhdl = &(pio_priv->intf);
-- int (*_write32_async)(struct intf_hdl *pintfhdl, u32 addr, u32 val);
-- int ret;
-- _func_enter_;
-- _write32_async = pintfhdl->io_ops._write32_async;
-- val = rtw_cpu_to_le32(val);
-- ret = _write32_async(pintfhdl, addr, val);
-- _func_exit_;
--
-- return RTW_STATUS_CODE(ret);
--}
--
--void _rtw_read_mem(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem)
--{
-- void (*_read_mem)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pmem);
-- //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
-- struct io_priv *pio_priv = &adapter->iopriv;
-- struct intf_hdl *pintfhdl = &(pio_priv->intf);
--
-- _func_enter_;
--
-- if( (adapter->bDriverStopped ==true) || (adapter->bSurpriseRemoved == true))
-- {
-- RT_TRACE(_module_rtl871x_io_c_, _drv_info_, ("rtw_read_mem:bDriverStopped(%d) OR bSurpriseRemoved(%d)", adapter->bDriverStopped, adapter->bSurpriseRemoved));
-- return;
-- }
--
-- _read_mem = pintfhdl->io_ops._read_mem;
--
-- _read_mem(pintfhdl, addr, cnt, pmem);
--
-- _func_exit_;
--
--}
--
--void _rtw_write_mem(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem)
--{
-- void (*_write_mem)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pmem);
-- //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
-- struct io_priv *pio_priv = &adapter->iopriv;
-- struct intf_hdl *pintfhdl = &(pio_priv->intf);
--
-- _func_enter_;
--
-- _write_mem = pintfhdl->io_ops._write_mem;
--
-- _write_mem(pintfhdl, addr, cnt, pmem);
--
-- _func_exit_;
--
--}
--
--void _rtw_read_port(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem)
--{
-- u32 (*_read_port)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pmem);
-- //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
-- struct io_priv *pio_priv = &adapter->iopriv;
-- struct intf_hdl *pintfhdl = &(pio_priv->intf);
--
-- _func_enter_;
--
-- if( (adapter->bDriverStopped ==true) || (adapter->bSurpriseRemoved == true))
-- {
-- RT_TRACE(_module_rtl871x_io_c_, _drv_info_, ("rtw_read_port:bDriverStopped(%d) OR bSurpriseRemoved(%d)", adapter->bDriverStopped, adapter->bSurpriseRemoved));
-- return;
-- }
--
-- _read_port = pintfhdl->io_ops._read_port;
--
-- _read_port(pintfhdl, addr, cnt, pmem);
--
-- _func_exit_;
--
--}
--
--void _rtw_read_port_cancel(_adapter *adapter)
--{
-- void (*_read_port_cancel)(struct intf_hdl *pintfhdl);
-- struct io_priv *pio_priv = &adapter->iopriv;
-- struct intf_hdl *pintfhdl = &(pio_priv->intf);
--
-- _read_port_cancel = pintfhdl->io_ops._read_port_cancel;
--
-- RTW_DISABLE_FUNC(adapter, DF_RX_BIT);
--
-- if(_read_port_cancel)
-- _read_port_cancel(pintfhdl);
--}
--
- u32 _rtw_write_port(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem)
- {
- u32 (*_write_port)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pmem);
-@@ -320,36 +179,6 @@ u32 _rtw_write_port(_adapter *adapter, u
- return ret;
- }
-
--u32 _rtw_write_port_and_wait(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem, int timeout_ms)
--{
-- int ret = _SUCCESS;
-- struct xmit_buf *pxmitbuf = (struct xmit_buf *)pmem;
-- struct submit_ctx sctx;
--
-- rtw_sctx_init(&sctx, timeout_ms);
-- pxmitbuf->sctx = &sctx;
--
-- ret = _rtw_write_port(adapter, addr, cnt, pmem);
--
-- if (ret == _SUCCESS)
-- ret = rtw_sctx_wait(&sctx, __func__);
--
-- return ret;
--}
--
--void _rtw_write_port_cancel(_adapter *adapter)
--{
-- void (*_write_port_cancel)(struct intf_hdl *pintfhdl);
-- struct io_priv *pio_priv = &adapter->iopriv;
-- struct intf_hdl *pintfhdl = &(pio_priv->intf);
--
-- _write_port_cancel = pintfhdl->io_ops._write_port_cancel;
--
-- RTW_DISABLE_FUNC(adapter, DF_TX_BIT);
--
-- if(_write_port_cancel)
-- _write_port_cancel(pintfhdl);
--}
- int rtw_init_io_priv(_adapter *padapter, void (*set_intf_ops)(_adapter *padapter,struct _io_ops *pops))
- {
- struct io_priv *piopriv = &padapter->iopriv;
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_ioctl_set.c linux/3rdparty/rtl8723bs/core/rtw_ioctl_set.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_ioctl_set.c 2015-05-10 14:36:05.668667902 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_ioctl_set.c 2015-05-07 17:46:55.000000000 +0300
-@@ -89,7 +89,7 @@ u8 rtw_do_join(_adapter * padapter)
-
- _func_enter_;
-
-- _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
- phead = get_list_head(queue);
- plist = get_next(phead);
-
-@@ -103,9 +103,9 @@ _func_enter_;
-
- pmlmepriv->to_join = true;
-
-- if(_rtw_queue_empty(queue)== true)
-+ if(list_empty(&queue->queue))
- {
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
- _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
-
- //when set_ssid/set_bssid for rtw_do_join(), but scanning queue is empty
-@@ -133,7 +133,7 @@ _func_enter_;
- else
- {
- int select_ret;
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
- if((select_ret=rtw_select_and_join_from_scanned_queue(pmlmepriv))==_SUCCESS)
- {
- pmlmepriv->to_join = false;
-@@ -224,7 +224,7 @@ _func_enter_;
- goto exit;
- }
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
-
-
- DBG_871X("Set BSSID under fw_state=0x%08x\n", get_fwstate(pmlmepriv));
-@@ -279,7 +279,7 @@ handle_tkip_countermeasure:
- }
-
- release_mlme_lock:
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
-
- exit:
- RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_,
-@@ -311,7 +311,7 @@ _func_enter_;
- goto exit;
- }
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
-
- DBG_871X("Set SSID under fw_state=0x%08x\n", get_fwstate(pmlmepriv));
- if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == true) {
-@@ -400,7 +400,7 @@ handle_tkip_countermeasure:
- }
-
- release_mlme_lock:
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
-
- exit:
- RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_,
-@@ -443,7 +443,7 @@ _func_enter_;
- goto exit;
- }
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
-
- DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" fw_state=0x%08x\n",
- FUNC_ADPT_ARG(padapter), get_fwstate(pmlmepriv));
-@@ -480,7 +480,7 @@ handle_tkip_countermeasure:
- }
-
- release_mlme_lock:
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
-
- exit:
-
-@@ -512,13 +512,11 @@ _func_enter_;
- {
- //change to other mode from Ndis802_11APMode
- cur_network->join_res = -1;
--
--#ifdef CONFIG_NATIVEAP_MLME
-+
- stop_ap_mode(padapter);
--#endif
- }
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
-
- if((check_fwstate(pmlmepriv, _FW_LINKED)== true) ||(*pold_state==Ndis802_11IBSS))
- rtw_disassoc_cmd(padapter, 0, true);
-@@ -551,11 +549,9 @@ _func_enter_;
-
- case Ndis802_11APMode:
- set_fwstate(pmlmepriv, WIFI_AP_STATE);
--#ifdef CONFIG_NATIVEAP_MLME
- start_ap_mode(padapter);
- //rtw_indicate_connect(padapter);
--#endif
--
-+
- break;
-
- case Ndis802_11AutoUnknown:
-@@ -568,7 +564,7 @@ _func_enter_;
- //RT_TRACE(COMP_OID_SET, DBG_LOUD, ("set_infrastructure: fw_state:%x after changing mode\n",
- // get_fwstate(pmlmepriv) ));
-
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
- }
-
- _func_exit_;
-@@ -584,7 +580,7 @@ u8 rtw_set_802_11_disassociate(_adapter
-
- _func_enter_;
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
-
- if (check_fwstate(pmlmepriv, _FW_LINKED) == true)
- {
-@@ -598,7 +594,7 @@ _func_enter_;
- DBG_871X("%s(): rtw_pwr_wakeup fail !!!\n",__FUNCTION__);
- }
-
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
-
- _func_exit_;
-
-@@ -644,11 +640,11 @@ _func_enter_;
- return _SUCCESS;
- }
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
-
- res = rtw_sitesurvey_cmd(padapter, pssid, ssid_max_num, NULL, 0);
-
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
- }
- exit:
-
-@@ -674,11 +670,6 @@ _func_enter_;
- if(psecuritypriv->ndisauthtype>3)
- psecuritypriv->dot11AuthAlgrthm=dot11AuthAlgrthm_8021X;
-
--#ifdef CONFIG_WAPI_SUPPORT
-- if(psecuritypriv->ndisauthtype == 6)
-- psecuritypriv->dot11AuthAlgrthm=dot11AuthAlgrthm_WAPI;
--#endif
--
- res=rtw_set_auth(padapter,psecuritypriv);
-
- if(res==_SUCCESS)
-@@ -755,467 +746,6 @@ _func_exit_;
-
- }
-
--u8 rtw_set_802_11_remove_wep(_adapter* padapter, u32 keyindex){
--
-- u8 ret=_SUCCESS;
--
--_func_enter_;
--
-- if (keyindex >= 0x80000000 || padapter == NULL){
--
-- ret=false;
-- goto exit;
--
-- }
-- else
-- {
-- int res;
-- struct security_priv* psecuritypriv=&(padapter->securitypriv);
-- if( keyindex < 4 ){
--
-- memset(&psecuritypriv->dot11DefKey[keyindex], 0, 16);
--
-- res=rtw_set_key(padapter,psecuritypriv,keyindex, 0, true);
--
-- psecuritypriv->dot11DefKeylen[keyindex]=0;
--
-- if(res==_FAIL)
-- ret=_FAIL;
--
-- }
-- else
-- {
-- ret=_FAIL;
-- }
--
-- }
--
--exit:
--
--_func_exit_;
--
-- return ret;
--
--}
--
--u8 rtw_set_802_11_add_key(_adapter* padapter, NDIS_802_11_KEY *key){
--
-- uint encryptionalgo;
-- u8 * pbssid;
-- struct sta_info *stainfo;
-- u8 bgroup = false;
-- u8 bgrouptkey = false;//can be remove later
-- u8 ret=_SUCCESS;
--
--_func_enter_;
--
-- if (((key->KeyIndex & 0x80000000) == 0) && ((key->KeyIndex & 0x40000000) > 0)){
--
-- // It is invalid to clear bit 31 and set bit 30. If the miniport driver encounters this combination,
-- // it must fail the request and return NDIS_STATUS_INVALID_DATA.
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("rtw_set_802_11_add_key: ((key->KeyIndex & 0x80000000) == 0)[=%d] ",(int)(key->KeyIndex & 0x80000000) == 0));
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("rtw_set_802_11_add_key:((key->KeyIndex & 0x40000000) > 0)[=%d]" , (int)(key->KeyIndex & 0x40000000) > 0));
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("rtw_set_802_11_add_key: key->KeyIndex=%d \n" ,(int)key->KeyIndex));
-- ret= _FAIL;
-- goto exit;
-- }
--
-- if(key->KeyIndex & 0x40000000)
-- {
-- // Pairwise key
--
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("OID_802_11_ADD_KEY: +++++ Pairwise key +++++\n"));
--
-- pbssid=get_bssid(&padapter->mlmepriv);
-- stainfo=rtw_get_stainfo(&padapter->stapriv, pbssid);
--
-- if((stainfo!=NULL)&&(padapter->securitypriv.dot11AuthAlgrthm==dot11AuthAlgrthm_8021X)){
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("OID_802_11_ADD_KEY:( stainfo!=NULL)&&(Adapter->securitypriv.dot11AuthAlgrthm==dot11AuthAlgrthm_8021X)\n"));
-- encryptionalgo=stainfo->dot118021XPrivacy;
-- }
-- else{
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("OID_802_11_ADD_KEY: stainfo==NULL)||(Adapter->securitypriv.dot11AuthAlgrthm!=dot11AuthAlgrthm_8021X)\n"));
-- encryptionalgo=padapter->securitypriv.dot11PrivacyAlgrthm;
-- }
--
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("rtw_set_802_11_add_key: (encryptionalgo ==%d)!\n",encryptionalgo ));
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("rtw_set_802_11_add_key: (Adapter->securitypriv.dot11PrivacyAlgrthm ==%d)!\n",padapter->securitypriv.dot11PrivacyAlgrthm));
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("rtw_set_802_11_add_key: (Adapter->securitypriv.dot11AuthAlgrthm ==%d)!\n",padapter->securitypriv.dot11AuthAlgrthm));
--
-- if((stainfo!=NULL)){
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("rtw_set_802_11_add_key: (stainfo->dot118021XPrivacy ==%d)!\n", stainfo->dot118021XPrivacy));
-- }
--
-- if(key->KeyIndex & 0x000000FF){
-- // The key index is specified in the lower 8 bits by values of zero to 255.
-- // The key index should be set to zero for a Pairwise key, and the driver should fail with
-- // NDIS_STATUS_INVALID_DATA if the lower 8 bits is not zero
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,(" key->KeyIndex & 0x000000FF.\n"));
-- ret= _FAIL;
-- goto exit;
-- }
--
-- // check BSSID
-- if (IS_MAC_ADDRESS_BROADCAST(key->BSSID) == true){
--
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("MacAddr_isBcst(key->BSSID)\n"));
-- ret= false;
-- goto exit;
-- }
--
-- // Check key length for TKIP.
-- //if(encryptionAlgorithm == RT_ENC_TKIP_ENCRYPTION && key->KeyLength != 32)
-- if((encryptionalgo== _TKIP_)&& (key->KeyLength != 32)){
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("TKIP KeyLength:0x%x != 32\n", key->KeyLength));
-- ret=_FAIL;
-- goto exit;
--
-- }
--
-- // Check key length for AES.
-- if((encryptionalgo== _AES_)&& (key->KeyLength != 16)) {
-- // For our supplicant, EAPPkt9x.vxd, cannot differentiate TKIP and AES case.
-- if(key->KeyLength == 32) {
-- key->KeyLength = 16;
-- } else {
-- ret= _FAIL;
-- goto exit;
-- }
-- }
--
-- // Check key length for WEP. For NDTEST, 2005.01.27, by rcnjko.
-- if( (encryptionalgo== _WEP40_|| encryptionalgo== _WEP104_) && (key->KeyLength != 5 || key->KeyLength != 13)) {
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("WEP KeyLength:0x%x != 5 or 13\n", key->KeyLength));
-- ret=_FAIL;
-- goto exit;
-- }
--
-- bgroup = false;
--
-- // Check the pairwise key. Added by Annie, 2005-07-06.
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("------------------------------------------\n"));
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("[Pairwise Key set]\n"));
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("------------------------------------------\n"));
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("key index: 0x%8x(0x%8x)\n", key->KeyIndex,(key->KeyIndex&0x3)));
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("key Length: %d\n", key->KeyLength));
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("------------------------------------------\n"));
--
-- }
-- else
-- {
-- // Group key - KeyIndex(BIT30==0)
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("OID_802_11_ADD_KEY: +++++ Group key +++++\n"));
--
--
-- // when add wep key through add key and didn't assigned encryption type before
-- if((padapter->securitypriv.ndisauthtype<=3)&&(padapter->securitypriv.dot118021XGrpPrivacy==0))
-- {
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("keylen=%d( Adapter->securitypriv.dot11PrivacyAlgrthm=%x )padapter->securitypriv.dot118021XGrpPrivacy(%x)\n", key->KeyLength,padapter->securitypriv.dot11PrivacyAlgrthm,padapter->securitypriv.dot118021XGrpPrivacy));
--
-- switch(key->KeyLength)
-- {
-- case 5:
-- padapter->securitypriv.dot11PrivacyAlgrthm=_WEP40_;
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("Adapter->securitypriv.dot11PrivacyAlgrthm= %x key->KeyLength=%u\n", padapter->securitypriv.dot11PrivacyAlgrthm,key->KeyLength));
-- break;
-- case 13:
-- padapter->securitypriv.dot11PrivacyAlgrthm=_WEP104_;
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("Adapter->securitypriv.dot11PrivacyAlgrthm= %x key->KeyLength=%u\n", padapter->securitypriv.dot11PrivacyAlgrthm,key->KeyLength));
-- break;
-- default:
-- padapter->securitypriv.dot11PrivacyAlgrthm=_NO_PRIVACY_;
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("Adapter->securitypriv.dot11PrivacyAlgrthm= %x key->KeyLength=%u \n", padapter->securitypriv.dot11PrivacyAlgrthm,key->KeyLength));
-- break;
-- }
--
-- encryptionalgo=padapter->securitypriv.dot11PrivacyAlgrthm;
--
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,(" Adapter->securitypriv.dot11PrivacyAlgrthm=%x\n", padapter->securitypriv.dot11PrivacyAlgrthm));
--
-- }
-- else
-- {
-- encryptionalgo=padapter->securitypriv.dot118021XGrpPrivacy;
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("( Adapter->securitypriv.dot11PrivacyAlgrthm=%x )encryptionalgo(%x)=padapter->securitypriv.dot118021XGrpPrivacy(%x)keylen=%d\n", padapter->securitypriv.dot11PrivacyAlgrthm,encryptionalgo,padapter->securitypriv.dot118021XGrpPrivacy,key->KeyLength));
--
-- }
--
-- if((check_fwstate(&padapter->mlmepriv, WIFI_ADHOC_STATE)==true) && (IS_MAC_ADDRESS_BROADCAST(key->BSSID) == false)) {
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,(" IBSS but BSSID is not Broadcast Address.\n"));
-- ret= _FAIL;
-- goto exit;
-- }
--
-- // Check key length for TKIP
-- if((encryptionalgo== _TKIP_) && (key->KeyLength != 32)) {
--
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,(" TKIP GTK KeyLength:%u != 32\n", key->KeyLength));
-- ret= _FAIL;
-- goto exit;
--
-- } else if(encryptionalgo== _AES_ && (key->KeyLength != 16 && key->KeyLength != 32) ) {
--
-- // Check key length for AES
-- // For NDTEST, we allow keylen=32 in this case. 2005.01.27, by rcnjko.
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("<=== SetInfo, OID_802_11_ADD_KEY: AES GTK KeyLength:%u != 16 or 32\n", key->KeyLength));
-- ret= _FAIL;
-- goto exit;
-- }
--
-- // Change the key length for EAPPkt9x.vxd. Added by Annie, 2005-11-03.
-- if((encryptionalgo== _AES_) && (key->KeyLength == 32) ) {
-- key->KeyLength = 16;
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("AES key length changed: %u\n", key->KeyLength) );
-- }
--
-- if(key->KeyIndex & 0x8000000) {//error ??? 0x8000_0000
-- bgrouptkey = true;
-- }
--
-- if((check_fwstate(&padapter->mlmepriv, WIFI_ADHOC_STATE)==true)&&(check_fwstate(&padapter->mlmepriv, _FW_LINKED)==true))
-- {
-- bgrouptkey = true;
-- }
--
-- bgroup = true;
--
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("------------------------------------------\n") );
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("[Group Key set]\n") );
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("------------------------------------------\n")) ;
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("key index: 0x%8x(0x%8x)\n", key->KeyIndex,(key->KeyIndex&0x3)));
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("key Length: %d\n", key->KeyLength)) ;
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("------------------------------------------\n"));
--
-- }
--
-- // If WEP encryption algorithm, just call rtw_set_802_11_add_wep().
-- if((padapter->securitypriv.dot11AuthAlgrthm !=dot11AuthAlgrthm_8021X)&&(encryptionalgo== _WEP40_ || encryptionalgo== _WEP104_))
-- {
-- u8 ret;
-- u32 keyindex;
-- u32 len = FIELD_OFFSET(NDIS_802_11_KEY, KeyMaterial) + key->KeyLength;
-- NDIS_802_11_WEP *wep = &padapter->securitypriv.ndiswep;
--
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("OID_802_11_ADD_KEY: +++++ WEP key +++++\n"));
--
-- wep->Length = len;
-- keyindex = key->KeyIndex&0x7fffffff;
-- wep->KeyIndex = keyindex ;
-- wep->KeyLength = key->KeyLength;
--
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("OID_802_11_ADD_KEY:Before memcpy \n"));
--
-- memcpy(wep->KeyMaterial, key->KeyMaterial, key->KeyLength);
-- memcpy(&(padapter->securitypriv.dot11DefKey[keyindex].skey[0]), key->KeyMaterial, key->KeyLength);
--
-- padapter->securitypriv.dot11DefKeylen[keyindex]=key->KeyLength;
-- padapter->securitypriv.dot11PrivacyKeyIndex=keyindex;
--
-- ret = rtw_set_802_11_add_wep(padapter, wep);
--
-- goto exit;
--
-- }
--
-- if(key->KeyIndex & 0x20000000){
-- // SetRSC
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("OID_802_11_ADD_KEY: +++++ SetRSC+++++\n"));
-- if(bgroup == true)
-- {
-- NDIS_802_11_KEY_RSC keysrc=key->KeyRSC & 0x00FFFFFFFFFFFFULL;
-- memcpy(&padapter->securitypriv.dot11Grprxpn, &keysrc, 8);
-- }
-- else
-- {
-- NDIS_802_11_KEY_RSC keysrc=key->KeyRSC & 0x00FFFFFFFFFFFFULL;
-- memcpy(&padapter->securitypriv.dot11Grptxpn, &keysrc, 8);
-- }
--
-- }
--
-- // Indicate this key idx is used for TX
-- // Save the key in KeyMaterial
-- if(bgroup == true) // Group transmit key
-- {
-- int res;
--
-- if(bgrouptkey == true)
-- {
-- padapter->securitypriv.dot118021XGrpKeyid=(u8)key->KeyIndex;
-- }
--
-- if((key->KeyIndex&0x3) == 0){
-- ret = _FAIL;
-- goto exit;
-- }
--
-- memset(&padapter->securitypriv.dot118021XGrpKey[(u8)((key->KeyIndex) & 0x03)], 0, 16);
-- memset(&padapter->securitypriv.dot118021XGrptxmickey[(u8)((key->KeyIndex) & 0x03)], 0, 16);
-- memset(&padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)], 0, 16);
--
-- if((key->KeyIndex & 0x10000000))
-- {
-- memcpy(&padapter->securitypriv.dot118021XGrptxmickey[(u8)((key->KeyIndex) & 0x03)], key->KeyMaterial + 16, 8);
-- memcpy(&padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)], key->KeyMaterial + 24, 8);
--
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("\n rtw_set_802_11_add_key:rx mic :0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x\n",
-- padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)].skey[0],padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex-1) & 0x03)].skey[1],
-- padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)].skey[2],padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex-1) & 0x03)].skey[3],
-- padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)].skey[4],padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex-1) & 0x03)].skey[5],
-- padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)].skey[6],padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex-1) & 0x03)].skey[7]));
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("\n rtw_set_802_11_add_key:set Group mic key!!!!!!!!\n"));
--
-- }
-- else
-- {
-- memcpy(&padapter->securitypriv.dot118021XGrptxmickey[(u8)((key->KeyIndex) & 0x03)], key->KeyMaterial + 24, 8);
-- memcpy(&padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)], key->KeyMaterial + 16, 8);
--
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("\n rtw_set_802_11_add_key:rx mic :0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x\n",
-- padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)].skey[0],padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex-1) & 0x03)].skey[1],
-- padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)].skey[2],padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex-1) & 0x03)].skey[3],
-- padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)].skey[4],padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex-1) & 0x03)].skey[5],
-- padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)].skey[6],padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex-1) & 0x03)].skey[7]));
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("\n rtw_set_802_11_add_key:set Group mic key!!!!!!!!\n"));
--
-- }
--
-- //set group key by index
-- memcpy(&padapter->securitypriv.dot118021XGrpKey[(u8)((key->KeyIndex) & 0x03)], key->KeyMaterial, key->KeyLength);
--
-- key->KeyIndex=key->KeyIndex & 0x03;
--
-- padapter->securitypriv.binstallGrpkey=true;
--
-- padapter->securitypriv.bcheck_grpkey=false;
--
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("reset group key"));
--
-- res=rtw_set_key(padapter,&padapter->securitypriv, key->KeyIndex, 1, true);
--
-- if(res==_FAIL)
-- ret= _FAIL;
--
-- goto exit;
--
-- }
-- else // Pairwise Key
-- {
-- u8 res;
--
-- pbssid=get_bssid(&padapter->mlmepriv);
-- stainfo=rtw_get_stainfo(&padapter->stapriv , pbssid );
--
-- if(stainfo!=NULL)
-- {
-- memset( &stainfo->dot118021x_UncstKey, 0, 16);// clear keybuffer
--
-- memcpy(&stainfo->dot118021x_UncstKey, key->KeyMaterial, 16);
--
-- if(encryptionalgo== _TKIP_)
-- {
-- padapter->securitypriv.busetkipkey=false;
--
-- //_set_timer(&padapter->securitypriv.tkip_timer, 50);
--
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("\n ==========_set_timer\n"));
--
-- // if TKIP, save the Receive/Transmit MIC key in KeyMaterial[128-255]
-- if((key->KeyIndex & 0x10000000)){
-- memcpy(&stainfo->dot11tkiptxmickey, key->KeyMaterial + 16, 8);
-- memcpy(&stainfo->dot11tkiprxmickey, key->KeyMaterial + 24, 8);
--
-- } else {
-- memcpy(&stainfo->dot11tkiptxmickey, key->KeyMaterial + 24, 8);
-- memcpy(&stainfo->dot11tkiprxmickey, key->KeyMaterial + 16, 8);
--
-- }
--
-- }
-- else if(encryptionalgo == _AES_)
-- {
--
-- }
--
--
-- //Set key to CAM through H2C command
-- if(bgrouptkey)//never go to here
-- {
-- res=rtw_setstakey_cmd(padapter, stainfo, false, true);
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("\n rtw_set_802_11_add_key:rtw_setstakey_cmd(group)\n"));
-- }
-- else{
-- res=rtw_setstakey_cmd(padapter, stainfo, true, true);
-- RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("\n rtw_set_802_11_add_key:rtw_setstakey_cmd(unicast)\n"));
-- }
--
-- if(res ==false)
-- ret= _FAIL;
--
-- }
--
-- }
--
--exit:
--
--_func_exit_;
--
-- return ret;
--}
--
--u8 rtw_set_802_11_remove_key(_adapter* padapter, NDIS_802_11_REMOVE_KEY *key){
--
-- uint encryptionalgo;
-- u8 * pbssid;
-- struct sta_info *stainfo;
-- u8 bgroup = (key->KeyIndex & 0x4000000) > 0 ? false: true;
-- u8 keyIndex = (u8)key->KeyIndex & 0x03;
-- u8 ret=_SUCCESS;
--
--_func_enter_;
--
-- if ((key->KeyIndex & 0xbffffffc) > 0) {
-- ret=_FAIL;
-- goto exit;
-- }
--
-- if (bgroup == true) {
-- encryptionalgo= padapter->securitypriv.dot118021XGrpPrivacy;
-- // clear group key by index
-- //NdisZeroMemory(Adapter->MgntInfo.SecurityInfo.KeyBuf[keyIndex], MAX_WEP_KEY_LEN);
-- //Adapter->MgntInfo.SecurityInfo.KeyLen[keyIndex] = 0;
--
-- memset(&padapter->securitypriv.dot118021XGrpKey[keyIndex], 0, 16);
--
-- //! \todo Send a H2C Command to Firmware for removing this Key in CAM Entry.
--
-- } else {
--
-- pbssid=get_bssid(&padapter->mlmepriv);
-- stainfo=rtw_get_stainfo(&padapter->stapriv , pbssid );
-- if(stainfo !=NULL){
-- encryptionalgo=stainfo->dot118021XPrivacy;
--
-- // clear key by BSSID
-- memset(&stainfo->dot118021x_UncstKey, 0, 16);
--
-- //! \todo Send a H2C Command to Firmware for disable this Key in CAM Entry.
--
-- }
-- else{
-- ret= _FAIL;
-- goto exit;
-- }
-- }
--
--exit:
--
--_func_exit_;
--
-- return true;
--
--}
--
- /*
- * rtw_get_cur_max_rate -
- * @adapter: pointer to _adapter structure
-@@ -1267,87 +797,3 @@ u16 rtw_get_cur_max_rate(_adapter *adapt
-
- return max_rate;
- }
--
--/*
--* rtw_set_scan_mode -
--* @adapter: pointer to _adapter structure
--* @scan_mode:
--*
--* Return _SUCCESS or _FAIL
--*/
--int rtw_set_scan_mode(_adapter *adapter, RT_SCAN_TYPE scan_mode)
--{
-- if(scan_mode != SCAN_ACTIVE && scan_mode != SCAN_PASSIVE)
-- return _FAIL;
--
-- adapter->mlmepriv.scan_mode = scan_mode;
--
-- return _SUCCESS;
--}
--
--/*
--* rtw_set_channel_plan -
--* @adapter: pointer to _adapter structure
--* @channel_plan:
--*
--* Return _SUCCESS or _FAIL
--*/
--int rtw_set_channel_plan(_adapter *adapter, u8 channel_plan)
--{
-- struct registry_priv *pregistrypriv = &adapter->registrypriv;
-- struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
--
-- //handle by cmd_thread to sync with scan operation
-- return rtw_set_chplan_cmd(adapter, channel_plan, 1, 1);
--}
--
--/*
--* rtw_set_country -
--* @adapter: pointer to _adapter structure
--* @country_code: string of country code
--*
--* Return _SUCCESS or _FAIL
--*/
--int rtw_set_country(_adapter *adapter, const char *country_code)
--{
-- int channel_plan = RT_CHANNEL_DOMAIN_WORLD_WIDE_5G;
--
-- DBG_871X("%s country_code:%s\n", __func__, country_code);
--
-- //TODO: should have a table to match country code and RT_CHANNEL_DOMAIN
-- //TODO: should consider 2-character and 3-character country code
-- if(0 == strcmp(country_code, "US"))
-- channel_plan = RT_CHANNEL_DOMAIN_FCC;
-- else if(0 == strcmp(country_code, "EU"))
-- channel_plan = RT_CHANNEL_DOMAIN_ETSI;
-- else if(0 == strcmp(country_code, "JP"))
-- channel_plan = RT_CHANNEL_DOMAIN_MKK;
-- else if(0 == strcmp(country_code, "CN"))
-- channel_plan = RT_CHANNEL_DOMAIN_CHINA;
-- else if(0 == strcmp(country_code, "IN"))
-- channel_plan = RT_CHANNEL_DOMAIN_GLOBAL_DOAMIN;
-- else
-- DBG_871X("%s unknown country_code:%s\n", __FUNCTION__, country_code);
--
-- return rtw_set_channel_plan(adapter, channel_plan);
--}
--
--/*
--* rtw_set_band -
--* @adapter: pointer to _adapter structure
--* @band: band to set
--*
--* Return _SUCCESS or _FAIL
--*/
--int rtw_set_band(_adapter *adapter, enum _BAND band)
--{
-- if (rtw_band_valid(band)) {
-- DBG_871X(FUNC_ADPT_FMT" band:%d\n", FUNC_ADPT_ARG(adapter), band);
-- adapter->setband = band;
-- return _SUCCESS;
-- }
--
-- DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" band:%d fail\n", FUNC_ADPT_ARG(adapter), band);
-- return _FAIL;
--}
--
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_mlme.c linux/3rdparty/rtl8723bs/core/rtw_mlme.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_mlme.c 2015-05-10 14:36:05.670667924 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_mlme.c 2015-05-07 17:46:55.000000000 +0300
-@@ -37,7 +37,7 @@ sint _rtw_init_mlme_priv (_adapter* pada
-
- _func_enter_;
-
-- // We don't need to memset padapter->XXX to zero, because adapter is allocated by rtw_zvmalloc().
-+ // We don't need to memset padapter->XXX to zero, because adapter is allocated by vzalloc().
- //memset((u8 *)pmlmepriv, 0, sizeof(struct mlme_priv));
-
- pmlmepriv->nic_hdl = (u8 *)padapter;
-@@ -56,7 +56,7 @@ _func_enter_;
-
- memset(&pmlmepriv->assoc_ssid,0,sizeof(NDIS_802_11_SSID));
-
-- pbuf = rtw_zvmalloc(MAX_BSS_CNT * (sizeof(struct wlan_network)));
-+ pbuf = vzalloc(MAX_BSS_CNT * (sizeof(struct wlan_network)));
-
- if (pbuf == NULL){
- res=_FAIL;
-@@ -68,9 +68,9 @@ _func_enter_;
-
- for(i = 0; i < MAX_BSS_CNT; i++)
- {
-- _rtw_init_listhead(&(pnetwork->list));
-+ INIT_LIST_HEAD(&(pnetwork->list));
-
-- rtw_list_insert_tail(&(pnetwork->list), &(pmlmepriv->free_bss_pool.queue));
-+ list_add_tail(&(pnetwork->list), &(pmlmepriv->free_bss_pool.queue));
-
- pnetwork++;
- }
-@@ -79,17 +79,14 @@ _func_enter_;
-
- rtw_clear_scan_deny(padapter);
-
--#ifdef CONFIG_LAYER2_ROAMING
- #define RTW_ROAM_SCAN_RESULT_EXP_MS 5*1000
- #define RTW_ROAM_RSSI_DIFF_TH 10
- #define RTW_ROAM_SCAN_INTERVAL_MS 10*1000
-
- pmlmepriv->roam_flags = 0
- | RTW_ROAM_ON_EXPIRED
-- #ifdef CONFIG_LAYER2_ROAMING_RESUME
- | RTW_ROAM_ON_RESUME
-- #endif
-- #ifdef CONFIG_LAYER2_ROAMING_ACTIVE
-+ #ifdef CONFIG_LAYER2_ROAMING_ACTIVE //FIXME
- | RTW_ROAM_ACTIVE
- #endif
- ;
-@@ -97,7 +94,6 @@ _func_enter_;
- pmlmepriv->roam_scanr_exp_ms = RTW_ROAM_SCAN_RESULT_EXP_MS;
- pmlmepriv->roam_rssi_diff_th = RTW_ROAM_RSSI_DIFF_TH;
- pmlmepriv->roam_scan_int_ms = RTW_ROAM_SCAN_INTERVAL_MS;
--#endif /* CONFIG_LAYER2_ROAMING */
-
- rtw_init_mlme_timer(padapter);
-
-@@ -112,7 +108,7 @@ static void rtw_free_mlme_ie_data(u8 **p
- {
- if(*ppie)
- {
-- rtw_mfree(*ppie, *plen);
-+ kfree(*ppie);
- *plen = 0;
- *ppie=NULL;
- }
-@@ -120,20 +116,18 @@ static void rtw_free_mlme_ie_data(u8 **p
-
- void rtw_free_mlme_priv_ie_data(struct mlme_priv *pmlmepriv)
- {
--#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
- rtw_buf_free(&pmlmepriv->assoc_req, &pmlmepriv->assoc_req_len);
- rtw_buf_free(&pmlmepriv->assoc_rsp, &pmlmepriv->assoc_rsp_len);
- rtw_free_mlme_ie_data(&pmlmepriv->wps_beacon_ie, &pmlmepriv->wps_beacon_ie_len);
- rtw_free_mlme_ie_data(&pmlmepriv->wps_probe_req_ie, &pmlmepriv->wps_probe_req_ie_len);
- rtw_free_mlme_ie_data(&pmlmepriv->wps_probe_resp_ie, &pmlmepriv->wps_probe_resp_ie_len);
- rtw_free_mlme_ie_data(&pmlmepriv->wps_assoc_resp_ie, &pmlmepriv->wps_assoc_resp_ie_len);
--
-+
- rtw_free_mlme_ie_data(&pmlmepriv->p2p_beacon_ie, &pmlmepriv->p2p_beacon_ie_len);
- rtw_free_mlme_ie_data(&pmlmepriv->p2p_probe_req_ie, &pmlmepriv->p2p_probe_req_ie_len);
- rtw_free_mlme_ie_data(&pmlmepriv->p2p_probe_resp_ie, &pmlmepriv->p2p_probe_resp_ie_len);
- rtw_free_mlme_ie_data(&pmlmepriv->p2p_go_probe_resp_ie, &pmlmepriv->p2p_go_probe_resp_ie_len);
- rtw_free_mlme_ie_data(&pmlmepriv->p2p_assoc_req_ie, &pmlmepriv->p2p_assoc_req_ie_len);
--#endif
- }
-
- void _rtw_free_mlme_priv (struct mlme_priv *pmlmepriv)
-@@ -144,34 +138,12 @@ _func_enter_;
-
- if(pmlmepriv){
- if (pmlmepriv->free_bss_buf) {
-- rtw_vmfree(pmlmepriv->free_bss_buf, MAX_BSS_CNT * sizeof(struct wlan_network));
-+ vfree(pmlmepriv->free_bss_buf);
- }
- }
- _func_exit_;
- }
-
--sint _rtw_enqueue_network(_queue *queue, struct wlan_network *pnetwork)
--{
-- _irqL irqL;
--
--_func_enter_;
--
-- if (pnetwork == NULL)
-- goto exit;
--
-- _enter_critical_bh(&queue->lock, &irqL);
--
-- rtw_list_insert_tail(&pnetwork->list, &queue->queue);
--
-- _exit_critical_bh(&queue->lock, &irqL);
--
--exit:
--
--_func_exit_;
--
-- return _SUCCESS;
--}
--
- /*
- struct wlan_network *_rtw_dequeue_network(_queue *queue)
- {
-@@ -181,9 +153,9 @@ struct wlan_network *_rtw_dequeue_networ
-
- _func_enter_;
-
-- _enter_critical_bh(&queue->lock, &irqL);
-+ spin_lock_bh(&queue->lock);
-
-- if (_rtw_queue_empty(queue) == true)
-+ if (list_empty(&queue->queue))
-
- pnetwork = NULL;
-
-@@ -191,10 +163,10 @@ _func_enter_;
- {
- pnetwork = LIST_CONTAINOR(get_next(&queue->queue), struct wlan_network, list);
-
-- rtw_list_delete(&(pnetwork->list));
-+ list_del_init(&(pnetwork->list));
- }
-
-- _exit_critical_bh(&queue->lock, &irqL);
-+ spin_unlock_bh(&queue->lock);
-
- _func_exit_;
-
-@@ -211,9 +183,9 @@ struct wlan_network *_rtw_alloc_network(
-
- _func_enter_;
-
-- _enter_critical_bh(&free_queue->lock, &irqL);
-+ spin_lock_bh(&free_queue->lock);
-
-- if (_rtw_queue_empty(free_queue) == true) {
-+ if (list_empty(&free_queue->queue)) {
- pnetwork=NULL;
- goto exit;
- }
-@@ -221,7 +193,7 @@ _func_enter_;
-
- pnetwork = LIST_CONTAINOR(plist , struct wlan_network, list);
-
-- rtw_list_delete(&pnetwork->list);
-+ list_del_init(&pnetwork->list);
-
- RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("_rtw_alloc_network: ptr=%p\n", plist));
- pnetwork->network_type = 0;
-@@ -233,7 +205,7 @@ _func_enter_;
- pmlmepriv->num_of_scanned ++;
-
- exit:
-- _exit_critical_bh(&free_queue->lock, &irqL);
-+ spin_unlock_bh(&free_queue->lock);
-
- _func_exit_;
-
-@@ -266,18 +238,18 @@ _func_enter_;
- goto exit;
- }
-
-- _enter_critical_bh(&free_queue->lock, &irqL);
-+ spin_lock_bh(&free_queue->lock);
-
-- rtw_list_delete(&(pnetwork->list));
-+ list_del_init(&(pnetwork->list));
-
-- rtw_list_insert_tail(&(pnetwork->list),&(free_queue->queue));
-+ list_add_tail(&(pnetwork->list),&(free_queue->queue));
-
- pmlmepriv->num_of_scanned --;
-
-
- //DBG_871X("_rtw_free_network:SSID=%s\n", pnetwork->network.Ssid.Ssid);
-
-- _exit_critical_bh(&free_queue->lock, &irqL);
-+ spin_unlock_bh(&free_queue->lock);
-
- exit:
-
-@@ -298,15 +270,15 @@ _func_enter_;
- if (pnetwork->fixed == true)
- goto exit;
-
-- //_enter_critical(&free_queue->lock, &irqL);
-+ //spin_lock_irqsave(&free_queue->lock, irqL);
-
-- rtw_list_delete(&(pnetwork->list));
-+ list_del_init(&(pnetwork->list));
-
-- rtw_list_insert_tail(&(pnetwork->list), get_list_head(free_queue));
-+ list_add_tail(&(pnetwork->list), get_list_head(free_queue));
-
- pmlmepriv->num_of_scanned --;
-
-- //_exit_critical(&free_queue->lock, &irqL);
-+ //spin_unlock_irqrestore(&free_queue->lock, irqL);
-
- exit:
-
-@@ -335,7 +307,7 @@ _func_enter_;
- goto exit;
- }
-
-- //_enter_critical_bh(&scanned_queue->lock, &irqL);
-+ //spin_lock_bh(&scanned_queue->lock);
-
- phead = get_list_head(scanned_queue);
- plist = get_next(phead);
-@@ -353,7 +325,7 @@ _func_enter_;
- if(plist == phead)
- pnetwork = NULL;
-
-- //_exit_critical_bh(&scanned_queue->lock, &irqL);
-+ //spin_unlock_bh(&scanned_queue->lock);
-
- exit:
-
-@@ -375,12 +347,12 @@ void _rtw_free_network_queue(_adapter *p
- _func_enter_;
-
-
-- _enter_critical_bh(&scanned_queue->lock, &irqL);
-+ spin_lock_bh(&scanned_queue->lock);
-
- phead = get_list_head(scanned_queue);
- plist = get_next(phead);
-
-- while (rtw_end_of_queue_search(phead, plist) == false)
-+ while (phead != plist)
- {
-
- pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list);
-@@ -391,7 +363,7 @@ _func_enter_;
-
- }
-
-- _exit_critical_bh(&scanned_queue->lock, &irqL);
-+ spin_unlock_bh(&scanned_queue->lock);
-
- _func_exit_;
-
-@@ -450,11 +422,6 @@ _func_exit_;
- return le16_to_cpu(val);
- }
-
--u8 *rtw_get_timestampe_from_ie(u8 *ie)
--{
-- return (ie + 0);
--}
--
- u8 *rtw_get_beacon_interval_from_ie(u8 *ie)
- {
- return (ie + 8);
-@@ -478,16 +445,6 @@ _func_enter_;
- _func_exit_;
- }
-
--int rtw_enqueue_network(_queue *queue, struct wlan_network *pnetwork);
--int rtw_enqueue_network(_queue *queue, struct wlan_network *pnetwork)
--{
-- int res;
--_func_enter_;
-- res = _rtw_enqueue_network(queue, pnetwork);
--_func_exit_;
-- return res;
--}
--
- /*
- static struct wlan_network *rtw_dequeue_network(_queue *queue)
- {
-@@ -509,15 +466,6 @@ _func_exit_;
- return pnetwork;
- }
-
--void rtw_free_network(struct mlme_priv *pmlmepriv, struct wlan_network *pnetwork, u8 is_freeall);
--void rtw_free_network(struct mlme_priv *pmlmepriv, struct wlan_network *pnetwork, u8 is_freeall)//(struct wlan_network *pnetwork, _queue *free_queue)
--{
--_func_enter_;
-- RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("rtw_free_network==> ssid = %s \n\n" , pnetwork->network.Ssid.Ssid));
-- _rtw_free_network(pmlmepriv, pnetwork, is_freeall);
--_func_exit_;
--}
--
- void rtw_free_network_nolock(_adapter * padapter, struct wlan_network *pnetwork );
- void rtw_free_network_nolock(_adapter * padapter, struct wlan_network *pnetwork )
- {
-@@ -632,22 +580,6 @@ struct wlan_network *_rtw_find_same_netw
- return found;
- }
-
--struct wlan_network *rtw_find_same_network(_queue *scanned_queue, struct wlan_network *network)
--{
-- _irqL irqL;
-- struct wlan_network *found = NULL;
--
-- if (scanned_queue == NULL || network == NULL)
-- goto exit;
--
-- _enter_critical_bh(&scanned_queue->lock, &irqL);
-- found = _rtw_find_same_network(scanned_queue, network);
-- _exit_critical_bh(&scanned_queue->lock, &irqL);
--
--exit:
-- return found;
--}
--
- struct wlan_network * rtw_get_oldest_wlan_network(_queue *scanned_queue)
- {
- _list *plist, *phead;
-@@ -663,7 +595,7 @@ _func_enter_;
- while(1)
- {
-
-- if (rtw_end_of_queue_search(phead,plist)== true)
-+ if (phead == plist)
- break;
-
- pwlan= LIST_CONTAINOR(plist, struct wlan_network, list);
-@@ -799,13 +731,13 @@ void rtw_update_scanned_network(_adapter
-
- _func_enter_;
-
-- _enter_critical_bh(&queue->lock, &irqL);
-+ spin_lock_bh(&queue->lock);
- phead = get_list_head(queue);
- plist = get_next(phead);
-
- while(1)
- {
-- if (rtw_end_of_queue_search(phead,plist)== true)
-+ if (phead == plist)
- break;
-
- pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list);
-@@ -832,9 +764,9 @@ _func_enter_;
-
- /* If we didn't find a match, then get a new network slot to initialize
- * with this beacon's information */
-- //if (rtw_end_of_queue_search(phead,plist)== true) {
-+ //if (phead == plist) {
- if (!target_find) {
-- if (_rtw_queue_empty(&(pmlmepriv->free_bss_pool)) == true) {
-+ if (list_empty(&pmlmepriv->free_bss_pool.queue)) {
- /* If there are no more slots, expire the oldest */
- //list_del_init(&oldest->list);
- pnetwork = oldest;
-@@ -875,7 +807,7 @@ _func_enter_;
- if (pnetwork->network.PhyInfo.SignalQuality == 101)
- pnetwork->network.PhyInfo.SignalQuality = 0;
-
-- rtw_list_insert_tail(&(pnetwork->list),&(queue->queue));
-+ list_add_tail(&(pnetwork->list),&(queue->queue));
-
- }
- }
-@@ -906,7 +838,7 @@ _func_enter_;
- }
-
- exit:
-- _exit_critical_bh(&queue->lock, &irqL);
-+ spin_unlock_bh(&queue->lock);
-
- _func_exit_;
- }
-@@ -918,13 +850,13 @@ void rtw_add_network(_adapter *adapter,
-
- _func_enter_;
-
-- //_enter_critical_bh(&queue->lock, &irqL);
-+ //spin_lock_bh(&queue->lock);
-
- update_current_network(adapter, pnetwork);
-
- rtw_update_scanned_network(adapter, pnetwork);
-
-- //_exit_critical_bh(&queue->lock, &irqL);
-+ //spin_unlock_bh(&queue->lock);
-
- _func_exit_;
- }
-@@ -1028,7 +960,7 @@ _func_enter_;
- }
-
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
-
- // update IBSS_network 's timestamp
- if ((check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) == true)
-@@ -1040,15 +972,15 @@ _func_enter_;
- _irqL irqL;
-
- memcpy(pmlmepriv->cur_network.network.IEs, pnetwork->IEs, 8);
-- _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
- ibss_wlan = rtw_find_network(&pmlmepriv->scanned_queue, pnetwork->MacAddress);
- if(ibss_wlan)
- {
- memcpy(ibss_wlan->network.IEs , pnetwork->IEs, 8);
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
- goto exit;
- }
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
- }
- }
-
-@@ -1064,7 +996,7 @@ _func_enter_;
-
- exit:
-
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
-
- _func_exit_;
-
-@@ -1081,12 +1013,12 @@ void rtw_surveydone_event_callback(_adap
-
- _func_enter_;
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
- if(pmlmepriv->wps_probe_req_ie)
- {
- u32 free_len = pmlmepriv->wps_probe_req_ie_len;
- pmlmepriv->wps_probe_req_ie_len = 0;
-- rtw_mfree(pmlmepriv->wps_probe_req_ie, free_len);
-+ kfree(pmlmepriv->wps_probe_req_ie);
- pmlmepriv->wps_probe_req_ie = NULL;
- }
-
-@@ -1105,13 +1037,13 @@ _func_enter_;
-
- RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("nic status =%x, survey done event comes too late!\n", get_fwstate(pmlmepriv)));
- }
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
-
- if(timer_cancelled)
- _cancel_timer(&pmlmepriv->scan_to_timer, &timer_cancelled);
-
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
-
- rtw_set_signal_stat_timer(&adapter->recvpriv);
-
-@@ -1213,7 +1145,7 @@ _func_enter_;
-
- //DBG_871X("scan complete in %dms\n",jiffies_to_msecs(jiffies - pmlmepriv->scan_start_time));
-
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
-
- rtw_os_xmit_schedule(adapter);
-
-@@ -1245,8 +1177,8 @@ static void free_scanqueue(struct mlme_p
- _func_enter_;
-
- RT_TRACE(_module_rtl871x_mlme_c_, _drv_notice_, ("+free_scanqueue\n"));
-- _enter_critical_bh(&scan_queue->lock, &irqL0);
-- _enter_critical_bh(&free_queue->lock, &irqL);
-+ spin_lock_bh(&scan_queue->lock);
-+ spin_lock_bh(&free_queue->lock);
-
- phead = get_list_head(scan_queue);
- plist = get_next(phead);
-@@ -1254,14 +1186,14 @@ _func_enter_;
- while (plist != phead)
- {
- ptemp = get_next(plist);
-- rtw_list_delete(plist);
-- rtw_list_insert_tail(plist, &free_queue->queue);
-+ list_del_init(plist);
-+ list_add_tail(plist, &free_queue->queue);
- plist =ptemp;
- pmlmepriv->num_of_scanned --;
- }
-
-- _exit_critical_bh(&free_queue->lock, &irqL);
-- _exit_critical_bh(&scan_queue->lock, &irqL0);
-+ spin_unlock_bh(&free_queue->lock);
-+ spin_unlock_bh(&scan_queue->lock);
-
- _func_exit_;
- }
-@@ -1299,10 +1231,10 @@ _func_enter_;
- struct sta_info* psta;
-
- psta = rtw_get_stainfo(&adapter->stapriv, tgt_network->network.MacAddress);
-- _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ spin_lock_bh(&(pstapriv->sta_hash_lock));
- rtw_free_stainfo(adapter, psta);
-
-- _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ spin_unlock_bh(&(pstapriv->sta_hash_lock));
-
- }
-
-@@ -1313,15 +1245,15 @@ _func_enter_;
- rtw_free_all_stainfo(adapter);
-
- psta = rtw_get_bcmc_stainfo(adapter);
-- _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ spin_lock_bh(&(pstapriv->sta_hash_lock));
- rtw_free_stainfo(adapter, psta);
-- _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ spin_unlock_bh(&(pstapriv->sta_hash_lock));
-
- rtw_init_bcmc_stainfo(adapter);
- }
-
- if(lock_scanned_queue)
-- _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
-
- pwlan = rtw_find_network(&pmlmepriv->scanned_queue, tgt_network->network.MacAddress);
- if(pwlan)
-@@ -1341,7 +1273,7 @@ _func_enter_;
- }
-
- if(lock_scanned_queue)
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
-
- adapter->securitypriv.key_mask = 0;
-
-@@ -1369,8 +1301,6 @@ _func_enter_;
-
- set_fwstate(pmlmepriv, _FW_LINKED);
-
-- rtw_led_control(padapter, LED_CTL_LINK);
--
- rtw_os_indicate_connect(padapter);
- }
-
-@@ -1411,19 +1341,6 @@ _func_enter_;
- if(rtw_to_roam(padapter) > 0)
- _clr_fwstate_(pmlmepriv, _FW_LINKED);
-
--#ifdef CONFIG_WAPI_SUPPORT
-- psta = rtw_get_stainfo(pstapriv,cur_network->MacAddress);
-- if (check_fwstate(pmlmepriv, WIFI_STATION_STATE))
-- {
-- rtw_wapi_return_one_sta_info(padapter, psta->hwaddr);
-- }
-- else if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) ||
-- check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE))
-- {
-- rtw_wapi_return_all_sta_info(padapter);
-- }
--#endif
--
- if(check_fwstate(&padapter->mlmepriv, _FW_LINKED)
- || (rtw_to_roam(padapter) <= 0)
- )
-@@ -1435,8 +1352,6 @@ _func_enter_;
-
- _clr_fwstate_(pmlmepriv, _FW_LINKED);
-
-- rtw_led_control(padapter, LED_CTL_NO_LINK);
--
- rtw_clear_scan_deny(padapter);
- }
-
-@@ -1539,9 +1454,7 @@ static struct sta_info *rtw_joinbss_upda
-
- memset((u8 *)&psta->dot11txpn, 0, sizeof (union pn48));
- psta->dot11txpn.val = psta->dot11txpn.val + 1;
--#ifdef CONFIG_IEEE80211W
- memset((u8 *)&psta->dot11wtxpn, 0, sizeof (union pn48));
--#endif //CONFIG_IEEE80211W
- memset((u8 *)&psta->dot11rxpn, 0, sizeof (union pn48));
- }
-
-@@ -1708,16 +1621,16 @@ _func_enter_;
- goto ignore_joinbss_callback;
- }
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
-
- pmlmepriv->LinkDetectInfo.TrafficTransitionCount = 0;
- pmlmepriv->LinkDetectInfo.LowPowerTransitionCount = 0;
-
-- RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("\n rtw_joinbss_event_callback !! _enter_critical \n"));
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("\n rtw_joinbss_event_callback !! spin_lock_irqsave \n"));
-
- if(pnetwork->join_res > 0)
- {
-- _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
- retry = 0;
- if (check_fwstate(pmlmepriv,_FW_UNDER_LINKING) )
- {
-@@ -1735,9 +1648,9 @@ _func_enter_;
-
- pcur_sta = rtw_get_stainfo(pstapriv, cur_network->network.MacAddress);
- if(pcur_sta){
-- _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);
-+ spin_lock_bh(&(pstapriv->sta_hash_lock));
- rtw_free_stainfo(adapter, pcur_sta);
-- _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);
-+ spin_unlock_bh(&(pstapriv->sta_hash_lock));
- }
-
- ptarget_wlan = rtw_find_network(&pmlmepriv->scanned_queue, pnetwork->network.MacAddress);
-@@ -1763,7 +1676,7 @@ _func_enter_;
- else
- {
- DBG_871X_LEVEL(_drv_always_, "Can't find ptarget_wlan when joinbss_event callback\n");
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
- goto ignore_joinbss_callback;
- }
-
-@@ -1775,7 +1688,7 @@ _func_enter_;
- if(ptarget_sta==NULL)
- {
- RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("Can't update stainfo when joinbss_event callback\n"));
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
- goto ignore_joinbss_callback;
- }
- }
-@@ -1802,11 +1715,11 @@ _func_enter_;
- else
- {
- RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("rtw_joinbss_event_callback err: fw_state:%x", get_fwstate(pmlmepriv)));
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
- goto ignore_joinbss_callback;
- }
-
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
-
- }
- else if(pnetwork->join_res == -4)
-@@ -1861,7 +1774,7 @@ _func_enter_;
-
- ignore_joinbss_callback:
-
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
- _func_exit_;
- }
-
-@@ -1903,7 +1816,6 @@ _func_enter_;
- if(rtw_access_ctrl(adapter, pstassoc->macaddr) == false)
- return;
-
--#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
- if(check_fwstate(pmlmepriv, WIFI_AP_STATE))
- {
- psta = rtw_get_stainfo(&adapter->stapriv, pstassoc->macaddr);
-@@ -1920,7 +1832,7 @@ _func_enter_;
-
- //report to upper layer
- DBG_871X("indicate_sta_assoc_event to upper layer - hostapd\n");
-- _enter_critical_bh(&psta->lock, &irqL);
-+ spin_lock_bh(&psta->lock);
- if(psta->passoc_req && psta->assoc_req_len>0)
- {
- passoc_req = rtw_zmalloc(psta->assoc_req_len);
-@@ -1929,24 +1841,23 @@ _func_enter_;
- assoc_req_len = psta->assoc_req_len;
- memcpy(passoc_req, psta->passoc_req, assoc_req_len);
-
-- rtw_mfree(psta->passoc_req , psta->assoc_req_len);
-+ kfree(psta->passoc_req);
- psta->passoc_req = NULL;
- psta->assoc_req_len = 0;
- }
- }
-- _exit_critical_bh(&psta->lock, &irqL);
-+ spin_unlock_bh(&psta->lock);
-
- if(passoc_req && assoc_req_len>0)
- {
- rtw_cfg80211_indicate_sta_assoc(adapter, passoc_req, assoc_req_len);
-
-- rtw_mfree(passoc_req, assoc_req_len);
-+ kfree(passoc_req);
- }
- #endif //!CONFIG_AUTO_AP_MODE
- }
- goto exit;
- }
--#endif //defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
-
- //for AD-HOC mode
- psta = rtw_get_stainfo(&adapter->stapriv, pstassoc->macaddr);
-@@ -1981,24 +1892,24 @@ _func_enter_;
-
- psta->ieee8021x_blocked = false;
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
-
- if ( (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)==true ) ||
- (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)==true ) )
- {
- if(adapter->stapriv.asoc_sta_count== 2)
- {
-- _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
- ptarget_wlan = rtw_find_network(&pmlmepriv->scanned_queue, cur_network->network.MacAddress);
- pmlmepriv->cur_network_scanned = ptarget_wlan;
- if(ptarget_wlan) ptarget_wlan->fixed = true;
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
- // a sta + bc/mc_stainfo (not Ibss_stainfo)
- rtw_indicate_connect(adapter);
- }
- }
-
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
-
-
- mlmeext_sta_add_event_callback(adapter, psta);
-@@ -2050,7 +1961,7 @@ _func_enter_;
-
- mlmeext_sta_del_event_callback(adapter);
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL2);
-+ spin_lock_bh(&pmlmepriv->lock);
-
- if(check_fwstate(pmlmepriv, WIFI_STATION_STATE) )
- {
-@@ -2058,7 +1969,6 @@ _func_enter_;
- bool roam = false;
- struct wlan_network *roam_target = NULL;
-
-- #ifdef CONFIG_LAYER2_ROAMING
- if(adapter->registrypriv.wifi_spec==1) {
- roam = false;
- } else if (reason == WLAN_REASON_EXPIRATION_CHK && rtw_chk_roam_flags(adapter, RTW_ROAM_ON_EXPIRED)) {
-@@ -2081,21 +1991,20 @@ _func_enter_;
- } else {
- rtw_set_to_roam(adapter, 0);
- }
-- #endif /* CONFIG_LAYER2_ROAMING */
-
- rtw_free_uc_swdec_pending_queue(adapter);
-
- rtw_free_assoc_resources(adapter, 1);
- rtw_indicate_disconnect(adapter);
-
-- _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
- // remove the network entry in scanned_queue
- pwlan = rtw_find_network(&pmlmepriv->scanned_queue, tgt_network->network.MacAddress);
- if (pwlan) {
- pwlan->fixed = false;
- rtw_free_network_nolock(adapter, pwlan);
- }
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
-
- #ifdef CONFIG_INTEL_WIDI
- if (!rtw_to_roam(adapter))
-@@ -2109,14 +2018,14 @@ _func_enter_;
- check_fwstate(pmlmepriv,WIFI_ADHOC_STATE))
- {
-
-- _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ spin_lock_bh(&(pstapriv->sta_hash_lock));
- rtw_free_stainfo(adapter, psta);
-- _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ spin_unlock_bh(&(pstapriv->sta_hash_lock));
-
- if(adapter->stapriv.asoc_sta_count== 1) //a sta + bc/mc_stainfo (not Ibss_stainfo)
- {
- //rtw_indicate_disconnect(adapter);//removed@20091105
-- _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
- //free old ibss network
- //pwlan = rtw_find_network(&pmlmepriv->scanned_queue, pstadel->macaddr);
- pwlan = rtw_find_network(&pmlmepriv->scanned_queue, tgt_network->network.MacAddress);
-@@ -2125,7 +2034,7 @@ _func_enter_;
- pwlan->fixed = false;
- rtw_free_network_nolock(adapter, pwlan);
- }
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
- //re-create ibss
- pdev_network = &(adapter->registrypriv.dev_network);
- pibss = adapter->registrypriv.dev_network.MacAddress;
-@@ -2157,7 +2066,7 @@ _func_enter_;
-
- }
-
-- _exit_critical_bh(&pmlmepriv->lock, &irqL2);
-+ spin_unlock_bh(&pmlmepriv->lock);
-
- _func_exit_;
-
-@@ -2208,9 +2117,8 @@ _func_enter_;
- return;
-
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
-
-- #ifdef CONFIG_LAYER2_ROAMING
- if (rtw_to_roam(adapter) > 0) { /* join timeout caused by roaming */
- while(1) {
- rtw_dec_to_roam(adapter);
-@@ -2238,7 +2146,6 @@ _func_enter_;
- }
-
- } else
-- #endif
- {
- rtw_indicate_disconnect(adapter);
- free_scanqueue(pmlmepriv);//???
-@@ -2248,7 +2155,7 @@ _func_enter_;
-
- }
-
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
-
- _func_exit_;
-
-@@ -2265,11 +2172,11 @@ void rtw_scan_timeout_handler (_adapter
-
- DBG_871X(FUNC_ADPT_FMT" fw_state=%x\n", FUNC_ADPT_ARG(adapter), get_fwstate(pmlmepriv));
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
-
- _clr_fwstate_(pmlmepriv, _FW_UNDER_SURVEY);
-
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
-
- rtw_indicate_scan_done(adapter, true);
- }
-@@ -2286,11 +2193,9 @@ void rtw_mlme_reset_auto_scan_int(_adapt
- }
- else if(adapter->registrypriv.wifi_spec && is_client_associated_to_ap(adapter) == true) {
- mlme->auto_scan_int_ms = 60*1000;
--#ifdef CONFIG_LAYER2_ROAMING
- } else if(rtw_chk_roam_flags(adapter, RTW_ROAM_ACTIVE)) {
- if (check_fwstate(mlme, WIFI_STATION_STATE) && check_fwstate(mlme, _FW_LINKED))
- mlme->auto_scan_int_ms = mlme->roam_scan_int_ms;
--#endif
- } else {
- mlme->auto_scan_int_ms = 0; /* disabled */
- }
-@@ -2410,7 +2315,6 @@ void rtw_set_scan_deny(_adapter *adapter
- _set_timer(&mlmepriv->set_scan_deny_timer, ms);
- }
-
--#ifdef CONFIG_LAYER2_ROAMING
- /*
- * Select a new roaming candidate from the original @param candidate and @param competitor
- * @return true: candidate is updated
-@@ -2478,13 +2382,13 @@ _func_enter_;
- goto exit;
- }
-
-- _enter_critical_bh(&(mlme->scanned_queue.lock), &irqL);
-+ spin_lock_bh(&(mlme->scanned_queue.lock));
- phead = get_list_head(queue);
- adapter = (_adapter *)mlme->nic_hdl;
-
- mlme->pscanned = get_next(phead);
-
-- while (!rtw_end_of_queue_search(phead, mlme->pscanned)) {
-+ while (phead != mlme->pscanned) {
-
- pnetwork = LIST_CONTAINOR(mlme->pscanned, struct wlan_network, list);
- if(pnetwork==NULL){
-@@ -2522,11 +2426,10 @@ _func_enter_;
-
- ret = _SUCCESS;
- exit:
-- _exit_critical_bh(&(mlme->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(mlme->scanned_queue.lock));
-
- return ret;
- }
--#endif /* CONFIG_LAYER2_ROAMING */
-
- /*
- * Select a new join candidate from the original @param candidate and @param competitor
-@@ -2557,15 +2460,13 @@ static int rtw_check_join_candidate(stru
- if(rtw_is_desired_network(adapter, competitor) == false)
- goto exit;
-
--#ifdef CONFIG_LAYER2_ROAMING
- if(rtw_to_roam(adapter) > 0) {
- if(jiffies_to_msecs(jiffies - competitor->last_scanned) >= mlme->roam_scanr_exp_ms
- || is_same_ess(&competitor->network, &mlme->cur_network.network) == false
- )
- goto exit;
- }
--#endif
--
-+
- if(*candidate == NULL ||(*candidate)->network.Rssinetwork.Rssi )
- {
- *candidate = competitor;
-@@ -2574,15 +2475,11 @@ static int rtw_check_join_candidate(stru
-
- if(updated){
- DBG_871X("[by_bssid:%u][assoc_ssid:%s]"
-- #ifdef CONFIG_LAYER2_ROAMING
- "[to_roam:%u] "
-- #endif
- "new candidate: %s("MAC_FMT", ch%u) rssi:%d\n",
- mlme->assoc_by_bssid,
- mlme->assoc_ssid.Ssid,
-- #ifdef CONFIG_LAYER2_ROAMING
- rtw_to_roam(adapter),
-- #endif
- (*candidate)->network.Ssid.Ssid,
- MAC_ARG((*candidate)->network.MacAddress),
- (*candidate)->network.Configuration.DSConfig,
-@@ -2619,20 +2516,18 @@ _func_enter_;
-
- adapter = (_adapter *)pmlmepriv->nic_hdl;
-
-- _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
-
-- #ifdef CONFIG_LAYER2_ROAMING
- if (pmlmepriv->roam_network) {
- candidate = pmlmepriv->roam_network;
- pmlmepriv->roam_network = NULL;
- goto candidate_exist;
- }
-- #endif
-
- phead = get_list_head(queue);
- pmlmepriv->pscanned = get_next(phead);
-
-- while (!rtw_end_of_queue_search(phead, pmlmepriv->pscanned)) {
-+ while (phead != pmlmepriv->pscanned) {
-
- pnetwork = LIST_CONTAINOR(pmlmepriv->pscanned, struct wlan_network, list);
- if(pnetwork==NULL){
-@@ -2683,7 +2578,7 @@ candidate_exist:
- ret = rtw_joinbss_cmd(adapter, candidate);
-
- exit:
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
-
- _func_exit_;
-
-@@ -2707,7 +2602,7 @@ _func_enter_;
-
- psetauthparm=(struct setauth_parm*)rtw_zmalloc(sizeof(struct setauth_parm));
- if(psetauthparm==NULL){
-- rtw_mfree((unsigned char *)pcmd, sizeof(struct cmd_obj));
-+ kfree((unsigned char *)pcmd);
- res= _FAIL;
- goto exit;
- }
-@@ -2722,7 +2617,7 @@ _func_enter_;
- pcmd->rspsz = 0;
-
-
-- _rtw_init_listhead(&pcmd->list);
-+ INIT_LIST_HEAD(&pcmd->list);
-
- RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("after enqueue set_auth_cmd, auth_mode=%x\n", psecuritypriv->dot11AuthAlgrthm));
-
-@@ -2794,7 +2689,7 @@ _func_enter_;
- default:
- RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("\n rtw_set_key:psecuritypriv->dot11PrivacyAlgrthm = %x (must be 1 or 2 or 4 or 5)\n",psecuritypriv->dot11PrivacyAlgrthm));
- res= _FAIL;
-- rtw_mfree((unsigned char *)psetkeyparm, sizeof(struct setkey_parm));
-+ kfree((unsigned char *)psetkeyparm);
- goto exit;
- }
-
-@@ -2802,7 +2697,7 @@ _func_enter_;
- if(enqueue){
- pcmd = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
- if(pcmd==NULL){
-- rtw_mfree((unsigned char *)psetkeyparm, sizeof(struct setkey_parm));
-+ kfree((unsigned char *)psetkeyparm);
- res= _FAIL; //try again
- goto exit;
- }
-@@ -2813,7 +2708,7 @@ _func_enter_;
- pcmd->rsp = NULL;
- pcmd->rspsz = 0;
-
-- _rtw_init_listhead(&pcmd->list);
-+ INIT_LIST_HEAD(&pcmd->list);
-
- //sema_init(&(pcmd->cmd_sem), 0);
-
-@@ -2821,7 +2716,7 @@ _func_enter_;
- }
- else{
- setkey_hdl(adapter, (u8 *)psetkeyparm);
-- rtw_mfree((u8 *) psetkeyparm, sizeof(struct setkey_parm));
-+ kfree((u8 *) psetkeyparm);
- }
- exit:
- _func_exit_;
-@@ -3301,9 +3196,7 @@ unsigned int rtw_restructure_ht_ie(_adap
- ht_capie.cap_info |= IEEE80211_HT_CAP_SM_PS;
-
- if (TEST_FLAG(phtpriv->stbc_cap, STBC_HT_ENABLE_RX)) {
-- if((pregistrypriv->rx_stbc == 0x3) || /* enable for 2.4/5 GHz */
-- ((channel <= 14) && (pregistrypriv->rx_stbc == 0x1)) || /* enable for 2.4GHz */
-- ((channel > 14) && (pregistrypriv->rx_stbc == 0x2)) || /* enable for 5GHz */
-+ if((channel <= 14 && pregistrypriv->rx_stbc == 0x1) || /* enable for 2.4GHz */
- (pregistrypriv->wifi_spec == 1)) {
- stbc_rx_enable = 1;
- DBG_871X("declare supporting RX STBC\n");
-@@ -3612,7 +3505,6 @@ void rtw_append_exented_cap(_adapter *pa
- pframe = rtw_set_ie(out_ie+*pout_len, EID_EXTCapability, 8, cap_content , pout_len);
- }
-
--#ifdef CONFIG_LAYER2_ROAMING
- inline void rtw_set_to_roam(_adapter *adapter, u8 to_roam)
- {
- if (to_roam == 0)
-@@ -3636,9 +3528,9 @@ void rtw_roaming(_adapter *padapter, str
- _irqL irqL;
- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
- _rtw_roaming(padapter, tgt_network);
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
- }
- void _rtw_roaming(_adapter *padapter, struct wlan_network *tgt_network)
- {
-@@ -3654,10 +3546,6 @@ void _rtw_roaming(_adapter *padapter, st
-
- pmlmepriv->assoc_by_bssid = false;
-
--#ifdef CONFIG_WAPI_SUPPORT
-- rtw_wapi_return_all_sta_info(padapter);
--#endif
--
- while(1) {
- if( _SUCCESS==(do_join_r=rtw_do_join(padapter)) ) {
- break;
-@@ -3677,7 +3565,6 @@ void _rtw_roaming(_adapter *padapter, st
- }
-
- }
--#endif /* CONFIG_LAYER2_ROAMING */
-
- sint rtw_linked_check(_adapter *padapter)
- {
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_mlme_ext.c linux/3rdparty/rtl8723bs/core/rtw_mlme_ext.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_mlme_ext.c 2015-05-10 14:36:05.673667957 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_mlme_ext.c 2015-05-07 17:46:55.000000000 +0300
-@@ -45,7 +45,6 @@ static struct mlme_handler mlme_sta_tbl[
- {WIFI_ACTION_NOACK,"OnActionNoAck", &OnAction},
- };
-
--#ifdef _CONFIG_NATIVEAP_MLME_
- struct mlme_handler mlme_ap_tbl[]={
- {WIFI_ASSOCREQ, "OnAssocReq", &OnAssocReq},
- {WIFI_ASSOCRSP, "OnAssocRsp", &OnAssocRsp},
-@@ -67,7 +66,6 @@ struct mlme_handler mlme_ap_tbl[]={
- {WIFI_ACTION, "OnAction", &OnAction},
- {WIFI_ACTION_NOACK,"OnActionNoAck", &OnAction},
- };
--#endif
-
- static struct action_handler OnAction_tbl[]={
- {RTW_WLAN_CATEGORY_SPECTRUM_MGMT, "ACTION_SPECTRUM_MGMT", on_action_spct},
-@@ -78,12 +76,7 @@ static struct action_handler OnAction_tb
- {RTW_WLAN_CATEGORY_RADIO_MEASUREMENT, "ACTION_RADIO_MEASUREMENT", &DoReserved},
- {RTW_WLAN_CATEGORY_FT, "ACTION_FT", &DoReserved},
- {RTW_WLAN_CATEGORY_HT, "ACTION_HT", &OnAction_ht},
--#ifdef CONFIG_IEEE80211W
- {RTW_WLAN_CATEGORY_SA_QUERY, "ACTION_SA_QUERY", &OnAction_sa_query},
--#else
-- {RTW_WLAN_CATEGORY_SA_QUERY, "ACTION_SA_QUERY", &DoReserved},
--#endif //CONFIG_IEEE80211W
-- //add for CONFIG_IEEE80211W
- {RTW_WLAN_CATEGORY_UNPROTECTED_WNM, "ACTION_UNPROTECTED_WNM", &DoReserved},
- {RTW_WLAN_CATEGORY_SELF_PROTECTED, "ACTION_SELF_PROTECTED", &DoReserved},
- {RTW_WLAN_CATEGORY_WMM, "ACTION_WMM", &DoReserved},
-@@ -354,11 +347,9 @@ static void init_mlme_ext_priv_value(_ad
-
- atomic_set(&pmlmeext->event_seq, 0);
- pmlmeext->mgnt_seq = 0;//reset to zero when disconnect at client mode
--#ifdef CONFIG_IEEE80211W
- pmlmeext->sa_query_seq = 0;
- pmlmeext->mgnt_80211w_IPN=0;
- pmlmeext->mgnt_80211w_IPN_rx=0;
--#endif //CONFIG_IEEE80211W
- pmlmeext->cur_channel = padapter->registrypriv.channel;
- pmlmeext->cur_bwmode = CHANNEL_WIDTH_20;
- pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
-@@ -491,15 +482,6 @@ static u8 init_channel_set(_adapter* pad
- Index2G = RTW_ChannelPlanMap[ChannelPlan].Index2G;
- }
-
-- if(IsSupported5G(padapter->registrypriv.wireless_mode))
-- {
-- b5GBand = true;
-- if(RT_CHANNEL_DOMAIN_REALTEK_DEFINE == ChannelPlan)
-- Index5G = RTW_CHANNEL_PLAN_MAP_REALTEK_DEFINE.Index5G;
-- else
-- Index5G = RTW_ChannelPlanMap[ChannelPlan].Index5G;
-- }
--
- if(b2_4GBand)
- {
- for(index=0;indexmlmepriv);
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-
-- // We don't need to memset padapter->XXX to zero, because adapter is allocated by rtw_zvmalloc().
-+ // We don't need to memset padapter->XXX to zero, because adapter is allocated by vzalloc().
- //memset((u8 *)pmlmeext, 0, sizeof(struct mlme_ext_priv));
-
- pmlmeext->padapter = padapter;
-@@ -573,9 +555,7 @@ int init_mlme_ext_priv(_adapter* padapte
-
- init_mlme_ext_timer(padapter);
-
--#ifdef CONFIG_AP_MODE
- init_mlme_ap_info(padapter);
--#endif
-
- pmlmeext->max_chan_nums = init_channel_set(padapter, pmlmepriv->ChannelPlan,pmlmeext->channel_set);
- init_channel_list(padapter, pmlmeext->channel_set, pmlmeext->max_chan_nums, &pmlmeext->channel_list);
-@@ -630,9 +610,7 @@ void mgt_dispatcher(_adapter *padapter,
- {
- int index;
- struct mlme_handler *ptable;
--#ifdef CONFIG_AP_MODE
- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
--#endif //CONFIG_AP_MODE
- u8 bc_addr[ETH_ALEN] = {0xff,0xff,0xff,0xff,0xff,0xff};
- u8 *pframe = precv_frame->u.hdr.rx_data;
- struct sta_info *psta = rtw_get_stainfo(&padapter->stapriv, GetAddr2Ptr(pframe));
-@@ -682,7 +660,6 @@ void mgt_dispatcher(_adapter *padapter,
- psta->RxMgmtFrameSeqNum = precv_frame->u.hdr.attrib.seq_num;
- }
-
--#ifdef CONFIG_AP_MODE
- switch (GetFrameSubType(pframe))
- {
- case WIFI_AUTH:
-@@ -707,16 +684,8 @@ void mgt_dispatcher(_adapter *padapter,
- break;
- default:
- _mgt_dispatcher(padapter, ptable, precv_frame);
-- if(check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
-- rtw_hostapd_mlme_rx(padapter, precv_frame);
- break;
- }
--#else
--
-- _mgt_dispatcher(padapter, ptable, precv_frame);
--
--#endif
--
- }
-
- /****************************************************************************
-@@ -795,14 +764,14 @@ unsigned int OnProbeReq(_adapter *padapt
- return _SUCCESS;
- }
-
-- _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-- if (rtw_is_list_empty(&psta->asoc_list))
-+ spin_lock_bh(&pstapriv->asoc_list_lock);
-+ if (list_empty(&psta->asoc_list))
- {
- psta->expire_to = pstapriv->expire_to;
-- rtw_list_insert_tail(&psta->asoc_list, &pstapriv->asoc_list);
-+ list_add_tail(&psta->asoc_list, &pstapriv->asoc_list);
- pstapriv->asoc_list_cnt++;
- }
-- _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->asoc_list_lock);
-
- //generate pairing ID
- mac_addr = myid(&(padapter->eeprompriv));
-@@ -847,9 +816,9 @@ unsigned int OnProbeReq(_adapter *padapt
-
- memset((void*)&psta->sta_stats, 0, sizeof(struct stainfo_stats));
-
-- _enter_critical_bh(&psta->lock, &irqL);
-+ spin_lock_bh(&psta->lock);
- psta->state |= _FW_LINKED;
-- _exit_critical_bh(&psta->lock, &irqL);
-+ spin_unlock_bh(&psta->lock);
-
- report_add_sta_event(padapter, psta->hwaddr, psta->aid);
-
-@@ -961,7 +930,7 @@ unsigned int OnBeacon(_adapter *padapter
- update_network(&(pmlmepriv->cur_network.network), pbss, padapter, true);
- rtw_get_bcn_info(&(pmlmepriv->cur_network));
- }
-- rtw_mfree((u8*)pbss, sizeof(WLAN_BSSID_EX));
-+ kfree((u8*)pbss);
- }
-
- //check the vendor of the assoc AP
-@@ -1049,7 +1018,6 @@ _END_ONBEACON_:
-
- unsigned int OnAuth(_adapter *padapter, union recv_frame *precv_frame)
- {
--#ifdef CONFIG_AP_MODE
- _irqL irqL;
- unsigned int auth_mode, seq, ie_len;
- unsigned char *sa, *p;
-@@ -1143,31 +1111,31 @@ unsigned int OnAuth(_adapter *padapter,
- else
- {
-
-- _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-- if(rtw_is_list_empty(&pstat->asoc_list)==false)
-+ spin_lock_bh(&pstapriv->asoc_list_lock);
-+ if(list_empty(&pstat->asoc_list)==false)
- {
-- rtw_list_delete(&pstat->asoc_list);
-+ list_del_init(&pstat->asoc_list);
- pstapriv->asoc_list_cnt--;
- if (pstat->expire_to > 0)
- {
- //TODO: STA re_auth within expire_to
- }
- }
-- _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->asoc_list_lock);
-
- if (seq==1) {
- //TODO: STA re_auth and auth timeout
- }
- }
-
-- _enter_critical_bh(&pstapriv->auth_list_lock, &irqL);
-- if (rtw_is_list_empty(&pstat->auth_list))
-+ spin_lock_bh(&pstapriv->auth_list_lock);
-+ if (list_empty(&pstat->auth_list))
- {
-
-- rtw_list_insert_tail(&pstat->auth_list, &pstapriv->auth_list);
-+ list_add_tail(&pstat->auth_list, &pstapriv->auth_list);
- pstapriv->auth_list_cnt++;
- }
-- _exit_critical_bh(&pstapriv->auth_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->auth_list_lock);
-
- if (pstat->auth_seq == 0)
- pstat->expire_to = pstapriv->auth_to;
-@@ -1253,10 +1221,8 @@ unsigned int OnAuth(_adapter *padapter,
-
- // Now, we are going to issue_auth...
- pstat->auth_seq = seq + 1;
--
--#ifdef CONFIG_NATIVEAP_MLME
-+
- issue_auth(padapter, pstat, (unsigned short)(_STATS_SUCCESSFUL_));
--#endif
-
- if (pstat->state & WIFI_FW_AUTH_SUCCESS)
- pstat->auth_seq = 0;
-@@ -1273,12 +1239,9 @@ auth_fail:
- memset((char *)pstat, '\0', sizeof(stat));
- pstat->auth_seq = 2;
- memcpy(pstat->hwaddr, sa, 6);
--
--#ifdef CONFIG_NATIVEAP_MLME
-+
- issue_auth(padapter, pstat, (unsigned short)status);
--#endif
-
--#endif
- return _FAIL;
-
- }
-@@ -1386,7 +1349,6 @@ authclnt_fail:
-
- unsigned int OnAssocReq(_adapter *padapter, union recv_frame *precv_frame)
- {
--#ifdef CONFIG_AP_MODE
- _irqL irqL;
- u16 capab_info, listen_interval;
- struct rtw_ieee802_11_elems elems;
-@@ -1838,27 +1800,26 @@ unsigned int OnAssocReq(_adapter *padapt
- pstat->state &= (~WIFI_FW_ASSOC_STATE);
- pstat->state |= WIFI_FW_ASSOC_SUCCESS;
-
-- _enter_critical_bh(&pstapriv->auth_list_lock, &irqL);
-- if (!rtw_is_list_empty(&pstat->auth_list))
-+ spin_lock_bh(&pstapriv->auth_list_lock);
-+ if (!list_empty(&pstat->auth_list))
- {
-- rtw_list_delete(&pstat->auth_list);
-+ list_del_init(&pstat->auth_list);
- pstapriv->auth_list_cnt--;
- }
-- _exit_critical_bh(&pstapriv->auth_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->auth_list_lock);
-
-- _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-- if (rtw_is_list_empty(&pstat->asoc_list))
-+ spin_lock_bh(&pstapriv->asoc_list_lock);
-+ if (list_empty(&pstat->asoc_list))
- {
- pstat->expire_to = pstapriv->expire_to;
-- rtw_list_insert_tail(&pstat->asoc_list, &pstapriv->asoc_list);
-+ list_add_tail(&pstat->asoc_list, &pstapriv->asoc_list);
- pstapriv->asoc_list_cnt++;
- }
-- _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->asoc_list_lock);
-
- // now the station is qualified to join our BSS...
- if(pstat && (pstat->state & WIFI_FW_ASSOC_SUCCESS) && (_STATS_SUCCESSFUL_==status))
- {
--#ifdef CONFIG_NATIVEAP_MLME
- //.1 bss_cap_update & sta_info_update
- bss_cap_update_on_sta_join(padapter, pstat);
- sta_info_update(padapter, pstat);
-@@ -1869,10 +1830,10 @@ unsigned int OnAssocReq(_adapter *padapt
- else
- issue_asocrsp(padapter, status, pstat, WIFI_REASSOCRSP);
-
-- _enter_critical_bh(&pstat->lock, &irqL);
-+ spin_lock_bh(&pstat->lock);
- if(pstat->passoc_req)
- {
-- rtw_mfree(pstat->passoc_req, pstat->assoc_req_len);
-+ kfree(pstat->passoc_req);
- pstat->passoc_req = NULL;
- pstat->assoc_req_len = 0;
- }
-@@ -1883,40 +1844,29 @@ unsigned int OnAssocReq(_adapter *padapt
- memcpy(pstat->passoc_req, pframe, pkt_len);
- pstat->assoc_req_len = pkt_len;
- }
-- _exit_critical_bh(&pstat->lock, &irqL);
-+ spin_unlock_bh(&pstat->lock);
-
- //.3-(1) report sta add event
- report_add_sta_event(padapter, pstat->hwaddr, pstat->aid);
--
--#endif //CONFIG_NATIVEAP_MLME
- }
-
- return _SUCCESS;
-
- asoc_class2_error:
-
--#ifdef CONFIG_NATIVEAP_MLME
- issue_deauth(padapter, (void *)GetAddr2Ptr(pframe), status);
--#endif
-
- return _FAIL;
-
- OnAssocReqFail:
-
--
--#ifdef CONFIG_NATIVEAP_MLME
- pstat->aid = 0;
- if (frame_type == WIFI_ASSOCREQ)
- issue_asocrsp(padapter, status, pstat, WIFI_ASSOCRSP);
- else
- issue_asocrsp(padapter, status, pstat, WIFI_REASSOCRSP);
--#endif
--
--
--#endif /* CONFIG_AP_MODE */
--
-- return _FAIL;
-
-+ return _FAIL;
- }
-
- unsigned int OnAssocRsp(_adapter *padapter, union recv_frame *precv_frame)
-@@ -1981,12 +1931,6 @@ unsigned int OnAssocRsp(_adapter *padapt
- }
- break;
-
--#ifdef CONFIG_WAPI_SUPPORT
-- case _WAPI_IE_:
-- pWapiIE = pIE;
-- break;
--#endif
--
- case _HT_CAPABILITY_IE_: //HT caps
- HT_caps_handler(padapter, pIE);
- break;
-@@ -2005,10 +1949,6 @@ unsigned int OnAssocRsp(_adapter *padapt
- i += (pIE->Length + 2);
- }
-
--#ifdef CONFIG_WAPI_SUPPORT
-- rtw_wapi_on_assoc_ok(padapter, pIE);
--#endif
--
- pmlmeinfo->state &= (~WIFI_FW_ASSOC_STATE);
- pmlmeinfo->state |= WIFI_FW_ASSOC_SUCCESS;
-
-@@ -2043,18 +1983,15 @@ unsigned int OnDeAuth(_adapter *padapter
-
- DBG_871X("%s Reason code(%d)\n", __FUNCTION__,reason);
-
-- rtw_lock_rx_suspend_timeout(8000);
--
--#ifdef CONFIG_AP_MODE
- if(check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
- {
- _irqL irqL;
- struct sta_info *psta;
- struct sta_priv *pstapriv = &padapter->stapriv;
-
-- //_enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ //spin_lock_bh(&(pstapriv->sta_hash_lock));
- //rtw_free_stainfo(padapter, psta);
-- //_exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ //spin_unlock_bh(&(pstapriv->sta_hash_lock));
-
- DBG_871X_LEVEL(_drv_always_, "ap recv deauth reason code(%d) sta:%pM\n",
- reason, GetAddr2Ptr(pframe));
-@@ -2064,15 +2001,15 @@ unsigned int OnDeAuth(_adapter *padapter
- {
- u8 updated = false;
-
-- _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-- if(rtw_is_list_empty(&psta->asoc_list)==false)
-+ spin_lock_bh(&pstapriv->asoc_list_lock);
-+ if(list_empty(&psta->asoc_list)==false)
- {
-- rtw_list_delete(&psta->asoc_list);
-+ list_del_init(&psta->asoc_list);
- pstapriv->asoc_list_cnt--;
- updated = ap_free_sta(padapter, psta, false, reason);
-
- }
-- _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->asoc_list_lock);
-
- associated_clients_update(padapter, updated);
- }
-@@ -2081,7 +2018,6 @@ unsigned int OnDeAuth(_adapter *padapter
- return _SUCCESS;
- }
- else
--#endif
- {
- int ignore_received_deauth = 0;
-
-@@ -2131,18 +2067,15 @@ unsigned int OnDisassoc(_adapter *padapt
-
- DBG_871X("%s Reason code(%d)\n", __FUNCTION__,reason);
-
-- rtw_lock_rx_suspend_timeout(8000);
--
--#ifdef CONFIG_AP_MODE
- if(check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
- {
- _irqL irqL;
- struct sta_info *psta;
- struct sta_priv *pstapriv = &padapter->stapriv;
-
-- //_enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ //spin_lock_bh(&(pstapriv->sta_hash_lock));
- //rtw_free_stainfo(padapter, psta);
-- //_exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ //spin_unlock_bh(&(pstapriv->sta_hash_lock));
-
- DBG_871X_LEVEL(_drv_always_, "ap recv disassoc reason code(%d) sta:%pM\n",
- reason, GetAddr2Ptr(pframe));
-@@ -2152,15 +2085,15 @@ unsigned int OnDisassoc(_adapter *padapt
- {
- u8 updated = false;
-
-- _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-- if(rtw_is_list_empty(&psta->asoc_list)==false)
-+ spin_lock_bh(&pstapriv->asoc_list_lock);
-+ if(list_empty(&psta->asoc_list)==false)
- {
-- rtw_list_delete(&psta->asoc_list);
-+ list_del_init(&psta->asoc_list);
- pstapriv->asoc_list_cnt--;
- updated = ap_free_sta(padapter, psta, false, reason);
-
- }
-- _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->asoc_list_lock);
-
- associated_clients_update(padapter, updated);
- }
-@@ -2168,7 +2101,6 @@ unsigned int OnDisassoc(_adapter *padapt
- return _SUCCESS;
- }
- else
--#endif
- {
- DBG_871X_LEVEL(_drv_always_, "sta recv disassoc reason code(%d) sta:%pM\n",
- reason, GetAddr3Ptr(pframe));
-@@ -2500,7 +2432,6 @@ exit:
- return _SUCCESS;
- }
-
--#ifdef CONFIG_IEEE80211W
- unsigned int OnAction_sa_query(_adapter *padapter, union recv_frame *precv_frame)
- {
- u8 *pframe = precv_frame->u.hdr.rx_data;
-@@ -2537,7 +2468,6 @@ unsigned int OnAction_sa_query(_adapter
-
- return _SUCCESS;
- }
--#endif //CONFIG_IEEE80211W
-
- unsigned int OnAction(_adapter *padapter, union recv_frame *precv_frame)
- {
-@@ -2608,12 +2538,6 @@ inline struct xmit_frame *alloc_mgtxmitf
- return _alloc_mgtxmitframe(pxmitpriv, false);
- }
-
--inline struct xmit_frame *alloc_mgtxmitframe_once(struct xmit_priv *pxmitpriv)
--{
-- return _alloc_mgtxmitframe(pxmitpriv, true);
--}
--
--
- /****************************************************************************
-
- Following are some TX fuctions for WiFi MLME
-@@ -2715,9 +2639,9 @@ s32 dump_mgntframe_and_wait(_adapter *pa
- if (ret == _SUCCESS)
- ret = rtw_sctx_wait(&sctx, __func__);
-
-- _enter_critical(&pxmitpriv->lock_sctx, &irqL);
-+ spin_lock_irqsave(&pxmitpriv->lock_sctx, irqL);
- pxmitbuf->sctx = NULL;
-- _exit_critical(&pxmitpriv->lock_sctx, &irqL);
-+ spin_unlock_irqrestore(&pxmitpriv->lock_sctx, irqL);
-
- return ret;
- }
-@@ -2737,16 +2661,17 @@ s32 dump_mgntframe_and_wait_ack(_adapter
- return -1;
- }
-
-- _enter_critical_mutex(&pxmitpriv->ack_tx_mutex, NULL);
-- pxmitpriv->ack_tx = true;
-- pxmitpriv->seq_no = seq_no++;
-- pmgntframe->ack_report = 1;
-- if (rtw_hal_mgnt_xmit(padapter, pmgntframe) == _SUCCESS) {
-- ret = rtw_ack_tx_wait(pxmitpriv, timeout_ms);
-- }
-+ if (mutex_lock_interruptible(&pxmitpriv->ack_tx_mutex) == 0) {
-+ pxmitpriv->ack_tx = true;
-+ pxmitpriv->seq_no = seq_no++;
-+ pmgntframe->ack_report = 1;
-+ if (rtw_hal_mgnt_xmit(padapter, pmgntframe) == _SUCCESS) {
-+ ret = rtw_ack_tx_wait(pxmitpriv, timeout_ms);
-+ }
-
-- pxmitpriv->ack_tx = false;
-- _exit_critical_mutex(&pxmitpriv->ack_tx_mutex, NULL);
-+ pxmitpriv->ack_tx = false;
-+ mutex_unlock(&pxmitpriv->ack_tx_mutex);
-+ }
-
- return ret;
- }
-@@ -2798,10 +2723,8 @@ void issue_beacon(_adapter *padapter, in
- unsigned short *fctrl;
- unsigned int rate_len;
- struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
--#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
- _irqL irqL;
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
--#endif //#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
- WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network);
-@@ -2814,9 +2737,8 @@ void issue_beacon(_adapter *padapter, in
- DBG_871X("%s, alloc mgnt frame fail\n", __FUNCTION__);
- return;
- }
--#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
-- _enter_critical_bh(&pmlmepriv->bcn_update_lock, &irqL);
--#endif //#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
-+
-+ spin_lock_bh(&pmlmepriv->bcn_update_lock);
-
- //update attribute
- pattrib = &pmgntframe->attrib;
-@@ -2932,11 +2854,9 @@ void issue_beacon(_adapter *padapter, in
-
- _issue_bcn:
-
--#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
- pmlmepriv->update_bcn = false;
--
-- _exit_critical_bh(&pmlmepriv->bcn_update_lock, &irqL);
--#endif //#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
-+
-+ spin_unlock_bh(&pmlmepriv->bcn_update_lock);
-
- if ((pattrib->pktlen + TXDESC_SIZE) > 512)
- {
-@@ -2963,11 +2883,10 @@ void issue_probersp(_adapter *padapter,
- unsigned short *fctrl;
- unsigned char *mac, *bssid;
- struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
--#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
-+
- u8 *pwps_ie;
- uint wps_ielen;
- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
--#endif //#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
- WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network);
-@@ -3015,7 +2934,6 @@ void issue_probersp(_adapter *padapter,
- if(cur_network->IELength>MAX_IE_SZ)
- return;
-
--#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
- if( (pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE)
- {
- pwps_ie = rtw_get_wps_ie(cur_network->IEs+_FIXED_IE_LENGTH_, cur_network->IELength-_FIXED_IE_LENGTH_, NULL, &wps_ielen);
-@@ -3091,11 +3009,9 @@ void issue_probersp(_adapter *padapter,
- pattrib->pktlen += ssid_ielen_diff;
- }
- }
-- }
-- else
--#endif
-+ }
-+ else
- {
--
- //timestamp will be inserted by hardware
- pframe += 8;
- pattrib->pktlen += 8;
-@@ -3387,13 +3303,10 @@ void issue_auth(_adapter *padapter, stru
-
- if(psta)// for AP mode
- {
--#ifdef CONFIG_NATIVEAP_MLME
--
- memcpy(pwlanhdr->addr1, psta->hwaddr, ETH_ALEN);
- memcpy(pwlanhdr->addr2, myid(&(padapter->eeprompriv)), ETH_ALEN);
- memcpy(pwlanhdr->addr3, myid(&(padapter->eeprompriv)), ETH_ALEN);
-
--
- // setting auth algo number
- val16 = (u16)psta->authalg;
-
-@@ -3422,7 +3335,6 @@ void issue_auth(_adapter *padapter, stru
- {
- pframe = rtw_set_ie(pframe, _CHLGETXT_IE_, 128, psta->chg_txt, &(pattrib->pktlen));
- }
--#endif
- }
- else
- {
-@@ -3493,7 +3405,6 @@ void issue_auth(_adapter *padapter, stru
-
- void issue_asocrsp(_adapter *padapter, unsigned short status, struct sta_info *pstat, int pkt_type)
- {
--#ifdef CONFIG_AP_MODE
- struct xmit_frame *pmgntframe;
- struct rtw_ieee80211_hdr *pwlanhdr;
- struct pkt_attrib *pattrib;
-@@ -3634,8 +3545,6 @@ void issue_asocrsp(_adapter *padapter, u
- pattrib->last_txcmdsz = pattrib->pktlen;
-
- dump_mgntframe(padapter, pmgntframe);
--
--#endif
- }
-
- void issue_assocreq(_adapter *padapter)
-@@ -3827,10 +3736,6 @@ void issue_assocreq(_adapter *padapter)
- }
-
-
--#ifdef CONFIG_WAPI_SUPPORT
-- rtw_build_assoc_req_wapi_ie(padapter, pframe, pattrib);
--#endif
--
- pattrib->last_txcmdsz = pattrib->pktlen;
- dump_mgntframe(padapter, pmgntframe);
-
-@@ -4262,71 +4167,6 @@ exit:
- return ret;
- }
-
--void issue_action_spct_ch_switch(_adapter *padapter, u8 *ra, u8 new_ch, u8 ch_offset)
--{
-- _irqL irqL;
-- _list *plist, *phead;
-- struct xmit_frame *pmgntframe;
-- struct pkt_attrib *pattrib;
-- unsigned char *pframe;
-- struct rtw_ieee80211_hdr *pwlanhdr;
-- unsigned short *fctrl;
-- struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
-- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
--
--
-- DBG_871X(FUNC_NDEV_FMT" ra="MAC_FMT", ch:%u, offset:%u\n",
-- FUNC_NDEV_ARG(padapter->pnetdev), MAC_ARG(ra), new_ch, ch_offset);
--
-- if ((pmgntframe = alloc_mgtxmitframe(pxmitpriv)) == NULL)
-- return;
--
-- //update attribute
-- pattrib = &pmgntframe->attrib;
-- update_mgntframe_attrib(padapter, pattrib);
--
-- memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET);
--
-- pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET;
-- pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
--
-- fctrl = &(pwlanhdr->frame_ctl);
-- *(fctrl) = 0;
--
-- memcpy(pwlanhdr->addr1, ra, ETH_ALEN); /* RA */
-- memcpy(pwlanhdr->addr2, myid(&(padapter->eeprompriv)), ETH_ALEN); /* TA */
-- memcpy(pwlanhdr->addr3, ra, ETH_ALEN); /* DA = RA */
--
-- SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq);
-- pmlmeext->mgnt_seq++;
-- SetFrameSubType(pframe, WIFI_ACTION);
--
-- pframe += sizeof(struct rtw_ieee80211_hdr_3addr);
-- pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr);
--
-- /* category, action */
-- {
-- u8 category, action;
-- category = RTW_WLAN_CATEGORY_SPECTRUM_MGMT;
-- action = RTW_WLAN_ACTION_SPCT_CHL_SWITCH;
--
-- pframe = rtw_set_fixed_ie(pframe, 1, &(category), &(pattrib->pktlen));
-- pframe = rtw_set_fixed_ie(pframe, 1, &(action), &(pattrib->pktlen));
-- }
--
-- pframe = rtw_set_ie_ch_switch(pframe, &(pattrib->pktlen), 0, new_ch, 0);
-- pframe = rtw_set_ie_secondary_ch_offset(pframe, &(pattrib->pktlen),
-- hal_ch_offset_to_secondary_ch_offset(ch_offset));
--
-- pattrib->last_txcmdsz = pattrib->pktlen;
--
-- dump_mgntframe(padapter, pmgntframe);
--
--}
--
--#ifdef CONFIG_IEEE80211W
- void issue_action_SA_Query(_adapter *padapter, unsigned char *raddr, unsigned char action, unsigned short tid)
- {
- u8 category = RTW_WLAN_CATEGORY_SA_QUERY;
-@@ -4402,7 +4242,6 @@ void issue_action_SA_Query(_adapter *pad
-
- dump_mgntframe(padapter, pmgntframe);
- }
--#endif //CONFIG_IEEE80211W
-
- void issue_action_BA(_adapter *padapter, unsigned char *raddr, unsigned char action, unsigned short status)
- {
-@@ -4658,7 +4497,7 @@ static void issue_action_BSSCoexistPacke
- {
- int i;
-
-- _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
-
- phead = get_list_head(queue);
- plist = get_next(phead);
-@@ -4669,7 +4508,7 @@ static void issue_action_BSSCoexistPacke
- u8 *p;
- WLAN_BSSID_EX *pbss_network;
-
-- if (rtw_end_of_queue_search(phead,plist)== true)
-+ if (phead == plist)
- break;
-
- pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list);
-@@ -4692,7 +4531,7 @@ static void issue_action_BSSCoexistPacke
-
- }
-
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
-
-
- for(i= 0;i<8;i++)
-@@ -4839,22 +4678,6 @@ Following are some utitity fuctions for
-
- *****************************************************************************/
-
--bool IsLegal5GChannel(
-- IN PADAPTER Adapter,
-- IN u8 channel)
--{
--
-- int i=0;
-- u8 Channel_5G[45] = {36,38,40,42,44,46,48,50,52,54,56,58,
-- 60,62,64,100,102,104,106,108,110,112,114,116,118,120,122,
-- 124,126,128,130,132,134,136,138,140,149,151,153,155,157,159,
-- 161,163,165};
-- for(i=0;iauth_algo == dot11AuthAlgrthm_8021X)? 0xcc: 0xcf;
-
--#ifdef CONFIG_WAPI_SUPPORT
-- if (padapter->wapiInfo.bWapiEnable && pmlmeinfo->auth_algo == dot11AuthAlgrthm_WAPI)
-- {
-- //Disable TxUseDefaultKey, RxUseDefaultKey, RxBroadcastUseDefaultKey.
-- val8 = 0x4c;
-- }
--#endif
- rtw_hal_set_hwreg(padapter, HW_VAR_SEC_CFG, (u8 *)(&val8));
-
- // Because of AP's not receiving deauth before
-@@ -5413,7 +5229,6 @@ unsigned int receive_disconnect(_adapter
- return _SUCCESS;
- }
-
--#ifdef CONFIG_80211D
- static void process_80211d(PADAPTER padapter, WLAN_BSSID_EX *bssid)
- {
- struct registry_priv *pregistrypriv;
-@@ -5678,7 +5493,6 @@ static void process_80211d(PADAPTER pada
- i++;
- }
- }
--#endif
-
- /****************************************************************************
-
-@@ -5713,11 +5527,11 @@ void report_survey_event(_adapter *padap
- cmdsz = (sizeof(struct survey_event) + sizeof(struct C2HEvent_Header));
- if ((pevtcmd = (u8*)rtw_zmalloc(cmdsz)) == NULL)
- {
-- rtw_mfree((u8 *)pcmd_obj, sizeof(struct cmd_obj));
-+ kfree((u8 *)pcmd_obj);
- return;
- }
-
-- _rtw_init_listhead(&pcmd_obj->list);
-+ INIT_LIST_HEAD(&pcmd_obj->list);
-
- pcmd_obj->cmdcode = GEN_CMD_CODE(_Set_MLME_EVT);
- pcmd_obj->cmdsz = cmdsz;
-@@ -5735,14 +5549,12 @@ void report_survey_event(_adapter *padap
-
- if (collect_bss_info(padapter, precv_frame, (WLAN_BSSID_EX *)&psurvey_evt->bss) == _FAIL)
- {
-- rtw_mfree((u8 *)pcmd_obj, sizeof(struct cmd_obj));
-- rtw_mfree((u8 *)pevtcmd, cmdsz);
-+ kfree((u8 *)pcmd_obj);
-+ kfree((u8 *)pevtcmd);
- return;
- }
-
--#ifdef CONFIG_80211D
- process_80211d(padapter, &psurvey_evt->bss);
--#endif
-
- rtw_enqueue_cmd(pcmdpriv, pcmd_obj);
-
-@@ -5770,11 +5582,11 @@ void report_surveydone_event(_adapter *p
- cmdsz = (sizeof(struct surveydone_event) + sizeof(struct C2HEvent_Header));
- if ((pevtcmd = (u8*)rtw_zmalloc(cmdsz)) == NULL)
- {
-- rtw_mfree((u8 *)pcmd_obj, sizeof(struct cmd_obj));
-+ kfree((u8 *)pcmd_obj);
- return;
- }
-
-- _rtw_init_listhead(&pcmd_obj->list);
-+ INIT_LIST_HEAD(&pcmd_obj->list);
-
- pcmd_obj->cmdcode = GEN_CMD_CODE(_Set_MLME_EVT);
- pcmd_obj->cmdsz = cmdsz;
-@@ -5818,11 +5630,11 @@ void report_join_res(_adapter *padapter,
- cmdsz = (sizeof(struct joinbss_event) + sizeof(struct C2HEvent_Header));
- if ((pevtcmd = (u8*)rtw_zmalloc(cmdsz)) == NULL)
- {
-- rtw_mfree((u8 *)pcmd_obj, sizeof(struct cmd_obj));
-+ kfree((u8 *)pcmd_obj);
- return;
- }
-
-- _rtw_init_listhead(&pcmd_obj->list);
-+ INIT_LIST_HEAD(&pcmd_obj->list);
-
- pcmd_obj->cmdcode = GEN_CMD_CODE(_Set_MLME_EVT);
- pcmd_obj->cmdsz = cmdsz;
-@@ -5871,11 +5683,11 @@ void report_wmm_edca_update(_adapter *pa
- cmdsz = (sizeof(struct wmm_event) + sizeof(struct C2HEvent_Header));
- if ((pevtcmd = (u8*)rtw_zmalloc(cmdsz)) == NULL)
- {
-- rtw_mfree((u8 *)pcmd_obj, sizeof(struct cmd_obj));
-+ kfree((u8 *)pcmd_obj);
- return;
- }
-
-- _rtw_init_listhead(&pcmd_obj->list);
-+ INIT_LIST_HEAD(&pcmd_obj->list);
-
- pcmd_obj->cmdcode = GEN_CMD_CODE(_Set_MLME_EVT);
- pcmd_obj->cmdsz = cmdsz;
-@@ -5918,11 +5730,11 @@ void report_del_sta_event(_adapter *pada
- cmdsz = (sizeof(struct stadel_event) + sizeof(struct C2HEvent_Header));
- if ((pevtcmd = (u8*)rtw_zmalloc(cmdsz)) == NULL)
- {
-- rtw_mfree((u8 *)pcmd_obj, sizeof(struct cmd_obj));
-+ kfree((u8 *)pcmd_obj);
- return;
- }
-
-- _rtw_init_listhead(&pcmd_obj->list);
-+ INIT_LIST_HEAD(&pcmd_obj->list);
-
- pcmd_obj->cmdcode = GEN_CMD_CODE(_Set_MLME_EVT);
- pcmd_obj->cmdsz = cmdsz;
-@@ -5974,11 +5786,11 @@ void report_add_sta_event(_adapter *pada
- cmdsz = (sizeof(struct stassoc_event) + sizeof(struct C2HEvent_Header));
- if ((pevtcmd = (u8*)rtw_zmalloc(cmdsz)) == NULL)
- {
-- rtw_mfree((u8 *)pcmd_obj, sizeof(struct cmd_obj));
-+ kfree((u8 *)pcmd_obj);
- return;
- }
-
-- _rtw_init_listhead(&pcmd_obj->list);
-+ INIT_LIST_HEAD(&pcmd_obj->list);
-
- pcmd_obj->cmdcode = GEN_CMD_CODE(_Set_MLME_EVT);
- pcmd_obj->cmdsz = cmdsz;
-@@ -6075,9 +5887,9 @@ void update_sta_info(_adapter *padapter,
-
- update_ldpc_stbc_cap(psta);
-
-- _enter_critical_bh(&psta->lock, &irqL);
-+ spin_lock_bh(&psta->lock);
- psta->state = _FW_LINKED;
-- _exit_critical_bh(&psta->lock, &irqL);
-+ spin_unlock_bh(&psta->lock);
-
- }
-
-@@ -6335,10 +6147,10 @@ void _linked_info_dump(_adapter *padapte
- struct sta_info *psta=NULL;
- struct sta_priv *pstapriv = &padapter->stapriv;
-
-- _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_lock_bh(&pstapriv->asoc_list_lock);
- phead = &pstapriv->asoc_list;
- plist = get_next(phead);
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ while (phead != plist)
- {
- psta = LIST_CONTAINOR(plist, struct sta_info, asoc_list);
- plist = get_next(plist);
-@@ -6346,7 +6158,7 @@ void _linked_info_dump(_adapter *padapte
- DBG_871X("STA[" MAC_FMT "]:UndecoratedSmoothedPWDB:%d\n",
- MAC_ARG(psta->hwaddr),psta->rssi_stat.UndecoratedSmoothedPWDB);
- }
-- _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->asoc_list_lock);
-
- }
- for(i=0; imlmeextpriv;
- struct mlme_priv * pmlmepriv = &padapter->mlmepriv;
- _irqL irqL;
- //disconnect
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
-
- if (check_fwstate(pmlmepriv, _FW_LINKED) == true)
- {
-@@ -6677,10 +6488,9 @@ void sa_query_timer_hdl(_adapter *padapt
- rtw_free_assoc_resources(padapter, 1);
- }
-
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
- DBG_871X("SA query timeout disconnect\n");
- }
--#endif //CONFIG_IEEE80211W
-
- u8 NULL_hdl(_adapter *padapter, u8 *pbuf)
- {
-@@ -6688,15 +6498,6 @@ u8 NULL_hdl(_adapter *padapter, u8 *pbuf
- }
-
- #ifdef CONFIG_AUTO_AP_MODE
--void rtw_start_auto_ap(_adapter *adapter)
--{
-- DBG_871X("%s\n", __FUNCTION__);
--
-- rtw_set_802_11_infrastructure_mode(adapter, Ndis802_11APMode);
--
-- rtw_setopmode_cmd(adapter, Ndis802_11APMode,true);
--}
--
- static int rtw_auto_ap_start_beacon(_adapter *adapter)
- {
- int ret=0;
-@@ -6792,7 +6593,7 @@ static int rtw_auto_ap_start_beacon(_ada
- }
-
-
-- rtw_mfree(pbuf, len);
-+ kfree(pbuf);
-
- return ret;
-
-@@ -6810,9 +6611,7 @@ u8 setopmode_hdl(_adapter *padapter, u8
- {
- pmlmeinfo->state = WIFI_FW_AP_STATE;
- type = _HW_STATE_AP_;
--#ifdef CONFIG_NATIVEAP_MLME
- //start_ap_mode(padapter);
--#endif
- }
- else if(psetop->mode == Ndis802_11Infrastructure)
- {
-@@ -6869,14 +6668,12 @@ u8 createbss_hdl(_adapter *padapter, u8
- WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX*)(&(pmlmeinfo->network));
- struct joinbss_parm *pparm = (struct joinbss_parm *)pbuf;
- //u32 initialgain;
--
--#ifdef CONFIG_AP_MODE
-+
- if (pmlmeinfo->state == WIFI_FW_AP_STATE) {
- WLAN_BSSID_EX *network = &padapter->mlmepriv.cur_network.network;
- start_bss_network(padapter, (u8*)network);
- return H2C_SUCCESS;
- }
--#endif
-
- //below is for ad-hoc master
- if(pparm->network.InfrastructureMode == Ndis802_11IBSS)
-@@ -6959,10 +6756,6 @@ u8 join_cmd_hdl(_adapter *padapter, u8 *
- rtw_hal_set_hwreg(padapter, HW_VAR_MLME_DISCONNECT, NULL);
- }
-
--#ifdef CONFIG_WAPI_SUPPORT
-- rtw_wapi_clear_all_cam_entry(padapter);
--#endif
--
- rtw_joinbss_reset(padapter);
-
- pmlmeext->cur_bwmode = CHANNEL_WIDTH_20;
-@@ -7297,10 +7090,8 @@ u8 setkey_hdl(_adapter *padapter, u8 *pb
- ,cam_id, MAC_ARG(addr), pparm->keyid, security_type_str(pparm->algorithm));
- }
-
-- #ifdef DYNAMIC_CAMID_ALLOC
- if (cam_id >=0 && cam_id <=3)
- rtw_hal_set_hwreg(padapter, HW_VAR_SEC_DK_CFG, (u8*)true);
-- #endif
-
- //allow multicast packets to driver
- padapter->HalFunc.SetHwRegHandler(padapter, HW_VAR_ON_RCR_AM, null_addr);
-@@ -7427,7 +7218,7 @@ _func_enter_;
-
- if ((ptxBeacon_parm = (struct Tx_Beacon_param *)rtw_zmalloc(sizeof(struct Tx_Beacon_param))) == NULL)
- {
-- rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ kfree((unsigned char *)ph2c);
- res= _FAIL;
- goto exit;
- }
-@@ -7531,7 +7322,6 @@ u8 h2c_msg_hdl(_adapter *padapter, unsig
-
- u8 chk_bmc_sleepq_hdl(_adapter *padapter, unsigned char *pbuf)
- {
--#ifdef CONFIG_AP_MODE
- _irqL irqL;
- struct sta_info *psta_bmc;
- _list *xmitframe_plist, *xmitframe_phead;
-@@ -7548,19 +7338,19 @@ u8 chk_bmc_sleepq_hdl(_adapter *padapter
- {
- msleep(10);// 10ms, ATIM(HIQ) Windows
-
-- //_enter_critical_bh(&psta_bmc->sleep_q.lock, &irqL);
-- _enter_critical_bh(&pxmitpriv->lock, &irqL);
-+ //spin_lock_bh(&psta_bmc->sleep_q.lock);
-+ spin_lock_bh(&pxmitpriv->lock);
-
- xmitframe_phead = get_list_head(&psta_bmc->sleep_q);
- xmitframe_plist = get_next(xmitframe_phead);
-
-- while ((rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) == false)
-+ while (xmitframe_phead != xmitframe_plist)
- {
- pxmitframe = LIST_CONTAINOR(xmitframe_plist, struct xmit_frame, list);
-
- xmitframe_plist = get_next(xmitframe_plist);
-
-- rtw_list_delete(&pxmitframe->list);
-+ list_del_init(&pxmitframe->list);
-
- psta_bmc->sleepq_len--;
- if(psta_bmc->sleepq_len>0)
-@@ -7576,13 +7366,12 @@ u8 chk_bmc_sleepq_hdl(_adapter *padapter
- rtw_hal_xmitframe_enqueue(padapter, pxmitframe);
- }
-
-- //_exit_critical_bh(&psta_bmc->sleep_q.lock, &irqL);
-- _exit_critical_bh(&pxmitpriv->lock, &irqL);
-+ //spin_unlock_bh(&psta_bmc->sleep_q.lock);
-+ spin_unlock_bh(&pxmitpriv->lock);
-
- /* check hi queue and bmc_sleepq */
- rtw_chk_hi_queue_cmd(padapter);
- }
--#endif
-
- return H2C_SUCCESS;
- }
-@@ -7601,58 +7390,6 @@ u8 tx_beacon_hdl(_adapter *padapter, uns
- return H2C_SUCCESS;
- }
-
--void change_band_update_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork)
--{
-- u8 network_type,rate_len, total_rate_len,remainder_rate_len;
-- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-- u8 erpinfo=0x4;
--
-- //DBG_871X("%s\n", __FUNCTION__);
--
-- if(pmlmeext->cur_channel >= 36)
-- {
-- network_type = WIRELESS_11A;
-- total_rate_len = IEEE80211_NUM_OFDM_RATESLEN;
-- DBG_871X("%s(): change to 5G Band\n",__FUNCTION__);
-- rtw_remove_bcn_ie(padapter, pnetwork, _ERPINFO_IE_);
-- }
-- else
-- {
-- network_type = WIRELESS_11BG;
-- total_rate_len = IEEE80211_CCK_RATE_LEN+IEEE80211_NUM_OFDM_RATESLEN;
-- DBG_871X("%s(): change to 2.4G Band\n",__FUNCTION__);
-- rtw_add_bcn_ie(padapter, pnetwork, _ERPINFO_IE_, &erpinfo, 1);
-- }
--
-- rtw_set_supported_rate(pnetwork->SupportedRates, network_type);
--
-- UpdateBrateTbl(padapter, pnetwork->SupportedRates);
-- rtw_hal_set_hwreg(padapter, HW_VAR_BASIC_RATE, pnetwork->SupportedRates);
--
-- if(total_rate_len > 8)
-- {
-- rate_len = 8;
-- remainder_rate_len = total_rate_len - 8;
-- }
-- else
-- {
-- rate_len = total_rate_len;
-- remainder_rate_len = 0;
-- }
--
-- rtw_add_bcn_ie(padapter, pnetwork, _SUPPORTEDRATES_IE_, pnetwork->SupportedRates, rate_len);
--
-- if(remainder_rate_len)
-- {
-- rtw_add_bcn_ie(padapter, pnetwork, _EXT_SUPPORTEDRATES_IE_, (pnetwork->SupportedRates+8), remainder_rate_len);
-- }
-- else
-- {
-- rtw_remove_bcn_ie(padapter, pnetwork, _EXT_SUPPORTEDRATES_IE_);
-- }
--}
--
- int rtw_chk_start_clnt_join(_adapter *padapter, u8 *ch, u8 *bw, u8 *offset)
- {
- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_pwrctrl.c linux/3rdparty/rtl8723bs/core/rtw_pwrctrl.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_pwrctrl.c 2015-05-10 14:36:05.674667968 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_pwrctrl.c 2015-05-07 17:46:55.000000000 +0300
-@@ -24,53 +24,6 @@
- #include
-
-
--int rtw_fw_ps_state(PADAPTER padapter)
--{
-- struct dvobj_priv *psdpriv = padapter->dvobj;
-- struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
-- int ret=_FAIL, dont_care=0;
-- u16 fw_ps_state=0;
-- u32 start_time;
-- struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
-- struct registry_priv *registry_par = &padapter->registrypriv;
--
-- if(registry_par->check_fw_ps != 1)
-- return _SUCCESS;
--
-- down(&pwrpriv->check_32k_lock);
--
-- if ((padapter->bSurpriseRemoved == true))
-- {
-- DBG_871X("%s: bSurpriseRemoved=%d , hw_init_completed=%d, bDriverStopped=%d \n", __FUNCTION__, padapter->bSurpriseRemoved,
-- padapter->hw_init_completed,padapter->bDriverStopped);
-- goto exit_fw_ps_state;
-- }
-- rtw_hal_set_hwreg(padapter, HW_VAR_SET_REQ_FW_PS, (u8 *)&dont_care);
-- {
-- //4. if 0x88[7]=1, driver set cmd to leave LPS/IPS.
-- //Else, hw will keep in active mode.
-- //debug info:
-- //0x88[7] = 32kpermission,
-- //0x88[6:0] = current_ps_state
-- //0x89[7:0] = last_rpwm
--
-- rtw_hal_get_hwreg(padapter, HW_VAR_FW_PS_STATE, (u8 *)&fw_ps_state);
--
-- if((fw_ps_state & 0x80) == 0)
-- ret=_SUCCESS;
-- else
-- {
-- pdbgpriv->dbg_poll_fail_cnt++;
-- DBG_871X("%s: fw_ps_state=%04x \n", __FUNCTION__, fw_ps_state);
-- }
-- }
--
--
--exit_fw_ps_state:
-- up(&pwrpriv->check_32k_lock);
-- return ret;
--}
--
- void _ips_enter(_adapter * padapter)
- {
- struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
-@@ -152,9 +105,6 @@ int ips_leave(_adapter * padapter)
- up(&pwrpriv->lock);
-
- if (_SUCCESS == ret)
-- ODM_DMReset(&GET_HAL_DATA(padapter)->odmpriv);
--
-- if (_SUCCESS == ret)
- rtw_btcoex_IpsNotify(padapter, IPS_NONE);
-
- return ret;
-@@ -1264,68 +1214,6 @@ _func_exit_;
- }
-
- /*
-- * Caller: rx_isr
-- *
-- * Calling Context: Dispatch/ISR
-- *
-- * Return Value:
-- * _SUCCESS
-- * _FAIL
-- */
--s32 rtw_register_rx_alive(PADAPTER padapter)
--{
-- struct pwrctrl_priv *pwrctrl;
--
--_func_enter_;
--
-- pwrctrl = adapter_to_pwrctl(padapter);
--
-- down(&pwrctrl->lock);
--
-- register_task_alive(pwrctrl, RECV_ALIVE);
-- RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,
-- ("rtw_register_rx_alive: cpwm=0x%02x alives=0x%08x\n",
-- pwrctrl->cpwm, pwrctrl->alives));
--
-- up(&pwrctrl->lock);
--
--_func_exit_;
--
-- return _SUCCESS;
--}
--
--/*
-- * Caller: evt_isr or evt_thread
-- *
-- * Calling Context: Dispatch/ISR or Passive
-- *
-- * Return Value:
-- * _SUCCESS
-- * _FAIL
-- */
--s32 rtw_register_evt_alive(PADAPTER padapter)
--{
-- struct pwrctrl_priv *pwrctrl;
--
--_func_enter_;
--
-- pwrctrl = adapter_to_pwrctl(padapter);
--
-- down(&pwrctrl->lock);
--
-- register_task_alive(pwrctrl, EVT_ALIVE);
-- RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,
-- ("rtw_register_evt_alive: cpwm=0x%02x alives=0x%08x\n",
-- pwrctrl->cpwm, pwrctrl->alives));
--
-- up(&pwrctrl->lock);
--
--_func_exit_;
--
-- return _SUCCESS;
--}
--
--/*
- * Caller: ISR
- *
- * If ISR's txdone,
-@@ -1425,49 +1313,6 @@ _func_enter_;
- _func_exit_;
- }
-
--/*
-- * Caller: ISR
-- */
--void rtw_unregister_rx_alive(PADAPTER padapter)
--{
-- struct pwrctrl_priv *pwrctrl;
--
--_func_enter_;
--
-- pwrctrl = adapter_to_pwrctl(padapter);
--
-- down(&pwrctrl->lock);
--
-- unregister_task_alive(pwrctrl, RECV_ALIVE);
--
-- RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,
-- ("rtw_unregister_rx_alive: cpwm=0x%02x alives=0x%08x\n",
-- pwrctrl->cpwm, pwrctrl->alives));
--
-- up(&pwrctrl->lock);
--
--_func_exit_;
--}
--
--void rtw_unregister_evt_alive(PADAPTER padapter)
--{
-- struct pwrctrl_priv *pwrctrl;
--
--_func_enter_;
--
-- pwrctrl = adapter_to_pwrctl(padapter);
--
-- unregister_task_alive(pwrctrl, EVT_ALIVE);
--
-- RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,
-- ("rtw_unregister_evt_alive: cpwm=0x%02x alives=0x%08x\n",
-- pwrctrl->cpwm, pwrctrl->alives));
--
-- up(&pwrctrl->lock);
--
--_func_exit_;
--}
--
- void rtw_init_pwrctrl_priv(PADAPTER padapter)
- {
- struct pwrctrl_priv *pwrctrlpriv = adapter_to_pwrctl(padapter);
-@@ -1558,15 +1403,6 @@ _func_enter_;
- _func_exit_;
- }
-
--u8 rtw_interface_ps_func(_adapter *padapter,HAL_INTF_PS_FUNC efunc_id,u8* val)
--{
-- u8 bResult = true;
-- rtw_hal_intf_ps_func(padapter,efunc_id,val);
--
-- return bResult;
--}
--
--
- inline void rtw_set_ips_deny(_adapter *padapter, u32 ms)
- {
- struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_recv.c linux/3rdparty/rtl8723bs/core/rtw_recv.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_recv.c 2015-05-10 14:36:05.676667990 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_recv.c 2015-05-07 17:46:55.000000000 +0300
-@@ -53,7 +53,7 @@ sint _rtw_init_recv_priv(struct recv_pri
-
- _func_enter_;
-
-- // We don't need to memset padapter->XXX to zero, because adapter is allocated by rtw_zvmalloc().
-+ // We don't need to memset padapter->XXX to zero, because adapter is allocated by vzalloc().
- //memset((unsigned char *)precvpriv, 0, sizeof (struct recv_priv));
-
- spin_lock_init(&precvpriv->lock);
-@@ -66,9 +66,7 @@ _func_enter_;
-
- precvpriv->free_recvframe_cnt = NR_RECVFRAME;
-
-- rtw_os_recv_resource_init(precvpriv, padapter);
--
-- precvpriv->pallocated_frame_buf = rtw_zvmalloc(NR_RECVFRAME * sizeof(union recv_frame) + RXFRAME_ALIGN_SZ);
-+ precvpriv->pallocated_frame_buf = vzalloc(NR_RECVFRAME * sizeof(union recv_frame) + RXFRAME_ALIGN_SZ);
-
- if(precvpriv->pallocated_frame_buf==NULL){
- res= _FAIL;
-@@ -85,9 +83,9 @@ _func_enter_;
-
- for(i=0; i < NR_RECVFRAME ; i++)
- {
-- _rtw_init_listhead(&(precvframe->u.list));
-+ INIT_LIST_HEAD(&(precvframe->u.list));
-
-- rtw_list_insert_tail(&(precvframe->u.list), &(precvpriv->free_recv_queue.queue));
-+ list_add_tail(&(precvframe->u.list), &(precvpriv->free_recv_queue.queue));
-
- res = rtw_os_recv_resource_alloc(padapter, precvframe);
-
-@@ -126,7 +124,7 @@ _func_enter_;
- rtw_os_recv_resource_free(precvpriv);
-
- if(precvpriv->pallocated_frame_buf) {
-- rtw_vmfree(precvpriv->pallocated_frame_buf, NR_RECVFRAME * sizeof(union recv_frame) + RXFRAME_ALIGN_SZ);
-+ vfree(precvpriv->pallocated_frame_buf);
- }
-
- rtw_hal_free_recv_priv(padapter);
-@@ -144,7 +142,7 @@ union recv_frame *_rtw_alloc_recvframe (
- struct recv_priv *precvpriv;
- _func_enter_;
-
-- if(_rtw_queue_empty(pfree_recv_queue) == true)
-+ if(list_empty(&pfree_recv_queue->queue))
- {
- precvframe = NULL;
- }
-@@ -156,7 +154,7 @@ _func_enter_;
-
- precvframe = LIST_CONTAINOR(plist, union recv_frame, u);
-
-- rtw_list_delete(&precvframe->u.hdr.list);
-+ list_del_init(&precvframe->u.hdr.list);
- padapter=precvframe->u.hdr.adapter;
- if(padapter !=NULL){
- precvpriv=&padapter->recvpriv;
-@@ -176,23 +174,15 @@ union recv_frame *rtw_alloc_recvframe (_
- _irqL irqL;
- union recv_frame *precvframe;
-
-- _enter_critical_bh(&pfree_recv_queue->lock, &irqL);
-+ spin_lock_bh(&pfree_recv_queue->lock);
-
- precvframe = _rtw_alloc_recvframe(pfree_recv_queue);
-
-- _exit_critical_bh(&pfree_recv_queue->lock, &irqL);
-+ spin_unlock_bh(&pfree_recv_queue->lock);
-
- return precvframe;
- }
-
--void rtw_init_recvframe(union recv_frame *precvframe, struct recv_priv *precvpriv)
--{
-- /* Perry: This can be removed */
-- _rtw_init_listhead(&precvframe->u.hdr.list);
--
-- precvframe->u.hdr.len=0;
--}
--
- int rtw_free_recvframe(union recv_frame *precvframe, _queue *pfree_recv_queue)
- {
- _irqL irqL;
-@@ -204,20 +194,20 @@ _func_enter_;
- rtw_os_free_recvframe(precvframe);
-
-
-- _enter_critical_bh(&pfree_recv_queue->lock, &irqL);
-+ spin_lock_bh(&pfree_recv_queue->lock);
-
-- rtw_list_delete(&(precvframe->u.hdr.list));
-+ list_del_init(&(precvframe->u.hdr.list));
-
- precvframe->u.hdr.len = 0;
-
-- rtw_list_insert_tail(&(precvframe->u.hdr.list), get_list_head(pfree_recv_queue));
-+ list_add_tail(&(precvframe->u.hdr.list), get_list_head(pfree_recv_queue));
-
- if(padapter !=NULL){
- if(pfree_recv_queue == &precvpriv->free_recv_queue)
- precvpriv->free_recvframe_cnt++;
- }
-
-- _exit_critical_bh(&pfree_recv_queue->lock, &irqL);
-+ spin_unlock_bh(&pfree_recv_queue->lock);
-
- _func_exit_;
-
-@@ -236,11 +226,11 @@ sint _rtw_enqueue_recvframe(union recv_f
-
- _func_enter_;
-
-- //_rtw_init_listhead(&(precvframe->u.hdr.list));
-- rtw_list_delete(&(precvframe->u.hdr.list));
-+ //INIT_LIST_HEAD(&(precvframe->u.hdr.list));
-+ list_del_init(&(precvframe->u.hdr.list));
-
-
-- rtw_list_insert_tail(&(precvframe->u.hdr.list), get_list_head(queue));
-+ list_add_tail(&(precvframe->u.hdr.list), get_list_head(queue));
-
- if (padapter != NULL) {
- if (queue == &precvpriv->free_recv_queue)
-@@ -258,10 +248,10 @@ sint rtw_enqueue_recvframe(union recv_fr
- _irqL irqL;
-
- //_spinlock(&pfree_recv_queue->lock);
-- _enter_critical_bh(&queue->lock, &irqL);
-+ spin_lock_bh(&queue->lock);
- ret = _rtw_enqueue_recvframe(precvframe, queue);
- //spin_unlock(&pfree_recv_queue->lock);
-- _exit_critical_bh(&queue->lock, &irqL);
-+ spin_unlock_bh(&queue->lock);
-
- return ret;
- }
-@@ -295,13 +285,13 @@ _func_enter_;
- phead = get_list_head(pframequeue);
- plist = get_next(phead);
-
-- while(rtw_end_of_queue_search(phead, plist) == false)
-+ while(phead != plist)
- {
- precvframe = LIST_CONTAINOR(plist, union recv_frame, u);
-
- plist = get_next(plist);
-
-- //rtw_list_delete(&precvframe->u.hdr.list); // will do this in rtw_free_recvframe()
-+ //list_del_init(&precvframe->u.hdr.list); // will do this in rtw_free_recvframe()
-
- rtw_free_recvframe(precvframe, pfree_recv_queue);
- }
-@@ -332,12 +322,12 @@ sint rtw_enqueue_recvbuf_to_head(struct
- {
- _irqL irqL;
-
-- _enter_critical_bh(&queue->lock, &irqL);
-+ spin_lock_bh(&queue->lock);
-
-- rtw_list_delete(&precvbuf->list);
-- rtw_list_insert_head(&precvbuf->list, get_list_head(queue));
-+ list_del_init(&precvbuf->list);
-+ list_add(&precvbuf->list, get_list_head(queue));
-
-- _exit_critical_bh(&queue->lock, &irqL);
-+ spin_unlock_bh(&queue->lock);
-
- return _SUCCESS;
- }
-@@ -345,12 +335,12 @@ sint rtw_enqueue_recvbuf_to_head(struct
- sint rtw_enqueue_recvbuf(struct recv_buf *precvbuf, _queue *queue)
- {
- _irqL irqL;
-- _enter_critical_bh(&queue->lock, &irqL);
-+ spin_lock_bh(&queue->lock);
-
-- rtw_list_delete(&precvbuf->list);
-+ list_del_init(&precvbuf->list);
-
-- rtw_list_insert_tail(&precvbuf->list, get_list_head(queue));
-- _exit_critical_bh(&queue->lock, &irqL);
-+ list_add_tail(&precvbuf->list, get_list_head(queue));
-+ spin_unlock_bh(&queue->lock);
- return _SUCCESS;
-
- }
-@@ -361,9 +351,9 @@ struct recv_buf *rtw_dequeue_recvbuf (_q
- struct recv_buf *precvbuf;
- _list *plist, *phead;
-
-- _enter_critical_bh(&queue->lock, &irqL);
-+ spin_lock_bh(&queue->lock);
-
-- if(_rtw_queue_empty(queue) == true)
-+ if(list_empty(&queue->queue))
- {
- precvbuf = NULL;
- }
-@@ -375,11 +365,11 @@ struct recv_buf *rtw_dequeue_recvbuf (_q
-
- precvbuf = LIST_CONTAINOR(plist, struct recv_buf, list);
-
-- rtw_list_delete(&precvbuf->list);
-+ list_del_init(&precvbuf->list);
-
- }
-
-- _exit_critical_bh(&queue->lock, &irqL);
-+ spin_unlock_bh(&queue->lock);
-
- return precvbuf;
-
-@@ -597,12 +587,6 @@ _func_enter_;
- DBG_COUNTER(padapter->rx_logs.core_rx_post_decrypt_aes);
- res = rtw_aes_decrypt(padapter, (u8 * )precv_frame);
- break;
--#ifdef CONFIG_WAPI_SUPPORT
-- case _SMS4_:
-- DBG_COUNTER(padapter->rx_logs.core_rx_post_decrypt_wapi);
-- rtw_sms4_decrypt(padapter, (u8 * )precv_frame);
-- break;
--#endif
- default:
- break;
- }
-@@ -783,7 +767,6 @@ _func_exit_;
- void process_pwrbit_data(_adapter *padapter, union recv_frame *precv_frame);
- void process_pwrbit_data(_adapter *padapter, union recv_frame *precv_frame)
- {
--#ifdef CONFIG_AP_MODE
- unsigned char pwrbit;
- u8 *ptr = precv_frame->u.hdr.rx_data;
- struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib;
-@@ -822,14 +805,11 @@ void process_pwrbit_data(_adapter *padap
- }
-
- }
--
--#endif
- }
-
- void process_wmmps_data(_adapter *padapter, union recv_frame *precv_frame);
- void process_wmmps_data(_adapter *padapter, union recv_frame *precv_frame)
- {
--#ifdef CONFIG_AP_MODE
- struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib;
- struct sta_priv *pstapriv = &padapter->stapriv;
- struct sta_info *psta=NULL;
-@@ -882,12 +862,7 @@ void process_wmmps_data(_adapter *padapt
- issue_qos_nulldata(padapter, psta->hwaddr, (u16)pattrib->priority, 0, 0);
- }
- }
--
- }
--
--
--#endif
--
- }
-
- void count_rx_stats(_adapter *padapter, union recv_frame *prframe, struct sta_info*sta);
-@@ -1320,7 +1295,6 @@ sint validate_recv_ctrl_frame(_adapter *
- //only handle ps-poll
- if(GetFrameSubType(pframe) == WIFI_PSPOLL)
- {
--#ifdef CONFIG_AP_MODE
- u16 aid;
- u8 wmmps_ac=0;
-
-@@ -1368,19 +1342,19 @@ sint validate_recv_ctrl_frame(_adapter *
- struct xmit_frame *pxmitframe=NULL;
- struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
-
-- //_enter_critical_bh(&psta->sleep_q.lock, &irqL);
-- _enter_critical_bh(&pxmitpriv->lock, &irqL);
-+ //spin_lock_bh(&psta->sleep_q.lock);
-+ spin_lock_bh(&pxmitpriv->lock);
-
- xmitframe_phead = get_list_head(&psta->sleep_q);
- xmitframe_plist = get_next(xmitframe_phead);
-
-- if ((rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) == false)
-+ if (xmitframe_phead != xmitframe_plist)
- {
- pxmitframe = LIST_CONTAINOR(xmitframe_plist, struct xmit_frame, list);
-
- xmitframe_plist = get_next(xmitframe_plist);
-
-- rtw_list_delete(&pxmitframe->list);
-+ list_del_init(&pxmitframe->list);
-
- psta->sleepq_len--;
-
-@@ -1406,14 +1380,14 @@ sint validate_recv_ctrl_frame(_adapter *
- update_beacon(padapter, _TIM_IE_, NULL, true);
- }
-
-- //_exit_critical_bh(&psta->sleep_q.lock, &irqL);
-- _exit_critical_bh(&pxmitpriv->lock, &irqL);
-+ //spin_unlock_bh(&psta->sleep_q.lock);
-+ spin_unlock_bh(&pxmitpriv->lock);
-
- }
- else
- {
-- //_exit_critical_bh(&psta->sleep_q.lock, &irqL);
-- _exit_critical_bh(&pxmitpriv->lock, &irqL);
-+ //spin_unlock_bh(&psta->sleep_q.lock);
-+ spin_unlock_bh(&pxmitpriv->lock);
-
- //DBG_871X("no buffered packets to xmit\n");
- if(pstapriv->tim_bitmap&BIT(psta->aid))
-@@ -1439,7 +1413,6 @@ sint validate_recv_ctrl_frame(_adapter *
- }
- }
- }
--#endif //CONFIG_AP_MODE
- }
-
- return _FAIL;
-@@ -1640,7 +1613,6 @@ _func_exit_;
- return ret;
- }
-
--#ifdef CONFIG_IEEE80211W
- static sint validate_80211w_mgmt(_adapter *adapter, union recv_frame *precv_frame)
- {
- struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
-@@ -1695,7 +1667,7 @@ static sint validate_80211w_mgmt(_adapte
- memcpy(ptr+pattrib->hdrlen, mgmt_DATA, data_len);
- //remove the iv and icv length
- pattrib->pkt_len = pattrib->pkt_len - pattrib->iv_len - pattrib->icv_len;
-- rtw_mfree(mgmt_DATA, data_len);
-+ kfree(mgmt_DATA);
- /*//print packet content after decryption
- {
- int pp;
-@@ -1759,7 +1731,6 @@ validate_80211w_fail:
- return _FAIL;
-
- }
--#endif //CONFIG_IEEE80211W
-
- static inline void dump_rx_packet(u8 *ptr)
- {
-@@ -1788,14 +1759,6 @@ sint validate_recv_frame(_adapter *adapt
- u8 *ptr = precv_frame->u.hdr.rx_data;
- u8 ver =(unsigned char) (*ptr)&0x3 ;
-
--#ifdef CONFIG_WAPI_SUPPORT
-- PRT_WAPI_T pWapiInfo = &adapter->wapiInfo;
-- struct recv_frame_hdr *phdr = &precv_frame->u.hdr;
-- u8 wai_pkt = 0;
-- u16 sc;
-- u8 external_len = 0;
--#endif
--
- _func_enter_;
-
- //add version chk
-@@ -1819,9 +1782,6 @@ _func_enter_;
- pattrib->mdata = GetMData(ptr);
- pattrib->privacy = GetPrivacy(ptr);
- pattrib->order = GetOrder(ptr);
--#ifdef CONFIG_WAPI_SUPPORT
-- sc = (pattrib->seq_num<<4) | pattrib->frag_num;
--#endif
- {
- u8 bDumpRxPkt;
- rtw_hal_get_def_var(adapter, HAL_DEF_DBG_DUMP_RXPKT, &(bDumpRxPkt));
-@@ -1837,15 +1797,13 @@ _func_enter_;
- {
- case WIFI_MGT_TYPE: //mgnt
- DBG_COUNTER(adapter->rx_logs.core_rx_pre_mgmt);
--#ifdef CONFIG_IEEE80211W
- if(validate_80211w_mgmt(adapter, precv_frame) == _FAIL)
- {
- retval = _FAIL;
- DBG_COUNTER(padapter->rx_logs.core_rx_pre_mgmt_err_80211w);
- break;
- }
--#endif //CONFIG_IEEE80211W
--
-+
- retval = validate_recv_mgnt_frame(adapter, precv_frame);
- if (retval == _FAIL)
- {
-@@ -1866,39 +1824,6 @@ _func_enter_;
- break;
- case WIFI_DATA_TYPE: //data
- DBG_COUNTER(adapter->rx_logs.core_rx_pre_data);
--#ifdef CONFIG_WAPI_SUPPORT
-- if(pattrib->qos)
-- external_len = 2;
-- else
-- external_len= 0;
--
-- wai_pkt = rtw_wapi_is_wai_packet(adapter,ptr);
--
-- phdr->bIsWaiPacket = wai_pkt;
--
-- if(wai_pkt !=0){
-- if(sc != adapter->wapiInfo.wapiSeqnumAndFragNum)
-- {
-- adapter->wapiInfo.wapiSeqnumAndFragNum = sc;
-- }
-- else
-- {
-- retval = _FAIL;
-- DBG_COUNTER(adapter->rx_logs.core_rx_pre_data_wapi_seq_err);
-- break;
-- }
-- }
-- else{
--
-- if(rtw_wapi_drop_for_key_absent(adapter,GetAddr2Ptr(ptr))){
-- retval=_FAIL;
-- WAPI_TRACE(WAPI_RX,"drop for key absent for rx \n");
-- DBG_COUNTER(adapter->rx_logs.core_rx_pre_data_wapi_key_err);
-- break;
-- }
-- }
--
--#endif
-
- pattrib->qos = (subtype & BIT(7))? 1:0;
- retval = validate_recv_data_frame(adapter, precv_frame);
-@@ -2080,7 +2005,7 @@ _func_enter_;
- plist = get_next(phead);
- prframe = LIST_CONTAINOR(plist, union recv_frame, u);
- pfhdr=&prframe->u.hdr;
-- rtw_list_delete(&(prframe->u.list));
-+ list_del_init(&(prframe->u.list));
-
- if(curfragnum!=pfhdr->attrib.frag_num)
- {
-@@ -2100,7 +2025,7 @@ _func_enter_;
-
- data=get_recvframe_data(prframe);
-
-- while(rtw_end_of_queue_search(phead, plist) == false)
-+ while(phead != plist)
- {
- pnextrframe = LIST_CONTAINOR(plist, union recv_frame , u);
- pnfhdr=&pnextrframe->u.hdr;
-@@ -2202,7 +2127,7 @@ _func_enter_;
- if(fragnum==0)
- {
- //the first fragment
-- if(_rtw_queue_empty(pdefrag_q) == false)
-+ if(!list_empty(&pdefrag_q->queue))
- {
- //free current defrag_q
- rtw_free_recvframe_queue(pdefrag_q, pfree_recv_queue);
-@@ -2214,7 +2139,7 @@ _func_enter_;
-
- //spin_lock(&pdefrag_q->lock);
- phead = get_list_head(pdefrag_q);
-- rtw_list_insert_tail(&pfhdr->list, phead);
-+ list_add_tail(&pfhdr->list, phead);
- //spin_unlock(&pdefrag_q->lock);
-
- RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("Enqueuq: ismfrag = %d, fragnum= %d\n", ismfrag,fragnum));
-@@ -2240,7 +2165,7 @@ _func_enter_;
- {
- //spin_lock(&pdefrag_q->lock);
- phead = get_list_head(pdefrag_q);
-- rtw_list_insert_tail(&pfhdr->list,phead);
-+ list_add_tail(&pfhdr->list,phead);
- //spin_unlock(&pdefrag_q->lock);
-
- //call recvframe_defrag to defrag
-@@ -2445,14 +2370,14 @@ int enqueue_reorder_recvframe(struct rec
-
- //DbgPrint("+enqueue_reorder_recvframe()\n");
-
-- //_enter_critical_ex(&ppending_recvframe_queue->lock, &irql);
-+ //spin_lock_irqsave(&ppending_recvframe_queue->lock, irql);
- //spin_lock(&ppending_recvframe_queue->lock);
-
-
- phead = get_list_head(ppending_recvframe_queue);
- plist = get_next(phead);
-
-- while(rtw_end_of_queue_search(phead, plist) == false)
-+ while (phead != plist)
- {
- pnextrframe = LIST_CONTAINOR(plist, union recv_frame, u);
- pnextattrib = &pnextrframe->u.hdr.attrib;
-@@ -2466,7 +2391,7 @@ int enqueue_reorder_recvframe(struct rec
- //Duplicate entry is found!! Do not insert current entry.
- //RT_TRACE(COMP_RX_REORDER, DBG_TRACE, ("InsertRxReorderList(): Duplicate packet is dropped!! IndicateSeq: %d, NewSeq: %d\n", pTS->RxIndicateSeq, SeqNum));
-
-- //_exit_critical_ex(&ppending_recvframe_queue->lock, &irql);
-+ //spin_unlock_irqrestore(&ppending_recvframe_queue->lock, irql);
-
- return false;
- }
-@@ -2480,15 +2405,15 @@ int enqueue_reorder_recvframe(struct rec
- }
-
-
-- //_enter_critical_ex(&ppending_recvframe_queue->lock, &irql);
-+ //spin_lock_irqsave(&ppending_recvframe_queue->lock, irql);
- //spin_lock(&ppending_recvframe_queue->lock);
-
-- rtw_list_delete(&(prframe->u.hdr.list));
-+ list_del_init(&(prframe->u.hdr.list));
-
-- rtw_list_insert_tail(&(prframe->u.hdr.list), plist);
-+ list_add_tail(&(prframe->u.hdr.list), plist);
-
- //spin_unlock(&ppending_recvframe_queue->lock);
-- //_exit_critical_ex(&ppending_recvframe_queue->lock, &irql);
-+ //spin_unlock_irqrestore(&ppending_recvframe_queue->lock, irql);
-
-
- //RT_TRACE(COMP_RX_REORDER, DBG_TRACE, ("InsertRxReorderList(): Pkt insert into buffer!! IndicateSeq: %d, NewSeq: %d\n", pTS->RxIndicateSeq, SeqNum));
-@@ -2528,7 +2453,7 @@ int recv_indicatepkts_in_order(_adapter
-
- //DbgPrint("+recv_indicatepkts_in_order\n");
-
-- //_enter_critical_ex(&ppending_recvframe_queue->lock, &irql);
-+ //spin_lock_irqsave(&ppending_recvframe_queue->lock, irql);
- //spin_lock(&ppending_recvframe_queue->lock);
-
- phead = get_list_head(ppending_recvframe_queue);
-@@ -2538,9 +2463,9 @@ int recv_indicatepkts_in_order(_adapter
- if(bforced==true)
- {
- pdbgpriv->dbg_rx_ampdu_forced_indicate_count++;
-- if(rtw_is_list_empty(phead))
-+ if(list_empty(phead))
- {
-- // _exit_critical_ex(&ppending_recvframe_queue->lock, &irql);
-+ // spin_unlock_irqrestore(&ppending_recvframe_queue->lock, irql);
- //spin_unlock(&ppending_recvframe_queue->lock);
- return true;
- }
-@@ -2559,7 +2484,7 @@ int recv_indicatepkts_in_order(_adapter
-
- // Prepare indication list and indication.
- // Check if there is any packet need indicate.
-- while(!rtw_is_list_empty(phead))
-+ while(!list_empty(phead))
- {
-
- prframe = LIST_CONTAINOR(plist, union recv_frame, u);
-@@ -2572,7 +2497,7 @@ int recv_indicatepkts_in_order(_adapter
- preorder_ctrl->indicate_seq, pattrib->seq_num, pattrib->amsdu));
-
- plist = get_next(plist);
-- rtw_list_delete(&(prframe->u.hdr.list));
-+ list_del_init(&(prframe->u.hdr.list));
-
- if(SN_EQUAL(preorder_ctrl->indicate_seq, pattrib->seq_num))
- {
-@@ -2632,7 +2557,7 @@ int recv_indicatepkts_in_order(_adapter
- }
-
- //spin_unlock(&ppending_recvframe_queue->lock);
-- //_exit_critical_ex(&ppending_recvframe_queue->lock, &irql);
-+ //spin_unlock_irqrestore(&ppending_recvframe_queue->lock, irql);
-
- /*
- //Release the indication lock and set to new indication step.
-@@ -2649,7 +2574,7 @@ int recv_indicatepkts_in_order(_adapter
- //pTS->RxIndicateState = RXTS_INDICATE_IDLE;
- }
- */
-- //_exit_critical_ex(&ppending_recvframe_queue->lock, &irql);
-+ //spin_unlock_irqrestore(&ppending_recvframe_queue->lock, irql);
-
- //return true;
- return bPktInBuf;
-@@ -2744,7 +2669,7 @@ int recv_indicatepkt_reorder(_adapter *p
- }
- }
-
-- _enter_critical_bh(&ppending_recvframe_queue->lock, &irql);
-+ spin_lock_bh(&ppending_recvframe_queue->lock);
-
- RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_,
- ("recv_indicatepkt_reorder: indicate=%d seq=%d\n",
-@@ -2757,7 +2682,7 @@ int recv_indicatepkt_reorder(_adapter *p
- //pHTInfo->RxReorderDropCounter++;
- //ReturnRFDList(Adapter, pRfd);
- //RT_TRACE(COMP_RX_REORDER, DBG_TRACE, ("RxReorderIndicatePacket() ==> Packet Drop!!\n"));
-- //_exit_critical_ex(&ppending_recvframe_queue->lock, &irql);
-+ //spin_unlock_irqrestore(&ppending_recvframe_queue->lock, irql);
- //return _FAIL;
-
- #ifdef DBG_RX_DROP_FRAME
-@@ -2771,7 +2696,7 @@ int recv_indicatepkt_reorder(_adapter *p
- if(!enqueue_reorder_recvframe(preorder_ctrl, prframe))
- {
- //DbgPrint("recv_indicatepkt_reorder, enqueue_reorder_recvframe fail!\n");
-- //_exit_critical_ex(&ppending_recvframe_queue->lock, &irql);
-+ //spin_unlock_irqrestore(&ppending_recvframe_queue->lock, irql);
- //return _FAIL;
- #ifdef DBG_RX_DROP_FRAME
- DBG_871X("DBG_RX_DROP_FRAME %s enqueue_reorder_recvframe fail\n", __FUNCTION__);
-@@ -2794,11 +2719,11 @@ int recv_indicatepkt_reorder(_adapter *p
- if(recv_indicatepkts_in_order(padapter, preorder_ctrl, false)==true)
- {
- _set_timer(&preorder_ctrl->reordering_ctrl_timer, REORDER_WAIT_TIME);
-- _exit_critical_bh(&ppending_recvframe_queue->lock, &irql);
-+ spin_unlock_bh(&ppending_recvframe_queue->lock);
- }
- else
- {
-- _exit_critical_bh(&ppending_recvframe_queue->lock, &irql);
-+ spin_unlock_bh(&ppending_recvframe_queue->lock);
- _cancel_timer_ex(&preorder_ctrl->reordering_ctrl_timer);
- }
-
-@@ -2806,7 +2731,7 @@ int recv_indicatepkt_reorder(_adapter *p
-
- _err_exit:
-
-- _exit_critical_bh(&ppending_recvframe_queue->lock, &irql);
-+ spin_unlock_bh(&ppending_recvframe_queue->lock);
-
- return _FAIL;
- }
-@@ -2827,14 +2752,14 @@ void rtw_reordering_ctrl_timeout_handler
-
- //DBG_871X("+rtw_reordering_ctrl_timeout_handler()=>\n");
-
-- _enter_critical_bh(&ppending_recvframe_queue->lock, &irql);
-+ spin_lock_bh(&ppending_recvframe_queue->lock);
-
- if(recv_indicatepkts_in_order(padapter, preorder_ctrl, true)==true)
- {
- _set_timer(&preorder_ctrl->reordering_ctrl_timer, REORDER_WAIT_TIME);
- }
-
-- _exit_critical_bh(&ppending_recvframe_queue->lock, &irql);
-+ spin_unlock_bh(&ppending_recvframe_queue->lock);
-
- }
-
-@@ -2934,9 +2859,6 @@ static int recv_func_posthandle(_adapter
-
- DBG_COUNTER(padapter->rx_logs.core_rx_post);
-
-- // DATA FRAME
-- rtw_led_control(padapter, LED_CTL_RX);
--
- prframe = decryptor(padapter, prframe);
- if (prframe == NULL) {
- RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("decryptor: drop pkt\n"));
-@@ -2971,10 +2893,6 @@ static int recv_func_posthandle(_adapter
-
- count_rx_stats(padapter, prframe, NULL);
-
--#ifdef CONFIG_WAPI_SUPPORT
-- rtw_wapi_update_info(padapter, prframe);
--#endif
--
- ret = process_recv_indicatepkts(padapter, prframe);
- if (ret != _SUCCESS)
- {
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_rf.c linux/3rdparty/rtl8723bs/core/rtw_rf.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_rf.c 2015-05-10 14:36:05.676667990 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_rf.c 2015-05-07 17:46:55.000000000 +0300
-@@ -69,23 +69,3 @@ u32 rtw_ch2freq(u32 channel)
-
- return freq;
- }
--
--u32 rtw_freq2ch(u32 freq)
--{
-- u8 i;
-- u32 ch = 0;
--
-- for (i = 0; i < ch_freq_map_num; i++)
-- {
-- if (freq == ch_freq_map[i].frequency)
-- {
-- ch = ch_freq_map[i].channel;
-- break;
-- }
-- }
-- if (i == ch_freq_map_num)
-- ch = 1;
--
-- return ch;
--}
--
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_security.c linux/3rdparty/rtl8723bs/core/rtw_security.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_security.c 2015-05-10 14:36:05.677668002 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_security.c 2015-05-07 17:46:55.000000000 +0300
-@@ -35,11 +35,7 @@ static const char *_security_type_str[]
-
- const char *security_type_str(u8 value)
- {
--#ifdef CONFIG_IEEE80211W
- if (value <= _BIP_)
--#else
-- if (value <= _WEP_WPA_MIXED_)
--#endif
- return _security_type_str[value];
- return NULL;
- }
-@@ -1259,11 +1255,9 @@ _func_enter_;
- if (qc_exists && a4_exists) mic_iv[1] = mpdu[30] & 0x0f; /* QoS_TC */
- if (qc_exists && !a4_exists) mic_iv[1] = mpdu[24] & 0x0f; /* mute bits 7-4 */
- if (!qc_exists) mic_iv[1] = 0x00;
--#ifdef CONFIG_IEEE80211W
- //802.11w management frame should set management bit(4)
- if(frtype == WIFI_MGT_TYPE)
- mic_iv[1] |= BIT(4);
--#endif //CONFIG_IEEE80211W
- for (i = 2; i < 8; i++)
- mic_iv[i] = mpdu[i + 8]; /* mic_iv[2:7] = A2[0:5] = mpdu[10:15] */
- #ifdef CONSISTENT_PN_ORDER
-@@ -1295,14 +1289,13 @@ static void construct_mic_header1(
- _func_enter_;
- mic_header1[0] = (u8)((header_length - 2) / 256);
- mic_header1[1] = (u8)((header_length - 2) % 256);
--#ifdef CONFIG_IEEE80211W
-+
- //802.11w management frame don't AND subtype bits 4,5,6 of frame control field
- if(frtype == WIFI_MGT_TYPE)
- mic_header1[2] = mpdu[0];
- else
--#endif //CONFIG_IEEE80211W
- mic_header1[2] = mpdu[0] & 0xcf; /* Mute CF poll & CF ack bits */
--
-+
- mic_header1[3] = mpdu[1] & 0xc7; /* Mute retry, more data and pwr mgt bits */
- mic_header1[4] = mpdu[4]; /* A1 */
- mic_header1[5] = mpdu[5];
-@@ -1399,11 +1392,9 @@ _func_enter_;
- ctr_preload[1] = mpdu[30] & 0x0f; /* QoC_Control */
- if (qc_exists && !a4_exists)
- ctr_preload[1] = mpdu[24] & 0x0f;
--#ifdef CONFIG_IEEE80211W
- //802.11w management frame should set management bit(4)
- if(frtype == WIFI_MGT_TYPE)
- ctr_preload[1] |= BIT(4);
--#endif //CONFIG_IEEE80211W
- for (i = 2; i < 8; i++)
- ctr_preload[i] = mpdu[i + 8]; /* ctr_preload[2:7] = A2[0:5] = mpdu[10:15] */
- #ifdef CONSISTENT_PN_ORDER
-@@ -2129,7 +2120,6 @@ exit:
- return res;
- }
-
--#ifdef CONFIG_IEEE80211W
- u32 rtw_BIP_verify(_adapter *padapter, u8 *precvframe)
- {
- struct rx_pkt_attrib *pattrib = &((union recv_frame *)precvframe)->u.hdr.attrib;
-@@ -2226,10 +2216,9 @@ u32 rtw_BIP_verify(_adapter *padapter, u
- res = RTW_RX_HANDLED;
- BIP_exit:
-
-- rtw_mfree(BIP_AAD, ori_len);
-+ kfree(BIP_AAD);
- return res;
- }
--#endif //CONFIG_IEEE80211W
-
- /* AES tables*/
- const u32 Te0[256] = {
-@@ -2509,7 +2498,7 @@ static void gf_mulx(u8 *pad)
- static void aes_encrypt_deinit(void *ctx)
- {
- memset(ctx, 0, AES_PRIV_SIZE);
-- rtw_mfree(ctx, AES_PRIV_SIZE);
-+ kfree(ctx);
- }
-
-
-@@ -2604,30 +2593,6 @@ int omac1_aes_128(u8 *key, u8 *data, siz
- return omac1_aes_128_vector(key, 1, &data, &data_len, mac);
- }
-
--void rtw_use_tkipkey_handler(RTW_TIMER_HDL_ARGS)
--{
-- _adapter *padapter = (_adapter *)FunctionContext;
--
--_func_enter_;
--
-- RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("^^^rtw_use_tkipkey_handler ^^^\n"));
--
--/*
-- if(padapter->bDriverStopped ||padapter->bSurpriseRemoved){
-- RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("^^^rtw_use_tkipkey_handler (padapter->bDriverStopped %d)(padapter->bSurpriseRemoved %d)^^^\n",padapter->bDriverStopped,padapter->bSurpriseRemoved));
--
-- return;
-- }
-- */
--
-- padapter->securitypriv.busetkipkey=true;
--
-- RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("^^^rtw_use_tkipkey_handler padapter->securitypriv.busetkipkey=%d^^^\n",padapter->securitypriv.busetkipkey));
--
--_func_exit_;
--
--}
--
- /* Restore HW wep key setting according to key_mask */
- void rtw_sec_restore_wep_key(_adapter *adapter)
- {
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_sta_mgt.c linux/3rdparty/rtl8723bs/core/rtw_sta_mgt.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_sta_mgt.c 2015-05-10 14:36:05.678668013 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_sta_mgt.c 2015-05-07 17:46:55.000000000 +0300
-@@ -30,23 +30,21 @@ _func_enter_;
- memset((u8 *)psta, 0, sizeof (struct sta_info));
-
- spin_lock_init(&psta->lock);
-- _rtw_init_listhead(&psta->list);
-- _rtw_init_listhead(&psta->hash_list);
-- //_rtw_init_listhead(&psta->asoc_list);
-- //_rtw_init_listhead(&psta->sleep_list);
-- //_rtw_init_listhead(&psta->wakeup_list);
-+ INIT_LIST_HEAD(&psta->list);
-+ INIT_LIST_HEAD(&psta->hash_list);
-+ //INIT_LIST_HEAD(&psta->asoc_list);
-+ //INIT_LIST_HEAD(&psta->sleep_list);
-+ //INIT_LIST_HEAD(&psta->wakeup_list);
-
- _rtw_init_queue(&psta->sleep_q);
- psta->sleepq_len = 0;
-
- _rtw_init_sta_xmit_priv(&psta->sta_xmitpriv);
- _rtw_init_sta_recv_priv(&psta->sta_recvpriv);
--
--#ifdef CONFIG_AP_MODE
-
-- _rtw_init_listhead(&psta->asoc_list);
-+ INIT_LIST_HEAD(&psta->asoc_list);
-
-- _rtw_init_listhead(&psta->auth_list);
-+ INIT_LIST_HEAD(&psta->auth_list);
-
- psta->expire_to = 0;
-
-@@ -56,24 +54,17 @@ _func_enter_;
-
- psta->bpairwise_key_installed = false;
-
--
--#ifdef CONFIG_NATIVEAP_MLME
- psta->nonerp_set = 0;
- psta->no_short_slot_time_set = 0;
- psta->no_short_preamble_set = 0;
- psta->no_ht_gf_set = 0;
- psta->no_ht_set = 0;
- psta->ht_20mhz_set = 0;
--#endif
-
--#ifdef CONFIG_TX_MCAST2UNI
- psta->under_exist_checking = 0;
--#endif // CONFIG_TX_MCAST2UNI
--
-+
- psta->keep_alive_trycnt = 0;
-
--#endif // CONFIG_AP_MODE
--
- _func_exit_;
-
- }
-@@ -85,7 +76,7 @@ u32 _rtw_init_sta_priv(struct sta_priv *
-
- _func_enter_;
-
-- pstapriv->pallocated_stainfo_buf = rtw_zvmalloc (sizeof(struct sta_info) * NUM_STA+ 4);
-+ pstapriv->pallocated_stainfo_buf = vzalloc (sizeof(struct sta_info) * NUM_STA+ 4);
-
- if(!pstapriv->pallocated_stainfo_buf)
- return _FAIL;
-@@ -109,22 +100,18 @@ _func_enter_;
- {
- _rtw_init_stainfo(psta);
-
-- _rtw_init_listhead(&(pstapriv->sta_hash[i]));
-+ INIT_LIST_HEAD(&(pstapriv->sta_hash[i]));
-
-- rtw_list_insert_tail(&psta->list, get_list_head(&pstapriv->free_sta_queue));
-+ list_add_tail(&psta->list, get_list_head(&pstapriv->free_sta_queue));
-
- psta++;
- }
-
--
--
--#ifdef CONFIG_AP_MODE
--
- pstapriv->sta_dz_bitmap = 0;
- pstapriv->tim_bitmap = 0;
-
-- _rtw_init_listhead(&pstapriv->asoc_list);
-- _rtw_init_listhead(&pstapriv->auth_list);
-+ INIT_LIST_HEAD(&pstapriv->asoc_list);
-+ INIT_LIST_HEAD(&pstapriv->auth_list);
- spin_lock_init(&pstapriv->asoc_list_lock);
- spin_lock_init(&pstapriv->auth_list_lock);
- pstapriv->asoc_list_cnt = 0;
-@@ -136,9 +123,7 @@ _func_enter_;
- //pstapriv->expire_to = 30;// 30*2 = 60 sec = 1 min, expire after no any traffic.
- pstapriv->expire_to = 3; // 3*2 = 6 sec
- pstapriv->max_num_sta = NUM_STA;
--
--#endif
--
-+
- _func_exit_;
-
- return _SUCCESS;
-@@ -164,8 +149,8 @@ inline struct sta_info *rtw_get_stainfo_
- }
-
- // this function is used to free the memory of lock || sema for all stainfos
--void rtw_mfree_all_stainfo(struct sta_priv *pstapriv );
--void rtw_mfree_all_stainfo(struct sta_priv *pstapriv )
-+void kfree_all_stainfo(struct sta_priv *pstapriv );
-+void kfree_all_stainfo(struct sta_priv *pstapriv )
- {
- _irqL irqL;
- _list *plist, *phead;
-@@ -173,31 +158,29 @@ void rtw_mfree_all_stainfo(struct sta_pr
-
- _func_enter_;
-
-- _enter_critical_bh(&pstapriv->sta_hash_lock, &irqL);
-+ spin_lock_bh(&pstapriv->sta_hash_lock);
-
- phead = get_list_head(&pstapriv->free_sta_queue);
- plist = get_next(phead);
-
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ while (phead != plist)
- {
- psta = LIST_CONTAINOR(plist, struct sta_info ,list);
- plist = get_next(plist);
- }
-
-- _exit_critical_bh(&pstapriv->sta_hash_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->sta_hash_lock);
-
- _func_exit_;
-
- }
-
--void rtw_mfree_sta_priv_lock(struct sta_priv *pstapriv);
--void rtw_mfree_sta_priv_lock(struct sta_priv *pstapriv)
-+void kfree_sta_priv_lock(struct sta_priv *pstapriv);
-+void kfree_sta_priv_lock(struct sta_priv *pstapriv)
- {
--#ifdef CONFIG_AP_MODE
- struct wlan_acl_pool *pacl_list = &pstapriv->acl_list;
--#endif
-
-- rtw_mfree_all_stainfo(pstapriv); //be done before free sta_hash_lock
-+ kfree_all_stainfo(pstapriv); //be done before free sta_hash_lock
- }
-
- u32 _rtw_free_sta_priv(struct sta_priv *pstapriv)
-@@ -212,13 +195,13 @@ _func_enter_;
- if(pstapriv){
-
- /* delete all reordering_ctrl_timer */
-- _enter_critical_bh(&pstapriv->sta_hash_lock, &irqL);
-+ spin_lock_bh(&pstapriv->sta_hash_lock);
- for(index = 0; index < NUM_STA; index++)
- {
- phead = &(pstapriv->sta_hash[index]);
- plist = get_next(phead);
-
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ while (phead != plist)
- {
- int i;
- psta = LIST_CONTAINOR(plist, struct sta_info ,hash_list);
-@@ -231,13 +214,13 @@ _func_enter_;
- }
- }
- }
-- _exit_critical_bh(&pstapriv->sta_hash_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->sta_hash_lock);
- /*===============================*/
-
-- rtw_mfree_sta_priv_lock(pstapriv);
-+ kfree_sta_priv_lock(pstapriv);
-
- if(pstapriv->pallocated_stainfo_buf) {
-- rtw_vmfree(pstapriv->pallocated_stainfo_buf, sizeof(struct sta_info)*NUM_STA+4);
-+ vfree(pstapriv->pallocated_stainfo_buf);
- }
- }
-
-@@ -263,12 +246,12 @@ _func_enter_;
-
- pfree_sta_queue = &pstapriv->free_sta_queue;
-
-- //_enter_critical_bh(&(pfree_sta_queue->lock), &irqL);
-- _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);
-- if (_rtw_queue_empty(pfree_sta_queue) == true)
-+ //spin_lock_bh(&(pfree_sta_queue->lock));
-+ spin_lock_bh(&(pstapriv->sta_hash_lock));
-+ if (list_empty(&pfree_sta_queue->queue))
- {
-- //_exit_critical_bh(&(pfree_sta_queue->lock), &irqL);
-- _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);
-+ //spin_unlock_bh(&(pfree_sta_queue->lock));
-+ spin_unlock_bh(&(pstapriv->sta_hash_lock));
- psta = NULL;
- return psta;
- }
-@@ -276,9 +259,9 @@ _func_enter_;
- {
- psta = LIST_CONTAINOR(get_next(&pfree_sta_queue->queue), struct sta_info, list);
-
-- rtw_list_delete(&(psta->list));
-+ list_del_init(&(psta->list));
-
-- //_exit_critical_bh(&(pfree_sta_queue->lock), &irqL);
-+ //spin_unlock_bh(&(pfree_sta_queue->lock));
-
- tmp_aid = psta->aid;
-
-@@ -299,13 +282,13 @@ _func_enter_;
- }
- phash_list = &(pstapriv->sta_hash[index]);
-
-- //_enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);
-+ //spin_lock_bh(&(pstapriv->sta_hash_lock));
-
-- rtw_list_insert_tail(&psta->hash_list, phash_list);
-+ list_add_tail(&psta->hash_list, phash_list);
-
- pstapriv->asoc_sta_count ++ ;
-
-- //_exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);
-+ //spin_unlock_bh(&(pstapriv->sta_hash_lock));
-
- // Commented by Albert 2009/08/13
- // For the SMC router, the sequence number of first packet of WPS handshake will be 0.
-@@ -360,7 +343,7 @@ _func_enter_;
-
- exit:
-
-- _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);
-+ spin_unlock_bh(&(pstapriv->sta_hash_lock));
-
- _func_exit_;
-
-@@ -389,63 +372,63 @@ _func_enter_;
- goto exit;
-
-
-- _enter_critical_bh(&psta->lock, &irqL0);
-+ spin_lock_bh(&psta->lock);
- psta->state &= ~_FW_LINKED;
-- _exit_critical_bh(&psta->lock, &irqL0);
-+ spin_unlock_bh(&psta->lock);
-
- pfree_sta_queue = &pstapriv->free_sta_queue;
-
-
- pstaxmitpriv = &psta->sta_xmitpriv;
-
-- //rtw_list_delete(&psta->sleep_list);
-+ //list_del_init(&psta->sleep_list);
-
-- //rtw_list_delete(&psta->wakeup_list);
-+ //list_del_init(&psta->wakeup_list);
-
-- _enter_critical_bh(&pxmitpriv->lock, &irqL0);
-+ spin_lock_bh(&pxmitpriv->lock);
-
- rtw_free_xmitframe_queue(pxmitpriv, &psta->sleep_q);
- psta->sleepq_len = 0;
-
- //vo
-- //_enter_critical_bh(&(pxmitpriv->vo_pending.lock), &irqL0);
-+ //spin_lock_bh(&(pxmitpriv->vo_pending.lock));
- rtw_free_xmitframe_queue( pxmitpriv, &pstaxmitpriv->vo_q.sta_pending);
-- rtw_list_delete(&(pstaxmitpriv->vo_q.tx_pending));
-+ list_del_init(&(pstaxmitpriv->vo_q.tx_pending));
- phwxmit = pxmitpriv->hwxmits;
- phwxmit->accnt -= pstaxmitpriv->vo_q.qcnt;
- pstaxmitpriv->vo_q.qcnt = 0;
-- //_exit_critical_bh(&(pxmitpriv->vo_pending.lock), &irqL0);
-+ //spin_unlock_bh(&(pxmitpriv->vo_pending.lock));
-
- //vi
-- //_enter_critical_bh(&(pxmitpriv->vi_pending.lock), &irqL0);
-+ //spin_lock_bh(&(pxmitpriv->vi_pending.lock));
- rtw_free_xmitframe_queue( pxmitpriv, &pstaxmitpriv->vi_q.sta_pending);
-- rtw_list_delete(&(pstaxmitpriv->vi_q.tx_pending));
-+ list_del_init(&(pstaxmitpriv->vi_q.tx_pending));
- phwxmit = pxmitpriv->hwxmits+1;
- phwxmit->accnt -= pstaxmitpriv->vi_q.qcnt;
- pstaxmitpriv->vi_q.qcnt = 0;
-- //_exit_critical_bh(&(pxmitpriv->vi_pending.lock), &irqL0);
-+ //spin_unlock_bh(&(pxmitpriv->vi_pending.lock));
-
- //be
-- //_enter_critical_bh(&(pxmitpriv->be_pending.lock), &irqL0);
-+ //spin_lock_bh(&(pxmitpriv->be_pending.lock));
- rtw_free_xmitframe_queue( pxmitpriv, &pstaxmitpriv->be_q.sta_pending);
-- rtw_list_delete(&(pstaxmitpriv->be_q.tx_pending));
-+ list_del_init(&(pstaxmitpriv->be_q.tx_pending));
- phwxmit = pxmitpriv->hwxmits+2;
- phwxmit->accnt -= pstaxmitpriv->be_q.qcnt;
- pstaxmitpriv->be_q.qcnt = 0;
-- //_exit_critical_bh(&(pxmitpriv->be_pending.lock), &irqL0);
-+ //spin_unlock_bh(&(pxmitpriv->be_pending.lock));
-
- //bk
-- //_enter_critical_bh(&(pxmitpriv->bk_pending.lock), &irqL0);
-+ //spin_lock_bh(&(pxmitpriv->bk_pending.lock));
- rtw_free_xmitframe_queue( pxmitpriv, &pstaxmitpriv->bk_q.sta_pending);
-- rtw_list_delete(&(pstaxmitpriv->bk_q.tx_pending));
-+ list_del_init(&(pstaxmitpriv->bk_q.tx_pending));
- phwxmit = pxmitpriv->hwxmits+3;
- phwxmit->accnt -= pstaxmitpriv->bk_q.qcnt;
- pstaxmitpriv->bk_q.qcnt = 0;
-- //_exit_critical_bh(&(pxmitpriv->bk_pending.lock), &irqL0);
-+ //spin_unlock_bh(&(pxmitpriv->bk_pending.lock));
-
-- _exit_critical_bh(&pxmitpriv->lock, &irqL0);
-+ spin_unlock_bh(&pxmitpriv->lock);
-
-- rtw_list_delete(&psta->hash_list);
-+ list_del_init(&psta->hash_list);
- RT_TRACE(_module_rtl871x_sta_mgt_c_,_drv_err_,("\n free number_%d stainfo with hwaddr = 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x \n",pstapriv->asoc_sta_count , psta->hwaddr[0], psta->hwaddr[1], psta->hwaddr[2],psta->hwaddr[3],psta->hwaddr[4],psta->hwaddr[5]));
- pstapriv->asoc_sta_count --;
-
-@@ -472,23 +455,23 @@ _func_enter_;
-
- ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue;
-
-- _enter_critical_bh(&ppending_recvframe_queue->lock, &irqL);
-+ spin_lock_bh(&ppending_recvframe_queue->lock);
-
- phead = get_list_head(ppending_recvframe_queue);
- plist = get_next(phead);
-
-- while(!rtw_is_list_empty(phead))
-+ while(!list_empty(phead))
- {
- prframe = LIST_CONTAINOR(plist, union recv_frame, u);
-
- plist = get_next(plist);
-
-- rtw_list_delete(&(prframe->u.hdr.list));
-+ list_del_init(&(prframe->u.hdr.list));
-
- rtw_free_recvframe(prframe, pfree_recv_queue);
- }
-
-- _exit_critical_bh(&ppending_recvframe_queue->lock, &irqL);
-+ spin_unlock_bh(&ppending_recvframe_queue->lock);
-
- }
-
-@@ -499,19 +482,17 @@ _func_enter_;
- //release mac id for non-bc/mc station,
- rtw_release_macid(pstapriv->padapter, psta);
-
--#ifdef CONFIG_AP_MODE
--
- /*
-- _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL0);
-- rtw_list_delete(&psta->asoc_list);
-- _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL0);
-+ spin_lock_bh(&pstapriv->asoc_list_lock);
-+ list_del_init(&psta->asoc_list);
-+ spin_unlock_bh(&pstapriv->asoc_list_lock);
- */
-- _enter_critical_bh(&pstapriv->auth_list_lock, &irqL0);
-- if (!rtw_is_list_empty(&psta->auth_list)) {
-- rtw_list_delete(&psta->auth_list);
-+ spin_lock_bh(&pstapriv->auth_list_lock);
-+ if (!list_empty(&psta->auth_list)) {
-+ list_del_init(&psta->auth_list);
- pstapriv->auth_list_cnt--;
- }
-- _exit_critical_bh(&pstapriv->auth_list_lock, &irqL0);
-+ spin_unlock_bh(&pstapriv->auth_list_lock);
-
- psta->expire_to = 0;
- psta->sleepq_ac_len = 0;
-@@ -525,30 +506,20 @@ _func_enter_;
-
- psta->has_legacy_ac = 0;
-
--#ifdef CONFIG_NATIVEAP_MLME
--
- pstapriv->sta_dz_bitmap &=~BIT(psta->aid);
- pstapriv->tim_bitmap &=~BIT(psta->aid);
-
-- //rtw_indicate_sta_disassoc_event(padapter, psta);
--
- if ((psta->aid >0)&&(pstapriv->sta_aid[psta->aid - 1] == psta))
- {
- pstapriv->sta_aid[psta->aid - 1] = NULL;
- psta->aid = 0;
-- }
--
--#endif // CONFIG_NATIVEAP_MLME
-+ }
-
--#ifdef CONFIG_TX_MCAST2UNI
- psta->under_exist_checking = 0;
--#endif // CONFIG_TX_MCAST2UNI
--
--#endif // CONFIG_AP_MODE
-
-- //_enter_critical_bh(&(pfree_sta_queue->lock), &irqL0);
-- rtw_list_insert_tail(&psta->list, get_list_head(pfree_sta_queue));
-- //_exit_critical_bh(&(pfree_sta_queue->lock), &irqL0);
-+ //spin_lock_bh(&(pfree_sta_queue->lock));
-+ list_add_tail(&psta->list, get_list_head(pfree_sta_queue));
-+ //spin_unlock_bh(&(pfree_sta_queue->lock));
-
- exit:
-
-@@ -573,14 +544,14 @@ _func_enter_;
- if(pstapriv->asoc_sta_count==1)
- goto exit;
-
-- _enter_critical_bh(&pstapriv->sta_hash_lock, &irqL);
-+ spin_lock_bh(&pstapriv->sta_hash_lock);
-
- for(index=0; index< NUM_STA; index++)
- {
- phead = &(pstapriv->sta_hash[index]);
- plist = get_next(phead);
-
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ while (phead != plist)
- {
- psta = LIST_CONTAINOR(plist, struct sta_info ,hash_list);
-
-@@ -592,7 +563,7 @@ _func_enter_;
- }
- }
-
-- _exit_critical_bh(&pstapriv->sta_hash_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->sta_hash_lock);
-
- exit:
-
-@@ -632,13 +603,13 @@ _func_enter_;
-
- index = wifi_mac_hash(addr);
-
-- _enter_critical_bh(&pstapriv->sta_hash_lock, &irqL);
-+ spin_lock_bh(&pstapriv->sta_hash_lock);
-
- phead = &(pstapriv->sta_hash[index]);
- plist = get_next(phead);
-
-
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ while (phead != plist)
- {
-
- psta = LIST_CONTAINOR(plist, struct sta_info, hash_list);
-@@ -651,7 +622,7 @@ _func_enter_;
- plist = get_next(plist);
- }
-
-- _exit_critical_bh(&pstapriv->sta_hash_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->sta_hash_lock);
- _func_exit_;
- return psta;
-
-@@ -683,13 +654,13 @@ _func_enter_;
-
- ptxservq= &(psta->sta_xmitpriv.be_q);
-
--/*
-- _enter_critical(&pstapending->lock, &irqL0);
-+/* DEADCODE
-+ spin_lock_irqsave(&pstapending->lock, irqL0);
-
- if (rtw_is_list_empty(&ptxservq->tx_pending))
-- rtw_list_insert_tail(&ptxservq->tx_pending, get_list_head(pstapending));
-+ list_add_tail(&ptxservq->tx_pending, get_list_head(pstapending));
-
-- _exit_critical(&pstapending->lock, &irqL0);
-+ spin_unlock_irqrestore(&pstapending->lock, irqL0);
- */
-
- exit:
-@@ -714,7 +685,6 @@ _func_exit_;
- u8 rtw_access_ctrl(_adapter *padapter, u8 *mac_addr)
- {
- u8 res = true;
--#ifdef CONFIG_AP_MODE
- _irqL irqL;
- _list *plist, *phead;
- struct rtw_wlan_acl_node *paclnode;
-@@ -723,10 +693,10 @@ u8 rtw_access_ctrl(_adapter *padapter, u
- struct wlan_acl_pool *pacl_list = &pstapriv->acl_list;
- _queue *pacl_node_q =&pacl_list->acl_node_q;
-
-- _enter_critical_bh(&(pacl_node_q->lock), &irqL);
-+ spin_lock_bh(&(pacl_node_q->lock));
- phead = get_list_head(pacl_node_q);
- plist = get_next(phead);
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ while (phead != plist)
- {
- paclnode = LIST_CONTAINOR(plist, struct rtw_wlan_acl_node, list);
- plist = get_next(plist);
-@@ -740,7 +710,7 @@ u8 rtw_access_ctrl(_adapter *padapter, u
- }
- }
- }
-- _exit_critical_bh(&(pacl_node_q->lock), &irqL);
-+ spin_unlock_bh(&(pacl_node_q->lock));
-
-
- if(pacl_list->mode == 1)//accept unless in deny list
-@@ -755,10 +725,7 @@ u8 rtw_access_ctrl(_adapter *padapter, u
- {
- res = true;
- }
--
--#endif
-
- return res;
--
- }
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_wapi.c linux/3rdparty/rtl8723bs/core/rtw_wapi.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_wapi.c 2015-05-10 14:36:05.678668013 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_wapi.c 1970-01-01 02:00:00.000000000 +0200
-@@ -1,1047 +0,0 @@
--#ifdef CONFIG_WAPI_SUPPORT
--
--#include
--#include
--#include
--#include
--
--
--u32 wapi_debug_component =
--// WAPI_INIT |
--// WAPI_API |
--// WAPI_TX |
--// WAPI_RX |
-- WAPI_ERR ; //always open err flags on
--
--void WapiFreeAllStaInfo(_adapter *padapter)
--{
-- PRT_WAPI_T pWapiInfo;
-- PRT_WAPI_STA_INFO pWapiStaInfo;
-- PRT_WAPI_BKID pWapiBkid;
--
-- WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__);
-- pWapiInfo = &padapter->wapiInfo;
--
-- //Pust to Idle List
-- rtw_wapi_return_all_sta_info(padapter);
--
-- //Sta Info List
-- while(!list_empty(&(pWapiInfo->wapiSTAIdleList)))
-- {
-- pWapiStaInfo = (PRT_WAPI_STA_INFO)list_entry(pWapiInfo->wapiSTAIdleList.next, RT_WAPI_STA_INFO, list);
-- list_del_init(&pWapiStaInfo->list);
-- }
--
-- //BKID List
-- while(!list_empty(&(pWapiInfo->wapiBKIDIdleList)))
-- {
-- pWapiBkid = (PRT_WAPI_BKID)list_entry(pWapiInfo->wapiBKIDIdleList.next, RT_WAPI_BKID, list);
-- list_del_init(&pWapiBkid->list);
-- }
-- WAPI_TRACE(WAPI_INIT, "<=========== %s\n", __FUNCTION__);
-- return;
--}
--
--void WapiSetIE(_adapter *padapter)
--{
-- PRT_WAPI_T pWapiInfo = &(padapter->wapiInfo);
-- //PRT_WAPI_BKID pWapiBkid;
-- u16 protocolVer = 1;
-- u16 akmCnt = 1;
-- u16 suiteCnt = 1;
-- u16 capability = 0;
-- u8 OUI[3];
--
-- OUI[0] = 0x00;
-- OUI[1] = 0x14;
-- OUI[2] = 0x72;
--
-- pWapiInfo->wapiIELength = 0;
--//protocol version
-- memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength, &protocolVer, 2);
-- pWapiInfo->wapiIELength +=2;
--//akm
-- memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength, &akmCnt, 2);
-- pWapiInfo->wapiIELength +=2;
--
-- if(pWapiInfo->bWapiPSK){
-- memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength,OUI, 3);
-- pWapiInfo->wapiIELength +=3;
-- pWapiInfo->wapiIE[pWapiInfo->wapiIELength] = 0x2;
-- pWapiInfo->wapiIELength +=1;
-- }else{
-- memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength,OUI, 3);
-- pWapiInfo->wapiIELength +=3;
-- pWapiInfo->wapiIE[pWapiInfo->wapiIELength] = 0x1;
-- pWapiInfo->wapiIELength +=1;
-- }
--
--//usk
-- memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength, &suiteCnt, 2);
-- pWapiInfo->wapiIELength +=2;
-- memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength,OUI, 3);
-- pWapiInfo->wapiIELength +=3;
-- pWapiInfo->wapiIE[pWapiInfo->wapiIELength] = 0x1;
-- pWapiInfo->wapiIELength +=1;
--
--//msk
-- memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength,OUI, 3);
-- pWapiInfo->wapiIELength +=3;
-- pWapiInfo->wapiIE[pWapiInfo->wapiIELength] = 0x1;
-- pWapiInfo->wapiIELength +=1;
--
--//Capbility
-- memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength, &capability, 2);
-- pWapiInfo->wapiIELength +=2;
--}
--
--
--/* PN1 > PN2, return 1,
-- * else return 0.
-- */
--u32 WapiComparePN(u8 *PN1, u8 *PN2)
--{
-- char i;
--
-- if ((NULL == PN1) || (NULL == PN2))
-- return 1;
--
-- // overflow case
-- if ((PN2[15] - PN1[15]) & 0x80)
-- return 1;
--
-- for (i=16; i>0; i--)
-- {
-- if(PN1[i-1] == PN2[i-1])
-- continue;
-- else if(PN1[i-1] > PN2[i-1])
-- return 1;
-- else
-- return 0;
-- }
--
-- return 0;
--}
--
--u8
--WapiGetEntryForCamWrite(_adapter *padapter,u8 *pMacAddr,u8 KID,bool IsMsk)
--{
-- PRT_WAPI_T pWapiInfo=NULL;
-- //PRT_WAPI_CAM_ENTRY pEntry=NULL;
-- u8 i=0;
-- u8 ret = 0xff;
--
-- WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
--
-- pWapiInfo = &padapter->wapiInfo;
--
-- //exist?
-- for(i=0;iwapiCamEntry[i].IsUsed
-- && (!memcmp(pMacAddr, pWapiInfo->wapiCamEntry[i].PeerMacAddr, ETH_ALEN))
-- && pWapiInfo->wapiCamEntry[i].keyidx == KID
-- && pWapiInfo->wapiCamEntry[i].type == IsMsk)
-- {
-- ret = pWapiInfo->wapiCamEntry[i].entry_idx; //cover it
-- break;
-- }
-- }
--
-- if(i == WAPI_CAM_ENTRY_NUM) //not found
-- {
-- for(i=0;iwapiCamEntry[i].IsUsed == 0)
-- {
-- pWapiInfo->wapiCamEntry[i].IsUsed = 1;
-- pWapiInfo->wapiCamEntry[i].type = IsMsk;
-- pWapiInfo->wapiCamEntry[i].keyidx = KID;
-- memcpy(pWapiInfo->wapiCamEntry[i].PeerMacAddr, pMacAddr,ETH_ALEN);
-- ret = pWapiInfo->wapiCamEntry[i].entry_idx;
-- break;
-- }
-- }
-- }
--
-- WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__);
-- return ret;
--
--/*
-- if(RTIsListEmpty(&pWapiInfo->wapiCamIdleList)){
-- RT_TRACE(COMP_SEC,DBG_LOUD,("No Entry for wapi!!!\n"));
-- return 0;
-- }
--
-- pEntry = (PRT_WAPI_CAM_ENTRY)RTRemoveHeadList(&pWapiInfo->wapiCamIdleList);
-- RTInsertTailList(&pWapiInfo->wapiCamUsedList, &pEntry->list);
--
-- RT_TRACE(COMP_SEC,DBG_LOUD,("<====WapiGetCamEntry(),Get Entry Idx:%d.but we just return 4 for test\n",pEntry->entry_idx));
--
-- return pEntry->entry_idx;*/
--}
--
--u8 WapiGetEntryForCamClear(_adapter *padapter,u8 *pPeerMac,u8 keyid,u8 IsMsk)
--{
-- PRT_WAPI_T pWapiInfo=NULL;
-- u8 i=0;
--
-- WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
--
-- pWapiInfo = &padapter->wapiInfo;
--
-- for(i=0;iwapiCamEntry[i].IsUsed
-- && (!memcmp(pPeerMac, pWapiInfo->wapiCamEntry[i].PeerMacAddr, ETH_ALEN))
-- && pWapiInfo->wapiCamEntry[i].keyidx == keyid
-- && pWapiInfo->wapiCamEntry[i].type == IsMsk)
-- {
-- pWapiInfo->wapiCamEntry[i].IsUsed = 0;
-- pWapiInfo->wapiCamEntry[i].keyidx = 2;
-- memset(pWapiInfo->wapiCamEntry[i].PeerMacAddr,0,ETH_ALEN);
--
-- WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__);
-- return pWapiInfo->wapiCamEntry[i].entry_idx;
-- }
-- }
--
-- WAPI_TRACE(WAPI_API,"<====WapiGetReturnCamEntry(), No this cam entry.\n");
-- return 0xff;
--/*
-- if(RTIsListEmpty(&pWapiInfo->wapiCamUsedList)){
-- RT_TRACE(COMP_SEC,DBG_LOUD,("No Entry for wapi!!!\n"));
-- return false;
-- }
--
-- pList = &pWapiInfo->wapiCamUsedList;
-- while(pList->Flink != &pWapiInfo->wapiCamUsedList)
-- {
-- pEntry = (PRT_WAPI_CAM_ENTRY)pList->Flink;
-- if(PlatformCompareMemory(pPeerMac,pEntry->PeerMacAddr, ETHER_ADDRLEN)== 0
-- && keyid == pEntry->keyidx)
-- {
-- RTRemoveEntryList(pList);
-- RTInsertHeadList(&pWapiInfo->wapiCamIdleList, pList);
-- return pEntry->entry_idx;
-- }
-- pList = pList->Flink;
-- }
--
-- return 0;
--*/
--}
--
--void
--WapiResetAllCamEntry(_adapter *padapter)
--{
-- PRT_WAPI_T pWapiInfo;
-- int i;
--
-- WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
--
-- pWapiInfo = &padapter->wapiInfo;
--
-- for (i=0;iwapiCamEntry[i].PeerMacAddr, 0, ETH_ALEN);
-- pWapiInfo->wapiCamEntry[i].IsUsed = 0;
-- pWapiInfo->wapiCamEntry[i].keyidx = 2; //invalid
-- pWapiInfo->wapiCamEntry[i].entry_idx = 4+i*2;
-- }
--
-- WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__);
--
-- return;
--}
--
--u8 WapiWriteOneCamEntry(
-- _adapter *padapter,
-- u8 *pMacAddr,
-- u8 KeyId,
-- u8 EntryId,
-- u8 EncAlg,
-- u8 bGroupKey,
-- u8 *pKey
--)
--{
-- u8 retVal = 0;
-- u16 usConfig = 0;
--
-- WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
--
-- if(EntryId >= 32)
-- {
-- WAPI_TRACE(WAPI_ERR, "<=== CamAddOneEntry(): ulKeyId exceed!\n");
-- return retVal;
-- }
--
-- usConfig=usConfig|(0x01<<15)|((u16)(EncAlg)<<2)|(KeyId);
--
-- if(EncAlg == _SMS4_ )
-- {
-- if(bGroupKey == 1)
-- usConfig |= (0x01<<6);
-- if((EntryId % 2)==1) // ==0 sec key; == 1mic key
-- usConfig |= (0x01<<5);
-- }
--
-- write_cam(padapter, EntryId, usConfig, pMacAddr, pKey);
--
-- WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
-- return 1;
--}
--
--void rtw_wapi_init(_adapter *padapter)
--{
-- PRT_WAPI_T pWapiInfo;
-- int i;
--
-- WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__);
-- RT_ASSERT_RET(padapter);
--
-- if (!padapter->WapiSupport)
-- {
-- WAPI_TRACE(WAPI_INIT, "<========== %s, WAPI not supported!\n", __FUNCTION__);
-- return;
-- }
--
-- pWapiInfo = &padapter->wapiInfo;
-- pWapiInfo->bWapiEnable = false;
--
-- //Init BKID List
-- INIT_LIST_HEAD(&pWapiInfo->wapiBKIDIdleList);
-- INIT_LIST_HEAD(&pWapiInfo->wapiBKIDStoreList);
-- for(i=0;iwapiBKID[i].list, &pWapiInfo->wapiBKIDIdleList);
-- }
--
-- //Init STA List
-- INIT_LIST_HEAD(&pWapiInfo->wapiSTAIdleList);
-- INIT_LIST_HEAD(&pWapiInfo->wapiSTAUsedList);
-- for(i=0;iwapiSta[i].list, &pWapiInfo->wapiSTAIdleList);
-- }
--
-- for (i=0;iwapiCamEntry[i].IsUsed = 0;
-- pWapiInfo->wapiCamEntry[i].keyidx = 2; //invalid
-- pWapiInfo->wapiCamEntry[i].entry_idx = 4+i*2;
-- }
--
-- WAPI_TRACE(WAPI_INIT, "<========== %s\n", __FUNCTION__);
--}
--
--void rtw_wapi_free(_adapter *padapter)
--{
-- WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__);
-- RT_ASSERT_RET(padapter);
--
-- if (!padapter->WapiSupport)
-- {
-- WAPI_TRACE(WAPI_INIT, "<========== %s, WAPI not supported!\n", __FUNCTION__);
-- return;
-- }
--
-- WapiFreeAllStaInfo(padapter);
--
-- WAPI_TRACE(WAPI_INIT, "<========== %s\n", __FUNCTION__);
--}
--
--void rtw_wapi_disable_tx(_adapter *padapter)
--{
-- WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__);
-- RT_ASSERT_RET(padapter);
--
-- if (!padapter->WapiSupport)
-- {
-- WAPI_TRACE(WAPI_INIT, "<========== %s, WAPI not supported!\n", __FUNCTION__);
-- return;
-- }
--
-- padapter->wapiInfo.wapiTxMsk.bTxEnable = false;
-- padapter->wapiInfo.wapiTxMsk.bSet = false;
--
-- WAPI_TRACE(WAPI_INIT, "<========== %s\n", __FUNCTION__);
--}
--
--u8 rtw_wapi_is_wai_packet(_adapter* padapter,u8 *pkt_data)
--{
-- PRT_WAPI_T pWapiInfo = &(padapter->wapiInfo);
-- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-- struct security_priv *psecuritypriv = &padapter->securitypriv;
-- PRT_WAPI_STA_INFO pWapiSta = NULL;
-- u8 WaiPkt = 0, *pTaddr, bFind = false;
-- u8 Offset_TypeWAI = 0 ; // (mac header len + llc length)
--
-- WAPI_TRACE(WAPI_TX|WAPI_RX, "===========> %s\n", __FUNCTION__);
--
-- if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-- {
-- WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-- return 0;
-- }
--
-- Offset_TypeWAI = 24 + 6 ;
--
-- //YJ,add,091103. Data frame may also have skb->data[30]=0x88 and skb->data[31]=0xb4.
-- if ((pkt_data[1]&0x40) !=0)
-- {
-- //DBG_871X("data is privacy \n");
-- return 0;
-- }
--
-- pTaddr = GetAddr2Ptr(pkt_data);
-- if(list_empty(&pWapiInfo->wapiSTAUsedList)){
-- bFind = false;
-- }else{
-- list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list){
-- if (!memcmp(pTaddr, pWapiSta->PeerMacAddr, 6)) {
-- bFind = true;
-- break;
-- }
-- }
-- }
--
-- WAPI_TRACE(WAPI_TX|WAPI_RX, "%s: bFind=%d pTaddr="MAC_FMT"\n", __FUNCTION__, bFind, MAC_ARG(pTaddr));
--
-- if (pkt_data[0] == WIFI_QOS_DATA_TYPE)
-- {
-- Offset_TypeWAI += 2;
-- }
--
-- // 88b4?
-- if( (pkt_data[Offset_TypeWAI]==0x88) && (pkt_data[Offset_TypeWAI+1]==0xb4) ){
-- WaiPkt = pkt_data[Offset_TypeWAI+5];
--
-- psecuritypriv->hw_decrypted = true;
-- }else{
-- WAPI_TRACE(WAPI_TX|WAPI_RX, "%s(): non wai packet\n",__FUNCTION__);
-- }
--
-- WAPI_TRACE(WAPI_TX|WAPI_RX, "%s(): Recvd WAI frame. IsWAIPkt(%d)\n",__FUNCTION__, WaiPkt);
--
-- return WaiPkt;
--}
--
--
--void rtw_wapi_update_info(_adapter *padapter, union recv_frame *precv_frame)
--{
-- PRT_WAPI_T pWapiInfo = &(padapter->wapiInfo);
-- struct recv_frame_hdr *precv_hdr;
-- u8 *ptr;
-- u8 *pTA;
-- u8 *pRecvPN;
--
--
-- WAPI_TRACE(WAPI_RX, "===========> %s\n", __FUNCTION__);
--
-- if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-- {
-- WAPI_TRACE(WAPI_RX, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-- return;
-- }
--
-- precv_hdr = &precv_frame->u.hdr;
-- ptr = precv_hdr->rx_data;
--
-- if (precv_hdr->attrib.qos == 1)
-- {
-- precv_hdr->UserPriority = GetTid(ptr);
-- }
-- else
-- {
-- precv_hdr->UserPriority = 0;
-- }
--
-- pTA = GetAddr2Ptr(ptr);
-- memcpy((u8 *)precv_hdr->WapiSrcAddr, pTA, 6);
-- pRecvPN = ptr + precv_hdr->attrib.hdrlen + 2;
-- memcpy((u8 *)precv_hdr->WapiTempPN, pRecvPN, 16);
--
-- WAPI_TRACE(WAPI_RX, "<========== %s\n", __FUNCTION__);
--}
--
--/****************************************************************************
--true-----------------Drop
--false---------------- handle
--add to support WAPI to N-mode
--*****************************************************************************/
--u8 rtw_wapi_check_for_drop(
-- _adapter *padapter,
-- union recv_frame *precv_frame
--)
--{
-- PRT_WAPI_T pWapiInfo = &(padapter->wapiInfo);
-- u8 *pLastRecvPN = NULL;
-- u8 bFind = false;
-- PRT_WAPI_STA_INFO pWapiSta = NULL;
-- u8 bDrop = false;
-- struct recv_frame_hdr *precv_hdr = &precv_frame->u.hdr;
-- u8 WapiAEPNInitialValueSrc[16] = {0x37,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
-- u8 WapiAEMultiCastPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
-- u8 *ptr = precv_frame->u.hdr.rx_data;
-- int i;
--
-- WAPI_TRACE(WAPI_RX, "===========> %s\n", __FUNCTION__);
--
-- if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-- {
-- WAPI_TRACE(WAPI_RX, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-- return false;
-- }
--
-- if(precv_hdr->bIsWaiPacket !=0)
-- {
-- if(precv_hdr->bIsWaiPacket== 0x8)
-- {
--
-- DBG_871X("rtw_wapi_check_for_drop: dump packet \n");
-- for(i=0;i<50;i++)
-- {
-- DBG_871X("%02X ",ptr[i]);
-- if((i+1) %8 ==0)
-- DBG_871X("\n");
-- }
-- DBG_871X("\n rtw_wapi_check_for_drop: dump packet \n");
--
-- for(i=0;i<16;i++)
-- {
-- if(ptr[i+27] !=0)
-- break;
-- }
--
-- if(i== 16)
-- {
-- WAPI_TRACE(WAPI_RX,"rtw_wapi_check_for_drop: drop with zero BKID \n");
-- return true;
-- }
-- else
-- {
-- return false;
-- }
-- }
-- else
-- return false;
-- }
--
-- if(list_empty(&pWapiInfo->wapiSTAUsedList)){
-- bFind = false;
-- }else{
-- list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
-- if (!memcmp(precv_hdr->WapiSrcAddr, pWapiSta->PeerMacAddr, ETH_ALEN)) {
-- bFind = true;
-- break;
-- }
-- }
-- }
-- WAPI_TRACE(WAPI_RX, "%s: bFind=%d prxb->WapiSrcAddr="MAC_FMT"\n", __FUNCTION__, bFind, MAC_ARG(precv_hdr->WapiSrcAddr));
--
-- if(bFind)
-- {
-- if(IS_MCAST(precv_hdr->attrib.ra))
-- {
-- WAPI_TRACE(WAPI_RX,"rtw_wapi_check_for_drop: multicast case \n");
-- pLastRecvPN = pWapiSta->lastRxMulticastPN;
-- }
-- else
-- {
-- WAPI_TRACE(WAPI_RX,"rtw_wapi_check_for_drop: unicast case \n");
-- switch(precv_hdr->UserPriority)
-- {
-- case 0:
-- case 3:
-- pLastRecvPN = pWapiSta->lastRxUnicastPNBEQueue;
-- break;
-- case 1:
-- case 2:
-- pLastRecvPN = pWapiSta->lastRxUnicastPNBKQueue;
-- break;
-- case 4:
-- case 5:
-- pLastRecvPN = pWapiSta->lastRxUnicastPNVIQueue;
-- break;
-- case 6:
-- case 7:
-- pLastRecvPN = pWapiSta->lastRxUnicastPNVOQueue;
-- break;
-- default:
-- WAPI_TRACE(WAPI_ERR,"%s: Unknown TID \n",__FUNCTION__);
-- break;
-- }
-- }
--
-- if(!WapiComparePN(precv_hdr->WapiTempPN,pLastRecvPN))
-- {
-- WAPI_TRACE(WAPI_RX,"%s: Equal PN!!\n",__FUNCTION__);
-- if(IS_MCAST(precv_hdr->attrib.ra))
-- memcpy(pLastRecvPN,WapiAEMultiCastPNInitialValueSrc,16);
-- else
-- memcpy(pLastRecvPN,WapiAEPNInitialValueSrc,16);
-- bDrop = true;
-- }
-- else
-- {
-- memcpy(pLastRecvPN,precv_hdr->WapiTempPN,16);
-- }
-- }
--
-- WAPI_TRACE(WAPI_RX, "<========== %s\n", __FUNCTION__);
-- return bDrop;
--}
--
--void rtw_build_probe_resp_wapi_ie(_adapter *padapter, unsigned char *pframe, struct pkt_attrib *pattrib)
--{
-- PRT_WAPI_T pWapiInfo = &(padapter->wapiInfo);
-- u8 WapiIELength = 0;
--
-- WAPI_TRACE(WAPI_MLME, "===========> %s\n", __FUNCTION__);
--
-- if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-- {
-- WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported!\n", __FUNCTION__);
-- return;
-- }
--
-- WapiSetIE(padapter);
-- WapiIELength = pWapiInfo->wapiIELength;
-- pframe[0] = _WAPI_IE_;
-- pframe[1] = WapiIELength;
-- memcpy(pframe+2, pWapiInfo->wapiIE, WapiIELength);
-- pframe += WapiIELength+2;
-- pattrib->pktlen += WapiIELength+2;
--
-- WAPI_TRACE(WAPI_MLME, "<========== %s\n", __FUNCTION__);
--}
--
--void rtw_build_beacon_wapi_ie(_adapter *padapter, unsigned char *pframe, struct pkt_attrib *pattrib)
--{
-- PRT_WAPI_T pWapiInfo = &(padapter->wapiInfo);
-- u8 WapiIELength = 0;
-- WAPI_TRACE(WAPI_MLME, "===========> %s\n", __FUNCTION__);
--
-- if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-- {
-- WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported!\n", __FUNCTION__);
-- return;
-- }
--
-- WapiSetIE(padapter);
-- WapiIELength = pWapiInfo->wapiIELength;
-- pframe[0] = _WAPI_IE_;
-- pframe[1] = WapiIELength;
-- memcpy(pframe+2, pWapiInfo->wapiIE, WapiIELength);
-- pframe += WapiIELength+2;
-- pattrib->pktlen += WapiIELength+2;
--
-- WAPI_TRACE(WAPI_MLME, "<========== %s\n", __FUNCTION__);
--}
--
--void rtw_build_assoc_req_wapi_ie(_adapter *padapter, unsigned char *pframe, struct pkt_attrib *pattrib)
--{
-- PRT_WAPI_BKID pWapiBKID;
-- u16 bkidNum;
-- PRT_WAPI_T pWapiInfo = &(padapter->wapiInfo);
-- u8 WapiIELength = 0;
--
-- WAPI_TRACE(WAPI_MLME, "===========> %s\n", __FUNCTION__);
--
-- if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-- {
-- WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported!\n", __FUNCTION__);
-- return;
-- }
--
-- WapiSetIE(padapter);
-- WapiIELength = pWapiInfo->wapiIELength;
-- bkidNum = 0;
-- if(!list_empty(&(pWapiInfo->wapiBKIDStoreList))){
-- list_for_each_entry(pWapiBKID, &pWapiInfo->wapiBKIDStoreList, list) {
-- bkidNum ++;
-- memcpy(pWapiInfo->wapiIE+WapiIELength+2, pWapiBKID->bkid,16);
-- WapiIELength += 16;
-- }
-- }
-- memcpy(pWapiInfo->wapiIE+WapiIELength, &bkidNum, 2);
-- WapiIELength += 2;
--
-- pframe[0] = _WAPI_IE_;
-- pframe[1] = WapiIELength;
-- memcpy(pframe+2, pWapiInfo->wapiIE, WapiIELength);
-- pframe += WapiIELength+2;
-- pattrib->pktlen += WapiIELength+2;
-- WAPI_TRACE(WAPI_MLME, "<========== %s\n", __FUNCTION__);
--}
--
--void rtw_wapi_on_assoc_ok(_adapter *padapter, PNDIS_802_11_VARIABLE_IEs pIE)
--{
-- PRT_WAPI_T pWapiInfo = &(padapter->wapiInfo);
-- PRT_WAPI_STA_INFO pWapiSta;
-- u8 WapiAEPNInitialValueSrc[16] = {0x37,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
-- //u8 WapiASUEPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
-- u8 WapiAEMultiCastPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
--
-- WAPI_TRACE(WAPI_MLME, "===========> %s\n", __FUNCTION__);
--
-- if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-- {
-- WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-- return;
-- }
--
-- pWapiSta =(PRT_WAPI_STA_INFO)list_entry(pWapiInfo->wapiSTAIdleList.next, RT_WAPI_STA_INFO, list);
-- list_del_init(&pWapiSta->list);
-- list_add_tail(&pWapiSta->list, &pWapiInfo->wapiSTAUsedList);
-- memcpy(pWapiSta->PeerMacAddr,padapter->mlmeextpriv.mlmext_info.network.MacAddress,6);
-- memcpy(pWapiSta->lastRxMulticastPN, WapiAEMultiCastPNInitialValueSrc, 16);
-- memcpy(pWapiSta->lastRxUnicastPN, WapiAEPNInitialValueSrc, 16);
--
-- //For chenk PN error with Qos Data after s3: add by ylb 20111114
-- memcpy(pWapiSta->lastRxUnicastPNBEQueue,WapiAEPNInitialValueSrc,16);
-- memcpy(pWapiSta->lastRxUnicastPNBKQueue,WapiAEPNInitialValueSrc,16);
-- memcpy(pWapiSta->lastRxUnicastPNVIQueue,WapiAEPNInitialValueSrc,16);
-- memcpy(pWapiSta->lastRxUnicastPNVOQueue,WapiAEPNInitialValueSrc,16);
--
-- WAPI_TRACE(WAPI_MLME, "<========== %s\n", __FUNCTION__);
--}
--
--
--void rtw_wapi_return_one_sta_info(_adapter *padapter, u8 *MacAddr)
--{
-- PRT_WAPI_T pWapiInfo;
-- PRT_WAPI_STA_INFO pWapiStaInfo = NULL;
-- PRT_WAPI_BKID pWapiBkid = NULL;
-- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
--
-- pWapiInfo = &padapter->wapiInfo;
--
-- WAPI_TRACE(WAPI_API, "==========> %s\n", __FUNCTION__);
--
-- if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-- {
-- WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-- return;
-- }
--
-- if(check_fwstate(pmlmepriv, WIFI_STATION_STATE))
-- {
-- while(!list_empty(&(pWapiInfo->wapiBKIDStoreList)))
-- {
-- pWapiBkid = (PRT_WAPI_BKID)list_entry(pWapiInfo->wapiBKIDStoreList.next, RT_WAPI_BKID, list);
-- list_del_init(&pWapiBkid->list);
-- memset(pWapiBkid->bkid,0,16);
-- list_add_tail(&pWapiBkid->list, &pWapiInfo->wapiBKIDIdleList);
-- }
-- }
--
--
-- WAPI_TRACE(WAPI_API, " %s: after clear bkid \n", __FUNCTION__);
--
--
-- //Remove STA info
-- if(list_empty(&(pWapiInfo->wapiSTAUsedList))){
-- WAPI_TRACE(WAPI_API, " %s: wapiSTAUsedList is null \n", __FUNCTION__);
-- return;
-- }else{
-- WAPI_TRACE(WAPI_API, " %s: wapiSTAUsedList is not null \n", __FUNCTION__);
--
-- while(!list_empty(&(pWapiInfo->wapiSTAUsedList)))
-- {
-- pWapiStaInfo = (PRT_WAPI_STA_INFO)list_entry(pWapiInfo->wapiSTAUsedList.next, RT_WAPI_STA_INFO, list);
--
-- DBG_871X("peer Addr %02x-%02x-%02x-%02x-%02x-%02x \n",pWapiStaInfo->PeerMacAddr[0],pWapiStaInfo->PeerMacAddr[1],pWapiStaInfo->PeerMacAddr[2],pWapiStaInfo->PeerMacAddr[3],pWapiStaInfo->PeerMacAddr[4],pWapiStaInfo->PeerMacAddr[5]);
--
-- list_del_init(&pWapiStaInfo->list);
-- memset(pWapiStaInfo->PeerMacAddr,0,ETH_ALEN);
-- pWapiStaInfo->bSetkeyOk = 0;
-- list_add_tail(&pWapiStaInfo->list, &pWapiInfo->wapiSTAIdleList);
-- }
--
-- }
--
-- WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__);
-- return;
--}
--
--void rtw_wapi_return_all_sta_info(_adapter *padapter)
--{
-- PRT_WAPI_T pWapiInfo;
-- PRT_WAPI_STA_INFO pWapiStaInfo;
-- PRT_WAPI_BKID pWapiBkid;
-- WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
--
-- pWapiInfo = &padapter->wapiInfo;
--
-- if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-- {
-- WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-- return;
-- }
--
-- //Sta Info List
-- while(!list_empty(&(pWapiInfo->wapiSTAUsedList)))
-- {
-- pWapiStaInfo = (PRT_WAPI_STA_INFO)list_entry(pWapiInfo->wapiSTAUsedList.next, RT_WAPI_STA_INFO, list);
-- list_del_init(&pWapiStaInfo->list);
-- memset(pWapiStaInfo->PeerMacAddr,0,ETH_ALEN);
-- pWapiStaInfo->bSetkeyOk = 0;
-- list_add_tail(&pWapiStaInfo->list, &pWapiInfo->wapiSTAIdleList);
-- }
--
-- //BKID List
-- while(!list_empty(&(pWapiInfo->wapiBKIDStoreList)))
-- {
-- pWapiBkid = (PRT_WAPI_BKID)list_entry(pWapiInfo->wapiBKIDStoreList.next, RT_WAPI_BKID, list);
-- list_del_init(&pWapiBkid->list);
-- memset(pWapiBkid->bkid,0,16);
-- list_add_tail(&pWapiBkid->list, &pWapiInfo->wapiBKIDIdleList);
-- }
-- WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__);
--}
--
--void rtw_wapi_clear_cam_entry(_adapter *padapter, u8 *pMacAddr)
--{
-- u8 UcIndex = 0;
--
-- WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
--
-- if ((!padapter->WapiSupport) || (!padapter->wapiInfo.bWapiEnable))
-- {
-- WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-- return;
-- }
--
-- UcIndex = WapiGetEntryForCamClear(padapter, pMacAddr, 0, 0);
-- if(UcIndex != 0xff){
-- //CAM_mark_invalid(Adapter, UcIndex);
-- CAM_empty_entry(padapter, UcIndex);
-- }
--
-- UcIndex = WapiGetEntryForCamClear(padapter, pMacAddr, 1, 0);
-- if(UcIndex != 0xff){
-- //CAM_mark_invalid(Adapter, UcIndex);
-- CAM_empty_entry(padapter, UcIndex);
-- }
--
-- UcIndex = WapiGetEntryForCamClear(padapter, pMacAddr, 0, 1);
-- if(UcIndex != 0xff){
-- //CAM_mark_invalid(Adapter, UcIndex);
-- CAM_empty_entry(padapter, UcIndex);
-- }
--
-- UcIndex = WapiGetEntryForCamClear(padapter, pMacAddr, 1, 1);
-- if(UcIndex != 0xff){
-- //CAM_mark_invalid(padapter, UcIndex);
-- CAM_empty_entry(padapter, UcIndex);
-- }
--
-- WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__);
--}
--
--void rtw_wapi_clear_all_cam_entry(_adapter *padapter)
--{
-- WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
--
-- if ((!padapter->WapiSupport) || (!padapter->wapiInfo.bWapiEnable))
-- {
-- WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-- return;
-- }
--
-- invalidate_cam_all(padapter); // is this ok?
-- WapiResetAllCamEntry(padapter);
--
-- WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
--}
--
--void rtw_wapi_set_key(_adapter *padapter, RT_WAPI_KEY *pWapiKey, RT_WAPI_STA_INFO *pWapiSta, u8 bGroupKey, u8 bUseDefaultKey)
--{
-- PRT_WAPI_T pWapiInfo = &padapter->wapiInfo;
-- u8 *pMacAddr = pWapiSta->PeerMacAddr;
-- u32 EntryId = 0;
-- bool IsPairWise = false ;
-- u8 EncAlgo;
--
-- WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
--
-- if ((!padapter->WapiSupport) || (!padapter->wapiInfo.bWapiEnable))
-- {
-- WAPI_TRACE(WAPI_API, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-- return;
-- }
--
-- EncAlgo = _SMS4_;
--
-- //For Tx bc/mc pkt,use defualt key entry
-- if(bUseDefaultKey)
-- {
-- // when WAPI update key, keyid will be 0 or 1 by turns.
-- if (pWapiKey->keyId == 0)
-- EntryId = 0;
-- else
-- EntryId = 2;
-- }
-- else
-- {
-- // tx/rx unicast pkt, or rx broadcast, find the key entry by peer's MacAddr
-- EntryId = WapiGetEntryForCamWrite(padapter,pMacAddr,pWapiKey->keyId,bGroupKey);
-- }
--
-- if(EntryId == 0xff){
-- WAPI_TRACE(WAPI_API, "===>No entry for WAPI setkey! !!\n");
-- return;
-- }
--
-- //EntryId is also used to diff Sec key and Mic key
-- //Sec Key
-- WapiWriteOneCamEntry(padapter,
-- pMacAddr,
-- pWapiKey->keyId, //keyid
-- EntryId, //entry
-- EncAlgo, //type
-- bGroupKey, //pairwise or group key
-- pWapiKey->dataKey);
-- //MIC key
-- WapiWriteOneCamEntry(padapter,
-- pMacAddr,
-- pWapiKey->keyId, //keyid
-- EntryId+1, //entry
-- EncAlgo, //type
-- bGroupKey, //pairwise or group key
-- pWapiKey->micKey);
--
-- WAPI_TRACE(WAPI_API, "Set Wapi Key :KeyId:%d,EntryId:%d,PairwiseKey:%d.\n",pWapiKey->keyId,EntryId,!bGroupKey);
-- WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
--
--}
--
--void rtw_wapi_get_iv(_adapter *padapter,u8 *pRA, u8*IV)
--{
-- PWLAN_HEADER_WAPI_EXTENSION pWapiExt = NULL;
-- PRT_WAPI_T pWapiInfo = &padapter->wapiInfo;
-- bool bPNOverflow = false;
-- bool bFindMatchPeer = false;
-- PRT_WAPI_STA_INFO pWapiSta = NULL;
--
-- pWapiExt = (PWLAN_HEADER_WAPI_EXTENSION)IV;
--
-- WAPI_DATA(WAPI_RX,"wapi_get_iv: pra",pRA,6);
--
-- if(IS_MCAST(pRA)){
-- if(!pWapiInfo->wapiTxMsk.bTxEnable){
-- WAPI_TRACE(WAPI_ERR,"%s: bTxEnable = 0!!\n",__FUNCTION__);
-- return;
-- }
--
-- if(pWapiInfo->wapiTxMsk.keyId <= 1){
-- pWapiExt->KeyIdx = pWapiInfo->wapiTxMsk.keyId;
-- pWapiExt->Reserved = 0;
-- bPNOverflow = WapiIncreasePN(pWapiInfo->lastTxMulticastPN, 1);
-- memcpy(pWapiExt->PN, pWapiInfo->lastTxMulticastPN, 16);
-- }
-- }
-- else
-- {
-- if(list_empty(&pWapiInfo->wapiSTAUsedList)){
-- WAPI_TRACE(WAPI_RX,"rtw_wapi_get_iv: list is empty \n");
-- memset(IV,10,18);
-- return;
-- }
-- else{
-- list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list){
-- WAPI_DATA(WAPI_RX,"rtw_wapi_get_iv: peermacaddr ",pWapiSta->PeerMacAddr,6);
-- if (!memcmp((u8*)pWapiSta->PeerMacAddr, pRA, 6)) {
-- bFindMatchPeer = true;
-- break;
-- }
-- }
--
-- WAPI_TRACE(WAPI_RX,"bFindMatchPeer: %d \n",bFindMatchPeer);
-- WAPI_DATA(WAPI_RX,"Addr",pRA,6);
--
-- if (bFindMatchPeer){
-- if((!pWapiSta->wapiUskUpdate.bTxEnable) && (!pWapiSta->wapiUsk.bTxEnable))
-- return;
--
-- if (pWapiSta->wapiUsk.keyId <= 1){
-- if(pWapiSta->wapiUskUpdate.bTxEnable)
-- pWapiExt->KeyIdx = pWapiSta->wapiUskUpdate.keyId;
-- else
-- pWapiExt->KeyIdx = pWapiSta->wapiUsk.keyId;
--
-- pWapiExt->Reserved = 0;
-- bPNOverflow = WapiIncreasePN(pWapiSta->lastTxUnicastPN, 2);
-- memcpy(pWapiExt->PN, pWapiSta->lastTxUnicastPN, 16);
--
-- }
-- }
-- }
--
-- }
--
--}
--
--bool rtw_wapi_drop_for_key_absent(_adapter *padapter,u8 *pRA)
--{
-- PRT_WAPI_T pWapiInfo = &padapter->wapiInfo;
-- bool bFindMatchPeer = false;
-- bool bDrop = false;
-- PRT_WAPI_STA_INFO pWapiSta = NULL;
-- struct security_priv *psecuritypriv = &padapter->securitypriv;
--
-- WAPI_DATA(WAPI_RX,"rtw_wapi_drop_for_key_absent: ra ",pRA,6);
--
-- if(psecuritypriv->dot11PrivacyAlgrthm == _SMS4_)
-- {
-- if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-- return true;
--
-- if(IS_MCAST(pRA)){
-- if(!pWapiInfo->wapiTxMsk.bTxEnable){
-- bDrop = true;
-- WAPI_TRACE(WAPI_RX,"rtw_wapi_drop_for_key_absent: multicast key is absent \n");
-- return bDrop;
-- }
-- }
-- else{
-- if(!list_empty(&pWapiInfo->wapiSTAUsedList)){
-- list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list){
-- WAPI_DATA(WAPI_RX,"rtw_wapi_drop_for_key_absent: pWapiSta->PeerMacAddr ",pWapiSta->PeerMacAddr,6);
-- if (!memcmp(pRA, pWapiSta->PeerMacAddr, 6)){
-- bFindMatchPeer = true;
-- break;
-- }
-- }
-- if (bFindMatchPeer) {
-- if (!pWapiSta->wapiUsk.bTxEnable){
-- bDrop = true;
-- WAPI_TRACE(WAPI_RX,"rtw_wapi_drop_for_key_absent: unicast key is absent \n");
-- return bDrop;
-- }
-- }
-- else{
-- bDrop = true;
-- WAPI_TRACE(WAPI_RX,"rtw_wapi_drop_for_key_absent: no peer find \n");
-- return bDrop;
-- }
--
-- }
-- else{
-- bDrop = true;
-- WAPI_TRACE(WAPI_RX,"rtw_wapi_drop_for_key_absent: no sta exist \n");
-- return bDrop;
-- }
-- }
-- }
-- else
-- {
-- return bDrop;
-- }
--
-- return bDrop;
--}
--
--#endif
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_wapi_sms4.c linux/3rdparty/rtl8723bs/core/rtw_wapi_sms4.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_wapi_sms4.c 2015-05-10 14:36:05.678668013 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_wapi_sms4.c 1970-01-01 02:00:00.000000000 +0200
-@@ -1,713 +0,0 @@
--#ifdef CONFIG_WAPI_SUPPORT
--
--#include
--#include
--#include
--#include
--
--
--#ifdef CONFIG_WAPI_SW_SMS4
--
--#define WAPI_LITTLE_ENDIAN
--//#define BIG_ENDIAN
--#define ENCRYPT 0
--#define DECRYPT 1
--
--
--/**********************************************************
-- **********************************************************/
--const u8 Sbox[256] = {
--0xd6,0x90,0xe9,0xfe,0xcc,0xe1,0x3d,0xb7,0x16,0xb6,0x14,0xc2,0x28,0xfb,0x2c,0x05,
--0x2b,0x67,0x9a,0x76,0x2a,0xbe,0x04,0xc3,0xaa,0x44,0x13,0x26,0x49,0x86,0x06,0x99,
--0x9c,0x42,0x50,0xf4,0x91,0xef,0x98,0x7a,0x33,0x54,0x0b,0x43,0xed,0xcf,0xac,0x62,
--0xe4,0xb3,0x1c,0xa9,0xc9,0x08,0xe8,0x95,0x80,0xdf,0x94,0xfa,0x75,0x8f,0x3f,0xa6,
--0x47,0x07,0xa7,0xfc,0xf3,0x73,0x17,0xba,0x83,0x59,0x3c,0x19,0xe6,0x85,0x4f,0xa8,
--0x68,0x6b,0x81,0xb2,0x71,0x64,0xda,0x8b,0xf8,0xeb,0x0f,0x4b,0x70,0x56,0x9d,0x35,
--0x1e,0x24,0x0e,0x5e,0x63,0x58,0xd1,0xa2,0x25,0x22,0x7c,0x3b,0x01,0x21,0x78,0x87,
--0xd4,0x00,0x46,0x57,0x9f,0xd3,0x27,0x52,0x4c,0x36,0x02,0xe7,0xa0,0xc4,0xc8,0x9e,
--0xea,0xbf,0x8a,0xd2,0x40,0xc7,0x38,0xb5,0xa3,0xf7,0xf2,0xce,0xf9,0x61,0x15,0xa1,
--0xe0,0xae,0x5d,0xa4,0x9b,0x34,0x1a,0x55,0xad,0x93,0x32,0x30,0xf5,0x8c,0xb1,0xe3,
--0x1d,0xf6,0xe2,0x2e,0x82,0x66,0xca,0x60,0xc0,0x29,0x23,0xab,0x0d,0x53,0x4e,0x6f,
--0xd5,0xdb,0x37,0x45,0xde,0xfd,0x8e,0x2f,0x03,0xff,0x6a,0x72,0x6d,0x6c,0x5b,0x51,
--0x8d,0x1b,0xaf,0x92,0xbb,0xdd,0xbc,0x7f,0x11,0xd9,0x5c,0x41,0x1f,0x10,0x5a,0xd8,
--0x0a,0xc1,0x31,0x88,0xa5,0xcd,0x7b,0xbd,0x2d,0x74,0xd0,0x12,0xb8,0xe5,0xb4,0xb0,
--0x89,0x69,0x97,0x4a,0x0c,0x96,0x77,0x7e,0x65,0xb9,0xf1,0x09,0xc5,0x6e,0xc6,0x84,
--0x18,0xf0,0x7d,0xec,0x3a,0xdc,0x4d,0x20,0x79,0xee,0x5f,0x3e,0xd7,0xcb,0x39,0x48
--};
--
--const u32 CK[32] = {
-- 0x00070e15, 0x1c232a31, 0x383f464d, 0x545b6269,
-- 0x70777e85, 0x8c939aa1, 0xa8afb6bd, 0xc4cbd2d9,
-- 0xe0e7eef5, 0xfc030a11, 0x181f262d, 0x343b4249,
-- 0x50575e65, 0x6c737a81, 0x888f969d, 0xa4abb2b9,
-- 0xc0c7ced5, 0xdce3eaf1, 0xf8ff060d, 0x141b2229,
-- 0x30373e45, 0x4c535a61, 0x686f767d, 0x848b9299,
-- 0xa0a7aeb5, 0xbcc3cad1, 0xd8dfe6ed, 0xf4fb0209,
-- 0x10171e25, 0x2c333a41, 0x484f565d, 0x646b7279 };
--
--#define Rotl(_x, _y) (((_x) << (_y)) | ((_x) >> (32 - (_y))))
--
--#define ByteSub(_A) (Sbox[(_A) >> 24 & 0xFF] << 24 | \
-- Sbox[(_A) >> 16 & 0xFF] << 16 | \
-- Sbox[(_A) >> 8 & 0xFF] << 8 | \
-- Sbox[(_A) & 0xFF])
--
--#define L1(_B) ((_B) ^ Rotl(_B, 2) ^ Rotl(_B, 10) ^ Rotl(_B, 18) ^ Rotl(_B, 24))
--#define L2(_B) ((_B) ^ Rotl(_B, 13) ^ Rotl(_B, 23))
--
--static void
--xor_block(void *dst, void *src1, void *src2)
--/* 128-bit xor: *dst = *src1 xor *src2. Pointers must be 32-bit aligned */
--{
-- ((u32 *)dst)[0] = ((u32 *)src1)[0] ^ ((u32 *)src2)[0];
-- ((u32 *)dst)[1] = ((u32 *)src1)[1] ^ ((u32 *)src2)[1];
-- ((u32 *)dst)[2] = ((u32 *)src1)[2] ^ ((u32 *)src2)[2];
-- ((u32 *)dst)[3] = ((u32 *)src1)[3] ^ ((u32 *)src2)[3];
--}
--
--
--void SMS4Crypt(u8 *Input, u8 *Output, u32 *rk)
--{
-- u32 r, mid, x0, x1, x2, x3, *p;
-- p = (u32 *)Input;
-- x0 = p[0];
-- x1 = p[1];
-- x2 = p[2];
-- x3 = p[3];
--#ifdef WAPI_LITTLE_ENDIAN
-- x0 = Rotl(x0, 16); x0 = ((x0 & 0x00FF00FF) << 8) | ((x0 & 0xFF00FF00) >> 8);
-- x1 = Rotl(x1, 16); x1 = ((x1 & 0x00FF00FF) << 8) | ((x1 & 0xFF00FF00) >> 8);
-- x2 = Rotl(x2, 16); x2 = ((x2 & 0x00FF00FF) << 8) | ((x2 & 0xFF00FF00) >> 8);
-- x3 = Rotl(x3, 16); x3 = ((x3 & 0x00FF00FF) << 8) | ((x3 & 0xFF00FF00) >> 8);
--#endif
-- for (r = 0; r < 32; r += 4)
-- {
-- mid = x1 ^ x2 ^ x3 ^ rk[r + 0];
-- mid = ByteSub(mid);
-- x0 ^= L1(mid);
-- mid = x2 ^ x3 ^ x0 ^ rk[r + 1];
-- mid = ByteSub(mid);
-- x1 ^= L1(mid);
-- mid = x3 ^ x0 ^ x1 ^ rk[r + 2];
-- mid = ByteSub(mid);
-- x2 ^= L1(mid);
-- mid = x0 ^ x1 ^ x2 ^ rk[r + 3];
-- mid = ByteSub(mid);
-- x3 ^= L1(mid);
-- }
--#ifdef WAPI_LITTLE_ENDIAN
-- x0 = Rotl(x0, 16); x0 = ((x0 & 0x00FF00FF) << 8) | ((x0 & 0xFF00FF00) >> 8);
-- x1 = Rotl(x1, 16); x1 = ((x1 & 0x00FF00FF) << 8) | ((x1 & 0xFF00FF00) >> 8);
-- x2 = Rotl(x2, 16); x2 = ((x2 & 0x00FF00FF) << 8) | ((x2 & 0xFF00FF00) >> 8);
-- x3 = Rotl(x3, 16); x3 = ((x3 & 0x00FF00FF) << 8) | ((x3 & 0xFF00FF00) >> 8);
--#endif
-- p = (u32 *)Output;
-- p[0] = x3;
-- p[1] = x2;
-- p[2] = x1;
-- p[3] = x0;
--}
--
--
--
--void SMS4KeyExt(u8 *Key, u32 *rk, u32 CryptFlag)
--{
-- u32 r, mid, x0, x1, x2, x3, *p;
--
-- p = (u32 *)Key;
-- x0 = p[0];
-- x1 = p[1];
-- x2 = p[2];
-- x3 = p[3];
--#ifdef WAPI_LITTLE_ENDIAN
-- x0 = Rotl(x0, 16); x0 = ((x0 & 0xFF00FF) << 8) | ((x0 & 0xFF00FF00) >> 8);
-- x1 = Rotl(x1, 16); x1 = ((x1 & 0xFF00FF) << 8) | ((x1 & 0xFF00FF00) >> 8);
-- x2 = Rotl(x2, 16); x2 = ((x2 & 0xFF00FF) << 8) | ((x2 & 0xFF00FF00) >> 8);
-- x3 = Rotl(x3, 16); x3 = ((x3 & 0xFF00FF) << 8) | ((x3 & 0xFF00FF00) >> 8);
--#endif
--
-- x0 ^= 0xa3b1bac6;
-- x1 ^= 0x56aa3350;
-- x2 ^= 0x677d9197;
-- x3 ^= 0xb27022dc;
-- for (r = 0; r < 32; r += 4)
-- {
-- mid = x1 ^ x2 ^ x3 ^ CK[r + 0];
-- mid = ByteSub(mid);
-- rk[r + 0] = x0 ^= L2(mid);
-- mid = x2 ^ x3 ^ x0 ^ CK[r + 1];
-- mid = ByteSub(mid);
-- rk[r + 1] = x1 ^= L2(mid);
-- mid = x3 ^ x0 ^ x1 ^ CK[r + 2];
-- mid = ByteSub(mid);
-- rk[r + 2] = x2 ^= L2(mid);
-- mid = x0 ^ x1 ^ x2 ^ CK[r + 3];
-- mid = ByteSub(mid);
-- rk[r + 3] = x3 ^= L2(mid);
-- }
-- if (CryptFlag == DECRYPT)
-- {
-- for (r = 0; r < 16; r++)
-- mid = rk[r], rk[r] = rk[31 - r], rk[31 - r] = mid;
-- }
--}
--
--
--void WapiSMS4Cryption(u8 *Key, u8 *IV, u8 *Input, u16 InputLength,
-- u8 *Output, u16 *OutputLength, u32 CryptFlag)
--{
-- u32 blockNum,i,j, rk[32];
-- u16 remainder;
-- u8 blockIn[16],blockOut[16], tempIV[16], k;
--
-- *OutputLength = 0;
-- remainder = InputLength & 0x0F;
-- blockNum = InputLength >> 4;
-- if(remainder !=0)
-- blockNum++;
-- else
-- remainder = 16;
--
-- for(k=0;k<16;k++)
-- tempIV[k] = IV[15-k];
--
-- memcpy(blockIn, tempIV, 16);
--
-- SMS4KeyExt((u8 *)Key, rk,CryptFlag);
--
-- for(i=0; i> 4;
--
-- for(k=0;k<16;k++)
-- tempIV[k] = IV[15-k];
--
-- memcpy(BlockIn, tempIV, 16);
--
-- SMS4KeyExt((u8 *)Key, rk, ENCRYPT);
--
-- SMS4Crypt((u8 *)BlockIn, BlockOut, rk);
--
-- for(i=0; i> 4;
--
-- for(i=0; i %s\n", __FUNCTION__);
-- switch(UserPriority)
-- {
-- case 0:
-- case 3:
-- memcpy(PNOut,pWapiStaInfo->lastRxUnicastPNBEQueue,16);
-- break;
-- case 1:
-- case 2:
-- memcpy(PNOut,pWapiStaInfo->lastRxUnicastPNBKQueue,16);
-- break;
-- case 4:
-- case 5:
-- memcpy(PNOut,pWapiStaInfo->lastRxUnicastPNVIQueue,16);
-- break;
-- case 6:
-- case 7:
-- memcpy(PNOut,pWapiStaInfo->lastRxUnicastPNVOQueue,16);
-- break;
-- default:
-- WAPI_TRACE(WAPI_ERR, "%s: Unknown TID \n", __FUNCTION__);
-- break;
-- }
-- WAPI_TRACE(WAPI_RX, "<=========== %s\n", __FUNCTION__);
--}
--
--
--void WapiSetLastRxUnicastPNForQoSData(
-- u8 UserPriority,
-- u8 *PNIn,
-- PRT_WAPI_STA_INFO pWapiStaInfo
--)
--{
-- WAPI_TRACE(WAPI_RX, "===========> %s\n", __FUNCTION__);
-- switch(UserPriority)
-- {
-- case 0:
-- case 3:
-- memcpy(pWapiStaInfo->lastRxUnicastPNBEQueue,PNIn,16);
-- break;
-- case 1:
-- case 2:
-- memcpy(pWapiStaInfo->lastRxUnicastPNBKQueue,PNIn,16);
-- break;
-- case 4:
-- case 5:
-- memcpy(pWapiStaInfo->lastRxUnicastPNVIQueue,PNIn,16);
-- break;
-- case 6:
-- case 7:
-- memcpy(pWapiStaInfo->lastRxUnicastPNVOQueue,PNIn,16);
-- break;
-- default:
-- WAPI_TRACE(WAPI_ERR, "%s: Unknown TID \n", __FUNCTION__);
-- break;
-- }
-- WAPI_TRACE(WAPI_RX, "<=========== %s\n", __FUNCTION__);
--}
--
--// WAPI SW Enc: must have done Coalesce!
--void SecSWSMS4Encryption(
-- _adapter *padapter,
-- u8 * pxmitframe
-- )
--{
-- PRT_WAPI_T pWapiInfo = &padapter->wapiInfo;
-- PRT_WAPI_STA_INFO pWapiSta = NULL;
-- u8 *pframe = ((struct xmit_frame*)pxmitframe)->buf_addr + TXDESC_SIZE;
-- struct pkt_attrib *pattrib = &((struct xmit_frame*)pxmitframe)->attrib;
--
-- u8 *SecPtr = NULL, *pRA, *pMicKey = NULL, *pDataKey = NULL, *pIV = NULL;
-- u8 IVOffset, DataOffset, bFindMatchPeer = false, KeyIdx = 0, MicBuffer[16];
-- u16 OutputLength;
--
-- WAPI_TRACE(WAPI_TX, "=========>%s\n", __FUNCTION__);
--
-- WAPI_TRACE(WAPI_TX,"hdrlen: %d \n",pattrib->hdrlen);
--
-- return;
--
-- DataOffset = pattrib->hdrlen + pattrib->iv_len;
--
-- pRA = pframe + 4;
--
--
-- if( IS_MCAST(pRA) ){
-- KeyIdx = pWapiInfo->wapiTxMsk.keyId;
-- pIV = pWapiInfo->lastTxMulticastPN;
-- pMicKey = pWapiInfo->wapiTxMsk.micKey;
-- pDataKey = pWapiInfo->wapiTxMsk.dataKey;
-- }else{
-- if (!list_empty(&(pWapiInfo->wapiSTAUsedList))){
-- list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
-- if (!memcmp(pWapiSta->PeerMacAddr, pRA, 6)){
-- bFindMatchPeer = true;
-- break;
-- }
-- }
--
-- if (bFindMatchPeer){
-- if (pWapiSta->wapiUskUpdate.bTxEnable){
-- KeyIdx = pWapiSta->wapiUskUpdate.keyId;
-- WAPI_TRACE(WAPI_TX, "%s(): Use update USK!! KeyIdx=%d\n", __FUNCTION__, KeyIdx);
-- pIV = pWapiSta->lastTxUnicastPN;
-- pMicKey = pWapiSta->wapiUskUpdate.micKey;
-- pDataKey = pWapiSta->wapiUskUpdate.dataKey;
-- }else{
-- KeyIdx = pWapiSta->wapiUsk.keyId;
-- WAPI_TRACE(WAPI_TX, "%s(): Use USK!! KeyIdx=%d\n", __FUNCTION__, KeyIdx);
-- pIV = pWapiSta->lastTxUnicastPN;
-- pMicKey = pWapiSta->wapiUsk.micKey;
-- pDataKey = pWapiSta->wapiUsk.dataKey;
-- }
-- }else{
-- WAPI_TRACE(WAPI_ERR,"%s: Can not find Peer Sta!!\n",__FUNCTION__);
-- return;
-- }
-- }else{
-- WAPI_TRACE(WAPI_ERR,"%s: wapiSTAUsedList is empty!!\n",__FUNCTION__);
-- return;
-- }
-- }
--
-- SecPtr = pframe;
--
-- WAPI_DATA(WAPI_TX, "Encryption - MIC", MicBuffer, padapter->wapiInfo.extra_postfix_len);
--
-- memcpy(pframe+pattrib->hdrlen+pattrib->iv_len+pattrib->pktlen-pattrib->icv_len,
-- (u8 *)MicBuffer,
-- padapter->wapiInfo.extra_postfix_len
-- );
--
--
-- WapiSMS4Encryption(pDataKey, pIV, (SecPtr+DataOffset),pattrib->pktlen+pattrib->icv_len, (SecPtr+DataOffset), &OutputLength);
--
-- WAPI_DATA(WAPI_TX, "Encryption - After SMS4 encryption",pframe,pattrib->hdrlen+pattrib->iv_len+pattrib->pktlen);
--
-- WAPI_TRACE(WAPI_TX, "<=========%s\n", __FUNCTION__);
--}
--
--u8 SecSWSMS4Decryption(
-- _adapter *padapter,
-- u8 *precv_frame,
-- struct recv_priv *precv_priv
-- )
--{
-- PRT_WAPI_T pWapiInfo = &padapter->wapiInfo;
-- struct recv_frame_hdr *precv_hdr;
-- PRT_WAPI_STA_INFO pWapiSta = NULL;
-- u8 IVOffset, DataOffset, bFindMatchPeer = false, bUseUpdatedKey = false;
-- u8 KeyIdx, MicBuffer[16], lastRxPNforQoS[16];
-- u8 *pRA, *pTA, *pMicKey, *pDataKey, *pLastRxPN, *pRecvPN, *pSecData, *pRecvMic, *pos;
-- u8 TID = 0;
-- u16 OutputLength, DataLen;
-- u8 bQosData;
-- struct sk_buff * pskb;
--
-- WAPI_TRACE(WAPI_RX, "=========>%s\n", __FUNCTION__);
--
-- return 0;
--
-- precv_hdr = &((union recv_frame*)precv_frame)->u.hdr;
-- pskb = (struct sk_buff *)(precv_hdr->rx_data);
-- precv_hdr->bWapiCheckPNInDecrypt = false;
-- WAPI_TRACE(WAPI_RX, "=========>%s: check PN %d\n", __FUNCTION__,precv_hdr->bWapiCheckPNInDecrypt);
-- WAPI_DATA(WAPI_RX, "Decryption - Before decryption", pskb->data, pskb->len);
--
-- IVOffset = sMacHdrLng;
-- bQosData = GetFrameType(pskb->data) == WIFI_QOS_DATA_TYPE;
-- if (bQosData){
-- IVOffset += 2;
-- }
--
-- //if(GetHTC())
-- // IVOffset += 4;
--
-- //IVOffset += SNAP_SIZE + sizeof(u16);
--
-- DataOffset = IVOffset + padapter->wapiInfo.extra_prefix_len;
--
-- pRA = pskb->data + 4;
-- pTA = pskb->data + 10;
-- KeyIdx = *(pskb->data + IVOffset);
-- pRecvPN = pskb->data + IVOffset + 2;
-- pSecData = pskb->data + DataOffset;
-- DataLen = pskb->len - DataOffset;
-- pRecvMic = pskb->data + pskb->len - padapter->wapiInfo.extra_postfix_len;
-- TID = GetTid(pskb->data);
--
-- if (!list_empty(&(pWapiInfo->wapiSTAUsedList))){
-- list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
-- if (!memcmp(pWapiSta->PeerMacAddr, pTA, 6)){
-- bFindMatchPeer = true;
-- break;
-- }
-- }
-- }
--
-- if (!bFindMatchPeer){
-- WAPI_TRACE(WAPI_ERR, "%s: Can not find Peer Sta "MAC_FMT" for Key Info!!!\n", __FUNCTION__, MAC_ARG(pTA));
-- return false;
-- }
--
-- if( IS_MCAST(pRA) ){
-- WAPI_TRACE(WAPI_RX, "%s: Multicast decryption !!!\n", __FUNCTION__);
-- if (pWapiSta->wapiMsk.keyId == KeyIdx && pWapiSta->wapiMsk.bSet){
-- pLastRxPN = pWapiSta->lastRxMulticastPN;
-- if (!WapiComparePN(pRecvPN, pLastRxPN)){
-- WAPI_TRACE(WAPI_ERR, "%s: MSK PN is not larger than last, Dropped!!!\n", __FUNCTION__);
-- WAPI_DATA(WAPI_ERR, "pRecvPN:", pRecvPN, 16);
-- WAPI_DATA(WAPI_ERR, "pLastRxPN:", pLastRxPN, 16);
-- return false;
-- }
--
-- memcpy(pLastRxPN, pRecvPN, 16);
-- pMicKey = pWapiSta->wapiMsk.micKey;
-- pDataKey = pWapiSta->wapiMsk.dataKey;
-- }else if (pWapiSta->wapiMskUpdate.keyId == KeyIdx && pWapiSta->wapiMskUpdate.bSet){
-- WAPI_TRACE(WAPI_RX, "%s: Use Updated MSK for Decryption !!!\n", __FUNCTION__);
-- bUseUpdatedKey = true;
-- memcpy(pWapiSta->lastRxMulticastPN, pRecvPN, 16);
-- pMicKey = pWapiSta->wapiMskUpdate.micKey;
-- pDataKey = pWapiSta->wapiMskUpdate.dataKey;
-- }else{
-- WAPI_TRACE(WAPI_ERR, "%s: Can not find MSK with matched KeyIdx(%d), Dropped !!!\n", __FUNCTION__,KeyIdx);
-- return false;
-- }
-- }
-- else{
-- WAPI_TRACE(WAPI_RX, "%s: Unicast decryption !!!\n", __FUNCTION__);
-- if (pWapiSta->wapiUsk.keyId == KeyIdx && pWapiSta->wapiUsk.bSet){
-- WAPI_TRACE(WAPI_RX, "%s: Use USK for Decryption!!!\n", __FUNCTION__);
-- if(precv_hdr->bWapiCheckPNInDecrypt){
-- if(GetFrameType(pskb->data) == WIFI_QOS_DATA_TYPE){
-- WapiGetLastRxUnicastPNForQoSData(TID, pWapiSta, lastRxPNforQoS);
-- pLastRxPN = lastRxPNforQoS;
-- }else{
-- pLastRxPN = pWapiSta->lastRxUnicastPN;
-- }
-- if (!WapiComparePN(pRecvPN, pLastRxPN)){
-- return false;
-- }
-- if(bQosData){
-- WapiSetLastRxUnicastPNForQoSData(TID, pRecvPN, pWapiSta);
-- }else{
-- memcpy(pWapiSta->lastRxUnicastPN, pRecvPN, 16);
-- }
-- }else{
-- memcpy(precv_hdr->WapiTempPN,pRecvPN,16);
-- }
--
-- if (check_fwstate(&padapter->mlmepriv, WIFI_STATION_STATE))
-- {
-- if ((pRecvPN[0] & 0x1) == 0){
-- WAPI_TRACE(WAPI_ERR, "%s: Rx USK PN is not odd when Infra STA mode, Dropped !!!\n", __FUNCTION__);
-- return false;
-- }
-- }
--
-- pMicKey = pWapiSta->wapiUsk.micKey;
-- pDataKey = pWapiSta->wapiUsk.dataKey;
-- }
-- else if (pWapiSta->wapiUskUpdate.keyId == KeyIdx && pWapiSta->wapiUskUpdate.bSet ){
-- WAPI_TRACE(WAPI_RX, "%s: Use Updated USK for Decryption!!!\n", __FUNCTION__);
-- if(pWapiSta->bAuthenticatorInUpdata)
-- bUseUpdatedKey = true;
-- else
-- bUseUpdatedKey = false;
--
-- if(bQosData){
-- WapiSetLastRxUnicastPNForQoSData(TID, pRecvPN, pWapiSta);
-- }else{
-- memcpy(pWapiSta->lastRxUnicastPN, pRecvPN, 16);
-- }
-- pMicKey = pWapiSta->wapiUskUpdate.micKey;
-- pDataKey = pWapiSta->wapiUskUpdate.dataKey;
-- }else{
-- WAPI_TRACE(WAPI_ERR, "%s: No valid USK!!!KeyIdx=%d pWapiSta->wapiUsk.keyId=%d pWapiSta->wapiUskUpdate.keyId=%d\n", __FUNCTION__, KeyIdx, pWapiSta->wapiUsk.keyId, pWapiSta->wapiUskUpdate.keyId);
-- //dump_buf(pskb->data,pskb->len);
-- return false;
-- }
-- }
--
-- WAPI_DATA(WAPI_RX, "Decryption - DataKey", pDataKey, 16);
-- WAPI_DATA(WAPI_RX, "Decryption - IV", pRecvPN, 16);
-- WapiSMS4Decryption(pDataKey, pRecvPN, pSecData, DataLen, pSecData, &OutputLength);
--
-- if (OutputLength != DataLen)
-- WAPI_TRACE(WAPI_ERR, "%s: Output Length Error!!!!\n", __FUNCTION__);
--
-- WAPI_DATA(WAPI_RX, "Decryption - After decryption", pskb->data, pskb->len);
--
-- DataLen -= padapter->wapiInfo.extra_postfix_len;
--
-- WAPI_DATA(WAPI_RX, "Decryption - MIC received", pRecvMic, SMS4_MIC_LEN);
-- WAPI_DATA(WAPI_RX, "Decryption - MIC calculated", MicBuffer, SMS4_MIC_LEN);
--
-- if (!memcmp(MicBuffer, pRecvMic, padapter->wapiInfo.extra_postfix_len)){
-- WAPI_TRACE(WAPI_RX, "%s: Check MIC OK!!\n", __FUNCTION__);
-- if (bUseUpdatedKey){
-- // delete the old key
-- if ( IS_MCAST(pRA) ){
-- WAPI_TRACE(WAPI_API, "%s(): AE use new update MSK!!\n", __FUNCTION__);
-- pWapiSta->wapiMsk.keyId = pWapiSta->wapiMskUpdate.keyId;
-- memcpy(pWapiSta->wapiMsk.dataKey, pWapiSta->wapiMskUpdate.dataKey, 16);
-- memcpy(pWapiSta->wapiMsk.micKey, pWapiSta->wapiMskUpdate.micKey, 16);
-- pWapiSta->wapiMskUpdate.bTxEnable = pWapiSta->wapiMskUpdate.bSet = false;
-- }else{
-- WAPI_TRACE(WAPI_API, "%s(): AE use new update USK!!\n", __FUNCTION__);
-- pWapiSta->wapiUsk.keyId = pWapiSta->wapiUskUpdate.keyId;
-- memcpy(pWapiSta->wapiUsk.dataKey, pWapiSta->wapiUskUpdate.dataKey, 16);
-- memcpy(pWapiSta->wapiUsk.micKey, pWapiSta->wapiUskUpdate.micKey, 16);
-- pWapiSta->wapiUskUpdate.bTxEnable = pWapiSta->wapiUskUpdate.bSet = false;
-- }
-- }
-- }else{
-- WAPI_TRACE(WAPI_ERR, "%s: Check MIC Error, Dropped !!!!\n", __FUNCTION__);
-- return false;
-- }
--
-- pos = pskb->data;
-- memmove(pos+padapter->wapiInfo.extra_prefix_len, pos, IVOffset);
-- skb_pull(pskb, padapter->wapiInfo.extra_prefix_len);
--
-- WAPI_TRACE(WAPI_RX, "<=========%s\n", __FUNCTION__);
--
-- return true;
--}
--
--u32 rtw_sms4_encrypt(_adapter *padapter, u8 *pxmitframe)
--{
--
-- u8 *pframe;
-- u32 res = _SUCCESS;
--
-- WAPI_TRACE(WAPI_TX, "=========>%s\n", __FUNCTION__);
--
-- if ((!padapter->WapiSupport) || (!padapter->wapiInfo.bWapiEnable))
-- {
-- WAPI_TRACE(WAPI_TX, "<========== %s, WAPI not supported or enabled!\n", __FUNCTION__);
-- return _FAIL;
-- }
--
-- if(((struct xmit_frame*)pxmitframe)->buf_addr==NULL)
-- return _FAIL;
--
-- pframe = ((struct xmit_frame*)pxmitframe)->buf_addr + TXDESC_OFFSET;
--
-- SecSWSMS4Encryption(padapter, pxmitframe);
--
-- WAPI_TRACE(WAPI_TX, "<=========%s\n", __FUNCTION__);
-- return res;
--}
--
--u32 rtw_sms4_decrypt(_adapter *padapter, u8 *precvframe)
--{
-- u8 *pframe;
-- u32 res = _SUCCESS;
--
-- WAPI_TRACE(WAPI_RX, "=========>%s\n", __FUNCTION__);
--
-- if ((!padapter->WapiSupport) || (!padapter->wapiInfo.bWapiEnable))
-- {
-- WAPI_TRACE(WAPI_RX, "<========== %s, WAPI not supported or enabled!\n", __FUNCTION__);
-- return _FAIL;
-- }
--
--
-- //drop packet when hw decrypt fail
-- //return tempraily
-- return _FAIL;
--
-- //pframe=(unsigned char *)((union recv_frame*)precvframe)->u.hdr.rx_data;
--
-- if (false == SecSWSMS4Decryption(padapter, precvframe, &padapter->recvpriv))
-- {
-- WAPI_TRACE(WAPI_ERR, "%s():SMS4 decrypt frame error\n",__FUNCTION__);
-- return _FAIL;
-- }
--
-- WAPI_TRACE(WAPI_RX, "<=========%s\n", __FUNCTION__);
-- return res;
--}
--
--#else
--
--u32 rtw_sms4_encrypt(_adapter *padapter, u8 *pxmitframe)
--{
-- WAPI_TRACE(WAPI_TX, "=========>Dummy %s\n", __FUNCTION__);
-- WAPI_TRACE(WAPI_TX, "<=========Dummy %s\n", __FUNCTION__);
-- return _SUCCESS;
--}
--
--u32 rtw_sms4_decrypt(_adapter *padapter, u8 *precvframe)
--{
-- WAPI_TRACE(WAPI_RX, "=========>Dummy %s\n", __FUNCTION__);
-- WAPI_TRACE(WAPI_RX, "<=========Dummy %s\n", __FUNCTION__);
-- return _SUCCESS;
--}
--
--#endif
--
--#endif
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_wlan_util.c linux/3rdparty/rtl8723bs/core/rtw_wlan_util.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_wlan_util.c 2015-05-10 14:36:05.680668035 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_wlan_util.c 2015-05-07 17:46:55.000000000 +0300
-@@ -101,41 +101,6 @@ int cckratesonly_included(unsigned char
- return true;
- }
-
--u8 networktype_to_raid(_adapter *adapter,struct sta_info *psta)
--{
-- unsigned char raid;
-- switch(psta->wireless_mode)
-- {
-- case WIRELESS_11B:
-- raid = RATR_INX_WIRELESS_B;
-- break;
-- case WIRELESS_11A:
-- case WIRELESS_11G:
-- raid = RATR_INX_WIRELESS_G;
-- break;
-- case WIRELESS_11BG:
-- raid = RATR_INX_WIRELESS_GB;
-- break;
-- case WIRELESS_11_24N:
-- case WIRELESS_11_5N:
-- raid = RATR_INX_WIRELESS_N;
-- break;
-- case WIRELESS_11A_5N:
-- case WIRELESS_11G_24N:
-- raid = RATR_INX_WIRELESS_NG;
-- break;
-- case WIRELESS_11BG_24N:
-- raid = RATR_INX_WIRELESS_NGB;
-- break;
-- default:
-- raid = RATR_INX_WIRELESS_GB;
-- break;
--
-- }
-- return raid;
--
--}
--
- u8 networktype_to_raid_ex(_adapter *adapter, struct sta_info *psta)
- {
- struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv;
-@@ -199,46 +164,6 @@ u8 networktype_to_raid_ex(_adapter *adap
-
- }
-
--u8 judge_network_type(_adapter *padapter, unsigned char *rate, int ratelen)
--{
-- u8 network_type = 0;
-- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
--
--
-- if(pmlmeext->cur_channel > 14)
-- {
-- if (pmlmeinfo->VHT_enable)
-- network_type = WIRELESS_11AC;
-- else if (pmlmeinfo->HT_enable)
-- network_type = WIRELESS_11_5N;
--
-- network_type |= WIRELESS_11A;
-- }
-- else
-- {
-- if (pmlmeinfo->HT_enable)
-- {
-- network_type = WIRELESS_11_24N;
-- }
--
-- if ((cckratesonly_included(rate, ratelen)) == true)
-- {
-- network_type |= WIRELESS_11B;
-- }
-- else if((cckrates_included(rate, ratelen)) == true)
-- {
-- network_type |= WIRELESS_11BG;
-- }
-- else
-- {
-- network_type |= WIRELESS_11G;
-- }
-- }
--
-- return network_type;
--}
--
- unsigned char ratetbl_val_2wifirate(unsigned char rate);
- unsigned char ratetbl_val_2wifirate(unsigned char rate)
- {
-@@ -522,59 +447,6 @@ inline void rtw_set_oper_choffset(_adapt
- adapter_to_dvobj(adapter)->oper_ch_offset = offset;
- }
-
--u8 rtw_get_offset_by_ch(u8 channel)
--{
-- u8 offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
--
-- if(channel>=1 && channel<=4)
-- {
-- offset = HAL_PRIME_CHNL_OFFSET_LOWER;
-- }
-- else if(channel>=5 && channel<=14)
-- {
-- offset = HAL_PRIME_CHNL_OFFSET_UPPER;
-- }
-- else
-- {
-- switch(channel)
-- {
-- case 36:
-- case 44:
-- case 52:
-- case 60:
-- case 100:
-- case 108:
-- case 116:
-- case 124:
-- case 132:
-- case 149:
-- case 157:
-- offset = HAL_PRIME_CHNL_OFFSET_LOWER;
-- break;
-- case 40:
-- case 48:
-- case 56:
-- case 64:
-- case 104:
-- case 112:
-- case 120:
-- case 128:
-- case 136:
-- case 153:
-- case 161:
-- offset = HAL_PRIME_CHNL_OFFSET_UPPER;
-- break;
-- default:
-- offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
-- break;
-- }
--
-- }
--
-- return offset;
--
--}
--
- u8 rtw_get_center_ch(u8 channel, u8 chnl_bw, u8 chnl_offset)
- {
- u8 center_ch = channel;
-@@ -607,11 +479,6 @@ u8 rtw_get_center_ch(u8 channel, u8 chnl
- return center_ch;
- }
-
--inline u32 rtw_get_on_oper_ch_time(_adapter *adapter)
--{
-- return adapter_to_dvobj(adapter)->on_oper_ch_time;
--}
--
- inline unsigned long rtw_get_on_cur_ch_time(_adapter *adapter)
- {
- if (adapter->mlmeextpriv.cur_channel == adapter_to_dvobj(adapter)->oper_channel)
-@@ -624,29 +491,15 @@ void SelectChannel(_adapter *padapter, u
- {
- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-
-- _enter_critical_mutex(&(adapter_to_dvobj(padapter)->setch_mutex), NULL);
-+ if (mutex_lock_interruptible(&(adapter_to_dvobj(padapter)->setch_mutex)))
-+ return;
-
- //saved channel info
- rtw_set_oper_ch(padapter, channel);
-
- rtw_hal_set_chan(padapter, channel);
-
-- _exit_critical_mutex(&(adapter_to_dvobj(padapter)->setch_mutex), NULL);
--}
--
--void SetBWMode(_adapter *padapter, unsigned short bwmode, unsigned char channel_offset)
--{
-- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
--
-- _enter_critical_mutex(&(adapter_to_dvobj(padapter)->setbw_mutex), NULL);
--
-- //saved bw info
-- rtw_set_oper_bw(padapter, bwmode);
-- rtw_set_oper_choffset(padapter, channel_offset);
--
-- rtw_hal_set_bwmode(padapter, (CHANNEL_WIDTH)bwmode, channel_offset);
--
-- _exit_critical_mutex(&(adapter_to_dvobj(padapter)->setbw_mutex), NULL);
-+ mutex_unlock(&(adapter_to_dvobj(padapter)->setch_mutex));
- }
-
- void set_channel_bwmode(_adapter *padapter, unsigned char channel, unsigned char channel_offset, unsigned short bwmode)
-@@ -672,7 +525,8 @@ void set_channel_bwmode(_adapter *padapt
- }
-
- //set Channel
-- _enter_critical_mutex(&(adapter_to_dvobj(padapter)->setch_mutex), NULL);
-+ if (mutex_lock_interruptible(&(adapter_to_dvobj(padapter)->setch_mutex)))
-+ return;
-
- //saved channel/bw info
- rtw_set_oper_ch(padapter, channel);
-@@ -681,23 +535,7 @@ void set_channel_bwmode(_adapter *padapt
-
- rtw_hal_set_chnl_bw(padapter, center_ch, bwmode, channel_offset, chnl_offset80); // set center channel
-
-- _exit_critical_mutex(&(adapter_to_dvobj(padapter)->setch_mutex), NULL);
--}
--
--int get_bsstype(unsigned short capability)
--{
-- if (capability & BIT(0))
-- {
-- return WIFI_FW_AP_STATE;
-- }
-- else if (capability & BIT(1))
-- {
-- return WIFI_FW_ADHOC_STATE;
-- }
-- else
-- {
-- return 0;
-- }
-+ mutex_unlock(&(adapter_to_dvobj(padapter)->setch_mutex));
- }
-
- __inline u8 *get_my_bssid(WLAN_BSSID_EX *pnetwork)
-@@ -784,14 +622,6 @@ unsigned int decide_wait_for_beacon_time
- }
- }
-
--void CAM_empty_entry(
-- PADAPTER Adapter,
-- u8 ucIndex
--)
--{
-- rtw_hal_set_hwreg(Adapter, HW_VAR_CAM_EMPTY_ENTRY, (u8 *)(&ucIndex));
--}
--
- void invalidate_cam_all(_adapter *padapter)
- {
- struct dvobj_priv *dvobj = adapter_to_dvobj(padapter);
-@@ -800,10 +630,10 @@ void invalidate_cam_all(_adapter *padapt
-
- rtw_hal_set_hwreg(padapter, HW_VAR_CAM_INVALID_ALL, NULL);
-
-- _enter_critical_bh(&cam_ctl->lock, &irqL);
-+ spin_lock_bh(&cam_ctl->lock);
- cam_ctl->bitmap = 0;
- memset(dvobj->cam_cache, 0, sizeof(struct cam_entry_cache)*TOTAL_CAM_ENTRY);
-- _exit_critical_bh(&cam_ctl->lock, &irqL);
-+ spin_unlock_bh(&cam_ctl->lock);
- }
-
- static u32 _ReadCAM(_adapter *padapter ,u32 addr)
-@@ -875,12 +705,8 @@ void _clear_cam_entry(_adapter *padapter
-
- inline void write_cam(_adapter *adapter, u8 id, u16 ctrl, u8 *mac, u8 *key)
- {
--#ifdef CONFIG_WRITE_CACHE_ONLY
-- write_cam_cache(adapter, id ,ctrl, mac, key);
--#else
- _write_cam(adapter, id, ctrl, mac, key);
- write_cam_cache(adapter, id ,ctrl, mac, key);
--#endif
- }
-
- inline void clear_cam_entry(_adapter *adapter, u8 id)
-@@ -896,9 +722,9 @@ inline void write_cam_from_cache(_adapte
- _irqL irqL;
- struct cam_entry_cache cache;
-
-- _enter_critical_bh(&cam_ctl->lock, &irqL);
-+ spin_lock_bh(&cam_ctl->lock);
- memcpy(&cache, &dvobj->cam_cache[id], sizeof(struct cam_entry_cache));
-- _exit_critical_bh(&cam_ctl->lock, &irqL);
-+ spin_unlock_bh(&cam_ctl->lock);
-
- _write_cam(adapter, id, cache.ctrl, cache.mac, cache.key);
- }
-@@ -909,13 +735,13 @@ void write_cam_cache(_adapter *adapter,
- struct cam_ctl_t *cam_ctl = &dvobj->cam_ctl;
- _irqL irqL;
-
-- _enter_critical_bh(&cam_ctl->lock, &irqL);
-+ spin_lock_bh(&cam_ctl->lock);
-
- dvobj->cam_cache[id].ctrl = ctrl;
- memcpy(dvobj->cam_cache[id].mac, mac, ETH_ALEN);
- memcpy(dvobj->cam_cache[id].key, key, 16);
-
-- _exit_critical_bh(&cam_ctl->lock, &irqL);
-+ spin_unlock_bh(&cam_ctl->lock);
- }
-
- void clear_cam_cache(_adapter *adapter, u8 id)
-@@ -924,54 +750,11 @@ void clear_cam_cache(_adapter *adapter,
- struct cam_ctl_t *cam_ctl = &dvobj->cam_ctl;
- _irqL irqL;
-
-- _enter_critical_bh(&cam_ctl->lock, &irqL);
-+ spin_lock_bh(&cam_ctl->lock);
-
- memset(&(dvobj->cam_cache[id]), 0, sizeof(struct cam_entry_cache));
-
-- _exit_critical_bh(&cam_ctl->lock, &irqL);
--}
--
--s16 rtw_get_camid(_adapter *adapter, struct sta_info *sta, s16 kid)
--{
-- u8 macid;
-- s16 camid;
--
-- //cam_entry:
-- //0~3 for default key
--
-- //for concurrent mode (ap+sta, sta+sta):
-- //default key is disable, using sw encrypt/decrypt
-- //camid 0, 1, 2, 3 is default entry for default key/group key
-- //macid = 1 is for bc/mc stainfo, no mapping to camid
-- //macid = 0 mapping to camid 4
-- //for macid >=2, camid = macid+3;
--
-- if (sta) {
-- struct mlme_ext_info *mlmeinfo = &adapter->mlmeextpriv.mlmext_info;
-- macid = sta->mac_id;
--
-- if((mlmeinfo->state&0x03) == WIFI_FW_AP_STATE) {
-- if((macid == 1) || (macid>(NUM_STA-4))){
-- DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" failed, mac_id=%d\n", FUNC_ADPT_ARG(adapter), macid);
-- camid = -1;
-- goto exit;
-- }
-- }
--
-- if(macid==0)
-- camid = 4;
-- else if(macid >=2)
-- camid = macid + 3;
-- else
-- camid = 4;
-- }
-- else {
-- /* default key is disabled */
-- camid = -1;
-- }
--
--exit:
-- return (s16)camid;
-+ spin_unlock_bh(&cam_ctl->lock);
- }
-
- static bool _rtw_camid_is_gk(_adapter *adapter, u8 cam_id)
-@@ -1026,9 +809,9 @@ s16 rtw_camid_search(_adapter *adapter,
- _irqL irqL;
- s16 cam_id = -1;
-
-- _enter_critical_bh(&cam_ctl->lock, &irqL);
-+ spin_lock_bh(&cam_ctl->lock);
- cam_id = _rtw_camid_search(adapter, addr, kid);
-- _exit_critical_bh(&cam_ctl->lock, &irqL);
-+ spin_unlock_bh(&cam_ctl->lock);
-
- return cam_id;
- }
-@@ -1039,75 +822,70 @@ s16 rtw_camid_alloc(_adapter *adapter, s
- struct cam_ctl_t *cam_ctl = &dvobj->cam_ctl;
- _irqL irqL;
- s16 cam_id = -1;
-+ struct mlme_ext_info *mlmeinfo;
-
-- _enter_critical_bh(&cam_ctl->lock, &irqL);
-+ spin_lock_bh(&cam_ctl->lock);
-
--#ifdef DYNAMIC_CAMID_ALLOC
-- {
-- struct mlme_ext_info *mlmeinfo = &adapter->mlmeextpriv.mlmext_info;
-+ mlmeinfo = &adapter->mlmeextpriv.mlmext_info;
-
-- if((((mlmeinfo->state&0x03) == WIFI_FW_AP_STATE) || ((mlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE))
-- && !sta) {
-- /* AP/Ad-hoc mode group key: static alloction to default key by key ID */
-- if (kid > 3) {
-- DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" group key with invalid key id:%u\n"
-- , FUNC_ADPT_ARG(adapter), kid);
-- rtw_warn_on(1);
-- goto bitmap_handle;
-- }
--
-- cam_id = kid;
-+ if((((mlmeinfo->state&0x03) == WIFI_FW_AP_STATE) || ((mlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE))
-+ && !sta) {
-+ /* AP/Ad-hoc mode group key: static alloction to default key by key ID */
-+ if (kid > 3) {
-+ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" group key with invalid key id:%u\n"
-+ , FUNC_ADPT_ARG(adapter), kid);
-+ rtw_warn_on(1);
-+ goto bitmap_handle;
- }
-- else {
-- int i;
-- u8 *addr = sta?sta->hwaddr:NULL;
--
-- if(!sta) {
-- if (!(mlmeinfo->state & WIFI_FW_ASSOC_SUCCESS)) {
-- /* bypass STA mode group key setting before connected(ex:WEP) because bssid is not ready */
-- goto bitmap_handle;
-- }
-
-- addr = get_bssid(&adapter->mlmepriv);
-- }
-+ cam_id = kid;
-+ }
-+ else {
-+ int i;
-+ u8 *addr = sta?sta->hwaddr:NULL;
-
-- if ((i = _rtw_camid_search(adapter, addr, kid)) >= 0) {
-- /* Fix issue that pairwise and group key have same key id. Pairwise key first, group key can overwirte group only(ex: rekey) */
-- if (sta || _rtw_camid_is_gk(adapter, i) == true)
-- cam_id = i;
-- else
-- DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" group key id:%u the same key id as pairwise key\n"
-- , FUNC_ADPT_ARG(adapter), kid);
-+ if(!sta) {
-+ if (!(mlmeinfo->state & WIFI_FW_ASSOC_SUCCESS)) {
-+ /* bypass STA mode group key setting before connected(ex:WEP) because bssid is not ready */
- goto bitmap_handle;
- }
-
-- for (i=4;ibitmap & BIT(i)))
-- break;
-+ addr = get_bssid(&adapter->mlmepriv);
-+ }
-
-- if (i == TOTAL_CAM_ENTRY) {
-- if (sta)
-- DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" pairwise key with "MAC_FMT" id:%u no room\n"
-- , FUNC_ADPT_ARG(adapter), MAC_ARG(sta->hwaddr), kid);
-- else
-- DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" group key id:%u no room\n"
-+ if ((i = _rtw_camid_search(adapter, addr, kid)) >= 0) {
-+ /* Fix issue that pairwise and group key have same key id. Pairwise key first, group key can overwirte group only(ex: rekey) */
-+ if (sta || _rtw_camid_is_gk(adapter, i) == true)
-+ cam_id = i;
-+ else
-+ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" group key id:%u the same key id as pairwise key\n"
- , FUNC_ADPT_ARG(adapter), kid);
-- rtw_warn_on(1);
-- goto bitmap_handle;
-- }
-+ goto bitmap_handle;
-+ }
-+
-+ for (i=4;ibitmap & BIT(i)))
-+ break;
-
-- cam_id = i;
-+ if (i == TOTAL_CAM_ENTRY) {
-+ if (sta)
-+ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" pairwise key with "MAC_FMT" id:%u no room\n"
-+ , FUNC_ADPT_ARG(adapter), MAC_ARG(sta->hwaddr), kid);
-+ else
-+ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" group key id:%u no room\n"
-+ , FUNC_ADPT_ARG(adapter), kid);
-+ rtw_warn_on(1);
-+ goto bitmap_handle;
- }
-+
-+ cam_id = i;
- }
--#else
-- cam_id = rtw_get_camid(adapter, sta, kid);
--#endif /* DYNAMIC_CAMID_ALLOC */
-
- bitmap_handle:
- if (cam_id >= 0)
- cam_ctl->bitmap |= BIT(cam_id);
-
-- _exit_critical_bh(&cam_ctl->lock, &irqL);
-+ spin_unlock_bh(&cam_ctl->lock);
-
- return cam_id;
- }
-@@ -1118,12 +896,12 @@ void rtw_camid_free(_adapter *adapter, u
- struct cam_ctl_t *cam_ctl = &dvobj->cam_ctl;
- _irqL irqL;
-
-- _enter_critical_bh(&cam_ctl->lock, &irqL);
-+ spin_lock_bh(&cam_ctl->lock);
-
- if (cam_id < TOTAL_CAM_ENTRY)
- cam_ctl->bitmap &= ~(BIT(cam_id));
-
-- _exit_critical_bh(&cam_ctl->lock, &irqL);
-+ spin_unlock_bh(&cam_ctl->lock);
- }
-
- int allocate_fw_sta_entry(_adapter *padapter)
-@@ -1153,9 +931,7 @@ void flush_all_cam_entry(_adapter *padap
-
- invalidate_cam_all(padapter);
- /* clear default key related key search setting */
-- #ifdef DYNAMIC_CAMID_ALLOC
- rtw_hal_set_hwreg(padapter, HW_VAR_SEC_DK_CFG, (u8*)false);
-- #endif
-
- memset((u8 *)(pmlmeinfo->FW_sta_info), 0, sizeof(pmlmeinfo->FW_sta_info));
-
-@@ -1221,8 +997,7 @@ void WMMOnAssocRsp(_adapter *padapter)
-
- acm_mask = 0;
-
-- if (IsSupported5G(pmlmeext->cur_wireless_mode) ||
-- (pmlmeext->cur_wireless_mode & WIRELESS_11_24N) )
-+ if (pmlmeext->cur_wireless_mode & WIRELESS_11_24N)
- aSifsTime = 16;
- else
- aSifsTime = 10;
-@@ -1916,11 +1691,11 @@ int rtw_check_bcn_info(ADAPTER *Adapter,
- }
- }
-
-- rtw_mfree((u8 *)bssid, sizeof(WLAN_BSSID_EX));
-+ kfree((u8 *)bssid);
- return _SUCCESS;
-
- _mismatch:
-- rtw_mfree((u8 *)bssid, sizeof(WLAN_BSSID_EX));
-+ kfree((u8 *)bssid);
-
- if (pmlmepriv->NumOfBcnInfoChkFail == 0)
- {
-@@ -2030,190 +1805,6 @@ unsigned int is_ap_in_tkip(_adapter *pad
-
- }
-
--unsigned int should_forbid_n_rate(_adapter * padapter)
--{
-- u32 i;
-- PNDIS_802_11_VARIABLE_IEs pIE;
-- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-- WLAN_BSSID_EX *cur_network = &pmlmepriv->cur_network.network;
--
-- if (rtw_get_capability((WLAN_BSSID_EX *)cur_network) & WLAN_CAPABILITY_PRIVACY)
-- {
-- for (i = sizeof(NDIS_802_11_FIXED_IEs); i < cur_network->IELength;)
-- {
-- pIE = (PNDIS_802_11_VARIABLE_IEs)(cur_network->IEs + i);
--
-- switch (pIE->ElementID)
-- {
-- case _VENDOR_SPECIFIC_IE_:
-- if (!memcmp(pIE->data, RTW_WPA_OUI, 4) &&
-- ((!memcmp((pIE->data + 12), WPA_CIPHER_SUITE_CCMP, 4)) ||
-- (!memcmp((pIE->data + 16), WPA_CIPHER_SUITE_CCMP, 4))))
-- return false;
-- break;
--
-- case _RSN_IE_2_:
-- if ((!memcmp((pIE->data + 8), RSN_CIPHER_SUITE_CCMP, 4)) ||
-- (!memcmp((pIE->data + 12), RSN_CIPHER_SUITE_CCMP, 4)))
-- return false;
--
-- default:
-- break;
-- }
--
-- i += (pIE->Length + 2);
-- }
--
-- return true;
-- }
-- else
-- {
-- return false;
-- }
--
--}
--
--
--unsigned int is_ap_in_wep(_adapter *padapter)
--{
-- u32 i;
-- PNDIS_802_11_VARIABLE_IEs pIE;
-- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-- WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network);
--
-- if (rtw_get_capability((WLAN_BSSID_EX *)cur_network) & WLAN_CAPABILITY_PRIVACY)
-- {
-- for (i = sizeof(NDIS_802_11_FIXED_IEs); i < pmlmeinfo->network.IELength;)
-- {
-- pIE = (PNDIS_802_11_VARIABLE_IEs)(pmlmeinfo->network.IEs + i);
--
-- switch (pIE->ElementID)
-- {
-- case _VENDOR_SPECIFIC_IE_:
-- if (!memcmp(pIE->data, RTW_WPA_OUI, 4))
-- return false;
-- break;
--
-- case _RSN_IE_2_:
-- return false;
--
-- default:
-- break;
-- }
--
-- i += (pIE->Length + 2);
-- }
--
-- return true;
-- }
-- else
-- {
-- return false;
-- }
--
--}
--
--int wifirate2_ratetbl_inx(unsigned char rate);
--int wifirate2_ratetbl_inx(unsigned char rate)
--{
-- int inx = 0;
-- rate = rate & 0x7f;
--
-- switch (rate)
-- {
-- case 54*2:
-- inx = 11;
-- break;
--
-- case 48*2:
-- inx = 10;
-- break;
--
-- case 36*2:
-- inx = 9;
-- break;
--
-- case 24*2:
-- inx = 8;
-- break;
--
-- case 18*2:
-- inx = 7;
-- break;
--
-- case 12*2:
-- inx = 6;
-- break;
--
-- case 9*2:
-- inx = 5;
-- break;
--
-- case 6*2:
-- inx = 4;
-- break;
--
-- case 11*2:
-- inx = 3;
-- break;
-- case 11:
-- inx = 2;
-- break;
--
-- case 2*2:
-- inx = 1;
-- break;
--
-- case 1*2:
-- inx = 0;
-- break;
--
-- }
-- return inx;
--}
--
--unsigned int update_basic_rate(unsigned char *ptn, unsigned int ptn_sz)
--{
-- unsigned int i, num_of_rate;
-- unsigned int mask = 0;
--
-- num_of_rate = (ptn_sz > NumRates)? NumRates: ptn_sz;
--
-- for (i = 0; i < num_of_rate; i++)
-- {
-- if ((*(ptn + i)) & 0x80)
-- {
-- mask |= 0x1 << wifirate2_ratetbl_inx(*(ptn + i));
-- }
-- }
-- return mask;
--}
--
--unsigned int update_supported_rate(unsigned char *ptn, unsigned int ptn_sz)
--{
-- unsigned int i, num_of_rate;
-- unsigned int mask = 0;
--
-- num_of_rate = (ptn_sz > NumRates)? NumRates: ptn_sz;
--
-- for (i = 0; i < num_of_rate; i++)
-- {
-- mask |= 0x1 << wifirate2_ratetbl_inx(*(ptn + i));
-- }
--
-- return mask;
--}
--
--unsigned int update_MCS_rate(struct HT_caps_element *pHT_caps)
--{
-- unsigned int mask = 0;
--
-- mask = ((pHT_caps->u.HT_cap_element.MCS_rate[0] << 12) | (pHT_caps->u.HT_cap_element.MCS_rate[1] << 20));
--
-- return mask;
--}
--
- int support_short_GI(_adapter *padapter, struct HT_caps_element *pHT_caps, u8 bwmode)
- {
- unsigned char bit_offset;
-@@ -2252,24 +1843,6 @@ unsigned char get_highest_rate_idx(u32 m
- return rate_idx;
- }
-
--unsigned char get_highest_mcs_rate(struct HT_caps_element *pHT_caps);
--unsigned char get_highest_mcs_rate(struct HT_caps_element *pHT_caps)
--{
-- int i, mcs_rate;
--
-- mcs_rate = (pHT_caps->u.HT_cap_element.MCS_rate[0] | (pHT_caps->u.HT_cap_element.MCS_rate[1] << 8));
--
-- for (i = 15; i >= 0; i--)
-- {
-- if (mcs_rate & (0x1 << i))
-- {
-- break;
-- }
-- }
--
-- return i;
--}
--
- void Update_RA_Entry(_adapter *padapter, struct sta_info *psta)
- {
- rtw_hal_update_ra_mask(psta, 0);
-@@ -2287,38 +1860,6 @@ void set_sta_rate(_adapter *padapter, st
- enable_rate_adaptive(padapter, psta);
- }
-
--// Update RRSR and Rate for USERATE
--void update_tx_basic_rate(_adapter *padapter, u8 wirelessmode)
--{
-- NDIS_802_11_RATES_EX supported_rates;
-- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
--#ifdef CONFIG_INTEL_WIDI
-- if (padapter->mlmepriv.widi_state != INTEL_WIDI_STATE_NONE)
-- return;
--#endif //CONFIG_INTEL_WIDI
--
-- memset(supported_rates, 0, NDIS_802_11_LENGTH_RATES_EX);
--
-- //clear B mod if current channel is in 5G band, avoid tx cck rate in 5G band.
-- if(pmlmeext->cur_channel > 14)
-- wirelessmode &= ~(WIRELESS_11B);
--
-- if ((wirelessmode & WIRELESS_11B) && (wirelessmode == WIRELESS_11B)) {
-- memcpy(supported_rates, rtw_basic_rate_cck, 4);
-- } else if (wirelessmode & WIRELESS_11B) {
-- memcpy(supported_rates, rtw_basic_rate_mix, 7);
-- } else {
-- memcpy(supported_rates, rtw_basic_rate_ofdm, 3);
-- }
--
-- if (wirelessmode & WIRELESS_11B)
-- update_mgnt_tx_rate(padapter, IEEE80211_CCK_RATE_1MB);
-- else
-- update_mgnt_tx_rate(padapter, IEEE80211_OFDM_RATE_6MB);
--
-- rtw_hal_set_hwreg(padapter, HW_VAR_BASIC_RATE, supported_rates);
--}
--
- unsigned char check_assoc_AP(u8 *pframe, uint len)
- {
- unsigned int i;
-@@ -2338,7 +1879,7 @@ unsigned char check_assoc_AP(u8 *pframe,
- }
- else if ((!memcmp(pIE->data, BROADCOM_OUI1, 3))
- || (!memcmp(pIE->data, BROADCOM_OUI2, 3))
-- || (!memcmp(pIE->data, BROADCOM_OUI2, 3)))
-+ || (!memcmp(pIE->data, BROADCOM_OUI3, 3)))
- {
- DBG_871X("link to Broadcom AP\n");
- return HT_IOT_PEER_BROADCOM;
-@@ -2797,7 +2338,7 @@ void rtw_alloc_macid(_adapter *padapter,
- return;
- }
-
-- _enter_critical_bh(&pdvobj->lock, &irqL);
-+ spin_lock_bh(&pdvobj->lock);
- for(i=0; imacid[i] == false)
-@@ -2806,7 +2347,7 @@ void rtw_alloc_macid(_adapter *padapter,
- break;
- }
- }
-- _exit_critical_bh(&pdvobj->lock, &irqL);
-+ spin_unlock_bh(&pdvobj->lock);
-
- if( i > (NUM_STA-1))
- {
-@@ -2837,7 +2378,7 @@ void rtw_release_macid(_adapter *padapte
- return;
- }
-
-- _enter_critical_bh(&pdvobj->lock, &irqL);
-+ spin_lock_bh(&pdvobj->lock);
- if(psta->mac_idmac_id !=1 )
- {
- if(pdvobj->macid[psta->mac_id] == true)
-@@ -2848,7 +2389,7 @@ void rtw_release_macid(_adapter *padapte
- }
-
- }
-- _exit_critical_bh(&pdvobj->lock, &irqL);
-+ spin_unlock_bh(&pdvobj->lock);
-
- }
- //For 8188E RA
-@@ -2858,7 +2399,7 @@ u8 rtw_search_max_mac_id(_adapter *padap
- struct dvobj_priv *pdvobj = adapter_to_dvobj(padapter);
- int i;
- _irqL irqL;
-- _enter_critical_bh(&pdvobj->lock, &irqL);
-+ spin_lock_bh(&pdvobj->lock);
- for(i=(NUM_STA-1); i>=0 ; i--)
- {
- if(pdvobj->macid[i] == true)
-@@ -2867,7 +2408,7 @@ u8 rtw_search_max_mac_id(_adapter *padap
- }
- }
- max_mac_id = i;
-- _exit_critical_bh(&pdvobj->lock, &irqL);
-+ spin_unlock_bh(&pdvobj->lock);
-
- return max_mac_id;
-
-@@ -2892,93 +2433,6 @@ _adapter *dvobj_get_port0_adapter(struct
- return port0_iface;
- }
-
--/*
-- * Description:
-- * rtw_check_invalid_mac_address:
-- * This is only used for checking mac address valid or not.
-- *
-- * Input:
-- * adapter: mac_address pointer.
-- *
-- * Output:
-- * true: The mac address is invalid.
-- * false: The mac address is valid.
-- *
-- * Auther: Isaac.Li
-- */
--u8 rtw_check_invalid_mac_address(u8 *mac_addr) {
-- u8 null_mac_addr[ETH_ALEN] = {0, 0, 0, 0, 0, 0};
-- u8 multi_mac_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
-- u8 res = false;
--
-- if (!memcmp(mac_addr, null_mac_addr, ETH_ALEN)) {
-- res = true;
-- goto func_exit;
-- }
--
-- if (!memcmp(mac_addr, multi_mac_addr, ETH_ALEN)) {
-- res = true;
-- goto func_exit;
-- }
--
-- if (mac_addr[0] & BIT0) {
-- res = true;
-- goto func_exit;
-- }
--
-- if (mac_addr[0] & BIT1) {
-- res = true;
-- goto func_exit;
-- }
--
--func_exit:
-- return res;
--}
--
--/*
-- * Description:
-- * dump_TX_FIFO: This is only used to dump TX_FIFO for debug WoW mode offload
-- * contant.
-- *
-- * Input:
-- * adapter: adapter pointer.
-- * page_num: The max. page number that user want to dump.
-- * page_size: page size of each page. eg. 128 bytes, 256 bytes.
-- */
--void dump_TX_FIFO(_adapter* padapter, u8 page_num, u16 page_size){
--
-- int i;
-- u8 val = 0;
-- u8 base = 0;
-- u32 addr = 0;
-- u32 count = (page_size / 8);
--
-- if (page_num <= 0) {
-- DBG_871X("!!%s: incorrect input page_num paramter!\n", __func__);
-- return;
-- }
--
-- if (page_size < 128 || page_size > 256) {
-- DBG_871X("!!%s: incorrect input page_size paramter!\n", __func__);
-- return;
-- }
--
-- DBG_871X("+%s+\n", __func__);
-- val = rtw_read8(padapter, 0x106);
-- rtw_write8(padapter, 0x106, 0x69);
-- DBG_871X("0x106: 0x%02x\n", val);
-- base = rtw_read8(padapter, 0x209);
-- DBG_871X("0x209: 0x%02x\n", base);
--
-- addr = ((base) * page_size)/8;
-- for (i = 0 ; i < page_num * count ; i+=2) {
-- rtw_write32(padapter, 0x140, addr + i);
-- printk(" %08x %08x ", rtw_read32(padapter, 0x144), rtw_read32(padapter, 0x148));
-- rtw_write32(padapter, 0x140, addr + i + 1);
-- printk(" %08x %08x \n", rtw_read32(padapter, 0x144), rtw_read32(padapter, 0x148));
-- }
--}
--
- #ifdef CONFIG_GPIO_API
- int rtw_get_gpio(struct net_device *netdev, int gpio_num)
- {
-@@ -3165,334 +2619,5 @@ void rtw_set_sec_pn(PADAPTER padapter)
- #define CIPHER_NONE "NONE"
- #define CIPHER_WPA_PSK "WPA-PSK"
- #define CIPHER_WPA_EAP "WPA-EAP IEEE8021X"
--/*
-- * SSIDs list parsing from cscan tlv list
-- */
--int rtw_parse_ssid_list_tlv(char** list_str, pno_ssid_t* ssid,
-- int max, int *bytes_left) {
-- char* str;
--
-- int idx = 0;
--
-- if ((list_str == NULL) || (*list_str == NULL) || (*bytes_left < 0)) {
-- DBG_871X("%s error paramters\n", __func__);
-- return -1;
-- }
--
-- str = *list_str;
-- while (*bytes_left > 0) {
--
-- if (str[0] != CSCAN_TLV_TYPE_SSID_IE) {
-- *list_str = str;
-- DBG_871X("nssid=%d left_parse=%d %d\n", idx, *bytes_left, str[0]);
-- return idx;
-- }
--
-- /* Get proper CSCAN_TLV_TYPE_SSID_IE */
-- *bytes_left -= 1;
-- str += 1;
--
-- if (str[0] == 0) {
-- /* Broadcast SSID */
-- ssid[idx].SSID_len = 0;
-- memset((char*)ssid[idx].SSID, 0x0, WLAN_SSID_MAXLEN);
-- *bytes_left -= 1;
-- str += 1;
--
-- DBG_871X("BROADCAST SCAN left=%d\n", *bytes_left);
-- }
-- else if (str[0] <= WLAN_SSID_MAXLEN) {
-- /* Get proper SSID size */
-- ssid[idx].SSID_len = str[0];
-- *bytes_left -= 1;
-- str += 1;
--
-- /* Get SSID */
-- if (ssid[idx].SSID_len > *bytes_left) {
-- DBG_871X("%s out of memory range len=%d but left=%d\n",
-- __func__, ssid[idx].SSID_len, *bytes_left);
-- return -1;
-- }
--
-- memcpy((char*)ssid[idx].SSID, str, ssid[idx].SSID_len);
--
-- *bytes_left -= ssid[idx].SSID_len;
-- str += ssid[idx].SSID_len;
--
-- DBG_871X("%s :size=%d left=%d\n",
-- (char*)ssid[idx].SSID, ssid[idx].SSID_len, *bytes_left);
-- }
-- else {
-- DBG_871X("### SSID size more that %d\n", str[0]);
-- return -1;
-- }
--
-- if (idx++ > max) {
-- DBG_871X("%s number of SSIDs more that %d\n", __func__, idx);
-- return -1;
-- }
-- }
--
-- *list_str = str;
-- return idx;
--}
--
--int rtw_parse_cipher_list(struct pno_nlo_info *nlo_info, char* list_str) {
--
-- char *pch, *pnext, *pend;
-- u8 key_len = 0, index = 0;
--
-- pch = list_str;
--
-- if (nlo_info == NULL || list_str == NULL) {
-- DBG_871X("%s error paramters\n", __func__);
-- return -1;
-- }
--
-- while (strlen(pch) != 0) {
-- pnext = strstr(pch, "key_mgmt=");
-- if (pnext != NULL) {
-- pch = pnext + strlen(CIPHER_IE);
-- pend = strstr(pch, "}");
-- if (strncmp(pch, CIPHER_NONE,
-- strlen(CIPHER_NONE)) == 0) {
-- nlo_info->ssid_cipher_info[index] = 0x00;
-- } else if (strncmp(pch, CIPHER_WPA_PSK,
-- strlen(CIPHER_WPA_PSK)) == 0) {
-- nlo_info->ssid_cipher_info[index] = 0x66;
-- } else if (strncmp(pch, CIPHER_WPA_EAP,
-- strlen(CIPHER_WPA_EAP)) == 0) {
-- nlo_info->ssid_cipher_info[index] = 0x01;
-- }
-- index ++;
-- pch = pend + 1;
-- } else {
-- break;
-- }
-- }
-- return 0;
--}
--
--int rtw_dev_nlo_info_set(struct pno_nlo_info *nlo_info, pno_ssid_t* ssid,
-- int num, int pno_time, int pno_repeat, int pno_freq_expo_max) {
--
-- int i = 0;
-- struct file *fp;
-- mm_segment_t fs;
-- loff_t pos = 0;
-- u8 *source = NULL;
-- long len = 0;
--
-- DBG_871X("+%s+\n", __func__);
--
-- nlo_info->fast_scan_period = pno_time;
-- nlo_info->ssid_num = num & BIT_LEN_MASK_32(8);
-- nlo_info->slow_scan_period = (pno_time * 2);
-- nlo_info->fast_scan_iterations = 5;
--
-- //TODO: channel list and probe index is all empty.
-- for (i = 0 ; i < num ; i++) {
-- nlo_info->ssid_length[i]
-- = ssid[i].SSID_len;
-- }
--
-- /* cipher array */
-- fp = filp_open("/data/misc/wifi/wpa_supplicant.conf", O_RDONLY, 0644);
-- if (IS_ERR(fp)) {
-- DBG_871X("Error, wpa_supplicant.conf doesn't exist.\n");
-- DBG_871X("Error, cipher array using default value.\n");
-- return 0;
-- }
--
-- len = i_size_read(fp->f_path.dentry->d_inode);
-- if (len < 0 || len > 2048) {
-- DBG_871X("Error, file size is bigger than 2048.\n");
-- DBG_871X("Error, cipher array using default value.\n");
-- return 0;
-- }
--
-- fs = get_fs();
-- set_fs(KERNEL_DS);
--
-- source = rtw_zmalloc(2048);
--
-- if (source != NULL) {
-- len = vfs_read(fp, source, len, &pos);
-- rtw_parse_cipher_list(nlo_info, source);
-- rtw_mfree(source, 2048);
-- }
--
-- set_fs(fs);
-- filp_close(fp, NULL);
--
-- DBG_871X("-%s-\n", __func__);
-- return 0;
--}
--
--int rtw_dev_ssid_list_set(struct pno_ssid_list *pno_ssid_list,
-- pno_ssid_t* ssid, u8 num) {
--
-- int i = 0;
-- if(num > MAX_PNO_LIST_COUNT)
-- num = MAX_PNO_LIST_COUNT;
--
-- for (i = 0 ; i < num ; i++) {
-- memcpy(&pno_ssid_list->node[i].SSID,
-- ssid[i].SSID, ssid[i].SSID_len);
-- }
-- return 0;
--}
--
--int rtw_dev_scan_info_set(_adapter *padapter, pno_ssid_t* ssid,
-- unsigned char ch, unsigned char ch_offset, unsigned short bw_mode) {
--
-- struct pwrctrl_priv *pwrctl = adapter_to_pwrctl(padapter);
-- struct pno_scan_info *scan_info = pwrctl->pscan_info;
-- int i;
--
-- scan_info->channel_num = MAX_SCAN_LIST_COUNT;
-- scan_info->orig_ch = ch;
-- scan_info->orig_bw = bw_mode;
-- scan_info->orig_40_offset = ch_offset;
--
-- for(i = 0 ; i < scan_info->channel_num ; i++) {
-- if (i < 11)
-- scan_info->ssid_channel_info[i].active = 1;
-- else
-- scan_info->ssid_channel_info[i].active = 0;
--
-- scan_info->ssid_channel_info[i].timeout = 100;
--
-- scan_info->ssid_channel_info[i].tx_power =
-- PHY_GetTxPowerIndex(padapter, 0, 0x02, bw_mode, i+1);
--
-- scan_info->ssid_channel_info[i].channel = i+1;
-- }
-
-- DBG_871X("%s, channel_num: %d, orig_ch: %d, orig_bw: %d orig_40_offset: %d\n",
-- __func__, scan_info->channel_num, scan_info->orig_ch,
-- scan_info->orig_bw, scan_info->orig_40_offset);
-- return 0;
--}
--
--int rtw_dev_pno_set(struct net_device *net, pno_ssid_t* ssid, int num,
-- int pno_time, int pno_repeat, int pno_freq_expo_max) {
--
-- _adapter *padapter = (_adapter *)rtw_netdev_priv(net);
-- struct pwrctrl_priv *pwrctl = adapter_to_pwrctl(padapter);
-- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
--
-- int ret = -1;
--
-- if (num == 0) {
-- DBG_871X("%s, nssid is zero, no need to setup pno ssid list\n", __func__);
-- return 0;
-- }
--
-- if (pwrctl == NULL) {
-- DBG_871X("%s, ERROR: pwrctl is NULL\n", __func__);
-- return -1;
-- } else {
-- pwrctl->pnlo_info =
-- (pno_nlo_info_t*)rtw_zmalloc(sizeof(pno_nlo_info_t));
-- pwrctl->pno_ssid_list =
-- (pno_ssid_list_t*)rtw_zmalloc(sizeof(pno_ssid_list_t));
-- pwrctl->pscan_info =
-- (pno_scan_info_t*)rtw_zmalloc(sizeof(pno_scan_info_t));
-- }
--
-- if (pwrctl->pnlo_info == NULL ||
-- pwrctl->pscan_info == NULL ||
-- pwrctl->pno_ssid_list == NULL){
-- DBG_871X("%s, ERROR: alloc nlo_info, ssid_list, scan_info fail\n", __func__);
-- goto failing;
-- }
--
-- pwrctl->pno_in_resume = false;
--
-- pwrctl->pno_inited = true;
-- /* NLO Info */
-- ret = rtw_dev_nlo_info_set(pwrctl->pnlo_info, ssid, num,
-- pno_time, pno_repeat, pno_freq_expo_max);
--
-- /* SSID Info */
-- ret = rtw_dev_ssid_list_set(pwrctl->pno_ssid_list, ssid, num);
--
-- /* SCAN Info */
-- ret = rtw_dev_scan_info_set(padapter, ssid, pmlmeext->cur_channel,
-- pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
--
-- DBG_871X("+%s num: %d, pno_time: %d, pno_repeat:%d, pno_freq_expo_max:%d+\n",
-- __func__, num, pno_time, pno_repeat, pno_freq_expo_max);
--
-- return 0;
--
--failing:
-- if (pwrctl->pnlo_info) {
-- rtw_mfree(pwrctl->pnlo_info, sizeof(pno_nlo_info_t));
-- pwrctl->pnlo_info = NULL;
-- }
-- if (pwrctl->pno_ssid_list) {
-- rtw_mfree(pwrctl->pno_ssid_list, sizeof(pno_ssid_list_t));
-- pwrctl->pno_ssid_list = NULL;
-- }
-- if (pwrctl->pscan_info) {
-- rtw_mfree(pwrctl->pscan_info, sizeof(pno_scan_info_t));
-- pwrctl->pscan_info = NULL;
-- }
--
-- return -1;
--}
--
--#ifdef CONFIG_PNO_SET_DEBUG
--void rtw_dev_pno_debug(struct net_device *net) {
-- _adapter *padapter = (_adapter *)rtw_netdev_priv(net);
-- struct pwrctrl_priv *pwrctl = adapter_to_pwrctl(padapter);
-- int i = 0, j = 0;
--
-- DBG_871X("*******NLO_INFO********\n");
-- DBG_871X("ssid_num: %d\n", pwrctl->pnlo_info->ssid_num);
-- DBG_871X("fast_scan_iterations: %d\n",
-- pwrctl->pnlo_info->fast_scan_iterations);
-- DBG_871X("fast_scan_period: %d\n", pwrctl->pnlo_info->fast_scan_period);
-- DBG_871X("slow_scan_period: %d\n", pwrctl->pnlo_info->slow_scan_period);
-- DBG_871X("ssid_length: ");
-- for (i = 0 ; i < MAX_PNO_LIST_COUNT ; i++) {
-- printk("%d, ", pwrctl->pnlo_info->ssid_length[i]);
-- }
-- DBG_871X("\n");
--
-- DBG_871X("cipher_info: ");
-- for (i = 0 ; i < MAX_PNO_LIST_COUNT ; i++) {
-- DBG_871X("%d, ", pwrctl->pnlo_info->ssid_cipher_info[i]);
-- }
-- DBG_871X("\n");
--
-- DBG_871X("channel_info: ");
-- for (i = 0 ; i < MAX_PNO_LIST_COUNT ; i++) {
-- DBG_871X("%d, ", pwrctl->pnlo_info->ssid_channel_info[i]);
-- }
-- DBG_871X("\n");
--
-- DBG_871X("******SSID_LISD******\n");
-- for (i = 0 ; i < MAX_PNO_LIST_COUNT ; i++) {
-- DBG_871X("[%d]SSID: %s \n", i,
-- pwrctl->pno_ssid_list->node[i].SSID);
-- }
--
-- DBG_871X("******SCAN_INFO******\n");
-- DBG_871X("ch_num: %d\n", pwrctl->pscan_info->channel_num);
-- DBG_871X("orig_ch: %d\n", pwrctl->pscan_info->orig_ch);
-- DBG_871X("orig bw: %d\n", pwrctl->pscan_info->orig_bw);
-- DBG_871X("orig 40 offset: %d\n", pwrctl->pscan_info->orig_40_offset);
-- for(i = 0 ; i < MAX_SCAN_LIST_COUNT ; i++) {
-- DBG_871X("[%02d] avtive:%d, timeout:%d, tx_power:%d, ch:%02d\n",
-- i, pwrctl->pscan_info->ssid_channel_info[i].active,
-- pwrctl->pscan_info->ssid_channel_info[i].timeout,
-- pwrctl->pscan_info->ssid_channel_info[i].tx_power,
-- pwrctl->pscan_info->ssid_channel_info[i].channel);
-- }
-- DBG_871X("*****************\n");
--}
--#endif //CONFIG_PNO_SET_DEBUG
- #endif //CONFIG_PNO_SUPPORT
-diff -Nurp linux/3rdparty/rtl8723bs.old/core/rtw_xmit.c linux/3rdparty/rtl8723bs/core/rtw_xmit.c
---- linux/3rdparty/rtl8723bs.old/core/rtw_xmit.c 2015-05-10 14:36:05.681668046 +0300
-+++ linux/3rdparty/rtl8723bs/core/rtw_xmit.c 2015-05-07 17:46:55.000000000 +0300
-@@ -27,7 +27,7 @@ static u8 RFC1042_OUI[P80211_OUI_LEN] =
- static void _init_txservq(struct tx_servq *ptxservq)
- {
- _func_enter_;
-- _rtw_init_listhead(&ptxservq->tx_pending);
-+ INIT_LIST_HEAD(&ptxservq->tx_pending);
- _rtw_init_queue(&ptxservq->sta_pending);
- ptxservq->qcnt = 0;
- _func_exit_;
-@@ -50,8 +50,8 @@ _func_enter_;
- _init_txservq(&psta_xmitpriv->bk_q);
- _init_txservq(&psta_xmitpriv->vi_q);
- _init_txservq(&psta_xmitpriv->vo_q);
-- _rtw_init_listhead(&psta_xmitpriv->legacy_dz);
-- _rtw_init_listhead(&psta_xmitpriv->apsd);
-+ INIT_LIST_HEAD(&psta_xmitpriv->legacy_dz);
-+ INIT_LIST_HEAD(&psta_xmitpriv->apsd);
-
- _func_exit_;
-
-@@ -66,7 +66,7 @@ s32 _rtw_init_xmit_priv(struct xmit_priv
-
- _func_enter_;
-
-- // We don't need to memset padapter->XXX to zero, because adapter is allocated by rtw_zvmalloc().
-+ // We don't need to memset padapter->XXX to zero, because adapter is allocated by vzalloc().
- //memset((unsigned char *)pxmitpriv, 0, sizeof(struct xmit_priv));
-
- spin_lock_init(&pxmitpriv->lock);
-@@ -100,7 +100,7 @@ _func_enter_;
- Please also apply free_txobj to link_up all the xmit_frames...
- */
-
-- pxmitpriv->pallocated_frame_buf = rtw_zvmalloc(NR_XMITFRAME * sizeof(struct xmit_frame) + 4);
-+ pxmitpriv->pallocated_frame_buf = vzalloc(NR_XMITFRAME * sizeof(struct xmit_frame) + 4);
-
- if (pxmitpriv->pallocated_frame_buf == NULL){
- pxmitpriv->pxmit_frame_buf =NULL;
-@@ -116,7 +116,7 @@ _func_enter_;
-
- for (i = 0; i < NR_XMITFRAME; i++)
- {
-- _rtw_init_listhead(&(pxframe->list));
-+ INIT_LIST_HEAD(&(pxframe->list));
-
- pxframe->padapter = padapter;
- pxframe->frame_tag = NULL_FRAMETAG;
-@@ -126,7 +126,7 @@ _func_enter_;
- pxframe->buf_addr = NULL;
- pxframe->pxmitbuf = NULL;
-
-- rtw_list_insert_tail(&(pxframe->list), &(pxmitpriv->free_xmit_queue.queue));
-+ list_add_tail(&(pxframe->list), &(pxmitpriv->free_xmit_queue.queue));
-
- pxframe++;
- }
-@@ -140,7 +140,7 @@ _func_enter_;
- _rtw_init_queue(&pxmitpriv->free_xmitbuf_queue);
- _rtw_init_queue(&pxmitpriv->pending_xmitbuf_queue);
-
-- pxmitpriv->pallocated_xmitbuf = rtw_zvmalloc(NR_XMITBUFF * sizeof(struct xmit_buf) + 4);
-+ pxmitpriv->pallocated_xmitbuf = vzalloc(NR_XMITBUFF * sizeof(struct xmit_buf) + 4);
-
- if (pxmitpriv->pallocated_xmitbuf == NULL){
- RT_TRACE(_module_rtl871x_xmit_c_,_drv_err_,("alloc xmit_buf fail!\n"));
-@@ -156,7 +156,7 @@ _func_enter_;
-
- for (i = 0; i < NR_XMITBUFF; i++)
- {
-- _rtw_init_listhead(&pxmitbuf->list);
-+ INIT_LIST_HEAD(&pxmitbuf->list);
-
- pxmitbuf->priv_data = NULL;
- pxmitbuf->padapter = padapter;
-@@ -178,7 +178,7 @@ _func_enter_;
-
- pxmitbuf->flags = XMIT_VO_QUEUE;
-
-- rtw_list_insert_tail(&pxmitbuf->list, &(pxmitpriv->free_xmitbuf_queue.queue));
-+ list_add_tail(&pxmitbuf->list, &(pxmitpriv->free_xmitbuf_queue.queue));
- #ifdef DBG_XMIT_BUF
- pxmitbuf->no=i;
- #endif
-@@ -192,7 +192,7 @@ _func_enter_;
- /* init xframe_ext queue, the same count as extbuf */
- _rtw_init_queue(&pxmitpriv->free_xframe_ext_queue);
-
-- pxmitpriv->xframe_ext_alloc_addr = rtw_zvmalloc(NR_XMIT_EXTBUFF * sizeof(struct xmit_frame) + 4);
-+ pxmitpriv->xframe_ext_alloc_addr = vzalloc(NR_XMIT_EXTBUFF * sizeof(struct xmit_frame) + 4);
-
- if (pxmitpriv->xframe_ext_alloc_addr == NULL){
- pxmitpriv->xframe_ext = NULL;
-@@ -204,7 +204,7 @@ _func_enter_;
- pxframe = (struct xmit_frame*)pxmitpriv->xframe_ext;
-
- for (i = 0; i < NR_XMIT_EXTBUFF; i++) {
-- _rtw_init_listhead(&(pxframe->list));
-+ INIT_LIST_HEAD(&(pxframe->list));
-
- pxframe->padapter = padapter;
- pxframe->frame_tag = NULL_FRAMETAG;
-@@ -216,7 +216,7 @@ _func_enter_;
-
- pxframe->ext_tag = 1;
-
-- rtw_list_insert_tail(&(pxframe->list), &(pxmitpriv->free_xframe_ext_queue.queue));
-+ list_add_tail(&(pxframe->list), &(pxmitpriv->free_xframe_ext_queue.queue));
-
- pxframe++;
- }
-@@ -225,7 +225,7 @@ _func_enter_;
- // Init xmit extension buff
- _rtw_init_queue(&pxmitpriv->free_xmit_extbuf_queue);
-
-- pxmitpriv->pallocated_xmit_extbuf = rtw_zvmalloc(NR_XMIT_EXTBUFF * sizeof(struct xmit_buf) + 4);
-+ pxmitpriv->pallocated_xmit_extbuf = vzalloc(NR_XMIT_EXTBUFF * sizeof(struct xmit_buf) + 4);
-
- if (pxmitpriv->pallocated_xmit_extbuf == NULL){
- RT_TRACE(_module_rtl871x_xmit_c_,_drv_err_,("alloc xmit_extbuf fail!\n"));
-@@ -239,7 +239,7 @@ _func_enter_;
-
- for (i = 0; i < NR_XMIT_EXTBUFF; i++)
- {
-- _rtw_init_listhead(&pxmitbuf->list);
-+ INIT_LIST_HEAD(&pxmitbuf->list);
-
- pxmitbuf->priv_data = NULL;
- pxmitbuf->padapter = padapter;
-@@ -255,7 +255,7 @@ _func_enter_;
- pxmitbuf->len = 0;
- pxmitbuf->pdata = pxmitbuf->ptail = pxmitbuf->phead;
-
-- rtw_list_insert_tail(&pxmitbuf->list, &(pxmitpriv->free_xmit_extbuf_queue.queue));
-+ list_add_tail(&pxmitbuf->list, &(pxmitpriv->free_xmit_extbuf_queue.queue));
- #ifdef DBG_XMIT_BUF_EXT
- pxmitbuf->no=i;
- #endif
-@@ -268,7 +268,7 @@ _func_enter_;
- for (i = 0; ipcmd_xmitbuf[i];
- if (pxmitbuf) {
-- _rtw_init_listhead(&pxmitbuf->list);
-+ INIT_LIST_HEAD(&pxmitbuf->list);
-
- pxmitbuf->priv_data = NULL;
- pxmitbuf->padapter = padapter;
-@@ -337,12 +337,12 @@ void _rtw_free_xmit_priv (struct xmit_pr
- }
-
- if(pxmitpriv->pallocated_frame_buf) {
-- rtw_vmfree(pxmitpriv->pallocated_frame_buf, NR_XMITFRAME * sizeof(struct xmit_frame) + 4);
-+ vfree(pxmitpriv->pallocated_frame_buf);
- }
-
-
- if(pxmitpriv->pallocated_xmitbuf) {
-- rtw_vmfree(pxmitpriv->pallocated_xmitbuf, NR_XMITBUFF * sizeof(struct xmit_buf) + 4);
-+ vfree(pxmitpriv->pallocated_xmitbuf);
- }
-
- /* free xframe_ext queue, the same count as extbuf */
-@@ -353,7 +353,7 @@ void _rtw_free_xmit_priv (struct xmit_pr
- }
- }
- if (pxmitpriv->xframe_ext_alloc_addr)
-- rtw_vmfree(pxmitpriv->xframe_ext_alloc_addr, NR_XMIT_EXTBUFF * sizeof(struct xmit_frame) + 4);
-+ vfree(pxmitpriv->xframe_ext_alloc_addr);
-
- // free xmit extension buff
- pxmitbuf = (struct xmit_buf *)pxmitpriv->pxmit_extbuf;
-@@ -365,7 +365,7 @@ void _rtw_free_xmit_priv (struct xmit_pr
- }
-
- if(pxmitpriv->pallocated_xmit_extbuf) {
-- rtw_vmfree(pxmitpriv->pallocated_xmit_extbuf, NR_XMIT_EXTBUFF * sizeof(struct xmit_buf) + 4);
-+ vfree(pxmitpriv->pallocated_xmit_extbuf);
- }
-
- for (i=0; iencrypt, bmcast);
-
--#ifdef CONFIG_WAPI_SUPPORT
-- if(pattrib->ether_type == 0x88B4)
-- pattrib->encrypt=_NO_PRIVACY_;
--#endif
--
- switch(psecuritypriv->dot11AuthAlgrthm)
- {
- case dot11AuthAlgrthm_Open:
-@@ -691,13 +686,6 @@ static s32 update_attrib_sec_info(_adapt
-
- break;
-
--#ifdef CONFIG_WAPI_SUPPORT
-- case _SMS4_:
-- pattrib->iv_len = 18;
-- pattrib->icv_len = 16;
-- rtw_wapi_get_iv(padapter,pattrib->ra,pattrib->iv);
-- break;
--#endif
- default:
- pattrib->iv_len = 0;
- pattrib->icv_len = 0;
-@@ -723,11 +711,6 @@ static s32 update_attrib_sec_info(_adapt
- RT_TRACE(_module_rtl871x_xmit_c_,_drv_info_,("update_attrib: bswenc=false\n"));
- }
-
--#ifdef CONFIG_WAPI_SUPPORT
-- if(pattrib->encrypt == _SMS4_)
-- pattrib->bswenc = false;
--#endif
--
- exit:
-
- return res;
-@@ -898,15 +881,11 @@ static s32 update_attrib(_adapter *padap
- }
-
- // If EAPOL , ARP , OR DHCP packet, driver must be in active mode.
--#ifdef CONFIG_WAPI_SUPPORT
-- if ( (pattrib->ether_type == 0x88B4) || (pattrib->ether_type == 0x0806) || (pattrib->ether_type == 0x888e) || (pattrib->dhcp_pkt == 1) )
--#else //!CONFIG_WAPI_SUPPORT
- if (pattrib->icmp_pkt==1)
- {
- rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_LEAVE, 1);
- }
- else if(pattrib->dhcp_pkt==1)
--#endif
- {
- DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_active);
- rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_SPECIAL_PACKET, 1);
-@@ -1178,10 +1157,6 @@ _func_enter_;
- case _AES_:
- rtw_aes_encrypt(padapter, (u8 * )pxmitframe);
- break;
--#ifdef CONFIG_WAPI_SUPPORT
-- case _SMS4_:
-- rtw_sms4_encrypt(padapter, (u8 * )pxmitframe);
--#endif
- default:
- break;
- }
-@@ -1385,70 +1360,10 @@ s32 rtw_txframes_pending(_adapter *padap
- {
- struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
-
-- return ((_rtw_queue_empty(&pxmitpriv->be_pending) == false) ||
-- (_rtw_queue_empty(&pxmitpriv->bk_pending) == false) ||
-- (_rtw_queue_empty(&pxmitpriv->vi_pending) == false) ||
-- (_rtw_queue_empty(&pxmitpriv->vo_pending) == false));
--}
--
--s32 rtw_txframes_sta_ac_pending(_adapter *padapter, struct pkt_attrib *pattrib)
--{
-- struct sta_info *psta;
-- struct tx_servq *ptxservq;
-- int priority = pattrib->priority;
--/*
-- if(pattrib->psta)
-- {
-- psta = pattrib->psta;
-- }
-- else
-- {
-- DBG_871X("%s, call rtw_get_stainfo()\n", __func__);
-- psta=rtw_get_stainfo(&padapter->stapriv ,&pattrib->ra[0]);
-- }
--*/
-- psta = rtw_get_stainfo(&padapter->stapriv, pattrib->ra);
-- if(pattrib->psta != psta)
-- {
-- DBG_871X("%s, pattrib->psta(%p) != psta(%p)\n", __func__, pattrib->psta, psta);
-- return 0;
-- }
--
-- if(psta==NULL)
-- {
-- DBG_871X("%s, psta==NUL\n", __func__);
-- return 0;
-- }
--
-- if(!(psta->state &_FW_LINKED))
-- {
-- DBG_871X("%s, psta->state(0x%x) != _FW_LINKED\n", __func__, psta->state);
-- return 0;
-- }
--
-- switch(priority)
-- {
-- case 1:
-- case 2:
-- ptxservq = &(psta->sta_xmitpriv.bk_q);
-- break;
-- case 4:
-- case 5:
-- ptxservq = &(psta->sta_xmitpriv.vi_q);
-- break;
-- case 6:
-- case 7:
-- ptxservq = &(psta->sta_xmitpriv.vo_q);
-- break;
-- case 0:
-- case 3:
-- default:
-- ptxservq = &(psta->sta_xmitpriv.be_q);
-- break;
--
-- }
--
-- return ptxservq->qcnt;
-+ return ((!list_empty(&pxmitpriv->be_pending.queue)) ||
-+ (!list_empty(&pxmitpriv->bk_pending.queue)) ||
-+ (!list_empty(&pxmitpriv->vi_pending.queue)) ||
-+ (!list_empty(&pxmitpriv->vo_pending.queue)));
- }
-
- /*
-@@ -1594,11 +1509,6 @@ _func_enter_;
- else
- AES_IV(pattrib->iv, psta->dot11txpn, 0);
- break;
--#ifdef CONFIG_WAPI_SUPPORT
-- case _SMS4_:
-- rtw_wapi_get_iv(padapter,pattrib->ra,pattrib->iv);
-- break;
--#endif
- }
- }
- */
-@@ -1683,7 +1593,6 @@ _func_exit_;
- return res;
- }
-
--#ifdef CONFIG_IEEE80211W
- //broadcast or multicast management pkt use BIP, unicast management pkt use CCMP encryption
- s32 rtw_mgmt_xmitframe_coalesce(_adapter *padapter, _pkt *pkt, struct xmit_frame *pxmitframe)
- {
-@@ -1719,7 +1628,7 @@ _func_enter_;
- if(BIP_AAD == NULL)
- return _FAIL;
-
-- _enter_critical_bh(&padapter->security_key_mutex, &irqL);
-+ spin_lock_bh(&padapter->security_key_mutex);
-
- //only support station mode
- if(!check_fwstate(pmlmepriv, WIFI_STATION_STATE) || !check_fwstate(pmlmepriv, _FW_LINKED))
-@@ -1907,19 +1816,18 @@ _func_enter_;
- }
-
- xmitframe_coalesce_success:
-- _exit_critical_bh(&padapter->security_key_mutex, &irqL);
-- rtw_mfree(BIP_AAD, ori_len);
-+ spin_unlock_bh(&padapter->security_key_mutex);
-+ kfree(BIP_AAD);
- _func_exit_;
- return _SUCCESS;
-
- xmitframe_coalesce_fail:
-- _exit_critical_bh(&padapter->security_key_mutex, &irqL);
-- rtw_mfree(BIP_AAD, ori_len);
-+ spin_unlock_bh(&padapter->security_key_mutex);
-+ kfree(BIP_AAD);
- _func_exit_;
-
- return _FAIL;
- }
--#endif //CONFIG_IEEE80211W
-
- /* Logical Link Control(LLC) SubNetwork Attachment Point(SNAP) header
- * IEEE LLC/SNAP header contains 8 octets
-@@ -2103,9 +2011,9 @@ struct xmit_buf *rtw_alloc_xmitbuf_ext(s
-
- _func_enter_;
-
-- _enter_critical(&pfree_queue->lock, &irqL);
-+ spin_lock_irqsave(&pfree_queue->lock, irqL);
-
-- if(_rtw_queue_empty(pfree_queue) == true) {
-+ if(list_empty(&pfree_queue->queue)) {
- pxmitbuf = NULL;
- } else {
-
-@@ -2115,7 +2023,7 @@ _func_enter_;
-
- pxmitbuf = LIST_CONTAINOR(plist, struct xmit_buf, list);
-
-- rtw_list_delete(&(pxmitbuf->list));
-+ list_del_init(&(pxmitbuf->list));
- }
-
- if (pxmitbuf != NULL)
-@@ -2139,7 +2047,7 @@ _func_enter_;
-
- }
-
-- _exit_critical(&pfree_queue->lock, &irqL);
-+ spin_unlock_irqrestore(&pfree_queue->lock, irqL);
-
- _func_exit_;
-
-@@ -2158,17 +2066,17 @@ _func_enter_;
- return _FAIL;
- }
-
-- _enter_critical(&pfree_queue->lock, &irqL);
-+ spin_lock_irqsave(&pfree_queue->lock, irqL);
-
-- rtw_list_delete(&pxmitbuf->list);
-+ list_del_init(&pxmitbuf->list);
-
-- rtw_list_insert_tail(&(pxmitbuf->list), get_list_head(pfree_queue));
-+ list_add_tail(&(pxmitbuf->list), get_list_head(pfree_queue));
- pxmitpriv->free_xmit_extbuf_cnt++;
- #ifdef DBG_XMIT_BUF_EXT
- DBG_871X("DBG_XMIT_BUF_EXT FREE no=%d, free_xmit_extbuf_cnt=%d\n",pxmitbuf->no ,pxmitpriv->free_xmit_extbuf_cnt);
- #endif
-
-- _exit_critical(&pfree_queue->lock, &irqL);
-+ spin_unlock_irqrestore(&pfree_queue->lock, irqL);
-
- _func_exit_;
-
-@@ -2186,9 +2094,9 @@ _func_enter_;
-
- //DBG_871X("+rtw_alloc_xmitbuf\n");
-
-- _enter_critical(&pfree_xmitbuf_queue->lock, &irqL);
-+ spin_lock_irqsave(&pfree_xmitbuf_queue->lock, irqL);
-
-- if(_rtw_queue_empty(pfree_xmitbuf_queue) == true) {
-+ if(list_empty(&pfree_xmitbuf_queue->queue)) {
- pxmitbuf = NULL;
- } else {
-
-@@ -2198,7 +2106,7 @@ _func_enter_;
-
- pxmitbuf = LIST_CONTAINOR(plist, struct xmit_buf, list);
-
-- rtw_list_delete(&(pxmitbuf->list));
-+ list_del_init(&(pxmitbuf->list));
- }
-
- if (pxmitbuf != NULL)
-@@ -2228,7 +2136,7 @@ _func_enter_;
- }
- #endif
-
-- _exit_critical(&pfree_xmitbuf_queue->lock, &irqL);
-+ spin_unlock_irqrestore(&pfree_xmitbuf_queue->lock, irqL);
-
- _func_exit_;
-
-@@ -2261,18 +2169,18 @@ _func_enter_;
- }
- else
- {
-- _enter_critical(&pfree_xmitbuf_queue->lock, &irqL);
-+ spin_lock_irqsave(&pfree_xmitbuf_queue->lock, irqL);
-
-- rtw_list_delete(&pxmitbuf->list);
-+ list_del_init(&pxmitbuf->list);
-
-- rtw_list_insert_tail(&(pxmitbuf->list), get_list_head(pfree_xmitbuf_queue));
-+ list_add_tail(&(pxmitbuf->list), get_list_head(pfree_xmitbuf_queue));
-
- pxmitpriv->free_xmitbuf_cnt++;
- //DBG_871X("FREE, free_xmitbuf_cnt=%d\n", pxmitpriv->free_xmitbuf_cnt);
- #ifdef DBG_XMIT_BUF
- DBG_871X("DBG_XMIT_BUF FREE no=%d, free_xmitbuf_cnt=%d\n",pxmitbuf->no ,pxmitpriv->free_xmitbuf_cnt);
- #endif
-- _exit_critical(&pfree_xmitbuf_queue->lock, &irqL);
-+ spin_unlock_irqrestore(&pfree_xmitbuf_queue->lock, irqL);
- }
-
- _func_exit_;
-@@ -2324,9 +2232,9 @@ struct xmit_frame *rtw_alloc_xmitframe(s
-
- _func_enter_;
-
-- _enter_critical_bh(&pfree_xmit_queue->lock, &irqL);
-+ spin_lock_bh(&pfree_xmit_queue->lock);
-
-- if (_rtw_queue_empty(pfree_xmit_queue) == true) {
-+ if (list_empty(&pfree_xmit_queue->queue)) {
- RT_TRACE(_module_rtl871x_xmit_c_,_drv_info_,("rtw_alloc_xmitframe:%d\n", pxmitpriv->free_xmitframe_cnt));
- pxframe = NULL;
- } else {
-@@ -2336,12 +2244,12 @@ _func_enter_;
-
- pxframe = LIST_CONTAINOR(plist, struct xmit_frame, list);
-
-- rtw_list_delete(&(pxframe->list));
-+ list_del_init(&(pxframe->list));
- pxmitpriv->free_xmitframe_cnt--;
- RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("rtw_alloc_xmitframe():free_xmitframe_cnt=%d\n", pxmitpriv->free_xmitframe_cnt));
- }
-
-- _exit_critical_bh(&pfree_xmit_queue->lock, &irqL);
-+ spin_unlock_bh(&pfree_xmit_queue->lock);
-
- rtw_init_xmitframe(pxframe);
-
-@@ -2359,9 +2267,9 @@ struct xmit_frame *rtw_alloc_xmitframe_e
-
- _func_enter_;
-
-- _enter_critical_bh(&queue->lock, &irqL);
-+ spin_lock_bh(&queue->lock);
-
-- if (_rtw_queue_empty(queue) == true) {
-+ if (list_empty(&queue->queue)) {
- RT_TRACE(_module_rtl871x_xmit_c_,_drv_info_,("rtw_alloc_xmitframe_ext:%d\n", pxmitpriv->free_xframe_ext_cnt));
- pxframe = NULL;
- } else {
-@@ -2369,12 +2277,12 @@ _func_enter_;
- plist = get_next(phead);
- pxframe = LIST_CONTAINOR(plist, struct xmit_frame, list);
-
-- rtw_list_delete(&(pxframe->list));
-+ list_del_init(&(pxframe->list));
- pxmitpriv->free_xframe_ext_cnt--;
- RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("rtw_alloc_xmitframe_ext():free_xmitframe_cnt=%d\n", pxmitpriv->free_xframe_ext_cnt));
- }
-
-- _exit_critical_bh(&queue->lock, &irqL);
-+ spin_unlock_bh(&queue->lock);
-
- rtw_init_xmitframe(pxframe);
-
-@@ -2433,7 +2341,7 @@ _func_enter_;
-
- if (pxmitframe->alloc_addr) {
- DBG_871X("################## %s with alloc_addr ##################\n", __func__);
-- rtw_mfree(pxmitframe->alloc_addr, sizeof(struct xmit_frame) + 4);
-+ kfree(pxmitframe->alloc_addr);
- goto check_pkt_complete;
- }
-
-@@ -2444,10 +2352,10 @@ _func_enter_;
- else
- {}
-
-- _enter_critical_bh(&queue->lock, &irqL);
-+ spin_lock_bh(&queue->lock);
-
-- rtw_list_delete(&pxmitframe->list);
-- rtw_list_insert_tail(&pxmitframe->list, get_list_head(queue));
-+ list_del_init(&pxmitframe->list);
-+ list_add_tail(&pxmitframe->list, get_list_head(queue));
- if (pxmitframe->ext_tag == 0) {
- pxmitpriv->free_xmitframe_cnt++;
- RT_TRACE(_module_rtl871x_xmit_c_, _drv_debug_, ("rtw_free_xmitframe():free_xmitframe_cnt=%d\n", pxmitpriv->free_xmitframe_cnt));
-@@ -2457,7 +2365,7 @@ _func_enter_;
- } else {
- }
-
-- _exit_critical_bh(&queue->lock, &irqL);
-+ spin_unlock_bh(&queue->lock);
-
- check_pkt_complete:
-
-@@ -2479,12 +2387,12 @@ void rtw_free_xmitframe_queue(struct xmi
-
- _func_enter_;
-
-- _enter_critical_bh(&(pframequeue->lock), &irqL);
-+ spin_lock_bh(&(pframequeue->lock));
-
- phead = get_list_head(pframequeue);
- plist = get_next(phead);
-
-- while (rtw_end_of_queue_search(phead, plist) == false)
-+ while (phead != plist)
- {
-
- pxmitframe = LIST_CONTAINOR(plist, struct xmit_frame, list);
-@@ -2494,7 +2402,7 @@ _func_enter_;
- rtw_free_xmitframe(pxmitpriv,pxmitframe);
-
- }
-- _exit_critical_bh(&(pframequeue->lock), &irqL);
-+ spin_unlock_bh(&(pframequeue->lock));
-
- _func_exit_;
- }
-@@ -2513,111 +2421,6 @@ s32 rtw_xmitframe_enqueue(_adapter *pada
- return _SUCCESS;
- }
-
--static struct xmit_frame *dequeue_one_xmitframe(struct xmit_priv *pxmitpriv, struct hw_xmit *phwxmit, struct tx_servq *ptxservq, _queue *pframe_queue)
--{
-- _list *xmitframe_plist, *xmitframe_phead;
-- struct xmit_frame *pxmitframe=NULL;
--
-- xmitframe_phead = get_list_head(pframe_queue);
-- xmitframe_plist = get_next(xmitframe_phead);
--
-- while ((rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) == false)
-- {
-- pxmitframe = LIST_CONTAINOR(xmitframe_plist, struct xmit_frame, list);
--
-- xmitframe_plist = get_next(xmitframe_plist);
--
-- rtw_list_delete(&pxmitframe->list);
--
-- ptxservq->qcnt--;
--
-- //rtw_list_insert_tail(&pxmitframe->list, &phwxmit->pending);
--
-- //ptxservq->qcnt--;
--
-- break;
--
-- pxmitframe = NULL;
--
-- }
--
-- return pxmitframe;
--}
--
--struct xmit_frame* rtw_dequeue_xframe(struct xmit_priv *pxmitpriv, struct hw_xmit *phwxmit_i, sint entry)
--{
-- _irqL irqL0;
-- _list *sta_plist, *sta_phead;
-- struct hw_xmit *phwxmit;
-- struct tx_servq *ptxservq = NULL;
-- _queue *pframe_queue = NULL;
-- struct xmit_frame *pxmitframe = NULL;
-- _adapter *padapter = pxmitpriv->adapter;
-- struct registry_priv *pregpriv = &padapter->registrypriv;
-- int i, inx[4];
--
--_func_enter_;
--
-- inx[0] = 0; inx[1] = 1; inx[2] = 2; inx[3] = 3;
--
-- if(pregpriv->wifi_spec==1)
-- {
-- int j, tmp, acirp_cnt[4];
--
-- for(j=0; j<4; j++)
-- inx[j] = pxmitpriv->wmm_para_seq[j];
-- }
--
-- _enter_critical_bh(&pxmitpriv->lock, &irqL0);
--
-- for(i = 0; i < entry; i++)
-- {
-- phwxmit = phwxmit_i + inx[i];
--
-- //_enter_critical_ex(&phwxmit->sta_queue->lock, &irqL0);
--
-- sta_phead = get_list_head(phwxmit->sta_queue);
-- sta_plist = get_next(sta_phead);
--
-- while ((rtw_end_of_queue_search(sta_phead, sta_plist)) == false)
-- {
--
-- ptxservq= LIST_CONTAINOR(sta_plist, struct tx_servq, tx_pending);
--
-- pframe_queue = &ptxservq->sta_pending;
--
-- pxmitframe = dequeue_one_xmitframe(pxmitpriv, phwxmit, ptxservq, pframe_queue);
--
-- if(pxmitframe)
-- {
-- phwxmit->accnt--;
--
-- //Remove sta node when there is no pending packets.
-- if(_rtw_queue_empty(pframe_queue)) //must be done after get_next and before break
-- rtw_list_delete(&ptxservq->tx_pending);
--
-- //_exit_critical_ex(&phwxmit->sta_queue->lock, &irqL0);
--
-- goto exit;
-- }
--
-- sta_plist = get_next(sta_plist);
--
-- }
--
-- //_exit_critical_ex(&phwxmit->sta_queue->lock, &irqL0);
--
-- }
--
--exit:
--
-- _exit_critical_bh(&pxmitpriv->lock, &irqL0);
--
--_func_exit_;
--
-- return pxmitframe;
--}
--
- struct tx_servq *rtw_get_sta_pending(_adapter *padapter, struct sta_info *psta, sint up, u8 *ac)
- {
- struct tx_servq *ptxservq=NULL;
-@@ -2715,21 +2518,21 @@ _func_enter_;
-
- ptxservq = rtw_get_sta_pending(padapter, psta, pattrib->priority, (u8 *)(&ac_index));
-
-- //_enter_critical(&pstapending->lock, &irqL0);
-+ //spin_lock_irqsave(&pstapending->lock, irqL0);
-
-- if (rtw_is_list_empty(&ptxservq->tx_pending)) {
-- rtw_list_insert_tail(&ptxservq->tx_pending, get_list_head(phwxmits[ac_index].sta_queue));
-+ if (list_empty(&ptxservq->tx_pending)) {
-+ list_add_tail(&ptxservq->tx_pending, get_list_head(phwxmits[ac_index].sta_queue));
- }
-
-- //_enter_critical(&ptxservq->sta_pending.lock, &irqL1);
-+ //spin_lock_irqsave(&ptxservq->sta_pending.lock, irqL1);
-
-- rtw_list_insert_tail(&pxmitframe->list, get_list_head(&ptxservq->sta_pending));
-+ list_add_tail(&pxmitframe->list, get_list_head(&ptxservq->sta_pending));
- ptxservq->qcnt++;
- phwxmits[ac_index].accnt++;
-
-- //_exit_critical(&ptxservq->sta_pending.lock, &irqL1);
-+ //spin_unlock_irqrestore(&ptxservq->sta_pending.lock, irqL1);
-
-- //_exit_critical(&pstapending->lock, &irqL0);
-+ //spin_unlock_irqrestore(&pstapending->lock, irqL0);
-
- exit:
-
-@@ -2815,7 +2618,7 @@ void rtw_free_hwxmits(_adapter *padapter
-
- hwxmits = pxmitpriv->hwxmits;
- if(hwxmits)
-- rtw_mfree((u8 *)hwxmits, (sizeof (struct hw_xmit) * pxmitpriv->hwxmit_entry));
-+ kfree((u8 *)hwxmits);
- }
-
- void rtw_init_hwxmits(struct hw_xmit *phwxmit, sint entry)
-@@ -2825,7 +2628,7 @@ _func_enter_;
- for(i = 0; i < entry; i++, phwxmit++)
- {
- //spin_lock_init(&phwxmit->xmit_lock);
-- //_rtw_init_listhead(&phwxmit->pending);
-+ //INIT_LIST_HEAD(&phwxmit->pending);
- //phwxmit->txcmdcnt = 0;
- phwxmit->accnt = 0;
- }
-@@ -2894,9 +2697,8 @@ s32 rtw_xmit(_adapter *padapter, _pkt **
- {
- static unsigned long start = 0;
- static u32 drop_cnt = 0;
--#ifdef CONFIG_AP_MODE
- _irqL irqL0;
--#endif
-+
- struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
- struct xmit_frame *pxmitframe = NULL;
-
-@@ -2925,16 +2727,6 @@ s32 rtw_xmit(_adapter *padapter, _pkt **
-
- res = update_attrib(padapter, *ppkt, &pxmitframe->attrib);
-
--#ifdef CONFIG_WAPI_SUPPORT
-- if(pxmitframe->attrib.ether_type != 0x88B4)
-- {
-- if(rtw_wapi_drop_for_key_absent(padapter, pxmitframe->attrib.ra))
-- {
-- WAPI_TRACE(WAPI_RX,"drop for key absend when tx \n");
-- res = _FAIL;
-- }
-- }
--#endif
- if (res == _FAIL) {
- RT_TRACE(_module_xmit_osdep_c_, _drv_err_, ("rtw_xmit: update attrib fail\n"));
- #ifdef DBG_TX_DROP_FRAME
-@@ -2945,20 +2737,16 @@ s32 rtw_xmit(_adapter *padapter, _pkt **
- }
- pxmitframe->pkt = *ppkt;
-
-- rtw_led_control(padapter, LED_CTL_TX);
--
- do_queue_select(padapter, &pxmitframe->attrib);
-
--#ifdef CONFIG_AP_MODE
-- _enter_critical_bh(&pxmitpriv->lock, &irqL0);
-+ spin_lock_bh(&pxmitpriv->lock);
- if(xmitframe_enqueue_for_sleeping_sta(padapter, pxmitframe) == true)
- {
-- _exit_critical_bh(&pxmitpriv->lock, &irqL0);
-+ spin_unlock_bh(&pxmitpriv->lock);
- DBG_COUNTER(padapter->tx_logs.core_tx_ap_enqueue);
- return 1;
- }
-- _exit_critical_bh(&pxmitpriv->lock, &irqL0);
--#endif
-+ spin_unlock_bh(&pxmitpriv->lock);
-
- //pre_xmitframe
- if (rtw_hal_xmit(padapter, pxmitframe) == false)
-@@ -2983,9 +2771,6 @@ inline bool xmitframe_hiq_filter(struct
-
- if (attrib->ether_type == 0x0806
- || attrib->ether_type == 0x888e
-- #ifdef CONFIG_WAPI_SUPPORT
-- || attrib->ether_type == 0x88B4
-- #endif
- || attrib->dhcp_pkt
- ) {
- DBG_871X(FUNC_ADPT_FMT" ether_type:0x%04x%s\n", FUNC_ADPT_ARG(xmitframe->padapter)
-@@ -3005,8 +2790,6 @@ inline bool xmitframe_hiq_filter(struct
- return allow;
- }
-
--#if defined(CONFIG_AP_MODE)
--
- sint xmitframe_enqueue_for_sleeping_sta(_adapter *padapter, struct xmit_frame *pxmitframe)
- {
- _irqL irqL;
-@@ -3071,17 +2854,17 @@ sint xmitframe_enqueue_for_sleeping_sta(
-
- if(bmcst)
- {
-- _enter_critical_bh(&psta->sleep_q.lock, &irqL);
-+ spin_lock_bh(&psta->sleep_q.lock);
-
- if(pstapriv->sta_dz_bitmap)//if anyone sta is in ps mode
- {
- //pattrib->qsel = 0x11;//HIQ
-
-- rtw_list_delete(&pxmitframe->list);
-+ list_del_init(&pxmitframe->list);
-
-- //_enter_critical_bh(&psta->sleep_q.lock, &irqL);
-+ //spin_lock_bh(&psta->sleep_q.lock);
-
-- rtw_list_insert_tail(&pxmitframe->list, get_list_head(&psta->sleep_q));
-+ list_add_tail(&pxmitframe->list, get_list_head(&psta->sleep_q));
-
- psta->sleepq_len++;
-
-@@ -3099,7 +2882,7 @@ sint xmitframe_enqueue_for_sleeping_sta(
- chk_bmc_sleepq_cmd(padapter);
- }
-
-- //_exit_critical_bh(&psta->sleep_q.lock, &irqL);
-+ //spin_unlock_bh(&psta->sleep_q.lock);
-
- ret = true;
-
-@@ -3107,14 +2890,14 @@ sint xmitframe_enqueue_for_sleeping_sta(
-
- }
-
-- _exit_critical_bh(&psta->sleep_q.lock, &irqL);
-+ spin_unlock_bh(&psta->sleep_q.lock);
-
- return ret;
-
- }
-
-
-- _enter_critical_bh(&psta->sleep_q.lock, &irqL);
-+ spin_lock_bh(&psta->sleep_q.lock);
-
- if(psta->state&WIFI_SLEEP_STATE)
- {
-@@ -3122,11 +2905,11 @@ sint xmitframe_enqueue_for_sleeping_sta(
-
- if(pstapriv->sta_dz_bitmap&BIT(psta->aid))
- {
-- rtw_list_delete(&pxmitframe->list);
-+ list_del_init(&pxmitframe->list);
-
-- //_enter_critical_bh(&psta->sleep_q.lock, &irqL);
-+ //spin_lock_bh(&psta->sleep_q.lock);
-
-- rtw_list_insert_tail(&pxmitframe->list, get_list_head(&psta->sleep_q));
-+ list_add_tail(&pxmitframe->list, get_list_head(&psta->sleep_q));
-
- psta->sleepq_len++;
-
-@@ -3171,7 +2954,7 @@ sint xmitframe_enqueue_for_sleeping_sta(
- }
- }
-
-- //_exit_critical_bh(&psta->sleep_q.lock, &irqL);
-+ //spin_unlock_bh(&psta->sleep_q.lock);
-
- //if(psta->sleepq_len > (NR_XMITFRAME>>3))
- //{
-@@ -3185,7 +2968,7 @@ sint xmitframe_enqueue_for_sleeping_sta(
-
- }
-
-- _exit_critical_bh(&psta->sleep_q.lock, &irqL);
-+ spin_unlock_bh(&psta->sleep_q.lock);
-
- return ret;
-
-@@ -3204,7 +2987,7 @@ static void dequeue_xmitframes_to_sleepi
- phead = get_list_head(pframequeue);
- plist = get_next(phead);
-
-- while (rtw_end_of_queue_search(phead, plist) == false)
-+ while (phead != plist)
- {
- pxmitframe = LIST_CONTAINOR(plist, struct xmit_frame, list);
-
-@@ -3246,7 +3029,7 @@ void stop_sta_xmit(_adapter *padapter, s
- psta_bmc = rtw_get_bcmc_stainfo(padapter);
-
-
-- _enter_critical_bh(&pxmitpriv->lock, &irqL0);
-+ spin_lock_bh(&pxmitpriv->lock);
-
- psta->state |= WIFI_SLEEP_STATE;
-
-@@ -3255,26 +3038,26 @@ void stop_sta_xmit(_adapter *padapter, s
-
-
- dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->vo_q.sta_pending);
-- rtw_list_delete(&(pstaxmitpriv->vo_q.tx_pending));
-+ list_del_init(&(pstaxmitpriv->vo_q.tx_pending));
-
-
- dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->vi_q.sta_pending);
-- rtw_list_delete(&(pstaxmitpriv->vi_q.tx_pending));
-+ list_del_init(&(pstaxmitpriv->vi_q.tx_pending));
-
-
- dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->be_q.sta_pending);
-- rtw_list_delete(&(pstaxmitpriv->be_q.tx_pending));
-+ list_del_init(&(pstaxmitpriv->be_q.tx_pending));
-
-
- dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->bk_q.sta_pending);
-- rtw_list_delete(&(pstaxmitpriv->bk_q.tx_pending));
-+ list_del_init(&(pstaxmitpriv->bk_q.tx_pending));
-
- //for BC/MC Frames
- pstaxmitpriv = &psta_bmc->sta_xmitpriv;
- dequeue_xmitframes_to_sleeping_queue(padapter, psta_bmc, &pstaxmitpriv->be_q.sta_pending);
-- rtw_list_delete(&(pstaxmitpriv->be_q.tx_pending));
-+ list_del_init(&(pstaxmitpriv->be_q.tx_pending));
-
-- _exit_critical_bh(&pxmitpriv->lock, &irqL0);
-+ spin_unlock_bh(&pxmitpriv->lock);
- }
-
- void wakeup_sta_to_xmit(_adapter *padapter, struct sta_info *psta)
-@@ -3290,19 +3073,19 @@ void wakeup_sta_to_xmit(_adapter *padapt
- psta_bmc = rtw_get_bcmc_stainfo(padapter);
-
-
-- //_enter_critical_bh(&psta->sleep_q.lock, &irqL);
-- _enter_critical_bh(&pxmitpriv->lock, &irqL);
-+ //spin_lock_bh(&psta->sleep_q.lock);
-+ spin_lock_bh(&pxmitpriv->lock);
-
- xmitframe_phead = get_list_head(&psta->sleep_q);
- xmitframe_plist = get_next(xmitframe_phead);
-
-- while ((rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) == false)
-+ while (xmitframe_phead != xmitframe_plist)
- {
- pxmitframe = LIST_CONTAINOR(xmitframe_plist, struct xmit_frame, list);
-
- xmitframe_plist = get_next(xmitframe_plist);
-
-- rtw_list_delete(&pxmitframe->list);
-+ list_del_init(&pxmitframe->list);
-
- switch(pxmitframe->attrib.priority)
- {
-@@ -3349,12 +3132,12 @@ void wakeup_sta_to_xmit(_adapter *padapt
- pxmitframe->attrib.triggered = 1;
-
- /*
-- _exit_critical_bh(&psta->sleep_q.lock, &irqL);
-+ spin_unlock_bh(&psta->sleep_q.lock);
- if(rtw_hal_xmit(padapter, pxmitframe) == true)
- {
- rtw_os_xmit_complete(padapter, pxmitframe);
- }
-- _enter_critical_bh(&psta->sleep_q.lock, &irqL);
-+ spin_lock_bh(&psta->sleep_q.lock);
- */
- rtw_hal_xmitframe_enqueue(padapter, pxmitframe);
-
-@@ -3394,13 +3177,13 @@ void wakeup_sta_to_xmit(_adapter *padapt
- xmitframe_phead = get_list_head(&psta_bmc->sleep_q);
- xmitframe_plist = get_next(xmitframe_phead);
-
-- while ((rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) == false)
-+ while (xmitframe_phead != xmitframe_plist)
- {
- pxmitframe = LIST_CONTAINOR(xmitframe_plist, struct xmit_frame, list);
-
- xmitframe_plist = get_next(xmitframe_plist);
-
-- rtw_list_delete(&pxmitframe->list);
-+ list_del_init(&pxmitframe->list);
-
- psta_bmc->sleepq_len--;
- if(psta_bmc->sleepq_len>0)
-@@ -3411,12 +3194,12 @@ void wakeup_sta_to_xmit(_adapter *padapt
-
- pxmitframe->attrib.triggered = 1;
- /*
-- _exit_critical_bh(&psta_bmc->sleep_q.lock, &irqL);
-+ spin_unlock_bh(&psta_bmc->sleep_q.lock);
- if(rtw_hal_xmit(padapter, pxmitframe) == true)
- {
- rtw_os_xmit_complete(padapter, pxmitframe);
- }
-- _enter_critical_bh(&psta_bmc->sleep_q.lock, &irqL);
-+ spin_lock_bh(&psta_bmc->sleep_q.lock);
-
- */
- rtw_hal_xmitframe_enqueue(padapter, pxmitframe);
-@@ -3439,8 +3222,8 @@ void wakeup_sta_to_xmit(_adapter *padapt
-
- _exit:
-
-- //_exit_critical_bh(&psta_bmc->sleep_q.lock, &irqL);
-- _exit_critical_bh(&pxmitpriv->lock, &irqL);
-+ //spin_unlock_bh(&psta_bmc->sleep_q.lock);
-+ spin_unlock_bh(&pxmitpriv->lock);
-
- if(update_mask)
- {
-@@ -3461,13 +3244,13 @@ void xmit_delivery_enabled_frames(_adapt
- struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
-
-
-- //_enter_critical_bh(&psta->sleep_q.lock, &irqL);
-- _enter_critical_bh(&pxmitpriv->lock, &irqL);
-+ //spin_lock_bh(&psta->sleep_q.lock);
-+ spin_lock_bh(&pxmitpriv->lock);
-
- xmitframe_phead = get_list_head(&psta->sleep_q);
- xmitframe_plist = get_next(xmitframe_phead);
-
-- while ((rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) == false)
-+ while (xmitframe_phead != xmitframe_plist)
- {
- pxmitframe = LIST_CONTAINOR(xmitframe_plist, struct xmit_frame, list);
-
-@@ -3497,7 +3280,7 @@ void xmit_delivery_enabled_frames(_adapt
- if(!wmmps_ac)
- continue;
-
-- rtw_list_delete(&pxmitframe->list);
-+ list_del_init(&pxmitframe->list);
-
- psta->sleepq_len--;
- psta->sleepq_ac_len--;
-@@ -3529,14 +3312,12 @@ void xmit_delivery_enabled_frames(_adapt
-
- }
-
-- //_exit_critical_bh(&psta->sleep_q.lock, &irqL);
-- _exit_critical_bh(&pxmitpriv->lock, &irqL);
-+ //spin_unlock_bh(&psta->sleep_q.lock);
-+ spin_unlock_bh(&pxmitpriv->lock);
-
- return;
- }
-
--#endif
--
- void enqueue_pending_xmitbuf(
- struct xmit_priv *pxmitpriv,
- struct xmit_buf *pxmitbuf)
-@@ -3547,10 +3328,10 @@ void enqueue_pending_xmitbuf(
-
- pqueue = &pxmitpriv->pending_xmitbuf_queue;
-
-- _enter_critical_bh(&pqueue->lock, &irql);
-- rtw_list_delete(&pxmitbuf->list);
-- rtw_list_insert_tail(&pxmitbuf->list, get_list_head(pqueue));
-- _exit_critical_bh(&pqueue->lock, &irql);
-+ spin_lock_bh(&pqueue->lock);
-+ list_del_init(&pxmitbuf->list);
-+ list_add_tail(&pxmitbuf->list, get_list_head(pqueue));
-+ spin_unlock_bh(&pqueue->lock);
-
- up(&(pri_adapter->xmitpriv.xmit_sema));
- }
-@@ -3565,10 +3346,10 @@ void enqueue_pending_xmitbuf_to_head(
-
- pqueue = &pxmitpriv->pending_xmitbuf_queue;
-
-- _enter_critical_bh(&pqueue->lock, &irql);
-- rtw_list_delete(&pxmitbuf->list);
-- rtw_list_insert_head(&pxmitbuf->list, get_list_head(pqueue));
-- _exit_critical_bh(&pqueue->lock, &irql);
-+ spin_lock_bh(&pqueue->lock);
-+ list_del_init(&pxmitbuf->list);
-+ list_add(&pxmitbuf->list, get_list_head(pqueue));
-+ spin_unlock_bh(&pqueue->lock);
- }
-
- struct xmit_buf* dequeue_pending_xmitbuf(
-@@ -3582,19 +3363,19 @@ struct xmit_buf* dequeue_pending_xmitbuf
- pxmitbuf = NULL;
- pqueue = &pxmitpriv->pending_xmitbuf_queue;
-
-- _enter_critical_bh(&pqueue->lock, &irql);
-+ spin_lock_bh(&pqueue->lock);
-
-- if (_rtw_queue_empty(pqueue) == false)
-+ if (!list_empty(&pqueue->queue))
- {
- _list *plist, *phead;
-
- phead = get_list_head(pqueue);
- plist = get_next(phead);
- pxmitbuf = LIST_CONTAINOR(plist, struct xmit_buf, list);
-- rtw_list_delete(&pxmitbuf->list);
-+ list_del_init(&pxmitbuf->list);
- }
-
-- _exit_critical_bh(&pqueue->lock, &irql);
-+ spin_unlock_bh(&pqueue->lock);
-
- return pxmitbuf;
- }
-@@ -3610,9 +3391,9 @@ struct xmit_buf* dequeue_pending_xmitbuf
- pxmitbuf = NULL;
- pqueue = &pxmitpriv->pending_xmitbuf_queue;
-
-- _enter_critical_bh(&pqueue->lock, &irql);
-+ spin_lock_bh(&pqueue->lock);
-
-- if (_rtw_queue_empty(pqueue) == false)
-+ if (!list_empty(&pqueue->queue))
- {
- _list *plist, *phead;
- u8 type;
-@@ -3631,14 +3412,14 @@ struct xmit_buf* dequeue_pending_xmitbuf
- (type == WIFI_DATA_NULL) ||
- (type == WIFI_QOS_DATA_NULL))
- {
-- rtw_list_delete(&pxmitbuf->list);
-+ list_del_init(&pxmitbuf->list);
- break;
- }
- pxmitbuf = NULL;
- } while (1);
- }
-
-- _exit_critical_bh(&pqueue->lock, &irql);
-+ spin_unlock_bh(&pqueue->lock);
-
- return pxmitbuf;
- }
-@@ -3652,12 +3433,12 @@ sint check_pending_xmitbuf(
-
- pqueue = &pxmitpriv->pending_xmitbuf_queue;
-
-- _enter_critical_bh(&pqueue->lock, &irql);
-+ spin_lock_bh(&pqueue->lock);
-
-- if(_rtw_queue_empty(pqueue) == false)
-+ if(!list_empty(&pqueue->queue))
- ret = true;
-
-- _exit_critical_bh(&pqueue->lock, &irql);
-+ spin_unlock_bh(&pqueue->lock);
-
- return ret;
- }
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/HalBtc8723b1Ant.c linux/3rdparty/rtl8723bs/hal/HalBtc8723b1Ant.c
---- linux/3rdparty/rtl8723bs.old/hal/HalBtc8723b1Ant.c 2015-05-10 14:36:05.684668079 +0300
-+++ linux/3rdparty/rtl8723bs/hal/HalBtc8723b1Ant.c 2015-05-07 17:46:55.000000000 +0300
-@@ -3606,32 +3606,6 @@ EXhalbtc8723b1ant_BtInfoNotify(
- }
-
- void
--EXhalbtc8723b1ant_RfStatusNotify(
-- IN PBTC_COEXIST pBtCoexist,
-- IN u1Byte type
-- )
--{
-- BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], RF Status notify\n"));
--
-- if(BTC_RF_ON == type)
-- {
-- BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], RF is turned ON!!\n"));
-- pBtCoexist->bStopCoexDm = false;
-- }
-- else if(BTC_RF_OFF == type)
-- {
-- BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], RF is turned OFF!!\n"));
--
-- halbtc8723b1ant_PowerSaveState(pBtCoexist, BTC_PS_WIFI_NATIVE, 0x0, 0x0);
-- halbtc8723b1ant_PsTdma(pBtCoexist, FORCE_EXEC, false, 0);
-- halbtc8723b1ant_SetAntPath(pBtCoexist, BTC_ANT_PATH_BT, false, true);
--
-- halbtc8723b1ant_IgnoreWlanAct(pBtCoexist, FORCE_EXEC, true);
-- pBtCoexist->bStopCoexDm = true;
-- }
--}
--
--void
- EXhalbtc8723b1ant_HaltNotify(
- IN PBTC_COEXIST pBtCoexist
- )
-@@ -3681,19 +3655,6 @@ EXhalbtc8723b1ant_PnpNotify(
- }
-
- void
--EXhalbtc8723b1ant_CoexDmReset(
-- IN PBTC_COEXIST pBtCoexist
-- )
--{
-- BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], *****************Coex DM Reset*****************\n"));
--
-- halbtc8723b1ant_InitHwConfig(pBtCoexist, false, false);
-- //pBtCoexist->fBtcSetRfReg(pBtCoexist, BTC_RF_A, 0x1, 0xfffff, 0x0);
-- //pBtCoexist->fBtcSetRfReg(pBtCoexist, BTC_RF_A, 0x2, 0xfffff, 0x0);
-- halbtc8723b1ant_InitCoexDm(pBtCoexist);
--}
--
--void
- EXhalbtc8723b1ant_Periodical(
- IN PBTC_COEXIST pBtCoexist
- )
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/HalBtc8723b1Ant.h linux/3rdparty/rtl8723bs/hal/HalBtc8723b1Ant.h
---- linux/3rdparty/rtl8723bs.old/hal/HalBtc8723b1Ant.h 2015-05-10 14:36:05.684668079 +0300
-+++ linux/3rdparty/rtl8723bs/hal/HalBtc8723b1Ant.h 2015-05-07 17:46:55.000000000 +0300
-@@ -213,11 +213,6 @@ EXhalbtc8723b1ant_BtInfoNotify(
- IN u1Byte length
- );
- void
--EXhalbtc8723b1ant_RfStatusNotify(
-- IN PBTC_COEXIST pBtCoexist,
-- IN u1Byte type
-- );
--void
- EXhalbtc8723b1ant_HaltNotify(
- IN PBTC_COEXIST pBtCoexist
- );
-@@ -227,10 +222,6 @@ EXhalbtc8723b1ant_PnpNotify(
- IN u1Byte pnpState
- );
- void
--EXhalbtc8723b1ant_CoexDmReset(
-- IN PBTC_COEXIST pBtCoexist
-- );
--void
- EXhalbtc8723b1ant_Periodical(
- IN PBTC_COEXIST pBtCoexist
- );
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/hal_btcoex.c linux/3rdparty/rtl8723bs/hal/hal_btcoex.c
---- linux/3rdparty/rtl8723bs.old/hal/hal_btcoex.c 2015-05-10 14:36:05.687668113 +0300
-+++ linux/3rdparty/rtl8723bs/hal/hal_btcoex.c 2015-05-07 17:46:55.000000000 +0300
-@@ -108,7 +108,7 @@ static void DBG_BT_INFO_INIT(PBTCDBGINFO
- void DBG_BT_INFO(u8 *dbgmsg)
- {
- PBTCDBGINFO pinfo;
-- u32 msglen, buflen;
-+ u32 msglen;
- u8 *pbuf;
-
-
-@@ -218,7 +218,6 @@ static void halbtcoutsrc_LeaveLowPower(P
- {
- PADAPTER padapter;
- PHAL_DATA_TYPE pHalData;
-- struct pwrctrl_priv *pwrctrl;
- s32 ready;
- unsigned long stime;
- unsigned long utime;
-@@ -227,7 +226,6 @@ static void halbtcoutsrc_LeaveLowPower(P
-
- padapter = pBtCoexist->Adapter;
- pHalData = GET_HAL_DATA(padapter);
-- pwrctrl = adapter_to_pwrctl(padapter);
- ready = _FAIL;
- #ifdef LPS_RPWM_WAIT_MS
- timeout = LPS_RPWM_WAIT_MS;
-@@ -373,7 +371,6 @@ static u32 halbtcoutsrc_GetWifiLinkStatu
-
-
- padapter = pBtCoexist->Adapter;
-- retVal = 0;
- portConnectedStatus = 0;
- numOfConnectedPort = 0;
-
-@@ -391,10 +388,6 @@ static u32 halbtcoutsrc_GetWifiLinkStatu
-
- static u32 halbtcoutsrc_GetBtPatchVer(PBTC_COEXIST pBtCoexist)
- {
-- u16 btRealFwVer = 0x0;
-- u8 btFwVer = 0x0;
-- u8 cnt = 0;
--
- return pBtCoexist->btInfo.btRealFwVer;
- }
-
-@@ -417,8 +410,6 @@ static u8 halbtcoutsrc_GetWifiScanAPNum(
- struct mlme_ext_priv *pmlmeext;
- static u8 scan_AP_num = 0;
-
--
-- pmlmepriv = &padapter->mlmepriv;
- pmlmeext = &padapter->mlmeextpriv;
-
- if (GLBtcWiFiInScanState == false) {
-@@ -437,7 +428,6 @@ static u8 halbtcoutsrc_Get(void *pBtcCon
- PADAPTER padapter;
- PHAL_DATA_TYPE pHalData;
- struct mlme_ext_priv *mlmeext;
-- u8 bSoftApExist, bVwifiExist;
- u8 *pu8;
- s32 *pS4Tmp;
- u32 *pU4Tmp;
-@@ -452,8 +442,6 @@ static u8 halbtcoutsrc_Get(void *pBtcCon
- padapter = pBtCoexist->Adapter;
- pHalData = GET_HAL_DATA(padapter);
- mlmeext = &padapter->mlmeextpriv;
-- bSoftApExist = false;
-- bVwifiExist = false;
- pu8 = (u8*)pOutBuf;
- pS4Tmp = (s32*)pOutBuf;
- pU4Tmp = (u32*)pOutBuf;
-@@ -1011,7 +999,6 @@ static void halbtcoutsrc_DisplayDbgMsg(v
- static u8 EXhalbtcoutsrc_BindBtCoexWithAdapter(void *padapter)
- {
- PBTC_COEXIST pBtCoexist=&GLBtCoexist;
-- u1Byte antNum=2, chipType;
-
- if(pBtCoexist->bBinded)
- return false;
-@@ -1307,20 +1294,6 @@ void EXhalbtcoutsrc_BtInfoNotify(PBTC_CO
- // halbtcoutsrc_NormalLowPower(pBtCoexist);
- }
-
--void
--EXhalbtcoutsrc_RfStatusNotify(
-- IN PBTC_COEXIST pBtCoexist,
-- IN u1Byte type
-- )
--{
-- if(!halbtcoutsrc_IsBtCoexistAvailable(pBtCoexist))
-- return;
-- pBtCoexist->statistics.cntRfStatusNotify++;
--
-- if(pBtCoexist->boardInfo.btdmAntNum == 1)
-- EXhalbtc8723b1ant_RfStatusNotify(pBtCoexist, type);
--}
--
- void EXhalbtcoutsrc_HaltNotify(PBTC_COEXIST pBtCoexist)
- {
- if (!halbtcoutsrc_IsBtCoexistAvailable(pBtCoexist))
-@@ -1334,18 +1307,6 @@ void EXhalbtcoutsrc_HaltNotify(PBTC_COEX
- pBtCoexist->bBinded = false;
- }
-
--static void EXhalbtcoutsrc_SwitchBtTRxMask(PBTC_COEXIST pBtCoexist)
--{
-- if (pBtCoexist->boardInfo.btdmAntNum == 2)
-- {
-- halbtcoutsrc_SetBtReg(pBtCoexist, 0, 0x3c, 0x01); //BT goto standby while GNT_BT 1-->0
-- }
-- else if (pBtCoexist->boardInfo.btdmAntNum == 1)
-- {
-- halbtcoutsrc_SetBtReg(pBtCoexist, 0, 0x3c, 0x15); //BT goto standby while GNT_BT 1-->0
-- }
--}
--
- void EXhalbtcoutsrc_PnpNotify(PBTC_COEXIST pBtCoexist, u8 pnpState)
- {
- if (!halbtcoutsrc_IsBtCoexistAvailable(pBtCoexist))
-@@ -1362,27 +1323,6 @@ void EXhalbtcoutsrc_PnpNotify(PBTC_COEXI
- EXhalbtc8723b2ant_PnpNotify(pBtCoexist,pnpState);
- }
-
--void EXhalbtcoutsrc_CoexDmSwitch(PBTC_COEXIST pBtCoexist)
--{
-- if (!halbtcoutsrc_IsBtCoexistAvailable(pBtCoexist))
-- return;
-- pBtCoexist->statistics.cntCoexDmSwitch++;
--
-- halbtcoutsrc_LeaveLowPower(pBtCoexist);
--
-- if (pBtCoexist->boardInfo.btdmAntNum == 1)
-- {
-- pBtCoexist->bStopCoexDm = true;
-- EXhalbtc8723b1ant_CoexDmReset(pBtCoexist);
-- EXhalbtcoutsrc_SetAntNum(BT_COEX_ANT_TYPE_DETECTED, 2);
-- EXhalbtc8723b2ant_InitHwConfig(pBtCoexist, false);
-- EXhalbtc8723b2ant_InitCoexDm(pBtCoexist);
-- pBtCoexist->bStopCoexDm = false;
-- }
--
-- halbtcoutsrc_NormalLowPower(pBtCoexist);
--}
--
- void EXhalbtcoutsrc_Periodical(PBTC_COEXIST pBtCoexist)
- {
- if (!halbtcoutsrc_IsBtCoexistAvailable(pBtCoexist))
-@@ -1401,51 +1341,6 @@ void EXhalbtcoutsrc_Periodical(PBTC_COEX
- // halbtcoutsrc_NormalLowPower(pBtCoexist);
- }
-
--void EXhalbtcoutsrc_DbgControl(PBTC_COEXIST pBtCoexist, u8 opCode, u8 opLen, u8 *pData)
--{
-- if (!halbtcoutsrc_IsBtCoexistAvailable(pBtCoexist))
-- return;
--
-- pBtCoexist->statistics.cntDbgCtrl++;
--
-- // This function doesn't be called yet,
-- // default no need to leave low power to avoid deadlock
--// halbtcoutsrc_LeaveLowPower(pBtCoexist);
--
--// halbtcoutsrc_NormalLowPower(pBtCoexist);
--}
--
--void EXhalbtcoutsrc_UpdateMinBtRssi(s8 btRssi)
--{
-- PBTC_COEXIST pBtCoexist = &GLBtCoexist;
--
-- if (!halbtcoutsrc_IsBtCoexistAvailable(pBtCoexist))
-- return;
--
-- pBtCoexist->stackInfo.minBtRssi = btRssi;
--}
--
--void EXhalbtcoutsrc_SetHciVersion(u16 hciVersion)
--{
-- PBTC_COEXIST pBtCoexist = &GLBtCoexist;
--
-- if (!halbtcoutsrc_IsBtCoexistAvailable(pBtCoexist))
-- return;
--
-- pBtCoexist->stackInfo.hciVersion = hciVersion;
--}
--
--void EXhalbtcoutsrc_SetBtPatchVersion(u16 btHciVersion, u16 btPatchVersion)
--{
-- PBTC_COEXIST pBtCoexist = &GLBtCoexist;
--
-- if (!halbtcoutsrc_IsBtCoexistAvailable(pBtCoexist))
-- return;
--
-- pBtCoexist->btInfo.btRealFwVer = btPatchVersion;
-- pBtCoexist->btInfo.btHciVer = btHciVersion;
--}
--
- void EXhalbtcoutsrc_SetChipType(u8 chipType)
- {
- GLBtCoexist.boardInfo.btChipType = BTC_CHIP_RTL8723B;
-@@ -1546,15 +1441,6 @@ void hal_btcoex_SetChipType(PADAPTER pad
- EXhalbtcoutsrc_SetChipType(chipType);
- }
-
--u8 hal_btcoex_GetChipType(PADAPTER padapter)
--{
-- PHAL_DATA_TYPE pHalData;
--
--
-- pHalData = GET_HAL_DATA(padapter);
-- return pHalData->bt_coexist.btChipType;
--}
--
- void hal_btcoex_SetPgAntNum(PADAPTER padapter, u8 antNum)
- {
- PHAL_DATA_TYPE pHalData;
-@@ -1566,16 +1452,6 @@ void hal_btcoex_SetPgAntNum(PADAPTER pad
- EXhalbtcoutsrc_SetAntNum(BT_COEX_ANT_TYPE_PG, antNum);
- }
-
--u8 hal_btcoex_GetPgAntNum(PADAPTER padapter)
--{
-- PHAL_DATA_TYPE pHalData;
--
--
-- pHalData = GET_HAL_DATA(padapter);
--
-- return pHalData->bt_coexist.btTotalAntNum;
--}
--
- void hal_btcoex_SetSingleAntPath(PADAPTER padapter, u8 singleAntPath)
- {
- EXhalbtcoutsrc_SetSingleAntPath(singleAntPath);
-@@ -1666,11 +1542,6 @@ void hal_btcoex_HaltNotify(PADAPTER pada
- EXhalbtcoutsrc_HaltNotify(&GLBtCoexist);
- }
-
--void hal_btcoex_SwitchBtTRxMask(PADAPTER padapter)
--{
-- EXhalbtcoutsrc_SwitchBtTRxMask(&GLBtCoexist);
--}
--
- void hal_btcoex_Hanlder(PADAPTER padapter)
- {
- EXhalbtcoutsrc_Periodical(&GLBtCoexist);
-@@ -1681,27 +1552,11 @@ s32 hal_btcoex_IsBTCoexCtrlAMPDUSize(PAD
- return (s32)GLBtCoexist.btInfo.bBtCtrlAggBufSize;
- }
-
--u32 hal_btcoex_GetAMPDUSize(PADAPTER padapter)
--{
-- return (u32)GLBtCoexist.btInfo.aggBufSize;
--}
--
- void hal_btcoex_SetManualControl(PADAPTER padapter, u8 bmanual)
- {
- GLBtCoexist.bManualControl = bmanual;
- }
-
--u8 hal_btcoex_1Ant(PADAPTER padapter)
--{
-- if (hal_btcoex_IsBtExist(padapter) == false)
-- return false;
--
-- if (GLBtCoexist.boardInfo.btdmAntNum == 1)
-- return true;
--
-- return false;
--}
--
- u8 hal_btcoex_IsBtControlLps(PADAPTER padapter)
- {
- if (hal_btcoex_IsBtExist(padapter) == false)
-@@ -1796,7 +1651,6 @@ u32 hal_btcoex_GetDBG(PADAPTER padapter,
- if ((NULL == pStrBuf) || (0 == bufSize))
- return 0;
-
-- count = 0;
- pstr = pStrBuf;
- leftSize = bufSize;
- // DBG_871X(FUNC_ADPT_FMT ": bufsize=%d\n", FUNC_ADPT_ARG(padapter), bufSize);
-@@ -1828,13 +1682,13 @@ u32 hal_btcoex_GetDBG(PADAPTER padapter,
- pstr += count;
- leftSize -= count;
- count = rtw_sprintf(pstr, leftSize, "\tbit[0]=%d for INTF_INIT\n",
-- GLBtcDbgType[BTC_MSG_INTERFACE]&INTF_INIT?1:0);
-+ (GLBtcDbgType[BTC_MSG_INTERFACE]&INTF_INIT)?1:0);
- if ((count < 0) || (count >= leftSize))
- goto exit;
- pstr += count;
- leftSize -= count;
- count = rtw_sprintf(pstr, leftSize, "\tbit[2]=%d for INTF_NOTIFY\n\n",
-- GLBtcDbgType[BTC_MSG_INTERFACE]&INTF_NOTIFY?1:0);
-+ (GLBtcDbgType[BTC_MSG_INTERFACE]&INTF_NOTIFY)?1:0);
- if ((count < 0) || (count >= leftSize))
- goto exit;
- pstr += count;
-@@ -1846,61 +1700,61 @@ u32 hal_btcoex_GetDBG(PADAPTER padapter,
- pstr += count;
- leftSize -= count;
- count = rtw_sprintf(pstr, leftSize, "\tbit[0]=%d for BT_RSSI_STATE\n",
-- GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_BT_RSSI_STATE?1:0);
-+ (GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_BT_RSSI_STATE)?1:0);
- if ((count < 0) || (count >= leftSize))
- goto exit;
- pstr += count;
- leftSize -= count;
- count = rtw_sprintf(pstr, leftSize, "\tbit[1]=%d for WIFI_RSSI_STATE\n",
-- GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_WIFI_RSSI_STATE?1:0);
-+ (GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_WIFI_RSSI_STATE)?1:0);
- if ((count < 0) || (count >= leftSize))
- goto exit;
- pstr += count;
- leftSize -= count;
- count = rtw_sprintf(pstr, leftSize, "\tbit[2]=%d for BT_MONITOR\n",
-- GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_BT_MONITOR?1:0);
-+ (GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_BT_MONITOR)?1:0);
- if ((count < 0) || (count >= leftSize))
- goto exit;
- pstr += count;
- leftSize -= count;
- count = rtw_sprintf(pstr, leftSize, "\tbit[3]=%d for TRACE\n",
-- GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_TRACE?1:0);
-+ (GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_TRACE)?1:0);
- if ((count < 0) || (count >= leftSize))
- goto exit;
- pstr += count;
- leftSize -= count;
- count = rtw_sprintf(pstr, leftSize, "\tbit[4]=%d for TRACE_FW\n",
-- GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_TRACE_FW?1:0);
-+ (GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_TRACE_FW)?1:0);
- if ((count < 0) || (count >= leftSize))
- goto exit;
- pstr += count;
- leftSize -= count;
- count = rtw_sprintf(pstr, leftSize, "\tbit[5]=%d for TRACE_FW_DETAIL\n",
-- GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_TRACE_FW_DETAIL?1:0);
-+ (GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_TRACE_FW_DETAIL)?1:0);
- if ((count < 0) || (count >= leftSize))
- goto exit;
- pstr += count;
- leftSize -= count;
- count = rtw_sprintf(pstr, leftSize, "\tbit[6]=%d for TRACE_FW_EXEC\n",
-- GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_TRACE_FW_EXEC?1:0);
-+ (GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_TRACE_FW_EXEC)?1:0);
- if ((count < 0) || (count >= leftSize))
- goto exit;
- pstr += count;
- leftSize -= count;
- count = rtw_sprintf(pstr, leftSize, "\tbit[7]=%d for TRACE_SW\n",
-- GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_TRACE_SW?1:0);
-+ (GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_TRACE_SW)?1:0);
- if ((count < 0) || (count >= leftSize))
- goto exit;
- pstr += count;
- leftSize -= count;
- count = rtw_sprintf(pstr, leftSize, "\tbit[8]=%d for TRACE_SW_DETAIL\n",
-- GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_TRACE_SW_DETAIL?1:0);
-+ (GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_TRACE_SW_DETAIL)?1:0);
- if ((count < 0) || (count >= leftSize))
- goto exit;
- pstr += count;
- leftSize -= count;
- count = rtw_sprintf(pstr, leftSize, "\tbit[9]=%d for TRACE_SW_EXEC\n",
-- GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_TRACE_SW_EXEC?1:0);
-+ (GLBtcDbgType[BTC_MSG_ALGORITHM]&ALGO_TRACE_SW_EXEC)?1:0);
- if ((count < 0) || (count >= leftSize))
- goto exit;
- pstr += count;
-@@ -1912,22 +1766,3 @@ exit:
-
- return count;
- }
--
--u8 hal_btcoex_IncreaseScanDeviceNum(PADAPTER padapter)
--{
-- if (!hal_btcoex_IsBtExist(padapter))
-- return false;
--
-- if (GLBtCoexist.btInfo.bIncreaseScanDevNum)
-- return true;
--
-- return false;
--}
--
--u8 hal_btcoex_IsBtLinkExist(PADAPTER padapter)
--{
-- if (GLBtCoexist.btLinkInfo.bBtLinkExist)
-- return true;
--
-- return false;
--}
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/HalBtcOutSrc.h linux/3rdparty/rtl8723bs/hal/HalBtcOutSrc.h
---- linux/3rdparty/rtl8723bs.old/hal/HalBtcOutSrc.h 2015-05-10 14:36:05.687668113 +0300
-+++ linux/3rdparty/rtl8723bs/hal/HalBtcOutSrc.h 2015-05-07 17:46:55.000000000 +0300
-@@ -659,11 +659,6 @@ EXhalbtcoutsrc_BtInfoNotify(
- IN u1Byte length
- );
- void
--EXhalbtcoutsrc_RfStatusNotify(
-- IN PBTC_COEXIST pBtCoexist,
-- IN u1Byte type
-- );
--void
- EXhalbtcoutsrc_HaltNotify(
- IN PBTC_COEXIST pBtCoexist
- );
-@@ -673,34 +668,10 @@ EXhalbtcoutsrc_PnpNotify(
- IN u1Byte pnpState
- );
- void
--EXhalbtcoutsrc_CoexDmSwitch(
-- IN PBTC_COEXIST pBtCoexist
-- );
--void
- EXhalbtcoutsrc_Periodical(
- IN PBTC_COEXIST pBtCoexist
- );
- void
--EXhalbtcoutsrc_DbgControl(
-- IN PBTC_COEXIST pBtCoexist,
-- IN u1Byte opCode,
-- IN u1Byte opLen,
-- IN pu1Byte pData
-- );
--void
--EXhalbtcoutsrc_SetHciVersion(
-- IN u2Byte hciVersion
-- );
--void
--EXhalbtcoutsrc_SetBtPatchVersion(
-- IN u2Byte btHciVersion,
-- IN u2Byte btPatchVersion
-- );
--void
--EXhalbtcoutsrc_UpdateMinBtRssi(
-- IN s8 btRssi
-- );
--void
- EXhalbtcoutsrc_SetChipType(
- IN u1Byte chipType
- );
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/hal_com.c linux/3rdparty/rtl8723bs/hal/hal_com.c
---- linux/3rdparty/rtl8723bs.old/hal/hal_com.c 2015-05-10 14:36:05.688668124 +0300
-+++ linux/3rdparty/rtl8723bs/hal/hal_com.c 2015-05-07 17:46:55.000000000 +0300
-@@ -29,7 +29,7 @@ u8 rtw_hal_data_init(_adapter *padapter)
- if(is_primary_adapter(padapter)) //if(padapter->isprimary)
- {
- padapter->hal_data_sz = sizeof(HAL_DATA_TYPE);
-- padapter->HalData = rtw_zvmalloc(padapter->hal_data_sz);
-+ padapter->HalData = vzalloc(padapter->hal_data_sz);
- if(padapter->HalData == NULL){
- DBG_8192C("cant not alloc memory for HAL DATA \n");
- return _FAIL;
-@@ -47,7 +47,7 @@ void rtw_hal_data_deinit(_adapter *padap
- #ifdef CONFIG_LOAD_PHY_PARA_FROM_FILE
- phy_free_filebuf(padapter);
- #endif
-- rtw_vmfree(padapter->HalData, padapter->hal_data_sz);
-+ vfree(padapter->HalData);
- padapter->HalData = NULL;
- padapter->hal_data_sz = 0;
- }
-@@ -165,10 +165,8 @@ HAL_IsLegalChannel(
- bool bLegalChannel = true;
-
- if (Channel > 14) {
-- if(IsSupported5G(Adapter->registrypriv.wireless_mode) == false) {
-- bLegalChannel = false;
-- DBG_871X("Channel > 14 but wireless_mode do not support 5G\n");
-- }
-+ bLegalChannel = false;
-+ DBG_871X("Channel > 14 but wireless_mode do not support 5G\n");
- } else if ((Channel <= 14) && (Channel >=1)){
- if(IsSupported24G(Adapter->registrypriv.wireless_mode) == false) {
- bLegalChannel = false;
-@@ -577,20 +575,6 @@ void c2h_evt_clear(_adapter *adapter)
- rtw_write8(adapter, REG_C2HEVT_CLEAR, C2H_EVT_HOST_CLOSE);
- }
-
--s32 c2h_evt_read(_adapter *adapter, u8 *buf)
--{
-- s32 ret = _FAIL;
-- struct c2h_evt_hdr *c2h_evt;
-- int i;
-- u8 trigger;
--
-- if (buf == NULL)
-- goto exit;
--
--exit:
-- return ret;
--}
--
- /*
- * C2H event format:
- * Field TRIGGER CMD_LEN CONTENT CMD_SEQ CMD_ID
-@@ -725,14 +709,10 @@ _func_enter_;
- break;
- case HW_VAR_SEC_CFG:
- {
-- #if defined(DYNAMIC_CAMID_ALLOC)
- u16 reg_scr;
-
- reg_scr = rtw_read16(adapter, REG_SECCFG);
- rtw_write16(adapter, REG_SECCFG, reg_scr|SCR_CHK_KEYID|SCR_RxDecEnable|SCR_TxEncEnable);
-- #else
-- rtw_write8(adapter, REG_SECCFG, *((u8*)val));
-- #endif
- }
- break;
- case HW_VAR_SEC_DK_CFG:
-@@ -1019,10 +999,10 @@ void SetHalODMVar(
- }
- else{
- DBG_8192C("### Clean STA_(%d) info ###\n",psta->mac_id);
-- //_enter_critical_bh(&pHalData->odm_stainfo_lock, &irqL);
-+ //spin_lock_bh(&pHalData->odm_stainfo_lock);
- ODM_CmnInfoPtrArrayHook(podmpriv, ODM_CMNINFO_STA_STATUS,psta->mac_id,NULL);
-
-- //_exit_critical_bh(&pHalData->odm_stainfo_lock, &irqL);
-+ //spin_unlock_bh(&pHalData->odm_stainfo_lock);
- }
- }
- break;
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/hal_com_phycfg.c linux/3rdparty/rtl8723bs/hal/hal_com_phycfg.c
---- linux/3rdparty/rtl8723bs.old/hal/hal_com_phycfg.c 2015-05-10 14:36:05.690668146 +0300
-+++ linux/3rdparty/rtl8723bs/hal/hal_com_phycfg.c 2015-05-07 17:46:55.000000000 +0300
-@@ -22,50 +22,6 @@
- #include
- #include
-
--
--//
--// Description:
--// Map Tx power index into dBm according to
--// current HW model, for example, RF and PA, and
--// current wireless mode.
--// By Bruce, 2008-01-29.
--//
--s32
--phy_TxPwrIdxToDbm(
-- IN PADAPTER Adapter,
-- IN WIRELESS_MODE WirelessMode,
-- IN u8 TxPwrIdx
-- )
--{
-- s32 Offset = 0;
-- s32 PwrOutDbm = 0;
--
-- //
-- // Tested by MP, we found that CCK Index 0 equals to -7dbm, OFDM legacy equals to -8dbm.
-- // Note:
-- // The mapping may be different by different NICs. Do not use this formula for what needs accurate result.
-- // By Bruce, 2008-01-29.
-- //
-- switch(WirelessMode)
-- {
-- case WIRELESS_MODE_B:
-- Offset = -7;
-- break;
--
-- case WIRELESS_MODE_G:
-- case WIRELESS_MODE_N_24G:
-- Offset = -8;
-- break;
--
-- default: //for MacOSX compiler warning
-- break;
-- }
--
-- PwrOutDbm = TxPwrIdx / 2 + Offset; // Discard the decimal part.
--
-- return PwrOutDbm;
--}
--
- u8
- PHY_GetTxPowerByRateBase(
- IN PADAPTER Adapter,
-@@ -272,7 +228,7 @@ phy_StoreTxPowerByRateBase(
- IN PADAPTER pAdapter
- )
- {
-- u8 path = 0, base = 0, index = 0;
-+ u8 path, base;
-
- //DBG_871X( "===>%s\n", __FUNCTION__ );
-
-@@ -399,9 +355,8 @@ PHY_GetRateValuesOfTxPowerByRate(
- )
- {
- HAL_DATA_TYPE *pHalData = GET_HAL_DATA( pAdapter );
-- PDM_ODM_T pDM_Odm = &pHalData->odmpriv;
-- u8 index = 0, i = 0;
--
-+ u8 i = 0;
-+
- switch ( RegAddr )
- {
- case rTxAGC_A_Rate18_06:
-@@ -875,7 +830,7 @@ PHY_InitTxPowerByRate(
- )
- {
- HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter);
-- u8 band = 0, rfPath = 0, TxNum = 0, rate = 0, i = 0, j = 0;
-+ u8 band, rfPath, TxNum, rate;
-
- for ( band = BAND_ON_2_4G; band <= BAND_ON_5G; ++band )
- for ( rfPath = 0; rfPath < TX_PWR_BY_RATE_NUM_RF; ++rfPath )
-@@ -921,10 +876,8 @@ phy_ConvertTxPowerByRateInDbmToRelativeV
- IN PADAPTER pAdapter
- )
- {
-- HAL_DATA_TYPE *pHalData = GET_HAL_DATA( pAdapter );
- u8 base = 0, i = 0, value = 0,
-- band = 0, path = 0, txNum = 0, index = 0,
-- startIndex = 0, endIndex = 0;
-+ band = 0, path = 0, txNum = 0;
- u8 cckRates[4] = {MGN_1M, MGN_2M, MGN_5_5M, MGN_11M},
- ofdmRates[8] = {MGN_6M, MGN_9M, MGN_12M, MGN_18M, MGN_24M, MGN_36M, MGN_48M, MGN_54M},
- mcs0_7Rates[8] = {MGN_MCS0, MGN_MCS1, MGN_MCS2, MGN_MCS3, MGN_MCS4, MGN_MCS5, MGN_MCS6, MGN_MCS7},
-@@ -1024,8 +977,6 @@ PHY_TxPowerByRateConfiguration(
- IN PADAPTER pAdapter
- )
- {
-- HAL_DATA_TYPE *pHalData = GET_HAL_DATA( pAdapter);
--
- phy_StoreTxPowerByRateBase( pAdapter );
- phy_ConvertTxPowerByRateInDbmToRelativeValues( pAdapter );
- }
-@@ -1166,7 +1117,6 @@ PHY_GetTxPowerIndexBase(
- )
- {
- PHAL_DATA_TYPE pHalData = GET_HAL_DATA(pAdapter);
-- PDM_ODM_T pDM_Odm = &pHalData->odmpriv;
- u8 i = 0; //default set to 1S
- u8 txPower = 0;
- u8 chnlIdx = (Channel-1);
-@@ -1475,7 +1425,7 @@ PHY_GetTxPowerByRate(
- )
- {
- HAL_DATA_TYPE *pHalData = GET_HAL_DATA( pAdapter );
-- s8 value = 0, limit = 0;
-+ s8 value = 0;
- u8 rateIndex = PHY_GetRateIndexOfTxPowerByRate( Rate );
-
- if ( ( pAdapter->registrypriv.RegEnableTxPowerByRate == 2 && pHalData->EEPROMRegulatory == 2 ) ||
-@@ -1925,10 +1875,8 @@ PHY_ConvertTxPowerLimitToPowerIndex(
- )
- {
- HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
-- u8 BW40PwrBasedBm2_4G = 0x2E, BW40PwrBasedBm5G = 0x2E;
-+ u8 BW40PwrBasedBm2_4G = 0x2E;
- u8 regulation, bw, channel, rateSection;
-- u8 baseIndex2_4G;
-- u8 baseIndex5G;
- s8 tempValue = 0, tempPwrLmt = 0;
- u8 rfPath = 0;
-
-@@ -2121,11 +2069,7 @@ PHY_GetTxPowerIndex(
- IN u8 Channel
- )
- {
-- u8 txPower = 0x3E;
--
-- txPower = PHY_GetTxPowerIndex_8723B(pAdapter, RFPath, Rate, BandWidth, Channel);
--
-- return txPower;
-+ return PHY_GetTxPowerIndex_8723B(pAdapter, RFPath, Rate, BandWidth, Channel);
- }
-
- void
-@@ -2340,7 +2284,7 @@ phy_ConfigMACWithParaFile(
- if (rlen > 0)
- {
- rtStatus = _SUCCESS;
-- pHalData->mac_reg = rtw_zvmalloc(rlen);
-+ pHalData->mac_reg = vzalloc(rlen);
- if(pHalData->mac_reg) {
- memcpy(pHalData->mac_reg, pHalData->para_file_buf, rlen);
- pHalData->mac_reg_len = rlen;
-@@ -2439,7 +2383,7 @@ phy_ConfigBBWithParaFile(
- if (rlen > 0)
- {
- rtStatus = _SUCCESS;
-- pBuf = rtw_zvmalloc(rlen);
-+ pBuf = vzalloc(rlen);
- if(pBuf) {
- memcpy(pBuf, pHalData->para_file_buf, rlen);
- *pBufLen = rlen;
-@@ -2888,7 +2832,7 @@ phy_ConfigBBWithPgParaFile(
- if (rlen > 0)
- {
- rtStatus = _SUCCESS;
-- pHalData->bb_phy_reg_pg = rtw_zvmalloc(rlen);
-+ pHalData->bb_phy_reg_pg = vzalloc(rlen);
- if(pHalData->bb_phy_reg_pg) {
- memcpy(pHalData->bb_phy_reg_pg, pHalData->para_file_buf, rlen);
- pHalData->bb_phy_reg_pg_len = rlen;
-@@ -2968,7 +2912,7 @@ PHY_ConfigRFWithParaFile(
- if (rlen > 0)
- {
- rtStatus = _SUCCESS;
-- pBuf = rtw_zvmalloc(rlen);
-+ pBuf = vzalloc(rlen);
- if(pBuf) {
- memcpy(pBuf, pHalData->para_file_buf, rlen);
- *pBufLen = rlen;
-@@ -3242,7 +3186,7 @@ PHY_ConfigRFWithTxPwrTrackParaFile(
- if (rlen > 0)
- {
- rtStatus = _SUCCESS;
-- pHalData->rf_tx_pwr_track = rtw_zvmalloc(rlen);
-+ pHalData->rf_tx_pwr_track = vzalloc(rlen);
- if(pHalData->rf_tx_pwr_track) {
- memcpy(pHalData->rf_tx_pwr_track, pHalData->para_file_buf, rlen);
- pHalData->rf_tx_pwr_track_len = rlen;
-@@ -3591,7 +3535,7 @@ PHY_ConfigRFWithPowerLimitTableParaFile(
- if (rlen > 0)
- {
- rtStatus = _SUCCESS;
-- pHalData->rf_tx_pwr_lmt = rtw_zvmalloc(rlen);
-+ pHalData->rf_tx_pwr_lmt = vzalloc(rlen);
- if(pHalData->rf_tx_pwr_lmt) {
- memcpy(pHalData->rf_tx_pwr_lmt, pHalData->para_file_buf, rlen);
- pHalData->rf_tx_pwr_lmt_len = rlen;
-@@ -3631,23 +3575,23 @@ void phy_free_filebuf(_adapter *padapter
- HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
-
- if(pHalData->mac_reg)
-- rtw_vmfree(pHalData->mac_reg, pHalData->mac_reg_len);
-+ vfree(pHalData->mac_reg);
- if(pHalData->bb_phy_reg)
-- rtw_vmfree(pHalData->bb_phy_reg, pHalData->bb_phy_reg_len);
-+ vfree(pHalData->bb_phy_reg);
- if(pHalData->bb_agc_tab)
-- rtw_vmfree(pHalData->bb_agc_tab, pHalData->bb_agc_tab_len);
-+ vfree(pHalData->bb_agc_tab);
- if(pHalData->bb_phy_reg_pg)
-- rtw_vmfree(pHalData->bb_phy_reg_pg, pHalData->bb_phy_reg_pg_len);
-+ vfree(pHalData->bb_phy_reg_pg);
- if(pHalData->bb_phy_reg_mp)
-- rtw_vmfree(pHalData->bb_phy_reg_mp, pHalData->bb_phy_reg_mp_len);
-+ vfree(pHalData->bb_phy_reg_mp);
- if(pHalData->rf_radio_a)
-- rtw_vmfree(pHalData->rf_radio_a, pHalData->rf_radio_a_len);
-+ vfree(pHalData->rf_radio_a);
- if(pHalData->rf_radio_b)
-- rtw_vmfree(pHalData->rf_radio_b, pHalData->rf_radio_b_len);
-+ vfree(pHalData->rf_radio_b);
- if(pHalData->rf_tx_pwr_track)
-- rtw_vmfree(pHalData->rf_tx_pwr_track, pHalData->rf_tx_pwr_track_len);
-+ vfree(pHalData->rf_tx_pwr_track);
- if(pHalData->rf_tx_pwr_lmt)
-- rtw_vmfree(pHalData->rf_tx_pwr_lmt, pHalData->rf_tx_pwr_lmt_len);
-+ vfree(pHalData->rf_tx_pwr_lmt);
-
- }
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/HalHWImg8723B_BB.c linux/3rdparty/rtl8723bs/hal/HalHWImg8723B_BB.c
---- linux/3rdparty/rtl8723bs.old/hal/HalHWImg8723B_BB.c 2015-05-10 14:36:05.690668146 +0300
-+++ linux/3rdparty/rtl8723bs/hal/HalHWImg8723B_BB.c 2015-05-07 17:46:55.000000000 +0300
-@@ -313,12 +313,6 @@ ODM_ReadAndConfig_MP_8723B_AGC_TAB(
- }
- }
-
--u4Byte
--ODM_GetVersion_MP_8723B_AGC_TAB(void)
--{
-- return 11;
--}
--
- /******************************************************************************
- * PHY_REG.TXT
- ******************************************************************************/
-@@ -588,12 +582,6 @@ ODM_ReadAndConfig_MP_8723B_PHY_REG(
- }
- }
-
--u4Byte
--ODM_GetVersion_MP_8723B_PHY_REG(void)
--{
-- return 11;
--}
--
- /******************************************************************************
- * PHY_REG_PG.TXT
- ******************************************************************************/
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/HalHWImg8723B_BB.h linux/3rdparty/rtl8723bs/hal/HalHWImg8723B_BB.h
---- linux/3rdparty/rtl8723bs.old/hal/HalHWImg8723B_BB.h 2015-05-10 14:36:05.690668146 +0300
-+++ linux/3rdparty/rtl8723bs/hal/HalHWImg8723B_BB.h 2015-05-07 17:46:55.000000000 +0300
-@@ -30,7 +30,6 @@ void
- ODM_ReadAndConfig_MP_8723B_AGC_TAB( // TC: Test Chip, MP: MP Chip
- IN PDM_ODM_T pDM_Odm
- );
--u4Byte ODM_GetVersion_MP_8723B_AGC_TAB(void);
-
- /******************************************************************************
- * PHY_REG.TXT
-@@ -40,7 +39,6 @@ void
- ODM_ReadAndConfig_MP_8723B_PHY_REG( // TC: Test Chip, MP: MP Chip
- IN PDM_ODM_T pDM_Odm
- );
--u4Byte ODM_GetVersion_MP_8723B_PHY_REG(void);
-
- /******************************************************************************
- * PHY_REG_PG.TXT
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/HalHWImg8723B_MAC.c linux/3rdparty/rtl8723bs/hal/HalHWImg8723B_MAC.c
---- linux/3rdparty/rtl8723bs.old/hal/HalHWImg8723B_MAC.c 2015-05-10 14:36:05.699668247 +0300
-+++ linux/3rdparty/rtl8723bs/hal/HalHWImg8723B_MAC.c 2015-05-07 17:46:55.000000000 +0300
-@@ -284,9 +284,3 @@ ODM_ReadAndConfig_MP_8723B_MAC_REG(
- }
- }
- }
--
--u4Byte
--ODM_GetVersion_MP_8723B_MAC_REG(void)
--{
-- return 11;
--}
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/HalHWImg8723B_MAC.h linux/3rdparty/rtl8723bs/hal/HalHWImg8723B_MAC.h
---- linux/3rdparty/rtl8723bs.old/hal/HalHWImg8723B_MAC.h 2015-05-10 14:36:05.699668247 +0300
-+++ linux/3rdparty/rtl8723bs/hal/HalHWImg8723B_MAC.h 2015-05-07 17:46:55.000000000 +0300
-@@ -30,6 +30,4 @@ void
- ODM_ReadAndConfig_MP_8723B_MAC_REG( // TC: Test Chip, MP: MP Chip
- IN PDM_ODM_T pDM_Odm
- );
--u4Byte ODM_GetVersion_MP_8723B_MAC_REG(void);
--
- #endif
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/HalHWImg8723B_RF.c linux/3rdparty/rtl8723bs/hal/HalHWImg8723B_RF.c
---- linux/3rdparty/rtl8723bs.old/hal/HalHWImg8723B_RF.c 2015-05-10 14:36:05.700668257 +0300
-+++ linux/3rdparty/rtl8723bs/hal/HalHWImg8723B_RF.c 2015-05-07 17:46:55.000000000 +0300
-@@ -306,34 +306,6 @@ ODM_ReadAndConfig_MP_8723B_RadioA(
- }
- }
-
--u4Byte
--ODM_GetVersion_MP_8723B_RadioA(void)
--{
-- return 11;
--}
--
--/******************************************************************************
--* TxPowerTrack_AP.TXT
--******************************************************************************/
--
--void
--ODM_ReadAndConfig_MP_8723B_TxPowerTrack_AP(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
--}
--
--/******************************************************************************
--* TxPowerTrack_PCIE.TXT
--******************************************************************************/
--
--void
--ODM_ReadAndConfig_MP_8723B_TxPowerTrack_PCIE(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
--}
--
- /******************************************************************************
- * TxPowerTrack_SDIO.TXT
- ******************************************************************************/
-@@ -394,17 +366,6 @@ ODM_ReadAndConfig_MP_8723B_TxPowerTrack_
- }
-
- /******************************************************************************
--* TxPowerTrack_USB.TXT
--******************************************************************************/
--
--void
--ODM_ReadAndConfig_MP_8723B_TxPowerTrack_USB(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
--}
--
--/******************************************************************************
- * TXPWR_LMT.TXT
- ******************************************************************************/
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/HalHWImg8723B_RF.h linux/3rdparty/rtl8723bs/hal/HalHWImg8723B_RF.h
---- linux/3rdparty/rtl8723bs.old/hal/HalHWImg8723B_RF.h 2015-05-10 14:36:05.700668257 +0300
-+++ linux/3rdparty/rtl8723bs/hal/HalHWImg8723B_RF.h 2015-05-07 17:46:55.000000000 +0300
-@@ -30,27 +30,6 @@ void
- ODM_ReadAndConfig_MP_8723B_RadioA( // TC: Test Chip, MP: MP Chip
- IN PDM_ODM_T pDM_Odm
- );
--u4Byte ODM_GetVersion_MP_8723B_RadioA(void);
--
--/******************************************************************************
--* TxPowerTrack_AP.TXT
--******************************************************************************/
--
--void
--ODM_ReadAndConfig_MP_8723B_TxPowerTrack_AP( // TC: Test Chip, MP: MP Chip
-- IN PDM_ODM_T pDM_Odm
--);
--u4Byte ODM_GetVersion_MP_8723B_TxPowerTrack_AP(void);
--
--/******************************************************************************
--* TxPowerTrack_PCIE.TXT
--******************************************************************************/
--
--void
--ODM_ReadAndConfig_MP_8723B_TxPowerTrack_PCIE( // TC: Test Chip, MP: MP Chip
-- IN PDM_ODM_T pDM_Odm
--);
--u4Byte ODM_GetVersion_MP_8723B_TxPowerTrack_PCIE(void);
-
- /******************************************************************************
- * TxPowerTrack_SDIO.TXT
-@@ -63,16 +42,6 @@ ODM_ReadAndConfig_MP_8723B_TxPowerTrack_
- u4Byte ODM_GetVersion_MP_8723B_TxPowerTrack_SDIO(void);
-
- /******************************************************************************
--* TxPowerTrack_USB.TXT
--******************************************************************************/
--
--void
--ODM_ReadAndConfig_MP_8723B_TxPowerTrack_USB( // TC: Test Chip, MP: MP Chip
-- IN PDM_ODM_T pDM_Odm
--);
--u4Byte ODM_GetVersion_MP_8723B_TxPowerTrack_USB(void);
--
--/******************************************************************************
- * TXPWR_LMT.TXT
- ******************************************************************************/
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/hal_intf.c linux/3rdparty/rtl8723bs/hal/hal_intf.c
---- linux/3rdparty/rtl8723bs.old/hal/hal_intf.c 2015-05-10 14:36:05.700668257 +0300
-+++ linux/3rdparty/rtl8723bs/hal/hal_intf.c 2015-05-07 17:46:55.000000000 +0300
-@@ -69,29 +69,6 @@ void rtw_hal_dm_deinit(_adapter *padapte
- if(padapter->HalFunc.dm_deinit)
- padapter->HalFunc.dm_deinit(padapter);
- }
--void rtw_hal_sw_led_init(_adapter *padapter)
--{
-- if(padapter->HalFunc.InitSwLeds)
-- padapter->HalFunc.InitSwLeds(padapter);
--}
--
--void rtw_hal_sw_led_deinit(_adapter *padapter)
--{
-- if(padapter->HalFunc.DeInitSwLeds)
-- padapter->HalFunc.DeInitSwLeds(padapter);
--}
--
--u32 rtw_hal_power_on(_adapter *padapter)
--{
-- if(padapter->HalFunc.hal_power_on)
-- return padapter->HalFunc.hal_power_on(padapter);
-- return _FAIL;
--}
--void rtw_hal_power_off(_adapter *padapter)
--{
-- if(padapter->HalFunc.hal_power_off)
-- padapter->HalFunc.hal_power_off(padapter);
--}
-
- static void rtw_hal_init_opmode(_adapter *padapter)
- {
-@@ -136,8 +113,6 @@ uint rtw_hal_init(_adapter *padapter)
- for (i = 0; iiface_nums; i++)
- rtw_sec_restore_wep_key(dvobj->padapters[i]);
-
-- rtw_led_control(padapter, LED_CTL_POWER_ON);
--
- init_hw_mlme_ext(padapter);
-
- rtw_bb_rf_gain_offset(padapter);
-@@ -164,7 +139,6 @@ _func_enter_;
- status = padapter->HalFunc.hal_deinit(padapter);
-
- if(status == _SUCCESS){
-- rtw_led_control(padapter, LED_CTL_POWER_OFF);
- for (i = 0; iiface_nums; i++) {
- padapter = dvobj->padapters[i];
- padapter->hw_init_completed = false;
-@@ -261,41 +235,6 @@ void rtw_hal_clear_interrupt(_adapter *p
- }
- #endif
-
--u32 rtw_hal_inirp_init(_adapter *padapter)
--{
-- u32 rst = _FAIL;
-- if(padapter->HalFunc.inirp_init)
-- rst = padapter->HalFunc.inirp_init(padapter);
-- else
-- DBG_871X(" %s HalFunc.inirp_init is NULL!!!\n",__FUNCTION__);
-- return rst;
--}
--
--u32 rtw_hal_inirp_deinit(_adapter *padapter)
--{
--
-- if(padapter->HalFunc.inirp_deinit)
-- return padapter->HalFunc.inirp_deinit(padapter);
--
-- return _FAIL;
--
--}
--
--void rtw_hal_irp_reset(_adapter *padapter)
--{
-- if(padapter->HalFunc.irp_reset)
-- padapter->HalFunc.irp_reset(padapter);
-- else
-- DBG_871X("%s: HalFunc.rtw_hal_irp_reset is NULL!\n", __FUNCTION__);
--}
--
--u8 rtw_hal_intf_ps_func(_adapter *padapter,HAL_INTF_PS_FUNC efunc_id, u8* val)
--{
-- if(padapter->HalFunc.interface_ps_func)
-- return padapter->HalFunc.interface_ps_func(padapter,efunc_id,val);
-- return _FAIL;
--}
--
- s32 rtw_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe)
- {
- if(padapter->HalFunc.hal_xmitframe_enqueue)
-@@ -325,7 +264,6 @@ s32 rtw_hal_mgnt_xmit(_adapter *padapter
- //pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
- //memcpy(pmgntframe->attrib.ra, pwlanhdr->addr1, ETH_ALEN);
-
--#ifdef CONFIG_IEEE80211W
- if(padapter->securitypriv.binstallBIPkey == true)
- {
- if(IS_MCAST(pmgntframe->attrib.ra))
-@@ -340,8 +278,7 @@ s32 rtw_hal_mgnt_xmit(_adapter *padapter
- }
- rtw_mgmt_xmitframe_coalesce(padapter, pmgntframe->pkt, pmgntframe);
- }
--#endif //CONFIG_IEEE80211W
--
-+
- if(padapter->HalFunc.mgnt_xmit)
- ret = padapter->HalFunc.mgnt_xmit(padapter, pmgntframe);
- return ret;
-@@ -441,19 +378,6 @@ void rtw_hal_write_rfreg(_adapter *padap
- padapter->HalFunc.write_rfreg(padapter, eRFPath, RegAddr, BitMask, Data);
- }
-
--s32 rtw_hal_interrupt_handler(_adapter *padapter)
--{
-- if(padapter->HalFunc.interrupt_handler)
-- return padapter->HalFunc.interrupt_handler(padapter);
-- return _FAIL;
--}
--
--void rtw_hal_set_bwmode(_adapter *padapter, CHANNEL_WIDTH Bandwidth, u8 Offset)
--{
-- if(padapter->HalFunc.set_bwmode_handler)
-- padapter->HalFunc.set_bwmode_handler(padapter, Bandwidth, Offset);
--}
--
- void rtw_hal_set_chan(_adapter *padapter, u8 channel)
- {
- if(padapter->HalFunc.set_channel_handler)
-@@ -466,18 +390,6 @@ void rtw_hal_set_chnl_bw(_adapter *padap
- padapter->HalFunc.set_chnl_bw_handler(padapter, channel, Bandwidth, Offset40, Offset80);
- }
-
--void rtw_hal_set_tx_power_level(_adapter *padapter, u8 channel)
--{
-- if(padapter->HalFunc.set_tx_power_level_handler)
-- padapter->HalFunc.set_tx_power_level_handler(padapter, channel);
--}
--
--void rtw_hal_get_tx_power_level(_adapter *padapter, s32 *powerlevel)
--{
-- if(padapter->HalFunc.get_tx_power_level_handler)
-- padapter->HalFunc.get_tx_power_level_handler(padapter, powerlevel);
--}
--
- void rtw_hal_dm_watchdog(_adapter *padapter)
- {
- if(padapter->HalFunc.hal_dm_watchdog)
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/hal_phy.c linux/3rdparty/rtl8723bs/hal/hal_phy.c
---- linux/3rdparty/rtl8723bs.old/hal/hal_phy.c 2015-05-10 14:36:05.700668257 +0300
-+++ linux/3rdparty/rtl8723bs/hal/hal_phy.c 1970-01-01 02:00:00.000000000 +0200
-@@ -1,285 +0,0 @@
--/******************************************************************************
-- *
-- * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or modify it
-- * under the terms of version 2 of the GNU General Public License as
-- * published by the Free Software Foundation.
-- *
-- * This program is distributed in the hope that it will be useful, but WITHOUT
-- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-- * more details.
-- *
-- * You should have received a copy of the GNU General Public License along with
-- * this program; if not, write to the Free Software Foundation, Inc.,
-- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-- *
-- *
-- ******************************************************************************/
--#define _HAL_PHY_C_
--
--#include
--
--//================================================================================
--// Constant.
--//================================================================================
--// 2008/11/20 MH For Debug only, RF
--static RF_SHADOW_T RF_Shadow[RF6052_MAX_PATH][RF6052_MAX_REG];
--
--/**
--* Function: PHY_CalculateBitShift
--*
--* OverView: Get shifted position of the BitMask
--*
--* Input:
--* u4Byte BitMask,
--*
--* Output: none
--* Return: u4Byte Return the shift bit bit position of the mask
--*/
--u32
--PHY_CalculateBitShift(
-- u32 BitMask
-- )
--{
-- u32 i;
--
-- for(i=0; i<=31; i++)
-- {
-- if ( ((BitMask>>i) & 0x1 ) == 1)
-- break;
-- }
--
-- return (i);
--}
--
--
--//
--// ==> RF shadow Operation API Code Section!!!
--//
--/*-----------------------------------------------------------------------------
-- * Function: PHY_RFShadowRead
-- * PHY_RFShadowWrite
-- * PHY_RFShadowCompare
-- * PHY_RFShadowRecorver
-- * PHY_RFShadowCompareAll
-- * PHY_RFShadowRecorverAll
-- * PHY_RFShadowCompareFlagSet
-- * PHY_RFShadowRecorverFlagSet
-- *
-- * Overview: When we set RF register, we must write shadow at first.
-- * When we are running, we must compare shadow abd locate error addr.
-- * Decide to recorver or not.
-- *
-- * Input: NONE
-- *
-- * Output: NONE
-- *
-- * Return: NONE
-- *
-- * Revised History:
-- * When Who Remark
-- * 11/20/2008 MHC Create Version 0.
-- *
-- *---------------------------------------------------------------------------*/
--u32
--PHY_RFShadowRead(
-- IN PADAPTER Adapter,
-- IN u8 eRFPath,
-- IN u32 Offset)
--{
-- return RF_Shadow[eRFPath][Offset].Value;
--
--} /* PHY_RFShadowRead */
--
--
--void
--PHY_RFShadowWrite(
-- IN PADAPTER Adapter,
-- IN u8 eRFPath,
-- IN u32 Offset,
-- IN u32 Data)
--{
-- RF_Shadow[eRFPath][Offset].Value = (Data & bRFRegOffsetMask);
-- RF_Shadow[eRFPath][Offset].Driver_Write = true;
--
--} /* PHY_RFShadowWrite */
--
--
--bool
--PHY_RFShadowCompare(
-- IN PADAPTER Adapter,
-- IN u8 eRFPath,
-- IN u32 Offset)
--{
-- u32 reg;
-- // Check if we need to check the register
-- if (RF_Shadow[eRFPath][Offset].Compare == true)
-- {
-- reg = rtw_hal_read_rfreg(Adapter, eRFPath, Offset, bRFRegOffsetMask);
-- // Compare shadow and real rf register for 20bits!!
-- if (RF_Shadow[eRFPath][Offset].Value != reg)
-- {
-- // Locate error position.
-- RF_Shadow[eRFPath][Offset].ErrorOrNot = true;
-- //RT_TRACE(COMP_INIT, DBG_LOUD,
-- //("PHY_RFShadowCompare RF-%d Addr%02lx Err = %05lx\n",
-- //eRFPath, Offset, reg));
-- }
-- return RF_Shadow[eRFPath][Offset].ErrorOrNot ;
-- }
-- return false;
--} /* PHY_RFShadowCompare */
--
--
--void
--PHY_RFShadowRecorver(
-- IN PADAPTER Adapter,
-- IN u8 eRFPath,
-- IN u32 Offset)
--{
-- // Check if the address is error
-- if (RF_Shadow[eRFPath][Offset].ErrorOrNot == true)
-- {
-- // Check if we need to recorver the register.
-- if (RF_Shadow[eRFPath][Offset].Recorver == true)
-- {
-- rtw_hal_write_rfreg(Adapter, eRFPath, Offset, bRFRegOffsetMask,
-- RF_Shadow[eRFPath][Offset].Value);
-- //RT_TRACE(COMP_INIT, DBG_LOUD,
-- //("PHY_RFShadowRecorver RF-%d Addr%02lx=%05lx",
-- //eRFPath, Offset, RF_Shadow[eRFPath][Offset].Value));
-- }
-- }
--
--} /* PHY_RFShadowRecorver */
--
--
--void
--PHY_RFShadowCompareAll(
-- IN PADAPTER Adapter)
--{
-- u8 eRFPath = 0 ;
-- u32 Offset = 0, maxReg= GET_RF6052_REAL_MAX_REG(Adapter);
--
-- for (eRFPath = 0; eRFPath < RF6052_MAX_PATH; eRFPath++)
-- {
-- for (Offset = 0; Offset < maxReg; Offset++)
-- {
-- PHY_RFShadowCompare(Adapter, eRFPath, Offset);
-- }
-- }
--
--} /* PHY_RFShadowCompareAll */
--
--
--void
--PHY_RFShadowRecorverAll(
-- IN PADAPTER Adapter)
--{
-- u8 eRFPath =0;
-- u32 Offset = 0, maxReg= GET_RF6052_REAL_MAX_REG(Adapter);
--
-- for (eRFPath = 0; eRFPath < RF6052_MAX_PATH; eRFPath++)
-- {
-- for (Offset = 0; Offset < maxReg; Offset++)
-- {
-- PHY_RFShadowRecorver(Adapter, eRFPath, Offset);
-- }
-- }
--
--} /* PHY_RFShadowRecorverAll */
--
--
--void
--PHY_RFShadowCompareFlagSet(
-- IN PADAPTER Adapter,
-- IN u8 eRFPath,
-- IN u32 Offset,
-- IN u8 Type)
--{
-- // Set True or False!!!
-- RF_Shadow[eRFPath][Offset].Compare = Type;
--
--} /* PHY_RFShadowCompareFlagSet */
--
--
--void
--PHY_RFShadowRecorverFlagSet(
-- IN PADAPTER Adapter,
-- IN u8 eRFPath,
-- IN u32 Offset,
-- IN u8 Type)
--{
-- // Set True or False!!!
-- RF_Shadow[eRFPath][Offset].Recorver= Type;
--
--} /* PHY_RFShadowRecorverFlagSet */
--
--
--void
--PHY_RFShadowCompareFlagSetAll(
-- IN PADAPTER Adapter)
--{
-- u8 eRFPath = 0;
-- u32 Offset = 0, maxReg= GET_RF6052_REAL_MAX_REG(Adapter);
--
-- for (eRFPath = 0; eRFPath < RF6052_MAX_PATH; eRFPath++)
-- {
-- for (Offset = 0; Offset < maxReg; Offset++)
-- {
-- // 2008/11/20 MH For S3S4 test, we only check reg 26/27 now!!!!
-- if (Offset != 0x26 && Offset != 0x27)
-- PHY_RFShadowCompareFlagSet(Adapter, eRFPath, Offset, false);
-- else
-- PHY_RFShadowCompareFlagSet(Adapter, eRFPath, Offset, true);
-- }
-- }
--
--} /* PHY_RFShadowCompareFlagSetAll */
--
--
--void
--PHY_RFShadowRecorverFlagSetAll(
-- IN PADAPTER Adapter)
--{
-- u8 eRFPath = 0;
-- u32 Offset = 0, maxReg= GET_RF6052_REAL_MAX_REG(Adapter);
--
-- for (eRFPath = 0; eRFPath < RF6052_MAX_PATH; eRFPath++)
-- {
-- for (Offset = 0; Offset < maxReg; Offset++)
-- {
-- // 2008/11/20 MH For S3S4 test, we only check reg 26/27 now!!!!
-- if (Offset != 0x26 && Offset != 0x27)
-- PHY_RFShadowRecorverFlagSet(Adapter, eRFPath, Offset, false);
-- else
-- PHY_RFShadowRecorverFlagSet(Adapter, eRFPath, Offset, true);
-- }
-- }
--
--} /* PHY_RFShadowCompareFlagSetAll */
--
--void
--PHY_RFShadowRefresh(
-- IN PADAPTER Adapter)
--{
-- u8 eRFPath = 0;
-- u32 Offset = 0, maxReg= GET_RF6052_REAL_MAX_REG(Adapter);
--
-- for (eRFPath = 0; eRFPath < RF6052_MAX_PATH; eRFPath++)
-- {
-- for (Offset = 0; Offset < maxReg; Offset++)
-- {
-- RF_Shadow[eRFPath][Offset].Value = 0;
-- RF_Shadow[eRFPath][Offset].Compare = false;
-- RF_Shadow[eRFPath][Offset].Recorver = false;
-- RF_Shadow[eRFPath][Offset].ErrorOrNot = false;
-- RF_Shadow[eRFPath][Offset].Driver_Write = false;
-- }
-- }
--
--} /* PHY_RFShadowRead */
--
--
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/HalPhyRf_8723B.c linux/3rdparty/rtl8723bs/hal/HalPhyRf_8723B.c
---- linux/3rdparty/rtl8723bs.old/hal/HalPhyRf_8723B.c 2015-05-10 14:36:05.702668280 +0300
-+++ linux/3rdparty/rtl8723bs/hal/HalPhyRf_8723B.c 2015-05-07 17:46:55.000000000 +0300
-@@ -88,24 +88,24 @@ static void setIqkMatrix_8723B(
- case ODM_RF_PATH_A:
- //wirte new elements A, C, D to regC80 and regC94, element B is always 0
- value32 = (ele_D<<22)|((ele_C&0x3F)<<16)|ele_A;
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XATxIQImbalance, bMaskDWord, value32);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XATxIQImbalance, bMaskDWord, value32);
-
- value32 = (ele_C&0x000003C0)>>6;
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XCTxAFE, bMaskH4Bits, value32);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XCTxAFE, bMaskH4Bits, value32);
-
- value32 = ((IqkResult_X * ele_D)>>7)&0x01;
-- ODM_SetBBReg(pDM_Odm, rOFDM0_ECCAThreshold, BIT24, value32);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_ECCAThreshold, BIT24, value32);
- break;
- case ODM_RF_PATH_B:
- //wirte new elements A, C, D to regC88 and regC9C, element B is always 0
- value32=(ele_D<<22)|((ele_C&0x3F)<<16) |ele_A;
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XBTxIQImbalance, bMaskDWord, value32);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XBTxIQImbalance, bMaskDWord, value32);
-
- value32 = (ele_C&0x000003C0)>>6;
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XDTxAFE, bMaskH4Bits, value32);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XDTxAFE, bMaskH4Bits, value32);
-
- value32 = ((IqkResult_X * ele_D)>>7)&0x01;
-- ODM_SetBBReg(pDM_Odm, rOFDM0_ECCAThreshold, BIT28, value32);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_ECCAThreshold, BIT28, value32);
-
- break;
- default:
-@@ -117,15 +117,15 @@ static void setIqkMatrix_8723B(
- switch (RFPath)
- {
- case ODM_RF_PATH_A:
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XATxIQImbalance, bMaskDWord, OFDMSwingTable_New[OFDM_index]);
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XCTxAFE, bMaskH4Bits, 0x00);
-- ODM_SetBBReg(pDM_Odm, rOFDM0_ECCAThreshold, BIT24, 0x00);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XATxIQImbalance, bMaskDWord, OFDMSwingTable_New[OFDM_index]);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XCTxAFE, bMaskH4Bits, 0x00);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_ECCAThreshold, BIT24, 0x00);
- break;
-
- case ODM_RF_PATH_B:
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XBTxIQImbalance, bMaskDWord, OFDMSwingTable_New[OFDM_index]);
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XDTxAFE, bMaskH4Bits, 0x00);
-- ODM_SetBBReg(pDM_Odm, rOFDM0_ECCAThreshold, BIT28, 0x00);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XBTxIQImbalance, bMaskDWord, OFDMSwingTable_New[OFDM_index]);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XDTxAFE, bMaskH4Bits, 0x00);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_ECCAThreshold, BIT28, 0x00);
- break;
-
- default:
-@@ -146,25 +146,25 @@ setCCKFilterCoefficient(
- {
- if(!pDM_Odm->RFCalibrateInfo.bCCKinCH14)
- {
-- ODM_Write1Byte(pDM_Odm, 0xa22, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][0]);
-- ODM_Write1Byte(pDM_Odm, 0xa23, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][1]);
-- ODM_Write1Byte(pDM_Odm, 0xa24, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][2]);
-- ODM_Write1Byte(pDM_Odm, 0xa25, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][3]);
-- ODM_Write1Byte(pDM_Odm, 0xa26, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][4]);
-- ODM_Write1Byte(pDM_Odm, 0xa27, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][5]);
-- ODM_Write1Byte(pDM_Odm, 0xa28, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][6]);
-- ODM_Write1Byte(pDM_Odm, 0xa29, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][7]);
-+ rtw_write8(pDM_Odm->Adapter, 0xa22, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][0]);
-+ rtw_write8(pDM_Odm->Adapter, 0xa23, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][1]);
-+ rtw_write8(pDM_Odm->Adapter, 0xa24, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][2]);
-+ rtw_write8(pDM_Odm->Adapter, 0xa25, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][3]);
-+ rtw_write8(pDM_Odm->Adapter, 0xa26, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][4]);
-+ rtw_write8(pDM_Odm->Adapter, 0xa27, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][5]);
-+ rtw_write8(pDM_Odm->Adapter, 0xa28, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][6]);
-+ rtw_write8(pDM_Odm->Adapter, 0xa29, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][7]);
- }
- else
- {
-- ODM_Write1Byte(pDM_Odm, 0xa22, CCKSwingTable_Ch14_New[CCKSwingIndex][0]);
-- ODM_Write1Byte(pDM_Odm, 0xa23, CCKSwingTable_Ch14_New[CCKSwingIndex][1]);
-- ODM_Write1Byte(pDM_Odm, 0xa24, CCKSwingTable_Ch14_New[CCKSwingIndex][2]);
-- ODM_Write1Byte(pDM_Odm, 0xa25, CCKSwingTable_Ch14_New[CCKSwingIndex][3]);
-- ODM_Write1Byte(pDM_Odm, 0xa26, CCKSwingTable_Ch14_New[CCKSwingIndex][4]);
-- ODM_Write1Byte(pDM_Odm, 0xa27, CCKSwingTable_Ch14_New[CCKSwingIndex][5]);
-- ODM_Write1Byte(pDM_Odm, 0xa28, CCKSwingTable_Ch14_New[CCKSwingIndex][6]);
-- ODM_Write1Byte(pDM_Odm, 0xa29, CCKSwingTable_Ch14_New[CCKSwingIndex][7]);
-+ rtw_write8(pDM_Odm->Adapter, 0xa22, CCKSwingTable_Ch14_New[CCKSwingIndex][0]);
-+ rtw_write8(pDM_Odm->Adapter, 0xa23, CCKSwingTable_Ch14_New[CCKSwingIndex][1]);
-+ rtw_write8(pDM_Odm->Adapter, 0xa24, CCKSwingTable_Ch14_New[CCKSwingIndex][2]);
-+ rtw_write8(pDM_Odm->Adapter, 0xa25, CCKSwingTable_Ch14_New[CCKSwingIndex][3]);
-+ rtw_write8(pDM_Odm->Adapter, 0xa26, CCKSwingTable_Ch14_New[CCKSwingIndex][4]);
-+ rtw_write8(pDM_Odm->Adapter, 0xa27, CCKSwingTable_Ch14_New[CCKSwingIndex][5]);
-+ rtw_write8(pDM_Odm->Adapter, 0xa28, CCKSwingTable_Ch14_New[CCKSwingIndex][6]);
-+ rtw_write8(pDM_Odm->Adapter, 0xa29, CCKSwingTable_Ch14_New[CCKSwingIndex][7]);
- }
- }
-
-@@ -487,60 +487,60 @@ phy_PathA_IQK_8723B(
- PDM_ODM_T pDM_Odm = &pHalData->odmpriv;
-
- // Save RF Path
-- Path_SEL_BB = ODM_GetBBReg(pDM_Odm, 0x948, bMaskDWord);
-+ Path_SEL_BB = PHY_QueryBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord);
-
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Path A IQK!\n"));
-
- //leave IQK mode
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-
- // enable path A PA in TXIQK mode
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x1);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_RCK_OS, bRFRegOffsetMask, 0x18000 );
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_TXPA_G1, bRFRegOffsetMask, 0x0003f );
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_TXPA_G2, bRFRegOffsetMask, 0xc7f87 );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x1);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_RCK_OS, bRFRegOffsetMask, 0x18000 );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_TXPA_G1, bRFRegOffsetMask, 0x0003f );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_TXPA_G2, bRFRegOffsetMask, 0xc7f87 );
- // disable path B PA in TXIQK mode
--// ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xed, bRFRegOffsetMask, 0x00020 );
--// ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0x43, bRFRegOffsetMask, 0x40ec1 );
-+// PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xed, bRFRegOffsetMask, 0x00020 );
-+// PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0x43, bRFRegOffsetMask, 0x40ec1 );
-
- //1 Tx IQK
- //IQK setting
-- ODM_SetBBReg(pDM_Odm, rTx_IQK, bMaskDWord, 0x01007c00);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK, bMaskDWord, 0x01004800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK, bMaskDWord, 0x01007c00);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK, bMaskDWord, 0x01004800);
- //path-A IQK setting
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Path-A IQK setting!\n"));
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_Tone_A, bMaskDWord, 0x18008c1c);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_Tone_A, bMaskDWord, 0x38008c1c);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
--// ODM_SetBBReg(pDM_Odm, rTx_IQK_PI_A, bMaskDWord, 0x8214010a);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_PI_A, bMaskDWord, 0x821303ea);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_PI_A, bMaskDWord, 0x28110000);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_PI_B, bMaskDWord, 0x82110000);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_PI_B, bMaskDWord, 0x28110000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_Tone_A, bMaskDWord, 0x18008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_Tone_A, bMaskDWord, 0x38008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-+// PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_PI_A, bMaskDWord, 0x8214010a);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_PI_A, bMaskDWord, 0x821303ea);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_PI_A, bMaskDWord, 0x28110000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_PI_B, bMaskDWord, 0x82110000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_PI_B, bMaskDWord, 0x28110000);
-
- //LO calibration setting
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("LO calibration setting!\n"));
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Rsp, bMaskDWord, 0x00462911);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Rsp, bMaskDWord, 0x00462911);
-
- //enter IQK mode
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x808000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x808000);
-
- //Ant switch
- if (configPathB || (RF_Path == 0))
- // wifi switch to S1
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord, 0x00000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord, 0x00000000);
- else
- // wifi switch to S0
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord, 0x00000280);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord, 0x00000280);
-
- //GNT_BT = 0
-- ODM_SetBBReg(pDM_Odm, 0x764, bMaskDWord, 0x00000800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x764, bMaskDWord, 0x00000800);
-
- //One shot, path A LOK & IQK
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("One shot, path A LOK & IQK!\n"));
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Pts, bMaskDWord, 0xf9000000);
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Pts, bMaskDWord, 0xf8000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Pts, bMaskDWord, 0xf9000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Pts, bMaskDWord, 0xf8000000);
-
- // delay x ms
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Delay %d ms for One shot, path A LOK & IQK.\n", IQK_DELAY_TIME_8723B));
-@@ -548,23 +548,23 @@ phy_PathA_IQK_8723B(
- mdelay(IQK_DELAY_TIME_8723B);
-
- //restore Ant Path
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord,Path_SEL_BB);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord,Path_SEL_BB);
- //GNT_BT = 1
-- ODM_SetBBReg(pDM_Odm, 0x764, bMaskDWord, 0x00001800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x764, bMaskDWord, 0x00001800);
-
- //leave IQK mode
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-
-
- // Check failed
-- regEAC = ODM_GetBBReg(pDM_Odm, rRx_Power_After_IQK_A_2, bMaskDWord);
-- regE94 = ODM_GetBBReg(pDM_Odm, rTx_Power_Before_IQK_A, bMaskDWord);
-- regE9C= ODM_GetBBReg(pDM_Odm, rTx_Power_After_IQK_A, bMaskDWord);
-+ regEAC = PHY_QueryBBReg(pDM_Odm->Adapter, rRx_Power_After_IQK_A_2, bMaskDWord);
-+ regE94 = PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_Before_IQK_A, bMaskDWord);
-+ regE9C= PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_After_IQK_A, bMaskDWord);
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xeac = 0x%x\n", regEAC));
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xe94 = 0x%x, 0xe9c = 0x%x\n", regE94, regE9C));
- //monitor image power before & after IQK
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xe90(before IQK)= 0x%x, 0xe98(afer IQK) = 0x%x\n",
-- ODM_GetBBReg(pDM_Odm, 0xe90, bMaskDWord), ODM_GetBBReg(pDM_Odm, 0xe98, bMaskDWord)));
-+ PHY_QueryBBReg(pDM_Odm->Adapter, 0xe90, bMaskDWord), PHY_QueryBBReg(pDM_Odm->Adapter, 0xe98, bMaskDWord)));
-
-
- //Allen 20131125
-@@ -601,61 +601,61 @@ phy_PathA_RxIQK8723B(
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Path A Rx IQK!\n"));
-
- // Save RF Path
-- Path_SEL_BB = ODM_GetBBReg(pDM_Odm, 0x948, bMaskDWord);
-+ Path_SEL_BB = PHY_QueryBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord);
-
- //leave IQK mode
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Path A RX IQK:Get TXIMR setting\n"));
- //1 Get TXIMR setting
- //modify RXIQK mode table
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Path-A Rx IQK modify RXIQK mode table!\n"));
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x1);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_RCK_OS, bRFRegOffsetMask, 0x18000);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_TXPA_G1, bRFRegOffsetMask, 0x0001f);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x1);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_RCK_OS, bRFRegOffsetMask, 0x18000);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_TXPA_G1, bRFRegOffsetMask, 0x0001f);
- //LNA2 off, PA on for Dcut
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_TXPA_G2, bRFRegOffsetMask, 0xf7fb7);
--// ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x0);
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x808000);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_TXPA_G2, bRFRegOffsetMask, 0xf7fb7);
-+// PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x0);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x808000);
-
- //IQK setting
-- ODM_SetBBReg(pDM_Odm, rTx_IQK, bMaskDWord, 0x01007c00);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK, bMaskDWord, 0x01004800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK, bMaskDWord, 0x01007c00);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK, bMaskDWord, 0x01004800);
-
- //path-A IQK setting
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_Tone_A, bMaskDWord, 0x18008c1c);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_Tone_A, bMaskDWord, 0x38008c1c);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
--
--// ODM_SetBBReg(pDM_Odm, rTx_IQK_PI_A, bMaskDWord, 0x82160c1f);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_PI_A, bMaskDWord, 0x82130ff0);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_PI_A, bMaskDWord, 0x28110000);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_PI_B, bMaskDWord, 0x82110000);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_PI_B, bMaskDWord, 0x28110000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_Tone_A, bMaskDWord, 0x18008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_Tone_A, bMaskDWord, 0x38008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-+
-+// PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_PI_A, bMaskDWord, 0x82160c1f);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_PI_A, bMaskDWord, 0x82130ff0);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_PI_A, bMaskDWord, 0x28110000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_PI_B, bMaskDWord, 0x82110000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_PI_B, bMaskDWord, 0x28110000);
-
- //LO calibration setting
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("LO calibration setting!\n"));
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Rsp, bMaskDWord, 0x0046a911);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Rsp, bMaskDWord, 0x0046a911);
-
- //enter IQK mode
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x808000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x808000);
-
- //Ant switch
- if (configPathB || (RF_Path == 0))
- // wifi switch to S1
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord, 0x00000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord, 0x00000000);
- else
- // wifi switch to S0
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord, 0x00000280);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord, 0x00000280);
-
- //GNT_BT = 0
-- ODM_SetBBReg(pDM_Odm, 0x764, bMaskDWord, 0x00000800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x764, bMaskDWord, 0x00000800);
-
- //One shot, path A LOK & IQK
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("One shot, path A LOK & IQK!\n"));
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Pts, bMaskDWord, 0xf9000000);
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Pts, bMaskDWord, 0xf8000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Pts, bMaskDWord, 0xf9000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Pts, bMaskDWord, 0xf8000000);
-
- // delay x ms
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Delay %d ms for One shot, path A LOK & IQK.\n", IQK_DELAY_TIME_8723B));
-@@ -663,22 +663,22 @@ phy_PathA_RxIQK8723B(
- mdelay(IQK_DELAY_TIME_8723B);
-
- //restore Ant Path
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord,Path_SEL_BB);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord,Path_SEL_BB);
- //GNT_BT = 1
-- ODM_SetBBReg(pDM_Odm, 0x764, bMaskDWord, 0x00001800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x764, bMaskDWord, 0x00001800);
-
- //leave IQK mode
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-
- // Check failed
-- regEAC = ODM_GetBBReg(pDM_Odm, rRx_Power_After_IQK_A_2, bMaskDWord);
-- regE94 = ODM_GetBBReg(pDM_Odm, rTx_Power_Before_IQK_A, bMaskDWord);
-- regE9C= ODM_GetBBReg(pDM_Odm, rTx_Power_After_IQK_A, bMaskDWord);
-+ regEAC = PHY_QueryBBReg(pDM_Odm->Adapter, rRx_Power_After_IQK_A_2, bMaskDWord);
-+ regE94 = PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_Before_IQK_A, bMaskDWord);
-+ regE9C= PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_After_IQK_A, bMaskDWord);
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xeac = 0x%x\n", regEAC));
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xe94 = 0x%x, 0xe9c = 0x%x\n", regE94, regE9C));
- //monitor image power before & after IQK
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xe90(before IQK)= 0x%x, 0xe98(afer IQK) = 0x%x\n",
-- ODM_GetBBReg(pDM_Odm, 0xe90, bMaskDWord), ODM_GetBBReg(pDM_Odm, 0xe98, bMaskDWord)));
-+ PHY_QueryBBReg(pDM_Odm->Adapter, 0xe90, bMaskDWord), PHY_QueryBBReg(pDM_Odm->Adapter, 0xe98, bMaskDWord)));
-
- //Allen 20131125
- tmp=(regE9C & 0x03FF0000)>>16;
-@@ -698,8 +698,8 @@ phy_PathA_RxIQK8723B(
-
-
- u4tmp = 0x80007C00 | (regE94&0x3FF0000) | ((regE9C&0x3FF0000) >> 16);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK, bMaskDWord, u4tmp);
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xe40 = 0x%x u4tmp = 0x%x \n", ODM_GetBBReg(pDM_Odm, rTx_IQK, bMaskDWord), u4tmp));
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK, bMaskDWord, u4tmp);
-+ ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xe40 = 0x%x u4tmp = 0x%x \n", PHY_QueryBBReg(pDM_Odm->Adapter, rTx_IQK, bMaskDWord), u4tmp));
-
-
- //1 RX IQK
-@@ -707,56 +707,56 @@ phy_PathA_RxIQK8723B(
-
- //modify RXIQK mode table
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Path-A Rx IQK modify RXIQK mode table 2!\n"));
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x1);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_RCK_OS, bRFRegOffsetMask, 0x18000 );
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_TXPA_G1, bRFRegOffsetMask, 0x0001f );
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x1);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_RCK_OS, bRFRegOffsetMask, 0x18000 );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_TXPA_G1, bRFRegOffsetMask, 0x0001f );
- //LAN2 on, PA off for Dcut
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_TXPA_G2, bRFRegOffsetMask, 0xf7d77 );
--// ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x0);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_TXPA_G2, bRFRegOffsetMask, 0xf7d77 );
-+// PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x0);
-
- //PA, PAD setting
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xdf, bRFRegOffsetMask, 0xf80 );
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0x55, bRFRegOffsetMask, 0x4021f );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xdf, bRFRegOffsetMask, 0xf80 );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0x55, bRFRegOffsetMask, 0x4021f );
-
-
- //IQK setting
-- ODM_SetBBReg(pDM_Odm, rRx_IQK, bMaskDWord, 0x01004800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK, bMaskDWord, 0x01004800);
-
- //path-A IQK setting
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_Tone_A, bMaskDWord, 0x38008c1c);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_Tone_A, bMaskDWord, 0x18008c1c);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
--
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_PI_A, bMaskDWord, 0x82110000);
--// ODM_SetBBReg(pDM_Odm, rRx_IQK_PI_A, bMaskDWord, 0x281604c2);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_PI_A, bMaskDWord, 0x2813001f);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_PI_B, bMaskDWord, 0x82110000);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_PI_B, bMaskDWord, 0x28110000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_Tone_A, bMaskDWord, 0x38008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_Tone_A, bMaskDWord, 0x18008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-+
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_PI_A, bMaskDWord, 0x82110000);
-+// PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_PI_A, bMaskDWord, 0x281604c2);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_PI_A, bMaskDWord, 0x2813001f);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_PI_B, bMaskDWord, 0x82110000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_PI_B, bMaskDWord, 0x28110000);
-
- //LO calibration setting
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("LO calibration setting!\n"));
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Rsp, bMaskDWord, 0x0046a8d1);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Rsp, bMaskDWord, 0x0046a8d1);
-
- //enter IQK mode
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x808000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x808000);
-
- //Ant switch
- if (configPathB || (RF_Path == 0))
- // wifi switch to S1
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord, 0x00000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord, 0x00000000);
- else
- // wifi switch to S0
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord, 0x00000280);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord, 0x00000280);
-
- //GNT_BT = 0
-- ODM_SetBBReg(pDM_Odm, 0x764, bMaskDWord, 0x00000800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x764, bMaskDWord, 0x00000800);
-
- //One shot, path A LOK & IQK
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("One shot, path A LOK & IQK!\n"));
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Pts, bMaskDWord, 0xf9000000);
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Pts, bMaskDWord, 0xf8000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Pts, bMaskDWord, 0xf9000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Pts, bMaskDWord, 0xf8000000);
-
- // delay x ms
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Delay %d ms for One shot, path A LOK & IQK.\n", IQK_DELAY_TIME_88E));
-@@ -764,26 +764,26 @@ phy_PathA_RxIQK8723B(
- mdelay(IQK_DELAY_TIME_8723B);
-
- //restore Ant Path
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord,Path_SEL_BB);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord,Path_SEL_BB);
- //GNT_BT = 1
-- ODM_SetBBReg(pDM_Odm, 0x764, bMaskDWord, 0x00001800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x764, bMaskDWord, 0x00001800);
-
- //leave IQK mode
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-
- // Check failed
-- regEAC = ODM_GetBBReg(pDM_Odm, rRx_Power_After_IQK_A_2, bMaskDWord);
-- regEA4= ODM_GetBBReg(pDM_Odm, rRx_Power_Before_IQK_A_2, bMaskDWord);
-+ regEAC = PHY_QueryBBReg(pDM_Odm->Adapter, rRx_Power_After_IQK_A_2, bMaskDWord);
-+ regEA4= PHY_QueryBBReg(pDM_Odm->Adapter, rRx_Power_Before_IQK_A_2, bMaskDWord);
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xeac = 0x%x\n", regEAC));
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xea4 = 0x%x, 0xeac = 0x%x\n", regEA4, regEAC));
- //monitor image power before & after IQK
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xea0(before IQK)= 0x%x, 0xea8(afer IQK) = 0x%x\n",
-- ODM_GetBBReg(pDM_Odm, 0xea0, bMaskDWord), ODM_GetBBReg(pDM_Odm, 0xea8, bMaskDWord)));
-+ PHY_QueryBBReg(pDM_Odm->Adapter, 0xea0, bMaskDWord), PHY_QueryBBReg(pDM_Odm->Adapter, 0xea8, bMaskDWord)));
-
- // PA/PAD controlled by 0x0
- //leave IQK mode
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xdf, bRFRegOffsetMask, 0x780 );
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xdf, bRFRegOffsetMask, 0x780 );
-
- //Allen 20131125
- tmp=(regEAC & 0x03FF0000)>>16;
-@@ -819,57 +819,57 @@ phy_PathB_IQK_8723B(
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Path B IQK!\n"));
-
- // Save RF Path
-- Path_SEL_BB = ODM_GetBBReg(pDM_Odm, 0x948, bMaskDWord);
-+ Path_SEL_BB = PHY_QueryBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord);
-
- //leave IQK mode
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-
- // in TXIQK mode
--// ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x1 );
--// ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_RCK_OS, bRFRegOffsetMask, 0x20000 );
--// ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_TXPA_G1, bRFRegOffsetMask, 0x0003f );
--// ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_TXPA_G2, bRFRegOffsetMask, 0xc7f87 );
-+// PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x1 );
-+// PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_RCK_OS, bRFRegOffsetMask, 0x20000 );
-+// PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_TXPA_G1, bRFRegOffsetMask, 0x0003f );
-+// PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_TXPA_G2, bRFRegOffsetMask, 0xc7f87 );
- // enable path B PA in TXIQK mode
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xed, 0x20, 0x1);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0x43, bRFRegOffsetMask, 0x30fc1);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xed, 0x20, 0x1);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0x43, bRFRegOffsetMask, 0x30fc1);
-
-
-
- //1 Tx IQK
- //IQK setting
-- ODM_SetBBReg(pDM_Odm, rTx_IQK, bMaskDWord, 0x01007c00);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK, bMaskDWord, 0x01004800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK, bMaskDWord, 0x01007c00);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK, bMaskDWord, 0x01004800);
- //path-A IQK setting
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Path-B IQK setting!\n"));
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_Tone_A, bMaskDWord, 0x18008c1c);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_Tone_A, bMaskDWord, 0x38008c1c);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
--
--// ODM_SetBBReg(pDM_Odm, rTx_IQK_PI_A, bMaskDWord, 0x82140114);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_PI_A, bMaskDWord, 0x821303ea);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_PI_A, bMaskDWord, 0x28110000);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_PI_B, bMaskDWord, 0x82110000);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_PI_B, bMaskDWord, 0x28110000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_Tone_A, bMaskDWord, 0x18008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_Tone_A, bMaskDWord, 0x38008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-+
-+// PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_PI_A, bMaskDWord, 0x82140114);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_PI_A, bMaskDWord, 0x821303ea);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_PI_A, bMaskDWord, 0x28110000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_PI_B, bMaskDWord, 0x82110000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_PI_B, bMaskDWord, 0x28110000);
-
- //LO calibration setting
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("LO calibration setting!\n"));
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Rsp, bMaskDWord, 0x00462911);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Rsp, bMaskDWord, 0x00462911);
-
- //enter IQK mode
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x808000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x808000);
-
- //switch to path B
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord, 0x00000280);
--// ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xb0, bRFRegOffsetMask, 0xeffe0);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord, 0x00000280);
-+// PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xb0, bRFRegOffsetMask, 0xeffe0);
-
- //GNT_BT = 0
-- ODM_SetBBReg(pDM_Odm, 0x764, bMaskDWord, 0x00000800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x764, bMaskDWord, 0x00000800);
-
- //One shot, path B LOK & IQK
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("One shot, path B LOK & IQK!\n"));
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Pts, bMaskDWord, 0xf9000000);
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Pts, bMaskDWord, 0xf8000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Pts, bMaskDWord, 0xf9000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Pts, bMaskDWord, 0xf8000000);
-
- // delay x ms
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Delay %d ms for One shot, path B LOK & IQK.\n", IQK_DELAY_TIME_88E));
-@@ -877,25 +877,25 @@ phy_PathB_IQK_8723B(
- mdelay(IQK_DELAY_TIME_8723B);
-
- //restore Ant Path
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord,Path_SEL_BB);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord,Path_SEL_BB);
- //GNT_BT = 1
-- ODM_SetBBReg(pDM_Odm, 0x764, bMaskDWord, 0x00001800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x764, bMaskDWord, 0x00001800);
-
- //leave IQK mode
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-
--// ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0x948 = 0x%x\n", ODM_GetBBReg(pDM_Odm, 0x948, bMaskDWord)));
-+// ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0x948 = 0x%x\n", PHY_QueryBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord)));
-
-
- // Check failed
-- regEAC = ODM_GetBBReg(pDM_Odm, rRx_Power_After_IQK_A_2, bMaskDWord);
-- regE94 = ODM_GetBBReg(pDM_Odm, rTx_Power_Before_IQK_A, bMaskDWord);
-- regE9C= ODM_GetBBReg(pDM_Odm, rTx_Power_After_IQK_A, bMaskDWord);
-+ regEAC = PHY_QueryBBReg(pDM_Odm->Adapter, rRx_Power_After_IQK_A_2, bMaskDWord);
-+ regE94 = PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_Before_IQK_A, bMaskDWord);
-+ regE9C= PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_After_IQK_A, bMaskDWord);
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xeac = 0x%x\n", regEAC));
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xe94 = 0x%x, 0xe9c = 0x%x\n", regE94, regE9C));
- //monitor image power before & after IQK
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xe90(before IQK)= 0x%x, 0xe98(afer IQK) = 0x%x\n",
-- ODM_GetBBReg(pDM_Odm, 0xe90, bMaskDWord), ODM_GetBBReg(pDM_Odm, 0xe98, bMaskDWord)));
-+ PHY_QueryBBReg(pDM_Odm->Adapter, 0xe90, bMaskDWord), PHY_QueryBBReg(pDM_Odm->Adapter, 0xe98, bMaskDWord)));
-
- //Allen 20131125
- tmp=(regE9C & 0x03FF0000)>>16;
-@@ -929,61 +929,61 @@ phy_PathB_RxIQK8723B(
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Path B Rx IQK!\n"));
-
- // Save RF Path
-- Path_SEL_BB = ODM_GetBBReg(pDM_Odm, 0x948, bMaskDWord);
-+ Path_SEL_BB = PHY_QueryBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord);
- //leave IQK mode
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-
- //switch to path B
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord, 0x00000280);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord, 0x00000280);
-
- //1 Get TXIMR setting
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Path B RX IQK:Get TXIMR setting!\n"));
- //modify RXIQK mode table
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Path-A Rx IQK modify RXIQK mode table!\n"));
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x1 );
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_RCK_OS, bRFRegOffsetMask, 0x18000 );
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_TXPA_G1, bRFRegOffsetMask, 0x0001f );
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_TXPA_G2, bRFRegOffsetMask, 0xf7fb7 );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x1 );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_RCK_OS, bRFRegOffsetMask, 0x18000 );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_TXPA_G1, bRFRegOffsetMask, 0x0001f );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_TXPA_G2, bRFRegOffsetMask, 0xf7fb7 );
- //open PA S1 & SMIXER
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xed, 0x20, 0x1 );
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0x43, bRFRegOffsetMask, 0x30fcd );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xed, 0x20, 0x1 );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0x43, bRFRegOffsetMask, 0x30fcd );
-
-
- //IQK setting
-- ODM_SetBBReg(pDM_Odm, rTx_IQK, bMaskDWord, 0x01007c00);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK, bMaskDWord, 0x01004800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK, bMaskDWord, 0x01007c00);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK, bMaskDWord, 0x01004800);
-
-
- //path-B IQK setting
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_Tone_A, bMaskDWord, 0x18008c1c);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_Tone_A, bMaskDWord, 0x38008c1c);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
--
--// ODM_SetBBReg(pDM_Odm, rTx_IQK_PI_A, bMaskDWord, 0x82160c1f );
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_PI_A, bMaskDWord, 0x82130ff0);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_PI_A, bMaskDWord, 0x28110000);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_PI_B, bMaskDWord, 0x82110000);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_PI_B, bMaskDWord, 0x28110000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_Tone_A, bMaskDWord, 0x18008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_Tone_A, bMaskDWord, 0x38008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-+
-+// PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_PI_A, bMaskDWord, 0x82160c1f );
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_PI_A, bMaskDWord, 0x82130ff0);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_PI_A, bMaskDWord, 0x28110000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_PI_B, bMaskDWord, 0x82110000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_PI_B, bMaskDWord, 0x28110000);
-
- //LO calibration setting
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("LO calibration setting!\n"));
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Rsp, bMaskDWord, 0x0046a911);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Rsp, bMaskDWord, 0x0046a911);
-
- //enter IQK mode
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x808000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x808000);
-
- //switch to path B
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord, 0x00000280);
--// ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xb0, bRFRegOffsetMask, 0xeffe0);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord, 0x00000280);
-+// PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xb0, bRFRegOffsetMask, 0xeffe0);
-
- //GNT_BT = 0
-- ODM_SetBBReg(pDM_Odm, 0x764, bMaskDWord, 0x00000800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x764, bMaskDWord, 0x00000800);
-
- //One shot, path B TXIQK @ RXIQK
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("One shot, path B LOK & IQK!\n"));
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Pts, bMaskDWord, 0xf9000000);
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Pts, bMaskDWord, 0xf8000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Pts, bMaskDWord, 0xf9000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Pts, bMaskDWord, 0xf8000000);
-
-
- // delay x ms
-@@ -992,22 +992,22 @@ phy_PathB_RxIQK8723B(
- mdelay(IQK_DELAY_TIME_8723B);
-
- //restore Ant Path
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord,Path_SEL_BB);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord,Path_SEL_BB);
- //GNT_BT = 1
-- ODM_SetBBReg(pDM_Odm, 0x764, bMaskDWord, 0x00001800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x764, bMaskDWord, 0x00001800);
-
- //leave IQK mode
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-
- // Check failed
-- regEAC = ODM_GetBBReg(pDM_Odm, rRx_Power_After_IQK_A_2, bMaskDWord);
-- regE94 = ODM_GetBBReg(pDM_Odm, rTx_Power_Before_IQK_A, bMaskDWord);
-- regE9C= ODM_GetBBReg(pDM_Odm, rTx_Power_After_IQK_A, bMaskDWord);
-+ regEAC = PHY_QueryBBReg(pDM_Odm->Adapter, rRx_Power_After_IQK_A_2, bMaskDWord);
-+ regE94 = PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_Before_IQK_A, bMaskDWord);
-+ regE9C= PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_After_IQK_A, bMaskDWord);
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xeac = 0x%x\n", regEAC));
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xe94 = 0x%x, 0xe9c = 0x%x\n", regE94, regE9C));
- //monitor image power before & after IQK
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xe90(before IQK)= 0x%x, 0xe98(afer IQK) = 0x%x\n",
-- ODM_GetBBReg(pDM_Odm, 0xe90, bMaskDWord), ODM_GetBBReg(pDM_Odm, 0xe98, bMaskDWord)));
-+ PHY_QueryBBReg(pDM_Odm->Adapter, 0xe90, bMaskDWord), PHY_QueryBBReg(pDM_Odm->Adapter, 0xe98, bMaskDWord)));
-
- //Allen 20131125
- tmp=(regE9C & 0x03FF0000)>>16;
-@@ -1029,8 +1029,8 @@ phy_PathB_RxIQK8723B(
-
-
- u4tmp = 0x80007C00 | (regE94&0x3FF0000) | ((regE9C&0x3FF0000) >> 16);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK, bMaskDWord, u4tmp);
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xe40 = 0x%x u4tmp = 0x%x \n", ODM_GetBBReg(pDM_Odm, rTx_IQK, bMaskDWord), u4tmp));
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK, bMaskDWord, u4tmp);
-+ ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xe40 = 0x%x u4tmp = 0x%x \n", PHY_QueryBBReg(pDM_Odm->Adapter, rTx_IQK, bMaskDWord), u4tmp));
-
-
- //1 RX IQK
-@@ -1038,56 +1038,56 @@ phy_PathB_RxIQK8723B(
-
- //modify RXIQK mode table
- //<20121009, Kordan> RF Mode = 3
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x1);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_RCK_OS, bRFRegOffsetMask, 0x18000);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_TXPA_G1, bRFRegOffsetMask, 0x0001f);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_TXPA_G2, bRFRegOffsetMask, 0xf7d77);
--// ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x0);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x1);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_RCK_OS, bRFRegOffsetMask, 0x18000);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_TXPA_G1, bRFRegOffsetMask, 0x0001f);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_TXPA_G2, bRFRegOffsetMask, 0xf7d77);
-+// PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x0);
-
- //open PA S1 & close SMIXER
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xed, 0x20, 0x1);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0x43, bRFRegOffsetMask, 0x30ebd);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xed, 0x20, 0x1);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0x43, bRFRegOffsetMask, 0x30ebd);
-
- //PA, PAD setting
--// ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xdf, bRFRegOffsetMask, 0xf80);
--// ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0x56, bRFRegOffsetMask, 0x51000);
-+// PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xdf, bRFRegOffsetMask, 0xf80);
-+// PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0x56, bRFRegOffsetMask, 0x51000);
-
-
-
- //IQK setting
-- ODM_SetBBReg(pDM_Odm, rRx_IQK, bMaskDWord, 0x01004800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK, bMaskDWord, 0x01004800);
-
- //path-B IQK setting
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_Tone_A, bMaskDWord, 0x38008c1c);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_Tone_A, bMaskDWord, 0x18008c1c);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
--
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_PI_A, bMaskDWord, 0x82110000);
--// ODM_SetBBReg(pDM_Odm, rRx_IQK_PI_A, bMaskDWord, 0x281604c2);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_PI_A, bMaskDWord, 0x2813001f);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_PI_B, bMaskDWord, 0x82110000);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_PI_B, bMaskDWord, 0x28110000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_Tone_A, bMaskDWord, 0x38008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_Tone_A, bMaskDWord, 0x18008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_Tone_B, bMaskDWord, 0x38008c1c);
-+
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_PI_A, bMaskDWord, 0x82110000);
-+// PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_PI_A, bMaskDWord, 0x281604c2);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_PI_A, bMaskDWord, 0x2813001f);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_PI_B, bMaskDWord, 0x82110000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_PI_B, bMaskDWord, 0x28110000);
-
- //LO calibration setting
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("LO calibration setting!\n"));
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Rsp, bMaskDWord, 0x0046a8d1);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Rsp, bMaskDWord, 0x0046a8d1);
-
- //enter IQK mode
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x808000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x808000);
-
- //switch to path B
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord, 0x00000280);
--// ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xb0, bRFRegOffsetMask, 0xeffe0);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord, 0x00000280);
-+// PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xb0, bRFRegOffsetMask, 0xeffe0);
-
- //GNT_BT = 0
-- ODM_SetBBReg(pDM_Odm, 0x764, bMaskDWord, 0x00000800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x764, bMaskDWord, 0x00000800);
-
- //One shot, path B LOK & IQK
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("One shot, path B LOK & IQK!\n"));
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Pts, bMaskDWord, 0xf9000000);
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Pts, bMaskDWord, 0xf8000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Pts, bMaskDWord, 0xf9000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rIQK_AGC_Pts, bMaskDWord, 0xf8000000);
-
- // delay x ms
- // ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Delay %d ms for One shot, path A LOK & IQK.\n", IQK_DELAY_TIME_88E));
-@@ -1095,27 +1095,27 @@ phy_PathB_RxIQK8723B(
- mdelay(IQK_DELAY_TIME_8723B);
-
- //restore Ant Path
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord,Path_SEL_BB);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord,Path_SEL_BB);
- //GNT_BT = 1
-- ODM_SetBBReg(pDM_Odm, 0x764, bMaskDWord, 0x00001800);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x764, bMaskDWord, 0x00001800);
-
- //leave IQK mode
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-
- // Check failed
-- regEAC = ODM_GetBBReg(pDM_Odm, rRx_Power_After_IQK_A_2, bMaskDWord);
-- regEA4= ODM_GetBBReg(pDM_Odm, rRx_Power_Before_IQK_A_2, bMaskDWord);;
-+ regEAC = PHY_QueryBBReg(pDM_Odm->Adapter, rRx_Power_After_IQK_A_2, bMaskDWord);
-+ regEA4= PHY_QueryBBReg(pDM_Odm->Adapter, rRx_Power_Before_IQK_A_2, bMaskDWord);;
-
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xeac = 0x%x\n", regEAC));
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xea4 = 0x%x, 0xeac = 0x%x\n", regEA4, regEAC));
- //monitor image power before & after IQK
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("0xea0(before IQK)= 0x%x, 0xea8(afer IQK) = 0x%x\n",
-- ODM_GetBBReg(pDM_Odm, 0xea0, bMaskDWord), ODM_GetBBReg(pDM_Odm, 0xea8, bMaskDWord)));
-+ PHY_QueryBBReg(pDM_Odm->Adapter, 0xea0, bMaskDWord), PHY_QueryBBReg(pDM_Odm->Adapter, 0xea8, bMaskDWord)));
-
- // PA/PAD controlled by 0x0
- //leave IQK mode
--// ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, 0xffffff00, 0x00000000);
--// ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_B, 0xdf, bRFRegOffsetMask, 0x180 );
-+// PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, 0xffffff00, 0x00000000);
-+// PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_B, 0xdf, bRFRegOffsetMask, 0x180 );
-
-
-
-@@ -1165,16 +1165,16 @@ _PHY_PathAFillIQKMatrix8723B(
-
- else if(bIQKOK)
- {
-- Oldval_0 = (ODM_GetBBReg(pDM_Odm, rOFDM0_XATxIQImbalance, bMaskDWord) >> 22) & 0x3FF;
-+ Oldval_0 = (PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_XATxIQImbalance, bMaskDWord) >> 22) & 0x3FF;
-
- X = result[final_candidate][0];
- if ((X & 0x00000200) != 0)
- X = X | 0xFFFFFC00;
- TX0_A = (X * Oldval_0) >> 8;
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("X = 0x%x, TX0_A = 0x%x, Oldval_0 0x%x\n", X, TX0_A, Oldval_0));
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XATxIQImbalance, 0x3FF, TX0_A);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XATxIQImbalance, 0x3FF, TX0_A);
-
-- ODM_SetBBReg(pDM_Odm, rOFDM0_ECCAThreshold, BIT(31), ((X* Oldval_0>>7) & 0x1));
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_ECCAThreshold, BIT(31), ((X* Oldval_0>>7) & 0x1));
-
- Y = result[final_candidate][1];
- if ((Y & 0x00000200) != 0)
-@@ -1183,17 +1183,17 @@ _PHY_PathAFillIQKMatrix8723B(
- //2 Tx IQC
- TX0_C = (Y * Oldval_0) >> 8;
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Y = 0x%x, TX = 0x%x\n", Y, TX0_C));
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XCTxAFE, 0xF0000000, ((TX0_C&0x3C0)>>6));
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XCTxAFE, 0xF0000000, ((TX0_C&0x3C0)>>6));
- pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC94][KEY] = rOFDM0_XCTxAFE;
-- pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC94][VAL] = ODM_GetBBReg(pDM_Odm, rOFDM0_XCTxAFE, bMaskDWord);
-+ pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC94][VAL] = PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_XCTxAFE, bMaskDWord);
-
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XATxIQImbalance, 0x003F0000, (TX0_C&0x3F));
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XATxIQImbalance, 0x003F0000, (TX0_C&0x3F));
- pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC80][KEY] = rOFDM0_XATxIQImbalance;
-- pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC80][VAL] = ODM_GetBBReg(pDM_Odm, rOFDM0_XATxIQImbalance, bMaskDWord);
-+ pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC80][VAL] = PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_XATxIQImbalance, bMaskDWord);
-
-- ODM_SetBBReg(pDM_Odm, rOFDM0_ECCAThreshold, BIT(29), ((Y* Oldval_0>>7) & 0x1));
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_ECCAThreshold, BIT(29), ((Y* Oldval_0>>7) & 0x1));
- pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC4C][KEY] = rOFDM0_ECCAThreshold;
-- pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC4C][VAL] = ODM_GetBBReg(pDM_Odm, rOFDM0_ECCAThreshold, bMaskDWord);
-+ pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC4C][VAL] = PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_ECCAThreshold, bMaskDWord);
-
- if(bTxOnly)
- {
-@@ -1201,9 +1201,9 @@ _PHY_PathAFillIQKMatrix8723B(
-
- // <20130226, Kordan> Saving RxIQC, otherwise not initialized.
- pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xCA0][KEY] = rOFDM0_RxIQExtAnta;
-- pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xCA0][VAL] = 0xfffffff & ODM_GetBBReg(pDM_Odm, rOFDM0_RxIQExtAnta, bMaskDWord);
-+ pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xCA0][VAL] = 0xfffffff & PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_RxIQExtAnta, bMaskDWord);
- pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xC14][KEY] = rOFDM0_XARxIQImbalance;
--// pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xC14][VAL] = ODM_GetBBReg(pDM_Odm, rOFDM0_XARxIQImbalance, bMaskDWord);
-+// pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xC14][VAL] = PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_XARxIQImbalance, bMaskDWord);
- pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xC14][VAL] = 0x40000100;
- return;
- }
-@@ -1211,16 +1211,16 @@ _PHY_PathAFillIQKMatrix8723B(
- reg = result[final_candidate][2];
-
- //2 Rx IQC
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XARxIQImbalance, 0x3FF, reg);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XARxIQImbalance, 0x3FF, reg);
- reg = result[final_candidate][3] & 0x3F;
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XARxIQImbalance, 0xFC00, reg);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XARxIQImbalance, 0xFC00, reg);
- pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xC14][KEY] = rOFDM0_XARxIQImbalance;
-- pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xC14][VAL] = ODM_GetBBReg(pDM_Odm, rOFDM0_XARxIQImbalance, bMaskDWord);
-+ pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xC14][VAL] = PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_XARxIQImbalance, bMaskDWord);
-
- reg = (result[final_candidate][3] >> 6) & 0xF;
-- ODM_SetBBReg(pDM_Odm, rOFDM0_RxIQExtAnta, 0xF0000000, reg);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_RxIQExtAnta, 0xF0000000, reg);
- pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xCA0][KEY] = rOFDM0_RxIQExtAnta;
-- pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xCA0][VAL] = ODM_GetBBReg(pDM_Odm, rOFDM0_RxIQExtAnta, bMaskDWord);
-+ pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xCA0][VAL] = PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_RxIQExtAnta, bMaskDWord);
-
- }
- }
-@@ -1248,7 +1248,7 @@ _PHY_PathBFillIQKMatrix8723B(
-
- else if(bIQKOK)
- {
-- Oldval_1 = (ODM_GetBBReg(pDM_Odm, rOFDM0_XBTxIQImbalance, bMaskDWord) >> 22) & 0x3FF;
-+ Oldval_1 = (PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_XBTxIQImbalance, bMaskDWord) >> 22) & 0x3FF;
-
- X = result[final_candidate][4];
- if ((X & 0x00000200) != 0)
-@@ -1256,9 +1256,9 @@ _PHY_PathBFillIQKMatrix8723B(
- TX1_A = (X * Oldval_1) >> 8;
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("X = 0x%x, TX1_A = 0x%x\n", X, TX1_A));
-
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XBTxIQImbalance, 0x3FF, TX1_A);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XBTxIQImbalance, 0x3FF, TX1_A);
-
-- ODM_SetBBReg(pDM_Odm, rOFDM0_ECCAThreshold, BIT(27), ((X* Oldval_1>>7) & 0x1));
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_ECCAThreshold, BIT(27), ((X* Oldval_1>>7) & 0x1));
-
- Y = result[final_candidate][5];
- if ((Y & 0x00000200) != 0)
-@@ -1268,43 +1268,43 @@ _PHY_PathBFillIQKMatrix8723B(
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Y = 0x%x, TX1_C = 0x%x\n", Y, TX1_C));
-
- //2 Tx IQC
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XDTxAFE, 0xF0000000, ((TX1_C&0x3C0)>>6));
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XDTxAFE, 0xF0000000, ((TX1_C&0x3C0)>>6));
- // pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC9C][KEY] = rOFDM0_XDTxAFE;
--// pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC9C][VAL] = ODM_GetBBReg(pDM_Odm, rOFDM0_XDTxAFE, bMaskDWord);
-+// pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC9C][VAL] = PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_XDTxAFE, bMaskDWord);
- pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC94][KEY] = rOFDM0_XCTxAFE;
-- pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC94][VAL] = ODM_GetBBReg(pDM_Odm, rOFDM0_XDTxAFE, bMaskDWord);
-+ pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC94][VAL] = PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_XDTxAFE, bMaskDWord);
-
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XBTxIQImbalance, 0x003F0000, (TX1_C&0x3F));
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XBTxIQImbalance, 0x003F0000, (TX1_C&0x3F));
- pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC80][KEY] = rOFDM0_XATxIQImbalance;
-- pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC80][VAL] = ODM_GetBBReg(pDM_Odm, rOFDM0_XBTxIQImbalance, bMaskDWord);
-+ pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC80][VAL] = PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_XBTxIQImbalance, bMaskDWord);
-
-- ODM_SetBBReg(pDM_Odm, rOFDM0_ECCAThreshold, BIT(25), ((Y* Oldval_1>>7) & 0x1));
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_ECCAThreshold, BIT(25), ((Y* Oldval_1>>7) & 0x1));
- pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC4C][KEY] = rOFDM0_ECCAThreshold;
-- pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC4C][VAL] = ODM_GetBBReg(pDM_Odm, rOFDM0_ECCAThreshold, bMaskDWord);
-+ pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC4C][VAL] = PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_ECCAThreshold, bMaskDWord);
-
- if(bTxOnly) {
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("_PHY_PathBFillIQKMatrix8723B only Tx OK\n"));
-
- pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xC14][KEY] = rOFDM0_XARxIQImbalance;
--// pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xC14][VAL] = ODM_GetBBReg(pDM_Odm, rOFDM0_XARxIQImbalance, bMaskDWord);
-+// pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xC14][VAL] = PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_XARxIQImbalance, bMaskDWord);
- pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xC14][VAL] = 0x40000100;
- pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xCA0][KEY] = rOFDM0_RxIQExtAnta;
-- pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xCA0][VAL] = 0x0fffffff & ODM_GetBBReg(pDM_Odm, rOFDM0_RxIQExtAnta, bMaskDWord);
-+ pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xCA0][VAL] = 0x0fffffff & PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_RxIQExtAnta, bMaskDWord);
- return;
- }
-
- //2 Rx IQC
- reg = result[final_candidate][6];
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XBRxIQImbalance, 0x3FF, reg);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XBRxIQImbalance, 0x3FF, reg);
- reg = result[final_candidate][7] & 0x3F;
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XBRxIQImbalance, 0xFC00, reg);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XBRxIQImbalance, 0xFC00, reg);
- pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xC14][KEY] = rOFDM0_XARxIQImbalance;
-- pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xC14][VAL] = ODM_GetBBReg(pDM_Odm, rOFDM0_XBRxIQImbalance, bMaskDWord);
-+ pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xC14][VAL] = PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_XBRxIQImbalance, bMaskDWord);
-
- reg = (result[final_candidate][7] >> 6) & 0xF;
--// ODM_SetBBReg(pDM_Odm, rOFDM0_AGCRSSITable, 0x0000F000, reg);
-+// PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_AGCRSSITable, 0x0000F000, reg);
- pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xCA0][KEY] = rOFDM0_RxIQExtAnta;
-- pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xCA0][VAL] = (reg << 28)|(ODM_GetBBReg(pDM_Odm,rOFDM0_RxIQExtAnta, bMaskDWord)& 0x0fffffff);
-+ pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xCA0][VAL] = (reg << 28)|(PHY_QueryBBReg(pDM_Odm->Adapter,rOFDM0_RxIQExtAnta, bMaskDWord)& 0x0fffffff);
- }
- }
-
-@@ -1328,22 +1328,22 @@ ODM_SetIQCbyRFpath(
- if(RFpath) //S1: RFpath = 0, S0:RFpath = 1
- {
- //S0 TX IQC
-- ODM_SetBBReg(pDM_Odm, pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC94][KEY], bMaskDWord, pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC94][VAL]);
-- ODM_SetBBReg(pDM_Odm, pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC80][KEY], bMaskDWord, pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC80][VAL]);
-- ODM_SetBBReg(pDM_Odm, pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC4C][KEY], bMaskDWord, pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC4C][VAL]);
-+ PHY_SetBBReg(pDM_Odm->Adapter, pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC94][KEY], bMaskDWord, pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC94][VAL]);
-+ PHY_SetBBReg(pDM_Odm->Adapter, pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC80][KEY], bMaskDWord, pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC80][VAL]);
-+ PHY_SetBBReg(pDM_Odm->Adapter, pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC4C][KEY], bMaskDWord, pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC4C][VAL]);
- //S0 RX IQC
-- ODM_SetBBReg(pDM_Odm, pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xC14][KEY], bMaskDWord, pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xC14][VAL]);
-- ODM_SetBBReg(pDM_Odm, pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xCA0][KEY], bMaskDWord, pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xCA0][VAL]);
-+ PHY_SetBBReg(pDM_Odm->Adapter, pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xC14][KEY], bMaskDWord, pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xC14][VAL]);
-+ PHY_SetBBReg(pDM_Odm->Adapter, pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xCA0][KEY], bMaskDWord, pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xCA0][VAL]);
- }
- else
- {
- //S1 TX IQC
-- ODM_SetBBReg(pDM_Odm, pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC94][KEY], bMaskDWord, pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC94][VAL]);
-- ODM_SetBBReg(pDM_Odm, pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC80][KEY], bMaskDWord, pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC80][VAL]);
-- ODM_SetBBReg(pDM_Odm, pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC4C][KEY], bMaskDWord, pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC4C][VAL]);
-+ PHY_SetBBReg(pDM_Odm->Adapter, pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC94][KEY], bMaskDWord, pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC94][VAL]);
-+ PHY_SetBBReg(pDM_Odm->Adapter, pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC80][KEY], bMaskDWord, pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC80][VAL]);
-+ PHY_SetBBReg(pDM_Odm->Adapter, pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC4C][KEY], bMaskDWord, pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC4C][VAL]);
- //S1 RX IQC
-- ODM_SetBBReg(pDM_Odm, pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xC14][KEY], bMaskDWord, pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xC14][VAL]);
-- ODM_SetBBReg(pDM_Odm, pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xCA0][KEY], bMaskDWord, pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xCA0][VAL]);
-+ PHY_SetBBReg(pDM_Odm->Adapter, pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xC14][KEY], bMaskDWord, pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xC14][VAL]);
-+ PHY_SetBBReg(pDM_Odm->Adapter, pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xCA0][KEY], bMaskDWord, pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xCA0][VAL]);
- }
- }
- }
-@@ -1396,7 +1396,7 @@ _PHY_SaveADDARegisters8723B(
-
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Save ADDA parameters.\n"));
- for( i = 0 ; i < RegisterNum ; i++){
-- ADDABackup[i] = ODM_GetBBReg(pDM_Odm, ADDAReg[i], bMaskDWord);
-+ ADDABackup[i] = PHY_QueryBBReg(pDM_Odm->Adapter, ADDAReg[i], bMaskDWord);
- }
- }
-
-@@ -1414,9 +1414,9 @@ _PHY_SaveMACRegisters8723B(
-
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Save MAC parameters.\n"));
- for( i = 0 ; i < (IQK_MAC_REG_NUM - 1); i++){
-- MACBackup[i] = ODM_Read1Byte(pDM_Odm, MACReg[i]);
-+ MACBackup[i] = rtw_read8(pDM_Odm->Adapter, MACReg[i]);
- }
-- MACBackup[i] = ODM_Read4Byte(pDM_Odm, MACReg[i]);
-+ MACBackup[i] = rtw_read32(pDM_Odm->Adapter, MACReg[i]);
-
- }
-
-@@ -1436,7 +1436,7 @@ _PHY_ReloadADDARegisters8723B(
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Reload ADDA power saving parameters !\n"));
- for(i = 0 ; i < RegiesterNum; i++)
- {
-- ODM_SetBBReg(pDM_Odm, ADDAReg[i], bMaskDWord, ADDABackup[i]);
-+ PHY_SetBBReg(pDM_Odm->Adapter, ADDAReg[i], bMaskDWord, ADDABackup[i]);
- }
- }
-
-@@ -1453,9 +1453,9 @@ _PHY_ReloadMACRegisters8723B(
-
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Reload MAC parameters !\n"));
- for(i = 0 ; i < (IQK_MAC_REG_NUM - 1); i++){
-- ODM_Write1Byte(pDM_Odm, MACReg[i], (u1Byte)MACBackup[i]);
-+ rtw_write8(pAdapter, MACReg[i], (u1Byte)MACBackup[i]);
- }
-- ODM_Write4Byte(pDM_Odm, MACReg[i], MACBackup[i]);
-+ rtw_write32(pAdapter, MACReg[i], MACBackup[i]);
- }
-
-
-@@ -1477,14 +1477,14 @@ _PHY_PathADDAOn8723B(
- pathOn = isPathAOn ? 0x01c00014 : 0x01c00014;
- if(false == is2T){
- pathOn = 0x01c00014;
-- ODM_SetBBReg(pDM_Odm, ADDAReg[0], bMaskDWord, 0x01c00014);
-+ PHY_SetBBReg(pDM_Odm->Adapter, ADDAReg[0], bMaskDWord, 0x01c00014);
- }
- else{
-- ODM_SetBBReg(pDM_Odm,ADDAReg[0], bMaskDWord, pathOn);
-+ PHY_SetBBReg(pDM_Odm->Adapter,ADDAReg[0], bMaskDWord, pathOn);
- }
-
- for( i = 1 ; i < IQK_ADDA_REG_NUM ; i++){
-- ODM_SetBBReg(pDM_Odm,ADDAReg[i], bMaskDWord, pathOn);
-+ PHY_SetBBReg(pDM_Odm->Adapter,ADDAReg[i], bMaskDWord, pathOn);
- }
-
- }
-@@ -1502,12 +1502,12 @@ _PHY_MACSettingCalibration8723B(
-
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("MAC settings for Calibration.\n"));
-
-- ODM_Write1Byte(pDM_Odm, MACReg[i], 0x3F);
-+ rtw_write8(pDM_Odm->Adapter, MACReg[i], 0x3F);
-
- for(i = 1 ; i < (IQK_MAC_REG_NUM - 1); i++){
-- ODM_Write1Byte(pDM_Odm, MACReg[i], (u1Byte)(MACBackup[i]&(~BIT3)));
-+ rtw_write8(pDM_Odm->Adapter, MACReg[i], (u1Byte)(MACBackup[i]&(~BIT3)));
- }
-- ODM_Write1Byte(pDM_Odm, MACReg[i], (u1Byte)(MACBackup[i]&(~BIT5)));
-+ rtw_write8(pDM_Odm->Adapter, MACReg[i], (u1Byte)(MACBackup[i]&(~BIT5)));
-
- }
-
-@@ -1642,8 +1642,8 @@ phy_IQCalibrate_8723B(
-
- u4Byte i;
- u1Byte PathAOK, PathBOK;
-- u1Byte tmp0xc50 = (u1Byte)ODM_GetBBReg(pDM_Odm, 0xC50, bMaskByte0);
-- u1Byte tmp0xc58 = (u1Byte)ODM_GetBBReg(pDM_Odm, 0xC58, bMaskByte0);
-+ u1Byte tmp0xc50 = (u1Byte)PHY_QueryBBReg(pDM_Odm->Adapter, 0xC50, bMaskByte0);
-+ u1Byte tmp0xc58 = (u1Byte)PHY_QueryBBReg(pDM_Odm->Adapter, 0xC58, bMaskByte0);
- u4Byte ADDA_REG[IQK_ADDA_REG_NUM] = {
- rFPGA0_XCD_SwitchControl, rBlue_Tooth,
- rRx_Wait_CCA, rTx_CCK_RFON,
-@@ -1677,7 +1677,7 @@ phy_IQCalibrate_8723B(
-
- if(t==0)
- {
--// bbvalue = ODM_GetBBReg(pDM_Odm, rFPGA0_RFMOD, bMaskDWord);
-+// bbvalue = PHY_QueryBBReg(pDM_Odm->Adapter, rFPGA0_RFMOD, bMaskDWord);
- // RT_DISP(FINIT, INIT_IQK, ("phy_IQCalibrate_8188E()==>0x%08x\n",bbvalue));
-
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("IQ Calibration for %s for %d times\n", (is2T ? "2T2R" : "1T1R"), t));
-@@ -1694,41 +1694,41 @@ phy_IQCalibrate_8723B(
- //no serial mode
-
- //save RF path for 8723B
--// Path_SEL_BB = ODM_GetBBReg(pDM_Odm, 0x948, bMaskDWord);
--// Path_SEL_RF = ODM_GetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xb0, 0xfffff);
-+// Path_SEL_BB = PHY_QueryBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord);
-+// Path_SEL_RF = PHY_QueryRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xb0, 0xfffff);
-
- //MAC settings
- _PHY_MACSettingCalibration8723B(pAdapter, IQK_MAC_REG, pDM_Odm->RFCalibrateInfo.IQK_MAC_backup);
-
- //BB setting
-- //ODM_SetBBReg(pDM_Odm, rFPGA0_RFMOD, BIT24, 0x00);
-- ODM_SetBBReg(pDM_Odm, rCCK0_AFESetting, 0x0f000000, 0xf);
-- ODM_SetBBReg(pDM_Odm, rOFDM0_TRxPathEnable, bMaskDWord, 0x03a05600);
-- ODM_SetBBReg(pDM_Odm, rOFDM0_TRMuxPar, bMaskDWord, 0x000800e4);
-- ODM_SetBBReg(pDM_Odm, rFPGA0_XCD_RFInterfaceSW, bMaskDWord, 0x22204000);
-+ //PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_RFMOD, BIT24, 0x00);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rCCK0_AFESetting, 0x0f000000, 0xf);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_TRxPathEnable, bMaskDWord, 0x03a05600);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_TRMuxPar, bMaskDWord, 0x000800e4);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_XCD_RFInterfaceSW, bMaskDWord, 0x22204000);
-
-
--// ODM_SetBBReg(pDM_Odm, rFPGA0_XAB_RFInterfaceSW, BIT10, 0x01);
--// ODM_SetBBReg(pDM_Odm, rFPGA0_XAB_RFInterfaceSW, BIT26, 0x01);
--// ODM_SetBBReg(pDM_Odm, rFPGA0_XA_RFInterfaceOE, BIT10, 0x00);
--// ODM_SetBBReg(pDM_Odm, rFPGA0_XB_RFInterfaceOE, BIT10, 0x00);
-+// PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_XAB_RFInterfaceSW, BIT10, 0x01);
-+// PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_XAB_RFInterfaceSW, BIT26, 0x01);
-+// PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_XA_RFInterfaceOE, BIT10, 0x00);
-+// PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_XB_RFInterfaceOE, BIT10, 0x00);
-
-
- //RX IQ calibration setting for 8723B D cut large current issue when leaving IPS
-
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x1);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_RCK_OS, bRFRegOffsetMask, 0x30000);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_TXPA_G1, bRFRegOffsetMask, 0x0001f);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_TXPA_G2, bRFRegOffsetMask, 0xf7fb7);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xed, 0x20, 0x1);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0x43, bRFRegOffsetMask, 0x60fbd);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x1);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_RCK_OS, bRFRegOffsetMask, 0x30000);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_TXPA_G1, bRFRegOffsetMask, 0x0001f);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_TXPA_G2, bRFRegOffsetMask, 0xf7fb7);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xed, 0x20, 0x1);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0x43, bRFRegOffsetMask, 0x60fbd);
- /*
- //LOK RF setting
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xed, 0x2, 0x1);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xef, 0x2, 0x1);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0x56, bRFRegOffsetMask, 0x00032);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0x76, bRFRegOffsetMask, 0x00032);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xed, 0x2, 0x1);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xef, 0x2, 0x1);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0x56, bRFRegOffsetMask, 0x00032);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0x76, bRFRegOffsetMask, 0x00032);
- */
-
-
-@@ -1738,12 +1738,12 @@ phy_IQCalibrate_8723B(
- // if(PathAOK == 0x03){
- if(PathAOK == 0x01){
- // Path A Tx IQK Success
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-- pDM_Odm->RFCalibrateInfo.TxLOK[ODM_RF_PATH_A] = ODM_GetRFReg(pDM_Odm, ODM_RF_PATH_A, 0x8, bRFRegOffsetMask);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-+ pDM_Odm->RFCalibrateInfo.TxLOK[ODM_RF_PATH_A] = PHY_QueryRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0x8, bRFRegOffsetMask);
-
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Path A Tx IQK Success!!\n"));
-- result[t][0] = (ODM_GetBBReg(pDM_Odm, rTx_Power_Before_IQK_A, bMaskDWord)&0x3FF0000)>>16;
-- result[t][1] = (ODM_GetBBReg(pDM_Odm, rTx_Power_After_IQK_A, bMaskDWord)&0x3FF0000)>>16;
-+ result[t][0] = (PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_Before_IQK_A, bMaskDWord)&0x3FF0000)>>16;
-+ result[t][1] = (PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_After_IQK_A, bMaskDWord)&0x3FF0000)>>16;
- break;
- }
- }
-@@ -1753,10 +1753,10 @@ phy_IQCalibrate_8723B(
- PathAOK = phy_PathA_RxIQK8723B(pAdapter, is2T, RF_Path);
- if(PathAOK == 0x03){
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Path A Rx IQK Success!!\n"));
--// result[t][0] = (ODM_GetBBReg(pDM_Odm, rTx_Power_Before_IQK_A, bMaskDWord)&0x3FF0000)>>16;
--// result[t][1] = (ODM_GetBBReg(pDM_Odm, rTx_Power_After_IQK_A, bMaskDWord)&0x3FF0000)>>16;
-- result[t][2] = (ODM_GetBBReg(pDM_Odm, rRx_Power_Before_IQK_A_2, bMaskDWord)&0x3FF0000)>>16;
-- result[t][3] = (ODM_GetBBReg(pDM_Odm, rRx_Power_After_IQK_A_2, bMaskDWord)&0x3FF0000)>>16;
-+// result[t][0] = (PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_Before_IQK_A, bMaskDWord)&0x3FF0000)>>16;
-+// result[t][1] = (PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_After_IQK_A, bMaskDWord)&0x3FF0000)>>16;
-+ result[t][2] = (PHY_QueryBBReg(pDM_Odm->Adapter, rRx_Power_Before_IQK_A_2, bMaskDWord)&0x3FF0000)>>16;
-+ result[t][3] = (PHY_QueryBBReg(pDM_Odm->Adapter, rRx_Power_After_IQK_A_2, bMaskDWord)&0x3FF0000)>>16;
- break;
- }
- else
-@@ -1778,12 +1778,12 @@ phy_IQCalibrate_8723B(
- // if(PathBOK == 0x03){
- if(PathBOK == 0x01){
- // Path B Tx IQK Success
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-- pDM_Odm->RFCalibrateInfo.TxLOK[ODM_RF_PATH_B] = ODM_GetRFReg(pDM_Odm, ODM_RF_PATH_B, 0x8, bRFRegOffsetMask);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
-+ pDM_Odm->RFCalibrateInfo.TxLOK[ODM_RF_PATH_B] = PHY_QueryRFReg(pDM_Odm->Adapter, ODM_RF_PATH_B, 0x8, bRFRegOffsetMask);
-
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Path B Tx IQK Success!!\n"));
-- result[t][4] = (ODM_GetBBReg(pDM_Odm, rTx_Power_Before_IQK_A, bMaskDWord)&0x3FF0000)>>16;
-- result[t][5] = (ODM_GetBBReg(pDM_Odm, rTx_Power_After_IQK_A, bMaskDWord)&0x3FF0000)>>16;
-+ result[t][4] = (PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_Before_IQK_A, bMaskDWord)&0x3FF0000)>>16;
-+ result[t][5] = (PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_After_IQK_A, bMaskDWord)&0x3FF0000)>>16;
- break;
- }
- }
-@@ -1793,10 +1793,10 @@ for(i = 0 ; i < retryCount ; i++){
- PathBOK = phy_PathB_RxIQK8723B(pAdapter, is2T);
- if(PathBOK == 0x03){
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Path B Rx IQK Success!!\n"));
--// result[t][0] = (ODM_GetBBReg(pDM_Odm, rTx_Power_Before_IQK_A, bMaskDWord)&0x3FF0000)>>16;
--// result[t][1] = (ODM_GetBBReg(pDM_Odm, rTx_Power_After_IQK_A, bMaskDWord)&0x3FF0000)>>16;
-- result[t][6] = (ODM_GetBBReg(pDM_Odm, rRx_Power_Before_IQK_A_2, bMaskDWord)&0x3FF0000)>>16;
-- result[t][7] = (ODM_GetBBReg(pDM_Odm, rRx_Power_After_IQK_A_2, bMaskDWord)&0x3FF0000)>>16;
-+// result[t][0] = (PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_Before_IQK_A, bMaskDWord)&0x3FF0000)>>16;
-+// result[t][1] = (PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_After_IQK_A, bMaskDWord)&0x3FF0000)>>16;
-+ result[t][6] = (PHY_QueryBBReg(pDM_Odm->Adapter, rRx_Power_Before_IQK_A_2, bMaskDWord)&0x3FF0000)>>16;
-+ result[t][7] = (PHY_QueryBBReg(pDM_Odm->Adapter, rRx_Power_After_IQK_A_2, bMaskDWord)&0x3FF0000)>>16;
- break;
- }
- else
-@@ -1813,7 +1813,7 @@ for(i = 0 ; i < retryCount ; i++){
-
- //Back to BB mode, load original value
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("IQK:Back to BB mode, load original value!\n"));
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes, 0);
-
- if(t!=0)
- {
-@@ -1826,21 +1826,21 @@ for(i = 0 ; i < retryCount ; i++){
- _PHY_ReloadADDARegisters8723B(pAdapter, IQK_BB_REG_92C, pDM_Odm->RFCalibrateInfo.IQK_BB_backup, IQK_BB_REG_NUM);
-
- //Reload RF path
--// ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord, Path_SEL_BB);
--// ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xb0, 0xfffff, Path_SEL_RF);
-+// PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord, Path_SEL_BB);
-+// PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xb0, 0xfffff, Path_SEL_RF);
-
- //Allen initial gain 0xc50
- // Restore RX initial gain
-- ODM_SetBBReg(pDM_Odm, 0xc50, bMaskByte0, 0x50);
-- ODM_SetBBReg(pDM_Odm, 0xc50, bMaskByte0, tmp0xc50);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0xc50, bMaskByte0, 0x50);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0xc50, bMaskByte0, tmp0xc50);
- if(is2T){
-- ODM_SetBBReg(pDM_Odm, 0xc58, bMaskByte0, 0x50);
-- ODM_SetBBReg(pDM_Odm, 0xc58, bMaskByte0, tmp0xc58);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0xc58, bMaskByte0, 0x50);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0xc58, bMaskByte0, tmp0xc58);
- }
-
- //load 0xe30 IQC default value
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_Tone_A, bMaskDWord, 0x01008c00);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_Tone_A, bMaskDWord, 0x01008c00);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rTx_IQK_Tone_A, bMaskDWord, 0x01008c00);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rRx_IQK_Tone_A, bMaskDWord, 0x01008c00);
-
- }
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("phy_IQCalibrate_8723B() <==\n"));
-@@ -1859,12 +1859,12 @@ phy_LCCalibrate_8723B(
- PADAPTER pAdapter = pDM_Odm->Adapter;
-
- //Check continuous TX and Packet TX
-- tmpReg = ODM_Read1Byte(pDM_Odm, 0xd03);
-+ tmpReg = rtw_read8(pDM_Odm->Adapter, 0xd03);
-
- if((tmpReg&0x70) != 0) //Deal with contisuous TX case
-- ODM_Write1Byte(pDM_Odm, 0xd03, tmpReg&0x8F); //disable all continuous TX
-+ rtw_write8(pDM_Odm->Adapter, 0xd03, tmpReg&0x8F); //disable all continuous TX
- else // Deal with Packet TX case
-- ODM_Write1Byte(pDM_Odm, REG_TXPAUSE, 0xFF); // block all queues
-+ rtw_write8(pDM_Odm->Adapter, REG_TXPAUSE, 0xFF); // block all queues
-
- if((tmpReg&0x70) != 0)
- {
-@@ -1878,44 +1878,44 @@ phy_LCCalibrate_8723B(
-
- //2. Set RF mode = standby mode
- //Path-A
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_AC, bMask12Bits, (RF_Amode&0x8FFFF)|0x10000);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_AC, bMask12Bits, (RF_Amode&0x8FFFF)|0x10000);
-
- //Path-B
- if(is2T)
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_B, RF_AC, bMask12Bits, (RF_Bmode&0x8FFFF)|0x10000);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_B, RF_AC, bMask12Bits, (RF_Bmode&0x8FFFF)|0x10000);
- }
-
- //3. Read RF reg18
- LC_Cal = PHY_QueryRFReg(pAdapter, ODM_RF_PATH_A, RF_CHNLBW, bMask12Bits);
-
- //4. Set LC calibration begin bit15
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xB0, bRFRegOffsetMask, 0xDFBE0); // LDO ON
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_CHNLBW, bMask12Bits, LC_Cal|0x08000);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xB0, bRFRegOffsetMask, 0xDFBE0); // LDO ON
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_CHNLBW, bMask12Bits, LC_Cal|0x08000);
-
- mdelay(100);
-
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xB0, bRFRegOffsetMask, 0xDFFE0); // LDO OFF
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xB0, bRFRegOffsetMask, 0xDFFE0); // LDO OFF
-
- // Channel 10 LC calibration issue for 8723bs with 26M xtal
- if(pDM_Odm->SupportInterface == ODM_ITRF_SDIO && pDM_Odm->PackageType >= 0x2)
- {
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_CHNLBW, bMask12Bits, LC_Cal);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_CHNLBW, bMask12Bits, LC_Cal);
- }
-
- //Restore original situation
- if((tmpReg&0x70) != 0) //Deal with contisuous TX case
- {
- //Path-A
-- ODM_Write1Byte(pDM_Odm, 0xd03, tmpReg);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_AC, bMask12Bits, RF_Amode);
-+ rtw_write8(pDM_Odm->Adapter, 0xd03, tmpReg);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_AC, bMask12Bits, RF_Amode);
-
- //Path-B
- if(is2T)
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_B, RF_AC, bMask12Bits, RF_Bmode);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_B, RF_AC, bMask12Bits, RF_Bmode);
- }
- else // Deal with Packet TX case
- {
-- ODM_Write1Byte(pDM_Odm, REG_TXPAUSE, 0x00);
-+ rtw_write8(pDM_Odm->Adapter, REG_TXPAUSE, 0x00);
- }
- }
-
-@@ -1924,118 +1924,6 @@ phy_LCCalibrate_8723B(
- #define APK_CURVE_REG_NUM 4
- #define PATH_NUM 2
-
--static void
--phy_APCalibrate_8723B(
-- IN PADAPTER pAdapter,
-- IN s8 delta,
-- IN bool is2T
-- )
--{
-- HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter);
-- PDM_ODM_T pDM_Odm = &pHalData->odmpriv;
-- u4Byte regD[PATH_NUM];
-- u4Byte tmpReg, index, offset, apkbound;
-- u1Byte path, i, pathbound = PATH_NUM;
-- u4Byte BB_backup[APK_BB_REG_NUM];
-- u4Byte BB_REG[APK_BB_REG_NUM] = {
-- rFPGA1_TxBlock, rOFDM0_TRxPathEnable,
-- rFPGA0_RFMOD, rOFDM0_TRMuxPar,
-- rFPGA0_XCD_RFInterfaceSW, rFPGA0_XAB_RFInterfaceSW,
-- rFPGA0_XA_RFInterfaceOE, rFPGA0_XB_RFInterfaceOE };
-- u4Byte BB_AP_MODE[APK_BB_REG_NUM] = {
-- 0x00000020, 0x00a05430, 0x02040000,
-- 0x000800e4, 0x00204000 };
-- u4Byte BB_normal_AP_MODE[APK_BB_REG_NUM] = {
-- 0x00000020, 0x00a05430, 0x02040000,
-- 0x000800e4, 0x22204000 };
--
-- u4Byte AFE_backup[IQK_ADDA_REG_NUM];
-- u4Byte AFE_REG[IQK_ADDA_REG_NUM] = {
-- rFPGA0_XCD_SwitchControl, rBlue_Tooth,
-- rRx_Wait_CCA, rTx_CCK_RFON,
-- rTx_CCK_BBON, rTx_OFDM_RFON,
-- rTx_OFDM_BBON, rTx_To_Rx,
-- rTx_To_Tx, rRx_CCK,
-- rRx_OFDM, rRx_Wait_RIFS,
-- rRx_TO_Rx, rStandby,
-- rSleep, rPMPD_ANAEN };
--
-- u4Byte MAC_backup[IQK_MAC_REG_NUM];
-- u4Byte MAC_REG[IQK_MAC_REG_NUM] = {
-- REG_TXPAUSE, REG_BCN_CTRL,
-- REG_BCN_CTRL_1, REG_GPIO_MUXCFG};
--
-- u4Byte APK_RF_init_value[PATH_NUM][APK_BB_REG_NUM] = {
-- {0x0852c, 0x1852c, 0x5852c, 0x1852c, 0x5852c},
-- {0x2852e, 0x0852e, 0x3852e, 0x0852e, 0x0852e}
-- };
--
-- u4Byte APK_normal_RF_init_value[PATH_NUM][APK_BB_REG_NUM] = {
-- {0x0852c, 0x0a52c, 0x3a52c, 0x5a52c, 0x5a52c}, //path settings equal to path b settings
-- {0x0852c, 0x0a52c, 0x5a52c, 0x5a52c, 0x5a52c}
-- };
--
-- u4Byte APK_RF_value_0[PATH_NUM][APK_BB_REG_NUM] = {
-- {0x52019, 0x52014, 0x52013, 0x5200f, 0x5208d},
-- {0x5201a, 0x52019, 0x52016, 0x52033, 0x52050}
-- };
--
-- u4Byte APK_normal_RF_value_0[PATH_NUM][APK_BB_REG_NUM] = {
-- {0x52019, 0x52017, 0x52010, 0x5200d, 0x5206a}, //path settings equal to path b settings
-- {0x52019, 0x52017, 0x52010, 0x5200d, 0x5206a}
-- };
--
-- u4Byte AFE_on_off[PATH_NUM] = {
-- 0x04db25a4, 0x0b1b25a4}; //path A on path B off / path A off path B on
--
-- u4Byte APK_offset[PATH_NUM] = {
-- rConfig_AntA, rConfig_AntB};
--
-- u4Byte APK_normal_offset[PATH_NUM] = {
-- rConfig_Pmpd_AntA, rConfig_Pmpd_AntB};
--
-- u4Byte APK_value[PATH_NUM] = {
-- 0x92fc0000, 0x12fc0000};
--
-- u4Byte APK_normal_value[PATH_NUM] = {
-- 0x92680000, 0x12680000};
--
-- s8 APK_delta_mapping[APK_BB_REG_NUM][13] = {
-- {-4, -3, -2, -2, -1, -1, 0, 1, 2, 3, 4, 5, 6},
-- {-4, -3, -2, -2, -1, -1, 0, 1, 2, 3, 4, 5, 6},
-- {-6, -4, -2, -2, -1, -1, 0, 1, 2, 3, 4, 5, 6},
-- {-1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6},
-- {-11, -9, -7, -5, -3, -1, 0, 0, 0, 0, 0, 0, 0}
-- };
--
-- u4Byte APK_normal_setting_value_1[13] = {
-- 0x01017018, 0xf7ed8f84, 0x1b1a1816, 0x2522201e, 0x322e2b28,
-- 0x433f3a36, 0x5b544e49, 0x7b726a62, 0xa69a8f84, 0xdfcfc0b3,
-- 0x12680000, 0x00880000, 0x00880000
-- };
--
-- u4Byte APK_normal_setting_value_2[16] = {
-- 0x01c7021d, 0x01670183, 0x01000123, 0x00bf00e2, 0x008d00a3,
-- 0x0068007b, 0x004d0059, 0x003a0042, 0x002b0031, 0x001f0025,
-- 0x0017001b, 0x00110014, 0x000c000f, 0x0009000b, 0x00070008,
-- 0x00050006
-- };
--
-- u4Byte APK_result[PATH_NUM][APK_BB_REG_NUM]; //val_1_1a, val_1_2a, val_2a, val_3a, val_4a
--// u4Byte AP_curve[PATH_NUM][APK_CURVE_REG_NUM];
--
-- s4Byte BB_offset, delta_V, delta_offset;
--
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("==>phy_APCalibrate_8188E() delta %d\n", delta));
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("AP Calibration for %s\n", (is2T ? "2T2R" : "1T1R")));
-- if(!is2T)
-- pathbound = 1;
--
-- //2 FOR NORMAL CHIP SETTINGS
--}
--
--
--
- #define DP_BB_REG_NUM 7
- #define DP_RF_REG_NUM 1
- #define DP_RETRY_LIMIT 10
-@@ -2106,7 +1994,7 @@ PHY_IQCalibrate_8723B(
- //#define PATH_S0 1 // RF_PATH_B
- //#define PATH_S1 0 // RF_PATH_A
-
-- path = (ODM_GetBBReg(pDM_Odm,rS0S1_PathSwitch,bMaskByte0)==0x00) ? ODM_RF_PATH_A : ODM_RF_PATH_B;
-+ path = (PHY_QueryBBReg(pDM_Odm->Adapter,rS0S1_PathSwitch,bMaskByte0)==0x00) ? ODM_RF_PATH_A : ODM_RF_PATH_B;
-
- // Restore TX IQK
- for (i = 0; i < 3; ++i) {
-@@ -2118,7 +2006,7 @@ PHY_IQCalibrate_8723B(
- break;
- }
- //RT_TRACE(_module_mp_, _drv_notice_,("Switch to S1 TxIQC(offset, data) = (0x%X, 0x%X)\n", offset, data));
-- ODM_SetBBReg(pDM_Odm,offset, bMaskDWord, data);
-+ PHY_SetBBReg(pDM_Odm->Adapter,offset, bMaskDWord, data);
- }
-
- // Restore RX IQK
-@@ -2131,15 +2019,15 @@ PHY_IQCalibrate_8723B(
- break;
- }
- //RT_TRACE(_module_mp_, _drv_notice_,("Switch to S1 RxIQC (offset, data) = (0x%X, 0x%X)\n", offset, data));
-- ODM_SetBBReg(pDM_Odm,offset, bMaskDWord, data);
-+ PHY_SetBBReg(pDM_Odm->Adapter,offset, bMaskDWord, data);
- }
-
- if (pDM_Odm->RFCalibrateInfo.TxLOK[ODM_RF_PATH_A] ==0) {
- DBG_871X("%s => Restore Path-A TxLOK result failed \n",__FUNCTION__);
- bResult = FAIL;
- } else {
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_TXM_IDAC, bRFRegOffsetMask, pDM_Odm->RFCalibrateInfo.TxLOK[ODM_RF_PATH_A]);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_B, RF_TXM_IDAC, bRFRegOffsetMask, pDM_Odm->RFCalibrateInfo.TxLOK[ODM_RF_PATH_B]);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_TXM_IDAC, bRFRegOffsetMask, pDM_Odm->RFCalibrateInfo.TxLOK[ODM_RF_PATH_A]);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_B, RF_TXM_IDAC, bRFRegOffsetMask, pDM_Odm->RFCalibrateInfo.TxLOK[ODM_RF_PATH_B]);
- }
-
- if (bResult == SUCCESS)
-@@ -2156,14 +2044,14 @@ PHY_IQCalibrate_8723B(
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("IQK:Start!!!\n"));
-
- //save default GNT_BT
-- GNT_BT_default = ODM_GetBBReg(pDM_Odm, 0x764, bMaskDWord);
-+ GNT_BT_default = PHY_QueryBBReg(pDM_Odm->Adapter, 0x764, bMaskDWord);
- // Save RF Path
--// Path_SEL_BB = ODM_GetBBReg(pDM_Odm, 0x948, bMaskDWord);
--// Path_SEL_RF = ODM_GetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xb0, 0xfffff);
-+// Path_SEL_BB = PHY_QueryBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord);
-+// Path_SEL_RF = PHY_QueryRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xb0, 0xfffff);
-
- //set GNT_BT=0, pause BT traffic
--// ODM_SetBBReg(pDM_Odm, 0x764, BIT12, 0x0);
--// ODM_SetBBReg(pDM_Odm, 0x764, BIT11, 0x1);
-+// PHY_SetBBReg(pDM_Odm->Adapter, 0x764, BIT12, 0x0);
-+// PHY_SetBBReg(pDM_Odm->Adapter, 0x764, BIT11, 0x1);
-
-
- for(i = 0; i < 8; i++)
-@@ -2290,22 +2178,22 @@ PHY_IQCalibrate_8723B(
- _PHY_SaveADDARegisters8723B(pAdapter, IQK_BB_REG_92C, pDM_Odm->RFCalibrateInfo.IQK_BB_backup_recover, 9);
-
- //restore GNT_BT
-- ODM_SetBBReg(pDM_Odm, 0x764, bMaskDWord, GNT_BT_default);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x764, bMaskDWord, GNT_BT_default);
- // Restore RF Path
--// ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord, Path_SEL_BB);
--// ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xb0, 0xfffff, Path_SEL_RF);
-+// PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord, Path_SEL_BB);
-+// PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xb0, 0xfffff, Path_SEL_RF);
-
- //Resotr RX mode table parameter
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x1 );
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_RCK_OS, bRFRegOffsetMask, 0x18000 );
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_TXPA_G1, bRFRegOffsetMask, 0x0001f );
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_TXPA_G2, bRFRegOffsetMask, 0xe6177 );
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0xed, 0x20, 0x1 );
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0x43, bRFRegOffsetMask, 0x300bd );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_WE_LUT, 0x80000, 0x1 );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_RCK_OS, bRFRegOffsetMask, 0x18000 );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_TXPA_G1, bRFRegOffsetMask, 0x0001f );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_TXPA_G2, bRFRegOffsetMask, 0xe6177 );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0xed, 0x20, 0x1 );
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, 0x43, bRFRegOffsetMask, 0x300bd );
-
- //set GNT_BT= HW control
--// ODM_SetBBReg(pDM_Odm, 0x764, BIT12, 0x0);
--// ODM_SetBBReg(pDM_Odm, 0x764, BIT11, 0x0);
-+// PHY_SetBBReg(pDM_Odm->Adapter, 0x764, BIT12, 0x0);
-+// PHY_SetBBReg(pDM_Odm->Adapter, 0x764, BIT11, 0x0);
-
- if (Is2ant) {
- if (RF_Path == 0x0) //S1
-@@ -2367,59 +2255,3 @@ PHY_LCCalibrate_8723B(
- ProgressingTime = jiffies_to_msecs(jiffies - StartTime);
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("LCK ProgressingTime = %d\n", ProgressingTime));
- }
--
--void
--PHY_APCalibrate_8723B(
-- IN PADAPTER pAdapter,
-- IN s8 delta
-- )
--{
-- HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter);
-- PDM_ODM_T pDM_Odm = &pHalData->odmpriv;
--#if DISABLE_BB_RF
-- return;
--#endif
--
-- return;
--
-- if(!(pDM_Odm->SupportAbility & ODM_RF_CALIBRATION))
-- {
-- return;
-- }
--
-- if(pDM_Odm->RFCalibrateInfo.bAPKdone)
-- return;
--
-- // For 88C 1T1R
-- phy_APCalibrate_8723B(pAdapter, delta, false);
--}
--static void phy_SetRFPathSwitch_8723B(
-- IN PADAPTER pAdapter,
-- IN bool bMain,
-- IN bool is2T
-- )
--{
-- HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter);
-- PDM_ODM_T pDM_Odm = &pHalData->odmpriv;
--
-- if(bMain) // Left antenna
-- {
-- ODM_SetBBReg(pDM_Odm, 0x92C, bMaskDWord, 0x1);
-- }
-- else
-- {
-- ODM_SetBBReg(pDM_Odm, 0x92C, bMaskDWord, 0x2);
-- }
--}
--void PHY_SetRFPathSwitch_8723B(
-- IN PADAPTER pAdapter,
-- IN bool bMain
-- )
--{
--
--#if DISABLE_BB_RF
-- return;
--#endif
--
-- phy_SetRFPathSwitch_8723B(pAdapter, bMain, true);
--}
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/HalPhyRf_8723B.h linux/3rdparty/rtl8723bs/hal/HalPhyRf_8723B.h
---- linux/3rdparty/rtl8723bs.old/hal/HalPhyRf_8723B.h 2015-05-10 14:36:05.702668280 +0300
-+++ linux/3rdparty/rtl8723bs/hal/HalPhyRf_8723B.h 2015-05-07 17:46:55.000000000 +0300
-@@ -76,10 +76,6 @@ PHY_LCCalibrate_8723B(
- // AP calibrate
- //
- void
--PHY_APCalibrate_8723B(
-- IN PADAPTER pAdapter,
-- IN s8 delta);
--void
- PHY_DigitalPredistortion_8723B( IN PADAPTER pAdapter);
-
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/HalPhyRf.c linux/3rdparty/rtl8723bs/hal/HalPhyRf.c
---- linux/3rdparty/rtl8723bs.old/hal/HalPhyRf.c 2015-05-10 14:36:05.702668280 +0300
-+++ linux/3rdparty/rtl8723bs/hal/HalPhyRf.c 2015-05-07 17:46:55.000000000 +0300
-@@ -129,7 +129,7 @@ ODM_TXPowerTrackingCallback_ThermalMeter
- \n pDM_Odm->BbSwingIdxCckBase: %d, pDM_Odm->BbSwingIdxOfdmBase[A]: %d, pDM_Odm->DefaultOfdmIndex: %d\n",
- pDM_Odm->BbSwingIdxCckBase, pDM_Odm->BbSwingIdxOfdmBase[ODM_RF_PATH_A], pDM_Odm->DefaultOfdmIndex));
-
-- ThermalValue = (u1Byte)ODM_GetRFReg(pDM_Odm, ODM_RF_PATH_A, c.ThermalRegAddr, 0xfc00); //0x42: RF Reg[15:10] 88E
-+ ThermalValue = (u1Byte)PHY_QueryRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, c.ThermalRegAddr, 0xfc00); //0x42: RF Reg[15:10] 88E
- if( ! pDM_Odm->RFCalibrateInfo.TxPowerTrackControl || pHalData->EEPROMThermalMeter == 0 ||
- pHalData->EEPROMThermalMeter == 0xFF)
- return;
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/hal_sdio.c linux/3rdparty/rtl8723bs/hal/hal_sdio.c
---- linux/3rdparty/rtl8723bs.old/hal/hal_sdio.c 2015-05-10 14:36:05.703668291 +0300
-+++ linux/3rdparty/rtl8723bs/hal/hal_sdio.c 2015-05-07 17:46:55.000000000 +0300
-@@ -49,7 +49,7 @@ void rtw_hal_sdio_update_tx_freepage(_ad
- u8 RequiredPublicFreePgNum = 0;
- //_irqL irql;
-
-- //_enter_critical_bh(&pHalData->SdioTxFIFOFreePageLock, &irql);
-+ //spin_lock_bh(&pHalData->SdioTxFIFOFreePageLock);
-
- DedicatedPgNum = pHalData->SdioTxFIFOFreePage[PageIdx];
- if (RequiredPageNum <= DedicatedPgNum) {
-@@ -60,7 +60,7 @@ void rtw_hal_sdio_update_tx_freepage(_ad
- pHalData->SdioTxFIFOFreePage[PUBLIC_QUEUE_IDX] -= RequiredPublicFreePgNum;
- }
-
-- //_exit_critical_bh(&pHalData->SdioTxFIFOFreePageLock, &irql);
-+ //spin_unlock_bh(&pHalData->SdioTxFIFOFreePageLock);
- }
-
- void rtw_hal_set_sdio_tx_max_length(PADAPTER padapter, u8 numHQ, u8 numNQ, u8 numLQ, u8 numPubQ)
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/hal_sdio_led.c linux/3rdparty/rtl8723bs/hal/hal_sdio_led.c
---- linux/3rdparty/rtl8723bs.old/hal/hal_sdio_led.c 2015-05-10 14:36:05.704668302 +0300
-+++ linux/3rdparty/rtl8723bs/hal/hal_sdio_led.c 1970-01-01 02:00:00.000000000 +0200
-@@ -1,2395 +0,0 @@
--/******************************************************************************
-- *
-- * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or modify it
-- * under the terms of version 2 of the GNU General Public License as
-- * published by the Free Software Foundation.
-- *
-- * This program is distributed in the hope that it will be useful, but WITHOUT
-- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-- * more details.
-- *
-- * You should have received a copy of the GNU General Public License along with
-- * this program; if not, write to the Free Software Foundation, Inc.,
-- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-- *
-- *
-- ******************************************************************************/
--
--#include
--
--//
--// Description:
--// Implementation of LED blinking behavior.
--// It toggle off LED and schedule corresponding timer if necessary.
--//
--static void
--SwLedBlink(
-- PLED_SDIO pLed
-- )
--{
-- _adapter *padapter = pLed->padapter;
-- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-- u8 bStopBlinking = false;
--
-- // Change LED according to BlinkingLedState specified.
-- if( pLed->BlinkingLedState == RTW_LED_ON )
-- {
-- SwLedOn(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
-- }
-- else
-- {
-- SwLedOff(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,( "Blinktimes (%d): turn off\n", pLed->BlinkTimes));
-- }
--
-- // Determine if we shall change LED state again.
-- pLed->BlinkTimes--;
-- switch(pLed->CurrLedState)
-- {
--
-- case LED_BLINK_NORMAL:
-- if(pLed->BlinkTimes == 0)
-- {
-- bStopBlinking = true;
-- }
-- break;
--
-- case LED_BLINK_StartToBlink:
-- if( check_fwstate(pmlmepriv, _FW_LINKED) && check_fwstate(pmlmepriv, WIFI_STATION_STATE) )
-- {
-- bStopBlinking = true;
-- }
-- if( check_fwstate(pmlmepriv, _FW_LINKED) &&
-- (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) || check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) )
-- {
-- bStopBlinking = true;
-- }
-- else if(pLed->BlinkTimes == 0)
-- {
-- bStopBlinking = true;
-- }
-- break;
--
-- case LED_BLINK_WPS:
-- if( pLed->BlinkTimes == 0 )
-- {
-- bStopBlinking = true;
-- }
-- break;
--
--
-- default:
-- bStopBlinking = true;
-- break;
--
-- }
--
-- if(bStopBlinking)
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else if( (check_fwstate(pmlmepriv, _FW_LINKED)== true) && (pLed->bLedOn == false))
-- {
-- SwLedOn(padapter, pLed);
-- }
-- else if( (check_fwstate(pmlmepriv, _FW_LINKED)== false) && pLed->bLedOn == true)
-- {
-- SwLedOff(padapter, pLed);
-- }
--
-- pLed->BlinkTimes = 0;
-- pLed->bLedBlinkInProgress = false;
-- }
-- else
-- {
-- // Assign LED state to toggle.
-- if( pLed->BlinkingLedState == RTW_LED_ON )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
--
-- // Schedule a timer to toggle LED state.
-- switch( pLed->CurrLedState )
-- {
-- case LED_BLINK_NORMAL:
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
-- break;
--
-- case LED_BLINK_SLOWLY:
-- case LED_BLINK_StartToBlink:
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
-- break;
--
-- case LED_BLINK_WPS:
-- {
-- if( pLed->BlinkingLedState == RTW_LED_ON )
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);
-- else
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);
-- }
-- break;
--
-- default:
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
-- break;
-- }
-- }
--}
--
--static void
--SwLedBlink1(
-- PLED_SDIO pLed
-- )
--{
-- _adapter *padapter = pLed->padapter;
-- EEPROM_EFUSE_PRIV *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter);
-- struct led_priv *ledpriv = &(padapter->ledpriv);
-- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-- PLED_SDIO pLed1 = &(ledpriv->SwLed1);
-- u8 bStopBlinking = false;
--
-- if(pEEPROM->CustomerID == RT_CID_819x_CAMEO)
-- pLed = &(ledpriv->SwLed1);
--
-- // Change LED according to BlinkingLedState specified.
-- if( pLed->BlinkingLedState == RTW_LED_ON )
-- {
-- SwLedOn(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,( "Blinktimes (%d): turn on\n", pLed->BlinkTimes));
-- }
-- else
-- {
-- SwLedOff(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
-- }
--
--
-- if(pEEPROM->CustomerID == RT_CID_DEFAULT)
-- {
-- if(check_fwstate(pmlmepriv, _FW_LINKED)== true)
-- {
-- if(!pLed1->bSWLedCtrl)
-- {
-- SwLedOn(padapter, pLed1);
-- pLed1->bSWLedCtrl = true;
-- }
-- else if(!pLed1->bLedOn)
-- SwLedOn(padapter, pLed1);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (): turn on pLed1\n"));
-- }
-- else
-- {
-- if(!pLed1->bSWLedCtrl)
-- {
-- SwLedOff(padapter, pLed1);
-- pLed1->bSWLedCtrl = true;
-- }
-- else if(pLed1->bLedOn)
-- SwLedOff(padapter, pLed1);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (): turn off pLed1\n"));
-- }
-- }
--
-- switch(pLed->CurrLedState)
-- {
-- case LED_BLINK_SLOWLY:
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
-- break;
--
-- case LED_BLINK_NORMAL:
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
-- break;
--
-- case LED_BLINK_SCAN:
-- pLed->BlinkTimes--;
-- if( pLed->BlinkTimes == 0 )
-- {
-- bStopBlinking = true;
-- }
--
-- if(bStopBlinking)
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else if(check_fwstate(pmlmepriv, _FW_LINKED)== true)
-- {
-- pLed->bLedLinkBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_NORMAL;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
--
-- }
-- else if(check_fwstate(pmlmepriv, _FW_LINKED)== false)
-- {
-- pLed->bLedNoLinkBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_SLOWLY;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
-- }
-- pLed->bLedScanBlinkInProgress = false;
-- }
-- else
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else
-- {
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
-- }
-- }
-- break;
--
-- case LED_BLINK_TXRX:
-- pLed->BlinkTimes--;
-- if( pLed->BlinkTimes == 0 )
-- {
-- bStopBlinking = true;
-- }
-- if(bStopBlinking)
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else if(check_fwstate(pmlmepriv, _FW_LINKED)== true)
-- {
-- pLed->bLedLinkBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_NORMAL;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
-- }
-- else if(check_fwstate(pmlmepriv, _FW_LINKED)== false)
-- {
-- pLed->bLedNoLinkBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_SLOWLY;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
-- }
-- pLed->BlinkTimes = 0;
-- pLed->bLedBlinkInProgress = false;
-- }
-- else
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else
-- {
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
-- }
-- }
-- break;
--
-- case LED_BLINK_WPS:
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
-- break;
--
-- case LED_BLINK_WPS_STOP: //WPS success
-- if(pLed->BlinkingLedState == RTW_LED_ON)
-- {
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);
-- bStopBlinking = false;
-- }
-- else
-- {
-- bStopBlinking = true;
-- }
--
-- if(bStopBlinking)
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else
-- {
-- pLed->bLedLinkBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_NORMAL;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
-- }
-- pLed->bLedWPSBlinkInProgress = false;
-- }
-- break;
--
-- default:
-- break;
-- }
--
--}
--
--static void
--SwLedBlink2(
-- PLED_SDIO pLed
-- )
--{
-- _adapter *padapter = pLed->padapter;
-- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-- u8 bStopBlinking = false;
--
-- // Change LED according to BlinkingLedState specified.
-- if( pLed->BlinkingLedState == RTW_LED_ON)
-- {
-- SwLedOn(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
-- }
-- else
-- {
-- SwLedOff(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
-- }
--
-- switch(pLed->CurrLedState)
-- {
-- case LED_BLINK_SCAN:
-- pLed->BlinkTimes--;
-- if( pLed->BlinkTimes == 0 )
-- {
-- bStopBlinking = true;
-- }
--
-- if(bStopBlinking)
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else if(check_fwstate(pmlmepriv, _FW_LINKED)== true)
-- {
-- pLed->CurrLedState = RTW_LED_ON;
-- pLed->BlinkingLedState = RTW_LED_ON;
-- SwLedOn(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("stop scan blink CurrLedState %d\n", pLed->CurrLedState));
--
-- }
-- else if(check_fwstate(pmlmepriv, _FW_LINKED)== false)
-- {
-- pLed->CurrLedState = RTW_LED_OFF;
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- SwLedOff(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("stop scan blink CurrLedState %d\n", pLed->CurrLedState));
-- }
-- pLed->bLedScanBlinkInProgress = false;
-- }
-- else
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else
-- {
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
-- }
-- }
-- break;
--
-- case LED_BLINK_TXRX:
-- pLed->BlinkTimes--;
-- if( pLed->BlinkTimes == 0 )
-- {
-- bStopBlinking = true;
-- }
-- if(bStopBlinking)
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else if(check_fwstate(pmlmepriv, _FW_LINKED)== true)
-- {
-- pLed->CurrLedState = RTW_LED_ON;
-- pLed->BlinkingLedState = RTW_LED_ON;
-- SwLedOn(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("stop CurrLedState %d\n", pLed->CurrLedState));
--
-- }
-- else if(check_fwstate(pmlmepriv, _FW_LINKED)== false)
-- {
-- pLed->CurrLedState = RTW_LED_OFF;
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- SwLedOff(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("stop CurrLedState %d\n", pLed->CurrLedState));
-- }
-- pLed->bLedBlinkInProgress = false;
-- }
-- else
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else
-- {
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
-- }
-- }
-- break;
--
-- default:
-- break;
-- }
--
--}
--
--static void
--SwLedBlink3(
-- PLED_SDIO pLed
-- )
--{
-- _adapter *padapter = pLed->padapter;
-- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-- u8 bStopBlinking = false;
--
-- // Change LED according to BlinkingLedState specified.
-- if( pLed->BlinkingLedState == RTW_LED_ON )
-- {
-- SwLedOn(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
-- }
-- else
-- {
-- if(pLed->CurrLedState != LED_BLINK_WPS_STOP)
-- SwLedOff(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
-- }
--
-- switch(pLed->CurrLedState)
-- {
-- case LED_BLINK_SCAN:
-- pLed->BlinkTimes--;
-- if( pLed->BlinkTimes == 0 )
-- {
-- bStopBlinking = true;
-- }
--
-- if(bStopBlinking)
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else if(check_fwstate(pmlmepriv, _FW_LINKED)== true)
-- {
-- pLed->CurrLedState = RTW_LED_ON;
-- pLed->BlinkingLedState = RTW_LED_ON;
-- if( !pLed->bLedOn )
-- SwLedOn(padapter, pLed);
--
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
-- }
-- else if(check_fwstate(pmlmepriv, _FW_LINKED)== false)
-- {
-- pLed->CurrLedState = RTW_LED_OFF;
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- if( pLed->bLedOn )
-- SwLedOff(padapter, pLed);
--
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
-- }
-- pLed->bLedScanBlinkInProgress = false;
-- }
-- else
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else
-- {
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
-- }
-- }
-- break;
--
-- case LED_BLINK_TXRX:
-- pLed->BlinkTimes--;
-- if( pLed->BlinkTimes == 0 )
-- {
-- bStopBlinking = true;
-- }
-- if(bStopBlinking)
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else if(check_fwstate(pmlmepriv, _FW_LINKED)== true)
-- {
-- pLed->CurrLedState = RTW_LED_ON;
-- pLed->BlinkingLedState = RTW_LED_ON;
--
-- if( !pLed->bLedOn )
-- SwLedOn(padapter, pLed);
--
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
-- }
-- else if(check_fwstate(pmlmepriv, _FW_LINKED)== false)
-- {
-- pLed->CurrLedState = RTW_LED_OFF;
-- pLed->BlinkingLedState = RTW_LED_OFF;
--
-- if( pLed->bLedOn )
-- SwLedOff(padapter, pLed);
--
--
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
-- }
-- pLed->bLedBlinkInProgress = false;
-- }
-- else
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else
-- {
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
-- }
-- }
-- break;
--
-- case LED_BLINK_WPS:
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
-- break;
--
-- case LED_BLINK_WPS_STOP: //WPS success
-- if(pLed->BlinkingLedState == RTW_LED_ON)
-- {
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);
-- bStopBlinking = false;
-- }
-- else
-- {
-- bStopBlinking = true;
-- }
--
-- if(bStopBlinking)
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on )
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else
-- {
-- pLed->CurrLedState = RTW_LED_ON;
-- pLed->BlinkingLedState = RTW_LED_ON;
-- SwLedOn(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
-- }
-- pLed->bLedWPSBlinkInProgress = false;
-- }
-- break;
--
--
-- default:
-- break;
-- }
--
--}
--
--
--static void
--SwLedBlink4(
-- PLED_SDIO pLed
-- )
--{
-- _adapter *padapter = pLed->padapter;
-- struct led_priv *ledpriv = &(padapter->ledpriv);
-- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-- PLED_SDIO pLed1 = &(ledpriv->SwLed1);
-- u8 bStopBlinking = false;
--
-- // Change LED according to BlinkingLedState specified.
-- if( pLed->BlinkingLedState == RTW_LED_ON )
-- {
-- SwLedOn(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
-- }
-- else
-- {
-- SwLedOff(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
-- }
--
-- if(!pLed1->bLedWPSBlinkInProgress && pLed1->BlinkingLedState == LED_UNKNOWN)
-- {
-- pLed1->BlinkingLedState = RTW_LED_OFF;
-- pLed1->CurrLedState = RTW_LED_OFF;
-- SwLedOff(padapter, pLed1);
-- }
--
-- switch(pLed->CurrLedState)
-- {
-- case LED_BLINK_SLOWLY:
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
-- break;
--
-- case LED_BLINK_StartToBlink:
-- if( pLed->bLedOn )
-- {
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
-- }
-- else
-- {
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
-- }
-- break;
--
-- case LED_BLINK_SCAN:
-- pLed->BlinkTimes--;
-- if( pLed->BlinkTimes == 0 )
-- {
-- bStopBlinking = false;
-- }
--
-- if(bStopBlinking)
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else
-- {
-- pLed->bLedNoLinkBlinkInProgress = false;
-- pLed->CurrLedState = LED_BLINK_SLOWLY;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
-- }
-- pLed->bLedScanBlinkInProgress = false;
-- }
-- else
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else
-- {
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
-- }
-- }
-- break;
--
-- case LED_BLINK_TXRX:
-- pLed->BlinkTimes--;
-- if( pLed->BlinkTimes == 0 )
-- {
-- bStopBlinking = true;
-- }
-- if(bStopBlinking)
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else
-- {
-- pLed->bLedNoLinkBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_SLOWLY;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
-- }
-- pLed->bLedBlinkInProgress = false;
-- }
-- else
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else
-- {
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
-- }
-- }
-- break;
--
-- case LED_BLINK_WPS:
-- if( pLed->bLedOn )
-- {
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
-- }
-- else
-- {
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
-- }
-- break;
--
-- case LED_BLINK_WPS_STOP: //WPS authentication fail
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
--
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
-- break;
--
-- case LED_BLINK_WPS_STOP_OVERLAP: //WPS session overlap
-- pLed->BlinkTimes--;
-- if(pLed->BlinkTimes == 0)
-- {
-- if(pLed->bLedOn)
-- {
-- pLed->BlinkTimes = 1;
-- }
-- else
-- {
-- bStopBlinking = true;
-- }
-- }
--
-- if(bStopBlinking)
-- {
-- pLed->BlinkTimes = 10;
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
-- }
-- else
-- {
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
--
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
-- }
-- break;
--
-- default:
-- break;
-- }
--
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink4 CurrLedState %d\n", pLed->CurrLedState));
--
--
--}
--
--static void
--SwLedBlink5(
-- PLED_SDIO pLed
-- )
--{
-- _adapter *padapter = pLed->padapter;
-- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-- u8 bStopBlinking = false;
--
-- // Change LED according to BlinkingLedState specified.
-- if( pLed->BlinkingLedState == RTW_LED_ON )
-- {
-- SwLedOn(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
-- }
-- else
-- {
-- SwLedOff(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
-- }
--
-- switch(pLed->CurrLedState)
-- {
-- case LED_BLINK_SCAN:
-- pLed->BlinkTimes--;
-- if( pLed->BlinkTimes == 0 )
-- {
-- bStopBlinking = true;
-- }
--
-- if(bStopBlinking)
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
-- {
-- pLed->CurrLedState = RTW_LED_OFF;
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- if(pLed->bLedOn)
-- SwLedOff(padapter, pLed);
-- }
-- else
-- { pLed->CurrLedState = RTW_LED_ON;
-- pLed->BlinkingLedState = RTW_LED_ON;
-- if(!pLed->bLedOn)
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
-- }
--
-- pLed->bLedScanBlinkInProgress = false;
-- }
-- else
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else
-- {
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
-- }
-- }
-- break;
--
--
-- case LED_BLINK_TXRX:
-- pLed->BlinkTimes--;
-- if( pLed->BlinkTimes == 0 )
-- {
-- bStopBlinking = true;
-- }
--
-- if(bStopBlinking)
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
-- {
-- pLed->CurrLedState = RTW_LED_OFF;
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- if(pLed->bLedOn)
-- SwLedOff(padapter, pLed);
-- }
-- else
-- {
-- pLed->CurrLedState = RTW_LED_ON;
-- pLed->BlinkingLedState = RTW_LED_ON;
-- if(!pLed->bLedOn)
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
-- }
--
-- pLed->bLedBlinkInProgress = false;
-- }
-- else
-- {
-- if( adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on && adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS)
-- {
-- SwLedOff(padapter, pLed);
-- }
-- else
-- {
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
-- }
-- }
-- break;
--
-- default:
-- break;
-- }
--
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("SwLedBlink5 CurrLedState %d\n", pLed->CurrLedState));
--
--
--}
--
--static void
--SwLedBlink6(
-- PLED_SDIO pLed
-- )
--{
-- _adapter *padapter = pLed->padapter;
-- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-- u8 bStopBlinking = false;
--
-- // Change LED according to BlinkingLedState specified.
-- if( pLed->BlinkingLedState == RTW_LED_ON )
-- {
-- SwLedOn(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn on\n", pLed->BlinkTimes));
-- }
-- else
-- {
-- SwLedOff(padapter, pLed);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Blinktimes (%d): turn off\n", pLed->BlinkTimes));
-- }
--
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("<==== blink6\n"));
--}
--
--//
--// Description:
--// Handler function of LED Blinking.
--// We dispatch acture LED blink action according to LedStrategy.
--//
--void BlinkHandler(PLED_SDIO pLed)
--{
-- _adapter *padapter = pLed->padapter;
-- struct led_priv *ledpriv = &(padapter->ledpriv);
--
-- //DBG_871X("%s (%s:%d)\n",__FUNCTION__, current->comm, current->pid);
--
-- if( (padapter->bSurpriseRemoved == true) || ( padapter->bDriverStopped == true))
-- {
-- //DBG_871X("%s bSurpriseRemoved:%d, bDriverStopped:%d\n", __FUNCTION__, padapter->bSurpriseRemoved, padapter->bDriverStopped);
-- return;
-- }
--
-- switch(ledpriv->LedStrategy)
-- {
-- case SW_LED_MODE0:
-- SwLedBlink(pLed);
-- break;
--
-- case SW_LED_MODE1:
-- SwLedBlink1(pLed);
-- break;
--
-- case SW_LED_MODE2:
-- SwLedBlink2(pLed);
-- break;
--
-- case SW_LED_MODE3:
-- SwLedBlink3(pLed);
-- break;
--
-- case SW_LED_MODE4:
-- SwLedBlink4(pLed);
-- break;
--
-- case SW_LED_MODE5:
-- SwLedBlink5(pLed);
-- break;
--
-- case SW_LED_MODE6:
-- SwLedBlink6(pLed);
-- break;
--
-- default:
-- //RT_TRACE(COMP_LED, DBG_LOUD, ("BlinkWorkItemCallback 0x%x \n", pHalData->LedStrategy));
-- //SwLedBlink(pLed);
-- break;
-- }
--}
--
--//
--// Description:
--// Callback function of LED BlinkTimer,
--// it just schedules to corresponding BlinkWorkItem/led_blink_hdl
--//
--void BlinkTimerCallback(void *data)
--{
-- PLED_SDIO pLed = (PLED_SDIO)data;
-- _adapter *padapter = pLed->padapter;
--
-- //DBG_871X("%s\n", __FUNCTION__);
--
-- if( (padapter->bSurpriseRemoved == true) || ( padapter->bDriverStopped == true))
-- {
-- //DBG_871X("%s bSurpriseRemoved:%d, bDriverStopped:%d\n", __FUNCTION__, padapter->bSurpriseRemoved, padapter->bDriverStopped);
-- return;
-- }
--
-- _set_workitem(&(pLed->BlinkWorkItem));
--}
--
--//
--// Description:
--// Callback function of LED BlinkWorkItem.
--// We dispatch acture LED blink action according to LedStrategy.
--//
--void BlinkWorkItemCallback(_workitem *work)
--{
-- PLED_SDIO pLed = container_of(work, LED_SDIO, BlinkWorkItem);
-- BlinkHandler(pLed);
--}
--
--static void
--SwLedControlMode0(
-- _adapter *padapter,
-- LED_CTL_MODE LedAction
--)
--{
-- struct led_priv *ledpriv = &(padapter->ledpriv);
-- PLED_SDIO pLed = &(ledpriv->SwLed1);
--
-- // Decide led state
-- switch(LedAction)
-- {
-- case LED_CTL_TX:
-- case LED_CTL_RX:
-- if( pLed->bLedBlinkInProgress == false )
-- {
-- pLed->bLedBlinkInProgress = true;
--
-- pLed->CurrLedState = LED_BLINK_NORMAL;
-- pLed->BlinkTimes = 2;
--
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
-- }
-- break;
--
-- case LED_CTL_START_TO_LINK:
-- if( pLed->bLedBlinkInProgress == false )
-- {
-- pLed->bLedBlinkInProgress = true;
--
-- pLed->CurrLedState = LED_BLINK_StartToBlink;
-- pLed->BlinkTimes = 24;
--
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
-- }
-- else
-- {
-- pLed->CurrLedState = LED_BLINK_StartToBlink;
-- }
-- break;
--
-- case LED_CTL_LINK:
-- pLed->CurrLedState = RTW_LED_ON;
-- if( pLed->bLedBlinkInProgress == false )
-- {
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), 0);
-- }
-- break;
--
-- case LED_CTL_NO_LINK:
-- pLed->CurrLedState = RTW_LED_OFF;
-- if( pLed->bLedBlinkInProgress == false )
-- {
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- _set_timer(&(pLed->BlinkTimer), 0);
-- }
-- break;
--
-- case LED_CTL_POWER_OFF:
-- pLed->CurrLedState = RTW_LED_OFF;
-- if(pLed->bLedBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- SwLedOff(padapter, pLed);
-- break;
--
-- case LED_CTL_START_WPS:
-- if( pLed->bLedBlinkInProgress == false || pLed->CurrLedState == RTW_LED_ON)
-- {
-- pLed->bLedBlinkInProgress = true;
--
-- pLed->CurrLedState = LED_BLINK_WPS;
-- pLed->BlinkTimes = 20;
--
-- if( pLed->bLedOn )
-- {
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);
-- }
-- else
-- {
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_LONG_INTERVAL);
-- }
-- }
-- break;
--
-- case LED_CTL_STOP_WPS:
-- if(pLed->bLedBlinkInProgress)
-- {
-- pLed->CurrLedState = RTW_LED_OFF;
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- break;
--
--
-- default:
-- break;
-- }
--
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));
--
--}
--
-- //ALPHA, added by chiyoko, 20090106
--static void
--SwLedControlMode1(
-- _adapter *padapter,
-- LED_CTL_MODE LedAction
--)
--{
-- struct led_priv *ledpriv = &(padapter->ledpriv);
-- PLED_SDIO pLed = &(ledpriv->SwLed0);
-- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-- EEPROM_EFUSE_PRIV *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter);
--
-- if(pEEPROM->CustomerID == RT_CID_819x_CAMEO)
-- pLed = &(ledpriv->SwLed1);
--
-- switch(LedAction)
-- {
-- case LED_CTL_POWER_ON:
-- case LED_CTL_START_TO_LINK:
-- case LED_CTL_NO_LINK:
-- if( pLed->bLedNoLinkBlinkInProgress == false )
-- {
-- if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
-- {
-- return;
-- }
-- if( pLed->bLedLinkBlinkInProgress == true )
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedLinkBlinkInProgress = false;
-- }
-- if(pLed->bLedBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
--
-- pLed->bLedNoLinkBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_SLOWLY;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
-- }
-- break;
--
-- case LED_CTL_LINK:
-- if( pLed->bLedLinkBlinkInProgress == false )
-- {
-- if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
-- {
-- return;
-- }
-- if(pLed->bLedNoLinkBlinkInProgress == true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedNoLinkBlinkInProgress = false;
-- }
-- if(pLed->bLedBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- pLed->bLedLinkBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_NORMAL;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_LINK_INTERVAL_ALPHA);
-- }
-- break;
--
-- case LED_CTL_SITE_SURVEY:
-- if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== true))
-- ;
-- else if(pLed->bLedScanBlinkInProgress ==false)
-- {
-- if(IS_LED_WPS_BLINKING(pLed))
-- return;
--
-- if(pLed->bLedNoLinkBlinkInProgress == true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedNoLinkBlinkInProgress = false;
-- }
-- if( pLed->bLedLinkBlinkInProgress == true )
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedLinkBlinkInProgress = false;
-- }
-- if(pLed->bLedBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- pLed->bLedScanBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_SCAN;
-- pLed->BlinkTimes = 24;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
--
-- }
-- break;
--
-- case LED_CTL_TX:
-- case LED_CTL_RX:
-- if(pLed->bLedBlinkInProgress ==false)
-- {
-- if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
-- {
-- return;
-- }
-- if(pLed->bLedNoLinkBlinkInProgress == true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedNoLinkBlinkInProgress = false;
-- }
-- if( pLed->bLedLinkBlinkInProgress == true )
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedLinkBlinkInProgress = false;
-- }
-- pLed->bLedBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_TXRX;
-- pLed->BlinkTimes = 2;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
-- }
-- break;
--
-- case LED_CTL_START_WPS: //wait until xinpin finish
-- case LED_CTL_START_WPS_BOTTON:
-- if(pLed->bLedWPSBlinkInProgress ==false)
-- {
-- if(pLed->bLedNoLinkBlinkInProgress == true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedNoLinkBlinkInProgress = false;
-- }
-- if( pLed->bLedLinkBlinkInProgress == true )
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedLinkBlinkInProgress = false;
-- }
-- if(pLed->bLedBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- if(pLed->bLedScanBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedScanBlinkInProgress = false;
-- }
-- pLed->bLedWPSBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_WPS;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
-- }
-- break;
--
--
-- case LED_CTL_STOP_WPS:
-- if(pLed->bLedNoLinkBlinkInProgress == true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedNoLinkBlinkInProgress = false;
-- }
-- if( pLed->bLedLinkBlinkInProgress == true )
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedLinkBlinkInProgress = false;
-- }
-- if(pLed->bLedBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- if(pLed->bLedScanBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedScanBlinkInProgress = false;
-- }
-- if(pLed->bLedWPSBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- }
-- else
-- {
-- pLed->bLedWPSBlinkInProgress = true;
-- }
--
-- pLed->CurrLedState = LED_BLINK_WPS_STOP;
-- if(pLed->bLedOn)
-- {
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);
-- }
-- else
-- {
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), 0);
-- }
-- break;
--
-- case LED_CTL_STOP_WPS_FAIL:
-- if(pLed->bLedWPSBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedWPSBlinkInProgress = false;
-- }
--
-- pLed->bLedNoLinkBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_SLOWLY;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
-- break;
--
-- case LED_CTL_POWER_OFF:
-- pLed->CurrLedState = RTW_LED_OFF;
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- if( pLed->bLedNoLinkBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedNoLinkBlinkInProgress = false;
-- }
-- if( pLed->bLedLinkBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedLinkBlinkInProgress = false;
-- }
-- if( pLed->bLedBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- if( pLed->bLedWPSBlinkInProgress )
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedWPSBlinkInProgress = false;
-- }
-- if( pLed->bLedScanBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedScanBlinkInProgress = false;
-- }
--
-- SwLedOff(padapter, pLed);
-- break;
--
-- default:
-- break;
--
-- }
--
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));
--}
--
-- //Arcadyan/Sitecom , added by chiyoko, 20090216
--static void
--SwLedControlMode2(
-- _adapter *padapter,
-- LED_CTL_MODE LedAction
--)
--{
-- struct led_priv *ledpriv = &(padapter->ledpriv);
-- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-- PLED_SDIO pLed = &(ledpriv->SwLed0);
--
-- switch(LedAction)
-- {
-- case LED_CTL_SITE_SURVEY:
-- if(pmlmepriv->LinkDetectInfo.bBusyTraffic)
-- ;
-- else if(pLed->bLedScanBlinkInProgress ==false)
-- {
-- if(IS_LED_WPS_BLINKING(pLed))
-- return;
--
-- if(pLed->bLedBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- pLed->bLedScanBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_SCAN;
-- pLed->BlinkTimes = 24;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
-- }
-- break;
--
-- case LED_CTL_TX:
-- case LED_CTL_RX:
-- if((pLed->bLedBlinkInProgress ==false) && (check_fwstate(pmlmepriv, _FW_LINKED)== true))
-- {
-- if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
-- {
-- return;
-- }
--
-- pLed->bLedBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_TXRX;
-- pLed->BlinkTimes = 2;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
-- }
-- break;
--
-- case LED_CTL_LINK:
-- pLed->CurrLedState = RTW_LED_ON;
-- pLed->BlinkingLedState = RTW_LED_ON;
-- if( pLed->bLedBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- if( pLed->bLedScanBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedScanBlinkInProgress = false;
-- }
--
-- _set_timer(&(pLed->BlinkTimer), 0);
-- break;
--
-- case LED_CTL_START_WPS: //wait until xinpin finish
-- case LED_CTL_START_WPS_BOTTON:
-- if(pLed->bLedWPSBlinkInProgress ==false)
-- {
-- if(pLed->bLedBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- if(pLed->bLedScanBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedScanBlinkInProgress = false;
-- }
-- pLed->bLedWPSBlinkInProgress = true;
-- pLed->CurrLedState = RTW_LED_ON;
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), 0);
-- }
-- break;
--
-- case LED_CTL_STOP_WPS:
-- pLed->bLedWPSBlinkInProgress = false;
-- if(adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on)
-- {
-- pLed->CurrLedState = RTW_LED_OFF;
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- _set_timer(&(pLed->BlinkTimer), 0);
-- }
-- else
-- {
-- pLed->CurrLedState = RTW_LED_ON;
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), 0);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
-- }
-- break;
--
-- case LED_CTL_STOP_WPS_FAIL:
-- pLed->bLedWPSBlinkInProgress = false;
-- pLed->CurrLedState = RTW_LED_OFF;
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- _set_timer(&(pLed->BlinkTimer), 0);
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
-- break;
--
-- case LED_CTL_START_TO_LINK:
-- case LED_CTL_NO_LINK:
-- if(!IS_LED_BLINKING(pLed))
-- {
-- pLed->CurrLedState = RTW_LED_OFF;
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- _set_timer(&(pLed->BlinkTimer), 0);
-- }
-- break;
--
-- case LED_CTL_POWER_OFF:
-- pLed->CurrLedState = RTW_LED_OFF;
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- if( pLed->bLedBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- if( pLed->bLedScanBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedScanBlinkInProgress = false;
-- }
-- if( pLed->bLedWPSBlinkInProgress )
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedWPSBlinkInProgress = false;
-- }
--
-- SwLedOff(padapter, pLed);
-- break;
--
-- default:
-- break;
--
-- }
--
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
--}
--
-- //COREGA, added by chiyoko, 20090316
-- static void
-- SwLedControlMode3(
-- _adapter *padapter,
-- LED_CTL_MODE LedAction
--)
--{
-- struct led_priv *ledpriv = &(padapter->ledpriv);
-- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-- PLED_SDIO pLed = &(ledpriv->SwLed0);
--
-- switch(LedAction)
-- {
-- case LED_CTL_SITE_SURVEY:
-- if(pmlmepriv->LinkDetectInfo.bBusyTraffic)
-- ;
-- else if(pLed->bLedScanBlinkInProgress ==false)
-- {
-- if(IS_LED_WPS_BLINKING(pLed))
-- return;
--
-- if(pLed->bLedBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- pLed->bLedScanBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_SCAN;
-- pLed->BlinkTimes = 24;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
-- }
-- break;
--
-- case LED_CTL_TX:
-- case LED_CTL_RX:
-- if((pLed->bLedBlinkInProgress ==false) && (check_fwstate(pmlmepriv, _FW_LINKED)== true))
-- {
-- if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
-- {
-- return;
-- }
--
-- pLed->bLedBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_TXRX;
-- pLed->BlinkTimes = 2;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
-- }
-- break;
--
-- case LED_CTL_LINK:
-- if(IS_LED_WPS_BLINKING(pLed))
-- return;
--
-- pLed->CurrLedState = RTW_LED_ON;
-- pLed->BlinkingLedState = RTW_LED_ON;
-- if( pLed->bLedBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- if( pLed->bLedScanBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedScanBlinkInProgress = false;
-- }
--
-- _set_timer(&(pLed->BlinkTimer), 0);
-- break;
--
-- case LED_CTL_START_WPS: //wait until xinpin finish
-- case LED_CTL_START_WPS_BOTTON:
-- if(pLed->bLedWPSBlinkInProgress ==false)
-- {
-- if(pLed->bLedBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- if(pLed->bLedScanBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedScanBlinkInProgress = false;
-- }
-- pLed->bLedWPSBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_WPS;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
-- }
-- break;
--
-- case LED_CTL_STOP_WPS:
-- if(pLed->bLedWPSBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedWPSBlinkInProgress = false;
-- }
-- else
-- {
-- pLed->bLedWPSBlinkInProgress = true;
-- }
--
-- pLed->CurrLedState = LED_BLINK_WPS_STOP;
-- if(pLed->bLedOn)
-- {
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA);
-- }
-- else
-- {
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), 0);
-- }
--
-- break;
--
-- case LED_CTL_STOP_WPS_FAIL:
-- if(pLed->bLedWPSBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedWPSBlinkInProgress = false;
-- }
--
-- pLed->CurrLedState = RTW_LED_OFF;
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- _set_timer(&(pLed->BlinkTimer), 0);
-- break;
--
-- case LED_CTL_START_TO_LINK:
-- case LED_CTL_NO_LINK:
-- if(!IS_LED_BLINKING(pLed))
-- {
-- pLed->CurrLedState = RTW_LED_OFF;
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- _set_timer(&(pLed->BlinkTimer), 0);
-- }
-- break;
--
-- case LED_CTL_POWER_OFF:
-- pLed->CurrLedState = RTW_LED_OFF;
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- if( pLed->bLedBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- if( pLed->bLedScanBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedScanBlinkInProgress = false;
-- }
-- if( pLed->bLedWPSBlinkInProgress )
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedWPSBlinkInProgress = false;
-- }
--
-- SwLedOff(padapter, pLed);
-- break;
--
-- default:
-- break;
--
-- }
--
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("CurrLedState %d\n", pLed->CurrLedState));
--}
--
--
-- //Edimax-Belkin, added by chiyoko, 20090413
--static void
--SwLedControlMode4(
-- _adapter *padapter,
-- LED_CTL_MODE LedAction
--)
--{
-- struct led_priv *ledpriv = &(padapter->ledpriv);
-- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-- PLED_SDIO pLed = &(ledpriv->SwLed0);
-- PLED_SDIO pLed1 = &(ledpriv->SwLed1);
--
-- switch(LedAction)
-- {
-- case LED_CTL_START_TO_LINK:
-- if(pLed1->bLedWPSBlinkInProgress)
-- {
-- pLed1->bLedWPSBlinkInProgress = false;
-- _cancel_timer_ex(&(pLed1->BlinkTimer));
--
-- pLed1->BlinkingLedState = RTW_LED_OFF;
-- pLed1->CurrLedState = RTW_LED_OFF;
--
-- if(pLed1->bLedOn)
-- _set_timer(&(pLed->BlinkTimer), 0);
-- }
--
-- if( pLed->bLedStartToLinkBlinkInProgress == false )
-- {
-- if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
-- {
-- return;
-- }
-- if(pLed->bLedBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- if(pLed->bLedNoLinkBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedNoLinkBlinkInProgress = false;
-- }
--
-- pLed->bLedStartToLinkBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_StartToBlink;
-- if( pLed->bLedOn )
-- {
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
-- }
-- else
-- {
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
-- }
-- }
-- break;
--
-- case LED_CTL_LINK:
-- case LED_CTL_NO_LINK:
-- //LED1 settings
-- if(LedAction == LED_CTL_LINK)
-- {
-- if(pLed1->bLedWPSBlinkInProgress)
-- {
-- pLed1->bLedWPSBlinkInProgress = false;
-- _cancel_timer_ex(&(pLed1->BlinkTimer));
--
-- pLed1->BlinkingLedState = RTW_LED_OFF;
-- pLed1->CurrLedState = RTW_LED_OFF;
--
-- if(pLed1->bLedOn)
-- _set_timer(&(pLed->BlinkTimer), 0);
-- }
-- }
--
-- if( pLed->bLedNoLinkBlinkInProgress == false )
-- {
-- if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
-- {
-- return;
-- }
-- if(pLed->bLedBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
--
-- pLed->bLedNoLinkBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_SLOWLY;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
-- }
-- break;
--
-- case LED_CTL_SITE_SURVEY:
-- if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== true))
-- ;
-- else if(pLed->bLedScanBlinkInProgress ==false)
-- {
-- if(IS_LED_WPS_BLINKING(pLed))
-- return;
--
-- if(pLed->bLedNoLinkBlinkInProgress == true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedNoLinkBlinkInProgress = false;
-- }
-- if(pLed->bLedBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- pLed->bLedScanBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_SCAN;
-- pLed->BlinkTimes = 24;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
-- }
-- break;
--
-- case LED_CTL_TX:
-- case LED_CTL_RX:
-- if(pLed->bLedBlinkInProgress ==false)
-- {
-- if(pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed))
-- {
-- return;
-- }
-- if(pLed->bLedNoLinkBlinkInProgress == true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedNoLinkBlinkInProgress = false;
-- }
-- pLed->bLedBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_TXRX;
-- pLed->BlinkTimes = 2;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
-- }
-- break;
--
-- case LED_CTL_START_WPS: //wait until xinpin finish
-- case LED_CTL_START_WPS_BOTTON:
-- if(pLed1->bLedWPSBlinkInProgress)
-- {
-- pLed1->bLedWPSBlinkInProgress = false;
-- _cancel_timer_ex(&(pLed1->BlinkTimer));
--
-- pLed1->BlinkingLedState = RTW_LED_OFF;
-- pLed1->CurrLedState = RTW_LED_OFF;
--
-- if(pLed1->bLedOn)
-- _set_timer(&(pLed->BlinkTimer), 0);
-- }
--
-- if(pLed->bLedWPSBlinkInProgress ==false)
-- {
-- if(pLed->bLedNoLinkBlinkInProgress == true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedNoLinkBlinkInProgress = false;
-- }
-- if(pLed->bLedBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- if(pLed->bLedScanBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedScanBlinkInProgress = false;
-- }
-- pLed->bLedWPSBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_WPS;
-- if( pLed->bLedOn )
-- {
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SLOWLY_INTERVAL);
-- }
-- else
-- {
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
-- }
-- }
-- break;
--
-- case LED_CTL_STOP_WPS: //WPS connect success
-- if(pLed->bLedWPSBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedWPSBlinkInProgress = false;
-- }
--
-- pLed->bLedNoLinkBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_SLOWLY;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
--
-- break;
--
-- case LED_CTL_STOP_WPS_FAIL: //WPS authentication fail
-- if(pLed->bLedWPSBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedWPSBlinkInProgress = false;
-- }
--
-- pLed->bLedNoLinkBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_SLOWLY;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
--
-- //LED1 settings
-- if(pLed1->bLedWPSBlinkInProgress)
-- _cancel_timer_ex(&(pLed1->BlinkTimer));
-- else
-- pLed1->bLedWPSBlinkInProgress = true;
--
-- pLed1->CurrLedState = LED_BLINK_WPS_STOP;
-- if( pLed1->bLedOn )
-- pLed1->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed1->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
--
-- break;
--
-- case LED_CTL_STOP_WPS_FAIL_OVERLAP: //WPS session overlap
-- if(pLed->bLedWPSBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedWPSBlinkInProgress = false;
-- }
--
-- pLed->bLedNoLinkBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_SLOWLY;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NO_LINK_INTERVAL_ALPHA);
--
-- //LED1 settings
-- if(pLed1->bLedWPSBlinkInProgress)
-- _cancel_timer_ex(&(pLed1->BlinkTimer));
-- else
-- pLed1->bLedWPSBlinkInProgress = true;
--
-- pLed1->CurrLedState = LED_BLINK_WPS_STOP_OVERLAP;
-- pLed1->BlinkTimes = 10;
-- if( pLed1->bLedOn )
-- pLed1->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed1->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_NORMAL_INTERVAL);
--
-- break;
--
-- case LED_CTL_POWER_OFF:
-- pLed->CurrLedState = RTW_LED_OFF;
-- pLed->BlinkingLedState = RTW_LED_OFF;
--
-- if( pLed->bLedNoLinkBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedNoLinkBlinkInProgress = false;
-- }
-- if( pLed->bLedLinkBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedLinkBlinkInProgress = false;
-- }
-- if( pLed->bLedBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- if( pLed->bLedWPSBlinkInProgress )
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedWPSBlinkInProgress = false;
-- }
-- if( pLed->bLedScanBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedScanBlinkInProgress = false;
-- }
-- if( pLed->bLedStartToLinkBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedStartToLinkBlinkInProgress = false;
-- }
--
-- if( pLed1->bLedWPSBlinkInProgress )
-- {
-- _cancel_timer_ex(&(pLed1->BlinkTimer));
-- pLed1->bLedWPSBlinkInProgress = false;
-- }
--
-- pLed1->BlinkingLedState = LED_UNKNOWN;
-- SwLedOff(padapter, pLed);
-- SwLedOff(padapter, pLed1);
-- break;
--
-- default:
-- break;
--
-- }
--
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));
--}
--
--
--
-- //Sercomm-Belkin, added by chiyoko, 20090415
--static void
--SwLedControlMode5(
-- _adapter *padapter,
-- LED_CTL_MODE LedAction
--)
--{
-- struct led_priv *ledpriv = &(padapter->ledpriv);
-- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-- EEPROM_EFUSE_PRIV *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter);
-- PLED_SDIO pLed = &(ledpriv->SwLed0);
--
-- if(pEEPROM->CustomerID == RT_CID_819x_CAMEO)
-- pLed = &(ledpriv->SwLed1);
--
-- switch(LedAction)
-- {
-- case LED_CTL_POWER_ON:
-- case LED_CTL_NO_LINK:
-- case LED_CTL_LINK: //solid blue
-- pLed->CurrLedState = RTW_LED_ON;
-- pLed->BlinkingLedState = RTW_LED_ON;
--
-- _set_timer(&(pLed->BlinkTimer), 0);
-- break;
--
-- case LED_CTL_SITE_SURVEY:
-- if((pmlmepriv->LinkDetectInfo.bBusyTraffic) && (check_fwstate(pmlmepriv, _FW_LINKED)== true))
-- ;
-- else if(pLed->bLedScanBlinkInProgress ==false)
-- {
-- if(pLed->bLedBlinkInProgress ==true)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
-- pLed->bLedScanBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_SCAN;
-- pLed->BlinkTimes = 24;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_SCAN_INTERVAL_ALPHA);
-- }
-- break;
--
-- case LED_CTL_TX:
-- case LED_CTL_RX:
-- if(pLed->bLedBlinkInProgress ==false)
-- {
-- if(pLed->CurrLedState == LED_BLINK_SCAN)
-- {
-- return;
-- }
-- pLed->bLedBlinkInProgress = true;
-- pLed->CurrLedState = LED_BLINK_TXRX;
-- pLed->BlinkTimes = 2;
-- if( pLed->bLedOn )
-- pLed->BlinkingLedState = RTW_LED_OFF;
-- else
-- pLed->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed->BlinkTimer), LED_BLINK_FASTER_INTERVAL_ALPHA);
-- }
-- break;
--
-- case LED_CTL_POWER_OFF:
-- pLed->CurrLedState = RTW_LED_OFF;
-- pLed->BlinkingLedState = RTW_LED_OFF;
--
-- if( pLed->bLedBlinkInProgress)
-- {
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- pLed->bLedBlinkInProgress = false;
-- }
--
-- SwLedOff(padapter, pLed);
-- break;
--
-- default:
-- break;
--
-- }
--
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("Led %d\n", pLed->CurrLedState));
--}
--
-- //WNC-Corega, added by chiyoko, 20090902
--static void
--SwLedControlMode6(
-- _adapter *padapter,
-- LED_CTL_MODE LedAction
--)
--{
-- struct led_priv *ledpriv = &(padapter->ledpriv);
-- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-- PLED_SDIO pLed0 = &(ledpriv->SwLed0);
--
-- switch(LedAction)
-- {
-- case LED_CTL_POWER_ON:
-- case LED_CTL_LINK:
-- case LED_CTL_NO_LINK:
-- _cancel_timer_ex(&(pLed0->BlinkTimer));
-- pLed0->CurrLedState = RTW_LED_ON;
-- pLed0->BlinkingLedState = RTW_LED_ON;
-- _set_timer(&(pLed0->BlinkTimer), 0);
-- break;
--
-- case LED_CTL_POWER_OFF:
-- SwLedOff(padapter, pLed0);
-- break;
--
-- default:
-- break;
-- }
--
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("ledcontrol 6 Led %d\n", pLed0->CurrLedState));
--}
--
--void
--LedControlSDIO(
-- _adapter *padapter,
-- LED_CTL_MODE LedAction
-- )
--{
-- struct led_priv *ledpriv = &(padapter->ledpriv);
--
-- if( (padapter->bSurpriseRemoved == true) ||(padapter->hw_init_completed == false) )
-- {
-- return;
-- }
--
-- if( ledpriv->bRegUseLed == false)
-- return;
--
-- //if(priv->bInHctTest)
-- // return;
--
-- if( (adapter_to_pwrctl(padapter)->rf_pwrstate != rf_on &&
-- adapter_to_pwrctl(padapter)->rfoff_reason > RF_CHANGE_BY_PS) &&
-- (LedAction == LED_CTL_TX || LedAction == LED_CTL_RX ||
-- LedAction == LED_CTL_SITE_SURVEY ||
-- LedAction == LED_CTL_LINK ||
-- LedAction == LED_CTL_NO_LINK ||
-- LedAction == LED_CTL_POWER_ON) )
-- {
-- return;
-- }
--
-- switch(ledpriv->LedStrategy)
-- {
-- case SW_LED_MODE0:
-- SwLedControlMode0(padapter, LedAction);
-- break;
--
-- case SW_LED_MODE1:
-- SwLedControlMode1(padapter, LedAction);
-- break;
-- case SW_LED_MODE2:
-- SwLedControlMode2(padapter, LedAction);
-- break;
--
-- case SW_LED_MODE3:
-- SwLedControlMode3(padapter, LedAction);
-- break;
--
-- case SW_LED_MODE4:
-- SwLedControlMode4(padapter, LedAction);
-- break;
--
-- case SW_LED_MODE5:
-- SwLedControlMode5(padapter, LedAction);
-- break;
--
-- case SW_LED_MODE6:
-- SwLedControlMode6(padapter, LedAction);
-- break;
--
-- default:
-- break;
-- }
--
-- RT_TRACE(_module_rtl8712_led_c_,_drv_info_,("LedStrategy:%d, LedAction %d\n", ledpriv->LedStrategy,LedAction));
--}
--
--//
--// Description:
--// Reset status of LED_871x object.
--//
--void ResetLedStatus(PLED_SDIO pLed) {
--
-- pLed->CurrLedState = RTW_LED_OFF; // Current LED state.
-- pLed->bLedOn = false; // true if LED is ON, false if LED is OFF.
--
-- pLed->bLedBlinkInProgress = false; // true if it is blinking, false o.w..
-- pLed->bLedWPSBlinkInProgress = false;
--
-- pLed->BlinkTimes = 0; // Number of times to toggle led state for blinking.
-- pLed->BlinkingLedState = LED_UNKNOWN; // Next state for blinking, either RTW_LED_ON or RTW_LED_OFF are.
--
-- pLed->bLedNoLinkBlinkInProgress = false;
-- pLed->bLedLinkBlinkInProgress = false;
-- pLed->bLedStartToLinkBlinkInProgress = false;
-- pLed->bLedScanBlinkInProgress = false;
--}
--
-- //
--// Description:
--// Initialize an LED_871x object.
--//
--void
--InitLed(
-- _adapter *padapter,
-- PLED_SDIO pLed,
-- LED_PIN LedPin
-- )
--{
-- pLed->padapter = padapter;
-- pLed->LedPin = LedPin;
--
-- ResetLedStatus(pLed);
--
-- _init_timer(&(pLed->BlinkTimer), padapter->pnetdev, BlinkTimerCallback, pLed);
--
-- _init_workitem(&(pLed->BlinkWorkItem), BlinkWorkItemCallback, pLed);
--}
--
--
--//
--// Description:
--// DeInitialize an LED_871x object.
--//
--void
--DeInitLed(
-- PLED_SDIO pLed
-- )
--{
-- _cancel_workitem_sync(&(pLed->BlinkWorkItem));
-- _cancel_timer_ex(&(pLed->BlinkTimer));
-- ResetLedStatus(pLed);
--}
--
--
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_AntDiv.c linux/3rdparty/rtl8723bs/hal/odm_AntDiv.c
---- linux/3rdparty/rtl8723bs.old/hal/odm_AntDiv.c 2015-05-10 14:36:05.704668302 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_AntDiv.c 1970-01-01 02:00:00.000000000 +0200
-@@ -1,79 +0,0 @@
--/******************************************************************************
-- *
-- * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or modify it
-- * under the terms of version 2 of the GNU General Public License as
-- * published by the Free Software Foundation.
-- *
-- * This program is distributed in the hope that it will be useful, but WITHOUT
-- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-- * more details.
-- *
-- * You should have received a copy of the GNU General Public License along with
-- * this program; if not, write to the Free Software Foundation, Inc.,
-- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-- *
-- *
-- ******************************************************************************/
--
--//============================================================
--// include files
--//============================================================
--
--#include "odm_precomp.h"
--
--//======================================================
--// when antenna test utility is on or some testing need to disable antenna diversity
--// call this function to disable all ODM related mechanisms which will switch antenna.
--//======================================================
--void
--ODM_StopAntennaSwitchDm(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
-- // disable ODM antenna diversity
-- pDM_Odm->SupportAbility &= ~ODM_BB_ANT_DIV;
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("STOP Antenna Diversity \n"));
--}
--
--void
--ODM_SetAntConfig(
-- IN PDM_ODM_T pDM_Odm,
-- IN u1Byte antSetting // 0=A, 1=B, 2=C, ....
-- )
--{
-- if(antSetting == 0) // ant A
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord, 0x00000000);
-- else if(antSetting == 1)
-- ODM_SetBBReg(pDM_Odm, 0x948, bMaskDWord, 0x00000280);
--}
--
--//======================================================
--
--
--void
--ODM_SwAntDivRestAfterLink(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
-- pSWAT_T pDM_SWAT_Table = &pDM_Odm->DM_SWAT_Table;
-- pFAT_T pDM_FatTable = &pDM_Odm->DM_FatTable;
-- u4Byte i;
--
-- pDM_Odm->RSSI_test = false;
-- pDM_SWAT_Table->try_flag = 0xff;
-- pDM_SWAT_Table->RSSI_Trying = 0;
-- pDM_SWAT_Table->Double_chk_flag= 0;
--
-- pDM_FatTable->RxIdleAnt=MAIN_ANT;
--
-- for (i=0; iMainAnt_Sum[i] = 0;
-- pDM_FatTable->AuxAnt_Sum[i] = 0;
-- pDM_FatTable->MainAnt_Cnt[i] = 0;
-- pDM_FatTable->AuxAnt_Cnt[i] = 0;
-- }
--}
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_AntDiv.h linux/3rdparty/rtl8723bs/hal/odm_AntDiv.h
---- linux/3rdparty/rtl8723bs.old/hal/odm_AntDiv.h 2015-05-10 14:36:05.704668302 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_AntDiv.h 2015-05-07 17:46:55.000000000 +0300
-@@ -40,14 +40,4 @@
- #define CANCEL_ANTDIV_TIMMER 1
- #define RELEASE_ANTDIV_TIMMER 2
-
--void
--ODM_StopAntennaSwitchDm(
-- IN PDM_ODM_T pDM_Odm
-- );
--void
--ODM_SetAntConfig(
-- IN PDM_ODM_T pDM_Odm,
-- IN u1Byte antSetting // 0=A, 1=B, 2=C, ....
-- );
--
- #endif //#ifndef __ODMANTDIV_H__
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm.c linux/3rdparty/rtl8723bs/hal/odm.c
---- linux/3rdparty/rtl8723bs.old/hal/odm.c 2015-05-10 14:36:05.705668313 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm.c 2015-05-07 17:46:55.000000000 +0300
-@@ -336,15 +336,6 @@ odm_CmnInfoInit_Debug(
- );
-
- void
--odm_CmnInfoHook_Debug(
-- IN PDM_ODM_T pDM_Odm
-- );
--
--void
--odm_CmnInfoUpdate_Debug(
-- IN PDM_ODM_T pDM_Odm
-- );
--void
- odm_BasicDbgMessage
- (
- IN PDM_ODM_T pDM_Odm
-@@ -363,20 +354,10 @@ odm_BasicDbgMessage
- //END---------BB POWER SAVE-----------------------//
-
- void
--odm_RefreshRateAdaptiveMaskMP(
-- IN PDM_ODM_T pDM_Odm
-- );
--
--void
- odm_RefreshRateAdaptiveMaskCE(
- IN PDM_ODM_T pDM_Odm
- );
-
--void
--odm_RefreshRateAdaptiveMaskAPADSL(
-- IN PDM_ODM_T pDM_Odm
-- );
--
- //Remove by YuChen
-
- void
-@@ -384,21 +365,10 @@ odm_RSSIMonitorInit(
- IN PDM_ODM_T pDM_Odm
- );
-
--void
--odm_RSSIMonitorCheckMP(
-- IN PDM_ODM_T pDM_Odm
-- );
--
- void
- odm_RSSIMonitorCheckCE(
- IN PDM_ODM_T pDM_Odm
- );
--void
--odm_RSSIMonitorCheckAP(
-- IN PDM_ODM_T pDM_Odm
-- );
--
--
-
- void
- odm_RSSIMonitorCheck(
-@@ -410,17 +380,6 @@ odm_SwAntDetectInit(
- IN PDM_ODM_T pDM_Odm
- );
-
--void
--odm_AntennaDiversityInit(
-- IN PDM_ODM_T pDM_Odm
-- );
--
--void
--odm_AntennaDiversity(
-- IN PDM_ODM_T pDM_Odm
-- );
--
--
- void odm_SwAntDivChkAntSwitchCallback(void *FunctionContext);
-
-
-@@ -431,11 +390,6 @@ odm_GlobalAdapterCheck(
- );
-
- void
--odm_RefreshBasicRateMask(
-- IN PDM_ODM_T pDM_Odm
-- );
--
--void
- odm_RefreshRateAdaptiveMask(
- IN PDM_ODM_T pDM_Odm
- );
-@@ -446,11 +400,6 @@ ODM_TXPowerTrackingCheck(
- );
-
- void
--odm_TXPowerTrackingCheckAP(
-- IN PDM_ODM_T pDM_Odm
-- );
--
--void
- odm_RateAdaptiveMaskInit(
- IN PDM_ODM_T pDM_Odm
- );
-@@ -467,12 +416,6 @@ odm_TXPowerTrackingInit(
- );
-
- void
--odm_TXPowerTrackingCheckMP(
-- IN PDM_ODM_T pDM_Odm
-- );
--
--
--void
- odm_TXPowerTrackingCheckCE(
- IN PDM_ODM_T pDM_Odm
- );
-@@ -536,7 +479,6 @@ ODM_DMInit(
- ODM_EdcaTurboInit(pDM_Odm);
- odm_RSSIMonitorInit(pDM_Odm);
- odm_TXPowerTrackingInit(pDM_Odm);
-- odm_AntennaDiversityInit(pDM_Odm);
-
- ODM_ClearTxPowerTrackingState(pDM_Odm);
-
-@@ -549,13 +491,6 @@ ODM_DMInit(
- odm_SwAntDetectInit(pDM_Odm);
- }
-
--void
--ODM_DMReset(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
--}
--
- //
- // 2011/09/20 MH This is the entry pointer for all team to execute HW out source DM.
- // You can not add any dummy function here, be care, you can only use DM structure
-@@ -605,11 +540,9 @@ ODM_DMWatchdog(
-
-
- odm_RefreshRateAdaptiveMask(pDM_Odm);
-- odm_RefreshBasicRateMask(pDM_Odm);
- odm_EdcaTurboCheck(pDM_Odm);
- odm_PathDiversity(pDM_Odm);
- ODM_CfoTracking(pDM_Odm);
-- odm_AntennaDiversity(pDM_Odm);
-
- ODM_TXPowerTrackingCheck(pDM_Odm);
-
-@@ -1035,8 +968,8 @@ odm_CommonInfoSelfInit(
- )
- {
- pFAT_T pDM_FatTable = &pDM_Odm->DM_FatTable;
-- pDM_Odm->bCckHighPower = (bool) ODM_GetBBReg(pDM_Odm, ODM_REG(CCK_RPT_FORMAT,pDM_Odm), ODM_BIT(CCK_RPT_FORMAT,pDM_Odm));
-- pDM_Odm->RFPathRxEnable = (u1Byte) ODM_GetBBReg(pDM_Odm, ODM_REG(BB_RX_PATH,pDM_Odm), ODM_BIT(BB_RX_PATH,pDM_Odm));
-+ pDM_Odm->bCckHighPower = (bool) PHY_QueryBBReg(pDM_Odm->Adapter, ODM_REG(CCK_RPT_FORMAT,pDM_Odm), ODM_BIT(CCK_RPT_FORMAT,pDM_Odm));
-+ pDM_Odm->RFPathRxEnable = (u1Byte) PHY_QueryBBReg(pDM_Odm->Adapter, ODM_REG(BB_RX_PATH,pDM_Odm), ODM_BIT(BB_RX_PATH,pDM_Odm));
-
- ODM_InitDebugSetting(pDM_Odm);
-
-@@ -1099,36 +1032,6 @@ odm_CmnInfoInit_Debug(
- }
-
- void
--odm_CmnInfoHook_Debug(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("odm_CmnInfoHook_Debug==>\n"));
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pNumTxBytesUnicast=%llu\n",*(pDM_Odm->pNumTxBytesUnicast)) );
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pNumRxBytesUnicast=%llu\n",*(pDM_Odm->pNumRxBytesUnicast)) );
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pWirelessMode=0x%x\n",*(pDM_Odm->pWirelessMode)) );
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pSecChOffset=%d\n",*(pDM_Odm->pSecChOffset)) );
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pSecurity=%d\n",*(pDM_Odm->pSecurity)) );
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pBandWidth=%d\n",*(pDM_Odm->pBandWidth)) );
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pChannel=%d\n",*(pDM_Odm->pChannel)) );
--
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pbScanInProcess=%d\n",*(pDM_Odm->pbScanInProcess)) );
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pbPowerSaving=%d\n",*(pDM_Odm->pbPowerSaving)) );
--}
--
--void
--odm_CmnInfoUpdate_Debug(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("odm_CmnInfoUpdate_Debug==>\n"));
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("bWIFI_Direct=%d\n",pDM_Odm->bWIFI_Direct) );
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("bWIFI_Display=%d\n",pDM_Odm->bWIFI_Display) );
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("bLinked=%d\n",pDM_Odm->bLinked) );
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("RSSI_Min=%d\n",pDM_Odm->RSSI_Min) );
--}
--
--void
- odm_BasicDbgMessage
- (
- IN PDM_ODM_T pDM_Odm
-@@ -1387,13 +1290,6 @@ u4Byte ODM_Get_Rate_Bitmap(
-
- }
-
--void
--odm_RefreshBasicRateMask(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
--}
--
- /*-----------------------------------------------------------------------------
- * Function: odm_RefreshRateAdaptiveMask()
- *
-@@ -1426,14 +1322,6 @@ odm_RefreshRateAdaptiveMask(
- }
-
- void
--odm_RefreshRateAdaptiveMaskMP(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
--}
--
--
--void
- odm_RefreshRateAdaptiveMaskCE(
- IN PDM_ODM_T pDM_Odm
- )
-@@ -1475,13 +1363,6 @@ odm_RefreshRateAdaptiveMaskCE(
- }
- }
-
--void
--odm_RefreshRateAdaptiveMaskAPADSL(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
--}
--
- // Return Value: bool
- // - true: RATRState is changed.
- bool
-@@ -1576,14 +1457,6 @@ odm_RSSIMonitorCheck(
-
- } // odm_RSSIMonitorCheck
-
--
--void
--odm_RSSIMonitorCheckMP(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
--}
--
- static void
- FindMinimumRSSI(
- IN PADAPTER pAdapter
-@@ -1697,38 +1570,6 @@ odm_RSSIMonitorCheckCE(
- //ODM_CmnInfoUpdate(&pHalData->odmpriv ,ODM_CMNINFO_RSSI_MIN, pdmpriv->MinUndecoratedPWDBForDM);
- }
-
--void
--odm_RSSIMonitorCheckAP(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
--}
--
--
--
--void
--ODM_InitAllTimers(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
--}
--
--void
--ODM_CancelAllTimers(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
--}
--
--
--void
--ODM_ReleaseAllTimers(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
--}
--
--
- //3============================================================
- //3 Tx Power Tracking
- //3============================================================
-@@ -1842,7 +1683,7 @@ odm_TXPowerTrackingCheckCE(
- if(!pDM_Odm->RFCalibrateInfo.TM_Trigger) //at least delay 1 sec
- {
- //pHalData->TxPowerCheckCnt++; //cosa add for debug
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_T_METER_NEW, (BIT17 | BIT16), 0x03);
-+ PHY_SetRFReg(pDM_Odm->Adapter, ODM_RF_PATH_A, RF_T_METER_NEW, (BIT17 | BIT16), 0x03);
-
- //DBG_871X("Trigger Thermal Meter!!\n");
-
-@@ -1857,526 +1698,17 @@ odm_TXPowerTrackingCheckCE(
- }
- }
-
--void
--odm_TXPowerTrackingCheckMP(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
--}
--
--
--void
--odm_TXPowerTrackingCheckAP(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
--}
--
- //3============================================================
- //3 SW Antenna Diversity
- //3============================================================
- void
--odm_AntennaDiversityInit(
-- IN PDM_ODM_T pDM_Odm
--)
--{
-- if(*(pDM_Odm->mp_mode) == true)
-- return;
--}
--
--void
--odm_AntennaDiversity(
-- IN PDM_ODM_T pDM_Odm
--)
--{
-- if(*(pDM_Odm->mp_mode) == true)
-- return;
--}
--
--
--void
- odm_SwAntDetectInit(
- IN PDM_ODM_T pDM_Odm
- )
- {
- pSWAT_T pDM_SWAT_Table = &pDM_Odm->DM_SWAT_Table;
-- pDM_SWAT_Table->SWAS_NoLink_BK_Reg92c = ODM_Read4Byte(pDM_Odm, rDPDT_control);
-+ pDM_SWAT_Table->SWAS_NoLink_BK_Reg92c = rtw_read32(pDM_Odm->Adapter, rDPDT_control);
- pDM_SWAT_Table->PreAntenna = MAIN_ANT;
- pDM_SWAT_Table->CurAntenna = MAIN_ANT;
- pDM_SWAT_Table->SWAS_NoLink_State = 0;
- }
--
--//============================================================
--//EDCA Turbo
--//============================================================
--
--// need to ODM CE Platform
--//move to here for ANT detection mechanism using
--
--u4Byte
--GetPSDData(
-- IN PDM_ODM_T pDM_Odm,
-- unsigned int point,
-- u1Byte initial_gain_psd)
--{
-- //unsigned int val, rfval;
-- //int psd_report;
-- u4Byte psd_report;
--
-- //HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
-- //Debug Message
-- //val = PHY_QueryBBReg(Adapter,0x908, bMaskDWord);
-- //DbgPrint("Reg908 = 0x%x\n",val);
-- //val = PHY_QueryBBReg(Adapter,0xDF4, bMaskDWord);
-- //rfval = PHY_QueryRFReg(Adapter, ODM_RF_PATH_A, 0x00, bRFRegOffsetMask);
-- //DbgPrint("RegDF4 = 0x%x, RFReg00 = 0x%x\n",val, rfval);
-- //DbgPrint("PHYTXON = %x, OFDMCCA_PP = %x, CCKCCA_PP = %x, RFReg00 = %x\n",
-- //(val&BIT25)>>25, (val&BIT14)>>14, (val&BIT15)>>15, rfval);
--
-- //Set DCO frequency index, offset=(40MHz/SamplePts)*point
-- ODM_SetBBReg(pDM_Odm, 0x808, 0x3FF, point);
--
-- //Start PSD calculation, Reg808[22]=0->1
-- ODM_SetBBReg(pDM_Odm, 0x808, BIT22, 1);
-- //Need to wait for HW PSD report
-- udelay(1000);
-- ODM_SetBBReg(pDM_Odm, 0x808, BIT22, 0);
-- //Read PSD report, Reg8B4[15:0]
-- psd_report = ODM_GetBBReg(pDM_Odm,0x8B4, bMaskDWord) & 0x0000FFFF;
--
-- psd_report = (u4Byte) (ConvertTo_dB(psd_report))+(u4Byte)(initial_gain_psd-0x1c);
--
-- return psd_report;
--
--}
--
--u4Byte
--ConvertTo_dB(
-- u4Byte Value)
--{
-- u1Byte i;
-- u1Byte j;
-- u4Byte dB;
--
-- Value = Value & 0xFFFF;
--
-- for (i=0;i<8;i++)
-- {
-- if (Value <= dB_Invert_Table[i][11])
-- {
-- break;
-- }
-- }
--
-- if (i >= 8)
-- {
-- return (96); // maximum 96 dB
-- }
--
-- for (j=0;j<12;j++)
-- {
-- if (Value <= dB_Invert_Table[i][j])
-- {
-- break;
-- }
-- }
--
-- dB = i*12 + j + 1;
--
-- return (dB);
--}
--
--//
--// Description:
--// Set Single/Dual Antenna default setting for products that do not do detection in advance.
--//
--// Added by Joseph, 2012.03.22
--//
--void
--ODM_SingleDualAntennaDefaultSetting(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
-- pSWAT_T pDM_SWAT_Table = &pDM_Odm->DM_SWAT_Table;
-- PADAPTER pAdapter = pDM_Odm->Adapter;
-- u1Byte btAntNum = 2;
--
-- btAntNum = hal_btcoex_GetPgAntNum(pAdapter);
--
-- // Set default antenna A and B status
-- if(btAntNum == 2)
-- {
-- pDM_SWAT_Table->ANTA_ON=true;
-- pDM_SWAT_Table->ANTB_ON=true;
-- //RT_TRACE(COMP_ANTENNA, DBG_LOUD, ("Dual antenna\n"));
-- }
-- else if(btAntNum == 1)
-- {// Set antenna A as default
-- pDM_SWAT_Table->ANTA_ON=true;
-- pDM_SWAT_Table->ANTB_ON=false;
-- //RT_TRACE(COMP_ANTENNA, DBG_LOUD, ("Single antenna\n"));
-- }
-- else
-- {
-- //RT_ASSERT(false, ("Incorrect antenna number!!\n"));
-- }
--}
--
--
--
--//2 8723A ANT DETECT
--//
--// Description:
--// Implement IQK single tone for RF DPK loopback and BB PSD scanning.
--// This function is cooperated with BB team Neil.
--//
--// Added by Roger, 2011.12.15
--//
--bool
--ODM_SingleDualAntennaDetection(
-- IN PDM_ODM_T pDM_Odm,
-- IN u1Byte mode
-- )
--{
-- PADAPTER pAdapter = pDM_Odm->Adapter;
-- pSWAT_T pDM_SWAT_Table = &pDM_Odm->DM_SWAT_Table;
-- u4Byte CurrentChannel,RfLoopReg;
-- u1Byte n;
-- u4Byte Reg88c, Regc08, Reg874, Regc50, Reg948=0, Regb2c=0, Reg92c=0, AFE_rRx_Wait_CCA=0;
-- u1Byte initial_gain = 0x5a;
-- u4Byte PSD_report_tmp;
-- u4Byte AntA_report = 0x0, AntB_report = 0x0,AntO_report=0x0;
-- bool bResult = true;
-- u4Byte AFE_Backup[16];
-- u4Byte AFE_REG_8723A[16] = {
-- rRx_Wait_CCA, rTx_CCK_RFON,
-- rTx_CCK_BBON, rTx_OFDM_RFON,
-- rTx_OFDM_BBON, rTx_To_Rx,
-- rTx_To_Tx, rRx_CCK,
-- rRx_OFDM, rRx_Wait_RIFS,
-- rRx_TO_Rx, rStandby,
-- rSleep, rPMPD_ANAEN,
-- rFPGA0_XCD_SwitchControl, rBlue_Tooth};
--
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("ODM_SingleDualAntennaDetection()============> \n"));
--
--
-- // Retrieve antenna detection registry info, added by Roger, 2012.11.27.
-- if(!IS_ANT_DETECT_SUPPORT_SINGLE_TONE(pAdapter))
-- return bResult;
--
-- //1 Backup Current RF/BB Settings
--
-- CurrentChannel = ODM_GetRFReg(pDM_Odm, ODM_RF_PATH_A, ODM_CHANNEL, bRFRegOffsetMask);
-- RfLoopReg = ODM_GetRFReg(pDM_Odm, ODM_RF_PATH_A, 0x00, bRFRegOffsetMask);
--
-- Reg92c = ODM_GetBBReg(pDM_Odm, 0x92c, bMaskDWord);
-- Reg948 = ODM_GetBBReg(pDM_Odm, rS0S1_PathSwitch, bMaskDWord);
-- Regb2c = ODM_GetBBReg(pDM_Odm, AGC_table_select, bMaskDWord);
-- ODM_SetBBReg(pDM_Odm, rDPDT_control, 0x3, 0x1);
-- ODM_SetBBReg(pDM_Odm, rfe_ctrl_anta_src, 0xff, 0x77);
-- ODM_SetBBReg(pDM_Odm, rS0S1_PathSwitch, 0x3ff, 0x000);
-- ODM_SetBBReg(pDM_Odm, AGC_table_select, BIT31, 0x0);
--
-- udelay(10);
--
-- //Store A Path Register 88c, c08, 874, c50
-- Reg88c = ODM_GetBBReg(pDM_Odm, rFPGA0_AnalogParameter4, bMaskDWord);
-- Regc08 = ODM_GetBBReg(pDM_Odm, rOFDM0_TRMuxPar, bMaskDWord);
-- Reg874 = ODM_GetBBReg(pDM_Odm, rFPGA0_XCD_RFInterfaceSW, bMaskDWord);
-- Regc50 = ODM_GetBBReg(pDM_Odm, rOFDM0_XAAGCCore1, bMaskDWord);
--
-- // Store AFE Registers
-- AFE_rRx_Wait_CCA = ODM_GetBBReg(pDM_Odm, rRx_Wait_CCA,bMaskDWord);
--
-- //Set PSD 128 pts
-- ODM_SetBBReg(pDM_Odm, rFPGA0_PSDFunction, BIT14|BIT15, 0x0); //128 pts
--
-- // To SET CH1 to do
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, ODM_CHANNEL, bRFRegOffsetMask, 0x7401); //Channel 1
--
-- // AFE all on step
-- ODM_SetBBReg(pDM_Odm, rRx_Wait_CCA, bMaskDWord, 0x01c00016);
--
-- // 3 wire Disable
-- ODM_SetBBReg(pDM_Odm, rFPGA0_AnalogParameter4, bMaskDWord, 0xCCF000C0);
--
-- //BB IQK Setting
-- ODM_SetBBReg(pDM_Odm, rOFDM0_TRMuxPar, bMaskDWord, 0x000800E4);
-- ODM_SetBBReg(pDM_Odm, rFPGA0_XCD_RFInterfaceSW, bMaskDWord, 0x22208000);
--
-- //IQK setting tone@ 4.34Mhz
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_Tone_A, bMaskDWord, 0x10008C1C);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK, bMaskDWord, 0x01007c00);
--
-- //Page B init
-- ODM_SetBBReg(pDM_Odm, rConfig_AntA, bMaskDWord, 0x00080000);
-- ODM_SetBBReg(pDM_Odm, rConfig_AntA, bMaskDWord, 0x0f600000);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK, bMaskDWord, 0x01004800);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_Tone_A, bMaskDWord, 0x10008c1f);
-- ODM_SetBBReg(pDM_Odm, rTx_IQK_PI_A, bMaskDWord, 0x82150008);
-- ODM_SetBBReg(pDM_Odm, rRx_IQK_PI_A, bMaskDWord, 0x28150008);
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Rsp, bMaskDWord, 0x001028d0);
--
-- //IQK Single tone start
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x808000);
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Pts, bMaskDWord, 0xf9000000);
-- ODM_SetBBReg(pDM_Odm, rIQK_AGC_Pts, bMaskDWord, 0xf8000000);
--
-- udelay(10000);
--
-- // PSD report of antenna A
-- PSD_report_tmp=0x0;
-- for (n=0;n<2;n++)
-- {
-- PSD_report_tmp = GetPSDData(pDM_Odm, 14, initial_gain);
-- if(PSD_report_tmp >AntA_report)
-- AntA_report=PSD_report_tmp;
-- }
--
-- // change to Antenna B
-- ODM_SetBBReg(pDM_Odm, rDPDT_control, 0x3, 0x2);
--
-- udelay(10);
--
-- // PSD report of antenna B
-- PSD_report_tmp=0x0;
-- for (n=0;n<2;n++)
-- {
-- PSD_report_tmp = GetPSDData(pDM_Odm, 14, initial_gain);
-- if(PSD_report_tmp > AntB_report)
-- AntB_report=PSD_report_tmp;
-- }
--
-- // change to open case
-- ODM_SetBBReg(pDM_Odm, rDPDT_control, 0x3, 0x0);
--
-- udelay(10);
--
-- // PSD report of open case
-- PSD_report_tmp=0x0;
-- for (n=0;n<2;n++)
-- {
-- PSD_report_tmp = GetPSDData(pDM_Odm, 14, initial_gain);
-- if(PSD_report_tmp > AntO_report)
-- AntO_report=PSD_report_tmp;
-- }
--
-- //Close IQK Single Tone function
-- ODM_SetBBReg(pDM_Odm, rFPGA0_IQK, bMaskH3Bytes, 0x000000);
--
-- // external DPDT
-- ODM_SetBBReg(pDM_Odm, rDPDT_control, bMaskDWord, Reg92c);
--
-- //internal S0/S1
-- ODM_SetBBReg(pDM_Odm, rS0S1_PathSwitch, bMaskDWord, Reg948);
-- ODM_SetBBReg(pDM_Odm, AGC_table_select, bMaskDWord, Regb2c);
--
-- ODM_SetBBReg(pDM_Odm, rFPGA0_AnalogParameter4, bMaskDWord, Reg88c);
-- ODM_SetBBReg(pDM_Odm, rOFDM0_TRMuxPar, bMaskDWord, Regc08);
-- ODM_SetBBReg(pDM_Odm, rFPGA0_XCD_RFInterfaceSW, bMaskDWord, Reg874);
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XAAGCCore1, 0x7F, 0x40);
-- ODM_SetBBReg(pDM_Odm, rOFDM0_XAAGCCore1, bMaskDWord, Regc50);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, RF_CHNLBW, bRFRegOffsetMask,CurrentChannel);
-- ODM_SetRFReg(pDM_Odm, ODM_RF_PATH_A, 0x00, bRFRegOffsetMask,RfLoopReg);
--
-- //Reload AFE Registers
-- ODM_SetBBReg(pDM_Odm, rRx_Wait_CCA, bMaskDWord, AFE_rRx_Wait_CCA);
--
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("psd_report_A[%d]= %d \n", 2416, AntA_report));
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("psd_report_B[%d]= %d \n", 2416, AntB_report));
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("psd_report_O[%d]= %d \n", 2416, AntO_report));
--
-- //2 Test Ant B based on Ant A is ON
-- if(mode==ANTTESTB)
-- {
-- if(AntA_report >=100 && AntA_report <= 116)
-- {
-- if(AntB_report >= (AntA_report+4) && AntB_report > 116)
-- {
-- pDM_SWAT_Table->ANTB_ON=false;
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("ODM_SingleDualAntennaDetection(): Single Antenna A\n"));
-- }
-- else if(AntB_report >=100 && AntB_report <= 116)
-- {
-- pDM_SWAT_Table->ANTB_ON=true;
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("ODM_SingleDualAntennaDetection(): Dual Antenna is A and B\n"));
-- }
-- else
-- {
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("ODM_SingleDualAntennaDetection(): Need to check again\n"));
-- pDM_SWAT_Table->ANTB_ON=false; // Set Antenna B off as default
-- bResult = false;
-- }
-- }
-- else
-- {
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("ODM_SingleDualAntennaDetection(): Need to check again\n"));
-- pDM_SWAT_Table->ANTB_ON=false; // Set Antenna B off as default
-- bResult = false;
-- }
-- }
-- //2 Test Ant A and B based on DPDT Open
-- else if(mode==ANTTESTALL)
-- {
-- if((AntA_report >= 100) && (AntB_report >= 100) && (AntA_report <= 120) && (AntB_report <= 120))
-- {
-- if((AntA_report - AntB_report < 2) || (AntB_report - AntA_report < 2))
-- {
-- pDM_SWAT_Table->ANTA_ON=true;
-- pDM_SWAT_Table->ANTB_ON=true;
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD,("ODM_SingleDualAntennaDetection(): Dual Antenna\n"));
-- }
-- else if(((AntA_report - AntB_report >= 2) && (AntA_report - AntB_report <= 4)) ||
-- ((AntB_report - AntA_report >= 2) && (AntB_report - AntA_report <= 4)))
-- {
-- pDM_SWAT_Table->ANTA_ON=false;
-- pDM_SWAT_Table->ANTB_ON=false;
-- bResult = false;
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("ODM_SingleDualAntennaDetection(): Need to check again\n"));
-- }
-- else
-- {
-- pDM_SWAT_Table->ANTA_ON = true;
-- pDM_SWAT_Table->ANTB_ON=false;
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD,("ODM_SingleDualAntennaDetection(): Single Antenna A\n"));
-- }
--
-- pDM_Odm->AntDetectedInfo.bAntDetected= true;
-- pDM_Odm->AntDetectedInfo.dBForAntA = AntA_report;
-- pDM_Odm->AntDetectedInfo.dBForAntB = AntB_report;
-- pDM_Odm->AntDetectedInfo.dBForAntO = AntO_report;
--
-- }
-- else
-- {
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_ANT_DIV, ODM_DBG_LOUD,("return false!!\n"));
-- bResult = false;
-- }
-- }
--
-- return bResult;
--
--}
--
--static void
--odm_Set_RA_DM_ARFB_by_Noisy(
-- IN PDM_ODM_T pDM_Odm
--)
--{
-- //DbgPrint("DM_ARFB ====> \n");
-- if (pDM_Odm->bNoisyState){
-- ODM_Write4Byte(pDM_Odm,0x430,0x00000000);
-- ODM_Write4Byte(pDM_Odm,0x434,0x05040200);
-- //DbgPrint("DM_ARFB ====> Noisy State\n");
-- }
-- else{
-- ODM_Write4Byte(pDM_Odm,0x430,0x02010000);
-- ODM_Write4Byte(pDM_Odm,0x434,0x07050403);
-- //DbgPrint("DM_ARFB ====> Clean State\n");
-- }
--
--}
--
--void
--ODM_UpdateNoisyState(
-- IN PDM_ODM_T pDM_Odm,
-- IN bool bNoisyStateFromC2H
-- )
--{
-- //DbgPrint("Get C2H Command! NoisyState=0x%x\n ", bNoisyStateFromC2H);
-- pDM_Odm->bNoisyState = bNoisyStateFromC2H;
-- odm_Set_RA_DM_ARFB_by_Noisy(pDM_Odm);
--};
--
--u4Byte
--Set_RA_DM_Ratrbitmap_by_Noisy(
-- IN PDM_ODM_T pDM_Odm,
-- IN WIRELESS_MODE WirelessMode,
-- IN u4Byte ratr_bitmap,
-- IN u1Byte rssi_level
--)
--{
-- u4Byte ret_bitmap = ratr_bitmap;
-- switch (WirelessMode)
-- {
-- case WIRELESS_MODE_AC_24G :
-- case WIRELESS_MODE_AC_5G :
-- case WIRELESS_MODE_AC_ONLY:
-- if (pDM_Odm->bNoisyState){ // in Noisy State
-- if (rssi_level==1)
-- ret_bitmap&=0xfe3f0e08;
-- else if (rssi_level==2)
-- ret_bitmap&=0xff3f8f8c;
-- else if (rssi_level==3)
-- ret_bitmap&=0xffffffcc ;
-- else
-- ret_bitmap&=0xffffffff ;
-- }
-- else{ // in SNR State
-- if (rssi_level==1){
-- ret_bitmap&=0xfc3e0c08;
-- }
-- else if (rssi_level==2){
-- ret_bitmap&=0xfe3f0e08;
-- }
-- else if (rssi_level==3){
-- ret_bitmap&=0xffbfefcc;
-- }
-- else{
-- ret_bitmap&=0x0fffffff;
-- }
-- }
-- break;
-- case WIRELESS_MODE_B:
-- case WIRELESS_MODE_A:
-- case WIRELESS_MODE_G:
-- case WIRELESS_MODE_N_24G:
-- case WIRELESS_MODE_N_5G:
-- if (pDM_Odm->bNoisyState){
-- if (rssi_level==1)
-- ret_bitmap&=0x0f0e0c08;
-- else if (rssi_level==2)
-- ret_bitmap&=0x0f8f0e0c;
-- else if (rssi_level==3)
-- ret_bitmap&=0x0fefefcc ;
-- else
-- ret_bitmap&=0xffffffff ;
-- }
-- else{
-- if (rssi_level==1){
-- ret_bitmap&=0x0f8f0e08;
-- }
-- else if (rssi_level==2){
-- ret_bitmap&=0x0fcf8f8c;
-- }
-- else if (rssi_level==3){
-- ret_bitmap&=0x0fffffcc;
-- }
-- else{
-- ret_bitmap&=0x0fffffff;
-- }
-- }
-- break;
-- default:
-- break;
-- }
-- //DbgPrint("DM_RAMask ====> rssi_LV = %d, BITMAP = %x \n", rssi_level, ret_bitmap);
-- return ret_bitmap;
--
--}
--
--
--
--void
--ODM_UpdateInitRate(
-- IN PDM_ODM_T pDM_Odm,
-- IN u1Byte Rate
-- )
--{
-- u1Byte p = 0;
--
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_TX_PWR_TRACK, ODM_DBG_LOUD,("Get C2H Command! Rate=0x%x\n", Rate));
--
-- pDM_Odm->TxRate = Rate;
--}
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_CfoTracking.c linux/3rdparty/rtl8723bs/hal/odm_CfoTracking.c
---- linux/3rdparty/rtl8723bs.old/hal/odm_CfoTracking.c 2015-05-10 14:36:05.705668313 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_CfoTracking.c 2015-05-07 17:46:55.000000000 +0300
-@@ -41,7 +41,7 @@ odm_SetCrystalCap(
-
- // 0x2C[23:18] = 0x2C[17:12] = CrystalCap
- CrystalCap = CrystalCap & 0x3F;
-- ODM_SetBBReg(pDM_Odm, REG_MAC_PHY_CTRL, 0x00FFF000, (CrystalCap | (CrystalCap << 6)));
-+ PHY_SetBBReg(pDM_Odm->Adapter, REG_MAC_PHY_CTRL, 0x00FFF000, (CrystalCap | (CrystalCap << 6)));
-
- ODM_RT_TRACE(pDM_Odm, ODM_COMP_CFO_TRACKING, ODM_DBG_LOUD, ("odm_SetCrystalCap(): CrystalCap = 0x%x\n", CrystalCap));
- }
-@@ -76,7 +76,7 @@ odm_SetATCStatus(
- if(pCfoTrack->bATCStatus == ATCStatus)
- return;
-
-- ODM_SetBBReg(pDM_Odm, ODM_REG(BB_ATC,pDM_Odm), ODM_BIT(BB_ATC,pDM_Odm), ATCStatus);
-+ PHY_SetBBReg(pDM_Odm->Adapter, ODM_REG(BB_ATC,pDM_Odm), ODM_BIT(BB_ATC,pDM_Odm), ATCStatus);
- pCfoTrack->bATCStatus = ATCStatus;
- }
-
-@@ -88,7 +88,7 @@ odm_GetATCStatus(
- bool ATCStatus;
- PDM_ODM_T pDM_Odm = (PDM_ODM_T)pDM_VOID;
-
-- ATCStatus = (bool)ODM_GetBBReg(pDM_Odm, ODM_REG(BB_ATC,pDM_Odm), ODM_BIT(BB_ATC,pDM_Odm));
-+ ATCStatus = (bool)PHY_QueryBBReg(pDM_Odm->Adapter, ODM_REG(BB_ATC,pDM_Odm), ODM_BIT(BB_ATC,pDM_Odm));
- return ATCStatus;
- }
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_DIG.c linux/3rdparty/rtl8723bs/hal/odm_DIG.c
---- linux/3rdparty/rtl8723bs.old/hal/odm_DIG.c 2015-05-10 14:36:05.706668324 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_DIG.c 2015-05-07 17:46:55.000000000 +0300
-@@ -27,52 +27,6 @@
-
-
- void
--ODM_ChangeDynamicInitGainThresh(
-- IN void * pDM_VOID,
-- IN u4Byte DM_Type,
-- IN u4Byte DM_Value
-- )
--{
-- PDM_ODM_T pDM_Odm = (PDM_ODM_T)pDM_VOID;
-- pDIG_T pDM_DigTable = &pDM_Odm->DM_DigTable;
--
-- if (DM_Type == DIG_TYPE_THRESH_HIGH)
-- {
-- pDM_DigTable->RssiHighThresh = DM_Value;
-- }
-- else if (DM_Type == DIG_TYPE_THRESH_LOW)
-- {
-- pDM_DigTable->RssiLowThresh = DM_Value;
-- }
-- else if (DM_Type == DIG_TYPE_ENABLE)
-- {
-- pDM_DigTable->Dig_Enable_Flag = true;
-- }
-- else if (DM_Type == DIG_TYPE_DISABLE)
-- {
-- pDM_DigTable->Dig_Enable_Flag = false;
-- }
-- else if (DM_Type == DIG_TYPE_BACKOFF)
-- {
-- if(DM_Value > 30)
-- DM_Value = 30;
-- pDM_DigTable->BackoffVal = (u1Byte)DM_Value;
-- }
-- else if(DM_Type == DIG_TYPE_RX_GAIN_MIN)
-- {
-- if(DM_Value == 0)
-- DM_Value = 0x1;
-- pDM_DigTable->rx_gain_range_min = (u1Byte)DM_Value;
-- }
-- else if(DM_Type == DIG_TYPE_RX_GAIN_MAX)
-- {
-- if(DM_Value > 0x50)
-- DM_Value = 0x50;
-- pDM_DigTable->rx_gain_range_max = (u1Byte)DM_Value;
-- }
--} // DM_ChangeDynamicInitGainThresh //
--
--void
- odm_NHMCounterStatisticsInit(
- IN void * pDM_VOID
- )
-@@ -80,15 +34,15 @@ odm_NHMCounterStatisticsInit(
- PDM_ODM_T pDM_Odm = (PDM_ODM_T)pDM_VOID;
-
- //PHY parameters initialize for n series
-- ODM_Write2Byte(pDM_Odm, ODM_REG_NHM_TIMER_11N+2, 0x2710); //0x894[31:16]=0x2710 Time duration for NHM unit: 4us, 0x2710=40ms
-- //ODM_Write2Byte(pDM_Odm, ODM_REG_NHM_TIMER_11N+2, 0x4e20); //0x894[31:16]=0x4e20 Time duration for NHM unit: 4us, 0x4e20=80ms
-- ODM_Write2Byte(pDM_Odm, ODM_REG_NHM_TH9_TH10_11N+2, 0xffff); //0x890[31:16]=0xffff th_9, th_10
-- //ODM_Write4Byte(pDM_Odm, ODM_REG_NHM_TH3_TO_TH0_11N, 0xffffff5c); //0x898=0xffffff5c th_3, th_2, th_1, th_0
-- ODM_Write4Byte(pDM_Odm, ODM_REG_NHM_TH3_TO_TH0_11N, 0xffffff52); //0x898=0xffffff52 th_3, th_2, th_1, th_0
-- ODM_Write4Byte(pDM_Odm, ODM_REG_NHM_TH7_TO_TH4_11N, 0xffffffff); //0x89c=0xffffffff th_7, th_6, th_5, th_4
-- ODM_SetBBReg(pDM_Odm, ODM_REG_FPGA0_IQK_11N, bMaskByte0, 0xff); //0xe28[7:0]=0xff th_8
-- ODM_SetBBReg(pDM_Odm, ODM_REG_NHM_TH9_TH10_11N, BIT10|BIT9|BIT8, 0x7); //0x890[9:8]=3 enable CCX
-- ODM_SetBBReg(pDM_Odm, ODM_REG_OFDM_FA_RSTC_11N, BIT7, 0x1); //0xc0c[7]=1 max power among all RX ants
-+ rtw_write16(pDM_Odm->Adapter, ODM_REG_NHM_TIMER_11N+2, 0x2710); //0x894[31:16]=0x2710 Time duration for NHM unit: 4us, 0x2710=40ms
-+ //rtw_write16(pDM_Odm->Adapter, ODM_REG_NHM_TIMER_11N+2, 0x4e20); //0x894[31:16]=0x4e20 Time duration for NHM unit: 4us, 0x4e20=80ms
-+ rtw_write16(pDM_Odm->Adapter, ODM_REG_NHM_TH9_TH10_11N+2, 0xffff); //0x890[31:16]=0xffff th_9, th_10
-+ //rtw_write32(pDM_Odm->Adapter, ODM_REG_NHM_TH3_TO_TH0_11N, 0xffffff5c); //0x898=0xffffff5c th_3, th_2, th_1, th_0
-+ rtw_write32(pDM_Odm->Adapter, ODM_REG_NHM_TH3_TO_TH0_11N, 0xffffff52); //0x898=0xffffff52 th_3, th_2, th_1, th_0
-+ rtw_write32(pDM_Odm->Adapter, ODM_REG_NHM_TH7_TO_TH4_11N, 0xffffffff); //0x89c=0xffffffff th_7, th_6, th_5, th_4
-+ PHY_SetBBReg(pDM_Odm->Adapter, ODM_REG_FPGA0_IQK_11N, bMaskByte0, 0xff); //0xe28[7:0]=0xff th_8
-+ PHY_SetBBReg(pDM_Odm->Adapter, ODM_REG_NHM_TH9_TH10_11N, BIT10|BIT9|BIT8, 0x7); //0x890[9:8]=3 enable CCX
-+ PHY_SetBBReg(pDM_Odm->Adapter, ODM_REG_OFDM_FA_RSTC_11N, BIT7, 0x1); //0xc0c[7]=1 max power among all RX ants
- }
-
- void
-@@ -113,7 +67,7 @@ odm_GetNHMCounterStatistics(
- PDM_ODM_T pDM_Odm = (PDM_ODM_T)pDM_VOID;
- u4Byte value32 = 0;
-
-- value32 = ODM_GetBBReg(pDM_Odm, ODM_REG_NHM_CNT_11N, bMaskDWord);
-+ value32 = PHY_QueryBBReg(pDM_Odm->Adapter, ODM_REG_NHM_CNT_11N, bMaskDWord);
-
- pDM_Odm->NHM_cnt_0 = (u1Byte)(value32 & bMaskByte0);
- }
-@@ -125,8 +79,8 @@ odm_NHMCounterStatisticsReset(
- {
- PDM_ODM_T pDM_Odm = (PDM_ODM_T)pDM_VOID;
-
-- ODM_SetBBReg(pDM_Odm, ODM_REG_NHM_TH9_TH10_11N, BIT1, 0);
-- ODM_SetBBReg(pDM_Odm, ODM_REG_NHM_TH9_TH10_11N, BIT1, 1);
-+ PHY_SetBBReg(pDM_Odm->Adapter, ODM_REG_NHM_TH9_TH10_11N, BIT1, 0);
-+ PHY_SetBBReg(pDM_Odm->Adapter, ODM_REG_NHM_TH9_TH10_11N, BIT1, 1);
- }
-
- void
-@@ -170,8 +124,6 @@ odm_NHMBB(
- //Enable EDCCA since it is possible running Adaptivity testing
- //test_status = 1;
- pDM_Odm->adaptivity_flag = true;
-- ODM_SetMACReg(pDM_Odm, REG_TX_PTCL_CTRL, BIT15, 0); //don't ignore EDCCA reg520[15]=0
-- ODM_SetMACReg(pDM_Odm, REG_RD_CTRL, BIT11, 1); //reg524[11]=1
- pDM_Odm->tolerance_cnt = 0;
- }
- else
-@@ -184,8 +136,6 @@ odm_NHMBB(
- if(pDM_Odm->tolerance_cnt > 3)
- {
- //test_status = 3;
-- ODM_SetMACReg(pDM_Odm, REG_TX_PTCL_CTRL, BIT15, 1); //ignore EDCCA reg520[15]=1
-- ODM_SetMACReg(pDM_Odm, REG_RD_CTRL, BIT11, 0); //reg524[11]=0
- pDM_Odm->adaptivity_flag = false;
- }
- }
-@@ -195,8 +145,6 @@ odm_NHMBB(
- if(pDM_Odm->adaptivity_flag == true && pDM_Odm->NHM_cnt_0 <= 200)
- {
- //test_status = 2;
-- ODM_SetMACReg(pDM_Odm, REG_TX_PTCL_CTRL, BIT15, 0); //don't ignore EDCCA reg520[15]=0
-- ODM_SetMACReg(pDM_Odm, REG_RD_CTRL, BIT11, 1); //reg524[11]=1
- pDM_Odm->tolerance_cnt = 0;
- }
- else
-@@ -209,8 +157,6 @@ odm_NHMBB(
- if(pDM_Odm->tolerance_cnt >3)
- {
- //test_status = 4;
-- ODM_SetMACReg(pDM_Odm, REG_TX_PTCL_CTRL, BIT15, 1); //ignore EDCCA reg520[15]=1
-- ODM_SetMACReg(pDM_Odm, REG_RD_CTRL, BIT11, 0); //reg524[11]=0
- pDM_Odm->adaptivity_flag = false;
- }
- }
-@@ -241,8 +187,8 @@ odm_SearchPwdBLowerBound(
- if(TH_L2H_dmc > 10)
- TH_L2H_dmc = 10;
- TH_H2L_dmc = TH_L2H_dmc - pDM_Odm->TH_EDCCA_HL_diff;
-- ODM_SetBBReg(pDM_Odm,rOFDM0_ECCAThreshold, bMaskByte0, (u1Byte)TH_L2H_dmc);
-- ODM_SetBBReg(pDM_Odm,rOFDM0_ECCAThreshold, bMaskByte2, (u1Byte)TH_H2L_dmc);
-+ PHY_SetBBReg(pDM_Odm->Adapter,rOFDM0_ECCAThreshold, bMaskByte0, (u1Byte)TH_L2H_dmc);
-+ PHY_SetBBReg(pDM_Odm->Adapter,rOFDM0_ECCAThreshold, bMaskByte2, (u1Byte)TH_H2L_dmc);
-
- mdelay(5);
-
-@@ -250,7 +196,7 @@ odm_SearchPwdBLowerBound(
- {
- for(cnt=0; cnt<20; cnt ++)
- {
-- value32 = ODM_GetBBReg(pDM_Odm,ODM_REG_RPT_11N, bMaskDWord);
-+ value32 = PHY_QueryBBReg(pDM_Odm->Adapter,ODM_REG_RPT_11N, bMaskDWord);
-
- if (value32 & BIT30)
- pDM_Odm->txEdcca1 = pDM_Odm->txEdcca1 + 1;
-@@ -268,8 +214,8 @@ odm_SearchPwdBLowerBound(
- if(TH_L2H_dmc > 10)
- TH_L2H_dmc = 10;
- TH_H2L_dmc = TH_L2H_dmc - pDM_Odm->TH_EDCCA_HL_diff;
-- ODM_SetBBReg(pDM_Odm,rOFDM0_ECCAThreshold, bMaskByte0, (u1Byte)TH_L2H_dmc);
-- ODM_SetBBReg(pDM_Odm,rOFDM0_ECCAThreshold, bMaskByte2, (u1Byte)TH_H2L_dmc);
-+ PHY_SetBBReg(pDM_Odm->Adapter,rOFDM0_ECCAThreshold, bMaskByte0, (u1Byte)TH_L2H_dmc);
-+ PHY_SetBBReg(pDM_Odm->Adapter,rOFDM0_ECCAThreshold, bMaskByte2, (u1Byte)TH_H2L_dmc);
-
- pDM_Odm->TxHangFlg = true;
- pDM_Odm->txEdcca1 = 0;
-@@ -332,7 +278,7 @@ odm_AdaptivityInit(
- pDM_Odm->Adaptivity_IGI_upper = 0;
- odm_NHMBBInit(pDM_Odm);
-
-- ODM_SetBBReg(pDM_Odm, REG_RD_CTRL, BIT11, 1); // stop counting if EDCCA is asserted
-+ PHY_SetBBReg(pDM_Odm->Adapter, REG_RD_CTRL, BIT11, 1); // stop counting if EDCCA is asserted
- }
-
-
-@@ -369,14 +315,14 @@ odm_Adaptivity(
- //Search pwdB lower bound
- if(pDM_Odm->TxHangFlg == true)
- {
-- ODM_SetBBReg(pDM_Odm,ODM_REG_DBG_RPT_11N, bMaskDWord, 0x208);
-+ PHY_SetBBReg(pDM_Odm->Adapter,ODM_REG_DBG_RPT_11N, bMaskDWord, 0x208);
- odm_SearchPwdBLowerBound(pDM_Odm, pDM_Odm->IGI_target );
- }
-
- if((!pDM_Odm->bLinked)||(*pDM_Odm->pChannel > 149)) // Band4 doesn't need adaptivity
- {
-- ODM_SetBBReg(pDM_Odm,rOFDM0_ECCAThreshold, bMaskByte0, 0x7f);
-- ODM_SetBBReg(pDM_Odm,rOFDM0_ECCAThreshold, bMaskByte2, 0x7f);
-+ PHY_SetBBReg(pDM_Odm->Adapter,rOFDM0_ECCAThreshold, bMaskByte0, 0x7f);
-+ PHY_SetBBReg(pDM_Odm->Adapter,rOFDM0_ECCAThreshold, bMaskByte2, 0x7f);
- return;
- }
-
-@@ -418,8 +364,8 @@ odm_Adaptivity(
- }
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_DIG, ODM_DBG_LOUD, ("IGI=0x%x, TH_L2H_dmc = %d, TH_H2L_dmc = %d\n",
- IGI, TH_L2H_dmc, TH_H2L_dmc));
-- ODM_SetBBReg(pDM_Odm,rOFDM0_ECCAThreshold, bMaskByte0, (u1Byte)TH_L2H_dmc);
-- ODM_SetBBReg(pDM_Odm,rOFDM0_ECCAThreshold, bMaskByte2, (u1Byte)TH_H2L_dmc);
-+ PHY_SetBBReg(pDM_Odm->Adapter,rOFDM0_ECCAThreshold, bMaskByte0, (u1Byte)TH_L2H_dmc);
-+ PHY_SetBBReg(pDM_Odm->Adapter,rOFDM0_ECCAThreshold, bMaskByte2, (u1Byte)TH_H2L_dmc);
- }
-
- void
-@@ -454,10 +400,10 @@ ODM_Write_DIG(
- }
-
- //1 Set IGI value
-- ODM_SetBBReg(pDM_Odm, ODM_REG(IGI_A,pDM_Odm), ODM_BIT(IGI,pDM_Odm), CurrentIGI);
-+ PHY_SetBBReg(pDM_Odm->Adapter, ODM_REG(IGI_A,pDM_Odm), ODM_BIT(IGI,pDM_Odm), CurrentIGI);
-
- if(pDM_Odm->RFType > ODM_1T1R)
-- ODM_SetBBReg(pDM_Odm, ODM_REG(IGI_B,pDM_Odm), ODM_BIT(IGI,pDM_Odm), CurrentIGI);
-+ PHY_SetBBReg(pDM_Odm->Adapter, ODM_REG(IGI_B,pDM_Odm), ODM_BIT(IGI,pDM_Odm), CurrentIGI);
-
- pDM_DigTable->CurIGValue = CurrentIGI;
- }
-@@ -582,7 +528,7 @@ odm_DIGInit(
-
- pDM_DigTable->bStopDIG = false;
- pDM_DigTable->bPSDInProgress = false;
-- pDM_DigTable->CurIGValue = (u1Byte) ODM_GetBBReg(pDM_Odm, ODM_REG(IGI_A,pDM_Odm), ODM_BIT(IGI,pDM_Odm));
-+ pDM_DigTable->CurIGValue = (u1Byte) PHY_QueryBBReg(pDM_Odm->Adapter, ODM_REG(IGI_A,pDM_Odm), ODM_BIT(IGI,pDM_Odm));
- pDM_DigTable->RssiLowThresh = DM_DIG_THRESH_LOW;
- pDM_DigTable->RssiHighThresh = DM_DIG_THRESH_HIGH;
- pDM_DigTable->FALowThresh = DMfalseALARM_THRESH_LOW;
-@@ -925,14 +871,6 @@ odm_DIGbyRSSI_LPS(
- ODM_Write_DIG(pDM_Odm, CurrentIGI);//ODM_Write_DIG(pDM_Odm, pDM_DigTable->CurIGValue);
- }
-
--void
--odm_DigForBtHsMode(
-- IN void * pDM_VOID
-- )
--{
--}
--
--
- //3============================================================
- //3 FASLE ALARM CHECK
- //3============================================================
-@@ -950,22 +888,22 @@ odm_FalseAlarmCounterStatistics(
- return;
-
- //hold ofdm counter
-- ODM_SetBBReg(pDM_Odm, ODM_REG_OFDM_FA_HOLDC_11N, BIT31, 1); //hold page C counter
-- ODM_SetBBReg(pDM_Odm, ODM_REG_OFDM_FA_RSTD_11N, BIT31, 1); //hold page D counter
-+ PHY_SetBBReg(pDM_Odm->Adapter, ODM_REG_OFDM_FA_HOLDC_11N, BIT31, 1); //hold page C counter
-+ PHY_SetBBReg(pDM_Odm->Adapter, ODM_REG_OFDM_FA_RSTD_11N, BIT31, 1); //hold page D counter
-
-- ret_value = ODM_GetBBReg(pDM_Odm, ODM_REG_OFDM_FA_TYPE1_11N, bMaskDWord);
-+ ret_value = PHY_QueryBBReg(pDM_Odm->Adapter, ODM_REG_OFDM_FA_TYPE1_11N, bMaskDWord);
- FalseAlmCnt->Cnt_Fast_Fsync = (ret_value&0xffff);
- FalseAlmCnt->Cnt_SB_Search_fail = ((ret_value&0xffff0000)>>16);
-
-- ret_value = ODM_GetBBReg(pDM_Odm, ODM_REG_OFDM_FA_TYPE2_11N, bMaskDWord);
-+ ret_value = PHY_QueryBBReg(pDM_Odm->Adapter, ODM_REG_OFDM_FA_TYPE2_11N, bMaskDWord);
- FalseAlmCnt->Cnt_OFDM_CCA = (ret_value&0xffff);
- FalseAlmCnt->Cnt_Parity_Fail = ((ret_value&0xffff0000)>>16);
-
-- ret_value = ODM_GetBBReg(pDM_Odm, ODM_REG_OFDM_FA_TYPE3_11N, bMaskDWord);
-+ ret_value = PHY_QueryBBReg(pDM_Odm->Adapter, ODM_REG_OFDM_FA_TYPE3_11N, bMaskDWord);
- FalseAlmCnt->Cnt_Rate_Illegal = (ret_value&0xffff);
- FalseAlmCnt->Cnt_Crc8_fail = ((ret_value&0xffff0000)>>16);
-
-- ret_value = ODM_GetBBReg(pDM_Odm, ODM_REG_OFDM_FA_TYPE4_11N, bMaskDWord);
-+ ret_value = PHY_QueryBBReg(pDM_Odm->Adapter, ODM_REG_OFDM_FA_TYPE4_11N, bMaskDWord);
- FalseAlmCnt->Cnt_Mcs_fail = (ret_value&0xffff);
-
- FalseAlmCnt->Cnt_Ofdm_fail = FalseAlmCnt->Cnt_Parity_Fail + FalseAlmCnt->Cnt_Rate_Illegal +
-@@ -974,16 +912,16 @@ odm_FalseAlarmCounterStatistics(
-
- {
- //hold cck counter
-- ODM_SetBBReg(pDM_Odm, ODM_REG_CCK_FA_RST_11N, BIT12, 1);
-- ODM_SetBBReg(pDM_Odm, ODM_REG_CCK_FA_RST_11N, BIT14, 1);
-+ PHY_SetBBReg(pDM_Odm->Adapter, ODM_REG_CCK_FA_RST_11N, BIT12, 1);
-+ PHY_SetBBReg(pDM_Odm->Adapter, ODM_REG_CCK_FA_RST_11N, BIT14, 1);
-
-- ret_value = ODM_GetBBReg(pDM_Odm, ODM_REG_CCK_FA_LSB_11N, bMaskByte0);
-+ ret_value = PHY_QueryBBReg(pDM_Odm->Adapter, ODM_REG_CCK_FA_LSB_11N, bMaskByte0);
- FalseAlmCnt->Cnt_Cck_fail = ret_value;
-
-- ret_value = ODM_GetBBReg(pDM_Odm, ODM_REG_CCK_FA_MSB_11N, bMaskByte3);
-+ ret_value = PHY_QueryBBReg(pDM_Odm->Adapter, ODM_REG_CCK_FA_MSB_11N, bMaskByte3);
- FalseAlmCnt->Cnt_Cck_fail += (ret_value& 0xff)<<8;
-
-- ret_value = ODM_GetBBReg(pDM_Odm, ODM_REG_CCK_CCA_CNT_11N, bMaskDWord);
-+ ret_value = PHY_QueryBBReg(pDM_Odm->Adapter, ODM_REG_CCK_CCA_CNT_11N, bMaskDWord);
- FalseAlmCnt->Cnt_CCK_CCA = ((ret_value&0xFF)<<8) |((ret_value&0xFF00)>>8);
- }
-
-@@ -1115,82 +1053,11 @@ odm_ForbiddenIGICheck(
-
- }
-
--void
--odm_InbandNoiseCalculate (
-- IN void * pDM_VOID
-- )
--{
-- return;
--}
--
- //3============================================================
- //3 CCK Packet Detect Threshold
- //3============================================================
-
- void
--odm_PauseCCKPacketDetection(
-- IN void * pDM_VOID,
-- IN ODM_Pause_CCKPD_TYPE PauseType,
-- IN u1Byte CCKPDThreshold
--)
--{
-- PDM_ODM_T pDM_Odm = (PDM_ODM_T)pDM_VOID;
-- pDIG_T pDM_DigTable = &pDM_Odm->DM_DigTable;
-- static bool bPaused = false;
--
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CCK_PD, ODM_DBG_LOUD, ("odm_PauseCCKPacketDetection()=========>\n"));
--
-- if(!bPaused && (!(pDM_Odm->SupportAbility & ODM_BB_CCK_PD) || !(pDM_Odm->SupportAbility & ODM_BB_FA_CNT)))
-- {
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CCK_PD, ODM_DBG_LOUD, ("Return: SupportAbility ODM_BB_CCK_PD or ODM_BB_FA_CNT is disabled\n"));
-- return;
-- }
--
-- switch(PauseType)
-- {
-- //1 Pause CCK Packet Detection Threshold
-- case ODM_PAUSE_CCKPD:
-- //2 Disable DIG
-- ODM_CmnInfoUpdate(pDM_Odm, ODM_CMNINFO_ABILITY, pDM_Odm->SupportAbility & (~ODM_BB_CCK_PD));
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CCK_PD, ODM_DBG_LOUD, ("Pause CCK packet detection threshold !!\n"));
--
-- //2 Backup CCK Packet Detection Threshold value
-- if(!bPaused)
-- {
-- pDM_DigTable->CCKPDBackup = pDM_DigTable->CurCCK_CCAThres;
-- bPaused = true;
-- }
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CCK_PD, ODM_DBG_LOUD, ("Backup CCK packet detection tgreshold = %d\n", pDM_DigTable->CCKPDBackup));
--
-- //2 Write new CCK Packet Detection Threshold value
-- ODM_Write_CCK_CCA_Thres(pDM_Odm, CCKPDThreshold);
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CCK_PD, ODM_DBG_LOUD, ("Write new CCK packet detection tgreshold = %d\n", CCKPDThreshold));
-- break;
--
-- //1 Resume CCK Packet Detection Threshold
-- case ODM_RESUME_CCKPD:
-- if(bPaused)
-- {
-- //2 Write backup CCK Packet Detection Threshold value
-- ODM_Write_CCK_CCA_Thres(pDM_Odm, pDM_DigTable->CCKPDBackup);
-- bPaused = false;
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CCK_PD, ODM_DBG_LOUD, ("Write original CCK packet detection tgreshold = %d\n", pDM_DigTable->CCKPDBackup));
--
-- //2 Enable CCK Packet Detection Threshold
-- ODM_CmnInfoUpdate(pDM_Odm, ODM_CMNINFO_ABILITY, pDM_Odm->SupportAbility | ODM_BB_CCK_PD);
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CCK_PD, ODM_DBG_LOUD, ("Resume CCK packet detection threshold !!\n"));
-- }
-- break;
--
-- default:
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_CCK_PD, ODM_DBG_LOUD, ("Wrong type !!\n"));
-- break;
-- }
-- return;
--}
--
--
--void
- odm_CCKPacketDetectionThresh(
- IN void * pDM_VOID
- )
-@@ -1249,7 +1116,7 @@ ODM_Write_CCK_CCA_Thres(
-
- if(pDM_DigTable->CurCCK_CCAThres!=CurCCK_CCAThres) //modify by Guo.Mingzhi 2012-01-03
- {
-- ODM_Write1Byte(pDM_Odm, ODM_REG(CCK_CCA,pDM_Odm), CurCCK_CCAThres);
-+ rtw_write8(pDM_Odm->Adapter, ODM_REG(CCK_CCA,pDM_Odm), CurCCK_CCAThres);
- }
- pDM_DigTable->PreCCK_CCAThres = pDM_DigTable->CurCCK_CCAThres;
- pDM_DigTable->CurCCK_CCAThres = CurCCK_CCAThres;
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_DIG.h linux/3rdparty/rtl8723bs/hal/odm_DIG.h
---- linux/3rdparty/rtl8723bs.old/hal/odm_DIG.h 2015-05-10 14:36:05.707668335 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_DIG.h 2015-05-07 17:46:55.000000000 +0300
-@@ -189,13 +189,6 @@ typedef enum tag_DIG_Connect_Definition
- #define RSSI_OFFSET_DIG 0x05
-
- void
--ODM_ChangeDynamicInitGainThresh(
-- IN void * pDM_VOID,
-- IN u4Byte DM_Type,
-- IN u4Byte DM_Value
-- );
--
--void
- odm_NHMCounterStatisticsInit(
- IN void * pDM_VOID
- );
-@@ -271,11 +264,6 @@ odm_DIGbyRSSI_LPS(
- );
-
- void
--odm_DigForBtHsMode(
-- IN void * pDM_VOID
-- );
--
--void
- odm_FalseAlarmCounterStatistics(
- IN void * pDM_VOID
- );
-@@ -297,24 +285,12 @@ odm_ForbiddenIGICheck(
- IN u1Byte CurrentIGI
- );
-
--void
--odm_InbandNoiseCalculate (
-- IN void * pDM_VOID
-- );
--
- bool
- odm_DigAbort(
- IN void * pDM_VOID
- );
-
- void
--odm_PauseCCKPacketDetection(
-- IN void * pDM_VOID,
-- IN ODM_Pause_CCKPD_TYPE PauseType,
-- IN u1Byte CCKPDThreshold
-- );
--
--void
- odm_CCKPacketDetectionThresh(
- IN void * pDM_VOID
- );
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_DynamicBBPowerSaving.c linux/3rdparty/rtl8723bs/hal/odm_DynamicBBPowerSaving.c
---- linux/3rdparty/rtl8723bs.old/hal/odm_DynamicBBPowerSaving.c 2015-05-10 14:36:05.707668335 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_DynamicBBPowerSaving.c 2015-05-07 17:46:55.000000000 +0300
-@@ -40,61 +40,6 @@ odm_DynamicBBPowerSavingInit(
- pDM_PSTable->initialize = 0;
- }
-
--
--void
--odm_1R_CCA(
-- IN void * pDM_VOID
-- )
--{
-- PDM_ODM_T pDM_Odm = (PDM_ODM_T)pDM_VOID;
-- pPS_T pDM_PSTable = &pDM_Odm->DM_PSTable;
--
-- if(pDM_Odm->RSSI_Min!= 0xFF)
-- {
--
-- if(pDM_PSTable->PreCCAState == CCA_2R)
-- {
-- if(pDM_Odm->RSSI_Min >= 35)
-- pDM_PSTable->CurCCAState = CCA_1R;
-- else
-- pDM_PSTable->CurCCAState = CCA_2R;
--
-- }
-- else{
-- if(pDM_Odm->RSSI_Min <= 30)
-- pDM_PSTable->CurCCAState = CCA_2R;
-- else
-- pDM_PSTable->CurCCAState = CCA_1R;
-- }
-- }
-- else{
-- pDM_PSTable->CurCCAState=CCA_MAX;
-- }
--
-- if(pDM_PSTable->PreCCAState != pDM_PSTable->CurCCAState)
-- {
-- if(pDM_PSTable->CurCCAState == CCA_1R)
-- {
-- if( pDM_Odm->RFType ==ODM_2T2R )
-- {
-- ODM_SetBBReg(pDM_Odm, 0xc04 , bMaskByte0, 0x13);
-- //PHY_SetBBReg(pAdapter, 0xe70, bMaskByte3, 0x20);
-- }
-- else
-- {
-- ODM_SetBBReg(pDM_Odm, 0xc04 , bMaskByte0, 0x23);
-- //PHY_SetBBReg(pAdapter, 0xe70, 0x7fc00000, 0x10c); // Set RegE70[30:22] = 9b'100001100
-- }
-- }
-- else
-- {
-- ODM_SetBBReg(pDM_Odm, 0xc04 , bMaskByte0, 0x33);
-- //PHY_SetBBReg(pAdapter,0xe70, bMaskByte3, 0x63);
-- }
-- pDM_PSTable->PreCCAState = pDM_PSTable->CurCCAState;
-- }
--}
--
- void
- ODM_RF_Saving(
- IN void * pDM_VOID,
-@@ -112,10 +57,10 @@ ODM_RF_Saving(
- }
- if(pDM_PSTable->initialize == 0){
-
-- pDM_PSTable->Reg874 = (ODM_GetBBReg(pDM_Odm, 0x874, bMaskDWord)&0x1CC000)>>14;
-- pDM_PSTable->RegC70 = (ODM_GetBBReg(pDM_Odm, 0xc70, bMaskDWord)&BIT3)>>3;
-- pDM_PSTable->Reg85C = (ODM_GetBBReg(pDM_Odm, 0x85c, bMaskDWord)&0xFF000000)>>24;
-- pDM_PSTable->RegA74 = (ODM_GetBBReg(pDM_Odm, 0xa74, bMaskDWord)&0xF000)>>12;
-+ pDM_PSTable->Reg874 = (PHY_QueryBBReg(pDM_Odm->Adapter, 0x874, bMaskDWord)&0x1CC000)>>14;
-+ pDM_PSTable->RegC70 = (PHY_QueryBBReg(pDM_Odm->Adapter, 0xc70, bMaskDWord)&BIT3)>>3;
-+ pDM_PSTable->Reg85C = (PHY_QueryBBReg(pDM_Odm->Adapter, 0x85c, bMaskDWord)&0xFF000000)>>24;
-+ pDM_PSTable->RegA74 = (PHY_QueryBBReg(pDM_Odm->Adapter, 0xa74, bMaskDWord)&0xF000)>>12;
- //Reg818 = PHY_QueryBBReg(pAdapter, 0x818, bMaskDWord);
- pDM_PSTable->initialize = 1;
- }
-@@ -150,21 +95,21 @@ ODM_RF_Saving(
- {
- if(pDM_PSTable->CurRFState == RF_Save)
- {
-- ODM_SetBBReg(pDM_Odm, 0x874 , 0x1C0000, 0x2); //Reg874[20:18]=3'b010
-- ODM_SetBBReg(pDM_Odm, 0xc70, BIT3, 0); //RegC70[3]=1'b0
-- ODM_SetBBReg(pDM_Odm, 0x85c, 0xFF000000, 0x63); //Reg85C[31:24]=0x63
-- ODM_SetBBReg(pDM_Odm, 0x874, 0xC000, 0x2); //Reg874[15:14]=2'b10
-- ODM_SetBBReg(pDM_Odm, 0xa74, 0xF000, 0x3); //RegA75[7:4]=0x3
-- ODM_SetBBReg(pDM_Odm, 0x818, BIT28, 0x0); //Reg818[28]=1'b0
-- ODM_SetBBReg(pDM_Odm, 0x818, BIT28, 0x1); //Reg818[28]=1'b1
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x874 , 0x1C0000, 0x2); //Reg874[20:18]=3'b010
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0xc70, BIT3, 0); //RegC70[3]=1'b0
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x85c, 0xFF000000, 0x63); //Reg85C[31:24]=0x63
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x874, 0xC000, 0x2); //Reg874[15:14]=2'b10
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0xa74, 0xF000, 0x3); //RegA75[7:4]=0x3
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x818, BIT28, 0x0); //Reg818[28]=1'b0
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x818, BIT28, 0x1); //Reg818[28]=1'b1
- }
- else
- {
-- ODM_SetBBReg(pDM_Odm, 0x874 , 0x1CC000, pDM_PSTable->Reg874);
-- ODM_SetBBReg(pDM_Odm, 0xc70, BIT3, pDM_PSTable->RegC70);
-- ODM_SetBBReg(pDM_Odm, 0x85c, 0xFF000000, pDM_PSTable->Reg85C);
-- ODM_SetBBReg(pDM_Odm, 0xa74, 0xF000, pDM_PSTable->RegA74);
-- ODM_SetBBReg(pDM_Odm,0x818, BIT28, 0x0);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x874 , 0x1CC000, pDM_PSTable->Reg874);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0xc70, BIT3, pDM_PSTable->RegC70);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0x85c, 0xFF000000, pDM_PSTable->Reg85C);
-+ PHY_SetBBReg(pDM_Odm->Adapter, 0xa74, 0xF000, pDM_PSTable->RegA74);
-+ PHY_SetBBReg(pDM_Odm->Adapter,0x818, BIT28, 0x0);
- }
- pDM_PSTable->PreRFState =pDM_PSTable->CurRFState;
- }
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_DynamicBBPowerSaving.h linux/3rdparty/rtl8723bs/hal/odm_DynamicBBPowerSaving.h
---- linux/3rdparty/rtl8723bs.old/hal/odm_DynamicBBPowerSaving.h 2015-05-10 14:36:05.707668335 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_DynamicBBPowerSaving.h 2015-05-07 17:46:55.000000000 +0300
-@@ -48,9 +48,4 @@ odm_DynamicBBPowerSavingInit(
- IN void * pDM_VOID
- );
-
--void
--odm_1R_CCA(
-- IN void * pDM_VOID
-- );
--
- #endif
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_DynamicTxPower.c linux/3rdparty/rtl8723bs/hal/odm_DynamicTxPower.c
---- linux/3rdparty/rtl8723bs.old/hal/odm_DynamicTxPower.c 2015-05-10 14:36:05.707668335 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_DynamicTxPower.c 2015-05-07 17:46:55.000000000 +0300
-@@ -39,50 +39,3 @@ odm_DynamicTxPowerInit(
- pdmpriv->LastDTPLvl = TxHighPwrLevel_Normal;
- pdmpriv->DynamicTxHighPowerLvl = TxHighPwrLevel_Normal;
- }
--
--void
--odm_DynamicTxPowerSavePowerIndex(
-- IN void * pDM_VOID
-- )
--{
-- PDM_ODM_T pDM_Odm = (PDM_ODM_T)pDM_VOID;
-- u1Byte index;
-- u4Byte Power_Index_REG[6] = {0xc90, 0xc91, 0xc92, 0xc98, 0xc99, 0xc9a};
--
-- PADAPTER Adapter = pDM_Odm->Adapter;
-- HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
-- struct dm_priv *pdmpriv = &pHalData->dmpriv;
-- for(index = 0; index< 6; index++)
-- pdmpriv->PowerIndex_backup[index] = rtw_read8(Adapter, Power_Index_REG[index]);
--}
--
--void
--odm_DynamicTxPowerRestorePowerIndex(
-- IN void * pDM_VOID
-- )
--{
-- PDM_ODM_T pDM_Odm = (PDM_ODM_T)pDM_VOID;
-- u1Byte index;
-- PADAPTER Adapter = pDM_Odm->Adapter;
-- HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
-- u4Byte Power_Index_REG[6] = {0xc90, 0xc91, 0xc92, 0xc98, 0xc99, 0xc9a};
--
-- struct dm_priv *pdmpriv = &pHalData->dmpriv;
-- for(index = 0; index< 6; index++)
-- rtw_write8(Adapter, Power_Index_REG[index], pdmpriv->PowerIndex_backup[index]);
--}
--
--void
--odm_DynamicTxPowerWritePowerIndex(
-- IN void * pDM_VOID,
-- IN u1Byte Value)
--{
-- PDM_ODM_T pDM_Odm = (PDM_ODM_T)pDM_VOID;
-- u1Byte index;
-- u4Byte Power_Index_REG[6] = {0xc90, 0xc91, 0xc92, 0xc98, 0xc99, 0xc9a};
--
-- for(index = 0; index< 6; index++)
-- //PlatformEFIOWrite1Byte(Adapter, Power_Index_REG[index], Value);
-- ODM_Write1Byte(pDM_Odm, Power_Index_REG[index], Value);
--
--}
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_DynamicTxPower.h linux/3rdparty/rtl8723bs/hal/odm_DynamicTxPower.h
---- linux/3rdparty/rtl8723bs.old/hal/odm_DynamicTxPower.h 2015-05-10 14:36:05.707668335 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_DynamicTxPower.h 2015-05-07 17:46:55.000000000 +0300
-@@ -42,19 +42,4 @@ odm_DynamicTxPowerInit(
- IN void * pDM_VOID
- );
-
--void
--odm_DynamicTxPowerRestorePowerIndex(
-- IN void * pDM_VOID
-- );
--
--void
--odm_DynamicTxPowerSavePowerIndex(
-- IN void * pDM_VOID
-- );
--
--void
--odm_DynamicTxPowerWritePowerIndex(
-- IN void * pDM_VOID,
-- IN u1Byte Value);
--
- #endif
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_EdcaTurboCheck.c linux/3rdparty/rtl8723bs/hal/odm_EdcaTurboCheck.c
---- linux/3rdparty/rtl8723bs.old/hal/odm_EdcaTurboCheck.c 2015-05-10 14:36:05.707668335 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_EdcaTurboCheck.c 2015-05-07 17:46:55.000000000 +0300
-@@ -34,10 +34,10 @@ ODM_EdcaTurboInit(
- pDM_Odm->DM_EDCA_Table.bIsCurRDLState = false;
- Adapter->recvpriv.bIsAnyNonBEPkts =false;
-
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_EDCA_TURBO,ODM_DBG_LOUD,("Orginial VO PARAM: 0x%x\n",ODM_Read4Byte(pDM_Odm,ODM_EDCA_VO_PARAM)));
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_EDCA_TURBO,ODM_DBG_LOUD,("Orginial VI PARAM: 0x%x\n",ODM_Read4Byte(pDM_Odm,ODM_EDCA_VI_PARAM)));
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_EDCA_TURBO,ODM_DBG_LOUD,("Orginial BE PARAM: 0x%x\n",ODM_Read4Byte(pDM_Odm,ODM_EDCA_BE_PARAM)));
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_EDCA_TURBO,ODM_DBG_LOUD,("Orginial BK PARAM: 0x%x\n",ODM_Read4Byte(pDM_Odm,ODM_EDCA_BK_PARAM)));
-+ ODM_RT_TRACE(pDM_Odm,ODM_COMP_EDCA_TURBO,ODM_DBG_LOUD,("Orginial VO PARAM: 0x%x\n",rtw_read32(pDM_Odm->Adapter,ODM_EDCA_VO_PARAM)));
-+ ODM_RT_TRACE(pDM_Odm,ODM_COMP_EDCA_TURBO,ODM_DBG_LOUD,("Orginial VI PARAM: 0x%x\n",rtw_read32(pDM_Odm->Adapter,ODM_EDCA_VI_PARAM)));
-+ ODM_RT_TRACE(pDM_Odm,ODM_COMP_EDCA_TURBO,ODM_DBG_LOUD,("Orginial BE PARAM: 0x%x\n",rtw_read32(pDM_Odm->Adapter,ODM_EDCA_BE_PARAM)));
-+ ODM_RT_TRACE(pDM_Odm,ODM_COMP_EDCA_TURBO,ODM_DBG_LOUD,("Orginial BK PARAM: 0x%x\n",rtw_read32(pDM_Odm->Adapter,ODM_EDCA_BK_PARAM)));
-
-
- } // ODM_InitEdcaTurbo
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm.h linux/3rdparty/rtl8723bs/hal/odm.h
---- linux/3rdparty/rtl8723bs.old/hal/odm.h 2015-05-10 14:36:05.708668346 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm.h 2015-05-07 17:46:55.000000000 +0300
-@@ -1515,9 +1515,6 @@ ODM_SetAntenna(
-
- //Remove BB power saving by Yuchen
-
--#define SwAntDivRestAfterLink ODM_SwAntDivRestAfterLink
--void ODM_SwAntDivRestAfterLink( IN PDM_ODM_T pDM_Odm);
--
- #define dm_CheckTXPowerTracking ODM_TXPowerTrackingCheck
- void
- ODM_TXPowerTrackingCheck(
-@@ -1539,14 +1536,6 @@ void ODM_SwAntDivChkPerPktRssi(
- IN PODM_PHY_INFO_T pPhyInfo
- );
-
--u4Byte ConvertTo_dB(u4Byte Value);
--
--u4Byte
--GetPSDData(
-- PDM_ODM_T pDM_Odm,
-- unsigned int point,
-- u1Byte initial_gain_psd);
--
- u4Byte ODM_Get_Rate_Bitmap(
- IN PDM_ODM_T pDM_Odm,
- IN u4Byte macid,
-@@ -1572,11 +1561,6 @@ ODM_DMInit(
- );
-
- void
--ODM_DMReset(
-- IN PDM_ODM_T pDM_Odm
-- );
--
--void
- ODM_DMWatchdog(
- IN PDM_ODM_T pDM_Odm // For common use in the future
- );
-@@ -1634,56 +1618,6 @@ ODM_AntselStatistics_88C(
- );
-
- void
--ODM_SingleDualAntennaDefaultSetting(
-- IN PDM_ODM_T pDM_Odm
-- );
--
--bool
--ODM_SingleDualAntennaDetection(
-- IN PDM_ODM_T pDM_Odm,
-- IN u1Byte mode
-- );
--
--void
--ODM_UpdateNoisyState(
-- IN PDM_ODM_T pDM_Odm,
-- IN bool bNoisyStateFromC2H
--);
--
--u4Byte
--Set_RA_DM_Ratrbitmap_by_Noisy(
-- IN PDM_ODM_T pDM_Odm,
-- IN WIRELESS_MODE WirelessMode,
-- IN u4Byte ratr_bitmap,
-- IN u1Byte rssi_level
--);
--
--void
--ODM_UpdateInitRate(
-- IN PDM_ODM_T pDM_Odm,
-- IN u1Byte Rate
-- );
--
--void
--ODM_InitializeTimer(
-- IN PDM_ODM_T pDM_Odm,
-- IN PRT_TIMER pTimer,
-- IN RT_TIMER_CALL_BACK CallBackFunc,
-- IN void * pContext,
-- IN const char* szID
--);
--
--void
--ODM_CancelAllTimers(
-- IN PDM_ODM_T pDM_Odm
--);
--
--void
--ODM_ReleaseAllTimers(
-- IN PDM_ODM_T pDM_Odm
--);
--
--void
- ODM_DynamicARFBSelect(
- IN PDM_ODM_T pDM_Odm,
- IN u1Byte rate,
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_HWConfig.c linux/3rdparty/rtl8723bs/hal/odm_HWConfig.c
---- linux/3rdparty/rtl8723bs.old/hal/odm_HWConfig.c 2015-05-10 14:36:05.708668346 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_HWConfig.c 2015-05-07 17:46:55.000000000 +0300
-@@ -339,14 +339,6 @@ odm_RxPhyStatus92CSeries_Parsing(
- //isCCKrate, pPhyInfo->RxPWDBAll, pPhyStaRpt->cck_agc_rpt_ofdm_cfosho_a);
- }
-
--void
--odm_Init_RSSIForDM(
-- IN OUT PDM_ODM_T pDM_Odm
-- )
--{
--
--}
--
- static void
- odm_Process_RSSIForDM(
- IN OUT PDM_ODM_T pDM_Odm,
-@@ -563,22 +555,6 @@ ODM_PhyStatusQuery(
-
- ODM_PhyStatusQuery_92CSeries(pDM_Odm,pPhyInfo,pPhyStatus,pPktinfo);
- }
--
--// For future use.
--void
--ODM_MacStatusQuery(
-- IN OUT PDM_ODM_T pDM_Odm,
-- IN pu1Byte pMacStatus,
-- IN u1Byte MacID,
-- IN bool bPacketMatchBSSID,
-- IN bool bPacketToSelf,
-- IN bool bPacketBeacon
-- )
--{
-- // 2011/10/19 Driver team will handle in the future.
--
--}
--
-
- //
- // If you want to add a new IC, Please follow below template and generate a new one.
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_HWConfig.h linux/3rdparty/rtl8723bs/hal/odm_HWConfig.h
---- linux/3rdparty/rtl8723bs.old/hal/odm_HWConfig.h 2015-05-10 14:36:05.709668358 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_HWConfig.h 2015-05-07 17:46:55.000000000 +0300
-@@ -137,11 +137,6 @@ typedef struct _Phy_Status_Rpt_8812
-
-
- void
--odm_Init_RSSIForDM(
-- IN OUT PDM_ODM_T pDM_Odm
-- );
--
--void
- ODM_PhyStatusQuery(
- IN OUT PDM_ODM_T pDM_Odm,
- OUT PODM_PHY_INFO_T pPhyInfo,
-@@ -149,15 +144,6 @@ ODM_PhyStatusQuery(
- IN PODM_PACKET_INFO_T pPktinfo
- );
-
--void
--ODM_MacStatusQuery(
-- IN OUT PDM_ODM_T pDM_Odm,
-- IN pu1Byte pMacStatus,
-- IN u1Byte MacID,
-- IN bool bPacketMatchBSSID,
-- IN bool bPacketToSelf,
-- IN bool bPacketBeacon
-- );
- HAL_STATUS
- ODM_ConfigRFWithTxPwrTrackHeaderFile(
- IN PDM_ODM_T pDM_Odm
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_interface.c linux/3rdparty/rtl8723bs/hal/odm_interface.c
---- linux/3rdparty/rtl8723bs.old/hal/odm_interface.c 2015-05-10 14:36:05.709668358 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_interface.c 1970-01-01 02:00:00.000000000 +0200
-@@ -1,268 +0,0 @@
--/******************************************************************************
-- *
-- * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or modify it
-- * under the terms of version 2 of the GNU General Public License as
-- * published by the Free Software Foundation.
-- *
-- * This program is distributed in the hope that it will be useful, but WITHOUT
-- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-- * more details.
-- *
-- * You should have received a copy of the GNU General Public License along with
-- * this program; if not, write to the Free Software Foundation, Inc.,
-- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-- *
-- *
-- ******************************************************************************/
--
--//============================================================
--// include files
--//============================================================
--
--
--#include "odm_precomp.h"
--
--//
--// ODM IO Relative API.
--//
--
--u1Byte
--ODM_Read1Byte(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr
-- )
--{
-- PADAPTER Adapter = pDM_Odm->Adapter;
-- return rtw_read8(Adapter,RegAddr);
--}
--
--
--u2Byte
--ODM_Read2Byte(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr
-- )
--{
-- PADAPTER Adapter = pDM_Odm->Adapter;
-- return rtw_read16(Adapter,RegAddr);
--}
--
--
--u4Byte
--ODM_Read4Byte(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr
-- )
--{
-- PADAPTER Adapter = pDM_Odm->Adapter;
-- return rtw_read32(Adapter,RegAddr);
--}
--
--
--void
--ODM_Write1Byte(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr,
-- IN u1Byte Data
-- )
--{
-- PADAPTER Adapter = pDM_Odm->Adapter;
-- rtw_write8(Adapter,RegAddr, Data);
--}
--
--
--void
--ODM_Write2Byte(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr,
-- IN u2Byte Data
-- )
--{
-- PADAPTER Adapter = pDM_Odm->Adapter;
-- rtw_write16(Adapter,RegAddr, Data);
--}
--
--
--void
--ODM_Write4Byte(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr,
-- IN u4Byte Data
-- )
--{
-- PADAPTER Adapter = pDM_Odm->Adapter;
-- rtw_write32(Adapter,RegAddr, Data);
--}
--
--
--void
--ODM_SetMACReg(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr,
-- IN u4Byte BitMask,
-- IN u4Byte Data
-- )
--{
--}
--
--
--u4Byte
--ODM_GetMACReg(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr,
-- IN u4Byte BitMask
-- )
--{
-- return PHY_QueryBBReg(pDM_Odm->Adapter, RegAddr, BitMask);
--}
--
--
--void
--ODM_SetBBReg(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr,
-- IN u4Byte BitMask,
-- IN u4Byte Data
-- )
--{
-- PADAPTER Adapter = pDM_Odm->Adapter;
-- PHY_SetBBReg(Adapter, RegAddr, BitMask, Data);
--}
--
--
--u4Byte
--ODM_GetBBReg(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr,
-- IN u4Byte BitMask
-- )
--{
-- PADAPTER Adapter = pDM_Odm->Adapter;
-- return PHY_QueryBBReg(Adapter, RegAddr, BitMask);
--}
--
--
--void
--ODM_SetRFReg(
-- IN PDM_ODM_T pDM_Odm,
-- IN ODM_RF_RADIO_PATH_E eRFPath,
-- IN u4Byte RegAddr,
-- IN u4Byte BitMask,
-- IN u4Byte Data
-- )
--{
-- PADAPTER Adapter = pDM_Odm->Adapter;
-- PHY_SetRFReg(Adapter, eRFPath, RegAddr, BitMask, Data);
--}
--
--
--u4Byte
--ODM_GetRFReg(
-- IN PDM_ODM_T pDM_Odm,
-- IN ODM_RF_RADIO_PATH_E eRFPath,
-- IN u4Byte RegAddr,
-- IN u4Byte BitMask
-- )
--{
-- PADAPTER Adapter = pDM_Odm->Adapter;
-- return PHY_QueryRFReg(Adapter, eRFPath, RegAddr, BitMask);
--}
--
--//
--// ODM Memory relative API.
--//
--void
--ODM_AllocateMemory(
-- IN PDM_ODM_T pDM_Odm,
-- OUT void * *pPtr,
-- IN u4Byte length
-- )
--{
-- *pPtr = rtw_zvmalloc(length);
--}
--
--// length could be ignored, used to detect memory leakage.
--void
--ODM_FreeMemory(
-- IN PDM_ODM_T pDM_Odm,
-- OUT void * pPtr,
-- IN u4Byte length
-- )
--{
-- rtw_vmfree(pPtr, length);
--}
--
--//
--// ODM Timer relative API.
--//
--void
--ODM_SetTimer(
-- IN PDM_ODM_T pDM_Odm,
-- IN PRT_TIMER pTimer,
-- IN u4Byte msDelay
-- )
--{
-- _set_timer(pTimer,msDelay ); //ms
--}
--
--void
--ODM_InitializeTimer(
-- IN PDM_ODM_T pDM_Odm,
-- IN PRT_TIMER pTimer,
-- IN RT_TIMER_CALL_BACK CallBackFunc,
-- IN void * pContext,
-- IN const char* szID
-- )
--{
-- PADAPTER Adapter = pDM_Odm->Adapter;
-- _init_timer(pTimer,Adapter->pnetdev,CallBackFunc,pDM_Odm);
--}
--
--
--void
--ODM_CancelTimer(
-- IN PDM_ODM_T pDM_Odm,
-- IN PRT_TIMER pTimer
-- )
--{
-- _cancel_timer_ex(pTimer);
--}
--
--
--void
--ODM_ReleaseTimer(
-- IN PDM_ODM_T pDM_Odm,
-- IN PRT_TIMER pTimer
-- )
--{
--}
--
--
--//
--// ODM FW relative API.
--//
--void
--ODM_FillH2CCmd(
-- IN PDM_ODM_T pDM_Odm,
-- IN u1Byte ElementID,
-- IN u4Byte CmdLen,
-- IN pu1Byte pCmdBuffer
--)
--{
-- PADAPTER Adapter = pDM_Odm->Adapter;
--
-- switch(ElementID)
-- {
-- case ODM_H2C_RSSI_REPORT:
-- FillH2CCmd8723B(Adapter, H2C_8723B_RSSI_SETTING, CmdLen, pCmdBuffer);
-- break;
-- case ODM_H2C_WIFI_CALIBRATION:
-- FillH2CCmd8723B(Adapter, H2C_8723B_BT_WLAN_CALIBRATION, CmdLen, pCmdBuffer);
-- break;
-- default:
-- break;
-- }
--}
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_interface.h linux/3rdparty/rtl8723bs/hal/odm_interface.h
---- linux/3rdparty/rtl8723bs.old/hal/odm_interface.h 2015-05-10 14:36:05.709668358 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_interface.h 2015-05-07 17:46:55.000000000 +0300
-@@ -68,169 +68,4 @@ typedef enum _ODM_H2C_CMD
- }ODM_H2C_CMD;
-
-
--//
--// 2012/02/17 MH For non-MP compile pass only. Linux does not support workitem.
--// Suggest HW team to use thread instead of workitem. Windows also support the feature.
--//
--typedef void *PRT_WORK_ITEM ;
--typedef void RT_WORKITEM_HANDLE,*PRT_WORKITEM_HANDLE;
--typedef void (*RT_WORKITEM_CALL_BACK)(void * pContext);
--
--//
--// =========== Extern Variable ??? It should be forbidden.
--//
--
--
--//
--// =========== EXtern Function Prototype
--//
--
--
--u1Byte
--ODM_Read1Byte(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr
-- );
--
--u2Byte
--ODM_Read2Byte(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr
-- );
--
--u4Byte
--ODM_Read4Byte(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr
-- );
--
--void
--ODM_Write1Byte(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr,
-- IN u1Byte Data
-- );
--
--void
--ODM_Write2Byte(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr,
-- IN u2Byte Data
-- );
--
--void
--ODM_Write4Byte(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr,
-- IN u4Byte Data
-- );
--
--void
--ODM_SetMACReg(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr,
-- IN u4Byte BitMask,
-- IN u4Byte Data
-- );
--
--u4Byte
--ODM_GetMACReg(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr,
-- IN u4Byte BitMask
-- );
--
--void
--ODM_SetBBReg(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr,
-- IN u4Byte BitMask,
-- IN u4Byte Data
-- );
--
--u4Byte
--ODM_GetBBReg(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte RegAddr,
-- IN u4Byte BitMask
-- );
--
--void
--ODM_SetRFReg(
-- IN PDM_ODM_T pDM_Odm,
-- IN ODM_RF_RADIO_PATH_E eRFPath,
-- IN u4Byte RegAddr,
-- IN u4Byte BitMask,
-- IN u4Byte Data
-- );
--
--u4Byte
--ODM_GetRFReg(
-- IN PDM_ODM_T pDM_Odm,
-- IN ODM_RF_RADIO_PATH_E eRFPath,
-- IN u4Byte RegAddr,
-- IN u4Byte BitMask
-- );
--
--
--//
--// Memory Relative Function.
--//
--void
--ODM_AllocateMemory(
-- IN PDM_ODM_T pDM_Odm,
-- OUT void * *pPtr,
-- IN u4Byte length
-- );
--void
--ODM_FreeMemory(
-- IN PDM_ODM_T pDM_Odm,
-- OUT void * pPtr,
-- IN u4Byte length
-- );
--
--//
--// ODM Timer relative API.
--//
--void
--ODM_SetTimer(
-- IN PDM_ODM_T pDM_Odm,
-- IN PRT_TIMER pTimer,
-- IN u4Byte msDelay
-- );
--
--void
--ODM_InitializeTimer(
-- IN PDM_ODM_T pDM_Odm,
-- IN PRT_TIMER pTimer,
-- IN RT_TIMER_CALL_BACK CallBackFunc,
-- IN void * pContext,
-- IN const char* szID
-- );
--
--void
--ODM_CancelTimer(
-- IN PDM_ODM_T pDM_Odm,
-- IN PRT_TIMER pTimer
-- );
--
--void
--ODM_ReleaseTimer(
-- IN PDM_ODM_T pDM_Odm,
-- IN PRT_TIMER pTimer
-- );
--
--
--//
--// ODM FW relative API.
--//
--void
--ODM_FillH2CCmd(
-- IN PDM_ODM_T pDM_Odm,
-- IN u1Byte ElementID,
-- IN u4Byte CmdLen,
-- IN pu1Byte pCmdBuffer
--);
--
- #endif // __ODM_INTERFACE_H__
--
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_NoiseMonitor.c linux/3rdparty/rtl8723bs/hal/odm_NoiseMonitor.c
---- linux/3rdparty/rtl8723bs.old/hal/odm_NoiseMonitor.c 2015-05-10 14:36:05.709668358 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_NoiseMonitor.c 2015-05-07 17:46:55.000000000 +0300
-@@ -79,18 +79,18 @@ static s16 odm_InbandNoise_Monitor_NSeri
- {
-
- //Stop updating idle time pwer report (for driver read)
-- ODM_SetBBReg(pDM_Odm, rFPGA0_TxGainStage, BIT25, 1);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_TxGainStage, BIT25, 1);
-
- //Read Noise Floor Report
-- tmp4b = ODM_GetBBReg(pDM_Odm, 0x8f8,bMaskDWord );
-+ tmp4b = PHY_QueryBBReg(pDM_Odm->Adapter, 0x8f8,bMaskDWord );
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD,("Noise Floor Report (0x8f8) = 0x%08x\n", tmp4b));
-
-- //ODM_SetBBReg(pDM_Odm, rOFDM0_XAAGCCore1, bMaskByte0, TestInitialGain);
-+ //PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XAAGCCore1, bMaskByte0, TestInitialGain);
- //if(max_rf_path == 2)
-- // ODM_SetBBReg(pDM_Odm, rOFDM0_XBAGCCore1, bMaskByte0, TestInitialGain);
-+ // PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_XBAGCCore1, bMaskByte0, TestInitialGain);
-
- //update idle time pwer report per 5us
-- ODM_SetBBReg(pDM_Odm, rFPGA0_TxGainStage, BIT25, 0);
-+ PHY_SetBBReg(pDM_Odm->Adapter, rFPGA0_TxGainStage, BIT25, 0);
-
- noise_data.value[ODM_RF_PATH_A] = (u1Byte)(tmp4b&0xff);
- noise_data.value[ODM_RF_PATH_B] = (u1Byte)((tmp4b&0xff00)>>8);
-@@ -142,14 +142,14 @@ static s16 odm_InbandNoise_Monitor_NSeri
- break;
- }
- }
-- reg_c50 = (s4Byte)ODM_GetBBReg(pDM_Odm,rOFDM0_XAAGCCore1,bMaskByte0);
-+ reg_c50 = (s4Byte)PHY_QueryBBReg(pDM_Odm->Adapter,rOFDM0_XAAGCCore1,bMaskByte0);
- reg_c50 &= ~BIT7;
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD,("0x%x = 0x%02x(%d)\n", rOFDM0_XAAGCCore1, reg_c50, reg_c50));
- pDM_Odm->noise_level.noise[ODM_RF_PATH_A] = -110 + reg_c50 + noise_data.sum[ODM_RF_PATH_A];
- pDM_Odm->noise_level.noise_all += pDM_Odm->noise_level.noise[ODM_RF_PATH_A];
-
- if(max_rf_path == 2){
-- reg_c58 = (s4Byte)ODM_GetBBReg(pDM_Odm,rOFDM0_XBAGCCore1,bMaskByte0);
-+ reg_c58 = (s4Byte)PHY_QueryBBReg(pDM_Odm->Adapter,rOFDM0_XBAGCCore1,bMaskByte0);
- reg_c58 &= ~BIT7;
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD,("0x%x = 0x%02x(%d)\n", rOFDM0_XBAGCCore1, reg_c58, reg_c58));
- pDM_Odm->noise_level.noise[ODM_RF_PATH_B] = -110 + reg_c58 + noise_data.sum[ODM_RF_PATH_B];
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_precomp.h linux/3rdparty/rtl8723bs/hal/odm_precomp.h
---- linux/3rdparty/rtl8723bs.old/hal/odm_precomp.h 2015-05-10 14:36:05.710668369 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_precomp.h 2015-05-07 17:46:55.000000000 +0300
-@@ -27,7 +27,6 @@
-
- //2 Config Flags and Structs - defined by each ODM Type
-
-- //#include
- //#include
- //#include
- //#include
-@@ -42,7 +41,6 @@
- #include "odm.h"
- #include "odm_HWConfig.h"
- #include "odm_debug.h"
--#include "odm_RegDefine11AC.h"
- #include "odm_RegDefine11N.h"
- #include "odm_AntDiv.h"
- #include "odm_EdcaTurboCheck.h"
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_RegConfig8723B.c linux/3rdparty/rtl8723bs/hal/odm_RegConfig8723B.c
---- linux/3rdparty/rtl8723bs.old/hal/odm_RegConfig8723B.c 2015-05-10 14:36:05.710668369 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_RegConfig8723B.c 2015-05-07 17:46:55.000000000 +0300
-@@ -35,7 +35,7 @@ odm_ConfigRFReg_8723B(
- }
- else
- {
-- ODM_SetRFReg(pDM_Odm, RF_PATH, RegAddr, bRFRegOffsetMask, Data);
-+ PHY_SetRFReg(pDM_Odm->Adapter, RF_PATH, RegAddr, bRFRegOffsetMask, Data);
- // Add 1us delay between BB/RF register setting.
- udelay(1);
-
-@@ -44,16 +44,16 @@ odm_ConfigRFReg_8723B(
- {
- u4Byte getvalue=0;
- u1Byte count =0;
-- getvalue = ODM_GetRFReg(pDM_Odm, RF_PATH, Addr, bMaskDWord);
-+ getvalue = PHY_QueryRFReg(pDM_Odm->Adapter, RF_PATH, Addr, bMaskDWord);
-
- udelay(1);
-
- while((getvalue>>8)!=(Data>>8))
- {
- count++;
-- ODM_SetRFReg(pDM_Odm, RF_PATH, RegAddr, bRFRegOffsetMask, Data);
-+ PHY_SetRFReg(pDM_Odm->Adapter, RF_PATH, RegAddr, bRFRegOffsetMask, Data);
- udelay(1);
-- getvalue = ODM_GetRFReg(pDM_Odm, RF_PATH, Addr, bMaskDWord);
-+ getvalue = PHY_QueryRFReg(pDM_Odm->Adapter, RF_PATH, Addr, bMaskDWord);
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_INIT, ODM_DBG_TRACE, ("===> ODM_ConfigRFWithHeaderFile: [B6] getvalue 0x%x, Data 0x%x, count %d\n", getvalue, Data,count));
- if(count>5)
- break;
-@@ -64,19 +64,19 @@ odm_ConfigRFReg_8723B(
- {
- u4Byte getvalue=0;
- u1Byte count =0;
-- getvalue = ODM_GetRFReg(pDM_Odm, RF_PATH, Addr, bMaskDWord);
-+ getvalue = PHY_QueryRFReg(pDM_Odm->Adapter, RF_PATH, Addr, bMaskDWord);
-
- udelay(1);
-
- while(getvalue!=Data)
- {
- count++;
-- ODM_SetRFReg(pDM_Odm, RF_PATH, RegAddr, bRFRegOffsetMask, Data);
-+ PHY_SetRFReg(pDM_Odm->Adapter, RF_PATH, RegAddr, bRFRegOffsetMask, Data);
- udelay(1);
- //Do LCK againg
-- ODM_SetRFReg(pDM_Odm, RF_PATH, 0x18, bRFRegOffsetMask, 0x0fc07);
-+ PHY_SetRFReg(pDM_Odm->Adapter, RF_PATH, 0x18, bRFRegOffsetMask, 0x0fc07);
- udelay(1);
-- getvalue = ODM_GetRFReg(pDM_Odm, RF_PATH, Addr, bMaskDWord);
-+ getvalue = PHY_QueryRFReg(pDM_Odm->Adapter, RF_PATH, Addr, bMaskDWord);
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_INIT, ODM_DBG_TRACE, ("===> ODM_ConfigRFWithHeaderFile: [B2] getvalue 0x%x, Data 0x%x, count %d\n", getvalue, Data,count));
- if(count>5)
- break;
-@@ -102,29 +102,13 @@ odm_ConfigRF_RadioA_8723B(
- }
-
- void
--odm_ConfigRF_RadioB_8723B(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte Addr,
-- IN u4Byte Data
-- )
--{
-- u4Byte content = 0x1001; // RF_Content: radiob_txt
-- u4Byte maskforPhySet= (u4Byte)(content&0xE000);
--
-- odm_ConfigRFReg_8723B(pDM_Odm, Addr, Data, ODM_RF_PATH_B, Addr|maskforPhySet);
--
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_INIT, ODM_DBG_TRACE, ("===> ODM_ConfigRFWithHeaderFile: [RadioB] %08X %08X\n", Addr, Data));
--
--}
--
--void
- odm_ConfigMAC_8723B(
- IN PDM_ODM_T pDM_Odm,
- IN u4Byte Addr,
- IN u1Byte Data
- )
- {
-- ODM_Write1Byte(pDM_Odm, Addr, Data);
-+ rtw_write8(pDM_Odm->Adapter, Addr, Data);
- ODM_RT_TRACE(pDM_Odm,ODM_COMP_INIT, ODM_DBG_TRACE, ("===> ODM_ConfigMACWithHeaderFile: [MAC_REG] %08X %08X\n", Addr, Data));
- }
-
-@@ -136,7 +120,7 @@ odm_ConfigBB_AGC_8723B(
- IN u4Byte Data
- )
- {
-- ODM_SetBBReg(pDM_Odm, Addr, Bitmask, Data);
-+ PHY_SetBBReg(pDM_Odm->Adapter, Addr, Bitmask, Data);
- // Add 1us delay between BB/RF register setting.
- udelay(1);
-
-@@ -185,7 +169,7 @@ odm_ConfigBB_PHY_8723B(
- udelay(1);
- else
- {
-- ODM_SetBBReg(pDM_Odm, Addr, Bitmask, Data);
-+ PHY_SetBBReg(pDM_Odm->Adapter, Addr, Bitmask, Data);
- }
-
- // Add 1us delay between BB/RF register setting.
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_RegConfig8723B.h linux/3rdparty/rtl8723bs/hal/odm_RegConfig8723B.h
---- linux/3rdparty/rtl8723bs.old/hal/odm_RegConfig8723B.h 2015-05-10 14:36:05.710668369 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_RegConfig8723B.h 2015-05-07 17:46:55.000000000 +0300
-@@ -37,13 +37,6 @@ odm_ConfigRF_RadioA_8723B(
- );
-
- void
--odm_ConfigRF_RadioB_8723B(
-- IN PDM_ODM_T pDM_Odm,
-- IN u4Byte Addr,
-- IN u4Byte Data
-- );
--
--void
- odm_ConfigMAC_8723B(
- IN PDM_ODM_T pDM_Odm,
- IN u4Byte Addr,
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_RegDefine11AC.h linux/3rdparty/rtl8723bs/hal/odm_RegDefine11AC.h
---- linux/3rdparty/rtl8723bs.old/hal/odm_RegDefine11AC.h 2015-05-10 14:36:05.710668369 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_RegDefine11AC.h 1970-01-01 02:00:00.000000000 +0200
-@@ -1,75 +0,0 @@
--/******************************************************************************
-- *
-- * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or modify it
-- * under the terms of version 2 of the GNU General Public License as
-- * published by the Free Software Foundation.
-- *
-- * This program is distributed in the hope that it will be useful, but WITHOUT
-- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-- * more details.
-- *
-- * You should have received a copy of the GNU General Public License along with
-- * this program; if not, write to the Free Software Foundation, Inc.,
-- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-- *
-- *
-- ******************************************************************************/
--
--#ifndef __ODM_REGDEFINE11AC_H__
--#define __ODM_REGDEFINE11AC_H__
--
--//2 RF REG LIST
--
--
--
--//2 BB REG LIST
--//PAGE 8
--#define ODM_REG_CCK_RPT_FORMAT_11AC 0x804
--#define ODM_REG_BB_RX_PATH_11AC 0x808
--#define ODM_REG_BB_ATC_11AC 0x860
--#define ODM_REG_DBG_RPT_11AC 0x8fc
--//PAGE 9
--#define ODM_REG_OFDM_FA_RST_11AC 0x9A4
--#define ODM_REG_NHM_TIMER_11AC 0x990
--#define ODM_REG_NHM_TH9_TH10_11AC 0x994
--#define ODM_REG_NHM_TH3_TO_TH0_11AC 0x998
--#define ODM_REG_NHM_TH7_TO_TH4_11AC 0x99c
--#define ODM_REG_NHM_TH8_11AC 0x9a0
--#define ODM_REG_NHM_9E8_11AC 0x9e8
--//PAGE A
--#define ODM_REG_CCK_CCA_11AC 0xA0A
--#define ODM_REG_CCK_FA_RST_11AC 0xA2C
--#define ODM_REG_CCK_FA_11AC 0xA5C
--//PAGE B
--#define ODM_REG_RST_RPT_11AC 0xB58
--//PAGE C
--#define ODM_REG_TRMUX_11AC 0xC08
--#define ODM_REG_IGI_A_11AC 0xC50
--//PAGE E
--#define ODM_REG_IGI_B_11AC 0xE50
--//PAGE F
--#define ODM_REG_CCK_CCA_CNT_11AC 0xF08
--#define ODM_REG_OFDM_FA_11AC 0xF48
--#define ODM_REG_RPT_11AC 0xfa0
--#define ODM_REG_NHM_CNT_11AC 0xfa8
--//PAGE 18
--#define ODM_REG_IGI_C_11AC 0x1850
--//PAGE 1A
--#define ODM_REG_IGI_D_11AC 0x1A50
--
--//2 MAC REG LIST
--#define ODM_REG_RESP_TX_11AC 0x6D8
--
--
--
--//DIG Related
--#define ODM_BIT_IGI_11AC 0xFFFFFFFF
--#define ODM_BIT_CCK_RPT_FORMAT_11AC BIT16
--#define ODM_BIT_BB_RX_PATH_11AC 0xF
--#define ODM_BIT_BB_ATC_11AC BIT14
--
--#endif
--
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_RTL8723B.c linux/3rdparty/rtl8723bs/hal/odm_RTL8723B.c
---- linux/3rdparty/rtl8723bs.old/hal/odm_RTL8723B.c 2015-05-10 14:36:05.710668369 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_RTL8723B.c 2015-05-07 17:46:55.000000000 +0300
-@@ -24,221 +24,6 @@
-
- #include "odm_precomp.h"
-
--void
--odm_DIG_8723(
-- IN PDM_ODM_T pDM_Odm
-- )
--{
-- pDIG_T pDM_DigTable = &pDM_Odm->DM_DigTable;
-- Pfalse_ALARM_STATISTICS pFalseAlmCnt = &pDM_Odm->FalseAlmCnt;
-- //pRXHP_T pRX_HP_Table = &pDM_Odm->DM_RXHP_Table;
-- u1Byte DIG_Dynamic_MIN;
-- bool FirstConnect, FirstDisConnect;
-- u1Byte dm_dig_max, dm_dig_min;
-- u1Byte CurrentIGI = pDM_DigTable->CurIGValue;
--
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG()==>\n"));
-- //if(!(pDM_Odm->SupportAbility & (ODM_BB_DIG|ODM_BB_FA_CNT)))
-- if((!(pDM_Odm->SupportAbility&ODM_BB_DIG)) ||(!(pDM_Odm->SupportAbility&ODM_BB_FA_CNT)))
-- {
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG() Return: SupportAbility ODM_BB_DIG or ODM_BB_FA_CNT is disabled\n"));
-- return;
-- }
--
-- if(*(pDM_Odm->pbScanInProcess))
-- {
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG() Return: In Scan Progress \n"));
-- return;
-- }
--
-- //add by Neil Chen to avoid PSD is processing
-- if(pDM_Odm->bDMInitialGainEnable == false)
-- {
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG() Return: PSD is Processing \n"));
-- return;
-- }
--
--
-- DIG_Dynamic_MIN = pDM_DigTable->DIG_Dynamic_MIN_0;
-- FirstConnect = (pDM_Odm->bLinked) && (pDM_DigTable->bMediaConnect_0 == false);
-- FirstDisConnect = (!pDM_Odm->bLinked) && (pDM_DigTable->bMediaConnect_0 == true);
--
-- ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): RSSI=0x%x\n",pDM_Odm->RSSI_Min));
--
-- dm_dig_max = 0x5A;
--
--
-- dm_dig_min = DM_DIG_MIN_NIC_8723;
--
-- if(pDM_Odm->bLinked)
-- {
-- //BT is Concurrent
-- if(pDM_Odm->bBtLimitedDig)
-- {
-- if(( pDM_Odm->RSSI_Min + 10) > DM_DIG_MAX_NIC )
-- pDM_DigTable->rx_gain_range_max = DM_DIG_MAX_NIC;
-- else if(( pDM_Odm->RSSI_Min + 10) < DM_DIG_MIN_NIC )
-- pDM_DigTable->rx_gain_range_max = DM_DIG_MIN_NIC;
-- else
-- pDM_DigTable->rx_gain_range_max = pDM_Odm->RSSI_Min + 10;
--
-- if(pDM_Odm->RSSI_Min>10)
-- {
-- if((pDM_Odm->RSSI_Min - 10) > DM_DIG_MAX_NIC)
-- DIG_Dynamic_MIN = DM_DIG_MAX_NIC;
-- else if((pDM_Odm->RSSI_Min - 10) < DM_DIG_MIN_NIC_8723)
-- DIG_Dynamic_MIN = DM_DIG_MIN_NIC_8723;
-- else
-- DIG_Dynamic_MIN = pDM_Odm->RSSI_Min - 10;
-- }
-- else
-- DIG_Dynamic_MIN=DM_DIG_MIN_NIC_8723;
-- }
-- else
-- {
-- if((pDM_Odm->RSSI_Min + 20) > dm_dig_max )
-- pDM_DigTable->rx_gain_range_max = dm_dig_max;
-- else if((pDM_Odm->RSSI_Min + 20) < dm_dig_min )
-- pDM_DigTable->rx_gain_range_max = dm_dig_min;
-- else
-- pDM_DigTable->rx_gain_range_max = pDM_Odm->RSSI_Min + 20;
--
--
-- if(pDM_Odm->RSSI_Min>20)
-- {
-- if((pDM_Odm->RSSI_Min - 20) > DM_DIG_MAX_NIC)
-- DIG_Dynamic_MIN = DM_DIG_MAX_NIC;
-- else if((pDM_Odm->RSSI_Min - 20) < DM_DIG_MIN_NIC_8723)
-- DIG_Dynamic_MIN = DM_DIG_MIN_NIC_8723;
-- else
-- DIG_Dynamic_MIN = pDM_Odm->RSSI_Min -20;
-- }
-- else
-- DIG_Dynamic_MIN=DM_DIG_MIN_NIC_8723;
--
--
-- }
-- }
-- else
-- {
-- pDM_DigTable->rx_gain_range_max = dm_dig_max;
-- pDM_DigTable->rx_gain_range_min = DM_DIG_MIN_NIC_8723;
-- DIG_Dynamic_MIN = dm_dig_min;
-- ODM_RT_TRACE(pDM_Odm,ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG() : No Link\n"));
-- }
--
-- ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG():pDM_DigTable->Recover_cnt=%d\n",pDM_DigTable->Recover_cnt));
--
-- //1 Adjust initial gain by false alarm
-- if(pDM_Odm->bLinked)
-- {
-- ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): DIG AfterLink\n"));
-- if(FirstConnect)
-- {
-- CurrentIGI = pDM_Odm->RSSI_Min;
-- ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("DIG: First Connect\n"));
-- }
-- else
-- {
-- //FA for Combo IC--NeilChen--2012--09--28
-- //WLAN and BT ConCurrent
-- if(pDM_Odm->bBtLimitedDig)
-- {
-- if(pFalseAlmCnt->Cnt_all > 0x500)
-- CurrentIGI = CurrentIGI + 4;
-- else if (pFalseAlmCnt->Cnt_all > 0x300)
-- CurrentIGI = CurrentIGI + 2;
-- else if(pFalseAlmCnt->Cnt_all <0x150)
-- CurrentIGI = CurrentIGI -2;
-- }
-- else //Not Concurrent
-- {
-- if(pFalseAlmCnt->Cnt_all > 0x400)
-- CurrentIGI = CurrentIGI + 4;//pDM_DigTable->CurIGValue = pDM_DigTable->PreIGValue+2;
-- else if (pFalseAlmCnt->Cnt_all > 0x200)
-- CurrentIGI = CurrentIGI + 2;//pDM_DigTable->CurIGValue = pDM_DigTable->PreIGValue+1;
-- else if(pFalseAlmCnt->Cnt_all < 0x100)
-- CurrentIGI = CurrentIGI - 2;//pDM_DigTable->CurIGValue =pDM_DigTable->PreIGValue-1;
-- }
-- }
-- }
-- else
-- {
-- CurrentIGI = pDM_DigTable->rx_gain_range_min;//pDM_DigTable->CurIGValue = pDM_DigTable->rx_gain_range_min
-- ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): DIG BeforeLink\n"));
-- if(FirstDisConnect)
-- {
-- CurrentIGI = pDM_DigTable->rx_gain_range_min;
-- ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): First DisConnect \n"));
-- }
-- else
-- {
-- //2012.03.30 LukeLee: enable DIG before link but with very high thresholds
-- if(pFalseAlmCnt->Cnt_all > 10000)
-- CurrentIGI = CurrentIGI + 4;
-- else if (pFalseAlmCnt->Cnt_all > 8000)
-- CurrentIGI = CurrentIGI + 2;
-- else if(pFalseAlmCnt->Cnt_all < 500)
-- CurrentIGI = CurrentIGI - 2;
-- ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): England DIG \n"));
-- }
-- }
-- ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): DIG End Adjust IGI\n"));
-- //1 Check initial gain by upper/lower bound
--
-- if(CurrentIGI > pDM_DigTable->rx_gain_range_max)
-- CurrentIGI = pDM_DigTable->rx_gain_range_max;
-- if(CurrentIGI < pDM_DigTable->rx_gain_range_min)
-- CurrentIGI = pDM_DigTable->rx_gain_range_min;
--
-- ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): rx_gain_range_max=0x%x, rx_gain_range_min=0x%x\n",
-- pDM_DigTable->rx_gain_range_max, pDM_DigTable->rx_gain_range_min));
-- ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): TotalFA=%d\n", pFalseAlmCnt->Cnt_all));
-- ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): CurIGValue=0x%x\n", CurrentIGI));
--
-- ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): RSSI=0x%x\n",pDM_Odm->RSSI_Min));
--
-- if(pDM_Odm->bBtHsOperation)
-- {
-- if(pDM_Odm->bLinked)
-- {
-- if(pDM_DigTable->BT30_CurIGI > (CurrentIGI))
-- {
-- ODM_Write_DIG(pDM_Odm, CurrentIGI);
--
-- }
-- else
-- {
-- ODM_Write_DIG(pDM_Odm, pDM_DigTable->BT30_CurIGI);
-- }
-- pDM_DigTable->bMediaConnect_0 = pDM_Odm->bLinked;
-- pDM_DigTable->DIG_Dynamic_MIN_0 = DIG_Dynamic_MIN;
-- }
-- else
-- {
-- if(pDM_Odm->bLinkInProcess)
-- {
-- ODM_Write_DIG(pDM_Odm, 0x1c);
-- }
-- else if(pDM_Odm->bBtConnectProcess)
-- {
-- ODM_Write_DIG(pDM_Odm, 0x28);
-- }
-- else
-- {
-- ODM_Write_DIG(pDM_Odm, pDM_DigTable->BT30_CurIGI);//ODM_Write_DIG(pDM_Odm, pDM_DigTable->CurIGValue);
-- }
-- }
-- }
-- else // BT is not using
-- {
-- ODM_Write_DIG(pDM_Odm, CurrentIGI);//ODM_Write_DIG(pDM_Odm, pDM_DigTable->CurIGValue);
-- pDM_DigTable->bMediaConnect_0 = pDM_Odm->bLinked;
-- pDM_DigTable->DIG_Dynamic_MIN_0 = DIG_Dynamic_MIN;
-- }
--}
--
--
- s8
- odm_CCKRSSI_8723B(
- IN u1Byte LNA_idx,
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/odm_RTL8723B.h linux/3rdparty/rtl8723bs/hal/odm_RTL8723B.h
---- linux/3rdparty/rtl8723bs.old/hal/odm_RTL8723B.h 2015-05-10 14:36:05.711668380 +0300
-+++ linux/3rdparty/rtl8723bs/hal/odm_RTL8723B.h 2015-05-07 17:46:55.000000000 +0300
-@@ -22,9 +22,6 @@
-
- #define DM_DIG_MIN_NIC_8723 0x1C
-
--void
--odm_DIG_8723(IN PDM_ODM_T pDM_Odm);
--
- s8
- odm_CCKRSSI_8723B(
- IN u1Byte LNA_idx,
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/rtl8723b_cmd.c linux/3rdparty/rtl8723bs/hal/rtl8723b_cmd.c
---- linux/3rdparty/rtl8723bs.old/hal/rtl8723b_cmd.c 2015-05-10 14:36:05.712668391 +0300
-+++ linux/3rdparty/rtl8723bs/hal/rtl8723b_cmd.c 2015-05-07 17:46:55.000000000 +0300
-@@ -76,7 +76,8 @@ _func_enter_;
-
- padapter = GET_PRIMARY_ADAPTER(padapter);
- pHalData = GET_HAL_DATA(padapter);
-- _enter_critical_mutex(&(adapter_to_dvobj(padapter)->h2c_fwcmd_mutex), NULL);
-+ if (mutex_lock_interruptible(&(adapter_to_dvobj(padapter)->h2c_fwcmd_mutex)))
-+ return ret;
-
- if (!pCmdBuffer) {
- goto exit;
-@@ -130,7 +131,7 @@ _func_enter_;
-
- exit:
-
-- _exit_critical_mutex(&(adapter_to_dvobj(padapter)->h2c_fwcmd_mutex), NULL);
-+ mutex_unlock(&(adapter_to_dvobj(padapter)->h2c_fwcmd_mutex));
-
- _func_exit_;
-
-@@ -396,11 +397,7 @@ static void ConstructARPResponse(
-
- //SET_80211_HDR_DURATION(pARPRspPkt, 0);
- //SET_80211_HDR_FRAGMENT_SEQUENCE(pARPRspPkt, 0);
--#ifdef CONFIG_WAPI_SUPPORT
-- *pLength = sMacHdrLng;
--#else
- *pLength = 24;
--#endif
-
- //-------------------------------------------------------------------------
- // Security Header: leave space for it if necessary.
-@@ -418,11 +415,6 @@ static void ConstructARPResponse(
- case _AES_:
- EncryptionHeadOverhead = 8;
- break;
--#ifdef CONFIG_WAPI_SUPPORT
-- case _SMS4_:
-- EncryptionHeadOverhead = 18;
-- break;
--#endif
- default:
- EncryptionHeadOverhead = 0;
- }
-@@ -664,11 +656,7 @@ static void ConstructGTKResponse(
- SetSeqNum(pwlanhdr, 0);
- SetDuration(pwlanhdr, 0);
-
--#ifdef CONFIG_WAPI_SUPPORT
-- *pLength = sMacHdrLng;
--#else
- *pLength = 24;
--#endif //CONFIG_WAPI_SUPPORT
-
- //-------------------------------------------------------------------------
- // Security Header: leave space for it if necessary.
-@@ -686,11 +674,6 @@ static void ConstructGTKResponse(
- case _AES_:
- EncryptionHeadOverhead = 8;
- break;
--#ifdef CONFIG_WAPI_SUPPORT
-- case _SMS4_:
-- EncryptionHeadOverhead = 18;
-- break;
--#endif //CONFIG_WAPI_SUPPORT
- default:
- EncryptionHeadOverhead = 0;
- }
-@@ -789,11 +772,9 @@ static void ConstructProbeRsp(_adapter *
- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
- WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network);
--#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
- u8 *pwps_ie;
- uint wps_ielen;
- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
--#endif //#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
-
- //DBG_871X("%s\n", __FUNCTION__);
-
-@@ -1273,37 +1254,13 @@ _func_enter_;
- _func_exit_;
- }
-
--void rtl8723b_set_FwBtMpOper_cmd(PADAPTER padapter, u8 idx, u8 ver, u8 reqnum, u8 *param)
--{
-- u8 u1H2CBtMpOperParm[H2C_BTMP_OPER_LEN+1]={0};
--
--_func_enter_;
--
-- DBG_8192C("%s: idx=%d ver=%d reqnum=%d param1=0x%02x param2=0x%02x\n", __FUNCTION__, idx, ver, reqnum, param[0], param[1]);
--
-- SET_8723B_H2CCMD_BT_MPOPER_VER(u1H2CBtMpOperParm, ver);
-- SET_8723B_H2CCMD_BT_MPOPER_REQNUM(u1H2CBtMpOperParm, reqnum);
-- SET_8723B_H2CCMD_BT_MPOPER_IDX(u1H2CBtMpOperParm, idx);
-- SET_8723B_H2CCMD_BT_MPOPER_PARAM1(u1H2CBtMpOperParm, param[0]);
-- SET_8723B_H2CCMD_BT_MPOPER_PARAM2(u1H2CBtMpOperParm, param[1]);
-- SET_8723B_H2CCMD_BT_MPOPER_PARAM3(u1H2CBtMpOperParm, param[2]);
--
-- RT_PRINT_DATA(_module_hal_init_c_, _drv_always_, "u1H2CBtMpOperParm:", u1H2CBtMpOperParm, H2C_BTMP_OPER_LEN);
--
-- FillH2CCmd8723B(padapter, H2C_8723B_BT_MP_OPER, H2C_BTMP_OPER_LEN+1, u1H2CBtMpOperParm);
--_func_exit_;
--}
--
- void rtl8723b_set_FwPwrModeInIPS_cmd(PADAPTER padapter, u8 cmd_param)
- {
-- //u8 cmd_param; //BIT0:enable, BIT1:NoConnect32k
-+ //BIT0:enable, BIT1:NoConnect32k
-
- DBG_871X("%s()\n", __func__);
-
-- cmd_param = cmd_param;
--
- FillH2CCmd8723B(padapter, H2C_8723B_FWLPS_IN_IPS_, 1, &cmd_param);
--
- }
-
- #ifdef CONFIG_WOWLAN
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/rtl8723b_dm.c linux/3rdparty/rtl8723bs/hal/rtl8723b_dm.c
---- linux/3rdparty/rtl8723bs.old/hal/rtl8723b_dm.c 2015-05-10 14:36:05.712668391 +0300
-+++ linux/3rdparty/rtl8723bs/hal/rtl8723b_dm.c 2015-05-07 17:46:55.000000000 +0300
-@@ -42,36 +42,6 @@ dm_CheckStatistics(
- )
- {
- }
--#ifdef CONFIG_SUPPORT_HW_WPS_PBC
--static void dm_CheckPbcGPIO(_adapter *padapter)
--{
-- u8 tmp1byte;
-- u8 bPbcPressed = false;
--
-- if(!padapter->registrypriv.hw_wps_pbc)
-- return;
--
-- tmp1byte = rtw_read8(padapter, GPIO_IN);
-- //RT_TRACE(COMP_IO, DBG_TRACE, ("dm_CheckPbcGPIO - %x\n", tmp1byte));
--
-- if (tmp1byte == 0xff || padapter->init_adpt_in_progress)
-- return ;
--
-- if((tmp1byte&HAL_8192C_HW_GPIO_WPS_BIT)==0)
-- {
-- bPbcPressed = true;
-- }
--
-- if( true == bPbcPressed)
-- {
-- // Here we only set bPbcPressed to true
-- // After trigger PBC, the variable will be set to false
-- DBG_8192C("CheckPbcGPIO - PBC is pressed\n");
-- rtw_request_wps_pbc_event(padapter);
-- }
--}
--#endif //#ifdef CONFIG_SUPPORT_HW_WPS_PBC
--
- //============================================================
- // functions
- //============================================================
-@@ -277,17 +247,6 @@ rtl8723b_HalDmWatchDog(
- }
-
- skip_dm:
--
-- // Check GPIO to determine current RF on/off and Pbc status.
-- // Check Hardware Radio ON/OFF or not
-- //if(Adapter->MgntInfo.PowerSaveControl.bGpioRfSw)
-- //{
-- //RTPRINT(FPWR, PWRHW, ("dm_CheckRfCtrlGPIO \n"));
-- // dm_CheckRfCtrlGPIO(Adapter);
-- //}
--#ifdef CONFIG_SUPPORT_HW_WPS_PBC
-- dm_CheckPbcGPIO(Adapter);
--#endif
- return;
- }
-
-@@ -386,14 +345,5 @@ void rtl8723b_init_dm_priv(IN PADAPTER A
- PDM_ODM_T podmpriv = &pHalData->odmpriv;
- memset(pdmpriv, 0, sizeof(struct dm_priv));
- Init_ODM_ComInfo_8723b(Adapter);
-- ODM_InitAllTimers(podmpriv );
--}
--
--void rtl8723b_deinit_dm_priv(IN PADAPTER Adapter)
--{
-- PHAL_DATA_TYPE pHalData = GET_HAL_DATA(Adapter);
-- struct dm_priv *pdmpriv = &pHalData->dmpriv;
-- PDM_ODM_T podmpriv = &pHalData->odmpriv;
-- ODM_CancelAllTimers(podmpriv);
- }
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/rtl8723b_hal_init.c linux/3rdparty/rtl8723bs/hal/rtl8723b_hal_init.c
---- linux/3rdparty/rtl8723bs.old/hal/rtl8723b_hal_init.c 2015-05-10 14:36:05.715668424 +0300
-+++ linux/3rdparty/rtl8723bs/hal/rtl8723b_hal_init.c 2015-05-07 17:46:55.000000000 +0300
-@@ -557,9 +557,9 @@ fwdl_stat:
-
- exit:
- if (pFirmware)
-- rtw_mfree((u8*)pFirmware, sizeof(RT_FIRMWARE_8723B));
-+ kfree((u8*)pFirmware);
- if (pBTFirmware)
-- rtw_mfree((u8*)pBTFirmware, sizeof(RT_FIRMWARE_8723B));
-+ kfree((u8*)pBTFirmware);
- DBG_871X(" <=== rtl8723b_FirmwareDownload()\n");
- return rtStatus;
- }
-@@ -971,7 +971,6 @@ hal_ReadEFuse_WiFi(
- if(0)
- {
- for(i=0; i<256; i++)
-- //ReadEFuseByte(padapter, i, &efuseTbl[i], false);
- efuse_OneByteRead(padapter, i, &efuseTbl[i], false);
- DBG_871X("Efuse Content:\n");
- for(i=0; i<256; i++)
-@@ -990,7 +989,6 @@ if(0)
-
- while (AVAILABLE_EFUSE_ADDR(eFuse_Addr))
- {
-- //ReadEFuseByte(padapter, eFuse_Addr++, &efuseHeader, bPseudoTest);
- efuse_OneByteRead(padapter, eFuse_Addr++, &efuseHeader, bPseudoTest);
- if (efuseHeader == 0xFF)
- {
-@@ -1005,7 +1003,6 @@ if(0)
- offset = GET_HDR_OFFSET_2_0(efuseHeader);
- //DBG_8192C("%s: extended header offset=0x%X\n", __FUNCTION__, offset);
-
-- //ReadEFuseByte(padapter, eFuse_Addr++, &efuseExtHdr, bPseudoTest);
- efuse_OneByteRead(padapter, eFuse_Addr++, &efuseExtHdr, bPseudoTest);
- //DBG_8192C("%s: efuse[0x%X]=0x%02X\n", __FUNCTION__, eFuse_Addr-1, efuseExtHdr);
- if (ALL_WORDS_DISABLED(efuseExtHdr))
-@@ -1035,12 +1032,10 @@ if(0)
- // Check word enable condition in the section
- if (!(wden & (0x01<RegCR_1 = rtw_read8(padapter, REG_CR+1);
- }
-
--void rtl8723b_InitBeaconMaxError(PADAPTER padapter, u8 InfraMode)
--{
--#ifdef RTL8192CU_ADHOC_WORKAROUND_SETTING
-- rtw_write8(padapter, REG_BCN_MAX_ERR, 0xFF);
--#else
-- //rtw_write8(Adapter, REG_BCN_MAX_ERR, (InfraMode ? 0xFF : 0x10));
--#endif
--}
--
- void _InitBurstPktLen_8723BS(PADAPTER Adapter)
- {
- HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
-@@ -2453,7 +2429,6 @@ void rtl8723b_set_hal_ops(struct hal_ops
- pHalFunc->free_hal_data = &rtl8723b_free_hal_data;
-
- pHalFunc->dm_init = &rtl8723b_init_dm_priv;
-- pHalFunc->dm_deinit = &rtl8723b_deinit_dm_priv;
-
- pHalFunc->read_chip_version = &rtl8723b_read_chip_version;
-
-@@ -2519,35 +2494,6 @@ void rtl8723b_InitAntenna_Selection(PADA
- rtw_write8(padapter, REG_LEDCFG2, val);
- }
-
--void rtl8723b_CheckAntenna_Selection(PADAPTER padapter)
--{
-- PHAL_DATA_TYPE pHalData;
-- u8 val;
--
--
-- pHalData = GET_HAL_DATA(padapter);
--
-- val = rtw_read8(padapter, REG_LEDCFG2);
-- // Let 8051 take control antenna settting
-- if(!(val &BIT(7))){
-- val |= BIT(7); // DPDT_SEL_EN, 0x4C[23]
-- rtw_write8(padapter, REG_LEDCFG2, val);
-- }
--}
--void rtl8723b_DeinitAntenna_Selection(PADAPTER padapter)
--{
-- PHAL_DATA_TYPE pHalData;
-- u8 val;
--
--
-- pHalData = GET_HAL_DATA(padapter);
-- val = rtw_read8(padapter, REG_LEDCFG2);
-- // Let 8051 take control antenna settting
-- val &= ~BIT(7); // DPDT_SEL_EN, clear 0x4C[23]
-- rtw_write8(padapter, REG_LEDCFG2, val);
--
--}
--
- void rtl8723b_init_default_value(PADAPTER padapter)
- {
- PHAL_DATA_TYPE pHalData;
-@@ -2655,319 +2601,6 @@ s32 rtl8723b_InitLLTTable(PADAPTER padap
- return ret;
- }
-
--static void _DisableGPIO(PADAPTER padapter)
--{
--/***************************************
--j. GPIO_PIN_CTRL 0x44[31:0]=0x000 //
--k.Value = GPIO_PIN_CTRL[7:0]
--l. GPIO_PIN_CTRL 0x44[31:0] = 0x00FF0000 | (value <<8); //write external PIN level
--m. GPIO_MUXCFG 0x42 [15:0] = 0x0780
--n. LEDCFG 0x4C[15:0] = 0x8080
--***************************************/
-- u8 value8;
-- u16 value16;
-- u32 value32;
-- u32 u4bTmp;
--
--
-- //1. Disable GPIO[7:0]
-- rtw_write16(padapter, REG_GPIO_PIN_CTRL+2, 0x0000);
-- value32 = rtw_read32(padapter, REG_GPIO_PIN_CTRL) & 0xFFFF00FF;
-- u4bTmp = value32 & 0x000000FF;
-- value32 |= ((u4bTmp<<8) | 0x00FF0000);
-- rtw_write32(padapter, REG_GPIO_PIN_CTRL, value32);
--
-- //2. Disable GPIO[10:8]
-- rtw_write8(padapter, REG_MAC_PINMUX_CFG, 0x00);
-- value16 = rtw_read16(padapter, REG_GPIO_IO_SEL) & 0xFF0F;
-- value8 = (u8) (value16&0x000F);
-- value16 |= ((value8<<4) | 0x0780);
-- rtw_write16(padapter, REG_GPIO_IO_SEL, value16);
--
-- //3. Disable LED0 & 1
-- rtw_write16(padapter, REG_LEDCFG0, 0x8080);
--// RT_TRACE(COMP_INIT, DBG_LOUD, ("======> Disable GPIO and LED.\n"));
--} //end of _DisableGPIO()
--
--static void _DisableRFAFEAndResetBB8192C(PADAPTER padapter)
--{
--/**************************************
--a. TXPAUSE 0x522[7:0] = 0xFF //Pause MAC TX queue
--b. RF path 0 offset 0x00 = 0x00 // disable RF
--c. APSD_CTRL 0x600[7:0] = 0x40
--d. SYS_FUNC_EN 0x02[7:0] = 0x16 //reset BB state machine
--e. SYS_FUNC_EN 0x02[7:0] = 0x14 //reset BB state machine
--***************************************/
-- u8 eRFPath = 0, value8 = 0;
--
-- rtw_write8(padapter, REG_TXPAUSE, 0xFF);
--
-- PHY_SetRFReg(padapter, (RF_PATH)eRFPath, 0x0, bMaskByte0, 0x0);
--
-- value8 |= APSDOFF;
-- rtw_write8(padapter, REG_APSD_CTRL, value8);//0x40
--
-- // Set BB reset at first
-- value8 = 0 ;
-- value8 |= (FEN_USBD | FEN_USBA | FEN_BB_GLB_RSTn);
-- rtw_write8(padapter, REG_SYS_FUNC_EN, value8 );//0x16
--
-- // Set global reset.
-- value8 &= ~FEN_BB_GLB_RSTn;
-- rtw_write8(padapter, REG_SYS_FUNC_EN, value8); //0x14
--
-- // 2010/08/12 MH We need to set BB/GLBAL reset to save power for SS mode.
--
--// RT_TRACE(COMP_INIT, DBG_LOUD, ("======> RF off and reset BB.\n"));
--}
--
--static void _DisableRFAFEAndResetBB(PADAPTER padapter)
--{
-- _DisableRFAFEAndResetBB8192C(padapter);
--}
--
--static void _ResetDigitalProcedure1_92C(PADAPTER padapter, bool bWithoutHWSM)
--{
-- HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
--
-- if (IS_FW_81xxC(padapter) && (pHalData->FirmwareVersion <= 0x20))
-- {
-- /*****************************
-- f. MCUFWDL 0x80[7:0]=0 // reset MCU ready status
-- g. SYS_FUNC_EN 0x02[10]= 0 // reset MCU register, (8051 reset)
-- h. SYS_FUNC_EN 0x02[15-12]= 5 // reset MAC register, DCORE
-- i. SYS_FUNC_EN 0x02[10]= 1 // enable MCU register, (8051 enable)
-- ******************************/
-- u16 valu16 = 0;
-- rtw_write8(padapter, REG_MCUFWDL, 0);
--
-- valu16 = rtw_read16(padapter, REG_SYS_FUNC_EN);
-- rtw_write16(padapter, REG_SYS_FUNC_EN, (valu16 & (~FEN_CPUEN)));//reset MCU ,8051
--
-- valu16 = rtw_read16(padapter, REG_SYS_FUNC_EN)&0x0FFF;
-- rtw_write16(padapter, REG_SYS_FUNC_EN, (valu16 |(FEN_HWPDN|FEN_ELDR)));//reset MAC
--
-- valu16 = rtw_read16(padapter, REG_SYS_FUNC_EN);
-- rtw_write16(padapter, REG_SYS_FUNC_EN, (valu16 | FEN_CPUEN));//enable MCU ,8051
-- }
-- else
-- {
-- u8 retry_cnts = 0;
--
-- // 2010/08/12 MH For USB SS, we can not stop 8051 when we are trying to
-- // enter IPS/HW&SW radio off. For S3/S4/S5/Disable, we can stop 8051 because
-- // we will init FW when power on again.
-- //if(!pDevice->RegUsbSS)
-- { // If we want to SS mode, we can not reset 8051.
-- if(rtw_read8(padapter, REG_MCUFWDL) & BIT1)
-- { //IF fw in RAM code, do reset
--
--
-- if(padapter->bFWReady)
-- {
-- // 2010/08/25 MH Accordign to RD alfred's suggestion, we need to disable other
-- // HRCV INT to influence 8051 reset.
-- rtw_write8(padapter, REG_FWIMR, 0x20);
-- // 2011/02/15 MH According to Alex's suggestion, close mask to prevent incorrect FW write operation.
-- rtw_write8(padapter, REG_FTIMR, 0x00);
-- rtw_write8(padapter, REG_FSIMR, 0x00);
--
-- rtw_write8(padapter, REG_HMETFR+3, 0x20);//8051 reset by self
--
-- while( (retry_cnts++ <100) && (FEN_CPUEN &rtw_read16(padapter, REG_SYS_FUNC_EN)))
-- {
-- udelay(50);//us
-- // 2010/08/25 For test only We keep on reset 5051 to prevent fail.
-- //rtw_write8(padapter, REG_HMETFR+3, 0x20);//8051 reset by self
-- }
--// RT_ASSERT((retry_cnts < 100), ("8051 reset failed!\n"));
--
-- if (retry_cnts >= 100)
-- {
-- // if 8051 reset fail we trigger GPIO 0 for LA
-- //rtw_write32( padapter,
-- // REG_GPIO_PIN_CTRL,
-- // 0x00010100);
-- // 2010/08/31 MH According to Filen's info, if 8051 reset fail, reset MAC directly.
-- rtw_write8(padapter, REG_SYS_FUNC_EN+1, 0x50); //Reset MAC and Enable 8051
-- mdelay(10);
-- }
--// else
--// RT_TRACE(COMP_INIT, DBG_LOUD, ("=====> 8051 reset success (%d) .\n",retry_cnts));
-- }
-- }
--// else
--// {
--// RT_TRACE(COMP_INIT, DBG_LOUD, ("=====> 8051 in ROM.\n"));
--// }
-- rtw_write8(padapter, REG_SYS_FUNC_EN+1, 0x54); //Reset MAC and Enable 8051
-- rtw_write8(padapter, REG_MCUFWDL, 0);
-- }
-- }
--
-- //if(pDevice->RegUsbSS)
-- //bWithoutHWSM = true; // Sugest by Filen and Issau.
--
-- if(bWithoutHWSM)
-- {
-- //HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
-- /*****************************
-- Without HW auto state machine
-- g. SYS_CLKR 0x08[15:0] = 0x30A3 //disable MAC clock
-- h. AFE_PLL_CTRL 0x28[7:0] = 0x80 //disable AFE PLL
-- i. AFE_XTAL_CTRL 0x24[15:0] = 0x880F //gated AFE DIG_CLOCK
-- j. SYS_ISO_CTRL 0x00[7:0] = 0xF9 // isolated digital to PON
-- ******************************/
-- //rtw_write16(padapter, REG_SYS_CLKR, 0x30A3);
-- //if(!pDevice->RegUsbSS)
-- // 2011/01/26 MH SD4 Scott suggest to fix UNC-B cut bug.
-- //if (IS_81xxC_VENDOR_UMC_B_CUT(pHalData->VersionID))
-- //rtw_write16(padapter, REG_SYS_CLKR, (0x70A3|BIT6)); //modify to 0x70A3 by Scott.
-- //else
-- rtw_write16(padapter, REG_SYS_CLKR, 0x70A3); //modify to 0x70A3 by Scott.
-- rtw_write8(padapter, REG_AFE_PLL_CTRL, 0x80);
-- rtw_write16(padapter, REG_AFE_XTAL_CTRL, 0x880F);
-- //if(!pDevice->RegUsbSS)
-- rtw_write8(padapter, REG_SYS_ISO_CTRL, 0xF9);
-- }
-- else
-- {
-- // Disable all RF/BB power
-- rtw_write8(padapter, REG_RF_CTRL, 0x00);
-- }
--// RT_TRACE(COMP_INIT, DBG_LOUD, ("======> Reset Digital.\n"));
--
--}
--
--static void _ResetDigitalProcedure1(PADAPTER padapter, bool bWithoutHWSM)
--{
-- _ResetDigitalProcedure1_92C(padapter, bWithoutHWSM);
--}
--
--static void _ResetDigitalProcedure2(PADAPTER padapter)
--{
-- //HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
--/*****************************
--k. SYS_FUNC_EN 0x03[7:0] = 0x44 // disable ELDR runction
--l. SYS_CLKR 0x08[15:0] = 0x3083 // disable ELDR clock
--m. SYS_ISO_CTRL 0x01[7:0] = 0x83 // isolated ELDR to PON
--******************************/
-- //rtw_write8(padapter, REG_SYS_FUNC_EN+1, 0x44); //marked by Scott.
-- // 2011/01/26 MH SD4 Scott suggest to fix UNC-B cut bug.
-- //if (IS_81xxC_VENDOR_UMC_B_CUT(pHalData->VersionID))
-- //rtw_write16(padapter, REG_SYS_CLKR, 0x70a3|BIT6);
-- //else
-- rtw_write16(padapter, REG_SYS_CLKR, 0x70a3); //modify to 0x70a3 by Scott.
-- rtw_write8(padapter, REG_SYS_ISO_CTRL+1, 0x82); //modify to 0x82 by Scott.
--}
--
--static void _DisableAnalog(PADAPTER padapter, bool bWithoutHWSM)
--{
-- HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
-- u16 value16 = 0;
-- u8 value8 = 0;
--
--
-- if (bWithoutHWSM)
-- {
-- /*****************************
-- n. LDOA15_CTRL 0x20[7:0] = 0x04 // disable A15 power
-- o. LDOV12D_CTRL 0x21[7:0] = 0x54 // disable digital core power
-- r. When driver call disable, the ASIC will turn off remaining clock automatically
-- ******************************/
--
-- rtw_write8(padapter, REG_LDOA15_CTRL, 0x04);
-- //rtw_write8(padapter, REG_LDOV12D_CTRL, 0x54);
--
-- value8 = rtw_read8(padapter, REG_LDOV12D_CTRL);
-- value8 &= (~LDV12_EN);
-- rtw_write8(padapter, REG_LDOV12D_CTRL, value8);
--// RT_TRACE(COMP_INIT, DBG_LOUD, (" REG_LDOV12D_CTRL Reg0x21:0x%02x.\n",value8));
-- }
--
-- /*****************************
-- h. SPS0_CTRL 0x11[7:0] = 0x23 //enter PFM mode
-- i. APS_FSMCO 0x04[15:0] = 0x4802 // set USB suspend
-- ******************************/
-- value8 = 0x23;
--
-- rtw_write8(padapter, REG_SPS0_CTRL, value8);
--
-- if(bWithoutHWSM)
-- {
-- //value16 |= (APDM_HOST | /*AFSM_HSUS |*/PFM_ALDN);
-- // 2010/08/31 According to Filen description, we need to use HW to shut down 8051 automatically.
-- // Becasue suspend operatione need the asistance of 8051 to wait for 3ms.
-- value16 |= (APDM_HOST | AFSM_HSUS | PFM_ALDN);
-- }
-- else
-- {
-- value16 |= (APDM_HOST | AFSM_HSUS | PFM_ALDN);
-- }
--
-- rtw_write16(padapter, REG_APS_FSMCO, value16);//0x4802
--
-- rtw_write8(padapter, REG_RSV_CTRL, 0x0e);
--
--// RT_TRACE(COMP_INIT, DBG_LOUD, ("======> Disable Analog Reg0x04:0x%04x.\n",value16));
--}
--
--// HW Auto state machine
--s32 CardDisableHWSM(PADAPTER padapter, u8 resetMCU)
--{
-- int rtStatus = _SUCCESS;
--
--
-- if (padapter->bSurpriseRemoved){
-- return rtStatus;
-- }
-- //==== RF Off Sequence ====
-- _DisableRFAFEAndResetBB(padapter);
--
-- // ==== Reset digital sequence ======
-- _ResetDigitalProcedure1(padapter, false);
--
-- // ==== Pull GPIO PIN to balance level and LED control ======
-- _DisableGPIO(padapter);
--
-- // ==== Disable analog sequence ===
-- _DisableAnalog(padapter, false);
--
-- RT_TRACE(_module_hci_hal_init_c_, _drv_info_, ("======> Card disable finished.\n"));
--
-- return rtStatus;
--}
--
--// without HW Auto state machine
--s32 CardDisableWithoutHWSM(PADAPTER padapter)
--{
-- s32 rtStatus = _SUCCESS;
--
--
-- //RT_TRACE(COMP_INIT, DBG_LOUD, ("======> Card Disable Without HWSM .\n"));
-- if (padapter->bSurpriseRemoved) {
-- return rtStatus;
-- }
--
-- //==== RF Off Sequence ====
-- _DisableRFAFEAndResetBB(padapter);
--
-- // ==== Reset digital sequence ======
-- _ResetDigitalProcedure1(padapter, true);
--
-- // ==== Pull GPIO PIN to balance level and LED control ======
-- _DisableGPIO(padapter);
--
-- // ==== Reset digital sequence ======
-- _ResetDigitalProcedure2(padapter);
--
-- // ==== Disable analog sequence ===
-- _DisableAnalog(padapter, true);
--
-- //RT_TRACE(COMP_INIT, DBG_LOUD, ("<====== Card Disable Without HWSM .\n"));
-- return rtStatus;
--}
--
- static bool
- Hal_GetChnlGroup8723B(
- IN u8 Channel,
-@@ -3710,11 +3343,6 @@ static u8 fill_txdesc_sectype(struct pkt
- sectype = 1;
- break;
-
--#ifdef CONFIG_WAPI_SUPPORT
-- case _SMS4_:
-- sectype = 2;
-- break;
--#endif
- case _AES_:
- sectype = 3;
- break;
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/rtl8723b_phycfg.c linux/3rdparty/rtl8723bs/hal/rtl8723b_phycfg.c
---- linux/3rdparty/rtl8723bs.old/hal/rtl8723b_phycfg.c 2015-05-10 14:36:05.715668424 +0300
-+++ linux/3rdparty/rtl8723bs/hal/rtl8723b_phycfg.c 2015-05-07 17:46:55.000000000 +0300
-@@ -291,11 +291,6 @@ phy_RFSerialWrite_8723B(
- Offset &= 0xff;
-
- //
-- // Shadow Update
-- //
-- //PHY_RFShadowWrite(Adapter, eRFPath, Offset, Data);
--
-- //
- // Switch page for 8256 RF IC
- //
- NewOffset = Offset;
-@@ -661,31 +656,6 @@ PHY_RFConfig8723B(
- return rtStatus;
- }
-
--/*-----------------------------------------------------------------------------
-- * Function: PHY_ConfigRFWithParaFile()
-- *
-- * Overview: This function read RF parameters from general file format, and do RF 3-wire
-- *
-- * Input: PADAPTER Adapter
-- * s8 * pFileName
-- * RF_PATH eRFPath
-- *
-- * Output: NONE
-- *
-- * Return: RT_STATUS_SUCCESS: configuration file exist
-- *
-- * Note: Delay may be required for RF configuration
-- *---------------------------------------------------------------------------*/
--int
--PHY_ConfigRFWithParaFile_8723B(
-- IN PADAPTER Adapter,
-- IN u8* pFileName,
-- RF_PATH eRFPath
--)
--{
-- return _SUCCESS;
--}
--
- /**************************************************************************************************************
- * Description:
- * The low-level interface to set TxAGC , called by both MP and Normal Driver.
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/rtl8723b_rxdesc.c linux/3rdparty/rtl8723bs/hal/rtl8723b_rxdesc.c
---- linux/3rdparty/rtl8723bs.old/hal/rtl8723b_rxdesc.c 2015-05-10 14:36:05.716668435 +0300
-+++ linux/3rdparty/rtl8723bs/hal/rtl8723b_rxdesc.c 2015-05-07 17:46:55.000000000 +0300
-@@ -92,45 +92,3 @@ void rtl8723b_process_phy_info(_adapter
- #endif
-
- }
--
--void rtl8723b_query_rx_desc_status(union recv_frame *precvframe, u8 *pdesc)
--{
-- struct rx_pkt_attrib *pattrib = &precvframe->u.hdr.attrib;
--
-- memset(pattrib, 0, sizeof(struct rx_pkt_attrib));
--
-- //Offset 0
-- pattrib->pkt_len = (u16)GET_RX_STATUS_DESC_PKT_LEN_8723B(pdesc);//(le32_to_cpu(pdesc->rxdw0)&0x00003fff)
-- pattrib->crc_err = (u8)GET_RX_STATUS_DESC_CRC32_8723B(pdesc);//((le32_to_cpu(pdesc->rxdw0) >> 14) & 0x1);
-- pattrib->icv_err = (u8)GET_RX_STATUS_DESC_ICV_8723B(pdesc);//((le32_to_cpu(pdesc->rxdw0) >> 15) & 0x1);
-- pattrib->drvinfo_sz = (u8)GET_RX_STATUS_DESC_DRVINFO_SIZE_8723B(pdesc) * 8;//((le32_to_cpu(pdesc->rxdw0) >> 16) & 0xf) * 8;//uint 2^3 = 8 bytes
-- pattrib->encrypt = (u8)GET_RX_STATUS_DESC_SECURITY_8723B(pdesc);//((le32_to_cpu(pdesc->rxdw0) >> 20) & 0x7);
-- pattrib->qos = (u8)GET_RX_STATUS_DESC_QOS_8723B(pdesc);//(( le32_to_cpu( pdesc->rxdw0 ) >> 23) & 0x1);// Qos data, wireless lan header length is 26
-- pattrib->shift_sz = (u8)GET_RX_STATUS_DESC_SHIFT_8723B(pdesc);//((le32_to_cpu(pdesc->rxdw0) >> 24) & 0x3);
-- pattrib->physt = (u8)GET_RX_STATUS_DESC_PHY_STATUS_8723B(pdesc);//((le32_to_cpu(pdesc->rxdw0) >> 26) & 0x1);
-- pattrib->bdecrypted = !GET_RX_STATUS_DESC_SWDEC_8723B(pdesc);//(le32_to_cpu(pdesc->rxdw0) & BIT(27))? 0:1;
--
-- //Offset 4
-- pattrib->priority = (u8)GET_RX_STATUS_DESC_TID_8723B(pdesc);//((le32_to_cpu(pdesc->rxdw1) >> 8) & 0xf);
-- pattrib->mdata = (u8)GET_RX_STATUS_DESC_MORE_DATA_8723B(pdesc);//((le32_to_cpu(pdesc->rxdw1) >> 26) & 0x1);
-- pattrib->mfrag = (u8)GET_RX_STATUS_DESC_MORE_FRAG_8723B(pdesc);//((le32_to_cpu(pdesc->rxdw1) >> 27) & 0x1);//more fragment bit
--
-- //Offset 8
-- pattrib->seq_num = (u16)GET_RX_STATUS_DESC_SEQ_8723B(pdesc);//(le32_to_cpu(pdesc->rxdw2) & 0x00000fff);
-- pattrib->frag_num = (u8)GET_RX_STATUS_DESC_FRAG_8723B(pdesc);//((le32_to_cpu(pdesc->rxdw2) >> 12) & 0xf);//fragmentation number
--
-- if (GET_RX_STATUS_DESC_RPT_SEL_8723B(pdesc))
-- pattrib->pkt_rpt_type = C2H_PACKET;
-- else
-- pattrib->pkt_rpt_type = NORMAL_RX;
--
-- //Offset 12
-- pattrib->data_rate=(u8)GET_RX_STATUS_DESC_RX_RATE_8723B(pdesc);//((le32_to_cpu(pdesc->rxdw3))&0x7f);
--
-- //Offset 16
-- //Offset 20
--
--}
--
--
--
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/rtl8723bs_led.c linux/3rdparty/rtl8723bs/hal/rtl8723bs_led.c
---- linux/3rdparty/rtl8723bs.old/hal/rtl8723bs_led.c 2015-05-10 14:36:05.716668435 +0300
-+++ linux/3rdparty/rtl8723bs/hal/rtl8723bs_led.c 1970-01-01 02:00:00.000000000 +0200
-@@ -1,58 +0,0 @@
--/******************************************************************************
-- *
-- * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or modify it
-- * under the terms of version 2 of the GNU General Public License as
-- * published by the Free Software Foundation.
-- *
-- * This program is distributed in the hope that it will be useful, but WITHOUT
-- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-- * more details.
-- *
-- * You should have received a copy of the GNU General Public License along with
-- * this program; if not, write to the Free Software Foundation, Inc.,
-- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-- *
-- *
-- ******************************************************************************/
--#define _RTL8723BS_LED_C_
--
--#include "rtl8723b_hal.h"
--
--//================================================================================
--// LED object.
--//================================================================================
--
--//================================================================================
--// Interface to manipulate LED objects.
--//================================================================================
--
--//================================================================================
--// Default LED behavior.
--//================================================================================
--
--//
--// Description:
--// Initialize all LED_871x objects.
--//
--void
--rtl8723bs_InitSwLeds(
-- _adapter *padapter
-- )
--{
--}
--
--
--//
--// Description:
--// DeInitialize all LED_819xUsb objects.
--//
--void
--rtl8723bs_DeInitSwLeds(
-- _adapter *padapter
-- )
--{
--}
--
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/rtl8723bs_recv.c linux/3rdparty/rtl8723bs/hal/rtl8723bs_recv.c
---- linux/3rdparty/rtl8723bs.old/hal/rtl8723bs_recv.c 2015-05-10 14:36:05.716668435 +0300
-+++ linux/3rdparty/rtl8723bs/hal/rtl8723bs_recv.c 2015-05-07 17:46:55.000000000 +0300
-@@ -24,7 +24,7 @@
-
- static s32 initrecvbuf(struct recv_buf *precvbuf, PADAPTER padapter)
- {
-- _rtw_init_listhead(&precvbuf->list);
-+ INIT_LIST_HEAD(&precvbuf->list);
- spin_lock_init(&precvbuf->recvbuf_lock);
-
- precvbuf->adapter = padapter;
-@@ -137,10 +137,10 @@ static void update_recvframe_phyinfo(
- pkt_info.DataRate = pattrib->data_rate;
-
- //rtl8723b_query_rx_phy_status(precvframe, pphy_status);
-- //_enter_critical_bh(&pHalData->odm_stainfo_lock, &irqL);
-+ //spin_lock_bh(&pHalData->odm_stainfo_lock);
- ODM_PhyStatusQuery(&pHalData->odmpriv,pPHYInfo,(u8 *)pphy_status,&(pkt_info));
- if(psta) psta->rssi = pattrib->phy_info.RecvSignalPower;
-- //_exit_critical_bh(&pHalData->odm_stainfo_lock, &irqL);
-+ //spin_unlock_bh(&pHalData->odm_stainfo_lock);
- precvframe->u.hdr.psta = NULL;
- if (pkt_info.bPacketMatchBSSID &&
- (check_fwstate(&padapter->mlmepriv, WIFI_AP_STATE) == true))
-@@ -182,8 +182,8 @@ static void rtl8723bs_c2h_packet_handler
-
- res = rtw_c2h_packet_wk_cmd(padapter, tmpBuf, length);
-
-- if (res == false && tmpBuf != NULL)
-- rtw_mfree(tmpBuf, length);
-+ if (res == false)
-+ kfree(tmpBuf);
-
- //DBG_871X("-%s res(%d)\n", __func__, res);
-
-@@ -434,10 +434,6 @@ s32 rtl8723bs_init_recv_priv(PADAPTER pa
- if (res == _FAIL)
- break;
-
-- res = rtw_os_recvbuf_resource_alloc(padapter, precvbuf);
-- if (res == _FAIL)
-- break;
--
- if (precvbuf->pskb == NULL) {
- SIZE_PTR tmpaddr=0;
- SIZE_PTR alignment=0;
-@@ -458,7 +454,7 @@ s32 rtl8723bs_init_recv_priv(PADAPTER pa
- }
- }
-
-- rtw_list_insert_tail(&precvbuf->list, &precvpriv->free_recv_buf_queue.queue);
-+ list_add_tail(&precvbuf->list, &precvpriv->free_recv_buf_queue.queue);
-
- precvbuf++;
- }
-@@ -481,7 +477,7 @@ initbuferror:
- precvpriv->free_recv_buf_queue_cnt = 0;
- for (i = 0; i < n ; i++)
- {
-- rtw_list_delete(&precvbuf->list);
-+ list_del_init(&precvbuf->list);
- rtw_os_recvbuf_resource_free(padapter, precvbuf);
- precvbuf++;
- }
-@@ -490,7 +486,7 @@ initbuferror:
-
- if (precvpriv->pallocated_recv_buf) {
- n = NR_RECVBUFF * sizeof(struct recv_buf) + 4;
-- rtw_mfree(precvpriv->pallocated_recv_buf, n);
-+ kfree(precvpriv->pallocated_recv_buf);
- precvpriv->pallocated_recv_buf = NULL;
- }
-
-@@ -523,7 +519,7 @@ void rtl8723bs_free_recv_priv(PADAPTER p
- precvpriv->free_recv_buf_queue_cnt = 0;
- for (i = 0; i < n ; i++)
- {
-- rtw_list_delete(&precvbuf->list);
-+ list_del_init(&precvbuf->list);
- rtw_os_recvbuf_resource_free(padapter, precvbuf);
- precvbuf++;
- }
-@@ -532,7 +528,7 @@ void rtl8723bs_free_recv_priv(PADAPTER p
-
- if (precvpriv->pallocated_recv_buf) {
- n = NR_RECVBUFF * sizeof(struct recv_buf) + 4;
-- rtw_mfree(precvpriv->pallocated_recv_buf, n);
-+ kfree(precvpriv->pallocated_recv_buf);
- precvpriv->pallocated_recv_buf = NULL;
- }
- }
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/rtl8723bs_xmit.c linux/3rdparty/rtl8723bs/hal/rtl8723bs_xmit.c
---- linux/3rdparty/rtl8723bs.old/hal/rtl8723bs_xmit.c 2015-05-10 14:36:05.716668435 +0300
-+++ linux/3rdparty/rtl8723bs/hal/rtl8723bs_xmit.c 2015-05-07 17:46:55.000000000 +0300
-@@ -244,13 +244,13 @@ static s32 xmit_xmitframes(PADAPTER pada
-
- max_xmit_len = rtw_hal_get_sdio_tx_max_length(padapter, inx[idx]);
-
-- _enter_critical_bh(&pxmitpriv->lock, &irql);
-+ spin_lock_bh(&pxmitpriv->lock);
-
- sta_phead = get_list_head(phwxmit->sta_queue);
- sta_plist = get_next(sta_phead);
- //because stop_sta_xmit may delete sta_plist at any time
- //so we should add lock here, or while loop can not exit
-- while (rtw_end_of_queue_search(sta_phead, sta_plist) == false)
-+ while (sta_phead != sta_plist)
- {
- ptxservq = LIST_CONTAINOR(sta_plist, struct tx_servq, tx_pending);
- sta_plist = get_next(sta_plist);
-@@ -265,7 +265,7 @@ static s32 xmit_xmitframes(PADAPTER pada
-
- frame_phead = get_list_head(pframe_queue);
-
-- while (rtw_is_list_empty(frame_phead) == false)
-+ while (list_empty(frame_phead) == false)
- {
- frame_plist = get_next(frame_phead);
- pxmitframe = LIST_CONTAINOR(frame_plist, struct xmit_frame, list);
-@@ -310,7 +310,6 @@ static s32 xmit_xmitframes(PADAPTER pada
- }
-
- // ok to send, remove frame from queue
--#ifdef CONFIG_AP_MODE
- if (check_fwstate(&padapter->mlmepriv, WIFI_AP_STATE) == true) {
- if ((pxmitframe->attrib.psta->state & WIFI_SLEEP_STATE) &&
- (pxmitframe->attrib.triggered == 0)) {
-@@ -319,8 +318,8 @@ static s32 xmit_xmitframes(PADAPTER pada
- break;
- }
- }
--#endif
-- rtw_list_delete(&pxmitframe->list);
-+
-+ list_del_init(&pxmitframe->list);
- ptxservq->qcnt--;
- phwxmit->accnt--;
-
-@@ -357,12 +356,12 @@ static s32 xmit_xmitframes(PADAPTER pada
- pxmitframe = NULL;
- }
-
-- if (_rtw_queue_empty(pframe_queue) == true)
-- rtw_list_delete(&ptxservq->tx_pending);
-+ if (list_empty(&pframe_queue->queue))
-+ list_del_init(&ptxservq->tx_pending);
-
- if (err) break;
- }
-- _exit_critical_bh(&pxmitpriv->lock, &irql);
-+ spin_unlock_bh(&pxmitpriv->lock);
-
- // dump xmit_buf to hw tx fifo
- if (pxmitbuf)
-@@ -422,9 +421,9 @@ next:
- return _FAIL;
- }
-
-- _enter_critical_bh(&pxmitpriv->lock, &irql);
-+ spin_lock_bh(&pxmitpriv->lock);
- ret = rtw_txframes_pending(padapter);
-- _exit_critical_bh(&pxmitpriv->lock, &irql);
-+ spin_unlock_bh(&pxmitpriv->lock);
- if (ret == 0) {
- return _SUCCESS;
- }
-@@ -442,9 +441,9 @@ next:
- goto next;
- }
-
-- _enter_critical_bh(&pxmitpriv->lock, &irql);
-+ spin_lock_bh(&pxmitpriv->lock);
- ret = rtw_txframes_pending(padapter);
-- _exit_critical_bh(&pxmitpriv->lock, &irql);
-+ spin_unlock_bh(&pxmitpriv->lock);
- if (ret == 1) {
- goto next;
- }
-@@ -559,9 +558,9 @@ s32 rtl8723bs_hal_xmit(PADAPTER padapter
- rtw_issue_addbareq_cmd(padapter, pxmitframe);
- }
-
-- _enter_critical_bh(&pxmitpriv->lock, &irql);
-+ spin_lock_bh(&pxmitpriv->lock);
- err = rtw_xmitframe_enqueue(padapter, pxmitframe);
-- _exit_critical_bh(&pxmitpriv->lock, &irql);
-+ spin_unlock_bh(&pxmitpriv->lock);
- if (err != _SUCCESS) {
- RT_TRACE(_module_hal_xmit_c_, _drv_err_, ("rtl8723bs_hal_xmit: enqueue xmitframe fail\n"));
- rtw_free_xmitframe(pxmitpriv, pxmitframe);
-@@ -635,23 +634,23 @@ void rtl8723bs_free_xmit_priv(PADAPTER p
- pxmitpriv = &padapter->xmitpriv;
- pqueue = &pxmitpriv->pending_xmitbuf_queue;
- phead = get_list_head(pqueue);
-- _rtw_init_listhead(&tmplist);
-+ INIT_LIST_HEAD(&tmplist);
-
-- _enter_critical_bh(&pqueue->lock, &irql);
-- if (_rtw_queue_empty(pqueue) == false)
-+ spin_lock_bh(&pqueue->lock);
-+ if (!list_empty(&pqueue->queue))
- {
- // Insert tmplist to end of queue, and delete phead
- // then tmplist become head of queue.
-- rtw_list_insert_tail(&tmplist, phead);
-- rtw_list_delete(phead);
-+ list_add_tail(&tmplist, phead);
-+ list_del_init(phead);
- }
-- _exit_critical_bh(&pqueue->lock, &irql);
-+ spin_unlock_bh(&pqueue->lock);
-
- phead = &tmplist;
-- while (rtw_is_list_empty(phead) == false)
-+ while (list_empty(phead) == false)
- {
- plist = get_next(phead);
-- rtw_list_delete(plist);
-+ list_del_init(plist);
-
- pxmitbuf = LIST_CONTAINOR(plist, struct xmit_buf, list);
- rtw_free_xmitframe(pxmitpriv, (struct xmit_frame*)pxmitbuf->priv_data);
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/sdio_halinit.c linux/3rdparty/rtl8723bs/hal/sdio_halinit.c
---- linux/3rdparty/rtl8723bs.old/hal/sdio_halinit.c 2015-05-10 14:36:05.717668447 +0300
-+++ linux/3rdparty/rtl8723bs/hal/sdio_halinit.c 2015-05-07 17:46:55.000000000 +0300
-@@ -962,7 +962,6 @@ static u32 rtl8723bs_hal_init(PADAPTER p
- _initSdioAggregationSetting(padapter);
- _InitOperationMode(padapter);
- rtl8723b_InitBeaconParameters(padapter);
-- rtl8723b_InitBeaconMaxError(padapter, true);
- _InitInterrupt(padapter);
- _InitBurstPktLen_8723BS(padapter);
-
-@@ -970,17 +969,8 @@ static u32 rtl8723bs_hal_init(PADAPTER p
- rtw_write8(padapter, REG_SECONDARY_CCA_CTRL_8723B, 0x3); // CCA
- rtw_write8(padapter, 0x976, 0); // hpfan_todo: 2nd CCA related
-
--#if defined(CONFIG_TX_MCAST2UNI)
--
--#ifdef CONFIG_TX_MCAST2UNI
- rtw_write16(padapter, REG_PKT_VO_VI_LIFE_TIME, 0x0400); // unit: 256us. 256ms
- rtw_write16(padapter, REG_PKT_BE_BK_LIFE_TIME, 0x0400); // unit: 256us. 256ms
--#else // CONFIG_TX_MCAST2UNI
-- rtw_write16(padapter, REG_PKT_VO_VI_LIFE_TIME, 0x3000); // unit: 256us. 3s
-- rtw_write16(padapter, REG_PKT_BE_BK_LIFE_TIME, 0x3000); // unit: 256us. 3s
--#endif // CONFIG_TX_MCAST2UNI
--#endif // CONFIG_TX_MCAST2UNI
--
-
- invalidate_cam_all(padapter);
-
-@@ -1540,7 +1530,7 @@ static void SetHwReg8723BS(PADAPTER pada
- PHAL_DATA_TYPE pHalData;
- u8 val8;
-
--#if defined(CONFIG_WOWLAN) || defined(CONFIG_AP_MODE)
-+#if defined(CONFIG_WOWLAN)
- struct wowlan_ioctl_param *poidparam;
- struct recv_buf *precvbuf;
- struct pwrctrl_priv *pwrctl = adapter_to_pwrctl(padapter);
-@@ -1596,12 +1586,6 @@ _func_enter_;
- case WOWLAN_ENABLE:
- DBG_871X_LEVEL(_drv_always_, "WOWLAN_ENABLE\n");
-
-- #ifndef DYNAMIC_CAMID_ALLOC
-- val8 = (psecuritypriv->dot11AuthAlgrthm == dot11AuthAlgrthm_8021X)? 0xcc: 0xcf;
-- rtw_write8(padapter, REG_SECCFG, val8);
-- DBG_871X_LEVEL(_drv_always_, "REG_SECCFG: %02x\n", rtw_read8(padapter, REG_SECCFG));
-- #endif
--
- //backup data rate to register 0x8b for wowlan FW
- rtw_write8(padapter, 0x8d, 1);
- rtw_write8(padapter, 0x8c, 0);
-@@ -1682,11 +1666,6 @@ _func_enter_;
- else
- DBG_871X("psta is null\n");
-
-- #ifndef DYNAMIC_CAMID_ALLOC
-- rtw_write8(padapter, REG_SECCFG, 0x0c|BIT(5));// enable tx enc and rx dec engine, and no key search for MC/BC
-- DBG_871X_LEVEL(_drv_always_, "REG_SECCFG: %02x\n", rtw_read8(padapter, REG_SECCFG));
-- #endif
--
- // 1. Read wakeup reason
- pwrctl->wowlan_wake_reason = rtw_read8(padapter, REG_WOWLAN_WAKE_REASON);
- DBG_871X_LEVEL(_drv_always_, "wakeup_reason: 0x%02x, mac_630=0x%08x, mac_634=0x%08x, mac_1c0=0x%08x, mac_1c4=0x%08x"
-@@ -2033,9 +2012,6 @@ _func_enter_;
- pHalFunc->init_recv_priv = &rtl8723bs_init_recv_priv;
- pHalFunc->free_recv_priv = &rtl8723bs_free_recv_priv;
-
-- pHalFunc->InitSwLeds = &rtl8723bs_InitSwLeds;
-- pHalFunc->DeInitSwLeds = &rtl8723bs_DeInitSwLeds;
--
- pHalFunc->init_default_value = &rtl8723bs_init_default_value;
- pHalFunc->intf_chip_configure = &rtl8723bs_interface_configure;
- pHalFunc->read_adapter_info = &ReadAdapterInfo8723BS;
-diff -Nurp linux/3rdparty/rtl8723bs.old/hal/sdio_ops.c linux/3rdparty/rtl8723bs/hal/sdio_ops.c
---- linux/3rdparty/rtl8723bs.old/hal/sdio_ops.c 2015-05-10 14:36:05.718668458 +0300
-+++ linux/3rdparty/rtl8723bs/hal/sdio_ops.c 2015-05-07 17:46:55.000000000 +0300
-@@ -239,7 +239,7 @@ _func_enter_;
- memcpy(&val, ptmpbuf+shift, 4);
- val = le32_to_cpu(val);
-
-- rtw_mfree(ptmpbuf, 8);
-+ kfree(ptmpbuf);
- }
-
- _func_exit_;
-@@ -288,7 +288,7 @@ _func_enter_;
- err = sd_read(pintfhdl, ftaddr, n, ptmpbuf);
- if (!err)
- memcpy(pbuf, ptmpbuf+shift, cnt);
-- rtw_mfree(ptmpbuf, n);
-+ kfree(ptmpbuf);
- }
-
- _func_exit_;
-@@ -409,12 +409,12 @@ _func_enter_;
- if (NULL == ptmpbuf) return -1;
- err = sd_read(pintfhdl, ftaddr, 4, ptmpbuf);
- if (err) {
-- rtw_mfree(ptmpbuf, n);
-+ kfree(ptmpbuf);
- return err;
- }
- memcpy(ptmpbuf+shift, pbuf, cnt);
- err = sd_write(pintfhdl, ftaddr, n, ptmpbuf);
-- rtw_mfree(ptmpbuf, n);
-+ kfree(ptmpbuf);
- }
-
- _func_exit_;
-@@ -518,7 +518,7 @@ static u32 sdio_read_port(
- #ifdef SDIO_DYNAMIC_ALLOC_MEM
- if ((oldcnt != cnt) && (oldmem)) {
- memcpy(oldmem, mem, oldcnt);
-- rtw_mfree(mem, cnt);
-+ kfree(mem);
- }
- #endif
-
-@@ -602,7 +602,7 @@ _func_exit_;
- /*
- * Todo: align address to 4 bytes.
- */
--s32 _sdio_local_read(
-+static s32 _sdio_local_read(
- PADAPTER padapter,
- u32 addr,
- u32 cnt,
-@@ -636,7 +636,7 @@ s32 _sdio_local_read(
- memcpy(pbuf, ptmpbuf, cnt);
-
- if (ptmpbuf)
-- rtw_mfree(ptmpbuf, n);
-+ kfree(ptmpbuf);
-
- return err;
- }
-@@ -678,53 +678,7 @@ s32 sdio_local_read(
- memcpy(pbuf, ptmpbuf, cnt);
-
- if (ptmpbuf)
-- rtw_mfree(ptmpbuf, n);
--
-- return err;
--}
--
--/*
-- * Todo: align address to 4 bytes.
-- */
--s32 _sdio_local_write(
-- PADAPTER padapter,
-- u32 addr,
-- u32 cnt,
-- u8 *pbuf)
--{
-- struct intf_hdl * pintfhdl;
-- u8 bMacPwrCtrlOn;
-- s32 err;
-- u8 *ptmpbuf;
--
-- if(addr & 0x3)
-- DBG_8192C("%s, address must be 4 bytes alignment\n", __FUNCTION__);
--
-- if(cnt & 0x3)
-- DBG_8192C("%s, size must be the multiple of 4 \n", __FUNCTION__);
--
-- pintfhdl=&padapter->iopriv.intf;
--
-- HalSdioGetCmdAddr8723BSdio(padapter, SDIO_LOCAL_DEVICE_ID, addr, &addr);
--
-- rtw_hal_get_hwreg(padapter, HW_VAR_APFM_ON_MAC, &bMacPwrCtrlOn);
-- if ((false == bMacPwrCtrlOn)
-- || (true == adapter_to_pwrctl(padapter)->bFwCurrentInPSMode))
-- {
-- err = _sd_cmd52_write(pintfhdl, addr, cnt, pbuf);
-- return err;
-- }
--
-- ptmpbuf = (u8*)rtw_malloc(cnt);
-- if (!ptmpbuf)
-- return (-1);
--
-- memcpy(ptmpbuf, pbuf, cnt);
--
-- err = _sd_write(pintfhdl, addr, cnt, ptmpbuf);
--
-- if (ptmpbuf)
-- rtw_mfree(ptmpbuf, cnt);
-+ kfree(ptmpbuf);
-
- return err;
- }
-@@ -769,8 +723,7 @@ s32 sdio_local_write(
-
- err = sd_write(pintfhdl, addr, cnt, ptmpbuf);
-
-- if (ptmpbuf)
-- rtw_mfree(ptmpbuf, cnt);
-+ kfree(ptmpbuf);
-
- return err;
- }
-@@ -957,7 +910,7 @@ void ClearInterrupt8723BSdio(PADAPTER pa
- sdio_local_write(padapter, SDIO_REG_HISR, 4, clear);
- }
-
-- rtw_mfree(clear, 4);
-+ kfree(clear);
- }
- #endif
-
-@@ -1037,22 +990,6 @@ u8 CheckIPSStatus(PADAPTER padapter)
- return false;
- }
-
--#ifdef CONFIG_WOWLAN
--void DisableInterruptButCpwm28723BSdio(PADAPTER padapter)
--{
-- u32 himr, tmp;
--
-- sdio_local_read(padapter, SDIO_REG_HIMR, 4, (u8*)&tmp);
-- DBG_871X("DisableInterruptButCpwm28723BSdio(): Read SDIO_REG_HIMR: 0x%08x\n", tmp);
--
-- himr = cpu_to_le32(SDIO_HIMR_DISABLED)|SDIO_HIMR_CPWM2_MSK;
-- sdio_local_write(padapter, SDIO_REG_HIMR, 4, (u8*)&himr);
--
-- sdio_local_read(padapter, SDIO_REG_HIMR, 4, (u8*)&tmp);
-- DBG_871X("DisableInterruptButCpwm28723BSdio(): Read again SDIO_REG_HIMR: 0x%08x\n", tmp);
--}
--#endif //CONFIG_WOWLAN
--
- static struct recv_buf* sd_recv_rxfifo(PADAPTER padapter, u32 size)
- {
- u32 readsize, ret;
-@@ -1097,7 +1034,6 @@ static struct recv_buf* sd_recv_rxfifo(P
-
- //3 3. read data from rxfifo
- preadbuf = precvbuf->pskb->data;
--// rtw_read_port(padapter, WLAN_RX0FF_DEVICE_ID, readsize, preadbuf);
- ret = sdio_read_port(&padapter->iopriv.intf, WLAN_RX0FF_DEVICE_ID, readsize, preadbuf);
- if (ret == _FAIL) {
- RT_TRACE(_module_hci_ops_os_c_, _drv_err_, ("%s: read port FAIL!\n", __FUNCTION__));
-@@ -1150,9 +1086,9 @@ void sd_int_dpc(PADAPTER padapter)
- u8 freepage[4];
-
- _sdio_local_read(padapter, SDIO_REG_FREE_TXPG, 4, freepage);
-- //_enter_critical_bh(&phal->SdioTxFIFOFreePageLock, &irql);
-+ //spin_lock_bh(&phal->SdioTxFIFOFreePageLock);
- //memcpy(phal->SdioTxFIFOFreePage, freepage, 4);
-- //_exit_critical_bh(&phal->SdioTxFIFOFreePageLock, &irql);
-+ //spin_unlock_bh(&phal->SdioTxFIFOFreePageLock);
- //DBG_871X("SDIO_HISR_AVAL, Tx Free Page = 0x%x%x%x%x\n",
- // freepage[0],
- // freepage[1],
-@@ -1186,7 +1122,7 @@ void sd_int_dpc(PADAPTER padapter)
- _sd_read(pintfhdl, addr, 4, status);
- _sd_write(pintfhdl, addr, 4, status);
- DBG_8192C("%s: SDIO_HISR_TXERR (0x%08x)\n", __func__, le32_to_cpu(*(u32*)status));
-- rtw_mfree(status, 4);
-+ kfree(status);
- } else {
- DBG_8192C("%s: SDIO_HISR_TXERR, but can't allocate memory to read status!\n", __func__);
- }
-@@ -1212,7 +1148,7 @@ void sd_int_dpc(PADAPTER padapter)
- if (c2h_id_filter_ccx_8723b((u8 *)c2h_evt)) {
- /* Handle CCX report here */
- rtw_hal_c2h_handler(padapter, (u8 *)c2h_evt);
-- rtw_mfree((u8*)c2h_evt, 16);
-+ kfree((u8*)c2h_evt);
- } else {
- rtw_c2h_wk_cmd(padapter, (u8 *)c2h_evt);
- }
-@@ -1330,7 +1266,7 @@ u8 HalQueryTxBufferStatus8723BSdio(PADAP
-
- NumOfFreePage = SdioLocalCmd53Read4Byte(padapter, SDIO_REG_FREE_TXPG);
-
-- //_enter_critical_bh(&phal->SdioTxFIFOFreePageLock, &irql);
-+ //spin_lock_bh(&phal->SdioTxFIFOFreePageLock);
- memcpy(phal->SdioTxFIFOFreePage, &NumOfFreePage, 4);
- RT_TRACE(_module_hci_ops_c_, _drv_notice_,
- ("%s: Free page for HIQ(%#x),MIDQ(%#x),LOWQ(%#x),PUBQ(%#x)\n",
-@@ -1339,7 +1275,7 @@ u8 HalQueryTxBufferStatus8723BSdio(PADAP
- phal->SdioTxFIFOFreePage[MID_QUEUE_IDX],
- phal->SdioTxFIFOFreePage[LOW_QUEUE_IDX],
- phal->SdioTxFIFOFreePage[PUBLIC_QUEUE_IDX]));
-- //_exit_critical_bh(&phal->SdioTxFIFOFreePageLock, &irql);
-+ //spin_unlock_bh(&phal->SdioTxFIFOFreePageLock);
-
- return true;
- }
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/autoconf.h linux/3rdparty/rtl8723bs/include/autoconf.h
---- linux/3rdparty/rtl8723bs.old/include/autoconf.h 2015-05-10 14:36:05.718668458 +0300
-+++ linux/3rdparty/rtl8723bs/include/autoconf.h 2015-05-07 17:46:55.000000000 +0300
-@@ -23,11 +23,6 @@
- * Automatically generated C config: don't edit
- */
-
--#define AUTOCONF_INCLUDED
--
--#define RTL871X_MODULE_NAME "8723BS"
--#define DRV_NAME "rtl8723bs"
--
- //#define CONFIG_FILE_FWIMG
-
- /*
-@@ -35,22 +30,6 @@
- */
- //#define CONFIG_DEBUG_CFG80211
-
--#define CONFIG_AP_MODE
--#ifdef CONFIG_AP_MODE
-- #define CONFIG_NATIVEAP_MLME
-- #define CONFIG_TX_MCAST2UNI // Support IP multicast->unicast
--#endif
--
--#define CONFIG_LAYER2_ROAMING
--#define CONFIG_LAYER2_ROAMING_RESUME
--
--//#define CONFIG_80211D
--
--/*
-- * Others
-- */
--#define RTW_NOTCH_FILTER 0 /* 0:Disable, 1:Enable, */
--
- /*
- * Auto Config Section
- */
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/basic_types.h linux/3rdparty/rtl8723bs/include/basic_types.h
---- linux/3rdparty/rtl8723bs.old/include/basic_types.h 2015-05-10 14:36:05.718668458 +0300
-+++ linux/3rdparty/rtl8723bs/include/basic_types.h 2015-05-07 17:46:55.000000000 +0300
-@@ -32,9 +32,6 @@
-
- #define FIELD_OFFSET(s,field) ((__kernel_ssize_t)&((s*)(0))->field)
-
--#define MEM_ALIGNMENT_OFFSET (sizeof (__kernel_size_t))
--#define MEM_ALIGNMENT_PADDING (sizeof(__kernel_size_t) - 1)
--
- #define SIZE_PTR __kernel_size_t
- #define SSIZE_PTR __kernel_ssize_t
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/drv_conf.h linux/3rdparty/rtl8723bs/include/drv_conf.h
---- linux/3rdparty/rtl8723bs.old/include/drv_conf.h 2015-05-10 14:36:05.718668458 +0300
-+++ linux/3rdparty/rtl8723bs/include/drv_conf.h 1970-01-01 02:00:00.000000000 +0200
-@@ -1,43 +0,0 @@
--/******************************************************************************
-- *
-- * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or modify it
-- * under the terms of version 2 of the GNU General Public License as
-- * published by the Free Software Foundation.
-- *
-- * This program is distributed in the hope that it will be useful, but WITHOUT
-- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-- * more details.
-- *
-- * You should have received a copy of the GNU General Public License along with
-- * this program; if not, write to the Free Software Foundation, Inc.,
-- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-- *
-- *
-- ******************************************************************************/
--#ifndef __DRV_CONF_H__
--#define __DRV_CONF_H__
--#include "autoconf.h"
--
--//About USB VENDOR REQ
--#if defined(CONFIG_USB_VENDOR_REQ_BUFFER_PREALLOC) && !defined(CONFIG_USB_VENDOR_REQ_MUTEX)
-- #warning "define CONFIG_USB_VENDOR_REQ_MUTEX for CONFIG_USB_VENDOR_REQ_BUFFER_PREALLOC automatically"
-- #define CONFIG_USB_VENDOR_REQ_MUTEX
--#endif
--#if defined(CONFIG_VENDOR_REQ_RETRY) && !defined(CONFIG_USB_VENDOR_REQ_MUTEX)
-- #warning "define CONFIG_USB_VENDOR_REQ_MUTEX for CONFIG_VENDOR_REQ_RETRY automatically"
-- #define CONFIG_USB_VENDOR_REQ_MUTEX
--#endif
--
--#define DYNAMIC_CAMID_ALLOC
--
--#ifndef CONFIG_RTW_HIQ_FILTER
-- #define CONFIG_RTW_HIQ_FILTER 1
--#endif
--
--//#include
--
--#endif // __DRV_CONF_H__
--
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/drv_types.h linux/3rdparty/rtl8723bs/include/drv_types.h
---- linux/3rdparty/rtl8723bs.old/include/drv_types.h 2015-05-10 14:36:05.719668469 +0300
-+++ linux/3rdparty/rtl8723bs/include/drv_types.h 2015-05-07 17:46:55.000000000 +0300
-@@ -27,7 +27,7 @@
- #ifndef __DRV_TYPES_H__
- #define __DRV_TYPES_H__
-
--#include
-+#include
- #include
- #include
- #include
-@@ -66,7 +66,6 @@ typedef struct _ADAPTER _adapter, ADAPTE
- #include
- #include
- #include
--#include
- #include
- #include
- #include
-@@ -84,10 +83,6 @@ typedef struct _ADAPTER _adapter, ADAPTE
- #include
- #include
-
--#ifdef CONFIG_WAPI_SUPPORT
--#include
--#endif // CONFIG_WAPI_SUPPORT
--
- #include "ioctl_cfg80211.h"
-
- #include
-@@ -200,13 +195,9 @@ struct registry_priv
-
- u8 hw_wps_pbc;//0:disable,1:enable
-
--#ifdef CONFIG_LAYER2_ROAMING
- u8 max_roaming_times; // the max number driver will try to roaming
--#endif
-
--#ifdef CONFIG_80211D
- u8 enable80211d;
--#endif
-
- u8 ifname[16];
- u8 if2name[16];
-@@ -573,19 +564,11 @@ struct _ADAPTER{
- _lock security_key_mutex; // add for CONFIG_IEEE80211W, none 11w also can use
- struct registry_priv registrypriv;
- struct eeprom_priv eeprompriv;
-- struct led_priv ledpriv;
-
--#ifdef CONFIG_AP_MODE
- struct hostapd_priv *phostapdpriv;
--#endif
-
- u32 setband;
-
--#ifdef CONFIG_WAPI_SUPPORT
-- u8 WapiSupport;
-- RT_WAPI_T wapiInfo;
--#endif
--
- void * HalData;
- u32 hal_data_sz;
- struct hal_ops HalFunc;
-@@ -721,15 +704,6 @@ __inline static void RTW_ENABLE_FUNC(_ad
- (padapter)->bSurpriseRemoved || \
- RTW_IS_FUNC_DISABLED((padapter), DF_TX_BIT))
-
--#ifdef CONFIG_PNO_SUPPORT
--int rtw_parse_ssid_list_tlv(char** list_str, pno_ssid_t* ssid, int max, int *bytes_left);
--int rtw_dev_pno_set(struct net_device *net, pno_ssid_t* ssid, int num,
-- int pno_time, int pno_repeat, int pno_freq_expo_max);
--#ifdef CONFIG_PNO_SET_DEBUG
--void rtw_dev_pno_debug(struct net_device *net);
--#endif //CONFIG_PNO_SET_DEBUG
--#endif //CONFIG_PNO_SUPPORT
--
- #ifdef CONFIG_GPIO_API
- int rtw_get_gpio(struct net_device *netdev, int gpio_num);
- int rtw_set_gpio_output_value(struct net_device *netdev, int gpio_num, bool isHigh);
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/Hal8723BPhyCfg.h linux/3rdparty/rtl8723bs/include/Hal8723BPhyCfg.h
---- linux/3rdparty/rtl8723bs.old/include/Hal8723BPhyCfg.h 2015-05-10 14:36:05.720668480 +0300
-+++ linux/3rdparty/rtl8723bs/include/Hal8723BPhyCfg.h 2015-05-07 17:46:55.000000000 +0300
-@@ -77,13 +77,6 @@ int PHY_RFConfig8723B(PADAPTER Adapter )
-
- s32 PHY_MACConfig8723B(PADAPTER padapter);
-
--int
--PHY_ConfigRFWithParaFile_8723B(
-- IN PADAPTER Adapter,
-- IN u8* pFileName,
-- RF_PATH eRFPath
--);
--
- void
- PHY_SetTxPowerIndex_8723B(
- IN PADAPTER Adapter,
-@@ -135,10 +128,6 @@ PHY_SetSwChnlBWMode8723B(
- IN u8 Offset80
- );
-
--void PHY_SetRFPathSwitch_8723B(
-- IN PADAPTER pAdapter,
-- IN bool bMain
-- );
- /*--------------------------Exported Function prototype End---------------------*/
-
- #endif
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/hal_btcoex.h linux/3rdparty/rtl8723bs/include/hal_btcoex.h
---- linux/3rdparty/rtl8723bs.old/include/hal_btcoex.h 2015-05-10 14:36:05.720668480 +0300
-+++ linux/3rdparty/rtl8723bs/include/hal_btcoex.h 2015-05-07 17:46:55.000000000 +0300
-@@ -38,9 +38,7 @@ void hal_btcoex_SetBTCoexist(PADAPTER pa
- u8 hal_btcoex_IsBtExist(PADAPTER padapter);
- u8 hal_btcoex_IsBtDisabled(PADAPTER);
- void hal_btcoex_SetChipType(PADAPTER padapter, u8 chipType);
--u8 hal_btcoex_GetChipType(PADAPTER padapter);
- void hal_btcoex_SetPgAntNum(PADAPTER padapter, u8 antNum);
--u8 hal_btcoex_GetPgAntNum(PADAPTER padapter);
- void hal_btcoex_SetSingleAntPath(PADAPTER padapter, u8 singleAntPath);
-
- u8 hal_btcoex_Initialize(PADAPTER padapter);
-@@ -57,14 +55,11 @@ void hal_btcoex_IQKNotify(PADAPTER padap
- void hal_btcoex_BtInfoNotify(PADAPTER padapter, u8 length, u8 *tmpBuf);
- void hal_btcoex_SuspendNotify(PADAPTER padapter, u8 state);
- void hal_btcoex_HaltNotify(PADAPTER padapter);
--void hal_btcoex_SwitchBtTRxMask(PADAPTER padapter);
-
- void hal_btcoex_Hanlder(PADAPTER padapter);
-
- s32 hal_btcoex_IsBTCoexCtrlAMPDUSize(PADAPTER padapter);
--u32 hal_btcoex_GetAMPDUSize(PADAPTER padapter);
- void hal_btcoex_SetManualControl(PADAPTER padapter, u8 bmanual);
--u8 hal_btcoex_1Ant(PADAPTER padapter);
- u8 hal_btcoex_IsBtControlLps(PADAPTER);
- u8 hal_btcoex_IsLpsOn(PADAPTER);
- u8 hal_btcoex_RpwmVal(PADAPTER);
-@@ -74,8 +69,6 @@ void hal_btcoex_RecordPwrMode(PADAPTER p
- void hal_btcoex_DisplayBtCoexInfo(PADAPTER, u8 *pbuf, u32 bufsize);
- void hal_btcoex_SetDBG(PADAPTER, u32 *pDbgModule);
- u32 hal_btcoex_GetDBG(PADAPTER, u8 *pStrBuf, u32 bufSize);
--u8 hal_btcoex_IncreaseScanDeviceNum(PADAPTER);
--u8 hal_btcoex_IsBtLinkExist(PADAPTER);
-
- #endif // !__HAL_BTCOEX_H__
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/hal_com.h linux/3rdparty/rtl8723bs/include/hal_com.h
---- linux/3rdparty/rtl8723bs.old/include/hal_com.h 2015-05-10 14:36:05.721668491 +0300
-+++ linux/3rdparty/rtl8723bs/include/hal_com.h 2015-05-07 17:46:55.000000000 +0300
-@@ -244,7 +244,6 @@ void hal_init_macaddr(_adapter *adapter)
- void rtw_init_hal_com_default_value(PADAPTER Adapter);
-
- void c2h_evt_clear(_adapter *adapter);
--s32 c2h_evt_read(_adapter *adapter, u8 *buf);
- s32 c2h_evt_read_88xx(_adapter *adapter, u8 *buf);
-
- u8 rtw_hal_networktype_to_raid(_adapter *adapter, struct sta_info *psta);
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/hal_com_h2c.h linux/3rdparty/rtl8723bs/include/hal_com_h2c.h
---- linux/3rdparty/rtl8723bs.old/include/hal_com_h2c.h 2015-05-10 14:36:05.721668491 +0300
-+++ linux/3rdparty/rtl8723bs/include/hal_com_h2c.h 2015-05-07 17:46:55.000000000 +0300
-@@ -291,8 +291,6 @@ typedef struct _RSVDPAGE_LOC {
- } RSVDPAGE_LOC, *PRSVDPAGE_LOC;
-
- #endif
--void dump_TX_FIFO(PADAPTER padapter, u8 page_num, u16 page_size);
--u8 rtw_check_invalid_mac_address (u8 *mac_addr);
- #if defined(CONFIG_WOWLAN) || defined(CONFIG_AP_WOWLAN)
- void rtw_get_current_ip_address(PADAPTER padapter, u8 *pcurrentip);
- void rtw_get_sec_iv(PADAPTER padapter, u8*pcur_dot11txpn, u8 *StaAddr);
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/hal_com_led.h linux/3rdparty/rtl8723bs/include/hal_com_led.h
---- linux/3rdparty/rtl8723bs.old/include/hal_com_led.h 2015-05-10 14:36:05.721668491 +0300
-+++ linux/3rdparty/rtl8723bs/include/hal_com_led.h 1970-01-01 02:00:00.000000000 +0200
-@@ -1,261 +0,0 @@
--/******************************************************************************
-- *
-- * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or modify it
-- * under the terms of version 2 of the GNU General Public License as
-- * published by the Free Software Foundation.
-- *
-- * This program is distributed in the hope that it will be useful, but WITHOUT
-- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-- * more details.
-- *
-- * You should have received a copy of the GNU General Public License along with
-- * this program; if not, write to the Free Software Foundation, Inc.,
-- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-- *
-- *
-- ******************************************************************************/
--#ifndef __HAL_COMMON_LED_H_
--#define __HAL_COMMON_LED_H_
--
--
--#define MSECS(t) (HZ * ((t) / 1000) + (HZ * ((t) % 1000)) / 1000)
--
--//================================================================================
--// LED Behavior Constant.
--//================================================================================
--// Default LED behavior.
--//
--#define LED_BLINK_NORMAL_INTERVAL 100
--#define LED_BLINK_SLOWLY_INTERVAL 200
--#define LED_BLINK_LONG_INTERVAL 400
--#define LED_INITIAL_INTERVAL 1800
--
--// LED Customerization
--
--//NETTRONIX
--#define LED_BLINK_NORMAL_INTERVAL_NETTRONIX 100
--#define LED_BLINK_SLOWLY_INTERVAL_NETTRONIX 2000
--
--//PORNET
--#define LED_BLINK_SLOWLY_INTERVAL_PORNET 1000
--#define LED_BLINK_NORMAL_INTERVAL_PORNET 100
--#define LED_BLINK_FAST_INTERVAL_BITLAND 30
--
--//AzWave.
--#define LED_CM2_BLINK_ON_INTERVAL 250
--#define LED_CM2_BLINK_OFF_INTERVAL 4750
--#define LED_CM8_BLINK_OFF_INTERVAL 3750 //for QMI
--
--//RunTop
--#define LED_RunTop_BLINK_INTERVAL 300
--
--//ALPHA
--#define LED_BLINK_NO_LINK_INTERVAL_ALPHA 1000
--#define LED_BLINK_NO_LINK_INTERVAL_ALPHA_500MS 500 //add by ylb 20121012 for customer led for alpha
--#define LED_BLINK_LINK_INTERVAL_ALPHA 500 //500
--#define LED_BLINK_SCAN_INTERVAL_ALPHA 180 //150
--#define LED_BLINK_FASTER_INTERVAL_ALPHA 50
--#define LED_BLINK_WPS_SUCESS_INTERVAL_ALPHA 5000
--
--// 111122 by hpfan: Customized for Xavi
--#define LED_CM11_BLINK_INTERVAL 300
--#define LED_CM11_LINK_ON_INTERVEL 3000
--
--//Netgear
--#define LED_BLINK_LINK_INTERVAL_NETGEAR 500
--#define LED_BLINK_LINK_SLOWLY_INTERVAL_NETGEAR 1000
--
--#define LED_WPS_BLINK_OFF_INTERVAL_NETGEAR 100
--#define LED_WPS_BLINK_ON_INTERVAL_NETGEAR 500
--
--//Belkin AC950
--#define LED_BLINK_LINK_INTERVAL_ON_BELKIN 200
--#define LED_BLINK_LINK_INTERVAL_OFF_BELKIN 100
--#define LED_BLINK_ERROR_INTERVAL_BELKIN 100
--
--//by chiyokolin for Azurewave
--#define LED_CM12_BLINK_INTERVAL_5Mbps 160
--#define LED_CM12_BLINK_INTERVAL_10Mbps 80
--#define LED_CM12_BLINK_INTERVAL_20Mbps 50
--#define LED_CM12_BLINK_INTERVAL_40Mbps 40
--#define LED_CM12_BLINK_INTERVAL_80Mbps 30
--#define LED_CM12_BLINK_INTERVAL_MAXMbps 25
--
--//Dlink
--#define LED_BLINK_NO_LINK_INTERVAL 1000
--#define LED_BLINK_LINK_IDEL_INTERVAL 100
--
--#define LED_BLINK_SCAN_ON_INTERVAL 30
--#define LED_BLINK_SCAN_OFF_INTERVAL 300
--
--#define LED_WPS_BLINK_ON_INTERVAL_DLINK 30
--#define LED_WPS_BLINK_OFF_INTERVAL_DLINK 300
--#define LED_WPS_BLINK_LINKED_ON_INTERVAL_DLINK 5000
--
--//================================================================================
--// LED object.
--//================================================================================
--
--typedef enum _LED_CTL_MODE{
-- LED_CTL_POWER_ON = 1,
-- LED_CTL_LINK = 2,
-- LED_CTL_NO_LINK = 3,
-- LED_CTL_TX = 4,
-- LED_CTL_RX = 5,
-- LED_CTL_SITE_SURVEY = 6,
-- LED_CTL_POWER_OFF = 7,
-- LED_CTL_START_TO_LINK = 8,
-- LED_CTL_START_WPS = 9,
-- LED_CTL_STOP_WPS = 10,
-- LED_CTL_START_WPS_BOTTON = 11, //added for runtop
-- LED_CTL_STOP_WPS_FAIL = 12, //added for ALPHA
-- LED_CTL_STOP_WPS_FAIL_OVERLAP = 13, //added for BELKIN
-- LED_CTL_CONNECTION_NO_TRANSFER = 14,
--}LED_CTL_MODE;
--
--typedef enum _LED_STATE{
-- LED_UNKNOWN = 0,
-- RTW_LED_ON = 1,
-- RTW_LED_OFF = 2,
-- LED_BLINK_NORMAL = 3,
-- LED_BLINK_SLOWLY = 4,
-- LED_BLINK_POWER_ON = 5,
-- LED_BLINK_SCAN = 6, // LED is blinking during scanning period, the # of times to blink is depend on time for scanning.
-- LED_BLINK_NO_LINK = 7, // LED is blinking during no link state.
-- LED_BLINK_StartToBlink = 8, // Customzied for Sercomm Printer Server case
-- LED_BLINK_TXRX = 9,
-- LED_BLINK_WPS = 10, // LED is blinkg during WPS communication
-- LED_BLINK_WPS_STOP = 11, //for ALPHA
-- LED_BLINK_WPS_STOP_OVERLAP = 12, //for BELKIN
-- LED_BLINK_RUNTOP = 13, // Customized for RunTop
-- LED_BLINK_CAMEO = 14,
-- LED_BLINK_XAVI = 15,
-- LED_BLINK_ALWAYS_ON = 16,
-- LED_BLINK_LINK_IN_PROCESS = 17, //Customized for Belkin AC950
-- LED_BLINK_AUTH_ERROR = 18, //Customized for Belkin AC950
-- LED_BLINK_Azurewave_5Mbps = 19,
-- LED_BLINK_Azurewave_10Mbps = 20,
-- LED_BLINK_Azurewave_20Mbps = 21,
-- LED_BLINK_Azurewave_40Mbps = 22,
-- LED_BLINK_Azurewave_80Mbps = 23,
-- LED_BLINK_Azurewave_MAXMbps = 24,
-- LED_BLINK_LINK_IDEL = 25,
-- LED_BLINK_WPS_LINKED = 26,
--}LED_STATE;
--
--typedef enum _LED_PIN{
-- LED_PIN_GPIO0,
-- LED_PIN_LED0,
-- LED_PIN_LED1,
-- LED_PIN_LED2
--}LED_PIN;
--
--//================================================================================
--// SDIO LED Definition.
--//================================================================================
--#define IS_LED_WPS_BLINKING(_LED_SDIO) (((PLED_SDIO)_LED_SDIO)->CurrLedState==LED_BLINK_WPS \
-- || ((PLED_SDIO)_LED_SDIO)->CurrLedState==LED_BLINK_WPS_STOP \
-- || ((PLED_SDIO)_LED_SDIO)->bLedWPSBlinkInProgress)
--
--#define IS_LED_BLINKING(_LED_SDIO) (((PLED_SDIO)_LED_SDIO)->bLedWPSBlinkInProgress \
-- ||((PLED_SDIO)_LED_SDIO)->bLedScanBlinkInProgress)
--
--
--typedef enum _LED_STRATEGY_SDIO{
-- SW_LED_MODE0, // SW control 1 LED via GPIO0. It is default option.
-- SW_LED_MODE1, // 2 LEDs, through LED0 and LED1. For ALPHA.
-- SW_LED_MODE2, // SW control 1 LED via GPIO0, customized for AzWave 8187 minicard.
-- SW_LED_MODE3, // SW control 1 LED via GPIO0, customized for Sercomm Printer Server case.
-- SW_LED_MODE4, //for Edimax / Belkin
-- SW_LED_MODE5, //for Sercomm / Belkin
-- SW_LED_MODE6, //for 88CU minicard, porting from ce SW_LED_MODE7
-- HW_LED, // HW control 2 LEDs, LED0 and LED1 (there are 4 different control modes, see MAC.CONFIG1 for details.)
--}LED_STRATEGY_SDIO, *PLED_STRATEGY_SDIO;
--
--typedef struct _LED_SDIO{
-- PADAPTER padapter;
--
-- LED_PIN LedPin; // Identify how to implement this SW led.
--
-- LED_STATE CurrLedState; // Current LED state.
-- bool bLedOn; // true if LED is ON, false if LED is OFF.
--
-- bool bSWLedCtrl;
--
-- bool bLedBlinkInProgress; // true if it is blinking, false o.w..
-- // ALPHA, added by chiyoko, 20090106
-- bool bLedNoLinkBlinkInProgress;
-- bool bLedLinkBlinkInProgress;
-- bool bLedStartToLinkBlinkInProgress;
-- bool bLedScanBlinkInProgress;
-- bool bLedWPSBlinkInProgress;
--
-- u32 BlinkTimes; // Number of times to toggle led state for blinking.
-- LED_STATE BlinkingLedState; // Next state for blinking, either LED_ON or LED_OFF are.
--
-- _timer BlinkTimer; // Timer object for led blinking.
--
-- _workitem BlinkWorkItem; // Workitem used by BlinkTimer to manipulate H/W to blink LED.
--} LED_SDIO, *PLED_SDIO;
--
--typedef struct _LED_SDIO LED_DATA, *PLED_DATA;
--typedef enum _LED_STRATEGY_SDIO LED_STRATEGY, *PLED_STRATEGY;
--
--void
--LedControlSDIO(
-- IN PADAPTER Adapter,
-- IN LED_CTL_MODE LedAction
-- );
--
--struct led_priv{
-- /* add for led controll */
-- LED_DATA SwLed0;
-- LED_DATA SwLed1;
-- LED_DATA SwLed2;
-- LED_STRATEGY LedStrategy;
-- u8 bRegUseLed;
-- void (*LedControlHandler)(_adapter *padapter, LED_CTL_MODE LedAction);
-- void (*SwLedOn)(_adapter *padapter, PLED_DATA pLed);
-- void (*SwLedOff)(_adapter *padapter, PLED_DATA pLed);
-- /* add for led controll */
--};
--
--#define rtw_led_control(adapter, LedAction)
--
--#define SwLedOn(adapter, pLed) \
-- do { \
-- if((adapter)->ledpriv.SwLedOn) \
-- (adapter)->ledpriv.SwLedOn((adapter), (pLed)); \
-- } while(0)
--
--#define SwLedOff(adapter, pLed) \
-- do { \
-- if((adapter)->ledpriv.SwLedOff) \
-- (adapter)->ledpriv.SwLedOff((adapter), (pLed)); \
-- } while(0)
--
--void BlinkTimerCallback(void *data);
--void BlinkWorkItemCallback(_workitem *work);
--
--void ResetLedStatus(PLED_DATA pLed);
--
--void
--InitLed(
-- _adapter *padapter,
-- PLED_DATA pLed,
-- LED_PIN LedPin
-- );
--
--void
--DeInitLed(
-- PLED_DATA pLed
-- );
--
--//hal...
--extern void BlinkHandler(PLED_DATA pLed);
--
--#endif //__RTW_LED_H_
--
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/hal_com_phycfg.h linux/3rdparty/rtl8723bs/include/hal_com_phycfg.h
---- linux/3rdparty/rtl8723bs.old/include/hal_com_phycfg.h 2015-05-10 14:36:05.721668491 +0300
-+++ linux/3rdparty/rtl8723bs/include/hal_com_phycfg.h 2015-05-07 17:46:55.000000000 +0300
-@@ -84,13 +84,6 @@ typedef struct _BB_REGISTER_DEFINITION{
-
-
- //----------------------------------------------------------------------
--s32
--phy_TxPwrIdxToDbm(
-- IN PADAPTER Adapter,
-- IN WIRELESS_MODE WirelessMode,
-- IN u8 TxPwrIdx
-- );
--
- u8
- PHY_GetTxPowerByRateBase(
- IN PADAPTER Adapter,
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/hal_intf.h linux/3rdparty/rtl8723bs/include/hal_intf.h
---- linux/3rdparty/rtl8723bs.old/include/hal_intf.h 2015-05-10 14:36:05.723668514 +0300
-+++ linux/3rdparty/rtl8723bs/include/hal_intf.h 2015-05-07 17:46:55.000000000 +0300
-@@ -200,9 +200,6 @@ struct hal_ops {
- s32 (*init_recv_priv)(_adapter *padapter);
- void (*free_recv_priv)(_adapter *padapter);
-
-- void (*InitSwLeds)(_adapter *padapter);
-- void (*DeInitSwLeds)(_adapter *padapter);
--
- void (*dm_init)(_adapter *padapter);
- void (*dm_deinit)(_adapter *padapter);
- void (*read_chip_version)(_adapter *padapter);
-@@ -341,11 +338,7 @@ void rtw_hal_free_data(_adapter *padapte
-
- void rtw_hal_dm_init(_adapter *padapter);
- void rtw_hal_dm_deinit(_adapter *padapter);
--void rtw_hal_sw_led_init(_adapter *padapter);
--void rtw_hal_sw_led_deinit(_adapter *padapter);
-
--u32 rtw_hal_power_on(_adapter *padapter);
--void rtw_hal_power_off(_adapter *padapter);
- uint rtw_hal_init(_adapter *padapter);
- uint rtw_hal_deinit(_adapter *padapter);
- void rtw_hal_stop(_adapter *padapter);
-@@ -369,13 +362,6 @@ void rtw_hal_disable_interrupt(_adapter
-
- u8 rtw_hal_check_ips_status(_adapter *padapter);
-
--u32 rtw_hal_inirp_init(_adapter *padapter);
--u32 rtw_hal_inirp_deinit(_adapter *padapter);
--
--void rtw_hal_irp_reset(_adapter *padapter);
--
--u8 rtw_hal_intf_ps_func(_adapter *padapter,HAL_INTF_PS_FUNC efunc_id, u8* val);
--
- s32 rtw_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe);
- s32 rtw_hal_xmit(_adapter *padapter, struct xmit_frame *pxmitframe);
- s32 rtw_hal_mgnt_xmit(_adapter *padapter, struct xmit_frame *pmgntframe);
-@@ -407,17 +393,11 @@ void rtw_hal_write_rfreg(_adapter *padap
- #define PHY_SetMacReg PHY_SetBBReg
- #define PHY_QueryMacReg PHY_QueryBBReg
-
--s32 rtw_hal_interrupt_handler(_adapter *padapter);
--
--void rtw_hal_set_bwmode(_adapter *padapter, CHANNEL_WIDTH Bandwidth, u8 Offset);
- void rtw_hal_set_chan(_adapter *padapter, u8 channel);
- void rtw_hal_set_chnl_bw(_adapter *padapter, u8 channel, CHANNEL_WIDTH Bandwidth, u8 Offset40, u8 Offset80);
- void rtw_hal_dm_watchdog(_adapter *padapter);
- void rtw_hal_dm_watchdog_in_lps(_adapter *padapter);
-
--void rtw_hal_set_tx_power_level(_adapter *padapter, u8 channel);
--void rtw_hal_get_tx_power_level(_adapter *padapter, s32 *powerlevel);
--
- s32 rtw_hal_xmit_thread_handler(_adapter *padapter);
-
- void rtw_hal_notch_filter(_adapter * adapter, bool enable);
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/hal_phy.h linux/3rdparty/rtl8723bs/include/hal_phy.h
---- linux/3rdparty/rtl8723bs.old/include/hal_phy.h 2015-05-10 14:36:05.723668514 +0300
-+++ linux/3rdparty/rtl8723bs/include/hal_phy.h 2015-05-07 17:46:55.000000000 +0300
-@@ -192,69 +192,5 @@ typedef struct RF_Shadow_Compare_Map {
-
- /*--------------------------Exported Function prototype---------------------*/
-
--u32
--PHY_CalculateBitShift(
-- u32 BitMask
-- );
--
--u32
--PHY_RFShadowRead(
-- IN PADAPTER Adapter,
-- IN u8 eRFPath,
-- IN u32 Offset);
--
--void
--PHY_RFShadowWrite(
-- IN PADAPTER Adapter,
-- IN u8 eRFPath,
-- IN u32 Offset,
-- IN u32 Data);
--
--bool
--PHY_RFShadowCompare(
-- IN PADAPTER Adapter,
-- IN u8 eRFPath,
-- IN u32 Offset);
--
--void
--PHY_RFShadowRecorver(
-- IN PADAPTER Adapter,
-- IN u8 eRFPath,
-- IN u32 Offset);
--
--void
--PHY_RFShadowCompareAll(
-- IN PADAPTER Adapter);
--
--void
--PHY_RFShadowRecorverAll(
-- IN PADAPTER Adapter);
--
--void
--PHY_RFShadowCompareFlagSet(
-- IN PADAPTER Adapter,
-- IN u8 eRFPath,
-- IN u32 Offset,
-- IN u8 Type);
--
--void
--PHY_RFShadowRecorverFlagSet(
-- IN PADAPTER Adapter,
-- IN u8 eRFPath,
-- IN u32 Offset,
-- IN u8 Type);
--
--void
--PHY_RFShadowCompareFlagSetAll(
-- IN PADAPTER Adapter);
--
--void
--PHY_RFShadowRecorverFlagSetAll(
-- IN PADAPTER Adapter);
--
--void
--PHY_RFShadowRefresh(
-- IN PADAPTER Adapter);
--
- #endif //__HAL_COMMON_H__
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/ieee80211.h linux/3rdparty/rtl8723bs/include/ieee80211.h
---- linux/3rdparty/rtl8723bs.old/include/ieee80211.h 2015-05-10 14:36:05.724668524 +0300
-+++ linux/3rdparty/rtl8723bs/include/ieee80211.h 2015-05-07 17:46:55.000000000 +0300
-@@ -27,8 +27,6 @@
- #define ETH_TYPE_LEN 2
- #define PAYLOAD_TYPE_LEN 1
-
--#ifdef CONFIG_AP_MODE
--
- #define RTL_IOCTL_HOSTAPD (SIOCIWFIRSTPRIV + 28)
-
- /* RTL871X_IOCTL_HOSTAPD ioctl() cmd: */
-@@ -77,8 +75,6 @@ enum {
- #define WLAN_STA_VHT BIT(14)
- #define WLAN_STA_NONERP BIT(31)
-
--#endif
--
- #define IEEE_CMD_SET_WPA_PARAM 1
- #define IEEE_CMD_SET_WPA_IE 2
- #define IEEE_CMD_SET_ENCRYPTION 3
-@@ -199,30 +195,27 @@ enum NETWORK_TYPE
- WIRELESS_11AGN = (WIRELESS_11A|WIRELESS_11G|WIRELESS_11_24N|WIRELESS_11_5N), // tx: ofdm & MCS, rx: ofdm & MCS, hw: ofdm only
- WIRELESS_11ABGN = (WIRELESS_11A|WIRELESS_11B|WIRELESS_11G|WIRELESS_11_24N|WIRELESS_11_5N),
- WIRELESS_MODE_24G = (WIRELESS_11B|WIRELESS_11G|WIRELESS_11_24N|WIRELESS_11AC),
-- WIRELESS_MODE_5G = (WIRELESS_11A|WIRELESS_11_5N|WIRELESS_11AC),
- WIRELESS_MODE_MAX = (WIRELESS_11A|WIRELESS_11B|WIRELESS_11G|WIRELESS_11_24N|WIRELESS_11_5N|WIRELESS_11AC),
- };
-
- #define SUPPORTED_24G_NETTYPE_MSK (WIRELESS_11B | WIRELESS_11G | WIRELESS_11_24N)
--#define SUPPORTED_5G_NETTYPE_MSK (WIRELESS_11A | WIRELESS_11_5N)
-
- #define IsLegacyOnly(NetType) ((NetType) == ((NetType) & (WIRELESS_11BG|WIRELESS_11A)))
-
- #define IsSupported24G(NetType) ((NetType) & SUPPORTED_24G_NETTYPE_MSK ? true : false)
--#define IsSupported5G(NetType) ((NetType) & SUPPORTED_5G_NETTYPE_MSK ? true : false)
-
- #define IsEnableHWCCK(NetType) IsSupported24G(NetType)
--#define IsEnableHWOFDM(NetType) ((NetType) & (WIRELESS_11G|WIRELESS_11_24N|SUPPORTED_5G_NETTYPE_MSK) ? true : false)
-+#define IsEnableHWOFDM(NetType) (((NetType) & (WIRELESS_11G|WIRELESS_11_24N)) ? true : false)
-
- #define IsSupportedRxCCK(NetType) IsEnableHWCCK(NetType)
- #define IsSupportedRxOFDM(NetType) IsEnableHWOFDM(NetType)
- #define IsSupportedRxHT(NetType) IsEnableHWOFDM(NetType)
-
--#define IsSupportedTxCCK(NetType) ((NetType) & (WIRELESS_11B) ? true : false)
--#define IsSupportedTxOFDM(NetType) ((NetType) & (WIRELESS_11G|WIRELESS_11A) ? true : false)
--#define IsSupportedHT(NetType) ((NetType) & (WIRELESS_11_24N|WIRELESS_11_5N) ? true : false)
-+#define IsSupportedTxCCK(NetType) (((NetType) & (WIRELESS_11B)) ? true : false)
-+#define IsSupportedTxOFDM(NetType) (((NetType) & (WIRELESS_11G|WIRELESS_11A)) ? true : false)
-+#define IsSupportedHT(NetType) (((NetType) & (WIRELESS_11_24N|WIRELESS_11_5N)) ? true : false)
-
--#define IsSupportedVHT(NetType) ((NetType) & (WIRELESS_11AC) ? true : false)
-+#define IsSupportedVHT(NetType) (((NetType) & (WIRELESS_11AC)) ? true : false)
-
-
- typedef struct ieee_param {
-@@ -251,7 +244,6 @@ typedef struct ieee_param {
- u16 key_len;
- u8 key[0];
- } crypt;
--#ifdef CONFIG_AP_MODE
- struct {
- u16 aid;
- u16 capability;
-@@ -263,12 +255,9 @@ typedef struct ieee_param {
- u8 reserved[2];//for set max_num_sta
- u8 buf[0];
- } bcn_ie;
--#endif
--
-- } u;
-+ } u;
- }ieee_param;
-
--#ifdef CONFIG_AP_MODE
- typedef struct ieee_param_ex {
- u32 cmd;
- u8 sta_addr[ETH_ALEN];
-@@ -290,8 +279,6 @@ struct sta_data{
- u64 tx_bytes;
- u64 tx_drops;
- };
--#endif
--
-
- #define IEEE80211_DATA_LEN 2304
- /* Maximum size for the MA-UNITDATA primitive, 802.11 standard section
-@@ -848,10 +835,8 @@ struct ieee80211_softmac_stats{
- #define WEP_KEYS 4
- #define WEP_KEY_LEN 13
-
--#ifdef CONFIG_IEEE80211W
- #define BIP_MAX_KEYID 5
- #define BIP_AAD_SIZE 20
--#endif //CONFIG_IEEE80211W
-
- struct ieee80211_security {
- u16 active_key:2,
-@@ -1107,10 +1092,6 @@ typedef struct tx_pending_t{
- #define IEEE_G (1<<2)
- #define IEEE_MODE_MASK (IEEE_A|IEEE_B|IEEE_G)
-
--//Baron move to ieee80211.c
--int ieee80211_is_empty_essid(const char *essid, int essid_len);
--int ieee80211_get_hdrlen(u16 fc);
--
- /* Action category code */
- enum rtw_ieee80211_category {
- RTW_WLAN_CATEGORY_SPECTRUM_MGMT = 0,
-@@ -1357,11 +1338,6 @@ enum secondary_ch_offset {
- SCA = 1, /* secondary channel above */
- SCB = 3, /* secondary channel below */
- };
--u8 secondary_ch_offset_to_hal_ch_offset(u8 ch_offset);
--u8 hal_ch_offset_to_secondary_ch_offset(u8 ch_offset);
--u8 *rtw_set_ie_ch_switch(u8 *buf, u32 *buf_len, u8 ch_switch_mode, u8 new_ch, u8 ch_switch_cnt);
--u8 *rtw_set_ie_secondary_ch_offset(u8 *buf, u32 *buf_len, u8 secondary_ch_offset);
--u8 *rtw_set_ie_mesh_ch_switch_parm(u8 *buf, u32 *buf_len, u8 ttl, u8 flags, u16 reason, u16 precedence);
-
- u8 *rtw_get_ie(u8*pbuf, sint index, sint *len, sint limit);
- u8 *rtw_get_ie_ex(u8 *in_ie, uint in_len, u8 eid, u8 *oui, u8 oui_len, u8 *ie, uint *ielen);
-@@ -1380,7 +1356,6 @@ int rtw_parse_wpa2_ie(u8* wpa_ie, int wp
- int rtw_get_sec_ie(u8 *in_ie,uint in_len,u8 *rsn_ie,u16 *rsn_len,u8 *wpa_ie,u16 *wpa_len);
-
- u8 rtw_is_wps_ie(u8 *ie_ptr, uint *wps_ielen);
--u8 *rtw_get_wps_ie_from_scan_queue(u8 *in_ie, uint in_len, u8 *wps_ie, uint *wps_ielen, u8 frame_type);
- u8 *rtw_get_wps_ie(u8 *in_ie, uint in_len, u8 *wps_ie, uint *wps_ielen);
- u8 *rtw_get_wps_attr(u8 *wps_ie, uint wps_ielen, u16 target_attr_id ,u8 *buf_attr, u32 *len_attr);
- u8 *rtw_get_wps_attr_content(u8 *wps_ie, uint wps_ielen, u16 target_attr_id ,u8 *buf_content, uint *len_content);
-@@ -1394,9 +1369,6 @@ u8 *rtw_get_wps_attr_content(u8 *wps_ie,
- #define for_each_ie(ie, buf, buf_len) \
- for (ie = (void*)buf; (((u8*)ie) - ((u8*)buf) + 1) < buf_len; ie = (void*)(((u8*)ie) + *(((u8*)ie)+1) + 2))
-
--void dump_ies(u8 *buf, u32 buf_len);
--void dump_wps_ie(u8 *ie, u32 ie_len);
--
- uint rtw_get_rateset_len(u8 *rateset);
-
- struct registry_priv;
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/ioctl_cfg80211.h linux/3rdparty/rtl8723bs/include/ioctl_cfg80211.h
---- linux/3rdparty/rtl8723bs.old/include/ioctl_cfg80211.h 2015-05-10 14:36:05.725668535 +0300
-+++ linux/3rdparty/rtl8723bs/include/ioctl_cfg80211.h 2015-05-07 17:46:55.000000000 +0300
-@@ -20,6 +20,11 @@
- #ifndef __IOCTL_CFG80211_H__
- #define __IOCTL_CFG80211_H__
-
-+#include
-+
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0))
-+#error This driver only works with kernel 4.0
-+#endif
-
- struct rtw_wdev_invit_info {
- u8 state; /* 0: req, 1:rep */
-@@ -116,26 +121,14 @@ void rtw_cfg80211_indicate_connect(_adap
- void rtw_cfg80211_indicate_disconnect(_adapter *padapter);
- void rtw_cfg80211_indicate_scan_done(_adapter *adapter, bool aborted);
-
--#ifdef CONFIG_AP_MODE
- void rtw_cfg80211_indicate_sta_assoc(_adapter *padapter, u8 *pmgmt_frame, uint frame_len);
- void rtw_cfg80211_indicate_sta_disassoc(_adapter *padapter, unsigned char *da, unsigned short reason);
--#endif //CONFIG_AP_MODE
-
--void rtw_cfg80211_rx_p2p_action_public(_adapter *padapter, u8 *pmgmt_frame, uint frame_len);
--void rtw_cfg80211_rx_action_p2p(_adapter *padapter, u8 *pmgmt_frame, uint frame_len);
- void rtw_cfg80211_rx_action(_adapter *adapter, u8 *frame, uint frame_len, const char*msg);
-
--int rtw_cfg80211_set_mgnt_wpsp2pie(struct net_device *net, char *buf, int len, int type);
--
- bool rtw_cfg80211_pwr_mgmt(_adapter *adapter);
-
--
--#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,18,0))
--#define rtw_cfg80211_rx_mgmt(adapter, freq, sig_dbm, buf, len, gfp) cfg80211_rx_mgmt((adapter)->rtw_wdev, freq, sig_dbm, buf, len,0,gfp)
--#else
- #define rtw_cfg80211_rx_mgmt(adapter, freq, sig_dbm, buf, len, gfp) cfg80211_rx_mgmt((adapter)->rtw_wdev, freq, sig_dbm, buf, len,0)
--#endif /* KERNEL_VERSION(3,18,0) and newer */
--
- #define rtw_cfg80211_send_rx_assoc(adapter, bss, buf, len) cfg80211_send_rx_assoc((adapter)->pnetdev, bss, buf, len)
- #define rtw_cfg80211_mgmt_tx_status(adapter, cookie, buf, len, ack, gfp) cfg80211_mgmt_tx_status((adapter)->rtw_wdev, cookie, buf, len, ack, gfp)
- #define rtw_cfg80211_ready_on_channel(adapter, cookie, chan, channel_type, duration, gfp) cfg80211_ready_on_channel((adapter)->rtw_wdev, cookie, chan, duration, gfp)
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/osdep_intf.h linux/3rdparty/rtl8723bs/include/osdep_intf.h
---- linux/3rdparty/rtl8723bs.old/include/osdep_intf.h 2015-05-10 14:36:05.725668535 +0300
-+++ linux/3rdparty/rtl8723bs/include/osdep_intf.h 2015-05-07 17:46:55.000000000 +0300
-@@ -64,9 +64,6 @@ void rtw_dev_unload(PADAPTER padapter);
-
- u32 rtw_start_drv_threads(_adapter *padapter);
- void rtw_stop_drv_threads (_adapter *padapter);
--#if defined(CONFIG_WOWLAN) || defined(CONFIG_AP_WOWLAN)
--void rtw_cancel_dynamic_chk_timer(_adapter *padapter);
--#endif
- void rtw_cancel_all_timer(_adapter *padapter);
-
- int rtw_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/osdep_service.h linux/3rdparty/rtl8723bs/include/osdep_service.h
---- linux/3rdparty/rtl8723bs.old/include/osdep_service.h 2015-05-10 14:36:05.725668535 +0300
-+++ linux/3rdparty/rtl8723bs/include/osdep_service.h 2015-05-07 17:46:55.000000000 +0300
-@@ -74,8 +74,6 @@
-
- extern int RTW_STATUS_CODE(int error_code);
-
--#define CONFIG_USE_VMALLOC
--
- /* flags used for rtw_mstat_update() */
- enum mstat_f {
- /* type: 0x00ff */
-@@ -106,62 +104,27 @@ typedef enum mstat_status{
-
- #define rtw_mstat_update(flag, status, sz) do {} while(0)
- #define rtw_mstat_dump(sel) do {} while(0)
--u8* _rtw_zvmalloc(u32 sz);
--void _rtw_vmfree(u8 *pbuf, u32 sz);
- u8* _rtw_zmalloc(u32 sz);
- u8* _rtw_malloc(u32 sz);
--void _rtw_mfree(u8 *pbuf, u32 sz);
-+void _kfree(u8 *pbuf, u32 sz);
-
- struct sk_buff *_rtw_skb_alloc(u32 sz);
--void _rtw_skb_free(struct sk_buff *skb);
- struct sk_buff *_rtw_skb_copy(const struct sk_buff *skb);
- struct sk_buff *_rtw_skb_clone(struct sk_buff *skb);
- int _rtw_netif_rx(_nic_hdl ndev, struct sk_buff *skb);
--void _rtw_skb_queue_purge(struct sk_buff_head *list);
-
--#ifdef CONFIG_USE_VMALLOC
--#define rtw_zvmalloc(sz) _rtw_zvmalloc((sz))
--#define rtw_vmfree(pbuf, sz) _rtw_vmfree((pbuf), (sz))
--#define rtw_zvmalloc_f(sz, mstat_f) _rtw_zvmalloc((sz))
--#define rtw_vmfree_f(pbuf, sz, mstat_f) _rtw_vmfree((pbuf), (sz))
--#else /* CONFIG_USE_VMALLOC */
--#define rtw_zvmalloc(sz) _rtw_zmalloc((sz))
--#define rtw_vmfree(pbuf, sz) _rtw_mfree((pbuf), (sz))
--#define rtw_zvmalloc_f(sz, mstat_f) _rtw_zmalloc((sz))
--#define rtw_vmfree_f(pbuf, sz, mstat_f) _rtw_mfree((pbuf), (sz))
--#endif /* CONFIG_USE_VMALLOC */
- #define rtw_malloc(sz) _rtw_malloc((sz))
- #define rtw_zmalloc(sz) _rtw_zmalloc((sz))
--#define rtw_mfree(pbuf, sz) _rtw_mfree((pbuf), (sz))
--#define rtw_malloc_f(sz, mstat_f) _rtw_malloc((sz))
--#define rtw_zmalloc_f(sz, mstat_f) _rtw_zmalloc((sz))
--#define rtw_mfree_f(pbuf, sz, mstat_f) _rtw_mfree((pbuf), (sz))
-
- #define rtw_skb_alloc(size) _rtw_skb_alloc((size))
--#define rtw_skb_free(skb) _rtw_skb_free((skb))
- #define rtw_skb_alloc_f(size, mstat_f) _rtw_skb_alloc((size))
--#define rtw_skb_free_f(skb, mstat_f) _rtw_skb_free((skb))
- #define rtw_skb_copy(skb) _rtw_skb_copy((skb))
- #define rtw_skb_clone(skb) _rtw_skb_clone((skb))
- #define rtw_skb_copy_f(skb, mstat_f) _rtw_skb_copy((skb))
- #define rtw_skb_clone_f(skb, mstat_f) _rtw_skb_clone((skb))
- #define rtw_netif_rx(ndev, skb) _rtw_netif_rx(ndev, skb)
--#define rtw_skb_queue_purge(sk_buff_head) _rtw_skb_queue_purge(sk_buff_head)
--
--extern void _rtw_init_listhead(_list *list);
--extern u32 rtw_is_list_empty(_list *phead);
--extern void rtw_list_insert_head(_list *plist, _list *phead);
--extern void rtw_list_insert_tail(_list *plist, _list *phead);
--extern void rtw_list_delete(_list *plist);
-
- extern void _rtw_init_queue(_queue *pqueue);
--extern u32 _rtw_queue_empty(_queue *pqueue);
--extern u32 rtw_end_of_queue_search(_list *queue, _list *pelement);
--
--extern u32 rtw_systime_to_ms(u32 systime);
--extern s32 rtw_get_time_interval_ms(u32 start, u32 end);
--
--extern void rtw_sleep_schedulable(int ms);
-
- extern void rtw_init_timer(_timer *ptimer, void *padapter, void *pfunc);
-
-@@ -184,17 +147,6 @@ __inline static void flush_signals_threa
- }
- }
-
--__inline static _OS_STATUS res_to_status(sint res)
--{
--
-- return res;
--}
--
--__inline static void rtw_dump_stack(void)
--{
-- dump_stack();
--}
--
- #define rtw_warn_on(condition) WARN_ON(condition)
-
- __inline static int rtw_bug_check(void *parg1, void *parg2, void *parg3, void *parg4)
-@@ -230,49 +182,6 @@ __inline static u32 _RND8(u32 sz)
-
- }
-
--__inline static u32 _RND128(u32 sz)
--{
--
-- u32 val;
--
-- val = ((sz >> 7) + ((sz & 127) ? 1: 0)) << 7;
--
-- return val;
--
--}
--
--__inline static u32 _RND256(u32 sz)
--{
--
-- u32 val;
--
-- val = ((sz >> 8) + ((sz & 255) ? 1: 0)) << 8;
--
-- return val;
--
--}
--
--__inline static u32 _RND512(u32 sz)
--{
--
-- u32 val;
--
-- val = ((sz >> 9) + ((sz & 511) ? 1: 0)) << 9;
--
-- return val;
--
--}
--
--__inline static u32 bitshift(u32 bitmask)
--{
-- u32 i;
--
-- for (i = 0; i <= 31; i++)
-- if (((bitmask>>i) & 0x1) == 1) break;
--
-- return i;
--}
--
- #ifndef MAC_FMT
- #define MAC_FMT "%02x:%02x:%02x:%02x:%02x:%02x"
- #endif
-@@ -281,17 +190,6 @@ __inline static u32 bitshift(u32 bitmask
- #endif
-
-
--extern void rtw_suspend_lock_init(void);
--extern void rtw_suspend_lock_uninit(void);
--extern void rtw_lock_suspend(void);
--extern void rtw_unlock_suspend(void);
--extern void rtw_lock_suspend_timeout(u32 timeout_ms);
--extern void rtw_lock_ext_suspend_timeout(u32 timeout_ms);
--extern void rtw_lock_rx_suspend_timeout(u32 timeout_ms);
--extern void rtw_lock_traffic_suspend_timeout(u32 timeout_ms);
--extern void rtw_lock_resume_scan_timeout(u32 timeout_ms);
--extern void rtw_resume_lock_suspend(void);
--extern void rtw_resume_unlock_suspend(void);
- #ifdef CONFIG_AP_WOWLAN
- extern void rtw_softap_lock_suspend(void);
- extern void rtw_softap_unlock_suspend(void);
-@@ -300,15 +198,11 @@ extern void rtw_softap_unlock_suspend(vo
- //File operation APIs, just for linux now
- extern int rtw_is_file_readable(char *path);
- extern int rtw_retrive_from_file(char *path, u8* buf, u32 sz);
--extern int rtw_store_to_file(char *path, u8* buf, u32 sz);
--
-
- extern void rtw_free_netdev(struct net_device * netdev);
-
-
- extern u64 rtw_modular64(u64 x, u64 y);
--extern u64 rtw_division64(u64 x, u64 y);
--extern u32 rtw_random32(void);
-
- /* Macros for handling unaligned memory accesses */
-
-@@ -391,7 +285,6 @@ bool rtw_cbuf_empty(struct rtw_cbuf *cbu
- bool rtw_cbuf_push(struct rtw_cbuf *cbuf, void *buf);
- void *rtw_cbuf_pop(struct rtw_cbuf *cbuf);
- struct rtw_cbuf *rtw_cbuf_alloc(u32 size);
--void rtw_cbuf_free(struct rtw_cbuf *cbuf);
-
- // String handler
- /*
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/osdep_service_linux.h linux/3rdparty/rtl8723bs/include/osdep_service_linux.h
---- linux/3rdparty/rtl8723bs.old/include/osdep_service_linux.h 2015-05-10 14:36:05.725668535 +0300
-+++ linux/3rdparty/rtl8723bs/include/osdep_service_linux.h 2015-05-07 17:46:55.000000000 +0300
-@@ -20,7 +20,6 @@
- #ifndef __OSDEP_LINUX_SERVICE_H_
- #define __OSDEP_LINUX_SERVICE_H_
-
-- #include
- #include
- #include
- #include
-@@ -96,56 +95,6 @@ __inline static _list *get_list_head(_qu
- #define LIST_CONTAINOR(ptr, type, member) \
- ((type *)((char *)(ptr)-(__kernel_size_t)(&((type *)0)->member)))
-
--
--__inline static void _enter_critical(_lock *plock, _irqL *pirqL)
--{
-- spin_lock_irqsave(plock, *pirqL);
--}
--
--__inline static void _exit_critical(_lock *plock, _irqL *pirqL)
--{
-- spin_unlock_irqrestore(plock, *pirqL);
--}
--
--__inline static void _enter_critical_ex(_lock *plock, _irqL *pirqL)
--{
-- spin_lock_irqsave(plock, *pirqL);
--}
--
--__inline static void _exit_critical_ex(_lock *plock, _irqL *pirqL)
--{
-- spin_unlock_irqrestore(plock, *pirqL);
--}
--
--__inline static void _enter_critical_bh(_lock *plock, _irqL *pirqL)
--{
-- spin_lock_bh(plock);
--}
--
--__inline static void _exit_critical_bh(_lock *plock, _irqL *pirqL)
--{
-- spin_unlock_bh(plock);
--}
--
--__inline static int _enter_critical_mutex(_mutex *pmutex, _irqL *pirqL)
--{
-- int ret = 0;
-- //mutex_lock(pmutex);
-- ret = mutex_lock_interruptible(pmutex);
-- return ret;
--}
--
--
--__inline static void _exit_critical_mutex(_mutex *pmutex, _irqL *pirqL)
--{
-- mutex_unlock(pmutex);
--}
--
--__inline static void rtw_list_delete(_list *plist)
--{
-- list_del_init(plist);
--}
--
- #define RTW_TIMER_HDL_ARGS void *FunctionContext
-
- __inline static void _init_timer(_timer *ptimer,_nic_hdl nic_hdl,void *pfunc,void* cntx)
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/recv_osdep.h linux/3rdparty/rtl8723bs/include/recv_osdep.h
---- linux/3rdparty/rtl8723bs.old/include/recv_osdep.h 2015-05-10 14:36:05.725668535 +0300
-+++ linux/3rdparty/rtl8723bs/include/recv_osdep.h 2015-05-07 17:46:55.000000000 +0300
-@@ -29,31 +29,24 @@ extern s32 rtw_recv_entry(union recv_fr
- extern int rtw_recv_indicatepkt(_adapter *adapter, union recv_frame *precv_frame);
- extern void rtw_recv_returnpacket(IN _nic_hdl cnxt, IN _pkt *preturnedpkt);
-
--extern void rtw_hostapd_mlme_rx(_adapter *padapter, union recv_frame *precv_frame);
- extern void rtw_handle_tkip_mic_err(_adapter *padapter,u8 bgroup);
--
-
- int rtw_init_recv_priv(struct recv_priv *precvpriv, _adapter *padapter);
- void rtw_free_recv_priv (struct recv_priv *precvpriv);
-
-
--int rtw_os_recv_resource_init(struct recv_priv *precvpriv, _adapter *padapter);
- int rtw_os_recv_resource_alloc(_adapter *padapter, union recv_frame *precvframe);
- void rtw_os_recv_resource_free(struct recv_priv *precvpriv);
-
-
--int rtw_os_alloc_recvframe(_adapter *padapter, union recv_frame *precvframe, u8 *pdata, _pkt *pskb);
- void rtw_os_free_recvframe(union recv_frame *precvframe);
-
-
--int rtw_os_recvbuf_resource_alloc(_adapter *padapter, struct recv_buf *precvbuf);
- int rtw_os_recvbuf_resource_free(_adapter *padapter, struct recv_buf *precvbuf);
-
- _pkt *rtw_os_alloc_msdu_pkt(union recv_frame *prframe, u16 nSubframe_Length, u8 *pdata);
- void rtw_os_recv_indicate_pkt(_adapter *padapter, _pkt *pkt, struct rx_pkt_attrib *pattrib);
-
--void rtw_os_read_port(_adapter *padapter, struct recv_buf *precvbuf);
--
- void rtw_init_recv_timer(struct recv_reorder_ctrl *preorder_ctrl);
-
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtl8723b_cmd.h linux/3rdparty/rtl8723bs/include/rtl8723b_cmd.h
---- linux/3rdparty/rtl8723bs.old/include/rtl8723b_cmd.h 2015-05-10 14:36:05.726668547 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtl8723b_cmd.h 2015-05-07 17:46:55.000000000 +0300
-@@ -337,7 +337,6 @@ void rtl8723b_fw_try_ap_cmd(PADAPTER pad
- void rtl8723b_set_FwPsTuneParam_cmd(PADAPTER padapter);
- void rtl8723b_set_FwMacIdConfig_cmd(_adapter* padapter, u8 mac_id, u8 raid, u8 bw, u8 sgi, u32 mask);
- void rtl8723b_set_FwMediaStatusRpt_cmd(PADAPTER padapter, u8 mstatus, u8 macid);
--void rtl8723b_set_FwBtMpOper_cmd(PADAPTER padapter, u8 idx, u8 ver, u8 reqnum, u8 *param);
- void rtl8723b_download_rsvd_page(PADAPTER padapter, u8 mstatus);
- void rtl8723b_download_BTCoex_AP_mode_rsvd_page(PADAPTER padapter);
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtl8723b_dm.h linux/3rdparty/rtl8723bs/include/rtl8723b_dm.h
---- linux/3rdparty/rtl8723bs.old/include/rtl8723b_dm.h 2015-05-10 14:36:05.726668547 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtl8723b_dm.h 2015-05-07 17:46:55.000000000 +0300
-@@ -36,7 +36,6 @@
- //============================================================
-
- void rtl8723b_init_dm_priv(PADAPTER padapter);
--void rtl8723b_deinit_dm_priv(PADAPTER padapter);
-
- void rtl8723b_InitHalDm(PADAPTER padapter);
- void rtl8723b_HalDmWatchDog(PADAPTER padapter);
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtl8723b_hal.h linux/3rdparty/rtl8723bs/include/rtl8723b_hal.h
---- linux/3rdparty/rtl8723bs.old/include/rtl8723b_hal.h 2015-05-10 14:36:05.726668547 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtl8723b_hal.h 2015-05-07 17:46:55.000000000 +0300
-@@ -28,7 +28,6 @@
- #include "rtl8723b_recv.h"
- #include "rtl8723b_xmit.h"
- #include "rtl8723b_cmd.h"
--#include "rtl8723b_led.h"
- #include "rtw_mp.h"
- #include "Hal8723BPwrSeq.h"
- #include "Hal8723BPhyReg.h"
-@@ -232,15 +231,10 @@ void rtl8723b_FirmwareSelfReset(PADAPTER
- void rtl8723b_InitializeFirmwareVars(PADAPTER padapter);
-
- void rtl8723b_InitAntenna_Selection(PADAPTER padapter);
--void rtl8723b_DeinitAntenna_Selection(PADAPTER padapter);
--void rtl8723b_CheckAntenna_Selection(PADAPTER padapter);
- void rtl8723b_init_default_value(PADAPTER padapter);
-
- s32 rtl8723b_InitLLTTable(PADAPTER padapter);
-
--s32 CardDisableHWSM(PADAPTER padapter, u8 resetMCU);
--s32 CardDisableWithoutHWSM(PADAPTER padapter);
--
- // EFuse
- u8 GetEEPROMSize8723B(PADAPTER padapter);
- void Hal_InitPGData(PADAPTER padapter, u8 *PROMContent);
-@@ -266,7 +260,6 @@ u8 GetHalDefVar8723B(PADAPTER padapter,
-
- // register
- void rtl8723b_InitBeaconParameters(PADAPTER padapter);
--void rtl8723b_InitBeaconMaxError(PADAPTER padapter, u8 InfraMode);
- void _InitBurstPktLen_8723BS(PADAPTER Adapter);
- void _8051Reset8723(PADAPTER padapter);
- #ifdef CONFIG_WOWLAN
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtl8723b_led.h linux/3rdparty/rtl8723bs/include/rtl8723b_led.h
---- linux/3rdparty/rtl8723bs.old/include/rtl8723b_led.h 2015-05-10 14:36:05.726668547 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtl8723b_led.h 1970-01-01 02:00:00.000000000 +0200
-@@ -1,34 +0,0 @@
--/******************************************************************************
-- *
-- * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or modify it
-- * under the terms of version 2 of the GNU General Public License as
-- * published by the Free Software Foundation.
-- *
-- * This program is distributed in the hope that it will be useful, but WITHOUT
-- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-- * more details.
-- *
-- * You should have received a copy of the GNU General Public License along with
-- * this program; if not, write to the Free Software Foundation, Inc.,
-- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-- *
-- *
-- ******************************************************************************/
--#ifndef __RTL8723B_LED_H__
--#define __RTL8723B_LED_H__
--
--#include
--#include
--#include
--
--
--//================================================================================
--// Interface to manipulate LED objects.
--//================================================================================
--void rtl8723bs_InitSwLeds(PADAPTER padapter);
--void rtl8723bs_DeInitSwLeds(PADAPTER padapter);
--#endif
--
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtl8723b_recv.h linux/3rdparty/rtl8723bs/include/rtl8723b_recv.h
---- linux/3rdparty/rtl8723bs.old/include/rtl8723b_recv.h 2015-05-10 14:36:05.726668547 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtl8723b_recv.h 2015-05-07 17:46:55.000000000 +0300
-@@ -146,7 +146,5 @@ void rtl8723bs_free_recv_priv(PADAPTER p
- void rtl8723b_query_rx_phy_status(union recv_frame *prframe, struct phy_stat *pphy_stat);
- void rtl8723b_process_phy_info(PADAPTER padapter, void *prframe);
-
--void rtl8723b_query_rx_desc_status(union recv_frame *precvframe, u8 *pdesc);
--
- #endif
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtl8723b_spec.h linux/3rdparty/rtl8723bs/include/rtl8723b_spec.h
---- linux/3rdparty/rtl8723bs.old/include/rtl8723b_spec.h 2015-05-10 14:36:05.727668558 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtl8723b_spec.h 2015-05-07 17:46:55.000000000 +0300
-@@ -19,7 +19,7 @@
- #ifndef __RTL8723B_SPEC_H__
- #define __RTL8723B_SPEC_H__
-
--#include
-+#include
-
-
- #define HAL_NAV_UPPER_UNIT_8723B 128 // micro-second
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtw_ap.h linux/3rdparty/rtl8723bs/include/rtw_ap.h
---- linux/3rdparty/rtl8723bs.old/include/rtw_ap.h 2015-05-10 14:36:05.727668558 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtw_ap.h 2015-05-07 17:46:55.000000000 +0300
-@@ -20,19 +20,9 @@
- #ifndef __RTW_AP_H_
- #define __RTW_AP_H_
-
--
--#ifdef CONFIG_AP_MODE
--
--//external function
--extern void rtw_indicate_sta_assoc_event(_adapter *padapter, struct sta_info *psta);
--extern void rtw_indicate_sta_disassoc_event(_adapter *padapter, struct sta_info *psta);
--
--
- void init_mlme_ap_info(_adapter *padapter);
- void free_mlme_ap_info(_adapter *padapter);
- //void update_BCNTIM(_adapter *padapter);
--void rtw_add_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index, u8 *data, u8 len);
--void rtw_remove_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index);
- void update_beacon(_adapter *padapter, u8 ie_id, u8 *oui, u8 tx);
- void add_RATid(_adapter *padapter, struct sta_info *psta, u8 rssi_level);
- void expire_timeout_chk(_adapter *padapter);
-@@ -48,7 +38,6 @@ u8 rtw_ap_set_pairwise_key(_adapter *pad
- int rtw_ap_set_group_key(_adapter *padapter, u8 *key, u8 alg, int keyid);
- int rtw_ap_set_wep_key(_adapter *padapter, u8 *key, u8 keylen, int keyid, u8 set_tx);
-
--#ifdef CONFIG_NATIVEAP_MLME
- void associated_clients_update(_adapter *padapter, u8 updated);
- void bss_cap_update_on_sta_join(_adapter *padapter, struct sta_info *psta);
- u8 bss_cap_update_on_sta_leave(_adapter *padapter, struct sta_info *psta);
-@@ -56,16 +45,8 @@ void sta_info_update(_adapter *padapter,
- void ap_sta_info_defer_update(_adapter *padapter, struct sta_info *psta);
- u8 ap_free_sta(_adapter *padapter, struct sta_info *psta, bool active, u16 reason);
- int rtw_sta_flush(_adapter *padapter);
--int rtw_ap_inform_ch_switch(_adapter *padapter, u8 new_ch, u8 ch_offset);
- void start_ap_mode(_adapter *padapter);
- void stop_ap_mode(_adapter *padapter);
--#endif
--
--#ifdef CONFIG_AUTO_AP_MODE
--extern void rtw_start_auto_ap(_adapter *adapter);
--#endif //CONFIG_AUTO_AP_MODE
--
--#endif //end of CONFIG_AP_MODE
-
- #endif
- void update_bmc_sta(_adapter *padapter);
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtw_btcoex.h linux/3rdparty/rtl8723bs/include/rtw_btcoex.h
---- linux/3rdparty/rtl8723bs.old/include/rtw_btcoex.h 2015-05-10 14:36:05.728668569 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtw_btcoex.h 2015-05-07 17:46:55.000000000 +0300
-@@ -41,14 +41,10 @@ void rtw_btcoex_IQKNotify(PADAPTER padap
- void rtw_btcoex_BtInfoNotify(PADAPTER, u8 length, u8 *tmpBuf);
- void rtw_btcoex_SuspendNotify(PADAPTER, u8 state);
- void rtw_btcoex_HaltNotify(PADAPTER);
--void rtw_btcoex_SwitchBtTRxMask(PADAPTER);
--void rtw_btcoex_Switch(PADAPTER, u8 enable);
- u8 rtw_btcoex_IsBtDisabled(PADAPTER);
- void rtw_btcoex_Handler(PADAPTER);
- s32 rtw_btcoex_IsBTCoexCtrlAMPDUSize(PADAPTER);
--u32 rtw_btcoex_GetAMPDUSize(PADAPTER);
- void rtw_btcoex_SetManualControl(PADAPTER, u8 bmanual);
--u8 rtw_btcoex_1Ant(PADAPTER);
- u8 rtw_btcoex_IsBtControlLps(PADAPTER);
- u8 rtw_btcoex_IsLpsOn(PADAPTER);
- u8 rtw_btcoex_RpwmVal(PADAPTER);
-@@ -56,15 +52,12 @@ u8 rtw_btcoex_LpsVal(PADAPTER);
- void rtw_btcoex_SetBTCoexist(PADAPTER, u8 bBtExist);
- void rtw_btcoex_SetChipType(PADAPTER, u8 chipType);
- void rtw_btcoex_SetPGAntNum(PADAPTER, u8 antNum);
--u8 rtw_btcoex_GetPGAntNum(PADAPTER);
- void rtw_btcoex_SetSingleAntPath(PADAPTER padapter, u8 singleAntPath);
- u32 rtw_btcoex_GetRaMask(PADAPTER);
- void rtw_btcoex_RecordPwrMode(PADAPTER, u8 *pCmdBuf, u8 cmdLen);
- void rtw_btcoex_DisplayBtCoexInfo(PADAPTER, u8 *pbuf, u32 bufsize);
- void rtw_btcoex_SetDBG(PADAPTER, u32 *pDbgModule);
- u32 rtw_btcoex_GetDBG(PADAPTER, u8 *pStrBuf, u32 bufSize);
--u8 rtw_btcoex_IncreaseScanDeviceNum(PADAPTER);
--u8 rtw_btcoex_IsBtLinkExist(PADAPTER);
-
- // ==================================================
- // Below Functions are called by BT-Coex
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtw_cmd.h linux/3rdparty/rtl8723bs/include/rtw_cmd.h
---- linux/3rdparty/rtl8723bs.old/include/rtw_cmd.h 2015-05-10 14:36:05.728668569 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtw_cmd.h 2015-05-07 17:46:55.000000000 +0300
-@@ -86,7 +86,7 @@
-
- #define init_h2fwcmd_w_parm_no_rsp(pcmd, pparm, code) \
- do {\
-- _rtw_init_listhead(&pcmd->list);\
-+ INIT_LIST_HEAD(&pcmd->list);\
- pcmd->cmdcode = code;\
- pcmd->parmbuf = (u8 *)(pparm);\
- pcmd->cmdsz = sizeof (*pparm);\
-@@ -96,7 +96,7 @@ do {\
-
- #define init_h2fwcmd_w_parm_no_parm_rsp(pcmd, code) \
- do {\
-- _rtw_init_listhead(&pcmd->list);\
-+ INIT_LIST_HEAD(&pcmd->list);\
- pcmd->cmdcode = code;\
- pcmd->parmbuf = NULL;\
- pcmd->cmdsz = 0;\
-@@ -148,7 +148,6 @@ extern void rtw_free_cmd_priv (struct cm
-
- extern u32 rtw_init_evt_priv (struct evt_priv *pevtpriv);
- extern void rtw_free_evt_priv (struct evt_priv *pevtpriv);
--extern void rtw_cmd_clr_isr(struct cmd_priv *pcmdpriv);
- extern void rtw_evt_notify_isr(struct evt_priv *pevtpriv);
-
- enum rtw_drvextra_cmd_id
-@@ -843,13 +842,9 @@ Result:
- #define H2C_CMD_OVERFLOW 0x06
- #define H2C_RESERVED 0x07
-
--extern u8 rtw_setassocsta_cmd(_adapter *padapter, u8 *mac_addr);
--extern u8 rtw_setstandby_cmd(_adapter *padapter, uint action);
- u8 rtw_sitesurvey_cmd(_adapter *padapter, NDIS_802_11_SSID *ssid, int ssid_num, struct rtw_ieee80211_channel *ch, int ch_num);
- extern u8 rtw_createbss_cmd(_adapter *padapter);
--extern u8 rtw_createbss_cmd_ex(_adapter *padapter, unsigned char *pbss, unsigned int sz);
- u8 rtw_startbss_cmd(_adapter *padapter, int flags);
--extern u8 rtw_setphy_cmd(_adapter *padapter, u8 modem, u8 ch);
-
- struct sta_info;
- extern u8 rtw_setstakey_cmd(_adapter *padapter, struct sta_info *sta, u8 unicast_key, bool enqueue);
-@@ -859,14 +854,7 @@ extern u8 rtw_joinbss_cmd(_adapter *pad
- u8 rtw_disassoc_cmd(_adapter *padapter, u32 deauth_timeout_ms, bool enqueue);
- extern u8 rtw_setopmode_cmd(_adapter *padapter, NDIS_802_11_NETWORK_INFRASTRUCTURE networktype, bool enqueue);
- extern u8 rtw_setdatarate_cmd(_adapter *padapter, u8 *rateset);
--extern u8 rtw_setbasicrate_cmd(_adapter *padapter, u8 *rateset);
--extern u8 rtw_setbbreg_cmd(_adapter * padapter, u8 offset, u8 val);
--extern u8 rtw_setrfreg_cmd(_adapter * padapter, u8 offset, u32 val);
--extern u8 rtw_getbbreg_cmd(_adapter * padapter, u8 offset, u8 * pval);
--extern u8 rtw_getrfreg_cmd(_adapter * padapter, u8 offset, u8 * pval);
- extern u8 rtw_setrfintfs_cmd(_adapter *padapter, u8 mode);
--extern u8 rtw_setrttbl_cmd(_adapter *padapter, struct setratable_parm *prate_table);
--extern u8 rtw_getrttbl_cmd(_adapter *padapter, struct getratable_rsp *pval);
-
- extern u8 rtw_gettssi_cmd(_adapter *padapter, u8 offset,u8 *pval);
- extern u8 rtw_setfwdig_cmd(_adapter*padapter, u8 type);
-@@ -880,29 +868,18 @@ extern u8 rtw_dynamic_chk_wk_cmd(_adapte
-
- u8 rtw_lps_ctrl_wk_cmd(_adapter*padapter, u8 lps_ctrl_type, u8 enqueue);
- u8 rtw_dm_in_lps_wk_cmd(_adapter*padapter);
--u8 rtw_lps_change_dtim_cmd(_adapter*padapter, u8 dtim);
-
- u8 rtw_dm_ra_mask_wk_cmd(_adapter*padapter, u8 *psta);
-
- extern u8 rtw_ps_cmd(_adapter*padapter);
-
--#ifdef CONFIG_AP_MODE
- u8 rtw_chk_hi_queue_cmd(_adapter*padapter);
--#endif
-
--u8 rtw_btinfo_cmd(PADAPTER padapter, u8 *pbuf, u16 length);
--
--u8 rtw_set_ch_cmd(_adapter*padapter, u8 ch, u8 bw, u8 ch_offset, u8 enqueue);
- extern u8 rtw_set_chplan_cmd(_adapter*padapter, u8 chplan, u8 enqueue, u8 swconfig);
--extern u8 rtw_led_blink_cmd(_adapter*padapter, void * pLed);
--extern u8 rtw_set_csa_cmd(_adapter*padapter, u8 new_ch_no);
--extern u8 rtw_tdls_cmd(_adapter*padapter, u8 *addr, u8 option);
-
- extern u8 rtw_c2h_packet_wk_cmd(PADAPTER padapter, u8 *pbuf, u16 length);
- extern u8 rtw_c2h_wk_cmd(PADAPTER padapter, u8 *c2h_evt);
-
--u8 rtw_run_in_thread_cmd(PADAPTER padapter, void (*func)(void*), void* context);
--
- u8 rtw_drvextra_cmd_hdl(_adapter *padapter, unsigned char *pbuf);
-
- extern void rtw_survey_cmd_callback(_adapter *padapter, struct cmd_obj *pcmd);
-@@ -910,7 +887,6 @@ extern void rtw_disassoc_cmd_callback(_a
- extern void rtw_joinbss_cmd_callback(_adapter *padapter, struct cmd_obj *pcmd);
- extern void rtw_createbss_cmd_callback(_adapter *padapter, struct cmd_obj *pcmd);
- extern void rtw_getbbrfreg_cmdrsp_callback(_adapter *padapter, struct cmd_obj *pcmd);
--extern void rtw_readtssi_cmdrsp_callback(_adapter* padapter, struct cmd_obj *pcmd);
-
- extern void rtw_setstaKey_cmdrsp_callback(_adapter *padapter, struct cmd_obj *pcmd);
- extern void rtw_setassocsta_cmdrsp_callback(_adapter *padapter, struct cmd_obj *pcmd);
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtw_debug.h linux/3rdparty/rtl8723bs/include/rtw_debug.h
---- linux/3rdparty/rtl8723bs.old/include/rtw_debug.h 2015-05-10 14:36:05.728668569 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtw_debug.h 2015-05-07 17:46:55.000000000 +0300
-@@ -314,13 +314,13 @@ ssize_t proc_set_read_reg(struct file *f
- int proc_get_fwstate(struct seq_file *m, void *v);
- int proc_get_sec_info(struct seq_file *m, void *v);
- int proc_get_mlmext_state(struct seq_file *m, void *v);
--#ifdef CONFIG_LAYER2_ROAMING
-+
- int proc_get_roam_flags(struct seq_file *m, void *v);
- ssize_t proc_set_roam_flags(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
- int proc_get_roam_param(struct seq_file *m, void *v);
- ssize_t proc_set_roam_param(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
- ssize_t proc_set_roam_tgt_addr(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
--#endif /* CONFIG_LAYER2_ROAMING */
-+
- int proc_get_qos_option(struct seq_file *m, void *v);
- int proc_get_ht_option(struct seq_file *m, void *v);
- int proc_get_rf_info(struct seq_file *m, void *v);
-@@ -335,9 +335,7 @@ int proc_get_suspend_resume_info(struct
- ssize_t proc_set_fwdl_test_case(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
- ssize_t proc_set_wait_hiq_empty(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
-
--#ifdef CONFIG_AP_MODE
- int proc_get_all_sta_info(struct seq_file *m, void *v);
--#endif /* CONFIG_AP_MODE */
-
- int proc_get_rx_signal(struct seq_file *m, void *v);
- ssize_t proc_set_rx_signal(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtw_eeprom.h linux/3rdparty/rtl8723bs/include/rtw_eeprom.h
---- linux/3rdparty/rtl8723bs.old/include/rtw_eeprom.h 2015-05-10 14:36:05.729668580 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtw_eeprom.h 2015-05-07 17:46:55.000000000 +0300
-@@ -130,13 +130,5 @@ struct eeprom_priv
- u8 cis1[eeprom_cis1_sz];
- };
-
--
--extern void eeprom_write16(_adapter *padapter, u16 reg, u16 data);
--extern u16 eeprom_read16(_adapter *padapter, u16 reg);
--extern void read_eeprom_content(_adapter *padapter);
--extern void eeprom_read_sz(_adapter * padapter, u16 reg,u8* data, u32 sz);
--
--extern void read_eeprom_content_by_attrib(_adapter * padapter );
--
- #endif //__RTL871X_EEPROM_H__
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtw_efuse.h linux/3rdparty/rtl8723bs/include/rtw_efuse.h
---- linux/3rdparty/rtl8723bs.old/include/rtw_efuse.h 2015-05-10 14:36:05.729668580 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtw_efuse.h 2015-05-07 17:46:55.000000000 +0300
-@@ -116,22 +116,12 @@ extern u8 fakeBTEfuseInitMap[];
- extern u8 fakeBTEfuseModifiedMap[];
- /*------------------------Export global variable----------------------------*/
-
--u8 efuse_GetCurrentSize(PADAPTER padapter, u16 *size);
--u16 efuse_GetMaxSize(PADAPTER padapter);
--u8 rtw_efuse_access(PADAPTER padapter, u8 bRead, u16 start_addr, u16 cnts, u8 *data);
--u8 rtw_efuse_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 *data);
--u8 rtw_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data);
--u8 rtw_BT_efuse_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 *data);
--u8 rtw_BT_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data);
--
- u16 Efuse_GetCurrentSize(PADAPTER pAdapter, u8 efuseType, bool bPseudoTest);
- u8 Efuse_CalculateWordCnts(u8 word_en);
--void ReadEFuseByte(PADAPTER Adapter, u16 _offset, u8 *pbuf, bool bPseudoTest) ;
- void EFUSE_GetEfuseDefinition(PADAPTER pAdapter, u8 efuseType, u8 type, void *pOut, bool bPseudoTest);
- u8 efuse_OneByteRead(PADAPTER pAdapter, u16 addr, u8 *data, bool bPseudoTest);
- u8 efuse_OneByteWrite(PADAPTER pAdapter, u16 addr, u8 data, bool bPseudoTest);
-
--void BTEfuse_PowerSwitch(PADAPTER pAdapter,u8 bWrite,u8 PwrState);
- void Efuse_PowerSwitch(PADAPTER pAdapter,u8 bWrite,u8 PwrState);
- int Efuse_PgPacketRead(PADAPTER pAdapter, u8 offset, u8 *data, bool bPseudoTest);
- int Efuse_PgPacketWrite(PADAPTER pAdapter, u8 offset, u8 word_en, u8 *data, bool bPseudoTest);
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtw_ioctl_set.h linux/3rdparty/rtl8723bs/include/rtw_ioctl_set.h
---- linux/3rdparty/rtl8723bs.old/include/rtw_ioctl_set.h 2015-05-10 14:36:05.729668580 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtw_ioctl_set.h 2015-05-07 17:46:55.000000000 +0300
-@@ -29,26 +29,19 @@ typedef struct _BSSIDInfo {
- } BSSIDInfo, *PBSSIDInfo;
-
-
--u8 rtw_set_802_11_add_key(_adapter * padapter, NDIS_802_11_KEY * key);
- u8 rtw_set_802_11_authentication_mode(_adapter *pdapter, NDIS_802_11_AUTHENTICATION_MODE authmode);
- u8 rtw_set_802_11_bssid(_adapter* padapter, u8 *bssid);
- u8 rtw_set_802_11_add_wep(_adapter * padapter, NDIS_802_11_WEP * wep);
- u8 rtw_set_802_11_disassociate(_adapter * padapter);
- u8 rtw_set_802_11_bssid_list_scan(_adapter* padapter, NDIS_802_11_SSID *pssid, int ssid_max_num);
- u8 rtw_set_802_11_infrastructure_mode(_adapter * padapter, NDIS_802_11_NETWORK_INFRASTRUCTURE networktype);
--u8 rtw_set_802_11_remove_wep(_adapter * padapter, u32 keyindex);
- u8 rtw_set_802_11_ssid(_adapter * padapter, NDIS_802_11_SSID * ssid);
- u8 rtw_set_802_11_connect(_adapter* padapter, u8 *bssid, NDIS_802_11_SSID *ssid);
--u8 rtw_set_802_11_remove_key(_adapter * padapter, NDIS_802_11_REMOVE_KEY * key);
-
- u8 rtw_validate_bssid(u8 *bssid);
- u8 rtw_validate_ssid(NDIS_802_11_SSID *ssid);
-
- u16 rtw_get_cur_max_rate(_adapter *adapter);
--int rtw_set_scan_mode(_adapter *adapter, RT_SCAN_TYPE scan_mode);
--int rtw_set_channel_plan(_adapter *adapter, u8 channel_plan);
--int rtw_set_country(_adapter *adapter, const char *country_code);
--int rtw_set_band(_adapter *adapter, enum _BAND band);
-
- #endif
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtw_io.h linux/3rdparty/rtl8723bs/include/rtw_io.h
---- linux/3rdparty/rtl8723bs.old/include/rtw_io.h 2015-05-10 14:36:05.730668591 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtw_io.h 2015-05-07 17:46:55.000000000 +0300
-@@ -318,47 +318,24 @@ extern void _rtw_attrib_write(_adapter *
- extern u8 _rtw_read8(_adapter *adapter, u32 addr);
- extern u16 _rtw_read16(_adapter *adapter, u32 addr);
- extern u32 _rtw_read32(_adapter *adapter, u32 addr);
--extern void _rtw_read_mem(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem);
--extern void _rtw_read_port(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem);
--extern void _rtw_read_port_cancel(_adapter *adapter);
--
-
- extern int _rtw_write8(_adapter *adapter, u32 addr, u8 val);
- extern int _rtw_write16(_adapter *adapter, u32 addr, u16 val);
- extern int _rtw_write32(_adapter *adapter, u32 addr, u32 val);
--extern int _rtw_writeN(_adapter *adapter, u32 addr, u32 length, u8 *pdata);
-
- extern u8 _rtw_sd_f0_read8(_adapter *adapter, u32 addr);
-
--extern int _rtw_write8_async(_adapter *adapter, u32 addr, u8 val);
--extern int _rtw_write16_async(_adapter *adapter, u32 addr, u16 val);
--extern int _rtw_write32_async(_adapter *adapter, u32 addr, u32 val);
--
--extern void _rtw_write_mem(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem);
- extern u32 _rtw_write_port(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem);
--u32 _rtw_write_port_and_wait(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem, int timeout_ms);
--extern void _rtw_write_port_cancel(_adapter *adapter);
-
- #define rtw_read8(adapter, addr) _rtw_read8((adapter), (addr))
- #define rtw_read16(adapter, addr) _rtw_read16((adapter), (addr))
- #define rtw_read32(adapter, addr) _rtw_read32((adapter), (addr))
--#define rtw_read_mem(adapter, addr, cnt, mem) _rtw_read_mem((adapter), (addr), (cnt), (mem))
--#define rtw_read_port(adapter, addr, cnt, mem) _rtw_read_port((adapter), (addr), (cnt), (mem))
--#define rtw_read_port_cancel(adapter) _rtw_read_port_cancel((adapter))
-
- #define rtw_write8(adapter, addr, val) _rtw_write8((adapter), (addr), (val))
- #define rtw_write16(adapter, addr, val) _rtw_write16((adapter), (addr), (val))
- #define rtw_write32(adapter, addr, val) _rtw_write32((adapter), (addr), (val))
--#define rtw_writeN(adapter, addr, length, data) _rtw_writeN((adapter), (addr), (length), (data))
-
--#define rtw_write8_async(adapter, addr, val) _rtw_write8_async((adapter), (addr), (val))
--#define rtw_write16_async(adapter, addr, val) _rtw_write16_async((adapter), (addr), (val))
--#define rtw_write32_async(adapter, addr, val) _rtw_write32_async((adapter), (addr), (val))
--
--#define rtw_write_mem(adapter, addr, cnt, mem) _rtw_write_mem((adapter), (addr), (cnt), (mem))
- #define rtw_write_port(adapter, addr, cnt, mem) _rtw_write_port((adapter), (addr), (cnt), (mem))
--#define rtw_write_port_and_wait(adapter, addr, cnt, mem, timeout_ms) _rtw_write_port_and_wait((adapter), (addr), (cnt), (mem), (timeout_ms))
--#define rtw_write_port_cancel(adapter) _rtw_write_port_cancel((adapter))
-
- #define rtw_sd_f0_read8(adapter, addr) _rtw_sd_f0_read8((adapter), (addr))
-
-@@ -414,10 +391,6 @@ extern void dev_power_down(_adapter * Ad
- */
-
- /*
--#define RTL_W8_ASYNC(reg, val8) rtw_write32_async(padapter, reg, val8)
--#define RTL_W16_ASYNC(reg, val16) rtw_write32_async(padapter, reg, val16)
--#define RTL_W32_ASYNC(reg, val32) rtw_write32_async(padapter, reg, val32)
--
- #define RTL_WRITE_BB(reg, val32) phy_SetUsbBBReg(padapter, reg, val32)
- #define RTL_READ_BB(reg) phy_QueryUsbBBReg(padapter, reg)
- */
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtw_mlme_ext.h linux/3rdparty/rtl8723bs/include/rtw_mlme_ext.h
---- linux/3rdparty/rtl8723bs.old/include/rtw_mlme_ext.h 2015-05-10 14:36:05.730668591 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtw_mlme_ext.h 2015-05-07 17:46:55.000000000 +0300
-@@ -494,11 +494,9 @@ struct mlme_ext_priv
- u8 mlmeext_init;
- atomic_t event_seq;
- u16 mgnt_seq;
--#ifdef CONFIG_IEEE80211W
- u16 sa_query_seq;
- u64 mgnt_80211w_IPN;
- u64 mgnt_80211w_IPN_rx;
--#endif //CONFIG_IEEE80211W
- //struct fw_priv fwpriv;
-
- unsigned char cur_channel;
-@@ -518,9 +516,7 @@ struct mlme_ext_priv
- //for ap mode, network includes ap's cap_info
- _timer survey_timer;
- _timer link_timer;
--#ifdef CONFIG_IEEE80211W
- _timer sa_query_timer;
--#endif //CONFIG_IEEE80211W
- //_timer ADDBA_timer;
- u16 chan_scan_time;
- unsigned long last_scan_time;
-@@ -539,13 +535,10 @@ struct mlme_ext_priv
- u8 DrvBcnEarly;
- u8 DrvBcnTimeOut;
-
--#ifdef CONFIG_AP_MODE
- unsigned char bstart_bss;
--#endif
-
--#ifdef CONFIG_80211D
- u8 update_channel_plan_by_ap_done;
--#endif
-+
- //recv_decache check for Action_public frame
- u8 action_public_dialog_token;
- u16 action_public_rxseq;
-@@ -564,19 +557,15 @@ void free_mlme_ext_priv (struct mlme_ext
- extern void init_mlme_ext_timer(_adapter *padapter);
- extern void init_addba_retry_timer(_adapter *padapter, struct sta_info *psta);
- extern struct xmit_frame *alloc_mgtxmitframe(struct xmit_priv *pxmitpriv);
--struct xmit_frame *alloc_mgtxmitframe_once(struct xmit_priv *pxmitpriv);
-
- //void fill_fwpriv(_adapter * padapter, struct fw_priv *pfwpriv);
-
--unsigned char networktype_to_raid(_adapter *adapter,struct sta_info *psta);
- unsigned char networktype_to_raid_ex(_adapter *adapter, struct sta_info *psta);
-
--u8 judge_network_type(_adapter *padapter, unsigned char *rate, int ratelen);
- void get_rate_set(_adapter *padapter, unsigned char *pbssrate, int *bssrate_len);
- void set_mcs_rate_by_mask(u8 *mcs_set, u32 mask);
- void UpdateBrateTbl(_adapter *padapter,u8 *mBratesOS);
- void UpdateBrateTblForSoftAP(u8 *bssrateset, u32 bssratelen);
--void change_band_update_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork);
-
- void Save_DM_Func_Flag(_adapter *padapter);
- void Restore_DM_Func_Flag(_adapter *padapter);
-@@ -593,14 +582,10 @@ void rtw_set_oper_bw(_adapter *adapter,
- u8 rtw_get_oper_choffset(_adapter *adapter);
- void rtw_set_oper_choffset(_adapter *adapter, u8 offset);
- u8 rtw_get_center_ch(u8 channel, u8 chnl_bw, u8 chnl_offset);
--u32 rtw_get_on_oper_ch_time(_adapter *adapter);
- unsigned long rtw_get_on_cur_ch_time(_adapter *adapter);
-
--u8 rtw_get_offset_by_ch(u8 channel);
--
- void set_channel_bwmode(_adapter *padapter, unsigned char channel, unsigned char channel_offset, unsigned short bwmode);
- void SelectChannel(_adapter *padapter, unsigned char channel);
--void SetBWMode(_adapter *padapter, unsigned short bwmode, unsigned char channel_offset);
-
- unsigned int decide_wait_for_beacon_timeout(unsigned int bcn_interval);
-
-@@ -620,19 +605,15 @@ void write_cam_cache(_adapter *adapter,
- void clear_cam_cache(_adapter *adapter, u8 id);
-
- void invalidate_cam_all(_adapter *padapter);
--void CAM_empty_entry(PADAPTER Adapter, u8 ucIndex);
-
-
- int allocate_fw_sta_entry(_adapter *padapter);
- void flush_all_cam_entry(_adapter *padapter);
-
--bool IsLegal5GChannel(PADAPTER Adapter, u8 channel);
--
- void site_survey(_adapter *padapter);
- u8 collect_bss_info(_adapter *padapter, union recv_frame *precv_frame, WLAN_BSSID_EX *bssid);
- void update_network(WLAN_BSSID_EX *dst, WLAN_BSSID_EX *src, _adapter * padapter, bool update_ie);
-
--int get_bsstype(unsigned short capability);
- u8* get_my_bssid(WLAN_BSSID_EX *pnetwork);
- u16 get_beacon_interval(WLAN_BSSID_EX *bss);
-
-@@ -658,15 +639,11 @@ int rtw_check_bcn_info(ADAPTER *Adapter,
- void update_IOT_info(_adapter *padapter);
- void update_capinfo(PADAPTER Adapter, u16 updateCap);
- void update_wireless_mode(_adapter * padapter);
--void update_tx_basic_rate(_adapter *padapter, u8 modulation);
- void update_sta_basic_rate(struct sta_info *psta, u8 wireless_mode);
- int update_sta_support_rate(_adapter *padapter, u8* pvar_ie, uint var_ie_len, int cam_idx);
-
- //for sta/adhoc mode
- void update_sta_info(_adapter *padapter, struct sta_info *psta);
--unsigned int update_basic_rate(unsigned char *ptn, unsigned int ptn_sz);
--unsigned int update_supported_rate(unsigned char *ptn, unsigned int ptn_sz);
--unsigned int update_MCS_rate(struct HT_caps_element *pHT_caps);
- void Update_RA_Entry(_adapter *padapter, struct sta_info *psta);
- void set_sta_rate(_adapter *padapter, struct sta_info *psta);
-
-@@ -675,10 +652,7 @@ unsigned int receive_disconnect(_adapter
- unsigned char get_highest_rate_idx(u32 mask);
- int support_short_GI(_adapter *padapter, struct HT_caps_element *pHT_caps, u8 bwmode);
- unsigned int is_ap_in_tkip(_adapter *padapter);
--unsigned int is_ap_in_wep(_adapter *padapter);
--unsigned int should_forbid_n_rate(_adapter * padapter);
-
--s16 rtw_get_camid(_adapter *adapter, struct sta_info* sta, s16 kid);
- s16 rtw_camid_search(_adapter *adapter, u8 *addr, s16 kid);
- s16 rtw_camid_alloc(_adapter *adapter, struct sta_info *sta, u8 kid);
- void rtw_camid_free(_adapter *adapter, u8 cam_id);
-@@ -718,11 +692,8 @@ s32 issue_nulldata_in_interrupt(PADAPTER
- int issue_qos_nulldata(_adapter *padapter, unsigned char *da, u16 tid, int try_cnt, int wait_ms);
- int issue_deauth(_adapter *padapter, unsigned char *da, unsigned short reason);
- int issue_deauth_ex(_adapter *padapter, u8 *da, unsigned short reason, int try_cnt, int wait_ms);
--void issue_action_spct_ch_switch(_adapter *padapter, u8 *ra, u8 new_ch, u8 ch_offset);
- void issue_action_BA(_adapter *padapter, unsigned char *raddr, unsigned char action, unsigned short status);
--#ifdef CONFIG_IEEE80211W
- void issue_action_SA_Query(_adapter *padapter, unsigned char *raddr, unsigned char action, unsigned short tid);
--#endif //CONFIG_IEEE80211W
- unsigned int send_delba(_adapter *padapter, u8 initiator, u8 *addr);
- unsigned int send_beacon(_adapter *padapter);
-
-@@ -748,9 +719,7 @@ unsigned int on_action_spct(_adapter *pa
- unsigned int OnAction_back(_adapter *padapter, union recv_frame *precv_frame);
- unsigned int on_action_public(_adapter *padapter, union recv_frame *precv_frame);
- unsigned int OnAction_ht(_adapter *padapter, union recv_frame *precv_frame);
--#ifdef CONFIG_IEEE80211W
- unsigned int OnAction_sa_query(_adapter *padapter, union recv_frame *precv_frame);
--#endif //CONFIG_IEEE80211W
-
- void mlmeext_joinbss_event_callback(_adapter *padapter, int join_res);
- void mlmeext_sta_del_event_callback(_adapter *padapter);
-@@ -763,9 +732,7 @@ void _linked_info_dump(_adapter *padapte
- void survey_timer_hdl (_adapter *padapter);
- void link_timer_hdl (_adapter *padapter);
- void addba_timer_hdl(struct sta_info *psta);
--#ifdef CONFIG_IEEE80211W
- void sa_query_timer_hdl(_adapter *padapter);
--#endif //CONFIG_IEEE80211W
- //void reauth_timer_hdl(_adapter *padapter);
- //void reassoc_timer_hdl(_adapter *padapter);
-
-@@ -780,13 +747,11 @@ void sa_query_timer_hdl(_adapter *padapt
- /*DBG_871X("%s set_link_timer(%p, %d)\n", __FUNCTION__, (mlmeext), (ms));*/ \
- _set_timer(&(mlmeext)->link_timer, (ms)); \
- } while(0)
--#ifdef CONFIG_IEEE80211W
- #define set_sa_query_timer(mlmeext, ms) \
- do { \
- DBG_871X("%s set_sa_query_timer(%p, %d)\n", __FUNCTION__, (mlmeext), (ms)); \
- _set_timer(&(mlmeext)->sa_query_timer, (ms)); \
- } while(0)
--#endif //CONFIG_IEEE80211W
- extern int cckrates_included(unsigned char *rate, int ratelen);
- extern int cckratesonly_included(unsigned char *rate, int ratelen);
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtw_mlme.h linux/3rdparty/rtl8723bs/include/rtw_mlme.h
---- linux/3rdparty/rtl8723bs.old/include/rtw_mlme.h 2015-05-10 14:36:05.731668602 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtw_mlme.h 2015-05-07 17:46:55.000000000 +0300
-@@ -349,7 +349,7 @@ struct mlme_priv {
- sint fw_state; //shall we protect this variable? maybe not necessarily...
- u8 bScanInProcess;
- u8 to_join; //flag
-- #ifdef CONFIG_LAYER2_ROAMING
-+
- u8 to_roam; /* roaming trying times */
- struct wlan_network *roam_network; /* the target of active roam */
- u8 roam_flags;
-@@ -357,7 +357,6 @@ struct mlme_priv {
- u32 roam_scan_int_ms; /* scan interval for active roam */
- u32 roam_scanr_exp_ms; /* scan result expire time in ms for roam */
- u8 roam_tgt_addr[ETH_ALEN]; /* request to roam to speicific target without other consideration */
-- #endif
-
- u8 *nic_hdl;
-
-@@ -412,7 +411,6 @@ struct mlme_priv {
- u8 *wps_probe_req_ie;
- u32 wps_probe_req_ie_len;
-
--#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
- /* Number of associated Non-ERP stations (i.e., stations using 802.11b
- * in 802.11g BSS) */
- int num_sta_non_erp;
-@@ -468,9 +466,6 @@ struct mlme_priv {
-
- _lock bcn_update_lock;
- u8 update_bcn;
--
--
--#endif //#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
-
- #ifdef CONFIG_INTEL_WIDI
- int widi_state;
-@@ -510,8 +505,6 @@ struct mlme_priv {
-
- void rtw_mlme_reset_auto_scan_int(_adapter *adapter);
-
--#ifdef CONFIG_AP_MODE
--
- struct hostapd_priv
- {
- _adapter *padapter;
-@@ -519,8 +512,6 @@ struct hostapd_priv
-
- extern int hostapd_mode_init(_adapter *padapter);
- extern void hostapd_mode_unload(_adapter *padapter);
--#endif
--
-
- extern void rtw_joinbss_event_prehandle(_adapter *adapter, u8 *pbuf);
- extern void rtw_survey_event_callback(_adapter *adapter, u8 *pbuf);
-@@ -597,48 +588,17 @@ __inline static void _clr_fwstate_(struc
- */
- __inline static void clr_fwstate(struct mlme_priv *pmlmepriv, sint state)
- {
-- _irqL irqL;
--
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
- if (check_fwstate(pmlmepriv, state) == true)
- pmlmepriv->fw_state ^= state;
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
--}
--
--__inline static void clr_fwstate_ex(struct mlme_priv *pmlmepriv, sint state)
--{
-- _irqL irqL;
--
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-- _clr_fwstate_(pmlmepriv, state);
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
--}
--
--__inline static void up_scanned_network(struct mlme_priv *pmlmepriv)
--{
-- _irqL irqL;
--
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-- pmlmepriv->num_of_scanned++;
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
--}
--
--__inline static void down_scanned_network(struct mlme_priv *pmlmepriv)
--{
-- _irqL irqL;
--
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-- pmlmepriv->num_of_scanned--;
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
- }
-
- __inline static void set_scanned_network_val(struct mlme_priv *pmlmepriv, sint val)
- {
-- _irqL irqL;
--
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
- pmlmepriv->num_of_scanned = val;
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
- }
-
- extern u16 rtw_get_capability(WLAN_BSSID_EX *bss);
-@@ -648,7 +608,6 @@ extern void rtw_generate_random_ibss(u8
- extern struct wlan_network* rtw_find_network(_queue *scanned_queue, u8 *addr);
- extern struct wlan_network* rtw_get_oldest_wlan_network(_queue *scanned_queue);
- struct wlan_network *_rtw_find_same_network(_queue *scanned_queue, struct wlan_network *network);
--struct wlan_network *rtw_find_same_network(_queue *scanned_queue, struct wlan_network *network);
-
- extern void rtw_free_assoc_resources(_adapter* adapter, int lock_scanned_queue);
- extern void rtw_indicate_disconnect(_adapter* adapter);
-@@ -679,8 +638,6 @@ void rtw_free_mlme_priv_ie_data(struct m
-
- extern void _rtw_free_mlme_priv(struct mlme_priv *pmlmepriv);
-
--extern int _rtw_enqueue_network(_queue *queue, struct wlan_network *pnetwork);
--
- //extern struct wlan_network* _rtw_dequeue_network(_queue *queue);
-
- extern struct wlan_network* _rtw_alloc_network(struct mlme_priv *pmlmepriv);
-@@ -699,7 +656,6 @@ extern sint rtw_if_up(_adapter *padapter
- sint rtw_linked_check(_adapter *padapter);
-
- u8 *rtw_get_capability_from_ie(u8 *ie);
--u8 *rtw_get_timestampe_from_ie(u8 *ie);
- u8 *rtw_get_beacon_interval_from_ie(u8 *ie);
-
-
-@@ -715,7 +671,6 @@ void rtw_append_exented_cap(_adapter *pa
- int rtw_is_same_ibss(_adapter *adapter, struct wlan_network *pnetwork);
- int is_same_network(WLAN_BSSID_EX *src, WLAN_BSSID_EX *dst, u8 feature);
-
--#ifdef CONFIG_LAYER2_ROAMING
- #define rtw_roam_flags(adapter) ((adapter)->mlmepriv.roam_flags)
- #define rtw_chk_roam_flags(adapter, flags) ((adapter)->mlmepriv.roam_flags & flags)
- #define rtw_clr_roam_flags(adapter, flags) \
-@@ -739,19 +694,6 @@ void rtw_set_to_roam(_adapter *adapter,
- u8 rtw_dec_to_roam(_adapter *adapter);
- u8 rtw_to_roam(_adapter *adapter);
- int rtw_select_roaming_candidate(struct mlme_priv *pmlmepriv);
--#else
--#define rtw_roam_flags(adapter) 0
--#define rtw_chk_roam_flags(adapter, flags) 0
--#define rtw_clr_roam_flags(adapter, flags) do {} while (0)
--#define rtw_set_roam_flags(adapter, flags) do {} while (0)
--#define rtw_assign_roam_flags(adapter, flags) do {} while (0)
--#define _rtw_roaming(adapter, tgt_network) do {} while(0)
--#define rtw_roaming(adapter, tgt_network) do {} while(0)
--#define rtw_set_to_roam(adapter, to_roam) do {} while(0)
--#define rtw_dec_to_roam(adapter) 0
--#define rtw_to_roam(adapter) 0
--#define rtw_select_roaming_candidate(mlme) _FAIL
--#endif /* CONFIG_LAYER2_ROAMING */
-
- void rtw_sta_media_status_rpt(_adapter *adapter,struct sta_info *psta, u32 mstatus);
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtw_pwrctrl.h linux/3rdparty/rtl8723bs/include/rtw_pwrctrl.h
---- linux/3rdparty/rtl8723bs.old/include/rtw_pwrctrl.h 2015-05-10 14:36:05.731668602 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtw_pwrctrl.h 2015-05-07 17:46:55.000000000 +0300
-@@ -347,12 +347,8 @@ s32 rtw_register_task_alive(PADAPTER, u3
- void rtw_unregister_task_alive(PADAPTER, u32 task);
- extern s32 rtw_register_tx_alive(PADAPTER padapter);
- extern void rtw_unregister_tx_alive(PADAPTER padapter);
--extern s32 rtw_register_rx_alive(PADAPTER padapter);
--extern void rtw_unregister_rx_alive(PADAPTER padapter);
- extern s32 rtw_register_cmd_alive(PADAPTER padapter);
- extern void rtw_unregister_cmd_alive(PADAPTER padapter);
--extern s32 rtw_register_evt_alive(PADAPTER padapter);
--extern void rtw_unregister_evt_alive(PADAPTER padapter);
- extern void cpwm_int_hdl(PADAPTER padapter, struct reportpwrstate_parm *preportpwrstate);
- extern void LPS_Leave_check(PADAPTER padapter);
-
-@@ -365,8 +361,6 @@ int ips_leave(_adapter * padapter);
-
- void rtw_ps_processor(_adapter*padapter);
-
--int rtw_fw_ps_state(PADAPTER padapter);
--
- s32 LPS_RF_ON_check(PADAPTER padapter, u32 delay_ms);
- void LPS_Enter(PADAPTER padapter, const char *msg);
- void LPS_Leave(PADAPTER padapter, const char *msg);
-@@ -374,7 +368,6 @@ void traffic_check_for_leave_lps(PADAPTE
- void rtw_set_ps_mode(PADAPTER padapter, u8 ps_mode, u8 smart_ps, u8 bcn_ant_mode, const char *msg);
- void rtw_set_rpwm(_adapter * padapter, u8 val8);
-
--u8 rtw_interface_ps_func(_adapter *padapter,HAL_INTF_PS_FUNC efunc_id,u8* val);
- void rtw_set_ips_deny(_adapter *padapter, u32 ms);
- int _rtw_pwr_wakeup(_adapter *padapter, u32 ips_deffer_ms, const char *caller);
- #define rtw_pwr_wakeup(adapter) _rtw_pwr_wakeup(adapter, RTW_PWR_STATE_CHK_INTERVAL, __FUNCTION__)
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtw_recv.h linux/3rdparty/rtl8723bs/include/rtw_recv.h
---- linux/3rdparty/rtl8723bs.old/include/rtw_recv.h 2015-05-10 14:36:05.732668613 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtw_recv.h 2015-05-07 17:46:55.000000000 +0300
-@@ -439,15 +439,6 @@ struct recv_frame_hdr
-
- //for A-MPDU Rx reordering buffer control
- struct recv_reorder_ctrl *preorder_ctrl;
--
--#ifdef CONFIG_WAPI_SUPPORT
-- u8 UserPriority;
-- u8 WapiTempPN[16];
-- u8 WapiSrcAddr[6];
-- u8 bWapiCheckPNInDecrypt;
-- u8 bIsWaiPacket;
--#endif
--
- };
-
-
-@@ -473,7 +464,6 @@ typedef enum _RX_PACKET_TYPE{
-
- extern union recv_frame *_rtw_alloc_recvframe (_queue *pfree_recv_queue); //get a free recv_frame from pfree_recv_queue
- extern union recv_frame *rtw_alloc_recvframe (_queue *pfree_recv_queue); //get a free recv_frame from pfree_recv_queue
--extern void rtw_init_recvframe(union recv_frame *precvframe ,struct recv_priv *precvpriv);
- extern int rtw_free_recvframe(union recv_frame *precvframe, _queue *pfree_recv_queue);
-
- #define rtw_dequeue_recvframe(queue) rtw_alloc_recvframe(queue)
-@@ -498,13 +488,6 @@ __inline static u8 *get_rxmem(union recv
- return precvframe->u.hdr.rx_head;
- }
-
--__inline static u8 *get_rx_status(union recv_frame *precvframe)
--{
--
-- return get_rxmem(precvframe);
--
--}
--
- __inline static u8 *get_recvframe_data(union recv_frame *precvframe)
- {
-
-@@ -516,34 +499,6 @@ __inline static u8 *get_recvframe_data(u
-
- }
-
--__inline static u8 *recvframe_push(union recv_frame *precvframe, sint sz)
--{
-- // append data before rx_data
--
-- /* add data to the start of recv_frame
-- *
-- * This function extends the used data area of the recv_frame at the buffer
-- * start. rx_data must be still larger than rx_head, after pushing.
-- */
--
-- if(precvframe==NULL)
-- return NULL;
--
--
-- precvframe->u.hdr.rx_data -= sz ;
-- if( precvframe->u.hdr.rx_data < precvframe->u.hdr.rx_head )
-- {
-- precvframe->u.hdr.rx_data += sz ;
-- return NULL;
-- }
--
-- precvframe->u.hdr.len +=sz;
--
-- return precvframe->u.hdr.rx_data;
--
--}
--
--
- __inline static u8 *recvframe_pull(union recv_frame *precvframe, sint sz)
- {
- // rx_data += sz; move rx_data sz bytes hereafter
-@@ -586,7 +541,7 @@ __inline static u8 *recvframe_put(union
-
- if(precvframe->u.hdr.rx_tail > precvframe->u.hdr.rx_end)
- {
-- precvframe->u.hdr.rx_tail -= sz;
-+ precvframe->u.hdr.rx_tail = prev_rx_tail;
- return NULL;
- }
-
-@@ -622,18 +577,6 @@ __inline static u8 *recvframe_pull_tail(
-
- }
-
--
--
--__inline static _buffer * get_rxbuf_desc(union recv_frame *precvframe)
--{
-- _buffer * buf_desc;
--
-- if(precvframe==NULL)
-- return NULL;
-- return buf_desc;
--}
--
--
- __inline static union recv_frame *rxmem_to_recvframe(u8 *rxmem)
- {
- //due to the design of 2048 bytes alignment of recv_frame, we can reference the union recv_frame
-@@ -644,37 +587,6 @@ __inline static union recv_frame *rxmem_
-
- }
-
--__inline static union recv_frame *pkt_to_recvframe(_pkt *pkt)
--{
--
-- u8 * buf_star;
-- union recv_frame * precv_frame;
-- precv_frame = rxmem_to_recvframe((unsigned char*)buf_star);
--
-- return precv_frame;
--}
--
--__inline static u8 *pkt_to_recvmem(_pkt *pkt)
--{
-- // return the rx_head
--
-- union recv_frame * precv_frame = pkt_to_recvframe(pkt);
--
-- return precv_frame->u.hdr.rx_head;
--
--}
--
--__inline static u8 *pkt_to_recvdata(_pkt *pkt)
--{
-- // return the rx_data
--
-- union recv_frame * precv_frame =pkt_to_recvframe(pkt);
--
-- return precv_frame->u.hdr.rx_data;
--
--}
--
--
- __inline static sint get_recvframe_len(union recv_frame *precvframe)
- {
- return precvframe->u.hdr.len;
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtw_rf.h linux/3rdparty/rtl8723bs/include/rtw_rf.h
---- linux/3rdparty/rtl8723bs.old/include/rtw_rf.h 2015-05-10 14:36:05.732668613 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtw_rf.h 2015-05-07 17:46:55.000000000 +0300
-@@ -168,8 +168,6 @@ typedef enum _RT_RF_TYPE_DEFINITION
-
-
- u32 rtw_ch2freq(u32 ch);
--u32 rtw_freq2ch(u32 freq);
--
-
- #endif //_RTL8711_RF_H_
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtw_security.h linux/3rdparty/rtl8723bs/include/rtw_security.h
---- linux/3rdparty/rtl8723bs.old/include/rtw_security.h 2015-05-10 14:36:05.732668613 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtw_security.h 2015-05-07 17:46:55.000000000 +0300
-@@ -29,9 +29,7 @@
- #define _WEP104_ 0x5
- #define _WEP_WPA_MIXED_ 0x07 // WEP + WPA
- #define _SMS4_ 0x06
--#ifdef CONFIG_IEEE80211W
- #define _BIP_ 0x8
--#endif //CONFIG_IEEE80211W
- #define is_wep_enc(alg) (((alg) == _WEP40_) || ((alg) == _WEP104_))
-
- const char *security_type_str(u8 value);
-@@ -134,13 +132,11 @@ struct security_priv
- union Keytype dot118021XGrprxmickey[4];
- union pn48 dot11Grptxpn; // PN48 used for Grp Key xmit.
- union pn48 dot11Grprxpn; // PN48 used for Grp Key recv.
--#ifdef CONFIG_IEEE80211W
- u32 dot11wBIPKeyid; // key id used for BIP Key ( tx key index)
- union Keytype dot11wBIPKey[6]; // BIP Key, for index4 and index5
- union pn48 dot11wBIPtxpn; // PN48 used for Grp Key xmit.
- union pn48 dot11wBIPrxpn; // PN48 used for Grp Key recv.
--#endif //CONFIG_IEEE80211W
--#ifdef CONFIG_AP_MODE
-+
- //extend security capabilities for AP_MODE
- unsigned int dot8021xalg;//0:disable, 1:psk, 2:802.1x
- unsigned int wpa_psk;//0:disable, bit(0): WPA, bit(1):WPA2
-@@ -148,7 +144,6 @@ struct security_priv
- unsigned int wpa2_group_cipher;
- unsigned int wpa_pairwise_cipher;
- unsigned int wpa2_pairwise_cipher;
--#endif
-
- u8 wps_ie[MAX_WPS_IE_LEN];//added in assoc req
- int wps_ie_len;
-@@ -158,9 +153,7 @@ struct security_priv
- #ifdef CONFIG_GTK_OL
- u8 binstallKCK_KEK;
- #endif //CONFIG_GTK_OL
--#ifdef CONFIG_IEEE80211W
- u8 binstallBIPkey;
--#endif //CONFIG_IEEE80211W
- u8 busetkipkey;
- //_timer tkip_timer;
- u8 bcheck_grpkey;
-@@ -455,11 +448,7 @@ void rtw_wep_encrypt(_adapter *padapter,
- u32 rtw_aes_decrypt(_adapter *padapter, u8 *precvframe);
- u32 rtw_tkip_decrypt(_adapter *padapter, u8 *precvframe);
- void rtw_wep_decrypt(_adapter *padapter, u8 *precvframe);
--#ifdef CONFIG_IEEE80211W
- u32 rtw_BIP_verify(_adapter *padapter, u8 *precvframe);
--#endif //CONFIG_IEEE80211W
--
--void rtw_use_tkipkey_handler(RTW_TIMER_HDL_ARGS);
-
- void rtw_sec_restore_wep_key(_adapter *adapter);
- u8 rtw_handle_tkip_countermeasure(_adapter* adapter, const char *caller);
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/rtw_wapi.h linux/3rdparty/rtl8723bs/include/rtw_wapi.h
---- linux/3rdparty/rtl8723bs.old/include/rtw_wapi.h 2015-05-10 14:36:05.732668613 +0300
-+++ linux/3rdparty/rtl8723bs/include/rtw_wapi.h 1970-01-01 02:00:00.000000000 +0200
-@@ -1,222 +0,0 @@
--#ifndef __INC_WAPI_H
--#define __INC_WAPI_H
--
--
--#define CONFIG_WAPI_SW_SMS4
--#define WAPI_DEBUG
--
--#define SMS4_MIC_LEN 16
--#define WAPI_EXT_LEN 18
--#define MAX_WAPI_IE_LEN 256
--#define sMacHdrLng 24 // octets in data header, no WEP
--
--#ifdef WAPI_DEBUG
--
--/* WAPI trace debug */
--extern u32 wapi_debug_component;
--
--static inline void dump_buf(u8 *buf, u32 len)
--{
-- u32 i;
-- printk("-----------------Len %d----------------\n", len);
-- for(i=0; iattrib)
- extern s32 rtw_xmitframe_coalesce(_adapter *padapter, _pkt *pkt, struct xmit_frame *pxmitframe);
--#ifdef CONFIG_IEEE80211W
- extern s32 rtw_mgmt_xmitframe_coalesce(_adapter *padapter, _pkt *pkt, struct xmit_frame *pxmitframe);
--#endif //CONFIG_IEEE80211W
- s32 _rtw_init_hw_txqueue(struct hw_txqueue* phw_txqueue, u8 ac_tag);
- void _rtw_init_sta_xmit_priv(struct sta_xmit_priv *psta_xmitpriv);
-
-
- s32 rtw_txframes_pending(_adapter *padapter);
--s32 rtw_txframes_sta_ac_pending(_adapter *padapter, struct pkt_attrib *pattrib);
- void rtw_init_hwxmits(struct hw_xmit *phwxmit, sint entry);
-
-
-@@ -510,12 +506,11 @@ void rtw_free_hwxmits(_adapter *padapter
-
- s32 rtw_xmit(_adapter *padapter, _pkt **pkt);
- bool xmitframe_hiq_filter(struct xmit_frame *xmitframe);
--#if defined(CONFIG_AP_MODE)
-+
- sint xmitframe_enqueue_for_sleeping_sta(_adapter *padapter, struct xmit_frame *pxmitframe);
- void stop_sta_xmit(_adapter *padapter, struct sta_info *psta);
- void wakeup_sta_to_xmit(_adapter *padapter, struct sta_info *psta);
- void xmit_delivery_enabled_frames(_adapter *padapter, struct sta_info *psta);
--#endif
-
- u8 query_ra_short_GI(struct sta_info *psta);
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/sdio_ops.h linux/3rdparty/rtl8723bs/include/sdio_ops.h
---- linux/3rdparty/rtl8723bs.old/include/sdio_ops.h 2015-05-10 14:36:05.733668625 +0300
-+++ linux/3rdparty/rtl8723bs/include/sdio_ops.h 2015-05-07 17:46:55.000000000 +0300
-@@ -29,9 +29,7 @@ extern void sdio_set_intf_ops(_adapter *
- //extern void sdio_func1cmd52_write(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *wmem);
- extern u8 SdioLocalCmd52Read1Byte(PADAPTER padapter, u32 addr);
- extern void SdioLocalCmd52Write1Byte(PADAPTER padapter, u32 addr, u8 v);
--extern s32 _sdio_local_read(PADAPTER padapter, u32 addr, u32 cnt, u8 *pbuf);
- extern s32 sdio_local_read(PADAPTER padapter, u32 addr, u32 cnt, u8 *pbuf);
--extern s32 _sdio_local_write(PADAPTER padapter, u32 addr, u32 cnt, u8 *pbuf);
- extern s32 sdio_local_write(PADAPTER padapter, u32 addr, u32 cnt, u8 *pbuf);
-
- u32 _sdio_read32(PADAPTER padapter, u32 addr);
-@@ -50,7 +48,6 @@ extern void DisableInterrupt8723BSdio(PA
- extern u8 HalQueryTxBufferStatus8723BSdio(PADAPTER padapter);
- extern u8 HalQueryTxOQTBufferStatus8723BSdio(PADAPTER padapter);
- #if defined(CONFIG_WOWLAN) || defined(CONFIG_AP_WOWLAN)
--extern void DisableInterruptButCpwm28723BSdio(PADAPTER padapter);
- extern void ClearInterrupt8723BSdio(PADAPTER padapter);
- #endif //CONFIG_WOWLAN
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/sdio_ops_linux.h linux/3rdparty/rtl8723bs/include/sdio_ops_linux.h
---- linux/3rdparty/rtl8723bs.old/include/sdio_ops_linux.h 2015-05-10 14:36:05.733668625 +0300
-+++ linux/3rdparty/rtl8723bs/include/sdio_ops_linux.h 2015-05-07 17:46:55.000000000 +0300
-@@ -25,23 +25,17 @@
- #define SDIO_ERR_VAL32 0xEAEAEAEA
-
- u8 sd_f0_read8(struct intf_hdl *pintfhdl, u32 addr, s32 *err);
--void sd_f0_write8(struct intf_hdl *pintfhdl, u32 addr, u8 v, s32 *err);
-
- s32 _sd_cmd52_read(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pdata);
- s32 _sd_cmd52_write(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pdata);
- s32 sd_cmd52_read(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pdata);
- s32 sd_cmd52_write(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pdata);
-
--u8 _sd_read8(struct intf_hdl *pintfhdl, u32 addr, s32 *err);
- u8 sd_read8(struct intf_hdl *pintfhdl, u32 addr, s32 *err);
--u16 sd_read16(struct intf_hdl *pintfhdl, u32 addr, s32 *err);
--u32 _sd_read32(struct intf_hdl *pintfhdl, u32 addr, s32 *err);
- u32 sd_read32(struct intf_hdl *pintfhdl, u32 addr, s32 *err);
- s32 _sd_read(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, void *pdata);
- s32 sd_read(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, void *pdata);
- void sd_write8(struct intf_hdl *pintfhdl, u32 addr, u8 v, s32 *err);
--void sd_write16(struct intf_hdl *pintfhdl, u32 addr, u16 v, s32 *err);
--void _sd_write32(struct intf_hdl *pintfhdl, u32 addr, u32 v, s32 *err);
- void sd_write32(struct intf_hdl *pintfhdl, u32 addr, u32 v, s32 *err);
- s32 _sd_write(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, void *pdata);
- s32 sd_write(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, void *pdata);
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/sta_info.h linux/3rdparty/rtl8723bs/include/sta_info.h
---- linux/3rdparty/rtl8723bs.old/include/sta_info.h 2015-05-10 14:36:05.733668625 +0300
-+++ linux/3rdparty/rtl8723bs/include/sta_info.h 2015-05-07 17:46:55.000000000 +0300
-@@ -113,9 +113,7 @@ struct sta_info {
- u8 kck[RTW_KCK_LEN];
- u8 replay_ctr[RTW_REPLAY_CTR_LEN];
- #endif //CONFIG_GTK_OL
--#ifdef CONFIG_IEEE80211W
- union pn48 dot11wtxpn; // PN48 used for Unicast mgmt xmit.
--#endif //CONFIG_IEEE80211W
- union pn48 dot11rxpn; // PN48 used for Unicast recv.
-
-
-@@ -159,8 +157,6 @@ struct sta_info {
- //AP_Mode:
- //curr_network(mlme_priv/security_priv/qos/ht) : AP CAP/INFO
- //sta_info: (AP & STA) CAP/INFO
--
--#ifdef CONFIG_AP_MODE
-
- _list asoc_list;
- _list auth_list;
-@@ -182,7 +178,6 @@ struct sta_info {
-
- u8 bpairwise_key_installed;
-
--#ifdef CONFIG_NATIVEAP_MLME
- u8 wpa_ie[32];
-
- u8 nonerp_set;
-@@ -191,7 +186,6 @@ struct sta_info {
- u8 no_ht_gf_set;
- u8 no_ht_set;
- u8 ht_20mhz_set;
--#endif // CONFIG_NATIVEAP_MLME
-
- unsigned int tx_ra_bitmap;
- u8 qos_info;
-@@ -205,10 +199,8 @@ struct sta_info {
- u8 has_legacy_ac;
- unsigned int sleepq_ac_len;
-
--#ifdef CONFIG_TX_MCAST2UNI
- u8 under_exist_checking;
--#endif // CONFIG_TX_MCAST2UNI
--
-+
- u8 keep_alive_trycnt;
-
- #ifdef CONFIG_AUTO_AP_MODE
-@@ -216,8 +208,6 @@ struct sta_info {
- u16 pid; // pairing id
- #endif
-
--#endif // CONFIG_AP_MODE
--
- u8 *passoc_req;
- u32 assoc_req_len;
-
-@@ -348,9 +338,7 @@ struct sta_priv {
- _queue wakeup_q;
-
- _adapter *padapter;
--
-
--#ifdef CONFIG_AP_MODE
- _list asoc_list;
- _list auth_list;
- _lock asoc_list_lock;
-@@ -374,7 +362,6 @@ struct sta_priv {
- u16 max_num_sta;
-
- struct wlan_acl_pool acl_list;
--#endif
- };
-
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/include/wifi.h linux/3rdparty/rtl8723bs/include/wifi.h
---- linux/3rdparty/rtl8723bs.old/include/wifi.h 2015-05-10 14:36:05.734668636 +0300
-+++ linux/3rdparty/rtl8723bs/include/wifi.h 2015-05-07 17:46:55.000000000 +0300
-@@ -541,9 +541,7 @@ __inline static int IsFrameTypeCtrl(unsi
- //#define EID_BSSCoexistence 72 // 20/40 BSS Coexistence
- //#define EID_BSSIntolerantChlReport 73
- #define _RIC_Descriptor_IE_ 75
--#ifdef CONFIG_IEEE80211W
- #define _MME_IE_ 76 //802.11w Management MIC element
--#endif //CONFIG_IEEE80211W
- #define _LINK_ID_IE_ 101
- #define _CH_SWITCH_TIMING_ 104
- #define _PTI_BUFFER_STATUS_ 106
-@@ -677,9 +675,7 @@ typedef enum _ELEMENT_ID{
- #define _WEP_WPA_MIXED_PRIVACY_ 6 // WEP + WPA
- */
-
--#ifdef CONFIG_IEEE80211W
- #define _MME_IE_LENGTH_ 18
--#endif //CONFIG_IEEE80211W
- /*-----------------------------------------------------------------------------
- Below is the definition for WMM
- ------------------------------------------------------------------------------*/
-@@ -1185,15 +1181,12 @@ enum P2P_PROTO_WK_ID
- #define WFD_DEVINFO_PC_TDLS 0x0080
- #define WFD_DEVINFO_HDCP_SUPPORT 0x0100
-
--#ifdef CONFIG_TX_MCAST2UNI
- #define IP_MCAST_MAC(mac) ((mac[0]==0x01)&&(mac[1]==0x00)&&(mac[2]==0x5e))
- #define ICMPV6_MCAST_MAC(mac) ((mac[0]==0x33)&&(mac[1]==0x33)&&(mac[2]!=0xff))
--#endif // CONFIG_TX_MCAST2UNI
-
- /* Regulatroy Domain */
- struct regd_pair_mapping {
- u16 reg_dmnenum;
-- u16 reg_5ghz_ctl;
- u16 reg_2ghz_ctl;
- };
-
-@@ -1208,20 +1201,5 @@ struct rtw_regulatory {
- struct regd_pair_mapping *regpair;
- };
-
--#ifdef CONFIG_WAPI_SUPPORT
--#ifndef IW_AUTH_WAPI_VERSION_1
--#define IW_AUTH_WAPI_VERSION_1 0x00000008
--#endif
--#ifndef IW_AUTH_KEY_MGMT_WAPI_PSK
--#define IW_AUTH_KEY_MGMT_WAPI_PSK 0x04
--#endif
--#ifndef IW_AUTH_WAPI_ENABLED
--#define IW_AUTH_WAPI_ENABLED 0x20
--#endif
--#ifndef IW_ENCODE_ALG_SM4
--#define IW_ENCODE_ALG_SM4 0x20
--#endif
--#endif
--
- #endif // _WIFI_H_
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/Makefile linux/3rdparty/rtl8723bs/Makefile
---- linux/3rdparty/rtl8723bs.old/Makefile 2015-05-10 14:36:05.745668758 +0300
-+++ linux/3rdparty/rtl8723bs/Makefile 2015-05-07 17:46:55.000000000 +0300
-@@ -8,11 +8,11 @@ EXTRA_CFLAGS += -O1
- #EXTRA_CFLAGS += -Wshadow -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
-
- EXTRA_CFLAGS += -Wno-unused-variable
--#EXTRA_CFLAGS += -Wno-unused-value
--#EXTRA_CFLAGS += -Wno-unused-label
--#EXTRA_CFLAGS += -Wno-unused-parameter
--#EXTRA_CFLAGS += -Wno-unused-function
--#EXTRA_CFLAGS += -Wno-unused
-+EXTRA_CFLAGS += -Wno-unused-value
-+EXTRA_CFLAGS += -Wno-unused-label
-+EXTRA_CFLAGS += -Wno-unused-parameter
-+EXTRA_CFLAGS += -Wno-unused-function
-+EXTRA_CFLAGS += -Wno-unused
-
- #EXTRA_CFLAGS += -Wno-uninitialized
-
-@@ -23,7 +23,6 @@ EXTRA_LDFLAGS += --strip-debug
- ########################## Features ###########################
- CONFIG_HW_PWRP_DETECTION = n
- CONFIG_INTEL_WIDI = n
--CONFIG_WAPI_SUPPORT = n
- CONFIG_EXT_CLK = n
- CONFIG_TRAFFIC_PROTECT = y
- CONFIG_LOAD_PHY_PARA_FROM_FILE = y
-@@ -43,8 +42,6 @@ CONFIG_RTW_SDIO_PM_KEEP_POWER = y
- CONFIG_PLATFORM_I386_PC = y
- ###############################################################
-
--CONFIG_DRVEXT_MODULE = n
--
- ########### COMMON #################################
-
- _OS_INTFS_FILES := os_dep/osdep_service.o \
-@@ -63,14 +60,10 @@ _OS_INTFS_FILES := os_dep/osdep_service.
- _HAL_INTFS_FILES := hal/hal_intf.o \
- hal/hal_com.o \
- hal/hal_com_phycfg.o \
-- hal/hal_phy.o \
- hal/hal_btcoex.o \
-- hal/hal_sdio.o \
-- hal/hal_sdio_led.o
-+ hal/hal_sdio.o
-
- _OUTSRC_FILES := hal/odm_debug.o \
-- hal/odm_AntDiv.o\
-- hal/odm_interface.o\
- hal/odm_HWConfig.o\
- hal/odm.o\
- hal/HalPhyRf.o\
-@@ -102,7 +95,6 @@ _HAL_INTFS_FILES += hal/rtl8723b_hal_ini
-
- _HAL_INTFS_FILES += \
- hal/sdio_halinit.o \
-- hal/rtl8723bs_led.o \
- hal/rtl8723bs_xmit.o \
- hal/rtl8723bs_recv.o
-
-@@ -127,11 +119,6 @@ ifeq ($(CONFIG_INTEL_WIDI), y)
- EXTRA_CFLAGS += -DCONFIG_INTEL_WIDI
- endif
-
--ifeq ($(CONFIG_WAPI_SUPPORT), y)
--EXTRA_CFLAGS += -DCONFIG_WAPI_SUPPORT
--endif
--
--
- ifeq ($(CONFIG_EXT_CLK), y)
- EXTRA_CFLAGS += -DCONFIG_EXT_CLK
- endif
-@@ -221,9 +208,6 @@ $(MODULE_NAME)-y += $(rtk_core)
-
- $(MODULE_NAME)-$(CONFIG_INTEL_WIDI) += core/rtw_intel_widi.o
-
--$(MODULE_NAME)-$(CONFIG_WAPI_SUPPORT) += core/rtw_wapi.o \
-- core/rtw_wapi_sms4.o
--
- $(MODULE_NAME)-y += $(_OS_INTFS_FILES)
- $(MODULE_NAME)-y += $(_HAL_INTFS_FILES)
- $(MODULE_NAME)-y += $(_OUTSRC_FILES)
-@@ -231,7 +215,7 @@ $(MODULE_NAME)-y += $(_PLATFORM_FILES)
-
- obj-$(CONFIG_RTL8723BS) := $(MODULE_NAME).o
-
--else
-+endif
-
- export CONFIG_RTL8723BS = m
-
-@@ -259,16 +243,9 @@ config_r:
- .PHONY: modules clean
-
- clean:
-- cd hal/ ; rm -fr */*.mod.c */*.mod */*.o */.*.cmd */*.ko
-- cd hal/ ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
-- cd hal ; rm -fr */*/*.mod.c */*/*.mod */*/*.o */*/.*.cmd */*/*.ko
-- cd hal ; rm -fr */*.mod.c */*.mod */*.o */.*.cmd */*.ko
-- cd hal ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
-- cd core ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
-- cd os_dep ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
-- cd platform ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
-- rm -fr Module.symvers ; rm -fr Module.markers ; rm -fr modules.order
-- rm -fr *.mod.c *.mod *.o .*.cmd *.ko *~
-- rm -fr .tmp_versions
--endif
--
-+ @rm -fr hal/*/*.mod.c hal/*/*.mod hal/*/*.o hal/*/.*.cmd hal/*/*.ko \
-+ hal/*.mod.c hal/*.mod hal/*.o hal/.*.cmd hal/*.ko \
-+ core/*.mod.c core/*.mod *.o core/.*.cmd core/*.ko \
-+ os_dep/*.mod.c os_dep/*.mod os_dep/*.o os_dep/.*.cmd *.ko \
-+ platform/*.mod.c platform/*.mod platform/*.o platform/.*.cmd platform/*.ko \
-+ Module.symvers Module.markers modules.order *.mod.c *.mod *.o .*.cmd *.ko *~ .tmp_versions
-diff -Nurp linux/3rdparty/rtl8723bs.old/os_dep/ioctl_cfg80211.c linux/3rdparty/rtl8723bs/os_dep/ioctl_cfg80211.c
---- linux/3rdparty/rtl8723bs.old/os_dep/ioctl_cfg80211.c 2015-05-10 14:36:05.737668669 +0300
-+++ linux/3rdparty/rtl8723bs/os_dep/ioctl_cfg80211.c 2015-05-07 17:46:55.000000000 +0300
-@@ -32,37 +32,12 @@
-
- #define RTW_CH_MAX_2G_CHANNEL 14 /* Max channel in 2G band */
-
--#ifdef CONFIG_WAPI_SUPPORT
--
--#ifndef WLAN_CIPHER_SUITE_SMS4
--#define WLAN_CIPHER_SUITE_SMS4 0x00147201
--#endif
--
--#ifndef WLAN_AKM_SUITE_WAPI_PSK
--#define WLAN_AKM_SUITE_WAPI_PSK 0x000FAC04
--#endif
--
--#ifndef WLAN_AKM_SUITE_WAPI_CERT
--#define WLAN_AKM_SUITE_WAPI_CERT 0x000FAC12
--#endif
--
--#ifndef NL80211_WAPI_VERSION_1
--#define NL80211_WAPI_VERSION_1 (1 << 2)
--#endif
--
--#endif
--
- static const u32 rtw_cipher_suites[] = {
- WLAN_CIPHER_SUITE_WEP40,
- WLAN_CIPHER_SUITE_WEP104,
- WLAN_CIPHER_SUITE_TKIP,
- WLAN_CIPHER_SUITE_CCMP,
--#ifdef CONFIG_WAPI_SUPPORT
-- WLAN_CIPHER_SUITE_SMS4,
--#endif // CONFIG_WAPI_SUPPORT
--#ifdef CONFIG_IEEE80211W
- WLAN_CIPHER_SUITE_AES_CMAC,
--#endif //CONFIG_IEEE80211W
- };
-
- #define RATETAB_ENT(_rate, _rateid, _flags) \
-@@ -81,15 +56,6 @@ static const u32 rtw_cipher_suites[] = {
- .max_power = 30, \
- }
-
--#define CHAN5G(_channel, _flags) { \
-- .band = IEEE80211_BAND_5GHZ, \
-- .center_freq = 5000 + (5 * (_channel)), \
-- .hw_value = (_channel), \
-- .flags = (_flags), \
-- .max_antenna_gain = 0, \
-- .max_power = 30, \
--}
--
- /* if wowlan is not supported, kernel generate a disconnect at each suspend
- * cf: /net/wireless/sysfs.c, so register a stub wowlan.
- * Moreover wowlan has to be enabled via a the nl80211_set_wowlan callback.
-@@ -143,29 +109,6 @@ static struct ieee80211_channel rtw_2ghz
- CHAN2G(14, 2484, 0),
- };
-
--static struct ieee80211_channel rtw_5ghz_a_channels[] = {
-- CHAN5G(34, 0), CHAN5G(36, 0),
-- CHAN5G(38, 0), CHAN5G(40, 0),
-- CHAN5G(42, 0), CHAN5G(44, 0),
-- CHAN5G(46, 0), CHAN5G(48, 0),
-- CHAN5G(52, 0), CHAN5G(56, 0),
-- CHAN5G(60, 0), CHAN5G(64, 0),
-- CHAN5G(100, 0), CHAN5G(104, 0),
-- CHAN5G(108, 0), CHAN5G(112, 0),
-- CHAN5G(116, 0), CHAN5G(120, 0),
-- CHAN5G(124, 0), CHAN5G(128, 0),
-- CHAN5G(132, 0), CHAN5G(136, 0),
-- CHAN5G(140, 0), CHAN5G(149, 0),
-- CHAN5G(153, 0), CHAN5G(157, 0),
-- CHAN5G(161, 0), CHAN5G(165, 0),
-- CHAN5G(184, 0), CHAN5G(188, 0),
-- CHAN5G(192, 0), CHAN5G(196, 0),
-- CHAN5G(200, 0), CHAN5G(204, 0),
-- CHAN5G(208, 0), CHAN5G(212, 0),
-- CHAN5G(216, 0),
--};
--
--
- static void rtw_2g_channels_init(struct ieee80211_channel *channels)
- {
- memcpy((void*)channels, (void*)rtw_2ghz_channels,
-@@ -173,13 +116,6 @@ static void rtw_2g_channels_init(struct
- );
- }
-
--static void rtw_5g_channels_init(struct ieee80211_channel *channels)
--{
-- memcpy((void*)channels, (void*)rtw_5ghz_a_channels,
-- sizeof(struct ieee80211_channel)*RTW_5G_CHANNELS_NUM
-- );
--}
--
- static void rtw_2g_rates_init(struct ieee80211_rate *rates)
- {
- memcpy(rates, rtw_g_rates,
-@@ -187,13 +123,6 @@ static void rtw_2g_rates_init(struct iee
- );
- }
-
--static void rtw_5g_rates_init(struct ieee80211_rate *rates)
--{
-- memcpy(rates, rtw_a_rates,
-- sizeof(struct ieee80211_rate)*RTW_A_RATES_NUM
-- );
--}
--
- static struct ieee80211_supported_band *rtw_spt_band_alloc(
- enum ieee80211_band band
- )
-@@ -206,11 +135,6 @@ static struct ieee80211_supported_band *
- n_channels = RTW_2G_CHANNELS_NUM;
- n_bitrates = RTW_G_RATES_NUM;
- }
-- else if(band == IEEE80211_BAND_5GHZ)
-- {
-- n_channels = RTW_5G_CHANNELS_NUM;
-- n_bitrates = RTW_A_RATES_NUM;
-- }
- else
- {
- goto exit;
-@@ -235,11 +159,6 @@ static struct ieee80211_supported_band *
- rtw_2g_channels_init(spt_band->channels);
- rtw_2g_rates_init(spt_band->bitrates);
- }
-- else if(band == IEEE80211_BAND_5GHZ)
-- {
-- rtw_5g_channels_init(spt_band->channels);
-- rtw_5g_rates_init(spt_band->bitrates);
-- }
-
- //spt_band.ht_cap
-
-@@ -261,17 +180,7 @@ static void rtw_spt_band_free(struct iee
- + sizeof(struct ieee80211_channel)*RTW_2G_CHANNELS_NUM
- + sizeof(struct ieee80211_rate)*RTW_G_RATES_NUM;
- }
-- else if(spt_band->band == IEEE80211_BAND_5GHZ)
-- {
-- size = sizeof(struct ieee80211_supported_band)
-- + sizeof(struct ieee80211_channel)*RTW_5G_CHANNELS_NUM
-- + sizeof(struct ieee80211_rate)*RTW_A_RATES_NUM;
-- }
-- else
-- {
--
-- }
-- rtw_mfree((u8*)spt_band, size);
-+ kfree((u8*)spt_band);
- }
-
- static const struct ieee80211_txrx_stypes
-@@ -327,20 +236,14 @@ static int rtw_ieee80211_channel_to_freq
- {
- /* see 802.11 17.3.8.3.2 and Annex J
- * there are overlapping channel numbers in 5GHz and 2GHz bands */
--
-- if (band == IEEE80211_BAND_5GHZ) {
-- if (chan >= 182 && chan <= 196)
-- return 4000 + chan * 5;
-- else
-- return 5000 + chan * 5;
-- } else { /* IEEE80211_BAND_2GHZ */
-+ if (band == IEEE80211_BAND_2GHZ) {
- if (chan == 14)
- return 2484;
- else if (chan < 14)
- return 2407 + chan * 5;
-- else
-- return 0; /* not supported */
- }
-+
-+ return 0; /* not supported */
- }
-
- static u64 rtw_get_systime_us(void)
-@@ -383,7 +286,6 @@ struct cfg80211_bss *rtw_cfg80211_inform
- goto exit;
- }
-
--#ifndef CONFIG_WAPI_SUPPORT
- {
- u16 wapi_len = 0;
-
-@@ -396,10 +298,9 @@ struct cfg80211_bss *rtw_cfg80211_inform
- }
- }
- }
--#endif //!CONFIG_WAPI_SUPPORT
-
- //To reduce PBC Overlap rate
-- //_enter_critical_bh(&pwdev_priv->scan_req_lock, &irqL);
-+ //spin_lock_bh(&pwdev_priv->scan_req_lock);
- if(adapter_wdev_data(padapter)->scan_request != NULL)
- {
- u8 *psr=NULL, sr = 0;
-@@ -435,15 +336,12 @@ struct cfg80211_bss *rtw_cfg80211_inform
- }
- }
- }
-- //_exit_critical_bh(&pwdev_priv->scan_req_lock, &irqL);
-+ //spin_unlock_bh(&pwdev_priv->scan_req_lock);
-
-
- channel = pnetwork->network.Configuration.DSConfig;
-- if (channel <= RTW_CH_MAX_2G_CHANNEL)
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_2GHZ);
-- else
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_5GHZ);
--
-+ freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_2GHZ);
-+
- notify_channel = ieee80211_get_channel(wiphy, freq);
-
- notify_timestamp = rtw_get_systime_us();
-@@ -499,23 +397,6 @@ struct cfg80211_bss *rtw_cfg80211_inform
- goto exit;
- }
-
--/*
-- {
-- if( bss->information_elements == bss->proberesp_ies)
-- {
-- if( bss->len_information_elements != bss->len_proberesp_ies)
-- {
-- DBG_8192C("error!, len_information_elements != bss->len_proberesp_ies\n");
-- }
--
-- }
-- else if(bss->len_information_elements < bss->len_beacon_ies)
-- {
-- bss->information_elements = bss->beacon_ies;
-- bss->len_information_elements = bss->len_beacon_ies;
-- }
-- }
--*/
- cfg80211_put_bss(wiphy, bss);
-
- exit:
-@@ -539,10 +420,7 @@ int rtw_cfg80211_check_bss(_adapter *pad
- if (!(pnetwork) || !(padapter->rtw_wdev))
- return false;
-
-- if (pnetwork->Configuration.DSConfig <= RTW_CH_MAX_2G_CHANNEL)
-- freq = rtw_ieee80211_channel_to_frequency(pnetwork->Configuration.DSConfig, IEEE80211_BAND_2GHZ);
-- else
-- freq = rtw_ieee80211_channel_to_frequency(pnetwork->Configuration.DSConfig, IEEE80211_BAND_5GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(pnetwork->Configuration.DSConfig, IEEE80211_BAND_2GHZ);
-
- notify_channel = ieee80211_get_channel(padapter->rtw_wdev->wiphy, freq);
- bss = cfg80211_get_bss(padapter->rtw_wdev->wiphy, notify_channel,
-@@ -579,18 +457,10 @@ void rtw_cfg80211_ibss_indicate_connect(
- {
-
- memcpy(&cur_network->network, pnetwork, sizeof(WLAN_BSSID_EX));
-- if(cur_network)
-- {
-- if (!rtw_cfg80211_inform_bss(padapter,cur_network))
-- DBG_871X(FUNC_ADPT_FMT" inform fail !!\n", FUNC_ADPT_ARG(padapter));
-- else
-- DBG_871X(FUNC_ADPT_FMT" inform success !!\n", FUNC_ADPT_ARG(padapter));
-- }
-+ if (!rtw_cfg80211_inform_bss(padapter,cur_network))
-+ DBG_871X(FUNC_ADPT_FMT" inform fail !!\n", FUNC_ADPT_ARG(padapter));
- else
-- {
-- DBG_871X("cur_network is not exist!!!\n");
-- return ;
-- }
-+ DBG_871X(FUNC_ADPT_FMT" inform success !!\n", FUNC_ADPT_ARG(padapter));
- }
- else
- {
-@@ -674,10 +544,7 @@ check_bss:
- u32 freq;
- u16 channel = cur_network->network.Configuration.DSConfig;
-
-- if (channel <= RTW_CH_MAX_2G_CHANNEL)
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_2GHZ);
-- else
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_5GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_2GHZ);
-
- notify_channel = ieee80211_get_channel(wiphy, freq);
-
-@@ -728,7 +595,6 @@ void rtw_cfg80211_indicate_disconnect(_a
- }
-
-
--#ifdef CONFIG_AP_MODE
- static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_param *param, u32 param_len)
- {
- int ret = 0;
-@@ -744,8 +610,6 @@ static int rtw_cfg80211_ap_set_encryptio
- param->u.crypt.err = 0;
- param->u.crypt.alg[IEEE_CRYPT_ALG_NAME_LEN - 1] = '\0';
-
-- //sizeof(struct ieee_param) = 64 bytes;
-- //if (param_len != (u32) ((u8 *) param->u.crypt.key - (u8 *) param) + param->u.crypt.key_len)
- if (param_len != sizeof(struct ieee_param) + param->u.crypt.key_len)
- {
- ret = -EINVAL;
-@@ -1017,7 +881,6 @@ exit:
- return ret;
-
- }
--#endif
-
- static int rtw_cfg80211_set_encryption(struct net_device *dev, struct ieee_param *param, u32 param_len)
- {
-@@ -1045,18 +908,13 @@ _func_enter_;
- param->sta_addr[4] == 0xff && param->sta_addr[5] == 0xff)
- {
- if (param->u.crypt.idx >= WEP_KEYS
--#ifdef CONFIG_IEEE80211W
- && param->u.crypt.idx > BIP_MAX_KEYID
--#endif //CONFIG_IEEE80211W
- )
- {
- ret = -EINVAL;
- goto exit;
- }
- } else {
--#ifdef CONFIG_WAPI_SUPPORT
-- if (strcmp(param->u.crypt.alg, "SMS4"))
--#endif
- {
- ret = -EINVAL;
- goto exit;
-@@ -1168,7 +1026,6 @@ _func_enter_;
- padapter->securitypriv.dot118021XGrpKeyid = param->u.crypt.idx;
- rtw_set_key(padapter,&padapter->securitypriv,param->u.crypt.idx, 1, true);
- }
--#ifdef CONFIG_IEEE80211W
- else if(strcmp(param->u.crypt.alg, "BIP") == 0)
- {
- int no;
-@@ -1183,7 +1040,6 @@ _func_enter_;
- padapter->securitypriv.binstallBIPkey = true;
- DBG_871X(" ~~~~set sta key:IGKT\n");
- }
--#endif //CONFIG_IEEE80211W
- }
- }
-
-@@ -1210,73 +1066,6 @@ _func_enter_;
- }
- }
-
--#ifdef CONFIG_WAPI_SUPPORT
-- if (strcmp(param->u.crypt.alg, "SMS4") == 0)
-- {
-- PRT_WAPI_T pWapiInfo = &padapter->wapiInfo;
-- PRT_WAPI_STA_INFO pWapiSta;
-- u8 WapiASUEPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
-- u8 WapiAEPNInitialValueSrc[16] = {0x37,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
-- u8 WapiAEMultiCastPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
--
-- if(param->u.crypt.set_tx == 1)
-- {
-- list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
-- if(!memcmp(pWapiSta->PeerMacAddr,param->sta_addr,6))
-- {
-- memcpy(pWapiSta->lastTxUnicastPN,WapiASUEPNInitialValueSrc,16);
--
-- pWapiSta->wapiUsk.bSet = true;
-- memcpy(pWapiSta->wapiUsk.dataKey,param->u.crypt.key,16);
-- memcpy(pWapiSta->wapiUsk.micKey,param->u.crypt.key+16,16);
-- pWapiSta->wapiUsk.keyId = param->u.crypt.idx ;
-- pWapiSta->wapiUsk.bTxEnable = true;
--
-- memcpy(pWapiSta->lastRxUnicastPNBEQueue,WapiAEPNInitialValueSrc,16);
-- memcpy(pWapiSta->lastRxUnicastPNBKQueue,WapiAEPNInitialValueSrc,16);
-- memcpy(pWapiSta->lastRxUnicastPNVIQueue,WapiAEPNInitialValueSrc,16);
-- memcpy(pWapiSta->lastRxUnicastPNVOQueue,WapiAEPNInitialValueSrc,16);
-- memcpy(pWapiSta->lastRxUnicastPN,WapiAEPNInitialValueSrc,16);
-- pWapiSta->wapiUskUpdate.bTxEnable = false;
-- pWapiSta->wapiUskUpdate.bSet = false;
--
-- if (psecuritypriv->sw_encrypt== false || psecuritypriv->sw_decrypt == false)
-- {
-- //set unicast key for ASUE
-- rtw_wapi_set_key(padapter, &pWapiSta->wapiUsk, pWapiSta, false, false);
-- }
-- }
-- }
-- }
-- else
-- {
-- list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
-- if(!memcmp(pWapiSta->PeerMacAddr,get_bssid(pmlmepriv),6))
-- {
-- pWapiSta->wapiMsk.bSet = true;
-- memcpy(pWapiSta->wapiMsk.dataKey,param->u.crypt.key,16);
-- memcpy(pWapiSta->wapiMsk.micKey,param->u.crypt.key+16,16);
-- pWapiSta->wapiMsk.keyId = param->u.crypt.idx ;
-- pWapiSta->wapiMsk.bTxEnable = false;
-- if(!pWapiSta->bSetkeyOk)
-- pWapiSta->bSetkeyOk = true;
-- pWapiSta->bAuthenticateInProgress = false;
--
-- memcpy(pWapiSta->lastRxMulticastPN, WapiAEMultiCastPNInitialValueSrc, 16);
--
-- if (psecuritypriv->sw_decrypt == false)
-- {
-- //set rx broadcast key for ASUE
-- rtw_wapi_set_key(padapter, &pWapiSta->wapiMsk, pWapiSta, true, false);
-- }
-- }
--
-- }
-- }
-- }
--#endif
--
--
- exit:
-
- DBG_8192C("%s, ret=%d\n", __func__, ret);
-@@ -1331,28 +1120,10 @@ static int cfg80211_rtw_add_key(struct w
- case WLAN_CIPHER_SUITE_CCMP:
- alg_name = "CCMP";
- break;
--#ifdef CONFIG_IEEE80211W
- case WLAN_CIPHER_SUITE_AES_CMAC:
- alg_name = "BIP";
- break;
--#endif //CONFIG_IEEE80211W
--#ifdef CONFIG_WAPI_SUPPORT
-- case WLAN_CIPHER_SUITE_SMS4:
-- alg_name= "SMS4";
-- if(pairwise == NL80211_KEYTYPE_PAIRWISE) {
-- if (key_index != 0 && key_index != 1) {
-- ret = -ENOTSUPP;
-- goto addkey_end;
-- }
-- memcpy((void*)param->sta_addr, (void*)mac_addr, ETH_ALEN);
-- } else {
-- DBG_871X("mac_addr is null \n");
-- }
-- DBG_871X("rtw_wx_set_enc_ext: SMS4 case \n");
-- break;
--#endif
--
-- default:
-+ default:
- ret = -ENOTSUPP;
- goto addkey_end;
- }
-@@ -1366,11 +1137,9 @@ static int cfg80211_rtw_add_key(struct w
- } else {
- param->u.crypt.set_tx = 1; //for wpa/wpa2 pairwise key
- }
--
--
-- //param->u.crypt.idx = key_index - 1;
-+
- param->u.crypt.idx = key_index;
--
-+
- if (params->seq_len && params->seq)
- {
- memcpy(param->u.crypt.seq, (u8 *)params->seq, params->seq_len);
-@@ -1388,12 +1157,10 @@ static int cfg80211_rtw_add_key(struct w
- }
- else if(check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
- {
--#ifdef CONFIG_AP_MODE
- if(mac_addr)
- memcpy(param->sta_addr, (void*)mac_addr, ETH_ALEN);
--
-+
- ret = rtw_cfg80211_ap_set_encryption(ndev, param, param_len);
--#endif
- }
- else if(check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true
- || check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true)
-@@ -1410,7 +1177,7 @@ static int cfg80211_rtw_add_key(struct w
- addkey_end:
- if(param)
- {
-- rtw_mfree((u8*)param, param_len);
-+ kfree((u8*)param);
- }
-
- return ret;
-@@ -1522,16 +1289,16 @@ static int cfg80211_rtw_get_station(stru
- goto exit;
- }
-
-- sinfo->filled |= STATION_INFO_SIGNAL;
-+ sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL);
- sinfo->signal = translate_percentage_to_dbm(padapter->recvpriv.signal_strength);
-
-- sinfo->filled |= STATION_INFO_TX_BITRATE;
-+ sinfo->filled |= BIT(NL80211_STA_INFO_TX_BITRATE);
- sinfo->txrate.legacy = rtw_get_cur_max_rate(padapter);
-
-- sinfo->filled |= STATION_INFO_RX_PACKETS;
-+ sinfo->filled |= BIT(NL80211_STA_INFO_RX_PACKETS);
- sinfo->rx_packets = sta_rx_data_pkts(psta);
-
-- sinfo->filled |= STATION_INFO_TX_PACKETS;
-+ sinfo->filled |= BIT(NL80211_STA_INFO_TX_PACKETS);
- sinfo->tx_packets = psta->sta_stats.tx_pkts;
-
- }
-@@ -1552,23 +1319,6 @@ exit:
-
- extern int netdev_open(struct net_device *pnetdev);
-
--/*
--enum nl80211_iftype {
-- NL80211_IFTYPE_UNSPECIFIED,
-- NL80211_IFTYPE_ADHOC, //1
-- NL80211_IFTYPE_STATION, //2
-- NL80211_IFTYPE_AP, //3
-- NL80211_IFTYPE_AP_VLAN,
-- NL80211_IFTYPE_WDS,
-- NL80211_IFTYPE_MONITOR, //6
-- NL80211_IFTYPE_MESH_POINT,
-- NL80211_IFTYPE_P2P_CLIENT, //8
-- NL80211_IFTYPE_P2P_GO, //9
-- //keep last
-- NUM_NL80211_IFTYPES,
-- NL80211_IFTYPE_MAX = NUM_NL80211_IFTYPES - 1
--};
--*/
- static int cfg80211_rtw_change_iface(struct wiphy *wiphy,
- struct net_device *ndev,
- enum nl80211_iftype type, u32 *flags,
-@@ -1653,7 +1403,7 @@ void rtw_cfg80211_indicate_scan_done(_ad
- struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(adapter);
- _irqL irqL;
-
-- _enter_critical_bh(&pwdev_priv->scan_req_lock, &irqL);
-+ spin_lock_bh(&pwdev_priv->scan_req_lock);
- if (pwdev_priv->scan_request != NULL) {
- #ifdef CONFIG_DEBUG_CFG80211
- DBG_871X("%s with scan req\n", __FUNCTION__);
-@@ -1675,7 +1425,7 @@ void rtw_cfg80211_indicate_scan_done(_ad
- DBG_871X("%s without scan req\n", __FUNCTION__);
- #endif
- }
-- _exit_critical_bh(&pwdev_priv->scan_req_lock, &irqL);
-+ spin_unlock_bh(&pwdev_priv->scan_req_lock);
- }
-
- void rtw_cfg80211_unlink_bss(_adapter *padapter, struct wlan_network *pnetwork)
-@@ -1714,14 +1464,14 @@ void rtw_cfg80211_surveydone_event_callb
- DBG_8192C("%s\n", __func__);
- #endif
-
-- _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
-
- phead = get_list_head(queue);
- plist = get_next(phead);
-
- while(1)
- {
-- if (rtw_end_of_queue_search(phead,plist)== true)
-+ if (phead == plist)
- break;
-
- pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list);
-@@ -1740,7 +1490,7 @@ void rtw_cfg80211_surveydone_event_callb
-
- }
-
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
- }
-
- static int rtw_cfg80211_set_probe_req_wpsp2pie(_adapter *padapter, char *buf, int len)
-@@ -1770,7 +1520,7 @@ static int rtw_cfg80211_set_probe_req_wp
- {
- u32 free_len = pmlmepriv->wps_probe_req_ie_len;
- pmlmepriv->wps_probe_req_ie_len = 0;
-- rtw_mfree(pmlmepriv->wps_probe_req_ie, free_len);
-+ kfree(pmlmepriv->wps_probe_req_ie);
- pmlmepriv->wps_probe_req_ie = NULL;
- }
-
-@@ -1783,12 +1533,6 @@ static int rtw_cfg80211_set_probe_req_wp
- memcpy(pmlmepriv->wps_probe_req_ie, wps_ie, wps_ielen);
- pmlmepriv->wps_probe_req_ie_len = wps_ielen;
- }
--
-- //buf += wps_ielen;
-- //len -= wps_ielen;
--
-- //buf += p2p_ielen;
-- //len -= p2p_ielen;
- }
-
- return ret;
-@@ -1832,9 +1576,9 @@ static int cfg80211_rtw_scan(struct wiph
- DBG_871X(FUNC_ADPT_FMT"\n", FUNC_ADPT_ARG(padapter));
- //#endif
-
-- _enter_critical_bh(&pwdev_priv->scan_req_lock, &irqL);
-+ spin_lock_bh(&pwdev_priv->scan_req_lock);
- pwdev_priv->scan_request = request;
-- _exit_critical_bh(&pwdev_priv->scan_req_lock, &irqL);
-+ spin_unlock_bh(&pwdev_priv->scan_req_lock);
-
- if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
- {
-@@ -1918,7 +1662,7 @@ static int cfg80211_rtw_scan(struct wiph
- ch[i].flags = request->channels[i]->flags;
- }
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
- if (request->n_channels == 1) {
- for(i=1;ilock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
-
-
- if(_status == false)
-@@ -1978,20 +1722,6 @@ static int rtw_cfg80211_set_wpa_version(
- psecuritypriv->ndisauthtype = Ndis802_11AuthModeWPAPSK;
- }
-
--/*
-- if (wpa_version & NL80211_WPA_VERSION_2)
-- {
-- psecuritypriv->ndisauthtype = Ndis802_11AuthModeWPA2PSK;
-- }
--*/
--
-- #ifdef CONFIG_WAPI_SUPPORT
-- if (wpa_version & NL80211_WAPI_VERSION_1)
-- {
-- psecuritypriv->ndisauthtype = Ndis802_11AuthModeWAPI;
-- }
-- #endif
--
- return 0;
-
- }
-@@ -2014,11 +1744,6 @@ static int rtw_cfg80211_set_auth_type(st
-
- if(psecuritypriv->ndisauthtype>Ndis802_11AuthModeWPA)
- psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_8021X;
--
--#ifdef CONFIG_WAPI_SUPPORT
-- if(psecuritypriv->ndisauthtype == Ndis802_11AuthModeWAPI)
-- psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_WAPI;
--#endif
-
- break;
- case NL80211_AUTHTYPE_SHARED_KEY:
-@@ -2058,12 +1783,6 @@ static int rtw_cfg80211_set_cipher(struc
- case IW_AUTH_CIPHER_NONE:
- *profile_cipher = _NO_PRIVACY_;
- ndisencryptstatus = Ndis802_11EncryptionDisabled;
--#ifdef CONFIG_WAPI_SUPPORT
-- if(psecuritypriv->dot11PrivacyAlgrthm ==_SMS4_ )
-- {
-- *profile_cipher = _SMS4_;
-- }
--#endif
- break;
- case WLAN_CIPHER_SUITE_WEP40:
- *profile_cipher = _WEP40_;
-@@ -2081,12 +1800,6 @@ static int rtw_cfg80211_set_cipher(struc
- *profile_cipher = _AES_;
- ndisencryptstatus = Ndis802_11Encryption3Enabled;
- break;
--#ifdef CONFIG_WAPI_SUPPORT
-- case WLAN_CIPHER_SUITE_SMS4:
-- *profile_cipher = _SMS4_;
-- ndisencryptstatus = Ndis802_11_EncrypteionWAPI;
-- break;
--#endif
- default:
- DBG_8192C("Unsupported cipher: 0x%x\n", cipher);
- return -ENOTSUPP;
-@@ -2113,16 +1826,6 @@ static int rtw_cfg80211_set_key_mgt(stru
- else if (key_mgt == WLAN_AKM_SUITE_PSK) {
- psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_8021X;
- }
--#ifdef CONFIG_WAPI_SUPPORT
-- else if(key_mgt ==WLAN_AKM_SUITE_WAPI_PSK){
-- psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_WAPI;
-- }
-- else if(key_mgt ==WLAN_AKM_SUITE_WAPI_CERT){
-- psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_WAPI;
-- }
--#endif
--
--
- else {
- DBG_8192C("Invalid key mgt: 0x%x\n", key_mgt);
- //return -EINVAL;
-@@ -2288,7 +1991,7 @@ static int rtw_cfg80211_set_wpa_ie(_adap
-
- exit:
- if (buf)
-- rtw_mfree(buf, ielen);
-+ kfree(buf);
- if (ret)
- _clr_fwstate_(&padapter->mlmepriv, WIFI_UNDER_WPS);
- return ret;
-@@ -2398,8 +2101,6 @@ static int cfg80211_rtw_connect(struct w
- NDIS_802_11_SSID ndis_ssid;
- u8 *dst_ssid, *src_ssid;
- u8 *dst_bssid, *src_bssid;
-- //u8 matched_by_bssid=false;
-- //u8 matched_by_ssid=false;
- u8 matched=false;
- _adapter *padapter = (_adapter *)rtw_netdev_priv(ndev);
- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-@@ -2469,31 +2170,12 @@ static int cfg80211_rtw_connect(struct w
- psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_Open; //open system
- psecuritypriv->ndisauthtype = Ndis802_11AuthModeOpen;
-
--#ifdef CONFIG_WAPI_SUPPORT
-- padapter->wapiInfo.bWapiEnable = false;
--#endif
--
- ret = rtw_cfg80211_set_wpa_version(psecuritypriv, sme->crypto.wpa_versions);
- if (ret < 0)
- goto exit;
-
--#ifdef CONFIG_WAPI_SUPPORT
-- if(sme->crypto.wpa_versions & NL80211_WAPI_VERSION_1)
-- {
-- padapter->wapiInfo.bWapiEnable = true;
-- padapter->wapiInfo.extra_prefix_len = WAPI_EXT_LEN;
-- padapter->wapiInfo.extra_postfix_len = SMS4_MIC_LEN;
-- }
--#endif
--
- ret = rtw_cfg80211_set_auth_type(psecuritypriv, sme->auth_type);
-
--#ifdef CONFIG_WAPI_SUPPORT
-- if(psecuritypriv->dot11AuthAlgrthm == dot11AuthAlgrthm_WAPI)
-- padapter->mlmeextpriv.mlmext_info.auth_algo = psecuritypriv->dot11AuthAlgrthm;
--#endif
--
--
- if (ret < 0)
- goto exit;
-
-@@ -2563,9 +2245,7 @@ static int cfg80211_rtw_connect(struct w
- ret = -EOPNOTSUPP ;
- }
-
-- if (pwep) {
-- rtw_mfree((u8 *)pwep,wep_total_len);
-- }
-+ kfree((u8 *)pwep);
-
- if(ret < 0)
- goto exit;
-@@ -2581,15 +2261,6 @@ static int cfg80211_rtw_connect(struct w
- goto exit;
- }
-
--#ifdef CONFIG_WAPI_SUPPORT
-- if(sme->crypto.akm_suites[0] ==WLAN_AKM_SUITE_WAPI_PSK){
-- padapter->wapiInfo.bWapiPSK = true;
-- }
-- else if(sme->crypto.akm_suites[0] ==WLAN_AKM_SUITE_WAPI_CERT){
-- padapter->wapiInfo.bWapiPSK = false;
-- }
--#endif
--
- authmode = psecuritypriv->ndisauthtype;
- rtw_set_802_11_authentication_mode(padapter, authmode);
-
-@@ -2624,19 +2295,16 @@ static int cfg80211_rtw_disconnect(struc
-
- rtw_set_to_roam(padapter, 0);
-
-- //if(check_fwstate(&padapter->mlmepriv, _FW_LINKED))
-- {
-- rtw_scan_abort(padapter);
-- LeaveAllPowerSaveMode(padapter);
-- rtw_disassoc_cmd(padapter, 500, false);
--
-- DBG_871X("%s...call rtw_indicate_disconnect\n", __FUNCTION__);
--
-- rtw_indicate_disconnect(padapter);
--
-- rtw_free_assoc_resources(padapter, 1);
-- rtw_pwr_wakeup(padapter);
-- }
-+ rtw_scan_abort(padapter);
-+ LeaveAllPowerSaveMode(padapter);
-+ rtw_disassoc_cmd(padapter, 500, false);
-+
-+ DBG_871X("%s...call rtw_indicate_disconnect\n", __FUNCTION__);
-+
-+ rtw_indicate_disconnect(padapter);
-+
-+ rtw_free_assoc_resources(padapter, 1);
-+ rtw_pwr_wakeup(padapter);
-
- padapter->mlmepriv.not_indic_disco = false;
-
-@@ -2786,7 +2454,6 @@ static int cfg80211_rtw_flush_pmksa(stru
- return 0;
- }
-
--#ifdef CONFIG_AP_MODE
- void rtw_cfg80211_indicate_sta_assoc(_adapter *padapter, u8 *pmgmt_frame, uint frame_len)
- {
- s32 freq;
-@@ -2806,7 +2473,6 @@ void rtw_cfg80211_indicate_sta_assoc(_ad
- ie_offset = _REASOCREQ_IE_OFFSET_;
-
- sinfo.filled = 0;
-- sinfo.filled = STATION_INFO_ASSOC_REQ_IES;
- sinfo.assoc_req_ies = pmgmt_frame + WLAN_HDR_A3_LEN + ie_offset;
- sinfo.assoc_req_ies_len = frame_len - WLAN_HDR_A3_LEN - ie_offset;
- cfg80211_new_sta(ndev, GetAddr2Ptr(pmgmt_frame), &sinfo, GFP_ATOMIC);
-@@ -2989,7 +2655,7 @@ static int rtw_cfg80211_monitor_if_xmit_
-
- fail:
-
-- rtw_skb_free(skb);
-+ dev_kfree_skb_any(skb);
-
- return 0;
-
-@@ -3073,7 +2739,7 @@ static int rtw_cfg80211_add_monitor_if(_
-
- out:
- if (ret && mon_wdev) {
-- rtw_mfree((u8*)mon_wdev, sizeof(struct wireless_dev));
-+ kfree((u8*)mon_wdev);
- mon_wdev = NULL;
- }
-
-@@ -3167,30 +2833,19 @@ static int rtw_add_beacon(_adapter *adap
- u8 *p2p_ie;
- u8 got_p2p_ie = false;
- struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
-- //struct sta_priv *pstapriv = &padapter->stapriv;
--
-
- DBG_8192C("%s beacon_head_len=%zu, beacon_tail_len=%zu\n", __FUNCTION__, head_len, tail_len);
-
--
- if(check_fwstate(pmlmepriv, WIFI_AP_STATE) != true)
- return -EINVAL;
-
- if(head_len<24)
- return -EINVAL;
--
-
- pbuf = rtw_zmalloc(head_len+tail_len);
- if(!pbuf)
- return -ENOMEM;
--
-
-- //memcpy(&pstapriv->max_num_sta, param->u.bcn_ie.reserved, 2);
--
-- //if((pstapriv->max_num_sta>NUM_STA) || (pstapriv->max_num_sta<=0))
-- // pstapriv->max_num_sta = NUM_STA;
--
--
- memcpy(pbuf, (void *)head+24, head_len-24);// 24=beacon header len.
- memcpy(pbuf+head_len-24, (void *)tail, tail_len);
-
-@@ -3214,7 +2869,7 @@ static int rtw_add_beacon(_adapter *adap
- }
-
-
-- rtw_mfree(pbuf, head_len+tail_len);
-+ kfree(pbuf);
-
- return ret;
- }
-@@ -3284,16 +2939,8 @@ static int cfg80211_rtw_add_station(stru
- return 0;
- }
-
--#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0))
- static int cfg80211_rtw_del_station(struct wiphy *wiphy, struct net_device *ndev,
- struct station_del_parameters *params)
--#elif (LINUX_VERSION_CODE > KERNEL_VERSION(3, 14, 0))
--static int cfg80211_rtw_del_station(struct wiphy *wiphy, struct net_device *ndev,
-- const u8 *mac)
--#else
--static int cfg80211_rtw_del_station(struct wiphy *wiphy, struct net_device *ndev,
-- u8 *mac)
--#endif
- {
- int ret=0;
- _irqL irqL;
-@@ -3303,9 +2950,7 @@ static int cfg80211_rtw_del_station(stru
- _adapter *padapter = (_adapter *)rtw_netdev_priv(ndev);
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
- struct sta_priv *pstapriv = &padapter->stapriv;
--#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0))
- const u8 *mac = params->mac;
--#endif
-
- DBG_871X("+"FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev));
-
-@@ -3338,13 +2983,13 @@ static int cfg80211_rtw_del_station(stru
- }
-
-
-- _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_lock_bh(&pstapriv->asoc_list_lock);
-
- phead = &pstapriv->asoc_list;
- plist = get_next(phead);
-
- //check asoc_queue
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ while (phead != plist)
- {
- psta = LIST_CONTAINOR(plist, struct sta_info, asoc_list);
-
-@@ -3360,12 +3005,10 @@ static int cfg80211_rtw_del_station(stru
- {
- DBG_8192C("free psta=%p, aid=%d\n", psta, psta->aid);
-
-- rtw_list_delete(&psta->asoc_list);
-+ list_del_init(&psta->asoc_list);
- pstapriv->asoc_list_cnt--;
-
-- //_exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
- updated = ap_free_sta(padapter, psta, true, WLAN_REASON_DEAUTH_LEAVING);
-- //_enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-
- psta = NULL;
-
-@@ -3376,7 +3019,7 @@ static int cfg80211_rtw_del_station(stru
-
- }
-
-- _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->asoc_list_lock);
-
- associated_clients_update(padapter, updated);
-
-@@ -3386,13 +3029,8 @@ static int cfg80211_rtw_del_station(stru
-
- }
-
--#if (LINUX_VERSION_CODE > KERNEL_VERSION(3, 14, 0))
- static int cfg80211_rtw_change_station(struct wiphy *wiphy, struct net_device *ndev,
- const u8 *mac, struct station_parameters *params)
--#else
--static int cfg80211_rtw_change_station(struct wiphy *wiphy, struct net_device *ndev,
-- u8 *mac, struct station_parameters *params)
--#endif
- {
- DBG_871X(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev));
-
-@@ -3410,7 +3048,7 @@ static struct sta_info *rtw_sta_info_get
- plist = get_next(phead);
-
- //check asoc_queue
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ while (phead != plist)
- {
- if(idx == i) psta = LIST_CONTAINOR(plist, struct sta_info, asoc_list);
- plist = get_next(plist);
-@@ -3430,9 +3068,9 @@ static int cfg80211_rtw_dump_station(str
- struct sta_priv *pstapriv = &padapter->stapriv;
- DBG_871X(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev));
-
-- _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_lock_bh(&pstapriv->asoc_list_lock);
- psta = rtw_sta_info_get_by_idx(idx, pstapriv);
-- _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->asoc_list_lock);
- if(NULL == psta)
- {
- DBG_871X("Station is not found\n");
-@@ -3440,8 +3078,7 @@ static int cfg80211_rtw_dump_station(str
- goto exit;
- }
- memcpy(mac, psta->hwaddr, ETH_ALEN);
-- sinfo->filled = 0;
-- sinfo->filled |= STATION_INFO_SIGNAL;
-+ sinfo->filled = BIT(NL80211_STA_INFO_SIGNAL);
- sinfo->signal = psta->rssi;
-
- exit:
-@@ -3451,70 +3088,8 @@ exit:
- static int cfg80211_rtw_change_bss(struct wiphy *wiphy, struct net_device *ndev,
- struct bss_parameters *params)
- {
-- u8 i;
--
- DBG_871X(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev));
--/*
-- DBG_8192C("use_cts_prot=%d\n", params->use_cts_prot);
-- DBG_8192C("use_short_preamble=%d\n", params->use_short_preamble);
-- DBG_8192C("use_short_slot_time=%d\n", params->use_short_slot_time);
-- DBG_8192C("ap_isolate=%d\n", params->ap_isolate);
--
-- DBG_8192C("basic_rates_len=%d\n", params->basic_rates_len);
-- for(i=0; ibasic_rates_len; i++)
-- {
-- DBG_8192C("basic_rates=%d\n", params->basic_rates[i]);
--
-- }
--*/
- return 0;
--
--}
--
--#endif //CONFIG_AP_MODE
--
--void rtw_cfg80211_rx_action_p2p(_adapter *padapter, u8 *pmgmt_frame, uint frame_len)
--{
-- int type;
-- s32 freq;
-- int channel;
-- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-- u8 category, action;
--
-- channel = rtw_get_oper_ch(padapter);
--
-- DBG_8192C("RTW_Rx:cur_ch=%d\n", channel);
-- rtw_action_frame_parse(pmgmt_frame, frame_len, &category, &action);
-- DBG_871X("RTW_Rx:category(%u), action(%u)\n", category, action);
--
-- if (channel <= RTW_CH_MAX_2G_CHANNEL)
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_2GHZ);
-- else
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_5GHZ);
--
-- rtw_cfg80211_rx_mgmt(padapter, freq, 0, pmgmt_frame, frame_len, GFP_ATOMIC);
--}
--
--void rtw_cfg80211_rx_p2p_action_public(_adapter *padapter, u8 *pmgmt_frame, uint frame_len)
--{
-- int type;
-- s32 freq;
-- int channel;
-- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-- u8 category, action;
--
-- channel = rtw_get_oper_ch(padapter);
--
-- DBG_8192C("RTW_Rx:cur_ch=%d\n", channel);
-- rtw_action_frame_parse(pmgmt_frame, frame_len, &category, &action);
-- DBG_871X("RTW_Rx:category(%u), action(%u)\n", category, action);
--
-- if (channel <= RTW_CH_MAX_2G_CHANNEL)
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_2GHZ);
-- else
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_5GHZ);
--
-- rtw_cfg80211_rx_mgmt(padapter, freq, 0, pmgmt_frame, frame_len, GFP_ATOMIC);
- }
-
- void rtw_cfg80211_rx_action(_adapter *adapter, u8 *frame, uint frame_len, const char*msg)
-@@ -3535,10 +3110,7 @@ void rtw_cfg80211_rx_action(_adapter *ad
- else
- DBG_871X("RTW_Rx:category(%u), action(%u)\n", category, action);
-
-- if (channel <= RTW_CH_MAX_2G_CHANNEL)
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_2GHZ);
-- else
-- freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_5GHZ);
-+ freq = rtw_ieee80211_channel_to_frequency(channel, IEEE80211_BAND_2GHZ);
-
- rtw_cfg80211_rx_mgmt(adapter, freq, 0, frame, frame_len, GFP_ATOMIC);
- }
-@@ -3555,12 +3127,10 @@ static int _cfg80211_rtw_mgmt_tx(_adapte
- struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-- //struct cfg80211_wifidirect_info *pcfg80211_wdinfo = &padapter->cfg80211_wdinfo;
-
- rtw_set_scan_deny(padapter, 1000);
-
- rtw_scan_abort(padapter);
-- //if (tx_ch != pmlmeext->cur_channel) {
- if(tx_ch != rtw_get_oper_ch(padapter)) {
- if (!check_fwstate(&padapter->mlmepriv, _FW_LINKED ))
- pmlmeext->cur_channel = tx_ch;
-@@ -3794,226 +3364,6 @@ static int cfg80211_rtw_sched_scan_stop(
- }
- #endif /* CONFIG_PNO_SUPPORT */
-
--static int rtw_cfg80211_set_beacon_wpsp2pie(struct net_device *ndev, char *buf, int len)
--{
-- int ret = 0;
-- uint wps_ielen = 0;
-- u8 *wps_ie;
-- u32 p2p_ielen = 0;
-- u8 wps_oui[8]={0x0,0x50,0xf2,0x04};
-- u8 *p2p_ie;
-- u32 wfd_ielen = 0;
-- u8 *wfd_ie;
-- _adapter *padapter = (_adapter *)rtw_netdev_priv(ndev);
-- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
--
-- DBG_871X(FUNC_NDEV_FMT" ielen=%d\n", FUNC_NDEV_ARG(ndev), len);
--
-- if(len>0)
-- {
-- if((wps_ie = rtw_get_wps_ie(buf, len, NULL, &wps_ielen)))
-- {
-- #ifdef CONFIG_DEBUG_CFG80211
-- DBG_8192C("bcn_wps_ielen=%d\n", wps_ielen);
-- #endif
--
-- if(pmlmepriv->wps_beacon_ie)
-- {
-- u32 free_len = pmlmepriv->wps_beacon_ie_len;
-- pmlmepriv->wps_beacon_ie_len = 0;
-- rtw_mfree(pmlmepriv->wps_beacon_ie, free_len);
-- pmlmepriv->wps_beacon_ie = NULL;
-- }
--
-- pmlmepriv->wps_beacon_ie = rtw_malloc(wps_ielen);
-- if ( pmlmepriv->wps_beacon_ie == NULL) {
-- DBG_8192C("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__);
-- return -EINVAL;
--
-- }
--
-- memcpy(pmlmepriv->wps_beacon_ie, wps_ie, wps_ielen);
-- pmlmepriv->wps_beacon_ie_len = wps_ielen;
--
-- update_beacon(padapter, _VENDOR_SPECIFIC_IE_, wps_oui, true);
--
-- }
--
-- //buf += wps_ielen;
-- //len -= wps_ielen;
--
-- //buf += p2p_ielen;
-- //len -= p2p_ielen;
--
-- pmlmeext->bstart_bss = true;
-- }
--
-- return ret;
--
--}
--
--static int rtw_cfg80211_set_probe_resp_wpsp2pie(struct net_device *net, char *buf, int len)
--{
-- int ret = 0;
-- uint wps_ielen = 0;
-- u8 *wps_ie;
-- u32 p2p_ielen = 0;
-- u8 *p2p_ie;
-- u32 wfd_ielen = 0;
-- u8 *wfd_ie;
-- _adapter *padapter = (_adapter *)rtw_netdev_priv(net);
-- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
--
--#ifdef CONFIG_DEBUG_CFG80211
-- DBG_8192C("%s, ielen=%d\n", __func__, len);
--#endif
--
-- if(len>0)
-- {
-- if((wps_ie = rtw_get_wps_ie(buf, len, NULL, &wps_ielen)))
-- {
-- uint attr_contentlen = 0;
-- u16 uconfig_method, *puconfig_method = NULL;
--
-- #ifdef CONFIG_DEBUG_CFG80211
-- DBG_8192C("probe_resp_wps_ielen=%d\n", wps_ielen);
-- #endif
--
-- if(check_fwstate(pmlmepriv, WIFI_UNDER_WPS))
-- {
-- u8 sr = 0;
-- rtw_get_wps_attr_content(wps_ie, wps_ielen, WPS_ATTR_SELECTED_REGISTRAR, (u8*)(&sr), NULL);
--
-- if (sr != 0)
-- {
-- DBG_871X("%s, got sr\n", __func__);
-- }
-- else
-- {
-- DBG_8192C("GO mode process WPS under site-survey, sr no set\n");
-- return ret;
-- }
-- }
--
-- if(pmlmepriv->wps_probe_resp_ie)
-- {
-- u32 free_len = pmlmepriv->wps_probe_resp_ie_len;
-- pmlmepriv->wps_probe_resp_ie_len = 0;
-- rtw_mfree(pmlmepriv->wps_probe_resp_ie, free_len);
-- pmlmepriv->wps_probe_resp_ie = NULL;
-- }
--
-- pmlmepriv->wps_probe_resp_ie = rtw_malloc(wps_ielen);
-- if ( pmlmepriv->wps_probe_resp_ie == NULL) {
-- DBG_8192C("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__);
-- return -EINVAL;
--
-- }
--
-- //add PUSH_BUTTON config_method by driver self in wpsie of probe_resp at GO Mode
-- if ( (puconfig_method = (u16*)rtw_get_wps_attr_content( wps_ie, wps_ielen, WPS_ATTR_CONF_METHOD , NULL, &attr_contentlen)) != NULL )
-- {
-- //struct registry_priv *pregistrypriv = &padapter->registrypriv;
-- struct wireless_dev *wdev = padapter->rtw_wdev;
--
-- #ifdef CONFIG_DEBUG_CFG80211
-- //printk("config_method in wpsie of probe_resp = 0x%x\n", be16_to_cpu(*puconfig_method));
-- #endif
--
-- //if(check_fwstate(pmlmepriv, WIFI_AP_STATE) != true)
-- if(wdev->iftype != NL80211_IFTYPE_P2P_GO) //for WIFI-DIRECT LOGO 4.2.2, AUTO GO can't set PUSH_BUTTON flags
-- {
-- uconfig_method = WPS_CM_PUSH_BUTTON;
-- uconfig_method = cpu_to_be16( uconfig_method );
--
-- *puconfig_method |= uconfig_method;
-- }
-- }
--
-- memcpy(pmlmepriv->wps_probe_resp_ie, wps_ie, wps_ielen);
-- pmlmepriv->wps_probe_resp_ie_len = wps_ielen;
--
-- }
--
-- //buf += wps_ielen;
-- //len -= wps_ielen;
--
-- //buf += p2p_ielen;
-- //len -= p2p_ielen;
-- }
--
-- return ret;
--
--}
--
--static int rtw_cfg80211_set_assoc_resp_wpsp2pie(struct net_device *net, char *buf, int len)
--{
-- int ret = 0;
-- _adapter *padapter = (_adapter *)rtw_netdev_priv(net);
-- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
--
-- DBG_8192C("%s, ielen=%d\n", __func__, len);
--
-- if(len>0)
-- {
-- if(pmlmepriv->wps_assoc_resp_ie)
-- {
-- u32 free_len = pmlmepriv->wps_assoc_resp_ie_len;
-- pmlmepriv->wps_assoc_resp_ie_len = 0;
-- rtw_mfree(pmlmepriv->wps_assoc_resp_ie, free_len);
-- pmlmepriv->wps_assoc_resp_ie = NULL;
-- }
--
-- pmlmepriv->wps_assoc_resp_ie = rtw_malloc(len);
-- if ( pmlmepriv->wps_assoc_resp_ie == NULL) {
-- DBG_8192C("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__);
-- return -EINVAL;
--
-- }
-- memcpy(pmlmepriv->wps_assoc_resp_ie, buf, len);
-- pmlmepriv->wps_assoc_resp_ie_len = len;
-- }
--
-- return ret;
--
--}
--
--int rtw_cfg80211_set_mgnt_wpsp2pie(struct net_device *net, char *buf, int len,
-- int type)
--{
-- int ret = 0;
-- uint wps_ielen = 0;
-- u32 p2p_ielen = 0;
--
--#ifdef CONFIG_DEBUG_CFG80211
-- DBG_8192C("%s, ielen=%d\n", __func__, len);
--#endif
--
-- if( (rtw_get_wps_ie(buf, len, NULL, &wps_ielen) && (wps_ielen>0))
-- )
-- {
-- if (net != NULL)
-- {
-- switch (type)
-- {
-- case 0x1: //BEACON
-- ret = rtw_cfg80211_set_beacon_wpsp2pie(net, buf, len);
-- break;
-- case 0x2: //PROBE_RESP
-- ret = rtw_cfg80211_set_probe_resp_wpsp2pie(net, buf, len);
-- break;
-- case 0x4: //ASSOC_RESP
-- ret = rtw_cfg80211_set_assoc_resp_wpsp2pie(net, buf, len);
-- break;
-- }
-- }
-- }
--
-- return ret;
--
--}
--
- static void rtw_cfg80211_init_ht_capab(struct ieee80211_sta_ht_cap *ht_cap, enum ieee80211_band band, u8 rf_type)
- {
-
-@@ -4081,20 +3431,12 @@ void rtw_cfg80211_init_wiphy(_adapter *p
-
- DBG_8192C("%s:rf_type=%d\n", __func__, rf_type);
-
-- /* if (padapter->registrypriv.wireless_mode & WIRELESS_11G) */
- {
- bands = wiphy->bands[IEEE80211_BAND_2GHZ];
- if(bands)
- rtw_cfg80211_init_ht_capab(&bands->ht_cap, IEEE80211_BAND_2GHZ, rf_type);
- }
-
-- /* if (padapter->registrypriv.wireless_mode & WIRELESS_11A) */
-- {
-- bands = wiphy->bands[IEEE80211_BAND_5GHZ];
-- if(bands)
-- rtw_cfg80211_init_ht_capab(&bands->ht_cap, IEEE80211_BAND_5GHZ, rf_type);
-- }
--
- /* init regulary domain */
- rtw_regd_init(padapter, rtw_reg_notifier);
-
-@@ -4103,25 +3445,6 @@ void rtw_cfg80211_init_wiphy(_adapter *p
-
- }
-
--/*
--struct ieee80211_iface_limit rtw_limits[] = {
-- { .max = 1, .types = BIT(NL80211_IFTYPE_STATION)
-- | BIT(NL80211_IFTYPE_ADHOC)
--#ifdef CONFIG_AP_MODE
-- | BIT(NL80211_IFTYPE_AP)
--#endif
-- },
-- {.max = 1, .types = BIT(NL80211_IFTYPE_MONITOR)},
--};
--
--struct ieee80211_iface_combination rtw_combinations = {
-- .limits = rtw_limits,
-- .n_limits = ARRAY_SIZE(rtw_limits),
-- .max_interfaces = 2,
-- .num_different_channels = 1,
--};
--*/
--
- static void rtw_cfg80211_preinit_wiphy(_adapter *padapter, struct wiphy *wiphy)
- {
-
-@@ -4135,31 +3458,20 @@ static void rtw_cfg80211_preinit_wiphy(_
-
- wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION)
- | BIT(NL80211_IFTYPE_ADHOC)
--#ifdef CONFIG_AP_MODE
- | BIT(NL80211_IFTYPE_AP)
- | BIT(NL80211_IFTYPE_MONITOR)
--#endif
- ;
-
--#ifdef CONFIG_AP_MODE
- wiphy->mgmt_stypes = rtw_cfg80211_default_mgmt_stypes;
--#endif //CONFIG_AP_MODE
-
- wiphy->software_iftypes |= BIT(NL80211_IFTYPE_MONITOR);
-
-- /*
-- wiphy->iface_combinations = &rtw_combinations;
-- wiphy->n_iface_combinations = 1;
-- */
--
- wiphy->cipher_suites = rtw_cipher_suites;
- wiphy->n_cipher_suites = ARRAY_SIZE(rtw_cipher_suites);
-
- /* if (padapter->registrypriv.wireless_mode & WIRELESS_11G) */
- wiphy->bands[IEEE80211_BAND_2GHZ] = rtw_spt_band_alloc(IEEE80211_BAND_2GHZ);
-- /* if (padapter->registrypriv.wireless_mode & WIRELESS_11A) */
-- wiphy->bands[IEEE80211_BAND_5GHZ] = rtw_spt_band_alloc(IEEE80211_BAND_5GHZ);
--
-+
- wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL;
- wiphy->flags |= WIPHY_FLAG_OFFCHAN_TX | WIPHY_FLAG_HAVE_AP_SME;
-
-@@ -4178,8 +3490,6 @@ static void rtw_cfg80211_preinit_wiphy(_
- wiphy->flags |= WIPHY_FLAG_PS_ON_BY_DEFAULT;
- else
- wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT;
--
-- //wiphy->flags |= WIPHY_FLAG_SUPPORTS_FW_ROAM;
- }
-
- static struct cfg80211_ops rtw_cfg80211_ops = {
-@@ -4201,8 +3511,7 @@ static struct cfg80211_ops rtw_cfg80211_
- .set_pmksa = cfg80211_rtw_set_pmksa,
- .del_pmksa = cfg80211_rtw_del_pmksa,
- .flush_pmksa = cfg80211_rtw_flush_pmksa,
--
--#ifdef CONFIG_AP_MODE
-+
- .add_virtual_intf = cfg80211_rtw_add_virtual_intf,
- .del_virtual_intf = cfg80211_rtw_del_virtual_intf,
-
-@@ -4215,7 +3524,6 @@ static struct cfg80211_ops rtw_cfg80211_
- .change_station = cfg80211_rtw_change_station,
- .dump_station = cfg80211_rtw_dump_station,
- .change_bss = cfg80211_rtw_change_bss,
--#endif //CONFIG_AP_MODE
-
- .mgmt_tx = cfg80211_rtw_mgmt_tx,
- .mgmt_frame_register = cfg80211_rtw_mgmt_frame_register,
-@@ -4293,7 +3601,7 @@ int rtw_wdev_alloc(_adapter *padapter, s
-
- return ret;
-
-- rtw_mfree((u8*)wdev, sizeof(struct wireless_dev));
-+ kfree((u8*)wdev);
- unregister_wiphy:
- wiphy_unregister(wiphy);
- free_wiphy:
-@@ -4311,11 +3619,10 @@ void rtw_wdev_free(struct wireless_dev *
- return;
-
- rtw_spt_band_free(wdev->wiphy->bands[IEEE80211_BAND_2GHZ]);
-- rtw_spt_band_free(wdev->wiphy->bands[IEEE80211_BAND_5GHZ]);
--
-+
- wiphy_free(wdev->wiphy);
-
-- rtw_mfree((u8*)wdev, sizeof(struct wireless_dev));
-+ kfree((u8*)wdev);
- }
-
- void rtw_wdev_unregister(struct wireless_dev *wdev)
-diff -Nurp linux/3rdparty/rtl8723bs.old/os_dep/ioctl_linux.c linux/3rdparty/rtl8723bs/os_dep/ioctl_linux.c
---- linux/3rdparty/rtl8723bs.old/os_dep/ioctl_linux.c 2015-05-10 14:36:05.739668691 +0300
-+++ linux/3rdparty/rtl8723bs/os_dep/ioctl_linux.c 2015-05-07 17:46:55.000000000 +0300
-@@ -20,6 +20,7 @@
- #define _IOCTL_LINUX_C_
-
- #include
-+#include
- #include
-
- extern int rtw_ht_enable;
-@@ -45,9 +46,6 @@ extern int rtw_ht_enable;
-
-
- extern u8 key_2char2num(u8 hch, u8 lch);
--extern u8 str_2char2num(u8 hch, u8 lch);
--extern void macstr2num(u8 *dst, u8 *src);
--extern u8 convert_ip_addr(u8 hch, u8 mch, u8 lch);
-
- static u32 rtw_rates[] = {1000000,2000000,5500000,11000000,
- 6000000,9000000,12000000,18000000,24000000,36000000,48000000,54000000};
-@@ -95,20 +93,6 @@ static int hwaddr_aton_i(const char *txt
- return 0;
- }
-
--#ifdef CONFIG_SUPPORT_HW_WPS_PBC
--void rtw_request_wps_pbc_event(_adapter *padapter)
--{
-- if ( padapter->pid[0] == 0 )
-- { // 0 is the default value and it means the application monitors the HW PBC doesn't privde its pid to driver.
-- return;
-- }
--
-- rtw_signal_process(padapter->pid[0], SIGUSR1);
--
-- rtw_led_control(padapter, LED_CTL_START_WPS_BOTTON);
--}
--#endif//#ifdef CONFIG_SUPPORT_HW_WPS_PBC
--
- void indicate_wx_scan_complete_event(_adapter *padapter)
- {
- union iwreq_data wrqu;
-@@ -444,49 +428,6 @@ static char *translate_scan(_adapter *pa
- }
- }
-
--#ifdef CONFIG_WAPI_SUPPORT
-- if (pnetwork->network.Reserved[0] != 2) // Probe Request
-- {
-- sint out_len_wapi=0;
-- /* here use static for stack size */
-- static u8 buf_wapi[MAX_WAPI_IE_LEN*2];
-- static u8 wapi_ie[MAX_WAPI_IE_LEN];
-- u16 wapi_len=0;
-- u16 i;
--
-- memset(buf_wapi, 0, MAX_WAPI_IE_LEN);
-- memset(wapi_ie, 0, MAX_WAPI_IE_LEN);
--
-- out_len_wapi=rtw_get_wapi_ie(pnetwork->network.IEs ,pnetwork->network.IELength,wapi_ie,&wapi_len);
-- RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("rtw_wx_get_scan: ssid=%s\n",pnetwork->network.Ssid.Ssid));
-- RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("rtw_wx_get_scan: wapi_len=%d \n",wapi_len));
--
-- DBG_871X("rtw_wx_get_scan: %s ",pnetwork->network.Ssid.Ssid);
-- DBG_871X("rtw_wx_get_scan: ssid = %d ",wapi_len);
--
--
-- if (wapi_len > 0)
-- {
-- p=buf_wapi;
-- memset(buf_wapi, 0, MAX_WAPI_IE_LEN*2);
-- p += sprintf(p, "wapi_ie=");
-- for (i = 0; i < wapi_len; i++) {
-- p += sprintf(p, "%02x", wapi_ie[i]);
-- }
--
-- memset(&iwe, 0, sizeof(iwe));
-- iwe.cmd = IWEVCUSTOM;
-- iwe.u.data.length = strlen(buf_wapi);
-- start = iwe_stream_add_point(info, start, stop, &iwe,buf_wapi);
--
-- memset(&iwe, 0, sizeof(iwe));
-- iwe.cmd =IWEVGENIE;
-- iwe.u.data.length = wapi_len;
-- start = iwe_stream_add_point(info, start, stop, &iwe, wapi_ie);
-- }
-- }
--#endif
--
- {
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
- u8 ss, sq;
-@@ -635,9 +576,7 @@ _func_enter_;
- {
-
- if (param->u.crypt.idx >= WEP_KEYS
--#ifdef CONFIG_IEEE80211W
- && param->u.crypt.idx > BIP_MAX_KEYID
--#endif //CONFIG_IEEE80211W
- )
- {
- ret = -EINVAL;
-@@ -646,9 +585,6 @@ _func_enter_;
- }
- else
- {
--#ifdef CONFIG_WAPI_SUPPORT
-- if (strcmp(param->u.crypt.alg, "SMS4"))
--#endif
- {
- ret = -EINVAL;
- goto exit;
-@@ -796,7 +732,6 @@ _func_enter_;
-
- rtw_set_key(padapter,&padapter->securitypriv,param->u.crypt.idx, 1, true);
- }
--#ifdef CONFIG_IEEE80211W
- else if(strcmp(param->u.crypt.alg, "BIP") == 0)
- {
- int no;
-@@ -811,7 +746,6 @@ _func_enter_;
- padapter->securitypriv.binstallBIPkey = true;
- DBG_871X(" ~~~~set sta key:IGKT\n");
- }
--#endif //CONFIG_IEEE80211W
- }
- }
-
-@@ -838,76 +772,10 @@ _func_enter_;
- }
- }
-
--#ifdef CONFIG_WAPI_SUPPORT
-- if (strcmp(param->u.crypt.alg, "SMS4") == 0)
-- {
-- PRT_WAPI_T pWapiInfo = &padapter->wapiInfo;
-- PRT_WAPI_STA_INFO pWapiSta;
-- u8 WapiASUEPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
-- u8 WapiAEPNInitialValueSrc[16] = {0x37,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
-- u8 WapiAEMultiCastPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
--
-- if(param->u.crypt.set_tx == 1)
-- {
-- list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
-- if(!memcmp(pWapiSta->PeerMacAddr,param->sta_addr,6))
-- {
-- memcpy(pWapiSta->lastTxUnicastPN,WapiASUEPNInitialValueSrc,16);
--
-- pWapiSta->wapiUsk.bSet = true;
-- memcpy(pWapiSta->wapiUsk.dataKey,param->u.crypt.key,16);
-- memcpy(pWapiSta->wapiUsk.micKey,param->u.crypt.key+16,16);
-- pWapiSta->wapiUsk.keyId = param->u.crypt.idx ;
-- pWapiSta->wapiUsk.bTxEnable = true;
--
-- memcpy(pWapiSta->lastRxUnicastPNBEQueue,WapiAEPNInitialValueSrc,16);
-- memcpy(pWapiSta->lastRxUnicastPNBKQueue,WapiAEPNInitialValueSrc,16);
-- memcpy(pWapiSta->lastRxUnicastPNVIQueue,WapiAEPNInitialValueSrc,16);
-- memcpy(pWapiSta->lastRxUnicastPNVOQueue,WapiAEPNInitialValueSrc,16);
-- memcpy(pWapiSta->lastRxUnicastPN,WapiAEPNInitialValueSrc,16);
-- pWapiSta->wapiUskUpdate.bTxEnable = false;
-- pWapiSta->wapiUskUpdate.bSet = false;
--
-- if (psecuritypriv->sw_encrypt== false || psecuritypriv->sw_decrypt == false)
-- {
-- //set unicast key for ASUE
-- rtw_wapi_set_key(padapter, &pWapiSta->wapiUsk, pWapiSta, false, false);
-- }
-- }
-- }
-- }
-- else
-- {
-- list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
-- if(!memcmp(pWapiSta->PeerMacAddr,get_bssid(pmlmepriv),6))
-- {
-- pWapiSta->wapiMsk.bSet = true;
-- memcpy(pWapiSta->wapiMsk.dataKey,param->u.crypt.key,16);
-- memcpy(pWapiSta->wapiMsk.micKey,param->u.crypt.key+16,16);
-- pWapiSta->wapiMsk.keyId = param->u.crypt.idx ;
-- pWapiSta->wapiMsk.bTxEnable = false;
-- if(!pWapiSta->bSetkeyOk)
-- pWapiSta->bSetkeyOk = true;
-- pWapiSta->bAuthenticateInProgress = false;
--
-- memcpy(pWapiSta->lastRxMulticastPN, WapiAEMultiCastPNInitialValueSrc, 16);
--
-- if (psecuritypriv->sw_decrypt == false)
-- {
-- //set rx broadcast key for ASUE
-- rtw_wapi_set_key(padapter, &pWapiSta->wapiMsk, pWapiSta, true, false);
-- }
-- }
--
-- }
-- }
-- }
--#endif
--
- exit:
-
- if (pwep) {
-- rtw_mfree((u8 *)pwep, wep_total_len);
-+ kfree((u8 *)pwep);
- }
-
- _func_exit_;
-@@ -1070,7 +938,7 @@ static int rtw_set_wpa_ie(_adapter *pada
-
- exit:
-
-- if (buf) rtw_mfree(buf, ielen);
-+ if (buf) kfree(buf);
-
- return ret;
- }
-@@ -1569,17 +1437,14 @@ static int rtw_wx_set_wap(struct net_dev
- }
-
- authmode = padapter->securitypriv.ndisauthtype;
-- _enter_critical_bh(&queue->lock, &irqL);
-+ spin_lock_bh(&queue->lock);
- phead = get_list_head(queue);
- pmlmepriv->pscanned = get_next(phead);
-
- while (1)
- {
--
-- if ((rtw_end_of_queue_search(phead, pmlmepriv->pscanned)) == true)
-- {
-+ if (phead == pmlmepriv->pscanned)
- break;
-- }
-
- pnetwork = LIST_CONTAINOR(pmlmepriv->pscanned, struct wlan_network, list);
-
-@@ -1594,7 +1459,7 @@ static int rtw_wx_set_wap(struct net_dev
- if(!rtw_set_802_11_infrastructure_mode(padapter, pnetwork->network.InfrastructureMode))
- {
- ret = -1;
-- _exit_critical_bh(&queue->lock, &irqL);
-+ spin_unlock_bh(&queue->lock);
- goto exit;
- }
-
-@@ -1602,7 +1467,7 @@ static int rtw_wx_set_wap(struct net_dev
- }
-
- }
-- _exit_critical_bh(&queue->lock, &irqL);
-+ spin_unlock_bh(&queue->lock);
-
- rtw_set_802_11_authentication_mode(padapter, authmode);
- //set_802_11_encryption_mode(padapter, padapter->securitypriv.ndisencryptstatus);
-@@ -1766,11 +1631,11 @@ _func_enter_;
-
- DBG_871X("IW_SCAN_THIS_ESSID, ssid=%s, len=%d\n", req->essid, req->essid_len);
-
-- _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_lock_bh(&pmlmepriv->lock);
-
- _status = rtw_sitesurvey_cmd(padapter, ssid, 1, NULL, 0);
-
-- _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ spin_unlock_bh(&pmlmepriv->lock);
-
- }
- else if (req->scan_type == IW_SCAN_TYPE_PASSIVE)
-@@ -1908,14 +1773,14 @@ static int rtw_wx_get_scan(struct net_de
- {
- return -EAGAIN;
- }
-- _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
-
- phead = get_list_head(queue);
- plist = get_next(phead);
-
- while(1)
- {
-- if (rtw_end_of_queue_search(phead,plist)== true)
-+ if (phead == plist)
- break;
-
- if((stop - ev) < SCAN_ITEM_SIZE) {
-@@ -1938,7 +1803,7 @@ static int rtw_wx_get_scan(struct net_de
-
- }
-
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
-
- wrqu->data.length = ev-extra;
- wrqu->data.flags = 0;
-@@ -2023,13 +1888,13 @@ static int rtw_wx_set_essid(struct net_d
- src_ssid = ndis_ssid.Ssid;
-
- RT_TRACE(_module_rtl871x_ioctl_os_c, _drv_info_, ("rtw_wx_set_essid: ssid=[%s]\n", src_ssid));
-- _enter_critical_bh(&queue->lock, &irqL);
-+ spin_lock_bh(&queue->lock);
- phead = get_list_head(queue);
- pmlmepriv->pscanned = get_next(phead);
-
- while (1)
- {
-- if (rtw_end_of_queue_search(phead, pmlmepriv->pscanned) == true)
-+ if (phead == pmlmepriv->pscanned)
- {
- RT_TRACE(_module_rtl871x_ioctl_os_c, _drv_warning_,
- ("rtw_wx_set_essid: scan_q is empty, set ssid to check if scanning again!\n"));
-@@ -2062,14 +1927,14 @@ static int rtw_wx_set_essid(struct net_d
- if (rtw_set_802_11_infrastructure_mode(padapter, pnetwork->network.InfrastructureMode) == false)
- {
- ret = -1;
-- _exit_critical_bh(&queue->lock, &irqL);
-+ spin_unlock_bh(&queue->lock);
- goto exit;
- }
-
- break;
- }
- }
-- _exit_critical_bh(&queue->lock, &irqL);
-+ spin_unlock_bh(&queue->lock);
- RT_TRACE(_module_rtl871x_ioctl_os_c, _drv_info_,
- ("set ssid: set_802_11_auth. mode=%d\n", authmode));
- rtw_set_802_11_authentication_mode(padapter, authmode);
-@@ -2764,11 +2629,9 @@ static int rtw_wx_set_enc_ext(struct net
- case IW_ENCODE_ALG_CCMP:
- alg_name = "CCMP";
- break;
--#ifdef CONFIG_IEEE80211W
- case IW_ENCODE_ALG_AES_CMAC:
- alg_name = "BIP";
- break;
--#endif //CONFIG_IEEE80211W
- default:
- ret = -1;
- goto exit;
-@@ -2786,9 +2649,7 @@ static int rtw_wx_set_enc_ext(struct net
- */
- if ((pext->alg != IW_ENCODE_ALG_WEP) &&
- ((pext->ext_flags & IW_ENCODE_EXT_GROUP_KEY)
--#ifdef CONFIG_IEEE80211W
- || (pext->ext_flags & IW_ENCODE_ALG_AES_CMAC)
--#endif //CONFIG_IEEE80211W
- ))
- {
- param->u.crypt.set_tx = 0;
-@@ -2819,7 +2680,7 @@ static int rtw_wx_set_enc_ext(struct net
- exit:
- if(param)
- {
-- rtw_mfree((u8*)param, param_len);
-+ kfree((u8*)param);
- }
-
- return ret;
-@@ -2919,7 +2780,7 @@ static int rtw_wx_read32(struct net_devi
- DBG_871X(KERN_INFO "%s: addr=0x%08X data=%s\n", __func__, addr, extra);
-
- exit:
-- rtw_mfree(ptmp, len);
-+ kfree(ptmp);
-
- return 0;
- }
-@@ -3128,14 +2989,14 @@ static int rtw_get_ap_info(struct net_de
- goto exit;
- }
-
-- _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
-
- phead = get_list_head(queue);
- plist = get_next(phead);
-
- while(1)
- {
-- if (rtw_end_of_queue_search(phead,plist)== true)
-+ if (phead == plist)
- break;
-
-
-@@ -3145,7 +3006,7 @@ static int rtw_get_ap_info(struct net_de
- if(hwaddr_aton_i(data, bssid))
- {
- DBG_871X("Invalid BSSID '%s'.\n", (u8*)data);
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
- return -EINVAL;
- }
-
-@@ -3174,7 +3035,7 @@ static int rtw_get_ap_info(struct net_de
-
- }
-
-- _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
-
- if(pdata->length>=34)
- {
-@@ -3246,19 +3107,6 @@ static int rtw_wps_start(struct net_devi
-
- DBG_871X( "[%s] wps_start = %d\n", __FUNCTION__, u32wps_start );
-
-- if ( u32wps_start == 1 ) // WPS Start
-- {
-- rtw_led_control(padapter, LED_CTL_START_WPS);
-- }
-- else if ( u32wps_start == 2 ) // WPS Stop because of wps success
-- {
-- rtw_led_control(padapter, LED_CTL_STOP_WPS);
-- }
-- else if ( u32wps_start == 3 ) // WPS Stop because of wps fail
-- {
-- rtw_led_control(padapter, LED_CTL_STOP_WPS_FAIL);
-- }
--
- #ifdef CONFIG_INTEL_WIDI
- process_intel_widi_wps_status(padapter, u32wps_start);
- #endif //CONFIG_INTEL_WIDI
-@@ -3337,12 +3185,6 @@ static int rtw_rereg_nd_name(struct net_
- goto exit;
- }
-
-- if(!memcmp(rereg_priv->old_ifname, "disable%d", 9)) {
-- padapter->ledpriv.bRegUseLed= rereg_priv->old_bRegUseLed;
-- rtw_hal_sw_led_init(padapter);
-- //rtw_ips_mode_req(&padapter->pwrctrlpriv, rereg_priv->old_ips_mode);
-- }
--
- strncpy(rereg_priv->old_ifname, new_ifname, IFNAMSIZ);
- rereg_priv->old_ifname[IFNAMSIZ-1] = 0;
-
-@@ -3351,13 +3193,7 @@ static int rtw_rereg_nd_name(struct net_
- DBG_871X("%s disable\n", __FUNCTION__);
- // free network queue for Android's timming issue
- rtw_free_network_queue(padapter, true);
--
-- // close led
-- rtw_led_control(padapter, LED_CTL_POWER_OFF);
-- rereg_priv->old_bRegUseLed = padapter->ledpriv.bRegUseLed;
-- padapter->ledpriv.bRegUseLed= false;
-- rtw_hal_sw_led_deinit(padapter);
--
-+
- // the interface is being "disabled", we can do deeper IPS
- //rereg_priv->old_ips_mode = rtw_get_ips_mode_req(&padapter->pwrctrlpriv);
- //rtw_ips_mode_req(&padapter->pwrctrlpriv, IPS_NORMAL);
-@@ -3576,18 +3412,17 @@ static int rtw_dbg_port(struct net_devic
- int i, j;
- _list *plist, *phead;
- struct recv_reorder_ctrl *preorder_ctrl;
--
--#ifdef CONFIG_AP_MODE
-+
- DBG_871X("sta_dz_bitmap=0x%x, tim_bitmap=0x%x\n", pstapriv->sta_dz_bitmap, pstapriv->tim_bitmap);
--#endif
-- _enter_critical_bh(&pstapriv->sta_hash_lock, &irqL);
-+
-+ spin_lock_bh(&pstapriv->sta_hash_lock);
-
- for(i=0; i< NUM_STA; i++)
- {
- phead = &(pstapriv->sta_hash[i]);
- plist = get_next(phead);
-
-- while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ while (phead != plist)
- {
- psta = LIST_CONTAINOR(plist, struct sta_info, hash_list);
-
-@@ -3602,15 +3437,12 @@ static int rtw_dbg_port(struct net_devic
- DBG_871X("bwmode=%d, ch_offset=%d, sgi_20m=%d,sgi_40m=%d\n", psta->bw_mode, psta->htpriv.ch_offset, psta->htpriv.sgi_20m, psta->htpriv.sgi_40m);
- DBG_871X("ampdu_enable = %d\n", psta->htpriv.ampdu_enable);
- DBG_871X("agg_enable_bitmap=%x, candidate_tid_bitmap=%x\n", psta->htpriv.agg_enable_bitmap, psta->htpriv.candidate_tid_bitmap);
--
--#ifdef CONFIG_AP_MODE
- DBG_871X("capability=0x%x\n", psta->capability);
- DBG_871X("flags=0x%x\n", psta->flags);
- DBG_871X("wpa_psk=0x%x\n", psta->wpa_psk);
- DBG_871X("wpa2_group_cipher=0x%x\n", psta->wpa2_group_cipher);
- DBG_871X("wpa2_pairwise_cipher=0x%x\n", psta->wpa2_pairwise_cipher);
- DBG_871X("qos_info=0x%x\n", psta->qos_info);
--#endif
- DBG_871X("dot118021XPrivacy=0x%x\n", psta->dot118021XPrivacy);
-
-
-@@ -3629,7 +3461,7 @@ static int rtw_dbg_port(struct net_devic
- }
- }
-
-- _exit_critical_bh(&pstapriv->sta_hash_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->sta_hash_lock);
-
- }
- break;
-@@ -4164,7 +3996,7 @@ static int wpa_supplicant_ioctl(struct n
-
- if (copy_from_user(param, p->pointer, p->length))
- {
-- rtw_mfree((u8*)param, p->length);
-+ kfree((u8*)param);
- ret = -EFAULT;
- goto out;
- }
-@@ -4198,7 +4030,7 @@ static int wpa_supplicant_ioctl(struct n
- if (ret == 0 && copy_to_user(p->pointer, param, p->length))
- ret = -EFAULT;
-
-- rtw_mfree((u8 *)param, p->length);
-+ kfree((u8 *)param);
-
- out:
-
-@@ -4208,7 +4040,6 @@ out:
-
- }
-
--#ifdef CONFIG_AP_MODE
- static int rtw_set_encryption(struct net_device *dev, struct ieee_param *param, u32 param_len)
- {
- int ret = 0;
-@@ -4531,7 +4362,7 @@ exit:
-
- if(pwep)
- {
-- rtw_mfree((u8 *)pwep, wep_total_len);
-+ kfree((u8 *)pwep);
- }
-
- return ret;
-@@ -4615,9 +4446,9 @@ static int rtw_add_sta(struct net_device
- if(psta)
- {
- DBG_871X("rtw_add_sta(), free has been added psta=%p\n", psta);
-- _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ spin_lock_bh(&(pstapriv->sta_hash_lock));
- rtw_free_stainfo(padapter, psta);
-- _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ spin_unlock_bh(&(pstapriv->sta_hash_lock));
-
- psta = NULL;
- }
-@@ -4702,15 +4533,15 @@ static int rtw_del_sta(struct net_device
-
- //DBG_871X("free psta=%p, aid=%d\n", psta, psta->aid);
-
-- _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-- if(rtw_is_list_empty(&psta->asoc_list)==false)
-+ spin_lock_bh(&pstapriv->asoc_list_lock);
-+ if(list_empty(&psta->asoc_list)==false)
- {
-- rtw_list_delete(&psta->asoc_list);
-+ list_del_init(&psta->asoc_list);
- pstapriv->asoc_list_cnt--;
- updated = ap_free_sta(padapter, psta, true, WLAN_REASON_DEAUTH_LEAVING);
-
- }
-- _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->asoc_list_lock);
-
- associated_clients_update(padapter, updated);
-
-@@ -4871,7 +4702,7 @@ static int rtw_set_wps_beacon(struct net
-
- if(pmlmepriv->wps_beacon_ie)
- {
-- rtw_mfree(pmlmepriv->wps_beacon_ie, pmlmepriv->wps_beacon_ie_len);
-+ kfree(pmlmepriv->wps_beacon_ie);
- pmlmepriv->wps_beacon_ie = NULL;
- }
-
-@@ -4914,7 +4745,7 @@ static int rtw_set_wps_probe_resp(struct
-
- if(pmlmepriv->wps_probe_resp_ie)
- {
-- rtw_mfree(pmlmepriv->wps_probe_resp_ie, pmlmepriv->wps_probe_resp_ie_len);
-+ kfree(pmlmepriv->wps_probe_resp_ie);
- pmlmepriv->wps_probe_resp_ie = NULL;
- }
-
-@@ -4951,7 +4782,7 @@ static int rtw_set_wps_assoc_resp(struct
-
- if(pmlmepriv->wps_assoc_resp_ie)
- {
-- rtw_mfree(pmlmepriv->wps_assoc_resp_ie, pmlmepriv->wps_assoc_resp_ie_len);
-+ kfree(pmlmepriv->wps_assoc_resp_ie);
- pmlmepriv->wps_assoc_resp_ie = NULL;
- }
-
-@@ -5118,7 +4949,7 @@ static int rtw_hostapd_ioctl(struct net_
-
- if (copy_from_user(param, p->pointer, p->length))
- {
-- rtw_mfree((u8*)param, p->length);
-+ kfree((u8*)param);
- ret = -EFAULT;
- goto out;
- }
-@@ -5222,14 +5053,13 @@ static int rtw_hostapd_ioctl(struct net_
- ret = -EFAULT;
-
-
-- rtw_mfree((u8 *)param, p->length);
-+ kfree((u8 *)param);
-
- out:
-
- return ret;
-
- }
--#endif
-
- static int rtw_wx_set_priv(struct net_device *dev,
- struct iw_request_info *info,
-@@ -5258,7 +5088,7 @@ static int rtw_wx_set_priv(struct net_de
- return -ENOMEM;
-
- if (copy_from_user(ext, dwrq->pointer, len)) {
-- rtw_vmfree(ext, len);
-+ vfree(ext);
- return -EFAULT;
- }
-
-@@ -5270,7 +5100,7 @@ static int rtw_wx_set_priv(struct net_de
- #ifdef CONFIG_DEBUG_RTW_WX_SET_PRIV
- if (!(ext_dbg = vmalloc(len)))
- {
-- rtw_vmfree(ext, len);
-+ vfree(ext, len);
- return -ENOMEM;
- }
-
-@@ -5295,7 +5125,7 @@ static int rtw_wx_set_priv(struct net_de
- {
- u32 free_len = pmlmepriv->wps_probe_req_ie_len;
- pmlmepriv->wps_probe_req_ie_len = 0;
-- rtw_mfree(pmlmepriv->wps_probe_req_ie, free_len);
-+ kfree(pmlmepriv->wps_probe_req_ie);
- pmlmepriv->wps_probe_req_ie = NULL;
- }
-
-@@ -5325,9 +5155,9 @@ static int rtw_wx_set_priv(struct net_de
-
- FREE_EXT:
-
-- rtw_vmfree(ext, len);
-+ vfree(ext);
- #ifdef CONFIG_DEBUG_RTW_WX_SET_PRIV
-- rtw_vmfree(ext_dbg, len);
-+ vfree(ext_dbg);
- #endif
-
- //DBG_871X("rtw_wx_set_priv: (SIOCSIWPRIV) %s ret=%d\n",
-@@ -5336,162 +5166,6 @@ FREE_EXT:
- return ret;
-
- }
--#ifdef CONFIG_WOWLAN
--static int rtw_wowlan_ctrl(struct net_device *dev,
-- struct iw_request_info *info,
-- union iwreq_data *wrqu, char *extra)
--{
-- _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-- struct wowlan_ioctl_param poidparam;
-- struct pwrctrl_priv *pwrctrlpriv = adapter_to_pwrctl(padapter);
-- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-- struct net_device *pnetdev = padapter->pnetdev;
-- struct sta_info *psta = NULL;
-- int ret = 0;
-- unsigned long start_time = jiffies;
-- poidparam.subcode = 0;
--
-- DBG_871X("+rtw_wowlan_ctrl: %s\n", extra);
--
-- if(pwrctrlpriv->bSupportRemoteWakeup==false){
-- ret = -EPERM;
-- DBG_871X("+rtw_wowlan_ctrl: Device didn't support the remote wakeup!!\n");
-- goto _rtw_wowlan_ctrl_exit_free;
-- }
--
-- if (!check_fwstate(pmlmepriv, _FW_LINKED) &&
-- check_fwstate(pmlmepriv, WIFI_STATION_STATE)) {
-- DBG_871X("[%s] WARNING: Please Connect With AP First!!\n", __func__);
-- goto _rtw_wowlan_ctrl_exit_free;
-- }
--
-- if (!memcmp( extra, "enable", 6 )) {
--
-- padapter->registrypriv.mp_mode = 1;
--
-- while (pwrctrlpriv->bips_processing == true)
-- msleep(1);
--
-- rtw_ps_deny(padapter, PS_DENY_SUSPEND);
--
-- rtw_cancel_all_timer(padapter);
--
-- LeaveAllPowerSaveModeDirect(padapter);
--
-- rtw_stop_cmd_thread(padapter);
--
-- rtw_ps_deny_cancel(padapter, PS_DENY_SUSPEND);
--
-- rtw_suspend_wow(padapter);
--
-- } else if (!memcmp( extra, "disable", 6 )) {
-- rtw_resume_process_wow(padapter);
-- padapter->registrypriv.mp_mode = 0;
-- } else {
-- DBG_871X("[%s] Invalid Parameter.\n", __func__);
-- goto _rtw_wowlan_ctrl_exit_free;
-- }
-- //mutex_lock(&ioctl_mutex);
--_rtw_wowlan_ctrl_exit_free:
-- DBG_871X("-rtw_wowlan_ctrl( subcode = %d)\n", poidparam.subcode);
-- DBG_871X_LEVEL(_drv_always_, "%s in %d ms\n", __func__,
-- jiffies_to_msecs(jiffies - start_time));
--_rtw_wowlan_ctrl_exit:
-- return ret;
--}
--#endif //CONFIG_WOWLAN
--
--#ifdef CONFIG_AP_WOWLAN
--static int rtw_ap_wowlan_ctrl(struct net_device *dev,
-- struct iw_request_info *info,
-- union iwreq_data *wrqu, char *extra)
--{
-- _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-- struct wowlan_ioctl_param poidparam;
-- struct pwrctrl_priv *pwrctrlpriv = adapter_to_pwrctl(padapter);
-- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-- struct sta_info *psta = NULL;
-- int ret = 0;
-- unsigned long start_time = jiffies;
-- poidparam.subcode = 0;
--
-- DBG_871X("+rtw_ap_wowlan_ctrl: %s\n", extra);
--
-- if(pwrctrlpriv->bSupportRemoteWakeup==false){
-- ret = -EPERM;
-- DBG_871X("+rtw_wowlan_ctrl: Device didn't support the remote wakeup!!\n");
-- goto _rtw_ap_wowlan_ctrl_exit_free;
-- }
--
-- if (!check_fwstate(pmlmepriv, WIFI_AP_STATE)) {
-- DBG_871X("[%s] It is not AP mode!!\n", __func__);
-- goto _rtw_ap_wowlan_ctrl_exit_free;
-- }
--
-- if (!memcmp( extra, "enable", 6 )) {
-- pwrctrlpriv->wowlan_ap_mode = true;
-- while (pwrctrlpriv->bips_processing == true)
-- msleep(1);
--
-- rtw_cancel_all_timer(padapter);
--
-- padapter->bDriverStopped = true; //for stop thread
-- rtw_stop_drv_threads(padapter);
-- padapter->bDriverStopped = false; //for 32k command
--
-- LeaveAllPowerSaveModeDirect(padapter);
-- rtw_hal_disable_interrupt(padapter); // It need wait for leaving 32K.
--
-- // 2.1 clean interupt
-- if (padapter->HalFunc.clear_interrupt)
-- padapter->HalFunc.clear_interrupt(padapter);
--
-- poidparam.subcode = WOWLAN_AP_ENABLE;
--
-- rtw_hal_set_hwreg(padapter, HW_VAR_AP_WOWLAN,(u8 *)&poidparam);
-- } else if (!memcmp( extra, "disable", 6 )) {
-- LeaveAllPowerSaveModeDirect(padapter);
-- pwrctrlpriv->bFwCurrentInPSMode = false;
--
-- rtw_hal_disable_interrupt(padapter);
--
-- if (padapter->HalFunc.clear_interrupt)
-- padapter->HalFunc.clear_interrupt(padapter);
--
-- poidparam.subcode = WOWLAN_AP_ENABLE;
--
-- rtw_hal_set_hwreg(padapter, HW_VAR_AP_WOWLAN,(u8 *)&poidparam);
--
-- pwrctrlpriv->wowlan_ap_mode = false;
--
-- psta = rtw_get_stainfo(&padapter->stapriv, get_bssid(&padapter->mlmepriv));
-- if (psta) {
-- set_sta_rate(padapter, psta);
-- }
--
-- padapter->bDriverStopped = false;
-- DBG_871X("%s: wowmode resuming, DriverStopped:%d\n", __func__, padapter->bDriverStopped);
-- rtw_start_drv_threads(padapter);
--
-- rtw_hal_enable_interrupt(padapter);
--
-- _set_timer(&padapter->mlmepriv.dynamic_chk_timer, 2000);
-- pwrctrlpriv->bips_processing = false;
-- rtw_set_pwr_state_check_timer(pwrctrlpriv);
--
-- } else {
-- DBG_871X("[%s] Invalid Parameter.\n", __func__);
-- goto _rtw_ap_wowlan_ctrl_exit_free;
-- }
-- //mutex_lock(&ioctl_mutex);
--_rtw_ap_wowlan_ctrl_exit_free:
-- DBG_871X("-rtw_ap_wowlan_ctrl( subcode = %d)\n", poidparam.subcode);
-- DBG_871X_LEVEL(_drv_always_, "%s in %d ms\n", __func__,
-- jiffies_to_msecs(jiffies - start_time));
--_rtw_ap_wowlan_ctrl_exit:
-- return ret;
--}
--#endif //CONFIG_AP_WOWLAN
-
- static int rtw_pm_set(struct net_device *dev,
- struct iw_request_info *info,
-@@ -5616,7 +5290,7 @@ static int rtw_test(
- }
-
- if (copy_from_user(pbuf, wrqu->data.pointer, len)) {
-- rtw_mfree(pbuf, len);
-+ kfree(pbuf);
- DBG_871X("%s: copy from user fail!\n", __func__);
- return -EFAULT;
- }
-@@ -5625,7 +5299,7 @@ static int rtw_test(
- ptmp = (char*)pbuf;
- pch = strsep(&ptmp, delim);
- if ((pch == NULL) || (strlen(pch) == 0)) {
-- rtw_mfree(pbuf, len);
-+ kfree(pbuf);
- DBG_871X("%s: parameter error(level 1)!\n", __func__);
- return -EFAULT;
- }
-@@ -5660,7 +5334,7 @@ static int rtw_test(
- } while (count < 8);
-
- if (count == 0) {
-- rtw_mfree(pbuf, len);
-+ kfree(pbuf);
- DBG_871X("%s: parameter error(level 2)!\n", __func__);
- return -EFAULT;
- }
-@@ -5678,7 +5352,7 @@ static int rtw_test(
- wrqu->data.length = strlen(extra) + 1;
- }
-
-- rtw_mfree(pbuf, len);
-+ kfree(pbuf);
- return 0;
- }
-
-@@ -6230,7 +5904,7 @@ static int rtw_ioctl_wext_private(struct
- }
- }
-
-- rtw_mfree(input, input_len);
-+ kfree(input);
- input = NULL;
-
- extra_size = 0;
-@@ -6255,7 +5929,7 @@ static int rtw_ioctl_wext_private(struct
-
- if (extra_size == 0) {
- extra = (u8*)&wdata;
-- rtw_mfree(buffer, 4096);
-+ kfree(buffer);
- buffer = NULL;
- } else
- extra = buffer;
-@@ -6341,11 +6015,11 @@ static int rtw_ioctl_wext_private(struct
-
- exit:
- if (input)
-- rtw_mfree(input, input_len);
-+ kfree(input);
- if (buffer)
-- rtw_mfree(buffer, 4096);
-+ kfree(buffer);
- if (output)
-- rtw_mfree(output, 4096);
-+ kfree(output);
-
- return err;
- }
-@@ -6360,11 +6034,9 @@ int rtw_ioctl(struct net_device *dev, st
- case RTL_IOCTL_WPA_SUPPLICANT:
- ret = wpa_supplicant_ioctl(dev, &wrq->u.data);
- break;
--#ifdef CONFIG_AP_MODE
- case RTL_IOCTL_HOSTAPD:
- ret = rtw_hostapd_ioctl(dev, &wrq->u.data);
- break;
--#endif // CONFIG_AP_MODE
- case SIOCDEVPRIVATE:
- ret = rtw_ioctl_wext_private(dev, &wrq->u);
- break;
-diff -Nurp linux/3rdparty/rtl8723bs.old/os_dep/mlme_linux.c linux/3rdparty/rtl8723bs/os_dep/mlme_linux.c
---- linux/3rdparty/rtl8723bs.old/os_dep/mlme_linux.c 2015-05-10 14:36:05.740668702 +0300
-+++ linux/3rdparty/rtl8723bs/os_dep/mlme_linux.c 2015-05-07 17:46:55.000000000 +0300
-@@ -23,32 +23,6 @@
-
- #include
-
--
--/*
--void sitesurvey_ctrl_handler(void *FunctionContext)
--{
-- _adapter *adapter = (_adapter *)FunctionContext;
--
-- _sitesurvey_ctrl_handler(adapter);
--
-- _set_timer(&adapter->mlmepriv.sitesurveyctrl.sitesurvey_ctrl_timer, 3000);
--}
--*/
--
--void rtw_join_timeout_handler (void *FunctionContext)
--{
-- _adapter *adapter = (_adapter *)FunctionContext;
-- _rtw_join_timeout_handler(adapter);
--}
--
--
--void _rtw_scan_timeout_handler (void *FunctionContext)
--{
-- _adapter *adapter = (_adapter *)FunctionContext;
-- rtw_scan_timeout_handler(adapter);
--}
--
--
- static void _dynamic_check_timer_handlder (void *FunctionContext)
- {
- _adapter *adapter = (_adapter *)FunctionContext;
-@@ -68,9 +42,9 @@ void rtw_init_mlme_timer(_adapter *padap
- {
- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-
-- _init_timer(&(pmlmepriv->assoc_timer), padapter->pnetdev, rtw_join_timeout_handler, padapter);
-+ _init_timer(&(pmlmepriv->assoc_timer), padapter->pnetdev, _rtw_join_timeout_handler, padapter);
- //_init_timer(&(pmlmepriv->sitesurveyctrl.sitesurvey_ctrl_timer), padapter->pnetdev, sitesurvey_ctrl_handler, padapter);
-- _init_timer(&(pmlmepriv->scan_to_timer), padapter->pnetdev, _rtw_scan_timeout_handler, padapter);
-+ _init_timer(&(pmlmepriv->scan_to_timer), padapter->pnetdev, rtw_scan_timeout_handler, padapter);
-
- _init_timer(&(pmlmepriv->dynamic_chk_timer), padapter->pnetdev, _dynamic_check_timer_handlder, padapter);
-
-@@ -120,7 +94,7 @@ void rtw_reset_securitypriv( _adapter *a
- _irqL irqL;
- struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv;
-
-- _enter_critical_bh(&adapter->security_key_mutex, &irqL);
-+ spin_lock_bh(&adapter->security_key_mutex);
-
- if(adapter->securitypriv.dot11AuthAlgrthm == dot11AuthAlgrthm_8021X)//802.1x
- {
-@@ -136,12 +110,11 @@ void rtw_reset_securitypriv( _adapter *a
- backupPMKIDIndex = adapter->securitypriv.PMKIDIndex;
- backupTKIPCountermeasure = adapter->securitypriv.btkip_countermeasure;
- backupTKIPcountermeasure_time = adapter->securitypriv.btkip_countermeasure_time;
--#ifdef CONFIG_IEEE80211W
-+
- //reset RX BIP packet number
- pmlmeext->mgnt_80211w_IPN_rx = 0;
--#endif //CONFIG_IEEE80211W
-+
- memset((unsigned char *)&adapter->securitypriv, 0, sizeof (struct security_priv));
-- //_init_timer(&(adapter->securitypriv.tkip_timer),adapter->pnetdev, rtw_use_tkipkey_handler, adapter);
-
- // Added by Albert 2009/02/18
- // Restore the PMK information to securitypriv structure for the following connection.
-@@ -172,7 +145,7 @@ void rtw_reset_securitypriv( _adapter *a
- //}
- }
- // add for CONFIG_IEEE80211W, none 11w also can use
-- _exit_critical_bh(&adapter->security_key_mutex, &irqL);
-+ spin_unlock_bh(&adapter->security_key_mutex);
- }
-
- void rtw_os_indicate_disconnect( _adapter *adapter )
-@@ -234,118 +207,26 @@ _func_enter_;
-
- wrqu.data.length = (wrqu.data.lengthaddba_retry_timer, padapter->pnetdev, _addba_timer_hdl, psta);
--}
--
--/*
--void _reauth_timer_hdl(void *FunctionContext)
--{
-- _adapter *padapter = (_adapter *)FunctionContext;
-- reauth_timer_hdl(padapter);
-+ _init_timer(&psta->addba_retry_timer, padapter->pnetdev, addba_timer_hdl, psta);
- }
-
--void _reassoc_timer_hdl(void *FunctionContext)
--{
-- _adapter *padapter = (_adapter *)FunctionContext;
-- reassoc_timer_hdl(padapter);
--}
--*/
--
- void init_mlme_ext_timer(_adapter *padapter)
- {
- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-
-- _init_timer(&pmlmeext->survey_timer, padapter->pnetdev, _survey_timer_hdl, padapter);
-- _init_timer(&pmlmeext->link_timer, padapter->pnetdev, _link_timer_hdl, padapter);
--#ifdef CONFIG_IEEE80211W
-- _init_timer(&pmlmeext->sa_query_timer, padapter->pnetdev, _sa_query_timer_hdl, padapter);
--#endif //CONFIG_IEEE80211W
-- //_init_timer(&pmlmeext->ADDBA_timer, padapter->pnetdev, _addba_timer_hdl, padapter);
-+ _init_timer(&pmlmeext->survey_timer, padapter->pnetdev, survey_timer_hdl, padapter);
-+ _init_timer(&pmlmeext->link_timer, padapter->pnetdev, link_timer_hdl, padapter);
-+ _init_timer(&pmlmeext->sa_query_timer, padapter->pnetdev, sa_query_timer_hdl, padapter);
-+ //_init_timer(&pmlmeext->ADDBA_timer, padapter->pnetdev, addba_timer_hdl, padapter);
-
- //_init_timer(&pmlmeext->reauth_timer, padapter->pnetdev, _reauth_timer_hdl, padapter);
- //_init_timer(&pmlmeext->reassoc_timer, padapter->pnetdev, _reassoc_timer_hdl, padapter);
- }
--
--#ifdef CONFIG_AP_MODE
--
--void rtw_indicate_sta_assoc_event(_adapter *padapter, struct sta_info *psta)
--{
-- union iwreq_data wrqu;
-- struct sta_priv *pstapriv = &padapter->stapriv;
--
-- if(psta==NULL)
-- return;
--
-- if(psta->aid > NUM_STA)
-- return;
--
-- if(pstapriv->sta_aid[psta->aid - 1] != psta)
-- return;
--
--
-- wrqu.addr.sa_family = ARPHRD_ETHER;
--
-- memcpy(wrqu.addr.sa_data, psta->hwaddr, ETH_ALEN);
--
-- DBG_871X("+rtw_indicate_sta_assoc_event\n");
--}
--
--void rtw_indicate_sta_disassoc_event(_adapter *padapter, struct sta_info *psta)
--{
-- union iwreq_data wrqu;
-- struct sta_priv *pstapriv = &padapter->stapriv;
--
-- if(psta==NULL)
-- return;
--
-- if(psta->aid > NUM_STA)
-- return;
--
-- if(pstapriv->sta_aid[psta->aid - 1] != psta)
-- return;
--
--
-- wrqu.addr.sa_family = ARPHRD_ETHER;
--
-- memcpy(wrqu.addr.sa_data, psta->hwaddr, ETH_ALEN);
--
-- DBG_871X("+rtw_indicate_sta_disassoc_event\n");
--}
--
--#endif
-diff -Nurp linux/3rdparty/rtl8723bs.old/os_dep/osdep_service.c linux/3rdparty/rtl8723bs/os_dep/osdep_service.c
---- linux/3rdparty/rtl8723bs.old/os_dep/osdep_service.c 2015-05-10 14:36:05.740668702 +0300
-+++ linux/3rdparty/rtl8723bs/os_dep/osdep_service.c 2015-05-07 17:46:55.000000000 +0300
-@@ -27,30 +27,11 @@
- * Translate the OS dependent @param error_code to OS independent RTW_STATUS_CODE
- * @return: one of RTW_STATUS_CODE
- */
--inline int RTW_STATUS_CODE(int error_code){
-+inline int RTW_STATUS_CODE(int error_code)
-+{
- if(error_code >=0)
- return _SUCCESS;
--
-- switch(error_code) {
-- //case -ETIMEDOUT:
-- // return RTW_STATUS_TIMEDOUT;
-- default:
-- return _FAIL;
-- }
--}
--
--inline u8* _rtw_zvmalloc(u32 sz)
--{
-- u8 *pbuf;
-- pbuf = vmalloc(sz);
-- if (pbuf != NULL)
-- memset(pbuf, 0, sz);
-- return pbuf;
--}
--
--inline void _rtw_vmfree(u8 *pbuf, u32 sz)
--{
-- vfree(pbuf);
-+ return _FAIL;
- }
-
- u8* _rtw_malloc(u32 sz)
-@@ -73,21 +54,11 @@ u8* _rtw_zmalloc(u32 sz)
- return pbuf;
- }
-
--void _rtw_mfree(u8 *pbuf, u32 sz)
--{
-- kfree(pbuf);
--}
--
- inline struct sk_buff *_rtw_skb_alloc(u32 sz)
- {
- return __dev_alloc_skb(sz, in_interrupt() ? GFP_ATOMIC : GFP_KERNEL);
- }
-
--inline void _rtw_skb_free(struct sk_buff *skb)
--{
-- dev_kfree_skb_any(skb);
--}
--
- inline struct sk_buff *_rtw_skb_copy(const struct sk_buff *skb)
- {
- return skb_copy(skb, in_interrupt() ? GFP_ATOMIC : GFP_KERNEL);
-@@ -104,46 +75,6 @@ inline int _rtw_netif_rx(_nic_hdl ndev,
- return netif_rx(skb);
- }
-
--void _rtw_skb_queue_purge(struct sk_buff_head *list)
--{
-- struct sk_buff *skb;
--
-- while ((skb = skb_dequeue(list)) != NULL)
-- _rtw_skb_free(skb);
--}
--
--void _rtw_init_listhead(_list *list)
--{
--
-- INIT_LIST_HEAD(list);
--}
--
--
--/*
--For the following list_xxx operations,
--caller must guarantee the atomic context.
--Otherwise, there will be racing condition.
--*/
--u32 rtw_is_list_empty(_list *phead)
--{
--
-- if (list_empty(phead))
-- return true;
-- else
-- return false;
--}
--
--void rtw_list_insert_head(_list *plist, _list *phead)
--{
-- list_add(plist, phead);
--}
--
--void rtw_list_insert_tail(_list *plist, _list *phead)
--{
--
-- list_add_tail(plist, phead);
--}
--
- void rtw_init_timer(_timer *ptimer, void *padapter, void *pfunc)
- {
- _adapter *adapter = (_adapter *)padapter;
-@@ -151,111 +82,13 @@ void rtw_init_timer(_timer *ptimer, void
- _init_timer(ptimer, adapter->pnetdev, pfunc, adapter);
- }
-
--/*
--
--Caller must check if the list is empty before calling rtw_list_delete
--
--*/
--
--
- void _rtw_init_queue(_queue *pqueue)
- {
-- _rtw_init_listhead(&(pqueue->queue));
-+ INIT_LIST_HEAD(&(pqueue->queue));
-
- spin_lock_init(&(pqueue->lock));
- }
-
--u32 _rtw_queue_empty(_queue *pqueue)
--{
-- return (rtw_is_list_empty(&(pqueue->queue)));
--}
--
--
--u32 rtw_end_of_queue_search(_list *head, _list *plist)
--{
-- if (head == plist)
-- return true;
-- else
-- return false;
--}
--
--inline u32 rtw_systime_to_ms(u32 systime)
--{
-- return systime * 1000 / HZ;
--}
--
--inline s32 rtw_get_time_interval_ms(u32 start, u32 end)
--{
-- return rtw_systime_to_ms(end-start);
--}
--
--void rtw_sleep_schedulable(int ms)
--{
-- u32 delta;
--
-- delta = (ms * HZ)/1000;//(ms)
-- if (delta == 0) {
-- delta = 1;// 1 ms
-- }
-- set_current_state(TASK_INTERRUPTIBLE);
-- if (schedule_timeout(delta) != 0) {
-- return ;
-- }
-- return;
--}
--
--#define RTW_SUSPEND_LOCK_NAME "rtw_wifi"
--#define RTW_SUSPEND_EXT_LOCK_NAME "rtw_wifi_ext"
--#define RTW_SUSPEND_RX_LOCK_NAME "rtw_wifi_rx"
--#define RTW_SUSPEND_TRAFFIC_LOCK_NAME "rtw_wifi_traffic"
--#define RTW_SUSPEND_RESUME_LOCK_NAME "rtw_wifi_resume"
--#define RTW_RESUME_SCAN_LOCK_NAME "rtw_wifi_scan"
--
--inline void rtw_suspend_lock_init(void)
--{
--}
--
--inline void rtw_suspend_lock_uninit(void)
--{
--}
--
--inline void rtw_lock_suspend(void)
--{
--}
--
--inline void rtw_unlock_suspend(void)
--{
--}
--
--inline void rtw_resume_lock_suspend(void)
--{
--}
--
--inline void rtw_resume_unlock_suspend(void)
--{
--}
--
--inline void rtw_lock_suspend_timeout(u32 timeout_ms)
--{
--}
--
--inline void rtw_lock_ext_suspend_timeout(u32 timeout_ms)
--{
--}
--
--inline void rtw_lock_rx_suspend_timeout(u32 timeout_ms)
--{
--}
--
--
--inline void rtw_lock_traffic_suspend_timeout(u32 timeout_ms)
--{
--}
--
--inline void rtw_lock_resume_scan_timeout(u32 timeout_ms)
--{
--}
--
- /*
- * Open a file with the specific @param path, @param flag, @param mode
- * @param fpp the pointer of struct file pointer to get struct file pointer while file opening is success
-@@ -311,27 +144,6 @@ static int readFile(struct file *fp,char
-
- }
-
--static int writeFile(struct file *fp,char *buf,int len)
--{
-- int wlen=0, sum=0;
--
-- if (!fp->f_op || !fp->f_op->write)
-- return -EPERM;
--
-- while(sumf_op->write(fp,(char __force __user *)buf+sum,len-sum, &fp->f_pos);
-- if(wlen>0)
-- sum+=wlen;
-- else if(0 != wlen)
-- return wlen;
-- else
-- break;
-- }
--
-- return sum;
--
--}
--
- /*
- * Test if the specifi @param path is a file and readable
- * @param path the path of the file to test
-@@ -395,40 +207,6 @@ static int retriveFromFile(char *path, u
- }
-
- /*
--* Open the file with @param path and wirte @param sz byte of data starting from @param buf into the file
--* @param path the path of the file to open and write
--* @param buf the starting address of the data to write into file
--* @param sz how many bytes to write at most
--* @return the byte we've written, or Linux specific error code
--*/
--static int storeToFile(char *path, u8* buf, u32 sz)
--{
-- int ret =0;
-- mm_segment_t oldfs;
-- struct file *fp;
--
-- if(path && buf) {
-- if( 0 == (ret=openFile(&fp, path, O_CREAT|O_WRONLY, 0666)) ) {
-- DBG_871X("%s openFile path:%s fp=%p\n",__FUNCTION__, path ,fp);
--
-- oldfs = get_fs(); set_fs(get_ds());
-- ret=writeFile(fp, buf, sz);
-- set_fs(oldfs);
-- closeFile(fp);
--
-- DBG_871X("%s writeFile, ret:%d\n",__FUNCTION__, ret);
--
-- } else {
-- DBG_871X("%s openFile path:%s Fail, ret:%d\n",__FUNCTION__, path, ret);
-- }
-- } else {
-- DBG_871X("%s NULL pointer\n",__FUNCTION__);
-- ret = -EINVAL;
-- }
-- return ret;
--}
--
--/*
- * Test if the specifi @param path is a file and readable
- * @param path the path of the file to test
- * @return true or false
-@@ -454,19 +232,6 @@ int rtw_retrive_from_file(char *path, u8
- return ret>=0?ret:0;
- }
-
--/*
--* Open the file with @param path and wirte @param sz byte of data starting from @param buf into the file
--* @param path the path of the file to open and write
--* @param buf the starting address of the data to write into file
--* @param sz how many bytes to write at most
--* @return the byte we've written
--*/
--int rtw_store_to_file(char *path, u8* buf, u32 sz)
--{
-- int ret =storeToFile(path, buf, sz);
-- return ret>=0?ret:0;
--}
--
- struct net_device *rtw_alloc_etherdev_with_old_priv(int sizeof_priv, void *old_priv)
- {
- struct net_device *pnetdev;
-@@ -495,7 +260,7 @@ struct net_device *rtw_alloc_etherdev(in
-
- pnpi = netdev_priv(pnetdev);
-
-- pnpi->priv = rtw_zvmalloc(sizeof_priv);
-+ pnpi->priv = vzalloc(sizeof_priv);
- if (!pnpi->priv) {
- free_netdev(pnetdev);
- pnetdev = NULL;
-@@ -519,7 +284,7 @@ void rtw_free_netdev(struct net_device *
- if(!pnpi->priv)
- goto RETURN;
-
-- rtw_vmfree(pnpi->priv, pnpi->sizeof_priv);
-+ vfree(pnpi->priv);
- free_netdev(netdev);
-
- RETURN:
-@@ -587,17 +352,6 @@ u64 rtw_modular64(u64 x, u64 y)
- return do_div(x, y);
- }
-
--u64 rtw_division64(u64 x, u64 y)
--{
-- do_div(x, y);
-- return x;
--}
--
--inline u32 rtw_random32(void)
--{
-- return prandom_u32();
--}
--
- void rtw_buf_free(u8 **buf, u32 *buf_len)
- {
- u32 ori_len;
-@@ -610,7 +364,7 @@ void rtw_buf_free(u8 **buf, u32 *buf_len
- if (*buf) {
- u32 tmp_buf_len = *buf_len;
- *buf_len = 0;
-- rtw_mfree(*buf, tmp_buf_len);
-+ kfree(*buf);
- *buf = NULL;
- }
- }
-@@ -645,7 +399,7 @@ keep_ori:
-
- /* free ori */
- if (ori && ori_len > 0)
-- rtw_mfree(ori, ori_len);
-+ kfree(ori);
- }
-
-
-@@ -730,13 +484,3 @@ struct rtw_cbuf *rtw_cbuf_alloc(u32 size
-
- return cbuf;
- }
--
--/**
-- * rtw_cbuf_free - free the given rtw_cbuf
-- * @cbuf: pointer of struct rtw_cbuf to free
-- */
--void rtw_cbuf_free(struct rtw_cbuf *cbuf)
--{
-- rtw_mfree((u8*)cbuf, sizeof(*cbuf) + sizeof(void*)*cbuf->size);
--}
--
-diff -Nurp linux/3rdparty/rtl8723bs.old/os_dep/os_intfs.c linux/3rdparty/rtl8723bs/os_dep/os_intfs.c
---- linux/3rdparty/rtl8723bs.old/os_dep/os_intfs.c 2015-05-10 14:36:05.741668714 +0300
-+++ linux/3rdparty/rtl8723bs/os_dep/os_intfs.c 2015-05-07 17:46:55.000000000 +0300
-@@ -85,9 +85,8 @@ int rtw_ht_enable = 1;
- // 2.4G use bit 0 ~ 3, 5G use bit 4 ~ 7
- // 0x21 means enable 2.4G 40MHz & 5G 80MHz
- static int rtw_bw_mode = 0x21;
--static int rtw_cbw40_enable = 3; // 0 :diable, bit(0): enable 2.4g, bit(1): enable 5g
- static int rtw_ampdu_enable = 1;//for enable tx_ampdu ,// 0: disable, 0x1:enable (but wifi_spec should be 0), 0x2: force enable (don't care wifi_spec)
--static int rtw_rx_stbc = 1;// 0: disable, bit(0):enable 2.4g, bit(1):enable 5g, default is set to enable 2.4GHZ for IOT issue with bufflao's AP at 5GHZ
-+static int rtw_rx_stbc = 1;// 0: disable, 1:enable 2.4g
- static int rtw_ampdu_amsdu = 0;// 0: disabled, 1:enabled, 2:auto . There is an IOT issu with DLINK DIR-629 when the flag turn on
- // Short GI support Bit Map
- // BIT0 - 20MHz, 0: non-support, 1: support
-@@ -138,13 +137,9 @@ static int rtw_hwpwrp_detect = 0; //HW p
-
- static int rtw_hw_wps_pbc = 0;
-
--#ifdef CONFIG_TX_MCAST2UNI
- int rtw_mc2u_disable = 0;
--#endif // CONFIG_TX_MCAST2UNI
-
--#ifdef CONFIG_80211D
- static int rtw_80211d = 0;
--#endif
-
- #ifdef CONFIG_QOS_OPTIMIZATION
- static int rtw_qos_opt_enable=1;//0: disable,1:enable
-@@ -199,11 +194,9 @@ module_param(rtw_hwpwrp_detect, int, 064
-
- module_param(rtw_hw_wps_pbc, int, 0644);
-
--#ifdef CONFIG_LAYER2_ROAMING
- static uint rtw_max_roaming_times=2;
- module_param(rtw_max_roaming_times, uint, 0644);
- MODULE_PARM_DESC(rtw_max_roaming_times,"The max roaming times to try");
--#endif //CONFIG_LAYER2_ROAMING
-
- #ifdef CONFIG_FILE_FWIMG
- static char *rtw_fw_file_path = "/system/etc/firmware/rtlwifi/FW_NIC.BIN";
-@@ -216,19 +209,17 @@ MODULE_PARM_DESC(rtw_fw_wow_file_path, "
-
- #endif // CONFIG_FILE_FWIMG
-
--#ifdef CONFIG_TX_MCAST2UNI
- module_param(rtw_mc2u_disable, int, 0644);
--#endif // CONFIG_TX_MCAST2UNI
-
--#ifdef CONFIG_80211D
- module_param(rtw_80211d, int, 0644);
- MODULE_PARM_DESC(rtw_80211d, "Enable 802.11d mechanism");
--#endif
-
--static uint rtw_notch_filter = RTW_NOTCH_FILTER;
-+static uint rtw_notch_filter = 0;
- module_param(rtw_notch_filter, uint, 0644);
- MODULE_PARM_DESC(rtw_notch_filter, "0:Disable, 1:Enable, 2:Enable only for P2P");
-
-+#define CONFIG_RTW_HIQ_FILTER 1
-+
- static uint rtw_hiq_filter = CONFIG_RTW_HIQ_FILTER;
- module_param(rtw_hiq_filter, uint, 0644);
- MODULE_PARM_DESC(rtw_hiq_filter, "0:allow all, 1:allow special, 2:deny all");
-@@ -295,15 +286,9 @@ _func_enter_;
- registry_par->channel = (u8)rtw_channel;
- registry_par->wireless_mode = (u8)rtw_wireless_mode;
-
-- if (IsSupported24G(registry_par->wireless_mode) && (!IsSupported5G(registry_par->wireless_mode))
-- && (registry_par->channel > 14)) {
-+ if (registry_par->channel > 14)
- registry_par->channel = 1;
-- }
-- else if (IsSupported5G(registry_par->wireless_mode) && (!IsSupported24G(registry_par->wireless_mode))
-- && (registry_par->channel <= 14)) {
-- registry_par->channel = 36;
-- }
--
-+
- registry_par->vrtl_carrier_sense = (u8)rtw_vrtl_carrier_sense ;
- registry_par->vcs_type = (u8)rtw_vcs_type;
- registry_par->rts_thresh=(u16)rtw_rts_thresh;
-@@ -370,16 +355,12 @@ _func_enter_;
-
- registry_par->hw_wps_pbc = (u8)rtw_hw_wps_pbc;
-
--#ifdef CONFIG_LAYER2_ROAMING
- registry_par->max_roaming_times = (u8)rtw_max_roaming_times;
- #ifdef CONFIG_INTEL_WIDI
- registry_par->max_roaming_times = (u8)rtw_max_roaming_times + 2;
- #endif // CONFIG_INTEL_WIDI
--#endif
-
--#ifdef CONFIG_80211D
- registry_par->enable80211d = (u8)rtw_80211d;
--#endif
-
- snprintf(registry_par->ifname, 16, "%s", ifname);
- snprintf(registry_par->if2name, 16, "%s", if2name);
-@@ -697,8 +678,7 @@ void rtw_stop_drv_threads (_adapter *pad
- rtw_hal_stop_thread(padapter);
- }
-
--u8 rtw_init_default_value(_adapter *padapter);
--u8 rtw_init_default_value(_adapter *padapter)
-+static u8 rtw_init_default_value(_adapter *padapter)
- {
- u8 ret = _SUCCESS;
- struct registry_priv* pregistrypriv = &padapter->registrypriv;
-@@ -808,7 +788,7 @@ void devobj_deinit(struct dvobj_priv *pd
- mutex_destroy(&pdvobj->setch_mutex);
- mutex_destroy(&pdvobj->setbw_mutex);
-
-- rtw_mfree((u8*)pdvobj, sizeof(*pdvobj));
-+ kfree((u8*)pdvobj);
- }
-
- u8 rtw_reset_drv_sw(_adapter *padapter)
-@@ -907,11 +887,9 @@ _func_enter_;
- // add for CONFIG_IEEE80211W, none 11w also can use
- spin_lock_init(&padapter->security_key_mutex);
-
-- // We don't need to memset padapter->XXX to zero, because adapter is allocated by rtw_zvmalloc().
-+ // We don't need to memset padapter->XXX to zero, because adapter is allocated by vzalloc().
- //memset((unsigned char *)&padapter->securitypriv, 0, sizeof (struct security_priv));
-
-- //_init_timer(&(padapter->securitypriv.tkip_timer), padapter->pifp, rtw_use_tkipkey_handler, padapter);
--
- if(_rtw_init_sta_priv(&padapter->stapriv) == _FAIL)
- {
- DBG_871X("Can't _rtw_init_sta_priv\n");
-@@ -929,7 +907,6 @@ _func_enter_;
- //memset((u8 *)&padapter->qospriv, 0, sizeof (struct qos_priv));//move to mlme_priv
-
- rtw_hal_dm_init(padapter);
-- rtw_hal_sw_led_init(padapter);
-
- #ifdef CONFIG_INTEL_WIDI
- if(rtw_init_intel_widi(padapter) == _FAIL)
-@@ -940,11 +917,6 @@ _func_enter_;
- }
- #endif //CONFIG_INTEL_WIDI
-
--#ifdef CONFIG_WAPI_SUPPORT
-- padapter->WapiSupport = true; //set true temp, will revise according to Efuse or Registry value later.
-- rtw_wapi_init(padapter);
--#endif
--
- exit:
-
- RT_TRACE(_module_os_intfs_c_,_drv_info_,("-rtw_init_drv_sw\n"));
-@@ -955,14 +927,6 @@ exit:
-
- }
-
--#ifdef CONFIG_WOWLAN
--void rtw_cancel_dynamic_chk_timer(_adapter *padapter)
--{
-- _cancel_timer_ex(&padapter->mlmepriv.dynamic_chk_timer);
-- RT_TRACE(_module_os_intfs_c_,_drv_info_,("rtw_cancel_all_timer:cancel dynamic_chk_timer! \n"));
--}
--#endif
--
- void rtw_cancel_all_timer(_adapter *padapter)
- {
- RT_TRACE(_module_os_intfs_c_,_drv_info_,("+rtw_cancel_all_timer\n"));
-@@ -979,10 +943,6 @@ void rtw_cancel_all_timer(_adapter *pada
- _cancel_timer_ex(&padapter->mlmepriv.dynamic_chk_timer);
- RT_TRACE(_module_os_intfs_c_,_drv_info_,("rtw_cancel_all_timer:cancel dynamic_chk_timer! \n"));
-
-- // cancel sw led timer
-- rtw_hal_sw_led_deinit(padapter);
-- RT_TRACE(_module_os_intfs_c_,_drv_info_,("rtw_cancel_all_timer:cancel DeInitSwLeds! \n"));
--
- _cancel_timer_ex(&(adapter_to_pwrctl(padapter)->pwr_state_check_timer));
-
- _cancel_timer_ex(&padapter->mlmepriv.set_scan_deny_timer);
-@@ -1001,10 +961,6 @@ u8 rtw_free_drv_sw(_adapter *padapter)
-
- RT_TRACE(_module_os_intfs_c_,_drv_info_,("==>rtw_free_drv_sw"));
-
--#ifdef CONFIG_WAPI_SUPPORT
-- rtw_wapi_free(padapter);
--#endif
--
- #ifdef CONFIG_INTEL_WIDI
- rtw_free_intel_widi(padapter);
- #endif //CONFIG_INTEL_WIDI
-@@ -1027,7 +983,7 @@ u8 rtw_free_drv_sw(_adapter *padapter)
-
- rtw_free_pwrctrl_priv(padapter);
-
-- //rtw_mfree((void *)padapter, sizeof (padapter));
-+ //kfree((void *)padapter);
-
- rtw_hal_free_data(padapter);
-
-@@ -1160,8 +1116,6 @@ int _netdev_open(struct net_device *pnet
-
- rtw_cfg80211_init_wiphy(padapter);
-
-- rtw_led_control(padapter, LED_CTL_NO_LINK);
--
- padapter->bup = true;
- pwrctrlpriv->bips_processing = false;
- }
-@@ -1208,9 +1162,11 @@ int netdev_open(struct net_device *pnetd
- return 0;
- }
-
-- _enter_critical_mutex(&(adapter_to_dvobj(padapter)->hw_init_mutex), NULL);
-+ if (mutex_lock_interruptible(&(adapter_to_dvobj(padapter)->hw_init_mutex)))
-+ return -1;
-+
- ret = _netdev_open(pnetdev);
-- _exit_critical_mutex(&(adapter_to_dvobj(padapter)->hw_init_mutex), NULL);
-+ mutex_unlock(&(adapter_to_dvobj(padapter)->hw_init_mutex));
-
- return ret;
- }
-@@ -1262,8 +1218,6 @@ int rtw_ips_pwr_up(_adapter *padapter)
-
- result = ips_netdrv_open(padapter);
-
-- rtw_led_control(padapter, LED_CTL_NO_LINK);
--
- DBG_871X("<=== rtw_ips_pwr_up.............. in %dms\n", jiffies_to_msecs(jiffies - start_time));
- return result;
-
-@@ -1300,15 +1254,16 @@ void rtw_ips_dev_unload(_adapter *padapt
-
- static int pm_netdev_open(struct net_device *pnetdev,u8 bnormal)
- {
-- int status = 0;
-+ int status = -1;
-
- _adapter *padapter = (_adapter *)rtw_netdev_priv(pnetdev);
-
- if (true == bnormal)
- {
-- _enter_critical_mutex(&(adapter_to_dvobj(padapter)->hw_init_mutex), NULL);
-- status = _netdev_open(pnetdev);
-- _exit_critical_mutex(&(adapter_to_dvobj(padapter)->hw_init_mutex), NULL);
-+ if (mutex_lock_interruptible(&(adapter_to_dvobj(padapter)->hw_init_mutex)) == 0) {
-+ status = _netdev_open(pnetdev);
-+ mutex_unlock(&(adapter_to_dvobj(padapter)->hw_init_mutex));
-+ }
- }
- else
- status = (_SUCCESS == ips_netdrv_open(padapter))?(0):(-1);
-@@ -1360,18 +1315,12 @@ static int netdev_close(struct net_devic
- rtw_free_assoc_resources(padapter, 1);
- //s2-4.
- rtw_free_network_queue(padapter,true);
-- // Close LED
-- rtw_led_control(padapter, LED_CTL_POWER_OFF);
- }
-
- rtw_scan_abort(padapter);
- adapter_wdev_data(padapter)->bandroid_scan = false;
- //padapter->rtw_wdev->iftype = NL80211_IFTYPE_MONITOR; //set this at the end
-
--#ifdef CONFIG_WAPI_SUPPORT
-- rtw_wapi_disable_tx(padapter);
--#endif
--
- RT_TRACE(_module_os_intfs_c_,_drv_info_,("-871x_drv - drv_close\n"));
- DBG_871X("-871x_drv - drv_close, bup=%d\n", padapter->bup);
-
-@@ -1384,7 +1333,7 @@ void rtw_ndev_destructor(struct net_devi
- DBG_871X(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev));
-
- if (ndev->ieee80211_ptr)
-- rtw_mfree((u8 *)ndev->ieee80211_ptr, sizeof(struct wireless_dev));
-+ kfree((u8 *)ndev->ieee80211_ptr);
-
- free_netdev(ndev);
- }
-@@ -1494,13 +1443,11 @@ static int rtw_suspend_free_assoc_resour
- //s2-2. indicate disconnect to os
- rtw_indicate_disconnect(padapter);
- }
-- #ifdef CONFIG_AP_MODE
- else if(check_fwstate(pmlmepriv, WIFI_AP_STATE))
- {
- rtw_sta_flush(padapter);
- }
-- #endif
--
-+
- //s2-3.
- rtw_free_assoc_resources(padapter, 1);
-
-@@ -1680,8 +1627,6 @@ static int rtw_suspend_normal(_adapter *
-
- rtw_suspend_free_assoc_resource(padapter);
-
-- rtw_led_control(padapter, LED_CTL_POWER_OFF);
--
- if ((rtw_hal_check_ips_status(padapter) == true)
- || (adapter_to_pwrctl(padapter)->rf_pwrstate == rf_off))
- {
-@@ -1894,20 +1839,6 @@ _func_enter_;
- }
- }
-
-- if (pwrpriv->wowlan_wake_reason == FWDecisionDisconnect) {
-- rtw_lock_ext_suspend_timeout(2000);
-- }
--
-- if (pwrpriv->wowlan_wake_reason == Rx_GTK ||
-- pwrpriv->wowlan_wake_reason == Rx_DisAssoc ||
-- pwrpriv->wowlan_wake_reason == Rx_DeAuth) {
-- rtw_lock_ext_suspend_timeout(8000);
-- }
--
-- if (pwrpriv->wowlan_wake_reason == RX_PNOWakeUp) {
-- rtw_lock_ext_suspend_timeout(15000);
-- }
--
- if (pwrpriv->wowlan_mode == true) {
- pwrpriv->bips_processing = false;
- _set_timer(&padapter->mlmepriv.dynamic_chk_timer, 2000);
-@@ -1994,9 +1925,6 @@ _func_enter_;
- rtw_signal_process(padapter->pid[1], SIGUSR2);
- }
-
-- if (pwrpriv->wowlan_wake_reason == AP_WakeUp)
-- rtw_lock_ext_suspend_timeout(8000);
--
- pwrpriv->bips_processing = false;
- _set_timer(&padapter->mlmepriv.dynamic_chk_timer, 2000);
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/os_dep/recv_linux.c linux/3rdparty/rtl8723bs/os_dep/recv_linux.c
---- linux/3rdparty/rtl8723bs.old/os_dep/recv_linux.c 2015-05-10 14:36:05.741668714 +0300
-+++ linux/3rdparty/rtl8723bs/os_dep/recv_linux.c 2015-05-07 17:46:55.000000000 +0300
-@@ -22,112 +22,16 @@
- #include
- #include
-
--int rtw_os_alloc_recvframe(_adapter *padapter, union recv_frame *precvframe, u8 *pdata, _pkt *pskb)
--{
-- int res = _SUCCESS;
-- u8 shift_sz = 0;
-- u32 skb_len, alloc_sz;
-- _pkt *pkt_copy = NULL;
-- struct rx_pkt_attrib *pattrib = &precvframe->u.hdr.attrib;
--
--
-- if(pdata == NULL)
-- {
-- precvframe->u.hdr.pkt = NULL;
-- res = _FAIL;
-- return res;
-- }
--
--
-- // Modified by Albert 20101213
-- // For 8 bytes IP header alignment.
-- shift_sz = pattrib->qos ? 6:0;// Qos data, wireless lan header length is 26
--
-- skb_len = pattrib->pkt_len;
--
-- // for first fragment packet, driver need allocate 1536+drvinfo_sz+RXDESC_SIZE to defrag packet.
-- // modify alloc_sz for recvive crc error packet by thomas 2011-06-02
-- if((pattrib->mfrag == 1)&&(pattrib->frag_num == 0))
-- {
-- //alloc_sz = 1664; //1664 is 128 alignment.
-- alloc_sz = (skb_len <= 1650) ? 1664:(skb_len + 14);
-- }
-- else
-- {
-- alloc_sz = skb_len;
-- // 6 is for IP header 8 bytes alignment in QoS packet case.
-- // 8 is for skb->data 4 bytes alignment.
-- alloc_sz += 14;
-- }
--
-- pkt_copy = rtw_skb_alloc(alloc_sz);
--
-- if(pkt_copy)
-- {
-- pkt_copy->dev = padapter->pnetdev;
-- precvframe->u.hdr.pkt = pkt_copy;
-- precvframe->u.hdr.rx_head = pkt_copy->data;
-- precvframe->u.hdr.rx_end = pkt_copy->data + alloc_sz;
-- skb_reserve(pkt_copy, 8 - ((SIZE_PTR)( pkt_copy->data) & 7 ));//force pkt_copy->data at 8-byte alignment address
-- skb_reserve(pkt_copy, shift_sz);//force ip_hdr at 8-byte alignment address according to shift_sz.
-- memcpy(pkt_copy->data, pdata, skb_len);
-- precvframe->u.hdr.rx_data = precvframe->u.hdr.rx_tail = pkt_copy->data;
-- }
-- else
-- {
-- if((pattrib->mfrag == 1)&&(pattrib->frag_num == 0))
-- {
-- DBG_871X("%s: alloc_skb fail , drop frag frame \n", __FUNCTION__);
-- //rtw_free_recvframe(precvframe, pfree_recv_queue);
-- res = _FAIL;
-- goto exit_rtw_os_recv_resource_alloc;
-- }
--
-- if(pskb == NULL)
-- {
-- res = _FAIL;
-- goto exit_rtw_os_recv_resource_alloc;
-- }
--
-- precvframe->u.hdr.pkt = rtw_skb_clone(pskb);
-- if(precvframe->u.hdr.pkt)
-- {
-- precvframe->u.hdr.rx_head = precvframe->u.hdr.rx_data = precvframe->u.hdr.rx_tail = pdata;
-- precvframe->u.hdr.rx_end = pdata + alloc_sz;
-- }
-- else
-- {
-- DBG_871X("%s: rtw_skb_clone fail\n", __FUNCTION__);
-- //rtw_free_recvframe(precvframe, pfree_recv_queue);
-- //goto _exit_recvbuf2recvframe;
-- res = _FAIL;
-- }
-- }
--
--exit_rtw_os_recv_resource_alloc:
--
-- return res;
--
--}
--
- void rtw_os_free_recvframe(union recv_frame *precvframe)
- {
- if(precvframe->u.hdr.pkt)
- {
-- rtw_skb_free(precvframe->u.hdr.pkt);//free skb by driver
-+ dev_kfree_skb_any(precvframe->u.hdr.pkt);//free skb by driver
-
- precvframe->u.hdr.pkt = NULL;
- }
- }
-
--//init os related resource in struct recv_priv
--int rtw_os_recv_resource_init(struct recv_priv *precvpriv, _adapter *padapter)
--{
-- int res=_SUCCESS;
--
-- return res;
--}
--
- //alloc os related resource in union recv_frame
- int rtw_os_recv_resource_alloc(_adapter *padapter, union recv_frame *precvframe)
- {
-@@ -149,21 +53,13 @@ void rtw_os_recv_resource_free(struct re
- {
- if(precvframe->u.hdr.pkt)
- {
-- rtw_skb_free(precvframe->u.hdr.pkt);//free skb by driver
-+ dev_kfree_skb_any(precvframe->u.hdr.pkt);//free skb by driver
- precvframe->u.hdr.pkt = NULL;
- }
- precvframe++;
- }
- }
-
--//alloc os related resource in struct recv_buf
--int rtw_os_recvbuf_resource_alloc(_adapter *padapter, struct recv_buf *precvbuf)
--{
-- int res=_SUCCESS;
--
-- return res;
--}
--
- //free os related resource in struct recv_buf
- int rtw_os_recvbuf_resource_free(_adapter *padapter, struct recv_buf *precvbuf)
- {
-@@ -171,7 +67,7 @@ int rtw_os_recvbuf_resource_free(_adapte
-
- if(precvbuf->pskb)
- {
-- rtw_skb_free(precvbuf->pskb);
-+ dev_kfree_skb_any(precvbuf->pskb);
- }
- return ret;
-
-@@ -366,10 +262,6 @@ void rtw_handle_tkip_mic_err(_adapter *p
- wrqu.data.length = sizeof( ev );
- }
-
--void rtw_hostapd_mlme_rx(_adapter *padapter, union recv_frame *precv_frame)
--{
--}
--
- #ifdef CONFIG_AUTO_AP_MODE
- static void rtw_os_ksocket_send(_adapter *padapter, union recv_frame *precv_frame)
- {
-@@ -424,14 +316,6 @@ _func_enter_;
- precvpriv = &(padapter->recvpriv);
- pfree_recv_queue = &(precvpriv->free_recv_queue);
-
--#ifdef CONFIG_WAPI_SUPPORT
-- if (rtw_wapi_check_for_drop(padapter,precv_frame))
-- {
-- WAPI_TRACE(WAPI_ERR, "%s(): Rx Reorder Drop case!!\n", __FUNCTION__);
-- goto _recv_indicatepkt_drop;
-- }
--#endif
--
- skb = precv_frame->u.hdr.pkt;
- if(skb == NULL)
- {
-@@ -485,24 +369,11 @@ _func_exit_;
-
- }
-
--void rtw_os_read_port(_adapter *padapter, struct recv_buf *precvbuf)
--{
-- struct recv_priv *precvpriv = &padapter->recvpriv;
--
-- precvbuf->pskb = NULL;
--}
--void _rtw_reordering_ctrl_timeout_handler (void *FunctionContext);
--void _rtw_reordering_ctrl_timeout_handler (void *FunctionContext)
--{
-- struct recv_reorder_ctrl *preorder_ctrl = (struct recv_reorder_ctrl *)FunctionContext;
-- rtw_reordering_ctrl_timeout_handler(preorder_ctrl);
--}
--
- void rtw_init_recv_timer(struct recv_reorder_ctrl *preorder_ctrl)
- {
- _adapter *padapter = preorder_ctrl->padapter;
-
-- _init_timer(&(preorder_ctrl->reordering_ctrl_timer), padapter->pnetdev, _rtw_reordering_ctrl_timeout_handler, preorder_ctrl);
-+ _init_timer(&(preorder_ctrl->reordering_ctrl_timer), padapter->pnetdev, rtw_reordering_ctrl_timeout_handler, preorder_ctrl);
-
- }
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/os_dep/rtw_proc.c linux/3rdparty/rtl8723bs/os_dep/rtw_proc.c
---- linux/3rdparty/rtl8723bs.old/os_dep/rtw_proc.c 2015-05-10 14:36:05.742668725 +0300
-+++ linux/3rdparty/rtl8723bs/os_dep/rtw_proc.c 2015-05-07 17:46:55.000000000 +0300
-@@ -25,12 +25,7 @@
-
- static struct proc_dir_entry *rtw_proc = NULL;
-
--inline struct proc_dir_entry *get_rtw_drv_proc(void)
--{
-- return rtw_proc;
--}
--
--#define RTW_PROC_NAME DRV_NAME
-+#define RTW_PROC_NAME "rtl8723bs"
-
- #define get_proc_net init_net.proc_net
-
-@@ -324,7 +319,7 @@ static ssize_t proc_set_cam(struct file
- /* c : clear specific cam entry */
- /* wfc : write specific cam entry from cam cache */
-
-- int num = sscanf(tmp, "%s %hhu", cmd, &id);
-+ int num = sscanf(tmp, "%4s %hhu", cmd, &id);
-
- if (num < 2)
- return count;
-@@ -399,11 +394,9 @@ static const struct rtw_proc_hdl adapter
- {"suspend_info", proc_get_suspend_resume_info, NULL},
- {"rx_info", proc_get_rx_info, proc_reset_rx_info},
-
--#ifdef CONFIG_LAYER2_ROAMING
- {"roam_flags", proc_get_roam_flags, proc_set_roam_flags},
- {"roam_param", proc_get_roam_param, proc_set_roam_param},
- {"roam_tgt_addr", proc_get_dummy, proc_set_roam_tgt_addr},
--#endif /* CONFIG_LAYER2_ROAMING */
-
- {"sd_f0_reg_dump", proc_get_sd_f0_reg_dump, NULL},
-
-@@ -413,10 +406,8 @@ static const struct rtw_proc_hdl adapter
- {"mac_reg_dump", proc_get_mac_reg_dump, NULL},
- {"bb_reg_dump", proc_get_bb_reg_dump, NULL},
- {"rf_reg_dump", proc_get_rf_reg_dump, NULL},
--
--#ifdef CONFIG_AP_MODE
-+
- {"all_sta_info", proc_get_all_sta_info, NULL},
--#endif /* CONFIG_AP_MODE */
-
- {"rx_signal", proc_get_rx_signal, proc_set_rx_signal},
- {"hw_info", proc_get_hw_status, NULL},
-@@ -716,7 +707,7 @@ static void rtw_odm_proc_deinit(_adapter
-
- struct proc_dir_entry *rtw_adapter_proc_init(struct net_device *dev)
- {
-- struct proc_dir_entry *drv_proc = get_rtw_drv_proc();
-+ struct proc_dir_entry *drv_proc = rtw_proc;
- struct proc_dir_entry *dir_dev = NULL;
- struct proc_dir_entry *entry = NULL;
- _adapter *adapter = rtw_netdev_priv(dev);
-@@ -757,7 +748,7 @@ exit:
-
- void rtw_adapter_proc_deinit(struct net_device *dev)
- {
-- struct proc_dir_entry *drv_proc = get_rtw_drv_proc();
-+ struct proc_dir_entry *drv_proc = rtw_proc;
- struct proc_dir_entry *dir_dev = NULL;
- _adapter *adapter = rtw_netdev_priv(dev);
- int i;
-@@ -781,7 +772,7 @@ void rtw_adapter_proc_deinit(struct net_
-
- void rtw_adapter_proc_replace(struct net_device *dev)
- {
-- struct proc_dir_entry *drv_proc = get_rtw_drv_proc();
-+ struct proc_dir_entry *drv_proc = rtw_proc;
- struct proc_dir_entry *dir_dev = NULL;
- _adapter *adapter = rtw_netdev_priv(dev);
- int i;
-diff -Nurp linux/3rdparty/rtl8723bs.old/os_dep/rtw_proc.h linux/3rdparty/rtl8723bs/os_dep/rtw_proc.h
---- linux/3rdparty/rtl8723bs.old/os_dep/rtw_proc.h 2015-05-10 14:36:05.742668725 +0300
-+++ linux/3rdparty/rtl8723bs/os_dep/rtw_proc.h 2015-05-07 17:46:55.000000000 +0300
-@@ -31,7 +31,6 @@ struct rtw_proc_hdl {
-
- #ifdef CONFIG_PROC_DEBUG
-
--struct proc_dir_entry *get_rtw_drv_proc(void);
- int rtw_drv_proc_init(void);
- void rtw_drv_proc_deinit(void);
- struct proc_dir_entry *rtw_adapter_proc_init(struct net_device *dev);
-@@ -40,7 +39,6 @@ void rtw_adapter_proc_replace(struct net
-
- #else //!CONFIG_PROC_DEBUG
-
--struct proc_dir_entry *get_rtw_drv_proc(void) {return NULL;}
- int rtw_drv_proc_init(void) {return 0;}
- void rtw_drv_proc_deinit(void) {}
- struct proc_dir_entry *rtw_adapter_proc_init(struct net_device *dev){return NULL;}
-diff -Nurp linux/3rdparty/rtl8723bs.old/os_dep/sdio_intf.c linux/3rdparty/rtl8723bs/os_dep/sdio_intf.c
---- linux/3rdparty/rtl8723bs.old/os_dep/sdio_intf.c 2015-05-10 14:36:05.742668725 +0300
-+++ linux/3rdparty/rtl8723bs/os_dep/sdio_intf.c 2015-05-07 17:46:55.000000000 +0300
-@@ -62,7 +62,7 @@ struct sdio_drv_priv {
- static struct sdio_drv_priv sdio_drvpriv = {
- .r871xs_drv.probe = rtw_drv_init,
- .r871xs_drv.remove = rtw_dev_remove,
-- .r871xs_drv.name = (char*)DRV_NAME,
-+ .r871xs_drv.name = "rtl8723bs",
- .r871xs_drv.id_table = sdio_ids,
- .r871xs_drv.drv = {
- .pm = &rtw_sdio_pm_ops,
-@@ -349,7 +349,7 @@ static _adapter *rtw_sdio_if1_init(struc
- struct net_device *pnetdev;
- PADAPTER padapter = NULL;
-
-- if ((padapter = (_adapter *)rtw_zvmalloc(sizeof(*padapter))) == NULL) {
-+ if ((padapter = (_adapter *)vzalloc(sizeof(*padapter))) == NULL) {
- goto exit;
- }
-
-@@ -427,7 +427,7 @@ static _adapter *rtw_sdio_if1_init(struc
-
- free_hal_data:
- if(status != _SUCCESS && padapter->HalData)
-- rtw_mfree(padapter->HalData, sizeof(padapter->HalData));
-+ kfree(padapter->HalData);
-
- if(status != _SUCCESS) {
- rtw_wdev_unregister(padapter->rtw_wdev);
-@@ -439,7 +439,7 @@ free_adapter:
- if (pnetdev)
- rtw_free_netdev(pnetdev);
- else
-- rtw_vmfree((u8*)padapter, sizeof(*padapter));
-+ vfree((u8*)padapter);
- padapter = NULL;
- }
- exit:
-@@ -454,9 +454,7 @@ static void rtw_sdio_if1_deinit(_adapter
- if(check_fwstate(pmlmepriv, _FW_LINKED))
- rtw_disassoc_cmd(if1, 0, false);
-
--#ifdef CONFIG_AP_MODE
- free_mlme_ap_info(if1);
--#endif
-
- #ifdef CONFIG_GPIO_WAKEUP
- gpio_hostwakeup_free_irq(if1);
-@@ -673,15 +671,11 @@ static int rtw_sdio_resume(struct device
- {
- if(pwrpriv->wowlan_mode || pwrpriv->wowlan_ap_mode)
- {
-- rtw_resume_lock_suspend();
- ret = rtw_resume_process(padapter);
-- rtw_resume_unlock_suspend();
- }
- else
- {
-- rtw_resume_lock_suspend();
- ret = rtw_resume_process(padapter);
-- rtw_resume_unlock_suspend();
- }
- }
- pmlmeext->last_scan_time = jiffies;
-@@ -697,11 +691,10 @@ static int __init rtw_drv_entry(void)
- DBG_871X_LEVEL(_drv_always_, "module init start\n");
- dump_drv_version(RTW_DBGDUMP);
- #ifdef BTCOEXVERSION
-- DBG_871X_LEVEL(_drv_always_, DRV_NAME" BT-Coex version = %s\n", BTCOEXVERSION);
-+ DBG_871X_LEVEL(_drv_always_, "rtl8723bs BT-Coex version = %s\n", BTCOEXVERSION);
- #endif // BTCOEXVERSION
-
- sdio_drvpriv.drv_registered = true;
-- rtw_suspend_lock_init();
- rtw_drv_proc_init();
- rtw_ndev_notifier_register();
-
-@@ -709,7 +702,6 @@ static int __init rtw_drv_entry(void)
- if (ret != 0)
- {
- sdio_drvpriv.drv_registered = false;
-- rtw_suspend_lock_uninit();
- rtw_drv_proc_deinit();
- rtw_ndev_notifier_unregister();
- DBG_871X("%s: register driver failed!!(%d)\n", __FUNCTION__, ret);
-@@ -731,7 +723,6 @@ static void __exit rtw_drv_halt(void)
-
- sdio_unregister_driver(&sdio_drvpriv.r871xs_drv);
-
-- rtw_suspend_lock_uninit();
- rtw_drv_proc_deinit();
- rtw_ndev_notifier_unregister();
-
-diff -Nurp linux/3rdparty/rtl8723bs.old/os_dep/sdio_ops_linux.c linux/3rdparty/rtl8723bs/os_dep/sdio_ops_linux.c
---- linux/3rdparty/rtl8723bs.old/os_dep/sdio_ops_linux.c 2015-05-10 14:36:05.743668736 +0300
-+++ linux/3rdparty/rtl8723bs/os_dep/sdio_ops_linux.c 2015-05-07 17:46:55.000000000 +0300
-@@ -74,39 +74,6 @@ _func_exit_;
- return v;
- }
-
--void sd_f0_write8(struct intf_hdl *pintfhdl, u32 addr, u8 v, s32 *err)
--{
-- PADAPTER padapter;
-- struct dvobj_priv *psdiodev;
-- PSDIO_DATA psdio;
--
-- struct sdio_func *func;
-- bool claim_needed;
--
--_func_enter_;
-- padapter = pintfhdl->padapter;
-- psdiodev = pintfhdl->pintf_dev;
-- psdio = &psdiodev->intf_data;
--
-- if(padapter->bSurpriseRemoved){
-- //DBG_871X(" %s (padapter->bSurpriseRemoved ||adapter->pwrctrlpriv.pnp_bstop_trx)!!!\n",__FUNCTION__);
-- return;
-- }
--
-- func = psdio->func;
-- claim_needed = rtw_sdio_claim_host_needed(func);
--
-- if (claim_needed)
-- sdio_claim_host(func);
-- sdio_f0_writeb(func, v, addr, err);
-- if (claim_needed)
-- sdio_release_host(func);
-- if (err && *err)
-- DBG_871X(KERN_ERR "%s: FAIL!(%d) addr=0x%05x val=0x%02x\n", __func__, *err, addr, v);
--
--_func_exit_;
--}
--
- /*
- * Return:
- * 0 Success
-@@ -263,37 +230,6 @@ _func_exit_;
- return err;
- }
-
--u8 _sd_read8(struct intf_hdl *pintfhdl, u32 addr, s32 *err)
--{
-- PADAPTER padapter;
-- struct dvobj_priv *psdiodev;
-- PSDIO_DATA psdio;
--
-- u8 v=0;
-- struct sdio_func *func;
--
--_func_enter_;
-- padapter = pintfhdl->padapter;
-- psdiodev = pintfhdl->pintf_dev;
-- psdio = &psdiodev->intf_data;
--
-- if(padapter->bSurpriseRemoved){
-- //DBG_871X(" %s (padapter->bSurpriseRemoved ||adapter->pwrctrlpriv.pnp_bstop_trx)!!!\n",__FUNCTION__);
-- return v;
-- }
--
-- func = psdio->func;
--
-- v = sdio_readb(func, addr, err);
--
-- if (err && *err)
-- DBG_871X(KERN_ERR "%s: FAIL!(%d) addr=0x%05x\n", __func__, *err, addr);
--
--_func_exit_;
--
-- return v;
--}
--
- u8 sd_read8(struct intf_hdl *pintfhdl, u32 addr, s32 *err)
- {
- PADAPTER padapter;
-@@ -330,108 +266,6 @@ _func_exit_;
- return v;
- }
-
--u16 sd_read16(struct intf_hdl *pintfhdl, u32 addr, s32 *err)
--{
-- PADAPTER padapter;
-- struct dvobj_priv *psdiodev;
-- PSDIO_DATA psdio;
--
-- u16 v=0;
-- struct sdio_func *func;
-- bool claim_needed;
--
--_func_enter_;
-- padapter = pintfhdl->padapter;
-- psdiodev = pintfhdl->pintf_dev;
-- psdio = &psdiodev->intf_data;
--
-- if(padapter->bSurpriseRemoved){
-- //DBG_871X(" %s (padapter->bSurpriseRemoved ||adapter->pwrctrlpriv.pnp_bstop_trx)!!!\n",__FUNCTION__);
-- return v;
-- }
--
-- func = psdio->func;
-- claim_needed = rtw_sdio_claim_host_needed(func);
--
-- if (claim_needed)
-- sdio_claim_host(func);
-- v = sdio_readw(func, addr, err);
-- if (claim_needed)
-- sdio_release_host(func);
-- if (err && *err)
-- DBG_871X(KERN_ERR "%s: FAIL!(%d) addr=0x%05x\n", __func__, *err, addr);
--
--_func_exit_;
--
-- return v;
--}
--
--u32 _sd_read32(struct intf_hdl *pintfhdl, u32 addr, s32 *err)
--{
-- PADAPTER padapter;
-- struct dvobj_priv *psdiodev;
-- PSDIO_DATA psdio;
--
-- u32 v=0;
-- struct sdio_func *func;
--
--_func_enter_;
-- padapter = pintfhdl->padapter;
-- psdiodev = pintfhdl->pintf_dev;
-- psdio = &psdiodev->intf_data;
--
-- if(padapter->bSurpriseRemoved){
-- //DBG_871X(" %s (padapter->bSurpriseRemoved ||adapter->pwrctrlpriv.pnp_bstop_trx)!!!\n",__FUNCTION__);
-- return v;
-- }
--
-- func = psdio->func;
--
-- v = sdio_readl(func, addr, err);
--
-- if (err && *err)
-- {
-- int i;
--
-- DBG_871X(KERN_ERR "%s: (%d) addr=0x%05x, val=0x%x\n", __func__, *err, addr, v);
--
-- *err = 0;
-- for(i=0; ibSurpriseRemoved = true;
-- }
--
-- if(rtw_inc_and_chk_continual_io_error(psdiodev) == true ){
-- padapter->bSurpriseRemoved = true;
-- break;
-- }
--
-- }
-- }
--
-- if (i==SD_IO_TRY_CNT)
-- DBG_871X(KERN_ERR "%s: FAIL!(%d) addr=0x%05x, val=0x%x, try_cnt=%d\n", __func__, *err, addr, v, i);
-- else
-- DBG_871X(KERN_ERR "%s: (%d) addr=0x%05x, val=0x%x, try_cnt=%d\n", __func__, *err, addr, v, i);
--
-- }
--
--_func_exit_;
--
-- return v;
--}
--
- u32 sd_read32(struct intf_hdl *pintfhdl, u32 addr, s32 *err)
- {
- PADAPTER padapter;
-@@ -535,97 +369,6 @@ _func_enter_;
-
- _func_exit_;
- }
--
--void sd_write16(struct intf_hdl *pintfhdl, u32 addr, u16 v, s32 *err)
--{
-- PADAPTER padapter;
-- struct dvobj_priv *psdiodev;
-- PSDIO_DATA psdio;
--
-- struct sdio_func *func;
-- bool claim_needed;
--
--_func_enter_;
-- padapter = pintfhdl->padapter;
-- psdiodev = pintfhdl->pintf_dev;
-- psdio = &psdiodev->intf_data;
--
-- if(padapter->bSurpriseRemoved){
-- //DBG_871X(" %s (padapter->bSurpriseRemoved ||adapter->pwrctrlpriv.pnp_bstop_trx)!!!\n",__FUNCTION__);
-- return ;
-- }
--
-- func = psdio->func;
-- claim_needed = rtw_sdio_claim_host_needed(func);
--
-- if (claim_needed)
-- sdio_claim_host(func);
-- sdio_writew(func, v, addr, err);
-- if (claim_needed)
-- sdio_release_host(func);
-- if (err && *err)
-- DBG_871X(KERN_ERR "%s: FAIL!(%d) addr=0x%05x val=0x%04x\n", __func__, *err, addr, v);
--
--_func_exit_;
--}
--
--void _sd_write32(struct intf_hdl *pintfhdl, u32 addr, u32 v, s32 *err)
--{
-- PADAPTER padapter;
-- struct dvobj_priv *psdiodev;
-- PSDIO_DATA psdio;
--
-- struct sdio_func *func;
--
--_func_enter_;
-- padapter = pintfhdl->padapter;
-- psdiodev = pintfhdl->pintf_dev;
-- psdio = &psdiodev->intf_data;
--
-- if(padapter->bSurpriseRemoved){
-- //DBG_871X(" %s (padapter->bSurpriseRemoved ||adapter->pwrctrlpriv.pnp_bstop_trx)!!!\n",__FUNCTION__);
-- return ;
-- }
--
-- func = psdio->func;
--
-- sdio_writel(func, v, addr, err);
--
-- if (err && *err)
-- {
-- int i;
--
-- DBG_871X(KERN_ERR "%s: (%d) addr=0x%05x val=0x%08x\n", __func__, *err, addr, v);
--
-- *err = 0;
-- for(i=0; ibSurpriseRemoved = true;
-- }
--
-- if(rtw_inc_and_chk_continual_io_error(psdiodev) == true ){
-- padapter->bSurpriseRemoved = true;
-- break;
-- }
-- }
-- }
--
-- if (i==SD_IO_TRY_CNT)
-- DBG_871X(KERN_ERR "%s: FAIL!(%d) addr=0x%05x val=0x%08x, try_cnt=%d\n", __func__, *err, addr, v, i);
-- else
-- DBG_871X(KERN_ERR "%s: (%d) addr=0x%05x val=0x%08x, try_cnt=%d\n", __func__, *err, addr, v, i);
--
-- }
--
--_func_exit_;
--}
-
- void sd_write32(struct intf_hdl *pintfhdl, u32 addr, u32 v, s32 *err)
- {
-diff -Nurp linux/3rdparty/rtl8723bs.old/os_dep/wifi_regd.c linux/3rdparty/rtl8723bs/os_dep/wifi_regd.c
---- linux/3rdparty/rtl8723bs.old/os_dep/wifi_regd.c 2015-05-10 14:36:05.743668736 +0300
-+++ linux/3rdparty/rtl8723bs/os_dep/wifi_regd.c 2015-05-07 17:46:55.000000000 +0300
-@@ -164,48 +164,12 @@ static void _rtw_reg_apply_flags(struct
- }
- }
-
--static void _rtw_reg_apply_world_flags(struct wiphy *wiphy,
-- enum nl80211_reg_initiator initiator,
-- struct rtw_regulatory *reg)
--{
-- //_rtw_reg_apply_beaconing_flags(wiphy, initiator);
-- //_rtw_reg_apply_active_scan_flags(wiphy, initiator);
-- return;
--}
--
- static int _rtw_reg_notifier_apply(struct wiphy *wiphy,
- struct regulatory_request *request,
- struct rtw_regulatory *reg)
- {
--
- /* Hard code flags */
- _rtw_reg_apply_flags(wiphy);
--
-- switch (request->initiator) {
-- case NL80211_REGDOM_SET_BY_DRIVER:
-- DBG_8192C("%s: %s\n", __func__, "NL80211_REGDOM_SET_BY_DRIVER");
-- _rtw_reg_apply_world_flags(wiphy, NL80211_REGDOM_SET_BY_DRIVER,
-- reg);
-- break;
-- case NL80211_REGDOM_SET_BY_CORE:
-- DBG_8192C("%s: %s\n", __func__,
-- "NL80211_REGDOM_SET_BY_CORE to DRV");
-- _rtw_reg_apply_world_flags(wiphy, NL80211_REGDOM_SET_BY_DRIVER,
-- reg);
-- break;
-- case NL80211_REGDOM_SET_BY_USER:
-- DBG_8192C("%s: %s\n", __func__,
-- "NL80211_REGDOM_SET_BY_USER to DRV");
-- _rtw_reg_apply_world_flags(wiphy, NL80211_REGDOM_SET_BY_DRIVER,
-- reg);
-- break;
-- case NL80211_REGDOM_SET_BY_COUNTRY_IE:
-- DBG_8192C("%s: %s\n", __func__,
-- "NL80211_REGDOM_SET_BY_COUNTRY_IE");
-- _rtw_reg_apply_world_flags(wiphy, request->initiator, reg);
-- break;
-- }
--
- return 0;
- }
-
-@@ -235,7 +199,6 @@ static void _rtw_regd_init_wiphy(struct
-
- /* Hard code flags */
- _rtw_reg_apply_flags(wiphy);
-- _rtw_reg_apply_world_flags(wiphy, NL80211_REGDOM_SET_BY_DRIVER, reg);
- }
-
- int rtw_regd_init(_adapter * padapter,
-diff -Nurp linux/3rdparty/rtl8723bs.old/os_dep/xmit_linux.c linux/3rdparty/rtl8723bs/os_dep/xmit_linux.c
---- linux/3rdparty/rtl8723bs.old/os_dep/xmit_linux.c 2015-05-10 14:36:05.743668736 +0300
-+++ linux/3rdparty/rtl8723bs/os_dep/xmit_linux.c 2015-05-07 17:46:55.000000000 +0300
-@@ -98,7 +98,7 @@ void rtw_os_xmit_resource_free(_adapter
- {
- if (free_sz > 0 ) {
- if(pxmitbuf->pallocated_buf)
-- rtw_mfree(pxmitbuf->pallocated_buf, free_sz);
-+ kfree(pxmitbuf->pallocated_buf);
- }
- }
-
-@@ -121,7 +121,7 @@ void rtw_os_pkt_complete(_adapter *padap
- netif_wake_subqueue(padapter->pnetdev, queue);
- }
-
-- rtw_skb_free(pkt);
-+ dev_kfree_skb_any(pkt);
- }
-
- void rtw_os_xmit_complete(_adapter *padapter, struct xmit_frame *pxframe)
-@@ -139,7 +139,7 @@ void rtw_os_xmit_schedule(_adapter *pada
- if(!padapter)
- return;
-
-- if (_rtw_queue_empty(&padapter->xmitpriv.pending_xmitbuf_queue) == false)
-+ if (!list_empty(&padapter->xmitpriv.pending_xmitbuf_queue.queue))
- up(&pri_adapter->xmitpriv.xmit_sema);
- }
-
-@@ -163,7 +163,6 @@ static void rtw_check_xmit_resource(_ada
- }
- }
-
--#ifdef CONFIG_TX_MCAST2UNI
- static int rtw_mlcst2unicst(_adapter *padapter, struct sk_buff *skb)
- {
- struct sta_priv *pstapriv = &padapter->stapriv;
-@@ -182,12 +181,12 @@ static int rtw_mlcst2unicst(_adapter *pa
-
- DBG_COUNTER(padapter->tx_logs.os_tx_m2u);
-
-- _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_lock_bh(&pstapriv->asoc_list_lock);
- phead = &pstapriv->asoc_list;
- plist = get_next(phead);
-
- //free sta asoc_queue
-- while ((rtw_end_of_queue_search(phead, plist)) == false) {
-+ while (phead != plist) {
- int stainfo_offset;
- psta = LIST_CONTAINOR(plist, struct sta_info, asoc_list);
- plist = get_next(plist);
-@@ -197,7 +196,7 @@ static int rtw_mlcst2unicst(_adapter *pa
- chk_alive_list[chk_alive_num++] = stainfo_offset;
- }
- }
-- _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ spin_unlock_bh(&pstapriv->asoc_list_lock);
-
- for (i = 0; i < chk_alive_num; i++) {
- psta = rtw_get_stainfo_by_offset(pstapriv, chk_alive_list[i]);
-@@ -228,31 +227,27 @@ static int rtw_mlcst2unicst(_adapter *pa
- DBG_COUNTER(padapter->tx_logs.os_tx_m2u_entry_err_xmit);
- DBG_871X("%s()-%d: rtw_xmit() return error!\n", __FUNCTION__, __LINE__);
- pxmitpriv->tx_drop++;
-- rtw_skb_free(newskb);
-+ dev_kfree_skb_any(newskb);
- }
- } else {
- DBG_COUNTER(padapter->tx_logs.os_tx_m2u_entry_err_skb);
- DBG_871X("%s-%d: rtw_skb_copy() failed!\n", __FUNCTION__, __LINE__);
- pxmitpriv->tx_drop++;
-- //rtw_skb_free(skb);
-+ //dev_kfree_skb_any(skb);
- return false; // Caller shall tx this multicast frame via normal way.
- }
- }
-
-- rtw_skb_free(skb);
-+ dev_kfree_skb_any(skb);
- return true;
- }
--#endif // CONFIG_TX_MCAST2UNI
--
-
- int _rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev)
- {
- _adapter *padapter = (_adapter *)rtw_netdev_priv(pnetdev);
- struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
--#ifdef CONFIG_TX_MCAST2UNI
- struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
- extern int rtw_mc2u_disable;
--#endif // CONFIG_TX_MCAST2UNI
- s32 res = 0;
- u16 queue;
-
-@@ -277,7 +272,6 @@ _func_enter_;
-
- rtw_check_xmit_resource(padapter, pkt);
-
--#ifdef CONFIG_TX_MCAST2UNI
- if ( !rtw_mc2u_disable
- && check_fwstate(pmlmepriv, WIFI_AP_STATE) == true
- && ( IP_MCAST_MAC(pkt->data)
-@@ -299,8 +293,7 @@ _func_enter_;
- //DBG_871X("!m2u );
- DBG_COUNTER(padapter->tx_logs.os_tx_m2u_stop);
- }
-- }
--#endif // CONFIG_TX_MCAST2UNI
-+ }
-
- res = rtw_xmit(padapter, &pkt);
- if (res < 0) {
-@@ -315,7 +308,7 @@ _func_enter_;
-
- drop_packet:
- pxmitpriv->tx_drop++;
-- rtw_skb_free(pkt);
-+ dev_kfree_skb_any(pkt);
- RT_TRACE(_module_xmit_osdep_c_, _drv_notice_, ("rtw_xmit_entry: drop, tx_drop=%d\n", (u32)pxmitpriv->tx_drop));
-
- exit:
diff --git a/kernel/kernel/files/patches/mageia/3rd-rtl8723bs.patch b/kernel/kernel/files/patches/mageia/3rd-rtl8723bs.patch
index 5130f850..5e355dd0 100644
--- a/kernel/kernel/files/patches/mageia/3rd-rtl8723bs.patch
+++ b/kernel/kernel/files/patches/mageia/3rd-rtl8723bs.patch
@@ -1,31 +1,202 @@
-From: git://github.com/lwfinger/rtl8723bs
+From https://github.com/hadess/rtl8723bs
-Topmost commit:
+Tpomost commit:
-commit af5898f436fdb938183838fb53873c51440088dc
+commit 9750337e13af3e3870fabd5c3dd9d170bd0953e4
Author: Larry Finger
-Date: Fri Jan 23 13:02:04 2015 -0600
+Date: Mon Nov 9 12:00:56 2015 -0600
+
+ rtl8723bs: Remove extraneous variable
- rtl8723bs: Add suitable .gitignore
-
Signed-off-by: Larry Finger
-
-
-https://bugs.mageia.org/show_bug.cgi?id=15874
-
Signed-off-by: Thomas Backlund
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/core/rtw_ap.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_ap.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_ap.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,2695 @@
+ 3rdparty/rtl8723bs/Kconfig | 11
+ 3rdparty/rtl8723bs/Makefile | 250
+ 3rdparty/rtl8723bs/core/rtw_ap.c | 2479 +++++++
+ 3rdparty/rtl8723bs/core/rtw_btcoex.c | 253
+ 3rdparty/rtl8723bs/core/rtw_cmd.c | 2322 ++++++
+ 3rdparty/rtl8723bs/core/rtw_debug.c | 1477 ++++
+ 3rdparty/rtl8723bs/core/rtw_eeprom.c | 375 +
+ 3rdparty/rtl8723bs/core/rtw_efuse.c | 654 +
+ 3rdparty/rtl8723bs/core/rtw_ieee80211.c | 1488 ++++
+ 3rdparty/rtl8723bs/core/rtw_io.c | 203
+ 3rdparty/rtl8723bs/core/rtw_ioctl_set.c | 736 ++
+ 3rdparty/rtl8723bs/core/rtw_mlme.c | 3331 +++++++++
+ 3rdparty/rtl8723bs/core/rtw_mlme_ext.c | 7376 ++++++++++++++++++++++
+ 3rdparty/rtl8723bs/core/rtw_odm.c | 195
+ 3rdparty/rtl8723bs/core/rtw_pwrctrl.c | 1521 ++++
+ 3rdparty/rtl8723bs/core/rtw_recv.c | 2931 ++++++++
+ 3rdparty/rtl8723bs/core/rtw_rf.c | 66
+ 3rdparty/rtl8723bs/core/rtw_security.c | 2486 +++++++
+ 3rdparty/rtl8723bs/core/rtw_sta_mgt.c | 646 +
+ 3rdparty/rtl8723bs/core/rtw_wlan_util.c | 2542 +++++++
+ 3rdparty/rtl8723bs/core/rtw_xmit.c | 3263 +++++++++
+ 3rdparty/rtl8723bs/hal/Hal8723BPwrSeq.c | 115
+ 3rdparty/rtl8723bs/hal/Hal8723BReg.h | 442 +
+ 3rdparty/rtl8723bs/hal/HalBtc8723b1Ant.c | 3547 ++++++++++
+ 3rdparty/rtl8723bs/hal/HalBtc8723b1Ant.h | 243
+ 3rdparty/rtl8723bs/hal/HalBtc8723b2Ant.c | 4077 ++++++++++++
+ 3rdparty/rtl8723bs/hal/HalBtc8723b2Ant.h | 205
+ 3rdparty/rtl8723bs/hal/HalBtcOutSrc.h | 706 ++
+ 3rdparty/rtl8723bs/hal/HalHWImg8723B_BB.c | 612 +
+ 3rdparty/rtl8723bs/hal/HalHWImg8723B_BB.h | 48
+ 3rdparty/rtl8723bs/hal/HalHWImg8723B_MAC.c | 275
+ 3rdparty/rtl8723bs/hal/HalHWImg8723B_MAC.h | 28
+ 3rdparty/rtl8723bs/hal/HalHWImg8723B_RF.c | 638 +
+ 3rdparty/rtl8723bs/hal/HalHWImg8723B_RF.h | 49
+ 3rdparty/rtl8723bs/hal/HalPhyRf.c | 394 +
+ 3rdparty/rtl8723bs/hal/HalPhyRf.h | 75
+ 3rdparty/rtl8723bs/hal/HalPhyRf_8723B.c | 2171 ++++++
+ 3rdparty/rtl8723bs/hal/HalPhyRf_8723B.h | 100
+ 3rdparty/rtl8723bs/hal/HalPwrSeqCmd.c | 166
+ 3rdparty/rtl8723bs/hal/Mp_Precomp.h | 33
+ 3rdparty/rtl8723bs/hal/hal_btcoex.c | 1754 +++++
+ 3rdparty/rtl8723bs/hal/hal_com.c | 1464 ++++
+ 3rdparty/rtl8723bs/hal/hal_com_phycfg.c | 3582 ++++++++++
+ 3rdparty/rtl8723bs/hal/hal_intf.c | 478 +
+ 3rdparty/rtl8723bs/hal/hal_phy.c | 272
+ 3rdparty/rtl8723bs/hal/hal_sdio.c | 106
+ 3rdparty/rtl8723bs/hal/odm.c | 1630 ++++
+ 3rdparty/rtl8723bs/hal/odm.h | 1558 ++++
+ 3rdparty/rtl8723bs/hal/odm_AntDiv.c | 74
+ 3rdparty/rtl8723bs/hal/odm_AntDiv.h | 38
+ 3rdparty/rtl8723bs/hal/odm_CfoTracking.c | 275
+ 3rdparty/rtl8723bs/hal/odm_CfoTracking.h | 48
+ 3rdparty/rtl8723bs/hal/odm_DIG.c | 1104 +++
+ 3rdparty/rtl8723bs/hal/odm_DIG.h | 263
+ 3rdparty/rtl8723bs/hal/odm_DynamicBBPowerSaving.c | 107
+ 3rdparty/rtl8723bs/hal/odm_DynamicBBPowerSaving.h | 46
+ 3rdparty/rtl8723bs/hal/odm_DynamicTxPower.c | 32
+ 3rdparty/rtl8723bs/hal/odm_DynamicTxPower.h | 40
+ 3rdparty/rtl8723bs/hal/odm_EdcaTurboCheck.c | 187
+ 3rdparty/rtl8723bs/hal/odm_EdcaTurboCheck.h | 41
+ 3rdparty/rtl8723bs/hal/odm_HWConfig.c | 608 +
+ 3rdparty/rtl8723bs/hal/odm_HWConfig.h | 179
+ 3rdparty/rtl8723bs/hal/odm_NoiseMonitor.c | 172
+ 3rdparty/rtl8723bs/hal/odm_NoiseMonitor.h | 44
+ 3rdparty/rtl8723bs/hal/odm_PathDiv.c | 34
+ 3rdparty/rtl8723bs/hal/odm_PathDiv.h | 29
+ 3rdparty/rtl8723bs/hal/odm_RTL8723B.c | 49
+ 3rdparty/rtl8723bs/hal/odm_RTL8723B.h | 22
+ 3rdparty/rtl8723bs/hal/odm_RegConfig8723B.c | 189
+ 3rdparty/rtl8723bs/hal/odm_RegConfig8723B.h | 80
+ 3rdparty/rtl8723bs/hal/odm_RegDefine11N.h | 172
+ 3rdparty/rtl8723bs/hal/odm_debug.c | 52
+ 3rdparty/rtl8723bs/hal/odm_debug.h | 154
+ 3rdparty/rtl8723bs/hal/odm_interface.h | 60
+ 3rdparty/rtl8723bs/hal/odm_precomp.h | 60
+ 3rdparty/rtl8723bs/hal/odm_reg.h | 103
+ 3rdparty/rtl8723bs/hal/odm_types.h | 102
+ 3rdparty/rtl8723bs/hal/rtl8723b_cmd.c | 2412 +++++++
+ 3rdparty/rtl8723bs/hal/rtl8723b_dm.c | 314
+ 3rdparty/rtl8723bs/hal/rtl8723b_hal_init.c | 4844 ++++++++++++++
+ 3rdparty/rtl8723bs/hal/rtl8723b_phycfg.c | 1070 +++
+ 3rdparty/rtl8723bs/hal/rtl8723b_rf6052.c | 241
+ 3rdparty/rtl8723bs/hal/rtl8723b_rxdesc.c | 87
+ 3rdparty/rtl8723bs/hal/rtl8723bs_recv.c | 528 +
+ 3rdparty/rtl8723bs/hal/rtl8723bs_xmit.c | 652 +
+ 3rdparty/rtl8723bs/hal/sdio_halinit.c | 1959 +++++
+ 3rdparty/rtl8723bs/hal/sdio_ops.c | 1262 +++
+ 3rdparty/rtl8723bs/include/Hal8192CPhyReg.h | 1126 +++
+ 3rdparty/rtl8723bs/include/Hal8723BPhyCfg.h | 128
+ 3rdparty/rtl8723bs/include/Hal8723BPhyReg.h | 77
+ 3rdparty/rtl8723bs/include/Hal8723BPwrSeq.h | 232
+ 3rdparty/rtl8723bs/include/HalPwrSeqCmd.h | 132
+ 3rdparty/rtl8723bs/include/HalVerDef.h | 127
+ 3rdparty/rtl8723bs/include/autoconf.h | 67
+ 3rdparty/rtl8723bs/include/basic_types.h | 209
+ 3rdparty/rtl8723bs/include/cmd_osdep.h | 26
+ 3rdparty/rtl8723bs/include/drv_conf.h | 37
+ 3rdparty/rtl8723bs/include/drv_types.h | 720 ++
+ 3rdparty/rtl8723bs/include/drv_types_sdio.h | 39
+ 3rdparty/rtl8723bs/include/ethernet.h | 22
+ 3rdparty/rtl8723bs/include/hal_btcoex.h | 68
+ 3rdparty/rtl8723bs/include/hal_com.h | 309
+ 3rdparty/rtl8723bs/include/hal_com_h2c.h | 293
+ 3rdparty/rtl8723bs/include/hal_com_phycfg.h | 275
+ 3rdparty/rtl8723bs/include/hal_com_reg.h | 1725 +++++
+ 3rdparty/rtl8723bs/include/hal_data.h | 485 +
+ 3rdparty/rtl8723bs/include/hal_intf.h | 410 +
+ 3rdparty/rtl8723bs/include/hal_pg.h | 81
+ 3rdparty/rtl8723bs/include/hal_phy.h | 183
+ 3rdparty/rtl8723bs/include/hal_phy_reg.h | 25
+ 3rdparty/rtl8723bs/include/hal_sdio.h | 26
+ 3rdparty/rtl8723bs/include/ieee80211.h | 1345 ++++
+ 3rdparty/rtl8723bs/include/ioctl_cfg80211.h | 132
+ 3rdparty/rtl8723bs/include/mlme_osdep.h | 27
+ 3rdparty/rtl8723bs/include/osdep_intf.h | 88
+ 3rdparty/rtl8723bs/include/osdep_service.h | 281
+ 3rdparty/rtl8723bs/include/osdep_service_linux.h | 178
+ 3rdparty/rtl8723bs/include/recv_osdep.h | 48
+ 3rdparty/rtl8723bs/include/rtl8192c_recv.h | 50
+ 3rdparty/rtl8723bs/include/rtl8192c_rf.h | 39
+ 3rdparty/rtl8723bs/include/rtl8723b_cmd.h | 199
+ 3rdparty/rtl8723bs/include/rtl8723b_dm.h | 41
+ 3rdparty/rtl8723bs/include/rtl8723b_hal.h | 279
+ 3rdparty/rtl8723bs/include/rtl8723b_recv.h | 144
+ 3rdparty/rtl8723bs/include/rtl8723b_rf.h | 26
+ 3rdparty/rtl8723bs/include/rtl8723b_spec.h | 262
+ 3rdparty/rtl8723bs/include/rtl8723b_xmit.h | 458 +
+ 3rdparty/rtl8723bs/include/rtw_ap.h | 47
+ 3rdparty/rtl8723bs/include/rtw_beamforming.h | 135
+ 3rdparty/rtl8723bs/include/rtw_br_ext.h | 63
+ 3rdparty/rtl8723bs/include/rtw_btcoex.h | 64
+ 3rdparty/rtl8723bs/include/rtw_byteorder.h | 24
+ 3rdparty/rtl8723bs/include/rtw_cmd.h | 980 ++
+ 3rdparty/rtl8723bs/include/rtw_debug.h | 355 +
+ 3rdparty/rtl8723bs/include/rtw_eeprom.h | 128
+ 3rdparty/rtl8723bs/include/rtw_efuse.h | 132
+ 3rdparty/rtl8723bs/include/rtw_event.h | 117
+ 3rdparty/rtl8723bs/include/rtw_ht.h | 118
+ 3rdparty/rtl8723bs/include/rtw_io.h | 373 +
+ 3rdparty/rtl8723bs/include/rtw_ioctl.h | 80
+ 3rdparty/rtl8723bs/include/rtw_ioctl_set.h | 41
+ 3rdparty/rtl8723bs/include/rtw_mlme.h | 695 ++
+ 3rdparty/rtl8723bs/include/rtw_mlme_ext.h | 888 ++
+ 3rdparty/rtl8723bs/include/rtw_mp.h | 512 +
+ 3rdparty/rtl8723bs/include/rtw_odm.h | 36
+ 3rdparty/rtl8723bs/include/rtw_pwrctrl.h | 375 +
+ 3rdparty/rtl8723bs/include/rtw_qos.h | 27
+ 3rdparty/rtl8723bs/include/rtw_recv.h | 553 +
+ 3rdparty/rtl8723bs/include/rtw_rf.h | 159
+ 3rdparty/rtl8723bs/include/rtw_security.h | 440 +
+ 3rdparty/rtl8723bs/include/rtw_version.h | 2
+ 3rdparty/rtl8723bs/include/rtw_wifi_regd.h | 28
+ 3rdparty/rtl8723bs/include/rtw_xmit.h | 528 +
+ 3rdparty/rtl8723bs/include/sdio_hal.h | 28
+ 3rdparty/rtl8723bs/include/sdio_ops.h | 49
+ 3rdparty/rtl8723bs/include/sdio_ops_linux.h | 40
+ 3rdparty/rtl8723bs/include/sdio_osintf.h | 24
+ 3rdparty/rtl8723bs/include/sta_info.h | 392 +
+ 3rdparty/rtl8723bs/include/wifi.h | 1158 +++
+ 3rdparty/rtl8723bs/include/wlan_bssdef.h | 278
+ 3rdparty/rtl8723bs/include/xmit_osdep.h | 54
+ 3rdparty/rtl8723bs/os_dep/ioctl_cfg80211.c | 3599 ++++++++++
+ 3rdparty/rtl8723bs/os_dep/ioctl_linux.c | 5820 +++++++++++++++++
+ 3rdparty/rtl8723bs/os_dep/mlme_linux.c | 206
+ 3rdparty/rtl8723bs/os_dep/os_intfs.c | 1916 +++++
+ 3rdparty/rtl8723bs/os_dep/osdep_service.c | 481 +
+ 3rdparty/rtl8723bs/os_dep/recv_linux.c | 366 +
+ 3rdparty/rtl8723bs/os_dep/rtw_proc.c | 786 ++
+ 3rdparty/rtl8723bs/os_dep/rtw_proc.h | 45
+ 3rdparty/rtl8723bs/os_dep/sdio_intf.c | 725 ++
+ 3rdparty/rtl8723bs/os_dep/sdio_ops_linux.c | 599 +
+ 3rdparty/rtl8723bs/os_dep/wifi_regd.c | 218
+ 3rdparty/rtl8723bs/os_dep/xmit_linux.c | 298
+ 173 files changed, 111507 insertions(+)
+
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_ap.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_ap.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_ap.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_ap.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,2479 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
-+ *
++ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
@@ -35,110 +206,98 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
+#define _RTW_AP_C_
+
+#include
++#include
+
++extern unsigned char RTW_WPA_OUI[];
++extern unsigned char WMM_OUI[];
++extern unsigned char WPS_OUI[];
++extern unsigned char P2P_OUI[];
++extern unsigned char WFD_OUI[];
+
-+#ifdef CONFIG_AP_MODE
-+
-+extern unsigned char RTW_WPA_OUI[];
-+extern unsigned char WMM_OUI[];
-+extern unsigned char WPS_OUI[];
-+extern unsigned char P2P_OUI[];
-+extern unsigned char WFD_OUI[];
-+
-+void init_mlme_ap_info(_adapter *padapter)
++void init_mlme_ap_info(struct adapter *padapter)
+{
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ struct sta_priv *pstapriv = &padapter->stapriv;
++ struct sta_priv *pstapriv = &padapter->stapriv;
+ struct wlan_acl_pool *pacl_list = &pstapriv->acl_list;
-+
+
-+ spin_lock_init(&pmlmepriv->bcn_update_lock);
+
-+ //for ACL
++ spin_lock_init(&pmlmepriv->bcn_update_lock);
++
++ /* for ACL */
+ _rtw_init_queue(&pacl_list->acl_node_q);
+
-+ //pmlmeext->bstart_bss = false;
++ /* pmlmeext->bstart_bss = false; */
+
+ start_ap_mode(padapter);
+}
+
-+void free_mlme_ap_info(_adapter *padapter)
++void free_mlme_ap_info(struct adapter *padapter)
+{
-+ _irqL irqL;
-+ struct sta_info *psta=NULL;
-+ struct sta_priv *pstapriv = &padapter->stapriv;
++ struct sta_info *psta = NULL;
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
-+ //stop_ap_mode(padapter);
++ /* stop_ap_mode(padapter); */
+
+ pmlmepriv->update_bcn = false;
-+ pmlmeext->bstart_bss = false;
-+
++ pmlmeext->bstart_bss = false;
++
+ rtw_sta_flush(padapter);
+
+ pmlmeinfo->state = _HW_STATE_NOLINK_;
+
-+ //free_assoc_sta_resources
++ /* free_assoc_sta_resources */
+ rtw_free_all_stainfo(padapter);
+
-+ //free bc/mc sta_info
-+ psta = rtw_get_bcmc_stainfo(padapter);
-+ _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
++ /* free bc/mc sta_info */
++ psta = rtw_get_bcmc_stainfo(padapter);
+ rtw_free_stainfo(padapter, psta);
-+ _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
+}
+
-+static void update_BCNTIM(_adapter *padapter)
++static void update_BCNTIM(struct adapter *padapter)
+{
+ struct sta_priv *pstapriv = &padapter->stapriv;
+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *pnetwork_mlmeext = &(pmlmeinfo->network);
++ struct wlan_bssid_ex *pnetwork_mlmeext = &(pmlmeinfo->network);
+ unsigned char *pie = pnetwork_mlmeext->IEs;
+
-+ //DBG_871X("%s\n", __FUNCTION__);
-+
-+ //update TIM IE
-+ //if(pstapriv->tim_bitmap)
-+ if(true)
++ /* DBG_871X("%s\n", __func__); */
++
++ /* update TIM IE */
++ /* if (pstapriv->tim_bitmap) */
++ if (true)
+ {
-+ u8 *p, *dst_ie, *premainder_ie=NULL, *pbackup_remainder_ie=NULL;
-+ u16 tim_bitmap_le;
-+ uint offset, tmp_len, tim_ielen, tim_ie_offset, remainder_ielen;
-+
++ u8 *p, *dst_ie, *premainder_ie = NULL, *pbackup_remainder_ie = NULL;
++ __le16 tim_bitmap_le;
++ uint offset, tmp_len, tim_ielen, tim_ie_offset, remainder_ielen;
++
+ tim_bitmap_le = cpu_to_le16(pstapriv->tim_bitmap);
+
+ p = rtw_get_ie(pie + _FIXED_IE_LENGTH_, _TIM_IE_, &tim_ielen, pnetwork_mlmeext->IELength - _FIXED_IE_LENGTH_);
+ if (p != NULL && tim_ielen>0)
+ {
+ tim_ielen += 2;
-+
++
+ premainder_ie = p+tim_ielen;
+
+ tim_ie_offset = (sint)(p -pie);
-+
++
+ remainder_ielen = pnetwork_mlmeext->IELength - tim_ie_offset - tim_ielen;
+
-+ //append TIM IE from dst_ie offset
++ /* append TIM IE from dst_ie offset */
+ dst_ie = p;
+ }
+ else
+ {
+ tim_ielen = 0;
+
-+ //calucate head_len
++ /* calucate head_len */
+ offset = _FIXED_IE_LENGTH_;
+
+ /* get ssid_ie len */
@@ -146,200 +305,82 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ if (p != NULL)
+ offset += tmp_len+2;
+
-+ // get supported rates len
-+ p = rtw_get_ie(pie + _BEACON_IE_OFFSET_, _SUPPORTEDRATES_IE_, &tmp_len, (pnetwork_mlmeext->IELength - _BEACON_IE_OFFSET_));
-+ if (p != NULL)
-+ {
++ /* get supported rates len */
++ p = rtw_get_ie(pie + _BEACON_IE_OFFSET_, _SUPPORTEDRATES_IE_, &tmp_len, (pnetwork_mlmeext->IELength - _BEACON_IE_OFFSET_));
++ if (p != NULL)
++ {
+ offset += tmp_len+2;
+ }
+
-+ //DS Parameter Set IE, len=3
++ /* DS Parameter Set IE, len =3 */
+ offset += 3;
+
+ premainder_ie = pie + offset;
+
-+ remainder_ielen = pnetwork_mlmeext->IELength - offset - tim_ielen;
++ remainder_ielen = pnetwork_mlmeext->IELength - offset - tim_ielen;
+
-+ //append TIM IE from offset
++ /* append TIM IE from offset */
+ dst_ie = pie + offset;
-+
++
+ }
+
-+
-+ if(remainder_ielen>0)
++
++ if (remainder_ielen>0)
+ {
+ pbackup_remainder_ie = rtw_malloc(remainder_ielen);
-+ if(pbackup_remainder_ie && premainder_ie)
++ if (pbackup_remainder_ie && premainder_ie)
+ memcpy(pbackup_remainder_ie, premainder_ie, remainder_ielen);
-+ }
-+
-+ *dst_ie++=_TIM_IE_;
++ }
+
-+ if((pstapriv->tim_bitmap&0xff00) && (pstapriv->tim_bitmap&0x00fe))
++ *dst_ie++ = _TIM_IE_;
++
++ if ((pstapriv->tim_bitmap&0xff00) && (pstapriv->tim_bitmap&0x00fe))
+ tim_ielen = 5;
+ else
+ tim_ielen = 4;
+
-+ *dst_ie++= tim_ielen;
-+
-+ *dst_ie++=0;//DTIM count
-+ *dst_ie++=1;//DTIM peroid
-+
-+ if(pstapriv->tim_bitmap&BIT(0))//for bc/mc frames
-+ *dst_ie++ = BIT(0);//bitmap ctrl
++ *dst_ie++ = tim_ielen;
++
++ *dst_ie++ = 0;/* DTIM count */
++ *dst_ie++ = 1;/* DTIM peroid */
++
++ if (pstapriv->tim_bitmap&BIT(0))/* for bc/mc frames */
++ *dst_ie++ = BIT(0);/* bitmap ctrl */
+ else
+ *dst_ie++ = 0;
+
-+ if(tim_ielen==4)
++ if (tim_ielen ==4)
+ {
-+ u8 pvb=0;
-+
-+ if(pstapriv->tim_bitmap&0x00fe)
-+ pvb = (u8)tim_bitmap_le;
-+ else if(pstapriv->tim_bitmap&0xff00)
-+ pvb = (u8)(tim_bitmap_le>>8);
-+ else
-+ pvb = (u8)tim_bitmap_le;
++ __le16 pvb;
+
-+ *dst_ie++ = pvb;
-+
-+ }
-+ else if(tim_ielen==5)
++ if (pstapriv->tim_bitmap&0xff00)
++ pvb = cpu_to_le16(pstapriv->tim_bitmap >> 8);
++ else
++ pvb = tim_bitmap_le;
++
++ *dst_ie++ = le16_to_cpu(pvb);
++
++ }
++ else if (tim_ielen ==5)
+ {
+ memcpy(dst_ie, &tim_bitmap_le, 2);
-+ dst_ie+=2;
-+ }
-+
-+ //copy remainder IE
-+ if(pbackup_remainder_ie)
++ dst_ie+=2;
++ }
++
++ /* copy remainder IE */
++ if (pbackup_remainder_ie)
+ {
+ memcpy(dst_ie, pbackup_remainder_ie, remainder_ielen);
+
-+ rtw_mfree(pbackup_remainder_ie, remainder_ielen);
-+ }
++ kfree(pbackup_remainder_ie);
++ }
+
+ offset = (uint)(dst_ie - pie);
+ pnetwork_mlmeext->IELength = offset + remainder_ielen;
-+
++
+ }
+}
+
-+void rtw_add_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index, u8 *data, u8 len)
-+{
-+ PNDIS_802_11_VARIABLE_IEs pIE;
-+ u8 bmatch = false;
-+ u8 *pie = pnetwork->IEs;
-+ u8 *p=NULL, *dst_ie=NULL, *premainder_ie=NULL, *pbackup_remainder_ie=NULL;
-+ u32 i, offset, ielen, ie_offset, remainder_ielen = 0;
-+
-+ for (i = sizeof(NDIS_802_11_FIXED_IEs); i < pnetwork->IELength;)
-+ {
-+ pIE = (PNDIS_802_11_VARIABLE_IEs)(pnetwork->IEs + i);
-+
-+ if (pIE->ElementID > index)
-+ {
-+ break;
-+ }
-+ else if(pIE->ElementID == index) // already exist the same IE
-+ {
-+ p = (u8 *)pIE;
-+ ielen = pIE->Length;
-+ bmatch = true;
-+ break;
-+ }
-+
-+ p = (u8 *)pIE;
-+ ielen = pIE->Length;
-+ i += (pIE->Length + 2);
-+ }
-+
-+ if (p != NULL && ielen>0)
-+ {
-+ ielen += 2;
-+
-+ premainder_ie = p+ielen;
-+
-+ ie_offset = (sint)(p -pie);
-+
-+ remainder_ielen = pnetwork->IELength - ie_offset - ielen;
-+
-+ if(bmatch)
-+ dst_ie = p;
-+ else
-+ dst_ie = (p+ielen);
-+ }
-+
-+ if(dst_ie == NULL)
-+ return;
-+
-+ if(remainder_ielen>0)
-+ {
-+ pbackup_remainder_ie = rtw_malloc(remainder_ielen);
-+ if(pbackup_remainder_ie && premainder_ie)
-+ memcpy(pbackup_remainder_ie, premainder_ie, remainder_ielen);
-+ }
-+
-+ *dst_ie++=index;
-+ *dst_ie++=len;
-+
-+ memcpy(dst_ie, data, len);
-+ dst_ie+=len;
-+
-+ //copy remainder IE
-+ if(pbackup_remainder_ie)
-+ {
-+ memcpy(dst_ie, pbackup_remainder_ie, remainder_ielen);
-+
-+ rtw_mfree(pbackup_remainder_ie, remainder_ielen);
-+ }
-+
-+ offset = (uint)(dst_ie - pie);
-+ pnetwork->IELength = offset + remainder_ielen;
-+}
-+
-+void rtw_remove_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index)
-+{
-+ u8 *p, *dst_ie=NULL, *premainder_ie=NULL, *pbackup_remainder_ie=NULL;
-+ uint offset, ielen, ie_offset, remainder_ielen = 0;
-+ u8 *pie = pnetwork->IEs;
-+
-+ p = rtw_get_ie(pie + _FIXED_IE_LENGTH_, index, &ielen, pnetwork->IELength - _FIXED_IE_LENGTH_);
-+ if (p != NULL && ielen>0)
-+ {
-+ ielen += 2;
-+
-+ premainder_ie = p+ielen;
-+
-+ ie_offset = (sint)(p -pie);
-+
-+ remainder_ielen = pnetwork->IELength - ie_offset - ielen;
-+
-+ dst_ie = p;
-+ }
-+ else {
-+ return;
-+ }
-+
-+ if(remainder_ielen>0)
-+ {
-+ pbackup_remainder_ie = rtw_malloc(remainder_ielen);
-+ if(pbackup_remainder_ie && premainder_ie)
-+ memcpy(pbackup_remainder_ie, premainder_ie, remainder_ielen);
-+ }
-+
-+ //copy remainder IE
-+ if(pbackup_remainder_ie)
-+ {
-+ memcpy(dst_ie, pbackup_remainder_ie, remainder_ielen);
-+
-+ rtw_mfree(pbackup_remainder_ie, remainder_ielen);
-+ }
-+
-+ offset = (uint)(dst_ie - pie);
-+ pnetwork->IELength = offset + remainder_ielen;
-+}
-+
-+
+u8 chk_sta_is_alive(struct sta_info *psta);
+u8 chk_sta_is_alive(struct sta_info *psta)
+{
@@ -347,7 +388,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ DBG_871X("sta:"MAC_FMT", rssi:%d, rx:"STA_PKTS_FMT", expire_to:%u, %s%ssq_len:%u\n"
+ , MAC_ARG(psta->hwaddr)
+ , psta->rssi_stat.UndecoratedSmoothedPWDB
-+ //, STA_RX_PKTS_ARG(psta)
++ /* STA_RX_PKTS_ARG(psta) */
+ , STA_RX_PKTS_DIFF_ARG(psta)
+ , psta->expire_to
+ , psta->state&WIFI_SLEEP_STATE?"PS, ":""
@@ -361,94 +402,90 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ return true;
+}
+
-+void expire_timeout_chk(_adapter *padapter)
++void expire_timeout_chk(struct adapter *padapter)
+{
-+ _irqL irqL;
-+ _list *phead, *plist;
++ struct list_head *phead, *plist;
+ u8 updated = false;
-+ struct sta_info *psta=NULL;
++ struct sta_info *psta = NULL;
+ struct sta_priv *pstapriv = &padapter->stapriv;
+ u8 chk_alive_num = 0;
+ char chk_alive_list[NUM_STA];
+ int i;
+
+
-+ _enter_critical_bh(&pstapriv->auth_list_lock, &irqL);
-+
++ spin_lock_bh(&pstapriv->auth_list_lock);
++
+ phead = &pstapriv->auth_list;
+ plist = get_next(phead);
-+
-+ //check auth_queue
++
++ /* check auth_queue */
+ #ifdef DBG_EXPIRATION_CHK
-+ if (rtw_end_of_queue_search(phead, plist) == false) {
++ if (phead != plist) {
+ DBG_871X(FUNC_NDEV_FMT" auth_list, cnt:%u\n"
+ , FUNC_NDEV_ARG(padapter->pnetdev), pstapriv->auth_list_cnt);
+ }
+ #endif
-+ while ((rtw_end_of_queue_search(phead, plist)) == false)
++ while (phead != plist)
+ {
+ psta = LIST_CONTAINOR(plist, struct sta_info, auth_list);
+
+ plist = get_next(plist);
+
-+ if(psta->expire_to>0)
++ if (psta->expire_to>0)
+ {
+ psta->expire_to--;
+ if (psta->expire_to == 0)
+ {
-+ rtw_list_delete(&psta->auth_list);
++ list_del_init(&psta->auth_list);
+ pstapriv->auth_list_cnt--;
-+
++
+ DBG_871X("auth expire %02X%02X%02X%02X%02X%02X\n",
-+ psta->hwaddr[0],psta->hwaddr[1],psta->hwaddr[2],psta->hwaddr[3],psta->hwaddr[4],psta->hwaddr[5]);
-+
-+ _exit_critical_bh(&pstapriv->auth_list_lock, &irqL);
-+
-+ _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
++ psta->hwaddr[0], psta->hwaddr[1], psta->hwaddr[2], psta->hwaddr[3], psta->hwaddr[4], psta->hwaddr[5]);
++
++ spin_unlock_bh(&pstapriv->auth_list_lock);
++
+ rtw_free_stainfo(padapter, psta);
-+ _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+
-+ _enter_critical_bh(&pstapriv->auth_list_lock, &irqL);
-+ }
-+ }
-+
++
++ spin_lock_bh(&pstapriv->auth_list_lock);
++ }
++ }
++
+ }
+
-+ _exit_critical_bh(&pstapriv->auth_list_lock, &irqL);
++ spin_unlock_bh(&pstapriv->auth_list_lock);
+ psta = NULL;
-+
+
-+ _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+
++
++ spin_lock_bh(&pstapriv->asoc_list_lock);
++
+ phead = &pstapriv->asoc_list;
+ plist = get_next(phead);
+
-+ //check asoc_queue
++ /* check asoc_queue */
+ #ifdef DBG_EXPIRATION_CHK
-+ if (rtw_end_of_queue_search(phead, plist) == false) {
++ if (phead != plist) {
+ DBG_871X(FUNC_NDEV_FMT" asoc_list, cnt:%u\n"
+ , FUNC_NDEV_ARG(padapter->pnetdev), pstapriv->asoc_list_cnt);
+ }
+ #endif
-+ while ((rtw_end_of_queue_search(phead, plist)) == false)
++ while (phead != plist)
+ {
+ psta = LIST_CONTAINOR(plist, struct sta_info, asoc_list);
+ plist = get_next(plist);
+#ifdef CONFIG_AUTO_AP_MODE
-+ if(psta->isrc)
++ if (psta->isrc)
+ continue;
+#endif
+ if (chk_sta_is_alive(psta) || !psta->expire_to) {
+ psta->expire_to = pstapriv->expire_to;
+ psta->keep_alive_trycnt = 0;
-+ #ifdef CONFIG_TX_MCAST2UNI
+ psta->under_exist_checking = 0;
-+ #endif // CONFIG_TX_MCAST2UNI
+ } else {
-+ psta->expire_to--;
++ if (psta->expire_to > 0)
++ psta->expire_to--;
+ }
+
-+ if (psta->expire_to <= 0)
++ if (psta->expire_to == 0)
+ {
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+
@@ -460,17 +497,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+
+ if (psta->state & WIFI_SLEEP_STATE) {
+ if (!(psta->state & WIFI_STA_ALIVE_CHK_STATE)) {
-+ //to check if alive by another methods if staion is at ps mode.
++ /* to check if alive by another methods if staion is at ps mode. */
+ psta->expire_to = pstapriv->expire_to;
+ psta->state |= WIFI_STA_ALIVE_CHK_STATE;
+
-+ //DBG_871X("alive chk, sta:" MAC_FMT " is at ps mode!\n", MAC_ARG(psta->hwaddr));
++ /* DBG_871X("alive chk, sta:" MAC_FMT " is at ps mode!\n", MAC_ARG(psta->hwaddr)); */
+
-+ //to update bcn with tim_bitmap for this station
++ /* to update bcn with tim_bitmap for this station */
+ pstapriv->tim_bitmap |= BIT(psta->aid);
+ update_beacon(padapter, _TIM_IE_, NULL, true);
+
-+ if(!pmlmeext->active_keep_alive_check)
++ if (!pmlmeext->active_keep_alive_check)
+ continue;
+ }
+ }
@@ -484,17 +521,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+
+ continue;
+ }
-+ rtw_list_delete(&psta->asoc_list);
++ list_del_init(&psta->asoc_list);
+ pstapriv->asoc_list_cnt--;
-+ DBG_871X("asoc expire "MAC_FMT", state=0x%x\n", MAC_ARG(psta->hwaddr), psta->state);
++ DBG_871X("asoc expire "MAC_FMT", state = 0x%x\n", MAC_ARG(psta->hwaddr), psta->state);
+ updated = ap_free_sta(padapter, psta, false, WLAN_REASON_DEAUTH_LEAVING);
-+ }
++ }
+ else
+ {
+ /* TODO: Aging mechanism to digest frames in sleep_q to avoid running out of xmitframe */
+ if (psta->sleepq_len > (NR_XMITFRAME/pstapriv->asoc_list_cnt)
+ && padapter->xmitpriv.free_xmitframe_cnt < ((NR_XMITFRAME/pstapriv->asoc_list_cnt)/2)
-+ ){
++ ) {
+ DBG_871X("%s sta:"MAC_FMT", sleepq_len:%u, free_xmitframe_cnt:%u, asoc_list_cnt:%u, clear sleep_q\n", __func__
+ , MAC_ARG(psta->hwaddr)
+ , psta->sleepq_len, padapter->xmitpriv.free_xmitframe_cnt, pstapriv->asoc_list_cnt);
@@ -503,11 +540,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ }
+ }
+
-+ _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
++ spin_unlock_bh(&pstapriv->asoc_list_lock);
+
+if (chk_alive_num) {
+
-+ u8 backup_oper_channel=0;
++ u8 backup_oper_channel = 0;
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+ /* switch to correct channel of current network before issue keep-alive frames */
+ if (rtw_get_oper_ch(padapter) != pmlmeext->cur_channel) {
@@ -520,9 +557,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ int ret = _FAIL;
+
+ psta = rtw_get_stainfo_by_offset(pstapriv, chk_alive_list[i]);
-+ if(!(psta->state &_FW_LINKED))
-+ continue;
-+
++ if (!(psta->state &_FW_LINKED))
++ continue;
++
+ if (psta->state & WIFI_SLEEP_STATE)
+ ret = issue_nulldata(padapter, psta->hwaddr, 0, 1, 50);
+ else
@@ -538,20 +575,20 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ }
+ else if (psta->keep_alive_trycnt <= 3)
+ {
-+ DBG_871X("ack check for asoc expire, keep_alive_trycnt=%d\n", psta->keep_alive_trycnt);
++ DBG_871X("ack check for asoc expire, keep_alive_trycnt =%d\n", psta->keep_alive_trycnt);
+ psta->expire_to = 1;
+ continue;
+ }
+
+ psta->keep_alive_trycnt = 0;
-+ DBG_871X("asoc expire "MAC_FMT", state=0x%x\n", MAC_ARG(psta->hwaddr), psta->state);
-+ _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ if (rtw_is_list_empty(&psta->asoc_list)==false) {
-+ rtw_list_delete(&psta->asoc_list);
++ DBG_871X("asoc expire "MAC_FMT", state = 0x%x\n", MAC_ARG(psta->hwaddr), psta->state);
++ spin_lock_bh(&pstapriv->asoc_list_lock);
++ if (list_empty(&psta->asoc_list) ==false) {
++ list_del_init(&psta->asoc_list);
+ pstapriv->asoc_list_cnt--;
+ updated = ap_free_sta(padapter, psta, false, WLAN_REASON_DEAUTH_LEAVING);
+ }
-+ _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
++ spin_unlock_bh(&pstapriv->asoc_list_lock);
+
+ }
+
@@ -562,22 +599,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ associated_clients_update(padapter, updated);
+}
+
-+void add_RATid(_adapter *padapter, struct sta_info *psta, u8 rssi_level)
-+{
-+ int i;
-+ u8 rf_type;
++void add_RATid(struct adapter *padapter, struct sta_info *psta, u8 rssi_level)
++{
+ unsigned char sta_band = 0, shortGIrate = false;
-+ unsigned int tx_ra_bitmap=0;
-+ struct ht_priv *psta_ht = NULL;
++ unsigned int tx_ra_bitmap = 0;
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ WLAN_BSSID_EX *pcur_network = (WLAN_BSSID_EX *)&pmlmepriv->cur_network.network;
++ struct wlan_bssid_ex *pcur_network = (struct wlan_bssid_ex *)&pmlmepriv->cur_network.network;
+
-+ if(psta)
-+ psta_ht = &psta->htpriv;
-+ else
++ if (!psta)
+ return;
+
-+ if(!(psta->state & _FW_LINKED))
++ if (!(psta->state & _FW_LINKED))
+ return;
+
+ rtw_hal_update_sta_rate_mask(padapter, psta);
@@ -585,8 +617,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+
+ shortGIrate = query_ra_short_GI(psta);
+
-+ if ( pcur_network->Configuration.DSConfig > 14 ) {
-+
++ if (pcur_network->Configuration.DSConfig > 14) {
++
+ if (tx_ra_bitmap & 0xffff000)
+ sta_band |= WIRELESS_11_5N ;
+
@@ -605,45 +637,44 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+
+ psta->wireless_mode = sta_band;
+ psta->raid = rtw_hal_networktype_to_raid(padapter, psta);
-+
-+ if (psta->aid < NUM_STA)
++
++ if (psta->aid < NUM_STA)
+ {
-+ u8 arg[4] = {0};
++ u8 arg[4] = {0};
+
+ arg[0] = psta->mac_id;
+ arg[1] = psta->raid;
+ arg[2] = shortGIrate;
+ arg[3] = psta->init_rate;
+
-+ DBG_871X("%s=> mac_id:%d , raid:%d , shortGIrate=%d, bitmap=0x%x\n",
-+ __FUNCTION__ , psta->mac_id, psta->raid ,shortGIrate, tx_ra_bitmap);
++ DBG_871X("%s => mac_id:%d , raid:%d , shortGIrate =%d, bitmap = 0x%x\n",
++ __func__ , psta->mac_id, psta->raid , shortGIrate, tx_ra_bitmap);
+
+ rtw_hal_add_ra_tid(padapter, tx_ra_bitmap, arg, rssi_level);
+ }
-+ else
++ else
+ {
+ DBG_871X("station aid %d exceed the max number\n", psta->aid);
+ }
+
+}
+
-+void update_bmc_sta(_adapter *padapter)
++void update_bmc_sta(struct adapter *padapter)
+{
-+ _irqL irqL;
-+ unsigned char network_type;
++ unsigned char network_type;
+ int supportRateNum = 0;
-+ unsigned int tx_ra_bitmap=0;
++ unsigned int tx_ra_bitmap = 0;
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *pcur_network = (WLAN_BSSID_EX *)&pmlmepriv->cur_network.network;
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *pcur_network = (struct wlan_bssid_ex *)&pmlmepriv->cur_network.network;
+ struct sta_info *psta = rtw_get_bcmc_stainfo(padapter);
+
-+ if(psta)
++ if (psta)
+ {
-+ psta->aid = 0;//default set to 0
-+ //psta->mac_id = psta->aid+4;
-+ psta->mac_id = psta->aid + 1;//mac_id=1 for bc/mc stainfo
++ psta->aid = 0;/* default set to 0 */
++ /* psta->mac_id = psta->aid+4; */
++ psta->mac_id = psta->aid + 1;/* mac_id = 1 for bc/mc stainfo */
+
+ pmlmeinfo->FW_sta_info[psta->mac_id].psta = psta;
+
@@ -654,16 +685,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+
+ memset((void*)&psta->sta_stats, 0, sizeof(struct stainfo_stats));
+
-+ //psta->dot118021XPrivacy = _NO_PRIVACY_;//!!! remove it, because it has been set before this.
++ /* psta->dot118021XPrivacy = _NO_PRIVACY_;//!!! remove it, because it has been set before this. */
+
-+ //prepare for add_RATid
-+ supportRateNum = rtw_get_rateset_len((u8*)&pcur_network->SupportedRates);
-+ network_type = rtw_check_network_type((u8*)&pcur_network->SupportedRates, supportRateNum, pcur_network->Configuration.DSConfig);
++ /* prepare for add_RATid */
++ supportRateNum = rtw_get_rateset_len((u8 *)&pcur_network->SupportedRates);
++ network_type = rtw_check_network_type((u8 *)&pcur_network->SupportedRates, supportRateNum, pcur_network->Configuration.DSConfig);
+ if (IsSupportedTxCCK(network_type)) {
+ network_type = WIRELESS_11B;
+ }
-+ else if (network_type == WIRELESS_INVALID) { // error handling
-+ if ( pcur_network->Configuration.DSConfig > 14 )
++ else if (network_type == WIRELESS_INVALID) { /* error handling */
++ if (pcur_network->Configuration.DSConfig > 14)
+ network_type = WIRELESS_11A;
+ else
+ network_type = WIRELESS_11B;
@@ -674,98 +705,97 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ rtw_hal_update_sta_rate_mask(padapter, psta);
+ tx_ra_bitmap = psta->ra_mask;
+
-+ psta->raid = rtw_hal_networktype_to_raid(padapter,psta);
++ psta->raid = rtw_hal_networktype_to_raid(padapter, psta);
+
-+ //ap mode
++ /* ap mode */
+ rtw_hal_set_odm_var(padapter, HAL_ODM_STA_INFO, psta, true);
+
-+ //if(pHalData->fw_ractrl == true)
++ /* if (pHalData->fw_ractrl == true) */
+ {
-+ u8 arg[4] = {0};
++ u8 arg[4] = {0};
+
+ arg[0] = psta->mac_id;
+ arg[1] = psta->raid;
+ arg[2] = 0;
+ arg[3] = psta->init_rate;
+
-+ DBG_871X("%s=> mac_id:%d , raid:%d , bitmap=0x%x\n",
-+ __FUNCTION__ , psta->mac_id, psta->raid , tx_ra_bitmap);
++ DBG_871X("%s => mac_id:%d , raid:%d , bitmap = 0x%x\n",
++ __func__ , psta->mac_id, psta->raid , tx_ra_bitmap);
+
+ rtw_hal_add_ra_tid(padapter, tx_ra_bitmap, arg, 0);
+ }
+
+ rtw_sta_media_status_rpt(padapter, psta, 1);
+
-+ _enter_critical_bh(&psta->lock, &irqL);
++ spin_lock_bh(&psta->lock);
+ psta->state = _FW_LINKED;
-+ _exit_critical_bh(&psta->lock, &irqL);
++ spin_unlock_bh(&psta->lock);
+
+ }
+ else
+ {
+ DBG_871X("add_RATid_bmc_sta error!\n");
+ }
-+
++
+}
+
-+//notes:
-+//AID: 1~MAX for sta and 0 for bc/mc in ap/adhoc mode
-+//MAC_ID = AID+1 for sta in ap/adhoc mode
-+//MAC_ID = 1 for bc/mc for sta/ap/adhoc
-+//MAC_ID = 0 for bssid for sta/ap/adhoc
-+//CAM_ID = //0~3 for default key, cmd_id=macid + 3, macid=aid+1;
++/* notes: */
++/* AID: 1~MAX for sta and 0 for bc/mc in ap/adhoc mode */
++/* MAC_ID = AID+1 for sta in ap/adhoc mode */
++/* MAC_ID = 1 for bc/mc for sta/ap/adhoc */
++/* MAC_ID = 0 for bssid for sta/ap/adhoc */
++/* CAM_ID = 0~3 for default key, cmd_id =macid + 3, macid =aid+1; */
+
-+void update_sta_info_apmode(_adapter *padapter, struct sta_info *psta)
-+{
-+ _irqL irqL;
++void update_sta_info_apmode(struct adapter *padapter, struct sta_info *psta)
++{
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
+ struct security_priv *psecuritypriv = &padapter->securitypriv;
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct ht_priv *phtpriv_ap = &pmlmepriv->htpriv;
-+ struct ht_priv *phtpriv_sta = &psta->htpriv;
-+ u8 cur_ldpc_cap=0, cur_stbc_cap=0, cur_beamform_cap=0;
-+ //set intf_tag to if1
-+ //psta->intf_tag = 0;
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct ht_priv *phtpriv_ap = &pmlmepriv->htpriv;
++ struct ht_priv *phtpriv_sta = &psta->htpriv;
++ u8 cur_ldpc_cap = 0, cur_stbc_cap = 0, cur_beamform_cap = 0;
++ /* set intf_tag to if1 */
++ /* psta->intf_tag = 0; */
+
-+ DBG_871X("%s\n",__FUNCTION__);
++ DBG_871X("%s\n", __func__);
+
-+ //psta->mac_id = psta->aid+4;
-+ //psta->mac_id = psta->aid+1;//alloc macid when call rtw_alloc_stainfo(),
-+ //release macid when call rtw_free_stainfo()
++ /* psta->mac_id = psta->aid+4; */
++ /* psta->mac_id = psta->aid+1;//alloc macid when call rtw_alloc_stainfo(), */
++ /* release macid when call rtw_free_stainfo() */
+
-+ //ap mode
-+ rtw_hal_set_odm_var(padapter,HAL_ODM_STA_INFO,psta,true);
-+
-+ if(psecuritypriv->dot11AuthAlgrthm==dot11AuthAlgrthm_8021X)
++ /* ap mode */
++ rtw_hal_set_odm_var(padapter, HAL_ODM_STA_INFO, psta, true);
++
++ if (psecuritypriv->dot11AuthAlgrthm ==dot11AuthAlgrthm_8021X)
+ psta->ieee8021x_blocked = true;
+ else
+ psta->ieee8021x_blocked = false;
-+
+
-+ //update sta's cap
-+
-+ //ERP
++
++ /* update sta's cap */
++
++ /* ERP */
+ VCS_update(padapter, psta);
+
-+ //HT related cap
-+ if(phtpriv_sta->ht_option)
++ /* HT related cap */
++ if (phtpriv_sta->ht_option)
+ {
-+ //check if sta supports rx ampdu
++ /* check if sta supports rx ampdu */
+ phtpriv_sta->ampdu_enable = phtpriv_ap->ampdu_enable;
+
+ phtpriv_sta->rx_ampdu_min_spacing = (phtpriv_sta->ht_cap.ampdu_params_info&IEEE80211_HT_CAP_AMPDU_DENSITY)>>2;
-+
-+ // bwmode
-+ if((phtpriv_sta->ht_cap.cap_info & phtpriv_ap->ht_cap.cap_info) & cpu_to_le16(IEEE80211_HT_CAP_SUP_WIDTH))
-+ {
++
++ /* bwmode */
++ if ((phtpriv_sta->ht_cap.cap_info & phtpriv_ap->ht_cap.cap_info) & cpu_to_le16(IEEE80211_HT_CAP_SUP_WIDTH))
++ {
+ psta->bw_mode = CHANNEL_WIDTH_40;
+ }
+ else
-+ {
++ {
+ psta->bw_mode = CHANNEL_WIDTH_20;
-+ }
++ }
+
-+ if(pmlmeext->cur_bwmode < psta->bw_mode)
++ if (pmlmeext->cur_bwmode < psta->bw_mode)
+ {
+ psta->bw_mode = pmlmeext->cur_bwmode;
+ }
@@ -773,16 +803,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ phtpriv_sta->ch_offset = pmlmeext->cur_ch_offset;
+
+
-+ //check if sta support s Short GI 20M
-+ if((phtpriv_sta->ht_cap.cap_info & phtpriv_ap->ht_cap.cap_info) & cpu_to_le16(IEEE80211_HT_CAP_SGI_20))
++ /* check if sta support s Short GI 20M */
++ if ((phtpriv_sta->ht_cap.cap_info & phtpriv_ap->ht_cap.cap_info) & cpu_to_le16(IEEE80211_HT_CAP_SGI_20))
+ {
+ phtpriv_sta->sgi_20m = true;
+ }
-+
-+ //check if sta support s Short GI 40M
-+ if((phtpriv_sta->ht_cap.cap_info & phtpriv_ap->ht_cap.cap_info) & cpu_to_le16(IEEE80211_HT_CAP_SGI_40))
++
++ /* check if sta support s Short GI 40M */
++ if ((phtpriv_sta->ht_cap.cap_info & phtpriv_ap->ht_cap.cap_info) & cpu_to_le16(IEEE80211_HT_CAP_SGI_40))
+ {
-+ if(psta->bw_mode == CHANNEL_WIDTH_40) //according to psta->bw_mode
++ if (psta->bw_mode == CHANNEL_WIDTH_40) /* according to psta->bw_mode */
+ phtpriv_sta->sgi_40m = true;
+ else
+ phtpriv_sta->sgi_40m = false;
@@ -790,26 +820,26 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+
+ psta->qos_option = true;
+
-+ // B0 Config LDPC Coding Capability
-+ if (TEST_FLAG(phtpriv_ap->ldpc_cap, LDPC_HT_ENABLE_TX) &&
++ /* B0 Config LDPC Coding Capability */
++ if (TEST_FLAG(phtpriv_ap->ldpc_cap, LDPC_HT_ENABLE_TX) &&
+ GET_HT_CAPABILITY_ELE_LDPC_CAP((u8 *)(&phtpriv_sta->ht_cap)))
+ {
+ SET_FLAG(cur_ldpc_cap, (LDPC_HT_ENABLE_TX | LDPC_HT_CAP_TX));
-+ DBG_871X("Enable HT Tx LDPC for STA(%d)\n",psta->aid);
++ DBG_871X("Enable HT Tx LDPC for STA(%d)\n", psta->aid);
+ }
+
-+ // B7 B8 B9 Config STBC setting
++ /* B7 B8 B9 Config STBC setting */
+ if (TEST_FLAG(phtpriv_ap->stbc_cap, STBC_HT_ENABLE_TX) &&
+ GET_HT_CAPABILITY_ELE_RX_STBC((u8 *)(&phtpriv_sta->ht_cap)))
+ {
-+ SET_FLAG(cur_stbc_cap, (STBC_HT_ENABLE_TX | STBC_HT_CAP_TX) );
-+ DBG_871X("Enable HT Tx STBC for STA(%d)\n",psta->aid);
++ SET_FLAG(cur_stbc_cap, (STBC_HT_ENABLE_TX | STBC_HT_CAP_TX));
++ DBG_871X("Enable HT Tx STBC for STA(%d)\n", psta->aid);
+ }
+ }
+ else
+ {
+ phtpriv_sta->ampdu_enable = false;
-+
++
+ phtpriv_sta->sgi_20m = false;
+ phtpriv_sta->sgi_40m = false;
+ psta->bw_mode = CHANNEL_WIDTH_20;
@@ -820,58 +850,57 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ phtpriv_sta->stbc_cap = cur_stbc_cap;
+ phtpriv_sta->beamform_cap = cur_beamform_cap;
+
-+ //Rx AMPDU
-+ send_delba(padapter, 0, psta->hwaddr);// recipient
-+
-+ //TX AMPDU
-+ send_delba(padapter, 1, psta->hwaddr);// // originator
-+ phtpriv_sta->agg_enable_bitmap = 0x0;//reset
-+ phtpriv_sta->candidate_tid_bitmap = 0x0;//reset
++ /* Rx AMPDU */
++ send_delba(padapter, 0, psta->hwaddr);/* recipient */
++
++ /* TX AMPDU */
++ send_delba(padapter, 1, psta->hwaddr);/* originator */
++ phtpriv_sta->agg_enable_bitmap = 0x0;/* reset */
++ phtpriv_sta->candidate_tid_bitmap = 0x0;/* reset */
+
+ update_ldpc_stbc_cap(psta);
+
-+ //todo: init other variables
-+
++ /* todo: init other variables */
++
+ memset((void*)&psta->sta_stats, 0, sizeof(struct stainfo_stats));
+
+
-+ //add ratid
-+ //add_RATid(padapter, psta);//move to ap_sta_info_defer_update()
++ /* add ratid */
++ /* add_RATid(padapter, psta);//move to ap_sta_info_defer_update() */
+
+
-+ _enter_critical_bh(&psta->lock, &irqL);
++ spin_lock_bh(&psta->lock);
+ psta->state |= _FW_LINKED;
-+ _exit_critical_bh(&psta->lock, &irqL);
-+
++ spin_unlock_bh(&psta->lock);
++
+
+}
+
-+static void update_ap_info(_adapter *padapter, struct sta_info *psta)
++static void update_ap_info(struct adapter *padapter, struct sta_info *psta)
+{
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX *)&pmlmepriv->cur_network.network;
-+ struct security_priv *psecuritypriv = &padapter->securitypriv;
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct ht_priv *phtpriv_ap = &pmlmepriv->htpriv;
++ struct wlan_bssid_ex *pnetwork = (struct wlan_bssid_ex *)&pmlmepriv->cur_network.network;
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct ht_priv *phtpriv_ap = &pmlmepriv->htpriv;
+
+ psta->wireless_mode = pmlmeext->cur_wireless_mode;
+
+ psta->bssratelen = rtw_get_rateset_len(pnetwork->SupportedRates);
+ memcpy(psta->bssrateset, pnetwork->SupportedRates, psta->bssratelen);
+
-+ //HT related cap
-+ if(phtpriv_ap->ht_option)
++ /* HT related cap */
++ if (phtpriv_ap->ht_option)
+ {
-+ //check if sta supports rx ampdu
-+ //phtpriv_ap->ampdu_enable = phtpriv_ap->ampdu_enable;
++ /* check if sta supports rx ampdu */
++ /* phtpriv_ap->ampdu_enable = phtpriv_ap->ampdu_enable; */
+
-+ //check if sta support s Short GI 20M
-+ if((phtpriv_ap->ht_cap.cap_info) & cpu_to_le16(IEEE80211_HT_CAP_SGI_20))
++ /* check if sta support s Short GI 20M */
++ if ((phtpriv_ap->ht_cap.cap_info) & cpu_to_le16(IEEE80211_HT_CAP_SGI_20))
+ {
+ phtpriv_ap->sgi_20m = true;
+ }
-+ //check if sta support s Short GI 40M
-+ if((phtpriv_ap->ht_cap.cap_info) & cpu_to_le16(IEEE80211_HT_CAP_SGI_40))
++ /* check if sta support s Short GI 40M */
++ if ((phtpriv_ap->ht_cap.cap_info) & cpu_to_le16(IEEE80211_HT_CAP_SGI_40))
+ {
+ phtpriv_ap->sgi_40m = true;
+ }
@@ -881,7 +910,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ else
+ {
+ phtpriv_ap->ampdu_enable = false;
-+
++
+ phtpriv_ap->sgi_20m = false;
+ phtpriv_ap->sgi_40m = false;
+ }
@@ -889,161 +918,151 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ psta->bw_mode = pmlmeext->cur_bwmode;
+ phtpriv_ap->ch_offset = pmlmeext->cur_ch_offset;
+
-+ phtpriv_ap->agg_enable_bitmap = 0x0;//reset
-+ phtpriv_ap->candidate_tid_bitmap = 0x0;//reset
++ phtpriv_ap->agg_enable_bitmap = 0x0;/* reset */
++ phtpriv_ap->candidate_tid_bitmap = 0x0;/* reset */
+
+ memcpy(&psta->htpriv, &pmlmepriv->htpriv, sizeof(struct ht_priv));
+}
+
-+static void update_hw_ht_param(_adapter *padapter)
++static void update_hw_ht_param(struct adapter *padapter)
+{
-+ unsigned char max_AMPDU_len;
-+ unsigned char min_MPDU_spacing;
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+
-+ DBG_871X("%s\n", __FUNCTION__);
-+
++ unsigned char max_AMPDU_len;
++ unsigned char min_MPDU_spacing;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
-+ //handle A-MPDU parameter field
-+ /*
++ DBG_871X("%s\n", __func__);
++
++
++ /* handle A-MPDU parameter field */
++ /*
+ AMPDU_para [1:0]:Max AMPDU Len => 0:8k , 1:16k, 2:32k, 3:64k
-+ AMPDU_para [4:2]:Min MPDU Start Spacing
++ AMPDU_para [4:2]:Min MPDU Start Spacing
+ */
-+ max_AMPDU_len = pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x03;
-+
-+ min_MPDU_spacing = (pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x1c) >> 2;
++ max_AMPDU_len = pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x03;
++
++ min_MPDU_spacing = (pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x1c) >> 2;
+
+ rtw_hal_set_hwreg(padapter, HW_VAR_AMPDU_MIN_SPACE, (u8 *)(&min_MPDU_spacing));
+
+ rtw_hal_set_hwreg(padapter, HW_VAR_AMPDU_FACTOR, (u8 *)(&max_AMPDU_len));
+
-+ //
-+ // Config SM Power Save setting
-+ //
-+ pmlmeinfo->SM_PS = (pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info & 0x0C) >> 2;
-+ if(pmlmeinfo->SM_PS == WLAN_HT_CAP_SM_PS_STATIC)
-+ {
-+ /*u8 i;
-+ //update the MCS rates
-+ for (i = 0; i < 16; i++)
-+ {
-+ pmlmeinfo->HT_caps.HT_cap_element.MCS_rate[i] &= MCS_rate_1R[i];
-+ }*/
-+ DBG_871X("%s(): WLAN_HT_CAP_SM_PS_STATIC\n",__FUNCTION__);
-+ }
++ /* */
++ /* Config SM Power Save setting */
++ /* */
++ pmlmeinfo->SM_PS = (le16_to_cpu(pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info) & 0x0C) >> 2;
++ if (pmlmeinfo->SM_PS == WLAN_HT_CAP_SM_PS_STATIC)
++ DBG_871X("%s(): WLAN_HT_CAP_SM_PS_STATIC\n", __func__);
+
-+ //
-+ // Config current HT Protection mode.
-+ //
-+ //pmlmeinfo->HT_protection = pmlmeinfo->HT_info.infos[1] & 0x3;
++ /* */
++ /* Config current HT Protection mode. */
++ /* */
++ /* pmlmeinfo->HT_protection = pmlmeinfo->HT_info.infos[1] & 0x3; */
+
+}
+
-+void start_bss_network(_adapter *padapter, u8 *pbuf)
++void start_bss_network(struct adapter *padapter, u8 *pbuf)
+{
+ u8 *p;
+ u8 val8, cur_channel, cur_bwmode, cur_ch_offset;
+ u16 bcn_interval;
-+ u32 acparm;
-+ int ie_len;
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
++ u32 acparm;
++ int ie_len;
++ struct registry_priv *pregpriv = &padapter->registrypriv;
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ struct security_priv* psecuritypriv=&(padapter->securitypriv);
-+ WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX *)&pmlmepriv->cur_network.network;
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *pnetwork_mlmeext = &(pmlmeinfo->network);
-+ struct HT_info_element *pht_info=NULL;
-+ u8 cbw40_enable=0;
-+ u8 change_band = false;
-+
-+ //DBG_871X("%s\n", __FUNCTION__);
++ struct security_priv* psecuritypriv =&(padapter->securitypriv);
++ struct wlan_bssid_ex *pnetwork = (struct wlan_bssid_ex *)&pmlmepriv->cur_network.network;
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *pnetwork_mlmeext = &(pmlmeinfo->network);
++ struct HT_info_element *pht_info = NULL;
++ u8 cbw40_enable = 0;
+
-+ bcn_interval = (u16)pnetwork->Configuration.BeaconPeriod;
++ /* DBG_871X("%s\n", __func__); */
++
++ bcn_interval = (u16)pnetwork->Configuration.BeaconPeriod;
+ cur_channel = pnetwork->Configuration.DSConfig;
+ cur_bwmode = CHANNEL_WIDTH_20;
+ cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
-+
+
-+ //check if there is wps ie,
-+ //if there is wpsie in beacon, the hostapd will update beacon twice when stating hostapd,
-+ //and at first time the security ie ( RSN/WPA IE) will not include in beacon.
-+ if(NULL == rtw_get_wps_ie(pnetwork->IEs+_FIXED_IE_LENGTH_, pnetwork->IELength-_FIXED_IE_LENGTH_, NULL, NULL))
++
++ /* check if there is wps ie, */
++ /* if there is wpsie in beacon, the hostapd will update beacon twice when stating hostapd, */
++ /* and at first time the security ie (RSN/WPA IE) will not include in beacon. */
++ if (NULL == rtw_get_wps_ie(pnetwork->IEs+_FIXED_IE_LENGTH_, pnetwork->IELength-_FIXED_IE_LENGTH_, NULL, NULL))
+ {
+ pmlmeext->bstart_bss = true;
+ }
+
-+ //todo: update wmm, ht cap
-+ //pmlmeinfo->WMM_enable;
-+ //pmlmeinfo->HT_enable;
-+ if(pmlmepriv->qospriv.qos_option)
++ /* todo: update wmm, ht cap */
++ /* pmlmeinfo->WMM_enable; */
++ /* pmlmeinfo->HT_enable; */
++ if (pmlmepriv->qospriv.qos_option)
+ pmlmeinfo->WMM_enable = true;
-+ if(pmlmepriv->htpriv.ht_option)
++ if (pmlmepriv->htpriv.ht_option)
+ {
+ pmlmeinfo->WMM_enable = true;
+ pmlmeinfo->HT_enable = true;
-+ //pmlmeinfo->HT_info_enable = true;
-+ //pmlmeinfo->HT_caps_enable = true;
++ /* pmlmeinfo->HT_info_enable = true; */
++ /* pmlmeinfo->HT_caps_enable = true; */
+
+ update_hw_ht_param(padapter);
+ }
+
-+ if(pmlmepriv->cur_network.join_res != true) //setting only at first time
++ if (pmlmepriv->cur_network.join_res != true) /* setting only at first time */
+ {
-+ //WEP Key will be set before this function, do not clear CAM.
++ /* WEP Key will be set before this function, do not clear CAM. */
+ if ((psecuritypriv->dot11PrivacyAlgrthm != _WEP40_) && (psecuritypriv->dot11PrivacyAlgrthm != _WEP104_))
-+ flush_all_cam_entry(padapter); //clear CAM
-+ }
++ flush_all_cam_entry(padapter); /* clear CAM */
++ }
+
-+ //set MSR to AP_Mode
-+ Set_MSR(padapter, _HW_STATE_AP_);
-+
-+ //Set BSSID REG
++ /* set MSR to AP_Mode */
++ Set_MSR(padapter, _HW_STATE_AP_);
++
++ /* Set BSSID REG */
+ rtw_hal_set_hwreg(padapter, HW_VAR_BSSID, pnetwork->MacAddress);
+
-+ //Set EDCA param reg
-+ acparm = 0x002F3217; // VO
++ /* Set EDCA param reg */
++ acparm = 0x002F3217; /* VO */
+ rtw_hal_set_hwreg(padapter, HW_VAR_AC_PARAM_VO, (u8 *)(&acparm));
-+ acparm = 0x005E4317; // VI
++ acparm = 0x005E4317; /* VI */
+ rtw_hal_set_hwreg(padapter, HW_VAR_AC_PARAM_VI, (u8 *)(&acparm));
-+ //acparm = 0x00105320; // BE
++ /* acparm = 0x00105320; // BE */
+ acparm = 0x005ea42b;
+ rtw_hal_set_hwreg(padapter, HW_VAR_AC_PARAM_BE, (u8 *)(&acparm));
-+ acparm = 0x0000A444; // BK
++ acparm = 0x0000A444; /* BK */
+ rtw_hal_set_hwreg(padapter, HW_VAR_AC_PARAM_BK, (u8 *)(&acparm));
+
-+ //Set Security
++ /* Set Security */
+ val8 = (psecuritypriv->dot11AuthAlgrthm == dot11AuthAlgrthm_8021X)? 0xcc: 0xcf;
+ rtw_hal_set_hwreg(padapter, HW_VAR_SEC_CFG, (u8 *)(&val8));
+
-+ //Beacon Control related register
++ /* Beacon Control related register */
+ rtw_hal_set_hwreg(padapter, HW_VAR_BEACON_INTERVAL, (u8 *)(&bcn_interval));
+
+ rtw_hal_set_hwreg(padapter, HW_VAR_DO_IQK, NULL);
+
-+ if(pmlmepriv->cur_network.join_res != true) //setting only at first time
++ if (pmlmepriv->cur_network.join_res != true) /* setting only at first time */
+ {
-+ //u32 initialgain;
++ /* u32 initialgain; */
+
-+ //initialgain = 0x1e;
++ /* initialgain = 0x1e; */
+
+
-+ //disable dynamic functions, such as high power, DIG
-+ //Save_DM_Func_Flag(padapter);
-+ //Switch_DM_Func(padapter, DYNAMIC_FUNC_DISABLE, false);
-+
-+ //turn on all dynamic functions
++ /* disable dynamic functions, such as high power, DIG */
++ /* Save_DM_Func_Flag(padapter); */
++ /* Switch_DM_Func(padapter, DYNAMIC_FUNC_DISABLE, false); */
++
++ /* turn on all dynamic functions */
+ Switch_DM_Func(padapter, DYNAMIC_ALL_FUNC_ENABLE, true);
+
-+ //rtw_hal_set_hwreg(padapter, HW_VAR_INITIAL_GAIN, (u8 *)(&initialgain));
-+
++ /* rtw_hal_set_hwreg(padapter, HW_VAR_INITIAL_GAIN, (u8 *)(&initialgain)); */
++
+ }
+
-+ //set channel, bwmode
-+ p = rtw_get_ie((pnetwork->IEs + sizeof(NDIS_802_11_FIXED_IEs)), _HT_ADD_INFO_IE_, &ie_len, (pnetwork->IELength - sizeof(NDIS_802_11_FIXED_IEs)));
-+ if( p && ie_len)
++ /* set channel, bwmode */
++ p = rtw_get_ie((pnetwork->IEs + sizeof(struct ndis_802_11_fix_ie)), _HT_ADD_INFO_IE_, &ie_len, (pnetwork->IELength - sizeof(struct ndis_802_11_fix_ie)));
++ if (p && ie_len)
+ {
+ pht_info = (struct HT_info_element *)(p+2);
+
@@ -1057,96 +1076,93 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+
+ if ((cbw40_enable) && (pht_info->infos[0] & BIT(2)))
+ {
-+ //switch to the 40M Hz mode
-+ //pmlmeext->cur_bwmode = CHANNEL_WIDTH_40;
++ /* switch to the 40M Hz mode */
++ /* pmlmeext->cur_bwmode = CHANNEL_WIDTH_40; */
+ cur_bwmode = CHANNEL_WIDTH_40;
+ switch (pht_info->infos[0] & 0x3)
+ {
+ case 1:
-+ //pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_LOWER;
++ /* pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_LOWER; */
+ cur_ch_offset = HAL_PRIME_CHNL_OFFSET_LOWER;
+ break;
-+
++
+ case 3:
-+ //pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_UPPER;
-+ cur_ch_offset = HAL_PRIME_CHNL_OFFSET_UPPER;
++ /* pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_UPPER; */
++ cur_ch_offset = HAL_PRIME_CHNL_OFFSET_UPPER;
+ break;
-+
++
+ default:
-+ //pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
++ /* pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; */
+ cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
+ break;
-+ }
-+
++ }
++
+ }
-+
++
+ }
+
+ set_channel_bwmode(padapter, cur_channel, cur_ch_offset, cur_bwmode);
-+ DBG_871X("CH=%d, BW=%d, offset=%d\n", cur_channel, cur_bwmode, cur_ch_offset);
-+ pmlmeext->cur_channel = cur_channel;
++ DBG_871X("CH =%d, BW =%d, offset =%d\n", cur_channel, cur_bwmode, cur_ch_offset);
++ pmlmeext->cur_channel = cur_channel;
+ pmlmeext->cur_bwmode = cur_bwmode;
+ pmlmeext->cur_ch_offset = cur_ch_offset;
+ pmlmeext->cur_wireless_mode = pmlmepriv->cur_network.network_type;
+
-+ //let pnetwork_mlmeext == pnetwork_mlme.
++ /* let pnetwork_mlmeext == pnetwork_mlme. */
+ memcpy(pnetwork_mlmeext, pnetwork, pnetwork->Length);
+
-+ //update cur_wireless_mode
++ /* update cur_wireless_mode */
+ update_wireless_mode(padapter);
+
-+ //update RRSR after set channel and bandwidth
++ /* update RRSR after set channel and bandwidth */
+ UpdateBrateTbl(padapter, pnetwork->SupportedRates);
+ rtw_hal_set_hwreg(padapter, HW_VAR_BASIC_RATE, pnetwork->SupportedRates);
+
-+ //udpate capability after cur_wireless_mode updated
-+ update_capinfo(padapter, rtw_get_capability((WLAN_BSSID_EX *)pnetwork));
++ /* udpate capability after cur_wireless_mode updated */
++ update_capinfo(padapter, rtw_get_capability((struct wlan_bssid_ex *)pnetwork));
+
+
-+ if(true == pmlmeext->bstart_bss)
++ if (true == pmlmeext->bstart_bss)
+ {
+ update_beacon(padapter, _TIM_IE_, NULL, true);
+
-+#ifndef CONFIG_INTERRUPT_BASED_TXBCN //other case will tx beacon when bcn interrupt coming in.
-+ //issue beacon frame
-+ if(send_beacon(padapter)==_FAIL)
++#ifndef CONFIG_INTERRUPT_BASED_TXBCN /* other case will tx beacon when bcn interrupt coming in. */
++ /* issue beacon frame */
++ if (send_beacon(padapter) == _FAIL)
+ {
+ DBG_871X("issue_beacon, fail!\n");
+ }
-+#endif //!CONFIG_INTERRUPT_BASED_TXBCN
-+
++#endif /* CONFIG_INTERRUPT_BASED_TXBCN */
++
+ }
+
+
-+ //update bc/mc sta_info
++ /* update bc/mc sta_info */
+ update_bmc_sta(padapter);
-+
-+ //pmlmeext->bstart_bss = true;
-+
++
++ /* pmlmeext->bstart_bss = true; */
++
+}
+
-+int rtw_check_beacon_data(_adapter *padapter, u8 *pbuf, int len)
++int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len)
+{
-+ int ret=_SUCCESS;
++ int ret = _SUCCESS;
+ u8 *p;
-+ u8 *pHT_caps_ie=NULL;
-+ u8 *pHT_info_ie=NULL;
++ u8 *pHT_caps_ie = NULL;
++ u8 *pHT_info_ie = NULL;
+ struct sta_info *psta = NULL;
-+ u16 cap, ht_cap=false;
++ u16 cap, ht_cap =false;
+ uint ie_len = 0;
-+ int group_cipher, pairwise_cipher;
-+ u8 channel, network_type, supportRate[NDIS_802_11_LENGTH_RATES_EX];
++ int group_cipher, pairwise_cipher;
++ u8 channel, network_type, supportRate[NDIS_802_11_LENGTH_RATES_EX];
+ int supportRateNum = 0;
-+ u8 OUI1[] = {0x00, 0x50, 0xf2,0x01};
-+ u8 wps_oui[4]={0x0,0x50,0xf2,0x04};
-+ u8 WMM_PARA_IE[] = {0x00, 0x50, 0xf2, 0x02, 0x01, 0x01};
-+ struct registry_priv *pregistrypriv = &padapter->registrypriv;
++ u8 OUI1[] = {0x00, 0x50, 0xf2, 0x01};
++ u8 WMM_PARA_IE[] = {0x00, 0x50, 0xf2, 0x02, 0x01, 0x01};
++ struct registry_priv *pregistrypriv = &padapter->registrypriv;
+ struct security_priv *psecuritypriv = &padapter->securitypriv;
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ WLAN_BSSID_EX *pbss_network = (WLAN_BSSID_EX *)&pmlmepriv->cur_network.network;
-+ struct sta_priv *pstapriv = &padapter->stapriv;
++ struct wlan_bssid_ex *pbss_network = (struct wlan_bssid_ex *)&pmlmepriv->cur_network.network;
+ u8 *ie = pbss_network->IEs;
-+ u8 vht_cap=false;
+
+ /* SSID */
+ /* Supported rates */
@@ -1159,74 +1175,74 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ /* ht_capab, ht_oper */
+ /* WPS IE */
+
-+ DBG_871X("%s, len=%d\n", __FUNCTION__, len);
++ DBG_871X("%s, len =%d\n", __func__, len);
+
-+ if(check_fwstate(pmlmepriv, WIFI_AP_STATE) != true)
++ if (check_fwstate(pmlmepriv, WIFI_AP_STATE) != true)
+ return _FAIL;
+
+
-+ if(len>MAX_IE_SZ)
++ if (len>MAX_IE_SZ)
+ return _FAIL;
-+
++
+ pbss_network->IELength = len;
+
+ memset(ie, 0, MAX_IE_SZ);
-+
++
+ memcpy(ie, pbuf, pbss_network->IELength);
+
+
-+ if(pbss_network->InfrastructureMode!=Ndis802_11APMode)
++ if (pbss_network->InfrastructureMode!=Ndis802_11APMode)
+ return _FAIL;
+
+ pbss_network->Rssi = 0;
+
+ memcpy(pbss_network->MacAddress, myid(&(padapter->eeprompriv)), ETH_ALEN);
-+
-+ //beacon interval
-+ p = rtw_get_beacon_interval_from_ie(ie);//ie + 8; // 8: TimeStamp, 2: Beacon Interval 2:Capability
-+ //pbss_network->Configuration.BeaconPeriod = le16_to_cpu(*(unsigned short*)p);
++
++ /* beacon interval */
++ p = rtw_get_beacon_interval_from_ie(ie);/* ie + 8; 8: TimeStamp, 2: Beacon Interval 2:Capability */
++ /* pbss_network->Configuration.BeaconPeriod = le16_to_cpu(*(unsigned short*)p); */
+ pbss_network->Configuration.BeaconPeriod = RTW_GET_LE16(p);
-+
-+ //capability
-+ //cap = *(unsigned short *)rtw_get_capability_from_ie(ie);
-+ //cap = le16_to_cpu(cap);
++
++ /* capability */
++ /* cap = *(unsigned short *)rtw_get_capability_from_ie(ie); */
++ /* cap = le16_to_cpu(cap); */
+ cap = RTW_GET_LE16(ie);
+
-+ //SSID
++ /* SSID */
+ p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _SSID_IE_, &ie_len, (pbss_network->IELength -_BEACON_IE_OFFSET_));
-+ if(p && ie_len>0)
++ if (p && ie_len>0)
+ {
-+ memset(&pbss_network->Ssid, 0, sizeof(NDIS_802_11_SSID));
++ memset(&pbss_network->Ssid, 0, sizeof(struct ndis_802_11_ssid));
+ memcpy(pbss_network->Ssid.Ssid, (p + 2), ie_len);
+ pbss_network->Ssid.SsidLength = ie_len;
-+ }
++ }
+
-+ //chnnel
++ /* chnnel */
+ channel = 0;
+ pbss_network->Configuration.Length = 0;
+ p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _DSSET_IE_, &ie_len, (pbss_network->IELength - _BEACON_IE_OFFSET_));
-+ if(p && ie_len>0)
++ if (p && ie_len>0)
+ channel = *(p + 2);
+
+ pbss_network->Configuration.DSConfig = channel;
+
-+
++
+ memset(supportRate, 0, NDIS_802_11_LENGTH_RATES_EX);
-+ // get supported rates
-+ p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _SUPPORTEDRATES_IE_, &ie_len, (pbss_network->IELength - _BEACON_IE_OFFSET_));
-+ if (p != NULL)
++ /* get supported rates */
++ p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _SUPPORTEDRATES_IE_, &ie_len, (pbss_network->IELength - _BEACON_IE_OFFSET_));
++ if (p != NULL)
+ {
-+ memcpy(supportRate, p+2, ie_len);
++ memcpy(supportRate, p+2, ie_len);
+ supportRateNum = ie_len;
+ }
-+
-+ //get ext_supported rates
-+ p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _EXT_SUPPORTEDRATES_IE_, &ie_len, pbss_network->IELength - _BEACON_IE_OFFSET_);
++
++ /* get ext_supported rates */
++ p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _EXT_SUPPORTEDRATES_IE_, &ie_len, pbss_network->IELength - _BEACON_IE_OFFSET_);
+ if (p != NULL)
+ {
+ memcpy(supportRate+supportRateNum, p+2, ie_len);
+ supportRateNum += ie_len;
-+
++
+ }
+
+ network_type = rtw_check_network_type(supportRate, supportRateNum, channel);
@@ -1234,14 +1250,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ rtw_set_supported_rate(pbss_network->SupportedRates, network_type);
+
+
-+ //parsing ERP_IE
++ /* parsing ERP_IE */
+ p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _ERPINFO_IE_, &ie_len, (pbss_network->IELength - _BEACON_IE_OFFSET_));
-+ if(p && ie_len>0)
++ if (p && ie_len>0)
+ {
-+ ERP_IE_handler(padapter, (PNDIS_802_11_VARIABLE_IEs)p);
++ ERP_IE_handler(padapter, (struct ndis_80211_var_ie *)p);
+ }
+
-+ //update privacy/security
++ /* update privacy/security */
+ if (cap & BIT(4))
+ pbss_network->Privacy = 1;
+ else
@@ -1249,41 +1265,41 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+
+ psecuritypriv->wpa_psk = 0;
+
-+ //wpa2
++ /* wpa2 */
+ group_cipher = 0; pairwise_cipher = 0;
+ psecuritypriv->wpa2_group_cipher = _NO_PRIVACY_;
-+ psecuritypriv->wpa2_pairwise_cipher = _NO_PRIVACY_;
-+ p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _RSN_IE_2_, &ie_len, (pbss_network->IELength - _BEACON_IE_OFFSET_));
-+ if(p && ie_len>0)
++ psecuritypriv->wpa2_pairwise_cipher = _NO_PRIVACY_;
++ p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _RSN_IE_2_, &ie_len, (pbss_network->IELength - _BEACON_IE_OFFSET_));
++ if (p && ie_len>0)
+ {
-+ if(rtw_parse_wpa2_ie(p, ie_len+2, &group_cipher, &pairwise_cipher, NULL) == _SUCCESS)
++ if (rtw_parse_wpa2_ie(p, ie_len+2, &group_cipher, &pairwise_cipher, NULL) == _SUCCESS)
+ {
-+ psecuritypriv->dot11AuthAlgrthm= dot11AuthAlgrthm_8021X;
-+
-+ psecuritypriv->dot8021xalg = 1;//psk, todo:802.1x
++ psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_8021X;
++
++ psecuritypriv->dot8021xalg = 1;/* psk, todo:802.1x */
+ psecuritypriv->wpa_psk |= BIT(1);
+
+ psecuritypriv->wpa2_group_cipher = group_cipher;
+ psecuritypriv->wpa2_pairwise_cipher = pairwise_cipher;
+ }
-+
++
+ }
+
-+ //wpa
++ /* wpa */
+ ie_len = 0;
+ group_cipher = 0; pairwise_cipher = 0;
+ psecuritypriv->wpa_group_cipher = _NO_PRIVACY_;
-+ psecuritypriv->wpa_pairwise_cipher = _NO_PRIVACY_;
++ psecuritypriv->wpa_pairwise_cipher = _NO_PRIVACY_;
+ for (p = ie + _BEACON_IE_OFFSET_; ;p += (ie_len + 2))
+ {
-+ p = rtw_get_ie(p, _SSN_IE_1_, &ie_len, (pbss_network->IELength - _BEACON_IE_OFFSET_ - (ie_len + 2)));
++ p = rtw_get_ie(p, _SSN_IE_1_, &ie_len, (pbss_network->IELength - _BEACON_IE_OFFSET_ - (ie_len + 2)));
+ if ((p) && (!memcmp(p+2, OUI1, 4)))
+ {
-+ if(rtw_parse_wpa_ie(p, ie_len+2, &group_cipher, &pairwise_cipher, NULL) == _SUCCESS)
++ if (rtw_parse_wpa_ie(p, ie_len+2, &group_cipher, &pairwise_cipher, NULL) == _SUCCESS)
+ {
-+ psecuritypriv->dot11AuthAlgrthm= dot11AuthAlgrthm_8021X;
-+
-+ psecuritypriv->dot8021xalg = 1;//psk, todo:802.1x
++ psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_8021X;
++
++ psecuritypriv->dot8021xalg = 1;/* psk, todo:802.1x */
+
+ psecuritypriv->wpa_psk |= BIT(0);
+
@@ -1292,55 +1308,55 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ }
+
+ break;
-+
++
+ }
-+
++
+ if ((p == NULL) || (ie_len == 0))
+ {
+ break;
+ }
-+
++
+ }
+
-+ //wmm
++ /* wmm */
+ ie_len = 0;
+ pmlmepriv->qospriv.qos_option = 0;
-+ if(pregistrypriv->wmm_enable)
++ if (pregistrypriv->wmm_enable)
+ {
+ for (p = ie + _BEACON_IE_OFFSET_; ;p += (ie_len + 2))
-+ {
-+ p = rtw_get_ie(p, _VENDOR_SPECIFIC_IE_, &ie_len, (pbss_network->IELength - _BEACON_IE_OFFSET_ - (ie_len + 2)));
-+ if((p) && !memcmp(p+2, WMM_PARA_IE, 6))
++ {
++ p = rtw_get_ie(p, _VENDOR_SPECIFIC_IE_, &ie_len, (pbss_network->IELength - _BEACON_IE_OFFSET_ - (ie_len + 2)));
++ if ((p) && !memcmp(p+2, WMM_PARA_IE, 6))
+ {
-+ pmlmepriv->qospriv.qos_option = 1;
++ pmlmepriv->qospriv.qos_option = 1;
++
++ *(p+8) |= BIT(7);/* QoS Info, support U-APSD */
+
-+ *(p+8) |= BIT(7);//QoS Info, support U-APSD
-+
+ /* disable all ACM bits since the WMM admission control is not supported */
+ *(p + 10) &= ~BIT(4); /* BE */
+ *(p + 14) &= ~BIT(4); /* BK */
+ *(p + 18) &= ~BIT(4); /* VI */
+ *(p + 22) &= ~BIT(4); /* VO */
-+
-+ break;
++
++ break;
+ }
-+
++
+ if ((p == NULL) || (ie_len == 0))
+ {
+ break;
-+ }
-+ }
++ }
++ }
+ }
+
-+ //parsing HT_CAP_IE
++ /* parsing HT_CAP_IE */
+ p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _HT_CAPABILITY_IE_, &ie_len, (pbss_network->IELength - _BEACON_IE_OFFSET_));
-+ if(p && ie_len>0)
++ if (p && ie_len>0)
+ {
-+ u8 rf_type=0;
-+ u8 max_rx_ampdu_factor=0;
++ u8 rf_type = 0;
++ u8 max_rx_ampdu_factor = 0;
+ struct rtw_ieee80211_ht_cap *pht_cap = (struct rtw_ieee80211_ht_cap *)(p+2);
+
-+ pHT_caps_ie=p;
++ pHT_caps_ie =p;
+
+ ht_cap = true;
+ network_type |= WIRELESS_11_24N;
@@ -1348,64 +1364,64 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ rtw_ht_use_default_setting(padapter);
+
+ if (pmlmepriv->htpriv.sgi_20m == false)
-+ pht_cap->cap_info &= ~(IEEE80211_HT_CAP_SGI_20);
++ pht_cap->cap_info &= cpu_to_le16(~(IEEE80211_HT_CAP_SGI_20));
+
+ if (pmlmepriv->htpriv.sgi_40m == false)
-+ pht_cap->cap_info &= ~(IEEE80211_HT_CAP_SGI_40);
++ pht_cap->cap_info &= cpu_to_le16(~(IEEE80211_HT_CAP_SGI_40));
+
+ if (!TEST_FLAG(pmlmepriv->htpriv.ldpc_cap, LDPC_HT_ENABLE_RX))
+ {
-+ pht_cap->cap_info &= ~(IEEE80211_HT_CAP_LDPC_CODING);
++ pht_cap->cap_info &= cpu_to_le16(~(IEEE80211_HT_CAP_LDPC_CODING));
+ }
+
+ if (!TEST_FLAG(pmlmepriv->htpriv.stbc_cap, STBC_HT_ENABLE_TX))
+ {
-+ pht_cap->cap_info &= ~(IEEE80211_HT_CAP_TX_STBC);
-+ }
++ pht_cap->cap_info &= cpu_to_le16(~(IEEE80211_HT_CAP_TX_STBC));
++ }
+
+ if (!TEST_FLAG(pmlmepriv->htpriv.stbc_cap, STBC_HT_ENABLE_RX))
+ {
-+ pht_cap->cap_info &= ~(IEEE80211_HT_CAP_RX_STBC_3R);
++ pht_cap->cap_info &= cpu_to_le16(~(IEEE80211_HT_CAP_RX_STBC_3R));
+ }
+
+ pht_cap->ampdu_params_info &= ~(IEEE80211_HT_CAP_AMPDU_FACTOR|IEEE80211_HT_CAP_AMPDU_DENSITY);
-+
-+ if((psecuritypriv->wpa_pairwise_cipher & WPA_CIPHER_CCMP) ||
++
++ if ((psecuritypriv->wpa_pairwise_cipher & WPA_CIPHER_CCMP) ||
+ (psecuritypriv->wpa2_pairwise_cipher & WPA_CIPHER_CCMP))
+ {
+ pht_cap->ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_DENSITY&(0x07<<2));
-+ }
++ }
+ else
+ {
-+ pht_cap->ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_DENSITY&0x00);
-+ }
++ pht_cap->ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_DENSITY&0x00);
++ }
+
+ rtw_hal_get_def_var(padapter, HW_VAR_MAX_RX_AMPDU_FACTOR, &max_rx_ampdu_factor);
-+ pht_cap->ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_FACTOR & max_rx_ampdu_factor); //set Max Rx AMPDU size to 64K
++ pht_cap->ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_FACTOR & max_rx_ampdu_factor); /* set Max Rx AMPDU size to 64K */
+
+ rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type));
-+ if(rf_type == RF_1T1R)
-+ {
++ if (rf_type == RF_1T1R)
++ {
+ pht_cap->supp_mcs_set[0] = 0xff;
+ pht_cap->supp_mcs_set[1] = 0x0;
+ }
+
+ memcpy(&pmlmepriv->htpriv.ht_cap, p+2, ie_len);
-+
++
+ }
+
-+ //parsing HT_INFO_IE
++ /* parsing HT_INFO_IE */
+ p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _HT_ADD_INFO_IE_, &ie_len, (pbss_network->IELength - _BEACON_IE_OFFSET_));
-+ if(p && ie_len>0)
++ if (p && ie_len>0)
+ {
-+ pHT_info_ie=p;
++ pHT_info_ie =p;
+ }
+
-+ switch(network_type)
++ switch (network_type)
+ {
+ case WIRELESS_11B:
+ pbss_network->NetworkTypeInUse = Ndis802_11DS;
-+ break;
++ break;
+ case WIRELESS_11G:
+ case WIRELESS_11BG:
+ case WIRELESS_11G_24N:
@@ -1419,212 +1435,210 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ pbss_network->NetworkTypeInUse = Ndis802_11OFDM24;
+ break;
+ }
-+
++
+ pmlmepriv->cur_network.network_type = network_type;
+
+ pmlmepriv->htpriv.ht_option = false;
+
-+ if( (psecuritypriv->wpa2_pairwise_cipher&WPA_CIPHER_TKIP) ||
++ if ((psecuritypriv->wpa2_pairwise_cipher&WPA_CIPHER_TKIP) ||
+ (psecuritypriv->wpa_pairwise_cipher&WPA_CIPHER_TKIP))
-+ {
-+ //todo:
-+ //ht_cap = false;
++ {
++ /* todo: */
++ /* ht_cap = false; */
+ }
-+
-+ //ht_cap
-+ if(pregistrypriv->ht_enable && ht_cap==true)
-+ {
++
++ /* ht_cap */
++ if (pregistrypriv->ht_enable && ht_cap ==true)
++ {
+ pmlmepriv->htpriv.ht_option = true;
+ pmlmepriv->qospriv.qos_option = 1;
+
-+ if(pregistrypriv->ampdu_enable==1)
++ if (pregistrypriv->ampdu_enable == 1)
+ {
+ pmlmepriv->htpriv.ampdu_enable = true;
+ }
+
-+ HT_caps_handler(padapter, (PNDIS_802_11_VARIABLE_IEs)pHT_caps_ie);
-+
-+ HT_info_handler(padapter, (PNDIS_802_11_VARIABLE_IEs)pHT_info_ie);
++ HT_caps_handler(padapter, (struct ndis_80211_var_ie *)pHT_caps_ie);
++
++ HT_info_handler(padapter, (struct ndis_80211_var_ie *)pHT_info_ie);
+ }
+
-+ pbss_network->Length = get_WLAN_BSSID_EX_sz((WLAN_BSSID_EX *)pbss_network);
++ pbss_network->Length = get_wlan_bssid_ex_sz((struct wlan_bssid_ex *)pbss_network);
+
-+ //issue beacon to start bss network
-+ //start_bss_network(padapter, (u8*)pbss_network);
++ /* issue beacon to start bss network */
++ /* start_bss_network(padapter, (u8 *)pbss_network); */
+ rtw_startbss_cmd(padapter, RTW_CMDF_WAIT_ACK);
-+
+
-+ //alloc sta_info for ap itself
++
++ /* alloc sta_info for ap itself */
+ psta = rtw_get_stainfo(&padapter->stapriv, pbss_network->MacAddress);
-+ if(!psta)
++ if (!psta)
+ {
+ psta = rtw_alloc_stainfo(&padapter->stapriv, pbss_network->MacAddress);
-+ if (psta == NULL)
-+ {
++ if (psta == NULL)
++ {
+ return _FAIL;
-+ }
++ }
+ }
+
-+ // update AP's sta info
++ /* update AP's sta info */
+ update_ap_info(padapter, psta);
-+
-+ psta->state |= WIFI_AP_STATE; //Aries, add,fix bug of flush_cam_entry at STOP AP mode , 0724
-+ rtw_indicate_connect( padapter);
+
-+ pmlmepriv->cur_network.join_res = true;//for check if already set beacon
-+
-+ //update bc/mc sta_info
-+ //update_bmc_sta(padapter);
++ psta->state |= WIFI_AP_STATE; /* Aries, add, fix bug of flush_cam_entry at STOP AP mode , 0724 */
++ rtw_indicate_connect(padapter);
++
++ pmlmepriv->cur_network.join_res = true;/* for check if already set beacon */
++
++ /* update bc/mc sta_info */
++ /* update_bmc_sta(padapter); */
+
+ return ret;
+
+}
+
-+void rtw_set_macaddr_acl(_adapter *padapter, int mode)
++void rtw_set_macaddr_acl(struct adapter *padapter, int mode)
+{
+ struct sta_priv *pstapriv = &padapter->stapriv;
+ struct wlan_acl_pool *pacl_list = &pstapriv->acl_list;
+
-+ DBG_871X("%s, mode=%d\n", __func__, mode);
++ DBG_871X("%s, mode =%d\n", __func__, mode);
+
+ pacl_list->mode = mode;
+}
+
-+int rtw_acl_add_sta(_adapter *padapter, u8 *addr)
++int rtw_acl_add_sta(struct adapter *padapter, u8 *addr)
+{
-+ _irqL irqL;
-+ _list *plist, *phead;
++ struct list_head *plist, *phead;
+ u8 added = false;
-+ int i, ret=0;
++ int i, ret = 0;
+ struct rtw_wlan_acl_node *paclnode;
+ struct sta_priv *pstapriv = &padapter->stapriv;
+ struct wlan_acl_pool *pacl_list = &pstapriv->acl_list;
-+ _queue *pacl_node_q =&pacl_list->acl_node_q;
++ struct __queue *pacl_node_q =&pacl_list->acl_node_q;
+
-+ DBG_871X("%s(acl_num=%d)=" MAC_FMT "\n", __func__, pacl_list->num, MAC_ARG(addr));
++ DBG_871X("%s(acl_num =%d) =" MAC_FMT "\n", __func__, pacl_list->num, MAC_ARG(addr));
+
-+ if((NUM_ACL-1) < pacl_list->num)
-+ return (-1);
++ if ((NUM_ACL-1) < pacl_list->num)
++ return (-1);
+
+
-+ _enter_critical_bh(&(pacl_node_q->lock), &irqL);
++ spin_lock_bh(&(pacl_node_q->lock));
+
+ phead = get_list_head(pacl_node_q);
+ plist = get_next(phead);
-+
-+ while ((rtw_end_of_queue_search(phead, plist)) == false)
++
++ while (phead != plist)
+ {
+ paclnode = LIST_CONTAINOR(plist, struct rtw_wlan_acl_node, list);
+ plist = get_next(plist);
+
-+ if(!memcmp(paclnode->addr, addr, ETH_ALEN))
++ if (!memcmp(paclnode->addr, addr, ETH_ALEN))
+ {
-+ if(paclnode->valid == true)
++ if (paclnode->valid == true)
+ {
+ added = true;
+ DBG_871X("%s, sta has been added\n", __func__);
+ break;
+ }
-+ }
++ }
+ }
-+
-+ _exit_critical_bh(&(pacl_node_q->lock), &irqL);
++
++ spin_unlock_bh(&(pacl_node_q->lock));
+
+
-+ if(added == true)
++ if (added == true)
+ return ret;
-+
+
-+ _enter_critical_bh(&(pacl_node_q->lock), &irqL);
+
-+ for(i=0; i< NUM_ACL; i++)
++ spin_lock_bh(&(pacl_node_q->lock));
++
++ for (i = 0; i< NUM_ACL; i++)
+ {
+ paclnode = &pacl_list->aclnode[i];
+
-+ if(paclnode->valid == false)
++ if (paclnode->valid == false)
+ {
-+ _rtw_init_listhead(&paclnode->list);
-+
++ INIT_LIST_HEAD(&paclnode->list);
++
+ memcpy(paclnode->addr, addr, ETH_ALEN);
-+
++
+ paclnode->valid = true;
+
-+ rtw_list_insert_tail(&paclnode->list, get_list_head(pacl_node_q));
-+
++ list_add_tail(&paclnode->list, get_list_head(pacl_node_q));
++
+ pacl_list->num++;
+
+ break;
+ }
+ }
+
-+ DBG_871X("%s, acl_num=%d\n", __func__, pacl_list->num);
-+
-+ _exit_critical_bh(&(pacl_node_q->lock), &irqL);
++ DBG_871X("%s, acl_num =%d\n", __func__, pacl_list->num);
++
++ spin_unlock_bh(&(pacl_node_q->lock));
+
+ return ret;
+}
+
-+int rtw_acl_remove_sta(_adapter *padapter, u8 *addr)
++int rtw_acl_remove_sta(struct adapter *padapter, u8 *addr)
+{
-+ _irqL irqL;
-+ _list *plist, *phead;
-+ int i, ret=0;
++ struct list_head *plist, *phead;
++ int ret = 0;
+ struct rtw_wlan_acl_node *paclnode;
+ struct sta_priv *pstapriv = &padapter->stapriv;
+ struct wlan_acl_pool *pacl_list = &pstapriv->acl_list;
-+ _queue *pacl_node_q =&pacl_list->acl_node_q;
-+ u8 baddr[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; //Baddr is used for clearing acl_list
++ struct __queue *pacl_node_q =&pacl_list->acl_node_q;
++ u8 baddr[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; /* Baddr is used for clearing acl_list */
+
-+ DBG_871X("%s(acl_num=%d)=" MAC_FMT "\n", __func__, pacl_list->num, MAC_ARG(addr));
++ DBG_871X("%s(acl_num =%d) =" MAC_FMT "\n", __func__, pacl_list->num, MAC_ARG(addr));
+
-+ _enter_critical_bh(&(pacl_node_q->lock), &irqL);
++ spin_lock_bh(&(pacl_node_q->lock));
+
+ phead = get_list_head(pacl_node_q);
+ plist = get_next(phead);
-+
-+ while ((rtw_end_of_queue_search(phead, plist)) == false)
++
++ while (phead != plist)
+ {
+ paclnode = LIST_CONTAINOR(plist, struct rtw_wlan_acl_node, list);
+ plist = get_next(plist);
+
-+ if(!memcmp(paclnode->addr, addr, ETH_ALEN) || !memcmp(baddr, addr, ETH_ALEN))
++ if (!memcmp(paclnode->addr, addr, ETH_ALEN) || !memcmp(baddr, addr, ETH_ALEN))
+ {
-+ if(paclnode->valid == true)
++ if (paclnode->valid == true)
+ {
+ paclnode->valid = false;
+
-+ rtw_list_delete(&paclnode->list);
-+
++ list_del_init(&paclnode->list);
++
+ pacl_list->num--;
+ }
-+ }
++ }
+ }
-+
-+ _exit_critical_bh(&(pacl_node_q->lock), &irqL);
+
-+ DBG_871X("%s, acl_num=%d\n", __func__, pacl_list->num);
-+
++ spin_unlock_bh(&(pacl_node_q->lock));
++
++ DBG_871X("%s, acl_num =%d\n", __func__, pacl_list->num);
++
+ return ret;
+
+}
+
-+u8 rtw_ap_set_pairwise_key(_adapter *padapter, struct sta_info *psta)
++u8 rtw_ap_set_pairwise_key(struct adapter *padapter, struct sta_info *psta)
+{
-+ struct cmd_obj* ph2c;
++ struct cmd_obj* ph2c;
+ struct set_stakey_parm *psetstakey_para;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-+ u8 res=_SUCCESS;
++ struct cmd_priv *pcmdpriv =&padapter->cmdpriv;
++ u8 res = _SUCCESS;
+
+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if ( ph2c == NULL){
-+ res= _FAIL;
++ if (ph2c == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
+
+ psetstakey_para = (struct set_stakey_parm*)rtw_zmalloc(sizeof(struct set_stakey_parm));
-+ if(psetstakey_para==NULL){
-+ rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-+ res=_FAIL;
++ if (psetstakey_para == NULL) {
++ kfree((u8 *) ph2c);
++ res = _FAIL;
+ goto exit;
+ }
+
@@ -1633,44 +1647,44 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+
+ psetstakey_para->algorithm = (u8)psta->dot118021XPrivacy;
+
-+ memcpy(psetstakey_para->addr, psta->hwaddr, ETH_ALEN);
-+
++ memcpy(psetstakey_para->addr, psta->hwaddr, ETH_ALEN);
++
+ memcpy(psetstakey_para->key, &psta->dot118021x_UncstKey, 16);
+
-+
-+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
++
++ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
+
+exit:
+
+ return res;
-+
++
+}
+
-+static int rtw_ap_set_key(_adapter *padapter, u8 *key, u8 alg, int keyid, u8 set_tx)
++static int rtw_ap_set_key(struct adapter *padapter, u8 *key, u8 alg, int keyid, u8 set_tx)
+{
+ u8 keylen;
+ struct cmd_obj* pcmd;
+ struct setkey_parm *psetkeyparm;
-+ struct cmd_priv *pcmdpriv=&(padapter->cmdpriv);
-+ int res=_SUCCESS;
++ struct cmd_priv *pcmdpriv =&(padapter->cmdpriv);
++ int res = _SUCCESS;
++
++ /* DBG_871X("%s\n", __func__); */
+
-+ //DBG_871X("%s\n", __FUNCTION__);
-+
+ pcmd = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(pcmd==NULL){
-+ res= _FAIL;
++ if (pcmd == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
-+ psetkeyparm=(struct setkey_parm*)rtw_zmalloc(sizeof(struct setkey_parm));
-+ if(psetkeyparm==NULL){
-+ rtw_mfree((unsigned char *)pcmd, sizeof(struct cmd_obj));
-+ res= _FAIL;
++ psetkeyparm =(struct setkey_parm*)rtw_zmalloc(sizeof(struct setkey_parm));
++ if (psetkeyparm == NULL) {
++ kfree((unsigned char *)pcmd);
++ res = _FAIL;
+ goto exit;
+ }
+
+ memset(psetkeyparm, 0, sizeof(struct setkey_parm));
-+
-+ psetkeyparm->keyid=(u8)keyid;
++
++ psetkeyparm->keyid =(u8)keyid;
+ if (is_wep_enc(alg))
+ padapter->securitypriv.key_mask |= BIT(psetkeyparm->keyid);
+
@@ -1678,13 +1692,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+
+ psetkeyparm->set_tx = set_tx;
+
-+ switch(alg)
++ switch (alg)
+ {
-+ case _WEP40_:
++ case _WEP40_:
+ keylen = 5;
+ break;
+ case _WEP104_:
-+ keylen = 13;
++ keylen = 13;
+ break;
+ case _TKIP_:
+ case _TKIP_WTMIC_:
@@ -1694,15 +1708,15 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ }
+
+ memcpy(&(psetkeyparm->key[0]), key, keylen);
-+
++
+ pcmd->cmdcode = _SetKey_CMD_;
-+ pcmd->parmbuf = (u8 *)psetkeyparm;
-+ pcmd->cmdsz = (sizeof(struct setkey_parm));
++ pcmd->parmbuf = (u8 *)psetkeyparm;
++ pcmd->cmdsz = (sizeof(struct setkey_parm));
+ pcmd->rsp = NULL;
+ pcmd->rspsz = 0;
+
+
-+ _rtw_init_listhead(&pcmd->list);
++ INIT_LIST_HEAD(&pcmd->list);
+
+ res = rtw_enqueue_cmd(pcmdpriv, pcmd);
+
@@ -1711,128 +1725,126 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ return res;
+}
+
-+int rtw_ap_set_group_key(_adapter *padapter, u8 *key, u8 alg, int keyid)
++int rtw_ap_set_group_key(struct adapter *padapter, u8 *key, u8 alg, int keyid)
+{
-+ DBG_871X("%s\n", __FUNCTION__);
++ DBG_871X("%s\n", __func__);
+
+ return rtw_ap_set_key(padapter, key, alg, keyid, 1);
+}
+
-+int rtw_ap_set_wep_key(_adapter *padapter, u8 *key, u8 keylen, int keyid, u8 set_tx)
++int rtw_ap_set_wep_key(struct adapter *padapter, u8 *key, u8 keylen, int keyid, u8 set_tx)
+{
+ u8 alg;
+
-+ switch(keylen)
++ switch (keylen)
+ {
+ case 5:
-+ alg =_WEP40_;
++ alg = _WEP40_;
+ break;
+ case 13:
-+ alg =_WEP104_;
++ alg = _WEP104_;
+ break;
+ default:
-+ alg =_NO_PRIVACY_;
++ alg = _NO_PRIVACY_;
+ }
+
-+ DBG_871X("%s\n", __FUNCTION__);
++ DBG_871X("%s\n", __func__);
+
+ return rtw_ap_set_key(padapter, key, alg, keyid, set_tx);
+}
+
-+#ifdef CONFIG_NATIVEAP_MLME
-+
-+static void update_bcn_fixed_ie(_adapter *padapter)
++static void update_bcn_fixed_ie(struct adapter *padapter)
+{
-+ DBG_871X("%s\n", __FUNCTION__);
++ DBG_871X("%s\n", __func__);
+
+}
+
-+static void update_bcn_erpinfo_ie(_adapter *padapter)
++static void update_bcn_erpinfo_ie(struct adapter *padapter)
+{
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *pnetwork = &(pmlmeinfo->network);
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *pnetwork = &(pmlmeinfo->network);
+ unsigned char *p, *ie = pnetwork->IEs;
+ u32 len = 0;
+
-+ DBG_871X("%s, ERP_enable=%d\n", __FUNCTION__, pmlmeinfo->ERP_enable);
++ DBG_871X("%s, ERP_enable =%d\n", __func__, pmlmeinfo->ERP_enable);
+
-+ if(!pmlmeinfo->ERP_enable)
++ if (!pmlmeinfo->ERP_enable)
+ return;
+
-+ //parsing ERP_IE
++ /* parsing ERP_IE */
+ p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _ERPINFO_IE_, &len, (pnetwork->IELength - _BEACON_IE_OFFSET_));
-+ if(p && len>0)
++ if (p && len>0)
+ {
-+ PNDIS_802_11_VARIABLE_IEs pIE = (PNDIS_802_11_VARIABLE_IEs)p;
++ struct ndis_80211_var_ie * pIE = (struct ndis_80211_var_ie *)p;
+
+ if (pmlmepriv->num_sta_non_erp == 1)
+ pIE->data[0] |= RTW_ERP_INFO_NON_ERP_PRESENT|RTW_ERP_INFO_USE_PROTECTION;
+ else
+ pIE->data[0] &= ~(RTW_ERP_INFO_NON_ERP_PRESENT|RTW_ERP_INFO_USE_PROTECTION);
+
-+ if(pmlmepriv->num_sta_no_short_preamble > 0)
++ if (pmlmepriv->num_sta_no_short_preamble > 0)
+ pIE->data[0] |= RTW_ERP_INFO_BARKER_PREAMBLE_MODE;
+ else
+ pIE->data[0] &= ~(RTW_ERP_INFO_BARKER_PREAMBLE_MODE);
-+
++
+ ERP_IE_handler(padapter, pIE);
+ }
-+
++
+}
+
-+static void update_bcn_htcap_ie(_adapter *padapter)
++static void update_bcn_htcap_ie(struct adapter *padapter)
+{
-+ DBG_871X("%s\n", __FUNCTION__);
++ DBG_871X("%s\n", __func__);
+
+}
+
-+static void update_bcn_htinfo_ie(_adapter *padapter)
-+{
-+ DBG_871X("%s\n", __FUNCTION__);
-+
-+}
-+
-+static void update_bcn_rsn_ie(_adapter *padapter)
++static void update_bcn_htinfo_ie(struct adapter *padapter)
+{
-+ DBG_871X("%s\n", __FUNCTION__);
++ DBG_871X("%s\n", __func__);
+
+}
+
-+static void update_bcn_wpa_ie(_adapter *padapter)
++static void update_bcn_rsn_ie(struct adapter *padapter)
+{
-+ DBG_871X("%s\n", __FUNCTION__);
++ DBG_871X("%s\n", __func__);
+
+}
+
-+static void update_bcn_wmm_ie(_adapter *padapter)
++static void update_bcn_wpa_ie(struct adapter *padapter)
+{
-+ DBG_871X("%s\n", __FUNCTION__);
-+
++ DBG_871X("%s\n", __func__);
++
+}
+
-+static void update_bcn_wps_ie(_adapter *padapter)
++static void update_bcn_wmm_ie(struct adapter *padapter)
+{
-+ u8 *pwps_ie=NULL, *pwps_ie_src, *premainder_ie, *pbackup_remainder_ie=NULL;
-+ uint wps_ielen=0, wps_offset, remainder_ielen;
++ DBG_871X("%s\n", __func__);
++
++}
++
++static void update_bcn_wps_ie(struct adapter *padapter)
++{
++ u8 *pwps_ie = NULL, *pwps_ie_src, *premainder_ie, *pbackup_remainder_ie = NULL;
++ uint wps_ielen = 0, wps_offset, remainder_ielen;
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *pnetwork = &(pmlmeinfo->network);
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *pnetwork = &(pmlmeinfo->network);
+ unsigned char *ie = pnetwork->IEs;
+ u32 ielen = pnetwork->IELength;
+
+
-+ DBG_871X("%s\n", __FUNCTION__);
++ DBG_871X("%s\n", __func__);
+
+ pwps_ie = rtw_get_wps_ie(ie+_FIXED_IE_LENGTH_, ielen-_FIXED_IE_LENGTH_, NULL, &wps_ielen);
-+
-+ if(pwps_ie==NULL || wps_ielen==0)
++
++ if (pwps_ie == NULL || wps_ielen == 0)
+ return;
+
+ pwps_ie_src = pmlmepriv->wps_beacon_ie;
-+ if(pwps_ie_src == NULL)
++ if (pwps_ie_src == NULL)
+ return;
+
+ wps_offset = (uint)(pwps_ie-ie);
@@ -1841,37 +1853,37 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+
+ remainder_ielen = ielen - wps_offset - wps_ielen;
+
-+ if(remainder_ielen>0)
++ if (remainder_ielen>0)
+ {
+ pbackup_remainder_ie = rtw_malloc(remainder_ielen);
-+ if(pbackup_remainder_ie)
++ if (pbackup_remainder_ie)
+ memcpy(pbackup_remainder_ie, premainder_ie, remainder_ielen);
+ }
+
-+ wps_ielen = (uint)pwps_ie_src[1];//to get ie data len
-+ if((wps_offset+wps_ielen+2+remainder_ielen)<=MAX_IE_SZ)
++ wps_ielen = (uint)pwps_ie_src[1];/* to get ie data len */
++ if ((wps_offset+wps_ielen+2+remainder_ielen)<=MAX_IE_SZ)
+ {
+ memcpy(pwps_ie, pwps_ie_src, wps_ielen+2);
+ pwps_ie += (wps_ielen+2);
+
-+ if(pbackup_remainder_ie)
++ if (pbackup_remainder_ie)
+ memcpy(pwps_ie, pbackup_remainder_ie, remainder_ielen);
+
-+ //update IELength
++ /* update IELength */
+ pnetwork->IELength = wps_offset + (wps_ielen+2) + remainder_ielen;
+ }
+
-+ if(pbackup_remainder_ie)
-+ rtw_mfree(pbackup_remainder_ie, remainder_ielen);
-+
-+ // deal with the case without set_tx_beacon_cmd() in update_beacon()
-+#if defined( CONFIG_INTERRUPT_BASED_TXBCN )
-+ if( (pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE)
++ if (pbackup_remainder_ie)
++ kfree(pbackup_remainder_ie);
++
++ /* deal with the case without set_tx_beacon_cmd() in update_beacon() */
++#if defined(CONFIG_INTERRUPT_BASED_TXBCN)
++ if ((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE)
+ {
+ u8 sr = 0;
-+ rtw_get_wps_attr_content(pwps_ie_src, wps_ielen, WPS_ATTR_SELECTED_REGISTRAR, (u8*)(&sr), NULL);
-+
-+ if( sr ) {
++ rtw_get_wps_attr_content(pwps_ie_src, wps_ielen, WPS_ATTR_SELECTED_REGISTRAR, (u8 *)(&sr), NULL);
++
++ if (sr) {
+ set_fwstate(pmlmepriv, WIFI_UNDER_WPS);
+ DBG_871X("%s, set WIFI_UNDER_WPS\n", __func__);
+ }
@@ -1879,72 +1891,71 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+#endif
+}
+
-+static void update_bcn_p2p_ie(_adapter *padapter)
++static void update_bcn_p2p_ie(struct adapter *padapter)
+{
+
+}
+
-+static void update_bcn_vendor_spec_ie(_adapter *padapter, u8*oui)
++static void update_bcn_vendor_spec_ie(struct adapter *padapter, u8*oui)
+{
-+ DBG_871X("%s\n", __FUNCTION__);
++ DBG_871X("%s\n", __func__);
+
-+ if(!memcmp(RTW_WPA_OUI, oui, 4))
++ if (!memcmp(RTW_WPA_OUI, oui, 4))
+ {
+ update_bcn_wpa_ie(padapter);
+ }
-+ else if(!memcmp(WMM_OUI, oui, 4))
++ else if (!memcmp(WMM_OUI, oui, 4))
+ {
+ update_bcn_wmm_ie(padapter);
+ }
-+ else if(!memcmp(WPS_OUI, oui, 4))
++ else if (!memcmp(WPS_OUI, oui, 4))
+ {
+ update_bcn_wps_ie(padapter);
+ }
-+ else if(!memcmp(P2P_OUI, oui, 4))
++ else if (!memcmp(P2P_OUI, oui, 4))
+ {
+ update_bcn_p2p_ie(padapter);
+ }
+ else
+ {
+ DBG_871X("unknown OUI type!\n");
-+ }
-+
-+
++ }
++
++
+}
+
-+void update_beacon(_adapter *padapter, u8 ie_id, u8 *oui, u8 tx)
++void update_beacon(struct adapter *padapter, u8 ie_id, u8 *oui, u8 tx)
+{
-+ _irqL irqL;
+ struct mlme_priv *pmlmepriv;
-+ struct mlme_ext_priv *pmlmeext;
-+ //struct mlme_ext_info *pmlmeinfo;
-+
-+ //DBG_871X("%s\n", __FUNCTION__);
++ struct mlme_ext_priv *pmlmeext;
++ /* struct mlme_ext_info *pmlmeinfo; */
+
-+ if(!padapter)
++ /* DBG_871X("%s\n", __func__); */
++
++ if (!padapter)
+ return;
+
+ pmlmepriv = &(padapter->mlmepriv);
+ pmlmeext = &(padapter->mlmeextpriv);
-+ //pmlmeinfo = &(pmlmeext->mlmext_info);
++ /* pmlmeinfo = &(pmlmeext->mlmext_info); */
+
-+ if(false == pmlmeext->bstart_bss)
++ if (false == pmlmeext->bstart_bss)
+ return;
+
-+ _enter_critical_bh(&pmlmepriv->bcn_update_lock, &irqL);
++ spin_lock_bh(&pmlmepriv->bcn_update_lock);
+
-+ switch(ie_id)
++ switch (ie_id)
+ {
+ case 0xFF:
+
-+ update_bcn_fixed_ie(padapter);//8: TimeStamp, 2: Beacon Interval 2:Capability
-+
++ update_bcn_fixed_ie(padapter);/* 8: TimeStamp, 2: Beacon Interval 2:Capability */
++
+ break;
-+
++
+ case _TIM_IE_:
-+
++
+ update_BCNTIM(padapter);
-+
++
+ break;
+
+ case _ERPINFO_IE_:
@@ -1956,7 +1967,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ case _HT_CAPABILITY_IE_:
+
+ update_bcn_htcap_ie(padapter);
-+
++
+ break;
+
+ case _RSN_IE_2_:
@@ -1964,35 +1975,35 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ update_bcn_rsn_ie(padapter);
+
+ break;
-+
++
+ case _HT_ADD_INFO_IE_:
+
+ update_bcn_htinfo_ie(padapter);
-+
++
+ break;
-+
++
+ case _VENDOR_SPECIFIC_IE_:
+
+ update_bcn_vendor_spec_ie(padapter, oui);
-+
++
+ break;
-+
++
+ default:
+ break;
+ }
+
+ pmlmepriv->update_bcn = true;
-+
-+ _exit_critical_bh(&pmlmepriv->bcn_update_lock, &irqL);
-+
-+#ifndef CONFIG_INTERRUPT_BASED_TXBCN
-+ if(tx)
++
++ spin_unlock_bh(&pmlmepriv->bcn_update_lock);
++
++#ifndef CONFIG_INTERRUPT_BASED_TXBCN
++ if (tx)
+ {
-+ //send_beacon(padapter);//send_beacon must execute on TSR level
++ /* send_beacon(padapter);//send_beacon must execute on TSR level */
+ set_tx_beacon_cmd(padapter);
+ }
-+#endif //!CONFIG_INTERRUPT_BASED_TXBCN
-+
++#endif /* CONFIG_INTERRUPT_BASED_TXBCN */
++
+}
+
+/*
@@ -2007,21 +2018,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+Set to 3 (HT mixed mode) when one or more non-HT STAs are associated
+ (currently non-GF HT station is considered as non-HT STA also)
+*/
-+static int rtw_ht_operation_update(_adapter *padapter)
++static int rtw_ht_operation_update(struct adapter *padapter)
+{
+ u16 cur_op_mode, new_op_mode;
+ int op_mode_changes = 0;
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ struct ht_priv *phtpriv_ap = &pmlmepriv->htpriv;
++ struct ht_priv *phtpriv_ap = &pmlmepriv->htpriv;
+
-+ if(pmlmepriv->htpriv.ht_option == true)
++ if (pmlmepriv->htpriv.ht_option == true)
+ return 0;
-+
-+ //if (!iface->conf->ieee80211n || iface->conf->ht_op_mode_fixed)
-+ // return 0;
+
-+ DBG_871X("%s current operation mode=0x%X\n",
-+ __FUNCTION__, pmlmepriv->ht_op_mode);
++ /* if (!iface->conf->ieee80211n || iface->conf->ht_op_mode_fixed) */
++ /* return 0; */
++
++ DBG_871X("%s current operation mode = 0x%X\n",
++ __func__, pmlmepriv->ht_op_mode);
+
+ if (!(pmlmepriv->ht_op_mode & HT_INFO_OPERATION_MODE_NON_GF_DEVS_PRESENT)
+ && pmlmepriv->num_sta_ht_no_gf) {
@@ -2056,7 +2067,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ if (pmlmepriv->num_sta_no_ht ||
+ (pmlmepriv->ht_op_mode & HT_INFO_OPERATION_MODE_NON_GF_DEVS_PRESENT))
+ new_op_mode = OP_MODE_MIXED;
-+ else if ((phtpriv_ap->ht_cap.cap_info & IEEE80211_HT_CAP_SUP_WIDTH)
++ else if ((le16_to_cpu(phtpriv_ap->ht_cap.cap_info) & IEEE80211_HT_CAP_SUP_WIDTH)
+ && pmlmepriv->num_sta_ht_20mhz)
+ new_op_mode = OP_MODE_20MHZ_HT_STA_ASSOCED;
+ else if (pmlmepriv->olbc_ht)
@@ -2071,158 +2082,157 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ op_mode_changes++;
+ }
+
-+ DBG_871X("%s new operation mode=0x%X changes=%d\n",
-+ __FUNCTION__, pmlmepriv->ht_op_mode, op_mode_changes);
++ DBG_871X("%s new operation mode = 0x%X changes =%d\n",
++ __func__, pmlmepriv->ht_op_mode, op_mode_changes);
+
+ return op_mode_changes;
-+
++
+}
+
-+void associated_clients_update(_adapter *padapter, u8 updated)
++void associated_clients_update(struct adapter *padapter, u8 updated)
+{
-+ //update associcated stations cap.
-+ if(updated == true)
++ /* update associcated stations cap. */
++ if (updated == true)
+ {
-+ _irqL irqL;
-+ _list *phead, *plist;
-+ struct sta_info *psta=NULL;
++ struct list_head *phead, *plist;
++ struct sta_info *psta = NULL;
+ struct sta_priv *pstapriv = &padapter->stapriv;
-+
-+ _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+
++
++ spin_lock_bh(&pstapriv->asoc_list_lock);
++
+ phead = &pstapriv->asoc_list;
+ plist = get_next(phead);
-+
-+ //check asoc_queue
-+ while ((rtw_end_of_queue_search(phead, plist)) == false)
++
++ /* check asoc_queue */
++ while (phead != plist)
+ {
+ psta = LIST_CONTAINOR(plist, struct sta_info, asoc_list);
-+
++
+ plist = get_next(plist);
+
-+ VCS_update(padapter, psta);
++ VCS_update(padapter, psta);
+ }
+
-+ _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
++ spin_unlock_bh(&pstapriv->asoc_list_lock);
+
-+ }
++ }
+
+}
+
+/* called > TSR LEVEL for USB or SDIO Interface*/
-+void bss_cap_update_on_sta_join(_adapter *padapter, struct sta_info *psta)
++void bss_cap_update_on_sta_join(struct adapter *padapter, struct sta_info *psta)
+{
+ u8 beacon_updated = false;
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
+
-+ if(!(psta->flags & WLAN_STA_SHORT_PREAMBLE))
++ if (!(psta->flags & WLAN_STA_SHORT_PREAMBLE))
+ {
-+ if(!psta->no_short_preamble_set)
++ if (!psta->no_short_preamble_set)
+ {
+ psta->no_short_preamble_set = 1;
-+
++
+ pmlmepriv->num_sta_no_short_preamble++;
-+
-+ if ((pmlmeext->cur_wireless_mode > WIRELESS_11B) &&
-+ (pmlmepriv->num_sta_no_short_preamble == 1))
++
++ if ((pmlmeext->cur_wireless_mode > WIRELESS_11B) &&
++ (pmlmepriv->num_sta_no_short_preamble == 1))
+ {
+ beacon_updated = true;
+ update_beacon(padapter, 0xFF, NULL, true);
-+ }
-+
++ }
++
+ }
+ }
+ else
+ {
-+ if(psta->no_short_preamble_set)
++ if (psta->no_short_preamble_set)
+ {
+ psta->no_short_preamble_set = 0;
-+
++
+ pmlmepriv->num_sta_no_short_preamble--;
-+
-+ if ((pmlmeext->cur_wireless_mode > WIRELESS_11B) &&
-+ (pmlmepriv->num_sta_no_short_preamble == 0))
++
++ if ((pmlmeext->cur_wireless_mode > WIRELESS_11B) &&
++ (pmlmepriv->num_sta_no_short_preamble == 0))
+ {
+ beacon_updated = true;
+ update_beacon(padapter, 0xFF, NULL, true);
-+ }
-+
++ }
++
+ }
+ }
+
-+ if(psta->flags & WLAN_STA_NONERP)
++ if (psta->flags & WLAN_STA_NONERP)
+ {
-+ if(!psta->nonerp_set)
++ if (!psta->nonerp_set)
+ {
+ psta->nonerp_set = 1;
-+
++
+ pmlmepriv->num_sta_non_erp++;
-+
++
+ if (pmlmepriv->num_sta_non_erp == 1)
+ {
+ beacon_updated = true;
+ update_beacon(padapter, _ERPINFO_IE_, NULL, true);
-+ }
++ }
+ }
-+
++
+ }
+ else
+ {
-+ if(psta->nonerp_set)
++ if (psta->nonerp_set)
+ {
+ psta->nonerp_set = 0;
-+
++
+ pmlmepriv->num_sta_non_erp--;
-+
++
+ if (pmlmepriv->num_sta_non_erp == 0)
+ {
+ beacon_updated = true;
+ update_beacon(padapter, _ERPINFO_IE_, NULL, true);
-+ }
++ }
+ }
-+
++
+ }
+
+
-+ if(!(psta->capability & WLAN_CAPABILITY_SHORT_SLOT))
++ if (!(psta->capability & WLAN_CAPABILITY_SHORT_SLOT))
+ {
-+ if(!psta->no_short_slot_time_set)
++ if (!psta->no_short_slot_time_set)
+ {
+ psta->no_short_slot_time_set = 1;
-+
++
+ pmlmepriv->num_sta_no_short_slot_time++;
-+
++
+ if ((pmlmeext->cur_wireless_mode > WIRELESS_11B) &&
-+ (pmlmepriv->num_sta_no_short_slot_time == 1))
++ (pmlmepriv->num_sta_no_short_slot_time == 1))
+ {
+ beacon_updated = true;
+ update_beacon(padapter, 0xFF, NULL, true);
-+ }
-+
++ }
++
+ }
+ }
+ else
+ {
-+ if(psta->no_short_slot_time_set)
++ if (psta->no_short_slot_time_set)
+ {
+ psta->no_short_slot_time_set = 0;
-+
++
+ pmlmepriv->num_sta_no_short_slot_time--;
-+
++
+ if ((pmlmeext->cur_wireless_mode > WIRELESS_11B) &&
-+ (pmlmepriv->num_sta_no_short_slot_time == 0))
++ (pmlmepriv->num_sta_no_short_slot_time == 0))
+ {
+ beacon_updated = true;
+ update_beacon(padapter, 0xFF, NULL, true);
-+ }
++ }
+ }
-+ }
-+
-+ if (psta->flags & WLAN_STA_HT)
++ }
++
++ if (psta->flags & WLAN_STA_HT)
+ {
+ u16 ht_capab = le16_to_cpu(psta->htpriv.ht_cap.cap_info);
-+
++
+ DBG_871X("HT: STA " MAC_FMT " HT Capabilities "
+ "Info: 0x%04x\n", MAC_ARG(psta->hwaddr), ht_capab);
+
@@ -2230,7 +2240,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ psta->no_ht_set = 0;
+ pmlmepriv->num_sta_no_ht--;
+ }
-+
++
+ if ((ht_capab & IEEE80211_HT_CAP_GRN_FLD) == 0) {
+ if (!psta->no_ht_gf_set) {
+ psta->no_ht_gf_set = 1;
@@ -2238,10 +2248,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ }
+ DBG_871X("%s STA " MAC_FMT " - no "
+ "greenfield, num of non-gf stations %d\n",
-+ __FUNCTION__, MAC_ARG(psta->hwaddr),
++ __func__, MAC_ARG(psta->hwaddr),
+ pmlmepriv->num_sta_ht_no_gf);
+ }
-+
++
+ if ((ht_capab & IEEE80211_HT_CAP_SUP_WIDTH) == 0) {
+ if (!psta->ht_20mhz_set) {
+ psta->ht_20mhz_set = 1;
@@ -2249,21 +2259,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ }
+ DBG_871X("%s STA " MAC_FMT " - 20 MHz HT, "
+ "num of 20MHz HT STAs %d\n",
-+ __FUNCTION__, MAC_ARG(psta->hwaddr),
++ __func__, MAC_ARG(psta->hwaddr),
+ pmlmepriv->num_sta_ht_20mhz);
+ }
-+
-+ }
-+ else
++
++ }
++ else
+ {
+ if (!psta->no_ht_set) {
+ psta->no_ht_set = 1;
+ pmlmepriv->num_sta_no_ht++;
+ }
-+ if(pmlmepriv->htpriv.ht_option == true) {
++ if (pmlmepriv->htpriv.ht_option == true) {
+ DBG_871X("%s STA " MAC_FMT
+ " - no HT, num of non-HT stations %d\n",
-+ __FUNCTION__, MAC_ARG(psta->hwaddr),
++ __func__, MAC_ARG(psta->hwaddr),
+ pmlmepriv->num_sta_no_ht);
+ }
+ }
@@ -2272,22 +2282,22 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ {
+ update_beacon(padapter, _HT_CAPABILITY_IE_, NULL, false);
+ update_beacon(padapter, _HT_ADD_INFO_IE_, NULL, true);
-+ }
++ }
+
-+ //update associcated stations cap.
++ /* update associcated stations cap. */
+ associated_clients_update(padapter, beacon_updated);
+
-+ DBG_871X("%s, updated=%d\n", __func__, beacon_updated);
++ DBG_871X("%s, updated =%d\n", __func__, beacon_updated);
+
+}
+
-+u8 bss_cap_update_on_sta_leave(_adapter *padapter, struct sta_info *psta)
++u8 bss_cap_update_on_sta_leave(struct adapter *padapter, struct sta_info *psta)
+{
+ u8 beacon_updated = false;
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
+
-+ if(!psta)
++ if (!psta)
+ return beacon_updated;
+
+ if (psta->no_short_preamble_set) {
@@ -2298,17 +2308,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ {
+ beacon_updated = true;
+ update_beacon(padapter, 0xFF, NULL, true);
-+ }
-+ }
++ }
++ }
+
+ if (psta->nonerp_set) {
-+ psta->nonerp_set = 0;
++ psta->nonerp_set = 0;
+ pmlmepriv->num_sta_non_erp--;
+ if (pmlmepriv->num_sta_non_erp == 0)
+ {
+ beacon_updated = true;
+ update_beacon(padapter, _ERPINFO_IE_, NULL, true);
-+ }
++ }
+ }
+
+ if (psta->no_short_slot_time_set) {
@@ -2319,9 +2329,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ {
+ beacon_updated = true;
+ update_beacon(padapter, 0xFF, NULL, true);
-+ }
++ }
+ }
-+
++
+ if (psta->no_ht_gf_set) {
+ psta->no_ht_gf_set = 0;
+ pmlmepriv->num_sta_ht_no_gf--;
@@ -2343,50 +2353,46 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ update_beacon(padapter, _HT_ADD_INFO_IE_, NULL, true);
+ }
+
-+ //update associcated stations cap.
-+ //associated_clients_update(padapter, beacon_updated); //move it to avoid deadlock
++ /* update associcated stations cap. */
++ /* associated_clients_update(padapter, beacon_updated); //move it to avoid deadlock */
+
-+ DBG_871X("%s, updated=%d\n", __func__, beacon_updated);
++ DBG_871X("%s, updated =%d\n", __func__, beacon_updated);
+
+ return beacon_updated;
+
+}
+
-+u8 ap_free_sta(_adapter *padapter, struct sta_info *psta, bool active, u16 reason)
++u8 ap_free_sta(struct adapter *padapter, struct sta_info *psta, bool active, u16 reason)
+{
-+ _irqL irqL;
+ u8 beacon_updated = false;
-+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct sta_priv *pstapriv = &padapter->stapriv;
+
-+ if(!psta)
++ if (!psta)
+ return beacon_updated;
+
+ if (active == true)
+ {
-+ //tear down Rx AMPDU
-+ send_delba(padapter, 0, psta->hwaddr);// recipient
-+
-+ //tear down TX AMPDU
-+ send_delba(padapter, 1, psta->hwaddr);// // originator
++ /* tear down Rx AMPDU */
++ send_delba(padapter, 0, psta->hwaddr);/* recipient */
++
++ /* tear down TX AMPDU */
++ send_delba(padapter, 1, psta->hwaddr);/* // originator */
+
+ issue_deauth(padapter, psta->hwaddr, reason);
+ }
+
-+ psta->htpriv.agg_enable_bitmap = 0x0;//reset
-+ psta->htpriv.candidate_tid_bitmap = 0x0;//reset
++ psta->htpriv.agg_enable_bitmap = 0x0;/* reset */
++ psta->htpriv.candidate_tid_bitmap = 0x0;/* reset */
+
+
-+ //report_del_sta_event(padapter, psta->hwaddr, reason);
++ /* report_del_sta_event(padapter, psta->hwaddr, reason); */
+
-+ //clear cam entry / key
++ /* clear cam entry / key */
+ rtw_clearstakey_cmd(padapter, psta, true);
+
+
-+ _enter_critical_bh(&psta->lock, &irqL);
++ spin_lock_bh(&psta->lock);
+ psta->state &= ~_FW_LINKED;
-+ _exit_critical_bh(&psta->lock, &irqL);
++ spin_unlock_bh(&psta->lock);
+
+ rtw_cfg80211_indicate_sta_disassoc(padapter, psta->hwaddr, reason);
+
@@ -2394,88 +2400,48 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+
+ beacon_updated = bss_cap_update_on_sta_leave(padapter, psta);
+
-+ _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
+ rtw_free_stainfo(padapter, psta);
-+ _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+
++
+
+ return beacon_updated;
+
+}
+
-+int rtw_ap_inform_ch_switch(_adapter *padapter, u8 new_ch, u8 ch_offset)
++int rtw_sta_flush(struct adapter *padapter)
+{
-+ _irqL irqL;
-+ _list *phead, *plist;
-+ int ret=0;
-+ struct sta_info *psta = NULL;
++ struct list_head *phead, *plist;
++ int ret = 0;
++ struct sta_info *psta = NULL;
+ struct sta_priv *pstapriv = &padapter->stapriv;
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ u8 bc_addr[ETH_ALEN] = {0xff,0xff,0xff,0xff,0xff,0xff};
-+
-+ if((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
-+ return ret;
-+
-+ DBG_871X(FUNC_NDEV_FMT" with ch:%u, offset:%u\n",
-+ FUNC_NDEV_ARG(padapter->pnetdev), new_ch, ch_offset);
-+
-+ _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ phead = &pstapriv->asoc_list;
-+ plist = get_next(phead);
-+
-+ /* for each sta in asoc_queue */
-+ while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ {
-+ psta = LIST_CONTAINOR(plist, struct sta_info, asoc_list);
-+ plist = get_next(plist);
-+
-+ issue_action_spct_ch_switch(padapter, psta->hwaddr, new_ch, ch_offset);
-+ psta->expire_to = ((pstapriv->expire_to * 2) > 5) ? 5 : (pstapriv->expire_to * 2);
-+ }
-+ _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+
-+ issue_action_spct_ch_switch(padapter, bc_addr, new_ch, ch_offset);
-+
-+ return ret;
-+}
-+
-+int rtw_sta_flush(_adapter *padapter)
-+{
-+ _irqL irqL;
-+ _list *phead, *plist;
-+ int ret=0;
-+ struct sta_info *psta = NULL;
-+ struct sta_priv *pstapriv = &padapter->stapriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ u8 bc_addr[ETH_ALEN] = {0xff,0xff,0xff,0xff,0xff,0xff};
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
+
+ DBG_871X(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(padapter->pnetdev));
+
-+ if((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
++ if ((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
+ return ret;
+
+
-+ _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
++ spin_lock_bh(&pstapriv->asoc_list_lock);
+ phead = &pstapriv->asoc_list;
+ plist = get_next(phead);
+
-+ //free sta asoc_queue
-+ while ((rtw_end_of_queue_search(phead, plist)) == false)
++ /* free sta asoc_queue */
++ while (phead != plist)
+ {
+ psta = LIST_CONTAINOR(plist, struct sta_info, asoc_list);
-+
++
+ plist = get_next(plist);
+
-+ rtw_list_delete(&psta->asoc_list);
++ list_del_init(&psta->asoc_list);
+ pstapriv->asoc_list_cnt--;
+
-+ //_exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
++ /* spin_unlock_bh(&pstapriv->asoc_list_lock); */
+ ap_free_sta(padapter, psta, true, WLAN_REASON_DEAUTH_LEAVING);
-+ //_enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
++ /* spin_lock_bh(&pstapriv->asoc_list_lock); */
+ }
-+ _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
++ spin_unlock_bh(&pstapriv->asoc_list_lock);
+
+
+ issue_deauth(padapter, bc_addr, WLAN_REASON_DEAUTH_LEAVING);
@@ -2487,88 +2453,86 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+}
+
+/* called > TSR LEVEL for USB or SDIO Interface*/
-+void sta_info_update(_adapter *padapter, struct sta_info *psta)
-+{
++void sta_info_update(struct adapter *padapter, struct sta_info *psta)
++{
+ int flags = psta->flags;
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+
-+
-+ //update wmm cap.
-+ if(WLAN_STA_WME&flags)
++
++
++ /* update wmm cap. */
++ if (WLAN_STA_WME&flags)
+ psta->qos_option = 1;
+ else
+ psta->qos_option = 0;
+
-+ if(pmlmepriv->qospriv.qos_option == 0)
++ if (pmlmepriv->qospriv.qos_option == 0)
+ psta->qos_option = 0;
+
-+ //update 802.11n ht cap.
-+ if(WLAN_STA_HT&flags)
++ /* update 802.11n ht cap. */
++ if (WLAN_STA_HT&flags)
+ {
+ psta->htpriv.ht_option = true;
-+ psta->qos_option = 1;
++ psta->qos_option = 1;
+ }
-+ else
++ else
+ {
+ psta->htpriv.ht_option = false;
+ }
-+
-+ if(pmlmepriv->htpriv.ht_option == false)
++
++ if (pmlmepriv->htpriv.ht_option == false)
+ psta->htpriv.ht_option = false;
+
+ update_sta_info_apmode(padapter, psta);
-+
++
+
+}
+
+/* called >= TSR LEVEL for USB or SDIO Interface*/
-+void ap_sta_info_defer_update(_adapter *padapter, struct sta_info *psta)
++void ap_sta_info_defer_update(struct adapter *padapter, struct sta_info *psta)
+{
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
-+ if(psta->state & _FW_LINKED)
++ if (psta->state & _FW_LINKED)
+ {
+ pmlmeinfo->FW_sta_info[psta->mac_id].psta = psta;
-+
-+ //add ratid
-+ add_RATid(padapter, psta, 0);//DM_RATR_STA_INIT
-+ }
++
++ /* add ratid */
++ add_RATid(padapter, psta, 0);/* DM_RATR_STA_INIT */
++ }
+}
+/* restore hw setting from sw data structures */
-+void rtw_ap_restore_network(_adapter *padapter)
++void rtw_ap_restore_network(struct adapter *padapter)
+{
+ struct mlme_priv *mlmepriv = &padapter->mlmepriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+ struct sta_priv * pstapriv = &padapter->stapriv;
+ struct sta_info *psta;
-+ struct security_priv* psecuritypriv=&(padapter->securitypriv);
-+ _irqL irqL;
-+ _list *phead, *plist;
++ struct security_priv* psecuritypriv =&(padapter->securitypriv);
++ struct list_head *phead, *plist;
+ u8 chk_alive_num = 0;
+ char chk_alive_list[NUM_STA];
+ int i;
+
-+ rtw_setopmode_cmd(padapter, Ndis802_11APMode,false);
++ rtw_setopmode_cmd(padapter, Ndis802_11APMode, false);
+
+ set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
+
-+ start_bss_network(padapter, (u8*)&mlmepriv->cur_network.network);
++ start_bss_network(padapter, (u8 *)&mlmepriv->cur_network.network);
+
-+ if((padapter->securitypriv.dot11PrivacyAlgrthm == _TKIP_) ||
++ if ((padapter->securitypriv.dot11PrivacyAlgrthm == _TKIP_) ||
+ (padapter->securitypriv.dot11PrivacyAlgrthm == _AES_))
+ {
+ /* restore group key, WEP keys is restored in ips_leave() */
-+ rtw_set_key(padapter, psecuritypriv, psecuritypriv->dot118021XGrpKeyid, 0,false);
++ rtw_set_key(padapter, psecuritypriv, psecuritypriv->dot118021XGrpKeyid, 0, false);
+ }
+
-+ _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+
++ spin_lock_bh(&pstapriv->asoc_list_lock);
++
+ phead = &pstapriv->asoc_list;
+ plist = get_next(phead);
+
-+ while ((rtw_end_of_queue_search(phead, plist)) == false) {
++ while (phead != plist) {
+ int stainfo_offset;
+
+ psta = LIST_CONTAINOR(plist, struct sta_info, asoc_list);
@@ -2580,7 +2544,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ }
+ }
+
-+ _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
++ spin_unlock_bh(&pstapriv->asoc_list_lock);
+
+ for (i = 0; i < chk_alive_num; i++) {
+ psta = rtw_get_stainfo_by_offset(pstapriv, chk_alive_list[i]);
@@ -2590,29 +2554,29 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ } else if (psta->state &_FW_LINKED) {
+ rtw_sta_media_status_rpt(padapter, psta, 1);
+ Update_RA_Entry(padapter, psta);
-+ //pairwise key
++ /* pairwise key */
+ /* per sta pairwise key and settings */
-+ if( (padapter->securitypriv.dot11PrivacyAlgrthm == _TKIP_) ||
++ if ((padapter->securitypriv.dot11PrivacyAlgrthm == _TKIP_) ||
+ (padapter->securitypriv.dot11PrivacyAlgrthm == _AES_))
+ {
-+ rtw_setstakey_cmd(padapter, psta, true,false);
-+ }
++ rtw_setstakey_cmd(padapter, psta, true, false);
++ }
+ }
+ }
+
+}
+
-+void start_ap_mode(_adapter *padapter)
++void start_ap_mode(struct adapter *padapter)
+{
+ int i;
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
+ struct sta_priv *pstapriv = &padapter->stapriv;
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+ struct wlan_acl_pool *pacl_list = &pstapriv->acl_list;
-+
++
+ pmlmepriv->update_bcn = false;
-+
-+ //init_mlme_ap_info(padapter);
++
++ /* init_mlme_ap_info(padapter); */
+ pmlmeext->bstart_bss = false;
+
+ pmlmepriv->num_sta_non_erp = 0;
@@ -2628,99 +2592,90 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ap.c linux/3rdparty/rtl8723bs/c
+ pmlmepriv->olbc = false;
+
+ pmlmepriv->olbc_ht = false;
-+
++
+ pmlmepriv->ht_op_mode = 0;
+
-+ for(i=0; ista_aid[i] = NULL;
+
-+ pmlmepriv->wps_beacon_ie = NULL;
++ pmlmepriv->wps_beacon_ie = NULL;
+ pmlmepriv->wps_probe_resp_ie = NULL;
+ pmlmepriv->wps_assoc_resp_ie = NULL;
-+
++
+ pmlmepriv->p2p_beacon_ie = NULL;
+ pmlmepriv->p2p_probe_resp_ie = NULL;
+
-+
-+ //for ACL
-+ _rtw_init_listhead(&(pacl_list->acl_node_q.queue));
++
++ /* for ACL */
++ INIT_LIST_HEAD(&(pacl_list->acl_node_q.queue));
+ pacl_list->num = 0;
+ pacl_list->mode = 0;
-+ for(i = 0; i < NUM_ACL; i++)
-+ {
-+ _rtw_init_listhead(&pacl_list->aclnode[i].list);
++ for (i = 0; i < NUM_ACL; i++) {
++ INIT_LIST_HEAD(&pacl_list->aclnode[i].list);
+ pacl_list->aclnode[i].valid = false;
+ }
+
+}
+
-+void stop_ap_mode(_adapter *padapter)
++void stop_ap_mode(struct adapter *padapter)
+{
-+ _irqL irqL;
-+ _list *phead, *plist;
++ struct list_head *phead, *plist;
+ struct rtw_wlan_acl_node *paclnode;
-+ struct sta_info *psta=NULL;
++ struct sta_info *psta = NULL;
+ struct sta_priv *pstapriv = &padapter->stapriv;
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+ struct wlan_acl_pool *pacl_list = &pstapriv->acl_list;
-+ _queue *pacl_node_q =&pacl_list->acl_node_q;
++ struct __queue *pacl_node_q =&pacl_list->acl_node_q;
+
+ pmlmepriv->update_bcn = false;
+ pmlmeext->bstart_bss = false;
+
-+ //reset and init security priv , this can refine with rtw_reset_securitypriv
++ /* reset and init security priv , this can refine with rtw_reset_securitypriv */
+ memset((unsigned char *)&padapter->securitypriv, 0, sizeof (struct security_priv));
+ padapter->securitypriv.ndisauthtype = Ndis802_11AuthModeOpen;
+ padapter->securitypriv.ndisencryptstatus = Ndis802_11WEPDisabled;
+
-+ //for ACL
-+ _enter_critical_bh(&(pacl_node_q->lock), &irqL);
++ /* for ACL */
++ spin_lock_bh(&(pacl_node_q->lock));
+ phead = get_list_head(pacl_node_q);
-+ plist = get_next(phead);
-+ while ((rtw_end_of_queue_search(phead, plist)) == false)
++ plist = get_next(phead);
++ while (phead != plist)
+ {
+ paclnode = LIST_CONTAINOR(plist, struct rtw_wlan_acl_node, list);
+ plist = get_next(plist);
+
-+ if(paclnode->valid == true)
++ if (paclnode->valid == true)
+ {
+ paclnode->valid = false;
+
-+ rtw_list_delete(&paclnode->list);
-+
-+ pacl_list->num--;
-+ }
-+ }
-+ _exit_critical_bh(&(pacl_node_q->lock), &irqL);
-+
-+ DBG_871X("%s, free acl_node_queue, num=%d\n", __func__, pacl_list->num);
-+
++ list_del_init(&paclnode->list);
++
++ pacl_list->num--;
++ }
++ }
++ spin_unlock_bh(&(pacl_node_q->lock));
++
++ DBG_871X("%s, free acl_node_queue, num =%d\n", __func__, pacl_list->num);
++
+ rtw_sta_flush(padapter);
+
-+ //free_assoc_sta_resources
++ /* free_assoc_sta_resources */
+ rtw_free_all_stainfo(padapter);
-+
++
+ psta = rtw_get_bcmc_stainfo(padapter);
-+ _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
+ rtw_free_stainfo(padapter, psta);
-+ _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+
-+ rtw_init_bcmc_stainfo(padapter);
++
++ rtw_init_bcmc_stainfo(padapter);
+
+ rtw_free_mlme_priv_ie_data(pmlmepriv);
+
-+ rtw_btcoex_MediaStatusNotify(padapter, 0); //disconnect
++ rtw_btcoex_MediaStatusNotify(padapter, 0); /* disconnect */
+}
-+
-+#endif //CONFIG_NATIVEAP_MLME
-+
-+#endif //CONFIG_AP_MODE
-+
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_btcoex.c linux/3rdparty/rtl8723bs/core/rtw_btcoex.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_btcoex.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_btcoex.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,295 @@
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_btcoex.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_btcoex.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_btcoex.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_btcoex.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,253 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2013 Realtek Corporation. All rights reserved.
@@ -2734,52 +2689,49 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_btcoex.c linux/3rdparty/rtl8723
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
++#include
++#include
+#include
+#include
+
+
-+void rtw_btcoex_Initialize(PADAPTER padapter)
++void rtw_btcoex_Initialize(struct adapter *padapter)
+{
+ hal_btcoex_Initialize(padapter);
+}
+
-+void rtw_btcoex_PowerOnSetting(PADAPTER padapter)
++void rtw_btcoex_PowerOnSetting(struct adapter *padapter)
+{
+ hal_btcoex_PowerOnSetting(padapter);
+}
+
-+void rtw_btcoex_HAL_Initialize(PADAPTER padapter, u8 bWifiOnly)
++void rtw_btcoex_HAL_Initialize(struct adapter *padapter, u8 bWifiOnly)
+{
+ hal_btcoex_InitHwConfig(padapter, bWifiOnly);
+}
+
-+void rtw_btcoex_IpsNotify(PADAPTER padapter, u8 type)
++void rtw_btcoex_IpsNotify(struct adapter *padapter, u8 type)
+{
+ hal_btcoex_IpsNotify(padapter, type);
+}
+
-+void rtw_btcoex_LpsNotify(PADAPTER padapter, u8 type)
++void rtw_btcoex_LpsNotify(struct adapter *padapter, u8 type)
+{
+ hal_btcoex_LpsNotify(padapter, type);
+}
+
-+void rtw_btcoex_ScanNotify(PADAPTER padapter, u8 type)
++void rtw_btcoex_ScanNotify(struct adapter *padapter, u8 type)
+{
+ hal_btcoex_ScanNotify(padapter, type);
+}
+
-+void rtw_btcoex_ConnectNotify(PADAPTER padapter, u8 action)
++void rtw_btcoex_ConnectNotify(struct adapter *padapter, u8 action)
+{
+ hal_btcoex_ConnectNotify(padapter, action);
+}
+
-+void rtw_btcoex_MediaStatusNotify(PADAPTER padapter, u8 mediaStatus)
++void rtw_btcoex_MediaStatusNotify(struct adapter *padapter, u8 mediaStatus)
+{
+ if ((RT_MEDIA_CONNECT == mediaStatus)
+ && (check_fwstate(&padapter->mlmepriv, WIFI_AP_STATE) == true))
@@ -2790,31 +2742,31 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_btcoex.c linux/3rdparty/rtl8723
+ hal_btcoex_MediaStatusNotify(padapter, mediaStatus);
+}
+
-+void rtw_btcoex_SpecialPacketNotify(PADAPTER padapter, u8 pktType)
++void rtw_btcoex_SpecialPacketNotify(struct adapter *padapter, u8 pktType)
+{
+ hal_btcoex_SpecialPacketNotify(padapter, pktType);
+}
+
-+void rtw_btcoex_IQKNotify(PADAPTER padapter, u8 state)
++void rtw_btcoex_IQKNotify(struct adapter *padapter, u8 state)
+{
+ hal_btcoex_IQKNotify(padapter, state);
+}
+
-+void rtw_btcoex_BtInfoNotify(PADAPTER padapter, u8 length, u8 *tmpBuf)
++void rtw_btcoex_BtInfoNotify(struct adapter *padapter, u8 length, u8 *tmpBuf)
+{
+ hal_btcoex_BtInfoNotify(padapter, length, tmpBuf);
+}
+
-+void rtw_btcoex_SuspendNotify(PADAPTER padapter, u8 state)
++void rtw_btcoex_SuspendNotify(struct adapter *padapter, u8 state)
+{
+ hal_btcoex_SuspendNotify(padapter, state);
+}
+
-+void rtw_btcoex_HaltNotify(PADAPTER padapter)
++void rtw_btcoex_HaltNotify(struct adapter *padapter)
+{
+ if (false == padapter->bup)
+ {
-+ DBG_871X(FUNC_ADPT_FMT ": bup=%d Skip!\n",
++ DBG_871X(FUNC_ADPT_FMT ": bup =%d Skip!\n",
+ FUNC_ADPT_ARG(padapter), padapter->bup);
+
+ return;
@@ -2822,7 +2774,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_btcoex.c linux/3rdparty/rtl8723
+
+ if (true == padapter->bSurpriseRemoved)
+ {
-+ DBG_871X(FUNC_ADPT_FMT ": bSurpriseRemoved=%d Skip!\n",
++ DBG_871X(FUNC_ADPT_FMT ": bSurpriseRemoved =%d Skip!\n",
+ FUNC_ADPT_ARG(padapter), padapter->bSurpriseRemoved);
+
+ return;
@@ -2831,27 +2783,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_btcoex.c linux/3rdparty/rtl8723
+ hal_btcoex_HaltNotify(padapter);
+}
+
-+void rtw_btcoex_SwitchBtTRxMask(PADAPTER padapter)
-+{
-+ hal_btcoex_SwitchBtTRxMask(padapter);
-+}
-+
-+void rtw_btcoex_Switch(PADAPTER padapter, u8 enable)
-+{
-+ hal_btcoex_SetBTCoexist(padapter, enable);
-+}
-+
-+u8 rtw_btcoex_IsBtDisabled(PADAPTER padapter)
++u8 rtw_btcoex_IsBtDisabled(struct adapter *padapter)
+{
+ return hal_btcoex_IsBtDisabled(padapter);
+}
+
-+void rtw_btcoex_Handler(PADAPTER padapter)
++void rtw_btcoex_Handler(struct adapter *padapter)
+{
+ hal_btcoex_Hanlder(padapter);
+}
+
-+s32 rtw_btcoex_IsBTCoexCtrlAMPDUSize(PADAPTER padapter)
++s32 rtw_btcoex_IsBTCoexCtrlAMPDUSize(struct adapter *padapter)
+{
+ s32 coexctrl;
+
@@ -2860,16 +2802,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_btcoex.c linux/3rdparty/rtl8723
+ return coexctrl;
+}
+
-+u32 rtw_btcoex_GetAMPDUSize(PADAPTER padapter)
-+{
-+ u32 size;
-+
-+ size = hal_btcoex_GetAMPDUSize(padapter);
-+
-+ return size;
-+}
-+
-+void rtw_btcoex_SetManualControl(PADAPTER padapter, u8 manual)
++void rtw_btcoex_SetManualControl(struct adapter *padapter, u8 manual)
+{
+ if (true == manual)
+ {
@@ -2881,95 +2814,75 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_btcoex.c linux/3rdparty/rtl8723
+ }
+}
+
-+u8 rtw_btcoex_1Ant(PADAPTER padapter)
-+{
-+ return hal_btcoex_1Ant(padapter);
-+}
-+
-+u8 rtw_btcoex_IsBtControlLps(PADAPTER padapter)
++u8 rtw_btcoex_IsBtControlLps(struct adapter *padapter)
+{
+ return hal_btcoex_IsBtControlLps(padapter);
+}
+
-+u8 rtw_btcoex_IsLpsOn(PADAPTER padapter)
++u8 rtw_btcoex_IsLpsOn(struct adapter *padapter)
+{
+ return hal_btcoex_IsLpsOn(padapter);
+}
+
-+u8 rtw_btcoex_RpwmVal(PADAPTER padapter)
++u8 rtw_btcoex_RpwmVal(struct adapter *padapter)
+{
+ return hal_btcoex_RpwmVal(padapter);
+}
+
-+u8 rtw_btcoex_LpsVal(PADAPTER padapter)
++u8 rtw_btcoex_LpsVal(struct adapter *padapter)
+{
+ return hal_btcoex_LpsVal(padapter);
+}
+
-+void rtw_btcoex_SetBTCoexist(PADAPTER padapter, u8 bBtExist)
++void rtw_btcoex_SetBTCoexist(struct adapter *padapter, u8 bBtExist)
+{
+ hal_btcoex_SetBTCoexist(padapter, bBtExist);
+}
+
-+void rtw_btcoex_SetChipType(PADAPTER padapter, u8 chipType)
++void rtw_btcoex_SetChipType(struct adapter *padapter, u8 chipType)
+{
+ hal_btcoex_SetChipType(padapter, chipType);
+}
+
-+void rtw_btcoex_SetPGAntNum(PADAPTER padapter, u8 antNum)
++void rtw_btcoex_SetPGAntNum(struct adapter *padapter, u8 antNum)
+{
+ hal_btcoex_SetPgAntNum(padapter, antNum);
+}
+
-+u8 rtw_btcoex_GetPGAntNum(PADAPTER padapter)
-+{
-+ return hal_btcoex_GetPgAntNum(padapter);
-+}
-+
-+void rtw_btcoex_SetSingleAntPath(PADAPTER padapter, u8 singleAntPath)
++void rtw_btcoex_SetSingleAntPath(struct adapter *padapter, u8 singleAntPath)
+{
+ hal_btcoex_SetSingleAntPath(padapter, singleAntPath);
+}
+
-+u32 rtw_btcoex_GetRaMask(PADAPTER padapter)
++u32 rtw_btcoex_GetRaMask(struct adapter *padapter)
+{
+ return hal_btcoex_GetRaMask(padapter);
+}
+
-+void rtw_btcoex_RecordPwrMode(PADAPTER padapter, u8 *pCmdBuf, u8 cmdLen)
++void rtw_btcoex_RecordPwrMode(struct adapter *padapter, u8 *pCmdBuf, u8 cmdLen)
+{
+ hal_btcoex_RecordPwrMode(padapter, pCmdBuf, cmdLen);
+}
+
-+void rtw_btcoex_DisplayBtCoexInfo(PADAPTER padapter, u8 *pbuf, u32 bufsize)
++void rtw_btcoex_DisplayBtCoexInfo(struct adapter *padapter, u8 *pbuf, u32 bufsize)
+{
+ hal_btcoex_DisplayBtCoexInfo(padapter, pbuf, bufsize);
+}
+
-+void rtw_btcoex_SetDBG(PADAPTER padapter, u32 *pDbgModule)
++void rtw_btcoex_SetDBG(struct adapter *padapter, u32 *pDbgModule)
+{
+ hal_btcoex_SetDBG(padapter, pDbgModule);
+}
+
-+u32 rtw_btcoex_GetDBG(PADAPTER padapter, u8 *pStrBuf, u32 bufSize)
++u32 rtw_btcoex_GetDBG(struct adapter *padapter, u8 *pStrBuf, u32 bufSize)
+{
+ return hal_btcoex_GetDBG(padapter, pStrBuf, bufSize);
+}
+
-+u8 rtw_btcoex_IncreaseScanDeviceNum(PADAPTER padapter)
-+{
-+ return hal_btcoex_IncreaseScanDeviceNum(padapter);
-+}
-+
-+u8 rtw_btcoex_IsBtLinkExist(PADAPTER padapter)
-+{
-+ return hal_btcoex_IsBtLinkExist(padapter);
-+}
-+
-+// ==================================================
-+// Below Functions are called by BT-Coex
-+// ==================================================
-+void rtw_btcoex_RejectApAggregatedPacket(PADAPTER padapter, u8 enable)
++/* ================================================== */
++/* Below Functions are called by BT-Coex */
++/* ================================================== */
++void rtw_btcoex_RejectApAggregatedPacket(struct adapter *padapter, u8 enable)
+{
+ struct mlme_ext_info *pmlmeinfo;
+ struct sta_info *psta;
@@ -2989,7 +2902,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_btcoex.c linux/3rdparty/rtl8723
+ }
+}
+
-+void rtw_btcoex_LPS_Enter(PADAPTER padapter)
++void rtw_btcoex_LPS_Enter(struct adapter *padapter)
+{
+ struct pwrctrl_priv *pwrpriv;
+ u8 lpsVal;
@@ -3002,7 +2915,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_btcoex.c linux/3rdparty/rtl8723
+ rtw_set_ps_mode(padapter, PS_MODE_MIN, 0, lpsVal, "BTCOEX");
+}
+
-+void rtw_btcoex_LPS_Leave(PADAPTER padapter)
++void rtw_btcoex_LPS_Leave(struct adapter *padapter)
+{
+ struct pwrctrl_priv *pwrpriv;
+
@@ -3016,14 +2929,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_btcoex.c linux/3rdparty/rtl8723
+ pwrpriv->bpower_saving = false;
+ }
+}
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/core/rtw_cmd.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_cmd.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,3241 @@
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_cmd.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_cmd.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_cmd.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_cmd.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,2322 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
-+ *
++ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
@@ -3033,21 +2946,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
+#define _RTW_CMD_C_
+
+#include
++#include
+#include
+
+static struct _cmd_callback rtw_cmd_callback[] =
+{
+ {GEN_CMD_CODE(_Read_MACREG), NULL}, /*0*/
-+ {GEN_CMD_CODE(_Write_MACREG), NULL},
++ {GEN_CMD_CODE(_Write_MACREG), NULL},
+ {GEN_CMD_CODE(_Read_BBREG), &rtw_getbbrfreg_cmdrsp_callback},
+ {GEN_CMD_CODE(_Write_BBREG), NULL},
+ {GEN_CMD_CODE(_Read_RFREG), &rtw_getbbrfreg_cmdrsp_callback},
@@ -3056,32 +2965,32 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ {GEN_CMD_CODE(_Write_EEPROM), NULL},
+ {GEN_CMD_CODE(_Read_EFUSE), NULL},
+ {GEN_CMD_CODE(_Write_EFUSE), NULL},
-+
++
+ {GEN_CMD_CODE(_Read_CAM), NULL}, /*10*/
-+ {GEN_CMD_CODE(_Write_CAM), NULL},
++ {GEN_CMD_CODE(_Write_CAM), NULL},
+ {GEN_CMD_CODE(_setBCNITV), NULL},
-+ {GEN_CMD_CODE(_setMBIDCFG), NULL},
++ {GEN_CMD_CODE(_setMBIDCFG), NULL},
+ {GEN_CMD_CODE(_JoinBss), &rtw_joinbss_cmd_callback}, /*14*/
+ {GEN_CMD_CODE(_DisConnect), &rtw_disassoc_cmd_callback}, /*15*/
+ {GEN_CMD_CODE(_CreateBss), &rtw_createbss_cmd_callback},
+ {GEN_CMD_CODE(_SetOpMode), NULL},
+ {GEN_CMD_CODE(_SiteSurvey), &rtw_survey_cmd_callback}, /*18*/
+ {GEN_CMD_CODE(_SetAuth), NULL},
-+
++
+ {GEN_CMD_CODE(_SetKey), NULL}, /*20*/
+ {GEN_CMD_CODE(_SetStaKey), &rtw_setstaKey_cmdrsp_callback},
+ {GEN_CMD_CODE(_SetAssocSta), &rtw_setassocsta_cmdrsp_callback},
-+ {GEN_CMD_CODE(_DelAssocSta), NULL},
-+ {GEN_CMD_CODE(_SetStaPwrState), NULL},
++ {GEN_CMD_CODE(_DelAssocSta), NULL},
++ {GEN_CMD_CODE(_SetStaPwrState), NULL},
+ {GEN_CMD_CODE(_SetBasicRate), NULL}, /*25*/
+ {GEN_CMD_CODE(_GetBasicRate), NULL},
+ {GEN_CMD_CODE(_SetDataRate), NULL},
+ {GEN_CMD_CODE(_GetDataRate), NULL},
+ {GEN_CMD_CODE(_SetPhyInfo), NULL},
-+
++
+ {GEN_CMD_CODE(_GetPhyInfo), NULL}, /*30*/
+ {GEN_CMD_CODE(_SetPhy), NULL},
-+ {GEN_CMD_CODE(_GetPhy), NULL},
++ {GEN_CMD_CODE(_GetPhy), NULL},
+ {GEN_CMD_CODE(_readRssi), NULL},
+ {GEN_CMD_CODE(_readGain), NULL},
+ {GEN_CMD_CODE(_SetAtim), NULL}, /*35*/
@@ -3089,19 +2998,19 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ {GEN_CMD_CODE(_JoinbssRpt), NULL},
+ {GEN_CMD_CODE(_SetRaTable), NULL},
+ {GEN_CMD_CODE(_GetRaTable) , NULL},
-+
++
+ {GEN_CMD_CODE(_GetCCXReport), NULL}, /*40*/
-+ {GEN_CMD_CODE(_GetDTMReport), NULL},
-+ {GEN_CMD_CODE(_GetTXRateStatistics), NULL},
-+ {GEN_CMD_CODE(_SetUsbSuspend), NULL},
-+ {GEN_CMD_CODE(_SetH2cLbk), NULL},
-+ {GEN_CMD_CODE(_AddBAReq), NULL}, /*45*/
++ {GEN_CMD_CODE(_GetDTMReport), NULL},
++ {GEN_CMD_CODE(_GetTXRateStatistics), NULL},
++ {GEN_CMD_CODE(_SetUsbSuspend), NULL},
++ {GEN_CMD_CODE(_SetH2cLbk), NULL},
++ {GEN_CMD_CODE(_AddBAReq), NULL}, /*45*/
+ {GEN_CMD_CODE(_SetChannel), NULL}, /*46*/
+ {GEN_CMD_CODE(_SetTxPower), NULL},
+ {GEN_CMD_CODE(_SwitchAntenna), NULL},
+ {GEN_CMD_CODE(_SetCrystalCap), NULL},
+ {GEN_CMD_CODE(_SetSingleCarrierTx), NULL}, /*50*/
-+
++
+ {GEN_CMD_CODE(_SetSingleToneTx), NULL}, /*51*/
+ {GEN_CMD_CODE(_SetCarrierSuppressionTx), NULL},
+ {GEN_CMD_CODE(_SetContinuousTx), NULL},
@@ -3113,7 +3022,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ {GEN_CMD_CODE(_Set_H2C_MSG), NULL},/*58*/
+ {GEN_CMD_CODE(_SetChannelPlan), NULL},/*59*/
+ {GEN_CMD_CODE(_LedBlink), NULL},/*60*/
-+
++
+ {GEN_CMD_CODE(_SetChannelSwitch), NULL},/*61*/
+ {GEN_CMD_CODE(_TDLS), NULL},/*62*/
+ {GEN_CMD_CODE(_ChkBMCSleepq), NULL}, /*63*/
@@ -3135,7 +3044,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ GEN_MLME_EXT_HANDLER(0, NULL) /*10*/
+ GEN_MLME_EXT_HANDLER(0, NULL)
+ GEN_MLME_EXT_HANDLER(0, NULL)
-+ GEN_MLME_EXT_HANDLER(0, NULL)
++ GEN_MLME_EXT_HANDLER(0, NULL)
+ GEN_MLME_EXT_HANDLER(sizeof (struct joinbss_parm), join_cmd_hdl) /*14*/
+ GEN_MLME_EXT_HANDLER(sizeof (struct disconnect_parm), disconnect_hdl)
+ GEN_MLME_EXT_HANDLER(sizeof (struct createbss_parm), createbss_hdl)
@@ -3167,7 +3076,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ GEN_MLME_EXT_HANDLER(0, NULL)
+ GEN_MLME_EXT_HANDLER(0, NULL)
+ GEN_MLME_EXT_HANDLER(0, NULL)
-+ GEN_MLME_EXT_HANDLER(sizeof(struct addBaReq_parm), add_ba_hdl)
++ GEN_MLME_EXT_HANDLER(sizeof(struct addBaReq_parm), add_ba_hdl)
+ GEN_MLME_EXT_HANDLER(sizeof(struct set_ch_parm), set_ch_hdl) /* 46 */
+ GEN_MLME_EXT_HANDLER(0, NULL)
+ GEN_MLME_EXT_HANDLER(0, NULL)
@@ -3176,7 +3085,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ GEN_MLME_EXT_HANDLER(0, NULL)
+ GEN_MLME_EXT_HANDLER(0, NULL)
+ GEN_MLME_EXT_HANDLER(0, NULL)
-+ GEN_MLME_EXT_HANDLER(0, NULL)
++ GEN_MLME_EXT_HANDLER(0, NULL)
+ GEN_MLME_EXT_HANDLER(sizeof(struct Tx_Beacon_param), tx_beacon_hdl) /*55*/
+
+ GEN_MLME_EXT_HANDLER(0, mlme_evt_hdl) /*56*/
@@ -3199,58 +3108,50 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+
+sint _rtw_init_cmd_priv (struct cmd_priv *pcmdpriv)
+{
-+ sint res=_SUCCESS;
-+
-+_func_enter_;
++ sint res = _SUCCESS;
+
+ sema_init(&(pcmdpriv->cmd_queue_sema), 0);
-+ //sema_init(&(pcmdpriv->cmd_done_sema), 0);
++ /* sema_init(&(pcmdpriv->cmd_done_sema), 0); */
+ sema_init(&(pcmdpriv->terminate_cmdthread_sema), 0);
-+
-+
++
++
+ _rtw_init_queue(&(pcmdpriv->cmd_queue));
-+
-+ //allocate DMA-able/Non-Page memory for cmd_buf and rsp_buf
-+
++
++ /* allocate DMA-able/Non-Page memory for cmd_buf and rsp_buf */
++
+ pcmdpriv->cmd_seq = 1;
-+
++
+ pcmdpriv->cmd_allocated_buf = rtw_zmalloc(MAX_CMDSZ + CMDBUFF_ALIGN_SZ);
-+
-+ if (pcmdpriv->cmd_allocated_buf == NULL){
-+ res= _FAIL;
++
++ if (pcmdpriv->cmd_allocated_buf == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
-+
-+ pcmdpriv->cmd_buf = pcmdpriv->cmd_allocated_buf + CMDBUFF_ALIGN_SZ - ( (SIZE_PTR)(pcmdpriv->cmd_allocated_buf) & (CMDBUFF_ALIGN_SZ-1));
-+
++
++ pcmdpriv->cmd_buf = pcmdpriv->cmd_allocated_buf + CMDBUFF_ALIGN_SZ - ((SIZE_PTR)(pcmdpriv->cmd_allocated_buf) & (CMDBUFF_ALIGN_SZ-1));
++
+ pcmdpriv->rsp_allocated_buf = rtw_zmalloc(MAX_RSPSZ + 4);
-+
-+ if (pcmdpriv->rsp_allocated_buf == NULL){
-+ res= _FAIL;
++
++ if (pcmdpriv->rsp_allocated_buf == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
-+
-+ pcmdpriv->rsp_buf = pcmdpriv->rsp_allocated_buf + 4 - ( (SIZE_PTR)(pcmdpriv->rsp_allocated_buf) & 3);
++
++ pcmdpriv->rsp_buf = pcmdpriv->rsp_allocated_buf + 4 - ((SIZE_PTR)(pcmdpriv->rsp_allocated_buf) & 3);
+
+ pcmdpriv->cmd_issued_cnt = pcmdpriv->cmd_done_cnt = pcmdpriv->rsp_cnt = 0;
+
+ mutex_init(&pcmdpriv->sctx_mutex);
+exit:
-+
-+_func_exit_;
-+
+ return res;
-+
-+}
++}
+
+static void c2h_wk_callback(_workitem *work);
+sint _rtw_init_evt_priv(struct evt_priv *pevtpriv)
+{
-+ sint res=_SUCCESS;
++ sint res = _SUCCESS;
+
-+_func_enter_;
-+
-+ //allocate DMA-able/Non-Page memory for cmd_buf and rsp_buf
++ /* allocate DMA-able/Non-Page memory for cmd_buf and rsp_buf */
+ atomic_set(&pevtpriv->event_seq, 0);
+ pevtpriv->evt_done_cnt = 0;
+
@@ -3258,165 +3159,140 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ pevtpriv->c2h_wk_alive = false;
+ pevtpriv->c2h_queue = rtw_cbuf_alloc(C2H_QUEUE_MAX_LEN+1);
+
-+_func_exit_;
-+
+ return res;
+}
+
+void _rtw_free_evt_priv (struct evt_priv *pevtpriv)
+{
-+_func_enter_;
-+
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_info_,("+_rtw_free_evt_priv \n"));
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("+_rtw_free_evt_priv\n"));
+
+ _cancel_workitem_sync(&pevtpriv->c2h_wk);
-+ while(pevtpriv->c2h_wk_alive)
++ while (pevtpriv->c2h_wk_alive)
+ msleep(10);
+
+ while (!rtw_cbuf_empty(pevtpriv->c2h_queue)) {
+ void *c2h;
+ if ((c2h = rtw_cbuf_pop(pevtpriv->c2h_queue)) != NULL
+ && c2h != (void *)pevtpriv) {
-+ rtw_mfree(c2h, 16);
++ kfree(c2h);
+ }
+ }
-+ rtw_cbuf_free(pevtpriv->c2h_queue);
-+
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_info_,("-_rtw_free_evt_priv \n"));
-+
-+_func_exit_;
++ kfree(pevtpriv->c2h_queue);
+
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("-_rtw_free_evt_priv\n"));
+}
+
+void _rtw_free_cmd_priv (struct cmd_priv *pcmdpriv)
+{
-+_func_enter_;
-+
-+ if(pcmdpriv){
++ if (pcmdpriv) {
+ if (pcmdpriv->cmd_allocated_buf)
-+ rtw_mfree(pcmdpriv->cmd_allocated_buf, MAX_CMDSZ + CMDBUFF_ALIGN_SZ);
-+
++ kfree(pcmdpriv->cmd_allocated_buf);
++
+ if (pcmdpriv->rsp_allocated_buf)
-+ rtw_mfree(pcmdpriv->rsp_allocated_buf, MAX_RSPSZ + 4);
++ kfree(pcmdpriv->rsp_allocated_buf);
+
+ mutex_destroy(&pcmdpriv->sctx_mutex);
+ }
-+_func_exit_;
+}
+
+/*
+Calling Context:
+
-+rtw_enqueue_cmd can only be called between kernel thread,
++rtw_enqueue_cmd can only be called between kernel thread,
+since only spin_lock is used.
+
+ISR/Call-Back functions can't call this sub-function.
+
+*/
+
-+sint _rtw_enqueue_cmd(_queue *queue, struct cmd_obj *obj)
++sint _rtw_enqueue_cmd(struct __queue *queue, struct cmd_obj *obj)
+{
+ _irqL irqL;
+
-+_func_enter_;
-+
+ if (obj == NULL)
+ goto exit;
+
-+ //_enter_critical_bh(&queue->lock, &irqL);
-+ _enter_critical(&queue->lock, &irqL);
++ /* spin_lock_bh(&queue->lock); */
++ spin_lock_irqsave(&queue->lock, irqL);
+
-+ rtw_list_insert_tail(&obj->list, &queue->queue);
++ list_add_tail(&obj->list, &queue->queue);
+
-+ //_exit_critical_bh(&queue->lock, &irqL);
-+ _exit_critical(&queue->lock, &irqL);
-+
-+exit:
-+
-+_func_exit_;
++ /* spin_unlock_bh(&queue->lock); */
++ spin_unlock_irqrestore(&queue->lock, irqL);
+
++exit:
+ return _SUCCESS;
+}
+
-+struct cmd_obj *_rtw_dequeue_cmd(_queue *queue)
++struct cmd_obj *_rtw_dequeue_cmd(struct __queue *queue)
+{
+ _irqL irqL;
+ struct cmd_obj *obj;
+
-+_func_enter_;
-+
-+ //_enter_critical_bh(&(queue->lock), &irqL);
-+ _enter_critical(&queue->lock, &irqL);
-+ if (rtw_is_list_empty(&(queue->queue)))
++ /* spin_lock_bh(&(queue->lock)); */
++ spin_lock_irqsave(&queue->lock, irqL);
++ if (list_empty(&(queue->queue)))
+ obj = NULL;
+ else
+ {
+ obj = LIST_CONTAINOR(get_next(&(queue->queue)), struct cmd_obj, list);
-+ rtw_list_delete(&obj->list);
++ list_del_init(&obj->list);
+ }
+
-+ //_exit_critical_bh(&(queue->lock), &irqL);
-+ _exit_critical(&queue->lock, &irqL);
-+
-+_func_exit_;
++ /* spin_unlock_bh(&(queue->lock)); */
++ spin_unlock_irqrestore(&queue->lock, irqL);
+
+ return obj;
+}
+
-+u32 rtw_init_cmd_priv(struct cmd_priv *pcmdpriv)
++u32 rtw_init_cmd_priv(struct cmd_priv *pcmdpriv)
+{
-+ u32 res;
-+_func_enter_;
++ u32 res;
++
+ res = _rtw_init_cmd_priv (pcmdpriv);
-+_func_exit_;
-+ return res;
++ return res;
+}
+
-+u32 rtw_init_evt_priv (struct evt_priv *pevtpriv)
++u32 rtw_init_evt_priv (struct evt_priv *pevtpriv)
+{
+ int res;
-+_func_enter_;
++
+ res = _rtw_init_evt_priv(pevtpriv);
-+_func_exit_;
+ return res;
+}
+
+void rtw_free_evt_priv (struct evt_priv *pevtpriv)
+{
-+_func_enter_;
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_info_,("rtw_free_evt_priv\n"));
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("rtw_free_evt_priv\n"));
+ _rtw_free_evt_priv(pevtpriv);
-+_func_exit_;
-+}
++}
+
+void rtw_free_cmd_priv (struct cmd_priv *pcmdpriv)
+{
-+_func_enter_;
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_info_,("rtw_free_cmd_priv\n"));
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("rtw_free_cmd_priv\n"));
+ _rtw_free_cmd_priv(pcmdpriv);
-+_func_exit_;
-+}
++}
+
+int rtw_cmd_filter(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj);
+int rtw_cmd_filter(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj)
+{
-+ u8 bAllow = false; //set to true to allow enqueuing cmd when hw_init_completed is false
-+
-+ if(cmd_obj->cmdcode == GEN_CMD_CODE(_SetChannelPlan))
++ u8 bAllow = false; /* set to true to allow enqueuing cmd when hw_init_completed is false */
++
++ if (cmd_obj->cmdcode == GEN_CMD_CODE(_SetChannelPlan))
+ bAllow = true;
+
-+ if( (pcmdpriv->padapter->hw_init_completed ==false && bAllow == false)
-+ || atomic_read(&(pcmdpriv->cmdthd_running)) == false //com_thread not running
++ if ((pcmdpriv->padapter->hw_init_completed ==false && bAllow == false)
++ || atomic_read(&(pcmdpriv->cmdthd_running)) == false /* com_thread not running */
+ )
+ {
-+ //DBG_871X("%s:%s: drop cmdcode:%u, hw_init_completed:%u, cmdthd_running:%u\n", caller_func, __FUNCTION__,
-+ // cmd_obj->cmdcode,
-+ // pcmdpriv->padapter->hw_init_completed,
-+ // pcmdpriv->cmdthd_running
-+ //);
++ /* DBG_871X("%s:%s: drop cmdcode:%u, hw_init_completed:%u, cmdthd_running:%u\n", caller_func, __func__, */
++ /* cmd_obj->cmdcode, */
++ /* pcmdpriv->padapter->hw_init_completed, */
++ /* pcmdpriv->cmdthd_running */
++ /* */
+
+ return _FAIL;
-+ }
++ }
+ return _SUCCESS;
+}
+
@@ -3425,82 +3301,60 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+u32 rtw_enqueue_cmd(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj)
+{
+ int res = _FAIL;
-+ PADAPTER padapter = pcmdpriv->padapter;
-+
-+_func_enter_;
-+
++ struct adapter *padapter = pcmdpriv->padapter;
++
+ if (cmd_obj == NULL) {
+ goto exit;
+ }
+
+ cmd_obj->padapter = padapter;
+
-+ if( _FAIL == (res=rtw_cmd_filter(pcmdpriv, cmd_obj)) ) {
++ if (_FAIL == (res =rtw_cmd_filter(pcmdpriv, cmd_obj))) {
+ rtw_free_cmd_obj(cmd_obj);
+ goto exit;
+ }
+
+ res = _rtw_enqueue_cmd(&pcmdpriv->cmd_queue, cmd_obj);
+
-+ if(res == _SUCCESS)
++ if (res == _SUCCESS)
+ up(&pcmdpriv->cmd_queue_sema);
-+
-+exit:
-+
-+_func_exit_;
+
++exit:
+ return res;
+}
+
+struct cmd_obj *rtw_dequeue_cmd(struct cmd_priv *pcmdpriv)
+{
+ struct cmd_obj *cmd_obj;
-+
-+_func_enter_;
+
+ cmd_obj = _rtw_dequeue_cmd(&pcmdpriv->cmd_queue);
-+
-+_func_exit_;
-+ return cmd_obj;
-+}
+
-+void rtw_cmd_clr_isr(struct cmd_priv *pcmdpriv)
-+{
-+_func_enter_;
-+ pcmdpriv->cmd_done_cnt++;
-+ //up(&(pcmdpriv->cmd_done_sema));
-+_func_exit_;
++ return cmd_obj;
+}
+
+void rtw_free_cmd_obj(struct cmd_obj *pcmd)
+{
-+_func_enter_;
++ if ((pcmd->cmdcode!= _JoinBss_CMD_) &&
++ (pcmd->cmdcode!= _CreateBss_CMD_)) {
++ /* free parmbuf in cmd_obj */
++ kfree((unsigned char*)pcmd->parmbuf);
++ }
+
-+ if((pcmd->cmdcode!=_JoinBss_CMD_) &&(pcmd->cmdcode!= _CreateBss_CMD_))
-+ {
-+ //free parmbuf in cmd_obj
-+ rtw_mfree((unsigned char*)pcmd->parmbuf, pcmd->cmdsz);
-+ }
-+
-+ if(pcmd->rsp!=NULL)
-+ {
-+ if(pcmd->rspsz!= 0)
-+ {
-+ //free rsp in cmd_obj
-+ rtw_mfree((unsigned char*)pcmd->rsp, pcmd->rspsz);
-+ }
-+ }
++ if (pcmd->rsp!= NULL) {
++ if (pcmd->rspsz!= 0) {
++ /* free rsp in cmd_obj */
++ kfree((unsigned char*)pcmd->rsp);
++ }
++ }
+
-+ //free cmd_obj
-+ rtw_mfree((unsigned char*)pcmd, sizeof(struct cmd_obj));
-+
-+_func_exit_;
++ /* free cmd_obj */
++ kfree((unsigned char*)pcmd);
+}
+
+
-+void rtw_stop_cmd_thread(_adapter *adapter)
++void rtw_stop_cmd_thread(struct adapter *adapter)
+{
-+ if(adapter->cmdThread &&
++ if (adapter->cmdThread &&
+ atomic_read(&(adapter->cmdpriv.cmdthd_running)) == true &&
+ adapter->cmdpriv.stop_req == 0)
+ {
@@ -3510,20 +3364,18 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ }
+}
+
-+int rtw_cmd_thread(void * context)
++int rtw_cmd_thread(void *context)
+{
+ u8 ret;
+ struct cmd_obj *pcmd;
+ u8 *pcmdbuf, *prspbuf;
+ unsigned long cmd_start_time;
+ unsigned long cmd_process_time;
-+ u8 (*cmd_hdl)(_adapter *padapter, u8* pbuf);
-+ void (*pcmd_callback)(_adapter *dev, struct cmd_obj *pcmd);
-+ PADAPTER padapter = (PADAPTER)context;
++ u8 (*cmd_hdl)(struct adapter *padapter, u8 *pbuf);
++ void (*pcmd_callback)(struct adapter *dev, struct cmd_obj *pcmd);
++ struct adapter *padapter = (struct adapter *)context;
+ struct cmd_priv *pcmdpriv = &(padapter->cmdpriv);
+ struct drvextra_cmd_parm *extra_parm = NULL;
-+
-+_func_enter_;
+
+ thread_enter("RTW_CMD_THREAD");
+
@@ -3534,9 +3386,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ atomic_set(&(pcmdpriv->cmdthd_running), true);
+ up(&pcmdpriv->terminate_cmdthread_sema);
+
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_info_,("start r871x rtw_cmd_thread !!!!\n"));
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("start r871x rtw_cmd_thread !!!!\n"));
+
-+ while(1)
++ while (1)
+ {
+ if (down_interruptible(&pcmdpriv->cmd_queue_sema)) {
+ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" down_interruptible(&pcmdpriv->cmd_queue_sema) return != 0, break\n", FUNC_ADPT_ARG(padapter));
@@ -3546,7 +3398,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ if ((padapter->bDriverStopped == true)||(padapter->bSurpriseRemoved == true))
+ {
+ DBG_871X_LEVEL(_drv_always_, "%s: DriverStopped(%d) SurpriseRemoved(%d) break at line %d\n",
-+ __FUNCTION__, padapter->bDriverStopped, padapter->bSurpriseRemoved, __LINE__);
++ __func__, padapter->bDriverStopped, padapter->bSurpriseRemoved, __LINE__);
+ break;
+ }
+
@@ -3554,36 +3406,36 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" stop_req:%u, break\n", FUNC_ADPT_ARG(padapter), pcmdpriv->stop_req);
+ break;
+ }
-+
-+ if(rtw_is_list_empty(&(pcmdpriv->cmd_queue.queue)))
++
++ if (list_empty(&(pcmdpriv->cmd_queue.queue)))
+ {
-+ //DBG_871X("%s: cmd queue is empty!\n", __func__);
++ /* DBG_871X("%s: cmd queue is empty!\n", __func__); */
+ continue;
+ }
+
+ if (rtw_register_cmd_alive(padapter) != _SUCCESS)
+ {
+ RT_TRACE(_module_hal_xmit_c_, _drv_notice_,
-+ ("%s: wait to leave LPS_LCLK\n", __FUNCTION__));
++ ("%s: wait to leave LPS_LCLK\n", __func__));
+ continue;
+ }
+
+_next:
-+ if ((padapter->bDriverStopped == true)||(padapter->bSurpriseRemoved== true))
++ if ((padapter->bDriverStopped == true)||(padapter->bSurpriseRemoved == true))
+ {
+ DBG_871X_LEVEL(_drv_always_, "%s: DriverStopped(%d) SurpriseRemoved(%d) break at line %d\n",
-+ __FUNCTION__, padapter->bDriverStopped, padapter->bSurpriseRemoved, __LINE__);
++ __func__, padapter->bDriverStopped, padapter->bSurpriseRemoved, __LINE__);
+ break;
+ }
+
-+ if(!(pcmd = rtw_dequeue_cmd(pcmdpriv))) {
++ if (!(pcmd = rtw_dequeue_cmd(pcmdpriv))) {
+ rtw_unregister_cmd_alive(padapter);
+ continue;
+ }
+
+ cmd_start_time = jiffies;
+
-+ if( _FAIL == rtw_cmd_filter(pcmdpriv, pcmd) )
++ if (_FAIL == rtw_cmd_filter(pcmdpriv, pcmd))
+ {
+ pcmd->res = H2C_DROPPED;
+ goto post_process;
@@ -3591,11 +3443,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+
+ pcmdpriv->cmd_issued_cnt++;
+
-+ pcmd->cmdsz = _RND4((pcmd->cmdsz));//_RND4
++ pcmd->cmdsz = _RND4((pcmd->cmdsz));/* _RND4 */
+
+ memcpy(pcmdbuf, pcmd->parmbuf, pcmd->cmdsz);
+
-+ if(pcmd->cmdcode < (sizeof(wlancmds) /sizeof(struct cmd_hdl)))
++ if (pcmd->cmdcode < ARRAY_SIZE(wlancmds))
+ {
+ cmd_hdl = wlancmds[pcmd->cmdcode].h2cfuns;
+
@@ -3616,56 +3468,54 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+
+post_process:
+
-+ _enter_critical_mutex(&(pcmd->padapter->cmdpriv.sctx_mutex), NULL);
-+ if (pcmd->sctx) {
-+ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" pcmd->sctx\n",
-+ FUNC_ADPT_ARG(pcmd->padapter));
++ if (mutex_lock_interruptible(&(pcmd->padapter->cmdpriv.sctx_mutex)) == 0) {
++ if (pcmd->sctx) {
++ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" pcmd->sctx\n",
++ FUNC_ADPT_ARG(pcmd->padapter));
+
-+ if (pcmd->res == H2C_SUCCESS)
-+ rtw_sctx_done(&pcmd->sctx);
-+ else
-+ rtw_sctx_done_err(&pcmd->sctx, RTW_SCTX_DONE_CMD_ERROR);
++ if (pcmd->res == H2C_SUCCESS)
++ rtw_sctx_done(&pcmd->sctx);
++ else
++ rtw_sctx_done_err(&pcmd->sctx, RTW_SCTX_DONE_CMD_ERROR);
++ }
++ mutex_unlock(&(pcmd->padapter->cmdpriv.sctx_mutex));
+ }
-+ _exit_critical_mutex(&(pcmd->padapter->cmdpriv.sctx_mutex), NULL);
+
-+
-+ if((cmd_process_time = jiffies_to_msecs(jiffies - cmd_start_time)) > 1000)
++ if ((cmd_process_time = jiffies_to_msecs(jiffies - cmd_start_time)) > 1000)
+ {
+ if (pcmd->cmdcode == GEN_CMD_CODE(_Set_Drv_Extra)) {
-+ struct drvextra_cmd_parm *drvextra_parm = (struct drvextra_cmd_parm *)pcmdbuf;
-+ DBG_871X(ADPT_FMT" cmd=%d,%d,%d process_time=%lu > 1 sec\n",
-+ ADPT_ARG(pcmd->padapter), pcmd->cmdcode, drvextra_parm->ec_id, drvextra_parm->type, cmd_process_time);
-+ //rtw_warn_on(1);
-+ } else if(pcmd->cmdcode == GEN_CMD_CODE(_Set_MLME_EVT)){
-+ struct C2HEvent_Header *pc2h_evt_hdr = (struct C2HEvent_Header *)pcmdbuf;
-+ DBG_871X(ADPT_FMT" cmd=%d,%d, process_time=%lu > 1 sec\n",
-+ ADPT_ARG(pcmd->padapter), pcmd->cmdcode, pc2h_evt_hdr->ID, cmd_process_time);
-+ //rtw_warn_on(1);
-+ } else {
-+ DBG_871X(ADPT_FMT" cmd=%d, process_time=%lu > 1 sec\n",
++ DBG_871X(ADPT_FMT" cmd =%d process_time =%lu > 1 sec\n",
+ ADPT_ARG(pcmd->padapter), pcmd->cmdcode, cmd_process_time);
-+ //rtw_warn_on(1);
++ /* rtw_warn_on(1); */
++ } else if (pcmd->cmdcode == GEN_CMD_CODE(_Set_MLME_EVT)) {
++ DBG_871X(ADPT_FMT" cmd =%d, process_time =%lu > 1 sec\n",
++ ADPT_ARG(pcmd->padapter), pcmd->cmdcode, cmd_process_time);
++ /* rtw_warn_on(1); */
++ } else {
++ DBG_871X(ADPT_FMT" cmd =%d, process_time =%lu > 1 sec\n",
++ ADPT_ARG(pcmd->padapter), pcmd->cmdcode, cmd_process_time);
++ /* rtw_warn_on(1); */
+ }
+ }
+
-+ //call callback function for post-processed
-+ if(pcmd->cmdcode < (sizeof(rtw_cmd_callback) /sizeof(struct _cmd_callback)))
++ /* call callback function for post-processed */
++ if (pcmd->cmdcode < ARRAY_SIZE(rtw_cmd_callback))
+ {
+ pcmd_callback = rtw_cmd_callback[pcmd->cmdcode].callback;
-+ if(pcmd_callback == NULL)
++ if (pcmd_callback == NULL)
+ {
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_info_,("mlme_cmd_hdl(): pcmd_callback=0x%p, cmdcode=0x%x\n", pcmd_callback, pcmd->cmdcode));
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("mlme_cmd_hdl(): pcmd_callback = 0x%p, cmdcode = 0x%x\n", pcmd_callback, pcmd->cmdcode));
+ rtw_free_cmd_obj(pcmd);
+ }
+ else
+ {
-+ //todo: !!! fill rsp_buf to pcmd->rsp if (pcmd->rsp!=NULL)
-+ pcmd_callback(pcmd->padapter, pcmd);//need conider that free cmd_obj in rtw_cmd_callback
++ /* todo: !!! fill rsp_buf to pcmd->rsp if (pcmd->rsp!= NULL) */
++ pcmd_callback(pcmd->padapter, pcmd);/* need conider that free cmd_obj in rtw_cmd_callback */
+ }
+ }
+ else
+ {
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("%s: cmdcode=0x%x callback not defined!\n", __FUNCTION__, pcmd->cmdcode));
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("%s: cmdcode = 0x%x callback not defined!\n", __func__, pcmd->cmdcode));
+ rtw_free_cmd_obj(pcmd);
+ }
+
@@ -3675,69 +3525,30 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+
+ }
+
-+ // free all cmd_obj resources
++ /* free all cmd_obj resources */
+ do{
+ pcmd = rtw_dequeue_cmd(pcmdpriv);
-+ if(pcmd==NULL){
++ if (pcmd == NULL) {
+ rtw_unregister_cmd_alive(padapter);
+ break;
+ }
+
-+ //DBG_871X("%s: leaving... drop cmdcode:%u size:%d\n", __FUNCTION__, pcmd->cmdcode, pcmd->cmdsz);
++ /* DBG_871X("%s: leaving... drop cmdcode:%u size:%d\n", __func__, pcmd->cmdcode, pcmd->cmdsz); */
+
+ if (pcmd->cmdcode == GEN_CMD_CODE(_Set_Drv_Extra)) {
+ extra_parm = (struct drvextra_cmd_parm *)pcmd->parmbuf;
-+ if(extra_parm->pbuf && extra_parm->size > 0) {
-+ rtw_mfree(extra_parm->pbuf, extra_parm->size);
++ if (extra_parm->pbuf && extra_parm->size > 0) {
++ kfree(extra_parm->pbuf);
+ }
+ }
+
-+ rtw_free_cmd_obj(pcmd);
-+ }while(1);
++ rtw_free_cmd_obj(pcmd);
++ }while (1);
+
+ up(&pcmdpriv->terminate_cmdthread_sema);
+ atomic_set(&(pcmdpriv->cmdthd_running), false);
+
-+_func_exit_;
-+
+ thread_exit();
-+
-+}
-+
-+u8 rtw_setstandby_cmd(_adapter *padapter, uint action)
-+{
-+ struct cmd_obj* ph2c;
-+ struct usb_suspend_parm* psetusbsuspend;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-+
-+ u8 ret = _SUCCESS;
-+
-+_func_enter_;
-+
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if (ph2c == NULL) {
-+ ret = _FAIL;
-+ goto exit;
-+ }
-+
-+ psetusbsuspend = (struct usb_suspend_parm*)rtw_zmalloc(sizeof(struct usb_suspend_parm));
-+ if (psetusbsuspend == NULL) {
-+ rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-+ ret = _FAIL;
-+ goto exit;
-+ }
-+
-+ psetusbsuspend->action = action;
-+
-+ init_h2fwcmd_w_parm_no_rsp(ph2c, psetusbsuspend, GEN_CMD_CODE(_SetUsbSuspend));
-+
-+ ret = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+
-+exit:
-+
-+_func_exit_;
-+
-+ return ret;
+}
+
+/*
@@ -3745,18 +3556,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ ### NOTE:#### (!!!!)
+ MUST TAKE CARE THAT BEFORE CALLING THIS FUNC, YOU SHOULD HAVE LOCKED pmlmepriv->lock
+*/
-+u8 rtw_sitesurvey_cmd(_adapter *padapter, NDIS_802_11_SSID *ssid, int ssid_num,
++u8 rtw_sitesurvey_cmd(struct adapter *padapter, struct ndis_802_11_ssid *ssid, int ssid_num,
+ struct rtw_ieee80211_channel *ch, int ch_num)
+{
+ u8 res = _FAIL;
+ struct cmd_obj *ph2c;
+ struct sitesurvey_parm *psurveyPara;
+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+
-+_func_enter_;
-+
-+ if(check_fwstate(pmlmepriv, _FW_LINKED) == true){
++ if (check_fwstate(pmlmepriv, _FW_LINKED) == true) {
+ rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_SCAN, 1);
+ }
+
@@ -3764,15 +3573,15 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ if (ph2c == NULL)
+ return _FAIL;
+
-+ psurveyPara = (struct sitesurvey_parm*)rtw_zmalloc(sizeof(struct sitesurvey_parm));
++ psurveyPara = (struct sitesurvey_parm*)rtw_zmalloc(sizeof(struct sitesurvey_parm));
+ if (psurveyPara == NULL) {
-+ rtw_mfree((unsigned char*) ph2c, sizeof(struct cmd_obj));
++ kfree((unsigned char*) ph2c);
+ return _FAIL;
+ }
+
+ rtw_free_network_queue(padapter, false);
+
-+ RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("%s: flush network queue\n", __FUNCTION__));
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("%s: flush network queue\n", __func__));
+
+ init_h2fwcmd_w_parm_no_rsp(ph2c, psurveyPara, GEN_CMD_CODE(_SiteSurvey));
+
@@ -3782,9 +3591,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ /* prepare ssid list */
+ if (ssid) {
+ int i;
-+ for (i=0; issid[i], &ssid[i], sizeof(NDIS_802_11_SSID));
++ memcpy(&psurveyPara->ssid[i], &ssid[i], sizeof(struct ndis_802_11_ssid));
+ psurveyPara->ssid_num++;
+
+ DBG_871X(FUNC_ADPT_FMT" ssid:(%s, %d)\n", FUNC_ADPT_ARG(padapter),
@@ -3796,7 +3605,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ /* prepare channel list */
+ if (ch) {
+ int i;
-+ for (i=0; ich[i], &ch[i], sizeof(struct rtw_ieee80211_channel));
+ psurveyPara->ch_num++;
@@ -3811,29 +3620,22 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+
+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
+
-+ if(res == _SUCCESS) {
++ if (res == _SUCCESS) {
+
+ pmlmepriv->scan_start_time = jiffies;
+ _set_timer(&pmlmepriv->scan_to_timer, SCANNING_TIMEOUT);
-+
-+ rtw_led_control(padapter, LED_CTL_SITE_SURVEY);
+ } else {
+ _clr_fwstate_(pmlmepriv, _FW_UNDER_SURVEY);
+ }
-+
-+_func_exit_;
-+
+ return res;
+}
+
-+u8 rtw_setdatarate_cmd(_adapter *padapter, u8 *rateset)
++u8 rtw_setdatarate_cmd(struct adapter *padapter, u8 *rateset)
+{
-+ struct cmd_obj* ph2c;
-+ struct setdatarate_parm* pbsetdataratepara;
-+ struct cmd_priv* pcmdpriv = &padapter->cmdpriv;
-+ u8 res = _SUCCESS;
-+
-+_func_enter_;
++ struct cmd_obj* ph2c;
++ struct setdatarate_parm*pbsetdataratepara;
++ struct cmd_priv* pcmdpriv = &padapter->cmdpriv;
++ u8 res = _SUCCESS;
+
+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
+ if (ph2c == NULL) {
@@ -3841,9 +3643,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ goto exit;
+ }
+
-+ pbsetdataratepara = (struct setdatarate_parm*)rtw_zmalloc(sizeof(struct setdatarate_parm));
++ pbsetdataratepara = (struct setdatarate_parm*)rtw_zmalloc(sizeof(struct setdatarate_parm));
+ if (pbsetdataratepara == NULL) {
-+ rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
++ kfree((u8 *) ph2c);
+ res = _FAIL;
+ goto exit;
+ }
@@ -3854,333 +3656,61 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+
+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
+exit:
-+
-+_func_exit_;
-+
+ return res;
+}
+
-+u8 rtw_setbasicrate_cmd(_adapter *padapter, u8 *rateset)
++void rtw_getbbrfreg_cmdrsp_callback(struct adapter *padapter, struct cmd_obj *pcmd)
+{
-+ struct cmd_obj* ph2c;
-+ struct setbasicrate_parm* pssetbasicratepara;
-+ struct cmd_priv* pcmdpriv=&padapter->cmdpriv;
-+ u8 res = _SUCCESS;
++ /* rtw_free_cmd_obj(pcmd); */
++ kfree((unsigned char*) pcmd->parmbuf);
++ kfree((unsigned char*) pcmd);
++}
+
-+_func_enter_;
++u8 rtw_createbss_cmd(struct adapter *padapter)
++{
++ struct cmd_obj* pcmd;
++ struct cmd_priv *pcmdpriv =&padapter->cmdpriv;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct wlan_bssid_ex *pdev_network = &padapter->registrypriv.dev_network;
++ u8 res = _SUCCESS;
+
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if (ph2c == NULL) {
-+ res= _FAIL;
-+ goto exit;
++ if (pmlmepriv->assoc_ssid.SsidLength == 0) {
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, (" createbss for Any SSid:%s\n", pmlmepriv->assoc_ssid.Ssid));
++ } else {
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, (" createbss for SSid:%s\n", pmlmepriv->assoc_ssid.Ssid));
+ }
-+ pssetbasicratepara = (struct setbasicrate_parm*)rtw_zmalloc(sizeof(struct setbasicrate_parm));
+
-+ if (pssetbasicratepara == NULL) {
-+ rtw_mfree((u8*) ph2c, sizeof(struct cmd_obj));
++ pcmd = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
++ if (pcmd == NULL) {
+ res = _FAIL;
+ goto exit;
+ }
+
-+ init_h2fwcmd_w_parm_no_rsp(ph2c, pssetbasicratepara, _SetBasicRate_CMD_);
-+
-+ memcpy(pssetbasicratepara->basicrates, rateset, NumRates);
-+
-+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+exit:
-+
-+_func_exit_;
-+
-+ return res;
-+}
-+
-+
-+/*
-+unsigned char rtw_setphy_cmd(unsigned char *adapter)
-+
-+1. be called only after rtw_update_registrypriv_dev_network( ~) or mp testing program
-+2. for AdHoc/Ap mode or mp mode?
-+
-+*/
-+u8 rtw_setphy_cmd(_adapter *padapter, u8 modem, u8 ch)
-+{
-+ struct cmd_obj* ph2c;
-+ struct setphy_parm* psetphypara;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-+// struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+// struct registry_priv* pregistry_priv = &padapter->registrypriv;
-+ u8 res=_SUCCESS;
-+
-+_func_enter_;
-+
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ res= _FAIL;
-+ goto exit;
-+ }
-+ psetphypara = (struct setphy_parm*)rtw_zmalloc(sizeof(struct setphy_parm));
-+
-+ if(psetphypara==NULL){
-+ rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-+ res= _FAIL;
-+ goto exit;
-+ }
-+
-+ init_h2fwcmd_w_parm_no_rsp(ph2c, psetphypara, _SetPhy_CMD_);
-+
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_info_,("CH=%d, modem=%d", ch, modem));
-+
-+ psetphypara->modem = modem;
-+ psetphypara->rfchannel = ch;
-+
-+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+exit:
-+_func_exit_;
-+ return res;
-+}
-+
-+u8 rtw_setbbreg_cmd(_adapter*padapter, u8 offset, u8 val)
-+{
-+ struct cmd_obj* ph2c;
-+ struct writeBB_parm* pwritebbparm;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-+ u8 res=_SUCCESS;
-+_func_enter_;
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ res= _FAIL;
-+ goto exit;
-+ }
-+ pwritebbparm = (struct writeBB_parm*)rtw_zmalloc(sizeof(struct writeBB_parm));
-+
-+ if(pwritebbparm==NULL){
-+ rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-+ res= _FAIL;
-+ goto exit;
-+ }
-+
-+ init_h2fwcmd_w_parm_no_rsp(ph2c, pwritebbparm, GEN_CMD_CODE(_SetBBReg));
-+
-+ pwritebbparm->offset = offset;
-+ pwritebbparm->value = val;
-+
-+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+exit:
-+_func_exit_;
-+ return res;
-+}
-+
-+u8 rtw_getbbreg_cmd(_adapter *padapter, u8 offset, u8 *pval)
-+{
-+ struct cmd_obj* ph2c;
-+ struct readBB_parm* prdbbparm;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-+ u8 res=_SUCCESS;
-+
-+_func_enter_;
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ res=_FAIL;
-+ goto exit;
-+ }
-+ prdbbparm = (struct readBB_parm*)rtw_zmalloc(sizeof(struct readBB_parm));
-+
-+ if(prdbbparm ==NULL){
-+ rtw_mfree((unsigned char *) ph2c, sizeof(struct cmd_obj));
-+ return _FAIL;
-+ }
-+
-+ _rtw_init_listhead(&ph2c->list);
-+ ph2c->cmdcode =GEN_CMD_CODE(_GetBBReg);
-+ ph2c->parmbuf = (unsigned char *)prdbbparm;
-+ ph2c->cmdsz = sizeof(struct readBB_parm);
-+ ph2c->rsp = pval;
-+ ph2c->rspsz = sizeof(struct readBB_rsp);
-+
-+ prdbbparm ->offset = offset;
-+
-+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+exit:
-+_func_exit_;
-+ return res;
-+}
-+
-+u8 rtw_setrfreg_cmd(_adapter *padapter, u8 offset, u32 val)
-+{
-+ struct cmd_obj* ph2c;
-+ struct writeRF_parm* pwriterfparm;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-+ u8 res=_SUCCESS;
-+_func_enter_;
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ res= _FAIL;
-+ goto exit;
-+ }
-+ pwriterfparm = (struct writeRF_parm*)rtw_zmalloc(sizeof(struct writeRF_parm));
-+
-+ if(pwriterfparm==NULL){
-+ rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-+ res= _FAIL;
-+ goto exit;
-+ }
-+
-+ init_h2fwcmd_w_parm_no_rsp(ph2c, pwriterfparm, GEN_CMD_CODE(_SetRFReg));
-+
-+ pwriterfparm->offset = offset;
-+ pwriterfparm->value = val;
-+
-+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+exit:
-+_func_exit_;
-+ return res;
-+}
-+
-+u8 rtw_getrfreg_cmd(_adapter *padapter, u8 offset, u8 *pval)
-+{
-+ struct cmd_obj* ph2c;
-+ struct readRF_parm* prdrfparm;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-+ u8 res=_SUCCESS;
-+
-+_func_enter_;
-+
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ res= _FAIL;
-+ goto exit;
-+ }
-+
-+ prdrfparm = (struct readRF_parm*)rtw_zmalloc(sizeof(struct readRF_parm));
-+ if(prdrfparm ==NULL){
-+ rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-+ res= _FAIL;
-+ goto exit;
-+ }
-+
-+ _rtw_init_listhead(&ph2c->list);
-+ ph2c->cmdcode =GEN_CMD_CODE(_GetRFReg);
-+ ph2c->parmbuf = (unsigned char *)prdrfparm;
-+ ph2c->cmdsz = sizeof(struct readRF_parm);
-+ ph2c->rsp = pval;
-+ ph2c->rspsz = sizeof(struct readRF_rsp);
-+
-+ prdrfparm ->offset = offset;
-+
-+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+
-+exit:
-+
-+_func_exit_;
-+
-+ return res;
-+}
-+
-+void rtw_getbbrfreg_cmdrsp_callback(_adapter* padapter, struct cmd_obj *pcmd)
-+{
-+ _func_enter_;
-+
-+ //rtw_free_cmd_obj(pcmd);
-+ rtw_mfree((unsigned char*) pcmd->parmbuf, pcmd->cmdsz);
-+ rtw_mfree((unsigned char*) pcmd, sizeof(struct cmd_obj));
-+
-+_func_exit_;
-+}
-+
-+void rtw_readtssi_cmdrsp_callback(_adapter* padapter, struct cmd_obj *pcmd)
-+{
-+ _func_enter_;
-+
-+ rtw_mfree((unsigned char*) pcmd->parmbuf, pcmd->cmdsz);
-+ rtw_mfree((unsigned char*) pcmd, sizeof(struct cmd_obj));
-+
-+_func_exit_;
-+}
-+
-+u8 rtw_createbss_cmd(_adapter *padapter)
-+{
-+ struct cmd_obj* pcmd;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ WLAN_BSSID_EX *pdev_network = &padapter->registrypriv.dev_network;
-+ u8 res=_SUCCESS;
-+
-+_func_enter_;
-+
-+ rtw_led_control(padapter, LED_CTL_START_TO_LINK);
-+
-+ if (pmlmepriv->assoc_ssid.SsidLength == 0){
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_info_,(" createbss for Any SSid:%s\n",pmlmepriv->assoc_ssid.Ssid));
-+ } else {
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_info_,(" createbss for SSid:%s\n", pmlmepriv->assoc_ssid.Ssid));
-+ }
-+
-+ pcmd = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(pcmd==NULL){
-+ res= _FAIL;
-+ goto exit;
-+ }
-+
-+ _rtw_init_listhead(&pcmd->list);
++ INIT_LIST_HEAD(&pcmd->list);
+ pcmd->cmdcode = _CreateBss_CMD_;
+ pcmd->parmbuf = (unsigned char *)pdev_network;
-+ pcmd->cmdsz = get_WLAN_BSSID_EX_sz((WLAN_BSSID_EX*)pdev_network);
-+ pcmd->rsp = NULL;
-+ pcmd->rspsz = 0;
-+
-+ pdev_network->Length = pcmd->cmdsz;
-+
-+ res = rtw_enqueue_cmd(pcmdpriv, pcmd);
-+
-+exit:
-+
-+_func_exit_;
-+
-+ return res;
-+}
-+
-+u8 rtw_createbss_cmd_ex(_adapter *padapter, unsigned char *pbss, unsigned int sz)
-+{
-+ struct cmd_obj* pcmd;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-+ u8 res=_SUCCESS;
-+
-+_func_enter_;
-+
-+ pcmd = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(pcmd==NULL){
-+ res= _FAIL;
-+ goto exit;
-+ }
-+
-+ _rtw_init_listhead(&pcmd->list);
-+ pcmd->cmdcode = GEN_CMD_CODE(_CreateBss);
-+ pcmd->parmbuf = pbss;
-+ pcmd->cmdsz = sz;
++ pcmd->cmdsz = get_wlan_bssid_ex_sz((struct wlan_bssid_ex*)pdev_network);
+ pcmd->rsp = NULL;
+ pcmd->rspsz = 0;
+
++ pdev_network->Length = pcmd->cmdsz;
++
+ res = rtw_enqueue_cmd(pcmdpriv, pcmd);
+
+exit:
-+
-+_func_exit_;
-+
-+ return res;
++ return res;
+}
+
-+u8 rtw_startbss_cmd(_adapter *padapter, int flags)
++u8 rtw_startbss_cmd(struct adapter *padapter, int flags)
+{
+ struct cmd_obj* pcmd;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
++ struct cmd_priv *pcmdpriv =&padapter->cmdpriv;
+ struct submit_ctx sctx;
-+ u8 res=_SUCCESS;
-+
-+_func_enter_;
++ u8 res = _SUCCESS;
+
+ if (flags & RTW_CMDF_DIRECTLY) {
+ /* no need to enqueue, do the cmd hdl directly and free cmd parameter */
-+ start_bss_network(padapter, (u8*)&(padapter->mlmepriv.cur_network.network));
++ start_bss_network(padapter, (u8 *)&(padapter->mlmepriv.cur_network.network));
+ } else {
+ /* need enqueue, prepare cmd_obj and enqueue */
+ pcmd = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
@@ -4189,7 +3719,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ goto exit;
+ }
+
-+ _rtw_init_listhead(&pcmd->list);
++ INIT_LIST_HEAD(&pcmd->list);
+ pcmd->cmdcode = GEN_CMD_CODE(_CreateBss);
+ pcmd->parmbuf = NULL;
+ pcmd->cmdsz = 0;
@@ -4205,69 +3735,56 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+
+ if (res == _SUCCESS && (flags & RTW_CMDF_WAIT_ACK)) {
+ rtw_sctx_wait(&sctx, __func__);
-+ _enter_critical_mutex(&pcmdpriv->sctx_mutex, NULL);
-+ if (sctx.status == RTW_SCTX_SUBMITTED)
-+ pcmd->sctx = NULL;
-+ _exit_critical_mutex(&pcmdpriv->sctx_mutex, NULL);
++ if (mutex_lock_interruptible(&pcmdpriv->sctx_mutex) == 0) {
++ if (sctx.status == RTW_SCTX_SUBMITTED)
++ pcmd->sctx = NULL;
++ mutex_unlock(&pcmdpriv->sctx_mutex);
++ }
+ }
+ }
+
+exit:
-+
-+_func_exit_;
-+
+ return res;
+}
+
-+u8 rtw_joinbss_cmd(_adapter *padapter, struct wlan_network* pnetwork)
++u8 rtw_joinbss_cmd(struct adapter *padapter, struct wlan_network* pnetwork)
+{
-+ u8 *auth, res = _SUCCESS;
++ u8 *auth, res = _SUCCESS;
+ uint t_len = 0;
-+ WLAN_BSSID_EX *psecnetwork;
++ struct wlan_bssid_ex *psecnetwork;
+ struct cmd_obj *pcmd;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct qos_priv *pqospriv= &pmlmepriv->qospriv;
-+ struct security_priv *psecuritypriv=&padapter->securitypriv;
-+ struct registry_priv *pregistrypriv = &padapter->registrypriv;
-+ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
-+ NDIS_802_11_NETWORK_INFRASTRUCTURE ndis_network_mode = pnetwork->network.InfrastructureMode;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct cmd_priv *pcmdpriv =&padapter->cmdpriv;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct qos_priv *pqospriv = &pmlmepriv->qospriv;
++ struct security_priv *psecuritypriv =&padapter->securitypriv;
++ struct registry_priv *pregistrypriv = &padapter->registrypriv;
++ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
++ enum NDIS_802_11_NETWORK_INFRASTRUCTURE ndis_network_mode = pnetwork->network.InfrastructureMode;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ u32 tmp_len;
-+ u8 *ptmp=NULL;
-+_func_enter_;
++ u8 *ptmp = NULL;
+
-+ rtw_led_control(padapter, LED_CTL_START_TO_LINK);
-+
-+ if (pmlmepriv->assoc_ssid.SsidLength == 0){
++ if (pmlmepriv->assoc_ssid.SsidLength == 0) {
+ RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("+Join cmd: Any SSid\n"));
+ } else {
-+ RT_TRACE(_module_rtl871x_cmd_c_, _drv_notice_, ("+Join cmd: SSid=[%s]\n", pmlmepriv->assoc_ssid.Ssid));
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_notice_, ("+Join cmd: SSid =[%s]\n", pmlmepriv->assoc_ssid.Ssid));
+ }
+
+ pcmd = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(pcmd==NULL){
-+ res=_FAIL;
++ if (pcmd == NULL) {
++ res = _FAIL;
+ RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("rtw_joinbss_cmd: memory allocate for cmd_obj fail!!!\n"));
+ goto exit;
+ }
-+ /* // for IEs is pointer
-+ t_len = sizeof (u32) + sizeof (NDIS_802_11_MAC_ADDRESS) + 2 +
-+ sizeof (NDIS_802_11_SSID) + sizeof (u32) +
-+ sizeof (NDIS_802_11_RSSI) + sizeof (NDIS_802_11_NETWORK_TYPE) +
-+ sizeof (NDIS_802_11_CONFIGURATION) +
-+ sizeof (NDIS_802_11_NETWORK_INFRASTRUCTURE) +
-+ sizeof (NDIS_802_11_RATES_EX)+ sizeof(WLAN_PHY_INFO)+ sizeof (u32) + MAX_IE_SZ;
-+ */
-+ //for IEs is fix buf size
-+ t_len = sizeof(WLAN_BSSID_EX);
++ /* for IEs is fix buf size */
++ t_len = sizeof(struct wlan_bssid_ex);
+
+
-+ //for hidden ap to set fw_state here
++ /* for hidden ap to set fw_state here */
+ if (check_fwstate(pmlmepriv, WIFI_STATION_STATE|WIFI_ADHOC_STATE) != true)
+ {
-+ switch(ndis_network_mode)
++ switch (ndis_network_mode)
+ {
+ case Ndis802_11IBSS:
+ set_fwstate(pmlmepriv, WIFI_ADHOC_STATE);
@@ -4285,80 +3802,80 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ }
+ }
+
-+ psecnetwork=(WLAN_BSSID_EX *)&psecuritypriv->sec_bss;
-+ if(psecnetwork==NULL)
++ psecnetwork =(struct wlan_bssid_ex *)&psecuritypriv->sec_bss;
++ if (psecnetwork == NULL)
+ {
-+ if(pcmd !=NULL)
-+ rtw_mfree((unsigned char *)pcmd, sizeof(struct cmd_obj));
-+
-+ res=_FAIL;
-+
-+ RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("rtw_joinbss_cmd :psecnetwork==NULL!!!\n"));
-+
++ if (pcmd != NULL)
++ kfree((unsigned char *)pcmd);
++
++ res = _FAIL;
++
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("rtw_joinbss_cmd :psecnetwork == NULL!!!\n"));
++
+ goto exit;
+ }
+
+ memset(psecnetwork, 0, t_len);
+
-+ memcpy(psecnetwork, &pnetwork->network, get_WLAN_BSSID_EX_sz(&pnetwork->network));
-+
-+ auth=&psecuritypriv->authenticator_ie[0];
++ memcpy(psecnetwork, &pnetwork->network, get_wlan_bssid_ex_sz(&pnetwork->network));
++
++ auth =&psecuritypriv->authenticator_ie[0];
+ psecuritypriv->authenticator_ie[0]=(unsigned char)psecnetwork->IELength;
+
-+ if((psecnetwork->IELength-12) < (256-1)) {
++ if ((psecnetwork->IELength-12) < (256-1)) {
+ memcpy(&psecuritypriv->authenticator_ie[1], &psecnetwork->IEs[12], psecnetwork->IELength-12);
+ } else {
+ memcpy(&psecuritypriv->authenticator_ie[1], &psecnetwork->IEs[12], (256-1));
+ }
-+
++
+ psecnetwork->IELength = 0;
-+ // Added by Albert 2009/02/18
-+ // If the the driver wants to use the bssid to create the connection.
-+ // If not, we have to copy the connecting AP's MAC address to it so that
-+ // the driver just has the bssid information for PMKIDList searching.
-+
-+ if ( pmlmepriv->assoc_by_bssid == false )
++ /* Added by Albert 2009/02/18 */
++ /* If the the driver wants to use the bssid to create the connection. */
++ /* If not, we have to copy the connecting AP's MAC address to it so that */
++ /* the driver just has the bssid information for PMKIDList searching. */
++
++ if (pmlmepriv->assoc_by_bssid == false)
+ {
-+ memcpy( &pmlmepriv->assoc_bssid[ 0 ], &pnetwork->network.MacAddress[ 0 ], ETH_ALEN );
++ memcpy(&pmlmepriv->assoc_bssid[ 0 ], &pnetwork->network.MacAddress[ 0 ], ETH_ALEN);
+ }
+
+ psecnetwork->IELength = rtw_restruct_sec_ie(padapter, &pnetwork->network.IEs[0], &psecnetwork->IEs[0], pnetwork->network.IELength);
+
+
+ pqospriv->qos_option = 0;
-+
-+ if(pregistrypriv->wmm_enable)
-+ {
-+ tmp_len = rtw_restruct_wmm_ie(padapter, &pnetwork->network.IEs[0], &psecnetwork->IEs[0], pnetwork->network.IELength, psecnetwork->IELength);
+
-+ if (psecnetwork->IELength != tmp_len)
++ if (pregistrypriv->wmm_enable)
++ {
++ tmp_len = rtw_restruct_wmm_ie(padapter, &pnetwork->network.IEs[0], &psecnetwork->IEs[0], pnetwork->network.IELength, psecnetwork->IELength);
++
++ if (psecnetwork->IELength != tmp_len)
+ {
+ psecnetwork->IELength = tmp_len;
-+ pqospriv->qos_option = 1; //There is WMM IE in this corresp. beacon
++ pqospriv->qos_option = 1; /* There is WMM IE in this corresp. beacon */
+ }
-+ else
++ else
+ {
-+ pqospriv->qos_option = 0;//There is no WMM IE in this corresp. beacon
-+ }
-+ }
++ pqospriv->qos_option = 0;/* There is no WMM IE in this corresp. beacon */
++ }
++ }
+
+ phtpriv->ht_option = false;
+ ptmp = rtw_get_ie(&pnetwork->network.IEs[12], _HT_CAPABILITY_IE_, &tmp_len, pnetwork->network.IELength-12);
-+ if(pregistrypriv->ht_enable && ptmp && tmp_len>0)
++ if (pregistrypriv->ht_enable && ptmp && tmp_len>0)
+ {
-+ // Added by Albert 2010/06/23
-+ // For the WEP mode, we will use the bg mode to do the connection to avoid some IOT issue.
-+ // Especially for Realtek 8192u SoftAP.
-+ if ( ( padapter->securitypriv.dot11PrivacyAlgrthm != _WEP40_ ) &&
-+ ( padapter->securitypriv.dot11PrivacyAlgrthm != _WEP104_ ) &&
-+ ( padapter->securitypriv.dot11PrivacyAlgrthm != _TKIP_ ))
++ /* Added by Albert 2010/06/23 */
++ /* For the WEP mode, we will use the bg mode to do the connection to avoid some IOT issue. */
++ /* Especially for Realtek 8192u SoftAP. */
++ if ((padapter->securitypriv.dot11PrivacyAlgrthm != _WEP40_) &&
++ (padapter->securitypriv.dot11PrivacyAlgrthm != _WEP104_) &&
++ (padapter->securitypriv.dot11PrivacyAlgrthm != _TKIP_))
+ {
+ rtw_ht_use_default_setting(padapter);
+
+ rtw_build_wmm_ie_ht(padapter, &psecnetwork->IEs[12], &psecnetwork->IELength);
+
-+ //rtw_restructure_ht_ie
-+ rtw_restructure_ht_ie(padapter, &pnetwork->network.IEs[12], &psecnetwork->IEs[0],
++ /* rtw_restructure_ht_ie */
++ rtw_restructure_ht_ie(padapter, &pnetwork->network.IEs[12], &psecnetwork->IEs[0],
+ pnetwork->network.IELength-12, &psecnetwork->IELength,
+ pnetwork->network.Configuration.DSConfig);
+ }
@@ -4368,10 +3885,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+
+ pmlmeinfo->assoc_AP_vendor = check_assoc_AP(pnetwork->network.IEs, pnetwork->network.IELength);
+
-+ pcmd->cmdsz = get_WLAN_BSSID_EX_sz(psecnetwork);//get cmdsz before endian conversion
++ pcmd->cmdsz = get_wlan_bssid_ex_sz(psecnetwork);/* get cmdsz before endian conversion */
+
-+ _rtw_init_listhead(&pcmd->list);
-+ pcmd->cmdcode = _JoinBss_CMD_;//GEN_CMD_CODE(_JoinBss)
++ INIT_LIST_HEAD(&pcmd->list);
++ pcmd->cmdcode = _JoinBss_CMD_;/* GEN_CMD_CODE(_JoinBss) */
+ pcmd->parmbuf = (unsigned char *)psecnetwork;
+ pcmd->rsp = NULL;
+ pcmd->rspsz = 0;
@@ -4379,21 +3896,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ res = rtw_enqueue_cmd(pcmdpriv, pcmd);
+
+exit:
-+
-+_func_exit_;
-+
+ return res;
+}
+
-+u8 rtw_disassoc_cmd(_adapter*padapter, u32 deauth_timeout_ms, bool enqueue) /* for sta_mode */
++u8 rtw_disassoc_cmd(struct adapter *padapter, u32 deauth_timeout_ms, bool enqueue) /* for sta_mode */
+{
+ struct cmd_obj *cmdobj = NULL;
+ struct disconnect_parm *param = NULL;
+ struct cmd_priv *cmdpriv = &padapter->cmdpriv;
+ u8 res = _SUCCESS;
+
-+_func_enter_;
-+
+ RT_TRACE(_module_rtl871x_cmd_c_, _drv_notice_, ("+rtw_disassoc_cmd\n"));
+
+ /* prepare cmd parameter */
@@ -4409,7 +3921,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ cmdobj = (struct cmd_obj *)rtw_zmalloc(sizeof(*cmdobj));
+ if (cmdobj == NULL) {
+ res = _FAIL;
-+ rtw_mfree((u8 *)param, sizeof(*param));
++ kfree((u8 *)param);
+ goto exit;
+ }
+ init_h2fwcmd_w_parm_no_rsp(cmdobj, param, _DisConnect_CMD_);
@@ -4418,79 +3930,70 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ /* no need to enqueue, do the cmd hdl directly and free cmd parameter */
+ if (H2C_SUCCESS != disconnect_hdl(padapter, (u8 *)param))
+ res = _FAIL;
-+ rtw_mfree((u8 *)param, sizeof(*param));
++ kfree((u8 *)param);
+ }
+
+exit:
-+
-+_func_exit_;
-+
+ return res;
+}
+
-+u8 rtw_setopmode_cmd(_adapter *padapter, NDIS_802_11_NETWORK_INFRASTRUCTURE networktype, bool enqueue)
++u8 rtw_setopmode_cmd(struct adapter *padapter, enum NDIS_802_11_NETWORK_INFRASTRUCTURE networktype, bool enqueue)
+{
-+ struct cmd_obj* ph2c;
++ struct cmd_obj*ph2c;
+ struct setopmode_parm* psetop;
+
-+ struct cmd_priv *pcmdpriv= &padapter->cmdpriv;
-+ u8 res=_SUCCESS;
++ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
++ u8 res = _SUCCESS;
+
-+_func_enter_;
-+ psetop = (struct setopmode_parm*)rtw_zmalloc(sizeof(struct setopmode_parm));
++ psetop = (struct setopmode_parm*)rtw_zmalloc(sizeof(struct setopmode_parm));
+
-+ if(psetop==NULL){
-+ res=_FAIL;
++ if (psetop == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
+ psetop->mode = (u8)networktype;
-+
-+ if(enqueue){
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ rtw_mfree((u8 *)psetop, sizeof(*psetop));
-+ res= _FAIL;
++
++ if (enqueue) {
++ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
++ if (ph2c == NULL) {
++ kfree((u8 *)psetop);
++ res = _FAIL;
+ goto exit;
-+ }
++ }
+
+ init_h2fwcmd_w_parm_no_rsp(ph2c, psetop, _SetOpMode_CMD_);
+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
+ }
-+ else{
++ else {
+ setopmode_hdl(padapter, (u8 *)psetop);
-+ rtw_mfree((u8 *)psetop, sizeof(*psetop));
++ kfree((u8 *)psetop);
+ }
+exit:
-+
-+_func_exit_;
-+
+ return res;
+}
+
-+u8 rtw_setstakey_cmd(_adapter *padapter, struct sta_info *sta, u8 unicast_key, bool enqueue)
++u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_key, bool enqueue)
+{
-+ struct cmd_obj* ph2c;
++ struct cmd_obj* ph2c;
+ struct set_stakey_parm *psetstakey_para;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
++ struct cmd_priv *pcmdpriv =&padapter->cmdpriv;
+ struct set_stakey_rsp *psetstakey_rsp = NULL;
-+
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct security_priv *psecuritypriv = &padapter->securitypriv;
-+ u8 res=_SUCCESS;
+
-+_func_enter_;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct security_priv *psecuritypriv = &padapter->securitypriv;
++ u8 res = _SUCCESS;
+
+ psetstakey_para = (struct set_stakey_parm*)rtw_zmalloc(sizeof(struct set_stakey_parm));
-+ if(psetstakey_para==NULL){
-+ res=_FAIL;
++ if (psetstakey_para == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
-+
-+ memcpy(psetstakey_para->addr, sta->hwaddr,ETH_ALEN);
-+
-+ if(check_fwstate(pmlmepriv, WIFI_STATION_STATE)){
++
++ memcpy(psetstakey_para->addr, sta->hwaddr, ETH_ALEN);
++
++ if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) {
+ psetstakey_para->algorithm =(unsigned char) psecuritypriv->dot11PrivacyAlgrthm;
-+ }else{
++ } else {
+ GET_ENCRY_ALGO(psecuritypriv, sta, psetstakey_para->algorithm, false);
+ }
+
@@ -4501,58 +4004,51 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ memcpy(&psetstakey_para->key, &psecuritypriv->dot118021XGrpKey[psecuritypriv->dot118021XGrpKeyid].skey, 16);
+ }
+
-+ //jeff: set this becasue at least sw key is ready
-+ padapter->securitypriv.busetkipkey=true;
++ /* jeff: set this becasue at least sw key is ready */
++ padapter->securitypriv.busetkipkey =true;
+
-+ if(enqueue)
++ if (enqueue)
+ {
+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if ( ph2c == NULL){
-+ rtw_mfree((u8 *) psetstakey_para, sizeof(struct set_stakey_parm));
-+ res= _FAIL;
++ if (ph2c == NULL) {
++ kfree((u8 *) psetstakey_para);
++ res = _FAIL;
+ goto exit;
-+ }
++ }
+
-+ psetstakey_rsp = (struct set_stakey_rsp*)rtw_zmalloc(sizeof(struct set_stakey_rsp));
-+ if(psetstakey_rsp == NULL){
-+ rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-+ rtw_mfree((u8 *) psetstakey_para, sizeof(struct set_stakey_parm));
-+ res=_FAIL;
++ psetstakey_rsp = (struct set_stakey_rsp*)rtw_zmalloc(sizeof(struct set_stakey_rsp));
++ if (psetstakey_rsp == NULL) {
++ kfree((u8 *) ph2c);
++ kfree((u8 *) psetstakey_para);
++ res = _FAIL;
+ goto exit;
+ }
+
+ init_h2fwcmd_w_parm_no_rsp(ph2c, psetstakey_para, _SetStaKey_CMD_);
+ ph2c->rsp = (u8 *) psetstakey_rsp;
+ ph2c->rspsz = sizeof(struct set_stakey_rsp);
-+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
++ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
+ }
-+ else{
++ else {
+ set_stakey_hdl(padapter, (u8 *)psetstakey_para);
-+ rtw_mfree((u8 *) psetstakey_para, sizeof(struct set_stakey_parm));
++ kfree((u8 *) psetstakey_para);
+ }
+exit:
-+
-+_func_exit_;
-+
+ return res;
+}
+
-+u8 rtw_clearstakey_cmd(_adapter *padapter, struct sta_info *sta, u8 enqueue)
++u8 rtw_clearstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 enqueue)
+{
-+ struct cmd_obj* ph2c;
++ struct cmd_obj* ph2c;
+ struct set_stakey_parm *psetstakey_para;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-+ struct set_stakey_rsp *psetstakey_rsp = NULL;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct security_priv *psecuritypriv = &padapter->securitypriv;
++ struct cmd_priv *pcmdpriv =&padapter->cmdpriv;
++ struct set_stakey_rsp *psetstakey_rsp = NULL;
+ s16 cam_id = 0;
-+ u8 res=_SUCCESS;
++ u8 res = _SUCCESS;
+
-+_func_enter_;
-+
-+ if(!enqueue)
++ if (!enqueue)
+ {
-+ while((cam_id = rtw_camid_search(padapter, sta->hwaddr, -1)) >= 0) {
++ while ((cam_id = rtw_camid_search(padapter, sta->hwaddr, -1)) >= 0) {
+ DBG_871X_LEVEL(_drv_always_, "clear key for addr:"MAC_FMT", camid:%d\n", MAC_ARG(sta->hwaddr), cam_id);
+ clear_cam_entry(padapter, cam_id);
+ rtw_camid_free(padapter, cam_id);
@@ -4561,23 +4057,23 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ else
+ {
+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if ( ph2c == NULL){
-+ res= _FAIL;
++ if (ph2c == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
+
+ psetstakey_para = (struct set_stakey_parm*)rtw_zmalloc(sizeof(struct set_stakey_parm));
-+ if(psetstakey_para==NULL){
-+ rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-+ res=_FAIL;
++ if (psetstakey_para == NULL) {
++ kfree((u8 *) ph2c);
++ res = _FAIL;
+ goto exit;
+ }
+
-+ psetstakey_rsp = (struct set_stakey_rsp*)rtw_zmalloc(sizeof(struct set_stakey_rsp));
-+ if(psetstakey_rsp == NULL){
-+ rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-+ rtw_mfree((u8 *) psetstakey_para, sizeof(struct set_stakey_parm));
-+ res=_FAIL;
++ psetstakey_rsp = (struct set_stakey_rsp*)rtw_zmalloc(sizeof(struct set_stakey_rsp));
++ if (psetstakey_rsp == NULL) {
++ kfree((u8 *) ph2c);
++ kfree((u8 *) psetstakey_para);
++ res = _FAIL;
+ goto exit;
+ }
+
@@ -4588,155 +4084,33 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ memcpy(psetstakey_para->addr, sta->hwaddr, ETH_ALEN);
+
+ psetstakey_para->algorithm = _NO_PRIVACY_;
-+
-+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+
++
++ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
++
+ }
-+
++
+exit:
-+
-+_func_exit_;
-+
+ return res;
+}
+
-+u8 rtw_setrttbl_cmd(_adapter *padapter, struct setratable_parm *prate_table)
++u8 rtw_addbareq_cmd(struct adapter *padapter, u8 tid, u8 *addr)
+{
-+ struct cmd_obj* ph2c;
-+ struct setratable_parm * psetrttblparm;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-+ u8 res=_SUCCESS;
-+_func_enter_;
-+
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ res= _FAIL;
-+ goto exit;
-+ }
-+ psetrttblparm = (struct setratable_parm*)rtw_zmalloc(sizeof(struct setratable_parm));
-+
-+ if(psetrttblparm==NULL){
-+ rtw_mfree((unsigned char *) ph2c, sizeof(struct cmd_obj));
-+ res= _FAIL;
-+ goto exit;
-+ }
-+
-+ init_h2fwcmd_w_parm_no_rsp(ph2c, psetrttblparm, GEN_CMD_CODE(_SetRaTable));
-+
-+ memcpy(psetrttblparm,prate_table,sizeof(struct setratable_parm));
-+
-+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+exit:
-+_func_exit_;
-+ return res;
-+
-+}
-+
-+u8 rtw_getrttbl_cmd(_adapter *padapter, struct getratable_rsp *pval)
-+{
-+ struct cmd_obj* ph2c;
-+ struct getratable_parm * pgetrttblparm;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-+ u8 res=_SUCCESS;
-+_func_enter_;
-+
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ res= _FAIL;
-+ goto exit;
-+ }
-+ pgetrttblparm = (struct getratable_parm*)rtw_zmalloc(sizeof(struct getratable_parm));
-+
-+ if(pgetrttblparm==NULL){
-+ rtw_mfree((unsigned char *) ph2c, sizeof(struct cmd_obj));
-+ res= _FAIL;
-+ goto exit;
-+ }
-+
-+// init_h2fwcmd_w_parm_no_rsp(ph2c, psetrttblparm, GEN_CMD_CODE(_SetRaTable));
-+
-+ _rtw_init_listhead(&ph2c->list);
-+ ph2c->cmdcode =GEN_CMD_CODE(_GetRaTable);
-+ ph2c->parmbuf = (unsigned char *)pgetrttblparm;
-+ ph2c->cmdsz = sizeof(struct getratable_parm);
-+ ph2c->rsp = (u8*)pval;
-+ ph2c->rspsz = sizeof(struct getratable_rsp);
-+
-+ pgetrttblparm ->rsvd = 0x0;
-+
-+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+exit:
-+_func_exit_;
-+ return res;
-+
-+}
-+
-+u8 rtw_setassocsta_cmd(_adapter *padapter, u8 *mac_addr)
-+{
-+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
-+ struct cmd_obj* ph2c;
-+ struct set_assocsta_parm *psetassocsta_para;
-+ struct set_stakey_rsp *psetassocsta_rsp = NULL;
-+
-+ u8 res=_SUCCESS;
-+
-+_func_enter_;
-+
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ res= _FAIL;
-+ goto exit;
-+ }
-+
-+ psetassocsta_para = (struct set_assocsta_parm*)rtw_zmalloc(sizeof(struct set_assocsta_parm));
-+ if(psetassocsta_para==NULL){
-+ rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-+ res=_FAIL;
-+ goto exit;
-+ }
-+
-+ psetassocsta_rsp = (struct set_stakey_rsp*)rtw_zmalloc(sizeof(struct set_assocsta_rsp));
-+ if(psetassocsta_rsp==NULL){
-+ rtw_mfree((u8 *) ph2c, sizeof(struct cmd_obj));
-+ rtw_mfree((u8 *) psetassocsta_para, sizeof(struct set_assocsta_parm));
-+ return _FAIL;
-+ }
-+
-+ init_h2fwcmd_w_parm_no_rsp(ph2c, psetassocsta_para, _SetAssocSta_CMD_);
-+ ph2c->rsp = (u8 *) psetassocsta_rsp;
-+ ph2c->rspsz = sizeof(struct set_assocsta_rsp);
-+
-+ memcpy(psetassocsta_para->addr, mac_addr,ETH_ALEN);
-+
-+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+
-+exit:
-+
-+_func_exit_;
-+
-+ return res;
-+ }
-+
-+u8 rtw_addbareq_cmd(_adapter*padapter, u8 tid, u8 *addr)
-+{
-+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
-+ struct cmd_obj* ph2c;
++ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
++ struct cmd_obj* ph2c;
+ struct addBaReq_parm *paddbareq_parm;
+
-+ u8 res=_SUCCESS;
-+
-+_func_enter_;
++ u8 res = _SUCCESS;
+
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ res= _FAIL;
++ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
++ if (ph2c == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
-+
-+ paddbareq_parm = (struct addBaReq_parm*)rtw_zmalloc(sizeof(struct addBaReq_parm));
-+ if(paddbareq_parm==NULL){
-+ rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ res= _FAIL;
++
++ paddbareq_parm = (struct addBaReq_parm*)rtw_zmalloc(sizeof(struct addBaReq_parm));
++ if (paddbareq_parm == NULL) {
++ kfree((unsigned char *)ph2c);
++ res = _FAIL;
+ goto exit;
+ }
+
@@ -4745,37 +4119,32 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+
+ init_h2fwcmd_w_parm_no_rsp(ph2c, paddbareq_parm, GEN_CMD_CODE(_AddBAReq));
+
-+ //DBG_871X("rtw_addbareq_cmd, tid=%d\n", tid);
++ /* DBG_871X("rtw_addbareq_cmd, tid =%d\n", tid); */
+
-+ //rtw_enqueue_cmd(pcmdpriv, ph2c);
++ /* rtw_enqueue_cmd(pcmdpriv, ph2c); */
+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+
-+exit:
-+
-+_func_exit_;
+
++exit:
+ return res;
+}
-+//add for CONFIG_IEEE80211W, none 11w can use it
-+u8 rtw_reset_securitypriv_cmd(_adapter*padapter)
++/* add for CONFIG_IEEE80211W, none 11w can use it */
++u8 rtw_reset_securitypriv_cmd(struct adapter *padapter)
+{
-+ struct cmd_obj* ph2c;
-+ struct drvextra_cmd_parm *pdrvextra_cmd_parm;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-+ u8 res=_SUCCESS;
-+
-+_func_enter_;
++ struct cmd_obj* ph2c;
++ struct drvextra_cmd_parm *pdrvextra_cmd_parm;
++ struct cmd_priv *pcmdpriv =&padapter->cmdpriv;
++ u8 res = _SUCCESS;
+
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ res= _FAIL;
++ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
++ if (ph2c == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
-+
-+ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
-+ if(pdrvextra_cmd_parm==NULL){
-+ rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ res= _FAIL;
++
++ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
++ if (pdrvextra_cmd_parm == NULL) {
++ kfree((unsigned char *)ph2c);
++ res = _FAIL;
+ goto exit;
+ }
+
@@ -4786,37 +4155,31 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+
+ init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra));
+
-+
-+ //rtw_enqueue_cmd(pcmdpriv, ph2c);
++
++ /* rtw_enqueue_cmd(pcmdpriv, ph2c); */
+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+
++
+exit:
-+
-+_func_exit_;
-+
+ return res;
-+
+}
+
-+u8 rtw_free_assoc_resources_cmd(_adapter*padapter)
++u8 rtw_free_assoc_resources_cmd(struct adapter *padapter)
+{
-+ struct cmd_obj* ph2c;
-+ struct drvextra_cmd_parm *pdrvextra_cmd_parm;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-+ u8 res=_SUCCESS;
-+
-+_func_enter_;
++ struct cmd_obj* ph2c;
++ struct drvextra_cmd_parm *pdrvextra_cmd_parm;
++ struct cmd_priv *pcmdpriv =&padapter->cmdpriv;
++ u8 res = _SUCCESS;
+
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ res= _FAIL;
++ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
++ if (ph2c == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
-+
-+ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
-+ if(pdrvextra_cmd_parm==NULL){
-+ rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ res= _FAIL;
++
++ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
++ if (pdrvextra_cmd_parm == NULL) {
++ kfree((unsigned char *)ph2c);
++ res = _FAIL;
+ goto exit;
+ }
+
@@ -4827,38 +4190,32 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+
+ init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra));
+
-+
-+ //rtw_enqueue_cmd(pcmdpriv, ph2c);
++
++ /* rtw_enqueue_cmd(pcmdpriv, ph2c); */
+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+
++
+exit:
-+
-+_func_exit_;
-+
+ return res;
-+
+}
+
-+u8 rtw_dynamic_chk_wk_cmd(_adapter*padapter)
++u8 rtw_dynamic_chk_wk_cmd(struct adapter *padapter)
+{
-+ struct cmd_obj* ph2c;
-+ struct drvextra_cmd_parm *pdrvextra_cmd_parm;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-+ u8 res=_SUCCESS;
-+
-+_func_enter_;
++ struct cmd_obj* ph2c;
++ struct drvextra_cmd_parm *pdrvextra_cmd_parm;
++ struct cmd_priv *pcmdpriv =&padapter->cmdpriv;
++ u8 res = _SUCCESS;
+
-+ //only primary padapter does this cmd
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ res= _FAIL;
++ /* only primary padapter does this cmd */
++ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
++ if (ph2c == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
-+
-+ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
-+ if(pdrvextra_cmd_parm==NULL){
-+ rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ res= _FAIL;
++
++ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
++ if (pdrvextra_cmd_parm == NULL) {
++ kfree((unsigned char *)ph2c);
++ res = _FAIL;
+ goto exit;
+ }
+
@@ -4868,113 +4225,52 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ pdrvextra_cmd_parm->pbuf = NULL;
+ init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra));
+
-+
-+ //rtw_enqueue_cmd(pcmdpriv, ph2c);
++
++ /* rtw_enqueue_cmd(pcmdpriv, ph2c); */
+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+
-+exit:
-+
-+_func_exit_;
-+
-+ return res;
-+
-+}
-+
-+u8 rtw_set_ch_cmd(_adapter*padapter, u8 ch, u8 bw, u8 ch_offset, u8 enqueue)
-+{
-+ struct cmd_obj *pcmdobj;
-+ struct set_ch_parm *set_ch_parm;
-+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
-+
-+ u8 res=_SUCCESS;
-+
-+_func_enter_;
-+
-+ DBG_871X(FUNC_NDEV_FMT" ch:%u, bw:%u, ch_offset:%u\n",
-+ FUNC_NDEV_ARG(padapter->pnetdev), ch, bw, ch_offset);
-+
-+ /* check input parameter */
-+
-+ /* prepare cmd parameter */
-+ set_ch_parm = (struct set_ch_parm *)rtw_zmalloc(sizeof(*set_ch_parm));
-+ if (set_ch_parm == NULL) {
-+ res= _FAIL;
-+ goto exit;
-+ }
-+ set_ch_parm->ch = ch;
-+ set_ch_parm->bw = bw;
-+ set_ch_parm->ch_offset = ch_offset;
-+
-+ if (enqueue) {
-+ /* need enqueue, prepare cmd_obj and enqueue */
-+ pcmdobj = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(pcmdobj == NULL){
-+ rtw_mfree((u8 *)set_ch_parm, sizeof(*set_ch_parm));
-+ res=_FAIL;
-+ goto exit;
-+ }
-+
-+ init_h2fwcmd_w_parm_no_rsp(pcmdobj, set_ch_parm, GEN_CMD_CODE(_SetChannel));
-+ res = rtw_enqueue_cmd(pcmdpriv, pcmdobj);
-+ } else {
-+ /* no need to enqueue, do the cmd hdl directly and free cmd parameter */
-+ if( H2C_SUCCESS !=set_ch_hdl(padapter, (u8 *)set_ch_parm) )
-+ res = _FAIL;
-+
-+ rtw_mfree((u8 *)set_ch_parm, sizeof(*set_ch_parm));
-+ }
-+
-+ /* do something based on res... */
+
+exit:
-+
-+ DBG_871X(FUNC_NDEV_FMT" res:%u\n", FUNC_NDEV_ARG(padapter->pnetdev), res);
-+
-+_func_exit_;
-+
+ return res;
+}
+
-+u8 rtw_set_chplan_cmd(_adapter*padapter, u8 chplan, u8 enqueue, u8 swconfig)
++u8 rtw_set_chplan_cmd(struct adapter *padapter, u8 chplan, u8 enqueue, u8 swconfig)
+{
-+ struct cmd_obj* pcmdobj;
++ struct cmd_obj*pcmdobj;
+ struct SetChannelPlan_param *setChannelPlan_param;
+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
+
-+ u8 res=_SUCCESS;
-+
-+_func_enter_;
++ u8 res = _SUCCESS;
+
+ RT_TRACE(_module_rtl871x_cmd_c_, _drv_notice_, ("+rtw_set_chplan_cmd\n"));
+
-+ // check if allow software config
++ /* check if allow software config */
+ if (swconfig && rtw_hal_is_disable_sw_channel_plan(padapter) == true)
+ {
+ res = _FAIL;
+ goto exit;
+ }
+
-+ //check input parameter
-+ if(!rtw_is_channel_plan_valid(chplan)) {
++ /* check input parameter */
++ if (!rtw_is_channel_plan_valid(chplan)) {
+ res = _FAIL;
+ goto exit;
+ }
+
-+ //prepare cmd parameter
++ /* prepare cmd parameter */
+ setChannelPlan_param = (struct SetChannelPlan_param *)rtw_zmalloc(sizeof(struct SetChannelPlan_param));
-+ if(setChannelPlan_param == NULL) {
-+ res= _FAIL;
++ if (setChannelPlan_param == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
-+ setChannelPlan_param->channel_plan=chplan;
++ setChannelPlan_param->channel_plan =chplan;
+
-+ if(enqueue)
++ if (enqueue)
+ {
-+ //need enqueue, prepare cmd_obj and enqueue
++ /* need enqueue, prepare cmd_obj and enqueue */
+ pcmdobj = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(pcmdobj == NULL){
-+ rtw_mfree((u8 *)setChannelPlan_param, sizeof(struct SetChannelPlan_param));
-+ res=_FAIL;
++ if (pcmdobj == NULL) {
++ kfree((u8 *)setChannelPlan_param);
++ res = _FAIL;
+ goto exit;
+ }
+
@@ -4983,125 +4279,36 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ }
+ else
+ {
-+ //no need to enqueue, do the cmd hdl directly and free cmd parameter
-+ if( H2C_SUCCESS !=set_chplan_hdl(padapter, (unsigned char *)setChannelPlan_param) )
++ /* no need to enqueue, do the cmd hdl directly and free cmd parameter */
++ if (H2C_SUCCESS !=set_chplan_hdl(padapter, (unsigned char *)setChannelPlan_param))
+ res = _FAIL;
-+
-+ rtw_mfree((u8 *)setChannelPlan_param, sizeof(struct SetChannelPlan_param));
++
++ kfree((u8 *)setChannelPlan_param);
+ }
+
-+ //do something based on res...
-+ if(res == _SUCCESS)
++ /* do something based on res... */
++ if (res == _SUCCESS)
+ padapter->mlmepriv.ChannelPlan = chplan;
-+
++
+exit:
-+
-+_func_exit_;
-+
+ return res;
+}
+
-+u8 rtw_led_blink_cmd(_adapter*padapter, void * pLed)
++static void collect_traffic_statistics(struct adapter *padapter)
+{
-+ struct cmd_obj* pcmdobj;
-+ struct LedBlink_param *ledBlink_param;
-+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
++ struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter);
+
-+ u8 res=_SUCCESS;
-+
-+_func_enter_;
-+
-+ RT_TRACE(_module_rtl871x_cmd_c_, _drv_notice_, ("+rtw_led_blink_cmd\n"));
-+
-+ pcmdobj = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(pcmdobj == NULL){
-+ res=_FAIL;
-+ goto exit;
-+ }
-+
-+ ledBlink_param = (struct LedBlink_param *)rtw_zmalloc(sizeof(struct LedBlink_param));
-+ if(ledBlink_param == NULL) {
-+ rtw_mfree((u8 *)pcmdobj, sizeof(struct cmd_obj));
-+ res= _FAIL;
-+ goto exit;
-+ }
-+
-+ ledBlink_param->pLed=pLed;
-+
-+ init_h2fwcmd_w_parm_no_rsp(pcmdobj, ledBlink_param, GEN_CMD_CODE(_LedBlink));
-+ res = rtw_enqueue_cmd(pcmdpriv, pcmdobj);
-+
-+exit:
-+
-+_func_exit_;
-+
-+ return res;
-+}
-+
-+u8 rtw_set_csa_cmd(_adapter*padapter, u8 new_ch_no)
-+{
-+ struct cmd_obj* pcmdobj;
-+ struct SetChannelSwitch_param*setChannelSwitch_param;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
-+
-+ u8 res=_SUCCESS;
-+
-+_func_enter_;
-+
-+ RT_TRACE(_module_rtl871x_cmd_c_, _drv_notice_, ("+rtw_set_csa_cmd\n"));
-+
-+ pcmdobj = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(pcmdobj == NULL){
-+ res=_FAIL;
-+ goto exit;
-+ }
-+
-+ setChannelSwitch_param = (struct SetChannelSwitch_param *)rtw_zmalloc(sizeof(struct SetChannelSwitch_param));
-+ if(setChannelSwitch_param == NULL) {
-+ rtw_mfree((u8 *)pcmdobj, sizeof(struct cmd_obj));
-+ res= _FAIL;
-+ goto exit;
-+ }
-+
-+ setChannelSwitch_param->new_ch_no=new_ch_no;
-+
-+ init_h2fwcmd_w_parm_no_rsp(pcmdobj, setChannelSwitch_param, GEN_CMD_CODE(_SetChannelSwitch));
-+ res = rtw_enqueue_cmd(pcmdpriv, pcmdobj);
-+
-+exit:
-+
-+_func_exit_;
-+
-+ return res;
-+}
-+
-+u8 rtw_tdls_cmd(_adapter *padapter, u8 *addr, u8 option)
-+{
-+ u8 res=_SUCCESS;
-+
-+_func_enter_;
-+
-+_func_exit_;
-+
-+ return res;
-+}
-+
-+static void collect_traffic_statistics(_adapter *padapter)
-+{
-+ struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter);
-+
-+ // Tx
++ /* Tx */
+ pdvobjpriv->traffic_stat.tx_bytes = padapter->xmitpriv.tx_bytes;
+ pdvobjpriv->traffic_stat.tx_pkts = padapter->xmitpriv.tx_pkts;
+ pdvobjpriv->traffic_stat.tx_drop = padapter->xmitpriv.tx_drop;
+
-+ // Rx
++ /* Rx */
+ pdvobjpriv->traffic_stat.rx_bytes = padapter->recvpriv.rx_bytes;
+ pdvobjpriv->traffic_stat.rx_pkts = padapter->recvpriv.rx_pkts;
+ pdvobjpriv->traffic_stat.rx_drop = padapter->recvpriv.rx_drop;
+
-+ // Calculate throughput in last interval
++ /* Calculate throughput in last interval */
+ pdvobjpriv->traffic_stat.cur_tx_bytes = pdvobjpriv->traffic_stat.tx_bytes - pdvobjpriv->traffic_stat.last_tx_bytes;
+ pdvobjpriv->traffic_stat.cur_rx_bytes = pdvobjpriv->traffic_stat.rx_bytes - pdvobjpriv->traffic_stat.last_rx_bytes;
+ pdvobjpriv->traffic_stat.last_tx_bytes = pdvobjpriv->traffic_stat.tx_bytes;
@@ -5111,33 +4318,33 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ pdvobjpriv->traffic_stat.cur_rx_tp = (u32)(pdvobjpriv->traffic_stat.cur_rx_bytes *8/2/1024/1024);
+}
+
-+u8 traffic_status_watchdog(_adapter *padapter, u8 from_timer)
++u8 traffic_status_watchdog(struct adapter *padapter, u8 from_timer)
+{
-+ u8 bEnterPS = false;
-+ u16 BusyThresholdHigh = 25;
-+ u16 BusyThresholdLow = 10;
-+ u16 BusyThreshold = BusyThresholdHigh;
-+ u8 bBusyTraffic = false, bTxBusyTraffic = false, bRxBusyTraffic = false;
-+ u8 bHigherBusyTraffic = false, bHigherBusyRxTraffic = false, bHigherBusyTxTraffic = false;
++ u8 bEnterPS = false;
++ u16 BusyThresholdHigh = 25;
++ u16 BusyThresholdLow = 10;
++ u16 BusyThreshold = BusyThresholdHigh;
++ u8 bBusyTraffic = false, bTxBusyTraffic = false, bRxBusyTraffic = false;
++ u8 bHigherBusyTraffic = false, bHigherBusyRxTraffic = false, bHigherBusyTxTraffic = false;
+
-+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
++ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
+
+ RT_LINK_DETECT_T * link_detect = &pmlmepriv->LinkDetectInfo;
+
+ collect_traffic_statistics(padapter);
+
-+ //
-+ // Determine if our traffic is busy now
-+ //
-+ if((check_fwstate(pmlmepriv, _FW_LINKED)== true)
++ /* */
++ /* Determine if our traffic is busy now */
++ /* */
++ if ((check_fwstate(pmlmepriv, _FW_LINKED) == true)
+ /*&& !MgntInitAdapterInProgress(pMgntInfo)*/)
+ {
-+ // if we raise bBusyTraffic in last watchdog, using lower threshold.
++ /* if we raise bBusyTraffic in last watchdog, using lower threshold. */
+ if (pmlmepriv->LinkDetectInfo.bBusyTraffic)
+ BusyThreshold = BusyThresholdLow;
+
-+ if( pmlmepriv->LinkDetectInfo.NumRxOkInPeriod > BusyThreshold ||
-+ pmlmepriv->LinkDetectInfo.NumTxOkInPeriod > BusyThreshold )
++ if (pmlmepriv->LinkDetectInfo.NumRxOkInPeriod > BusyThreshold ||
++ pmlmepriv->LinkDetectInfo.NumTxOkInPeriod > BusyThreshold)
+ {
+ bBusyTraffic = true;
+
@@ -5147,9 +4354,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ bTxBusyTraffic = true;
+ }
+
-+ // Higher Tx/Rx data.
-+ if( pmlmepriv->LinkDetectInfo.NumRxOkInPeriod > 4000 ||
-+ pmlmepriv->LinkDetectInfo.NumTxOkInPeriod > 4000 )
++ /* Higher Tx/Rx data. */
++ if (pmlmepriv->LinkDetectInfo.NumRxOkInPeriod > 4000 ||
++ pmlmepriv->LinkDetectInfo.NumTxOkInPeriod > 4000)
+ {
+ bHigherBusyTraffic = true;
+
@@ -5166,90 +4373,68 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+
+ if (link_detect->NumTxOkInPeriod > TX_ACTIVE_TH
+ || link_detect->NumRxUnicastOkInPeriod > RX_ACTIVE_TH) {
-+
-+ DBG_871X_LEVEL(_drv_info_, FUNC_ADPT_FMT" acqiure wake_lock for %u ms(tx:%d,rx_unicast:%d)\n",
++
++ DBG_871X_LEVEL(_drv_info_, FUNC_ADPT_FMT" acqiure wake_lock for %u ms(tx:%d, rx_unicast:%d)\n",
+ FUNC_ADPT_ARG(padapter),
+ TRAFFIC_PROTECT_PERIOD_MS,
+ link_detect->NumTxOkInPeriod,
+ link_detect->NumRxUnicastOkInPeriod);
-+
-+ rtw_lock_traffic_suspend_timeout(TRAFFIC_PROTECT_PERIOD_MS);
+ }
+#endif
-+
-+ // check traffic for powersaving.
-+ if( ((pmlmepriv->LinkDetectInfo.NumRxUnicastOkInPeriod + pmlmepriv->LinkDetectInfo.NumTxOkInPeriod) > 8 ) ||
-+ (pmlmepriv->LinkDetectInfo.NumRxUnicastOkInPeriod > 2) )
-+ {
-+ //DBG_871X("(-)Tx = %d, Rx = %d \n",pmlmepriv->LinkDetectInfo.NumTxOkInPeriod,pmlmepriv->LinkDetectInfo.NumRxUnicastOkInPeriod);
-+ bEnterPS= false;
+
-+ if(bBusyTraffic == true)
++ /* check traffic for powersaving. */
++ if (((pmlmepriv->LinkDetectInfo.NumRxUnicastOkInPeriod + pmlmepriv->LinkDetectInfo.NumTxOkInPeriod) > 8) ||
++ (pmlmepriv->LinkDetectInfo.NumRxUnicastOkInPeriod > 2))
++ {
++ /* DBG_871X("(-)Tx = %d, Rx = %d\n", pmlmepriv->LinkDetectInfo.NumTxOkInPeriod, pmlmepriv->LinkDetectInfo.NumRxUnicastOkInPeriod); */
++ bEnterPS = false;
++
++ if (bBusyTraffic == true)
+ {
-+ if(pmlmepriv->LinkDetectInfo.TrafficTransitionCount <= 4)
++ if (pmlmepriv->LinkDetectInfo.TrafficTransitionCount <= 4)
+ pmlmepriv->LinkDetectInfo.TrafficTransitionCount = 4;
+
+ pmlmepriv->LinkDetectInfo.TrafficTransitionCount++;
+
-+ //DBG_871X("Set TrafficTransitionCount to %d\n", pmlmepriv->LinkDetectInfo.TrafficTransitionCount);
-+
-+ if(pmlmepriv->LinkDetectInfo.TrafficTransitionCount > 30/*TrafficTransitionLevel*/)
++ /* DBG_871X("Set TrafficTransitionCount to %d\n", pmlmepriv->LinkDetectInfo.TrafficTransitionCount); */
++
++ if (pmlmepriv->LinkDetectInfo.TrafficTransitionCount > 30/*TrafficTransitionLevel*/)
+ {
+ pmlmepriv->LinkDetectInfo.TrafficTransitionCount = 30;
-+ }
++ }
+ }
+ }
+ else
+ {
-+ //DBG_871X("(+)Tx = %d, Rx = %d \n",pmlmepriv->LinkDetectInfo.NumTxOkInPeriod,pmlmepriv->LinkDetectInfo.NumRxUnicastOkInPeriod);
++ /* DBG_871X("(+)Tx = %d, Rx = %d\n", pmlmepriv->LinkDetectInfo.NumTxOkInPeriod, pmlmepriv->LinkDetectInfo.NumRxUnicastOkInPeriod); */
+
-+ if(pmlmepriv->LinkDetectInfo.TrafficTransitionCount>=2)
++ if (pmlmepriv->LinkDetectInfo.TrafficTransitionCount>=2)
+ pmlmepriv->LinkDetectInfo.TrafficTransitionCount -=2;
+ else
+ pmlmepriv->LinkDetectInfo.TrafficTransitionCount = 0;
+
-+ if(pmlmepriv->LinkDetectInfo.TrafficTransitionCount == 0)
-+ bEnterPS= true;
++ if (pmlmepriv->LinkDetectInfo.TrafficTransitionCount == 0)
++ bEnterPS = true;
+ }
+
-+ // LeisurePS only work in infra mode.
-+ if(bEnterPS)
-+ {
-+ if(!from_timer)
-+ {
++ /* LeisurePS only work in infra mode. */
++ if (bEnterPS) {
++ if (!from_timer)
+ LPS_Enter(padapter, "TRAFFIC_IDLE");
-+ }
-+ else
-+ {
-+ //do this at caller
-+ //rtw_lps_ctrl_wk_cmd(adapter, LPS_CTRL_ENTER, 1);
-+ //rtw_hal_dm_watchdog_in_lps(padapter);
-+ }
-+ }
-+ else
-+ {
-+ if(!from_timer)
-+ {
++ } else {
++ if (!from_timer)
+ LPS_Leave(padapter, "TRAFFIC_BUSY");
-+ }
+ else
-+ {
+ rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_TRAFFIC_BUSY, 1);
-+ }
-+ }
-+ }
-+ else
-+ {
++ }
++ } else {
+ struct dvobj_priv *dvobj = adapter_to_dvobj(padapter);
+ int n_assoc_iface = 0;
-+ int i;
+
-+ for (i = 0; i < dvobj->iface_nums; i++) {
-+ if (check_fwstate(&(dvobj->padapters[i]->mlmepriv), WIFI_ASOC_STATE))
-+ n_assoc_iface++;
-+ }
++ if (check_fwstate(&(dvobj->padapters->mlmepriv), WIFI_ASOC_STATE))
++ n_assoc_iface++;
+
-+ if(!from_timer && n_assoc_iface == 0)
++ if (!from_timer && n_assoc_iface == 0)
+ LPS_Leave(padapter, "NON_LINKED");
+ }
+
@@ -5264,100 +4449,96 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ pmlmepriv->LinkDetectInfo.bHigherBusyTxTraffic = bHigherBusyTxTraffic;
+
+ return bEnterPS;
-+
++
+}
+
-+static void dynamic_chk_wk_hdl(_adapter *padapter)
++static void dynamic_chk_wk_hdl(struct adapter *padapter)
+{
+ struct mlme_priv *pmlmepriv;
+ pmlmepriv = &(padapter->mlmepriv);
+
-+#ifdef CONFIG_AP_MODE
-+ if(check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
-+ {
++ if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
++ {
+ expire_timeout_chk(padapter);
+ }
-+#endif
+
-+ //for debug purpose
++ /* for debug purpose */
+ _linked_info_dump(padapter);
+
+
-+ //if(check_fwstate(pmlmepriv, _FW_UNDER_LINKING|_FW_UNDER_SURVEY)==false)
++ /* if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING|_FW_UNDER_SURVEY) ==false) */
+ {
-+ linked_status_chk(padapter);
++ linked_status_chk(padapter);
+ traffic_status_watchdog(padapter, 0);
+ }
+
+ rtw_hal_dm_watchdog(padapter);
+
-+ //check_hw_pbc(padapter, pdrvextra_cmd->pbuf, pdrvextra_cmd->type);
++ /* check_hw_pbc(padapter, pdrvextra_cmd->pbuf, pdrvextra_cmd->type); */
+
-+ //
-+ // BT-Coexist
-+ //
++ /* */
++ /* BT-Coexist */
++ /* */
+ rtw_btcoex_Handler(padapter);
+
-+
-+ //always call rtw_ps_processor() at last one.
-+ if(is_primary_adapter(padapter))
++
++ /* always call rtw_ps_processor() at last one. */
++ if (is_primary_adapter(padapter))
+ rtw_ps_processor(padapter);
+}
+
-+void lps_ctrl_wk_hdl(_adapter *padapter, u8 lps_ctrl_type);
-+void lps_ctrl_wk_hdl(_adapter *padapter, u8 lps_ctrl_type)
++void lps_ctrl_wk_hdl(struct adapter *padapter, u8 lps_ctrl_type);
++void lps_ctrl_wk_hdl(struct adapter *padapter, u8 lps_ctrl_type)
+{
+ struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ u8 mstatus;
-+
-+_func_enter_;
++ u8 mstatus;
+
-+ if((check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true)
++ if ((check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true)
+ || (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true))
+ {
+ return;
+ }
+
-+ switch(lps_ctrl_type)
++ switch (lps_ctrl_type)
+ {
+ case LPS_CTRL_SCAN:
-+ //DBG_871X("LPS_CTRL_SCAN \n");
++ /* DBG_871X("LPS_CTRL_SCAN\n"); */
+ rtw_btcoex_ScanNotify(padapter, true);
+
+ if (check_fwstate(pmlmepriv, _FW_LINKED) == true)
+ {
-+ // connect
++ /* connect */
+ LPS_Leave(padapter, "LPS_CTRL_SCAN");
+ }
+ break;
+ case LPS_CTRL_JOINBSS:
-+ //DBG_871X("LPS_CTRL_JOINBSS \n");
++ /* DBG_871X("LPS_CTRL_JOINBSS\n"); */
+ LPS_Leave(padapter, "LPS_CTRL_JOINBSS");
+ break;
+ case LPS_CTRL_CONNECT:
-+ //DBG_871X("LPS_CTRL_CONNECT \n");
-+ mstatus = 1;//connect
-+ // Reset LPS Setting
++ /* DBG_871X("LPS_CTRL_CONNECT\n"); */
++ mstatus = 1;/* connect */
++ /* Reset LPS Setting */
+ pwrpriv->LpsIdleCount = 0;
+ rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_JOINBSSRPT, (u8 *)(&mstatus));
+ rtw_btcoex_MediaStatusNotify(padapter, mstatus);
+ break;
+ case LPS_CTRL_DISCONNECT:
-+ //DBG_871X("LPS_CTRL_DISCONNECT \n");
-+ mstatus = 0;//disconnect
++ /* DBG_871X("LPS_CTRL_DISCONNECT\n"); */
++ mstatus = 0;/* disconnect */
+ rtw_btcoex_MediaStatusNotify(padapter, mstatus);
+ LPS_Leave(padapter, "LPS_CTRL_DISCONNECT");
+ rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_JOINBSSRPT, (u8 *)(&mstatus));
+ break;
+ case LPS_CTRL_SPECIAL_PACKET:
-+ //DBG_871X("LPS_CTRL_SPECIAL_PACKET \n");
++ /* DBG_871X("LPS_CTRL_SPECIAL_PACKET\n"); */
+ pwrpriv->DelayLPSLastTimeStamp = jiffies;
+ rtw_btcoex_SpecialPacketNotify(padapter, PACKET_DHCP);
+ LPS_Leave(padapter, "LPS_CTRL_SPECIAL_PACKET");
+ break;
+ case LPS_CTRL_LEAVE:
-+ //DBG_871X("LPS_CTRL_LEAVE \n");
++ /* DBG_871X("LPS_CTRL_LEAVE\n"); */
+ LPS_Leave(padapter, "LPS_CTRL_LEAVE");
+ break;
+ case LPS_CTRL_TRAFFIC_BUSY:
@@ -5365,35 +4546,31 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ default:
+ break;
+ }
-+
-+_func_exit_;
+}
+
-+u8 rtw_lps_ctrl_wk_cmd(_adapter*padapter, u8 lps_ctrl_type, u8 enqueue)
++u8 rtw_lps_ctrl_wk_cmd(struct adapter *padapter, u8 lps_ctrl_type, u8 enqueue)
+{
+ struct cmd_obj *ph2c;
+ struct drvextra_cmd_parm *pdrvextra_cmd_parm;
-+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
-+ //struct pwrctrl_priv *pwrctrlpriv = adapter_to_pwrctl(padapter);
-+ u8 res = _SUCCESS;
-+
-+_func_enter_;
++ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
++ /* struct pwrctrl_priv *pwrctrlpriv = adapter_to_pwrctl(padapter); */
++ u8 res = _SUCCESS;
+
-+ //if(!pwrctrlpriv->bLeisurePs)
-+ // return res;
++ /* if (!pwrctrlpriv->bLeisurePs) */
++ /* return res; */
+
-+ if(enqueue)
++ if (enqueue)
+ {
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ res= _FAIL;
++ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
++ if (ph2c == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
-+
-+ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
-+ if(pdrvextra_cmd_parm==NULL){
-+ rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ res= _FAIL;
++
++ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
++ if (pdrvextra_cmd_parm == NULL) {
++ kfree((unsigned char *)ph2c);
++ res = _FAIL;
+ goto exit;
+ }
+
@@ -5410,38 +4587,34 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ {
+ lps_ctrl_wk_hdl(padapter, lps_ctrl_type);
+ }
-+
++
+exit:
-+
-+_func_exit_;
-+
+ return res;
-+
+}
+
-+static void rtw_dm_in_lps_hdl(_adapter*padapter)
++static void rtw_dm_in_lps_hdl(struct adapter *padapter)
+{
+ rtw_hal_set_hwreg(padapter, HW_VAR_DM_IN_LPS, NULL);
+}
+
-+u8 rtw_dm_in_lps_wk_cmd(_adapter*padapter)
++u8 rtw_dm_in_lps_wk_cmd(struct adapter *padapter)
+{
+ struct cmd_obj *ph2c;
+ struct drvextra_cmd_parm *pdrvextra_cmd_parm;
-+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
-+ u8 res = _SUCCESS;
-+
++ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
++ u8 res = _SUCCESS;
+
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ res= _FAIL;
++
++ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
++ if (ph2c == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
-+
-+ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
-+ if(pdrvextra_cmd_parm==NULL){
-+ rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ res= _FAIL;
++
++ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
++ if (pdrvextra_cmd_parm == NULL) {
++ kfree((unsigned char *)ph2c);
++ res = _FAIL;
+ goto exit;
+ }
+
@@ -5453,18 +4626,18 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra));
+
+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+
++
+exit:
-+
++
+ return res;
+
+}
+
-+static void rtw_lps_change_dtim_hdl(_adapter *padapter, u8 dtim)
++static void rtw_lps_change_dtim_hdl(struct adapter *padapter, u8 dtim)
+{
+ struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
+
-+ if(dtim <=0 || dtim > 16)
++ if (dtim <= 0 || dtim > 16)
+ return;
+
+ if (rtw_btcoex_IsBtControlLps(padapter) == true)
@@ -5472,88 +4645,51 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+
+ down(&pwrpriv->lock);
+
-+ if(pwrpriv->dtim!=dtim)
++ if (pwrpriv->dtim!=dtim)
+ {
-+ DBG_871X("change DTIM from %d to %d, bFwCurrentInPSMode=%d, ps_mode=%d\n", pwrpriv->dtim, dtim,
++ DBG_871X("change DTIM from %d to %d, bFwCurrentInPSMode =%d, ps_mode =%d\n", pwrpriv->dtim, dtim,
+ pwrpriv->bFwCurrentInPSMode, pwrpriv->pwr_mode);
-+
-+ pwrpriv->dtim = dtim;
-+ }
+
-+ if((pwrpriv->bFwCurrentInPSMode ==true) && (pwrpriv->pwr_mode > PS_MODE_ACTIVE))
++ pwrpriv->dtim = dtim;
++ }
++
++ if ((pwrpriv->bFwCurrentInPSMode ==true) && (pwrpriv->pwr_mode > PS_MODE_ACTIVE))
+ {
+ u8 ps_mode = pwrpriv->pwr_mode;
+
-+ //DBG_871X("change DTIM from %d to %d, ps_mode=%d\n", pwrpriv->dtim, dtim, ps_mode);
-+
++ /* DBG_871X("change DTIM from %d to %d, ps_mode =%d\n", pwrpriv->dtim, dtim, ps_mode); */
++
+ rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_PWRMODE, (u8 *)(&ps_mode));
+ }
-+
++
+ up(&pwrpriv->lock);
+}
+
-+u8 rtw_lps_change_dtim_cmd(_adapter*padapter, u8 dtim)
-+{
-+ struct cmd_obj *ph2c;
-+ struct drvextra_cmd_parm *pdrvextra_cmd_parm;
-+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
-+ u8 res = _SUCCESS;
-+
-+ {
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ res= _FAIL;
-+ goto exit;
-+ }
-+
-+ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
-+ if(pdrvextra_cmd_parm==NULL){
-+ rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ res= _FAIL;
-+ goto exit;
-+ }
-+
-+ pdrvextra_cmd_parm->ec_id = LPS_CHANGE_DTIM_CID;
-+ pdrvextra_cmd_parm->type = dtim;
-+ pdrvextra_cmd_parm->size = 0;
-+ pdrvextra_cmd_parm->pbuf = NULL;
-+
-+ init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra));
-+
-+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+ }
-+
-+exit:
-+
-+ return res;
-+
-+}
-+
-+static void rtw_dm_ra_mask_hdl(_adapter *padapter, struct sta_info *psta)
++static void rtw_dm_ra_mask_hdl(struct adapter *padapter, struct sta_info *psta)
+{
+ if (psta) {
+ set_sta_rate(padapter, psta);
+ }
+}
+
-+u8 rtw_dm_ra_mask_wk_cmd(_adapter*padapter, u8 *psta)
++u8 rtw_dm_ra_mask_wk_cmd(struct adapter *padapter, u8 *psta)
+{
+ struct cmd_obj *ph2c;
+ struct drvextra_cmd_parm *pdrvextra_cmd_parm;
-+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
-+ u8 res = _SUCCESS;
-+
++ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
++ u8 res = _SUCCESS;
+
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ res= _FAIL;
++
++ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
++ if (ph2c == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
-+
-+ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
-+ if(pdrvextra_cmd_parm==NULL){
-+ rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ res= _FAIL;
++
++ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
++ if (pdrvextra_cmd_parm == NULL) {
++ kfree((unsigned char *)ph2c);
++ res = _FAIL;
+ goto exit;
+ }
+
@@ -5565,48 +4701,46 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra));
+
+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+
++
+exit:
-+
++
+ return res;
+
+}
+
-+static void power_saving_wk_hdl(_adapter *padapter)
++static void power_saving_wk_hdl(struct adapter *padapter)
+{
+ rtw_ps_processor(padapter);
+}
+
-+//add for CONFIG_IEEE80211W, none 11w can use it
-+static void reset_securitypriv_hdl(_adapter *padapter)
++/* add for CONFIG_IEEE80211W, none 11w can use it */
++static void reset_securitypriv_hdl(struct adapter *padapter)
+{
+ rtw_reset_securitypriv(padapter);
+}
+
-+static void free_assoc_resources_hdl(_adapter *padapter)
++static void free_assoc_resources_hdl(struct adapter *padapter)
+{
+ rtw_free_assoc_resources(padapter, 1);
+}
+
-+u8 rtw_ps_cmd(_adapter*padapter)
++u8 rtw_ps_cmd(struct adapter *padapter)
+{
+ struct cmd_obj *ppscmd;
-+ struct drvextra_cmd_parm *pdrvextra_cmd_parm;
-+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
-+
-+ u8 res = _SUCCESS;
-+_func_enter_;
++ struct drvextra_cmd_parm *pdrvextra_cmd_parm;
++ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
++ u8 res = _SUCCESS;
+
-+ ppscmd = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ppscmd==NULL){
-+ res= _FAIL;
++ ppscmd = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
++ if (ppscmd == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
-+
-+ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
-+ if(pdrvextra_cmd_parm==NULL){
-+ rtw_mfree((unsigned char *)ppscmd, sizeof(struct cmd_obj));
-+ res= _FAIL;
++
++ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
++ if (pdrvextra_cmd_parm == NULL) {
++ kfree((unsigned char *)ppscmd);
++ res = _FAIL;
+ goto exit;
+ }
+
@@ -5617,20 +4751,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ init_h2fwcmd_w_parm_no_rsp(ppscmd, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra));
+
+ res = rtw_enqueue_cmd(pcmdpriv, ppscmd);
-+
++
+exit:
-+
-+_func_exit_;
-+
+ return res;
-+
+}
+
-+#ifdef CONFIG_AP_MODE
-+
-+extern u32 g_wait_hiq_empty;
-+
-+static void rtw_chk_hi_queue_hdl(_adapter *padapter)
++static void rtw_chk_hi_queue_hdl(struct adapter *padapter)
+{
+ struct sta_info *psta_bmc;
+ struct sta_priv *pstapriv = &padapter->stapriv;
@@ -5638,20 +4764,20 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ u8 empty = false;
+
+ psta_bmc = rtw_get_bcmc_stainfo(padapter);
-+ if(!psta_bmc)
++ if (!psta_bmc)
+ return;
+
+ rtw_hal_get_hwreg(padapter, HW_VAR_CHK_HI_QUEUE_EMPTY, &empty);
+
-+ while(false == empty && jiffies_to_msecs(jiffies - start) < g_wait_hiq_empty)
++ while (false == empty && jiffies_to_msecs(jiffies - start) < g_wait_hiq_empty)
+ {
+ msleep(100);
+ rtw_hal_get_hwreg(padapter, HW_VAR_CHK_HI_QUEUE_EMPTY, &empty);
+ }
+
-+ if(psta_bmc->sleepq_len==0)
++ if (psta_bmc->sleepq_len == 0)
+ {
-+ if(empty == _SUCCESS)
++ if (empty == _SUCCESS)
+ {
+ bool update_tim = false;
+
@@ -5664,32 +4790,32 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ if (update_tim == true)
+ update_beacon(padapter, _TIM_IE_, NULL, true);
+ }
-+ else //re check again
++ else /* re check again */
+ {
+ rtw_chk_hi_queue_cmd(padapter);
+ }
-+
-+ }
-+
++
++ }
++
+}
+
-+u8 rtw_chk_hi_queue_cmd(_adapter*padapter)
++u8 rtw_chk_hi_queue_cmd(struct adapter *padapter)
+{
+ struct cmd_obj *ph2c;
-+ struct drvextra_cmd_parm *pdrvextra_cmd_parm;
-+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
-+ u8 res = _SUCCESS;
-+
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(ph2c==NULL){
-+ res= _FAIL;
++ struct drvextra_cmd_parm *pdrvextra_cmd_parm;
++ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
++ u8 res = _SUCCESS;
++
++ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
++ if (ph2c == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
-+
-+ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
-+ if(pdrvextra_cmd_parm==NULL){
-+ rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ res= _FAIL;
++
++ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
++ if (pdrvextra_cmd_parm == NULL) {
++ kfree((unsigned char *)ph2c);
++ res = _FAIL;
+ goto exit;
+ }
+
@@ -5701,13 +4827,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra));
+
+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+
++
+exit:
-+
++
+ return res;
+
+}
-+#endif
+
+struct btinfo {
+ u8 cid;
@@ -5743,7 +4868,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ u8 rsvd_7;
+};
+
-+static void rtw_btinfo_hdl(_adapter *adapter, u8 *buf, u16 buf_len)
++static void rtw_btinfo_hdl(struct adapter *adapter, u8 *buf, u16 buf_len)
+{
+ #define BTINFO_WIFI_FETCH 0x23
+ #define BTINFO_BT_AUTO_RPT 0x27
@@ -5760,7 +4885,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ len = info->len;
+ }
+
-+//#define DBG_PROC_SET_BTINFO_EVT
++/* define DBG_PROC_SET_BTINFO_EVT */
+#ifdef DBG_PROC_SET_BTINFO_EVT
+ btinfo_evt_dump(RTW_DBGDUMP, info);
+#endif
@@ -5770,59 +4895,15 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ buf[1] = 0;
+ else if (cmd_idx == BTINFO_BT_AUTO_RPT)
+ buf[1] = 2;
-+ rtw_btcoex_BtInfoNotify(adapter ,len+1, &buf[1]);
++ rtw_btcoex_BtInfoNotify(adapter , len+1, &buf[1]);
+}
+
-+u8 rtw_btinfo_cmd(_adapter *adapter, u8 *buf, u16 len)
-+{
-+ struct cmd_obj *ph2c;
-+ struct drvextra_cmd_parm *pdrvextra_cmd_parm;
-+ u8 *btinfo;
-+ struct cmd_priv *pcmdpriv = &adapter->cmdpriv;
-+ u8 res = _SUCCESS;
-+
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if (ph2c == NULL) {
-+ res = _FAIL;
-+ goto exit;
-+ }
-+
-+ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
-+ if (pdrvextra_cmd_parm == NULL) {
-+ rtw_mfree((u8*)ph2c, sizeof(struct cmd_obj));
-+ res = _FAIL;
-+ goto exit;
-+ }
-+
-+ btinfo = rtw_zmalloc(len);
-+ if (btinfo == NULL) {
-+ rtw_mfree((u8*)ph2c, sizeof(struct cmd_obj));
-+ rtw_mfree((u8*)pdrvextra_cmd_parm, sizeof(struct drvextra_cmd_parm));
-+ res = _FAIL;
-+ goto exit;
-+ }
-+
-+ pdrvextra_cmd_parm->ec_id = BTINFO_WK_CID;
-+ pdrvextra_cmd_parm->type = 0;
-+ pdrvextra_cmd_parm->size = len;
-+ pdrvextra_cmd_parm->pbuf = btinfo;
-+
-+ memcpy(btinfo, buf, len);
-+
-+ init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra));
-+
-+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+
-+exit:
-+ return res;
-+}
-+
-+u8 rtw_c2h_packet_wk_cmd(PADAPTER padapter, u8 *pbuf, u16 length)
++u8 rtw_c2h_packet_wk_cmd(struct adapter *padapter, u8 *pbuf, u16 length)
+{
+ struct cmd_obj *ph2c;
+ struct drvextra_cmd_parm *pdrvextra_cmd_parm;
+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
-+ u8 res = _SUCCESS;
++ u8 res = _SUCCESS;
+
+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
+ if (ph2c == NULL) {
@@ -5832,7 +4913,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+
+ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
+ if (pdrvextra_cmd_parm == NULL) {
-+ rtw_mfree((u8*)ph2c, sizeof(struct cmd_obj));
++ kfree((u8 *)ph2c);
+ res = _FAIL;
+ goto exit;
+ }
@@ -5852,12 +4933,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+
+/* dont call R/W in this function, beucase SDIO interrupt have claim host */
+/* or deadlock will happen and cause special-systemserver-died in android */
-+u8 rtw_c2h_wk_cmd(PADAPTER padapter, u8 *c2h_evt)
++u8 rtw_c2h_wk_cmd(struct adapter *padapter, u8 *c2h_evt)
+{
+ struct cmd_obj *ph2c;
+ struct drvextra_cmd_parm *pdrvextra_cmd_parm;
-+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
-+ u8 res = _SUCCESS;
++ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
++ u8 res = _SUCCESS;
+
+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
+ if (ph2c == NULL) {
@@ -5867,7 +4948,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+
+ pdrvextra_cmd_parm = (struct drvextra_cmd_parm*)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
+ if (pdrvextra_cmd_parm == NULL) {
-+ rtw_mfree((u8*)ph2c, sizeof(struct cmd_obj));
++ kfree((u8 *)ph2c);
+ res = _FAIL;
+ goto exit;
+ }
@@ -5880,44 +4961,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra));
+
+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+
++
+exit:
-+
-+ return res;
-+}
-+
-+u8 rtw_run_in_thread_cmd(PADAPTER padapter, void (*func)(void*), void* context)
-+{
-+ struct cmd_priv *pcmdpriv;
-+ struct cmd_obj *ph2c;
-+ struct RunInThread_param *parm;
-+ s32 res = _SUCCESS;
-+
-+_func_enter_;
-+
-+ pcmdpriv = &padapter->cmdpriv;
-+
-+ ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if (NULL == ph2c) {
-+ res = _FAIL;
-+ goto exit;
-+ }
-+
-+ parm = (struct RunInThread_param*)rtw_zmalloc(sizeof(struct RunInThread_param));
-+ if (NULL == parm) {
-+ rtw_mfree((u8*)ph2c, sizeof(struct cmd_obj));
-+ res = _FAIL;
-+ goto exit;
-+ }
-+
-+ parm->func = func;
-+ parm->context = context;
-+ init_h2fwcmd_w_parm_no_rsp(ph2c, parm, GEN_CMD_CODE(_RunInThreadCMD));
-+
-+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
-+exit:
-+
-+_func_exit_;
+
+ return res;
+}
@@ -5925,7 +4970,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+static void c2h_wk_callback(_workitem *work)
+{
+ struct evt_priv *evtpriv = container_of(work, struct evt_priv, c2h_wk);
-+ _adapter *adapter = container_of(evtpriv, _adapter, evtpriv);
++ struct adapter *adapter = container_of(evtpriv, struct adapter, evtpriv);
+ u8 *c2h_evt;
+ c2h_id_filter ccx_id_filter = rtw_hal_c2h_id_filter_ccx(adapter);
+
@@ -5938,7 +4983,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ } else if ((c2h_evt = (u8 *)rtw_malloc(16)) != NULL) {
+ /* This C2H event is not read, read & clear now */
+ if (rtw_hal_c2h_evt_read(adapter, c2h_evt) != _SUCCESS) {
-+ rtw_mfree(c2h_evt, 16);
++ kfree(c2h_evt);
+ continue;
+ }
+ }
@@ -5948,14 +4993,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ continue;
+
+ if (!rtw_hal_c2h_valid(adapter, c2h_evt)) {
-+ rtw_mfree(c2h_evt, 16);
++ kfree(c2h_evt);
+ continue;
+ }
-+
++
+ if (ccx_id_filter(c2h_evt) == true) {
+ /* Handle CCX report here */
+ rtw_hal_c2h_handler(adapter, c2h_evt);
-+ rtw_mfree(c2h_evt, 16);
++ kfree(c2h_evt);
+ } else {
+ /* Enqueue into cmd_thread for others */
+ rtw_c2h_wk_cmd(adapter, c2h_evt);
@@ -5965,43 +5010,41 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ evtpriv->c2h_wk_alive = false;
+}
+
-+u8 rtw_drvextra_cmd_hdl(_adapter *padapter, unsigned char *pbuf)
++u8 rtw_drvextra_cmd_hdl(struct adapter *padapter, unsigned char *pbuf)
+{
+ struct drvextra_cmd_parm *pdrvextra_cmd;
+
-+ if(!pbuf)
++ if (!pbuf)
+ return H2C_PARAMETERS_ERROR;
+
+ pdrvextra_cmd = (struct drvextra_cmd_parm*)pbuf;
-+
-+ switch(pdrvextra_cmd->ec_id)
++
++ switch (pdrvextra_cmd->ec_id)
+ {
-+ case DYNAMIC_CHK_WK_CID://only primary padapter go to this cmd, but execute dynamic_chk_wk_hdl() for two interfaces
++ case DYNAMIC_CHK_WK_CID:/* only primary padapter go to this cmd, but execute dynamic_chk_wk_hdl() for two interfaces */
+ dynamic_chk_wk_hdl(padapter);
+ break;
+ case POWER_SAVING_CTRL_WK_CID:
-+ power_saving_wk_hdl(padapter);
++ power_saving_wk_hdl(padapter);
+ break;
+ case LPS_CTRL_WK_CID:
+ lps_ctrl_wk_hdl(padapter, (u8)pdrvextra_cmd->type);
+ break;
-+ case DM_IN_LPS_WK_CID:
-+ rtw_dm_in_lps_hdl(padapter);
++ case DM_IN_LPS_WK_CID:
++ rtw_dm_in_lps_hdl(padapter);
+ break;
+ case LPS_CHANGE_DTIM_CID:
+ rtw_lps_change_dtim_hdl(padapter, (u8)pdrvextra_cmd->type);
+ break;
-+#ifdef CONFIG_AP_MODE
+ case CHECK_HIQ_WK_CID:
+ rtw_chk_hi_queue_hdl(padapter);
+ break;
-+#endif //CONFIG_AP_MODE
+#ifdef CONFIG_INTEL_WIDI
+ case INTEl_WIDI_WK_CID:
+ intel_widi_wk_hdl(padapter, pdrvextra_cmd->type, pdrvextra_cmd->pbuf);
+ break;
-+#endif //CONFIG_INTEL_WIDI
-+ //add for CONFIG_IEEE80211W, none 11w can use it
++#endif /* CONFIG_INTEL_WIDI */
++ /* add for CONFIG_IEEE80211W, none 11w can use it */
+ case RESET_SECURITYPRIV:
+ reset_securitypriv_hdl(padapter);
+ break;
@@ -6015,7 +5058,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+ rtw_dm_ra_mask_hdl(padapter, (struct sta_info *)pdrvextra_cmd->pbuf);
+ break;
+ case BTINFO_WK_CID:
-+ rtw_btinfo_hdl(padapter ,pdrvextra_cmd->pbuf, pdrvextra_cmd->size);
++ rtw_btinfo_hdl(padapter , pdrvextra_cmd->pbuf, pdrvextra_cmd->size);
+ break;
+ default:
+ break;
@@ -6023,252 +5066,203 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_cmd.c linux/3rdparty/rtl8723bs/
+
+ if (pdrvextra_cmd->pbuf && pdrvextra_cmd->size>0)
+ {
-+ rtw_mfree(pdrvextra_cmd->pbuf, pdrvextra_cmd->size);
++ kfree(pdrvextra_cmd->pbuf);
+ }
+
+ return H2C_SUCCESS;
+}
+
-+void rtw_survey_cmd_callback(_adapter* padapter , struct cmd_obj *pcmd)
++void rtw_survey_cmd_callback(struct adapter *padapter , struct cmd_obj *pcmd)
+{
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+
-+_func_enter_;
-+
-+ if(pcmd->res == H2C_DROPPED)
++ if (pcmd->res == H2C_DROPPED)
+ {
-+ //TODO: cancel timer and do timeout handler directly...
-+ //need to make timeout handlerOS independent
++ /* TODO: cancel timer and do timeout handler directly... */
++ /* need to make timeout handlerOS independent */
+ _set_timer(&pmlmepriv->scan_to_timer, 1);
+ }
+ else if (pcmd->res != H2C_SUCCESS) {
+ _set_timer(&pmlmepriv->scan_to_timer, 1);
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\n ********Error: MgntActrtw_set_802_11_bssid_LIST_SCAN Fail ************\n\n."));
-+ }
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("\n ********Error: MgntActrtw_set_802_11_bssid_LIST_SCAN Fail ************\n\n."));
++ }
+
-+ // free cmd
++ /* free cmd */
+ rtw_free_cmd_obj(pcmd);
-+
-+_func_exit_;
+}
-+void rtw_disassoc_cmd_callback(_adapter* padapter, struct cmd_obj *pcmd)
++
++void rtw_disassoc_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd)
+{
-+ _irqL irqL;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+
-+_func_enter_;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+
+ if (pcmd->res != H2C_SUCCESS)
+ {
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
++ spin_lock_bh(&pmlmepriv->lock);
+ set_fwstate(pmlmepriv, _FW_LINKED);
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\n ***Error: disconnect_cmd_callback Fail ***\n."));
++ spin_unlock_bh(&pmlmepriv->lock);
+
-+ goto exit;
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("\n ***Error: disconnect_cmd_callback Fail ***\n."));
++ return;
+ }
-+ // free cmd
++ /* free cmd */
+ rtw_free_cmd_obj(pcmd);
-+
-+exit:
-+
-+_func_exit_;
+}
+
-+
-+void rtw_joinbss_cmd_callback(_adapter* padapter, struct cmd_obj *pcmd)
++void rtw_joinbss_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd)
+{
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+
-+_func_enter_;
-+
-+ if(pcmd->res == H2C_DROPPED)
++ if (pcmd->res == H2C_DROPPED)
+ {
-+ //TODO: cancel timer and do timeout handler directly...
-+ //need to make timeout handlerOS independent
++ /* TODO: cancel timer and do timeout handler directly... */
++ /* need to make timeout handlerOS independent */
+ _set_timer(&pmlmepriv->assoc_timer, 1);
+ }
-+ else if(pcmd->res != H2C_SUCCESS)
++ else if (pcmd->res != H2C_SUCCESS)
+ {
+ _set_timer(&pmlmepriv->assoc_timer, 1);
+ }
+
+ rtw_free_cmd_obj(pcmd);
-+
-+_func_exit_;
+}
+
-+void rtw_createbss_cmd_callback(_adapter *padapter, struct cmd_obj *pcmd)
-+{
-+ _irqL irqL;
++void rtw_createbss_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd)
++{
+ u8 timer_cancelled;
+ struct sta_info *psta = NULL;
-+ struct wlan_network *pwlan = NULL;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX *)pcmd->parmbuf;
++ struct wlan_network *pwlan = NULL;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct wlan_bssid_ex *pnetwork = (struct wlan_bssid_ex *)pcmd->parmbuf;
+ struct wlan_network *tgt_network = &(pmlmepriv->cur_network);
+
-+_func_enter_;
-+
+ if (pcmd->parmbuf == NULL)
+ goto exit;
+
-+ if((pcmd->res != H2C_SUCCESS))
-+ {
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\n ********Error: rtw_createbss_cmd_callback Fail ************\n\n."));
-+ _set_timer(&pmlmepriv->assoc_timer, 1 );
++ if ((pcmd->res != H2C_SUCCESS))
++ {
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("\n ********Error: rtw_createbss_cmd_callback Fail ************\n\n."));
++ _set_timer(&pmlmepriv->assoc_timer, 1);
+ }
-+
++
+ _cancel_timer(&pmlmepriv->assoc_timer, &timer_cancelled);
+
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+
-+
-+ if(check_fwstate(pmlmepriv, WIFI_AP_STATE) )
++ spin_lock_bh(&pmlmepriv->lock);
++
++
++ if (check_fwstate(pmlmepriv, WIFI_AP_STATE))
+ {
+ psta = rtw_get_stainfo(&padapter->stapriv, pnetwork->MacAddress);
-+ if(!psta)
++ if (!psta)
+ {
+ psta = rtw_alloc_stainfo(&padapter->stapriv, pnetwork->MacAddress);
-+ if (psta == NULL)
-+ {
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\nCan't alloc sta_info when createbss_cmd_callback\n"));
++ if (psta == NULL)
++ {
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("\nCan't alloc sta_info when createbss_cmd_callback\n"));
+ goto createbss_cmd_fail ;
+ }
-+ }
-+
-+ rtw_indicate_connect( padapter);
++ }
++
++ rtw_indicate_connect(padapter);
+ }
+ else
-+ {
-+ _irqL irqL;
-+
++ {
+ pwlan = _rtw_alloc_network(pmlmepriv);
-+ _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ if ( pwlan == NULL)
++ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
++ if (pwlan == NULL)
+ {
+ pwlan = rtw_get_oldest_wlan_network(&pmlmepriv->scanned_queue);
-+ if( pwlan == NULL)
++ if (pwlan == NULL)
+ {
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\n Error: can't get pwlan in rtw_joinbss_event_callback \n"));
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("\n Error: can't get pwlan in rtw_joinbss_event_callback\n"));
++ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
+ goto createbss_cmd_fail;
+ }
+ pwlan->last_scanned = jiffies;
-+ }
++ }
+ else
+ {
-+ rtw_list_insert_tail(&(pwlan->list), &pmlmepriv->scanned_queue.queue);
++ list_add_tail(&(pwlan->list), &pmlmepriv->scanned_queue.queue);
+ }
-+
-+ pnetwork->Length = get_WLAN_BSSID_EX_sz(pnetwork);
++
++ pnetwork->Length = get_wlan_bssid_ex_sz(pnetwork);
+ memcpy(&(pwlan->network), pnetwork, pnetwork->Length);
-+ //pwlan->fixed = true;
++ /* pwlan->fixed = true; */
+
-+ //rtw_list_insert_tail(&(pwlan->list), &pmlmepriv->scanned_queue.queue);
++ /* list_add_tail(&(pwlan->list), &pmlmepriv->scanned_queue.queue); */
+
-+ // copy pdev_network information to pmlmepriv->cur_network
-+ memcpy(&tgt_network->network, pnetwork, (get_WLAN_BSSID_EX_sz(pnetwork)));
++ /* copy pdev_network information to pmlmepriv->cur_network */
++ memcpy(&tgt_network->network, pnetwork, (get_wlan_bssid_ex_sz(pnetwork)));
+
-+ // reset DSConfig
-+ //tgt_network->network.Configuration.DSConfig = (u32)rtw_ch2freq(pnetwork->Configuration.DSConfig);
++ /* reset DSConfig */
++ /* tgt_network->network.Configuration.DSConfig = (u32)rtw_ch2freq(pnetwork->Configuration.DSConfig); */
+
+ _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
+
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ // we will set _FW_LINKED when there is one more sat to join us (rtw_stassoc_event_callback)
-+
++ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
++ /* we will set _FW_LINKED when there is one more sat to join us (rtw_stassoc_event_callback) */
++
+ }
+
+createbss_cmd_fail:
-+
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
++
++ spin_unlock_bh(&pmlmepriv->lock);
+exit:
+ rtw_free_cmd_obj(pcmd);
-+
-+_func_exit_;
-+
+}
+
+
+
-+void rtw_setstaKey_cmdrsp_callback(_adapter* padapter , struct cmd_obj *pcmd)
++void rtw_setstaKey_cmdrsp_callback(struct adapter *padapter , struct cmd_obj *pcmd)
+{
-+
++
+ struct sta_priv * pstapriv = &padapter->stapriv;
+ struct set_stakey_rsp* psetstakey_rsp = (struct set_stakey_rsp*) (pcmd->rsp);
-+ struct sta_info* psta = rtw_get_stainfo(pstapriv, psetstakey_rsp->addr);
++ struct sta_info*psta = rtw_get_stainfo(pstapriv, psetstakey_rsp->addr);
+
-+_func_enter_;
-+
-+ if(psta==NULL)
++ if (psta == NULL)
+ {
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\nERROR: rtw_setstaKey_cmdrsp_callback => can't get sta_info \n\n"));
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("\nERROR: rtw_setstaKey_cmdrsp_callback => can't get sta_info\n\n"));
+ goto exit;
+ }
-+
-+ //psta->aid = psta->mac_id = psetstakey_rsp->keyid; //CAM_ID(CAM_ENTRY)
-+
-+exit:
-+
++exit:
+ rtw_free_cmd_obj(pcmd);
-+
-+_func_exit_;
-+
+}
-+void rtw_setassocsta_cmdrsp_callback(_adapter* padapter, struct cmd_obj *pcmd)
-+{
-+ _irqL irqL;
-+ struct sta_priv * pstapriv = &padapter->stapriv;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct set_assocsta_parm* passocsta_parm = (struct set_assocsta_parm*)(pcmd->parmbuf);
-+ struct set_assocsta_rsp* passocsta_rsp = (struct set_assocsta_rsp*) (pcmd->rsp);
-+ struct sta_info* psta = rtw_get_stainfo(pstapriv, passocsta_parm->addr);
+
-+_func_enter_;
-+
-+ if(psta==NULL)
++void rtw_setassocsta_cmdrsp_callback(struct adapter *padapter, struct cmd_obj *pcmd)
++{
++ struct sta_priv * pstapriv = &padapter->stapriv;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct set_assocsta_parm* passocsta_parm = (struct set_assocsta_parm*)(pcmd->parmbuf);
++ struct set_assocsta_rsp* passocsta_rsp = (struct set_assocsta_rsp*) (pcmd->rsp);
++ struct sta_info*psta = rtw_get_stainfo(pstapriv, passocsta_parm->addr);
++
++ if (psta == NULL)
+ {
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\nERROR: setassocsta_cmdrsp_callbac => can't get sta_info \n\n"));
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("\nERROR: setassocsta_cmdrsp_callbac => can't get sta_info\n\n"));
+ goto exit;
+ }
-+
++
+ psta->aid = psta->mac_id = passocsta_rsp->cam_id;
+
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
++ spin_lock_bh(&pmlmepriv->lock);
+
-+ if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) && (check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == true))
++ if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) && (check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == true))
+ _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
+
+ set_fwstate(pmlmepriv, _FW_LINKED);
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
++ spin_unlock_bh(&pmlmepriv->lock);
+
+exit:
+ rtw_free_cmd_obj(pcmd);
-+
-+_func_exit_;
+}
-+
-+void rtw_getrttbl_cmd_cmdrsp_callback(_adapter* padapter, struct cmd_obj *pcmd);
-+void rtw_getrttbl_cmd_cmdrsp_callback(_adapter* padapter, struct cmd_obj *pcmd)
-+{
-+_func_enter_;
-+
-+ rtw_free_cmd_obj(pcmd);
-+
-+_func_exit_;
-+
-+}
-+
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723bs/core/rtw_debug.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_debug.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_debug.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,1505 @@
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_debug.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_debug.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_debug.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_debug.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,1477 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
-+ *
++ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
@@ -6278,15 +5272,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
+#define _RTW_DEBUG_C_
+
+#include
++#include
+
+u32 GlobalDebugLevel = _drv_err_;
+
@@ -6329,7 +5319,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+
+void dump_drv_version(void *sel)
+{
-+ DBG_871X_SEL_NL(sel, "%s %s\n", DRV_NAME, DRIVERVERSION);
++ DBG_871X_SEL_NL(sel, "%s %s\n", "rtl8723bs", DRIVERVERSION);
+}
+
+void dump_log_level(void *sel)
@@ -6337,56 +5327,56 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ DBG_871X_SEL_NL(sel, "log_level:%d\n", GlobalDebugLevel);
+}
+
-+void sd_f0_reg_dump(void *sel, _adapter *adapter)
++void sd_f0_reg_dump(void *sel, struct adapter *adapter)
+{
+ int i;
+
-+ for(i=0x0;i<=0xff;i++)
-+ {
-+ if(i%16==0)
-+ DBG_871X_SEL_NL(sel, "0x%02x ",i);
++ for (i = 0x0;i<= 0xff;i++)
++ {
++ if (i%16 == 0)
++ DBG_871X_SEL_NL(sel, "0x%02x ", i);
+
+ DBG_871X_SEL(sel, "%02x ", rtw_sd_f0_read8(adapter, i));
+
-+ if(i%16==15)
++ if (i%16 == 15)
+ DBG_871X_SEL(sel, "\n");
-+ else if(i%8==7)
++ else if (i%8 ==7)
+ DBG_871X_SEL(sel, "\t");
+ }
+}
+
-+void mac_reg_dump(void *sel, _adapter *adapter)
++void mac_reg_dump(void *sel, struct adapter *adapter)
+{
+ int i, j = 1;
+
+ DBG_871X_SEL_NL(sel, "======= MAC REG =======\n");
+
-+ for(i=0x0;i<0x800;i+=4)
++ for (i = 0x0;i<0x800;i+=4)
+ {
-+ if(j%4==1)
-+ DBG_871X_SEL_NL(sel, "0x%03x",i);
-+ DBG_871X_SEL(sel, " 0x%08x ", rtw_read32(adapter,i));
-+ if((j++)%4 == 0)
++ if (j%4 == 1)
++ DBG_871X_SEL_NL(sel, "0x%03x", i);
++ DBG_871X_SEL(sel, " 0x%08x ", rtw_read32(adapter, i));
++ if ((j++)%4 == 0)
+ DBG_871X_SEL(sel, "\n");
+ }
+}
+
-+void bb_reg_dump(void *sel, _adapter *adapter)
++void bb_reg_dump(void *sel, struct adapter *adapter)
+{
+ int i, j = 1;
+
+ DBG_871X_SEL_NL(sel, "======= BB REG =======\n");
-+ for(i=0x800;i<0x1000;i+=4)
++ for (i = 0x800;i<0x1000;i+=4)
+ {
-+ if(j%4==1)
-+ DBG_871X_SEL_NL(sel, "0x%03x",i);
-+ DBG_871X_SEL(sel, " 0x%08x ", rtw_read32(adapter,i));
-+ if((j++)%4 == 0)
++ if (j%4 == 1)
++ DBG_871X_SEL_NL(sel, "0x%03x", i);
++ DBG_871X_SEL(sel, " 0x%08x ", rtw_read32(adapter, i));
++ if ((j++)%4 == 0)
+ DBG_871X_SEL(sel, "\n");
+ }
+}
+
-+void rf_reg_dump(void *sel, _adapter *adapter)
++void rf_reg_dump(void *sel, struct adapter *adapter)
+{
+ int i, j = 1, path;
+ u32 value;
@@ -6394,22 +5384,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ u8 path_nums = 0;
+
+ rtw_hal_get_hwreg(adapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type));
-+ if((RF_1T2R == rf_type) ||(RF_1T1R ==rf_type ))
++ if ((RF_1T2R == rf_type) ||(RF_1T1R ==rf_type))
+ path_nums = 1;
+ else
+ path_nums = 2;
+
+ DBG_871X_SEL_NL(sel, "======= RF REG =======\n");
+
-+ for (path=0;pathprivate;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
+
-+ if (proc_get_read_addr==0xeeeeeeee) {
++ if (proc_get_read_addr == 0xeeeeeeee) {
+ DBG_871X_SEL_NL(m, "address not initialized\n");
+ return 0;
-+ }
++ }
+
-+ switch(proc_get_read_len)
++ switch (proc_get_read_len)
+ {
-+ case 1:
-+ DBG_871X_SEL_NL(m, "rtw_read8(0x%x)=0x%x\n", proc_get_read_addr, rtw_read8(padapter, proc_get_read_addr));
++ case 1:
++ DBG_871X_SEL_NL(m, "rtw_read8(0x%x) = 0x%x\n", proc_get_read_addr, rtw_read8(padapter, proc_get_read_addr));
+ break;
+ case 2:
-+ DBG_871X_SEL_NL(m, "rtw_read16(0x%x)=0x%x\n", proc_get_read_addr, rtw_read16(padapter, proc_get_read_addr));
++ DBG_871X_SEL_NL(m, "rtw_read16(0x%x) = 0x%x\n", proc_get_read_addr, rtw_read16(padapter, proc_get_read_addr));
+ break;
+ case 4:
-+ DBG_871X_SEL_NL(m, "rtw_read32(0x%x)=0x%x\n", proc_get_read_addr, rtw_read32(padapter, proc_get_read_addr));
++ DBG_871X_SEL_NL(m, "rtw_read32(0x%x) = 0x%x\n", proc_get_read_addr, rtw_read32(padapter, proc_get_read_addr));
+ break;
+ default:
-+ DBG_871X_SEL_NL(m, "error read length=%d\n", proc_get_read_len);
++ DBG_871X_SEL_NL(m, "error read length =%d\n", proc_get_read_len);
+ break;
+ }
+
@@ -6501,9 +5490,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ {
+ DBG_871X("argument size is less than 2\n");
+ return -EFAULT;
-+ }
++ }
+
-+ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
++ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
+
+ int num = sscanf(tmp, "%x %x", &addr, &len);
+
@@ -6513,10 +5502,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ }
+
+ proc_get_read_addr = addr;
-+
++
+ proc_get_read_len = len;
+ }
-+
++
+ return count;
+
+}
@@ -6524,10 +5513,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+int proc_get_fwstate(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
+
-+ DBG_871X_SEL_NL(m, "fwstate=0x%x\n", get_fwstate(pmlmepriv));
++ DBG_871X_SEL_NL(m, "fwstate = 0x%x\n", get_fwstate(pmlmepriv));
+
+ return 0;
+}
@@ -6535,29 +5524,29 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+int proc_get_sec_info(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
+ struct security_priv *sec = &padapter->securitypriv;
+
-+ DBG_871X_SEL_NL(m, "auth_alg=0x%x, enc_alg=0x%x, auth_type=0x%x, enc_type=0x%x\n",
++ DBG_871X_SEL_NL(m, "auth_alg = 0x%x, enc_alg = 0x%x, auth_type = 0x%x, enc_type = 0x%x\n",
+ sec->dot11AuthAlgrthm, sec->dot11PrivacyAlgrthm,
+ sec->ndisauthtype, sec->ndisencryptstatus);
+
-+ DBG_871X_SEL_NL(m, "hw_decrypted=%d\n", sec->hw_decrypted);
++ DBG_871X_SEL_NL(m, "hw_decrypted =%d\n", sec->hw_decrypted);
+
+#ifdef DBG_SW_SEC_CNT
-+ DBG_871X_SEL_NL(m, "wep_sw_enc_cnt=%llu, %llu, %llu\n"
++ DBG_871X_SEL_NL(m, "wep_sw_enc_cnt =%llu, %llu, %llu\n"
+ , sec->wep_sw_enc_cnt_bc , sec->wep_sw_enc_cnt_mc, sec->wep_sw_enc_cnt_uc);
-+ DBG_871X_SEL_NL(m, "wep_sw_dec_cnt=%llu, %llu, %llu\n"
++ DBG_871X_SEL_NL(m, "wep_sw_dec_cnt =%llu, %llu, %llu\n"
+ , sec->wep_sw_dec_cnt_bc , sec->wep_sw_dec_cnt_mc, sec->wep_sw_dec_cnt_uc);
+
-+ DBG_871X_SEL_NL(m, "tkip_sw_enc_cnt=%llu, %llu, %llu\n"
-+ , sec->tkip_sw_enc_cnt_bc , sec->tkip_sw_enc_cnt_mc, sec->tkip_sw_enc_cnt_uc);
-+ DBG_871X_SEL_NL(m, "tkip_sw_dec_cnt=%llu, %llu, %llu\n"
++ DBG_871X_SEL_NL(m, "tkip_sw_enc_cnt =%llu, %llu, %llu\n"
++ , sec->tkip_sw_enc_cnt_bc , sec->tkip_sw_enc_cnt_mc, sec->tkip_sw_enc_cnt_uc);
++ DBG_871X_SEL_NL(m, "tkip_sw_dec_cnt =%llu, %llu, %llu\n"
+ , sec->tkip_sw_dec_cnt_bc , sec->tkip_sw_dec_cnt_mc, sec->tkip_sw_dec_cnt_uc);
+
-+ DBG_871X_SEL_NL(m, "aes_sw_enc_cnt=%llu, %llu, %llu\n"
++ DBG_871X_SEL_NL(m, "aes_sw_enc_cnt =%llu, %llu, %llu\n"
+ , sec->aes_sw_enc_cnt_bc , sec->aes_sw_enc_cnt_mc, sec->aes_sw_enc_cnt_uc);
-+ DBG_871X_SEL_NL(m, "aes_sw_dec_cnt=%llu, %llu, %llu\n"
++ DBG_871X_SEL_NL(m, "aes_sw_dec_cnt =%llu, %llu, %llu\n"
+ , sec->aes_sw_dec_cnt_bc , sec->aes_sw_dec_cnt_mc, sec->aes_sw_dec_cnt_uc);
+#endif /* DBG_SW_SEC_CNT */
+
@@ -6567,20 +5556,19 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+int proc_get_mlmext_state(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
-+ DBG_871X_SEL_NL(m, "pmlmeinfo->state=0x%x\n", pmlmeinfo->state);
++ DBG_871X_SEL_NL(m, "pmlmeinfo->state = 0x%x\n", pmlmeinfo->state);
+
+ return 0;
+}
+
-+#ifdef CONFIG_LAYER2_ROAMING
+int proc_get_roam_flags(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *adapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *adapter = (struct adapter *)rtw_netdev_priv(dev);
+
+ DBG_871X_SEL_NL(m, "0x%02x\n", rtw_roam_flags(adapter));
+
@@ -6590,7 +5578,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ssize_t proc_set_roam_flags(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data)
+{
+ struct net_device *dev = data;
-+ _adapter *adapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *adapter = (struct adapter *)rtw_netdev_priv(dev);
+
+ char tmp[32];
+ u8 flags;
@@ -6605,15 +5593,15 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ if (num == 1)
+ rtw_assign_roam_flags(adapter, flags);
+ }
-+
++
+ return count;
-+
++
+}
+
+int proc_get_roam_param(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *adapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *adapter = (struct adapter *)rtw_netdev_priv(dev);
+ struct mlme_priv *mlme = &adapter->mlmepriv;
+
+ DBG_871X_SEL_NL(m, "%12s %12s %11s\n", "rssi_diff_th", "scanr_exp_ms", "scan_int_ms");
@@ -6629,7 +5617,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ssize_t proc_set_roam_param(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data)
+{
+ struct net_device *dev = data;
-+ _adapter *adapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *adapter = (struct adapter *)rtw_netdev_priv(dev);
+ struct mlme_priv *mlme = &adapter->mlmepriv;
+
+ char tmp[32];
@@ -6651,15 +5639,15 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ if (num >= 3)
+ mlme->roam_scan_int_ms = scan_int_ms;
+ }
-+
++
+ return count;
-+
++
+}
+
+ssize_t proc_set_roam_tgt_addr(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data)
+{
+ struct net_device *dev = data;
-+ _adapter *adapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *adapter = (struct adapter *)rtw_netdev_priv(dev);
+
+ char tmp[32];
+ u8 addr[ETH_ALEN];
@@ -6678,15 +5666,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+
+ return count;
+}
-+#endif /* CONFIG_LAYER2_ROAMING */
+
+int proc_get_qos_option(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
+
-+ DBG_871X_SEL_NL(m, "qos_option=%d\n", pmlmepriv->qospriv.qos_option);
++ DBG_871X_SEL_NL(m, "qos_option =%d\n", pmlmepriv->qospriv.qos_option);
+
+ return 0;
+}
@@ -6694,10 +5681,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+int proc_get_ht_option(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+
-+ DBG_871X_SEL_NL(m, "ht_option=%d\n", pmlmepriv->htpriv.ht_option);
++
++ DBG_871X_SEL_NL(m, "ht_option =%d\n", pmlmepriv->htpriv.ht_option);
+
+ return 0;
+}
@@ -6705,13 +5692,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+int proc_get_rf_info(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+
-+ DBG_871X_SEL_NL(m, "cur_ch=%d, cur_bw=%d, cur_ch_offet=%d\n",
++ DBG_871X_SEL_NL(m, "cur_ch =%d, cur_bw =%d, cur_ch_offet =%d\n",
+ pmlmeext->cur_channel, pmlmeext->cur_bwmode, pmlmeext->cur_ch_offset);
-+
-+ DBG_871X_SEL_NL(m, "oper_ch=%d, oper_bw=%d, oper_ch_offet=%d\n",
++
++ DBG_871X_SEL_NL(m, "oper_ch =%d, oper_bw =%d, oper_ch_offet =%d\n",
+ rtw_get_oper_ch(padapter), rtw_get_oper_bw(padapter), rtw_get_oper_choffset(padapter));
+
+ return 0;
@@ -6719,36 +5706,36 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+
+int proc_get_survey_info(struct seq_file *m, void *v)
+{
-+ _irqL irqL;
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ _queue *queue = &(pmlmepriv->scanned_queue);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
++ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
++ struct __queue *queue = &(pmlmepriv->scanned_queue);
+ struct wlan_network *pnetwork = NULL;
-+ _list *plist, *phead;
++ struct list_head *plist, *phead;
+ s32 notify_signal;
+ s16 notify_noise = 0;
+ u16 index = 0;
+
-+ _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
++ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
+ phead = get_list_head(queue);
++ plist = phead ? get_next(phead) : NULL;
+ plist = get_next(phead);
+ if ((!phead) || (!plist)) {
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
++ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
+ return 0;
+ }
+
+ DBG_871X_SEL_NL(m, "%5s %-17s %3s %-3s %-4s %-4s %5s %s\n","index", "bssid", "ch", "RSSI", "SdBm", "Noise", "age", "ssid");
-+ while(1)
++ while (1)
+ {
-+ if (rtw_end_of_queue_search(phead,plist)== true)
++ if (phead == plist)
+ break;
+
+ pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list);
+ if (!pnetwork)
+ break;
-+
-+ if ( check_fwstate(pmlmepriv, _FW_LINKED)== true &&
++
++ if (check_fwstate(pmlmepriv, _FW_LINKED) == true &&
+ is_same_network(&pmlmepriv->cur_network.network, &pnetwork->network, 0)) {
+ notify_signal = translate_percentage_to_dbm(padapter->recvpriv.signal_strength);//dbm
+ } else {
@@ -6758,10 +5745,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ #if defined(CONFIG_SIGNAL_DISPLAY_DBM) && defined(CONFIG_BACKGROUND_NOISE_MONITOR)
+ rtw_hal_get_odm_var(padapter, HAL_ODM_NOISE_MONITOR,&(pnetwork->network.Configuration.DSConfig), &(notify_noise));
+ #endif
-+
-+ DBG_871X_SEL_NL(m, "%5d "MAC_FMT" %3d %3d %4d %4d %5d %s\n",
++
++ DBG_871X_SEL_NL(m, "%5d "MAC_FMT" %3d %3d %4d %4d %5d %s\n",
+ ++index,
-+ MAC_ARG(pnetwork->network.MacAddress),
++ MAC_ARG(pnetwork->network.MacAddress),
+ pnetwork->network.Configuration.DSConfig,
+ (int)pnetwork->network.Rssi,
+ notify_signal,
@@ -6771,7 +5758,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ pnetwork->network.Ssid.Ssid);
+ plist = get_next(plist);
+ }
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
++ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
+
+ return 0;
+}
@@ -6780,41 +5767,41 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+{
+ struct net_device *dev = m->private;
+ struct sta_info *psta;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+ struct wlan_network *cur_network = &(pmlmepriv->cur_network);
+ struct sta_priv *pstapriv = &padapter->stapriv;
+
+ psta = rtw_get_stainfo(pstapriv, cur_network->network.MacAddress);
-+ if(psta)
++ if (psta)
+ {
+ int i;
+ struct recv_reorder_ctrl *preorder_ctrl;
-+
-+ DBG_871X_SEL_NL(m, "SSID=%s\n", cur_network->network.Ssid.Ssid);
-+ DBG_871X_SEL_NL(m, "sta's macaddr:" MAC_FMT "\n", MAC_ARG(psta->hwaddr));
-+ DBG_871X_SEL_NL(m, "cur_channel=%d, cur_bwmode=%d, cur_ch_offset=%d\n", pmlmeext->cur_channel, pmlmeext->cur_bwmode, pmlmeext->cur_ch_offset);
-+ DBG_871X_SEL_NL(m, "wireless_mode=0x%x, rtsen=%d, cts2slef=%d\n", psta->wireless_mode, psta->rtsen, psta->cts2self);
-+ DBG_871X_SEL_NL(m, "state=0x%x, aid=%d, macid=%d, raid=%d\n", psta->state, psta->aid, psta->mac_id, psta->raid);
-+ DBG_871X_SEL_NL(m, "qos_en=%d, ht_en=%d, init_rate=%d\n", psta->qos_option, psta->htpriv.ht_option, psta->init_rate);
-+ DBG_871X_SEL_NL(m, "bwmode=%d, ch_offset=%d, sgi_20m=%d,sgi_40m=%d\n", psta->bw_mode, psta->htpriv.ch_offset, psta->htpriv.sgi_20m, psta->htpriv.sgi_40m);
-+ DBG_871X_SEL_NL(m, "ampdu_enable = %d\n", psta->htpriv.ampdu_enable);
-+ DBG_871X_SEL_NL(m, "agg_enable_bitmap=%x, candidate_tid_bitmap=%x\n", psta->htpriv.agg_enable_bitmap, psta->htpriv.candidate_tid_bitmap);
-+ DBG_871X_SEL_NL(m, "ldpc_cap=0x%x, stbc_cap=0x%x, beamform_cap=0x%x\n", psta->htpriv.ldpc_cap, psta->htpriv.stbc_cap, psta->htpriv.beamform_cap);
+
-+ for(i=0;i<16;i++)
-+ {
++ DBG_871X_SEL_NL(m, "SSID =%s\n", cur_network->network.Ssid.Ssid);
++ DBG_871X_SEL_NL(m, "sta's macaddr:" MAC_FMT "\n", MAC_ARG(psta->hwaddr));
++ DBG_871X_SEL_NL(m, "cur_channel =%d, cur_bwmode =%d, cur_ch_offset =%d\n", pmlmeext->cur_channel, pmlmeext->cur_bwmode, pmlmeext->cur_ch_offset);
++ DBG_871X_SEL_NL(m, "wireless_mode = 0x%x, rtsen =%d, cts2slef =%d\n", psta->wireless_mode, psta->rtsen, psta->cts2self);
++ DBG_871X_SEL_NL(m, "state = 0x%x, aid =%d, macid =%d, raid =%d\n", psta->state, psta->aid, psta->mac_id, psta->raid);
++ DBG_871X_SEL_NL(m, "qos_en =%d, ht_en =%d, init_rate =%d\n", psta->qos_option, psta->htpriv.ht_option, psta->init_rate);
++ DBG_871X_SEL_NL(m, "bwmode =%d, ch_offset =%d, sgi_20m =%d, sgi_40m =%d\n", psta->bw_mode, psta->htpriv.ch_offset, psta->htpriv.sgi_20m, psta->htpriv.sgi_40m);
++ DBG_871X_SEL_NL(m, "ampdu_enable = %d\n", psta->htpriv.ampdu_enable);
++ DBG_871X_SEL_NL(m, "agg_enable_bitmap =%x, candidate_tid_bitmap =%x\n", psta->htpriv.agg_enable_bitmap, psta->htpriv.candidate_tid_bitmap);
++ DBG_871X_SEL_NL(m, "ldpc_cap = 0x%x, stbc_cap = 0x%x, beamform_cap = 0x%x\n", psta->htpriv.ldpc_cap, psta->htpriv.stbc_cap, psta->htpriv.beamform_cap);
++
++ for (i = 0;i<16;i++)
++ {
+ preorder_ctrl = &psta->recvreorder_ctrl[i];
-+ if(preorder_ctrl->enable)
++ if (preorder_ctrl->enable)
+ {
-+ DBG_871X_SEL_NL(m, "tid=%d, indicate_seq=%d\n", i, preorder_ctrl->indicate_seq);
++ DBG_871X_SEL_NL(m, "tid =%d, indicate_seq =%d\n", i, preorder_ctrl->indicate_seq);
+ }
-+ }
-+
++ }
++
+ }
+ else
-+ {
++ {
+ DBG_871X_SEL_NL(m, "can't get sta's macaddr, cur_network's macaddr:" MAC_FMT "\n", MAC_ARG(cur_network->network.MacAddress));
+ }
+
@@ -6824,34 +5811,34 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+int proc_get_adapter_state(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
+
-+ DBG_871X_SEL_NL(m, "name=%s, bSurpriseRemoved=%d, bDriverStopped=%d\n",
++ DBG_871X_SEL_NL(m, "name =%s, bSurpriseRemoved =%d, bDriverStopped =%d\n",
+ dev->name, padapter->bSurpriseRemoved, padapter->bDriverStopped);
+
+ return 0;
+}
-+
++
+int proc_get_trx_info(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
+ int i;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
+ struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
+ struct recv_priv *precvpriv = &padapter->recvpriv;
+ struct hw_xmit *phwxmit;
+
-+ DBG_871X_SEL_NL(m, "free_xmitbuf_cnt=%d, free_xmitframe_cnt=%d\n"
++ DBG_871X_SEL_NL(m, "free_xmitbuf_cnt =%d, free_xmitframe_cnt =%d\n"
+ , pxmitpriv->free_xmitbuf_cnt, pxmitpriv->free_xmitframe_cnt);
-+ DBG_871X_SEL_NL(m, "free_ext_xmitbuf_cnt=%d, free_xframe_ext_cnt=%d\n"
++ DBG_871X_SEL_NL(m, "free_ext_xmitbuf_cnt =%d, free_xframe_ext_cnt =%d\n"
+ , pxmitpriv->free_xmit_extbuf_cnt, pxmitpriv->free_xframe_ext_cnt);
-+ DBG_871X_SEL_NL(m, "free_recvframe_cnt=%d\n"
++ DBG_871X_SEL_NL(m, "free_recvframe_cnt =%d\n"
+ , precvpriv->free_recvframe_cnt);
+
-+ for(i = 0; i < 4; i++)
++ for (i = 0; i < 4; i++)
+ {
+ phwxmit = pxmitpriv->hwxmits + i;
-+ DBG_871X_SEL_NL(m, "%d, hwq.accnt=%d\n", i, phwxmit->accnt);
++ DBG_871X_SEL_NL(m, "%d, hwq.accnt =%d\n", i, phwxmit->accnt);
+ }
+
+ return 0;
@@ -6860,7 +5847,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+int proc_get_rate_ctl(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *adapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *adapter = (struct adapter *)rtw_netdev_priv(dev);
+
+ if (adapter->fix_rate != 0xff) {
+ DBG_871X_SEL_NL(m, "FIX\n");
@@ -6875,14 +5862,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ssize_t proc_set_rate_ctl(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data)
+{
+ struct net_device *dev = data;
-+ _adapter *adapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *adapter = (struct adapter *)rtw_netdev_priv(dev);
+ char tmp[32];
+ u8 fix_rate;
+
+ if (count < 1)
+ return -EFAULT;
+
-+ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
++ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
+
+ int num = sscanf(tmp, "%hhx", &fix_rate);
+
@@ -6903,7 +5890,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ if (count < 1)
+ return -EFAULT;
+
-+ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
++ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
+ sscanf(tmp, "%hhu %hhu", &g_fwdl_chksum_fail, &g_fwdl_wintint_rdy_fail);
+ }
+
@@ -6929,37 +5916,37 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+int proc_get_suspend_resume_info(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
+ struct dvobj_priv *dvobj = padapter->dvobj;
+ struct debug_priv *pdbgpriv = &dvobj->drv_dbg;
+
-+ DBG_871X_SEL_NL(m, "dbg_sdio_alloc_irq_cnt=%d\n", pdbgpriv->dbg_sdio_alloc_irq_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_sdio_free_irq_cnt=%d\n", pdbgpriv->dbg_sdio_free_irq_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_sdio_alloc_irq_error_cnt=%d\n",pdbgpriv->dbg_sdio_alloc_irq_error_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_sdio_free_irq_error_cnt=%d\n", pdbgpriv->dbg_sdio_free_irq_error_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_sdio_init_error_cnt=%d\n",pdbgpriv->dbg_sdio_init_error_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_sdio_deinit_error_cnt=%d\n", pdbgpriv->dbg_sdio_deinit_error_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_suspend_error_cnt=%d\n", pdbgpriv->dbg_suspend_error_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_suspend_cnt=%d\n",pdbgpriv->dbg_suspend_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_resume_cnt=%d\n", pdbgpriv->dbg_resume_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_resume_error_cnt=%d\n", pdbgpriv->dbg_resume_error_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_deinit_fail_cnt=%d\n",pdbgpriv->dbg_deinit_fail_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_carddisable_cnt=%d\n", pdbgpriv->dbg_carddisable_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_ps_insuspend_cnt=%d\n",pdbgpriv->dbg_ps_insuspend_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_dev_unload_inIPS_cnt=%d\n", pdbgpriv->dbg_dev_unload_inIPS_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_scan_pwr_state_cnt=%d\n", pdbgpriv->dbg_scan_pwr_state_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_downloadfw_pwr_state_cnt=%d\n", pdbgpriv->dbg_downloadfw_pwr_state_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_carddisable_error_cnt=%d\n", pdbgpriv->dbg_carddisable_error_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_fw_read_ps_state_fail_cnt=%d\n", pdbgpriv->dbg_fw_read_ps_state_fail_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_leave_ips_fail_cnt=%d\n", pdbgpriv->dbg_leave_ips_fail_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_leave_lps_fail_cnt=%d\n", pdbgpriv->dbg_leave_lps_fail_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_h2c_leave32k_fail_cnt=%d\n", pdbgpriv->dbg_h2c_leave32k_fail_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_diswow_dload_fw_fail_cnt=%d\n", pdbgpriv->dbg_diswow_dload_fw_fail_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_enwow_dload_fw_fail_cnt=%d\n", pdbgpriv->dbg_enwow_dload_fw_fail_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_ips_drvopen_fail_cnt=%d\n", pdbgpriv->dbg_ips_drvopen_fail_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_poll_fail_cnt=%d\n", pdbgpriv->dbg_poll_fail_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_rpwm_toogle_cnt=%d\n", pdbgpriv->dbg_rpwm_toogle_cnt);
-+ DBG_871X_SEL_NL(m, "dbg_rpwm_timeout_fail_cnt=%d\n", pdbgpriv->dbg_rpwm_timeout_fail_cnt);
++ DBG_871X_SEL_NL(m, "dbg_sdio_alloc_irq_cnt =%d\n", pdbgpriv->dbg_sdio_alloc_irq_cnt);
++ DBG_871X_SEL_NL(m, "dbg_sdio_free_irq_cnt =%d\n", pdbgpriv->dbg_sdio_free_irq_cnt);
++ DBG_871X_SEL_NL(m, "dbg_sdio_alloc_irq_error_cnt =%d\n", pdbgpriv->dbg_sdio_alloc_irq_error_cnt);
++ DBG_871X_SEL_NL(m, "dbg_sdio_free_irq_error_cnt =%d\n", pdbgpriv->dbg_sdio_free_irq_error_cnt);
++ DBG_871X_SEL_NL(m, "dbg_sdio_init_error_cnt =%d\n", pdbgpriv->dbg_sdio_init_error_cnt);
++ DBG_871X_SEL_NL(m, "dbg_sdio_deinit_error_cnt =%d\n", pdbgpriv->dbg_sdio_deinit_error_cnt);
++ DBG_871X_SEL_NL(m, "dbg_suspend_error_cnt =%d\n", pdbgpriv->dbg_suspend_error_cnt);
++ DBG_871X_SEL_NL(m, "dbg_suspend_cnt =%d\n", pdbgpriv->dbg_suspend_cnt);
++ DBG_871X_SEL_NL(m, "dbg_resume_cnt =%d\n", pdbgpriv->dbg_resume_cnt);
++ DBG_871X_SEL_NL(m, "dbg_resume_error_cnt =%d\n", pdbgpriv->dbg_resume_error_cnt);
++ DBG_871X_SEL_NL(m, "dbg_deinit_fail_cnt =%d\n", pdbgpriv->dbg_deinit_fail_cnt);
++ DBG_871X_SEL_NL(m, "dbg_carddisable_cnt =%d\n", pdbgpriv->dbg_carddisable_cnt);
++ DBG_871X_SEL_NL(m, "dbg_ps_insuspend_cnt =%d\n", pdbgpriv->dbg_ps_insuspend_cnt);
++ DBG_871X_SEL_NL(m, "dbg_dev_unload_inIPS_cnt =%d\n", pdbgpriv->dbg_dev_unload_inIPS_cnt);
++ DBG_871X_SEL_NL(m, "dbg_scan_pwr_state_cnt =%d\n", pdbgpriv->dbg_scan_pwr_state_cnt);
++ DBG_871X_SEL_NL(m, "dbg_downloadfw_pwr_state_cnt =%d\n", pdbgpriv->dbg_downloadfw_pwr_state_cnt);
++ DBG_871X_SEL_NL(m, "dbg_carddisable_error_cnt =%d\n", pdbgpriv->dbg_carddisable_error_cnt);
++ DBG_871X_SEL_NL(m, "dbg_fw_read_ps_state_fail_cnt =%d\n", pdbgpriv->dbg_fw_read_ps_state_fail_cnt);
++ DBG_871X_SEL_NL(m, "dbg_leave_ips_fail_cnt =%d\n", pdbgpriv->dbg_leave_ips_fail_cnt);
++ DBG_871X_SEL_NL(m, "dbg_leave_lps_fail_cnt =%d\n", pdbgpriv->dbg_leave_lps_fail_cnt);
++ DBG_871X_SEL_NL(m, "dbg_h2c_leave32k_fail_cnt =%d\n", pdbgpriv->dbg_h2c_leave32k_fail_cnt);
++ DBG_871X_SEL_NL(m, "dbg_diswow_dload_fw_fail_cnt =%d\n", pdbgpriv->dbg_diswow_dload_fw_fail_cnt);
++ DBG_871X_SEL_NL(m, "dbg_enwow_dload_fw_fail_cnt =%d\n", pdbgpriv->dbg_enwow_dload_fw_fail_cnt);
++ DBG_871X_SEL_NL(m, "dbg_ips_drvopen_fail_cnt =%d\n", pdbgpriv->dbg_ips_drvopen_fail_cnt);
++ DBG_871X_SEL_NL(m, "dbg_poll_fail_cnt =%d\n", pdbgpriv->dbg_poll_fail_cnt);
++ DBG_871X_SEL_NL(m, "dbg_rpwm_toogle_cnt =%d\n", pdbgpriv->dbg_rpwm_toogle_cnt);
++ DBG_871X_SEL_NL(m, "dbg_rpwm_timeout_fail_cnt =%d\n", pdbgpriv->dbg_rpwm_timeout_fail_cnt);
+
+ return 0;
+}
@@ -6969,53 +5956,53 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+int proc_get_rx_logs(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
+ struct rx_logs *rx_logs = &padapter->rx_logs;
+
-+ DBG_871X_SEL_NL(m,
-+ "intf_rx=%d\n"
-+ "intf_rx_err_recvframe=%d\n"
-+ "intf_rx_err_skb=%d\n"
-+ "intf_rx_report=%d\n"
-+ "core_rx=%d\n"
-+ "core_rx_pre=%d\n"
-+ "core_rx_pre_ver_err=%d\n"
-+ "core_rx_pre_mgmt=%d\n"
-+ "core_rx_pre_mgmt_err_80211w=%d\n"
-+ "core_rx_pre_mgmt_err=%d\n"
-+ "core_rx_pre_ctrl=%d\n"
-+ "core_rx_pre_ctrl_err=%d\n"
-+ "core_rx_pre_data=%d\n"
-+ "core_rx_pre_data_wapi_seq_err=%d\n"
-+ "core_rx_pre_data_wapi_key_err=%d\n"
-+ "core_rx_pre_data_handled=%d\n"
-+ "core_rx_pre_data_err=%d\n"
-+ "core_rx_pre_data_unknown=%d\n"
-+ "core_rx_pre_unknown=%d\n"
-+ "core_rx_enqueue=%d\n"
-+ "core_rx_dequeue=%d\n"
-+ "core_rx_post=%d\n"
-+ "core_rx_post_decrypt=%d\n"
-+ "core_rx_post_decrypt_wep=%d\n"
-+ "core_rx_post_decrypt_tkip=%d\n"
-+ "core_rx_post_decrypt_aes=%d\n"
-+ "core_rx_post_decrypt_wapi=%d\n"
-+ "core_rx_post_decrypt_hw=%d\n"
-+ "core_rx_post_decrypt_unknown=%d\n"
-+ "core_rx_post_decrypt_err=%d\n"
-+ "core_rx_post_defrag_err=%d\n"
-+ "core_rx_post_portctrl_err=%d\n"
-+ "core_rx_post_indicate=%d\n"
-+ "core_rx_post_indicate_in_oder=%d\n"
-+ "core_rx_post_indicate_reoder=%d\n"
-+ "core_rx_post_indicate_err=%d\n"
-+ "os_indicate=%d\n"
-+ "os_indicate_ap_mcast=%d\n"
-+ "os_indicate_ap_forward=%d\n"
-+ "os_indicate_ap_self=%d\n"
-+ "os_indicate_err=%d\n"
-+ "os_netif_ok=%d\n"
-+ "os_netif_err=%d\n",
++ DBG_871X_SEL_NL(m,
++ "intf_rx =%d\n"
++ "intf_rx_err_recvframe =%d\n"
++ "intf_rx_err_skb =%d\n"
++ "intf_rx_report =%d\n"
++ "core_rx =%d\n"
++ "core_rx_pre =%d\n"
++ "core_rx_pre_ver_err =%d\n"
++ "core_rx_pre_mgmt =%d\n"
++ "core_rx_pre_mgmt_err_80211w =%d\n"
++ "core_rx_pre_mgmt_err =%d\n"
++ "core_rx_pre_ctrl =%d\n"
++ "core_rx_pre_ctrl_err =%d\n"
++ "core_rx_pre_data =%d\n"
++ "core_rx_pre_data_wapi_seq_err =%d\n"
++ "core_rx_pre_data_wapi_key_err =%d\n"
++ "core_rx_pre_data_handled =%d\n"
++ "core_rx_pre_data_err =%d\n"
++ "core_rx_pre_data_unknown =%d\n"
++ "core_rx_pre_unknown =%d\n"
++ "core_rx_enqueue =%d\n"
++ "core_rx_dequeue =%d\n"
++ "core_rx_post =%d\n"
++ "core_rx_post_decrypt =%d\n"
++ "core_rx_post_decrypt_wep =%d\n"
++ "core_rx_post_decrypt_tkip =%d\n"
++ "core_rx_post_decrypt_aes =%d\n"
++ "core_rx_post_decrypt_wapi =%d\n"
++ "core_rx_post_decrypt_hw =%d\n"
++ "core_rx_post_decrypt_unknown =%d\n"
++ "core_rx_post_decrypt_err =%d\n"
++ "core_rx_post_defrag_err =%d\n"
++ "core_rx_post_portctrl_err =%d\n"
++ "core_rx_post_indicate =%d\n"
++ "core_rx_post_indicate_in_oder =%d\n"
++ "core_rx_post_indicate_reoder =%d\n"
++ "core_rx_post_indicate_err =%d\n"
++ "os_indicate =%d\n"
++ "os_indicate_ap_mcast =%d\n"
++ "os_indicate_ap_forward =%d\n"
++ "os_indicate_ap_self =%d\n"
++ "os_indicate_err =%d\n"
++ "os_netif_ok =%d\n"
++ "os_netif_err =%d\n",
+ rx_logs->intf_rx,
+ rx_logs->intf_rx_err_recvframe,
+ rx_logs->intf_rx_err_skb,
@@ -7067,62 +6054,62 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+int proc_get_tx_logs(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
+ struct tx_logs *tx_logs = &padapter->tx_logs;
-+
++
+ DBG_871X_SEL_NL(m,
-+ "os_tx=%d\n"
-+ "os_tx_err_up=%d\n"
-+ "os_tx_err_xmit=%d\n"
-+ "os_tx_m2u=%d\n"
-+ "os_tx_m2u_ignore_fw_linked=%d\n"
-+ "os_tx_m2u_ignore_self=%d\n"
-+ "os_tx_m2u_entry=%d\n"
-+ "os_tx_m2u_entry_err_xmit=%d\n"
-+ "os_tx_m2u_entry_err_skb=%d\n"
-+ "os_tx_m2u_stop=%d\n"
-+ "core_tx=%d\n"
-+ "core_tx_err_pxmitframe=%d\n"
-+ "core_tx_err_brtx=%d\n"
-+ "core_tx_upd_attrib=%d\n"
-+ "core_tx_upd_attrib_adhoc=%d\n"
-+ "core_tx_upd_attrib_sta=%d\n"
-+ "core_tx_upd_attrib_ap=%d\n"
-+ "core_tx_upd_attrib_unknown=%d\n"
-+ "core_tx_upd_attrib_dhcp=%d\n"
-+ "core_tx_upd_attrib_icmp=%d\n"
-+ "core_tx_upd_attrib_active=%d\n"
-+ "core_tx_upd_attrib_err_ucast_sta=%d\n"
-+ "core_tx_upd_attrib_err_ucast_ap_link=%d\n"
-+ "core_tx_upd_attrib_err_sta=%d\n"
-+ "core_tx_upd_attrib_err_link=%d\n"
-+ "core_tx_upd_attrib_err_sec=%d\n"
-+ "core_tx_ap_enqueue_warn_fwstate=%d\n"
-+ "core_tx_ap_enqueue_warn_sta=%d\n"
-+ "core_tx_ap_enqueue_warn_nosta=%d\n"
-+ "core_tx_ap_enqueue_warn_link=%d\n"
-+ "core_tx_ap_enqueue_warn_trigger=%d\n"
-+ "core_tx_ap_enqueue_mcast=%d\n"
-+ "core_tx_ap_enqueue_ucast=%d\n"
-+ "core_tx_ap_enqueue=%d\n"
-+ "intf_tx=%d\n"
-+ "intf_tx_pending_ac=%d\n"
-+ "intf_tx_pending_fw_under_survey=%d\n"
-+ "intf_tx_pending_fw_under_linking=%d\n"
-+ "intf_tx_pending_xmitbuf=%d\n"
-+ "intf_tx_enqueue=%d\n"
-+ "core_tx_enqueue=%d\n"
-+ "core_tx_enqueue_class=%d\n"
-+ "core_tx_enqueue_class_err_sta=%d\n"
-+ "core_tx_enqueue_class_err_nosta=%d\n"
-+ "core_tx_enqueue_class_err_fwlink=%d\n"
-+ "intf_tx_direct=%d\n"
-+ "intf_tx_direct_err_coalesce=%d\n"
-+ "intf_tx_dequeue=%d\n"
-+ "intf_tx_dequeue_err_coalesce=%d\n"
-+ "intf_tx_dump_xframe=%d\n"
-+ "intf_tx_dump_xframe_err_txdesc=%d\n"
-+ "intf_tx_dump_xframe_err_port=%d\n",
++ "os_tx =%d\n"
++ "os_tx_err_up =%d\n"
++ "os_tx_err_xmit =%d\n"
++ "os_tx_m2u =%d\n"
++ "os_tx_m2u_ignore_fw_linked =%d\n"
++ "os_tx_m2u_ignore_self =%d\n"
++ "os_tx_m2u_entry =%d\n"
++ "os_tx_m2u_entry_err_xmit =%d\n"
++ "os_tx_m2u_entry_err_skb =%d\n"
++ "os_tx_m2u_stop =%d\n"
++ "core_tx =%d\n"
++ "core_tx_err_pxmitframe =%d\n"
++ "core_tx_err_brtx =%d\n"
++ "core_tx_upd_attrib =%d\n"
++ "core_tx_upd_attrib_adhoc =%d\n"
++ "core_tx_upd_attrib_sta =%d\n"
++ "core_tx_upd_attrib_ap =%d\n"
++ "core_tx_upd_attrib_unknown =%d\n"
++ "core_tx_upd_attrib_dhcp =%d\n"
++ "core_tx_upd_attrib_icmp =%d\n"
++ "core_tx_upd_attrib_active =%d\n"
++ "core_tx_upd_attrib_err_ucast_sta =%d\n"
++ "core_tx_upd_attrib_err_ucast_ap_link =%d\n"
++ "core_tx_upd_attrib_err_sta =%d\n"
++ "core_tx_upd_attrib_err_link =%d\n"
++ "core_tx_upd_attrib_err_sec =%d\n"
++ "core_tx_ap_enqueue_warn_fwstate =%d\n"
++ "core_tx_ap_enqueue_warn_sta =%d\n"
++ "core_tx_ap_enqueue_warn_nosta =%d\n"
++ "core_tx_ap_enqueue_warn_link =%d\n"
++ "core_tx_ap_enqueue_warn_trigger =%d\n"
++ "core_tx_ap_enqueue_mcast =%d\n"
++ "core_tx_ap_enqueue_ucast =%d\n"
++ "core_tx_ap_enqueue =%d\n"
++ "intf_tx =%d\n"
++ "intf_tx_pending_ac =%d\n"
++ "intf_tx_pending_fw_under_survey =%d\n"
++ "intf_tx_pending_fw_under_linking =%d\n"
++ "intf_tx_pending_xmitbuf =%d\n"
++ "intf_tx_enqueue =%d\n"
++ "core_tx_enqueue =%d\n"
++ "core_tx_enqueue_class =%d\n"
++ "core_tx_enqueue_class_err_sta =%d\n"
++ "core_tx_enqueue_class_err_nosta =%d\n"
++ "core_tx_enqueue_class_err_fwlink =%d\n"
++ "intf_tx_direct =%d\n"
++ "intf_tx_direct_err_coalesce =%d\n"
++ "intf_tx_dequeue =%d\n"
++ "intf_tx_dequeue_err_coalesce =%d\n"
++ "intf_tx_dump_xframe =%d\n"
++ "intf_tx_dump_xframe_err_txdesc =%d\n"
++ "intf_tx_dump_xframe_err_port =%d\n",
+ tx_logs->os_tx,
+ tx_logs->os_tx_err_up,
+ tx_logs->os_tx_err_xmit,
@@ -7183,26 +6170,26 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+int proc_get_int_logs(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
+
+ DBG_871X_SEL_NL(m,
-+ "all=%d\n"
-+ "err=%d\n"
-+ "tbdok=%d\n"
-+ "tbder=%d\n"
-+ "bcnderr=%d\n"
-+ "bcndma=%d\n"
-+ "bcndma_e=%d\n"
-+ "rx=%d\n"
-+ "rx_rdu=%d\n"
-+ "rx_fovw=%d\n"
-+ "txfovw=%d\n"
-+ "mgntok=%d\n"
-+ "highdok=%d\n"
-+ "bkdok=%d\n"
-+ "bedok=%d\n"
-+ "vidok=%d\n"
-+ "vodok=%d\n",
++ "all =%d\n"
++ "err =%d\n"
++ "tbdok =%d\n"
++ "tbder =%d\n"
++ "bcnderr =%d\n"
++ "bcndma =%d\n"
++ "bcndma_e =%d\n"
++ "rx =%d\n"
++ "rx_rdu =%d\n"
++ "rx_fovw =%d\n"
++ "txfovw =%d\n"
++ "mgntok =%d\n"
++ "highdok =%d\n"
++ "bkdok =%d\n"
++ "bedok =%d\n"
++ "vidok =%d\n"
++ "vodok =%d\n",
+ padapter->int_logs.all,
+ padapter->int_logs.err,
+ padapter->int_logs.tbdok,
@@ -7230,16 +6217,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+int proc_get_rx_signal(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
+
+ DBG_871X_SEL_NL(m, "rssi:%d\n", padapter->recvpriv.rssi);
+ //DBG_871X_SEL_NL(m, "rxpwdb:%d\n", padapter->recvpriv.rxpwdb);
+ DBG_871X_SEL_NL(m, "signal_strength:%u\n", padapter->recvpriv.signal_strength);
+ DBG_871X_SEL_NL(m, "signal_qual:%u\n", padapter->recvpriv.signal_qual);
+ DBG_871X_SEL_NL(m, "noise:%d\n", padapter->recvpriv.noise);
-+ rtw_odm_get_perpkt_rssi(m,padapter);
++ rtw_odm_get_perpkt_rssi(m, padapter);
+ #ifdef DBG_RX_SIGNAL_DISPLAY_RAW_DATA
-+ rtw_get_raw_rssi_info(m,padapter);
++ rtw_get_raw_rssi_info(m, padapter);
+ #endif
+ return 0;
+}
@@ -7248,11 +6235,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+int proc_get_hw_status(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
+ struct dvobj_priv *dvobj = padapter->dvobj;
+ struct debug_priv *pdbgpriv = &dvobj->drv_dbg;
+
-+ DBG_871X_SEL_NL(m, "RX FIFO full count: last_time=%lld, current_time=%lld, differential=%lld\n"
++ DBG_871X_SEL_NL(m, "RX FIFO full count: last_time =%lld, current_time =%lld, differential =%lld\n"
+ , pdbgpriv->dbg_rx_fifo_last_overflow, pdbgpriv->dbg_rx_fifo_curr_overflow, pdbgpriv->dbg_rx_fifo_diff_overflow);
+
+ return 0;
@@ -7261,45 +6248,45 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ssize_t proc_set_rx_signal(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data)
+{
+ struct net_device *dev = data;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
+ char tmp[32];
+ u32 is_signal_dbg, signal_strength;
+
+ if (count < 1)
+ return -EFAULT;
+
-+ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
++ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
+
+ int num = sscanf(tmp, "%u %u", &is_signal_dbg, &signal_strength);
+
-+ is_signal_dbg = is_signal_dbg==0?0:1;
-+
-+ if(is_signal_dbg && num!=2)
++ is_signal_dbg = is_signal_dbg == 0?0:1;
++
++ if (is_signal_dbg && num!=2)
+ return count;
-+
++
+ signal_strength = signal_strength>100?100:signal_strength;
+
+ padapter->recvpriv.is_signal_dbg = is_signal_dbg;
-+ padapter->recvpriv.signal_strength_dbg=signal_strength;
++ padapter->recvpriv.signal_strength_dbg =signal_strength;
+
-+ if(is_signal_dbg)
++ if (is_signal_dbg)
+ DBG_871X("set %s %u\n", "DBG_SIGNAL_STRENGTH", signal_strength);
+ else
+ DBG_871X("set %s\n", "HW_SIGNAL_STRENGTH");
-+
++
+ }
-+
++
+ return count;
-+
++
+}
+
+int proc_get_ht_enable(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
++ struct registry_priv *pregpriv = &padapter->registrypriv;
+
-+ if(pregpriv)
++ if (pregpriv)
+ DBG_871X_SEL_NL(m, "%d\n", pregpriv->ht_enable);
+
+ return 0;
@@ -7308,8 +6295,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ssize_t proc_set_ht_enable(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data)
+{
+ struct net_device *dev = data;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
++ struct registry_priv *pregpriv = &padapter->registrypriv;
+ char tmp[32];
+ u32 mode;
+
@@ -7319,24 +6306,24 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
+ sscanf(tmp, "%d ", &mode);
+
-+ if( pregpriv && mode >= 0 && mode < 2 )
++ if (pregpriv && mode >= 0 && mode < 2)
+ {
-+ pregpriv->ht_enable= mode;
-+ printk("ht_enable=%d\n", pregpriv->ht_enable);
++ pregpriv->ht_enable = mode;
++ printk("ht_enable =%d\n", pregpriv->ht_enable);
+ }
+ }
-+
++
+ return count;
-+
++
+}
+
+int proc_get_bw_mode(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
++ struct registry_priv *pregpriv = &padapter->registrypriv;
+
-+ if(pregpriv)
++ if (pregpriv)
+ DBG_871X_SEL_NL(m, "0x%02x\n", pregpriv->bw_mode);
+
+ return 0;
@@ -7345,8 +6332,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ssize_t proc_set_bw_mode(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data)
+{
+ struct net_device *dev = data;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
++ struct registry_priv *pregpriv = &padapter->registrypriv;
+ char tmp[32];
+ u32 mode;
+
@@ -7356,26 +6343,26 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
+ sscanf(tmp, "%d ", &mode);
+
-+ if( pregpriv && mode < 2 )
++ if (pregpriv && mode < 2)
+ {
+
+ pregpriv->bw_mode = mode;
-+ printk("bw_mode=%d\n", mode);
++ printk("bw_mode =%d\n", mode);
+
+ }
+ }
-+
++
+ return count;
-+
++
+}
+
+int proc_get_ampdu_enable(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
++ struct registry_priv *pregpriv = &padapter->registrypriv;
+
-+ if(pregpriv)
++ if (pregpriv)
+ DBG_871X_SEL_NL(m, "%d\n", pregpriv->ampdu_enable);
+
+ return 0;
@@ -7384,39 +6371,39 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ssize_t proc_set_ampdu_enable(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data)
+{
+ struct net_device *dev = data;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
++ struct registry_priv *pregpriv = &padapter->registrypriv;
+ char tmp[32];
+ u32 mode;
+
+ if (count < 1)
+ return -EFAULT;
+
-+ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
++ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
+
+ sscanf(tmp, "%d ", &mode);
+
-+ if( pregpriv && mode < 3 )
++ if (pregpriv && mode < 3)
+ {
-+ pregpriv->ampdu_enable= mode;
-+ printk("ampdu_enable=%d\n", mode);
++ pregpriv->ampdu_enable = mode;
++ printk("ampdu_enable =%d\n", mode);
+ }
+
+ }
-+
++
+ return count;
-+
++
+}
+
+int proc_get_rx_ampdu(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
++ struct registry_priv *pregpriv = &padapter->registrypriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
-+ if(pregpriv)
++ if (pregpriv)
+ DBG_871X_SEL_NL(m,
+ "bAcceptAddbaReq = %d , 0:Reject AP's Add BA req, 1:Accept AP's Add BA req.\n", pmlmeinfo->bAcceptAddbaReq
+ );
@@ -7427,25 +6414,25 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ssize_t proc_set_rx_ampdu(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data)
+{
+ struct net_device *dev = data;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
++ struct registry_priv *pregpriv = &padapter->registrypriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ char tmp[32];
+ u32 mode;
+
+ if (count < 1)
+ return -EFAULT;
+
-+ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
++ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
+
+ sscanf(tmp, "%d ", &mode);
+
-+ if( pregpriv && mode >= 0 && mode < 2 )
++ if (pregpriv && mode >= 0 && mode < 2)
+ {
+ pmlmeinfo->bAcceptAddbaReq = mode;
-+ DBG_871X("pmlmeinfo->bAcceptAddbaReq=%d \n",pmlmeinfo->bAcceptAddbaReq);
-+ if(mode == 0)
++ DBG_871X("pmlmeinfo->bAcceptAddbaReq =%d\n", pmlmeinfo->bAcceptAddbaReq);
++ if (mode == 0)
+ {
+ //tear down Rx AMPDU
+ send_delba(padapter, 0, get_my_bssid(&(pmlmeinfo->network)));// recipient
@@ -7460,10 +6447,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+int proc_get_en_fwps(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
++ struct registry_priv *pregpriv = &padapter->registrypriv;
+
-+ if(pregpriv)
++ if (pregpriv)
+ DBG_871X_SEL_NL(m, "check_fw_ps = %d , 1:enable get FW PS state , 0: disable get FW PS state\n"
+ , pregpriv->check_fw_ps);
+
@@ -7473,8 +6460,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ssize_t proc_set_en_fwps(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data)
+{
+ struct net_device *dev = data;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
++ struct registry_priv *pregpriv = &padapter->registrypriv;
+ char tmp[32];
+ u32 mode;
+
@@ -7482,41 +6469,23 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ return -EFAULT;
+
+ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
-+
+ sscanf(tmp, "%d ", &mode);
+
-+ if( pregpriv && mode >= 0 && mode < 2 )
-+ {
++ if (pregpriv && mode >= 0 && mode < 2) {
+ pregpriv->check_fw_ps = mode;
-+ DBG_871X("pregpriv->check_fw_ps=%d \n",pregpriv->check_fw_ps);
++ DBG_871X("pregpriv->check_fw_ps =%d\n", pregpriv->check_fw_ps);
+ }
-+
+ }
-+
+ return count;
+}
+
-+/*
-+int proc_get_two_path_rssi(struct seq_file *m, void *v)
-+{
-+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-+
-+ if(padapter)
-+ DBG_871X_SEL_NL(m, "%d %d\n",
-+ padapter->recvpriv.RxRssi[0], padapter->recvpriv.RxRssi[1]);
-+
-+ return 0;
-+}
-+*/
-+
+int proc_get_rx_stbc(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
++ struct registry_priv *pregpriv = &padapter->registrypriv;
+
-+ if(pregpriv)
++ if (pregpriv)
+ DBG_871X_SEL_NL(m, "%d\n", pregpriv->rx_stbc);
+
+ return 0;
@@ -7525,27 +6494,26 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ssize_t proc_set_rx_stbc(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data)
+{
+ struct net_device *dev = data;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
++ struct registry_priv *pregpriv = &padapter->registrypriv;
+ char tmp[32];
+ u32 mode;
+
+ if (count < 1)
+ return -EFAULT;
+
-+ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
-+
++ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
+ sscanf(tmp, "%d ", &mode);
+
-+ if( pregpriv && (mode == 0 || mode == 1|| mode == 2|| mode == 3))
-+ {
-+ pregpriv->rx_stbc= mode;
-+ printk("rx_stbc=%d\n", mode);
++ if (pregpriv && (mode == 0 || mode == 1 ||
++ mode == 2 || mode == 3)) {
++ pregpriv->rx_stbc = mode;
++ printk("rx_stbc =%d\n", mode);
+ }
+ }
-+
++
+ return count;
-+
++
+}
+
+int proc_get_rssi_disp(struct seq_file *m, void *v)
@@ -7556,124 +6524,122 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ssize_t proc_set_rssi_disp(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data)
+{
+ struct net_device *dev = data;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
+ char tmp[32];
-+ u32 enable=0;
++ u32 enable = 0;
+
-+ if (count < 1)
-+ {
++ if (count < 1) {
+ DBG_8192C("argument size is less than 1\n");
+ return -EFAULT;
-+ }
-+
-+ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
++ }
+
++ if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) {
+ int num = sscanf(tmp, "%x", &enable);
+
+ if (num != 1) {
+ DBG_8192C("invalid set_rssi_disp parameter!\n");
+ return count;
+ }
-+
-+ if(enable)
-+ {
++
++ if (enable) {
+ DBG_8192C("Linked info Function Enable\n");
-+ padapter->bLinkInfoDump = enable ;
-+ }
-+ else
-+ {
++ padapter->bLinkInfoDump = enable ;
++ } else {
+ DBG_8192C("Linked info Function Disable\n");
+ padapter->bLinkInfoDump = 0 ;
+ }
-+
+ }
-+
+ return count;
-+
-+}
-+
-+
-+#ifdef CONFIG_AP_MODE
++}
+
+int proc_get_all_sta_info(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ _irqL irqL;
+ struct sta_info *psta;
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
++ struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
+ struct sta_priv *pstapriv = &padapter->stapriv;
+ int i, j;
-+ _list *plist, *phead;
++ struct list_head *plist, *phead;
+ struct recv_reorder_ctrl *preorder_ctrl;
+
-+ DBG_871X_SEL_NL(m, "sta_dz_bitmap=0x%x, tim_bitmap=0x%x\n", pstapriv->sta_dz_bitmap, pstapriv->tim_bitmap);
++ DBG_871X_SEL_NL(m, "sta_dz_bitmap = 0x%x, tim_bitmap = 0x%x\n", pstapriv->sta_dz_bitmap, pstapriv->tim_bitmap);
+
-+ _enter_critical_bh(&pstapriv->sta_hash_lock, &irqL);
++ spin_lock_bh(&pstapriv->sta_hash_lock);
+
-+ for(i=0; i< NUM_STA; i++)
-+ {
++ for (i = 0; i < NUM_STA; i++) {
+ phead = &(pstapriv->sta_hash[i]);
+ plist = get_next(phead);
-+
-+ while ((rtw_end_of_queue_search(phead, plist)) == false)
-+ {
++
++ while (phead != plist) {
+ psta = LIST_CONTAINOR(plist, struct sta_info, hash_list);
+
+ plist = get_next(plist);
+
-+ //if(extra_arg == psta->aid)
-+ {
-+ DBG_871X_SEL_NL(m, "==============================\n");
-+ DBG_871X_SEL_NL(m, "sta's macaddr:" MAC_FMT "\n", MAC_ARG(psta->hwaddr));
-+ DBG_871X_SEL_NL(m, "rtsen=%d, cts2slef=%d\n", psta->rtsen, psta->cts2self);
-+ DBG_871X_SEL_NL(m, "state=0x%x, aid=%d, macid=%d, raid=%d\n", psta->state, psta->aid, psta->mac_id, psta->raid);
-+ DBG_871X_SEL_NL(m, "qos_en=%d, ht_en=%d, init_rate=%d\n", psta->qos_option, psta->htpriv.ht_option, psta->init_rate);
-+ DBG_871X_SEL_NL(m, "bwmode=%d, ch_offset=%d, sgi_20m=%d,sgi_40m=%d\n", psta->bw_mode, psta->htpriv.ch_offset, psta->htpriv.sgi_20m, psta->htpriv.sgi_40m);
-+ DBG_871X_SEL_NL(m, "ampdu_enable = %d\n", psta->htpriv.ampdu_enable);
-+ DBG_871X_SEL_NL(m, "agg_enable_bitmap=%x, candidate_tid_bitmap=%x\n", psta->htpriv.agg_enable_bitmap, psta->htpriv.candidate_tid_bitmap);
-+ DBG_871X_SEL_NL(m, "sleepq_len=%d\n", psta->sleepq_len);
-+ DBG_871X_SEL_NL(m, "sta_xmitpriv.vo_q_qcnt=%d\n", psta->sta_xmitpriv.vo_q.qcnt);
-+ DBG_871X_SEL_NL(m, "sta_xmitpriv.vi_q_qcnt=%d\n", psta->sta_xmitpriv.vi_q.qcnt);
-+ DBG_871X_SEL_NL(m, "sta_xmitpriv.be_q_qcnt=%d\n", psta->sta_xmitpriv.be_q.qcnt);
-+ DBG_871X_SEL_NL(m, "sta_xmitpriv.bk_q_qcnt=%d\n", psta->sta_xmitpriv.bk_q.qcnt);
++ DBG_871X_SEL_NL(m, "==============================\n");
++ DBG_871X_SEL_NL(m, "sta's macaddr:" MAC_FMT "\n",
++ MAC_ARG(psta->hwaddr));
++ DBG_871X_SEL_NL(m, "rtsen =%d, cts2slef =%d\n",
++ psta->rtsen, psta->cts2self);
++ DBG_871X_SEL_NL(m, "state = 0x%x, aid =%d, macid =%d, raid =%d\n",
++ psta->state, psta->aid, psta->mac_id,
++ psta->raid);
++ DBG_871X_SEL_NL(m, "qos_en =%d, ht_en =%d, init_rate =%d\n",
++ psta->qos_option,
++ psta->htpriv.ht_option,
++ psta->init_rate);
++ DBG_871X_SEL_NL(m, "bwmode =%d, ch_offset =%d, sgi_20m =%d, sgi_40m =%d\n",
++ psta->bw_mode, psta->htpriv.ch_offset,
++ psta->htpriv.sgi_20m,
++ psta->htpriv.sgi_40m);
++ DBG_871X_SEL_NL(m, "ampdu_enable = %d\n",
++ psta->htpriv.ampdu_enable);
++ DBG_871X_SEL_NL(m, "agg_enable_bitmap =%x, candidate_tid_bitmap =%x\n",
++ psta->htpriv.agg_enable_bitmap,
++ psta->htpriv.candidate_tid_bitmap);
++ DBG_871X_SEL_NL(m, "sleepq_len =%d\n",
++ psta->sleepq_len);
++ DBG_871X_SEL_NL(m, "sta_xmitpriv.vo_q_qcnt =%d\n",
++ psta->sta_xmitpriv.vo_q.qcnt);
++ DBG_871X_SEL_NL(m, "sta_xmitpriv.vi_q_qcnt =%d\n",
++ psta->sta_xmitpriv.vi_q.qcnt);
++ DBG_871X_SEL_NL(m, "sta_xmitpriv.be_q_qcnt =%d\n",
++ psta->sta_xmitpriv.be_q.qcnt);
++ DBG_871X_SEL_NL(m, "sta_xmitpriv.bk_q_qcnt =%d\n",
++ psta->sta_xmitpriv.bk_q.qcnt);
+
-+ DBG_871X_SEL_NL(m, "capability=0x%x\n", psta->capability);
-+ DBG_871X_SEL_NL(m, "flags=0x%x\n", psta->flags);
-+ DBG_871X_SEL_NL(m, "wpa_psk=0x%x\n", psta->wpa_psk);
-+ DBG_871X_SEL_NL(m, "wpa2_group_cipher=0x%x\n", psta->wpa2_group_cipher);
-+ DBG_871X_SEL_NL(m, "wpa2_pairwise_cipher=0x%x\n", psta->wpa2_pairwise_cipher);
-+ DBG_871X_SEL_NL(m, "qos_info=0x%x\n", psta->qos_info);
-+ DBG_871X_SEL_NL(m, "dot118021XPrivacy=0x%x\n", psta->dot118021XPrivacy);
-+
-+ for(j=0;j<16;j++)
-+ {
-+ preorder_ctrl = &psta->recvreorder_ctrl[j];
-+ if(preorder_ctrl->enable)
-+ {
-+ DBG_871X_SEL_NL(m, "tid=%d, indicate_seq=%d\n", j, preorder_ctrl->indicate_seq);
-+ }
-+ }
++ DBG_871X_SEL_NL(m, "capability = 0x%x\n",
++ psta->capability);
++ DBG_871X_SEL_NL(m, "flags = 0x%x\n", psta->flags);
++ DBG_871X_SEL_NL(m, "wpa_psk = 0x%x\n", psta->wpa_psk);
++ DBG_871X_SEL_NL(m, "wpa2_group_cipher = 0x%x\n",
++ psta->wpa2_group_cipher);
++ DBG_871X_SEL_NL(m, "wpa2_pairwise_cipher = 0x%x\n",
++ psta->wpa2_pairwise_cipher);
++ DBG_871X_SEL_NL(m, "qos_info = 0x%x\n", psta->qos_info);
++ DBG_871X_SEL_NL(m, "dot118021XPrivacy = 0x%x\n",
++ psta->dot118021XPrivacy);
+
-+ DBG_871X_SEL_NL(m, "==============================\n");
++ for (j = 0; j < 16; j++) {
++ preorder_ctrl = &psta->recvreorder_ctrl[j];
++ if (preorder_ctrl->enable)
++ DBG_871X_SEL_NL(m, "tid =%d, indicate_seq =%d\n",
++ j, preorder_ctrl->indicate_seq);
+ }
-+
++ DBG_871X_SEL_NL(m, "==============================\n");
+ }
-+
+ }
+
-+ _exit_critical_bh(&pstapriv->sta_hash_lock, &irqL);
++ spin_unlock_bh(&pstapriv->sta_hash_lock);
+
+ return 0;
+}
-+
-+#endif
+
+int proc_get_btcoex_dbg(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ PADAPTER padapter;
++ struct adapter *padapter;
+ char buf[512] = {0};
-+ padapter = (PADAPTER)rtw_netdev_priv(dev);
++ padapter = (struct adapter *)rtw_netdev_priv(dev);
+
+ rtw_btcoex_GetDBG(padapter, buf, 512);
+
@@ -7685,12 +6651,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ssize_t proc_set_btcoex_dbg(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data)
+{
+ struct net_device *dev = data;
-+ PADAPTER padapter;
++ struct adapter *padapter;
+ u8 tmp[80] = {0};
+ u32 module[2] = {0};
+ u32 num;
+
-+ padapter = (PADAPTER)rtw_netdev_priv(dev);
++ padapter = (struct adapter *)rtw_netdev_priv(dev);
+
+// DBG_871X("+" FUNC_ADPT_FMT "\n", FUNC_ADPT_ARG(padapter));
+
@@ -7698,7 +6664,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ {
+ DBG_871X(FUNC_ADPT_FMT ": input buffer is NULL!\n",
+ FUNC_ADPT_ARG(padapter));
-+
++
+ return -EFAULT;
+ }
+
@@ -7749,11 +6715,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+int proc_get_btcoex_info(struct seq_file *m, void *v)
+{
+ struct net_device *dev = m->private;
-+ PADAPTER padapter;
++ struct adapter *padapter;
+ const u32 bufsize = 30*100;
+ u8 *pbuf = NULL;
+
-+ padapter = (PADAPTER)rtw_netdev_priv(dev);
++ padapter = (struct adapter *)rtw_netdev_priv(dev);
+
+ pbuf = rtw_zmalloc(bufsize);
+ if (NULL == pbuf) {
@@ -7763,21 +6729,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_debug.c linux/3rdparty/rtl8723b
+ rtw_btcoex_DisplayBtCoexInfo(padapter, pbuf, bufsize);
+
+ DBG_871X_SEL(m, "%s\n", pbuf);
-+
-+ rtw_mfree(pbuf, bufsize);
++
++ kfree(pbuf);
+
+ return 0;
+}
+
+#endif
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c linux/3rdparty/rtl8723bs/core/rtw_eeprom.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_eeprom.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,381 @@
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_eeprom.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_eeprom.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_eeprom.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_eeprom.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,375 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
-+ *
++ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
@@ -7787,11 +6753,6 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c linux/3rdparty/rtl8723
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
+#define _RTW_EEPROM_C_
+
@@ -7799,7 +6760,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c linux/3rdparty/rtl8723
+#include
+#include
+
-+void up_clk(_adapter* padapter, u16 *x)
++void up_clk(_adapter*padapter, u16 *x)
+{
+_func_enter_;
+ *x = *x | _EESK;
@@ -7807,24 +6768,24 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c linux/3rdparty/rtl8723
+ udelay(CLOCK_RATE);
+
+_func_exit_;
-+
++
+}
+
-+void down_clk(_adapter * padapter, u16 *x )
++void down_clk(_adapter *padapter, u16 *x )
+{
+_func_enter_;
+ *x = *x & ~_EESK;
+ rtw_write8(padapter, EE_9346CR, (u8)*x);
+ udelay(CLOCK_RATE);
-+_func_exit_;
++_func_exit_;
+}
+
-+void shift_out_bits(_adapter * padapter, u16 data, u16 count)
++void shift_out_bits(_adapter *padapter, u16 data, u16 count)
+{
+ u16 x,mask;
+_func_enter_;
+
-+ if(padapter->bSurpriseRemoved==true){
++ if(padapter->bSurpriseRemoved==true) {
+ RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
+ goto out;
+ }
@@ -7838,7 +6799,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c linux/3rdparty/rtl8723
+ x &= ~_EEDI;
+ if(data & mask)
+ x |= _EEDI;
-+ if(padapter->bSurpriseRemoved==true){
++ if(padapter->bSurpriseRemoved==true) {
+ RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
+ goto out;
+ }
@@ -7848,34 +6809,34 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c linux/3rdparty/rtl8723
+ down_clk(padapter, &x);
+ mask = mask >> 1;
+ } while(mask);
-+ if(padapter->bSurpriseRemoved==true){
++ if(padapter->bSurpriseRemoved==true) {
+ RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
+ goto out;
+ }
+ x &= ~_EEDI;
+ rtw_write8(padapter, EE_9346CR, (u8)x);
-+out:
-+_func_exit_;
++out:
++_func_exit_;
+}
+
-+u16 shift_in_bits (_adapter * padapter)
++u16 shift_in_bits (_adapter *padapter)
+{
+ u16 x,d=0,i;
-+_func_enter_;
-+ if(padapter->bSurpriseRemoved==true){
++_func_enter_;
++ if(padapter->bSurpriseRemoved==true) {
+ RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
+ goto out;
+ }
+ x = rtw_read8(padapter, EE_9346CR);
+
-+ x &= ~( _EEDO | _EEDI);
++ x &= ~(_EEDO | _EEDI);
+ d = 0;
+
+ for(i=0; i<16; i++)
+ {
+ d = d << 1;
+ up_clk(padapter, &x);
-+ if(padapter->bSurpriseRemoved==true){
++ if(padapter->bSurpriseRemoved==true) {
+ RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
+ goto out;
+ }
@@ -7887,16 +6848,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c linux/3rdparty/rtl8723
+
+ down_clk(padapter, &x);
+ }
-+out:
-+_func_exit_;
++out:
++_func_exit_;
+
+ return d;
+}
+
-+void standby(_adapter * padapter )
++void standby(_adapter *padapter )
+{
+ u8 x;
-+_func_enter_;
++_func_enter_;
+ x = rtw_read8(padapter, EE_9346CR);
+
+ x &= ~(_EECS | _EESK);
@@ -7906,64 +6867,64 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c linux/3rdparty/rtl8723
+ x |= _EECS;
+ rtw_write8(padapter, EE_9346CR, x);
+ udelay(CLOCK_RATE);
-+_func_exit_;
++_func_exit_;
+}
+
+u16 wait_eeprom_cmd_done(_adapter* padapter)
+{
-+ u8 x;
-+ u16 i,res=false;
-+_func_enter_;
++ u8 x;
++ u16 i,res=false;
++_func_enter_;
+ standby(padapter );
-+ for (i=0; i<200; i++)
++ for (i=0; i<200; i++)
+ {
+ x = rtw_read8(padapter, EE_9346CR);
-+ if (x & _EEDO){
++ if (x & _EEDO) {
+ res=true;
+ goto exit;
+ }
+ udelay(CLOCK_RATE);
+ }
-+exit:
-+_func_exit_;
++exit:
++_func_exit_;
+ return res;
+}
+
-+void eeprom_clean(_adapter * padapter)
++void eeprom_clean(_adapter *padapter)
+{
+ u16 x;
-+_func_enter_;
-+ if(padapter->bSurpriseRemoved==true){
++_func_enter_;
++ if(padapter->bSurpriseRemoved==true) {
+ RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
+ goto out;
+ }
+ x = rtw_read8(padapter, EE_9346CR);
-+ if(padapter->bSurpriseRemoved==true){
++ if(padapter->bSurpriseRemoved==true) {
+ RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
+ goto out;
+ }
+ x &= ~(_EECS | _EEDI);
+ rtw_write8(padapter, EE_9346CR, (u8)x);
-+ if(padapter->bSurpriseRemoved==true){
++ if(padapter->bSurpriseRemoved==true) {
+ RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
+ goto out;
+ }
+ up_clk(padapter, &x);
-+ if(padapter->bSurpriseRemoved==true){
++ if(padapter->bSurpriseRemoved==true) {
+ RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
+ goto out;
+ }
+ down_clk(padapter, &x);
-+out:
-+_func_exit_;
++out:
++_func_exit_;
+}
+
-+void eeprom_write16(_adapter * padapter, u16 reg, u16 data)
++void eeprom_write16(_adapter *padapter, u16 reg, u16 data)
+{
+ u8 x;
+
-+_func_enter_;
-+
++_func_enter_;
++
+ x = rtw_read8(padapter, EE_9346CR);
+
+ x &= ~(_EEDI | _EEDO | _EESK | _EEM0);
@@ -7971,13 +6932,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c linux/3rdparty/rtl8723
+ rtw_write8(padapter, EE_9346CR, x);
+
+ shift_out_bits(padapter, EEPROM_EWEN_OPCODE, 5);
-+
++
+ if(padapter->EepromAddressSize==8) //CF+ and SDIO
+ shift_out_bits(padapter, 0, 6);
+ else //USB
+ shift_out_bits(padapter, 0, 4);
-+
-+ standby( padapter);
++
++ standby(padapter);
+
+// Commented out by rcnjko, 2004.0
+// // Erase this particular word. Write the erase opcode and register
@@ -7985,7 +6946,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c linux/3rdparty/rtl8723
+// shift_out_bits(Adapter, EEPROM_ERASE_OPCODE, 3);
+// shift_out_bits(Adapter, reg, Adapter->EepromAddressSize);
+//
-+// if (wait_eeprom_cmd_done(Adapter ) == false)
++// if (wait_eeprom_cmd_done(Adapter ) == false)
+// {
+// return;
+// }
@@ -8004,7 +6965,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c linux/3rdparty/rtl8723
+ // write the data to the selected EEPROM word.
+ shift_out_bits(padapter, data, 16);
+
-+ if (wait_eeprom_cmd_done(padapter ) == false)
++ if (wait_eeprom_cmd_done(padapter ) == false)
+ {
+
+ goto exit;
@@ -8016,27 +6977,27 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c linux/3rdparty/rtl8723
+ shift_out_bits(padapter, reg, 4);
+
+ eeprom_clean(padapter );
-+exit:
-+_func_exit_;
++exit:
++_func_exit_;
+ return;
+}
+
-+u16 eeprom_read16(_adapter * padapter, u16 reg) //ReadEEprom
++u16 eeprom_read16(_adapter *padapter, u16 reg) //ReadEEprom
+{
+
+ u16 x;
+ u16 data=0;
+
-+_func_enter_;
++_func_enter_;
+
-+ if(padapter->bSurpriseRemoved==true){
++ if(padapter->bSurpriseRemoved==true) {
+ RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
+ goto out;
+ }
+ // select EEPROM, reset bits, set _EECS
+ x = rtw_read8(padapter, EE_9346CR);
+
-+ if(padapter->bSurpriseRemoved==true){
++ if(padapter->bSurpriseRemoved==true) {
+ RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
+ goto out;
+ }
@@ -8054,8 +7015,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c linux/3rdparty/rtl8723
+ data = shift_in_bits(padapter);
+
+ eeprom_clean(padapter);
-+out:
-+_func_exit_;
++out:
++_func_exit_;
+ return data;
+
+
@@ -8065,20 +7026,20 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c linux/3rdparty/rtl8723
+
+
+//From even offset
-+void eeprom_read_sz(_adapter * padapter, u16 reg, u8* data, u32 sz)
++void eeprom_read_sz(_adapter *padapter, u16 reg, u8 *data, u32 sz)
+{
+
+ u16 x, data16;
+ u32 i;
-+_func_enter_;
-+ if(padapter->bSurpriseRemoved==true){
++_func_enter_;
++ if(padapter->bSurpriseRemoved==true) {
+ RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
+ goto out;
+ }
+ // select EEPROM, reset bits, set _EECS
+ x = rtw_read8(padapter, EE_9346CR);
+
-+ if(padapter->bSurpriseRemoved==true){
++ if(padapter->bSurpriseRemoved==true) {
+ RT_TRACE(_module_rtl871x_eeprom_c_,_drv_err_,("padapter->bSurpriseRemoved==true"));
+ goto out;
+ }
@@ -8097,12 +7058,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c linux/3rdparty/rtl8723
+ {
+ data16 = shift_in_bits(padapter);
+ data[i] = data16 & 0xff;
-+ data[i+1] = data16 >>8;
++ data[i+1] = data16 >>8;
+ }
+
+ eeprom_clean(padapter);
-+out:
-+_func_exit_;
++out:
++_func_exit_;
+
+
+
@@ -8110,11 +7071,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c linux/3rdparty/rtl8723
+
+
+//addr_off : address offset of the entry in eeprom (not the tuple number of eeprom (reg); that is addr_off !=reg)
-+u8 eeprom_read(_adapter * padapter, u32 addr_off, u8 sz, u8* rbuf)
++u8 eeprom_read(_adapter *padapter, u32 addr_off, u8 sz, u8 *rbuf)
+{
+ u8 quotient, remainder, addr_2align_odd;
+ u16 reg, stmp , i=0, idx = 0;
-+_func_enter_;
++_func_enter_;
+ reg = (u16)(addr_off >> 1);
+ addr_2align_odd = (u8)(addr_off & 0x1);
+
@@ -8124,45 +7085,44 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_eeprom.c linux/3rdparty/rtl8723
+ rbuf[idx++] = (u8) ((stmp>>8)&0xff); //return hogh-part of the short
+ reg++; sz--;
+ }
-+
++
+ quotient = sz >> 1;
+ remainder = sz & 0x1;
+
-+ for( i=0 ; i < quotient; i++)
++ for(i=0 ; i < quotient; i++)
+ {
+ stmp = eeprom_read16(padapter, reg+i);
+ rbuf[idx++] = (u8) (stmp&0xff);
+ rbuf[idx++] = (u8) ((stmp>>8)&0xff);
+ }
-+
++
+ reg = reg+i;
-+ if(remainder){ //end of read at lower part of short : 0,2,4,6,...
++ if(remainder) { //end of read at lower part of short : 0,2,4,6,...
+ stmp = eeprom_read16(padapter, reg);
-+ rbuf[idx] = (u8)(stmp & 0xff);
++ rbuf[idx] = (u8)(stmp & 0xff);
+ }
-+_func_exit_;
++_func_exit_;
+ return true;
+}
+
+
+
-+void read_eeprom_content(_adapter * padapter)
++void read_eeprom_content(_adapter *padapter)
+{
+
-+_func_enter_;
++_func_enter_;
+
+
-+_func_exit_;
++_func_exit_;
+}
-+
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_efuse.c linux/3rdparty/rtl8723bs/core/rtw_efuse.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_efuse.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_efuse.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,1160 @@
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_efuse.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_efuse.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_efuse.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_efuse.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,654 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
-+ *
++ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
@@ -8172,59 +7132,55 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_efuse.c linux/3rdparty/rtl8723b
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
+#define _RTW_EFUSE_C_
+
+#include
++#include
+#include
+#include
+
+
+/*------------------------Define local variable------------------------------*/
-+u8 fakeEfuseBank=0;
-+u32 fakeEfuseUsedBytes=0;
-+u8 fakeEfuseContent[EFUSE_MAX_HW_SIZE]={0};
-+u8 fakeEfuseInitMap[EFUSE_MAX_MAP_LEN]={0};
-+u8 fakeEfuseModifiedMap[EFUSE_MAX_MAP_LEN]={0};
++u8 fakeEfuseBank = 0;
++u32 fakeEfuseUsedBytes = 0;
++u8 fakeEfuseContent[EFUSE_MAX_HW_SIZE]={0};
++u8 fakeEfuseInitMap[EFUSE_MAX_MAP_LEN]={0};
++u8 fakeEfuseModifiedMap[EFUSE_MAX_MAP_LEN]={0};
+
-+u32 BTEfuseUsedBytes=0;
-+u8 BTEfuseContent[EFUSE_MAX_BT_BANK][EFUSE_MAX_HW_SIZE];
-+u8 BTEfuseInitMap[EFUSE_BT_MAX_MAP_LEN]={0};
-+u8 BTEfuseModifiedMap[EFUSE_BT_MAX_MAP_LEN]={0};
++u32 BTEfuseUsedBytes = 0;
++u8 BTEfuseContent[EFUSE_MAX_BT_BANK][EFUSE_MAX_HW_SIZE];
++u8 BTEfuseInitMap[EFUSE_BT_MAX_MAP_LEN]={0};
++u8 BTEfuseModifiedMap[EFUSE_BT_MAX_MAP_LEN]={0};
+
-+u32 fakeBTEfuseUsedBytes=0;
-+u8 fakeBTEfuseContent[EFUSE_MAX_BT_BANK][EFUSE_MAX_HW_SIZE];
-+u8 fakeBTEfuseInitMap[EFUSE_BT_MAX_MAP_LEN]={0};
-+u8 fakeBTEfuseModifiedMap[EFUSE_BT_MAX_MAP_LEN]={0};
++u32 fakeBTEfuseUsedBytes = 0;
++u8 fakeBTEfuseContent[EFUSE_MAX_BT_BANK][EFUSE_MAX_HW_SIZE];
++u8 fakeBTEfuseInitMap[EFUSE_BT_MAX_MAP_LEN]={0};
++u8 fakeBTEfuseModifiedMap[EFUSE_BT_MAX_MAP_LEN]={0};
+/*------------------------Define local variable------------------------------*/
+
-+//------------------------------------------------------------------------------
++/* */
+#define REG_EFUSE_CTRL 0x0030
-+#define EFUSE_CTRL REG_EFUSE_CTRL // E-Fuse Control.
-+//------------------------------------------------------------------------------
++#define EFUSE_CTRL REG_EFUSE_CTRL /* E-Fuse Control. */
++/* */
+
+bool
+Efuse_Read1ByteFromFakeContent(
-+ IN PADAPTER pAdapter,
-+ IN u16 Offset,
-+ IN OUT u8 *Value );
++ struct adapter *padapter,
++ u16 Offset,
++ u8 *Value );
+bool
+Efuse_Read1ByteFromFakeContent(
-+ IN PADAPTER pAdapter,
-+ IN u16 Offset,
-+ IN OUT u8 *Value )
++ struct adapter *padapter,
++ u16 Offset,
++ u8 *Value )
+{
-+ if(Offset >= EFUSE_MAX_HW_SIZE)
++ if (Offset >= EFUSE_MAX_HW_SIZE)
+ {
+ return false;
+ }
-+ //DbgPrint("Read fake content, offset = %d\n", Offset);
-+ if(fakeEfuseBank == 0)
++ /* DbgPrint("Read fake content, offset = %d\n", Offset); */
++ if (fakeEfuseBank == 0)
+ *Value = fakeEfuseContent[Offset];
+ else
+ *Value = fakeBTEfuseContent[fakeEfuseBank-1][Offset];
@@ -8233,20 +7189,20 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_efuse.c linux/3rdparty/rtl8723b
+
+bool
+Efuse_Write1ByteToFakeContent(
-+ IN PADAPTER pAdapter,
-+ IN u16 Offset,
-+ IN u8 Value );
++ struct adapter *padapter,
++ u16 Offset,
++ u8 Value );
+bool
+Efuse_Write1ByteToFakeContent(
-+ IN PADAPTER pAdapter,
-+ IN u16 Offset,
-+ IN u8 Value )
++ struct adapter *padapter,
++ u16 Offset,
++ u8 Value )
+{
-+ if(Offset >= EFUSE_MAX_HW_SIZE)
++ if (Offset >= EFUSE_MAX_HW_SIZE)
+ {
+ return false;
+ }
-+ if(fakeEfuseBank == 0)
++ if (fakeEfuseBank == 0)
+ fakeEfuseContent[Offset] = Value;
+ else
+ {
@@ -8258,9 +7214,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_efuse.c linux/3rdparty/rtl8723b
+/*-----------------------------------------------------------------------------
+ * Function: Efuse_PowerSwitch
+ *
-+ * Overview: When we want to enable write operation, we should change to
-+ * pwr on state. When we stop write, we should switch to 500k mode
-+ * and disable LDO 2.5V.
++ * Overview: When we want to enable write operation, we should change to
++ * pwr on state. When we stop write, we should switch to 500k mode
++ * and disable LDO 2.5V.
+ *
+ * Input: NONE
+ *
@@ -8270,30 +7226,20 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_efuse.c linux/3rdparty/rtl8723b
+ *
+ * Revised History:
+ * When Who Remark
-+ * 11/17/2008 MHC Create Version 0.
++ * 11/17/2008 MHC Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+void
+Efuse_PowerSwitch(
-+ IN PADAPTER pAdapter,
-+ IN u8 bWrite,
-+ IN u8 PwrState)
++struct adapter *padapter,
++u8 bWrite,
++u8 PwrState)
+{
-+ pAdapter->HalFunc.EfusePowerSwitch(pAdapter, bWrite, PwrState);
-+}
-+
-+void
-+BTEfuse_PowerSwitch(
-+ IN PADAPTER pAdapter,
-+ IN u8 bWrite,
-+ IN u8 PwrState)
-+{
-+ if(pAdapter->HalFunc.BTEfusePowerSwitch)
-+ pAdapter->HalFunc.BTEfusePowerSwitch(pAdapter, bWrite, PwrState);
++ padapter->HalFunc.EfusePowerSwitch(padapter, bWrite, PwrState);
+}
+
+/*-----------------------------------------------------------------------------
-+ * Function: efuse_GetCurrentSize
++ * Function: Efuse_GetCurrentSize
+ *
+ * Overview: Get current efuse size!!!
+ *
@@ -8305,131 +7251,69 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_efuse.c linux/3rdparty/rtl8723b
+ *
+ * Revised History:
+ * When Who Remark
-+ * 11/16/2008 MHC Create Version 0.
++ * 11/16/2008 MHC Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+u16
+Efuse_GetCurrentSize(
-+ IN PADAPTER pAdapter,
-+ IN u8 efuseType,
-+ IN bool bPseudoTest)
++ struct adapter * padapter,
++ u8 efuseType,
++ bool bPseudoTest)
+{
-+ u16 ret=0;
++ u16 ret = 0;
+
-+ ret = pAdapter->HalFunc.EfuseGetCurrentSize(pAdapter, efuseType, bPseudoTest);
++ ret = padapter->HalFunc.EfuseGetCurrentSize(padapter, efuseType, bPseudoTest);
+
+ return ret;
+}
+
+/* 11/16/2008 MH Add description. Get current efuse area enabled word!!. */
+u8
-+Efuse_CalculateWordCnts(IN u8 word_en)
++Efuse_CalculateWordCnts(u8 word_en)
+{
+ u8 word_cnts = 0;
-+ if(!(word_en & BIT(0))) word_cnts++; // 0 : write enable
-+ if(!(word_en & BIT(1))) word_cnts++;
-+ if(!(word_en & BIT(2))) word_cnts++;
-+ if(!(word_en & BIT(3))) word_cnts++;
++ if (!(word_en & BIT(0))) word_cnts++; /* 0 : write enable */
++ if (!(word_en & BIT(1))) word_cnts++;
++ if (!(word_en & BIT(2))) word_cnts++;
++ if (!(word_en & BIT(3))) word_cnts++;
+ return word_cnts;
+}
+
-+//
-+// Description:
-+// Execute E-Fuse read byte operation.
-+// Refered from SD1 Richard.
-+//
-+// Assumption:
-+// 1. Boot from E-Fuse and successfully auto-load.
-+// 2. PASSIVE_LEVEL (USB interface)
-+//
-+// Created by Roger, 2008.10.21.
-+//
-+void
-+ReadEFuseByte(
-+ PADAPTER Adapter,
-+ u16 _offset,
-+ u8 *pbuf,
-+ IN bool bPseudoTest)
-+{
-+ u32 value32;
-+ u8 readbyte;
-+ u16 retry;
-+
-+ if(bPseudoTest)
-+ {
-+ Efuse_Read1ByteFromFakeContent(Adapter, _offset, pbuf);
-+ return;
-+ }
-+ // <20130121, Kordan> For SMIC S55 EFUSE specificatoin.
-+ //0x34[11]: SW force PGMEN input of efuse to high. (for the bank selected by 0x34[9:8])
-+ PHY_SetMacReg(Adapter, EFUSE_TEST, BIT11, 0);
-+
-+ //Write Address
-+ rtw_write8(Adapter, EFUSE_CTRL+1, (_offset & 0xff));
-+ readbyte = rtw_read8(Adapter, EFUSE_CTRL+2);
-+ rtw_write8(Adapter, EFUSE_CTRL+2, ((_offset >> 8) & 0x03) | (readbyte & 0xfc));
-+
-+ //Write bit 32 0
-+ readbyte = rtw_read8(Adapter, EFUSE_CTRL+3);
-+ rtw_write8(Adapter, EFUSE_CTRL+3, (readbyte & 0x7f));
-+
-+ //Check bit 32 read-ready
-+ retry = 0;
-+ value32 = rtw_read32(Adapter, EFUSE_CTRL);
-+ //while(!(((value32 >> 24) & 0xff) & 0x80) && (retry<10))
-+ while(!(((value32 >> 24) & 0xff) & 0x80) && (retry<10000))
-+ {
-+ value32 = rtw_read32(Adapter, EFUSE_CTRL);
-+ retry++;
-+ }
-+
-+ // 20100205 Joseph: Add delay suggested by SD1 Victor.
-+ // This fix the problem that Efuse read error in high temperature condition.
-+ // Designer says that there shall be some delay after ready bit is set, or the
-+ // result will always stay on last data we read.
-+ udelay(50);
-+ value32 = rtw_read32(Adapter, EFUSE_CTRL);
-+
-+ *pbuf = (u8)(value32 & 0xff);
-+ //DBG_871X("ReadEFuseByte _offset:%08u, in %d ms\n",_offset ,jiffies_to_msecs(jiffies - start));
-+
-+}
-+
-+//
-+// Description:
-+// 1. Execute E-Fuse read byte operation according as map offset and
-+// save to E-Fuse table.
-+// 2. Refered from SD1 Richard.
-+//
-+// Assumption:
-+// 1. Boot from E-Fuse and successfully auto-load.
-+// 2. PASSIVE_LEVEL (USB interface)
-+//
-+// Created by Roger, 2008.10.21.
-+//
-+// 2008/12/12 MH 1. Reorganize code flow and reserve bytes. and add description.
-+// 2. Add efuse utilization collect.
-+// 2008/12/22 MH Read Efuse must check if we write section 1 data again!!! Sec1
-+// write addr must be after sec5.
-+//
++/* */
++/* Description: */
++/* 1. Execute E-Fuse read byte operation according as map offset and */
++/* save to E-Fuse table. */
++/* 2. Refered from SD1 Richard. */
++/* */
++/* Assumption: */
++/* 1. Boot from E-Fuse and successfully auto-load. */
++/* 2. PASSIVE_LEVEL (USB interface) */
++/* */
++/* Created by Roger, 2008.10.21. */
++/* */
++/* 2008/12/12 MH 1. Reorganize code flow and reserve bytes. and add description. */
++/* 2. Add efuse utilization collect. */
++/* 2008/12/22 MH Read Efuse must check if we write section 1 data again!!! Sec1 */
++/* write addr must be after sec5. */
++/* */
+
+void
+efuse_ReadEFuse(
-+ PADAPTER Adapter,
-+ u8 efuseType,
-+ u16 _offset,
-+ u16 _size_byte,
-+ u8 *pbuf,
-+ IN bool bPseudoTest
++ struct adapter *Adapter,
++ u8 efuseType,
++ u16 _offset,
++ u16 _size_byte,
++ u8 *pbuf,
++bool bPseudoTest
+ );
+void
+efuse_ReadEFuse(
-+ PADAPTER Adapter,
-+ u8 efuseType,
-+ u16 _offset,
-+ u16 _size_byte,
-+ u8 *pbuf,
-+ IN bool bPseudoTest
++ struct adapter *Adapter,
++ u8 efuseType,
++ u16 _offset,
++ u16 _size_byte,
++ u8 *pbuf,
++bool bPseudoTest
+ )
+{
+ Adapter->HalFunc.ReadEFuse(Adapter, efuseType, _offset, _size_byte, pbuf, bPseudoTest);
@@ -8437,14 +7321,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_efuse.c linux/3rdparty/rtl8723b
+
+void
+EFUSE_GetEfuseDefinition(
-+ IN PADAPTER pAdapter,
-+ IN u8 efuseType,
-+ IN u8 type,
-+ OUT void *pOut,
-+ IN bool bPseudoTest
++ struct adapter *padapter,
++ u8 efuseType,
++ u8 type,
++ void *pOut,
++ bool bPseudoTest
+ )
+{
-+ pAdapter->HalFunc.EFUSEGetEfuseDefinition(pAdapter, efuseType, type, pOut, bPseudoTest);
++ padapter->HalFunc.EFUSEGetEfuseDefinition(padapter, efuseType, type, pOut, bPseudoTest);
+}
+
+/*-----------------------------------------------------------------------------
@@ -8460,286 +7344,201 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_efuse.c linux/3rdparty/rtl8723b
+ *
+ * Revised History:
+ * When Who Remark
-+ * 09/23/2008 MHC Copy from WMAC.
++ * 09/23/2008 MHC Copy from WMAC.
+ *
+ *---------------------------------------------------------------------------*/
+u8
-+EFUSE_Read1Byte(
-+ IN PADAPTER Adapter,
-+ IN u16 Address)
++EFUSE_Read1Byte(
++struct adapter *Adapter,
++u16 Address)
+{
-+ u8 data;
-+ u8 Bytetemp = {0x00};
-+ u8 temp = {0x00};
-+ u32 k=0;
-+ u16 contentLen=0;
++ u8 data;
++ u8 Bytetemp = {0x00};
++ u8 temp = {0x00};
++ u32 k = 0;
++ u16 contentLen = 0;
+
+ EFUSE_GetEfuseDefinition(Adapter, EFUSE_WIFI , TYPE_EFUSE_REAL_CONTENT_LEN, (void *)&contentLen, false);
+
-+ if (Address < contentLen) //E-fuse 512Byte
++ if (Address < contentLen) /* E-fuse 512Byte */
+ {
-+ //Write E-fuse Register address bit0~7
-+ temp = Address & 0xFF;
-+ rtw_write8(Adapter, EFUSE_CTRL+1, temp);
-+ Bytetemp = rtw_read8(Adapter, EFUSE_CTRL+2);
-+ //Write E-fuse Register address bit8~9
-+ temp = ((Address >> 8) & 0x03) | (Bytetemp & 0xFC);
-+ rtw_write8(Adapter, EFUSE_CTRL+2, temp);
++ /* Write E-fuse Register address bit0~7 */
++ temp = Address & 0xFF;
++ rtw_write8(Adapter, EFUSE_CTRL+1, temp);
++ Bytetemp = rtw_read8(Adapter, EFUSE_CTRL+2);
++ /* Write E-fuse Register address bit8~9 */
++ temp = ((Address >> 8) & 0x03) | (Bytetemp & 0xFC);
++ rtw_write8(Adapter, EFUSE_CTRL+2, temp);
+
-+ //Write 0x30[31]=0
++ /* Write 0x30[31]= 0 */
+ Bytetemp = rtw_read8(Adapter, EFUSE_CTRL+3);
+ temp = Bytetemp & 0x7F;
+ rtw_write8(Adapter, EFUSE_CTRL+3, temp);
+
-+ //Wait Write-ready (0x30[31]=1)
++ /* Wait Write-ready (0x30[31]= 1) */
+ Bytetemp = rtw_read8(Adapter, EFUSE_CTRL+3);
-+ while(!(Bytetemp & 0x80))
-+ {
++ while (!(Bytetemp & 0x80))
++ {
+ Bytetemp = rtw_read8(Adapter, EFUSE_CTRL+3);
+ k++;
-+ if(k==1000)
++ if (k == 1000)
+ {
-+ k=0;
++ k = 0;
+ break;
+ }
+ }
-+ data=rtw_read8(Adapter, EFUSE_CTRL);
++ data =rtw_read8(Adapter, EFUSE_CTRL);
+ return data;
+ }
+ else
+ return 0xFF;
-+
++
+}/* EFUSE_Read1Byte */
+
-+/*-----------------------------------------------------------------------------
-+ * Function: EFUSE_Write1Byte
-+ *
-+ * Overview: Copy from WMAC fot EFUSE write 1 byte.
-+ *
-+ * Input: NONE
-+ *
-+ * Output: NONE
-+ *
-+ * Return: NONE
-+ *
-+ * Revised History:
-+ * When Who Remark
-+ * 09/23/2008 MHC Copy from WMAC.
-+ *
-+ *---------------------------------------------------------------------------*/
-+
-+void
-+EFUSE_Write1Byte(
-+ IN PADAPTER Adapter,
-+ IN u16 Address,
-+ IN u8 Value);
-+void
-+EFUSE_Write1Byte(
-+ IN PADAPTER Adapter,
-+ IN u16 Address,
-+ IN u8 Value)
-+{
-+ u8 Bytetemp = {0x00};
-+ u8 temp = {0x00};
-+ u32 k=0;
-+ u16 contentLen=0;
-+
-+ //RT_TRACE(COMP_EFUSE, DBG_LOUD, ("Addr=%x Data =%x\n", Address, Value));
-+ EFUSE_GetEfuseDefinition(Adapter, EFUSE_WIFI , TYPE_EFUSE_REAL_CONTENT_LEN, (void *)&contentLen, false);
-+
-+ if( Address < contentLen) //E-fuse 512Byte
-+ {
-+ rtw_write8(Adapter, EFUSE_CTRL, Value);
-+
-+ //Write E-fuse Register address bit0~7
-+ temp = Address & 0xFF;
-+ rtw_write8(Adapter, EFUSE_CTRL+1, temp);
-+ Bytetemp = rtw_read8(Adapter, EFUSE_CTRL+2);
-+
-+ //Write E-fuse Register address bit8~9
-+ temp = ((Address >> 8) & 0x03) | (Bytetemp & 0xFC);
-+ rtw_write8(Adapter, EFUSE_CTRL+2, temp);
-+
-+ //Write 0x30[31]=1
-+ Bytetemp = rtw_read8(Adapter, EFUSE_CTRL+3);
-+ temp = Bytetemp | 0x80;
-+ rtw_write8(Adapter, EFUSE_CTRL+3, temp);
-+
-+ //Wait Write-ready (0x30[31]=0)
-+ Bytetemp = rtw_read8(Adapter, EFUSE_CTRL+3);
-+ while(Bytetemp & 0x80)
-+ {
-+ Bytetemp = rtw_read8(Adapter, EFUSE_CTRL+3);
-+ k++;
-+ if(k==100)
-+ {
-+ k=0;
-+ break;
-+ }
-+ }
-+ }
-+}/* EFUSE_Write1Byte */
-+
-+
+/* 11/16/2008 MH Read one byte from real Efuse. */
+u8
+efuse_OneByteRead(
-+ IN PADAPTER pAdapter,
-+ IN u16 addr,
-+ IN u8 *data,
-+ IN bool bPseudoTest)
++struct adapter *padapter,
++u16 addr,
++u8 *data,
++bool bPseudoTest)
+{
-+ u32 tmpidx = 0;
-+ u8 bResult;
-+ u8 readbyte;
++ u32 tmpidx = 0;
++ u8 bResult;
++ u8 readbyte;
+
-+ //DBG_871X("===> EFUSE_OneByteRead(), addr = %x\n", addr);
-+ //DBG_871X("===> EFUSE_OneByteRead() start, 0x34 = 0x%X\n", rtw_read32(pAdapter, EFUSE_TEST));
++ /* DBG_871X("===> EFUSE_OneByteRead(), addr = %x\n", addr); */
++ /* DBG_871X("===> EFUSE_OneByteRead() start, 0x34 = 0x%X\n", rtw_read32(padapter, EFUSE_TEST)); */
+
-+ if(bPseudoTest)
++ if (bPseudoTest)
+ {
-+ bResult = Efuse_Read1ByteFromFakeContent(pAdapter, addr, data);
++ bResult = Efuse_Read1ByteFromFakeContent(padapter, addr, data);
+ return bResult;
+ }
+
-+ // <20130121, Kordan> For SMIC EFUSE specificatoin.
-+ //0x34[11]: SW force PGMEN input of efuse to high. (for the bank selected by 0x34[9:8])
-+ //PHY_SetMacReg(pAdapter, 0x34, BIT11, 0);
-+ rtw_write16(pAdapter, 0x34, rtw_read16(pAdapter,0x34)& (~BIT11) );
++ /* <20130121, Kordan> For SMIC EFUSE specificatoin. */
++ /* 0x34[11]: SW force PGMEN input of efuse to high. (for the bank selected by 0x34[9:8]) */
++ /* PHY_SetMacReg(padapter, 0x34, BIT11, 0); */
++ rtw_write16(padapter, 0x34, rtw_read16(padapter, 0x34)& (~BIT11));
+
-+ // -----------------e-fuse reg ctrl ---------------------------------
-+ //address
-+ rtw_write8(pAdapter, EFUSE_CTRL+1, (u8)(addr&0xff));
-+ rtw_write8(pAdapter, EFUSE_CTRL+2, ((u8)((addr>>8) &0x03) ) |
-+ (rtw_read8(pAdapter, EFUSE_CTRL+2)&0xFC ));
++ /* -----------------e-fuse reg ctrl --------------------------------- */
++ /* address */
++ rtw_write8(padapter, EFUSE_CTRL+1, (u8)(addr&0xff));
++ rtw_write8(padapter, EFUSE_CTRL+2, ((u8)((addr>>8) &0x03)) |
++ (rtw_read8(padapter, EFUSE_CTRL+2)&0xFC));
+
-+ //rtw_write8(pAdapter, EFUSE_CTRL+3, 0x72);//read cmd
-+ //Write bit 32 0
-+ readbyte = rtw_read8(pAdapter, EFUSE_CTRL+3);
-+ rtw_write8(pAdapter, EFUSE_CTRL+3, (readbyte & 0x7f));
++ /* rtw_write8(padapter, EFUSE_CTRL+3, 0x72); read cmd */
++ /* Write bit 32 0 */
++ readbyte = rtw_read8(padapter, EFUSE_CTRL+3);
++ rtw_write8(padapter, EFUSE_CTRL+3, (readbyte & 0x7f));
+
-+ while(!(0x80 &rtw_read8(pAdapter, EFUSE_CTRL+3))&&(tmpidx<1000))
++ while (!(0x80 &rtw_read8(padapter, EFUSE_CTRL+3)) && (tmpidx<1000))
+ {
+ mdelay(1);
+ tmpidx++;
+ }
-+ if(tmpidx<100)
-+ {
-+ *data=rtw_read8(pAdapter, EFUSE_CTRL);
++ if (tmpidx<100)
++ {
++ *data =rtw_read8(padapter, EFUSE_CTRL);
+ bResult = true;
+ }
+ else
+ {
-+ *data = 0xff;
++ *data = 0xff;
+ bResult = false;
-+ DBG_871X("%s: [ERROR] addr=0x%x bResult=%d time out 1s !!!\n", __FUNCTION__, addr, bResult);
-+ DBG_871X("%s: [ERROR] EFUSE_CTRL =0x%08x !!!\n", __FUNCTION__, rtw_read32(pAdapter, EFUSE_CTRL));
++ DBG_871X("%s: [ERROR] addr = 0x%x bResult =%d time out 1s !!!\n", __func__, addr, bResult);
++ DBG_871X("%s: [ERROR] EFUSE_CTRL = 0x%08x !!!\n", __func__, rtw_read32(padapter, EFUSE_CTRL));
+ }
+
+ return bResult;
+}
-+
++
+/* 11/16/2008 MH Write one byte to reald Efuse. */
+u8
+efuse_OneByteWrite(
-+ IN PADAPTER pAdapter,
-+ IN u16 addr,
-+ IN u8 data,
-+ IN bool bPseudoTest)
++struct adapter *padapter,
++u16 addr,
++u8 data,
++bool bPseudoTest)
+{
-+ u8 tmpidx = 0;
-+ u8 bResult=false;
++ u8 tmpidx = 0;
++ u8 bResult =false;
+ u32 efuseValue = 0;
+
-+ //DBG_871X("===> EFUSE_OneByteWrite(), addr = %x data=%x\n", addr, data);
-+ //DBG_871X("===> EFUSE_OneByteWrite() start, 0x34 = 0x%X\n", rtw_read32(pAdapter, EFUSE_TEST));
++ /* DBG_871X("===> EFUSE_OneByteWrite(), addr = %x data =%x\n", addr, data); */
++ /* DBG_871X("===> EFUSE_OneByteWrite() start, 0x34 = 0x%X\n", rtw_read32(padapter, EFUSE_TEST)); */
+
-+ if(bPseudoTest)
++ if (bPseudoTest)
+ {
-+ bResult = Efuse_Write1ByteToFakeContent(pAdapter, addr, data);
++ bResult = Efuse_Write1ByteToFakeContent(padapter, addr, data);
+ return bResult;
+ }
+
+
-+ // -----------------e-fuse reg ctrl ---------------------------------
-+ //address
++ /* -----------------e-fuse reg ctrl --------------------------------- */
++ /* address */
+
-+
-+ efuseValue = rtw_read32(pAdapter, EFUSE_CTRL);
++
++ efuseValue = rtw_read32(padapter, EFUSE_CTRL);
+ efuseValue |= (BIT21|BIT31);
+ efuseValue &= ~(0x3FFFF);
+ efuseValue |= ((addr<<8 | data) & 0x3FFFF);
+
+
-+ // <20130227, Kordan> 8192E MP chip A-cut had better not set 0x34[11] until B-Cut.
++ /* <20130227, Kordan> 8192E MP chip A-cut had better not set 0x34[11] until B-Cut. */
+
-+ // <20130121, Kordan> For SMIC EFUSE specificatoin.
-+ //0x34[11]: SW force PGMEN input of efuse to high. (for the bank selected by 0x34[9:8])
-+ //PHY_SetMacReg(pAdapter, 0x34, BIT11, 1);
-+ rtw_write16(pAdapter, 0x34, rtw_read16(pAdapter,0x34)| (BIT11) );
-+ rtw_write32(pAdapter, EFUSE_CTRL, 0x90600000|((addr<<8 | data)) );
++ /* <20130121, Kordan> For SMIC EFUSE specificatoin. */
++ /* 0x34[11]: SW force PGMEN input of efuse to high. (for the bank selected by 0x34[9:8]) */
++ /* PHY_SetMacReg(padapter, 0x34, BIT11, 1); */
++ rtw_write16(padapter, 0x34, rtw_read16(padapter, 0x34)| (BIT11));
++ rtw_write32(padapter, EFUSE_CTRL, 0x90600000|((addr<<8 | data)));
+
-+ while((0x80 & rtw_read8(pAdapter, EFUSE_CTRL+3)) && (tmpidx<100) ){
++ while ((0x80 & rtw_read8(padapter, EFUSE_CTRL+3)) && (tmpidx<100)) {
+ mdelay(1);
+ tmpidx++;
+ }
+
-+ if(tmpidx<100)
++ if (tmpidx<100)
+ {
+ bResult = true;
+ }
+ else
+ {
+ bResult = false;
-+ DBG_871X("%s: [ERROR] addr=0x%x ,efuseValue=0x%x ,bResult=%d time out 1s !!! \n",
-+ __FUNCTION__, addr, efuseValue, bResult);
-+ DBG_871X("%s: [ERROR] EFUSE_CTRL =0x%08x !!!\n", __FUNCTION__, rtw_read32(pAdapter, EFUSE_CTRL));
++ DBG_871X("%s: [ERROR] addr = 0x%x , efuseValue = 0x%x , bResult =%d time out 1s !!!\n",
++ __func__, addr, efuseValue, bResult);
++ DBG_871X("%s: [ERROR] EFUSE_CTRL = 0x%08x !!!\n", __func__, rtw_read32(padapter, EFUSE_CTRL));
+ }
+
-+ // disable Efuse program enable
-+ PHY_SetMacReg(pAdapter, EFUSE_TEST, BIT(11), 0);
++ /* disable Efuse program enable */
++ PHY_SetMacReg(padapter, EFUSE_TEST, BIT(11), 0);
+
+ return bResult;
+}
+
+int
-+Efuse_PgPacketRead( IN PADAPTER pAdapter,
-+ IN u8 offset,
-+ IN u8 *data,
-+ IN bool bPseudoTest)
++Efuse_PgPacketRead(struct adapter *padapter,
++ u8 offset,
++ u8 *data,
++ bool bPseudoTest)
+{
-+ int ret=0;
++ int ret = 0;
+
-+ ret = pAdapter->HalFunc.Efuse_PgPacketRead(pAdapter, offset, data, bPseudoTest);
++ ret = padapter->HalFunc.Efuse_PgPacketRead(padapter, offset, data, bPseudoTest);
+
+ return ret;
+}
+
-+int
-+Efuse_PgPacketWrite(IN PADAPTER pAdapter,
-+ IN u8 offset,
-+ IN u8 word_en,
-+ IN u8 *data,
-+ IN bool bPseudoTest)
++int
++Efuse_PgPacketWrite(struct adapter *padapter,
++ u8 offset,
++ u8 word_en,
++ u8 *data,
++ bool bPseudoTest)
+{
+ int ret;
+
-+ ret = pAdapter->HalFunc.Efuse_PgPacketWrite(pAdapter, offset, word_en, data, bPseudoTest);
-+
-+ return ret;
-+}
-+
-+
-+static int
-+Efuse_PgPacketWrite_BT(IN PADAPTER pAdapter,
-+ IN u8 offset,
-+ IN u8 word_en,
-+ IN u8 *data,
-+ IN bool bPseudoTest)
-+{
-+ int ret;
-+
-+ ret = pAdapter->HalFunc.Efuse_PgPacketWrite_BT(pAdapter, offset, word_en, data, bPseudoTest);
++ ret = padapter->HalFunc.Efuse_PgPacketWrite(padapter, offset, word_en, data, bPseudoTest);
+
+ return ret;
+}
@@ -8757,15 +7556,15 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_efuse.c linux/3rdparty/rtl8723b
+ *
+ * Revised History:
+ * When Who Remark
-+ * 11/16/2008 MHC Create Version 0.
-+ * 11/21/2008 MHC Fix Write bug when we only enable late word.
++ * 11/16/2008 MHC Create Version 0.
++ * 11/21/2008 MHC Fix Write bug when we only enable late word.
+ *
+ *---------------------------------------------------------------------------*/
+void
-+efuse_WordEnableDataRead(IN u8 word_en,
-+ IN u8 *sourdata,
-+ IN u8 *targetdata)
-+{
++efuse_WordEnableDataRead(u8 word_en,
++ u8 *sourdata,
++ u8 *targetdata)
++{
+ if (!(word_en&BIT(0)))
+ {
+ targetdata[0] = sourdata[0];
@@ -8790,298 +7589,15 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_efuse.c linux/3rdparty/rtl8723b
+
+
+u8
-+Efuse_WordEnableDataWrite( IN PADAPTER pAdapter,
-+ IN u16 efuse_addr,
-+ IN u8 word_en,
-+ IN u8 *data,
-+ IN bool bPseudoTest)
++Efuse_WordEnableDataWrite(struct adapter *padapter,
++ u16 efuse_addr,
++ u8 word_en,
++ u8 *data,
++ bool bPseudoTest)
+{
-+ u8 ret=0;
++ u8 ret = 0;
+
-+ ret = pAdapter->HalFunc.Efuse_WordEnableDataWrite(pAdapter, efuse_addr, word_en, data, bPseudoTest);
-+
-+ return ret;
-+}
-+
-+static u8 efuse_read8(PADAPTER padapter, u16 address, u8 *value)
-+{
-+ return efuse_OneByteRead(padapter,address, value, false);
-+}
-+
-+static u8 efuse_write8(PADAPTER padapter, u16 address, u8 *value)
-+{
-+ return efuse_OneByteWrite(padapter,address, *value, false);
-+}
-+
-+/*
-+ * read/wirte raw efuse data
-+ */
-+u8 rtw_efuse_access(PADAPTER padapter, u8 bWrite, u16 start_addr, u16 cnts, u8 *data)
-+{
-+ int i = 0;
-+ u16 real_content_len = 0, max_available_size = 0;
-+ u8 res = _FAIL ;
-+ u8 (*rw8)(PADAPTER, u16, u8*);
-+
-+ EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_EFUSE_REAL_CONTENT_LEN, (void *)&real_content_len, false);
-+ EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_AVAILABLE_EFUSE_BYTES_TOTAL, (void *)&max_available_size, false);
-+
-+ if (start_addr > real_content_len)
-+ return _FAIL;
-+
-+ if (true == bWrite) {
-+ if ((start_addr + cnts) > max_available_size)
-+ return _FAIL;
-+ rw8 = &efuse_write8;
-+ } else
-+ rw8 = &efuse_read8;
-+
-+ Efuse_PowerSwitch(padapter, bWrite, true);
-+
-+ // e-fuse one byte read / write
-+ for (i = 0; i < cnts; i++) {
-+ if (start_addr >= real_content_len) {
-+ res = _FAIL;
-+ break;
-+ }
-+
-+ res = rw8(padapter, start_addr++, data++);
-+ if (_FAIL == res) break;
-+ }
-+
-+ Efuse_PowerSwitch(padapter, bWrite, false);
-+
-+ return res;
-+}
-+//------------------------------------------------------------------------------
-+u16 efuse_GetMaxSize(PADAPTER padapter)
-+{
-+ u16 max_size;
-+ EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI , TYPE_AVAILABLE_EFUSE_BYTES_TOTAL, (void *)&max_size, false);
-+ return max_size;
-+}
-+//------------------------------------------------------------------------------
-+u8 efuse_GetCurrentSize(PADAPTER padapter, u16 *size)
-+{
-+ Efuse_PowerSwitch(padapter, false, true);
-+ *size = Efuse_GetCurrentSize(padapter, EFUSE_WIFI, false);
-+ Efuse_PowerSwitch(padapter, false, false);
-+
-+ return _SUCCESS;
-+}
-+//------------------------------------------------------------------------------
-+u8 rtw_efuse_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
-+{
-+ u16 mapLen=0;
-+
-+ EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, false);
-+
-+ if ((addr + cnts) > mapLen)
-+ return _FAIL;
-+
-+ Efuse_PowerSwitch(padapter, false, true);
-+
-+ efuse_ReadEFuse(padapter, EFUSE_WIFI, addr, cnts, data, false);
-+
-+ Efuse_PowerSwitch(padapter, false, false);
-+
-+ return _SUCCESS;
-+}
-+
-+u8 rtw_BT_efuse_map_read(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
-+{
-+ u16 mapLen=0;
-+
-+ EFUSE_GetEfuseDefinition(padapter, EFUSE_BT, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, false);
-+
-+ if ((addr + cnts) > mapLen)
-+ return _FAIL;
-+
-+ Efuse_PowerSwitch(padapter, false, true);
-+
-+ efuse_ReadEFuse(padapter, EFUSE_BT, addr, cnts, data, false);
-+
-+ Efuse_PowerSwitch(padapter, false, false);
-+
-+ return _SUCCESS;
-+}
-+//------------------------------------------------------------------------------
-+u8 rtw_efuse_map_write(PADAPTER padapter, u16 addr, u16 cnts, u8 *data)
-+{
-+#define RT_ASSERT_RET(expr) \
-+ if(!(expr)) { \
-+ printk( "Assertion failed! %s at ......\n", #expr); \
-+ printk( " ......%s,%s,line=%d\n",__FILE__,__FUNCTION__,__LINE__); \
-+ return _FAIL; \
-+ }
-+
-+ u8 offset, word_en;
-+ u8 *map;
-+ u8 newdata[PGPKT_DATA_SIZE];
-+ s32 i, j, idx;
-+ u8 ret = _SUCCESS;
-+ u16 mapLen=0;
-+ EEPROM_EFUSE_PRIV *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter);
-+ HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
-+
-+ EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, false);
-+
-+ if ((addr + cnts) > mapLen)
-+ return _FAIL;
-+
-+ RT_ASSERT_RET(PGPKT_DATA_SIZE == 8); // have to be 8 byte alignment
-+ RT_ASSERT_RET((mapLen & 0x7) == 0); // have to be PGPKT_DATA_SIZE alignment for memcpy
-+
-+ map = rtw_zmalloc(mapLen);
-+ if(map == NULL){
-+ return _FAIL;
-+ }
-+
-+ memset(map, 0xFF, mapLen);
-+
-+ ret = rtw_efuse_map_read(padapter, 0, mapLen, map);
-+ if (ret == _FAIL) goto exit;
-+
-+ Efuse_PowerSwitch(padapter, true, true);
-+
-+ idx = 0;
-+ offset = (addr >> 3);
-+ while (idx < cnts)
-+ {
-+ word_en = 0xF;
-+ j = (addr + idx) & 0x7;
-+ memcpy(newdata, &map[offset << 3], PGPKT_DATA_SIZE);
-+ for (i = j; i> 1);
-+ newdata[i] = data[idx];
-+
-+ if( addr + idx == 0x8)
-+ {
-+ if (IS_C_CUT(pHalData->VersionID) || IS_B_CUT(pHalData->VersionID))
-+ {
-+ if(pEEPROM->adjuseVoltageVal == 6)
-+ {
-+ newdata[i] = map[addr + idx];
-+ DBG_8192C(" %s ,\n adjuseVoltageVal = %d ,newdata[%d] = %x \n",__func__,pEEPROM->adjuseVoltageVal,i,newdata[i]);
-+ }
-+ }
-+ }
-+ }
-+ }
-+
-+ if (word_en != 0xF) {
-+ ret = Efuse_PgPacketWrite(padapter, offset, word_en, newdata, false);
-+ DBG_871X("offset=%x \n",offset);
-+ DBG_871X("word_en=%x \n",word_en);
-+
-+ for(i=0;i mapLen)
-+ return _FAIL;
-+
-+ RT_ASSERT_RET(PGPKT_DATA_SIZE == 8); // have to be 8 byte alignment
-+ RT_ASSERT_RET((mapLen & 0x7) == 0); // have to be PGPKT_DATA_SIZE alignment for memcpy
-+
-+ map = rtw_zmalloc(mapLen);
-+ if(map == NULL){
-+ return _FAIL;
-+ }
-+
-+ ret = rtw_BT_efuse_map_read(padapter, 0, mapLen, map);
-+ if (ret == _FAIL) goto exit;
-+ DBG_871X("OFFSET\tVALUE(hex)\n");
-+ for (i=0; i<1024; i+=16) // set 512 because the iwpriv's extra size have limit 0x7FF
-+ {
-+ DBG_871X("0x%03x\t", i);
-+ for (j=0; j<8; j++) {
-+ DBG_871X("%02X ", map[i+j]);
-+ }
-+ DBG_871X("\t");
-+ for (; j<16; j++) {
-+ DBG_871X("%02X ", map[i+j]);
-+ }
-+ DBG_871X("\n");
-+ }
-+ DBG_871X("\n");
-+ Efuse_PowerSwitch(padapter, true, true);
-+
-+ idx = 0;
-+ offset = (addr >> 3);
-+ while (idx < cnts)
-+ {
-+ word_en = 0xF;
-+ j = (addr + idx) & 0x7;
-+ memcpy(newdata, &map[offset << 3], PGPKT_DATA_SIZE);
-+ for (i = j; i> 1);
-+ newdata[i] = data[idx];
-+ }
-+ }
-+
-+ if (word_en != 0xF) {
-+ DBG_871X("offset=%x \n",offset);
-+ DBG_871X("word_en=%x \n",word_en);
-+ DBG_871X("%s: data=", __FUNCTION__);
-+ for(i=0;iHalFunc.Efuse_WordEnableDataWrite(padapter, efuse_addr, word_en, data, bPseudoTest);
+
+ return ret;
+}
@@ -9099,37 +7615,37 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_efuse.c linux/3rdparty/rtl8723b
+ *
+ * Revised History:
+ * When Who Remark
-+ * 11/11/2008 MHC Create Version 0.
++ * 11/11/2008 MHC Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
-+void
++void
+Efuse_ReadAllMap(
-+ IN PADAPTER pAdapter,
-+ IN u8 efuseType,
-+ IN OUT u8 *Efuse,
-+ IN bool bPseudoTest);
-+void
++ struct adapter *padapter,
++ u8 efuseType,
++ u8 *Efuse,
++ bool bPseudoTest);
++void
+Efuse_ReadAllMap(
-+ IN PADAPTER pAdapter,
-+ IN u8 efuseType,
-+ IN OUT u8 *Efuse,
-+ IN bool bPseudoTest)
++ struct adapter *padapter,
++ u8 efuseType,
++ u8 *Efuse,
++ bool bPseudoTest)
+{
-+ u16 mapLen=0;
++ u16 mapLen = 0;
+
-+ Efuse_PowerSwitch(pAdapter,false, true);
++ Efuse_PowerSwitch(padapter, false, true);
+
-+ EFUSE_GetEfuseDefinition(pAdapter, efuseType, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, bPseudoTest);
++ EFUSE_GetEfuseDefinition(padapter, efuseType, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, bPseudoTest);
+
-+ efuse_ReadEFuse(pAdapter, efuseType, 0, mapLen, Efuse, bPseudoTest);
++ efuse_ReadEFuse(padapter, efuseType, 0, mapLen, Efuse, bPseudoTest);
+
-+ Efuse_PowerSwitch(pAdapter,false, false);
++ Efuse_PowerSwitch(padapter, false, false);
+}
+
+/*-----------------------------------------------------------------------------
+ * Function: efuse_ShadowRead1Byte
-+ * efuse_ShadowRead2Byte
-+ * efuse_ShadowRead4Byte
++ * efuse_ShadowRead2Byte
++ * efuse_ShadowRead4Byte
+ *
+ * Overview: Read from efuse init map by one/two/four bytes !!!!!
+ *
@@ -9141,50 +7657,50 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_efuse.c linux/3rdparty/rtl8723b
+ *
+ * Revised History:
+ * When Who Remark
-+ * 11/12/2008 MHC Create Version 0.
++ * 11/12/2008 MHC Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+static void
+efuse_ShadowRead1Byte(
-+ IN PADAPTER pAdapter,
-+ IN u16 Offset,
-+ IN OUT u8 *Value)
++struct adapter *padapter,
++u16 Offset,
++ u8 *Value)
+{
-+ EEPROM_EFUSE_PRIV *pEEPROM = GET_EEPROM_EFUSE_PRIV(pAdapter);
++ struct eeprom_priv *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter);
+
+ *Value = pEEPROM->efuse_eeprom_data[Offset];
+
-+} // EFUSE_ShadowRead1Byte
++} /* EFUSE_ShadowRead1Byte */
+
-+//---------------Read Two Bytes
++/* Read Two Bytes */
+static void
+efuse_ShadowRead2Byte(
-+ IN PADAPTER pAdapter,
-+ IN u16 Offset,
-+ IN OUT u16 *Value)
++struct adapter *padapter,
++u16 Offset,
++ u16 *Value)
+{
-+ EEPROM_EFUSE_PRIV *pEEPROM = GET_EEPROM_EFUSE_PRIV(pAdapter);
++ struct eeprom_priv *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter);
+
+ *Value = pEEPROM->efuse_eeprom_data[Offset];
+ *Value |= pEEPROM->efuse_eeprom_data[Offset+1]<<8;
+
-+} // EFUSE_ShadowRead2Byte
++} /* EFUSE_ShadowRead2Byte */
+
-+//---------------Read Four Bytes
++/* Read Four Bytes */
+static void
+efuse_ShadowRead4Byte(
-+ IN PADAPTER pAdapter,
-+ IN u16 Offset,
-+ IN OUT u32 *Value)
++struct adapter *padapter,
++u16 Offset,
++ u32 *Value)
+{
-+ EEPROM_EFUSE_PRIV *pEEPROM = GET_EEPROM_EFUSE_PRIV(pAdapter);
++ struct eeprom_priv *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter);
+
+ *Value = pEEPROM->efuse_eeprom_data[Offset];
+ *Value |= pEEPROM->efuse_eeprom_data[Offset+1]<<8;
+ *Value |= pEEPROM->efuse_eeprom_data[Offset+2]<<16;
+ *Value |= pEEPROM->efuse_eeprom_data[Offset+3]<<24;
+
-+} // efuse_ShadowRead4Byte
++} /* efuse_ShadowRead4Byte */
+
+/*-----------------------------------------------------------------------------
+ * Function: EFUSE_ShadowMapUpdate
@@ -9199,18 +7715,18 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_efuse.c linux/3rdparty/rtl8723b
+ *
+ * Revised History:
+ * When Who Remark
-+ * 11/13/2008 MHC Create Version 0.
++ * 11/13/2008 MHC Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+void EFUSE_ShadowMapUpdate(
-+ IN PADAPTER pAdapter,
-+ IN u8 efuseType,
-+ IN bool bPseudoTest)
++ struct adapter *padapter,
++ u8 efuseType,
++ bool bPseudoTest)
+{
-+ EEPROM_EFUSE_PRIV *pEEPROM = GET_EEPROM_EFUSE_PRIV(pAdapter);
-+ u16 mapLen=0;
++ struct eeprom_priv *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter);
++ u16 mapLen = 0;
+
-+ EFUSE_GetEfuseDefinition(pAdapter, efuseType, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, bPseudoTest);
++ EFUSE_GetEfuseDefinition(padapter, efuseType, TYPE_EFUSE_MAP_LEN, (void *)&mapLen, bPseudoTest);
+
+ if (pEEPROM->bautoload_fail_flag == true)
+ {
@@ -9218,12 +7734,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_efuse.c linux/3rdparty/rtl8723b
+ }
+ else
+ {
-+ Efuse_ReadAllMap(pAdapter, efuseType, pEEPROM->efuse_eeprom_data, bPseudoTest);
++ Efuse_ReadAllMap(padapter, efuseType, pEEPROM->efuse_eeprom_data, bPseudoTest);
+ }
+
-+ //PlatformMoveMemory((void *)&pHalData->EfuseMap[EFUSE_MODIFY_MAP][0],
-+ //(void *)&pHalData->EfuseMap[EFUSE_INIT_MAP][0], mapLen);
-+}// EFUSE_ShadowMapUpdate
++ /* PlatformMoveMemory((void *)&pHalData->EfuseMap[EFUSE_MODIFY_MAP][0], */
++ /* void *)&pHalData->EfuseMap[EFUSE_INIT_MAP][0], mapLen); */
++}/* EFUSE_ShadowMapUpdate */
+
+
+/*-----------------------------------------------------------------------------
@@ -9239,94 +7755,32 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_efuse.c linux/3rdparty/rtl8723b
+ *
+ * Revised History:
+ * When Who Remark
-+ * 11/12/2008 MHC Create Version 0.
++ * 11/12/2008 MHC Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+void
+EFUSE_ShadowRead(
-+ IN PADAPTER pAdapter,
-+ IN u8 Type,
-+ IN u16 Offset,
-+ IN OUT u32 *Value )
++ struct adapter *padapter,
++ u8 Type,
++ u16 Offset,
++ u32 *Value )
+{
+ if (Type == 1)
-+ efuse_ShadowRead1Byte(pAdapter, Offset, (u8 *)Value);
++ efuse_ShadowRead1Byte(padapter, Offset, (u8 *)Value);
+ else if (Type == 2)
-+ efuse_ShadowRead2Byte(pAdapter, Offset, (u16 *)Value);
++ efuse_ShadowRead2Byte(padapter, Offset, (u16 *)Value);
+ else if (Type == 4)
-+ efuse_ShadowRead4Byte(pAdapter, Offset, (u32 *)Value);
-+
++ efuse_ShadowRead4Byte(padapter, Offset, (u32 *)Value);
++
+} // EFUSE_ShadowRead
-+
-+/*-----------------------------------------------------------------------------
-+ * Function: EFUSE_ShadowWrite
-+ *
-+ * Overview: Write efuse modify map for later update operation to use!!!!!
-+ *
-+ * Input: NONE
-+ *
-+ * Output: NONE
-+ *
-+ * Return: NONE
-+ *
-+ * Revised History:
-+ * When Who Remark
-+ * 11/12/2008 MHC Create Version 0.
-+ *
-+ *---------------------------------------------------------------------------*/
-+void
-+EFUSE_ShadowWrite(
-+ IN PADAPTER pAdapter,
-+ IN u8 Type,
-+ IN u16 Offset,
-+ IN OUT u32 Value);
-+void
-+EFUSE_ShadowWrite(
-+ IN PADAPTER pAdapter,
-+ IN u8 Type,
-+ IN u16 Offset,
-+ IN OUT u32 Value)
-+{
-+ return;
-+} // EFUSE_ShadowWrite
-+
-+void
-+Efuse_InitSomeVar(
-+ IN PADAPTER pAdapter
-+ );
-+void
-+Efuse_InitSomeVar(
-+ IN PADAPTER pAdapter
-+ )
-+{
-+ u8 i;
-+
-+ memset((void *)&fakeEfuseContent[0], 0xff, EFUSE_MAX_HW_SIZE);
-+ memset((void *)&fakeEfuseInitMap[0], 0xff, EFUSE_MAX_MAP_LEN);
-+ memset((void *)&fakeEfuseModifiedMap[0], 0xff, EFUSE_MAX_MAP_LEN);
-+
-+ for(i=0; i
++#include
+
+
+u8 RTW_WPA_OUI_TYPE[] = { 0x00, 0x50, 0xf2, 1 };
@@ -9368,17 +7818,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+u8 RSN_CIPHER_SUITE_WRAP[] = { 0x00, 0x0f, 0xac, 3 };
+u8 RSN_CIPHER_SUITE_CCMP[] = { 0x00, 0x0f, 0xac, 4 };
+u8 RSN_CIPHER_SUITE_WEP104[] = { 0x00, 0x0f, 0xac, 5 };
-+//-----------------------------------------------------------
-+// for adhoc-master to generate ie and provide supported-rate to fw
-+//-----------------------------------------------------------
++/* */
++/* for adhoc-master to generate ie and provide supported-rate to fw */
++/* */
+
-+static u8 WIFI_CCKRATES[] =
++static u8 WIFI_CCKRATES[] =
+{(IEEE80211_CCK_RATE_1MB | IEEE80211_BASIC_RATE_MASK),
+ (IEEE80211_CCK_RATE_2MB | IEEE80211_BASIC_RATE_MASK),
+ (IEEE80211_CCK_RATE_5MB | IEEE80211_BASIC_RATE_MASK),
+ (IEEE80211_CCK_RATE_11MB | IEEE80211_BASIC_RATE_MASK)};
+
-+static u8 WIFI_OFDMRATES[] =
++static u8 WIFI_OFDMRATES[] =
+{(IEEE80211_OFDM_RATE_6MB),
+ (IEEE80211_OFDM_RATE_9MB),
+ (IEEE80211_OFDM_RATE_12MB),
@@ -9391,10 +7841,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+
+int rtw_get_bit_value_from_ieee_value(u8 val)
+{
-+ unsigned char dot11_rate_table[]={2,4,11,22,12,18,24,36,48,72,96,108,0}; // last element must be zero!!
++ unsigned char dot11_rate_table[]={2, 4, 11, 22, 12, 18, 24, 36, 48, 72, 96, 108, 0}; /* last element must be zero!! */
+
-+ int i=0;
-+ while(dot11_rate_table[i] != 0) {
++ int i = 0;
++ while (dot11_rate_table[i] != 0) {
+ if (dot11_rate_table[i] == val)
+ return BIT(i);
+ i++;
@@ -9403,17 +7853,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+}
+
+uint rtw_is_cckrates_included(u8 *rate)
-+{
-+ u32 i = 0;
++{
++ u32 i = 0;
+
-+ while(rate[i]!=0)
-+ {
-+ if ( (((rate[i]) & 0x7f) == 2) || (((rate[i]) & 0x7f) == 4) ||
-+ (((rate[i]) & 0x7f) == 11) || (((rate[i]) & 0x7f) == 22) )
-+ return true;
++ while (rate[i]!= 0)
++ {
++ if ((((rate[i]) & 0x7f) == 2) || (((rate[i]) & 0x7f) == 4) ||
++ (((rate[i]) & 0x7f) == 11) || (((rate[i]) & 0x7f) == 22))
++ return true;
+ i++;
+ }
-+
++
+ return false;
+}
+
@@ -9422,16 +7872,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+ u32 i = 0;
+
+
-+ while(rate[i]!=0)
++ while (rate[i]!= 0)
+ {
-+ if ( (((rate[i]) & 0x7f) != 2) && (((rate[i]) & 0x7f) != 4) &&
-+ (((rate[i]) & 0x7f) != 11) && (((rate[i]) & 0x7f) != 22) )
++ if ((((rate[i]) & 0x7f) != 2) && (((rate[i]) & 0x7f) != 4) &&
++ (((rate[i]) & 0x7f) != 11) && (((rate[i]) & 0x7f) != 22))
+
-+ return false;
++ return false;
+
+ i++;
+ }
-+
++
+ return true;
+
+}
@@ -9444,17 +7894,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+ return WIRELESS_INVALID;
+ else
+ return WIRELESS_11A;
-+ }
-+ else // could be pure B, pure G, or B/G
++ }
++ else /* could be pure B, pure G, or B/G */
+ {
-+ if ((rtw_is_cckratesonly_included(rate)) == true)
++ if ((rtw_is_cckratesonly_included(rate)) == true)
+ return WIRELESS_11B;
-+ else if((rtw_is_cckrates_included(rate)) == true)
-+ return WIRELESS_11BG;
++ else if ((rtw_is_cckrates_included(rate)) == true)
++ return WIRELESS_11BG;
+ else
+ return WIRELESS_11G;
+ }
-+
++
+}
+
+u8 *rtw_set_fixed_ie(unsigned char *pbuf, unsigned int len, unsigned char *source,
@@ -9465,81 +7915,26 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+ return (pbuf + len);
+}
+
-+// rtw_set_ie will update frame length
++/* rtw_set_ie will update frame length */
+u8 *rtw_set_ie
+(
-+ u8 *pbuf,
-+ sint index,
++ u8 *pbuf,
++ sint index,
+ uint len,
-+ u8 *source,
-+ uint *frlen //frame length
++ u8 *source,
++ uint *frlen /* frame length */
+)
+{
-+_func_enter_;
+ *pbuf = (u8)index;
+
+ *(pbuf + 1) = (u8)len;
+
+ if (len > 0)
+ memcpy((void *)(pbuf + 2), (void *)source, len);
-+
++
+ *frlen = *frlen + (len + 2);
-+
++
+ return (pbuf + len + 2);
-+_func_exit_;
-+}
-+
-+inline u8 *rtw_set_ie_ch_switch(u8 *buf, u32 *buf_len, u8 ch_switch_mode,
-+ u8 new_ch, u8 ch_switch_cnt)
-+{
-+ u8 ie_data[3];
-+
-+ ie_data[0] = ch_switch_mode;
-+ ie_data[1] = new_ch;
-+ ie_data[2] = ch_switch_cnt;
-+ return rtw_set_ie(buf, WLAN_EID_CHANNEL_SWITCH, 3, ie_data, buf_len);
-+}
-+
-+inline u8 secondary_ch_offset_to_hal_ch_offset(u8 ch_offset)
-+{
-+ if (ch_offset == SCN)
-+ return HAL_PRIME_CHNL_OFFSET_DONT_CARE;
-+ else if(ch_offset == SCA)
-+ return HAL_PRIME_CHNL_OFFSET_UPPER;
-+ else if(ch_offset == SCB)
-+ return HAL_PRIME_CHNL_OFFSET_LOWER;
-+
-+ return HAL_PRIME_CHNL_OFFSET_DONT_CARE;
-+}
-+
-+inline u8 hal_ch_offset_to_secondary_ch_offset(u8 ch_offset)
-+{
-+ if (ch_offset == HAL_PRIME_CHNL_OFFSET_DONT_CARE)
-+ return SCN;
-+ else if(ch_offset == HAL_PRIME_CHNL_OFFSET_LOWER)
-+ return SCB;
-+ else if(ch_offset == HAL_PRIME_CHNL_OFFSET_UPPER)
-+ return SCA;
-+
-+ return SCN;
-+}
-+
-+inline u8 *rtw_set_ie_secondary_ch_offset(u8 *buf, u32 *buf_len, u8 secondary_ch_offset)
-+{
-+ return rtw_set_ie(buf, WLAN_EID_SECONDARY_CHANNEL_OFFSET, 1, &secondary_ch_offset, buf_len);
-+}
-+
-+inline u8 *rtw_set_ie_mesh_ch_switch_parm(u8 *buf, u32 *buf_len, u8 ttl,
-+ u8 flags, u16 reason, u16 precedence)
-+{
-+ u8 ie_data[6];
-+
-+ ie_data[0] = ttl;
-+ ie_data[1] = flags;
-+ RTW_PUT_LE16((u8*)&ie_data[2], reason);
-+ RTW_PUT_LE16((u8*)&ie_data[4], precedence);
-+
-+ return rtw_set_ie(buf, 0x118, 6, ie_data, buf_len);
+}
+
+/*----------------------------------------------------------------------------
@@ -9547,18 +7942,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+-----------------------------------------------------------------------------*/
+u8 *rtw_get_ie(u8 *pbuf, sint index, sint *len, sint limit)
+{
-+ sint tmp,i;
++ sint tmp, i;
+ u8 *p;
-+_func_enter_;
-+ if (limit < 1){
-+ _func_exit_;
++
++ if (limit < 1) {
+ return NULL;
+ }
+
+ p = pbuf;
+ i = 0;
+ *len = 0;
-+ while(1)
++ while (1)
+ {
+ if (*p == index)
+ {
@@ -9574,7 +7968,6 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+ if (i >= limit)
+ break;
+ }
-+_func_exit_;
+ return NULL;
+}
+
@@ -9596,35 +7989,35 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+ u8 *target_ie = NULL;
+
+
-+ if(ielen)
++ if (ielen)
+ *ielen = 0;
+
-+ if(!in_ie || in_len<=0)
++ if (!in_ie || in_len<= 0)
+ return target_ie;
+
+ cnt = 0;
+
-+ while(cnt 12)
+ break;
-+
-+ i++;
++
++ i++;
+ }
-+_func_exit_;
+ return i;
+}
+
+int rtw_generate_ie(struct registry_priv *pregistrypriv)
+{
-+ u8 wireless_mode;
-+ int sz = 0, rateLen;
-+ WLAN_BSSID_EX* pdev_network = &pregistrypriv->dev_network;
-+ u8* ie = pdev_network->IEs;
-+
-+_func_enter_;
++ u8 wireless_mode;
++ int sz = 0, rateLen;
++ struct wlan_bssid_ex*pdev_network = &pregistrypriv->dev_network;
++ u8*ie = pdev_network->IEs;
+
-+ //timestamp will be inserted by hardware
-+ sz += 8;
++ /* timestamp will be inserted by hardware */
++ sz += 8;
+ ie += sz;
-+
-+ //beacon interval : 2bytes
-+ *(u16*)ie = cpu_to_le16((u16)pdev_network->Configuration.BeaconPeriod);//BCN_INTERVAL;
-+ sz += 2;
-+ ie += 2;
-+
-+ //capability info
-+ *(u16*)ie = 0;
-+
-+ *(u16*)ie |= cpu_to_le16(cap_IBSS);
+
-+ if(pregistrypriv->preamble == PREAMBLE_SHORT)
-+ *(u16*)ie |= cpu_to_le16(cap_ShortPremble);
-+
-+ if (pdev_network->Privacy)
-+ *(u16*)ie |= cpu_to_le16(cap_Privacy);
-+
++ /* beacon interval : 2bytes */
++ *(__le16*)ie = cpu_to_le16((u16)pdev_network->Configuration.BeaconPeriod);/* BCN_INTERVAL; */
+ sz += 2;
+ ie += 2;
-+
-+ //SSID
++
++ /* capability info */
++ *(u16*)ie = 0;
++
++ *(__le16*)ie |= cpu_to_le16(cap_IBSS);
++
++ if (pregistrypriv->preamble == PREAMBLE_SHORT)
++ *(__le16*)ie |= cpu_to_le16(cap_ShortPremble);
++
++ if (pdev_network->Privacy)
++ *(__le16*)ie |= cpu_to_le16(cap_Privacy);
++
++ sz += 2;
++ ie += 2;
++
++ /* SSID */
+ ie = rtw_set_ie(ie, _SSID_IE_, pdev_network->Ssid.SsidLength, pdev_network->Ssid.Ssid, &sz);
-+
-+ //supported rates
-+ if(pregistrypriv->wireless_mode == WIRELESS_11ABGN)
++
++ /* supported rates */
++ if (pregistrypriv->wireless_mode == WIRELESS_11ABGN)
+ {
-+ if(pdev_network->Configuration.DSConfig > 14)
++ if (pdev_network->Configuration.DSConfig > 14)
+ wireless_mode = WIRELESS_11A_5N;
+ else
+ wireless_mode = WIRELESS_11BG_24N;
@@ -9773,49 +8160,46 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+ {
+ wireless_mode = pregistrypriv->wireless_mode;
+ }
-+
++
+ rtw_set_supported_rate(pdev_network->SupportedRates, wireless_mode) ;
-+
++
+ rateLen = rtw_get_rateset_len(pdev_network->SupportedRates);
+
+ if (rateLen > 8)
+ {
+ ie = rtw_set_ie(ie, _SUPPORTEDRATES_IE_, 8, pdev_network->SupportedRates, &sz);
-+ //ie = rtw_set_ie(ie, _EXT_SUPPORTEDRATES_IE_, (rateLen - 8), (pdev_network->SupportedRates + 8), &sz);
++ /* ie = rtw_set_ie(ie, _EXT_SUPPORTEDRATES_IE_, (rateLen - 8), (pdev_network->SupportedRates + 8), &sz); */
+ }
+ else
+ {
+ ie = rtw_set_ie(ie, _SUPPORTEDRATES_IE_, rateLen, pdev_network->SupportedRates, &sz);
+ }
+
-+ //DS parameter set
++ /* DS parameter set */
+ ie = rtw_set_ie(ie, _DSSET_IE_, 1, (u8 *)&(pdev_network->Configuration.DSConfig), &sz);
+
+
-+ //IBSS Parameter Set
-+
++ /* IBSS Parameter Set */
++
+ ie = rtw_set_ie(ie, _IBSS_PARA_IE_, 2, (u8 *)&(pdev_network->Configuration.ATIMWindow), &sz);
+
+ if (rateLen > 8)
-+ {
++ {
+ ie = rtw_set_ie(ie, _EXT_SUPPORTEDRATES_IE_, (rateLen - 8), (pdev_network->SupportedRates + 8), &sz);
+ }
-+
-+ //HT Cap.
-+ if(((pregistrypriv->wireless_mode&WIRELESS_11_5N)||(pregistrypriv->wireless_mode&WIRELESS_11_24N))
-+ && (pregistrypriv->ht_enable==true))
++
++ /* HT Cap. */
++ if (((pregistrypriv->wireless_mode&WIRELESS_11_5N)||(pregistrypriv->wireless_mode&WIRELESS_11_24N))
++ && (pregistrypriv->ht_enable ==true))
+ {
-+ //todo:
++ /* todo: */
+ }
+
-+ //pdev_network->IELength = sz; //update IELength
++ /* pdev_network->IELength = sz; update IELength */
+
-+_func_exit_;
-+
-+ //return _SUCCESS;
++ /* return _SUCCESS; */
+
+ return sz;
-+
+}
+
+unsigned char *rtw_get_wpa_ie(unsigned char *pie, int *wpa_ie_len, int limit)
@@ -9825,23 +8209,24 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+ unsigned char wpa_oui_type[] = {0x00, 0x50, 0xf2, 0x01};
+ u8 *pbuf = pie;
+ int limit_new = limit;
++ __le16 le_tmp;
+
-+ while(1)
++ while (1)
+ {
+ pbuf = rtw_get_ie(pbuf, _WPA_IE_ID_, &len, limit_new);
+
+ if (pbuf) {
+
-+ //check if oui matches...
++ /* check if oui matches... */
+ if (memcmp((pbuf + 2), wpa_oui_type, sizeof (wpa_oui_type))) {
+
+ goto check_next_ie;
+ }
+
-+ //check version...
-+ memcpy((u8 *)&val16, (pbuf + 6), sizeof(val16));
++ /* check version... */
++ memcpy((u8 *)&le_tmp, (pbuf + 6), sizeof(val16));
+
-+ val16 = le16_to_cpu(val16);
++ val16 = le16_to_cpu(le_tmp);
+ if (val16 != 0x0001)
+ goto check_next_ie;
+
@@ -9874,9 +8259,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+}
+
+unsigned char *rtw_get_wpa2_ie(unsigned char *pie, int *rsn_ie_len, int limit)
-+{
++{
+
-+ return rtw_get_ie(pie, _WPA2_IE_ID_,rsn_ie_len, limit);
++ return rtw_get_ie(pie, _WPA2_IE_ID_, rsn_ie_len, limit);
+
+}
+
@@ -9913,9 +8298,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+}
+
+
-+int rtw_parse_wpa_ie(u8* wpa_ie, int wpa_ie_len, int *group_cipher, int *pairwise_cipher, int *is_8021x)
++int rtw_parse_wpa_ie(u8 *wpa_ie, int wpa_ie_len, int *group_cipher, int *pairwise_cipher, int *is_8021x)
+{
-+ int i, ret=_SUCCESS;
++ int i, ret = _SUCCESS;
+ int left, count;
+ u8 *pos;
+ u8 SUITE_1X[4] = {0x00, 0x50, 0xf2, 1};
@@ -9925,62 +8310,62 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+ return _FAIL;
+ }
+
-+
++
+ if ((*wpa_ie != _WPA_IE_ID_) || (*(wpa_ie+1) != (u8)(wpa_ie_len - 2)) ||
-+ (memcmp(wpa_ie+2, RTW_WPA_OUI_TYPE, WPA_SELECTOR_LEN)) )
-+ {
++ (memcmp(wpa_ie+2, RTW_WPA_OUI_TYPE, WPA_SELECTOR_LEN)))
++ {
+ return _FAIL;
+ }
+
+ pos = wpa_ie;
+
+ pos += 8;
-+ left = wpa_ie_len - 8;
++ left = wpa_ie_len - 8;
+
+
-+ //group_cipher
++ /* group_cipher */
+ if (left >= WPA_SELECTOR_LEN) {
+
+ *group_cipher = rtw_get_wpa_cipher_suite(pos);
-+
++
+ pos += WPA_SELECTOR_LEN;
+ left -= WPA_SELECTOR_LEN;
-+
-+ }
++
++ }
+ else if (left > 0)
+ {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("%s: ie length mismatch, %u too much", __FUNCTION__, left));
-+
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("%s: ie length mismatch, %u too much", __func__, left));
++
+ return _FAIL;
+ }
+
+
-+ //pairwise_cipher
++ /* pairwise_cipher */
+ if (left >= 2)
-+ {
-+ //count = le16_to_cpu(*(u16*)pos);
++ {
++ /* count = le16_to_cpu(*(u16*)pos); */
+ count = RTW_GET_LE16(pos);
+ pos += 2;
+ left -= 2;
-+
++
+ if (count == 0 || left < count * WPA_SELECTOR_LEN) {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("%s: ie count botch (pairwise), "
-+ "count %u left %u", __FUNCTION__, count, left));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("%s: ie count botch (pairwise), "
++ "count %u left %u", __func__, count, left));
+ return _FAIL;
+ }
-+
++
+ for (i = 0; i < count; i++)
+ {
+ *pairwise_cipher |= rtw_get_wpa_cipher_suite(pos);
-+
++
+ pos += WPA_SELECTOR_LEN;
+ left -= WPA_SELECTOR_LEN;
+ }
-+
-+ }
++
++ }
+ else if (left == 1)
+ {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("%s: ie too short (for key mgmt)", __FUNCTION__));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("%s: ie too short (for key mgmt)", __func__));
+ return _FAIL;
+ }
+
@@ -9988,22 +8373,22 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+ if (left >= 6) {
+ pos += 2;
+ if (!memcmp(pos, SUITE_1X, 4)) {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("%s : there has 802.1x auth\n", __FUNCTION__));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("%s : there has 802.1x auth\n", __func__));
+ *is_8021x = 1;
+ }
+ }
+ }
-+
++
+ return ret;
-+
++
+}
+
-+int rtw_parse_wpa2_ie(u8* rsn_ie, int rsn_ie_len, int *group_cipher, int *pairwise_cipher, int *is_8021x)
++int rtw_parse_wpa2_ie(u8 *rsn_ie, int rsn_ie_len, int *group_cipher, int *pairwise_cipher, int *is_8021x)
+{
-+ int i, ret=_SUCCESS;
++ int i, ret = _SUCCESS;
+ int left, count;
+ u8 *pos;
-+ u8 SUITE_1X[4] = {0x00,0x0f, 0xac, 0x01};
++ u8 SUITE_1X[4] = {0x00, 0x0f, 0xac, 0x01};
+
+ if (rsn_ie_len <= 0) {
+ /* No RSN IE - fail silently */
@@ -10012,54 +8397,54 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+
+
+ if ((*rsn_ie!= _WPA2_IE_ID_) || (*(rsn_ie+1) != (u8)(rsn_ie_len - 2)))
-+ {
++ {
+ return _FAIL;
+ }
-+
++
+ pos = rsn_ie;
+ pos += 4;
-+ left = rsn_ie_len - 4;
++ left = rsn_ie_len - 4;
+
-+ //group_cipher
++ /* group_cipher */
+ if (left >= RSN_SELECTOR_LEN) {
+
+ *group_cipher = rtw_get_wpa2_cipher_suite(pos);
-+
++
+ pos += RSN_SELECTOR_LEN;
+ left -= RSN_SELECTOR_LEN;
-+
++
+ } else if (left > 0) {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("%s: ie length mismatch, %u too much", __FUNCTION__, left));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("%s: ie length mismatch, %u too much", __func__, left));
+ return _FAIL;
+ }
+
-+ //pairwise_cipher
++ /* pairwise_cipher */
+ if (left >= 2)
-+ {
-+ //count = le16_to_cpu(*(u16*)pos);
++ {
++ /* count = le16_to_cpu(*(u16*)pos); */
+ count = RTW_GET_LE16(pos);
+ pos += 2;
+ left -= 2;
+
+ if (count == 0 || left < count * RSN_SELECTOR_LEN) {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("%s: ie count botch (pairwise), "
-+ "count %u left %u", __FUNCTION__, count, left));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("%s: ie count botch (pairwise), "
++ "count %u left %u", __func__, count, left));
+ return _FAIL;
+ }
-+
++
+ for (i = 0; i < count; i++)
-+ {
++ {
+ *pairwise_cipher |= rtw_get_wpa2_cipher_suite(pos);
-+
++
+ pos += RSN_SELECTOR_LEN;
+ left -= RSN_SELECTOR_LEN;
+ }
+
-+ }
++ }
+ else if (left == 1)
+ {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("%s: ie too short (for key mgmt)", __FUNCTION__));
-+
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("%s: ie too short (for key mgmt)", __func__));
++
+ return _FAIL;
+ }
+
@@ -10067,180 +8452,146 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+ if (left >= 6) {
+ pos += 2;
+ if (!memcmp(pos, SUITE_1X, 4)) {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("%s (): there has 802.1x auth\n", __FUNCTION__));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("%s (): there has 802.1x auth\n", __func__));
+ *is_8021x = 1;
+ }
+ }
+ }
+
+ return ret;
-+
++
+}
+
-+//#ifdef CONFIG_WAPI_SUPPORT
-+int rtw_get_wapi_ie(u8 *in_ie,uint in_len,u8 *wapi_ie,u16 *wapi_len)
++/* ifdef CONFIG_WAPI_SUPPORT */
++int rtw_get_wapi_ie(u8 *in_ie, uint in_len, u8 *wapi_ie, u16 *wapi_len)
+{
+ int len = 0;
+ u8 authmode, i;
-+ uint cnt;
-+ u8 wapi_oui1[4]={0x0,0x14,0x72,0x01};
-+ u8 wapi_oui2[4]={0x0,0x14,0x72,0x02};
++ uint cnt;
++ u8 wapi_oui1[4]={0x0, 0x14, 0x72, 0x01};
++ u8 wapi_oui2[4]={0x0, 0x14, 0x72, 0x02};
+
-+_func_enter_;
-+
-+ if(wapi_len)
++ if (wapi_len)
+ *wapi_len = 0;
+
-+ if(!in_ie || in_len<=0)
++ if (!in_ie || in_len<= 0)
+ return len;
+
+ cnt = (_TIMESTAMP_ + _BEACON_ITERVAL_ + _CAPABILITY_);
-+
-+ while(cnt found WPS_IE.....\n");
-+ *wps_ielen = ie_ptr[1]+2;
-+ match=true;
-+ }
-+ return match;
-+}
-+
-+u8 *rtw_get_wps_ie_from_scan_queue(u8 *in_ie, uint in_len, u8 *wps_ie, uint *wps_ielen, u8 frame_type)
+{
-+ u8* wps = NULL;
++ u8 match = false;
++ u8 eid, wps_oui[4]={0x0, 0x50, 0xf2, 0x04};
+
-+ DBG_871X( "[%s] frame_type = %d\n", __FUNCTION__, frame_type );
-+ switch( frame_type )
-+ {
-+ case 1:
-+ case 3:
-+ { // Beacon or Probe Response
-+ wps = rtw_get_wps_ie(in_ie + _PROBERSP_IE_OFFSET_, in_len - _PROBERSP_IE_OFFSET_, wps_ie, wps_ielen);
-+ break;
-+ }
-+ case 2:
-+ { // Probe Request
-+ wps = rtw_get_wps_ie(in_ie + _PROBEREQ_IE_OFFSET_ , in_len - _PROBEREQ_IE_OFFSET_ , wps_ie, wps_ielen);
-+ break;
-+ }
++ if (ie_ptr == NULL) return match;
++
++ eid = ie_ptr[0];
++
++ if ((eid == _WPA_IE_ID_) && (!memcmp(&ie_ptr[2], wps_oui, 4))) {
++ /* DBG_8192C("==> found WPS_IE.....\n"); */
++ *wps_ielen = ie_ptr[1]+2;
++ match =true;
+ }
-+ return wps;
++ return match;
+}
+
+/**
@@ -10255,41 +8606,41 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+u8 *rtw_get_wps_ie(u8 *in_ie, uint in_len, u8 *wps_ie, uint *wps_ielen)
+{
+ uint cnt;
-+ u8 *wpsie_ptr=NULL;
-+ u8 eid, wps_oui[4]={0x0,0x50,0xf2,0x04};
++ u8 *wpsie_ptr = NULL;
++ u8 eid, wps_oui[4]={0x0, 0x50, 0xf2, 0x04};
+
-+ if(wps_ielen)
++ if (wps_ielen)
+ *wps_ielen = 0;
+
-+ if(!in_ie || in_len<=0)
++ if (!in_ie || in_len<= 0)
+ return wpsie_ptr;
+
+ cnt = 0;
+
-+ while(cnt left) {
+ if (show_errors) {
+ DBG_871X("IEEE 802.11 element "
-+ "parse failed (id=%d elen=%d "
-+ "left=%lu)\n",
-+ id, elen, (unsigned long) left);
++ "parse failed (id =%d elen =%d "
++ "left =%lu)\n",
++ id, elen, (unsigned long) left);
+ }
+ return ParseFailed;
+ }
@@ -10614,7 +8965,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+ if (!show_errors)
+ break;
+ DBG_871X("IEEE 802.11 element parse "
-+ "ignored unknown element (id=%d elen=%d)\n",
++ "ignored unknown element (id =%d elen =%d)\n",
+ id, elen);
+ break;
+ }
@@ -10627,74 +8978,52 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+ return ParseFailed;
+
+ return unknown ? ParseUnknown : ParseOK;
-+
++
+}
+
+static u8 key_char2num(u8 ch);
+static u8 key_char2num(u8 ch)
+{
-+ if((ch>='0')&&(ch<='9'))
++ if ((ch>='0') && (ch<='9'))
+ return ch - '0';
-+ else if ((ch>='a')&&(ch<='f'))
++ else if ((ch>='a') && (ch<='f'))
+ return ch - 'a' + 10;
-+ else if ((ch>='A')&&(ch<='F'))
++ else if ((ch>='A') && (ch<='F'))
+ return ch - 'A' + 10;
+ else
+ return 0xff;
+}
+
-+u8 str_2char2num(u8 hch, u8 lch);
-+u8 str_2char2num(u8 hch, u8 lch)
-+{
-+ return ((key_char2num(hch) * 10 ) + key_char2num(lch));
-+}
-+
+u8 key_2char2num(u8 hch, u8 lch);
+u8 key_2char2num(u8 hch, u8 lch)
+{
+ return ((key_char2num(hch) << 4) | key_char2num(lch));
+}
+
-+void macstr2num(u8 *dst, u8 *src);
-+void macstr2num(u8 *dst, u8 *src)
-+{
-+ int jj, kk;
-+ for (jj = 0, kk = 0; jj < ETH_ALEN; jj++, kk += 3)
-+ {
-+ dst[jj] = key_2char2num(src[kk], src[kk + 1]);
-+ }
-+}
-+
-+u8 convert_ip_addr(u8 hch, u8 mch, u8 lch)
-+{
-+ return ((key_char2num(hch) * 100) + (key_char2num(mch) * 10 ) + key_char2num(lch));
-+}
-+
-+extern char* rtw_initmac;
+void rtw_macaddr_cfg(u8 *mac_addr)
+{
+ u8 mac[ETH_ALEN];
-+ if(mac_addr == NULL) return;
-+
-+ if ( rtw_initmac )
-+ { // Users specify the mac address
-+ int jj,kk;
++ if (mac_addr == NULL) return;
+
-+ for( jj = 0, kk = 0; jj < ETH_ALEN; jj++, kk += 3 )
++ if (rtw_initmac)
++ { /* Users specify the mac address */
++ int jj, kk;
++
++ for (jj = 0, kk = 0; jj < ETH_ALEN; jj++, kk += 3)
+ {
+ mac[jj] = key_2char2num(rtw_initmac[kk], rtw_initmac[kk+ 1]);
+ }
+ memcpy(mac_addr, mac, ETH_ALEN);
+ }
+ else
-+ { // Use the mac address stored in the Efuse
++ { /* Use the mac address stored in the Efuse */
+ memcpy(mac, mac_addr, ETH_ALEN);
+ }
-+
-+ if (((mac[0]==0xff) &&(mac[1]==0xff) && (mac[2]==0xff) &&
-+ (mac[3]==0xff) && (mac[4]==0xff) &&(mac[5]==0xff)) ||
-+ ((mac[0]==0x0) && (mac[1]==0x0) && (mac[2]==0x0) &&
-+ (mac[3]==0x0) && (mac[4]==0x0) &&(mac[5]==0x0)))
++
++ if (((mac[0]== 0xff) && (mac[1]== 0xff) && (mac[2]== 0xff) &&
++ (mac[3]== 0xff) && (mac[4]== 0xff) && (mac[5]== 0xff)) ||
++ ((mac[0]== 0x0) && (mac[1]== 0x0) && (mac[2]== 0x0) &&
++ (mac[3]== 0x0) && (mac[4]== 0x0) && (mac[5]== 0x0)))
+ {
+ mac[0] = 0x00;
+ mac[1] = 0xe0;
@@ -10702,99 +9031,15 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+ mac[3] = 0x87;
+ mac[4] = 0x00;
+ mac[5] = 0x00;
-+ // use default mac addresss
++ /* use default mac addresss */
+ memcpy(mac_addr, mac, ETH_ALEN);
+ DBG_871X("MAC Address from efuse error, assign default one !!!\n");
-+ }
++ }
+
+ DBG_871X("rtw_macaddr_cfg MAC Address = "MAC_FMT"\n", MAC_ARG(mac_addr));
+}
+
-+void dump_ies(u8 *buf, u32 buf_len)
-+{
-+ u8* pos = (u8*)buf;
-+ u8 id, len;
-+
-+ while(pos-buf<=buf_len){
-+ id = *pos;
-+ len = *(pos+1);
-+
-+ DBG_871X("%s ID:%u, LEN:%u\n", __FUNCTION__, id, len);
-+ dump_wps_ie(pos, len);
-+
-+ pos+=(2+len);
-+ }
-+}
-+
-+void dump_wps_ie(u8 *ie, u32 ie_len)
-+{
-+ u8* pos = (u8*)ie;
-+ u16 id;
-+ u16 len;
-+
-+ u8 *wps_ie;
-+ uint wps_ielen;
-+
-+ wps_ie = rtw_get_wps_ie(ie, ie_len, NULL, &wps_ielen);
-+ if(wps_ie != ie || wps_ielen == 0)
-+ return;
-+
-+ pos+=6;
-+ while(pos-ie < ie_len){
-+ id = RTW_GET_BE16(pos);
-+ len = RTW_GET_BE16(pos + 2);
-+
-+ DBG_871X("%s ID:0x%04x, LEN:%u\n", __FUNCTION__, id, len);
-+
-+ pos+=(4+len);
-+ }
-+}
-+
-+//Baron adds to avoid FreeBSD warning
-+int ieee80211_is_empty_essid(const char *essid, int essid_len)
-+{
-+ /* Single white space is for Linksys APs */
-+ if (essid_len == 1 && essid[0] == ' ')
-+ return 1;
-+
-+ /* Otherwise, if the entire essid is 0, we assume it is hidden */
-+ while (essid_len) {
-+ essid_len--;
-+ if (essid[essid_len] != '\0')
-+ return 0;
-+ }
-+
-+ return 1;
-+}
-+
-+int ieee80211_get_hdrlen(u16 fc)
-+{
-+ int hdrlen = 24;
-+
-+ switch (WLAN_FC_GET_TYPE(fc)) {
-+ case RTW_IEEE80211_FTYPE_DATA:
-+ if (fc & RTW_IEEE80211_STYPE_QOS_DATA)
-+ hdrlen += 2;
-+ if ((fc & RTW_IEEE80211_FCTL_FROMDS) && (fc & RTW_IEEE80211_FCTL_TODS))
-+ hdrlen += 6; /* Addr4 */
-+ break;
-+ case RTW_IEEE80211_FTYPE_CTL:
-+ switch (WLAN_FC_GET_STYPE(fc)) {
-+ case RTW_IEEE80211_STYPE_CTS:
-+ case RTW_IEEE80211_STYPE_ACK:
-+ hdrlen = 10;
-+ break;
-+ default:
-+ hdrlen = 16;
-+ break;
-+ }
-+ break;
-+ }
-+
-+ return hdrlen;
-+}
-+
-+int rtw_get_cipher_info(struct wlan_network *pnetwork)
++static int rtw_get_cipher_info(struct wlan_network *pnetwork)
+{
+ u32 wpa_ielen;
+ unsigned char *pbuf;
@@ -10802,14 +9047,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+ int ret = _FAIL;
+ pbuf = rtw_get_wpa_ie(&pnetwork->network.IEs[12], &wpa_ielen, pnetwork->network.IELength-12);
+
-+ if(pbuf && (wpa_ielen>0)) {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("rtw_get_cipher_info: wpa_ielen: %d", wpa_ielen));
++ if (pbuf && (wpa_ielen>0)) {
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_get_cipher_info: wpa_ielen: %d", wpa_ielen));
+ if (_SUCCESS == rtw_parse_wpa_ie(pbuf, wpa_ielen+2, &group_cipher, &pairwise_cipher, &is8021x)) {
+
+ pnetwork->BcnInfo.pairwise_cipher = pairwise_cipher;
+ pnetwork->BcnInfo.group_cipher = group_cipher;
+ pnetwork->BcnInfo.is_8021x = is8021x;
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("%s: pnetwork->pairwise_cipher: %d, is_8021x is %d",
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("%s: pnetwork->pairwise_cipher: %d, is_8021x is %d",
+ __func__, pnetwork->BcnInfo.pairwise_cipher, pnetwork->BcnInfo.is_8021x));
+ ret = _SUCCESS;
+ }
@@ -10817,16 +9062,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+
+ pbuf = rtw_get_wpa2_ie(&pnetwork->network.IEs[12], &wpa_ielen, pnetwork->network.IELength-12);
+
-+ if(pbuf && (wpa_ielen>0)) {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("get RSN IE\n"));
++ if (pbuf && (wpa_ielen>0)) {
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("get RSN IE\n"));
+ if (_SUCCESS == rtw_parse_wpa2_ie(pbuf, wpa_ielen+2, &group_cipher, &pairwise_cipher, &is8021x)) {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("get RSN IE OK!!!\n"));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("get RSN IE OK!!!\n"));
+ pnetwork->BcnInfo.pairwise_cipher = pairwise_cipher;
+ pnetwork->BcnInfo.group_cipher = group_cipher;
+ pnetwork->BcnInfo.is_8021x = is8021x;
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("%s: pnetwork->pairwise_cipher: %d,"
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("%s: pnetwork->pairwise_cipher: %d,"
+ "pnetwork->group_cipher is %d, is_8021x is %d", __func__, pnetwork->BcnInfo.pairwise_cipher,
-+ pnetwork->BcnInfo.group_cipher,pnetwork->BcnInfo.is_8021x));
++ pnetwork->BcnInfo.group_cipher, pnetwork->BcnInfo.is_8021x));
+ ret = _SUCCESS;
+ }
+ }
@@ -10839,26 +9084,27 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+{
+ unsigned short cap = 0;
+ u8 bencrypt = 0;
-+ //u8 wpa_ie[255],rsn_ie[255];
-+ u16 wpa_len=0,rsn_len=0;
++ /* u8 wpa_ie[255], rsn_ie[255]; */
++ u16 wpa_len = 0, rsn_len = 0;
+ struct HT_info_element *pht_info = NULL;
-+ struct rtw_ieee80211_ht_cap *pht_cap = NULL;
++ struct ieee80211_ht_cap *pht_cap = NULL;
+ unsigned int len;
-+ unsigned char *p;
++ unsigned char *p;
++ __le16 le_cap;
+
-+ memcpy((u8 *)&cap, rtw_get_capability_from_ie(pnetwork->network.IEs), 2);
-+ cap = le16_to_cpu(cap);
++ memcpy((u8 *)&le_cap, rtw_get_capability_from_ie(pnetwork->network.IEs), 2);
++ cap = le16_to_cpu(le_cap);
+ if (cap & WLAN_CAPABILITY_PRIVACY) {
+ bencrypt = 1;
+ pnetwork->network.Privacy = 1;
+ } else {
+ pnetwork->BcnInfo.encryp_protocol = ENCRYP_PROTOCOL_OPENSYS;
+ }
-+ rtw_get_sec_ie(pnetwork->network.IEs ,pnetwork->network.IELength,NULL,&rsn_len,NULL,&wpa_len);
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("rtw_get_bcn_info: ssid=%s\n",pnetwork->network.Ssid.Ssid));
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("rtw_get_bcn_info: wpa_len=%d rsn_len=%d\n",wpa_len,rsn_len));
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("rtw_get_bcn_info: ssid=%s\n",pnetwork->network.Ssid.Ssid));
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("rtw_get_bcn_info: wpa_len=%d rsn_len=%d\n",wpa_len,rsn_len));
++ rtw_get_sec_ie(pnetwork->network.IEs , pnetwork->network.IELength, NULL,&rsn_len, NULL,&wpa_len);
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_get_bcn_info: ssid =%s\n", pnetwork->network.Ssid.Ssid));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_get_bcn_info: wpa_len =%d rsn_len =%d\n", wpa_len, rsn_len));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_get_bcn_info: ssid =%s\n", pnetwork->network.Ssid.Ssid));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_get_bcn_info: wpa_len =%d rsn_len =%d\n", wpa_len, rsn_len));
+
+ if (rsn_len > 0) {
+ pnetwork->BcnInfo.encryp_protocol = ENCRYP_PROTOCOL_WPA2;
@@ -10868,24 +9114,24 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+ if (bencrypt)
+ pnetwork->BcnInfo.encryp_protocol = ENCRYP_PROTOCOL_WEP;
+ }
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("rtw_get_bcn_info: pnetwork->encryp_protocol is %x\n",
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_get_bcn_info: pnetwork->encryp_protocol is %x\n",
+ pnetwork->BcnInfo.encryp_protocol));
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("rtw_get_bcn_info: pnetwork->encryp_protocol is %x\n",
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_get_bcn_info: pnetwork->encryp_protocol is %x\n",
+ pnetwork->BcnInfo.encryp_protocol));
+ rtw_get_cipher_info(pnetwork);
+
+ /* get bwmode and ch_offset */
+ /* parsing HT_CAP_IE */
+ p = rtw_get_ie(pnetwork->network.IEs + _FIXED_IE_LENGTH_, _HT_CAPABILITY_IE_, &len, pnetwork->network.IELength - _FIXED_IE_LENGTH_);
-+ if(p && len>0) {
-+ pht_cap = (struct rtw_ieee80211_ht_cap *)(p + 2);
-+ pnetwork->BcnInfo.ht_cap_info = pht_cap->cap_info;
++ if (p && len>0) {
++ pht_cap = (struct ieee80211_ht_cap *)(p + 2);
++ pnetwork->BcnInfo.ht_cap_info = le16_to_cpu(pht_cap->cap_info);
+ } else {
+ pnetwork->BcnInfo.ht_cap_info = 0;
+ }
+ /* parsing HT_INFO_IE */
+ p = rtw_get_ie(pnetwork->network.IEs + _FIXED_IE_LENGTH_, _HT_ADD_INFO_IE_, &len, pnetwork->network.IELength - _FIXED_IE_LENGTH_);
-+ if(p && len>0) {
++ if (p && len>0) {
+ pht_info = (struct HT_info_element *)(p + 2);
+ pnetwork->BcnInfo.ht_info_infos_0 = pht_info->infos[0];
+ } else {
@@ -10893,82 +9139,82 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+ }
+}
+
-+//show MCS rate, unit: 100Kbps
++/* show MCS rate, unit: 100Kbps */
+u16 rtw_mcs_rate(u8 rf_type, u8 bw_40MHz, u8 short_GI, unsigned char * MCS_rate)
+{
+ u16 max_rate = 0;
-+
-+ if(rf_type == RF_1T1R)
++
++ if (rf_type == RF_1T1R)
+ {
-+ if(MCS_rate[0] & BIT(7))
++ if (MCS_rate[0] & BIT(7))
+ max_rate = (bw_40MHz) ? ((short_GI)?1500:1350):((short_GI)?722:650);
-+ else if(MCS_rate[0] & BIT(6))
++ else if (MCS_rate[0] & BIT(6))
+ max_rate = (bw_40MHz) ? ((short_GI)?1350:1215):((short_GI)?650:585);
-+ else if(MCS_rate[0] & BIT(5))
++ else if (MCS_rate[0] & BIT(5))
+ max_rate = (bw_40MHz) ? ((short_GI)?1200:1080):((short_GI)?578:520);
-+ else if(MCS_rate[0] & BIT(4))
++ else if (MCS_rate[0] & BIT(4))
+ max_rate = (bw_40MHz) ? ((short_GI)?900:810):((short_GI)?433:390);
-+ else if(MCS_rate[0] & BIT(3))
++ else if (MCS_rate[0] & BIT(3))
+ max_rate = (bw_40MHz) ? ((short_GI)?600:540):((short_GI)?289:260);
-+ else if(MCS_rate[0] & BIT(2))
++ else if (MCS_rate[0] & BIT(2))
+ max_rate = (bw_40MHz) ? ((short_GI)?450:405):((short_GI)?217:195);
-+ else if(MCS_rate[0] & BIT(1))
++ else if (MCS_rate[0] & BIT(1))
+ max_rate = (bw_40MHz) ? ((short_GI)?300:270):((short_GI)?144:130);
-+ else if(MCS_rate[0] & BIT(0))
++ else if (MCS_rate[0] & BIT(0))
+ max_rate = (bw_40MHz) ? ((short_GI)?150:135):((short_GI)?72:65);
+ }
+ else
+ {
-+ if(MCS_rate[1])
++ if (MCS_rate[1])
+ {
-+ if(MCS_rate[1] & BIT(7))
++ if (MCS_rate[1] & BIT(7))
+ max_rate = (bw_40MHz) ? ((short_GI)?3000:2700):((short_GI)?1444:1300);
-+ else if(MCS_rate[1] & BIT(6))
++ else if (MCS_rate[1] & BIT(6))
+ max_rate = (bw_40MHz) ? ((short_GI)?2700:2430):((short_GI)?1300:1170);
-+ else if(MCS_rate[1] & BIT(5))
++ else if (MCS_rate[1] & BIT(5))
+ max_rate = (bw_40MHz) ? ((short_GI)?2400:2160):((short_GI)?1156:1040);
-+ else if(MCS_rate[1] & BIT(4))
++ else if (MCS_rate[1] & BIT(4))
+ max_rate = (bw_40MHz) ? ((short_GI)?1800:1620):((short_GI)?867:780);
-+ else if(MCS_rate[1] & BIT(3))
++ else if (MCS_rate[1] & BIT(3))
+ max_rate = (bw_40MHz) ? ((short_GI)?1200:1080):((short_GI)?578:520);
-+ else if(MCS_rate[1] & BIT(2))
++ else if (MCS_rate[1] & BIT(2))
+ max_rate = (bw_40MHz) ? ((short_GI)?900:810):((short_GI)?433:390);
-+ else if(MCS_rate[1] & BIT(1))
++ else if (MCS_rate[1] & BIT(1))
+ max_rate = (bw_40MHz) ? ((short_GI)?600:540):((short_GI)?289:260);
-+ else if(MCS_rate[1] & BIT(0))
++ else if (MCS_rate[1] & BIT(0))
+ max_rate = (bw_40MHz) ? ((short_GI)?300:270):((short_GI)?144:130);
+ }
+ else
+ {
-+ if(MCS_rate[0] & BIT(7))
++ if (MCS_rate[0] & BIT(7))
+ max_rate = (bw_40MHz) ? ((short_GI)?1500:1350):((short_GI)?722:650);
-+ else if(MCS_rate[0] & BIT(6))
++ else if (MCS_rate[0] & BIT(6))
+ max_rate = (bw_40MHz) ? ((short_GI)?1350:1215):((short_GI)?650:585);
-+ else if(MCS_rate[0] & BIT(5))
++ else if (MCS_rate[0] & BIT(5))
+ max_rate = (bw_40MHz) ? ((short_GI)?1200:1080):((short_GI)?578:520);
-+ else if(MCS_rate[0] & BIT(4))
++ else if (MCS_rate[0] & BIT(4))
+ max_rate = (bw_40MHz) ? ((short_GI)?900:810):((short_GI)?433:390);
-+ else if(MCS_rate[0] & BIT(3))
++ else if (MCS_rate[0] & BIT(3))
+ max_rate = (bw_40MHz) ? ((short_GI)?600:540):((short_GI)?289:260);
-+ else if(MCS_rate[0] & BIT(2))
++ else if (MCS_rate[0] & BIT(2))
+ max_rate = (bw_40MHz) ? ((short_GI)?450:405):((short_GI)?217:195);
-+ else if(MCS_rate[0] & BIT(1))
++ else if (MCS_rate[0] & BIT(1))
+ max_rate = (bw_40MHz) ? ((short_GI)?300:270):((short_GI)?144:130);
-+ else if(MCS_rate[0] & BIT(0))
++ else if (MCS_rate[0] & BIT(0))
+ max_rate = (bw_40MHz) ? ((short_GI)?150:135):((short_GI)?72:65);
+ }
+ }
+ return max_rate;
+}
+
-+int rtw_action_frame_parse(const u8 *frame, u32 frame_len, u8* category, u8 *action)
++int rtw_action_frame_parse(const u8 *frame, u32 frame_len, u8 *category, u8 *action)
+{
-+ const u8 *frame_body = frame + sizeof(struct rtw_ieee80211_hdr_3addr);
++ const u8 *frame_body = frame + sizeof(struct ieee80211_hdr_3addr);
+ u16 fc;
+ u8 c;
+ u8 a = ACT_PUBLIC_MAX;
+
-+ fc = le16_to_cpu(((struct rtw_ieee80211_hdr_3addr *)frame)->frame_ctl);
++ fc = le16_to_cpu(((struct ieee80211_hdr_3addr *)frame)->frame_control);
+
+ if ((fc & (RTW_IEEE80211_FCTL_FTYPE|RTW_IEEE80211_FCTL_STYPE))
+ != (RTW_IEEE80211_FTYPE_MGMT|RTW_IEEE80211_STYPE_ACTION)
@@ -10979,7 +9225,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+
+ c = frame_body[0];
+
-+ switch(c) {
++ switch (c) {
+ case RTW_WLAN_CATEGORY_P2P: /* vendor-specific */
+ break;
+ default:
@@ -11019,11 +9265,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ieee80211.c linux/3rdparty/rtl8
+ action = (action >= ACT_PUBLIC_MAX) ? ACT_PUBLIC_MAX : action;
+ return _action_public_str[action];
+}
-+
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_io.c linux/3rdparty/rtl8723bs/core/rtw_io.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_io.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_io.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,394 @@
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_io.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_io.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_io.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_io.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,203 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
@@ -11037,11 +9282,6 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_io.c linux/3rdparty/rtl8723bs/c
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
+/*
+
@@ -11060,8 +9300,6 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_io.c linux/3rdparty/rtl8723bs/c
+ a. USE_SYNC_IRP: Only sync operations are provided.
+ b. USE_ASYNC_IRP:Both sync/async operations are provided.
+
-+Only sync read/rtw_write_mem operations are provided.
-+
+jackson@realtek.com.tw
+
+*/
@@ -11069,130 +9307,105 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_io.c linux/3rdparty/rtl8723bs/c
+#define _RTW_IO_C_
+
+#include
++#include
+
-+#define rtw_le16_to_cpu(val) val
++#define rtw_le16_to_cpu(val) val
+#define rtw_le32_to_cpu(val) val
+#define rtw_cpu_to_le16(val) val
+#define rtw_cpu_to_le32(val) val
+
-+u8 _rtw_read8(_adapter *adapter, u32 addr)
++u8 _rtw_read8(struct adapter *adapter, u32 addr)
+{
+ u8 r_val;
-+ //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
++ /* struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; */
+ struct io_priv *pio_priv = &adapter->iopriv;
+ struct intf_hdl *pintfhdl = &(pio_priv->intf);
+ u8 (*_read8)(struct intf_hdl *pintfhdl, u32 addr);
-+ _func_enter_;
++
+ _read8 = pintfhdl->io_ops._read8;
+
+ r_val = _read8(pintfhdl, addr);
-+ _func_exit_;
+ return r_val;
+}
+
-+u16 _rtw_read16(_adapter *adapter, u32 addr)
++u16 _rtw_read16(struct adapter *adapter, u32 addr)
+{
+ u16 r_val;
-+ //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
++ /* struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; */
+ struct io_priv *pio_priv = &adapter->iopriv;
+ struct intf_hdl *pintfhdl = &(pio_priv->intf);
-+ u16 (*_read16)(struct intf_hdl *pintfhdl, u32 addr);
-+ _func_enter_;
++ u16 (*_read16)(struct intf_hdl *pintfhdl, u32 addr);
++
+ _read16 = pintfhdl->io_ops._read16;
+
+ r_val = _read16(pintfhdl, addr);
-+ _func_exit_;
+ return rtw_le16_to_cpu(r_val);
+}
+
-+u32 _rtw_read32(_adapter *adapter, u32 addr)
++u32 _rtw_read32(struct adapter *adapter, u32 addr)
+{
+ u32 r_val;
-+ //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
++ /* struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; */
+ struct io_priv *pio_priv = &adapter->iopriv;
+ struct intf_hdl *pintfhdl = &(pio_priv->intf);
-+ u32 (*_read32)(struct intf_hdl *pintfhdl, u32 addr);
-+ _func_enter_;
++ u32 (*_read32)(struct intf_hdl *pintfhdl, u32 addr);
++
+ _read32 = pintfhdl->io_ops._read32;
+
+ r_val = _read32(pintfhdl, addr);
-+ _func_exit_;
+ return rtw_le32_to_cpu(r_val);
+
+}
+
-+int _rtw_write8(_adapter *adapter, u32 addr, u8 val)
++int _rtw_write8(struct adapter *adapter, u32 addr, u8 val)
+{
-+ //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
++ /* struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; */
+ struct io_priv *pio_priv = &adapter->iopriv;
+ struct intf_hdl *pintfhdl = &(pio_priv->intf);
+ int (*_write8)(struct intf_hdl *pintfhdl, u32 addr, u8 val);
+ int ret;
-+ _func_enter_;
++
+ _write8 = pintfhdl->io_ops._write8;
+
+ ret = _write8(pintfhdl, addr, val);
-+ _func_exit_;
-+
++
+ return RTW_STATUS_CODE(ret);
+}
-+int _rtw_write16(_adapter *adapter, u32 addr, u16 val)
++int _rtw_write16(struct adapter *adapter, u32 addr, u16 val)
+{
-+ //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
++ /* struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; */
+ struct io_priv *pio_priv = &adapter->iopriv;
+ struct intf_hdl *pintfhdl = &(pio_priv->intf);
+ int (*_write16)(struct intf_hdl *pintfhdl, u32 addr, u16 val);
+ int ret;
-+ _func_enter_;
++
+ _write16 = pintfhdl->io_ops._write16;
+
-+ val = rtw_cpu_to_le16(val);
+ ret = _write16(pintfhdl, addr, val);
-+ _func_exit_;
-+
+ return RTW_STATUS_CODE(ret);
+}
-+int _rtw_write32(_adapter *adapter, u32 addr, u32 val)
++int _rtw_write32(struct adapter *adapter, u32 addr, u32 val)
+{
-+ //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
++ /* struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue; */
+ struct io_priv *pio_priv = &adapter->iopriv;
+ struct intf_hdl *pintfhdl = &(pio_priv->intf);
+ int (*_write32)(struct intf_hdl *pintfhdl, u32 addr, u32 val);
+ int ret;
-+ _func_enter_;
++
+ _write32 = pintfhdl->io_ops._write32;
-+
-+ val = rtw_cpu_to_le32(val);
++
+ ret = _write32(pintfhdl, addr, val);
-+ _func_exit_;
+
+ return RTW_STATUS_CODE(ret);
+}
+
-+int _rtw_writeN(_adapter *adapter, u32 addr ,u32 length , u8 *pdata)
-+{
-+ //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
-+ struct io_priv *pio_priv = &adapter->iopriv;
-+ struct intf_hdl *pintfhdl = (struct intf_hdl*)(&(pio_priv->intf));
-+ int (*_writeN)(struct intf_hdl *pintfhdl, u32 addr,u32 length, u8 *pdata);
-+ int ret;
-+ _func_enter_;
-+ _writeN = pintfhdl->io_ops._writeN;
-+
-+ ret = _writeN(pintfhdl, addr,length,pdata);
-+ _func_exit_;
-+
-+ return RTW_STATUS_CODE(ret);
-+}
-+
-+u8 _rtw_sd_f0_read8(_adapter *adapter, u32 addr)
++u8 _rtw_sd_f0_read8(struct adapter *adapter, u32 addr)
+{
+ u8 r_val = 0x00;
+ struct io_priv *pio_priv = &adapter->iopriv;
+ struct intf_hdl *pintfhdl = &(pio_priv->intf);
+ u8 (*_sd_f0_read8)(struct intf_hdl *pintfhdl, u32 addr);
+
-+ _func_enter_;
+ _sd_f0_read8 = pintfhdl->io_ops._sd_f0_read8;
+
+ if (_sd_f0_read8)
@@ -11200,185 +9413,26 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_io.c linux/3rdparty/rtl8723bs/c
+ else
+ DBG_871X_LEVEL(_drv_warning_, FUNC_ADPT_FMT" _sd_f0_read8 callback is NULL\n", FUNC_ADPT_ARG(adapter));
+
-+ _func_exit_;
+ return r_val;
+}
+
-+int _rtw_write8_async(_adapter *adapter, u32 addr, u8 val)
-+{
-+ //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
-+ struct io_priv *pio_priv = &adapter->iopriv;
-+ struct intf_hdl *pintfhdl = &(pio_priv->intf);
-+ int (*_write8_async)(struct intf_hdl *pintfhdl, u32 addr, u8 val);
-+ int ret;
-+ _func_enter_;
-+ _write8_async = pintfhdl->io_ops._write8_async;
-+
-+ ret = _write8_async(pintfhdl, addr, val);
-+ _func_exit_;
-+
-+ return RTW_STATUS_CODE(ret);
-+}
-+int _rtw_write16_async(_adapter *adapter, u32 addr, u16 val)
-+{
-+ //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
-+ struct io_priv *pio_priv = &adapter->iopriv;
-+ struct intf_hdl *pintfhdl = &(pio_priv->intf);
-+ int (*_write16_async)(struct intf_hdl *pintfhdl, u32 addr, u16 val);
-+ int ret;
-+ _func_enter_;
-+ _write16_async = pintfhdl->io_ops._write16_async;
-+ val = rtw_cpu_to_le16(val);
-+ ret = _write16_async(pintfhdl, addr, val);
-+ _func_exit_;
-+
-+ return RTW_STATUS_CODE(ret);
-+}
-+int _rtw_write32_async(_adapter *adapter, u32 addr, u32 val)
-+{
-+ //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
-+ struct io_priv *pio_priv = &adapter->iopriv;
-+ struct intf_hdl *pintfhdl = &(pio_priv->intf);
-+ int (*_write32_async)(struct intf_hdl *pintfhdl, u32 addr, u32 val);
-+ int ret;
-+ _func_enter_;
-+ _write32_async = pintfhdl->io_ops._write32_async;
-+ val = rtw_cpu_to_le32(val);
-+ ret = _write32_async(pintfhdl, addr, val);
-+ _func_exit_;
-+
-+ return RTW_STATUS_CODE(ret);
-+}
-+
-+void _rtw_read_mem(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem)
-+{
-+ void (*_read_mem)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pmem);
-+ //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
-+ struct io_priv *pio_priv = &adapter->iopriv;
-+ struct intf_hdl *pintfhdl = &(pio_priv->intf);
-+
-+ _func_enter_;
-+
-+ if( (adapter->bDriverStopped ==true) || (adapter->bSurpriseRemoved == true))
-+ {
-+ RT_TRACE(_module_rtl871x_io_c_, _drv_info_, ("rtw_read_mem:bDriverStopped(%d) OR bSurpriseRemoved(%d)", adapter->bDriverStopped, adapter->bSurpriseRemoved));
-+ return;
-+ }
-+
-+ _read_mem = pintfhdl->io_ops._read_mem;
-+
-+ _read_mem(pintfhdl, addr, cnt, pmem);
-+
-+ _func_exit_;
-+
-+}
-+
-+void _rtw_write_mem(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem)
-+{
-+ void (*_write_mem)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pmem);
-+ //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
-+ struct io_priv *pio_priv = &adapter->iopriv;
-+ struct intf_hdl *pintfhdl = &(pio_priv->intf);
-+
-+ _func_enter_;
-+
-+ _write_mem = pintfhdl->io_ops._write_mem;
-+
-+ _write_mem(pintfhdl, addr, cnt, pmem);
-+
-+ _func_exit_;
-+
-+}
-+
-+void _rtw_read_port(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem)
-+{
-+ u32 (*_read_port)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pmem);
-+ //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
-+ struct io_priv *pio_priv = &adapter->iopriv;
-+ struct intf_hdl *pintfhdl = &(pio_priv->intf);
-+
-+ _func_enter_;
-+
-+ if( (adapter->bDriverStopped ==true) || (adapter->bSurpriseRemoved == true))
-+ {
-+ RT_TRACE(_module_rtl871x_io_c_, _drv_info_, ("rtw_read_port:bDriverStopped(%d) OR bSurpriseRemoved(%d)", adapter->bDriverStopped, adapter->bSurpriseRemoved));
-+ return;
-+ }
-+
-+ _read_port = pintfhdl->io_ops._read_port;
-+
-+ _read_port(pintfhdl, addr, cnt, pmem);
-+
-+ _func_exit_;
-+
-+}
-+
-+void _rtw_read_port_cancel(_adapter *adapter)
-+{
-+ void (*_read_port_cancel)(struct intf_hdl *pintfhdl);
-+ struct io_priv *pio_priv = &adapter->iopriv;
-+ struct intf_hdl *pintfhdl = &(pio_priv->intf);
-+
-+ _read_port_cancel = pintfhdl->io_ops._read_port_cancel;
-+
-+ RTW_DISABLE_FUNC(adapter, DF_RX_BIT);
-+
-+ if(_read_port_cancel)
-+ _read_port_cancel(pintfhdl);
-+}
-+
-+u32 _rtw_write_port(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem)
++u32 _rtw_write_port(struct adapter *adapter, u32 addr, u32 cnt, u8 *pmem)
+{
+ u32 (*_write_port)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *pmem);
-+ //struct io_queue *pio_queue = (struct io_queue *)adapter->pio_queue;
+ struct io_priv *pio_priv = &adapter->iopriv;
+ struct intf_hdl *pintfhdl = &(pio_priv->intf);
+ u32 ret = _SUCCESS;
+
-+ _func_enter_;
-+
+ _write_port = pintfhdl->io_ops._write_port;
-+
-+ ret = _write_port(pintfhdl, addr, cnt, pmem);
+
-+ _func_exit_;
++ ret = _write_port(pintfhdl, addr, cnt, pmem);
+
+ return ret;
+}
+
-+u32 _rtw_write_port_and_wait(_adapter *adapter, u32 addr, u32 cnt, u8 *pmem, int timeout_ms)
++int rtw_init_io_priv(struct adapter *padapter, void (*set_intf_ops)(struct adapter *padapter, struct _io_ops *pops))
+{
-+ int ret = _SUCCESS;
-+ struct xmit_buf *pxmitbuf = (struct xmit_buf *)pmem;
-+ struct submit_ctx sctx;
-+
-+ rtw_sctx_init(&sctx, timeout_ms);
-+ pxmitbuf->sctx = &sctx;
-+
-+ ret = _rtw_write_port(adapter, addr, cnt, pmem);
-+
-+ if (ret == _SUCCESS)
-+ ret = rtw_sctx_wait(&sctx, __func__);
-+
-+ return ret;
-+}
-+
-+void _rtw_write_port_cancel(_adapter *adapter)
-+{
-+ void (*_write_port_cancel)(struct intf_hdl *pintfhdl);
-+ struct io_priv *pio_priv = &adapter->iopriv;
-+ struct intf_hdl *pintfhdl = &(pio_priv->intf);
-+
-+ _write_port_cancel = pintfhdl->io_ops._write_port_cancel;
-+
-+ RTW_DISABLE_FUNC(adapter, DF_TX_BIT);
-+
-+ if(_write_port_cancel)
-+ _write_port_cancel(pintfhdl);
-+}
-+int rtw_init_io_priv(_adapter *padapter, void (*set_intf_ops)(_adapter *padapter,struct _io_ops *pops))
-+{
-+ struct io_priv *piopriv = &padapter->iopriv;
++ struct io_priv *piopriv = &padapter->iopriv;
+ struct intf_hdl *pintf = &piopriv->intf;
+
+ if (set_intf_ops == NULL)
@@ -11387,8 +9441,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_io.c linux/3rdparty/rtl8723bs/c
+ piopriv->padapter = padapter;
+ pintf->padapter = padapter;
+ pintf->pintf_dev = adapter_to_dvobj(padapter);
-+
-+ set_intf_ops(padapter,&pintf->io_ops);
++
++ set_intf_ops(padapter,&pintf->io_ops);
+
+ return _SUCCESS;
+}
@@ -11402,11 +9456,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_io.c linux/3rdparty/rtl8723bs/c
+{
+ int ret = false;
+ int value;
-+ if( (value=atomic_inc_return(&dvobj->continual_io_error)) > MAX_CONTINUAL_IO_ERR) {
++ if ((value =atomic_inc_return(&dvobj->continual_io_error)) > MAX_CONTINUAL_IO_ERR) {
+ DBG_871X("[dvobj:%p][ERROR] continual_io_error:%d > %d\n", dvobj, value, MAX_CONTINUAL_IO_ERR);
+ ret = true;
+ } else {
-+ //DBG_871X("[dvobj:%p] continual_io_error:%d\n", dvobj, value);
++ /* DBG_871X("[dvobj:%p] continual_io_error:%d\n", dvobj, value); */
+ }
+ return ret;
+}
@@ -11416,16 +9470,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_io.c linux/3rdparty/rtl8723bs/c
+*/
+void rtw_reset_continual_io_error(struct dvobj_priv *dvobj)
+{
-+ atomic_set(&dvobj->continual_io_error, 0);
++ atomic_set(&dvobj->continual_io_error, 0);
+}
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ioctl_set.c linux/3rdparty/rtl8723bs/core/rtw_ioctl_set.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_ioctl_set.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_ioctl_set.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,1353 @@
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_ioctl_set.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_ioctl_set.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_ioctl_set.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_ioctl_set.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,736 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
-+ *
++ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
@@ -11435,24 +9489,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ioctl_set.c linux/3rdparty/rtl8
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
+#define _RTW_IOCTL_SET_C_
+
+#include
-+
-+
-+extern void indicate_wx_scan_complete_event(_adapter *padapter);
++#include
+
+#define IS_MAC_ADDRESS_BROADCAST(addr) \
-+( \
-+ ( (addr[0] == 0xff) && (addr[1] == 0xff) && \
++(\
++ ((addr[0] == 0xff) && (addr[1] == 0xff) && \
+ (addr[2] == 0xff) && (addr[3] == 0xff) && \
-+ (addr[4] == 0xff) && (addr[5] == 0xff) ) ? true : false \
++ (addr[4] == 0xff) && (addr[5] == 0xff)) ? true : false \
+)
+
+u8 rtw_validate_bssid(u8 *bssid)
@@ -11462,88 +9509,79 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ioctl_set.c linux/3rdparty/rtl8
+ if (is_zero_mac_addr(bssid)
+ || is_broadcast_mac_addr(bssid)
+ || is_multicast_mac_addr(bssid)
-+ ) {
++ ) {
+ ret = false;
+ }
+
+ return ret;
+}
+
-+u8 rtw_validate_ssid(NDIS_802_11_SSID *ssid)
++u8 rtw_validate_ssid(struct ndis_802_11_ssid *ssid)
+{
-+ u8 i;
-+ u8 ret=true;
-+
-+_func_enter_;
++ u8 ret =true;
+
+ if (ssid->SsidLength > 32) {
+ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_, ("ssid length >32\n"));
-+ ret= false;
++ ret = false;
+ goto exit;
+ }
+
+#ifdef CONFIG_VALIDATE_SSID
-+ for(i = 0; i < ssid->SsidLength; i++)
++ for (i = 0; i < ssid->SsidLength; i++)
+ {
-+ //wifi, printable ascii code must be supported
-+ if(!( (ssid->Ssid[i] >= 0x20) && (ssid->Ssid[i] <= 0x7e) )){
++ /* wifi, printable ascii code must be supported */
++ if (!((ssid->Ssid[i] >= 0x20) && (ssid->Ssid[i] <= 0x7e))) {
+ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_, ("ssid has nonprintabl ascii\n"));
-+ ret= false;
++ ret = false;
+ break;
+ }
+ }
+#endif /* CONFIG_VALIDATE_SSID */
+
-+exit:
-+
-+_func_exit_;
-+
++exit:
+ return ret;
+}
+
-+u8 rtw_do_join(_adapter * padapter);
-+u8 rtw_do_join(_adapter * padapter)
++u8 rtw_do_join(struct adapter *padapter);
++u8 rtw_do_join(struct adapter *padapter)
+{
-+ _irqL irqL;
-+ _list *plist, *phead;
-+ u8* pibss = NULL;
-+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ _queue *queue = &(pmlmepriv->scanned_queue);
-+ u8 ret=_SUCCESS;
++ struct list_head *plist, *phead;
++ u8 *pibss = NULL;
++ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
++ struct __queue *queue = &(pmlmepriv->scanned_queue);
++ u8 ret = _SUCCESS;
+
-+_func_enter_;
-+
-+ _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
++ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
+ phead = get_list_head(queue);
+ plist = get_next(phead);
+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("\n rtw_do_join: phead = %p; plist = %p \n\n\n", phead, plist));
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("\n rtw_do_join: phead = %p; plist = %p\n\n\n", phead, plist));
+
+ pmlmepriv->cur_network.join_res = -2;
-+
++
+ set_fwstate(pmlmepriv, _FW_UNDER_LINKING);
+
+ pmlmepriv->pscanned = plist;
+
+ pmlmepriv->to_join = true;
+
-+ if(_rtw_queue_empty(queue)== true)
-+ {
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
++ if (list_empty(&queue->queue))
++ {
++ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
+ _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
-+
-+ //when set_ssid/set_bssid for rtw_do_join(), but scanning queue is empty
-+ //we try to issue sitesurvey firstly
-+
++
++ /* when set_ssid/set_bssid for rtw_do_join(), but scanning queue is empty */
++ /* we try to issue sitesurvey firstly */
++
+ if (pmlmepriv->LinkDetectInfo.bBusyTraffic ==false
+ || rtw_to_roam(padapter) > 0
+ )
+ {
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("rtw_do_join(): site survey if scanned_queue is empty\n."));
-+ // submit site_survey_cmd
-+ if(_SUCCESS!=(ret=rtw_sitesurvey_cmd(padapter, &pmlmepriv->assoc_ssid, 1, NULL, 0)) ) {
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("rtw_do_join(): site survey if scanned_queue is empty\n."));
++ /* submit site_survey_cmd */
++ if (_SUCCESS!=(ret =rtw_sitesurvey_cmd(padapter, &pmlmepriv->assoc_ssid, 1, NULL, 0))) {
+ pmlmepriv->to_join = false;
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("rtw_do_join(): site survey return error\n."));
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_, ("rtw_do_join(): site survey return error\n."));
+ }
+ }
+ else
@@ -11551,67 +9589,67 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ioctl_set.c linux/3rdparty/rtl8
+ pmlmepriv->to_join = false;
+ ret = _FAIL;
+ }
-+
++
+ goto exit;
-+ }
-+ else
++ }
++ else
+ {
+ int select_ret;
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ if((select_ret=rtw_select_and_join_from_scanned_queue(pmlmepriv))==_SUCCESS)
++ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
++ if ((select_ret =rtw_select_and_join_from_scanned_queue(pmlmepriv)) == _SUCCESS)
+ {
+ pmlmepriv->to_join = false;
+ _set_timer(&pmlmepriv->assoc_timer, MAX_JOIN_TIMEOUT);
+ }
-+ else
++ else
+ {
-+ if(check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)==true)
++ if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) ==true)
+ {
-+ // submit createbss_cmd to change to a ADHOC_MASTER
++ /* submit createbss_cmd to change to a ADHOC_MASTER */
+
-+ //pmlmepriv->lock has been acquired by caller...
-+ WLAN_BSSID_EX *pdev_network = &(padapter->registrypriv.dev_network);
++ /* pmlmepriv->lock has been acquired by caller... */
++ struct wlan_bssid_ex *pdev_network = &(padapter->registrypriv.dev_network);
+
+ pmlmepriv->fw_state = WIFI_ADHOC_MASTER_STATE;
-+
++
+ pibss = padapter->registrypriv.dev_network.MacAddress;
+
-+ memset(&pdev_network->Ssid, 0, sizeof(NDIS_802_11_SSID));
-+ memcpy(&pdev_network->Ssid, &pmlmepriv->assoc_ssid, sizeof(NDIS_802_11_SSID));
-+
++ memset(&pdev_network->Ssid, 0, sizeof(struct ndis_802_11_ssid));
++ memcpy(&pdev_network->Ssid, &pmlmepriv->assoc_ssid, sizeof(struct ndis_802_11_ssid));
++
+ rtw_update_registrypriv_dev_network(padapter);
+
+ rtw_generate_random_ibss(pibss);
-+
-+ if(rtw_createbss_cmd(padapter)!=_SUCCESS)
++
++ if (rtw_createbss_cmd(padapter)!= _SUCCESS)
+ {
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("***Error=>do_goin: rtw_createbss_cmd status FAIL*** \n "));
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_, ("***Error =>do_goin: rtw_createbss_cmd status FAIL***\n "));
+ ret = false;
+ goto exit;
+ }
+
-+ pmlmepriv->to_join = false;
++ pmlmepriv->to_join = false;
+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("***Error=> rtw_select_and_join_from_scanned_queue FAIL under STA_Mode*** \n "));
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("***Error => rtw_select_and_join_from_scanned_queue FAIL under STA_Mode***\n "));
+
-+ }
++ }
+ else
-+ {
-+ // can't associate ; reset under-linking
++ {
++ /* can't associate ; reset under-linking */
+ _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
+
-+ //when set_ssid/set_bssid for rtw_do_join(), but there are no desired bss in scanning queue
-+ //we try to issue sitesurvey firstly
-+ if(pmlmepriv->LinkDetectInfo.bBusyTraffic==false
++ /* when set_ssid/set_bssid for rtw_do_join(), but there are no desired bss in scanning queue */
++ /* we try to issue sitesurvey firstly */
++ if (pmlmepriv->LinkDetectInfo.bBusyTraffic ==false
+ || rtw_to_roam(padapter) > 0
+ )
+ {
-+ //DBG_871X("rtw_do_join() when no desired bss in scanning queue \n");
-+ if( _SUCCESS!=(ret=rtw_sitesurvey_cmd(padapter, &pmlmepriv->assoc_ssid, 1, NULL, 0)) ){
++ /* DBG_871X("rtw_do_join() when no desired bss in scanning queue\n"); */
++ if (_SUCCESS!=(ret =rtw_sitesurvey_cmd(padapter, &pmlmepriv->assoc_ssid, 1, NULL, 0))) {
+ pmlmepriv->to_join = false;
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("do_join(): site survey return error\n."));
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_, ("do_join(): site survey return error\n."));
+ }
-+ }
++ }
+ else
+ {
+ ret = _FAIL;
@@ -11622,36 +9660,30 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ioctl_set.c linux/3rdparty/rtl8
+ }
+
+ }
-+
-+exit:
-+
-+_func_exit_;
+
-+ return ret;
++exit:
++ return ret;
+}
+
-+u8 rtw_set_802_11_bssid(_adapter* padapter, u8 *bssid)
-+{
-+ _irqL irqL;
-+ u8 status=_SUCCESS;
++u8 rtw_set_802_11_bssid(struct adapter *padapter, u8 *bssid)
++{
++ u8 status = _SUCCESS;
+
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+
-+_func_enter_;
-+
++
+ DBG_871X_LEVEL(_drv_always_, "set bssid:%pM\n", bssid);
+
-+ if ((bssid[0]==0x00 && bssid[1]==0x00 && bssid[2]==0x00 && bssid[3]==0x00 && bssid[4]==0x00 &&bssid[5]==0x00) ||
-+ (bssid[0]==0xFF && bssid[1]==0xFF && bssid[2]==0xFF && bssid[3]==0xFF && bssid[4]==0xFF &&bssid[5]==0xFF))
++ if ((bssid[0]== 0x00 && bssid[1]== 0x00 && bssid[2]== 0x00 && bssid[3]== 0x00 && bssid[4]== 0x00 &&bssid[5]== 0x00) ||
++ (bssid[0]== 0xFF && bssid[1]== 0xFF && bssid[2]== 0xFF && bssid[3]== 0xFF && bssid[4]== 0xFF &&bssid[5]== 0xFF))
+ {
+ status = _FAIL;
+ goto exit;
+ }
-+
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
++
++ spin_lock_bh(&pmlmepriv->lock);
+
+
-+ DBG_871X("Set BSSID under fw_state=0x%08x\n", get_fwstate(pmlmepriv));
++ DBG_871X("Set BSSID under fw_state = 0x%08x\n", get_fwstate(pmlmepriv));
+ if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == true) {
+ goto handle_tkip_countermeasure;
+ } else if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == true) {
@@ -11663,13 +9695,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ioctl_set.c linux/3rdparty/rtl8
+ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("set_bssid: _FW_LINKED||WIFI_ADHOC_MASTER_STATE\n"));
+
+ if (!memcmp(&pmlmepriv->cur_network.network.MacAddress, bssid, ETH_ALEN))
-+ {
++ {
+ if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) == false)
-+ goto release_mlme_lock;//it means driver is in WIFI_ADHOC_MASTER_STATE, we needn't create bss again.
++ goto release_mlme_lock;/* it means driver is in WIFI_ADHOC_MASTER_STATE, we needn't create bss again. */
+ } else {
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("Set BSSID not the same bssid\n"));
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("set_bssid="MAC_FMT"\n", MAC_ARG(bssid) ));
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("cur_bssid="MAC_FMT"\n", MAC_ARG(pmlmepriv->cur_network.network.MacAddress) ));
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("Set BSSID not the same bssid\n"));
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("set_bssid ="MAC_FMT"\n", MAC_ARG(bssid)));
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("cur_bssid ="MAC_FMT"\n", MAC_ARG(pmlmepriv->cur_network.network.MacAddress)));
+
+ rtw_disassoc_cmd(padapter, 0, true);
+
@@ -11681,7 +9713,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ioctl_set.c linux/3rdparty/rtl8
+ if ((check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true)) {
+ _clr_fwstate_(pmlmepriv, WIFI_ADHOC_MASTER_STATE);
+ set_fwstate(pmlmepriv, WIFI_ADHOC_STATE);
-+ }
++ }
+ }
+ }
+
@@ -11691,54 +9723,48 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ioctl_set.c linux/3rdparty/rtl8
+ goto release_mlme_lock;
+ }
+
-+ memset(&pmlmepriv->assoc_ssid, 0, sizeof(NDIS_802_11_SSID));
++ memset(&pmlmepriv->assoc_ssid, 0, sizeof(struct ndis_802_11_ssid));
+ memcpy(&pmlmepriv->assoc_bssid, bssid, ETH_ALEN);
-+ pmlmepriv->assoc_by_bssid=true;
++ pmlmepriv->assoc_by_bssid =true;
+
+ if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == true) {
-+ pmlmepriv->to_join = true;
++ pmlmepriv->to_join = true;
+ }
+ else {
+ status = rtw_do_join(padapter);
+ }
+
+release_mlme_lock:
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+
++ spin_unlock_bh(&pmlmepriv->lock);
++
+exit:
+ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_,
-+ ("rtw_set_802_11_bssid: status=%d\n", status));
-+
-+_func_exit_;
++ ("rtw_set_802_11_bssid: status =%d\n", status));
+
+ return status;
+}
+
-+u8 rtw_set_802_11_ssid(_adapter* padapter, NDIS_802_11_SSID *ssid)
-+{
-+ _irqL irqL;
++u8 rtw_set_802_11_ssid(struct adapter *padapter, struct ndis_802_11_ssid *ssid)
++{
+ u8 status = _SUCCESS;
-+ u32 cur_time = 0;
+
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+ struct wlan_network *pnetwork = &pmlmepriv->cur_network;
-+
-+_func_enter_;
-+
-+ DBG_871X_LEVEL(_drv_always_, "set ssid [%s] fw_state=0x%08x\n",
-+ ssid->Ssid, get_fwstate(pmlmepriv));
+
-+ if(padapter->hw_init_completed==false){
++ DBG_871X_LEVEL(_drv_always_, "set ssid [%s] fw_state = 0x%08x\n",
++ ssid->Ssid, get_fwstate(pmlmepriv));
++
++ if (padapter->hw_init_completed ==false) {
+ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_,
-+ ("set_ssid: hw_init_completed==false=>exit!!!\n"));
++ ("set_ssid: hw_init_completed ==false =>exit!!!\n"));
+ status = _FAIL;
+ goto exit;
+ }
-+
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
+
-+ DBG_871X("Set SSID under fw_state=0x%08x\n", get_fwstate(pmlmepriv));
-+ if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == true) {
++ spin_lock_bh(&pmlmepriv->lock);
++
++ DBG_871X("Set SSID under fw_state = 0x%08x\n", get_fwstate(pmlmepriv));
++ if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == true) {
+ goto handle_tkip_countermeasure;
+ } else if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == true) {
+ goto release_mlme_lock;
@@ -11751,21 +9777,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ioctl_set.c linux/3rdparty/rtl8
+
+ if ((pmlmepriv->assoc_ssid.SsidLength == ssid->SsidLength) &&
+ (!memcmp(&pmlmepriv->assoc_ssid.Ssid, ssid->Ssid, ssid->SsidLength)))
-+ {
-+ if((check_fwstate(pmlmepriv, WIFI_STATION_STATE) == false))
++ {
++ if ((check_fwstate(pmlmepriv, WIFI_STATION_STATE) == false))
+ {
+ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_,
-+ ("Set SSID is the same ssid, fw_state=0x%08x\n",
++ ("Set SSID is the same ssid, fw_state = 0x%08x\n",
+ get_fwstate(pmlmepriv)));
+
-+ if(rtw_is_same_ibss(padapter, pnetwork) == false)
-+ {
-+ //if in WIFI_ADHOC_MASTER_STATE | WIFI_ADHOC_STATE, create bss or rejoin again
++ if (rtw_is_same_ibss(padapter, pnetwork) == false)
++ {
++ /* if in WIFI_ADHOC_MASTER_STATE | WIFI_ADHOC_STATE, create bss or rejoin again */
+ rtw_disassoc_cmd(padapter, 0, true);
+
+ if (check_fwstate(pmlmepriv, _FW_LINKED) == true)
+ rtw_indicate_disconnect(padapter);
-+
++
+ rtw_free_assoc_resources(padapter, 1);
+
+ if (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true) {
@@ -11775,7 +9801,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ioctl_set.c linux/3rdparty/rtl8
+ }
+ else
+ {
-+ goto release_mlme_lock;//it means driver is in WIFI_ADHOC_MASTER_STATE, we needn't create bss again.
++ goto release_mlme_lock;/* it means driver is in WIFI_ADHOC_MASTER_STATE, we needn't create bss again. */
+ }
+ }
+ else {
@@ -11784,22 +9810,22 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ioctl_set.c linux/3rdparty/rtl8
+ }
+ else
+ {
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("Set SSID not the same ssid\n"));
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("set_ssid=[%s] len=0x%x\n", ssid->Ssid, (unsigned int)ssid->SsidLength));
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("assoc_ssid=[%s] len=0x%x\n", pmlmepriv->assoc_ssid.Ssid, (unsigned int)pmlmepriv->assoc_ssid.SsidLength));
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("Set SSID not the same ssid\n"));
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("set_ssid =[%s] len = 0x%x\n", ssid->Ssid, (unsigned int)ssid->SsidLength));
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("assoc_ssid =[%s] len = 0x%x\n", pmlmepriv->assoc_ssid.Ssid, (unsigned int)pmlmepriv->assoc_ssid.SsidLength));
+
+ rtw_disassoc_cmd(padapter, 0, true);
+
+ if (check_fwstate(pmlmepriv, _FW_LINKED) == true)
+ rtw_indicate_disconnect(padapter);
-+
++
+ rtw_free_assoc_resources(padapter, 1);
+
+ if (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true) {
+ _clr_fwstate_(pmlmepriv, WIFI_ADHOC_MASTER_STATE);
+ set_fwstate(pmlmepriv, WIFI_ADHOC_STATE);
+ }
-+ }
++ }
+ }
+
+handle_tkip_countermeasure:
@@ -11813,40 +9839,33 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ioctl_set.c linux/3rdparty/rtl8
+ goto release_mlme_lock;
+ }
+
-+ memcpy(&pmlmepriv->assoc_ssid, ssid, sizeof(NDIS_802_11_SSID));
-+ pmlmepriv->assoc_by_bssid=false;
++ memcpy(&pmlmepriv->assoc_ssid, ssid, sizeof(struct ndis_802_11_ssid));
++ pmlmepriv->assoc_by_bssid =false;
+
+ if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == true) {
-+ pmlmepriv->to_join = true;
++ pmlmepriv->to_join = true;
+ }
+ else {
+ status = rtw_do_join(padapter);
+ }
+
+release_mlme_lock:
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
++ spin_unlock_bh(&pmlmepriv->lock);
+
+exit:
+ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_,
-+ ("-rtw_set_802_11_ssid: status=%d\n", status));
-+
-+_func_exit_;
++ ("-rtw_set_802_11_ssid: status =%d\n", status));
+
+ return status;
-+
+}
+
-+u8 rtw_set_802_11_connect(_adapter* padapter, u8 *bssid, NDIS_802_11_SSID *ssid)
++u8 rtw_set_802_11_connect(struct adapter *padapter, u8 *bssid, struct ndis_802_11_ssid *ssid)
+{
-+ _irqL irqL;
+ u8 status = _SUCCESS;
-+ u32 cur_time = 0;
+ bool bssid_valid = true;
+ bool ssid_valid = true;
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+
-+_func_enter_;
-+
+ if (!ssid || rtw_validate_ssid(ssid) == false)
+ ssid_valid = false;
+
@@ -11860,16 +9879,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ioctl_set.c linux/3rdparty/rtl8
+ goto exit;
+ }
+
-+ if(padapter->hw_init_completed==false){
++ if (padapter->hw_init_completed ==false) {
+ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_,
-+ ("set_ssid: hw_init_completed==false=>exit!!!\n"));
++ ("set_ssid: hw_init_completed ==false =>exit!!!\n"));
+ status = _FAIL;
+ goto exit;
+ }
+
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
++ spin_lock_bh(&pmlmepriv->lock);
+
-+ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" fw_state=0x%08x\n",
++ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" fw_state = 0x%08x\n",
+ FUNC_ADPT_ARG(padapter), get_fwstate(pmlmepriv));
+
+ if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == true) {
@@ -11885,9 +9904,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ioctl_set.c linux/3rdparty/rtl8
+ }
+
+ if (ssid && ssid_valid)
-+ memcpy(&pmlmepriv->assoc_ssid, ssid, sizeof(NDIS_802_11_SSID));
++ memcpy(&pmlmepriv->assoc_ssid, ssid, sizeof(struct ndis_802_11_ssid));
+ else
-+ memset(&pmlmepriv->assoc_ssid, 0, sizeof(NDIS_802_11_SSID));
++ memset(&pmlmepriv->assoc_ssid, 0, sizeof(struct ndis_802_11_ssid));
+
+ if (bssid && bssid_valid) {
+ memcpy(&pmlmepriv->assoc_bssid, bssid, ETH_ALEN);
@@ -11897,766 +9916,268 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ioctl_set.c linux/3rdparty/rtl8
+ }
+
+ if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == true) {
-+ pmlmepriv->to_join = true;
++ pmlmepriv->to_join = true;
+ }
+ else {
+ status = rtw_do_join(padapter);
+ }
+
+release_mlme_lock:
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
++ spin_unlock_bh(&pmlmepriv->lock);
+
+exit:
-+
-+_func_exit_;
-+
+ return status;
+}
+
-+u8 rtw_set_802_11_infrastructure_mode(_adapter* padapter,
-+ NDIS_802_11_NETWORK_INFRASTRUCTURE networktype)
++u8 rtw_set_802_11_infrastructure_mode(struct adapter *padapter,
++ enum NDIS_802_11_NETWORK_INFRASTRUCTURE networktype)
+{
-+ _irqL irqL;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+ struct wlan_network *cur_network = &pmlmepriv->cur_network;
-+ NDIS_802_11_NETWORK_INFRASTRUCTURE* pold_state = &(cur_network->network.InfrastructureMode);
-+
-+_func_enter_;
++ enum NDIS_802_11_NETWORK_INFRASTRUCTURE *pold_state = &(cur_network->network.InfrastructureMode);
+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_notice_,
-+ ("+rtw_set_802_11_infrastructure_mode: old=%d new=%d fw_state=0x%08x\n",
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_notice_,
++ ("+rtw_set_802_11_infrastructure_mode: old =%d new =%d fw_state = 0x%08x\n",
+ *pold_state, networktype, get_fwstate(pmlmepriv)));
-+
-+ if(*pold_state != networktype)
-+ {
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,(" change mode!"));
-+ //DBG_871X("change mode, old_mode=%d, new_mode=%d, fw_state=0x%x\n", *pold_state, networktype, get_fwstate(pmlmepriv));
+
-+ if(*pold_state==Ndis802_11APMode)
-+ {
-+ //change to other mode from Ndis802_11APMode
++ if (*pold_state != networktype)
++ {
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, (" change mode!"));
++ /* DBG_871X("change mode, old_mode =%d, new_mode =%d, fw_state = 0x%x\n", *pold_state, networktype, get_fwstate(pmlmepriv)); */
++
++ if (*pold_state ==Ndis802_11APMode)
++ {
++ /* change to other mode from Ndis802_11APMode */
+ cur_network->join_res = -1;
-+
-+#ifdef CONFIG_NATIVEAP_MLME
++
+ stop_ap_mode(padapter);
-+#endif
+ }
+
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+
-+ if((check_fwstate(pmlmepriv, _FW_LINKED)== true) ||(*pold_state==Ndis802_11IBSS))
++ spin_lock_bh(&pmlmepriv->lock);
++
++ if ((check_fwstate(pmlmepriv, _FW_LINKED) == true) ||(*pold_state ==Ndis802_11IBSS))
+ rtw_disassoc_cmd(padapter, 0, true);
+
-+ if((check_fwstate(pmlmepriv, _FW_LINKED)== true) ||
-+ (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)== true) )
++ if ((check_fwstate(pmlmepriv, _FW_LINKED) == true) ||
++ (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true))
+ rtw_free_assoc_resources(padapter, 1);
+
-+ if((*pold_state == Ndis802_11Infrastructure) ||(*pold_state == Ndis802_11IBSS))
++ if ((*pold_state == Ndis802_11Infrastructure) ||(*pold_state == Ndis802_11IBSS))
+ {
-+ if(check_fwstate(pmlmepriv, _FW_LINKED) == true)
-+ {
-+ rtw_indicate_disconnect(padapter); //will clr Linked_state; before this function, we must have chked whether issue dis-assoc_cmd or not
++ if (check_fwstate(pmlmepriv, _FW_LINKED) == true)
++ {
++ rtw_indicate_disconnect(padapter); /* will clr Linked_state; before this function, we must have chked whether issue dis-assoc_cmd or not */
+ }
+ }
-+
++
+ *pold_state = networktype;
+
+ _clr_fwstate_(pmlmepriv, ~WIFI_NULL_STATE);
-+
-+ switch(networktype)
++
++ switch (networktype)
+ {
+ case Ndis802_11IBSS:
+ set_fwstate(pmlmepriv, WIFI_ADHOC_STATE);
+ break;
-+
++
+ case Ndis802_11Infrastructure:
+ set_fwstate(pmlmepriv, WIFI_STATION_STATE);
+ break;
-+
++
+ case Ndis802_11APMode:
+ set_fwstate(pmlmepriv, WIFI_AP_STATE);
-+#ifdef CONFIG_NATIVEAP_MLME
+ start_ap_mode(padapter);
-+ //rtw_indicate_connect(padapter);
-+#endif
-+
++ /* rtw_indicate_connect(padapter); */
++
+ break;
+
+ case Ndis802_11AutoUnknown:
+ case Ndis802_11InfrastructureMax:
-+ break;
++ break;
+ }
+
-+ //SecClearAllKeys(adapter);
-+
-+ //RT_TRACE(COMP_OID_SET, DBG_LOUD, ("set_infrastructure: fw_state:%x after changing mode\n",
-+ // get_fwstate(pmlmepriv) ));
++ /* SecClearAllKeys(adapter); */
+
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
++ /* RT_TRACE(COMP_OID_SET, DBG_LOUD, ("set_infrastructure: fw_state:%x after changing mode\n", */
++ /* get_fwstate(pmlmepriv))); */
++
++ spin_unlock_bh(&pmlmepriv->lock);
+ }
-+
-+_func_exit_;
-+
+ return true;
+}
+
+
-+u8 rtw_set_802_11_disassociate(_adapter *padapter)
++u8 rtw_set_802_11_disassociate(struct adapter *padapter)
+{
-+ _irqL irqL;
+ struct mlme_priv * pmlmepriv = &padapter->mlmepriv;
+
-+_func_enter_;
-+
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
++ spin_lock_bh(&pmlmepriv->lock);
+
+ if (check_fwstate(pmlmepriv, _FW_LINKED) == true)
+ {
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("MgntActrtw_set_802_11_disassociate: rtw_indicate_disconnect\n"));
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("MgntActrtw_set_802_11_disassociate: rtw_indicate_disconnect\n"));
+
+ rtw_disassoc_cmd(padapter, 0, true);
+ rtw_indicate_disconnect(padapter);
-+ //modify for CONFIG_IEEE80211W, none 11w can use it
++ /* modify for CONFIG_IEEE80211W, none 11w can use it */
+ rtw_free_assoc_resources_cmd(padapter);
+ if (_FAIL == rtw_pwr_wakeup(padapter))
-+ DBG_871X("%s(): rtw_pwr_wakeup fail !!!\n",__FUNCTION__);
++ DBG_871X("%s(): rtw_pwr_wakeup fail !!!\n", __func__);
+ }
+
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+
-+_func_exit_;
++ spin_unlock_bh(&pmlmepriv->lock);
+
-+ return true;
++ return true;
+}
+
-+u8 rtw_set_802_11_bssid_list_scan(_adapter* padapter, NDIS_802_11_SSID *pssid, int ssid_max_num)
-+{
-+ _irqL irqL;
-+ struct mlme_priv *pmlmepriv= &padapter->mlmepriv;
-+ u8 res=true;
-+
-+_func_enter_;
++u8 rtw_set_802_11_bssid_list_scan(struct adapter *padapter, struct ndis_802_11_ssid *pssid, int ssid_max_num)
++{
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ u8 res =true;
+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("+rtw_set_802_11_bssid_list_scan(), fw_state=%x\n", get_fwstate(pmlmepriv)));
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_, ("+rtw_set_802_11_bssid_list_scan(), fw_state =%x\n", get_fwstate(pmlmepriv)));
+
+ if (padapter == NULL) {
-+ res=false;
++ res =false;
+ goto exit;
+ }
-+ if (padapter->hw_init_completed==false){
++ if (padapter->hw_init_completed ==false) {
+ res = false;
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("\n===rtw_set_802_11_bssid_list_scan:hw_init_completed==false===\n"));
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_, ("\n ===rtw_set_802_11_bssid_list_scan:hw_init_completed ==false ===\n"));
+ goto exit;
+ }
-+
++
+ if ((check_fwstate(pmlmepriv, _FW_UNDER_SURVEY|_FW_UNDER_LINKING) == true) ||
+ (pmlmepriv->LinkDetectInfo.bBusyTraffic == true))
+ {
-+ // Scan or linking is in progress, do nothing.
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("rtw_set_802_11_bssid_list_scan fail since fw_state = %x\n", get_fwstate(pmlmepriv)));
++ /* Scan or linking is in progress, do nothing. */
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_, ("rtw_set_802_11_bssid_list_scan fail since fw_state = %x\n", get_fwstate(pmlmepriv)));
+ res = true;
+
-+ if(check_fwstate(pmlmepriv, (_FW_UNDER_SURVEY|_FW_UNDER_LINKING))== true){
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("\n###_FW_UNDER_SURVEY|_FW_UNDER_LINKING\n\n"));
++ if (check_fwstate(pmlmepriv, (_FW_UNDER_SURVEY|_FW_UNDER_LINKING)) == true) {
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_, ("\n###_FW_UNDER_SURVEY|_FW_UNDER_LINKING\n\n"));
+ } else {
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("\n###pmlmepriv->sitesurveyctrl.traffic_busy==true\n\n"));
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_, ("\n###pmlmepriv->sitesurveyctrl.traffic_busy ==true\n\n"));
+ }
-+ } else {
++ } else {
+ if (rtw_is_scan_deny(padapter)) {
+ DBG_871X(FUNC_ADPT_FMT": scan deny\n", FUNC_ADPT_ARG(padapter));
+ indicate_wx_scan_complete_event(padapter);
+ return _SUCCESS;
+ }
-+
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+
++
++ spin_lock_bh(&pmlmepriv->lock);
++
+ res = rtw_sitesurvey_cmd(padapter, pssid, ssid_max_num, NULL, 0);
-+
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
++
++ spin_unlock_bh(&pmlmepriv->lock);
+ }
+exit:
-+
-+_func_exit_;
+
-+ return res;
++ return res;
+}
+
-+u8 rtw_set_802_11_authentication_mode(_adapter* padapter, NDIS_802_11_AUTHENTICATION_MODE authmode)
++u8 rtw_set_802_11_authentication_mode(struct adapter *padapter, enum NDIS_802_11_AUTHENTICATION_MODE authmode)
+{
+ struct security_priv *psecuritypriv = &padapter->securitypriv;
+ int res;
+ u8 ret;
-+
-+_func_enter_;
+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("set_802_11_auth.mode(): mode=%x\n", authmode));
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("set_802_11_auth.mode(): mode =%x\n", authmode));
+
-+ psecuritypriv->ndisauthtype=authmode;
-+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("rtw_set_802_11_authentication_mode:psecuritypriv->ndisauthtype=%d", psecuritypriv->ndisauthtype));
-+
-+ if(psecuritypriv->ndisauthtype>3)
-+ psecuritypriv->dot11AuthAlgrthm=dot11AuthAlgrthm_8021X;
-+
-+#ifdef CONFIG_WAPI_SUPPORT
-+ if(psecuritypriv->ndisauthtype == 6)
-+ psecuritypriv->dot11AuthAlgrthm=dot11AuthAlgrthm_WAPI;
-+#endif
++ psecuritypriv->ndisauthtype =authmode;
+
-+ res=rtw_set_auth(padapter,psecuritypriv);
-+
-+ if(res==_SUCCESS)
-+ ret=true;
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("rtw_set_802_11_authentication_mode:psecuritypriv->ndisauthtype =%d", psecuritypriv->ndisauthtype));
++
++ if (psecuritypriv->ndisauthtype>3)
++ psecuritypriv->dot11AuthAlgrthm =dot11AuthAlgrthm_8021X;
++
++ res =rtw_set_auth(padapter, psecuritypriv);
++
++ if (res == _SUCCESS)
++ ret =true;
+ else
-+ ret=false;
-+
-+_func_exit_;
++ ret =false;
+
+ return ret;
+}
+
-+u8 rtw_set_802_11_add_wep(_adapter* padapter, NDIS_802_11_WEP *wep){
++u8 rtw_set_802_11_add_wep(struct adapter *padapter, struct ndis_802_11_wep *wep) {
+
-+ u8 bdefaultkey;
-+ u8 btransmitkey;
-+ sint keyid,res;
-+ struct security_priv* psecuritypriv=&(padapter->securitypriv);
-+ u8 ret=_SUCCESS;
++ u8 bdefaultkey;
++ u8 btransmitkey;
++ sint keyid, res;
++ struct security_priv* psecuritypriv =&(padapter->securitypriv);
++ u8 ret = _SUCCESS;
+
-+_func_enter_;
++ bdefaultkey =(wep->KeyIndex & 0x40000000) > 0 ? false : true; /* for ??? */
++ btransmitkey = (wep->KeyIndex & 0x80000000) > 0 ? true : false; /* for ??? */
++ keyid =wep->KeyIndex & 0x3fffffff;
+
-+ bdefaultkey=(wep->KeyIndex & 0x40000000) > 0 ? false : true; //for ???
-+ btransmitkey= (wep->KeyIndex & 0x80000000) > 0 ? true : false; //for ???
-+ keyid=wep->KeyIndex & 0x3fffffff;
-+
-+ if(keyid>=4)
++ if (keyid>=4)
+ {
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("MgntActrtw_set_802_11_add_wep:keyid>4=>fail\n"));
-+ ret=false;
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_, ("MgntActrtw_set_802_11_add_wep:keyid>4 =>fail\n"));
++ ret =false;
+ goto exit;
+ }
-+
-+ switch(wep->KeyLength)
++
++ switch (wep->KeyLength)
+ {
+ case 5:
-+ psecuritypriv->dot11PrivacyAlgrthm=_WEP40_;
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("MgntActrtw_set_802_11_add_wep:wep->KeyLength=5\n"));
++ psecuritypriv->dot11PrivacyAlgrthm = _WEP40_;
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("MgntActrtw_set_802_11_add_wep:wep->KeyLength =5\n"));
+ break;
+ case 13:
-+ psecuritypriv->dot11PrivacyAlgrthm=_WEP104_;
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("MgntActrtw_set_802_11_add_wep:wep->KeyLength=13\n"));
++ psecuritypriv->dot11PrivacyAlgrthm = _WEP104_;
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("MgntActrtw_set_802_11_add_wep:wep->KeyLength = 13\n"));
+ break;
+ default:
-+ psecuritypriv->dot11PrivacyAlgrthm=_NO_PRIVACY_;
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("MgntActrtw_set_802_11_add_wep:wep->KeyLength!=5 or 13\n"));
++ psecuritypriv->dot11PrivacyAlgrthm = _NO_PRIVACY_;
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("MgntActrtw_set_802_11_add_wep:wep->KeyLength!=5 or 13\n"));
+ break;
+ }
-+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("rtw_set_802_11_add_wep:befor memcpy, wep->KeyLength=0x%x wep->KeyIndex=0x%x keyid =%x\n",wep->KeyLength,wep->KeyIndex,keyid));
+
-+ memcpy(&(psecuritypriv->dot11DefKey[keyid].skey[0]),&(wep->KeyMaterial),wep->KeyLength);
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("rtw_set_802_11_add_wep:befor memcpy, wep->KeyLength = 0x%x wep->KeyIndex = 0x%x keyid =%x\n", wep->KeyLength, wep->KeyIndex, keyid));
++
++ memcpy(&(psecuritypriv->dot11DefKey[keyid].skey[0]),&(wep->KeyMaterial), wep->KeyLength);
+
+ psecuritypriv->dot11DefKeylen[keyid]=wep->KeyLength;
+
-+ psecuritypriv->dot11PrivacyKeyIndex=keyid;
++ psecuritypriv->dot11PrivacyKeyIndex =keyid;
+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("rtw_set_802_11_add_wep:security key material : %x %x %x %x %x %x %x %x %x %x %x %x %x \n",
-+ psecuritypriv->dot11DefKey[keyid].skey[0],psecuritypriv->dot11DefKey[keyid].skey[1],psecuritypriv->dot11DefKey[keyid].skey[2],
-+ psecuritypriv->dot11DefKey[keyid].skey[3],psecuritypriv->dot11DefKey[keyid].skey[4],psecuritypriv->dot11DefKey[keyid].skey[5],
-+ psecuritypriv->dot11DefKey[keyid].skey[6],psecuritypriv->dot11DefKey[keyid].skey[7],psecuritypriv->dot11DefKey[keyid].skey[8],
-+ psecuritypriv->dot11DefKey[keyid].skey[9],psecuritypriv->dot11DefKey[keyid].skey[10],psecuritypriv->dot11DefKey[keyid].skey[11],
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("rtw_set_802_11_add_wep:security key material : %x %x %x %x %x %x %x %x %x %x %x %x %x\n",
++ psecuritypriv->dot11DefKey[keyid].skey[0], psecuritypriv->dot11DefKey[keyid].skey[1], psecuritypriv->dot11DefKey[keyid].skey[2],
++ psecuritypriv->dot11DefKey[keyid].skey[3], psecuritypriv->dot11DefKey[keyid].skey[4], psecuritypriv->dot11DefKey[keyid].skey[5],
++ psecuritypriv->dot11DefKey[keyid].skey[6], psecuritypriv->dot11DefKey[keyid].skey[7], psecuritypriv->dot11DefKey[keyid].skey[8],
++ psecuritypriv->dot11DefKey[keyid].skey[9], psecuritypriv->dot11DefKey[keyid].skey[10], psecuritypriv->dot11DefKey[keyid].skey[11],
+ psecuritypriv->dot11DefKey[keyid].skey[12]));
+
-+ res=rtw_set_key(padapter,psecuritypriv, keyid, 1, true);
-+
-+ if(res==_FAIL)
-+ ret= false;
++ res =rtw_set_key(padapter, psecuritypriv, keyid, 1, true);
++
++ if (res == _FAIL)
++ ret = false;
+exit:
-+
-+_func_exit_;
+
+ return ret;
-+
-+}
-+
-+u8 rtw_set_802_11_remove_wep(_adapter* padapter, u32 keyindex){
-+
-+ u8 ret=_SUCCESS;
-+
-+_func_enter_;
-+
-+ if (keyindex >= 0x80000000 || padapter == NULL){
-+
-+ ret=false;
-+ goto exit;
-+
-+ }
-+ else
-+ {
-+ int res;
-+ struct security_priv* psecuritypriv=&(padapter->securitypriv);
-+ if( keyindex < 4 ){
-+
-+ memset(&psecuritypriv->dot11DefKey[keyindex], 0, 16);
-+
-+ res=rtw_set_key(padapter,psecuritypriv,keyindex, 0, true);
-+
-+ psecuritypriv->dot11DefKeylen[keyindex]=0;
-+
-+ if(res==_FAIL)
-+ ret=_FAIL;
-+
-+ }
-+ else
-+ {
-+ ret=_FAIL;
-+ }
-+
-+ }
-+
-+exit:
-+
-+_func_exit_;
-+
-+ return ret;
-+
-+}
-+
-+u8 rtw_set_802_11_add_key(_adapter* padapter, NDIS_802_11_KEY *key){
-+
-+ uint encryptionalgo;
-+ u8 * pbssid;
-+ struct sta_info *stainfo;
-+ u8 bgroup = false;
-+ u8 bgrouptkey = false;//can be remove later
-+ u8 ret=_SUCCESS;
-+
-+_func_enter_;
-+
-+ if (((key->KeyIndex & 0x80000000) == 0) && ((key->KeyIndex & 0x40000000) > 0)){
-+
-+ // It is invalid to clear bit 31 and set bit 30. If the miniport driver encounters this combination,
-+ // it must fail the request and return NDIS_STATUS_INVALID_DATA.
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("rtw_set_802_11_add_key: ((key->KeyIndex & 0x80000000) == 0)[=%d] ",(int)(key->KeyIndex & 0x80000000) == 0));
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("rtw_set_802_11_add_key:((key->KeyIndex & 0x40000000) > 0)[=%d]" , (int)(key->KeyIndex & 0x40000000) > 0));
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("rtw_set_802_11_add_key: key->KeyIndex=%d \n" ,(int)key->KeyIndex));
-+ ret= _FAIL;
-+ goto exit;
-+ }
-+
-+ if(key->KeyIndex & 0x40000000)
-+ {
-+ // Pairwise key
-+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("OID_802_11_ADD_KEY: +++++ Pairwise key +++++\n"));
-+
-+ pbssid=get_bssid(&padapter->mlmepriv);
-+ stainfo=rtw_get_stainfo(&padapter->stapriv, pbssid);
-+
-+ if((stainfo!=NULL)&&(padapter->securitypriv.dot11AuthAlgrthm==dot11AuthAlgrthm_8021X)){
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("OID_802_11_ADD_KEY:( stainfo!=NULL)&&(Adapter->securitypriv.dot11AuthAlgrthm==dot11AuthAlgrthm_8021X)\n"));
-+ encryptionalgo=stainfo->dot118021XPrivacy;
-+ }
-+ else{
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("OID_802_11_ADD_KEY: stainfo==NULL)||(Adapter->securitypriv.dot11AuthAlgrthm!=dot11AuthAlgrthm_8021X)\n"));
-+ encryptionalgo=padapter->securitypriv.dot11PrivacyAlgrthm;
-+ }
-+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("rtw_set_802_11_add_key: (encryptionalgo ==%d)!\n",encryptionalgo ));
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("rtw_set_802_11_add_key: (Adapter->securitypriv.dot11PrivacyAlgrthm ==%d)!\n",padapter->securitypriv.dot11PrivacyAlgrthm));
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("rtw_set_802_11_add_key: (Adapter->securitypriv.dot11AuthAlgrthm ==%d)!\n",padapter->securitypriv.dot11AuthAlgrthm));
-+
-+ if((stainfo!=NULL)){
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("rtw_set_802_11_add_key: (stainfo->dot118021XPrivacy ==%d)!\n", stainfo->dot118021XPrivacy));
-+ }
-+
-+ if(key->KeyIndex & 0x000000FF){
-+ // The key index is specified in the lower 8 bits by values of zero to 255.
-+ // The key index should be set to zero for a Pairwise key, and the driver should fail with
-+ // NDIS_STATUS_INVALID_DATA if the lower 8 bits is not zero
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,(" key->KeyIndex & 0x000000FF.\n"));
-+ ret= _FAIL;
-+ goto exit;
-+ }
-+
-+ // check BSSID
-+ if (IS_MAC_ADDRESS_BROADCAST(key->BSSID) == true){
-+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("MacAddr_isBcst(key->BSSID)\n"));
-+ ret= false;
-+ goto exit;
-+ }
-+
-+ // Check key length for TKIP.
-+ //if(encryptionAlgorithm == RT_ENC_TKIP_ENCRYPTION && key->KeyLength != 32)
-+ if((encryptionalgo== _TKIP_)&& (key->KeyLength != 32)){
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("TKIP KeyLength:0x%x != 32\n", key->KeyLength));
-+ ret=_FAIL;
-+ goto exit;
-+
-+ }
-+
-+ // Check key length for AES.
-+ if((encryptionalgo== _AES_)&& (key->KeyLength != 16)) {
-+ // For our supplicant, EAPPkt9x.vxd, cannot differentiate TKIP and AES case.
-+ if(key->KeyLength == 32) {
-+ key->KeyLength = 16;
-+ } else {
-+ ret= _FAIL;
-+ goto exit;
-+ }
-+ }
-+
-+ // Check key length for WEP. For NDTEST, 2005.01.27, by rcnjko.
-+ if( (encryptionalgo== _WEP40_|| encryptionalgo== _WEP104_) && (key->KeyLength != 5 || key->KeyLength != 13)) {
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("WEP KeyLength:0x%x != 5 or 13\n", key->KeyLength));
-+ ret=_FAIL;
-+ goto exit;
-+ }
-+
-+ bgroup = false;
-+
-+ // Check the pairwise key. Added by Annie, 2005-07-06.
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("------------------------------------------\n"));
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("[Pairwise Key set]\n"));
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("------------------------------------------\n"));
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("key index: 0x%8x(0x%8x)\n", key->KeyIndex,(key->KeyIndex&0x3)));
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("key Length: %d\n", key->KeyLength));
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("------------------------------------------\n"));
-+
-+ }
-+ else
-+ {
-+ // Group key - KeyIndex(BIT30==0)
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("OID_802_11_ADD_KEY: +++++ Group key +++++\n"));
-+
-+
-+ // when add wep key through add key and didn't assigned encryption type before
-+ if((padapter->securitypriv.ndisauthtype<=3)&&(padapter->securitypriv.dot118021XGrpPrivacy==0))
-+ {
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("keylen=%d( Adapter->securitypriv.dot11PrivacyAlgrthm=%x )padapter->securitypriv.dot118021XGrpPrivacy(%x)\n", key->KeyLength,padapter->securitypriv.dot11PrivacyAlgrthm,padapter->securitypriv.dot118021XGrpPrivacy));
-+
-+ switch(key->KeyLength)
-+ {
-+ case 5:
-+ padapter->securitypriv.dot11PrivacyAlgrthm=_WEP40_;
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("Adapter->securitypriv.dot11PrivacyAlgrthm= %x key->KeyLength=%u\n", padapter->securitypriv.dot11PrivacyAlgrthm,key->KeyLength));
-+ break;
-+ case 13:
-+ padapter->securitypriv.dot11PrivacyAlgrthm=_WEP104_;
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("Adapter->securitypriv.dot11PrivacyAlgrthm= %x key->KeyLength=%u\n", padapter->securitypriv.dot11PrivacyAlgrthm,key->KeyLength));
-+ break;
-+ default:
-+ padapter->securitypriv.dot11PrivacyAlgrthm=_NO_PRIVACY_;
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("Adapter->securitypriv.dot11PrivacyAlgrthm= %x key->KeyLength=%u \n", padapter->securitypriv.dot11PrivacyAlgrthm,key->KeyLength));
-+ break;
-+ }
-+
-+ encryptionalgo=padapter->securitypriv.dot11PrivacyAlgrthm;
-+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,(" Adapter->securitypriv.dot11PrivacyAlgrthm=%x\n", padapter->securitypriv.dot11PrivacyAlgrthm));
-+
-+ }
-+ else
-+ {
-+ encryptionalgo=padapter->securitypriv.dot118021XGrpPrivacy;
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("( Adapter->securitypriv.dot11PrivacyAlgrthm=%x )encryptionalgo(%x)=padapter->securitypriv.dot118021XGrpPrivacy(%x)keylen=%d\n", padapter->securitypriv.dot11PrivacyAlgrthm,encryptionalgo,padapter->securitypriv.dot118021XGrpPrivacy,key->KeyLength));
-+
-+ }
-+
-+ if((check_fwstate(&padapter->mlmepriv, WIFI_ADHOC_STATE)==true) && (IS_MAC_ADDRESS_BROADCAST(key->BSSID) == false)) {
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,(" IBSS but BSSID is not Broadcast Address.\n"));
-+ ret= _FAIL;
-+ goto exit;
-+ }
-+
-+ // Check key length for TKIP
-+ if((encryptionalgo== _TKIP_) && (key->KeyLength != 32)) {
-+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,(" TKIP GTK KeyLength:%u != 32\n", key->KeyLength));
-+ ret= _FAIL;
-+ goto exit;
-+
-+ } else if(encryptionalgo== _AES_ && (key->KeyLength != 16 && key->KeyLength != 32) ) {
-+
-+ // Check key length for AES
-+ // For NDTEST, we allow keylen=32 in this case. 2005.01.27, by rcnjko.
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("<=== SetInfo, OID_802_11_ADD_KEY: AES GTK KeyLength:%u != 16 or 32\n", key->KeyLength));
-+ ret= _FAIL;
-+ goto exit;
-+ }
-+
-+ // Change the key length for EAPPkt9x.vxd. Added by Annie, 2005-11-03.
-+ if((encryptionalgo== _AES_) && (key->KeyLength == 32) ) {
-+ key->KeyLength = 16;
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("AES key length changed: %u\n", key->KeyLength) );
-+ }
-+
-+ if(key->KeyIndex & 0x8000000) {//error ??? 0x8000_0000
-+ bgrouptkey = true;
-+ }
-+
-+ if((check_fwstate(&padapter->mlmepriv, WIFI_ADHOC_STATE)==true)&&(check_fwstate(&padapter->mlmepriv, _FW_LINKED)==true))
-+ {
-+ bgrouptkey = true;
-+ }
-+
-+ bgroup = true;
-+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("------------------------------------------\n") );
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("[Group Key set]\n") );
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("------------------------------------------\n")) ;
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("key index: 0x%8x(0x%8x)\n", key->KeyIndex,(key->KeyIndex&0x3)));
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("key Length: %d\n", key->KeyLength)) ;
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("------------------------------------------\n"));
-+
-+ }
-+
-+ // If WEP encryption algorithm, just call rtw_set_802_11_add_wep().
-+ if((padapter->securitypriv.dot11AuthAlgrthm !=dot11AuthAlgrthm_8021X)&&(encryptionalgo== _WEP40_ || encryptionalgo== _WEP104_))
-+ {
-+ u8 ret;
-+ u32 keyindex;
-+ u32 len = FIELD_OFFSET(NDIS_802_11_KEY, KeyMaterial) + key->KeyLength;
-+ NDIS_802_11_WEP *wep = &padapter->securitypriv.ndiswep;
-+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("OID_802_11_ADD_KEY: +++++ WEP key +++++\n"));
-+
-+ wep->Length = len;
-+ keyindex = key->KeyIndex&0x7fffffff;
-+ wep->KeyIndex = keyindex ;
-+ wep->KeyLength = key->KeyLength;
-+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("OID_802_11_ADD_KEY:Before memcpy \n"));
-+
-+ memcpy(wep->KeyMaterial, key->KeyMaterial, key->KeyLength);
-+ memcpy(&(padapter->securitypriv.dot11DefKey[keyindex].skey[0]), key->KeyMaterial, key->KeyLength);
-+
-+ padapter->securitypriv.dot11DefKeylen[keyindex]=key->KeyLength;
-+ padapter->securitypriv.dot11PrivacyKeyIndex=keyindex;
-+
-+ ret = rtw_set_802_11_add_wep(padapter, wep);
-+
-+ goto exit;
-+
-+ }
-+
-+ if(key->KeyIndex & 0x20000000){
-+ // SetRSC
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("OID_802_11_ADD_KEY: +++++ SetRSC+++++\n"));
-+ if(bgroup == true)
-+ {
-+ NDIS_802_11_KEY_RSC keysrc=key->KeyRSC & 0x00FFFFFFFFFFFFULL;
-+ memcpy(&padapter->securitypriv.dot11Grprxpn, &keysrc, 8);
-+ }
-+ else
-+ {
-+ NDIS_802_11_KEY_RSC keysrc=key->KeyRSC & 0x00FFFFFFFFFFFFULL;
-+ memcpy(&padapter->securitypriv.dot11Grptxpn, &keysrc, 8);
-+ }
-+
-+ }
-+
-+ // Indicate this key idx is used for TX
-+ // Save the key in KeyMaterial
-+ if(bgroup == true) // Group transmit key
-+ {
-+ int res;
-+
-+ if(bgrouptkey == true)
-+ {
-+ padapter->securitypriv.dot118021XGrpKeyid=(u8)key->KeyIndex;
-+ }
-+
-+ if((key->KeyIndex&0x3) == 0){
-+ ret = _FAIL;
-+ goto exit;
-+ }
-+
-+ memset(&padapter->securitypriv.dot118021XGrpKey[(u8)((key->KeyIndex) & 0x03)], 0, 16);
-+ memset(&padapter->securitypriv.dot118021XGrptxmickey[(u8)((key->KeyIndex) & 0x03)], 0, 16);
-+ memset(&padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)], 0, 16);
-+
-+ if((key->KeyIndex & 0x10000000))
-+ {
-+ memcpy(&padapter->securitypriv.dot118021XGrptxmickey[(u8)((key->KeyIndex) & 0x03)], key->KeyMaterial + 16, 8);
-+ memcpy(&padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)], key->KeyMaterial + 24, 8);
-+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("\n rtw_set_802_11_add_key:rx mic :0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x\n",
-+ padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)].skey[0],padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex-1) & 0x03)].skey[1],
-+ padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)].skey[2],padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex-1) & 0x03)].skey[3],
-+ padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)].skey[4],padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex-1) & 0x03)].skey[5],
-+ padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)].skey[6],padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex-1) & 0x03)].skey[7]));
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("\n rtw_set_802_11_add_key:set Group mic key!!!!!!!!\n"));
-+
-+ }
-+ else
-+ {
-+ memcpy(&padapter->securitypriv.dot118021XGrptxmickey[(u8)((key->KeyIndex) & 0x03)], key->KeyMaterial + 24, 8);
-+ memcpy(&padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)], key->KeyMaterial + 16, 8);
-+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("\n rtw_set_802_11_add_key:rx mic :0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x\n",
-+ padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)].skey[0],padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex-1) & 0x03)].skey[1],
-+ padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)].skey[2],padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex-1) & 0x03)].skey[3],
-+ padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)].skey[4],padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex-1) & 0x03)].skey[5],
-+ padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex) & 0x03)].skey[6],padapter->securitypriv.dot118021XGrprxmickey[(u8)((key->KeyIndex-1) & 0x03)].skey[7]));
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("\n rtw_set_802_11_add_key:set Group mic key!!!!!!!!\n"));
-+
-+ }
-+
-+ //set group key by index
-+ memcpy(&padapter->securitypriv.dot118021XGrpKey[(u8)((key->KeyIndex) & 0x03)], key->KeyMaterial, key->KeyLength);
-+
-+ key->KeyIndex=key->KeyIndex & 0x03;
-+
-+ padapter->securitypriv.binstallGrpkey=true;
-+
-+ padapter->securitypriv.bcheck_grpkey=false;
-+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("reset group key"));
-+
-+ res=rtw_set_key(padapter,&padapter->securitypriv, key->KeyIndex, 1, true);
-+
-+ if(res==_FAIL)
-+ ret= _FAIL;
-+
-+ goto exit;
-+
-+ }
-+ else // Pairwise Key
-+ {
-+ u8 res;
-+
-+ pbssid=get_bssid(&padapter->mlmepriv);
-+ stainfo=rtw_get_stainfo(&padapter->stapriv , pbssid );
-+
-+ if(stainfo!=NULL)
-+ {
-+ memset( &stainfo->dot118021x_UncstKey, 0, 16);// clear keybuffer
-+
-+ memcpy(&stainfo->dot118021x_UncstKey, key->KeyMaterial, 16);
-+
-+ if(encryptionalgo== _TKIP_)
-+ {
-+ padapter->securitypriv.busetkipkey=false;
-+
-+ //_set_timer(&padapter->securitypriv.tkip_timer, 50);
-+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("\n ==========_set_timer\n"));
-+
-+ // if TKIP, save the Receive/Transmit MIC key in KeyMaterial[128-255]
-+ if((key->KeyIndex & 0x10000000)){
-+ memcpy(&stainfo->dot11tkiptxmickey, key->KeyMaterial + 16, 8);
-+ memcpy(&stainfo->dot11tkiprxmickey, key->KeyMaterial + 24, 8);
-+
-+ } else {
-+ memcpy(&stainfo->dot11tkiptxmickey, key->KeyMaterial + 24, 8);
-+ memcpy(&stainfo->dot11tkiprxmickey, key->KeyMaterial + 16, 8);
-+
-+ }
-+
-+ }
-+ else if(encryptionalgo == _AES_)
-+ {
-+
-+ }
-+
-+
-+ //Set key to CAM through H2C command
-+ if(bgrouptkey)//never go to here
-+ {
-+ res=rtw_setstakey_cmd(padapter, stainfo, false, true);
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("\n rtw_set_802_11_add_key:rtw_setstakey_cmd(group)\n"));
-+ }
-+ else{
-+ res=rtw_setstakey_cmd(padapter, stainfo, true, true);
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("\n rtw_set_802_11_add_key:rtw_setstakey_cmd(unicast)\n"));
-+ }
-+
-+ if(res ==false)
-+ ret= _FAIL;
-+
-+ }
-+
-+ }
-+
-+exit:
-+
-+_func_exit_;
-+
-+ return ret;
-+}
-+
-+u8 rtw_set_802_11_remove_key(_adapter* padapter, NDIS_802_11_REMOVE_KEY *key){
-+
-+ uint encryptionalgo;
-+ u8 * pbssid;
-+ struct sta_info *stainfo;
-+ u8 bgroup = (key->KeyIndex & 0x4000000) > 0 ? false: true;
-+ u8 keyIndex = (u8)key->KeyIndex & 0x03;
-+ u8 ret=_SUCCESS;
-+
-+_func_enter_;
-+
-+ if ((key->KeyIndex & 0xbffffffc) > 0) {
-+ ret=_FAIL;
-+ goto exit;
-+ }
-+
-+ if (bgroup == true) {
-+ encryptionalgo= padapter->securitypriv.dot118021XGrpPrivacy;
-+ // clear group key by index
-+ //NdisZeroMemory(Adapter->MgntInfo.SecurityInfo.KeyBuf[keyIndex], MAX_WEP_KEY_LEN);
-+ //Adapter->MgntInfo.SecurityInfo.KeyLen[keyIndex] = 0;
-+
-+ memset(&padapter->securitypriv.dot118021XGrpKey[keyIndex], 0, 16);
-+
-+ //! \todo Send a H2C Command to Firmware for removing this Key in CAM Entry.
-+
-+ } else {
-+
-+ pbssid=get_bssid(&padapter->mlmepriv);
-+ stainfo=rtw_get_stainfo(&padapter->stapriv , pbssid );
-+ if(stainfo !=NULL){
-+ encryptionalgo=stainfo->dot118021XPrivacy;
-+
-+ // clear key by BSSID
-+ memset(&stainfo->dot118021x_UncstKey, 0, 16);
-+
-+ //! \todo Send a H2C Command to Firmware for disable this Key in CAM Entry.
-+
-+ }
-+ else{
-+ ret= _FAIL;
-+ goto exit;
-+ }
-+ }
-+
-+exit:
-+
-+_func_exit_;
-+
-+ return true;
-+
+}
+
+/*
-+* rtw_get_cur_max_rate -
-+* @adapter: pointer to _adapter structure
-+*
++* rtw_get_cur_max_rate -
++* @adapter: pointer to struct adapter structure
++*
+* Return 0 or 100Kbps
+*/
-+u16 rtw_get_cur_max_rate(_adapter *adapter)
++u16 rtw_get_cur_max_rate(struct adapter *adapter)
+{
+ int i = 0;
-+ u16 rate = 0, max_rate = 0;
-+ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
-+ WLAN_BSSID_EX *pcur_bss = &pmlmepriv->cur_network.network;
++ u16 rate = 0, max_rate = 0;
++ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
++ struct wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network;
+ struct sta_info *psta = NULL;
-+ u8 short_GI=0;
-+ u8 rf_type = 0;
++ u8 short_GI = 0;
++ u8 rf_type = 0;
+
-+ if((check_fwstate(pmlmepriv, _FW_LINKED) != true)
++ if ((check_fwstate(pmlmepriv, _FW_LINKED) != true)
+ && (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) != true))
+ return 0;
+
@@ -12676,113 +10197,29 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_ioctl_set.c linux/3rdparty/rtl8
+ psta->htpriv.ht_cap.supp_mcs_set
+ );
+ }
-+ else
++ else
+ {
-+ while( (pcur_bss->SupportedRates[i]!=0) && (pcur_bss->SupportedRates[i]!=0xFF))
++ while ((pcur_bss->SupportedRates[i]!= 0) && (pcur_bss->SupportedRates[i]!= 0xFF))
+ {
+ rate = pcur_bss->SupportedRates[i]&0x7F;
-+ if(rate>max_rate)
++ if (rate>max_rate)
+ max_rate = rate;
+ i++;
+ }
-+
++
+ max_rate = max_rate*10/2;
+ }
+
+ return max_rate;
+}
-+
-+/*
-+* rtw_set_scan_mode -
-+* @adapter: pointer to _adapter structure
-+* @scan_mode:
-+*
-+* Return _SUCCESS or _FAIL
-+*/
-+int rtw_set_scan_mode(_adapter *adapter, RT_SCAN_TYPE scan_mode)
-+{
-+ if(scan_mode != SCAN_ACTIVE && scan_mode != SCAN_PASSIVE)
-+ return _FAIL;
-+
-+ adapter->mlmepriv.scan_mode = scan_mode;
-+
-+ return _SUCCESS;
-+}
-+
-+/*
-+* rtw_set_channel_plan -
-+* @adapter: pointer to _adapter structure
-+* @channel_plan:
-+*
-+* Return _SUCCESS or _FAIL
-+*/
-+int rtw_set_channel_plan(_adapter *adapter, u8 channel_plan)
-+{
-+ struct registry_priv *pregistrypriv = &adapter->registrypriv;
-+ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
-+
-+ //handle by cmd_thread to sync with scan operation
-+ return rtw_set_chplan_cmd(adapter, channel_plan, 1, 1);
-+}
-+
-+/*
-+* rtw_set_country -
-+* @adapter: pointer to _adapter structure
-+* @country_code: string of country code
-+*
-+* Return _SUCCESS or _FAIL
-+*/
-+int rtw_set_country(_adapter *adapter, const char *country_code)
-+{
-+ int channel_plan = RT_CHANNEL_DOMAIN_WORLD_WIDE_5G;
-+
-+ DBG_871X("%s country_code:%s\n", __func__, country_code);
-+
-+ //TODO: should have a table to match country code and RT_CHANNEL_DOMAIN
-+ //TODO: should consider 2-character and 3-character country code
-+ if(0 == strcmp(country_code, "US"))
-+ channel_plan = RT_CHANNEL_DOMAIN_FCC;
-+ else if(0 == strcmp(country_code, "EU"))
-+ channel_plan = RT_CHANNEL_DOMAIN_ETSI;
-+ else if(0 == strcmp(country_code, "JP"))
-+ channel_plan = RT_CHANNEL_DOMAIN_MKK;
-+ else if(0 == strcmp(country_code, "CN"))
-+ channel_plan = RT_CHANNEL_DOMAIN_CHINA;
-+ else if(0 == strcmp(country_code, "IN"))
-+ channel_plan = RT_CHANNEL_DOMAIN_GLOBAL_DOAMIN;
-+ else
-+ DBG_871X("%s unknown country_code:%s\n", __FUNCTION__, country_code);
-+
-+ return rtw_set_channel_plan(adapter, channel_plan);
-+}
-+
-+/*
-+* rtw_set_band -
-+* @adapter: pointer to _adapter structure
-+* @band: band to set
-+*
-+* Return _SUCCESS or _FAIL
-+*/
-+int rtw_set_band(_adapter *adapter, enum _BAND band)
-+{
-+ if (rtw_band_valid(band)) {
-+ DBG_871X(FUNC_ADPT_FMT" band:%d\n", FUNC_ADPT_ARG(adapter), band);
-+ adapter->setband = band;
-+ return _SUCCESS;
-+ }
-+
-+ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" band:%d fail\n", FUNC_ADPT_ARG(adapter), band);
-+ return _FAIL;
-+}
-+
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs/core/rtw_mlme.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_mlme.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,3696 @@
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_mlme.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_mlme.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_mlme.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_mlme.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,3331 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
-+ *
++ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
@@ -12792,85 +10229,73 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
+#define _RTW_MLME_C_
+
+#include
++#include
+#include
+
++extern u8 rtw_do_join(struct adapter *padapter);
+
-+extern void indicate_wx_scan_complete_event(_adapter *padapter);
-+extern u8 rtw_do_join(_adapter * padapter);
-+
-+
-+sint _rtw_init_mlme_priv (_adapter* padapter)
++sint _rtw_init_mlme_priv (struct adapter *padapter)
+{
+ sint i;
-+ u8 *pbuf;
++ u8 *pbuf;
+ struct wlan_network *pnetwork;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+ sint res = _SUCCESS;
+
-+_func_enter_;
-+
-+ // We don't need to memset padapter->XXX to zero, because adapter is allocated by rtw_zvmalloc().
-+ //memset((u8 *)pmlmepriv, 0, sizeof(struct mlme_priv));
++ /* We don't need to memset padapter->XXX to zero, because adapter is allocated by vzalloc(). */
++ /* memset((u8 *)pmlmepriv, 0, sizeof(struct mlme_priv)); */
+
+ pmlmepriv->nic_hdl = (u8 *)padapter;
+
+ pmlmepriv->pscanned = NULL;
-+ pmlmepriv->fw_state = WIFI_STATION_STATE; // Must sync with rtw_wdev_alloc()
-+ // wdev->iftype = NL80211_IFTYPE_STATION
++ pmlmepriv->fw_state = WIFI_STATION_STATE; /* Must sync with rtw_wdev_alloc() */
++ /* wdev->iftype = NL80211_IFTYPE_STATION */
+ pmlmepriv->cur_network.network.InfrastructureMode = Ndis802_11AutoUnknown;
-+ pmlmepriv->scan_mode=SCAN_ACTIVE;// 1: active, 0: pasive. Maybe someday we should rename this varable to "active_mode" (Jeff)
++ pmlmepriv->scan_mode =SCAN_ACTIVE;/* 1: active, 0: pasive. Maybe someday we should rename this varable to "active_mode" (Jeff) */
+
-+ spin_lock_init(&(pmlmepriv->lock));
++ spin_lock_init(&(pmlmepriv->lock));
+ _rtw_init_queue(&(pmlmepriv->free_bss_pool));
+ _rtw_init_queue(&(pmlmepriv->scanned_queue));
+
+ set_scanned_network_val(pmlmepriv, 0);
-+
-+ memset(&pmlmepriv->assoc_ssid,0,sizeof(NDIS_802_11_SSID));
+
-+ pbuf = rtw_zvmalloc(MAX_BSS_CNT * (sizeof(struct wlan_network)));
-+
-+ if (pbuf == NULL){
-+ res=_FAIL;
++ memset(&pmlmepriv->assoc_ssid, 0, sizeof(struct ndis_802_11_ssid));
++
++ pbuf = vzalloc(MAX_BSS_CNT * (sizeof(struct wlan_network)));
++
++ if (pbuf == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
+ pmlmepriv->free_bss_buf = pbuf;
-+
-+ pnetwork = (struct wlan_network *)pbuf;
-+
-+ for(i = 0; i < MAX_BSS_CNT; i++)
-+ {
-+ _rtw_init_listhead(&(pnetwork->list));
+
-+ rtw_list_insert_tail(&(pnetwork->list), &(pmlmepriv->free_bss_pool.queue));
++ pnetwork = (struct wlan_network *)pbuf;
++
++ for (i = 0; i < MAX_BSS_CNT; i++)
++ {
++ INIT_LIST_HEAD(&(pnetwork->list));
++
++ list_add_tail(&(pnetwork->list), &(pmlmepriv->free_bss_pool.queue));
+
+ pnetwork++;
+ }
+
-+ //allocate DMA-able/Non-Page memory for cmd_buf and rsp_buf
++ /* allocate DMA-able/Non-Page memory for cmd_buf and rsp_buf */
+
+ rtw_clear_scan_deny(padapter);
+
-+#ifdef CONFIG_LAYER2_ROAMING
+ #define RTW_ROAM_SCAN_RESULT_EXP_MS 5*1000
+ #define RTW_ROAM_RSSI_DIFF_TH 10
+ #define RTW_ROAM_SCAN_INTERVAL_MS 10*1000
+
+ pmlmepriv->roam_flags = 0
+ | RTW_ROAM_ON_EXPIRED
-+ #ifdef CONFIG_LAYER2_ROAMING_RESUME
+ | RTW_ROAM_ON_RESUME
-+ #endif
-+ #ifdef CONFIG_LAYER2_ROAMING_ACTIVE
++ #ifdef CONFIG_LAYER2_ROAMING_ACTIVE /* FIXME */
+ | RTW_ROAM_ACTIVE
+ #endif
+ ;
@@ -12878,339 +10303,264 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ pmlmepriv->roam_scanr_exp_ms = RTW_ROAM_SCAN_RESULT_EXP_MS;
+ pmlmepriv->roam_rssi_diff_th = RTW_ROAM_RSSI_DIFF_TH;
+ pmlmepriv->roam_scan_int_ms = RTW_ROAM_SCAN_INTERVAL_MS;
-+#endif /* CONFIG_LAYER2_ROAMING */
+
+ rtw_init_mlme_timer(padapter);
+
+exit:
+
-+_func_exit_;
-+
+ return res;
-+}
++}
+
+static void rtw_free_mlme_ie_data(u8 **ppie, u32 *plen)
+{
-+ if(*ppie)
-+ {
-+ rtw_mfree(*ppie, *plen);
++ if (*ppie)
++ {
++ kfree(*ppie);
+ *plen = 0;
-+ *ppie=NULL;
-+ }
++ *ppie = NULL;
++ }
+}
+
+void rtw_free_mlme_priv_ie_data(struct mlme_priv *pmlmepriv)
+{
-+#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
+ rtw_buf_free(&pmlmepriv->assoc_req, &pmlmepriv->assoc_req_len);
+ rtw_buf_free(&pmlmepriv->assoc_rsp, &pmlmepriv->assoc_rsp_len);
+ rtw_free_mlme_ie_data(&pmlmepriv->wps_beacon_ie, &pmlmepriv->wps_beacon_ie_len);
+ rtw_free_mlme_ie_data(&pmlmepriv->wps_probe_req_ie, &pmlmepriv->wps_probe_req_ie_len);
+ rtw_free_mlme_ie_data(&pmlmepriv->wps_probe_resp_ie, &pmlmepriv->wps_probe_resp_ie_len);
+ rtw_free_mlme_ie_data(&pmlmepriv->wps_assoc_resp_ie, &pmlmepriv->wps_assoc_resp_ie_len);
-+
++
+ rtw_free_mlme_ie_data(&pmlmepriv->p2p_beacon_ie, &pmlmepriv->p2p_beacon_ie_len);
+ rtw_free_mlme_ie_data(&pmlmepriv->p2p_probe_req_ie, &pmlmepriv->p2p_probe_req_ie_len);
+ rtw_free_mlme_ie_data(&pmlmepriv->p2p_probe_resp_ie, &pmlmepriv->p2p_probe_resp_ie_len);
+ rtw_free_mlme_ie_data(&pmlmepriv->p2p_go_probe_resp_ie, &pmlmepriv->p2p_go_probe_resp_ie_len);
+ rtw_free_mlme_ie_data(&pmlmepriv->p2p_assoc_req_ie, &pmlmepriv->p2p_assoc_req_ie_len);
-+#endif
+}
+
+void _rtw_free_mlme_priv (struct mlme_priv *pmlmepriv)
+{
-+_func_enter_;
-+
+ rtw_free_mlme_priv_ie_data(pmlmepriv);
+
-+ if(pmlmepriv){
++ if (pmlmepriv) {
+ if (pmlmepriv->free_bss_buf) {
-+ rtw_vmfree(pmlmepriv->free_bss_buf, MAX_BSS_CNT * sizeof(struct wlan_network));
++ vfree(pmlmepriv->free_bss_buf);
+ }
+ }
-+_func_exit_;
-+}
-+
-+sint _rtw_enqueue_network(_queue *queue, struct wlan_network *pnetwork)
-+{
-+ _irqL irqL;
-+
-+_func_enter_;
-+
-+ if (pnetwork == NULL)
-+ goto exit;
-+
-+ _enter_critical_bh(&queue->lock, &irqL);
-+
-+ rtw_list_insert_tail(&pnetwork->list, &queue->queue);
-+
-+ _exit_critical_bh(&queue->lock, &irqL);
-+
-+exit:
-+
-+_func_exit_;
-+
-+ return _SUCCESS;
+}
+
+/*
-+struct wlan_network *_rtw_dequeue_network(_queue *queue)
++struct wlan_network *_rtw_dequeue_network(struct __queue *queue)
+{
+ _irqL irqL;
+
+ struct wlan_network *pnetwork;
+
-+_func_enter_;
++ spin_lock_bh(&queue->lock);
+
-+ _enter_critical_bh(&queue->lock, &irqL);
-+
-+ if (_rtw_queue_empty(queue) == true)
++ if (list_empty(&queue->queue))
+
+ pnetwork = NULL;
-+
++
+ else
+ {
+ pnetwork = LIST_CONTAINOR(get_next(&queue->queue), struct wlan_network, list);
-+
-+ rtw_list_delete(&(pnetwork->list));
-+ }
-+
-+ _exit_critical_bh(&queue->lock, &irqL);
+
-+_func_exit_;
++ list_del_init(&(pnetwork->list));
++ }
++
++ spin_unlock_bh(&queue->lock);
+
+ return pnetwork;
+}
+*/
+
-+struct wlan_network *_rtw_alloc_network(struct mlme_priv *pmlmepriv )//(_queue *free_queue)
++struct wlan_network *_rtw_alloc_network(struct mlme_priv *pmlmepriv)/* _queue *free_queue) */
+{
-+ _irqL irqL;
-+ struct wlan_network *pnetwork;
-+ _queue *free_queue = &pmlmepriv->free_bss_pool;
-+ _list* plist = NULL;
-+
-+_func_enter_;
++ struct wlan_network *pnetwork;
++ struct __queue *free_queue = &pmlmepriv->free_bss_pool;
++ struct list_head* plist = NULL;
+
-+ _enter_critical_bh(&free_queue->lock, &irqL);
-+
-+ if (_rtw_queue_empty(free_queue) == true) {
-+ pnetwork=NULL;
++ spin_lock_bh(&free_queue->lock);
++
++ if (list_empty(&free_queue->queue)) {
++ pnetwork = NULL;
+ goto exit;
+ }
+ plist = get_next(&(free_queue->queue));
-+
++
+ pnetwork = LIST_CONTAINOR(plist , struct wlan_network, list);
-+
-+ rtw_list_delete(&pnetwork->list);
-+
-+ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("_rtw_alloc_network: ptr=%p\n", plist));
++
++ list_del_init(&pnetwork->list);
++
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("_rtw_alloc_network: ptr =%p\n", plist));
+ pnetwork->network_type = 0;
+ pnetwork->fixed = false;
+ pnetwork->last_scanned = jiffies;
-+ pnetwork->aid=0;
-+ pnetwork->join_res=0;
++ pnetwork->aid = 0;
++ pnetwork->join_res = 0;
+
+ pmlmepriv->num_of_scanned ++;
-+
++
+exit:
-+ _exit_critical_bh(&free_queue->lock, &irqL);
++ spin_unlock_bh(&free_queue->lock);
+
-+_func_exit_;
-+
-+ return pnetwork;
++ return pnetwork;
+}
+
-+void _rtw_free_network(struct mlme_priv *pmlmepriv ,struct wlan_network *pnetwork, u8 isfreeall)
++void _rtw_free_network(struct mlme_priv *pmlmepriv , struct wlan_network *pnetwork, u8 isfreeall)
+{
+ unsigned int delta_time;
+ u32 lifetime = SCANQUEUE_LIFETIME;
-+ _irqL irqL;
-+ _queue *free_queue = &(pmlmepriv->free_bss_pool);
-+
-+_func_enter_;
++/* _irqL irqL; */
++ struct __queue *free_queue = &(pmlmepriv->free_bss_pool);
+
+ if (pnetwork == NULL)
-+ goto exit;
++ return;
+
+ if (pnetwork->fixed == true)
-+ goto exit;
++ return;
+
-+ if ( (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)==true ) ||
-+ (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)==true ) )
++ if ((check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) ==true) ||
++ (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) ==true))
+ lifetime = 1;
+
-+ if(!isfreeall)
++ if (!isfreeall)
+ {
+ delta_time = jiffies_to_msecs(jiffies - pnetwork->last_scanned);
-+ if(delta_time < lifetime)// unit:msec
-+ goto exit;
++ if (delta_time < lifetime)/* unit:msec */
++ return;
+ }
+
-+ _enter_critical_bh(&free_queue->lock, &irqL);
-+
-+ rtw_list_delete(&(pnetwork->list));
++ spin_lock_bh(&free_queue->lock);
++
++ list_del_init(&(pnetwork->list));
++
++ list_add_tail(&(pnetwork->list),&(free_queue->queue));
+
-+ rtw_list_insert_tail(&(pnetwork->list),&(free_queue->queue));
-+
+ pmlmepriv->num_of_scanned --;
-+
+
-+ //DBG_871X("_rtw_free_network:SSID=%s\n", pnetwork->network.Ssid.Ssid);
-+
-+ _exit_critical_bh(&free_queue->lock, &irqL);
-+
-+exit:
-+
-+_func_exit_;
+
++ /* DBG_871X("_rtw_free_network:SSID =%s\n", pnetwork->network.Ssid.Ssid); */
++
++ spin_unlock_bh(&free_queue->lock);
+}
+
+void _rtw_free_network_nolock(struct mlme_priv *pmlmepriv, struct wlan_network *pnetwork)
+{
+
-+ _queue *free_queue = &(pmlmepriv->free_bss_pool);
-+
-+_func_enter_;
++ struct __queue *free_queue = &(pmlmepriv->free_bss_pool);
+
+ if (pnetwork == NULL)
-+ goto exit;
++ return;
+
+ if (pnetwork->fixed == true)
-+ goto exit;
++ return;
+
-+ //_enter_critical(&free_queue->lock, &irqL);
-+
-+ rtw_list_delete(&(pnetwork->list));
++ /* spin_lock_irqsave(&free_queue->lock, irqL); */
++
++ list_del_init(&(pnetwork->list));
++
++ list_add_tail(&(pnetwork->list), get_list_head(free_queue));
+
-+ rtw_list_insert_tail(&(pnetwork->list), get_list_head(free_queue));
-+
+ pmlmepriv->num_of_scanned --;
-+
-+ //_exit_critical(&free_queue->lock, &irqL);
-+
-+exit:
-+
-+_func_exit_;
+
++ /* spin_unlock_irqrestore(&free_queue->lock, irqL); */
+}
+
-+
+/*
+ return the wlan_network with the matching addr
+
+ Shall be calle under atomic context... to avoid possible racing condition...
+*/
-+struct wlan_network *_rtw_find_network(_queue *scanned_queue, u8 *addr)
++struct wlan_network *_rtw_find_network(struct __queue *scanned_queue, u8 *addr)
+{
-+
-+ //_irqL irqL;
-+ _list *phead, *plist;
++ struct list_head *phead, *plist;
+ struct wlan_network *pnetwork = NULL;
-+ u8 zero_addr[ETH_ALEN] = {0,0,0,0,0,0};
-+
-+_func_enter_;
++ u8 zero_addr[ETH_ALEN] = {0, 0, 0, 0, 0, 0};
+
-+ if(!memcmp(zero_addr, addr, ETH_ALEN)){
-+ pnetwork=NULL;
++ if (!memcmp(zero_addr, addr, ETH_ALEN)) {
++ pnetwork = NULL;
+ goto exit;
+ }
-+
-+ //_enter_critical_bh(&scanned_queue->lock, &irqL);
-+
++
++ /* spin_lock_bh(&scanned_queue->lock); */
++
+ phead = get_list_head(scanned_queue);
+ plist = get_next(phead);
-+
++
+ while (plist != phead)
+ {
-+ pnetwork = LIST_CONTAINOR(plist, struct wlan_network ,list);
++ pnetwork = LIST_CONTAINOR(plist, struct wlan_network , list);
+
+ if (!memcmp(addr, pnetwork->network.MacAddress, ETH_ALEN))
+ break;
-+
++
+ plist = get_next(plist);
+ }
+
-+ if(plist == phead)
++ if (plist == phead)
+ pnetwork = NULL;
+
-+ //_exit_critical_bh(&scanned_queue->lock, &irqL);
-+
-+exit:
-+
-+_func_exit_;
++ /* spin_unlock_bh(&scanned_queue->lock); */
+
++exit:
+ return pnetwork;
-+
+}
+
-+
-+void _rtw_free_network_queue(_adapter *padapter, u8 isfreeall)
++void _rtw_free_network_queue(struct adapter *padapter, u8 isfreeall)
+{
-+ _irqL irqL;
-+ _list *phead, *plist;
++ struct list_head *phead, *plist;
+ struct wlan_network *pnetwork;
+ struct mlme_priv* pmlmepriv = &padapter->mlmepriv;
-+ _queue *scanned_queue = &pmlmepriv->scanned_queue;
++ struct __queue *scanned_queue = &pmlmepriv->scanned_queue;
+
-+_func_enter_;
-+
-+
-+ _enter_critical_bh(&scanned_queue->lock, &irqL);
++ spin_lock_bh(&scanned_queue->lock);
+
+ phead = get_list_head(scanned_queue);
+ plist = get_next(phead);
+
-+ while (rtw_end_of_queue_search(phead, plist) == false)
++ while (phead != plist)
+ {
+
+ pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list);
+
+ plist = get_next(plist);
+
-+ _rtw_free_network(pmlmepriv,pnetwork, isfreeall);
-+
++ _rtw_free_network(pmlmepriv, pnetwork, isfreeall);
++
+ }
+
-+ _exit_critical_bh(&scanned_queue->lock, &irqL);
-+
-+_func_exit_;
-+
++ spin_unlock_bh(&scanned_queue->lock);
+}
+
+
+
+
-+sint rtw_if_up(_adapter *padapter) {
++sint rtw_if_up(struct adapter *padapter) {
+
+ sint res;
-+_func_enter_;
+
-+ if( padapter->bDriverStopped || padapter->bSurpriseRemoved ||
-+ (check_fwstate(&padapter->mlmepriv, _FW_LINKED)== false)){
-+ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_if_up:bDriverStopped(%d) OR bSurpriseRemoved(%d)", padapter->bDriverStopped, padapter->bSurpriseRemoved));
-+ res=false;
++ if (padapter->bDriverStopped || padapter->bSurpriseRemoved ||
++ (check_fwstate(&padapter->mlmepriv, _FW_LINKED) == false)) {
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_if_up:bDriverStopped(%d) OR bSurpriseRemoved(%d)", padapter->bDriverStopped, padapter->bSurpriseRemoved));
++ res =false;
+ }
+ else
-+ res= true;
-+
-+_func_exit_;
++ res = true;
+ return res;
+}
+
+
-+void rtw_generate_random_ibss(u8* pibss)
++void rtw_generate_random_ibss(u8 *pibss)
+{
+ unsigned long curtime = jiffies;
+
-+_func_enter_;
-+ pibss[0] = 0x02; //in ad-hoc mode bit1 must set to 1
++ pibss[0] = 0x02; /* in ad-hoc mode bit1 must set to 1 */
+ pibss[1] = 0x11;
+ pibss[2] = 0x87;
-+ pibss[3] = (u8)(curtime & 0xff) ;//p[0];
-+ pibss[4] = (u8)((curtime>>8) & 0xff) ;//p[1];
-+ pibss[5] = (u8)((curtime>>16) & 0xff) ;//p[2];
-+_func_exit_;
++ pibss[3] = (u8)(curtime & 0xff) ;/* p[0]; */
++ pibss[4] = (u8)((curtime>>8) & 0xff) ;/* p[1]; */
++ pibss[5] = (u8)((curtime>>16) & 0xff) ;/* p[2]; */
+ return;
+}
+
@@ -13220,101 +10570,66 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+}
+
+
-+u16 rtw_get_capability(WLAN_BSSID_EX *bss)
++u16 rtw_get_capability(struct wlan_bssid_ex *bss)
+{
-+ u16 val;
-+_func_enter_;
++ __le16 val;
+
-+ memcpy((u8 *)&val, rtw_get_capability_from_ie(bss->IEs), 2);
++ memcpy((u8 *)&val, rtw_get_capability_from_ie(bss->IEs), 2);
+
-+_func_exit_;
+ return le16_to_cpu(val);
+}
+
-+u8 *rtw_get_timestampe_from_ie(u8 *ie)
-+{
-+ return (ie + 0);
-+}
-+
+u8 *rtw_get_beacon_interval_from_ie(u8 *ie)
+{
-+ return (ie + 8);
++ return (ie + 8);
+}
+
+
-+int rtw_init_mlme_priv (_adapter *padapter)//(struct mlme_priv *pmlmepriv)
++int rtw_init_mlme_priv (struct adapter *padapter)/* struct mlme_priv *pmlmepriv) */
+{
+ int res;
-+_func_enter_;
-+ res = _rtw_init_mlme_priv(padapter);// (pmlmepriv);
-+_func_exit_;
++
++ res = _rtw_init_mlme_priv(padapter);/* (pmlmepriv); */
+ return res;
+}
+
+void rtw_free_mlme_priv (struct mlme_priv *pmlmepriv)
+{
-+_func_enter_;
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("rtw_free_mlme_priv\n"));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("rtw_free_mlme_priv\n"));
+ _rtw_free_mlme_priv (pmlmepriv);
-+_func_exit_;
-+}
-+
-+int rtw_enqueue_network(_queue *queue, struct wlan_network *pnetwork);
-+int rtw_enqueue_network(_queue *queue, struct wlan_network *pnetwork)
-+{
-+ int res;
-+_func_enter_;
-+ res = _rtw_enqueue_network(queue, pnetwork);
-+_func_exit_;
-+ return res;
+}
+
+/*
-+static struct wlan_network *rtw_dequeue_network(_queue *queue)
++static struct wlan_network *rtw_dequeue_network(struct __queue *queue)
+{
+ struct wlan_network *pnetwork;
-+_func_enter_;
++
+ pnetwork = _rtw_dequeue_network(queue);
-+_func_exit_;
+ return pnetwork;
+}
+*/
+
-+struct wlan_network *rtw_alloc_network(struct mlme_priv *pmlmepriv );
-+struct wlan_network *rtw_alloc_network(struct mlme_priv *pmlmepriv )//(_queue *free_queue)
++struct wlan_network *rtw_alloc_network(struct mlme_priv *pmlmepriv);
++struct wlan_network *rtw_alloc_network(struct mlme_priv *pmlmepriv)/* _queue *free_queue) */
+{
+ struct wlan_network *pnetwork;
-+_func_enter_;
++
+ pnetwork = _rtw_alloc_network(pmlmepriv);
-+_func_exit_;
+ return pnetwork;
+}
+
-+void rtw_free_network(struct mlme_priv *pmlmepriv, struct wlan_network *pnetwork, u8 is_freeall);
-+void rtw_free_network(struct mlme_priv *pmlmepriv, struct wlan_network *pnetwork, u8 is_freeall)//(struct wlan_network *pnetwork, _queue *free_queue)
++void rtw_free_network_nolock(struct adapter *padapter, struct wlan_network *pnetwork);
++void rtw_free_network_nolock(struct adapter *padapter, struct wlan_network *pnetwork)
+{
-+_func_enter_;
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("rtw_free_network==> ssid = %s \n\n" , pnetwork->network.Ssid.Ssid));
-+ _rtw_free_network(pmlmepriv, pnetwork, is_freeall);
-+_func_exit_;
-+}
-+
-+void rtw_free_network_nolock(_adapter * padapter, struct wlan_network *pnetwork );
-+void rtw_free_network_nolock(_adapter * padapter, struct wlan_network *pnetwork )
-+{
-+_func_enter_;
-+ //RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("rtw_free_network==> ssid = %s \n\n" , pnetwork->network.Ssid.Ssid));
++ /* RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("rtw_free_network ==> ssid = %s\n\n" , pnetwork->network.Ssid.Ssid)); */
+ _rtw_free_network_nolock(&(padapter->mlmepriv), pnetwork);
+ rtw_cfg80211_unlink_bss(padapter, pnetwork);
-+_func_exit_;
+}
+
+
-+void rtw_free_network_queue(_adapter* dev, u8 isfreeall)
++void rtw_free_network_queue(struct adapter * dev, u8 isfreeall)
+{
-+_func_enter_;
+ _rtw_free_network_queue(dev, isfreeall);
-+_func_exit_;
+}
+
+/*
@@ -13322,148 +10637,128 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+
+ Shall be calle under atomic context... to avoid possible racing condition...
+*/
-+struct wlan_network *rtw_find_network(_queue *scanned_queue, u8 *addr)
++struct wlan_network *rtw_find_network(struct __queue *scanned_queue, u8 *addr)
+{
+ struct wlan_network *pnetwork = _rtw_find_network(scanned_queue, addr);
+
+ return pnetwork;
+}
+
-+int rtw_is_same_ibss(_adapter *adapter, struct wlan_network *pnetwork)
++int rtw_is_same_ibss(struct adapter *adapter, struct wlan_network *pnetwork)
+{
-+ int ret=true;
++ int ret =true;
+ struct security_priv *psecuritypriv = &adapter->securitypriv;
+
-+ if ( (psecuritypriv->dot11PrivacyAlgrthm != _NO_PRIVACY_ ) &&
-+ ( pnetwork->network.Privacy == 0 ) )
++ if ((psecuritypriv->dot11PrivacyAlgrthm != _NO_PRIVACY_) &&
++ (pnetwork->network.Privacy == 0))
+ {
-+ ret=false;
++ ret =false;
+ }
-+ else if((psecuritypriv->dot11PrivacyAlgrthm == _NO_PRIVACY_ ) &&
-+ ( pnetwork->network.Privacy == 1 ) )
++ else if ((psecuritypriv->dot11PrivacyAlgrthm == _NO_PRIVACY_) &&
++ (pnetwork->network.Privacy == 1))
+ {
-+ ret=false;
++ ret =false;
+ }
+ else
+ {
-+ ret=true;
++ ret =true;
+ }
-+
++
+ return ret;
-+
++
+}
+
-+inline int is_same_ess(WLAN_BSSID_EX *a, WLAN_BSSID_EX *b)
++inline int is_same_ess(struct wlan_bssid_ex *a, struct wlan_bssid_ex *b)
+{
-+ //RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("(%s,%d)(%s,%d)\n",
-+ // a->Ssid.Ssid,a->Ssid.SsidLength,b->Ssid.Ssid,b->Ssid.SsidLength));
-+ return (a->Ssid.SsidLength == b->Ssid.SsidLength)
++ /* RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("(%s,%d)(%s,%d)\n", */
++ /* a->Ssid.Ssid, a->Ssid.SsidLength, b->Ssid.Ssid, b->Ssid.SsidLength)); */
++ return (a->Ssid.SsidLength == b->Ssid.SsidLength)
+ && !memcmp(a->Ssid.Ssid, b->Ssid.Ssid, a->Ssid.SsidLength);
+}
+
-+int is_same_network(WLAN_BSSID_EX *src, WLAN_BSSID_EX *dst, u8 feature)
++int is_same_network(struct wlan_bssid_ex *src, struct wlan_bssid_ex *dst, u8 feature)
+{
-+ u16 s_cap, d_cap;
-+
-+_func_enter_;
++ u16 s_cap, d_cap;
++ __le16 tmps, tmpd;
+
-+ if(rtw_bug_check(dst, src, &s_cap, &d_cap)==false)
++ if (rtw_bug_check(dst, src, &s_cap, &d_cap) ==false)
+ return false;
+
-+ memcpy((u8 *)&s_cap, rtw_get_capability_from_ie(src->IEs), 2);
-+ memcpy((u8 *)&d_cap, rtw_get_capability_from_ie(dst->IEs), 2);
++ memcpy((u8 *)&tmps, rtw_get_capability_from_ie(src->IEs), 2);
++ memcpy((u8 *)&tmpd, rtw_get_capability_from_ie(dst->IEs), 2);
+
-+
-+ s_cap = le16_to_cpu(s_cap);
-+ d_cap = le16_to_cpu(d_cap);
-+
-+_func_exit_;
++
++ s_cap = le16_to_cpu(tmps);
++ d_cap = le16_to_cpu(tmpd);
+
+ return ((src->Ssid.SsidLength == dst->Ssid.SsidLength) &&
-+ // (src->Configuration.DSConfig == dst->Configuration.DSConfig) &&
-+ ( (!memcmp(src->MacAddress, dst->MacAddress, ETH_ALEN))) &&
-+ ( (!memcmp(src->Ssid.Ssid, dst->Ssid.Ssid, src->Ssid.SsidLength))) &&
-+ ((s_cap & WLAN_CAPABILITY_IBSS) ==
++ /* (src->Configuration.DSConfig == dst->Configuration.DSConfig) && */
++ ((!memcmp(src->MacAddress, dst->MacAddress, ETH_ALEN))) &&
++ ((!memcmp(src->Ssid.Ssid, dst->Ssid.Ssid, src->Ssid.SsidLength))) &&
++ ((s_cap & WLAN_CAPABILITY_IBSS) ==
+ (d_cap & WLAN_CAPABILITY_IBSS)) &&
-+ ((s_cap & WLAN_CAPABILITY_BSS) ==
++ ((s_cap & WLAN_CAPABILITY_BSS) ==
+ (d_cap & WLAN_CAPABILITY_BSS)));
-+
++
+}
+
-+struct wlan_network *_rtw_find_same_network(_queue *scanned_queue, struct wlan_network *network)
++struct wlan_network *_rtw_find_same_network(struct __queue *scanned_queue, struct wlan_network *network)
+{
-+ _list *phead, *plist;
++ struct list_head *phead, *plist;
+ struct wlan_network *found = NULL;
+
+ phead = get_list_head(scanned_queue);
+ plist = get_next(phead);
+
+ while (plist != phead) {
-+ found = LIST_CONTAINOR(plist, struct wlan_network ,list);
++ found = LIST_CONTAINOR(plist, struct wlan_network , list);
+
-+ if (is_same_network(&network->network, &found->network,0))
++ if (is_same_network(&network->network, &found->network, 0))
+ break;
+
+ plist = get_next(plist);
+ }
+
-+ if(plist == phead)
++ if (plist == phead)
+ found = NULL;
+
+ return found;
+}
+
-+struct wlan_network *rtw_find_same_network(_queue *scanned_queue, struct wlan_network *network)
++struct wlan_network * rtw_get_oldest_wlan_network(struct __queue *scanned_queue)
+{
-+ _irqL irqL;
-+ struct wlan_network *found = NULL;
++ struct list_head *plist, *phead;
+
-+ if (scanned_queue == NULL || network == NULL)
-+ goto exit;
+
-+ _enter_critical_bh(&scanned_queue->lock, &irqL);
-+ found = _rtw_find_same_network(scanned_queue, network);
-+ _exit_critical_bh(&scanned_queue->lock, &irqL);
-+
-+exit:
-+ return found;
-+}
-+
-+struct wlan_network * rtw_get_oldest_wlan_network(_queue *scanned_queue)
-+{
-+ _list *plist, *phead;
-+
-+
+ struct wlan_network *pwlan = NULL;
+ struct wlan_network *oldest = NULL;
-+_func_enter_;
++
+ phead = get_list_head(scanned_queue);
-+
++
+ plist = get_next(phead);
+
-+ while(1)
++ while (1)
+ {
-+
-+ if (rtw_end_of_queue_search(phead,plist)== true)
-+ break;
-+
-+ pwlan= LIST_CONTAINOR(plist, struct wlan_network, list);
+
-+ if(pwlan->fixed!=true)
-+ {
++ if (phead == plist)
++ break;
++
++ pwlan = LIST_CONTAINOR(plist, struct wlan_network, list);
++
++ if (pwlan->fixed!=true)
++ {
+ if (oldest == NULL ||time_after(oldest->last_scanned, pwlan->last_scanned))
+ oldest = pwlan;
+ }
-+
++
+ plist = get_next(plist);
+ }
-+_func_exit_;
+ return oldest;
-+
++
+}
+
-+void update_network(WLAN_BSSID_EX *dst, WLAN_BSSID_EX *src,
-+ _adapter * padapter, bool update_ie)
++void update_network(struct wlan_bssid_ex *dst, struct wlan_bssid_ex *src,
++ struct adapter *padapter, bool update_ie)
+{
+ long rssi_ori = dst->Rssi;
+
@@ -13473,15 +10768,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ u8 sq_final;
+ long rssi_final;
+
-+_func_enter_;
-+
+ #if defined(DBG_RX_SIGNAL_DISPLAY_SSID_MONITORED) && 1
-+ if(strcmp(dst->Ssid.Ssid, DBG_RX_SIGNAL_DISPLAY_SSID_MONITORED) == 0) {
++ if (strcmp(dst->Ssid.Ssid, DBG_RX_SIGNAL_DISPLAY_SSID_MONITORED) == 0) {
+ DBG_871X(FUNC_ADPT_FMT" %s("MAC_FMT", ch%u) ss_ori:%3u, sq_ori:%3u, rssi_ori:%3ld, ss_smp:%3u, sq_smp:%3u, rssi_smp:%3ld\n"
+ , FUNC_ADPT_ARG(padapter)
+ , src->Ssid.Ssid, MAC_ARG(src->MacAddress), src->Configuration.DSConfig
-+ ,ss_ori, sq_ori, rssi_ori
-+ ,ss_smp, sq_smp, rssi_smp
++ , ss_ori, sq_ori, rssi_ori
++ , ss_smp, sq_smp, rssi_smp
+ );
+ }
+ #endif
@@ -13492,13 +10785,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ ss_final = padapter->recvpriv.signal_strength;
+ sq_final = padapter->recvpriv.signal_qual;
+ /* the rssi value here is undecorated, and will be used for antenna diversity */
-+ if(sq_smp != 101) /* from the right channel */
++ if (sq_smp != 101) /* from the right channel */
+ rssi_final = (src->Rssi+dst->Rssi*4)/5;
+ else
+ rssi_final = rssi_ori;
+ }
+ else {
-+ if(sq_smp != 101) { /* from the right channel */
++ if (sq_smp != 101) { /* from the right channel */
+ ss_final = ((u32)(src->PhyInfo.SignalStrength)+(u32)(dst->PhyInfo.SignalStrength)*4)/5;
+ sq_final = ((u32)(src->PhyInfo.SignalQuality)+(u32)(dst->PhyInfo.SignalQuality)*4)/5;
+ rssi_final = (src->Rssi+dst->Rssi*4)/5;
@@ -13508,13 +10801,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ sq_final = dst->PhyInfo.SignalQuality;
+ rssi_final = dst->Rssi;
+ }
-+
++
+ }
+
+ if (update_ie) {
+ dst->Reserved[0] = src->Reserved[0];
+ dst->Reserved[1] = src->Reserved[1];
-+ memcpy((u8 *)dst, (u8 *)src, get_WLAN_BSSID_EX_sz(src));
++ memcpy((u8 *)dst, (u8 *)src, get_wlan_bssid_ex_sz(src));
+ }
+
+ dst->PhyInfo.SignalStrength = ss_final;
@@ -13522,41 +10815,34 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ dst->Rssi = rssi_final;
+
+ #if defined(DBG_RX_SIGNAL_DISPLAY_SSID_MONITORED) && 1
-+ if(strcmp(dst->Ssid.Ssid, DBG_RX_SIGNAL_DISPLAY_SSID_MONITORED) == 0) {
++ if (strcmp(dst->Ssid.Ssid, DBG_RX_SIGNAL_DISPLAY_SSID_MONITORED) == 0) {
+ DBG_871X(FUNC_ADPT_FMT" %s("MAC_FMT"), SignalStrength:%u, SignalQuality:%u, RawRSSI:%ld\n"
+ , FUNC_ADPT_ARG(padapter)
+ , dst->Ssid.Ssid, MAC_ARG(dst->MacAddress), dst->PhyInfo.SignalStrength, dst->PhyInfo.SignalQuality, dst->Rssi);
+ }
+ #endif
-+
-+_func_exit_;
+}
+
-+static void update_current_network(_adapter *adapter, WLAN_BSSID_EX *pnetwork)
++static void update_current_network(struct adapter *adapter, struct wlan_bssid_ex *pnetwork)
+{
-+ struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
-+
-+_func_enter_;
++ struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
+
-+ rtw_bug_check(&(pmlmepriv->cur_network.network),
-+ &(pmlmepriv->cur_network.network),
-+ &(pmlmepriv->cur_network.network),
++ rtw_bug_check(&(pmlmepriv->cur_network.network),
++ &(pmlmepriv->cur_network.network),
++ &(pmlmepriv->cur_network.network),
+ &(pmlmepriv->cur_network.network));
+
-+ if ( (check_fwstate(pmlmepriv, _FW_LINKED)== true) && (is_same_network(&(pmlmepriv->cur_network.network), pnetwork, 0)))
++ if ((check_fwstate(pmlmepriv, _FW_LINKED) == true) && (is_same_network(&(pmlmepriv->cur_network.network), pnetwork, 0)))
+ {
-+ //RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,"Same Network\n");
++ /* RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_,"Same Network\n"); */
+
-+ //if(pmlmepriv->cur_network.network.IELength<= pnetwork->IELength)
++ /* if (pmlmepriv->cur_network.network.IELength<= pnetwork->IELength) */
+ {
-+ update_network(&(pmlmepriv->cur_network.network), pnetwork,adapter, true);
-+ rtw_update_protection(adapter, (pmlmepriv->cur_network.network.IEs) + sizeof (NDIS_802_11_FIXED_IEs),
++ update_network(&(pmlmepriv->cur_network.network), pnetwork, adapter, true);
++ rtw_update_protection(adapter, (pmlmepriv->cur_network.network.IEs) + sizeof (struct ndis_802_11_fix_ie),
+ pmlmepriv->cur_network.network.IELength);
+ }
+ }
-+
-+_func_exit_;
-+
+}
+
+
@@ -13566,27 +10852,24 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+
+
+*/
-+void rtw_update_scanned_network(_adapter *adapter, WLAN_BSSID_EX *target)
++void rtw_update_scanned_network(struct adapter *adapter, struct wlan_bssid_ex *target)
+{
-+ _irqL irqL;
-+ _list *plist, *phead;
-+ u32 bssid_ex_sz;
-+ struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
-+ _queue *queue = &(pmlmepriv->scanned_queue);
++ struct list_head *plist, *phead;
++ u32 bssid_ex_sz;
++ struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
++ struct __queue *queue = &(pmlmepriv->scanned_queue);
+ struct wlan_network *pnetwork = NULL;
+ struct wlan_network *oldest = NULL;
+ int target_find = 0;
-+ u8 feature = 0;
++ u8 feature = 0;
+
-+_func_enter_;
-+
-+ _enter_critical_bh(&queue->lock, &irqL);
++ spin_lock_bh(&queue->lock);
+ phead = get_list_head(queue);
+ plist = get_next(phead);
+
-+ while(1)
++ while (1)
+ {
-+ if (rtw_end_of_queue_search(phead,plist)== true)
++ if (phead == plist)
+ break;
+
+ pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list);
@@ -13609,28 +10892,28 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ plist = get_next(plist);
+
+ }
-+
-+
++
++
+ /* If we didn't find a match, then get a new network slot to initialize
+ * with this beacon's information */
-+ //if (rtw_end_of_queue_search(phead,plist)== true) {
-+ if (!target_find) {
-+ if (_rtw_queue_empty(&(pmlmepriv->free_bss_pool)) == true) {
++ /* if (phead == plist) { */
++ if (!target_find) {
++ if (list_empty(&pmlmepriv->free_bss_pool.queue)) {
+ /* If there are no more slots, expire the oldest */
-+ //list_del_init(&oldest->list);
++ /* list_del_init(&oldest->list); */
+ pnetwork = oldest;
-+ if(pnetwork==NULL){
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("\n\n\nsomething wrong here\n\n\n"));
++ if (pnetwork == NULL) {
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("\n\n\nsomething wrong here\n\n\n"));
+ goto exit;
+ }
-+ memcpy(&(pnetwork->network), target, get_WLAN_BSSID_EX_sz(target));
-+ // variable initialize
++ memcpy(&(pnetwork->network), target, get_wlan_bssid_ex_sz(target));
++ /* variable initialize */
+ pnetwork->fixed = false;
+ pnetwork->last_scanned = jiffies;
+
-+ pnetwork->network_type = 0;
-+ pnetwork->aid=0;
-+ pnetwork->join_res=0;
++ pnetwork->network_type = 0;
++ pnetwork->aid = 0;
++ pnetwork->join_res = 0;
+
+ /* bss info not receving from the right channel */
+ if (pnetwork->network.PhyInfo.SignalQuality == 101)
@@ -13639,16 +10922,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ else {
+ /* Otherwise just pull from the free list */
+
-+ pnetwork = rtw_alloc_network(pmlmepriv); // will update scan_time
++ pnetwork = rtw_alloc_network(pmlmepriv); /* will update scan_time */
+
-+ if(pnetwork==NULL){
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("\n\n\nsomething wrong here\n\n\n"));
++ if (pnetwork == NULL) {
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("\n\n\nsomething wrong here\n\n\n"));
+ goto exit;
+ }
+
-+ bssid_ex_sz = get_WLAN_BSSID_EX_sz(target);
++ bssid_ex_sz = get_wlan_bssid_ex_sz(target);
+ target->Length = bssid_ex_sz;
-+ memcpy(&(pnetwork->network), target, bssid_ex_sz );
++ memcpy(&(pnetwork->network), target, bssid_ex_sz);
+
+ pnetwork->last_scanned = jiffies;
+
@@ -13656,24 +10939,24 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ if (pnetwork->network.PhyInfo.SignalQuality == 101)
+ pnetwork->network.PhyInfo.SignalQuality = 0;
+
-+ rtw_list_insert_tail(&(pnetwork->list),&(queue->queue));
++ list_add_tail(&(pnetwork->list),&(queue->queue));
+
+ }
+ }
+ else {
+ /* we have an entry and we are going to update it. But this entry may
-+ * be already expired. In this case we do the same as we found a new
++ * be already expired. In this case we do the same as we found a new
+ * net and call the new_net handler
+ */
+ bool update_ie = true;
+
+ pnetwork->last_scanned = jiffies;
+
-+ //target.Reserved[0]==1, means that scaned network is a bcn frame.
-+ if((pnetwork->network.IELength>target->IELength) && (target->Reserved[0]==1))
++ /* target.Reserved[0]== 1, means that scaned network is a bcn frame. */
++ if ((pnetwork->network.IELength>target->IELength) && (target->Reserved[0]== 1))
+ update_ie = false;
+
-+ // probe resp(3) > beacon(1) > probe req(2)
++ /* probe resp(3) > beacon(1) > probe req(2) */
+ if ((target->Reserved[0] != 2) &&
+ (target->Reserved[0] >= pnetwork->network.Reserved[0])
+ ) {
@@ -13683,75 +10966,69 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ update_ie = false;
+ }
+
-+ update_network(&(pnetwork->network), target,adapter, update_ie);
++ update_network(&(pnetwork->network), target, adapter, update_ie);
+ }
+
+exit:
-+ _exit_critical_bh(&queue->lock, &irqL);
-+
-+_func_exit_;
++ spin_unlock_bh(&queue->lock);
+}
+
-+void rtw_add_network(_adapter *adapter, WLAN_BSSID_EX *pnetwork);
-+void rtw_add_network(_adapter *adapter, WLAN_BSSID_EX *pnetwork)
++void rtw_add_network(struct adapter *adapter, struct wlan_bssid_ex *pnetwork);
++void rtw_add_network(struct adapter *adapter, struct wlan_bssid_ex *pnetwork)
+{
-+ //_queue *queue = &(pmlmepriv->scanned_queue);
++ /* struct __queue *queue = &(pmlmepriv->scanned_queue); */
+
-+_func_enter_;
-+
-+ //_enter_critical_bh(&queue->lock, &irqL);
++ /* spin_lock_bh(&queue->lock); */
+
+ update_current_network(adapter, pnetwork);
-+
++
+ rtw_update_scanned_network(adapter, pnetwork);
+
-+ //_exit_critical_bh(&queue->lock, &irqL);
-+
-+_func_exit_;
++ /* spin_unlock_bh(&queue->lock); */
+}
+
-+//select the desired network based on the capability of the (i)bss.
-+// check items: (1) security
-+// (2) network_type
-+// (3) WMM
-+// (4) HT
-+// (5) others
-+int rtw_is_desired_network(_adapter *adapter, struct wlan_network *pnetwork);
-+int rtw_is_desired_network(_adapter *adapter, struct wlan_network *pnetwork)
++/* select the desired network based on the capability of the (i)bss. */
++/* check items: (1) security */
++/* (2) network_type */
++/* (3) WMM */
++/* (4) HT */
++/* (5) others */
++int rtw_is_desired_network(struct adapter *adapter, struct wlan_network *pnetwork);
++int rtw_is_desired_network(struct adapter *adapter, struct wlan_network *pnetwork)
+{
+ struct security_priv *psecuritypriv = &adapter->securitypriv;
+ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
+ u32 desired_encmode;
+ u32 privacy;
+
-+ //u8 wps_ie[512];
++ /* u8 wps_ie[512]; */
+ uint wps_ielen;
+
+ int bselected = true;
-+
++
+ desired_encmode = psecuritypriv->ndisencryptstatus;
+ privacy = pnetwork->network.Privacy;
+
-+ if(check_fwstate(pmlmepriv, WIFI_UNDER_WPS))
++ if (check_fwstate(pmlmepriv, WIFI_UNDER_WPS))
+ {
-+ if(rtw_get_wps_ie(pnetwork->network.IEs+_FIXED_IE_LENGTH_, pnetwork->network.IELength-_FIXED_IE_LENGTH_, NULL, &wps_ielen)!=NULL)
++ if (rtw_get_wps_ie(pnetwork->network.IEs+_FIXED_IE_LENGTH_, pnetwork->network.IELength-_FIXED_IE_LENGTH_, NULL, &wps_ielen)!= NULL)
+ {
+ return true;
+ }
+ else
-+ {
++ {
+ return false;
-+ }
++ }
+ }
-+ if (adapter->registrypriv.wifi_spec == 1) //for correct flow of 8021X to do....
++ if (adapter->registrypriv.wifi_spec == 1) /* for correct flow of 8021X to do.... */
+ {
-+ u8 *p=NULL;
-+ uint ie_len=0;
++ u8 *p = NULL;
++ uint ie_len = 0;
+
+ if ((desired_encmode == Ndis802_11EncryptionDisabled) && (privacy != 0))
+ bselected = false;
+
-+ if ( psecuritypriv->ndisauthtype == Ndis802_11AuthModeWPA2PSK) {
++ if (psecuritypriv->ndisauthtype == Ndis802_11AuthModeWPA2PSK) {
+ p = rtw_get_ie(pnetwork->network.IEs + _BEACON_IE_OFFSET_, _RSN_IE_2_, &ie_len, (pnetwork->network.IELength - _BEACON_IE_OFFSET_));
+ if (p && ie_len>0) {
+ bselected = true;
@@ -13760,191 +11037,177 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ }
+ }
+ }
-+
+
-+ if ((desired_encmode != Ndis802_11EncryptionDisabled) && (privacy == 0)) {
++
++ if ((desired_encmode != Ndis802_11EncryptionDisabled) && (privacy == 0)) {
+ DBG_871X("desired_encmode: %d, privacy: %d\n", desired_encmode, privacy);
+ bselected = false;
-+ }
++ }
+
-+ if(check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true)
++ if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true)
+ {
-+ if(pnetwork->network.InfrastructureMode != pmlmepriv->cur_network.network.InfrastructureMode)
++ if (pnetwork->network.InfrastructureMode != pmlmepriv->cur_network.network.InfrastructureMode)
+ bselected = false;
-+ }
-+
++ }
++
+
+ return bselected;
+}
+
+/* TODO: Perry : For Power Management */
-+void rtw_atimdone_event_callback(_adapter *adapter , u8 *pbuf)
++void rtw_atimdone_event_callback(struct adapter *adapter , u8 *pbuf)
+{
-+
-+_func_enter_;
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("receive atimdone_evet\n"));
-+_func_exit_;
-+ return;
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("receive atimdone_evet\n"));
+}
+
+
-+void rtw_survey_event_callback(_adapter *adapter, u8 *pbuf)
++void rtw_survey_event_callback(struct adapter *adapter, u8 *pbuf)
+{
-+ _irqL irqL;
+ u32 len;
-+ WLAN_BSSID_EX *pnetwork;
-+ struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
++ struct wlan_bssid_ex *pnetwork;
++ struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
+
-+_func_enter_;
++ pnetwork = (struct wlan_bssid_ex *)pbuf;
+
-+ pnetwork = (WLAN_BSSID_EX *)pbuf;
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_survey_event_callback, ssid =%s\n", pnetwork->Ssid.Ssid));
+
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("rtw_survey_event_callback, ssid=%s\n", pnetwork->Ssid.Ssid));
-+
-+ len = get_WLAN_BSSID_EX_sz(pnetwork);
-+ if(len > (sizeof(WLAN_BSSID_EX)))
++ len = get_wlan_bssid_ex_sz(pnetwork);
++ if (len > (sizeof(struct wlan_bssid_ex)))
+ {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("\n ****rtw_survey_event_callback: return a wrong bss ***\n"));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("\n ****rtw_survey_event_callback: return a wrong bss ***\n"));
+ return;
+ }
+
+
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
++ spin_lock_bh(&pmlmepriv->lock);
+
-+ // update IBSS_network 's timestamp
++ /* update IBSS_network 's timestamp */
+ if ((check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) == true)
+ {
-+ //RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,"rtw_survey_event_callback : WIFI_ADHOC_MASTER_STATE \n\n");
-+ if(!memcmp(&(pmlmepriv->cur_network.network.MacAddress), pnetwork->MacAddress, ETH_ALEN))
++ /* RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_,"rtw_survey_event_callback : WIFI_ADHOC_MASTER_STATE\n\n"); */
++ if (!memcmp(&(pmlmepriv->cur_network.network.MacAddress), pnetwork->MacAddress, ETH_ALEN))
+ {
+ struct wlan_network* ibss_wlan = NULL;
-+ _irqL irqL;
-+
++
+ memcpy(pmlmepriv->cur_network.network.IEs, pnetwork->IEs, 8);
-+ _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
++ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
+ ibss_wlan = rtw_find_network(&pmlmepriv->scanned_queue, pnetwork->MacAddress);
-+ if(ibss_wlan)
++ if (ibss_wlan)
+ {
-+ memcpy(ibss_wlan->network.IEs , pnetwork->IEs, 8);
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
++ memcpy(ibss_wlan->network.IEs , pnetwork->IEs, 8);
++ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
+ goto exit;
+ }
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
++ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
+ }
+ }
+
-+ // lock pmlmepriv->lock when you accessing network_q
++ /* lock pmlmepriv->lock when you accessing network_q */
+ if ((check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) == false)
-+ {
-+ if( pnetwork->Ssid.Ssid[0] == 0 )
++ {
++ if (pnetwork->Ssid.Ssid[0] == 0)
+ {
+ pnetwork->Ssid.SsidLength = 0;
-+ }
++ }
+ rtw_add_network(adapter, pnetwork);
-+ }
++ }
+
-+exit:
-+
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
++exit:
+
-+_func_exit_;
++ spin_unlock_bh(&pmlmepriv->lock);
+
-+ return;
++ return;
+}
+
+
+
-+void rtw_surveydone_event_callback(_adapter *adapter, u8 *pbuf)
++void rtw_surveydone_event_callback(struct adapter *adapter, u8 *pbuf)
+{
-+ _irqL irqL;
+ u8 timer_cancelled = false;
-+ struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
++ struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
+
-+_func_enter_;
-+
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+ if(pmlmepriv->wps_probe_req_ie)
++ spin_lock_bh(&pmlmepriv->lock);
++ if (pmlmepriv->wps_probe_req_ie)
+ {
-+ u32 free_len = pmlmepriv->wps_probe_req_ie_len;
+ pmlmepriv->wps_probe_req_ie_len = 0;
-+ rtw_mfree(pmlmepriv->wps_probe_req_ie, free_len);
-+ pmlmepriv->wps_probe_req_ie = NULL;
++ kfree(pmlmepriv->wps_probe_req_ie);
++ pmlmepriv->wps_probe_req_ie = NULL;
+ }
-+
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("rtw_surveydone_event_callback: fw_state:%x\n\n", get_fwstate(pmlmepriv)));
-+
-+ if (check_fwstate(pmlmepriv,_FW_UNDER_SURVEY))
++
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_surveydone_event_callback: fw_state:%x\n\n", get_fwstate(pmlmepriv)));
++
++ if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY))
+ {
-+ //u8 timer_cancelled;
++ /* u8 timer_cancelled; */
+
+ timer_cancelled = true;
-+ //_cancel_timer(&pmlmepriv->scan_to_timer, &timer_cancelled);
-+
++ /* _cancel_timer(&pmlmepriv->scan_to_timer, &timer_cancelled); */
++
+ _clr_fwstate_(pmlmepriv, _FW_UNDER_SURVEY);
+ }
+ else {
-+
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("nic status =%x, survey done event comes too late!\n", get_fwstate(pmlmepriv)));
-+ }
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
+
-+ if(timer_cancelled)
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("nic status =%x, survey done event comes too late!\n", get_fwstate(pmlmepriv)));
++ }
++ spin_unlock_bh(&pmlmepriv->lock);
++
++ if (timer_cancelled)
+ _cancel_timer(&pmlmepriv->scan_to_timer, &timer_cancelled);
+
+
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
++ spin_lock_bh(&pmlmepriv->lock);
+
+ rtw_set_signal_stat_timer(&adapter->recvpriv);
+
-+ if(pmlmepriv->to_join == true)
++ if (pmlmepriv->to_join == true)
+ {
-+ if((check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)==true) )
++ if ((check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) ==true))
+ {
-+ if(check_fwstate(pmlmepriv, _FW_LINKED)==false)
++ if (check_fwstate(pmlmepriv, _FW_LINKED) ==false)
+ {
-+ set_fwstate(pmlmepriv, _FW_UNDER_LINKING);
-+
-+ if(rtw_select_and_join_from_scanned_queue(pmlmepriv)==_SUCCESS)
-+ {
-+ _set_timer(&pmlmepriv->assoc_timer, MAX_JOIN_TIMEOUT );
-+ }
-+ else
-+ {
-+ WLAN_BSSID_EX *pdev_network = &(adapter->registrypriv.dev_network);
++ set_fwstate(pmlmepriv, _FW_UNDER_LINKING);
++
++ if (rtw_select_and_join_from_scanned_queue(pmlmepriv) == _SUCCESS)
++ {
++ _set_timer(&pmlmepriv->assoc_timer, MAX_JOIN_TIMEOUT);
++ }
++ else
++ {
++ struct wlan_bssid_ex *pdev_network = &(adapter->registrypriv.dev_network);
+ u8 *pibss = adapter->registrypriv.dev_network.MacAddress;
+
-+ //pmlmepriv->fw_state ^= _FW_UNDER_SURVEY;//because don't set assoc_timer
++ /* pmlmepriv->fw_state ^= _FW_UNDER_SURVEY;because don't set assoc_timer */
+ _clr_fwstate_(pmlmepriv, _FW_UNDER_SURVEY);
+
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("switching to adhoc master\n"));
-+
-+ memset(&pdev_network->Ssid, 0, sizeof(NDIS_802_11_SSID));
-+ memcpy(&pdev_network->Ssid, &pmlmepriv->assoc_ssid, sizeof(NDIS_802_11_SSID));
-+
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("switching to adhoc master\n"));
++
++ memset(&pdev_network->Ssid, 0, sizeof(struct ndis_802_11_ssid));
++ memcpy(&pdev_network->Ssid, &pmlmepriv->assoc_ssid, sizeof(struct ndis_802_11_ssid));
++
+ rtw_update_registrypriv_dev_network(adapter);
+ rtw_generate_random_ibss(pibss);
+
-+ pmlmepriv->fw_state = WIFI_ADHOC_MASTER_STATE;
-+
-+ if(rtw_createbss_cmd(adapter)!=_SUCCESS)
-+ {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("Error=>rtw_createbss_cmd status FAIL\n"));
-+ }
++ pmlmepriv->fw_state = WIFI_ADHOC_MASTER_STATE;
+
-+ pmlmepriv->to_join = false;
-+ }
-+ }
++ if (rtw_createbss_cmd(adapter)!= _SUCCESS)
++ {
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("Error =>rtw_createbss_cmd status FAIL\n"));
++ }
++
++ pmlmepriv->to_join = false;
++ }
++ }
+ }
+ else
+ {
+ int s_ret;
+ set_fwstate(pmlmepriv, _FW_UNDER_LINKING);
+ pmlmepriv->to_join = false;
-+ if(_SUCCESS == (s_ret=rtw_select_and_join_from_scanned_queue(pmlmepriv)))
++ if (_SUCCESS == (s_ret =rtw_select_and_join_from_scanned_queue(pmlmepriv)))
+ {
-+ _set_timer(&pmlmepriv->assoc_timer, MAX_JOIN_TIMEOUT);
++ _set_timer(&pmlmepriv->assoc_timer, MAX_JOIN_TIMEOUT);
+ }
-+ else if(s_ret == 2)//there is no need to wait for join
++ else if (s_ret == 2)/* there is no need to wait for join */
+ {
+ _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
+ rtw_indicate_connect(adapter);
@@ -13954,18 +11217,18 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ DBG_871X("try_to_join, but select scanning queue fail, to_roam:%d\n", rtw_to_roam(adapter));
+
+ if (rtw_to_roam(adapter) != 0) {
-+ if(rtw_dec_to_roam(adapter) == 0
++ if (rtw_dec_to_roam(adapter) == 0
+ || _SUCCESS != rtw_sitesurvey_cmd(adapter, &pmlmepriv->assoc_ssid, 1, NULL, 0)
+ ) {
+ rtw_set_to_roam(adapter, 0);
+#ifdef CONFIG_INTEL_WIDI
-+ if(adapter->mlmepriv.widi_state == INTEL_WIDI_STATE_ROAMING)
++ if (adapter->mlmepriv.widi_state == INTEL_WIDI_STATE_ROAMING)
+ {
+ memset(pmlmepriv->sa_ext, 0x00, L2SDTA_SERVICE_VE_LEN);
+ intel_widi_wk_cmd(adapter, INTEL_WIDI_LISTEN_WK, NULL, 0);
+ DBG_871X("change to widi listen\n");
+ }
-+#endif // CONFIG_INTEL_WIDI
++#endif /* CONFIG_INTEL_WIDI */
+ rtw_free_assoc_resources(adapter, 1);
+ rtw_indicate_disconnect(adapter);
+ } else {
@@ -13991,43 +11254,35 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ }
+ }
+ }
-+
-+ //DBG_871X("scan complete in %dms\n",jiffies_to_msecs(jiffies - pmlmepriv->scan_start_time));
+
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
++ /* DBG_871X("scan complete in %dms\n", jiffies_to_msecs(jiffies - pmlmepriv->scan_start_time)); */
++
++ spin_unlock_bh(&pmlmepriv->lock);
+
+ rtw_os_xmit_schedule(adapter);
+
+ rtw_cfg80211_surveydone_event_callback(adapter);
+
+ rtw_indicate_scan_done(adapter, false);
-+
-+_func_exit_;
-+
+}
+
-+void rtw_dummy_event_callback(_adapter *adapter , u8 *pbuf)
++void rtw_dummy_event_callback(struct adapter *adapter , u8 *pbuf)
+{
-+
+}
+
-+void rtw_fwdbg_event_callback(_adapter *adapter , u8 *pbuf)
++void rtw_fwdbg_event_callback(struct adapter *adapter , u8 *pbuf)
+{
-+
+}
+
+static void free_scanqueue(struct mlme_priv *pmlmepriv)
+{
-+ _irqL irqL, irqL0;
-+ _queue *free_queue = &pmlmepriv->free_bss_pool;
-+ _queue *scan_queue = &pmlmepriv->scanned_queue;
-+ _list *plist, *phead, *ptemp;
-+
-+_func_enter_;
-+
++ struct __queue *free_queue = &pmlmepriv->free_bss_pool;
++ struct __queue *scan_queue = &pmlmepriv->scanned_queue;
++ struct list_head *plist, *phead, *ptemp;
++
+ RT_TRACE(_module_rtl871x_mlme_c_, _drv_notice_, ("+free_scanqueue\n"));
-+ _enter_critical_bh(&scan_queue->lock, &irqL0);
-+ _enter_critical_bh(&free_queue->lock, &irqL);
++ spin_lock_bh(&scan_queue->lock);
++ spin_lock_bh(&free_queue->lock);
+
+ phead = get_list_head(scan_queue);
+ plist = get_next(phead);
@@ -14035,207 +11290,172 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ while (plist != phead)
+ {
+ ptemp = get_next(plist);
-+ rtw_list_delete(plist);
-+ rtw_list_insert_tail(plist, &free_queue->queue);
++ list_del_init(plist);
++ list_add_tail(plist, &free_queue->queue);
+ plist =ptemp;
+ pmlmepriv->num_of_scanned --;
+ }
-+
-+ _exit_critical_bh(&free_queue->lock, &irqL);
-+ _exit_critical_bh(&scan_queue->lock, &irqL0);
-+
-+_func_exit_;
++
++ spin_unlock_bh(&free_queue->lock);
++ spin_unlock_bh(&scan_queue->lock);
+}
+
-+void rtw_reset_rx_info(struct debug_priv *pdbgpriv){
++static void rtw_reset_rx_info(struct debug_priv *pdbgpriv)
++{
+ pdbgpriv->dbg_rx_ampdu_drop_count = 0;
+ pdbgpriv->dbg_rx_ampdu_forced_indicate_count = 0;
+ pdbgpriv->dbg_rx_ampdu_loss_count = 0;
+ pdbgpriv->dbg_rx_dup_mgt_frame_drop_count = 0;
+ pdbgpriv->dbg_rx_ampdu_window_shift_cnt = 0;
+}
-+
++
++static void find_network(struct adapter *adapter)
++{
++ struct wlan_network* pwlan = NULL;
++ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
++ struct wlan_network *tgt_network = &pmlmepriv->cur_network;
++
++ pwlan = rtw_find_network(&pmlmepriv->scanned_queue, tgt_network->network.MacAddress);
++ if (pwlan)
++ pwlan->fixed = false;
++ else
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("rtw_free_assoc_resources : pwlan == NULL\n\n"));
++
++
++ if (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) &&
++ (adapter->stapriv.asoc_sta_count == 1))
++ rtw_free_network_nolock(adapter, pwlan);
++}
++
+/*
+*rtw_free_assoc_resources: the caller has to lock pmlmepriv->lock
+*/
-+void rtw_free_assoc_resources(_adapter *adapter, int lock_scanned_queue)
++void rtw_free_assoc_resources(struct adapter *adapter, int lock_scanned_queue)
+{
-+ _irqL irqL;
-+ struct wlan_network* pwlan = NULL;
+ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
-+ struct sta_priv *pstapriv = &adapter->stapriv;
+ struct wlan_network *tgt_network = &pmlmepriv->cur_network;
++ struct sta_priv *pstapriv = &adapter->stapriv;
+ struct dvobj_priv *psdpriv = adapter->dvobj;
-+ struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
-+
-+
-+_func_enter_;
++ struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
+
+ RT_TRACE(_module_rtl871x_mlme_c_, _drv_notice_, ("+rtw_free_assoc_resources\n"));
-+ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("tgt_network->network.MacAddress="MAC_FMT" ssid=%s\n",
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("tgt_network->network.MacAddress ="MAC_FMT" ssid =%s\n",
+ MAC_ARG(tgt_network->network.MacAddress), tgt_network->network.Ssid.Ssid));
+
-+ if(check_fwstate( pmlmepriv, WIFI_STATION_STATE|WIFI_AP_STATE))
++ if (check_fwstate(pmlmepriv, WIFI_STATION_STATE|WIFI_AP_STATE))
+ {
+ struct sta_info* psta;
-+
++
+ psta = rtw_get_stainfo(&adapter->stapriv, tgt_network->network.MacAddress);
-+ _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
++ spin_lock_bh(&(pstapriv->sta_hash_lock));
+ rtw_free_stainfo(adapter, psta);
+
-+ _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+
++ spin_unlock_bh(&(pstapriv->sta_hash_lock));
++
+ }
+
-+ if(check_fwstate( pmlmepriv, WIFI_ADHOC_STATE|WIFI_ADHOC_MASTER_STATE|WIFI_AP_STATE))
++ if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE|WIFI_ADHOC_MASTER_STATE|WIFI_AP_STATE))
+ {
+ struct sta_info* psta;
-+
++
+ rtw_free_all_stainfo(adapter);
+
+ psta = rtw_get_bcmc_stainfo(adapter);
-+ _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
+ rtw_free_stainfo(adapter, psta);
-+ _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
+
-+ rtw_init_bcmc_stainfo(adapter);
++ rtw_init_bcmc_stainfo(adapter);
+ }
+
-+ if(lock_scanned_queue)
-+ _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+
-+ pwlan = rtw_find_network(&pmlmepriv->scanned_queue, tgt_network->network.MacAddress);
-+ if(pwlan)
-+ {
-+ pwlan->fixed = false;
-+ }
-+ else
-+ {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("rtw_free_assoc_resources : pwlan== NULL \n\n"));
++ if (lock_scanned_queue) {
++ find_network(adapter);
++ } else {
++ find_network(adapter);
+ }
+
++ if (lock_scanned_queue)
+
-+ if((check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) && (adapter->stapriv.asoc_sta_count== 1))
-+ /*||check_fwstate(pmlmepriv, WIFI_STATION_STATE)*/)
-+ {
-+ rtw_free_network_nolock(adapter, pwlan);
-+ }
-+
-+ if(lock_scanned_queue)
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+
+ adapter->securitypriv.key_mask = 0;
+
+ rtw_reset_rx_info(pdbgpriv);
-+
-+_func_exit_;
-+
+}
+
+/*
+*rtw_indicate_connect: the caller has to lock pmlmepriv->lock
+*/
-+void rtw_indicate_connect(_adapter *padapter)
++void rtw_indicate_connect(struct adapter *padapter)
+{
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+
-+_func_enter_;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+
+ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("+rtw_indicate_connect\n"));
-+
++
+ pmlmepriv->to_join = false;
+
-+ if(!check_fwstate(&padapter->mlmepriv, _FW_LINKED))
++ if (!check_fwstate(&padapter->mlmepriv, _FW_LINKED))
+ {
+
+ set_fwstate(pmlmepriv, _FW_LINKED);
+
-+ rtw_led_control(padapter, LED_CTL_LINK);
-+
+ rtw_os_indicate_connect(padapter);
+ }
+
+ rtw_set_to_roam(padapter, 0);
+#ifdef CONFIG_INTEL_WIDI
-+ if(padapter->mlmepriv.widi_state == INTEL_WIDI_STATE_ROAMING)
++ if (padapter->mlmepriv.widi_state == INTEL_WIDI_STATE_ROAMING)
+ {
+ memset(pmlmepriv->sa_ext, 0x00, L2SDTA_SERVICE_VE_LEN);
+ intel_widi_wk_cmd(padapter, INTEL_WIDI_LISTEN_WK, NULL, 0);
+ DBG_871X("change to widi listen\n");
+ }
-+#endif // CONFIG_INTEL_WIDI
++#endif /* CONFIG_INTEL_WIDI */
+
+ rtw_set_scan_deny(padapter, 3000);
+
-+ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("-rtw_indicate_connect: fw_state=0x%08x\n", get_fwstate(pmlmepriv)));
-+
-+_func_exit_;
-+
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("-rtw_indicate_connect: fw_state = 0x%08x\n", get_fwstate(pmlmepriv)));
+}
+
-+
+/*
+*rtw_indicate_disconnect: the caller has to lock pmlmepriv->lock
+*/
-+void rtw_indicate_disconnect( _adapter *padapter )
++void rtw_indicate_disconnect(struct adapter *padapter)
+{
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+
-+_func_enter_;
-+
+ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("+rtw_indicate_disconnect\n"));
+
+ _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING|WIFI_UNDER_WPS);
+
-+ //DBG_871X("clear wps when %s\n", __func__);
++ /* DBG_871X("clear wps when %s\n", __func__); */
+
-+ if(rtw_to_roam(padapter) > 0)
++ if (rtw_to_roam(padapter) > 0)
+ _clr_fwstate_(pmlmepriv, _FW_LINKED);
+
-+#ifdef CONFIG_WAPI_SUPPORT
-+ psta = rtw_get_stainfo(pstapriv,cur_network->MacAddress);
-+ if (check_fwstate(pmlmepriv, WIFI_STATION_STATE))
-+ {
-+ rtw_wapi_return_one_sta_info(padapter, psta->hwaddr);
-+ }
-+ else if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) ||
-+ check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE))
-+ {
-+ rtw_wapi_return_all_sta_info(padapter);
-+ }
-+#endif
-+
-+ if(check_fwstate(&padapter->mlmepriv, _FW_LINKED)
++ if (check_fwstate(&padapter->mlmepriv, _FW_LINKED)
+ || (rtw_to_roam(padapter) <= 0)
+ )
+ {
+ rtw_os_indicate_disconnect(padapter);
+
-+ //set ips_deny_time to avoid enter IPS before LPS leave
++ /* set ips_deny_time to avoid enter IPS before LPS leave */
+ rtw_set_ips_deny(padapter, 3000);
+
+ _clr_fwstate_(pmlmepriv, _FW_LINKED);
+
-+ rtw_led_control(padapter, LED_CTL_NO_LINK);
-+
+ rtw_clear_scan_deny(padapter);
+ }
+
+ rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_DISCONNECT, 1);
-+
-+_func_exit_;
+}
+
-+inline void rtw_indicate_scan_done( _adapter *padapter, bool aborted)
++inline void rtw_indicate_scan_done(struct adapter *padapter, bool aborted)
+{
+ DBG_871X(FUNC_ADPT_FMT"\n", FUNC_ADPT_ARG(padapter));
+
+ rtw_os_indicate_scan_done(padapter, aborted);
+
-+ if (is_primary_adapter(padapter)
-+ && (false == adapter_to_pwrctl(padapter)->bInSuspend)
-+ && (check_fwstate(&padapter->mlmepriv, WIFI_ASOC_STATE|WIFI_UNDER_LINKING) == false))
-+ {
++ if (is_primary_adapter(padapter) &&
++ (!adapter_to_pwrctl(padapter)->bInSuspend) &&
++ (!check_fwstate(&padapter->mlmepriv,
++ WIFI_ASOC_STATE|WIFI_UNDER_LINKING))) {
+ struct pwrctrl_priv *pwrpriv;
+
+ pwrpriv = adapter_to_pwrctl(padapter);
@@ -14244,11 +11464,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ }
+}
+
-+void rtw_scan_abort(_adapter *adapter)
++void rtw_scan_abort(struct adapter *adapter)
+{
+ unsigned long start;
-+ struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
-+ struct mlme_ext_priv *pmlmeext = &(adapter->mlmeextpriv);
++ struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
++ struct mlme_ext_priv *pmlmeext = &(adapter->mlmeextpriv);
+
+ start = jiffies;
+ pmlmeext->scan_abort = true;
@@ -14258,7 +11478,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ if (adapter->bDriverStopped || adapter->bSurpriseRemoved)
+ break;
+
-+ DBG_871X(FUNC_NDEV_FMT"fw_state=_FW_UNDER_SURVEY!\n", FUNC_NDEV_ARG(adapter->pnetdev));
++ DBG_871X(FUNC_NDEV_FMT"fw_state = _FW_UNDER_SURVEY!\n", FUNC_NDEV_ARG(adapter->pnetdev));
+ msleep(20);
+ }
+
@@ -14270,140 +11490,138 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ pmlmeext->scan_abort = false;
+}
+
-+static struct sta_info *rtw_joinbss_update_stainfo(_adapter *padapter, struct wlan_network *pnetwork)
++static struct sta_info *rtw_joinbss_update_stainfo(struct adapter *padapter, struct wlan_network *pnetwork)
+{
+ int i;
-+ struct sta_info *bmc_sta, *psta=NULL;
++ struct sta_info *bmc_sta, *psta = NULL;
+ struct recv_reorder_ctrl *preorder_ctrl;
+ struct sta_priv *pstapriv = &padapter->stapriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+
+ psta = rtw_get_stainfo(pstapriv, pnetwork->network.MacAddress);
-+ if(psta==NULL) {
++ if (psta == NULL) {
+ psta = rtw_alloc_stainfo(pstapriv, pnetwork->network.MacAddress);
+ }
+
-+ if(psta) //update ptarget_sta
++ if (psta) /* update ptarget_sta */
+ {
-+ DBG_871X("%s\n", __FUNCTION__);
-+
++ DBG_871X("%s\n", __func__);
++
+ psta->aid = pnetwork->join_res;
+
+ update_sta_info(padapter, psta);
+
-+ //update station supportRate
++ /* update station supportRate */
+ psta->bssratelen = rtw_get_rateset_len(pnetwork->network.SupportedRates);
+ memcpy(psta->bssrateset, pnetwork->network.SupportedRates, psta->bssratelen);
+ rtw_hal_update_sta_rate_mask(padapter, psta);
+
+ psta->wireless_mode = pmlmeext->cur_wireless_mode;
-+ psta->raid = rtw_hal_networktype_to_raid(padapter,psta);
++ psta->raid = rtw_hal_networktype_to_raid(padapter, psta);
+
+
-+ //sta mode
-+ rtw_hal_set_odm_var(padapter,HAL_ODM_STA_INFO,psta,true);
++ /* sta mode */
++ rtw_hal_set_odm_var(padapter, HAL_ODM_STA_INFO, psta, true);
+
-+ //security related
-+ if(padapter->securitypriv.dot11AuthAlgrthm== dot11AuthAlgrthm_8021X)
-+ {
-+ padapter->securitypriv.binstallGrpkey=false;
-+ padapter->securitypriv.busetkipkey=false;
-+ padapter->securitypriv.bgrpkey_handshake=false;
++ /* security related */
++ if (padapter->securitypriv.dot11AuthAlgrthm == dot11AuthAlgrthm_8021X)
++ {
++ padapter->securitypriv.binstallGrpkey =false;
++ padapter->securitypriv.busetkipkey =false;
++ padapter->securitypriv.bgrpkey_handshake =false;
++
++ psta->ieee8021x_blocked =true;
++ psta->dot118021XPrivacy =padapter->securitypriv.dot11PrivacyAlgrthm;
+
-+ psta->ieee8021x_blocked=true;
-+ psta->dot118021XPrivacy=padapter->securitypriv.dot11PrivacyAlgrthm;
-+
+ memset((u8 *)&psta->dot118021x_UncstKey, 0, sizeof (union Keytype));
-+
++
+ memset((u8 *)&psta->dot11tkiprxmickey, 0, sizeof (union Keytype));
+ memset((u8 *)&psta->dot11tkiptxmickey, 0, sizeof (union Keytype));
-+
++
+ memset((u8 *)&psta->dot11txpn, 0, sizeof (union pn48));
+ psta->dot11txpn.val = psta->dot11txpn.val + 1;
-+#ifdef CONFIG_IEEE80211W
+ memset((u8 *)&psta->dot11wtxpn, 0, sizeof (union pn48));
-+#endif //CONFIG_IEEE80211W
-+ memset((u8 *)&psta->dot11rxpn, 0, sizeof (union pn48));
++ memset((u8 *)&psta->dot11rxpn, 0, sizeof (union pn48));
+ }
+
-+ // Commented by Albert 2012/07/21
-+ // When doing the WPS, the wps_ie_len won't equal to 0
-+ // And the Wi-Fi driver shouldn't allow the data packet to be tramsmitted.
-+ if ( padapter->securitypriv.wps_ie_len != 0 )
++ /* Commented by Albert 2012/07/21 */
++ /* When doing the WPS, the wps_ie_len won't equal to 0 */
++ /* And the Wi-Fi driver shouldn't allow the data packet to be tramsmitted. */
++ if (padapter->securitypriv.wps_ie_len != 0)
+ {
-+ psta->ieee8021x_blocked=true;
++ psta->ieee8021x_blocked =true;
+ padapter->securitypriv.wps_ie_len = 0;
+ }
+
+
-+ //for A-MPDU Rx reordering buffer control for bmc_sta & sta_info
-+ //if A-MPDU Rx is enabled, reseting rx_ordering_ctrl wstart_b(indicate_seq) to default value=0xffff
-+ //todo: check if AP can send A-MPDU packets
-+ for(i=0; i < 16 ; i++)
++ /* for A-MPDU Rx reordering buffer control for bmc_sta & sta_info */
++ /* if A-MPDU Rx is enabled, reseting rx_ordering_ctrl wstart_b(indicate_seq) to default value = 0xffff */
++ /* todo: check if AP can send A-MPDU packets */
++ for (i = 0; i < 16 ; i++)
+ {
-+ //preorder_ctrl = &precvpriv->recvreorder_ctrl[i];
++ /* preorder_ctrl = &precvpriv->recvreorder_ctrl[i]; */
+ preorder_ctrl = &psta->recvreorder_ctrl[i];
+ preorder_ctrl->enable = false;
+ preorder_ctrl->indicate_seq = 0xffff;
+ #ifdef DBG_RX_SEQ
-+ DBG_871X("DBG_RX_SEQ %s:%d indicate_seq:%u \n", __FUNCTION__, __LINE__,
++ DBG_871X("DBG_RX_SEQ %s:%d indicate_seq:%u\n", __func__, __LINE__,
+ preorder_ctrl->indicate_seq);
+ #endif
-+ preorder_ctrl->wend_b= 0xffff;
-+ preorder_ctrl->wsize_b = 64;//max_ampdu_sz;//ex. 32(kbytes) -> wsize_b=32
++ preorder_ctrl->wend_b = 0xffff;
++ preorder_ctrl->wsize_b = 64;/* max_ampdu_sz;ex. 32(kbytes) -> wsize_b =32 */
+ }
+
-+
++
+ bmc_sta = rtw_get_bcmc_stainfo(padapter);
-+ if(bmc_sta)
++ if (bmc_sta)
+ {
-+ for(i=0; i < 16 ; i++)
++ for (i = 0; i < 16 ; i++)
+ {
-+ //preorder_ctrl = &precvpriv->recvreorder_ctrl[i];
++ /* preorder_ctrl = &precvpriv->recvreorder_ctrl[i]; */
+ preorder_ctrl = &bmc_sta->recvreorder_ctrl[i];
+ preorder_ctrl->enable = false;
+ preorder_ctrl->indicate_seq = 0xffff;
+ #ifdef DBG_RX_SEQ
-+ DBG_871X("DBG_RX_SEQ %s:%d indicate_seq:%u \n", __FUNCTION__, __LINE__,
++ DBG_871X("DBG_RX_SEQ %s:%d indicate_seq:%u\n", __func__, __LINE__,
+ preorder_ctrl->indicate_seq);
+ #endif
-+ preorder_ctrl->wend_b= 0xffff;
-+ preorder_ctrl->wsize_b = 64;//max_ampdu_sz;//ex. 32(kbytes) -> wsize_b=32
++ preorder_ctrl->wend_b = 0xffff;
++ preorder_ctrl->wsize_b = 64;/* max_ampdu_sz;ex. 32(kbytes) -> wsize_b =32 */
+ }
+ }
+ }
-+
++
+ return psta;
-+
++
+}
+
-+//pnetwork : returns from rtw_joinbss_event_callback
-+//ptarget_wlan: found from scanned_queue
-+static void rtw_joinbss_update_network(_adapter *padapter, struct wlan_network *ptarget_wlan, struct wlan_network *pnetwork)
++/* pnetwork : returns from rtw_joinbss_event_callback */
++/* ptarget_wlan: found from scanned_queue */
++static void rtw_joinbss_update_network(struct adapter *padapter, struct wlan_network *ptarget_wlan, struct wlan_network *pnetwork)
+{
-+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
++ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
+ struct wlan_network *cur_network = &(pmlmepriv->cur_network);
+
-+ DBG_871X("%s\n", __FUNCTION__);
-+
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("\nfw_state:%x, BSSID:"MAC_FMT"\n"
-+ ,get_fwstate(pmlmepriv), MAC_ARG(pnetwork->network.MacAddress)));
++ DBG_871X("%s\n", __func__);
+
-+
-+ // why not use ptarget_wlan??
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("\nfw_state:%x, BSSID:"MAC_FMT"\n"
++ , get_fwstate(pmlmepriv), MAC_ARG(pnetwork->network.MacAddress)));
++
++
++ /* why not use ptarget_wlan?? */
+ memcpy(&cur_network->network, &pnetwork->network, pnetwork->network.Length);
-+ // some IEs in pnetwork is wrong, so we should use ptarget_wlan IEs
++ /* some IEs in pnetwork is wrong, so we should use ptarget_wlan IEs */
+ cur_network->network.IELength = ptarget_wlan->network.IELength;
+ memcpy(&cur_network->network.IEs[0], &ptarget_wlan->network.IEs[0], MAX_IE_SZ);
+
+ cur_network->aid = pnetwork->join_res;
+
-+
++
+ rtw_set_signal_stat_timer(&padapter->recvpriv);
+
+ padapter->recvpriv.signal_strength = ptarget_wlan->network.PhyInfo.SignalStrength;
+ padapter->recvpriv.signal_qual = ptarget_wlan->network.PhyInfo.SignalQuality;
-+ //the ptarget_wlan->network.Rssi is raw data, we use ptarget_wlan->network.PhyInfo.SignalStrength instead (has scaled)
++ /* the ptarget_wlan->network.Rssi is raw data, we use ptarget_wlan->network.PhyInfo.SignalStrength instead (has scaled) */
+ padapter->recvpriv.rssi = translate_percentage_to_dbm(ptarget_wlan->network.PhyInfo.SignalStrength);
+ #if defined(DBG_RX_SIGNAL_DISPLAY_PROCESSING) && 1
+ DBG_871X(FUNC_ADPT_FMT" signal_strength:%3u, rssi:%3d, signal_qual:%3u"
@@ -14416,114 +11634,108 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ #endif
+
+ rtw_set_signal_stat_timer(&padapter->recvpriv);
-+
-+ //update fw_state //will clr _FW_UNDER_LINKING here indirectly
-+ switch(pnetwork->network.InfrastructureMode)
-+ {
-+ case Ndis802_11Infrastructure:
-+
-+ if(pmlmepriv->fw_state&WIFI_UNDER_WPS)
++
++ /* update fw_state will clr _FW_UNDER_LINKING here indirectly */
++ switch (pnetwork->network.InfrastructureMode)
++ {
++ case Ndis802_11Infrastructure:
++
++ if (pmlmepriv->fw_state&WIFI_UNDER_WPS)
+ pmlmepriv->fw_state = WIFI_STATION_STATE|WIFI_UNDER_WPS;
+ else
+ pmlmepriv->fw_state = WIFI_STATION_STATE;
-+
++
+ break;
-+ case Ndis802_11IBSS:
++ case Ndis802_11IBSS:
+ pmlmepriv->fw_state = WIFI_ADHOC_STATE;
+ break;
+ default:
+ pmlmepriv->fw_state = WIFI_NULL_STATE;
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("Invalid network_mode\n"));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("Invalid network_mode\n"));
+ break;
+ }
+
-+ rtw_update_protection(padapter, (cur_network->network.IEs) + sizeof (NDIS_802_11_FIXED_IEs),
++ rtw_update_protection(padapter, (cur_network->network.IEs) + sizeof (struct ndis_802_11_fix_ie),
+ (cur_network->network.IELength));
+
+ rtw_update_ht_cap(padapter, cur_network->network.IEs, cur_network->network.IELength, (u8) cur_network->network.Configuration.DSConfig);
+}
+
-+//Notes: the fucntion could be > passive_level (the same context as Rx tasklet)
-+//pnetwork : returns from rtw_joinbss_event_callback
-+//ptarget_wlan: found from scanned_queue
-+//if join_res > 0, for (fw_state==WIFI_STATION_STATE), we check if "ptarget_sta" & "ptarget_wlan" exist.
-+//if join_res > 0, for (fw_state==WIFI_ADHOC_STATE), we only check if "ptarget_wlan" exist.
-+//if join_res > 0, update "cur_network->network" from "pnetwork->network" if (ptarget_wlan !=NULL).
-+//
-+//#define REJOIN
-+void rtw_joinbss_event_prehandle(_adapter *adapter, u8 *pbuf)
++/* Notes: the fucntion could be > passive_level (the same context as Rx tasklet) */
++/* pnetwork : returns from rtw_joinbss_event_callback */
++/* ptarget_wlan: found from scanned_queue */
++/* if join_res > 0, for (fw_state ==WIFI_STATION_STATE), we check if "ptarget_sta" & "ptarget_wlan" exist. */
++/* if join_res > 0, for (fw_state ==WIFI_ADHOC_STATE), we only check if "ptarget_wlan" exist. */
++/* if join_res > 0, update "cur_network->network" from "pnetwork->network" if (ptarget_wlan != NULL). */
++/* */
++/* define REJOIN */
++void rtw_joinbss_event_prehandle(struct adapter *adapter, u8 *pbuf)
+{
-+ _irqL irqL,irqL2;
-+ static u8 retry=0;
++ static u8 retry = 0;
+ u8 timer_cancelled;
-+ struct sta_info *ptarget_sta= NULL, *pcur_sta = NULL;
-+ struct sta_priv *pstapriv = &adapter->stapriv;
-+ struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
-+ struct wlan_network *pnetwork = (struct wlan_network *)pbuf;
-+ struct wlan_network *cur_network = &(pmlmepriv->cur_network);
++ struct sta_info *ptarget_sta = NULL, *pcur_sta = NULL;
++ struct sta_priv *pstapriv = &adapter->stapriv;
++ struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
++ struct wlan_network *pnetwork = (struct wlan_network *)pbuf;
++ struct wlan_network *cur_network = &(pmlmepriv->cur_network);
+ struct wlan_network *pcur_wlan = NULL, *ptarget_wlan = NULL;
-+ unsigned int the_same_macaddr = false;
++ unsigned int the_same_macaddr = false;
+
-+_func_enter_;
-+
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("joinbss event call back received with res=%d\n", pnetwork->join_res));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("joinbss event call back received with res =%d\n", pnetwork->join_res));
+
+ rtw_get_encrypt_decrypt_from_registrypriv(adapter);
-+
++
+
+ if (pmlmepriv->assoc_ssid.SsidLength == 0)
+ {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("@@@@@ joinbss event call back for Any SSid\n"));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("@@@@@ joinbss event call back for Any SSid\n"));
+ }
+ else
+ {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("@@@@@ rtw_joinbss_event_callback for SSid:%s\n", pmlmepriv->assoc_ssid.Ssid));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("@@@@@ rtw_joinbss_event_callback for SSid:%s\n", pmlmepriv->assoc_ssid.Ssid));
+ }
-+
++
+ the_same_macaddr = !memcmp(pnetwork->network.MacAddress, cur_network->network.MacAddress, ETH_ALEN);
+
-+ pnetwork->network.Length = get_WLAN_BSSID_EX_sz(&pnetwork->network);
-+ if(pnetwork->network.Length > sizeof(WLAN_BSSID_EX))
++ pnetwork->network.Length = get_wlan_bssid_ex_sz(&pnetwork->network);
++ if (pnetwork->network.Length > sizeof(struct wlan_bssid_ex))
+ {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("\n\n ***joinbss_evt_callback return a wrong bss ***\n\n"));
-+ goto ignore_joinbss_callback;
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("\n\n ***joinbss_evt_callback return a wrong bss ***\n\n"));
++ return;
+ }
-+
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+
++
++ spin_lock_bh(&pmlmepriv->lock);
++
+ pmlmepriv->LinkDetectInfo.TrafficTransitionCount = 0;
+ pmlmepriv->LinkDetectInfo.LowPowerTransitionCount = 0;
-+
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("\n rtw_joinbss_event_callback !! _enter_critical \n"));
+
-+ if(pnetwork->join_res > 0)
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("\n rtw_joinbss_event_callback !! spin_lock_irqsave\n"));
++
++ if (pnetwork->join_res > 0)
+ {
-+ _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
++ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
+ retry = 0;
-+ if (check_fwstate(pmlmepriv,_FW_UNDER_LINKING) )
++ if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING))
+ {
-+ //s1. find ptarget_wlan
-+ if(check_fwstate(pmlmepriv, _FW_LINKED) )
++ /* s1. find ptarget_wlan */
++ if (check_fwstate(pmlmepriv, _FW_LINKED))
+ {
-+ if(the_same_macaddr == true)
++ if (the_same_macaddr == true)
+ {
-+ ptarget_wlan = rtw_find_network(&pmlmepriv->scanned_queue, cur_network->network.MacAddress);
++ ptarget_wlan = rtw_find_network(&pmlmepriv->scanned_queue, cur_network->network.MacAddress);
+ }
+ else
+ {
+ pcur_wlan = rtw_find_network(&pmlmepriv->scanned_queue, cur_network->network.MacAddress);
-+ if(pcur_wlan) pcur_wlan->fixed = false;
++ if (pcur_wlan) pcur_wlan->fixed = false;
+
+ pcur_sta = rtw_get_stainfo(pstapriv, cur_network->network.MacAddress);
-+ if(pcur_sta){
-+ _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);
++ if (pcur_sta)
+ rtw_free_stainfo(adapter, pcur_sta);
-+ _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);
-+ }
+
+ ptarget_wlan = rtw_find_network(&pmlmepriv->scanned_queue, pnetwork->network.MacAddress);
-+ if(check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true){
-+ if(ptarget_wlan) ptarget_wlan->fixed = true;
++ if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true) {
++ if (ptarget_wlan) ptarget_wlan->fixed = true;
+ }
+ }
+
@@ -14531,299 +11743,280 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ else
+ {
+ ptarget_wlan = _rtw_find_same_network(&pmlmepriv->scanned_queue, pnetwork);
-+ if(check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true){
-+ if(ptarget_wlan) ptarget_wlan->fixed = true;
++ if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true) {
++ if (ptarget_wlan) ptarget_wlan->fixed = true;
+ }
+ }
-+
-+ //s2. update cur_network
-+ if(ptarget_wlan)
-+ {
++
++ /* s2. update cur_network */
++ if (ptarget_wlan)
++ {
+ rtw_joinbss_update_network(adapter, ptarget_wlan, pnetwork);
+ }
+ else
-+ {
++ {
+ DBG_871X_LEVEL(_drv_always_, "Can't find ptarget_wlan when joinbss_event callback\n");
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
++ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
+ goto ignore_joinbss_callback;
+ }
-+
-+
-+ //s3. find ptarget_sta & update ptarget_sta after update cur_network only for station mode
-+ if(check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true)
-+ {
++
++
++ /* s3. find ptarget_sta & update ptarget_sta after update cur_network only for station mode */
++ if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true)
++ {
+ ptarget_sta = rtw_joinbss_update_stainfo(adapter, pnetwork);
-+ if(ptarget_sta==NULL)
++ if (ptarget_sta == NULL)
+ {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("Can't update stainfo when joinbss_event callback\n"));
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("Can't update stainfo when joinbss_event callback\n"));
++ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
+ goto ignore_joinbss_callback;
+ }
+ }
+
-+ //s4. indicate connect
-+ if(check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true)
++ /* s4. indicate connect */
++ if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true)
+ {
+ pmlmepriv->cur_network_scanned = ptarget_wlan;
+ rtw_indicate_connect(adapter);
+ }
+ else
+ {
-+ //adhoc mode will rtw_indicate_connect when rtw_stassoc_event_callback
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("adhoc mode, fw_state:%x", get_fwstate(pmlmepriv)));
++ /* adhoc mode will rtw_indicate_connect when rtw_stassoc_event_callback */
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("adhoc mode, fw_state:%x", get_fwstate(pmlmepriv)));
+ }
+
-+
-+ //s5. Cancle assoc_timer
++
++ /* s5. Cancle assoc_timer */
+ _cancel_timer(&pmlmepriv->assoc_timer, &timer_cancelled);
-+
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("Cancle assoc_timer \n"));
-+
++
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("Cancle assoc_timer\n"));
++
+ }
+ else
+ {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("rtw_joinbss_event_callback err: fw_state:%x", get_fwstate(pmlmepriv)));
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("rtw_joinbss_event_callback err: fw_state:%x", get_fwstate(pmlmepriv)));
++ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
+ goto ignore_joinbss_callback;
+ }
-+
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+
++
++ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
++
+ }
-+ else if(pnetwork->join_res == -4)
++ else if (pnetwork->join_res == -4)
+ {
+ rtw_reset_securitypriv(adapter);
-+ _set_timer(&pmlmepriv->assoc_timer, 1);
++ _set_timer(&pmlmepriv->assoc_timer, 1);
+
-+ //rtw_free_assoc_resources(adapter, 1);
++ /* rtw_free_assoc_resources(adapter, 1); */
+
-+ if((check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) == true)
-+ {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("fail! clear _FW_UNDER_LINKING ^^^fw_state=%x\n", get_fwstate(pmlmepriv)));
++ if ((check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) == true)
++ {
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("fail! clear _FW_UNDER_LINKING ^^^fw_state =%x\n", get_fwstate(pmlmepriv)));
+ _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
-+ }
-+
-+ }
-+ else //if join_res < 0 (join fails), then try again
-+ {
-+
-+ #ifdef REJOIN
-+ res = _FAIL;
-+ if(retry < 2) {
-+ res = rtw_select_and_join_from_scanned_queue(pmlmepriv);
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("rtw_select_and_join_from_scanned_queue again! res:%d\n",res));
+ }
+
-+ if(res == _SUCCESS)
++ }
++ else /* if join_res < 0 (join fails), then try again */
++ {
++
++ #ifdef REJOIN
++ res = _FAIL;
++ if (retry < 2) {
++ res = rtw_select_and_join_from_scanned_queue(pmlmepriv);
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("rtw_select_and_join_from_scanned_queue again! res:%d\n", res));
++ }
++
++ if (res == _SUCCESS)
+ {
-+ //extend time of assoc_timer
++ /* extend time of assoc_timer */
+ _set_timer(&pmlmepriv->assoc_timer, MAX_JOIN_TIMEOUT);
+ retry++;
+ }
-+ else if(res == 2)//there is no need to wait for join
++ else if (res == 2)/* there is no need to wait for join */
+ {
+ _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
+ rtw_indicate_connect(adapter);
-+ }
++ }
+ else
+ {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("Set Assoc_Timer = 1; can't find match ssid in scanned_q \n"));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("Set Assoc_Timer = 1; can't find match ssid in scanned_q\n"));
+ #endif
-+
++
+ _set_timer(&pmlmepriv->assoc_timer, 1);
-+ //rtw_free_assoc_resources(adapter, 1);
++ /* rtw_free_assoc_resources(adapter, 1); */
+ _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
-+
++
+ #ifdef REJOIN
-+ retry = 0;
++ retry = 0;
+ }
+ #endif
+ }
+
+ignore_joinbss_callback:
+
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+ _func_exit_;
++ spin_unlock_bh(&pmlmepriv->lock);
+}
+
-+void rtw_joinbss_event_callback(_adapter *adapter, u8 *pbuf)
++void rtw_joinbss_event_callback(struct adapter *adapter, u8 *pbuf)
+{
-+ struct wlan_network *pnetwork = (struct wlan_network *)pbuf;
-+
-+_func_enter_;
++ struct wlan_network *pnetwork = (struct wlan_network *)pbuf;
+
+ mlmeext_joinbss_event_callback(adapter, pnetwork->join_res);
+
+ rtw_os_xmit_schedule(adapter);
-+
-+_func_exit_;
+}
+
-+//FOR STA, AP ,AD-HOC mode
-+void rtw_sta_media_status_rpt(_adapter *adapter,struct sta_info *psta, u32 mstatus)
++/* FOR STA, AP , AD-HOC mode */
++void rtw_sta_media_status_rpt(struct adapter *adapter, struct sta_info *psta, u32 mstatus)
+{
+ u16 media_status_rpt;
+
-+ if(psta==NULL) return;
++ if (psta == NULL) return;
+
-+ media_status_rpt = (u16)((psta->mac_id<<8)|mstatus); // MACID|OPMODE:1 connect
-+ rtw_hal_set_hwreg(adapter,HW_VAR_H2C_MEDIA_STATUS_RPT,(u8 *)&media_status_rpt);
++ media_status_rpt = (u16)((psta->mac_id<<8)|mstatus); /* MACID|OPMODE:1 connect */
++ rtw_hal_set_hwreg(adapter, HW_VAR_H2C_MEDIA_STATUS_RPT, (u8 *)&media_status_rpt);
+}
+
-+void rtw_stassoc_event_callback(_adapter *adapter, u8 *pbuf)
++void rtw_stassoc_event_callback(struct adapter *adapter, u8 *pbuf)
+{
-+ _irqL irqL;
+ struct sta_info *psta;
+ struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
+ struct stassoc_event *pstassoc = (struct stassoc_event*)pbuf;
-+ struct wlan_network *cur_network = &(pmlmepriv->cur_network);
++ struct wlan_network *cur_network = &(pmlmepriv->cur_network);
+ struct wlan_network *ptarget_wlan = NULL;
-+
-+_func_enter_;
-+
-+ if(rtw_access_ctrl(adapter, pstassoc->macaddr) == false)
++
++ if (rtw_access_ctrl(adapter, pstassoc->macaddr) == false)
+ return;
+
-+#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
-+ if(check_fwstate(pmlmepriv, WIFI_AP_STATE))
++ if (check_fwstate(pmlmepriv, WIFI_AP_STATE))
+ {
-+ psta = rtw_get_stainfo(&adapter->stapriv, pstassoc->macaddr);
-+ if(psta)
-+ {
++ psta = rtw_get_stainfo(&adapter->stapriv, pstassoc->macaddr);
++ if (psta)
++ {
+ u8 *passoc_req = NULL;
+ u32 assoc_req_len = 0;
-+
++
+ rtw_sta_media_status_rpt(adapter, psta, 1);
-+
++
+#ifndef CONFIG_AUTO_AP_MODE
+
+ ap_sta_info_defer_update(adapter, psta);
+
-+ //report to upper layer
++ /* report to upper layer */
+ DBG_871X("indicate_sta_assoc_event to upper layer - hostapd\n");
-+ _enter_critical_bh(&psta->lock, &irqL);
-+ if(psta->passoc_req && psta->assoc_req_len>0)
-+ {
++ spin_lock_bh(&psta->lock);
++ if (psta->passoc_req && psta->assoc_req_len>0)
++ {
+ passoc_req = rtw_zmalloc(psta->assoc_req_len);
-+ if(passoc_req)
++ if (passoc_req)
+ {
+ assoc_req_len = psta->assoc_req_len;
+ memcpy(passoc_req, psta->passoc_req, assoc_req_len);
-+
-+ rtw_mfree(psta->passoc_req , psta->assoc_req_len);
++
++ kfree(psta->passoc_req);
+ psta->passoc_req = NULL;
+ psta->assoc_req_len = 0;
+ }
-+ }
-+ _exit_critical_bh(&psta->lock, &irqL);
++ }
++ spin_unlock_bh(&psta->lock);
+
-+ if(passoc_req && assoc_req_len>0)
++ if (passoc_req && assoc_req_len>0)
+ {
+ rtw_cfg80211_indicate_sta_assoc(adapter, passoc_req, assoc_req_len);
+
-+ rtw_mfree(passoc_req, assoc_req_len);
-+ }
-+#endif //!CONFIG_AUTO_AP_MODE
-+ }
-+ goto exit;
-+ }
-+#endif //defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
-+
-+ //for AD-HOC mode
-+ psta = rtw_get_stainfo(&adapter->stapriv, pstassoc->macaddr);
-+ if( psta != NULL)
-+ {
-+ //the sta have been in sta_info_queue => do nothing
-+
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("Error: rtw_stassoc_event_callback: sta has been in sta_hash_queue \n"));
-+
-+ goto exit; //(between drv has received this event before and fw have not yet to set key to CAM_ENTRY)
++ kfree(passoc_req);
++ }
++#endif /* CONFIG_AUTO_AP_MODE */
++ }
++ return;
+ }
+
-+ psta = rtw_alloc_stainfo(&adapter->stapriv, pstassoc->macaddr);
++ /* for AD-HOC mode */
++ psta = rtw_get_stainfo(&adapter->stapriv, pstassoc->macaddr);
++ if (psta != NULL)
++ {
++ /* the sta have been in sta_info_queue => do nothing */
++
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("Error: rtw_stassoc_event_callback: sta has been in sta_hash_queue\n"));
++
++ return; /* between drv has received this event before and fw have not yet to set key to CAM_ENTRY) */
++ }
++
++ psta = rtw_alloc_stainfo(&adapter->stapriv, pstassoc->macaddr);
+ if (psta == NULL) {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("Can't alloc sta_info when rtw_stassoc_event_callback\n"));
-+ goto exit;
-+ }
-+
-+ //to do : init sta_info variable
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("Can't alloc sta_info when rtw_stassoc_event_callback\n"));
++ return;
++ }
++
++ /* to do : init sta_info variable */
+ psta->qos_option = 0;
+ psta->mac_id = (uint)pstassoc->cam_id;
-+ //psta->aid = (uint)pstassoc->cam_id;
-+ DBG_871X("%s\n",__FUNCTION__);
-+ //for ad-hoc mode
-+ rtw_hal_set_odm_var(adapter,HAL_ODM_STA_INFO,psta,true);
++ /* psta->aid = (uint)pstassoc->cam_id; */
++ DBG_871X("%s\n", __func__);
++ /* for ad-hoc mode */
++ rtw_hal_set_odm_var(adapter, HAL_ODM_STA_INFO, psta, true);
+
+ rtw_sta_media_status_rpt(adapter, psta, 1);
-+
-+ if(adapter->securitypriv.dot11AuthAlgrthm==dot11AuthAlgrthm_8021X)
++
++ if (adapter->securitypriv.dot11AuthAlgrthm ==dot11AuthAlgrthm_8021X)
+ psta->dot118021XPrivacy = adapter->securitypriv.dot11PrivacyAlgrthm;
-+
+
-+ psta->ieee8021x_blocked = false;
-+
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
+
-+ if ( (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)==true ) ||
-+ (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)==true ) )
++ psta->ieee8021x_blocked = false;
++
++ spin_lock_bh(&pmlmepriv->lock);
++
++ if ((check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) ==true) ||
++ (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) ==true))
+ {
-+ if(adapter->stapriv.asoc_sta_count== 2)
++ if (adapter->stapriv.asoc_sta_count == 2)
+ {
-+ _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
++ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
+ ptarget_wlan = rtw_find_network(&pmlmepriv->scanned_queue, cur_network->network.MacAddress);
+ pmlmepriv->cur_network_scanned = ptarget_wlan;
-+ if(ptarget_wlan) ptarget_wlan->fixed = true;
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ // a sta + bc/mc_stainfo (not Ibss_stainfo)
++ if (ptarget_wlan) ptarget_wlan->fixed = true;
++ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
++ /* a sta + bc/mc_stainfo (not Ibss_stainfo) */
+ rtw_indicate_connect(adapter);
+ }
+ }
+
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
++ spin_unlock_bh(&pmlmepriv->lock);
+
+
+ mlmeext_sta_add_event_callback(adapter, psta);
-+
-+exit:
-+
-+_func_exit_;
-+
+}
+
-+void rtw_stadel_event_callback(_adapter *adapter, u8 *pbuf)
++void rtw_stadel_event_callback(struct adapter *adapter, u8 *pbuf)
+{
-+ _irqL irqL,irqL2;
+ int mac_id = (-1);
+ struct sta_info *psta;
+ struct wlan_network* pwlan = NULL;
-+ WLAN_BSSID_EX *pdev_network=NULL;
-+ u8* pibss = NULL;
-+ struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
-+ struct stadel_event *pstadel = (struct stadel_event*)pbuf;
-+ struct sta_priv *pstapriv = &adapter->stapriv;
++ struct wlan_bssid_ex *pdev_network = NULL;
++ u8 *pibss = NULL;
++ struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
++ struct stadel_event *pstadel = (struct stadel_event*)pbuf;
+ struct wlan_network *tgt_network = &(pmlmepriv->cur_network);
-+ struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+
-+_func_enter_;
-+
++ struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++
+ psta = rtw_get_stainfo(&adapter->stapriv, pstadel->macaddr);
-+ if(psta)
++ if (psta)
+ mac_id = psta->mac_id;
+ else
+ mac_id = pstadel->mac_id;
+
-+ DBG_871X("%s(mac_id=%d)=" MAC_FMT "\n", __func__, mac_id, MAC_ARG(pstadel->macaddr));
++ DBG_871X("%s(mac_id =%d) =" MAC_FMT "\n", __func__, mac_id, MAC_ARG(pstadel->macaddr));
+
-+ if(mac_id>=0){
++ if (mac_id>= 0) {
+ u16 media_status;
-+ media_status = (mac_id<<8)|0; // MACID|OPMODE:0 means disconnect
-+ //for STA,AP,ADHOC mode, report disconnect stauts to FW
++ media_status = (mac_id<<8)|0; /* MACID|OPMODE:0 means disconnect */
++ /* for STA, AP, ADHOC mode, report disconnect stauts to FW */
+ rtw_hal_set_hwreg(adapter, HW_VAR_H2C_MEDIA_STATUS_RPT, (u8 *)&media_status);
-+ }
++ }
+
-+ //if(check_fwstate(pmlmepriv, WIFI_AP_STATE))
-+ if((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE)
++ /* if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) */
++ if ((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE)
+ {
+ return;
+ }
@@ -14831,16 +12024,15 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+
+ mlmeext_sta_del_event_callback(adapter);
+
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL2);
++ spin_lock_bh(&pmlmepriv->lock);
+
-+ if(check_fwstate(pmlmepriv, WIFI_STATION_STATE) )
++ if (check_fwstate(pmlmepriv, WIFI_STATION_STATE))
+ {
+ u16 reason = *((unsigned short *)(pstadel->rsvd));
+ bool roam = false;
+ struct wlan_network *roam_target = NULL;
+
-+ #ifdef CONFIG_LAYER2_ROAMING
-+ if(adapter->registrypriv.wifi_spec==1) {
++ if (adapter->registrypriv.wifi_spec == 1) {
+ roam = false;
+ } else if (reason == WLAN_REASON_EXPIRATION_CHK && rtw_chk_roam_flags(adapter, RTW_ROAM_ON_EXPIRED)) {
+ roam = true;
@@ -14852,7 +12044,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ else if (adapter->mlmepriv.widi_state == INTEL_WIDI_STATE_CONNECTED) {
+ roam = true;
+ }
-+#endif // CONFIG_INTEL_WIDI
++#endif /* CONFIG_INTEL_WIDI */
+
+ if (roam == true) {
+ if (rtw_to_roam(adapter) > 0)
@@ -14862,216 +12054,186 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ } else {
+ rtw_set_to_roam(adapter, 0);
+ }
-+ #endif /* CONFIG_LAYER2_ROAMING */
+
+ rtw_free_uc_swdec_pending_queue(adapter);
+
+ rtw_free_assoc_resources(adapter, 1);
+ rtw_indicate_disconnect(adapter);
+
-+ _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ // remove the network entry in scanned_queue
-+ pwlan = rtw_find_network(&pmlmepriv->scanned_queue, tgt_network->network.MacAddress);
-+ if (pwlan) {
++ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
++ /* remove the network entry in scanned_queue */
++ pwlan = rtw_find_network(&pmlmepriv->scanned_queue, tgt_network->network.MacAddress);
++ if (pwlan) {
+ pwlan->fixed = false;
+ rtw_free_network_nolock(adapter, pwlan);
+ }
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
++ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
+
+#ifdef CONFIG_INTEL_WIDI
+ if (!rtw_to_roam(adapter))
+ process_intel_widi_disconnect(adapter, 1);
-+#endif // CONFIG_INTEL_WIDI
++#endif /* CONFIG_INTEL_WIDI */
+
+ _rtw_roaming(adapter, roam_target);
+ }
+
-+ if ( check_fwstate(pmlmepriv,WIFI_ADHOC_MASTER_STATE) ||
-+ check_fwstate(pmlmepriv,WIFI_ADHOC_STATE))
++ if (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) ||
++ check_fwstate(pmlmepriv, WIFI_ADHOC_STATE))
+ {
-+
-+ _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
++
+ rtw_free_stainfo(adapter, psta);
-+ _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+
-+ if(adapter->stapriv.asoc_sta_count== 1) //a sta + bc/mc_stainfo (not Ibss_stainfo)
-+ {
-+ //rtw_indicate_disconnect(adapter);//removed@20091105
-+ _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ //free old ibss network
-+ //pwlan = rtw_find_network(&pmlmepriv->scanned_queue, pstadel->macaddr);
++
++ if (adapter->stapriv.asoc_sta_count == 1) /* a sta + bc/mc_stainfo (not Ibss_stainfo) */
++ {
++ /* rtw_indicate_disconnect(adapter);removed@20091105 */
++ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
++ /* free old ibss network */
++ /* pwlan = rtw_find_network(&pmlmepriv->scanned_queue, pstadel->macaddr); */
+ pwlan = rtw_find_network(&pmlmepriv->scanned_queue, tgt_network->network.MacAddress);
-+ if(pwlan)
++ if (pwlan)
+ {
+ pwlan->fixed = false;
-+ rtw_free_network_nolock(adapter, pwlan);
++ rtw_free_network_nolock(adapter, pwlan);
+ }
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+ //re-create ibss
-+ pdev_network = &(adapter->registrypriv.dev_network);
++ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
++ /* re-create ibss */
++ pdev_network = &(adapter->registrypriv.dev_network);
+ pibss = adapter->registrypriv.dev_network.MacAddress;
+
-+ memcpy(pdev_network, &tgt_network->network, get_WLAN_BSSID_EX_sz(&tgt_network->network));
-+
-+ memset(&pdev_network->Ssid, 0, sizeof(NDIS_802_11_SSID));
-+ memcpy(&pdev_network->Ssid, &pmlmepriv->assoc_ssid, sizeof(NDIS_802_11_SSID));
-+
-+ rtw_update_registrypriv_dev_network(adapter);
++ memcpy(pdev_network, &tgt_network->network, get_wlan_bssid_ex_sz(&tgt_network->network));
++
++ memset(&pdev_network->Ssid, 0, sizeof(struct ndis_802_11_ssid));
++ memcpy(&pdev_network->Ssid, &pmlmepriv->assoc_ssid, sizeof(struct ndis_802_11_ssid));
++
++ rtw_update_registrypriv_dev_network(adapter);
+
+ rtw_generate_random_ibss(pibss);
-+
-+ if(check_fwstate(pmlmepriv,WIFI_ADHOC_STATE))
++
++ if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE))
+ {
+ set_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE);
+ _clr_fwstate_(pmlmepriv, WIFI_ADHOC_STATE);
+ }
+
-+ if(rtw_createbss_cmd(adapter)!=_SUCCESS)
++ if (rtw_createbss_cmd(adapter)!= _SUCCESS)
+ {
+
-+ RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_err_,("***Error=>stadel_event_callback: rtw_createbss_cmd status FAIL*** \n "));
++ RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_, ("***Error =>stadel_event_callback: rtw_createbss_cmd status FAIL***\n "));
+
+ }
+
-+
-+ }
-+
-+ }
-+
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL2);
-+
-+_func_exit_;
+
++ }
++
++ }
++
++ spin_unlock_bh(&pmlmepriv->lock);
+}
+
-+
-+void rtw_cpwm_event_callback(PADAPTER padapter, u8 *pbuf)
++void rtw_cpwm_event_callback(struct adapter *padapter, u8 *pbuf)
+{
+ struct reportpwrstate_parm *preportpwrstate;
+
-+_func_enter_;
-+
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("+rtw_cpwm_event_callback !!!\n"));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("+rtw_cpwm_event_callback !!!\n"));
+ preportpwrstate = (struct reportpwrstate_parm*)pbuf;
+ preportpwrstate->state |= (u8)(adapter_to_pwrctl(padapter)->cpwm_tog + 0x80);
+ cpwm_int_hdl(padapter, preportpwrstate);
-+
-+_func_exit_;
-+
+}
+
+
-+void rtw_wmm_event_callback(PADAPTER padapter, u8 *pbuf)
++void rtw_wmm_event_callback(struct adapter *padapter, u8 *pbuf)
+{
-+_func_enter_;
-+
+ WMMOnAssocRsp(padapter);
-+
-+_func_exit_;
-+
+}
+
+/*
+* _rtw_join_timeout_handler - Timeout/faliure handler for CMD JoinBss
-+* @adapter: pointer to _adapter structure
++* @adapter: pointer to struct adapter structure
+*/
-+void _rtw_join_timeout_handler (_adapter *adapter)
++void _rtw_join_timeout_handler (struct adapter *adapter)
+{
-+ _irqL irqL;
+ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
+
-+_func_enter_;
++ DBG_871X("%s, fw_state =%x\n", __func__, get_fwstate(pmlmepriv));
+
-+
-+ DBG_871X("%s, fw_state=%x\n", __FUNCTION__, get_fwstate(pmlmepriv));
-+
-+ if(adapter->bDriverStopped ||adapter->bSurpriseRemoved)
++ if (adapter->bDriverStopped ||adapter->bSurpriseRemoved)
+ return;
+
-+
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
++ spin_lock_bh(&pmlmepriv->lock);
+
-+ #ifdef CONFIG_LAYER2_ROAMING
+ if (rtw_to_roam(adapter) > 0) { /* join timeout caused by roaming */
-+ while(1) {
++ while (1) {
+ rtw_dec_to_roam(adapter);
+ if (rtw_to_roam(adapter) != 0) { /* try another */
+ int do_join_r;
-+ DBG_871X("%s try another roaming\n", __FUNCTION__);
-+ if( _SUCCESS!=(do_join_r=rtw_do_join(adapter)) ) {
-+ DBG_871X("%s roaming do_join return %d\n", __FUNCTION__ ,do_join_r);
++ DBG_871X("%s try another roaming\n", __func__);
++ if (_SUCCESS!=(do_join_r =rtw_do_join(adapter))) {
++ DBG_871X("%s roaming do_join return %d\n", __func__ , do_join_r);
+ continue;
+ }
+ break;
+ } else {
+#ifdef CONFIG_INTEL_WIDI
-+ if(adapter->mlmepriv.widi_state == INTEL_WIDI_STATE_ROAMING)
++ if (adapter->mlmepriv.widi_state == INTEL_WIDI_STATE_ROAMING)
+ {
+ memset(pmlmepriv->sa_ext, 0x00, L2SDTA_SERVICE_VE_LEN);
+ intel_widi_wk_cmd(adapter, INTEL_WIDI_LISTEN_WK, NULL, 0);
+ DBG_871X("change to widi listen\n");
+ }
-+#endif // CONFIG_INTEL_WIDI
-+ DBG_871X("%s We've try roaming but fail\n", __FUNCTION__);
++#endif /* CONFIG_INTEL_WIDI */
++ DBG_871X("%s We've try roaming but fail\n", __func__);
+ rtw_indicate_disconnect(adapter);
+ break;
+ }
+ }
-+
-+ } else
-+ #endif
++
++ } else
+ {
+ rtw_indicate_disconnect(adapter);
-+ free_scanqueue(pmlmepriv);//???
++ free_scanqueue(pmlmepriv);/* */
+
-+ //indicate disconnect for the case that join_timeout and check_fwstate != FW_LINKED
++ /* indicate disconnect for the case that join_timeout and check_fwstate != FW_LINKED */
+ rtw_cfg80211_indicate_disconnect(adapter);
+
-+ }
-+
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
-+
-+_func_exit_;
++ }
+
++ spin_unlock_bh(&pmlmepriv->lock);
+}
+
+/*
+* rtw_scan_timeout_handler - Timeout/Faliure handler for CMD SiteSurvey
-+* @adapter: pointer to _adapter structure
++* @adapter: pointer to struct adapter structure
+*/
-+void rtw_scan_timeout_handler (_adapter *adapter)
-+{
-+ _irqL irqL;
++void rtw_scan_timeout_handler (struct adapter *adapter)
++{
+ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
-+
-+ DBG_871X(FUNC_ADPT_FMT" fw_state=%x\n", FUNC_ADPT_ARG(adapter), get_fwstate(pmlmepriv));
+
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
-+
++ DBG_871X(FUNC_ADPT_FMT" fw_state =%x\n", FUNC_ADPT_ARG(adapter), get_fwstate(pmlmepriv));
++
++ spin_lock_bh(&pmlmepriv->lock);
++
+ _clr_fwstate_(pmlmepriv, _FW_UNDER_SURVEY);
+
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
++ spin_unlock_bh(&pmlmepriv->lock);
+
+ rtw_indicate_scan_done(adapter, true);
+}
+
-+void rtw_mlme_reset_auto_scan_int(_adapter *adapter)
++void rtw_mlme_reset_auto_scan_int(struct adapter *adapter)
+{
+ struct mlme_priv *mlme = &adapter->mlmepriv;
-+ struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
-+ if(pmlmeinfo->VHT_enable) //disable auto scan when connect to 11AC AP
++ if (pmlmeinfo->VHT_enable) /* disable auto scan when connect to 11AC AP */
+ {
+ mlme->auto_scan_int_ms = 0;
+ }
-+ else if(adapter->registrypriv.wifi_spec && is_client_associated_to_ap(adapter) == true) {
++ else if (adapter->registrypriv.wifi_spec && is_client_associated_to_ap(adapter) == true) {
+ mlme->auto_scan_int_ms = 60*1000;
-+#ifdef CONFIG_LAYER2_ROAMING
-+ } else if(rtw_chk_roam_flags(adapter, RTW_ROAM_ACTIVE)) {
++ } else if (rtw_chk_roam_flags(adapter, RTW_ROAM_ACTIVE)) {
+ if (check_fwstate(mlme, WIFI_STATION_STATE) && check_fwstate(mlme, _FW_LINKED))
+ mlme->auto_scan_int_ms = mlme->roam_scan_int_ms;
-+#endif
+ } else {
+ mlme->auto_scan_int_ms = 0; /* disabled */
+ }
@@ -15079,7 +12241,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ return;
+}
+
-+static void rtw_auto_scan_handler(_adapter *padapter)
++static void rtw_auto_scan_handler(struct adapter *padapter)
+{
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+
@@ -15089,13 +12251,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ && jiffies_to_msecs(jiffies - pmlmepriv->scan_start_time) > pmlmepriv->auto_scan_int_ms) {
+
+ if (!padapter->registrypriv.wifi_spec) {
-+ if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY|_FW_UNDER_LINKING) == true)
++ if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY|_FW_UNDER_LINKING) == true)
+ {
+ DBG_871X(FUNC_ADPT_FMT" _FW_UNDER_SURVEY|_FW_UNDER_LINKING\n", FUNC_ADPT_ARG(padapter));
+ goto exit;
+ }
-+
-+ if(pmlmepriv->LinkDetectInfo.bBusyTraffic == true)
++
++ if (pmlmepriv->LinkDetectInfo.bBusyTraffic == true)
+ {
+ DBG_871X(FUNC_ADPT_FMT" exit BusyTraffic\n", FUNC_ADPT_ARG(padapter));
+ goto exit;
@@ -15111,65 +12273,65 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ return;
+}
+
-+void rtw_dynamic_check_timer_handlder(_adapter *adapter)
++void rtw_dynamic_check_timer_handlder(struct adapter *adapter)
+{
-+ if(!adapter)
-+ return;
-+
-+ if(adapter->hw_init_completed == false)
++ if (!adapter)
+ return;
+
-+ if ((adapter->bDriverStopped == true)||(adapter->bSurpriseRemoved== true))
++ if (adapter->hw_init_completed == false)
+ return;
+
-+ if(adapter->net_closed == true)
++ if ((adapter->bDriverStopped == true)||(adapter->bSurpriseRemoved == true))
++ return;
++
++ if (adapter->net_closed == true)
+ {
+ return;
-+ }
++ }
+
-+ if(is_primary_adapter(adapter))
-+ DBG_871X("IsBtDisabled=%d, IsBtControlLps=%d\n", rtw_btcoex_IsBtDisabled(adapter), rtw_btcoex_IsBtControlLps(adapter));
++ if (is_primary_adapter(adapter))
++ DBG_871X("IsBtDisabled =%d, IsBtControlLps =%d\n", rtw_btcoex_IsBtDisabled(adapter), rtw_btcoex_IsBtControlLps(adapter));
+
-+ if ((adapter_to_pwrctl(adapter)->bFwCurrentInPSMode ==true )
++ if ((adapter_to_pwrctl(adapter)->bFwCurrentInPSMode ==true)
+ && (rtw_btcoex_IsBtControlLps(adapter) == false)
-+ )
++ )
+ {
-+ u8 bEnterPS;
-+
-+ linked_status_chk(adapter);
-+
++ u8 bEnterPS;
++
++ linked_status_chk(adapter);
++
+ bEnterPS = traffic_status_watchdog(adapter, 1);
-+ if(bEnterPS)
++ if (bEnterPS)
+ {
-+ //rtw_lps_ctrl_wk_cmd(adapter, LPS_CTRL_ENTER, 1);
++ /* rtw_lps_ctrl_wk_cmd(adapter, LPS_CTRL_ENTER, 1); */
+ rtw_hal_dm_watchdog_in_lps(adapter);
+ }
+ else
+ {
-+ //call rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_LEAVE, 1) in traffic_status_watchdog()
++ /* call rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_LEAVE, 1) in traffic_status_watchdog() */
+ }
-+
++
+ }
+ else
+ {
-+ if(is_primary_adapter(adapter))
-+ {
-+ rtw_dynamic_chk_wk_cmd(adapter);
-+ }
-+ }
++ if (is_primary_adapter(adapter))
++ {
++ rtw_dynamic_chk_wk_cmd(adapter);
++ }
++ }
+
+ /* auto site survey */
+ rtw_auto_scan_handler(adapter);
+}
+
+
-+inline bool rtw_is_scan_deny(_adapter *adapter)
++inline bool rtw_is_scan_deny(struct adapter *adapter)
+{
+ struct mlme_priv *mlmepriv = &adapter->mlmepriv;
+ return (atomic_read(&mlmepriv->set_scan_deny) != 0) ? true : false;
+}
+
-+inline void rtw_clear_scan_deny(_adapter *adapter)
++inline void rtw_clear_scan_deny(struct adapter *adapter)
+{
+ struct mlme_priv *mlmepriv = &adapter->mlmepriv;
+ atomic_set(&mlmepriv->set_scan_deny, 0);
@@ -15177,21 +12339,20 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ DBG_871X(FUNC_ADPT_FMT"\n", FUNC_ADPT_ARG(adapter));
+}
+
-+void rtw_set_scan_deny_timer_hdl(_adapter *adapter)
++void rtw_set_scan_deny_timer_hdl(struct adapter *adapter)
+{
+ rtw_clear_scan_deny(adapter);
+}
+
-+void rtw_set_scan_deny(_adapter *adapter, u32 ms)
++void rtw_set_scan_deny(struct adapter *adapter, u32 ms)
+{
+ struct mlme_priv *mlmepriv = &adapter->mlmepriv;
+
+ DBG_871X(FUNC_ADPT_FMT"\n", FUNC_ADPT_ARG(adapter));
+ atomic_set(&mlmepriv->set_scan_deny, 1);
-+ _set_timer(&mlmepriv->set_scan_deny_timer, ms);
++ _set_timer(&mlmepriv->set_scan_deny_timer, ms);
+}
+
-+#ifdef CONFIG_LAYER2_ROAMING
+/*
+* Select a new roaming candidate from the original @param candidate and @param competitor
+* @return true: candidate is updated
@@ -15201,12 +12362,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ , struct wlan_network **candidate, struct wlan_network *competitor)
+{
+ int updated = false;
-+ _adapter *adapter = container_of(mlme, _adapter, mlmepriv);
++ struct adapter *adapter = container_of(mlme, struct adapter, mlmepriv);
+
-+ if(is_same_ess(&competitor->network, &mlme->cur_network.network) == false)
++ if (is_same_ess(&competitor->network, &mlme->cur_network.network) == false)
+ goto exit;
+
-+ if(rtw_is_desired_network(adapter, competitor) == false)
++ if (rtw_is_desired_network(adapter, competitor) == false)
+ goto exit;
+
+ DBG_871X("roam candidate:%s %s("MAC_FMT", ch%3u) rssi:%d, age:%5d\n",
@@ -15220,18 +12381,18 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+
+ /* got specific addr to roam */
+ if (!is_zero_mac_addr(mlme->roam_tgt_addr)) {
-+ if(!memcmp(mlme->roam_tgt_addr, competitor->network.MacAddress, ETH_ALEN))
++ if (!memcmp(mlme->roam_tgt_addr, competitor->network.MacAddress, ETH_ALEN))
+ goto update;
+ else
+ goto exit;
+ }
-+ if(jiffies_to_msecs(jiffies - competitor->last_scanned) >= mlme->roam_scanr_exp_ms)
++ if (jiffies_to_msecs(jiffies - competitor->last_scanned) >= mlme->roam_scanr_exp_ms)
+ goto exit;
+
+ if (competitor->network.Rssi - mlme->cur_network_scanned->network.Rssi < mlme->roam_rssi_diff_th)
+ goto exit;
+
-+ if(*candidate != NULL && (*candidate)->network.Rssi>=competitor->network.Rssi)
++ if (*candidate != NULL && (*candidate)->network.Rssi>=competitor->network.Rssi)
+ goto exit;
+
+update:
@@ -15244,36 +12405,33 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+
+int rtw_select_roaming_candidate(struct mlme_priv *mlme)
+{
-+ _irqL irqL;
+ int ret = _FAIL;
-+ _list *phead;
-+ _adapter *adapter;
-+ _queue *queue = &(mlme->scanned_queue);
++ struct list_head *phead;
++ struct adapter *adapter;
++ struct __queue *queue = &(mlme->scanned_queue);
+ struct wlan_network *pnetwork = NULL;
+ struct wlan_network *candidate = NULL;
+
-+_func_enter_;
-+
+ if (mlme->cur_network_scanned == NULL) {
+ rtw_warn_on(1);
-+ goto exit;
++ return ret;
+ }
+
-+ _enter_critical_bh(&(mlme->scanned_queue.lock), &irqL);
-+ phead = get_list_head(queue);
-+ adapter = (_adapter *)mlme->nic_hdl;
++ spin_lock_bh(&(mlme->scanned_queue.lock));
++ phead = get_list_head(queue);
++ adapter = (struct adapter *)mlme->nic_hdl;
+
+ mlme->pscanned = get_next(phead);
+
-+ while (!rtw_end_of_queue_search(phead, mlme->pscanned)) {
++ while (phead != mlme->pscanned) {
+
+ pnetwork = LIST_CONTAINOR(mlme->pscanned, struct wlan_network, list);
-+ if(pnetwork==NULL){
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("%s return _FAIL:(pnetwork==NULL)\n", __FUNCTION__));
++ if (pnetwork == NULL) {
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("%s return _FAIL:(pnetwork == NULL)\n", __func__));
+ ret = _FAIL;
+ goto exit;
+ }
-+
++
+ mlme->pscanned = get_next(mlme->pscanned);
+
+ DBG_871X("%s("MAC_FMT", ch%u) rssi:%d\n"
@@ -15283,31 +12441,30 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ , (int)pnetwork->network.Rssi);
+
+ rtw_check_roaming_candidate(mlme, &candidate, pnetwork);
-+
-+ }
+
-+ if(candidate == NULL) {
-+ DBG_871X("%s: return _FAIL(candidate == NULL)\n", __FUNCTION__);
++ }
++
++ if (candidate == NULL) {
++ DBG_871X("%s: return _FAIL(candidate == NULL)\n", __func__);
+ ret = _FAIL;
+ goto exit;
+ } else {
-+ DBG_871X("%s: candidate: %s("MAC_FMT", ch:%u)\n", __FUNCTION__,
++ DBG_871X("%s: candidate: %s("MAC_FMT", ch:%u)\n", __func__,
+ candidate->network.Ssid.Ssid, MAC_ARG(candidate->network.MacAddress),
+ candidate->network.Configuration.DSConfig);
+
+ mlme->roam_network = candidate;
+
+ if (!memcmp(candidate->network.MacAddress, mlme->roam_tgt_addr, ETH_ALEN))
-+ memset(mlme->roam_tgt_addr,0, ETH_ALEN);
++ memset(mlme->roam_tgt_addr, 0, ETH_ALEN);
+ }
+
+ ret = _SUCCESS;
+exit:
-+ _exit_critical_bh(&(mlme->scanned_queue.lock), &irqL);
++ spin_unlock_bh(&(mlme->scanned_queue.lock));
+
+ return ret;
+}
-+#endif /* CONFIG_LAYER2_ROAMING */
+
+/*
+* Select a new join candidate from the original @param candidate and @param competitor
@@ -15318,52 +12475,46 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ , struct wlan_network **candidate, struct wlan_network *competitor)
+{
+ int updated = false;
-+ _adapter *adapter = container_of(mlme, _adapter, mlmepriv);
++ struct adapter *adapter = container_of(mlme, struct adapter, mlmepriv);
+
+
-+ //check bssid, if needed
-+ if(mlme->assoc_by_bssid==true) {
-+ if(memcmp(competitor->network.MacAddress, mlme->assoc_bssid, ETH_ALEN))
++ /* check bssid, if needed */
++ if (mlme->assoc_by_bssid ==true) {
++ if (memcmp(competitor->network.MacAddress, mlme->assoc_bssid, ETH_ALEN))
+ goto exit;
+ }
+
-+ //check ssid, if needed
-+ if(mlme->assoc_ssid.Ssid[0] && mlme->assoc_ssid.SsidLength) {
-+ if( competitor->network.Ssid.SsidLength != mlme->assoc_ssid.SsidLength
++ /* check ssid, if needed */
++ if (mlme->assoc_ssid.Ssid[0] && mlme->assoc_ssid.SsidLength) {
++ if (competitor->network.Ssid.SsidLength != mlme->assoc_ssid.SsidLength
+ || memcmp(competitor->network.Ssid.Ssid, mlme->assoc_ssid.Ssid, mlme->assoc_ssid.SsidLength)
+ )
+ goto exit;
+ }
+
-+ if(rtw_is_desired_network(adapter, competitor) == false)
++ if (rtw_is_desired_network(adapter, competitor) == false)
+ goto exit;
+
-+#ifdef CONFIG_LAYER2_ROAMING
-+ if(rtw_to_roam(adapter) > 0) {
-+ if(jiffies_to_msecs(jiffies - competitor->last_scanned) >= mlme->roam_scanr_exp_ms
++ if (rtw_to_roam(adapter) > 0) {
++ if (jiffies_to_msecs(jiffies - competitor->last_scanned) >= mlme->roam_scanr_exp_ms
+ || is_same_ess(&competitor->network, &mlme->cur_network.network) == false
+ )
+ goto exit;
+ }
-+#endif
-+
-+ if(*candidate == NULL ||(*candidate)->network.Rssinetwork.Rssi )
++
++ if (*candidate == NULL ||(*candidate)->network.Rssinetwork.Rssi)
+ {
+ *candidate = competitor;
+ updated = true;
+ }
+
-+ if(updated){
++ if (updated) {
+ DBG_871X("[by_bssid:%u][assoc_ssid:%s]"
-+ #ifdef CONFIG_LAYER2_ROAMING
+ "[to_roam:%u] "
-+ #endif
+ "new candidate: %s("MAC_FMT", ch%u) rssi:%d\n",
+ mlme->assoc_by_bssid,
+ mlme->assoc_ssid.Ssid,
-+ #ifdef CONFIG_LAYER2_ROAMING
+ rtw_to_roam(adapter),
-+ #endif
+ (*candidate)->network.Ssid.Ssid,
+ MAC_ARG((*candidate)->network.MacAddress),
+ (*candidate)->network.Configuration.DSConfig,
@@ -15386,42 +12537,37 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+
+*/
+
-+int rtw_select_and_join_from_scanned_queue(struct mlme_priv *pmlmepriv )
++int rtw_select_and_join_from_scanned_queue(struct mlme_priv *pmlmepriv)
+{
-+ _irqL irqL;
+ int ret;
-+ _list *phead;
-+ _adapter *adapter;
-+ _queue *queue = &(pmlmepriv->scanned_queue);
++ struct list_head *phead;
++ struct adapter *adapter;
++ struct __queue *queue = &(pmlmepriv->scanned_queue);
+ struct wlan_network *pnetwork = NULL;
+ struct wlan_network *candidate = NULL;
+
-+_func_enter_;
++ adapter = (struct adapter *)pmlmepriv->nic_hdl;
+
-+ adapter = (_adapter *)pmlmepriv->nic_hdl;
++ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
+
-+ _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+
-+ #ifdef CONFIG_LAYER2_ROAMING
+ if (pmlmepriv->roam_network) {
+ candidate = pmlmepriv->roam_network;
+ pmlmepriv->roam_network = NULL;
+ goto candidate_exist;
+ }
-+ #endif
+
+ phead = get_list_head(queue);
+ pmlmepriv->pscanned = get_next(phead);
+
-+ while (!rtw_end_of_queue_search(phead, pmlmepriv->pscanned)) {
++ while (phead != pmlmepriv->pscanned) {
+
+ pnetwork = LIST_CONTAINOR(pmlmepriv->pscanned, struct wlan_network, list);
-+ if(pnetwork==NULL){
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("%s return _FAIL:(pnetwork==NULL)\n", __FUNCTION__));
++ if (pnetwork == NULL) {
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("%s return _FAIL:(pnetwork == NULL)\n", __func__));
+ ret = _FAIL;
+ goto exit;
+ }
-+
++
+ pmlmepriv->pscanned = get_next(pmlmepriv->pscanned);
+
+ DBG_871X("%s("MAC_FMT", ch%u) rssi:%d\n"
@@ -15431,340 +12577,312 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ , (int)pnetwork->network.Rssi);
+
+ rtw_check_join_candidate(pmlmepriv, &candidate, pnetwork);
-+
-+ }
+
-+ if(candidate == NULL) {
-+ DBG_871X("%s: return _FAIL(candidate == NULL)\n", __FUNCTION__);
++ }
++
++ if (candidate == NULL) {
++ DBG_871X("%s: return _FAIL(candidate == NULL)\n", __func__);
+#ifdef CONFIG_WOWLAN
+ _clr_fwstate_(pmlmepriv, _FW_LINKED|_FW_UNDER_LINKING);
+#endif
+ ret = _FAIL;
+ goto exit;
+ } else {
-+ DBG_871X("%s: candidate: %s("MAC_FMT", ch:%u)\n", __FUNCTION__,
++ DBG_871X("%s: candidate: %s("MAC_FMT", ch:%u)\n", __func__,
+ candidate->network.Ssid.Ssid, MAC_ARG(candidate->network.MacAddress),
+ candidate->network.Configuration.DSConfig);
+ goto candidate_exist;
+ }
-+
++
+candidate_exist:
+
-+ // check for situation of _FW_LINKED
++ /* check for situation of _FW_LINKED */
+ if (check_fwstate(pmlmepriv, _FW_LINKED) == true)
+ {
-+ DBG_871X("%s: _FW_LINKED while ask_for_joinbss!!!\n", __FUNCTION__);
++ DBG_871X("%s: _FW_LINKED while ask_for_joinbss!!!\n", __func__);
+
+ rtw_disassoc_cmd(adapter, 0, true);
+ rtw_indicate_disconnect(adapter);
+ rtw_free_assoc_resources(adapter, 0);
+ }
-+
++
+ set_fwstate(pmlmepriv, _FW_UNDER_LINKING);
+ ret = rtw_joinbss_cmd(adapter, candidate);
-+
++
+exit:
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
-+
-+_func_exit_;
-+
++ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
+ return ret;
+}
+
-+sint rtw_set_auth(_adapter * adapter,struct security_priv *psecuritypriv)
++sint rtw_set_auth(struct adapter * adapter, struct security_priv *psecuritypriv)
+{
+ struct cmd_obj* pcmd;
-+ struct setauth_parm *psetauthparm;
-+ struct cmd_priv *pcmdpriv=&(adapter->cmdpriv);
-+ sint res=_SUCCESS;
-+
-+_func_enter_;
++ struct setauth_parm *psetauthparm;
++ struct cmd_priv *pcmdpriv =&(adapter->cmdpriv);
++ sint res = _SUCCESS;
+
+ pcmd = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(pcmd==NULL){
-+ res= _FAIL; //try again
++ if (pcmd == NULL) {
++ res = _FAIL; /* try again */
+ goto exit;
+ }
-+
-+ psetauthparm=(struct setauth_parm*)rtw_zmalloc(sizeof(struct setauth_parm));
-+ if(psetauthparm==NULL){
-+ rtw_mfree((unsigned char *)pcmd, sizeof(struct cmd_obj));
-+ res= _FAIL;
++
++ psetauthparm =(struct setauth_parm*)rtw_zmalloc(sizeof(struct setauth_parm));
++ if (psetauthparm == NULL) {
++ kfree((unsigned char *)pcmd);
++ res = _FAIL;
+ goto exit;
+ }
+
+ memset(psetauthparm, 0, sizeof(struct setauth_parm));
-+ psetauthparm->mode=(unsigned char)psecuritypriv->dot11AuthAlgrthm;
-+
++ psetauthparm->mode =(unsigned char)psecuritypriv->dot11AuthAlgrthm;
++
+ pcmd->cmdcode = _SetAuth_CMD_;
-+ pcmd->parmbuf = (unsigned char *)psetauthparm;
-+ pcmd->cmdsz = (sizeof(struct setauth_parm));
++ pcmd->parmbuf = (unsigned char *)psetauthparm;
++ pcmd->cmdsz = (sizeof(struct setauth_parm));
+ pcmd->rsp = NULL;
+ pcmd->rspsz = 0;
+
+
-+ _rtw_init_listhead(&pcmd->list);
++ INIT_LIST_HEAD(&pcmd->list);
+
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("after enqueue set_auth_cmd, auth_mode=%x\n", psecuritypriv->dot11AuthAlgrthm));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("after enqueue set_auth_cmd, auth_mode =%x\n", psecuritypriv->dot11AuthAlgrthm));
+
+ res = rtw_enqueue_cmd(pcmdpriv, pcmd);
+
+exit:
-+
-+_func_exit_;
-+
+ return res;
-+
+}
+
-+
-+sint rtw_set_key(_adapter * adapter,struct security_priv *psecuritypriv,sint keyid, u8 set_tx, bool enqueue)
++sint rtw_set_key(struct adapter * adapter, struct security_priv *psecuritypriv, sint keyid, u8 set_tx, bool enqueue)
+{
-+ u8 keylen;
++ u8 keylen;
+ struct cmd_obj *pcmd;
+ struct setkey_parm *psetkeyparm;
-+ struct cmd_priv *pcmdpriv = &(adapter->cmdpriv);
-+ sint res=_SUCCESS;
-+
-+_func_enter_;
++ struct cmd_priv *pcmdpriv = &(adapter->cmdpriv);
++ sint res = _SUCCESS;
+
-+ psetkeyparm=(struct setkey_parm*)rtw_zmalloc(sizeof(struct setkey_parm));
-+ if(psetkeyparm==NULL){
-+ res= _FAIL;
++ psetkeyparm =(struct setkey_parm*)rtw_zmalloc(sizeof(struct setkey_parm));
++ if (psetkeyparm == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
+ memset(psetkeyparm, 0, sizeof(struct setkey_parm));
+
-+ if(psecuritypriv->dot11AuthAlgrthm ==dot11AuthAlgrthm_8021X){
-+ psetkeyparm->algorithm=(unsigned char)psecuritypriv->dot118021XGrpPrivacy;
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("\n rtw_set_key: psetkeyparm->algorithm=(unsigned char)psecuritypriv->dot118021XGrpPrivacy=%d \n", psetkeyparm->algorithm));
-+ }
-+ else{
-+ psetkeyparm->algorithm=(u8)psecuritypriv->dot11PrivacyAlgrthm;
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("\n rtw_set_key: psetkeyparm->algorithm=(u8)psecuritypriv->dot11PrivacyAlgrthm=%d \n", psetkeyparm->algorithm));
++ if (psecuritypriv->dot11AuthAlgrthm ==dot11AuthAlgrthm_8021X) {
++ psetkeyparm->algorithm =(unsigned char)psecuritypriv->dot118021XGrpPrivacy;
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("\n rtw_set_key: psetkeyparm->algorithm =(unsigned char)psecuritypriv->dot118021XGrpPrivacy =%d\n", psetkeyparm->algorithm));
++ }
++ else {
++ psetkeyparm->algorithm =(u8)psecuritypriv->dot11PrivacyAlgrthm;
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("\n rtw_set_key: psetkeyparm->algorithm =(u8)psecuritypriv->dot11PrivacyAlgrthm =%d\n", psetkeyparm->algorithm));
+
+ }
-+ psetkeyparm->keyid = (u8)keyid;//0~3
++ psetkeyparm->keyid = (u8)keyid;/* 0~3 */
+ psetkeyparm->set_tx = set_tx;
+ if (is_wep_enc(psetkeyparm->algorithm))
+ adapter->securitypriv.key_mask |= BIT(psetkeyparm->keyid);
+
-+ DBG_871X("==> rtw_set_key algorithm(%x),keyid(%x),key_mask(%x)\n",psetkeyparm->algorithm,psetkeyparm->keyid, adapter->securitypriv.key_mask);
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("\n rtw_set_key: psetkeyparm->algorithm=%d psetkeyparm->keyid=(u8)keyid=%d \n",psetkeyparm->algorithm, keyid));
++ DBG_871X("==> rtw_set_key algorithm(%x), keyid(%x), key_mask(%x)\n", psetkeyparm->algorithm, psetkeyparm->keyid, adapter->securitypriv.key_mask);
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("\n rtw_set_key: psetkeyparm->algorithm =%d psetkeyparm->keyid =(u8)keyid =%d\n", psetkeyparm->algorithm, keyid));
++
++ switch (psetkeyparm->algorithm) {
+
-+ switch(psetkeyparm->algorithm){
-+
+ case _WEP40_:
-+ keylen=5;
++ keylen =5;
+ memcpy(&(psetkeyparm->key[0]), &(psecuritypriv->dot11DefKey[keyid].skey[0]), keylen);
+ break;
+ case _WEP104_:
-+ keylen=13;
++ keylen = 13;
+ memcpy(&(psetkeyparm->key[0]), &(psecuritypriv->dot11DefKey[keyid].skey[0]), keylen);
+ break;
+ case _TKIP_:
-+ keylen=16;
++ keylen = 16;
+ memcpy(&psetkeyparm->key, &psecuritypriv->dot118021XGrpKey[keyid], keylen);
-+ psetkeyparm->grpkey=1;
++ psetkeyparm->grpkey = 1;
+ break;
+ case _AES_:
-+ keylen=16;
++ keylen = 16;
+ memcpy(&psetkeyparm->key, &psecuritypriv->dot118021XGrpKey[keyid], keylen);
-+ psetkeyparm->grpkey=1;
++ psetkeyparm->grpkey = 1;
+ break;
+ default:
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("\n rtw_set_key:psecuritypriv->dot11PrivacyAlgrthm = %x (must be 1 or 2 or 4 or 5)\n",psecuritypriv->dot11PrivacyAlgrthm));
-+ res= _FAIL;
-+ rtw_mfree((unsigned char *)psetkeyparm, sizeof(struct setkey_parm));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("\n rtw_set_key:psecuritypriv->dot11PrivacyAlgrthm = %x (must be 1 or 2 or 4 or 5)\n", psecuritypriv->dot11PrivacyAlgrthm));
++ res = _FAIL;
++ kfree((unsigned char *)psetkeyparm);
+ goto exit;
+ }
-+
-+
-+ if(enqueue){
++
++
++ if (enqueue) {
+ pcmd = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj));
-+ if(pcmd==NULL){
-+ rtw_mfree((unsigned char *)psetkeyparm, sizeof(struct setkey_parm));
-+ res= _FAIL; //try again
++ if (pcmd == NULL) {
++ kfree((unsigned char *)psetkeyparm);
++ res = _FAIL; /* try again */
+ goto exit;
+ }
-+
++
+ pcmd->cmdcode = _SetKey_CMD_;
-+ pcmd->parmbuf = (u8 *)psetkeyparm;
-+ pcmd->cmdsz = (sizeof(struct setkey_parm));
++ pcmd->parmbuf = (u8 *)psetkeyparm;
++ pcmd->cmdsz = (sizeof(struct setkey_parm));
+ pcmd->rsp = NULL;
+ pcmd->rspsz = 0;
+
-+ _rtw_init_listhead(&pcmd->list);
++ INIT_LIST_HEAD(&pcmd->list);
+
-+ //sema_init(&(pcmd->cmd_sem), 0);
++ /* sema_init(&(pcmd->cmd_sem), 0); */
+
+ res = rtw_enqueue_cmd(pcmdpriv, pcmd);
+ }
-+ else{
++ else {
+ setkey_hdl(adapter, (u8 *)psetkeyparm);
-+ rtw_mfree((u8 *) psetkeyparm, sizeof(struct setkey_parm));
++ kfree((u8 *) psetkeyparm);
+ }
+exit:
-+_func_exit_;
+ return res;
-+
+}
+
-+
-+//adjust IEs for rtw_joinbss_cmd in WMM
-+int rtw_restruct_wmm_ie(_adapter *adapter, u8 *in_ie, u8 *out_ie, uint in_len, uint initial_out_len)
++/* adjust IEs for rtw_joinbss_cmd in WMM */
++int rtw_restruct_wmm_ie(struct adapter *adapter, u8 *in_ie, u8 *out_ie, uint in_len, uint initial_out_len)
+{
-+ unsigned int ielength=0;
++ unsigned int ielength = 0;
+ unsigned int i, j;
+
-+ i = 12; //after the fixed IE
-+ while(i=0 :if there is pre-auth key, and return the entry id
-+//
-+//
++/* */
++/* Ported from 8185: IsInPreAuthKeyList(). (Renamed from SecIsInPreAuthKeyList(), 2006-10-13.) */
++/* Added by Annie, 2006-05-07. */
++/* */
++/* Search by BSSID, */
++/* Return Value: */
++/* -1 :if there is no pre-auth key in the table */
++/* >= 0 :if there is pre-auth key, and return the entry id */
++/* */
++/* */
+
-+static int SecIsInPMKIDList(_adapter *Adapter, u8 *bssid)
++static int SecIsInPMKIDList(struct adapter *Adapter, u8 *bssid)
+{
-+ struct security_priv *psecuritypriv=&Adapter->securitypriv;
-+ int i=0;
++ struct security_priv *psecuritypriv =&Adapter->securitypriv;
++ int i = 0;
+
+ do
+ {
-+ if( ( psecuritypriv->PMKIDList[i].bUsed ) &&
-+ ( !memcmp( psecuritypriv->PMKIDList[i].Bssid, bssid, ETH_ALEN ) ) )
++ if ((psecuritypriv->PMKIDList[i].bUsed) &&
++ (!memcmp(psecuritypriv->PMKIDList[i].Bssid, bssid, ETH_ALEN)))
+ {
+ break;
+ }
+ else
-+ {
++ {
+ i++;
-+ //continue;
++ /* continue; */
+ }
-+
-+ }while(isecuritypriv;
++ struct security_priv *psecuritypriv =&Adapter->securitypriv;
+
-+ if(ie[13]<=20){
-+ // The RSN IE didn't include the PMK ID, append the PMK information
-+ ie[ie_len]=1;
++ if (ie[13]<=20) {
++ /* The RSN IE didn't include the PMK ID, append the PMK information */
++ ie[ie_len]= 1;
+ ie_len++;
-+ ie[ie_len]=0; //PMKID count = 0x0100
++ ie[ie_len]= 0; /* PMKID count = 0x0100 */
+ ie_len++;
-+ memcpy( &ie[ie_len], &psecuritypriv->PMKIDList[iEntry].PMKID, 16);
-+
-+ ie_len+=16;
-+ ie[13]+=18;//PMKID length = 2+16
++ memcpy(&ie[ie_len], &psecuritypriv->PMKIDList[iEntry].PMKID, 16);
++
++ ie_len+= 16;
++ ie[13]+= 18;/* PMKID length = 2+16 */
+
+ }
+ return (ie_len);
+}
+
-+sint rtw_restruct_sec_ie(_adapter *adapter,u8 *in_ie, u8 *out_ie, uint in_len)
++sint rtw_restruct_sec_ie(struct adapter *adapter, u8 *in_ie, u8 *out_ie, uint in_len)
+{
-+ u8 authmode=0x0;
-+ uint ielength;
++ u8 authmode = 0x0;
++ uint ielength;
+ int iEntry;
+
+ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
-+ struct security_priv *psecuritypriv=&adapter->securitypriv;
-+ uint ndisauthmode=psecuritypriv->ndisauthtype;
-+
-+_func_enter_;
++ struct security_priv *psecuritypriv =&adapter->securitypriv;
++ uint ndisauthmode =psecuritypriv->ndisauthtype;
+
+ RT_TRACE(_module_rtl871x_mlme_c_, _drv_notice_,
-+ ("+rtw_restruct_sec_ie: ndisauthmode=%d ndissecuritytype=%d\n",
++ ("+rtw_restruct_sec_ie: ndisauthmode =%d ndissecuritytype =%d\n",
+ ndisauthmode, ndissecuritytype));
-+
-+ //copy fixed ie only
-+ memcpy(out_ie, in_ie,12);
-+ ielength=12;
-+ if((ndisauthmode==Ndis802_11AuthModeWPA)||(ndisauthmode==Ndis802_11AuthModeWPAPSK))
-+ authmode=_WPA_IE_ID_;
-+ if((ndisauthmode==Ndis802_11AuthModeWPA2)||(ndisauthmode==Ndis802_11AuthModeWPA2PSK))
-+ authmode=_WPA2_IE_ID_;
+
-+ if(check_fwstate(pmlmepriv, WIFI_UNDER_WPS))
++ /* copy fixed ie only */
++ memcpy(out_ie, in_ie, 12);
++ ielength = 12;
++ if ((ndisauthmode ==Ndis802_11AuthModeWPA)||(ndisauthmode ==Ndis802_11AuthModeWPAPSK))
++ authmode = _WPA_IE_ID_;
++ if ((ndisauthmode ==Ndis802_11AuthModeWPA2)||(ndisauthmode ==Ndis802_11AuthModeWPA2PSK))
++ authmode = _WPA2_IE_ID_;
++
++ if (check_fwstate(pmlmepriv, WIFI_UNDER_WPS))
+ {
+ memcpy(out_ie+ielength, psecuritypriv->wps_ie, psecuritypriv->wps_ie_len);
-+
++
+ ielength += psecuritypriv->wps_ie_len;
+ }
-+ else if((authmode==_WPA_IE_ID_)||(authmode==_WPA2_IE_ID_))
-+ {
-+ //copy RSN or SSN
++ else if ((authmode == _WPA_IE_ID_)||(authmode == _WPA2_IE_ID_))
++ {
++ /* copy RSN or SSN */
+ memcpy(&out_ie[ielength], &psecuritypriv->supplicant_ie[0], psecuritypriv->supplicant_ie[1]+2);
+ /* debug for CONFIG_IEEE80211W
+ {
+ int jj;
-+ printk("supplicant_ie_length=%d &&&&&&&&&&&&&&&&&&&\n", psecuritypriv->supplicant_ie[1]+2);
-+ for(jj=0; jj < psecuritypriv->supplicant_ie[1]+2; jj++)
++ printk("supplicant_ie_length =%d &&&&&&&&&&&&&&&&&&&\n", psecuritypriv->supplicant_ie[1]+2);
++ for (jj = 0; jj < psecuritypriv->supplicant_ie[1]+2; jj++)
+ printk(" %02x ", psecuritypriv->supplicant_ie[jj]);
+ printk("\n");
+ }*/
@@ -15773,68 +12891,57 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ }
+
+ iEntry = SecIsInPMKIDList(adapter, pmlmepriv->assoc_bssid);
-+ if(iEntry<0)
++ if (iEntry<0)
+ {
+ return ielength;
+ }
+ else
+ {
-+ if(authmode == _WPA2_IE_ID_)
++ if (authmode == _WPA2_IE_ID_)
+ {
-+ ielength=rtw_append_pmkid(adapter, iEntry, out_ie, ielength);
++ ielength =rtw_append_pmkid(adapter, iEntry, out_ie, ielength);
+ }
+ }
-+
-+_func_exit_;
-+
-+ return ielength;
++ return ielength;
+}
+
-+void rtw_init_registrypriv_dev_network( _adapter* adapter)
++void rtw_init_registrypriv_dev_network(struct adapter * adapter)
+{
+ struct registry_priv* pregistrypriv = &adapter->registrypriv;
+ struct eeprom_priv* peepriv = &adapter->eeprompriv;
-+ WLAN_BSSID_EX *pdev_network = &pregistrypriv->dev_network;
++ struct wlan_bssid_ex *pdev_network = &pregistrypriv->dev_network;
+ u8 *myhwaddr = myid(peepriv);
-+
-+_func_enter_;
+
+ memcpy(pdev_network->MacAddress, myhwaddr, ETH_ALEN);
+
-+ memcpy(&pdev_network->Ssid, &pregistrypriv->ssid, sizeof(NDIS_802_11_SSID));
-+
-+ pdev_network->Configuration.Length=sizeof(NDIS_802_11_CONFIGURATION);
-+ pdev_network->Configuration.BeaconPeriod = 100;
++ memcpy(&pdev_network->Ssid, &pregistrypriv->ssid, sizeof(struct ndis_802_11_ssid));
++
++ pdev_network->Configuration.Length =sizeof(struct ndis_802_11_conf);
++ pdev_network->Configuration.BeaconPeriod = 100;
+ pdev_network->Configuration.FHConfig.Length = 0;
+ pdev_network->Configuration.FHConfig.HopPattern = 0;
+ pdev_network->Configuration.FHConfig.HopSet = 0;
+ pdev_network->Configuration.FHConfig.DwellTime = 0;
-+
-+
-+_func_exit_;
-+
+}
+
-+void rtw_update_registrypriv_dev_network(_adapter* adapter)
++void rtw_update_registrypriv_dev_network(struct adapter * adapter)
+{
-+ int sz=0;
-+ struct registry_priv* pregistrypriv = &adapter->registrypriv;
-+ WLAN_BSSID_EX *pdev_network = &pregistrypriv->dev_network;
-+ struct security_priv* psecuritypriv = &adapter->securitypriv;
++ int sz = 0;
++ struct registry_priv* pregistrypriv = &adapter->registrypriv;
++ struct wlan_bssid_ex *pdev_network = &pregistrypriv->dev_network;
++ struct security_priv*psecuritypriv = &adapter->securitypriv;
+ struct wlan_network *cur_network = &adapter->mlmepriv.cur_network;
-+ //struct xmit_priv *pxmitpriv = &adapter->xmitpriv;
++ /* struct xmit_priv *pxmitpriv = &adapter->xmitpriv; */
+
-+_func_enter_;
-+
-+ pdev_network->Privacy = (psecuritypriv->dot11PrivacyAlgrthm > 0 ? 1 : 0) ; // adhoc no 802.1x
++ pdev_network->Privacy = (psecuritypriv->dot11PrivacyAlgrthm > 0 ? 1 : 0) ; /* adhoc no 802.1x */
+
+ pdev_network->Rssi = 0;
+
-+ switch(pregistrypriv->wireless_mode)
++ switch (pregistrypriv->wireless_mode)
+ {
+ case WIRELESS_11B:
+ pdev_network->NetworkTypeInUse = (Ndis802_11DS);
-+ break;
++ break;
+ case WIRELESS_11G:
+ case WIRELESS_11BG:
+ case WIRELESS_11_24N:
@@ -15847,74 +12954,66 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ pdev_network->NetworkTypeInUse = (Ndis802_11OFDM5);
+ break;
+ case WIRELESS_11ABGN:
-+ if(pregistrypriv->channel > 14)
++ if (pregistrypriv->channel > 14)
+ pdev_network->NetworkTypeInUse = (Ndis802_11OFDM5);
+ else
+ pdev_network->NetworkTypeInUse = (Ndis802_11OFDM24);
+ break;
+ default :
-+ // TODO
++ /* TODO */
+ break;
+ }
-+
-+ pdev_network->Configuration.DSConfig = (pregistrypriv->channel);
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("pregistrypriv->channel=%d, pdev_network->Configuration.DSConfig=0x%x\n", pregistrypriv->channel, pdev_network->Configuration.DSConfig));
+
-+ if(cur_network->network.InfrastructureMode == Ndis802_11IBSS)
++ pdev_network->Configuration.DSConfig = (pregistrypriv->channel);
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("pregistrypriv->channel =%d, pdev_network->Configuration.DSConfig = 0x%x\n", pregistrypriv->channel, pdev_network->Configuration.DSConfig));
++
++ if (cur_network->network.InfrastructureMode == Ndis802_11IBSS)
+ pdev_network->Configuration.ATIMWindow = (0);
+
+ pdev_network->InfrastructureMode = (cur_network->network.InfrastructureMode);
+
-+ // 1. Supported rates
-+ // 2. IE
++ /* 1. Supported rates */
++ /* 2. IE */
+
-+ //rtw_set_supported_rate(pdev_network->SupportedRates, pregistrypriv->wireless_mode) ; // will be called in rtw_generate_ie
++ /* rtw_set_supported_rate(pdev_network->SupportedRates, pregistrypriv->wireless_mode) ; will be called in rtw_generate_ie */
+ sz = rtw_generate_ie(pregistrypriv);
+
+ pdev_network->IELength = sz;
+
-+ pdev_network->Length = get_WLAN_BSSID_EX_sz((WLAN_BSSID_EX *)pdev_network);
-+
-+ //notes: translate IELength & Length after assign the Length to cmdsz in createbss_cmd();
-+ //pdev_network->IELength = cpu_to_le32(sz);
-+
-+_func_exit_;
++ pdev_network->Length = get_wlan_bssid_ex_sz((struct wlan_bssid_ex *)pdev_network);
+
++ /* notes: translate IELength & Length after assign the Length to cmdsz in createbss_cmd(); */
++ /* pdev_network->IELength = cpu_to_le32(sz); */
+}
+
-+void rtw_get_encrypt_decrypt_from_registrypriv(_adapter* adapter)
++void rtw_get_encrypt_decrypt_from_registrypriv(struct adapter * adapter)
+{
-+_func_enter_;
-+
-+
-+_func_exit_;
-+
+}
+
-+//the fucntion is at passive_level
-+void rtw_joinbss_reset(_adapter *padapter)
++/* the fucntion is at passive_level */
++void rtw_joinbss_reset(struct adapter *padapter)
+{
-+ u8 threshold;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ u8 threshold;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+
-+ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
++ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
+
-+ //todo: if you want to do something io/reg/hw setting before join_bss, please add code here
++ /* todo: if you want to do something io/reg/hw setting before join_bss, please add code here */
+
+ pmlmepriv->num_FortyMHzIntolerant = 0;
+
+ pmlmepriv->num_sta_no_ht = 0;
+
-+ phtpriv->ampdu_enable = false;//reset to disabled
++ phtpriv->ampdu_enable = false;/* reset to disabled */
+
-+ // TH=1 => means that invalidate usb rx aggregation
-+ // TH=0 => means that validate usb rx aggregation, use init value.
-+ if(phtpriv->ht_option)
++ /* TH = 1 => means that invalidate usb rx aggregation */
++ /* TH = 0 => means that validate usb rx aggregation, use init value. */
++ if (phtpriv->ht_option)
+ {
-+ if(padapter->registrypriv.wifi_spec==1)
++ if (padapter->registrypriv.wifi_spec == 1)
+ threshold = 1;
+ else
-+ threshold = 0;
++ threshold = 0;
+ rtw_hal_set_hwreg(padapter, HW_VAR_RXDMA_AGG_PG_TH, (u8 *)(&threshold));
+ }
+ else
@@ -15924,11 +13023,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ }
+}
+
-+void rtw_ht_use_default_setting(_adapter *padapter)
++void rtw_ht_use_default_setting(struct adapter *padapter)
+{
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
-+ struct registry_priv *pregistrypriv = &padapter->registrypriv;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
++ struct registry_priv *pregistrypriv = &padapter->registrypriv;
+ bool bHwLDPCSupport = false, bHwSTBCSupport = false;
+ bool bHwSupportBeamformer = false, bHwSupportBeamformee = false;
+
@@ -15940,66 +13039,66 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ phtpriv->sgi_40m = TEST_FLAG(pregistrypriv->short_gi, BIT1) ? true : false;
+ phtpriv->sgi_20m = TEST_FLAG(pregistrypriv->short_gi, BIT0) ? true : false;
+
-+ // LDPC support
++ /* LDPC support */
+ rtw_hal_get_def_var(padapter, HAL_DEF_RX_LDPC, (u8 *)&bHwLDPCSupport);
+ CLEAR_FLAGS(phtpriv->ldpc_cap);
-+ if(bHwLDPCSupport)
++ if (bHwLDPCSupport)
+ {
-+ if(TEST_FLAG(pregistrypriv->ldpc_cap, BIT4))
++ if (TEST_FLAG(pregistrypriv->ldpc_cap, BIT4))
+ SET_FLAG(phtpriv->ldpc_cap, LDPC_HT_ENABLE_RX);
+ }
+ rtw_hal_get_def_var(padapter, HAL_DEF_TX_LDPC, (u8 *)&bHwLDPCSupport);
-+ if(bHwLDPCSupport)
++ if (bHwLDPCSupport)
+ {
-+ if(TEST_FLAG(pregistrypriv->ldpc_cap, BIT5))
++ if (TEST_FLAG(pregistrypriv->ldpc_cap, BIT5))
+ SET_FLAG(phtpriv->ldpc_cap, LDPC_HT_ENABLE_TX);
+ }
+ if (phtpriv->ldpc_cap)
+ DBG_871X("[HT] Support LDPC = 0x%02X\n", phtpriv->ldpc_cap);
+
-+ // STBC
++ /* STBC */
+ rtw_hal_get_def_var(padapter, HAL_DEF_TX_STBC, (u8 *)&bHwSTBCSupport);
+ CLEAR_FLAGS(phtpriv->stbc_cap);
-+ if(bHwSTBCSupport)
++ if (bHwSTBCSupport)
+ {
-+ if(TEST_FLAG(pregistrypriv->stbc_cap, BIT5))
++ if (TEST_FLAG(pregistrypriv->stbc_cap, BIT5))
+ SET_FLAG(phtpriv->stbc_cap, STBC_HT_ENABLE_TX);
+ }
+ rtw_hal_get_def_var(padapter, HAL_DEF_RX_STBC, (u8 *)&bHwSTBCSupport);
-+ if(bHwSTBCSupport)
++ if (bHwSTBCSupport)
+ {
-+ if(TEST_FLAG(pregistrypriv->stbc_cap, BIT4))
++ if (TEST_FLAG(pregistrypriv->stbc_cap, BIT4))
+ SET_FLAG(phtpriv->stbc_cap, STBC_HT_ENABLE_RX);
+ }
+ if (phtpriv->stbc_cap)
+ DBG_871X("[HT] Support STBC = 0x%02X\n", phtpriv->stbc_cap);
+
-+ // Beamforming setting
++ /* Beamforming setting */
+ rtw_hal_get_def_var(padapter, HAL_DEF_EXPLICIT_BEAMFORMER, (u8 *)&bHwSupportBeamformer);
+ rtw_hal_get_def_var(padapter, HAL_DEF_EXPLICIT_BEAMFORMEE, (u8 *)&bHwSupportBeamformee);
+ CLEAR_FLAGS(phtpriv->beamform_cap);
-+ if(TEST_FLAG(pregistrypriv->beamform_cap, BIT4) && bHwSupportBeamformer)
++ if (TEST_FLAG(pregistrypriv->beamform_cap, BIT4) && bHwSupportBeamformer)
+ {
+ SET_FLAG(phtpriv->beamform_cap, BEAMFORMING_HT_BEAMFORMER_ENABLE);
+ DBG_871X("[HT] Support Beamformer\n");
+ }
-+ if(TEST_FLAG(pregistrypriv->beamform_cap, BIT5) && bHwSupportBeamformee)
++ if (TEST_FLAG(pregistrypriv->beamform_cap, BIT5) && bHwSupportBeamformee)
+ {
+ SET_FLAG(phtpriv->beamform_cap, BEAMFORMING_HT_BEAMFORMEE_ENABLE);
+ DBG_871X("[HT] Support Beamformee\n");
+ }
+}
+
-+void rtw_build_wmm_ie_ht(_adapter *padapter, u8 *out_ie, uint *pout_len)
++void rtw_build_wmm_ie_ht(struct adapter *padapter, u8 *out_ie, uint *pout_len)
+{
+ unsigned char WMM_IE[] = {0x00, 0x50, 0xf2, 0x02, 0x00, 0x01, 0x00};
+ int out_len;
+ u8 *pframe;
+
-+ if(padapter->mlmepriv.qospriv.qos_option == 0)
++ if (padapter->mlmepriv.qospriv.qos_option == 0)
+ {
+ out_len = *pout_len;
-+ pframe = rtw_set_ie(out_ie+out_len, _VENDOR_SPECIFIC_IE_,
++ pframe = rtw_set_ie(out_ie+out_len, _VENDOR_SPECIFIC_IE_,
+ _WMM_IE_Length_, WMM_IE, pout_len);
+
+ padapter->mlmepriv.qospriv.qos_option = 1;
@@ -16007,17 +13106,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+}
+
+/* the fucntion is >= passive_level */
-+unsigned int rtw_restructure_ht_ie(_adapter *padapter, u8 *in_ie, u8 *out_ie, uint in_len, uint *pout_len, u8 channel)
++unsigned int rtw_restructure_ht_ie(struct adapter *padapter, u8 *in_ie, u8 *out_ie, uint in_len, uint *pout_len, u8 channel)
+{
+ u32 ielen, out_len;
-+ HT_CAP_AMPDU_FACTOR max_rx_ampdu_factor;
++ enum HT_CAP_AMPDU_FACTOR max_rx_ampdu_factor;
+ unsigned char *p, *pframe;
+ struct rtw_ieee80211_ht_cap ht_capie;
-+ u8 cbw40_enable = 0, stbc_rx_enable = 0, rf_type = 0, operation_bw=0;
++ u8 cbw40_enable = 0, stbc_rx_enable = 0, rf_type = 0, operation_bw = 0;
+ struct registry_priv *pregistrypriv = &padapter->registrypriv;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+
+ phtpriv->ht_option = false;
+
@@ -16025,10 +13124,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+
+ memset(&ht_capie, 0, sizeof(struct rtw_ieee80211_ht_cap));
+
-+ ht_capie.cap_info = IEEE80211_HT_CAP_DSSSCCK40;
++ ht_capie.cap_info = cpu_to_le16(IEEE80211_HT_CAP_DSSSCCK40);
+
+ if (phtpriv->sgi_20m)
-+ ht_capie.cap_info |= IEEE80211_HT_CAP_SGI_20;
++ ht_capie.cap_info |= cpu_to_le16(IEEE80211_HT_CAP_SGI_20);
+
+ /* Get HT BW */
+ if (in_ie == NULL) {
@@ -16070,58 +13169,53 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ }
+
+ if ((cbw40_enable == 1) && (operation_bw == CHANNEL_WIDTH_40)) {
-+ ht_capie.cap_info |= IEEE80211_HT_CAP_SUP_WIDTH;
++ ht_capie.cap_info |= cpu_to_le16(IEEE80211_HT_CAP_SUP_WIDTH);
+ if (phtpriv->sgi_40m)
-+ ht_capie.cap_info |= IEEE80211_HT_CAP_SGI_40;
++ ht_capie.cap_info |= cpu_to_le16(IEEE80211_HT_CAP_SGI_40);
+ }
+
+ if (TEST_FLAG(phtpriv->stbc_cap, STBC_HT_ENABLE_TX))
-+ ht_capie.cap_info |= IEEE80211_HT_CAP_TX_STBC;
++ ht_capie.cap_info |= cpu_to_le16(IEEE80211_HT_CAP_TX_STBC);
+
+ /* todo: disable SM power save mode */
-+ ht_capie.cap_info |= IEEE80211_HT_CAP_SM_PS;
++ ht_capie.cap_info |= cpu_to_le16(IEEE80211_HT_CAP_SM_PS);
+
+ if (TEST_FLAG(phtpriv->stbc_cap, STBC_HT_ENABLE_RX)) {
-+ if((pregistrypriv->rx_stbc == 0x3) || /* enable for 2.4/5 GHz */
-+ ((channel <= 14) && (pregistrypriv->rx_stbc == 0x1)) || /* enable for 2.4GHz */
-+ ((channel > 14) && (pregistrypriv->rx_stbc == 0x2)) || /* enable for 5GHz */
++ if ((channel <= 14 && pregistrypriv->rx_stbc == 0x1) || /* enable for 2.4GHz */
+ (pregistrypriv->wifi_spec == 1)) {
+ stbc_rx_enable = 1;
+ DBG_871X("declare supporting RX STBC\n");
+ }
+ }
+
-+ //fill default supported_mcs_set
++ /* fill default supported_mcs_set */
+ memcpy(ht_capie.supp_mcs_set, pmlmeext->default_supported_mcs_set, 16);
+
-+ //update default supported_mcs_set
++ /* update default supported_mcs_set */
+ rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type));
+
-+ switch(rf_type)
-+ {
++ switch (rf_type) {
+ case RF_1T1R:
-+
+ if (stbc_rx_enable)
-+ ht_capie.cap_info |= IEEE80211_HT_CAP_RX_STBC_1R;//RX STBC One spatial stream
++ ht_capie.cap_info |= cpu_to_le16(IEEE80211_HT_CAP_RX_STBC_1R);/* RX STBC One spatial stream */
+
-+ set_mcs_rate_by_mask(ht_capie.supp_mcs_set, MCS_RATE_1R);
++ set_mcs_rate_by_mask(ht_capie.supp_mcs_set, MCS_RATE_1R);
+ break;
+
+ case RF_2T2R:
+ case RF_1T2R:
+ default:
-+
+ if (stbc_rx_enable)
-+ ht_capie.cap_info |= IEEE80211_HT_CAP_RX_STBC_2R;//RX STBC two spatial stream
++ ht_capie.cap_info |= cpu_to_le16(IEEE80211_HT_CAP_RX_STBC_2R);/* RX STBC two spatial stream */
+
+ #ifdef CONFIG_DISABLE_MCS13TO15
-+ if(((cbw40_enable == 1) && (operation_bw == CHANNEL_WIDTH_40)) && (pregistrypriv->wifi_spec!=1))
-+ set_mcs_rate_by_mask(ht_capie.supp_mcs_set, MCS_RATE_2R_13TO15_OFF);
++ if (((cbw40_enable == 1) && (operation_bw == CHANNEL_WIDTH_40)) && (pregistrypriv->wifi_spec!= 1))
++ set_mcs_rate_by_mask(ht_capie.supp_mcs_set, MCS_RATE_2R_13TO15_OFF);
+ else
-+ set_mcs_rate_by_mask(ht_capie.supp_mcs_set, MCS_RATE_2R);
-+ #else //CONFIG_DISABLE_MCS13TO15
-+ set_mcs_rate_by_mask(ht_capie.supp_mcs_set, MCS_RATE_2R);
-+ #endif //CONFIG_DISABLE_MCS13TO15
++ set_mcs_rate_by_mask(ht_capie.supp_mcs_set, MCS_RATE_2R);
++ #else /* CONFIG_DISABLE_MCS13TO15 */
++ set_mcs_rate_by_mask(ht_capie.supp_mcs_set, MCS_RATE_2R);
++ #endif /* CONFIG_DISABLE_MCS13TO15 */
+ break;
+ }
+
@@ -16129,72 +13223,62 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ u32 rx_packet_offset, max_recvbuf_sz;
+ rtw_hal_get_def_var(padapter, HAL_DEF_RX_PACKET_OFFSET, &rx_packet_offset);
+ rtw_hal_get_def_var(padapter, HAL_DEF_MAX_RECVBUF_SZ, &max_recvbuf_sz);
-+ //if(max_recvbuf_sz-rx_packet_offset>(8191-256)) {
-+ // DBG_871X("%s IEEE80211_HT_CAP_MAX_AMSDU is set\n", __FUNCTION__);
-+ // ht_capie.cap_info = ht_capie.cap_info |IEEE80211_HT_CAP_MAX_AMSDU;
-+ //}
+ }
-+ /*
-+ AMPDU_para [1:0]:Max AMPDU Len => 0:8k , 1:16k, 2:32k, 3:64k
-+ AMPDU_para [4:2]:Min MPDU Start Spacing
-+ */
+
-+ /*
-+ ht_capie.ampdu_params_info = (IEEE80211_HT_CAP_AMPDU_FACTOR&0x03);
-+ */
-+
-+ if(padapter->driver_rx_ampdu_factor != 0xFF)
-+ max_rx_ampdu_factor = (HT_CAP_AMPDU_FACTOR)padapter->driver_rx_ampdu_factor;
++ if (padapter->driver_rx_ampdu_factor != 0xFF)
++ max_rx_ampdu_factor =
++ (enum HT_CAP_AMPDU_FACTOR)padapter->driver_rx_ampdu_factor;
+ else
-+ rtw_hal_get_def_var(padapter, HW_VAR_MAX_RX_AMPDU_FACTOR, &max_rx_ampdu_factor);
-+
-+ //rtw_hal_get_def_var(padapter, HW_VAR_MAX_RX_AMPDU_FACTOR, &max_rx_ampdu_factor);
++ rtw_hal_get_def_var(padapter, HW_VAR_MAX_RX_AMPDU_FACTOR,
++ &max_rx_ampdu_factor);
++
++ /* rtw_hal_get_def_var(padapter, HW_VAR_MAX_RX_AMPDU_FACTOR, &max_rx_ampdu_factor); */
+ ht_capie.ampdu_params_info = (max_rx_ampdu_factor&0x03);
+
-+ if(padapter->securitypriv.dot11PrivacyAlgrthm == _AES_ )
++ if (padapter->securitypriv.dot11PrivacyAlgrthm == _AES_)
+ ht_capie.ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_DENSITY&(0x07<<2));
+ else
+ ht_capie.ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_DENSITY&0x00);
+
-+ pframe = rtw_set_ie(out_ie+out_len, _HT_CAPABILITY_IE_,
++ pframe = rtw_set_ie(out_ie+out_len, _HT_CAPABILITY_IE_,
+ sizeof(struct rtw_ieee80211_ht_cap), (unsigned char*)&ht_capie, pout_len);
+
+ phtpriv->ht_option = true;
+
-+ if(in_ie!=NULL)
++ if (in_ie!= NULL)
+ {
+ p = rtw_get_ie(in_ie, _HT_ADD_INFO_IE_, &ielen, in_len);
-+ if(p && (ielen==sizeof(struct ieee80211_ht_addt_info)))
++ if (p && (ielen ==sizeof(struct ieee80211_ht_addt_info)))
+ {
-+ out_len = *pout_len;
++ out_len = *pout_len;
+ pframe = rtw_set_ie(out_ie+out_len, _HT_ADD_INFO_IE_, ielen, p+2 , pout_len);
+ }
+ }
+
+ return (phtpriv->ht_option);
-+
++
+}
+
-+//the fucntion is > passive_level (in critical_section)
-+void rtw_update_ht_cap(_adapter *padapter, u8 *pie, uint ie_len, u8 channel)
-+{
++/* the fucntion is > passive_level (in critical_section) */
++void rtw_update_ht_cap(struct adapter *padapter, u8 *pie, uint ie_len, u8 channel)
++{
+ u8 *p, max_ampdu_sz;
-+ int len;
-+ //struct sta_info *bmc_sta, *psta;
++ int len;
++ /* struct sta_info *bmc_sta, *psta; */
+ struct rtw_ieee80211_ht_cap *pht_capie;
+ struct ieee80211_ht_addt_info *pht_addtinfo;
-+ //struct recv_reorder_ctrl *preorder_ctrl;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
-+ //struct recv_priv *precvpriv = &padapter->recvpriv;
++ /* struct recv_reorder_ctrl *preorder_ctrl; */
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
++ /* struct recv_priv *precvpriv = &padapter->recvpriv; */
+ struct registry_priv *pregistrypriv = &padapter->registrypriv;
-+ //struct wlan_network *pcur_network = &(pmlmepriv->cur_network);;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ u8 cbw40_enable=0;
-+
++ /* struct wlan_network *pcur_network = &(pmlmepriv->cur_network);; */
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ u8 cbw40_enable = 0;
+
-+ if(!phtpriv->ht_option)
++
++ if (!phtpriv->ht_option)
+ return;
+
+ if ((!pmlmeinfo->HT_info_enable) || (!pmlmeinfo->HT_caps_enable))
@@ -16202,13 +13286,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+
+ DBG_871X("+rtw_update_ht_cap()\n");
+
-+ //maybe needs check if ap supports rx ampdu.
-+ if((phtpriv->ampdu_enable==false) &&(pregistrypriv->ampdu_enable==1))
++ /* maybe needs check if ap supports rx ampdu. */
++ if ((phtpriv->ampdu_enable ==false) && (pregistrypriv->ampdu_enable == 1))
+ {
-+ if(pregistrypriv->wifi_spec==1)
++ if (pregistrypriv->wifi_spec == 1)
+ {
-+ //remove this part because testbed AP should disable RX AMPDU
-+ //phtpriv->ampdu_enable = false;
++ /* remove this part because testbed AP should disable RX AMPDU */
++ /* phtpriv->ampdu_enable = false; */
+ phtpriv->ampdu_enable = true;
+ }
+ else
@@ -16216,34 +13300,34 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ phtpriv->ampdu_enable = true;
+ }
+ }
-+ else if(pregistrypriv->ampdu_enable==2)
++ else if (pregistrypriv->ampdu_enable ==2)
+ {
-+ //remove this part because testbed AP should disable RX AMPDU
-+ //phtpriv->ampdu_enable = true;
++ /* remove this part because testbed AP should disable RX AMPDU */
++ /* phtpriv->ampdu_enable = true; */
+ }
+
-+
-+ //check Max Rx A-MPDU Size
++
++ /* check Max Rx A-MPDU Size */
+ len = 0;
-+ p = rtw_get_ie(pie+sizeof (NDIS_802_11_FIXED_IEs), _HT_CAPABILITY_IE_, &len, ie_len-sizeof (NDIS_802_11_FIXED_IEs));
-+ if(p && len>0)
++ p = rtw_get_ie(pie+sizeof (struct ndis_802_11_fix_ie), _HT_CAPABILITY_IE_, &len, ie_len-sizeof (struct ndis_802_11_fix_ie));
++ if (p && len>0)
+ {
+ pht_capie = (struct rtw_ieee80211_ht_cap *)(p+2);
+ max_ampdu_sz = (pht_capie->ampdu_params_info & IEEE80211_HT_CAP_AMPDU_FACTOR);
-+ max_ampdu_sz = 1 << (max_ampdu_sz+3); // max_ampdu_sz (kbytes);
-+
-+ //DBG_871X("rtw_update_ht_cap(): max_ampdu_sz=%d\n", max_ampdu_sz);
++ max_ampdu_sz = 1 << (max_ampdu_sz+3); /* max_ampdu_sz (kbytes); */
++
++ /* DBG_871X("rtw_update_ht_cap(): max_ampdu_sz =%d\n", max_ampdu_sz); */
+ phtpriv->rx_ampdu_maxlen = max_ampdu_sz;
-+
++
+ }
+
+
-+ len=0;
-+ p = rtw_get_ie(pie+sizeof (NDIS_802_11_FIXED_IEs), _HT_ADD_INFO_IE_, &len, ie_len-sizeof (NDIS_802_11_FIXED_IEs));
-+ if(p && len>0)
++ len = 0;
++ p = rtw_get_ie(pie+sizeof (struct ndis_802_11_fix_ie), _HT_ADD_INFO_IE_, &len, ie_len-sizeof (struct ndis_802_11_fix_ie));
++ if (p && len>0)
+ {
+ pht_addtinfo = (struct ieee80211_ht_addt_info *)(p+2);
-+ //todo:
++ /* todo: */
+ }
+
+ if (channel > 14) {
@@ -16254,136 +13338,131 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ cbw40_enable = 1;
+ }
+
-+ //update cur_bwmode & cur_ch_offset
++ /* update cur_bwmode & cur_ch_offset */
+ if ((cbw40_enable) &&
-+ (pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info & BIT(1)) &&
-+ (pmlmeinfo->HT_info.infos[0] & BIT(2)))
-+ {
++ (le16_to_cpu(pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info) &
++ BIT(1)) && (pmlmeinfo->HT_info.infos[0] & BIT(2))) {
+ int i;
-+ u8 rf_type;
++ u8 rf_type;
+
+ rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type));
+
-+ //update the MCS set
++ /* update the MCS set */
+ for (i = 0; i < 16; i++)
+ pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= pmlmeext->default_supported_mcs_set[i];
+
-+ //update the MCS rates
-+ switch(rf_type)
++ /* update the MCS rates */
++ switch (rf_type)
+ {
+ case RF_1T1R:
+ case RF_1T2R:
-+ set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_1R);
++ set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_1R);
+ break;
-+ case RF_2T2R:
++ case RF_2T2R:
+ default:
+#ifdef CONFIG_DISABLE_MCS13TO15
-+ if(pmlmeext->cur_bwmode == CHANNEL_WIDTH_40 && pregistrypriv->wifi_spec != 1 )
-+ set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_2R_13TO15_OFF);
++ if (pmlmeext->cur_bwmode == CHANNEL_WIDTH_40 && pregistrypriv->wifi_spec != 1)
++ set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_2R_13TO15_OFF);
+ else
+ set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_2R);
-+#else //CONFIG_DISABLE_MCS13TO15
++#else /* CONFIG_DISABLE_MCS13TO15 */
+ set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_2R);
-+#endif //CONFIG_DISABLE_MCS13TO15
++#endif /* CONFIG_DISABLE_MCS13TO15 */
+ }
+
-+ //switch to the 40M Hz mode accoring to the AP
-+ //pmlmeext->cur_bwmode = CHANNEL_WIDTH_40;
++ /* switch to the 40M Hz mode accoring to the AP */
++ /* pmlmeext->cur_bwmode = CHANNEL_WIDTH_40; */
+ switch ((pmlmeinfo->HT_info.infos[0] & 0x3))
+ {
+ case EXTCHNL_OFFSET_UPPER:
+ pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_LOWER;
+ break;
-+
++
+ case EXTCHNL_OFFSET_LOWER:
+ pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_UPPER;
+ break;
-+
++
+ default:
+ pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
+ break;
-+ }
++ }
+ }
+
-+ //
-+ // Config SM Power Save setting
-+ //
-+ pmlmeinfo->SM_PS = (pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info & 0x0C) >> 2;
-+ if(pmlmeinfo->SM_PS == WLAN_HT_CAP_SM_PS_STATIC)
++ /* */
++ /* Config SM Power Save setting */
++ /* */
++ pmlmeinfo->SM_PS =
++ (le16_to_cpu(pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info) &
++ 0x0C) >> 2;
++ if (pmlmeinfo->SM_PS == WLAN_HT_CAP_SM_PS_STATIC)
+ {
-+ /*u8 i;
-+ //update the MCS rates
-+ for (i = 0; i < 16; i++)
-+ {
-+ pmlmeinfo->HT_caps.HT_cap_element.MCS_rate[i] &= MCS_rate_1R[i];
-+ }*/
-+ DBG_871X("%s(): WLAN_HT_CAP_SM_PS_STATIC\n",__FUNCTION__);
++ DBG_871X("%s(): WLAN_HT_CAP_SM_PS_STATIC\n", __func__);
+ }
+
-+ //
-+ // Config current HT Protection mode.
-+ //
++ /* */
++ /* Config current HT Protection mode. */
++ /* */
+ pmlmeinfo->HT_protection = pmlmeinfo->HT_info.infos[1] & 0x3;
+}
+
-+void rtw_issue_addbareq_cmd(_adapter *padapter, struct xmit_frame *pxmitframe)
++void rtw_issue_addbareq_cmd(struct adapter *padapter, struct xmit_frame *pxmitframe)
+{
+ u8 issued;
+ int priority;
-+ struct sta_info *psta=NULL;
-+ struct ht_priv *phtpriv;
++ struct sta_info *psta = NULL;
++ struct ht_priv *phtpriv;
+ struct pkt_attrib *pattrib =&pxmitframe->attrib;
+ s32 bmcst = IS_MCAST(pattrib->ra);
+
-+ //if(bmcst || (padapter->mlmepriv.LinkDetectInfo.bTxBusyTraffic == false))
-+ if(bmcst || (padapter->mlmepriv.LinkDetectInfo.NumTxOkInPeriod<100))
++ /* if (bmcst || (padapter->mlmepriv.LinkDetectInfo.bTxBusyTraffic == false)) */
++ if (bmcst || (padapter->mlmepriv.LinkDetectInfo.NumTxOkInPeriod<100))
+ return;
-+
++
+ priority = pattrib->priority;
+
+ psta = rtw_get_stainfo(&padapter->stapriv, pattrib->ra);
-+ if(pattrib->psta != psta)
++ if (pattrib->psta != psta)
+ {
+ DBG_871X("%s, pattrib->psta(%p) != psta(%p)\n", __func__, pattrib->psta, psta);
+ return;
+ }
-+
-+ if(psta==NULL)
++
++ if (psta == NULL)
+ {
-+ DBG_871X("%s, psta==NUL\n", __func__);
++ DBG_871X("%s, psta ==NUL\n", __func__);
+ return;
+ }
+
-+ if(!(psta->state &_FW_LINKED))
++ if (!(psta->state &_FW_LINKED))
+ {
+ DBG_871X("%s, psta->state(0x%x) != _FW_LINKED\n", __func__, psta->state);
+ return;
-+ }
++ }
+
+
+ phtpriv = &psta->htpriv;
+
-+ if((phtpriv->ht_option==true) && (phtpriv->ampdu_enable==true))
++ if ((phtpriv->ht_option ==true) && (phtpriv->ampdu_enable ==true))
+ {
+ issued = (phtpriv->agg_enable_bitmap>>priority)&0x1;
+ issued |= (phtpriv->candidate_tid_bitmap>>priority)&0x1;
+
-+ if(0==issued)
++ if (0 ==issued)
+ {
-+ DBG_871X("rtw_issue_addbareq_cmd, p=%d\n", priority);
++ DBG_871X("rtw_issue_addbareq_cmd, p =%d\n", priority);
+ psta->htpriv.candidate_tid_bitmap |= BIT((u8)priority);
-+ rtw_addbareq_cmd(padapter,(u8) priority, pattrib->ra);
++ rtw_addbareq_cmd(padapter, (u8) priority, pattrib->ra);
+ }
+ }
+
+}
+
-+void rtw_append_exented_cap(_adapter *padapter, u8 *out_ie, uint *pout_len)
++void rtw_append_exented_cap(struct adapter *padapter, u8 *out_ie, uint *pout_len)
+{
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
-+ u8 cap_content[8] = {0};
-+ u8 *pframe;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
++ u8 cap_content[8] = {0};
++ u8 *pframe;
+
+
+ if (phtpriv->bss_coexist) {
@@ -16393,96 +13472,89 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme.c linux/3rdparty/rtl8723bs
+ pframe = rtw_set_ie(out_ie+*pout_len, EID_EXTCapability, 8, cap_content , pout_len);
+}
+
-+#ifdef CONFIG_LAYER2_ROAMING
-+inline void rtw_set_to_roam(_adapter *adapter, u8 to_roam)
++inline void rtw_set_to_roam(struct adapter *adapter, u8 to_roam)
+{
+ if (to_roam == 0)
+ adapter->mlmepriv.to_join = false;
+ adapter->mlmepriv.to_roam = to_roam;
+}
+
-+inline u8 rtw_dec_to_roam(_adapter *adapter)
++inline u8 rtw_dec_to_roam(struct adapter *adapter)
+{
+ adapter->mlmepriv.to_roam--;
+ return adapter->mlmepriv.to_roam;
+}
+
-+inline u8 rtw_to_roam(_adapter *adapter)
++inline u8 rtw_to_roam(struct adapter *adapter)
+{
+ return adapter->mlmepriv.to_roam;
+}
+
-+void rtw_roaming(_adapter *padapter, struct wlan_network *tgt_network)
++void rtw_roaming(struct adapter *padapter, struct wlan_network *tgt_network)
+{
-+ _irqL irqL;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
++ spin_lock_bh(&pmlmepriv->lock);
+ _rtw_roaming(padapter, tgt_network);
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
++ spin_unlock_bh(&pmlmepriv->lock);
+}
-+void _rtw_roaming(_adapter *padapter, struct wlan_network *tgt_network)
++void _rtw_roaming(struct adapter *padapter, struct wlan_network *tgt_network)
+{
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+ struct wlan_network *cur_network = &pmlmepriv->cur_network;
+ int do_join_r;
-+
-+ if(0 < rtw_to_roam(padapter)) {
++
++ if (0 < rtw_to_roam(padapter)) {
+ DBG_871X("roaming from %s("MAC_FMT"), length:%d\n",
+ cur_network->network.Ssid.Ssid, MAC_ARG(cur_network->network.MacAddress),
+ cur_network->network.Ssid.SsidLength);
-+ memcpy(&pmlmepriv->assoc_ssid, &cur_network->network.Ssid, sizeof(NDIS_802_11_SSID));
++ memcpy(&pmlmepriv->assoc_ssid, &cur_network->network.Ssid, sizeof(struct ndis_802_11_ssid));
+
+ pmlmepriv->assoc_by_bssid = false;
+
-+#ifdef CONFIG_WAPI_SUPPORT
-+ rtw_wapi_return_all_sta_info(padapter);
-+#endif
-+
-+ while(1) {
-+ if( _SUCCESS==(do_join_r=rtw_do_join(padapter)) ) {
++ while (1) {
++ if (_SUCCESS ==(do_join_r =rtw_do_join(padapter))) {
+ break;
+ } else {
+ DBG_871X("roaming do_join return %d\n", do_join_r);
+ rtw_dec_to_roam(padapter);
-+
-+ if(rtw_to_roam(padapter) > 0) {
++
++ if (rtw_to_roam(padapter) > 0) {
+ continue;
+ } else {
-+ DBG_871X("%s(%d) -to roaming fail, indicate_disconnect\n", __FUNCTION__,__LINE__);
++ DBG_871X("%s(%d) -to roaming fail, indicate_disconnect\n", __func__, __LINE__);
+ rtw_indicate_disconnect(padapter);
+ break;
+ }
+ }
+ }
+ }
-+
-+}
-+#endif /* CONFIG_LAYER2_ROAMING */
+
-+sint rtw_linked_check(_adapter *padapter)
++}
++
++sint rtw_linked_check(struct adapter *padapter)
+{
-+ if( (check_fwstate(&padapter->mlmepriv, WIFI_AP_STATE) == true) ||
++ if ((check_fwstate(&padapter->mlmepriv, WIFI_AP_STATE) == true) ||
+ (check_fwstate(&padapter->mlmepriv, WIFI_ADHOC_STATE|WIFI_ADHOC_MASTER_STATE) == true))
+ {
-+ if(padapter->stapriv.asoc_sta_count > 2)
++ if (padapter->stapriv.asoc_sta_count > 2)
+ return true;
+ }
+ else
-+ { //Station mode
-+ if(check_fwstate(&padapter->mlmepriv, _FW_LINKED)== true)
++ { /* Station mode */
++ if (check_fwstate(&padapter->mlmepriv, _FW_LINKED) == true)
+ return true;
+ }
+ return false;
+}
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl8723bs/core/rtw_mlme_ext.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_mlme_ext.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,7828 @@
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_mlme_ext.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_mlme_ext.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_mlme_ext.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,7376 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
-+ *
++ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
@@ -16492,15 +13564,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
+#define _RTW_MLME_EXT_C_
+
+#include
++#include
+#include
+
+
@@ -16526,30 +13594,6 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ {WIFI_ACTION_NOACK,"OnActionNoAck", &OnAction},
+};
+
-+#ifdef _CONFIG_NATIVEAP_MLME_
-+struct mlme_handler mlme_ap_tbl[]={
-+ {WIFI_ASSOCREQ, "OnAssocReq", &OnAssocReq},
-+ {WIFI_ASSOCRSP, "OnAssocRsp", &OnAssocRsp},
-+ {WIFI_REASSOCREQ, "OnReAssocReq", &OnAssocReq},
-+ {WIFI_REASSOCRSP, "OnReAssocRsp", &OnAssocRsp},
-+ {WIFI_PROBEREQ, "OnProbeReq", &OnProbeReq},
-+ {WIFI_PROBERSP, "OnProbeRsp", &OnProbeRsp},
-+
-+ /*----------------------------------------------------------
-+ below 2 are reserved
-+ -----------------------------------------------------------*/
-+ {0, "DoReserved", &DoReserved},
-+ {0, "DoReserved", &DoReserved},
-+ {WIFI_BEACON, "OnBeacon", &OnBeacon},
-+ {WIFI_ATIM, "OnATIM", &OnAtim},
-+ {WIFI_DISASSOC, "OnDisassoc", &OnDisassoc},
-+ {WIFI_AUTH, "OnAuth", &OnAuth},
-+ {WIFI_DEAUTH, "OnDeAuth", &OnDeAuth},
-+ {WIFI_ACTION, "OnAction", &OnAction},
-+ {WIFI_ACTION_NOACK,"OnActionNoAck", &OnAction},
-+};
-+#endif
-+
+static struct action_handler OnAction_tbl[]={
+ {RTW_WLAN_CATEGORY_SPECTRUM_MGMT, "ACTION_SPECTRUM_MGMT", on_action_spct},
+ {RTW_WLAN_CATEGORY_QOS, "ACTION_QOS", &DoReserved},
@@ -16559,12 +13603,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ {RTW_WLAN_CATEGORY_RADIO_MEASUREMENT, "ACTION_RADIO_MEASUREMENT", &DoReserved},
+ {RTW_WLAN_CATEGORY_FT, "ACTION_FT", &DoReserved},
+ {RTW_WLAN_CATEGORY_HT, "ACTION_HT", &OnAction_ht},
-+#ifdef CONFIG_IEEE80211W
+ {RTW_WLAN_CATEGORY_SA_QUERY, "ACTION_SA_QUERY", &OnAction_sa_query},
-+#else
-+ {RTW_WLAN_CATEGORY_SA_QUERY, "ACTION_SA_QUERY", &DoReserved},
-+#endif //CONFIG_IEEE80211W
-+ //add for CONFIG_IEEE80211W
+ {RTW_WLAN_CATEGORY_UNPROTECTED_WNM, "ACTION_UNPROTECTED_WNM", &DoReserved},
+ {RTW_WLAN_CATEGORY_SELF_PROTECTED, "ACTION_SELF_PROTECTED", &DoReserved},
+ {RTW_WLAN_CATEGORY_WMM, "ACTION_WMM", &DoReserved},
@@ -16573,208 +13612,180 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+};
+
+
-+static u8 null_addr[ETH_ALEN]= {0,0,0,0,0,0};
++static u8 null_addr[ETH_ALEN]= {0, 0, 0, 0, 0, 0};
+
+/**************************************************
+OUI definitions for the vendor specific IE
+***************************************************/
-+unsigned char RTW_WPA_OUI[] = {0x00, 0x50, 0xf2, 0x01};
++unsigned char RTW_WPA_OUI[] = {0x00, 0x50, 0xf2, 0x01};
+unsigned char WMM_OUI[] = {0x00, 0x50, 0xf2, 0x02};
-+unsigned char WPS_OUI[] = {0x00, 0x50, 0xf2, 0x04};
-+unsigned char P2P_OUI[] = {0x50,0x6F,0x9A,0x09};
-+unsigned char WFD_OUI[] = {0x50,0x6F,0x9A,0x0A};
++unsigned char WPS_OUI[] = {0x00, 0x50, 0xf2, 0x04};
++unsigned char P2P_OUI[] = {0x50, 0x6F, 0x9A, 0x09};
++unsigned char WFD_OUI[] = {0x50, 0x6F, 0x9A, 0x0A};
+
-+unsigned char WMM_INFO_OUI[] = {0x00, 0x50, 0xf2, 0x02, 0x00, 0x01};
-+unsigned char WMM_PARA_OUI[] = {0x00, 0x50, 0xf2, 0x02, 0x01, 0x01};
-+
-+unsigned char WPA_TKIP_CIPHER[4] = {0x00, 0x50, 0xf2, 0x02};
-+unsigned char RSN_TKIP_CIPHER[4] = {0x00, 0x0f, 0xac, 0x02};
-+
-+extern unsigned char REALTEK_96B_IE[];
++unsigned char WMM_INFO_OUI[] = {0x00, 0x50, 0xf2, 0x02, 0x00, 0x01};
++unsigned char WMM_PARA_OUI[] = {0x00, 0x50, 0xf2, 0x02, 0x01, 0x01};
+
++static unsigned char REALTEK_96B_IE[] = {0x00, 0xe0, 0x4c, 0x02, 0x01, 0x20};
+
+/********************************************************
+ChannelPlan definitions
+*********************************************************/
-+/*static RT_CHANNEL_PLAN DefaultChannelPlan[RT_CHANNEL_DOMAIN_MAX] = {
-+ {{1,2,3,4,5,6,7,8,9,10,11,36,40,44,48,52,56,60,64,100,104,108,112,116,132,136,140,149,153,157,161,165},32}, // 0x00, RT_CHANNEL_DOMAIN_FCC
-+ {{1,2,3,4,5,6,7,8,9,10,11,36,40,44,48,52,56,60,64,100,104,108,112,116,136,140,149,153,157,161,165},31}, // 0x01, RT_CHANNEL_DOMAIN_IC
-+ {{1,2,3,4,5,6,7,8,9,10,11,12,13,36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140},32}, // 0x02, RT_CHANNEL_DOMAIN_ETSI
-+ {{1,2,3,4,5,6,7,8,9,10,11,12,13},13}, // 0x03, RT_CHANNEL_DOMAIN_SPAIN
-+ {{1,2,3,4,5,6,7,8,9,10,11,12,13},13}, // 0x04, RT_CHANNEL_DOMAIN_FRANCE
-+ {{1,2,3,4,5,6,7,8,9,10,11,12,13},13}, // 0x05, RT_CHANNEL_DOMAIN_MKK
-+ {{1,2,3,4,5,6,7,8,9,10,11,12,13},13}, // 0x06, RT_CHANNEL_DOMAIN_MKK1
-+ {{1,2,3,4,5,6,7,8,9,10,11,12,13,36,40,44,48,52,56,60,64},21}, // 0x07, RT_CHANNEL_DOMAIN_ISRAEL
-+ {{1,2,3,4,5,6,7,8,9,10,11,12,13,14,36,40,44,48,52,56,60,64},22}, // 0x08, RT_CHANNEL_DOMAIN_TELEC
-+ {{1,2,3,4,5,6,7,8,9,10,11,12,13,14},14}, // 0x09, RT_CHANNEL_DOMAIN_GLOBAL_DOAMIN
-+ {{1,2,3,4,5,6,7,8,9,10,11,12,13},13}, // 0x0A, RT_CHANNEL_DOMAIN_WORLD_WIDE_13
-+ {{1,2,3,4,5,6,7,8,9,10,11,56,60,64,100,104,108,112,116,136,140,149,153,157,161,165},26}, // 0x0B, RT_CHANNEL_DOMAIN_TAIWAN
-+ {{1,2,3,4,5,6,7,8,9,10,11,12,13,149,153,157,161,165},18}, // 0x0C, RT_CHANNEL_DOMAIN_CHINA
-+ {{1,2,3,4,5,6,7,8,9,10,11,36,40,44,48,52,56,60,64,149,153,157,161,165},24}, // 0x0D, RT_CHANNEL_DOMAIN_SINGAPORE_INDIA_MEXICO
-+ {{1,2,3,4,5,6,7,8,9,10,11,36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,149,153,157,161,165},31}, // 0x0E, RT_CHANNEL_DOMAIN_KOREA
-+ {{1,2,3,4,5,6,7,8,9,10,11,36,40,44,48,52,56,60,64},19}, // 0x0F, RT_CHANNEL_DOMAIN_TURKEY
-+ {{1,2,3,4,5,6,7,8,9,10,11,12,13,36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140},32}, // 0x10, RT_CHANNEL_DOMAIN_JAPAN
-+ {{1,2,3,4,5,6,7,8,9,10,11,36,40,44,48,149,153,157,161,165},20}, // 0x11, RT_CHANNEL_DOMAIN_FCC_NO_DFS
-+ {{1,2,3,4,5,6,7,8,9,10,11,12,13,36,40,44,48},17}, // 0x12, RT_CHANNEL_DOMAIN_JAPAN_NO_DFS
-+ {{1,2,3,4,5,6,7,8,9,10,11,12,13,36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140,149,153,157,161,165},37}, // 0x13, RT_CHANNEL_DOMAIN_WORLD_WIDE_5G
-+ {{1,2,3,4,5,6,7,8,9,10,11,56,60,64,149,153,157,161,165},19}, // 0x14, RT_CHANNEL_DOMAIN_TAIWAN_NO_DFS
-+};*/
-+
+static RT_CHANNEL_PLAN_2G RTW_ChannelPlan2G[RT_CHANNEL_DOMAIN_2G_MAX] = {
-+ {{1,2,3,4,5,6,7,8,9,10,11,12,13},13}, // 0x00, RT_CHANNEL_DOMAIN_2G_WORLD , Passive scan CH 12, 13
-+ {{1,2,3,4,5,6,7,8,9,10,11,12,13},13}, // 0x01, RT_CHANNEL_DOMAIN_2G_ETSI1
-+ {{1,2,3,4,5,6,7,8,9,10,11},11}, // 0x02, RT_CHANNEL_DOMAIN_2G_FCC1
-+ {{1,2,3,4,5,6,7,8,9,10,11,12,13,14},14}, // 0x03, RT_CHANNEL_DOMAIN_2G_MIKK1
-+ {{10,11,12,13},4}, // 0x04, RT_CHANNEL_DOMAIN_2G_ETSI2
-+ {{1,2,3,4,5,6,7,8,9,10,11,12,13,14},14}, // 0x05, RT_CHANNEL_DOMAIN_2G_GLOBAL , Passive scan CH 12, 13, 14
-+ {{},0}, // 0x06, RT_CHANNEL_DOMAIN_2G_NULL
++ {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13}, /* 0x00, RT_CHANNEL_DOMAIN_2G_WORLD , Passive scan CH 12, 13 */
++ {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13}, /* 0x01, RT_CHANNEL_DOMAIN_2G_ETSI1 */
++ {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 11}, /* 0x02, RT_CHANNEL_DOMAIN_2G_FCC1 */
++ {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, 14}, /* 0x03, RT_CHANNEL_DOMAIN_2G_MIKK1 */
++ {{10, 11, 12, 13}, 4}, /* 0x04, RT_CHANNEL_DOMAIN_2G_ETSI2 */
++ {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, 14}, /* 0x05, RT_CHANNEL_DOMAIN_2G_GLOBAL , Passive scan CH 12, 13, 14 */
++ {{}, 0}, /* 0x06, RT_CHANNEL_DOMAIN_2G_NULL */
+};
+
+static RT_CHANNEL_PLAN_5G RTW_ChannelPlan5G[RT_CHANNEL_DOMAIN_5G_MAX] = {
-+ {{},0}, // 0x00, RT_CHANNEL_DOMAIN_5G_NULL
-+ {{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140},19}, // 0x01, RT_CHANNEL_DOMAIN_5G_ETSI1
-+ {{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140,149,153,157,161,165},24}, // 0x02, RT_CHANNEL_DOMAIN_5G_ETSI2
-+ {{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,149,153,157,161,165},22}, // 0x03, RT_CHANNEL_DOMAIN_5G_ETSI3
-+ {{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140,149,153,157,161,165},24}, // 0x04, RT_CHANNEL_DOMAIN_5G_FCC1
-+ {{36,40,44,48,149,153,157,161,165},9}, // 0x05, RT_CHANNEL_DOMAIN_5G_FCC2
-+ {{36,40,44,48,52,56,60,64,149,153,157,161,165},13}, // 0x06, RT_CHANNEL_DOMAIN_5G_FCC3
-+ {{36,40,44,48,52,56,60,64,149,153,157,161},12}, // 0x07, RT_CHANNEL_DOMAIN_5G_FCC4
-+ {{149,153,157,161,165},5}, // 0x08, RT_CHANNEL_DOMAIN_5G_FCC5
-+ {{36,40,44,48,52,56,60,64},8}, // 0x09, RT_CHANNEL_DOMAIN_5G_FCC6
-+ {{36,40,44,48,52,56,60,64,100,104,108,112,116,136,140,149,153,157,161,165},20}, // 0x0A, RT_CHANNEL_DOMAIN_5G_FCC7_IC1
-+ {{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,149,153,157,161,165},20}, // 0x0B, RT_CHANNEL_DOMAIN_5G_KCC1
-+ {{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140},19}, // 0x0C, RT_CHANNEL_DOMAIN_5G_MKK1
-+ {{36,40,44,48,52,56,60,64},8}, // 0x0D, RT_CHANNEL_DOMAIN_5G_MKK2
-+ {{100,104,108,112,116,120,124,128,132,136,140},11}, // 0x0E, RT_CHANNEL_DOMAIN_5G_MKK3
-+ {{56,60,64,100,104,108,112,116,136,140,149,153,157,161,165},15}, // 0x0F, RT_CHANNEL_DOMAIN_5G_NCC1
-+ {{56,60,64,149,153,157,161,165},8}, // 0x10, RT_CHANNEL_DOMAIN_5G_NCC2
-+ {{149,153,157,161,165},5}, // 0x11, RT_CHANNEL_DOMAIN_5G_NCC3
-+ {{36,40,44,48},4}, // 0x12, RT_CHANNEL_DOMAIN_5G_ETSI4
-+ {{36,40,44,48,52,56,60,64,100,104,108,112,116,136,140,149,153,157,161,165},20}, // 0x13, RT_CHANNEL_DOMAIN_5G_ETSI5
-+ {{149,153,157,161},4}, // 0x14, RT_CHANNEL_DOMAIN_5G_FCC8
-+ {{36,40,44,48,52,56,60,64},8}, // 0x15, RT_CHANNEL_DOMAIN_5G_ETSI6
-+ {{36,40,44,48,52,56,60,64,149,153,157,161,165},13}, // 0x16, RT_CHANNEL_DOMAIN_5G_ETSI7
-+ {{36,40,44,48,149,153,157,161,165},9}, // 0x17, RT_CHANNEL_DOMAIN_5G_ETSI8
-+ {{100,104,108,112,116,120,124,128,132,136,140},11}, // 0x18, RT_CHANNEL_DOMAIN_5G_ETSI9
-+ {{149,153,157,161,165},5}, // 0x19, RT_CHANNEL_DOMAIN_5G_ETSI10
-+ {{36,40,44,48,52,56,60,64,132,136,140,149,153,157,161,165},16}, // 0x1A, RT_CHANNEL_DOMAIN_5G_ETSI11
-+ {{52,56,60,64,100,104,108,112,116,132,136,140,149,153,157,161,165},17}, // 0x1B, RT_CHANNEL_DOMAIN_5G_NCC4
-+ {{149,153,157,161},4}, // 0x1C, RT_CHANNEL_DOMAIN_5G_ETSI12
-+ {{36,40,44,48,100,104,108,112,116,132,136,140,149,153,157,161,165},17}, // 0x1D, RT_CHANNEL_DOMAIN_5G_FCC9
-+ {{36,40,44,48,100,104,108,112,116,132,136,140},12}, // 0x1E, RT_CHANNEL_DOMAIN_5G_ETSI13
-+ {{36,40,44,48,52,56,60,64,100,104,108,112,116,132,136,140,149,153,157,161},20}, // 0x1F, RT_CHANNEL_DOMAIN_5G_FCC10
++ {{}, 0}, /* 0x00, RT_CHANNEL_DOMAIN_5G_NULL */
++ {{36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 19}, /* 0x01, RT_CHANNEL_DOMAIN_5G_ETSI1 */
++ {{36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165}, 24}, /* 0x02, RT_CHANNEL_DOMAIN_5G_ETSI2 */
++ {{36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 149, 153, 157, 161, 165}, 22}, /* 0x03, RT_CHANNEL_DOMAIN_5G_ETSI3 */
++ {{36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165}, 24}, /* 0x04, RT_CHANNEL_DOMAIN_5G_FCC1 */
++ {{36, 40, 44, 48, 149, 153, 157, 161, 165}, 9}, /* 0x05, RT_CHANNEL_DOMAIN_5G_FCC2 */
++ {{36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165}, 13}, /* 0x06, RT_CHANNEL_DOMAIN_5G_FCC3 */
++ {{36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161}, 12}, /* 0x07, RT_CHANNEL_DOMAIN_5G_FCC4 */
++ {{149, 153, 157, 161, 165}, 5}, /* 0x08, RT_CHANNEL_DOMAIN_5G_FCC5 */
++ {{36, 40, 44, 48, 52, 56, 60, 64}, 8}, /* 0x09, RT_CHANNEL_DOMAIN_5G_FCC6 */
++ {{36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20}, /* 0x0A, RT_CHANNEL_DOMAIN_5G_FCC7_IC1 */
++ {{36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 149, 153, 157, 161, 165}, 20}, /* 0x0B, RT_CHANNEL_DOMAIN_5G_KCC1 */
++ {{36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 19}, /* 0x0C, RT_CHANNEL_DOMAIN_5G_MKK1 */
++ {{36, 40, 44, 48, 52, 56, 60, 64}, 8}, /* 0x0D, RT_CHANNEL_DOMAIN_5G_MKK2 */
++ {{100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 11}, /* 0x0E, RT_CHANNEL_DOMAIN_5G_MKK3 */
++ {{56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 15}, /* 0x0F, RT_CHANNEL_DOMAIN_5G_NCC1 */
++ {{56, 60, 64, 149, 153, 157, 161, 165}, 8}, /* 0x10, RT_CHANNEL_DOMAIN_5G_NCC2 */
++ {{149, 153, 157, 161, 165}, 5}, /* 0x11, RT_CHANNEL_DOMAIN_5G_NCC3 */
++ {{36, 40, 44, 48}, 4}, /* 0x12, RT_CHANNEL_DOMAIN_5G_ETSI4 */
++ {{36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20}, /* 0x13, RT_CHANNEL_DOMAIN_5G_ETSI5 */
++ {{149, 153, 157, 161}, 4}, /* 0x14, RT_CHANNEL_DOMAIN_5G_FCC8 */
++ {{36, 40, 44, 48, 52, 56, 60, 64}, 8}, /* 0x15, RT_CHANNEL_DOMAIN_5G_ETSI6 */
++ {{36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165}, 13}, /* 0x16, RT_CHANNEL_DOMAIN_5G_ETSI7 */
++ {{36, 40, 44, 48, 149, 153, 157, 161, 165}, 9}, /* 0x17, RT_CHANNEL_DOMAIN_5G_ETSI8 */
++ {{100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 11}, /* 0x18, RT_CHANNEL_DOMAIN_5G_ETSI9 */
++ {{149, 153, 157, 161, 165}, 5}, /* 0x19, RT_CHANNEL_DOMAIN_5G_ETSI10 */
++ {{36, 40, 44, 48, 52, 56, 60, 64, 132, 136, 140, 149, 153, 157, 161, 165}, 16}, /* 0x1A, RT_CHANNEL_DOMAIN_5G_ETSI11 */
++ {{52, 56, 60, 64, 100, 104, 108, 112, 116, 132, 136, 140, 149, 153, 157, 161, 165}, 17}, /* 0x1B, RT_CHANNEL_DOMAIN_5G_NCC4 */
++ {{149, 153, 157, 161}, 4}, /* 0x1C, RT_CHANNEL_DOMAIN_5G_ETSI12 */
++ {{36, 40, 44, 48, 100, 104, 108, 112, 116, 132, 136, 140, 149, 153, 157, 161, 165}, 17}, /* 0x1D, RT_CHANNEL_DOMAIN_5G_FCC9 */
++ {{36, 40, 44, 48, 100, 104, 108, 112, 116, 132, 136, 140}, 12}, /* 0x1E, RT_CHANNEL_DOMAIN_5G_ETSI13 */
++ {{36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 132, 136, 140, 149, 153, 157, 161}, 20}, /* 0x1F, RT_CHANNEL_DOMAIN_5G_FCC10 */
+
-+ //===== Driver self defined for old channel plan Compatible ,Remember to modify if have new channel plan definition =====
-+ {{36,40,44,48,52,56,60,64,100,104,108,112,116,132,136,140,149,153,157,161,165},21}, // 0x20, RT_CHANNEL_DOMAIN_5G_FCC
-+ {{36,40,44,48},4}, // 0x21, RT_CHANNEL_DOMAIN_5G_JAPAN_NO_DFS
-+ {{36,40,44,48,149,153,157,161},8}, // 0x22, RT_CHANNEL_DOMAIN_5G_FCC4_NO_DFS
++ /* Driver self defined for old channel plan Compatible , Remember to modify if have new channel plan definition ===== */
++ {{36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 132, 136, 140, 149, 153, 157, 161, 165}, 21}, /* 0x20, RT_CHANNEL_DOMAIN_5G_FCC */
++ {{36, 40, 44, 48}, 4}, /* 0x21, RT_CHANNEL_DOMAIN_5G_JAPAN_NO_DFS */
++ {{36, 40, 44, 48, 149, 153, 157, 161}, 8}, /* 0x22, RT_CHANNEL_DOMAIN_5G_FCC4_NO_DFS */
+};
+
+static RT_CHANNEL_PLAN_MAP RTW_ChannelPlanMap[RT_CHANNEL_DOMAIN_MAX] = {
-+ //===== 0x00 ~ 0x1F , Old Define =====
-+ {0x02,0x20}, //0x00, RT_CHANNEL_DOMAIN_FCC
-+ {0x02,0x0A}, //0x01, RT_CHANNEL_DOMAIN_IC
-+ {0x01,0x01}, //0x02, RT_CHANNEL_DOMAIN_ETSI
-+ {0x01,0x00}, //0x03, RT_CHANNEL_DOMAIN_SPAIN
-+ {0x01,0x00}, //0x04, RT_CHANNEL_DOMAIN_FRANCE
-+ {0x03,0x00}, //0x05, RT_CHANNEL_DOMAIN_MKK
-+ {0x03,0x00}, //0x06, RT_CHANNEL_DOMAIN_MKK1
-+ {0x01,0x09}, //0x07, RT_CHANNEL_DOMAIN_ISRAEL
-+ {0x03,0x09}, //0x08, RT_CHANNEL_DOMAIN_TELEC
-+ {0x03,0x00}, //0x09, RT_CHANNEL_DOMAIN_GLOBAL_DOAMIN
-+ {0x00,0x00}, //0x0A, RT_CHANNEL_DOMAIN_WORLD_WIDE_13
-+ {0x02,0x0F}, //0x0B, RT_CHANNEL_DOMAIN_TAIWAN
-+ {0x01,0x08}, //0x0C, RT_CHANNEL_DOMAIN_CHINA
-+ {0x02,0x06}, //0x0D, RT_CHANNEL_DOMAIN_SINGAPORE_INDIA_MEXICO
-+ {0x02,0x0B}, //0x0E, RT_CHANNEL_DOMAIN_KOREA
-+ {0x02,0x09}, //0x0F, RT_CHANNEL_DOMAIN_TURKEY
-+ {0x01,0x01}, //0x10, RT_CHANNEL_DOMAIN_JAPAN
-+ {0x02,0x05}, //0x11, RT_CHANNEL_DOMAIN_FCC_NO_DFS
-+ {0x01,0x21}, //0x12, RT_CHANNEL_DOMAIN_JAPAN_NO_DFS
-+ {0x00,0x04}, //0x13, RT_CHANNEL_DOMAIN_WORLD_WIDE_5G
-+ {0x02,0x10}, //0x14, RT_CHANNEL_DOMAIN_TAIWAN_NO_DFS
-+ {0x00,0x21}, //0x15, RT_CHANNEL_DOMAIN_ETSI_NO_DFS
-+ {0x00,0x22}, //0x16, RT_CHANNEL_DOMAIN_KOREA_NO_DFS
-+ {0x03,0x21}, //0x17, RT_CHANNEL_DOMAIN_JAPAN_NO_DFS
-+ {0x06,0x08}, //0x18, RT_CHANNEL_DOMAIN_PAKISTAN_NO_DFS
-+ {0x02,0x08}, //0x19, RT_CHANNEL_DOMAIN_TAIWAN2_NO_DFS
-+ {0x00,0x00}, //0x1A,
-+ {0x00,0x00}, //0x1B,
-+ {0x00,0x00}, //0x1C,
-+ {0x00,0x00}, //0x1D,
-+ {0x00,0x00}, //0x1E,
-+ {0x06,0x04}, //0x1F, RT_CHANNEL_DOMAIN_WORLD_WIDE_ONLY_5G
-+ //===== 0x20 ~ 0x7F ,New Define =====
-+ {0x00,0x00}, //0x20, RT_CHANNEL_DOMAIN_WORLD_NULL
-+ {0x01,0x00}, //0x21, RT_CHANNEL_DOMAIN_ETSI1_NULL
-+ {0x02,0x00}, //0x22, RT_CHANNEL_DOMAIN_FCC1_NULL
-+ {0x03,0x00}, //0x23, RT_CHANNEL_DOMAIN_MKK1_NULL
-+ {0x04,0x00}, //0x24, RT_CHANNEL_DOMAIN_ETSI2_NULL
-+ {0x02,0x04}, //0x25, RT_CHANNEL_DOMAIN_FCC1_FCC1
-+ {0x00,0x01}, //0x26, RT_CHANNEL_DOMAIN_WORLD_ETSI1
-+ {0x03,0x0C}, //0x27, RT_CHANNEL_DOMAIN_MKK1_MKK1
-+ {0x00,0x0B}, //0x28, RT_CHANNEL_DOMAIN_WORLD_KCC1
-+ {0x00,0x05}, //0x29, RT_CHANNEL_DOMAIN_WORLD_FCC2
-+ {0x00,0x00}, //0x2A,
-+ {0x00,0x00}, //0x2B,
-+ {0x00,0x00}, //0x2C,
-+ {0x00,0x00}, //0x2D,
-+ {0x00,0x00}, //0x2E,
-+ {0x00,0x00}, //0x2F,
-+ {0x00,0x06}, //0x30, RT_CHANNEL_DOMAIN_WORLD_FCC3
-+ {0x00,0x07}, //0x31, RT_CHANNEL_DOMAIN_WORLD_FCC4
-+ {0x00,0x08}, //0x32, RT_CHANNEL_DOMAIN_WORLD_FCC5
-+ {0x00,0x09}, //0x33, RT_CHANNEL_DOMAIN_WORLD_FCC6
-+ {0x02,0x0A}, //0x34, RT_CHANNEL_DOMAIN_FCC1_FCC7
-+ {0x00,0x02}, //0x35, RT_CHANNEL_DOMAIN_WORLD_ETSI2
-+ {0x00,0x03}, //0x36, RT_CHANNEL_DOMAIN_WORLD_ETSI3
-+ {0x03,0x0D}, //0x37, RT_CHANNEL_DOMAIN_MKK1_MKK2
-+ {0x03,0x0E}, //0x38, RT_CHANNEL_DOMAIN_MKK1_MKK3
-+ {0x02,0x0F}, //0x39, RT_CHANNEL_DOMAIN_FCC1_NCC1
-+ {0x00,0x00}, //0x3A,
-+ {0x00,0x00}, //0x3B,
-+ {0x00,0x00}, //0x3C,
-+ {0x00,0x00}, //0x3D,
-+ {0x00,0x00}, //0x3E,
-+ {0x00,0x00}, //0x3F,
-+ {0x02,0x10}, //0x40, RT_CHANNEL_DOMAIN_FCC1_NCC2
-+ {0x05,0x00}, //0x41, RT_CHANNEL_DOMAIN_GLOBAL_NULL
-+ {0x01,0x12}, //0x42, RT_CHANNEL_DOMAIN_ETSI1_ETSI4
-+ {0x02,0x05}, //0x43, RT_CHANNEL_DOMAIN_FCC1_FCC2
-+ {0x02,0x11}, //0x44, RT_CHANNEL_DOMAIN_FCC1_NCC3
-+ {0x00,0x13}, //0x45, RT_CHANNEL_DOMAIN_WORLD_ETSI5
-+ {0x02,0x14}, //0x46, RT_CHANNEL_DOMAIN_FCC1_FCC8
-+ {0x00,0x15}, //0x47, RT_CHANNEL_DOMAIN_WORLD_ETSI6
-+ {0x00,0x16}, //0x48, RT_CHANNEL_DOMAIN_WORLD_ETSI7
-+ {0x00,0x17}, //0x49, RT_CHANNEL_DOMAIN_WORLD_ETSI8
-+ {0x00,0x18}, //0x50, RT_CHANNEL_DOMAIN_WORLD_ETSI9
-+ {0x00,0x19}, //0x51, RT_CHANNEL_DOMAIN_WORLD_ETSI10
-+ {0x00,0x1A}, //0x52, RT_CHANNEL_DOMAIN_WORLD_ETSI11
-+ {0x02,0x1B}, //0x53, RT_CHANNEL_DOMAIN_FCC1_NCC4
-+ {0x00,0x1C}, //0x54, RT_CHANNEL_DOMAIN_WORLD_ETSI12
-+ {0x02,0x1D}, //0x55, RT_CHANNEL_DOMAIN_FCC1_FCC9
-+ {0x00,0x1E}, //0x56, RT_CHANNEL_DOMAIN_WORLD_ETSI13
-+ {0x02,0x1F}, //0x57, RT_CHANNEL_DOMAIN_FCC1_FCC10
++ /* 0x00 ~ 0x1F , Old Define ===== */
++ {0x02, 0x20}, /* 0x00, RT_CHANNEL_DOMAIN_FCC */
++ {0x02, 0x0A}, /* 0x01, RT_CHANNEL_DOMAIN_IC */
++ {0x01, 0x01}, /* 0x02, RT_CHANNEL_DOMAIN_ETSI */
++ {0x01, 0x00}, /* 0x03, RT_CHANNEL_DOMAIN_SPAIN */
++ {0x01, 0x00}, /* 0x04, RT_CHANNEL_DOMAIN_FRANCE */
++ {0x03, 0x00}, /* 0x05, RT_CHANNEL_DOMAIN_MKK */
++ {0x03, 0x00}, /* 0x06, RT_CHANNEL_DOMAIN_MKK1 */
++ {0x01, 0x09}, /* 0x07, RT_CHANNEL_DOMAIN_ISRAEL */
++ {0x03, 0x09}, /* 0x08, RT_CHANNEL_DOMAIN_TELEC */
++ {0x03, 0x00}, /* 0x09, RT_CHANNEL_DOMAIN_GLOBAL_DOAMIN */
++ {0x00, 0x00}, /* 0x0A, RT_CHANNEL_DOMAIN_WORLD_WIDE_13 */
++ {0x02, 0x0F}, /* 0x0B, RT_CHANNEL_DOMAIN_TAIWAN */
++ {0x01, 0x08}, /* 0x0C, RT_CHANNEL_DOMAIN_CHINA */
++ {0x02, 0x06}, /* 0x0D, RT_CHANNEL_DOMAIN_SINGAPORE_INDIA_MEXICO */
++ {0x02, 0x0B}, /* 0x0E, RT_CHANNEL_DOMAIN_KOREA */
++ {0x02, 0x09}, /* 0x0F, RT_CHANNEL_DOMAIN_TURKEY */
++ {0x01, 0x01}, /* 0x10, RT_CHANNEL_DOMAIN_JAPAN */
++ {0x02, 0x05}, /* 0x11, RT_CHANNEL_DOMAIN_FCC_NO_DFS */
++ {0x01, 0x21}, /* 0x12, RT_CHANNEL_DOMAIN_JAPAN_NO_DFS */
++ {0x00, 0x04}, /* 0x13, RT_CHANNEL_DOMAIN_WORLD_WIDE_5G */
++ {0x02, 0x10}, /* 0x14, RT_CHANNEL_DOMAIN_TAIWAN_NO_DFS */
++ {0x00, 0x21}, /* 0x15, RT_CHANNEL_DOMAIN_ETSI_NO_DFS */
++ {0x00, 0x22}, /* 0x16, RT_CHANNEL_DOMAIN_KOREA_NO_DFS */
++ {0x03, 0x21}, /* 0x17, RT_CHANNEL_DOMAIN_JAPAN_NO_DFS */
++ {0x06, 0x08}, /* 0x18, RT_CHANNEL_DOMAIN_PAKISTAN_NO_DFS */
++ {0x02, 0x08}, /* 0x19, RT_CHANNEL_DOMAIN_TAIWAN2_NO_DFS */
++ {0x00, 0x00}, /* 0x1A, */
++ {0x00, 0x00}, /* 0x1B, */
++ {0x00, 0x00}, /* 0x1C, */
++ {0x00, 0x00}, /* 0x1D, */
++ {0x00, 0x00}, /* 0x1E, */
++ {0x06, 0x04}, /* 0x1F, RT_CHANNEL_DOMAIN_WORLD_WIDE_ONLY_5G */
++ /* 0x20 ~ 0x7F , New Define ===== */
++ {0x00, 0x00}, /* 0x20, RT_CHANNEL_DOMAIN_WORLD_NULL */
++ {0x01, 0x00}, /* 0x21, RT_CHANNEL_DOMAIN_ETSI1_NULL */
++ {0x02, 0x00}, /* 0x22, RT_CHANNEL_DOMAIN_FCC1_NULL */
++ {0x03, 0x00}, /* 0x23, RT_CHANNEL_DOMAIN_MKK1_NULL */
++ {0x04, 0x00}, /* 0x24, RT_CHANNEL_DOMAIN_ETSI2_NULL */
++ {0x02, 0x04}, /* 0x25, RT_CHANNEL_DOMAIN_FCC1_FCC1 */
++ {0x00, 0x01}, /* 0x26, RT_CHANNEL_DOMAIN_WORLD_ETSI1 */
++ {0x03, 0x0C}, /* 0x27, RT_CHANNEL_DOMAIN_MKK1_MKK1 */
++ {0x00, 0x0B}, /* 0x28, RT_CHANNEL_DOMAIN_WORLD_KCC1 */
++ {0x00, 0x05}, /* 0x29, RT_CHANNEL_DOMAIN_WORLD_FCC2 */
++ {0x00, 0x00}, /* 0x2A, */
++ {0x00, 0x00}, /* 0x2B, */
++ {0x00, 0x00}, /* 0x2C, */
++ {0x00, 0x00}, /* 0x2D, */
++ {0x00, 0x00}, /* 0x2E, */
++ {0x00, 0x00}, /* 0x2F, */
++ {0x00, 0x06}, /* 0x30, RT_CHANNEL_DOMAIN_WORLD_FCC3 */
++ {0x00, 0x07}, /* 0x31, RT_CHANNEL_DOMAIN_WORLD_FCC4 */
++ {0x00, 0x08}, /* 0x32, RT_CHANNEL_DOMAIN_WORLD_FCC5 */
++ {0x00, 0x09}, /* 0x33, RT_CHANNEL_DOMAIN_WORLD_FCC6 */
++ {0x02, 0x0A}, /* 0x34, RT_CHANNEL_DOMAIN_FCC1_FCC7 */
++ {0x00, 0x02}, /* 0x35, RT_CHANNEL_DOMAIN_WORLD_ETSI2 */
++ {0x00, 0x03}, /* 0x36, RT_CHANNEL_DOMAIN_WORLD_ETSI3 */
++ {0x03, 0x0D}, /* 0x37, RT_CHANNEL_DOMAIN_MKK1_MKK2 */
++ {0x03, 0x0E}, /* 0x38, RT_CHANNEL_DOMAIN_MKK1_MKK3 */
++ {0x02, 0x0F}, /* 0x39, RT_CHANNEL_DOMAIN_FCC1_NCC1 */
++ {0x00, 0x00}, /* 0x3A, */
++ {0x00, 0x00}, /* 0x3B, */
++ {0x00, 0x00}, /* 0x3C, */
++ {0x00, 0x00}, /* 0x3D, */
++ {0x00, 0x00}, /* 0x3E, */
++ {0x00, 0x00}, /* 0x3F, */
++ {0x02, 0x10}, /* 0x40, RT_CHANNEL_DOMAIN_FCC1_NCC2 */
++ {0x05, 0x00}, /* 0x41, RT_CHANNEL_DOMAIN_GLOBAL_NULL */
++ {0x01, 0x12}, /* 0x42, RT_CHANNEL_DOMAIN_ETSI1_ETSI4 */
++ {0x02, 0x05}, /* 0x43, RT_CHANNEL_DOMAIN_FCC1_FCC2 */
++ {0x02, 0x11}, /* 0x44, RT_CHANNEL_DOMAIN_FCC1_NCC3 */
++ {0x00, 0x13}, /* 0x45, RT_CHANNEL_DOMAIN_WORLD_ETSI5 */
++ {0x02, 0x14}, /* 0x46, RT_CHANNEL_DOMAIN_FCC1_FCC8 */
++ {0x00, 0x15}, /* 0x47, RT_CHANNEL_DOMAIN_WORLD_ETSI6 */
++ {0x00, 0x16}, /* 0x48, RT_CHANNEL_DOMAIN_WORLD_ETSI7 */
++ {0x00, 0x17}, /* 0x49, RT_CHANNEL_DOMAIN_WORLD_ETSI8 */
++ {0x00, 0x18}, /* 0x50, RT_CHANNEL_DOMAIN_WORLD_ETSI9 */
++ {0x00, 0x19}, /* 0x51, RT_CHANNEL_DOMAIN_WORLD_ETSI10 */
++ {0x00, 0x1A}, /* 0x52, RT_CHANNEL_DOMAIN_WORLD_ETSI11 */
++ {0x02, 0x1B}, /* 0x53, RT_CHANNEL_DOMAIN_FCC1_NCC4 */
++ {0x00, 0x1C}, /* 0x54, RT_CHANNEL_DOMAIN_WORLD_ETSI12 */
++ {0x02, 0x1D}, /* 0x55, RT_CHANNEL_DOMAIN_FCC1_FCC9 */
++ {0x00, 0x1E}, /* 0x56, RT_CHANNEL_DOMAIN_WORLD_ETSI13 */
++ {0x02, 0x1F}, /* 0x57, RT_CHANNEL_DOMAIN_FCC1_FCC10 */
+};
+
-+static RT_CHANNEL_PLAN_MAP RTW_CHANNEL_PLAN_MAP_REALTEK_DEFINE = {0x03,0x02}; //use the conbination for max channel numbers
++static RT_CHANNEL_PLAN_MAP RTW_CHANNEL_PLAN_MAP_REALTEK_DEFINE = {0x03, 0x02}; /* use the conbination for max channel numbers */
+
+/*
+ * Search the @param ch in given @param ch_set
+ * @ch_set: the given channel set
+ * @ch: the given channel number
-+ *
++ *
+ * return the index of channel_num in channel_set, -1 if not found
+ */
+int rtw_ch_set_search_ch(RT_CHANNEL_INFO *ch_set, const u32 ch)
+{
+ int i;
-+ for(i=0;ch_set[i].ChannelNum!=0;i++){
-+ if(ch == ch_set[i].ChannelNum)
++ for (i = 0;ch_set[i].ChannelNum!= 0;i++) {
++ if (ch == ch_set[i].ChannelNum)
+ break;
+ }
-+
-+ if(i >= ch_set[i].ChannelNum)
++
++ if (i >= ch_set[i].ChannelNum)
+ return -1;
+ return i;
+}
@@ -16783,10 +13794,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ * Check the @param ch is fit with setband setting of @param adapter
+ * @adapter: the given adapter
+ * @ch: the given channel number
-+ *
++ *
+ * return true when check valid, false not valid
+ */
-+bool rtw_mlme_band_check(_adapter *adapter, const u32 ch)
++bool rtw_mlme_band_check(struct adapter *adapter, const u32 ch)
+{
+ if (adapter->setband == GHZ24_50 /* 2.4G and 5G */
+ || (adapter->setband == GHZ_24 && ch < 35) /* 2.4G only */
@@ -16803,24 +13814,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+*****************************************************************************/
+
-+int init_hw_mlme_ext(_adapter *padapter)
++int init_hw_mlme_ext(struct adapter *padapter)
+{
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+
-+ //set_opmode_cmd(padapter, infra_client_with_mlme);//removed
-+
+ set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
-+
+ return _SUCCESS;
+}
+
-+void init_mlme_default_rate_set(_adapter* padapter)
++void init_mlme_default_rate_set(struct adapter *padapter)
+{
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+
-+ unsigned char mixed_datarate[NumRates] = {_1M_RATE_, _2M_RATE_, _5M_RATE_, _11M_RATE_, _6M_RATE_,_9M_RATE_, _12M_RATE_, _18M_RATE_, _24M_RATE_, _36M_RATE_, _48M_RATE_, _54M_RATE_, 0xff};
-+ unsigned char mixed_basicrate[NumRates] ={_1M_RATE_, _2M_RATE_, _5M_RATE_, _11M_RATE_, _6M_RATE_, _12M_RATE_, _24M_RATE_, 0xff,};
-+ unsigned char supported_mcs_set[16] = {0xff, 0xff, 0x00, 0x00, 0x01, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
++ unsigned char mixed_datarate[NumRates] = {_1M_RATE_, _2M_RATE_, _5M_RATE_, _11M_RATE_, _6M_RATE_, _9M_RATE_, _12M_RATE_, _18M_RATE_, _24M_RATE_, _36M_RATE_, _48M_RATE_, _54M_RATE_, 0xff};
++ unsigned char mixed_basicrate[NumRates] ={_1M_RATE_, _2M_RATE_, _5M_RATE_, _11M_RATE_, _6M_RATE_, _12M_RATE_, _24M_RATE_, 0xff,};
++ unsigned char supported_mcs_set[16] = {0xff, 0xff, 0x00, 0x00, 0x01, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
+
+ memcpy(pmlmeext->datarate, mixed_datarate, NumRates);
+ memcpy(pmlmeext->basicrate, mixed_basicrate, NumRates);
@@ -16828,29 +13836,27 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ memcpy(pmlmeext->default_supported_mcs_set, supported_mcs_set, sizeof(pmlmeext->default_supported_mcs_set));
+}
+
-+static void init_mlme_ext_priv_value(_adapter* padapter)
++static void init_mlme_ext_priv_value(struct adapter *padapter)
+{
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
+ atomic_set(&pmlmeext->event_seq, 0);
-+ pmlmeext->mgnt_seq = 0;//reset to zero when disconnect at client mode
-+#ifdef CONFIG_IEEE80211W
++ pmlmeext->mgnt_seq = 0;/* reset to zero when disconnect at client mode */
+ pmlmeext->sa_query_seq = 0;
-+ pmlmeext->mgnt_80211w_IPN=0;
-+ pmlmeext->mgnt_80211w_IPN_rx=0;
-+#endif //CONFIG_IEEE80211W
++ pmlmeext->mgnt_80211w_IPN = 0;
++ pmlmeext->mgnt_80211w_IPN_rx = 0;
+ pmlmeext->cur_channel = padapter->registrypriv.channel;
+ pmlmeext->cur_bwmode = CHANNEL_WIDTH_20;
+ pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
-+
++
+ pmlmeext->retry = 0;
+
+ pmlmeext->cur_wireless_mode = padapter->registrypriv.wireless_mode;
+
+ init_mlme_default_rate_set(padapter);
+
-+ if(pmlmeext->cur_channel > 14)
++ if (pmlmeext->cur_channel > 14)
+ pmlmeext->tx_rate = IEEE80211_OFDM_RATE_6MB;
+ else
+ pmlmeext->tx_rate = IEEE80211_CCK_RATE_1MB;
@@ -16897,7 +13903,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return 0;
+}
+
-+static void init_channel_list(_adapter *padapter, RT_CHANNEL_INFO *channel_set,
++static void init_channel_list(struct adapter *padapter, RT_CHANNEL_INFO *channel_set,
+ u8 chanset_size,
+ struct p2p_channels *channel_list) {
+
@@ -16949,57 +13955,48 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+}
+
-+static u8 init_channel_set(_adapter* padapter, u8 ChannelPlan, RT_CHANNEL_INFO *channel_set)
++static u8 init_channel_set(struct adapter *padapter, u8 ChannelPlan, RT_CHANNEL_INFO *channel_set)
+{
-+ u8 index,chanset_size = 0;
-+ u8 b5GBand = false, b2_4GBand = false;
-+ u8 Index2G = 0, Index5G=0;
++ u8 index, chanset_size = 0;
++ u8 b5GBand = false, b2_4GBand = false;
++ u8 Index2G = 0, Index5G = 0;
+
+ memset(channel_set, 0, sizeof(RT_CHANNEL_INFO)*MAX_CHANNEL_NUM);
+
-+ if(ChannelPlan >= RT_CHANNEL_DOMAIN_MAX && ChannelPlan != RT_CHANNEL_DOMAIN_REALTEK_DEFINE)
++ if (ChannelPlan >= RT_CHANNEL_DOMAIN_MAX && ChannelPlan != RT_CHANNEL_DOMAIN_REALTEK_DEFINE)
+ {
-+ DBG_871X("ChannelPlan ID %x error !!!!!\n",ChannelPlan);
++ DBG_871X("ChannelPlan ID %x error !!!!!\n", ChannelPlan);
+ return chanset_size;
+ }
+
-+ if(IsSupported24G(padapter->registrypriv.wireless_mode))
++ if (IsSupported24G(padapter->registrypriv.wireless_mode))
+ {
+ b2_4GBand = true;
-+ if(RT_CHANNEL_DOMAIN_REALTEK_DEFINE == ChannelPlan)
++ if (RT_CHANNEL_DOMAIN_REALTEK_DEFINE == ChannelPlan)
+ Index2G = RTW_CHANNEL_PLAN_MAP_REALTEK_DEFINE.Index2G;
+ else
+ Index2G = RTW_ChannelPlanMap[ChannelPlan].Index2G;
+ }
+
-+ if(IsSupported5G(padapter->registrypriv.wireless_mode))
++ if (b2_4GBand)
+ {
-+ b5GBand = true;
-+ if(RT_CHANNEL_DOMAIN_REALTEK_DEFINE == ChannelPlan)
-+ Index5G = RTW_CHANNEL_PLAN_MAP_REALTEK_DEFINE.Index5G;
-+ else
-+ Index5G = RTW_ChannelPlanMap[ChannelPlan].Index5G;
-+ }
-+
-+ if(b2_4GBand)
-+ {
-+ for(index=0;index= 1 && channel_set[chanset_size].ChannelNum <= 11)
++ if (channel_set[chanset_size].ChannelNum >= 1 && channel_set[chanset_size].ChannelNum <= 11)
+ channel_set[chanset_size].ScanType = SCAN_ACTIVE;
-+ else if((channel_set[chanset_size].ChannelNum >= 12 && channel_set[chanset_size].ChannelNum <= 14))
-+ channel_set[chanset_size].ScanType = SCAN_PASSIVE;
++ else if ((channel_set[chanset_size].ChannelNum >= 12 && channel_set[chanset_size].ChannelNum <= 14))
++ channel_set[chanset_size].ScanType = SCAN_PASSIVE;
+ }
-+ else if(RT_CHANNEL_DOMAIN_WORLD_WIDE_13 == ChannelPlan ||
++ else if (RT_CHANNEL_DOMAIN_WORLD_WIDE_13 == ChannelPlan ||
+ RT_CHANNEL_DOMAIN_WORLD_WIDE_5G == ChannelPlan ||
-+ RT_CHANNEL_DOMAIN_2G_WORLD == Index2G)// channel 12~13, passive scan
++ RT_CHANNEL_DOMAIN_2G_WORLD == Index2G)/* channel 12~13, passive scan */
+ {
-+ if(channel_set[chanset_size].ChannelNum <= 11)
++ if (channel_set[chanset_size].ChannelNum <= 11)
+ channel_set[chanset_size].ScanType = SCAN_ACTIVE;
+ else
+ channel_set[chanset_size].ScanType = SCAN_PASSIVE;
@@ -17013,60 +14010,58 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+ }
+
-+ if(b5GBand)
++ if (b5GBand)
+ {
-+ for(index=0;index= 149 ) {
++ if (RTW_ChannelPlan5G[Index5G].Channel[index] <= 48
++ || RTW_ChannelPlan5G[Index5G].Channel[index] >= 149) {
+ channel_set[chanset_size].ChannelNum = RTW_ChannelPlan5G[Index5G].Channel[index];
-+ if(RT_CHANNEL_DOMAIN_WORLD_WIDE_5G == ChannelPlan)//passive scan for all 5G channels
++ if (RT_CHANNEL_DOMAIN_WORLD_WIDE_5G == ChannelPlan)/* passive scan for all 5G channels */
+ channel_set[chanset_size].ScanType = SCAN_PASSIVE;
+ else
+ channel_set[chanset_size].ScanType = SCAN_ACTIVE;
-+ DBG_871X("%s(): channel_set[%d].ChannelNum = %d\n", __FUNCTION__, chanset_size, channel_set[chanset_size].ChannelNum);
++ DBG_871X("%s(): channel_set[%d].ChannelNum = %d\n", __func__, chanset_size, channel_set[chanset_size].ChannelNum);
+ chanset_size++;
+ }
+ }
+ }
+
-+ DBG_871X("%s ChannelPlan ID %x Chan num:%d \n",__FUNCTION__,ChannelPlan,chanset_size);
++ DBG_871X("%s ChannelPlan ID %x Chan num:%d \n", __func__, ChannelPlan, chanset_size);
+ return chanset_size;
+}
+
-+int init_mlme_ext_priv(_adapter* padapter)
++int init_mlme_ext_priv(struct adapter *padapter)
+{
+ int res = _SUCCESS;
+ struct registry_priv* pregistrypriv = &padapter->registrypriv;
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
-+ // We don't need to memset padapter->XXX to zero, because adapter is allocated by rtw_zvmalloc().
-+ //memset((u8 *)pmlmeext, 0, sizeof(struct mlme_ext_priv));
++ /* We don't need to memset padapter->XXX to zero, because adapter is allocated by vzalloc(). */
++ /* memset((u8 *)pmlmeext, 0, sizeof(struct mlme_ext_priv)); */
+
+ pmlmeext->padapter = padapter;
+
-+ //fill_fwpriv(padapter, &(pmlmeext->fwpriv));
++ /* fill_fwpriv(padapter, &(pmlmeext->fwpriv)); */
+
+ init_mlme_ext_priv_value(padapter);
+ pmlmeinfo->bAcceptAddbaReq = pregistrypriv->bAcceptAddbaReq;
-+
++
+ init_mlme_ext_timer(padapter);
+
-+#ifdef CONFIG_AP_MODE
-+ init_mlme_ap_info(padapter);
-+#endif
++ init_mlme_ap_info(padapter);
+
-+ pmlmeext->max_chan_nums = init_channel_set(padapter, pmlmepriv->ChannelPlan,pmlmeext->channel_set);
++ pmlmeext->max_chan_nums = init_channel_set(padapter, pmlmepriv->ChannelPlan, pmlmeext->channel_set);
+ init_channel_list(padapter, pmlmeext->channel_set, pmlmeext->max_chan_nums, &pmlmeext->channel_list);
+ pmlmeext->last_scan_time = 0;
+ pmlmeext->chan_scan_time = SURVEY_TO;
+ pmlmeext->mlmeext_init = true;
+ pmlmeext->active_keep_alive_check = true;
+
-+#ifdef DBG_FIXED_CHAN
-+ pmlmeext->fixed_chan = 0xFF;
++#ifdef DBG_FIXED_CHAN
++ pmlmeext->fixed_chan = 0xFF;
+#endif
+
+ return res;
@@ -17075,46 +14070,44 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+void free_mlme_ext_priv (struct mlme_ext_priv *pmlmeext)
+{
-+ _adapter *padapter = pmlmeext->padapter;
++ struct adapter *padapter = pmlmeext->padapter;
+
+ if (!padapter)
+ return;
+
+ if (padapter->bDriverStopped == true)
+ {
-+ _cancel_timer_ex(&pmlmeext->survey_timer);
-+ _cancel_timer_ex(&pmlmeext->link_timer);
-+ //_cancel_timer_ex(&pmlmeext->ADDBA_timer);
++ del_timer_sync(&pmlmeext->survey_timer);
++ del_timer_sync(&pmlmeext->link_timer);
++ /* del_timer_sync(&pmlmeext->ADDBA_timer); */
+ }
+}
+
-+static void _mgt_dispatcher(_adapter *padapter, struct mlme_handler *ptable, union recv_frame *precv_frame)
++static void _mgt_dispatcher(struct adapter *padapter, struct mlme_handler *ptable, union recv_frame *precv_frame)
+{
-+ u8 bc_addr[ETH_ALEN] = {0xff,0xff,0xff,0xff,0xff,0xff};
-+ u8 *pframe = precv_frame->u.hdr.rx_data;
++ u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
++ u8 *pframe = precv_frame->u.hdr.rx_data;
+
-+ if(ptable->func)
++ if (ptable->func)
+ {
-+ //receive the frames that ra(a1) is my address or ra(a1) is bc address.
++ /* receive the frames that ra(a1) is my address or ra(a1) is bc address. */
+ if (memcmp(GetAddr1Ptr(pframe), myid(&padapter->eeprompriv), ETH_ALEN) &&
-+ memcmp(GetAddr1Ptr(pframe), bc_addr, ETH_ALEN))
++ memcmp(GetAddr1Ptr(pframe), bc_addr, ETH_ALEN))
+ {
+ return;
+ }
-+
++
+ ptable->func(padapter, precv_frame);
+ }
-+
++
+}
+
-+void mgt_dispatcher(_adapter *padapter, union recv_frame *precv_frame)
++void mgt_dispatcher(struct adapter *padapter, union recv_frame *precv_frame)
+{
+ int index;
+ struct mlme_handler *ptable;
-+#ifdef CONFIG_AP_MODE
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+#endif //CONFIG_AP_MODE
-+ u8 bc_addr[ETH_ALEN] = {0xff,0xff,0xff,0xff,0xff,0xff};
++ u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
+ u8 *pframe = precv_frame->u.hdr.rx_data;
+ struct sta_info *psta = rtw_get_stainfo(&padapter->stapriv, GetAddr2Ptr(pframe));
+ struct dvobj_priv *psdpriv = padapter->dvobj;
@@ -17130,7 +14123,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return;
+ }
+
-+ //receive the frames that ra(a1) is my address or ra(a1) is bc address.
++ /* receive the frames that ra(a1) is my address or ra(a1) is bc address. */
+ if (memcmp(GetAddr1Ptr(pframe), myid(&padapter->eeprompriv), ETH_ALEN) &&
+ memcmp(GetAddr1Ptr(pframe), bc_addr, ETH_ALEN))
+ {
@@ -17143,7 +14136,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ if (index >= (sizeof(mlme_sta_tbl) /sizeof(struct mlme_handler)))
+ {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("Currently we do not support reserved sub-fr-type=%d\n", index));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("Currently we do not support reserved sub-fr-type =%d\n", index));
+ return;
+ }
+ ptable += index;
@@ -17163,41 +14156,32 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ psta->RxMgmtFrameSeqNum = precv_frame->u.hdr.attrib.seq_num;
+ }
+
-+#ifdef CONFIG_AP_MODE
-+ switch (GetFrameSubType(pframe))
++ switch (GetFrameSubType(pframe))
+ {
+ case WIFI_AUTH:
-+ if(check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
++ if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
+ ptable->func = &OnAuth;
+ else
+ ptable->func = &OnAuthClient;
-+ //pass through
++ /* pass through */
+ case WIFI_ASSOCREQ:
+ case WIFI_REASSOCREQ:
-+ _mgt_dispatcher(padapter, ptable, precv_frame);
++ _mgt_dispatcher(padapter, ptable, precv_frame);
+ break;
+ case WIFI_PROBEREQ:
+ _mgt_dispatcher(padapter, ptable, precv_frame);
+ break;
-+ case WIFI_BEACON:
++ case WIFI_BEACON:
+ _mgt_dispatcher(padapter, ptable, precv_frame);
+ break;
+ case WIFI_ACTION:
-+ //if(check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
-+ _mgt_dispatcher(padapter, ptable, precv_frame);
++ /* if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true) */
++ _mgt_dispatcher(padapter, ptable, precv_frame);
+ break;
+ default:
-+ _mgt_dispatcher(padapter, ptable, precv_frame);
-+ if(check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
-+ rtw_hostapd_mlme_rx(padapter, precv_frame);
++ _mgt_dispatcher(padapter, ptable, precv_frame);
+ break;
+ }
-+#else
-+
-+ _mgt_dispatcher(padapter, ptable, precv_frame);
-+
-+#endif
-+
+}
+
+/****************************************************************************
@@ -17206,94 +14190,93 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+*****************************************************************************/
+
-+unsigned int OnProbeReq(_adapter *padapter, union recv_frame *precv_frame)
++unsigned int OnProbeReq(struct adapter *padapter, union recv_frame *precv_frame)
+{
+ unsigned int ielen;
-+ unsigned char *p;
++ unsigned char *p;
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *cur = &(pmlmeinfo->network);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *cur = &(pmlmeinfo->network);
+ u8 *pframe = precv_frame->u.hdr.rx_data;
+ uint len = precv_frame->u.hdr.len;
+ u8 is_valid_p2p_probereq = false;
+
-+ if(check_fwstate(pmlmepriv, WIFI_STATION_STATE))
++ if (check_fwstate(pmlmepriv, WIFI_STATION_STATE))
+ {
+ return _SUCCESS;
+ }
+
-+ if(check_fwstate(pmlmepriv, _FW_LINKED) == false &&
-+ check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE|WIFI_AP_STATE)==false)
++ if (check_fwstate(pmlmepriv, _FW_LINKED) == false &&
++ check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE|WIFI_AP_STATE) ==false)
+ {
+ return _SUCCESS;
+ }
+
+
-+ //DBG_871X("+OnProbeReq\n");
++ /* DBG_871X("+OnProbeReq\n"); */
+
+#ifdef CONFIG_AUTO_AP_MODE
-+ if(check_fwstate(pmlmepriv, _FW_LINKED) == true &&
++ if (check_fwstate(pmlmepriv, _FW_LINKED) == true &&
+ pmlmepriv->cur_network.join_res == true)
+ {
-+ _irqL irqL;
-+ struct sta_info *psta;
++ struct sta_info *psta;
+ u8 *mac_addr, *peer_addr;
+ struct sta_priv *pstapriv = &padapter->stapriv;
-+ u8 RC_OUI[4]={0x00,0xE0,0x4C,0x0A};
-+ //EID[1] + EID_LEN[1] + RC_OUI[4] + MAC[6] + PairingID[2] + ChannelNum[2]
++ u8 RC_OUI[4]={0x00, 0xE0, 0x4C, 0x0A};
++ /* EID[1] + EID_LEN[1] + RC_OUI[4] + MAC[6] + PairingID[2] + ChannelNum[2] */
+
+ p = rtw_get_ie(pframe + WLAN_HDR_A3_LEN + _PROBEREQ_IE_OFFSET_, _VENDOR_SPECIFIC_IE_, (int *)&ielen,
+ len - WLAN_HDR_A3_LEN - _PROBEREQ_IE_OFFSET_);
+
-+ if(!p || ielen !=14)
++ if (!p || ielen != 14)
+ goto _non_rc_device;
+
-+ if(memcmp(p+2, RC_OUI, sizeof(RC_OUI)))
++ if (memcmp(p+2, RC_OUI, sizeof(RC_OUI)))
+ goto _non_rc_device;
+
-+ if(memcmp(p+6, get_sa(pframe), ETH_ALEN))
++ if (memcmp(p+6, get_sa(pframe), ETH_ALEN))
+ {
-+ DBG_871X("%s, do rc pairing ("MAC_FMT"), but mac addr mismatch!("MAC_FMT")\n", __FUNCTION__,
++ DBG_871X("%s, do rc pairing ("MAC_FMT"), but mac addr mismatch!("MAC_FMT")\n", __func__,
+ MAC_ARG(get_sa(pframe)), MAC_ARG(p+6));
+
+ goto _non_rc_device;
+ }
+
-+ DBG_871X("%s, got the pairing device("MAC_FMT")\n", __FUNCTION__, MAC_ARG(get_sa(pframe)));
++ DBG_871X("%s, got the pairing device("MAC_FMT")\n", __func__, MAC_ARG(get_sa(pframe)));
+
-+ //new a station
++ /* new a station */
+ psta = rtw_get_stainfo(pstapriv, get_sa(pframe));
+ if (psta == NULL)
+ {
-+ // allocate a new one
-+ DBG_871X("going to alloc stainfo for rc="MAC_FMT"\n", MAC_ARG(get_sa(pframe)));
++ /* allocate a new one */
++ DBG_871X("going to alloc stainfo for rc ="MAC_FMT"\n", MAC_ARG(get_sa(pframe)));
+ psta = rtw_alloc_stainfo(pstapriv, get_sa(pframe));
+ if (psta == NULL)
+ {
-+ //TODO:
++ /* TODO: */
+ DBG_871X(" Exceed the upper limit of supported clients...\n");
+ return _SUCCESS;
+ }
+
-+ _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ if (rtw_is_list_empty(&psta->asoc_list))
++ spin_lock_bh(&pstapriv->asoc_list_lock);
++ if (list_empty(&psta->asoc_list))
+ {
+ psta->expire_to = pstapriv->expire_to;
-+ rtw_list_insert_tail(&psta->asoc_list, &pstapriv->asoc_list);
++ list_add_tail(&psta->asoc_list, &pstapriv->asoc_list);
+ pstapriv->asoc_list_cnt++;
+ }
-+ _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
++ spin_unlock_bh(&pstapriv->asoc_list_lock);
+
-+ //generate pairing ID
++ /* generate pairing ID */
+ mac_addr = myid(&(padapter->eeprompriv));
+ peer_addr = psta->hwaddr;
+ psta->pid = (u16)(((mac_addr[4]<<8) + mac_addr[5]) + ((peer_addr[4]<<8) + peer_addr[5]));
+
-+ //update peer stainfo
++ /* update peer stainfo */
+ psta->isrc = true;
-+ //psta->aid = 0;
-+ //psta->mac_id = 2;
++ /* psta->aid = 0; */
++ /* psta->mac_id = 2; */
+
+ /* get a unique AID */
+ if (psta->aid > 0) {
@@ -17312,7 +14295,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ DBG_871X("allocate new AID = (%d)\n", psta->aid);
+ }
+ }
-+
++
+ psta->qos_option = 1;
+ psta->bw_mode = CHANNEL_WIDTH_20;
+ psta->ieee8021x_blocked = false;
@@ -17321,16 +14304,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ psta->htpriv.sgi_20m = false;
+ psta->htpriv.sgi_40m = false;
+ psta->htpriv.ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
-+ psta->htpriv.agg_enable_bitmap = 0x0;//reset
-+ psta->htpriv.candidate_tid_bitmap = 0x0;//reset
++ psta->htpriv.agg_enable_bitmap = 0x0;/* reset */
++ psta->htpriv.candidate_tid_bitmap = 0x0;/* reset */
+
+ rtw_hal_set_odm_var(padapter, HAL_ODM_STA_INFO, psta, true);
+
+ memset((void*)&psta->sta_stats, 0, sizeof(struct stainfo_stats));
+
-+ _enter_critical_bh(&psta->lock, &irqL);
++ spin_lock_bh(&psta->lock);
+ psta->state |= _FW_LINKED;
-+ _exit_critical_bh(&psta->lock, &irqL);
++ spin_unlock_bh(&psta->lock);
+
+ report_add_sta_event(padapter, psta->hwaddr, psta->aid);
+
@@ -17346,21 +14329,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ return _SUCCESS;
+
-+#endif //CONFIG_AUTO_AP_MODE
-+
++#endif /* CONFIG_AUTO_AP_MODE */
++
+ p = rtw_get_ie(pframe + WLAN_HDR_A3_LEN + _PROBEREQ_IE_OFFSET_, _SSID_IE_, (int *)&ielen,
+ len - WLAN_HDR_A3_LEN - _PROBEREQ_IE_OFFSET_);
+
+
-+ //check (wildcard) SSID
++ /* check (wildcard) SSID */
+ if (p != NULL)
+ {
-+ if(is_valid_p2p_probereq == true)
++ if (is_valid_p2p_probereq == true)
+ {
+ goto _issue_probersp;
+ }
+
-+ if ( (ielen != 0 && false ==!memcmp((void *)(p+2), (void *)cur->Ssid.Ssid, cur->Ssid.SsidLength))
++ if ((ielen != 0 && false ==!memcmp((void *)(p+2), (void *)cur->Ssid.Ssid, cur->Ssid.SsidLength))
+ || (ielen == 0 && pmlmeinfo->hidden_ssid_mode)
+ )
+ {
@@ -17368,11 +14351,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+_issue_probersp:
-+ if(((check_fwstate(pmlmepriv, _FW_LINKED) == true &&
++ if (((check_fwstate(pmlmepriv, _FW_LINKED) == true &&
+ pmlmepriv->cur_network.join_res == true)) || check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE))
+ {
-+ //DBG_871X("+issue_probersp during ap mode\n");
-+ issue_probersp(padapter, get_sa(pframe), is_valid_p2p_probereq);
++ /* DBG_871X("+issue_probersp during ap mode\n"); */
++ issue_probersp(padapter, get_sa(pframe), is_valid_p2p_probereq);
+ }
+
+ }
@@ -17381,47 +14364,43 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+}
+
-+unsigned int OnProbeRsp(_adapter *padapter, union recv_frame *precv_frame)
++unsigned int OnProbeRsp(struct adapter *padapter, union recv_frame *precv_frame)
+{
-+ struct sta_info *psta;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ struct sta_priv *pstapriv = &padapter->stapriv;
-+ u8 *pframe = precv_frame->u.hdr.rx_data;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+
+ if (pmlmeext->sitesurvey_res.state == SCAN_PROCESS)
+ {
-+ report_survey_event(padapter, precv_frame);
++ report_survey_event(padapter, precv_frame);
+ return _SUCCESS;
+ }
+
+ return _SUCCESS;
-+
++
+}
+
-+unsigned int OnBeacon(_adapter *padapter, union recv_frame *precv_frame)
++unsigned int OnBeacon(struct adapter *padapter, union recv_frame *precv_frame)
+{
+ int cam_idx;
-+ struct sta_info *psta;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct sta_info *psta;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct sta_priv *pstapriv = &padapter->stapriv;
++ struct sta_priv *pstapriv = &padapter->stapriv;
+ u8 *pframe = precv_frame->u.hdr.rx_data;
+ uint len = precv_frame->u.hdr.len;
-+ WLAN_BSSID_EX *pbss;
++ struct wlan_bssid_ex *pbss;
+ int ret = _SUCCESS;
+ u8 *p = NULL;
+ u32 ielen = 0;
+
-+ p = rtw_get_ie(pframe + sizeof(struct rtw_ieee80211_hdr_3addr) + _BEACON_IE_OFFSET_, _EXT_SUPPORTEDRATES_IE_, &ielen, precv_frame->u.hdr.len -sizeof(struct rtw_ieee80211_hdr_3addr) - _BEACON_IE_OFFSET_);
++ p = rtw_get_ie(pframe + sizeof(struct ieee80211_hdr_3addr) + _BEACON_IE_OFFSET_, _EXT_SUPPORTEDRATES_IE_, &ielen, precv_frame->u.hdr.len -sizeof(struct ieee80211_hdr_3addr) - _BEACON_IE_OFFSET_);
+ if ((p != NULL) && (ielen > 0))
+ {
+ if ((*(p + 1 + ielen) == 0x2D) && (*(p + 2 + ielen) != 0x2D))
+ {
-+ /* Invalid value 0x2D is detected in Extended Supported Rates (ESR) IE. Try to fix the IE length to avoid failed Beacon parsing. */
-+ DBG_871X("[WIFIDBG] Error in ESR IE is detected in Beacon of BSSID:"MAC_FMT". Fix the length of ESR IE to avoid failed Beacon parsing.\n", MAC_ARG(GetAddr3Ptr(pframe)));
-+ *(p + 1) = ielen - 1;
++ /* Invalid value 0x2D is detected in Extended Supported Rates (ESR) IE. Try to fix the IE length to avoid failed Beacon parsing. */
++ DBG_871X("[WIFIDBG] Error in ESR IE is detected in Beacon of BSSID:"MAC_FMT". Fix the length of ESR IE to avoid failed Beacon parsing.\n", MAC_ARG(GetAddr3Ptr(pframe)));
++ *(p + 1) = ielen - 1;
+ }
+ }
+
@@ -17435,23 +14414,23 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ {
+ if (pmlmeinfo->state & WIFI_FW_AUTH_NULL)
+ {
-+ //we should update current network before auth, or some IE is wrong
-+ pbss = (WLAN_BSSID_EX*)rtw_malloc(sizeof(WLAN_BSSID_EX));
++ /* we should update current network before auth, or some IE is wrong */
++ pbss = (struct wlan_bssid_ex*)rtw_malloc(sizeof(struct wlan_bssid_ex));
+ if (pbss) {
+ if (collect_bss_info(padapter, precv_frame, pbss) == _SUCCESS) {
+ update_network(&(pmlmepriv->cur_network.network), pbss, padapter, true);
+ rtw_get_bcn_info(&(pmlmepriv->cur_network));
+ }
-+ rtw_mfree((u8*)pbss, sizeof(WLAN_BSSID_EX));
++ kfree((u8 *)pbss);
+ }
+
-+ //check the vendor of the assoc AP
-+ pmlmeinfo->assoc_AP_vendor = check_assoc_AP(pframe+sizeof(struct rtw_ieee80211_hdr_3addr), len-sizeof(struct rtw_ieee80211_hdr_3addr));
++ /* check the vendor of the assoc AP */
++ pmlmeinfo->assoc_AP_vendor = check_assoc_AP(pframe+sizeof(struct ieee80211_hdr_3addr), len-sizeof(struct ieee80211_hdr_3addr));
+
-+ //update TSF Value
++ /* update TSF Value */
+ update_TSF(pmlmeext, pframe, len);
+
-+ //reset for adaptive_early_32k
++ /* reset for adaptive_early_32k */
+ pmlmeext->adaptive_tsf_done = false;
+ pmlmeext->DrvBcnEarly = 0xff;
+ pmlmeext->DrvBcnTimeOut = 0xff;
@@ -17459,13 +14438,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ memset(pmlmeext->bcn_delay_cnt, 0, sizeof(pmlmeext->bcn_delay_cnt));
+ memset(pmlmeext->bcn_delay_ratio, 0, sizeof(pmlmeext->bcn_delay_ratio));
+
-+ //start auth
++ /* start auth */
+ start_clnt_auth(padapter);
+
+ return _SUCCESS;
+ }
+
-+ if(((pmlmeinfo->state&0x03) == WIFI_FW_STATION_STATE) && (pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS))
++ if (((pmlmeinfo->state&0x03) == WIFI_FW_STATION_STATE) && (pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS))
+ {
+ if ((psta = rtw_get_stainfo(pstapriv, GetAddr2Ptr(pframe))) != NULL)
+ {
@@ -17475,48 +14454,48 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ receive_disconnect(padapter, pmlmeinfo->network.MacAddress , 0);
+ return _SUCCESS;
+ }
-+ //update WMM, ERP in the beacon
-+ //todo: the timer is used instead of the number of the beacon received
++ /* update WMM, ERP in the beacon */
++ /* todo: the timer is used instead of the number of the beacon received */
+ if ((sta_rx_pkts(psta) & 0xf) == 0)
+ {
-+ //DBG_871X("update_bcn_info\n");
++ /* DBG_871X("update_bcn_info\n"); */
+ update_beacon_info(padapter, pframe, len, psta);
+ }
+
-+ adaptive_early_32k(pmlmeext, pframe, len);
++ adaptive_early_32k(pmlmeext, pframe, len);
+ }
+ }
-+ else if((pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE)
++ else if ((pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE)
+ {
+ if ((psta = rtw_get_stainfo(pstapriv, GetAddr2Ptr(pframe))) != NULL)
+ {
-+ //update WMM, ERP in the beacon
-+ //todo: the timer is used instead of the number of the beacon received
++ /* update WMM, ERP in the beacon */
++ /* todo: the timer is used instead of the number of the beacon received */
+ if ((sta_rx_pkts(psta) & 0xf) == 0)
+ {
-+ //DBG_871X("update_bcn_info\n");
++ /* DBG_871X("update_bcn_info\n"); */
+ update_beacon_info(padapter, pframe, len, psta);
+ }
+ }
+ else
+ {
-+ //allocate a new CAM entry for IBSS station
++ /* allocate a new CAM entry for IBSS station */
+ if ((cam_idx = allocate_fw_sta_entry(padapter)) == NUM_STA)
+ {
+ goto _END_ONBEACON_;
+ }
+
-+ //get supported rate
++ /* get supported rate */
+ if (update_sta_support_rate(padapter, (pframe + WLAN_HDR_A3_LEN + _BEACON_IE_OFFSET_), (len - WLAN_HDR_A3_LEN - _BEACON_IE_OFFSET_), cam_idx) == _FAIL)
+ {
+ pmlmeinfo->FW_sta_info[cam_idx].status = 0;
+ goto _END_ONBEACON_;
+ }
+
-+ //update TSF Value
-+ update_TSF(pmlmeext, pframe, len);
++ /* update TSF Value */
++ update_TSF(pmlmeext, pframe, len);
+
-+ //report sta add event
++ /* report sta add event */
+ report_add_sta_event(padapter, GetAddr2Ptr(pframe), cam_idx);
+ }
+ }
@@ -17528,25 +14507,23 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+}
+
-+unsigned int OnAuth(_adapter *padapter, union recv_frame *precv_frame)
++unsigned int OnAuth(struct adapter *padapter, union recv_frame *precv_frame)
+{
-+#ifdef CONFIG_AP_MODE
-+ _irqL irqL;
+ unsigned int auth_mode, seq, ie_len;
-+ unsigned char *sa, *p;
-+ u16 algorithm;
++ unsigned char *sa, *p;
++ u16 algorithm;
+ int status;
-+ static struct sta_info stat;
-+ struct sta_info *pstat=NULL;
++ static struct sta_info stat;
++ struct sta_info *pstat = NULL;
+ struct sta_priv *pstapriv = &padapter->stapriv;
+ struct security_priv *psecuritypriv = &padapter->securitypriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ u8 *pframe = precv_frame->u.hdr.rx_data;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ u8 *pframe = precv_frame->u.hdr.rx_data;
+ uint len = precv_frame->u.hdr.len;
-+ u8 offset = 0;
++ u8 offset = 0;
+
-+ if((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
++ if ((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
+ return _FAIL;
+
+ DBG_871X("+OnAuth\n");
@@ -17557,7 +14534,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ if (GetPrivacy(pframe))
+ {
-+ u8 *iv;
++ u8 *iv;
+ struct rx_pkt_attrib *prxattrib = &(precv_frame->u.hdr.attrib);
+
+ prxattrib->hdrlen = WLAN_HDR_A3_LEN;
@@ -17574,39 +14551,39 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ offset = 4;
+ }
+
-+ algorithm = le16_to_cpu(*(u16*)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset));
-+ seq = le16_to_cpu(*(u16*)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset + 2));
++ algorithm = le16_to_cpu(*(__le16*)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset));
++ seq = le16_to_cpu(*(__le16*)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset + 2));
+
-+ DBG_871X("auth alg=%x, seq=%X\n", algorithm, seq);
++ DBG_871X("auth alg =%x, seq =%X\n", algorithm, seq);
+
+ if (auth_mode == 2 &&
+ psecuritypriv->dot11PrivacyAlgrthm != _WEP40_ &&
+ psecuritypriv->dot11PrivacyAlgrthm != _WEP104_)
+ auth_mode = 0;
+
-+ if ((algorithm > 0 && auth_mode == 0) || // rx a shared-key auth but shared not enabled
-+ (algorithm == 0 && auth_mode == 1) ) // rx a open-system auth but shared-key is enabled
-+ {
-+ DBG_871X("auth rejected due to bad alg [alg=%d, auth_mib=%d] %02X%02X%02X%02X%02X%02X\n",
++ if ((algorithm > 0 && auth_mode == 0) || /* rx a shared-key auth but shared not enabled */
++ (algorithm == 0 && auth_mode == 1)) /* rx a open-system auth but shared-key is enabled */
++ {
++ DBG_871X("auth rejected due to bad alg [alg =%d, auth_mib =%d] %02X%02X%02X%02X%02X%02X\n",
+ algorithm, auth_mode, sa[0], sa[1], sa[2], sa[3], sa[4], sa[5]);
-+
++
+ status = _STATS_NO_SUPP_ALG_;
-+
++
+ goto auth_fail;
+ }
-+
-+ if(rtw_access_ctrl(padapter, sa) == false)
++
++ if (rtw_access_ctrl(padapter, sa) == false)
+ {
+ status = _STATS_UNABLE_HANDLE_STA_;
+ goto auth_fail;
-+ }
++ }
+
+ pstat = rtw_get_stainfo(pstapriv, sa);
+ if (pstat == NULL)
+ {
+
-+ // allocate a new one
-+ DBG_871X("going to alloc stainfo for sa="MAC_FMT"\n", MAC_ARG(sa));
++ /* allocate a new one */
++ DBG_871X("going to alloc stainfo for sa ="MAC_FMT"\n", MAC_ARG(sa));
+ pstat = rtw_alloc_stainfo(pstapriv, sa);
+ if (pstat == NULL)
+ {
@@ -17614,41 +14591,41 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ status = _STATS_UNABLE_HANDLE_STA_;
+ goto auth_fail;
+ }
-+
++
+ pstat->state = WIFI_FW_AUTH_NULL;
+ pstat->auth_seq = 0;
-+
-+ //pstat->flags = 0;
-+ //pstat->capability = 0;
++
++ /* pstat->flags = 0; */
++ /* pstat->capability = 0; */
+ }
+ else
-+ {
++ {
+
-+ _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ if(rtw_is_list_empty(&pstat->asoc_list)==false)
-+ {
-+ rtw_list_delete(&pstat->asoc_list);
++ spin_lock_bh(&pstapriv->asoc_list_lock);
++ if (list_empty(&pstat->asoc_list) ==false)
++ {
++ list_del_init(&pstat->asoc_list);
+ pstapriv->asoc_list_cnt--;
+ if (pstat->expire_to > 0)
+ {
-+ //TODO: STA re_auth within expire_to
++ /* TODO: STA re_auth within expire_to */
+ }
+ }
-+ _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+
-+ if (seq==1) {
-+ //TODO: STA re_auth and auth timeout
++ spin_unlock_bh(&pstapriv->asoc_list_lock);
++
++ if (seq == 1) {
++ /* TODO: STA re_auth and auth timeout */
+ }
+ }
+
-+ _enter_critical_bh(&pstapriv->auth_list_lock, &irqL);
-+ if (rtw_is_list_empty(&pstat->auth_list))
-+ {
++ spin_lock_bh(&pstapriv->auth_list_lock);
++ if (list_empty(&pstat->auth_list))
++ {
+
-+ rtw_list_insert_tail(&pstat->auth_list, &pstapriv->auth_list);
++ list_add_tail(&pstat->auth_list, &pstapriv->auth_list);
+ pstapriv->auth_list_cnt++;
-+ }
-+ _exit_critical_bh(&pstapriv->auth_list_lock, &irqL);
++ }
++ spin_unlock_bh(&pstapriv->auth_list_lock);
+
+ if (pstat->auth_seq == 0)
+ pstat->expire_to = pstapriv->auth_to;
@@ -17656,13 +14633,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ if ((pstat->auth_seq + 1) != seq)
+ {
-+ DBG_871X("(1)auth rejected because out of seq [rx_seq=%d, exp_seq=%d]!\n",
++ DBG_871X("(1)auth rejected because out of seq [rx_seq =%d, exp_seq =%d]!\n",
+ seq, pstat->auth_seq+1);
+ status = _STATS_OUT_OF_AUTH_SEQ_;
+ goto auth_fail;
+ }
+
-+ if (algorithm==0 && (auth_mode == 0 || auth_mode == 2 || auth_mode == 3))
++ if (algorithm == 0 && (auth_mode == 0 || auth_mode == 2 || auth_mode == 3))
+ {
+ if (seq == 1)
+ {
@@ -17673,19 +14650,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+ else
+ {
-+ DBG_871X("(2)auth rejected because out of seq [rx_seq=%d, exp_seq=%d]!\n",
++ DBG_871X("(2)auth rejected because out of seq [rx_seq =%d, exp_seq =%d]!\n",
+ seq, pstat->auth_seq+1);
+ status = _STATS_OUT_OF_AUTH_SEQ_;
+ goto auth_fail;
+ }
+ }
-+ else // shared system or auto authentication
++ else /* shared system or auto authentication */
+ {
-+ if (seq == 1)
-+ {
-+ //prepare for the challenging txt...
-+
-+ //get_random_bytes((void *)pstat->chg_txt, 128);//TODO:
++ if (seq == 1) {
++ /* prepare for the challenging txt... */
+ memset((void *)pstat->chg_txt, 78, 128);
+
+ pstat->state &= ~WIFI_FW_AUTH_NULL;
@@ -17695,24 +14669,24 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+ else if (seq == 3)
+ {
-+ //checking for challenging txt...
++ /* checking for challenging txt... */
+ DBG_871X("checking for challenging txt...\n");
-+
++
+ p = rtw_get_ie(pframe + WLAN_HDR_A3_LEN + 4 + _AUTH_IE_OFFSET_ , _CHLGETXT_IE_, (int *)&ie_len,
+ len - WLAN_HDR_A3_LEN - _AUTH_IE_OFFSET_ - 4);
+
-+ if((p==NULL) || (ie_len<=0))
++ if ((p == NULL) || (ie_len<= 0))
+ {
+ DBG_871X("auth rejected because challenge failure!(1)\n");
+ status = _STATS_CHALLENGE_FAIL_;
+ goto auth_fail;
+ }
-+
++
+ if (!memcmp((void *)(p + 2), pstat->chg_txt, 128))
+ {
+ pstat->state &= (~WIFI_FW_AUTH_STATE);
+ pstat->state |= WIFI_FW_AUTH_SUCCESS;
-+ // challenging txt is correct...
++ /* challenging txt is correct... */
+ pstat->expire_to = pstapriv->assoc_to;
+ }
+ else
@@ -17724,7 +14698,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+ else
+ {
-+ DBG_871X("(3)auth rejected because out of seq [rx_seq=%d, exp_seq=%d]!\n",
++ DBG_871X("(3)auth rejected because out of seq [rx_seq =%d, exp_seq =%d]!\n",
+ seq, pstat->auth_seq+1);
+ status = _STATS_OUT_OF_AUTH_SEQ_;
+ goto auth_fail;
@@ -17732,51 +14706,46 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+
-+ // Now, we are going to issue_auth...
-+ pstat->auth_seq = seq + 1;
-+
-+#ifdef CONFIG_NATIVEAP_MLME
++ /* Now, we are going to issue_auth... */
++ pstat->auth_seq = seq + 1;
++
+ issue_auth(padapter, pstat, (unsigned short)(_STATS_SUCCESSFUL_));
-+#endif
+
+ if (pstat->state & WIFI_FW_AUTH_SUCCESS)
+ pstat->auth_seq = 0;
+
-+
++
+ return _SUCCESS;
+
+auth_fail:
+
-+ if(pstat)
++ if (pstat)
+ rtw_free_stainfo(padapter , pstat);
-+
++
+ pstat = &stat;
+ memset((char *)pstat, '\0', sizeof(stat));
+ pstat->auth_seq = 2;
-+ memcpy(pstat->hwaddr, sa, 6);
-+
-+#ifdef CONFIG_NATIVEAP_MLME
-+ issue_auth(padapter, pstat, (unsigned short)status);
-+#endif
++ memcpy(pstat->hwaddr, sa, 6);
++
++ issue_auth(padapter, pstat, (unsigned short)status);
+
-+#endif
+ return _FAIL;
+
+}
+
-+unsigned int OnAuthClient(_adapter *padapter, union recv_frame *precv_frame)
++unsigned int OnAuthClient(struct adapter *padapter, union recv_frame *precv_frame)
+{
+ unsigned int seq, len, status, algthm, offset;
-+ unsigned char *p;
++ unsigned char *p;
+ unsigned int go2asoc = 0;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ u8 *pframe = precv_frame->u.hdr.rx_data;
+ uint pkt_len = precv_frame->u.hdr.len;
+
-+ DBG_871X("%s\n", __FUNCTION__);
++ DBG_871X("%s\n", __func__);
+
-+ //check A1 matches or not
++ /* check A1 matches or not */
+ if (memcmp(myid(&(padapter->eeprompriv)), get_da(pframe), ETH_ALEN))
+ return _SUCCESS;
+
@@ -17785,22 +14754,22 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ offset = (GetPrivacy(pframe))? 4: 0;
+
-+ algthm = le16_to_cpu(*(unsigned short *)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset));
-+ seq = le16_to_cpu(*(unsigned short *)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset + 2));
-+ status = le16_to_cpu(*(unsigned short *)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset + 4));
++ algthm = le16_to_cpu(*(__le16 *)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset));
++ seq = le16_to_cpu(*(__le16 *)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset + 2));
++ status = le16_to_cpu(*(__le16 *)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset + 4));
+
+ if (status != 0)
+ {
+ DBG_871X("clnt auth fail, status: %d\n", status);
-+ if(status == 13)//&& pmlmeinfo->auth_algo == dot11AuthAlgrthm_Auto)
++ if (status == 13)/* pmlmeinfo->auth_algo == dot11AuthAlgrthm_Auto) */
+ {
-+ if(pmlmeinfo->auth_algo == dot11AuthAlgrthm_Shared)
++ if (pmlmeinfo->auth_algo == dot11AuthAlgrthm_Shared)
+ pmlmeinfo->auth_algo = dot11AuthAlgrthm_Open;
+ else
+ pmlmeinfo->auth_algo = dot11AuthAlgrthm_Shared;
-+ //pmlmeinfo->reauth_count = 0;
++ /* pmlmeinfo->reauth_count = 0; */
+ }
-+
++
+ set_link_timer(pmlmeext, 1);
+ goto authclnt_fail;
+ }
@@ -17809,13 +14778,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ {
+ if (pmlmeinfo->auth_algo == dot11AuthAlgrthm_Shared)
+ {
-+ // legendary shared system
++ /* legendary shared system */
+ p = rtw_get_ie(pframe + WLAN_HDR_A3_LEN + _AUTH_IE_OFFSET_, _CHLGETXT_IE_, (int *)&len,
+ pkt_len - WLAN_HDR_A3_LEN - _AUTH_IE_OFFSET_);
+
+ if (p == NULL)
+ {
-+ //DBG_871X("marc: no challenge text?\n");
++ /* DBG_871X("marc: no challenge text?\n"); */
+ goto authclnt_fail;
+ }
+
@@ -17828,7 +14797,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+ else
+ {
-+ // open system
++ /* open system */
+ go2asoc = 1;
+ }
+ }
@@ -17845,8 +14814,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+ else
+ {
-+ // this is also illegal
-+ //DBG_871X("marc: clnt auth failed due to illegal seq=%x\n", seq);
++ /* this is also illegal */
++ /* DBG_871X("marc: clnt auth failed due to illegal seq =%x\n", seq); */
+ goto authclnt_fail;
+ }
+
@@ -17859,57 +14828,55 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+authclnt_fail:
+
-+ //pmlmeinfo->state &= ~(WIFI_FW_AUTH_STATE);
++ /* pmlmeinfo->state &= ~(WIFI_FW_AUTH_STATE); */
+
+ return _FAIL;
+
+}
+
-+unsigned int OnAssocReq(_adapter *padapter, union recv_frame *precv_frame)
++unsigned int OnAssocReq(struct adapter *padapter, union recv_frame *precv_frame)
+{
-+#ifdef CONFIG_AP_MODE
-+ _irqL irqL;
+ u16 capab_info, listen_interval;
-+ struct rtw_ieee802_11_elems elems;
-+ struct sta_info *pstat;
-+ unsigned char reassoc, *p, *pos, *wpa_ie;
++ struct rtw_ieee802_11_elems elems;
++ struct sta_info *pstat;
++ unsigned char reassoc, *p, *pos, *wpa_ie;
+ unsigned char WMM_IE[] = {0x00, 0x50, 0xf2, 0x02, 0x00, 0x01};
+ int i, ie_len, wpa_ie_len, left;
-+ unsigned char supportRate[16];
++ unsigned char supportRate[16];
+ int supportRateNum;
+ unsigned short status = _STATS_SUCCESSFUL_;
-+ unsigned short frame_type, ie_offset=0;
++ unsigned short frame_type, ie_offset = 0;
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+ struct security_priv *psecuritypriv = &padapter->securitypriv;
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *cur = &(pmlmeinfo->network);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *cur = &(pmlmeinfo->network);
+ struct sta_priv *pstapriv = &padapter->stapriv;
+ u8 *pframe = precv_frame->u.hdr.rx_data;
+ uint pkt_len = precv_frame->u.hdr.len;
+
-+ if((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
++ if ((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
+ return _FAIL;
-+
++
+ frame_type = GetFrameSubType(pframe);
+ if (frame_type == WIFI_ASSOCREQ)
+ {
+ reassoc = 0;
+ ie_offset = _ASOCREQ_IE_OFFSET_;
-+ }
-+ else // WIFI_REASSOCREQ
++ }
++ else /* WIFI_REASSOCREQ */
+ {
+ reassoc = 1;
+ ie_offset = _REASOCREQ_IE_OFFSET_;
+ }
-+
++
+
+ if (pkt_len < IEEE80211_3ADDR_LEN + ie_offset) {
-+ DBG_871X("handle_assoc(reassoc=%d) - too short payload (len=%lu)"
++ DBG_871X("handle_assoc(reassoc =%d) - too short payload (len =%lu)"
+ "\n", reassoc, (unsigned long)pkt_len);
+ return _FAIL;
+ }
-+
++
+ pstat = rtw_get_stainfo(pstapriv, GetAddr2Ptr(pframe));
+ if (pstat == (struct sta_info *)NULL)
+ {
@@ -17918,17 +14885,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+ capab_info = RTW_GET_LE16(pframe + WLAN_HDR_A3_LEN);
-+ //capab_info = le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN));
-+ //listen_interval = le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN+2));
++ /* capab_info = le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN)); */
++ /* listen_interval = le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN+2)); */
+ listen_interval = RTW_GET_LE16(pframe + WLAN_HDR_A3_LEN+2);
+
+ left = pkt_len - (IEEE80211_3ADDR_LEN + ie_offset);
+ pos = pframe + (IEEE80211_3ADDR_LEN + ie_offset);
-+
+
-+ DBG_871X("%s\n", __FUNCTION__);
+
-+ // check if this stat has been successfully authenticated/assocated
++ DBG_871X("%s\n", __func__);
++
++ /* check if this stat has been successfully authenticated/assocated */
+ if (!((pstat->state) & WIFI_FW_AUTH_SUCCESS))
+ {
+ if (!((pstat->state) & WIFI_FW_ASSOC_SUCCESS))
@@ -17939,7 +14906,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ else
+ {
+ pstat->state &= (~WIFI_FW_ASSOC_SUCCESS);
-+ pstat->state |= WIFI_FW_ASSOC_STATE;
++ pstat->state |= WIFI_FW_ASSOC_STATE;
+ }
+ }
+ else
@@ -17951,30 +14918,30 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ pstat->capability = capab_info;
+
-+ //now parse all ieee802_11 ie to point to elems
++ /* now parse all ieee802_11 ie to point to elems */
+ if (rtw_ieee802_11_parse_elems(pos, left, &elems, 1) == ParseFailed ||
+ !elems.ssid) {
+ DBG_871X("STA " MAC_FMT " sent invalid association request\n",
+ MAC_ARG(pstat->hwaddr));
-+ status = _STATS_FAILURE_;
++ status = _STATS_FAILURE_;
+ goto OnAssocReqFail;
+ }
+
+
-+ // now we should check all the fields...
-+ // checking SSID
++ /* now we should check all the fields... */
++ /* checking SSID */
+ p = rtw_get_ie(pframe + WLAN_HDR_A3_LEN + ie_offset, _SSID_IE_, &ie_len,
+ pkt_len - WLAN_HDR_A3_LEN - ie_offset);
+ if (p == NULL)
+ {
-+ status = _STATS_FAILURE_;
++ status = _STATS_FAILURE_;
+ }
+
-+ if (ie_len == 0) // broadcast ssid, however it is not allowed in assocreq
++ if (ie_len == 0) /* broadcast ssid, however it is not allowed in assocreq */
+ status = _STATS_FAILURE_;
+ else
+ {
-+ // check if ssid match
++ /* check if ssid match */
+ if (memcmp((void *)(p+2), cur->Ssid.Ssid, cur->Ssid.SsidLength))
+ status = _STATS_FAILURE_;
+
@@ -17982,17 +14949,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ status = _STATS_FAILURE_;
+ }
+
-+ if(_STATS_SUCCESSFUL_ != status)
++ if (_STATS_SUCCESSFUL_ != status)
+ goto OnAssocReqFail;
+
-+ // check if the supported rate is ok
++ /* check if the supported rate is ok */
+ p = rtw_get_ie(pframe + WLAN_HDR_A3_LEN + ie_offset, _SUPPORTEDRATES_IE_, &ie_len, pkt_len - WLAN_HDR_A3_LEN - ie_offset);
+ if (p == NULL) {
+ DBG_871X("Rx a sta assoc-req which supported rate is empty!\n");
-+ // use our own rate set as statoin used
-+ //memcpy(supportRate, AP_BSSRATE, AP_BSSRATE_LEN);
-+ //supportRateNum = AP_BSSRATE_LEN;
-+
++ /* use our own rate set as statoin used */
++ /* memcpy(supportRate, AP_BSSRATE, AP_BSSRATE_LEN); */
++ /* supportRateNum = AP_BSSRATE_LEN; */
++
+ status = _STATS_FAILURE_;
+ goto OnAssocReqFail;
+ }
@@ -18003,103 +14970,102 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ p = rtw_get_ie(pframe + WLAN_HDR_A3_LEN + ie_offset, _EXT_SUPPORTEDRATES_IE_ , &ie_len,
+ pkt_len - WLAN_HDR_A3_LEN - ie_offset);
+ if (p != NULL) {
-+
-+ if(supportRateNum<=sizeof(supportRate))
++
++ if (supportRateNum<=sizeof(supportRate))
+ {
+ memcpy(supportRate+supportRateNum, p+2, ie_len);
+ supportRateNum += ie_len;
-+ }
++ }
+ }
+ }
+
-+ //todo: mask supportRate between AP & STA -> move to update raid
-+ //get_matched_rate(pmlmeext, supportRate, &supportRateNum, 0);
++ /* todo: mask supportRate between AP & STA -> move to update raid */
++ /* get_matched_rate(pmlmeext, supportRate, &supportRateNum, 0); */
+
-+ //update station supportRate
++ /* update station supportRate */
+ pstat->bssratelen = supportRateNum;
+ memcpy(pstat->bssrateset, supportRate, supportRateNum);
+ UpdateBrateTblForSoftAP(pstat->bssrateset, pstat->bssratelen);
+
-+ //check RSN/WPA/WPS
++ /* check RSN/WPA/WPS */
+ pstat->dot8021xalg = 0;
-+ pstat->wpa_psk = 0;
++ pstat->wpa_psk = 0;
+ pstat->wpa_group_cipher = 0;
+ pstat->wpa2_group_cipher = 0;
+ pstat->wpa_pairwise_cipher = 0;
+ pstat->wpa2_pairwise_cipher = 0;
+ memset(pstat->wpa_ie, 0, sizeof(pstat->wpa_ie));
-+ if((psecuritypriv->wpa_psk & BIT(1)) && elems.rsn_ie) {
++ if ((psecuritypriv->wpa_psk & BIT(1)) && elems.rsn_ie) {
++
++ int group_cipher = 0, pairwise_cipher = 0;
+
-+ int group_cipher=0, pairwise_cipher=0;
-+
+ wpa_ie = elems.rsn_ie;
+ wpa_ie_len = elems.rsn_ie_len;
+
-+ if(rtw_parse_wpa2_ie(wpa_ie-2, wpa_ie_len+2, &group_cipher, &pairwise_cipher, NULL) == _SUCCESS)
++ if (rtw_parse_wpa2_ie(wpa_ie-2, wpa_ie_len+2, &group_cipher, &pairwise_cipher, NULL) == _SUCCESS)
+ {
-+ pstat->dot8021xalg = 1;//psk, todo:802.1x
++ pstat->dot8021xalg = 1;/* psk, todo:802.1x */
+ pstat->wpa_psk |= BIT(1);
+
-+ pstat->wpa2_group_cipher = group_cipher&psecuritypriv->wpa2_group_cipher;
++ pstat->wpa2_group_cipher = group_cipher&psecuritypriv->wpa2_group_cipher;
+ pstat->wpa2_pairwise_cipher = pairwise_cipher&psecuritypriv->wpa2_pairwise_cipher;
-+
-+ if(!pstat->wpa2_group_cipher)
++
++ if (!pstat->wpa2_group_cipher)
+ status = WLAN_STATUS_GROUP_CIPHER_NOT_VALID;
+
-+ if(!pstat->wpa2_pairwise_cipher)
++ if (!pstat->wpa2_pairwise_cipher)
+ status = WLAN_STATUS_PAIRWISE_CIPHER_NOT_VALID;
+ }
+ else
+ {
+ status = WLAN_STATUS_INVALID_IE;
-+ }
-+
++ }
++
+ } else if ((psecuritypriv->wpa_psk & BIT(0)) && elems.wpa_ie) {
+
-+ int group_cipher=0, pairwise_cipher=0;
-+
++ int group_cipher = 0, pairwise_cipher = 0;
++
+ wpa_ie = elems.wpa_ie;
+ wpa_ie_len = elems.wpa_ie_len;
+
-+ if(rtw_parse_wpa_ie(wpa_ie-2, wpa_ie_len+2, &group_cipher, &pairwise_cipher, NULL) == _SUCCESS)
++ if (rtw_parse_wpa_ie(wpa_ie-2, wpa_ie_len+2, &group_cipher, &pairwise_cipher, NULL) == _SUCCESS)
+ {
-+ pstat->dot8021xalg = 1;//psk, todo:802.1x
++ pstat->dot8021xalg = 1;/* psk, todo:802.1x */
+ pstat->wpa_psk |= BIT(0);
+
-+ pstat->wpa_group_cipher = group_cipher&psecuritypriv->wpa_group_cipher;
++ pstat->wpa_group_cipher = group_cipher&psecuritypriv->wpa_group_cipher;
+ pstat->wpa_pairwise_cipher = pairwise_cipher&psecuritypriv->wpa_pairwise_cipher;
-+
-+ if(!pstat->wpa_group_cipher)
++
++ if (!pstat->wpa_group_cipher)
+ status = WLAN_STATUS_GROUP_CIPHER_NOT_VALID;
+
-+ if(!pstat->wpa_pairwise_cipher)
++ if (!pstat->wpa_pairwise_cipher)
+ status = WLAN_STATUS_PAIRWISE_CIPHER_NOT_VALID;
-+
++
+ }
+ else
+ {
+ status = WLAN_STATUS_INVALID_IE;
+ }
-+
++
+ } else {
+ wpa_ie = NULL;
+ wpa_ie_len = 0;
+ }
+
-+ if(_STATS_SUCCESSFUL_ != status)
++ if (_STATS_SUCCESSFUL_ != status)
+ goto OnAssocReqFail;
+
+ pstat->flags &= ~(WLAN_STA_WPS | WLAN_STA_MAYBE_WPS);
-+ //if (hapd->conf->wps_state && wpa_ie == NULL) { //todo: to check ap if supporting WPS
-+ if(wpa_ie == NULL) {
++ if (wpa_ie == NULL) {
+ if (elems.wps_ie) {
+ DBG_871X("STA included WPS IE in "
+ "(Re)Association Request - assume WPS is "
+ "used\n");
+ pstat->flags |= WLAN_STA_WPS;
-+ //wpabuf_free(sta->wps_ie);
-+ //sta->wps_ie = wpabuf_alloc_copy(elems.wps_ie + 4,
-+ // elems.wps_ie_len - 4);
++ /* wpabuf_free(sta->wps_ie); */
++ /* sta->wps_ie = wpabuf_alloc_copy(elems.wps_ie + 4, */
++ /* elems.wps_ie_len - 4); */
+ } else {
+ DBG_871X("STA did not include WPA/RSN IE "
+ "in (Re)Association Request - possible WPS "
@@ -18108,40 +15074,40 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+
-+ // AP support WPA/RSN, and sta is going to do WPS, but AP is not ready
-+ // that the selected registrar of AP is _FLASE
-+ if((psecuritypriv->wpa_psk >0)
++ /* AP support WPA/RSN, and sta is going to do WPS, but AP is not ready */
++ /* that the selected registrar of AP is _FLASE */
++ if ((psecuritypriv->wpa_psk >0)
+ && (pstat->flags & (WLAN_STA_WPS|WLAN_STA_MAYBE_WPS)))
+ {
-+ if(pmlmepriv->wps_beacon_ie)
-+ {
++ if (pmlmepriv->wps_beacon_ie)
++ {
+ u8 selected_registrar = 0;
-+
++
+ rtw_get_wps_attr_content(pmlmepriv->wps_beacon_ie, pmlmepriv->wps_beacon_ie_len, WPS_ATTR_SELECTED_REGISTRAR , &selected_registrar, NULL);
+
-+ if(!selected_registrar)
-+ {
++ if (!selected_registrar)
++ {
+ DBG_871X("selected_registrar is false , or AP is not ready to do WPS\n");
-+
++
+ status = _STATS_UNABLE_HANDLE_STA_;
-+
++
+ goto OnAssocReqFail;
-+ }
-+ }
++ }
++ }
+ }
-+
++
+ }
+ else
+ {
+ int copy_len;
+
-+ if(psecuritypriv->wpa_psk == 0)
++ if (psecuritypriv->wpa_psk == 0)
+ {
+ DBG_871X("STA " MAC_FMT ": WPA/RSN IE in association "
-+ "request, but AP don't support WPA/RSN\n", MAC_ARG(pstat->hwaddr));
-+
++ "request, but AP don't support WPA/RSN\n", MAC_ARG(pstat->hwaddr));
++
+ status = WLAN_STATUS_INVALID_IE;
-+
++
+ goto OnAssocReqFail;
+
+ }
@@ -18151,21 +15117,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ "(Re)Association Request - WPS is "
+ "used\n");
+ pstat->flags |= WLAN_STA_WPS;
-+ copy_len=0;
++ copy_len = 0;
+ }
+ else
+ {
+ copy_len = ((wpa_ie_len+2) > sizeof(pstat->wpa_ie)) ? (sizeof(pstat->wpa_ie)):(wpa_ie_len+2);
+ }
+
-+
-+ if(copy_len>0)
++
++ if (copy_len>0)
+ memcpy(pstat->wpa_ie, wpa_ie-2, copy_len);
-+
++
+ }
+
+
-+ // check if there is WMM IE & support WWM-PS
++ /* check if there is WMM IE & support WWM-PS */
+ pstat->flags &= ~WLAN_STA_WME;
+ pstat->qos_option = 0;
+ pstat->qos_info = 0;
@@ -18174,51 +15140,51 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pstat->uapsd_vi = 0;
+ pstat->uapsd_be = 0;
+ pstat->uapsd_bk = 0;
-+ if (pmlmepriv->qospriv.qos_option)
++ if (pmlmepriv->qospriv.qos_option)
+ {
+ p = pframe + WLAN_HDR_A3_LEN + ie_offset; ie_len = 0;
-+ for (;;)
++ for (;;)
+ {
+ p = rtw_get_ie(p, _VENDOR_SPECIFIC_IE_, &ie_len, pkt_len - WLAN_HDR_A3_LEN - ie_offset);
+ if (p != NULL) {
+ if (!memcmp(p+2, WMM_IE, 6)) {
+
+ pstat->flags |= WLAN_STA_WME;
-+
-+ pstat->qos_option = 1;
++
++ pstat->qos_option = 1;
+ pstat->qos_info = *(p+8);
-+
++
+ pstat->max_sp_len = (pstat->qos_info>>5)&0x3;
+
-+ if((pstat->qos_info&0xf) !=0xf)
++ if ((pstat->qos_info&0xf) != 0xf)
+ pstat->has_legacy_ac = true;
+ else
+ pstat->has_legacy_ac = false;
-+
-+ if(pstat->qos_info&0xf)
++
++ if (pstat->qos_info&0xf)
+ {
-+ if(pstat->qos_info&BIT(0))
++ if (pstat->qos_info&BIT(0))
+ pstat->uapsd_vo = BIT(0)|BIT(1);
+ else
+ pstat->uapsd_vo = 0;
-+
-+ if(pstat->qos_info&BIT(1))
++
++ if (pstat->qos_info&BIT(1))
+ pstat->uapsd_vi = BIT(0)|BIT(1);
+ else
+ pstat->uapsd_vi = 0;
-+
-+ if(pstat->qos_info&BIT(2))
++
++ if (pstat->qos_info&BIT(2))
+ pstat->uapsd_bk = BIT(0)|BIT(1);
+ else
+ pstat->uapsd_bk = 0;
-+
-+ if(pstat->qos_info&BIT(3))
++
++ if (pstat->qos_info&BIT(3))
+ pstat->uapsd_be = BIT(0)|BIT(1);
+ else
+ pstat->uapsd_be = 0;
-+
++
+ }
-+
++
+ break;
+ }
+ }
@@ -18231,39 +15197,36 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ /* save HT capabilities in the sta object */
+ memset(&pstat->htpriv.ht_cap, 0, sizeof(struct rtw_ieee80211_ht_cap));
-+ if (elems.ht_capabilities && elems.ht_capabilities_len >= sizeof(struct rtw_ieee80211_ht_cap))
++ if (elems.ht_capabilities && elems.ht_capabilities_len >= sizeof(struct rtw_ieee80211_ht_cap))
+ {
+ pstat->flags |= WLAN_STA_HT;
-+
++
+ pstat->flags |= WLAN_STA_WME;
-+
-+ memcpy(&pstat->htpriv.ht_cap, elems.ht_capabilities, sizeof(struct rtw_ieee80211_ht_cap));
-+
++
++ memcpy(&pstat->htpriv.ht_cap, elems.ht_capabilities, sizeof(struct rtw_ieee80211_ht_cap));
++
+ } else
+ pstat->flags &= ~WLAN_STA_HT;
+
-+
-+ if((pmlmepriv->htpriv.ht_option == false) && (pstat->flags&WLAN_STA_HT))
++
++ if ((pmlmepriv->htpriv.ht_option == false) && (pstat->flags&WLAN_STA_HT))
+ {
+ status = _STATS_FAILURE_;
+ goto OnAssocReqFail;
+ }
-+
++
+
+ if ((pstat->flags & WLAN_STA_HT) &&
+ ((pstat->wpa2_pairwise_cipher&WPA_CIPHER_TKIP) ||
+ (pstat->wpa_pairwise_cipher&WPA_CIPHER_TKIP)))
-+ {
++ {
+ DBG_871X("HT: " MAC_FMT " tried to "
+ "use TKIP with HT association\n", MAC_ARG(pstat->hwaddr));
-+
-+ //status = WLAN_STATUS_CIPHER_REJECTED_PER_POLICY;
-+ //goto OnAssocReqFail;
-+ }
+
-+ //
-+ //if (hapd->iface->current_mode->mode == HOSTAPD_MODE_IEEE80211G)//?
-+ pstat->flags |= WLAN_STA_NONERP;
++ /* status = WLAN_STATUS_CIPHER_REJECTED_PER_POLICY; */
++ /* goto OnAssocReqFail; */
++ }
++ pstat->flags |= WLAN_STA_NONERP;
+ for (i = 0; i < pstat->bssratelen; i++) {
+ if ((pstat->bssrateset[i] & 0x7f) > 22) {
+ pstat->flags &= ~WLAN_STA_NONERP;
@@ -18276,18 +15239,18 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ else
+ pstat->flags &= ~WLAN_STA_SHORT_PREAMBLE;
+
-+
-+
++
++
+ if (status != _STATS_SUCCESSFUL_)
+ goto OnAssocReqFail;
+
-+ //TODO: identify_proprietary_vendor_ie();
-+ // Realtek proprietary IE
-+ // identify if this is Broadcom sta
-+ // identify if this is ralink sta
-+ // Customer proprietary IE
++ /* TODO: identify_proprietary_vendor_ie(); */
++ /* Realtek proprietary IE */
++ /* identify if this is Broadcom sta */
++ /* identify if this is ralink sta */
++ /* Customer proprietary IE */
++
+
-+
+
+ /* get a unique AID */
+ if (pstat->aid > 0) {
@@ -18296,127 +15259,114 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ for (pstat->aid = 1; pstat->aid <= NUM_STA; pstat->aid++)
+ if (pstapriv->sta_aid[pstat->aid - 1] == NULL)
+ break;
-+
-+ //if (pstat->aid > NUM_STA) {
++
++ /* if (pstat->aid > NUM_STA) { */
+ if (pstat->aid > pstapriv->max_num_sta) {
-+
++
+ pstat->aid = 0;
-+
++
+ DBG_871X(" no room for more AIDs\n");
+
+ status = WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA;
-+
++
+ goto OnAssocReqFail;
-+
-+
++
++
+ } else {
+ pstapriv->sta_aid[pstat->aid - 1] = pstat;
+ DBG_871X("allocate new AID = (%d)\n", pstat->aid);
-+ }
++ }
+ }
+
+
-+ pstat->state &= (~WIFI_FW_ASSOC_STATE);
++ pstat->state &= (~WIFI_FW_ASSOC_STATE);
+ pstat->state |= WIFI_FW_ASSOC_SUCCESS;
-+
-+ _enter_critical_bh(&pstapriv->auth_list_lock, &irqL);
-+ if (!rtw_is_list_empty(&pstat->auth_list))
++
++ spin_lock_bh(&pstapriv->auth_list_lock);
++ if (!list_empty(&pstat->auth_list))
+ {
-+ rtw_list_delete(&pstat->auth_list);
++ list_del_init(&pstat->auth_list);
+ pstapriv->auth_list_cnt--;
+ }
-+ _exit_critical_bh(&pstapriv->auth_list_lock, &irqL);
++ spin_unlock_bh(&pstapriv->auth_list_lock);
+
-+ _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ if (rtw_is_list_empty(&pstat->asoc_list))
++ spin_lock_bh(&pstapriv->asoc_list_lock);
++ if (list_empty(&pstat->asoc_list))
+ {
+ pstat->expire_to = pstapriv->expire_to;
-+ rtw_list_insert_tail(&pstat->asoc_list, &pstapriv->asoc_list);
++ list_add_tail(&pstat->asoc_list, &pstapriv->asoc_list);
+ pstapriv->asoc_list_cnt++;
+ }
-+ _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
++ spin_unlock_bh(&pstapriv->asoc_list_lock);
+
-+ // now the station is qualified to join our BSS...
-+ if(pstat && (pstat->state & WIFI_FW_ASSOC_SUCCESS) && (_STATS_SUCCESSFUL_==status))
++ /* now the station is qualified to join our BSS... */
++ if (pstat && (pstat->state & WIFI_FW_ASSOC_SUCCESS) && (_STATS_SUCCESSFUL_==status))
+ {
-+#ifdef CONFIG_NATIVEAP_MLME
-+ //.1 bss_cap_update & sta_info_update
++ /* 1 bss_cap_update & sta_info_update */
+ bss_cap_update_on_sta_join(padapter, pstat);
+ sta_info_update(padapter, pstat);
+
-+ //.2 issue assoc rsp before notify station join event.
++ /* 2 issue assoc rsp before notify station join event. */
+ if (frame_type == WIFI_ASSOCREQ)
+ issue_asocrsp(padapter, status, pstat, WIFI_ASSOCRSP);
+ else
+ issue_asocrsp(padapter, status, pstat, WIFI_REASSOCRSP);
+
-+ _enter_critical_bh(&pstat->lock, &irqL);
-+ if(pstat->passoc_req)
++ spin_lock_bh(&pstat->lock);
++ if (pstat->passoc_req)
+ {
-+ rtw_mfree(pstat->passoc_req, pstat->assoc_req_len);
++ kfree(pstat->passoc_req);
+ pstat->passoc_req = NULL;
+ pstat->assoc_req_len = 0;
+ }
+
+ pstat->passoc_req = rtw_zmalloc(pkt_len);
-+ if(pstat->passoc_req)
++ if (pstat->passoc_req)
+ {
+ memcpy(pstat->passoc_req, pframe, pkt_len);
+ pstat->assoc_req_len = pkt_len;
+ }
-+ _exit_critical_bh(&pstat->lock, &irqL);
++ spin_unlock_bh(&pstat->lock);
+
-+ //.3-(1) report sta add event
++ /* 3-(1) report sta add event */
+ report_add_sta_event(padapter, pstat->hwaddr, pstat->aid);
-+
-+#endif //CONFIG_NATIVEAP_MLME
+ }
+
+ return _SUCCESS;
+
+asoc_class2_error:
+
-+#ifdef CONFIG_NATIVEAP_MLME
+ issue_deauth(padapter, (void *)GetAddr2Ptr(pframe), status);
-+#endif
+
-+ return _FAIL;
++ return _FAIL;
+
+OnAssocReqFail:
+
-+
-+#ifdef CONFIG_NATIVEAP_MLME
+ pstat->aid = 0;
+ if (frame_type == WIFI_ASSOCREQ)
+ issue_asocrsp(padapter, status, pstat, WIFI_ASSOCRSP);
+ else
+ issue_asocrsp(padapter, status, pstat, WIFI_REASSOCRSP);
-+#endif
-+
-+
-+#endif /* CONFIG_AP_MODE */
-+
-+ return _FAIL;
+
++ return _FAIL;
+}
+
-+unsigned int OnAssocRsp(_adapter *padapter, union recv_frame *precv_frame)
++unsigned int OnAssocRsp(struct adapter *padapter, union recv_frame *precv_frame)
+{
+ uint i;
+ int res;
+ unsigned short status;
-+ PNDIS_802_11_VARIABLE_IEs pIE;
++ struct ndis_80211_var_ie * pIE;
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ //WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ /* struct wlan_bssid_ex *cur_network = &(pmlmeinfo->network); */
+ u8 *pframe = precv_frame->u.hdr.rx_data;
+ uint pkt_len = precv_frame->u.hdr.len;
-+ PNDIS_802_11_VARIABLE_IEs pWapiIE = NULL;
+
-+ DBG_871X("%s\n", __FUNCTION__);
-+
-+ //check A1 matches or not
++ DBG_871X("%s\n", __func__);
++
++ /* check A1 matches or not */
+ if (memcmp(myid(&(padapter->eeprompriv)), get_da(pframe), ETH_ALEN))
+ return _SUCCESS;
+
@@ -18426,10 +15376,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ if (pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS)
+ return _SUCCESS;
+
-+ _cancel_timer_ex(&pmlmeext->link_timer);
++ del_timer_sync(&pmlmeext->link_timer);
+
-+ //status
-+ if ((status = le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN + 2))) > 0)
++ /* status */
++ if ((status = le16_to_cpu(*(__le16 *)(pframe + WLAN_HDR_A3_LEN + 2))) > 0)
+ {
+ DBG_871X("assoc reject, status code: %d\n", status);
+ pmlmeinfo->state = WIFI_FW_NULL_STATE;
@@ -18437,42 +15387,36 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ goto report_assoc_result;
+ }
+
-+ //get capabilities
-+ pmlmeinfo->capability = le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN));
++ /* get capabilities */
++ pmlmeinfo->capability = le16_to_cpu(*(__le16 *)(pframe + WLAN_HDR_A3_LEN));
+
-+ //set slot time
++ /* set slot time */
+ pmlmeinfo->slotTime = (pmlmeinfo->capability & BIT(10))? 9: 20;
+
-+ //AID
-+ res = pmlmeinfo->aid = (int)(le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN + 4))&0x3fff);
++ /* AID */
++ res = pmlmeinfo->aid = (int)(le16_to_cpu(*(__le16 *)(pframe + WLAN_HDR_A3_LEN + 4))&0x3fff);
+
-+ //following are moved to join event callback function
-+ //to handle HT, WMM, rate adaptive, update MAC reg
-+ //for not to handle the synchronous IO in the tasklet
++ /* following are moved to join event callback function */
++ /* to handle HT, WMM, rate adaptive, update MAC reg */
++ /* for not to handle the synchronous IO in the tasklet */
+ for (i = (6 + WLAN_HDR_A3_LEN); i < pkt_len;)
+ {
-+ pIE = (PNDIS_802_11_VARIABLE_IEs)(pframe + i);
++ pIE = (struct ndis_80211_var_ie *)(pframe + i);
+
+ switch (pIE->ElementID)
+ {
+ case _VENDOR_SPECIFIC_IE_:
-+ if (!memcmp(pIE->data, WMM_PARA_OUI, 6)) //WMM
++ if (!memcmp(pIE->data, WMM_PARA_OUI, 6)) /* WMM */
+ {
+ WMM_param_handler(padapter, pIE);
+ }
+ break;
+
-+#ifdef CONFIG_WAPI_SUPPORT
-+ case _WAPI_IE_:
-+ pWapiIE = pIE;
-+ break;
-+#endif
-+
-+ case _HT_CAPABILITY_IE_: //HT caps
++ case _HT_CAPABILITY_IE_: /* HT caps */
+ HT_caps_handler(padapter, pIE);
+ break;
+
-+ case _HT_EXTRA_INFO_IE_: //HT info
++ case _HT_EXTRA_INFO_IE_: /* HT info */
+ HT_info_handler(padapter, pIE);
+ break;
+
@@ -18486,14 +15430,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ i += (pIE->Length + 2);
+ }
+
-+#ifdef CONFIG_WAPI_SUPPORT
-+ rtw_wapi_on_assoc_ok(padapter, pIE);
-+#endif
-+
+ pmlmeinfo->state &= (~WIFI_FW_ASSOC_STATE);
+ pmlmeinfo->state |= WIFI_FW_ASSOC_SUCCESS;
+
-+ //Update Basic Rate Table for spec, 2010-12-28 , by thomas
++ /* Update Basic Rate Table for spec, 2010-12-28 , by thomas */
+ UpdateBrateTbl(padapter, pmlmeinfo->network.SupportedRates);
+
+report_assoc_result:
@@ -18508,140 +15448,131 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return _SUCCESS;
+}
+
-+unsigned int OnDeAuth(_adapter *padapter, union recv_frame *precv_frame)
++unsigned int OnDeAuth(struct adapter *padapter, union recv_frame *precv_frame)
+{
+ unsigned short reason;
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ u8 *pframe = precv_frame->u.hdr.rx_data;
+
-+ //check A3
++ /* check A3 */
+ if (memcmp(GetAddr3Ptr(pframe), get_my_bssid(&pmlmeinfo->network), ETH_ALEN))
+ return _SUCCESS;
+
-+ reason = le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN));
++ reason = le16_to_cpu(*(__le16 *)(pframe + WLAN_HDR_A3_LEN));
+
-+ DBG_871X("%s Reason code(%d)\n", __FUNCTION__,reason);
++ DBG_871X("%s Reason code(%d)\n", __func__, reason);
+
-+ rtw_lock_rx_suspend_timeout(8000);
-+
-+#ifdef CONFIG_AP_MODE
-+ if(check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
-+ {
-+ _irqL irqL;
++ if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
++ {
+ struct sta_info *psta;
+ struct sta_priv *pstapriv = &padapter->stapriv;
-+
-+ //_enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ //rtw_free_stainfo(padapter, psta);
-+ //_exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
++
++ /* spin_lock_bh(&(pstapriv->sta_hash_lock)); */
++ /* rtw_free_stainfo(padapter, psta); */
++ /* spin_unlock_bh(&(pstapriv->sta_hash_lock)); */
+
+ DBG_871X_LEVEL(_drv_always_, "ap recv deauth reason code(%d) sta:%pM\n",
-+ reason, GetAddr2Ptr(pframe));
++ reason, GetAddr2Ptr(pframe));
+
-+ psta = rtw_get_stainfo(pstapriv, GetAddr2Ptr(pframe));
-+ if(psta)
++ psta = rtw_get_stainfo(pstapriv, GetAddr2Ptr(pframe));
++ if (psta)
+ {
+ u8 updated = false;
-+
-+ _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ if(rtw_is_list_empty(&psta->asoc_list)==false)
-+ {
-+ rtw_list_delete(&psta->asoc_list);
++
++ spin_lock_bh(&pstapriv->asoc_list_lock);
++ if (list_empty(&psta->asoc_list) ==false)
++ {
++ list_del_init(&psta->asoc_list);
+ pstapriv->asoc_list_cnt--;
+ updated = ap_free_sta(padapter, psta, false, reason);
+
+ }
-+ _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
++ spin_unlock_bh(&pstapriv->asoc_list_lock);
+
+ associated_clients_update(padapter, updated);
+ }
-+
++
+
+ return _SUCCESS;
+ }
+ else
-+#endif
+ {
+ int ignore_received_deauth = 0;
+
-+ // Commented by Albert 20130604
-+ // Before sending the auth frame to start the STA/GC mode connection with AP/GO,
-+ // we will send the deauth first.
-+ // However, the Win8.1 with BRCM Wi-Fi will send the deauth with reason code 6 to us after receieving our deauth.
-+ // Added the following code to avoid this case.
-+ if ( ( pmlmeinfo->state & WIFI_FW_AUTH_STATE ) ||
-+ ( pmlmeinfo->state & WIFI_FW_ASSOC_STATE ) )
++ /* Commented by Albert 20130604 */
++ /* Before sending the auth frame to start the STA/GC mode connection with AP/GO, */
++ /* we will send the deauth first. */
++ /* However, the Win8.1 with BRCM Wi-Fi will send the deauth with reason code 6 to us after receieving our deauth. */
++ /* Added the following code to avoid this case. */
++ if ((pmlmeinfo->state & WIFI_FW_AUTH_STATE) ||
++ (pmlmeinfo->state & WIFI_FW_ASSOC_STATE))
+ {
-+ if ( reason == WLAN_REASON_CLASS2_FRAME_FROM_NONAUTH_STA )
++ if (reason == WLAN_REASON_CLASS2_FRAME_FROM_NONAUTH_STA)
+ {
+ ignore_received_deauth = 1;
+ } else if (WLAN_REASON_PREV_AUTH_NOT_VALID == reason) {
-+ // TODO: 802.11r
++ /* TODO: 802.11r */
+ ignore_received_deauth = 1;
+ }
+ }
+
+ DBG_871X_LEVEL(_drv_always_, "sta recv deauth reason code(%d) sta:%pM, ignore = %d\n",
-+ reason, GetAddr3Ptr(pframe), ignore_received_deauth);
-+
-+ if ( 0 == ignore_received_deauth )
++ reason, GetAddr3Ptr(pframe), ignore_received_deauth);
++
++ if (0 == ignore_received_deauth)
+ {
-+ receive_disconnect(padapter, GetAddr3Ptr(pframe) ,reason);
++ receive_disconnect(padapter, GetAddr3Ptr(pframe) , reason);
+ }
-+ }
++ }
+ pmlmepriv->LinkDetectInfo.bBusyTraffic = false;
+ return _SUCCESS;
+
+}
+
-+unsigned int OnDisassoc(_adapter *padapter, union recv_frame *precv_frame)
++unsigned int OnDisassoc(struct adapter *padapter, union recv_frame *precv_frame)
+{
+ unsigned short reason;
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ u8 *pframe = precv_frame->u.hdr.rx_data;
+
-+ //check A3
++ /* check A3 */
+ if (memcmp(GetAddr3Ptr(pframe), get_my_bssid(&pmlmeinfo->network), ETH_ALEN))
+ return _SUCCESS;
+
-+ reason = le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN));
++ reason = le16_to_cpu(*(__le16 *)(pframe + WLAN_HDR_A3_LEN));
+
-+ DBG_871X("%s Reason code(%d)\n", __FUNCTION__,reason);
++ DBG_871X("%s Reason code(%d)\n", __func__, reason);
+
-+ rtw_lock_rx_suspend_timeout(8000);
-+
-+#ifdef CONFIG_AP_MODE
-+ if(check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
-+ {
-+ _irqL irqL;
++ if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
++ {
+ struct sta_info *psta;
+ struct sta_priv *pstapriv = &padapter->stapriv;
-+
-+ //_enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
-+ //rtw_free_stainfo(padapter, psta);
-+ //_exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
++
++ /* spin_lock_bh(&(pstapriv->sta_hash_lock)); */
++ /* rtw_free_stainfo(padapter, psta); */
++ /* spin_unlock_bh(&(pstapriv->sta_hash_lock)); */
+
+ DBG_871X_LEVEL(_drv_always_, "ap recv disassoc reason code(%d) sta:%pM\n",
+ reason, GetAddr2Ptr(pframe));
+
-+ psta = rtw_get_stainfo(pstapriv, GetAddr2Ptr(pframe));
-+ if(psta)
++ psta = rtw_get_stainfo(pstapriv, GetAddr2Ptr(pframe));
++ if (psta)
+ {
+ u8 updated = false;
-+
-+ _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+ if(rtw_is_list_empty(&psta->asoc_list)==false)
++
++ spin_lock_bh(&pstapriv->asoc_list_lock);
++ if (list_empty(&psta->asoc_list) ==false)
+ {
-+ rtw_list_delete(&psta->asoc_list);
++ list_del_init(&psta->asoc_list);
+ pstapriv->asoc_list_cnt--;
+ updated = ap_free_sta(padapter, psta, false, reason);
-+
++
+ }
-+ _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
++ spin_unlock_bh(&pstapriv->asoc_list_lock);
+
+ associated_clients_update(padapter, updated);
+ }
@@ -18649,32 +15580,30 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return _SUCCESS;
+ }
+ else
-+#endif
+ {
+ DBG_871X_LEVEL(_drv_always_, "sta recv disassoc reason code(%d) sta:%pM\n",
+ reason, GetAddr3Ptr(pframe));
-+
++
+ receive_disconnect(padapter, GetAddr3Ptr(pframe), reason);
-+ }
++ }
+ pmlmepriv->LinkDetectInfo.bBusyTraffic = false;
+ return _SUCCESS;
+
+}
+
-+unsigned int OnAtim(_adapter *padapter, union recv_frame *precv_frame)
++unsigned int OnAtim(struct adapter *padapter, union recv_frame *precv_frame)
+{
-+ DBG_871X("%s\n", __FUNCTION__);
++ DBG_871X("%s\n", __func__);
+ return _SUCCESS;
+}
+
-+unsigned int on_action_spct(_adapter *padapter, union recv_frame *precv_frame)
++unsigned int on_action_spct(struct adapter *padapter, union recv_frame *precv_frame)
+{
+ unsigned int ret = _FAIL;
+ struct sta_info *psta = NULL;
+ struct sta_priv *pstapriv = &padapter->stapriv;
+ u8 *pframe = precv_frame->u.hdr.rx_data;
-+ uint frame_len = precv_frame->u.hdr.len;
-+ u8 *frame_body = (u8 *)(pframe + sizeof(struct rtw_ieee80211_hdr_3addr));
++ u8 *frame_body = (u8 *)(pframe + sizeof(struct ieee80211_hdr_3addr));
+ u8 category;
+ u8 action;
+
@@ -18686,7 +15615,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ goto exit;
+
+ category = frame_body[0];
-+ if(category != RTW_WLAN_CATEGORY_SPECTRUM_MGMT)
++ if (category != RTW_WLAN_CATEGORY_SPECTRUM_MGMT)
+ goto exit;
+
+ action = frame_body[1];
@@ -18705,45 +15634,39 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return ret;
+}
+
-+unsigned int OnAction_back(_adapter *padapter, union recv_frame *precv_frame)
++unsigned int OnAction_back(struct adapter *padapter, union recv_frame *precv_frame)
+{
+ u8 *addr;
-+ struct sta_info *psta=NULL;
++ struct sta_info *psta = NULL;
+ struct recv_reorder_ctrl *preorder_ctrl;
-+ unsigned char *frame_body;
-+ unsigned char category, action;
++ unsigned char *frame_body;
++ unsigned char category, action;
+ unsigned short tid, status, reason_code = 0;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ u8 *pframe = precv_frame->u.hdr.rx_data;
+ struct sta_priv *pstapriv = &padapter->stapriv;
+
-+ DBG_871X("%s\n", __FUNCTION__);
++ DBG_871X("%s\n", __func__);
+
-+ //check RA matches or not
-+ if (memcmp(myid(&(padapter->eeprompriv)), GetAddr1Ptr(pframe), ETH_ALEN))//for if1, sta/ap mode
++ /* check RA matches or not */
++ if (memcmp(myid(&(padapter->eeprompriv)), GetAddr1Ptr(pframe), ETH_ALEN))/* for if1, sta/ap mode */
+ return _SUCCESS;
+
-+/*
-+ //check A1 matches or not
-+ if (memcmp(myid(&(padapter->eeprompriv)), get_da(pframe), ETH_ALEN))
-+ return _SUCCESS;
-+*/
-+
-+ if((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
++ if ((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
+ if (!(pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS))
+ return _SUCCESS;
+
+ addr = GetAddr2Ptr(pframe);
+ psta = rtw_get_stainfo(pstapriv, addr);
+
-+ if(psta==NULL)
++ if (psta == NULL)
+ return _SUCCESS;
+
-+ frame_body = (unsigned char *)(pframe + sizeof(struct rtw_ieee80211_hdr_3addr));
++ frame_body = (unsigned char *)(pframe + sizeof(struct ieee80211_hdr_3addr));
+
+ category = frame_body[0];
-+ if (category == RTW_WLAN_CATEGORY_BACK)// representing Block Ack
++ if (category == RTW_WLAN_CATEGORY_BACK)/* representing Block Ack */
+ {
+ if (!pmlmeinfo->HT_enable)
+ {
@@ -18751,44 +15674,42 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+ action = frame_body[1];
-+ DBG_871X("%s, action=%d\n", __FUNCTION__, action);
++ DBG_871X("%s, action =%d\n", __func__, action);
+ switch (action)
+ {
-+ case RTW_WLAN_ACTION_ADDBA_REQ: //ADDBA request
++ case RTW_WLAN_ACTION_ADDBA_REQ: /* ADDBA request */
+
+ memcpy(&(pmlmeinfo->ADDBA_req), &(frame_body[2]), sizeof(struct ADDBA_request));
-+ //process_addba_req(padapter, (u8*)&(pmlmeinfo->ADDBA_req), GetAddr3Ptr(pframe));
-+ process_addba_req(padapter, (u8*)&(pmlmeinfo->ADDBA_req), addr);
-+
-+ if(pmlmeinfo->bAcceptAddbaReq == true)
++ /* process_addba_req(padapter, (u8 *)&(pmlmeinfo->ADDBA_req), GetAddr3Ptr(pframe)); */
++ process_addba_req(padapter, (u8 *)&(pmlmeinfo->ADDBA_req), addr);
++
++ if (pmlmeinfo->bAcceptAddbaReq == true)
+ {
+ issue_action_BA(padapter, addr, RTW_WLAN_ACTION_ADDBA_RESP, 0);
+ }
+ else
+ {
-+ issue_action_BA(padapter, addr, RTW_WLAN_ACTION_ADDBA_RESP, 37);//reject ADDBA Req
++ issue_action_BA(padapter, addr, RTW_WLAN_ACTION_ADDBA_RESP, 37);/* reject ADDBA Req */
+ }
-+
++
+ break;
+
-+ case RTW_WLAN_ACTION_ADDBA_RESP: //ADDBA response
-+
-+ //status = frame_body[3] | (frame_body[4] << 8); //endian issue
++ case RTW_WLAN_ACTION_ADDBA_RESP: /* ADDBA response */
+ status = RTW_GET_LE16(&frame_body[3]);
+ tid = ((frame_body[5] >> 2) & 0x7);
+
+ if (status == 0)
-+ { //successful
-+ DBG_871X("agg_enable for TID=%d\n", tid);
-+ psta->htpriv.agg_enable_bitmap |= 1 << tid;
-+ psta->htpriv.candidate_tid_bitmap &= ~BIT(tid);
++ { /* successful */
++ DBG_871X("agg_enable for TID =%d\n", tid);
++ psta->htpriv.agg_enable_bitmap |= 1 << tid;
++ psta->htpriv.candidate_tid_bitmap &= ~BIT(tid);
+ }
+ else
-+ {
-+ psta->htpriv.agg_enable_bitmap &= ~BIT(tid);
++ {
++ psta->htpriv.agg_enable_bitmap &= ~BIT(tid);
+ }
+
-+ if(psta->state & WIFI_STA_ALIVE_CHK_STATE)
++ if (psta->state & WIFI_STA_ALIVE_CHK_STATE)
+ {
+ DBG_871X("%s alive check - rx ADDBA response\n", __func__);
+ psta->htpriv.agg_enable_bitmap &= ~BIT(tid);
@@ -18796,33 +15717,33 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ psta->state ^= WIFI_STA_ALIVE_CHK_STATE;
+ }
+
-+ //DBG_871X("marc: ADDBA RSP: %x\n", pmlmeinfo->agg_enable_bitmap);
++ /* DBG_871X("marc: ADDBA RSP: %x\n", pmlmeinfo->agg_enable_bitmap); */
+ break;
+
-+ case RTW_WLAN_ACTION_DELBA: //DELBA
++ case RTW_WLAN_ACTION_DELBA: /* DELBA */
+ if ((frame_body[3] & BIT(3)) == 0)
+ {
+ psta->htpriv.agg_enable_bitmap &= ~(1 << ((frame_body[3] >> 4) & 0xf));
+ psta->htpriv.candidate_tid_bitmap &= ~(1 << ((frame_body[3] >> 4) & 0xf));
-+
-+ //reason_code = frame_body[4] | (frame_body[5] << 8);
++
++ /* reason_code = frame_body[4] | (frame_body[5] << 8); */
+ reason_code = RTW_GET_LE16(&frame_body[4]);
+ }
-+ else if((frame_body[3] & BIT(3)) == BIT(3))
-+ {
++ else if ((frame_body[3] & BIT(3)) == BIT(3))
++ {
+ tid = (frame_body[3] >> 4) & 0x0F;
-+
++
+ preorder_ctrl = &psta->recvreorder_ctrl[tid];
+ preorder_ctrl->enable = false;
+ preorder_ctrl->indicate_seq = 0xffff;
+ #ifdef DBG_RX_SEQ
-+ DBG_871X("DBG_RX_SEQ %s:%d indicate_seq:%u \n", __FUNCTION__, __LINE__,
++ DBG_871X("DBG_RX_SEQ %s:%d indicate_seq:%u\n", __func__, __LINE__,
+ preorder_ctrl->indicate_seq);
+ #endif
+ }
-+
-+ DBG_871X("%s(): DELBA: %x(%x)\n", __FUNCTION__,pmlmeinfo->agg_enable_bitmap, reason_code);
-+ //todo: how to notify the host while receiving DELETE BA
++
++ DBG_871X("%s(): DELBA: %x(%x)\n", __func__, pmlmeinfo->agg_enable_bitmap, reason_code);
++ /* todo: how to notify the host while receiving DELETE BA */
+ break;
+
+ default:
@@ -18834,32 +15755,32 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+static s32 rtw_action_public_decache(union recv_frame *recv_frame, s32 token)
+{
-+ _adapter *adapter = recv_frame->u.hdr.adapter;
++ struct adapter *adapter = recv_frame->u.hdr.adapter;
+ struct mlme_ext_priv *mlmeext = &(adapter->mlmeextpriv);
+ u8 *frame = recv_frame->u.hdr.rx_data;
-+ u16 seq_ctrl = ( (recv_frame->u.hdr.attrib.seq_num&0xffff) << 4) |
++ u16 seq_ctrl = ((recv_frame->u.hdr.attrib.seq_num&0xffff) << 4) |
+ (recv_frame->u.hdr.attrib.frag_num & 0xf);
-+
++
+ if (GetRetry(frame)) {
+ if (token >= 0) {
+ if ((seq_ctrl == mlmeext->action_public_rxseq)
+ && (token == mlmeext->action_public_dialog_token))
+ {
-+ DBG_871X(FUNC_ADPT_FMT" seq_ctrl=0x%x, rxseq=0x%x, token:%d\n",
++ DBG_871X(FUNC_ADPT_FMT" seq_ctrl = 0x%x, rxseq = 0x%x, token:%d\n",
+ FUNC_ADPT_ARG(adapter), seq_ctrl, mlmeext->action_public_rxseq, token);
+ return _FAIL;
+ }
+ } else {
+ if (seq_ctrl == mlmeext->action_public_rxseq) {
-+ DBG_871X(FUNC_ADPT_FMT" seq_ctrl=0x%x, rxseq=0x%x\n",
++ DBG_871X(FUNC_ADPT_FMT" seq_ctrl = 0x%x, rxseq = 0x%x\n",
+ FUNC_ADPT_ARG(adapter), seq_ctrl, mlmeext->action_public_rxseq);
+ return _FAIL;
+ }
+ }
+ }
-+
++
+ mlmeext->action_public_rxseq = seq_ctrl;
-+
++
+ if (token >= 0)
+ mlmeext->action_public_dialog_token = token;
+
@@ -18868,19 +15789,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+static unsigned int on_action_public_p2p(union recv_frame *precv_frame)
+{
-+ _adapter *padapter = precv_frame->u.hdr.adapter;
+ u8 *pframe = precv_frame->u.hdr.rx_data;
-+ uint len = precv_frame->u.hdr.len;
+ u8 *frame_body;
-+ u8 dialogToken=0;
++ u8 dialogToken = 0;
+
-+ frame_body = (unsigned char *)(pframe + sizeof(struct rtw_ieee80211_hdr_3addr));
++ frame_body = (unsigned char *)(pframe + sizeof(struct ieee80211_hdr_3addr));
+
+ dialogToken = frame_body[7];
+
+ if (rtw_action_public_decache(precv_frame, dialogToken) == _FAIL)
+ return _FAIL;
-+
++
+ return _SUCCESS;
+}
+
@@ -18888,8 +15807,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+{
+ unsigned int ret = _FAIL;
+ u8 *pframe = precv_frame->u.hdr.rx_data;
-+ uint frame_len = precv_frame->u.hdr.len;
-+ u8 *frame_body = pframe + sizeof(struct rtw_ieee80211_hdr_3addr);
++ u8 *frame_body = pframe + sizeof(struct ieee80211_hdr_3addr);
+
+ if (!memcmp(frame_body + 2, P2P_OUI, 4)) {
+ ret = on_action_public_p2p(precv_frame);
@@ -18903,9 +15821,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ unsigned int ret = _FAIL;
+ u8 *pframe = precv_frame->u.hdr.rx_data;
+ uint frame_len = precv_frame->u.hdr.len;
-+ u8 *frame_body = pframe + sizeof(struct rtw_ieee80211_hdr_3addr);
++ u8 *frame_body = pframe + sizeof(struct ieee80211_hdr_3addr);
+ u8 token;
-+ _adapter *adapter = precv_frame->u.hdr.adapter;
++ struct adapter *adapter = precv_frame->u.hdr.adapter;
+ int cnt = 0;
+ char msg[64];
+
@@ -18918,17 +15836,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ rtw_cfg80211_rx_action(adapter, pframe, frame_len, msg);
+
+ ret = _SUCCESS;
-+
++
+exit:
+ return ret;
+}
+
-+unsigned int on_action_public(_adapter *padapter, union recv_frame *precv_frame)
++unsigned int on_action_public(struct adapter *padapter, union recv_frame *precv_frame)
+{
+ unsigned int ret = _FAIL;
+ u8 *pframe = precv_frame->u.hdr.rx_data;
-+ uint frame_len = precv_frame->u.hdr.len;
-+ u8 *frame_body = pframe + sizeof(struct rtw_ieee80211_hdr_3addr);
++ u8 *frame_body = pframe + sizeof(struct ieee80211_hdr_3addr);
+ u8 category, action;
+
+ /* check RA matches or not */
@@ -18936,7 +15853,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ goto exit;
+
+ category = frame_body[0];
-+ if(category != RTW_WLAN_CATEGORY_PUBLIC)
++ if (category != RTW_WLAN_CATEGORY_PUBLIC)
+ goto exit;
+
+ action = frame_body[1];
@@ -18953,11 +15870,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return ret;
+}
+
-+unsigned int OnAction_ht(_adapter *padapter, union recv_frame *precv_frame)
++unsigned int OnAction_ht(struct adapter *padapter, union recv_frame *precv_frame)
+{
+ u8 *pframe = precv_frame->u.hdr.rx_data;
-+ uint frame_len = precv_frame->u.hdr.len;
-+ u8 *frame_body = pframe + sizeof(struct rtw_ieee80211_hdr_3addr);
++ u8 *frame_body = pframe + sizeof(struct ieee80211_hdr_3addr);
+ u8 category, action;
+
+ /* check RA matches or not */
@@ -18965,7 +15881,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ goto exit;
+
+ category = frame_body[0];
-+ if(category != RTW_WLAN_CATEGORY_HT)
++ if (category != RTW_WLAN_CATEGORY_HT)
+ goto exit;
+
+ action = frame_body[1];
@@ -18981,74 +15897,72 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return _SUCCESS;
+}
+
-+#ifdef CONFIG_IEEE80211W
-+unsigned int OnAction_sa_query(_adapter *padapter, union recv_frame *precv_frame)
++unsigned int OnAction_sa_query(struct adapter *padapter, union recv_frame *precv_frame)
+{
+ u8 *pframe = precv_frame->u.hdr.rx_data;
+ struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib;
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
+ unsigned short tid;
-+ //Baron
-+
++ /* Baron */
++
+ DBG_871X("OnAction_sa_query\n");
-+
++
+ switch (pframe[WLAN_HDR_A3_LEN+1])
+ {
-+ case 0: //SA Query req
++ case 0: /* SA Query req */
+ memcpy(&tid, &pframe[WLAN_HDR_A3_LEN+2], sizeof(unsigned short));
-+ DBG_871X("OnAction_sa_query request,action=%d, tid=%04x\n", pframe[WLAN_HDR_A3_LEN+1], tid);
++ DBG_871X("OnAction_sa_query request, action =%d, tid =%04x\n", pframe[WLAN_HDR_A3_LEN+1], tid);
+ issue_action_SA_Query(padapter, GetAddr2Ptr(pframe), 1, tid);
+ break;
+
-+ case 1: //SA Query rsp
-+ _cancel_timer_ex(&pmlmeext->sa_query_timer);
-+ DBG_871X("OnAction_sa_query response,action=%d, tid=%04x, cancel timer\n", pframe[WLAN_HDR_A3_LEN+1], pframe[WLAN_HDR_A3_LEN+2]);
++ case 1: /* SA Query rsp */
++ del_timer_sync(&pmlmeext->sa_query_timer);
++ DBG_871X("OnAction_sa_query response, action =%d, tid =%04x, cancel timer\n", pframe[WLAN_HDR_A3_LEN+1], pframe[WLAN_HDR_A3_LEN+2]);
+ break;
+ default:
+ break;
+ }
-+ if(0)
++ if (0)
+ {
+ int pp;
+ printk("pattrib->pktlen = %d =>", pattrib->pkt_len);
-+ for(pp=0;pp< pattrib->pkt_len; pp++)
++ for (pp = 0;pp< pattrib->pkt_len; pp++)
+ printk(" %02x ", pframe[pp]);
+ printk("\n");
-+ }
-+
++ }
++
+ return _SUCCESS;
+}
-+#endif //CONFIG_IEEE80211W
+
-+unsigned int OnAction(_adapter *padapter, union recv_frame *precv_frame)
++unsigned int OnAction(struct adapter *padapter, union recv_frame *precv_frame)
+{
+ int i;
-+ unsigned char category;
++ unsigned char category;
+ struct action_handler *ptable;
-+ unsigned char *frame_body;
-+ u8 *pframe = precv_frame->u.hdr.rx_data;
++ unsigned char *frame_body;
++ u8 *pframe = precv_frame->u.hdr.rx_data;
++
++ frame_body = (unsigned char *)(pframe + sizeof(struct ieee80211_hdr_3addr));
+
-+ frame_body = (unsigned char *)(pframe + sizeof(struct rtw_ieee80211_hdr_3addr));
-+
+ category = frame_body[0];
-+
-+ for(i = 0; i < sizeof(OnAction_tbl)/sizeof(struct action_handler); i++)
++
++ for (i = 0; i < sizeof(OnAction_tbl)/sizeof(struct action_handler); i++)
+ {
+ ptable = &OnAction_tbl[i];
-+
-+ if(category == ptable->num)
++
++ if (category == ptable->num)
+ ptable->func(padapter, precv_frame);
-+
++
+ }
+
+ return _SUCCESS;
+
+}
+
-+unsigned int DoReserved(_adapter *padapter, union recv_frame *precv_frame)
++unsigned int DoReserved(struct adapter *padapter, union recv_frame *precv_frame)
+{
+
-+ //DBG_871X("rcvd mgt frame(%x, %x)\n", (GetFrameSubType(pframe) >> 4), *(unsigned int *)GetAddr1Ptr(pframe));
++ /* DBG_871X("rcvd mgt frame(%x, %x)\n", (GetFrameSubType(pframe) >> 4), *(unsigned int *)GetAddr1Ptr(pframe)); */
+ return _SUCCESS;
+}
+
@@ -19089,32 +16003,26 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return _alloc_mgtxmitframe(pxmitpriv, false);
+}
+
-+inline struct xmit_frame *alloc_mgtxmitframe_once(struct xmit_priv *pxmitpriv)
-+{
-+ return _alloc_mgtxmitframe(pxmitpriv, true);
-+}
-+
-+
+/****************************************************************************
+
+Following are some TX fuctions for WiFi MLME
+
+*****************************************************************************/
+
-+void update_mgnt_tx_rate(_adapter *padapter, u8 rate)
++void update_mgnt_tx_rate(struct adapter *padapter, u8 rate)
+{
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
+
+ pmlmeext->tx_rate = rate;
-+ //DBG_871X("%s(): rate = %x\n",__FUNCTION__, rate);
++ /* DBG_871X("%s(): rate = %x\n", __func__, rate); */
+}
+
-+void update_mgntframe_attrib(_adapter *padapter, struct pkt_attrib *pattrib)
++void update_mgntframe_attrib(struct adapter *padapter, struct pkt_attrib *pattrib)
+{
-+ u8 wireless_mode;
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ u8 wireless_mode;
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
+
-+ //memset((u8 *)(pattrib), 0, sizeof(struct pkt_attrib));
++ /* memset((u8 *)(pattrib), 0, sizeof(struct pkt_attrib)); */
+
+ pattrib->hdrlen = 24;
+ pattrib->nr_frags = 1;
@@ -19132,7 +16040,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pattrib->rate = pmlmeext->tx_rate;
+
+ pattrib->encrypt = _NO_PRIVACY_;
-+ pattrib->bswenc = false;
++ pattrib->bswenc = false;
+
+ pattrib->qos_en = false;
+ pattrib->ht_en = false;
@@ -19148,9 +16056,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+}
+
-+void update_mgntframe_attrib_addr(_adapter *padapter, struct xmit_frame *pmgntframe)
++void update_mgntframe_attrib_addr(struct adapter *padapter, struct xmit_frame *pmgntframe)
+{
-+ u8 *pframe;
++ u8 *pframe;
+ struct pkt_attrib *pattrib = &pmgntframe->attrib;
+
+ pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET;
@@ -19159,9 +16067,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ memcpy(pattrib->ta, GetAddr2Ptr(pframe), ETH_ALEN);
+}
+
-+void dump_mgntframe(_adapter *padapter, struct xmit_frame *pmgntframe)
++void dump_mgntframe(struct adapter *padapter, struct xmit_frame *pmgntframe)
+{
-+ if(padapter->bSurpriseRemoved == true ||
++ if (padapter->bSurpriseRemoved == true ||
+ padapter->bDriverStopped == true)
+ {
+ rtw_free_xmitbuf(&padapter->xmitpriv, pmgntframe->pxmitbuf);
@@ -19172,15 +16080,15 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ rtw_hal_mgnt_xmit(padapter, pmgntframe);
+}
+
-+s32 dump_mgntframe_and_wait(_adapter *padapter, struct xmit_frame *pmgntframe, int timeout_ms)
++s32 dump_mgntframe_and_wait(struct adapter *padapter, struct xmit_frame *pmgntframe, int timeout_ms)
+{
+ s32 ret = _FAIL;
+ _irqL irqL;
-+ struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
++ struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
+ struct xmit_buf *pxmitbuf = pmgntframe->pxmitbuf;
+ struct submit_ctx sctx;
+
-+ if(padapter->bSurpriseRemoved == true ||
++ if (padapter->bSurpriseRemoved == true ||
+ padapter->bDriverStopped == true)
+ {
+ rtw_free_xmitbuf(&padapter->xmitpriv, pmgntframe->pxmitbuf);
@@ -19196,21 +16104,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ if (ret == _SUCCESS)
+ ret = rtw_sctx_wait(&sctx, __func__);
+
-+ _enter_critical(&pxmitpriv->lock_sctx, &irqL);
++ spin_lock_irqsave(&pxmitpriv->lock_sctx, irqL);
+ pxmitbuf->sctx = NULL;
-+ _exit_critical(&pxmitpriv->lock_sctx, &irqL);
++ spin_unlock_irqrestore(&pxmitpriv->lock_sctx, irqL);
+
+ return ret;
+}
+
-+s32 dump_mgntframe_and_wait_ack(_adapter *padapter, struct xmit_frame *pmgntframe)
++s32 dump_mgntframe_and_wait_ack(struct adapter *padapter, struct xmit_frame *pmgntframe)
+{
+ static u8 seq_no = 0;
+ s32 ret = _FAIL;
-+ u32 timeout_ms = 500;// 500ms
-+ struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
++ u32 timeout_ms = 500;/* 500ms */
++ struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
+
-+ if(padapter->bSurpriseRemoved == true ||
++ if (padapter->bSurpriseRemoved == true ||
+ padapter->bDriverStopped == true)
+ {
+ rtw_free_xmitbuf(&padapter->xmitpriv, pmgntframe->pxmitbuf);
@@ -19218,16 +16126,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return -1;
+ }
+
-+ _enter_critical_mutex(&pxmitpriv->ack_tx_mutex, NULL);
-+ pxmitpriv->ack_tx = true;
-+ pxmitpriv->seq_no = seq_no++;
-+ pmgntframe->ack_report = 1;
-+ if (rtw_hal_mgnt_xmit(padapter, pmgntframe) == _SUCCESS) {
-+ ret = rtw_ack_tx_wait(pxmitpriv, timeout_ms);
-+ }
++ if (mutex_lock_interruptible(&pxmitpriv->ack_tx_mutex) == 0) {
++ pxmitpriv->ack_tx = true;
++ pxmitpriv->seq_no = seq_no++;
++ pmgntframe->ack_report = 1;
++ if (rtw_hal_mgnt_xmit(padapter, pmgntframe) == _SUCCESS) {
++ ret = rtw_ack_tx_wait(pxmitpriv, timeout_ms);
++ }
+
-+ pxmitpriv->ack_tx = false;
-+ _exit_critical_mutex(&pxmitpriv->ack_tx_mutex, NULL);
++ pxmitpriv->ack_tx = false;
++ mutex_unlock(&pxmitpriv->ack_tx_mutex);
++ }
+
+ return ret;
+}
@@ -19237,28 +16146,28 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ u8 *ssid_ie;
+ sint ssid_len_ori;
+ int len_diff = 0;
-+
++
+ ssid_ie = rtw_get_ie(ies, WLAN_EID_SSID, &ssid_len_ori, ies_len);
+
-+ //DBG_871X("%s hidden_ssid_mode:%u, ssid_ie:%p, ssid_len_ori:%d\n", __FUNCTION__, hidden_ssid_mode, ssid_ie, ssid_len_ori);
-+
-+ if(ssid_ie && ssid_len_ori>0)
++ /* DBG_871X("%s hidden_ssid_mode:%u, ssid_ie:%p, ssid_len_ori:%d\n", __func__, hidden_ssid_mode, ssid_ie, ssid_len_ori); */
++
++ if (ssid_ie && ssid_len_ori>0)
+ {
-+ switch(hidden_ssid_mode)
++ switch (hidden_ssid_mode)
+ {
+ case 1:
+ {
+ u8 *next_ie = ssid_ie + 2 + ssid_len_ori;
+ u32 remain_len = 0;
-+
++
+ remain_len = ies_len -(next_ie-ies);
-+
-+ ssid_ie[1] = 0;
++
++ ssid_ie[1] = 0;
+ memcpy(ssid_ie+2, next_ie, remain_len);
+ len_diff -= ssid_len_ori;
-+
++
+ break;
-+ }
++ }
+ case 2:
+ memset(&ssid_ie[2], 0, ssid_len_ori);
+ break;
@@ -19270,63 +16179,59 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return len_diff;
+}
+
-+void issue_beacon(_adapter *padapter, int timeout_ms)
++void issue_beacon(struct adapter *padapter, int timeout_ms)
+{
+ struct xmit_frame *pmgntframe;
+ struct pkt_attrib *pattrib;
-+ unsigned char *pframe;
-+ struct rtw_ieee80211_hdr *pwlanhdr;
-+ unsigned short *fctrl;
++ unsigned char *pframe;
++ struct ieee80211_hdr *pwlanhdr;
++ __le16 *fctrl;
+ unsigned int rate_len;
-+ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
-+#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
-+ _irqL irqL;
++ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+#endif //#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network);
-+ u8 bc_addr[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *cur_network = &(pmlmeinfo->network);
++ u8 bc_addr[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
+
-+ //DBG_871X("%s\n", __FUNCTION__);
++ /* DBG_871X("%s\n", __func__); */
+
+ if ((pmgntframe = alloc_mgtxmitframe(pxmitpriv)) == NULL)
+ {
-+ DBG_871X("%s, alloc mgnt frame fail\n", __FUNCTION__);
++ DBG_871X("%s, alloc mgnt frame fail\n", __func__);
+ return;
+ }
-+#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
-+ _enter_critical_bh(&pmlmepriv->bcn_update_lock, &irqL);
-+#endif //#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
+
-+ //update attribute
++ spin_lock_bh(&pmlmepriv->bcn_update_lock);
++
++ /* update attribute */
+ pattrib = &pmgntframe->attrib;
+ update_mgntframe_attrib(padapter, pattrib);
+ pattrib->qsel = 0x10;
-+
++
+ memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET);
-+
++
+ pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET;
-+ pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
-+
-+
-+ fctrl = &(pwlanhdr->frame_ctl);
++ pwlanhdr = (struct ieee80211_hdr *)pframe;
++
++
++ fctrl = &(pwlanhdr->frame_control);
+ *(fctrl) = 0;
-+
++
+ memcpy(pwlanhdr->addr1, bc_addr, ETH_ALEN);
+ memcpy(pwlanhdr->addr2, myid(&(padapter->eeprompriv)), ETH_ALEN);
+ memcpy(pwlanhdr->addr3, get_my_bssid(cur_network), ETH_ALEN);
+
+ SetSeqNum(pwlanhdr, 0/*pmlmeext->mgnt_seq*/);
-+ //pmlmeext->mgnt_seq++;
++ /* pmlmeext->mgnt_seq++; */
+ SetFrameSubType(pframe, WIFI_BEACON);
-+
-+ pframe += sizeof(struct rtw_ieee80211_hdr_3addr);
-+ pattrib->pktlen = sizeof (struct rtw_ieee80211_hdr_3addr);
-+
-+ if( (pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE)
++
++ pframe += sizeof(struct ieee80211_hdr_3addr);
++ pattrib->pktlen = sizeof (struct ieee80211_hdr_3addr);
++
++ if ((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE)
+ {
-+ //DBG_871X("ie len=%d\n", cur_network->IELength);
++ /* DBG_871X("ie len =%d\n", cur_network->IELength); */
+ {
+ int len_diff;
+ memcpy(pframe, cur_network->IEs, cur_network->IELength);
@@ -19343,10 +16248,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ u8 *wps_ie;
+ uint wps_ielen;
+ u8 sr = 0;
-+ wps_ie = rtw_get_wps_ie(pmgntframe->buf_addr+TXDESC_OFFSET+sizeof (struct rtw_ieee80211_hdr_3addr)+_BEACON_IE_OFFSET_,
-+ pattrib->pktlen-sizeof (struct rtw_ieee80211_hdr_3addr)-_BEACON_IE_OFFSET_, NULL, &wps_ielen);
++ wps_ie = rtw_get_wps_ie(pmgntframe->buf_addr+TXDESC_OFFSET+sizeof (struct ieee80211_hdr_3addr)+_BEACON_IE_OFFSET_,
++ pattrib->pktlen-sizeof (struct ieee80211_hdr_3addr)-_BEACON_IE_OFFSET_, NULL, &wps_ielen);
+ if (wps_ie && wps_ielen>0) {
-+ rtw_get_wps_attr_content(wps_ie, wps_ielen, WPS_ATTR_SELECTED_REGISTRAR, (u8*)(&sr), NULL);
++ rtw_get_wps_attr_content(wps_ie, wps_ielen, WPS_ATTR_SELECTED_REGISTRAR, (u8 *)(&sr), NULL);
+ }
+ if (sr != 0)
+ set_fwstate(pmlmepriv, WIFI_UNDER_WPS);
@@ -19358,127 +16263,124 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ }
+
-+ //below for ad-hoc mode
++ /* below for ad-hoc mode */
+
-+ //timestamp will be inserted by hardware
++ /* timestamp will be inserted by hardware */
+ pframe += 8;
+ pattrib->pktlen += 8;
+
-+ // beacon interval: 2 bytes
++ /* beacon interval: 2 bytes */
+
-+ memcpy(pframe, (unsigned char *)(rtw_get_beacon_interval_from_ie(cur_network->IEs)), 2);
++ memcpy(pframe, (unsigned char *)(rtw_get_beacon_interval_from_ie(cur_network->IEs)), 2);
+
+ pframe += 2;
+ pattrib->pktlen += 2;
+
-+ // capability info: 2 bytes
++ /* capability info: 2 bytes */
+
+ memcpy(pframe, (unsigned char *)(rtw_get_capability_from_ie(cur_network->IEs)), 2);
+
+ pframe += 2;
+ pattrib->pktlen += 2;
+
-+ // SSID
++ /* SSID */
+ pframe = rtw_set_ie(pframe, _SSID_IE_, cur_network->Ssid.SsidLength, cur_network->Ssid.Ssid, &pattrib->pktlen);
+
-+ // supported rates...
++ /* supported rates... */
+ rate_len = rtw_get_rateset_len(cur_network->SupportedRates);
+ pframe = rtw_set_ie(pframe, _SUPPORTEDRATES_IE_, ((rate_len > 8)? 8: rate_len), cur_network->SupportedRates, &pattrib->pktlen);
+
-+ // DS parameter set
++ /* DS parameter set */
+ pframe = rtw_set_ie(pframe, _DSSET_IE_, 1, (unsigned char *)&(cur_network->Configuration.DSConfig), &pattrib->pktlen);
+
-+ //if( (pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE)
++ /* if ((pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE) */
+ {
-+ u8 erpinfo=0;
++ u8 erpinfo = 0;
+ u32 ATIMWindow;
-+ // IBSS Parameter Set...
-+ //ATIMWindow = cur->Configuration.ATIMWindow;
++ /* IBSS Parameter Set... */
++ /* ATIMWindow = cur->Configuration.ATIMWindow; */
+ ATIMWindow = 0;
+ pframe = rtw_set_ie(pframe, _IBSS_PARA_IE_, 2, (unsigned char *)(&ATIMWindow), &pattrib->pktlen);
+
-+ //ERP IE
++ /* ERP IE */
+ pframe = rtw_set_ie(pframe, _ERPINFO_IE_, 1, &erpinfo, &pattrib->pktlen);
-+ }
++ }
+
+
-+ // EXTERNDED SUPPORTED RATE
++ /* EXTERNDED SUPPORTED RATE */
+ if (rate_len > 8)
+ {
+ pframe = rtw_set_ie(pframe, _EXT_SUPPORTEDRATES_IE_, (rate_len - 8), (cur_network->SupportedRates + 8), &pattrib->pktlen);
+ }
+
+
-+ //todo:HT for adhoc
++ /* todo:HT for adhoc */
+
+_issue_bcn:
+
-+#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
+ pmlmepriv->update_bcn = false;
-+
-+ _exit_critical_bh(&pmlmepriv->bcn_update_lock, &irqL);
-+#endif //#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
++
++ spin_unlock_bh(&pmlmepriv->bcn_update_lock);
+
+ if ((pattrib->pktlen + TXDESC_SIZE) > 512)
+ {
+ DBG_871X("beacon frame too large\n");
+ return;
+ }
-+
++
+ pattrib->last_txcmdsz = pattrib->pktlen;
+
-+ //DBG_871X("issue bcn_sz=%d\n", pattrib->last_txcmdsz);
-+ if(timeout_ms > 0)
++ /* DBG_871X("issue bcn_sz =%d\n", pattrib->last_txcmdsz); */
++ if (timeout_ms > 0)
+ dump_mgntframe_and_wait(padapter, pmgntframe, timeout_ms);
+ else
+ dump_mgntframe(padapter, pmgntframe);
+
+}
+
-+void issue_probersp(_adapter *padapter, unsigned char *da, u8 is_valid_p2p_probereq)
++void issue_probersp(struct adapter *padapter, unsigned char *da, u8 is_valid_p2p_probereq)
+{
+ struct xmit_frame *pmgntframe;
+ struct pkt_attrib *pattrib;
-+ unsigned char *pframe;
-+ struct rtw_ieee80211_hdr *pwlanhdr;
-+ unsigned short *fctrl;
-+ unsigned char *mac, *bssid;
-+ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
-+#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
++ unsigned char *pframe;
++ struct ieee80211_hdr *pwlanhdr;
++ __le16 *fctrl;
++ unsigned char *mac, *bssid;
++ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
++
+ u8 *pwps_ie;
+ uint wps_ielen;
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+#endif //#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network);
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *cur_network = &(pmlmeinfo->network);
+ unsigned int rate_len;
+
-+ //DBG_871X("%s\n", __FUNCTION__);
++ /* DBG_871X("%s\n", __func__); */
+
-+ if(da == NULL)
++ if (da == NULL)
+ return;
+
+ if ((pmgntframe = alloc_mgtxmitframe(pxmitpriv)) == NULL)
+ {
-+ DBG_871X("%s, alloc mgnt frame fail\n", __FUNCTION__);
++ DBG_871X("%s, alloc mgnt frame fail\n", __func__);
+ return;
+ }
+
+
-+ //update attribute
++ /* update attribute */
+ pattrib = &pmgntframe->attrib;
-+ update_mgntframe_attrib(padapter, pattrib);
-+
++ update_mgntframe_attrib(padapter, pattrib);
++
+ memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET);
-+
++
+ pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET;
-+ pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
-+
++ pwlanhdr = (struct ieee80211_hdr *)pframe;
++
+ mac = myid(&(padapter->eeprompriv));
+ bssid = cur_network->MacAddress;
-+
-+ fctrl = &(pwlanhdr->frame_ctl);
++
++ fctrl = &(pwlanhdr->frame_control);
+ *(fctrl) = 0;
+ memcpy(pwlanhdr->addr1, da, ETH_ALEN);
+ memcpy(pwlanhdr->addr2, mac, ETH_ALEN);
@@ -19487,49 +16389,48 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq);
+ pmlmeext->mgnt_seq++;
+ SetFrameSubType(fctrl, WIFI_PROBERSP);
-+
-+ pattrib->hdrlen = sizeof(struct rtw_ieee80211_hdr_3addr);
++
++ pattrib->hdrlen = sizeof(struct ieee80211_hdr_3addr);
+ pattrib->pktlen = pattrib->hdrlen;
+ pframe += pattrib->hdrlen;
+
+
-+ if(cur_network->IELength>MAX_IE_SZ)
++ if (cur_network->IELength>MAX_IE_SZ)
+ return;
-+
-+#if defined (CONFIG_AP_MODE) && defined (CONFIG_NATIVEAP_MLME)
-+ if( (pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE)
++
++ if ((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE)
+ {
+ pwps_ie = rtw_get_wps_ie(cur_network->IEs+_FIXED_IE_LENGTH_, cur_network->IELength-_FIXED_IE_LENGTH_, NULL, &wps_ielen);
-+
-+ //inerset & update wps_probe_resp_ie
-+ if((pmlmepriv->wps_probe_resp_ie!=NULL) && pwps_ie && (wps_ielen>0))
++
++ /* inerset & update wps_probe_resp_ie */
++ if ((pmlmepriv->wps_probe_resp_ie!= NULL) && pwps_ie && (wps_ielen>0))
+ {
+ uint wps_offset, remainder_ielen;
-+ u8 *premainder_ie;
-+
++ u8 *premainder_ie;
++
+ wps_offset = (uint)(pwps_ie - cur_network->IEs);
+
+ premainder_ie = pwps_ie + wps_ielen;
+
+ remainder_ielen = cur_network->IELength - wps_offset - wps_ielen;
+
-+ memcpy(pframe, cur_network->IEs, wps_offset);
-+ pframe += wps_offset;
-+ pattrib->pktlen += wps_offset;
++ memcpy(pframe, cur_network->IEs, wps_offset);
++ pframe += wps_offset;
++ pattrib->pktlen += wps_offset;
+
-+ wps_ielen = (uint)pmlmepriv->wps_probe_resp_ie[1];//to get ie data len
-+ if((wps_offset+wps_ielen+2)<=MAX_IE_SZ)
++ wps_ielen = (uint)pmlmepriv->wps_probe_resp_ie[1];/* to get ie data len */
++ if ((wps_offset+wps_ielen+2)<=MAX_IE_SZ)
+ {
+ memcpy(pframe, pmlmepriv->wps_probe_resp_ie, wps_ielen+2);
-+ pframe += wps_ielen+2;
-+ pattrib->pktlen += wps_ielen+2;
++ pframe += wps_ielen+2;
++ pattrib->pktlen += wps_ielen+2;
+ }
+
-+ if((wps_offset+wps_ielen+2+remainder_ielen)<=MAX_IE_SZ)
++ if ((wps_offset+wps_ielen+2+remainder_ielen)<=MAX_IE_SZ)
+ {
+ memcpy(pframe, premainder_ie, remainder_ielen);
-+ pframe += remainder_ielen;
-+ pattrib->pktlen += remainder_ielen;
++ pframe += remainder_ielen;
++ pattrib->pktlen += remainder_ielen;
+ }
+ }
+ else
@@ -19545,7 +16446,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ sint ssid_ielen;
+ sint ssid_ielen_diff;
+ u8 buf[MAX_IE_SZ];
-+ u8 *ies = pmgntframe->buf_addr+TXDESC_OFFSET+sizeof(struct rtw_ieee80211_hdr_3addr);
++ u8 *ies = pmgntframe->buf_addr+TXDESC_OFFSET+sizeof(struct ieee80211_hdr_3addr);
+
+ ssid_ie = rtw_get_ie(ies+_FIXED_IE_LENGTH_, _SSID_IE_, &ssid_ielen,
+ (pframe-ies)-_FIXED_IE_LENGTH_);
@@ -19572,131 +16473,128 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pattrib->pktlen += ssid_ielen_diff;
+ }
+ }
-+ }
-+ else
-+#endif
++ }
++ else
+ {
-+
-+ //timestamp will be inserted by hardware
++ /* timestamp will be inserted by hardware */
+ pframe += 8;
+ pattrib->pktlen += 8;
+
-+ // beacon interval: 2 bytes
++ /* beacon interval: 2 bytes */
+
-+ memcpy(pframe, (unsigned char *)(rtw_get_beacon_interval_from_ie(cur_network->IEs)), 2);
++ memcpy(pframe, (unsigned char *)(rtw_get_beacon_interval_from_ie(cur_network->IEs)), 2);
+
+ pframe += 2;
+ pattrib->pktlen += 2;
+
-+ // capability info: 2 bytes
++ /* capability info: 2 bytes */
+
+ memcpy(pframe, (unsigned char *)(rtw_get_capability_from_ie(cur_network->IEs)), 2);
+
+ pframe += 2;
+ pattrib->pktlen += 2;
+
-+ //below for ad-hoc mode
++ /* below for ad-hoc mode */
+
-+ // SSID
++ /* SSID */
+ pframe = rtw_set_ie(pframe, _SSID_IE_, cur_network->Ssid.SsidLength, cur_network->Ssid.Ssid, &pattrib->pktlen);
+
-+ // supported rates...
++ /* supported rates... */
+ rate_len = rtw_get_rateset_len(cur_network->SupportedRates);
+ pframe = rtw_set_ie(pframe, _SUPPORTEDRATES_IE_, ((rate_len > 8)? 8: rate_len), cur_network->SupportedRates, &pattrib->pktlen);
+
-+ // DS parameter set
++ /* DS parameter set */
+ pframe =rtw_set_ie(pframe, _DSSET_IE_, 1, (unsigned char *)&(cur_network->Configuration.DSConfig), &pattrib->pktlen);
+
-+ if( (pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE)
++ if ((pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE)
+ {
-+ u8 erpinfo=0;
++ u8 erpinfo = 0;
+ u32 ATIMWindow;
-+ // IBSS Parameter Set...
-+ //ATIMWindow = cur->Configuration.ATIMWindow;
++ /* IBSS Parameter Set... */
++ /* ATIMWindow = cur->Configuration.ATIMWindow; */
+ ATIMWindow = 0;
+ pframe = rtw_set_ie(pframe, _IBSS_PARA_IE_, 2, (unsigned char *)(&ATIMWindow), &pattrib->pktlen);
+
-+ //ERP IE
++ /* ERP IE */
+ pframe = rtw_set_ie(pframe, _ERPINFO_IE_, 1, &erpinfo, &pattrib->pktlen);
+ }
+
-+
-+ // EXTERNDED SUPPORTED RATE
++
++ /* EXTERNDED SUPPORTED RATE */
+ if (rate_len > 8)
+ {
+ pframe = rtw_set_ie(pframe, _EXT_SUPPORTEDRATES_IE_, (rate_len - 8), (cur_network->SupportedRates + 8), &pattrib->pktlen);
+ }
+
+
-+ //todo:HT for adhoc
++ /* todo:HT for adhoc */
+
-+ }
++ }
+
+#ifdef CONFIG_AUTO_AP_MODE
+{
-+ struct sta_info *psta;
++ struct sta_info *psta;
+ struct sta_priv *pstapriv = &padapter->stapriv;
+
-+ DBG_871X("(%s)\n", __FUNCTION__);
++ DBG_871X("(%s)\n", __func__);
+
-+ //check rc station
++ /* check rc station */
+ psta = rtw_get_stainfo(pstapriv, da);
+ if (psta && psta->isrc && psta->pid>0)
+ {
-+ u8 RC_OUI[4]={0x00,0xE0,0x4C,0x0A};
++ u8 RC_OUI[4]={0x00, 0xE0, 0x4C, 0x0A};
+ u8 RC_INFO[14] = {0};
-+ //EID[1] + EID_LEN[1] + RC_OUI[4] + MAC[6] + PairingID[2] + ChannelNum[2]
++ /* EID[1] + EID_LEN[1] + RC_OUI[4] + MAC[6] + PairingID[2] + ChannelNum[2] */
+ u16 cu_ch = (u16)cur_network->Configuration.DSConfig;
+
-+ DBG_871X("%s, reply rc(pid=0x%x) device "MAC_FMT" in ch=%d\n", __FUNCTION__,
++ DBG_871X("%s, reply rc(pid = 0x%x) device "MAC_FMT" in ch =%d\n", __func__,
+ psta->pid, MAC_ARG(psta->hwaddr), cu_ch);
+
-+ //append vendor specific ie
++ /* append vendor specific ie */
+ memcpy(RC_INFO, RC_OUI, sizeof(RC_OUI));
+ memcpy(&RC_INFO[4], mac, ETH_ALEN);
-+ memcpy(&RC_INFO[10], (u8*)&psta->pid, 2);
-+ memcpy(&RC_INFO[12], (u8*)&cu_ch, 2);
++ memcpy(&RC_INFO[10], (u8 *)&psta->pid, 2);
++ memcpy(&RC_INFO[12], (u8 *)&cu_ch, 2);
+
+ pframe = rtw_set_ie(pframe, _VENDOR_SPECIFIC_IE_, sizeof(RC_INFO), RC_INFO, &pattrib->pktlen);
+ }
+}
-+#endif //CONFIG_AUTO_AP_MODE
++#endif /* CONFIG_AUTO_AP_MODE */
+
+
+ pattrib->last_txcmdsz = pattrib->pktlen;
-+
++
+
+ dump_mgntframe(padapter, pmgntframe);
-+
++
+ return;
+
+}
+
-+static int _issue_probereq(_adapter *padapter, NDIS_802_11_SSID *pssid, u8 *da, u8 ch, bool append_wps, int wait_ack)
++static int _issue_probereq(struct adapter *padapter, struct ndis_802_11_ssid *pssid, u8 *da, u8 ch, bool append_wps, int wait_ack)
+{
+ int ret = _FAIL;
+ struct xmit_frame *pmgntframe;
+ struct pkt_attrib *pattrib;
-+ unsigned char *pframe;
-+ struct rtw_ieee80211_hdr *pwlanhdr;
-+ unsigned short *fctrl;
-+ unsigned char *mac;
-+ unsigned char bssrate[NumRates];
-+ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
++ unsigned char *pframe;
++ struct ieee80211_hdr *pwlanhdr;
++ __le16 *fctrl;
++ unsigned char *mac;
++ unsigned char bssrate[NumRates];
++ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
+ int bssrate_len = 0;
-+ u8 bc_addr[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
++ u8 bc_addr[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
+
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_notice_,("+issue_probereq\n"));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_notice_, ("+issue_probereq\n"));
+
+ if ((pmgntframe = alloc_mgtxmitframe(pxmitpriv)) == NULL)
+ {
+ goto exit;
+ }
+
-+ //update attribute
++ /* update attribute */
+ pattrib = &pmgntframe->attrib;
+ update_mgntframe_attrib(padapter, pattrib);
+
@@ -19704,22 +16602,22 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET);
+
+ pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET;
-+ pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
++ pwlanhdr = (struct ieee80211_hdr *)pframe;
+
+ mac = myid(&(padapter->eeprompriv));
+
-+ fctrl = &(pwlanhdr->frame_ctl);
++ fctrl = &(pwlanhdr->frame_control);
+ *(fctrl) = 0;
+
+ if (da)
+ {
-+ // unicast probe request frame
++ /* unicast probe request frame */
+ memcpy(pwlanhdr->addr1, da, ETH_ALEN);
+ memcpy(pwlanhdr->addr3, da, ETH_ALEN);
+ }
+ else
+ {
-+ // broadcast probe request frame
++ /* broadcast probe request frame */
+ memcpy(pwlanhdr->addr1, bc_addr, ETH_ALEN);
+ memcpy(pwlanhdr->addr3, bc_addr, ETH_ALEN);
+ }
@@ -19730,10 +16628,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pmlmeext->mgnt_seq++;
+ SetFrameSubType(pframe, WIFI_PROBEREQ);
+
-+ pframe += sizeof (struct rtw_ieee80211_hdr_3addr);
-+ pattrib->pktlen = sizeof (struct rtw_ieee80211_hdr_3addr);
++ pframe += sizeof (struct ieee80211_hdr_3addr);
++ pattrib->pktlen = sizeof (struct ieee80211_hdr_3addr);
+
-+ if(pssid)
++ if (pssid)
+ pframe = rtw_set_ie(pframe, _SSID_IE_, pssid->SsidLength, pssid->Ssid, &(pattrib->pktlen));
+ else
+ pframe = rtw_set_ie(pframe, _SSID_IE_, 0, NULL, &(pattrib->pktlen));
@@ -19754,19 +16652,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pframe = rtw_set_ie(pframe, _DSSET_IE_, 1, &ch, &pattrib->pktlen);
+
+ if (append_wps) {
-+ //add wps_ie for wps2.0
-+ if(pmlmepriv->wps_probe_req_ie_len>0 && pmlmepriv->wps_probe_req_ie)
-+ {
++ /* add wps_ie for wps2.0 */
++ if (pmlmepriv->wps_probe_req_ie_len>0 && pmlmepriv->wps_probe_req_ie) {
+ memcpy(pframe, pmlmepriv->wps_probe_req_ie, pmlmepriv->wps_probe_req_ie_len);
+ pframe += pmlmepriv->wps_probe_req_ie_len;
+ pattrib->pktlen += pmlmepriv->wps_probe_req_ie_len;
-+ //pmlmepriv->wps_probe_req_ie_len = 0 ;//reset to zero
+ }
+ }
+
+ pattrib->last_txcmdsz = pattrib->pktlen;
+
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_notice_,("issuing probe_req, tx_len=%d\n", pattrib->last_txcmdsz));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_notice_, ("issuing probe_req, tx_len =%d\n", pattrib->last_txcmdsz));
+
+ if (wait_ack) {
+ ret = dump_mgntframe_and_wait_ack(padapter, pmgntframe);
@@ -19779,17 +16675,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return ret;
+}
+
-+inline void issue_probereq(_adapter *padapter, NDIS_802_11_SSID *pssid, u8 *da)
++inline void issue_probereq(struct adapter *padapter, struct ndis_802_11_ssid *pssid, u8 *da)
+{
+ _issue_probereq(padapter, pssid, da, 0, 1, false);
+}
+
-+int issue_probereq_ex(_adapter *padapter, NDIS_802_11_SSID *pssid, u8 *da, u8 ch, bool append_wps,
++int issue_probereq_ex(struct adapter *padapter, struct ndis_802_11_ssid *pssid, u8 *da, u8 ch, bool append_wps,
+ int try_cnt, int wait_ms)
+{
+ int ret;
+ int i = 0;
-+ unsigned long start = jiffies;
+
+ do
+ {
@@ -19800,10 +16695,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ if (padapter->bDriverStopped || padapter->bSurpriseRemoved)
+ break;
+
-+ if(i < try_cnt && wait_ms > 0 && ret==_FAIL)
++ if (i < try_cnt && wait_ms > 0 && ret == _FAIL)
+ msleep(wait_ms);
+
-+ }while((ixmitpriv);
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ __le16 le_tmp;
+
+ if ((pmgntframe = alloc_mgtxmitframe(pxmitpriv)) == NULL)
+ {
+ return;
+ }
+
-+ //update attribute
++ /* update attribute */
+ pattrib = &pmgntframe->attrib;
+ update_mgntframe_attrib(padapter, pattrib);
+
+ memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET);
+
+ pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET;
-+ pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
++ pwlanhdr = (struct ieee80211_hdr *)pframe;
+
-+ fctrl = &(pwlanhdr->frame_ctl);
++ fctrl = &(pwlanhdr->frame_control);
+ *(fctrl) = 0;
+
+ SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq);
+ pmlmeext->mgnt_seq++;
+ SetFrameSubType(pframe, WIFI_AUTH);
+
-+ pframe += sizeof(struct rtw_ieee80211_hdr_3addr);
-+ pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr);
++ pframe += sizeof(struct ieee80211_hdr_3addr);
++ pattrib->pktlen = sizeof(struct ieee80211_hdr_3addr);
+
+
-+ if(psta)// for AP mode
++ if (psta)/* for AP mode */
+ {
-+#ifdef CONFIG_NATIVEAP_MLME
-+
-+ memcpy(pwlanhdr->addr1, psta->hwaddr, ETH_ALEN);
++ memcpy(pwlanhdr->addr1, psta->hwaddr, ETH_ALEN);
+ memcpy(pwlanhdr->addr2, myid(&(padapter->eeprompriv)), ETH_ALEN);
+ memcpy(pwlanhdr->addr3, myid(&(padapter->eeprompriv)), ETH_ALEN);
+
-+
-+ // setting auth algo number
++ /* setting auth algo number */
+ val16 = (u16)psta->authalg;
+
-+ if(status != _STATS_SUCCESSFUL_)
++ if (status != _STATS_SUCCESSFUL_)
+ val16 = 0;
+
+ if (val16) {
-+ val16 = cpu_to_le16(val16);
+ use_shared_key = 1;
+ }
++ le_tmp = cpu_to_le16(val16);
+
-+ pframe = rtw_set_fixed_ie(pframe, _AUTH_ALGM_NUM_, (unsigned char *)&val16, &(pattrib->pktlen));
++ pframe = rtw_set_fixed_ie(pframe, _AUTH_ALGM_NUM_, (unsigned char *)&le_tmp, &(pattrib->pktlen));
+
-+ // setting auth seq number
++ /* setting auth seq number */
+ val16 =(u16)psta->auth_seq;
-+ val16 = cpu_to_le16(val16);
-+ pframe = rtw_set_fixed_ie(pframe, _AUTH_SEQ_NUM_, (unsigned char *)&val16, &(pattrib->pktlen));
++ le_tmp = cpu_to_le16(val16);
++ pframe = rtw_set_fixed_ie(pframe, _AUTH_SEQ_NUM_, (unsigned char *)&le_tmp, &(pattrib->pktlen));
+
-+ // setting status code...
++ /* setting status code... */
+ val16 = status;
-+ val16 = cpu_to_le16(val16);
-+ pframe = rtw_set_fixed_ie(pframe, _STATUS_CODE_, (unsigned char *)&val16, &(pattrib->pktlen));
++ le_tmp = cpu_to_le16(val16);
++ pframe = rtw_set_fixed_ie(pframe, _STATUS_CODE_, (unsigned char *)&le_tmp, &(pattrib->pktlen));
+
-+ // added challenging text...
-+ if ((psta->auth_seq == 2) && (psta->state & WIFI_FW_AUTH_STATE) && (use_shared_key==1))
++ /* added challenging text... */
++ if ((psta->auth_seq == 2) && (psta->state & WIFI_FW_AUTH_STATE) && (use_shared_key == 1))
+ {
+ pframe = rtw_set_ie(pframe, _CHLGETXT_IE_, 128, psta->chg_txt, &(pattrib->pktlen));
+ }
-+#endif
+ }
+ else
-+ {
++ {
+ memcpy(pwlanhdr->addr1, get_my_bssid(&pmlmeinfo->network), ETH_ALEN);
+ memcpy(pwlanhdr->addr2, myid(&padapter->eeprompriv), ETH_ALEN);
+ memcpy(pwlanhdr->addr3, get_my_bssid(&pmlmeinfo->network), ETH_ALEN);
-+
-+ // setting auth algo number
-+ val16 = (pmlmeinfo->auth_algo == dot11AuthAlgrthm_Shared)? 1: 0;// 0:OPEN System, 1:Shared key
++
++ /* setting auth algo number */
++ val16 = (pmlmeinfo->auth_algo == dot11AuthAlgrthm_Shared)? 1: 0;/* 0:OPEN System, 1:Shared key */
+ if (val16) {
-+ val16 = cpu_to_le16(val16);
+ use_shared_key = 1;
-+ }
-+ //DBG_871X("%s auth_algo= %s auth_seq=%d\n",__FUNCTION__,(pmlmeinfo->auth_algo==0)?"OPEN":"SHARED",pmlmeinfo->auth_seq);
-+
-+ //setting IV for auth seq #3
-+ if ((pmlmeinfo->auth_seq == 3) && (pmlmeinfo->state & WIFI_FW_AUTH_STATE) && (use_shared_key==1))
++ }
++ le_tmp = cpu_to_le16(val16);
++ /* DBG_871X("%s auth_algo = %s auth_seq =%d\n", __func__, (pmlmeinfo->auth_algo == 0)?"OPEN":"SHARED", pmlmeinfo->auth_seq); */
++
++ /* setting IV for auth seq #3 */
++ if ((pmlmeinfo->auth_seq == 3) && (pmlmeinfo->state & WIFI_FW_AUTH_STATE) && (use_shared_key == 1))
+ {
-+ //DBG_871X("==> iv(%d),key_index(%d)\n",pmlmeinfo->iv,pmlmeinfo->key_index);
++ __le32 le_tmp32;
++
++ /* DBG_871X("==> iv(%d), key_index(%d)\n", pmlmeinfo->iv, pmlmeinfo->key_index); */
+ val32 = ((pmlmeinfo->iv++) | (pmlmeinfo->key_index << 30));
-+ val32 = cpu_to_le32(val32);
-+ pframe = rtw_set_fixed_ie(pframe, 4, (unsigned char *)&val32, &(pattrib->pktlen));
++ le_tmp32 = cpu_to_le32(val32);
++ pframe = rtw_set_fixed_ie(pframe, 4, (unsigned char *)&le_tmp32, &(pattrib->pktlen));
+
+ pattrib->iv_len = 4;
+ }
+
-+ pframe = rtw_set_fixed_ie(pframe, _AUTH_ALGM_NUM_, (unsigned char *)&val16, &(pattrib->pktlen));
-+
-+ // setting auth seq number
-+ val16 = pmlmeinfo->auth_seq;
-+ val16 = cpu_to_le16(val16);
-+ pframe = rtw_set_fixed_ie(pframe, _AUTH_SEQ_NUM_, (unsigned char *)&val16, &(pattrib->pktlen));
++ pframe = rtw_set_fixed_ie(pframe, _AUTH_ALGM_NUM_, (unsigned char *)&le_tmp, &(pattrib->pktlen));
+
-+
-+ // setting status code...
-+ val16 = status;
-+ val16 = cpu_to_le16(val16);
-+ pframe = rtw_set_fixed_ie(pframe, _STATUS_CODE_, (unsigned char *)&val16, &(pattrib->pktlen));
++ /* setting auth seq number */
++ le_tmp = cpu_to_le16(pmlmeinfo->auth_seq);
++ pframe = rtw_set_fixed_ie(pframe, _AUTH_SEQ_NUM_, (unsigned char *)&le_tmp, &(pattrib->pktlen));
+
-+ // then checking to see if sending challenging text...
-+ if ((pmlmeinfo->auth_seq == 3) && (pmlmeinfo->state & WIFI_FW_AUTH_STATE) && (use_shared_key==1))
++
++ /* setting status code... */
++ le_tmp = cpu_to_le16(status);
++ pframe = rtw_set_fixed_ie(pframe, _STATUS_CODE_, (unsigned char *)&le_tmp, &(pattrib->pktlen));
++
++ /* then checking to see if sending challenging text... */
++ if ((pmlmeinfo->auth_seq == 3) && (pmlmeinfo->state & WIFI_FW_AUTH_STATE) && (use_shared_key == 1))
+ {
+ pframe = rtw_set_ie(pframe, _CHLGETXT_IE_, 128, pmlmeinfo->chg_txt, &(pattrib->pktlen));
+
+ SetPrivacy(fctrl);
-+
-+ pattrib->hdrlen = sizeof(struct rtw_ieee80211_hdr_3addr);
-+
++
++ pattrib->hdrlen = sizeof(struct ieee80211_hdr_3addr);
++
+ pattrib->encrypt = _WEP40_;
+
+ pattrib->icv_len = 4;
-+
-+ pattrib->pktlen += pattrib->icv_len;
-+
++
++ pattrib->pktlen += pattrib->icv_len;
++
+ }
-+
++
+ }
+
+ pattrib->last_txcmdsz = pattrib->pktlen;
+
+ rtw_wep_encrypt(padapter, (u8 *)pmgntframe);
-+ DBG_871X("%s\n", __FUNCTION__);
++ DBG_871X("%s\n", __func__);
+ dump_mgntframe(padapter, pmgntframe);
+
+ return;
+}
+
+
-+void issue_asocrsp(_adapter *padapter, unsigned short status, struct sta_info *pstat, int pkt_type)
++void issue_asocrsp(struct adapter *padapter, unsigned short status, struct sta_info *pstat, int pkt_type)
+{
-+#ifdef CONFIG_AP_MODE
+ struct xmit_frame *pmgntframe;
-+ struct rtw_ieee80211_hdr *pwlanhdr;
++ struct ieee80211_hdr *pwlanhdr;
+ struct pkt_attrib *pattrib;
-+ unsigned char *pbuf, *pframe;
-+ unsigned short val;
-+ unsigned short *fctrl;
++ unsigned char *pbuf, *pframe;
++ unsigned short val;
++ __le16 *fctrl;
+ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *pnetwork = &(pmlmeinfo->network);
-+ u8 *ie = pnetwork->IEs;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *pnetwork = &(pmlmeinfo->network);
++ u8 *ie = pnetwork->IEs;
++ __le16 lestatus, le_tmp;
+
-+ DBG_871X("%s\n", __FUNCTION__);
++ DBG_871X("%s\n", __func__);
+
+ if ((pmgntframe = alloc_mgtxmitframe(pxmitpriv)) == NULL)
+ {
+ return;
+ }
+
-+ //update attribute
++ /* update attribute */
+ pattrib = &pmgntframe->attrib;
+ update_mgntframe_attrib(padapter, pattrib);
+
@@ -20003,9 +16895,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET);
+
+ pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET;
-+ pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
++ pwlanhdr = (struct ieee80211_hdr *)pframe;
+
-+ fctrl = &(pwlanhdr->frame_ctl);
++ fctrl = &(pwlanhdr->frame_control);
+ *(fctrl) = 0;
+
+ memcpy((void *)GetAddr1Ptr(pwlanhdr), pstat->hwaddr, ETH_ALEN);
@@ -20016,30 +16908,30 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq);
+ pmlmeext->mgnt_seq++;
+ if ((pkt_type == WIFI_ASSOCRSP) || (pkt_type == WIFI_REASSOCRSP))
-+ SetFrameSubType(pwlanhdr, pkt_type);
++ SetFrameSubType(pwlanhdr, pkt_type);
+ else
+ return;
+
-+ pattrib->hdrlen = sizeof(struct rtw_ieee80211_hdr_3addr);
++ pattrib->hdrlen = sizeof(struct ieee80211_hdr_3addr);
+ pattrib->pktlen += pattrib->hdrlen;
+ pframe += pattrib->hdrlen;
+
-+ //capability
++ /* capability */
+ val = *(unsigned short *)rtw_get_capability_from_ie(ie);
+
+ pframe = rtw_set_fixed_ie(pframe, _CAPABILITY_ , (unsigned char *)&val, &(pattrib->pktlen));
+
-+ status = cpu_to_le16(status);
-+ pframe = rtw_set_fixed_ie(pframe , _STATUS_CODE_ , (unsigned char *)&status, &(pattrib->pktlen));
-+
-+ val = cpu_to_le16(pstat->aid | BIT(14) | BIT(15));
-+ pframe = rtw_set_fixed_ie(pframe, _ASOC_ID_ , (unsigned char *)&val, &(pattrib->pktlen));
++ lestatus = cpu_to_le16(status);
++ pframe = rtw_set_fixed_ie(pframe , _STATUS_CODE_ , (unsigned char *)&lestatus, &(pattrib->pktlen));
++
++ le_tmp = cpu_to_le16(pstat->aid | BIT(14) | BIT(15));
++ pframe = rtw_set_fixed_ie(pframe, _ASOC_ID_ , (unsigned char *)&le_tmp, &(pattrib->pktlen));
+
+ if (pstat->bssratelen <= 8)
+ {
+ pframe = rtw_set_ie(pframe, _SUPPORTEDRATES_IE_, pstat->bssratelen, pstat->bssrateset, &(pattrib->pktlen));
-+ }
-+ else
++ }
++ else
+ {
+ pframe = rtw_set_ie(pframe, _SUPPORTEDRATES_IE_, 8, pstat->bssrateset, &(pattrib->pktlen));
+ pframe = rtw_set_ie(pframe, _EXT_SUPPORTEDRATES_IE_, (pstat->bssratelen-8), pstat->bssrateset+8, &(pattrib->pktlen));
@@ -20047,54 +16939,54 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ if ((pstat->flags & WLAN_STA_HT) && (pmlmepriv->htpriv.ht_option))
+ {
-+ uint ie_len=0;
-+
-+ //FILL HT CAP INFO IE
-+ //p = hostapd_eid_ht_capabilities_info(hapd, p);
++ uint ie_len = 0;
++
++ /* FILL HT CAP INFO IE */
++ /* p = hostapd_eid_ht_capabilities_info(hapd, p); */
+ pbuf = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _HT_CAPABILITY_IE_, &ie_len, (pnetwork->IELength - _BEACON_IE_OFFSET_));
-+ if(pbuf && ie_len>0)
++ if (pbuf && ie_len>0)
+ {
+ memcpy(pframe, pbuf, ie_len+2);
+ pframe += (ie_len+2);
+ pattrib->pktlen +=(ie_len+2);
+ }
+
-+ //FILL HT ADD INFO IE
-+ //p = hostapd_eid_ht_operation(hapd, p);
++ /* FILL HT ADD INFO IE */
++ /* p = hostapd_eid_ht_operation(hapd, p); */
+ pbuf = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _HT_ADD_INFO_IE_, &ie_len, (pnetwork->IELength - _BEACON_IE_OFFSET_));
-+ if(pbuf && ie_len>0)
++ if (pbuf && ie_len>0)
+ {
+ memcpy(pframe, pbuf, ie_len+2);
+ pframe += (ie_len+2);
+ pattrib->pktlen +=(ie_len+2);
+ }
-+
-+ }
+
-+ //FILL WMM IE
++ }
++
++ /* FILL WMM IE */
+ if ((pstat->flags & WLAN_STA_WME) && (pmlmepriv->qospriv.qos_option))
+ {
-+ uint ie_len=0;
-+ unsigned char WMM_PARA_IE[] = {0x00, 0x50, 0xf2, 0x02, 0x01, 0x01};
-+
++ uint ie_len = 0;
++ unsigned char WMM_PARA_IE[] = {0x00, 0x50, 0xf2, 0x02, 0x01, 0x01};
++
+ for (pbuf = ie + _BEACON_IE_OFFSET_; ;pbuf+= (ie_len + 2))
-+ {
-+ pbuf = rtw_get_ie(pbuf, _VENDOR_SPECIFIC_IE_, &ie_len, (pnetwork->IELength - _BEACON_IE_OFFSET_ - (ie_len + 2)));
-+ if(pbuf && !memcmp(pbuf+2, WMM_PARA_IE, 6))
-+ {
++ {
++ pbuf = rtw_get_ie(pbuf, _VENDOR_SPECIFIC_IE_, &ie_len, (pnetwork->IELength - _BEACON_IE_OFFSET_ - (ie_len + 2)));
++ if (pbuf && !memcmp(pbuf+2, WMM_PARA_IE, 6))
++ {
+ memcpy(pframe, pbuf, ie_len+2);
+ pframe += (ie_len+2);
+ pattrib->pktlen +=(ie_len+2);
-+
-+ break;
++
++ break;
+ }
-+
++
+ if ((pbuf == NULL) || (ie_len == 0))
+ {
+ break;
-+ }
++ }
+ }
-+
++
+ }
+
+
@@ -20103,46 +16995,43 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pframe = rtw_set_ie(pframe, _VENDOR_SPECIFIC_IE_, 6 , REALTEK_96B_IE, &(pattrib->pktlen));
+ }
+
-+ //add WPS IE ie for wps 2.0
-+ if(pmlmepriv->wps_assoc_resp_ie && pmlmepriv->wps_assoc_resp_ie_len>0)
++ /* add WPS IE ie for wps 2.0 */
++ if (pmlmepriv->wps_assoc_resp_ie && pmlmepriv->wps_assoc_resp_ie_len>0)
+ {
+ memcpy(pframe, pmlmepriv->wps_assoc_resp_ie, pmlmepriv->wps_assoc_resp_ie_len);
-+
++
+ pframe += pmlmepriv->wps_assoc_resp_ie_len;
+ pattrib->pktlen += pmlmepriv->wps_assoc_resp_ie_len;
+ }
+
+ pattrib->last_txcmdsz = pattrib->pktlen;
-+
++
+ dump_mgntframe(padapter, pmgntframe);
-+
-+#endif
+}
+
-+void issue_assocreq(_adapter *padapter)
++void issue_assocreq(struct adapter *padapter)
+{
+ int ret = _FAIL;
+ struct xmit_frame *pmgntframe;
+ struct pkt_attrib *pattrib;
-+ unsigned char *pframe, *p;
-+ struct rtw_ieee80211_hdr *pwlanhdr;
-+ unsigned short *fctrl;
-+ unsigned short val16;
-+ unsigned int i, j, ie_len, index=0;
-+ unsigned char rf_type, bssrate[NumRates], sta_bssrate[NumRates];
-+ PNDIS_802_11_VARIABLE_IEs pIE;
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
-+ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
++ unsigned char *pframe;
++ struct ieee80211_hdr *pwlanhdr;
++ __le16 *fctrl;
++ __le16 val16;
++ unsigned int i, j, index = 0;
++ unsigned char bssrate[NumRates], sta_bssrate[NumRates];
++ struct ndis_80211_var_ie * pIE;
++ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ int bssrate_len = 0, sta_bssrate_len = 0;
-+ u8 vs_ie_length = 0;
++ u8 vs_ie_length = 0;
+
+ if ((pmgntframe = alloc_mgtxmitframe(pxmitpriv)) == NULL)
+ goto exit;
+
-+ //update attribute
++ /* update attribute */
+ pattrib = &pmgntframe->attrib;
+ update_mgntframe_attrib(padapter, pattrib);
+
@@ -20150,9 +17039,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET);
+
+ pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET;
-+ pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
++ pwlanhdr = (struct ieee80211_hdr *)pframe;
+
-+ fctrl = &(pwlanhdr->frame_ctl);
++ fctrl = &(pwlanhdr->frame_control);
+ *(fctrl) = 0;
+ memcpy(pwlanhdr->addr1, get_my_bssid(&(pmlmeinfo->network)), ETH_ALEN);
+ memcpy(pwlanhdr->addr2, myid(&(padapter->eeprompriv)), ETH_ALEN);
@@ -20162,79 +17051,79 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pmlmeext->mgnt_seq++;
+ SetFrameSubType(pframe, WIFI_ASSOCREQ);
+
-+ pframe += sizeof(struct rtw_ieee80211_hdr_3addr);
-+ pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr);
++ pframe += sizeof(struct ieee80211_hdr_3addr);
++ pattrib->pktlen = sizeof(struct ieee80211_hdr_3addr);
+
-+ //caps
++ /* caps */
+ memcpy(pframe, rtw_get_capability_from_ie(pmlmeinfo->network.IEs), 2);
+
+ pframe += 2;
+ pattrib->pktlen += 2;
+
-+ //listen interval
-+ //todo: listen interval for power saving
++ /* listen interval */
++ /* todo: listen interval for power saving */
+ val16 = cpu_to_le16(3);
-+ memcpy(pframe ,(unsigned char *)&val16, 2);
++ memcpy(pframe , (unsigned char *)&val16, 2);
+ pframe += 2;
+ pattrib->pktlen += 2;
+
-+ //SSID
++ /* SSID */
+ pframe = rtw_set_ie(pframe, _SSID_IE_, pmlmeinfo->network.Ssid.SsidLength, pmlmeinfo->network.Ssid.Ssid, &(pattrib->pktlen));
+
-+ //supported rate & extended supported rate
++ /* supported rate & extended supported rate */
+
-+ // Check if the AP's supported rates are also supported by STA.
++ /* Check if the AP's supported rates are also supported by STA. */
+ get_rate_set(padapter, sta_bssrate, &sta_bssrate_len);
-+ //DBG_871X("sta_bssrate_len=%d\n", sta_bssrate_len);
-+
-+ if(pmlmeext->cur_channel == 14)// for JAPAN, channel 14 can only uses B Mode(CCK)
++ /* DBG_871X("sta_bssrate_len =%d\n", sta_bssrate_len); */
++
++ if (pmlmeext->cur_channel == 14)/* for JAPAN, channel 14 can only uses B Mode(CCK) */
+ {
+ sta_bssrate_len = 4;
+ }
+
-+
-+ //for (i = 0; i < sta_bssrate_len; i++) {
-+ // DBG_871X("sta_bssrate[%d]=%02X\n", i, sta_bssrate[i]);
-+ //}
++
++ /* for (i = 0; i < sta_bssrate_len; i++) { */
++ /* DBG_871X("sta_bssrate[%d]=%02X\n", i, sta_bssrate[i]); */
++ /* */
+
+ for (i = 0; i < NDIS_802_11_LENGTH_RATES_EX; i++) {
+ if (pmlmeinfo->network.SupportedRates[i] == 0) break;
+ DBG_871X("network.SupportedRates[%d]=%02X\n", i, pmlmeinfo->network.SupportedRates[i]);
+ }
-+
++
+
+ for (i = 0; i < NDIS_802_11_LENGTH_RATES_EX; i++) {
+ if (pmlmeinfo->network.SupportedRates[i] == 0) break;
+
-+
-+ // Check if the AP's supported rates are also supported by STA.
-+ for (j=0; j < sta_bssrate_len; j++) {
-+ // Avoid the proprietary data rate (22Mbps) of Handlink WSG-4000 AP
-+ if ( (pmlmeinfo->network.SupportedRates[i]|IEEE80211_BASIC_RATE_MASK)
++
++ /* Check if the AP's supported rates are also supported by STA. */
++ for (j = 0; j < sta_bssrate_len; j++) {
++ /* Avoid the proprietary data rate (22Mbps) of Handlink WSG-4000 AP */
++ if ((pmlmeinfo->network.SupportedRates[i]|IEEE80211_BASIC_RATE_MASK)
+ == (sta_bssrate[j]|IEEE80211_BASIC_RATE_MASK)) {
-+ //DBG_871X("match i = %d, j=%d\n", i, j);
++ /* DBG_871X("match i = %d, j =%d\n", i, j); */
+ break;
+ } else {
-+ //DBG_871X("not match: %02X != %02X\n", (pmlmeinfo->network.SupportedRates[i]|IEEE80211_BASIC_RATE_MASK), (sta_bssrate[j]|IEEE80211_BASIC_RATE_MASK));
++ /* DBG_871X("not match: %02X != %02X\n", (pmlmeinfo->network.SupportedRates[i]|IEEE80211_BASIC_RATE_MASK), (sta_bssrate[j]|IEEE80211_BASIC_RATE_MASK)); */
+ }
+ }
-+
++
+ if (j == sta_bssrate_len) {
-+ // the rate is not supported by STA
-+ DBG_871X("%s(): the rate[%d]=%02X is not supported by STA!\n",__FUNCTION__, i, pmlmeinfo->network.SupportedRates[i]);
++ /* the rate is not supported by STA */
++ DBG_871X("%s(): the rate[%d]=%02X is not supported by STA!\n", __func__, i, pmlmeinfo->network.SupportedRates[i]);
+ } else {
-+ // the rate is supported by STA
++ /* the rate is supported by STA */
+ bssrate[index++] = pmlmeinfo->network.SupportedRates[i];
+ }
+ }
-+
++
+ bssrate_len = index;
+ DBG_871X("bssrate_len = %d\n", bssrate_len);
+
+ if (bssrate_len == 0) {
+ rtw_free_xmitbuf(pxmitpriv, pmgntframe->pxmitbuf);
+ rtw_free_xmitframe(pxmitpriv, pmgntframe);
-+ goto exit; //don't connect to AP if no joint supported rate
++ goto exit; /* don't connect to AP if no joint supported rate */
+ }
+
+
@@ -20248,10 +17137,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pframe = rtw_set_ie(pframe, _SUPPORTEDRATES_IE_ , bssrate_len , bssrate, &(pattrib->pktlen));
+ }
+
-+ //vendor specific IE, such as WPA, WMM, WPS
-+ for (i = sizeof(NDIS_802_11_FIXED_IEs); i < pmlmeinfo->network.IELength;)
++ /* vendor specific IE, such as WPA, WMM, WPS */
++ for (i = sizeof(struct ndis_802_11_fix_ie); i < pmlmeinfo->network.IELength;)
+ {
-+ pIE = (PNDIS_802_11_VARIABLE_IEs)(pmlmeinfo->network.IEs + i);
++ pIE = (struct ndis_80211_var_ie *)(pmlmeinfo->network.IEs + i);
+
+ switch (pIE->ElementID)
+ {
@@ -20259,17 +17148,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ if ((!memcmp(pIE->data, RTW_WPA_OUI, 4)) ||
+ (!memcmp(pIE->data, WMM_OUI, 4)) ||
+ (!memcmp(pIE->data, WPS_OUI, 4)))
-+ {
++ {
+ vs_ie_length = pIE->Length;
-+ if((!padapter->registrypriv.wifi_spec) && (!memcmp(pIE->data, WPS_OUI, 4)))
++ if ((!padapter->registrypriv.wifi_spec) && (!memcmp(pIE->data, WPS_OUI, 4)))
+ {
-+ //Commented by Kurt 20110629
-+ //In some older APs, WPS handshake
-+ //would be fail if we append vender extensions informations to AP
++ /* Commented by Kurt 20110629 */
++ /* In some older APs, WPS handshake */
++ /* would be fail if we append vender extensions informations to AP */
+
+ vs_ie_length = 14;
+ }
-+
++
+ pframe = rtw_set_ie(pframe, _VENDOR_SPECIFIC_IE_, vs_ie_length, pIE->data, &(pattrib->pktlen));
+ }
+ break;
@@ -20278,20 +17167,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pframe = rtw_set_ie(pframe, EID_WPA2, pIE->Length, pIE->data, &(pattrib->pktlen));
+ break;
+ case EID_HTCapability:
-+ if(padapter->mlmepriv.htpriv.ht_option==true) {
++ if (padapter->mlmepriv.htpriv.ht_option ==true) {
+ if (!(is_ap_in_tkip(padapter)))
+ {
+ memcpy(&(pmlmeinfo->HT_caps), pIE->data, sizeof(struct HT_caps_element));
-+
-+ pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info = cpu_to_le16(pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info);
-+
+ pframe = rtw_set_ie(pframe, EID_HTCapability, pIE->Length , (u8 *)(&(pmlmeinfo->HT_caps)), &(pattrib->pktlen));
+ }
+ }
+ break;
+
+ case EID_EXTCapability:
-+ if(padapter->mlmepriv.htpriv.ht_option==true) {
++ if (padapter->mlmepriv.htpriv.ht_option ==true) {
+ pframe = rtw_set_ie(pframe, EID_EXTCapability, pIE->Length, pIE->data, &(pattrib->pktlen));
+ }
+ break;
@@ -20308,10 +17194,6 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+
-+#ifdef CONFIG_WAPI_SUPPORT
-+ rtw_build_assoc_req_wapi_ie(padapter, pframe, pattrib);
-+#endif
-+
+ pattrib->last_txcmdsz = pattrib->pktlen;
+ dump_mgntframe(padapter, pmgntframe);
+
@@ -20326,22 +17208,22 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return;
+}
+
-+//when wait_ack is ture, this function shoule be called at process context
-+static int _issue_nulldata(_adapter *padapter, unsigned char *da, unsigned int power_mode, int wait_ack)
++/* when wait_ack is ture, this function shoule be called at process context */
++static int _issue_nulldata(struct adapter *padapter, unsigned char *da, unsigned int power_mode, int wait_ack)
+{
+ int ret = _FAIL;
+ struct xmit_frame *pmgntframe;
+ struct pkt_attrib *pattrib;
-+ unsigned char *pframe;
-+ struct rtw_ieee80211_hdr *pwlanhdr;
-+ unsigned short *fctrl;
-+ struct xmit_priv *pxmitpriv;
-+ struct mlme_ext_priv *pmlmeext;
-+ struct mlme_ext_info *pmlmeinfo;
++ unsigned char *pframe;
++ struct ieee80211_hdr *pwlanhdr;
++ __le16 *fctrl;
++ struct xmit_priv *pxmitpriv;
++ struct mlme_ext_priv *pmlmeext;
++ struct mlme_ext_info *pmlmeinfo;
+
-+ //DBG_871X("%s:%d\n", __FUNCTION__, power_mode);
++ /* DBG_871X("%s:%d\n", __func__, power_mode); */
+
-+ if(!padapter)
++ if (!padapter)
+ goto exit;
+
+ pxmitpriv = &(padapter->xmitpriv);
@@ -20353,7 +17235,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ goto exit;
+ }
+
-+ //update attribute
++ /* update attribute */
+ pattrib = &pmgntframe->attrib;
+ update_mgntframe_attrib(padapter, pattrib);
+ pattrib->retry_ctrl = false;
@@ -20361,20 +17243,20 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET);
+
+ pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET;
-+ pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
++ pwlanhdr = (struct ieee80211_hdr *)pframe;
+
-+ fctrl = &(pwlanhdr->frame_ctl);
++ fctrl = &(pwlanhdr->frame_control);
+ *(fctrl) = 0;
+
-+ if((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE)
++ if ((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE)
+ {
+ SetFrDs(fctrl);
+ }
-+ else if((pmlmeinfo->state&0x03) == WIFI_FW_STATION_STATE)
++ else if ((pmlmeinfo->state&0x03) == WIFI_FW_STATION_STATE)
+ {
+ SetToDs(fctrl);
+ }
-+
++
+ if (power_mode)
+ {
+ SetPwrMgt(fctrl);
@@ -20388,12 +17270,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pmlmeext->mgnt_seq++;
+ SetFrameSubType(pframe, WIFI_DATA_NULL);
+
-+ pframe += sizeof(struct rtw_ieee80211_hdr_3addr);
-+ pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr);
++ pframe += sizeof(struct ieee80211_hdr_3addr);
++ pattrib->pktlen = sizeof(struct ieee80211_hdr_3addr);
+
+ pattrib->last_txcmdsz = pattrib->pktlen;
+
-+ if(wait_ack)
++ if (wait_ack)
+ {
+ ret = dump_mgntframe_and_wait_ack(padapter, pmgntframe);
+ }
@@ -20413,13 +17295,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ * When wait_ms > 0, this function shoule be called at process context
+ * da == NULL for station mode
+ */
-+int issue_nulldata(_adapter *padapter, unsigned char *da, unsigned int power_mode, int try_cnt, int wait_ms)
++int issue_nulldata(struct adapter *padapter, unsigned char *da, unsigned int power_mode, int try_cnt, int wait_ms)
+{
+ int ret;
+ int i = 0;
-+ unsigned long start = jiffies;
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ struct sta_info *psta;
+
+
@@ -20447,10 +17328,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ if (padapter->bDriverStopped || padapter->bSurpriseRemoved)
+ break;
+
-+ if(i < try_cnt && wait_ms > 0 && ret==_FAIL)
++ if (i < try_cnt && wait_ms > 0 && ret == _FAIL)
+ msleep(wait_ms);
+
-+ }while((ixmitpriv);
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ unsigned char *pframe;
++ struct ieee80211_hdr *pwlanhdr;
++ __le16 *fctrl;
++ u16 *qc;
++ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
-+ DBG_871X("%s\n", __FUNCTION__);
++ DBG_871X("%s\n", __func__);
+
+ if ((pmgntframe = alloc_mgtxmitframe(pxmitpriv)) == NULL)
+ {
+ goto exit;
+ }
+
-+ //update attribute
++ /* update attribute */
+ pattrib = &pmgntframe->attrib;
+ update_mgntframe_attrib(padapter, pattrib);
+
@@ -20531,25 +17413,25 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET);
+
+ pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET;
-+ pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
++ pwlanhdr = (struct ieee80211_hdr *)pframe;
+
-+ fctrl = &(pwlanhdr->frame_ctl);
++ fctrl = &(pwlanhdr->frame_control);
+ *(fctrl) = 0;
+
-+ if((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE)
++ if ((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE)
+ {
+ SetFrDs(fctrl);
+ }
-+ else if((pmlmeinfo->state&0x03) == WIFI_FW_STATION_STATE)
++ else if ((pmlmeinfo->state&0x03) == WIFI_FW_STATION_STATE)
+ {
+ SetToDs(fctrl);
+ }
+
-+ if(pattrib->mdata)
++ if (pattrib->mdata)
+ SetMData(fctrl);
+
+ qc = (unsigned short *)(pframe + pattrib->hdrlen - 2);
-+
++
+ SetPriority(qc, tid);
+
+ SetEOSP(qc, pattrib->eosp);
@@ -20564,12 +17446,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pmlmeext->mgnt_seq++;
+ SetFrameSubType(pframe, WIFI_QOS_DATA_NULL);
+
-+ pframe += sizeof(struct rtw_ieee80211_hdr_3addr_qos);
-+ pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr_qos);
++ pframe += sizeof(struct ieee80211_qos_hdr);
++ pattrib->pktlen = sizeof(struct ieee80211_qos_hdr);
+
+ pattrib->last_txcmdsz = pattrib->pktlen;
-+
-+ if(wait_ack)
++
++ if (wait_ack)
+ {
+ ret = dump_mgntframe_and_wait_ack(padapter, pmgntframe);
+ }
@@ -20583,20 +17465,19 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return ret;
+}
+
-+//when wait_ms >0 , this function shoule be called at process context
-+//da == NULL for station mode
-+int issue_qos_nulldata(_adapter *padapter, unsigned char *da, u16 tid, int try_cnt, int wait_ms)
++/* when wait_ms >0 , this function shoule be called at process context */
++/* da == NULL for station mode */
++int issue_qos_nulldata(struct adapter *padapter, unsigned char *da, u16 tid, int try_cnt, int wait_ms)
+{
+ int ret;
+ int i = 0;
-+ unsigned long start = jiffies;
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
+ /* da == NULL, assum it's null data for sta to ap*/
+ if (da == NULL)
+ da = get_my_bssid(&(pmlmeinfo->network));
-+
++
+ do
+ {
+ ret = _issue_qos_nulldata(padapter, da, tid, wait_ms>0?true:false);
@@ -20606,10 +17487,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ if (padapter->bDriverStopped || padapter->bSurpriseRemoved)
+ break;
+
-+ if(i < try_cnt && wait_ms > 0 && ret==_FAIL)
++ if (i < try_cnt && wait_ms > 0 && ret == _FAIL)
+ msleep(wait_ms);
+
-+ }while((ixmitpriv);
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ unsigned char *pframe;
++ struct ieee80211_hdr *pwlanhdr;
++ __le16 *fctrl;
++ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ int ret = _FAIL;
++ __le16 le_tmp;
+
-+ //DBG_871X("%s to "MAC_FMT"\n", __func__, MAC_ARG(da));
++ /* DBG_871X("%s to "MAC_FMT"\n", __func__, MAC_ARG(da)); */
+
+ if ((pmgntframe = alloc_mgtxmitframe(pxmitpriv)) == NULL)
+ {
+ goto exit;
+ }
+
-+ //update attribute
++ /* update attribute */
+ pattrib = &pmgntframe->attrib;
+ update_mgntframe_attrib(padapter, pattrib);
+ pattrib->retry_ctrl = false;
@@ -20659,9 +17541,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET);
+
+ pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET;
-+ pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
++ pwlanhdr = (struct ieee80211_hdr *)pframe;
+
-+ fctrl = &(pwlanhdr->frame_ctl);
++ fctrl = &(pwlanhdr->frame_control);
+ *(fctrl) = 0;
+
+ memcpy(pwlanhdr->addr1, da, ETH_ALEN);
@@ -20672,16 +17554,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pmlmeext->mgnt_seq++;
+ SetFrameSubType(pframe, WIFI_DEAUTH);
+
-+ pframe += sizeof(struct rtw_ieee80211_hdr_3addr);
-+ pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr);
++ pframe += sizeof(struct ieee80211_hdr_3addr);
++ pattrib->pktlen = sizeof(struct ieee80211_hdr_3addr);
+
-+ reason = cpu_to_le16(reason);
-+ pframe = rtw_set_fixed_ie(pframe, _RSON_CODE_ , (unsigned char *)&reason, &(pattrib->pktlen));
++ le_tmp = cpu_to_le16(reason);
++ pframe = rtw_set_fixed_ie(pframe, _RSON_CODE_ , (unsigned char *)&le_tmp, &(pattrib->pktlen));
+
+ pattrib->last_txcmdsz = pattrib->pktlen;
+
+
-+ if(wait_ack)
++ if (wait_ack)
+ {
+ ret = dump_mgntframe_and_wait_ack(padapter, pmgntframe);
+ }
@@ -20695,18 +17577,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return ret;
+}
+
-+int issue_deauth(_adapter *padapter, unsigned char *da, unsigned short reason)
++int issue_deauth(struct adapter *padapter, unsigned char *da, unsigned short reason)
+{
+ DBG_871X("%s to "MAC_FMT"\n", __func__, MAC_ARG(da));
+ return _issue_deauth(padapter, da, reason, false);
+}
+
-+int issue_deauth_ex(_adapter *padapter, u8 *da, unsigned short reason, int try_cnt,
++int issue_deauth_ex(struct adapter *padapter, u8 *da, unsigned short reason, int try_cnt,
+ int wait_ms)
+{
+ int ret;
+ int i = 0;
-+ unsigned long start = jiffies;
+
+ do
+ {
@@ -20717,10 +17598,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ if (padapter->bDriverStopped || padapter->bSurpriseRemoved)
+ break;
+
-+ if(i < try_cnt && wait_ms > 0 && ret==_FAIL)
++ if (i < try_cnt && wait_ms > 0 && ret == _FAIL)
+ msleep(wait_ms);
+
-+ }while((ixmitpriv);
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+
-+
-+ DBG_871X(FUNC_NDEV_FMT" ra="MAC_FMT", ch:%u, offset:%u\n",
-+ FUNC_NDEV_ARG(padapter->pnetdev), MAC_ARG(ra), new_ch, ch_offset);
-+
-+ if ((pmgntframe = alloc_mgtxmitframe(pxmitpriv)) == NULL)
-+ return;
-+
-+ //update attribute
-+ pattrib = &pmgntframe->attrib;
-+ update_mgntframe_attrib(padapter, pattrib);
-+
-+ memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET);
-+
-+ pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET;
-+ pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
-+
-+ fctrl = &(pwlanhdr->frame_ctl);
-+ *(fctrl) = 0;
-+
-+ memcpy(pwlanhdr->addr1, ra, ETH_ALEN); /* RA */
-+ memcpy(pwlanhdr->addr2, myid(&(padapter->eeprompriv)), ETH_ALEN); /* TA */
-+ memcpy(pwlanhdr->addr3, ra, ETH_ALEN); /* DA = RA */
-+
-+ SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq);
-+ pmlmeext->mgnt_seq++;
-+ SetFrameSubType(pframe, WIFI_ACTION);
-+
-+ pframe += sizeof(struct rtw_ieee80211_hdr_3addr);
-+ pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr);
-+
-+ /* category, action */
-+ {
-+ u8 category, action;
-+ category = RTW_WLAN_CATEGORY_SPECTRUM_MGMT;
-+ action = RTW_WLAN_ACTION_SPCT_CHL_SWITCH;
-+
-+ pframe = rtw_set_fixed_ie(pframe, 1, &(category), &(pattrib->pktlen));
-+ pframe = rtw_set_fixed_ie(pframe, 1, &(action), &(pattrib->pktlen));
-+ }
-+
-+ pframe = rtw_set_ie_ch_switch(pframe, &(pattrib->pktlen), 0, new_ch, 0);
-+ pframe = rtw_set_ie_secondary_ch_offset(pframe, &(pattrib->pktlen),
-+ hal_ch_offset_to_secondary_ch_offset(ch_offset));
-+
-+ pattrib->last_txcmdsz = pattrib->pktlen;
-+
-+ dump_mgntframe(padapter, pmgntframe);
-+
-+}
-+
-+#ifdef CONFIG_IEEE80211W
-+void issue_action_SA_Query(_adapter *padapter, unsigned char *raddr, unsigned char action, unsigned short tid)
++void issue_action_SA_Query(struct adapter *padapter, unsigned char *raddr, unsigned char action, unsigned short tid)
+{
-+ u8 category = RTW_WLAN_CATEGORY_SA_QUERY;
-+ u16 reason_code;
++ u8 category = RTW_WLAN_CATEGORY_SA_QUERY;
+ struct xmit_frame *pmgntframe;
+ struct pkt_attrib *pattrib;
-+ u8 *pframe;
-+ struct rtw_ieee80211_hdr *pwlanhdr;
-+ u16 *fctrl;
-+ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ struct sta_info *psta;
-+ struct sta_priv *pstapriv = &padapter->stapriv;
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
++ u8 *pframe;
++ struct ieee80211_hdr *pwlanhdr;
++ __le16 *fctrl;
++ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ __le16 le_tmp;
+
-+
-+ DBG_871X("%s\n", __FUNCTION__);
++ DBG_871X("%s\n", __func__);
+
+ if ((pmgntframe = alloc_mgtxmitframe(pxmitpriv)) == NULL)
+ {
-+ DBG_871X("%s: alloc_mgtxmitframe fail\n", __FUNCTION__);
++ DBG_871X("%s: alloc_mgtxmitframe fail\n", __func__);
+ return;
+ }
+
-+ //update attribute
++ /* update attribute */
+ pattrib = &pmgntframe->attrib;
+ update_mgntframe_attrib(padapter, pattrib);
+
+ memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET);
+
+ pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET;
-+ pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
++ pwlanhdr = (struct ieee80211_hdr *)pframe;
+
-+ fctrl = &(pwlanhdr->frame_ctl);
++ fctrl = &(pwlanhdr->frame_control);
+ *(fctrl) = 0;
+
-+ if(raddr)
++ if (raddr)
+ memcpy(pwlanhdr->addr1, raddr, ETH_ALEN);
+ else
+ memcpy(pwlanhdr->addr1, get_my_bssid(&(pmlmeinfo->network)), ETH_ALEN);
@@ -20856,24 +17668,24 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pmlmeext->mgnt_seq++;
+ SetFrameSubType(pframe, WIFI_ACTION);
+
-+ pframe += sizeof(struct rtw_ieee80211_hdr_3addr);
-+ pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr);
++ pframe += sizeof(struct ieee80211_hdr_3addr);
++ pattrib->pktlen = sizeof(struct ieee80211_hdr_3addr);
+
+ pframe = rtw_set_fixed_ie(pframe, 1, &category, &pattrib->pktlen);
+ pframe = rtw_set_fixed_ie(pframe, 1, &action, &pattrib->pktlen);
+
+ switch (action)
+ {
-+ case 0: //SA Query req
++ case 0: /* SA Query req */
+ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)&pmlmeext->sa_query_seq, &pattrib->pktlen);
+ pmlmeext->sa_query_seq++;
-+ //send sa query request to AP, AP should reply sa query response in 1 second
++ /* send sa query request to AP, AP should reply sa query response in 1 second */
+ set_sa_query_timer(pmlmeext, 1000);
+ break;
+
-+ case 1: //SA Query rsp
-+ tid = cpu_to_le16(tid);
-+ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)&tid, &pattrib->pktlen);
++ case 1: /* SA Query rsp */
++ le_tmp = cpu_to_le16(tid);
++ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)&le_tmp, &pattrib->pktlen);
+ break;
+ default:
+ break;
@@ -20883,49 +17695,49 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ dump_mgntframe(padapter, pmgntframe);
+}
-+#endif //CONFIG_IEEE80211W
+
-+void issue_action_BA(_adapter *padapter, unsigned char *raddr, unsigned char action, unsigned short status)
++void issue_action_BA(struct adapter *padapter, unsigned char *raddr, unsigned char action, unsigned short status)
+{
-+ u8 category = RTW_WLAN_CATEGORY_BACK;
-+ u16 start_seq;
-+ u16 BA_para_set;
-+ u16 reason_code;
-+ u16 BA_timeout_value;
-+ u16 BA_starting_seqctrl;
-+ HT_CAP_AMPDU_FACTOR max_rx_ampdu_factor;
++ u8 category = RTW_WLAN_CATEGORY_BACK;
++ u16 start_seq;
++ u16 BA_para_set;
++ u16 reason_code;
++ u16 BA_timeout_value;
++ u16 BA_starting_seqctrl = 0;
++ enum HT_CAP_AMPDU_FACTOR max_rx_ampdu_factor;
+ struct xmit_frame *pmgntframe;
+ struct pkt_attrib *pattrib;
-+ u8 *pframe;
-+ struct rtw_ieee80211_hdr *pwlanhdr;
-+ u16 *fctrl;
-+ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ struct sta_info *psta;
-+ struct sta_priv *pstapriv = &padapter->stapriv;
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
++ u8 *pframe;
++ struct ieee80211_hdr *pwlanhdr;
++ __le16 *fctrl;
++ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct sta_info *psta;
++ struct sta_priv *pstapriv = &padapter->stapriv;
++ struct registry_priv *pregpriv = &padapter->registrypriv;
++ __le16 le_tmp;
+
-+ DBG_871X("%s, category=%d, action=%d, status=%d\n", __FUNCTION__, category, action, status);
++ DBG_871X("%s, category =%d, action =%d, status =%d\n", __func__, category, action, status);
+
+ if ((pmgntframe = alloc_mgtxmitframe(pxmitpriv)) == NULL)
+ {
+ return;
+ }
+
-+ //update attribute
++ /* update attribute */
+ pattrib = &pmgntframe->attrib;
+ update_mgntframe_attrib(padapter, pattrib);
+
+ memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET);
+
+ pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET;
-+ pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
++ pwlanhdr = (struct ieee80211_hdr *)pframe;
+
-+ fctrl = &(pwlanhdr->frame_ctl);
++ fctrl = &(pwlanhdr->frame_control);
+ *(fctrl) = 0;
+
-+ //memcpy(pwlanhdr->addr1, get_my_bssid(&(pmlmeinfo->network)), ETH_ALEN);
++ /* memcpy(pwlanhdr->addr1, get_my_bssid(&(pmlmeinfo->network)), ETH_ALEN); */
+ memcpy(pwlanhdr->addr1, raddr, ETH_ALEN);
+ memcpy(pwlanhdr->addr2, myid(&(padapter->eeprompriv)), ETH_ALEN);
+ memcpy(pwlanhdr->addr3, get_my_bssid(&(pmlmeinfo->network)), ETH_ALEN);
@@ -20934,121 +17746,103 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pmlmeext->mgnt_seq++;
+ SetFrameSubType(pframe, WIFI_ACTION);
+
-+ pframe += sizeof(struct rtw_ieee80211_hdr_3addr);
-+ pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr);
++ pframe += sizeof(struct ieee80211_hdr_3addr);
++ pattrib->pktlen = sizeof(struct ieee80211_hdr_3addr);
+
+ pframe = rtw_set_fixed_ie(pframe, 1, &(category), &(pattrib->pktlen));
+ pframe = rtw_set_fixed_ie(pframe, 1, &(action), &(pattrib->pktlen));
+
-+ status = cpu_to_le16(status);
-+
++ if (category == 3) {
++ switch (action) {
++ case 0: /* ADDBA req */
++ do {
++ pmlmeinfo->dialogToken++;
++ } while (pmlmeinfo->dialogToken == 0);
++ pframe = rtw_set_fixed_ie(pframe, 1, &(pmlmeinfo->dialogToken), &(pattrib->pktlen));
+
-+ if (category == 3)
-+ {
-+ switch (action)
-+ {
-+ case 0: //ADDBA req
-+ do {
-+ pmlmeinfo->dialogToken++;
-+ } while (pmlmeinfo->dialogToken == 0);
-+ pframe = rtw_set_fixed_ie(pframe, 1, &(pmlmeinfo->dialogToken), &(pattrib->pktlen));
++ if (rtw_btcoex_IsBTCoexCtrlAMPDUSize(padapter)) {
++ /* A-MSDU NOT Supported */
++ BA_para_set = 0;
++ /* immediate Block Ack */
++ BA_para_set |= (1 << 1) & IEEE80211_ADDBA_PARAM_POLICY_MASK;
++ /* TID */
++ BA_para_set |= (status << 2) & IEEE80211_ADDBA_PARAM_TID_MASK;
++ /* max buffer size is 8 MSDU */
++ BA_para_set |= (8 << 6) & RTW_IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK;
++ } else {
++ BA_para_set = (0x1002 | ((status & 0xf) << 2)); /* immediate ack & 64 buffer size */
++ }
++ le_tmp = cpu_to_le16(BA_para_set);
++ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(le_tmp)), &(pattrib->pktlen));
+
-+ if (rtw_btcoex_IsBTCoexCtrlAMPDUSize(padapter) == true)
-+ {
-+ // A-MSDU NOT Supported
-+ BA_para_set = 0;
-+ // immediate Block Ack
-+ BA_para_set |= (1 << 1) & IEEE80211_ADDBA_PARAM_POLICY_MASK;
-+ // TID
-+ BA_para_set |= (status << 2) & IEEE80211_ADDBA_PARAM_TID_MASK;
-+ // max buffer size is 8 MSDU
-+ BA_para_set |= (8 << 6) & RTW_IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK;
-+ }
-+ else
-+ {
-+ BA_para_set = (0x1002 | ((status & 0xf) << 2)); //immediate ack & 64 buffer size
-+ }
-+ //sys_mib.BA_para_set = 0x0802; //immediate ack & 32 buffer size
-+ BA_para_set = cpu_to_le16(BA_para_set);
-+ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(BA_para_set)), &(pattrib->pktlen));
++ BA_timeout_value = 5000;/* 5ms */
++ le_tmp = cpu_to_le16(BA_timeout_value);
++ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(le_tmp)), &(pattrib->pktlen));
+
-+ //BA_timeout_value = 0xffff;//max: 65535 TUs(~ 65 ms)
-+ BA_timeout_value = 5000;//~ 5ms
-+ BA_timeout_value = cpu_to_le16(BA_timeout_value);
-+ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(BA_timeout_value)), &(pattrib->pktlen));
++ /* if ((psta = rtw_get_stainfo(pstapriv, pmlmeinfo->network.MacAddress)) != NULL) */
++ if ((psta = rtw_get_stainfo(pstapriv, raddr)) != NULL) {
++ start_seq = (psta->sta_xmitpriv.txseq_tid[status & 0x07]&0xfff) + 1;
+
-+ //if ((psta = rtw_get_stainfo(pstapriv, pmlmeinfo->network.MacAddress)) != NULL)
-+ if ((psta = rtw_get_stainfo(pstapriv, raddr)) != NULL)
-+ {
-+ start_seq = (psta->sta_xmitpriv.txseq_tid[status & 0x07]&0xfff) + 1;
++ DBG_871X("BA_starting_seqctrl = %d for TID =%d\n", start_seq, status & 0x07);
+
-+ DBG_871X("BA_starting_seqctrl = %d for TID=%d\n", start_seq, status & 0x07);
-+
-+ psta->BA_starting_seqctrl[status & 0x07] = start_seq;
-+
-+ BA_starting_seqctrl = start_seq << 4;
-+ }
-+
-+ BA_starting_seqctrl = cpu_to_le16(BA_starting_seqctrl);
-+ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(BA_starting_seqctrl)), &(pattrib->pktlen));
-+ break;
++ psta->BA_starting_seqctrl[status & 0x07] = start_seq;
+
-+ case 1: //ADDBA rsp
-+ pframe = rtw_set_fixed_ie(pframe, 1, &(pmlmeinfo->ADDBA_req.dialog_token), &(pattrib->pktlen));
-+ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&status), &(pattrib->pktlen));
-+ /*
-+ //BA_para_set = cpu_to_le16((le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f) | 0x1000); //64 buffer size
-+ BA_para_set = ((le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f) | 0x1000); //64 buffer size
-+ */
-+ if(padapter->driver_rx_ampdu_factor != 0xFF)
-+ max_rx_ampdu_factor = (HT_CAP_AMPDU_FACTOR)padapter->driver_rx_ampdu_factor;
-+ else
-+ rtw_hal_get_def_var(padapter, HW_VAR_MAX_RX_AMPDU_FACTOR, &max_rx_ampdu_factor);
-+
-+ if(MAX_AMPDU_FACTOR_64K == max_rx_ampdu_factor)
-+ BA_para_set = ((le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f) | 0x1000); //64 buffer size
-+ else if(MAX_AMPDU_FACTOR_32K == max_rx_ampdu_factor)
-+ BA_para_set = ((le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f) | 0x0800); //32 buffer size
-+ else if(MAX_AMPDU_FACTOR_16K == max_rx_ampdu_factor)
-+ BA_para_set = ((le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f) | 0x0400); //16 buffer size
-+ else if(MAX_AMPDU_FACTOR_8K == max_rx_ampdu_factor)
-+ BA_para_set = ((le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f) | 0x0200); //8 buffer size
-+ else
-+ BA_para_set = ((le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f) | 0x1000); //64 buffer size
++ BA_starting_seqctrl = start_seq << 4;
++ }
+
-+ if (rtw_btcoex_IsBTCoexCtrlAMPDUSize(padapter) == true &&
-+ padapter->driver_rx_ampdu_factor == 0xFF)
-+ {
-+ // max buffer size is 8 MSDU
-+ BA_para_set &= ~RTW_IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK;
-+ BA_para_set |= (8 << 6) & RTW_IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK;
-+ }
++ le_tmp = cpu_to_le16(BA_starting_seqctrl);
++ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(le_tmp)), &(pattrib->pktlen));
++ break;
+
-+ if(pregpriv->ampdu_amsdu==0)//disabled
-+ BA_para_set = cpu_to_le16(BA_para_set & ~BIT(0));
-+ else if(pregpriv->ampdu_amsdu==1)//enabled
-+ BA_para_set = cpu_to_le16(BA_para_set | BIT(0));
-+ else //auto
-+ BA_para_set = cpu_to_le16(BA_para_set);
-+
-+ //set amsdu_ampdu to auto during wifi logo test
-+ if (padapter->registrypriv.wifi_spec)
-+ BA_para_set = cpu_to_le16(BA_para_set);
-+
-+ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(BA_para_set)), &(pattrib->pktlen));
-+ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(pmlmeinfo->ADDBA_req.BA_timeout_value)), &(pattrib->pktlen));
-+ break;
-+ case 2://DELBA
-+ BA_para_set = (status & 0x1F) << 3;
-+ BA_para_set = cpu_to_le16(BA_para_set);
-+ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(BA_para_set)), &(pattrib->pktlen));
++ case 1: /* ADDBA rsp */
++ pframe = rtw_set_fixed_ie(pframe, 1, &(pmlmeinfo->ADDBA_req.dialog_token), &(pattrib->pktlen));
++ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&status), &(pattrib->pktlen));
++ if (padapter->driver_rx_ampdu_factor != 0xFF)
++ max_rx_ampdu_factor =
++ (enum HT_CAP_AMPDU_FACTOR)padapter->driver_rx_ampdu_factor;
++ else
++ rtw_hal_get_def_var(padapter,
++ HW_VAR_MAX_RX_AMPDU_FACTOR, &max_rx_ampdu_factor);
+
-+ reason_code = 37;//Requested from peer STA as it does not want to use the mechanism
-+ reason_code = cpu_to_le16(reason_code);
-+ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(reason_code)), &(pattrib->pktlen));
-+ break;
-+ default:
-+ break;
++ if (MAX_AMPDU_FACTOR_64K == max_rx_ampdu_factor)
++ BA_para_set = ((le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f) | 0x1000); /* 64 buffer size */
++ else if (MAX_AMPDU_FACTOR_32K == max_rx_ampdu_factor)
++ BA_para_set = ((le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f) | 0x0800); /* 32 buffer size */
++ else if (MAX_AMPDU_FACTOR_16K == max_rx_ampdu_factor)
++ BA_para_set = ((le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f) | 0x0400); /* 16 buffer size */
++ else if (MAX_AMPDU_FACTOR_8K == max_rx_ampdu_factor)
++ BA_para_set = ((le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f) | 0x0200); /* 8 buffer size */
++ else
++ BA_para_set = ((le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f) | 0x1000); /* 64 buffer size */
++
++ if (rtw_btcoex_IsBTCoexCtrlAMPDUSize(padapter) &&
++ padapter->driver_rx_ampdu_factor == 0xFF) {
++ /* max buffer size is 8 MSDU */
++ BA_para_set &= ~RTW_IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK;
++ BA_para_set |= (8 << 6) & RTW_IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK;
++ }
++
++ if (pregpriv->ampdu_amsdu == 0)/* disabled */
++ le_tmp = cpu_to_le16(BA_para_set & ~BIT(0));
++ else if (pregpriv->ampdu_amsdu == 1)/* enabled */
++ le_tmp = cpu_to_le16(BA_para_set | BIT(0));
++ else /* auto */
++ le_tmp = cpu_to_le16(BA_para_set);
++
++ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(le_tmp)), &(pattrib->pktlen));
++ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(pmlmeinfo->ADDBA_req.BA_timeout_value)), &(pattrib->pktlen));
++ break;
++ case 2:/* DELBA */
++ BA_para_set = (status & 0x1F) << 3;
++ le_tmp = cpu_to_le16(BA_para_set);
++ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(le_tmp)), &(pattrib->pktlen));
++
++ reason_code = 37;
++ le_tmp = cpu_to_le16(reason_code);
++ pframe = rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(le_tmp)), &(pattrib->pktlen));
++ break;
++ default:
++ break;
+ }
+ }
+
@@ -21057,33 +17851,32 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ dump_mgntframe(padapter, pmgntframe);
+}
+
-+static void issue_action_BSSCoexistPacket(_adapter *padapter)
-+{
-+ _irqL irqL;
-+ _list *plist, *phead;
++static void issue_action_BSSCoexistPacket(struct adapter *padapter)
++{
++ struct list_head *plist, *phead;
+ unsigned char category, action;
+ struct xmit_frame *pmgntframe;
+ struct pkt_attrib *pattrib;
-+ unsigned char *pframe;
-+ struct rtw_ieee80211_hdr *pwlanhdr;
-+ unsigned short *fctrl;
++ unsigned char *pframe;
++ struct ieee80211_hdr *pwlanhdr;
++ __le16 *fctrl;
+ struct wlan_network *pnetwork = NULL;
-+ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
++ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ _queue *queue = &(pmlmepriv->scanned_queue);
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct __queue *queue = &(pmlmepriv->scanned_queue);
+ u8 InfoContent[16] = {0};
+ u8 ICS[8][15];
+
-+ if((pmlmepriv->num_FortyMHzIntolerant==0) || (pmlmepriv->num_sta_no_ht==0))
++ if ((pmlmepriv->num_FortyMHzIntolerant == 0) || (pmlmepriv->num_sta_no_ht == 0))
+ return;
+
-+ if(true == pmlmeinfo->bwmode_updated)
++ if (true == pmlmeinfo->bwmode_updated)
+ return;
-+
+
-+ DBG_871X("%s\n", __FUNCTION__);
++
++ DBG_871X("%s\n", __func__);
+
+
+ category = RTW_WLAN_CATEGORY_PUBLIC;
@@ -21094,16 +17887,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return;
+ }
+
-+ //update attribute
++ /* update attribute */
+ pattrib = &pmgntframe->attrib;
+ update_mgntframe_attrib(padapter, pattrib);
+
+ memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET);
+
+ pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET;
-+ pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
++ pwlanhdr = (struct ieee80211_hdr *)pframe;
+
-+ fctrl = &(pwlanhdr->frame_ctl);
++ fctrl = &(pwlanhdr->frame_control);
+ *(fctrl) = 0;
+
+ memcpy(pwlanhdr->addr1, get_my_bssid(&(pmlmeinfo->network)), ETH_ALEN);
@@ -21114,166 +17907,166 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pmlmeext->mgnt_seq++;
+ SetFrameSubType(pframe, WIFI_ACTION);
+
-+ pframe += sizeof(struct rtw_ieee80211_hdr_3addr);
-+ pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr);
++ pframe += sizeof(struct ieee80211_hdr_3addr);
++ pattrib->pktlen = sizeof(struct ieee80211_hdr_3addr);
+
+ pframe = rtw_set_fixed_ie(pframe, 1, &(category), &(pattrib->pktlen));
+ pframe = rtw_set_fixed_ie(pframe, 1, &(action), &(pattrib->pktlen));
+
+
-+ //
-+ if(pmlmepriv->num_FortyMHzIntolerant>0)
++ /* */
++ if (pmlmepriv->num_FortyMHzIntolerant>0)
+ {
-+ u8 iedata=0;
-+
-+ iedata |= BIT(2);//20 MHz BSS Width Request
++ u8 iedata = 0;
++
++ iedata |= BIT(2);/* 20 MHz BSS Width Request */
+
+ pframe = rtw_set_ie(pframe, EID_BSSCoexistence, 1, &iedata, &(pattrib->pktlen));
-+
-+ }
-+
+
-+ //
++ }
++
++
++ /* */
+ memset(ICS, 0, sizeof(ICS));
-+ if(pmlmepriv->num_sta_no_ht>0)
-+ {
++ if (pmlmepriv->num_sta_no_ht>0)
++ {
+ int i;
-+
-+ _enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
++
++ spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
+
+ phead = get_list_head(queue);
+ plist = get_next(phead);
-+
-+ while(1)
++
++ while (1)
+ {
+ int len;
+ u8 *p;
-+ WLAN_BSSID_EX *pbss_network;
-+
-+ if (rtw_end_of_queue_search(phead,plist)== true)
-+ break;
++ struct wlan_bssid_ex *pbss_network;
++
++ if (phead == plist)
++ break;
++
++ pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list);
+
-+ pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list);
-+
+ plist = get_next(plist);
+
-+ pbss_network = (WLAN_BSSID_EX *)&pnetwork->network;
++ pbss_network = (struct wlan_bssid_ex *)&pnetwork->network;
+
+ p = rtw_get_ie(pbss_network->IEs + _FIXED_IE_LENGTH_, _HT_CAPABILITY_IE_, &len, pbss_network->IELength - _FIXED_IE_LENGTH_);
-+ if((p==NULL) || (len==0))//non-HT
++ if ((p == NULL) || (len == 0))/* non-HT */
+ {
-+ if((pbss_network->Configuration.DSConfig<=0) || (pbss_network->Configuration.DSConfig>14))
++ if ((pbss_network->Configuration.DSConfig<= 0) || (pbss_network->Configuration.DSConfig>14))
+ continue;
-+
-+ ICS[0][pbss_network->Configuration.DSConfig]=1;
-+
-+ if(ICS[0][0] == 0)
-+ ICS[0][0] = 1;
-+ }
-+
-+ }
+
-+ _exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
++ ICS[0][pbss_network->Configuration.DSConfig]= 1;
++
++ if (ICS[0][0] == 0)
++ ICS[0][0] = 1;
++ }
++
++ }
++
++ spin_unlock_bh(&(pmlmepriv->scanned_queue.lock));
+
+
-+ for(i= 0;i<8;i++)
++ for (i = 0;i<8;i++)
+ {
-+ if(ICS[i][0] == 1)
++ if (ICS[i][0] == 1)
+ {
+ int j, k = 0;
-+
-+ InfoContent[k] = i;
-+ //SET_BSS_INTOLERANT_ELE_REG_CLASS(InfoContent,i);
++
++ InfoContent[k] = i;
++ /* SET_BSS_INTOLERANT_ELE_REG_CLASS(InfoContent, i); */
+ k++;
-+
-+ for(j=1;j<=14;j++)
++
++ for (j = 1;j<= 14;j++)
+ {
-+ if(ICS[i][j]==1)
++ if (ICS[i][j]== 1)
+ {
-+ if(k<16)
++ if (k<16)
+ {
-+ InfoContent[k] = j; //channel number
-+ //SET_BSS_INTOLERANT_ELE_CHANNEL(InfoContent+k, j);
++ InfoContent[k] = j; /* channel number */
++ /* SET_BSS_INTOLERANT_ELE_CHANNEL(InfoContent+k, j); */
+ k++;
-+ }
-+ }
-+ }
++ }
++ }
++ }
+
+ pframe = rtw_set_ie(pframe, EID_BSSIntolerantChlReport, k, InfoContent, &(pattrib->pktlen));
-+
++
+ }
-+
++
+ }
-+
++
+
+ }
-+
++
+
+ pattrib->last_txcmdsz = pattrib->pktlen;
+
+ dump_mgntframe(padapter, pmgntframe);
+}
+
-+unsigned int send_delba(_adapter *padapter, u8 initiator, u8 *addr)
++unsigned int send_delba(struct adapter *padapter, u8 initiator, u8 *addr)
+{
+ struct sta_priv *pstapriv = &padapter->stapriv;
+ struct sta_info *psta = NULL;
-+ //struct recv_reorder_ctrl *preorder_ctrl;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ /* struct recv_reorder_ctrl *preorder_ctrl; */
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ u16 tid;
+
-+ if((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
++ if ((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
+ if (!(pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS))
+ return _SUCCESS;
-+
++
+ psta = rtw_get_stainfo(pstapriv, addr);
-+ if(psta==NULL)
++ if (psta == NULL)
+ return _SUCCESS;
+
-+ //DBG_871X("%s:%s\n", __FUNCTION__, (initiator==0)?"RX_DIR":"TX_DIR");
-+
-+ if(initiator==0) // recipient
++ /* DBG_871X("%s:%s\n", __func__, (initiator == 0)?"RX_DIR":"TX_DIR"); */
++
++ if (initiator == 0) /* recipient */
+ {
-+ for(tid = 0;tidrecvreorder_ctrl[tid].enable == true)
++ if (psta->recvreorder_ctrl[tid].enable == true)
+ {
-+ DBG_871X("rx agg disable tid(%d)\n",tid);
++ DBG_871X("rx agg disable tid(%d)\n", tid);
+ issue_action_BA(padapter, addr, RTW_WLAN_ACTION_DELBA, (((tid <<1) |initiator)&0x1F));
+ psta->recvreorder_ctrl[tid].enable = false;
+ psta->recvreorder_ctrl[tid].indicate_seq = 0xffff;
+ #ifdef DBG_RX_SEQ
-+ DBG_871X("DBG_RX_SEQ %s:%d indicate_seq:%u \n", __FUNCTION__, __LINE__,
++ DBG_871X("DBG_RX_SEQ %s:%d indicate_seq:%u\n", __func__, __LINE__,
+ psta->recvreorder_ctrl[tid].indicate_seq);
+ #endif
-+ }
++ }
+ }
+ }
-+ else if(initiator == 1)// originator
++ else if (initiator == 1)/* originator */
+ {
-+ //DBG_871X("tx agg_enable_bitmap(0x%08x)\n", psta->htpriv.agg_enable_bitmap);
-+ for(tid = 0;tidhtpriv.agg_enable_bitmap); */
++ for (tid = 0;tidhtpriv.agg_enable_bitmap & BIT(tid))
++ if (psta->htpriv.agg_enable_bitmap & BIT(tid))
+ {
-+ DBG_871X("tx agg disable tid(%d)\n",tid);
-+ issue_action_BA(padapter, addr, RTW_WLAN_ACTION_DELBA, (((tid <<1) |initiator)&0x1F) );
++ DBG_871X("tx agg disable tid(%d)\n", tid);
++ issue_action_BA(padapter, addr, RTW_WLAN_ACTION_DELBA, (((tid <<1) |initiator)&0x1F));
+ psta->htpriv.agg_enable_bitmap &= ~BIT(tid);
+ psta->htpriv.candidate_tid_bitmap &= ~BIT(tid);
-+
-+ }
++
++ }
+ }
+ }
-+
++
+ return _SUCCESS;
-+
++
+}
+
-+unsigned int send_beacon(_adapter *padapter)
++unsigned int send_beacon(struct adapter *padapter)
+{
-+ u8 bxmitok = false;
-+ int issue=0;
++ u8 bxmitok = false;
++ int issue = 0;
+ int poll = 0;
+ unsigned long start = jiffies;
+
@@ -21286,30 +18079,30 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ yield();
+ rtw_hal_get_hwreg(padapter, HW_VAR_BCN_VALID, (u8 *)(&bxmitok));
+ poll++;
-+ }while((poll%10)!=0 && false == bxmitok && !padapter->bSurpriseRemoved && !padapter->bDriverStopped);
++ }while ((poll%10)!= 0 && false == bxmitok && !padapter->bSurpriseRemoved && !padapter->bDriverStopped);
+
-+ }while(false == bxmitok && issue<100 && !padapter->bSurpriseRemoved && !padapter->bDriverStopped);
++ }while (false == bxmitok && issue<100 && !padapter->bSurpriseRemoved && !padapter->bDriverStopped);
+
-+ if(padapter->bSurpriseRemoved || padapter->bDriverStopped)
++ if (padapter->bSurpriseRemoved || padapter->bDriverStopped)
+ {
+ return _FAIL;
+ }
+
-+
-+ if(false == bxmitok)
++
++ if (false == bxmitok)
+ {
-+ DBG_871X("%s fail! %u ms\n", __FUNCTION__, jiffies_to_msecs(jiffies - start));
++ DBG_871X("%s fail! %u ms\n", __func__, jiffies_to_msecs(jiffies - start));
+ return _FAIL;
+ }
+ else
+ {
+ unsigned long passing_time = jiffies_to_msecs(jiffies - start);
+
-+ if(passing_time > 100 || issue > 3)
-+ DBG_871X("%s success, issue:%d, poll:%d, %lu ms\n", __FUNCTION__, issue, poll, passing_time);
-+ //else
-+ // DBG_871X("%s success, issue:%d, poll:%d, %u ms\n", __FUNCTION__, issue, poll, passing_time);
-+
++ if (passing_time > 100 || issue > 3)
++ DBG_871X("%s success, issue:%d, poll:%d, %lu ms\n", __func__, issue, poll, passing_time);
++ /* else */
++ /* DBG_871X("%s success, issue:%d, poll:%d, %u ms\n", __func__, issue, poll, passing_time); */
++
+ return _SUCCESS;
+ }
+}
@@ -21320,30 +18113,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+*****************************************************************************/
+
-+bool IsLegal5GChannel(
-+ IN PADAPTER Adapter,
-+ IN u8 channel)
++void site_survey(struct adapter *padapter)
+{
-+
-+ int i=0;
-+ u8 Channel_5G[45] = {36,38,40,42,44,46,48,50,52,54,56,58,
-+ 60,62,64,100,102,104,106,108,110,112,114,116,118,120,122,
-+ 124,126,128,130,132,134,136,138,140,149,151,153,155,157,159,
-+ 161,163,165};
-+ for(i=0;imlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ u32 initialgain = 0;
-+ u32 channel_scan_time_ms = 0,val32 = 0;
++ u32 channel_scan_time_ms = 0;
+
+ {
+ struct rtw_ieee80211_channel *ch;
@@ -21353,7 +18130,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ ScanType = (ch->flags & RTW_IEEE80211_CHAN_PASSIVE_SCAN) ? SCAN_PASSIVE : SCAN_ACTIVE;
+ }
+ }
-+
++
+ DBG_871X(FUNC_ADPT_FMT" ch:%u (cnt:%u) at %dms, %c%c%c\n"
+ , FUNC_ADPT_ARG(padapter)
+ , survey_channel
@@ -21361,42 +18138,42 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ , jiffies_to_msecs(jiffies - padapter->mlmepriv.scan_start_time)
+ , ScanType?'A':'P', pmlmeext->sitesurvey_res.scan_mode?'A':'P'
+ , pmlmeext->sitesurvey_res.ssid[0].SsidLength?'S':' '
-+ );
++ );
+#ifdef DBG_FIXED_CHAN
+ DBG_871X(FUNC_ADPT_FMT" fixed_chan:%u\n", pmlmeext->fixed_chan);
+#endif
+
-+ if(survey_channel != 0)
++ if (survey_channel != 0)
+ {
-+ //PAUSE 4-AC Queue when site_survey
-+ //rtw_hal_get_hwreg(padapter, HW_VAR_TXPAUSE, (u8 *)(&val8));
-+ //val8 |= 0x0f;
-+ //rtw_hal_set_hwreg(padapter, HW_VAR_TXPAUSE, (u8 *)(&val8));
-+ if(pmlmeext->sitesurvey_res.channel_idx == 0)
++ /* PAUSE 4-AC Queue when site_survey */
++ /* rtw_hal_get_hwreg(padapter, HW_VAR_TXPAUSE, (u8 *)(&val8)); */
++ /* val8 |= 0x0f; */
++ /* rtw_hal_set_hwreg(padapter, HW_VAR_TXPAUSE, (u8 *)(&val8)); */
++ if (pmlmeext->sitesurvey_res.channel_idx == 0)
+ {
+#ifdef DBG_FIXED_CHAN
-+ if(pmlmeext->fixed_chan !=0xff)
++ if (pmlmeext->fixed_chan != 0xff)
+ set_channel_bwmode(padapter, pmlmeext->fixed_chan, HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20);
-+ else
++ else
+#endif
+ set_channel_bwmode(padapter, survey_channel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20);
+ }
+ else
+ {
+#ifdef DBG_FIXED_CHAN
-+ if(pmlmeext->fixed_chan!=0xff)
++ if (pmlmeext->fixed_chan!= 0xff)
+ SelectChannel(padapter, pmlmeext->fixed_chan);
-+ else
++ else
+#endif
+ SelectChannel(padapter, survey_channel);
+ }
+
-+ if(ScanType == SCAN_ACTIVE) //obey the channel plan setting...
++ if (ScanType == SCAN_ACTIVE) /* obey the channel plan setting... */
+ {
+ {
+ int i;
-+ for(i=0;isitesurvey_res.ssid[i].SsidLength) {
++ for (i = 0;isitesurvey_res.ssid[i].SsidLength) {
+ /* IOT issue, When wifi_spec is not set, send one probe req without WPS IE. */
+ if (padapter->registrypriv.wifi_spec)
+ issue_probereq(padapter, &(pmlmeext->sitesurvey_res.ssid[i]), NULL);
@@ -21406,7 +18183,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+ }
+
-+ if(pmlmeext->sitesurvey_res.scan_mode == SCAN_ACTIVE) {
++ if (pmlmeext->sitesurvey_res.scan_mode == SCAN_ACTIVE) {
+ /* IOT issue, When wifi_spec is not set, send one probe req without WPS IE. */
+ if (padapter->registrypriv.wifi_spec)
+ issue_probereq(padapter, NULL, NULL);
@@ -21425,9 +18202,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ struct noise_info info;
+ info.bPauseDIG = false;
+ info.IGIValue = 0;
-+ info.max_time = channel_scan_time_ms/2;//ms
++ info.max_time = channel_scan_time_ms/2;/* ms */
+ info.chan = survey_channel;
-+ rtw_hal_set_odm_var(padapter, HAL_ODM_NOISE_MONITOR,&info, false);
++ rtw_hal_set_odm_var(padapter, HAL_ODM_NOISE_MONITOR,&info, false);
+ }
+#endif
+
@@ -21435,35 +18212,35 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ else
+ {
+
-+ // channel number is 0 or this channel is not valid.
++ /* channel number is 0 or this channel is not valid. */
+
+ {
+ pmlmeext->sitesurvey_res.state = SCAN_COMPLETE;
+
-+ //switch back to the original channel
-+ //SelectChannel(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset);
++ /* switch back to the original channel */
++ /* SelectChannel(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset); */
+
+ set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
+
-+ //flush 4-AC Queue after site_survey
-+ //val8 = 0;
-+ //rtw_hal_set_hwreg(padapter, HW_VAR_TXPAUSE, (u8 *)(&val8));
++ /* flush 4-AC Queue after site_survey */
++ /* val8 = 0; */
++ /* rtw_hal_set_hwreg(padapter, HW_VAR_TXPAUSE, (u8 *)(&val8)); */
+
-+ //config MSR
++ /* config MSR */
+ Set_MSR(padapter, (pmlmeinfo->state & 0x3));
+
-+ initialgain = 0xff; //restore RX GAIN
-+ rtw_hal_set_hwreg(padapter, HW_VAR_INITIAL_GAIN, (u8 *)(&initialgain));
-+ //turn on dynamic functions
++ initialgain = 0xff; /* restore RX GAIN */
++ rtw_hal_set_hwreg(padapter, HW_VAR_INITIAL_GAIN, (u8 *)(&initialgain));
++ /* turn on dynamic functions */
+ Restore_DM_Func_Flag(padapter);
-+ //Switch_DM_Func(padapter, DYNAMIC_ALL_FUNC_ENABLE, true);
++ /* Switch_DM_Func(padapter, DYNAMIC_ALL_FUNC_ENABLE, true); */
+
+ if (is_client_associated_to_ap(padapter) == true)
+ {
+ issue_nulldata(padapter, NULL, 0, 3, 500);
+ }
+
-+ val8 = 0; //survey done
++ val8 = 0; /* survey done */
+ rtw_hal_set_hwreg(padapter, HW_VAR_MLME_SITESURVEY, (u8 *)(&val8));
+
+ report_surveydone_event(padapter);
@@ -21481,37 +18258,38 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+}
+
-+//collect bss info from Beacon and Probe request/response frames.
-+u8 collect_bss_info(_adapter *padapter, union recv_frame *precv_frame, WLAN_BSSID_EX *bssid)
++/* collect bss info from Beacon and Probe request/response frames. */
++u8 collect_bss_info(struct adapter *padapter, union recv_frame *precv_frame, struct wlan_bssid_ex *bssid)
+{
+ int i;
-+ u32 len;
-+ u8 *p;
-+ u16 val16, subtype;
-+ u8 *pframe = precv_frame->u.hdr.rx_data;
-+ u32 packet_len = precv_frame->u.hdr.len;
++ u32 len;
++ u8 *p;
++ u16 val16, subtype;
++ u8 *pframe = precv_frame->u.hdr.rx_data;
++ u32 packet_len = precv_frame->u.hdr.len;
+ u8 ie_offset;
-+ struct registry_priv *pregistrypriv = &padapter->registrypriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct registry_priv *pregistrypriv = &padapter->registrypriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ __le32 le32_tmp;
+
-+ len = packet_len - sizeof(struct rtw_ieee80211_hdr_3addr);
++ len = packet_len - sizeof(struct ieee80211_hdr_3addr);
+
+ if (len > MAX_IE_SZ)
+ {
-+ //DBG_871X("IE too long for survey event\n");
++ /* DBG_871X("IE too long for survey event\n"); */
+ return _FAIL;
+ }
+
-+ memset(bssid, 0, sizeof(WLAN_BSSID_EX));
++ memset(bssid, 0, sizeof(struct wlan_bssid_ex));
+
+ subtype = GetFrameSubType(pframe);
+
-+ if(subtype==WIFI_BEACON) {
++ if (subtype ==WIFI_BEACON) {
+ bssid->Reserved[0] = 1;
+ ie_offset = _BEACON_IE_OFFSET_;
+ } else {
-+ // FIXME : more type
++ /* FIXME : more type */
+ if (subtype == WIFI_PROBERSP) {
+ ie_offset = _PROBERSP_IE_OFFSET_;
+ bssid->Reserved[0] = 3;
@@ -21525,20 +18303,19 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ ie_offset = _FIXED_IE_LENGTH_;
+ }
+ }
-+
-+ bssid->Length = sizeof(WLAN_BSSID_EX) - MAX_IE_SZ + len;
+
-+ //below is to copy the information element
++ bssid->Length = sizeof(struct wlan_bssid_ex) - MAX_IE_SZ + len;
++
++ /* below is to copy the information element */
+ bssid->IELength = len;
-+ memcpy(bssid->IEs, (pframe + sizeof(struct rtw_ieee80211_hdr_3addr)), bssid->IELength);
++ memcpy(bssid->IEs, (pframe + sizeof(struct ieee80211_hdr_3addr)), bssid->IELength);
+
-+ //get the signal strength
-+ //bssid->Rssi = precv_frame->u.hdr.attrib.SignalStrength; // 0-100 index.
-+ bssid->Rssi = precv_frame->u.hdr.attrib.phy_info.RecvSignalPower; // in dBM.raw data
-+ bssid->PhyInfo.SignalQuality = precv_frame->u.hdr.attrib.phy_info.SignalQuality;//in percentage
-+ bssid->PhyInfo.SignalStrength = precv_frame->u.hdr.attrib.phy_info.SignalStrength;//in percentage
++ /* get the signal strength */
++ bssid->Rssi = precv_frame->u.hdr.attrib.phy_info.RecvSignalPower; /* in dBM.raw data */
++ bssid->PhyInfo.SignalQuality = precv_frame->u.hdr.attrib.phy_info.SignalQuality;/* in percentage */
++ bssid->PhyInfo.SignalStrength = precv_frame->u.hdr.attrib.phy_info.SignalStrength;/* in percentage */
+
-+ // checking SSID
++ /* checking SSID */
+ if ((p = rtw_get_ie(bssid->IEs + ie_offset, _SSID_IE_, &len, bssid->IELength - ie_offset)) == NULL)
+ {
+ DBG_871X("marc: cannot find SSID for survey event\n");
@@ -21549,7 +18326,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ {
+ if (len > NDIS_802_11_LENGTH_SSID)
+ {
-+ DBG_871X("%s()-%d: IE too long (%d) for survey event\n", __FUNCTION__, __LINE__, len);
++ DBG_871X("%s()-%d: IE too long (%d) for survey event\n", __func__, __LINE__, len);
+ return _FAIL;
+ }
+ memcpy(bssid->Ssid.Ssid, (p + 2), *(p + 1));
@@ -21562,14 +18339,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ memset(bssid->SupportedRates, 0, NDIS_802_11_LENGTH_RATES_EX);
+
-+ //checking rate info...
++ /* checking rate info... */
+ i = 0;
+ p = rtw_get_ie(bssid->IEs + ie_offset, _SUPPORTEDRATES_IE_, &len, bssid->IELength - ie_offset);
+ if (p != NULL)
+ {
+ if (len > NDIS_802_11_LENGTH_RATES_EX)
+ {
-+ DBG_871X("%s()-%d: IE too long (%d) for survey event\n", __FUNCTION__, __LINE__, len);
++ DBG_871X("%s()-%d: IE too long (%d) for survey event\n", __func__, __LINE__, len);
+ return _FAIL;
+ }
+ memcpy(bssid->SupportedRates, (p + 2), len);
@@ -21581,7 +18358,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ {
+ if (len > (NDIS_802_11_LENGTH_RATES_EX-i))
+ {
-+ DBG_871X("%s()-%d: IE too long (%d) for survey event\n", __FUNCTION__, __LINE__, len);
++ DBG_871X("%s()-%d: IE too long (%d) for survey event\n", __func__, __LINE__, len);
+ return _FAIL;
+ }
+ memcpy(bssid->SupportedRates + i, (p + 2), len);
@@ -21592,7 +18369,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ if (bssid->IELength < 12)
+ return _FAIL;
+
-+ // Checking for DSConfig
++ /* Checking for DSConfig */
+ p = rtw_get_ie(bssid->IEs + ie_offset, _DSSET_IE_, &len, bssid->IELength - ie_offset);
+
+ bssid->Configuration.DSConfig = 0;
@@ -21603,32 +18380,29 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ bssid->Configuration.DSConfig = *(p + 2);
+ }
+ else
-+ {// In 5G, some ap do not have DSSET IE
-+ // checking HT info for channel
++ {/* In 5G, some ap do not have DSSET IE */
++ /* checking HT info for channel */
+ p = rtw_get_ie(bssid->IEs + ie_offset, _HT_ADD_INFO_IE_, &len, bssid->IELength - ie_offset);
-+ if(p)
++ if (p)
+ {
+ struct HT_info_element *HT_info = (struct HT_info_element *)(p + 2);
+ bssid->Configuration.DSConfig = HT_info->primary_channel;
+ }
+ else
-+ { // use current channel
++ { /* use current channel */
+ bssid->Configuration.DSConfig = rtw_get_oper_ch(padapter);
+ }
+ }
+
-+ memcpy(&bssid->Configuration.BeaconPeriod, rtw_get_beacon_interval_from_ie(bssid->IEs), 2);
-+ bssid->Configuration.BeaconPeriod = le32_to_cpu(bssid->Configuration.BeaconPeriod);
++ memcpy(&le32_tmp, rtw_get_beacon_interval_from_ie(bssid->IEs), 2);
++ bssid->Configuration.BeaconPeriod = le32_to_cpu(le32_tmp);
+
-+ val16 = rtw_get_capability((WLAN_BSSID_EX *)bssid);
++ val16 = rtw_get_capability((struct wlan_bssid_ex *)bssid);
+
-+ if (val16 & BIT(0))
-+ {
++ if (val16 & BIT(0)) {
+ bssid->InfrastructureMode = Ndis802_11Infrastructure;
+ memcpy(bssid->MacAddress, GetAddr2Ptr(pframe), ETH_ALEN);
-+ }
-+ else
-+ {
++ } else {
+ bssid->InfrastructureMode = Ndis802_11IBSS;
+ memcpy(bssid->MacAddress, GetAddr3Ptr(pframe), ETH_ALEN);
+ }
@@ -21640,38 +18414,34 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ bssid->Configuration.ATIMWindow = 0;
+
-+ //20/40 BSS Coexistence check
-+ if((pregistrypriv->wifi_spec==1) && (false == pmlmeinfo->bwmode_updated))
-+ {
++ /* 20/40 BSS Coexistence check */
++ if ((pregistrypriv->wifi_spec == 1) && (false == pmlmeinfo->bwmode_updated))
++ {
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+
+ p = rtw_get_ie(bssid->IEs + ie_offset, _HT_CAPABILITY_IE_, &len, bssid->IELength - ie_offset);
-+ if(p && len>0)
++ if (p && len>0)
+ {
+ struct HT_caps_element *pHT_caps;
+ pHT_caps = (struct HT_caps_element *)(p + 2);
-+
-+ if(pHT_caps->u.HT_cap_element.HT_caps_info&BIT(14))
-+ {
++
++ if (le16_to_cpu(pHT_caps->u.HT_cap_element.HT_caps_info) & BIT(14))
+ pmlmepriv->num_FortyMHzIntolerant++;
-+ }
-+ }
-+ else
-+ {
++ } else {
+ pmlmepriv->num_sta_no_ht++;
+ }
+ }
+
+#ifdef CONFIG_INTEL_WIDI
-+ //process_intel_widi_query_or_tigger(padapter, bssid);
-+ if(process_intel_widi_query_or_tigger(padapter, bssid))
++ /* process_intel_widi_query_or_tigger(padapter, bssid); */
++ if (process_intel_widi_query_or_tigger(padapter, bssid))
+ {
+ return _FAIL;
+ }
-+#endif // CONFIG_INTEL_WIDI
++#endif /* CONFIG_INTEL_WIDI */
+
+ #if defined(DBG_RX_SIGNAL_DISPLAY_SSID_MONITORED) & 1
-+ if(strcmp(bssid->Ssid.Ssid, DBG_RX_SIGNAL_DISPLAY_SSID_MONITORED) == 0) {
++ if (strcmp(bssid->Ssid.Ssid, DBG_RX_SIGNAL_DISPLAY_SSID_MONITORED) == 0) {
+ DBG_871X("Receiving %s("MAC_FMT", DSConfig:%u) from ch%u with ss:%3u, sq:%3u, RawRSSI:%3ld\n"
+ , bssid->Ssid.Ssid, MAC_ARG(bssid->MacAddress), bssid->Configuration.DSConfig
+ , rtw_get_oper_ch(padapter)
@@ -21680,55 +18450,53 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+ #endif
+
-+ // mark bss info receving from nearby channel as SignalQuality 101
-+ if(bssid->Configuration.DSConfig != rtw_get_oper_ch(padapter))
++ /* mark bss info receving from nearby channel as SignalQuality 101 */
++ if (bssid->Configuration.DSConfig != rtw_get_oper_ch(padapter))
+ {
-+ bssid->PhyInfo.SignalQuality= 101;
++ bssid->PhyInfo.SignalQuality = 101;
+ }
+
+ return _SUCCESS;
+}
+
-+void start_create_ibss(_adapter* padapter)
++void start_create_ibss(struct adapter *padapter)
+{
+ unsigned short caps;
-+ u8 val8;
-+ u8 join_type;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX*)(&(pmlmeinfo->network));
++ u8 val8;
++ u8 join_type;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *pnetwork = (struct wlan_bssid_ex*)(&(pmlmeinfo->network));
+ pmlmeext->cur_channel = (u8)pnetwork->Configuration.DSConfig;
+ pmlmeinfo->bcn_interval = get_beacon_interval(pnetwork);
+
-+ //update wireless mode
++ /* update wireless mode */
+ update_wireless_mode(padapter);
+
-+ //udpate capability
-+ caps = rtw_get_capability((WLAN_BSSID_EX *)pnetwork);
++ /* udpate capability */
++ caps = rtw_get_capability((struct wlan_bssid_ex *)pnetwork);
+ update_capinfo(padapter, caps);
-+ if(caps&cap_IBSS)//adhoc master
++ if (caps&cap_IBSS)/* adhoc master */
+ {
-+ //set_opmode_cmd(padapter, adhoc);//removed
-+
+ val8 = 0xcf;
+ rtw_hal_set_hwreg(padapter, HW_VAR_SEC_CFG, (u8 *)(&val8));
+
+ rtw_hal_set_hwreg(padapter, HW_VAR_DO_IQK, NULL);
+
-+ //switch channel
-+ //SelectChannel(padapter, pmlmeext->cur_channel, HAL_PRIME_CHNL_OFFSET_DONT_CARE);
++ /* switch channel */
++ /* SelectChannel(padapter, pmlmeext->cur_channel, HAL_PRIME_CHNL_OFFSET_DONT_CARE); */
+ set_channel_bwmode(padapter, pmlmeext->cur_channel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20);
+
+ beacon_timing_control(padapter);
+
-+ //set msr to WIFI_FW_ADHOC_STATE
++ /* set msr to WIFI_FW_ADHOC_STATE */
+ pmlmeinfo->state = WIFI_FW_ADHOC_STATE;
+ Set_MSR(padapter, (pmlmeinfo->state & 0x3));
+
-+ //issue beacon
-+ if(send_beacon(padapter)==_FAIL)
++ /* issue beacon */
++ if (send_beacon(padapter) == _FAIL)
+ {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,("issuing beacon frame fail....\n"));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("issuing beacon frame fail....\n"));
+
+ report_join_res(padapter, -1);
+ pmlmeinfo->state = WIFI_FW_NULL_STATE;
@@ -21749,25 +18517,25 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ DBG_871X("start_create_ibss, invalid cap:%x\n", caps);
+ return;
+ }
-+ //update bc/mc sta_info
++ /* update bc/mc sta_info */
+ update_bmc_sta(padapter);
+
+}
+
-+void start_clnt_join(_adapter* padapter)
++void start_clnt_join(struct adapter *padapter)
+{
+ unsigned short caps;
-+ u8 val8;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX*)(&(pmlmeinfo->network));
++ u8 val8;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *pnetwork = (struct wlan_bssid_ex*)(&(pmlmeinfo->network));
+ int beacon_timeout;
+
-+ //update wireless mode
++ /* update wireless mode */
+ update_wireless_mode(padapter);
+
-+ //udpate capability
-+ caps = rtw_get_capability((WLAN_BSSID_EX *)pnetwork);
++ /* udpate capability */
++ caps = rtw_get_capability((struct wlan_bssid_ex *)pnetwork);
+ update_capinfo(padapter, caps);
+ if (caps&cap_ESS)
+ {
@@ -21775,36 +18543,29 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ val8 = (pmlmeinfo->auth_algo == dot11AuthAlgrthm_8021X)? 0xcc: 0xcf;
+
-+#ifdef CONFIG_WAPI_SUPPORT
-+ if (padapter->wapiInfo.bWapiEnable && pmlmeinfo->auth_algo == dot11AuthAlgrthm_WAPI)
-+ {
-+ //Disable TxUseDefaultKey, RxUseDefaultKey, RxBroadcastUseDefaultKey.
-+ val8 = 0x4c;
-+ }
-+#endif
+ rtw_hal_set_hwreg(padapter, HW_VAR_SEC_CFG, (u8 *)(&val8));
+
-+ // Because of AP's not receiving deauth before
-+ // AP may: 1)not response auth or 2)deauth us after link is complete
-+ // issue deauth before issuing auth to deal with the situation
++ /* Because of AP's not receiving deauth before */
++ /* AP may: 1)not response auth or 2)deauth us after link is complete */
++ /* issue deauth before issuing auth to deal with the situation */
+
-+ // Commented by Albert 2012/07/21
-+ // For the Win8 P2P connection, it will be hard to have a successful connection if this Wi-Fi doesn't connect to it.
++ /* Commented by Albert 2012/07/21 */
++ /* For the Win8 P2P connection, it will be hard to have a successful connection if this Wi-Fi doesn't connect to it. */
+ {
-+ //To avoid connecting to AP fail during resume process, change retry count from 5 to 1
++ /* To avoid connecting to AP fail during resume process, change retry count from 5 to 1 */
+ issue_deauth_ex(padapter, pnetwork->MacAddress, WLAN_REASON_DEAUTH_LEAVING, 1, 100);
+ }
+
-+ //here wait for receiving the beacon to start auth
-+ //and enable a timer
++ /* here wait for receiving the beacon to start auth */
++ /* and enable a timer */
+ beacon_timeout = decide_wait_for_beacon_timeout(pmlmeinfo->bcn_interval);
-+ set_link_timer(pmlmeext, beacon_timeout);
-+ _set_timer( &padapter->mlmepriv.assoc_timer,
++ set_link_timer(pmlmeext, beacon_timeout);
++ _set_timer(&padapter->mlmepriv.assoc_timer,
+ (REAUTH_TO * REAUTH_LIMIT) + (REASSOC_TO*REASSOC_LIMIT) +beacon_timeout);
-+
++
+ pmlmeinfo->state = WIFI_FW_AUTH_NULL | WIFI_FW_STATION_STATE;
+ }
-+ else if (caps&cap_IBSS) //adhoc client
++ else if (caps&cap_IBSS) /* adhoc client */
+ {
+ Set_MSR(padapter, WIFI_FW_ADHOC_STATE);
+
@@ -21819,18 +18580,18 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+ else
+ {
-+ //DBG_871X("marc: invalid cap:%x\n", caps);
++ /* DBG_871X("marc: invalid cap:%x\n", caps); */
+ return;
+ }
+
+}
+
-+void start_clnt_auth(_adapter* padapter)
++void start_clnt_auth(struct adapter *padapter)
+{
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
-+ _cancel_timer_ex(&pmlmeext->link_timer);
++ del_timer_sync(&pmlmeext->link_timer);
+
+ pmlmeinfo->state &= (~WIFI_FW_AUTH_NULL);
+ pmlmeinfo->state |= WIFI_FW_AUTH_STATE;
@@ -21850,12 +18611,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+}
+
+
-+void start_clnt_assoc(_adapter* padapter)
++void start_clnt_assoc(struct adapter *padapter)
+{
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
-+ _cancel_timer_ex(&pmlmeext->link_timer);
++ del_timer_sync(&pmlmeext->link_timer);
+
+ pmlmeinfo->state &= (~(WIFI_FW_AUTH_NULL | WIFI_FW_AUTH_STATE));
+ pmlmeinfo->state |= (WIFI_FW_AUTH_SUCCESS | WIFI_FW_ASSOC_STATE);
@@ -21865,18 +18626,18 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ set_link_timer(pmlmeext, REASSOC_TO);
+}
+
-+unsigned int receive_disconnect(_adapter *padapter, unsigned char *MacAddr, unsigned short reason)
++unsigned int receive_disconnect(struct adapter *padapter, unsigned char *MacAddr, unsigned short reason)
+{
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
-+ //check A3
++ /* check A3 */
+ if (!(!memcmp(MacAddr, get_my_bssid(&pmlmeinfo->network), ETH_ALEN)))
+ return _SUCCESS;
+
-+ DBG_871X("%s\n", __FUNCTION__);
++ DBG_871X("%s\n", __func__);
+
-+ if((pmlmeinfo->state&0x03) == WIFI_FW_STATION_STATE)
++ if ((pmlmeinfo->state&0x03) == WIFI_FW_STATION_STATE)
+ {
+ if (pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS)
+ {
@@ -21894,8 +18655,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return _SUCCESS;
+}
+
-+#ifdef CONFIG_80211D
-+static void process_80211d(PADAPTER padapter, WLAN_BSSID_EX *bssid)
++static void process_80211d(struct adapter *padapter, struct wlan_bssid_ex *bssid)
+{
+ struct registry_priv *pregistrypriv;
+ struct mlme_ext_priv *pmlmeext;
@@ -21907,7 +18667,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pregistrypriv = &padapter->registrypriv;
+ pmlmeext = &padapter->mlmeextpriv;
+
-+ // Adjust channel plan by AP Country IE
++ /* Adjust channel plan by AP Country IE */
+ if (pregistrypriv->enable80211d &&
+ (!pmlmeext->update_channel_plan_by_ap_done))
+ {
@@ -21916,8 +18676,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ RT_CHANNEL_PLAN chplan_ap;
+ RT_CHANNEL_INFO chplan_sta[MAX_CHANNEL_NUM];
+ u8 country[4];
-+ u8 fcn; // first channel number
-+ u8 noc; // number of channel
++ u8 fcn; /* first channel number */
++ u8 noc; /* number of channel */
+ u8 j, k;
+
+ ie = rtw_get_ie(bssid->IEs + _FIXED_IE_LENGTH_, _COUNTRY_IE_, &len, bssid->IELength - _FIXED_IE_LENGTH_);
@@ -21932,7 +18692,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ memcpy(country, p, 3);
+ p += 3;
+ RT_TRACE(_module_rtl871x_mlme_c_, _drv_notice_,
-+ ("%s: 802.11d country=%s\n", __FUNCTION__, country));
++ ("%s: 802.11d country =%s\n", __func__, country));
+
+ i = 0;
+ while ((ie - p) >= 3)
@@ -21943,8 +18703,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ for (j = 0; j < noc; j++)
+ {
-+ if (fcn <= 14) channel = fcn + j; // 2.4 GHz
-+ else channel = fcn + j*4; // 5 GHz
++ if (fcn <= 14) channel = fcn + j; /* 2.4 GHz */
++ else channel = fcn + j*4; /* 5 GHz */
+
+ chplan_ap.Channel[i++] = channel;
+ }
@@ -21953,7 +18713,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+#ifdef CONFIG_DEBUG_RTL871X
+ i = 0;
-+ DBG_871X("%s: AP[%s] channel plan {", __FUNCTION__, bssid->Ssid.Ssid);
++ DBG_871X("%s: AP[%s] channel plan {", __func__, bssid->Ssid.Ssid);
+ while ((i < chplan_ap.Len) && (chplan_ap.Channel[i] != 0))
+ {
+ DBG_8192C("%02d,", chplan_ap.Channel[i]);
@@ -21965,10 +18725,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ memcpy(chplan_sta, pmlmeext->channel_set, sizeof(chplan_sta));
+#ifdef CONFIG_DEBUG_RTL871X
+ i = 0;
-+ DBG_871X("%s: STA channel plan {", __FUNCTION__);
++ DBG_871X("%s: STA channel plan {", __func__);
+ while ((i < MAX_CHANNEL_NUM) && (chplan_sta[i].ChannelNum != 0))
+ {
-+ DBG_871X("%02d(%c),", chplan_sta[i].ChannelNum, chplan_sta[i].ScanType==SCAN_PASSIVE?'p':'a');
++ DBG_871X("%02d(%c),", chplan_sta[i].ChannelNum, chplan_sta[i].ScanType ==SCAN_PASSIVE?'p':'a');
+ i++;
+ }
+ DBG_871X("}\n");
@@ -22000,7 +18760,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ else if (chplan_sta[i].ChannelNum < chplan_ap.Channel[j])
+ {
+ chplan_new[k].ChannelNum = chplan_sta[i].ChannelNum;
-+// chplan_new[k].ScanType = chplan_sta[i].ScanType;
++/* chplan_new[k].ScanType = chplan_sta[i].ScanType; */
+ chplan_new[k].ScanType = SCAN_PASSIVE;
+ i++;
+ k++;
@@ -22014,19 +18774,19 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+ } while (1);
+
-+ // change AP not support channel to Passive scan
++ /* change AP not support channel to Passive scan */
+ while ((i < MAX_CHANNEL_NUM) &&
+ (chplan_sta[i].ChannelNum != 0) &&
+ (chplan_sta[i].ChannelNum <= 14))
+ {
+ chplan_new[k].ChannelNum = chplan_sta[i].ChannelNum;
-+// chplan_new[k].ScanType = chplan_sta[i].ScanType;
++/* chplan_new[k].ScanType = chplan_sta[i].ScanType; */
+ chplan_new[k].ScanType = SCAN_PASSIVE;
+ i++;
+ k++;
+ }
+
-+ // add channel AP supported
++ /* add channel AP supported */
+ while ((j < chplan_ap.Len) && (chplan_ap.Channel[j] <= 14))
+ {
+ chplan_new[k].ChannelNum = chplan_ap.Channel[j];
@@ -22037,7 +18797,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+ else
+ {
-+ // keep original STA 2.4G channel plan
++ /* keep original STA 2.4G channel plan */
+ while ((i < MAX_CHANNEL_NUM) &&
+ (chplan_sta[i].ChannelNum != 0) &&
+ (chplan_sta[i].ChannelNum <= 14))
@@ -22048,7 +18808,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ k++;
+ }
+
-+ // skip AP 2.4G channel plan
++ /* skip AP 2.4G channel plan */
+ while ((j < chplan_ap.Len) && (chplan_ap.Channel[j] <= 14))
+ {
+ j++;
@@ -22076,7 +18836,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ else if (chplan_sta[i].ChannelNum < chplan_ap.Channel[j])
+ {
+ chplan_new[k].ChannelNum = chplan_sta[i].ChannelNum;
-+// chplan_new[k].ScanType = chplan_sta[i].ScanType;
++/* chplan_new[k].ScanType = chplan_sta[i].ScanType; */
+ chplan_new[k].ScanType = SCAN_PASSIVE;
+ i++;
+ k++;
@@ -22090,17 +18850,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+ } while (1);
+
-+ // change AP not support channel to Passive scan
++ /* change AP not support channel to Passive scan */
+ while ((i < MAX_CHANNEL_NUM) && (chplan_sta[i].ChannelNum != 0))
+ {
+ chplan_new[k].ChannelNum = chplan_sta[i].ChannelNum;
-+// chplan_new[k].ScanType = chplan_sta[i].ScanType;
++/* chplan_new[k].ScanType = chplan_sta[i].ScanType; */
+ chplan_new[k].ScanType = SCAN_PASSIVE;
+ i++;
+ k++;
+ }
+
-+ // add channel AP supported
++ /* add channel AP supported */
+ while ((j < chplan_ap.Len) && (chplan_ap.Channel[j] != 0))
+ {
+ chplan_new[k].ChannelNum = chplan_ap.Channel[j];
@@ -22111,7 +18871,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+ else
+ {
-+ // keep original STA 5G channel plan
++ /* keep original STA 5G channel plan */
+ while ((i < MAX_CHANNEL_NUM) && (chplan_sta[i].ChannelNum != 0))
+ {
+ chplan_new[k].ChannelNum = chplan_sta[i].ChannelNum;
@@ -22125,17 +18885,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+#ifdef CONFIG_DEBUG_RTL871X
+ k = 0;
-+ DBG_871X("%s: new STA channel plan {", __FUNCTION__);
++ DBG_871X("%s: new STA channel plan {", __func__);
+ while ((k < MAX_CHANNEL_NUM) && (chplan_new[k].ChannelNum != 0))
+ {
-+ DBG_871X("%02d(%c),", chplan_new[k].ChannelNum, chplan_new[k].ScanType==SCAN_PASSIVE?'p':'c');
++ DBG_871X("%02d(%c),", chplan_new[k].ChannelNum, chplan_new[k].ScanType ==SCAN_PASSIVE?'p':'c');
+ k++;
+ }
+ DBG_871X("}\n");
+#endif
+ }
+
-+ // If channel is used by AP, set channel scan type to active
++ /* If channel is used by AP, set channel scan type to active */
+ channel = bssid->Configuration.DSConfig;
+ chplan_new = pmlmeext->channel_set;
+ i = 0;
@@ -22145,21 +18905,20 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ {
+ if (chplan_new[i].ScanType == SCAN_PASSIVE)
+ {
-+ //5G Bnad 2, 3 (DFS) doesn't change to active scan
-+ if(channel >= 52 && channel <= 144)
++ /* 5G Bnad 2, 3 (DFS) doesn't change to active scan */
++ if (channel >= 52 && channel <= 144)
+ break;
-+
++
+ chplan_new[i].ScanType = SCAN_ACTIVE;
+ RT_TRACE(_module_rtl871x_mlme_c_, _drv_notice_,
+ ("%s: change channel %d scan type from passive to active\n",
-+ __FUNCTION__, channel));
++ __func__, channel));
+ }
+ break;
+ }
+ i++;
+ }
+}
-+#endif
+
+/****************************************************************************
+
@@ -22167,24 +18926,24 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+*****************************************************************************/
+
-+void report_survey_event(_adapter *padapter, union recv_frame *precv_frame)
++void report_survey_event(struct adapter *padapter, union recv_frame *precv_frame)
+{
+ struct cmd_obj *pcmd_obj;
-+ u8 *pevtcmd;
++ u8 *pevtcmd;
+ u32 cmdsz;
+ struct survey_event *psurvey_evt;
+ struct C2HEvent_Header *pc2h_evt_hdr;
+ struct mlme_ext_priv *pmlmeext;
+ struct cmd_priv *pcmdpriv;
-+ //u8 *pframe = precv_frame->u.hdr.rx_data;
-+ //uint len = precv_frame->u.hdr.len;
++ /* u8 *pframe = precv_frame->u.hdr.rx_data; */
++ /* uint len = precv_frame->u.hdr.len; */
+
-+ if(!padapter)
++ if (!padapter)
+ return;
+
+ pmlmeext = &padapter->mlmeextpriv;
+ pcmdpriv = &padapter->cmdpriv;
-+
++
+
+ if ((pcmd_obj = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj))) == NULL)
+ {
@@ -22192,13 +18951,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+ cmdsz = (sizeof(struct survey_event) + sizeof(struct C2HEvent_Header));
-+ if ((pevtcmd = (u8*)rtw_zmalloc(cmdsz)) == NULL)
++ if ((pevtcmd = (u8 *)rtw_zmalloc(cmdsz)) == NULL)
+ {
-+ rtw_mfree((u8 *)pcmd_obj, sizeof(struct cmd_obj));
++ kfree((u8 *)pcmd_obj);
+ return;
+ }
+
-+ _rtw_init_listhead(&pcmd_obj->list);
++ INIT_LIST_HEAD(&pcmd_obj->list);
+
+ pcmd_obj->cmdcode = GEN_CMD_CODE(_Set_MLME_EVT);
+ pcmd_obj->cmdsz = cmdsz;
@@ -22214,16 +18973,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ psurvey_evt = (struct survey_event*)(pevtcmd + sizeof(struct C2HEvent_Header));
+
-+ if (collect_bss_info(padapter, precv_frame, (WLAN_BSSID_EX *)&psurvey_evt->bss) == _FAIL)
++ if (collect_bss_info(padapter, precv_frame, (struct wlan_bssid_ex *)&psurvey_evt->bss) == _FAIL)
+ {
-+ rtw_mfree((u8 *)pcmd_obj, sizeof(struct cmd_obj));
-+ rtw_mfree((u8 *)pevtcmd, cmdsz);
++ kfree((u8 *)pcmd_obj);
++ kfree((u8 *)pevtcmd);
+ return;
+ }
+
-+#ifdef CONFIG_80211D
+ process_80211d(padapter, &psurvey_evt->bss);
-+#endif
+
+ rtw_enqueue_cmd(pcmdpriv, pcmd_obj);
+
@@ -22233,14 +18990,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+}
+
-+void report_surveydone_event(_adapter *padapter)
++void report_surveydone_event(struct adapter *padapter)
+{
+ struct cmd_obj *pcmd_obj;
-+ u8 *pevtcmd;
++ u8 *pevtcmd;
+ u32 cmdsz;
+ struct surveydone_event *psurveydone_evt;
+ struct C2HEvent_Header *pc2h_evt_hdr;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
+
+ if ((pcmd_obj = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj))) == NULL)
@@ -22249,13 +19006,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+ cmdsz = (sizeof(struct surveydone_event) + sizeof(struct C2HEvent_Header));
-+ if ((pevtcmd = (u8*)rtw_zmalloc(cmdsz)) == NULL)
++ if ((pevtcmd = (u8 *)rtw_zmalloc(cmdsz)) == NULL)
+ {
-+ rtw_mfree((u8 *)pcmd_obj, sizeof(struct cmd_obj));
++ kfree((u8 *)pcmd_obj);
+ return;
+ }
+
-+ _rtw_init_listhead(&pcmd_obj->list);
++ INIT_LIST_HEAD(&pcmd_obj->list);
+
+ pcmd_obj->cmdcode = GEN_CMD_CODE(_Set_MLME_EVT);
+ pcmd_obj->cmdsz = cmdsz;
@@ -22280,15 +19037,15 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+}
+
-+void report_join_res(_adapter *padapter, int res)
++void report_join_res(struct adapter *padapter, int res)
+{
+ struct cmd_obj *pcmd_obj;
-+ u8 *pevtcmd;
++ u8 *pevtcmd;
+ u32 cmdsz;
+ struct joinbss_event *pjoinbss_evt;
+ struct C2HEvent_Header *pc2h_evt_hdr;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
+
+ if ((pcmd_obj = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj))) == NULL)
@@ -22297,13 +19054,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+ cmdsz = (sizeof(struct joinbss_event) + sizeof(struct C2HEvent_Header));
-+ if ((pevtcmd = (u8*)rtw_zmalloc(cmdsz)) == NULL)
++ if ((pevtcmd = (u8 *)rtw_zmalloc(cmdsz)) == NULL)
+ {
-+ rtw_mfree((u8 *)pcmd_obj, sizeof(struct cmd_obj));
++ kfree((u8 *)pcmd_obj);
+ return;
+ }
+
-+ _rtw_init_listhead(&pcmd_obj->list);
++ INIT_LIST_HEAD(&pcmd_obj->list);
+
+ pcmd_obj->cmdcode = GEN_CMD_CODE(_Set_MLME_EVT);
+ pcmd_obj->cmdsz = cmdsz;
@@ -22318,30 +19075,29 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pc2h_evt_hdr->seq = atomic_inc_return(&pmlmeext->event_seq);
+
+ pjoinbss_evt = (struct joinbss_event*)(pevtcmd + sizeof(struct C2HEvent_Header));
-+ memcpy((unsigned char *)(&(pjoinbss_evt->network.network)), &(pmlmeinfo->network), sizeof(WLAN_BSSID_EX));
-+ pjoinbss_evt->network.join_res = pjoinbss_evt->network.aid = res;
++ memcpy((unsigned char *)(&(pjoinbss_evt->network.network)), &(pmlmeinfo->network), sizeof(struct wlan_bssid_ex));
++ pjoinbss_evt->network.join_res = pjoinbss_evt->network.aid = res;
+
+ DBG_871X("report_join_res(%d)\n", res);
-+
-+
++
++
+ rtw_joinbss_event_prehandle(padapter, (u8 *)&pjoinbss_evt->network);
-+
-+
++
++
+ rtw_enqueue_cmd(pcmdpriv, pcmd_obj);
+
+ return;
+
+}
+
-+void report_wmm_edca_update(_adapter *padapter)
++void report_wmm_edca_update(struct adapter *padapter)
+{
+ struct cmd_obj *pcmd_obj;
-+ u8 *pevtcmd;
++ u8 *pevtcmd;
+ u32 cmdsz;
+ struct wmm_event *pwmm_event;
+ struct C2HEvent_Header *pc2h_evt_hdr;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
+
+ if ((pcmd_obj = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj))) == NULL)
@@ -22350,13 +19106,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+ cmdsz = (sizeof(struct wmm_event) + sizeof(struct C2HEvent_Header));
-+ if ((pevtcmd = (u8*)rtw_zmalloc(cmdsz)) == NULL)
++ if ((pevtcmd = (u8 *)rtw_zmalloc(cmdsz)) == NULL)
+ {
-+ rtw_mfree((u8 *)pcmd_obj, sizeof(struct cmd_obj));
++ kfree((u8 *)pcmd_obj);
+ return;
+ }
+
-+ _rtw_init_listhead(&pcmd_obj->list);
++ INIT_LIST_HEAD(&pcmd_obj->list);
+
+ pcmd_obj->cmdcode = GEN_CMD_CODE(_Set_MLME_EVT);
+ pcmd_obj->cmdsz = cmdsz;
@@ -22371,24 +19127,24 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pc2h_evt_hdr->seq = atomic_inc_return(&pmlmeext->event_seq);
+
+ pwmm_event = (struct wmm_event*)(pevtcmd + sizeof(struct C2HEvent_Header));
-+ pwmm_event->wmm =0;
-+
++ pwmm_event->wmm = 0;
++
+ rtw_enqueue_cmd(pcmdpriv, pcmd_obj);
+
+ return;
+
+}
+
-+void report_del_sta_event(_adapter *padapter, unsigned char* MacAddr, unsigned short reason)
++void report_del_sta_event(struct adapter *padapter, unsigned char* MacAddr, unsigned short reason)
+{
+ struct cmd_obj *pcmd_obj;
-+ u8 *pevtcmd;
++ u8 *pevtcmd;
+ u32 cmdsz;
+ struct sta_info *psta;
+ int mac_id;
+ struct stadel_event *pdel_sta_evt;
+ struct C2HEvent_Header *pc2h_evt_hdr;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
+
+ if ((pcmd_obj = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj))) == NULL)
@@ -22397,13 +19153,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+ cmdsz = (sizeof(struct stadel_event) + sizeof(struct C2HEvent_Header));
-+ if ((pevtcmd = (u8*)rtw_zmalloc(cmdsz)) == NULL)
++ if ((pevtcmd = (u8 *)rtw_zmalloc(cmdsz)) == NULL)
+ {
-+ rtw_mfree((u8 *)pcmd_obj, sizeof(struct cmd_obj));
++ kfree((u8 *)pcmd_obj);
+ return;
+ }
+
-+ _rtw_init_listhead(&pcmd_obj->list);
++ INIT_LIST_HEAD(&pcmd_obj->list);
+
+ pcmd_obj->cmdcode = GEN_CMD_CODE(_Set_MLME_EVT);
+ pcmd_obj->cmdsz = cmdsz;
@@ -22419,32 +19175,32 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ pdel_sta_evt = (struct stadel_event*)(pevtcmd + sizeof(struct C2HEvent_Header));
+ memcpy((unsigned char *)(&(pdel_sta_evt->macaddr)), MacAddr, ETH_ALEN);
-+ memcpy((unsigned char *)(pdel_sta_evt->rsvd),(unsigned char *)(&reason),2);
++ memcpy((unsigned char *)(pdel_sta_evt->rsvd), (unsigned char *)(&reason), 2);
+
+
+ psta = rtw_get_stainfo(&padapter->stapriv, MacAddr);
-+ if(psta)
-+ mac_id = (int)psta->mac_id;
++ if (psta)
++ mac_id = (int)psta->mac_id;
+ else
+ mac_id = (-1);
+
+ pdel_sta_evt->mac_id = mac_id;
+
-+ DBG_871X("report_del_sta_event: delete STA, mac_id=%d\n", mac_id);
++ DBG_871X("report_del_sta_event: delete STA, mac_id =%d\n", mac_id);
+
+ rtw_enqueue_cmd(pcmdpriv, pcmd_obj);
+
+ return;
+}
+
-+void report_add_sta_event(_adapter *padapter, unsigned char* MacAddr, int cam_idx)
++void report_add_sta_event(struct adapter *padapter, unsigned char* MacAddr, int cam_idx)
+{
+ struct cmd_obj *pcmd_obj;
-+ u8 *pevtcmd;
++ u8 *pevtcmd;
+ u32 cmdsz;
+ struct stassoc_event *padd_sta_evt;
+ struct C2HEvent_Header *pc2h_evt_hdr;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
+
+ if ((pcmd_obj = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj))) == NULL)
@@ -22453,13 +19209,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+ cmdsz = (sizeof(struct stassoc_event) + sizeof(struct C2HEvent_Header));
-+ if ((pevtcmd = (u8*)rtw_zmalloc(cmdsz)) == NULL)
++ if ((pevtcmd = (u8 *)rtw_zmalloc(cmdsz)) == NULL)
+ {
-+ rtw_mfree((u8 *)pcmd_obj, sizeof(struct cmd_obj));
++ kfree((u8 *)pcmd_obj);
+ return;
+ }
+
-+ _rtw_init_listhead(&pcmd_obj->list);
++ INIT_LIST_HEAD(&pcmd_obj->list);
+
+ pcmd_obj->cmdcode = GEN_CMD_CODE(_Set_MLME_EVT);
+ pcmd_obj->cmdsz = cmdsz;
@@ -22485,7 +19241,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+}
+
+
-+bool rtw_port_switch_chk(_adapter *adapter)
++bool rtw_port_switch_chk(struct adapter *adapter)
+{
+ bool switch_needed = false;
+ return switch_needed;
@@ -22497,19 +19253,18 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+*****************************************************************************/
+
-+//for sta/adhoc mode
-+void update_sta_info(_adapter *padapter, struct sta_info *psta)
++/* for sta/adhoc mode */
++void update_sta_info(struct adapter *padapter, struct sta_info *psta)
+{
-+ _irqL irqL;
+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
-+ //ERP
++ /* ERP */
+ VCS_update(padapter, psta);
+
-+ //HT
-+ if(pmlmepriv->htpriv.ht_option)
++ /* HT */
++ if (pmlmepriv->htpriv.ht_option)
+ {
+ psta->htpriv.ht_option = true;
+
@@ -22536,7 +19291,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ psta->htpriv.ht_option = false;
+
+ psta->htpriv.ampdu_enable = false;
-+
++
+ psta->htpriv.sgi_20m = false;
+ psta->htpriv.sgi_40m = false;
+ psta->qos_option = false;
@@ -22544,33 +19299,33 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+ psta->htpriv.ch_offset = pmlmeext->cur_ch_offset;
-+
-+ psta->htpriv.agg_enable_bitmap = 0x0;//reset
-+ psta->htpriv.candidate_tid_bitmap = 0x0;//reset
++
++ psta->htpriv.agg_enable_bitmap = 0x0;/* reset */
++ psta->htpriv.candidate_tid_bitmap = 0x0;/* reset */
+
+ psta->bw_mode = pmlmeext->cur_bwmode;
+
-+ //QoS
-+ if(pmlmepriv->qospriv.qos_option)
++ /* QoS */
++ if (pmlmepriv->qospriv.qos_option)
+ psta->qos_option = true;
+
+ update_ldpc_stbc_cap(psta);
+
-+ _enter_critical_bh(&psta->lock, &irqL);
++ spin_lock_bh(&psta->lock);
+ psta->state = _FW_LINKED;
-+ _exit_critical_bh(&psta->lock, &irqL);
++ spin_unlock_bh(&psta->lock);
+
+}
+
-+static void rtw_mlmeext_disconnect(_adapter *padapter)
++static void rtw_mlmeext_disconnect(struct adapter *padapter)
+{
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX*)(&(pmlmeinfo->network));
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *pnetwork = (struct wlan_bssid_ex*)(&(pmlmeinfo->network));
+ u8 state_backup = (pmlmeinfo->state&0x03);
+
-+ //set_opmode_cmd(padapter, infra_client_with_mlme);
++ /* set_opmode_cmd(padapter, infra_client_with_mlme); */
+
+ /*
+ * For safety, prevent from keeping macid sleep.
@@ -22589,24 +19344,24 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ rtw_hal_set_hwreg(padapter, HW_VAR_MLME_DISCONNECT, NULL);
+ rtw_hal_set_hwreg(padapter, HW_VAR_BSSID, null_addr);
+
-+ //set MSR to no link state -> infra. mode
++ /* set MSR to no link state -> infra. mode */
+ Set_MSR(padapter, _HW_STATE_STATION_);
+
+ pmlmeinfo->state = WIFI_FW_NULL_STATE;
+
-+ if(state_backup == WIFI_FW_STATION_STATE)
++ if (state_backup == WIFI_FW_STATION_STATE)
+ {
+ if (rtw_port_switch_chk(padapter) == true) {
+ rtw_hal_set_hwreg(padapter, HW_VAR_PORT_SWITCH, NULL);
+ {
-+ _adapter *port0_iface = dvobj_get_port0_adapter(adapter_to_dvobj(padapter));
++ struct adapter *port0_iface = dvobj_get_port0_adapter(adapter_to_dvobj(padapter));
+ if (port0_iface)
+ rtw_lps_ctrl_wk_cmd(port0_iface, LPS_CTRL_CONNECT, 0);
+ }
+ }
+ }
+
-+ //switch to the 20M Hz mode after disconnect
++ /* switch to the 20M Hz mode after disconnect */
+ pmlmeext->cur_bwmode = CHANNEL_WIDTH_20;
+ pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
+
@@ -22614,24 +19369,23 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ flush_all_cam_entry(padapter);
+
-+ _cancel_timer_ex(&pmlmeext->link_timer);
++ del_timer_sync(&pmlmeext->link_timer);
+
-+ //pmlmepriv->LinkDetectInfo.TrafficBusyState = false;
++ /* pmlmepriv->LinkDetectInfo.TrafficBusyState = false; */
+ pmlmepriv->LinkDetectInfo.TrafficTransitionCount = 0;
+ pmlmepriv->LinkDetectInfo.LowPowerTransitionCount = 0;
+
+}
+
-+void mlmeext_joinbss_event_callback(_adapter *padapter, int join_res)
++void mlmeext_joinbss_event_callback(struct adapter *padapter, int join_res)
+{
-+ struct sta_info *psta, *psta_bmc;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network);
-+ struct sta_priv *pstapriv = &padapter->stapriv;
-+ u8 join_type;
-+
-+ if(join_res < 0)
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *cur_network = &(pmlmeinfo->network);
++ struct sta_priv *pstapriv = &padapter->stapriv;
++ u8 join_type;
++ struct sta_info *psta;
++ if (join_res < 0)
+ {
+ join_type = 1;
+ rtw_hal_set_hwreg(padapter, HW_VAR_MLME_JOIN, (u8 *)(&join_type));
@@ -22640,51 +19394,51 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ goto exit_mlmeext_joinbss_event_callback;
+ }
+
-+ if((pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE)
++ if ((pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE)
+ {
-+ //update bc/mc sta_info
++ /* update bc/mc sta_info */
+ update_bmc_sta(padapter);
+ }
+
+
-+ //turn on dynamic functions
++ /* turn on dynamic functions */
+ Switch_DM_Func(padapter, DYNAMIC_ALL_FUNC_ENABLE, true);
+
-+ // update IOT-releated issue
++ /* update IOT-releated issue */
+ update_IOT_info(padapter);
+
+ rtw_hal_set_hwreg(padapter, HW_VAR_BASIC_RATE, cur_network->SupportedRates);
+
-+ //BCN interval
++ /* BCN interval */
+ rtw_hal_set_hwreg(padapter, HW_VAR_BEACON_INTERVAL, (u8 *)(&pmlmeinfo->bcn_interval));
+
-+ //udpate capability
++ /* udpate capability */
+ update_capinfo(padapter, pmlmeinfo->capability);
+
-+ //WMM, Update EDCA param
++ /* WMM, Update EDCA param */
+ WMMOnAssocRsp(padapter);
+
-+ //HT
++ /* HT */
+ HTOnAssocRsp(padapter);
+
-+ //Set cur_channel&cur_bwmode&cur_ch_offset
++ /* Set cur_channel&cur_bwmode&cur_ch_offset */
+ set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
+
+ psta = rtw_get_stainfo(pstapriv, cur_network->MacAddress);
-+ if (psta) //only for infra. mode
++ if (psta) /* only for infra. mode */
+ {
+ pmlmeinfo->FW_sta_info[psta->mac_id].psta = psta;
+
-+ //DBG_871X("set_sta_rate\n");
++ /* DBG_871X("set_sta_rate\n"); */
+
+ psta->wireless_mode = pmlmeext->cur_wireless_mode;
-+
-+ //set per sta rate after updating HT cap.
++
++ /* set per sta rate after updating HT cap. */
+ set_sta_rate(padapter, psta);
-+
++
+ rtw_sta_media_status_rpt(padapter, psta, 1);
+
-+ /* wakeup macid after join bss successfully to ensure
++ /* wakeup macid after join bss successfully to ensure
+ the subsequent data frames can be sent out normally */
+ rtw_hal_macid_wakeup(padapter, psta->mac_id);
+ }
@@ -22695,48 +19449,48 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ join_type = 2;
+ rtw_hal_set_hwreg(padapter, HW_VAR_MLME_JOIN, (u8 *)(&join_type));
+
-+ if((pmlmeinfo->state&0x03) == WIFI_FW_STATION_STATE)
++ if ((pmlmeinfo->state&0x03) == WIFI_FW_STATION_STATE)
+ {
-+ // correcting TSF
++ /* correcting TSF */
+ correct_TSF(padapter, pmlmeext);
-+
-+ //set_link_timer(pmlmeext, DISCONNECT_TO);
++
++ /* set_link_timer(pmlmeext, DISCONNECT_TO); */
+ }
+
-+ if(get_iface_type(padapter) == IFACE_PORT0)
++ if (get_iface_type(padapter) == IFACE_PORT0)
+ rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_CONNECT, 0);
+
+exit_mlmeext_joinbss_event_callback:
+
-+ DBG_871X("=>%s\n", __FUNCTION__);
++ DBG_871X("=>%s\n", __func__);
+
+}
+
-+//currently only adhoc mode will go here
-+void mlmeext_sta_add_event_callback(_adapter *padapter, struct sta_info *psta)
++/* currently only adhoc mode will go here */
++void mlmeext_sta_add_event_callback(struct adapter *padapter, struct sta_info *psta)
+{
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ u8 join_type;
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ u8 join_type;
+
-+ DBG_871X("%s\n", __FUNCTION__);
++ DBG_871X("%s\n", __func__);
+
-+ if((pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE)
++ if ((pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE)
+ {
-+ if(pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS)//adhoc master or sta_count>1
++ if (pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS)/* adhoc master or sta_count>1 */
+ {
-+ //nothing to do
++ /* nothing to do */
+ }
-+ else//adhoc client
++ else/* adhoc client */
+ {
-+ //update TSF Value
-+ //update_TSF(pmlmeext, pframe, len);
++ /* update TSF Value */
++ /* update_TSF(pmlmeext, pframe, len); */
+
-+ // correcting TSF
++ /* correcting TSF */
+ correct_TSF(padapter, pmlmeext);
+
-+ //start beacon
-+ if(send_beacon(padapter)==_FAIL)
++ /* start beacon */
++ if (send_beacon(padapter) == _FAIL)
+ {
+ pmlmeinfo->FW_sta_info[psta->mac_id].status = 0;
+
@@ -22746,7 +19500,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+ pmlmeinfo->state |= WIFI_FW_ASSOC_SUCCESS;
-+
++
+ }
+
+ join_type = 2;
@@ -22758,29 +19512,23 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ psta->bssratelen = rtw_get_rateset_len(pmlmeinfo->FW_sta_info[psta->mac_id].SupportedRates);
+ memcpy(psta->bssrateset, pmlmeinfo->FW_sta_info[psta->mac_id].SupportedRates, psta->bssratelen);
+
-+ //update adhoc sta_info
++ /* update adhoc sta_info */
+ update_sta_info(padapter, psta);
+
+ rtw_hal_update_sta_rate_mask(padapter, psta);
+
-+ // ToDo: HT for Ad-hoc
++ /* ToDo: HT for Ad-hoc */
+ psta->wireless_mode = rtw_check_network_type(psta->bssrateset, psta->bssratelen, pmlmeext->cur_channel);
+ psta->raid = rtw_hal_networktype_to_raid(padapter, psta);
+
-+ //rate radaptive
++ /* rate radaptive */
+ Update_RA_Entry(padapter, psta);
+}
+
-+void mlmeext_sta_del_event_callback(_adapter *padapter)
++void mlmeext_sta_del_event_callback(struct adapter *padapter)
+{
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+
+ if (is_client_associated_to_ap(padapter) || is_IBSS_empty(padapter))
-+ {
+ rtw_mlmeext_disconnect(padapter);
-+ }
-+
+}
+
+/****************************************************************************
@@ -22788,70 +19536,66 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+Following are the functions for the timer handlers
+
+*****************************************************************************/
-+void _linked_info_dump(_adapter *padapter)
++void _linked_info_dump(struct adapter *padapter)
+{
+ int i;
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ u8 mac_id;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ int UndecoratedSmoothedPWDB;
+ struct dvobj_priv *pdvobj = adapter_to_dvobj(padapter);
-+
-+ if(padapter->bLinkInfoDump){
+
-+ DBG_871X("\n============["ADPT_FMT"] linked status check ===================\n",ADPT_ARG(padapter));
++ if (padapter->bLinkInfoDump) {
+
-+ if((pmlmeinfo->state&0x03) == WIFI_FW_STATION_STATE)
++ DBG_871X("\n ============["ADPT_FMT"] linked status check ===================\n", ADPT_ARG(padapter));
++
++ if ((pmlmeinfo->state&0x03) == WIFI_FW_STATION_STATE)
+ {
-+ rtw_hal_get_def_var(padapter, HAL_DEF_UNDERCORATEDSMOOTHEDPWDB, &UndecoratedSmoothedPWDB);
-+
++ rtw_hal_get_def_var(padapter, HAL_DEF_UNDERCORATEDSMOOTHEDPWDB, &UndecoratedSmoothedPWDB);
++
+ DBG_871X("AP[" MAC_FMT "] - UndecoratedSmoothedPWDB:%d\n",
-+ MAC_ARG(padapter->mlmepriv.cur_network.network.MacAddress),UndecoratedSmoothedPWDB);
++ MAC_ARG(padapter->mlmepriv.cur_network.network.MacAddress), UndecoratedSmoothedPWDB);
+ }
-+ else if((pmlmeinfo->state&0x03) == _HW_STATE_AP_)
++ else if ((pmlmeinfo->state&0x03) == _HW_STATE_AP_)
+ {
-+ _irqL irqL;
-+ _list *phead, *plist;
-+
-+ struct sta_info *psta=NULL;
++ struct list_head *phead, *plist;
++
++ struct sta_info *psta = NULL;
+ struct sta_priv *pstapriv = &padapter->stapriv;
-+
-+ _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
++
++ spin_lock_bh(&pstapriv->asoc_list_lock);
+ phead = &pstapriv->asoc_list;
+ plist = get_next(phead);
-+ while ((rtw_end_of_queue_search(phead, plist)) == false)
++ while (phead != plist)
+ {
+ psta = LIST_CONTAINOR(plist, struct sta_info, asoc_list);
-+ plist = get_next(plist);
-+
-+ DBG_871X("STA[" MAC_FMT "]:UndecoratedSmoothedPWDB:%d\n",
-+ MAC_ARG(psta->hwaddr),psta->rssi_stat.UndecoratedSmoothedPWDB);
++ plist = get_next(plist);
++
++ DBG_871X("STA[" MAC_FMT "]:UndecoratedSmoothedPWDB:%d\n",
++ MAC_ARG(psta->hwaddr), psta->rssi_stat.UndecoratedSmoothedPWDB);
+ }
-+ _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL);
-+
++ spin_unlock_bh(&pstapriv->asoc_list_lock);
++
+ }
-+ for(i=0; imacid[i] == true)
++ if (pdvobj->macid[i] == true)
+ {
-+ if(i !=1) //skip bc/mc sta
-+ //============ tx info ============
-+ rtw_hal_get_def_var(padapter, HW_DEF_RA_INFO_DUMP, &i);
++ if (i != 1) /* skip bc/mc sta */
++ /* tx info ============ */
++ rtw_hal_get_def_var(padapter, HW_DEF_RA_INFO_DUMP, &i);
+ }
+ }
+ rtw_hal_set_def_var(padapter, HAL_DEF_DBG_RX_INFO_DUMP, NULL);
-+
-+
++
++
+ }
-+
++
+
+}
+
-+static u8 chk_ap_is_alive(_adapter *padapter, struct sta_info *psta)
++static u8 chk_ap_is_alive(struct adapter *padapter, struct sta_info *psta)
+{
+ u8 ret = false;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
+ #ifdef DBG_EXPIRATION_CHK
+ DBG_871X(FUNC_ADPT_FMT" rx:"STA_PKTS_FMT", beacon:%llu, probersp_to_self:%llu"
@@ -22874,7 +19618,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ );
+ #endif
+
-+ if((sta_rx_data_pkts(psta) == sta_last_rx_data_pkts(psta))
++ if ((sta_rx_data_pkts(psta) == sta_last_rx_data_pkts(psta))
+ && sta_rx_beacon_pkts(psta) == sta_last_rx_beacon_pkts(psta)
+ && sta_rx_probersp_pkts(psta) == sta_last_rx_probersp_pkts(psta)
+ )
@@ -22891,19 +19635,19 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return ret;
+}
+
-+void linked_status_chk(_adapter *padapter)
++void linked_status_chk(struct adapter *padapter)
+{
-+ u32 i;
-+ struct sta_info *psta;
-+ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ struct sta_priv *pstapriv = &padapter->stapriv;
-+
++ u32 i;
++ struct sta_info *psta;
++ struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct sta_priv *pstapriv = &padapter->stapriv;
++
+
+ if (is_client_associated_to_ap(padapter))
+ {
-+ //linked infrastructure client mode
++ /* linked infrastructure client mode */
+
+ int tx_chk = _SUCCESS, rx_chk = _SUCCESS;
+ int rx_chk_limit;
@@ -22914,20 +19658,18 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ #else
+ rx_chk_limit = 8;
+ #endif
-+ link_count_limit = 7; // 16 sec
++ link_count_limit = 7; /* 16 sec */
+
-+ // Marked by Kurt 20130715
-+ // For WiDi 3.5 and latered on, they don't ask WiDi sink to do roaming, so we could not check rx limit that strictly.
-+ // todo: To check why we under miracast session, rx_chk would be false
-+ //#ifdef CONFIG_INTEL_WIDI
-+ //if (padapter->mlmepriv.widi_state != INTEL_WIDI_STATE_NONE)
-+ // rx_chk_limit = 1;
-+ //#endif
++ /* Marked by Kurt 20130715 */
++ /* For WiDi 3.5 and latered on, they don't ask WiDi sink to do roaming, so we could not check rx limit that strictly. */
++ /* todo: To check why we under miracast session, rx_chk would be false */
++ /* ifdef CONFIG_INTEL_WIDI */
++ /* if (padapter->mlmepriv.widi_state != INTEL_WIDI_STATE_NONE) */
++ /* rx_chk_limit = 1; */
++ /* endif */
+
+ if ((psta = rtw_get_stainfo(pstapriv, pmlmeinfo->network.MacAddress)) != NULL)
+ {
-+ bool is_p2p_enable = false;
-+
+ if (chk_ap_is_alive(padapter, psta) == false)
+ rx_chk = _FAIL;
+
@@ -22938,7 +19680,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ if (rx_chk != _SUCCESS) {
+ if (pmlmeext->retry == 0) {
+ #ifdef DBG_EXPIRATION_CHK
-+ DBG_871X("issue_probereq to trigger probersp, retry=%d\n", pmlmeext->retry);
++ DBG_871X("issue_probereq to trigger probersp, retry =%d\n", pmlmeext->retry);
+ #endif
+ issue_probereq_ex(padapter, &pmlmeinfo->network.Ssid, pmlmeinfo->network.MacAddress, 0, 0, 0, 0);
+ issue_probereq_ex(padapter, &pmlmeinfo->network.Ssid, pmlmeinfo->network.MacAddress, 0, 0, 0, 0);
@@ -22948,7 +19690,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ if (tx_chk != _SUCCESS && pmlmeinfo->link_count++ == link_count_limit) {
+ #ifdef DBG_EXPIRATION_CHK
-+ DBG_871X("%s issue_nulldata 0\n", __FUNCTION__);
++ DBG_871X("%s issue_nulldata 0\n", __func__);
+ #endif
+ tx_chk = issue_nulldata_in_interrupt(padapter, NULL);
+ }
@@ -22974,24 +19716,24 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pmlmeinfo->link_count = 0;
+ }
+
-+ } //end of if ((psta = rtw_get_stainfo(pstapriv, passoc_res->network.MacAddress)) != NULL)
++ } /* end of if ((psta = rtw_get_stainfo(pstapriv, passoc_res->network.MacAddress)) != NULL) */
+ }
+ else if (is_client_associated_to_ibss(padapter))
+ {
-+ //linked IBSS mode
-+ //for each assoc list entry to check the rx pkt counter
++ /* linked IBSS mode */
++ /* for each assoc list entry to check the rx pkt counter */
+ for (i = IBSS_START_MAC_ID; i < NUM_STA; i++)
+ {
+ if (pmlmeinfo->FW_sta_info[i].status == 1)
+ {
+ psta = pmlmeinfo->FW_sta_info[i].psta;
+
-+ if(NULL==psta) continue;
++ if (NULL ==psta) continue;
+
+ if (pmlmeinfo->FW_sta_info[i].rx_pkt == sta_rx_pkts(psta))
+ {
+
-+ if(pmlmeinfo->FW_sta_info[i].retry<3)
++ if (pmlmeinfo->FW_sta_info[i].retry<3)
+ {
+ pmlmeinfo->FW_sta_info[i].retry++;
+ }
@@ -23000,9 +19742,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pmlmeinfo->FW_sta_info[i].retry = 0;
+ pmlmeinfo->FW_sta_info[i].status = 0;
+ report_del_sta_event(padapter, psta->hwaddr
-+ , 65535// indicate disconnect caused by no rx
++ , 65535/* indicate disconnect caused by no rx */
+ );
-+ }
++ }
+ }
+ else
+ {
@@ -23012,39 +19754,39 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+ }
+
-+ //set_link_timer(pmlmeext, DISCONNECT_TO);
++ /* set_link_timer(pmlmeext, DISCONNECT_TO); */
+
+ }
+
+}
+
-+void survey_timer_hdl(_adapter *padapter)
++void survey_timer_hdl(struct adapter *padapter)
+{
+ struct cmd_obj *ph2c;
+ struct sitesurvey_parm *psurveyPara;
-+ struct cmd_priv *pcmdpriv=&padapter->cmdpriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct cmd_priv *pcmdpriv =&padapter->cmdpriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+
-+ //DBG_871X("marc: survey timer\n");
++ /* DBG_871X("marc: survey timer\n"); */
+
-+ //issue rtw_sitesurvey_cmd
++ /* issue rtw_sitesurvey_cmd */
+ if (pmlmeext->sitesurvey_res.state > SCAN_START)
+ {
-+ if(pmlmeext->sitesurvey_res.state == SCAN_PROCESS)
++ if (pmlmeext->sitesurvey_res.state == SCAN_PROCESS)
+ {
+ pmlmeext->sitesurvey_res.channel_idx++;
+ }
+
-+ if(pmlmeext->scan_abort == true)
++ if (pmlmeext->scan_abort == true)
+ {
+ {
+ pmlmeext->sitesurvey_res.channel_idx = pmlmeext->sitesurvey_res.ch_num;
-+ DBG_871X("%s idx:%d\n", __FUNCTION__
++ DBG_871X("%s idx:%d\n", __func__
+ , pmlmeext->sitesurvey_res.channel_idx
+ );
+ }
+
-+ pmlmeext->scan_abort = false;//reset
++ pmlmeext->scan_abort = false;/* reset */
+ }
+
+ if ((ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj))) == NULL)
@@ -23054,7 +19796,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ if ((psurveyPara = (struct sitesurvey_parm*)rtw_zmalloc(sizeof(struct sitesurvey_parm))) == NULL)
+ {
-+ rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
++ kfree((unsigned char *)ph2c);
+ goto exit_survey_timer_hdl;
+ }
+
@@ -23068,14 +19810,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return;
+}
+
-+void link_timer_hdl(_adapter *padapter)
++void link_timer_hdl(struct adapter *padapter)
+{
-+ //static unsigned int rx_pkt = 0;
-+ //static u64 tx_cnt = 0;
-+ //struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ //struct sta_priv *pstapriv = &padapter->stapriv;
++ /* static unsigned int rx_pkt = 0; */
++ /* static u64 tx_cnt = 0; */
++ /* struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); */
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ /* struct sta_priv *pstapriv = &padapter->stapriv; */
+
+
+ if (pmlmeinfo->state & WIFI_FW_AUTH_NULL)
@@ -23086,22 +19828,22 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+ else if (pmlmeinfo->state & WIFI_FW_AUTH_STATE)
+ {
-+ //re-auth timer
++ /* re-auth timer */
+ if (++pmlmeinfo->reauth_count > REAUTH_LIMIT)
+ {
-+ //if (pmlmeinfo->auth_algo != dot11AuthAlgrthm_Auto)
-+ //{
++ /* if (pmlmeinfo->auth_algo != dot11AuthAlgrthm_Auto) */
++ /* */
+ pmlmeinfo->state = 0;
+ report_join_res(padapter, -1);
+ return;
-+ //}
-+ //else
-+ //{
-+ // pmlmeinfo->auth_algo = dot11AuthAlgrthm_Shared;
-+ // pmlmeinfo->reauth_count = 0;
-+ //}
++ /* */
++ /* else */
++ /* */
++ /* pmlmeinfo->auth_algo = dot11AuthAlgrthm_Shared; */
++ /* pmlmeinfo->reauth_count = 0; */
++ /* */
+ }
-+
++
+ DBG_871X("link_timer_hdl: auth timeout and try again\n");
+ pmlmeinfo->auth_seq = 1;
+ issue_auth(padapter, NULL, 0);
@@ -23109,7 +19851,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+ else if (pmlmeinfo->state & WIFI_FW_ASSOC_STATE)
+ {
-+ //re-assoc timer
++ /* re-assoc timer */
+ if (++pmlmeinfo->reassoc_count > REASSOC_LIMIT)
+ {
+ pmlmeinfo->state = WIFI_FW_NULL_STATE;
@@ -23127,105 +19869,92 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+void addba_timer_hdl(struct sta_info *psta)
+{
-+ struct ht_priv *phtpriv;
++ struct ht_priv *phtpriv;
+
-+ if(!psta)
++ if (!psta)
+ return;
-+
++
+ phtpriv = &psta->htpriv;
+
-+ if((phtpriv->ht_option==true) && (phtpriv->ampdu_enable==true))
++ if ((phtpriv->ht_option ==true) && (phtpriv->ampdu_enable ==true))
+ {
-+ if(phtpriv->candidate_tid_bitmap)
-+ phtpriv->candidate_tid_bitmap=0x0;
-+
++ if (phtpriv->candidate_tid_bitmap)
++ phtpriv->candidate_tid_bitmap = 0x0;
++
+ }
+}
+
-+#ifdef CONFIG_IEEE80211W
-+void sa_query_timer_hdl(_adapter *padapter)
++void sa_query_timer_hdl(struct adapter *padapter)
+{
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+ struct mlme_priv * pmlmepriv = &padapter->mlmepriv;
-+ _irqL irqL;
-+ //disconnect
-+ _enter_critical_bh(&pmlmepriv->lock, &irqL);
++ /* disconnect */
++ spin_lock_bh(&pmlmepriv->lock);
+
+ if (check_fwstate(pmlmepriv, _FW_LINKED) == true)
+ {
+ rtw_disassoc_cmd(padapter, 0, true);
+ rtw_indicate_disconnect(padapter);
-+ rtw_free_assoc_resources(padapter, 1);
++ rtw_free_assoc_resources(padapter, 1);
+ }
+
-+ _exit_critical_bh(&pmlmepriv->lock, &irqL);
++ spin_unlock_bh(&pmlmepriv->lock);
+ DBG_871X("SA query timeout disconnect\n");
+}
-+#endif //CONFIG_IEEE80211W
+
-+u8 NULL_hdl(_adapter *padapter, u8 *pbuf)
++u8 NULL_hdl(struct adapter *padapter, u8 *pbuf)
+{
+ return H2C_SUCCESS;
+}
+
+#ifdef CONFIG_AUTO_AP_MODE
-+void rtw_start_auto_ap(_adapter *adapter)
++static int rtw_auto_ap_start_beacon(struct adapter *adapter)
+{
-+ DBG_871X("%s\n", __FUNCTION__);
-+
-+ rtw_set_802_11_infrastructure_mode(adapter, Ndis802_11APMode);
-+
-+ rtw_setopmode_cmd(adapter, Ndis802_11APMode,true);
-+}
-+
-+static int rtw_auto_ap_start_beacon(_adapter *adapter)
-+{
-+ int ret=0;
++ int ret = 0;
+ u8 *pbuf = NULL;
+ uint len;
-+ u8 supportRate[16];
-+ int sz = 0, rateLen;
-+ u8 * ie;
-+ u8 wireless_mode, oper_channel;
-+ u8 ssid[3] = {0}; //hidden ssid
++ u8 supportRate[16];
++ int sz = 0, rateLen;
++ u8 *ie;
++ u8 wireless_mode, oper_channel;
++ u8 ssid[3] = {0}; /* hidden ssid */
+ u32 ssid_len = sizeof(ssid);
+ struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
+
+
-+ if(check_fwstate(pmlmepriv, WIFI_AP_STATE) != true)
++ if (check_fwstate(pmlmepriv, WIFI_AP_STATE) != true)
+ return -EINVAL;
+
+
+ len = 128;
+ pbuf = rtw_zmalloc(len);
-+ if(!pbuf)
++ if (!pbuf)
+ return -ENOMEM;
+
+
-+ //generate beacon
++ /* generate beacon */
+ ie = pbuf;
+
-+ //timestamp will be inserted by hardware
++ /* timestamp will be inserted by hardware */
+ sz += 8;
+ ie += sz;
+
-+ //beacon interval : 2bytes
-+ *(u16*)ie = cpu_to_le16((u16)100);//BCN_INTERVAL=100;
++ /* beacon interval : 2bytes */
++ *(u16*)ie = cpu_to_le16((u16)100);/* BCN_INTERVAL = 100; */
+ sz += 2;
+ ie += 2;
+
-+ //capability info
++ /* capability info */
+ *(u16*)ie = 0;
+ *(u16*)ie |= cpu_to_le16(cap_ESS);
+ *(u16*)ie |= cpu_to_le16(cap_ShortPremble);
-+ //*(u16*)ie |= cpu_to_le16(cap_Privacy);
++ /* u16*)ie |= cpu_to_le16(cap_Privacy); */
+ sz += 2;
+ ie += 2;
+
-+ //SSID
++ /* SSID */
+ ie = rtw_set_ie(ie, _SSID_IE_, ssid_len, ssid, &sz);
+
-+ //supported rates
++ /* supported rates */
+ wireless_mode = WIRELESS_11BG_24N;
+ rtw_set_supported_rate(supportRate, wireless_mode) ;
+ rateLen = rtw_get_rateset_len(supportRate);
@@ -23239,12 +19968,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+
-+ //DS parameter set
-+ if(check_buddy_fwstate(adapter, _FW_LINKED) &&
++ /* DS parameter set */
++ if (check_buddy_fwstate(adapter, _FW_LINKED) &&
+ check_buddy_fwstate(adapter, WIFI_STATION_STATE))
+ {
-+ PADAPTER pbuddy_adapter = adapter->pbuddy_adapter;
-+ struct mlme_ext_priv *pbuddy_mlmeext = &pbuddy_adapter->mlmeextpriv;
++ struct adapter * pbuddystruct adapter = adapter->pbuddystruct adapter;
++ struct mlme_ext_priv *pbuddy_mlmeext = &pbuddystruct adapter->mlmeextpriv;
+
+ oper_channel = pbuddy_mlmeext->cur_channel;
+ }
@@ -23254,16 +19983,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+ ie = rtw_set_ie(ie, _DSSET_IE_, 1, &oper_channel, &sz);
+
-+ //ext supported rates
++ /* ext supported rates */
+ if (rateLen > 8)
+ {
+ ie = rtw_set_ie(ie, _EXT_SUPPORTEDRATES_IE_, (rateLen - 8), (supportRate + 8), &sz);
+ }
+
-+ DBG_871X("%s, start auto ap beacon sz=%d\n", __FUNCTION__, sz);
++ DBG_871X("%s, start auto ap beacon sz =%d\n", __func__, sz);
+
-+ //lunch ap mode & start to issue beacon
-+ if(rtw_check_beacon_data(adapter, pbuf, sz) == _SUCCESS)
++ /* lunch ap mode & start to issue beacon */
++ if (rtw_check_beacon_data(adapter, pbuf, sz) == _SUCCESS)
+ {
+
+ }
@@ -23273,35 +20002,33 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+
-+ rtw_mfree(pbuf, len);
++ kfree(pbuf);
+
+ return ret;
+
+}
-+#endif//CONFIG_AUTO_AP_MODE
++#endif/* CONFIG_AUTO_AP_MODE */
+
-+u8 setopmode_hdl(_adapter *padapter, u8 *pbuf)
++u8 setopmode_hdl(struct adapter *padapter, u8 *pbuf)
+{
-+ u8 type;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ u8 type;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ struct setopmode_parm *psetop = (struct setopmode_parm *)pbuf;
+
-+ if(psetop->mode == Ndis802_11APMode)
++ if (psetop->mode == Ndis802_11APMode)
+ {
+ pmlmeinfo->state = WIFI_FW_AP_STATE;
+ type = _HW_STATE_AP_;
-+#ifdef CONFIG_NATIVEAP_MLME
-+ //start_ap_mode(padapter);
-+#endif
++ /* start_ap_mode(padapter); */
+ }
-+ else if(psetop->mode == Ndis802_11Infrastructure)
++ else if (psetop->mode == Ndis802_11Infrastructure)
+ {
-+ pmlmeinfo->state &= ~(BIT(0)|BIT(1));// clear state
-+ pmlmeinfo->state |= WIFI_FW_STATION_STATE;//set to STATION_STATE
++ pmlmeinfo->state &= ~(BIT(0)|BIT(1));/* clear state */
++ pmlmeinfo->state |= WIFI_FW_STATION_STATE;/* set to STATION_STATE */
+ type = _HW_STATE_STATION_;
+ }
-+ else if(psetop->mode == Ndis802_11IBSS)
++ else if (psetop->mode == Ndis802_11IBSS)
+ {
+ type = _HW_STATE_ADHOC_;
+ }
@@ -23311,11 +20038,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+ rtw_hal_set_hwreg(padapter, HW_VAR_SET_OPMODE, (u8 *)(&type));
-+ //Set_NETYPE0_MSR(padapter, type);
++ /* Set_NETYPE0_MSR(padapter, type); */
+
+
+#ifdef CONFIG_AUTO_AP_MODE
-+ if(psetop->mode == Ndis802_11APMode)
++ if (psetop->mode == Ndis802_11APMode)
+ rtw_auto_ap_start_beacon(padapter);
+#endif
+
@@ -23323,49 +20050,47 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ {
+ rtw_hal_set_hwreg(padapter, HW_VAR_PORT_SWITCH, NULL);
+
-+ if(psetop->mode == Ndis802_11APMode)
-+ adapter_to_pwrctl(padapter)->fw_psmode_iface_id = 0xff; //ap mode won't dowload rsvd pages
++ if (psetop->mode == Ndis802_11APMode)
++ adapter_to_pwrctl(padapter)->fw_psmode_iface_id = 0xff; /* ap mode won't dowload rsvd pages */
+ else if (psetop->mode == Ndis802_11Infrastructure) {
-+ _adapter *port0_iface = dvobj_get_port0_adapter(adapter_to_dvobj(padapter));
++ struct adapter *port0_iface = dvobj_get_port0_adapter(adapter_to_dvobj(padapter));
+ if (port0_iface)
+ rtw_lps_ctrl_wk_cmd(port0_iface, LPS_CTRL_CONNECT, 0);
+ }
-+ }
++ }
+
+ if (psetop->mode == Ndis802_11APMode)
+ {
-+ // Do this after port switch to
-+ // prevent from downloading rsvd page to wrong port
-+ rtw_btcoex_MediaStatusNotify(padapter, 1); //connect
++ /* Do this after port switch to */
++ /* prevent from downloading rsvd page to wrong port */
++ rtw_btcoex_MediaStatusNotify(padapter, 1); /* connect */
+ }
+
+ return H2C_SUCCESS;
-+
++
+}
+
-+u8 createbss_hdl(_adapter *padapter, u8 *pbuf)
++u8 createbss_hdl(struct adapter *padapter, u8 *pbuf)
+{
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX*)(&(pmlmeinfo->network));
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *pnetwork = (struct wlan_bssid_ex*)(&(pmlmeinfo->network));
+ struct joinbss_parm *pparm = (struct joinbss_parm *)pbuf;
-+ //u32 initialgain;
-+
-+#ifdef CONFIG_AP_MODE
++ /* u32 initialgain; */
++
+ if (pmlmeinfo->state == WIFI_FW_AP_STATE) {
-+ WLAN_BSSID_EX *network = &padapter->mlmepriv.cur_network.network;
-+ start_bss_network(padapter, (u8*)network);
++ struct wlan_bssid_ex *network = &padapter->mlmepriv.cur_network.network;
++ start_bss_network(padapter, (u8 *)network);
+ return H2C_SUCCESS;
+ }
-+#endif
+
-+ //below is for ad-hoc master
-+ if(pparm->network.InfrastructureMode == Ndis802_11IBSS)
++ /* below is for ad-hoc master */
++ if (pparm->network.InfrastructureMode == Ndis802_11IBSS)
+ {
+ rtw_joinbss_reset(padapter);
-+
++
+ pmlmeext->cur_bwmode = CHANNEL_WIDTH_20;
-+ pmlmeext->cur_ch_offset= HAL_PRIME_CHNL_OFFSET_DONT_CARE;
++ pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
+ pmlmeinfo->ERP_enable = 0;
+ pmlmeinfo->WMM_enable = 0;
+ pmlmeinfo->HT_enable = 0;
@@ -23374,51 +20099,51 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pmlmeinfo->agg_enable_bitmap = 0;
+ pmlmeinfo->candidate_tid_bitmap = 0;
+
-+ //disable dynamic functions, such as high power, DIG
++ /* disable dynamic functions, such as high power, DIG */
+ Save_DM_Func_Flag(padapter);
+ Switch_DM_Func(padapter, DYNAMIC_FUNC_DISABLE, false);
+
-+ //config the initial gain under linking, need to write the BB registers
-+ //initialgain = 0x1E;
-+ //rtw_hal_set_hwreg(padapter, HW_VAR_INITIAL_GAIN, (u8 *)(&initialgain));
++ /* config the initial gain under linking, need to write the BB registers */
++ /* initialgain = 0x1E; */
++ /* rtw_hal_set_hwreg(padapter, HW_VAR_INITIAL_GAIN, (u8 *)(&initialgain)); */
+
-+ //cancel link timer
-+ _cancel_timer_ex(&pmlmeext->link_timer);
++ /* cancel link timer */
++ del_timer_sync(&pmlmeext->link_timer);
+
-+ //clear CAM
-+ flush_all_cam_entry(padapter);
++ /* clear CAM */
++ flush_all_cam_entry(padapter);
+
-+ memcpy(pnetwork, pbuf, FIELD_OFFSET(WLAN_BSSID_EX, IELength));
-+ pnetwork->IELength = ((WLAN_BSSID_EX *)pbuf)->IELength;
++ memcpy(pnetwork, pbuf, FIELD_OFFSET(struct wlan_bssid_ex, IELength));
++ pnetwork->IELength = ((struct wlan_bssid_ex *)pbuf)->IELength;
+
-+ if(pnetwork->IELength>MAX_IE_SZ)//Check pbuf->IELength
++ if (pnetwork->IELength>MAX_IE_SZ)/* Check pbuf->IELength */
+ return H2C_PARAMETERS_ERROR;
+
-+ memcpy(pnetwork->IEs, ((WLAN_BSSID_EX *)pbuf)->IEs, pnetwork->IELength);
-+
++ memcpy(pnetwork->IEs, ((struct wlan_bssid_ex *)pbuf)->IEs, pnetwork->IELength);
++
+ start_create_ibss(padapter);
+
-+ }
++ }
+
+ return H2C_SUCCESS;
+
+}
+
-+u8 join_cmd_hdl(_adapter *padapter, u8 *pbuf)
++u8 join_cmd_hdl(struct adapter *padapter, u8 *pbuf)
+{
-+ u8 join_type;
-+ PNDIS_802_11_VARIABLE_IEs pIE;
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX*)(&(pmlmeinfo->network));
++ u8 join_type;
++ struct ndis_80211_var_ie * pIE;
++ struct registry_priv *pregpriv = &padapter->registrypriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *pnetwork = (struct wlan_bssid_ex*)(&(pmlmeinfo->network));
+ u32 i;
-+ u8 cbw40_enable=0;
-+ //u32 initialgain;
-+ //u32 acparm;
++ u8 cbw40_enable = 0;
++ /* u32 initialgain; */
++ /* u32 acparm; */
+ u8 ch, bw, offset;
+
-+ //check already connecting to AP or not
++ /* check already connecting to AP or not */
+ if (pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS)
+ {
+ if (pmlmeinfo->state & WIFI_FW_STATION_STATE)
@@ -23426,28 +20151,24 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ issue_deauth_ex(padapter, pnetwork->MacAddress, WLAN_REASON_DEAUTH_LEAVING, 1, 100);
+ }
+ pmlmeinfo->state = WIFI_FW_NULL_STATE;
-+
-+ //clear CAM
-+ flush_all_cam_entry(padapter);
-+
-+ _cancel_timer_ex(&pmlmeext->link_timer);
-+
-+ //set MSR to nolink -> infra. mode
-+ //Set_MSR(padapter, _HW_STATE_NOLINK_);
-+ Set_MSR(padapter, _HW_STATE_STATION_);
-+
++
++ /* clear CAM */
++ flush_all_cam_entry(padapter);
++
++ del_timer_sync(&pmlmeext->link_timer);
++
++ /* set MSR to nolink -> infra. mode */
++ /* Set_MSR(padapter, _HW_STATE_NOLINK_); */
++ Set_MSR(padapter, _HW_STATE_STATION_);
++
+
+ rtw_hal_set_hwreg(padapter, HW_VAR_MLME_DISCONNECT, NULL);
+ }
+
-+#ifdef CONFIG_WAPI_SUPPORT
-+ rtw_wapi_clear_all_cam_entry(padapter);
-+#endif
-+
+ rtw_joinbss_reset(padapter);
-+
++
+ pmlmeext->cur_bwmode = CHANNEL_WIDTH_20;
-+ pmlmeext->cur_ch_offset= HAL_PRIME_CHNL_OFFSET_DONT_CARE;
++ pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
+ pmlmeinfo->ERP_enable = 0;
+ pmlmeinfo->WMM_enable = 0;
+ pmlmeinfo->HT_enable = 0;
@@ -23456,46 +20177,46 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ pmlmeinfo->agg_enable_bitmap = 0;
+ pmlmeinfo->candidate_tid_bitmap = 0;
+ pmlmeinfo->bwmode_updated = false;
-+ //pmlmeinfo->assoc_AP_vendor = HT_IOT_PEER_MAX;
++ /* pmlmeinfo->assoc_AP_vendor = HT_IOT_PEER_MAX; */
+ pmlmeinfo->VHT_enable = 0;
+
-+ memcpy(pnetwork, pbuf, FIELD_OFFSET(WLAN_BSSID_EX, IELength));
-+ pnetwork->IELength = ((WLAN_BSSID_EX *)pbuf)->IELength;
-+
-+ if(pnetwork->IELength>MAX_IE_SZ)//Check pbuf->IELength
-+ return H2C_PARAMETERS_ERROR;
-+
-+ memcpy(pnetwork->IEs, ((WLAN_BSSID_EX *)pbuf)->IEs, pnetwork->IELength);
++ memcpy(pnetwork, pbuf, FIELD_OFFSET(struct wlan_bssid_ex, IELength));
++ pnetwork->IELength = ((struct wlan_bssid_ex *)pbuf)->IELength;
++
++ if (pnetwork->IELength>MAX_IE_SZ)/* Check pbuf->IELength */
++ return H2C_PARAMETERS_ERROR;
++
++ memcpy(pnetwork->IEs, ((struct wlan_bssid_ex *)pbuf)->IEs, pnetwork->IELength);
+
+ pmlmeext->cur_channel = (u8)pnetwork->Configuration.DSConfig;
+ pmlmeinfo->bcn_interval = get_beacon_interval(pnetwork);
+
-+ //Check AP vendor to move rtw_joinbss_cmd()
-+ //pmlmeinfo->assoc_AP_vendor = check_assoc_AP(pnetwork->IEs, pnetwork->IELength);
++ /* Check AP vendor to move rtw_joinbss_cmd() */
++ /* pmlmeinfo->assoc_AP_vendor = check_assoc_AP(pnetwork->IEs, pnetwork->IELength); */
+
-+ //sizeof(NDIS_802_11_FIXED_IEs)
++ /* sizeof(struct ndis_802_11_fix_ie) */
+ for (i = _FIXED_IE_LENGTH_; i < pnetwork->IELength;)
+ {
-+ pIE = (PNDIS_802_11_VARIABLE_IEs)(pnetwork->IEs + i);
++ pIE = (struct ndis_80211_var_ie *)(pnetwork->IEs + i);
+
+ switch (pIE->ElementID)
+ {
-+ case _VENDOR_SPECIFIC_IE_://Get WMM IE.
-+ if ( !memcmp(pIE->data, WMM_OUI, 4) )
++ case _VENDOR_SPECIFIC_IE_:/* Get WMM IE. */
++ if (!memcmp(pIE->data, WMM_OUI, 4))
+ {
+ WMM_param_handler(padapter, pIE);
+ }
+ break;
+
-+ case _HT_CAPABILITY_IE_: //Get HT Cap IE.
++ case _HT_CAPABILITY_IE_: /* Get HT Cap IE. */
+ pmlmeinfo->HT_caps_enable = 1;
+ break;
+
-+ case _HT_EXTRA_INFO_IE_: //Get HT Info IE.
++ case _HT_EXTRA_INFO_IE_: /* Get HT Info IE. */
+ pmlmeinfo->HT_info_enable = 1;
+
-+ //spec case only for cisco's ap because cisco's ap issue assoc rsp using mcs rate @40MHz or @20MHz
-+ {
++ /* spec case only for cisco's ap because cisco's ap issue assoc rsp using mcs rate @40MHz or @20MHz */
++ {
+ struct HT_info_element *pht_info = (struct HT_info_element *)(pIE->data);
+
+ if (pnetwork->Configuration.DSConfig > 14) {
@@ -23508,18 +20229,18 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ if ((cbw40_enable) && (pht_info->infos[0] & BIT(2)))
+ {
-+ //switch to the 40M Hz mode according to the AP
++ /* switch to the 40M Hz mode according to the AP */
+ pmlmeext->cur_bwmode = CHANNEL_WIDTH_40;
+ switch (pht_info->infos[0] & 0x3)
+ {
+ case 1:
+ pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_LOWER;
+ break;
-+
++
+ case 3:
+ pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_UPPER;
+ break;
-+
++
+ default:
+ pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
+ pmlmeext->cur_bwmode = CHANNEL_WIDTH_20;
@@ -23538,17 +20259,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+ /* check channel, bandwidth, offset and switch */
-+ if(rtw_chk_start_clnt_join(padapter, &ch, &bw, &offset) == _FAIL) {
++ if (rtw_chk_start_clnt_join(padapter, &ch, &bw, &offset) == _FAIL) {
+ report_join_res(padapter, (-4));
+ return H2C_SUCCESS;
+ }
+
-+ //disable dynamic functions, such as high power, DIG
-+ //Switch_DM_Func(padapter, DYNAMIC_FUNC_DISABLE, false);
++ /* disable dynamic functions, such as high power, DIG */
++ /* Switch_DM_Func(padapter, DYNAMIC_FUNC_DISABLE, false); */
+
-+ //config the initial gain under linking, need to write the BB registers
-+ //initialgain = 0x1E;
-+ //rtw_hal_set_hwreg(padapter, HW_VAR_INITIAL_GAIN, (u8 *)(&initialgain));
++ /* config the initial gain under linking, need to write the BB registers */
++ /* initialgain = 0x1E; */
++ /* rtw_hal_set_hwreg(padapter, HW_VAR_INITIAL_GAIN, (u8 *)(&initialgain)); */
+
+ rtw_hal_set_hwreg(padapter, HW_VAR_BSSID, pmlmeinfo->network.MacAddress);
+ join_type = 0;
@@ -23557,21 +20278,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ set_channel_bwmode(padapter, ch, offset, bw);
+
-+ //cancel link timer
-+ _cancel_timer_ex(&pmlmeext->link_timer);
-+
++ /* cancel link timer */
++ del_timer_sync(&pmlmeext->link_timer);
++
+ start_clnt_join(padapter);
-+
++
+ return H2C_SUCCESS;
-+
++
+}
+
-+u8 disconnect_hdl(_adapter *padapter, unsigned char *pbuf)
++u8 disconnect_hdl(struct adapter *padapter, unsigned char *pbuf)
+{
+ struct disconnect_parm *param = (struct disconnect_parm *)pbuf;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX*)(&(pmlmeinfo->network));
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *pnetwork = (struct wlan_bssid_ex*)(&(pmlmeinfo->network));
+ u8 val8;
+
+ if (is_client_associated_to_ap(padapter))
@@ -23579,9 +20300,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ issue_deauth_ex(padapter, pnetwork->MacAddress, WLAN_REASON_DEAUTH_LEAVING, param->deauth_timeout_ms/100, 100);
+ }
+
-+ if(((pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE) || ((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE))
++ if (((pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE) || ((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE))
+ {
-+ //Stop BCN
++ /* Stop BCN */
+ val8 = 0;
+ rtw_hal_set_hwreg(padapter, HW_VAR_BCN_FUNC, (u8 *)(&val8));
+ }
@@ -23589,29 +20310,28 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ rtw_mlmeext_disconnect(padapter);
+
+ rtw_free_uc_swdec_pending_queue(padapter);
-+
-+ return H2C_SUCCESS;
++
++ return H2C_SUCCESS;
+}
+
-+static int rtw_scan_ch_decision(_adapter *padapter, struct rtw_ieee80211_channel *out,
++static int rtw_scan_ch_decision(struct adapter *padapter, struct rtw_ieee80211_channel *out,
+ u32 out_num, struct rtw_ieee80211_channel *in, u32 in_num)
+{
+ int i, j;
-+ int scan_ch_num = 0;
+ int set_idx;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+
+ /* clear first */
+ memset(out, 0, sizeof(struct rtw_ieee80211_channel)*out_num);
+
+ /* acquire channels from in */
+ j = 0;
-+ for (i=0;ichannel_set, in[i].hw_value)) >=0
++ if (in[i].hw_value && !(in[i].flags & RTW_IEEE80211_CHAN_DISABLED)
++ && (set_idx =rtw_ch_set_search_ch(pmlmeext->channel_set, in[i].hw_value)) >= 0
+ && rtw_mlme_band_check(padapter, in[i].hw_value) == true
+ )
+ {
@@ -23622,19 +20342,19 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+ memcpy(&out[j], &in[i], sizeof(struct rtw_ieee80211_channel));
-+
-+ if(pmlmeext->channel_set[set_idx].ScanType == SCAN_PASSIVE)
++
++ if (pmlmeext->channel_set[set_idx].ScanType == SCAN_PASSIVE)
+ out[j].flags |= RTW_IEEE80211_CHAN_PASSIVE_SCAN;
-+
++
+ j++;
+ }
-+ if(j>=out_num)
++ if (j>=out_num)
+ break;
+ }
-+
++
+ /* if out is empty, use channel_set as default */
-+ if(j == 0) {
-+ for (i=0;imax_chan_nums;i++) {
++ if (j == 0) {
++ for (i = 0;imax_chan_nums;i++) {
+
+ DBG_871X(FUNC_ADPT_FMT" ch:%u\n", FUNC_ADPT_ARG(padapter), pmlmeext->channel_set[i].ChannelNum);
+
@@ -23647,8 +20367,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+ out[j].hw_value = pmlmeext->channel_set[i].ChannelNum;
-+
-+ if(pmlmeext->channel_set[i].ScanType == SCAN_PASSIVE)
++
++ if (pmlmeext->channel_set[i].ScanType == SCAN_PASSIVE)
+ out[j].flags |= RTW_IEEE80211_CHAN_PASSIVE_SCAN;
+
+ j++;
@@ -23659,29 +20379,27 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return j;
+}
+
-+u8 sitesurvey_cmd_hdl(_adapter *padapter, u8 *pbuf)
++u8 sitesurvey_cmd_hdl(struct adapter *padapter, u8 *pbuf)
+{
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+ struct sitesurvey_parm *pparm = (struct sitesurvey_parm *)pbuf;
-+ u8 bdelayscan = false;
-+ u8 val8;
-+ u32 initialgain;
-+ u32 i;
-+ struct dvobj_priv *psdpriv = padapter->dvobj;
-+ struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
++ u8 bdelayscan = false;
++ u8 val8;
++ u32 initialgain;
++ u32 i;
+
+ if (pmlmeext->sitesurvey_res.state == SCAN_DISABLE)
-+ {
++ {
+ pmlmeext->sitesurvey_res.state = SCAN_START;
+ pmlmeext->sitesurvey_res.bss_cnt = 0;
+ pmlmeext->sitesurvey_res.channel_idx = 0;
+
-+ for(i=0;issid[i].SsidLength) {
++ for (i = 0;issid[i].SsidLength) {
+ memcpy(pmlmeext->sitesurvey_res.ssid[i].Ssid, pparm->ssid[i].Ssid, IW_ESSID_MAX_SIZE);
-+ pmlmeext->sitesurvey_res.ssid[i].SsidLength= pparm->ssid[i].SsidLength;
++ pmlmeext->sitesurvey_res.ssid[i].SsidLength = pparm->ssid[i].SsidLength;
+ } else {
-+ pmlmeext->sitesurvey_res.ssid[i].SsidLength= 0;
++ pmlmeext->sitesurvey_res.ssid[i].SsidLength = 0;
+ }
+ }
+
@@ -23692,7 +20410,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ pmlmeext->sitesurvey_res.scan_mode = pparm->scan_mode;
+
-+ //issue null data if associating to the AP
++ /* issue null data if associating to the AP */
+ if (is_client_associated_to_ap(padapter) == true)
+ {
+ pmlmeext->sitesurvey_res.state = SCAN_TXNULL;
@@ -23701,9 +20419,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ bdelayscan = true;
+ }
-+ if(bdelayscan)
++ if (bdelayscan)
+ {
-+ //delay 50ms to protect nulldata(1).
++ /* delay 50ms to protect nulldata(1). */
+ set_survey_timer(pmlmeext, 50);
+ return H2C_SUCCESS;
+ }
@@ -23711,19 +20429,19 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ if ((pmlmeext->sitesurvey_res.state == SCAN_START) || (pmlmeext->sitesurvey_res.state == SCAN_TXNULL))
+ {
-+ //disable dynamic functions, such as high power, DIG
++ /* disable dynamic functions, such as high power, DIG */
+ Save_DM_Func_Flag(padapter);
+ Switch_DM_Func(padapter, DYNAMIC_FUNC_DISABLE, false);
+
-+ //config the initial gain under scaning, need to write the BB registers
++ /* config the initial gain under scaning, need to write the BB registers */
+ initialgain = 0x1e;
+
+ rtw_hal_set_hwreg(padapter, HW_VAR_INITIAL_GAIN, (u8 *)(&initialgain));
-+
-+ //set MSR to no link state
++
++ /* set MSR to no link state */
+ Set_MSR(padapter, _HW_STATE_NOLINK_);
+
-+ val8 = 1; //under site survey
++ val8 = 1; /* under site survey */
+ rtw_hal_set_hwreg(padapter, HW_VAR_MLME_SITESURVEY, (u8 *)(&val8));
+
+ pmlmeext->sitesurvey_res.state = SCAN_PROCESS;
@@ -23732,75 +20450,73 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ site_survey(padapter);
+
+ return H2C_SUCCESS;
-+
++
+}
+
-+u8 setauth_hdl(_adapter *padapter, unsigned char *pbuf)
++u8 setauth_hdl(struct adapter *padapter, unsigned char *pbuf)
+{
+ struct setauth_parm *pparm = (struct setauth_parm *)pbuf;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++
+ if (pparm->mode < 4)
+ {
+ pmlmeinfo->auth_algo = pparm->mode;
+ }
+
-+ return H2C_SUCCESS;
++ return H2C_SUCCESS;
+}
+
-+u8 setkey_hdl(_adapter *padapter, u8 *pbuf)
++u8 setkey_hdl(struct adapter *padapter, u8 *pbuf)
+{
-+ u16 ctrl = 0;
++ u16 ctrl = 0;
+ s16 cam_id = 0;
+ struct setkey_parm *pparm = (struct setkey_parm *)pbuf;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ unsigned char null_addr[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+ u8 *addr;
+
-+ //main tx key for wep.
-+ if(pparm->set_tx)
++ /* main tx key for wep. */
++ if (pparm->set_tx)
+ pmlmeinfo->key_index = pparm->keyid;
+
+ cam_id = rtw_camid_alloc(padapter, NULL, pparm->keyid);
+
-+ if (cam_id < 0){
++ if (cam_id < 0) {
+ } else {
+ if (cam_id > 3) /* not default key, searched by A2 */
+ addr = get_bssid(&padapter->mlmepriv);
+ else
+ addr = null_addr;
-+
++
+ ctrl = BIT(15) | BIT6 |((pparm->algorithm) << 2) | pparm->keyid;
+ write_cam(padapter, cam_id, ctrl, addr, pparm->key);
+ DBG_871X_LEVEL(_drv_always_, "set group key camid:%d, addr:"MAC_FMT", kid:%d, type:%s\n"
-+ ,cam_id, MAC_ARG(addr), pparm->keyid, security_type_str(pparm->algorithm));
++ , cam_id, MAC_ARG(addr), pparm->keyid, security_type_str(pparm->algorithm));
+ }
+
-+ #ifdef DYNAMIC_CAMID_ALLOC
-+ if (cam_id >=0 && cam_id <=3)
-+ rtw_hal_set_hwreg(padapter, HW_VAR_SEC_DK_CFG, (u8*)true);
-+ #endif
++ if (cam_id >= 0 && cam_id <=3)
++ rtw_hal_set_hwreg(padapter, HW_VAR_SEC_DK_CFG, (u8 *)true);
+
-+ //allow multicast packets to driver
++ /* allow multicast packets to driver */
+ padapter->HalFunc.SetHwRegHandler(padapter, HW_VAR_ON_RCR_AM, null_addr);
+
+ return H2C_SUCCESS;
+}
+
-+u8 set_stakey_hdl(_adapter *padapter, u8 *pbuf)
++u8 set_stakey_hdl(struct adapter *padapter, u8 *pbuf)
+{
+ u16 ctrl = 0;
+ s16 cam_id = 0;
+ u8 ret = H2C_SUCCESS;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ struct set_stakey_parm *pparm = (struct set_stakey_parm *)pbuf;
+ struct sta_priv *pstapriv = &padapter->stapriv;
+ struct sta_info *psta;
+
-+ if(pparm->algorithm == _NO_PRIVACY_)
++ if (pparm->algorithm == _NO_PRIVACY_)
+ goto write_to_cam;
+
+ psta = rtw_get_stainfo(pstapriv, pparm->addr);
@@ -23816,11 +20532,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ goto exit;
+
+write_to_cam:
-+ if(pparm->algorithm == _NO_PRIVACY_) {
-+ while((cam_id = rtw_camid_search(padapter, pparm->addr, -1)) >= 0) {
++ if (pparm->algorithm == _NO_PRIVACY_) {
++ while ((cam_id = rtw_camid_search(padapter, pparm->addr, -1)) >= 0) {
+ DBG_871X_LEVEL(_drv_always_, "clear key for addr:"MAC_FMT", camid:%d\n", MAC_ARG(pparm->addr), cam_id);
+ clear_cam_entry(padapter, cam_id);
-+ rtw_camid_free(padapter,cam_id);
++ rtw_camid_free(padapter, cam_id);
+ }
+ } else {
+ DBG_871X_LEVEL(_drv_always_, "set pairwise key camid:%d, addr:"MAC_FMT", kid:%d, type:%s\n",
@@ -23834,46 +20550,44 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return ret;
+}
+
-+u8 add_ba_hdl(_adapter *padapter, unsigned char *pbuf)
++u8 add_ba_hdl(struct adapter *padapter, unsigned char *pbuf)
+{
-+ struct addBaReq_parm *pparm = (struct addBaReq_parm *)pbuf;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct addBaReq_parm *pparm = (struct addBaReq_parm *)pbuf;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
+ struct sta_info *psta = rtw_get_stainfo(&padapter->stapriv, pparm->addr);
-+
-+ if(!psta)
-+ return H2C_SUCCESS;
++
++ if (!psta)
++ return H2C_SUCCESS;
+
+ if (((pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS) && (pmlmeinfo->HT_enable)) ||
+ ((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE))
+ {
-+ //pmlmeinfo->ADDBA_retry_count = 0;
-+ //pmlmeinfo->candidate_tid_bitmap |= (0x1 << pparm->tid);
-+ //psta->htpriv.candidate_tid_bitmap |= BIT(pparm->tid);
-+ issue_action_BA(padapter, pparm->addr, RTW_WLAN_ACTION_ADDBA_REQ, (u16)pparm->tid);
-+ //_set_timer(&pmlmeext->ADDBA_timer, ADDBA_TO);
++ /* pmlmeinfo->ADDBA_retry_count = 0; */
++ /* pmlmeinfo->candidate_tid_bitmap |= (0x1 << pparm->tid); */
++ /* psta->htpriv.candidate_tid_bitmap |= BIT(pparm->tid); */
++ issue_action_BA(padapter, pparm->addr, RTW_WLAN_ACTION_ADDBA_REQ, (u16)pparm->tid);
++ /* _set_timer(&pmlmeext->ADDBA_timer, ADDBA_TO); */
+ _set_timer(&psta->addba_retry_timer, ADDBA_TO);
+ }
+ else
-+ {
-+ psta->htpriv.candidate_tid_bitmap &= ~BIT(pparm->tid);
++ {
++ psta->htpriv.candidate_tid_bitmap &= ~BIT(pparm->tid);
+ }
-+ return H2C_SUCCESS;
++ return H2C_SUCCESS;
+}
+
+
-+u8 chk_bmc_sleepq_cmd(_adapter* padapter)
++u8 chk_bmc_sleepq_cmd(struct adapter *padapter)
+{
+ struct cmd_obj *ph2c;
+ struct cmd_priv *pcmdpriv = &(padapter->cmdpriv);
+ u8 res = _SUCCESS;
+
-+_func_enter_;
-+
+ if ((ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj))) == NULL)
+ {
-+ res= _FAIL;
++ res = _FAIL;
+ goto exit;
+ }
+
@@ -23882,38 +20596,33 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
+
+exit:
-+
-+_func_exit_;
-+
+ return res;
+}
+
-+u8 set_tx_beacon_cmd(_adapter* padapter)
++u8 set_tx_beacon_cmd(struct adapter *padapter)
+{
+ struct cmd_obj *ph2c;
-+ struct Tx_Beacon_param *ptxBeacon_parm;
-+ struct cmd_priv *pcmdpriv = &(padapter->cmdpriv);
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ u8 res = _SUCCESS;
++ struct Tx_Beacon_param *ptxBeacon_parm;
++ struct cmd_priv *pcmdpriv = &(padapter->cmdpriv);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ u8 res = _SUCCESS;
+ int len_diff = 0;
-+
-+_func_enter_;
+
+ if ((ph2c = (struct cmd_obj*)rtw_zmalloc(sizeof(struct cmd_obj))) == NULL)
+ {
-+ res= _FAIL;
++ res = _FAIL;
+ goto exit;
+ }
+
+ if ((ptxBeacon_parm = (struct Tx_Beacon_param *)rtw_zmalloc(sizeof(struct Tx_Beacon_param))) == NULL)
+ {
-+ rtw_mfree((unsigned char *)ph2c, sizeof(struct cmd_obj));
-+ res= _FAIL;
++ kfree((unsigned char *)ph2c);
++ res = _FAIL;
+ goto exit;
+ }
+
-+ memcpy(&(ptxBeacon_parm->network), &(pmlmeinfo->network), sizeof(WLAN_BSSID_EX));
++ memcpy(&(ptxBeacon_parm->network), &(pmlmeinfo->network), sizeof(struct wlan_bssid_ex));
+
+ len_diff = update_hidden_ssid(
+ ptxBeacon_parm->network.IEs+_BEACON_IE_OFFSET_
@@ -23926,21 +20635,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ res = rtw_enqueue_cmd(pcmdpriv, ph2c);
+
-+
+exit:
-+
-+_func_exit_;
-+
+ return res;
+}
+
+
-+u8 mlme_evt_hdl(_adapter *padapter, unsigned char *pbuf)
++u8 mlme_evt_hdl(struct adapter *padapter, unsigned char *pbuf)
+{
+ u8 evt_code, evt_seq;
+ u16 evt_sz;
-+ uint *peventbuf;
-+ void (*event_callback)(_adapter *dev, u8 *pbuf);
++ uint *peventbuf;
++ void (*event_callback)(struct adapter *dev, u8 *pbuf);
+ struct evt_priv *pevt_priv = &(padapter->evtpriv);
+
+ if (pbuf == NULL)
@@ -23950,46 +20655,46 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ evt_sz = (u16)(*peventbuf&0xffff);
+ evt_seq = (u8)((*peventbuf>>24)&0x7f);
+ evt_code = (u8)((*peventbuf>>16)&0xff);
-+
-+
++
++
+ #ifdef CHECK_EVENT_SEQ
-+ // checking event sequence...
-+ if (evt_seq != (atomic_read(&pevt_priv->event_seq) & 0x7f) )
++ /* checking event sequence... */
++ if (evt_seq != (atomic_read(&pevt_priv->event_seq) & 0x7f))
+ {
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_info_,("Evetn Seq Error! %d vs %d\n", (evt_seq & 0x7f), (atomic_read(&pevt_priv->event_seq) & 0x7f)));
-+
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("Evetn Seq Error! %d vs %d\n", (evt_seq & 0x7f), (atomic_read(&pevt_priv->event_seq) & 0x7f)));
++
+ pevt_priv->event_seq = (evt_seq+1)&0x7f;
+
+ goto _abort_event_;
+ }
+ #endif
+
-+ // checking if event code is valid
++ /* checking if event code is valid */
+ if (evt_code >= MAX_C2HEVT)
+ {
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\nEvent Code(%d) mismatch!\n", evt_code));
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("\nEvent Code(%d) mismatch!\n", evt_code));
+ goto _abort_event_;
+ }
+
-+ // checking if event size match the event parm size
-+ if ((wlanevents[evt_code].parmsize != 0) &&
++ /* checking if event size match the event parm size */
++ if ((wlanevents[evt_code].parmsize != 0) &&
+ (wlanevents[evt_code].parmsize != evt_sz))
+ {
-+
-+ RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\nEvent(%d) Parm Size mismatch (%d vs %d)!\n",
++
++ RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("\nEvent(%d) Parm Size mismatch (%d vs %d)!\n",
+ evt_code, wlanevents[evt_code].parmsize, evt_sz));
-+ goto _abort_event_;
-+
++ goto _abort_event_;
++
+ }
+
+ atomic_inc(&pevt_priv->event_seq);
+
+ peventbuf += 2;
-+
-+ if(peventbuf)
++
++ if (peventbuf)
+ {
+ event_callback = wlanevents[evt_code].event_callback;
-+ event_callback(padapter, (u8*)peventbuf);
++ event_callback(padapter, (u8 *)peventbuf);
+
+ pevt_priv->evt_done_cnt++;
+ }
@@ -23999,78 +20704,75 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+
+ return H2C_SUCCESS;
-+
++
+}
+
-+u8 h2c_msg_hdl(_adapter *padapter, unsigned char *pbuf)
++u8 h2c_msg_hdl(struct adapter *padapter, unsigned char *pbuf)
+{
-+ if(!pbuf)
++ if (!pbuf)
+ return H2C_PARAMETERS_ERROR;
+
+ return H2C_SUCCESS;
+}
+
-+u8 chk_bmc_sleepq_hdl(_adapter *padapter, unsigned char *pbuf)
++u8 chk_bmc_sleepq_hdl(struct adapter *padapter, unsigned char *pbuf)
+{
-+#ifdef CONFIG_AP_MODE
-+ _irqL irqL;
+ struct sta_info *psta_bmc;
-+ _list *xmitframe_plist, *xmitframe_phead;
-+ struct xmit_frame *pxmitframe=NULL;
++ struct list_head *xmitframe_plist, *xmitframe_phead;
++ struct xmit_frame *pxmitframe = NULL;
+ struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
+ struct sta_priv *pstapriv = &padapter->stapriv;
+
-+ //for BC/MC Frames
++ /* for BC/MC Frames */
+ psta_bmc = rtw_get_bcmc_stainfo(padapter);
-+ if(!psta_bmc)
++ if (!psta_bmc)
+ return H2C_SUCCESS;
+
-+ if((pstapriv->tim_bitmap&BIT(0)) && (psta_bmc->sleepq_len>0))
++ if ((pstapriv->tim_bitmap&BIT(0)) && (psta_bmc->sleepq_len>0))
+ {
-+ msleep(10);// 10ms, ATIM(HIQ) Windows
++ msleep(10);/* 10ms, ATIM(HIQ) Windows */
+
-+ //_enter_critical_bh(&psta_bmc->sleep_q.lock, &irqL);
-+ _enter_critical_bh(&pxmitpriv->lock, &irqL);
++ /* spin_lock_bh(&psta_bmc->sleep_q.lock); */
++ spin_lock_bh(&pxmitpriv->lock);
+
+ xmitframe_phead = get_list_head(&psta_bmc->sleep_q);
+ xmitframe_plist = get_next(xmitframe_phead);
+
-+ while ((rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) == false)
++ while (xmitframe_phead != xmitframe_plist)
+ {
+ pxmitframe = LIST_CONTAINOR(xmitframe_plist, struct xmit_frame, list);
+
+ xmitframe_plist = get_next(xmitframe_plist);
+
-+ rtw_list_delete(&pxmitframe->list);
++ list_del_init(&pxmitframe->list);
+
+ psta_bmc->sleepq_len--;
-+ if(psta_bmc->sleepq_len>0)
++ if (psta_bmc->sleepq_len>0)
+ pxmitframe->attrib.mdata = 1;
+ else
+ pxmitframe->attrib.mdata = 0;
+
-+ pxmitframe->attrib.triggered=1;
++ pxmitframe->attrib.triggered = 1;
+
+ if (xmitframe_hiq_filter(pxmitframe) == true)
-+ pxmitframe->attrib.qsel = 0x11;//HIQ
++ pxmitframe->attrib.qsel = 0x11;/* HIQ */
+
+ rtw_hal_xmitframe_enqueue(padapter, pxmitframe);
+ }
+
-+ //_exit_critical_bh(&psta_bmc->sleep_q.lock, &irqL);
-+ _exit_critical_bh(&pxmitpriv->lock, &irqL);
++ /* spin_unlock_bh(&psta_bmc->sleep_q.lock); */
++ spin_unlock_bh(&pxmitpriv->lock);
+
+ /* check hi queue and bmc_sleepq */
+ rtw_chk_hi_queue_cmd(padapter);
+ }
-+#endif
+
+ return H2C_SUCCESS;
+}
+
-+u8 tx_beacon_hdl(_adapter *padapter, unsigned char *pbuf)
++u8 tx_beacon_hdl(struct adapter *padapter, unsigned char *pbuf)
+{
-+ if(send_beacon(padapter)==_FAIL)
++ if (send_beacon(padapter) == _FAIL)
+ {
+ DBG_871X("issue_beacon, fail!\n");
+ return H2C_PARAMETERS_ERROR;
@@ -24082,65 +20784,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ return H2C_SUCCESS;
+}
+
-+void change_band_update_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork)
++int rtw_chk_start_clnt_join(struct adapter *padapter, u8 *ch, u8 *bw, u8 *offset)
+{
-+ u8 network_type,rate_len, total_rate_len,remainder_rate_len;
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ u8 erpinfo=0x4;
-+
-+ //DBG_871X("%s\n", __FUNCTION__);
-+
-+ if(pmlmeext->cur_channel >= 36)
-+ {
-+ network_type = WIRELESS_11A;
-+ total_rate_len = IEEE80211_NUM_OFDM_RATESLEN;
-+ DBG_871X("%s(): change to 5G Band\n",__FUNCTION__);
-+ rtw_remove_bcn_ie(padapter, pnetwork, _ERPINFO_IE_);
-+ }
-+ else
-+ {
-+ network_type = WIRELESS_11BG;
-+ total_rate_len = IEEE80211_CCK_RATE_LEN+IEEE80211_NUM_OFDM_RATESLEN;
-+ DBG_871X("%s(): change to 2.4G Band\n",__FUNCTION__);
-+ rtw_add_bcn_ie(padapter, pnetwork, _ERPINFO_IE_, &erpinfo, 1);
-+ }
-+
-+ rtw_set_supported_rate(pnetwork->SupportedRates, network_type);
-+
-+ UpdateBrateTbl(padapter, pnetwork->SupportedRates);
-+ rtw_hal_set_hwreg(padapter, HW_VAR_BASIC_RATE, pnetwork->SupportedRates);
-+
-+ if(total_rate_len > 8)
-+ {
-+ rate_len = 8;
-+ remainder_rate_len = total_rate_len - 8;
-+ }
-+ else
-+ {
-+ rate_len = total_rate_len;
-+ remainder_rate_len = 0;
-+ }
-+
-+ rtw_add_bcn_ie(padapter, pnetwork, _SUPPORTEDRATES_IE_, pnetwork->SupportedRates, rate_len);
-+
-+ if(remainder_rate_len)
-+ {
-+ rtw_add_bcn_ie(padapter, pnetwork, _EXT_SUPPORTEDRATES_IE_, (pnetwork->SupportedRates+8), remainder_rate_len);
-+ }
-+ else
-+ {
-+ rtw_remove_bcn_ie(padapter, pnetwork, _EXT_SUPPORTEDRATES_IE_);
-+ }
-+}
-+
-+int rtw_chk_start_clnt_join(_adapter *padapter, u8 *ch, u8 *bw, u8 *offset)
-+{
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ unsigned char cur_ch = pmlmeext->cur_channel;
-+ unsigned char cur_bw = pmlmeext->cur_bwmode;
-+ unsigned char cur_ch_offset = pmlmeext->cur_ch_offset;
-+ bool chbw_allow = true;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ unsigned char cur_ch = pmlmeext->cur_channel;
++ unsigned char cur_bw = pmlmeext->cur_bwmode;
++ unsigned char cur_ch_offset = pmlmeext->cur_ch_offset;
+ bool connect_allow = true;
+
+ if (!ch || !bw || !offset) {
@@ -24149,7 +20798,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ }
+
+ if (connect_allow == true) {
-+ DBG_871X("start_join_set_ch_bw: ch=%d, bwmode=%d, ch_offset=%d\n", cur_ch, cur_bw, cur_ch_offset);
++ DBG_871X("start_join_set_ch_bw: ch =%d, bwmode =%d, ch_offset =%d\n", cur_ch, cur_bw, cur_ch_offset);
+ *ch = cur_ch;
+ *bw = cur_bw;
+ *offset = cur_ch_offset;
@@ -24159,68 +20808,41 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+}
+
+/* Find union about ch, bw, ch_offset of all linked/linking interfaces */
-+int rtw_get_ch_setting_union(_adapter *adapter, u8 *ch, u8 *bw, u8 *offset)
++int rtw_get_ch_setting_union(struct adapter *adapter, u8 *ch, u8 *bw, u8 *offset)
+{
+ struct dvobj_priv *dvobj = adapter_to_dvobj(adapter);
-+ _adapter *iface;
++ struct adapter *iface;
+ struct mlme_ext_priv *mlmeext;
-+ int i;
+ u8 ch_ret = 0;
+ u8 bw_ret = CHANNEL_WIDTH_20;
+ u8 offset_ret = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
-+ int num = 0;
+
-+ if (ch) *ch = 0;
-+ if (bw) *bw = CHANNEL_WIDTH_20;
-+ if (offset) *offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
++ if (ch)
++ *ch = 0;
++ if (bw)
++ *bw = CHANNEL_WIDTH_20;
++ if (offset)
++ *offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
+
-+ for (i = 0; iiface_nums; i++) {
-+ iface = dvobj->padapters[i];
-+ mlmeext = &iface->mlmeextpriv;
++ iface = dvobj->padapters;
++ mlmeext = &iface->mlmeextpriv;
+
-+ if (!check_fwstate(&iface->mlmepriv, _FW_LINKED|_FW_UNDER_LINKING))
-+ continue;
++ if (!check_fwstate(&iface->mlmepriv, _FW_LINKED|_FW_UNDER_LINKING))
++ return 0;
+
-+ if (num == 0) {
-+ ch_ret = mlmeext->cur_channel;
-+ bw_ret = mlmeext->cur_bwmode;
-+ offset_ret = mlmeext->cur_ch_offset;
-+ num++;
-+ continue;
-+ }
++ ch_ret = mlmeext->cur_channel;
++ bw_ret = mlmeext->cur_bwmode;
++ offset_ret = mlmeext->cur_ch_offset;
+
-+ if (ch_ret != mlmeext->cur_channel) {
-+ num = 0;
-+ break;
-+ }
-+
-+ if (bw_ret < mlmeext->cur_bwmode) {
-+ bw_ret = mlmeext->cur_bwmode;
-+ offset_ret = mlmeext->cur_ch_offset;
-+ } else if (bw_ret == mlmeext->cur_bwmode && offset_ret != mlmeext->cur_ch_offset) {
-+ num = 0;
-+ break;
-+ }
-+
-+ num++;
-+ }
-+
-+ if (num) {
-+ if (ch) *ch = ch_ret;
-+ if (bw) *bw = bw_ret;
-+ if (offset) *offset = offset_ret;
-+ }
-+
-+ return num;
++ return 1;
+}
+
-+u8 set_ch_hdl(_adapter *padapter, u8 *pbuf)
++u8 set_ch_hdl(struct adapter *padapter, u8 *pbuf)
+{
+ struct set_ch_parm *set_ch_parm;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+
-+ if(!pbuf)
++ if (!pbuf)
+ return H2C_PARAMETERS_ERROR;
+
+ set_ch_parm = (struct set_ch_parm *)pbuf;
@@ -24235,22 +20857,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ set_channel_bwmode(padapter, set_ch_parm->ch, set_ch_parm->ch_offset, set_ch_parm->bw);
+
-+ return H2C_SUCCESS;
++ return H2C_SUCCESS;
+}
+
-+u8 set_chplan_hdl(_adapter *padapter, unsigned char *pbuf)
++u8 set_chplan_hdl(struct adapter *padapter, unsigned char *pbuf)
+{
+ struct SetChannelPlan_param *setChannelPlan_param;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+
-+ if(!pbuf)
++ if (!pbuf)
+ return H2C_PARAMETERS_ERROR;
+
+ setChannelPlan_param = (struct SetChannelPlan_param *)pbuf;
+
+ pmlmeext->max_chan_nums = init_channel_set(padapter, setChannelPlan_param->channel_plan, pmlmeext->channel_set);
-+ init_channel_list(padapter, pmlmeext->channel_set, pmlmeext->max_chan_nums, &pmlmeext->channel_list);
++ init_channel_list(padapter, pmlmeext->channel_set, pmlmeext->max_chan_nums, &pmlmeext->channel_list);
+
+ if ((padapter->rtw_wdev != NULL) && (padapter->rtw_wdev->wiphy)) {
+ struct regulatory_request request;
@@ -24258,41 +20879,41 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+ rtw_reg_notifier(padapter->rtw_wdev->wiphy, &request);
+ }
+
-+ return H2C_SUCCESS;
++ return H2C_SUCCESS;
+}
+
-+u8 led_blink_hdl(_adapter *padapter, unsigned char *pbuf)
++u8 led_blink_hdl(struct adapter *padapter, unsigned char *pbuf)
+{
+ struct LedBlink_param *ledBlink_param;
+
-+ if(!pbuf)
++ if (!pbuf)
+ return H2C_PARAMETERS_ERROR;
+
+ ledBlink_param = (struct LedBlink_param *)pbuf;
-+ return H2C_SUCCESS;
++ return H2C_SUCCESS;
+}
+
-+u8 set_csa_hdl(_adapter *padapter, unsigned char *pbuf)
++u8 set_csa_hdl(struct adapter *padapter, unsigned char *pbuf)
+{
+ return H2C_REJECTED;
+}
+
-+// TDLS_ESTABLISHED : write RCR DATA BIT
-+// TDLS_CS_OFF : go back to the channel linked with AP, terminating channel switch procedure
-+// TDLS_INIT_CH_SEN : init channel sensing, receive all data and mgnt frame
-+// TDLS_DONE_CH_SEN: channel sensing and report candidate channel
-+// TDLS_OFF_CH : first time set channel to off channel
-+// TDLS_BASE_CH : go back tp the channel linked with AP when set base channel as target channel
-+// TDLS_P_OFF_CH : periodically go to off channel
-+// TDLS_P_BASE_CH : periodically go back to base channel
-+// TDLS_RS_RCR : restore RCR
-+// TDLS_TEAR_STA : free tdls sta
-+u8 tdls_hdl(_adapter *padapter, unsigned char *pbuf)
++/* TDLS_ESTABLISHED : write RCR DATA BIT */
++/* TDLS_CS_OFF : go back to the channel linked with AP, terminating channel switch procedure */
++/* TDLS_INIT_CH_SEN : init channel sensing, receive all data and mgnt frame */
++/* TDLS_DONE_CH_SEN: channel sensing and report candidate channel */
++/* TDLS_OFF_CH : first time set channel to off channel */
++/* TDLS_BASE_CH : go back tp the channel linked with AP when set base channel as target channel */
++/* TDLS_P_OFF_CH : periodically go to off channel */
++/* TDLS_P_BASE_CH : periodically go back to base channel */
++/* TDLS_RS_RCR : restore RCR */
++/* TDLS_TEAR_STA : free tdls sta */
++u8 tdls_hdl(struct adapter *padapter, unsigned char *pbuf)
+{
+ return H2C_REJECTED;
+}
+
-+u8 run_in_thread_hdl(_adapter *padapter, u8 *pbuf)
++u8 run_in_thread_hdl(struct adapter *padapter, u8 *pbuf)
+{
+ struct RunInThread_param *p;
+
@@ -24306,11 +20927,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_mlme_ext.c linux/3rdparty/rtl87
+
+ return H2C_SUCCESS;
+}
-+
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_odm.c linux/3rdparty/rtl8723bs/core/rtw_odm.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_odm.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_odm.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,208 @@
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_odm.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_odm.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_odm.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_odm.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,195 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2013 Realtek Corporation. All rights reserved.
@@ -24324,13 +20944,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_odm.c linux/3rdparty/rtl8723bs/
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
+
++#include
++#include
+#include
+#include
+
@@ -24414,74 +21031,65 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_odm.c linux/3rdparty/rtl8723bs/
+
+#define RTW_ODM_DBG_LEVEL_NUM 6
+
-+void rtw_odm_dbg_comp_msg(void *sel, _adapter *adapter)
++void rtw_odm_dbg_comp_msg(void *sel, struct adapter *adapter)
+{
-+ HAL_DATA_TYPE *pHalData = GET_HAL_DATA(adapter);
-+ DM_ODM_T *odm = &pHalData->odmpriv;
-+ int cnt = 0;
+ u64 dbg_comp;
+ int i;
+
+ rtw_hal_get_def_var(adapter, HW_DEF_ODM_DBG_FLAG, &dbg_comp);
-+ DBG_871X_SEL_NL(sel, "odm.DebugComponents = 0x%016llx \n", dbg_comp);
-+ for (i=0;iodmpriv;
-+ int cnt = 0;
+ u32 dbg_level;
+ int i;
+
+ rtw_hal_get_def_var(adapter, HW_DEF_ODM_DBG_LEVEL, &dbg_level);
+ DBG_871X_SEL_NL(sel, "odm.DebugLevel = %u\n", dbg_level);
-+ for (i=0;iodmpriv;
-+ int cnt = 0;
+ u32 ability = 0;
+ int i;
+
-+ rtw_hal_get_hwreg(adapter, HW_VAR_DM_FLAG, (u8*)&ability);
++ rtw_hal_get_hwreg(adapter, HW_VAR_DM_FLAG, (u8 *)&ability);
+ DBG_871X_SEL_NL(sel, "odm.SupportAbility = 0x%08x\n", ability);
-+ for (i=0;iodmpriv;
+
+ DBG_871X_SEL_NL(sel, "%10s %16s %8s %10s %11s %14s\n"
@@ -24496,10 +21104,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_odm.c linux/3rdparty/rtl8723bs/
+ );
+}
+
-+void rtw_odm_adaptivity_parm_set(_adapter *adapter, s8 TH_L2H_ini, s8 TH_EDCCA_HL_diff,
++void rtw_odm_adaptivity_parm_set(struct adapter *adapter, s8 TH_L2H_ini, s8 TH_EDCCA_HL_diff,
+ s8 IGI_Base, bool ForceEDCCA, u8 AdapEn_RSSI, u8 IGI_LowerBound)
+{
-+ HAL_DATA_TYPE *pHalData = GET_HAL_DATA(adapter);
++ struct hal_com_data *pHalData = GET_HAL_DATA(adapter);
+ DM_ODM_T *odm = &pHalData->odmpriv;
+
+ odm->TH_L2H_ini = TH_L2H_ini;
@@ -24510,23 +21118,22 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_odm.c linux/3rdparty/rtl8723bs/
+ odm->IGI_LowerBound = IGI_LowerBound;
+}
+
-+void rtw_odm_get_perpkt_rssi(void *sel, _adapter *adapter)
++void rtw_odm_get_perpkt_rssi(void *sel, struct adapter *adapter)
+{
-+ HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter);
-+ DM_ODM_T *odm = &(hal_data->odmpriv);
-+
-+ DBG_871X_SEL_NL(sel,"RxRate = %s, RSSI_A = %d(%%), RSSI_B = %d(%%)\n",
-+ HDATA_RATE(odm->RxRate), odm->RSSI_A, odm->RSSI_B);
-+}
++ struct hal_com_data *hal_data = GET_HAL_DATA(adapter);
++ DM_ODM_T *odm = &(hal_data->odmpriv);
+
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl8723bs/core/rtw_pwrctrl.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_pwrctrl.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,1800 @@
++ DBG_871X_SEL_NL(sel,"RxRate = %s, RSSI_A = %d(%%), RSSI_B = %d(%%)\n",
++ HDATA_RATE(odm->RxRate), odm->RSSI_A, odm->RSSI_B);
++}
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_pwrctrl.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_pwrctrl.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_pwrctrl.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,1521 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
-+ *
++ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
@@ -24536,94 +21143,43 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
+#define _RTW_PWRCTRL_C_
+
+#include
++#include
+#include
+#include
+
+
-+int rtw_fw_ps_state(PADAPTER padapter)
-+{
-+ struct dvobj_priv *psdpriv = padapter->dvobj;
-+ struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
-+ int ret=_FAIL, dont_care=0;
-+ u16 fw_ps_state=0;
-+ u32 start_time;
-+ struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
-+ struct registry_priv *registry_par = &padapter->registrypriv;
-+
-+ if(registry_par->check_fw_ps != 1)
-+ return _SUCCESS;
-+
-+ down(&pwrpriv->check_32k_lock);
-+
-+ if ((padapter->bSurpriseRemoved == true))
-+ {
-+ DBG_871X("%s: bSurpriseRemoved=%d , hw_init_completed=%d, bDriverStopped=%d \n", __FUNCTION__, padapter->bSurpriseRemoved,
-+ padapter->hw_init_completed,padapter->bDriverStopped);
-+ goto exit_fw_ps_state;
-+ }
-+ rtw_hal_set_hwreg(padapter, HW_VAR_SET_REQ_FW_PS, (u8 *)&dont_care);
-+ {
-+ //4. if 0x88[7]=1, driver set cmd to leave LPS/IPS.
-+ //Else, hw will keep in active mode.
-+ //debug info:
-+ //0x88[7] = 32kpermission,
-+ //0x88[6:0] = current_ps_state
-+ //0x89[7:0] = last_rpwm
-+
-+ rtw_hal_get_hwreg(padapter, HW_VAR_FW_PS_STATE, (u8 *)&fw_ps_state);
-+
-+ if((fw_ps_state & 0x80) == 0)
-+ ret=_SUCCESS;
-+ else
-+ {
-+ pdbgpriv->dbg_poll_fail_cnt++;
-+ DBG_871X("%s: fw_ps_state=%04x \n", __FUNCTION__, fw_ps_state);
-+ }
-+ }
-+
-+
-+exit_fw_ps_state:
-+ up(&pwrpriv->check_32k_lock);
-+ return ret;
-+}
-+
-+void _ips_enter(_adapter * padapter)
++void _ips_enter(struct adapter *padapter)
+{
+ struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
+
-+ pwrpriv->bips_processing = true;
++ pwrpriv->bips_processing = true;
+
-+ // syn ips_mode with request
++ /* syn ips_mode with request */
+ pwrpriv->ips_mode = pwrpriv->ips_mode_req;
-+
-+ pwrpriv->ips_enter_cnts++;
-+ DBG_871X("==>ips_enter cnts:%d\n",pwrpriv->ips_enter_cnts);
+
-+ if(rf_off == pwrpriv->change_rfpwrstate )
-+ {
++ pwrpriv->ips_enter_cnts++;
++ DBG_871X("==>ips_enter cnts:%d\n", pwrpriv->ips_enter_cnts);
++
++ if (rf_off == pwrpriv->change_rfpwrstate)
++ {
+ pwrpriv->bpower_saving = true;
+ DBG_871X_LEVEL(_drv_always_, "nolinked power save enter\n");
+
-+ if(pwrpriv->ips_mode == IPS_LEVEL_2)
++ if (pwrpriv->ips_mode == IPS_LEVEL_2)
+ pwrpriv->bkeepfwalive = true;
-+
++
+ rtw_ips_pwr_down(padapter);
+ pwrpriv->rf_pwrstate = rf_off;
-+ }
-+ pwrpriv->bips_processing = false;
-+
++ }
++ pwrpriv->bips_processing = false;
++
+}
+
-+void ips_enter(_adapter * padapter)
++void ips_enter(struct adapter *padapter)
+{
+ struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
+
@@ -24635,24 +21191,24 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ up(&pwrpriv->lock);
+}
+
-+int _ips_leave(_adapter * padapter)
++int _ips_leave(struct adapter *padapter)
+{
+ struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
+ int result = _SUCCESS;
+
-+ if((pwrpriv->rf_pwrstate == rf_off) &&(!pwrpriv->bips_processing))
++ if ((pwrpriv->rf_pwrstate == rf_off) && (!pwrpriv->bips_processing))
+ {
+ pwrpriv->bips_processing = true;
+ pwrpriv->change_rfpwrstate = rf_on;
+ pwrpriv->ips_leave_cnts++;
-+ DBG_871X("==>ips_leave cnts:%d\n",pwrpriv->ips_leave_cnts);
++ DBG_871X("==>ips_leave cnts:%d\n", pwrpriv->ips_leave_cnts);
+
+ if ((result = rtw_ips_pwr_up(padapter)) == _SUCCESS) {
+ pwrpriv->rf_pwrstate = rf_on;
+ }
+ DBG_871X_LEVEL(_drv_always_, "nolinked power save leave\n");
-+
-+ DBG_871X("==> ips_leave.....LED(0x%08x)...\n",rtw_read32(padapter,0x4c));
++
++ DBG_871X("==> ips_leave.....LED(0x%08x)...\n", rtw_read32(padapter, 0x4c));
+ pwrpriv->bips_processing = false;
+
+ pwrpriv->bkeepfwalive = false;
@@ -24662,14 +21218,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ return result;
+}
+
-+int ips_leave(_adapter * padapter)
++int ips_leave(struct adapter *padapter)
+{
+ struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
-+ struct dvobj_priv *psdpriv = padapter->dvobj;
-+ struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
+ int ret;
+
-+ if(!is_primary_adapter(padapter))
++ if (!is_primary_adapter(padapter))
+ return _SUCCESS;
+
+ down(&pwrpriv->lock);
@@ -24677,29 +21231,26 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ up(&pwrpriv->lock);
+
+ if (_SUCCESS == ret)
-+ ODM_DMReset(&GET_HAL_DATA(padapter)->odmpriv);
-+
-+ if (_SUCCESS == ret)
+ rtw_btcoex_IpsNotify(padapter, IPS_NONE);
+
+ return ret;
+}
+
-+static bool rtw_pwr_unassociated_idle(_adapter *adapter)
++static bool rtw_pwr_unassociated_idle(struct adapter *adapter)
+{
-+ _adapter *buddy = adapter->pbuddy_adapter;
++ struct adapter *buddy = adapter->pbuddy_adapter;
+ struct mlme_priv *pmlmepriv = &(adapter->mlmepriv);
+ struct xmit_priv *pxmit_priv = &adapter->xmitpriv;
+
+ bool ret = false;
+
-+ if (adapter_to_pwrctl(adapter)->bpower_saving ==true ) {
-+ //DBG_871X("%s: already in LPS or IPS mode\n", __func__);
++ if (adapter_to_pwrctl(adapter)->bpower_saving ==true) {
++ /* DBG_871X("%s: already in LPS or IPS mode\n", __func__); */
+ goto exit;
+ }
+
+ if (time_before(jiffies, adapter_to_pwrctl(adapter)->ips_deny_time)) {
-+ //DBG_871X("%s ips_deny_time\n", __func__);
++ /* DBG_871X("%s ips_deny_time\n", __func__); */
+ goto exit;
+ }
+
@@ -24727,8 +21278,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ if (pxmit_priv->free_xmitbuf_cnt != NR_XMITBUFF ||
+ pxmit_priv->free_xmit_extbuf_cnt != NR_XMIT_EXTBUFF) {
+ DBG_871X_LEVEL(_drv_always_, "There are some pkts to transmit\n");
-+ DBG_871X_LEVEL(_drv_always_, "free_xmitbuf_cnt: %d, free_xmit_extbuf_cnt: %d\n",
-+ pxmit_priv->free_xmitbuf_cnt, pxmit_priv->free_xmit_extbuf_cnt);
++ DBG_871X_LEVEL(_drv_always_, "free_xmitbuf_cnt: %d, free_xmit_extbuf_cnt: %d\n",
++ pxmit_priv->free_xmitbuf_cnt, pxmit_priv->free_xmit_extbuf_cnt);
+ goto exit;
+ }
+
@@ -24741,12 +21292,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+
+/*
+ * ATTENTION:
-+ * rtw_ps_processor() doesn't handle LPS.
++ *rtw_ps_processor() doesn't handle LPS.
+ */
-+void rtw_ps_processor(_adapter*padapter)
++void rtw_ps_processor(struct adapter *padapter)
+{
+ struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
-+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
+ struct dvobj_priv *psdpriv = padapter->dvobj;
+ struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
+ u32 ps_deny = 0;
@@ -24756,16 +21306,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ up(&adapter_to_pwrctl(padapter)->lock);
+ if (ps_deny != 0)
+ {
-+ DBG_871X(FUNC_ADPT_FMT ": ps_deny=0x%08X, skip power save!\n",
++ DBG_871X(FUNC_ADPT_FMT ": ps_deny = 0x%08X, skip power save!\n",
+ FUNC_ADPT_ARG(padapter), ps_deny);
+ goto exit;
+ }
+
-+ if(pwrpriv->bInSuspend == true){//system suspend or autosuspend
++ if (pwrpriv->bInSuspend == true) {/* system suspend or autosuspend */
+ pdbgpriv->dbg_ps_insuspend_cnt++;
-+ DBG_871X("%s, pwrpriv->bInSuspend == true ignore this process\n",__FUNCTION__);
++ DBG_871X("%s, pwrpriv->bInSuspend == true ignore this process\n", __func__);
+ return;
-+ }
++ }
+
+ pwrpriv->ps_processing = true;
+
@@ -24775,12 +21325,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ if (rtw_pwr_unassociated_idle(padapter) == false)
+ goto exit;
+
-+ if((pwrpriv->rf_pwrstate == rf_on) && ((pwrpriv->pwr_state_check_cnts%4)==0))
++ if ((pwrpriv->rf_pwrstate == rf_on) && ((pwrpriv->pwr_state_check_cnts%4) == 0))
+ {
-+ DBG_871X("==>%s .fw_state(%x)\n",__FUNCTION__,get_fwstate(pmlmepriv));
++ DBG_871X("==>%s\n", __func__);
+ pwrpriv->change_rfpwrstate = rf_off;
+ {
-+ ips_enter(padapter);
++ ips_enter(padapter);
+ }
+ }
+exit:
@@ -24791,99 +21341,96 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+void pwr_state_check_handler(RTW_TIMER_HDL_ARGS);
+void pwr_state_check_handler(RTW_TIMER_HDL_ARGS)
+{
-+ _adapter *padapter = (_adapter *)FunctionContext;
++ struct adapter *padapter = (struct adapter *)FunctionContext;
+ rtw_ps_cmd(padapter);
+}
+
-+void traffic_check_for_leave_lps(PADAPTER padapter, u8 tx, u32 tx_packets)
++void traffic_check_for_leave_lps(struct adapter *padapter, u8 tx, u32 tx_packets)
+{
+ static unsigned long start_time = 0;
+ static u32 xmit_cnt = 0;
-+ u8 bLeaveLPS = false;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ u8 bLeaveLPS = false;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+
-+
+
-+ if(tx) //from tx
++
++ if (tx) /* from tx */
+ {
+ xmit_cnt += tx_packets;
+
-+ if (start_time== 0)
-+ start_time= jiffies;
++ if (start_time == 0)
++ start_time = jiffies;
+
-+ if (jiffies_to_msecs(jiffies - start_time) > 2000) // 2 sec == watch dog timer
-+ {
-+ if(xmit_cnt > 8)
++ if (jiffies_to_msecs(jiffies - start_time) > 2000) /* 2 sec == watch dog timer */
++ {
++ if (xmit_cnt > 8)
+ {
-+ if ((adapter_to_pwrctl(padapter)->bLeisurePs)
++ if ((adapter_to_pwrctl(padapter)->bLeisurePs)
+ && (adapter_to_pwrctl(padapter)->pwr_mode != PS_MODE_ACTIVE)
+ && (rtw_btcoex_IsBtControlLps(padapter) == false)
+ )
+ {
-+ DBG_871X("leave lps via Tx = %d\n", xmit_cnt);
++ DBG_871X("leave lps via Tx = %d\n", xmit_cnt);
+ bLeaveLPS = true;
+ }
+ }
+
-+ start_time= jiffies;
++ start_time = jiffies;
+ xmit_cnt = 0;
+ }
+
+ }
-+ else // from rx path
++ else /* from rx path */
+ {
-+ if(pmlmepriv->LinkDetectInfo.NumRxUnicastOkInPeriod > 4/*2*/)
++ if (pmlmepriv->LinkDetectInfo.NumRxUnicastOkInPeriod > 4/*2*/)
+ {
+ if ((adapter_to_pwrctl(padapter)->bLeisurePs)
+ && (adapter_to_pwrctl(padapter)->pwr_mode != PS_MODE_ACTIVE)
+ && (rtw_btcoex_IsBtControlLps(padapter) == false)
+ )
-+ {
-+ DBG_871X("leave lps via Rx = %d\n", pmlmepriv->LinkDetectInfo.NumRxUnicastOkInPeriod);
++ {
++ DBG_871X("leave lps via Rx = %d\n", pmlmepriv->LinkDetectInfo.NumRxUnicastOkInPeriod);
+ bLeaveLPS = true;
+ }
-+ }
-+ }
++ }
++ }
+
-+ if(bLeaveLPS)
++ if (bLeaveLPS)
+ {
-+ //DBG_871X("leave lps via %s, Tx = %d, Rx = %d \n", tx?"Tx":"Rx", pmlmepriv->LinkDetectInfo.NumTxOkInPeriod,pmlmepriv->LinkDetectInfo.NumRxUnicastOkInPeriod);
-+ //rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_LEAVE, 1);
++ /* DBG_871X("leave lps via %s, Tx = %d, Rx = %d\n", tx?"Tx":"Rx", pmlmepriv->LinkDetectInfo.NumTxOkInPeriod, pmlmepriv->LinkDetectInfo.NumRxUnicastOkInPeriod); */
++ /* rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_LEAVE, 1); */
+ rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_LEAVE, tx?0:1);
+ }
-+}
++}
+
+/*
+ * Description:
-+ * This function MUST be called under power lock protect
++ *This function MUST be called under power lock protect
+ *
+ * Parameters
-+ * padapter
-+ * pslv power state level, only could be PS_STATE_S0 ~ PS_STATE_S4
++ *padapter
++ *pslv power state level, only could be PS_STATE_S0 ~ PS_STATE_S4
+ *
+ */
-+void rtw_set_rpwm(PADAPTER padapter, u8 pslv)
++void rtw_set_rpwm(struct adapter *padapter, u8 pslv)
+{
-+ u8 rpwm;
++ u8 rpwm;
+ struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
+ u8 cpwm_orig;
-+ struct dvobj_priv *psdpriv = padapter->dvobj;
-+ struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
-+_func_enter_;
+
+ pslv = PS_STATE(pslv);
+
+ if (pwrpriv->brpwmtimeout == true)
+ {
-+ DBG_871X("%s: RPWM timeout, force to set RPWM(0x%02X) again!\n", __FUNCTION__, pslv);
++ DBG_871X("%s: RPWM timeout, force to set RPWM(0x%02X) again!\n", __func__, pslv);
+ }
+ else
+ {
-+ if ( (pwrpriv->rpwm == pslv)
-+ || ((pwrpriv->rpwm >= PS_STATE_S2)&&(pslv >= PS_STATE_S2)))
++ if ((pwrpriv->rpwm == pslv)
++ || ((pwrpriv->rpwm >= PS_STATE_S2) && (pslv >= PS_STATE_S2)))
+ {
-+ RT_TRACE(_module_rtl871x_pwrctrl_c_,_drv_err_,
-+ ("%s: Already set rpwm[0x%02X], new=0x%02X!\n", __FUNCTION__, pwrpriv->rpwm, pslv));
++ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_err_,
++ ("%s: Already set rpwm[0x%02X], new = 0x%02X!\n", __func__, pwrpriv->rpwm, pslv));
+ return;
+ }
+ }
@@ -24893,7 +21440,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ {
+ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_err_,
+ ("%s: SurpriseRemoved(%d) hw_init_completed(%d)\n",
-+ __FUNCTION__, padapter->bSurpriseRemoved, padapter->hw_init_completed));
++ __func__, padapter->bSurpriseRemoved, padapter->hw_init_completed));
+
+ pwrpriv->cpwm = PS_STATE_S4;
+
@@ -24903,21 +21450,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ if (padapter->bDriverStopped == true)
+ {
+ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_err_,
-+ ("%s: change power state(0x%02X) when DriverStopped\n", __FUNCTION__, pslv));
++ ("%s: change power state(0x%02X) when DriverStopped\n", __func__, pslv));
+
+ if (pslv < PS_STATE_S2) {
+ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_err_,
-+ ("%s: Reject to enter PS_STATE(0x%02X) lower than S2 when DriverStopped!!\n", __FUNCTION__, pslv));
++ ("%s: Reject to enter PS_STATE(0x%02X) lower than S2 when DriverStopped!!\n", __func__, pslv));
+ return;
+ }
+ }
+
+ rpwm = pslv | pwrpriv->tog;
-+ // only when from PS_STATE S0/S1 to S2 and higher needs ACK
++ /* only when from PS_STATE S0/S1 to S2 and higher needs ACK */
+ if ((pwrpriv->cpwm < PS_STATE_S2) && (pslv >= PS_STATE_S2))
+ rpwm |= PS_ACK;
+ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,
-+ ("rtw_set_rpwm: rpwm=0x%02x cpwm=0x%02x\n", rpwm, pwrpriv->cpwm));
++ ("rtw_set_rpwm: rpwm = 0x%02x cpwm = 0x%02x\n", rpwm, pwrpriv->cpwm));
+
+ pwrpriv->rpwm = pslv;
+
@@ -24933,16 +21480,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+
+ pwrpriv->tog += 0x80;
+
-+ // No LPS 32K, No Ack
++ /* No LPS 32K, No Ack */
+ if (rpwm & PS_ACK)
+ {
+ unsigned long start_time;
+ u8 cpwm_now;
-+ u8 poll_cnt=0;
++ u8 poll_cnt = 0;
+
+ start_time = jiffies;
+
-+ // polling cpwm
++ /* polling cpwm */
+ do {
+ mdelay(1);
+ poll_cnt++;
@@ -24956,7 +21503,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+
+ if (jiffies_to_msecs(jiffies - start_time) > LPS_RPWM_WAIT_MS)
+ {
-+ DBG_871X("%s: polling cpwm timeout! poll_cnt=%d, cpwm_orig=%02x, cpwm_now=%02x \n", __FUNCTION__,poll_cnt, cpwm_orig, cpwm_now);
++ DBG_871X("%s: polling cpwm timeout! poll_cnt =%d, cpwm_orig =%02x, cpwm_now =%02x\n", __func__, poll_cnt, cpwm_orig, cpwm_now);
+ _set_timer(&pwrpriv->pwr_rpwm_timer, 1);
+ break;
+ }
@@ -24966,25 +21513,23 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ {
+ pwrpriv->cpwm = pslv;
+ }
-+
-+_func_exit_;
+}
+
-+static u8 PS_RDY_CHECK(_adapter * padapter)
++static u8 PS_RDY_CHECK(struct adapter *padapter)
+{
+ unsigned long curr_time, delta_time;
-+ struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
-+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
++ struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
++ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
+
+#if defined(CONFIG_WOWLAN) || defined(CONFIG_AP_WOWLAN)
-+ if(true == pwrpriv->bInSuspend && pwrpriv->wowlan_mode)
++ if (true == pwrpriv->bInSuspend && pwrpriv->wowlan_mode)
+ return true;
-+ else if(true == pwrpriv->bInSuspend && pwrpriv->wowlan_ap_mode)
++ else if (true == pwrpriv->bInSuspend && pwrpriv->wowlan_ap_mode)
+ return true;
+ else if (true == pwrpriv->bInSuspend)
+ return false;
+#else
-+ if(true == pwrpriv->bInSuspend )
++ if (true == pwrpriv->bInSuspend)
+ return false;
+#endif
+
@@ -24992,8 +21537,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+
+ delta_time = curr_time -pwrpriv->DelayLPSLastTimeStamp;
+
-+ if(delta_time < LPS_DELAY_TIME)
-+ {
++ if (delta_time < LPS_DELAY_TIME)
++ {
+ return false;
+ }
+
@@ -25005,7 +21550,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ )
+ return false;
+
-+ if( (padapter->securitypriv.dot11AuthAlgrthm == dot11AuthAlgrthm_8021X) && (padapter->securitypriv.binstallGrpkey == false) )
++ if ((padapter->securitypriv.dot11AuthAlgrthm == dot11AuthAlgrthm_8021X) && (padapter->securitypriv.binstallGrpkey == false))
+ {
+ DBG_871X("Group handshake still in progress !!!\n");
+ return false;
@@ -25017,20 +21562,19 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ return true;
+}
+
-+void rtw_set_ps_mode(PADAPTER padapter, u8 ps_mode, u8 smart_ps, u8 bcn_ant_mode, const char *msg)
++void rtw_set_ps_mode(struct adapter *padapter, u8 ps_mode, u8 smart_ps, u8 bcn_ant_mode, const char *msg)
+{
+ struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
-+ struct dvobj_priv *psdpriv = padapter->dvobj;
-+ struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
-+
-+_func_enter_;
++#if defined(CONFIG_WOWLAN) || defined(CONFIG_AP_WOWLAN)
++ struct debug_priv *pdbgpriv = &padapter->dvobj->drv_dbg;
++#endif
+
+ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,
-+ ("%s: PowerMode=%d Smart_PS=%d\n",
-+ __FUNCTION__, ps_mode, smart_ps));
++ ("%s: PowerMode =%d Smart_PS =%d\n",
++ __func__, ps_mode, smart_ps));
+
-+ if(ps_mode > PM_Card_Disable) {
-+ RT_TRACE(_module_rtl871x_pwrctrl_c_,_drv_err_,("ps_mode:%d error\n", ps_mode));
++ if (ps_mode > PM_Card_Disable) {
++ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_err_, ("ps_mode:%d error\n", ps_mode));
+ return;
+ }
+
@@ -25041,8 +21585,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+
+ down(&pwrpriv->lock);
+
-+ //if(pwrpriv->pwr_mode == PS_MODE_ACTIVE)
-+ if(ps_mode == PS_MODE_ACTIVE)
++ /* if (pwrpriv->pwr_mode == PS_MODE_ACTIVE) */
++ if (ps_mode == PS_MODE_ACTIVE)
+ {
+ if (1
+ && (((rtw_btcoex_IsBtControlLps(padapter) == false)
@@ -25057,7 +21601,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+
+ pwrpriv->pwr_mode = ps_mode;
+ rtw_set_rpwm(padapter, PS_STATE_S4);
-+
++
+#if defined(CONFIG_WOWLAN) || defined(CONFIG_AP_WOWLAN)
+ if (pwrpriv->wowlan_mode == true ||
+ pwrpriv->wowlan_ap_mode == true)
@@ -25067,21 +21611,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ u8 val8;
+ delay_ms = 20;
+ start_time = jiffies;
-+ do {
++ do {
+ rtw_hal_get_hwreg(padapter, HW_VAR_SYS_CLKR, &val8);
-+ if (!(val8 & BIT(4))){ //0x08 bit4 =1 --> in 32k, bit4 = 0 --> leave 32k
++ if (!(val8 & BIT(4))) { /* 0x08 bit4 = 1 --> in 32k, bit4 = 0 --> leave 32k */
+ pwrpriv->cpwm = PS_STATE_S4;
+ break;
+ }
+ if (jiffies_to_msecs(jiffies - start_time) > delay_ms)
+ {
-+ DBG_871X("%s: Wait for FW 32K leave more than %u ms!!!\n",
-+ __FUNCTION__, delay_ms);
++ DBG_871X("%s: Wait for FW 32K leave more than %u ms!!!\n",
++ __func__, delay_ms);
+ pdbgpriv->dbg_wow_leave_ps_fail_cnt++;
+ break;
+ }
+ msleep(1);
-+ } while (1);
++ } while (1);
+ }
+#endif
+ rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_PWRMODE, (u8 *)(&ps_mode));
@@ -25129,17 +21673,15 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ }
+
+ up(&pwrpriv->lock);
-+
-+_func_exit_;
+}
+
+/*
+ * Return:
-+ * 0: Leave OK
-+ * -1: Timeout
-+ * -2: Other error
++ *0: Leave OK
++ *-1: Timeout
++ *-2: Other error
+ */
-+s32 LPS_RF_ON_check(PADAPTER padapter, u32 delay_ms)
++s32 LPS_RF_ON_check(struct adapter *padapter, u32 delay_ms)
+{
+ unsigned long start_time;
+ u8 bAwake = false;
@@ -25156,14 +21698,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ if (true == padapter->bSurpriseRemoved)
+ {
+ err = -2;
-+ DBG_871X("%s: device surprise removed!!\n", __FUNCTION__);
++ DBG_871X("%s: device surprise removed!!\n", __func__);
+ break;
+ }
+
+ if (jiffies_to_msecs(jiffies - start_time) > delay_ms)
+ {
+ err = -1;
-+ DBG_871X("%s: Wait for FW LPS leave more than %u ms!!!\n", __FUNCTION__, delay_ms);
++ DBG_871X("%s: Wait for FW LPS leave more than %u ms!!!\n", __func__, delay_ms);
+ break;
+ }
+ msleep(1);
@@ -25172,32 +21714,23 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ return err;
+}
+
-+//
-+// Description:
-+// Enter the leisure power save mode.
-+//
-+void LPS_Enter(PADAPTER padapter, const char *msg)
++/* */
++/* Description: */
++/* Enter the leisure power save mode. */
++/* */
++void LPS_Enter(struct adapter *padapter, const char *msg)
+{
+ struct dvobj_priv *dvobj = adapter_to_dvobj(padapter);
-+ struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj);
-+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ _adapter *buddy = padapter->pbuddy_adapter;
++ struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj);
+ int n_assoc_iface = 0;
-+ int i;
+ char buf[32] = {0};
+
-+_func_enter_;
-+
-+// DBG_871X("+LeisurePSEnter\n");
-+
+ if (rtw_btcoex_IsBtControlLps(padapter) == true)
+ return;
+
+ /* Skip lps enter request if number of assocated adapters is not 1 */
-+ for (i = 0; i < dvobj->iface_nums; i++) {
-+ if (check_fwstate(&(dvobj->padapters[i]->mlmepriv), WIFI_ASOC_STATE))
-+ n_assoc_iface++;
-+ }
++ if (check_fwstate(&(dvobj->padapters->mlmepriv), WIFI_ASOC_STATE))
++ n_assoc_iface++;
+ if (n_assoc_iface != 1)
+ return;
+
@@ -25205,17 +21738,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ if (get_iface_type(padapter) != IFACE_PORT0)
+ return;
+
-+ for (i = 0; i < dvobj->iface_nums; i++) {
-+ if (PS_RDY_CHECK(dvobj->padapters[i]) == false)
++ if (PS_RDY_CHECK(dvobj->padapters) == false)
+ return;
-+ }
+
-+ if (pwrpriv->bLeisurePs)
-+ {
-+ // Idle for a while if we connect to AP a while ago.
-+ if (pwrpriv->LpsIdleCount >= 2) // 4 Sec
++ if (pwrpriv->bLeisurePs) {
++ /* Idle for a while if we connect to AP a while ago. */
++ if (pwrpriv->LpsIdleCount >= 2) /* 4 Sec */
+ {
-+ if(pwrpriv->pwr_mode == PS_MODE_ACTIVE)
++ if (pwrpriv->pwr_mode == PS_MODE_ACTIVE)
+ {
+ sprintf(buf, "WIFI-%s", msg);
+ pwrpriv->bpower_saving = true;
@@ -25226,77 +21756,63 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ pwrpriv->LpsIdleCount++;
+ }
+
-+// DBG_871X("-LeisurePSEnter\n");
-+
-+_func_exit_;
++/* DBG_871X("-LeisurePSEnter\n"); */
+}
+
-+//
-+// Description:
-+// Leave the leisure power save mode.
-+//
-+void LPS_Leave(PADAPTER padapter, const char *msg)
++/* */
++/* Description: */
++/* Leave the leisure power save mode. */
++/* */
++void LPS_Leave(struct adapter *padapter, const char *msg)
+{
+#define LPS_LEAVE_TIMEOUT_MS 100
+
+ struct dvobj_priv *dvobj = adapter_to_dvobj(padapter);
-+ struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj);
-+ u32 start_time;
-+ u8 bAwake = false;
++ struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj);
+ char buf[32] = {0};
-+ struct debug_priv *pdbgpriv = &dvobj->drv_dbg;
+
-+_func_enter_;
-+
-+// DBG_871X("+LeisurePSLeave\n");
++/* DBG_871X("+LeisurePSLeave\n"); */
+
+ if (rtw_btcoex_IsBtControlLps(padapter) == true)
+ return;
+
+ if (pwrpriv->bLeisurePs)
+ {
-+ if(pwrpriv->pwr_mode != PS_MODE_ACTIVE)
++ if (pwrpriv->pwr_mode != PS_MODE_ACTIVE)
+ {
+ sprintf(buf, "WIFI-%s", msg);
+ rtw_set_ps_mode(padapter, PS_MODE_ACTIVE, 0, 0, buf);
+
-+ if(pwrpriv->pwr_mode == PS_MODE_ACTIVE)
++ if (pwrpriv->pwr_mode == PS_MODE_ACTIVE)
+ LPS_RF_ON_check(padapter, LPS_LEAVE_TIMEOUT_MS);
+ }
+ }
+
+ pwrpriv->bpower_saving = false;
-+// DBG_871X("-LeisurePSLeave\n");
++/* DBG_871X("-LeisurePSLeave\n"); */
+
-+_func_exit_;
+}
+
-+void LeaveAllPowerSaveModeDirect(PADAPTER Adapter)
++void LeaveAllPowerSaveModeDirect(struct adapter * Adapter)
+{
-+ PADAPTER pri_padapter = GET_PRIMARY_ADAPTER(Adapter);
-+ struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
++ struct adapter * pri_padapter = GET_PRIMARY_ADAPTER(Adapter);
++ struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
+ struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(Adapter);
-+ struct dvobj_priv *psdpriv = Adapter->dvobj;
-+ struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
-+ u8 cpwm_orig, cpwm_now;
-+ unsigned long start_time;
+
-+_func_enter_;
-+
-+ DBG_871X("%s.....\n",__FUNCTION__);
++ DBG_871X("%s.....\n", __func__);
+
+ if (true == Adapter->bSurpriseRemoved)
+ {
-+ DBG_871X(FUNC_ADPT_FMT ": bSurpriseRemoved=%d Skip!\n",
++ DBG_871X(FUNC_ADPT_FMT ": bSurpriseRemoved =%d Skip!\n",
+ FUNC_ADPT_ARG(Adapter), Adapter->bSurpriseRemoved);
+ return;
+ }
+
+ if ((check_fwstate(pmlmepriv, _FW_LINKED) == true))
-+ { //connect
++ { /* connect */
+
-+ if(pwrpriv->pwr_mode == PS_MODE_ACTIVE) {
-+ DBG_871X("%s: Driver Already Leave LPS\n",__FUNCTION__);
++ if (pwrpriv->pwr_mode == PS_MODE_ACTIVE) {
++ DBG_871X("%s: Driver Already Leave LPS\n", __func__);
+ return;
+ }
+
@@ -25310,83 +21826,61 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ }
+ else
+ {
-+ if(pwrpriv->rf_pwrstate== rf_off)
++ if (pwrpriv->rf_pwrstate == rf_off)
+ {
-+ if(false == ips_leave(pri_padapter))
++ if (false == ips_leave(pri_padapter))
+ {
+ DBG_871X("======> ips_leave fail.............\n");
+ }
+ }
+ }
-+
-+_func_exit_;
+}
+
-+//
-+// Description: Leave all power save mode: LPS, FwLPS, IPS if needed.
-+// Move code to function by tynli. 2010.03.26.
-+//
-+void LeaveAllPowerSaveMode(IN PADAPTER Adapter)
++/* */
++/* Description: Leave all power save mode: LPS, FwLPS, IPS if needed. */
++/* Move code to function by tynli. 2010.03.26. */
++/* */
++void LeaveAllPowerSaveMode(struct adapter * Adapter)
+{
+ struct dvobj_priv *dvobj = adapter_to_dvobj(Adapter);
-+ struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
-+ u8 enqueue = 0;
++ u8 enqueue = 0;
+ int n_assoc_iface = 0;
-+ int i;
+
-+_func_enter_;
-+
-+ //DBG_871X("%s.....\n",__FUNCTION__);
-+
-+ if (false == Adapter->bup)
-+ {
-+ DBG_871X(FUNC_ADPT_FMT ": bup=%d Skip!\n",
++ if (!Adapter->bup) {
++ DBG_871X(FUNC_ADPT_FMT ": bup =%d Skip!\n",
+ FUNC_ADPT_ARG(Adapter), Adapter->bup);
+ return;
+ }
+
-+ if (true == Adapter->bSurpriseRemoved)
-+ {
-+ DBG_871X(FUNC_ADPT_FMT ": bSurpriseRemoved=%d Skip!\n",
++ if (Adapter->bSurpriseRemoved) {
++ DBG_871X(FUNC_ADPT_FMT ": bSurpriseRemoved =%d Skip!\n",
+ FUNC_ADPT_ARG(Adapter), Adapter->bSurpriseRemoved);
+ return;
+ }
+
-+ for (i = 0; i < dvobj->iface_nums; i++) {
-+ if (check_fwstate(&(dvobj->padapters[i]->mlmepriv), WIFI_ASOC_STATE))
-+ n_assoc_iface++;
-+ }
++ if (check_fwstate(&(dvobj->padapters->mlmepriv), WIFI_ASOC_STATE))
++ n_assoc_iface++;
+
-+ if (n_assoc_iface)
-+ { //connect
++ if (n_assoc_iface) { /* connect */
+ enqueue = 1;
+
+ rtw_lps_ctrl_wk_cmd(Adapter, LPS_CTRL_LEAVE, enqueue);
+
+ LPS_Leave_check(Adapter);
-+ }
-+ else
-+ {
-+ if(adapter_to_pwrctl(Adapter)->rf_pwrstate== rf_off)
-+ {
-+ if(false == ips_leave(Adapter))
-+ {
++ } else {
++ if (adapter_to_pwrctl(Adapter)->rf_pwrstate == rf_off) {
++ if (false == ips_leave(Adapter))
+ DBG_871X("======> ips_leave fail.............\n");
-+ }
-+ }
++ }
+ }
-+
-+_func_exit_;
+}
+
+void LPS_Leave_check(
-+ PADAPTER padapter)
++ struct adapter *padapter)
+{
+ struct pwrctrl_priv *pwrpriv;
+ unsigned long start_time;
-+ u8 bReady;
-+
-+_func_enter_;
++ u8 bReady;
+
+ pwrpriv = adapter_to_pwrctl(padapter);
+
@@ -25394,8 +21888,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ start_time = jiffies;
+
+ yield();
-+
-+ while(1)
++
++ while (1)
+ {
+ down(&pwrpriv->lock);
+
@@ -25409,18 +21903,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+
+ up(&pwrpriv->lock);
+
-+ if(true == bReady)
++ if (true == bReady)
+ break;
+
-+ if(jiffies_to_msecs(jiffies - start_time)>100)
++ if (jiffies_to_msecs(jiffies - start_time)>100)
+ {
+ DBG_871X("Wait for cpwm event than 100 ms!!!\n");
+ break;
+ }
+ msleep(1);
+ }
-+
-+_func_exit_;
+}
+
+/*
@@ -25431,20 +21923,18 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ * using to update cpwn of drv; and drv willl make a decision to up or down pwr level
+ */
+void cpwm_int_hdl(
-+ PADAPTER padapter,
++ struct adapter *padapter,
+ struct reportpwrstate_parm *preportpwrstate)
+{
+ struct pwrctrl_priv *pwrpriv;
+
-+_func_enter_;
-+
+ pwrpriv = adapter_to_pwrctl(padapter);
+
+ down(&pwrpriv->lock);
+
+ if (pwrpriv->rpwm < PS_STATE_S2)
+ {
-+ DBG_871X("%s: Redundant CPWM Int. RPWM=0x%02X CPWM=0x%02x\n", __func__, pwrpriv->rpwm, pwrpriv->cpwm);
++ DBG_871X("%s: Redundant CPWM Int. RPWM = 0x%02X CPWM = 0x%02x\n", __func__, pwrpriv->rpwm, pwrpriv->cpwm);
+ up(&pwrpriv->lock);
+ goto exit;
+ }
@@ -25465,19 +21955,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+
+exit:
+ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,
-+ ("cpwm_int_hdl: cpwm=0x%02x\n", pwrpriv->cpwm));
-+
-+_func_exit_;
++ ("cpwm_int_hdl: cpwm = 0x%02x\n", pwrpriv->cpwm));
+}
+
+static void cpwm_event_callback(struct work_struct *work)
+{
+ struct pwrctrl_priv *pwrpriv = container_of(work, struct pwrctrl_priv, cpwm_event);
+ struct dvobj_priv *dvobj = pwrctl_to_dvobj(pwrpriv);
-+ _adapter *adapter = dvobj->if1;
++ struct adapter *adapter = dvobj->if1;
+ struct reportpwrstate_parm report;
+
-+ //DBG_871X("%s\n",__FUNCTION__);
++ /* DBG_871X("%s\n", __func__); */
+
+ report.state = PS_STATE_S2;
+ cpwm_int_hdl(adapter, &report);
@@ -25485,7 +21973,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+
+static void rpwmtimeout_workitem_callback(struct work_struct *work)
+{
-+ PADAPTER padapter;
++ struct adapter *padapter;
+ struct dvobj_priv *dvobj;
+ struct pwrctrl_priv *pwrpriv;
+
@@ -25493,12 +21981,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ pwrpriv = container_of(work, struct pwrctrl_priv, rpwmtimeoutwi);
+ dvobj = pwrctl_to_dvobj(pwrpriv);
+ padapter = dvobj->if1;
-+// DBG_871X("+%s: rpwm=0x%02X cpwm=0x%02X\n", __func__, pwrpriv->rpwm, pwrpriv->cpwm);
++/* DBG_871X("+%s: rpwm = 0x%02X cpwm = 0x%02X\n", __func__, pwrpriv->rpwm, pwrpriv->cpwm); */
+
+ down(&pwrpriv->lock);
+ if ((pwrpriv->rpwm == pwrpriv->cpwm) || (pwrpriv->cpwm >= PS_STATE_S2))
+ {
-+ DBG_871X("%s: rpwm=0x%02X cpwm=0x%02X CPWM done!\n", __func__, pwrpriv->rpwm, pwrpriv->cpwm);
++ DBG_871X("%s: rpwm = 0x%02X cpwm = 0x%02X CPWM done!\n", __func__, pwrpriv->rpwm, pwrpriv->cpwm);
+ goto exit;
+ }
+ up(&pwrpriv->lock);
@@ -25518,7 +22006,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+
+ if ((pwrpriv->rpwm == pwrpriv->cpwm) || (pwrpriv->cpwm >= PS_STATE_S2))
+ {
-+ DBG_871X("%s: cpwm=%d, nothing to do!\n", __func__, pwrpriv->cpwm);
++ DBG_871X("%s: cpwm =%d, nothing to do!\n", __func__, pwrpriv->cpwm);
+ goto exit;
+ }
+ pwrpriv->brpwmtimeout = true;
@@ -25534,17 +22022,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ */
+static void pwr_rpwm_timeout_handler(void *FunctionContext)
+{
-+ PADAPTER padapter;
++ struct adapter *padapter;
+ struct pwrctrl_priv *pwrpriv;
+
+
-+ padapter = (PADAPTER)FunctionContext;
++ padapter = (struct adapter *)FunctionContext;
+ pwrpriv = adapter_to_pwrctl(padapter);
-+ DBG_871X("+%s: rpwm=0x%02X cpwm=0x%02X\n", __func__, pwrpriv->rpwm, pwrpriv->cpwm);
++ DBG_871X("+%s: rpwm = 0x%02X cpwm = 0x%02X\n", __func__, pwrpriv->rpwm, pwrpriv->cpwm);
+
+ if ((pwrpriv->rpwm == pwrpriv->cpwm) || (pwrpriv->cpwm >= PS_STATE_S2))
+ {
-+ DBG_871X("+%s: cpwm=%d, nothing to do!\n", __func__, pwrpriv->cpwm);
++ DBG_871X("+%s: cpwm =%d, nothing to do!\n", __func__, pwrpriv->cpwm);
+ return;
+ }
+
@@ -25564,27 +22052,25 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+
+/*
+ * Description:
-+ * Check if the fw_pwrstate is okay for I/O.
-+ * If not (cpwm is less than S2), then the sub-routine
-+ * will raise the cpwm to be greater than or equal to S2.
++ *Check if the fw_pwrstate is okay for I/O.
++ *If not (cpwm is less than S2), then the sub-routine
++ *will raise the cpwm to be greater than or equal to S2.
+ *
-+ * Calling Context: Passive
++ *Calling Context: Passive
++ *
++ *Constraint:
++ * 1. this function will request pwrctrl->lock
+ *
-+ * Constraint:
-+ * 1. this function will request pwrctrl->lock
-+ *
+ * Return Value:
-+ * _SUCCESS hardware is ready for I/O
-+ * _FAIL can't I/O right now
++ *_SUCCESS hardware is ready for I/O
++ *_FAIL can't I/O right now
+ */
-+s32 rtw_register_task_alive(PADAPTER padapter, u32 task)
++s32 rtw_register_task_alive(struct adapter *padapter, u32 task)
+{
+ s32 res;
+ struct pwrctrl_priv *pwrctrl;
+ u8 pslv;
+
-+_func_enter_;
-+
+ res = _SUCCESS;
+ pwrctrl = adapter_to_pwrctl(padapter);
+ pslv = PS_STATE_S2;
@@ -25596,8 +22082,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ if (pwrctrl->bFwCurrentInPSMode == true)
+ {
+ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,
-+ ("%s: task=0x%x cpwm=0x%02x alives=0x%08x\n",
-+ __FUNCTION__, task, pwrctrl->cpwm, pwrctrl->alives));
++ ("%s: task = 0x%x cpwm = 0x%02x alives = 0x%08x\n",
++ __func__, task, pwrctrl->cpwm, pwrctrl->alives));
+
+ if (pwrctrl->cpwm < pslv)
+ {
@@ -25615,29 +22101,24 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ if (pwrctrl->cpwm >= PS_STATE_S2)
+ res = _SUCCESS;
+ }
-+
-+_func_exit_;
-+
-+ return res;
++ return res;
+}
+
+/*
+ * Description:
-+ * If task is done, call this func. to power down firmware again.
++ *If task is done, call this func. to power down firmware again.
+ *
-+ * Constraint:
-+ * 1. this function will request pwrctrl->lock
++ *Constraint:
++ * 1. this function will request pwrctrl->lock
+ *
+ * Return Value:
-+ * none
++ *none
+ */
-+void rtw_unregister_task_alive(PADAPTER padapter, u32 task)
++void rtw_unregister_task_alive(struct adapter *padapter, u32 task)
+{
+ struct pwrctrl_priv *pwrctrl;
+ u8 pslv;
+
-+_func_enter_;
-+
+ pwrctrl = adapter_to_pwrctl(padapter);
+ pslv = PS_STATE_S0;
+
@@ -25659,8 +22140,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ && (pwrctrl->bFwCurrentInPSMode == true))
+ {
+ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,
-+ ("%s: cpwm=0x%02x alives=0x%08x\n",
-+ __FUNCTION__, pwrctrl->cpwm, pwrctrl->alives));
++ ("%s: cpwm = 0x%02x alives = 0x%08x\n",
++ __func__, pwrctrl->cpwm, pwrctrl->alives));
+
+ if (pwrctrl->cpwm > pslv)
+ {
@@ -25670,31 +22151,27 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ }
+
+ up(&pwrctrl->lock);
-+
-+_func_exit_;
+}
+
+/*
+ * Caller: rtw_xmit_thread
-+ *
++ *
+ * Check if the fw_pwrstate is okay for xmit.
+ * If not (cpwm is less than S3), then the sub-routine
-+ * will raise the cpwm to be greater than or equal to S3.
++ * will raise the cpwm to be greater than or equal to S3.
+ *
+ * Calling Context: Passive
-+ *
++ *
+ * Return Value:
-+ * _SUCCESS rtw_xmit_thread can write fifo/txcmd afterwards.
-+ * _FAIL rtw_xmit_thread can not do anything.
++ * _SUCCESS rtw_xmit_thread can write fifo/txcmd afterwards.
++ * _FAIL rtw_xmit_thread can not do anything.
+ */
-+s32 rtw_register_tx_alive(PADAPTER padapter)
++s32 rtw_register_tx_alive(struct adapter *padapter)
+{
+ s32 res;
+ struct pwrctrl_priv *pwrctrl;
+ u8 pslv;
+
-+_func_enter_;
-+
+ res = _SUCCESS;
+ pwrctrl = adapter_to_pwrctl(padapter);
+ pslv = PS_STATE_S2;
@@ -25706,7 +22183,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ if (pwrctrl->bFwCurrentInPSMode == true)
+ {
+ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,
-+ ("rtw_register_tx_alive: cpwm=0x%02x alives=0x%08x\n",
++ ("rtw_register_tx_alive: cpwm = 0x%02x alives = 0x%08x\n",
+ pwrctrl->cpwm, pwrctrl->alives));
+
+ if (pwrctrl->cpwm < pslv)
@@ -25725,10 +22202,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ if (pwrctrl->cpwm >= PS_STATE_S2)
+ res = _SUCCESS;
+ }
-+
-+_func_exit_;
-+
-+ return res;
++ return res;
+}
+
+/*
@@ -25741,17 +22215,15 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ * Calling Context: Passive
+ *
+ * Return Value:
-+ * _SUCCESS rtw_cmd_thread can issue cmds to firmware afterwards.
-+ * _FAIL rtw_cmd_thread can not do anything.
++ *_SUCCESS rtw_cmd_thread can issue cmds to firmware afterwards.
++ *_FAIL rtw_cmd_thread can not do anything.
+ */
-+s32 rtw_register_cmd_alive(PADAPTER padapter)
++s32 rtw_register_cmd_alive(struct adapter *padapter)
+{
+ s32 res;
+ struct pwrctrl_priv *pwrctrl;
+ u8 pslv;
+
-+_func_enter_;
-+
+ res = _SUCCESS;
+ pwrctrl = adapter_to_pwrctl(padapter);
+ pslv = PS_STATE_S2;
@@ -25763,7 +22235,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ if (pwrctrl->bFwCurrentInPSMode == true)
+ {
+ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_info_,
-+ ("rtw_register_cmd_alive: cpwm=0x%02x alives=0x%08x\n",
++ ("rtw_register_cmd_alive: cpwm = 0x%02x alives = 0x%08x\n",
+ pwrctrl->cpwm, pwrctrl->alives));
+
+ if (pwrctrl->cpwm < pslv)
@@ -25782,88 +22254,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ if (pwrctrl->cpwm >= PS_STATE_S2)
+ res = _SUCCESS;
+ }
-+
-+_func_exit_;
-+
+ return res;
+}
+
+/*
-+ * Caller: rx_isr
-+ *
-+ * Calling Context: Dispatch/ISR
-+ *
-+ * Return Value:
-+ * _SUCCESS
-+ * _FAIL
-+ */
-+s32 rtw_register_rx_alive(PADAPTER padapter)
-+{
-+ struct pwrctrl_priv *pwrctrl;
-+
-+_func_enter_;
-+
-+ pwrctrl = adapter_to_pwrctl(padapter);
-+
-+ down(&pwrctrl->lock);
-+
-+ register_task_alive(pwrctrl, RECV_ALIVE);
-+ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,
-+ ("rtw_register_rx_alive: cpwm=0x%02x alives=0x%08x\n",
-+ pwrctrl->cpwm, pwrctrl->alives));
-+
-+ up(&pwrctrl->lock);
-+
-+_func_exit_;
-+
-+ return _SUCCESS;
-+}
-+
-+/*
-+ * Caller: evt_isr or evt_thread
-+ *
-+ * Calling Context: Dispatch/ISR or Passive
-+ *
-+ * Return Value:
-+ * _SUCCESS
-+ * _FAIL
-+ */
-+s32 rtw_register_evt_alive(PADAPTER padapter)
-+{
-+ struct pwrctrl_priv *pwrctrl;
-+
-+_func_enter_;
-+
-+ pwrctrl = adapter_to_pwrctl(padapter);
-+
-+ down(&pwrctrl->lock);
-+
-+ register_task_alive(pwrctrl, EVT_ALIVE);
-+ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,
-+ ("rtw_register_evt_alive: cpwm=0x%02x alives=0x%08x\n",
-+ pwrctrl->cpwm, pwrctrl->alives));
-+
-+ up(&pwrctrl->lock);
-+
-+_func_exit_;
-+
-+ return _SUCCESS;
-+}
-+
-+/*
+ * Caller: ISR
+ *
+ * If ISR's txdone,
+ * No more pkts for TX,
+ * Then driver shall call this fun. to power down firmware again.
+ */
-+void rtw_unregister_tx_alive(PADAPTER padapter)
++void rtw_unregister_tx_alive(struct adapter *padapter)
+{
+ struct pwrctrl_priv *pwrctrl;
+ u8 pslv;
+
-+_func_enter_;
-+
+ pwrctrl = adapter_to_pwrctl(padapter);
+ pslv = PS_STATE_S0;
+
@@ -25885,8 +22290,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ && (pwrctrl->bFwCurrentInPSMode == true))
+ {
+ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,
-+ ("%s: cpwm=0x%02x alives=0x%08x\n",
-+ __FUNCTION__, pwrctrl->cpwm, pwrctrl->alives));
++ ("%s: cpwm = 0x%02x alives = 0x%08x\n",
++ __func__, pwrctrl->cpwm, pwrctrl->alives));
+
+ if (pwrctrl->cpwm > pslv)
+ {
@@ -25896,8 +22301,6 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ }
+
+ up(&pwrctrl->lock);
-+
-+_func_exit_;
+}
+
+/*
@@ -25907,13 +22310,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ * and no more command to do,
+ * then driver shall call this fun. to power down firmware again.
+ */
-+void rtw_unregister_cmd_alive(PADAPTER padapter)
++void rtw_unregister_cmd_alive(struct adapter *padapter)
+{
+ struct pwrctrl_priv *pwrctrl;
+ u8 pslv;
+
-+_func_enter_;
-+
+ pwrctrl = adapter_to_pwrctl(padapter);
+ pslv = PS_STATE_S0;
+
@@ -25935,8 +22336,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ && (pwrctrl->bFwCurrentInPSMode == true))
+ {
+ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_info_,
-+ ("%s: cpwm=0x%02x alives=0x%08x\n",
-+ __FUNCTION__, pwrctrl->cpwm, pwrctrl->alives));
++ ("%s: cpwm = 0x%02x alives = 0x%08x\n",
++ __func__, pwrctrl->cpwm, pwrctrl->alives));
+
+ if (pwrctrl->cpwm > pslv)
+ {
@@ -25946,64 +22347,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ }
+
+ up(&pwrctrl->lock);
-+
-+_func_exit_;
+}
+
-+/*
-+ * Caller: ISR
-+ */
-+void rtw_unregister_rx_alive(PADAPTER padapter)
-+{
-+ struct pwrctrl_priv *pwrctrl;
-+
-+_func_enter_;
-+
-+ pwrctrl = adapter_to_pwrctl(padapter);
-+
-+ down(&pwrctrl->lock);
-+
-+ unregister_task_alive(pwrctrl, RECV_ALIVE);
-+
-+ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,
-+ ("rtw_unregister_rx_alive: cpwm=0x%02x alives=0x%08x\n",
-+ pwrctrl->cpwm, pwrctrl->alives));
-+
-+ up(&pwrctrl->lock);
-+
-+_func_exit_;
-+}
-+
-+void rtw_unregister_evt_alive(PADAPTER padapter)
-+{
-+ struct pwrctrl_priv *pwrctrl;
-+
-+_func_enter_;
-+
-+ pwrctrl = adapter_to_pwrctl(padapter);
-+
-+ unregister_task_alive(pwrctrl, EVT_ALIVE);
-+
-+ RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,
-+ ("rtw_unregister_evt_alive: cpwm=0x%02x alives=0x%08x\n",
-+ pwrctrl->cpwm, pwrctrl->alives));
-+
-+ up(&pwrctrl->lock);
-+
-+_func_exit_;
-+}
-+
-+void rtw_init_pwrctrl_priv(PADAPTER padapter)
++void rtw_init_pwrctrl_priv(struct adapter *padapter)
+{
+ struct pwrctrl_priv *pwrctrlpriv = adapter_to_pwrctl(padapter);
+
-+_func_enter_;
-+
+ sema_init(&pwrctrlpriv->lock, 1);
+ sema_init(&pwrctrlpriv->check_32k_lock, 1);
+ pwrctrlpriv->rf_pwrstate = rf_on;
-+ pwrctrlpriv->ips_enter_cnts=0;
-+ pwrctrlpriv->ips_leave_cnts=0;
++ pwrctrlpriv->ips_enter_cnts = 0;
++ pwrctrlpriv->ips_leave_cnts = 0;
+ pwrctrlpriv->bips_processing = false;
+
+ pwrctrlpriv->ips_mode = padapter->registrypriv.ips_mode;
@@ -26016,11 +22370,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ pwrctrlpriv->bkeepfwalive = false;
+
+ pwrctrlpriv->LpsIdleCount = 0;
-+ //pwrctrlpriv->FWCtrlPSMode =padapter->registrypriv.power_mgnt;// PS_MODE_MIN;
-+ if (padapter->registrypriv.mp_mode == 1)
-+ pwrctrlpriv->power_mgnt =PS_MODE_ACTIVE ;
-+ else
-+ pwrctrlpriv->power_mgnt =padapter->registrypriv.power_mgnt;// PS_MODE_MIN;
++ pwrctrlpriv->power_mgnt =padapter->registrypriv.power_mgnt;/* PS_MODE_MIN; */
+ pwrctrlpriv->bLeisurePs = (PS_MODE_ACTIVE != pwrctrlpriv->power_mgnt)?true:false;
+
+ pwrctrlpriv->bFwCurrentInPSMode = false;
@@ -26055,19 +22405,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ pwrctrlpriv->pno_ssid_list = NULL;
+ pwrctrlpriv->pno_in_resume = true;
+#endif
-+
-+_func_exit_;
-+
+}
+
+
-+void rtw_free_pwrctrl_priv(PADAPTER adapter)
++void rtw_free_pwrctrl_priv(struct adapter * adapter)
+{
-+ struct pwrctrl_priv *pwrctrlpriv = adapter_to_pwrctl(adapter);
-+
-+_func_enter_;
-+
-+ //memset((unsigned char *)pwrctrlpriv, 0, sizeof(struct pwrctrl_priv));
++ /* memset((unsigned char *)pwrctrlpriv, 0, sizeof(struct pwrctrl_priv)); */
+
+#ifdef CONFIG_PNO_SUPPORT
+ if (pwrctrlpriv->pnlo_info != NULL)
@@ -26079,20 +22422,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ if (pwrctrlpriv->pno_ssid_list != NULL)
+ printk("****** pno_ssid_list memory leak********\n");
+#endif
-+
-+_func_exit_;
+}
+
-+u8 rtw_interface_ps_func(_adapter *padapter,HAL_INTF_PS_FUNC efunc_id,u8* val)
-+{
-+ u8 bResult = true;
-+ rtw_hal_intf_ps_func(padapter,efunc_id,val);
-+
-+ return bResult;
-+}
-+
-+
-+inline void rtw_set_ips_deny(_adapter *padapter, u32 ms)
++inline void rtw_set_ips_deny(struct adapter *padapter, u32 ms)
+{
+ struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
+ pwrpriv->ips_deny_time = jiffies + msecs_to_jiffies(ms);
@@ -26100,18 +22432,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+
+/*
+* rtw_pwr_wakeup - Wake the NIC up from: 1)IPS. 2)USB autosuspend
-+* @adapter: pointer to _adapter structure
++* @adapter: pointer to struct adapter structure
+* @ips_deffer_ms: the ms wiil prevent from falling into IPS after wakeup
+* Return _SUCCESS or _FAIL
+*/
+
-+int _rtw_pwr_wakeup(_adapter *padapter, u32 ips_deffer_ms, const char *caller)
++int _rtw_pwr_wakeup(struct adapter *padapter, u32 ips_deffer_ms, const char *caller)
+{
+ struct dvobj_priv *dvobj = adapter_to_dvobj(padapter);
+ struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(dvobj);
+ struct mlme_priv *pmlmepriv;
+ int ret = _SUCCESS;
-+ int i;
+ unsigned long start = jiffies;
+ unsigned long deny_time = jiffies + msecs_to_jiffies(ips_deffer_ms);
+
@@ -26138,7 +22469,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+
+ if (pwrpriv->bInternalAutoSuspend == false && pwrpriv->bInSuspend) {
+ DBG_871X("%s wait bInSuspend...\n", __func__);
-+ while (pwrpriv->bInSuspend
++ while (pwrpriv->bInSuspend
+ && jiffies_to_msecs(jiffies - start) <= 3000
+ ) {
+ msleep(10);
@@ -26149,30 +22480,30 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ DBG_871X("%s wait bInSuspend done\n", __func__);
+ }
+
-+ //System suspend is not allowed to wakeup
-+ if((pwrpriv->bInternalAutoSuspend == false) && (true == pwrpriv->bInSuspend )){
++ /* System suspend is not allowed to wakeup */
++ if ((pwrpriv->bInternalAutoSuspend == false) && (true == pwrpriv->bInSuspend)) {
+ ret = _FAIL;
+ goto exit;
+ }
+
-+ //block???
-+ if((pwrpriv->bInternalAutoSuspend == true) && (padapter->net_closed == true)) {
++ /* block??? */
++ if ((pwrpriv->bInternalAutoSuspend == true) && (padapter->net_closed == true)) {
+ ret = _FAIL;
+ goto exit;
+ }
+
-+ //I think this should be check in IPS, LPS, autosuspend functions...
++ /* I think this should be check in IPS, LPS, autosuspend functions... */
+ if (check_fwstate(pmlmepriv, _FW_LINKED) == true)
+ {
+ ret = _SUCCESS;
+ goto exit;
-+ }
++ }
+
-+ if(rf_off == pwrpriv->rf_pwrstate )
-+ {
++ if (rf_off == pwrpriv->rf_pwrstate)
++ {
+ {
-+ DBG_8192C("%s call ips_leave....\n",__FUNCTION__);
-+ if(_FAIL == ips_leave(padapter))
++ DBG_8192C("%s call ips_leave....\n", __func__);
++ if (_FAIL == ips_leave(padapter))
+ {
+ DBG_8192C("======> ips_leave fail.............\n");
+ ret = _FAIL;
@@ -26181,17 +22512,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ }
+ }
+
-+ //TODO: the following checking need to be merged...
-+ if(padapter->bDriverStopped
++ /* TODO: the following checking need to be merged... */
++ if (padapter->bDriverStopped
+ || !padapter->bup
+ || !padapter->hw_init_completed
-+ ){
-+ DBG_8192C("%s: bDriverStopped=%d, bup=%d, hw_init_completed=%u\n"
++ ) {
++ DBG_8192C("%s: bDriverStopped =%d, bup =%d, hw_init_completed =%u\n"
+ , caller
-+ , padapter->bDriverStopped
-+ , padapter->bup
-+ , padapter->hw_init_completed);
-+ ret= false;
++ , padapter->bDriverStopped
++ , padapter->bup
++ , padapter->hw_init_completed);
++ ret = false;
+ goto exit;
+ }
+
@@ -26203,16 +22534,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+
+}
+
-+int rtw_pm_set_lps(_adapter *padapter, u8 mode)
++int rtw_pm_set_lps(struct adapter *padapter, u8 mode)
+{
-+ int ret = 0;
++ int ret = 0;
+ struct pwrctrl_priv *pwrctrlpriv = adapter_to_pwrctl(padapter);
-+
-+ if ( mode < PS_MODE_NUM )
++
++ if (mode < PS_MODE_NUM)
+ {
-+ if(pwrctrlpriv->power_mgnt !=mode)
++ if (pwrctrlpriv->power_mgnt !=mode)
+ {
-+ if(PS_MODE_ACTIVE == mode)
++ if (PS_MODE_ACTIVE == mode)
+ {
+ LeaveAllPowerSaveMode(padapter);
+ }
@@ -26232,19 +22563,19 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ return ret;
+}
+
-+int rtw_pm_set_ips(_adapter *padapter, u8 mode)
++int rtw_pm_set_ips(struct adapter *padapter, u8 mode)
+{
+ struct pwrctrl_priv *pwrctrlpriv = adapter_to_pwrctl(padapter);
+
-+ if( mode == IPS_NORMAL || mode == IPS_LEVEL_2 ) {
++ if (mode == IPS_NORMAL || mode == IPS_LEVEL_2) {
+ rtw_ips_mode_req(pwrctrlpriv, mode);
-+ DBG_871X("%s %s\n", __FUNCTION__, mode == IPS_NORMAL?"IPS_NORMAL":"IPS_LEVEL_2");
++ DBG_871X("%s %s\n", __func__, mode == IPS_NORMAL?"IPS_NORMAL":"IPS_LEVEL_2");
+ return 0;
-+ }
-+ else if(mode ==IPS_NONE){
++ }
++ else if (mode ==IPS_NONE) {
+ rtw_ips_mode_req(pwrctrlpriv, mode);
-+ DBG_871X("%s %s\n", __FUNCTION__, "IPS_NONE");
-+ if((padapter->bSurpriseRemoved ==0)&&(_FAIL == rtw_pwr_wakeup(padapter)) )
++ DBG_871X("%s %s\n", __func__, "IPS_NONE");
++ if ((padapter->bSurpriseRemoved == 0) && (_FAIL == rtw_pwr_wakeup(padapter)))
+ return -EFAULT;
+ }
+ else {
@@ -26255,16 +22586,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+
+/*
+ * ATTENTION:
-+ * This function will request pwrctrl LOCK!
++ *This function will request pwrctrl LOCK!
+ */
-+void rtw_ps_deny(PADAPTER padapter, PS_DENY_REASON reason)
++void rtw_ps_deny(struct adapter *padapter, enum PS_DENY_REASON reason)
+{
+ struct pwrctrl_priv *pwrpriv;
-+ s32 ret;
+
-+
-+// DBG_871X("+" FUNC_ADPT_FMT ": Request PS deny for %d (0x%08X)\n",
-+// FUNC_ADPT_ARG(padapter), reason, BIT(reason));
++/* DBG_871X("+" FUNC_ADPT_FMT ": Request PS deny for %d (0x%08X)\n", */
++/* FUNC_ADPT_ARG(padapter), reason, BIT(reason)); */
+
+ pwrpriv = adapter_to_pwrctl(padapter);
+
@@ -26277,21 +22606,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ pwrpriv->ps_deny |= BIT(reason);
+ up(&pwrpriv->lock);
+
-+// DBG_871X("-" FUNC_ADPT_FMT ": Now PS deny for 0x%08X\n",
-+// FUNC_ADPT_ARG(padapter), pwrpriv->ps_deny);
++/* DBG_871X("-" FUNC_ADPT_FMT ": Now PS deny for 0x%08X\n", */
++/* FUNC_ADPT_ARG(padapter), pwrpriv->ps_deny); */
+}
+
+/*
+ * ATTENTION:
-+ * This function will request pwrctrl LOCK!
++ *This function will request pwrctrl LOCK!
+ */
-+void rtw_ps_deny_cancel(PADAPTER padapter, PS_DENY_REASON reason)
++void rtw_ps_deny_cancel(struct adapter *padapter, enum PS_DENY_REASON reason)
+{
+ struct pwrctrl_priv *pwrpriv;
+
+
-+// DBG_871X("+" FUNC_ADPT_FMT ": Cancel PS deny for %d(0x%08X)\n",
-+// FUNC_ADPT_ARG(padapter), reason, BIT(reason));
++/* DBG_871X("+" FUNC_ADPT_FMT ": Cancel PS deny for %d(0x%08X)\n", */
++/* FUNC_ADPT_ARG(padapter), reason, BIT(reason)); */
+
+ pwrpriv = adapter_to_pwrctl(padapter);
+
@@ -26304,16 +22633,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+ pwrpriv->ps_deny &= ~BIT(reason);
+ up(&pwrpriv->lock);
+
-+// DBG_871X("-" FUNC_ADPT_FMT ": Now PS deny for 0x%08X\n",
-+// FUNC_ADPT_ARG(padapter), pwrpriv->ps_deny);
++/* DBG_871X("-" FUNC_ADPT_FMT ": Now PS deny for 0x%08X\n", */
++/* FUNC_ADPT_ARG(padapter), pwrpriv->ps_deny); */
+}
+
+/*
+ * ATTENTION:
-+ * Before calling this function pwrctrl lock should be occupied already,
-+ * otherwise it may return incorrect value.
++ *Before calling this function pwrctrl lock should be occupied already,
++ *otherwise it may return incorrect value.
+ */
-+u32 rtw_ps_deny_get(PADAPTER padapter)
++u32 rtw_ps_deny_get(struct adapter *padapter)
+{
+ u32 deny;
+
@@ -26322,15 +22651,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_pwrctrl.c linux/3rdparty/rtl872
+
+ return deny;
+}
-+
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs/core/rtw_recv.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_recv.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_recv.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,3177 @@
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_recv.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_recv.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_recv.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_recv.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,2931 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
-+ *
++ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
@@ -26340,50 +22668,45 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
+#define _RTW_RECV_C_
+
+#include
++#include
+#include
++#include
++
++static u8 SNAP_ETH_TYPE_IPX[2] = {0x81, 0x37};
++static u8 SNAP_ETH_TYPE_APPLETALK_AARP[2] = {0x80, 0xf3};
++
++u8 rtw_rfc1042_header[] =
++{ 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00 };
++/* Bridge-Tunnel header (for EtherTypes ETH_P_AARP and ETH_P_IPX) */
++u8 rtw_bridge_tunnel_header[] =
++{ 0xaa, 0xaa, 0x03, 0x00, 0x00, 0xf8 };
+
+void rtw_signal_stat_timer_hdl(RTW_TIMER_HDL_ARGS);
+
+void _rtw_init_sta_recv_priv(struct sta_recv_priv *psta_recvpriv)
+{
-+
-+
-+_func_enter_;
-+
+ memset((u8 *)psta_recvpriv, 0, sizeof (struct sta_recv_priv));
+
+ spin_lock_init(&psta_recvpriv->lock);
+
-+ //for(i=0; iblk_strms[i]);
++ /* for (i = 0; iblk_strms[i]); */
+
+ _rtw_init_queue(&psta_recvpriv->defrag_q);
-+
-+_func_exit_;
-+
+}
+
-+sint _rtw_init_recv_priv(struct recv_priv *precvpriv, _adapter *padapter)
++sint _rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *padapter)
+{
+ sint i;
-+
+ union recv_frame *precvframe;
++ sint res = _SUCCESS;
+
-+ sint res=_SUCCESS;
-+
-+_func_enter_;
-+
-+ // We don't need to memset padapter->XXX to zero, because adapter is allocated by rtw_zvmalloc().
-+ //memset((unsigned char *)precvpriv, 0, sizeof (struct recv_priv));
++ /* We don't need to memset padapter->XXX to zero, because adapter is allocated by vzalloc(). */
++ /* memset((unsigned char *)precvpriv, 0, sizeof (struct recv_priv)); */
+
+ spin_lock_init(&precvpriv->lock);
+
@@ -26395,28 +22718,26 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+ precvpriv->free_recvframe_cnt = NR_RECVFRAME;
+
-+ rtw_os_recv_resource_init(precvpriv, padapter);
++ precvpriv->pallocated_frame_buf = vzalloc(NR_RECVFRAME * sizeof(union recv_frame) + RXFRAME_ALIGN_SZ);
+
-+ precvpriv->pallocated_frame_buf = rtw_zvmalloc(NR_RECVFRAME * sizeof(union recv_frame) + RXFRAME_ALIGN_SZ);
-+
-+ if(precvpriv->pallocated_frame_buf==NULL){
-+ res= _FAIL;
++ if (precvpriv->pallocated_frame_buf == NULL) {
++ res = _FAIL;
+ goto exit;
+ }
-+ //memset(precvpriv->pallocated_frame_buf, 0, NR_RECVFRAME * sizeof(union recv_frame) + RXFRAME_ALIGN_SZ);
++ /* memset(precvpriv->pallocated_frame_buf, 0, NR_RECVFRAME * sizeof(union recv_frame) + RXFRAME_ALIGN_SZ); */
+
+ precvpriv->precv_frame_buf = (u8 *)N_BYTE_ALIGMENT((SIZE_PTR)(precvpriv->pallocated_frame_buf), RXFRAME_ALIGN_SZ);
-+ //precvpriv->precv_frame_buf = precvpriv->pallocated_frame_buf + RXFRAME_ALIGN_SZ -
-+ // ((SIZE_PTR) (precvpriv->pallocated_frame_buf) &(RXFRAME_ALIGN_SZ-1));
++ /* precvpriv->precv_frame_buf = precvpriv->pallocated_frame_buf + RXFRAME_ALIGN_SZ - */
++ /* ((SIZE_PTR) (precvpriv->pallocated_frame_buf) &(RXFRAME_ALIGN_SZ-1)); */
+
+ precvframe = (union recv_frame*) precvpriv->precv_frame_buf;
+
+
-+ for(i=0; i < NR_RECVFRAME ; i++)
++ for (i = 0; i < NR_RECVFRAME ; i++)
+ {
-+ _rtw_init_listhead(&(precvframe->u.list));
++ INIT_LIST_HEAD(&(precvframe->u.list));
+
-+ rtw_list_insert_tail(&(precvframe->u.list), &(precvpriv->free_recv_queue.queue));
++ list_add_tail(&(precvframe->u.list), &(precvpriv->free_recv_queue.queue));
+
+ res = rtw_os_recv_resource_alloc(padapter, precvframe);
+
@@ -26431,49 +22752,38 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+ rtw_init_timer(&precvpriv->signal_stat_timer, padapter, rtw_signal_stat_timer_hdl);
+
-+ precvpriv->signal_stat_sampling_interval = 2000; //ms
-+ //precvpriv->signal_stat_converging_constant = 5000; //ms
++ precvpriv->signal_stat_sampling_interval = 2000; /* ms */
+
+ rtw_set_signal_stat_timer(precvpriv);
+
+exit:
-+
-+_func_exit_;
-+
+ return res;
-+
+}
+
+void _rtw_free_recv_priv (struct recv_priv *precvpriv)
+{
-+ _adapter *padapter = precvpriv->adapter;
-+
-+_func_enter_;
++ struct adapter *padapter = precvpriv->adapter;
+
+ rtw_free_uc_swdec_pending_queue(padapter);
+
+ rtw_os_recv_resource_free(precvpriv);
+
-+ if(precvpriv->pallocated_frame_buf) {
-+ rtw_vmfree(precvpriv->pallocated_frame_buf, NR_RECVFRAME * sizeof(union recv_frame) + RXFRAME_ALIGN_SZ);
++ if (precvpriv->pallocated_frame_buf) {
++ vfree(precvpriv->pallocated_frame_buf);
+ }
+
+ rtw_hal_free_recv_priv(padapter);
-+
-+_func_exit_;
-+
+}
+
-+union recv_frame *_rtw_alloc_recvframe (_queue *pfree_recv_queue)
++union recv_frame *_rtw_alloc_recvframe (struct __queue *pfree_recv_queue)
+{
+
+ union recv_frame *precvframe;
-+ _list *plist, *phead;
-+ _adapter *padapter;
++ struct list_head *plist, *phead;
++ struct adapter *padapter;
+ struct recv_priv *precvpriv;
-+_func_enter_;
+
-+ if(_rtw_queue_empty(pfree_recv_queue) == true)
++ if (list_empty(&pfree_recv_queue->queue))
+ {
+ precvframe = NULL;
+ }
@@ -26485,118 +22795,91 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+ precvframe = LIST_CONTAINOR(plist, union recv_frame, u);
+
-+ rtw_list_delete(&precvframe->u.hdr.list);
-+ padapter=precvframe->u.hdr.adapter;
-+ if(padapter !=NULL){
-+ precvpriv=&padapter->recvpriv;
-+ if(pfree_recv_queue == &precvpriv->free_recv_queue)
++ list_del_init(&precvframe->u.hdr.list);
++ padapter =precvframe->u.hdr.adapter;
++ if (padapter != NULL) {
++ precvpriv =&padapter->recvpriv;
++ if (pfree_recv_queue == &precvpriv->free_recv_queue)
+ precvpriv->free_recvframe_cnt--;
+ }
+ }
-+
-+_func_exit_;
-+
+ return precvframe;
-+
+}
+
-+union recv_frame *rtw_alloc_recvframe (_queue *pfree_recv_queue)
++union recv_frame *rtw_alloc_recvframe (struct __queue *pfree_recv_queue)
+{
-+ _irqL irqL;
+ union recv_frame *precvframe;
-+
-+ _enter_critical_bh(&pfree_recv_queue->lock, &irqL);
++
++ spin_lock_bh(&pfree_recv_queue->lock);
+
+ precvframe = _rtw_alloc_recvframe(pfree_recv_queue);
+
-+ _exit_critical_bh(&pfree_recv_queue->lock, &irqL);
++ spin_unlock_bh(&pfree_recv_queue->lock);
+
+ return precvframe;
+}
+
-+void rtw_init_recvframe(union recv_frame *precvframe, struct recv_priv *precvpriv)
++int rtw_free_recvframe(union recv_frame *precvframe, struct __queue *pfree_recv_queue)
+{
-+ /* Perry: This can be removed */
-+ _rtw_init_listhead(&precvframe->u.hdr.list);
-+
-+ precvframe->u.hdr.len=0;
-+}
-+
-+int rtw_free_recvframe(union recv_frame *precvframe, _queue *pfree_recv_queue)
-+{
-+ _irqL irqL;
-+ _adapter *padapter=precvframe->u.hdr.adapter;
++ struct adapter *padapter =precvframe->u.hdr.adapter;
+ struct recv_priv *precvpriv = &padapter->recvpriv;
+
-+_func_enter_;
-+
+ rtw_os_free_recvframe(precvframe);
+
+
-+ _enter_critical_bh(&pfree_recv_queue->lock, &irqL);
++ spin_lock_bh(&pfree_recv_queue->lock);
+
-+ rtw_list_delete(&(precvframe->u.hdr.list));
++ list_del_init(&(precvframe->u.hdr.list));
+
+ precvframe->u.hdr.len = 0;
+
-+ rtw_list_insert_tail(&(precvframe->u.hdr.list), get_list_head(pfree_recv_queue));
++ list_add_tail(&(precvframe->u.hdr.list), get_list_head(pfree_recv_queue));
+
-+ if(padapter !=NULL){
-+ if(pfree_recv_queue == &precvpriv->free_recv_queue)
++ if (padapter != NULL) {
++ if (pfree_recv_queue == &precvpriv->free_recv_queue)
+ precvpriv->free_recvframe_cnt++;
+ }
-+
-+ _exit_critical_bh(&pfree_recv_queue->lock, &irqL);
-+
-+_func_exit_;
-+
++ spin_unlock_bh(&pfree_recv_queue->lock);
+ return _SUCCESS;
-+
+}
+
+
+
+
-+sint _rtw_enqueue_recvframe(union recv_frame *precvframe, _queue *queue)
++sint _rtw_enqueue_recvframe(union recv_frame *precvframe, struct __queue *queue)
+{
+
-+ _adapter *padapter=precvframe->u.hdr.adapter;
++ struct adapter *padapter =precvframe->u.hdr.adapter;
+ struct recv_priv *precvpriv = &padapter->recvpriv;
+
-+_func_enter_;
-+
-+ //_rtw_init_listhead(&(precvframe->u.hdr.list));
-+ rtw_list_delete(&(precvframe->u.hdr.list));
++ /* INIT_LIST_HEAD(&(precvframe->u.hdr.list)); */
++ list_del_init(&(precvframe->u.hdr.list));
+
+
-+ rtw_list_insert_tail(&(precvframe->u.hdr.list), get_list_head(queue));
++ list_add_tail(&(precvframe->u.hdr.list), get_list_head(queue));
+
+ if (padapter != NULL) {
+ if (queue == &precvpriv->free_recv_queue)
+ precvpriv->free_recvframe_cnt++;
+ }
-+
-+_func_exit_;
-+
+ return _SUCCESS;
+}
+
-+sint rtw_enqueue_recvframe(union recv_frame *precvframe, _queue *queue)
++sint rtw_enqueue_recvframe(union recv_frame *precvframe, struct __queue *queue)
+{
+ sint ret;
-+ _irqL irqL;
-+
-+ //_spinlock(&pfree_recv_queue->lock);
-+ _enter_critical_bh(&queue->lock, &irqL);
++
++ /* _spinlock(&pfree_recv_queue->lock); */
++ spin_lock_bh(&queue->lock);
+ ret = _rtw_enqueue_recvframe(precvframe, queue);
-+ //spin_unlock(&pfree_recv_queue->lock);
-+ _exit_critical_bh(&queue->lock, &irqL);
++ /* spin_unlock(&pfree_recv_queue->lock); */
++ spin_unlock_bh(&queue->lock);
+
+ return ret;
+}
+
+/*
-+sint rtw_enqueue_recvframe(union recv_frame *precvframe, _queue *queue)
++sint rtw_enqueue_recvframe(union recv_frame *precvframe, struct __queue *queue)
+{
+ return rtw_free_recvframe(precvframe, queue);
+}
@@ -26613,39 +22896,33 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+*/
+
-+void rtw_free_recvframe_queue(_queue *pframequeue, _queue *pfree_recv_queue)
++void rtw_free_recvframe_queue(struct __queue *pframequeue, struct __queue *pfree_recv_queue)
+{
-+ union recv_frame *precvframe;
-+ _list *plist, *phead;
++ union recv_frame *precvframe;
++ struct list_head *plist, *phead;
+
-+_func_enter_;
+ spin_lock(&pframequeue->lock);
+
+ phead = get_list_head(pframequeue);
+ plist = get_next(phead);
+
-+ while(rtw_end_of_queue_search(phead, plist) == false)
++ while (phead != plist)
+ {
+ precvframe = LIST_CONTAINOR(plist, union recv_frame, u);
+
+ plist = get_next(plist);
+
-+ //rtw_list_delete(&precvframe->u.hdr.list); // will do this in rtw_free_recvframe()
-+
+ rtw_free_recvframe(precvframe, pfree_recv_queue);
+ }
+
+ spin_unlock(&pframequeue->lock);
-+
-+_func_exit_;
-+
+}
+
-+u32 rtw_free_uc_swdec_pending_queue(_adapter *adapter)
++u32 rtw_free_uc_swdec_pending_queue(struct adapter *adapter)
+{
+ u32 cnt = 0;
+ union recv_frame *pending_frame;
-+ while((pending_frame=rtw_alloc_recvframe(&adapter->recvpriv.uc_swdec_pending_queue))) {
++ while ((pending_frame =rtw_alloc_recvframe(&adapter->recvpriv.uc_swdec_pending_queue))) {
+ rtw_free_recvframe(pending_frame, &adapter->recvpriv.free_recv_queue);
+ cnt++;
+ }
@@ -26657,42 +22934,38 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+}
+
+
-+sint rtw_enqueue_recvbuf_to_head(struct recv_buf *precvbuf, _queue *queue)
++sint rtw_enqueue_recvbuf_to_head(struct recv_buf *precvbuf, struct __queue *queue)
+{
-+ _irqL irqL;
++ spin_lock_bh(&queue->lock);
+
-+ _enter_critical_bh(&queue->lock, &irqL);
++ list_del_init(&precvbuf->list);
++ list_add(&precvbuf->list, get_list_head(queue));
+
-+ rtw_list_delete(&precvbuf->list);
-+ rtw_list_insert_head(&precvbuf->list, get_list_head(queue));
-+
-+ _exit_critical_bh(&queue->lock, &irqL);
++ spin_unlock_bh(&queue->lock);
+
+ return _SUCCESS;
+}
+
-+sint rtw_enqueue_recvbuf(struct recv_buf *precvbuf, _queue *queue)
++sint rtw_enqueue_recvbuf(struct recv_buf *precvbuf, struct __queue *queue)
+{
-+ _irqL irqL;
-+ _enter_critical_bh(&queue->lock, &irqL);
++ spin_lock_bh(&queue->lock);
+
-+ rtw_list_delete(&precvbuf->list);
++ list_del_init(&precvbuf->list);
+
-+ rtw_list_insert_tail(&precvbuf->list, get_list_head(queue));
-+ _exit_critical_bh(&queue->lock, &irqL);
++ list_add_tail(&precvbuf->list, get_list_head(queue));
++ spin_unlock_bh(&queue->lock);
+ return _SUCCESS;
-+
++
+}
+
-+struct recv_buf *rtw_dequeue_recvbuf (_queue *queue)
++struct recv_buf *rtw_dequeue_recvbuf (struct __queue *queue)
+{
-+ _irqL irqL;
+ struct recv_buf *precvbuf;
-+ _list *plist, *phead;
++ struct list_head *plist, *phead;
+
-+ _enter_critical_bh(&queue->lock, &irqL);
++ spin_lock_bh(&queue->lock);
+
-+ if(_rtw_queue_empty(queue) == true)
++ if (list_empty(&queue->queue))
+ {
+ precvbuf = NULL;
+ }
@@ -26704,148 +22977,146 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+ precvbuf = LIST_CONTAINOR(plist, struct recv_buf, list);
+
-+ rtw_list_delete(&precvbuf->list);
-+
++ list_del_init(&precvbuf->list);
++
+ }
+
-+ _exit_critical_bh(&queue->lock, &irqL);
++ spin_unlock_bh(&queue->lock);
+
+ return precvbuf;
+
+}
+
-+sint recvframe_chkmic(_adapter *adapter, union recv_frame *precvframe);
-+sint recvframe_chkmic(_adapter *adapter, union recv_frame *precvframe){
++sint recvframe_chkmic(struct adapter *adapter, union recv_frame *precvframe);
++sint recvframe_chkmic(struct adapter *adapter, union recv_frame *precvframe) {
+
-+ sint i,res=_SUCCESS;
-+ u32 datalen;
-+ u8 miccode[8];
-+ u8 bmic_err=false,brpt_micerror = true;
-+ u8 *pframe, *payload,*pframemic;
-+ u8 *mickey;
-+ //u8 *iv,rxdata_key_idx=0;
-+ struct sta_info *stainfo;
-+ struct rx_pkt_attrib *prxattrib=&precvframe->u.hdr.attrib;
-+ struct security_priv *psecuritypriv=&adapter->securitypriv;
++ sint i, res = _SUCCESS;
++ u32 datalen;
++ u8 miccode[8];
++ u8 bmic_err =false, brpt_micerror = true;
++ u8 *pframe, *payload,*pframemic;
++ u8 *mickey;
++ /* u8 *iv, rxdata_key_idx = 0; */
++ struct sta_info *stainfo;
++ struct rx_pkt_attrib *prxattrib =&precvframe->u.hdr.attrib;
++ struct security_priv *psecuritypriv =&adapter->securitypriv;
+
-+ struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+_func_enter_;
++ struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
-+ stainfo=rtw_get_stainfo(&adapter->stapriv ,&prxattrib->ta[0]);
++ stainfo =rtw_get_stainfo(&adapter->stapriv ,&prxattrib->ta[0]);
+
-+ if(prxattrib->encrypt ==_TKIP_)
++ if (prxattrib->encrypt == _TKIP_)
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("\n recvframe_chkmic:prxattrib->encrypt ==_TKIP_\n"));
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("\n recvframe_chkmic:da=0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x\n",
-+ prxattrib->ra[0],prxattrib->ra[1],prxattrib->ra[2],prxattrib->ra[3],prxattrib->ra[4],prxattrib->ra[5]));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n recvframe_chkmic:prxattrib->encrypt == _TKIP_\n"));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n recvframe_chkmic:da = 0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x\n",
++ prxattrib->ra[0], prxattrib->ra[1], prxattrib->ra[2], prxattrib->ra[3], prxattrib->ra[4], prxattrib->ra[5]));
+
-+ //calculate mic code
-+ if(stainfo!= NULL)
++ /* calculate mic code */
++ if (stainfo!= NULL)
+ {
-+ if(IS_MCAST(prxattrib->ra))
++ if (IS_MCAST(prxattrib->ra))
+ {
-+ //mickey=&psecuritypriv->dot118021XGrprxmickey.skey[0];
-+ //iv = precvframe->u.hdr.rx_data+prxattrib->hdrlen;
-+ //rxdata_key_idx =( ((iv[3])>>6)&0x3) ;
-+ mickey=&psecuritypriv->dot118021XGrprxmickey[prxattrib->key_index].skey[0];
-+
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("\n recvframe_chkmic: bcmc key \n"));
-+ //DBG_871X("\n recvframe_chkmic: bcmc key psecuritypriv->dot118021XGrpKeyid(%d),pmlmeinfo->key_index(%d) ,recv key_id(%d)\n",
-+ // psecuritypriv->dot118021XGrpKeyid,pmlmeinfo->key_index,rxdata_key_idx);
-+
-+ if(psecuritypriv->binstallGrpkey==false)
++ /* mickey =&psecuritypriv->dot118021XGrprxmickey.skey[0]; */
++ /* iv = precvframe->u.hdr.rx_data+prxattrib->hdrlen; */
++ /* rxdata_key_idx =(((iv[3])>>6)&0x3) ; */
++ mickey =&psecuritypriv->dot118021XGrprxmickey[prxattrib->key_index].skey[0];
++
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n recvframe_chkmic: bcmc key\n"));
++ /* DBG_871X("\n recvframe_chkmic: bcmc key psecuritypriv->dot118021XGrpKeyid(%d), pmlmeinfo->key_index(%d) , recv key_id(%d)\n", */
++ /* psecuritypriv->dot118021XGrpKeyid, pmlmeinfo->key_index, rxdata_key_idx); */
++
++ if (psecuritypriv->binstallGrpkey ==false)
+ {
-+ res=_FAIL;
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("\n recvframe_chkmic:didn't install group key!!!!!!!!!!\n"));
++ res = _FAIL;
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("\n recvframe_chkmic:didn't install group key!!!!!!!!!!\n"));
+ DBG_871X("\n recvframe_chkmic:didn't install group key!!!!!!!!!!\n");
+ goto exit;
+ }
+ }
-+ else{
-+ mickey=&stainfo->dot11tkiprxmickey.skey[0];
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("\n recvframe_chkmic: unicast key \n"));
++ else {
++ mickey =&stainfo->dot11tkiprxmickey.skey[0];
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("\n recvframe_chkmic: unicast key\n"));
+ }
+
-+ datalen=precvframe->u.hdr.len-prxattrib->hdrlen-prxattrib->iv_len-prxattrib->icv_len-8;//icv_len included the mic code
-+ pframe=precvframe->u.hdr.rx_data;
-+ payload=pframe+prxattrib->hdrlen+prxattrib->iv_len;
++ datalen =precvframe->u.hdr.len-prxattrib->hdrlen-prxattrib->iv_len-prxattrib->icv_len-8;/* icv_len included the mic code */
++ pframe =precvframe->u.hdr.rx_data;
++ payload =pframe+prxattrib->hdrlen+prxattrib->iv_len;
+
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("\n prxattrib->iv_len=%d prxattrib->icv_len=%d\n",prxattrib->iv_len,prxattrib->icv_len));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n prxattrib->iv_len =%d prxattrib->icv_len =%d\n", prxattrib->iv_len, prxattrib->icv_len));
+
-+ //rtw_seccalctkipmic(&stainfo->dot11tkiprxmickey.skey[0],pframe,payload, datalen ,&miccode[0],(unsigned char)prxattrib->priority); //care the length of the data
+
-+ rtw_seccalctkipmic(mickey,pframe,payload, datalen ,&miccode[0],(unsigned char)prxattrib->priority); //care the length of the data
++ rtw_seccalctkipmic(mickey, pframe, payload, datalen ,&miccode[0], (unsigned char)prxattrib->priority); /* care the length of the data */
+
-+ pframemic=payload+datalen;
++ pframemic =payload+datalen;
+
-+ bmic_err=false;
++ bmic_err =false;
+
-+ for(i=0;i<8;i++){
-+ if(miccode[i] != *(pframemic+i)){
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("recvframe_chkmic:miccode[%d](%02x) != *(pframemic+%d)(%02x) ",i,miccode[i],i,*(pframemic+i)));
-+ bmic_err=true;
++ for (i = 0;i<8;i++) {
++ if (miccode[i] != *(pframemic+i)) {
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("recvframe_chkmic:miccode[%d](%02x) != *(pframemic+%d)(%02x) ", i, miccode[i], i,*(pframemic+i)));
++ bmic_err =true;
+ }
+ }
+
+
-+ if(bmic_err==true){
++ if (bmic_err ==true) {
+
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("\n *(pframemic-8)-*(pframemic-1)=0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x\n",
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("\n *(pframemic-8)-*(pframemic-1) = 0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x\n",
+ *(pframemic-8),*(pframemic-7),*(pframemic-6),*(pframemic-5),*(pframemic-4),*(pframemic-3),*(pframemic-2),*(pframemic-1)));
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("\n *(pframemic-16)-*(pframemic-9)=0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x\n",
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("\n *(pframemic-16)-*(pframemic-9) = 0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x\n",
+ *(pframemic-16),*(pframemic-15),*(pframemic-14),*(pframemic-13),*(pframemic-12),*(pframemic-11),*(pframemic-10),*(pframemic-9)));
+
+ {
+ uint i;
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("\n ======demp packet (len=%d)======\n",precvframe->u.hdr.len));
-+ for(i=0;iu.hdr.len;i=i+8){
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x",
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("\n ======demp packet (len =%d) ======\n", precvframe->u.hdr.len));
++ for (i = 0;iu.hdr.len;i =i+8) {
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x",
+ *(precvframe->u.hdr.rx_data+i),*(precvframe->u.hdr.rx_data+i+1),
+ *(precvframe->u.hdr.rx_data+i+2),*(precvframe->u.hdr.rx_data+i+3),
+ *(precvframe->u.hdr.rx_data+i+4),*(precvframe->u.hdr.rx_data+i+5),
+ *(precvframe->u.hdr.rx_data+i+6),*(precvframe->u.hdr.rx_data+i+7)));
+ }
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("\n ======demp packet end [len=%d]======\n",precvframe->u.hdr.len));
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("\n hrdlen=%d, \n",prxattrib->hdrlen));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("\n ======demp packet end [len =%d]======\n", precvframe->u.hdr.len));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("\n hrdlen =%d,\n", prxattrib->hdrlen));
+ }
+
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("ra=0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x psecuritypriv->binstallGrpkey=%d ",
-+ prxattrib->ra[0],prxattrib->ra[1],prxattrib->ra[2],
-+ prxattrib->ra[3],prxattrib->ra[4],prxattrib->ra[5],psecuritypriv->binstallGrpkey));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("ra = 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x psecuritypriv->binstallGrpkey =%d ",
++ prxattrib->ra[0], prxattrib->ra[1], prxattrib->ra[2],
++ prxattrib->ra[3], prxattrib->ra[4], prxattrib->ra[5], psecuritypriv->binstallGrpkey));
+
-+ // double check key_index for some timing issue ,
-+ // cannot compare with psecuritypriv->dot118021XGrpKeyid also cause timing issue
-+ if((IS_MCAST(prxattrib->ra)==true) && (prxattrib->key_index != pmlmeinfo->key_index ))
++ /* double check key_index for some timing issue , */
++ /* cannot compare with psecuritypriv->dot118021XGrpKeyid also cause timing issue */
++ if ((IS_MCAST(prxattrib->ra) ==true) && (prxattrib->key_index != pmlmeinfo->key_index))
+ brpt_micerror = false;
-+
-+ if((prxattrib->bdecrypted ==true)&& (brpt_micerror == true))
++
++ if ((prxattrib->bdecrypted ==true) && (brpt_micerror == true))
+ {
-+ rtw_handle_tkip_mic_err(adapter,(u8)IS_MCAST(prxattrib->ra));
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,(" mic error :prxattrib->bdecrypted=%d ",prxattrib->bdecrypted));
-+ DBG_871X(" mic error :prxattrib->bdecrypted=%d\n",prxattrib->bdecrypted);
++ rtw_handle_tkip_mic_err(adapter, (u8)IS_MCAST(prxattrib->ra));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, (" mic error :prxattrib->bdecrypted =%d ", prxattrib->bdecrypted));
++ DBG_871X(" mic error :prxattrib->bdecrypted =%d\n", prxattrib->bdecrypted);
+ }
+ else
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,(" mic error :prxattrib->bdecrypted=%d ",prxattrib->bdecrypted));
-+ DBG_871X(" mic error :prxattrib->bdecrypted=%d\n",prxattrib->bdecrypted);
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, (" mic error :prxattrib->bdecrypted =%d ", prxattrib->bdecrypted));
++ DBG_871X(" mic error :prxattrib->bdecrypted =%d\n", prxattrib->bdecrypted);
+ }
+
-+ res=_FAIL;
++ res = _FAIL;
+
+ }
-+ else{
-+ //mic checked ok
-+ if((psecuritypriv->bcheck_grpkey ==false)&&(IS_MCAST(prxattrib->ra)==true)){
++ else {
++ /* mic checked ok */
++ if ((psecuritypriv->bcheck_grpkey ==false) && (IS_MCAST(prxattrib->ra) ==true)) {
+ psecuritypriv->bcheck_grpkey =true;
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("psecuritypriv->bcheck_grpkey =true"));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("psecuritypriv->bcheck_grpkey =true"));
+ }
+ }
+
+ }
+ else
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("recvframe_chkmic: rtw_get_stainfo==NULL!!!\n"));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("recvframe_chkmic: rtw_get_stainfo == NULL!!!\n"));
+ }
+
+ recvframe_pull_tail(precvframe, 8);
@@ -26853,66 +23124,61 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ }
+
+exit:
-+
-+_func_exit_;
-+
+ return res;
+
+}
+
-+//decrypt and set the ivlen,icvlen of the recv_frame
-+union recv_frame * decryptor(_adapter *padapter,union recv_frame *precv_frame);
-+union recv_frame * decryptor(_adapter *padapter,union recv_frame *precv_frame)
++/* decrypt and set the ivlen, icvlen of the recv_frame */
++union recv_frame * decryptor(struct adapter *padapter, union recv_frame *precv_frame);
++union recv_frame * decryptor(struct adapter *padapter, union recv_frame *precv_frame)
+{
+
+ struct rx_pkt_attrib *prxattrib = &precv_frame->u.hdr.attrib;
-+ struct security_priv *psecuritypriv=&padapter->securitypriv;
-+ union recv_frame *return_packet=precv_frame;
-+ u32 res=_SUCCESS;
-+
-+_func_enter_;
++ struct security_priv *psecuritypriv =&padapter->securitypriv;
++ union recv_frame *return_packet =precv_frame;
++ u32 res = _SUCCESS;
+
+ DBG_COUNTER(padapter->rx_logs.core_rx_post_decrypt);
+
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("prxstat->decrypted=%x prxattrib->encrypt = 0x%03x\n",prxattrib->bdecrypted,prxattrib->encrypt));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("prxstat->decrypted =%x prxattrib->encrypt = 0x%03x\n", prxattrib->bdecrypted, prxattrib->encrypt));
+
-+ if(prxattrib->encrypt>0)
++ if (prxattrib->encrypt>0)
+ {
+ u8 *iv = precv_frame->u.hdr.rx_data+prxattrib->hdrlen;
-+ prxattrib->key_index = ( ((iv[3])>>6)&0x3) ;
++ prxattrib->key_index = (((iv[3])>>6)&0x3) ;
+
-+ if(prxattrib->key_index > WEP_KEYS)
++ if (prxattrib->key_index > WEP_KEYS)
+ {
-+ DBG_871X("prxattrib->key_index(%d) > WEP_KEYS \n", prxattrib->key_index);
++ DBG_871X("prxattrib->key_index(%d) > WEP_KEYS\n", prxattrib->key_index);
+
-+ switch(prxattrib->encrypt){
++ switch (prxattrib->encrypt) {
+ case _WEP40_:
+ case _WEP104_:
+ prxattrib->key_index = psecuritypriv->dot11PrivacyKeyIndex;
+ break;
-+ case _TKIP_:
-+ case _AES_:
++ case _TKIP_:
++ case _AES_:
+ default:
+ prxattrib->key_index = psecuritypriv->dot118021XGrpKeyid;
+ break;
-+ }
-+ }
++ }
++ }
+ }
+
-+ if((prxattrib->encrypt>0) && ((prxattrib->bdecrypted==0) ||(psecuritypriv->sw_decrypt==true)))
++ if ((prxattrib->encrypt>0) && ((prxattrib->bdecrypted == 0) ||(psecuritypriv->sw_decrypt ==true)))
+ {
-+ psecuritypriv->hw_decrypted=false;
++ psecuritypriv->hw_decrypted =false;
+
+ #ifdef DBG_RX_DECRYPTOR
+ DBG_871X("[%s] %d:prxstat->bdecrypted:%d, prxattrib->encrypt:%d, Setting psecuritypriv->hw_decrypted = %d\n",
-+ __FUNCTION__,
++ __func__,
+ __LINE__,
+ prxattrib->bdecrypted,
+ prxattrib->encrypt,
+ psecuritypriv->hw_decrypted);
+ #endif
+
-+ switch(prxattrib->encrypt){
++ switch (prxattrib->encrypt) {
+ case _WEP40_:
+ case _WEP104_:
+ DBG_COUNTER(padapter->rx_logs.core_rx_post_decrypt_wep);
@@ -26924,29 +23190,23 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ break;
+ case _AES_:
+ DBG_COUNTER(padapter->rx_logs.core_rx_post_decrypt_aes);
-+ res = rtw_aes_decrypt(padapter, (u8 * )precv_frame);
++ res = rtw_aes_decrypt(padapter, (u8 *)precv_frame);
+ break;
-+#ifdef CONFIG_WAPI_SUPPORT
-+ case _SMS4_:
-+ DBG_COUNTER(padapter->rx_logs.core_rx_post_decrypt_wapi);
-+ rtw_sms4_decrypt(padapter, (u8 * )precv_frame);
-+ break;
-+#endif
+ default:
+ break;
+ }
+ }
-+ else if(prxattrib->bdecrypted==1
++ else if (prxattrib->bdecrypted == 1
+ && prxattrib->encrypt >0
-+ && (psecuritypriv->busetkipkey==1 || prxattrib->encrypt !=_TKIP_ )
++ && (psecuritypriv->busetkipkey == 1 || prxattrib->encrypt != _TKIP_)
+ )
+ {
+ DBG_COUNTER(padapter->rx_logs.core_rx_post_decrypt_hw);
+
-+ psecuritypriv->hw_decrypted=true;
++ psecuritypriv->hw_decrypted =true;
+ #ifdef DBG_RX_DECRYPTOR
+ DBG_871X("[%s] %d:prxstat->bdecrypted:%d, prxattrib->encrypt:%d, Setting psecuritypriv->hw_decrypted = %d\n",
-+ __FUNCTION__,
++ __func__,
+ __LINE__,
+ prxattrib->bdecrypted,
+ prxattrib->encrypt,
@@ -26958,33 +23218,30 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ DBG_COUNTER(padapter->rx_logs.core_rx_post_decrypt_unknown);
+ #ifdef DBG_RX_DECRYPTOR
+ DBG_871X("[%s] %d:prxstat->bdecrypted:%d, prxattrib->encrypt:%d, Setting psecuritypriv->hw_decrypted = %d\n",
-+ __FUNCTION__,
++ __func__,
+ __LINE__,
+ prxattrib->bdecrypted,
+ prxattrib->encrypt,
+ psecuritypriv->hw_decrypted);
+ #endif
+ }
-+
-+ if(res == _FAIL)
++
++ if (res == _FAIL)
+ {
-+ rtw_free_recvframe(return_packet,&padapter->recvpriv.free_recv_queue);
++ rtw_free_recvframe(return_packet,&padapter->recvpriv.free_recv_queue);
+ return_packet = NULL;
+ }
+ else
+ {
+ prxattrib->bdecrypted = true;
+ }
-+ //recvframe_chkmic(adapter, precv_frame); //move to recvframme_defrag function
-+
-+_func_exit_;
+
+ return return_packet;
-+
+}
-+//###set the security information in the recv_frame
-+union recv_frame * portctrl(_adapter *adapter,union recv_frame * precv_frame);
-+union recv_frame * portctrl(_adapter *adapter,union recv_frame * precv_frame)
++
++/* set the security information in the recv_frame */
++union recv_frame * portctrl(struct adapter *adapter, union recv_frame * precv_frame);
++union recv_frame * portctrl(struct adapter *adapter, union recv_frame * precv_frame)
+{
+ u8 *psta_addr = NULL;
+ u8 *ptr;
@@ -26993,12 +23250,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ struct sta_info *psta;
+ struct sta_priv *pstapriv ;
+ union recv_frame *prtnframe;
-+ u16 ether_type=0;
-+ u16 eapol_type = 0x888e;//for Funia BD's WPA issue
++ u16 ether_type = 0;
++ u16 eapol_type = 0x888e;/* for Funia BD's WPA issue */
+ struct rx_pkt_attrib *pattrib;
+
-+_func_enter_;
-+
+ pstapriv = &adapter->stapriv;
+
+ auth_alg = adapter->securitypriv.dot11AuthAlgrthm;
@@ -27012,66 +23267,64 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+ psta = rtw_get_stainfo(pstapriv, psta_addr);
+
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("########portctrl:adapter->securitypriv.dot11AuthAlgrthm=%d\n",adapter->securitypriv.dot11AuthAlgrthm));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("########portctrl:adapter->securitypriv.dot11AuthAlgrthm =%d\n", adapter->securitypriv.dot11AuthAlgrthm));
+
-+ if(auth_alg==2)
++ if (auth_alg ==2)
+ {
-+ if ((psta!=NULL) && (psta->ieee8021x_blocked))
++ if ((psta!= NULL) && (psta->ieee8021x_blocked))
+ {
-+ //blocked
-+ //only accept EAPOL frame
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("########portctrl:psta->ieee8021x_blocked==1\n"));
++ __be16 be_tmp;
+
-+ prtnframe=precv_frame;
++ /* blocked */
++ /* only accept EAPOL frame */
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("########portctrl:psta->ieee8021x_blocked == 1\n"));
+
-+ //get ether_type
-+ ptr=ptr+pfhdr->attrib.hdrlen+pfhdr->attrib.iv_len+LLC_HEADER_SIZE;
-+ memcpy(ðer_type,ptr, 2);
-+ ether_type= ntohs((unsigned short )ether_type);
++ prtnframe =precv_frame;
++
++ /* get ether_type */
++ ptr =ptr+pfhdr->attrib.hdrlen+pfhdr->attrib.iv_len+LLC_HEADER_SIZE;
++ memcpy(&be_tmp, ptr, 2);
++ ether_type = ntohs(be_tmp);
+
+ if (ether_type == eapol_type) {
-+ prtnframe=precv_frame;
++ prtnframe =precv_frame;
+ }
+ else {
-+ //free this frame
++ /* free this frame */
+ rtw_free_recvframe(precv_frame, &adapter->recvpriv.free_recv_queue);
-+ prtnframe=NULL;
++ prtnframe = NULL;
+ }
+ }
+ else
+ {
-+ //allowed
-+ //check decryption status, and decrypt the frame if needed
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("########portctrl:psta->ieee8021x_blocked==0\n"));
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("portctrl:precv_frame->hdr.attrib.privacy=%x\n",precv_frame->u.hdr.attrib.privacy));
++ /* allowed */
++ /* check decryption status, and decrypt the frame if needed */
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("########portctrl:psta->ieee8021x_blocked == 0\n"));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("portctrl:precv_frame->hdr.attrib.privacy =%x\n", precv_frame->u.hdr.attrib.privacy));
+
+ if (pattrib->bdecrypted == 0)
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("portctrl:prxstat->decrypted=%x\n", pattrib->bdecrypted));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("portctrl:prxstat->decrypted =%x\n", pattrib->bdecrypted));
+ }
+
-+ prtnframe=precv_frame;
-+ //check is the EAPOL frame or not (Rekey)
-+ //if(ether_type == eapol_type){
-+ // RT_TRACE(_module_rtl871x_recv_c_,_drv_notice_,("########portctrl:ether_type == 0x888e\n"));
-+ //check Rekey
++ prtnframe =precv_frame;
++ /* check is the EAPOL frame or not (Rekey) */
++ /* if (ether_type == eapol_type) { */
++ /* RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("########portctrl:ether_type == 0x888e\n")); */
++ /* check Rekey */
+
-+ // prtnframe=precv_frame;
-+ //}
-+ //else{
-+ // RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("########portctrl:ether_type=0x%04x\n", ether_type));
-+ //}
++ /* prtnframe =precv_frame; */
++ /* */
++ /* else { */
++ /* RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("########portctrl:ether_type = 0x%04x\n", ether_type)); */
++ /* */
+ }
+ }
+ else
+ {
-+ prtnframe=precv_frame;
++ prtnframe =precv_frame;
+ }
-+
-+_func_exit_;
-+
-+ return prtnframe;
-+
++ return prtnframe;
+}
+
+sint recv_decache(union recv_frame *precv_frame, u8 bretry, struct stainfo_rxcache *prxcache);
@@ -27079,23 +23332,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+{
+ sint tid = precv_frame->u.hdr.attrib.priority;
+
-+ u16 seq_ctrl = ( (precv_frame->u.hdr.attrib.seq_num&0xffff) << 4) |
++ u16 seq_ctrl = ((precv_frame->u.hdr.attrib.seq_num&0xffff) << 4) |
+ (precv_frame->u.hdr.attrib.frag_num & 0xf);
+
-+_func_enter_;
-+
-+ if(tid>15)
++ if (tid>15)
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("recv_decache, (tid>15)! seq_ctrl=0x%x, tid=0x%x\n", seq_ctrl, tid));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("recv_decache, (tid>15)! seq_ctrl = 0x%x, tid = 0x%x\n", seq_ctrl, tid));
+
+ return _FAIL;
+ }
+
-+ if(1)//if(bretry)
++ if (1)/* if (bretry) */
+ {
-+ if(seq_ctrl == prxcache->tid_rxseq[tid])
++ if (seq_ctrl == prxcache->tid_rxseq[tid])
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("recv_decache, seq_ctrl=0x%x, tid=0x%x, tid_rxseq=0x%x\n", seq_ctrl, tid, prxcache->tid_rxseq[tid]));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("recv_decache, seq_ctrl = 0x%x, tid = 0x%x, tid_rxseq = 0x%x\n", seq_ctrl, tid, prxcache->tid_rxseq[tid]));
+
+ return _FAIL;
+ }
@@ -27103,81 +23354,75 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+ prxcache->tid_rxseq[tid] = seq_ctrl;
+
-+_func_exit_;
-+
+ return _SUCCESS;
+
+}
+
-+void process_pwrbit_data(_adapter *padapter, union recv_frame *precv_frame);
-+void process_pwrbit_data(_adapter *padapter, union recv_frame *precv_frame)
++void process_pwrbit_data(struct adapter *padapter, union recv_frame *precv_frame);
++void process_pwrbit_data(struct adapter *padapter, union recv_frame *precv_frame)
+{
-+#ifdef CONFIG_AP_MODE
+ unsigned char pwrbit;
+ u8 *ptr = precv_frame->u.hdr.rx_data;
+ struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib;
+ struct sta_priv *pstapriv = &padapter->stapriv;
-+ struct sta_info *psta=NULL;
++ struct sta_info *psta = NULL;
+
+ psta = rtw_get_stainfo(pstapriv, pattrib->src);
+
+ pwrbit = GetPwrMgt(ptr);
+
-+ if(psta)
++ if (psta)
+ {
-+ if(pwrbit)
++ if (pwrbit)
+ {
-+ if(!(psta->state & WIFI_SLEEP_STATE))
++ if (!(psta->state & WIFI_SLEEP_STATE))
+ {
-+ //psta->state |= WIFI_SLEEP_STATE;
-+ //pstapriv->sta_dz_bitmap |= BIT(psta->aid);
++ /* psta->state |= WIFI_SLEEP_STATE; */
++ /* pstapriv->sta_dz_bitmap |= BIT(psta->aid); */
+
+ stop_sta_xmit(padapter, psta);
+
-+ //DBG_871X("to sleep, sta_dz_bitmap=%x\n", pstapriv->sta_dz_bitmap);
++ /* DBG_871X("to sleep, sta_dz_bitmap =%x\n", pstapriv->sta_dz_bitmap); */
+ }
+ }
+ else
+ {
-+ if(psta->state & WIFI_SLEEP_STATE)
++ if (psta->state & WIFI_SLEEP_STATE)
+ {
-+ //psta->state ^= WIFI_SLEEP_STATE;
-+ //pstapriv->sta_dz_bitmap &= ~BIT(psta->aid);
++ /* psta->state ^= WIFI_SLEEP_STATE; */
++ /* pstapriv->sta_dz_bitmap &= ~BIT(psta->aid); */
+
+ wakeup_sta_to_xmit(padapter, psta);
+
-+ //DBG_871X("to wakeup, sta_dz_bitmap=%x\n", pstapriv->sta_dz_bitmap);
++ /* DBG_871X("to wakeup, sta_dz_bitmap =%x\n", pstapriv->sta_dz_bitmap); */
+ }
+ }
+
+ }
-+
-+#endif
+}
+
-+void process_wmmps_data(_adapter *padapter, union recv_frame *precv_frame);
-+void process_wmmps_data(_adapter *padapter, union recv_frame *precv_frame)
++void process_wmmps_data(struct adapter *padapter, union recv_frame *precv_frame);
++void process_wmmps_data(struct adapter *padapter, union recv_frame *precv_frame)
+{
-+#ifdef CONFIG_AP_MODE
+ struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib;
+ struct sta_priv *pstapriv = &padapter->stapriv;
-+ struct sta_info *psta=NULL;
++ struct sta_info *psta = NULL;
+
+ psta = rtw_get_stainfo(pstapriv, pattrib->src);
-+
-+ if(!psta) return;
+
-+ if(!psta->qos_option)
++ if (!psta) return;
++
++ if (!psta->qos_option)
+ return;
+
-+ if(!(psta->qos_info&0xf))
++ if (!(psta->qos_info&0xf))
+ return;
-+
-+ if(psta->state&WIFI_SLEEP_STATE)
++
++ if (psta->state&WIFI_SLEEP_STATE)
+ {
-+ u8 wmmps_ac=0;
-+
-+ switch(pattrib->priority)
++ u8 wmmps_ac = 0;
++
++ switch (pattrib->priority)
+ {
+ case 1:
+ case 2:
@@ -27195,54 +23440,49 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ case 3:
+ default:
+ wmmps_ac = psta->uapsd_be&BIT(1);
-+ break;
++ break;
+ }
+
-+ if(wmmps_ac)
++ if (wmmps_ac)
+ {
-+ if(psta->sleepq_ac_len>0)
++ if (psta->sleepq_ac_len>0)
+ {
-+ //process received triggered frame
++ /* process received triggered frame */
+ xmit_delivery_enabled_frames(padapter, psta);
+ }
+ else
+ {
-+ //issue one qos null frame with More data bit = 0 and the EOSP bit set (=1)
++ /* issue one qos null frame with More data bit = 0 and the EOSP bit set (= 1) */
+ issue_qos_nulldata(padapter, psta->hwaddr, (u16)pattrib->priority, 0, 0);
+ }
+ }
-+
+ }
-+
-+
-+#endif
-+
+}
+
-+void count_rx_stats(_adapter *padapter, union recv_frame *prframe, struct sta_info*sta);
-+void count_rx_stats(_adapter *padapter, union recv_frame *prframe, struct sta_info*sta)
++void count_rx_stats(struct adapter *padapter, union recv_frame *prframe, struct sta_info*sta);
++void count_rx_stats(struct adapter *padapter, union recv_frame *prframe, struct sta_info*sta)
+{
+ int sz;
-+ struct sta_info *psta = NULL;
++ struct sta_info *psta = NULL;
+ struct stainfo_stats *pstats = NULL;
+ struct rx_pkt_attrib *pattrib = & prframe->u.hdr.attrib;
-+ struct recv_priv *precvpriv = &padapter->recvpriv;
++ struct recv_priv *precvpriv = &padapter->recvpriv;
+
+ sz = get_recvframe_len(prframe);
+ precvpriv->rx_bytes += sz;
+
+ padapter->mlmepriv.LinkDetectInfo.NumRxOkInPeriod++;
+
-+ if( (!MacAddr_isBcst(pattrib->dst)) && (!IS_MCAST(pattrib->dst))){
++ if ((!MacAddr_isBcst(pattrib->dst)) && (!IS_MCAST(pattrib->dst))) {
+ padapter->mlmepriv.LinkDetectInfo.NumRxUnicastOkInPeriod++;
+ }
+
-+ if(sta)
++ if (sta)
+ psta = sta;
+ else
+ psta = prframe->u.hdr.psta;
+
-+ if(psta)
++ if (psta)
+ {
+ pstats = &psta->sta_stats;
+
@@ -27254,12 +23494,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+}
+
+sint sta2sta_data_frame(
-+ _adapter *adapter,
++ struct adapter *adapter,
+ union recv_frame *precv_frame,
+ struct sta_info**psta
+);
+sint sta2sta_data_frame(
-+ _adapter *adapter,
++ struct adapter *adapter,
+ union recv_frame *precv_frame,
+ struct sta_info**psta
+)
@@ -27267,51 +23507,49 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ u8 *ptr = precv_frame->u.hdr.rx_data;
+ sint ret = _SUCCESS;
+ struct rx_pkt_attrib *pattrib = & precv_frame->u.hdr.attrib;
-+ struct sta_priv *pstapriv = &adapter->stapriv;
-+ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
++ struct sta_priv *pstapriv = &adapter->stapriv;
++ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
+ u8 *mybssid = get_bssid(pmlmepriv);
+ u8 *myhwaddr = myid(&adapter->eeprompriv);
+ u8 * sta_addr = NULL;
+ sint bmcast = IS_MCAST(pattrib->dst);
+
-+_func_enter_;
-+
-+ //DBG_871X("[%s] %d, seqnum:%d\n", __FUNCTION__, __LINE__, pattrib->seq_num);
++ /* DBG_871X("[%s] %d, seqnum:%d\n", __func__, __LINE__, pattrib->seq_num); */
+
+ if ((check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true) ||
+ (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true))
+ {
+
-+ // filter packets that SA is myself or multicast or broadcast
-+ if (!memcmp(myhwaddr, pattrib->src, ETH_ALEN)){
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,(" SA==myself \n"));
-+ ret= _FAIL;
++ /* filter packets that SA is myself or multicast or broadcast */
++ if (!memcmp(myhwaddr, pattrib->src, ETH_ALEN)) {
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, (" SA ==myself\n"));
++ ret = _FAIL;
+ goto exit;
+ }
+
-+ if( (memcmp(myhwaddr, pattrib->dst, ETH_ALEN)) && (!bmcast) ){
-+ ret= _FAIL;
++ if ((memcmp(myhwaddr, pattrib->dst, ETH_ALEN)) && (!bmcast)) {
++ ret = _FAIL;
+ goto exit;
+ }
+
-+ if( !memcmp(pattrib->bssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
++ if (!memcmp(pattrib->bssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
+ !memcmp(mybssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
-+ (memcmp(pattrib->bssid, mybssid, ETH_ALEN)) ) {
-+ ret= _FAIL;
++ (memcmp(pattrib->bssid, mybssid, ETH_ALEN))) {
++ ret = _FAIL;
+ goto exit;
+ }
+
+ sta_addr = pattrib->src;
+
+ }
-+ else if(check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true)
++ else if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true)
+ {
+ {
-+ // For Station mode, sa and bssid should always be BSSID, and DA is my mac-address
-+ if(memcmp(pattrib->bssid, pattrib->src, ETH_ALEN) )
++ /* For Station mode, sa and bssid should always be BSSID, and DA is my mac-address */
++ if (memcmp(pattrib->bssid, pattrib->src, ETH_ALEN))
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("bssid != TA under STATION_MODE; drop pkt\n"));
-+ ret= _FAIL;
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("bssid != TA under STATION_MODE; drop pkt\n"));
++ ret = _FAIL;
+ goto exit;
+ }
+
@@ -27319,21 +23557,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ }
+
+ }
-+ else if(check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
++ else if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
+ {
+ if (bmcast)
+ {
-+ // For AP mode, if DA == MCAST, then BSSID should be also MCAST
-+ if (!IS_MCAST(pattrib->bssid)){
-+ ret= _FAIL;
++ /* For AP mode, if DA == MCAST, then BSSID should be also MCAST */
++ if (!IS_MCAST(pattrib->bssid)) {
++ ret = _FAIL;
+ goto exit;
+ }
+ }
-+ else // not mc-frame
++ else /* not mc-frame */
+ {
-+ // For AP mode, if DA is non-MCAST, then it must be BSSID, and bssid == BSSID
-+ if(memcmp(pattrib->bssid, pattrib->dst, ETH_ALEN)) {
-+ ret= _FAIL;
++ /* For AP mode, if DA is non-MCAST, then it must be BSSID, and bssid == BSSID */
++ if (memcmp(pattrib->bssid, pattrib->dst, ETH_ALEN)) {
++ ret = _FAIL;
+ goto exit;
+ }
+
@@ -27341,7 +23579,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ }
+
+ }
-+ else if(check_fwstate(pmlmepriv, WIFI_MP_STATE) == true)
++ else if (check_fwstate(pmlmepriv, WIFI_MP_STATE) == true)
+ {
+ memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN);
+ memcpy(pattrib->src, GetAddr2Ptr(ptr), ETH_ALEN);
@@ -27358,108 +23596,104 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+
+
-+ if(bmcast)
++ if (bmcast)
+ *psta = rtw_get_bcmc_stainfo(adapter);
+ else
-+ *psta = rtw_get_stainfo(pstapriv, sta_addr); // get ap_info
++ *psta = rtw_get_stainfo(pstapriv, sta_addr); /* get ap_info */
+
+ if (*psta == NULL) {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("can't get psta under sta2sta_data_frame ; drop pkt\n"));
-+ ret= _FAIL;
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("can't get psta under sta2sta_data_frame ; drop pkt\n"));
++ ret = _FAIL;
+ goto exit;
+ }
+
+exit:
-+_func_exit_;
+ return ret;
-+
+}
+
+sint ap2sta_data_frame(
-+ _adapter *adapter,
++ struct adapter *adapter,
+ union recv_frame *precv_frame,
-+ struct sta_info**psta );
++ struct sta_info**psta);
+sint ap2sta_data_frame(
-+ _adapter *adapter,
++ struct adapter *adapter,
+ union recv_frame *precv_frame,
-+ struct sta_info**psta )
++ struct sta_info**psta)
+{
+ u8 *ptr = precv_frame->u.hdr.rx_data;
+ struct rx_pkt_attrib *pattrib = & precv_frame->u.hdr.attrib;
+ sint ret = _SUCCESS;
-+ struct sta_priv *pstapriv = &adapter->stapriv;
-+ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
++ struct sta_priv *pstapriv = &adapter->stapriv;
++ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
+ u8 *mybssid = get_bssid(pmlmepriv);
+ u8 *myhwaddr = myid(&adapter->eeprompriv);
+ sint bmcast = IS_MCAST(pattrib->dst);
+
-+_func_enter_;
-+
+ if ((check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true)
-+ && (check_fwstate(pmlmepriv, _FW_LINKED) == true
++ && (check_fwstate(pmlmepriv, _FW_LINKED) == true
+ || check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == true )
+ )
+ {
+
-+ // filter packets that SA is myself or multicast or broadcast
-+ if (!memcmp(myhwaddr, pattrib->src, ETH_ALEN)){
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,(" SA==myself \n"));
++ /* filter packets that SA is myself or multicast or broadcast */
++ if (!memcmp(myhwaddr, pattrib->src, ETH_ALEN)) {
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, (" SA ==myself\n"));
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME %s SA="MAC_FMT", myhwaddr="MAC_FMT"\n",
-+ __FUNCTION__, MAC_ARG(pattrib->src), MAC_ARG(myhwaddr));
-+ #endif
-+ ret= _FAIL;
-+ goto exit;
-+ }
-+
-+ // da should be for me
-+ if((memcmp(myhwaddr, pattrib->dst, ETH_ALEN))&& (!bmcast))
-+ {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,
-+ (" ap2sta_data_frame: compare DA fail; DA="MAC_FMT"\n", MAC_ARG(pattrib->dst)));
-+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME %s DA="MAC_FMT"\n", __func__, MAC_ARG(pattrib->dst));
++ DBG_871X("DBG_RX_DROP_FRAME %s SA ="MAC_FMT", myhwaddr ="MAC_FMT"\n",
++ __func__, MAC_ARG(pattrib->src), MAC_ARG(myhwaddr));
+ #endif
-+ ret= _FAIL;
++ ret = _FAIL;
++ goto exit;
++ }
++
++ /* da should be for me */
++ if ((memcmp(myhwaddr, pattrib->dst, ETH_ALEN)) && (!bmcast))
++ {
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_,
++ (" ap2sta_data_frame: compare DA fail; DA ="MAC_FMT"\n", MAC_ARG(pattrib->dst)));
++ #ifdef DBG_RX_DROP_FRAME
++ DBG_871X("DBG_RX_DROP_FRAME %s DA ="MAC_FMT"\n", __func__, MAC_ARG(pattrib->dst));
++ #endif
++ ret = _FAIL;
+ goto exit;
+ }
+
+
-+ // check BSSID
-+ if( !memcmp(pattrib->bssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
++ /* check BSSID */
++ if (!memcmp(pattrib->bssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
+ !memcmp(mybssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
-+ (memcmp(pattrib->bssid, mybssid, ETH_ALEN)) )
++ (memcmp(pattrib->bssid, mybssid, ETH_ALEN)))
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,
-+ (" ap2sta_data_frame: compare BSSID fail ; BSSID="MAC_FMT"\n", MAC_ARG(pattrib->bssid)));
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("mybssid="MAC_FMT"\n", MAC_ARG(mybssid)));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_,
++ (" ap2sta_data_frame: compare BSSID fail ; BSSID ="MAC_FMT"\n", MAC_ARG(pattrib->bssid)));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("mybssid ="MAC_FMT"\n", MAC_ARG(mybssid)));
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME %s BSSID="MAC_FMT", mybssid="MAC_FMT"\n",
-+ __FUNCTION__, MAC_ARG(pattrib->bssid), MAC_ARG(mybssid));
-+ DBG_871X( "this adapter = %d, buddy adapter = %d\n", adapter->adapter_type, adapter->pbuddy_adapter->adapter_type );
++ DBG_871X("DBG_RX_DROP_FRAME %s BSSID ="MAC_FMT", mybssid ="MAC_FMT"\n",
++ __func__, MAC_ARG(pattrib->bssid), MAC_ARG(mybssid));
++ DBG_871X("this adapter = %d, buddy adapter = %d\n", adapter->adapter_type, adapter->pbuddystruct adapter->adapter_type);
+ #endif
+
-+ if(!bmcast)
++ if (!bmcast)
+ {
-+ DBG_871X("issue_deauth to the nonassociated ap=" MAC_FMT " for the reason(7)\n", MAC_ARG(pattrib->bssid));
++ DBG_871X("issue_deauth to the nonassociated ap =" MAC_FMT " for the reason(7)\n", MAC_ARG(pattrib->bssid));
+ issue_deauth(adapter, pattrib->bssid, WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA);
+ }
+
-+ ret= _FAIL;
++ ret = _FAIL;
+ goto exit;
+ }
+
-+ if(bmcast)
++ if (bmcast)
+ *psta = rtw_get_bcmc_stainfo(adapter);
+ else
-+ *psta = rtw_get_stainfo(pstapriv, pattrib->bssid); // get ap_info
++ *psta = rtw_get_stainfo(pstapriv, pattrib->bssid); /* get ap_info */
+
+ if (*psta == NULL) {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("ap2sta: can't get psta under STATION_MODE ; drop pkt\n"));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("ap2sta: can't get psta under STATION_MODE ; drop pkt\n"));
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME %s can't get psta under STATION_MODE ; drop pkt\n", __FUNCTION__);
++ DBG_871X("DBG_RX_DROP_FRAME %s can't get psta under STATION_MODE ; drop pkt\n", __func__);
+ #endif
-+ ret= _FAIL;
++ ret = _FAIL;
+ goto exit;
+ }
+
@@ -27475,7 +23709,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+ }
+ else if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) &&
-+ (check_fwstate(pmlmepriv, _FW_LINKED) == true) )
++ (check_fwstate(pmlmepriv, _FW_LINKED) == true))
+ {
+ memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN);
+ memcpy(pattrib->src, GetAddr2Ptr(ptr), ETH_ALEN);
@@ -27483,17 +23717,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ memcpy(pattrib->ra, pattrib->dst, ETH_ALEN);
+ memcpy(pattrib->ta, pattrib->src, ETH_ALEN);
+
-+ //
++ /* */
+ memcpy(pattrib->bssid, mybssid, ETH_ALEN);
+
+
-+ *psta = rtw_get_stainfo(pstapriv, pattrib->bssid); // get sta_info
++ *psta = rtw_get_stainfo(pstapriv, pattrib->bssid); /* get sta_info */
+ if (*psta == NULL) {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("can't get psta under MP_MODE ; drop pkt\n"));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("can't get psta under MP_MODE ; drop pkt\n"));
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME %s can't get psta under WIFI_MP_STATE ; drop pkt\n", __FUNCTION__);
++ DBG_871X("DBG_RX_DROP_FRAME %s can't get psta under WIFI_MP_STATE ; drop pkt\n", __func__);
+ #endif
-+ ret= _FAIL;
++ ret = _FAIL;
+ goto exit;
+ }
+
@@ -27507,74 +23741,68 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ }
+ else
+ {
-+ if(!memcmp(myhwaddr, pattrib->dst, ETH_ALEN)&& (!bmcast))
++ if (!memcmp(myhwaddr, pattrib->dst, ETH_ALEN) && (!bmcast))
+ {
-+ *psta = rtw_get_stainfo(pstapriv, pattrib->bssid); // get sta_info
++ *psta = rtw_get_stainfo(pstapriv, pattrib->bssid); /* get sta_info */
+ if (*psta == NULL)
+ {
-+
-+ //for AP multicast issue , modify by yiwei
-+ static unsigned long send_issue_deauth_time=0;
-+
-+ //DBG_871X("After send deauth , %u ms has elapsed.\n", jiffies_to_msecs(jiffies - send_issue_deauth_time));
-+
-+ if(jiffies_to_msecs(jiffies - send_issue_deauth_time) > 10000 || send_issue_deauth_time == 0 )
++
++ /* for AP multicast issue , modify by yiwei */
++ static unsigned long send_issue_deauth_time = 0;
++
++ /* DBG_871X("After send deauth , %u ms has elapsed.\n", jiffies_to_msecs(jiffies - send_issue_deauth_time)); */
++
++ if (jiffies_to_msecs(jiffies - send_issue_deauth_time) > 10000 || send_issue_deauth_time == 0)
+ {
+ send_issue_deauth_time = jiffies;
-+
-+ DBG_871X("issue_deauth to the ap=" MAC_FMT " for the reason(7)\n", MAC_ARG(pattrib->bssid));
-+
++
++ DBG_871X("issue_deauth to the ap =" MAC_FMT " for the reason(7)\n", MAC_ARG(pattrib->bssid));
++
+ issue_deauth(adapter, pattrib->bssid, WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA);
+ }
+ }
-+ }
-+
++ }
++
+ ret = _FAIL;
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME %s fw_state:0x%x\n", __FUNCTION__, get_fwstate(pmlmepriv));
++ DBG_871X("DBG_RX_DROP_FRAME %s fw_state:0x%x\n", __func__, get_fwstate(pmlmepriv));
+ #endif
+ }
+
+exit:
-+
-+_func_exit_;
-+
+ return ret;
-+
+}
+
+sint sta2ap_data_frame(
-+ _adapter *adapter,
++ struct adapter *adapter,
+ union recv_frame *precv_frame,
-+ struct sta_info**psta );
++ struct sta_info**psta);
+sint sta2ap_data_frame(
-+ _adapter *adapter,
++ struct adapter *adapter,
+ union recv_frame *precv_frame,
-+ struct sta_info**psta )
++ struct sta_info**psta)
+{
+ u8 *ptr = precv_frame->u.hdr.rx_data;
+ struct rx_pkt_attrib *pattrib = & precv_frame->u.hdr.attrib;
-+ struct sta_priv *pstapriv = &adapter->stapriv;
-+ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
-+ unsigned char *mybssid = get_bssid(pmlmepriv);
-+ sint ret=_SUCCESS;
-+
-+_func_enter_;
++ struct sta_priv *pstapriv = &adapter->stapriv;
++ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
++ unsigned char *mybssid = get_bssid(pmlmepriv);
++ sint ret = _SUCCESS;
+
+ if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)
+ {
-+ //For AP mode, RA=BSSID, TX=STA(SRC_ADDR), A3=DST_ADDR
-+ if(memcmp(pattrib->bssid, mybssid, ETH_ALEN))
++ /* For AP mode, RA =BSSID, TX =STA(SRC_ADDR), A3 =DST_ADDR */
++ if (memcmp(pattrib->bssid, mybssid, ETH_ALEN))
+ {
-+ ret= _FAIL;
++ ret = _FAIL;
+ goto exit;
+ }
+
+ *psta = rtw_get_stainfo(pstapriv, pattrib->src);
+ if (*psta == NULL)
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("can't get psta under AP_MODE; drop pkt\n"));
-+ DBG_871X("issue_deauth to sta=" MAC_FMT " for the reason(7)\n", MAC_ARG(pattrib->src));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("can't get psta under AP_MODE; drop pkt\n"));
++ DBG_871X("issue_deauth to sta =" MAC_FMT " for the reason(7)\n", MAC_ARG(pattrib->src));
+
+ issue_deauth(adapter, pattrib->src, WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA);
+
@@ -27601,65 +23829,60 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ ret = RTW_RX_HANDLED;
+ goto exit;
+ }
-+ DBG_871X("issue_deauth to sta=" MAC_FMT " for the reason(7)\n", MAC_ARG(pattrib->src));
++ DBG_871X("issue_deauth to sta =" MAC_FMT " for the reason(7)\n", MAC_ARG(pattrib->src));
+ issue_deauth(adapter, pattrib->src, WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA);
+ ret = RTW_RX_HANDLED;
+ goto exit;
+ }
+
+exit:
-+
-+_func_exit_;
-+
+ return ret;
-+
+}
+
-+sint validate_recv_ctrl_frame(_adapter *padapter, union recv_frame *precv_frame);
-+sint validate_recv_ctrl_frame(_adapter *padapter, union recv_frame *precv_frame)
++sint validate_recv_ctrl_frame(struct adapter *padapter, union recv_frame *precv_frame);
++sint validate_recv_ctrl_frame(struct adapter *padapter, union recv_frame *precv_frame)
+{
+ struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib;
+ struct sta_priv *pstapriv = &padapter->stapriv;
+ u8 *pframe = precv_frame->u.hdr.rx_data;
-+ struct sta_info *psta=NULL;
-+ //uint len = precv_frame->u.hdr.len;
-+
-+ //DBG_871X("+validate_recv_ctrl_frame\n");
++ struct sta_info *psta = NULL;
++ /* uint len = precv_frame->u.hdr.len; */
++
++ /* DBG_871X("+validate_recv_ctrl_frame\n"); */
+
+ if (GetFrameType(pframe) != WIFI_CTRL_TYPE)
-+ {
++ {
+ return _FAIL;
+ }
+
-+ //receive the frames that ra(a1) is my address
++ /* receive the frames that ra(a1) is my address */
+ if (memcmp(GetAddr1Ptr(pframe), myid(&padapter->eeprompriv), ETH_ALEN))
+ {
+ return _FAIL;
+ }
+
+ psta = rtw_get_stainfo(pstapriv, GetAddr2Ptr(pframe));
-+ if (psta==NULL)
++ if (psta == NULL)
+ {
+ return _FAIL;
+ }
+
-+ //for rx pkt statistics
++ /* for rx pkt statistics */
+ psta->sta_stats.rx_ctrl_pkts++;
+
-+ //only handle ps-poll
-+ if(GetFrameSubType(pframe) == WIFI_PSPOLL)
++ /* only handle ps-poll */
++ if (GetFrameSubType(pframe) == WIFI_PSPOLL)
+ {
-+#ifdef CONFIG_AP_MODE
+ u16 aid;
-+ u8 wmmps_ac=0;
-+
++ u8 wmmps_ac = 0;
++
+ aid = GetAid(pframe);
-+ if(psta->aid!=aid)
++ if (psta->aid!=aid)
+ {
+ return _FAIL;
+ }
+
-+ switch(pattrib->priority)
++ switch (pattrib->priority)
+ {
+ case 1:
+ case 2:
@@ -27677,120 +23900,118 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ case 3:
+ default:
+ wmmps_ac = psta->uapsd_be&BIT(0);
-+ break;
++ break;
+ }
+
-+ if(wmmps_ac)
++ if (wmmps_ac)
+ return _FAIL;
+
-+ if(psta->state & WIFI_STA_ALIVE_CHK_STATE)
-+ {
++ if (psta->state & WIFI_STA_ALIVE_CHK_STATE)
++ {
+ DBG_871X("%s alive check-rx ps-poll\n", __func__);
+ psta->expire_to = pstapriv->expire_to;
+ psta->state ^= WIFI_STA_ALIVE_CHK_STATE;
-+ }
++ }
+
-+ if((psta->state&WIFI_SLEEP_STATE) && (pstapriv->sta_dz_bitmap&BIT(psta->aid)))
++ if ((psta->state&WIFI_SLEEP_STATE) && (pstapriv->sta_dz_bitmap&BIT(psta->aid)))
+ {
-+ _irqL irqL;
-+ _list *xmitframe_plist, *xmitframe_phead;
-+ struct xmit_frame *pxmitframe=NULL;
++ struct list_head *xmitframe_plist, *xmitframe_phead;
++ struct xmit_frame *pxmitframe = NULL;
+ struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
-+
-+ //_enter_critical_bh(&psta->sleep_q.lock, &irqL);
-+ _enter_critical_bh(&pxmitpriv->lock, &irqL);
++
++ /* spin_lock_bh(&psta->sleep_q.lock); */
++ spin_lock_bh(&pxmitpriv->lock);
+
+ xmitframe_phead = get_list_head(&psta->sleep_q);
+ xmitframe_plist = get_next(xmitframe_phead);
+
-+ if ((rtw_end_of_queue_search(xmitframe_phead, xmitframe_plist)) == false)
-+ {
++ if (xmitframe_phead != xmitframe_plist)
++ {
+ pxmitframe = LIST_CONTAINOR(xmitframe_plist, struct xmit_frame, list);
+
+ xmitframe_plist = get_next(xmitframe_plist);
+
-+ rtw_list_delete(&pxmitframe->list);
++ list_del_init(&pxmitframe->list);
+
+ psta->sleepq_len--;
+
-+ if(psta->sleepq_len>0)
++ if (psta->sleepq_len>0)
+ pxmitframe->attrib.mdata = 1;
+ else
+ pxmitframe->attrib.mdata = 0;
+
+ pxmitframe->attrib.triggered = 1;
+
-+ //DBG_871X("handling ps-poll, q_len=%d, tim=%x\n", psta->sleepq_len, pstapriv->tim_bitmap);
++ /* DBG_871X("handling ps-poll, q_len =%d, tim =%x\n", psta->sleepq_len, pstapriv->tim_bitmap); */
+
+ rtw_hal_xmitframe_enqueue(padapter, pxmitframe);
+
-+ if(psta->sleepq_len==0)
++ if (psta->sleepq_len == 0)
+ {
+ pstapriv->tim_bitmap &= ~BIT(psta->aid);
+
-+ //DBG_871X("after handling ps-poll, tim=%x\n", pstapriv->tim_bitmap);
++ /* DBG_871X("after handling ps-poll, tim =%x\n", pstapriv->tim_bitmap); */
+
-+ //upate BCN for TIM IE
-+ //update_BCNTIM(padapter);
++ /* upate BCN for TIM IE */
++ /* update_BCNTIM(padapter); */
+ update_beacon(padapter, _TIM_IE_, NULL, true);
+ }
-+
-+ //_exit_critical_bh(&psta->sleep_q.lock, &irqL);
-+ _exit_critical_bh(&pxmitpriv->lock, &irqL);
-+
++
++ /* spin_unlock_bh(&psta->sleep_q.lock); */
++ spin_unlock_bh(&pxmitpriv->lock);
++
+ }
+ else
+ {
-+ //_exit_critical_bh(&psta->sleep_q.lock, &irqL);
-+ _exit_critical_bh(&pxmitpriv->lock, &irqL);
-+
-+ //DBG_871X("no buffered packets to xmit\n");
-+ if(pstapriv->tim_bitmap&BIT(psta->aid))
++ /* spin_unlock_bh(&psta->sleep_q.lock); */
++ spin_unlock_bh(&pxmitpriv->lock);
++
++ /* DBG_871X("no buffered packets to xmit\n"); */
++ if (pstapriv->tim_bitmap&BIT(psta->aid))
+ {
-+ if(psta->sleepq_len==0)
++ if (psta->sleepq_len == 0)
+ {
+ DBG_871X("no buffered packets to xmit\n");
+
-+ //issue nulldata with More data bit = 0 to indicate we have no buffered packets
++ /* issue nulldata with More data bit = 0 to indicate we have no buffered packets */
+ issue_nulldata_in_interrupt(padapter, psta->hwaddr);
+ }
+ else
+ {
-+ DBG_871X("error!psta->sleepq_len=%d\n", psta->sleepq_len);
-+ psta->sleepq_len=0;
++ DBG_871X("error!psta->sleepq_len =%d\n", psta->sleepq_len);
++ psta->sleepq_len = 0;
+ }
-+
-+ pstapriv->tim_bitmap &= ~BIT(psta->aid);
+
-+ //upate BCN for TIM IE
-+ //update_BCNTIM(padapter);
++ pstapriv->tim_bitmap &= ~BIT(psta->aid);
++
++ /* upate BCN for TIM IE */
++ /* update_BCNTIM(padapter); */
+ update_beacon(padapter, _TIM_IE_, NULL, true);
+ }
-+ }
++ }
+ }
-+#endif //CONFIG_AP_MODE
+ }
+
+ return _FAIL;
+
+}
+
-+union recv_frame* recvframe_chk_defrag(PADAPTER padapter, union recv_frame *precv_frame);
-+sint validate_recv_mgnt_frame(PADAPTER padapter, union recv_frame *precv_frame);
-+sint validate_recv_mgnt_frame(PADAPTER padapter, union recv_frame *precv_frame)
++union recv_frame* recvframe_chk_defrag(struct adapter *padapter, union recv_frame *precv_frame);
++sint validate_recv_mgnt_frame(struct adapter *padapter, union recv_frame *precv_frame);
++sint validate_recv_mgnt_frame(struct adapter *padapter, union recv_frame *precv_frame)
+{
-+ //struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
++ /* struct mlme_priv *pmlmepriv = &adapter->mlmepriv; */
+
+ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("+validate_recv_mgnt_frame\n"));
+
+ precv_frame = recvframe_chk_defrag(padapter, precv_frame);
+ if (precv_frame == NULL) {
-+ RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_,("%s: fragment packet\n",__FUNCTION__));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("%s: fragment packet\n", __func__));
+ return _SUCCESS;
+ }
+
+ {
-+ //for rx pkt statistics
++ /* for rx pkt statistics */
+ struct sta_info *psta = rtw_get_stainfo(&padapter->stapriv, GetAddr2Ptr(precv_frame->u.hdr.rx_data));
+ if (psta) {
+ psta->sta_stats.rx_mgnt_pkts++;
@@ -27804,7 +24025,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ else if (is_broadcast_mac_addr(GetAddr1Ptr(precv_frame->u.hdr.rx_data))
+ || is_multicast_mac_addr(GetAddr1Ptr(precv_frame->u.hdr.rx_data)))
+ psta->sta_stats.rx_probersp_bm_pkts++;
-+ else
++ else
+ psta->sta_stats.rx_probersp_uo_pkts++;
+ }
+ }
@@ -27816,30 +24037,27 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+}
+
-+sint validate_recv_data_frame(_adapter *adapter, union recv_frame *precv_frame);
-+sint validate_recv_data_frame(_adapter *adapter, union recv_frame *precv_frame)
++sint validate_recv_data_frame(struct adapter *adapter, union recv_frame *precv_frame);
++sint validate_recv_data_frame(struct adapter *adapter, union recv_frame *precv_frame)
+{
+ u8 bretry;
+ u8 *psa, *pda, *pbssid;
+ struct sta_info *psta = NULL;
+ u8 *ptr = precv_frame->u.hdr.rx_data;
+ struct rx_pkt_attrib *pattrib = & precv_frame->u.hdr.attrib;
-+ struct sta_priv *pstapriv = &adapter->stapriv;
-+ struct security_priv *psecuritypriv = &adapter->securitypriv;
++ struct security_priv *psecuritypriv = &adapter->securitypriv;
+ sint ret = _SUCCESS;
+
-+_func_enter_;
-+
+ bretry = GetRetry(ptr);
+ pda = get_da(ptr);
+ psa = get_sa(ptr);
+ pbssid = get_hdr_bssid(ptr);
+
-+ if(pbssid == NULL){
++ if (pbssid == NULL) {
+ #ifdef DBG_RX_DROP_FRAME
+ DBG_871X("DBG_RX_DROP_FRAME %s pbssid == NULL\n", __func__);
+ #endif
-+ ret= _FAIL;
++ ret = _FAIL;
+ goto exit;
+ }
+
@@ -27848,7 +24066,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+ memcpy(pattrib->bssid, pbssid, ETH_ALEN);
+
-+ switch(pattrib->to_fr_ds)
++ switch (pattrib->to_fr_ds)
+ {
+ case 0:
+ memcpy(pattrib->ra, pda, ETH_ALEN);
@@ -27871,19 +24089,19 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ case 3:
+ memcpy(pattrib->ra, GetAddr1Ptr(ptr), ETH_ALEN);
+ memcpy(pattrib->ta, GetAddr2Ptr(ptr), ETH_ALEN);
-+ ret =_FAIL;
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,(" case 3\n"));
++ ret = _FAIL;
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, (" case 3\n"));
+ break;
+
+ default:
-+ ret =_FAIL;
++ ret = _FAIL;
+ break;
+
+ }
+
-+ if(ret ==_FAIL){
++ if (ret == _FAIL) {
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME %s case:%d, res:%d\n", __FUNCTION__, pattrib->to_fr_ds, ret);
++ DBG_871X("DBG_RX_DROP_FRAME %s case:%d, res:%d\n", __func__, pattrib->to_fr_ds, ret);
+ #endif
+ goto exit;
+ } else if (ret == RTW_RX_HANDLED) {
@@ -27891,68 +24109,68 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ }
+
+
-+ if(psta==NULL){
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,(" after to_fr_ds_chk; psta==NULL \n"));
++ if (psta == NULL) {
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, (" after to_fr_ds_chk; psta == NULL\n"));
+ #ifdef DBG_RX_DROP_FRAME
+ DBG_871X("DBG_RX_DROP_FRAME %s psta == NULL\n", __func__);
+ #endif
-+ ret= _FAIL;
++ ret = _FAIL;
+ goto exit;
+ }
-+
-+ //psta->rssi = prxcmd->rssi;
-+ //psta->signal_quality= prxcmd->sq;
-+ precv_frame->u.hdr.psta = psta;
-+
+
-+ pattrib->amsdu=0;
++ /* psta->rssi = prxcmd->rssi; */
++ /* psta->signal_quality = prxcmd->sq; */
++ precv_frame->u.hdr.psta = psta;
++
++
++ pattrib->amsdu = 0;
+ pattrib->ack_policy = 0;
-+ //parsing QC field
-+ if(pattrib->qos == 1)
++ /* parsing QC field */
++ if (pattrib->qos == 1)
+ {
+ pattrib->priority = GetPriority((ptr + 24));
+ pattrib->ack_policy = GetAckpolicy((ptr + 24));
+ pattrib->amsdu = GetAMsdu((ptr + 24));
-+ pattrib->hdrlen = pattrib->to_fr_ds==3 ? 32 : 26;
++ pattrib->hdrlen = pattrib->to_fr_ds ==3 ? 32 : 26;
+
-+ if(pattrib->priority!=0 && pattrib->priority!=3)
++ if (pattrib->priority!= 0 && pattrib->priority!=3)
+ {
+ adapter->recvpriv.bIsAnyNonBEPkts = true;
+ }
+ }
+ else
+ {
-+ pattrib->priority=0;
-+ pattrib->hdrlen = pattrib->to_fr_ds==3 ? 30 : 24;
++ pattrib->priority = 0;
++ pattrib->hdrlen = pattrib->to_fr_ds ==3 ? 30 : 24;
+ }
+
+
-+ if(pattrib->order)//HT-CTRL 11n
++ if (pattrib->order)/* HT-CTRL 11n */
+ {
+ pattrib->hdrlen += 4;
+ }
+
+ precv_frame->u.hdr.preorder_ctrl = &psta->recvreorder_ctrl[pattrib->priority];
+
-+ // decache, drop duplicate recv packets
-+ if(recv_decache(precv_frame, bretry, &psta->sta_recvpriv.rxcache) == _FAIL)
++ /* decache, drop duplicate recv packets */
++ if (recv_decache(precv_frame, bretry, &psta->sta_recvpriv.rxcache) == _FAIL)
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("decache : drop pkt\n"));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("decache : drop pkt\n"));
+ #ifdef DBG_RX_DROP_FRAME
+ DBG_871X("DBG_RX_DROP_FRAME %s recv_decache return _FAIL\n", __func__);
+ #endif
-+ ret= _FAIL;
++ ret = _FAIL;
+ goto exit;
+ }
+
-+ if(pattrib->privacy){
++ if (pattrib->privacy) {
+
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("validate_recv_data_frame:pattrib->privacy=%x\n", pattrib->privacy));
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("\n ^^^^^^^^^^^IS_MCAST(pattrib->ra(0x%02x))=%d^^^^^^^^^^^^^^^6\n", pattrib->ra[0],IS_MCAST(pattrib->ra)));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("validate_recv_data_frame:pattrib->privacy =%x\n", pattrib->privacy));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n ^^^^^^^^^^^IS_MCAST(pattrib->ra(0x%02x)) =%d^^^^^^^^^^^^^^^6\n", pattrib->ra[0], IS_MCAST(pattrib->ra)));
+
+ GET_ENCRY_ALGO(psecuritypriv, psta, pattrib->encrypt, IS_MCAST(pattrib->ra));
+
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("\n pattrib->encrypt=%d\n",pattrib->encrypt));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n pattrib->encrypt =%d\n", pattrib->encrypt));
+
+ SET_ICE_IV_LEN(pattrib->iv_len, pattrib->icv_len, pattrib->encrypt);
+ }
@@ -27963,150 +24181,128 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ }
+
+exit:
-+
-+_func_exit_;
-+
+ return ret;
+}
+
-+#ifdef CONFIG_IEEE80211W
-+static sint validate_80211w_mgmt(_adapter *adapter, union recv_frame *precv_frame)
++static sint validate_80211w_mgmt(struct adapter *adapter, union recv_frame *precv_frame)
+{
+ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
+ struct rx_pkt_attrib *pattrib = & precv_frame->u.hdr.attrib;
+ u8 *ptr = precv_frame->u.hdr.rx_data;
+ u8 type;
+ u8 subtype;
-+
++
+ type = GetFrameType(ptr);
-+ subtype = GetFrameSubType(ptr); //bit(7)~bit(2)
-+
-+ //only support station mode
-+ if(check_fwstate(pmlmepriv, WIFI_STATION_STATE) && check_fwstate(pmlmepriv, _FW_LINKED)
++ subtype = GetFrameSubType(ptr); /* bit(7)~bit(2) */
++
++ /* only support station mode */
++ if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) && check_fwstate(pmlmepriv, _FW_LINKED)
+ && adapter->securitypriv.binstallBIPkey == true)
+ {
-+ //unicast management frame decrypt
-+ if(pattrib->privacy && !(IS_MCAST(GetAddr1Ptr(ptr))) &&
++ /* unicast management frame decrypt */
++ if (pattrib->privacy && !(IS_MCAST(GetAddr1Ptr(ptr))) &&
+ (subtype == WIFI_DEAUTH || subtype == WIFI_DISASSOC || subtype == WIFI_ACTION))
+ {
+ u8 *ppp, *mgmt_DATA;
-+ u32 data_len=0;
++ u32 data_len = 0;
+ ppp = GetAddr2Ptr(ptr);
-+
++
+ pattrib->bdecrypted = 0;
+ pattrib->encrypt = _AES_;
-+ pattrib->hdrlen = sizeof(struct rtw_ieee80211_hdr_3addr);
-+ //set iv and icv length
++ pattrib->hdrlen = sizeof(struct ieee80211_hdr_3addr);
++ /* set iv and icv length */
+ SET_ICE_IV_LEN(pattrib->iv_len, pattrib->icv_len, pattrib->encrypt);
+ memcpy(pattrib->ra, GetAddr1Ptr(ptr), ETH_ALEN);
+ memcpy(pattrib->ta, GetAddr2Ptr(ptr), ETH_ALEN);
-+ //actual management data frame body
++ /* actual management data frame body */
+ data_len = pattrib->pkt_len - pattrib->hdrlen - pattrib->iv_len - pattrib->icv_len;
+ mgmt_DATA = rtw_zmalloc(data_len);
-+ if(mgmt_DATA == NULL)
++ if (mgmt_DATA == NULL)
+ {
-+ DBG_871X("%s mgmt allocate fail !!!!!!!!!\n", __FUNCTION__);
++ DBG_871X("%s mgmt allocate fail !!!!!!!!!\n", __func__);
+ goto validate_80211w_fail;
+ }
-+ /*//dump the packet content before decrypt
-+ {
-+ int pp;
-+ printk("pattrib->pktlen = %d =>", pattrib->pkt_len);
-+ for(pp=0;pp< pattrib->pkt_len; pp++)
-+ printk(" %02x ", ptr[pp]);
-+ printk("\n");
-+ }*/
-+
+ precv_frame = decryptor(adapter, precv_frame);
-+ //save actual management data frame body
++ /* save actual management data frame body */
+ memcpy(mgmt_DATA, ptr+pattrib->hdrlen+pattrib->iv_len, data_len);
-+ //overwrite the iv field
++ /* overwrite the iv field */
+ memcpy(ptr+pattrib->hdrlen, mgmt_DATA, data_len);
-+ //remove the iv and icv length
++ /* remove the iv and icv length */
+ pattrib->pkt_len = pattrib->pkt_len - pattrib->iv_len - pattrib->icv_len;
-+ rtw_mfree(mgmt_DATA, data_len);
-+ /*//print packet content after decryption
++ kfree(mgmt_DATA);
++ if (!precv_frame)
+ {
-+ int pp;
-+ printk("after decryption pattrib->pktlen = %d @@=>", pattrib->pkt_len);
-+ for(pp=0;pp< pattrib->pkt_len; pp++)
-+ printk(" %02x ", ptr[pp]);
-+ printk("\n");
-+ }*/
-+ if(!precv_frame)
-+ {
-+ DBG_871X("%s mgmt descrypt fail !!!!!!!!!\n", __FUNCTION__);
++ DBG_871X("%s mgmt descrypt fail !!!!!!!!!\n", __func__);
+ goto validate_80211w_fail;
+ }
+ }
-+ else if(IS_MCAST(GetAddr1Ptr(ptr)) &&
++ else if (IS_MCAST(GetAddr1Ptr(ptr)) &&
+ (subtype == WIFI_DEAUTH || subtype == WIFI_DISASSOC))
+ {
+ sint BIP_ret = _SUCCESS;
-+ //verify BIP MME IE of broadcast/multicast de-auth/disassoc packet
-+ BIP_ret = rtw_BIP_verify(adapter, (u8 * )precv_frame);
-+ if(BIP_ret == _FAIL)
++ /* verify BIP MME IE of broadcast/multicast de-auth/disassoc packet */
++ BIP_ret = rtw_BIP_verify(adapter, (u8 *)precv_frame);
++ if (BIP_ret == _FAIL)
+ {
-+ //DBG_871X("802.11w BIP verify fail\n");
++ /* DBG_871X("802.11w BIP verify fail\n"); */
+ goto validate_80211w_fail;
+ }
-+ else if(BIP_ret == RTW_RX_HANDLED)
++ else if (BIP_ret == RTW_RX_HANDLED)
+ {
-+ //DBG_871X("802.11w recv none protected packet\n");
-+ //issue sa query request
++ /* DBG_871X("802.11w recv none protected packet\n"); */
++ /* issue sa query request */
+ issue_action_SA_Query(adapter, NULL, 0, 0);
+ goto validate_80211w_fail;
+ }
-+ }//802.11w protect
++ }/* 802.11w protect */
+ else
+ {
-+ if(subtype == WIFI_ACTION)
++ if (subtype == WIFI_ACTION)
+ {
-+ //according 802.11-2012 standard, these five types are not robust types
-+ if( ptr[WLAN_HDR_A3_LEN] != RTW_WLAN_CATEGORY_PUBLIC &&
++ /* according 802.11-2012 standard, these five types are not robust types */
++ if (ptr[WLAN_HDR_A3_LEN] != RTW_WLAN_CATEGORY_PUBLIC &&
+ ptr[WLAN_HDR_A3_LEN] != RTW_WLAN_CATEGORY_HT &&
+ ptr[WLAN_HDR_A3_LEN] != RTW_WLAN_CATEGORY_UNPROTECTED_WNM &&
+ ptr[WLAN_HDR_A3_LEN] != RTW_WLAN_CATEGORY_SELF_PROTECTED &&
+ ptr[WLAN_HDR_A3_LEN] != RTW_WLAN_CATEGORY_P2P)
+ {
-+ DBG_871X("action frame category=%d should robust\n", ptr[WLAN_HDR_A3_LEN]);
++ DBG_871X("action frame category =%d should robust\n", ptr[WLAN_HDR_A3_LEN]);
+ goto validate_80211w_fail;
+ }
+ }
-+ else if(subtype == WIFI_DEAUTH || subtype == WIFI_DISASSOC)
++ else if (subtype == WIFI_DEAUTH || subtype == WIFI_DISASSOC)
+ {
+ DBG_871X("802.11w recv none protected packet\n");
-+ //issue sa query request
++ /* issue sa query request */
+ issue_action_SA_Query(adapter, NULL, 0, 0);
+ goto validate_80211w_fail;
+ }
+ }
+ }
+ return _SUCCESS;
-+
++
+validate_80211w_fail:
+ return _FAIL;
-+
++
+}
-+#endif //CONFIG_IEEE80211W
+
+static inline void dump_rx_packet(u8 *ptr)
+{
+ int i;
+
-+ DBG_871X("############################# \n");
-+ for(i=0; i<64;i=i+8)
++ DBG_871X("#############################\n");
++ for (i = 0; i<64;i =i+8)
+ DBG_871X("%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:\n", *(ptr+i),
+ *(ptr+i+1), *(ptr+i+2) ,*(ptr+i+3) ,*(ptr+i+4),*(ptr+i+5), *(ptr+i+6), *(ptr+i+7));
-+ DBG_871X("############################# \n");
++ DBG_871X("#############################\n");
+}
+
-+sint validate_recv_frame(_adapter *adapter, union recv_frame *precv_frame);
-+sint validate_recv_frame(_adapter *adapter, union recv_frame *precv_frame)
++sint validate_recv_frame(struct adapter *adapter, union recv_frame *precv_frame);
++sint validate_recv_frame(struct adapter *adapter, union recv_frame *precv_frame)
+{
-+ //shall check frame subtype, to / from ds, da, bssid
++ /* shall check frame subtype, to / from ds, da, bssid */
+
-+ //then call check if rx seq/frag. duplicated.
++ /* then call check if rx seq/frag. duplicated. */
+
+ u8 type;
+ u8 subtype;
@@ -28117,26 +24313,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ u8 *ptr = precv_frame->u.hdr.rx_data;
+ u8 ver =(unsigned char) (*ptr)&0x3 ;
+
-+#ifdef CONFIG_WAPI_SUPPORT
-+ PRT_WAPI_T pWapiInfo = &adapter->wapiInfo;
-+ struct recv_frame_hdr *phdr = &precv_frame->u.hdr;
-+ u8 wai_pkt = 0;
-+ u16 sc;
-+ u8 external_len = 0;
-+#endif
-+
-+_func_enter_;
-+
-+ //add version chk
-+ if(ver!=0){
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("validate_recv_data_frame fail! (ver!=0)\n"));
-+ retval= _FAIL;
++ /* add version chk */
++ if (ver!= 0) {
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("validate_recv_data_frame fail! (ver!= 0)\n"));
++ retval = _FAIL;
+ DBG_COUNTER(adapter->rx_logs.core_rx_pre_ver_err);
+ goto exit;
+ }
+
+ type = GetFrameType(ptr);
-+ subtype = GetFrameSubType(ptr); //bit(7)~bit(2)
++ subtype = GetFrameSubType(ptr); /* bit(7)~bit(2) */
+
+ pattrib->to_fr_ds = get_tofr_ds(ptr);
+
@@ -28148,13 +24334,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ pattrib->mdata = GetMData(ptr);
+ pattrib->privacy = GetPrivacy(ptr);
+ pattrib->order = GetOrder(ptr);
-+#ifdef CONFIG_WAPI_SUPPORT
-+ sc = (pattrib->seq_num<<4) | pattrib->frag_num;
-+#endif
+{
+ u8 bDumpRxPkt;
+ rtw_hal_get_def_var(adapter, HAL_DEF_DBG_DUMP_RXPKT, &(bDumpRxPkt));
-+ if (bDumpRxPkt == 1) //dump all rx packets
++ if (bDumpRxPkt == 1) /* dump all rx packets */
+ dump_rx_packet(ptr);
+ else if ((bDumpRxPkt == 2) && (type == WIFI_MGT_TYPE))
+ dump_rx_packet(ptr);
@@ -28164,77 +24347,42 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+ switch (type)
+ {
-+ case WIFI_MGT_TYPE: //mgnt
++ case WIFI_MGT_TYPE: /* mgnt */
+ DBG_COUNTER(adapter->rx_logs.core_rx_pre_mgmt);
-+#ifdef CONFIG_IEEE80211W
-+ if(validate_80211w_mgmt(adapter, precv_frame) == _FAIL)
++ if (validate_80211w_mgmt(adapter, precv_frame) == _FAIL)
+ {
+ retval = _FAIL;
+ DBG_COUNTER(padapter->rx_logs.core_rx_pre_mgmt_err_80211w);
+ break;
+ }
-+#endif //CONFIG_IEEE80211W
-+
++
+ retval = validate_recv_mgnt_frame(adapter, precv_frame);
+ if (retval == _FAIL)
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("validate_recv_mgnt_frame fail\n"));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("validate_recv_mgnt_frame fail\n"));
+ DBG_COUNTER(adapter->rx_logs.core_rx_pre_mgmt_err);
+ }
-+ retval = _FAIL; // only data frame return _SUCCESS
++ retval = _FAIL; /* only data frame return _SUCCESS */
+ break;
-+ case WIFI_CTRL_TYPE: //ctrl
++ case WIFI_CTRL_TYPE: /* ctrl */
+ DBG_COUNTER(adapter->rx_logs.core_rx_pre_ctrl);
+ retval = validate_recv_ctrl_frame(adapter, precv_frame);
+ if (retval == _FAIL)
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("validate_recv_ctrl_frame fail\n"));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("validate_recv_ctrl_frame fail\n"));
+ DBG_COUNTER(adapter->rx_logs.core_rx_pre_ctrl_err);
+ }
-+ retval = _FAIL; // only data frame return _SUCCESS
++ retval = _FAIL; /* only data frame return _SUCCESS */
+ break;
-+ case WIFI_DATA_TYPE: //data
++ case WIFI_DATA_TYPE: /* data */
+ DBG_COUNTER(adapter->rx_logs.core_rx_pre_data);
-+#ifdef CONFIG_WAPI_SUPPORT
-+ if(pattrib->qos)
-+ external_len = 2;
-+ else
-+ external_len= 0;
-+
-+ wai_pkt = rtw_wapi_is_wai_packet(adapter,ptr);
-+
-+ phdr->bIsWaiPacket = wai_pkt;
-+
-+ if(wai_pkt !=0){
-+ if(sc != adapter->wapiInfo.wapiSeqnumAndFragNum)
-+ {
-+ adapter->wapiInfo.wapiSeqnumAndFragNum = sc;
-+ }
-+ else
-+ {
-+ retval = _FAIL;
-+ DBG_COUNTER(adapter->rx_logs.core_rx_pre_data_wapi_seq_err);
-+ break;
-+ }
-+ }
-+ else{
-+
-+ if(rtw_wapi_drop_for_key_absent(adapter,GetAddr2Ptr(ptr))){
-+ retval=_FAIL;
-+ WAPI_TRACE(WAPI_RX,"drop for key absent for rx \n");
-+ DBG_COUNTER(adapter->rx_logs.core_rx_pre_data_wapi_key_err);
-+ break;
-+ }
-+ }
-+
-+#endif
+
+ pattrib->qos = (subtype & BIT(7))? 1:0;
+ retval = validate_recv_data_frame(adapter, precv_frame);
+ if (retval == _FAIL)
+ {
+ struct recv_priv *precvpriv = &adapter->recvpriv;
-+ //RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("validate_recv_data_frame fail\n"));
++ /* RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("validate_recv_data_frame fail\n")); */
+ precvpriv->rx_drop++;
+ DBG_COUNTER(adapter->rx_logs.core_rx_pre_data_err);
+ }
@@ -28244,9 +24392,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ u8 bDumpRxPkt;
+ u16 eth_type;
+
-+ // dump eapol
++ /* dump eapol */
+ rtw_hal_get_def_var(adapter, HAL_DEF_DBG_DUMP_RXPKT, &(bDumpRxPkt));
-+ // get ether_type
++ /* get ether_type */
+ memcpy(ð_type, ptr + pattrib->hdrlen + pattrib->iv_len + LLC_HEADER_SIZE, 2);
+ eth_type = ntohs((unsigned short) eth_type);
+ if ((bDumpRxPkt == 4) && (eth_type == 0x888e))
@@ -28260,54 +24408,48 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ break;
+ default:
+ DBG_COUNTER(adapter->rx_logs.core_rx_pre_unknown);
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("validate_recv_data_frame fail! type=0x%x\n", type));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("validate_recv_data_frame fail! type = 0x%x\n", type));
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME validate_recv_data_frame fail! type=0x%x\n", type);
++ DBG_871X("DBG_RX_DROP_FRAME validate_recv_data_frame fail! type = 0x%x\n", type);
+ #endif
+ retval = _FAIL;
+ break;
+ }
+
+exit:
-+
-+_func_exit_;
-+
+ return retval;
+}
+
+
-+//remove the wlanhdr and add the eth_hdr
-+sint wlanhdr_to_ethhdr ( union recv_frame *precvframe);
-+sint wlanhdr_to_ethhdr ( union recv_frame *precvframe)
++/* remove the wlanhdr and add the eth_hdr */
++sint wlanhdr_to_ethhdr (union recv_frame *precvframe);
++sint wlanhdr_to_ethhdr (union recv_frame *precvframe)
+{
+ sint rmv_len;
-+ u16 eth_type, len;
-+ u8 bsnaphdr;
-+ u8 *psnap_type;
++ u16 eth_type, len;
++ u8 bsnaphdr;
++ u8 *psnap_type;
+ struct ieee80211_snap_hdr *psnap;
-+
-+ sint ret=_SUCCESS;
-+ _adapter *adapter =precvframe->u.hdr.adapter;
-+ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
-+
-+ u8 *ptr = get_recvframe_data(precvframe) ; // point to frame_ctrl field
++ __be16 be_tmp;
++ sint ret = _SUCCESS;
++ struct adapter *adapter =precvframe->u.hdr.adapter;
++ struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
++ u8 *ptr = get_recvframe_data(precvframe) ; /* point to frame_ctrl field */
+ struct rx_pkt_attrib *pattrib = & precvframe->u.hdr.attrib;
+
-+_func_enter_;
-+
-+ if(pattrib->encrypt){
-+ recvframe_pull_tail(precvframe, pattrib->icv_len);
++ if (pattrib->encrypt) {
++ recvframe_pull_tail(precvframe, pattrib->icv_len);
+ }
+
-+ psnap=(struct ieee80211_snap_hdr *)(ptr+pattrib->hdrlen + pattrib->iv_len);
-+ psnap_type=ptr+pattrib->hdrlen + pattrib->iv_len+SNAP_SIZE;
++ psnap =(struct ieee80211_snap_hdr *)(ptr+pattrib->hdrlen + pattrib->iv_len);
++ psnap_type =ptr+pattrib->hdrlen + pattrib->iv_len+SNAP_SIZE;
+ /* convert hdr + possible LLC headers into Ethernet header */
-+ //eth_type = (psnap_type[0] << 8) | psnap_type[1];
-+ if((!memcmp(psnap, rtw_rfc1042_header, SNAP_SIZE) &&
-+ (memcmp(psnap_type, SNAP_ETH_TYPE_IPX, 2)) &&
-+ (memcmp(psnap_type, SNAP_ETH_TYPE_APPLETALK_AARP, 2)) )||
-+ //eth_type != ETH_P_AARP && eth_type != ETH_P_IPX) ||
-+ !memcmp(psnap, rtw_bridge_tunnel_header, SNAP_SIZE)){
++ /* eth_type = (psnap_type[0] << 8) | psnap_type[1]; */
++ if ((!memcmp(psnap, rtw_rfc1042_header, SNAP_SIZE) &&
++ (memcmp(psnap_type, SNAP_ETH_TYPE_IPX, 2)) &&
++ (memcmp(psnap_type, SNAP_ETH_TYPE_APPLETALK_AARP, 2)))||
++ /* eth_type != ETH_P_AARP && eth_type != ETH_P_IPX) || */
++ !memcmp(psnap, rtw_bridge_tunnel_header, SNAP_SIZE)) {
+ /* remove RFC1042 or Bridge-Tunnel encapsulation and replace EtherType */
+ bsnaphdr = true;
+ }
@@ -28319,55 +24461,55 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ rmv_len = pattrib->hdrlen + pattrib->iv_len +(bsnaphdr?SNAP_SIZE:0);
+ len = precvframe->u.hdr.len - rmv_len;
+
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("\n===pattrib->hdrlen: %x, pattrib->iv_len:%x ===\n\n", pattrib->hdrlen, pattrib->iv_len));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n ===pattrib->hdrlen: %x, pattrib->iv_len:%x ===\n\n", pattrib->hdrlen, pattrib->iv_len));
+
-+ memcpy(ð_type, ptr+rmv_len, 2);
-+ eth_type= ntohs((unsigned short )eth_type); //pattrib->ether_type
++ memcpy(&be_tmp, ptr+rmv_len, 2);
++ eth_type = ntohs(be_tmp); /* pattrib->ether_type */
+ pattrib->eth_type = eth_type;
+
+#ifdef CONFIG_AUTO_AP_MODE
+ if (0x8899 == pattrib->eth_type)
+ {
+ struct sta_info *psta = precvframe->u.hdr.psta;
-+
-+ DBG_871X("wlan rx: got eth_type=0x%x\n", pattrib->eth_type);
-+
++
++ DBG_871X("wlan rx: got eth_type = 0x%x\n", pattrib->eth_type);
++
+ if (psta && psta->isrc && psta->pid>0)
+ {
+ u16 rx_pid;
+
+ rx_pid = *(u16*)(ptr+rmv_len+2);
-+
-+ DBG_871X("wlan rx(pid=0x%x): sta("MAC_FMT") pid=0x%x\n",
++
++ DBG_871X("wlan rx(pid = 0x%x): sta("MAC_FMT") pid = 0x%x\n",
+ rx_pid, MAC_ARG(psta->hwaddr), psta->pid);
+
-+ if(rx_pid == psta->pid)
++ if (rx_pid == psta->pid)
+ {
+ int i;
+ u16 len = *(u16*)(ptr+rmv_len+4);
-+ //u16 ctrl_type = *(u16*)(ptr+rmv_len+6);
++ /* u16 ctrl_type = *(u16*)(ptr+rmv_len+6); */
+
-+ //DBG_871X("RC: len=0x%x, ctrl_type=0x%x\n", len, ctrl_type);
-+ DBG_871X("RC: len=0x%x\n", len);
++ /* DBG_871X("RC: len = 0x%x, ctrl_type = 0x%x\n", len, ctrl_type); */
++ DBG_871X("RC: len = 0x%x\n", len);
+
-+ for(i=0;idst, ETH_ALEN);
+ memcpy(ptr+ETH_ALEN, pattrib->src, ETH_ALEN);
+
-+ if(!bsnaphdr) {
-+ len = htons(len);
-+ memcpy(ptr+12, &len, 2);
++ if (!bsnaphdr) {
++ be_tmp = htons(len);
++ memcpy(ptr+12, &be_tmp, 2);
+ }
+
-+_func_exit_;
+ return ret;
-+
+}
+
-+//perform defrag
-+union recv_frame * recvframe_defrag(_adapter *adapter,_queue *defrag_q);
-+union recv_frame * recvframe_defrag(_adapter *adapter,_queue *defrag_q)
++/* perform defrag */
++union recv_frame * recvframe_defrag(struct adapter *adapter, struct __queue *defrag_q)
+{
-+ _list *plist, *phead;
-+ u8 *data,wlanhdr_offset;
-+ u8 curfragnum;
++ struct list_head *plist, *phead;
++ u8 *data, wlanhdr_offset;
++ u8 curfragnum;
+ struct recv_frame_hdr *pfhdr,*pnfhdr;
+ union recv_frame* prframe, *pnextrframe;
-+ _queue *pfree_recv_queue;
++ struct __queue *pfree_recv_queue;
+
-+_func_enter_;
-+
-+ curfragnum=0;
-+ pfree_recv_queue=&adapter->recvpriv.free_recv_queue;
++ curfragnum = 0;
++ pfree_recv_queue =&adapter->recvpriv.free_recv_queue;
+
+ phead = get_list_head(defrag_q);
+ plist = get_next(phead);
+ prframe = LIST_CONTAINOR(plist, union recv_frame, u);
-+ pfhdr=&prframe->u.hdr;
-+ rtw_list_delete(&(prframe->u.list));
++ pfhdr =&prframe->u.hdr;
++ list_del_init(&(prframe->u.list));
+
-+ if(curfragnum!=pfhdr->attrib.frag_num)
++ if (curfragnum!=pfhdr->attrib.frag_num)
+ {
-+ //the first fragment number must be 0
-+ //free the whole queue
++ /* the first fragment number must be 0 */
++ /* free the whole queue */
+ rtw_free_recvframe(prframe, pfree_recv_queue);
+ rtw_free_recvframe_queue(defrag_q, pfree_recv_queue);
+
@@ -28423,24 +24560,24 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+ curfragnum++;
+
-+ plist= get_list_head(defrag_q);
++ plist = get_list_head(defrag_q);
+
+ plist = get_next(plist);
+
-+ data=get_recvframe_data(prframe);
++ data =get_recvframe_data(prframe);
+
-+ while(rtw_end_of_queue_search(phead, plist) == false)
++ while (phead != plist)
+ {
+ pnextrframe = LIST_CONTAINOR(plist, union recv_frame , u);
-+ pnfhdr=&pnextrframe->u.hdr;
++ pnfhdr =&pnextrframe->u.hdr;
+
+
-+ //check the fragment sequence (2nd ~n fragment frame)
++ /* check the fragment sequence (2nd ~n fragment frame) */
+
-+ if(curfragnum!=pnfhdr->attrib.frag_num)
++ if (curfragnum!=pnfhdr->attrib.frag_num)
+ {
-+ //the fragment number must be increasing (after decache)
-+ //release the defrag_q & prframe
++ /* the fragment number must be increasing (after decache) */
++ /* release the defrag_q & prframe */
+ rtw_free_recvframe(prframe, pfree_recv_queue);
+ rtw_free_recvframe_queue(defrag_q, pfree_recv_queue);
+ return NULL;
@@ -28448,50 +24585,46 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+ curfragnum++;
+
-+ //copy the 2nd~n fragment frame's payload to the first fragment
-+ //get the 2nd~last fragment frame's payload
++ /* copy the 2nd~n fragment frame's payload to the first fragment */
++ /* get the 2nd~last fragment frame's payload */
+
+ wlanhdr_offset = pnfhdr->attrib.hdrlen + pnfhdr->attrib.iv_len;
+
+ recvframe_pull(pnextrframe, wlanhdr_offset);
+
-+ //append to first fragment frame's tail (if privacy frame, pull the ICV)
++ /* append to first fragment frame's tail (if privacy frame, pull the ICV) */
+ recvframe_pull_tail(prframe, pfhdr->attrib.icv_len);
+
-+ //memcpy
++ /* memcpy */
+ memcpy(pfhdr->rx_tail, pnfhdr->rx_data, pnfhdr->len);
+
+ recvframe_put(prframe, pnfhdr->len);
+
-+ pfhdr->attrib.icv_len=pnfhdr->attrib.icv_len;
++ pfhdr->attrib.icv_len =pnfhdr->attrib.icv_len;
+ plist = get_next(plist);
+
+ };
+
-+ //free the defrag_q queue and return the prframe
++ /* free the defrag_q queue and return the prframe */
+ rtw_free_recvframe_queue(defrag_q, pfree_recv_queue);
+
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("Performance defrag!!!!!\n"));
-+
-+_func_exit_;
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("Performance defrag!!!!!\n"));
+
+ return prframe;
+}
+
-+//check if need to defrag, if needed queue the frame to defrag_q
-+union recv_frame* recvframe_chk_defrag(PADAPTER padapter, union recv_frame *precv_frame)
++/* check if need to defrag, if needed queue the frame to defrag_q */
++union recv_frame* recvframe_chk_defrag(struct adapter *padapter, union recv_frame *precv_frame)
+{
-+ u8 ismfrag;
-+ u8 fragnum;
-+ u8 *psta_addr;
++ u8 ismfrag;
++ u8 fragnum;
++ u8 *psta_addr;
+ struct recv_frame_hdr *pfhdr;
+ struct sta_info *psta;
+ struct sta_priv *pstapriv;
-+ _list *phead;
++ struct list_head *phead;
+ union recv_frame *prtnframe = NULL;
-+ _queue *pfree_recv_queue, *pdefrag_q;
-+
-+_func_enter_;
++ struct __queue *pfree_recv_queue, *pdefrag_q;
+
+ pstapriv = &padapter->stapriv;
+
@@ -28499,7 +24632,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+ pfree_recv_queue = &padapter->recvpriv.free_recv_queue;
+
-+ //need to define struct of wlan header frame ctrl
++ /* need to define struct of wlan header frame ctrl */
+ ismfrag = pfhdr->attrib.mfrag;
+ fragnum = pfhdr->attrib.frag_num;
+
@@ -28517,111 +24650,107 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ else
+ pdefrag_q = &psta->sta_recvpriv.defrag_q;
+
-+ if ((ismfrag==0) && (fragnum==0))
++ if ((ismfrag == 0) && (fragnum == 0))
+ {
-+ prtnframe = precv_frame;//isn't a fragment frame
++ prtnframe = precv_frame;/* isn't a fragment frame */
+ }
+
-+ if (ismfrag==1)
++ if (ismfrag == 1)
+ {
-+ //0~(n-1) fragment frame
-+ //enqueue to defraf_g
-+ if(pdefrag_q != NULL)
++ /* 0~(n-1) fragment frame */
++ /* enqueue to defraf_g */
++ if (pdefrag_q != NULL)
+ {
-+ if(fragnum==0)
++ if (fragnum == 0)
+ {
-+ //the first fragment
-+ if(_rtw_queue_empty(pdefrag_q) == false)
++ /* the first fragment */
++ if (!list_empty(&pdefrag_q->queue))
+ {
-+ //free current defrag_q
++ /* free current defrag_q */
+ rtw_free_recvframe_queue(pdefrag_q, pfree_recv_queue);
+ }
+ }
+
+
-+ //Then enqueue the 0~(n-1) fragment into the defrag_q
++ /* Then enqueue the 0~(n-1) fragment into the defrag_q */
+
-+ //spin_lock(&pdefrag_q->lock);
++ /* spin_lock(&pdefrag_q->lock); */
+ phead = get_list_head(pdefrag_q);
-+ rtw_list_insert_tail(&pfhdr->list, phead);
-+ //spin_unlock(&pdefrag_q->lock);
++ list_add_tail(&pfhdr->list, phead);
++ /* spin_unlock(&pdefrag_q->lock); */
+
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("Enqueuq: ismfrag = %d, fragnum= %d\n", ismfrag,fragnum));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("Enqueuq: ismfrag = %d, fragnum = %d\n", ismfrag, fragnum));
+
-+ prtnframe=NULL;
++ prtnframe = NULL;
+
+ }
+ else
+ {
-+ //can't find this ta's defrag_queue, so free this recv_frame
++ /* can't find this ta's defrag_queue, so free this recv_frame */
+ rtw_free_recvframe(precv_frame, pfree_recv_queue);
-+ prtnframe=NULL;
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("Free because pdefrag_q ==NULL: ismfrag = %d, fragnum= %d\n", ismfrag, fragnum));
++ prtnframe = NULL;
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("Free because pdefrag_q == NULL: ismfrag = %d, fragnum = %d\n", ismfrag, fragnum));
+ }
+
+ }
+
-+ if((ismfrag==0)&&(fragnum!=0))
++ if ((ismfrag == 0) && (fragnum!= 0))
+ {
-+ //the last fragment frame
-+ //enqueue the last fragment
-+ if(pdefrag_q != NULL)
++ /* the last fragment frame */
++ /* enqueue the last fragment */
++ if (pdefrag_q != NULL)
+ {
-+ //spin_lock(&pdefrag_q->lock);
++ /* spin_lock(&pdefrag_q->lock); */
+ phead = get_list_head(pdefrag_q);
-+ rtw_list_insert_tail(&pfhdr->list,phead);
-+ //spin_unlock(&pdefrag_q->lock);
++ list_add_tail(&pfhdr->list, phead);
++ /* spin_unlock(&pdefrag_q->lock); */
+
-+ //call recvframe_defrag to defrag
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("defrag: ismfrag = %d, fragnum= %d\n", ismfrag, fragnum));
++ /* call recvframe_defrag to defrag */
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("defrag: ismfrag = %d, fragnum = %d\n", ismfrag, fragnum));
+ precv_frame = recvframe_defrag(padapter, pdefrag_q);
-+ prtnframe=precv_frame;
++ prtnframe =precv_frame;
+
+ }
+ else
+ {
-+ //can't find this ta's defrag_queue, so free this recv_frame
++ /* can't find this ta's defrag_queue, so free this recv_frame */
+ rtw_free_recvframe(precv_frame, pfree_recv_queue);
-+ prtnframe=NULL;
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("Free because pdefrag_q ==NULL: ismfrag = %d, fragnum= %d\n", ismfrag,fragnum));
++ prtnframe = NULL;
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("Free because pdefrag_q == NULL: ismfrag = %d, fragnum = %d\n", ismfrag, fragnum));
+ }
+
+ }
+
+
-+ if((prtnframe!=NULL)&&(prtnframe->u.hdr.attrib.privacy))
++ if ((prtnframe!= NULL) && (prtnframe->u.hdr.attrib.privacy))
+ {
-+ //after defrag we must check tkip mic code
-+ if(recvframe_chkmic(padapter, prtnframe)==_FAIL)
++ /* after defrag we must check tkip mic code */
++ if (recvframe_chkmic(padapter, prtnframe) == _FAIL)
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("recvframe_chkmic(padapter, prtnframe)==_FAIL\n"));
-+ rtw_free_recvframe(prtnframe,pfree_recv_queue);
-+ prtnframe=NULL;
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("recvframe_chkmic(padapter, prtnframe) == _FAIL\n"));
++ rtw_free_recvframe(prtnframe, pfree_recv_queue);
++ prtnframe = NULL;
+ }
+ }
-+
-+_func_exit_;
-+
+ return prtnframe;
-+
+}
+
-+static int amsdu_to_msdu(_adapter *padapter, union recv_frame *prframe)
++static int amsdu_to_msdu(struct adapter *padapter, union recv_frame *prframe)
+{
+ int a_len, padding_len;
-+ u16 nSubframe_Length;
-+ u8 nr_subframes, i;
-+ u8 *pdata;
++ u16 nSubframe_Length;
++ u8 nr_subframes, i;
++ u8 *pdata;
+ _pkt *sub_pkt,*subframes[MAX_SUBFRAME_COUNT];
+ struct recv_priv *precvpriv = &padapter->recvpriv;
-+ _queue *pfree_recv_queue = &(precvpriv->free_recv_queue);
++ struct __queue *pfree_recv_queue = &(precvpriv->free_recv_queue);
+ int ret = _SUCCESS;
+
+ nr_subframes = 0;
+
+ recvframe_pull(prframe, prframe->u.hdr.attrib.hdrlen);
-+
-+ if(prframe->u.hdr.attrib.iv_len >0)
++
++ if (prframe->u.hdr.attrib.iv_len >0)
+ {
+ recvframe_pull(prframe, prframe->u.hdr.attrib.iv_len);
+ }
@@ -28630,19 +24759,19 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+ pdata = prframe->u.hdr.rx_data;
+
-+ while(a_len > ETH_HLEN) {
++ while (a_len > ETH_HLEN) {
+
+ /* Offset 12 denote 2 mac address */
+ nSubframe_Length = RTW_GET_BE16(pdata + 12);
+
-+ if( a_len < (ETHERNET_HEADER_SIZE + nSubframe_Length) ) {
-+ DBG_871X("nRemain_Length is %d and nSubframe_Length is : %d\n",a_len,nSubframe_Length);
++ if (a_len < (ETHERNET_HEADER_SIZE + nSubframe_Length)) {
++ DBG_871X("nRemain_Length is %d and nSubframe_Length is : %d\n", a_len, nSubframe_Length);
+ break;
+ }
+
+ sub_pkt = rtw_os_alloc_msdu_pkt(prframe, nSubframe_Length, pdata);
+ if (sub_pkt == NULL) {
-+ DBG_871X("%s(): allocate sub packet fail !!!\n",__FUNCTION__);
++ DBG_871X("%s(): allocate sub packet fail !!!\n", __func__);
+ break;
+ }
+
@@ -28652,20 +24781,20 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+ subframes[nr_subframes++] = sub_pkt;
+
-+ if(nr_subframes >= MAX_SUBFRAME_COUNT) {
++ if (nr_subframes >= MAX_SUBFRAME_COUNT) {
+ DBG_871X("ParseSubframe(): Too many Subframes! Packets dropped!\n");
+ break;
+ }
+
+ pdata += nSubframe_Length;
+ a_len -= nSubframe_Length;
-+ if(a_len != 0) {
++ if (a_len != 0) {
+ padding_len = 4 - ((nSubframe_Length + ETH_HLEN) & (4-1));
-+ if(padding_len == 4) {
++ if (padding_len == 4) {
+ padding_len = 0;
+ }
+
-+ if(a_len < padding_len) {
++ if (a_len < padding_len) {
+ DBG_871X("ParseSubframe(): a_len < padding_len !\n");
+ break;
+ }
@@ -28674,7 +24803,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ }
+ }
+
-+ for(i=0; iu.hdr.len = 0;
-+ rtw_free_recvframe(prframe, pfree_recv_queue);//free this recv_frame
-+
++ rtw_free_recvframe(prframe, pfree_recv_queue);/* free this recv_frame */
++
+ return ret;
+}
+
+int check_indicate_seq(struct recv_reorder_ctrl *preorder_ctrl, u16 seq_num);
+int check_indicate_seq(struct recv_reorder_ctrl *preorder_ctrl, u16 seq_num)
+{
-+ PADAPTER padapter = preorder_ctrl->padapter;
++ struct adapter *padapter = preorder_ctrl->padapter;
+ struct dvobj_priv *psdpriv = padapter->dvobj;
+ struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
-+ u8 wsize = preorder_ctrl->wsize_b;
-+ u16 wend = (preorder_ctrl->indicate_seq + wsize -1) & 0xFFF;//% 4096;
++ u8 wsize = preorder_ctrl->wsize_b;
++ u16 wend = (preorder_ctrl->indicate_seq + wsize -1) & 0xFFF;/* 4096; */
+
-+ // Rx Reorder initialize condition.
++ /* Rx Reorder initialize condition. */
+ if (preorder_ctrl->indicate_seq == 0xFFFF)
+ {
+ preorder_ctrl->indicate_seq = seq_num;
+ #ifdef DBG_RX_SEQ
-+ DBG_871X("DBG_RX_SEQ %s:%d init IndicateSeq: %d, NewSeq: %d\n", __FUNCTION__, __LINE__,
++ DBG_871X("DBG_RX_SEQ %s:%d init IndicateSeq: %d, NewSeq: %d\n", __func__, __LINE__,
+ preorder_ctrl->indicate_seq, seq_num);
+ #endif
+
-+ //DbgPrint("check_indicate_seq, 1st->indicate_seq=%d\n", precvpriv->indicate_seq);
++ /* DbgPrint("check_indicate_seq, 1st->indicate_seq =%d\n", precvpriv->indicate_seq); */
+ }
+
-+ //DbgPrint("enter->check_indicate_seq(): IndicateSeq: %d, NewSeq: %d\n", precvpriv->indicate_seq, seq_num);
++ /* DbgPrint("enter->check_indicate_seq(): IndicateSeq: %d, NewSeq: %d\n", precvpriv->indicate_seq, seq_num); */
+
-+ // Drop out the packet which SeqNum is smaller than WinStart
-+ if( SN_LESS(seq_num, preorder_ctrl->indicate_seq) )
++ /* Drop out the packet which SeqNum is smaller than WinStart */
++ if (SN_LESS(seq_num, preorder_ctrl->indicate_seq))
+ {
-+ //RT_TRACE(COMP_RX_REORDER, DBG_LOUD, ("CheckRxTsIndicateSeq(): Packet Drop! IndicateSeq: %d, NewSeq: %d\n", pTS->RxIndicateSeq, NewSeqNum));
-+ //DbgPrint("CheckRxTsIndicateSeq(): Packet Drop! IndicateSeq: %d, NewSeq: %d\n", precvpriv->indicate_seq, seq_num);
++ /* RT_TRACE(COMP_RX_REORDER, DBG_LOUD, ("CheckRxTsIndicateSeq(): Packet Drop! IndicateSeq: %d, NewSeq: %d\n", pTS->RxIndicateSeq, NewSeqNum)); */
++ /* DbgPrint("CheckRxTsIndicateSeq(): Packet Drop! IndicateSeq: %d, NewSeq: %d\n", precvpriv->indicate_seq, seq_num); */
+
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("%s IndicateSeq: %d > NewSeq: %d\n", __FUNCTION__,
++ DBG_871X("%s IndicateSeq: %d > NewSeq: %d\n", __func__,
+ preorder_ctrl->indicate_seq, seq_num);
+ #endif
+
@@ -28727,38 +24856,38 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ return false;
+ }
+
-+ //
-+ // Sliding window manipulation. Conditions includes:
-+ // 1. Incoming SeqNum is equal to WinStart =>Window shift 1
-+ // 2. Incoming SeqNum is larger than the WinEnd => Window shift N
-+ //
-+ if( SN_EQUAL(seq_num, preorder_ctrl->indicate_seq) )
++ /* */
++ /* Sliding window manipulation. Conditions includes: */
++ /* 1. Incoming SeqNum is equal to WinStart =>Window shift 1 */
++ /* 2. Incoming SeqNum is larger than the WinEnd => Window shift N */
++ /* */
++ if (SN_EQUAL(seq_num, preorder_ctrl->indicate_seq))
+ {
+ preorder_ctrl->indicate_seq = (preorder_ctrl->indicate_seq + 1) & 0xFFF;
+
+ #ifdef DBG_RX_SEQ
-+ DBG_871X("DBG_RX_SEQ %s:%d SN_EQUAL IndicateSeq: %d, NewSeq: %d\n", __FUNCTION__, __LINE__,
++ DBG_871X("DBG_RX_SEQ %s:%d SN_EQUAL IndicateSeq: %d, NewSeq: %d\n", __func__, __LINE__,
+ preorder_ctrl->indicate_seq, seq_num);
+ #endif
+ }
-+ else if(SN_LESS(wend, seq_num))
++ else if (SN_LESS(wend, seq_num))
+ {
-+ //RT_TRACE(COMP_RX_REORDER, DBG_LOUD, ("CheckRxTsIndicateSeq(): Window Shift! IndicateSeq: %d, NewSeq: %d\n", pTS->RxIndicateSeq, NewSeqNum));
-+ //DbgPrint("CheckRxTsIndicateSeq(): Window Shift! IndicateSeq: %d, NewSeq: %d\n", precvpriv->indicate_seq, seq_num);
++ /* RT_TRACE(COMP_RX_REORDER, DBG_LOUD, ("CheckRxTsIndicateSeq(): Window Shift! IndicateSeq: %d, NewSeq: %d\n", pTS->RxIndicateSeq, NewSeqNum)); */
++ /* DbgPrint("CheckRxTsIndicateSeq(): Window Shift! IndicateSeq: %d, NewSeq: %d\n", precvpriv->indicate_seq, seq_num); */
+
-+ // boundary situation, when seq_num cross 0xFFF
-+ if(seq_num >= (wsize - 1))
++ /* boundary situation, when seq_num cross 0xFFF */
++ if (seq_num >= (wsize - 1))
+ preorder_ctrl->indicate_seq = seq_num + 1 -wsize;
+ else
+ preorder_ctrl->indicate_seq = 0xFFF - (wsize - (seq_num + 1)) + 1;
+ pdbgpriv->dbg_rx_ampdu_window_shift_cnt++;
+ #ifdef DBG_RX_SEQ
-+ DBG_871X("DBG_RX_SEQ %s:%d SN_LESS(wend, seq_num) IndicateSeq: %d, NewSeq: %d\n", __FUNCTION__, __LINE__,
++ DBG_871X("DBG_RX_SEQ %s:%d SN_LESS(wend, seq_num) IndicateSeq: %d, NewSeq: %d\n", __func__, __LINE__,
+ preorder_ctrl->indicate_seq, seq_num);
+ #endif
+ }
+
-+ //DbgPrint("exit->check_indicate_seq(): IndicateSeq: %d, NewSeq: %d\n", precvpriv->indicate_seq, seq_num);
++ /* DbgPrint("exit->check_indicate_seq(): IndicateSeq: %d, NewSeq: %d\n", precvpriv->indicate_seq, seq_num); */
+
+ return true;
+}
@@ -28767,35 +24896,35 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+int enqueue_reorder_recvframe(struct recv_reorder_ctrl *preorder_ctrl, union recv_frame *prframe)
+{
+ struct rx_pkt_attrib *pattrib = &prframe->u.hdr.attrib;
-+ _queue *ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue;
-+ _list *phead, *plist;
++ struct __queue *ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue;
++ struct list_head *phead, *plist;
+ union recv_frame *pnextrframe;
+ struct rx_pkt_attrib *pnextattrib;
+
-+ //DbgPrint("+enqueue_reorder_recvframe()\n");
++ /* DbgPrint("+enqueue_reorder_recvframe()\n"); */
+
-+ //_enter_critical_ex(&ppending_recvframe_queue->lock, &irql);
-+ //spin_lock(&ppending_recvframe_queue->lock);
++ /* spin_lock_irqsave(&ppending_recvframe_queue->lock, irql); */
++ /* spin_lock(&ppending_recvframe_queue->lock); */
+
+
+ phead = get_list_head(ppending_recvframe_queue);
+ plist = get_next(phead);
+
-+ while(rtw_end_of_queue_search(phead, plist) == false)
++ while (phead != plist)
+ {
+ pnextrframe = LIST_CONTAINOR(plist, union recv_frame, u);
+ pnextattrib = &pnextrframe->u.hdr.attrib;
+
-+ if(SN_LESS(pnextattrib->seq_num, pattrib->seq_num))
++ if (SN_LESS(pnextattrib->seq_num, pattrib->seq_num))
+ {
+ plist = get_next(plist);
+ }
-+ else if( SN_EQUAL(pnextattrib->seq_num, pattrib->seq_num))
++ else if (SN_EQUAL(pnextattrib->seq_num, pattrib->seq_num))
+ {
-+ //Duplicate entry is found!! Do not insert current entry.
-+ //RT_TRACE(COMP_RX_REORDER, DBG_TRACE, ("InsertRxReorderList(): Duplicate packet is dropped!! IndicateSeq: %d, NewSeq: %d\n", pTS->RxIndicateSeq, SeqNum));
++ /* Duplicate entry is found!! Do not insert current entry. */
++ /* RT_TRACE(COMP_RX_REORDER, DBG_TRACE, ("InsertRxReorderList(): Duplicate packet is dropped!! IndicateSeq: %d, NewSeq: %d\n", pTS->RxIndicateSeq, SeqNum)); */
+
-+ //_exit_critical_ex(&ppending_recvframe_queue->lock, &irql);
++ /* spin_unlock_irqrestore(&ppending_recvframe_queue->lock, irql); */
+
+ return false;
+ }
@@ -28804,23 +24933,23 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ break;
+ }
+
-+ //DbgPrint("enqueue_reorder_recvframe():while\n");
++ /* DbgPrint("enqueue_reorder_recvframe():while\n"); */
+
+ }
+
+
-+ //_enter_critical_ex(&ppending_recvframe_queue->lock, &irql);
-+ //spin_lock(&ppending_recvframe_queue->lock);
++ /* spin_lock_irqsave(&ppending_recvframe_queue->lock, irql); */
++ /* spin_lock(&ppending_recvframe_queue->lock); */
+
-+ rtw_list_delete(&(prframe->u.hdr.list));
++ list_del_init(&(prframe->u.hdr.list));
+
-+ rtw_list_insert_tail(&(prframe->u.hdr.list), plist);
++ list_add_tail(&(prframe->u.hdr.list), plist);
+
-+ //spin_unlock(&ppending_recvframe_queue->lock);
-+ //_exit_critical_ex(&ppending_recvframe_queue->lock, &irql);
++ /* spin_unlock(&ppending_recvframe_queue->lock); */
++ /* spin_unlock_irqrestore(&ppending_recvframe_queue->lock, irql); */
+
+
-+ //RT_TRACE(COMP_RX_REORDER, DBG_TRACE, ("InsertRxReorderList(): Pkt insert into buffer!! IndicateSeq: %d, NewSeq: %d\n", pTS->RxIndicateSeq, SeqNum));
++ /* RT_TRACE(COMP_RX_REORDER, DBG_TRACE, ("InsertRxReorderList(): Pkt insert into buffer!! IndicateSeq: %d, NewSeq: %d\n", pTS->RxIndicateSeq, SeqNum)); */
+ return true;
+
+}
@@ -28828,7 +24957,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+void recv_indicatepkts_pkt_loss_cnt(struct debug_priv *pdbgpriv, u64 prev_seq, u64 current_seq);
+void recv_indicatepkts_pkt_loss_cnt(struct debug_priv *pdbgpriv, u64 prev_seq, u64 current_seq)
+{
-+ if(current_seq < prev_seq)
++ if (current_seq < prev_seq)
+ {
+ pdbgpriv->dbg_rx_ampdu_loss_count+= (4096 + current_seq - prev_seq);
+
@@ -28838,115 +24967,113 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ pdbgpriv->dbg_rx_ampdu_loss_count+= (current_seq - prev_seq);
+ }
+}
-+int recv_indicatepkts_in_order(_adapter *padapter, struct recv_reorder_ctrl *preorder_ctrl, int bforced);
-+int recv_indicatepkts_in_order(_adapter *padapter, struct recv_reorder_ctrl *preorder_ctrl, int bforced)
++int recv_indicatepkts_in_order(struct adapter *padapter, struct recv_reorder_ctrl *preorder_ctrl, int bforced);
++int recv_indicatepkts_in_order(struct adapter *padapter, struct recv_reorder_ctrl *preorder_ctrl, int bforced)
+{
-+ //_irqL irql;
-+ //u8 bcancelled;
-+ _list *phead, *plist;
++ struct list_head *phead, *plist;
+ union recv_frame *prframe;
+ struct rx_pkt_attrib *pattrib;
-+ //u8 index = 0;
++ /* u8 index = 0; */
+ int bPktInBuf = false;
+ struct recv_priv *precvpriv = &padapter->recvpriv;
-+ _queue *ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue;
++ struct __queue *ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue;
+ struct dvobj_priv *psdpriv = padapter->dvobj;
+ struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
+
+ DBG_COUNTER(padapter->rx_logs.core_rx_post_indicate_in_oder);
+
-+ //DbgPrint("+recv_indicatepkts_in_order\n");
++ /* DbgPrint("+recv_indicatepkts_in_order\n"); */
+
-+ //_enter_critical_ex(&ppending_recvframe_queue->lock, &irql);
-+ //spin_lock(&ppending_recvframe_queue->lock);
++ /* spin_lock_irqsave(&ppending_recvframe_queue->lock, irql); */
++ /* spin_lock(&ppending_recvframe_queue->lock); */
+
-+ phead = get_list_head(ppending_recvframe_queue);
++ phead = get_list_head(ppending_recvframe_queue);
+ plist = get_next(phead);
+
-+ // Handling some condition for forced indicate case.
-+ if(bforced==true)
++ /* Handling some condition for forced indicate case. */
++ if (bforced ==true)
+ {
+ pdbgpriv->dbg_rx_ampdu_forced_indicate_count++;
-+ if(rtw_is_list_empty(phead))
++ if (list_empty(phead))
+ {
-+ // _exit_critical_ex(&ppending_recvframe_queue->lock, &irql);
-+ //spin_unlock(&ppending_recvframe_queue->lock);
++ /* spin_unlock_irqrestore(&ppending_recvframe_queue->lock, irql); */
++ /* spin_unlock(&ppending_recvframe_queue->lock); */
+ return true;
+ }
-+
-+ prframe = LIST_CONTAINOR(plist, union recv_frame, u);
-+ pattrib = &prframe->u.hdr.attrib;
+
-+ #ifdef DBG_RX_SEQ
-+ DBG_871X("DBG_RX_SEQ %s:%d IndicateSeq: %d, NewSeq: %d\n", __FUNCTION__, __LINE__,
-+ preorder_ctrl->indicate_seq, pattrib->seq_num);
-+ #endif
-+ recv_indicatepkts_pkt_loss_cnt(pdbgpriv,preorder_ctrl->indicate_seq,pattrib->seq_num);
-+ preorder_ctrl->indicate_seq = pattrib->seq_num;
-+
-+ }
-+
-+ // Prepare indication list and indication.
-+ // Check if there is any packet need indicate.
-+ while(!rtw_is_list_empty(phead))
-+ {
-+
+ prframe = LIST_CONTAINOR(plist, union recv_frame, u);
+ pattrib = &prframe->u.hdr.attrib;
+
-+ if(!SN_LESS(preorder_ctrl->indicate_seq, pattrib->seq_num))
++ #ifdef DBG_RX_SEQ
++ DBG_871X("DBG_RX_SEQ %s:%d IndicateSeq: %d, NewSeq: %d\n", __func__, __LINE__,
++ preorder_ctrl->indicate_seq, pattrib->seq_num);
++ #endif
++ recv_indicatepkts_pkt_loss_cnt(pdbgpriv, preorder_ctrl->indicate_seq, pattrib->seq_num);
++ preorder_ctrl->indicate_seq = pattrib->seq_num;
++
++ }
++
++ /* Prepare indication list and indication. */
++ /* Check if there is any packet need indicate. */
++ while (!list_empty(phead))
++ {
++
++ prframe = LIST_CONTAINOR(plist, union recv_frame, u);
++ pattrib = &prframe->u.hdr.attrib;
++
++ if (!SN_LESS(preorder_ctrl->indicate_seq, pattrib->seq_num))
+ {
+ RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_,
-+ ("recv_indicatepkts_in_order: indicate=%d seq=%d amsdu=%d\n",
++ ("recv_indicatepkts_in_order: indicate =%d seq =%d amsdu =%d\n",
+ preorder_ctrl->indicate_seq, pattrib->seq_num, pattrib->amsdu));
+
+ plist = get_next(plist);
-+ rtw_list_delete(&(prframe->u.hdr.list));
++ list_del_init(&(prframe->u.hdr.list));
+
-+ if(SN_EQUAL(preorder_ctrl->indicate_seq, pattrib->seq_num))
++ if (SN_EQUAL(preorder_ctrl->indicate_seq, pattrib->seq_num))
+ {
+ preorder_ctrl->indicate_seq = (preorder_ctrl->indicate_seq + 1) & 0xFFF;
+ #ifdef DBG_RX_SEQ
-+ DBG_871X("DBG_RX_SEQ %s:%d IndicateSeq: %d, NewSeq: %d\n", __FUNCTION__, __LINE__,
++ DBG_871X("DBG_RX_SEQ %s:%d IndicateSeq: %d, NewSeq: %d\n", __func__, __LINE__,
+ preorder_ctrl->indicate_seq, pattrib->seq_num);
+ #endif
+ }
+
-+ //Set this as a lock to make sure that only one thread is indicating packet.
-+ //pTS->RxIndicateState = RXTS_INDICATE_PROCESSING;
++ /* Set this as a lock to make sure that only one thread is indicating packet. */
++ /* pTS->RxIndicateState = RXTS_INDICATE_PROCESSING; */
+
-+ // Indicate packets
-+ //RT_ASSERT((index<=REORDER_WIN_SIZE), ("RxReorderIndicatePacket(): Rx Reorder buffer full!! \n"));
++ /* Indicate packets */
++ /* RT_ASSERT((index<=REORDER_WIN_SIZE), ("RxReorderIndicatePacket(): Rx Reorder buffer full!!\n")); */
+
+
-+ //indicate this recv_frame
-+ //DbgPrint("recv_indicatepkts_in_order, indicate_seq=%d, seq_num=%d\n", precvpriv->indicate_seq, pattrib->seq_num);
-+ if(!pattrib->amsdu)
++ /* indicate this recv_frame */
++ /* DbgPrint("recv_indicatepkts_in_order, indicate_seq =%d, seq_num =%d\n", precvpriv->indicate_seq, pattrib->seq_num); */
++ if (!pattrib->amsdu)
+ {
-+ //DBG_871X("recv_indicatepkts_in_order, amsdu!=1, indicate_seq=%d, seq_num=%d\n", preorder_ctrl->indicate_seq, pattrib->seq_num);
++ /* DBG_871X("recv_indicatepkts_in_order, amsdu!= 1, indicate_seq =%d, seq_num =%d\n", preorder_ctrl->indicate_seq, pattrib->seq_num); */
+
+ if ((padapter->bDriverStopped == false) &&
+ (padapter->bSurpriseRemoved == false))
+ {
-+
-+ rtw_recv_indicatepkt(padapter, prframe);//indicate this recv_frame
-+
++
++ rtw_recv_indicatepkt(padapter, prframe);/* indicate this recv_frame */
++
+ }
+ }
-+ else if(pattrib->amsdu==1)
++ else if (pattrib->amsdu == 1)
+ {
-+ if(amsdu_to_msdu(padapter, prframe)!=_SUCCESS)
++ if (amsdu_to_msdu(padapter, prframe)!= _SUCCESS)
+ {
+ rtw_free_recvframe(prframe, &precvpriv->free_recv_queue);
+ }
+ }
+ else
+ {
-+ //error condition;
++ /* error condition; */
+ }
+
+
-+ //Update local variables.
++ /* Update local variables. */
+ bPktInBuf = false;
+
+ }
@@ -28956,102 +25083,80 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ break;
+ }
+
-+ //DbgPrint("recv_indicatepkts_in_order():while\n");
++ /* DbgPrint("recv_indicatepkts_in_order():while\n"); */
+
+ }
+
-+ //spin_unlock(&ppending_recvframe_queue->lock);
-+ //_exit_critical_ex(&ppending_recvframe_queue->lock, &irql);
++ /* spin_unlock(&ppending_recvframe_queue->lock); */
++ /* spin_unlock_irqrestore(&ppending_recvframe_queue->lock, irql); */
+
-+/*
-+ //Release the indication lock and set to new indication step.
-+ if(bPktInBuf)
-+ {
-+ // Set new pending timer.
-+ //pTS->RxIndicateState = RXTS_INDICATE_REORDER;
-+ //PlatformSetTimer(Adapter, &pTS->RxPktPendingTimer, pHTInfo->RxReorderPendingTime);
-+ //DBG_871X("_set_timer(&preorder_ctrl->reordering_ctrl_timer, REORDER_WAIT_TIME)\n");
-+ _set_timer(&preorder_ctrl->reordering_ctrl_timer, REORDER_WAIT_TIME);
-+ }
-+ else
-+ {
-+ //pTS->RxIndicateState = RXTS_INDICATE_IDLE;
-+ }
-+*/
-+ //_exit_critical_ex(&ppending_recvframe_queue->lock, &irql);
-+
-+ //return true;
+ return bPktInBuf;
-+
+}
+
-+int recv_indicatepkt_reorder(_adapter *padapter, union recv_frame *prframe);
-+int recv_indicatepkt_reorder(_adapter *padapter, union recv_frame *prframe)
++int recv_indicatepkt_reorder(struct adapter *padapter, union recv_frame *prframe);
++int recv_indicatepkt_reorder(struct adapter *padapter, union recv_frame *prframe)
+{
-+ _irqL irql;
+ int retval = _SUCCESS;
+ struct rx_pkt_attrib *pattrib = &prframe->u.hdr.attrib;
+ struct recv_reorder_ctrl *preorder_ctrl = prframe->u.hdr.preorder_ctrl;
-+ _queue *ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue;
++ struct __queue *ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue;
+ struct dvobj_priv *psdpriv = padapter->dvobj;
+ struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
+
+ DBG_COUNTER(padapter->rx_logs.core_rx_post_indicate_reoder);
+
-+ if(!pattrib->amsdu)
++ if (!pattrib->amsdu)
+ {
-+ //s1.
++ /* s1. */
+ wlanhdr_to_ethhdr(prframe);
+
-+ //if ((pattrib->qos!=1) /*|| pattrib->priority!=0 || IS_MCAST(pattrib->ra)*/
-+ // || (pattrib->eth_type==0x0806) || (pattrib->ack_policy!=0))
-+ if (pattrib->qos!=1)
++ if (pattrib->qos!= 1)
+ {
+ if ((padapter->bDriverStopped == false) &&
+ (padapter->bSurpriseRemoved == false))
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("@@@@ recv_indicatepkt_reorder -recv_func recv_indicatepkt\n" ));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("@@@@ recv_indicatepkt_reorder -recv_func recv_indicatepkt\n"));
+
+ rtw_recv_indicatepkt(padapter, prframe);
+ return _SUCCESS;
+
+ }
-+
++
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME %s pattrib->qos !=1\n", __FUNCTION__);
++ DBG_871X("DBG_RX_DROP_FRAME %s pattrib->qos != 1\n", __func__);
+ #endif
-+
++
+ return _FAIL;
-+
++
+ }
+
+ if (preorder_ctrl->enable == false)
+ {
-+ //indicate this recv_frame
++ /* indicate this recv_frame */
+ preorder_ctrl->indicate_seq = pattrib->seq_num;
+ #ifdef DBG_RX_SEQ
-+ DBG_871X("DBG_RX_SEQ %s:%d IndicateSeq: %d, NewSeq: %d\n", __FUNCTION__, __LINE__,
++ DBG_871X("DBG_RX_SEQ %s:%d IndicateSeq: %d, NewSeq: %d\n", __func__, __LINE__,
+ preorder_ctrl->indicate_seq, pattrib->seq_num);
+ #endif
-+
-+ rtw_recv_indicatepkt(padapter, prframe);
-+
++
++ rtw_recv_indicatepkt(padapter, prframe);
++
+ preorder_ctrl->indicate_seq = (preorder_ctrl->indicate_seq + 1)%4096;
+ #ifdef DBG_RX_SEQ
-+ DBG_871X("DBG_RX_SEQ %s:%d IndicateSeq: %d, NewSeq: %d\n", __FUNCTION__, __LINE__,
++ DBG_871X("DBG_RX_SEQ %s:%d IndicateSeq: %d, NewSeq: %d\n", __func__, __LINE__,
+ preorder_ctrl->indicate_seq, pattrib->seq_num);
+ #endif
-+
-+ return _SUCCESS;
-+ }
++
++ return _SUCCESS;
++ }
+ }
-+ else if(pattrib->amsdu==1) //temp filter -> means didn't support A-MSDUs in a A-MPDU
++ else if (pattrib->amsdu == 1) /* temp filter -> means didn't support A-MSDUs in a A-MPDU */
+ {
+ if (preorder_ctrl->enable == false)
+ {
+ preorder_ctrl->indicate_seq = pattrib->seq_num;
+ #ifdef DBG_RX_SEQ
-+ DBG_871X("DBG_RX_SEQ %s:%d IndicateSeq: %d, NewSeq: %d\n", __FUNCTION__, __LINE__,
++ DBG_871X("DBG_RX_SEQ %s:%d IndicateSeq: %d, NewSeq: %d\n", __func__, __LINE__,
+ preorder_ctrl->indicate_seq, pattrib->seq_num);
+ #endif
+
@@ -29059,13 +25164,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+ preorder_ctrl->indicate_seq = (preorder_ctrl->indicate_seq + 1)%4096;
+ #ifdef DBG_RX_SEQ
-+ DBG_871X("DBG_RX_SEQ %s:%d IndicateSeq: %d, NewSeq: %d\n", __FUNCTION__, __LINE__,
++ DBG_871X("DBG_RX_SEQ %s:%d IndicateSeq: %d, NewSeq: %d\n", __func__, __LINE__,
+ preorder_ctrl->indicate_seq, pattrib->seq_num);
+ #endif
+
-+ if(retval != _SUCCESS){
++ if (retval != _SUCCESS) {
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME %s amsdu_to_msdu fail\n", __FUNCTION__);
++ DBG_871X("DBG_RX_DROP_FRAME %s amsdu_to_msdu fail\n", __func__);
+ #endif
+ }
+
@@ -29073,69 +25178,63 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ }
+ }
+
-+ _enter_critical_bh(&ppending_recvframe_queue->lock, &irql);
++ spin_lock_bh(&ppending_recvframe_queue->lock);
+
+ RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_,
-+ ("recv_indicatepkt_reorder: indicate=%d seq=%d\n",
++ ("recv_indicatepkt_reorder: indicate =%d seq =%d\n",
+ preorder_ctrl->indicate_seq, pattrib->seq_num));
+
-+ //s2. check if winstart_b(indicate_seq) needs to been updated
-+ if(!check_indicate_seq(preorder_ctrl, pattrib->seq_num))
++ /* s2. check if winstart_b(indicate_seq) needs to been updated */
++ if (!check_indicate_seq(preorder_ctrl, pattrib->seq_num))
+ {
+ pdbgpriv->dbg_rx_ampdu_drop_count++;
-+ //pHTInfo->RxReorderDropCounter++;
-+ //ReturnRFDList(Adapter, pRfd);
-+ //RT_TRACE(COMP_RX_REORDER, DBG_TRACE, ("RxReorderIndicatePacket() ==> Packet Drop!!\n"));
-+ //_exit_critical_ex(&ppending_recvframe_queue->lock, &irql);
-+ //return _FAIL;
-+
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME %s check_indicate_seq fail\n", __FUNCTION__);
++ DBG_871X("DBG_RX_DROP_FRAME %s check_indicate_seq fail\n", __func__);
+ #endif
+ goto _err_exit;
+ }
+
+
-+ //s3. Insert all packet into Reorder Queue to maintain its ordering.
-+ if(!enqueue_reorder_recvframe(preorder_ctrl, prframe))
++ /* s3. Insert all packet into Reorder Queue to maintain its ordering. */
++ if (!enqueue_reorder_recvframe(preorder_ctrl, prframe))
+ {
-+ //DbgPrint("recv_indicatepkt_reorder, enqueue_reorder_recvframe fail!\n");
-+ //_exit_critical_ex(&ppending_recvframe_queue->lock, &irql);
-+ //return _FAIL;
++ /* DbgPrint("recv_indicatepkt_reorder, enqueue_reorder_recvframe fail!\n"); */
++ /* spin_unlock_irqrestore(&ppending_recvframe_queue->lock, irql); */
++ /* return _FAIL; */
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME %s enqueue_reorder_recvframe fail\n", __FUNCTION__);
++ DBG_871X("DBG_RX_DROP_FRAME %s enqueue_reorder_recvframe fail\n", __func__);
+ #endif
+ goto _err_exit;
+ }
+
+
-+ //s4.
-+ // Indication process.
-+ // After Packet dropping and Sliding Window shifting as above, we can now just indicate the packets
-+ // with the SeqNum smaller than latest WinStart and buffer other packets.
-+ //
-+ // For Rx Reorder condition:
-+ // 1. All packets with SeqNum smaller than WinStart => Indicate
-+ // 2. All packets with SeqNum larger than or equal to WinStart => Buffer it.
-+ //
++ /* s4. */
++ /* Indication process. */
++ /* After Packet dropping and Sliding Window shifting as above, we can now just indicate the packets */
++ /* with the SeqNum smaller than latest WinStart and buffer other packets. */
++ /* */
++ /* For Rx Reorder condition: */
++ /* 1. All packets with SeqNum smaller than WinStart => Indicate */
++ /* 2. All packets with SeqNum larger than or equal to WinStart => Buffer it. */
++ /* */
+
-+ //recv_indicatepkts_in_order(padapter, preorder_ctrl, true);
-+ if(recv_indicatepkts_in_order(padapter, preorder_ctrl, false)==true)
++ /* recv_indicatepkts_in_order(padapter, preorder_ctrl, true); */
++ if (recv_indicatepkts_in_order(padapter, preorder_ctrl, false) ==true)
+ {
+ _set_timer(&preorder_ctrl->reordering_ctrl_timer, REORDER_WAIT_TIME);
-+ _exit_critical_bh(&ppending_recvframe_queue->lock, &irql);
++ spin_unlock_bh(&ppending_recvframe_queue->lock);
+ }
+ else
+ {
-+ _exit_critical_bh(&ppending_recvframe_queue->lock, &irql);
-+ _cancel_timer_ex(&preorder_ctrl->reordering_ctrl_timer);
++ spin_unlock_bh(&ppending_recvframe_queue->lock);
++ del_timer_sync(&preorder_ctrl->reordering_ctrl_timer);
+ }
+
+ return _SUCCESS;
+
+_err_exit:
+
-+ _exit_critical_bh(&ppending_recvframe_queue->lock, &irql);
++ spin_unlock_bh(&ppending_recvframe_queue->lock);
+
+ return _FAIL;
+}
@@ -29143,51 +25242,50 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+void rtw_reordering_ctrl_timeout_handler(void *pcontext)
+{
-+ _irqL irql;
+ struct recv_reorder_ctrl *preorder_ctrl = (struct recv_reorder_ctrl *)pcontext;
-+ _adapter *padapter = preorder_ctrl->padapter;
-+ _queue *ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue;
++ struct adapter *padapter = preorder_ctrl->padapter;
++ struct __queue *ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue;
+
+
-+ if(padapter->bDriverStopped ||padapter->bSurpriseRemoved)
++ if (padapter->bDriverStopped ||padapter->bSurpriseRemoved)
+ {
+ return;
+ }
+
-+ //DBG_871X("+rtw_reordering_ctrl_timeout_handler()=>\n");
++ /* DBG_871X("+rtw_reordering_ctrl_timeout_handler() =>\n"); */
+
-+ _enter_critical_bh(&ppending_recvframe_queue->lock, &irql);
++ spin_lock_bh(&ppending_recvframe_queue->lock);
+
-+ if(recv_indicatepkts_in_order(padapter, preorder_ctrl, true)==true)
++ if (recv_indicatepkts_in_order(padapter, preorder_ctrl, true) ==true)
+ {
-+ _set_timer(&preorder_ctrl->reordering_ctrl_timer, REORDER_WAIT_TIME);
++ _set_timer(&preorder_ctrl->reordering_ctrl_timer, REORDER_WAIT_TIME);
+ }
+
-+ _exit_critical_bh(&ppending_recvframe_queue->lock, &irql);
++ spin_unlock_bh(&ppending_recvframe_queue->lock);
+
+}
+
-+int process_recv_indicatepkts(_adapter *padapter, union recv_frame *prframe);
-+int process_recv_indicatepkts(_adapter *padapter, union recv_frame *prframe)
++int process_recv_indicatepkts(struct adapter *padapter, union recv_frame *prframe);
++int process_recv_indicatepkts(struct adapter *padapter, union recv_frame *prframe)
+{
+ int retval = _SUCCESS;
-+ //struct recv_priv *precvpriv = &padapter->recvpriv;
-+ //struct rx_pkt_attrib *pattrib = &prframe->u.hdr.attrib;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
-+
++ /* struct recv_priv *precvpriv = &padapter->recvpriv; */
++ /* struct rx_pkt_attrib *pattrib = &prframe->u.hdr.attrib; */
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
++
+ DBG_COUNTER(padapter->rx_logs.core_rx_post_indicate);
+
-+ if(phtpriv->ht_option==true) //B/G/N Mode
++ if (phtpriv->ht_option ==true) /* B/G/N Mode */
+ {
-+ //prframe->u.hdr.preorder_ctrl = &precvpriv->recvreorder_ctrl[pattrib->priority];
++ /* prframe->u.hdr.preorder_ctrl = &precvpriv->recvreorder_ctrl[pattrib->priority]; */
+
-+ if(recv_indicatepkt_reorder(padapter, prframe)!=_SUCCESS)// including perform A-MPDU Rx Ordering Buffer Control
++ if (recv_indicatepkt_reorder(padapter, prframe)!= _SUCCESS)/* including perform A-MPDU Rx Ordering Buffer Control */
+ {
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME %s recv_indicatepkt_reorder error!\n", __FUNCTION__);
++ DBG_871X("DBG_RX_DROP_FRAME %s recv_indicatepkt_reorder error!\n", __func__);
+ #endif
-+
++
+ if ((padapter->bDriverStopped == false) &&
+ (padapter->bSurpriseRemoved == false))
+ {
@@ -29196,29 +25294,29 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ }
+ }
+ }
-+ else //B/G mode
++ else /* B/G mode */
+ {
-+ retval=wlanhdr_to_ethhdr (prframe);
-+ if(retval != _SUCCESS)
++ retval =wlanhdr_to_ethhdr (prframe);
++ if (retval != _SUCCESS)
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("wlanhdr_to_ethhdr: drop pkt \n"));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("wlanhdr_to_ethhdr: drop pkt\n"));
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME %s wlanhdr_to_ethhdr error!\n", __FUNCTION__);
++ DBG_871X("DBG_RX_DROP_FRAME %s wlanhdr_to_ethhdr error!\n", __func__);
+ #endif
+ return retval;
+ }
+
-+ if ((padapter->bDriverStopped ==false)&&( padapter->bSurpriseRemoved==false))
++ if ((padapter->bDriverStopped ==false) && (padapter->bSurpriseRemoved ==false))
+ {
-+ //indicate this recv_frame
-+ RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("@@@@ process_recv_indicatepkts- recv_func recv_indicatepkt\n" ));
++ /* indicate this recv_frame */
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("@@@@ process_recv_indicatepkts- recv_func recv_indicatepkt\n"));
+ rtw_recv_indicatepkt(padapter, prframe);
+
+
+ }
+ else
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("@@@@ process_recv_indicatepkts- recv_func free_indicatepkt\n" ));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("@@@@ process_recv_indicatepkts- recv_func free_indicatepkt\n"));
+
+ RT_TRACE(_module_rtl871x_recv_c_, _drv_notice_, ("recv_func:bDriverStopped(%d) OR bSurpriseRemoved(%d)", padapter->bDriverStopped, padapter->bSurpriseRemoved));
+ retval = _FAIL;
@@ -29231,21 +25329,19 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+}
+
-+static int recv_func_prehandle(_adapter *padapter, union recv_frame *rframe)
++static int recv_func_prehandle(struct adapter *padapter, union recv_frame *rframe)
+{
+ int ret = _SUCCESS;
-+ struct rx_pkt_attrib *pattrib = &rframe->u.hdr.attrib;
-+ struct recv_priv *precvpriv = &padapter->recvpriv;
-+ _queue *pfree_recv_queue = &padapter->recvpriv.free_recv_queue;
++ struct __queue *pfree_recv_queue = &padapter->recvpriv.free_recv_queue;
+
+ DBG_COUNTER(padapter->rx_logs.core_rx_pre);
+
-+ //check the frame crtl field and decache
++ /* check the frame crtl field and decache */
+ ret = validate_recv_frame(padapter, rframe);
+ if (ret != _SUCCESS)
+ {
+ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("recv_func: validate_recv_frame fail! drop pkt\n"));
-+ rtw_free_recvframe(rframe, pfree_recv_queue);//free this recv_frame
++ rtw_free_recvframe(rframe, pfree_recv_queue);/* free this recv_frame */
+ goto exit;
+ }
+
@@ -29253,24 +25349,20 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ return ret;
+}
+
-+static int recv_func_posthandle(_adapter *padapter, union recv_frame *prframe)
++static int recv_func_posthandle(struct adapter *padapter, union recv_frame *prframe)
+{
+ int ret = _SUCCESS;
+ union recv_frame *orig_prframe = prframe;
-+ struct rx_pkt_attrib *pattrib = &prframe->u.hdr.attrib;
+ struct recv_priv *precvpriv = &padapter->recvpriv;
-+ _queue *pfree_recv_queue = &padapter->recvpriv.free_recv_queue;
++ struct __queue *pfree_recv_queue = &padapter->recvpriv.free_recv_queue;
+
+ DBG_COUNTER(padapter->rx_logs.core_rx_post);
+
-+ // DATA FRAME
-+ rtw_led_control(padapter, LED_CTL_RX);
-+
+ prframe = decryptor(padapter, prframe);
+ if (prframe == NULL) {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("decryptor: drop pkt\n"));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("decryptor: drop pkt\n"));
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME %s decryptor: drop pkt\n", __FUNCTION__);
++ DBG_871X("DBG_RX_DROP_FRAME %s decryptor: drop pkt\n", __func__);
+ #endif
+ ret = _FAIL;
+ DBG_COUNTER(padapter->rx_logs.core_rx_post_decrypt_err);
@@ -29278,20 +25370,20 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ }
+
+ prframe = recvframe_chk_defrag(padapter, prframe);
-+ if(prframe==NULL) {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("recvframe_chk_defrag: drop pkt\n"));
++ if (prframe == NULL) {
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("recvframe_chk_defrag: drop pkt\n"));
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME %s recvframe_chk_defrag: drop pkt\n", __FUNCTION__);
++ DBG_871X("DBG_RX_DROP_FRAME %s recvframe_chk_defrag: drop pkt\n", __func__);
+ #endif
+ DBG_COUNTER(padapter->rx_logs.core_rx_post_defrag_err);
-+ goto _recv_data_drop;
++ goto _recv_data_drop;
+ }
+
-+ prframe=portctrl(padapter, prframe);
++ prframe =portctrl(padapter, prframe);
+ if (prframe == NULL) {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("portctrl: drop pkt \n"));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("portctrl: drop pkt\n"));
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME %s portctrl: drop pkt\n", __FUNCTION__);
++ DBG_871X("DBG_RX_DROP_FRAME %s portctrl: drop pkt\n", __func__);
+ #endif
+ ret = _FAIL;
+ DBG_COUNTER(padapter->rx_logs.core_rx_post_portctrl_err);
@@ -29300,18 +25392,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+ count_rx_stats(padapter, prframe, NULL);
+
-+#ifdef CONFIG_WAPI_SUPPORT
-+ rtw_wapi_update_info(padapter, prframe);
-+#endif
-+
+ ret = process_recv_indicatepkts(padapter, prframe);
+ if (ret != _SUCCESS)
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("recv_func: process_recv_indicatepkts fail! \n"));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("recv_func: process_recv_indicatepkts fail!\n"));
+ #ifdef DBG_RX_DROP_FRAME
-+ DBG_871X("DBG_RX_DROP_FRAME %s process_recv_indicatepkts fail!\n", __FUNCTION__);
++ DBG_871X("DBG_RX_DROP_FRAME %s process_recv_indicatepkts fail!\n", __func__);
+ #endif
-+ rtw_free_recvframe(orig_prframe, pfree_recv_queue);//free this recv_frame
++ rtw_free_recvframe(orig_prframe, pfree_recv_queue);/* free this recv_frame */
+ DBG_COUNTER(padapter->rx_logs.core_rx_post_indicate_err);
+ goto _recv_data_drop;
+ }
@@ -29322,13 +25410,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+}
+
+
-+int recv_func(_adapter *padapter, union recv_frame *rframe);
-+int recv_func(_adapter *padapter, union recv_frame *rframe)
++int recv_func(struct adapter *padapter, union recv_frame *rframe);
++int recv_func(struct adapter *padapter, union recv_frame *rframe)
+{
+ int ret;
+ struct rx_pkt_attrib *prxattrib = &rframe->u.hdr.attrib;
+ struct recv_priv *recvpriv = &padapter->recvpriv;
-+ struct security_priv *psecuritypriv=&padapter->securitypriv;
++ struct security_priv *psecuritypriv =&padapter->securitypriv;
+ struct mlme_priv *mlmepriv = &padapter->mlmepriv;
+
+ /* check if need to handle uc_swdec_pending_queue*/
@@ -29337,7 +25425,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ union recv_frame *pending_frame;
+ int cnt = 0;
+
-+ while((pending_frame=rtw_alloc_recvframe(&padapter->recvpriv.uc_swdec_pending_queue))) {
++ while ((pending_frame =rtw_alloc_recvframe(&padapter->recvpriv.uc_swdec_pending_queue))) {
+ cnt++;
+ DBG_COUNTER(padapter->rx_logs.core_rx_dequeue);
+ recv_func_posthandle(padapter, pending_frame);
@@ -29351,8 +25439,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ DBG_COUNTER(padapter->rx_logs.core_rx);
+ ret = recv_func_prehandle(padapter, rframe);
+
-+ if(ret == _SUCCESS) {
-+
++ if (ret == _SUCCESS) {
++
+ /* check if need to enqueue into uc_swdec_pending_queue*/
+ if (check_fwstate(mlmepriv, WIFI_STATION_STATE) &&
+ !IS_MCAST(prxattrib->ra) && prxattrib->encrypt>0 &&
@@ -29362,7 +25450,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ {
+ DBG_COUNTER(padapter->rx_logs.core_rx_enqueue);
+ rtw_enqueue_recvframe(rframe, &padapter->recvpriv.uc_swdec_pending_queue);
-+ //DBG_871X("%s: no key, enqueue uc_swdec_pending_queue\n", __func__);
++ /* DBG_871X("%s: no key, enqueue uc_swdec_pending_queue\n", __func__); */
+
+ if (recvpriv->free_recvframe_cnt < NR_RECVFRAME/4) {
+ /* to prevent from recvframe starvation, get recvframe from uc_swdec_pending_queue to free_recvframe_cnt */
@@ -29384,13 +25472,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+s32 rtw_recv_entry(union recv_frame *precvframe)
+{
-+ _adapter *padapter;
++ struct adapter *padapter;
+ struct recv_priv *precvpriv;
-+ s32 ret=_SUCCESS;
++ s32 ret = _SUCCESS;
+
-+_func_enter_;
-+
-+// RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("+rtw_recv_entry\n"));
++/* RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("+rtw_recv_entry\n")); */
+
+ padapter = precvframe->u.hdr.adapter;
+
@@ -29399,54 +25485,50 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+ if ((ret = recv_func(padapter, precvframe)) == _FAIL)
+ {
-+ RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("rtw_recv_entry: recv_func return fail!!!\n"));
++ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("rtw_recv_entry: recv_func return fail!!!\n"));
+ goto _recv_entry_drop;
+ }
+
+
+ precvpriv->rx_pkts++;
+
-+_func_exit_;
-+
+ return ret;
+
+_recv_entry_drop:
+
-+ //RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("_recv_entry_drop\n"));
-+
-+_func_exit_;
++ /* RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("_recv_entry_drop\n")); */
+
+ return ret;
+}
+
-+void rtw_signal_stat_timer_hdl(RTW_TIMER_HDL_ARGS){
-+ _adapter *adapter = (_adapter *)FunctionContext;
++void rtw_signal_stat_timer_hdl(RTW_TIMER_HDL_ARGS) {
++ struct adapter *adapter = (struct adapter *)FunctionContext;
+ struct recv_priv *recvpriv = &adapter->recvpriv;
-+
++
+ u32 tmp_s, tmp_q;
+ u8 avg_signal_strength = 0;
+ u8 avg_signal_qual = 0;
+ u32 num_signal_strength = 0;
+ u32 num_signal_qual = 0;
-+ u8 _alpha = 5; // this value is based on converging_constant = 5000 and sampling_interval = 1000
++ u8 _alpha = 5; /* this value is based on converging_constant = 5000 and sampling_interval = 1000 */
+
-+ if(adapter->recvpriv.is_signal_dbg) {
-+ //update the user specific value, signal_strength_dbg, to signal_strength, rssi
-+ adapter->recvpriv.signal_strength= adapter->recvpriv.signal_strength_dbg;
-+ adapter->recvpriv.rssi=(s8)translate_percentage_to_dbm((u8)adapter->recvpriv.signal_strength_dbg);
++ if (adapter->recvpriv.is_signal_dbg) {
++ /* update the user specific value, signal_strength_dbg, to signal_strength, rssi */
++ adapter->recvpriv.signal_strength = adapter->recvpriv.signal_strength_dbg;
++ adapter->recvpriv.rssi =(s8)translate_percentage_to_dbm((u8)adapter->recvpriv.signal_strength_dbg);
+ } else {
+
-+ if(recvpriv->signal_strength_data.update_req == 0) {// update_req is clear, means we got rx
++ if (recvpriv->signal_strength_data.update_req == 0) {/* update_req is clear, means we got rx */
+ avg_signal_strength = recvpriv->signal_strength_data.avg_val;
+ num_signal_strength = recvpriv->signal_strength_data.total_num;
-+ // after avg_vals are accquired, we can re-stat the signal values
++ /* after avg_vals are accquired, we can re-stat the signal values */
+ recvpriv->signal_strength_data.update_req = 1;
+ }
-+
-+ if(recvpriv->signal_qual_data.update_req == 0) {// update_req is clear, means we got rx
++
++ if (recvpriv->signal_qual_data.update_req == 0) {/* update_req is clear, means we got rx */
+ avg_signal_qual = recvpriv->signal_qual_data.avg_val;
+ num_signal_qual = recvpriv->signal_qual_data.total_num;
-+ // after avg_vals are accquired, we can re-stat the signal values
++ /* after avg_vals are accquired, we can re-stat the signal values */
+ recvpriv->signal_qual_data.update_req = 1;
+ }
+
@@ -29458,27 +25540,27 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+ }
+ }
+
-+ if(check_fwstate(&adapter->mlmepriv, _FW_UNDER_SURVEY) == true
++ if (check_fwstate(&adapter->mlmepriv, _FW_UNDER_SURVEY) == true
+ || check_fwstate(&adapter->mlmepriv, _FW_LINKED) == false
-+ ) {
++ ) {
+ goto set_timer;
+ }
+
-+ //update value of signal_strength, rssi, signal_qual
++ /* update value of signal_strength, rssi, signal_qual */
+ tmp_s = (avg_signal_strength+(_alpha-1)*recvpriv->signal_strength);
-+ if(tmp_s %_alpha)
++ if (tmp_s %_alpha)
+ tmp_s = tmp_s/_alpha + 1;
+ else
+ tmp_s = tmp_s/_alpha;
-+ if(tmp_s>100)
++ if (tmp_s>100)
+ tmp_s = 100;
+
+ tmp_q = (avg_signal_qual+(_alpha-1)*recvpriv->signal_qual);
-+ if(tmp_q %_alpha)
++ if (tmp_q %_alpha)
+ tmp_q = tmp_q/_alpha + 1;
+ else
+ tmp_q = tmp_q/_alpha;
-+ if(tmp_q>100)
++ if (tmp_q>100)
+ tmp_q = 100;
+
+ recvpriv->signal_strength = tmp_s;
@@ -29502,16 +25584,16 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_recv.c linux/3rdparty/rtl8723bs
+
+set_timer:
+ rtw_set_signal_stat_timer(recvpriv);
-+
++
+}
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_rf.c linux/3rdparty/rtl8723bs/core/rtw_rf.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_rf.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_rf.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,91 @@
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_rf.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_rf.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_rf.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_rf.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,66 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
-+ *
++ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
@@ -29521,11 +25603,6 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_rf.c linux/3rdparty/rtl8723bs/c
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
+#define _RTW_RF_C_
+
@@ -29538,22 +25615,22 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_rf.c linux/3rdparty/rtl8723bs/c
+};
+
+static struct ch_freq ch_freq_map[] = {
-+ {1, 2412},{2, 2417},{3, 2422},{4, 2427},{5, 2432},
-+ {6, 2437},{7, 2442},{8, 2447},{9, 2452},{10, 2457},
-+ {11, 2462},{12, 2467},{13, 2472},{14, 2484},
++ {1, 2412}, {2, 2417}, {3, 2422}, {4, 2427}, {5, 2432},
++ {6, 2437}, {7, 2442}, {8, 2447}, {9, 2452}, {10, 2457},
++ {11, 2462}, {12, 2467}, {13, 2472}, {14, 2484},
+ /* UNII */
-+ {36, 5180},{40, 5200},{44, 5220},{48, 5240},{52, 5260},
-+ {56, 5280},{60, 5300},{64, 5320},{149, 5745},{153, 5765},
-+ {157, 5785},{161, 5805},{165, 5825},{167, 5835},{169, 5845},
-+ {171, 5855},{173, 5865},
++ {36, 5180}, {40, 5200}, {44, 5220}, {48, 5240}, {52, 5260},
++ {56, 5280}, {60, 5300}, {64, 5320}, {149, 5745}, {153, 5765},
++ {157, 5785}, {161, 5805}, {165, 5825}, {167, 5835}, {169, 5845},
++ {171, 5855}, {173, 5865},
+ /* HiperLAN2 */
-+ {100, 5500},{104, 5520},{108, 5540},{112, 5560},{116, 5580},
-+ {120, 5600},{124, 5620},{128, 5640},{132, 5660},{136, 5680},
++ {100, 5500}, {104, 5520}, {108, 5540}, {112, 5560}, {116, 5580},
++ {120, 5600}, {124, 5620}, {128, 5640}, {132, 5660}, {136, 5680},
+ {140, 5700},
+ /* Japan MMAC */
-+ {34, 5170},{38, 5190},{42, 5210},{46, 5230},
++ {34, 5170}, {38, 5190}, {42, 5210}, {46, 5230},
+ /* Japan */
-+ {184, 4920},{188, 4940},{192, 4960},{196, 4980},
++ {184, 4920}, {188, 4940}, {192, 4960}, {196, 4980},
+ {208, 5040},/* Japan, means J08 */
+ {212, 5060},/* Japan, means J12 */
+ {216, 5080},/* Japan, means J16 */
@@ -29563,8 +25640,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_rf.c linux/3rdparty/rtl8723bs/c
+
+u32 rtw_ch2freq(u32 channel)
+{
-+ u8 i;
-+ u32 freq = 0;
++ u8 i;
++ u32 freq = 0;
+
+ for (i = 0; i < ch_freq_map_num; i++)
+ {
@@ -29579,34 +25656,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_rf.c linux/3rdparty/rtl8723bs/c
+
+ return freq;
+}
-+
-+u32 rtw_freq2ch(u32 freq)
-+{
-+ u8 i;
-+ u32 ch = 0;
-+
-+ for (i = 0; i < ch_freq_map_num; i++)
-+ {
-+ if (freq == ch_freq_map[i].frequency)
-+ {
-+ ch = ch_freq_map[i].channel;
-+ break;
-+ }
-+ }
-+ if (i == ch_freq_map_num)
-+ ch = 1;
-+
-+ return ch;
-+}
-+
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl8723bs/core/rtw_security.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_security.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_security.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,2670 @@
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_security.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_security.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_security.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_security.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,2486 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
-+ *
++ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
@@ -29616,15 +25673,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
+#define _RTW_SECURITY_C_
+
+#include
++#include
+
+static const char *_security_type_str[] = {
+ "N/A",
@@ -29640,11 +25693,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+
+const char *security_type_str(u8 value)
+{
-+#ifdef CONFIG_IEEE80211W
+ if (value <= _BIP_)
-+#else
-+ if (value <= _WEP_WPA_MIXED_)
-+#endif
+ return _security_type_str[value];
+ return NULL;
+}
@@ -29706,7 +25755,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+#define AES_SW_DEC_CNT_INC(sec, ra)
+#endif /* DBG_SW_SEC_CNT */
+
-+//=====WEP related=====
++/* WEP related ===== */
+
+#define CRC32_POLY 0x04c11db7
+
@@ -29718,14 +25767,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+};
+
+
-+static void arcfour_init(struct arc4context *parc4ctx, u8 * key,u32 key_len)
++static void arcfour_init(struct arc4context *parc4ctx, u8 * key, u32 key_len)
+{
-+ u32 t, u;
-+ u32 keyindex;
-+ u32 stateindex;
++ u32 t, u;
++ u32 keyindex;
++ u32 stateindex;
+ u8 * state;
-+ u32 counter;
-+_func_enter_;
++ u32 counter;
++
+ state = parc4ctx->state;
+ parc4ctx->x = 0;
+ parc4ctx->y = 0;
@@ -29743,15 +25792,15 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ if (++keyindex >= key_len)
+ keyindex = 0;
+ }
-+_func_exit_;
+}
-+static u32 arcfour_byte( struct arc4context *parc4ctx)
++
++static u32 arcfour_byte(struct arc4context *parc4ctx)
+{
+ u32 x;
+ u32 y;
+ u32 sx, sy;
+ u8 * state;
-+_func_enter_;
++
+ state = parc4ctx->state;
+ x = (parc4ctx->x + 1) & 0xff;
+ sx = state[x];
@@ -29761,49 +25810,45 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ parc4ctx->y = y;
+ state[y] = (u8)sx;
+ state[x] = (u8)sy;
-+_func_exit_;
+ return state[(sx + sy) & 0xff];
+}
-+
-+
-+static void arcfour_encrypt( struct arc4context *parc4ctx,
++
++static void arcfour_encrypt(struct arc4context *parc4ctx,
+ u8 * dest,
-+ u8 * src,
++ u8 * src,
+ u32 len)
+{
-+ u32 i;
-+_func_enter_;
++ u32 i;
++
+ for (i = 0; i < len; i++)
+ dest[i] = src[i] ^ (unsigned char)arcfour_byte(parc4ctx);
-+_func_exit_;
+}
+
+static sint bcrc32initialized = 0;
+static u32 crc32_table[256];
+
+
-+static u8 crc32_reverseBit( u8 data)
++static u8 crc32_reverseBit(u8 data)
+{
-+ return( (u8)((data<<7)&0x80) | ((data<<5)&0x40) | ((data<<3)&0x20) | ((data<<1)&0x10) | ((data>>1)&0x08) | ((data>>3)&0x04) | ((data>>5)&0x02) | ((data>>7)&0x01) );
++ return((u8)((data<<7)&0x80) | ((data<<5)&0x40) | ((data<<3)&0x20) | ((data<<1)&0x10) | ((data>>1)&0x08) | ((data>>3)&0x04) | ((data>>5)&0x02) | ((data>>7)&0x01));
+}
+
+static void crc32_init(void)
+{
-+_func_enter_;
-+ if (bcrc32initialized == 1)
-+ goto exit;
-+ else{
++ if (bcrc32initialized == 1)
++ return;
++ else {
+ sint i, j;
+ u32 c;
-+ u8 *p=(u8 *)&c, *p1;
++ u8 *p =(u8 *)&c, *p1;
+ u8 k;
+
+ c = 0x12340000;
+
-+ for (i = 0; i < 256; ++i)
++ for (i = 0; i < 256; ++i)
+ {
+ k = crc32_reverseBit((u8)i);
-+ for (c = ((u32)k) << 24, j = 8; j > 0; --j){
++ for (c = ((u32)k) << 24, j = 8; j > 0; --j) {
+ c = c & 0x80000000 ? (c << 1) ^ CRC32_POLY : (c << 1);
+ }
+ p1 = (u8 *)&crc32_table[i];
@@ -29813,287 +25858,260 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ p1[2] = crc32_reverseBit(p[1]);
+ p1[3] = crc32_reverseBit(p[0]);
+ }
-+ bcrc32initialized= 1;
++ bcrc32initialized = 1;
+ }
-+exit:
-+_func_exit_;
+}
+
-+static u32 getcrc32(u8 *buf, sint len)
++static __le32 getcrc32(u8 *buf, sint len)
+{
+ u8 *p;
+ u32 crc;
-+_func_enter_;
++
+ if (bcrc32initialized == 0) crc32_init();
+
+ crc = 0xffffffff; /* preload shift register, per CRC-32 spec */
+
-+ for (p = buf; len > 0; ++p, --len)
++ for (p = buf; len > 0; ++p, --len)
+ {
+ crc = crc32_table[ (crc ^ *p) & 0xff] ^ (crc >> 8);
+ }
-+_func_exit_;
-+ return ~crc; /* transmit complement, per CRC-32 spec */
++ return cpu_to_le32(~crc); /* transmit complement, per CRC-32 spec */
+}
+
+
+/*
+ Need to consider the fragment situation
+*/
-+void rtw_wep_encrypt(_adapter *padapter, u8 *pxmitframe)
-+{ // exclude ICV
-+
-+ unsigned char crc[4];
++void rtw_wep_encrypt(struct adapter *padapter, u8 *pxmitframe)
++{ /* exclude ICV */
++
++ unsigned char crc[4];
+ struct arc4context mycontext;
+
-+ sint curfragnum,length;
-+ u32 keylength;
++ sint curfragnum, length;
++ u32 keylength;
+
-+ u8 *pframe, *payload,*iv; //,*wepkey
-+ u8 wepkey[16];
-+ u8 hw_hdr_offset=0;
++ u8 *pframe, *payload,*iv; /* wepkey */
++ u8 wepkey[16];
++ u8 hw_hdr_offset = 0;
+ struct pkt_attrib *pattrib = &((struct xmit_frame*)pxmitframe)->attrib;
-+ struct security_priv *psecuritypriv=&padapter->securitypriv;
-+ struct xmit_priv *pxmitpriv=&padapter->xmitpriv;
-+
-+_func_enter_;
++ struct security_priv *psecuritypriv =&padapter->securitypriv;
++ struct xmit_priv *pxmitpriv =&padapter->xmitpriv;
+
-+
-+ if(((struct xmit_frame*)pxmitframe)->buf_addr==NULL)
++ if (((struct xmit_frame*)pxmitframe)->buf_addr == NULL)
+ return;
+
+ hw_hdr_offset = TXDESC_OFFSET;
+ pframe = ((struct xmit_frame*)pxmitframe)->buf_addr + hw_hdr_offset;
-+
-+ //start to encrypt each fragment
-+ if((pattrib->encrypt==_WEP40_)||(pattrib->encrypt==_WEP104_))
++
++ /* start to encrypt each fragment */
++ if ((pattrib->encrypt == _WEP40_)||(pattrib->encrypt == _WEP104_))
+ {
-+ keylength=psecuritypriv->dot11DefKeylen[psecuritypriv->dot11PrivacyKeyIndex];
++ keylength =psecuritypriv->dot11DefKeylen[psecuritypriv->dot11PrivacyKeyIndex];
+
-+ for(curfragnum=0;curfragnumnr_frags;curfragnum++)
++ for (curfragnum = 0;curfragnumnr_frags;curfragnum++)
+ {
-+ iv=pframe+pattrib->hdrlen;
++ iv =pframe+pattrib->hdrlen;
+ memcpy(&wepkey[0], iv, 3);
-+ memcpy(&wepkey[3], &psecuritypriv->dot11DefKey[psecuritypriv->dot11PrivacyKeyIndex].skey[0],keylength);
-+ payload=pframe+pattrib->iv_len+pattrib->hdrlen;
++ memcpy(&wepkey[3], &psecuritypriv->dot11DefKey[psecuritypriv->dot11PrivacyKeyIndex].skey[0], keylength);
++ payload =pframe+pattrib->iv_len+pattrib->hdrlen;
+
-+ if((curfragnum+1)==pattrib->nr_frags)
-+ { //the last fragment
-+
-+ length=pattrib->last_txcmdsz-pattrib->hdrlen-pattrib->iv_len- pattrib->icv_len;
-+
-+ *((u32 *)crc)=cpu_to_le32(getcrc32(payload,length));
++ if ((curfragnum+1) ==pattrib->nr_frags)
++ { /* the last fragment */
+
-+ arcfour_init(&mycontext, wepkey,3+keylength);
++ length =pattrib->last_txcmdsz-pattrib->hdrlen-pattrib->iv_len- pattrib->icv_len;
++
++ *((__le32 *)crc) = getcrc32(payload, length);
++
++ arcfour_init(&mycontext, wepkey, 3+keylength);
+ arcfour_encrypt(&mycontext, payload, payload, length);
+ arcfour_encrypt(&mycontext, payload+length, crc, 4);
+
+ }
+ else
+ {
-+ length=pxmitpriv->frag_len-pattrib->hdrlen-pattrib->iv_len-pattrib->icv_len ;
-+ *((u32 *)crc)=cpu_to_le32(getcrc32(payload,length));
-+ arcfour_init(&mycontext, wepkey,3+keylength);
++ length =pxmitpriv->frag_len-pattrib->hdrlen-pattrib->iv_len-pattrib->icv_len ;
++ *((__le32 *)crc) = getcrc32(payload, length);
++ arcfour_init(&mycontext, wepkey, 3+keylength);
+ arcfour_encrypt(&mycontext, payload, payload, length);
+ arcfour_encrypt(&mycontext, payload+length, crc, 4);
-+
++
+ pframe+=pxmitpriv->frag_len;
-+ pframe=(u8 *)RND4((SIZE_PTR)(pframe));
++ pframe =(u8 *)RND4((SIZE_PTR)(pframe));
+
+ }
-+
-+ }
++
++ }
+
+ WEP_SW_ENC_CNT_INC(psecuritypriv, pattrib->ra);
+ }
-+
-+_func_exit_;
-+
+}
+
-+void rtw_wep_decrypt(_adapter *padapter, u8 *precvframe)
-+{
-+ // exclude ICV
-+ u8 crc[4];
++void rtw_wep_decrypt(struct adapter *padapter, u8 *precvframe)
++{
++ /* exclude ICV */
++ u8 crc[4];
+ struct arc4context mycontext;
-+ sint length;
-+ u32 keylength;
-+ u8 *pframe, *payload,*iv,wepkey[16];
-+ u8 keyindex;
++ sint length;
++ u32 keylength;
++ u8 *pframe, *payload,*iv, wepkey[16];
++ u8 keyindex;
+ struct rx_pkt_attrib *prxattrib = &(((union recv_frame*)precvframe)->u.hdr.attrib);
-+ struct security_priv *psecuritypriv=&padapter->securitypriv;
++ struct security_priv *psecuritypriv =&padapter->securitypriv;
+
-+_func_enter_;
++ pframe =(unsigned char *)((union recv_frame*)precvframe)->u.hdr.rx_data;
+
-+ pframe=(unsigned char *)((union recv_frame*)precvframe)->u.hdr.rx_data;
-+
-+ //start to decrypt recvframe
-+ if((prxattrib->encrypt==_WEP40_)||(prxattrib->encrypt==_WEP104_))
++ /* start to decrypt recvframe */
++ if ((prxattrib->encrypt == _WEP40_)||(prxattrib->encrypt == _WEP104_))
+ {
-+ iv=pframe+prxattrib->hdrlen;
-+ //keyindex=(iv[3]&0x3);
++ iv =pframe+prxattrib->hdrlen;
++ /* keyindex =(iv[3]&0x3); */
+ keyindex = prxattrib->key_index;
-+ keylength=psecuritypriv->dot11DefKeylen[keyindex];
++ keylength =psecuritypriv->dot11DefKeylen[keyindex];
+ memcpy(&wepkey[0], iv, 3);
-+ //memcpy(&wepkey[3], &psecuritypriv->dot11DefKey[psecuritypriv->dot11PrivacyKeyIndex].skey[0],keylength);
-+ memcpy(&wepkey[3], &psecuritypriv->dot11DefKey[keyindex].skey[0],keylength);
-+ length= ((union recv_frame *)precvframe)->u.hdr.len-prxattrib->hdrlen-prxattrib->iv_len;
++ /* memcpy(&wepkey[3], &psecuritypriv->dot11DefKey[psecuritypriv->dot11PrivacyKeyIndex].skey[0], keylength); */
++ memcpy(&wepkey[3], &psecuritypriv->dot11DefKey[keyindex].skey[0], keylength);
++ length = ((union recv_frame *)precvframe)->u.hdr.len-prxattrib->hdrlen-prxattrib->iv_len;
+
-+ payload=pframe+prxattrib->iv_len+prxattrib->hdrlen;
-+
-+ //decrypt payload include icv
-+ arcfour_init(&mycontext, wepkey,3+keylength);
++ payload =pframe+prxattrib->iv_len+prxattrib->hdrlen;
++
++ /* decrypt payload include icv */
++ arcfour_init(&mycontext, wepkey, 3+keylength);
+ arcfour_encrypt(&mycontext, payload, payload, length);
-+
-+ //calculate icv and compare the icv
-+ *((u32 *)crc)=le32_to_cpu(getcrc32(payload,length-4));
-+
-+ if(crc[3]!=payload[length-1] || crc[2]!=payload[length-2] || crc[1]!=payload[length-3] || crc[0]!=payload[length-4])
++
++ /* calculate icv and compare the icv */
++ *((u32 *)crc) =le32_to_cpu(getcrc32(payload, length-4));
++
++ if (crc[3]!=payload[length-1] || crc[2]!=payload[length-2] || crc[1]!=payload[length-3] || crc[0]!=payload[length-4])
+ {
-+ RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("rtw_wep_decrypt:icv error crc[3](%x)!=payload[length-1](%x) || crc[2](%x)!=payload[length-2](%x) || crc[1](%x)!=payload[length-3](%x) || crc[0](%x)!=payload[length-4](%x)\n",
-+ crc[3],payload[length-1],crc[2],payload[length-2],crc[1],payload[length-3],crc[0],payload[length-4]));
++ RT_TRACE(_module_rtl871x_security_c_, _drv_err_, ("rtw_wep_decrypt:icv error crc[3](%x)!=payload[length-1](%x) || crc[2](%x)!=payload[length-2](%x) || crc[1](%x)!=payload[length-3](%x) || crc[0](%x)!=payload[length-4](%x)\n",
++ crc[3], payload[length-1], crc[2], payload[length-2], crc[1], payload[length-3], crc[0], payload[length-4]));
+ }
+
+ WEP_SW_DEC_CNT_INC(psecuritypriv, prxattrib->ra);
+ }
-+
-+_func_exit_;
-+
+ return;
-+
+}
+
-+//3 =====TKIP related=====
++/* 3 =====TKIP related ===== */
+
-+static u32 secmicgetuint32( u8 * p )
-+// Convert from Byte[] to Us4Byte32 in a portable way
++static u32 secmicgetuint32(u8 * p)
++/* Convert from Byte[] to Us3232 in a portable way */
+{
+ s32 i;
+ u32 res = 0;
-+_func_enter_;
-+ for( i=0; i<4; i++ )
++
++ for (i = 0; i<4; i++)
+ {
+ res |= ((u32)(*p++)) << (8*i);
+ }
-+_func_exit_;
+ return res;
+}
+
-+static void secmicputuint32( u8 * p, u32 val )
-+// Convert from Us4Byte32 to Byte[] in a portable way
++static void secmicputuint32(u8 * p, u32 val)
++/* Convert from Us3232 to Byte[] in a portable way */
+{
+ long i;
-+_func_enter_;
-+ for( i=0; i<4; i++ )
++
++ for (i = 0; i<4; i++)
+ {
+ *p++ = (u8) (val & 0xff);
+ val >>= 8;
+ }
-+_func_exit_;
+}
+
+static void secmicclear(struct mic_data *pmicdata)
+{
-+// Reset the state to the empty message.
-+_func_enter_;
++/* Reset the state to the empty message. */
+ pmicdata->L = pmicdata->K0;
+ pmicdata->R = pmicdata->K1;
+ pmicdata->nBytesInM = 0;
+ pmicdata->M = 0;
-+_func_exit_;
+}
+
-+void rtw_secmicsetkey(struct mic_data *pmicdata, u8 * key )
++void rtw_secmicsetkey(struct mic_data *pmicdata, u8 * key)
+{
-+ // Set the key
-+_func_enter_;
-+ pmicdata->K0 = secmicgetuint32( key );
-+ pmicdata->K1 = secmicgetuint32( key + 4 );
-+ // and reset the message
++ /* Set the key */
++ pmicdata->K0 = secmicgetuint32(key);
++ pmicdata->K1 = secmicgetuint32(key + 4);
++ /* and reset the message */
+ secmicclear(pmicdata);
-+_func_exit_;
+}
+
-+void rtw_secmicappendbyte(struct mic_data *pmicdata, u8 b )
++void rtw_secmicappendbyte(struct mic_data *pmicdata, u8 b)
+{
-+_func_enter_;
-+ // Append the byte to our word-sized buffer
++ /* Append the byte to our word-sized buffer */
+ pmicdata->M |= ((unsigned long)b) << (8*pmicdata->nBytesInM);
+ pmicdata->nBytesInM++;
-+ // Process the word if it is full.
-+ if( pmicdata->nBytesInM >= 4 )
++ /* Process the word if it is full. */
++ if (pmicdata->nBytesInM >= 4)
+ {
+ pmicdata->L ^= pmicdata->M;
-+ pmicdata->R ^= ROL32( pmicdata->L, 17 );
++ pmicdata->R ^= ROL32(pmicdata->L, 17);
+ pmicdata->L += pmicdata->R;
+ pmicdata->R ^= ((pmicdata->L & 0xff00ff00) >> 8) | ((pmicdata->L & 0x00ff00ff) << 8);
+ pmicdata->L += pmicdata->R;
-+ pmicdata->R ^= ROL32( pmicdata->L, 3 );
++ pmicdata->R ^= ROL32(pmicdata->L, 3);
+ pmicdata->L += pmicdata->R;
-+ pmicdata->R ^= ROR32( pmicdata->L, 2 );
++ pmicdata->R ^= ROR32(pmicdata->L, 2);
+ pmicdata->L += pmicdata->R;
-+ // Clear the buffer
++ /* Clear the buffer */
+ pmicdata->M = 0;
+ pmicdata->nBytesInM = 0;
+ }
-+_func_exit_;
+}
+
-+void rtw_secmicappend(struct mic_data *pmicdata, u8 * src, u32 nbytes )
++void rtw_secmicappend(struct mic_data *pmicdata, u8 * src, u32 nbytes)
+{
-+_func_enter_;
-+ // This is simple
-+ while( nbytes > 0 )
++ /* This is simple */
++ while (nbytes > 0)
+ {
-+ rtw_secmicappendbyte(pmicdata, *src++ );
++ rtw_secmicappendbyte(pmicdata, *src++);
+ nbytes--;
+ }
-+_func_exit_;
+}
+
-+void rtw_secgetmic(struct mic_data *pmicdata, u8 * dst )
++void rtw_secgetmic(struct mic_data *pmicdata, u8 * dst)
+{
-+_func_enter_;
-+ // Append the minimum padding
-+ rtw_secmicappendbyte(pmicdata, 0x5a );
-+ rtw_secmicappendbyte(pmicdata, 0 );
-+ rtw_secmicappendbyte(pmicdata, 0 );
-+ rtw_secmicappendbyte(pmicdata, 0 );
-+ rtw_secmicappendbyte(pmicdata, 0 );
-+ // and then zeroes until the length is a multiple of 4
-+ while( pmicdata->nBytesInM != 0 )
++ /* Append the minimum padding */
++ rtw_secmicappendbyte(pmicdata, 0x5a);
++ rtw_secmicappendbyte(pmicdata, 0);
++ rtw_secmicappendbyte(pmicdata, 0);
++ rtw_secmicappendbyte(pmicdata, 0);
++ rtw_secmicappendbyte(pmicdata, 0);
++ /* and then zeroes until the length is a multiple of 4 */
++ while (pmicdata->nBytesInM != 0)
+ {
-+ rtw_secmicappendbyte(pmicdata, 0 );
++ rtw_secmicappendbyte(pmicdata, 0);
+ }
-+ // The appendByte function has already computed the result.
-+ secmicputuint32( dst, pmicdata->L );
-+ secmicputuint32( dst+4, pmicdata->R );
-+ // Reset to the empty message.
++ /* The appendByte function has already computed the result. */
++ secmicputuint32(dst, pmicdata->L);
++ secmicputuint32(dst+4, pmicdata->R);
++ /* Reset to the empty message. */
+ secmicclear(pmicdata);
-+_func_exit_;
+}
+
+
-+void rtw_seccalctkipmic(u8 * key,u8 *header,u8 *data,u32 data_len,u8 *mic_code, u8 pri)
++void rtw_seccalctkipmic(u8 * key, u8 *header, u8 *data, u32 data_len, u8 *mic_code, u8 pri)
+{
+
+ struct mic_data micdata;
-+ u8 priority[4]={0x0,0x0,0x0,0x0};
-+_func_enter_;
++ u8 priority[4]={0x0, 0x0, 0x0, 0x0};
++
+ rtw_secmicsetkey(&micdata, key);
+ priority[0]=pri;
-+
++
+ /* Michael MIC pseudo header: DA, SA, 3 x 0, Priority */
-+ if(header[1]&1){ //ToDS==1
-+ rtw_secmicappend(&micdata, &header[16], 6); //DA
-+ if(header[1]&2) //From Ds==1
++ if (header[1]&1) { /* ToDS == 1 */
++ rtw_secmicappend(&micdata, &header[16], 6); /* DA */
++ if (header[1]&2) /* From Ds == 1 */
+ rtw_secmicappend(&micdata, &header[24], 6);
+ else
-+ rtw_secmicappend(&micdata, &header[10], 6);
-+ }
-+ else{ //ToDS==0
-+ rtw_secmicappend(&micdata, &header[4], 6); //DA
-+ if(header[1]&2) //From Ds==1
++ rtw_secmicappend(&micdata, &header[10], 6);
++ }
++ else { /* ToDS == 0 */
++ rtw_secmicappend(&micdata, &header[4], 6); /* DA */
++ if (header[1]&2) /* From Ds == 1 */
+ rtw_secmicappend(&micdata, &header[16], 6);
+ else
+ rtw_secmicappend(&micdata, &header[10], 6);
@@ -30101,26 +26119,22 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ }
+ rtw_secmicappend(&micdata, &priority[0], 4);
+
-+
++
+ rtw_secmicappend(&micdata, data, data_len);
+
-+ rtw_secgetmic(&micdata,mic_code);
-+_func_exit_;
++ rtw_secgetmic(&micdata, mic_code);
+}
+
-+
-+
-+
+/* macros for extraction/creation of unsigned char/unsigned short values */
+#define RotR1(v16) ((((v16) >> 1) & 0x7FFF) ^ (((v16) & 1) << 15))
-+#define Lo8(v16) ((u8)( (v16) & 0x00FF))
++#define Lo8(v16) ((u8)((v16) & 0x00FF))
+#define Hi8(v16) ((u8)(((v16) >> 8) & 0x00FF))
-+#define Lo16(v32) ((u16)( (v32) & 0xFFFF))
++#define Lo16(v32) ((u16)((v32) & 0xFFFF))
+#define Hi16(v32) ((u16)(((v32) >>16) & 0xFFFF))
-+#define Mk16(hi,lo) ((lo) ^ (((u16)(hi)) << 8))
++#define Mk16(hi, lo) ((lo) ^ (((u16)(hi)) << 8))
+
+/* select the Nth 16-bit word of the temporal key unsigned char array TK[] */
-+#define TK16(N) Mk16(tk[2*(N)+1],tk[2*(N)])
++#define TK16(N) Mk16(tk[2*(N)+1], tk[2*(N)])
+
+/* S-box lookup: 16 bits --> 16 bits */
+#define _S_(v16) (Sbox1[0][Lo8(v16)] ^ Sbox1[1][Hi8(v16)])
@@ -30136,77 +26150,77 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+/* 2-unsigned char by 2-unsigned char subset of the full AES S-box table */
+static const unsigned short Sbox1[2][256]= /* Sbox for hash (can be in ROM) */
+{ {
-+ 0xC6A5,0xF884,0xEE99,0xF68D,0xFF0D,0xD6BD,0xDEB1,0x9154,
-+ 0x6050,0x0203,0xCEA9,0x567D,0xE719,0xB562,0x4DE6,0xEC9A,
-+ 0x8F45,0x1F9D,0x8940,0xFA87,0xEF15,0xB2EB,0x8EC9,0xFB0B,
-+ 0x41EC,0xB367,0x5FFD,0x45EA,0x23BF,0x53F7,0xE496,0x9B5B,
-+ 0x75C2,0xE11C,0x3DAE,0x4C6A,0x6C5A,0x7E41,0xF502,0x834F,
-+ 0x685C,0x51F4,0xD134,0xF908,0xE293,0xAB73,0x6253,0x2A3F,
-+ 0x080C,0x9552,0x4665,0x9D5E,0x3028,0x37A1,0x0A0F,0x2FB5,
-+ 0x0E09,0x2436,0x1B9B,0xDF3D,0xCD26,0x4E69,0x7FCD,0xEA9F,
-+ 0x121B,0x1D9E,0x5874,0x342E,0x362D,0xDCB2,0xB4EE,0x5BFB,
-+ 0xA4F6,0x764D,0xB761,0x7DCE,0x527B,0xDD3E,0x5E71,0x1397,
-+ 0xA6F5,0xB968,0x0000,0xC12C,0x4060,0xE31F,0x79C8,0xB6ED,
-+ 0xD4BE,0x8D46,0x67D9,0x724B,0x94DE,0x98D4,0xB0E8,0x854A,
-+ 0xBB6B,0xC52A,0x4FE5,0xED16,0x86C5,0x9AD7,0x6655,0x1194,
-+ 0x8ACF,0xE910,0x0406,0xFE81,0xA0F0,0x7844,0x25BA,0x4BE3,
-+ 0xA2F3,0x5DFE,0x80C0,0x058A,0x3FAD,0x21BC,0x7048,0xF104,
-+ 0x63DF,0x77C1,0xAF75,0x4263,0x2030,0xE51A,0xFD0E,0xBF6D,
-+ 0x814C,0x1814,0x2635,0xC32F,0xBEE1,0x35A2,0x88CC,0x2E39,
-+ 0x9357,0x55F2,0xFC82,0x7A47,0xC8AC,0xBAE7,0x322B,0xE695,
-+ 0xC0A0,0x1998,0x9ED1,0xA37F,0x4466,0x547E,0x3BAB,0x0B83,
-+ 0x8CCA,0xC729,0x6BD3,0x283C,0xA779,0xBCE2,0x161D,0xAD76,
-+ 0xDB3B,0x6456,0x744E,0x141E,0x92DB,0x0C0A,0x486C,0xB8E4,
-+ 0x9F5D,0xBD6E,0x43EF,0xC4A6,0x39A8,0x31A4,0xD337,0xF28B,
-+ 0xD532,0x8B43,0x6E59,0xDAB7,0x018C,0xB164,0x9CD2,0x49E0,
-+ 0xD8B4,0xACFA,0xF307,0xCF25,0xCAAF,0xF48E,0x47E9,0x1018,
-+ 0x6FD5,0xF088,0x4A6F,0x5C72,0x3824,0x57F1,0x73C7,0x9751,
-+ 0xCB23,0xA17C,0xE89C,0x3E21,0x96DD,0x61DC,0x0D86,0x0F85,
-+ 0xE090,0x7C42,0x71C4,0xCCAA,0x90D8,0x0605,0xF701,0x1C12,
-+ 0xC2A3,0x6A5F,0xAEF9,0x69D0,0x1791,0x9958,0x3A27,0x27B9,
-+ 0xD938,0xEB13,0x2BB3,0x2233,0xD2BB,0xA970,0x0789,0x33A7,
-+ 0x2DB6,0x3C22,0x1592,0xC920,0x8749,0xAAFF,0x5078,0xA57A,
-+ 0x038F,0x59F8,0x0980,0x1A17,0x65DA,0xD731,0x84C6,0xD0B8,
-+ 0x82C3,0x29B0,0x5A77,0x1E11,0x7BCB,0xA8FC,0x6DD6,0x2C3A,
++ 0xC6A5, 0xF884, 0xEE99, 0xF68D, 0xFF0D, 0xD6BD, 0xDEB1, 0x9154,
++ 0x6050, 0x0203, 0xCEA9, 0x567D, 0xE719, 0xB562, 0x4DE6, 0xEC9A,
++ 0x8F45, 0x1F9D, 0x8940, 0xFA87, 0xEF15, 0xB2EB, 0x8EC9, 0xFB0B,
++ 0x41EC, 0xB367, 0x5FFD, 0x45EA, 0x23BF, 0x53F7, 0xE496, 0x9B5B,
++ 0x75C2, 0xE11C, 0x3DAE, 0x4C6A, 0x6C5A, 0x7E41, 0xF502, 0x834F,
++ 0x685C, 0x51F4, 0xD134, 0xF908, 0xE293, 0xAB73, 0x6253, 0x2A3F,
++ 0x080C, 0x9552, 0x4665, 0x9D5E, 0x3028, 0x37A1, 0x0A0F, 0x2FB5,
++ 0x0E09, 0x2436, 0x1B9B, 0xDF3D, 0xCD26, 0x4E69, 0x7FCD, 0xEA9F,
++ 0x121B, 0x1D9E, 0x5874, 0x342E, 0x362D, 0xDCB2, 0xB4EE, 0x5BFB,
++ 0xA4F6, 0x764D, 0xB761, 0x7DCE, 0x527B, 0xDD3E, 0x5E71, 0x1397,
++ 0xA6F5, 0xB968, 0x0000, 0xC12C, 0x4060, 0xE31F, 0x79C8, 0xB6ED,
++ 0xD4BE, 0x8D46, 0x67D9, 0x724B, 0x94DE, 0x98D4, 0xB0E8, 0x854A,
++ 0xBB6B, 0xC52A, 0x4FE5, 0xED16, 0x86C5, 0x9AD7, 0x6655, 0x1194,
++ 0x8ACF, 0xE910, 0x0406, 0xFE81, 0xA0F0, 0x7844, 0x25BA, 0x4BE3,
++ 0xA2F3, 0x5DFE, 0x80C0, 0x058A, 0x3FAD, 0x21BC, 0x7048, 0xF104,
++ 0x63DF, 0x77C1, 0xAF75, 0x4263, 0x2030, 0xE51A, 0xFD0E, 0xBF6D,
++ 0x814C, 0x1814, 0x2635, 0xC32F, 0xBEE1, 0x35A2, 0x88CC, 0x2E39,
++ 0x9357, 0x55F2, 0xFC82, 0x7A47, 0xC8AC, 0xBAE7, 0x322B, 0xE695,
++ 0xC0A0, 0x1998, 0x9ED1, 0xA37F, 0x4466, 0x547E, 0x3BAB, 0x0B83,
++ 0x8CCA, 0xC729, 0x6BD3, 0x283C, 0xA779, 0xBCE2, 0x161D, 0xAD76,
++ 0xDB3B, 0x6456, 0x744E, 0x141E, 0x92DB, 0x0C0A, 0x486C, 0xB8E4,
++ 0x9F5D, 0xBD6E, 0x43EF, 0xC4A6, 0x39A8, 0x31A4, 0xD337, 0xF28B,
++ 0xD532, 0x8B43, 0x6E59, 0xDAB7, 0x018C, 0xB164, 0x9CD2, 0x49E0,
++ 0xD8B4, 0xACFA, 0xF307, 0xCF25, 0xCAAF, 0xF48E, 0x47E9, 0x1018,
++ 0x6FD5, 0xF088, 0x4A6F, 0x5C72, 0x3824, 0x57F1, 0x73C7, 0x9751,
++ 0xCB23, 0xA17C, 0xE89C, 0x3E21, 0x96DD, 0x61DC, 0x0D86, 0x0F85,
++ 0xE090, 0x7C42, 0x71C4, 0xCCAA, 0x90D8, 0x0605, 0xF701, 0x1C12,
++ 0xC2A3, 0x6A5F, 0xAEF9, 0x69D0, 0x1791, 0x9958, 0x3A27, 0x27B9,
++ 0xD938, 0xEB13, 0x2BB3, 0x2233, 0xD2BB, 0xA970, 0x0789, 0x33A7,
++ 0x2DB6, 0x3C22, 0x1592, 0xC920, 0x8749, 0xAAFF, 0x5078, 0xA57A,
++ 0x038F, 0x59F8, 0x0980, 0x1A17, 0x65DA, 0xD731, 0x84C6, 0xD0B8,
++ 0x82C3, 0x29B0, 0x5A77, 0x1E11, 0x7BCB, 0xA8FC, 0x6DD6, 0x2C3A,
+ },
-+
++
+
+ { /* second half of table is unsigned char-reversed version of first! */
-+ 0xA5C6,0x84F8,0x99EE,0x8DF6,0x0DFF,0xBDD6,0xB1DE,0x5491,
-+ 0x5060,0x0302,0xA9CE,0x7D56,0x19E7,0x62B5,0xE64D,0x9AEC,
-+ 0x458F,0x9D1F,0x4089,0x87FA,0x15EF,0xEBB2,0xC98E,0x0BFB,
-+ 0xEC41,0x67B3,0xFD5F,0xEA45,0xBF23,0xF753,0x96E4,0x5B9B,
-+ 0xC275,0x1CE1,0xAE3D,0x6A4C,0x5A6C,0x417E,0x02F5,0x4F83,
-+ 0x5C68,0xF451,0x34D1,0x08F9,0x93E2,0x73AB,0x5362,0x3F2A,
-+ 0x0C08,0x5295,0x6546,0x5E9D,0x2830,0xA137,0x0F0A,0xB52F,
-+ 0x090E,0x3624,0x9B1B,0x3DDF,0x26CD,0x694E,0xCD7F,0x9FEA,
-+ 0x1B12,0x9E1D,0x7458,0x2E34,0x2D36,0xB2DC,0xEEB4,0xFB5B,
-+ 0xF6A4,0x4D76,0x61B7,0xCE7D,0x7B52,0x3EDD,0x715E,0x9713,
-+ 0xF5A6,0x68B9,0x0000,0x2CC1,0x6040,0x1FE3,0xC879,0xEDB6,
-+ 0xBED4,0x468D,0xD967,0x4B72,0xDE94,0xD498,0xE8B0,0x4A85,
-+ 0x6BBB,0x2AC5,0xE54F,0x16ED,0xC586,0xD79A,0x5566,0x9411,
-+ 0xCF8A,0x10E9,0x0604,0x81FE,0xF0A0,0x4478,0xBA25,0xE34B,
-+ 0xF3A2,0xFE5D,0xC080,0x8A05,0xAD3F,0xBC21,0x4870,0x04F1,
-+ 0xDF63,0xC177,0x75AF,0x6342,0x3020,0x1AE5,0x0EFD,0x6DBF,
-+ 0x4C81,0x1418,0x3526,0x2FC3,0xE1BE,0xA235,0xCC88,0x392E,
-+ 0x5793,0xF255,0x82FC,0x477A,0xACC8,0xE7BA,0x2B32,0x95E6,
-+ 0xA0C0,0x9819,0xD19E,0x7FA3,0x6644,0x7E54,0xAB3B,0x830B,
-+ 0xCA8C,0x29C7,0xD36B,0x3C28,0x79A7,0xE2BC,0x1D16,0x76AD,
-+ 0x3BDB,0x5664,0x4E74,0x1E14,0xDB92,0x0A0C,0x6C48,0xE4B8,
-+ 0x5D9F,0x6EBD,0xEF43,0xA6C4,0xA839,0xA431,0x37D3,0x8BF2,
-+ 0x32D5,0x438B,0x596E,0xB7DA,0x8C01,0x64B1,0xD29C,0xE049,
-+ 0xB4D8,0xFAAC,0x07F3,0x25CF,0xAFCA,0x8EF4,0xE947,0x1810,
-+ 0xD56F,0x88F0,0x6F4A,0x725C,0x2438,0xF157,0xC773,0x5197,
-+ 0x23CB,0x7CA1,0x9CE8,0x213E,0xDD96,0xDC61,0x860D,0x850F,
-+ 0x90E0,0x427C,0xC471,0xAACC,0xD890,0x0506,0x01F7,0x121C,
-+ 0xA3C2,0x5F6A,0xF9AE,0xD069,0x9117,0x5899,0x273A,0xB927,
-+ 0x38D9,0x13EB,0xB32B,0x3322,0xBBD2,0x70A9,0x8907,0xA733,
-+ 0xB62D,0x223C,0x9215,0x20C9,0x4987,0xFFAA,0x7850,0x7AA5,
-+ 0x8F03,0xF859,0x8009,0x171A,0xDA65,0x31D7,0xC684,0xB8D0,
-+ 0xC382,0xB029,0x775A,0x111E,0xCB7B,0xFCA8,0xD66D,0x3A2C,
++ 0xA5C6, 0x84F8, 0x99EE, 0x8DF6, 0x0DFF, 0xBDD6, 0xB1DE, 0x5491,
++ 0x5060, 0x0302, 0xA9CE, 0x7D56, 0x19E7, 0x62B5, 0xE64D, 0x9AEC,
++ 0x458F, 0x9D1F, 0x4089, 0x87FA, 0x15EF, 0xEBB2, 0xC98E, 0x0BFB,
++ 0xEC41, 0x67B3, 0xFD5F, 0xEA45, 0xBF23, 0xF753, 0x96E4, 0x5B9B,
++ 0xC275, 0x1CE1, 0xAE3D, 0x6A4C, 0x5A6C, 0x417E, 0x02F5, 0x4F83,
++ 0x5C68, 0xF451, 0x34D1, 0x08F9, 0x93E2, 0x73AB, 0x5362, 0x3F2A,
++ 0x0C08, 0x5295, 0x6546, 0x5E9D, 0x2830, 0xA137, 0x0F0A, 0xB52F,
++ 0x090E, 0x3624, 0x9B1B, 0x3DDF, 0x26CD, 0x694E, 0xCD7F, 0x9FEA,
++ 0x1B12, 0x9E1D, 0x7458, 0x2E34, 0x2D36, 0xB2DC, 0xEEB4, 0xFB5B,
++ 0xF6A4, 0x4D76, 0x61B7, 0xCE7D, 0x7B52, 0x3EDD, 0x715E, 0x9713,
++ 0xF5A6, 0x68B9, 0x0000, 0x2CC1, 0x6040, 0x1FE3, 0xC879, 0xEDB6,
++ 0xBED4, 0x468D, 0xD967, 0x4B72, 0xDE94, 0xD498, 0xE8B0, 0x4A85,
++ 0x6BBB, 0x2AC5, 0xE54F, 0x16ED, 0xC586, 0xD79A, 0x5566, 0x9411,
++ 0xCF8A, 0x10E9, 0x0604, 0x81FE, 0xF0A0, 0x4478, 0xBA25, 0xE34B,
++ 0xF3A2, 0xFE5D, 0xC080, 0x8A05, 0xAD3F, 0xBC21, 0x4870, 0x04F1,
++ 0xDF63, 0xC177, 0x75AF, 0x6342, 0x3020, 0x1AE5, 0x0EFD, 0x6DBF,
++ 0x4C81, 0x1418, 0x3526, 0x2FC3, 0xE1BE, 0xA235, 0xCC88, 0x392E,
++ 0x5793, 0xF255, 0x82FC, 0x477A, 0xACC8, 0xE7BA, 0x2B32, 0x95E6,
++ 0xA0C0, 0x9819, 0xD19E, 0x7FA3, 0x6644, 0x7E54, 0xAB3B, 0x830B,
++ 0xCA8C, 0x29C7, 0xD36B, 0x3C28, 0x79A7, 0xE2BC, 0x1D16, 0x76AD,
++ 0x3BDB, 0x5664, 0x4E74, 0x1E14, 0xDB92, 0x0A0C, 0x6C48, 0xE4B8,
++ 0x5D9F, 0x6EBD, 0xEF43, 0xA6C4, 0xA839, 0xA431, 0x37D3, 0x8BF2,
++ 0x32D5, 0x438B, 0x596E, 0xB7DA, 0x8C01, 0x64B1, 0xD29C, 0xE049,
++ 0xB4D8, 0xFAAC, 0x07F3, 0x25CF, 0xAFCA, 0x8EF4, 0xE947, 0x1810,
++ 0xD56F, 0x88F0, 0x6F4A, 0x725C, 0x2438, 0xF157, 0xC773, 0x5197,
++ 0x23CB, 0x7CA1, 0x9CE8, 0x213E, 0xDD96, 0xDC61, 0x860D, 0x850F,
++ 0x90E0, 0x427C, 0xC471, 0xAACC, 0xD890, 0x0506, 0x01F7, 0x121C,
++ 0xA3C2, 0x5F6A, 0xF9AE, 0xD069, 0x9117, 0x5899, 0x273A, 0xB927,
++ 0x38D9, 0x13EB, 0xB32B, 0x3322, 0xBBD2, 0x70A9, 0x8907, 0xA733,
++ 0xB62D, 0x223C, 0x9215, 0x20C9, 0x4987, 0xFFAA, 0x7850, 0x7AA5,
++ 0x8F03, 0xF859, 0x8009, 0x171A, 0xDA65, 0x31D7, 0xC684, 0xB8D0,
++ 0xC382, 0xB029, 0x775A, 0x111E, 0xCB7B, 0xFCA8, 0xD66D, 0x3A2C,
+ }
+};
-+
++
+ /*
+**********************************************************************
+* Routine: Phase 1 -- generate P1K, given TA, TK, IV32
@@ -30224,31 +26238,30 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+*
+**********************************************************************
+*/
-+static void phase1(u16 *p1k,const u8 *tk,const u8 *ta,u32 iv32)
++static void phase1(u16 *p1k, const u8 *tk, const u8 *ta, u32 iv32)
+{
+ sint i;
-+_func_enter_;
++
+ /* Initialize the 80 bits of P1K[] from IV32 and TA[0..5] */
+ p1k[0] = Lo16(iv32);
+ p1k[1] = Hi16(iv32);
-+ p1k[2] = Mk16(ta[1],ta[0]); /* use TA[] as little-endian */
-+ p1k[3] = Mk16(ta[3],ta[2]);
-+ p1k[4] = Mk16(ta[5],ta[4]);
++ p1k[2] = Mk16(ta[1], ta[0]); /* use TA[] as little-endian */
++ p1k[3] = Mk16(ta[3], ta[2]);
++ p1k[4] = Mk16(ta[5], ta[4]);
+
+ /* Now compute an unbalanced Feistel cipher with 80-bit block */
+ /* size on the 80-bit block P1K[], using the 128-bit key TK[] */
-+ for (i=0; i < PHASE1_LOOP_CNT ;i++)
++ for (i = 0; i < PHASE1_LOOP_CNT ;i++)
+ { /* Each add operation here is mod 2**16 */
-+ p1k[0] += _S_(p1k[4] ^ TK16((i&1)+0));
++ p1k[0] += _S_(p1k[4] ^ TK16((i&1)+0));
+ p1k[1] += _S_(p1k[0] ^ TK16((i&1)+2));
+ p1k[2] += _S_(p1k[1] ^ TK16((i&1)+4));
+ p1k[3] += _S_(p1k[2] ^ TK16((i&1)+6));
+ p1k[4] += _S_(p1k[3] ^ TK16((i&1)+0));
+ p1k[4] += (unsigned short)i; /* avoid "slide attacks" */
+ }
-+_func_exit_;
+}
-+
++
+
+/*
+**********************************************************************
@@ -30262,7 +26275,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+* rc4key[] = the key used to encrypt the packet [128 bits]
+*
+* Note:
-+* The value {TA,IV32,IV16} for Phase1/Phase2 must be unique
++* The value {TA, IV32, IV16} for Phase1/Phase2 must be unique
+* across all packets using the same key TK value. Then, for a
+* given value of TK[], this TKIP48 construction guarantees that
+* the final RC4KEY value is unique across all packets.
@@ -30273,13 +26286,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+*
+**********************************************************************
+*/
-+static void phase2(u8 *rc4key,const u8 *tk,const u16 *p1k,u16 iv16)
++static void phase2(u8 *rc4key, const u8 *tk, const u16 *p1k, u16 iv16)
+{
+ sint i;
+ u16 PPK[6]; /* temporary key for mixing */
-+_func_enter_;
++
+ /* Note: all adds in the PPK[] equations below are mod 2**16 */
-+ for (i=0;i<5;i++) PPK[i]=p1k[i]; /* first, copy P1K to PPK */
++ for (i = 0;i<5;i++) PPK[i]=p1k[i]; /* first, copy P1K to PPK */
+ PPK[5] = p1k[4] +iv16; /* next, add in IV16 */
+
+ /* Bijective non-linear mixing of the 96 bits of PPK[0..5] */
@@ -30299,183 +26312,177 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ PPK[5] += RotR1(PPK[4]);
+ /* Note: At this point, for a given key TK[0..15], the 96-bit output */
+ /* value PPK[0..5] is guaranteed to be unique, as a function */
-+ /* of the 96-bit "input" value {TA,IV32,IV16}. That is, P1K */
-+ /* is now a keyed permutation of {TA,IV32,IV16}. */
++ /* of the 96-bit "input" value {TA, IV32, IV16}. That is, P1K */
++ /* is now a keyed permutation of {TA, IV32, IV16}. */
+
+ /* Set RC4KEY[0..3], which includes "cleartext" portion of RC4 key */
+ rc4key[0] = Hi8(iv16); /* RC4KEY[0..2] is the WEP IV */
+ rc4key[1] =(Hi8(iv16) | 0x20) & 0x7F; /* Help avoid weak (FMS) keys */
+ rc4key[2] = Lo8(iv16);
+ rc4key[3] = Lo8((PPK[5] ^ TK16(0)) >> 1);
-+
++
+
+ /* Copy 96 bits of PPK[0..5] to RC4KEY[4..15] (little-endian) */
-+ for (i=0;i<6;i++)
++ for (i = 0;i<6;i++)
+ {
+ rc4key[4+2*i] = Lo8(PPK[i]);
+ rc4key[5+2*i] = Hi8(PPK[i]);
+ }
-+_func_exit_;
+}
+
+
-+//The hlen isn't include the IV
-+u32 rtw_tkip_encrypt(_adapter *padapter, u8 *pxmitframe)
-+{ // exclude ICV
-+ u16 pnl;
-+ u32 pnh;
-+ u8 rc4key[16];
++/* The hlen isn't include the IV */
++u32 rtw_tkip_encrypt(struct adapter *padapter, u8 *pxmitframe)
++{ /* exclude ICV */
++ u16 pnl;
++ u32 pnh;
++ u8 rc4key[16];
+ u8 ttkey[16];
-+ u8 crc[4];
++ u8 crc[4];
+ u8 hw_hdr_offset = 0;
+ struct arc4context mycontext;
-+ sint curfragnum,length;
-+ u32 prwskeylen;
++ sint curfragnum, length;
++ u32 prwskeylen;
+
-+ u8 *pframe, *payload,*iv,*prwskey;
++ u8 *pframe, *payload,*iv,*prwskey;
+ union pn48 dot11txpn;
-+ //struct sta_info *stainfo;
++ /* struct sta_info *stainfo; */
+ struct pkt_attrib *pattrib = &((struct xmit_frame *)pxmitframe)->attrib;
-+ struct security_priv *psecuritypriv=&padapter->securitypriv;
-+ struct xmit_priv *pxmitpriv=&padapter->xmitpriv;
-+ u32 res=_SUCCESS;
-+_func_enter_;
++ struct security_priv *psecuritypriv =&padapter->securitypriv;
++ struct xmit_priv *pxmitpriv =&padapter->xmitpriv;
++ u32 res = _SUCCESS;
+
-+ if(((struct xmit_frame*)pxmitframe)->buf_addr==NULL)
++ if (((struct xmit_frame*)pxmitframe)->buf_addr == NULL)
+ return _FAIL;
+
+ hw_hdr_offset = TXDESC_OFFSET;
+ pframe = ((struct xmit_frame*)pxmitframe)->buf_addr + hw_hdr_offset;
+
-+ //4 start to encrypt each fragment
-+ if(pattrib->encrypt==_TKIP_){
++ /* 4 start to encrypt each fragment */
++ if (pattrib->encrypt == _TKIP_) {
+
+/*
-+ if(pattrib->psta)
++ if (pattrib->psta)
+ {
+ stainfo = pattrib->psta;
+ }
+ else
+ {
+ DBG_871X("%s, call rtw_get_stainfo()\n", __func__);
-+ stainfo=rtw_get_stainfo(&padapter->stapriv ,&pattrib->ra[0] );
-+ }
-+*/
-+ //if (stainfo!=NULL)
++ stainfo =rtw_get_stainfo(&padapter->stapriv ,&pattrib->ra[0]);
++ }
++*/
++ /* if (stainfo!= NULL) */
+ {
+/*
-+ if(!(stainfo->state &_FW_LINKED))
++ if (!(stainfo->state &_FW_LINKED))
+ {
+ DBG_871X("%s, psta->state(0x%x) != _FW_LINKED\n", __func__, stainfo->state);
+ return _FAIL;
+ }
-+*/
-+ RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("rtw_tkip_encrypt: stainfo!=NULL!!!\n"));
++*/
++ RT_TRACE(_module_rtl871x_security_c_, _drv_err_, ("rtw_tkip_encrypt: stainfo!= NULL!!!\n"));
+
-+ if(IS_MCAST(pattrib->ra))
++ if (IS_MCAST(pattrib->ra))
+ {
-+ prwskey=psecuritypriv->dot118021XGrpKey[psecuritypriv->dot118021XGrpKeyid].skey;
++ prwskey =psecuritypriv->dot118021XGrpKey[psecuritypriv->dot118021XGrpKeyid].skey;
+ }
+ else
+ {
-+ //prwskey=&stainfo->dot118021x_UncstKey.skey[0];
-+ prwskey=pattrib->dot118021x_UncstKey.skey;
++ /* prwskey =&stainfo->dot118021x_UncstKey.skey[0]; */
++ prwskey =pattrib->dot118021x_UncstKey.skey;
+ }
+
-+ prwskeylen=16;
++ prwskeylen = 16;
++
++ for (curfragnum = 0;curfragnumnr_frags;curfragnum++) {
++ iv =pframe+pattrib->hdrlen;
++ payload =pframe+pattrib->iv_len+pattrib->hdrlen;
+
-+ for(curfragnum=0;curfragnumnr_frags;curfragnum++){
-+ iv=pframe+pattrib->hdrlen;
-+ payload=pframe+pattrib->iv_len+pattrib->hdrlen;
-+
+ GET_TKIP_PN(iv, dot11txpn);
+
-+ pnl=(u16)(dot11txpn.val);
-+ pnh=(u32)(dot11txpn.val>>16);
++ pnl =(u16)(dot11txpn.val);
++ pnh =(u32)(dot11txpn.val>>16);
+
-+ phase1((u16 *)&ttkey[0],prwskey,&pattrib->ta[0],pnh);
++ phase1((u16 *)&ttkey[0], prwskey,&pattrib->ta[0], pnh);
+
-+ phase2(&rc4key[0],prwskey,(u16 *)&ttkey[0],pnl);
++ phase2(&rc4key[0], prwskey, (u16 *)&ttkey[0], pnl);
+
-+ if((curfragnum+1)==pattrib->nr_frags){ //4 the last fragment
-+ length=pattrib->last_txcmdsz-pattrib->hdrlen-pattrib->iv_len- pattrib->icv_len;
-+ RT_TRACE(_module_rtl871x_security_c_,_drv_info_,("pattrib->iv_len =%x, pattrib->icv_len =%x\n", pattrib->iv_len,pattrib->icv_len));
-+ *((u32 *)crc)=cpu_to_le32(getcrc32(payload,length));/* modified by Amy*/
++ if ((curfragnum+1) ==pattrib->nr_frags) { /* 4 the last fragment */
++ length =pattrib->last_txcmdsz-pattrib->hdrlen-pattrib->iv_len- pattrib->icv_len;
++ RT_TRACE(_module_rtl871x_security_c_, _drv_info_, ("pattrib->iv_len =%x, pattrib->icv_len =%x\n", pattrib->iv_len, pattrib->icv_len));
++ *((__le32 *)crc) = getcrc32(payload, length);/* modified by Amy*/
+
-+ arcfour_init(&mycontext, rc4key,16);
++ arcfour_init(&mycontext, rc4key, 16);
+ arcfour_encrypt(&mycontext, payload, payload, length);
+ arcfour_encrypt(&mycontext, payload+length, crc, 4);
+
+ }
-+ else{
-+ length=pxmitpriv->frag_len-pattrib->hdrlen-pattrib->iv_len-pattrib->icv_len ;
-+ *((u32 *)crc)=cpu_to_le32(getcrc32(payload,length));/* modified by Amy*/
-+ arcfour_init(&mycontext,rc4key,16);
++ else {
++ length =pxmitpriv->frag_len-pattrib->hdrlen-pattrib->iv_len-pattrib->icv_len ;
++ *((__le32 *)crc) = getcrc32(payload, length);/* modified by Amy*/
++ arcfour_init(&mycontext, rc4key, 16);
+ arcfour_encrypt(&mycontext, payload, payload, length);
+ arcfour_encrypt(&mycontext, payload+length, crc, 4);
-+
++
+ pframe+=pxmitpriv->frag_len;
-+ pframe=(u8 *)RND4((SIZE_PTR)(pframe));
++ pframe =(u8 *)RND4((SIZE_PTR)(pframe));
+
+ }
+ }
+
-+ TKIP_SW_ENC_CNT_INC(psecuritypriv,pattrib->ra);
++ TKIP_SW_ENC_CNT_INC(psecuritypriv, pattrib->ra);
+ }
+/*
-+ else{
-+ RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("rtw_tkip_encrypt: stainfo==NULL!!!\n"));
-+ DBG_871X("%s, psta==NUL\n", __func__);
-+ res=_FAIL;
++ else {
++ RT_TRACE(_module_rtl871x_security_c_, _drv_err_, ("rtw_tkip_encrypt: stainfo == NULL!!!\n"));
++ DBG_871X("%s, psta ==NUL\n", __func__);
++ res = _FAIL;
+ }
-+*/
-+
++*/
++
+ }
-+_func_exit_;
+ return res;
-+
+}
+
+
-+//The hlen isn't include the IV
-+u32 rtw_tkip_decrypt(_adapter *padapter, u8 *precvframe)
-+{ // exclude ICV
++/* The hlen isn't include the IV */
++u32 rtw_tkip_decrypt(struct adapter *padapter, u8 *precvframe)
++{ /* exclude ICV */
+ u16 pnl;
+ u32 pnh;
+ u8 rc4key[16];
+ u8 ttkey[16];
-+ u8 crc[4];
++ u8 crc[4];
+ struct arc4context mycontext;
-+ sint length;
-+ u32 prwskeylen;
++ sint length;
++ u32 prwskeylen;
+
-+ u8 *pframe, *payload,*iv,*prwskey;
++ u8 *pframe, *payload,*iv,*prwskey;
+ union pn48 dot11txpn;
-+ struct sta_info *stainfo;
++ struct sta_info *stainfo;
+ struct rx_pkt_attrib *prxattrib = &((union recv_frame *)precvframe)->u.hdr.attrib;
-+ struct security_priv *psecuritypriv=&padapter->securitypriv;
-+// struct recv_priv *precvpriv=&padapter->recvpriv;
-+ u32 res=_SUCCESS;
++ struct security_priv *psecuritypriv =&padapter->securitypriv;
++/* struct recv_priv *precvpriv =&padapter->recvpriv; */
++ u32 res = _SUCCESS;
+
-+_func_enter_;
++ pframe =(unsigned char *)((union recv_frame*)precvframe)->u.hdr.rx_data;
+
-+ pframe=(unsigned char *)((union recv_frame*)precvframe)->u.hdr.rx_data;
-+
-+ //4 start to decrypt recvframe
-+ if(prxattrib->encrypt==_TKIP_){
++ /* 4 start to decrypt recvframe */
++ if (prxattrib->encrypt == _TKIP_) {
+
-+ stainfo=rtw_get_stainfo(&padapter->stapriv ,&prxattrib->ta[0] );
-+ if (stainfo!=NULL){
++ stainfo =rtw_get_stainfo(&padapter->stapriv ,&prxattrib->ta[0]);
++ if (stainfo!= NULL) {
+
-+ if(IS_MCAST(prxattrib->ra))
++ if (IS_MCAST(prxattrib->ra))
+ {
+ static unsigned long start = 0;
+ static u32 no_gkey_bc_cnt = 0;
+ static u32 no_gkey_mc_cnt = 0;
+
-+ if(psecuritypriv->binstallGrpkey==false)
++ if (psecuritypriv->binstallGrpkey ==false)
+ {
-+ res=_FAIL;
++ res = _FAIL;
+
+ if (start == 0)
+ start = jiffies;
@@ -30505,59 +26512,58 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ no_gkey_bc_cnt = 0;
+ no_gkey_mc_cnt = 0;
+
-+ //DBG_871X("rx bc/mc packets, to perform sw rtw_tkip_decrypt\n");
-+ //prwskey = psecuritypriv->dot118021XGrpKey[psecuritypriv->dot118021XGrpKeyid].skey;
++ /* DBG_871X("rx bc/mc packets, to perform sw rtw_tkip_decrypt\n"); */
++ /* prwskey = psecuritypriv->dot118021XGrpKey[psecuritypriv->dot118021XGrpKeyid].skey; */
+ prwskey = psecuritypriv->dot118021XGrpKey[prxattrib->key_index].skey;
-+ prwskeylen=16;
++ prwskeylen = 16;
+ }
+ else
+ {
-+ prwskey=&stainfo->dot118021x_UncstKey.skey[0];
-+ prwskeylen=16;
++ prwskey =&stainfo->dot118021x_UncstKey.skey[0];
++ prwskeylen = 16;
+ }
-+
-+ iv=pframe+prxattrib->hdrlen;
-+ payload=pframe+prxattrib->iv_len+prxattrib->hdrlen;
-+ length= ((union recv_frame *)precvframe)->u.hdr.len-prxattrib->hdrlen-prxattrib->iv_len;
-+
++
++ iv =pframe+prxattrib->hdrlen;
++ payload =pframe+prxattrib->iv_len+prxattrib->hdrlen;
++ length = ((union recv_frame *)precvframe)->u.hdr.len-prxattrib->hdrlen-prxattrib->iv_len;
++
+ GET_TKIP_PN(iv, dot11txpn);
+
-+ pnl=(u16)(dot11txpn.val);
-+ pnh=(u32)(dot11txpn.val>>16);
++ pnl =(u16)(dot11txpn.val);
++ pnh =(u32)(dot11txpn.val>>16);
+
-+ phase1((u16 *)&ttkey[0],prwskey,&prxattrib->ta[0],pnh);
-+ phase2(&rc4key[0],prwskey,(unsigned short *)&ttkey[0],pnl);
++ phase1((u16 *)&ttkey[0], prwskey,&prxattrib->ta[0], pnh);
++ phase2(&rc4key[0], prwskey, (unsigned short *)&ttkey[0], pnl);
+
-+ //4 decrypt payload include icv
-+
-+ arcfour_init(&mycontext, rc4key,16);
++ /* 4 decrypt payload include icv */
++
++ arcfour_init(&mycontext, rc4key, 16);
+ arcfour_encrypt(&mycontext, payload, payload, length);
+
-+ *((u32 *)crc)=le32_to_cpu(getcrc32(payload,length-4));
++ *((u32 *)crc) =le32_to_cpu(getcrc32(payload, length-4));
+
-+ if(crc[3]!=payload[length-1] || crc[2]!=payload[length-2] || crc[1]!=payload[length-3] || crc[0]!=payload[length-4])
++ if (crc[3]!=payload[length-1] || crc[2]!=payload[length-2] || crc[1]!=payload[length-3] || crc[0]!=payload[length-4])
+ {
-+ RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("rtw_wep_decrypt:icv error crc[3](%x)!=payload[length-1](%x) || crc[2](%x)!=payload[length-2](%x) || crc[1](%x)!=payload[length-3](%x) || crc[0](%x)!=payload[length-4](%x)\n",
-+ crc[3],payload[length-1],crc[2],payload[length-2],crc[1],payload[length-3],crc[0],payload[length-4]));
-+ res=_FAIL;
++ RT_TRACE(_module_rtl871x_security_c_, _drv_err_, ("rtw_wep_decrypt:icv error crc[3](%x)!=payload[length-1](%x) || crc[2](%x)!=payload[length-2](%x) || crc[1](%x)!=payload[length-3](%x) || crc[0](%x)!=payload[length-4](%x)\n",
++ crc[3], payload[length-1], crc[2], payload[length-2], crc[1], payload[length-3], crc[0], payload[length-4]));
++ res = _FAIL;
+ }
+
+ TKIP_SW_DEC_CNT_INC(psecuritypriv, prxattrib->ra);
+ }
-+ else{
-+ RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("rtw_tkip_decrypt: stainfo==NULL!!!\n"));
-+ res=_FAIL;
++ else {
++ RT_TRACE(_module_rtl871x_security_c_, _drv_err_, ("rtw_tkip_decrypt: stainfo == NULL!!!\n"));
++ res = _FAIL;
+ }
-+
++
+ }
-+_func_exit_;
+exit:
+ return res;
-+
++
+}
+
+
-+//3 =====AES related=====
++/* 3 =====AES related ===== */
+
+
+
@@ -30614,12 +26620,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ u8 *mpdu,
+ uint payload_length,
+ u8 * pn_vector,
-+ uint frtype);// add for CONFIG_IEEE80211W, none 11w also can use
++ uint frtype);/* add for CONFIG_IEEE80211W, none 11w also can use */
+static void construct_mic_header1(
+ u8 *mic_header1,
+ sint header_length,
+ u8 *mpdu,
-+ uint frtype);// add for CONFIG_IEEE80211W, none 11w also can use
++ uint frtype);/* add for CONFIG_IEEE80211W, none 11w also can use */
+static void construct_mic_header2(
+ u8 *mic_header2,
+ u8 *mpdu,
@@ -30632,7 +26638,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ u8 *mpdu,
+ u8 *pn_vector,
+ sint c,
-+ uint frtype);// add for CONFIG_IEEE80211W, none 11w also can use
++ uint frtype);/* add for CONFIG_IEEE80211W, none 11w also can use */
+static void xor_128(u8 *a, u8 *b, u8 *out);
+static void xor_32(u8 *a, u8 *b, u8 *out);
+static u8 sbox(u8 a);
@@ -30651,24 +26657,22 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+static void xor_128(u8 *a, u8 *b, u8 *out)
+{
+ sint i;
-+_func_enter_;
-+ for (i=0;i<16; i++)
++
++ for (i = 0;i<16; i++)
+ {
+ out[i] = a[i] ^ b[i];
+ }
-+_func_exit_;
+}
+
+
+static void xor_32(u8 *a, u8 *b, u8 *out)
+{
+ sint i;
-+_func_enter_;
-+ for (i=0;i<4; i++)
++
++ for (i = 0;i<4; i++)
+ {
+ out[i] = a[i] ^ b[i];
+ }
-+_func_exit_;
+}
+
+
@@ -30687,7 +26691,6 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
+ 0x1b, 0x36, 0x36, 0x36
+ };
-+_func_enter_;
+ sbox_key[0] = sbox(key[13]);
+ sbox_key[1] = sbox(key[14]);
+ sbox_key[2] = sbox(key[15]);
@@ -30701,25 +26704,22 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ xor_32(&key[4], &key[0], &key[4]);
+ xor_32(&key[8], &key[4], &key[8]);
+ xor_32(&key[12], &key[8], &key[12]);
-+_func_exit_;
+}
+
+
+static void byte_sub(u8 *in, u8 *out)
+{
+ sint i;
-+_func_enter_;
-+ for (i=0; i< 16; i++)
++
++ for (i = 0; i< 16; i++)
+ {
+ out[i] = sbox(in[i]);
+ }
-+_func_exit_;
+}
+
+
+static void shift_row(u8 *in, u8 *out)
+{
-+_func_enter_;
+ out[0] = in[0];
+ out[1] = in[5];
+ out[2] = in[10];
@@ -30736,7 +26736,6 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ out[13] = in[1];
+ out[14] = in[6];
+ out[15] = in[11];
-+_func_exit_;
+}
+
+
@@ -30751,10 +26750,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ u8 rotr[4];
+ u8 temp[4];
+ u8 tempb[4];
-+_func_enter_;
-+ for (i=0 ; i<4; i++)
++
++ for (i = 0 ; i<4; i++)
+ {
-+ if ((in[i] & 0x80)== 0x80)
++ if ((in[i] & 0x80) == 0x80)
+ add1b[i] = 0x1b;
+ else
+ add1b[i] = 0x00;
@@ -30797,12 +26796,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ rotr[3] = temp[0];
+
+ xor_32(add1bf7, rotr, temp);
-+ xor_32(swap_halfs, rotl,tempb);
++ xor_32(swap_halfs, rotl, tempb);
+ xor_32(temp, tempb, out);
-+_func_exit_;
+}
+
-+
+static void aes128k128d(u8 *key, u8 *data, u8 *ciphertext)
+{
+ sint round;
@@ -30810,8 +26807,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ u8 intermediatea[16];
+ u8 intermediateb[16];
+ u8 round_key[16];
-+_func_enter_;
-+ for(i=0; i<16; i++) round_key[i] = key[i];
++
++ for (i = 0; i<16; i++) round_key[i] = key[i];
+
+ for (round = 0; round < 11; round++)
+ {
@@ -30838,7 +26835,6 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ next_key(round_key, round);
+ }
+ }
-+_func_exit_;
+}
+
+
@@ -30855,20 +26851,18 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ u8 *mpdu,
+ uint payload_length,
+ u8 *pn_vector,
-+ uint frtype// add for CONFIG_IEEE80211W, none 11w also can use
-+ )
++ uint frtype/* add for CONFIG_IEEE80211W, none 11w also can use */
++ )
+{
+ sint i;
-+_func_enter_;
++
+ mic_iv[0] = 0x59;
+ if (qc_exists && a4_exists) mic_iv[1] = mpdu[30] & 0x0f; /* QoS_TC */
+ if (qc_exists && !a4_exists) mic_iv[1] = mpdu[24] & 0x0f; /* mute bits 7-4 */
+ if (!qc_exists) mic_iv[1] = 0x00;
-+#ifdef CONFIG_IEEE80211W
-+ //802.11w management frame should set management bit(4)
-+ if(frtype == WIFI_MGT_TYPE)
++ /* 802.11w management frame should set management bit(4) */
++ if (frtype == WIFI_MGT_TYPE)
+ mic_iv[1] |= BIT(4);
-+#endif //CONFIG_IEEE80211W
+ for (i = 2; i < 8; i++)
+ mic_iv[i] = mpdu[i + 8]; /* mic_iv[2:7] = A2[0:5] = mpdu[10:15] */
+ #ifdef CONSISTENT_PN_ORDER
@@ -30880,7 +26874,6 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ #endif
+ mic_iv[14] = (unsigned char) (payload_length / 256);
+ mic_iv[15] = (unsigned char) (payload_length % 256);
-+_func_exit_;
+}
+
+
@@ -30888,26 +26881,24 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+/* construct_mic_header1() */
+/* Builds the first MIC header block from */
+/* header fields. */
-+/* Build AAD SC,A1,A2 */
++/* Build AAD SC, A1, A2 */
+/************************************************/
+static void construct_mic_header1(
+ u8 *mic_header1,
+ sint header_length,
+ u8 *mpdu,
-+ uint frtype// add for CONFIG_IEEE80211W, none 11w also can use
-+ )
++ uint frtype/* add for CONFIG_IEEE80211W, none 11w also can use */
++ )
+{
-+_func_enter_;
+ mic_header1[0] = (u8)((header_length - 2) / 256);
+ mic_header1[1] = (u8)((header_length - 2) % 256);
-+#ifdef CONFIG_IEEE80211W
-+ //802.11w management frame don't AND subtype bits 4,5,6 of frame control field
-+ if(frtype == WIFI_MGT_TYPE)
++
++ /* 802.11w management frame don't AND subtype bits 4, 5, 6 of frame control field */
++ if (frtype == WIFI_MGT_TYPE)
+ mic_header1[2] = mpdu[0];
+ else
-+#endif //CONFIG_IEEE80211W
+ mic_header1[2] = mpdu[0] & 0xcf; /* Mute CF poll & CF ack bits */
-+
++
+ mic_header1[3] = mpdu[1] & 0xc7; /* Mute retry, more data and pwr mgt bits */
+ mic_header1[4] = mpdu[4]; /* A1 */
+ mic_header1[5] = mpdu[5];
@@ -30921,7 +26912,6 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ mic_header1[13] = mpdu[13];
+ mic_header1[14] = mpdu[14];
+ mic_header1[15] = mpdu[15];
-+_func_exit_;
+}
+
+
@@ -30935,11 +26925,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ u8 *mpdu,
+ sint a4_exists,
+ sint qc_exists
-+ )
++ )
+{
+ sint i;
-+_func_enter_;
-+ for (i = 0; i<16; i++) mic_header2[i]=0x00;
++
++ for (i = 0; i<16; i++) mic_header2[i]= 0x00;
+
+ mic_header2[0] = mpdu[16]; /* A3 */
+ mic_header2[1] = mpdu[17];
@@ -30948,14 +26938,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ mic_header2[4] = mpdu[20];
+ mic_header2[5] = mpdu[21];
+
-+ //mic_header2[6] = mpdu[22] & 0xf0; /* SC */
+ mic_header2[6] = 0x00;
+ mic_header2[7] = 0x00; /* mpdu[23]; */
+
+
+ if (!qc_exists && a4_exists)
+ {
-+ for (i=0;i<6;i++) mic_header2[8+i] = mpdu[24+i]; /* A4 */
++ for (i = 0;i<6;i++) mic_header2[8+i] = mpdu[24+i]; /* A4 */
+
+ }
+
@@ -30967,16 +26956,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+
+ if (qc_exists && a4_exists)
+ {
-+ for (i=0;i<6;i++) mic_header2[8+i] = mpdu[24+i]; /* A4 */
++ for (i = 0;i<6;i++) mic_header2[8+i] = mpdu[24+i]; /* A4 */
+
+ mic_header2[14] = mpdu[30] & 0x0f;
+ mic_header2[15] = mpdu[31] & 0x00;
+ }
+
-+_func_exit_;
+}
+
-+
+/************************************************/
+/* construct_mic_header2() */
+/* Builds the last MIC header block from */
@@ -30991,24 +26978,22 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ u8 *mpdu,
+ u8 *pn_vector,
+ sint c,
-+ uint frtype // add for CONFIG_IEEE80211W, none 11w also can use
-+ )
++ uint frtype /* add for CONFIG_IEEE80211W, none 11w also can use */
++ )
+{
+ sint i = 0;
-+_func_enter_;
-+ for (i=0; i<16; i++) ctr_preload[i] = 0x00;
++
++ for (i = 0; i<16; i++) ctr_preload[i] = 0x00;
+ i = 0;
-+
++
+ ctr_preload[0] = 0x01; /* flag */
-+ if (qc_exists && a4_exists)
++ if (qc_exists && a4_exists)
+ ctr_preload[1] = mpdu[30] & 0x0f; /* QoC_Control */
-+ if (qc_exists && !a4_exists)
++ if (qc_exists && !a4_exists)
+ ctr_preload[1] = mpdu[24] & 0x0f;
-+#ifdef CONFIG_IEEE80211W
-+ //802.11w management frame should set management bit(4)
-+ if(frtype == WIFI_MGT_TYPE)
++ /* 802.11w management frame should set management bit(4) */
++ if (frtype == WIFI_MGT_TYPE)
+ ctr_preload[1] |= BIT(4);
-+#endif //CONFIG_IEEE80211W
+ for (i = 2; i < 8; i++)
+ ctr_preload[i] = mpdu[i + 8]; /* ctr_preload[2:7] = A2[0:5] = mpdu[10:15] */
+ #ifdef CONSISTENT_PN_ORDER
@@ -31020,7 +27005,6 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ #endif
+ ctr_preload[14] = (unsigned char) (c / 256); /* Ctr */
+ ctr_preload[15] = (unsigned char) (c % 256);
-+_func_exit_;
+}
+
+
@@ -31031,19 +27015,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+static void bitwise_xor(u8 *ina, u8 *inb, u8 *out)
+{
+ sint i;
-+_func_enter_;
-+ for (i=0; i<16; i++)
++
++ for (i = 0; i<16; i++)
+ {
+ out[i] = ina[i] ^ inb[i];
+ }
-+_func_exit_;
+}
+
+
+static sint aes_cipher(u8 *key, uint hdrlen,
+ u8 *pframe, uint plen)
+{
-+// /*static*/ unsigned char message[MAX_MSG_SIZE];
+ uint qc_exists, a4_exists, i, j, payload_remainder,
+ num_blocks, payload_index;
+
@@ -31058,12 +27040,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ u8 aes_out[16];
+ u8 padded_buffer[16];
+ u8 mic[8];
-+// uint offset = 0;
+ uint frtype = GetFrameType(pframe);
+ uint frsubtype = GetFrameSubType(pframe);
-+
-+_func_enter_;
-+ frsubtype=frsubtype>>4;
++
++ frsubtype =frsubtype>>4;
+
+
+ memset((void *)mic_iv, 0, 16);
@@ -31074,7 +27054,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ memset((void *)aes_out, 0, 16);
+ memset((void *)padded_buffer, 0, 16);
+
-+ if ((hdrlen == WLAN_HDR_A3_LEN )||(hdrlen == WLAN_HDR_A3_QOS_LEN))
++ if ((hdrlen == WLAN_HDR_A3_LEN)||(hdrlen == WLAN_HDR_A3_QOS_LEN))
+ a4_exists = 0;
+ else
+ a4_exists = 1;
@@ -31085,20 +27065,20 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ ((frtype|frsubtype) == WIFI_DATA_CFACKPOLL))
+ {
+ qc_exists = 1;
-+ if(hdrlen != WLAN_HDR_A3_QOS_LEN){
-+
++ if (hdrlen != WLAN_HDR_A3_QOS_LEN) {
++
+ hdrlen += 2;
+ }
+ }
-+ // add for CONFIG_IEEE80211W, none 11w also can use
++ /* add for CONFIG_IEEE80211W, none 11w also can use */
+ else if ((frtype == WIFI_DATA) &&
+ ((frsubtype == 0x08) ||
+ (frsubtype == 0x09)||
+ (frsubtype == 0x0a)||
+ (frsubtype == 0x0b)))
+ {
-+ if(hdrlen != WLAN_HDR_A3_QOS_LEN){
-+
++ if (hdrlen != WLAN_HDR_A3_QOS_LEN) {
++
+ hdrlen += 2;
+ }
+ qc_exists = 1;
@@ -31112,29 +27092,29 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ pn_vector[3]=pframe[hdrlen+5];
+ pn_vector[4]=pframe[hdrlen+6];
+ pn_vector[5]=pframe[hdrlen+7];
-+
++
+ construct_mic_iv(
+ mic_iv,
+ qc_exists,
+ a4_exists,
-+ pframe, //message,
++ pframe, /* message, */
+ plen,
+ pn_vector,
-+ frtype // add for CONFIG_IEEE80211W, none 11w also can use
-+ );
++ frtype /* add for CONFIG_IEEE80211W, none 11w also can use */
++ );
+
+ construct_mic_header1(
+ mic_header1,
+ hdrlen,
-+ pframe, //message
-+ frtype // add for CONFIG_IEEE80211W, none 11w also can use
-+ );
++ pframe, /* message */
++ frtype /* add for CONFIG_IEEE80211W, none 11w also can use */
++ );
+ construct_mic_header2(
+ mic_header2,
-+ pframe, //message,
++ pframe, /* message, */
+ a4_exists,
+ qc_exists
-+ );
++ );
+
+
+ payload_remainder = plen % 16;
@@ -31152,7 +27132,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+
+ for (i = 0; i < num_blocks; i++)
+ {
-+ bitwise_xor(aes_out, &pframe[payload_index], chain_buffer);//bitwise_xor(aes_out, &message[payload_index], chain_buffer);
++ bitwise_xor(aes_out, &pframe[payload_index], chain_buffer);/* bitwise_xor(aes_out, &message[payload_index], chain_buffer); */
+
+ payload_index += 16;
+ aes128k128d(key, chain_buffer, aes_out);
@@ -31164,7 +27144,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ for (j = 0; j < 16; j++) padded_buffer[j] = 0x00;
+ for (j = 0; j < payload_remainder; j++)
+ {
-+ padded_buffer[j] = pframe[payload_index++];//padded_buffer[j] = message[payload_index++];
++ padded_buffer[j] = pframe[payload_index++];/* padded_buffer[j] = message[payload_index++]; */
+ }
+ bitwise_xor(aes_out, padded_buffer, chain_buffer);
+ aes128k128d(key, chain_buffer, aes_out);
@@ -31175,22 +27155,22 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+
+ /* Insert MIC into payload */
+ for (j = 0; j < 8; j++)
-+ pframe[payload_index+j] = mic[j]; //message[payload_index+j] = mic[j];
++ pframe[payload_index+j] = mic[j]; /* message[payload_index+j] = mic[j]; */
+
+ payload_index = hdrlen + 8;
-+ for (i=0; i< num_blocks; i++)
++ for (i = 0; i< num_blocks; i++)
+ {
+ construct_ctr_preload(
+ ctr_preload,
+ a4_exists,
+ qc_exists,
-+ pframe, //message,
++ pframe, /* message, */
+ pn_vector,
+ i+1,
-+ frtype); // add for CONFIG_IEEE80211W, none 11w also can use
++ frtype); /* add for CONFIG_IEEE80211W, none 11w also can use */
+ aes128k128d(key, ctr_preload, aes_out);
-+ bitwise_xor(aes_out, &pframe[payload_index], chain_buffer);//bitwise_xor(aes_out, &message[payload_index], chain_buffer);
-+ for (j=0; j<16;j++) pframe[payload_index++] = chain_buffer[j];//for (j=0; j<16;j++) message[payload_index++] = chain_buffer[j];
++ bitwise_xor(aes_out, &pframe[payload_index], chain_buffer);/* bitwise_xor(aes_out, &message[payload_index], chain_buffer); */
++ for (j = 0; j<16;j++) pframe[payload_index++] = chain_buffer[j];/* for (j = 0; j<16;j++) message[payload_index++] = chain_buffer[j]; */
+ }
+
+ if (payload_remainder > 0) /* If there is a short final block, then pad it,*/
@@ -31199,19 +27179,19 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ ctr_preload,
+ a4_exists,
+ qc_exists,
-+ pframe, //message,
++ pframe, /* message, */
+ pn_vector,
+ num_blocks+1,
-+ frtype); // add for CONFIG_IEEE80211W, none 11w also can use
++ frtype); /* add for CONFIG_IEEE80211W, none 11w also can use */
+
+ for (j = 0; j < 16; j++) padded_buffer[j] = 0x00;
+ for (j = 0; j < payload_remainder; j++)
+ {
-+ padded_buffer[j] = pframe[payload_index+j];//padded_buffer[j] = message[payload_index+j];
++ padded_buffer[j] = pframe[payload_index+j];/* padded_buffer[j] = message[payload_index+j]; */
+ }
+ aes128k128d(key, ctr_preload, aes_out);
+ bitwise_xor(aes_out, padded_buffer, chain_buffer);
-+ for (j=0; jattrib;
-+ struct security_priv *psecuritypriv=&padapter->securitypriv;
-+ struct xmit_priv *pxmitpriv=&padapter->xmitpriv;
++ struct security_priv *psecuritypriv =&padapter->securitypriv;
++ struct xmit_priv *pxmitpriv =&padapter->xmitpriv;
+
-+// uint offset = 0;
-+ u32 res=_SUCCESS;
-+_func_enter_;
++/* uint offset = 0; */
++ u32 res = _SUCCESS;
+
-+ if(((struct xmit_frame*)pxmitframe)->buf_addr==NULL)
++ if (((struct xmit_frame*)pxmitframe)->buf_addr == NULL)
+ return _FAIL;
+
+ hw_hdr_offset = TXDESC_OFFSET;
+ pframe = ((struct xmit_frame*)pxmitframe)->buf_addr + hw_hdr_offset;
+
-+ //4 start to encrypt each fragment
-+ if((pattrib->encrypt==_AES_)){
-+/*
-+ if(pattrib->psta)
++ /* 4 start to encrypt each fragment */
++ if ((pattrib->encrypt == _AES_)) {
++ RT_TRACE(_module_rtl871x_security_c_, _drv_err_, ("rtw_aes_encrypt: stainfo!= NULL!!!\n"));
++
++ if (IS_MCAST(pattrib->ra))
+ {
-+ stainfo = pattrib->psta;
++ prwskey =psecuritypriv->dot118021XGrpKey[psecuritypriv->dot118021XGrpKeyid].skey;
+ }
+ else
+ {
-+ DBG_871X("%s, call rtw_get_stainfo()\n", __func__);
-+ stainfo=rtw_get_stainfo(&padapter->stapriv ,&pattrib->ra[0] );
++ /* prwskey =&stainfo->dot118021x_UncstKey.skey[0]; */
++ prwskey =pattrib->dot118021x_UncstKey.skey;
+ }
-+*/
-+ //if (stainfo!=NULL)
-+ {
-+/*
-+ if(!(stainfo->state &_FW_LINKED))
-+ {
-+ DBG_871X("%s, psta->state(0x%x) != _FW_LINKED\n", __func__, stainfo->state);
-+ return _FAIL;
-+ }
-+*/
-+ RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("rtw_aes_encrypt: stainfo!=NULL!!!\n"));
+
-+ if(IS_MCAST(pattrib->ra))
-+ {
-+ prwskey=psecuritypriv->dot118021XGrpKey[psecuritypriv->dot118021XGrpKeyid].skey;
-+ }
-+ else
-+ {
-+ //prwskey=&stainfo->dot118021x_UncstKey.skey[0];
-+ prwskey=pattrib->dot118021x_UncstKey.skey;
-+ }
++ prwskeylen = 16;
+
-+ prwskeylen=16;
-+
-+ for(curfragnum=0;curfragnumnr_frags;curfragnum++){
-+
-+ if((curfragnum+1)==pattrib->nr_frags){ //4 the last fragment
-+ length=pattrib->last_txcmdsz-pattrib->hdrlen-pattrib->iv_len- pattrib->icv_len;
-+
-+ aes_cipher(prwskey,pattrib->hdrlen,pframe, length);
-+ }
-+ else{
-+ length=pxmitpriv->frag_len-pattrib->hdrlen-pattrib->iv_len-pattrib->icv_len ;
-+
-+ aes_cipher(prwskey,pattrib->hdrlen,pframe, length);
-+ pframe+=pxmitpriv->frag_len;
-+ pframe=(u8*)RND4((SIZE_PTR)(pframe));
++ for (curfragnum = 0;curfragnumnr_frags;curfragnum++) {
+
-+ }
++ if ((curfragnum+1) ==pattrib->nr_frags) { /* 4 the last fragment */
++ length =pattrib->last_txcmdsz-pattrib->hdrlen-pattrib->iv_len- pattrib->icv_len;
++
++ aes_cipher(prwskey, pattrib->hdrlen, pframe, length);
+ }
++ else {
++ length =pxmitpriv->frag_len-pattrib->hdrlen-pattrib->iv_len-pattrib->icv_len ;
+
-+ AES_SW_ENC_CNT_INC(psecuritypriv, pattrib->ra);
++ aes_cipher(prwskey, pattrib->hdrlen, pframe, length);
++ pframe+=pxmitpriv->frag_len;
++ pframe =(u8 *)RND4((SIZE_PTR)(pframe));
++
++ }
+ }
-+/*
-+ else{
-+ RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("rtw_aes_encrypt: stainfo==NULL!!!\n"));
-+ DBG_871X("%s, psta==NUL\n", __func__);
-+ res=_FAIL;
-+ }
-+*/
++
++ AES_SW_ENC_CNT_INC(psecuritypriv, pattrib->ra);
+ }
-+
-+
-+
-+_func_exit_;
-+ return res;
++ return res;
+}
+
+static sint aes_decipher(u8 *key, uint hdrlen,
+ u8 *pframe, uint plen)
+{
-+ static u8 message[MAX_MSG_SIZE];
++ static u8 message[MAX_MSG_SIZE];
+ uint qc_exists, a4_exists, i, j, payload_remainder,
+ num_blocks, payload_index;
+ sint res = _SUCCESS;
@@ -31358,11 +27301,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ u8 mic[8];
+
+
-+// uint offset = 0;
++/* uint offset = 0; */
+ uint frtype = GetFrameType(pframe);
+ uint frsubtype = GetFrameSubType(pframe);
-+_func_enter_;
-+ frsubtype=frsubtype>>4;
++
++ frsubtype =frsubtype>>4;
+
+
+ memset((void *)mic_iv, 0, 16);
@@ -31373,9 +27316,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ memset((void *)aes_out, 0, 16);
+ memset((void *)padded_buffer, 0, 16);
+
-+ //start to decrypt the payload
++ /* start to decrypt the payload */
+
-+ num_blocks = (plen-8) / 16; //(plen including LLC, payload_length and mic )
++ num_blocks = (plen-8) / 16; /* plen including LLC, payload_length and mic) */
+
+ payload_remainder = (plen-8) % 16;
+
@@ -31386,7 +27329,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ pn_vector[4] = pframe[hdrlen+6];
+ pn_vector[5] = pframe[hdrlen+7];
+
-+ if ((hdrlen == WLAN_HDR_A3_LEN )||(hdrlen == WLAN_HDR_A3_QOS_LEN))
++ if ((hdrlen == WLAN_HDR_A3_LEN)||(hdrlen == WLAN_HDR_A3_QOS_LEN))
+ a4_exists = 0;
+ else
+ a4_exists = 1;
@@ -31397,19 +27340,19 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ ((frtype|frsubtype) == WIFI_DATA_CFACKPOLL))
+ {
+ qc_exists = 1;
-+ if(hdrlen != WLAN_HDR_A3_QOS_LEN){
-+
++ if (hdrlen != WLAN_HDR_A3_QOS_LEN) {
++
+ hdrlen += 2;
+ }
-+ }//only for data packet . add for CONFIG_IEEE80211W, none 11w also can use
++ }/* only for data packet . add for CONFIG_IEEE80211W, none 11w also can use */
+ else if ((frtype == WIFI_DATA) &&
+ ((frsubtype == 0x08) ||
+ (frsubtype == 0x09)||
+ (frsubtype == 0x0a)||
+ (frsubtype == 0x0b)))
+ {
-+ if(hdrlen != WLAN_HDR_A3_QOS_LEN){
-+
++ if (hdrlen != WLAN_HDR_A3_QOS_LEN) {
++
+ hdrlen += 2;
+ }
+ qc_exists = 1;
@@ -31418,11 +27361,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ qc_exists = 0;
+
+
-+ // now, decrypt pframe with hdrlen offset and plen long
++ /* now, decrypt pframe with hdrlen offset and plen long */
+
-+ payload_index = hdrlen + 8; // 8 is for extiv
-+
-+ for (i=0; i< num_blocks; i++)
++ payload_index = hdrlen + 8; /* 8 is for extiv */
++
++ for (i = 0; i< num_blocks; i++)
+ {
+ construct_ctr_preload(
+ ctr_preload,
@@ -31431,13 +27374,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ pframe,
+ pn_vector,
+ i+1,
-+ frtype // add for CONFIG_IEEE80211W, none 11w also can use
-+ );
++ frtype /* add for CONFIG_IEEE80211W, none 11w also can use */
++ );
+
+ aes128k128d(key, ctr_preload, aes_out);
+ bitwise_xor(aes_out, &pframe[payload_index], chain_buffer);
+
-+ for (j=0; j<16;j++) pframe[payload_index++] = chain_buffer[j];
++ for (j = 0; j<16;j++) pframe[payload_index++] = chain_buffer[j];
+ }
+
+ if (payload_remainder > 0) /* If there is a short final block, then pad it,*/
@@ -31449,8 +27392,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ pframe,
+ pn_vector,
+ num_blocks+1,
-+ frtype // add for CONFIG_IEEE80211W, none 11w also can use
-+ );
++ frtype /* add for CONFIG_IEEE80211W, none 11w also can use */
++ );
+
+ for (j = 0; j < 16; j++) padded_buffer[j] = 0x00;
+ for (j = 0; j < payload_remainder; j++)
@@ -31459,12 +27402,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ }
+ aes128k128d(key, ctr_preload, aes_out);
+ bitwise_xor(aes_out, padded_buffer, chain_buffer);
-+ for (j=0; j 0) /* If there is a short final block, then pad it,*/
@@ -31565,7 +27508,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ message,
+ pn_vector,
+ num_blocks+1,
-+ frtype); // add for CONFIG_IEEE80211W, none 11w also can use
++ frtype); /* add for CONFIG_IEEE80211W, none 11w also can use */
+
+ for (j = 0; j < 16; j++) padded_buffer[j] = 0x00;
+ for (j = 0; j < payload_remainder; j++)
@@ -31574,7 +27517,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ }
+ aes128k128d(key, ctr_preload, aes_out);
+ bitwise_xor(aes_out, padded_buffer, chain_buffer);
-+ for (j=0; ju.hdr.attrib;
-+ struct security_priv *psecuritypriv=&padapter->securitypriv;
-+// struct recv_priv *precvpriv=&padapter->recvpriv;
-+ u32 res=_SUCCESS;
-+_func_enter_;
-+ pframe=(unsigned char *)((union recv_frame*)precvframe)->u.hdr.rx_data;
-+ //4 start to encrypt each fragment
-+ if((prxattrib->encrypt==_AES_)){
++ struct security_priv *psecuritypriv =&padapter->securitypriv;
++/* struct recv_priv *precvpriv =&padapter->recvpriv; */
++ u32 res = _SUCCESS;
+
-+ stainfo=rtw_get_stainfo(&padapter->stapriv ,&prxattrib->ta[0] );
-+ if (stainfo!=NULL){
-+ RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("rtw_aes_decrypt: stainfo!=NULL!!!\n"));
++ pframe =(unsigned char *)((union recv_frame*)precvframe)->u.hdr.rx_data;
++ /* 4 start to encrypt each fragment */
++ if ((prxattrib->encrypt == _AES_)) {
+
-+ if(IS_MCAST(prxattrib->ra))
++ stainfo =rtw_get_stainfo(&padapter->stapriv ,&prxattrib->ta[0]);
++ if (stainfo!= NULL) {
++ RT_TRACE(_module_rtl871x_security_c_, _drv_err_, ("rtw_aes_decrypt: stainfo!= NULL!!!\n"));
++
++ if (IS_MCAST(prxattrib->ra))
+ {
+ static unsigned long start = 0;
+ static u32 no_gkey_bc_cnt = 0;
+ static u32 no_gkey_mc_cnt = 0;
+
-+ //DBG_871X("rx bc/mc packets, to perform sw rtw_aes_decrypt\n");
-+ //prwskey = psecuritypriv->dot118021XGrpKey[psecuritypriv->dot118021XGrpKeyid].skey;
-+ if(psecuritypriv->binstallGrpkey==false)
++ /* DBG_871X("rx bc/mc packets, to perform sw rtw_aes_decrypt\n"); */
++ /* prwskey = psecuritypriv->dot118021XGrpKey[psecuritypriv->dot118021XGrpKeyid].skey; */
++ if (psecuritypriv->binstallGrpkey ==false)
+ {
-+ res=_FAIL;
++ res = _FAIL;
+
+ if (start == 0)
+ start = jiffies;
@@ -31682,159 +27623,116 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ no_gkey_mc_cnt = 0;
+
+ prwskey = psecuritypriv->dot118021XGrpKey[prxattrib->key_index].skey;
-+ if(psecuritypriv->dot118021XGrpKeyid != prxattrib->key_index)
++ if (psecuritypriv->dot118021XGrpKeyid != prxattrib->key_index)
+ {
-+ DBG_871X("not match packet_index=%d, install_index=%d \n"
++ DBG_871X("not match packet_index =%d, install_index =%d\n"
+ , prxattrib->key_index, psecuritypriv->dot118021XGrpKeyid);
-+ res=_FAIL;
++ res = _FAIL;
+ goto exit;
+ }
+ }
+ else
+ {
-+ prwskey=&stainfo->dot118021x_UncstKey.skey[0];
++ prwskey =&stainfo->dot118021x_UncstKey.skey[0];
+ }
-+
-+ length= ((union recv_frame *)precvframe)->u.hdr.len-prxattrib->hdrlen-prxattrib->iv_len;
-+ /*// add for CONFIG_IEEE80211W, debug
-+ if(0)
-+ printk("@@@@@@@@@@@@@@@@@@ length=%d, prxattrib->hdrlen=%d, prxattrib->pkt_len=%d \n"
-+ , length, prxattrib->hdrlen, prxattrib->pkt_len);
-+ if(0)
-+ {
-+ int no;
-+ //test print PSK
-+ printk("PSK key below:\n");
-+ for(no=0;no<16;no++)
-+ printk(" %02x ", prwskey[no]);
-+ printk("\n");
-+ }
-+ if(0)
-+ {
-+ int no;
-+ //test print PSK
-+ printk("frame:\n");
-+ for(no=0;nopkt_len;no++)
-+ printk(" %02x ", pframe[no]);
-+ printk("\n");
-+ }*/
+
-+ res= aes_decipher(prwskey,prxattrib->hdrlen,pframe, length);
++ length = ((union recv_frame *)precvframe)->u.hdr.len-prxattrib->hdrlen-prxattrib->iv_len;
++
++ res = aes_decipher(prwskey, prxattrib->hdrlen, pframe, length);
+
+ AES_SW_DEC_CNT_INC(psecuritypriv, prxattrib->ra);
++ } else {
++ RT_TRACE(_module_rtl871x_security_c_, _drv_err_, ("rtw_aes_decrypt: stainfo == NULL!!!\n"));
++ res = _FAIL;
+ }
-+ else{
-+ RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("rtw_aes_decrypt: stainfo==NULL!!!\n"));
-+ res=_FAIL;
-+ }
-+
+ }
-+_func_exit_;
+exit:
+ return res;
+}
+
-+#ifdef CONFIG_IEEE80211W
-+u32 rtw_BIP_verify(_adapter *padapter, u8 *precvframe)
++u32 rtw_BIP_verify(struct adapter *padapter, u8 *precvframe)
+{
+ struct rx_pkt_attrib *pattrib = &((union recv_frame *)precvframe)->u.hdr.attrib;
+ u8 *pframe;
+ u8 *BIP_AAD, *p;
-+ u32 res=_FAIL;
++ u32 res = _FAIL;
+ uint len, ori_len;
-+ struct rtw_ieee80211_hdr *pwlanhdr;
++ struct ieee80211_hdr *pwlanhdr;
+ u8 mic[16];
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ __le16 le_tmp;
++ __le64 le_tmp64;
++
+ ori_len = pattrib->pkt_len-WLAN_HDR_A3_LEN+BIP_AAD_SIZE;
+ BIP_AAD = rtw_zmalloc(ori_len);
-+
-+ if(BIP_AAD == NULL)
++
++ if (BIP_AAD == NULL)
+ {
+ DBG_871X("BIP AAD allocate fail\n");
+ return _FAIL;
+ }
-+ //PKT start
-+ pframe=(unsigned char *)((union recv_frame*)precvframe)->u.hdr.rx_data;
-+ //mapping to wlan header
-+ pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
-+ //save the frame body + MME
++ /* PKT start */
++ pframe =(unsigned char *)((union recv_frame*)precvframe)->u.hdr.rx_data;
++ /* mapping to wlan header */
++ pwlanhdr = (struct ieee80211_hdr *)pframe;
++ /* save the frame body + MME */
+ memcpy(BIP_AAD+BIP_AAD_SIZE, pframe+WLAN_HDR_A3_LEN, pattrib->pkt_len-WLAN_HDR_A3_LEN);
-+ //find MME IE pointer
++ /* find MME IE pointer */
+ p = rtw_get_ie(BIP_AAD+BIP_AAD_SIZE, _MME_IE_, &len, pattrib->pkt_len-WLAN_HDR_A3_LEN);
-+ //Baron
-+ if(p)
++ /* Baron */
++ if (p)
+ {
-+ u16 keyid=0;
-+ u64 temp_ipn=0;
-+ //save packet number
-+ memcpy(&temp_ipn, p+4, 6);
-+ temp_ipn = le64_to_cpu(temp_ipn);
-+ //BIP packet number should bigger than previous BIP packet
-+ if(temp_ipn <= pmlmeext->mgnt_80211w_IPN_rx)
++ u16 keyid = 0;
++ u64 temp_ipn = 0;
++ /* save packet number */
++ memcpy(&le_tmp64, p+4, 6);
++ temp_ipn = le64_to_cpu(le_tmp64);
++ /* BIP packet number should bigger than previous BIP packet */
++ if (temp_ipn <= pmlmeext->mgnt_80211w_IPN_rx)
+ {
+ DBG_871X("replay BIP packet\n");
+ goto BIP_exit;
+ }
-+ //copy key index
-+ memcpy(&keyid, p+2, 2);
-+ keyid = le16_to_cpu(keyid);
-+ if(keyid != padapter->securitypriv.dot11wBIPKeyid)
++ /* copy key index */
++ memcpy(&le_tmp, p+2, 2);
++ keyid = le16_to_cpu(le_tmp);
++ if (keyid != padapter->securitypriv.dot11wBIPKeyid)
+ {
+ DBG_871X("BIP key index error!\n");
+ goto BIP_exit;
+ }
-+ //clear the MIC field of MME to zero
++ /* clear the MIC field of MME to zero */
+ memset(p+2+len-8, 0, 8);
-+
-+ //conscruct AAD, copy frame control field
-+ memcpy(BIP_AAD, &pwlanhdr->frame_ctl, 2);
++
++ /* conscruct AAD, copy frame control field */
++ memcpy(BIP_AAD, &pwlanhdr->frame_control, 2);
+ ClearRetry(BIP_AAD);
+ ClearPwrMgt(BIP_AAD);
+ ClearMData(BIP_AAD);
-+ //conscruct AAD, copy address 1 to address 3
++ /* conscruct AAD, copy address 1 to address 3 */
+ memcpy(BIP_AAD+2, pwlanhdr->addr1, 18);
-+
-+ if(omac1_aes_128(padapter->securitypriv.dot11wBIPKey[padapter->securitypriv.dot11wBIPKeyid].skey
++
++ if (omac1_aes_128(padapter->securitypriv.dot11wBIPKey[padapter->securitypriv.dot11wBIPKeyid].skey
+ , BIP_AAD, ori_len, mic))
+ goto BIP_exit;
-+
-+ /*//management packet content
-+ {
-+ int pp;
-+ DBG_871X("pkt: ");
-+ for(pp=0;pp< pattrib->pkt_len; pp++)
-+ printk(" %02x ", pframe[pp]);
-+ DBG_871X("\n");
-+ //BIP AAD + management frame body + MME(MIC is zero)
-+ DBG_871X("AAD+PKT: ");
-+ for(pp=0;pp< ori_len; pp++)
-+ DBG_871X(" %02x ", BIP_AAD[pp]);
-+ DBG_871X("\n");
-+ //show the MIC result
-+ DBG_871X("mic: ");
-+ for(pp=0;pp<16; pp++)
-+ DBG_871X(" %02x ", mic[pp]);
-+ DBG_871X("\n");
-+ }
-+ */
-+ //MIC field should be last 8 bytes of packet (packet without FCS)
-+ if(!memcmp(mic, pframe+pattrib->pkt_len-8, 8))
++
++ /* MIC field should be last 8 bytes of packet (packet without FCS) */
++ if (!memcmp(mic, pframe+pattrib->pkt_len-8, 8))
+ {
+ pmlmeext->mgnt_80211w_IPN_rx = temp_ipn;
-+ res=_SUCCESS;
++ res = _SUCCESS;
+ }
+ else
+ DBG_871X("BIP MIC error!\n");
-+
++
+ }
+ else
+ res = RTW_RX_HANDLED;
+BIP_exit:
+
-+ rtw_mfree(BIP_AAD, ori_len);
++ kfree(BIP_AAD);
+ return res;
+}
-+#endif //CONFIG_IEEE80211W
+
+/* AES tables*/
+const u32 Te0[256] = {
@@ -32018,7 +27916,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ int i;
+ u32 temp;
+
-+ rk[0] = GETU32(cipherKey );
++ rk[0] = GETU32(cipherKey );
+ rk[1] = GETU32(cipherKey + 4);
+ rk[2] = GETU32(cipherKey + 8);
+ rk[3] = GETU32(cipherKey + 12);
@@ -32044,12 +27942,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ * map byte array block to cipher state
+ * and add initial round key:
+ */
-+ s0 = GETU32(pt ) ^ rk[0];
++ s0 = GETU32(pt ) ^ rk[0];
+ s1 = GETU32(pt + 4) ^ rk[1];
+ s2 = GETU32(pt + 8) ^ rk[2];
+ s3 = GETU32(pt + 12) ^ rk[3];
+
-+#define ROUND(i,d,s) \
++#define ROUND(i, d, s) \
+d##0 = TE0(s##0) ^ TE1(s##1) ^ TE2(s##2) ^ TE3(s##3) ^ rk[4 * i]; \
+d##1 = TE0(s##1) ^ TE1(s##2) ^ TE2(s##3) ^ TE3(s##0) ^ rk[4 * i + 1]; \
+d##2 = TE0(s##2) ^ TE1(s##3) ^ TE2(s##0) ^ TE3(s##1) ^ rk[4 * i + 2]; \
@@ -32058,11 +27956,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ /* Nr - 1 full rounds: */
+ r = Nr >> 1;
+ for (;;) {
-+ ROUND(1,t,s);
++ ROUND(1, t, s);
+ rk += 8;
+ if (--r == 0)
+ break;
-+ ROUND(0,s,t);
++ ROUND(0, s, t);
+ }
+
+#undef ROUND
@@ -32081,7 +27979,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ PUTU32(ct + 12, s3);
+}
+
-+static void * aes_encrypt_init(u8 *key, size_t len)
++static void *aes_encrypt_init(u8 *key, size_t len)
+{
+ u32 *rk;
+ if (len != 16)
@@ -32114,7 +28012,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+static void aes_encrypt_deinit(void *ctx)
+{
+ memset(ctx, 0, AES_PRIV_SIZE);
-+ rtw_mfree(ctx, AES_PRIV_SIZE);
++ kfree(ctx);
+}
+
+
@@ -32203,68 +28101,44 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+ * This is a mode for using block cipher (AES in this case) for authentication.
+ * OMAC1 was standardized with the name CMAC by NIST in a Special Publication
+ * (SP) 800-38B.
-+ */ //modify for CONFIG_IEEE80211W
++ * modify for CONFIG_IEEE80211W */
+int omac1_aes_128(u8 *key, u8 *data, size_t data_len, u8 *mac)
+{
+ return omac1_aes_128_vector(key, 1, &data, &data_len, mac);
+}
+
-+void rtw_use_tkipkey_handler(RTW_TIMER_HDL_ARGS)
-+{
-+ _adapter *padapter = (_adapter *)FunctionContext;
-+
-+_func_enter_;
-+
-+ RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("^^^rtw_use_tkipkey_handler ^^^\n"));
-+
-+/*
-+ if(padapter->bDriverStopped ||padapter->bSurpriseRemoved){
-+ RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("^^^rtw_use_tkipkey_handler (padapter->bDriverStopped %d)(padapter->bSurpriseRemoved %d)^^^\n",padapter->bDriverStopped,padapter->bSurpriseRemoved));
-+
-+ return;
-+ }
-+ */
-+
-+ padapter->securitypriv.busetkipkey=true;
-+
-+ RT_TRACE(_module_rtl871x_security_c_,_drv_err_,("^^^rtw_use_tkipkey_handler padapter->securitypriv.busetkipkey=%d^^^\n",padapter->securitypriv.busetkipkey));
-+
-+_func_exit_;
-+
-+}
-+
+/* Restore HW wep key setting according to key_mask */
-+void rtw_sec_restore_wep_key(_adapter *adapter)
++void rtw_sec_restore_wep_key(struct adapter *adapter)
+{
-+ struct security_priv* securitypriv=&(adapter->securitypriv);
++ struct security_priv* securitypriv =&(adapter->securitypriv);
+ sint keyid;
+
-+ if((_WEP40_ == securitypriv->dot11PrivacyAlgrthm) ||(_WEP104_ == securitypriv->dot11PrivacyAlgrthm)) {
-+ for(keyid=0;keyid<4;keyid++){
-+ if(securitypriv->key_mask & BIT(keyid)){
-+ if(keyid == securitypriv->dot11PrivacyKeyIndex)
-+ rtw_set_key(adapter,securitypriv, keyid, 1, false);
++ if ((_WEP40_ == securitypriv->dot11PrivacyAlgrthm) ||(_WEP104_ == securitypriv->dot11PrivacyAlgrthm)) {
++ for (keyid = 0;keyid<4;keyid++) {
++ if (securitypriv->key_mask & BIT(keyid)) {
++ if (keyid == securitypriv->dot11PrivacyKeyIndex)
++ rtw_set_key(adapter, securitypriv, keyid, 1, false);
+ else
-+ rtw_set_key(adapter,securitypriv, keyid, 0, false);
++ rtw_set_key(adapter, securitypriv, keyid, 0, false);
+ }
+ }
+ }
+}
+
-+u8 rtw_handle_tkip_countermeasure(_adapter* adapter, const char *caller)
++u8 rtw_handle_tkip_countermeasure(struct adapter * adapter, const char *caller)
+{
-+ struct security_priv* securitypriv=&(adapter->securitypriv);
++ struct security_priv* securitypriv =&(adapter->securitypriv);
+ u8 status = _SUCCESS;
+
+ if (securitypriv->btkip_countermeasure == true) {
+ unsigned long passing_ms = jiffies_to_msecs(jiffies - securitypriv->btkip_countermeasure_time);
+ if (passing_ms > 60*1000) {
-+ DBG_871X_LEVEL(_drv_always_, "%s("ADPT_FMT") countermeasure time:%lus > 60s \n",
++ DBG_871X_LEVEL(_drv_always_, "%s("ADPT_FMT") countermeasure time:%lus > 60s\n",
+ caller, ADPT_ARG(adapter), passing_ms/1000);
+ securitypriv->btkip_countermeasure = false;
+ securitypriv->btkip_countermeasure_time = 0;
+ } else {
-+ DBG_871X_LEVEL(_drv_always_, "%s("ADPT_FMT") countermeasure time:%lus < 60s \n",
++ DBG_871X_LEVEL(_drv_always_, "%s("ADPT_FMT") countermeasure time:%lus < 60s\n",
+ caller, ADPT_ARG(adapter), passing_ms/1000);
+ status = _FAIL;
+ }
@@ -32272,15 +28146,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_security.c linux/3rdparty/rtl87
+
+ return status;
+}
-+
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_sta_mgt.c linux/3rdparty/rtl8723bs/core/rtw_sta_mgt.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_sta_mgt.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_sta_mgt.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,764 @@
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_sta_mgt.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_sta_mgt.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_sta_mgt.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_sta_mgt.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,646 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
-+ *
++ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
@@ -32290,138 +28163,105 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_sta_mgt.c linux/3rdparty/rtl872
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
+#define _RTW_STA_MGT_C_
+
+#include
++#include
+
+void _rtw_init_stainfo(struct sta_info *psta);
+void _rtw_init_stainfo(struct sta_info *psta)
+{
-+
-+_func_enter_;
-+
+ memset((u8 *)psta, 0, sizeof (struct sta_info));
+
+ spin_lock_init(&psta->lock);
-+ _rtw_init_listhead(&psta->list);
-+ _rtw_init_listhead(&psta->hash_list);
-+ //_rtw_init_listhead(&psta->asoc_list);
-+ //_rtw_init_listhead(&psta->sleep_list);
-+ //_rtw_init_listhead(&psta->wakeup_list);
++ INIT_LIST_HEAD(&psta->list);
++ INIT_LIST_HEAD(&psta->hash_list);
++ /* INIT_LIST_HEAD(&psta->asoc_list); */
++ /* INIT_LIST_HEAD(&psta->sleep_list); */
++ /* INIT_LIST_HEAD(&psta->wakeup_list); */
+
+ _rtw_init_queue(&psta->sleep_q);
+ psta->sleepq_len = 0;
+
+ _rtw_init_sta_xmit_priv(&psta->sta_xmitpriv);
+ _rtw_init_sta_recv_priv(&psta->sta_recvpriv);
-+
-+#ifdef CONFIG_AP_MODE
+
-+ _rtw_init_listhead(&psta->asoc_list);
++ INIT_LIST_HEAD(&psta->asoc_list);
++
++ INIT_LIST_HEAD(&psta->auth_list);
+
-+ _rtw_init_listhead(&psta->auth_list);
-+
+ psta->expire_to = 0;
-+
++
+ psta->flags = 0;
-+
++
+ psta->capability = 0;
+
+ psta->bpairwise_key_installed = false;
+
-+
-+#ifdef CONFIG_NATIVEAP_MLME
+ psta->nonerp_set = 0;
+ psta->no_short_slot_time_set = 0;
+ psta->no_short_preamble_set = 0;
+ psta->no_ht_gf_set = 0;
+ psta->no_ht_set = 0;
+ psta->ht_20mhz_set = 0;
-+#endif
+
-+#ifdef CONFIG_TX_MCAST2UNI
+ psta->under_exist_checking = 0;
-+#endif // CONFIG_TX_MCAST2UNI
-+
++
+ psta->keep_alive_trycnt = 0;
-+
-+#endif // CONFIG_AP_MODE
-+
-+_func_exit_;
-+
+}
+
-+u32 _rtw_init_sta_priv(struct sta_priv *pstapriv)
++u32 _rtw_init_sta_priv(struct sta_priv *pstapriv)
+{
+ struct sta_info *psta;
+ s32 i;
+
-+_func_enter_;
++ pstapriv->pallocated_stainfo_buf = vzalloc (sizeof(struct sta_info) * NUM_STA+ 4);
+
-+ pstapriv->pallocated_stainfo_buf = rtw_zvmalloc (sizeof(struct sta_info) * NUM_STA+ 4);
-+
-+ if(!pstapriv->pallocated_stainfo_buf)
++ if (!pstapriv->pallocated_stainfo_buf)
+ return _FAIL;
+
-+ pstapriv->pstainfo_buf = pstapriv->pallocated_stainfo_buf + 4 -
-+ ((SIZE_PTR)(pstapriv->pallocated_stainfo_buf ) & 3);
++ pstapriv->pstainfo_buf = pstapriv->pallocated_stainfo_buf + 4 -
++ ((SIZE_PTR)(pstapriv->pallocated_stainfo_buf) & 3);
+
+ _rtw_init_queue(&pstapriv->free_sta_queue);
+
+ spin_lock_init(&pstapriv->sta_hash_lock);
-+
-+ //_rtw_init_queue(&pstapriv->asoc_q);
++
++ /* _rtw_init_queue(&pstapriv->asoc_q); */
+ pstapriv->asoc_sta_count = 0;
+ _rtw_init_queue(&pstapriv->sleep_q);
+ _rtw_init_queue(&pstapriv->wakeup_q);
+
+ psta = (struct sta_info *)(pstapriv->pstainfo_buf);
+
-+
-+ for(i = 0; i < NUM_STA; i++)
++
++ for (i = 0; i < NUM_STA; i++)
+ {
+ _rtw_init_stainfo(psta);
+
-+ _rtw_init_listhead(&(pstapriv->sta_hash[i]));
++ INIT_LIST_HEAD(&(pstapriv->sta_hash[i]));
+
-+ rtw_list_insert_tail(&psta->list, get_list_head(&pstapriv->free_sta_queue));
++ list_add_tail(&psta->list, get_list_head(&pstapriv->free_sta_queue));
+
+ psta++;
+ }
+
-+
-+
-+#ifdef CONFIG_AP_MODE
-+
+ pstapriv->sta_dz_bitmap = 0;
+ pstapriv->tim_bitmap = 0;
+
-+ _rtw_init_listhead(&pstapriv->asoc_list);
-+ _rtw_init_listhead(&pstapriv->auth_list);
++ INIT_LIST_HEAD(&pstapriv->asoc_list);
++ INIT_LIST_HEAD(&pstapriv->auth_list);
+ spin_lock_init(&pstapriv->asoc_list_lock);
+ spin_lock_init(&pstapriv->auth_list_lock);
+ pstapriv->asoc_list_cnt = 0;
+ pstapriv->auth_list_cnt = 0;
+
-+ pstapriv->auth_to = 3; // 3*2 = 6 sec
++ pstapriv->auth_to = 3; /* 3*2 = 6 sec */
+ pstapriv->assoc_to = 3;
-+ //pstapriv->expire_to = 900;// 900*2 = 1800 sec = 30 min, expire after no any traffic.
-+ //pstapriv->expire_to = 30;// 30*2 = 60 sec = 1 min, expire after no any traffic.
-+ pstapriv->expire_to = 3; // 3*2 = 6 sec
++ pstapriv->expire_to = 3; /* 3*2 = 6 sec */
+ pstapriv->max_num_sta = NUM_STA;
-+
-+#endif
-+
-+_func_exit_;
-+
+ return _SUCCESS;
-+
+}
+
+inline int rtw_stainfo_offset(struct sta_priv *stapriv, struct sta_info *sta)
@@ -32442,125 +28282,107 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_sta_mgt.c linux/3rdparty/rtl872
+ return (struct sta_info *)(stapriv->pstainfo_buf + offset * sizeof(struct sta_info));
+}
+
-+// this function is used to free the memory of lock || sema for all stainfos
-+void rtw_mfree_all_stainfo(struct sta_priv *pstapriv );
-+void rtw_mfree_all_stainfo(struct sta_priv *pstapriv )
++/* this function is used to free the memory of lock || sema for all stainfos */
++void kfree_all_stainfo(struct sta_priv *pstapriv);
++void kfree_all_stainfo(struct sta_priv *pstapriv)
+{
-+ _irqL irqL;
-+ _list *plist, *phead;
++ struct list_head *plist, *phead;
+ struct sta_info *psta = NULL;
-+
-+_func_enter_;
+
-+ _enter_critical_bh(&pstapriv->sta_hash_lock, &irqL);
++ spin_lock_bh(&pstapriv->sta_hash_lock);
+
+ phead = get_list_head(&pstapriv->free_sta_queue);
+ plist = get_next(phead);
-+
-+ while ((rtw_end_of_queue_search(phead, plist)) == false)
++
++ while (phead != plist)
+ {
-+ psta = LIST_CONTAINOR(plist, struct sta_info ,list);
++ psta = LIST_CONTAINOR(plist, struct sta_info , list);
+ plist = get_next(plist);
+ }
-+
-+ _exit_critical_bh(&pstapriv->sta_hash_lock, &irqL);
-+
-+_func_exit_;
+
++ spin_unlock_bh(&pstapriv->sta_hash_lock);
+}
+
-+void rtw_mfree_sta_priv_lock(struct sta_priv *pstapriv);
-+void rtw_mfree_sta_priv_lock(struct sta_priv *pstapriv)
++void kfree_sta_priv_lock(struct sta_priv *pstapriv);
++void kfree_sta_priv_lock(struct sta_priv *pstapriv)
+{
-+#ifdef CONFIG_AP_MODE
-+ struct wlan_acl_pool *pacl_list = &pstapriv->acl_list;
-+#endif
-+
-+ rtw_mfree_all_stainfo(pstapriv); //be done before free sta_hash_lock
++ kfree_all_stainfo(pstapriv); /* be done before free sta_hash_lock */
+}
+
-+u32 _rtw_free_sta_priv(struct sta_priv *pstapriv)
++u32 _rtw_free_sta_priv(struct sta_priv *pstapriv)
+{
-+ _irqL irqL;
-+ _list *phead, *plist;
++ struct list_head *phead, *plist;
+ struct sta_info *psta = NULL;
+ struct recv_reorder_ctrl *preorder_ctrl;
-+ int index;
++ int index;
+
-+_func_enter_;
-+ if(pstapriv){
++ if (pstapriv) {
+
-+ /* delete all reordering_ctrl_timer */
-+ _enter_critical_bh(&pstapriv->sta_hash_lock, &irqL);
-+ for(index = 0; index < NUM_STA; index++)
++ /*delete all reordering_ctrl_timer */
++ spin_lock_bh(&pstapriv->sta_hash_lock);
++ for (index = 0; index < NUM_STA; index++)
+ {
+ phead = &(pstapriv->sta_hash[index]);
+ plist = get_next(phead);
-+
-+ while ((rtw_end_of_queue_search(phead, plist)) == false)
++
++ while (phead != plist)
+ {
-+ int i;
-+ psta = LIST_CONTAINOR(plist, struct sta_info ,hash_list);
++ int i;
++ psta = LIST_CONTAINOR(plist, struct sta_info , hash_list);
+ plist = get_next(plist);
+
-+ for(i=0; i < 16 ; i++)
++ for (i = 0; i < 16 ; i++)
+ {
+ preorder_ctrl = &psta->recvreorder_ctrl[i];
-+ _cancel_timer_ex(&preorder_ctrl->reordering_ctrl_timer);
++ del_timer_sync(&preorder_ctrl->reordering_ctrl_timer);
+ }
+ }
+ }
-+ _exit_critical_bh(&pstapriv->sta_hash_lock, &irqL);
++ spin_unlock_bh(&pstapriv->sta_hash_lock);
+ /*===============================*/
-+
-+ rtw_mfree_sta_priv_lock(pstapriv);
+
-+ if(pstapriv->pallocated_stainfo_buf) {
-+ rtw_vmfree(pstapriv->pallocated_stainfo_buf, sizeof(struct sta_info)*NUM_STA+4);
++ kfree_sta_priv_lock(pstapriv);
++
++ if (pstapriv->pallocated_stainfo_buf) {
++ vfree(pstapriv->pallocated_stainfo_buf);
+ }
+ }
-+
-+_func_exit_;
+ return _SUCCESS;
+}
+
-+
-+//struct sta_info *rtw_alloc_stainfo(_queue *pfree_sta_queue, unsigned char *hwaddr)
-+struct sta_info *rtw_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
-+{
-+ _irqL irqL, irqL2;
++/* struct sta_info *rtw_alloc_stainfo(_queue *pfree_sta_queue, unsigned char *hwaddr) */
++struct sta_info *rtw_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
++{
+ uint tmp_aid;
+ s32 index;
-+ _list *phash_list;
-+ struct sta_info *psta;
-+ _queue *pfree_sta_queue;
++ struct list_head *phash_list;
++ struct sta_info *psta;
++ struct __queue *pfree_sta_queue;
+ struct recv_reorder_ctrl *preorder_ctrl;
+ int i = 0;
+ u16 wRxSeqInitialValue = 0xffff;
-+
-+_func_enter_;
+
+ pfree_sta_queue = &pstapriv->free_sta_queue;
+
-+ //_enter_critical_bh(&(pfree_sta_queue->lock), &irqL);
-+ _enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);
-+ if (_rtw_queue_empty(pfree_sta_queue) == true)
++ /* spin_lock_bh(&(pfree_sta_queue->lock)); */
++ spin_lock_bh(&(pstapriv->sta_hash_lock));
++ if (list_empty(&pfree_sta_queue->queue))
+ {
-+ //_exit_critical_bh(&(pfree_sta_queue->lock), &irqL);
-+ _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);
++ /* spin_unlock_bh(&(pfree_sta_queue->lock)); */
++ spin_unlock_bh(&(pstapriv->sta_hash_lock));
+ psta = NULL;
+ return psta;
+ }
+ else
+ {
+ psta = LIST_CONTAINOR(get_next(&pfree_sta_queue->queue), struct sta_info, list);
-+
-+ rtw_list_delete(&(psta->list));
+
-+ //_exit_critical_bh(&(pfree_sta_queue->lock), &irqL);
-+
-+ tmp_aid = psta->aid;
-+
++ list_del_init(&(psta->list));
++
++ /* spin_unlock_bh(&(pfree_sta_queue->lock)); */
++
++ tmp_aid = psta->aid;
++
+ _rtw_init_stainfo(psta);
+
+ psta->padapter = pstapriv->padapter;
@@ -32569,55 +28391,56 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_sta_mgt.c linux/3rdparty/rtl872
+
+ index = wifi_mac_hash(hwaddr);
+
-+ RT_TRACE(_module_rtl871x_sta_mgt_c_,_drv_info_,("rtw_alloc_stainfo: index = %x", index));
++ RT_TRACE(_module_rtl871x_sta_mgt_c_, _drv_info_, ("rtw_alloc_stainfo: index = %x", index));
+
-+ if(index >= NUM_STA){
-+ RT_TRACE(_module_rtl871x_sta_mgt_c_,_drv_err_,("ERROR=> rtw_alloc_stainfo: index >= NUM_STA"));
-+ psta= NULL;
++ if (index >= NUM_STA) {
++ RT_TRACE(_module_rtl871x_sta_mgt_c_, _drv_err_, ("ERROR => rtw_alloc_stainfo: index >= NUM_STA"));
++ spin_unlock_bh(&(pstapriv->sta_hash_lock));
++ psta = NULL;
+ goto exit;
+ }
+ phash_list = &(pstapriv->sta_hash[index]);
+
-+ //_enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);
++ /* spin_lock_bh(&(pstapriv->sta_hash_lock)); */
+
-+ rtw_list_insert_tail(&psta->hash_list, phash_list);
++ list_add_tail(&psta->hash_list, phash_list);
+
+ pstapriv->asoc_sta_count ++ ;
+
-+ //_exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);
++ /* spin_unlock_bh(&(pstapriv->sta_hash_lock)); */
+
-+// Commented by Albert 2009/08/13
-+// For the SMC router, the sequence number of first packet of WPS handshake will be 0.
-+// In this case, this packet will be dropped by recv_decache function if we use the 0x00 as the default value for tid_rxseq variable.
-+// So, we initialize the tid_rxseq variable as the 0xffff.
++/* Commented by Albert 2009/08/13 */
++/* For the SMC router, the sequence number of first packet of WPS handshake will be 0. */
++/* In this case, this packet will be dropped by recv_decache function if we use the 0x00 as the default value for tid_rxseq variable. */
++/* So, we initialize the tid_rxseq variable as the 0xffff. */
+
-+ for( i = 0; i < 16; i++ )
++ for (i = 0; i < 16; i++)
+ {
-+ memcpy( &psta->sta_recvpriv.rxcache.tid_rxseq[ i ], &wRxSeqInitialValue, 2 );
++ memcpy(&psta->sta_recvpriv.rxcache.tid_rxseq[ i ], &wRxSeqInitialValue, 2);
+ }
+
-+ RT_TRACE(_module_rtl871x_sta_mgt_c_,_drv_info_,("alloc number_%d stainfo with hwaddr = %x %x %x %x %x %x \n",
-+ pstapriv->asoc_sta_count , hwaddr[0], hwaddr[1], hwaddr[2],hwaddr[3],hwaddr[4],hwaddr[5]));
++ RT_TRACE(_module_rtl871x_sta_mgt_c_, _drv_info_, ("alloc number_%d stainfo with hwaddr = %x %x %x %x %x %x \n",
++ pstapriv->asoc_sta_count , hwaddr[0], hwaddr[1], hwaddr[2], hwaddr[3], hwaddr[4], hwaddr[5]));
+
+ init_addba_retry_timer(pstapriv->padapter, psta);
+
-+ //for A-MPDU Rx reordering buffer control
-+ for(i=0; i < 16 ; i++)
++ /* for A-MPDU Rx reordering buffer control */
++ for (i = 0; i < 16 ; i++)
+ {
+ preorder_ctrl = &psta->recvreorder_ctrl[i];
+
+ preorder_ctrl->padapter = pstapriv->padapter;
-+
++
+ preorder_ctrl->enable = false;
-+
++
+ preorder_ctrl->indicate_seq = 0xffff;
+ #ifdef DBG_RX_SEQ
-+ DBG_871X("DBG_RX_SEQ %s:%d IndicateSeq: %d\n", __FUNCTION__, __LINE__,
++ DBG_871X("DBG_RX_SEQ %s:%d IndicateSeq: %d\n", __func__, __LINE__,
+ preorder_ctrl->indicate_seq);
+ #endif
-+ preorder_ctrl->wend_b= 0xffff;
-+ //preorder_ctrl->wsize_b = (NR_RECVBUFF-2);
-+ preorder_ctrl->wsize_b = 64;//64;
++ preorder_ctrl->wend_b = 0xffff;
++ /* preorder_ctrl->wsize_b = (NR_RECVBUFF-2); */
++ preorder_ctrl->wsize_b = 64;/* 64; */
+
+ _rtw_init_queue(&preorder_ctrl->pending_recvframe_queue);
+
@@ -32625,173 +28448,160 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_sta_mgt.c linux/3rdparty/rtl872
+ }
+
+
-+ //init for DM
++ /* init for DM */
+ psta->rssi_stat.UndecoratedSmoothedPWDB = (-1);
+ psta->rssi_stat.UndecoratedSmoothedCCK = (-1);
+
+ /* init for the sequence number of received management frame */
+ psta->RxMgmtFrameSeqNum = 0xffff;
-+
-+ //alloc mac id for non-bc/mc station,
++ spin_unlock_bh(&(pstapriv->sta_hash_lock));
++ /* alloc mac id for non-bc/mc station, */
+ rtw_alloc_macid(pstapriv->padapter, psta);
+
+ }
-+
++
+exit:
+
-+ _exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);
-+
-+_func_exit_;
+
+ return psta;
-+
-+
+}
+
-+
-+// using pstapriv->sta_hash_lock to protect
-+u32 rtw_free_stainfo(_adapter *padapter , struct sta_info *psta)
-+{
++/* using pstapriv->sta_hash_lock to protect */
++u32 rtw_free_stainfo(struct adapter *padapter , struct sta_info *psta)
++{
+ int i;
-+ _irqL irqL0;
-+ _queue *pfree_sta_queue;
++ struct __queue *pfree_sta_queue;
+ struct recv_reorder_ctrl *preorder_ctrl;
-+ struct sta_xmit_priv *pstaxmitpriv;
-+ struct xmit_priv *pxmitpriv= &padapter->xmitpriv;
++ struct sta_xmit_priv *pstaxmitpriv;
++ struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
+ struct sta_priv *pstapriv = &padapter->stapriv;
+ struct hw_xmit *phwxmit;
+
-+
-+_func_enter_;
-+
+ if (psta == NULL)
+ goto exit;
+
+
-+ _enter_critical_bh(&psta->lock, &irqL0);
++ spin_lock_bh(&psta->lock);
+ psta->state &= ~_FW_LINKED;
-+ _exit_critical_bh(&psta->lock, &irqL0);
++ spin_unlock_bh(&psta->lock);
+
+ pfree_sta_queue = &pstapriv->free_sta_queue;
+
+
+ pstaxmitpriv = &psta->sta_xmitpriv;
-+
-+ //rtw_list_delete(&psta->sleep_list);
-+
-+ //rtw_list_delete(&psta->wakeup_list);
-+
-+ _enter_critical_bh(&pxmitpriv->lock, &irqL0);
-+
++
++ /* list_del_init(&psta->sleep_list); */
++
++ /* list_del_init(&psta->wakeup_list); */
++
++ spin_lock_bh(&pxmitpriv->lock);
++
+ rtw_free_xmitframe_queue(pxmitpriv, &psta->sleep_q);
+ psta->sleepq_len = 0;
-+
-+ //vo
-+ //_enter_critical_bh(&(pxmitpriv->vo_pending.lock), &irqL0);
-+ rtw_free_xmitframe_queue( pxmitpriv, &pstaxmitpriv->vo_q.sta_pending);
-+ rtw_list_delete(&(pstaxmitpriv->vo_q.tx_pending));
++
++ /* vo */
++ /* spin_lock_bh(&(pxmitpriv->vo_pending.lock)); */
++ rtw_free_xmitframe_queue(pxmitpriv, &pstaxmitpriv->vo_q.sta_pending);
++ list_del_init(&(pstaxmitpriv->vo_q.tx_pending));
+ phwxmit = pxmitpriv->hwxmits;
+ phwxmit->accnt -= pstaxmitpriv->vo_q.qcnt;
+ pstaxmitpriv->vo_q.qcnt = 0;
-+ //_exit_critical_bh(&(pxmitpriv->vo_pending.lock), &irqL0);
++ /* spin_unlock_bh(&(pxmitpriv->vo_pending.lock)); */
+
-+ //vi
-+ //_enter_critical_bh(&(pxmitpriv->vi_pending.lock), &irqL0);
-+ rtw_free_xmitframe_queue( pxmitpriv, &pstaxmitpriv->vi_q.sta_pending);
-+ rtw_list_delete(&(pstaxmitpriv->vi_q.tx_pending));
++ /* vi */
++ /* spin_lock_bh(&(pxmitpriv->vi_pending.lock)); */
++ rtw_free_xmitframe_queue(pxmitpriv, &pstaxmitpriv->vi_q.sta_pending);
++ list_del_init(&(pstaxmitpriv->vi_q.tx_pending));
+ phwxmit = pxmitpriv->hwxmits+1;
+ phwxmit->accnt -= pstaxmitpriv->vi_q.qcnt;
+ pstaxmitpriv->vi_q.qcnt = 0;
-+ //_exit_critical_bh(&(pxmitpriv->vi_pending.lock), &irqL0);
++ /* spin_unlock_bh(&(pxmitpriv->vi_pending.lock)); */
+
-+ //be
-+ //_enter_critical_bh(&(pxmitpriv->be_pending.lock), &irqL0);
-+ rtw_free_xmitframe_queue( pxmitpriv, &pstaxmitpriv->be_q.sta_pending);
-+ rtw_list_delete(&(pstaxmitpriv->be_q.tx_pending));
++ /* be */
++ /* spin_lock_bh(&(pxmitpriv->be_pending.lock)); */
++ rtw_free_xmitframe_queue(pxmitpriv, &pstaxmitpriv->be_q.sta_pending);
++ list_del_init(&(pstaxmitpriv->be_q.tx_pending));
+ phwxmit = pxmitpriv->hwxmits+2;
+ phwxmit->accnt -= pstaxmitpriv->be_q.qcnt;
+ pstaxmitpriv->be_q.qcnt = 0;
-+ //_exit_critical_bh(&(pxmitpriv->be_pending.lock), &irqL0);
-+
-+ //bk
-+ //_enter_critical_bh(&(pxmitpriv->bk_pending.lock), &irqL0);
-+ rtw_free_xmitframe_queue( pxmitpriv, &pstaxmitpriv->bk_q.sta_pending);
-+ rtw_list_delete(&(pstaxmitpriv->bk_q.tx_pending));
++ /* spin_unlock_bh(&(pxmitpriv->be_pending.lock)); */
++
++ /* bk */
++ /* spin_lock_bh(&(pxmitpriv->bk_pending.lock)); */
++ rtw_free_xmitframe_queue(pxmitpriv, &pstaxmitpriv->bk_q.sta_pending);
++ list_del_init(&(pstaxmitpriv->bk_q.tx_pending));
+ phwxmit = pxmitpriv->hwxmits+3;
+ phwxmit->accnt -= pstaxmitpriv->bk_q.qcnt;
+ pstaxmitpriv->bk_q.qcnt = 0;
-+ //_exit_critical_bh(&(pxmitpriv->bk_pending.lock), &irqL0);
-+
-+ _exit_critical_bh(&pxmitpriv->lock, &irqL0);
-+
-+ rtw_list_delete(&psta->hash_list);
-+ RT_TRACE(_module_rtl871x_sta_mgt_c_,_drv_err_,("\n free number_%d stainfo with hwaddr = 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x \n",pstapriv->asoc_sta_count , psta->hwaddr[0], psta->hwaddr[1], psta->hwaddr[2],psta->hwaddr[3],psta->hwaddr[4],psta->hwaddr[5]));
++ /* spin_unlock_bh(&(pxmitpriv->bk_pending.lock)); */
++
++ spin_unlock_bh(&pxmitpriv->lock);
++
++ list_del_init(&psta->hash_list);
++ RT_TRACE(_module_rtl871x_sta_mgt_c_, _drv_err_, ("\n free number_%d stainfo with hwaddr = 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x \n", pstapriv->asoc_sta_count , psta->hwaddr[0], psta->hwaddr[1], psta->hwaddr[2], psta->hwaddr[3], psta->hwaddr[4], psta->hwaddr[5]));
+ pstapriv->asoc_sta_count --;
-+
-+
-+ // re-init sta_info; 20061114 // will be init in alloc_stainfo
-+ //_rtw_init_sta_xmit_priv(&psta->sta_xmitpriv);
-+ //_rtw_init_sta_recv_priv(&psta->sta_recvpriv);
+
-+ _cancel_timer_ex(&psta->addba_retry_timer);
+
-+ //for A-MPDU Rx reordering buffer control, cancel reordering_ctrl_timer
-+ for(i=0; i < 16 ; i++)
++ /* re-init sta_info; 20061114 will be init in alloc_stainfo */
++ /* _rtw_init_sta_xmit_priv(&psta->sta_xmitpriv); */
++ /* _rtw_init_sta_recv_priv(&psta->sta_recvpriv); */
++
++ del_timer_sync(&psta->addba_retry_timer);
++
++ /* for A-MPDU Rx reordering buffer control, cancel reordering_ctrl_timer */
++ for (i = 0; i < 16 ; i++)
+ {
-+ _irqL irqL;
-+ _list *phead, *plist;
++ struct list_head *phead, *plist;
+ union recv_frame *prframe;
-+ _queue *ppending_recvframe_queue;
-+ _queue *pfree_recv_queue = &padapter->recvpriv.free_recv_queue;
-+
-+ preorder_ctrl = &psta->recvreorder_ctrl[i];
-+
-+ _cancel_timer_ex(&preorder_ctrl->reordering_ctrl_timer);
++ struct __queue *ppending_recvframe_queue;
++ struct __queue *pfree_recv_queue = &padapter->recvpriv.free_recv_queue;
++
++ preorder_ctrl = &psta->recvreorder_ctrl[i];
++
++ del_timer_sync(&preorder_ctrl->reordering_ctrl_timer);
++
+
-+
+ ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue;
+
-+ _enter_critical_bh(&ppending_recvframe_queue->lock, &irqL);
++ spin_lock_bh(&ppending_recvframe_queue->lock);
+
-+ phead = get_list_head(ppending_recvframe_queue);
++ phead = get_list_head(ppending_recvframe_queue);
+ plist = get_next(phead);
-+
-+ while(!rtw_is_list_empty(phead))
-+ {
++
++ while (!list_empty(phead))
++ {
+ prframe = LIST_CONTAINOR(plist, union recv_frame, u);
-+
++
+ plist = get_next(plist);
-+
-+ rtw_list_delete(&(prframe->u.hdr.list));
++
++ list_del_init(&(prframe->u.hdr.list));
+
+ rtw_free_recvframe(prframe, pfree_recv_queue);
+ }
+
-+ _exit_critical_bh(&ppending_recvframe_queue->lock, &irqL);
-+
++ spin_unlock_bh(&ppending_recvframe_queue->lock);
++
+ }
+
+ if (!(psta->state & WIFI_AP_STATE))
+ rtw_hal_set_odm_var(padapter, HAL_ODM_STA_INFO, psta, false);
-+
+
-+ //release mac id for non-bc/mc station,
++
++ /* release mac id for non-bc/mc station, */
+ rtw_release_macid(pstapriv->padapter, psta);
+
-+#ifdef CONFIG_AP_MODE
-+
+/*
-+ _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL0);
-+ rtw_list_delete(&psta->asoc_list);
-+ _exit_critical_bh(&pstapriv->asoc_list_lock, &irqL0);
++ spin_lock_bh(&pstapriv->asoc_list_lock);
++ list_del_init(&psta->asoc_list);
++ spin_unlock_bh(&pstapriv->asoc_list_lock);
+*/
-+ _enter_critical_bh(&pstapriv->auth_list_lock, &irqL0);
-+ if (!rtw_is_list_empty(&psta->auth_list)) {
-+ rtw_list_delete(&psta->auth_list);
++ spin_lock_bh(&pstapriv->auth_list_lock);
++ if (!list_empty(&psta->auth_list)) {
++ list_del_init(&psta->auth_list);
+ pstapriv->auth_list_cnt--;
+ }
-+ _exit_critical_bh(&pstapriv->auth_list_lock, &irqL0);
-+
++ spin_unlock_bh(&pstapriv->auth_list_lock);
++
+ psta->expire_to = 0;
+ psta->sleepq_ac_len = 0;
+ psta->qos_info = 0;
@@ -32804,103 +28614,72 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_sta_mgt.c linux/3rdparty/rtl872
+
+ psta->has_legacy_ac = 0;
+
-+#ifdef CONFIG_NATIVEAP_MLME
-+
+ pstapriv->sta_dz_bitmap &=~BIT(psta->aid);
-+ pstapriv->tim_bitmap &=~BIT(psta->aid);
++ pstapriv->tim_bitmap &=~BIT(psta->aid);
+
-+ //rtw_indicate_sta_disassoc_event(padapter, psta);
-+
-+ if ((psta->aid >0)&&(pstapriv->sta_aid[psta->aid - 1] == psta))
++ if ((psta->aid >0) && (pstapriv->sta_aid[psta->aid - 1] == psta))
+ {
+ pstapriv->sta_aid[psta->aid - 1] = NULL;
+ psta->aid = 0;
-+ }
-+
-+#endif // CONFIG_NATIVEAP_MLME
++ }
+
-+#ifdef CONFIG_TX_MCAST2UNI
+ psta->under_exist_checking = 0;
-+#endif // CONFIG_TX_MCAST2UNI
+
-+#endif // CONFIG_AP_MODE
-+
-+ //_enter_critical_bh(&(pfree_sta_queue->lock), &irqL0);
-+ rtw_list_insert_tail(&psta->list, get_list_head(pfree_sta_queue));
-+ //_exit_critical_bh(&(pfree_sta_queue->lock), &irqL0);
++ /* spin_lock_bh(&(pfree_sta_queue->lock)); */
++ list_add_tail(&psta->list, get_list_head(pfree_sta_queue));
++ /* spin_unlock_bh(&(pfree_sta_queue->lock)); */
+
+exit:
-+
-+_func_exit_;
-+
+ return _SUCCESS;
-+
+}
+
-+// free all stainfo which in sta_hash[all]
-+void rtw_free_all_stainfo(_adapter *padapter)
++/* free all stainfo which in sta_hash[all] */
++void rtw_free_all_stainfo(struct adapter *padapter)
+{
-+ _irqL irqL;
-+ _list *plist, *phead;
++ struct list_head *plist, *phead;
+ s32 index;
+ struct sta_info *psta = NULL;
+ struct sta_priv *pstapriv = &padapter->stapriv;
-+ struct sta_info* pbcmc_stainfo =rtw_get_bcmc_stainfo( padapter);
-+
-+_func_enter_;
++ struct sta_info* pbcmc_stainfo =rtw_get_bcmc_stainfo(padapter);
+
-+ if(pstapriv->asoc_sta_count==1)
-+ goto exit;
++ if (pstapriv->asoc_sta_count == 1)
++ return;
+
-+ _enter_critical_bh(&pstapriv->sta_hash_lock, &irqL);
++ spin_lock_bh(&pstapriv->sta_hash_lock);
+
-+ for(index=0; index< NUM_STA; index++)
++ for (index = 0; index< NUM_STA; index++)
+ {
+ phead = &(pstapriv->sta_hash[index]);
+ plist = get_next(phead);
-+
-+ while ((rtw_end_of_queue_search(phead, plist)) == false)
++
++ while (phead != plist)
+ {
-+ psta = LIST_CONTAINOR(plist, struct sta_info ,hash_list);
++ psta = LIST_CONTAINOR(plist, struct sta_info , hash_list);
+
+ plist = get_next(plist);
+
-+ if(pbcmc_stainfo!=psta)
++ if (pbcmc_stainfo!=psta)
+ rtw_free_stainfo(padapter , psta);
-+
++
+ }
+ }
-+
-+ _exit_critical_bh(&pstapriv->sta_hash_lock, &irqL);
-+
-+exit:
-+
-+_func_exit_;
+
++ spin_unlock_bh(&pstapriv->sta_hash_lock);
+}
+
+/* any station allocated can be searched by hash list */
+struct sta_info *rtw_get_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
+{
-+
-+ _irqL irqL;
-+
-+ _list *plist, *phead;
-+
++ struct list_head *plist, *phead;
+ struct sta_info *psta = NULL;
-+
-+ u32 index;
-+
++ u32 index;
+ u8 *addr;
++ u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
+
-+ u8 bc_addr[ETH_ALEN] = {0xff,0xff,0xff,0xff,0xff,0xff};
-+
-+_func_enter_;
-+
-+ if(hwaddr==NULL)
++ if (hwaddr == NULL)
+ return NULL;
-+
-+ if(IS_MCAST(hwaddr))
++
++ if (IS_MCAST(hwaddr))
+ {
+ addr = bc_addr;
+ }
@@ -32911,1912 +28690,120 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_sta_mgt.c linux/3rdparty/rtl872
+
+ index = wifi_mac_hash(addr);
+
-+ _enter_critical_bh(&pstapriv->sta_hash_lock, &irqL);
-+
++ spin_lock_bh(&pstapriv->sta_hash_lock);
++
+ phead = &(pstapriv->sta_hash[index]);
+ plist = get_next(phead);
+
+
-+ while ((rtw_end_of_queue_search(phead, plist)) == false)
++ while (phead != plist)
+ {
-+
++
+ psta = LIST_CONTAINOR(plist, struct sta_info, hash_list);
-+
-+ if ((!memcmp(psta->hwaddr, addr, ETH_ALEN)))
-+ { // if found the matched address
++
++ if ((!memcmp(psta->hwaddr, addr, ETH_ALEN)))
++ { /* if found the matched address */
+ break;
+ }
-+ psta=NULL;
++ psta = NULL;
+ plist = get_next(plist);
+ }
+
-+ _exit_critical_bh(&pstapriv->sta_hash_lock, &irqL);
-+_func_exit_;
++ spin_unlock_bh(&pstapriv->sta_hash_lock);
+ return psta;
-+
+}
+
-+u32 rtw_init_bcmc_stainfo(_adapter* padapter)
++u32 rtw_init_bcmc_stainfo(struct adapter *padapter)
+{
+
+ struct sta_info *psta;
+ struct tx_servq *ptxservq;
-+ u32 res=_SUCCESS;
-+ NDIS_802_11_MAC_ADDRESS bcast_addr= {0xff,0xff,0xff,0xff,0xff,0xff};
-+
++ u32 res = _SUCCESS;
++ NDIS_802_11_MAC_ADDRESS bcast_addr = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
++
+ struct sta_priv *pstapriv = &padapter->stapriv;
-+ //_queue *pstapending = &padapter->xmitpriv.bm_pending;
-+
-+_func_enter_;
++ /* struct __queue *pstapending = &padapter->xmitpriv.bm_pending; */
+
+ psta = rtw_alloc_stainfo(pstapriv, bcast_addr);
-+
-+ if(psta==NULL){
-+ res=_FAIL;
-+ RT_TRACE(_module_rtl871x_sta_mgt_c_,_drv_err_,("rtw_alloc_stainfo fail"));
++
++ if (psta == NULL) {
++ res = _FAIL;
++ RT_TRACE(_module_rtl871x_sta_mgt_c_, _drv_err_, ("rtw_alloc_stainfo fail"));
+ goto exit;
+ }
+
-+ // default broadcast & multicast use macid 1
++ /* default broadcast & multicast use macid 1 */
+ psta->mac_id = 1;
+
-+ ptxservq= &(psta->sta_xmitpriv.be_q);
-+
-+/*
-+ _enter_critical(&pstapending->lock, &irqL0);
-+
-+ if (rtw_is_list_empty(&ptxservq->tx_pending))
-+ rtw_list_insert_tail(&ptxservq->tx_pending, get_list_head(pstapending));
-+
-+ _exit_critical(&pstapending->lock, &irqL0);
-+*/
-+
++ ptxservq = &(psta->sta_xmitpriv.be_q);
+exit:
-+_func_exit_;
+ return _SUCCESS;
-+
+}
+
+
-+struct sta_info* rtw_get_bcmc_stainfo(_adapter* padapter)
++struct sta_info* rtw_get_bcmc_stainfo(struct adapter *padapter)
+{
+ struct sta_info *psta;
+ struct sta_priv *pstapriv = &padapter->stapriv;
-+ u8 bc_addr[ETH_ALEN] = {0xff,0xff,0xff,0xff,0xff,0xff};
-+_func_enter_;
-+ psta = rtw_get_stainfo(pstapriv, bc_addr);
-+_func_exit_;
-+ return psta;
++ u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
+
++ psta = rtw_get_stainfo(pstapriv, bc_addr);
++ return psta;
+}
+
-+u8 rtw_access_ctrl(_adapter *padapter, u8 *mac_addr)
++u8 rtw_access_ctrl(struct adapter *padapter, u8 *mac_addr)
+{
+ u8 res = true;
-+#ifdef CONFIG_AP_MODE
-+ _irqL irqL;
-+ _list *plist, *phead;
++ struct list_head *plist, *phead;
+ struct rtw_wlan_acl_node *paclnode;
+ u8 match = false;
+ struct sta_priv *pstapriv = &padapter->stapriv;
+ struct wlan_acl_pool *pacl_list = &pstapriv->acl_list;
-+ _queue *pacl_node_q =&pacl_list->acl_node_q;
-+
-+ _enter_critical_bh(&(pacl_node_q->lock), &irqL);
++ struct __queue *pacl_node_q =&pacl_list->acl_node_q;
++
++ spin_lock_bh(&(pacl_node_q->lock));
+ phead = get_list_head(pacl_node_q);
-+ plist = get_next(phead);
-+ while ((rtw_end_of_queue_search(phead, plist)) == false)
++ plist = get_next(phead);
++ while (phead != plist)
+ {
+ paclnode = LIST_CONTAINOR(plist, struct rtw_wlan_acl_node, list);
+ plist = get_next(plist);
+
-+ if(!memcmp(paclnode->addr, mac_addr, ETH_ALEN))
++ if (!memcmp(paclnode->addr, mac_addr, ETH_ALEN))
+ {
-+ if(paclnode->valid == true)
++ if (paclnode->valid == true)
+ {
+ match = true;
+ break;
+ }
-+ }
-+ }
-+ _exit_critical_bh(&(pacl_node_q->lock), &irqL);
-+
++ }
++ }
++ spin_unlock_bh(&(pacl_node_q->lock));
+
-+ if(pacl_list->mode == 1)//accept unless in deny list
++
++ if (pacl_list->mode == 1)/* accept unless in deny list */
+ {
+ res = (match == true) ? false:true;
-+ }
-+ else if(pacl_list->mode == 2)//deny unless in accept list
++ }
++ else if (pacl_list->mode == 2)/* deny unless in accept list */
+ {
+ res = (match == true) ? true:false;
+ }
+ else
+ {
+ res = true;
-+ }
-+
-+#endif
++ }
+
+ return res;
-+
+}
-+
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wapi.c linux/3rdparty/rtl8723bs/core/rtw_wapi.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_wapi.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_wapi.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,1047 @@
-+#ifdef CONFIG_WAPI_SUPPORT
-+
-+#include
-+#include
-+#include
-+#include
-+
-+
-+u32 wapi_debug_component =
-+// WAPI_INIT |
-+// WAPI_API |
-+// WAPI_TX |
-+// WAPI_RX |
-+ WAPI_ERR ; //always open err flags on
-+
-+void WapiFreeAllStaInfo(_adapter *padapter)
-+{
-+ PRT_WAPI_T pWapiInfo;
-+ PRT_WAPI_STA_INFO pWapiStaInfo;
-+ PRT_WAPI_BKID pWapiBkid;
-+
-+ WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__);
-+ pWapiInfo = &padapter->wapiInfo;
-+
-+ //Pust to Idle List
-+ rtw_wapi_return_all_sta_info(padapter);
-+
-+ //Sta Info List
-+ while(!list_empty(&(pWapiInfo->wapiSTAIdleList)))
-+ {
-+ pWapiStaInfo = (PRT_WAPI_STA_INFO)list_entry(pWapiInfo->wapiSTAIdleList.next, RT_WAPI_STA_INFO, list);
-+ list_del_init(&pWapiStaInfo->list);
-+ }
-+
-+ //BKID List
-+ while(!list_empty(&(pWapiInfo->wapiBKIDIdleList)))
-+ {
-+ pWapiBkid = (PRT_WAPI_BKID)list_entry(pWapiInfo->wapiBKIDIdleList.next, RT_WAPI_BKID, list);
-+ list_del_init(&pWapiBkid->list);
-+ }
-+ WAPI_TRACE(WAPI_INIT, "<=========== %s\n", __FUNCTION__);
-+ return;
-+}
-+
-+void WapiSetIE(_adapter *padapter)
-+{
-+ PRT_WAPI_T pWapiInfo = &(padapter->wapiInfo);
-+ //PRT_WAPI_BKID pWapiBkid;
-+ u16 protocolVer = 1;
-+ u16 akmCnt = 1;
-+ u16 suiteCnt = 1;
-+ u16 capability = 0;
-+ u8 OUI[3];
-+
-+ OUI[0] = 0x00;
-+ OUI[1] = 0x14;
-+ OUI[2] = 0x72;
-+
-+ pWapiInfo->wapiIELength = 0;
-+//protocol version
-+ memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength, &protocolVer, 2);
-+ pWapiInfo->wapiIELength +=2;
-+//akm
-+ memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength, &akmCnt, 2);
-+ pWapiInfo->wapiIELength +=2;
-+
-+ if(pWapiInfo->bWapiPSK){
-+ memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength,OUI, 3);
-+ pWapiInfo->wapiIELength +=3;
-+ pWapiInfo->wapiIE[pWapiInfo->wapiIELength] = 0x2;
-+ pWapiInfo->wapiIELength +=1;
-+ }else{
-+ memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength,OUI, 3);
-+ pWapiInfo->wapiIELength +=3;
-+ pWapiInfo->wapiIE[pWapiInfo->wapiIELength] = 0x1;
-+ pWapiInfo->wapiIELength +=1;
-+ }
-+
-+//usk
-+ memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength, &suiteCnt, 2);
-+ pWapiInfo->wapiIELength +=2;
-+ memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength,OUI, 3);
-+ pWapiInfo->wapiIELength +=3;
-+ pWapiInfo->wapiIE[pWapiInfo->wapiIELength] = 0x1;
-+ pWapiInfo->wapiIELength +=1;
-+
-+//msk
-+ memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength,OUI, 3);
-+ pWapiInfo->wapiIELength +=3;
-+ pWapiInfo->wapiIE[pWapiInfo->wapiIELength] = 0x1;
-+ pWapiInfo->wapiIELength +=1;
-+
-+//Capbility
-+ memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength, &capability, 2);
-+ pWapiInfo->wapiIELength +=2;
-+}
-+
-+
-+/* PN1 > PN2, return 1,
-+ * else return 0.
-+ */
-+u32 WapiComparePN(u8 *PN1, u8 *PN2)
-+{
-+ char i;
-+
-+ if ((NULL == PN1) || (NULL == PN2))
-+ return 1;
-+
-+ // overflow case
-+ if ((PN2[15] - PN1[15]) & 0x80)
-+ return 1;
-+
-+ for (i=16; i>0; i--)
-+ {
-+ if(PN1[i-1] == PN2[i-1])
-+ continue;
-+ else if(PN1[i-1] > PN2[i-1])
-+ return 1;
-+ else
-+ return 0;
-+ }
-+
-+ return 0;
-+}
-+
-+u8
-+WapiGetEntryForCamWrite(_adapter *padapter,u8 *pMacAddr,u8 KID,bool IsMsk)
-+{
-+ PRT_WAPI_T pWapiInfo=NULL;
-+ //PRT_WAPI_CAM_ENTRY pEntry=NULL;
-+ u8 i=0;
-+ u8 ret = 0xff;
-+
-+ WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
-+
-+ pWapiInfo = &padapter->wapiInfo;
-+
-+ //exist?
-+ for(i=0;iwapiCamEntry[i].IsUsed
-+ && (!memcmp(pMacAddr, pWapiInfo->wapiCamEntry[i].PeerMacAddr, ETH_ALEN))
-+ && pWapiInfo->wapiCamEntry[i].keyidx == KID
-+ && pWapiInfo->wapiCamEntry[i].type == IsMsk)
-+ {
-+ ret = pWapiInfo->wapiCamEntry[i].entry_idx; //cover it
-+ break;
-+ }
-+ }
-+
-+ if(i == WAPI_CAM_ENTRY_NUM) //not found
-+ {
-+ for(i=0;iwapiCamEntry[i].IsUsed == 0)
-+ {
-+ pWapiInfo->wapiCamEntry[i].IsUsed = 1;
-+ pWapiInfo->wapiCamEntry[i].type = IsMsk;
-+ pWapiInfo->wapiCamEntry[i].keyidx = KID;
-+ memcpy(pWapiInfo->wapiCamEntry[i].PeerMacAddr, pMacAddr,ETH_ALEN);
-+ ret = pWapiInfo->wapiCamEntry[i].entry_idx;
-+ break;
-+ }
-+ }
-+ }
-+
-+ WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__);
-+ return ret;
-+
-+/*
-+ if(RTIsListEmpty(&pWapiInfo->wapiCamIdleList)){
-+ RT_TRACE(COMP_SEC,DBG_LOUD,("No Entry for wapi!!!\n"));
-+ return 0;
-+ }
-+
-+ pEntry = (PRT_WAPI_CAM_ENTRY)RTRemoveHeadList(&pWapiInfo->wapiCamIdleList);
-+ RTInsertTailList(&pWapiInfo->wapiCamUsedList, &pEntry->list);
-+
-+ RT_TRACE(COMP_SEC,DBG_LOUD,("<====WapiGetCamEntry(),Get Entry Idx:%d.but we just return 4 for test\n",pEntry->entry_idx));
-+
-+ return pEntry->entry_idx;*/
-+}
-+
-+u8 WapiGetEntryForCamClear(_adapter *padapter,u8 *pPeerMac,u8 keyid,u8 IsMsk)
-+{
-+ PRT_WAPI_T pWapiInfo=NULL;
-+ u8 i=0;
-+
-+ WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
-+
-+ pWapiInfo = &padapter->wapiInfo;
-+
-+ for(i=0;iwapiCamEntry[i].IsUsed
-+ && (!memcmp(pPeerMac, pWapiInfo->wapiCamEntry[i].PeerMacAddr, ETH_ALEN))
-+ && pWapiInfo->wapiCamEntry[i].keyidx == keyid
-+ && pWapiInfo->wapiCamEntry[i].type == IsMsk)
-+ {
-+ pWapiInfo->wapiCamEntry[i].IsUsed = 0;
-+ pWapiInfo->wapiCamEntry[i].keyidx = 2;
-+ memset(pWapiInfo->wapiCamEntry[i].PeerMacAddr,0,ETH_ALEN);
-+
-+ WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__);
-+ return pWapiInfo->wapiCamEntry[i].entry_idx;
-+ }
-+ }
-+
-+ WAPI_TRACE(WAPI_API,"<====WapiGetReturnCamEntry(), No this cam entry.\n");
-+ return 0xff;
-+/*
-+ if(RTIsListEmpty(&pWapiInfo->wapiCamUsedList)){
-+ RT_TRACE(COMP_SEC,DBG_LOUD,("No Entry for wapi!!!\n"));
-+ return false;
-+ }
-+
-+ pList = &pWapiInfo->wapiCamUsedList;
-+ while(pList->Flink != &pWapiInfo->wapiCamUsedList)
-+ {
-+ pEntry = (PRT_WAPI_CAM_ENTRY)pList->Flink;
-+ if(PlatformCompareMemory(pPeerMac,pEntry->PeerMacAddr, ETHER_ADDRLEN)== 0
-+ && keyid == pEntry->keyidx)
-+ {
-+ RTRemoveEntryList(pList);
-+ RTInsertHeadList(&pWapiInfo->wapiCamIdleList, pList);
-+ return pEntry->entry_idx;
-+ }
-+ pList = pList->Flink;
-+ }
-+
-+ return 0;
-+*/
-+}
-+
-+void
-+WapiResetAllCamEntry(_adapter *padapter)
-+{
-+ PRT_WAPI_T pWapiInfo;
-+ int i;
-+
-+ WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
-+
-+ pWapiInfo = &padapter->wapiInfo;
-+
-+ for (i=0;iwapiCamEntry[i].PeerMacAddr, 0, ETH_ALEN);
-+ pWapiInfo->wapiCamEntry[i].IsUsed = 0;
-+ pWapiInfo->wapiCamEntry[i].keyidx = 2; //invalid
-+ pWapiInfo->wapiCamEntry[i].entry_idx = 4+i*2;
-+ }
-+
-+ WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__);
-+
-+ return;
-+}
-+
-+u8 WapiWriteOneCamEntry(
-+ _adapter *padapter,
-+ u8 *pMacAddr,
-+ u8 KeyId,
-+ u8 EntryId,
-+ u8 EncAlg,
-+ u8 bGroupKey,
-+ u8 *pKey
-+)
-+{
-+ u8 retVal = 0;
-+ u16 usConfig = 0;
-+
-+ WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
-+
-+ if(EntryId >= 32)
-+ {
-+ WAPI_TRACE(WAPI_ERR, "<=== CamAddOneEntry(): ulKeyId exceed!\n");
-+ return retVal;
-+ }
-+
-+ usConfig=usConfig|(0x01<<15)|((u16)(EncAlg)<<2)|(KeyId);
-+
-+ if(EncAlg == _SMS4_ )
-+ {
-+ if(bGroupKey == 1)
-+ usConfig |= (0x01<<6);
-+ if((EntryId % 2)==1) // ==0 sec key; == 1mic key
-+ usConfig |= (0x01<<5);
-+ }
-+
-+ write_cam(padapter, EntryId, usConfig, pMacAddr, pKey);
-+
-+ WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
-+ return 1;
-+}
-+
-+void rtw_wapi_init(_adapter *padapter)
-+{
-+ PRT_WAPI_T pWapiInfo;
-+ int i;
-+
-+ WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__);
-+ RT_ASSERT_RET(padapter);
-+
-+ if (!padapter->WapiSupport)
-+ {
-+ WAPI_TRACE(WAPI_INIT, "<========== %s, WAPI not supported!\n", __FUNCTION__);
-+ return;
-+ }
-+
-+ pWapiInfo = &padapter->wapiInfo;
-+ pWapiInfo->bWapiEnable = false;
-+
-+ //Init BKID List
-+ INIT_LIST_HEAD(&pWapiInfo->wapiBKIDIdleList);
-+ INIT_LIST_HEAD(&pWapiInfo->wapiBKIDStoreList);
-+ for(i=0;iwapiBKID[i].list, &pWapiInfo->wapiBKIDIdleList);
-+ }
-+
-+ //Init STA List
-+ INIT_LIST_HEAD(&pWapiInfo->wapiSTAIdleList);
-+ INIT_LIST_HEAD(&pWapiInfo->wapiSTAUsedList);
-+ for(i=0;iwapiSta[i].list, &pWapiInfo->wapiSTAIdleList);
-+ }
-+
-+ for (i=0;iwapiCamEntry[i].IsUsed = 0;
-+ pWapiInfo->wapiCamEntry[i].keyidx = 2; //invalid
-+ pWapiInfo->wapiCamEntry[i].entry_idx = 4+i*2;
-+ }
-+
-+ WAPI_TRACE(WAPI_INIT, "<========== %s\n", __FUNCTION__);
-+}
-+
-+void rtw_wapi_free(_adapter *padapter)
-+{
-+ WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__);
-+ RT_ASSERT_RET(padapter);
-+
-+ if (!padapter->WapiSupport)
-+ {
-+ WAPI_TRACE(WAPI_INIT, "<========== %s, WAPI not supported!\n", __FUNCTION__);
-+ return;
-+ }
-+
-+ WapiFreeAllStaInfo(padapter);
-+
-+ WAPI_TRACE(WAPI_INIT, "<========== %s\n", __FUNCTION__);
-+}
-+
-+void rtw_wapi_disable_tx(_adapter *padapter)
-+{
-+ WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__);
-+ RT_ASSERT_RET(padapter);
-+
-+ if (!padapter->WapiSupport)
-+ {
-+ WAPI_TRACE(WAPI_INIT, "<========== %s, WAPI not supported!\n", __FUNCTION__);
-+ return;
-+ }
-+
-+ padapter->wapiInfo.wapiTxMsk.bTxEnable = false;
-+ padapter->wapiInfo.wapiTxMsk.bSet = false;
-+
-+ WAPI_TRACE(WAPI_INIT, "<========== %s\n", __FUNCTION__);
-+}
-+
-+u8 rtw_wapi_is_wai_packet(_adapter* padapter,u8 *pkt_data)
-+{
-+ PRT_WAPI_T pWapiInfo = &(padapter->wapiInfo);
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct security_priv *psecuritypriv = &padapter->securitypriv;
-+ PRT_WAPI_STA_INFO pWapiSta = NULL;
-+ u8 WaiPkt = 0, *pTaddr, bFind = false;
-+ u8 Offset_TypeWAI = 0 ; // (mac header len + llc length)
-+
-+ WAPI_TRACE(WAPI_TX|WAPI_RX, "===========> %s\n", __FUNCTION__);
-+
-+ if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-+ {
-+ WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-+ return 0;
-+ }
-+
-+ Offset_TypeWAI = 24 + 6 ;
-+
-+ //YJ,add,091103. Data frame may also have skb->data[30]=0x88 and skb->data[31]=0xb4.
-+ if ((pkt_data[1]&0x40) !=0)
-+ {
-+ //DBG_871X("data is privacy \n");
-+ return 0;
-+ }
-+
-+ pTaddr = GetAddr2Ptr(pkt_data);
-+ if(list_empty(&pWapiInfo->wapiSTAUsedList)){
-+ bFind = false;
-+ }else{
-+ list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list){
-+ if (!memcmp(pTaddr, pWapiSta->PeerMacAddr, 6)) {
-+ bFind = true;
-+ break;
-+ }
-+ }
-+ }
-+
-+ WAPI_TRACE(WAPI_TX|WAPI_RX, "%s: bFind=%d pTaddr="MAC_FMT"\n", __FUNCTION__, bFind, MAC_ARG(pTaddr));
-+
-+ if (pkt_data[0] == WIFI_QOS_DATA_TYPE)
-+ {
-+ Offset_TypeWAI += 2;
-+ }
-+
-+ // 88b4?
-+ if( (pkt_data[Offset_TypeWAI]==0x88) && (pkt_data[Offset_TypeWAI+1]==0xb4) ){
-+ WaiPkt = pkt_data[Offset_TypeWAI+5];
-+
-+ psecuritypriv->hw_decrypted = true;
-+ }else{
-+ WAPI_TRACE(WAPI_TX|WAPI_RX, "%s(): non wai packet\n",__FUNCTION__);
-+ }
-+
-+ WAPI_TRACE(WAPI_TX|WAPI_RX, "%s(): Recvd WAI frame. IsWAIPkt(%d)\n",__FUNCTION__, WaiPkt);
-+
-+ return WaiPkt;
-+}
-+
-+
-+void rtw_wapi_update_info(_adapter *padapter, union recv_frame *precv_frame)
-+{
-+ PRT_WAPI_T pWapiInfo = &(padapter->wapiInfo);
-+ struct recv_frame_hdr *precv_hdr;
-+ u8 *ptr;
-+ u8 *pTA;
-+ u8 *pRecvPN;
-+
-+
-+ WAPI_TRACE(WAPI_RX, "===========> %s\n", __FUNCTION__);
-+
-+ if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-+ {
-+ WAPI_TRACE(WAPI_RX, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-+ return;
-+ }
-+
-+ precv_hdr = &precv_frame->u.hdr;
-+ ptr = precv_hdr->rx_data;
-+
-+ if (precv_hdr->attrib.qos == 1)
-+ {
-+ precv_hdr->UserPriority = GetTid(ptr);
-+ }
-+ else
-+ {
-+ precv_hdr->UserPriority = 0;
-+ }
-+
-+ pTA = GetAddr2Ptr(ptr);
-+ memcpy((u8 *)precv_hdr->WapiSrcAddr, pTA, 6);
-+ pRecvPN = ptr + precv_hdr->attrib.hdrlen + 2;
-+ memcpy((u8 *)precv_hdr->WapiTempPN, pRecvPN, 16);
-+
-+ WAPI_TRACE(WAPI_RX, "<========== %s\n", __FUNCTION__);
-+}
-+
-+/****************************************************************************
-+true-----------------Drop
-+false---------------- handle
-+add to support WAPI to N-mode
-+*****************************************************************************/
-+u8 rtw_wapi_check_for_drop(
-+ _adapter *padapter,
-+ union recv_frame *precv_frame
-+)
-+{
-+ PRT_WAPI_T pWapiInfo = &(padapter->wapiInfo);
-+ u8 *pLastRecvPN = NULL;
-+ u8 bFind = false;
-+ PRT_WAPI_STA_INFO pWapiSta = NULL;
-+ u8 bDrop = false;
-+ struct recv_frame_hdr *precv_hdr = &precv_frame->u.hdr;
-+ u8 WapiAEPNInitialValueSrc[16] = {0x37,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
-+ u8 WapiAEMultiCastPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
-+ u8 *ptr = precv_frame->u.hdr.rx_data;
-+ int i;
-+
-+ WAPI_TRACE(WAPI_RX, "===========> %s\n", __FUNCTION__);
-+
-+ if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-+ {
-+ WAPI_TRACE(WAPI_RX, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-+ return false;
-+ }
-+
-+ if(precv_hdr->bIsWaiPacket !=0)
-+ {
-+ if(precv_hdr->bIsWaiPacket== 0x8)
-+ {
-+
-+ DBG_871X("rtw_wapi_check_for_drop: dump packet \n");
-+ for(i=0;i<50;i++)
-+ {
-+ DBG_871X("%02X ",ptr[i]);
-+ if((i+1) %8 ==0)
-+ DBG_871X("\n");
-+ }
-+ DBG_871X("\n rtw_wapi_check_for_drop: dump packet \n");
-+
-+ for(i=0;i<16;i++)
-+ {
-+ if(ptr[i+27] !=0)
-+ break;
-+ }
-+
-+ if(i== 16)
-+ {
-+ WAPI_TRACE(WAPI_RX,"rtw_wapi_check_for_drop: drop with zero BKID \n");
-+ return true;
-+ }
-+ else
-+ {
-+ return false;
-+ }
-+ }
-+ else
-+ return false;
-+ }
-+
-+ if(list_empty(&pWapiInfo->wapiSTAUsedList)){
-+ bFind = false;
-+ }else{
-+ list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
-+ if (!memcmp(precv_hdr->WapiSrcAddr, pWapiSta->PeerMacAddr, ETH_ALEN)) {
-+ bFind = true;
-+ break;
-+ }
-+ }
-+ }
-+ WAPI_TRACE(WAPI_RX, "%s: bFind=%d prxb->WapiSrcAddr="MAC_FMT"\n", __FUNCTION__, bFind, MAC_ARG(precv_hdr->WapiSrcAddr));
-+
-+ if(bFind)
-+ {
-+ if(IS_MCAST(precv_hdr->attrib.ra))
-+ {
-+ WAPI_TRACE(WAPI_RX,"rtw_wapi_check_for_drop: multicast case \n");
-+ pLastRecvPN = pWapiSta->lastRxMulticastPN;
-+ }
-+ else
-+ {
-+ WAPI_TRACE(WAPI_RX,"rtw_wapi_check_for_drop: unicast case \n");
-+ switch(precv_hdr->UserPriority)
-+ {
-+ case 0:
-+ case 3:
-+ pLastRecvPN = pWapiSta->lastRxUnicastPNBEQueue;
-+ break;
-+ case 1:
-+ case 2:
-+ pLastRecvPN = pWapiSta->lastRxUnicastPNBKQueue;
-+ break;
-+ case 4:
-+ case 5:
-+ pLastRecvPN = pWapiSta->lastRxUnicastPNVIQueue;
-+ break;
-+ case 6:
-+ case 7:
-+ pLastRecvPN = pWapiSta->lastRxUnicastPNVOQueue;
-+ break;
-+ default:
-+ WAPI_TRACE(WAPI_ERR,"%s: Unknown TID \n",__FUNCTION__);
-+ break;
-+ }
-+ }
-+
-+ if(!WapiComparePN(precv_hdr->WapiTempPN,pLastRecvPN))
-+ {
-+ WAPI_TRACE(WAPI_RX,"%s: Equal PN!!\n",__FUNCTION__);
-+ if(IS_MCAST(precv_hdr->attrib.ra))
-+ memcpy(pLastRecvPN,WapiAEMultiCastPNInitialValueSrc,16);
-+ else
-+ memcpy(pLastRecvPN,WapiAEPNInitialValueSrc,16);
-+ bDrop = true;
-+ }
-+ else
-+ {
-+ memcpy(pLastRecvPN,precv_hdr->WapiTempPN,16);
-+ }
-+ }
-+
-+ WAPI_TRACE(WAPI_RX, "<========== %s\n", __FUNCTION__);
-+ return bDrop;
-+}
-+
-+void rtw_build_probe_resp_wapi_ie(_adapter *padapter, unsigned char *pframe, struct pkt_attrib *pattrib)
-+{
-+ PRT_WAPI_T pWapiInfo = &(padapter->wapiInfo);
-+ u8 WapiIELength = 0;
-+
-+ WAPI_TRACE(WAPI_MLME, "===========> %s\n", __FUNCTION__);
-+
-+ if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-+ {
-+ WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported!\n", __FUNCTION__);
-+ return;
-+ }
-+
-+ WapiSetIE(padapter);
-+ WapiIELength = pWapiInfo->wapiIELength;
-+ pframe[0] = _WAPI_IE_;
-+ pframe[1] = WapiIELength;
-+ memcpy(pframe+2, pWapiInfo->wapiIE, WapiIELength);
-+ pframe += WapiIELength+2;
-+ pattrib->pktlen += WapiIELength+2;
-+
-+ WAPI_TRACE(WAPI_MLME, "<========== %s\n", __FUNCTION__);
-+}
-+
-+void rtw_build_beacon_wapi_ie(_adapter *padapter, unsigned char *pframe, struct pkt_attrib *pattrib)
-+{
-+ PRT_WAPI_T pWapiInfo = &(padapter->wapiInfo);
-+ u8 WapiIELength = 0;
-+ WAPI_TRACE(WAPI_MLME, "===========> %s\n", __FUNCTION__);
-+
-+ if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-+ {
-+ WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported!\n", __FUNCTION__);
-+ return;
-+ }
-+
-+ WapiSetIE(padapter);
-+ WapiIELength = pWapiInfo->wapiIELength;
-+ pframe[0] = _WAPI_IE_;
-+ pframe[1] = WapiIELength;
-+ memcpy(pframe+2, pWapiInfo->wapiIE, WapiIELength);
-+ pframe += WapiIELength+2;
-+ pattrib->pktlen += WapiIELength+2;
-+
-+ WAPI_TRACE(WAPI_MLME, "<========== %s\n", __FUNCTION__);
-+}
-+
-+void rtw_build_assoc_req_wapi_ie(_adapter *padapter, unsigned char *pframe, struct pkt_attrib *pattrib)
-+{
-+ PRT_WAPI_BKID pWapiBKID;
-+ u16 bkidNum;
-+ PRT_WAPI_T pWapiInfo = &(padapter->wapiInfo);
-+ u8 WapiIELength = 0;
-+
-+ WAPI_TRACE(WAPI_MLME, "===========> %s\n", __FUNCTION__);
-+
-+ if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-+ {
-+ WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported!\n", __FUNCTION__);
-+ return;
-+ }
-+
-+ WapiSetIE(padapter);
-+ WapiIELength = pWapiInfo->wapiIELength;
-+ bkidNum = 0;
-+ if(!list_empty(&(pWapiInfo->wapiBKIDStoreList))){
-+ list_for_each_entry(pWapiBKID, &pWapiInfo->wapiBKIDStoreList, list) {
-+ bkidNum ++;
-+ memcpy(pWapiInfo->wapiIE+WapiIELength+2, pWapiBKID->bkid,16);
-+ WapiIELength += 16;
-+ }
-+ }
-+ memcpy(pWapiInfo->wapiIE+WapiIELength, &bkidNum, 2);
-+ WapiIELength += 2;
-+
-+ pframe[0] = _WAPI_IE_;
-+ pframe[1] = WapiIELength;
-+ memcpy(pframe+2, pWapiInfo->wapiIE, WapiIELength);
-+ pframe += WapiIELength+2;
-+ pattrib->pktlen += WapiIELength+2;
-+ WAPI_TRACE(WAPI_MLME, "<========== %s\n", __FUNCTION__);
-+}
-+
-+void rtw_wapi_on_assoc_ok(_adapter *padapter, PNDIS_802_11_VARIABLE_IEs pIE)
-+{
-+ PRT_WAPI_T pWapiInfo = &(padapter->wapiInfo);
-+ PRT_WAPI_STA_INFO pWapiSta;
-+ u8 WapiAEPNInitialValueSrc[16] = {0x37,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
-+ //u8 WapiASUEPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
-+ u8 WapiAEMultiCastPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
-+
-+ WAPI_TRACE(WAPI_MLME, "===========> %s\n", __FUNCTION__);
-+
-+ if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-+ {
-+ WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-+ return;
-+ }
-+
-+ pWapiSta =(PRT_WAPI_STA_INFO)list_entry(pWapiInfo->wapiSTAIdleList.next, RT_WAPI_STA_INFO, list);
-+ list_del_init(&pWapiSta->list);
-+ list_add_tail(&pWapiSta->list, &pWapiInfo->wapiSTAUsedList);
-+ memcpy(pWapiSta->PeerMacAddr,padapter->mlmeextpriv.mlmext_info.network.MacAddress,6);
-+ memcpy(pWapiSta->lastRxMulticastPN, WapiAEMultiCastPNInitialValueSrc, 16);
-+ memcpy(pWapiSta->lastRxUnicastPN, WapiAEPNInitialValueSrc, 16);
-+
-+ //For chenk PN error with Qos Data after s3: add by ylb 20111114
-+ memcpy(pWapiSta->lastRxUnicastPNBEQueue,WapiAEPNInitialValueSrc,16);
-+ memcpy(pWapiSta->lastRxUnicastPNBKQueue,WapiAEPNInitialValueSrc,16);
-+ memcpy(pWapiSta->lastRxUnicastPNVIQueue,WapiAEPNInitialValueSrc,16);
-+ memcpy(pWapiSta->lastRxUnicastPNVOQueue,WapiAEPNInitialValueSrc,16);
-+
-+ WAPI_TRACE(WAPI_MLME, "<========== %s\n", __FUNCTION__);
-+}
-+
-+
-+void rtw_wapi_return_one_sta_info(_adapter *padapter, u8 *MacAddr)
-+{
-+ PRT_WAPI_T pWapiInfo;
-+ PRT_WAPI_STA_INFO pWapiStaInfo = NULL;
-+ PRT_WAPI_BKID pWapiBkid = NULL;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+
-+ pWapiInfo = &padapter->wapiInfo;
-+
-+ WAPI_TRACE(WAPI_API, "==========> %s\n", __FUNCTION__);
-+
-+ if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-+ {
-+ WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-+ return;
-+ }
-+
-+ if(check_fwstate(pmlmepriv, WIFI_STATION_STATE))
-+ {
-+ while(!list_empty(&(pWapiInfo->wapiBKIDStoreList)))
-+ {
-+ pWapiBkid = (PRT_WAPI_BKID)list_entry(pWapiInfo->wapiBKIDStoreList.next, RT_WAPI_BKID, list);
-+ list_del_init(&pWapiBkid->list);
-+ memset(pWapiBkid->bkid,0,16);
-+ list_add_tail(&pWapiBkid->list, &pWapiInfo->wapiBKIDIdleList);
-+ }
-+ }
-+
-+
-+ WAPI_TRACE(WAPI_API, " %s: after clear bkid \n", __FUNCTION__);
-+
-+
-+ //Remove STA info
-+ if(list_empty(&(pWapiInfo->wapiSTAUsedList))){
-+ WAPI_TRACE(WAPI_API, " %s: wapiSTAUsedList is null \n", __FUNCTION__);
-+ return;
-+ }else{
-+ WAPI_TRACE(WAPI_API, " %s: wapiSTAUsedList is not null \n", __FUNCTION__);
-+
-+ while(!list_empty(&(pWapiInfo->wapiSTAUsedList)))
-+ {
-+ pWapiStaInfo = (PRT_WAPI_STA_INFO)list_entry(pWapiInfo->wapiSTAUsedList.next, RT_WAPI_STA_INFO, list);
-+
-+ DBG_871X("peer Addr %02x-%02x-%02x-%02x-%02x-%02x \n",pWapiStaInfo->PeerMacAddr[0],pWapiStaInfo->PeerMacAddr[1],pWapiStaInfo->PeerMacAddr[2],pWapiStaInfo->PeerMacAddr[3],pWapiStaInfo->PeerMacAddr[4],pWapiStaInfo->PeerMacAddr[5]);
-+
-+ list_del_init(&pWapiStaInfo->list);
-+ memset(pWapiStaInfo->PeerMacAddr,0,ETH_ALEN);
-+ pWapiStaInfo->bSetkeyOk = 0;
-+ list_add_tail(&pWapiStaInfo->list, &pWapiInfo->wapiSTAIdleList);
-+ }
-+
-+ }
-+
-+ WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__);
-+ return;
-+}
-+
-+void rtw_wapi_return_all_sta_info(_adapter *padapter)
-+{
-+ PRT_WAPI_T pWapiInfo;
-+ PRT_WAPI_STA_INFO pWapiStaInfo;
-+ PRT_WAPI_BKID pWapiBkid;
-+ WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
-+
-+ pWapiInfo = &padapter->wapiInfo;
-+
-+ if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-+ {
-+ WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-+ return;
-+ }
-+
-+ //Sta Info List
-+ while(!list_empty(&(pWapiInfo->wapiSTAUsedList)))
-+ {
-+ pWapiStaInfo = (PRT_WAPI_STA_INFO)list_entry(pWapiInfo->wapiSTAUsedList.next, RT_WAPI_STA_INFO, list);
-+ list_del_init(&pWapiStaInfo->list);
-+ memset(pWapiStaInfo->PeerMacAddr,0,ETH_ALEN);
-+ pWapiStaInfo->bSetkeyOk = 0;
-+ list_add_tail(&pWapiStaInfo->list, &pWapiInfo->wapiSTAIdleList);
-+ }
-+
-+ //BKID List
-+ while(!list_empty(&(pWapiInfo->wapiBKIDStoreList)))
-+ {
-+ pWapiBkid = (PRT_WAPI_BKID)list_entry(pWapiInfo->wapiBKIDStoreList.next, RT_WAPI_BKID, list);
-+ list_del_init(&pWapiBkid->list);
-+ memset(pWapiBkid->bkid,0,16);
-+ list_add_tail(&pWapiBkid->list, &pWapiInfo->wapiBKIDIdleList);
-+ }
-+ WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__);
-+}
-+
-+void rtw_wapi_clear_cam_entry(_adapter *padapter, u8 *pMacAddr)
-+{
-+ u8 UcIndex = 0;
-+
-+ WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
-+
-+ if ((!padapter->WapiSupport) || (!padapter->wapiInfo.bWapiEnable))
-+ {
-+ WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-+ return;
-+ }
-+
-+ UcIndex = WapiGetEntryForCamClear(padapter, pMacAddr, 0, 0);
-+ if(UcIndex != 0xff){
-+ //CAM_mark_invalid(Adapter, UcIndex);
-+ CAM_empty_entry(padapter, UcIndex);
-+ }
-+
-+ UcIndex = WapiGetEntryForCamClear(padapter, pMacAddr, 1, 0);
-+ if(UcIndex != 0xff){
-+ //CAM_mark_invalid(Adapter, UcIndex);
-+ CAM_empty_entry(padapter, UcIndex);
-+ }
-+
-+ UcIndex = WapiGetEntryForCamClear(padapter, pMacAddr, 0, 1);
-+ if(UcIndex != 0xff){
-+ //CAM_mark_invalid(Adapter, UcIndex);
-+ CAM_empty_entry(padapter, UcIndex);
-+ }
-+
-+ UcIndex = WapiGetEntryForCamClear(padapter, pMacAddr, 1, 1);
-+ if(UcIndex != 0xff){
-+ //CAM_mark_invalid(padapter, UcIndex);
-+ CAM_empty_entry(padapter, UcIndex);
-+ }
-+
-+ WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__);
-+}
-+
-+void rtw_wapi_clear_all_cam_entry(_adapter *padapter)
-+{
-+ WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
-+
-+ if ((!padapter->WapiSupport) || (!padapter->wapiInfo.bWapiEnable))
-+ {
-+ WAPI_TRACE(WAPI_MLME, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-+ return;
-+ }
-+
-+ invalidate_cam_all(padapter); // is this ok?
-+ WapiResetAllCamEntry(padapter);
-+
-+ WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
-+}
-+
-+void rtw_wapi_set_key(_adapter *padapter, RT_WAPI_KEY *pWapiKey, RT_WAPI_STA_INFO *pWapiSta, u8 bGroupKey, u8 bUseDefaultKey)
-+{
-+ PRT_WAPI_T pWapiInfo = &padapter->wapiInfo;
-+ u8 *pMacAddr = pWapiSta->PeerMacAddr;
-+ u32 EntryId = 0;
-+ bool IsPairWise = false ;
-+ u8 EncAlgo;
-+
-+ WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
-+
-+ if ((!padapter->WapiSupport) || (!padapter->wapiInfo.bWapiEnable))
-+ {
-+ WAPI_TRACE(WAPI_API, "<========== %s, WAPI not supported or not enabled!\n", __FUNCTION__);
-+ return;
-+ }
-+
-+ EncAlgo = _SMS4_;
-+
-+ //For Tx bc/mc pkt,use defualt key entry
-+ if(bUseDefaultKey)
-+ {
-+ // when WAPI update key, keyid will be 0 or 1 by turns.
-+ if (pWapiKey->keyId == 0)
-+ EntryId = 0;
-+ else
-+ EntryId = 2;
-+ }
-+ else
-+ {
-+ // tx/rx unicast pkt, or rx broadcast, find the key entry by peer's MacAddr
-+ EntryId = WapiGetEntryForCamWrite(padapter,pMacAddr,pWapiKey->keyId,bGroupKey);
-+ }
-+
-+ if(EntryId == 0xff){
-+ WAPI_TRACE(WAPI_API, "===>No entry for WAPI setkey! !!\n");
-+ return;
-+ }
-+
-+ //EntryId is also used to diff Sec key and Mic key
-+ //Sec Key
-+ WapiWriteOneCamEntry(padapter,
-+ pMacAddr,
-+ pWapiKey->keyId, //keyid
-+ EntryId, //entry
-+ EncAlgo, //type
-+ bGroupKey, //pairwise or group key
-+ pWapiKey->dataKey);
-+ //MIC key
-+ WapiWriteOneCamEntry(padapter,
-+ pMacAddr,
-+ pWapiKey->keyId, //keyid
-+ EntryId+1, //entry
-+ EncAlgo, //type
-+ bGroupKey, //pairwise or group key
-+ pWapiKey->micKey);
-+
-+ WAPI_TRACE(WAPI_API, "Set Wapi Key :KeyId:%d,EntryId:%d,PairwiseKey:%d.\n",pWapiKey->keyId,EntryId,!bGroupKey);
-+ WAPI_TRACE(WAPI_API, "===========> %s\n", __FUNCTION__);
-+
-+}
-+
-+void rtw_wapi_get_iv(_adapter *padapter,u8 *pRA, u8*IV)
-+{
-+ PWLAN_HEADER_WAPI_EXTENSION pWapiExt = NULL;
-+ PRT_WAPI_T pWapiInfo = &padapter->wapiInfo;
-+ bool bPNOverflow = false;
-+ bool bFindMatchPeer = false;
-+ PRT_WAPI_STA_INFO pWapiSta = NULL;
-+
-+ pWapiExt = (PWLAN_HEADER_WAPI_EXTENSION)IV;
-+
-+ WAPI_DATA(WAPI_RX,"wapi_get_iv: pra",pRA,6);
-+
-+ if(IS_MCAST(pRA)){
-+ if(!pWapiInfo->wapiTxMsk.bTxEnable){
-+ WAPI_TRACE(WAPI_ERR,"%s: bTxEnable = 0!!\n",__FUNCTION__);
-+ return;
-+ }
-+
-+ if(pWapiInfo->wapiTxMsk.keyId <= 1){
-+ pWapiExt->KeyIdx = pWapiInfo->wapiTxMsk.keyId;
-+ pWapiExt->Reserved = 0;
-+ bPNOverflow = WapiIncreasePN(pWapiInfo->lastTxMulticastPN, 1);
-+ memcpy(pWapiExt->PN, pWapiInfo->lastTxMulticastPN, 16);
-+ }
-+ }
-+ else
-+ {
-+ if(list_empty(&pWapiInfo->wapiSTAUsedList)){
-+ WAPI_TRACE(WAPI_RX,"rtw_wapi_get_iv: list is empty \n");
-+ memset(IV,10,18);
-+ return;
-+ }
-+ else{
-+ list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list){
-+ WAPI_DATA(WAPI_RX,"rtw_wapi_get_iv: peermacaddr ",pWapiSta->PeerMacAddr,6);
-+ if (!memcmp((u8*)pWapiSta->PeerMacAddr, pRA, 6)) {
-+ bFindMatchPeer = true;
-+ break;
-+ }
-+ }
-+
-+ WAPI_TRACE(WAPI_RX,"bFindMatchPeer: %d \n",bFindMatchPeer);
-+ WAPI_DATA(WAPI_RX,"Addr",pRA,6);
-+
-+ if (bFindMatchPeer){
-+ if((!pWapiSta->wapiUskUpdate.bTxEnable) && (!pWapiSta->wapiUsk.bTxEnable))
-+ return;
-+
-+ if (pWapiSta->wapiUsk.keyId <= 1){
-+ if(pWapiSta->wapiUskUpdate.bTxEnable)
-+ pWapiExt->KeyIdx = pWapiSta->wapiUskUpdate.keyId;
-+ else
-+ pWapiExt->KeyIdx = pWapiSta->wapiUsk.keyId;
-+
-+ pWapiExt->Reserved = 0;
-+ bPNOverflow = WapiIncreasePN(pWapiSta->lastTxUnicastPN, 2);
-+ memcpy(pWapiExt->PN, pWapiSta->lastTxUnicastPN, 16);
-+
-+ }
-+ }
-+ }
-+
-+ }
-+
-+}
-+
-+bool rtw_wapi_drop_for_key_absent(_adapter *padapter,u8 *pRA)
-+{
-+ PRT_WAPI_T pWapiInfo = &padapter->wapiInfo;
-+ bool bFindMatchPeer = false;
-+ bool bDrop = false;
-+ PRT_WAPI_STA_INFO pWapiSta = NULL;
-+ struct security_priv *psecuritypriv = &padapter->securitypriv;
-+
-+ WAPI_DATA(WAPI_RX,"rtw_wapi_drop_for_key_absent: ra ",pRA,6);
-+
-+ if(psecuritypriv->dot11PrivacyAlgrthm == _SMS4_)
-+ {
-+ if ((!padapter->WapiSupport) || (!pWapiInfo->bWapiEnable))
-+ return true;
-+
-+ if(IS_MCAST(pRA)){
-+ if(!pWapiInfo->wapiTxMsk.bTxEnable){
-+ bDrop = true;
-+ WAPI_TRACE(WAPI_RX,"rtw_wapi_drop_for_key_absent: multicast key is absent \n");
-+ return bDrop;
-+ }
-+ }
-+ else{
-+ if(!list_empty(&pWapiInfo->wapiSTAUsedList)){
-+ list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list){
-+ WAPI_DATA(WAPI_RX,"rtw_wapi_drop_for_key_absent: pWapiSta->PeerMacAddr ",pWapiSta->PeerMacAddr,6);
-+ if (!memcmp(pRA, pWapiSta->PeerMacAddr, 6)){
-+ bFindMatchPeer = true;
-+ break;
-+ }
-+ }
-+ if (bFindMatchPeer) {
-+ if (!pWapiSta->wapiUsk.bTxEnable){
-+ bDrop = true;
-+ WAPI_TRACE(WAPI_RX,"rtw_wapi_drop_for_key_absent: unicast key is absent \n");
-+ return bDrop;
-+ }
-+ }
-+ else{
-+ bDrop = true;
-+ WAPI_TRACE(WAPI_RX,"rtw_wapi_drop_for_key_absent: no peer find \n");
-+ return bDrop;
-+ }
-+
-+ }
-+ else{
-+ bDrop = true;
-+ WAPI_TRACE(WAPI_RX,"rtw_wapi_drop_for_key_absent: no sta exist \n");
-+ return bDrop;
-+ }
-+ }
-+ }
-+ else
-+ {
-+ return bDrop;
-+ }
-+
-+ return bDrop;
-+}
-+
-+#endif
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wapi_sms4.c linux/3rdparty/rtl8723bs/core/rtw_wapi_sms4.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_wapi_sms4.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_wapi_sms4.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,713 @@
-+#ifdef CONFIG_WAPI_SUPPORT
-+
-+#include
-+#include
-+#include
-+#include
-+
-+
-+#ifdef CONFIG_WAPI_SW_SMS4
-+
-+#define WAPI_LITTLE_ENDIAN
-+//#define BIG_ENDIAN
-+#define ENCRYPT 0
-+#define DECRYPT 1
-+
-+
-+/**********************************************************
-+ **********************************************************/
-+const u8 Sbox[256] = {
-+0xd6,0x90,0xe9,0xfe,0xcc,0xe1,0x3d,0xb7,0x16,0xb6,0x14,0xc2,0x28,0xfb,0x2c,0x05,
-+0x2b,0x67,0x9a,0x76,0x2a,0xbe,0x04,0xc3,0xaa,0x44,0x13,0x26,0x49,0x86,0x06,0x99,
-+0x9c,0x42,0x50,0xf4,0x91,0xef,0x98,0x7a,0x33,0x54,0x0b,0x43,0xed,0xcf,0xac,0x62,
-+0xe4,0xb3,0x1c,0xa9,0xc9,0x08,0xe8,0x95,0x80,0xdf,0x94,0xfa,0x75,0x8f,0x3f,0xa6,
-+0x47,0x07,0xa7,0xfc,0xf3,0x73,0x17,0xba,0x83,0x59,0x3c,0x19,0xe6,0x85,0x4f,0xa8,
-+0x68,0x6b,0x81,0xb2,0x71,0x64,0xda,0x8b,0xf8,0xeb,0x0f,0x4b,0x70,0x56,0x9d,0x35,
-+0x1e,0x24,0x0e,0x5e,0x63,0x58,0xd1,0xa2,0x25,0x22,0x7c,0x3b,0x01,0x21,0x78,0x87,
-+0xd4,0x00,0x46,0x57,0x9f,0xd3,0x27,0x52,0x4c,0x36,0x02,0xe7,0xa0,0xc4,0xc8,0x9e,
-+0xea,0xbf,0x8a,0xd2,0x40,0xc7,0x38,0xb5,0xa3,0xf7,0xf2,0xce,0xf9,0x61,0x15,0xa1,
-+0xe0,0xae,0x5d,0xa4,0x9b,0x34,0x1a,0x55,0xad,0x93,0x32,0x30,0xf5,0x8c,0xb1,0xe3,
-+0x1d,0xf6,0xe2,0x2e,0x82,0x66,0xca,0x60,0xc0,0x29,0x23,0xab,0x0d,0x53,0x4e,0x6f,
-+0xd5,0xdb,0x37,0x45,0xde,0xfd,0x8e,0x2f,0x03,0xff,0x6a,0x72,0x6d,0x6c,0x5b,0x51,
-+0x8d,0x1b,0xaf,0x92,0xbb,0xdd,0xbc,0x7f,0x11,0xd9,0x5c,0x41,0x1f,0x10,0x5a,0xd8,
-+0x0a,0xc1,0x31,0x88,0xa5,0xcd,0x7b,0xbd,0x2d,0x74,0xd0,0x12,0xb8,0xe5,0xb4,0xb0,
-+0x89,0x69,0x97,0x4a,0x0c,0x96,0x77,0x7e,0x65,0xb9,0xf1,0x09,0xc5,0x6e,0xc6,0x84,
-+0x18,0xf0,0x7d,0xec,0x3a,0xdc,0x4d,0x20,0x79,0xee,0x5f,0x3e,0xd7,0xcb,0x39,0x48
-+};
-+
-+const u32 CK[32] = {
-+ 0x00070e15, 0x1c232a31, 0x383f464d, 0x545b6269,
-+ 0x70777e85, 0x8c939aa1, 0xa8afb6bd, 0xc4cbd2d9,
-+ 0xe0e7eef5, 0xfc030a11, 0x181f262d, 0x343b4249,
-+ 0x50575e65, 0x6c737a81, 0x888f969d, 0xa4abb2b9,
-+ 0xc0c7ced5, 0xdce3eaf1, 0xf8ff060d, 0x141b2229,
-+ 0x30373e45, 0x4c535a61, 0x686f767d, 0x848b9299,
-+ 0xa0a7aeb5, 0xbcc3cad1, 0xd8dfe6ed, 0xf4fb0209,
-+ 0x10171e25, 0x2c333a41, 0x484f565d, 0x646b7279 };
-+
-+#define Rotl(_x, _y) (((_x) << (_y)) | ((_x) >> (32 - (_y))))
-+
-+#define ByteSub(_A) (Sbox[(_A) >> 24 & 0xFF] << 24 | \
-+ Sbox[(_A) >> 16 & 0xFF] << 16 | \
-+ Sbox[(_A) >> 8 & 0xFF] << 8 | \
-+ Sbox[(_A) & 0xFF])
-+
-+#define L1(_B) ((_B) ^ Rotl(_B, 2) ^ Rotl(_B, 10) ^ Rotl(_B, 18) ^ Rotl(_B, 24))
-+#define L2(_B) ((_B) ^ Rotl(_B, 13) ^ Rotl(_B, 23))
-+
-+static void
-+xor_block(void *dst, void *src1, void *src2)
-+/* 128-bit xor: *dst = *src1 xor *src2. Pointers must be 32-bit aligned */
-+{
-+ ((u32 *)dst)[0] = ((u32 *)src1)[0] ^ ((u32 *)src2)[0];
-+ ((u32 *)dst)[1] = ((u32 *)src1)[1] ^ ((u32 *)src2)[1];
-+ ((u32 *)dst)[2] = ((u32 *)src1)[2] ^ ((u32 *)src2)[2];
-+ ((u32 *)dst)[3] = ((u32 *)src1)[3] ^ ((u32 *)src2)[3];
-+}
-+
-+
-+void SMS4Crypt(u8 *Input, u8 *Output, u32 *rk)
-+{
-+ u32 r, mid, x0, x1, x2, x3, *p;
-+ p = (u32 *)Input;
-+ x0 = p[0];
-+ x1 = p[1];
-+ x2 = p[2];
-+ x3 = p[3];
-+#ifdef WAPI_LITTLE_ENDIAN
-+ x0 = Rotl(x0, 16); x0 = ((x0 & 0x00FF00FF) << 8) | ((x0 & 0xFF00FF00) >> 8);
-+ x1 = Rotl(x1, 16); x1 = ((x1 & 0x00FF00FF) << 8) | ((x1 & 0xFF00FF00) >> 8);
-+ x2 = Rotl(x2, 16); x2 = ((x2 & 0x00FF00FF) << 8) | ((x2 & 0xFF00FF00) >> 8);
-+ x3 = Rotl(x3, 16); x3 = ((x3 & 0x00FF00FF) << 8) | ((x3 & 0xFF00FF00) >> 8);
-+#endif
-+ for (r = 0; r < 32; r += 4)
-+ {
-+ mid = x1 ^ x2 ^ x3 ^ rk[r + 0];
-+ mid = ByteSub(mid);
-+ x0 ^= L1(mid);
-+ mid = x2 ^ x3 ^ x0 ^ rk[r + 1];
-+ mid = ByteSub(mid);
-+ x1 ^= L1(mid);
-+ mid = x3 ^ x0 ^ x1 ^ rk[r + 2];
-+ mid = ByteSub(mid);
-+ x2 ^= L1(mid);
-+ mid = x0 ^ x1 ^ x2 ^ rk[r + 3];
-+ mid = ByteSub(mid);
-+ x3 ^= L1(mid);
-+ }
-+#ifdef WAPI_LITTLE_ENDIAN
-+ x0 = Rotl(x0, 16); x0 = ((x0 & 0x00FF00FF) << 8) | ((x0 & 0xFF00FF00) >> 8);
-+ x1 = Rotl(x1, 16); x1 = ((x1 & 0x00FF00FF) << 8) | ((x1 & 0xFF00FF00) >> 8);
-+ x2 = Rotl(x2, 16); x2 = ((x2 & 0x00FF00FF) << 8) | ((x2 & 0xFF00FF00) >> 8);
-+ x3 = Rotl(x3, 16); x3 = ((x3 & 0x00FF00FF) << 8) | ((x3 & 0xFF00FF00) >> 8);
-+#endif
-+ p = (u32 *)Output;
-+ p[0] = x3;
-+ p[1] = x2;
-+ p[2] = x1;
-+ p[3] = x0;
-+}
-+
-+
-+
-+void SMS4KeyExt(u8 *Key, u32 *rk, u32 CryptFlag)
-+{
-+ u32 r, mid, x0, x1, x2, x3, *p;
-+
-+ p = (u32 *)Key;
-+ x0 = p[0];
-+ x1 = p[1];
-+ x2 = p[2];
-+ x3 = p[3];
-+#ifdef WAPI_LITTLE_ENDIAN
-+ x0 = Rotl(x0, 16); x0 = ((x0 & 0xFF00FF) << 8) | ((x0 & 0xFF00FF00) >> 8);
-+ x1 = Rotl(x1, 16); x1 = ((x1 & 0xFF00FF) << 8) | ((x1 & 0xFF00FF00) >> 8);
-+ x2 = Rotl(x2, 16); x2 = ((x2 & 0xFF00FF) << 8) | ((x2 & 0xFF00FF00) >> 8);
-+ x3 = Rotl(x3, 16); x3 = ((x3 & 0xFF00FF) << 8) | ((x3 & 0xFF00FF00) >> 8);
-+#endif
-+
-+ x0 ^= 0xa3b1bac6;
-+ x1 ^= 0x56aa3350;
-+ x2 ^= 0x677d9197;
-+ x3 ^= 0xb27022dc;
-+ for (r = 0; r < 32; r += 4)
-+ {
-+ mid = x1 ^ x2 ^ x3 ^ CK[r + 0];
-+ mid = ByteSub(mid);
-+ rk[r + 0] = x0 ^= L2(mid);
-+ mid = x2 ^ x3 ^ x0 ^ CK[r + 1];
-+ mid = ByteSub(mid);
-+ rk[r + 1] = x1 ^= L2(mid);
-+ mid = x3 ^ x0 ^ x1 ^ CK[r + 2];
-+ mid = ByteSub(mid);
-+ rk[r + 2] = x2 ^= L2(mid);
-+ mid = x0 ^ x1 ^ x2 ^ CK[r + 3];
-+ mid = ByteSub(mid);
-+ rk[r + 3] = x3 ^= L2(mid);
-+ }
-+ if (CryptFlag == DECRYPT)
-+ {
-+ for (r = 0; r < 16; r++)
-+ mid = rk[r], rk[r] = rk[31 - r], rk[31 - r] = mid;
-+ }
-+}
-+
-+
-+void WapiSMS4Cryption(u8 *Key, u8 *IV, u8 *Input, u16 InputLength,
-+ u8 *Output, u16 *OutputLength, u32 CryptFlag)
-+{
-+ u32 blockNum,i,j, rk[32];
-+ u16 remainder;
-+ u8 blockIn[16],blockOut[16], tempIV[16], k;
-+
-+ *OutputLength = 0;
-+ remainder = InputLength & 0x0F;
-+ blockNum = InputLength >> 4;
-+ if(remainder !=0)
-+ blockNum++;
-+ else
-+ remainder = 16;
-+
-+ for(k=0;k<16;k++)
-+ tempIV[k] = IV[15-k];
-+
-+ memcpy(blockIn, tempIV, 16);
-+
-+ SMS4KeyExt((u8 *)Key, rk,CryptFlag);
-+
-+ for(i=0; i> 4;
-+
-+ for(k=0;k<16;k++)
-+ tempIV[k] = IV[15-k];
-+
-+ memcpy(BlockIn, tempIV, 16);
-+
-+ SMS4KeyExt((u8 *)Key, rk, ENCRYPT);
-+
-+ SMS4Crypt((u8 *)BlockIn, BlockOut, rk);
-+
-+ for(i=0; i> 4;
-+
-+ for(i=0; i %s\n", __FUNCTION__);
-+ switch(UserPriority)
-+ {
-+ case 0:
-+ case 3:
-+ memcpy(PNOut,pWapiStaInfo->lastRxUnicastPNBEQueue,16);
-+ break;
-+ case 1:
-+ case 2:
-+ memcpy(PNOut,pWapiStaInfo->lastRxUnicastPNBKQueue,16);
-+ break;
-+ case 4:
-+ case 5:
-+ memcpy(PNOut,pWapiStaInfo->lastRxUnicastPNVIQueue,16);
-+ break;
-+ case 6:
-+ case 7:
-+ memcpy(PNOut,pWapiStaInfo->lastRxUnicastPNVOQueue,16);
-+ break;
-+ default:
-+ WAPI_TRACE(WAPI_ERR, "%s: Unknown TID \n", __FUNCTION__);
-+ break;
-+ }
-+ WAPI_TRACE(WAPI_RX, "<=========== %s\n", __FUNCTION__);
-+}
-+
-+
-+void WapiSetLastRxUnicastPNForQoSData(
-+ u8 UserPriority,
-+ u8 *PNIn,
-+ PRT_WAPI_STA_INFO pWapiStaInfo
-+)
-+{
-+ WAPI_TRACE(WAPI_RX, "===========> %s\n", __FUNCTION__);
-+ switch(UserPriority)
-+ {
-+ case 0:
-+ case 3:
-+ memcpy(pWapiStaInfo->lastRxUnicastPNBEQueue,PNIn,16);
-+ break;
-+ case 1:
-+ case 2:
-+ memcpy(pWapiStaInfo->lastRxUnicastPNBKQueue,PNIn,16);
-+ break;
-+ case 4:
-+ case 5:
-+ memcpy(pWapiStaInfo->lastRxUnicastPNVIQueue,PNIn,16);
-+ break;
-+ case 6:
-+ case 7:
-+ memcpy(pWapiStaInfo->lastRxUnicastPNVOQueue,PNIn,16);
-+ break;
-+ default:
-+ WAPI_TRACE(WAPI_ERR, "%s: Unknown TID \n", __FUNCTION__);
-+ break;
-+ }
-+ WAPI_TRACE(WAPI_RX, "<=========== %s\n", __FUNCTION__);
-+}
-+
-+// WAPI SW Enc: must have done Coalesce!
-+void SecSWSMS4Encryption(
-+ _adapter *padapter,
-+ u8 * pxmitframe
-+ )
-+{
-+ PRT_WAPI_T pWapiInfo = &padapter->wapiInfo;
-+ PRT_WAPI_STA_INFO pWapiSta = NULL;
-+ u8 *pframe = ((struct xmit_frame*)pxmitframe)->buf_addr + TXDESC_SIZE;
-+ struct pkt_attrib *pattrib = &((struct xmit_frame*)pxmitframe)->attrib;
-+
-+ u8 *SecPtr = NULL, *pRA, *pMicKey = NULL, *pDataKey = NULL, *pIV = NULL;
-+ u8 IVOffset, DataOffset, bFindMatchPeer = false, KeyIdx = 0, MicBuffer[16];
-+ u16 OutputLength;
-+
-+ WAPI_TRACE(WAPI_TX, "=========>%s\n", __FUNCTION__);
-+
-+ WAPI_TRACE(WAPI_TX,"hdrlen: %d \n",pattrib->hdrlen);
-+
-+ return;
-+
-+ DataOffset = pattrib->hdrlen + pattrib->iv_len;
-+
-+ pRA = pframe + 4;
-+
-+
-+ if( IS_MCAST(pRA) ){
-+ KeyIdx = pWapiInfo->wapiTxMsk.keyId;
-+ pIV = pWapiInfo->lastTxMulticastPN;
-+ pMicKey = pWapiInfo->wapiTxMsk.micKey;
-+ pDataKey = pWapiInfo->wapiTxMsk.dataKey;
-+ }else{
-+ if (!list_empty(&(pWapiInfo->wapiSTAUsedList))){
-+ list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
-+ if (!memcmp(pWapiSta->PeerMacAddr, pRA, 6)){
-+ bFindMatchPeer = true;
-+ break;
-+ }
-+ }
-+
-+ if (bFindMatchPeer){
-+ if (pWapiSta->wapiUskUpdate.bTxEnable){
-+ KeyIdx = pWapiSta->wapiUskUpdate.keyId;
-+ WAPI_TRACE(WAPI_TX, "%s(): Use update USK!! KeyIdx=%d\n", __FUNCTION__, KeyIdx);
-+ pIV = pWapiSta->lastTxUnicastPN;
-+ pMicKey = pWapiSta->wapiUskUpdate.micKey;
-+ pDataKey = pWapiSta->wapiUskUpdate.dataKey;
-+ }else{
-+ KeyIdx = pWapiSta->wapiUsk.keyId;
-+ WAPI_TRACE(WAPI_TX, "%s(): Use USK!! KeyIdx=%d\n", __FUNCTION__, KeyIdx);
-+ pIV = pWapiSta->lastTxUnicastPN;
-+ pMicKey = pWapiSta->wapiUsk.micKey;
-+ pDataKey = pWapiSta->wapiUsk.dataKey;
-+ }
-+ }else{
-+ WAPI_TRACE(WAPI_ERR,"%s: Can not find Peer Sta!!\n",__FUNCTION__);
-+ return;
-+ }
-+ }else{
-+ WAPI_TRACE(WAPI_ERR,"%s: wapiSTAUsedList is empty!!\n",__FUNCTION__);
-+ return;
-+ }
-+ }
-+
-+ SecPtr = pframe;
-+
-+ WAPI_DATA(WAPI_TX, "Encryption - MIC", MicBuffer, padapter->wapiInfo.extra_postfix_len);
-+
-+ memcpy(pframe+pattrib->hdrlen+pattrib->iv_len+pattrib->pktlen-pattrib->icv_len,
-+ (u8 *)MicBuffer,
-+ padapter->wapiInfo.extra_postfix_len
-+ );
-+
-+
-+ WapiSMS4Encryption(pDataKey, pIV, (SecPtr+DataOffset),pattrib->pktlen+pattrib->icv_len, (SecPtr+DataOffset), &OutputLength);
-+
-+ WAPI_DATA(WAPI_TX, "Encryption - After SMS4 encryption",pframe,pattrib->hdrlen+pattrib->iv_len+pattrib->pktlen);
-+
-+ WAPI_TRACE(WAPI_TX, "<=========%s\n", __FUNCTION__);
-+}
-+
-+u8 SecSWSMS4Decryption(
-+ _adapter *padapter,
-+ u8 *precv_frame,
-+ struct recv_priv *precv_priv
-+ )
-+{
-+ PRT_WAPI_T pWapiInfo = &padapter->wapiInfo;
-+ struct recv_frame_hdr *precv_hdr;
-+ PRT_WAPI_STA_INFO pWapiSta = NULL;
-+ u8 IVOffset, DataOffset, bFindMatchPeer = false, bUseUpdatedKey = false;
-+ u8 KeyIdx, MicBuffer[16], lastRxPNforQoS[16];
-+ u8 *pRA, *pTA, *pMicKey, *pDataKey, *pLastRxPN, *pRecvPN, *pSecData, *pRecvMic, *pos;
-+ u8 TID = 0;
-+ u16 OutputLength, DataLen;
-+ u8 bQosData;
-+ struct sk_buff * pskb;
-+
-+ WAPI_TRACE(WAPI_RX, "=========>%s\n", __FUNCTION__);
-+
-+ return 0;
-+
-+ precv_hdr = &((union recv_frame*)precv_frame)->u.hdr;
-+ pskb = (struct sk_buff *)(precv_hdr->rx_data);
-+ precv_hdr->bWapiCheckPNInDecrypt = false;
-+ WAPI_TRACE(WAPI_RX, "=========>%s: check PN %d\n", __FUNCTION__,precv_hdr->bWapiCheckPNInDecrypt);
-+ WAPI_DATA(WAPI_RX, "Decryption - Before decryption", pskb->data, pskb->len);
-+
-+ IVOffset = sMacHdrLng;
-+ bQosData = GetFrameType(pskb->data) == WIFI_QOS_DATA_TYPE;
-+ if (bQosData){
-+ IVOffset += 2;
-+ }
-+
-+ //if(GetHTC())
-+ // IVOffset += 4;
-+
-+ //IVOffset += SNAP_SIZE + sizeof(u16);
-+
-+ DataOffset = IVOffset + padapter->wapiInfo.extra_prefix_len;
-+
-+ pRA = pskb->data + 4;
-+ pTA = pskb->data + 10;
-+ KeyIdx = *(pskb->data + IVOffset);
-+ pRecvPN = pskb->data + IVOffset + 2;
-+ pSecData = pskb->data + DataOffset;
-+ DataLen = pskb->len - DataOffset;
-+ pRecvMic = pskb->data + pskb->len - padapter->wapiInfo.extra_postfix_len;
-+ TID = GetTid(pskb->data);
-+
-+ if (!list_empty(&(pWapiInfo->wapiSTAUsedList))){
-+ list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
-+ if (!memcmp(pWapiSta->PeerMacAddr, pTA, 6)){
-+ bFindMatchPeer = true;
-+ break;
-+ }
-+ }
-+ }
-+
-+ if (!bFindMatchPeer){
-+ WAPI_TRACE(WAPI_ERR, "%s: Can not find Peer Sta "MAC_FMT" for Key Info!!!\n", __FUNCTION__, MAC_ARG(pTA));
-+ return false;
-+ }
-+
-+ if( IS_MCAST(pRA) ){
-+ WAPI_TRACE(WAPI_RX, "%s: Multicast decryption !!!\n", __FUNCTION__);
-+ if (pWapiSta->wapiMsk.keyId == KeyIdx && pWapiSta->wapiMsk.bSet){
-+ pLastRxPN = pWapiSta->lastRxMulticastPN;
-+ if (!WapiComparePN(pRecvPN, pLastRxPN)){
-+ WAPI_TRACE(WAPI_ERR, "%s: MSK PN is not larger than last, Dropped!!!\n", __FUNCTION__);
-+ WAPI_DATA(WAPI_ERR, "pRecvPN:", pRecvPN, 16);
-+ WAPI_DATA(WAPI_ERR, "pLastRxPN:", pLastRxPN, 16);
-+ return false;
-+ }
-+
-+ memcpy(pLastRxPN, pRecvPN, 16);
-+ pMicKey = pWapiSta->wapiMsk.micKey;
-+ pDataKey = pWapiSta->wapiMsk.dataKey;
-+ }else if (pWapiSta->wapiMskUpdate.keyId == KeyIdx && pWapiSta->wapiMskUpdate.bSet){
-+ WAPI_TRACE(WAPI_RX, "%s: Use Updated MSK for Decryption !!!\n", __FUNCTION__);
-+ bUseUpdatedKey = true;
-+ memcpy(pWapiSta->lastRxMulticastPN, pRecvPN, 16);
-+ pMicKey = pWapiSta->wapiMskUpdate.micKey;
-+ pDataKey = pWapiSta->wapiMskUpdate.dataKey;
-+ }else{
-+ WAPI_TRACE(WAPI_ERR, "%s: Can not find MSK with matched KeyIdx(%d), Dropped !!!\n", __FUNCTION__,KeyIdx);
-+ return false;
-+ }
-+ }
-+ else{
-+ WAPI_TRACE(WAPI_RX, "%s: Unicast decryption !!!\n", __FUNCTION__);
-+ if (pWapiSta->wapiUsk.keyId == KeyIdx && pWapiSta->wapiUsk.bSet){
-+ WAPI_TRACE(WAPI_RX, "%s: Use USK for Decryption!!!\n", __FUNCTION__);
-+ if(precv_hdr->bWapiCheckPNInDecrypt){
-+ if(GetFrameType(pskb->data) == WIFI_QOS_DATA_TYPE){
-+ WapiGetLastRxUnicastPNForQoSData(TID, pWapiSta, lastRxPNforQoS);
-+ pLastRxPN = lastRxPNforQoS;
-+ }else{
-+ pLastRxPN = pWapiSta->lastRxUnicastPN;
-+ }
-+ if (!WapiComparePN(pRecvPN, pLastRxPN)){
-+ return false;
-+ }
-+ if(bQosData){
-+ WapiSetLastRxUnicastPNForQoSData(TID, pRecvPN, pWapiSta);
-+ }else{
-+ memcpy(pWapiSta->lastRxUnicastPN, pRecvPN, 16);
-+ }
-+ }else{
-+ memcpy(precv_hdr->WapiTempPN,pRecvPN,16);
-+ }
-+
-+ if (check_fwstate(&padapter->mlmepriv, WIFI_STATION_STATE))
-+ {
-+ if ((pRecvPN[0] & 0x1) == 0){
-+ WAPI_TRACE(WAPI_ERR, "%s: Rx USK PN is not odd when Infra STA mode, Dropped !!!\n", __FUNCTION__);
-+ return false;
-+ }
-+ }
-+
-+ pMicKey = pWapiSta->wapiUsk.micKey;
-+ pDataKey = pWapiSta->wapiUsk.dataKey;
-+ }
-+ else if (pWapiSta->wapiUskUpdate.keyId == KeyIdx && pWapiSta->wapiUskUpdate.bSet ){
-+ WAPI_TRACE(WAPI_RX, "%s: Use Updated USK for Decryption!!!\n", __FUNCTION__);
-+ if(pWapiSta->bAuthenticatorInUpdata)
-+ bUseUpdatedKey = true;
-+ else
-+ bUseUpdatedKey = false;
-+
-+ if(bQosData){
-+ WapiSetLastRxUnicastPNForQoSData(TID, pRecvPN, pWapiSta);
-+ }else{
-+ memcpy(pWapiSta->lastRxUnicastPN, pRecvPN, 16);
-+ }
-+ pMicKey = pWapiSta->wapiUskUpdate.micKey;
-+ pDataKey = pWapiSta->wapiUskUpdate.dataKey;
-+ }else{
-+ WAPI_TRACE(WAPI_ERR, "%s: No valid USK!!!KeyIdx=%d pWapiSta->wapiUsk.keyId=%d pWapiSta->wapiUskUpdate.keyId=%d\n", __FUNCTION__, KeyIdx, pWapiSta->wapiUsk.keyId, pWapiSta->wapiUskUpdate.keyId);
-+ //dump_buf(pskb->data,pskb->len);
-+ return false;
-+ }
-+ }
-+
-+ WAPI_DATA(WAPI_RX, "Decryption - DataKey", pDataKey, 16);
-+ WAPI_DATA(WAPI_RX, "Decryption - IV", pRecvPN, 16);
-+ WapiSMS4Decryption(pDataKey, pRecvPN, pSecData, DataLen, pSecData, &OutputLength);
-+
-+ if (OutputLength != DataLen)
-+ WAPI_TRACE(WAPI_ERR, "%s: Output Length Error!!!!\n", __FUNCTION__);
-+
-+ WAPI_DATA(WAPI_RX, "Decryption - After decryption", pskb->data, pskb->len);
-+
-+ DataLen -= padapter->wapiInfo.extra_postfix_len;
-+
-+ WAPI_DATA(WAPI_RX, "Decryption - MIC received", pRecvMic, SMS4_MIC_LEN);
-+ WAPI_DATA(WAPI_RX, "Decryption - MIC calculated", MicBuffer, SMS4_MIC_LEN);
-+
-+ if (!memcmp(MicBuffer, pRecvMic, padapter->wapiInfo.extra_postfix_len)){
-+ WAPI_TRACE(WAPI_RX, "%s: Check MIC OK!!\n", __FUNCTION__);
-+ if (bUseUpdatedKey){
-+ // delete the old key
-+ if ( IS_MCAST(pRA) ){
-+ WAPI_TRACE(WAPI_API, "%s(): AE use new update MSK!!\n", __FUNCTION__);
-+ pWapiSta->wapiMsk.keyId = pWapiSta->wapiMskUpdate.keyId;
-+ memcpy(pWapiSta->wapiMsk.dataKey, pWapiSta->wapiMskUpdate.dataKey, 16);
-+ memcpy(pWapiSta->wapiMsk.micKey, pWapiSta->wapiMskUpdate.micKey, 16);
-+ pWapiSta->wapiMskUpdate.bTxEnable = pWapiSta->wapiMskUpdate.bSet = false;
-+ }else{
-+ WAPI_TRACE(WAPI_API, "%s(): AE use new update USK!!\n", __FUNCTION__);
-+ pWapiSta->wapiUsk.keyId = pWapiSta->wapiUskUpdate.keyId;
-+ memcpy(pWapiSta->wapiUsk.dataKey, pWapiSta->wapiUskUpdate.dataKey, 16);
-+ memcpy(pWapiSta->wapiUsk.micKey, pWapiSta->wapiUskUpdate.micKey, 16);
-+ pWapiSta->wapiUskUpdate.bTxEnable = pWapiSta->wapiUskUpdate.bSet = false;
-+ }
-+ }
-+ }else{
-+ WAPI_TRACE(WAPI_ERR, "%s: Check MIC Error, Dropped !!!!\n", __FUNCTION__);
-+ return false;
-+ }
-+
-+ pos = pskb->data;
-+ memmove(pos+padapter->wapiInfo.extra_prefix_len, pos, IVOffset);
-+ skb_pull(pskb, padapter->wapiInfo.extra_prefix_len);
-+
-+ WAPI_TRACE(WAPI_RX, "<=========%s\n", __FUNCTION__);
-+
-+ return true;
-+}
-+
-+u32 rtw_sms4_encrypt(_adapter *padapter, u8 *pxmitframe)
-+{
-+
-+ u8 *pframe;
-+ u32 res = _SUCCESS;
-+
-+ WAPI_TRACE(WAPI_TX, "=========>%s\n", __FUNCTION__);
-+
-+ if ((!padapter->WapiSupport) || (!padapter->wapiInfo.bWapiEnable))
-+ {
-+ WAPI_TRACE(WAPI_TX, "<========== %s, WAPI not supported or enabled!\n", __FUNCTION__);
-+ return _FAIL;
-+ }
-+
-+ if(((struct xmit_frame*)pxmitframe)->buf_addr==NULL)
-+ return _FAIL;
-+
-+ pframe = ((struct xmit_frame*)pxmitframe)->buf_addr + TXDESC_OFFSET;
-+
-+ SecSWSMS4Encryption(padapter, pxmitframe);
-+
-+ WAPI_TRACE(WAPI_TX, "<=========%s\n", __FUNCTION__);
-+ return res;
-+}
-+
-+u32 rtw_sms4_decrypt(_adapter *padapter, u8 *precvframe)
-+{
-+ u8 *pframe;
-+ u32 res = _SUCCESS;
-+
-+ WAPI_TRACE(WAPI_RX, "=========>%s\n", __FUNCTION__);
-+
-+ if ((!padapter->WapiSupport) || (!padapter->wapiInfo.bWapiEnable))
-+ {
-+ WAPI_TRACE(WAPI_RX, "<========== %s, WAPI not supported or enabled!\n", __FUNCTION__);
-+ return _FAIL;
-+ }
-+
-+
-+ //drop packet when hw decrypt fail
-+ //return tempraily
-+ return _FAIL;
-+
-+ //pframe=(unsigned char *)((union recv_frame*)precvframe)->u.hdr.rx_data;
-+
-+ if (false == SecSWSMS4Decryption(padapter, precvframe, &padapter->recvpriv))
-+ {
-+ WAPI_TRACE(WAPI_ERR, "%s():SMS4 decrypt frame error\n",__FUNCTION__);
-+ return _FAIL;
-+ }
-+
-+ WAPI_TRACE(WAPI_RX, "<=========%s\n", __FUNCTION__);
-+ return res;
-+}
-+
-+#else
-+
-+u32 rtw_sms4_encrypt(_adapter *padapter, u8 *pxmitframe)
-+{
-+ WAPI_TRACE(WAPI_TX, "=========>Dummy %s\n", __FUNCTION__);
-+ WAPI_TRACE(WAPI_TX, "<=========Dummy %s\n", __FUNCTION__);
-+ return _SUCCESS;
-+}
-+
-+u32 rtw_sms4_decrypt(_adapter *padapter, u8 *precvframe)
-+{
-+ WAPI_TRACE(WAPI_RX, "=========>Dummy %s\n", __FUNCTION__);
-+ WAPI_TRACE(WAPI_RX, "<=========Dummy %s\n", __FUNCTION__);
-+ return _SUCCESS;
-+}
-+
-+#endif
-+
-+#endif
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8723bs/core/rtw_wlan_util.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_wlan_util.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,3498 @@
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_wlan_util.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_wlan_util.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_wlan_util.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,2542 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
-+ *
++ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
@@ -34826,15 +28813,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
+#define _RTW_WLAN_UTIL_C_
+
+#include
++#include
+#include
+
+#if defined(CONFIG_WOWLAN) || defined(CONFIG_AP_WOWLAN)
@@ -34853,16 +28836,15 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+static unsigned char RALINK_OUI[] = {0x00, 0x0c, 0x43};
+static unsigned char REALTEK_OUI[] = {0x00, 0xe0, 0x4c};
+static unsigned char AIRGOCAP_OUI[] = {0x00, 0x0a, 0xf5};
-+
-+unsigned char REALTEK_96B_IE[] = {0x00, 0xe0, 0x4c, 0x02, 0x01, 0x20};
++static unsigned char RSN_TKIP_CIPHER[4] = {0x00, 0x0f, 0xac, 0x02};
++static unsigned char WPA_TKIP_CIPHER[4] = {0x00, 0x50, 0xf2, 0x02};
+
+extern unsigned char RTW_WPA_OUI[];
+extern unsigned char WPA_TKIP_CIPHER[4];
-+extern unsigned char RSN_TKIP_CIPHER[4];
+
+#define R2T_PHY_DELAY (0)
+
-+//#define WAIT_FOR_BCN_TO_MIN (3000)
++/* define WAIT_FOR_BCN_TO_MIN (3000) */
+#define WAIT_FOR_BCN_TO_MIN (6000)
+#define WAIT_FOR_BCN_TO_MAX (20000)
+
@@ -34879,23 +28861,15 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ IEEE80211_OFDM_RATE_24MB|IEEE80211_BASIC_RATE_MASK
+};
+
-+static u8 rtw_basic_rate_mix[7] = {
-+ IEEE80211_CCK_RATE_1MB|IEEE80211_BASIC_RATE_MASK, IEEE80211_CCK_RATE_2MB|IEEE80211_BASIC_RATE_MASK,
-+ IEEE80211_CCK_RATE_5MB|IEEE80211_BASIC_RATE_MASK, IEEE80211_CCK_RATE_11MB|IEEE80211_BASIC_RATE_MASK,
-+ IEEE80211_OFDM_RATE_6MB|IEEE80211_BASIC_RATE_MASK, IEEE80211_OFDM_RATE_12MB|IEEE80211_BASIC_RATE_MASK,
-+ IEEE80211_OFDM_RATE_24MB|IEEE80211_BASIC_RATE_MASK
-+};
-+
-+
+int cckrates_included(unsigned char *rate, int ratelen)
+{
+ int i;
-+
-+ for(i = 0; i < ratelen; i++)
++
++ for (i = 0; i < ratelen; i++)
+ {
-+ if ( (((rate[i]) & 0x7f) == 2) || (((rate[i]) & 0x7f) == 4) ||
-+ (((rate[i]) & 0x7f) == 11) || (((rate[i]) & 0x7f) == 22) )
-+ return true;
++ if ((((rate[i]) & 0x7f) == 2) || (((rate[i]) & 0x7f) == 4) ||
++ (((rate[i]) & 0x7f) == 11) || (((rate[i]) & 0x7f) == 22))
++ return true;
+ }
+
+ return false;
@@ -34905,72 +28879,36 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+int cckratesonly_included(unsigned char *rate, int ratelen)
+{
+ int i;
-+
-+ for(i = 0; i < ratelen; i++)
++
++ for (i = 0; i < ratelen; i++)
+ {
-+ if ( (((rate[i]) & 0x7f) != 2) && (((rate[i]) & 0x7f) != 4) &&
-+ (((rate[i]) & 0x7f) != 11) && (((rate[i]) & 0x7f) != 22) )
-+ return false;
++ if ((((rate[i]) & 0x7f) != 2) && (((rate[i]) & 0x7f) != 4) &&
++ (((rate[i]) & 0x7f) != 11) && (((rate[i]) & 0x7f) != 22))
++ return false;
+ }
-+
++
+ return true;
+}
+
-+u8 networktype_to_raid(_adapter *adapter,struct sta_info *psta)
++u8 networktype_to_raid_ex(struct adapter *adapter, struct sta_info *psta)
+{
-+ unsigned char raid;
-+ switch(psta->wireless_mode)
-+ {
-+ case WIRELESS_11B:
-+ raid = RATR_INX_WIRELESS_B;
-+ break;
-+ case WIRELESS_11A:
-+ case WIRELESS_11G:
-+ raid = RATR_INX_WIRELESS_G;
-+ break;
-+ case WIRELESS_11BG:
-+ raid = RATR_INX_WIRELESS_GB;
-+ break;
-+ case WIRELESS_11_24N:
-+ case WIRELESS_11_5N:
-+ raid = RATR_INX_WIRELESS_N;
-+ break;
-+ case WIRELESS_11A_5N:
-+ case WIRELESS_11G_24N:
-+ raid = RATR_INX_WIRELESS_NG;
-+ break;
-+ case WIRELESS_11BG_24N:
-+ raid = RATR_INX_WIRELESS_NGB;
-+ break;
-+ default:
-+ raid = RATR_INX_WIRELESS_GB;
-+ break;
-+
-+ }
-+ return raid;
-+
-+}
-+
-+u8 networktype_to_raid_ex(_adapter *adapter, struct sta_info *psta)
-+{
-+ struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv;
-+ u8 raid, cur_rf_type, rf_type= RF_1T1R;
++ u8 raid, cur_rf_type, rf_type = RF_1T1R;
+
+ rtw_hal_get_hwreg(adapter, HW_VAR_RF_TYPE, (u8 *)(&cur_rf_type));
+
-+ if(cur_rf_type == RF_1T1R) {
++ if (cur_rf_type == RF_1T1R) {
+ rf_type = RF_1T1R;
+ }
-+ else if(IsSupportedVHT(psta->wireless_mode)) {
-+ if(psta->ra_mask & 0xffc00000)
++ else if (IsSupportedVHT(psta->wireless_mode)) {
++ if (psta->ra_mask & 0xffc00000)
+ rf_type = RF_2T2R;
+ }
-+ else if(IsSupportedHT(psta->wireless_mode)) {
-+ if(psta->ra_mask & 0xfff00000)
++ else if (IsSupportedHT(psta->wireless_mode)) {
++ if (psta->ra_mask & 0xfff00000)
+ rf_type = RF_2T2R;
+ }
+
-+ switch(psta->wireless_mode)
++ switch (psta->wireless_mode)
+ {
+ case WIRELESS_11B:
+ raid = RATEID_IDX_B;
@@ -35007,51 +28945,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ break;
+ default:
+ raid = RATEID_IDX_BGN_40M_2SS;
-+ break;
++ break;
+
+ }
+ return raid;
-+
-+}
+
-+u8 judge_network_type(_adapter *padapter, unsigned char *rate, int ratelen)
-+{
-+ u8 network_type = 0;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+
-+
-+ if(pmlmeext->cur_channel > 14)
-+ {
-+ if (pmlmeinfo->VHT_enable)
-+ network_type = WIRELESS_11AC;
-+ else if (pmlmeinfo->HT_enable)
-+ network_type = WIRELESS_11_5N;
-+
-+ network_type |= WIRELESS_11A;
-+ }
-+ else
-+ {
-+ if (pmlmeinfo->HT_enable)
-+ {
-+ network_type = WIRELESS_11_24N;
-+ }
-+
-+ if ((cckratesonly_included(rate, ratelen)) == true)
-+ {
-+ network_type |= WIRELESS_11B;
-+ }
-+ else if((cckrates_included(rate, ratelen)) == true)
-+ {
-+ network_type |= WIRELESS_11BG;
-+ }
-+ else
-+ {
-+ network_type |= WIRELESS_11G;
-+ }
-+ }
-+
-+ return network_type;
+}
+
+unsigned char ratetbl_val_2wifirate(unsigned char rate);
@@ -35059,7 +28957,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+{
+ unsigned char val = 0;
+
-+ switch (rate & 0x7f)
++ switch (rate & 0x7f)
+ {
+ case 0:
+ val = IEEE80211_CCK_RATE_1MB;
@@ -35076,7 +28974,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ case 3:
+ val = IEEE80211_CCK_RATE_11MB;
+ break;
-+
++
+ case 4:
+ val = IEEE80211_OFDM_RATE_6MB;
+ break;
@@ -35088,7 +28986,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ case 6:
+ val = IEEE80211_OFDM_RATE_12MB;
+ break;
-+
++
+ case 7:
+ val = IEEE80211_OFDM_RATE_18MB;
+ break;
@@ -35096,7 +28994,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ case 8:
+ val = IEEE80211_OFDM_RATE_24MB;
+ break;
-+
++
+ case 9:
+ val = IEEE80211_OFDM_RATE_36MB;
+ break;
@@ -35104,7 +29002,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ case 10:
+ val = IEEE80211_OFDM_RATE_48MB;
+ break;
-+
++
+ case 11:
+ val = IEEE80211_OFDM_RATE_54MB;
+ break;
@@ -35115,14 +29013,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+
+}
+
-+int is_basicrate(_adapter *padapter, unsigned char rate);
-+int is_basicrate(_adapter *padapter, unsigned char rate)
++int is_basicrate(struct adapter *padapter, unsigned char rate);
++int is_basicrate(struct adapter *padapter, unsigned char rate)
+{
+ int i;
+ unsigned char val;
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+
-+ for(i = 0; i < NumRates; i++)
++
++ for (i = 0; i < NumRates; i++)
+ {
+ val = pmlmeext->basicrate[i];
+
@@ -35134,12 +29032,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ }
+ }
+ }
-+
++
+ return false;
+}
+
-+unsigned int ratetbl2rateset(_adapter *padapter, unsigned char *rateset);
-+unsigned int ratetbl2rateset(_adapter *padapter, unsigned char *rateset)
++unsigned int ratetbl2rateset(struct adapter *padapter, unsigned char *rateset);
++unsigned int ratetbl2rateset(struct adapter *padapter, unsigned char *rateset)
+{
+ int i;
+ unsigned char rate;
@@ -35154,10 +29052,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ {
+ case 0xff:
+ return len;
-+
++
+ case 0xfe:
+ continue;
-+
++
+ default:
+ rate = ratetbl_val_2wifirate(rate);
+
@@ -35165,7 +29063,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ {
+ rate |= IEEE80211_BASIC_RATE_MASK;
+ }
-+
++
+ rateset[len] = rate;
+ len++;
+ break;
@@ -35174,7 +29072,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ return len;
+}
+
-+void get_rate_set(_adapter *padapter, unsigned char *pbssrate, int *bssrate_len)
++void get_rate_set(struct adapter *padapter, unsigned char *pbssrate, int *bssrate_len)
+{
+ unsigned char supportedrates[NumRates];
+
@@ -35197,18 +29095,18 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+}
+
+void UpdateBrateTbl(
-+ IN PADAPTER Adapter,
-+ IN u8 *mBratesOS
++ struct adapter * Adapter,
++ u8 *mBratesOS
+)
+{
-+ u8 i;
-+ u8 rate;
++ u8 i;
++ u8 rate;
+
-+ // 1M, 2M, 5.5M, 11M, 6M, 12M, 24M are mandatory.
-+ for(i=0;ioper_channel;
+}
+
-+inline void rtw_set_oper_ch(_adapter *adapter, u8 ch)
++inline void rtw_set_oper_ch(struct adapter *adapter, u8 ch)
+{
+#ifdef DBG_CH_SWITCH
+ const int len = 128;
@@ -35289,7 +29187,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ int i = 0;
+#endif /* DBG_CH_SWITCH */
+ struct dvobj_priv *dvobj = adapter_to_dvobj(adapter);
-+
++
+ if (dvobj->oper_channel != ch) {
+ dvobj->on_oper_ch_time = jiffies;
+
@@ -35297,7 +29195,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ cnt += snprintf(msg+cnt, len-cnt, "switch to ch %3u", ch);
+
+ for (i = 0; i < dvobj->iface_nums; i++) {
-+ _adapter *iface = dvobj->padapters[i];
++ struct adapter *iface = dvobj->padapters[i];
+ cnt += snprintf(msg+cnt, len-cnt, " ["ADPT_FMT":", ADPT_ARG(iface));
+ if (iface->mlmeextpriv.cur_channel == ch)
+ cnt += snprintf(msg+cnt, len-cnt, "C");
@@ -35317,101 +29215,48 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ dvobj->oper_channel = ch;
+}
+
-+inline u8 rtw_get_oper_bw(_adapter *adapter)
++inline u8 rtw_get_oper_bw(struct adapter *adapter)
+{
+ return adapter_to_dvobj(adapter)->oper_bwmode;
+}
+
-+inline void rtw_set_oper_bw(_adapter *adapter, u8 bw)
++inline void rtw_set_oper_bw(struct adapter *adapter, u8 bw)
+{
+ adapter_to_dvobj(adapter)->oper_bwmode = bw;
+}
+
-+inline u8 rtw_get_oper_choffset(_adapter *adapter)
++inline u8 rtw_get_oper_choffset(struct adapter *adapter)
+{
+ return adapter_to_dvobj(adapter)->oper_ch_offset;
+}
+
-+inline void rtw_set_oper_choffset(_adapter *adapter, u8 offset)
++inline void rtw_set_oper_choffset(struct adapter *adapter, u8 offset)
+{
+ adapter_to_dvobj(adapter)->oper_ch_offset = offset;
+}
+
-+u8 rtw_get_offset_by_ch(u8 channel)
++u8 rtw_get_center_ch(u8 channel, u8 chnl_bw, u8 chnl_offset)
+{
-+ u8 offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
++ u8 center_ch = channel;
+
-+ if(channel>=1 && channel<=4)
++ if (chnl_bw == CHANNEL_WIDTH_80)
+ {
-+ offset = HAL_PRIME_CHNL_OFFSET_LOWER;
-+ }
-+ else if(channel>=5 && channel<=14)
-+ {
-+ offset = HAL_PRIME_CHNL_OFFSET_UPPER;
-+ }
-+ else
-+ {
-+ switch(channel)
-+ {
-+ case 36:
-+ case 44:
-+ case 52:
-+ case 60:
-+ case 100:
-+ case 108:
-+ case 116:
-+ case 124:
-+ case 132:
-+ case 149:
-+ case 157:
-+ offset = HAL_PRIME_CHNL_OFFSET_LOWER;
-+ break;
-+ case 40:
-+ case 48:
-+ case 56:
-+ case 64:
-+ case 104:
-+ case 112:
-+ case 120:
-+ case 128:
-+ case 136:
-+ case 153:
-+ case 161:
-+ offset = HAL_PRIME_CHNL_OFFSET_UPPER;
-+ break;
-+ default:
-+ offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
-+ break;
-+ }
-+
-+ }
-+
-+ return offset;
-+
-+}
-+
-+u8 rtw_get_center_ch(u8 channel, u8 chnl_bw, u8 chnl_offset)
-+{
-+ u8 center_ch = channel;
-+
-+ if(chnl_bw == CHANNEL_WIDTH_80)
-+ {
-+ if((channel == 36) || (channel == 40) || (channel == 44) || (channel == 48) )
++ if ((channel == 36) || (channel == 40) || (channel == 44) || (channel == 48))
+ center_ch = 42;
-+ if((channel == 52) || (channel == 56) || (channel == 60) || (channel == 64) )
++ if ((channel == 52) || (channel == 56) || (channel == 60) || (channel == 64))
+ center_ch = 58;
-+ if((channel == 100) || (channel == 104) || (channel == 108) || (channel == 112) )
++ if ((channel == 100) || (channel == 104) || (channel == 108) || (channel == 112))
+ center_ch = 106;
-+ if((channel == 116) || (channel == 120) || (channel == 124) || (channel == 128) )
++ if ((channel == 116) || (channel == 120) || (channel == 124) || (channel == 128))
+ center_ch = 122;
-+ if((channel == 132) || (channel == 136) || (channel == 140) || (channel == 144) )
++ if ((channel == 132) || (channel == 136) || (channel == 140) || (channel == 144))
+ center_ch = 138;
-+ if((channel == 149) || (channel == 153) || (channel == 157) || (channel == 161) )
++ if ((channel == 149) || (channel == 153) || (channel == 157) || (channel == 161))
+ center_ch = 155;
-+ else if(channel <= 14)
++ else if (channel <= 14)
+ center_ch = 7;
+ }
-+ else if(chnl_bw == CHANNEL_WIDTH_40)
++ else if (chnl_bw == CHANNEL_WIDTH_40)
+ {
+ if (chnl_offset == HAL_PRIME_CHNL_OFFSET_LOWER)
+ center_ch = channel + 2;
@@ -35422,12 +29267,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ return center_ch;
+}
+
-+inline u32 rtw_get_on_oper_ch_time(_adapter *adapter)
-+{
-+ return adapter_to_dvobj(adapter)->on_oper_ch_time;
-+}
-+
-+inline unsigned long rtw_get_on_cur_ch_time(_adapter *adapter)
++inline unsigned long rtw_get_on_cur_ch_time(struct adapter *adapter)
+{
+ if (adapter->mlmeextpriv.cur_channel == adapter_to_dvobj(adapter)->oper_channel)
+ return adapter_to_dvobj(adapter)->on_oper_ch_time;
@@ -35435,111 +29275,79 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ return 0;
+}
+
-+void SelectChannel(_adapter *padapter, unsigned char channel)
++void SelectChannel(struct adapter *padapter, unsigned char channel)
+{
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ if (mutex_lock_interruptible(&(adapter_to_dvobj(padapter)->setch_mutex)))
++ return;
+
-+ _enter_critical_mutex(&(adapter_to_dvobj(padapter)->setch_mutex), NULL);
-+
-+ //saved channel info
++ /* saved channel info */
+ rtw_set_oper_ch(padapter, channel);
+
+ rtw_hal_set_chan(padapter, channel);
-+
-+ _exit_critical_mutex(&(adapter_to_dvobj(padapter)->setch_mutex), NULL);
++
++ mutex_unlock(&(adapter_to_dvobj(padapter)->setch_mutex));
+}
+
-+void SetBWMode(_adapter *padapter, unsigned short bwmode, unsigned char channel_offset)
-+{
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+
-+ _enter_critical_mutex(&(adapter_to_dvobj(padapter)->setbw_mutex), NULL);
-+
-+ //saved bw info
-+ rtw_set_oper_bw(padapter, bwmode);
-+ rtw_set_oper_choffset(padapter, channel_offset);
-+
-+ rtw_hal_set_bwmode(padapter, (CHANNEL_WIDTH)bwmode, channel_offset);
-+
-+ _exit_critical_mutex(&(adapter_to_dvobj(padapter)->setbw_mutex), NULL);
-+}
-+
-+void set_channel_bwmode(_adapter *padapter, unsigned char channel, unsigned char channel_offset, unsigned short bwmode)
++void set_channel_bwmode(struct adapter *padapter, unsigned char channel, unsigned char channel_offset, unsigned short bwmode)
+{
+ u8 center_ch, chnl_offset80 = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+
-+ if ( padapter->bNotifyChannelChange )
++ if (padapter->bNotifyChannelChange)
+ {
-+ DBG_871X( "[%s] ch = %d, offset = %d, bwmode = %d\n", __FUNCTION__, channel, channel_offset, bwmode );
++ DBG_871X("[%s] ch = %d, offset = %d, bwmode = %d\n", __func__, channel, channel_offset, bwmode);
+ }
+
+ center_ch = rtw_get_center_ch(channel, bwmode, channel_offset);
+
-+ if(bwmode == CHANNEL_WIDTH_80)
++ if (bwmode == CHANNEL_WIDTH_80)
+ {
-+ if(center_ch > channel)
++ if (center_ch > channel)
+ chnl_offset80 = HAL_PRIME_CHNL_OFFSET_LOWER;
-+ else if(center_ch < channel)
++ else if (center_ch < channel)
+ chnl_offset80 = HAL_PRIME_CHNL_OFFSET_UPPER;
+ else
+ chnl_offset80 = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
+ }
+
-+ //set Channel
-+ _enter_critical_mutex(&(adapter_to_dvobj(padapter)->setch_mutex), NULL);
++ /* set Channel */
++ if (mutex_lock_interruptible(&(adapter_to_dvobj(padapter)->setch_mutex)))
++ return;
+
-+ //saved channel/bw info
++ /* saved channel/bw info */
+ rtw_set_oper_ch(padapter, channel);
+ rtw_set_oper_bw(padapter, bwmode);
+ rtw_set_oper_choffset(padapter, channel_offset);
+
-+ rtw_hal_set_chnl_bw(padapter, center_ch, bwmode, channel_offset, chnl_offset80); // set center channel
++ rtw_hal_set_chnl_bw(padapter, center_ch, bwmode, channel_offset, chnl_offset80); /* set center channel */
+
-+ _exit_critical_mutex(&(adapter_to_dvobj(padapter)->setch_mutex), NULL);
++ mutex_unlock(&(adapter_to_dvobj(padapter)->setch_mutex));
+}
+
-+int get_bsstype(unsigned short capability)
++__inline u8 *get_my_bssid(struct wlan_bssid_ex *pnetwork)
+{
-+ if (capability & BIT(0))
-+ {
-+ return WIFI_FW_AP_STATE;
-+ }
-+ else if (capability & BIT(1))
-+ {
-+ return WIFI_FW_ADHOC_STATE;
-+ }
-+ else
-+ {
-+ return 0;
-+ }
++ return (pnetwork->MacAddress);
+}
+
-+__inline u8 *get_my_bssid(WLAN_BSSID_EX *pnetwork)
-+{
-+ return (pnetwork->MacAddress);
-+}
-+
-+u16 get_beacon_interval(WLAN_BSSID_EX *bss)
++u16 get_beacon_interval(struct wlan_bssid_ex *bss)
+{
-+ unsigned short val;
++ __le16 val;
+ memcpy((unsigned char *)&val, rtw_get_beacon_interval_from_ie(bss->IEs), 2);
+
-+ return le16_to_cpu(val);
++ return le16_to_cpu(val);
+
+}
+
-+int is_client_associated_to_ap(_adapter *padapter)
++int is_client_associated_to_ap(struct adapter *padapter)
+{
-+ struct mlme_ext_priv *pmlmeext;
-+ struct mlme_ext_info *pmlmeinfo;
++ struct mlme_ext_priv *pmlmeext;
++ struct mlme_ext_info *pmlmeinfo;
+
-+ if(!padapter)
++ if (!padapter)
+ return _FAIL;
+
+ pmlmeext = &padapter->mlmeextpriv;
+ pmlmeinfo = &(pmlmeext->mlmext_info);
-+
++
+ if ((pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS) && ((pmlmeinfo->state&0x03) == WIFI_FW_STATION_STATE))
+ {
+ return true;
@@ -35550,11 +29358,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ }
+}
+
-+int is_client_associated_to_ibss(_adapter *padapter)
++int is_client_associated_to_ibss(struct adapter *padapter)
+{
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++
+ if ((pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS) && ((pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE))
+ {
+ return true;
@@ -35565,12 +29373,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ }
+}
+
-+int is_IBSS_empty(_adapter *padapter)
++int is_IBSS_empty(struct adapter *padapter)
+{
+ unsigned int i;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++
+ for (i = IBSS_START_MAC_ID; i < NUM_STA; i++)
+ {
+ if (pmlmeinfo->FW_sta_info[i].status == 1)
@@ -35578,9 +29386,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ return _FAIL;
+ }
+ }
-+
++
+ return true;
-+
++
+}
+
+unsigned int decide_wait_for_beacon_timeout(unsigned int bcn_interval)
@@ -35588,84 +29396,75 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ if ((bcn_interval << 2) < WAIT_FOR_BCN_TO_MIN)
+ {
+ return WAIT_FOR_BCN_TO_MIN;
-+ }
++ }
+ else if ((bcn_interval << 2) > WAIT_FOR_BCN_TO_MAX)
+ {
+ return WAIT_FOR_BCN_TO_MAX;
-+ }
++ }
+ else
+ {
+ return ((bcn_interval << 2));
+ }
+}
+
-+void CAM_empty_entry(
-+ PADAPTER Adapter,
-+ u8 ucIndex
-+)
-+{
-+ rtw_hal_set_hwreg(Adapter, HW_VAR_CAM_EMPTY_ENTRY, (u8 *)(&ucIndex));
-+}
-+
-+void invalidate_cam_all(_adapter *padapter)
++void invalidate_cam_all(struct adapter *padapter)
+{
+ struct dvobj_priv *dvobj = adapter_to_dvobj(padapter);
+ struct cam_ctl_t *cam_ctl = &dvobj->cam_ctl;
-+ _irqL irqL;
+
+ rtw_hal_set_hwreg(padapter, HW_VAR_CAM_INVALID_ALL, NULL);
+
-+ _enter_critical_bh(&cam_ctl->lock, &irqL);
++ spin_lock_bh(&cam_ctl->lock);
+ cam_ctl->bitmap = 0;
+ memset(dvobj->cam_cache, 0, sizeof(struct cam_entry_cache)*TOTAL_CAM_ENTRY);
-+ _exit_critical_bh(&cam_ctl->lock, &irqL);
++ spin_unlock_bh(&cam_ctl->lock);
+}
+
-+static u32 _ReadCAM(_adapter *padapter ,u32 addr)
++static u32 _ReadCAM(struct adapter *padapter , u32 addr)
+{
+ u32 count = 0, cmd;
+ cmd = CAM_POLLINIG |addr ;
+ rtw_write32(padapter, RWCAM, cmd);
+
+ do{
-+ if(0 == (rtw_read32(padapter,REG_CAMCMD) & CAM_POLLINIG)){
++ if (0 == (rtw_read32(padapter, REG_CAMCMD) & CAM_POLLINIG)) {
+ break;
+ }
-+ }while(count++ < 100);
++ }while (count++ < 100);
+
-+ return rtw_read32(padapter,REG_CAMREAD);
++ return rtw_read32(padapter, REG_CAMREAD);
+}
-+void read_cam(_adapter *padapter ,u8 entry, u8 *get_key)
++void read_cam(struct adapter *padapter , u8 entry, u8 *get_key)
+{
-+ u32 j,count = 0, addr, cmd;
++ u32 j, addr, cmd;
+ addr = entry << 3;
+
-+ //DBG_8192C("********* DUMP CAM Entry_#%02d***************\n",entry);
++ /* DBG_8192C("********* DUMP CAM Entry_#%02d***************\n", entry); */
+ for (j = 0; j < 6; j++)
-+ {
-+ cmd = _ReadCAM(padapter ,addr+j);
-+ //DBG_8192C("offset:0x%02x => 0x%08x \n",addr+j,cmd);
-+ if(j>1) //get key from cam
++ {
++ cmd = _ReadCAM(padapter , addr+j);
++ /* DBG_8192C("offset:0x%02x => 0x%08x\n", addr+j, cmd); */
++ if (j>1) /* get key from cam */
+ memcpy(get_key+(j-2)*4, &cmd, 4);
+ }
-+ //DBG_8192C("*********************************\n");
++ /* DBG_8192C("*********************************\n"); */
+}
+
-+void _write_cam(_adapter *padapter, u8 entry, u16 ctrl, u8 *mac, u8 *key)
++void _write_cam(struct adapter *padapter, u8 entry, u16 ctrl, u8 *mac, u8 *key)
+{
+ unsigned int i, val, addr;
+ int j;
-+ u32 cam_val[2];
++ u32 cam_val[2];
+
+ addr = entry << 3;
+
+ for (j = 5; j >= 0; j--) {
+ switch (j) {
+ case 0:
-+ val = (ctrl | (mac[0] << 16) | (mac[1] << 24) );
++ val = (ctrl | (mac[0] << 16) | (mac[1] << 24));
+ break;
+ case 1:
-+ val = (mac[2] | ( mac[3] << 8) | (mac[4] << 16) | (mac[5] << 24));
++ val = (mac[2] | (mac[3] << 8) | (mac[4] << 16) | (mac[5] << 24));
+ break;
+ default:
+ i = (j - 2) << 2;
@@ -35680,116 +29479,66 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ }
+}
+
-+void _clear_cam_entry(_adapter *padapter, u8 entry)
++void _clear_cam_entry(struct adapter *padapter, u8 entry)
+{
+ unsigned char null_sta[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
-+ unsigned char null_key[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00};
++ unsigned char null_key[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+
+ _write_cam(padapter, entry, 0, null_sta, null_key);
+}
+
-+inline void write_cam(_adapter *adapter, u8 id, u16 ctrl, u8 *mac, u8 *key)
++inline void write_cam(struct adapter *adapter, u8 id, u16 ctrl, u8 *mac, u8 *key)
+{
-+#ifdef CONFIG_WRITE_CACHE_ONLY
-+ write_cam_cache(adapter, id ,ctrl, mac, key);
-+#else
+ _write_cam(adapter, id, ctrl, mac, key);
-+ write_cam_cache(adapter, id ,ctrl, mac, key);
-+#endif
++ write_cam_cache(adapter, id , ctrl, mac, key);
+}
+
-+inline void clear_cam_entry(_adapter *adapter, u8 id)
++inline void clear_cam_entry(struct adapter *adapter, u8 id)
+{
+ _clear_cam_entry(adapter, id);
+ clear_cam_cache(adapter, id);
+}
+
-+inline void write_cam_from_cache(_adapter *adapter, u8 id)
++inline void write_cam_from_cache(struct adapter *adapter, u8 id)
+{
+ struct dvobj_priv *dvobj = adapter_to_dvobj(adapter);
+ struct cam_ctl_t *cam_ctl = &dvobj->cam_ctl;
-+ _irqL irqL;
+ struct cam_entry_cache cache;
+
-+ _enter_critical_bh(&cam_ctl->lock, &irqL);
++ spin_lock_bh(&cam_ctl->lock);
+ memcpy(&cache, &dvobj->cam_cache[id], sizeof(struct cam_entry_cache));
-+ _exit_critical_bh(&cam_ctl->lock, &irqL);
++ spin_unlock_bh(&cam_ctl->lock);
+
+ _write_cam(adapter, id, cache.ctrl, cache.mac, cache.key);
+}
+
-+void write_cam_cache(_adapter *adapter, u8 id, u16 ctrl, u8 *mac, u8 *key)
++void write_cam_cache(struct adapter *adapter, u8 id, u16 ctrl, u8 *mac, u8 *key)
+{
+ struct dvobj_priv *dvobj = adapter_to_dvobj(adapter);
+ struct cam_ctl_t *cam_ctl = &dvobj->cam_ctl;
-+ _irqL irqL;
+
-+ _enter_critical_bh(&cam_ctl->lock, &irqL);
++ spin_lock_bh(&cam_ctl->lock);
+
+ dvobj->cam_cache[id].ctrl = ctrl;
+ memcpy(dvobj->cam_cache[id].mac, mac, ETH_ALEN);
+ memcpy(dvobj->cam_cache[id].key, key, 16);
+
-+ _exit_critical_bh(&cam_ctl->lock, &irqL);
++ spin_unlock_bh(&cam_ctl->lock);
+}
+
-+void clear_cam_cache(_adapter *adapter, u8 id)
++void clear_cam_cache(struct adapter *adapter, u8 id)
+{
+ struct dvobj_priv *dvobj = adapter_to_dvobj(adapter);
+ struct cam_ctl_t *cam_ctl = &dvobj->cam_ctl;
-+ _irqL irqL;
+
-+ _enter_critical_bh(&cam_ctl->lock, &irqL);
++ spin_lock_bh(&cam_ctl->lock);
+
+ memset(&(dvobj->cam_cache[id]), 0, sizeof(struct cam_entry_cache));
+
-+ _exit_critical_bh(&cam_ctl->lock, &irqL);
++ spin_unlock_bh(&cam_ctl->lock);
+}
+
-+s16 rtw_get_camid(_adapter *adapter, struct sta_info *sta, s16 kid)
-+{
-+ u8 macid;
-+ s16 camid;
-+
-+ //cam_entry:
-+ //0~3 for default key
-+
-+ //for concurrent mode (ap+sta, sta+sta):
-+ //default key is disable, using sw encrypt/decrypt
-+ //camid 0, 1, 2, 3 is default entry for default key/group key
-+ //macid = 1 is for bc/mc stainfo, no mapping to camid
-+ //macid = 0 mapping to camid 4
-+ //for macid >=2, camid = macid+3;
-+
-+ if (sta) {
-+ struct mlme_ext_info *mlmeinfo = &adapter->mlmeextpriv.mlmext_info;
-+ macid = sta->mac_id;
-+
-+ if((mlmeinfo->state&0x03) == WIFI_FW_AP_STATE) {
-+ if((macid == 1) || (macid>(NUM_STA-4))){
-+ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" failed, mac_id=%d\n", FUNC_ADPT_ARG(adapter), macid);
-+ camid = -1;
-+ goto exit;
-+ }
-+ }
-+
-+ if(macid==0)
-+ camid = 4;
-+ else if(macid >=2)
-+ camid = macid + 3;
-+ else
-+ camid = 4;
-+ }
-+ else {
-+ /* default key is disabled */
-+ camid = -1;
-+ }
-+
-+exit:
-+ return (s16)camid;
-+}
-+
-+static bool _rtw_camid_is_gk(_adapter *adapter, u8 cam_id)
++static bool _rtw_camid_is_gk(struct adapter *adapter, u8 cam_id)
+{
+ struct dvobj_priv *dvobj = adapter_to_dvobj(adapter);
+ struct cam_ctl_t *cam_ctl = &dvobj->cam_ctl;
@@ -35800,21 +29549,20 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+
+ if (!(cam_ctl->bitmap & BIT(cam_id)))
+ goto exit;
-+
++
+ ret = (dvobj->cam_cache[cam_id].ctrl&BIT6)?true:false;
+
+exit:
+ return ret;
+}
+
-+static s16 _rtw_camid_search(_adapter *adapter, u8 *addr, s16 kid)
++static s16 _rtw_camid_search(struct adapter *adapter, u8 *addr, s16 kid)
+{
+ struct dvobj_priv *dvobj = adapter_to_dvobj(adapter);
-+ struct cam_ctl_t *cam_ctl = &dvobj->cam_ctl;
+ int i;
+ s16 cam_id = -1;
+
-+ for (i=0;icam_cache[i].mac, addr, ETH_ALEN))
+ continue;
+ if (kid >= 0 && kid != (dvobj->cam_cache[i].ctrl&0x03))
@@ -35834,119 +29582,111 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ return cam_id;
+}
+
-+s16 rtw_camid_search(_adapter *adapter, u8 *addr, s16 kid)
++s16 rtw_camid_search(struct adapter *adapter, u8 *addr, s16 kid)
+{
+ struct dvobj_priv *dvobj = adapter_to_dvobj(adapter);
+ struct cam_ctl_t *cam_ctl = &dvobj->cam_ctl;
-+ _irqL irqL;
+ s16 cam_id = -1;
+
-+ _enter_critical_bh(&cam_ctl->lock, &irqL);
++ spin_lock_bh(&cam_ctl->lock);
+ cam_id = _rtw_camid_search(adapter, addr, kid);
-+ _exit_critical_bh(&cam_ctl->lock, &irqL);
++ spin_unlock_bh(&cam_ctl->lock);
+
+ return cam_id;
+}
+
-+s16 rtw_camid_alloc(_adapter *adapter, struct sta_info *sta, u8 kid)
++s16 rtw_camid_alloc(struct adapter *adapter, struct sta_info *sta, u8 kid)
+{
+ struct dvobj_priv *dvobj = adapter_to_dvobj(adapter);
+ struct cam_ctl_t *cam_ctl = &dvobj->cam_ctl;
-+ _irqL irqL;
+ s16 cam_id = -1;
++ struct mlme_ext_info *mlmeinfo;
+
-+ _enter_critical_bh(&cam_ctl->lock, &irqL);
++ spin_lock_bh(&cam_ctl->lock);
+
-+#ifdef DYNAMIC_CAMID_ALLOC
-+ {
-+ struct mlme_ext_info *mlmeinfo = &adapter->mlmeextpriv.mlmext_info;
++ mlmeinfo = &adapter->mlmeextpriv.mlmext_info;
+
-+ if((((mlmeinfo->state&0x03) == WIFI_FW_AP_STATE) || ((mlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE))
-+ && !sta) {
-+ /* AP/Ad-hoc mode group key: static alloction to default key by key ID */
-+ if (kid > 3) {
-+ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" group key with invalid key id:%u\n"
-+ , FUNC_ADPT_ARG(adapter), kid);
-+ rtw_warn_on(1);
-+ goto bitmap_handle;
-+ }
-+
-+ cam_id = kid;
++ if ((((mlmeinfo->state&0x03) == WIFI_FW_AP_STATE) || ((mlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE))
++ && !sta) {
++ /* AP/Ad-hoc mode group key: static alloction to default key by key ID */
++ if (kid > 3) {
++ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" group key with invalid key id:%u\n"
++ , FUNC_ADPT_ARG(adapter), kid);
++ rtw_warn_on(1);
++ goto bitmap_handle;
+ }
-+ else {
-+ int i;
-+ u8 *addr = sta?sta->hwaddr:NULL;
+
-+ if(!sta) {
-+ if (!(mlmeinfo->state & WIFI_FW_ASSOC_SUCCESS)) {
-+ /* bypass STA mode group key setting before connected(ex:WEP) because bssid is not ready */
-+ goto bitmap_handle;
-+ }
-+
-+ addr = get_bssid(&adapter->mlmepriv);
-+ }
-+
-+ if ((i = _rtw_camid_search(adapter, addr, kid)) >= 0) {
-+ /* Fix issue that pairwise and group key have same key id. Pairwise key first, group key can overwirte group only(ex: rekey) */
-+ if (sta || _rtw_camid_is_gk(adapter, i) == true)
-+ cam_id = i;
-+ else
-+ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" group key id:%u the same key id as pairwise key\n"
-+ , FUNC_ADPT_ARG(adapter), kid);
-+ goto bitmap_handle;
-+ }
-+
-+ for (i=4;ibitmap & BIT(i)))
-+ break;
-+
-+ if (i == TOTAL_CAM_ENTRY) {
-+ if (sta)
-+ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" pairwise key with "MAC_FMT" id:%u no room\n"
-+ , FUNC_ADPT_ARG(adapter), MAC_ARG(sta->hwaddr), kid);
-+ else
-+ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" group key id:%u no room\n"
-+ , FUNC_ADPT_ARG(adapter), kid);
-+ rtw_warn_on(1);
-+ goto bitmap_handle;
-+ }
-+
-+ cam_id = i;
-+ }
++ cam_id = kid;
++ }
++ else {
++ int i;
++ u8 *addr = sta?sta->hwaddr:NULL;
++
++ if (!sta) {
++ if (!(mlmeinfo->state & WIFI_FW_ASSOC_SUCCESS)) {
++ /* bypass STA mode group key setting before connected(ex:WEP) because bssid is not ready */
++ goto bitmap_handle;
++ }
++
++ addr = get_bssid(&adapter->mlmepriv);
++ }
++
++ if ((i = _rtw_camid_search(adapter, addr, kid)) >= 0) {
++ /* Fix issue that pairwise and group key have same key id. Pairwise key first, group key can overwirte group only(ex: rekey) */
++ if (sta || _rtw_camid_is_gk(adapter, i) == true)
++ cam_id = i;
++ else
++ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" group key id:%u the same key id as pairwise key\n"
++ , FUNC_ADPT_ARG(adapter), kid);
++ goto bitmap_handle;
++ }
++
++ for (i =4;ibitmap & BIT(i)))
++ break;
++
++ if (i == TOTAL_CAM_ENTRY) {
++ if (sta)
++ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" pairwise key with "MAC_FMT" id:%u no room\n"
++ , FUNC_ADPT_ARG(adapter), MAC_ARG(sta->hwaddr), kid);
++ else
++ DBG_871X_LEVEL(_drv_always_, FUNC_ADPT_FMT" group key id:%u no room\n"
++ , FUNC_ADPT_ARG(adapter), kid);
++ rtw_warn_on(1);
++ goto bitmap_handle;
++ }
++
++ cam_id = i;
+ }
-+#else
-+ cam_id = rtw_get_camid(adapter, sta, kid);
-+#endif /* DYNAMIC_CAMID_ALLOC */
+
+bitmap_handle:
+ if (cam_id >= 0)
+ cam_ctl->bitmap |= BIT(cam_id);
+
-+ _exit_critical_bh(&cam_ctl->lock, &irqL);
++ spin_unlock_bh(&cam_ctl->lock);
+
+ return cam_id;
+}
+
-+void rtw_camid_free(_adapter *adapter, u8 cam_id)
++void rtw_camid_free(struct adapter *adapter, u8 cam_id)
+{
+ struct dvobj_priv *dvobj = adapter_to_dvobj(adapter);
+ struct cam_ctl_t *cam_ctl = &dvobj->cam_ctl;
-+ _irqL irqL;
+
-+ _enter_critical_bh(&cam_ctl->lock, &irqL);
++ spin_lock_bh(&cam_ctl->lock);
+
+ if (cam_id < TOTAL_CAM_ENTRY)
+ cam_ctl->bitmap &= ~(BIT(cam_id));
+
-+ _exit_critical_bh(&cam_ctl->lock, &irqL);
++ spin_unlock_bh(&cam_ctl->lock);
+}
+
-+int allocate_fw_sta_entry(_adapter *padapter)
++int allocate_fw_sta_entry(struct adapter *padapter)
+{
+ unsigned int mac_id;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++
+ for (mac_id = IBSS_START_MAC_ID; mac_id < NUM_STA; mac_id++)
+ {
+ if (pmlmeinfo->FW_sta_info[mac_id].status == 0)
@@ -35956,40 +29696,37 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ break;
+ }
+ }
-+
++
+ return mac_id;
+}
+
-+void flush_all_cam_entry(_adapter *padapter)
++void flush_all_cam_entry(struct adapter *padapter)
+{
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
+
+ invalidate_cam_all(padapter);
+ /* clear default key related key search setting */
-+ #ifdef DYNAMIC_CAMID_ALLOC
-+ rtw_hal_set_hwreg(padapter, HW_VAR_SEC_DK_CFG, (u8*)false);
-+ #endif
++ rtw_hal_set_hwreg(padapter, HW_VAR_SEC_DK_CFG, (u8 *)false);
+
+ memset((u8 *)(pmlmeinfo->FW_sta_info), 0, sizeof(pmlmeinfo->FW_sta_info));
-+
++
+}
+
-+int WMM_param_handler(_adapter *padapter, PNDIS_802_11_VARIABLE_IEs pIE)
++int WMM_param_handler(struct adapter *padapter, struct ndis_80211_var_ie * pIE)
+{
-+ //struct registry_priv *pregpriv = &padapter->registrypriv;
-+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+
-+ if(pmlmepriv->qospriv.qos_option==0)
++ /* struct registry_priv *pregpriv = &padapter->registrypriv; */
++ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++
++ if (pmlmepriv->qospriv.qos_option == 0)
+ {
+ pmlmeinfo->WMM_enable = 0;
+ return false;
-+ }
-+
-+ if(!memcmp(&(pmlmeinfo->WMM_param), (pIE->data + 6), sizeof(struct WMM_para_element)))
++ }
++
++ if (!memcmp(&(pmlmeinfo->WMM_param), (pIE->data + 6), sizeof(struct WMM_para_element)))
+ {
+ return false;
+ }
@@ -35999,45 +29736,23 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ }
+ pmlmeinfo->WMM_enable = 1;
+ return true;
-+
-+ /*if (pregpriv->wifi_spec == 1)
-+ {
-+ if (pmlmeinfo->WMM_enable == 1)
-+ {
-+ //todo: compare the parameter set count & decide wheher to update or not
-+ return _FAIL;
-+ }
-+ else
-+ {
-+ pmlmeinfo->WMM_enable = 1;
-+ _rtwmemcpy(&(pmlmeinfo->WMM_param), (pIE->data + 6), sizeof(struct WMM_para_element));
-+ return true;
-+ }
-+ }
-+ else
-+ {
-+ pmlmeinfo->WMM_enable = 0;
-+ return _FAIL;
-+ }*/
-+
+}
+
-+void WMMOnAssocRsp(_adapter *padapter)
++void WMMOnAssocRsp(struct adapter *padapter)
+{
-+ u8 ACI, ACM, AIFS, ECWMin, ECWMax, aSifsTime;
-+ u8 acm_mask;
-+ u16 TXOP;
-+ u32 acParm, i;
-+ u32 edca[4], inx[4];
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
++ u8 ACI, ACM, AIFS, ECWMin, ECWMax, aSifsTime;
++ u8 acm_mask;
++ u16 TXOP;
++ u32 acParm, i;
++ u32 edca[4], inx[4];
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
++ struct registry_priv *pregpriv = &padapter->registrypriv;
+
+ acm_mask = 0;
+
-+ if (IsSupported5G(pmlmeext->cur_wireless_mode) ||
-+ (pmlmeext->cur_wireless_mode & WIRELESS_11_24N) )
++ if (pmlmeext->cur_wireless_mode & WIRELESS_11_24N)
+ aSifsTime = 16;
+ else
+ aSifsTime = 10;
@@ -36075,12 +29790,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ {
+ edca[0] = edca[1] = edca[2] = edca[3] = 0;
+
-+ for (i = 0; i < 4; i++)
++ for (i = 0; i < 4; i++)
+ {
+ ACI = (pmlmeinfo->WMM_param.ac_param[i].ACI_AIFSN >> 5) & 0x03;
+ ACM = (pmlmeinfo->WMM_param.ac_param[i].ACI_AIFSN >> 4) & 0x01;
+
-+ //AIFS = AIFSN * slot time + SIFS - r2t phy delay
++ /* AIFS = AIFSN * slot time + SIFS - r2t phy delay */
+ AIFS = (pmlmeinfo->WMM_param.ac_param[i].ACI_AIFSN & 0x0f) * pmlmeinfo->slotTime + aSifsTime;
+
+ ECWMin = (pmlmeinfo->WMM_param.ac_param[i].CW & 0x0f);
@@ -36099,7 +29814,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+
+ case 0x1:
+ rtw_hal_set_hwreg(padapter, HW_VAR_AC_PARAM_BK, (u8 *)(&acParm));
-+ //acm_mask |= (ACM? BIT(0):0);
++ /* acm_mask |= (ACM? BIT(0):0); */
+ edca[XMIT_BK_QUEUE] = acParm;
+ break;
+
@@ -36113,41 +29828,41 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ rtw_hal_set_hwreg(padapter, HW_VAR_AC_PARAM_VO, (u8 *)(&acParm));
+ acm_mask |= (ACM? BIT(3):0);
+ edca[XMIT_VO_QUEUE] = acParm;
-+ break;
++ break;
+ }
+
+ DBG_871X("WMM(%x): %x, %x\n", ACI, ACM, acParm);
+ }
+
-+ if(padapter->registrypriv.acm_method == 1)
++ if (padapter->registrypriv.acm_method == 1)
+ rtw_hal_set_hwreg(padapter, HW_VAR_ACM_CTRL, (u8 *)(&acm_mask));
+ else
+ padapter->mlmepriv.acm_mask = acm_mask;
+
+ inx[0] = 0; inx[1] = 1; inx[2] = 2; inx[3] = 3;
+
-+ if(pregpriv->wifi_spec==1)
++ if (pregpriv->wifi_spec == 1)
+ {
-+ u32 j, tmp, change_inx=false;
++ u32 j, tmp, change_inx =false;
+
-+ //entry indx: 0->vo, 1->vi, 2->be, 3->bk.
-+ for(i=0; i<4; i++)
++ /* entry indx: 0->vo, 1->vi, 2->be, 3->bk. */
++ for (i = 0; i<4; i++)
+ {
-+ for(j=i+1; j<4; j++)
++ for (j =i+1; j<4; j++)
+ {
-+ //compare CW and AIFS
-+ if((edca[j] & 0xFFFF) < (edca[i] & 0xFFFF))
++ /* compare CW and AIFS */
++ if ((edca[j] & 0xFFFF) < (edca[i] & 0xFFFF))
+ {
+ change_inx = true;
+ }
-+ else if((edca[j] & 0xFFFF) == (edca[i] & 0xFFFF))
++ else if ((edca[j] & 0xFFFF) == (edca[i] & 0xFFFF))
+ {
-+ //compare TXOP
-+ if((edca[j] >> 16) > (edca[i] >> 16))
++ /* compare TXOP */
++ if ((edca[j] >> 16) > (edca[i] >> 16))
+ change_inx = true;
+ }
-+
-+ if(change_inx)
++
++ if (change_inx)
+ {
+ tmp = edca[i];
+ edca[i] = edca[j];
@@ -36163,35 +29878,35 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ }
+ }
+
-+ for(i=0; i<4; i++) {
++ for (i = 0; i<4; i++) {
+ pxmitpriv->wmm_para_seq[i] = inx[i];
+ DBG_871X("wmm_para_seq(%d): %d\n", i, pxmitpriv->wmm_para_seq[i]);
+ }
+ }
+}
+
-+static void bwmode_update_check(_adapter *padapter, PNDIS_802_11_VARIABLE_IEs pIE)
++static void bwmode_update_check(struct adapter *padapter, struct ndis_80211_var_ie * pIE)
+{
-+ unsigned char new_bwmode;
++ unsigned char new_bwmode;
+ unsigned char new_ch_offset;
+ struct HT_info_element *pHT_info;
-+ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ struct registry_priv *pregistrypriv = &padapter->registrypriv;
-+ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
-+ u8 cbw40_enable=0;
++ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
++ u8 cbw40_enable = 0;
+
-+ if(!pIE)
++ if (!pIE)
+ return;
+
-+ if(phtpriv->ht_option == false) return;
++ if (phtpriv->ht_option == false) return;
+
-+ if(pmlmeext->cur_bwmode >= CHANNEL_WIDTH_80) return;
++ if (pmlmeext->cur_bwmode >= CHANNEL_WIDTH_80) return;
+
-+ if(pIE->Length > sizeof(struct HT_info_element))
++ if (pIE->Length > sizeof(struct HT_info_element))
+ return;
-+
++
+ pHT_info = (struct HT_info_element *)pIE->data;
+
+ if (pmlmeext->cur_channel > 14) {
@@ -36202,7 +29917,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ cbw40_enable = 1;
+ }
+
-+ if((pHT_info->infos[0] & BIT(2)) && cbw40_enable)
++ if ((pHT_info->infos[0] & BIT(2)) && cbw40_enable)
+ {
+ new_bwmode = CHANNEL_WIDTH_40;
+
@@ -36211,11 +29926,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ case 1:
+ new_ch_offset = HAL_PRIME_CHNL_OFFSET_LOWER;
+ break;
-+
++
+ case 3:
+ new_ch_offset = HAL_PRIME_CHNL_OFFSET_UPPER;
+ break;
-+
++
+ default:
+ new_bwmode = CHANNEL_WIDTH_20;
+ new_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
@@ -36226,45 +29941,45 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ {
+ new_bwmode = CHANNEL_WIDTH_20;
+ new_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
-+ }
++ }
+
-+
-+ if((new_bwmode!= pmlmeext->cur_bwmode) || (new_ch_offset!=pmlmeext->cur_ch_offset))
++
++ if ((new_bwmode!= pmlmeext->cur_bwmode) || (new_ch_offset!=pmlmeext->cur_ch_offset))
+ {
+ pmlmeinfo->bwmode_updated = true;
-+
++
+ pmlmeext->cur_bwmode = new_bwmode;
+ pmlmeext->cur_ch_offset = new_ch_offset;
+
-+ //update HT info also
++ /* update HT info also */
+ HT_info_handler(padapter, pIE);
+ }
+ else
+ {
+ pmlmeinfo->bwmode_updated = false;
+ }
-+
+
-+ if(true == pmlmeinfo->bwmode_updated)
++
++ if (true == pmlmeinfo->bwmode_updated)
+ {
+ struct sta_info *psta;
-+ WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network);
-+ struct sta_priv *pstapriv = &padapter->stapriv;
-+
-+ //set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
++ struct wlan_bssid_ex *cur_network = &(pmlmeinfo->network);
++ struct sta_priv *pstapriv = &padapter->stapriv;
+
-+
-+ //update ap's stainfo
++ /* set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode); */
++
++
++ /* update ap's stainfo */
+ psta = rtw_get_stainfo(pstapriv, cur_network->MacAddress);
-+ if(psta)
++ if (psta)
+ {
-+ struct ht_priv *phtpriv_sta = &psta->htpriv;
-+
-+ if(phtpriv_sta->ht_option)
-+ {
-+ // bwmode
++ struct ht_priv *phtpriv_sta = &psta->htpriv;
++
++ if (phtpriv_sta->ht_option)
++ {
++ /* bwmode */
+ psta->bw_mode = pmlmeext->cur_bwmode;
-+ phtpriv_sta->ch_offset = pmlmeext->cur_ch_offset;
++ phtpriv_sta->ch_offset = pmlmeext->cur_ch_offset;
+ }
+ else
+ {
@@ -36274,40 +29989,37 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+
+ rtw_dm_ra_mask_wk_cmd(padapter, (u8 *)psta);
+ }
-+
-+ //pmlmeinfo->bwmode_updated = false;//bwmode_updated done, reset it!
-+ }
++ }
+}
+
-+void HT_caps_handler(_adapter *padapter, PNDIS_802_11_VARIABLE_IEs pIE)
++void HT_caps_handler(struct adapter *padapter, struct ndis_80211_var_ie * pIE)
+{
+ unsigned int i;
-+ u8 rf_type;
-+ u8 max_AMPDU_len, min_MPDU_spacing;
-+ u8 cur_ldpc_cap=0, cur_stbc_cap=0, cur_beamform_cap=0;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
-+ struct registry_priv *pregistrypriv = &padapter->registrypriv;
-+
-+ if(pIE==NULL) return;
-+
-+ if(phtpriv->ht_option == false) return;
++ u8 rf_type;
++ u8 max_AMPDU_len, min_MPDU_spacing;
++ u8 cur_ldpc_cap = 0, cur_stbc_cap = 0;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
++
++ if (pIE == NULL) return;
++
++ if (phtpriv->ht_option == false) return;
+
+ pmlmeinfo->HT_caps_enable = 1;
-+
++
+ for (i = 0; i < (pIE->Length); i++)
+ {
+ if (i != 2)
+ {
-+ // Commented by Albert 2010/07/12
-+ // Got the endian issue here.
++ /* Commented by Albert 2010/07/12 */
++ /* Got the endian issue here. */
+ pmlmeinfo->HT_caps.u.HT_cap[i] &= (pIE->data[i]);
+ }
+ else
+ {
-+ //modify from fw by Thomas 2010/11/17
++ /* modify from fw by Thomas 2010/11/17 */
+ if ((pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x3) > (pIE->data[i] & 0x3))
+ {
+ max_AMPDU_len = (pIE->data[i] & 0x3);
@@ -36316,7 +30028,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ {
+ max_AMPDU_len = (pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x3);
+ }
-+
++
+ if ((pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x1c) > (pIE->data[i] & 0x1c))
+ {
+ min_MPDU_spacing = (pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x1c);
@@ -36329,41 +30041,33 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para = max_AMPDU_len | min_MPDU_spacing;
+ }
+ }
-+
-+ // Commented by Albert 2010/07/12
-+ // Have to handle the endian issue after copying.
-+ // HT_ext_caps didn't be used yet.
-+ pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info = le16_to_cpu( pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info );
-+ pmlmeinfo->HT_caps.u.HT_cap_element.HT_ext_caps = le16_to_cpu( pmlmeinfo->HT_caps.u.HT_cap_element.HT_ext_caps );
-+
+ rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type));
+
-+
-+ //update the MCS set
++ /* update the MCS set */
+ for (i = 0; i < 16; i++)
+ pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= pmlmeext->default_supported_mcs_set[i];
-+
-+ //update the MCS rates
-+ switch(rf_type)
++
++ /* update the MCS rates */
++ switch (rf_type)
+ {
+ case RF_1T1R:
+ case RF_1T2R:
-+ set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_1R);
++ set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_1R);
+ break;
-+ case RF_2T2R:
++ case RF_2T2R:
+ default:
+#ifdef CONFIG_DISABLE_MCS13TO15
-+ if(pmlmeext->cur_bwmode == CHANNEL_WIDTH_40 && pregistrypriv->wifi_spec != 1 )
-+ set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_2R_13TO15_OFF);
++ if (pmlmeext->cur_bwmode == CHANNEL_WIDTH_40 && pregistrypriv->wifi_spec != 1)
++ set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_2R_13TO15_OFF);
+ else
+ set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_2R);
-+#else //CONFIG_DISABLE_MCS13TO15
++#else /* CONFIG_DISABLE_MCS13TO15 */
+ set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_2R);
-+#endif //CONFIG_DISABLE_MCS13TO15
++#endif /* CONFIG_DISABLE_MCS13TO15 */
+ }
+
+ if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) {
-+ // Config STBC setting
++ /* Config STBC setting */
+ if (TEST_FLAG(phtpriv->stbc_cap, STBC_HT_ENABLE_TX) && GET_HT_CAPABILITY_ELE_TX_STBC(pIE->data))
+ {
+ SET_FLAG(cur_stbc_cap, STBC_HT_ENABLE_TX);
@@ -36371,7 +30075,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ }
+ phtpriv->stbc_cap = cur_stbc_cap;
+ } else {
-+ // Config LDPC Coding Capability
++ /* Config LDPC Coding Capability */
+ if (TEST_FLAG(phtpriv->ldpc_cap, LDPC_HT_ENABLE_TX) && GET_HT_CAPABILITY_ELE_LDPC_CAP(pIE->data))
+ {
+ SET_FLAG(cur_ldpc_cap, (LDPC_HT_ENABLE_TX | LDPC_HT_CAP_TX));
@@ -36379,46 +30083,46 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ }
+ phtpriv->ldpc_cap = cur_ldpc_cap;
+
-+ // Config STBC setting
++ /* Config STBC setting */
+ if (TEST_FLAG(phtpriv->stbc_cap, STBC_HT_ENABLE_TX) && GET_HT_CAPABILITY_ELE_RX_STBC(pIE->data))
+ {
-+ SET_FLAG(cur_stbc_cap, (STBC_HT_ENABLE_TX | STBC_HT_CAP_TX) );
++ SET_FLAG(cur_stbc_cap, (STBC_HT_ENABLE_TX | STBC_HT_CAP_TX));
+ DBG_871X("Enable HT Tx STBC!\n");
+ }
+ phtpriv->stbc_cap = cur_stbc_cap;
+ }
+}
+
-+void HT_info_handler(_adapter *padapter, PNDIS_802_11_VARIABLE_IEs pIE)
++void HT_info_handler(struct adapter *padapter, struct ndis_80211_var_ie * pIE)
+{
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct ht_priv *phtpriv = &pmlmepriv->htpriv;
+
-+ if(pIE==NULL) return;
++ if (pIE == NULL) return;
+
-+ if(phtpriv->ht_option == false) return;
++ if (phtpriv->ht_option == false) return;
+
+
-+ if(pIE->Length > sizeof(struct HT_info_element))
++ if (pIE->Length > sizeof(struct HT_info_element))
+ return;
-+
++
+ pmlmeinfo->HT_info_enable = 1;
+ memcpy(&(pmlmeinfo->HT_info), pIE->data, pIE->Length);
+
+ return;
+}
+
-+void HTOnAssocRsp(_adapter *padapter)
++void HTOnAssocRsp(struct adapter *padapter)
+{
-+ unsigned char max_AMPDU_len;
-+ unsigned char min_MPDU_spacing;
-+ //struct registry_priv *pregpriv = &padapter->registrypriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+
-+ DBG_871X("%s\n", __FUNCTION__);
++ unsigned char max_AMPDU_len;
++ unsigned char min_MPDU_spacing;
++ /* struct registry_priv *pregpriv = &padapter->registrypriv; */
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++
++ DBG_871X("%s\n", __func__);
+
+ if ((pmlmeinfo->HT_info_enable) && (pmlmeinfo->HT_caps_enable))
+ {
@@ -36427,50 +30131,50 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ else
+ {
+ pmlmeinfo->HT_enable = 0;
-+ //set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
++ /* set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode); */
+ return;
+ }
-+
-+ //handle A-MPDU parameter field
-+ /*
++
++ /* handle A-MPDU parameter field */
++ /*
+ AMPDU_para [1:0]:Max AMPDU Len => 0:8k , 1:16k, 2:32k, 3:64k
-+ AMPDU_para [4:2]:Min MPDU Start Spacing
++ AMPDU_para [4:2]:Min MPDU Start Spacing
+ */
-+ max_AMPDU_len = pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x03;
-+
-+ min_MPDU_spacing = (pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x1c) >> 2;
++ max_AMPDU_len = pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x03;
++
++ min_MPDU_spacing = (pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x1c) >> 2;
+
+ rtw_hal_set_hwreg(padapter, HW_VAR_AMPDU_MIN_SPACE, (u8 *)(&min_MPDU_spacing));
+
+ rtw_hal_set_hwreg(padapter, HW_VAR_AMPDU_FACTOR, (u8 *)(&max_AMPDU_len));
+}
+
-+void ERP_IE_handler(_adapter *padapter, PNDIS_802_11_VARIABLE_IEs pIE)
++void ERP_IE_handler(struct adapter *padapter, struct ndis_80211_var_ie * pIE)
+{
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
-+ if(pIE->Length>1)
++ if (pIE->Length>1)
+ return;
-+
++
+ pmlmeinfo->ERP_enable = 1;
+ memcpy(&(pmlmeinfo->ERP_IE), pIE->data, pIE->Length);
+}
+
-+void VCS_update(_adapter *padapter, struct sta_info *psta)
++void VCS_update(struct adapter *padapter, struct sta_info *psta)
+{
-+ struct registry_priv *pregpriv = &padapter->registrypriv;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct registry_priv *pregpriv = &padapter->registrypriv;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
+ switch (pregpriv->vrtl_carrier_sense)/* 0:off 1:on 2:auto */
+ {
-+ case 0: //off
++ case 0: /* off */
+ psta->rtsen = 0;
+ psta->cts2self = 0;
+ break;
-+
-+ case 1: //on
++
++ case 1: /* on */
+ if (pregpriv->vcs_type == 1) /* 1:RTS/CTS 2:CTS to self */
+ {
+ psta->rtsen = 1;
@@ -36482,8 +30186,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ psta->cts2self = 1;
+ }
+ break;
-+
-+ case 2: //auto
++
++ case 2: /* auto */
+ default:
+ if ((pmlmeinfo->ERP_enable) && (pmlmeinfo->ERP_IE & BIT(1)))
+ {
@@ -36502,18 +30206,18 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ {
+ psta->rtsen = 0;
+ psta->cts2self = 0;
-+ }
++ }
+ break;
+ }
+}
+
-+void update_ldpc_stbc_cap(struct sta_info *psta)
++void update_ldpc_stbc_cap(struct sta_info *psta)
+{
+ if (psta->htpriv.ht_option) {
-+ if(TEST_FLAG(psta->htpriv.ldpc_cap, LDPC_HT_ENABLE_TX))
++ if (TEST_FLAG(psta->htpriv.ldpc_cap, LDPC_HT_ENABLE_TX))
+ psta->ldpc = 1;
+
-+ if(TEST_FLAG(psta->htpriv.stbc_cap, STBC_HT_ENABLE_TX))
++ if (TEST_FLAG(psta->htpriv.stbc_cap, STBC_HT_ENABLE_TX))
+ psta->stbc = 1;
+ } else {
+ psta->ldpc = 0;
@@ -36521,33 +30225,32 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ }
+}
+
-+int rtw_check_bcn_info(ADAPTER *Adapter, u8 *pframe, u32 packet_len)
++int rtw_check_bcn_info(struct adapter *Adapter, u8 *pframe, u32 packet_len)
+{
+ unsigned int len;
-+ unsigned char *p;
++ unsigned char *p;
+ unsigned short val16, subtype;
+ struct wlan_network *cur_network = &(Adapter->mlmepriv.cur_network);
-+ //u8 wpa_ie[255],rsn_ie[255];
-+ u16 wpa_len=0,rsn_len=0;
++ /* u8 wpa_ie[255], rsn_ie[255]; */
++ u16 wpa_len = 0, rsn_len = 0;
+ u8 encryp_protocol = 0;
-+ WLAN_BSSID_EX *bssid;
++ struct wlan_bssid_ex *bssid;
+ int group_cipher = 0, pairwise_cipher = 0, is_8021x = 0;
+ unsigned char *pbuf;
+ u32 wpa_ielen = 0;
+ u8 *pbssid = GetAddr3Ptr(pframe);
+ u32 hidden_ssid = 0;
-+ u8 cur_network_type, network_type=0;
+ struct HT_info_element *pht_info = NULL;
+ struct rtw_ieee80211_ht_cap *pht_cap = NULL;
+ u32 bcn_channel;
-+ unsigned short ht_cap_info;
-+ unsigned char ht_info_infos_0;
++ unsigned short ht_cap_info;
++ unsigned char ht_info_infos_0;
+ struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
+
+ if (is_client_associated_to_ap(Adapter) == false)
+ return true;
+
-+ len = packet_len - sizeof(struct rtw_ieee80211_hdr_3addr);
++ len = packet_len - sizeof(struct ieee80211_hdr_3addr);
+
+ if (len > MAX_IE_SZ) {
+ DBG_871X("%s IE too long for survey event\n", __func__);
@@ -36560,7 +30263,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ return true;
+ }
+
-+ bssid = (WLAN_BSSID_EX *)rtw_zmalloc(sizeof(WLAN_BSSID_EX));
++ bssid = (struct wlan_bssid_ex *)rtw_zmalloc(sizeof(struct wlan_bssid_ex));
+ if (bssid == NULL) {
+ DBG_871X("%s rtw_zmalloc fail !!!\n", __func__);
+ return true;
@@ -36574,27 +30277,27 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+
+ subtype = GetFrameSubType(pframe) >> 4;
+
-+ if(subtype==WIFI_BEACON)
++ if (subtype ==WIFI_BEACON)
+ bssid->Reserved[0] = 1;
+
-+ bssid->Length = sizeof(WLAN_BSSID_EX) - MAX_IE_SZ + len;
++ bssid->Length = sizeof(struct wlan_bssid_ex) - MAX_IE_SZ + len;
+
+ /* below is to copy the information element */
+ bssid->IELength = len;
-+ memcpy(bssid->IEs, (pframe + sizeof(struct rtw_ieee80211_hdr_3addr)), bssid->IELength);
++ memcpy(bssid->IEs, (pframe + sizeof(struct ieee80211_hdr_3addr)), bssid->IELength);
+
+ /* check bw and channel offset */
+ /* parsing HT_CAP_IE */
+ p = rtw_get_ie(bssid->IEs + _FIXED_IE_LENGTH_, _HT_CAPABILITY_IE_, &len, bssid->IELength - _FIXED_IE_LENGTH_);
-+ if(p && len>0) {
++ if (p && len>0) {
+ pht_cap = (struct rtw_ieee80211_ht_cap *)(p + 2);
-+ ht_cap_info = pht_cap->cap_info;
++ ht_cap_info = le16_to_cpu(pht_cap->cap_info);
+ } else {
+ ht_cap_info = 0;
+ }
+ /* parsing HT_INFO_IE */
+ p = rtw_get_ie(bssid->IEs + _FIXED_IE_LENGTH_, _HT_ADD_INFO_IE_, &len, bssid->IELength - _FIXED_IE_LENGTH_);
-+ if(p && len>0) {
++ if (p && len>0) {
+ pht_info = (struct HT_info_element *)(p + 2);
+ ht_info_infos_0 = pht_info->infos[0];
+ } else {
@@ -36603,17 +30306,17 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ if (ht_cap_info != cur_network->BcnInfo.ht_cap_info ||
+ ((ht_info_infos_0&0x03) != (cur_network->BcnInfo.ht_info_infos_0&0x03))) {
+ DBG_871X("%s bcn now: ht_cap_info:%x ht_info_infos_0:%x\n", __func__,
-+ ht_cap_info, ht_info_infos_0);
++ ht_cap_info, ht_info_infos_0);
+ DBG_871X("%s bcn link: ht_cap_info:%x ht_info_infos_0:%x\n", __func__,
-+ cur_network->BcnInfo.ht_cap_info, cur_network->BcnInfo.ht_info_infos_0);
++ cur_network->BcnInfo.ht_cap_info, cur_network->BcnInfo.ht_info_infos_0);
+ DBG_871X("%s bw mode change\n", __func__);
-+ {
-+ //bcn_info_update
++ {
++ /* bcn_info_update */
+ cur_network->BcnInfo.ht_cap_info = ht_cap_info;
+ cur_network->BcnInfo.ht_info_infos_0 = ht_info_infos_0;
-+ //to do : need to check that whether modify related register of BB or not
++ /* to do : need to check that whether modify related register of BB or not */
+ }
-+ //goto _mismatch;
++ /* goto _mismatch; */
+ }
+
+ /* Checking for channel */
@@ -36622,10 +30325,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ bcn_channel = *(p + 2);
+ } else {/* In 5G, some ap do not have DSSET IE checking HT info for channel */
+ rtw_get_ie(bssid->IEs + _FIXED_IE_LENGTH_, _HT_ADD_INFO_IE_, &len, bssid->IELength - _FIXED_IE_LENGTH_);
-+ if(pht_info) {
++ if (pht_info) {
+ bcn_channel = pht_info->primary_channel;
+ } else { /* we don't find channel IE, so don't check it */
-+ //DBG_871X("Oops: %s we don't find channel IE, so don't check it \n", __func__);
++ /* DBG_871X("Oops: %s we don't find channel IE, so don't check it\n", __func__); */
+ bcn_channel = Adapter->mlmeextpriv.cur_channel;
+ }
+ }
@@ -36643,7 +30346,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ hidden_ssid = false;
+ }
+
-+ if((NULL != p) && (false == hidden_ssid && (*(p + 1)))) {
++ if ((NULL != p) && (false == hidden_ssid && (*(p + 1)))) {
+ memcpy(bssid->Ssid.Ssid, (p + 2), *(p + 1));
+ bssid->Ssid.SsidLength = *(p + 1);
+ } else {
@@ -36651,7 +30354,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ bssid->Ssid.Ssid[0] = '\0';
+ }
+
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,("%s bssid.Ssid.Ssid:%s bssid.Ssid.SsidLength:%d "
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("%s bssid.Ssid.Ssid:%s bssid.Ssid.SsidLength:%d "
+ "cur_network->network.Ssid.Ssid:%s len:%d\n", __func__, bssid->Ssid.Ssid,
+ bssid->Ssid.SsidLength, cur_network->network.Ssid.Ssid,
+ cur_network->network.Ssid.SsidLength));
@@ -36665,22 +30368,22 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ }
+
+ /* check encryption info */
-+ val16 = rtw_get_capability((WLAN_BSSID_EX *)bssid);
++ val16 = rtw_get_capability((struct wlan_bssid_ex *)bssid);
+
+ if (val16 & BIT(4))
+ bssid->Privacy = 1;
+ else
+ bssid->Privacy = 0;
+
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_,
+ ("%s(): cur_network->network.Privacy is %d, bssid.Privacy is %d\n",
-+ __func__, cur_network->network.Privacy,bssid->Privacy));
++ __func__, cur_network->network.Privacy, bssid->Privacy));
+ if (cur_network->network.Privacy != bssid->Privacy) {
-+ DBG_871X("%s(), privacy is not match\n",__func__);
++ DBG_871X("%s(), privacy is not match\n", __func__);
+ goto _mismatch;
+ }
+
-+ rtw_get_sec_ie(bssid->IEs, bssid->IELength, NULL,&rsn_len,NULL,&wpa_len);
++ rtw_get_sec_ie(bssid->IEs, bssid->IELength, NULL,&rsn_len, NULL,&wpa_len);
+
+ if (rsn_len > 0) {
+ encryp_protocol = ENCRYP_PROTOCOL_WPA2;
@@ -36692,34 +30395,34 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ }
+
+ if (cur_network->BcnInfo.encryp_protocol != encryp_protocol) {
-+ DBG_871X("%s(): enctyp is not match\n",__func__);
++ DBG_871X("%s(): enctyp is not match\n", __func__);
+ goto _mismatch;
+ }
+
+ if (encryp_protocol == ENCRYP_PROTOCOL_WPA || encryp_protocol == ENCRYP_PROTOCOL_WPA2) {
+ pbuf = rtw_get_wpa_ie(&bssid->IEs[12], &wpa_ielen, bssid->IELength-12);
-+ if(pbuf && (wpa_ielen>0)) {
++ if (pbuf && (wpa_ielen>0)) {
+ if (_SUCCESS == rtw_parse_wpa_ie(pbuf, wpa_ielen+2, &group_cipher, &pairwise_cipher, &is_8021x)) {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_,
+ ("%s pnetwork->pairwise_cipher: %d, group_cipher is %d, is_8021x is %d\n", __func__,
+ pairwise_cipher, group_cipher, is_8021x));
+ }
+ } else {
+ pbuf = rtw_get_wpa2_ie(&bssid->IEs[12], &wpa_ielen, bssid->IELength-12);
+
-+ if(pbuf && (wpa_ielen>0)) {
++ if (pbuf && (wpa_ielen>0)) {
+ if (_SUCCESS == rtw_parse_wpa2_ie(pbuf, wpa_ielen+2, &group_cipher, &pairwise_cipher, &is_8021x)) {
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_info_,
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_,
+ ("%s pnetwork->pairwise_cipher: %d, pnetwork->group_cipher is %d, is_802x is %d\n",
+ __func__, pairwise_cipher, group_cipher, is_8021x));
+ }
+ }
+ }
+
-+ RT_TRACE(_module_rtl871x_mlme_c_,_drv_err_,
-+ ("%s cur_network->group_cipher is %d: %d\n",__func__, cur_network->BcnInfo.group_cipher, group_cipher));
++ RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_,
++ ("%s cur_network->group_cipher is %d: %d\n", __func__, cur_network->BcnInfo.group_cipher, group_cipher));
+ if (pairwise_cipher != cur_network->BcnInfo.pairwise_cipher || group_cipher != cur_network->BcnInfo.group_cipher) {
-+ DBG_871X("%s pairwise_cipher(%x:%x) or group_cipher(%x:%x) is not match\n",__func__,
++ DBG_871X("%s pairwise_cipher(%x:%x) or group_cipher(%x:%x) is not match\n", __func__,
+ pairwise_cipher, cur_network->BcnInfo.pairwise_cipher,
+ group_cipher, cur_network->BcnInfo.group_cipher);
+ goto _mismatch;
@@ -36731,11 +30434,11 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ }
+ }
+
-+ rtw_mfree((u8 *)bssid, sizeof(WLAN_BSSID_EX));
++ kfree((u8 *)bssid);
+ return _SUCCESS;
+
+_mismatch:
-+ rtw_mfree((u8 *)bssid, sizeof(WLAN_BSSID_EX));
++ kfree((u8 *)bssid);
+
+ if (pmlmepriv->NumOfBcnInfoChkFail == 0)
+ {
@@ -36745,10 +30448,10 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ pmlmepriv->NumOfBcnInfoChkFail++;
+ DBG_871X("%s by "ADPT_FMT" - NumOfChkFail = %d (SeqNum of this Beacon frame = %d).\n", __func__, ADPT_ARG(Adapter), pmlmepriv->NumOfBcnInfoChkFail, GetSequence(pframe));
+
-+ if ((pmlmepriv->timeBcnInfoChkStart != 0) && (jiffies_to_msecs(jiffies - pmlmepriv->timeBcnInfoChkStart) <= DISCONNECT_BY_CHK_BCN_FAIL_OBSERV_PERIOD_IN_MS)
++ if ((pmlmepriv->timeBcnInfoChkStart != 0) && (jiffies_to_msecs(jiffies - pmlmepriv->timeBcnInfoChkStart) <= DISCONNECT_BY_CHK_BCN_FAIL_OBSERV_PERIOD_IN_MS)
+ && (pmlmepriv->NumOfBcnInfoChkFail >= DISCONNECT_BY_CHK_BCN_FAIL_THRESHOLD))
+ {
-+ DBG_871X("%s by "ADPT_FMT" - NumOfChkFail = %d >= threshold : %d (in %d ms), return FAIL.\n", __func__, ADPT_ARG(Adapter), pmlmepriv->NumOfBcnInfoChkFail,
++ DBG_871X("%s by "ADPT_FMT" - NumOfChkFail = %d >= threshold : %d (in %d ms), return FAIL.\n", __func__, ADPT_ARG(Adapter), pmlmepriv->NumOfBcnInfoChkFail,
+ DISCONNECT_BY_CHK_BCN_FAIL_THRESHOLD, jiffies_to_msecs(jiffies - pmlmepriv->timeBcnInfoChkStart));
+ pmlmepriv->timeBcnInfoChkStart = 0;
+ pmlmepriv->NumOfBcnInfoChkFail = 0;
@@ -36758,23 +30461,23 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ return _SUCCESS;
+}
+
-+void update_beacon_info(_adapter *padapter, u8 *pframe, uint pkt_len, struct sta_info *psta)
++void update_beacon_info(struct adapter *padapter, u8 *pframe, uint pkt_len, struct sta_info *psta)
+{
+ unsigned int i;
+ unsigned int len;
-+ PNDIS_802_11_VARIABLE_IEs pIE;
-+
++ struct ndis_80211_var_ie * pIE;
++
+ len = pkt_len - (_BEACON_IE_OFFSET_ + WLAN_HDR_A3_LEN);
+
+ for (i = 0; i < len;)
+ {
-+ pIE = (PNDIS_802_11_VARIABLE_IEs)(pframe + (_BEACON_IE_OFFSET_ + WLAN_HDR_A3_LEN) + i);
-+
++ pIE = (struct ndis_80211_var_ie *)(pframe + (_BEACON_IE_OFFSET_ + WLAN_HDR_A3_LEN) + i);
++
+ switch (pIE->ElementID)
+ {
-+ case _VENDOR_SPECIFIC_IE_:
-+ //to update WMM paramter set while receiving beacon
-+ if (!memcmp(pIE->data, WMM_PARA_OUI, 6) && pIE->Length == WLAN_WMM_LEN) //WMM
++ case _VENDOR_SPECIFIC_IE_:
++ /* to update WMM paramter set while receiving beacon */
++ if (!memcmp(pIE->data, WMM_PARA_OUI, 6) && pIE->Length == WLAN_WMM_LEN) /* WMM */
+ {
+ if (WMM_param_handler(padapter, pIE))
+ report_wmm_edca_update(padapter);
@@ -36782,8 +30485,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+
+ break;
+
-+ case _HT_EXTRA_INFO_IE_: //HT info
-+ //HT_info_handler(padapter, pIE);
++ case _HT_EXTRA_INFO_IE_: /* HT info */
++ /* HT_info_handler(padapter, pIE); */
+ bwmode_update_check(padapter, pIE);
+ break;
+
@@ -36795,82 +30498,39 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ default:
+ break;
+ }
-+
++
+ i += (pIE->Length + 2);
+ }
+}
+
-+unsigned int is_ap_in_tkip(_adapter *padapter)
++unsigned int is_ap_in_tkip(struct adapter *padapter)
+{
+ u32 i;
-+ PNDIS_802_11_VARIABLE_IEs pIE;
++ struct ndis_80211_var_ie * pIE;
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *cur_network = &(pmlmeinfo->network);
+
-+ if (rtw_get_capability((WLAN_BSSID_EX *)cur_network) & WLAN_CAPABILITY_PRIVACY)
++ if (rtw_get_capability((struct wlan_bssid_ex *)cur_network) & WLAN_CAPABILITY_PRIVACY)
+ {
-+ for (i = sizeof(NDIS_802_11_FIXED_IEs); i < pmlmeinfo->network.IELength;)
++ for (i = sizeof(struct ndis_802_11_fix_ie); i < pmlmeinfo->network.IELength;)
+ {
-+ pIE = (PNDIS_802_11_VARIABLE_IEs)(pmlmeinfo->network.IEs + i);
-+
++ pIE = (struct ndis_80211_var_ie *)(pmlmeinfo->network.IEs + i);
++
+ switch (pIE->ElementID)
+ {
+ case _VENDOR_SPECIFIC_IE_:
-+ if ((!memcmp(pIE->data, RTW_WPA_OUI, 4)) && (!memcmp((pIE->data + 12), WPA_TKIP_CIPHER, 4)))
++ if ((!memcmp(pIE->data, RTW_WPA_OUI, 4)) && (!memcmp((pIE->data + 12), WPA_TKIP_CIPHER, 4)))
+ {
+ return true;
+ }
+ break;
-+
++
+ case _RSN_IE_2_:
-+ if (!memcmp((pIE->data + 8), RSN_TKIP_CIPHER, 4))
++ if (!memcmp((pIE->data + 8), RSN_TKIP_CIPHER, 4))
+ {
+ return true;
+ }
-+
-+ default:
-+ break;
-+ }
-+
-+ i += (pIE->Length + 2);
-+ }
-+
-+ return false;
-+ }
-+ else
-+ {
-+ return false;
-+ }
-+
-+}
-+
-+unsigned int should_forbid_n_rate(_adapter * padapter)
-+{
-+ u32 i;
-+ PNDIS_802_11_VARIABLE_IEs pIE;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ WLAN_BSSID_EX *cur_network = &pmlmepriv->cur_network.network;
-+
-+ if (rtw_get_capability((WLAN_BSSID_EX *)cur_network) & WLAN_CAPABILITY_PRIVACY)
-+ {
-+ for (i = sizeof(NDIS_802_11_FIXED_IEs); i < cur_network->IELength;)
-+ {
-+ pIE = (PNDIS_802_11_VARIABLE_IEs)(cur_network->IEs + i);
-+
-+ switch (pIE->ElementID)
-+ {
-+ case _VENDOR_SPECIFIC_IE_:
-+ if (!memcmp(pIE->data, RTW_WPA_OUI, 4) &&
-+ ((!memcmp((pIE->data + 12), WPA_CIPHER_SUITE_CCMP, 4)) ||
-+ (!memcmp((pIE->data + 16), WPA_CIPHER_SUITE_CCMP, 4))))
-+ return false;
-+ break;
-+
-+ case _RSN_IE_2_:
-+ if ((!memcmp((pIE->data + 8), RSN_CIPHER_SUITE_CCMP, 4)) ||
-+ (!memcmp((pIE->data + 12), RSN_CIPHER_SUITE_CCMP, 4)))
-+ return false;
+
+ default:
+ break;
@@ -36879,7 +30539,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ i += (pIE->Length + 2);
+ }
+
-+ return true;
++ return false;
+ }
+ else
+ {
@@ -36888,176 +30548,35 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+
+}
+
-+
-+unsigned int is_ap_in_wep(_adapter *padapter)
++int support_short_GI(struct adapter *padapter, struct HT_caps_element *pHT_caps, u8 bwmode)
+{
-+ u32 i;
-+ PNDIS_802_11_VARIABLE_IEs pIE;
++ unsigned char bit_offset;
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
-+ if (rtw_get_capability((WLAN_BSSID_EX *)cur_network) & WLAN_CAPABILITY_PRIVACY)
-+ {
-+ for (i = sizeof(NDIS_802_11_FIXED_IEs); i < pmlmeinfo->network.IELength;)
-+ {
-+ pIE = (PNDIS_802_11_VARIABLE_IEs)(pmlmeinfo->network.IEs + i);
-+
-+ switch (pIE->ElementID)
-+ {
-+ case _VENDOR_SPECIFIC_IE_:
-+ if (!memcmp(pIE->data, RTW_WPA_OUI, 4))
-+ return false;
-+ break;
-+
-+ case _RSN_IE_2_:
-+ return false;
-+
-+ default:
-+ break;
-+ }
-+
-+ i += (pIE->Length + 2);
-+ }
-+
-+ return true;
-+ }
-+ else
-+ {
-+ return false;
-+ }
-+
-+}
-+
-+int wifirate2_ratetbl_inx(unsigned char rate);
-+int wifirate2_ratetbl_inx(unsigned char rate)
-+{
-+ int inx = 0;
-+ rate = rate & 0x7f;
-+
-+ switch (rate)
-+ {
-+ case 54*2:
-+ inx = 11;
-+ break;
-+
-+ case 48*2:
-+ inx = 10;
-+ break;
-+
-+ case 36*2:
-+ inx = 9;
-+ break;
-+
-+ case 24*2:
-+ inx = 8;
-+ break;
-+
-+ case 18*2:
-+ inx = 7;
-+ break;
-+
-+ case 12*2:
-+ inx = 6;
-+ break;
-+
-+ case 9*2:
-+ inx = 5;
-+ break;
-+
-+ case 6*2:
-+ inx = 4;
-+ break;
-+
-+ case 11*2:
-+ inx = 3;
-+ break;
-+ case 11:
-+ inx = 2;
-+ break;
-+
-+ case 2*2:
-+ inx = 1;
-+ break;
-+
-+ case 1*2:
-+ inx = 0;
-+ break;
-+
-+ }
-+ return inx;
-+}
-+
-+unsigned int update_basic_rate(unsigned char *ptn, unsigned int ptn_sz)
-+{
-+ unsigned int i, num_of_rate;
-+ unsigned int mask = 0;
-+
-+ num_of_rate = (ptn_sz > NumRates)? NumRates: ptn_sz;
-+
-+ for (i = 0; i < num_of_rate; i++)
-+ {
-+ if ((*(ptn + i)) & 0x80)
-+ {
-+ mask |= 0x1 << wifirate2_ratetbl_inx(*(ptn + i));
-+ }
-+ }
-+ return mask;
-+}
-+
-+unsigned int update_supported_rate(unsigned char *ptn, unsigned int ptn_sz)
-+{
-+ unsigned int i, num_of_rate;
-+ unsigned int mask = 0;
-+
-+ num_of_rate = (ptn_sz > NumRates)? NumRates: ptn_sz;
-+
-+ for (i = 0; i < num_of_rate; i++)
-+ {
-+ mask |= 0x1 << wifirate2_ratetbl_inx(*(ptn + i));
-+ }
-+
-+ return mask;
-+}
-+
-+unsigned int update_MCS_rate(struct HT_caps_element *pHT_caps)
-+{
-+ unsigned int mask = 0;
-+
-+ mask = ((pHT_caps->u.HT_cap_element.MCS_rate[0] << 12) | (pHT_caps->u.HT_cap_element.MCS_rate[1] << 20));
-+
-+ return mask;
-+}
-+
-+int support_short_GI(_adapter *padapter, struct HT_caps_element *pHT_caps, u8 bwmode)
-+{
-+ unsigned char bit_offset;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+
+ if (!(pmlmeinfo->HT_enable))
-+ return _FAIL;
++ return _FAIL;
+
+ bit_offset = (bwmode & CHANNEL_WIDTH_40)? 6: 5;
-+
-+ if (pHT_caps->u.HT_cap_element.HT_caps_info & (0x1 << bit_offset))
++
++ if (le16_to_cpu(pHT_caps->u.HT_cap_element.HT_caps_info) & (0x1 << bit_offset))
+ {
+ return _SUCCESS;
+ }
+ else
+ {
+ return _FAIL;
-+ }
++ }
+}
+
+unsigned char get_highest_rate_idx(u32 mask)
+{
+ int i;
-+ unsigned char rate_idx=0;
++ unsigned char rate_idx = 0;
+
-+ for(i=31; i>=0; i--)
++ for (i =31; i>= 0; i--)
+ {
-+ if(mask & BIT(i))
++ if (mask & BIT(i))
+ {
+ rate_idx = i;
+ break;
@@ -37067,82 +30586,32 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ return rate_idx;
+}
+
-+unsigned char get_highest_mcs_rate(struct HT_caps_element *pHT_caps);
-+unsigned char get_highest_mcs_rate(struct HT_caps_element *pHT_caps)
-+{
-+ int i, mcs_rate;
-+
-+ mcs_rate = (pHT_caps->u.HT_cap_element.MCS_rate[0] | (pHT_caps->u.HT_cap_element.MCS_rate[1] << 8));
-+
-+ for (i = 15; i >= 0; i--)
-+ {
-+ if (mcs_rate & (0x1 << i))
-+ {
-+ break;
-+ }
-+ }
-+
-+ return i;
-+}
-+
-+void Update_RA_Entry(_adapter *padapter, struct sta_info *psta)
++void Update_RA_Entry(struct adapter *padapter, struct sta_info *psta)
+{
+ rtw_hal_update_ra_mask(psta, 0);
+}
+
-+void enable_rate_adaptive(_adapter *padapter, struct sta_info *psta);
-+void enable_rate_adaptive(_adapter *padapter, struct sta_info *psta)
++void enable_rate_adaptive(struct adapter *padapter, struct sta_info *psta);
++void enable_rate_adaptive(struct adapter *padapter, struct sta_info *psta)
+{
+ Update_RA_Entry(padapter, psta);
+}
+
-+void set_sta_rate(_adapter *padapter, struct sta_info *psta)
++void set_sta_rate(struct adapter *padapter, struct sta_info *psta)
+{
-+ //rate adaptive
++ /* rate adaptive */
+ enable_rate_adaptive(padapter, psta);
+}
+
-+// Update RRSR and Rate for USERATE
-+void update_tx_basic_rate(_adapter *padapter, u8 wirelessmode)
-+{
-+ NDIS_802_11_RATES_EX supported_rates;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+#ifdef CONFIG_INTEL_WIDI
-+ if (padapter->mlmepriv.widi_state != INTEL_WIDI_STATE_NONE)
-+ return;
-+#endif //CONFIG_INTEL_WIDI
-+
-+ memset(supported_rates, 0, NDIS_802_11_LENGTH_RATES_EX);
-+
-+ //clear B mod if current channel is in 5G band, avoid tx cck rate in 5G band.
-+ if(pmlmeext->cur_channel > 14)
-+ wirelessmode &= ~(WIRELESS_11B);
-+
-+ if ((wirelessmode & WIRELESS_11B) && (wirelessmode == WIRELESS_11B)) {
-+ memcpy(supported_rates, rtw_basic_rate_cck, 4);
-+ } else if (wirelessmode & WIRELESS_11B) {
-+ memcpy(supported_rates, rtw_basic_rate_mix, 7);
-+ } else {
-+ memcpy(supported_rates, rtw_basic_rate_ofdm, 3);
-+ }
-+
-+ if (wirelessmode & WIRELESS_11B)
-+ update_mgnt_tx_rate(padapter, IEEE80211_CCK_RATE_1MB);
-+ else
-+ update_mgnt_tx_rate(padapter, IEEE80211_OFDM_RATE_6MB);
-+
-+ rtw_hal_set_hwreg(padapter, HW_VAR_BASIC_RATE, supported_rates);
-+}
-+
+unsigned char check_assoc_AP(u8 *pframe, uint len)
+{
+ unsigned int i;
-+ PNDIS_802_11_VARIABLE_IEs pIE;
++ struct ndis_80211_var_ie * pIE;
+
-+ for (i = sizeof(NDIS_802_11_FIXED_IEs); i < len;)
++ for (i = sizeof(struct ndis_802_11_fix_ie); i < len;)
+ {
-+ pIE = (PNDIS_802_11_VARIABLE_IEs)(pframe + i);
-+
++ pIE = (struct ndis_80211_var_ie *)(pframe + i);
++
+ switch (pIE->ElementID)
+ {
+ case _VENDOR_SPECIFIC_IE_:
@@ -37153,7 +30622,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ }
+ else if ((!memcmp(pIE->data, BROADCOM_OUI1, 3))
+ || (!memcmp(pIE->data, BROADCOM_OUI2, 3))
-+ || (!memcmp(pIE->data, BROADCOM_OUI2, 3)))
++ || (!memcmp(pIE->data, BROADCOM_OUI3, 3)))
+ {
+ DBG_871X("link to Broadcom AP\n");
+ return HT_IOT_PEER_BROADCOM;
@@ -37175,41 +30644,41 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ }
+ else if (!memcmp(pIE->data, REALTEK_OUI, 3))
+ {
-+ u32 Vender = HT_IOT_PEER_REALTEK;
++ u32 Vender = HT_IOT_PEER_REALTEK;
+
-+ if(pIE->Length >= 5) {
-+ if(pIE->data[4]==1)
++ if (pIE->Length >= 5) {
++ if (pIE->data[4]== 1)
+ {
-+ //if(pIE->data[5] & RT_HT_CAP_USE_LONG_PREAMBLE)
-+ // bssDesc->BssHT.RT2RT_HT_Mode |= RT_HT_CAP_USE_LONG_PREAMBLE;
++ /* if (pIE->data[5] & RT_HT_CAP_USE_LONG_PREAMBLE) */
++ /* bssDesc->BssHT.RT2RT_HT_Mode |= RT_HT_CAP_USE_LONG_PREAMBLE; */
+
-+ if(pIE->data[5] & RT_HT_CAP_USE_92SE)
++ if (pIE->data[5] & RT_HT_CAP_USE_92SE)
+ {
-+ //bssDesc->BssHT.RT2RT_HT_Mode |= RT_HT_CAP_USE_92SE;
++ /* bssDesc->BssHT.RT2RT_HT_Mode |= RT_HT_CAP_USE_92SE; */
+ Vender = HT_IOT_PEER_REALTEK_92SE;
+ }
+ }
+
-+ if(pIE->data[5] & RT_HT_CAP_USE_SOFTAP)
++ if (pIE->data[5] & RT_HT_CAP_USE_SOFTAP)
+ Vender = HT_IOT_PEER_REALTEK_SOFTAP;
+
-+ if(pIE->data[4] == 2)
++ if (pIE->data[4] == 2)
+ {
-+ if(pIE->data[6] & RT_HT_CAP_USE_JAGUAR_BCUT) {
++ if (pIE->data[6] & RT_HT_CAP_USE_JAGUAR_BCUT) {
+ Vender = HT_IOT_PEER_REALTEK_JAGUAR_BCUTAP;
+ DBG_871X("link to Realtek JAGUAR_BCUTAP\n");
+ }
-+ if(pIE->data[6] & RT_HT_CAP_USE_JAGUAR_CCUT) {
++ if (pIE->data[6] & RT_HT_CAP_USE_JAGUAR_CCUT) {
+ Vender = HT_IOT_PEER_REALTEK_JAGUAR_CCUTAP;
+ DBG_871X("link to Realtek JAGUAR_CCUTAP\n");
+ }
+ }
+ }
-+
++
+ DBG_871X("link to Realtek AP\n");
+ return Vender;
+ }
-+ else if (!memcmp(pIE->data, AIRGOCAP_OUI,3))
++ else if (!memcmp(pIE->data, AIRGOCAP_OUI, 3))
+ {
+ DBG_871X("link to Airgo Cap\n");
+ return HT_IOT_PEER_AIRGO;
@@ -37218,122 +30687,122 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ {
+ break;
+ }
-+
++
+ default:
+ break;
+ }
-+
++
+ i += (pIE->Length + 2);
+ }
-+
++
+ DBG_871X("link to new AP\n");
+ return HT_IOT_PEER_UNKNOWN;
+}
+
-+void update_IOT_info(_adapter *padapter)
++void update_IOT_info(struct adapter *padapter)
+{
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++
+ switch (pmlmeinfo->assoc_AP_vendor)
+ {
+ case HT_IOT_PEER_MARVELL:
+ pmlmeinfo->turboMode_cts2self = 1;
+ pmlmeinfo->turboMode_rtsen = 0;
+ break;
-+
++
+ case HT_IOT_PEER_RALINK:
+ pmlmeinfo->turboMode_cts2self = 0;
+ pmlmeinfo->turboMode_rtsen = 1;
-+ //disable high power
++ /* disable high power */
+ Switch_DM_Func(padapter, (~DYNAMIC_BB_DYNAMIC_TXPWR), false);
+ break;
+ case HT_IOT_PEER_REALTEK:
-+ //rtw_write16(padapter, 0x4cc, 0xffff);
-+ //rtw_write16(padapter, 0x546, 0x01c0);
-+ //disable high power
++ /* rtw_write16(padapter, 0x4cc, 0xffff); */
++ /* rtw_write16(padapter, 0x546, 0x01c0); */
++ /* disable high power */
+ Switch_DM_Func(padapter, (~DYNAMIC_BB_DYNAMIC_TXPWR), false);
+ break;
+ default:
+ pmlmeinfo->turboMode_cts2self = 0;
+ pmlmeinfo->turboMode_rtsen = 1;
-+ break;
++ break;
+ }
-+
++
+}
+
-+void update_capinfo(PADAPTER Adapter, u16 updateCap)
++void update_capinfo(struct adapter * Adapter, u16 updateCap)
+{
-+ struct mlme_ext_priv *pmlmeext = &Adapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &Adapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ bool ShortPreamble;
+
-+ // Check preamble mode, 2005.01.06, by rcnjko.
-+ // Mark to update preamble value forever, 2008.03.18 by lanhsin
-+ //if( pMgntInfo->RegPreambleMode == PREAMBLE_AUTO )
++ /* Check preamble mode, 2005.01.06, by rcnjko. */
++ /* Mark to update preamble value forever, 2008.03.18 by lanhsin */
++ /* if (pMgntInfo->RegPreambleMode == PREAMBLE_AUTO) */
+ {
-+
-+ if(updateCap & cShortPreamble)
-+ { // Short Preamble
-+ if(pmlmeinfo->preamble_mode != PREAMBLE_SHORT) // PREAMBLE_LONG or PREAMBLE_AUTO
++
++ if (updateCap & cShortPreamble)
++ { /* Short Preamble */
++ if (pmlmeinfo->preamble_mode != PREAMBLE_SHORT) /* PREAMBLE_LONG or PREAMBLE_AUTO */
+ {
+ ShortPreamble = true;
+ pmlmeinfo->preamble_mode = PREAMBLE_SHORT;
-+ rtw_hal_set_hwreg( Adapter, HW_VAR_ACK_PREAMBLE, (u8 *)&ShortPreamble );
++ rtw_hal_set_hwreg(Adapter, HW_VAR_ACK_PREAMBLE, (u8 *)&ShortPreamble);
+ }
+ }
+ else
-+ { // Long Preamble
-+ if(pmlmeinfo->preamble_mode != PREAMBLE_LONG) // PREAMBLE_SHORT or PREAMBLE_AUTO
++ { /* Long Preamble */
++ if (pmlmeinfo->preamble_mode != PREAMBLE_LONG) /* PREAMBLE_SHORT or PREAMBLE_AUTO */
+ {
+ ShortPreamble = false;
+ pmlmeinfo->preamble_mode = PREAMBLE_LONG;
-+ rtw_hal_set_hwreg( Adapter, HW_VAR_ACK_PREAMBLE, (u8 *)&ShortPreamble );
++ rtw_hal_set_hwreg(Adapter, HW_VAR_ACK_PREAMBLE, (u8 *)&ShortPreamble);
+ }
+ }
+ }
+
-+ if ( updateCap & cIBSS ) {
-+ //Filen: See 802.11-2007 p.91
++ if (updateCap & cIBSS) {
++ /* Filen: See 802.11-2007 p.91 */
+ pmlmeinfo->slotTime = NON_SHORT_SLOT_TIME;
+ }
+ else
+ {
-+ //Filen: See 802.11-2007 p.90
-+ if( pmlmeext->cur_wireless_mode & (WIRELESS_11_24N | WIRELESS_11A | WIRELESS_11_5N | WIRELESS_11AC))
++ /* Filen: See 802.11-2007 p.90 */
++ if (pmlmeext->cur_wireless_mode & (WIRELESS_11_24N | WIRELESS_11A | WIRELESS_11_5N | WIRELESS_11AC))
+ {
+ pmlmeinfo->slotTime = SHORT_SLOT_TIME;
+ }
-+ else if( pmlmeext->cur_wireless_mode & (WIRELESS_11G))
++ else if (pmlmeext->cur_wireless_mode & (WIRELESS_11G))
+ {
-+ if( (updateCap & cShortSlotTime) /* && (!(pMgntInfo->pHTInfo->RT2RT_HT_Mode & RT_HT_CAP_USE_LONG_PREAMBLE)) */)
-+ { // Short Slot Time
++ if ((updateCap & cShortSlotTime) /* && (!(pMgntInfo->pHTInfo->RT2RT_HT_Mode & RT_HT_CAP_USE_LONG_PREAMBLE)) */)
++ { /* Short Slot Time */
+ pmlmeinfo->slotTime = SHORT_SLOT_TIME;
+ }
+ else
-+ { // Long Slot Time
++ { /* Long Slot Time */
+ pmlmeinfo->slotTime = NON_SHORT_SLOT_TIME;
+ }
+ }
+ else
+ {
-+ //B Mode
++ /* B Mode */
+ pmlmeinfo->slotTime = NON_SHORT_SLOT_TIME;
+ }
-+ }
-+
-+ rtw_hal_set_hwreg( Adapter, HW_VAR_SLOT_TIME, &pmlmeinfo->slotTime );
++ }
++
++ rtw_hal_set_hwreg(Adapter, HW_VAR_SLOT_TIME, &pmlmeinfo->slotTime);
+
+}
+
-+void update_wireless_mode(_adapter *padapter)
++void update_wireless_mode(struct adapter *padapter)
+{
+ int ratelen, network_type = 0;
+ u32 SIFS_Timer;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+ WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network);
-+ unsigned char *rate = cur_network->SupportedRates;
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct wlan_bssid_ex *cur_network = &(pmlmeinfo->network);
++ unsigned char *rate = cur_network->SupportedRates;
+
+ ratelen = rtw_get_rateset_len(cur_network->SupportedRates);
+
@@ -37342,7 +30811,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ pmlmeinfo->HT_enable = 1;
+ }
+
-+ if(pmlmeext->cur_channel > 14)
++ if (pmlmeext->cur_channel > 14)
+ {
+ if (pmlmeinfo->VHT_enable)
+ network_type = WIRELESS_11AC;
@@ -37357,12 +30826,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ network_type = WIRELESS_11AC;
+ else if (pmlmeinfo->HT_enable)
+ network_type = WIRELESS_11_24N;
-+
++
+ if ((cckratesonly_included(rate, ratelen)) == true)
+ {
+ network_type |= WIRELESS_11B;
+ }
-+ else if((cckrates_included(rate, ratelen)) == true)
++ else if ((cckrates_included(rate, ratelen)) == true)
+ {
+ network_type |= WIRELESS_11BG;
+ }
@@ -37373,20 +30842,13 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ }
+
+ pmlmeext->cur_wireless_mode = network_type & padapter->registrypriv.wireless_mode;
-+/*
-+ if((pmlmeext->cur_wireless_mode==WIRELESS_11G) ||
-+ (pmlmeext->cur_wireless_mode==WIRELESS_11BG))//WIRELESS_MODE_G)
-+ SIFS_Timer = 0x0a0a;//CCK
-+ else
-+ SIFS_Timer = 0x0e0e;//pHalData->SifsTime; //OFDM
-+*/
-+
-+ SIFS_Timer = 0x0a0a0808; //0x0808 -> for CCK, 0x0a0a -> for OFDM
-+ //change this value if having IOT issues.
-+
-+ padapter->HalFunc.SetHwRegHandler( padapter, HW_VAR_RESP_SIFS, (u8 *)&SIFS_Timer);
+
-+ padapter->HalFunc.SetHwRegHandler( padapter, HW_VAR_WIRELESS_MODE, (u8 *)&(pmlmeext->cur_wireless_mode));
++ SIFS_Timer = 0x0a0a0808; /* 0x0808 -> for CCK, 0x0a0a -> for OFDM */
++ /* change this value if having IOT issues. */
++
++ padapter->HalFunc.SetHwRegHandler(padapter, HW_VAR_RESP_SIFS, (u8 *)&SIFS_Timer);
++
++ padapter->HalFunc.SetHwRegHandler(padapter, HW_VAR_WIRELESS_MODE, (u8 *)&(pmlmeext->cur_wireless_mode));
+
+ if (pmlmeext->cur_wireless_mode & WIRELESS_11B)
+ update_mgnt_tx_rate(padapter, IEEE80211_CCK_RATE_1MB);
@@ -37396,9 +30858,9 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+
+void update_sta_basic_rate(struct sta_info *psta, u8 wireless_mode)
+{
-+ if(IsSupportedTxCCK(wireless_mode))
++ if (IsSupportedTxCCK(wireless_mode))
+ {
-+ // Only B, B/G, and B/G/N AP could use CCK rate
++ /* Only B, B/G, and B/G/N AP could use CCK rate */
+ memcpy(psta->bssrateset, rtw_basic_rate_cck, 4);
+ psta->bssratelen = 4;
+ }
@@ -37409,140 +30871,140 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ }
+}
+
-+int update_sta_support_rate(_adapter *padapter, u8* pvar_ie, uint var_ie_len, int cam_idx)
++int update_sta_support_rate(struct adapter *padapter, u8 *pvar_ie, uint var_ie_len, int cam_idx)
+{
+ unsigned int ie_len;
-+ PNDIS_802_11_VARIABLE_IEs pIE;
++ struct ndis_80211_var_ie * pIE;
+ int supportRateNum = 0;
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+
-+ pIE = (PNDIS_802_11_VARIABLE_IEs)rtw_get_ie(pvar_ie, _SUPPORTEDRATES_IE_, &ie_len, var_ie_len);
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++
++ pIE = (struct ndis_80211_var_ie *)rtw_get_ie(pvar_ie, _SUPPORTEDRATES_IE_, &ie_len, var_ie_len);
+ if (pIE == NULL)
+ {
+ return _FAIL;
+ }
-+
++
+ memcpy(pmlmeinfo->FW_sta_info[cam_idx].SupportedRates, pIE->data, ie_len);
+ supportRateNum = ie_len;
-+
-+ pIE = (PNDIS_802_11_VARIABLE_IEs)rtw_get_ie(pvar_ie, _EXT_SUPPORTEDRATES_IE_, &ie_len, var_ie_len);
++
++ pIE = (struct ndis_80211_var_ie *)rtw_get_ie(pvar_ie, _EXT_SUPPORTEDRATES_IE_, &ie_len, var_ie_len);
+ if (pIE)
+ {
+ memcpy((pmlmeinfo->FW_sta_info[cam_idx].SupportedRates + supportRateNum), pIE->data, ie_len);
+ }
+
+ return _SUCCESS;
-+
++
+}
+
-+void process_addba_req(_adapter *padapter, u8 *paddba_req, u8 *addr)
++void process_addba_req(struct adapter *padapter, u8 *paddba_req, u8 *addr)
+{
+ struct sta_info *psta;
-+ u16 tid, start_seq, param;
++ u16 tid, start_seq, param;
+ struct recv_reorder_ctrl *preorder_ctrl;
-+ struct sta_priv *pstapriv = &padapter->stapriv;
++ struct sta_priv *pstapriv = &padapter->stapriv;
+ struct ADDBA_request *preq = (struct ADDBA_request*)paddba_req;
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
+ psta = rtw_get_stainfo(pstapriv, addr);
+
-+ if(psta)
++ if (psta)
+ {
+ start_seq = le16_to_cpu(preq->BA_starting_seqctrl) >> 4;
-+
++
+ param = le16_to_cpu(preq->BA_para_set);
+ tid = (param>>2)&0x0f;
-+
++
+ preorder_ctrl = &psta->recvreorder_ctrl[tid];
+
+ #ifdef CONFIG_UPDATE_INDICATE_SEQ_WHILE_PROCESS_ADDBA_REQ
+ preorder_ctrl->indicate_seq = start_seq;
+ #ifdef DBG_RX_SEQ
-+ DBG_871X("DBG_RX_SEQ %s:%d IndicateSeq: %d, start_seq: %d\n", __FUNCTION__, __LINE__,
++ DBG_871X("DBG_RX_SEQ %s:%d IndicateSeq: %d, start_seq: %d\n", __func__, __LINE__,
+ preorder_ctrl->indicate_seq, start_seq);
+ #endif
+ #else
+ preorder_ctrl->indicate_seq = 0xffff;
+ #endif
-+
++
+ preorder_ctrl->enable =(pmlmeinfo->bAcceptAddbaReq == true)? true :false;
+ }
+
+}
+
+void update_TSF(struct mlme_ext_priv *pmlmeext, u8 *pframe, uint len)
-+{
-+ u8* pIE;
-+ u32 *pbuf;
-+
-+ pIE = pframe + sizeof(struct rtw_ieee80211_hdr_3addr);
-+ pbuf = (u32*)pIE;
++{
++ u8 *pIE;
++ __le32 *pbuf;
++
++ pIE = pframe + sizeof(struct ieee80211_hdr_3addr);
++ pbuf = (__le32 *)pIE;
+
+ pmlmeext->TSFValue = le32_to_cpu(*(pbuf+1));
-+
++
+ pmlmeext->TSFValue = pmlmeext->TSFValue << 32;
+
+ pmlmeext->TSFValue |= le32_to_cpu(*pbuf);
+}
+
-+void correct_TSF(_adapter *padapter, struct mlme_ext_priv *pmlmeext)
++void correct_TSF(struct adapter *padapter, struct mlme_ext_priv *pmlmeext)
+{
+ rtw_hal_set_hwreg(padapter, HW_VAR_CORRECT_TSF, NULL);
+}
+
+void adaptive_early_32k(struct mlme_ext_priv *pmlmeext, u8 *pframe, uint len)
-+{
++{
+ int i;
-+ u8* pIE;
-+ u32 *pbuf;
-+ u64 tsf=0;
++ u8 *pIE;
++ __le32 *pbuf;
++ u64 tsf = 0;
+ u32 delay_ms;
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
+
+ pmlmeext->bcn_cnt++;
+
-+ pIE = pframe + sizeof(struct rtw_ieee80211_hdr_3addr);
-+ pbuf = (u32*)pIE;
++ pIE = pframe + sizeof(struct ieee80211_hdr_3addr);
++ pbuf = (__le32 *)pIE;
+
-+ tsf = le32_to_cpu(*(pbuf+1));
++ tsf = le32_to_cpu(*(pbuf+1));
+ tsf = tsf << 32;
+ tsf |= le32_to_cpu(*pbuf);
+
-+ //DBG_871X("%s(): tsf_upper= 0x%08x, tsf_lower=0x%08x\n", __func__, (u32)(tsf>>32), (u32)tsf);
++ /* DBG_871X("%s(): tsf_upper = 0x%08x, tsf_lower = 0x%08x\n", __func__, (u32)(tsf>>32), (u32)tsf); */
+
-+ //delay = (timestamp mod 1024*100)/1000 (unit: ms)
-+ //delay_ms = do_div(tsf, (pmlmeinfo->bcn_interval*1024))/1000;
++ /* delay = (timestamp mod 1024*100)/1000 (unit: ms) */
++ /* delay_ms = do_div(tsf, (pmlmeinfo->bcn_interval*1024))/1000; */
+ delay_ms = rtw_modular64(tsf, (pmlmeinfo->bcn_interval*1024));
+ delay_ms = delay_ms/1000;
+
-+ if(delay_ms >= 8)
++ if (delay_ms >= 8)
+ {
+ pmlmeext->bcn_delay_cnt[8]++;
-+ //pmlmeext->bcn_delay_ratio[8] = (pmlmeext->bcn_delay_cnt[8] * 100) /pmlmeext->bcn_cnt;
++ /* pmlmeext->bcn_delay_ratio[8] = (pmlmeext->bcn_delay_cnt[8] * 100) /pmlmeext->bcn_cnt; */
+ }
+ else
+ {
+ pmlmeext->bcn_delay_cnt[delay_ms]++;
-+ //pmlmeext->bcn_delay_ratio[delay_ms] = (pmlmeext->bcn_delay_cnt[delay_ms] * 100) /pmlmeext->bcn_cnt;
++ /* pmlmeext->bcn_delay_ratio[delay_ms] = (pmlmeext->bcn_delay_cnt[delay_ms] * 100) /pmlmeext->bcn_cnt; */
+ }
+
+/*
+ DBG_871X("%s(): (a)bcn_cnt = %d\n", __func__, pmlmeext->bcn_cnt);
+
+
-+ for(i=0; i<9; i++)
++ for (i = 0; i<9; i++)
+ {
-+ DBG_871X("%s():bcn_delay_cnt[%d]=%d, bcn_delay_ratio[%d]=%d\n", __func__, i,
-+ pmlmeext->bcn_delay_cnt[i] , i, pmlmeext->bcn_delay_ratio[i]);
-+ }
++ DBG_871X("%s():bcn_delay_cnt[%d]=%d, bcn_delay_ratio[%d]=%d\n", __func__, i,
++ pmlmeext->bcn_delay_cnt[i] , i, pmlmeext->bcn_delay_ratio[i]);
++ }
+*/
+
-+ //dump for adaptive_early_32k
-+ if(pmlmeext->bcn_cnt > 100 && (pmlmeext->adaptive_tsf_done==true))
-+ {
++ /* dump for adaptive_early_32k */
++ if (pmlmeext->bcn_cnt > 100 && (pmlmeext->adaptive_tsf_done ==true))
++ {
+ u8 ratio_20_delay, ratio_80_delay;
+ u8 DrvBcnEarly, DrvBcnTimeOut;
+
@@ -37550,80 +31012,79 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ ratio_80_delay = 0;
+ DrvBcnEarly = 0xff;
+ DrvBcnTimeOut = 0xff;
-+
++
+ DBG_871X("%s(): bcn_cnt = %d\n", __func__, pmlmeext->bcn_cnt);
+
-+ for(i=0; i<9; i++)
++ for (i = 0; i<9; i++)
+ {
+ pmlmeext->bcn_delay_ratio[i] = (pmlmeext->bcn_delay_cnt[i] * 100) /pmlmeext->bcn_cnt;
-+
-+
-+ DBG_871X("%s():bcn_delay_cnt[%d]=%d, bcn_delay_ratio[%d]=%d\n", __func__, i,
++
++
++ DBG_871X("%s():bcn_delay_cnt[%d]=%d, bcn_delay_ratio[%d]=%d\n", __func__, i,
+ pmlmeext->bcn_delay_cnt[i] , i, pmlmeext->bcn_delay_ratio[i]);
+
+ ratio_20_delay += pmlmeext->bcn_delay_ratio[i];
+ ratio_80_delay += pmlmeext->bcn_delay_ratio[i];
-+
-+ if(ratio_20_delay > 20 && DrvBcnEarly == 0xff)
-+ {
++
++ if (ratio_20_delay > 20 && DrvBcnEarly == 0xff)
++ {
+ DrvBcnEarly = i;
+ DBG_871X("%s(): DrvBcnEarly = %d\n", __func__, DrvBcnEarly);
-+ }
++ }
+
-+ if(ratio_80_delay > 80 && DrvBcnTimeOut == 0xff)
++ if (ratio_80_delay > 80 && DrvBcnTimeOut == 0xff)
+ {
+ DrvBcnTimeOut = i;
+ DBG_871X("%s(): DrvBcnTimeOut = %d\n", __func__, DrvBcnTimeOut);
+ }
-+
-+ //reset adaptive_early_32k cnt
++
++ /* reset adaptive_early_32k cnt */
+ pmlmeext->bcn_delay_cnt[i] = 0;
-+ pmlmeext->bcn_delay_ratio[i] = 0;
-+ }
++ pmlmeext->bcn_delay_ratio[i] = 0;
++ }
+
+ pmlmeext->DrvBcnEarly = DrvBcnEarly;
+ pmlmeext->DrvBcnTimeOut = DrvBcnTimeOut;
+
-+ pmlmeext->bcn_cnt = 0;
-+ }
-+
++ pmlmeext->bcn_cnt = 0;
++ }
++
+}
+
+
-+void beacon_timing_control(_adapter *padapter)
++void beacon_timing_control(struct adapter *padapter)
+{
+ rtw_hal_bcn_related_reg_setting(padapter);
+}
+
-+void rtw_alloc_macid(_adapter *padapter, struct sta_info *psta)
++void rtw_alloc_macid(struct adapter *padapter, struct sta_info *psta)
+{
+ int i;
-+ _irqL irqL;
-+ u8 bc_addr[ETH_ALEN] = {0xff,0xff,0xff,0xff,0xff,0xff};
++ u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
+ struct dvobj_priv *pdvobj = adapter_to_dvobj(padapter);
+
+
-+ if(!memcmp(psta->hwaddr, bc_addr, ETH_ALEN))
++ if (!memcmp(psta->hwaddr, bc_addr, ETH_ALEN))
+ return;
+
-+ if(!memcmp(psta->hwaddr, myid(&padapter->eeprompriv), ETH_ALEN))
++ if (!memcmp(psta->hwaddr, myid(&padapter->eeprompriv), ETH_ALEN))
+ {
+ psta->mac_id = NUM_STA;
+ return;
+ }
+
-+ _enter_critical_bh(&pdvobj->lock, &irqL);
-+ for(i=0; ilock);
++ for (i = 0; imacid[i] == false)
++ if (pdvobj->macid[i] == false)
+ {
+ pdvobj->macid[i] = true;
+ break;
+ }
+ }
-+ _exit_critical_bh(&pdvobj->lock, &irqL);
++ spin_unlock_bh(&pdvobj->lock);
+
-+ if( i > (NUM_STA-1))
++ if (i > (NUM_STA-1))
+ {
+ psta->mac_id = NUM_STA;
+ DBG_871X(" no room for more MACIDs\n");
@@ -37631,167 +31092,66 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ else
+ {
+ psta->mac_id = i;
-+ DBG_871X("%s = %d\n", __FUNCTION__, psta->mac_id);
++ DBG_871X("%s = %d\n", __func__, psta->mac_id);
+ }
+
+}
+
-+void rtw_release_macid(_adapter *padapter, struct sta_info *psta)
++void rtw_release_macid(struct adapter *padapter, struct sta_info *psta)
+{
-+ int i;
-+ _irqL irqL;
-+ u8 bc_addr[ETH_ALEN] = {0xff,0xff,0xff,0xff,0xff,0xff};
++ u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
+ struct dvobj_priv *pdvobj = adapter_to_dvobj(padapter);
+
+
-+ if(!memcmp(psta->hwaddr, bc_addr, ETH_ALEN))
++ if (!memcmp(psta->hwaddr, bc_addr, ETH_ALEN))
+ return;
+
-+ if(!memcmp(psta->hwaddr, myid(&padapter->eeprompriv), ETH_ALEN))
++ if (!memcmp(psta->hwaddr, myid(&padapter->eeprompriv), ETH_ALEN))
+ {
+ return;
+ }
+
-+ _enter_critical_bh(&pdvobj->lock, &irqL);
-+ if(psta->mac_idmac_id !=1 )
++ spin_lock_bh(&pdvobj->lock);
++ if (psta->mac_idmac_id != 1)
+ {
-+ if(pdvobj->macid[psta->mac_id] == true)
++ if (pdvobj->macid[psta->mac_id] == true)
+ {
-+ DBG_871X("%s = %d\n", __FUNCTION__, psta->mac_id);
++ DBG_871X("%s = %d\n", __func__, psta->mac_id);
+ pdvobj->macid[psta->mac_id] = false;
+ psta->mac_id = NUM_STA;
+ }
+
+ }
-+ _exit_critical_bh(&pdvobj->lock, &irqL);
++ spin_unlock_bh(&pdvobj->lock);
+
+}
-+//For 8188E RA
-+u8 rtw_search_max_mac_id(_adapter *padapter)
++/* For 8188E RA */
++u8 rtw_search_max_mac_id(struct adapter *padapter)
+{
-+ u8 max_mac_id=0;
++ u8 max_mac_id = 0;
+ struct dvobj_priv *pdvobj = adapter_to_dvobj(padapter);
+ int i;
-+ _irqL irqL;
-+ _enter_critical_bh(&pdvobj->lock, &irqL);
-+ for(i=(NUM_STA-1); i>=0 ; i--)
++ spin_lock_bh(&pdvobj->lock);
++ for (i =(NUM_STA-1); i>= 0 ; i--)
+ {
-+ if(pdvobj->macid[i] == true)
-+ {
++ if (pdvobj->macid[i] == true)
++ {
+ break;
+ }
+ }
+ max_mac_id = i;
-+ _exit_critical_bh(&pdvobj->lock, &irqL);
++ spin_unlock_bh(&pdvobj->lock);
+
+ return max_mac_id;
+
-+}
++}
+
-+static _adapter *pbuddy_padapter = NULL;
-+
-+_adapter *dvobj_get_port0_adapter(struct dvobj_priv *dvobj)
++struct adapter *dvobj_get_port0_adapter(struct dvobj_priv *dvobj)
+{
-+ _adapter *port0_iface = NULL;
-+ int i;
-+ for (i=0;iiface_nums;i++) {
-+ if (get_iface_type(dvobj->padapters[i]) == IFACE_PORT0)
-+ break;
-+ }
++ if (get_iface_type(dvobj->padapters[i]) != IFACE_PORT0)
++ return NULL;
+
-+ if (i<0 || i>=dvobj->iface_nums)
-+ rtw_warn_on(1);
-+ else
-+ port0_iface = dvobj->padapters[i];
-+
-+ return port0_iface;
-+}
-+
-+/*
-+ * Description:
-+ * rtw_check_invalid_mac_address:
-+ * This is only used for checking mac address valid or not.
-+ *
-+ * Input:
-+ * adapter: mac_address pointer.
-+ *
-+ * Output:
-+ * true: The mac address is invalid.
-+ * false: The mac address is valid.
-+ *
-+ * Auther: Isaac.Li
-+ */
-+u8 rtw_check_invalid_mac_address(u8 *mac_addr) {
-+ u8 null_mac_addr[ETH_ALEN] = {0, 0, 0, 0, 0, 0};
-+ u8 multi_mac_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
-+ u8 res = false;
-+
-+ if (!memcmp(mac_addr, null_mac_addr, ETH_ALEN)) {
-+ res = true;
-+ goto func_exit;
-+ }
-+
-+ if (!memcmp(mac_addr, multi_mac_addr, ETH_ALEN)) {
-+ res = true;
-+ goto func_exit;
-+ }
-+
-+ if (mac_addr[0] & BIT0) {
-+ res = true;
-+ goto func_exit;
-+ }
-+
-+ if (mac_addr[0] & BIT1) {
-+ res = true;
-+ goto func_exit;
-+ }
-+
-+func_exit:
-+ return res;
-+}
-+
-+/*
-+ * Description:
-+ * dump_TX_FIFO: This is only used to dump TX_FIFO for debug WoW mode offload
-+ * contant.
-+ *
-+ * Input:
-+ * adapter: adapter pointer.
-+ * page_num: The max. page number that user want to dump.
-+ * page_size: page size of each page. eg. 128 bytes, 256 bytes.
-+ */
-+void dump_TX_FIFO(_adapter* padapter, u8 page_num, u16 page_size){
-+
-+ int i;
-+ u8 val = 0;
-+ u8 base = 0;
-+ u32 addr = 0;
-+ u32 count = (page_size / 8);
-+
-+ if (page_num <= 0) {
-+ DBG_871X("!!%s: incorrect input page_num paramter!\n", __func__);
-+ return;
-+ }
-+
-+ if (page_size < 128 || page_size > 256) {
-+ DBG_871X("!!%s: incorrect input page_size paramter!\n", __func__);
-+ return;
-+ }
-+
-+ DBG_871X("+%s+\n", __func__);
-+ val = rtw_read8(padapter, 0x106);
-+ rtw_write8(padapter, 0x106, 0x69);
-+ DBG_871X("0x106: 0x%02x\n", val);
-+ base = rtw_read8(padapter, 0x209);
-+ DBG_871X("0x209: 0x%02x\n", base);
-+
-+ addr = ((base) * page_size)/8;
-+ for (i = 0 ; i < page_num * count ; i+=2) {
-+ rtw_write32(padapter, 0x140, addr + i);
-+ printk(" %08x %08x ", rtw_read32(padapter, 0x144), rtw_read32(padapter, 0x148));
-+ rtw_write32(padapter, 0x140, addr + i + 1);
-+ printk(" %08x %08x \n", rtw_read32(padapter, 0x144), rtw_read32(padapter, 0x148));
-+ }
++ return dvobj->padapters;
+}
+
+#ifdef CONFIG_GPIO_API
@@ -37799,25 +31159,25 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+{
+ u8 value;
+ u8 direction;
-+ _adapter *adapter = (_adapter *)rtw_netdev_priv(netdev);
++ struct adapter *adapter = (struct adapter *)rtw_netdev_priv(netdev);
+ struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter);
+
+ rtw_ps_deny(adapter, PS_DENY_IOCTL);
+
-+ DBG_871X("rf_pwrstate=0x%02x\n", pwrpriv->rf_pwrstate);
++ DBG_871X("rf_pwrstate = 0x%02x\n", pwrpriv->rf_pwrstate);
+ LeaveAllPowerSaveModeDirect(adapter);
+
+ /* Read GPIO Direction */
-+ direction = (rtw_read8(adapter,REG_GPIO_PIN_CTRL + 2) & BIT(gpio_num)) >> gpio_num;
++ direction = (rtw_read8(adapter, REG_GPIO_PIN_CTRL + 2) & BIT(gpio_num)) >> gpio_num;
+
+ /* According the direction to read register value */
-+ if( direction )
++ if (direction)
+ value = (rtw_read8(adapter, REG_GPIO_PIN_CTRL + 1)& BIT(gpio_num)) >> gpio_num;
+ else
+ value = (rtw_read8(adapter, REG_GPIO_PIN_CTRL)& BIT(gpio_num)) >> gpio_num;
+
+ rtw_ps_deny_cancel(adapter, PS_DENY_IOCTL);
-+ DBG_871X("%s direction=%d value=%d\n",__FUNCTION__,direction,value);
++ DBG_871X("%s direction =%d value =%d\n", __func__, direction, value);
+
+ return value;
+}
@@ -37827,12 +31187,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+{
+ u8 direction = 0;
+ u8 res = -1;
-+ _adapter *adapter = (_adapter *)rtw_netdev_priv(netdev);
++ struct adapter *adapter = (struct adapter *)rtw_netdev_priv(netdev);
+
+ /* Check GPIO is 4~7 */
-+ if( gpio_num > 7 || gpio_num < 4)
++ if (gpio_num > 7 || gpio_num < 4)
+ {
-+ DBG_871X("%s The gpio number does not included 4~7.\n",__FUNCTION__);
++ DBG_871X("%s The gpio number does not included 4~7.\n", __func__);
+ return -1;
+ }
+
@@ -37841,22 +31201,22 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ LeaveAllPowerSaveModeDirect(adapter);
+
+ /* Read GPIO direction */
-+ direction = (rtw_read8(adapter,REG_GPIO_PIN_CTRL + 2) & BIT(gpio_num)) >> gpio_num;
++ direction = (rtw_read8(adapter, REG_GPIO_PIN_CTRL + 2) & BIT(gpio_num)) >> gpio_num;
+
+ /* If GPIO is output direction, setting value. */
-+ if( direction )
++ if (direction)
+ {
-+ if(isHigh)
++ if (isHigh)
+ rtw_write8(adapter, REG_GPIO_PIN_CTRL + 1, rtw_read8(adapter, REG_GPIO_PIN_CTRL + 1) | BIT(gpio_num));
+ else
+ rtw_write8(adapter, REG_GPIO_PIN_CTRL + 1, rtw_read8(adapter, REG_GPIO_PIN_CTRL + 1) & ~BIT(gpio_num));
+
-+ DBG_871X("%s Set gpio %x[%d]=%d\n",__FUNCTION__,REG_GPIO_PIN_CTRL+1,gpio_num,isHigh );
++ DBG_871X("%s Set gpio %x[%d]=%d\n", __func__, REG_GPIO_PIN_CTRL+1, gpio_num, isHigh);
+ res = 0;
+ }
+ else
+ {
-+ DBG_871X("%s The gpio is input,not be set!\n",__FUNCTION__);
++ DBG_871X("%s The gpio is input, not be set!\n", __func__);
+ res = -1;
+ }
+
@@ -37867,21 +31227,21 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+
+int rtw_config_gpio(struct net_device *netdev, int gpio_num, bool isOutput)
+{
-+ _adapter *adapter = (_adapter *)rtw_netdev_priv(netdev);
++ struct adapter *adapter = (struct adapter *)rtw_netdev_priv(netdev);
+
-+ if( gpio_num > 7 || gpio_num < 4)
++ if (gpio_num > 7 || gpio_num < 4)
+ {
-+ DBG_871X("%s The gpio number does not included 4~7.\n",__FUNCTION__);
++ DBG_871X("%s The gpio number does not included 4~7.\n", __func__);
+ return -1;
+ }
+
-+ DBG_871X("%s gpio_num =%d direction=%d\n",__FUNCTION__,gpio_num,isOutput);
++ DBG_871X("%s gpio_num =%d direction =%d\n", __func__, gpio_num, isOutput);
+
+ rtw_ps_deny(adapter, PS_DENY_IOCTL);
+
+ LeaveAllPowerSaveModeDirect(adapter);
+
-+ if( isOutput )
++ if (isOutput)
+ {
+ rtw_write8(adapter, REG_GPIO_PIN_CTRL + 2, rtw_read8(adapter, REG_GPIO_PIN_CTRL + 2) | BIT(gpio_num));
+ }
@@ -37898,23 +31258,23 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+#endif
+
+#if defined(CONFIG_WOWLAN) || defined(CONFIG_AP_WOWLAN)
-+void rtw_get_current_ip_address(PADAPTER padapter, u8 *pcurrentip)
++void rtw_get_current_ip_address(struct adapter *padapter, u8 *pcurrentip)
+{
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+ struct in_device *my_ip_ptr = padapter->pnetdev->ip_ptr;
+ u8 ipaddress[4];
-+
-+ if ( (pmlmeinfo->state & WIFI_FW_LINKING_STATE) ||
++
++ if ((pmlmeinfo->state & WIFI_FW_LINKING_STATE) ||
+ pmlmeinfo->state & WIFI_FW_AP_STATE) {
-+ if ( my_ip_ptr != NULL ) {
++ if (my_ip_ptr != NULL) {
+ struct in_ifaddr *my_ifa_list = my_ip_ptr->ifa_list ;
-+ if ( my_ifa_list != NULL ) {
++ if (my_ifa_list != NULL) {
+ ipaddress[0] = my_ifa_list->ifa_address & 0xFF;
+ ipaddress[1] = (my_ifa_list->ifa_address >> 8) & 0xFF;
+ ipaddress[2] = (my_ifa_list->ifa_address >> 16) & 0xFF;
+ ipaddress[3] = my_ifa_list->ifa_address >> 24;
-+ DBG_871X("%s: %d.%d.%d.%d ==========\n", __func__,
++ DBG_871X("%s: %d.%d.%d.%d ==========\n", __func__,
+ ipaddress[0], ipaddress[1], ipaddress[2], ipaddress[3]);
+ memcpy(pcurrentip, ipaddress, 4);
+ }
@@ -37923,32 +31283,32 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+}
+#endif
+#ifdef CONFIG_WOWLAN
-+void rtw_get_sec_iv(PADAPTER padapter, u8*pcur_dot11txpn, u8 *StaAddr)
++void rtw_get_sec_iv(struct adapter *padapter, u8*pcur_dot11txpn, u8 *StaAddr)
+{
-+ struct sta_info *psta;
++ struct sta_info *psta;
+ struct security_priv *psecpriv = &padapter->securitypriv;
+
+ memset(pcur_dot11txpn, 0, 8);
-+ if(NULL == StaAddr)
-+ return;
++ if (NULL == StaAddr)
++ return;
+ psta = rtw_get_stainfo(&padapter->stapriv, StaAddr);
-+ DBG_871X("%s(): StaAddr: %02x %02x %02x %02x %02x %02x\n",
++ DBG_871X("%s(): StaAddr: %02x %02x %02x %02x %02x %02x\n",
+ __func__, StaAddr[0], StaAddr[1], StaAddr[2],
+ StaAddr[3], StaAddr[4], StaAddr[5]);
+
-+ if(psta)
++ if (psta)
+ {
+ if (psecpriv->dot11PrivacyAlgrthm != _NO_PRIVACY_ && psta->dot11txpn.val > 0)
+ psta->dot11txpn.val--;
+ AES_IV(pcur_dot11txpn, psta->dot11txpn, 0);
+
-+ DBG_871X("%s(): CurrentIV: %02x %02x %02x %02x %02x %02x %02x %02x \n"
-+ , __func__, pcur_dot11txpn[0],pcur_dot11txpn[1],
-+ pcur_dot11txpn[2],pcur_dot11txpn[3], pcur_dot11txpn[4],
-+ pcur_dot11txpn[5],pcur_dot11txpn[6],pcur_dot11txpn[7]);
++ DBG_871X("%s(): CurrentIV: %02x %02x %02x %02x %02x %02x %02x %02x\n"
++ , __func__, pcur_dot11txpn[0], pcur_dot11txpn[1],
++ pcur_dot11txpn[2], pcur_dot11txpn[3], pcur_dot11txpn[4],
++ pcur_dot11txpn[5], pcur_dot11txpn[6], pcur_dot11txpn[7]);
+ }
+}
-+void rtw_set_sec_pn(PADAPTER padapter)
++void rtw_set_sec_pn(struct adapter *padapter)
+{
+ struct sta_info *psta;
+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
@@ -37959,7 +31319,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ psta = rtw_get_stainfo(&padapter->stapriv,
+ get_my_bssid(&pmlmeinfo->network));
+
-+ if(psta)
++ if (psta)
+ {
+ if (pwrpriv->wowlan_fw_iv > psta->dot11txpn.val)
+ {
@@ -37969,356 +31329,27 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_wlan_util.c linux/3rdparty/rtl8
+ DBG_871X("%s(): FW IV is smaller than driver\n", __func__);
+ psta->dot11txpn.val += 2;
+ }
-+ DBG_871X("%s: dot11txpn: 0x%016llx\n", __func__ ,psta->dot11txpn.val);
++ DBG_871X("%s: dot11txpn: 0x%016llx\n", __func__ , psta->dot11txpn.val);
+ }
+}
-+#endif //CONFIG_WOWLAN
++#endif /* CONFIG_WOWLAN */
+
+#ifdef CONFIG_PNO_SUPPORT
+#define CSCAN_TLV_TYPE_SSID_IE 'S'
-+#define CIPHER_IE "key_mgmt="
++#define CIPHER_IE "key_mgmt ="
+#define CIPHER_NONE "NONE"
+#define CIPHER_WPA_PSK "WPA-PSK"
+#define CIPHER_WPA_EAP "WPA-EAP IEEE8021X"
-+/*
-+ * SSIDs list parsing from cscan tlv list
-+ */
-+int rtw_parse_ssid_list_tlv(char** list_str, pno_ssid_t* ssid,
-+ int max, int *bytes_left) {
-+ char* str;
+
-+ int idx = 0;
-+
-+ if ((list_str == NULL) || (*list_str == NULL) || (*bytes_left < 0)) {
-+ DBG_871X("%s error paramters\n", __func__);
-+ return -1;
-+ }
-+
-+ str = *list_str;
-+ while (*bytes_left > 0) {
-+
-+ if (str[0] != CSCAN_TLV_TYPE_SSID_IE) {
-+ *list_str = str;
-+ DBG_871X("nssid=%d left_parse=%d %d\n", idx, *bytes_left, str[0]);
-+ return idx;
-+ }
-+
-+ /* Get proper CSCAN_TLV_TYPE_SSID_IE */
-+ *bytes_left -= 1;
-+ str += 1;
-+
-+ if (str[0] == 0) {
-+ /* Broadcast SSID */
-+ ssid[idx].SSID_len = 0;
-+ memset((char*)ssid[idx].SSID, 0x0, WLAN_SSID_MAXLEN);
-+ *bytes_left -= 1;
-+ str += 1;
-+
-+ DBG_871X("BROADCAST SCAN left=%d\n", *bytes_left);
-+ }
-+ else if (str[0] <= WLAN_SSID_MAXLEN) {
-+ /* Get proper SSID size */
-+ ssid[idx].SSID_len = str[0];
-+ *bytes_left -= 1;
-+ str += 1;
-+
-+ /* Get SSID */
-+ if (ssid[idx].SSID_len > *bytes_left) {
-+ DBG_871X("%s out of memory range len=%d but left=%d\n",
-+ __func__, ssid[idx].SSID_len, *bytes_left);
-+ return -1;
-+ }
-+
-+ memcpy((char*)ssid[idx].SSID, str, ssid[idx].SSID_len);
-+
-+ *bytes_left -= ssid[idx].SSID_len;
-+ str += ssid[idx].SSID_len;
-+
-+ DBG_871X("%s :size=%d left=%d\n",
-+ (char*)ssid[idx].SSID, ssid[idx].SSID_len, *bytes_left);
-+ }
-+ else {
-+ DBG_871X("### SSID size more that %d\n", str[0]);
-+ return -1;
-+ }
-+
-+ if (idx++ > max) {
-+ DBG_871X("%s number of SSIDs more that %d\n", __func__, idx);
-+ return -1;
-+ }
-+ }
-+
-+ *list_str = str;
-+ return idx;
-+}
-+
-+int rtw_parse_cipher_list(struct pno_nlo_info *nlo_info, char* list_str) {
-+
-+ char *pch, *pnext, *pend;
-+ u8 key_len = 0, index = 0;
-+
-+ pch = list_str;
-+
-+ if (nlo_info == NULL || list_str == NULL) {
-+ DBG_871X("%s error paramters\n", __func__);
-+ return -1;
-+ }
-+
-+ while (strlen(pch) != 0) {
-+ pnext = strstr(pch, "key_mgmt=");
-+ if (pnext != NULL) {
-+ pch = pnext + strlen(CIPHER_IE);
-+ pend = strstr(pch, "}");
-+ if (strncmp(pch, CIPHER_NONE,
-+ strlen(CIPHER_NONE)) == 0) {
-+ nlo_info->ssid_cipher_info[index] = 0x00;
-+ } else if (strncmp(pch, CIPHER_WPA_PSK,
-+ strlen(CIPHER_WPA_PSK)) == 0) {
-+ nlo_info->ssid_cipher_info[index] = 0x66;
-+ } else if (strncmp(pch, CIPHER_WPA_EAP,
-+ strlen(CIPHER_WPA_EAP)) == 0) {
-+ nlo_info->ssid_cipher_info[index] = 0x01;
-+ }
-+ index ++;
-+ pch = pend + 1;
-+ } else {
-+ break;
-+ }
-+ }
-+ return 0;
-+}
-+
-+int rtw_dev_nlo_info_set(struct pno_nlo_info *nlo_info, pno_ssid_t* ssid,
-+ int num, int pno_time, int pno_repeat, int pno_freq_expo_max) {
-+
-+ int i = 0;
-+ struct file *fp;
-+ mm_segment_t fs;
-+ loff_t pos = 0;
-+ u8 *source = NULL;
-+ long len = 0;
-+
-+ DBG_871X("+%s+\n", __func__);
-+
-+ nlo_info->fast_scan_period = pno_time;
-+ nlo_info->ssid_num = num & BIT_LEN_MASK_32(8);
-+ nlo_info->slow_scan_period = (pno_time * 2);
-+ nlo_info->fast_scan_iterations = 5;
-+
-+ //TODO: channel list and probe index is all empty.
-+ for (i = 0 ; i < num ; i++) {
-+ nlo_info->ssid_length[i]
-+ = ssid[i].SSID_len;
-+ }
-+
-+ /* cipher array */
-+ fp = filp_open("/data/misc/wifi/wpa_supplicant.conf", O_RDONLY, 0644);
-+ if (IS_ERR(fp)) {
-+ DBG_871X("Error, wpa_supplicant.conf doesn't exist.\n");
-+ DBG_871X("Error, cipher array using default value.\n");
-+ return 0;
-+ }
-+
-+ len = i_size_read(fp->f_path.dentry->d_inode);
-+ if (len < 0 || len > 2048) {
-+ DBG_871X("Error, file size is bigger than 2048.\n");
-+ DBG_871X("Error, cipher array using default value.\n");
-+ return 0;
-+ }
-+
-+ fs = get_fs();
-+ set_fs(KERNEL_DS);
-+
-+ source = rtw_zmalloc(2048);
-+
-+ if (source != NULL) {
-+ len = vfs_read(fp, source, len, &pos);
-+ rtw_parse_cipher_list(nlo_info, source);
-+ rtw_mfree(source, 2048);
-+ }
-+
-+ set_fs(fs);
-+ filp_close(fp, NULL);
-+
-+ DBG_871X("-%s-\n", __func__);
-+ return 0;
-+}
-+
-+int rtw_dev_ssid_list_set(struct pno_ssid_list *pno_ssid_list,
-+ pno_ssid_t* ssid, u8 num) {
-+
-+ int i = 0;
-+ if(num > MAX_PNO_LIST_COUNT)
-+ num = MAX_PNO_LIST_COUNT;
-+
-+ for (i = 0 ; i < num ; i++) {
-+ memcpy(&pno_ssid_list->node[i].SSID,
-+ ssid[i].SSID, ssid[i].SSID_len);
-+ }
-+ return 0;
-+}
-+
-+int rtw_dev_scan_info_set(_adapter *padapter, pno_ssid_t* ssid,
-+ unsigned char ch, unsigned char ch_offset, unsigned short bw_mode) {
-+
-+ struct pwrctrl_priv *pwrctl = adapter_to_pwrctl(padapter);
-+ struct pno_scan_info *scan_info = pwrctl->pscan_info;
-+ int i;
-+
-+ scan_info->channel_num = MAX_SCAN_LIST_COUNT;
-+ scan_info->orig_ch = ch;
-+ scan_info->orig_bw = bw_mode;
-+ scan_info->orig_40_offset = ch_offset;
-+
-+ for(i = 0 ; i < scan_info->channel_num ; i++) {
-+ if (i < 11)
-+ scan_info->ssid_channel_info[i].active = 1;
-+ else
-+ scan_info->ssid_channel_info[i].active = 0;
-+
-+ scan_info->ssid_channel_info[i].timeout = 100;
-+
-+ scan_info->ssid_channel_info[i].tx_power =
-+ PHY_GetTxPowerIndex(padapter, 0, 0x02, bw_mode, i+1);
-+
-+ scan_info->ssid_channel_info[i].channel = i+1;
-+ }
-+
-+ DBG_871X("%s, channel_num: %d, orig_ch: %d, orig_bw: %d orig_40_offset: %d\n",
-+ __func__, scan_info->channel_num, scan_info->orig_ch,
-+ scan_info->orig_bw, scan_info->orig_40_offset);
-+ return 0;
-+}
-+
-+int rtw_dev_pno_set(struct net_device *net, pno_ssid_t* ssid, int num,
-+ int pno_time, int pno_repeat, int pno_freq_expo_max) {
-+
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(net);
-+ struct pwrctrl_priv *pwrctl = adapter_to_pwrctl(padapter);
-+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
-+
-+ int ret = -1;
-+
-+ if (num == 0) {
-+ DBG_871X("%s, nssid is zero, no need to setup pno ssid list\n", __func__);
-+ return 0;
-+ }
-+
-+ if (pwrctl == NULL) {
-+ DBG_871X("%s, ERROR: pwrctl is NULL\n", __func__);
-+ return -1;
-+ } else {
-+ pwrctl->pnlo_info =
-+ (pno_nlo_info_t*)rtw_zmalloc(sizeof(pno_nlo_info_t));
-+ pwrctl->pno_ssid_list =
-+ (pno_ssid_list_t*)rtw_zmalloc(sizeof(pno_ssid_list_t));
-+ pwrctl->pscan_info =
-+ (pno_scan_info_t*)rtw_zmalloc(sizeof(pno_scan_info_t));
-+ }
-+
-+ if (pwrctl->pnlo_info == NULL ||
-+ pwrctl->pscan_info == NULL ||
-+ pwrctl->pno_ssid_list == NULL){
-+ DBG_871X("%s, ERROR: alloc nlo_info, ssid_list, scan_info fail\n", __func__);
-+ goto failing;
-+ }
-+
-+ pwrctl->pno_in_resume = false;
-+
-+ pwrctl->pno_inited = true;
-+ /* NLO Info */
-+ ret = rtw_dev_nlo_info_set(pwrctl->pnlo_info, ssid, num,
-+ pno_time, pno_repeat, pno_freq_expo_max);
-+
-+ /* SSID Info */
-+ ret = rtw_dev_ssid_list_set(pwrctl->pno_ssid_list, ssid, num);
-+
-+ /* SCAN Info */
-+ ret = rtw_dev_scan_info_set(padapter, ssid, pmlmeext->cur_channel,
-+ pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
-+
-+ DBG_871X("+%s num: %d, pno_time: %d, pno_repeat:%d, pno_freq_expo_max:%d+\n",
-+ __func__, num, pno_time, pno_repeat, pno_freq_expo_max);
-+
-+ return 0;
-+
-+failing:
-+ if (pwrctl->pnlo_info) {
-+ rtw_mfree(pwrctl->pnlo_info, sizeof(pno_nlo_info_t));
-+ pwrctl->pnlo_info = NULL;
-+ }
-+ if (pwrctl->pno_ssid_list) {
-+ rtw_mfree(pwrctl->pno_ssid_list, sizeof(pno_ssid_list_t));
-+ pwrctl->pno_ssid_list = NULL;
-+ }
-+ if (pwrctl->pscan_info) {
-+ rtw_mfree(pwrctl->pscan_info, sizeof(pno_scan_info_t));
-+ pwrctl->pscan_info = NULL;
-+ }
-+
-+ return -1;
-+}
-+
-+#ifdef CONFIG_PNO_SET_DEBUG
-+void rtw_dev_pno_debug(struct net_device *net) {
-+ _adapter *padapter = (_adapter *)rtw_netdev_priv(net);
-+ struct pwrctrl_priv *pwrctl = adapter_to_pwrctl(padapter);
-+ int i = 0, j = 0;
-+
-+ DBG_871X("*******NLO_INFO********\n");
-+ DBG_871X("ssid_num: %d\n", pwrctl->pnlo_info->ssid_num);
-+ DBG_871X("fast_scan_iterations: %d\n",
-+ pwrctl->pnlo_info->fast_scan_iterations);
-+ DBG_871X("fast_scan_period: %d\n", pwrctl->pnlo_info->fast_scan_period);
-+ DBG_871X("slow_scan_period: %d\n", pwrctl->pnlo_info->slow_scan_period);
-+ DBG_871X("ssid_length: ");
-+ for (i = 0 ; i < MAX_PNO_LIST_COUNT ; i++) {
-+ printk("%d, ", pwrctl->pnlo_info->ssid_length[i]);
-+ }
-+ DBG_871X("\n");
-+
-+ DBG_871X("cipher_info: ");
-+ for (i = 0 ; i < MAX_PNO_LIST_COUNT ; i++) {
-+ DBG_871X("%d, ", pwrctl->pnlo_info->ssid_cipher_info[i]);
-+ }
-+ DBG_871X("\n");
-+
-+ DBG_871X("channel_info: ");
-+ for (i = 0 ; i < MAX_PNO_LIST_COUNT ; i++) {
-+ DBG_871X("%d, ", pwrctl->pnlo_info->ssid_channel_info[i]);
-+ }
-+ DBG_871X("\n");
-+
-+ DBG_871X("******SSID_LISD******\n");
-+ for (i = 0 ; i < MAX_PNO_LIST_COUNT ; i++) {
-+ DBG_871X("[%d]SSID: %s \n", i,
-+ pwrctl->pno_ssid_list->node[i].SSID);
-+ }
-+
-+ DBG_871X("******SCAN_INFO******\n");
-+ DBG_871X("ch_num: %d\n", pwrctl->pscan_info->channel_num);
-+ DBG_871X("orig_ch: %d\n", pwrctl->pscan_info->orig_ch);
-+ DBG_871X("orig bw: %d\n", pwrctl->pscan_info->orig_bw);
-+ DBG_871X("orig 40 offset: %d\n", pwrctl->pscan_info->orig_40_offset);
-+ for(i = 0 ; i < MAX_SCAN_LIST_COUNT ; i++) {
-+ DBG_871X("[%02d] avtive:%d, timeout:%d, tx_power:%d, ch:%02d\n",
-+ i, pwrctl->pscan_info->ssid_channel_info[i].active,
-+ pwrctl->pscan_info->ssid_channel_info[i].timeout,
-+ pwrctl->pscan_info->ssid_channel_info[i].tx_power,
-+ pwrctl->pscan_info->ssid_channel_info[i].channel);
-+ }
-+ DBG_871X("*****************\n");
-+}
-+#endif //CONFIG_PNO_SET_DEBUG
-+#endif //CONFIG_PNO_SUPPORT
-diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs/core/rtw_xmit.c
---- linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux/3rdparty/rtl8723bs/core/rtw_xmit.c 2015-05-07 18:03:23.000000000 +0300
-@@ -0,0 +1,3767 @@
++#endif /* CONFIG_PNO_SUPPORT */
+diff -Nurp linux-4.3/3rdparty/rtl8723bs/core/rtw_xmit.c linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_xmit.c
+--- linux-4.3/3rdparty/rtl8723bs/core/rtw_xmit.c 1970-01-01 02:00:00.000000000 +0200
++++ linux-4.3-rtl8723bs/3rdparty/rtl8723bs/core/rtw_xmit.c 2015-11-21 19:42:45.000000000 +0200
+@@ -0,0 +1,3263 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
-+ *
++ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
@@ -38328,122 +31359,107 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-+ *
-+ *
+ ******************************************************************************/
+#define _RTW_XMIT_C_
+
+#include
++#include
+
+static u8 P802_1H_OUI[P80211_OUI_LEN] = { 0x00, 0x00, 0xf8 };
+static u8 RFC1042_OUI[P80211_OUI_LEN] = { 0x00, 0x00, 0x00 };
+
+static void _init_txservq(struct tx_servq *ptxservq)
+{
-+_func_enter_;
-+ _rtw_init_listhead(&ptxservq->tx_pending);
++ INIT_LIST_HEAD(&ptxservq->tx_pending);
+ _rtw_init_queue(&ptxservq->sta_pending);
+ ptxservq->qcnt = 0;
-+_func_exit_;
+}
+
-+
-+void _rtw_init_sta_xmit_priv(struct sta_xmit_priv *psta_xmitpriv)
-+{
-+
-+_func_enter_;
-+
++void _rtw_init_sta_xmit_priv(struct sta_xmit_priv *psta_xmitpriv)
++{
+ memset((unsigned char *)psta_xmitpriv, 0, sizeof (struct sta_xmit_priv));
+
+ spin_lock_init(&psta_xmitpriv->lock);
-+
-+ //for(i = 0 ; i < MAX_NUMBLKS; i++)
-+ // _init_txservq(&(psta_xmitpriv->blk_q[i]));
++
++ /* for (i = 0 ; i < MAX_NUMBLKS; i++) */
++ /* _init_txservq(&(psta_xmitpriv->blk_q[i])); */
+
+ _init_txservq(&psta_xmitpriv->be_q);
+ _init_txservq(&psta_xmitpriv->bk_q);
+ _init_txservq(&psta_xmitpriv->vi_q);
+ _init_txservq(&psta_xmitpriv->vo_q);
-+ _rtw_init_listhead(&psta_xmitpriv->legacy_dz);
-+ _rtw_init_listhead(&psta_xmitpriv->apsd);
-+
-+_func_exit_;
-+
++ INIT_LIST_HEAD(&psta_xmitpriv->legacy_dz);
++ INIT_LIST_HEAD(&psta_xmitpriv->apsd);
+}
+
-+s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, _adapter *padapter)
++s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter)
+{
+ int i;
+ struct xmit_buf *pxmitbuf;
+ struct xmit_frame *pxframe;
-+ sint res=_SUCCESS;
-+
-+_func_enter_;
++ sint res = _SUCCESS;
++
++ /* We don't need to memset padapter->XXX to zero, because adapter is allocated by vzalloc(). */
++ /* memset((unsigned char *)pxmitpriv, 0, sizeof(struct xmit_priv)); */
+
-+ // We don't need to memset padapter->XXX to zero, because adapter is allocated by rtw_zvmalloc().
-+ //memset((unsigned char *)pxmitpriv, 0, sizeof(struct xmit_priv));
-+
+ spin_lock_init(&pxmitpriv->lock);
+ spin_lock_init(&pxmitpriv->lock_sctx);
+ sema_init(&pxmitpriv->xmit_sema, 0);
+ sema_init(&pxmitpriv->terminate_xmitthread_sema, 0);
+
-+ /*
++ /*
+ Please insert all the queue initializaiton using _rtw_init_queue below
+ */
+
+ pxmitpriv->adapter = padapter;
-+
-+ //for(i = 0 ; i < MAX_NUMBLKS; i++)
-+ // _rtw_init_queue(&pxmitpriv->blk_strms[i]);
-+
++
++ /* for (i = 0 ; i < MAX_NUMBLKS; i++) */
++ /* _rtw_init_queue(&pxmitpriv->blk_strms[i]); */
++
+ _rtw_init_queue(&pxmitpriv->be_pending);
+ _rtw_init_queue(&pxmitpriv->bk_pending);
+ _rtw_init_queue(&pxmitpriv->vi_pending);
+ _rtw_init_queue(&pxmitpriv->vo_pending);
+ _rtw_init_queue(&pxmitpriv->bm_pending);
+
-+ //_rtw_init_queue(&pxmitpriv->legacy_dz_queue);
-+ //_rtw_init_queue(&pxmitpriv->apsd_queue);
++ /* _rtw_init_queue(&pxmitpriv->legacy_dz_queue); */
++ /* _rtw_init_queue(&pxmitpriv->apsd_queue); */
+
+ _rtw_init_queue(&pxmitpriv->free_xmit_queue);
+
-+ /*
-+ Please allocate memory with the sz = (struct xmit_frame) * NR_XMITFRAME,
++ /*
++ Please allocate memory with the sz = (struct xmit_frame) * NR_XMITFRAME,
+ and initialize free_xmit_frame below.
+ Please also apply free_txobj to link_up all the xmit_frames...
+ */
+
-+ pxmitpriv->pallocated_frame_buf = rtw_zvmalloc(NR_XMITFRAME * sizeof(struct xmit_frame) + 4);
-+
-+ if (pxmitpriv->pallocated_frame_buf == NULL){
-+ pxmitpriv->pxmit_frame_buf =NULL;
-+ RT_TRACE(_module_rtl871x_xmit_c_,_drv_err_,("alloc xmit_frame fail!\n"));
-+ res= _FAIL;
++ pxmitpriv->pallocated_frame_buf = vzalloc(NR_XMITFRAME * sizeof(struct xmit_frame) + 4);
++
++ if (pxmitpriv->pallocated_frame_buf == NULL) {
++ pxmitpriv->pxmit_frame_buf = NULL;
++ RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("alloc xmit_frame fail!\n"));
++ res = _FAIL;
+ goto exit;
+ }
+ pxmitpriv->pxmit_frame_buf = (u8 *)N_BYTE_ALIGMENT((SIZE_PTR)(pxmitpriv->pallocated_frame_buf), 4);
-+ //pxmitpriv->pxmit_frame_buf = pxmitpriv->pallocated_frame_buf + 4 -
-+ // ((SIZE_PTR) (pxmitpriv->pallocated_frame_buf) &3);
++ /* pxmitpriv->pxmit_frame_buf = pxmitpriv->pallocated_frame_buf + 4 - */
++ /* ((SIZE_PTR) (pxmitpriv->pallocated_frame_buf) &3); */
+
+ pxframe = (struct xmit_frame*) pxmitpriv->pxmit_frame_buf;
+
+ for (i = 0; i < NR_XMITFRAME; i++)
+ {
-+ _rtw_init_listhead(&(pxframe->list));
++ INIT_LIST_HEAD(&(pxframe->list));
+
+ pxframe->padapter = padapter;
+ pxframe->frame_tag = NULL_FRAMETAG;
+
-+ pxframe->pkt = NULL;
++ pxframe->pkt = NULL;
+
+ pxframe->buf_addr = NULL;
+ pxframe->pxmitbuf = NULL;
-+
-+ rtw_list_insert_tail(&(pxframe->list), &(pxmitpriv->free_xmit_queue.queue));
++
++ list_add_tail(&(pxframe->list), &(pxmitpriv->free_xmit_queue.queue));
+
+ pxframe++;
+ }
@@ -38453,36 +31469,36 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+ pxmitpriv->frag_len = MAX_FRAG_THRESHOLD;
+
+
-+ //init xmit_buf
++ /* init xmit_buf */
+ _rtw_init_queue(&pxmitpriv->free_xmitbuf_queue);
+ _rtw_init_queue(&pxmitpriv->pending_xmitbuf_queue);
+
-+ pxmitpriv->pallocated_xmitbuf = rtw_zvmalloc(NR_XMITBUFF * sizeof(struct xmit_buf) + 4);
-+
-+ if (pxmitpriv->pallocated_xmitbuf == NULL){
-+ RT_TRACE(_module_rtl871x_xmit_c_,_drv_err_,("alloc xmit_buf fail!\n"));
-+ res= _FAIL;
++ pxmitpriv->pallocated_xmitbuf = vzalloc(NR_XMITBUFF * sizeof(struct xmit_buf) + 4);
++
++ if (pxmitpriv->pallocated_xmitbuf == NULL) {
++ RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("alloc xmit_buf fail!\n"));
++ res = _FAIL;
+ goto exit;
+ }
+
+ pxmitpriv->pxmitbuf = (u8 *)N_BYTE_ALIGMENT((SIZE_PTR)(pxmitpriv->pallocated_xmitbuf), 4);
-+ //pxmitpriv->pxmitbuf = pxmitpriv->pallocated_xmitbuf + 4 -
-+ // ((SIZE_PTR) (pxmitpriv->pallocated_xmitbuf) &3);
++ /* pxmitpriv->pxmitbuf = pxmitpriv->pallocated_xmitbuf + 4 - */
++ /* ((SIZE_PTR) (pxmitpriv->pallocated_xmitbuf) &3); */
+
+ pxmitbuf = (struct xmit_buf*)pxmitpriv->pxmitbuf;
+
+ for (i = 0; i < NR_XMITBUFF; i++)
+ {
-+ _rtw_init_listhead(&pxmitbuf->list);
++ INIT_LIST_HEAD(&pxmitbuf->list);
+
+ pxmitbuf->priv_data = NULL;
+ pxmitbuf->padapter = padapter;
+ pxmitbuf->buf_tag = XMITBUF_DATA;
+
+ /* Tx buf allocation may fail sometimes, so sleep and retry. */
-+ if((res=rtw_os_xmit_resource_alloc(padapter, pxmitbuf,(MAX_XMITBUF_SZ + XMITBUF_ALIGN_SZ), true)) == _FAIL) {
++ if ((res =rtw_os_xmit_resource_alloc(padapter, pxmitbuf, (MAX_XMITBUF_SZ + XMITBUF_ALIGN_SZ), true)) == _FAIL) {
+ msleep(10);
-+ res = rtw_os_xmit_resource_alloc(padapter, pxmitbuf,(MAX_XMITBUF_SZ + XMITBUF_ALIGN_SZ), true);
++ res = rtw_os_xmit_resource_alloc(padapter, pxmitbuf, (MAX_XMITBUF_SZ + XMITBUF_ALIGN_SZ), true);
+ if (res == _FAIL) {
+ goto exit;
+ }
@@ -38495,58 +31511,58 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+
+ pxmitbuf->flags = XMIT_VO_QUEUE;
+
-+ rtw_list_insert_tail(&pxmitbuf->list, &(pxmitpriv->free_xmitbuf_queue.queue));
++ list_add_tail(&pxmitbuf->list, &(pxmitpriv->free_xmitbuf_queue.queue));
+ #ifdef DBG_XMIT_BUF
-+ pxmitbuf->no=i;
++ pxmitbuf->no =i;
+ #endif
+
+ pxmitbuf++;
-+
++
+ }
+
+ pxmitpriv->free_xmitbuf_cnt = NR_XMITBUFF;
+
+ /* init xframe_ext queue, the same count as extbuf */
+ _rtw_init_queue(&pxmitpriv->free_xframe_ext_queue);
-+
-+ pxmitpriv->xframe_ext_alloc_addr = rtw_zvmalloc(NR_XMIT_EXTBUFF * sizeof(struct xmit_frame) + 4);
-+
-+ if (pxmitpriv->xframe_ext_alloc_addr == NULL){
++
++ pxmitpriv->xframe_ext_alloc_addr = vzalloc(NR_XMIT_EXTBUFF * sizeof(struct xmit_frame) + 4);
++
++ if (pxmitpriv->xframe_ext_alloc_addr == NULL) {
+ pxmitpriv->xframe_ext = NULL;
-+ RT_TRACE(_module_rtl871x_xmit_c_,_drv_err_,("alloc xframe_ext fail!\n"));
-+ res= _FAIL;
++ RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("alloc xframe_ext fail!\n"));
++ res = _FAIL;
+ goto exit;
+ }
+ pxmitpriv->xframe_ext = (u8 *)N_BYTE_ALIGMENT((SIZE_PTR)(pxmitpriv->xframe_ext_alloc_addr), 4);
+ pxframe = (struct xmit_frame*)pxmitpriv->xframe_ext;
+
+ for (i = 0; i < NR_XMIT_EXTBUFF; i++) {
-+ _rtw_init_listhead(&(pxframe->list));
++ INIT_LIST_HEAD(&(pxframe->list));
+
+ pxframe->padapter = padapter;
+ pxframe->frame_tag = NULL_FRAMETAG;
+
-+ pxframe->pkt = NULL;
++ pxframe->pkt = NULL;
+
+ pxframe->buf_addr = NULL;
+ pxframe->pxmitbuf = NULL;
-+
++
+ pxframe->ext_tag = 1;
-+
-+ rtw_list_insert_tail(&(pxframe->list), &(pxmitpriv->free_xframe_ext_queue.queue));
++
++ list_add_tail(&(pxframe->list), &(pxmitpriv->free_xframe_ext_queue.queue));
+
+ pxframe++;
+ }
+ pxmitpriv->free_xframe_ext_cnt = NR_XMIT_EXTBUFF;
+
-+ // Init xmit extension buff
++ /* Init xmit extension buff */
+ _rtw_init_queue(&pxmitpriv->free_xmit_extbuf_queue);
+
-+ pxmitpriv->pallocated_xmit_extbuf = rtw_zvmalloc(NR_XMIT_EXTBUFF * sizeof(struct xmit_buf) + 4);
-+
-+ if (pxmitpriv->pallocated_xmit_extbuf == NULL){
-+ RT_TRACE(_module_rtl871x_xmit_c_,_drv_err_,("alloc xmit_extbuf fail!\n"));
-+ res= _FAIL;
++ pxmitpriv->pallocated_xmit_extbuf = vzalloc(NR_XMIT_EXTBUFF * sizeof(struct xmit_buf) + 4);
++
++ if (pxmitpriv->pallocated_xmit_extbuf == NULL) {
++ RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("alloc xmit_extbuf fail!\n"));
++ res = _FAIL;
+ goto exit;
+ }
+
@@ -38556,14 +31572,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+
+ for (i = 0; i < NR_XMIT_EXTBUFF; i++)
+ {
-+ _rtw_init_listhead(&pxmitbuf->list);
++ INIT_LIST_HEAD(&pxmitbuf->list);
+
+ pxmitbuf->priv_data = NULL;
+ pxmitbuf->padapter = padapter;
+ pxmitbuf->buf_tag = XMITBUF_MGNT;
+
-+ if((res=rtw_os_xmit_resource_alloc(padapter, pxmitbuf,MAX_XMIT_EXTBUF_SZ + XMITBUF_ALIGN_SZ, true)) == _FAIL) {
-+ res= _FAIL;
++ if ((res =rtw_os_xmit_resource_alloc(padapter, pxmitbuf, MAX_XMIT_EXTBUF_SZ + XMITBUF_ALIGN_SZ, true)) == _FAIL) {
++ res = _FAIL;
+ goto exit;
+ }
+
@@ -38572,12 +31588,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+ pxmitbuf->len = 0;
+ pxmitbuf->pdata = pxmitbuf->ptail = pxmitbuf->phead;
+
-+ rtw_list_insert_tail(&pxmitbuf->list, &(pxmitpriv->free_xmit_extbuf_queue.queue));
++ list_add_tail(&pxmitbuf->list, &(pxmitpriv->free_xmit_extbuf_queue.queue));
+ #ifdef DBG_XMIT_BUF_EXT
-+ pxmitbuf->no=i;
++ pxmitbuf->no =i;
+ #endif
+ pxmitbuf++;
-+
++
+ }
+
+ pxmitpriv->free_xmit_extbuf_cnt = NR_XMIT_EXTBUFF;
@@ -38585,14 +31601,14 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+ for (i = 0; ipcmd_xmitbuf[i];
+ if (pxmitbuf) {
-+ _rtw_init_listhead(&pxmitbuf->list);
++ INIT_LIST_HEAD(&pxmitbuf->list);
+
+ pxmitbuf->priv_data = NULL;
+ pxmitbuf->padapter = padapter;
+ pxmitbuf->buf_tag = XMITBUF_CMD;
+
-+ if((res=rtw_os_xmit_resource_alloc(padapter, pxmitbuf, MAX_CMDBUF_SZ+XMITBUF_ALIGN_SZ, true)) == _FAIL) {
-+ res= _FAIL;
++ if ((res =rtw_os_xmit_resource_alloc(padapter, pxmitbuf, MAX_CMDBUF_SZ+XMITBUF_ALIGN_SZ, true)) == _FAIL) {
++ res = _FAIL;
+ goto exit;
+ }
+
@@ -38614,101 +31630,91 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+
+ pxmitpriv->ack_tx = false;
+ mutex_init(&pxmitpriv->ack_tx_mutex);
-+ rtw_sctx_init(&pxmitpriv->ack_tx_ops, 0);
++ rtw_sctx_init(&pxmitpriv->ack_tx_ops, 0);
+
+ rtw_hal_init_xmit_priv(padapter);
+
+exit:
-+
-+_func_exit_;
-+
+ return res;
+}
+
+void _rtw_free_xmit_priv (struct xmit_priv *pxmitpriv)
+{
+ int i;
-+ _adapter *padapter = pxmitpriv->adapter;
++ struct adapter *padapter = pxmitpriv->adapter;
+ struct xmit_frame *pxmitframe = (struct xmit_frame*) pxmitpriv->pxmit_frame_buf;
+ struct xmit_buf *pxmitbuf = (struct xmit_buf *)pxmitpriv->pxmitbuf;
-+
-+ _func_enter_;
+
+ rtw_hal_free_xmit_priv(padapter);
-+
-+ if(pxmitpriv->pxmit_frame_buf==NULL)
-+ goto out;
-+
-+ for(i=0; ipxmit_frame_buf == NULL)
++ return;
++
++ for (i = 0; ipallocated_frame_buf) {
-+ rtw_vmfree(pxmitpriv->pallocated_frame_buf, NR_XMITFRAME * sizeof(struct xmit_frame) + 4);
++ if (pxmitpriv->pallocated_frame_buf) {
++ vfree(pxmitpriv->pallocated_frame_buf);
+ }
-+
+
-+ if(pxmitpriv->pallocated_xmitbuf) {
-+ rtw_vmfree(pxmitpriv->pallocated_xmitbuf, NR_XMITBUFF * sizeof(struct xmit_buf) + 4);
++
++ if (pxmitpriv->pallocated_xmitbuf) {
++ vfree(pxmitpriv->pallocated_xmitbuf);
+ }
+
+ /* free xframe_ext queue, the same count as extbuf */
+ if ((pxmitframe = (struct xmit_frame*)pxmitpriv->xframe_ext)) {
-+ for (i=0; ixframe_ext_alloc_addr)
-+ rtw_vmfree(pxmitpriv->xframe_ext_alloc_addr, NR_XMIT_EXTBUFF * sizeof(struct xmit_frame) + 4);
++ vfree(pxmitpriv->xframe_ext_alloc_addr);
+
-+ // free xmit extension buff
++ /* free xmit extension buff */
+ pxmitbuf = (struct xmit_buf *)pxmitpriv->pxmit_extbuf;
-+ for(i=0; ipallocated_xmit_extbuf) {
-+ rtw_vmfree(pxmitpriv->pallocated_xmit_extbuf, NR_XMIT_EXTBUFF * sizeof(struct xmit_buf) + 4);
++ if (pxmitpriv->pallocated_xmit_extbuf) {
++ vfree(pxmitpriv->pallocated_xmit_extbuf);
+ }
+
-+ for (i=0; ipcmd_xmitbuf[i];
-+ if(pxmitbuf!=NULL)
++ if (pxmitbuf!= NULL)
+ rtw_os_xmit_resource_free(padapter, pxmitbuf, MAX_CMDBUF_SZ+XMITBUF_ALIGN_SZ , true);
+ }
+
+ rtw_free_hwxmits(padapter);
+
-+ mutex_destroy(&pxmitpriv->ack_tx_mutex);
-+
-+out:
-+
-+_func_exit_;
-+
++ mutex_destroy(&pxmitpriv->ack_tx_mutex);
+}
+
-+u8 query_ra_short_GI(struct sta_info *psta)
++u8 query_ra_short_GI(struct sta_info *psta)
+{
-+ u8 sgi = false, sgi_20m = false, sgi_40m = false, sgi_80m = false;
++ u8 sgi = false, sgi_20m = false, sgi_40m = false, sgi_80m = false;
+
+ sgi_20m = psta->htpriv.sgi_20m;
+ sgi_40m = psta->htpriv.sgi_40m;
+
-+ switch(psta->bw_mode){
++ switch (psta->bw_mode) {
+ case CHANNEL_WIDTH_80:
+ sgi = sgi_80m;
+ break;
@@ -38724,62 +31730,38 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+ return sgi;
+}
+
-+static void update_attrib_vcs_info(_adapter *padapter, struct xmit_frame *pxmitframe)
++static void update_attrib_vcs_info(struct adapter *padapter, struct xmit_frame *pxmitframe)
+{
-+ u32 sz;
++ u32 sz;
+ struct pkt_attrib *pattrib = &pxmitframe->attrib;
-+ //struct sta_info *psta = pattrib->psta;
-+ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
-+ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
-+
-+/*
-+ if(pattrib->psta)
-+ {
-+ psta = pattrib->psta;
-+ }
-+ else
-+ {
-+ DBG_871X("%s, call rtw_get_stainfo()\n", __func__);
-+ psta=rtw_get_stainfo(&padapter->stapriv ,&pattrib->ra[0] );
-+ }
-+
-+ if(psta==NULL)
-+ {
-+ DBG_871X("%s, psta==NUL\n", __func__);
-+ return;
-+ }
-+
-+ if(!(psta->state &_FW_LINKED))
-+ {
-+ DBG_871X("%s, psta->state(0x%x) != _FW_LINKED\n", __func__, psta->state);
-+ return;
-+ }
-+*/
++ /* struct sta_info *psta = pattrib->psta; */
++ struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
++ struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
+
+ if (pattrib->nr_frags != 1)
+ {
+ sz = padapter->xmitpriv.frag_len;
+ }
-+ else //no frag
++ else /* no frag */
+ {
+ sz = pattrib->last_txcmdsz;
+ }
+
-+ // (1) RTS_Threshold is compared to the MPDU, not MSDU.
-+ // (2) If there are more than one frag in this MSDU, only the first frag uses protection frame.
-+ // Other fragments are protected by previous fragment.
-+ // So we only need to check the length of first fragment.
-+ if(pmlmeext->cur_wireless_mode < WIRELESS_11_24N || padapter->registrypriv.wifi_spec)
++ /* (1) RTS_Threshold is compared to the MPDU, not MSDU. */
++ /* (2) If there are more than one frag in this MSDU, only the first frag uses protection frame. */
++ /* Other fragments are protected by previous fragment. */
++ /* So we only need to check the length of first fragment. */
++ if (pmlmeext->cur_wireless_mode < WIRELESS_11_24N || padapter->registrypriv.wifi_spec)
+ {
-+ if(sz > padapter->registrypriv.rts_thresh)
++ if (sz > padapter->registrypriv.rts_thresh)
+ {
+ pattrib->vcs_mode = RTS_CTS;
+ }
+ else
+ {
-+ if(pattrib->rtsen)
++ if (pattrib->rtsen)
+ pattrib->vcs_mode = RTS_CTS;
-+ else if(pattrib->cts2self)
++ else if (pattrib->cts2self)
+ pattrib->vcs_mode = CTS_TO_SELF;
+ else
+ pattrib->vcs_mode = NONE_VCS;
@@ -38789,49 +31771,49 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+ {
+ while (true)
+ {
-+ //IOT action
-+ if((pmlmeinfo->assoc_AP_vendor == HT_IOT_PEER_ATHEROS) && (pattrib->ampdu_en==true) &&
-+ (padapter->securitypriv.dot11PrivacyAlgrthm == _AES_ ))
++ /* IOT action */
++ if ((pmlmeinfo->assoc_AP_vendor == HT_IOT_PEER_ATHEROS) && (pattrib->ampdu_en ==true) &&
++ (padapter->securitypriv.dot11PrivacyAlgrthm == _AES_))
+ {
+ pattrib->vcs_mode = CTS_TO_SELF;
+ break;
-+ }
-+
++ }
+
-+ //check ERP protection
-+ if(pattrib->rtsen || pattrib->cts2self)
++
++ /* check ERP protection */
++ if (pattrib->rtsen || pattrib->cts2self)
+ {
-+ if(pattrib->rtsen)
++ if (pattrib->rtsen)
+ pattrib->vcs_mode = RTS_CTS;
-+ else if(pattrib->cts2self)
++ else if (pattrib->cts2self)
+ pattrib->vcs_mode = CTS_TO_SELF;
+
+ break;
+ }
+
-+ //check HT op mode
-+ if(pattrib->ht_en)
++ /* check HT op mode */
++ if (pattrib->ht_en)
+ {
+ u8 HTOpMode = pmlmeinfo->HT_protection;
-+ if((pmlmeext->cur_bwmode && (HTOpMode == 2 || HTOpMode == 3)) ||
-+ (!pmlmeext->cur_bwmode && HTOpMode == 3) )
++ if ((pmlmeext->cur_bwmode && (HTOpMode == 2 || HTOpMode == 3)) ||
++ (!pmlmeext->cur_bwmode && HTOpMode == 3))
+ {
+ pattrib->vcs_mode = RTS_CTS;
+ break;
+ }
+ }
+
-+ //check rts
-+ if(sz > padapter->registrypriv.rts_thresh)
++ /* check rts */
++ if (sz > padapter->registrypriv.rts_thresh)
+ {
+ pattrib->vcs_mode = RTS_CTS;
+ break;
+ }
+
-+ //to do list: check MIMO power save condition.
++ /* to do list: check MIMO power save condition. */
+
-+ //check AMPDU aggregation for TXOP
-+ if(pattrib->ampdu_en==true)
++ /* check AMPDU aggregation for TXOP */
++ if (pattrib->ampdu_en ==true)
+ {
+ pattrib->vcs_mode = RTS_CTS;
+ break;
@@ -38842,31 +31824,26 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+ }
+ }
+
-+ //for debug : force driver control vrtl_carrier_sense.
-+ if(padapter->driver_vcs_en==1)
-+ {
-+ //u8 driver_vcs_en; //Enable=1, Disable=0 driver control vrtl_carrier_sense.
-+ //u8 driver_vcs_type;//force 0:disable VCS, 1:RTS-CTS, 2:CTS-to-self when vcs_en=1.
++ /* for debug : force driver control vrtl_carrier_sense. */
++ if (padapter->driver_vcs_en == 1)
+ pattrib->vcs_mode = padapter->driver_vcs_type;
-+ }
-+
+}
+
-+static void update_attrib_phy_info(_adapter *padapter, struct pkt_attrib *pattrib, struct sta_info *psta)
++static void update_attrib_phy_info(struct adapter *padapter, struct pkt_attrib *pattrib, struct sta_info *psta)
+{
+ struct mlme_ext_priv *mlmeext = &padapter->mlmeextpriv;
+
+ pattrib->rtsen = psta->rtsen;
+ pattrib->cts2self = psta->cts2self;
-+
++
+ pattrib->mdata = 0;
+ pattrib->eosp = 0;
-+ pattrib->triggered=0;
++ pattrib->triggered = 0;
+ pattrib->ampdu_spacing = 0;
-+
-+ //qos_en, ht_en, init rate, ,bw, ch_offset, sgi
++
++ /* qos_en, ht_en, init rate, , bw, ch_offset, sgi */
+ pattrib->qos_en = psta->qos_option;
-+
++
+ pattrib->raid = psta->raid;
+
+ if (mlmeext->cur_bwmode < psta->bw_mode)
@@ -38883,49 +31860,49 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+ pattrib->ch_offset = psta->htpriv.ch_offset;
+ pattrib->ampdu_en = false;
+
-+ if(padapter->driver_ampdu_spacing != 0xFF) //driver control AMPDU Density for peer sta's rx
++ if (padapter->driver_ampdu_spacing != 0xFF) /* driver control AMPDU Density for peer sta's rx */
+ pattrib->ampdu_spacing = padapter->driver_ampdu_spacing;
+ else
+ pattrib->ampdu_spacing = psta->htpriv.rx_ampdu_min_spacing;
+
-+ //if(pattrib->ht_en && psta->htpriv.ampdu_enable)
-+ //{
-+ // if(psta->htpriv.agg_enable_bitmap & BIT(pattrib->priority))
-+ // pattrib->ampdu_en = true;
-+ //}
++ /* if (pattrib->ht_en && psta->htpriv.ampdu_enable) */
++ /* */
++ /* if (psta->htpriv.agg_enable_bitmap & BIT(pattrib->priority)) */
++ /* pattrib->ampdu_en = true; */
++ /* */
+
+
+ pattrib->retry_ctrl = false;
+
+#ifdef CONFIG_AUTO_AP_MODE
-+ if(psta->isrc && psta->pid>0)
++ if (psta->isrc && psta->pid>0)
+ pattrib->pctrl = true;
+#endif
+
+}
+
-+static s32 update_attrib_sec_info(_adapter *padapter, struct pkt_attrib *pattrib, struct sta_info *psta)
++static s32 update_attrib_sec_info(struct adapter *padapter, struct pkt_attrib *pattrib, struct sta_info *psta)
+{
+ sint res = _SUCCESS;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
+ struct security_priv *psecuritypriv = &padapter->securitypriv;
+ sint bmcast = IS_MCAST(pattrib->ra);
+
-+ memset(pattrib->dot118021x_UncstKey.skey, 0, 16);
++ memset(pattrib->dot118021x_UncstKey.skey, 0, 16);
+ memset(pattrib->dot11tkiptxmickey.skey, 0, 16);
+ pattrib->mac_id = psta->mac_id;
+
+ if (psta->ieee8021x_blocked == true)
+ {
-+ RT_TRACE(_module_rtl871x_xmit_c_,_drv_err_,("\n psta->ieee8021x_blocked == true \n"));
++ RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("\n psta->ieee8021x_blocked == true\n"));
+
+ pattrib->encrypt = 0;
+
-+ if((pattrib->ether_type != 0x888e) && (check_fwstate(pmlmepriv, WIFI_MP_STATE) == false))
++ if ((pattrib->ether_type != 0x888e) && (check_fwstate(pmlmepriv, WIFI_MP_STATE) == false))
+ {
-+ RT_TRACE(_module_rtl871x_xmit_c_,_drv_err_,("\npsta->ieee8021x_blocked == true, pattrib->ether_type(%.4x) != 0x888e\n",pattrib->ether_type));
++ RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("\npsta->ieee8021x_blocked == true, pattrib->ether_type(%.4x) != 0x888e\n", pattrib->ether_type));
+ #ifdef DBG_TX_DROP_FRAME
-+ DBG_871X("DBG_TX_DROP_FRAME %s psta->ieee8021x_blocked == true, pattrib->ether_type(%04x) != 0x888e\n", __FUNCTION__,pattrib->ether_type);
++ DBG_871X("DBG_TX_DROP_FRAME %s psta->ieee8021x_blocked == true, pattrib->ether_type(%04x) != 0x888e\n", __func__, pattrib->ether_type);
+ #endif
+ res = _FAIL;
+ goto exit;
@@ -38934,13 +31911,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+ else
+ {
+ GET_ENCRY_ALGO(psecuritypriv, psta, pattrib->encrypt, bmcast);
-+
-+#ifdef CONFIG_WAPI_SUPPORT
-+ if(pattrib->ether_type == 0x88B4)
-+ pattrib->encrypt=_NO_PRIVACY_;
-+#endif
+
-+ switch(psecuritypriv->dot11AuthAlgrthm)
++ switch (psecuritypriv->dot11AuthAlgrthm)
+ {
+ case dot11AuthAlgrthm_Open:
+ case dot11AuthAlgrthm_Shared:
@@ -38948,7 +31920,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+ pattrib->key_idx = (u8)psecuritypriv->dot11PrivacyKeyIndex;
+ break;
+ case dot11AuthAlgrthm_8021X:
-+ if(bmcast)
++ if (bmcast)
+ pattrib->key_idx = (u8)psecuritypriv->dot118021XGrpKeyid;
+ else
+ pattrib->key_idx = 0;
@@ -38958,12 +31930,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+ break;
+ }
+
-+ //For WPS 1.0 WEP, driver should not encrypt EAPOL Packet for WPS handshake.
-+ if (((pattrib->encrypt ==_WEP40_)||(pattrib->encrypt ==_WEP104_)) && (pattrib->ether_type == 0x888e))
-+ pattrib->encrypt=_NO_PRIVACY_;
-+
++ /* For WPS 1.0 WEP, driver should not encrypt EAPOL Packet for WPS handshake. */
++ if (((pattrib->encrypt == _WEP40_)||(pattrib->encrypt == _WEP104_)) && (pattrib->ether_type == 0x888e))
++ pattrib->encrypt = _NO_PRIVACY_;
++
+ }
-+
++
+ switch (pattrib->encrypt)
+ {
+ case _WEP40_:
@@ -38977,89 +31949,77 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+ pattrib->iv_len = 8;
+ pattrib->icv_len = 4;
+
-+ if(psecuritypriv->busetkipkey==_FAIL)
-+ {
++ if (psecuritypriv->busetkipkey == _FAIL)
++ {
+ #ifdef DBG_TX_DROP_FRAME
-+ DBG_871X("DBG_TX_DROP_FRAME %s psecuritypriv->busetkipkey(%d)==_FAIL drop packet\n", __FUNCTION__, psecuritypriv->busetkipkey);
++ DBG_871X("DBG_TX_DROP_FRAME %s psecuritypriv->busetkipkey(%d) == _FAIL drop packet\n", __func__, psecuritypriv->busetkipkey);
+ #endif
-+ res =_FAIL;
++ res = _FAIL;
+ goto exit;
+ }
+
-+ if(bmcast)
++ if (bmcast)
+ TKIP_IV(pattrib->iv, psta->dot11txpn, pattrib->key_idx);
+ else
+ TKIP_IV(pattrib->iv, psta->dot11txpn, 0);
+
+
+ memcpy(pattrib->dot11tkiptxmickey.skey, psta->dot11tkiptxmickey.skey, 16);
-+
++
+ break;
-+
++
+ case _AES_:
-+
++
+ pattrib->iv_len = 8;
+ pattrib->icv_len = 8;
-+
-+ if(bmcast)
++
++ if (bmcast)
+ AES_IV(pattrib->iv, psta->dot11txpn, pattrib->key_idx);
+ else
+ AES_IV(pattrib->iv, psta->dot11txpn, 0);
-+
++
+ break;
+
-+#ifdef CONFIG_WAPI_SUPPORT
-+ case _SMS4_:
-+ pattrib->iv_len = 18;
-+ pattrib->icv_len = 16;
-+ rtw_wapi_get_iv(padapter,pattrib->ra,pattrib->iv);
-+ break;
-+#endif
+ default:
+ pattrib->iv_len = 0;
+ pattrib->icv_len = 0;
+ break;
+ }
+
-+ if(pattrib->encrypt>0)
-+ memcpy(pattrib->dot118021x_UncstKey.skey, psta->dot118021x_UncstKey.skey, 16);
++ if (pattrib->encrypt>0)
++ memcpy(pattrib->dot118021x_UncstKey.skey, psta->dot118021x_UncstKey.skey, 16);
+
+ RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_,
-+ ("update_attrib: encrypt=%d securitypriv.sw_encrypt=%d\n",
++ ("update_attrib: encrypt =%d securitypriv.sw_encrypt =%d\n",
+ pattrib->encrypt, padapter->securitypriv.sw_encrypt));
+
+ if (pattrib->encrypt &&
+ ((padapter->securitypriv.sw_encrypt == true) || (psecuritypriv->hw_decrypted == false)))
+ {
+ pattrib->bswenc = true;
-+ RT_TRACE(_module_rtl871x_xmit_c_,_drv_err_,
-+ ("update_attrib: encrypt=%d securitypriv.hw_decrypted=%d bswenc=true\n",
++ RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_,
++ ("update_attrib: encrypt =%d securitypriv.hw_decrypted =%d bswenc =true\n",
+ pattrib->encrypt, padapter->securitypriv.sw_encrypt));
+ } else {
+ pattrib->bswenc = false;
-+ RT_TRACE(_module_rtl871x_xmit_c_,_drv_info_,("update_attrib: bswenc=false\n"));
++ RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("update_attrib: bswenc =false\n"));
+ }
+
-+#ifdef CONFIG_WAPI_SUPPORT
-+ if(pattrib->encrypt == _SMS4_)
-+ pattrib->bswenc = false;
-+#endif
-+
+exit:
+
+ return res;
-+
++
+}
+
-+u8 qos_acm(u8 acm_mask, u8 priority)
++u8 qos_acm(u8 acm_mask, u8 priority)
+{
-+ u8 change_priority = priority;
++ u8 change_priority = priority;
+
+ switch (priority)
+ {
+ case 0:
+ case 3:
-+ if(acm_mask & BIT(1))
++ if (acm_mask & BIT(1))
+ change_priority = 1;
+ break;
+ case 1:
@@ -39067,12 +32027,12 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+ break;
+ case 4:
+ case 5:
-+ if(acm_mask & BIT(2))
++ if (acm_mask & BIT(2))
+ change_priority = 0;
+ break;
+ case 6:
+ case 7:
-+ if(acm_mask & BIT(3))
++ if (acm_mask & BIT(3))
+ change_priority = 5;
+ break;
+ default:
@@ -39093,25 +32053,18 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+ _rtw_open_pktfile(ppktfile->pkt, ppktfile);
+ _rtw_pktfile_read(ppktfile, (unsigned char*)ðerhdr, ETH_HLEN);
+
-+ // get UserPriority from IP hdr
++ /* get UserPriority from IP hdr */
+ if (pattrib->ether_type == 0x0800) {
-+ _rtw_pktfile_read(ppktfile, (u8*)&ip_hdr, sizeof(ip_hdr));
-+// UserPriority = (ntohs(ip_hdr.tos) >> 5) & 0x3;
++ _rtw_pktfile_read(ppktfile, (u8 *)&ip_hdr, sizeof(ip_hdr));
++/* UserPriority = (ntohs(ip_hdr.tos) >> 5) & 0x3; */
+ UserPriority = ip_hdr.tos >> 5;
+ }
-+/*
-+ else if (pattrib->ether_type == 0x888e) {
-+ // "When priority processing of data frames is supported,
-+ // a STA's SME should send EAPOL-Key frames at the highest priority."
-+ UserPriority = 7;
-+ }
-+*/
+ pattrib->priority = UserPriority;
+ pattrib->hdrlen = WLAN_HDR_A3_QOS_LEN;
+ pattrib->subtype = WIFI_QOS_DATA_TYPE;
+}
+
-+static s32 update_attrib(_adapter *padapter, _pkt *pkt, struct pkt_attrib *pattrib)
++static s32 update_attrib(struct adapter *padapter, _pkt *pkt, struct pkt_attrib *pattrib)
+{
+ uint i;
+ struct pkt_file pktfile;
@@ -39119,18 +32072,15 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+ struct ethhdr etherhdr;
+
+ sint bmcast;
-+ struct sta_priv *pstapriv = &padapter->stapriv;
-+ struct security_priv *psecuritypriv = &padapter->securitypriv;
-+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
-+ struct qos_priv *pqospriv= &pmlmepriv->qospriv;
++ struct sta_priv *pstapriv = &padapter->stapriv;
++ struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
++ struct qos_priv *pqospriv = &pmlmepriv->qospriv;
+ sint res = _SUCCESS;
+
-+ _func_enter_;
-+
+ DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib);
+
+ _rtw_open_pktfile(pkt, &pktfile);
-+ i = _rtw_pktfile_read(&pktfile, (u8*)ðerhdr, ETH_HLEN);
++ i = _rtw_pktfile_read(&pktfile, (u8 *)ðerhdr, ETH_HLEN);
+
+ pattrib->ether_type = ntohs(etherhdr.h_proto);
+
@@ -39154,7 +32104,7 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+ memcpy(pattrib->ra, pattrib->dst, ETH_ALEN);
+ memcpy(pattrib->ta, get_bssid(pmlmepriv), ETH_ALEN);
+ DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_ap);
-+ }
++ }
+ else
+ DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_unknown);
+
@@ -39162,109 +32112,96 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+
+ if (ETH_P_IP == pattrib->ether_type)
+ {
-+ // The following is for DHCP and ARP packet, we use cck1M to tx these packets and let LPS awake some time
-+ // to prevent DHCP protocol fail
++ /* The following is for DHCP and ARP packet, we use cck1M to tx these packets and let LPS awake some time */
++ /* to prevent DHCP protocol fail */
+
+ u8 tmp[24];
-+
++
+ _rtw_pktfile_read(&pktfile, &tmp[0], 24);
+
+ pattrib->dhcp_pkt = 0;
-+ if (pktfile.pkt_len > 282) {//MINIMUM_DHCP_PACKET_SIZE) {
-+ if (ETH_P_IP == pattrib->ether_type) {// IP header
++ if (pktfile.pkt_len > 282) {/* MINIMUM_DHCP_PACKET_SIZE) { */
++ if (ETH_P_IP == pattrib->ether_type) {/* IP header */
+ if (((tmp[21] == 68) && (tmp[23] == 67)) ||
+ ((tmp[21] == 67) && (tmp[23] == 68))) {
-+ // 68 : UDP BOOTP client
-+ // 67 : UDP BOOTP server
-+ RT_TRACE(_module_rtl871x_xmit_c_,_drv_err_,("======================update_attrib: get DHCP Packet \n"));
-+ // Use low rate to send DHCP packet.
-+ //if(pMgntInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom)
-+ //{
-+ // tcb_desc->DataRate = MgntQuery_TxRateExcludeCCKRates(ieee);//0xc;//ofdm 6m
-+ // tcb_desc->bTxDisableRateFallBack = false;
-+ //}
-+ //else
-+ // pTcb->DataRate = Adapter->MgntInfo.LowestBasicRate;
-+ //RTPRINT(FDM, WA_IOT, ("DHCP TranslateHeader(), pTcb->DataRate = 0x%x\n", pTcb->DataRate));
++ /* 68 : UDP BOOTP client */
++ /* 67 : UDP BOOTP server */
++ RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("======================update_attrib: get DHCP Packet\n"));
+ pattrib->dhcp_pkt = 1;
+ DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_dhcp);
+ }
+ }
+ }
+
-+ //for parsing ICMP pakcets
++ /* for parsing ICMP pakcets */
+ {
+ struct iphdr *piphdr = (struct iphdr *)tmp;
+
-+ pattrib->icmp_pkt = 0;
-+ if(piphdr->protocol == 0x1) // protocol type in ip header 0x1 is ICMP
++ pattrib->icmp_pkt = 0;
++ if (piphdr->protocol == 0x1) /* protocol type in ip header 0x1 is ICMP */
+ {
+ pattrib->icmp_pkt = 1;
+ DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_icmp);
+ }
-+ }
++ }
++
+
-+
+ } else if (0x888e == pattrib->ether_type) {
+ DBG_871X_LEVEL(_drv_always_, "send eapol packet\n");
+ }
+
-+ if ( (pattrib->ether_type == 0x888e) || (pattrib->dhcp_pkt == 1) )
++ if ((pattrib->ether_type == 0x888e) || (pattrib->dhcp_pkt == 1))
+ {
+ rtw_set_scan_deny(padapter, 3000);
+ }
+
-+ // If EAPOL , ARP , OR DHCP packet, driver must be in active mode.
-+#ifdef CONFIG_WAPI_SUPPORT
-+ if ( (pattrib->ether_type == 0x88B4) || (pattrib->ether_type == 0x0806) || (pattrib->ether_type == 0x888e) || (pattrib->dhcp_pkt == 1) )
-+#else //!CONFIG_WAPI_SUPPORT
-+ if (pattrib->icmp_pkt==1)
++ /* If EAPOL , ARP , OR DHCP packet, driver must be in active mode. */
++ if (pattrib->icmp_pkt == 1)
+ {
+ rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_LEAVE, 1);
+ }
-+ else if(pattrib->dhcp_pkt==1)
-+#endif
++ else if (pattrib->dhcp_pkt == 1)
+ {
+ DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_active);
+ rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_SPECIAL_PACKET, 1);
+ }
+
+ bmcast = IS_MCAST(pattrib->ra);
-+
-+ // get sta_info
++
++ /* get sta_info */
+ if (bmcast) {
+ psta = rtw_get_bcmc_stainfo(padapter);
+ } else {
+ psta = rtw_get_stainfo(pstapriv, pattrib->ra);
-+ if (psta == NULL) { // if we cannot get psta => drop the pkt
++ if (psta == NULL) { /* if we cannot get psta => drop the pkt */
+ DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_err_ucast_sta);
+ RT_TRACE(_module_rtl871x_xmit_c_, _drv_alert_, ("\nupdate_attrib => get sta_info fail, ra:" MAC_FMT"\n", MAC_ARG(pattrib->ra)));
+ #ifdef DBG_TX_DROP_FRAME
-+ DBG_871X("DBG_TX_DROP_FRAME %s get sta_info fail, ra:" MAC_FMT"\n", __FUNCTION__, MAC_ARG(pattrib->ra));
++ DBG_871X("DBG_TX_DROP_FRAME %s get sta_info fail, ra:" MAC_FMT"\n", __func__, MAC_ARG(pattrib->ra));
+ #endif
-+ res =_FAIL;
++ res = _FAIL;
+ goto exit;
+ }
-+ else if((check_fwstate(pmlmepriv, WIFI_AP_STATE)==true)&&(!(psta->state & _FW_LINKED)))
++ else if ((check_fwstate(pmlmepriv, WIFI_AP_STATE) ==true) && (!(psta->state & _FW_LINKED)))
+ {
+ DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_err_ucast_ap_link);
-+ res =_FAIL;
++ res = _FAIL;
+ goto exit;
+ }
+ }
+
-+ if(psta == NULL)
-+ { // if we cannot get psta => drop the pkt
++ if (psta == NULL)
++ { /* if we cannot get psta => drop the pkt */
+ DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_err_sta);
+ RT_TRACE(_module_rtl871x_xmit_c_, _drv_alert_, ("\nupdate_attrib => get sta_info fail, ra:" MAC_FMT "\n", MAC_ARG(pattrib->ra)));
+ #ifdef DBG_TX_DROP_FRAME
-+ DBG_871X("DBG_TX_DROP_FRAME %s get sta_info fail, ra:" MAC_FMT"\n", __FUNCTION__, MAC_ARG(pattrib->ra));
++ DBG_871X("DBG_TX_DROP_FRAME %s get sta_info fail, ra:" MAC_FMT"\n", __func__, MAC_ARG(pattrib->ra));
+ #endif
+ res = _FAIL;
+ goto exit;
+ }
+
-+ if(!(psta->state &_FW_LINKED))
++ if (!(psta->state &_FW_LINKED))
+ {
+ DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_err_link);
+ DBG_871X("%s, psta("MAC_FMT")->state(0x%x) != _FW_LINKED\n", __func__, MAC_ARG(psta->hwaddr), psta->state);
@@ -39273,8 +32210,8 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+
+
+
-+ //TODO:_lock
-+ if(update_attrib_sec_info(padapter, pattrib, psta) == _FAIL)
++ /* TODO:_lock */
++ if (update_attrib_sec_info(padapter, pattrib, psta) == _FAIL)
+ {
+ DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_err_sec);
+ res = _FAIL;
@@ -39283,208 +32220,197 @@ diff -Nurp linux.old/3rdparty/rtl8723bs/core/rtw_xmit.c linux/3rdparty/rtl8723bs
+
+ update_attrib_phy_info(padapter, pattrib, psta);
+
-+ //DBG_8192C("%s ==> mac_id(%d)\n",__FUNCTION__,pattrib->mac_id );
-+
++ /* DBG_8192C("%s ==> mac_id(%d)\n", __func__, pattrib->mac_id); */
++
+ pattrib->psta = psta;
-+ //TODO:_unlock
-+
-+ pattrib->pctrl = 0;
-+
++ /* TODO:_unlock */
++
++ pattrib->pctrl = 0;
++
+ pattrib->ack_policy = 0;
-+ // get ether_hdr_len
-+ pattrib->pkt_hdrlen = ETH_HLEN;//(pattrib->ether_type == 0x8100) ? (14 + 4 ): 14; //vlan tag
++ /* get ether_hdr_len */
++ pattrib->pkt_hdrlen = ETH_HLEN;/* pattrib->ether_type == 0x8100) ? (14 + 4): 14; vlan tag */
+
+ pattrib->hdrlen = WLAN_HDR_A3_LEN;
-+ pattrib->subtype = WIFI_DATA_TYPE;
++ pattrib->subtype = WIFI_DATA_TYPE;
+ pattrib->priority = 0;
-+
++
+ if (check_fwstate(pmlmepriv, WIFI_AP_STATE|WIFI_ADHOC_STATE|WIFI_ADHOC_MASTER_STATE))
+ {
-+ if(pattrib->qos_en)
++ if (pattrib->qos_en)
+ set_qos(&pktfile, pattrib);
+ }
+ else
+ {
-+ if(pqospriv->qos_option)
++ if (pqospriv->qos_option)
+ {
+ set_qos(&pktfile, pattrib);
+
-+ if(pmlmepriv->acm_mask != 0)
++ if (pmlmepriv->acm_mask != 0)
+ {
+ pattrib->priority = qos_acm(pmlmepriv->acm_mask, pattrib->priority);
+ }
+ }
+ }
+
-+ //pattrib->priority = 5; //force to used VI queue, for testing
++ /* pattrib->priority = 5; force to used VI queue, for testing */
+
+ rtw_set_tx_chksum_offload(pkt, pattrib);
+
+exit:
-+
-+_func_exit_;
-+
+ return res;
+}
+
-+static s32 xmitframe_addmic(_adapter *padapter, struct xmit_frame *pxmitframe){
-+ sint curfragnum,length;
-+ u8 *pframe, *payload,mic[8];
++static s32 xmitframe_addmic(struct adapter *padapter, struct xmit_frame *pxmitframe) {
++ sint curfragnum, length;
++ u8 *pframe, *payload, mic[8];
+ struct mic_data micdata;
-+ //struct sta_info *stainfo;
-+ struct qos_priv *pqospriv= &(padapter->mlmepriv.qospriv);
++ /* struct sta_info *stainfo; */
+ struct pkt_attrib *pattrib = &pxmitframe->attrib;
-+ struct security_priv *psecuritypriv=&padapter->securitypriv;
-+ struct xmit_priv *pxmitpriv=&padapter->xmitpriv;
-+ u8 priority[4]={0x0,0x0,0x0,0x0};
++ struct security_priv *psecuritypriv =&padapter->securitypriv;
++ struct xmit_priv *pxmitpriv =&padapter->xmitpriv;
++ u8 priority[4]={0x0, 0x0, 0x0, 0x0};
+ u8 hw_hdr_offset = 0;
+ sint bmcst = IS_MCAST(pattrib->ra);
+
+/*
-+ if(pattrib->psta)
++ if (pattrib->psta)
+ {
+ stainfo = pattrib->psta;
+ }
+ else
+ {
+ DBG_871X("%s, call rtw_get_stainfo()\n", __func__);
-+ stainfo=rtw_get_stainfo(&padapter->stapriv ,&pattrib->ra[0]);
-+ }
-+
-+ if(stainfo==NULL)
++ stainfo =rtw_get_stainfo(&padapter->stapriv ,&pattrib->ra[0]);
++ }
++
++ if (stainfo == NULL)
+ {
-+ DBG_871X("%s, psta==NUL\n", __func__);
++ DBG_871X("%s, psta ==NUL\n", __func__);
+ return _FAIL;
+ }
+
-+ if(!(stainfo->state &_FW_LINKED))
++ if (!(stainfo->state &_FW_LINKED))
+ {
+ DBG_871X("%s, psta->state(0x%x) != _FW_LINKED\n", __func__, stainfo->state);
+ return _FAIL;
+ }
+*/
+
-+_func_enter_;
-+
+ hw_hdr_offset = TXDESC_OFFSET;
-+
-+ if(pattrib->encrypt ==_TKIP_)//if(psecuritypriv->dot11PrivacyAlgrthm==_TKIP_PRIVACY_)
++
++ if (pattrib->encrypt == _TKIP_)/* if (psecuritypriv->dot11PrivacyAlgrthm == _TKIP_PRIVACY_) */
+ {
-+ //encode mic code
-+ //if(stainfo!= NULL)
++ /* encode mic code */
++ /* if (stainfo!= NULL) */
+ {
-+ u8 null_key[16]={0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0};
++ u8 null_key[16]={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
+
+ pframe = pxmitframe->buf_addr + hw_hdr_offset;
-+
-+ if(bmcst)
++
++ if (bmcst)
+ {
-+ if(!memcmp(psecuritypriv->dot118021XGrptxmickey[psecuritypriv->dot118021XGrpKeyid].skey, null_key, 16)){
-+ //DbgPrint("\nxmitframe_addmic:stainfo->dot11tkiptxmickey==0\n");
-+ //msleep(10);
++ if (!memcmp(psecuritypriv->dot118021XGrptxmickey[psecuritypriv->dot118021XGrpKeyid].skey, null_key, 16)) {
++ /* DbgPrint("\nxmitframe_addmic:stainfo->dot11tkiptxmickey == 0\n"); */
++ /* msleep(10); */
+ return _FAIL;
-+ }
-+ //start to calculate the mic code
++ }
++ /* start to calculate the mic code */
+ rtw_secmicsetkey(&micdata, psecuritypriv->dot118021XGrptxmickey[psecuritypriv->dot118021XGrpKeyid].skey);
+ }
+ else
+ {
-+ if(!memcmp(&pattrib->dot11tkiptxmickey.skey[0],null_key, 16)){
-+ //DbgPrint("\nxmitframe_addmic:stainfo->dot11tkiptxmickey==0\n");
-+ //msleep(10);
++ if (!memcmp(&pattrib->dot11tkiptxmickey.skey[0], null_key, 16)) {
++ /* DbgPrint("\nxmitframe_addmic:stainfo->dot11tkiptxmickey == 0\n"); */
++ /* msleep(10); */
+ return _FAIL;
+ }
-+ //start to calculate the mic code
++ /* start to calculate the mic code */
+ rtw_secmicsetkey(&micdata, &pattrib->dot11tkiptxmickey.skey[0]);
+ }
-+
-+ if(pframe[1]&1){ //ToDS==1
-+ rtw_secmicappend(&micdata, &pframe[16], 6); //DA
-+ if(pframe[1]&2) //From Ds==1
++
++ if (pframe[1]&1) { /* ToDS == 1 */
++ rtw_secmicappend(&micdata, &pframe[16], 6); /* DA */
++ if (pframe[1]&2) /* From Ds == 1 */
+ rtw_secmicappend(&micdata, &pframe[24], 6);
+ else
-+ rtw_secmicappend(&micdata, &pframe[10], 6);
-+ }
-+ else{ //ToDS==0
-+ rtw_secmicappend(&micdata, &pframe[4], 6); //DA
-+ if(pframe[1]&2) //From Ds==1
++ rtw_secmicappend(&micdata, &pframe[10], 6);
++ }
++ else { /* ToDS == 0 */
++ rtw_secmicappend(&micdata, &pframe[4], 6); /* DA */
++ if (pframe[1]&2) /* From Ds == 1 */
+ rtw_secmicappend(&micdata, &pframe[16], 6);
+ else
+ rtw_secmicappend(&micdata, &pframe[10], 6);
+
+ }
+
-+ //if(pqospriv->qos_option==1)
-+ if(pattrib->qos_en)
++ /* if (pqospriv->qos_option == 1) */
++ if (pattrib->qos_en)
+ priority[0]=(u8)pxmitframe->attrib.priority;
+
-+
-+ rtw_secmicappend(&micdata, &priority[0], 4);
-+
-+ payload=pframe;
+
-+ for(curfragnum=0;curfragnumnr_frags;curfragnum++){
-+ payload=(u8 *)RND4((SIZE_PTR)(payload));
-+ RT_TRACE(_module_rtl871x_xmit_c_,_drv_err_,("===curfragnum=%d, pframe= 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x,!!!\n",
++ rtw_secmicappend(&micdata, &priority[0], 4);
++
++ payload =pframe;
++
++ for (curfragnum = 0;curfragnumnr_frags;curfragnum++) {
++ payload =(u8 *)RND4((SIZE_PTR)(payload));
++ RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("===curfragnum =%d, pframe = 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x,!!!\n",
+ curfragnum,*payload, *(payload+1),*(payload+2),*(payload+3),*(payload+4),*(payload+5),*(payload+6),*(payload+7)));
+
-+ payload=payload+pattrib->hdrlen+pattrib->iv_len;
-+ RT_TRACE(_module_rtl871x_xmit_c_,_drv_err_,("curfragnum=%d pattrib->hdrlen=%d pattrib->iv_len=%d",curfragnum,pattrib->hdrlen,pattrib->iv_len));
-+ if((curfragnum+1)==pattrib->nr_frags){
-+ length=pattrib->last_txcmdsz-pattrib->hdrlen-pattrib->iv_len-( (pattrib->bswenc) ? pattrib->icv_len : 0);
-+ rtw_secmicappend(&micdata, payload,length);
-+ payload=payload+length;
-+ }
-+ else{
-+ length=pxmitpriv->frag_len-pattrib->hdrlen-pattrib->iv_len-( (pattrib->bswenc) ? pattrib->icv_len : 0);
++ payload =payload+pattrib->hdrlen+pattrib->iv_len;
++ RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("curfragnum =%d pattrib->hdrlen =%d pattrib->iv_len =%d", curfragnum, pattrib->hdrlen, pattrib->iv_len));
++ if ((curfragnum+1) ==pattrib->nr_frags) {
++ length =pattrib->last_txcmdsz-pattrib->hdrlen-pattrib->iv_len-((pattrib->bswenc) ? pattrib->icv_len : 0);
+ rtw_secmicappend(&micdata, payload, length);
-+ payload=payload+length+pattrib->icv_len;
-+ RT_TRACE(_module_rtl871x_xmit_c_,_drv_err_,("curfragnum=%d length=%d pattrib->icv_len=%d",curfragnum,length,pattrib->icv_len));
++ payload =payload+length;
++ }
++ else {
++ length =pxmitpriv->frag_len-pattrib->hdrlen-pattrib->iv_len-((pattrib->bswenc) ? pattrib->icv_len : 0);
++ rtw_secmicappend(&micdata, payload, length);
++ payload =payload+length+pattrib->icv_len;
++ RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("curfragnum =%d length =%d pattrib->icv_len =%d", curfragnum, length, pattrib->icv_len));
+ }
+ }
+ rtw_secgetmic(&micdata,&(mic[0]));
-+ RT_TRACE(_module_rtl871x_xmit_c_,_drv_err_,("xmitframe_addmic: before add mic code!!!\n"));
-+ RT_TRACE(_module_rtl871x_xmit_c_,_drv_err_,("xmitframe_addmic: pattrib->last_txcmdsz=%d!!!\n",pattrib->last_txcmdsz));
-+ RT_TRACE(_module_rtl871x_xmit_c_,_drv_err_,("xmitframe_addmic: mic[0]=0x%.2x ,mic[1]=0x%.2x ,mic[2]=0x%.2x ,mic[3]=0x%.2x \n\
-+ mic[4]=0x%.2x ,mic[5]=0x%.2x ,mic[6]=0x%.2x ,mic[7]=0x%.2x !!!!\n",
-+ mic[0],mic[1],mic[2],mic[3],mic[4],mic[5],mic[6],mic[7]));
-+ //add mic code and add the mic code length in last_txcmdsz
++ RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("xmitframe_addmic: before add mic code!!!\n"));
++ RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("xmitframe_addmic: pattrib->last_txcmdsz =%d!!!\n", pattrib->last_txcmdsz));
++ RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("xmitframe_addmic: mic[0]= 0x%.2x , mic[1]= 0x%.2x , mic[2]= 0x%.2x , mic[3]= 0x%.2x\n\
++ mic[4]= 0x%.2x , mic[5]= 0x%.2x , mic[6]= 0x%.2x , mic[7]= 0x%.2x !!!!\n",
++ mic[0], mic[1], mic[2], mic[3], mic[4], mic[5], mic[6], mic[7]));
++ /* add mic code and add the mic code length in last_txcmdsz */
+
-+ memcpy(payload, &(mic[0]),8);
++ memcpy(payload, &(mic[0]), 8);
+ pattrib->last_txcmdsz+=8;
-+
-+ RT_TRACE(_module_rtl871x_xmit_c_,_drv_info_,("\n ========last pkt========\n"));
-+ payload=payload-pattrib->last_txcmdsz+8;
-+ for(curfragnum=0;curfragnumlast_txcmdsz;curfragnum=curfragnum+8)
-+ RT_TRACE(_module_rtl871x_xmit_c_,_drv_info_,(" %.2x, %.2x, %.2x, %.2x, %.2x, %.2x, %.2x, %.2x ",
++
++ RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("\n ========last pkt ========\n"));
++ payload =payload-pattrib->last_txcmdsz+8;
++ for (curfragnum = 0;curfragnum