MTK Wlan驱动功能

最近查一下MTK Wifi的一个Mac Address功能,结果查找代码,竟然在kernel下

找不到代码,真是服了MTK。由于手上没有相关的芯片资料。

 解决方法,打印net_device_ops的地址%p ndo_open,定位使用的哪组驱动。

然后对照kernel符合表SystemMap,找到对应的code。记录一下。

vendor/mediatek/kernel_modules/connectivity/wlan/core/gen4m/os/linux/gl_kal.c

vendor/mediatek/kernel_modules/connectivity/wlan/core/gen2/os/linux/gl_init.c

 

static const struct net_device_ops wlan_netdev_ops = {
    .ndo_open = wlanOpen,
    .ndo_stop = wlanStop,
    .ndo_set_rx_mode = wlanSetMulticastList,
    .ndo_do_ioctl = wlanDoIOCTL,
    .ndo_start_xmit = wlanHardStartXmit,
    .ndo_init = wlanInit,
    .ndo_uninit = wlanUninit,
    .ndo_select_queue = wlanSelectQueue,
    .ndo_set_mac_address = wlanSetMacAddress,
};

 

struct wireless_dev *wlanNetCreate

void createWirelessDevice {struct net_device *prNetDev ;  struct wireless_dev *prWdev = NULL;

 

wlanAdapterStart()

* @brief This function is called toupdate network address in firmware domain

WLAN_STATUS wlanUpdateNetworkAddress(IN P_ADAPTER_T prAdapter)

 

./net/socket.c:         case SIOCGIFHWADDR:

SIOCSIFHWADDR    设置Mac 地址

./net/core/dev_ioctl.c: case SIOCGIFHWADDR:  获取Mac 地址

  int dev_ioctl(struct net *net, unsigned int cmd, void __user *arg)  / 这里有调用入口

 

wmt_detect.c  动态实现 Wlan driver的prob,exit

conn_drv_init.c    int do_connectivity_driver_init(int chip_id)
wlan_drv_init.c     int do_wlan_drv_init(int chip_id)
gl_init.c     static INT_32 wlanProbe(PVOID pvData)
gl_cfg80211.c    这个是平台协议级的,非具体的Wifi 模块

nic_cmd_event.c  ///网络接口控制器(英语:network interface controller,NIC),又称网络接口控制器,网络适配器,网卡,或局域网接收器,

\external\wpa_supplicant_8\src\drivers\driver_nl80211.c          Wpa_supplicant 层

\external\wpa_supplicant_8\src\drivers\driver_nl80211_event.c

#define WMT_DETECT_DRVIER_NAME "mtk_wcn_detect"
#define WMT_DETECT_DEVICE_NAME "wmtdetect"

 

WifiStateMachine.java 层

frameworks\opt\net\wifi\service\java\com\android\server\wifi

 

引用一下别人的图

来源:

       https://blog.csdn.net/qq_44884706/article/details/89174955?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v28-9-89174955.nonecase&utm_term=androido%20usb%20%E6%9E%B6%E6%9E%84&spm=1000.2123.3001.4430

 

 

Camera:

    // Minimum FPS for a size to be listed in supported preview/video sizes
    // Set to slightly less than 30.0 to have some tolerance margin
    static constexpr double MIN_PREVIEW_RECORD_FPS = 29.97;

  frameworks/av/services/camera/libcameraservice/api1/client2/Parameters.h:214:    

static constexpr double MIN_PREVIEW_RECORD_FPS = 29.97;

 

MTK dws

vendor/mediatek/proprietary/scripts/dct/DrvGen.exe


版权声明:本文为junwua原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。