add wifi uwe driver firmware and kernel support(KMETA)

This commit is contained in:
ludiazv 2024-04-25 23:34:20 +02:00
parent 10173513ea
commit 96453886e2
20 changed files with 445415 additions and 2 deletions

View File

@ -0,0 +1,25 @@
From e5017f74e32f644f9c707f788b2aaf47a98b820c Mon Sep 17 00:00:00 2001
From: OpenEmbedded <oe.patch@oe>
Date: Wed, 6 Dec 2023 00:38:22 +0100
Subject: [PATCH 2/2] add uwe5622 to wireless makefile
---
drivers/net/wireless/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
index a61cf6c90..455cf9296 100644
--- a/drivers/net/wireless/Makefile
+++ b/drivers/net/wireless/Makefile
@@ -2,7 +2,7 @@
#
# Makefile for the Linux Wireless network device drivers.
#
-
+obj-$(CONFIG_SPARD_WLAN_SUPPORT) += uwe5622/
obj-$(CONFIG_WLAN_VENDOR_ADMTEK) += admtek/
obj-$(CONFIG_WLAN_VENDOR_ATH) += ath/
obj-$(CONFIG_WLAN_VENDOR_ATMEL) += atmel/
--
2.43.0

View File

@ -0,0 +1,26 @@
#!/bin/bash
PREFIX_MISC="https://raw.githubusercontent.com/armbian/build/main/patch/misc/"
PREFIX_RK="https://raw.githubusercontent.com/armbian/build/main/patch/kernel/archive/rockchip64-6.6/"
if [ $# -lt 1 ] ; then
echo "usage $0 <scc file>"
exit 1
fi
while read e ; do
f=$(echo $e | cut -f 2 -d ' ')
url="${PREFIX_RK}${f}"
if echo $f | grep 'wireless-' >/dev/null ; then
url="${PREFIX_MISC}${f}"
fi
echo "Downloading $f [$url] ..."
wget "${url}" -O "./$f"
done < <(cat $1 | grep -v ^# | grep '^patch')

View File

@ -0,0 +1,50 @@
From 3c57b45edef027fe994cd469185f10a04f12dcd7 Mon Sep 17 00:00:00 2001
From: OpenEmbedded <oe.patch@oe>
Date: Sat, 25 Nov 2023 14:39:37 +0000
Subject: [PATCH] fix makefiles for yocto build
---
drivers/net/wireless/uwe5622/Makefile | 2 +-
drivers/net/wireless/uwe5622/unisocwcn/Makefile | 9 +++++----
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/net/wireless/uwe5622/Makefile b/drivers/net/wireless/uwe5622/Makefile
index d2210439f3cc..09e06defdfcf 100644
--- a/drivers/net/wireless/uwe5622/Makefile
+++ b/drivers/net/wireless/uwe5622/Makefile
@@ -2,7 +2,7 @@ obj-$(CONFIG_RK_WIFI_DEVICE_UWE5622) += unisocwcn/
obj-$(CONFIG_WLAN_UWE5622) += unisocwifi/
obj-$(CONFIG_TTY_OVERY_SDIO) += tty-sdio/
-UNISOCWCN_DIR := $(shell cd $(src)/unisocwcn/ && /bin/pwd)
+UNISOCWCN_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))unisocwcn
UNISOC_BSP_INCLUDE := $(UNISOCWCN_DIR)/include
export UNISOC_BSP_INCLUDE
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/Makefile b/drivers/net/wireless/uwe5622/unisocwcn/Makefile
index 939acb5c9274..a582426995ed 100755
--- a/drivers/net/wireless/uwe5622/unisocwcn/Makefile
+++ b/drivers/net/wireless/uwe5622/unisocwcn/Makefile
@@ -129,9 +129,10 @@ ccflags-y += -DCONFIG_WCN_BOOT
ccflags-y += -DCONFIG_WCN_UTILS
#### include path ######
-ccflags-y += -I$(src)/include/
-ccflags-y += -I$(src)/platform/
-ccflags-y += -I$(src)/platform/rf/
+local_src__ := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
+ccflags-y += -I$(local_src__)include/
+ccflags-y += -I$(local_src__)platform/
+ccflags-y += -I$(local_src__)platform/rf/
#### add cflag for Customer ######
### ---------- Hisilicon start ---------- ###
@@ -405,7 +406,7 @@ KDIR ?= $(ANDROID_PRODUCT_OUT)/obj/KERNEL_OBJ
ARCH ?= arm
CROSS_COMPILE ?= arm-histbv310-linux-
-EXTRA_CFLAGS += -I$(src)/include -D__linux__
+EXTRA_CFLAGS += -I$(local_src__)include -D__linux__
all: $(all_dependencies)

