Android WIFI模组适配

目录

Android 7.1

Android 11


Android 7.1


    使用chipid和rev 区分ap6256 、ap6255 模组,模组的pid/vid都是02d0:a9bf,无法使用pid/vid做区分

    问题描述:
    1、系统通过/sys/module/bcmdhd/parameters/chipid信息进行识别
    2、需要系统设置下的WIFI开关打开后/sys/module/bcmdhd/parameters/chipid节点才能生成
    3、需要打开一下WIFI开关,系统设置下关于设备界面的WIFI模组型号显示才会刷新
    4、WIFI开关打开一次后,以后无论WIFI开关处于什么状态,系统设置下关于设备界面的WIFI模组型号都会与板载WIFI模组型号保持一致
    5、恢复出厂设置后,同样要打开一次wifi开关,系统设置下关于设备界面的WIFI模组型号显示才会刷新
    6、核心板插入到其它与原有不同模组型号的底板,需要恢复一下出厂设置清除缓存才能正常显示型号

    modified:   hardware/libhardware_legacy/wifi/rk_wifi_ctrl.c
    modified:   hardware/libhardware_legacy/wifi/wifi.c
    modified:   kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_sdio.c
    modified:   packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java

diff --git a/hardware/libhardware_legacy/wifi/rk_wifi_ctrl.c b/hardware/libhardware_legacy/wifi/rk_wifi_ctrl.c
index aa22a06..2ca2675 100755
--- a/hardware/libhardware_legacy/wifi/rk_wifi_ctrl.c
+++ b/hardware/libhardware_legacy/wifi/rk_wifi_ctrl.c
@@ -90,6 +90,7 @@ static wifi_device supported_wifi_devices[] = {
        {"AP6356S",     "02d0:4356"},
        {"AP6335",      "02d0:4335"},
        {"AP6255",      "02d0:a9bf"},
+       {"AP6256",      "02d0:a9bf"},
        {"AP6203BM",      "02d0:a804"},
        {"RTL8822BE",   "10ec:b822"},
        {"AIC8800DS",     "5449:0145"},
@@ -102,6 +103,7 @@ int get_wifi_device_id(const char *bus_dir, const char *prefix)
 {
        int idnum;
        int i = 0;
+       int is_chipid_6256 = 0;
        int ret = invalid_wifi_device_id;
        DIR *dir;
        struct dirent *next;
@@ -113,6 +115,20 @@ int get_wifi_device_id(const char *bus_dir, const char *prefix)
                return invalid_wifi_device_id;
        }

+       fp = fopen("/sys/module/bcmdhd/parameters/chipid", "r");
+       if (fp == NULL) {
+               ALOGE("Couldn't open /sys/module/bcmdhd/parameters/chipid");
+       }else {
+               char line[64];
+               while (fgets(line, sizeof(line), fp)) {
+                       if ((strstr(line, "Chip:4345") != NULL) && (strstr(line, "Rev:9") != NULL))  {
+                               ALOGE( "Wifi chip id is 4345 (ap6256)...");

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值