From 4f58925005b9cc956b4c05eda7693577bc2cfe04 Mon Sep 17 00:00:00 2001 From: Alex Zhao Date: Thu, 7 Sep 2017 21:03:30 +0800 Subject: [PATCH] net: wireless: rockchip_wlan: Automatically set bcm wifi fw path Change-Id: Iabea49eec3b9285ec1b98de6bee8b0d6d7b2dbe0 Signed-off-by: Alex Zhao --- .../rockchip_wlan/rkwifi/rk_wifi_config.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c b/drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c index db94e7e79f68..230c33776967 100755 --- a/drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c +++ b/drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c @@ -16,13 +16,24 @@ * Set Firmware Path */ -#define ANDROID_FW_PATH "/system/etc/firmware/" +#define VENDOR_ETC_FIRMWARE "/vendor/etc/firmware/" +#define SYSTEM_ETC_FIRMWARE "/system/etc/firmware/" +char ANDROID_FW_PATH[64] = {0}; extern int get_wifi_chip_type(void); int rkwifi_set_firmware(char *fw, char *nvram) { int chip = get_wifi_chip_type(); - + struct file *filp = NULL; + + filp = filp_open(VENDOR_ETC_FIRMWARE, O_RDONLY, 0); + + if (!IS_ERR(filp)) { + strcpy(ANDROID_FW_PATH, VENDOR_ETC_FIRMWARE); + } else { + strcpy(ANDROID_FW_PATH, SYSTEM_ETC_FIRMWARE); + } + if (chip == WIFI_RK903) { sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_RK903b2.bin"); sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_RK903_26M.cal");