View File

@ -0,0 +1,10 @@
# Kmeta for uwe5622
# for 6.1 kernel
# source: armbian misc drivers
patch wireless-driver-for-uwe5622-allwinner.patch
patch wireless-driver-for-uwe5622-allwinner-bugfix.patch
include uwe5622-common.scc

View File

@ -0,0 +1,11 @@
# Kmeta for uwe5622
# patches for 6.5 & 6.6
patch wireless-driver-for-uwe5622-allwinner-v6.3.patch
patch wireless-driver-for-uwe5622-allwinner-bugfix-v6.3.patch
patch wireless-driver-for-uwe5622-allwinner-v6.3-compilation-fix.patch
patch wireless-driver-for-uwe5622-v6.4-post.patch
include uwe5622-common.scc

View File

@ -0,0 +1,6 @@
# Kmeta for uwe5622
# for kernel 6.6
include uwe5622-6_5.scc
patch wireless-driver-for-uwe5622-v6.6-fix-tty-sdio.patch

View File

@ -0,0 +1,17 @@
# Kmeta for uwe5622
# common patches for kernel versions 6.1, 6.5 & 6.6
# source: armbian misc drivers
# common patches to be appliend after specific ones
patch wireless-driver-for-uwe5622-warnings.patch
patch wireless-driver-for-uwe5622-park-link-v6.1-post.patch
patch wireless-driver-for-uwe5622-v6.1.patch
patch wireless-driver-for-uwe5622-fix-setting-mac-address-for-netdev.patch
# Custom: Add driver to makefile and patch Makefiles to make it work with yocto.
patch add-uwe5622-to-wireless-makefile.patch
patch fix-makefiles-for-yocto-build.patch
kconf harware uwe5622-fragment.cfg

View File

@ -0,0 +1,9 @@
CONFIG_SPARD_WLAN_SUPPORT=y
CONFIG_WCN_BSP_DRIVER_BUILDIN=y
CONFIG_WLAN_UWE5621=m
CONFIG_WLAN_UWE5622=m
CONFIG_SPRDWL_NG=m
CONFIG_UNISOC_WIFI_PS=y
CONFIG_TTY_OVERY_SDIO=m
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_LIB_SHA256=y

View File

