mirror of
https://github.com/drygdryg/rtl8188eus.git
synced 2025-04-29 02:37:16 +09:00
commit
cd7a48f950
28
README.md
28
README.md
@ -18,15 +18,24 @@ The performance and code quality has been improved and thats about time.
|
||||
|
||||
# HowTo build/install
|
||||
1. You will need to blacklist another driver in order to use this one instead of the kernel provided.
|
||||
We included a "realtek_blacklist.conf" file in the folder. "cp realtek_blacklist.conf /etc/modprobe.d"
|
||||
We included a "realtek_blacklist.conf" file in the folder:<br>
|
||||
2. "cp realtek_blacklist.conf /etc/modprobe.d/"<br>
|
||||
3. "make && make install"<br>
|
||||
4. "rmmod r8188eu && insmod rtl8188eu"
|
||||
4. "rmmod 8188eu && insmod 8188eu.ko"
|
||||
|
||||
# MONITOR MODE ATTENTION
|
||||
There is a bug or interferrence with the driver and/or Network-Manager,
|
||||
so if you wan't to use the monitor mode, DON'T kill the network-manager or use airmon-ng (infact)
|
||||
# MONITOR MODE howto
|
||||
Use these steps to enter monitor mode.
|
||||
```
|
||||
airmon-ng check-kill
|
||||
ip link set <interface> down
|
||||
iw dev <interface> set type monitor
|
||||
```
|
||||
Frame injection test may be performed with
|
||||
```
|
||||
aireplay -9 <interface>
|
||||
```
|
||||
|
||||
<b>FIX:</b>
|
||||
# NetworkManager configuration
|
||||
Add these lines below to "NetworkManager.conf" and ADD YOUR ADAPTER MAC below [keyfile]
|
||||
This will make the Network-Manager ignore the device, and therefor don't cause problems.
|
||||
```
|
||||
@ -47,11 +56,16 @@ unmanaged-devices=mac:A7:A7:A7:A7:A7
|
||||
```
|
||||
|
||||
# TODO
|
||||
* Fix a issue where the interface is down on startup
|
||||
* Implement txpower control
|
||||
|
||||
* Finish up the elimination of the wrapper _rtw_memset.
|
||||
I didn't have more time after "rtw_beamforming.c"
|
||||
|
||||
* Check code with checkpatch.pl (found in "tools")
|
||||
|
||||
* There is a bug in monitor mode related to Network-Manager.
|
||||
This needs priority because it causes interferrence.
|
||||
|
||||
* pcap_activate error on "reaver" - investigate
|
||||
* Add/upload the documentation
|
||||
* Add more VID/PIDS for all 3 chipsets supported.
|
||||
|
@ -4355,7 +4355,7 @@ s32 rtw_monitor_xmit_entry(struct sk_buff *skb, struct net_device *ndev)
|
||||
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv);
|
||||
unsigned char *pframe;
|
||||
u8 dummybuf[32];
|
||||
int len = skb->len, rtap_len;
|
||||
int len = skb->len, rtap_len, consume;
|
||||
|
||||
if (skb)
|
||||
rtw_mstat_update(MSTAT_TYPE_SKB, MSTAT_ALLOC_SUCCESS, skb->truesize);
|
||||
@ -4372,12 +4372,15 @@ s32 rtw_monitor_xmit_entry(struct sk_buff *skb, struct net_device *ndev)
|
||||
if (unlikely(skb->len < rtap_len))
|
||||
goto fail;
|
||||
|
||||
if (rtap_len != 12) {
|
||||
RTW_INFO("radiotap len (should be 14): %d\n", rtap_len);
|
||||
goto fail;
|
||||
len -= sizeof(struct ieee80211_radiotap_header);
|
||||
rtap_len -= sizeof(struct ieee80211_radiotap_header);
|
||||
|
||||
while(rtap_len) {
|
||||
consume = rtap_len > sizeof(dummybuf) ? sizeof(dummybuf) : rtap_len;
|
||||
_rtw_pktfile_read(&pktfile, dummybuf, consume);
|
||||
rtap_len -= consume;
|
||||
len -= consume;
|
||||
}
|
||||
_rtw_pktfile_read(&pktfile, dummybuf, rtap_len-sizeof(struct ieee80211_radiotap_header));
|
||||
len = len - rtap_len;
|
||||
|
||||
pmgntframe = alloc_mgtxmitframe(pxmitpriv);
|
||||
if (pmgntframe == NULL) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
PACKAGE_NAME="realtek-rtl8188eus"
|
||||
PACKAGE_VERSION="5.3.9~20190214"
|
||||
PACKAGE_VERSION="5.3.9~20190215"
|
||||
CLEAN="'make' clean"
|
||||
BUILT_MODULE_NAME[0]=8188eu
|
||||
PROCS_NUM=`nproc`
|
||||
|
@ -761,7 +761,7 @@ struct cfg80211_bss *rtw_cfg80211_inform_bss(_adapter *padapter, struct wlan_net
|
||||
|
||||
pbuf = rtw_zmalloc(buf_size);
|
||||
if (pbuf == NULL) {
|
||||
RTW_INFO("%s pbuf allocate failed !!\n", __FUNCTION__);
|
||||
RTW_INFO("%s pbuf allocate failed !!\n", __func__);
|
||||
return bss;
|
||||
}
|
||||
|
||||
@ -769,7 +769,7 @@ struct cfg80211_bss *rtw_cfg80211_inform_bss(_adapter *padapter, struct wlan_net
|
||||
|
||||
bssinf_len = pnetwork->network.IELength + sizeof(struct rtw_ieee80211_hdr_3addr);
|
||||
if (bssinf_len > buf_size) {
|
||||
RTW_INFO("%s IE Length too long > %zu byte\n", __FUNCTION__, buf_size);
|
||||
RTW_INFO("%s IE Length too long > %zu byte\n", __func__, buf_size);
|
||||
goto exit;
|
||||
}
|
||||
|
||||
@ -779,7 +779,7 @@ struct cfg80211_bss *rtw_cfg80211_inform_bss(_adapter *padapter, struct wlan_net
|
||||
|
||||
if (rtw_get_wapi_ie(pnetwork->network.IEs, pnetwork->network.IELength, NULL, &wapi_len) > 0) {
|
||||
if (wapi_len > 0) {
|
||||
RTW_INFO("%s, no support wapi!\n", __FUNCTION__);
|
||||
RTW_INFO("%s, no support wapi!\n", __func__);
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
@ -1237,7 +1237,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa
|
||||
struct security_priv *psecuritypriv = &(padapter->securitypriv);
|
||||
struct sta_priv *pstapriv = &padapter->stapriv;
|
||||
|
||||
RTW_INFO("%s\n", __FUNCTION__);
|
||||
RTW_INFO("%s\n", __func__);
|
||||
|
||||
param->u.crypt.err = 0;
|
||||
param->u.crypt.alg[IEEE_CRYPT_ALG_NAME_LEN - 1] = '\0';
|
||||
@ -1596,8 +1596,8 @@ static int rtw_cfg80211_set_encryption(struct net_device *dev, struct ieee_param
|
||||
_rtw_memcpy(padapter->securitypriv.dot118021XGrptxmickey[param->u.crypt.idx].skey, &(param->u.crypt.key[16]), 8);
|
||||
_rtw_memcpy(padapter->securitypriv.dot118021XGrprxmickey[param->u.crypt.idx].skey, &(param->u.crypt.key[24]), 8);
|
||||
padapter->securitypriv.binstallGrpkey = _TRUE;
|
||||
if (param->u.crypt.idx < 4)
|
||||
_rtw_memcpy(padapter->securitypriv.iv_seq[param->u.crypt.idx], param->u.crypt.seq, 8);
|
||||
if (param->u.crypt.idx < 4)
|
||||
_rtw_memcpy(padapter->securitypriv.iv_seq[param->u.crypt.idx], param->u.crypt.seq, 8);
|
||||
padapter->securitypriv.dot118021XGrpKeyid = param->u.crypt.idx;
|
||||
rtw_set_key(padapter, &padapter->securitypriv, param->u.crypt.idx, 1, _TRUE);
|
||||
|
||||
@ -1842,7 +1842,7 @@ static int cfg80211_rtw_get_key(struct wiphy *wiphy, struct net_device *ndev
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE)
|
||||
|| (MLME_IS_STA(adapter) && !pairwise)
|
||||
#endif
|
||||
) {
|
||||
) {
|
||||
/* WEP key, TX GTK/IGTK, RX GTK/IGTK(for STA mode) */
|
||||
if (is_wep_enc(sec->dot118021XGrpPrivacy)) {
|
||||
if (keyid >= WEP_KEYS)
|
||||
@ -1931,7 +1931,7 @@ static int cfg80211_rtw_get_key(struct wiphy *wiphy, struct net_device *ndev
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
|
||||
|
||||
exit:
|
||||
RTW_INFO(FUNC_NDEV_FMT
|
||||
GET_KEY_PARAM_FMT_S
|
||||
@ -2458,7 +2458,7 @@ void rtw_cfg80211_indicate_scan_done(_adapter *adapter, bool aborted)
|
||||
_enter_critical_bh(&pwdev_priv->scan_req_lock, &irqL);
|
||||
if (pwdev_priv->scan_request != NULL) {
|
||||
#ifdef CONFIG_DEBUG_CFG80211
|
||||
RTW_INFO("%s with scan req\n", __FUNCTION__);
|
||||
RTW_INFO("%s with scan req\n", __func__);
|
||||
#endif
|
||||
|
||||
/* avoid WARN_ON(request != wiphy_to_dev(request->wiphy)->scan_req); */
|
||||
@ -2474,7 +2474,7 @@ void rtw_cfg80211_indicate_scan_done(_adapter *adapter, bool aborted)
|
||||
pwdev_priv->scan_request = NULL;
|
||||
} else {
|
||||
#ifdef CONFIG_DEBUG_CFG80211
|
||||
RTW_INFO("%s without scan req\n", __FUNCTION__);
|
||||
RTW_INFO("%s without scan req\n", __func__);
|
||||
#endif
|
||||
}
|
||||
_exit_critical_bh(&pwdev_priv->scan_req_lock, &irqL);
|
||||
@ -2661,7 +2661,7 @@ static int rtw_cfg80211_set_probe_req_wpsp2pie(_adapter *padapter, char *buf, in
|
||||
|
||||
pmlmepriv->wps_probe_req_ie = rtw_malloc(wps_ielen);
|
||||
if (pmlmepriv->wps_probe_req_ie == NULL) {
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__);
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __func__, __LINE__);
|
||||
return -EINVAL;
|
||||
|
||||
}
|
||||
@ -2692,7 +2692,7 @@ static int rtw_cfg80211_set_probe_req_wpsp2pie(_adapter *padapter, char *buf, in
|
||||
|
||||
pmlmepriv->p2p_probe_req_ie = rtw_malloc(p2p_ielen);
|
||||
if (pmlmepriv->p2p_probe_req_ie == NULL) {
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__);
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __func__, __LINE__);
|
||||
return -EINVAL;
|
||||
|
||||
}
|
||||
@ -3311,7 +3311,7 @@ static int rtw_cfg80211_set_wpa_ie(_adapter *padapter, u8 *pie, size_t ielen)
|
||||
goto exit;
|
||||
}
|
||||
|
||||
_rtw_memcpy(buf, pie , ielen);
|
||||
_rtw_memcpy(buf, pie, ielen);
|
||||
|
||||
RTW_INFO("set wpa_ie(length:%zu):\n", ielen);
|
||||
RTW_INFO_DUMP(NULL, buf, ielen);
|
||||
@ -3934,7 +3934,7 @@ static int cfg80211_rtw_set_txpower(struct wiphy *wiphy,
|
||||
_adapter *padapter = wiphy_to_adapter(wiphy);
|
||||
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
|
||||
int value;
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) || defined(COMPAT_KERNEL_RELEASE)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 36)) || defined(COMPAT_KERNEL_RELEASE)
|
||||
value = mbm/100;
|
||||
#else
|
||||
value = dbm;
|
||||
@ -4215,7 +4215,7 @@ void rtw_cfg80211_indicate_sta_disassoc(_adapter *padapter, const u8 *da, unsign
|
||||
frame_len = sizeof(struct rtw_ieee80211_hdr_3addr);
|
||||
|
||||
reason = cpu_to_le16(reason);
|
||||
pmgmt_frame = rtw_set_fixed_ie(pmgmt_frame, _RSON_CODE_ , (unsigned char *)&reason, &frame_len);
|
||||
pmgmt_frame = rtw_set_fixed_ie(pmgmt_frame, _RSON_CODE_, (unsigned char *)&reason, &frame_len);
|
||||
|
||||
#ifdef COMPAT_KERNEL_RELEASE
|
||||
rtw_cfg80211_rx_mgmt(wdev, freq, 0, mgmt_buf, frame_len, GFP_ATOMIC);
|
||||
@ -4287,11 +4287,6 @@ static int rtw_cfg80211_monitor_if_xmit_entry(struct sk_buff *skb, struct net_de
|
||||
if (unlikely(skb->len < rtap_len))
|
||||
goto fail;
|
||||
|
||||
if (rtap_len != 14) {
|
||||
RTW_INFO("radiotap len (should be 14): %d\n", rtap_len);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* Skip the ratio tap header */
|
||||
skb_pull(skb, rtap_len);
|
||||
|
||||
@ -5423,8 +5418,7 @@ static int cfg80211_rtw_change_station(struct wiphy *wiphy, struct net_device *n
|
||||
goto release_plink_ctl;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (params->plink_state == NL80211_PLINK_HOLDING
|
||||
} else if (params->plink_state == NL80211_PLINK_HOLDING
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0))
|
||||
&& (params->sta_modify_mask & STATION_PARAM_APPLY_PLINK_STATE)
|
||||
#endif
|
||||
@ -5526,7 +5520,7 @@ static int cfg80211_rtw_dump_station(struct wiphy *wiphy, struct net_device *nde
|
||||
else
|
||||
_rtw_memcpy(mac, plink->addr, ETH_ALEN);
|
||||
#endif
|
||||
|
||||
|
||||
sinfo->filled = 0;
|
||||
|
||||
if (psta) {
|
||||
@ -5745,7 +5739,7 @@ void rtw_cfg80211_rx_probe_request(_adapter *adapter, union recv_frame *rframe)
|
||||
, ch, sch, MAC_ARG(get_addr2_ptr(frame)));
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE)
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE)
|
||||
rtw_cfg80211_rx_mgmt(wdev, freq, 0, frame, frame_len, GFP_ATOMIC);
|
||||
#else
|
||||
cfg80211_rx_action(adapter->pnetdev, freq, frame, frame_len, GFP_ATOMIC);
|
||||
@ -6168,7 +6162,7 @@ void rtw_cfg80211_issue_p2p_provision_request(_adapter *padapter, const u8 *buf,
|
||||
RTW_INFO("%s, ack to\n", __func__);
|
||||
|
||||
#if 0
|
||||
if(wps_devicepassword_id == WPS_DPID_REGISTRAR_SPEC) {
|
||||
if (wps_devicepassword_id == WPS_DPID_REGISTRAR_SPEC) {
|
||||
RTW_INFO("waiting for p2p peer key-in PIN CODE\n");
|
||||
rtw_msleep_os(15000); /* 15 sec for key in PIN CODE, workaround for GS2 before issuing Nego Req. */
|
||||
}
|
||||
@ -6341,7 +6335,7 @@ static s32 cfg80211_rtw_remain_on_channel(struct wiphy *wiphy,
|
||||
padapter->wdinfo.listen_channel = remain_ch;
|
||||
RTW_INFO(FUNC_ADPT_FMT" init listen_channel %u\n"
|
||||
, FUNC_ADPT_ARG(padapter), padapter->wdinfo.listen_channel);
|
||||
} else if (rtw_p2p_chk_state(pwdinfo , P2P_STATE_LISTEN)
|
||||
} else if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_LISTEN)
|
||||
&& (time_after_eq(rtw_get_current_time(), pwdev_priv->probe_resp_ie_update_time)
|
||||
&& rtw_get_passing_time_ms(pwdev_priv->probe_resp_ie_update_time) < 50)
|
||||
) {
|
||||
@ -7193,7 +7187,7 @@ static int cfg80211_rtw_tdls_mgmt(struct wiphy *wiphy,
|
||||
|
||||
/* Debug purpose */
|
||||
#if 1
|
||||
RTW_INFO("%s %d\n", __FUNCTION__, __LINE__);
|
||||
RTW_INFO("%s %d\n", __func__, __LINE__);
|
||||
RTW_INFO("peer:"MAC_FMT", action code:%d, dialog:%d, status code:%d\n",
|
||||
MAC_ARG(txmgmt.peer), txmgmt.action_code,
|
||||
txmgmt.dialog_token, txmgmt.status_code);
|
||||
@ -7474,7 +7468,7 @@ void dump_mesh_config(void *sel, const struct mesh_config *conf)
|
||||
RTW_PRINT_SEL(sel, "path_refresh_time:%u\n", conf->path_refresh_time);
|
||||
RTW_PRINT_SEL(sel, "min_discovery_timeout:%u\n", conf->min_discovery_timeout);
|
||||
RTW_PRINT_SEL(sel, "dot11MeshHWMPactivePathTimeout:%u\n", conf->dot11MeshHWMPactivePathTimeout);
|
||||
RTW_PRINT_SEL(sel, "dot11MeshHWMPpreqMinInterval:%u\n", conf->dot11MeshHWMPpreqMinInterval);
|
||||
RTW_PRINT_SEL(sel, "dot11MeshHWMPpreqMinInterval:%u\n", conf->dot11MeshHWMPpreqMinInterval);
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0))
|
||||
RTW_PRINT_SEL(sel, "dot11MeshHWMPperrMinInterval:%u\n", conf->dot11MeshHWMPperrMinInterval);
|
||||
#endif
|
||||
@ -7489,11 +7483,11 @@ void dump_mesh_config(void *sel, const struct mesh_config *conf)
|
||||
RTW_PRINT_SEL(sel, "dot11MeshForwarding:%d\n", conf->dot11MeshForwarding);
|
||||
RTW_PRINT_SEL(sel, "rssi_threshold:%d\n", conf->rssi_threshold);
|
||||
#endif
|
||||
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0))
|
||||
RTW_PRINT_SEL(sel, "ht_opmode:0x%04x\n", conf->ht_opmode);
|
||||
#endif
|
||||
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0))
|
||||
RTW_PRINT_SEL(sel, "dot11MeshHWMPactivePathToRootTimeout:%u\n", conf->dot11MeshHWMPactivePathToRootTimeout);
|
||||
RTW_PRINT_SEL(sel, "dot11MeshHWMProotInterval:%u\n", conf->dot11MeshHWMProotInterval);
|
||||
@ -7504,7 +7498,7 @@ void dump_mesh_config(void *sel, const struct mesh_config *conf)
|
||||
RTW_PRINT_SEL(sel, "power_mode:%s\n", nl80211_mesh_power_mode_str(conf->power_mode));
|
||||
RTW_PRINT_SEL(sel, "dot11MeshAwakeWindowDuration:%u\n", conf->dot11MeshAwakeWindowDuration);
|
||||
#endif
|
||||
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0))
|
||||
RTW_PRINT_SEL(sel, "plink_timeout:%u\n", conf->plink_timeout);
|
||||
#endif
|
||||
@ -7640,14 +7634,14 @@ static void rtw_cfg80211_mesh_cfg_set(_adapter *adapter, const struct mesh_confi
|
||||
if (chk_mesh_attr(NL80211_MESHCONF_HT_OPMODE, mask));
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0))
|
||||
if (chk_mesh_attr(NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT, mask))
|
||||
mcfg->dot11MeshHWMPactivePathToRootTimeout = conf->dot11MeshHWMPactivePathToRootTimeout;
|
||||
if (chk_mesh_attr(NL80211_MESHCONF_HWMP_ROOT_INTERVAL, mask))
|
||||
mcfg->dot11MeshHWMProotInterval = conf->dot11MeshHWMProotInterval;
|
||||
if (chk_mesh_attr(NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL, mask))
|
||||
mcfg->dot11MeshHWMPconfirmationInterval = conf->dot11MeshHWMPconfirmationInterval;
|
||||
mcfg->dot11MeshHWMPconfirmationInterval = conf->dot11MeshHWMPconfirmationInterval;
|
||||
#endif
|
||||
|
||||
#if 0 /* TBD */
|
||||
@ -7705,7 +7699,7 @@ u8 *rtw_cfg80211_construct_mesh_beacon_ies(struct wiphy *wiphy, _adapter *adapte
|
||||
#endif
|
||||
if (!ch)
|
||||
goto exit;
|
||||
|
||||
|
||||
#if defined(CONFIG_80211AC_VHT) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0))
|
||||
vht = ht && ch > 14 && bw >= CHANNEL_WIDTH_80; /* VHT40/VHT20? */
|
||||
#endif
|
||||
@ -7745,7 +7739,7 @@ u8 *rtw_cfg80211_construct_mesh_beacon_ies(struct wiphy *wiphy, _adapter *adapte
|
||||
c = ies + 8;
|
||||
|
||||
/* beacon interval */
|
||||
RTW_PUT_LE16(c , setup->beacon_interval);
|
||||
RTW_PUT_LE16(c, setup->beacon_interval);
|
||||
c += 2;
|
||||
|
||||
/* capability */
|
||||
@ -8030,7 +8024,7 @@ static int cfg80211_rtw_join_mesh(struct wiphy *wiphy, struct net_device *dev,
|
||||
ret = -EINVAL;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
|
||||
rtw_mesh_work(&adapter->mesh_work);
|
||||
|
||||
exit:
|
||||
@ -8111,7 +8105,7 @@ static int cfg80211_rtw_del_mpath(struct wiphy *wiphy, struct net_device *dev
|
||||
}
|
||||
} else {
|
||||
rtw_mesh_path_flush_by_iface(adapter);
|
||||
}
|
||||
}
|
||||
|
||||
exit:
|
||||
return ret;
|
||||
@ -8331,14 +8325,14 @@ static int cfg80211_rtw_sched_scan_start(struct wiphy *wiphy,
|
||||
interval = request->interval;
|
||||
n_ssids = request->n_match_sets;
|
||||
ssids = (struct cfg80211_ssid *)rtw_zmalloc(n_ssids * sizeof(struct cfg80211_ssid));
|
||||
if(ssids == NULL) {
|
||||
if (ssids == NULL) {
|
||||
RTW_ERR("Fail to allocate ssids for PNO\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
for (i=0;i<request->n_match_sets;i++) {
|
||||
for (i = 0; i < request -> n_match_sets; i++) {
|
||||
ssids[i].ssid_len = request->match_sets[i].ssid.ssid_len;
|
||||
memcpy(ssids[i].ssid, request->match_sets[i].ssid.ssid,
|
||||
request->match_sets[i].ssid.ssid_len);
|
||||
request->match_sets[i].ssid.ssid_len);
|
||||
}
|
||||
#else
|
||||
interval = request->interval;
|
||||
@ -8368,8 +8362,8 @@ static int cfg80211_rtw_sched_scan_stop(struct wiphy *wiphy,
|
||||
}
|
||||
|
||||
int cfg80211_rtw_suspend(struct wiphy *wiphy, struct cfg80211_wowlan *wow) {
|
||||
RTW_DBG("==> %s\n",__func__);
|
||||
RTW_DBG("<== %s\n",__func__);
|
||||
RTW_DBG("==> %s\n", __func__);
|
||||
RTW_DBG("<== %s\n", __func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -8379,13 +8373,14 @@ int cfg80211_rtw_resume(struct wiphy *wiphy) {
|
||||
struct pwrctrl_priv *pwrpriv;
|
||||
struct mlme_priv *pmlmepriv;
|
||||
padapter = wiphy_to_adapter(wiphy);
|
||||
|
||||
pwrpriv = adapter_to_pwrctl(padapter);
|
||||
pmlmepriv = &padapter->mlmepriv;
|
||||
struct sitesurvey_parm parm;
|
||||
int i, len;
|
||||
|
||||
|
||||
RTW_DBG("==> %s\n",__func__);
|
||||
RTW_DBG("==> %s\n", __func__);
|
||||
if (pwrpriv->wowlan_last_wake_reason == RX_PNO) {
|
||||
|
||||
struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(padapter);
|
||||
@ -8395,7 +8390,7 @@ int cfg80211_rtw_resume(struct wiphy *wiphy) {
|
||||
rtw_cfg80211_disconnected(padapter->rtw_wdev, 0, NULL, 0, 1, GFP_ATOMIC);
|
||||
|
||||
rtw_init_sitesurvey_parm(padapter, &parm);
|
||||
for (i=0;i<pwrpriv->pnlo_info->ssid_num && i < RTW_SSID_SCAN_AMOUNT; i++) {
|
||||
for (i = 0; i < pwrpriv -> pnlo_info -> ssid_num && i < RTW_SSID_SCAN_AMOUNT; i++) {
|
||||
len = pwrpriv->pno_ssid_list->node[i].SSID_len;
|
||||
_rtw_memcpy(&parm.ssid[i].Ssid, pwrpriv->pno_ssid_list->node[i].SSID, len);
|
||||
parm->ssid[i].SsidLength = len;
|
||||
@ -8407,21 +8402,23 @@ int cfg80211_rtw_resume(struct wiphy *wiphy) {
|
||||
//rtw_sitesurvey_cmd(padapter, NULL);
|
||||
rtw_sitesurvey_cmd(padapter, &parm);
|
||||
_exit_critical_bh(&pmlmepriv->lock, &irqL);
|
||||
|
||||
|
||||
for (PNOWakeupScanWaitCnt = 0; PNOWakeupScanWaitCnt < 10; PNOWakeupScanWaitCnt++) {
|
||||
if(check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == _FALSE)
|
||||
if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == _FALSE)
|
||||
break;
|
||||
|
||||
rtw_msleep_os(1000);
|
||||
}
|
||||
|
||||
|
||||
_enter_critical_bh(&pmlmepriv->lock, &irqL);
|
||||
cfg80211_sched_scan_results(padapter->rtw_wdev->wiphy);
|
||||
_exit_critical_bh(&pmlmepriv->lock, &irqL);
|
||||
|
||||
}
|
||||
RTW_DBG("<== %s\n",__func__);
|
||||
|
||||
RTW_DBG("<== %s\n", __func__);
|
||||
return 0;
|
||||
|
||||
|
||||
}
|
||||
#endif /* CONFIG_PNO_SUPPORT */
|
||||
|
||||
@ -8457,13 +8454,13 @@ static int rtw_cfg80211_set_beacon_wpsp2pie(struct net_device *ndev, char *buf,
|
||||
|
||||
pmlmepriv->wps_beacon_ie = rtw_malloc(wps_ielen);
|
||||
if (pmlmepriv->wps_beacon_ie == NULL) {
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__);
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __func__, __LINE__);
|
||||
return -EINVAL;
|
||||
|
||||
}
|
||||
|
||||
_rtw_memcpy(pmlmepriv->wps_beacon_ie, wps_ie, wps_ielen);
|
||||
pmlmepriv->wps_beacon_ie_len = wps_ielen;
|
||||
_rtw_memcpy(pmlmepriv -> wps_beacon_ie, wps_ie, wps_ielen);
|
||||
pmlmepriv -> wps_beacon_ie_len = wps_ielen;
|
||||
|
||||
update_beacon(padapter, _VENDOR_SPECIFIC_IE_, wps_oui, _TRUE);
|
||||
|
||||
@ -8480,15 +8477,15 @@ static int rtw_cfg80211_set_beacon_wpsp2pie(struct net_device *ndev, char *buf,
|
||||
#endif
|
||||
|
||||
if (pmlmepriv->p2p_beacon_ie) {
|
||||
u32 free_len = pmlmepriv->p2p_beacon_ie_len;
|
||||
pmlmepriv->p2p_beacon_ie_len = 0;
|
||||
rtw_mfree(pmlmepriv->p2p_beacon_ie, free_len);
|
||||
pmlmepriv->p2p_beacon_ie = NULL;
|
||||
u32 free_len = pmlmepriv -> p2p_beacon_ie_len;
|
||||
pmlmepriv -> p2p_beacon_ie_len = 0;
|
||||
rtw_mfree(pmlmepriv -> p2p_beacon_ie, free_len);
|
||||
pmlmepriv -> p2p_beacon_ie = NULL;
|
||||
}
|
||||
|
||||
pmlmepriv->p2p_beacon_ie = rtw_malloc(p2p_ielen);
|
||||
if (pmlmepriv->p2p_beacon_ie == NULL) {
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__);
|
||||
pmlmepriv -> p2p_beacon_ie = rtw_malloc(p2p_ielen);
|
||||
if (pmlmepriv -> p2p_beacon_ie == NULL) {
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __func__, __LINE__);
|
||||
return -EINVAL;
|
||||
|
||||
}
|
||||
@ -8567,13 +8564,13 @@ static int rtw_cfg80211_set_probe_resp_wpsp2pie(struct net_device *net, char *bu
|
||||
|
||||
pmlmepriv->wps_probe_resp_ie = rtw_malloc(wps_ielen);
|
||||
if (pmlmepriv->wps_probe_resp_ie == NULL) {
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__);
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __func__, __LINE__);
|
||||
return -EINVAL;
|
||||
|
||||
}
|
||||
|
||||
/* add PUSH_BUTTON config_method by driver self in wpsie of probe_resp at GO Mode */
|
||||
puconfig_method = (u16 *)rtw_get_wps_attr_content(wps_ie, wps_ielen, WPS_ATTR_CONF_METHOD , NULL, &attr_contentlen);
|
||||
puconfig_method = (u16 *)rtw_get_wps_attr_content(wps_ie, wps_ielen, WPS_ATTR_CONF_METHOD, NULL, &attr_contentlen);
|
||||
if (puconfig_method != NULL) {
|
||||
/* struct registry_priv *pregistrypriv = &padapter->registrypriv; */
|
||||
struct wireless_dev *wdev = padapter->rtw_wdev;
|
||||
@ -8636,7 +8633,7 @@ static int rtw_cfg80211_set_probe_resp_wpsp2pie(struct net_device *net, char *bu
|
||||
|
||||
pmlmepriv->p2p_probe_resp_ie = rtw_malloc(p2p_ielen);
|
||||
if (pmlmepriv->p2p_probe_resp_ie == NULL) {
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__);
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __func__, __LINE__);
|
||||
return -EINVAL;
|
||||
|
||||
}
|
||||
@ -8648,11 +8645,12 @@ static int rtw_cfg80211_set_probe_resp_wpsp2pie(struct net_device *net, char *bu
|
||||
pmlmepriv->p2p_go_probe_resp_ie_len = 0;
|
||||
rtw_mfree(pmlmepriv->p2p_go_probe_resp_ie, free_len);
|
||||
pmlmepriv->p2p_go_probe_resp_ie = NULL;
|
||||
|
||||
}
|
||||
|
||||
pmlmepriv->p2p_go_probe_resp_ie = rtw_malloc(p2p_ielen);
|
||||
if (pmlmepriv->p2p_go_probe_resp_ie == NULL) {
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__);
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __func__, __LINE__);
|
||||
return -EINVAL;
|
||||
|
||||
}
|
||||
@ -8707,7 +8705,7 @@ static int rtw_cfg80211_set_assoc_resp_wpsp2pie(struct net_device *net, char *bu
|
||||
|
||||
pmlmepriv->wps_assoc_resp_ie = rtw_malloc(ie_len);
|
||||
if (pmlmepriv->wps_assoc_resp_ie == NULL) {
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__);
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __func__, __LINE__);
|
||||
return -EINVAL;
|
||||
}
|
||||
_rtw_memcpy(pmlmepriv->wps_assoc_resp_ie, ie, ie_len);
|
||||
@ -8726,7 +8724,7 @@ static int rtw_cfg80211_set_assoc_resp_wpsp2pie(struct net_device *net, char *bu
|
||||
|
||||
pmlmepriv->p2p_assoc_resp_ie = rtw_malloc(ie_len);
|
||||
if (pmlmepriv->p2p_assoc_resp_ie == NULL) {
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __FUNCTION__, __LINE__);
|
||||
RTW_INFO("%s()-%d: rtw_malloc() ERROR!\n", __func__, __LINE__);
|
||||
return -EINVAL;
|
||||
}
|
||||
_rtw_memcpy(pmlmepriv->p2p_assoc_resp_ie, ie, ie_len);
|
||||
@ -8924,19 +8922,19 @@ static void rtw_cfg80211_init_vht_capab(_adapter *padapter
|
||||
|
||||
static void rtw_cfg80211_create_vht_cap(struct ieee80211_sta_vht_cap *vht_cap)
|
||||
{
|
||||
u16 mcs_map;
|
||||
int i;
|
||||
u16 mcs_map;
|
||||
int i;
|
||||
|
||||
vht_cap->vht_supported = 1;
|
||||
vht_cap->cap = IEEE80211_VHT_CAP_RXLDPC;
|
||||
vht_cap->vht_supported = 1;
|
||||
vht_cap->cap = IEEE80211_VHT_CAP_RXLDPC;
|
||||
|
||||
mcs_map = 0;
|
||||
for (i = 0; i < 8; i++) {
|
||||
mcs_map |= IEEE80211_VHT_MCS_SUPPORT_0_9 << (i*2);
|
||||
}
|
||||
mcs_map = 0;
|
||||
for (i = 0; i < 8; i++) {
|
||||
mcs_map |= IEEE80211_VHT_MCS_SUPPORT_0_9 << (i*2);
|
||||
}
|
||||
|
||||
vht_cap->vht_mcs.rx_mcs_map = cpu_to_le16(mcs_map);
|
||||
vht_cap->vht_mcs.tx_mcs_map = cpu_to_le16(mcs_map);
|
||||
vht_cap->vht_mcs.rx_mcs_map = cpu_to_le16(mcs_map);
|
||||
vht_cap->vht_mcs.tx_mcs_map = cpu_to_le16(mcs_map);
|
||||
}
|
||||
|
||||
void rtw_cfg80211_init_wdev_data(_adapter *padapter)
|
||||
@ -9335,7 +9333,7 @@ int rtw_hostapd_acs_dump_survey(struct wiphy *wiphy, struct net_device *netdev,
|
||||
#elif defined(CONFIG_RTW_ACS) && defined(CONFIG_BACKGROUND_NOISE_MONITOR)
|
||||
rtw_cfg80211_set_survey_info_with_clm(padapter, idx, info);
|
||||
#else
|
||||
RTW_ERR("%s: unknown acs operation!\n", __func__);
|
||||
RTW_ERR("%s: unknown acs operation!\n", __func__);
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
|
@ -127,7 +127,7 @@ int rtw_os_alloc_recvframe(_adapter *padapter, union recv_frame *precvframe, u8
|
||||
res = _FAIL;
|
||||
#else
|
||||
if ((pattrib->mfrag == 1) && (pattrib->frag_num == 0)) {
|
||||
RTW_INFO("%s: alloc_skb fail , drop frag frame\n", __FUNCTION__);
|
||||
RTW_INFO("%s: alloc_skb fail , drop frag frame\n", __func__);
|
||||
/* rtw_free_recvframe(precvframe, pfree_recv_queue); */
|
||||
res = _FAIL;
|
||||
goto exit_rtw_os_recv_resource_alloc;
|
||||
@ -144,7 +144,7 @@ int rtw_os_alloc_recvframe(_adapter *padapter, union recv_frame *precvframe, u8
|
||||
precvframe->u.hdr.rx_head = precvframe->u.hdr.rx_data = precvframe->u.hdr.rx_tail = pdata;
|
||||
precvframe->u.hdr.rx_end = pdata + alloc_sz;
|
||||
} else {
|
||||
RTW_INFO("%s: rtw_skb_clone fail\n", __FUNCTION__);
|
||||
RTW_INFO("%s: rtw_skb_clone fail\n", __func__);
|
||||
/* rtw_free_recvframe(precvframe, pfree_recv_queue); */
|
||||
/*exit_rtw_os_recv_resource_alloc;*/
|
||||
res = _FAIL;
|
||||
@ -281,7 +281,7 @@ int rtw_os_recvbuf_resource_free(_adapter *padapter, struct recv_buf *precvbuf)
|
||||
|
||||
}
|
||||
|
||||
_pkt *rtw_os_alloc_msdu_pkt(union recv_frame *prframe, const u8 *da, const u8 *sa, u8 *msdu ,u16 msdu_len)
|
||||
_pkt *rtw_os_alloc_msdu_pkt(union recv_frame *prframe, const u8 *da, const u8 *sa, u8 *msdu, u16 msdu_len)
|
||||
{
|
||||
u16 eth_type;
|
||||
u8 *data_ptr;
|
||||
@ -305,7 +305,7 @@ _pkt *rtw_os_alloc_msdu_pkt(union recv_frame *prframe, const u8 *da, const u8 *s
|
||||
sub_skb->len = msdu_len;
|
||||
skb_set_tail_pointer(sub_skb, msdu_len);
|
||||
} else {
|
||||
RTW_INFO("%s(): rtw_skb_clone() Fail!!!\n", __FUNCTION__);
|
||||
RTW_INFO("%s(): rtw_skb_clone() Fail!!!\n", __func__);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@ -399,7 +399,7 @@ void dynamic_napi_th_chk (_adapter *adapter)
|
||||
if (adapter->registrypriv.en_napi) {
|
||||
struct dvobj_priv *dvobj;
|
||||
struct registry_priv *registry;
|
||||
|
||||
|
||||
dvobj = adapter_to_dvobj(adapter);
|
||||
registry = &adapter->registrypriv;
|
||||
if (dvobj->traffic_stat.cur_rx_tp > registry->napi_threshold)
|
||||
@ -422,7 +422,7 @@ void rtw_os_recv_indicate_pkt(_adapter *padapter, _pkt *pkt, union recv_frame *r
|
||||
#endif
|
||||
int ret;
|
||||
|
||||
/* Indicat the packets to upper layer */
|
||||
/* Indicate the packets to upper layer */
|
||||
if (pkt) {
|
||||
struct ethhdr *ehdr = (struct ethhdr *)pkt->data;
|
||||
|
||||
@ -510,7 +510,7 @@ void rtw_os_recv_indicate_pkt(_adapter *padapter, _pkt *pkt, union recv_frame *r
|
||||
#ifdef CONFIG_RTW_NAPI
|
||||
#ifdef CONFIG_RTW_NAPI_DYNAMIC
|
||||
if (!skb_queue_empty(&precvpriv->rx_napi_skb_queue)
|
||||
&& !adapter_to_dvobj(padapter)->en_napi_dynamic
|
||||
&& !adapter_to_dvobj(padapter)->en_napi_dynamic
|
||||
)
|
||||
napi_recv(padapter, RTL_NAPI_WEIGHT);
|
||||
#endif
|
||||
@ -604,13 +604,13 @@ void rtw_hostapd_mlme_rx(_adapter *padapter, union recv_frame *precv_frame)
|
||||
skb->len = precv_frame->u.hdr.len;
|
||||
|
||||
/* pskb_copy = rtw_skb_copy(skb);
|
||||
* if(skb == NULL) goto _exit; */
|
||||
if(skb == NULL) goto _exit; */
|
||||
|
||||
skb->dev = pmgnt_netdev;
|
||||
skb->ip_summed = CHECKSUM_NONE;
|
||||
skb->pkt_type = PACKET_OTHERHOST;
|
||||
/* skb->protocol = __constant_htons(0x0019); ETH_P_80211_RAW */
|
||||
skb->protocol = __constant_htons(0x0003); /*ETH_P_80211_RAW*/
|
||||
skb->protocol = htons(0x0003); /*ETH_P_80211_RAW*/
|
||||
|
||||
/* RTW_INFO("(1)data=0x%x, head=0x%x, tail=0x%x, mac_header=0x%x, len=%d\n", skb->data, skb->head, skb->tail, skb->mac_header, skb->len); */
|
||||
|
||||
|
@ -12,6 +12,7 @@
|
||||
* more details.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#define _HCI_INTF_C_
|
||||
|
||||
#include <drv_types.h>
|
||||
@ -65,12 +66,12 @@ static void rtw_dev_shutdown(struct device *dev)
|
||||
#ifdef CONFIG_WOWLAN
|
||||
#ifdef CONFIG_GPIO_WAKEUP
|
||||
/*default wake up pin change to BT*/
|
||||
RTW_INFO("%s:default wake up pin change to BT\n", __FUNCTION__);
|
||||
RTW_INFO("%s:default wake up pin change to BT\n", __func__);
|
||||
rtw_hal_switch_gpio_wl_ctrl(adapter, WAKEUP_GPIO_IDX, _FALSE);
|
||||
#endif /* CONFIG_GPIO_WAKEUP */
|
||||
|
||||
if (pwrctl->wowlan_mode == _TRUE)
|
||||
RTW_PRINT("%s wowlan_mode ==_TRUE do not run rtw_hal_deinit()\n", __FUNCTION__);
|
||||
RTW_PRINT("%s wowlan_mode ==_TRUE do not run rtw_hal_deinit()\n", __func__);
|
||||
else
|
||||
#endif
|
||||
{
|
||||
@ -875,7 +876,7 @@ int rtw_hw_suspend(_adapter *padapter)
|
||||
return 0;
|
||||
|
||||
error_exit:
|
||||
RTW_INFO("%s, failed\n", __FUNCTION__);
|
||||
RTW_INFO("%s, failed\n", __func__);
|
||||
return -1;
|
||||
|
||||
}
|
||||
@ -910,7 +911,7 @@ int rtw_hw_resume(_adapter *padapter)
|
||||
|
||||
return 0;
|
||||
error_exit:
|
||||
RTW_INFO("%s, Open net dev failed\n", __FUNCTION__);
|
||||
RTW_INFO("%s, Open net dev failed\n", __func__);
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
@ -930,7 +931,7 @@ static int rtw_suspend(struct usb_interface *pusb_intf, pm_message_t message)
|
||||
padapter = dvobj_get_primary_adapter(dvobj);
|
||||
|
||||
if (pwrpriv->bInSuspend == _TRUE) {
|
||||
RTW_INFO("%s bInSuspend = %d\n", __FUNCTION__, pwrpriv->bInSuspend);
|
||||
RTW_INFO("%s bInSuspend = %d\n", __func__, pwrpriv->bInSuspend);
|
||||
pdbgpriv->dbg_suspend_error_cnt++;
|
||||
goto exit;
|
||||
}
|
||||
@ -966,7 +967,7 @@ int rtw_resume_process(_adapter *padapter)
|
||||
|
||||
if (pwrpriv->bInSuspend == _FALSE) {
|
||||
pdbgpriv->dbg_resume_error_cnt++;
|
||||
RTW_INFO("%s bInSuspend = %d\n", __FUNCTION__, pwrpriv->bInSuspend);
|
||||
RTW_INFO("%s bInSuspend = %d\n", __func__, pwrpriv->bInSuspend);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -1043,7 +1044,7 @@ static int rtw_resume(struct usb_interface *pusb_intf)
|
||||
padapter = dvobj_get_primary_adapter(dvobj);
|
||||
pmlmeext = &padapter->mlmeextpriv;
|
||||
|
||||
RTW_INFO("==> %s (%s:%d)\n", __FUNCTION__, current->comm, current->pid);
|
||||
RTW_INFO("==> %s (%s:%d)\n", __func__, current->comm, current->pid);
|
||||
pdbgpriv->dbg_resume_cnt++;
|
||||
|
||||
#ifdef CONFIG_AUTOSUSPEND
|
||||
@ -1073,7 +1074,7 @@ static int rtw_resume(struct usb_interface *pusb_intf)
|
||||
}
|
||||
|
||||
pmlmeext->last_scan_time = rtw_get_current_time();
|
||||
RTW_INFO("<======== %s return %d\n", __FUNCTION__, ret);
|
||||
RTW_INFO("<======== %s return %d\n", __func__, ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
5
tools/README.txt
Normal file
5
tools/README.txt
Normal file
@ -0,0 +1,5 @@
|
||||
|
||||
|
||||
Howto use?
|
||||
-------------------------------------------------------------------------------
|
||||
./checkpatch.pl --no-tree -f sourcefile
|
6720
tools/checkpatch.pl
Executable file
6720
tools/checkpatch.pl
Executable file
File diff suppressed because it is too large
Load Diff
64
tools/const_structs.checkpatch
Normal file
64
tools/const_structs.checkpatch
Normal file
@ -0,0 +1,64 @@
|
||||
acpi_dock_ops
|
||||
address_space_operations
|
||||
backlight_ops
|
||||
block_device_operations
|
||||
clk_ops
|
||||
comedi_lrange
|
||||
component_ops
|
||||
dentry_operations
|
||||
dev_pm_ops
|
||||
dma_map_ops
|
||||
driver_info
|
||||
drm_connector_funcs
|
||||
drm_encoder_funcs
|
||||
drm_encoder_helper_funcs
|
||||
ethtool_ops
|
||||
extent_io_ops
|
||||
file_lock_operations
|
||||
file_operations
|
||||
hv_ops
|
||||
ide_dma_ops
|
||||
ide_port_ops
|
||||
inode_operations
|
||||
intel_dvo_dev_ops
|
||||
irq_domain_ops
|
||||
item_operations
|
||||
iwl_cfg
|
||||
iwl_ops
|
||||
kgdb_arch
|
||||
kgdb_io
|
||||
kset_uevent_ops
|
||||
lock_manager_operations
|
||||
machine_desc
|
||||
microcode_ops
|
||||
mlxsw_reg_info
|
||||
mtrr_ops
|
||||
neigh_ops
|
||||
net_device_ops
|
||||
nlmsvc_binding
|
||||
nvkm_device_chip
|
||||
of_device_id
|
||||
pci_raw_ops
|
||||
pipe_buf_operations
|
||||
platform_hibernation_ops
|
||||
platform_suspend_ops
|
||||
proto_ops
|
||||
regmap_access_table
|
||||
rpc_pipe_ops
|
||||
rtc_class_ops
|
||||
sd_desc
|
||||
seq_operations
|
||||
sirfsoc_padmux
|
||||
snd_ac97_build_ops
|
||||
snd_soc_component_driver
|
||||
soc_pcmcia_socket_ops
|
||||
stacktrace_ops
|
||||
sysfs_ops
|
||||
tty_operations
|
||||
uart_ops
|
||||
usb_mon_operations
|
||||
v4l2_ctrl_ops
|
||||
v4l2_ioctl_ops
|
||||
vm_operations_struct
|
||||
wacom_features
|
||||
wd_ops
|
1344
tools/spelling.txt
Normal file
1344
tools/spelling.txt
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user