From 1aed8f08f6d0a220eee651fb246225d579a235c1 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 24 Jul 2023 01:35:00 +0200 Subject: [PATCH 461/464] net: wireless: Port bcmdhd to Linux 6.5 This makes it compile and not crash the kernel. Not working, yet. Signed-off-by: Ondrej Jirman --- drivers/net/wireless/broadcom/Kconfig | 1 + drivers/net/wireless/broadcom/Makefile | 2 + drivers/net/wireless/broadcom/bcmdhd/Kconfig | 3 +- drivers/net/wireless/broadcom/bcmdhd/Makefile | 38 +--- .../wireless/broadcom/bcmdhd/bcm_app_utils.c | 4 +- .../broadcom/bcmdhd/bcmwifi_channels.c | 6 +- .../net/wireless/broadcom/bcmdhd/dhd_gpio.c | 173 ++---------------- .../net/wireless/broadcom/bcmdhd/dhd_linux.c | 16 +- .../wireless/broadcom/bcmdhd/dhd_pcie_linux.c | 4 +- .../net/wireless/broadcom/bcmdhd/linux_osl.c | 1 + .../broadcom/bcmdhd/rk_dhd_pcie_linux.h | 4 +- .../net/wireless/broadcom/bcmdhd/wl_android.c | 6 +- .../wireless/broadcom/bcmdhd/wl_android_ext.c | 2 +- .../wireless/broadcom/bcmdhd/wl_cfg80211.c | 12 +- .../net/wireless/broadcom/bcmdhd/wl_cfgscan.c | 1 + .../wireless/broadcom/bcmdhd/wl_cfgvendor.c | 1 + .../net/wireless/broadcom/bcmdhd/wl_cfgvif.c | 13 +- .../net/wireless/broadcom/bcmdhd/wl_cfgvif.h | 4 +- drivers/net/wireless/broadcom/bcmdhd/wl_iw.h | 2 +- 19 files changed, 69 insertions(+), 224 deletions(-) diff --git a/drivers/net/wireless/broadcom/Kconfig b/drivers/net/wireless/broadcom/Kconfig index f74333366a90..13e31496e0ec 100644 --- a/drivers/net/wireless/broadcom/Kconfig +++ b/drivers/net/wireless/broadcom/Kconfig @@ -15,5 +15,6 @@ if WLAN_VENDOR_BROADCOM source "drivers/net/wireless/broadcom/b43/Kconfig" source "drivers/net/wireless/broadcom/b43legacy/Kconfig" source "drivers/net/wireless/broadcom/brcm80211/Kconfig" +source "drivers/net/wireless/broadcom/bcmdhd/Kconfig" endif # WLAN_VENDOR_BROADCOM diff --git a/drivers/net/wireless/broadcom/Makefile b/drivers/net/wireless/broadcom/Makefile index 1a8384daed2c..38b4358ef48f 100644 --- a/drivers/net/wireless/broadcom/Makefile +++ b/drivers/net/wireless/broadcom/Makefile @@ -4,3 +4,5 @@ obj-$(CONFIG_B43LEGACY) += b43legacy/ obj-$(CONFIG_BRCMFMAC) += brcm80211/ obj-$(CONFIG_BRCMSMAC) += brcm80211/ + +#obj-$(CONFIG_BCMDHD) += bcmdhd/ diff --git a/drivers/net/wireless/broadcom/bcmdhd/Kconfig b/drivers/net/wireless/broadcom/bcmdhd/Kconfig index ec992ef39eaf..900fdb1e659d 100644 --- a/drivers/net/wireless/broadcom/bcmdhd/Kconfig +++ b/drivers/net/wireless/broadcom/bcmdhd/Kconfig @@ -1,5 +1,5 @@ config BCMDHD - tristate "Broadcom FullMAC wireless cards support" + tristate "BCMDHD - Broadcom FullMAC wireless cards support" help This module adds support for wireless adapters based on Broadcom FullMAC chipset. @@ -50,7 +50,6 @@ choice config BCMDHD_OOB depends on BCMDHD && BCMDHD_SDIO bool "Out-of-Band Interrupt" - default y help Interrupt from WL_HOST_WAKE. config BCMDHD_SDIO_IRQ diff --git a/drivers/net/wireless/broadcom/bcmdhd/Makefile b/drivers/net/wireless/broadcom/bcmdhd/Makefile index f48764851554..cf19c21e9025 100644 --- a/drivers/net/wireless/broadcom/bcmdhd/Makefile +++ b/drivers/net/wireless/broadcom/bcmdhd/Makefile @@ -6,10 +6,10 @@ MODULE_NAME := bcmdhd else MODULE_NAME := bcmdhd_pcie endif -CONFIG_BCMDHD = m +CONFIG_BCMDHD = y #CONFIG_BCMDHD_SDIO := y -#CONFIG_BCMDHD_PCIE := y +CONFIG_BCMDHD_PCIE := y #CONFIG_BCMDHD_USB := y CONFIG_BCMDHD_OOB := y @@ -38,7 +38,6 @@ CONFIG_MACH_PLATFORM := y DHDCFLAGS = -Wall -Wstrict-prototypes -Wno-date-time \ -Wno-implicit-fallthrough -Wno-declaration-after-statement \ - -Wno-fortify-source \ -Dlinux -DLINUX -DBCMDRIVER \ -DBCMDONGLEHOST -DBCMDMA32 -DBCMFILEIMAGE \ -DDHDTHREAD -DDHD_DEBUG -DSHOW_EVENTS -DGET_OTP_MAC_ENABLE \ @@ -51,6 +50,7 @@ DHDCFLAGS = -Wall -Wstrict-prototypes -Wno-date-time \ -DUSE_NEW_RSPEC_DEFS \ -DWL_EXT_IAPSTA -DWL_ESCAN -DCCODE_LIST -DSUSPEND_EVENT \ -DKEY_INSTALL_CHECK \ + -DCFG80211_BKPORT_MLO \ -DENABLE_INSMOD_NO_FW_LOAD DHDOFILES = aiutils.o siutils.o sbutils.o \ @@ -301,7 +301,7 @@ ifneq ($(CONFIG_BCMDHD_SDIO),) endif ifneq ($(CONFIG_BCMDHD_PCIE),) DHDCFLAGS += -DDHD_LB_TXP_DEFAULT_ENAB - DHDCFLAGS += -DSET_RPS_CPUS -DSET_XPS_CPUS +# DHDCFLAGS += -DSET_RPS_CPUS -DSET_XPS_CPUS DHDCFLAGS += -DDHD_LB_PRIMARY_CPUS=0xF0 -DDHD_LB_SECONDARY_CPUS=0x0E endif endif @@ -386,7 +386,7 @@ ifeq ($(CONFIG_BCMDHD_STATIC_BUF_IN_DHD),y) DHDOFILES += dhd_static_buf.o DHDCFLAGS += -DDHD_STATIC_IN_DRIVER else - obj-m += dhd_static_buf.o + obj-y += dhd_static_buf.o endif DHDCFLAGS += -DSTATIC_WL_PRIV_STRUCT -DENHANCED_STATIC_BUF DHDCFLAGS += -DCONFIG_DHD_USE_STATIC_BUF @@ -396,34 +396,12 @@ ifneq ($(CONFIG_BCMDHD_PCIE),) endif endif -ARCH ?= arm64 -BCMDHD_ROOT = $(src) -#$(warning "BCMDHD_ROOT=$(BCMDHD_ROOT)") +BCMDHD_ROOT = $(srctree)/$(src) +$(warning "BCMDHD_ROOT=$(BCMDHD_ROOT)") EXTRA_CFLAGS = $(DHDCFLAGS) EXTRA_CFLAGS += -DDHD_COMPILED=\"$(BCMDHD_ROOT)\" EXTRA_CFLAGS += -I$(BCMDHD_ROOT)/include/ -I$(BCMDHD_ROOT)/ -ifeq ($(CONFIG_BCMDHD),m) -EXTRA_LDFLAGS += --strip-debug -endif -obj-m += $(MODULE_NAME).o +obj-y += $(MODULE_NAME).o $(MODULE_NAME)-objs += $(DHDOFILES) ccflags-y := $(EXTRA_CFLAGS) - -all: bcmdhd_pcie bcmdhd_sdio bcmdhd_usb - -bcmdhd_pcie: - $(warning "building BCMDHD_PCIE..........") - $(MAKE) -C $(LINUXDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules CONFIG_BCMDHD=m CONFIG_BCMDHD_PCIE=y - -bcmdhd_sdio: - $(warning "building BCMDHD_SDIO..........") - $(MAKE) -C $(LINUXDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules CONFIG_BCMDHD=m CONFIG_BCMDHD_SDIO=y - -bcmdhd_usb: - $(warning "building BCMDHD_USB..........") - $(MAKE) -C $(LINUXDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules CONFIG_BCMDHD=m CONFIG_BCMDHD_USB=y - -clean: - rm -rf *.o *.ko *.mod.c *~ .*.cmd *.o.cmd .*.o.cmd *.mod \ - Module.symvers modules.order .tmp_versions modules.builtin diff --git a/drivers/net/wireless/broadcom/bcmdhd/bcm_app_utils.c b/drivers/net/wireless/broadcom/bcmdhd/bcm_app_utils.c index 62d050739ea8..c50573f313bb 100644 --- a/drivers/net/wireless/broadcom/bcmdhd/bcm_app_utils.c +++ b/drivers/net/wireless/broadcom/bcmdhd/bcm_app_utils.c @@ -27,8 +27,8 @@ #ifdef BCMDRIVER #include -#define strtoul(nptr, endptr, base) bcm_strtoul((nptr), (endptr), (base)) -#define tolower(c) (bcm_isupper((c)) ? ((c) + 'a' - 'A') : (c)) +//#define strtoul(nptr, endptr, base) bcm_strtoul((nptr), (endptr), (base)) +//#define tolower(c) (bcm_isupper((c)) ? ((c) + 'a' - 'A') : (c)) #else /* BCMDRIVER */ #include #include diff --git a/drivers/net/wireless/broadcom/bcmdhd/bcmwifi_channels.c b/drivers/net/wireless/broadcom/bcmdhd/bcmwifi_channels.c index 938720710a2b..70dac773deff 100644 --- a/drivers/net/wireless/broadcom/bcmdhd/bcmwifi_channels.c +++ b/drivers/net/wireless/broadcom/bcmdhd/bcmwifi_channels.c @@ -28,8 +28,8 @@ #ifdef BCMDRIVER #include -#define strtoul(nptr, endptr, base) bcm_strtoul((nptr), (endptr), (base)) -#define tolower(c) (bcm_isupper((c)) ? ((c) + 'a' - 'A') : (c)) +//#define strtoul(nptr, endptr, base) bcm_strtoul((nptr), (endptr), (base)) +//#define tolower(c) (bcm_isupper((c)) ? ((c) + 'a' - 'A') : (c)) #else #include #include @@ -568,7 +568,7 @@ read_uint(const char **p, unsigned int *num) unsigned long val; char *endp = NULL; - val = strtoul(*p, &endp, 10); + val = bcm_strtoul(*p, &endp, 10); /* if endp is the initial pointer value, then a number was not read */ if (endp == *p) return 0; diff --git a/drivers/net/wireless/broadcom/bcmdhd/dhd_gpio.c b/drivers/net/wireless/broadcom/bcmdhd/dhd_gpio.c index 40490bdf7982..5f08b8f0fc2e 100644 --- a/drivers/net/wireless/broadcom/bcmdhd/dhd_gpio.c +++ b/drivers/net/wireless/broadcom/bcmdhd/dhd_gpio.c @@ -2,22 +2,10 @@ #include #include #include -#ifdef BCMDHD_DTS #include -#endif #ifdef BCMDHD_PLATDEV #include #endif -#ifdef CUSTOMER_HW_ROCKCHIP -#include -#endif - -#if defined(BUS_POWER_RESTORE) && defined(BCMSDIO) -#include -#include -#include -#include -#endif /* defined(BUS_POWER_RESTORE) && defined(BCMSDIO) */ #ifdef CONFIG_DHD_USE_STATIC_BUF #ifdef DHD_STATIC_IN_DRIVER @@ -31,13 +19,7 @@ extern void *dhd_wlan_mem_prealloc(uint bus_type, int index, extern void *dhd_wlan_mem_prealloc(int section, unsigned long size); #endif #endif /* CONFIG_DHD_USE_STATIC_BUF */ -#ifdef CUSTOMER_HW_ROCKCHIP -#ifdef BCMPCIE -//extern void rk_pcie_power_on_atu_fixup(void); -#endif -#endif -#ifdef BCMDHD_DTS /* This is sample code in dts file. bcmdhd_wlan { compatible = "android,bcmdhd_wlan"; @@ -48,7 +30,6 @@ bcmdhd_wlan { #define DHD_DT_COMPAT_ENTRY "android,bcmdhd_wlan" #define GPIO_WL_REG_ON_PROPNAME "gpio_wl_reg_on" #define GPIO_WL_HOST_WAKE_PROPNAME "gpio_wl_host_wake" -#endif static int dhd_wlan_set_power(int on, wifi_adapter_info_t *adapter) @@ -56,6 +37,8 @@ dhd_wlan_set_power(int on, wifi_adapter_info_t *adapter) int gpio_wl_reg_on = adapter->gpio_wl_reg_on; int err = 0; + return 0; + if (on) { printf("======== PULL WL_REG_ON(%d) HIGH! ========\n", gpio_wl_reg_on); if (gpio_wl_reg_on >= 0) { @@ -65,22 +48,9 @@ dhd_wlan_set_power(int on, wifi_adapter_info_t *adapter) return -EIO; } } -#ifdef CUSTOMER_HW_ROCKCHIP - rockchip_wifi_power(1); -#ifdef BCMPCIE //rk_pcie_power_on_atu_fixup(); -#endif -#endif + #ifdef BUS_POWER_RESTORE -#ifdef BCMSDIO -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 32) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0) - if (adapter->sdio_func && adapter->sdio_func->card && adapter->sdio_func->card->host) { - mdelay(100); - printf("======== mmc_power_restore_host! ========\n"); - mmc_power_restore_host(adapter->sdio_func->card->host); - } -#endif -#elif defined(BCMPCIE) if (adapter->pci_dev) { mdelay(100); printf("======== pci_set_power_state PCI_D0! ========\n"); @@ -93,20 +63,11 @@ dhd_wlan_set_power(int on, wifi_adapter_info_t *adapter) printf("%s: PCI enable device failed", __FUNCTION__); pci_set_master(adapter->pci_dev); } -#endif /* BCMPCIE */ #endif /* BUS_POWER_RESTORE */ /* Lets customer power to get stable */ mdelay(100); } else { #ifdef BUS_POWER_RESTORE -#ifdef BCMSDIO -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 32) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0) - if (adapter->sdio_func && adapter->sdio_func->card && adapter->sdio_func->card->host) { - printf("======== mmc_power_save_host! ========\n"); - mmc_power_save_host(adapter->sdio_func->card->host); - } -#endif -#elif defined(BCMPCIE) if (adapter->pci_dev) { printf("======== pci_set_power_state PCI_D3hot! ========\n"); pci_save_state(adapter->pci_dev); @@ -115,7 +76,6 @@ dhd_wlan_set_power(int on, wifi_adapter_info_t *adapter) pci_disable_device(adapter->pci_dev); pci_set_power_state(adapter->pci_dev, PCI_D3hot); } -#endif /* BCMPCIE */ #endif /* BUS_POWER_RESTORE */ printf("======== PULL WL_REG_ON(%d) LOW! ========\n", gpio_wl_reg_on); if (gpio_wl_reg_on >= 0) { @@ -125,9 +85,6 @@ dhd_wlan_set_power(int on, wifi_adapter_info_t *adapter) return -EIO; } } -#ifdef CUSTOMER_HW_ROCKCHIP - rockchip_wifi_power(0); -#endif } return err; @@ -146,29 +103,9 @@ dhd_wlan_set_carddetect(int present) #if !defined(BUS_POWER_RESTORE) if (present) { -#if defined(BCMSDIO) - printf("======== Card detection to detect SDIO card! ========\n"); -#ifdef CUSTOMER_HW_PLATFORM - err = sdhci_force_presence_change(&sdmmc_channel, 1); -#endif /* CUSTOMER_HW_PLATFORM */ -#ifdef CUSTOMER_HW_ROCKCHIP - rockchip_wifi_set_carddetect(1); -#endif -#elif defined(BCMPCIE) printf("======== Card detection to detect PCIE card! ========\n"); -#endif } else { -#if defined(BCMSDIO) - printf("======== Card detection to remove SDIO card! ========\n"); -#ifdef CUSTOMER_HW_PLATFORM - err = sdhci_force_presence_change(&sdmmc_channel, 0); -#endif /* CUSTOMER_HW_PLATFORM */ -#ifdef CUSTOMER_HW_ROCKCHIP - rockchip_wifi_set_carddetect(0); -#endif -#elif defined(BCMPCIE) printf("======== Card detection to remove PCIE card! ========\n"); -#endif } #endif /* BUS_POWER_RESTORE */ @@ -178,41 +115,16 @@ dhd_wlan_set_carddetect(int present) static int dhd_wlan_get_mac_addr(unsigned char *buf, int ifidx) { - int err = 0; - if (ifidx == 1) { -#ifdef EXAMPLE_GET_MAC struct ether_addr ea_example = {{0x00, 0x11, 0x22, 0x33, 0x44, 0xFF}}; bcopy((char *)&ea_example, buf, sizeof(struct ether_addr)); -#endif /* EXAMPLE_GET_MAC */ } else { -#ifdef EXAMPLE_GET_MAC struct ether_addr ea_example = {{0x02, 0x11, 0x22, 0x33, 0x44, 0x55}}; bcopy((char *)&ea_example, buf, sizeof(struct ether_addr)); -#endif /* EXAMPLE_GET_MAC */ -#ifdef CUSTOMER_HW_ROCKCHIP - err = rockchip_wifi_mac_addr(buf); -#endif + //err = rockchip_wifi_mac_addr(buf); } -#ifdef EXAMPLE_GET_MAC_VER2 - /* EXAMPLE code */ - { - char macpad[56]= { - 0x00,0xaa,0x9c,0x84,0xc7,0xbc,0x9b,0xf6, - 0x02,0x33,0xa9,0x4d,0x5c,0xb4,0x0a,0x5d, - 0xa8,0xef,0xb0,0xcf,0x8e,0xbf,0x24,0x8a, - 0x87,0x0f,0x6f,0x0d,0xeb,0x83,0x6a,0x70, - 0x4a,0xeb,0xf6,0xe6,0x3c,0xe7,0x5f,0xfc, - 0x0e,0xa7,0xb3,0x0f,0x00,0xe4,0x4a,0xaf, - 0x87,0x08,0x16,0x6d,0x3a,0xe3,0xc7,0x80}; - bcopy(macpad, buf+6, sizeof(macpad)); - } -#endif /* EXAMPLE_GET_MAC_VER2 */ - - printf("======== %s err=%d ========\n", __FUNCTION__, err); - - return err; + return 0; } static struct cntry_locales_custom brcm_wlan_translate_custom_table[] = { @@ -277,10 +189,8 @@ struct wifi_platform_data dhd_wlan_control = { static int dhd_wlan_init_gpio(wifi_adapter_info_t *adapter) { -#ifdef BCMDHD_DTS char wlan_node[32]; struct device_node *root_node = NULL; -#endif int err = 0; int gpio_wl_reg_on = -1; #ifdef CUSTOMER_OOB @@ -297,32 +207,16 @@ dhd_wlan_init_gpio(wifi_adapter_info_t *adapter) /* Please check your schematic and fill right GPIO number which connected to * WL_REG_ON and WL_HOST_WAKE. */ -#ifdef BCMDHD_DTS -#ifdef BCMDHD_PLATDEV - if (adapter->pdev) { - root_node = adapter->pdev->dev.of_node; - strcpy(wlan_node, root_node->name); - } else { - printf("%s: adapter->pdev is NULL\n", __FUNCTION__); - return -1; - } -#else strcpy(wlan_node, DHD_DT_COMPAT_ENTRY); root_node = of_find_compatible_node(NULL, NULL, wlan_node); -#endif + printf("======== Get GPIO from DTS(%s) ========\n", wlan_node); if (root_node) { gpio_wl_reg_on = of_get_named_gpio(root_node, GPIO_WL_REG_ON_PROPNAME, 0); -#ifdef CUSTOMER_OOB gpio_wl_host_wake = of_get_named_gpio(root_node, GPIO_WL_HOST_WAKE_PROPNAME, 0); -#endif - } else -#endif - { + } else { gpio_wl_reg_on = -1; -#ifdef CUSTOMER_OOB gpio_wl_host_wake = -1; -#endif } if (gpio_wl_reg_on >= 0) { @@ -359,9 +253,6 @@ dhd_wlan_init_gpio(wifi_adapter_info_t *adapter) return -1; } } -#ifdef CUSTOMER_HW_ROCKCHIP - host_oob_irq = rockchip_wifi_get_oob_irq(); -#endif #ifdef HW_OOB #ifdef HW_OOB_LOW_LEVEL @@ -369,16 +260,6 @@ dhd_wlan_init_gpio(wifi_adapter_info_t *adapter) #else host_oob_irq_flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL | IORESOURCE_IRQ_SHAREABLE; #endif -#ifdef CUSTOMER_HW_ROCKCHIP - host_oob_irq_flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE; - irq_flags = rockchip_wifi_get_oob_irq_flag(); - if (irq_flags == 1) - host_oob_irq_flags |= IORESOURCE_IRQ_HIGHLEVEL; - else if (irq_flags == 0) - host_oob_irq_flags |= IORESOURCE_IRQ_LOWLEVEL; - else - pr_warn("%s: unknown oob irqflags !\n", __func__); -#endif #else host_oob_irq_flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE | IORESOURCE_IRQ_SHAREABLE; #endif @@ -420,37 +301,13 @@ dhd_wlan_deinit_gpio(wifi_adapter_info_t *adapter) static void dhd_wlan_init_adapter(wifi_adapter_info_t *adapter) { -#ifdef ADAPTER_IDX - if (ADAPTER_IDX == 0) { - adapter->bus_num = 1; - adapter->slot_num = 1; - } else if (ADAPTER_IDX == 1) { - adapter->bus_num = 2; - adapter->slot_num = 1; - } - adapter->index = ADAPTER_IDX; -#ifdef BCMSDIO - adapter->bus_type = SDIO_BUS; -#elif defined(BCMPCIE) + adapter->bus_num = 1; + adapter->slot_num = 1; + adapter->index = 0; adapter->bus_type = PCI_BUS; -#elif defined(BCMDBUS) - adapter->bus_type = USB_BUS; -#endif + printf("bus_type=%d, bus_num=%d, slot_num=%d\n", adapter->bus_type, adapter->bus_num, adapter->slot_num); -#endif /* ADAPTER_IDX */ - -#ifdef DHD_STATIC_IN_DRIVER - adapter->index = 0; -#elif !defined(ADAPTER_IDX) -#ifdef BCMSDIO - adapter->index = 0; -#elif defined(BCMPCIE) - adapter->index = 1; -#elif defined(BCMDBUS) - adapter->index = 2; -#endif -#endif /* DHD_STATIC_IN_DRIVER */ } #endif /* BCMDHD_MDRIVER */ @@ -463,9 +320,9 @@ dhd_wlan_init_plat_data(wifi_adapter_info_t *adapter) dhd_wlan_init_adapter(adapter); #endif /* BCMDHD_MDRIVER */ - err = dhd_wlan_init_gpio(adapter); - if (err) - goto exit; + //err = dhd_wlan_init_gpio(adapter); + //if (err) + //goto exit; #ifdef DHD_STATIC_IN_DRIVER err = dhd_static_buf_init(); @@ -481,5 +338,5 @@ dhd_wlan_deinit_plat_data(wifi_adapter_info_t *adapter) #ifdef DHD_STATIC_IN_DRIVER dhd_static_buf_exit(); #endif - dhd_wlan_deinit_gpio(adapter); + //dhd_wlan_deinit_gpio(adapter); } diff --git a/drivers/net/wireless/broadcom/bcmdhd/dhd_linux.c b/drivers/net/wireless/broadcom/bcmdhd/dhd_linux.c index 1dccb0e74d8a..3b66ed0fd2ce 100644 --- a/drivers/net/wireless/broadcom/bcmdhd/dhd_linux.c +++ b/drivers/net/wireless/broadcom/bcmdhd/dhd_linux.c @@ -32,6 +32,8 @@ #include #endif /* SHOW_LOGTRACE */ +#include + #if defined(PCIE_FULL_DONGLE) || defined(SHOW_LOGTRACE) #include #endif /* PCIE_FULL_DONGLE */ @@ -793,8 +795,6 @@ module_param(instance_base, int, 0644); * * Device drivers are strongly advised to not use bigger value than NAPI_POLL_WEIGHT */ -static int dhd_napi_weight = NAPI_POLL_WEIGHT; -module_param(dhd_napi_weight, int, 0644); #endif /* DHD_LB_RXP && PCIE_FULL_DONGLE */ #ifdef PCIE_FULL_DONGLE @@ -3062,7 +3062,7 @@ _dhd_set_multicast_list(dhd_info_t *dhd, int ifidx) } int -_dhd_set_mac_address(dhd_info_t *dhd, int ifidx, uint8 *addr, bool skip_stop) +_dhd_set_mac_address(dhd_info_t *dhd, int ifidx, const uint8 *addr, bool skip_stop) { int ret; @@ -9472,10 +9472,10 @@ dhd_open(struct net_device *net) dhd->rx_napi_netdev = dhd->iflist[ifidx]->net; memset(&dhd->rx_napi_struct, 0, sizeof(struct napi_struct)); netif_napi_add(dhd->rx_napi_netdev, &dhd->rx_napi_struct, - dhd_napi_poll, dhd_napi_weight); - DHD_INFO(("%s napi<%p> enabled ifp->net<%p,%s> dhd_napi_weight: %d\n", + dhd_napi_poll); + DHD_INFO(("%s napi<%p> enabled ifp->net<%p,%s>\n", __FUNCTION__, &dhd->rx_napi_struct, net, - net->name, dhd_napi_weight)); + net->name)); napi_enable(&dhd->rx_napi_struct); DHD_INFO(("%s load balance init rx_napi_struct\n", __FUNCTION__)); skb_queue_head_init(&dhd->rx_napi_queue); @@ -12779,8 +12779,8 @@ dhd_bus_start(dhd_pub_t *dhdp) #endif /* BT_OVER_PCIE */ #if defined(CUSTOMER_HW_ROCKCHIP) && defined(BCMPCIE) - if (IS_ENABLED(CONFIG_PCIEASPM_ROCKCHIP_WIFI_EXTENSION)) - rk_dhd_bus_l1ss_enable_rc_ep(dhdp->bus, TRUE); + //if (IS_ENABLED(CONFIG_PCIEASPM_ROCKCHIP_WIFI_EXTENSION)) + //rk_dhd_bus_l1ss_enable_rc_ep(dhdp->bus, TRUE); #endif /* CUSTOMER_HW_ROCKCHIP && BCMPCIE */ #if defined(CONFIG_ARCH_EXYNOS) && defined(BCMPCIE) diff --git a/drivers/net/wireless/broadcom/bcmdhd/dhd_pcie_linux.c b/drivers/net/wireless/broadcom/bcmdhd/dhd_pcie_linux.c index 6a5ec4db66e7..00713a40ce78 100644 --- a/drivers/net/wireless/broadcom/bcmdhd/dhd_pcie_linux.c +++ b/drivers/net/wireless/broadcom/bcmdhd/dhd_pcie_linux.c @@ -621,8 +621,8 @@ dhd_bus_is_rc_ep_l1ss_capable(dhd_bus_t *bus) uint32 ep_l1ss_cap; #ifdef CUSTOMER_HW_ROCKCHIP - if (IS_ENABLED(CONFIG_PCIEASPM_ROCKCHIP_WIFI_EXTENSION)) - return rk_dhd_bus_is_rc_ep_l1ss_capable(bus); + //if (IS_ENABLED(CONFIG_PCIEASPM_ROCKCHIP_WIFI_EXTENSION)) + //return rk_dhd_bus_is_rc_ep_l1ss_capable(bus); #endif /* RC Extendend Capacility */ rc_l1ss_cap = dhdpcie_access_cap(bus->rc_dev, PCIE_EXTCAP_ID_L1SS, diff --git a/drivers/net/wireless/broadcom/bcmdhd/linux_osl.c b/drivers/net/wireless/broadcom/bcmdhd/linux_osl.c index 2dd9b384e51f..488fc54045a6 100644 --- a/drivers/net/wireless/broadcom/bcmdhd/linux_osl.c +++ b/drivers/net/wireless/broadcom/bcmdhd/linux_osl.c @@ -33,6 +33,7 @@ #endif /* __ARM_ARCH_7A__ && !DHD_USE_COHERENT_MEM_FOR_RING */ #include +#include #include #include diff --git a/drivers/net/wireless/broadcom/bcmdhd/rk_dhd_pcie_linux.h b/drivers/net/wireless/broadcom/bcmdhd/rk_dhd_pcie_linux.h index c6fedf9fb78b..e0836f729cad 100644 --- a/drivers/net/wireless/broadcom/bcmdhd/rk_dhd_pcie_linux.h +++ b/drivers/net/wireless/broadcom/bcmdhd/rk_dhd_pcie_linux.h @@ -12,8 +12,9 @@ #include #include #include -#include +//#include +#if 0 static inline void rk_dhd_bus_l1ss_enable_rc_ep(dhd_bus_t *bus, bool enable) { @@ -32,5 +33,6 @@ rk_dhd_bus_is_rc_ep_l1ss_capable(dhd_bus_t *bus) { return pcie_aspm_ext_is_rc_ep_l1ss_capable(bus->dev, bus->rc_dev); } +#endif #endif /* __RK_DHD_PCIE_LINUX_H__ */ diff --git a/drivers/net/wireless/broadcom/bcmdhd/wl_android.c b/drivers/net/wireless/broadcom/bcmdhd/wl_android.c index ec37154b69f4..dfcd00181ab4 100644 --- a/drivers/net/wireless/broadcom/bcmdhd/wl_android.c +++ b/drivers/net/wireless/broadcom/bcmdhd/wl_android.c @@ -450,8 +450,8 @@ typedef struct android_wifi_af_params { #define BUFSZ 8 #define BUFSZN BUFSZ + 1 -#define _S(x) #x -#define S(x) _S(x) +#define _SS(x) #x +#define S(x) _SS(x) #define MAXBANDS 2 /**< Maximum #of bands */ #define BAND_2G_INDEX 1 @@ -12209,7 +12209,7 @@ wl_handle_private_cmd(struct net_device *net, char *command, u32 cmd_len) if ((rev_info_delim) && (strnicmp(rev_info_delim, CMD_COUNTRY_DELIMITER, strlen(CMD_COUNTRY_DELIMITER)) == 0) && - (rev_info_delim + 1)) { + *(rev_info_delim + 1)) { revinfo = bcm_atoi(rev_info_delim + 1); } else { revinfo = 0; diff --git a/drivers/net/wireless/broadcom/bcmdhd/wl_android_ext.c b/drivers/net/wireless/broadcom/bcmdhd/wl_android_ext.c index 75aacebf118d..7b120af2b1e1 100644 --- a/drivers/net/wireless/broadcom/bcmdhd/wl_android_ext.c +++ b/drivers/net/wireless/broadcom/bcmdhd/wl_android_ext.c @@ -2592,7 +2592,7 @@ wl_ext_get_country(struct net_device *dev, char *data, char *command, char *rev_info_delim = country_code + 2; /* 2 bytes of country code */ int revinfo = 0; if ((rev_info_delim) && - (strnicmp(rev_info_delim, "/", strlen("/")) == 0) && (rev_info_delim + 1)) { + (strnicmp(rev_info_delim, "/", strlen("/")) == 0) && *(rev_info_delim + 1)) { revinfo = bcm_atoi(rev_info_delim + 1); } #ifdef WL_CFG80211 diff --git a/drivers/net/wireless/broadcom/bcmdhd/wl_cfg80211.c b/drivers/net/wireless/broadcom/bcmdhd/wl_cfg80211.c index a1cb125967b8..0e53a9d51d9f 100644 --- a/drivers/net/wireless/broadcom/bcmdhd/wl_cfg80211.c +++ b/drivers/net/wireless/broadcom/bcmdhd/wl_cfg80211.c @@ -1241,8 +1241,8 @@ static const rsn_akm_wpa_auth_entry_t rsn_akm_wpa_auth_lookup_tbl[] = { #define BUFSZ 8 #define BUFSZN BUFSZ + 1 -#define _S(x) #x -#define S(x) _S(x) +//#define _S(x) #x +//#define S(x) _S(x) #define SOFT_AP_IF_NAME "swlan0" @@ -10736,17 +10736,13 @@ void wl_config_custom_regulatory(struct wiphy *wiphy) #if defined(WL_SELF_MANAGED_REGDOM) && (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0)) /* Use self managed regulatory domain */ - wiphy->regulatory_flags |= REGULATORY_WIPHY_SELF_MANAGED | - REGULATORY_IGNORE_STALE_KICKOFF; + wiphy->regulatory_flags |= REGULATORY_WIPHY_SELF_MANAGED; WL_DBG(("Self managed regdom\n")); return; #else /* WL_SELF_MANAGED_REGDOM && KERNEL >= 4.0 */ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0)) wiphy->regulatory_flags |= -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)) - REGULATORY_IGNORE_STALE_KICKOFF | -#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ REGULATORY_CUSTOM_REG; #else /* KERNEL VER >= 3.14 */ wiphy->flags |= WIPHY_FLAG_CUSTOM_REGULATORY; @@ -21739,7 +21735,7 @@ wl_cfg80211_sup_event_handler(struct bcm_cfg80211 *cfg, bcm_struct_cfgdev *cfgde #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)) /* NL80211_CMD_PORT_AUTHORIZED supported above >= 4.15 */ cfg80211_port_authorized(ndev, (u8 *)wl_read_prof(cfg, ndev, WL_PROF_BSSID), - GFP_KERNEL); + NULL, 0, GFP_KERNEL); WL_INFORM_MEM(("4way HS finished. port authorized event sent\n")); #elif ((LINUX_VERSION_CODE > KERNEL_VERSION(3, 14, 0)) || defined(WL_VENDOR_EXT_SUPPORT)) err = wl_cfgvendor_send_async_event(bcmcfg_to_wiphy(cfg), ndev, diff --git a/drivers/net/wireless/broadcom/bcmdhd/wl_cfgscan.c b/drivers/net/wireless/broadcom/bcmdhd/wl_cfgscan.c index 606f32767ce8..85b09a860ffc 100644 --- a/drivers/net/wireless/broadcom/bcmdhd/wl_cfgscan.c +++ b/drivers/net/wireless/broadcom/bcmdhd/wl_cfgscan.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include diff --git a/drivers/net/wireless/broadcom/bcmdhd/wl_cfgvendor.c b/drivers/net/wireless/broadcom/bcmdhd/wl_cfgvendor.c index 480dc1faf0a0..8b5f9c9e56b2 100644 --- a/drivers/net/wireless/broadcom/bcmdhd/wl_cfgvendor.c +++ b/drivers/net/wireless/broadcom/bcmdhd/wl_cfgvendor.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include diff --git a/drivers/net/wireless/broadcom/bcmdhd/wl_cfgvif.c b/drivers/net/wireless/broadcom/bcmdhd/wl_cfgvif.c index e94dcaba1096..06df99f7be6e 100644 --- a/drivers/net/wireless/broadcom/bcmdhd/wl_cfgvif.c +++ b/drivers/net/wireless/broadcom/bcmdhd/wl_cfgvif.c @@ -875,7 +875,7 @@ wl_cfg80211_handle_if_role_conflict(struct bcm_cfg80211 *cfg, #endif /* WL_IFACE_MGMT */ s32 -wl_release_vif_macaddr(struct bcm_cfg80211 *cfg, u8 *mac_addr, u16 wl_iftype) +wl_release_vif_macaddr(struct bcm_cfg80211 *cfg, const u8 *mac_addr, u16 wl_iftype) { struct net_device *ndev = bcmcfg_to_prmry_ndev(cfg); u16 org_toggle_bytes; @@ -4792,6 +4792,13 @@ static void wl_tdls_enable(struct bcm_cfg80211 *cfg) #endif /* WLTDLS */ + + + int (*tdls_mgmt)(struct wiphy *wiphy, struct net_device *dev, + const u8 *peer, u8 action_code, u8 dialog_token, + u16 status_code, u32 peer_capability, + bool initiator, const u8 *buf, size_t len); + #if (LINUX_VERSION_CODE > KERNEL_VERSION(3, 2, 0)) || \ defined(WL_COMPAT_WIRELESS) s32 @@ -4807,7 +4814,7 @@ wl_cfg80211_tdls_mgmt(struct wiphy *wiphy, struct net_device *dev, u32 peer_capability, const u8 *buf, size_t len) #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0)) wl_cfg80211_tdls_mgmt(struct wiphy *wiphy, struct net_device *dev, - const u8 *peer, u8 action_code, u8 dialog_token, u16 status_code, + const u8 *peer, int link_id, u8 action_code, u8 dialog_token, u16 status_code, u32 peer_capability, bool initiator, const u8 *buf, size_t len) #else /* CONFIG_ARCH_MSM && TDLS_MGMT_VERSION2 */ wl_cfg80211_tdls_mgmt(struct wiphy *wiphy, struct net_device *dev, @@ -5249,7 +5256,7 @@ wl_cfg80211_ch_switch_notify(struct net_device *dev, uint16 chanspec, struct wip #if (LINUX_VERSION_CODE >= KERNEL_VERSION (3, 8, 0)) freq = chandef.chan ? chandef.chan->center_freq : chandef.center_freq1; #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 2) || defined(CFG80211_BKPORT_MLO) - cfg80211_ch_switch_notify(dev, &chandef, 0); + cfg80211_ch_switch_notify(dev, &chandef, 0, 0); #else cfg80211_ch_switch_notify(dev, &chandef); #endif diff --git a/drivers/net/wireless/broadcom/bcmdhd/wl_cfgvif.h b/drivers/net/wireless/broadcom/bcmdhd/wl_cfgvif.h index e7daeec18374..bd3cc705fe98 100644 --- a/drivers/net/wireless/broadcom/bcmdhd/wl_cfgvif.h +++ b/drivers/net/wireless/broadcom/bcmdhd/wl_cfgvif.h @@ -126,7 +126,7 @@ extern wl_iftype_t wl_cfg80211_get_sec_iface(struct bcm_cfg80211 *cfg); #endif /* WL_IFACE_MGMT */ extern s32 wl_get_vif_macaddr(struct bcm_cfg80211 *cfg, u16 wl_iftype, u8 *mac_addr); -extern s32 wl_release_vif_macaddr(struct bcm_cfg80211 *cfg, u8 *mac_addr, u16 wl_iftype); +extern s32 wl_release_vif_macaddr(struct bcm_cfg80211 *cfg, const u8 *mac_addr, u16 wl_iftype); int wl_cfg80211_set_he_mode(struct net_device *dev, struct bcm_cfg80211 *cfg, s32 bssidx, u32 interface_type, bool set); @@ -159,7 +159,7 @@ extern s32 wl_cfg80211_tdls_mgmt(struct wiphy *wiphy, struct net_device *dev, u32 peer_capability, const u8 *buf, size_t len); #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0)) extern s32 wl_cfg80211_tdls_mgmt(struct wiphy *wiphy, struct net_device *dev, - const u8 *peer, u8 action_code, u8 dialog_token, u16 status_code, + const u8 *peer, int link_id, u8 action_code, u8 dialog_token, u16 status_code, u32 peer_capability, bool initiator, const u8 *buf, size_t len); #else /* CONFIG_ARCH_MSM && TDLS_MGMT_VERSION2 */ extern s32 wl_cfg80211_tdls_mgmt(struct wiphy *wiphy, struct net_device *dev, diff --git a/drivers/net/wireless/broadcom/bcmdhd/wl_iw.h b/drivers/net/wireless/broadcom/bcmdhd/wl_iw.h index e161006a2bd6..f7bd60ca25c6 100644 --- a/drivers/net/wireless/broadcom/bcmdhd/wl_iw.h +++ b/drivers/net/wireless/broadcom/bcmdhd/wl_iw.h @@ -83,7 +83,7 @@ typedef struct wl_iw_extra_params { #define WL_IW_RSSI_INVALID 0 /* invalid RSSI value */ #define MAX_WX_STRING 80 #define SSID_FMT_BUF_LEN ((4 * 32) + 1) -#define isprint(c) bcm_isprint(c) +//#define isprint(c) bcm_isprint(c) #define WL_IW_SET_ACTIVE_SCAN (SIOCIWFIRSTPRIV+1) #define WL_IW_GET_RSSI (SIOCIWFIRSTPRIV+3) #define WL_IW_SET_PASSIVE_SCAN (SIOCIWFIRSTPRIV+5) -- 2.34.1