@ -0,0 +1,47 @@
From 9a649d7ad384907ba8f62ba50a6fd7e524d8ce25 Mon Sep 17 00:00:00 2001
From: root <Gunjan Gupta>
Date: Sun, 17 Sep 2023 20:45:44 +0000
Subject: [PATCH] drivers: uwe5622: fix compilation on 6.3+ kernels
---
.../wireless/uwe5622/unisocwcn/platform/wcn_boot.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_boot.c b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_boot.c
index 220bac67ddd0..b243b39c2133 100644
--- a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_boot.c
+++ b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_boot.c
@@ -1371,15 +1371,13 @@ static int marlin_registsr_bt_wake(struct device *dev)
{
struct device_node *np;
int bt_wake_host_gpio, ret = 0;
- struct gpio_config config;
np = of_find_compatible_node(NULL, NULL, "allwinner,sunxi-btlpm");
if (!np) {
WCN_ERR("dts node for bt_wake not found");
return -EINVAL;
}
- bt_wake_host_gpio = of_get_named_gpio_flags(np, "bt_hostwake", 0,
- (enum of_gpio_flags *)&config);
+ bt_wake_host_gpio = of_get_named_gpio(np, "bt_hostwake", 0);
if (!gpio_is_valid(bt_wake_host_gpio)) {
WCN_ERR("bt_hostwake irq is invalid: %d\n",
bt_wake_host_gpio);
@@ -1403,11 +1401,8 @@ static int marlin_registsr_bt_wake(struct device *dev)
marlin_dev->bt_wake_host_int_num = gpio_to_irq(bt_wake_host_gpio);
- WCN_INFO("%s bt_hostwake gpio=%d mul-sel=%d pull=%d "
- "drv_level=%d data=%d intnum=%d\n",
- __func__, config.gpio, config.mul_sel, config.pull,
- config.drv_level, config.data,
- marlin_dev->bt_wake_host_int_num);
+ WCN_INFO("%s bt_hostwake gpio=%d intnum=%d\n", __func__,
+ bt_wake_host_gpio, marlin_dev->bt_wake_host_int_num);
ret = device_init_wakeup(dev, true);
if (ret < 0) {
--
2.34.1

View File

@ -0,0 +1,35 @@
From 9211a92d07e9a43fce104f87f9d45e890257b699 Mon Sep 17 00:00:00 2001
From: pbiel <pbiel7@gmail.com>
Date: Tue, 7 Mar 2023 20:28:44 +0100
Subject: [PATCH] wireless: fix setting mac address for netdev in uwe5622
unisocwifi driver
---
drivers/net/wireless/uwe5622/unisocwifi/main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/uwe5622/unisocwifi/main.c b/drivers/net/wireless/uwe5622/unisocwifi/main.c
index 21efdf4e0..566a9a7f3 100644
--- a/drivers/net/wireless/uwe5622/unisocwifi/main.c
+++ b/drivers/net/wireless/uwe5622/unisocwifi/main.c
@@ -1356,6 +1356,7 @@ static struct sprdwl_vif *sprdwl_register_netdev(struct sprdwl_priv *priv,
struct wireless_dev *wdev;
struct sprdwl_vif *vif;
int ret;
+ u8 target_mac_addr[ETH_ALEN] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0))
ndev = alloc_netdev(sizeof(*vif), name, NET_NAME_UNKNOWN, ether_setup);
@@ -1411,7 +1412,8 @@ static struct sprdwl_vif *sprdwl_register_netdev(struct sprdwl_priv *priv,
ndev->features |= NETIF_F_SG;
SET_NETDEV_DEV(ndev, wiphy_dev(priv->wiphy));
- sprdwl_set_mac_addr(vif, addr, ndev->dev_addr);
+ sprdwl_set_mac_addr(vif, addr, target_mac_addr);
+ dev_addr_set(ndev, target_mac_addr);
#ifdef CONFIG_P2P_INTF
if (type == NL80211_IFTYPE_P2P_DEVICE)
--
2.34.1

View File

@ -0,0 +1,58 @@
From 67b790ecbeab3f5493dc8306e87e503e1bb7bcdc Mon Sep 17 00:00:00 2001
From: Paolo Sabatino <paolo.sabatino@gmail.com>
Date: Sun, 29 Jan 2023 13:43:27 +0000
Subject: [PATCH] fix spreadtrum (sprd) bluetooth broken park link status
---
drivers/bluetooth/hci_ldisc.c | 6 ++++++
include/net/bluetooth/hci.h | 6 ++++++
net/bluetooth/hci_sync.c | 2 +-
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/drivers/bluetooth/hci_ldisc.c b/drivers/bluetooth/hci_ldisc.c
--- a/drivers/bluetooth/hci_ldisc.c (revision 58aa050aa57333b34b358234002121c59fb3af26)
+++ b/drivers/bluetooth/hci_ldisc.c (revision bf8ab2f58b21494ffde96979431a3da931deb48b)
@@ -658,6 +658,12 @@
hdev->setup = hci_uart_setup;
SET_HCIDEV_DEV(hdev, hu->tty->dev);
+ // Set the broken Park link status quirk, specific for spreadtrum (sprd)
+ // bluetooth devices
+ if (hdev->manufacturer == 0xffff && hu->tty->driver &&
+ strncmp(hu->tty->driver->name, "ttyBT", 5) == 0)
+ set_bit(HCI_QUIRK_BROKEN_PARK_LINK_STATUS, &hdev->quirks);
+
if (test_bit(HCI_UART_RAW_DEVICE, &hu->hdev_flags))
set_bit(HCI_QUIRK_RAW_DEVICE, &hdev->quirks);
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
--- a/include/net/bluetooth/hci.h (revision 58aa050aa57333b34b358234002121c59fb3af26)
+++ b/include/net/bluetooth/hci.h (revision bf8ab2f58b21494ffde96979431a3da931deb48b)
@@ -309,6 +309,12 @@
/* HCI device quirks */
enum {
+ /*
+ * Device declares that support Park link status, but it really
+ * does not support it and fails to initialize
+ */
+ HCI_QUIRK_BROKEN_PARK_LINK_STATUS,
+
/* When this quirk is set, the HCI Reset command is send when
* closing the transport instead of when opening it.
*
diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c
--- a/net/bluetooth/hci_sync.c (revision 58aa050aa57333b34b358234002121c59fb3af26)
+++ b/net/bluetooth/hci_sync.c (revision bf8ab2f58b21494ffde96979431a3da931deb48b)
@@ -3804,7 +3804,7 @@
link_policy |= HCI_LP_HOLD;
if (lmp_sniff_capable(hdev))
link_policy |= HCI_LP_SNIFF;
- if (lmp_park_capable(hdev))
+ if (lmp_park_capable(hdev) && !test_bit(HCI_QUIRK_BROKEN_PARK_LINK_STATUS, &hdev->quirks))
link_policy |= HCI_LP_PARK;
cp.policy = cpu_to_le16(link_policy);
--
2.34.1

View File

@ -0,0 +1,65 @@
From 7c0e3b529afd31f99baf78be10b5d71d9086789a Mon Sep 17 00:00:00 2001
From: Paolo Sabatino <paolo.sabatino@gmail.com>
Date: Sun, 29 Jan 2023 15:53:20 +0000
Subject: [PATCH] port uwe5622 driver to kernel 6.1
---
drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c b/drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c
index 294f19e1f6c..9dcdee02cb9 100755
--- a/drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c
+++ b/drivers/net/wireless/uwe5622/unisocwifi/cfg80211.c
@@ -703,7 +703,7 @@ static int sprdwl_add_cipher_key(struct sprdwl_vif *vif, bool pairwise,
}
static int sprdwl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
- u8 key_index, bool pairwise,
+ int link_id, u8 key_index, bool pairwise,
const u8 *mac_addr,
struct key_params *params)
{
@@ -725,7 +725,7 @@ static int sprdwl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
}
static int sprdwl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev,
- u8 key_index, bool pairwise,
+ int link_id, u8 key_index, bool pairwise,
const u8 *mac_addr)
{
struct sprdwl_vif *vif = netdev_priv(ndev);
@@ -755,7 +755,7 @@ static int sprdwl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev,
static int sprdwl_cfg80211_set_default_key(struct wiphy *wiphy,
struct net_device *ndev,
- u8 key_index, bool unicast,
+ int link_id, u8 key_index, bool unicast,
bool multicast)
{
struct sprdwl_vif *vif = netdev_priv(ndev);
@@ -2383,7 +2383,7 @@ void sprdwl_report_connection(struct sprdwl_vif *vif,
conn_info->status == SPRDWL_ROAM_SUCCESS){
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
struct cfg80211_roam_info roam_info = {
- .bss = bss,
+ .links[0].bss = bss,
.req_ie = conn_info->req_ie,
.req_ie_len = conn_info->req_ie_len,
.resp_ie = conn_info->resp_ie,
--
2.34.1
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_parn_parser.c b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_parn_parser.c
index 0aa765ad839..20aea5e7366 100644
--- a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_parn_parser.c
+++ b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_parn_parser.c
@@ -143,7 +143,7 @@ static int prefixcmp(const char *str, const char *prefix)
}
#if KERNEL_VERSION(3, 19, 0) <= LINUX_VERSION_CODE
-static int find_callback(struct dir_context *ctx, const char *name, int namlen,
+static bool find_callback(struct dir_context *ctx, const char *name, int namlen,
loff_t offset, u64 ino, unsigned int d_type)
#else
static int find_callback(void *ctx, const char *name, int namlen,

View File

@ -0,0 +1,34 @@
From 5b43103009736d5efff606ca40a1a693ba8a04c2 Mon Sep 17 00:00:00 2001
From: Paolo Sabatino <paolo.sabatino@gmail.com>
Date: Thu, 3 Aug 2023 10:09:46 +0200
Subject: [PATCH] fix driver for kernel 6.4
---
drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_log.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_log.c b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_log.c
index 1a78b5b035a4..c68d86a20fe2 100644
--- a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_log.c
+++ b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_log.c
@@ -260,7 +260,7 @@ int log_cdev_init(void)
struct wcnlog_dev *dev[WCN_LOG_MAX_MINOR] = {NULL};
WCN_DEBUG("log_cdev_init\n");
- wcnlog_class = class_create(THIS_MODULE, "slog_wcn");
+ wcnlog_class = class_create("slog_wcn");
if (IS_ERR(wcnlog_class))
return PTR_ERR(wcnlog_class);
diff --git a/drivers/net/wireless/uwe5622/tty-sdio/lpm.c b/drivers/net/wireless/uwe5622/tty-sdio/lpm.c
index 1570676ced50..79a6d60c94e8 100644
--- a/drivers/net/wireless/uwe5622/tty-sdio/lpm.c
+++ b/drivers/net/wireless/uwe5622/tty-sdio/lpm.c
@@ -11,6 +11,7 @@
#include <linux/seq_file.h>
#include <linux/version.h>
#include <linux/export.h>
+#include <linux/device.h>
#include <marlin_platform.h>
#define VERSION "marlin2 V0.1"

View File

@ -0,0 +1,27 @@
From 332748a389a88f8d78c5b2c70cf5c29f7098c703 Mon Sep 17 00:00:00 2001
From: Ricardo Pardini <ricardo@pardini.net>
Date: Mon, 2 Oct 2023 16:24:12 +0200
Subject: [PATCH] wifi uwe fix uwe5622 tty-sdio
---
drivers/net/wireless/uwe5622/tty-sdio/tty.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/uwe5622/tty-sdio/tty.c b/drivers/net/wireless/uwe5622/tty-sdio/tty.c
index 6498272fc192..36fc7dd558d4 100644
--- a/drivers/net/wireless/uwe5622/tty-sdio/tty.c
+++ b/drivers/net/wireless/uwe5622/tty-sdio/tty.c
@@ -467,8 +467,8 @@ static int sdio_data_transmit(uint8_t *data, size_t count)
return mtty_write(NULL, data, count);
}
-static int mtty_write_plus(struct tty_struct *tty,
- const unsigned char *buf, int count)
+static ssize_t mtty_write_plus(struct tty_struct *tty, const u8 *buf,
+ size_t count)
{
return sitm_write(buf, count, sdio_data_transmit);
}
--
2.42.0

View File

@ -0,0 +1,206 @@
From b758478655da935b50a973b0aa2ddbc20893b789 Mon Sep 17 00:00:00 2001
From: Paolo Sabatino <paolo.sabatino@gmail.com>
Date: Sun, 12 Jun 2022 14:33:59 +0000
Subject: [PATCH] uwe5622: various warning and firmware path fixes
---
drivers/net/wireless/uwe5622/Makefile | 2 +-
.../uwe5622/unisocwcn/platform/rdc_debug.c | 4 +-
.../uwe5622/unisocwcn/platform/wcn_boot.c | 2 -
.../unisocwcn/platform/wcn_parn_parser.c | 2 +-
.../uwe5622/unisocwcn/sdio/sdiohal_ctl.c | 42 ++++++-------------
.../wireless/uwe5622/unisocwifi/cfg80211.c | 4 --
6 files changed, 17 insertions(+), 39 deletions(-)
diff --git a/drivers/net/wireless/uwe5622/Makefile b/drivers/net/wireless/uwe5622/Makefile
index 71c863c1017..d2210439f3c 100644
--- a/drivers/net/wireless/uwe5622/Makefile
+++ b/drivers/net/wireless/uwe5622/Makefile
@@ -6,5 +6,5 @@ UNISOCWCN_DIR := $(shell cd $(src)/unisocwcn/ && /bin/pwd)
UNISOC_BSP_INCLUDE := $(UNISOCWCN_DIR)/include
export UNISOC_BSP_INCLUDE
-UNISOC_FW_PATH_CONFIG := "/lib/firmware/"
+UNISOC_FW_PATH_CONFIG := "/lib/firmware/uwe5622/"
export UNISOC_FW_PATH_CONFIG
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/platform/rdc_debug.c b/drivers/net/wireless/uwe5622/unisocwcn/platform/rdc_debug.c
index 86fa3b103ad..1343cb98362 100755
--- a/drivers/net/wireless/uwe5622/unisocwcn/platform/rdc_debug.c
+++ b/drivers/net/wireless/uwe5622/unisocwcn/platform/rdc_debug.c
@@ -41,13 +41,13 @@ static unsigned int wcn_cp2_file_max_num = UNISOC_DBG_FILENUM_DEFAULT;
*/
static unsigned int wcn_cp2_log_cover_old = 1;
/* path of config file unisoc_cp2log_config.txt */
-#define WCN_DEBUG_CFG_MAX_PATH_NUM 0
+#define WCN_DEBUG_CFG_MAX_PATH_NUM 2
static char *wcn_cp2_config_path[WCN_DEBUG_CFG_MAX_PATH_NUM] = {
"/data/unisoc_cp2log_config.txt",
"/vendor/etc/wifi/unisoc_cp2log_config.txt"
};
/* path of cp2 log and mem files. */
-#define WCN_UNISOC_DBG_MAX_PATH_NUM 0
+#define WCN_UNISOC_DBG_MAX_PATH_NUM 3
static char *wcn_unisoc_dbg_path[WCN_UNISOC_DBG_MAX_PATH_NUM] = {
UNISOC_DBG_PATH_DEFAULT,/* most of projects */
"/data", /* amlogic s905w... */
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_boot.c b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_boot.c
index d82f56357f3..58b9d290f23 100755
--- a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_boot.c
+++ b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_boot.c
@@ -325,8 +325,6 @@ static struct regmap *reg_map;
#define AFC_CALI_READ_FINISH 0x12121212
#define WCN_AFC_CALI_PATH "/productinfo/wcn/tsx_bt_data.txt"
-#define BIT(nr) (1UL << (nr))
-
#ifdef CONFIG_WCN_DOWNLOAD_FIRMWARE_FROM_HEX
#define POWER_WQ_DELAYED_MS 0
#else
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_parn_parser.c b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_parn_parser.c
index 9abcd326972..c1557dcce3f 100755
--- a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_parn_parser.c
+++ b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_parn_parser.c
@@ -183,7 +183,7 @@ int parse_firmware_path(char *firmware_path)
continue;
}
memset(fstab_name, 0, sizeof(fstab_name));
- strncpy(fstab_name, fstab_dir[loop], sizeof(fstab_dir[loop]));
+ strncpy(fstab_name, fstab_dir[loop], sizeof(fstab_name));
if (strlen(fstab_name) > 1)
fstab_name[strlen(fstab_name)] = '/';
iterate_dir(file1, &ctx);
diff --git a/drivers/net/wireless/uwe5622/unisocwcn/sdio/sdiohal_ctl.c b/drivers/net/wireless/uwe5622/unisocwcn/sdio/sdiohal_ctl.c
index b426bf89cd9..8000bfea378 100755
--- a/drivers/net/wireless/uwe5622/unisocwcn/sdio/sdiohal_ctl.c
+++ b/drivers/net/wireless/uwe5622/unisocwcn/sdio/sdiohal_ctl.c
@@ -9,6 +9,7 @@
#include <linux/uaccess.h>
#include <linux/version.h>
#include <linux/vmalloc.h>
+#include <linux/ktime.h>
#include <wcn_bus.h>
#include "sdiohal.h"
@@ -96,8 +97,10 @@ char *tp_tx_buf[TP_TX_BUF_CNT];
struct mchn_ops_t at_tx_ops;
struct mchn_ops_t at_rx_ops;
-struct timeval tp_tx_start_time;
-struct timeval tp_tx_stop_time;
+ktime_t tp_tx_start_time;
+ktime_t tp_tx_stop_time;
+ktime_t tp_rx_start_time;
+ktime_t tp_rx_stop_time;
int tp_tx_cnt;
int tp_tx_flag;
int tp_tx_buf_cnt = TP_TX_BUF_CNT;
@@ -222,7 +225,6 @@ static int sdiohal_throughput_tx(void)
static void sdiohal_throughput_tx_compute_time(void)
{
static signed long long times_count;
- struct timespec64 now;
if (tp_tx_flag != 1)
return;
@@ -230,17 +232,12 @@ static void sdiohal_throughput_tx_compute_time(void)
/* throughput test */
tp_tx_cnt++;
if (tp_tx_cnt % 500 == 0) {
- getnstimeofday(&now);
- tp_tx_stop_time.tv_sec = now.tv_sec;
- tp_tx_stop_time.tv_usec = now.tv_nsec/1000;
- times_count = timeval_to_ns(&tp_tx_stop_time) -
- timeval_to_ns(&tp_tx_start_time);
+ tp_tx_stop_time = ktime_get();
+ times_count = tp_tx_stop_time - tp_tx_start_time;
sdiohal_info("tx->times(500c) is %lldns, tx %d, rx %d\n",
times_count, tp_tx_cnt, rx_pop_cnt);
tp_tx_cnt = 0;
- getnstimeofday(&now);
- tp_tx_start_time.tv_sec = now.tv_sec;
- tp_tx_start_time.tv_usec = now.tv_nsec/1000;
+ tp_tx_start_time = ktime_get();
}
sdiohal_throughput_tx();
}
@@ -544,14 +541,10 @@ int at_list_tx_pop(int channel, struct mbuf_t *head,
}
int tp_rx_cnt;
-struct timeval tp_rx_start_time;
-struct timeval tp_rx_stop_time;
-struct timespec tp_tm_begin;
int at_list_rx_pop(int channel, struct mbuf_t *head,
struct mbuf_t *tail, int num)
{
- static signed long long times_count;
- struct timespec64 now;
+ ktime_t times_count;
sdiohal_debug("%s channel:%d head:%p tail:%p num:%d\n",
__func__, channel, head, tail, num);
@@ -568,19 +561,13 @@ int at_list_rx_pop(int channel, struct mbuf_t *head,
/* throughput test */
tp_rx_cnt += num;
if (tp_rx_cnt / (500*64) == 1) {
- getnstimeofday(&now);
- tp_rx_stop_time.tv_sec = now.tv_sec;
- tp_rx_stop_time.tv_usec = now.tv_nsec/1000;
- times_count = timeval_to_ns(&tp_rx_stop_time)
- - timeval_to_ns(&tp_rx_start_time);
+ tp_rx_stop_time = ktime_get();
+ times_count = tp_rx_stop_time - tp_rx_start_time;
sdiohal_info("rx->times(%dc) is %lldns, tx %d, rx %d\n",
tp_rx_cnt, times_count, tp_tx_cnt, rx_pop_cnt);
tp_rx_cnt = 0;
- getnstimeofday(&now);
- tp_rx_start_time.tv_sec = now.tv_sec;
- tp_rx_start_time.tv_usec = now.tv_nsec/1000;
+ tp_rx_start_time = ktime_get();
}
- getnstimeofday(&tp_tm_begin);
return 0;
}
@@ -834,7 +821,6 @@ static ssize_t at_cmd_write(struct file *filp,
long int long_data;
int ret;
unsigned char *send_buf = NULL;
- struct timespec64 now;
if (count > SDIOHAL_WRITE_SIZE) {
sdiohal_err("%s write size > %d\n",
@@ -1127,9 +1113,7 @@ static ssize_t at_cmd_write(struct file *filp,
__func__, tp_tx_buf_cnt, tp_tx_buf_len);
tp_tx_flag = 1;
tp_tx_cnt = 0;
- getnstimeofday(&now);
- tp_tx_start_time.tv_sec = now.tv_sec;
- tp_tx_start_time.tv_usec = now.tv_nsec/1000;
+ tp_tx_start_time = ktime_get();
if ((tp_tx_buf_cnt <= TP_TX_BUF_CNT) &&
(tp_tx_buf_len <= TP_TX_BUF_LEN)) {
sprdwcn_bus_chn_deinit(&at_tx_ops);
diff --git a/drivers/net/wireless/uwe5622/unisocwifi/wl_core.c b/drivers/net/wireless/uwe5622/unisocwifi/wl_core.c
index ad310450e79..206824604ec 100755
--- a/drivers/net/wireless/uwe5622/unisocwifi/wl_core.c
+++ b/drivers/net/wireless/uwe5622/unisocwifi/wl_core.c
@@ -628,12 +628,12 @@ static int sprdwl_probe(struct platform_device *pdev)
ret = -ENXIO;
goto err_core_create;
}
- memcpy(priv->wl_ver.kernel_ver, utsname()->release,
- strlen(utsname()->release));
- memcpy(priv->wl_ver.drv_ver, SPRDWL_DRIVER_VERSION,
- strlen(SPRDWL_DRIVER_VERSION));
- memcpy(priv->wl_ver.update, SPRDWL_UPDATE, strlen(SPRDWL_UPDATE));
- memcpy(priv->wl_ver.reserve, SPRDWL_RESERVE, strlen(SPRDWL_RESERVE));
+ strncpy(priv->wl_ver.kernel_ver, utsname()->release,
+ sizeof(priv->wl_ver.kernel_ver));
+ strncpy(priv->wl_ver.drv_ver, SPRDWL_DRIVER_VERSION,
+ sizeof(priv->wl_ver.drv_ver));
+ strncpy(priv->wl_ver.update, SPRDWL_UPDATE, sizeof(priv->wl_ver.update));
+ strncpy(priv->wl_ver.reserve, SPRDWL_RESERVE, sizeof(priv->wl_ver.reserve));
wl_info("Spreadtrum WLAN Version:");
wl_info("Kernel:%s,Driver:%s,update:%s,reserved:%s\n",
utsname()->release, SPRDWL_DRIVER_VERSION,

View File

@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/${LICENSE};md5=0ceb3372c9595f0a
S = "${WORKDIR}"
COMPATIBLE_MACHINE = "orange-pi-zero2"
COMPATIBLE_MACHINE = "(orange-pi-zero2|orange-pi-3lts)"
SRC_URI:append = " \
file://wcnmodem.bin \
@ -19,4 +19,4 @@ do_install() {
FILES:${PN} = "${base_libdir}/*"
PACKAGES = "${PN}"
PACKAGES = "${PN}"