| From a9b89e2567c743483e6354f64d7a7e3a8c101e9e Mon Sep 17 00:00:00 2001 |
| From: Jingjun Wu <jingjun_wu@realsil.com.cn> |
| Date: Fri, 2 Mar 2012 20:52:14 -0600 |
| Subject: rtlwifi: rtl8192ce: Fix loss of receive performance |
| |
| From: Jingjun Wu <jingjun_wu@realsil.com.cn> |
| |
| commit a9b89e2567c743483e6354f64d7a7e3a8c101e9e upstream. |
| |
| Driver rtl8192ce when used with the RTL8188CE device would start at about |
| 20 Mbps on a 54 Mbps connection, but quickly drop to 1 Mbps. One of the |
| symptoms is that the AP would need to retransmit each packet 4 of 5 times |
| before the driver would acknowledge it. Recovery is possible only by |
| unloading and reloading the driver. This problem was reported at |
| https://bugzilla.redhat.com/show_bug.cgi?id=770207. |
| |
| The problem is due to a missing update of the gain setting. |
| |
| Signed-off-by: Jingjun Wu <jingjun_wu@realsil.com.cn> |
| Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> |
| Signed-off-by: John W. Linville <linville@tuxdriver.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c |
| +++ b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c |
| @@ -524,6 +524,10 @@ void rtl92c_dm_write_dig(struct ieee8021 |
| dm_digtable.cur_igvalue, dm_digtable.pre_igvalue, |
| dm_digtable.backoff_val)); |
| |
| + dm_digtable.cur_igvalue += 2; |
| + if (dm_digtable.cur_igvalue > 0x3f) |
| + dm_digtable.cur_igvalue = 0x3f; |
| + |
| if (dm_digtable.pre_igvalue != dm_digtable.cur_igvalue) { |
| rtl_set_bbreg(hw, ROFDM0_XAAGCCORE1, 0x7f, |
| dm_digtable.cur_igvalue); |