From 37f49e37ab4cb5d0bc4c60eb5c6d4dd57db767bb Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Fri, 10 May 2024 07:44:59 +0000
Subject: [PATCH] gmac get mac form eeprom
---
kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_linux_platdev.c | 47 +++++++++++++++++++++++------------------------
1 files changed, 23 insertions(+), 24 deletions(-)
diff --git a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_linux_platdev.c b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_linux_platdev.c
old mode 100644
new mode 100755
index 1f630ae..ab67812
--- a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_linux_platdev.c
+++ b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_linux_platdev.c
@@ -42,6 +42,9 @@
#else
#include <dhd_plat.h>
#endif /* CONFIG_WIFI_CONTROL_FUNC */
+#ifdef BCMDBUS
+#include <dbus.h>
+#endif
#ifdef CONFIG_DTS
#include<linux/regulator/consumer.h>
#include<linux/of_gpio.h>
@@ -167,7 +170,7 @@
return NULL;
plat_data = adapter->wifi_plat_data;
if (plat_data->mem_prealloc) {
-#if defined(BCMDHD_MDRIVER) && !defined(DHD_STATIC_IN_DRIVER)
+#ifdef BCMDHD_MDRIVER
alloc_ptr = plat_data->mem_prealloc(adapter->bus_type, adapter->index, section, size);
#else
alloc_ptr = plat_data->mem_prealloc(section, size);
@@ -566,7 +569,16 @@
return -ENOMEM;
}
adapter->name = "DHD generic adapter";
+ adapter->index = -1;
+#if defined(BCMDHD_MDRIVER) && !defined(DHD_STATIC_IN_DRIVER)
+#ifdef BCMSDIO
adapter->index = 0;
+#elif defined(BCMPCIE)
+ adapter->index = 1;
+#elif defined(BCMDBUS)
+ adapter->index = 2;
+#endif
+#endif
adapter->bus_type = -1;
adapter->bus_num = -1;
adapter->slot_num = -1;
@@ -759,11 +771,10 @@
err = dhd_bus_register();
} else {
#ifdef DHD_SUPPORT_HDM
- if (dhd_download_fw_on_driverload || hdm_trigger_init)
+ if (dhd_download_fw_on_driverload || hdm_trigger_init) {
#else
- if (dhd_download_fw_on_driverload)
+ if (dhd_download_fw_on_driverload) {
#endif /* DHD_SUPPORT_HDM */
- {
/* power up all adapters */
for (i = 0; i < dhd_wifi_platdata->num_adapters; i++) {
int retry = POWERUP_MAX_RETRY;
@@ -885,9 +896,7 @@
for (i = 0; i < dhd_wifi_platdata->num_adapters; i++) {
bool chip_up = FALSE;
int retry = POWERUP_MAX_RETRY;
-#ifndef DHD_INSMOD_NOWAIT
struct semaphore dhd_chipup_sem;
-#endif
adapter = &dhd_wifi_platdata->adapters[i];
@@ -898,18 +907,6 @@
adapter->bus_type, adapter->bus_num, adapter->slot_num));
do {
-#ifdef DHD_INSMOD_NOWAIT
- err = wifi_platform_set_power(adapter, TRUE, WIFI_TURNON_DELAY);
- if (err) {
- DHD_ERROR(("%s: wifi pwr on error ! \n", __FUNCTION__));
- wifi_platform_set_power(adapter, FALSE, WIFI_TURNOFF_DELAY);
- continue;
- } else {
- wifi_platform_bus_enumerate(adapter, TRUE);
- chip_up = TRUE;
- break;
- }
-#else
sema_init(&dhd_chipup_sem, 0);
err = dhd_bus_reg_sdio_notify(&dhd_chipup_sem);
if (err) {
@@ -938,7 +935,6 @@
dhd_bus_unreg_sdio_notify();
wifi_platform_set_power(adapter, FALSE, WIFI_TURNOFF_DELAY);
wifi_platform_bus_enumerate(adapter, FALSE);
-#endif
} while (retry--);
if (!chip_up) {
@@ -955,7 +951,6 @@
goto fail;
}
-#ifndef DHD_INSMOD_NOWAIT
/*
* Wait till MMC sdio_register_driver callback called and made driver attach.
* It's needed to make sync up exit from dhd insmod and
@@ -967,7 +962,6 @@
dhd_bus_unregister();
goto fail;
}
-#endif
return err;
@@ -1000,6 +994,7 @@
wifi_adapter_info_t *adapter;
s32 timeout = -1;
int i;
+ enum wifi_adapter_status wait_status;
#endif
#if !defined(DHD_PRELOAD)
@@ -1008,7 +1003,7 @@
adapter = &dhd_wifi_platdata->adapters[i];
wifi_platform_set_power(adapter, FALSE, 0);
if (err) {
- DHD_ERROR(("failed to wifi_platform_set_power off %s\n", adapter->name));
+ DHD_ERROR(("failed to wifi_platform_set_power on %s\n", adapter->name));
goto exit;
}
}
@@ -1035,8 +1030,12 @@
DHD_ERROR(("failed to wifi_platform_set_power on %s\n", adapter->name));
goto fail;
}
+ if (dhd_download_fw_on_driverload)
+ wait_status = WIFI_STATUS_ATTACH;
+ else
+ wait_status = WIFI_STATUS_DETTACH;
timeout = wait_event_interruptible_timeout(adapter->status_event,
- wifi_get_adapter_status(adapter, WIFI_STATUS_NET_ATTACHED),
+ wifi_get_adapter_status(adapter, wait_status),
msecs_to_jiffies(DHD_REGISTRATION_TIMEOUT));
if (timeout <= 0) {
err = -1;
@@ -1068,7 +1067,7 @@
}
#endif /* BCMDBUS */
-static int dhd_wifi_platform_load()
+static int dhd_wifi_platform_load(void)
{
int err = 0;
printf("%s: Enter\n", __FUNCTION__);
--
Gitblit v1.6.2