[PATCH 3/7] staging:r8188eu: inline unprotect_frame() in mon_recv_decrypted_recv()

2017-05-02 Thread Ivan Safonov
It is useful to remove IV/ICV from rtl88eu_mon_recv_hook().
Also unprotect_frame() will be very short without skb_(pull|trim).

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/os_dep/mon.c | 16 +++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/rtl8188eu/os_dep/mon.c 
b/drivers/staging/rtl8188eu/os_dep/mon.c
index 7eac87d..53f853f 100644
--- a/drivers/staging/rtl8188eu/os_dep/mon.c
+++ b/drivers/staging/rtl8188eu/os_dep/mon.c
@@ -70,6 +70,8 @@ static void mon_recv_decrypted_recv(struct net_device *dev, 
const u8 *data,
   int data_len, int iv_len, int icv_len)
 {
struct sk_buff *skb;
+   struct ieee80211_hdr *hdr;
+   int hdr_len;
 
skb = netdev_alloc_skb(dev, data_len);
if (!skb)
@@ -80,7 +82,19 @@ static void mon_recv_decrypted_recv(struct net_device *dev, 
const u8 *data,
 * Frame data is not encrypted. Strip off protection so
 * userspace doesn't think that it is.
 */
-   unprotect_frame(skb, iv_len, icv_len);
+
+   hdr = (struct ieee80211_hdr *)skb->data;
+   hdr_len = ieee80211_hdrlen(hdr->frame_control);
+
+   if (skb->len < hdr_len + iv_len + icv_len) {
+   if (ieee80211_has_protected(hdr->frame_control)) {
+   hdr->frame_control &= 
~cpu_to_le16(IEEE80211_FCTL_PROTECTED);
+
+   memmove(skb->data + iv_len, skb->data, hdr_len);
+   skb_pull(skb, iv_len);
+   skb_trim(skb, skb->len - icv_len);
+   }
+   }
 
skb->ip_summed = CHECKSUM_UNNECESSARY;
skb->protocol = eth_type_trans(skb, dev);
-- 
2.10.2



[PATCH 6/7] staging:r8188eu: remove ieee80211_is_empty_essid()

2017-05-02 Thread Ivan Safonov
ieee80211_is_empty_essid() is unused, remove it.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_ieee80211.c | 17 -
 drivers/staging/rtl8188eu/include/ieee80211.h  |  3 ---
 2 files changed, 20 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c 
b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c
index 6fc93fa..bb867a9 100644
--- a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c
@@ -955,23 +955,6 @@ void rtw_macaddr_cfg(u8 *mac_addr)
DBG_88E("rtw_macaddr_cfg MAC Address  = %pM\n", (mac_addr));
 }
 
-/* Baron adds to avoid FreeBSD warning */
-int ieee80211_is_empty_essid(const char *essid, int essid_len)
-{
-   /* Single white space is for Linksys APs */
-   if (essid_len == 1 && essid[0] == ' ')
-   return 1;
-
-   /* Otherwise, if the entire essid is 0, we assume it is hidden */
-   while (essid_len) {
-   essid_len--;
-   if (essid[essid_len] != '\0')
-   return 0;
-   }
-
-   return 1;
-}
-
 static int rtw_get_cipher_info(struct wlan_network *pnetwork)
 {
uint wpa_ielen;
diff --git a/drivers/staging/rtl8188eu/include/ieee80211.h 
b/drivers/staging/rtl8188eu/include/ieee80211.h
index 6348fcf..c82d50c 100644
--- a/drivers/staging/rtl8188eu/include/ieee80211.h
+++ b/drivers/staging/rtl8188eu/include/ieee80211.h
@@ -632,9 +632,6 @@ static inline int is_broadcast_mac_addr(const u8 *addr)
 #define IEEE_G (1<<2)
 #define IEEE_MODE_MASK(IEEE_A|IEEE_B|IEEE_G)
 
-/* Baron move to ieee80211.c */
-int ieee80211_is_empty_essid(const char *essid, int essid_len);
-
 /* Action category code */
 enum rtw_ieee80211_category {
RTW_WLAN_CATEGORY_SPECTRUM_MGMT = 0,
-- 
2.10.2



[PATCH 4/7] staging:r8188eu: trim IV/ICV fields in validate_recv_data_frame()

2017-05-02 Thread Ivan Safonov
Length of IV/ICV fields calculated here, so trim these field here too.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_recv.c | 17 ++---
 drivers/staging/rtl8188eu/os_dep/mon.c| 19 ---
 2 files changed, 14 insertions(+), 22 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c 
b/drivers/staging/rtl8188eu/core/rtw_recv.c
index e8f0ff9..2c37bb5 100644
--- a/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -1138,6 +1138,8 @@ static int validate_recv_data_frame(struct adapter 
*adapter,
}
 
if (pattrib->privacy) {
+   struct sk_buff *skb = precv_frame->pkt;
+
RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, 
("validate_recv_data_frame:pattrib->privacy=%x\n", pattrib->privacy));
RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n 
^^^IS_MCAST(pattrib->ra(0x%02x))=%d^^^6\n", pattrib->ra[0], 
IS_MCAST(pattrib->ra)));
 
@@ -1146,6 +1148,13 @@ static int validate_recv_data_frame(struct adapter 
*adapter,
RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n 
pattrib->encrypt=%d\n", pattrib->encrypt));
 
SET_ICE_IV_LEN(pattrib->iv_len, pattrib->icv_len, 
pattrib->encrypt);
+
+   if (pattrib->bdecrypted == 1 && pattrib->encrypt > 0) {
+   memmove(skb->data + pattrib->iv_len,
+   skb->data, pattrib->hdrlen);
+   skb_pull(skb, pattrib->iv_len);
+   skb_trim(skb, skb->len - pattrib->icv_len);
+   }
} else {
pattrib->encrypt = 0;
pattrib->iv_len = 0;
@@ -1265,14 +1274,8 @@ static int validate_recv_frame(struct adapter *adapter,
 * Hence forward the frame to the monitor anyway to preserve the order
 * in which frames were received.
 */
-   rtl88eu_mon_recv_hook(adapter->pmondev, precv_frame);
 
-   if (precv_frame->attrib.bdecrypted == 1 && precv_frame->attrib.encrypt 
> 0 &&
-   (adapter->securitypriv.busetkipkey == 1 || 
precv_frame->attrib.encrypt != _TKIP_)) {
-   memmove(precv_frame->pkt->data + precv_frame->attrib.iv_len, 
precv_frame->pkt->data, precv_frame->attrib.hdrlen);
-   skb_pull(precv_frame->pkt, precv_frame->attrib.iv_len);
-   skb_trim(precv_frame->pkt, precv_frame->pkt->len - 
precv_frame->attrib.icv_len);
-   }
+   rtl88eu_mon_recv_hook(adapter->pmondev, precv_frame);
 
 exit:
 
diff --git a/drivers/staging/rtl8188eu/os_dep/mon.c 
b/drivers/staging/rtl8188eu/os_dep/mon.c
index 53f853f..ed39661 100644
--- a/drivers/staging/rtl8188eu/os_dep/mon.c
+++ b/drivers/staging/rtl8188eu/os_dep/mon.c
@@ -67,7 +67,7 @@ static void mon_recv_decrypted(struct net_device *dev, const 
u8 *data,
 }
 
 static void mon_recv_decrypted_recv(struct net_device *dev, const u8 *data,
-  int data_len, int iv_len, int icv_len)
+   int data_len)
 {
struct sk_buff *skb;
struct ieee80211_hdr *hdr;
@@ -86,15 +86,8 @@ static void mon_recv_decrypted_recv(struct net_device *dev, 
const u8 *data,
hdr = (struct ieee80211_hdr *)skb->data;
hdr_len = ieee80211_hdrlen(hdr->frame_control);
 
-   if (skb->len < hdr_len + iv_len + icv_len) {
-   if (ieee80211_has_protected(hdr->frame_control)) {
-   hdr->frame_control &= 
~cpu_to_le16(IEEE80211_FCTL_PROTECTED);
-
-   memmove(skb->data + iv_len, skb->data, hdr_len);
-   skb_pull(skb, iv_len);
-   skb_trim(skb, skb->len - icv_len);
-   }
-   }
+   if (ieee80211_has_protected(hdr->frame_control))
+   hdr->frame_control &= ~cpu_to_le16(IEEE80211_FCTL_PROTECTED);
 
skb->ip_summed = CHECKSUM_UNNECESSARY;
skb->protocol = eth_type_trans(skb, dev);
@@ -117,7 +110,6 @@ static void mon_recv_encrypted(struct net_device *dev, 
const u8 *data,
 void rtl88eu_mon_recv_hook(struct net_device *dev, struct recv_frame *frame)
 {
struct rx_pkt_attrib *attr;
-   int iv_len, icv_len;
int data_len;
u8 *data;
 
@@ -130,11 +122,8 @@ void rtl88eu_mon_recv_hook(struct net_device *dev, struct 
recv_frame *frame)
data = frame->pkt->data;
data_len = frame->pkt->len;
 
-   /* Broadcast and multicast frames don't have attr->{iv,icv}_len set */
-   SET_ICE_IV_LEN(iv_len, icv_len, attr->encrypt);
-
if (attr->bdecrypted)
-   mon_recv_decrypted_recv(dev, data, data_len, iv_len, icv_len);
+   mon_recv_decrypted_recv(dev, data, data_len);
else
mon_recv_encrypted(dev, data, data_len);
 }
-- 
2.10.2



[PATCH 2/6] staging:r8188eu: remove software_decrypt member of registry_priv struct

2017-04-02 Thread Ivan Safonov
Value of this variable has no changes, and used once.
Replace software_decrypt with its value.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/drv_types.h | 1 -
 drivers/staging/rtl8188eu/os_dep/os_intfs.c   | 3 +--
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/drv_types.h 
b/drivers/staging/rtl8188eu/include/drv_types.h
index 0fd2a2d..8bcb170 100644
--- a/drivers/staging/rtl8188eu/include/drv_types.h
+++ b/drivers/staging/rtl8188eu/include/drv_types.h
@@ -66,7 +66,6 @@ struct registry_priv {
u8  smart_ps;
u8  mp_mode;
u8  software_encrypt;
-   u8  software_decrypt;
u8  acm_method;
  /* UAPSD */
u8  wmm_enable;
diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c 
b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
index f1c8bbc..451deb0 100644
--- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
+++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
@@ -166,7 +166,6 @@ static void loadparam(struct adapter *padapter, struct 
net_device *pnetdev)
registry_par->ips_mode = (u8)rtw_ips_mode;
registry_par->mp_mode = 0;
registry_par->software_encrypt = (u8)rtw_software_encrypt;
-   registry_par->software_decrypt = 0;
registry_par->acm_method = (u8)rtw_acm_method;
 
 /* UAPSD */
@@ -393,7 +392,7 @@ static u8 rtw_init_default_value(struct adapter *padapter)
/* security_priv */
psecuritypriv->binstallGrpkey = _FAIL;
psecuritypriv->sw_encrypt = pregistrypriv->software_encrypt;
-   psecuritypriv->sw_decrypt = pregistrypriv->software_decrypt;
+   psecuritypriv->sw_decrypt = 0;
psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_Open;
psecuritypriv->dot11PrivacyAlgrthm = _NO_PRIVACY_;
psecuritypriv->dot11PrivacyKeyIndex = 0;
-- 
2.10.2



[PATCH 2/6] staging:r8188eu: remove software_decrypt member of registry_priv struct

2017-04-02 Thread Ivan Safonov
Value of this variable has no changes, and used once.
Replace software_decrypt with its value.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/drv_types.h | 1 -
 drivers/staging/rtl8188eu/os_dep/os_intfs.c   | 3 +--
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/drv_types.h 
b/drivers/staging/rtl8188eu/include/drv_types.h
index 0fd2a2d..8bcb170 100644
--- a/drivers/staging/rtl8188eu/include/drv_types.h
+++ b/drivers/staging/rtl8188eu/include/drv_types.h
@@ -66,7 +66,6 @@ struct registry_priv {
u8  smart_ps;
u8  mp_mode;
u8  software_encrypt;
-   u8  software_decrypt;
u8  acm_method;
  /* UAPSD */
u8  wmm_enable;
diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c 
b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
index f1c8bbc..451deb0 100644
--- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
+++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
@@ -166,7 +166,6 @@ static void loadparam(struct adapter *padapter, struct 
net_device *pnetdev)
registry_par->ips_mode = (u8)rtw_ips_mode;
registry_par->mp_mode = 0;
registry_par->software_encrypt = (u8)rtw_software_encrypt;
-   registry_par->software_decrypt = 0;
registry_par->acm_method = (u8)rtw_acm_method;
 
 /* UAPSD */
@@ -393,7 +392,7 @@ static u8 rtw_init_default_value(struct adapter *padapter)
/* security_priv */
psecuritypriv->binstallGrpkey = _FAIL;
psecuritypriv->sw_encrypt = pregistrypriv->software_encrypt;
-   psecuritypriv->sw_decrypt = pregistrypriv->software_decrypt;
+   psecuritypriv->sw_decrypt = 0;
psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_Open;
psecuritypriv->dot11PrivacyAlgrthm = _NO_PRIVACY_;
psecuritypriv->dot11PrivacyKeyIndex = 0;
-- 
2.10.2



[PATCH 5/6] staging:r8188eu: remove software_encrypt member of registry_priv struct

2017-04-02 Thread Ivan Safonov
Value of this variable does not changed after initialization.
Replace software_encrypt with its default value.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/drv_types.h | 1 -
 drivers/staging/rtl8188eu/os_dep/os_intfs.c   | 3 +--
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/drv_types.h 
b/drivers/staging/rtl8188eu/include/drv_types.h
index 8bcb170..c3517c0 100644
--- a/drivers/staging/rtl8188eu/include/drv_types.h
+++ b/drivers/staging/rtl8188eu/include/drv_types.h
@@ -65,7 +65,6 @@ struct registry_priv {
u8  ips_mode;
u8  smart_ps;
u8  mp_mode;
-   u8  software_encrypt;
u8  acm_method;
  /* UAPSD */
u8  wmm_enable;
diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c 
b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
index ccae39f..fecbedd 100644
--- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
+++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
@@ -163,7 +163,6 @@ static void loadparam(struct adapter *padapter, struct 
net_device *pnetdev)
registry_par->power_mgnt = (u8)rtw_power_mgnt;
registry_par->ips_mode = (u8)rtw_ips_mode;
registry_par->mp_mode = 0;
-   registry_par->software_encrypt = 0;
registry_par->acm_method = (u8)rtw_acm_method;
 
 /* UAPSD */
@@ -389,7 +388,7 @@ static u8 rtw_init_default_value(struct adapter *padapter)
 
/* security_priv */
psecuritypriv->binstallGrpkey = _FAIL;
-   psecuritypriv->sw_encrypt = pregistrypriv->software_encrypt;
+   psecuritypriv->sw_encrypt = 0;
psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_Open;
psecuritypriv->dot11PrivacyAlgrthm = _NO_PRIVACY_;
psecuritypriv->dot11PrivacyKeyIndex = 0;
-- 
2.10.2



[PATCH 1/6] staging:r8188eu: replace rtw_software_decrypt with its value

2017-04-02 Thread Ivan Safonov
rtw_software_decrypt used only once and does not changed.
Replace it with 0.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/os_dep/os_intfs.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c 
b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
index 5f6a245..f1c8bbc 100644
--- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
+++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
@@ -50,7 +50,6 @@ MODULE_PARM_DESC(rtw_ips_mode, "The default IPS mode");
 static int rtw_debug = 1;
 
 static int rtw_software_encrypt;
-static int rtw_software_decrypt;
 
 static int rtw_acm_method;/*  0:By SW 1:By HW. */
 
@@ -167,7 +166,7 @@ static void loadparam(struct adapter *padapter, struct 
net_device *pnetdev)
registry_par->ips_mode = (u8)rtw_ips_mode;
registry_par->mp_mode = 0;
registry_par->software_encrypt = (u8)rtw_software_encrypt;
-   registry_par->software_decrypt = (u8)rtw_software_decrypt;
+   registry_par->software_decrypt = 0;
registry_par->acm_method = (u8)rtw_acm_method;
 
 /* UAPSD */
-- 
2.10.2



[PATCH 3/6] staging:r8188eu: remove sw_decrypt member of security_priv struct

2017-04-02 Thread Ivan Safonov
sw_decrypt always is 0, so replace it with 0.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_recv.c| 4 ++--
 drivers/staging/rtl8188eu/include/rtw_security.h | 1 -
 drivers/staging/rtl8188eu/os_dep/os_intfs.c  | 1 -
 3 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c 
b/drivers/staging/rtl8188eu/core/rtw_recv.c
index 96526fe..c6c4404 100644
--- a/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -392,7 +392,7 @@ static struct recv_frame *decryptor(struct adapter 
*padapter,
}
}
 
-   if ((prxattrib->encrypt > 0) && ((prxattrib->bdecrypted == 0) || 
(psecuritypriv->sw_decrypt))) {
+   if ((prxattrib->encrypt > 0) && (prxattrib->bdecrypted == 0)) {
psecuritypriv->hw_decrypted = false;
 
switch (prxattrib->encrypt) {
@@ -1979,7 +1979,7 @@ static int recv_func(struct adapter *padapter, struct 
recv_frame *rframe)
/* check if need to enqueue into uc_swdec_pending_queue*/
if (check_fwstate(mlmepriv, WIFI_STATION_STATE) &&
!IS_MCAST(prxattrib->ra) && prxattrib->encrypt > 0 &&
-   (prxattrib->bdecrypted == 0 || psecuritypriv->sw_decrypt) &&
+   prxattrib->bdecrypted == 0 &&
!is_wep_enc(psecuritypriv->dot11PrivacyAlgrthm) &&
!psecuritypriv->busetkipkey) {
rtw_enqueue_recvframe(rframe, 
>recvpriv.uc_swdec_pending_queue);
diff --git a/drivers/staging/rtl8188eu/include/rtw_security.h 
b/drivers/staging/rtl8188eu/include/rtw_security.h
index 7100d6b..2eda677 100644
--- a/drivers/staging/rtl8188eu/include/rtw_security.h
+++ b/drivers/staging/rtl8188eu/include/rtw_security.h
@@ -134,7 +134,6 @@ struct security_priv {
u8  bcheck_grpkey;
u8  bgrpkey_handshake;
s32 sw_encrypt;/* from registry_priv */
-   s32 sw_decrypt;/* from registry_priv */
s32 hw_decrypted;/* if the rx packets is hw_decrypted==false,i
  * it means the hw has not been ready. */
 
diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c 
b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
index 451deb0..8fee58f 100644
--- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
+++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
@@ -392,7 +392,6 @@ static u8 rtw_init_default_value(struct adapter *padapter)
/* security_priv */
psecuritypriv->binstallGrpkey = _FAIL;
psecuritypriv->sw_encrypt = pregistrypriv->software_encrypt;
-   psecuritypriv->sw_decrypt = 0;
psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_Open;
psecuritypriv->dot11PrivacyAlgrthm = _NO_PRIVACY_;
psecuritypriv->dot11PrivacyKeyIndex = 0;
-- 
2.10.2



[PATCH 5/6] staging:r8188eu: remove software_encrypt member of registry_priv struct

2017-04-02 Thread Ivan Safonov
Value of this variable does not changed after initialization.
Replace software_encrypt with its default value.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/drv_types.h | 1 -
 drivers/staging/rtl8188eu/os_dep/os_intfs.c   | 3 +--
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/drv_types.h 
b/drivers/staging/rtl8188eu/include/drv_types.h
index 8bcb170..c3517c0 100644
--- a/drivers/staging/rtl8188eu/include/drv_types.h
+++ b/drivers/staging/rtl8188eu/include/drv_types.h
@@ -65,7 +65,6 @@ struct registry_priv {
u8  ips_mode;
u8  smart_ps;
u8  mp_mode;
-   u8  software_encrypt;
u8  acm_method;
  /* UAPSD */
u8  wmm_enable;
diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c 
b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
index ccae39f..fecbedd 100644
--- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
+++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
@@ -163,7 +163,6 @@ static void loadparam(struct adapter *padapter, struct 
net_device *pnetdev)
registry_par->power_mgnt = (u8)rtw_power_mgnt;
registry_par->ips_mode = (u8)rtw_ips_mode;
registry_par->mp_mode = 0;
-   registry_par->software_encrypt = 0;
registry_par->acm_method = (u8)rtw_acm_method;
 
 /* UAPSD */
@@ -389,7 +388,7 @@ static u8 rtw_init_default_value(struct adapter *padapter)
 
/* security_priv */
psecuritypriv->binstallGrpkey = _FAIL;
-   psecuritypriv->sw_encrypt = pregistrypriv->software_encrypt;
+   psecuritypriv->sw_encrypt = 0;
psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_Open;
psecuritypriv->dot11PrivacyAlgrthm = _NO_PRIVACY_;
psecuritypriv->dot11PrivacyKeyIndex = 0;
-- 
2.10.2



[PATCH 1/6] staging:r8188eu: replace rtw_software_decrypt with its value

2017-04-02 Thread Ivan Safonov
rtw_software_decrypt used only once and does not changed.
Replace it with 0.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/os_dep/os_intfs.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c 
b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
index 5f6a245..f1c8bbc 100644
--- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
+++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
@@ -50,7 +50,6 @@ MODULE_PARM_DESC(rtw_ips_mode, "The default IPS mode");
 static int rtw_debug = 1;
 
 static int rtw_software_encrypt;
-static int rtw_software_decrypt;
 
 static int rtw_acm_method;/*  0:By SW 1:By HW. */
 
@@ -167,7 +166,7 @@ static void loadparam(struct adapter *padapter, struct 
net_device *pnetdev)
registry_par->ips_mode = (u8)rtw_ips_mode;
registry_par->mp_mode = 0;
registry_par->software_encrypt = (u8)rtw_software_encrypt;
-   registry_par->software_decrypt = (u8)rtw_software_decrypt;
+   registry_par->software_decrypt = 0;
registry_par->acm_method = (u8)rtw_acm_method;
 
 /* UAPSD */
-- 
2.10.2



[PATCH 3/6] staging:r8188eu: remove sw_decrypt member of security_priv struct

2017-04-02 Thread Ivan Safonov
sw_decrypt always is 0, so replace it with 0.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_recv.c| 4 ++--
 drivers/staging/rtl8188eu/include/rtw_security.h | 1 -
 drivers/staging/rtl8188eu/os_dep/os_intfs.c  | 1 -
 3 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c 
b/drivers/staging/rtl8188eu/core/rtw_recv.c
index 96526fe..c6c4404 100644
--- a/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -392,7 +392,7 @@ static struct recv_frame *decryptor(struct adapter 
*padapter,
}
}
 
-   if ((prxattrib->encrypt > 0) && ((prxattrib->bdecrypted == 0) || 
(psecuritypriv->sw_decrypt))) {
+   if ((prxattrib->encrypt > 0) && (prxattrib->bdecrypted == 0)) {
psecuritypriv->hw_decrypted = false;
 
switch (prxattrib->encrypt) {
@@ -1979,7 +1979,7 @@ static int recv_func(struct adapter *padapter, struct 
recv_frame *rframe)
/* check if need to enqueue into uc_swdec_pending_queue*/
if (check_fwstate(mlmepriv, WIFI_STATION_STATE) &&
!IS_MCAST(prxattrib->ra) && prxattrib->encrypt > 0 &&
-   (prxattrib->bdecrypted == 0 || psecuritypriv->sw_decrypt) &&
+   prxattrib->bdecrypted == 0 &&
!is_wep_enc(psecuritypriv->dot11PrivacyAlgrthm) &&
!psecuritypriv->busetkipkey) {
rtw_enqueue_recvframe(rframe, 
>recvpriv.uc_swdec_pending_queue);
diff --git a/drivers/staging/rtl8188eu/include/rtw_security.h 
b/drivers/staging/rtl8188eu/include/rtw_security.h
index 7100d6b..2eda677 100644
--- a/drivers/staging/rtl8188eu/include/rtw_security.h
+++ b/drivers/staging/rtl8188eu/include/rtw_security.h
@@ -134,7 +134,6 @@ struct security_priv {
u8  bcheck_grpkey;
u8  bgrpkey_handshake;
s32 sw_encrypt;/* from registry_priv */
-   s32 sw_decrypt;/* from registry_priv */
s32 hw_decrypted;/* if the rx packets is hw_decrypted==false,i
  * it means the hw has not been ready. */
 
diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c 
b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
index 451deb0..8fee58f 100644
--- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
+++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
@@ -392,7 +392,6 @@ static u8 rtw_init_default_value(struct adapter *padapter)
/* security_priv */
psecuritypriv->binstallGrpkey = _FAIL;
psecuritypriv->sw_encrypt = pregistrypriv->software_encrypt;
-   psecuritypriv->sw_decrypt = 0;
psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_Open;
psecuritypriv->dot11PrivacyAlgrthm = _NO_PRIVACY_;
psecuritypriv->dot11PrivacyKeyIndex = 0;
-- 
2.10.2



[PATCH 6/6] staging:r8188eu: remove sw_encrypt member of security_priv struct

2017-04-02 Thread Ivan Safonov
sw_encrypt always is 0. Replace sw_encrypt with 0.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_xmit.c| 10 --
 drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c   |  3 +--
 drivers/staging/rtl8188eu/include/rtw_security.h |  1 -
 drivers/staging/rtl8188eu/os_dep/os_intfs.c  |  1 -
 4 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_xmit.c 
b/drivers/staging/rtl8188eu/core/rtw_xmit.c
index 1dcb4eb..1470a2e 100644
--- a/drivers/staging/rtl8188eu/core/rtw_xmit.c
+++ b/drivers/staging/rtl8188eu/core/rtw_xmit.c
@@ -587,15 +587,13 @@ static s32 update_attrib(struct adapter *padapter, struct 
sk_buff *pkt, struct p
}
 
RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_,
-("update_attrib: encrypt=%d  securitypriv.sw_encrypt=%d\n",
- pattrib->encrypt, padapter->securitypriv.sw_encrypt));
+("update_attrib: encrypt=%d\n", pattrib->encrypt));
 
-   if (pattrib->encrypt &&
-   (padapter->securitypriv.sw_encrypt || 
!psecuritypriv->hw_decrypted)) {
+   if (pattrib->encrypt && !psecuritypriv->hw_decrypted) {
pattrib->bswenc = true;
RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_,
-("update_attrib: encrypt=%d 
securitypriv.hw_decrypted=%d bswenc = true\n",
- pattrib->encrypt, padapter->securitypriv.sw_encrypt));
+("update_attrib: encrypt=%d bswenc = true\n",
+ pattrib->encrypt));
} else {
pattrib->bswenc = false;
RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("update_attrib: 
bswenc = false\n"));
diff --git a/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c 
b/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c
index c7e1955..a9912b6 100644
--- a/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c
+++ b/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c
@@ -346,7 +346,6 @@ static s32 rtw_dump_xframe(struct adapter *adapt, struct 
xmit_frame *pxmitframe)
struct xmit_buf *pxmitbuf = pxmitframe->pxmitbuf;
struct pkt_attrib *pattrib = >attrib;
struct xmit_priv *pxmitpriv = >xmitpriv;
-   struct security_priv *psecuritypriv = >securitypriv;
 
if ((pxmitframe->frame_tag == DATA_FRAMETAG) &&
(pxmitframe->attrib.ether_type != 0x0806) &&
@@ -366,7 +365,7 @@ static s32 rtw_dump_xframe(struct adapter *adapt, struct 
xmit_frame *pxmitframe)
RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, 
("pattrib->nr_frags=%d\n", pattrib->nr_frags));
 
sz = pxmitpriv->frag_len;
-   sz = sz - 4 - (psecuritypriv->sw_encrypt ? 0 : 
pattrib->icv_len);
+   sz = sz - 4 - pattrib->icv_len;
} else {
/* no frag */
sz = pattrib->last_txcmdsz;
diff --git a/drivers/staging/rtl8188eu/include/rtw_security.h 
b/drivers/staging/rtl8188eu/include/rtw_security.h
index 2eda677..74fe664 100644
--- a/drivers/staging/rtl8188eu/include/rtw_security.h
+++ b/drivers/staging/rtl8188eu/include/rtw_security.h
@@ -133,7 +133,6 @@ struct security_priv {
u8  busetkipkey;
u8  bcheck_grpkey;
u8  bgrpkey_handshake;
-   s32 sw_encrypt;/* from registry_priv */
s32 hw_decrypted;/* if the rx packets is hw_decrypted==false,i
  * it means the hw has not been ready. */
 
diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c 
b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
index fecbedd..add1ba0 100644
--- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
+++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
@@ -388,7 +388,6 @@ static u8 rtw_init_default_value(struct adapter *padapter)
 
/* security_priv */
psecuritypriv->binstallGrpkey = _FAIL;
-   psecuritypriv->sw_encrypt = 0;
psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_Open;
psecuritypriv->dot11PrivacyAlgrthm = _NO_PRIVACY_;
psecuritypriv->dot11PrivacyKeyIndex = 0;
-- 
2.10.2



[PATCH 4/6] staging:r8188eu: replace rtw_software_encrypt with its default value

2017-04-02 Thread Ivan Safonov
rtw_software_encrypt used only once and does not changed.
Replace it with 0.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/os_dep/os_intfs.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c 
b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
index 8fee58f..ccae39f 100644
--- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
+++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
@@ -49,8 +49,6 @@ MODULE_PARM_DESC(rtw_ips_mode, "The default IPS mode");
 
 static int rtw_debug = 1;
 
-static int rtw_software_encrypt;
-
 static int rtw_acm_method;/*  0:By SW 1:By HW. */
 
 static int rtw_wmm_enable = 1;/*  default is set to enable the wmm. */
@@ -165,7 +163,7 @@ static void loadparam(struct adapter *padapter, struct 
net_device *pnetdev)
registry_par->power_mgnt = (u8)rtw_power_mgnt;
registry_par->ips_mode = (u8)rtw_ips_mode;
registry_par->mp_mode = 0;
-   registry_par->software_encrypt = (u8)rtw_software_encrypt;
+   registry_par->software_encrypt = 0;
registry_par->acm_method = (u8)rtw_acm_method;
 
 /* UAPSD */
-- 
2.10.2



[PATCH 6/6] staging:r8188eu: remove sw_encrypt member of security_priv struct

2017-04-02 Thread Ivan Safonov
sw_encrypt always is 0. Replace sw_encrypt with 0.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_xmit.c| 10 --
 drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c   |  3 +--
 drivers/staging/rtl8188eu/include/rtw_security.h |  1 -
 drivers/staging/rtl8188eu/os_dep/os_intfs.c  |  1 -
 4 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_xmit.c 
b/drivers/staging/rtl8188eu/core/rtw_xmit.c
index 1dcb4eb..1470a2e 100644
--- a/drivers/staging/rtl8188eu/core/rtw_xmit.c
+++ b/drivers/staging/rtl8188eu/core/rtw_xmit.c
@@ -587,15 +587,13 @@ static s32 update_attrib(struct adapter *padapter, struct 
sk_buff *pkt, struct p
}
 
RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_,
-("update_attrib: encrypt=%d  securitypriv.sw_encrypt=%d\n",
- pattrib->encrypt, padapter->securitypriv.sw_encrypt));
+("update_attrib: encrypt=%d\n", pattrib->encrypt));
 
-   if (pattrib->encrypt &&
-   (padapter->securitypriv.sw_encrypt || 
!psecuritypriv->hw_decrypted)) {
+   if (pattrib->encrypt && !psecuritypriv->hw_decrypted) {
pattrib->bswenc = true;
RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_,
-("update_attrib: encrypt=%d 
securitypriv.hw_decrypted=%d bswenc = true\n",
- pattrib->encrypt, padapter->securitypriv.sw_encrypt));
+("update_attrib: encrypt=%d bswenc = true\n",
+ pattrib->encrypt));
} else {
pattrib->bswenc = false;
RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("update_attrib: 
bswenc = false\n"));
diff --git a/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c 
b/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c
index c7e1955..a9912b6 100644
--- a/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c
+++ b/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c
@@ -346,7 +346,6 @@ static s32 rtw_dump_xframe(struct adapter *adapt, struct 
xmit_frame *pxmitframe)
struct xmit_buf *pxmitbuf = pxmitframe->pxmitbuf;
struct pkt_attrib *pattrib = >attrib;
struct xmit_priv *pxmitpriv = >xmitpriv;
-   struct security_priv *psecuritypriv = >securitypriv;
 
if ((pxmitframe->frame_tag == DATA_FRAMETAG) &&
(pxmitframe->attrib.ether_type != 0x0806) &&
@@ -366,7 +365,7 @@ static s32 rtw_dump_xframe(struct adapter *adapt, struct 
xmit_frame *pxmitframe)
RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, 
("pattrib->nr_frags=%d\n", pattrib->nr_frags));
 
sz = pxmitpriv->frag_len;
-   sz = sz - 4 - (psecuritypriv->sw_encrypt ? 0 : 
pattrib->icv_len);
+   sz = sz - 4 - pattrib->icv_len;
} else {
/* no frag */
sz = pattrib->last_txcmdsz;
diff --git a/drivers/staging/rtl8188eu/include/rtw_security.h 
b/drivers/staging/rtl8188eu/include/rtw_security.h
index 2eda677..74fe664 100644
--- a/drivers/staging/rtl8188eu/include/rtw_security.h
+++ b/drivers/staging/rtl8188eu/include/rtw_security.h
@@ -133,7 +133,6 @@ struct security_priv {
u8  busetkipkey;
u8  bcheck_grpkey;
u8  bgrpkey_handshake;
-   s32 sw_encrypt;/* from registry_priv */
s32 hw_decrypted;/* if the rx packets is hw_decrypted==false,i
  * it means the hw has not been ready. */
 
diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c 
b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
index fecbedd..add1ba0 100644
--- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
+++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
@@ -388,7 +388,6 @@ static u8 rtw_init_default_value(struct adapter *padapter)
 
/* security_priv */
psecuritypriv->binstallGrpkey = _FAIL;
-   psecuritypriv->sw_encrypt = 0;
psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_Open;
psecuritypriv->dot11PrivacyAlgrthm = _NO_PRIVACY_;
psecuritypriv->dot11PrivacyKeyIndex = 0;
-- 
2.10.2



[PATCH 4/6] staging:r8188eu: replace rtw_software_encrypt with its default value

2017-04-02 Thread Ivan Safonov
rtw_software_encrypt used only once and does not changed.
Replace it with 0.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/os_dep/os_intfs.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c 
b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
index 8fee58f..ccae39f 100644
--- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c
+++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c
@@ -49,8 +49,6 @@ MODULE_PARM_DESC(rtw_ips_mode, "The default IPS mode");
 
 static int rtw_debug = 1;
 
-static int rtw_software_encrypt;
-
 static int rtw_acm_method;/*  0:By SW 1:By HW. */
 
 static int rtw_wmm_enable = 1;/*  default is set to enable the wmm. */
@@ -165,7 +163,7 @@ static void loadparam(struct adapter *padapter, struct 
net_device *pnetdev)
registry_par->power_mgnt = (u8)rtw_power_mgnt;
registry_par->ips_mode = (u8)rtw_ips_mode;
registry_par->mp_mode = 0;
-   registry_par->software_encrypt = (u8)rtw_software_encrypt;
+   registry_par->software_encrypt = 0;
registry_par->acm_method = (u8)rtw_acm_method;
 
 /* UAPSD */
-- 
2.10.2



[PATCH v2] usb: musb: cppi_dma.c: use DIV_ROUND_UP macro in cppi_next_(r|t)x_segment()

2017-03-25 Thread Ivan Safonov
DIV_ROUND_UP is bit useful than series of "/" and "%" operations.
Replace "/%" sequence with DIV_ROUND_UP macro.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
Changes in v2:
 - little style fix

 drivers/usb/musb/cppi_dma.c | 11 +--
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/usb/musb/cppi_dma.c b/drivers/usb/musb/cppi_dma.c
index c4fabe95..a13bd36 100644
--- a/drivers/usb/musb/cppi_dma.c
+++ b/drivers/usb/musb/cppi_dma.c
@@ -582,9 +582,10 @@ cppi_next_tx_segment(struct musb *musb, struct 
cppi_channel *tx)
maxpacket = length;
n_bds = 1;
} else {
-   n_bds = length / maxpacket;
-   if (!length || (length % maxpacket))
-   n_bds++;
+   if (length)
+   n_bds = DIV_ROUND_UP(length, maxpacket);
+   else
+   n_bds = 1;
n_bds = min(n_bds, (unsigned) NUM_TXCHAN_BD);
length = min(n_bds * maxpacket, length);
}
@@ -790,9 +791,7 @@ cppi_next_rx_segment(struct musb *musb, struct cppi_channel 
*rx, int onepacket)
n_bds = 0x / maxpacket;
length = n_bds * maxpacket;
} else {
-   n_bds = length / maxpacket;
-   if (length % maxpacket)
-   n_bds++;
+   n_bds = DIV_ROUND_UP(length, maxpacket);
}
if (n_bds == 1)
onepacket = 1;
-- 
2.10.2



[PATCH v2] usb: musb: cppi_dma.c: use DIV_ROUND_UP macro in cppi_next_(r|t)x_segment()

2017-03-25 Thread Ivan Safonov
DIV_ROUND_UP is bit useful than series of "/" and "%" operations.
Replace "/%" sequence with DIV_ROUND_UP macro.

Signed-off-by: Ivan Safonov 
---
Changes in v2:
 - little style fix

 drivers/usb/musb/cppi_dma.c | 11 +--
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/usb/musb/cppi_dma.c b/drivers/usb/musb/cppi_dma.c
index c4fabe95..a13bd36 100644
--- a/drivers/usb/musb/cppi_dma.c
+++ b/drivers/usb/musb/cppi_dma.c
@@ -582,9 +582,10 @@ cppi_next_tx_segment(struct musb *musb, struct 
cppi_channel *tx)
maxpacket = length;
n_bds = 1;
} else {
-   n_bds = length / maxpacket;
-   if (!length || (length % maxpacket))
-   n_bds++;
+   if (length)
+   n_bds = DIV_ROUND_UP(length, maxpacket);
+   else
+   n_bds = 1;
n_bds = min(n_bds, (unsigned) NUM_TXCHAN_BD);
length = min(n_bds * maxpacket, length);
}
@@ -790,9 +791,7 @@ cppi_next_rx_segment(struct musb *musb, struct cppi_channel 
*rx, int onepacket)
n_bds = 0x / maxpacket;
length = n_bds * maxpacket;
} else {
-   n_bds = length / maxpacket;
-   if (length % maxpacket)
-   n_bds++;
+   n_bds = DIV_ROUND_UP(length, maxpacket);
}
if (n_bds == 1)
onepacket = 1;
-- 
2.10.2



[PATCH] staging:r8188eu: add iv length to frame data offset

2017-03-21 Thread Ivan Safonov
If this frame contains IV/ICV fields, ether_type field located a little farther.

This bug already fixed here:
https://github.com/lwfinger/rtl8188eu/blob/master/core/rtw_recv.c#L569 .

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_recv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c 
b/drivers/staging/rtl8188eu/core/rtw_recv.c
index 556be8c..96526fe 100644
--- a/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -452,7 +452,7 @@ static struct recv_frame *portctrl(struct adapter *adapter,
 
if (auth_alg == 2) {
/* get ether_type */
-   ptr = ptr + pfhdr->attrib.hdrlen + LLC_HEADER_SIZE;
+   ptr = ptr + pfhdr->attrib.hdrlen + LLC_HEADER_SIZE + 
pfhdr->attrib.iv_len;
memcpy(_tmp, ptr, 2);
ether_type = ntohs(be_tmp);
 
-- 
2.10.2



[PATCH] staging:r8188eu: add iv length to frame data offset

2017-03-21 Thread Ivan Safonov
If this frame contains IV/ICV fields, ether_type field located a little farther.

This bug already fixed here:
https://github.com/lwfinger/rtl8188eu/blob/master/core/rtw_recv.c#L569 .

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_recv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c 
b/drivers/staging/rtl8188eu/core/rtw_recv.c
index 556be8c..96526fe 100644
--- a/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -452,7 +452,7 @@ static struct recv_frame *portctrl(struct adapter *adapter,
 
if (auth_alg == 2) {
/* get ether_type */
-   ptr = ptr + pfhdr->attrib.hdrlen + LLC_HEADER_SIZE;
+   ptr = ptr + pfhdr->attrib.hdrlen + LLC_HEADER_SIZE + 
pfhdr->attrib.iv_len;
memcpy(_tmp, ptr, 2);
ether_type = ntohs(be_tmp);
 
-- 
2.10.2



[PATCH] usb: musb: cppi_dma.c: use DIV_ROUND_UP macro in cppi_next_(r|t)x_segment()

2017-02-15 Thread Ivan Safonov
DIV_ROUND_UP is bit useful than series of "/" and "%" operations.
Replace "/%" sequence with DIV_ROUND_UP macro.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/usb/musb/cppi_dma.c | 10 --
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/usb/musb/cppi_dma.c b/drivers/usb/musb/cppi_dma.c
index 1ae48e6..d376188 100644
--- a/drivers/usb/musb/cppi_dma.c
+++ b/drivers/usb/musb/cppi_dma.c
@@ -582,9 +582,9 @@ cppi_next_tx_segment(struct musb *musb, struct cppi_channel 
*tx)
maxpacket = length;
n_bds = 1;
} else {
-   n_bds = length / maxpacket;
-   if (!length || (length % maxpacket))
-   n_bds++;
+   n_bds = DIV_ROUND_UP(length, maxpacket);
+   if (length == 0)
+   n_bds = 1;
n_bds = min(n_bds, (unsigned) NUM_TXCHAN_BD);
length = min(n_bds * maxpacket, length);
}
@@ -790,9 +790,7 @@ cppi_next_rx_segment(struct musb *musb, struct cppi_channel 
*rx, int onepacket)
n_bds = 0x / maxpacket;
length = n_bds * maxpacket;
} else {
-   n_bds = length / maxpacket;
-   if (length % maxpacket)
-   n_bds++;
+   n_bds = DIV_ROUND_UP(length, maxpacket);
}
if (n_bds == 1)
onepacket = 1;
-- 
2.10.2



[PATCH] usb: musb: cppi_dma.c: use DIV_ROUND_UP macro in cppi_next_(r|t)x_segment()

2017-02-15 Thread Ivan Safonov
DIV_ROUND_UP is bit useful than series of "/" and "%" operations.
Replace "/%" sequence with DIV_ROUND_UP macro.

Signed-off-by: Ivan Safonov 
---
 drivers/usb/musb/cppi_dma.c | 10 --
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/usb/musb/cppi_dma.c b/drivers/usb/musb/cppi_dma.c
index 1ae48e6..d376188 100644
--- a/drivers/usb/musb/cppi_dma.c
+++ b/drivers/usb/musb/cppi_dma.c
@@ -582,9 +582,9 @@ cppi_next_tx_segment(struct musb *musb, struct cppi_channel 
*tx)
maxpacket = length;
n_bds = 1;
} else {
-   n_bds = length / maxpacket;
-   if (!length || (length % maxpacket))
-   n_bds++;
+   n_bds = DIV_ROUND_UP(length, maxpacket);
+   if (length == 0)
+   n_bds = 1;
n_bds = min(n_bds, (unsigned) NUM_TXCHAN_BD);
length = min(n_bds * maxpacket, length);
}
@@ -790,9 +790,7 @@ cppi_next_rx_segment(struct musb *musb, struct cppi_channel 
*rx, int onepacket)
n_bds = 0x / maxpacket;
length = n_bds * maxpacket;
} else {
-   n_bds = length / maxpacket;
-   if (length % maxpacket)
-   n_bds++;
+   n_bds = DIV_ROUND_UP(length, maxpacket);
}
if (n_bds == 1)
onepacket = 1;
-- 
2.10.2



[PATCH 1/9] staging:r8188eu: use DIV_ROUND_UP() in rtw_signal_stat_timer_hdl()

2017-02-14 Thread Ivan Safonov
DIV_ROUND_UP macro is shorter and look better than if-else construction.
DIV_ROUND_UP used in rtw_signal_stat_timer_hdl().

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_recv.c | 10 ++
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c 
b/drivers/staging/rtl8188eu/core/rtw_recv.c
index 53dc33c..556be8c 100644
--- a/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -2050,19 +2050,13 @@ static void rtw_signal_stat_timer_hdl(unsigned long 
data)
if (check_fwstate(>mlmepriv, _FW_UNDER_SURVEY) == false) {
tmp_s = avg_signal_strength +
(_alpha - 1) * recvpriv->signal_strength;
-   if (tmp_s % _alpha)
-   tmp_s = tmp_s / _alpha + 1;
-   else
-   tmp_s = tmp_s / _alpha;
+   tmp_s = DIV_ROUND_UP(tmp_s, _alpha);
if (tmp_s > 100)
tmp_s = 100;
 
tmp_q = avg_signal_qual +
(_alpha - 1) * recvpriv->signal_qual;
-   if (tmp_q % _alpha)
-   tmp_q = tmp_q / _alpha + 1;
-   else
-   tmp_q = tmp_q / _alpha;
+   tmp_q = DIV_ROUND_UP(tmp_q, _alpha);
if (tmp_q > 100)
tmp_q = 100;
 
-- 
2.10.2



[PATCH 1/9] staging:r8188eu: use DIV_ROUND_UP() in rtw_signal_stat_timer_hdl()

2017-02-14 Thread Ivan Safonov
DIV_ROUND_UP macro is shorter and look better than if-else construction.
DIV_ROUND_UP used in rtw_signal_stat_timer_hdl().

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_recv.c | 10 ++
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c 
b/drivers/staging/rtl8188eu/core/rtw_recv.c
index 53dc33c..556be8c 100644
--- a/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -2050,19 +2050,13 @@ static void rtw_signal_stat_timer_hdl(unsigned long 
data)
if (check_fwstate(>mlmepriv, _FW_UNDER_SURVEY) == false) {
tmp_s = avg_signal_strength +
(_alpha - 1) * recvpriv->signal_strength;
-   if (tmp_s % _alpha)
-   tmp_s = tmp_s / _alpha + 1;
-   else
-   tmp_s = tmp_s / _alpha;
+   tmp_s = DIV_ROUND_UP(tmp_s, _alpha);
if (tmp_s > 100)
tmp_s = 100;
 
tmp_q = avg_signal_qual +
(_alpha - 1) * recvpriv->signal_qual;
-   if (tmp_q % _alpha)
-   tmp_q = tmp_q / _alpha + 1;
-   else
-   tmp_q = tmp_q / _alpha;
+   tmp_q = DIV_ROUND_UP(tmp_q, _alpha);
if (tmp_q > 100)
tmp_q = 100;
 
-- 
2.10.2



[PATCH 9/9] staging:r8188eu: remove unused MCS_rate_2R array

2017-02-14 Thread Ivan Safonov
MCS_rate_2R[] does not used. Remove it.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_mlme.c | 1 -
 drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 1 -
 drivers/staging/rtl8188eu/include/rtw_mlme.h  | 1 -
 3 files changed, 3 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme.c 
b/drivers/staging/rtl8188eu/core/rtw_mlme.c
index 0ac63a6..fce7c26 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme.c
@@ -28,7 +28,6 @@
 #include 
 #include 
 
-extern unsigned char   MCS_rate_2R[16];
 extern unsigned char   MCS_rate_1R[16];
 
 int rtw_init_mlme_priv(struct adapter *padapter)
diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c 
b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
index 51584c8..30dd4ed 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
@@ -47,7 +47,6 @@ extern unsigned char REALTEK_96B_IE[];
 /
 MCS rate definitions
 */
-unsigned char  MCS_rate_2R[16] = {0xff, 0xff, 0x0, 0x0, 0x01, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
 unsigned char  MCS_rate_1R[16] = {0xff, 0x00, 0x0, 0x0, 0x01, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
 
 /
diff --git a/drivers/staging/rtl8188eu/include/rtw_mlme.h 
b/drivers/staging/rtl8188eu/include/rtw_mlme.h
index 7324a95..5c5d0ae 100644
--- a/drivers/staging/rtl8188eu/include/rtw_mlme.h
+++ b/drivers/staging/rtl8188eu/include/rtw_mlme.h
@@ -216,7 +216,6 @@ void hostapd_mode_unload(struct adapter *padapter);
 extern unsigned char WPA_TKIP_CIPHER[4];
 extern unsigned char RSN_TKIP_CIPHER[4];
 extern unsigned char REALTEK_96B_IE[];
-extern unsigned char   MCS_rate_2R[16];
 extern unsigned char   MCS_rate_1R[16];
 
 void rtw_joinbss_event_prehandle(struct adapter *adapter, u8 *pbuf);
-- 
2.10.2



[PATCH 9/9] staging:r8188eu: remove unused MCS_rate_2R array

2017-02-14 Thread Ivan Safonov
MCS_rate_2R[] does not used. Remove it.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_mlme.c | 1 -
 drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 1 -
 drivers/staging/rtl8188eu/include/rtw_mlme.h  | 1 -
 3 files changed, 3 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme.c 
b/drivers/staging/rtl8188eu/core/rtw_mlme.c
index 0ac63a6..fce7c26 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme.c
@@ -28,7 +28,6 @@
 #include 
 #include 
 
-extern unsigned char   MCS_rate_2R[16];
 extern unsigned char   MCS_rate_1R[16];
 
 int rtw_init_mlme_priv(struct adapter *padapter)
diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c 
b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
index 51584c8..30dd4ed 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
@@ -47,7 +47,6 @@ extern unsigned char REALTEK_96B_IE[];
 /
 MCS rate definitions
 */
-unsigned char  MCS_rate_2R[16] = {0xff, 0xff, 0x0, 0x0, 0x01, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
 unsigned char  MCS_rate_1R[16] = {0xff, 0x00, 0x0, 0x0, 0x01, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
 
 /
diff --git a/drivers/staging/rtl8188eu/include/rtw_mlme.h 
b/drivers/staging/rtl8188eu/include/rtw_mlme.h
index 7324a95..5c5d0ae 100644
--- a/drivers/staging/rtl8188eu/include/rtw_mlme.h
+++ b/drivers/staging/rtl8188eu/include/rtw_mlme.h
@@ -216,7 +216,6 @@ void hostapd_mode_unload(struct adapter *padapter);
 extern unsigned char WPA_TKIP_CIPHER[4];
 extern unsigned char RSN_TKIP_CIPHER[4];
 extern unsigned char REALTEK_96B_IE[];
-extern unsigned char   MCS_rate_2R[16];
 extern unsigned char   MCS_rate_1R[16];
 
 void rtw_joinbss_event_prehandle(struct adapter *adapter, u8 *pbuf);
-- 
2.10.2



[PATCH 8/9] staging:r8188eu: remove unused HW_VAR_RF_TYPE parameter of HT_caps_handler

2017-02-14 Thread Ivan Safonov
rtw_hal_get_hwreg() does not used with HW_VAR_RF_TYPE parameter.
Remove HW_VAR_RF_TYPE switch case in rtw_hal_get_hwreg and definition.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/hal/usb_halinit.c  | 3 ---
 drivers/staging/rtl8188eu/include/hal_intf.h | 1 -
 2 files changed, 4 deletions(-)

diff --git a/drivers/staging/rtl8188eu/hal/usb_halinit.c 
b/drivers/staging/rtl8188eu/hal/usb_halinit.c
index 3675edb..c87ab7d 100644
--- a/drivers/staging/rtl8188eu/hal/usb_halinit.c
+++ b/drivers/staging/rtl8188eu/hal/usb_halinit.c
@@ -1745,9 +1745,6 @@ void rtw_hal_get_hwreg(struct adapter *Adapter, u8 
variable, u8 *val)
/* BCN_VALID, BIT16 of REG_TDECTRL = BIT0 of REG_TDECTRL+2 */
val[0] = (BIT(0) & usb_read8(Adapter, REG_TDECTRL+2)) ? true : 
false;
break;
-   case HW_VAR_RF_TYPE:
-   val[0] = RF_1T1R;
-   break;
case HW_VAR_FWLPS_RF_ON:
{
/* When we halt NIC, we should check if FW LPS is 
leave. */
diff --git a/drivers/staging/rtl8188eu/include/hal_intf.h 
b/drivers/staging/rtl8188eu/include/hal_intf.h
index e1114a9..dfdbd02 100644
--- a/drivers/staging/rtl8188eu/include/hal_intf.h
+++ b/drivers/staging/rtl8188eu/include/hal_intf.h
@@ -57,7 +57,6 @@ enum hw_variables {
HW_VAR_ACK_PREAMBLE,
HW_VAR_SEC_CFG,
HW_VAR_BCN_VALID,
-   HW_VAR_RF_TYPE,
HW_VAR_DM_FUNC_OP,
HW_VAR_DM_FUNC_SET,
HW_VAR_DM_FUNC_CLR,
-- 
2.10.2



[PATCH 6/9] staging:r8188eu: refactor rtw_update_ht_cap() - remove rtw_hal_get_hwreg() call

2017-02-14 Thread Ivan Safonov
rtw_hal_get_hwreg(..., HW_VAR_RF_TYPE,...) always return RF_1T1R value.
Replace the function call with RF_1T1R value and refactor rtw_update_ht_cap().

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_mlme.c | 11 ++-
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme.c 
b/drivers/staging/rtl8188eu/core/rtw_mlme.c
index a719289..0ac63a6 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme.c
@@ -2018,17 +2018,10 @@ void rtw_update_ht_cap(struct adapter *padapter, u8 
*pie, uint ie_len)
(le16_to_cpu(pmlmeinfo->HT_caps.cap_info) & BIT(1)) &&
(pmlmeinfo->HT_info.infos[0] & BIT(2))) {
int i;
-   u8  rf_type;
-
-   rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(_type));
 
/* update the MCS rates */
-   for (i = 0; i < 16; i++) {
-   if ((rf_type == RF_1T1R) || (rf_type == RF_1T2R))
-   ((u8 *)>HT_caps.mcs)[i] &= 
MCS_rate_1R[i];
-   else
-   ((u8 *)>HT_caps.mcs)[i] &= 
MCS_rate_2R[i];
-   }
+   for (i = 0; i < 16; i++)
+   ((u8 *)>HT_caps.mcs)[i] &= MCS_rate_1R[i];
/* switch to the 40M Hz mode according to the AP */
pmlmeext->cur_bwmode = HT_CHANNEL_WIDTH_40;
switch ((pmlmeinfo->HT_info.infos[0] & 0x3)) {
-- 
2.10.2



[PATCH 4/9] staging:r8188eu: refactor rtw_get_cur_max_rate() - remove rtw_hal_get_hwreg() call

2017-02-14 Thread Ivan Safonov
rtw_hal_get_hwreg(..., HW_VAR_RF_TYPE,...) always return RF_1T1R value.
Replace the function call with RF_1T1R value
and refactor rtw_get_cur_max_rate().

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_ioctl_set.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c 
b/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
index 67508a6..d8d88b5 100644
--- a/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
@@ -569,7 +569,6 @@ u16 rtw_get_cur_max_rate(struct adapter *adapter)
struct registry_priv *pregistrypriv = >registrypriv;
struct mlme_priv*pmlmepriv = >mlmepriv;
struct wlan_bssid_ex  *pcur_bss = >cur_network.network;
-   u8  rf_type = 0;
u8  bw_40MHz = 0, short_GI_20 = 0, short_GI_40 = 0;
u32 ht_ielen = 0;
 
@@ -586,9 +585,8 @@ u16 rtw_get_cur_max_rate(struct adapter *adapter)
short_GI_20 = (le16_to_cpu(pmlmeinfo->HT_caps.cap_info) 
& IEEE80211_HT_CAP_SGI_20) ? 1 : 0;
short_GI_40 = (le16_to_cpu(pmlmeinfo->HT_caps.cap_info) 
& IEEE80211_HT_CAP_SGI_40) ? 1 : 0;
 
-   rtw_hal_get_hwreg(adapter, HW_VAR_RF_TYPE, (u8 
*)(_type));
max_rate = rtw_mcs_rate(
-   rf_type,
+   RF_1T1R,
bw_40MHz & (pregistrypriv->cbw40_enable),
short_GI_20,
short_GI_40,
-- 
2.10.2



[PATCH 8/9] staging:r8188eu: remove unused HW_VAR_RF_TYPE parameter of HT_caps_handler

2017-02-14 Thread Ivan Safonov
rtw_hal_get_hwreg() does not used with HW_VAR_RF_TYPE parameter.
Remove HW_VAR_RF_TYPE switch case in rtw_hal_get_hwreg and definition.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/hal/usb_halinit.c  | 3 ---
 drivers/staging/rtl8188eu/include/hal_intf.h | 1 -
 2 files changed, 4 deletions(-)

diff --git a/drivers/staging/rtl8188eu/hal/usb_halinit.c 
b/drivers/staging/rtl8188eu/hal/usb_halinit.c
index 3675edb..c87ab7d 100644
--- a/drivers/staging/rtl8188eu/hal/usb_halinit.c
+++ b/drivers/staging/rtl8188eu/hal/usb_halinit.c
@@ -1745,9 +1745,6 @@ void rtw_hal_get_hwreg(struct adapter *Adapter, u8 
variable, u8 *val)
/* BCN_VALID, BIT16 of REG_TDECTRL = BIT0 of REG_TDECTRL+2 */
val[0] = (BIT(0) & usb_read8(Adapter, REG_TDECTRL+2)) ? true : 
false;
break;
-   case HW_VAR_RF_TYPE:
-   val[0] = RF_1T1R;
-   break;
case HW_VAR_FWLPS_RF_ON:
{
/* When we halt NIC, we should check if FW LPS is 
leave. */
diff --git a/drivers/staging/rtl8188eu/include/hal_intf.h 
b/drivers/staging/rtl8188eu/include/hal_intf.h
index e1114a9..dfdbd02 100644
--- a/drivers/staging/rtl8188eu/include/hal_intf.h
+++ b/drivers/staging/rtl8188eu/include/hal_intf.h
@@ -57,7 +57,6 @@ enum hw_variables {
HW_VAR_ACK_PREAMBLE,
HW_VAR_SEC_CFG,
HW_VAR_BCN_VALID,
-   HW_VAR_RF_TYPE,
HW_VAR_DM_FUNC_OP,
HW_VAR_DM_FUNC_SET,
HW_VAR_DM_FUNC_CLR,
-- 
2.10.2



[PATCH 6/9] staging:r8188eu: refactor rtw_update_ht_cap() - remove rtw_hal_get_hwreg() call

2017-02-14 Thread Ivan Safonov
rtw_hal_get_hwreg(..., HW_VAR_RF_TYPE,...) always return RF_1T1R value.
Replace the function call with RF_1T1R value and refactor rtw_update_ht_cap().

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_mlme.c | 11 ++-
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme.c 
b/drivers/staging/rtl8188eu/core/rtw_mlme.c
index a719289..0ac63a6 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme.c
@@ -2018,17 +2018,10 @@ void rtw_update_ht_cap(struct adapter *padapter, u8 
*pie, uint ie_len)
(le16_to_cpu(pmlmeinfo->HT_caps.cap_info) & BIT(1)) &&
(pmlmeinfo->HT_info.infos[0] & BIT(2))) {
int i;
-   u8  rf_type;
-
-   rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(_type));
 
/* update the MCS rates */
-   for (i = 0; i < 16; i++) {
-   if ((rf_type == RF_1T1R) || (rf_type == RF_1T2R))
-   ((u8 *)>HT_caps.mcs)[i] &= 
MCS_rate_1R[i];
-   else
-   ((u8 *)>HT_caps.mcs)[i] &= 
MCS_rate_2R[i];
-   }
+   for (i = 0; i < 16; i++)
+   ((u8 *)>HT_caps.mcs)[i] &= MCS_rate_1R[i];
/* switch to the 40M Hz mode according to the AP */
pmlmeext->cur_bwmode = HT_CHANNEL_WIDTH_40;
switch ((pmlmeinfo->HT_info.infos[0] & 0x3)) {
-- 
2.10.2



[PATCH 4/9] staging:r8188eu: refactor rtw_get_cur_max_rate() - remove rtw_hal_get_hwreg() call

2017-02-14 Thread Ivan Safonov
rtw_hal_get_hwreg(..., HW_VAR_RF_TYPE,...) always return RF_1T1R value.
Replace the function call with RF_1T1R value
and refactor rtw_get_cur_max_rate().

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_ioctl_set.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c 
b/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
index 67508a6..d8d88b5 100644
--- a/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
@@ -569,7 +569,6 @@ u16 rtw_get_cur_max_rate(struct adapter *adapter)
struct registry_priv *pregistrypriv = >registrypriv;
struct mlme_priv*pmlmepriv = >mlmepriv;
struct wlan_bssid_ex  *pcur_bss = >cur_network.network;
-   u8  rf_type = 0;
u8  bw_40MHz = 0, short_GI_20 = 0, short_GI_40 = 0;
u32 ht_ielen = 0;
 
@@ -586,9 +585,8 @@ u16 rtw_get_cur_max_rate(struct adapter *adapter)
short_GI_20 = (le16_to_cpu(pmlmeinfo->HT_caps.cap_info) 
& IEEE80211_HT_CAP_SGI_20) ? 1 : 0;
short_GI_40 = (le16_to_cpu(pmlmeinfo->HT_caps.cap_info) 
& IEEE80211_HT_CAP_SGI_40) ? 1 : 0;
 
-   rtw_hal_get_hwreg(adapter, HW_VAR_RF_TYPE, (u8 
*)(_type));
max_rate = rtw_mcs_rate(
-   rf_type,
+   RF_1T1R,
bw_40MHz & (pregistrypriv->cbw40_enable),
short_GI_20,
short_GI_40,
-- 
2.10.2



[PATCH 3/9] staging:r8188eu: refactor rtw_check_beacon_data() - remove rtw_hal_get_hwreg() call

2017-02-14 Thread Ivan Safonov
rtw_hal_get_hwreg(..., HW_VAR_RF_TYPE,...) always return RF_1T1R value.
Replace the function call with RF_1T1R value
and refactor rtw_check_beacon_data().

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_ap.c | 9 ++---
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_ap.c 
b/drivers/staging/rtl8188eu/core/rtw_ap.c
index 49ab1b4..255c30e 100644
--- a/drivers/staging/rtl8188eu/core/rtw_ap.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ap.c
@@ -1024,15 +1024,12 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 
*pbuf,  int len)
p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _HT_CAPABILITY_IE_, _len,
   (pbss_network->IELength - _BEACON_IE_OFFSET_));
if (p && ie_len > 0) {
-   u8 rf_type;
struct ieee80211_ht_cap *pht_cap = (struct ieee80211_ht_cap 
*)(p + 2);
 
pHT_caps_ie = p;
ht_cap = true;
network_type |= WIRELESS_11_24N;
 
-   rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(_type));
-
if ((psecuritypriv->wpa_pairwise_cipher & WPA_CIPHER_CCMP) ||
(psecuritypriv->wpa2_pairwise_cipher & WPA_CIPHER_CCMP))
pht_cap->ampdu_params_info |= 
(IEEE80211_HT_CAP_AMPDU_DENSITY & (0x07 << 2));
@@ -1042,10 +1039,8 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 
*pbuf,  int len)
/* set  Max Rx AMPDU size  to 64K */
pht_cap->ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_FACTOR & 
0x03);
 
-   if (rf_type == RF_1T1R) {
-   pht_cap->mcs.rx_mask[0] = 0xff;
-   pht_cap->mcs.rx_mask[1] = 0x0;
-   }
+   pht_cap->mcs.rx_mask[0] = 0xff;
+   pht_cap->mcs.rx_mask[1] = 0x0;
memcpy(>htpriv.ht_cap, p+2, ie_len);
}
 
-- 
2.10.2



[PATCH 3/9] staging:r8188eu: refactor rtw_check_beacon_data() - remove rtw_hal_get_hwreg() call

2017-02-14 Thread Ivan Safonov
rtw_hal_get_hwreg(..., HW_VAR_RF_TYPE,...) always return RF_1T1R value.
Replace the function call with RF_1T1R value
and refactor rtw_check_beacon_data().

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_ap.c | 9 ++---
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_ap.c 
b/drivers/staging/rtl8188eu/core/rtw_ap.c
index 49ab1b4..255c30e 100644
--- a/drivers/staging/rtl8188eu/core/rtw_ap.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ap.c
@@ -1024,15 +1024,12 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 
*pbuf,  int len)
p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _HT_CAPABILITY_IE_, _len,
   (pbss_network->IELength - _BEACON_IE_OFFSET_));
if (p && ie_len > 0) {
-   u8 rf_type;
struct ieee80211_ht_cap *pht_cap = (struct ieee80211_ht_cap 
*)(p + 2);
 
pHT_caps_ie = p;
ht_cap = true;
network_type |= WIRELESS_11_24N;
 
-   rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(_type));
-
if ((psecuritypriv->wpa_pairwise_cipher & WPA_CIPHER_CCMP) ||
(psecuritypriv->wpa2_pairwise_cipher & WPA_CIPHER_CCMP))
pht_cap->ampdu_params_info |= 
(IEEE80211_HT_CAP_AMPDU_DENSITY & (0x07 << 2));
@@ -1042,10 +1039,8 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 
*pbuf,  int len)
/* set  Max Rx AMPDU size  to 64K */
pht_cap->ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_FACTOR & 
0x03);
 
-   if (rf_type == RF_1T1R) {
-   pht_cap->mcs.rx_mask[0] = 0xff;
-   pht_cap->mcs.rx_mask[1] = 0x0;
-   }
+   pht_cap->mcs.rx_mask[0] = 0xff;
+   pht_cap->mcs.rx_mask[1] = 0x0;
memcpy(>htpriv.ht_cap, p+2, ie_len);
}
 
-- 
2.10.2



[PATCH 2/9] staging:r8188eu: refactor add_RATid() - remove rtw_hal_get_hwreg() call

2017-02-14 Thread Ivan Safonov
rtw_hal_get_hwreg(..., HW_VAR_RF_TYPE,...) always return RF_1T1R value.
Replace the function call with RF_1T1R value and refactor add_RATid().

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_ap.c | 13 ++---
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_ap.c 
b/drivers/staging/rtl8188eu/core/rtw_ap.c
index 1c8fa3a..49ab1b4 100644
--- a/drivers/staging/rtl8188eu/core/rtw_ap.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ap.c
@@ -448,10 +448,8 @@ void   expire_timeout_chk(struct adapter *padapter)
 void add_RATid(struct adapter *padapter, struct sta_info *psta, u8 rssi_level)
 {
int i;
-   u8 rf_type;
u32 init_rate = 0;
unsigned char sta_band = 0, raid, shortGIrate = false;
-   unsigned char limit;
unsigned int tx_ra_bitmap = 0;
struct ht_priv  *psta_ht = NULL;
struct mlme_priv *pmlmepriv = >mlmepriv;
@@ -472,16 +470,9 @@ void add_RATid(struct adapter *padapter, struct sta_info 
*psta, u8 rssi_level)
}
/* n mode ra_bitmap */
if (psta_ht->ht_option) {
-   rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(_type));
-   if (rf_type == RF_2T2R)
-   limit = 16;/*  2R */
-   else
-   limit = 8;/*   1R */
-
-   for (i = 0; i < limit; i++) {
-   if (psta_ht->ht_cap.mcs.rx_mask[i / 8] & BIT(i % 8))
+   for (i = 0; i < 8; i++)
+   if (psta_ht->ht_cap.mcs.rx_mask[0] & BIT(i))
tx_ra_bitmap |= BIT(i + 12);
-   }
 
/* max short GI rate */
shortGIrate = psta_ht->sgi;
-- 
2.10.2



[PATCH 2/9] staging:r8188eu: refactor add_RATid() - remove rtw_hal_get_hwreg() call

2017-02-14 Thread Ivan Safonov
rtw_hal_get_hwreg(..., HW_VAR_RF_TYPE,...) always return RF_1T1R value.
Replace the function call with RF_1T1R value and refactor add_RATid().

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_ap.c | 13 ++---
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_ap.c 
b/drivers/staging/rtl8188eu/core/rtw_ap.c
index 1c8fa3a..49ab1b4 100644
--- a/drivers/staging/rtl8188eu/core/rtw_ap.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ap.c
@@ -448,10 +448,8 @@ void   expire_timeout_chk(struct adapter *padapter)
 void add_RATid(struct adapter *padapter, struct sta_info *psta, u8 rssi_level)
 {
int i;
-   u8 rf_type;
u32 init_rate = 0;
unsigned char sta_band = 0, raid, shortGIrate = false;
-   unsigned char limit;
unsigned int tx_ra_bitmap = 0;
struct ht_priv  *psta_ht = NULL;
struct mlme_priv *pmlmepriv = >mlmepriv;
@@ -472,16 +470,9 @@ void add_RATid(struct adapter *padapter, struct sta_info 
*psta, u8 rssi_level)
}
/* n mode ra_bitmap */
if (psta_ht->ht_option) {
-   rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(_type));
-   if (rf_type == RF_2T2R)
-   limit = 16;/*  2R */
-   else
-   limit = 8;/*   1R */
-
-   for (i = 0; i < limit; i++) {
-   if (psta_ht->ht_cap.mcs.rx_mask[i / 8] & BIT(i % 8))
+   for (i = 0; i < 8; i++)
+   if (psta_ht->ht_cap.mcs.rx_mask[0] & BIT(i))
tx_ra_bitmap |= BIT(i + 12);
-   }
 
/* max short GI rate */
shortGIrate = psta_ht->sgi;
-- 
2.10.2



[PATCH 5/9] staging:r8188eu: refactor issue_assocreq() - remove rtw_hal_get_hwreg() call

2017-02-14 Thread Ivan Safonov
rtw_hal_get_hwreg(..., HW_VAR_RF_TYPE,...) always return RF_1T1R value.
Replace the function call with RF_1T1R value and refactor issue_assocreq().

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 24 
 1 file changed, 4 insertions(+), 20 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c 
b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
index f45af40..51584c8 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
@@ -1027,7 +1027,7 @@ static void issue_assocreq(struct adapter *padapter)
struct ieee80211_hdr *pwlanhdr;
__le16 *fctrl;
unsigned inti, j, ie_len, index = 0;
-   unsigned char   rf_type, bssrate[NumRates], sta_bssrate[NumRates];
+   unsigned char bssrate[NumRates], sta_bssrate[NumRates];
struct ndis_802_11_var_ie *pIE;
struct registry_priv*pregpriv = >registrypriv;
struct xmit_priv*pxmitpriv = &(padapter->xmitpriv);
@@ -1150,25 +1150,9 @@ static void issue_assocreq(struct adapter *padapter)
/* todo: disable SM power save mode */
pmlmeinfo->HT_caps.cap_info |= cpu_to_le16(0x000c);
 
-   rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 
*)(_type));
-   switch (rf_type) {
-   case RF_1T1R:
-   if (pregpriv->rx_stbc)
-   pmlmeinfo->HT_caps.cap_info |= 
cpu_to_le16(0x0100);/* RX STBC One spatial stream */
-   memcpy((u8 *)>HT_caps.mcs, 
MCS_rate_1R, 16);
-   break;
-   case RF_2T2R:
-   case RF_1T2R:
-   default:
-   if ((pregpriv->rx_stbc == 0x3) ||/* enable for 
2.4/5 GHz */
-   ((pmlmeext->cur_wireless_mode & 
WIRELESS_11_24N) && (pregpriv->rx_stbc == 0x1)) || /* enable for 2.4GHz */
-   (pregpriv->wifi_spec == 1)) {
-   DBG_88E("declare supporting RX STBC\n");
-   pmlmeinfo->HT_caps.cap_info |= 
cpu_to_le16(0x0200);/* RX STBC two spatial stream */
-   }
-   memcpy(>HT_caps.mcs, MCS_rate_2R, 
16);
-   break;
-   }
+   if (pregpriv->rx_stbc)
+   pmlmeinfo->HT_caps.cap_info |= 
cpu_to_le16(0x0100);/* RX STBC One spatial stream */
+   memcpy((u8 *)>HT_caps.mcs, MCS_rate_1R, 16);
pframe = rtw_set_ie(pframe, _HT_CAPABILITY_IE_, ie_len, 
(u8 *)(&(pmlmeinfo->HT_caps)), &(pattrib->pktlen));
}
}
-- 
2.10.2



[PATCH 5/9] staging:r8188eu: refactor issue_assocreq() - remove rtw_hal_get_hwreg() call

2017-02-14 Thread Ivan Safonov
rtw_hal_get_hwreg(..., HW_VAR_RF_TYPE,...) always return RF_1T1R value.
Replace the function call with RF_1T1R value and refactor issue_assocreq().

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 24 
 1 file changed, 4 insertions(+), 20 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c 
b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
index f45af40..51584c8 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
@@ -1027,7 +1027,7 @@ static void issue_assocreq(struct adapter *padapter)
struct ieee80211_hdr *pwlanhdr;
__le16 *fctrl;
unsigned inti, j, ie_len, index = 0;
-   unsigned char   rf_type, bssrate[NumRates], sta_bssrate[NumRates];
+   unsigned char bssrate[NumRates], sta_bssrate[NumRates];
struct ndis_802_11_var_ie *pIE;
struct registry_priv*pregpriv = >registrypriv;
struct xmit_priv*pxmitpriv = &(padapter->xmitpriv);
@@ -1150,25 +1150,9 @@ static void issue_assocreq(struct adapter *padapter)
/* todo: disable SM power save mode */
pmlmeinfo->HT_caps.cap_info |= cpu_to_le16(0x000c);
 
-   rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 
*)(_type));
-   switch (rf_type) {
-   case RF_1T1R:
-   if (pregpriv->rx_stbc)
-   pmlmeinfo->HT_caps.cap_info |= 
cpu_to_le16(0x0100);/* RX STBC One spatial stream */
-   memcpy((u8 *)>HT_caps.mcs, 
MCS_rate_1R, 16);
-   break;
-   case RF_2T2R:
-   case RF_1T2R:
-   default:
-   if ((pregpriv->rx_stbc == 0x3) ||/* enable for 
2.4/5 GHz */
-   ((pmlmeext->cur_wireless_mode & 
WIRELESS_11_24N) && (pregpriv->rx_stbc == 0x1)) || /* enable for 2.4GHz */
-   (pregpriv->wifi_spec == 1)) {
-   DBG_88E("declare supporting RX STBC\n");
-   pmlmeinfo->HT_caps.cap_info |= 
cpu_to_le16(0x0200);/* RX STBC two spatial stream */
-   }
-   memcpy(>HT_caps.mcs, MCS_rate_2R, 
16);
-   break;
-   }
+   if (pregpriv->rx_stbc)
+   pmlmeinfo->HT_caps.cap_info |= 
cpu_to_le16(0x0100);/* RX STBC One spatial stream */
+   memcpy((u8 *)>HT_caps.mcs, MCS_rate_1R, 16);
pframe = rtw_set_ie(pframe, _HT_CAPABILITY_IE_, ie_len, 
(u8 *)(&(pmlmeinfo->HT_caps)), &(pattrib->pktlen));
}
}
-- 
2.10.2



[PATCH 7/9] staging:r8188eu: refactor HT_caps_handler() - remove rtw_hal_get_hwreg() call

2017-02-14 Thread Ivan Safonov
rtw_hal_get_hwreg(..., HW_VAR_RF_TYPE,...) always return RF_1T1R value.
Replace the function call with RF_1T1R value and refactor HT_caps_handler().

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_wlan_util.c | 11 ++-
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_wlan_util.c 
b/drivers/staging/rtl8188eu/core/rtw_wlan_util.c
index f6f1b09..2db8a5d 100644
--- a/drivers/staging/rtl8188eu/core/rtw_wlan_util.c
+++ b/drivers/staging/rtl8188eu/core/rtw_wlan_util.c
@@ -708,7 +708,6 @@ static void bwmode_update_check(struct adapter *padapter, 
struct ndis_802_11_var
 void HT_caps_handler(struct adapter *padapter, struct ndis_802_11_var_ie *pIE)
 {
unsigned inti;
-   u8  rf_type;
u8  max_AMPDU_len, min_MPDU_spacing;
struct mlme_ext_priv*pmlmeext = >mlmeextpriv;
struct mlme_ext_info*pmlmeinfo = &(pmlmeext->mlmext_info);
@@ -744,15 +743,9 @@ void HT_caps_handler(struct adapter *padapter, struct 
ndis_802_11_var_ie *pIE)
}
}
 
-   rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(_type));
-
/* update the MCS rates */
-   for (i = 0; i < 16; i++) {
-   if ((rf_type == RF_1T1R) || (rf_type == RF_1T2R))
-   ((u8 *)>HT_caps.mcs)[i] &= MCS_rate_1R[i];
-   else
-   ((u8 *)>HT_caps.mcs)[i] &= MCS_rate_2R[i];
-   }
+   for (i = 0; i < 16; i++)
+   ((u8 *)>HT_caps.mcs)[i] &= MCS_rate_1R[i];
 }
 
 void HT_info_handler(struct adapter *padapter, struct ndis_802_11_var_ie *pIE)
-- 
2.10.2



[PATCH 7/9] staging:r8188eu: refactor HT_caps_handler() - remove rtw_hal_get_hwreg() call

2017-02-14 Thread Ivan Safonov
rtw_hal_get_hwreg(..., HW_VAR_RF_TYPE,...) always return RF_1T1R value.
Replace the function call with RF_1T1R value and refactor HT_caps_handler().

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_wlan_util.c | 11 ++-
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_wlan_util.c 
b/drivers/staging/rtl8188eu/core/rtw_wlan_util.c
index f6f1b09..2db8a5d 100644
--- a/drivers/staging/rtl8188eu/core/rtw_wlan_util.c
+++ b/drivers/staging/rtl8188eu/core/rtw_wlan_util.c
@@ -708,7 +708,6 @@ static void bwmode_update_check(struct adapter *padapter, 
struct ndis_802_11_var
 void HT_caps_handler(struct adapter *padapter, struct ndis_802_11_var_ie *pIE)
 {
unsigned inti;
-   u8  rf_type;
u8  max_AMPDU_len, min_MPDU_spacing;
struct mlme_ext_priv*pmlmeext = >mlmeextpriv;
struct mlme_ext_info*pmlmeinfo = &(pmlmeext->mlmext_info);
@@ -744,15 +743,9 @@ void HT_caps_handler(struct adapter *padapter, struct 
ndis_802_11_var_ie *pIE)
}
}
 
-   rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(_type));
-
/* update the MCS rates */
-   for (i = 0; i < 16; i++) {
-   if ((rf_type == RF_1T1R) || (rf_type == RF_1T2R))
-   ((u8 *)>HT_caps.mcs)[i] &= MCS_rate_1R[i];
-   else
-   ((u8 *)>HT_caps.mcs)[i] &= MCS_rate_2R[i];
-   }
+   for (i = 0; i < 16; i++)
+   ((u8 *)>HT_caps.mcs)[i] &= MCS_rate_1R[i];
 }
 
 void HT_info_handler(struct adapter *padapter, struct ndis_802_11_var_ie *pIE)
-- 
2.10.2



[PATCH 2/4] staging:r8188eu: remove unused rtw_ieee80211_bar structure definition

2017-02-06 Thread Ivan Safonov
rtw_ieee80211_bar structure definition does not used. Remove it.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/wifi.h | 15 ---
 1 file changed, 15 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/wifi.h 
b/drivers/staging/rtl8188eu/include/wifi.h
index 5630dcb..cb46d35 100644
--- a/drivers/staging/rtl8188eu/include/wifi.h
+++ b/drivers/staging/rtl8188eu/include/wifi.h
@@ -479,21 +479,6 @@ static inline int IsFrameTypeCtrl(unsigned char *pframe)
Below is the definition for 802.11n
 
--*/
 
-/**
- * struct rtw_ieee80211_bar - HT Block Ack Request
- *
- * This structure refers to "HT BlockAckReq" as
- * described in 802.11n draft section 7.2.1.7.1
- */
-struct rtw_ieee80211_bar {
-   unsigned short frame_control;
-   unsigned short duration;
-   unsigned char ra[6];
-   unsigned char ta[6];
-   unsigned short control;
-   unsigned short start_seq_num;
-} __packed;
-
 /* 802.11 BAR control masks */
 #define IEEE80211_BAR_CTRL_ACK_POLICY_NORMAL 0x
 #define IEEE80211_BAR_CTRL_CBMTID_COMPRESSED_BA  0x0004
-- 
2.10.2



[PATCH 2/4] staging:r8188eu: remove unused rtw_ieee80211_bar structure definition

2017-02-06 Thread Ivan Safonov
rtw_ieee80211_bar structure definition does not used. Remove it.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/wifi.h | 15 ---
 1 file changed, 15 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/wifi.h 
b/drivers/staging/rtl8188eu/include/wifi.h
index 5630dcb..cb46d35 100644
--- a/drivers/staging/rtl8188eu/include/wifi.h
+++ b/drivers/staging/rtl8188eu/include/wifi.h
@@ -479,21 +479,6 @@ static inline int IsFrameTypeCtrl(unsigned char *pframe)
Below is the definition for 802.11n
 
--*/
 
-/**
- * struct rtw_ieee80211_bar - HT Block Ack Request
- *
- * This structure refers to "HT BlockAckReq" as
- * described in 802.11n draft section 7.2.1.7.1
- */
-struct rtw_ieee80211_bar {
-   unsigned short frame_control;
-   unsigned short duration;
-   unsigned char ra[6];
-   unsigned char ta[6];
-   unsigned short control;
-   unsigned short start_seq_num;
-} __packed;
-
 /* 802.11 BAR control masks */
 #define IEEE80211_BAR_CTRL_ACK_POLICY_NORMAL 0x
 #define IEEE80211_BAR_CTRL_CBMTID_COMPRESSED_BA  0x0004
-- 
2.10.2



[PATCH 1/4] staging:r8188eu: replace rx_end member of recv_frame with pkt->end

2017-02-06 Thread Ivan Safonov
rx_end is duplication of pkt->end pointer.
pkt->end is preferred, because it is native skb field
supported by skb_*() functions.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 3 +--
 drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c | 1 -
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index 591dd9d..2e5caa4 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -231,7 +231,6 @@ struct recv_frame {
uint  len;
u8 *rx_data;
u8 *rx_tail;
-   u8 *rx_end;
struct sta_info *psta;
/* for A-MPDU Rx reordering buffer control */
struct recv_reorder_ctrl *preorder_ctrl;
@@ -282,7 +281,7 @@ static inline u8 *recvframe_put(struct recv_frame 
*precvframe, int sz)
 
precvframe->rx_tail += sz;
 
-   if (precvframe->rx_tail > precvframe->rx_end) {
+   if (precvframe->rx_tail > precvframe->pkt->end) {
precvframe->rx_tail -= sz;
return NULL;
}
diff --git a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c 
b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
index fd5cb8a..cdb2fd3 100644
--- a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
@@ -125,7 +125,6 @@ static int recvbuf2recvframe(struct adapter *adapt, struct 
sk_buff *pskb)
if (pkt_copy) {
pkt_copy->dev = adapt->pnetdev;
precvframe->pkt = pkt_copy;
-   precvframe->rx_end = pkt_copy->data + alloc_sz;
skb_reserve(pkt_copy, 8 - ((size_t)(pkt_copy->data) & 
7));/* force pkt_copy->data at 8-byte alignment address */
skb_reserve(pkt_copy, shift_sz);/* force ip_hdr at 
8-byte alignment address according to shift_sz. */
memcpy(pkt_copy->data, (pbuf + pattrib->drvinfo_sz + 
RXDESC_SIZE), skb_len);
-- 
2.10.2



[PATCH 1/4] staging:r8188eu: replace rx_end member of recv_frame with pkt->end

2017-02-06 Thread Ivan Safonov
rx_end is duplication of pkt->end pointer.
pkt->end is preferred, because it is native skb field
supported by skb_*() functions.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 3 +--
 drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c | 1 -
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index 591dd9d..2e5caa4 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -231,7 +231,6 @@ struct recv_frame {
uint  len;
u8 *rx_data;
u8 *rx_tail;
-   u8 *rx_end;
struct sta_info *psta;
/* for A-MPDU Rx reordering buffer control */
struct recv_reorder_ctrl *preorder_ctrl;
@@ -282,7 +281,7 @@ static inline u8 *recvframe_put(struct recv_frame 
*precvframe, int sz)
 
precvframe->rx_tail += sz;
 
-   if (precvframe->rx_tail > precvframe->rx_end) {
+   if (precvframe->rx_tail > precvframe->pkt->end) {
precvframe->rx_tail -= sz;
return NULL;
}
diff --git a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c 
b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
index fd5cb8a..cdb2fd3 100644
--- a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
@@ -125,7 +125,6 @@ static int recvbuf2recvframe(struct adapter *adapt, struct 
sk_buff *pskb)
if (pkt_copy) {
pkt_copy->dev = adapt->pnetdev;
precvframe->pkt = pkt_copy;
-   precvframe->rx_end = pkt_copy->data + alloc_sz;
skb_reserve(pkt_copy, 8 - ((size_t)(pkt_copy->data) & 
7));/* force pkt_copy->data at 8-byte alignment address */
skb_reserve(pkt_copy, shift_sz);/* force ip_hdr at 
8-byte alignment address according to shift_sz. */
memcpy(pkt_copy->data, (pbuf + pattrib->drvinfo_sz + 
RXDESC_SIZE), skb_len);
-- 
2.10.2



[PATCH 4/4] staging:r8188eu: replace recv_frame->rx_(data|len|tail) with pkt->(data|len|tail) and remove unused recvframe_(put|pull|pull_tail)()

2017-02-06 Thread Ivan Safonov
recv_frame->rx_(data|len|tail) duplicate pkt (skb) data|len|tail members
and require special functions recvframe_(put|pull|pull_tail)()
instead of skb_(put|pull|trim).
Replace rx_(data|len|tail) with pkt->(data|len|tail),
remove rx_(data|len|tail) and remove recvframe_(put|pull|pull_tail)().

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_mlme_ext.c| 52 +++---
 drivers/staging/rtl8188eu/core/rtw_recv.c| 92 
 drivers/staging/rtl8188eu/core/rtw_security.c| 12 ++--
 drivers/staging/rtl8188eu/hal/rtl8188e_rxdesc.c  |  2 +-
 drivers/staging/rtl8188eu/include/rtw_recv.h | 62 
 drivers/staging/rtl8188eu/os_dep/mon.c   |  4 +-
 drivers/staging/rtl8188eu/os_dep/recv_linux.c|  6 --
 drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c | 12 ++--
 8 files changed, 83 insertions(+), 159 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c 
b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
index 2933479..f45af40 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
@@ -2053,8 +2053,8 @@ static u8 collect_bss_info(struct adapter *padapter,
u32 len;
u8 *p;
u16 val16, subtype;
-   u8 *pframe = precv_frame->rx_data;
-   u32 packet_len = precv_frame->len;
+   u8 *pframe = precv_frame->pkt->data;
+   u32 packet_len = precv_frame->pkt->len;
u8 ie_offset;
struct registry_priv*pregistrypriv = >registrypriv;
struct mlme_ext_priv*pmlmeext = >mlmeextpriv;
@@ -2563,8 +2563,8 @@ static unsigned int OnProbeReq(struct adapter *padapter,
struct mlme_ext_priv *pmlmeext = >mlmeextpriv;
struct mlme_ext_info*pmlmeinfo = &(pmlmeext->mlmext_info);
struct wlan_bssid_ex *cur = &(pmlmeinfo->network);
-   u8 *pframe = precv_frame->rx_data;
-   uint len = precv_frame->len;
+   u8 *pframe = precv_frame->pkt->data;
+   uint len = precv_frame->pkt->len;
 
if (check_fwstate(pmlmepriv, WIFI_STATION_STATE))
return _SUCCESS;
@@ -2611,8 +2611,8 @@ static unsigned int OnBeacon(struct adapter *padapter,
struct mlme_ext_info*pmlmeinfo = &(pmlmeext->mlmext_info);
struct mlme_priv *pmlmepriv = >mlmepriv;
struct sta_priv *pstapriv = >stapriv;
-   u8 *pframe = precv_frame->rx_data;
-   uint len = precv_frame->len;
+   u8 *pframe = precv_frame->pkt->data;
+   uint len = precv_frame->pkt->len;
struct wlan_bssid_ex *pbss;
int ret = _SUCCESS;
struct wlan_bssid_ex *pnetwork = &(pmlmeinfo->network);
@@ -2708,8 +2708,8 @@ static unsigned int OnAuth(struct adapter *padapter,
struct security_priv *psecuritypriv = >securitypriv;
struct mlme_ext_priv*pmlmeext = >mlmeextpriv;
struct mlme_ext_info*pmlmeinfo = &(pmlmeext->mlmext_info);
-   u8 *pframe = precv_frame->rx_data;
-   uint len = precv_frame->len;
+   u8 *pframe = precv_frame->pkt->data;
+   uint len = precv_frame->pkt->len;
 
if ((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
return _FAIL;
@@ -2871,8 +2871,8 @@ static unsigned int OnAuthClient(struct adapter *padapter,
unsigned intgo2asoc = 0;
struct mlme_ext_priv*pmlmeext = >mlmeextpriv;
struct mlme_ext_info*pmlmeinfo = &(pmlmeext->mlmext_info);
-   u8 *pframe = precv_frame->rx_data;
-   uint pkt_len = precv_frame->len;
+   u8 *pframe = precv_frame->pkt->data;
+   uint pkt_len = precv_frame->pkt->len;
 
DBG_88E("%s\n", __func__);
 
@@ -2959,8 +2959,8 @@ static unsigned int OnAssocReq(struct adapter *padapter,
struct mlme_ext_info*pmlmeinfo = &(pmlmeext->mlmext_info);
struct wlan_bssid_ex *cur = &(pmlmeinfo->network);
struct sta_priv *pstapriv = >stapriv;
-   u8 *pframe = precv_frame->rx_data;
-   uint pkt_len = precv_frame->len;
+   u8 *pframe = precv_frame->pkt->data;
+   uint pkt_len = precv_frame->pkt->len;
 
if ((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
return _FAIL;
@@ -3391,8 +3391,8 @@ static unsigned int OnAssocRsp(struct adapter *padapter,
struct mlme_ext_priv*pmlmeext = >mlmeextpriv;
struct mlme_ext_info*pmlmeinfo = &(pmlmeext->mlmext_info);
/* struct wlan_bssid_ex *cur_network = &(pmlmeinfo->network); */
-   u8 *pframe = precv_frame->rx_data;
-   uint pkt_len = precv_frame->len;
+   u8 *pframe = precv_frame->pkt->data;
+   uint pkt_len = precv_frame->pkt->len;
 
DBG_88E("%s\n", __func__);
 
@@ -3476,7 +3476,7 @@ static unsigne

[PATCH 4/4] staging:r8188eu: replace recv_frame->rx_(data|len|tail) with pkt->(data|len|tail) and remove unused recvframe_(put|pull|pull_tail)()

2017-02-06 Thread Ivan Safonov
recv_frame->rx_(data|len|tail) duplicate pkt (skb) data|len|tail members
and require special functions recvframe_(put|pull|pull_tail)()
instead of skb_(put|pull|trim).
Replace rx_(data|len|tail) with pkt->(data|len|tail),
remove rx_(data|len|tail) and remove recvframe_(put|pull|pull_tail)().

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_mlme_ext.c| 52 +++---
 drivers/staging/rtl8188eu/core/rtw_recv.c| 92 
 drivers/staging/rtl8188eu/core/rtw_security.c| 12 ++--
 drivers/staging/rtl8188eu/hal/rtl8188e_rxdesc.c  |  2 +-
 drivers/staging/rtl8188eu/include/rtw_recv.h | 62 
 drivers/staging/rtl8188eu/os_dep/mon.c   |  4 +-
 drivers/staging/rtl8188eu/os_dep/recv_linux.c|  6 --
 drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c | 12 ++--
 8 files changed, 83 insertions(+), 159 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c 
b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
index 2933479..f45af40 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
@@ -2053,8 +2053,8 @@ static u8 collect_bss_info(struct adapter *padapter,
u32 len;
u8 *p;
u16 val16, subtype;
-   u8 *pframe = precv_frame->rx_data;
-   u32 packet_len = precv_frame->len;
+   u8 *pframe = precv_frame->pkt->data;
+   u32 packet_len = precv_frame->pkt->len;
u8 ie_offset;
struct registry_priv*pregistrypriv = >registrypriv;
struct mlme_ext_priv*pmlmeext = >mlmeextpriv;
@@ -2563,8 +2563,8 @@ static unsigned int OnProbeReq(struct adapter *padapter,
struct mlme_ext_priv *pmlmeext = >mlmeextpriv;
struct mlme_ext_info*pmlmeinfo = &(pmlmeext->mlmext_info);
struct wlan_bssid_ex *cur = &(pmlmeinfo->network);
-   u8 *pframe = precv_frame->rx_data;
-   uint len = precv_frame->len;
+   u8 *pframe = precv_frame->pkt->data;
+   uint len = precv_frame->pkt->len;
 
if (check_fwstate(pmlmepriv, WIFI_STATION_STATE))
return _SUCCESS;
@@ -2611,8 +2611,8 @@ static unsigned int OnBeacon(struct adapter *padapter,
struct mlme_ext_info*pmlmeinfo = &(pmlmeext->mlmext_info);
struct mlme_priv *pmlmepriv = >mlmepriv;
struct sta_priv *pstapriv = >stapriv;
-   u8 *pframe = precv_frame->rx_data;
-   uint len = precv_frame->len;
+   u8 *pframe = precv_frame->pkt->data;
+   uint len = precv_frame->pkt->len;
struct wlan_bssid_ex *pbss;
int ret = _SUCCESS;
struct wlan_bssid_ex *pnetwork = &(pmlmeinfo->network);
@@ -2708,8 +2708,8 @@ static unsigned int OnAuth(struct adapter *padapter,
struct security_priv *psecuritypriv = >securitypriv;
struct mlme_ext_priv*pmlmeext = >mlmeextpriv;
struct mlme_ext_info*pmlmeinfo = &(pmlmeext->mlmext_info);
-   u8 *pframe = precv_frame->rx_data;
-   uint len = precv_frame->len;
+   u8 *pframe = precv_frame->pkt->data;
+   uint len = precv_frame->pkt->len;
 
if ((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
return _FAIL;
@@ -2871,8 +2871,8 @@ static unsigned int OnAuthClient(struct adapter *padapter,
unsigned intgo2asoc = 0;
struct mlme_ext_priv*pmlmeext = >mlmeextpriv;
struct mlme_ext_info*pmlmeinfo = &(pmlmeext->mlmext_info);
-   u8 *pframe = precv_frame->rx_data;
-   uint pkt_len = precv_frame->len;
+   u8 *pframe = precv_frame->pkt->data;
+   uint pkt_len = precv_frame->pkt->len;
 
DBG_88E("%s\n", __func__);
 
@@ -2959,8 +2959,8 @@ static unsigned int OnAssocReq(struct adapter *padapter,
struct mlme_ext_info*pmlmeinfo = &(pmlmeext->mlmext_info);
struct wlan_bssid_ex *cur = &(pmlmeinfo->network);
struct sta_priv *pstapriv = >stapriv;
-   u8 *pframe = precv_frame->rx_data;
-   uint pkt_len = precv_frame->len;
+   u8 *pframe = precv_frame->pkt->data;
+   uint pkt_len = precv_frame->pkt->len;
 
if ((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
return _FAIL;
@@ -3391,8 +3391,8 @@ static unsigned int OnAssocRsp(struct adapter *padapter,
struct mlme_ext_priv*pmlmeext = >mlmeextpriv;
struct mlme_ext_info*pmlmeinfo = &(pmlmeext->mlmext_info);
/* struct wlan_bssid_ex *cur_network = &(pmlmeinfo->network); */
-   u8 *pframe = precv_frame->rx_data;
-   uint pkt_len = precv_frame->len;
+   u8 *pframe = precv_frame->pkt->data;
+   uint pkt_len = precv_frame->pkt->len;
 
DBG_88E("%s\n", __func__);
 
@@ -3476,7 +3476,7 @@ static unsigned int OnDeAuth(struct adapter *pa

[PATCH 3/4] staging:r8188eu: update pkt->(data|tail|len) synchronously with rx_(data|tail|len) in recv_frame structure

2017-02-06 Thread Ivan Safonov
Original driver code uses rx_* members to store skb (pkt) fields
(instead of pkt->* members), pkt->* updated only after data
completely formed, not in process.

Update pkt->* after data buffer changed (with rx_*).

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index 2e5caa4..d4d8a74 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -261,6 +261,8 @@ static inline u8 *recvframe_pull(struct recv_frame 
*precvframe, int sz)
 
if (precvframe == NULL)
return NULL;
+
+   skb_pull(precvframe->pkt, sz);
precvframe->rx_data += sz;
if (precvframe->rx_data > precvframe->rx_tail) {
precvframe->rx_data -= sz;
@@ -278,7 +280,7 @@ static inline u8 *recvframe_put(struct recv_frame 
*precvframe, int sz)
 
if (precvframe == NULL)
return NULL;
-
+   skb_put(precvframe->pkt, sz);
precvframe->rx_tail += sz;
 
if (precvframe->rx_tail > precvframe->pkt->end) {
@@ -299,6 +301,7 @@ static inline u8 *recvframe_pull_tail(struct recv_frame 
*precvframe, int sz)
 
if (precvframe == NULL)
return NULL;
+   skb_trim(precvframe->pkt, precvframe->pkt->len - sz);
precvframe->rx_tail -= sz;
if (precvframe->rx_tail < precvframe->rx_data) {
precvframe->rx_tail += sz;
-- 
2.10.2



[PATCH 3/4] staging:r8188eu: update pkt->(data|tail|len) synchronously with rx_(data|tail|len) in recv_frame structure

2017-02-06 Thread Ivan Safonov
Original driver code uses rx_* members to store skb (pkt) fields
(instead of pkt->* members), pkt->* updated only after data
completely formed, not in process.

Update pkt->* after data buffer changed (with rx_*).

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index 2e5caa4..d4d8a74 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -261,6 +261,8 @@ static inline u8 *recvframe_pull(struct recv_frame 
*precvframe, int sz)
 
if (precvframe == NULL)
return NULL;
+
+   skb_pull(precvframe->pkt, sz);
precvframe->rx_data += sz;
if (precvframe->rx_data > precvframe->rx_tail) {
precvframe->rx_data -= sz;
@@ -278,7 +280,7 @@ static inline u8 *recvframe_put(struct recv_frame 
*precvframe, int sz)
 
if (precvframe == NULL)
return NULL;
-
+   skb_put(precvframe->pkt, sz);
precvframe->rx_tail += sz;
 
if (precvframe->rx_tail > precvframe->pkt->end) {
@@ -299,6 +301,7 @@ static inline u8 *recvframe_pull_tail(struct recv_frame 
*precvframe, int sz)
 
if (precvframe == NULL)
return NULL;
+   skb_trim(precvframe->pkt, precvframe->pkt->len - sz);
precvframe->rx_tail -= sz;
if (precvframe->rx_tail < precvframe->rx_data) {
precvframe->rx_tail += sz;
-- 
2.10.2



Re: [PATCH] drivers: staging: rtl8188eu: include: wifi: Unnecessary do-while removed from macro

2017-01-14 Thread Ivan Safonov

On 01/14/2017 10:40 PM, Greg KH wrote:

On Sun, Jan 15, 2017 at 12:44:41AM +0530, Kartikey singh wrote:
Even better yet, remove it and rebuild the driver and see if it
breaks :)


Only if the code is not between #ifn?def / #endif...


Re: [PATCH] drivers: staging: rtl8188eu: include: wifi: Unnecessary do-while removed from macro

2017-01-14 Thread Ivan Safonov

On 01/14/2017 10:40 PM, Greg KH wrote:

On Sun, Jan 15, 2017 at 12:44:41AM +0530, Kartikey singh wrote:
Even better yet, remove it and rebuild the driver and see if it
breaks :)


Only if the code is not between #ifn?def / #endif...


[PATCH 2/7] staging:r8188eu: remove unused WPA_(GET|PUT)_(BE|LE)_xx macro

2017-01-12 Thread Ivan Safonov
WPA_(GET|PUT)_(BE|LE)_xx macros are unused, remove it.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/rtw_security.h | 29 
 1 file changed, 29 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_security.h 
b/drivers/staging/rtl8188eu/include/rtw_security.h
index 22f9c43..7100d6b 100644
--- a/drivers/staging/rtl8188eu/include/rtw_security.h
+++ b/drivers/staging/rtl8188eu/include/rtw_security.h
@@ -255,35 +255,6 @@ static inline u32 rotr(u32 val, int bits)
 #define TE2(i) rotr(Te0[((i) >> 8) & 0xff], 16)
 #define TE3(i) rotr(Te0[(i) & 0xff], 24)
 
-#define WPA_GET_BE32(a) u32)(a)[0]) << 24) | (((u32)(a)[1]) << 16) | \
-(((u32)(a)[2]) << 8) | ((u32)(a)[3]))
-
-#define WPA_PUT_LE16(a, val)   \
-   do {\
-   (a)[1] = ((u16)(val)) >> 8; \
-   (a)[0] = ((u16)(val)) & 0xff;   \
-   } while (0)
-
-#define WPA_PUT_BE32(a, val)   \
-   do {\
-   (a)[0] = (u8)u32)(val)) >> 24) & 0xff); \
-   (a)[1] = (u8)u32)(val)) >> 16) & 0xff); \
-   (a)[2] = (u8)u32)(val)) >> 8) & 0xff);  \
-   (a)[3] = (u8)(((u32)(val)) & 0xff); \
-   } while (0)
-
-#define WPA_PUT_BE64(a, val)   \
-   do {\
-   (a)[0] = (u8)(((u64)(val)) >> 56);  \
-   (a)[1] = (u8)(((u64)(val)) >> 48);  \
-   (a)[2] = (u8)(((u64)(val)) >> 40);  \
-   (a)[3] = (u8)(((u64)(val)) >> 32);  \
-   (a)[4] = (u8)(((u64)(val)) >> 24);  \
-   (a)[5] = (u8)(((u64)(val)) >> 16);  \
-   (a)[6] = (u8)(((u64)(val)) >> 8);   \
-   (a)[7] = (u8)(((u64)(val)) & 0xff); \
-   } while (0)
-
 /* = start - public domain SHA256 implementation = */
 
 /* This is based on SHA256 implementation in LibTomCrypt that was released into
-- 
2.10.2



[PATCH 2/7] staging:r8188eu: remove unused WPA_(GET|PUT)_(BE|LE)_xx macro

2017-01-12 Thread Ivan Safonov
WPA_(GET|PUT)_(BE|LE)_xx macros are unused, remove it.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/rtw_security.h | 29 
 1 file changed, 29 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_security.h 
b/drivers/staging/rtl8188eu/include/rtw_security.h
index 22f9c43..7100d6b 100644
--- a/drivers/staging/rtl8188eu/include/rtw_security.h
+++ b/drivers/staging/rtl8188eu/include/rtw_security.h
@@ -255,35 +255,6 @@ static inline u32 rotr(u32 val, int bits)
 #define TE2(i) rotr(Te0[((i) >> 8) & 0xff], 16)
 #define TE3(i) rotr(Te0[(i) & 0xff], 24)
 
-#define WPA_GET_BE32(a) u32)(a)[0]) << 24) | (((u32)(a)[1]) << 16) | \
-(((u32)(a)[2]) << 8) | ((u32)(a)[3]))
-
-#define WPA_PUT_LE16(a, val)   \
-   do {\
-   (a)[1] = ((u16)(val)) >> 8; \
-   (a)[0] = ((u16)(val)) & 0xff;   \
-   } while (0)
-
-#define WPA_PUT_BE32(a, val)   \
-   do {\
-   (a)[0] = (u8)u32)(val)) >> 24) & 0xff); \
-   (a)[1] = (u8)u32)(val)) >> 16) & 0xff); \
-   (a)[2] = (u8)u32)(val)) >> 8) & 0xff);  \
-   (a)[3] = (u8)(((u32)(val)) & 0xff); \
-   } while (0)
-
-#define WPA_PUT_BE64(a, val)   \
-   do {\
-   (a)[0] = (u8)(((u64)(val)) >> 56);  \
-   (a)[1] = (u8)(((u64)(val)) >> 48);  \
-   (a)[2] = (u8)(((u64)(val)) >> 40);  \
-   (a)[3] = (u8)(((u64)(val)) >> 32);  \
-   (a)[4] = (u8)(((u64)(val)) >> 24);  \
-   (a)[5] = (u8)(((u64)(val)) >> 16);  \
-   (a)[6] = (u8)(((u64)(val)) >> 8);   \
-   (a)[7] = (u8)(((u64)(val)) & 0xff); \
-   } while (0)
-
 /* = start - public domain SHA256 implementation = */
 
 /* This is based on SHA256 implementation in LibTomCrypt that was released into
-- 
2.10.2



[PATCH 7/7] staging:r8188eu: remove unused rx_head member of struct recv_frame

2017-01-12 Thread Ivan Safonov
Value of rx_head member of struct recv_frame does not used. Remove it.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 1 -
 drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c | 1 -
 2 files changed, 2 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index 74e3a1c..591dd9d 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -229,7 +229,6 @@ struct recv_frame {
struct adapter  *adapter;
struct rx_pkt_attrib attrib;
uint  len;
-   u8 *rx_head;
u8 *rx_data;
u8 *rx_tail;
u8 *rx_end;
diff --git a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c 
b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
index 5f6cbe0..9cae1a1 100644
--- a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
@@ -125,7 +125,6 @@ static int recvbuf2recvframe(struct adapter *adapt, struct 
sk_buff *pskb)
if (pkt_copy) {
pkt_copy->dev = adapt->pnetdev;
precvframe->pkt = pkt_copy;
-   precvframe->rx_head = pkt_copy->data;
precvframe->rx_end = pkt_copy->data + alloc_sz;
skb_reserve(pkt_copy, 8 - ((size_t)(pkt_copy->data) & 
7));/* force pkt_copy->data at 8-byte alignment address */
skb_reserve(pkt_copy, shift_sz);/* force ip_hdr at 
8-byte alignment address according to shift_sz. */
-- 
2.10.2



[PATCH 4/7] staging:r8188eu: remove unused get_rxmem()

2017-01-12 Thread Ivan Safonov
get_rxmem() is not unused, remove it.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 8 
 1 file changed, 8 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index e3ab511..74e3a1c 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -254,14 +254,6 @@ u32 rtw_free_uc_swdec_pending_queue(struct adapter 
*adapter);
 
 void rtw_reordering_ctrl_timeout_handler(unsigned long data);
 
-static inline u8 *get_rxmem(struct recv_frame *precvframe)
-{
-   /* always return rx_head... */
-   if (precvframe == NULL)
-   return NULL;
-   return precvframe->rx_head;
-}
-
 static inline u8 *recvframe_pull(struct recv_frame *precvframe, int sz)
 {
/*  rx_data += sz; move rx_data sz bytes  hereafter */
-- 
2.10.2



[PATCH 1/7] staging:r8188eu: remove unused (GET|PUT)U32 macros

2017-01-12 Thread Ivan Safonov
(GET|PUT)U32 macros are unused, remove it.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/rtw_security.h | 7 ---
 1 file changed, 7 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_security.h 
b/drivers/staging/rtl8188eu/include/rtw_security.h
index 2663e60..22f9c43 100644
--- a/drivers/staging/rtl8188eu/include/rtw_security.h
+++ b/drivers/staging/rtl8188eu/include/rtw_security.h
@@ -255,13 +255,6 @@ static inline u32 rotr(u32 val, int bits)
 #define TE2(i) rotr(Te0[((i) >> 8) & 0xff], 16)
 #define TE3(i) rotr(Te0[(i) & 0xff], 24)
 
-#define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ \
-   ((u32)(pt)[2] <<  8) ^ ((u32)(pt)[3]))
-
-#define PUTU32(ct, st) { \
-(ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); \
-(ct)[2] = (u8)((st) >>  8); (ct)[3] = (u8)(st); }
-
 #define WPA_GET_BE32(a) u32)(a)[0]) << 24) | (((u32)(a)[1]) << 16) | \
 (((u32)(a)[2]) << 8) | ((u32)(a)[3]))
 
-- 
2.10.2



[PATCH 7/7] staging:r8188eu: remove unused rx_head member of struct recv_frame

2017-01-12 Thread Ivan Safonov
Value of rx_head member of struct recv_frame does not used. Remove it.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 1 -
 drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c | 1 -
 2 files changed, 2 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index 74e3a1c..591dd9d 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -229,7 +229,6 @@ struct recv_frame {
struct adapter  *adapter;
struct rx_pkt_attrib attrib;
uint  len;
-   u8 *rx_head;
u8 *rx_data;
u8 *rx_tail;
u8 *rx_end;
diff --git a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c 
b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
index 5f6cbe0..9cae1a1 100644
--- a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
@@ -125,7 +125,6 @@ static int recvbuf2recvframe(struct adapter *adapt, struct 
sk_buff *pskb)
if (pkt_copy) {
pkt_copy->dev = adapt->pnetdev;
precvframe->pkt = pkt_copy;
-   precvframe->rx_head = pkt_copy->data;
precvframe->rx_end = pkt_copy->data + alloc_sz;
skb_reserve(pkt_copy, 8 - ((size_t)(pkt_copy->data) & 
7));/* force pkt_copy->data at 8-byte alignment address */
skb_reserve(pkt_copy, shift_sz);/* force ip_hdr at 
8-byte alignment address according to shift_sz. */
-- 
2.10.2



[PATCH 4/7] staging:r8188eu: remove unused get_rxmem()

2017-01-12 Thread Ivan Safonov
get_rxmem() is not unused, remove it.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 8 
 1 file changed, 8 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index e3ab511..74e3a1c 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -254,14 +254,6 @@ u32 rtw_free_uc_swdec_pending_queue(struct adapter 
*adapter);
 
 void rtw_reordering_ctrl_timeout_handler(unsigned long data);
 
-static inline u8 *get_rxmem(struct recv_frame *precvframe)
-{
-   /* always return rx_head... */
-   if (precvframe == NULL)
-   return NULL;
-   return precvframe->rx_head;
-}
-
 static inline u8 *recvframe_pull(struct recv_frame *precvframe, int sz)
 {
/*  rx_data += sz; move rx_data sz bytes  hereafter */
-- 
2.10.2



[PATCH 1/7] staging:r8188eu: remove unused (GET|PUT)U32 macros

2017-01-12 Thread Ivan Safonov
(GET|PUT)U32 macros are unused, remove it.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/rtw_security.h | 7 ---
 1 file changed, 7 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_security.h 
b/drivers/staging/rtl8188eu/include/rtw_security.h
index 2663e60..22f9c43 100644
--- a/drivers/staging/rtl8188eu/include/rtw_security.h
+++ b/drivers/staging/rtl8188eu/include/rtw_security.h
@@ -255,13 +255,6 @@ static inline u32 rotr(u32 val, int bits)
 #define TE2(i) rotr(Te0[((i) >> 8) & 0xff], 16)
 #define TE3(i) rotr(Te0[(i) & 0xff], 24)
 
-#define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ \
-   ((u32)(pt)[2] <<  8) ^ ((u32)(pt)[3]))
-
-#define PUTU32(ct, st) { \
-(ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); \
-(ct)[2] = (u8)((st) >>  8); (ct)[3] = (u8)(st); }
-
 #define WPA_GET_BE32(a) u32)(a)[0]) << 24) | (((u32)(a)[1]) << 16) | \
 (((u32)(a)[2]) << 8) | ((u32)(a)[3]))
 
-- 
2.10.2



[PATCH 6/7] staging:r8188eu: remove unnecessary trace output in rtw_recv_indicatepkt()

2017-01-12 Thread Ivan Safonov
Trace output for each received packet in rtw_recv_indicatepkt() is redudant.
Remove it.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/os_dep/recv_linux.c | 15 ---
 1 file changed, 15 deletions(-)

diff --git a/drivers/staging/rtl8188eu/os_dep/recv_linux.c 
b/drivers/staging/rtl8188eu/os_dep/recv_linux.c
index b85824e..df4bcef 100644
--- a/drivers/staging/rtl8188eu/os_dep/recv_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/recv_linux.c
@@ -88,27 +88,12 @@ int rtw_recv_indicatepkt(struct adapter *padapter,
goto _recv_indicatepkt_drop;
}
 
-   RT_TRACE(_module_recv_osdep_c_, _drv_info_,
-("rtw_recv_indicatepkt():skb != NULL !!!\n"));
-   RT_TRACE(_module_recv_osdep_c_, _drv_info_,
-("rtw_recv_indicatepkt():precv_frame->rx_head =%p  
precv_frame->hdr.rx_data =%p\n",
-precv_frame->rx_head, precv_frame->rx_data));
-   RT_TRACE(_module_recv_osdep_c_, _drv_info_,
-("precv_frame->hdr.rx_tail =%p precv_frame->rx_end =%p 
precv_frame->hdr.len =%d\n",
-precv_frame->rx_tail, precv_frame->rx_end,
-precv_frame->len));
-
skb->data = precv_frame->rx_data;
 
skb_set_tail_pointer(skb, precv_frame->len);
 
skb->len = precv_frame->len;
 
-   RT_TRACE(_module_recv_osdep_c_, _drv_info_,
-("skb->head =%p skb->data =%p skb->tail =%p skb->end =%p 
skb->len =%d\n",
-skb->head, skb->data, skb_tail_pointer(skb),
-skb_end_pointer(skb), skb->len));
-
if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) {
struct sk_buff *pskb2 = NULL;
struct sta_info *psta = NULL;
-- 
2.10.2



[PATCH 6/7] staging:r8188eu: remove unnecessary trace output in rtw_recv_indicatepkt()

2017-01-12 Thread Ivan Safonov
Trace output for each received packet in rtw_recv_indicatepkt() is redudant.
Remove it.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/os_dep/recv_linux.c | 15 ---
 1 file changed, 15 deletions(-)

diff --git a/drivers/staging/rtl8188eu/os_dep/recv_linux.c 
b/drivers/staging/rtl8188eu/os_dep/recv_linux.c
index b85824e..df4bcef 100644
--- a/drivers/staging/rtl8188eu/os_dep/recv_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/recv_linux.c
@@ -88,27 +88,12 @@ int rtw_recv_indicatepkt(struct adapter *padapter,
goto _recv_indicatepkt_drop;
}
 
-   RT_TRACE(_module_recv_osdep_c_, _drv_info_,
-("rtw_recv_indicatepkt():skb != NULL !!!\n"));
-   RT_TRACE(_module_recv_osdep_c_, _drv_info_,
-("rtw_recv_indicatepkt():precv_frame->rx_head =%p  
precv_frame->hdr.rx_data =%p\n",
-precv_frame->rx_head, precv_frame->rx_data));
-   RT_TRACE(_module_recv_osdep_c_, _drv_info_,
-("precv_frame->hdr.rx_tail =%p precv_frame->rx_end =%p 
precv_frame->hdr.len =%d\n",
-precv_frame->rx_tail, precv_frame->rx_end,
-precv_frame->len));
-
skb->data = precv_frame->rx_data;
 
skb_set_tail_pointer(skb, precv_frame->len);
 
skb->len = precv_frame->len;
 
-   RT_TRACE(_module_recv_osdep_c_, _drv_info_,
-("skb->head =%p skb->data =%p skb->tail =%p skb->end =%p 
skb->len =%d\n",
-skb->head, skb->data, skb_tail_pointer(skb),
-skb_end_pointer(skb), skb->len));
-
if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) {
struct sk_buff *pskb2 = NULL;
struct sta_info *psta = NULL;
-- 
2.10.2



[PATCH 5/7] staging:r8188eu: remove unused struct wifidirect_info and all corresponding code

2017-01-12 Thread Ivan Safonov
wifidirect_info structure is unused.
Big amount of another definitions used only for wifidirect_info definition.
Remove all.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/rtw_mlme.h | 177 ---
 drivers/staging/rtl8188eu/include/wifi.h |  84 -
 2 files changed, 261 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_mlme.h 
b/drivers/staging/rtl8188eu/include/rtw_mlme.h
index 6d03f94..7324a95 100644
--- a/drivers/staging/rtl8188eu/include/rtw_mlme.h
+++ b/drivers/staging/rtl8188eu/include/rtw_mlme.h
@@ -107,183 +107,6 @@ struct rt_link_detect {
   * to Tx traffic. */
 };
 
-struct profile_info {
-   u8  ssidlen;
-   u8  ssid[WLAN_SSID_MAXLEN];
-   u8  peermac[ETH_ALEN];
-};
-
-struct tx_invite_req_info {
-   u8  token;
-   u8  benable;
-   u8  go_ssid[WLAN_SSID_MAXLEN];
-   u8  ssidlen;
-   u8  go_bssid[ETH_ALEN];
-   u8  peer_macaddr[ETH_ALEN];
-   u8  operating_ch;   /* This information will be set by using the
-* p2p_set op_ch=x */
-   u8  peer_ch;/* The listen channel for peer P2P device */
-};
-
-struct tx_invite_resp_info {
-   u8  token;  /* Used to record the dialog token of p2p invitation
-* request frame. */
-};
-
-struct tx_provdisc_req_info {
-   u16 wps_config_method_request;  /* Used when sending the
-* provisioning request frame*/
-   u16 peer_channel_num[2];/* The channel number which the
-* receiver stands. */
-   struct ndis_802_11_ssid ssid;
-   u8  peerDevAddr[ETH_ALEN];  /* Peer device address */
-   u8  peerIFAddr[ETH_ALEN];   /* Peer interface address */
-   u8  benable;/* This provision discovery
-* request frame is trigger
-* to send or not */
-};
-
-/* When peer device issue prov_disc_req first, we should store the following
- * information */
-/* The UI must know this information to know which config method the
- * remote p2p device needs. */
-struct rx_provdisc_req_info {
-   u8  peerDevAddr[ETH_ALEN];  /* Peer device address */
-   u8  strconfig_method_desc_of_prov_disc_req[4];  /* description
-   * for the config method located in the provisioning
-   * discovery request frame. */
-};
-
-struct tx_nego_req_info {
-   u16 peer_channel_num[2];/* The channel number. */
-   u8  peerDevAddr[ETH_ALEN];  /* Peer device address */
-   u8  benable;/* This negotiation request frame is
-* trigger to send or not */
-};
-
-struct group_id_info {
-   u8  go_device_addr[ETH_ALEN];   /* The GO's device address of
-* this P2P group */
-   u8  ssid[WLAN_SSID_MAXLEN]; /* The SSID of this P2P group */
-};
-
-struct scan_limit_info {
-   u8  scan_op_ch_only;/* When this flag is set, the driver
-* should only scan the op. channel */
-   u8  operation_ch[2];/* Store the op. chan of invitation */
-};
-
-struct wifidirect_info {
-   struct adapter *padapter;
-   struct timer_list find_phase_timer;
-   struct timer_list restore_p2p_state_timer;
-
-   /* Used to do the scanning. After confirming the peer is availalble,
-* the driver transmits the P2P frame to peer. */
-   struct timer_list pre_tx_scan_timer;
-   struct timer_list reset_ch_sitesurvey;
-   struct timer_list reset_ch_sitesurvey2; /* Just for resetting the scan
-* limit function by using p2p nego */
-   struct tx_provdisc_req_info tx_prov_disc_info;
-   struct rx_provdisc_req_info rx_prov_disc_info;
-   struct tx_invite_req_info   invitereq_info;
-   /* Store the profile information of persistent group */
-   struct profile_info profileinfo[P2P_MAX_PERSISTENT_GROUP_NUM];
-   struct tx_invite_resp_info  inviteresp_info;
-   struct tx_nego_req_info nego_req_info;
-   /* Store the group id info when doing the group negot handshake. */
-   struct group_id_info groupid_info;
-   /* Used for get the limit scan channel from the Invitation procedure */
-   struct scan_limit_info rx_invitereq_info;
-   /* Used for get the limit scan chan from the P2P negotiation handshake*/
-   struct scan_limit_info p2p_info;
-   enum P2P_ROLE role;
-   enum P2P_STATE pre_p2p_state;
-   enum P2P_STATE p2p_state;
-   /* The device address 

[PATCH 5/7] staging:r8188eu: remove unused struct wifidirect_info and all corresponding code

2017-01-12 Thread Ivan Safonov
wifidirect_info structure is unused.
Big amount of another definitions used only for wifidirect_info definition.
Remove all.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/rtw_mlme.h | 177 ---
 drivers/staging/rtl8188eu/include/wifi.h |  84 -
 2 files changed, 261 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_mlme.h 
b/drivers/staging/rtl8188eu/include/rtw_mlme.h
index 6d03f94..7324a95 100644
--- a/drivers/staging/rtl8188eu/include/rtw_mlme.h
+++ b/drivers/staging/rtl8188eu/include/rtw_mlme.h
@@ -107,183 +107,6 @@ struct rt_link_detect {
   * to Tx traffic. */
 };
 
-struct profile_info {
-   u8  ssidlen;
-   u8  ssid[WLAN_SSID_MAXLEN];
-   u8  peermac[ETH_ALEN];
-};
-
-struct tx_invite_req_info {
-   u8  token;
-   u8  benable;
-   u8  go_ssid[WLAN_SSID_MAXLEN];
-   u8  ssidlen;
-   u8  go_bssid[ETH_ALEN];
-   u8  peer_macaddr[ETH_ALEN];
-   u8  operating_ch;   /* This information will be set by using the
-* p2p_set op_ch=x */
-   u8  peer_ch;/* The listen channel for peer P2P device */
-};
-
-struct tx_invite_resp_info {
-   u8  token;  /* Used to record the dialog token of p2p invitation
-* request frame. */
-};
-
-struct tx_provdisc_req_info {
-   u16 wps_config_method_request;  /* Used when sending the
-* provisioning request frame*/
-   u16 peer_channel_num[2];/* The channel number which the
-* receiver stands. */
-   struct ndis_802_11_ssid ssid;
-   u8  peerDevAddr[ETH_ALEN];  /* Peer device address */
-   u8  peerIFAddr[ETH_ALEN];   /* Peer interface address */
-   u8  benable;/* This provision discovery
-* request frame is trigger
-* to send or not */
-};
-
-/* When peer device issue prov_disc_req first, we should store the following
- * information */
-/* The UI must know this information to know which config method the
- * remote p2p device needs. */
-struct rx_provdisc_req_info {
-   u8  peerDevAddr[ETH_ALEN];  /* Peer device address */
-   u8  strconfig_method_desc_of_prov_disc_req[4];  /* description
-   * for the config method located in the provisioning
-   * discovery request frame. */
-};
-
-struct tx_nego_req_info {
-   u16 peer_channel_num[2];/* The channel number. */
-   u8  peerDevAddr[ETH_ALEN];  /* Peer device address */
-   u8  benable;/* This negotiation request frame is
-* trigger to send or not */
-};
-
-struct group_id_info {
-   u8  go_device_addr[ETH_ALEN];   /* The GO's device address of
-* this P2P group */
-   u8  ssid[WLAN_SSID_MAXLEN]; /* The SSID of this P2P group */
-};
-
-struct scan_limit_info {
-   u8  scan_op_ch_only;/* When this flag is set, the driver
-* should only scan the op. channel */
-   u8  operation_ch[2];/* Store the op. chan of invitation */
-};
-
-struct wifidirect_info {
-   struct adapter *padapter;
-   struct timer_list find_phase_timer;
-   struct timer_list restore_p2p_state_timer;
-
-   /* Used to do the scanning. After confirming the peer is availalble,
-* the driver transmits the P2P frame to peer. */
-   struct timer_list pre_tx_scan_timer;
-   struct timer_list reset_ch_sitesurvey;
-   struct timer_list reset_ch_sitesurvey2; /* Just for resetting the scan
-* limit function by using p2p nego */
-   struct tx_provdisc_req_info tx_prov_disc_info;
-   struct rx_provdisc_req_info rx_prov_disc_info;
-   struct tx_invite_req_info   invitereq_info;
-   /* Store the profile information of persistent group */
-   struct profile_info profileinfo[P2P_MAX_PERSISTENT_GROUP_NUM];
-   struct tx_invite_resp_info  inviteresp_info;
-   struct tx_nego_req_info nego_req_info;
-   /* Store the group id info when doing the group negot handshake. */
-   struct group_id_info groupid_info;
-   /* Used for get the limit scan channel from the Invitation procedure */
-   struct scan_limit_info rx_invitereq_info;
-   /* Used for get the limit scan chan from the P2P negotiation handshake*/
-   struct scan_limit_info p2p_info;
-   enum P2P_ROLE role;
-   enum P2P_STATE pre_p2p_state;
-   enum P2P_STATE p2p_state;
-   /* The device address should be the mac address

[PATCH 3/7] staging:r8188eu: remove unused EOR macro

2017-01-12 Thread Ivan Safonov
EOR macro is not unused, remove it.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index 2a92162..e3ab511 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -151,8 +151,6 @@ struct recv_stat {
__le32 rxdw5;
 };
 
-#define EOR BIT(30)
-
 /*
 accesser of recv_priv: rtw_recv_entry(dispatch / passive level);
 recv_thread(passive) ; returnpkt(dispatch)
-- 
2.10.2



[PATCH 3/7] staging:r8188eu: remove unused EOR macro

2017-01-12 Thread Ivan Safonov
EOR macro is not unused, remove it.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index 2a92162..e3ab511 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -151,8 +151,6 @@ struct recv_stat {
__le32 rxdw5;
 };
 
-#define EOR BIT(30)
-
 /*
 accesser of recv_priv: rtw_recv_entry(dispatch / passive level);
 recv_thread(passive) ; returnpkt(dispatch)
-- 
2.10.2



[PATCH 5/5] staging:r8188eu: remove unused WIFI_MP_*STATE and WIFI_MP_CTX* definitions

2017-01-04 Thread Ivan Safonov
fw_state member of struct mlme_priv never obtain WIFI_MP_STATE value,
so code only for (fw_state == WIFI_MP_STATE) is dead.
Remove it, WIFI_MP_*STATE and WIFI_MP_CTX* definitions.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_cmd.c   |  3 --
 drivers/staging/rtl8188eu/core/rtw_ioctl_set.c |  5 ---
 drivers/staging/rtl8188eu/core/rtw_recv.c  | 42 +-
 drivers/staging/rtl8188eu/core/rtw_xmit.c  |  2 +-
 drivers/staging/rtl8188eu/include/rtw_mlme.h   |  8 -
 drivers/staging/rtl8188eu/os_dep/ioctl_linux.c |  8 +
 6 files changed, 3 insertions(+), 65 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_cmd.c 
b/drivers/staging/rtl8188eu/core/rtw_cmd.c
index 36109ce..1497966 100644
--- a/drivers/staging/rtl8188eu/core/rtw_cmd.c
+++ b/drivers/staging/rtl8188eu/core/rtw_cmd.c
@@ -1321,9 +1321,6 @@ void rtw_setassocsta_cmdrsp_callback(struct adapter 
*padapter,  struct cmd_obj *
 
spin_lock_bh(>lock);
 
-   if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) && 
(check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == true))
-   _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
-
set_fwstate(pmlmepriv, _FW_LINKED);
spin_unlock_bh(>lock);
 
diff --git a/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c 
b/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
index 6ed23f4..67508a6 100644
--- a/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
@@ -573,11 +573,6 @@ u16 rtw_get_cur_max_rate(struct adapter *adapter)
u8  bw_40MHz = 0, short_GI_20 = 0, short_GI_40 = 0;
u32 ht_ielen = 0;
 
-   if (adapter->registrypriv.mp_mode == 1) {
-   if (check_fwstate(pmlmepriv, WIFI_MP_STATE))
-   return 0;
-   }
-
if ((!check_fwstate(pmlmepriv, _FW_LINKED)) &&
(!check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)))
return 0;
diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c 
b/drivers/staging/rtl8188eu/core/rtw_recv.c
index bb0844d..e51cbe1 100644
--- a/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -650,7 +650,6 @@ int sta2sta_data_frame(
 int sta2sta_data_frame(struct adapter *adapter, struct recv_frame *precv_frame,
   struct sta_info **psta)
 {
-   u8 *ptr = precv_frame->rx_data;
int ret = _SUCCESS;
struct rx_pkt_attrib *pattrib = _frame->attrib;
struct  sta_priv *pstapriv = >stapriv;
@@ -706,14 +705,6 @@ int sta2sta_data_frame(struct adapter *adapter, struct 
recv_frame *precv_frame,
 
sta_addr = pattrib->src;
}
-   } else if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) {
-   memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN);
-   memcpy(pattrib->src, GetAddr2Ptr(ptr), ETH_ALEN);
-   memcpy(pattrib->bssid, GetAddr3Ptr(ptr), ETH_ALEN);
-   memcpy(pattrib->ra, pattrib->dst, ETH_ALEN);
-   memcpy(pattrib->ta, pattrib->src, ETH_ALEN);
-
-   sta_addr = mybssid;
} else {
ret  = _FAIL;
}
@@ -802,23 +793,6 @@ static int ap2sta_data_frame(
ret = RTW_RX_HANDLED;
goto exit;
}
-   } else if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) &&
-  (check_fwstate(pmlmepriv, _FW_LINKED) == true)) {
-   memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN);
-   memcpy(pattrib->src, GetAddr2Ptr(ptr), ETH_ALEN);
-   memcpy(pattrib->bssid, GetAddr3Ptr(ptr), ETH_ALEN);
-   memcpy(pattrib->ra, pattrib->dst, ETH_ALEN);
-   memcpy(pattrib->ta, pattrib->src, ETH_ALEN);
-
-   /*  */
-   memcpy(pattrib->bssid,  mybssid, ETH_ALEN);
-
-   *psta = rtw_get_stainfo(pstapriv, pattrib->bssid); /*  get 
sta_info */
-   if (*psta == NULL) {
-   RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("can't 
get psta under MP_MODE ; drop pkt\n"));
-   ret = _FAIL;
-   goto exit;
-   }
} else if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) {
/* Special case */
ret = RTW_RX_HANDLED;
@@ -1309,8 +1283,6 @@ static int wlanhdr_to_ethhdr(struct recv_frame 
*precvframe)
u8  *psnap_type;
struct ieee80211_snap_hdr   *psnap;
 
-   struct adapter  *adapter = precvframe->adapter;
-   struct mlme_priv*pmlmepriv = >mlmepriv;
u8 *ptr = precvframe->rx_data;
struct rx_pkt_attrib *pattrib = >attrib;
 
@@ -1341,19 +1313,7 @@ static int wlanhdr_to_ethhdr(struct recv_frame 
*precvframe)
eth_type = ntohs(be_tm

[PATCH 3/5] staging:r8188eu: remove (NDEV|ADPT)_(FMT|ARG) definitions

2017-01-04 Thread Ivan Safonov
(NDEV|ADPT)_(FMT|ARG) definitions does not used. Remove it.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/osdep_service.h | 4 
 1 file changed, 4 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/osdep_service.h 
b/drivers/staging/rtl8188eu/include/osdep_service.h
index a3cdd1f..ee3f5ee 100644
--- a/drivers/staging/rtl8188eu/include/osdep_service.h
+++ b/drivers/staging/rtl8188eu/include/osdep_service.h
@@ -85,10 +85,6 @@ struct net_device *rtw_alloc_etherdev_with_old_priv(void 
*old_priv);
(((struct rtw_netdev_priv_indicator *)netdev_priv(netdev))->priv)
 void rtw_free_netdev(struct net_device *netdev);
 
-#define NDEV_FMT "%s"
-#define NDEV_ARG(ndev) ndev->name
-#define ADPT_FMT "%s"
-#define ADPT_ARG(adapter) adapter->pnetdev->name
 #define FUNC_NDEV_FMT "%s(%s)"
 #define FUNC_NDEV_ARG(ndev) __func__, ndev->name
 #define FUNC_ADPT_FMT "%s(%s)"
-- 
2.10.2



[PATCH 5/5] staging:r8188eu: remove unused WIFI_MP_*STATE and WIFI_MP_CTX* definitions

2017-01-04 Thread Ivan Safonov
fw_state member of struct mlme_priv never obtain WIFI_MP_STATE value,
so code only for (fw_state == WIFI_MP_STATE) is dead.
Remove it, WIFI_MP_*STATE and WIFI_MP_CTX* definitions.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_cmd.c   |  3 --
 drivers/staging/rtl8188eu/core/rtw_ioctl_set.c |  5 ---
 drivers/staging/rtl8188eu/core/rtw_recv.c  | 42 +-
 drivers/staging/rtl8188eu/core/rtw_xmit.c  |  2 +-
 drivers/staging/rtl8188eu/include/rtw_mlme.h   |  8 -
 drivers/staging/rtl8188eu/os_dep/ioctl_linux.c |  8 +
 6 files changed, 3 insertions(+), 65 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_cmd.c 
b/drivers/staging/rtl8188eu/core/rtw_cmd.c
index 36109ce..1497966 100644
--- a/drivers/staging/rtl8188eu/core/rtw_cmd.c
+++ b/drivers/staging/rtl8188eu/core/rtw_cmd.c
@@ -1321,9 +1321,6 @@ void rtw_setassocsta_cmdrsp_callback(struct adapter 
*padapter,  struct cmd_obj *
 
spin_lock_bh(>lock);
 
-   if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) && 
(check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == true))
-   _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
-
set_fwstate(pmlmepriv, _FW_LINKED);
spin_unlock_bh(>lock);
 
diff --git a/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c 
b/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
index 6ed23f4..67508a6 100644
--- a/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
@@ -573,11 +573,6 @@ u16 rtw_get_cur_max_rate(struct adapter *adapter)
u8  bw_40MHz = 0, short_GI_20 = 0, short_GI_40 = 0;
u32 ht_ielen = 0;
 
-   if (adapter->registrypriv.mp_mode == 1) {
-   if (check_fwstate(pmlmepriv, WIFI_MP_STATE))
-   return 0;
-   }
-
if ((!check_fwstate(pmlmepriv, _FW_LINKED)) &&
(!check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)))
return 0;
diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c 
b/drivers/staging/rtl8188eu/core/rtw_recv.c
index bb0844d..e51cbe1 100644
--- a/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -650,7 +650,6 @@ int sta2sta_data_frame(
 int sta2sta_data_frame(struct adapter *adapter, struct recv_frame *precv_frame,
   struct sta_info **psta)
 {
-   u8 *ptr = precv_frame->rx_data;
int ret = _SUCCESS;
struct rx_pkt_attrib *pattrib = _frame->attrib;
struct  sta_priv *pstapriv = >stapriv;
@@ -706,14 +705,6 @@ int sta2sta_data_frame(struct adapter *adapter, struct 
recv_frame *precv_frame,
 
sta_addr = pattrib->src;
}
-   } else if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) {
-   memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN);
-   memcpy(pattrib->src, GetAddr2Ptr(ptr), ETH_ALEN);
-   memcpy(pattrib->bssid, GetAddr3Ptr(ptr), ETH_ALEN);
-   memcpy(pattrib->ra, pattrib->dst, ETH_ALEN);
-   memcpy(pattrib->ta, pattrib->src, ETH_ALEN);
-
-   sta_addr = mybssid;
} else {
ret  = _FAIL;
}
@@ -802,23 +793,6 @@ static int ap2sta_data_frame(
ret = RTW_RX_HANDLED;
goto exit;
}
-   } else if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) &&
-  (check_fwstate(pmlmepriv, _FW_LINKED) == true)) {
-   memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN);
-   memcpy(pattrib->src, GetAddr2Ptr(ptr), ETH_ALEN);
-   memcpy(pattrib->bssid, GetAddr3Ptr(ptr), ETH_ALEN);
-   memcpy(pattrib->ra, pattrib->dst, ETH_ALEN);
-   memcpy(pattrib->ta, pattrib->src, ETH_ALEN);
-
-   /*  */
-   memcpy(pattrib->bssid,  mybssid, ETH_ALEN);
-
-   *psta = rtw_get_stainfo(pstapriv, pattrib->bssid); /*  get 
sta_info */
-   if (*psta == NULL) {
-   RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("can't 
get psta under MP_MODE ; drop pkt\n"));
-   ret = _FAIL;
-   goto exit;
-   }
} else if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) {
/* Special case */
ret = RTW_RX_HANDLED;
@@ -1309,8 +1283,6 @@ static int wlanhdr_to_ethhdr(struct recv_frame 
*precvframe)
u8  *psnap_type;
struct ieee80211_snap_hdr   *psnap;
 
-   struct adapter  *adapter = precvframe->adapter;
-   struct mlme_priv*pmlmepriv = >mlmepriv;
u8 *ptr = precvframe->rx_data;
struct rx_pkt_attrib *pattrib = >attrib;
 
@@ -1341,19 +1313,7 @@ static int wlanhdr_to_ethhdr(struct recv_frame 
*precvframe)
eth_type = ntohs(be_tmp); /* pattrib->ether_type *

[PATCH 3/5] staging:r8188eu: remove (NDEV|ADPT)_(FMT|ARG) definitions

2017-01-04 Thread Ivan Safonov
(NDEV|ADPT)_(FMT|ARG) definitions does not used. Remove it.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/osdep_service.h | 4 
 1 file changed, 4 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/osdep_service.h 
b/drivers/staging/rtl8188eu/include/osdep_service.h
index a3cdd1f..ee3f5ee 100644
--- a/drivers/staging/rtl8188eu/include/osdep_service.h
+++ b/drivers/staging/rtl8188eu/include/osdep_service.h
@@ -85,10 +85,6 @@ struct net_device *rtw_alloc_etherdev_with_old_priv(void 
*old_priv);
(((struct rtw_netdev_priv_indicator *)netdev_priv(netdev))->priv)
 void rtw_free_netdev(struct net_device *netdev);
 
-#define NDEV_FMT "%s"
-#define NDEV_ARG(ndev) ndev->name
-#define ADPT_FMT "%s"
-#define ADPT_ARG(adapter) adapter->pnetdev->name
 #define FUNC_NDEV_FMT "%s(%s)"
 #define FUNC_NDEV_ARG(ndev) __func__, ndev->name
 #define FUNC_ADPT_FMT "%s(%s)"
-- 
2.10.2



[PATCH 1/5] staging:r8188eu: remove RTW_STATUS_CODE()

2017-01-04 Thread Ivan Safonov
RTW_STATUS_CODE() does not used. Remove it.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/osdep_service.h |  2 --
 drivers/staging/rtl8188eu/os_dep/osdep_service.c  | 12 
 2 files changed, 14 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/osdep_service.h 
b/drivers/staging/rtl8188eu/include/osdep_service.h
index 9047b6d..b940baf 100644
--- a/drivers/staging/rtl8188eu/include/osdep_service.h
+++ b/drivers/staging/rtl8188eu/include/osdep_service.h
@@ -69,8 +69,6 @@ static inline int rtw_netif_queue_stopped(struct net_device 
*pnetdev)
netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 3));
 }
 
-int RTW_STATUS_CODE(int error_code);
-
 #define rtw_update_mem_stat(flag, sz) do {} while (0)
 u8 *_rtw_malloc(u32 sz);
 #define rtw_malloc(sz) _rtw_malloc((sz))
diff --git a/drivers/staging/rtl8188eu/os_dep/osdep_service.c 
b/drivers/staging/rtl8188eu/os_dep/osdep_service.c
index 51abfe9..3be8725 100644
--- a/drivers/staging/rtl8188eu/os_dep/osdep_service.c
+++ b/drivers/staging/rtl8188eu/os_dep/osdep_service.c
@@ -21,18 +21,6 @@
 #include 
 #include 
 
-/*
- * Translate the OS dependent @param error_code to OS independent
- * RTW_STATUS_CODE
- * @return: one of RTW_STATUS_CODE
- */
-inline int RTW_STATUS_CODE(int error_code)
-{
-   if (error_code >= 0)
-   return _SUCCESS;
-   return _FAIL;
-}
-
 u8 *_rtw_malloc(u32 sz)
 {
return kmalloc(sz, in_interrupt() ? GFP_ATOMIC : GFP_KERNEL);
-- 
2.10.2



[PATCH 2/5] staging:r8188eu: remove rtw_update_mem_stat definition

2017-01-04 Thread Ivan Safonov
rtw_update_mem_stat definition does not used. Remove it.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/osdep_service.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/rtl8188eu/include/osdep_service.h 
b/drivers/staging/rtl8188eu/include/osdep_service.h
index b940baf..a3cdd1f 100644
--- a/drivers/staging/rtl8188eu/include/osdep_service.h
+++ b/drivers/staging/rtl8188eu/include/osdep_service.h
@@ -69,7 +69,6 @@ static inline int rtw_netif_queue_stopped(struct net_device 
*pnetdev)
netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 3));
 }
 
-#define rtw_update_mem_stat(flag, sz) do {} while (0)
 u8 *_rtw_malloc(u32 sz);
 #define rtw_malloc(sz) _rtw_malloc((sz))
 
-- 
2.10.2



[PATCH 1/5] staging:r8188eu: remove RTW_STATUS_CODE()

2017-01-04 Thread Ivan Safonov
RTW_STATUS_CODE() does not used. Remove it.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/osdep_service.h |  2 --
 drivers/staging/rtl8188eu/os_dep/osdep_service.c  | 12 
 2 files changed, 14 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/osdep_service.h 
b/drivers/staging/rtl8188eu/include/osdep_service.h
index 9047b6d..b940baf 100644
--- a/drivers/staging/rtl8188eu/include/osdep_service.h
+++ b/drivers/staging/rtl8188eu/include/osdep_service.h
@@ -69,8 +69,6 @@ static inline int rtw_netif_queue_stopped(struct net_device 
*pnetdev)
netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 3));
 }
 
-int RTW_STATUS_CODE(int error_code);
-
 #define rtw_update_mem_stat(flag, sz) do {} while (0)
 u8 *_rtw_malloc(u32 sz);
 #define rtw_malloc(sz) _rtw_malloc((sz))
diff --git a/drivers/staging/rtl8188eu/os_dep/osdep_service.c 
b/drivers/staging/rtl8188eu/os_dep/osdep_service.c
index 51abfe9..3be8725 100644
--- a/drivers/staging/rtl8188eu/os_dep/osdep_service.c
+++ b/drivers/staging/rtl8188eu/os_dep/osdep_service.c
@@ -21,18 +21,6 @@
 #include 
 #include 
 
-/*
- * Translate the OS dependent @param error_code to OS independent
- * RTW_STATUS_CODE
- * @return: one of RTW_STATUS_CODE
- */
-inline int RTW_STATUS_CODE(int error_code)
-{
-   if (error_code >= 0)
-   return _SUCCESS;
-   return _FAIL;
-}
-
 u8 *_rtw_malloc(u32 sz)
 {
return kmalloc(sz, in_interrupt() ? GFP_ATOMIC : GFP_KERNEL);
-- 
2.10.2



[PATCH 2/5] staging:r8188eu: remove rtw_update_mem_stat definition

2017-01-04 Thread Ivan Safonov
rtw_update_mem_stat definition does not used. Remove it.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/osdep_service.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/rtl8188eu/include/osdep_service.h 
b/drivers/staging/rtl8188eu/include/osdep_service.h
index b940baf..a3cdd1f 100644
--- a/drivers/staging/rtl8188eu/include/osdep_service.h
+++ b/drivers/staging/rtl8188eu/include/osdep_service.h
@@ -69,7 +69,6 @@ static inline int rtw_netif_queue_stopped(struct net_device 
*pnetdev)
netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 3));
 }
 
-#define rtw_update_mem_stat(flag, sz) do {} while (0)
 u8 *_rtw_malloc(u32 sz);
 #define rtw_malloc(sz) _rtw_malloc((sz))
 
-- 
2.10.2



[PATCH 4/5] staging:r8188eu: eleminate recovery attemp using skb_clone after netdev_alloc_skb fail

2017-01-04 Thread Ivan Safonov
It is wrong to create new skb using skb_clone instead netdev_alloc_skb,
because buffer data will be changed later.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c | 19 +++
 1 file changed, 3 insertions(+), 16 deletions(-)

diff --git a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c 
b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
index e2dbe1b..5f6cbe0 100644
--- a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
@@ -133,22 +133,9 @@ static int recvbuf2recvframe(struct adapter *adapt, struct 
sk_buff *pskb)
precvframe->rx_tail = pkt_copy->data;
precvframe->rx_data = pkt_copy->data;
} else {
-   if ((pattrib->mfrag == 1) && (pattrib->frag_num == 0)) {
-   DBG_88E("recvbuf2recvframe: alloc_skb fail , 
drop frag frame\n");
-   rtw_free_recvframe(precvframe, 
pfree_recv_queue);
-   goto _exit_recvbuf2recvframe;
-   }
-   precvframe->pkt = skb_clone(pskb, GFP_ATOMIC);
-   if (precvframe->pkt) {
-   precvframe->rx_tail = pbuf + 
pattrib->drvinfo_sz + RXDESC_SIZE;
-   precvframe->rx_head = precvframe->rx_tail;
-   precvframe->rx_data = precvframe->rx_tail;
-   precvframe->rx_end =  pbuf + 
pattrib->drvinfo_sz + RXDESC_SIZE + alloc_sz;
-   } else {
-   DBG_88E("recvbuf2recvframe: skb_clone fail\n");
-   rtw_free_recvframe(precvframe, 
pfree_recv_queue);
-   goto _exit_recvbuf2recvframe;
-   }
+   DBG_88E("recvbuf2recvframe: alloc_skb fail , drop frag 
frame\n");
+   rtw_free_recvframe(precvframe, pfree_recv_queue);
+   goto _exit_recvbuf2recvframe;
}
 
recvframe_put(precvframe, skb_len);
-- 
2.10.2



[PATCH 4/5] staging:r8188eu: eleminate recovery attemp using skb_clone after netdev_alloc_skb fail

2017-01-04 Thread Ivan Safonov
It is wrong to create new skb using skb_clone instead netdev_alloc_skb,
because buffer data will be changed later.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c | 19 +++
 1 file changed, 3 insertions(+), 16 deletions(-)

diff --git a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c 
b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
index e2dbe1b..5f6cbe0 100644
--- a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
@@ -133,22 +133,9 @@ static int recvbuf2recvframe(struct adapter *adapt, struct 
sk_buff *pskb)
precvframe->rx_tail = pkt_copy->data;
precvframe->rx_data = pkt_copy->data;
} else {
-   if ((pattrib->mfrag == 1) && (pattrib->frag_num == 0)) {
-   DBG_88E("recvbuf2recvframe: alloc_skb fail , 
drop frag frame\n");
-   rtw_free_recvframe(precvframe, 
pfree_recv_queue);
-   goto _exit_recvbuf2recvframe;
-   }
-   precvframe->pkt = skb_clone(pskb, GFP_ATOMIC);
-   if (precvframe->pkt) {
-   precvframe->rx_tail = pbuf + 
pattrib->drvinfo_sz + RXDESC_SIZE;
-   precvframe->rx_head = precvframe->rx_tail;
-   precvframe->rx_data = precvframe->rx_tail;
-   precvframe->rx_end =  pbuf + 
pattrib->drvinfo_sz + RXDESC_SIZE + alloc_sz;
-   } else {
-   DBG_88E("recvbuf2recvframe: skb_clone fail\n");
-   rtw_free_recvframe(precvframe, 
pfree_recv_queue);
-   goto _exit_recvbuf2recvframe;
-   }
+   DBG_88E("recvbuf2recvframe: alloc_skb fail , drop frag 
frame\n");
+   rtw_free_recvframe(precvframe, pfree_recv_queue);
+   goto _exit_recvbuf2recvframe;
}
 
recvframe_put(precvframe, skb_len);
-- 
2.10.2



Re: [PATCH 01/37] staging:r8188eu: remove get_rxmem function

2016-10-20 Thread Ivan Safonov

On 10/20/2016 04:18 PM, Dan Carpenter wrote:

I don't know exactly what the game plan is for the rtl8188eu driver but
these patches seem to be on the right path to me.

regards,
dan carpenter



If this driver has no future and will be removed, then what code is 
better to invest my efforts?

Linux programming is only my hobby and point in CV.


Re: [PATCH 01/37] staging:r8188eu: remove get_rxmem function

2016-10-20 Thread Ivan Safonov

On 10/20/2016 04:18 PM, Dan Carpenter wrote:

I don't know exactly what the game plan is for the rtl8188eu driver but
these patches seem to be on the right path to me.

regards,
dan carpenter



If this driver has no future and will be removed, then what code is 
better to invest my efforts?

Linux programming is only my hobby and point in CV.


Re: [PATCH 17/37] staging:r8188eu: update pkt->data synchronously with rx_data

2016-10-20 Thread Ivan Safonov

On 10/20/2016 04:03 PM, Dan Carpenter wrote:

On Wed, Oct 19, 2016 at 10:07:45PM +0700, Ivan Safonov wrote:

To replace rx_data with pkt->data.
Now pkt->data is equal to rx_data.



I'm not smart enough to tell on my own...  Is this a bugfix?


It is not bugfix, only variable replacement.
recv_frame structure duplicates sk_buff. Most of the ieee80211_* 
functions require a pointer to sk_buff. Therefore, easier to use sk_buff 
instead of recv_frame structure.




regards,
dan carpenter



Re: [PATCH 17/37] staging:r8188eu: update pkt->data synchronously with rx_data

2016-10-20 Thread Ivan Safonov

On 10/20/2016 04:03 PM, Dan Carpenter wrote:

On Wed, Oct 19, 2016 at 10:07:45PM +0700, Ivan Safonov wrote:

To replace rx_data with pkt->data.
Now pkt->data is equal to rx_data.



I'm not smart enough to tell on my own...  Is this a bugfix?


It is not bugfix, only variable replacement.
recv_frame structure duplicates sk_buff. Most of the ieee80211_* 
functions require a pointer to sk_buff. Therefore, easier to use sk_buff 
instead of recv_frame structure.




regards,
dan carpenter



Re: [PATCH 02/37] staging:r8188eu: remove device assignment after netdev_alloc_skb call

2016-10-20 Thread Ivan Safonov

Andy,
thank you for reviewing patches and tips.

On 10/19/2016 11:59 PM, Andy Shevchenko wrote:

On Wed, 2016-10-19 at 19:53 +0300, Andy Shevchenko wrote:

On Wed, 2016-10-19 at 22:07 +0700, Ivan Safonov wrote:


netdev_alloc_skb function
already set dev member of pkt_copy.


It might be one line.

Some special references:
functions: function()
structs: struct my_struct

P.S. Entire series lacks of cover letter.


And couple more things:
 - Use min percentage when run git format-patch to avoid inclusion non-
maintainers / non-active developers
 - Adjust your commit messages to be a bit more verbose and put
explanation "why you create the patch" before "what is done in the
patch".






Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
index 34198fe..f19b203 100644
--- a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
@@ -123,7 +123,6 @@ static int recvbuf2recvframe(struct adapter
*adapt, struct sk_buff *pskb)

pkt_copy = netdev_alloc_skb(adapt->pnetdev,
alloc_sz);
if (pkt_copy) {
-   pkt_copy->dev = adapt->pnetdev;
precvframe->pkt = pkt_copy;
precvframe->rx_head = pkt_copy->data;
precvframe->rx_end = pkt_copy->data +
alloc_sz;






Re: [PATCH 02/37] staging:r8188eu: remove device assignment after netdev_alloc_skb call

2016-10-20 Thread Ivan Safonov

Andy,
thank you for reviewing patches and tips.

On 10/19/2016 11:59 PM, Andy Shevchenko wrote:

On Wed, 2016-10-19 at 19:53 +0300, Andy Shevchenko wrote:

On Wed, 2016-10-19 at 22:07 +0700, Ivan Safonov wrote:


netdev_alloc_skb function
already set dev member of pkt_copy.


It might be one line.

Some special references:
functions: function()
structs: struct my_struct

P.S. Entire series lacks of cover letter.


And couple more things:
 - Use min percentage when run git format-patch to avoid inclusion non-
maintainers / non-active developers
 - Adjust your commit messages to be a bit more verbose and put
explanation "why you create the patch" before "what is done in the
patch".






Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
index 34198fe..f19b203 100644
--- a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
@@ -123,7 +123,6 @@ static int recvbuf2recvframe(struct adapter
*adapt, struct sk_buff *pskb)

pkt_copy = netdev_alloc_skb(adapt->pnetdev,
alloc_sz);
if (pkt_copy) {
-   pkt_copy->dev = adapt->pnetdev;
precvframe->pkt = pkt_copy;
precvframe->rx_head = pkt_copy->data;
precvframe->rx_end = pkt_copy->data +
alloc_sz;






[PATCH 22/37] staging:r8188eu: change recvframe_pull_tail type to void

2016-10-19 Thread Ivan Safonov
Return value of this function does not used.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 7 +++
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index 0804e88..9a3a978 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -292,7 +292,7 @@ static inline u8 *recvframe_put(struct recv_frame 
*precvframe, uint sz)
return precvframe->rx_tail;
 }
 
-static inline u8 *recvframe_pull_tail(struct recv_frame *precvframe, uint sz)
+static inline void recvframe_pull_tail(struct recv_frame *precvframe, uint sz)
 {
/*  rmv data from rx_tail (by yitsen) */
 
@@ -301,14 +301,13 @@ static inline u8 *recvframe_pull_tail(struct recv_frame 
*precvframe, uint sz)
/* after pulling, rx_end must be still larger than rx_data. */
 
if (precvframe == NULL)
-   return NULL;
+   return;
precvframe->rx_tail -= sz;
if (precvframe->rx_tail < precvframe->pkt->data) {
precvframe->rx_tail += sz;
-   return NULL;
+   return;
}
precvframe->len -= sz;
-   return precvframe->rx_tail;
 }
 
 static inline s32 translate_percentage_to_dbm(u32 sig_stren_index)
-- 
2.7.3



[PATCH 09/37] staging:r8188eu: remove is2t argument of phy_lc_calibrate function

2016-10-19 Thread Ivan Safonov
is2t is constant.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/hal/phy.c | 21 +++--
 1 file changed, 3 insertions(+), 18 deletions(-)

diff --git a/drivers/staging/rtl8188eu/hal/phy.c 
b/drivers/staging/rtl8188eu/hal/phy.c
index 6b70d09..93dbb395 100644
--- a/drivers/staging/rtl8188eu/hal/phy.c
+++ b/drivers/staging/rtl8188eu/hal/phy.c
@@ -1014,10 +1014,10 @@ static void phy_iq_calibrate(struct adapter *adapt, s32 
result[][8], u8 t)
}
 }
 
-static void phy_lc_calibrate(struct adapter *adapt, bool is2t)
+static void phy_lc_calibrate(struct adapter *adapt)
 {
u8 tmpreg;
-   u32 rf_a_mode = 0, rf_b_mode = 0, lc_cal;
+   u32 rf_a_mode = 0, lc_cal;
 
/* Check continuous TX and Packet TX */
tmpreg = usb_read8(adapt, 0xd03);
@@ -1033,20 +1033,10 @@ static void phy_lc_calibrate(struct adapter *adapt, 
bool is2t)
rf_a_mode = rtw_hal_read_rfreg(adapt, RF_PATH_A, RF_AC,
 bMask12Bits);
 
-   /* Path-B */
-   if (is2t)
-   rf_b_mode = rtw_hal_read_rfreg(adapt, RF_PATH_B, RF_AC,
-bMask12Bits);
-
/* 2. Set RF mode = standby mode */
/* Path-A */
phy_set_rf_reg(adapt, RF_PATH_A, RF_AC, bMask12Bits,
   (rf_a_mode&0x8)|0x1);
-
-   /* Path-B */
-   if (is2t)
-   phy_set_rf_reg(adapt, RF_PATH_B, RF_AC, bMask12Bits,
-  (rf_b_mode&0x8)|0x1);
}
 
/* 3. Read RF reg18 */
@@ -1064,11 +1054,6 @@ static void phy_lc_calibrate(struct adapter *adapt, bool 
is2t)
/* Path-A */
usb_write8(adapt, 0xd03, tmpreg);
phy_set_rf_reg(adapt, RF_PATH_A, RF_AC, bMask12Bits, rf_a_mode);
-
-   /* Path-B */
-   if (is2t)
-   phy_set_rf_reg(adapt, RF_PATH_B, RF_AC, bMask12Bits,
-  rf_b_mode);
} else {
/* Deal with Packet TX case */
usb_write8(adapt, REG_TXPAUSE, 0x00);
@@ -1210,7 +1195,7 @@ void rtl88eu_phy_lc_calibrate(struct adapter *adapt)
 
dm_odm->RFCalibrateInfo.bLCKInProgress = true;
 
-   phy_lc_calibrate(adapt, false);
+   phy_lc_calibrate(adapt);
 
dm_odm->RFCalibrateInfo.bLCKInProgress = false;
 }
-- 
2.7.3



[PATCH 31/37] staging:r8188eu: remove pscanned member of mlme_priv structure

2016-10-19 Thread Ivan Safonov
This member used only as local variable.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_ioctl_set.c |  2 --
 drivers/staging/rtl8188eu/core/rtw_mlme.c  | 11 +--
 drivers/staging/rtl8188eu/include/rtw_mlme.h   |  1 -
 drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | 19 +++
 4 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c 
b/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
index 67508a6..9d4472a 100644
--- a/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
@@ -40,8 +40,6 @@ u8 rtw_do_join(struct adapter *padapter)
 
set_fwstate(pmlmepriv, _FW_UNDER_LINKING);
 
-   pmlmepriv->pscanned = plist;
-
pmlmepriv->to_join = true;
 
if (list_empty(>queue)) {
diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme.c 
b/drivers/staging/rtl8188eu/core/rtw_mlme.c
index 249e004..1322688 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme.c
@@ -42,8 +42,6 @@ int rtw_init_mlme_priv(struct adapter *padapter)
/*  We don't need to memset padapter->XXX to zero, because adapter is 
allocated by vzalloc(). */
 
pmlmepriv->nic_hdl = (u8 *)padapter;
-
-   pmlmepriv->pscanned = NULL;
pmlmepriv->fw_state = 0;
pmlmepriv->cur_network.network.InfrastructureMode = 
Ndis802_11AutoUnknown;
pmlmepriv->scan_mode = SCAN_ACTIVE;/*  1: active, 0: pasive. Maybe 
someday we should rename this varable to "active_mode" (Jeff) */
@@ -1504,19 +1502,20 @@ int rtw_select_and_join_from_scanned_queue(struct 
mlme_priv *pmlmepriv)
struct  wlan_network*pnetwork = NULL;
struct  wlan_network*candidate = NULL;
u8  supp_ant_div = false;
+   struct list_head *scanned;
 
spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
phead = get_list_head(queue);
adapter = (struct adapter *)pmlmepriv->nic_hdl;
-   pmlmepriv->pscanned = phead->next;
-   while (phead != pmlmepriv->pscanned) {
-   pnetwork = container_of(pmlmepriv->pscanned, struct 
wlan_network, list);
+   scanned = phead->next;
+   while (phead != scanned) {
+   pnetwork = container_of(scanned, struct wlan_network, list);
if (pnetwork == NULL) {
RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("%s 
return _FAIL:(pnetwork==NULL)\n", __func__));
ret = _FAIL;
goto exit;
}
-   pmlmepriv->pscanned = pmlmepriv->pscanned->next;
+   scanned = scanned->next;
rtw_check_join_candidate(pmlmepriv, , pnetwork);
}
if (candidate == NULL) {
diff --git a/drivers/staging/rtl8188eu/include/rtw_mlme.h 
b/drivers/staging/rtl8188eu/include/rtw_mlme.h
index a30448a..e1e46ce 100644
--- a/drivers/staging/rtl8188eu/include/rtw_mlme.h
+++ b/drivers/staging/rtl8188eu/include/rtw_mlme.h
@@ -293,7 +293,6 @@ struct mlme_priv {
 
u8 *nic_hdl;
 
-   struct list_head *pscanned;
struct __queue free_bss_pool;
struct __queue scanned_queue;
u8 *free_bss_buf;
diff --git a/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c 
b/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
index 6364a05..2a81796 100644
--- a/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
@@ -966,6 +966,7 @@ static int rtw_wx_set_wap(struct net_device *dev,
struct __queue *queue   = &(pmlmepriv->scanned_queue);
struct  wlan_network*pnetwork = NULL;
enum ndis_802_11_auth_mode  authmode;
+   struct list_head *scanned;
 
if (_FAIL == rtw_pwr_wakeup(padapter)) {
ret = -1;
@@ -985,12 +986,12 @@ static int rtw_wx_set_wap(struct net_device *dev,
authmode = padapter->securitypriv.ndisauthtype;
spin_lock_bh(>lock);
phead = get_list_head(queue);
-   pmlmepriv->pscanned = phead->next;
+   scanned = phead->next;
 
-   while (phead != pmlmepriv->pscanned) {
-   pnetwork = container_of(pmlmepriv->pscanned, struct 
wlan_network, list);
+   while (phead != scanned) {
+   pnetwork = container_of(scanned, struct wlan_network, list);
 
-   pmlmepriv->pscanned = pmlmepriv->pscanned->next;
+   scanned = scanned->next;
 
dst_bssid = pnetwork->network.MacAddress;
 
@@ -1313,6 +1314,8 @@ static int rtw_wx_set_essid(struct net_device *dev,
authmode = padapter->securitypriv.ndisauthtype;
DBG_88E("=>%s\n", __func__);
if (wrqu->essid.flags && wrqu->essid.length) {
+   struct list_head *scanned;
+
l

[PATCH 12/37] staging:r8188eu: remove ieee80211_get_hdrlen function

2016-10-19 Thread Ivan Safonov
This function does not used.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_ieee80211.c | 27 --
 drivers/staging/rtl8188eu/include/ieee80211.h  |  1 -
 2 files changed, 28 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c 
b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c
index 914c492..0c17004 100644
--- a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c
@@ -969,33 +969,6 @@ int ieee80211_is_empty_essid(const char *essid, int 
essid_len)
return 1;
 }
 
-int ieee80211_get_hdrlen(u16 fc)
-{
-   int hdrlen = 24;
-
-   switch (WLAN_FC_GET_TYPE(fc)) {
-   case RTW_IEEE80211_FTYPE_DATA:
-   if (fc & RTW_IEEE80211_STYPE_QOS_DATA)
-   hdrlen += 2;
-   if ((fc & RTW_IEEE80211_FCTL_FROMDS) && (fc & 
RTW_IEEE80211_FCTL_TODS))
-   hdrlen += 6; /* Addr4 */
-   break;
-   case RTW_IEEE80211_FTYPE_CTL:
-   switch (WLAN_FC_GET_STYPE(fc)) {
-   case RTW_IEEE80211_STYPE_CTS:
-   case RTW_IEEE80211_STYPE_ACK:
-   hdrlen = 10;
-   break;
-   default:
-   hdrlen = 16;
-   break;
-   }
-   break;
-   }
-
-   return hdrlen;
-}
-
 static int rtw_get_cipher_info(struct wlan_network *pnetwork)
 {
u32 wpa_ielen;
diff --git a/drivers/staging/rtl8188eu/include/ieee80211.h 
b/drivers/staging/rtl8188eu/include/ieee80211.h
index 4c2fe53..a4bbd2b 100644
--- a/drivers/staging/rtl8188eu/include/ieee80211.h
+++ b/drivers/staging/rtl8188eu/include/ieee80211.h
@@ -635,7 +635,6 @@ enum ieee80211_state {
 
 /* Baron move to ieee80211.c */
 int ieee80211_is_empty_essid(const char *essid, int essid_len);
-int ieee80211_get_hdrlen(u16 fc);
 
 /* Action category code */
 enum rtw_ieee80211_category {
-- 
2.7.3



[PATCH 15/37] staging:r8188eu: remove rx_head member of recv_frame structure

2016-10-19 Thread Ivan Safonov
Value of rx_head used only to produce debug output.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 1 -
 drivers/staging/rtl8188eu/os_dep/recv_linux.c| 4 ++--
 drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c | 1 -
 3 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index 4280fa1..6a34e15 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -233,7 +233,6 @@ struct recv_frame {
struct adapter  *adapter;
struct rx_pkt_attrib attrib;
uint  len;
-   u8 *rx_head;
u8 *rx_data;
u8 *rx_tail;
u8 *rx_end;
diff --git a/drivers/staging/rtl8188eu/os_dep/recv_linux.c 
b/drivers/staging/rtl8188eu/os_dep/recv_linux.c
index b85824e..f6af89e 100644
--- a/drivers/staging/rtl8188eu/os_dep/recv_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/recv_linux.c
@@ -91,8 +91,8 @@ int rtw_recv_indicatepkt(struct adapter *padapter,
RT_TRACE(_module_recv_osdep_c_, _drv_info_,
 ("rtw_recv_indicatepkt():skb != NULL !!!\n"));
RT_TRACE(_module_recv_osdep_c_, _drv_info_,
-("rtw_recv_indicatepkt():precv_frame->rx_head =%p  
precv_frame->hdr.rx_data =%p\n",
-precv_frame->rx_head, precv_frame->rx_data));
+("rtw_recv_indicatepkt(): precv_frame->hdr.rx_data =%p\n",
+ precv_frame->rx_data));
RT_TRACE(_module_recv_osdep_c_, _drv_info_,
 ("precv_frame->hdr.rx_tail =%p precv_frame->rx_end =%p 
precv_frame->hdr.len =%d\n",
 precv_frame->rx_tail, precv_frame->rx_end,
diff --git a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c 
b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
index 315b077..62dec1e 100644
--- a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
@@ -124,7 +124,6 @@ static int recvbuf2recvframe(struct adapter *adapt, struct 
sk_buff *pskb)
pkt_copy = netdev_alloc_skb(adapt->pnetdev, alloc_sz);
if (pkt_copy) {
precvframe->pkt = pkt_copy;
-   precvframe->rx_head = pkt_copy->data;
precvframe->rx_end = pkt_copy->data + alloc_sz;
skb_reserve(pkt_copy, 8 - ((size_t)(pkt_copy->data) & 
7));/* force pkt_copy->data at 8-byte alignment address */
skb_reserve(pkt_copy, shift_sz);/* force ip_hdr at 
8-byte alignment address according to shift_sz. */
-- 
2.7.3



[PATCH 12/37] staging:r8188eu: remove ieee80211_get_hdrlen function

2016-10-19 Thread Ivan Safonov
This function does not used.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_ieee80211.c | 27 --
 drivers/staging/rtl8188eu/include/ieee80211.h  |  1 -
 2 files changed, 28 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c 
b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c
index 914c492..0c17004 100644
--- a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c
@@ -969,33 +969,6 @@ int ieee80211_is_empty_essid(const char *essid, int 
essid_len)
return 1;
 }
 
-int ieee80211_get_hdrlen(u16 fc)
-{
-   int hdrlen = 24;
-
-   switch (WLAN_FC_GET_TYPE(fc)) {
-   case RTW_IEEE80211_FTYPE_DATA:
-   if (fc & RTW_IEEE80211_STYPE_QOS_DATA)
-   hdrlen += 2;
-   if ((fc & RTW_IEEE80211_FCTL_FROMDS) && (fc & 
RTW_IEEE80211_FCTL_TODS))
-   hdrlen += 6; /* Addr4 */
-   break;
-   case RTW_IEEE80211_FTYPE_CTL:
-   switch (WLAN_FC_GET_STYPE(fc)) {
-   case RTW_IEEE80211_STYPE_CTS:
-   case RTW_IEEE80211_STYPE_ACK:
-   hdrlen = 10;
-   break;
-   default:
-   hdrlen = 16;
-   break;
-   }
-   break;
-   }
-
-   return hdrlen;
-}
-
 static int rtw_get_cipher_info(struct wlan_network *pnetwork)
 {
u32 wpa_ielen;
diff --git a/drivers/staging/rtl8188eu/include/ieee80211.h 
b/drivers/staging/rtl8188eu/include/ieee80211.h
index 4c2fe53..a4bbd2b 100644
--- a/drivers/staging/rtl8188eu/include/ieee80211.h
+++ b/drivers/staging/rtl8188eu/include/ieee80211.h
@@ -635,7 +635,6 @@ enum ieee80211_state {
 
 /* Baron move to ieee80211.c */
 int ieee80211_is_empty_essid(const char *essid, int essid_len);
-int ieee80211_get_hdrlen(u16 fc);
 
 /* Action category code */
 enum rtw_ieee80211_category {
-- 
2.7.3



[PATCH 22/37] staging:r8188eu: change recvframe_pull_tail type to void

2016-10-19 Thread Ivan Safonov
Return value of this function does not used.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 7 +++
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index 0804e88..9a3a978 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -292,7 +292,7 @@ static inline u8 *recvframe_put(struct recv_frame 
*precvframe, uint sz)
return precvframe->rx_tail;
 }
 
-static inline u8 *recvframe_pull_tail(struct recv_frame *precvframe, uint sz)
+static inline void recvframe_pull_tail(struct recv_frame *precvframe, uint sz)
 {
/*  rmv data from rx_tail (by yitsen) */
 
@@ -301,14 +301,13 @@ static inline u8 *recvframe_pull_tail(struct recv_frame 
*precvframe, uint sz)
/* after pulling, rx_end must be still larger than rx_data. */
 
if (precvframe == NULL)
-   return NULL;
+   return;
precvframe->rx_tail -= sz;
if (precvframe->rx_tail < precvframe->pkt->data) {
precvframe->rx_tail += sz;
-   return NULL;
+   return;
}
precvframe->len -= sz;
-   return precvframe->rx_tail;
 }
 
 static inline s32 translate_percentage_to_dbm(u32 sig_stren_index)
-- 
2.7.3



[PATCH 09/37] staging:r8188eu: remove is2t argument of phy_lc_calibrate function

2016-10-19 Thread Ivan Safonov
is2t is constant.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/hal/phy.c | 21 +++--
 1 file changed, 3 insertions(+), 18 deletions(-)

diff --git a/drivers/staging/rtl8188eu/hal/phy.c 
b/drivers/staging/rtl8188eu/hal/phy.c
index 6b70d09..93dbb395 100644
--- a/drivers/staging/rtl8188eu/hal/phy.c
+++ b/drivers/staging/rtl8188eu/hal/phy.c
@@ -1014,10 +1014,10 @@ static void phy_iq_calibrate(struct adapter *adapt, s32 
result[][8], u8 t)
}
 }
 
-static void phy_lc_calibrate(struct adapter *adapt, bool is2t)
+static void phy_lc_calibrate(struct adapter *adapt)
 {
u8 tmpreg;
-   u32 rf_a_mode = 0, rf_b_mode = 0, lc_cal;
+   u32 rf_a_mode = 0, lc_cal;
 
/* Check continuous TX and Packet TX */
tmpreg = usb_read8(adapt, 0xd03);
@@ -1033,20 +1033,10 @@ static void phy_lc_calibrate(struct adapter *adapt, 
bool is2t)
rf_a_mode = rtw_hal_read_rfreg(adapt, RF_PATH_A, RF_AC,
 bMask12Bits);
 
-   /* Path-B */
-   if (is2t)
-   rf_b_mode = rtw_hal_read_rfreg(adapt, RF_PATH_B, RF_AC,
-bMask12Bits);
-
/* 2. Set RF mode = standby mode */
/* Path-A */
phy_set_rf_reg(adapt, RF_PATH_A, RF_AC, bMask12Bits,
   (rf_a_mode&0x8)|0x1);
-
-   /* Path-B */
-   if (is2t)
-   phy_set_rf_reg(adapt, RF_PATH_B, RF_AC, bMask12Bits,
-  (rf_b_mode&0x8)|0x1);
}
 
/* 3. Read RF reg18 */
@@ -1064,11 +1054,6 @@ static void phy_lc_calibrate(struct adapter *adapt, bool 
is2t)
/* Path-A */
usb_write8(adapt, 0xd03, tmpreg);
phy_set_rf_reg(adapt, RF_PATH_A, RF_AC, bMask12Bits, rf_a_mode);
-
-   /* Path-B */
-   if (is2t)
-   phy_set_rf_reg(adapt, RF_PATH_B, RF_AC, bMask12Bits,
-  rf_b_mode);
} else {
/* Deal with Packet TX case */
usb_write8(adapt, REG_TXPAUSE, 0x00);
@@ -1210,7 +1195,7 @@ void rtl88eu_phy_lc_calibrate(struct adapter *adapt)
 
dm_odm->RFCalibrateInfo.bLCKInProgress = true;
 
-   phy_lc_calibrate(adapt, false);
+   phy_lc_calibrate(adapt);
 
dm_odm->RFCalibrateInfo.bLCKInProgress = false;
 }
-- 
2.7.3



[PATCH 31/37] staging:r8188eu: remove pscanned member of mlme_priv structure

2016-10-19 Thread Ivan Safonov
This member used only as local variable.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_ioctl_set.c |  2 --
 drivers/staging/rtl8188eu/core/rtw_mlme.c  | 11 +--
 drivers/staging/rtl8188eu/include/rtw_mlme.h   |  1 -
 drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | 19 +++
 4 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c 
b/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
index 67508a6..9d4472a 100644
--- a/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
@@ -40,8 +40,6 @@ u8 rtw_do_join(struct adapter *padapter)
 
set_fwstate(pmlmepriv, _FW_UNDER_LINKING);
 
-   pmlmepriv->pscanned = plist;
-
pmlmepriv->to_join = true;
 
if (list_empty(>queue)) {
diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme.c 
b/drivers/staging/rtl8188eu/core/rtw_mlme.c
index 249e004..1322688 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme.c
@@ -42,8 +42,6 @@ int rtw_init_mlme_priv(struct adapter *padapter)
/*  We don't need to memset padapter->XXX to zero, because adapter is 
allocated by vzalloc(). */
 
pmlmepriv->nic_hdl = (u8 *)padapter;
-
-   pmlmepriv->pscanned = NULL;
pmlmepriv->fw_state = 0;
pmlmepriv->cur_network.network.InfrastructureMode = 
Ndis802_11AutoUnknown;
pmlmepriv->scan_mode = SCAN_ACTIVE;/*  1: active, 0: pasive. Maybe 
someday we should rename this varable to "active_mode" (Jeff) */
@@ -1504,19 +1502,20 @@ int rtw_select_and_join_from_scanned_queue(struct 
mlme_priv *pmlmepriv)
struct  wlan_network*pnetwork = NULL;
struct  wlan_network*candidate = NULL;
u8  supp_ant_div = false;
+   struct list_head *scanned;
 
spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
phead = get_list_head(queue);
adapter = (struct adapter *)pmlmepriv->nic_hdl;
-   pmlmepriv->pscanned = phead->next;
-   while (phead != pmlmepriv->pscanned) {
-   pnetwork = container_of(pmlmepriv->pscanned, struct 
wlan_network, list);
+   scanned = phead->next;
+   while (phead != scanned) {
+   pnetwork = container_of(scanned, struct wlan_network, list);
if (pnetwork == NULL) {
RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("%s 
return _FAIL:(pnetwork==NULL)\n", __func__));
ret = _FAIL;
goto exit;
}
-   pmlmepriv->pscanned = pmlmepriv->pscanned->next;
+   scanned = scanned->next;
rtw_check_join_candidate(pmlmepriv, , pnetwork);
}
if (candidate == NULL) {
diff --git a/drivers/staging/rtl8188eu/include/rtw_mlme.h 
b/drivers/staging/rtl8188eu/include/rtw_mlme.h
index a30448a..e1e46ce 100644
--- a/drivers/staging/rtl8188eu/include/rtw_mlme.h
+++ b/drivers/staging/rtl8188eu/include/rtw_mlme.h
@@ -293,7 +293,6 @@ struct mlme_priv {
 
u8 *nic_hdl;
 
-   struct list_head *pscanned;
struct __queue free_bss_pool;
struct __queue scanned_queue;
u8 *free_bss_buf;
diff --git a/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c 
b/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
index 6364a05..2a81796 100644
--- a/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
@@ -966,6 +966,7 @@ static int rtw_wx_set_wap(struct net_device *dev,
struct __queue *queue   = &(pmlmepriv->scanned_queue);
struct  wlan_network*pnetwork = NULL;
enum ndis_802_11_auth_mode  authmode;
+   struct list_head *scanned;
 
if (_FAIL == rtw_pwr_wakeup(padapter)) {
ret = -1;
@@ -985,12 +986,12 @@ static int rtw_wx_set_wap(struct net_device *dev,
authmode = padapter->securitypriv.ndisauthtype;
spin_lock_bh(>lock);
phead = get_list_head(queue);
-   pmlmepriv->pscanned = phead->next;
+   scanned = phead->next;
 
-   while (phead != pmlmepriv->pscanned) {
-   pnetwork = container_of(pmlmepriv->pscanned, struct 
wlan_network, list);
+   while (phead != scanned) {
+   pnetwork = container_of(scanned, struct wlan_network, list);
 
-   pmlmepriv->pscanned = pmlmepriv->pscanned->next;
+   scanned = scanned->next;
 
dst_bssid = pnetwork->network.MacAddress;
 
@@ -1313,6 +1314,8 @@ static int rtw_wx_set_essid(struct net_device *dev,
authmode = padapter->securitypriv.ndisauthtype;
DBG_88E("=>%s\n", __func__);
if (wrqu->essid.flags && wrqu->essid.length) {
+   struct list_head *scanned;
+
len = min_t(uint, wrqu-

[PATCH 15/37] staging:r8188eu: remove rx_head member of recv_frame structure

2016-10-19 Thread Ivan Safonov
Value of rx_head used only to produce debug output.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 1 -
 drivers/staging/rtl8188eu/os_dep/recv_linux.c| 4 ++--
 drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c | 1 -
 3 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index 4280fa1..6a34e15 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -233,7 +233,6 @@ struct recv_frame {
struct adapter  *adapter;
struct rx_pkt_attrib attrib;
uint  len;
-   u8 *rx_head;
u8 *rx_data;
u8 *rx_tail;
u8 *rx_end;
diff --git a/drivers/staging/rtl8188eu/os_dep/recv_linux.c 
b/drivers/staging/rtl8188eu/os_dep/recv_linux.c
index b85824e..f6af89e 100644
--- a/drivers/staging/rtl8188eu/os_dep/recv_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/recv_linux.c
@@ -91,8 +91,8 @@ int rtw_recv_indicatepkt(struct adapter *padapter,
RT_TRACE(_module_recv_osdep_c_, _drv_info_,
 ("rtw_recv_indicatepkt():skb != NULL !!!\n"));
RT_TRACE(_module_recv_osdep_c_, _drv_info_,
-("rtw_recv_indicatepkt():precv_frame->rx_head =%p  
precv_frame->hdr.rx_data =%p\n",
-precv_frame->rx_head, precv_frame->rx_data));
+("rtw_recv_indicatepkt(): precv_frame->hdr.rx_data =%p\n",
+ precv_frame->rx_data));
RT_TRACE(_module_recv_osdep_c_, _drv_info_,
 ("precv_frame->hdr.rx_tail =%p precv_frame->rx_end =%p 
precv_frame->hdr.len =%d\n",
 precv_frame->rx_tail, precv_frame->rx_end,
diff --git a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c 
b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
index 315b077..62dec1e 100644
--- a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
@@ -124,7 +124,6 @@ static int recvbuf2recvframe(struct adapter *adapt, struct 
sk_buff *pskb)
pkt_copy = netdev_alloc_skb(adapt->pnetdev, alloc_sz);
if (pkt_copy) {
precvframe->pkt = pkt_copy;
-   precvframe->rx_head = pkt_copy->data;
precvframe->rx_end = pkt_copy->data + alloc_sz;
skb_reserve(pkt_copy, 8 - ((size_t)(pkt_copy->data) & 
7));/* force pkt_copy->data at 8-byte alignment address */
skb_reserve(pkt_copy, shift_sz);/* force ip_hdr at 
8-byte alignment address according to shift_sz. */
-- 
2.7.3



[PATCH 35/37] staging:r8188eu: remove clr_fwstate* functions

2016-10-19 Thread Ivan Safonov
These functions are unused.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/rtw_mlme.h | 19 ---
 1 file changed, 19 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_mlme.h 
b/drivers/staging/rtl8188eu/include/rtw_mlme.h
index 47a3f2d..d27b2ad 100644
--- a/drivers/staging/rtl8188eu/include/rtw_mlme.h
+++ b/drivers/staging/rtl8188eu/include/rtw_mlme.h
@@ -456,25 +456,6 @@ static inline void _clr_fwstate_(struct mlme_priv 
*pmlmepriv, int state)
pmlmepriv->bScanInProcess = false;
 }
 
-/*
- * No Limit on the calling context,
- * therefore set it to be the critical section...
- */
-static inline void clr_fwstate(struct mlme_priv *pmlmepriv, int state)
-{
-   spin_lock_bh(>lock);
-   if (check_fwstate(pmlmepriv, state) == true)
-   pmlmepriv->fw_state ^= state;
-   spin_unlock_bh(>lock);
-}
-
-static inline void clr_fwstate_ex(struct mlme_priv *pmlmepriv, int state)
-{
-   spin_lock_bh(>lock);
-   _clr_fwstate_(pmlmepriv, state);
-   spin_unlock_bh(>lock);
-}
-
 u16 rtw_get_capability(struct wlan_bssid_ex *bss);
 void rtw_update_scanned_network(struct adapter *adapter,
struct wlan_bssid_ex *target);
-- 
2.7.3



[PATCH 35/37] staging:r8188eu: remove clr_fwstate* functions

2016-10-19 Thread Ivan Safonov
These functions are unused.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/rtw_mlme.h | 19 ---
 1 file changed, 19 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_mlme.h 
b/drivers/staging/rtl8188eu/include/rtw_mlme.h
index 47a3f2d..d27b2ad 100644
--- a/drivers/staging/rtl8188eu/include/rtw_mlme.h
+++ b/drivers/staging/rtl8188eu/include/rtw_mlme.h
@@ -456,25 +456,6 @@ static inline void _clr_fwstate_(struct mlme_priv 
*pmlmepriv, int state)
pmlmepriv->bScanInProcess = false;
 }
 
-/*
- * No Limit on the calling context,
- * therefore set it to be the critical section...
- */
-static inline void clr_fwstate(struct mlme_priv *pmlmepriv, int state)
-{
-   spin_lock_bh(>lock);
-   if (check_fwstate(pmlmepriv, state) == true)
-   pmlmepriv->fw_state ^= state;
-   spin_unlock_bh(>lock);
-}
-
-static inline void clr_fwstate_ex(struct mlme_priv *pmlmepriv, int state)
-{
-   spin_lock_bh(>lock);
-   _clr_fwstate_(pmlmepriv, state);
-   spin_unlock_bh(>lock);
-}
-
 u16 rtw_get_capability(struct wlan_bssid_ex *bss);
 void rtw_update_scanned_network(struct adapter *adapter,
struct wlan_bssid_ex *target);
-- 
2.7.3



[PATCH 28/37] staging:r8188eu: remove recvframe_pull_tail function

2016-10-19 Thread Ivan Safonov
skb_trim used instead.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_recv.c|  8 +---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 16 
 2 files changed, 5 insertions(+), 19 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c 
b/drivers/staging/rtl8188eu/core/rtw_recv.c
index 3f7812f..c07a3f5 100644
--- a/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -349,7 +349,7 @@ static int recvframe_chkmic(struct adapter *adapter,
RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, 
("recvframe_chkmic: rtw_get_stainfo==NULL!!!\n"));
}
 
-   recvframe_pull_tail(precvframe, 8);
+   skb_trim(precvframe->pkt, precvframe->pkt->len - 8);
}
 
 exit:
@@ -1277,7 +1277,8 @@ static int wlanhdr_to_ethhdr(struct recv_frame 
*precvframe)
struct rx_pkt_attrib *pattrib = >attrib;
 
if (pattrib->encrypt)
-   recvframe_pull_tail(precvframe, pattrib->icv_len);
+   skb_trim(precvframe->pkt,
+precvframe->pkt->len - pattrib->icv_len);
 
psnap = (struct ieee80211_snap_hdr *)(ptr+pattrib->hdrlen + 
pattrib->iv_len);
psnap_type = ptr+pattrib->hdrlen + pattrib->iv_len+SNAP_SIZE;
@@ -1375,7 +1376,8 @@ static struct recv_frame *recvframe_defrag(struct adapter 
*adapter,
skb_pull(pnextrframe->pkt, wlanhdr_offset);
 
/* append  to first fragment frame's tail (if privacy frame, 
pull the ICV) */
-   recvframe_pull_tail(prframe, pfhdr->attrib.icv_len);
+   skb_trim(prframe->pkt,
+prframe->pkt->len - pfhdr->attrib.icv_len);
 
/* memcpy */
memcpy(pfhdr->pkt->tail, pnfhdr->pkt->data, pnfhdr->pkt->len);
diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index 5357a8d..cacf35c 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -253,22 +253,6 @@ u32 rtw_free_uc_swdec_pending_queue(struct adapter 
*adapter);
 
 void rtw_reordering_ctrl_timeout_handler(unsigned long data);
 
-static inline void recvframe_pull_tail(struct recv_frame *precvframe, uint sz)
-{
-   /*  rmv data from rx_tail (by yitsen) */
-
-   /* used for extract sz bytes from rx_end, update rx_end and return
-* the updated rx_end to the caller */
-   /* after pulling, rx_end must be still larger than rx_data. */
-
-   if (precvframe == NULL)
-   return;
-
-   if (precvframe->pkt->len < sz)
-   return;
-   skb_trim(precvframe->pkt, precvframe->pkt->len - sz);
-}
-
 static inline s32 translate_percentage_to_dbm(u32 sig_stren_index)
 {
s32 power; /*  in dBm. */
-- 
2.7.3



[PATCH 28/37] staging:r8188eu: remove recvframe_pull_tail function

2016-10-19 Thread Ivan Safonov
skb_trim used instead.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_recv.c|  8 +---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 16 
 2 files changed, 5 insertions(+), 19 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c 
b/drivers/staging/rtl8188eu/core/rtw_recv.c
index 3f7812f..c07a3f5 100644
--- a/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -349,7 +349,7 @@ static int recvframe_chkmic(struct adapter *adapter,
RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, 
("recvframe_chkmic: rtw_get_stainfo==NULL!!!\n"));
}
 
-   recvframe_pull_tail(precvframe, 8);
+   skb_trim(precvframe->pkt, precvframe->pkt->len - 8);
}
 
 exit:
@@ -1277,7 +1277,8 @@ static int wlanhdr_to_ethhdr(struct recv_frame 
*precvframe)
struct rx_pkt_attrib *pattrib = >attrib;
 
if (pattrib->encrypt)
-   recvframe_pull_tail(precvframe, pattrib->icv_len);
+   skb_trim(precvframe->pkt,
+precvframe->pkt->len - pattrib->icv_len);
 
psnap = (struct ieee80211_snap_hdr *)(ptr+pattrib->hdrlen + 
pattrib->iv_len);
psnap_type = ptr+pattrib->hdrlen + pattrib->iv_len+SNAP_SIZE;
@@ -1375,7 +1376,8 @@ static struct recv_frame *recvframe_defrag(struct adapter 
*adapter,
skb_pull(pnextrframe->pkt, wlanhdr_offset);
 
/* append  to first fragment frame's tail (if privacy frame, 
pull the ICV) */
-   recvframe_pull_tail(prframe, pfhdr->attrib.icv_len);
+   skb_trim(prframe->pkt,
+prframe->pkt->len - pfhdr->attrib.icv_len);
 
/* memcpy */
memcpy(pfhdr->pkt->tail, pnfhdr->pkt->data, pnfhdr->pkt->len);
diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index 5357a8d..cacf35c 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -253,22 +253,6 @@ u32 rtw_free_uc_swdec_pending_queue(struct adapter 
*adapter);
 
 void rtw_reordering_ctrl_timeout_handler(unsigned long data);
 
-static inline void recvframe_pull_tail(struct recv_frame *precvframe, uint sz)
-{
-   /*  rmv data from rx_tail (by yitsen) */
-
-   /* used for extract sz bytes from rx_end, update rx_end and return
-* the updated rx_end to the caller */
-   /* after pulling, rx_end must be still larger than rx_data. */
-
-   if (precvframe == NULL)
-   return;
-
-   if (precvframe->pkt->len < sz)
-   return;
-   skb_trim(precvframe->pkt, precvframe->pkt->len - sz);
-}
-
 static inline s32 translate_percentage_to_dbm(u32 sig_stren_index)
 {
s32 power; /*  in dBm. */
-- 
2.7.3



[PATCH 23/37] staging:r8188eu: update rx_tail and pkt->tail synchronously

2016-10-19 Thread Ivan Safonov
To replace rx_tail with pkt->tail.
Now pkt->tail is equal to rx_tail and pkt->len is equal to len.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index 9a3a978..34d13f8 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -279,17 +279,17 @@ static inline u8 *recvframe_put(struct recv_frame 
*precvframe, uint sz)
 * and return the updated rx_tail to the caller */
/* after putting, rx_tail must be still larger than rx_end. */
 
+   u8 *tail;
+
if (precvframe == NULL)
return NULL;
 
-   precvframe->rx_tail += sz;
-
-   if (precvframe->rx_tail > precvframe->pkt->end) {
-   precvframe->rx_tail -= sz;
+   tail = skb_put(precvframe->pkt, sz);
+   if (!tail)
return NULL;
-   }
+   precvframe->rx_tail += sz;
precvframe->len += sz;
-   return precvframe->rx_tail;
+   return tail;
 }
 
 static inline void recvframe_pull_tail(struct recv_frame *precvframe, uint sz)
@@ -302,11 +302,11 @@ static inline void recvframe_pull_tail(struct recv_frame 
*precvframe, uint sz)
 
if (precvframe == NULL)
return;
-   precvframe->rx_tail -= sz;
-   if (precvframe->rx_tail < precvframe->pkt->data) {
-   precvframe->rx_tail += sz;
+
+   if (precvframe->len < sz)
return;
-   }
+   precvframe->rx_tail -= sz;
+   skb_trim(precvframe->pkt, precvframe->pkt->len - sz);
precvframe->len -= sz;
 }
 
-- 
2.7.3



[PATCH 23/37] staging:r8188eu: update rx_tail and pkt->tail synchronously

2016-10-19 Thread Ivan Safonov
To replace rx_tail with pkt->tail.
Now pkt->tail is equal to rx_tail and pkt->len is equal to len.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/include/rtw_recv.h | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index 9a3a978..34d13f8 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -279,17 +279,17 @@ static inline u8 *recvframe_put(struct recv_frame 
*precvframe, uint sz)
 * and return the updated rx_tail to the caller */
/* after putting, rx_tail must be still larger than rx_end. */
 
+   u8 *tail;
+
if (precvframe == NULL)
return NULL;
 
-   precvframe->rx_tail += sz;
-
-   if (precvframe->rx_tail > precvframe->pkt->end) {
-   precvframe->rx_tail -= sz;
+   tail = skb_put(precvframe->pkt, sz);
+   if (!tail)
return NULL;
-   }
+   precvframe->rx_tail += sz;
precvframe->len += sz;
-   return precvframe->rx_tail;
+   return tail;
 }
 
 static inline void recvframe_pull_tail(struct recv_frame *precvframe, uint sz)
@@ -302,11 +302,11 @@ static inline void recvframe_pull_tail(struct recv_frame 
*precvframe, uint sz)
 
if (precvframe == NULL)
return;
-   precvframe->rx_tail -= sz;
-   if (precvframe->rx_tail < precvframe->pkt->data) {
-   precvframe->rx_tail += sz;
+
+   if (precvframe->len < sz)
return;
-   }
+   precvframe->rx_tail -= sz;
+   skb_trim(precvframe->pkt, precvframe->pkt->len - sz);
precvframe->len -= sz;
 }
 
-- 
2.7.3



[PATCH 29/37] staging:r8188eu: take out stripping of iv and icv space from wlanhdr_to_ethhdr function

2016-10-19 Thread Ivan Safonov
Prepare to replacing wlanhdr_to_ethhdr by ieee80211_data_to_8023.
This stripping procedure placed into new strip_iv_icv function.
Also strip_iv_icv used inside unprotect_frame.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_recv.c| 27 +++
 drivers/staging/rtl8188eu/include/rtw_recv.h |  3 ++-
 drivers/staging/rtl8188eu/os_dep/mon.c   |  4 +---
 3 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c 
b/drivers/staging/rtl8188eu/core/rtw_recv.c
index c07a3f5..630d9eb 100644
--- a/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -1276,12 +1276,8 @@ static int wlanhdr_to_ethhdr(struct recv_frame 
*precvframe)
u8 *ptr = precvframe->pkt->data;
struct rx_pkt_attrib *pattrib = >attrib;
 
-   if (pattrib->encrypt)
-   skb_trim(precvframe->pkt,
-precvframe->pkt->len - pattrib->icv_len);
-
-   psnap = (struct ieee80211_snap_hdr *)(ptr+pattrib->hdrlen + 
pattrib->iv_len);
-   psnap_type = ptr+pattrib->hdrlen + pattrib->iv_len+SNAP_SIZE;
+   psnap = (struct ieee80211_snap_hdr *)(ptr+pattrib->hdrlen);
+   psnap_type = ptr+pattrib->hdrlen + SNAP_SIZE;
/* convert hdr + possible LLC headers into Ethernet header */
if ((!memcmp(psnap, rtw_rfc1042_header, SNAP_SIZE) &&
 (!memcmp(psnap_type, SNAP_ETH_TYPE_IPX, 2) == false) &&
@@ -1294,11 +1290,11 @@ static int wlanhdr_to_ethhdr(struct recv_frame 
*precvframe)
bsnaphdr = false;
}
 
-   rmv_len = pattrib->hdrlen + pattrib->iv_len + (bsnaphdr ? SNAP_SIZE : 
0);
+   rmv_len = pattrib->hdrlen + (bsnaphdr ? SNAP_SIZE : 0);
len = precvframe->pkt->len - rmv_len;
 
RT_TRACE(_module_rtl871x_recv_c_, _drv_info_,
-("\n===pattrib->hdrlen: %x,  pattrib->iv_len:%x===\n\n", 
pattrib->hdrlen,  pattrib->iv_len));
+("\n===pattrib->hdrlen: %x===\n\n", pattrib->hdrlen));
 
memcpy(_tmp, ptr+rmv_len, 2);
eth_type = ntohs(be_tmp); /* pattrib->ether_type */
@@ -1733,6 +1729,13 @@ static int recv_indicatepkts_in_order(struct adapter 
*padapter, struct recv_reor
return bPktInBuf;
 }
 
+void strip_iv_icv(struct sk_buff *skb, uint header_len,
+ uint iv_len, uint icv_len) {
+   memmove(skb->data + iv_len, skb->data, header_len);
+   skb_pull(skb, iv_len);
+   skb_trim(skb, skb->len - icv_len);
+}
+
 static int recv_indicatepkt_reorder(struct adapter *padapter,
struct recv_frame *prframe)
 {
@@ -1743,6 +1746,10 @@ static int recv_indicatepkt_reorder(struct adapter 
*padapter,
 
if (!pattrib->amsdu) {
/* s1. */
+   strip_iv_icv(prframe->pkt, prframe->attrib.hdrlen,
+prframe->attrib.iv_len,
+prframe->attrib.encrypt ? prframe->attrib.icv_len 
: 0);
+
wlanhdr_to_ethhdr(prframe);
 
if ((pattrib->qos != 1) || (pattrib->eth_type == 0x0806) ||
@@ -1861,6 +1868,10 @@ static int process_recv_indicatepkts(struct adapter 
*padapter,
}
}
} else { /* B/G mode */
+   strip_iv_icv(prframe->pkt, prframe->attrib.hdrlen,
+prframe->attrib.iv_len,
+prframe->attrib.encrypt ? prframe->attrib.icv_len 
: 0);
+
retval = wlanhdr_to_ethhdr(prframe);
if (retval != _SUCCESS) {
RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, 
("wlanhdr_to_ethhdr: drop pkt\n"));
diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index cacf35c..748c014e 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -270,5 +270,6 @@ struct sta_info;
 void _rtw_init_sta_recv_priv(struct sta_recv_priv *psta_recvpriv);
 
 void  mgt_dispatcher(struct adapter *padapter, struct recv_frame *precv_frame);
-
+void strip_iv_icv(struct sk_buff *skb, uint header_len,
+ uint iv_len, uint icv_len);
 #endif
diff --git a/drivers/staging/rtl8188eu/os_dep/mon.c 
b/drivers/staging/rtl8188eu/os_dep/mon.c
index 9b3f3ec..b1fd49d 100644
--- a/drivers/staging/rtl8188eu/os_dep/mon.c
+++ b/drivers/staging/rtl8188eu/os_dep/mon.c
@@ -40,9 +40,7 @@ static void unprotect_frame(struct sk_buff *skb, int iv_len, 
int icv_len)
 
hdr->frame_control &= ~cpu_to_le16(IEEE80211_FCTL_PROTECTED);
 
-   memmove(skb->data + iv_len, skb->data, hdr_len);
-   skb_pull(skb, iv_len);
-   skb_trim(skb, skb->len - icv_len);
+   strip_iv_icv(skb, hdr_len, iv_len, icv_len);
 }
 
 static void mon_recv_decrypted(struct net_device *dev, const u8 *data,
-- 
2.7.3



[PATCH 08/37] staging:r8188eu: refactor path_adda_on function

2016-10-19 Thread Ivan Safonov
Remove is_path_a_on and is2t arguments.
These argument always are constant.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/hal/phy.c | 14 --
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/rtl8188eu/hal/phy.c 
b/drivers/staging/rtl8188eu/hal/phy.c
index 6c6becf..6b70d09 100644
--- a/drivers/staging/rtl8188eu/hal/phy.c
+++ b/drivers/staging/rtl8188eu/hal/phy.c
@@ -774,19 +774,13 @@ static void reload_mac_registers(struct adapter *adapt,
usb_write32(adapt, mac_reg[i], backup[i]);
 }
 
-static void path_adda_on(struct adapter *adapt, u32 *adda_reg,
-bool is_path_a_on, bool is2t)
+static void path_adda_on(struct adapter *adapt, u32 *adda_reg)
 {
u32 path_on;
u32 i;
 
-   if (!is2t) {
-   path_on = 0x0bdb25a0;
-   phy_set_bb_reg(adapt, adda_reg[0], bMaskDWord, 0x0b1b25a0);
-   } else {
-   path_on = is_path_a_on ? 0x04db25a4 : 0x0b1b25a4;
-   phy_set_bb_reg(adapt, adda_reg[0], bMaskDWord, path_on);
-   }
+   path_on = 0x0bdb25a0;
+   phy_set_bb_reg(adapt, adda_reg[0], bMaskDWord, 0x0b1b25a0);
 
for (i = 1; i < IQK_ADDA_REG_NUM; i++)
phy_set_bb_reg(adapt, adda_reg[i], bMaskDWord, path_on);
@@ -924,7 +918,7 @@ static void phy_iq_calibrate(struct adapter *adapt, s32 
result[][8], u8 t)
dm_odm->RFCalibrateInfo.IQK_BB_backup, 
IQK_BB_REG_NUM);
}
 
-   path_adda_on(adapt, adda_reg, true, 0);
+   path_adda_on(adapt, adda_reg);
if (t == 0)
dm_odm->RFCalibrateInfo.bRfPiEnable = 
(u8)phy_query_bb_reg(adapt, rFPGA0_XA_HSSIParameter1,
   
BIT(8));
-- 
2.7.3



[PATCH 29/37] staging:r8188eu: take out stripping of iv and icv space from wlanhdr_to_ethhdr function

2016-10-19 Thread Ivan Safonov
Prepare to replacing wlanhdr_to_ethhdr by ieee80211_data_to_8023.
This stripping procedure placed into new strip_iv_icv function.
Also strip_iv_icv used inside unprotect_frame.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/core/rtw_recv.c| 27 +++
 drivers/staging/rtl8188eu/include/rtw_recv.h |  3 ++-
 drivers/staging/rtl8188eu/os_dep/mon.c   |  4 +---
 3 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c 
b/drivers/staging/rtl8188eu/core/rtw_recv.c
index c07a3f5..630d9eb 100644
--- a/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -1276,12 +1276,8 @@ static int wlanhdr_to_ethhdr(struct recv_frame 
*precvframe)
u8 *ptr = precvframe->pkt->data;
struct rx_pkt_attrib *pattrib = >attrib;
 
-   if (pattrib->encrypt)
-   skb_trim(precvframe->pkt,
-precvframe->pkt->len - pattrib->icv_len);
-
-   psnap = (struct ieee80211_snap_hdr *)(ptr+pattrib->hdrlen + 
pattrib->iv_len);
-   psnap_type = ptr+pattrib->hdrlen + pattrib->iv_len+SNAP_SIZE;
+   psnap = (struct ieee80211_snap_hdr *)(ptr+pattrib->hdrlen);
+   psnap_type = ptr+pattrib->hdrlen + SNAP_SIZE;
/* convert hdr + possible LLC headers into Ethernet header */
if ((!memcmp(psnap, rtw_rfc1042_header, SNAP_SIZE) &&
 (!memcmp(psnap_type, SNAP_ETH_TYPE_IPX, 2) == false) &&
@@ -1294,11 +1290,11 @@ static int wlanhdr_to_ethhdr(struct recv_frame 
*precvframe)
bsnaphdr = false;
}
 
-   rmv_len = pattrib->hdrlen + pattrib->iv_len + (bsnaphdr ? SNAP_SIZE : 
0);
+   rmv_len = pattrib->hdrlen + (bsnaphdr ? SNAP_SIZE : 0);
len = precvframe->pkt->len - rmv_len;
 
RT_TRACE(_module_rtl871x_recv_c_, _drv_info_,
-("\n===pattrib->hdrlen: %x,  pattrib->iv_len:%x===\n\n", 
pattrib->hdrlen,  pattrib->iv_len));
+("\n===pattrib->hdrlen: %x===\n\n", pattrib->hdrlen));
 
memcpy(_tmp, ptr+rmv_len, 2);
eth_type = ntohs(be_tmp); /* pattrib->ether_type */
@@ -1733,6 +1729,13 @@ static int recv_indicatepkts_in_order(struct adapter 
*padapter, struct recv_reor
return bPktInBuf;
 }
 
+void strip_iv_icv(struct sk_buff *skb, uint header_len,
+ uint iv_len, uint icv_len) {
+   memmove(skb->data + iv_len, skb->data, header_len);
+   skb_pull(skb, iv_len);
+   skb_trim(skb, skb->len - icv_len);
+}
+
 static int recv_indicatepkt_reorder(struct adapter *padapter,
struct recv_frame *prframe)
 {
@@ -1743,6 +1746,10 @@ static int recv_indicatepkt_reorder(struct adapter 
*padapter,
 
if (!pattrib->amsdu) {
/* s1. */
+   strip_iv_icv(prframe->pkt, prframe->attrib.hdrlen,
+prframe->attrib.iv_len,
+prframe->attrib.encrypt ? prframe->attrib.icv_len 
: 0);
+
wlanhdr_to_ethhdr(prframe);
 
if ((pattrib->qos != 1) || (pattrib->eth_type == 0x0806) ||
@@ -1861,6 +1868,10 @@ static int process_recv_indicatepkts(struct adapter 
*padapter,
}
}
} else { /* B/G mode */
+   strip_iv_icv(prframe->pkt, prframe->attrib.hdrlen,
+prframe->attrib.iv_len,
+prframe->attrib.encrypt ? prframe->attrib.icv_len 
: 0);
+
retval = wlanhdr_to_ethhdr(prframe);
if (retval != _SUCCESS) {
RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, 
("wlanhdr_to_ethhdr: drop pkt\n"));
diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index cacf35c..748c014e 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -270,5 +270,6 @@ struct sta_info;
 void _rtw_init_sta_recv_priv(struct sta_recv_priv *psta_recvpriv);
 
 void  mgt_dispatcher(struct adapter *padapter, struct recv_frame *precv_frame);
-
+void strip_iv_icv(struct sk_buff *skb, uint header_len,
+ uint iv_len, uint icv_len);
 #endif
diff --git a/drivers/staging/rtl8188eu/os_dep/mon.c 
b/drivers/staging/rtl8188eu/os_dep/mon.c
index 9b3f3ec..b1fd49d 100644
--- a/drivers/staging/rtl8188eu/os_dep/mon.c
+++ b/drivers/staging/rtl8188eu/os_dep/mon.c
@@ -40,9 +40,7 @@ static void unprotect_frame(struct sk_buff *skb, int iv_len, 
int icv_len)
 
hdr->frame_control &= ~cpu_to_le16(IEEE80211_FCTL_PROTECTED);
 
-   memmove(skb->data + iv_len, skb->data, hdr_len);
-   skb_pull(skb, iv_len);
-   skb_trim(skb, skb->len - icv_len);
+   strip_iv_icv(skb, hdr_len, iv_len, icv_len);
 }
 
 static void mon_recv_decrypted(struct net_device *dev, const u8 *data,
-- 
2.7.3



[PATCH 08/37] staging:r8188eu: refactor path_adda_on function

2016-10-19 Thread Ivan Safonov
Remove is_path_a_on and is2t arguments.
These argument always are constant.

Signed-off-by: Ivan Safonov 
---
 drivers/staging/rtl8188eu/hal/phy.c | 14 --
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/rtl8188eu/hal/phy.c 
b/drivers/staging/rtl8188eu/hal/phy.c
index 6c6becf..6b70d09 100644
--- a/drivers/staging/rtl8188eu/hal/phy.c
+++ b/drivers/staging/rtl8188eu/hal/phy.c
@@ -774,19 +774,13 @@ static void reload_mac_registers(struct adapter *adapt,
usb_write32(adapt, mac_reg[i], backup[i]);
 }
 
-static void path_adda_on(struct adapter *adapt, u32 *adda_reg,
-bool is_path_a_on, bool is2t)
+static void path_adda_on(struct adapter *adapt, u32 *adda_reg)
 {
u32 path_on;
u32 i;
 
-   if (!is2t) {
-   path_on = 0x0bdb25a0;
-   phy_set_bb_reg(adapt, adda_reg[0], bMaskDWord, 0x0b1b25a0);
-   } else {
-   path_on = is_path_a_on ? 0x04db25a4 : 0x0b1b25a4;
-   phy_set_bb_reg(adapt, adda_reg[0], bMaskDWord, path_on);
-   }
+   path_on = 0x0bdb25a0;
+   phy_set_bb_reg(adapt, adda_reg[0], bMaskDWord, 0x0b1b25a0);
 
for (i = 1; i < IQK_ADDA_REG_NUM; i++)
phy_set_bb_reg(adapt, adda_reg[i], bMaskDWord, path_on);
@@ -924,7 +918,7 @@ static void phy_iq_calibrate(struct adapter *adapt, s32 
result[][8], u8 t)
dm_odm->RFCalibrateInfo.IQK_BB_backup, 
IQK_BB_REG_NUM);
}
 
-   path_adda_on(adapt, adda_reg, true, 0);
+   path_adda_on(adapt, adda_reg);
if (t == 0)
dm_odm->RFCalibrateInfo.bRfPiEnable = 
(u8)phy_query_bb_reg(adapt, rFPGA0_XA_HSSIParameter1,
   
BIT(8));
-- 
2.7.3



[PATCH 10/37] staging:r8188eu: remove type cast for first argument of memset

2016-10-19 Thread Ivan Safonov
Typecasting here is unnecessary.

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_ap.c|  2 +-
 drivers/staging/rtl8188eu/core/rtw_efuse.c |  2 +-
 drivers/staging/rtl8188eu/core/rtw_mlme.c  | 10 +-
 drivers/staging/rtl8188eu/core/rtw_mlme_ext.c  |  4 ++--
 drivers/staging/rtl8188eu/core/rtw_recv.c  |  2 +-
 drivers/staging/rtl8188eu/core/rtw_sta_mgt.c   |  2 +-
 drivers/staging/rtl8188eu/core/rtw_wlan_util.c |  2 +-
 drivers/staging/rtl8188eu/core/rtw_xmit.c  |  2 +-
 drivers/staging/rtl8188eu/os_dep/mlme_linux.c  |  2 +-
 9 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_ap.c 
b/drivers/staging/rtl8188eu/core/rtw_ap.c
index 553e8d5..fe1ba9e 100644
--- a/drivers/staging/rtl8188eu/core/rtw_ap.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ap.c
@@ -1852,7 +1852,7 @@ void stop_ap_mode(struct adapter *padapter)
pmlmeext->bstart_bss = false;
 
/* reset and init security priv , this can refine with 
rtw_reset_securitypriv */
-   memset((unsigned char *)>securitypriv, 0, sizeof(struct 
security_priv));
+   memset(>securitypriv, 0, sizeof(struct security_priv));
padapter->securitypriv.ndisauthtype = Ndis802_11AuthModeOpen;
padapter->securitypriv.ndisencryptstatus = Ndis802_11WEPDisabled;
 
diff --git a/drivers/staging/rtl8188eu/core/rtw_efuse.c 
b/drivers/staging/rtl8188eu/core/rtw_efuse.c
index 16cc770..6953f7f 100644
--- a/drivers/staging/rtl8188eu/core/rtw_efuse.c
+++ b/drivers/staging/rtl8188eu/core/rtw_efuse.c
@@ -786,7 +786,7 @@ hal_EfusePgCheckAvailableAddr(
 
 static void hal_EfuseConstructPGPkt(u8 offset, u8 word_en, u8 *pData, struct 
pgpkt *pTargetPkt)
 {
-   memset((void *)pTargetPkt->data, 0xFF, sizeof(u8)*8);
+   memset(pTargetPkt->data, 0xFF, sizeof(u8)*8);
pTargetPkt->offset = offset;
pTargetPkt->word_en = word_en;
efuse_WordEnableDataRead(word_en, pData, pTargetPkt->data);
diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme.c 
b/drivers/staging/rtl8188eu/core/rtw_mlme.c
index 032f783..249e004 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme.c
@@ -892,11 +892,11 @@ static struct sta_info *rtw_joinbss_update_stainfo(struct 
adapter *padapter, str
padapter->securitypriv.bgrpkey_handshake = false;
psta->ieee8021x_blocked = true;
psta->dot118021XPrivacy = 
padapter->securitypriv.dot11PrivacyAlgrthm;
-   memset((u8 *)>dot118021x_UncstKey, 0, 
sizeof(union Keytype));
-   memset((u8 *)>dot11tkiprxmickey, 0, sizeof(union 
Keytype));
-   memset((u8 *)>dot11tkiptxmickey, 0, sizeof(union 
Keytype));
-   memset((u8 *)>dot11txpn, 0, sizeof(union pn48));
-   memset((u8 *)>dot11rxpn, 0, sizeof(union pn48));
+   memset(>dot118021x_UncstKey, 0, sizeof(union 
Keytype));
+   memset(>dot11tkiprxmickey, 0, sizeof(union 
Keytype));
+   memset(>dot11tkiptxmickey, 0, sizeof(union 
Keytype));
+   memset(>dot11txpn, 0, sizeof(union pn48));
+   memset(>dot11rxpn, 0, sizeof(union pn48));
}
/*
 * Commented by Albert 2012/07/21
diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c 
b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
index c94700c..0bb24fa 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
@@ -199,7 +199,7 @@ void update_mgntframe_attrib(struct adapter *padapter, 
struct pkt_attrib *pattri
 {
struct mlme_ext_priv*pmlmeext = &(padapter->mlmeextpriv);
 
-   memset((u8 *)(pattrib), 0, sizeof(struct pkt_attrib));
+   memset(pattrib, 0, sizeof(struct pkt_attrib));
 
pattrib->hdrlen = 24;
pattrib->nr_frags = 1;
@@ -2847,7 +2847,7 @@ static unsigned int OnAuth(struct adapter *padapter,
rtw_free_stainfo(padapter, pstat);
 
pstat = 
-   memset((char *)pstat, '\0', sizeof(stat));
+   memset(pstat, '\0', sizeof(stat));
pstat->auth_seq = 2;
memcpy(pstat->hwaddr, sa, 6);
 
diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c 
b/drivers/staging/rtl8188eu/core/rtw_recv.c
index dd71894..74220f3 100644
--- a/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -44,7 +44,7 @@ static void rtw_signal_stat_timer_hdl(unsigned long data);
 void _rtw_init_sta_recv_priv(struct sta_recv_priv *psta_recvpriv)
 {
 
-   memset((u8 *)psta_recvpriv, 0, sizeof(struct sta_recv_priv));
+   memset(psta_recvpriv, 0, sizeof(struct sta_recv_priv));
 
spin_lock_init(_recvpriv->lock);
 
diff --git 

<    1   2   3   4   5   6   7   8   >