最近查一下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
引用一下别人的图

来源:
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