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;i