aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2800lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2800lib.c')
-rw-r--r--drivers/net/wireless/rt2x00/rt2800lib.c40
1 files changed, 22 insertions, 18 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index 776aff3678ff..41d4a8167dc3 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -24,9 +24,7 @@
24 GNU General Public License for more details. 24 GNU General Public License for more details.
25 25
26 You should have received a copy of the GNU General Public License 26 You should have received a copy of the GNU General Public License
27 along with this program; if not, write to the 27 along with this program; if not, see <http://www.gnu.org/licenses/>.
28 Free Software Foundation, Inc.,
29 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
30 */ 28 */
31 29
32/* 30/*
@@ -6453,7 +6451,7 @@ static void rt2800_init_rfcsr_5390(struct rt2x00_dev *rt2x00dev)
6453 rt2800_rfcsr_write(rt2x00dev, 7, 0x00); 6451 rt2800_rfcsr_write(rt2x00dev, 7, 0x00);
6454 rt2800_rfcsr_write(rt2x00dev, 10, 0x53); 6452 rt2800_rfcsr_write(rt2x00dev, 10, 0x53);
6455 rt2800_rfcsr_write(rt2x00dev, 11, 0x4a); 6453 rt2800_rfcsr_write(rt2x00dev, 11, 0x4a);
6456 rt2800_rfcsr_write(rt2x00dev, 12, 0xc6); 6454 rt2800_rfcsr_write(rt2x00dev, 12, 0x46);
6457 rt2800_rfcsr_write(rt2x00dev, 13, 0x9f); 6455 rt2800_rfcsr_write(rt2x00dev, 13, 0x9f);
6458 rt2800_rfcsr_write(rt2x00dev, 14, 0x00); 6456 rt2800_rfcsr_write(rt2x00dev, 14, 0x00);
6459 rt2800_rfcsr_write(rt2x00dev, 15, 0x00); 6457 rt2800_rfcsr_write(rt2x00dev, 15, 0x00);
@@ -6466,7 +6464,8 @@ static void rt2800_init_rfcsr_5390(struct rt2x00_dev *rt2x00dev)
6466 rt2800_rfcsr_write(rt2x00dev, 22, 0x20); 6464 rt2800_rfcsr_write(rt2x00dev, 22, 0x20);
6467 rt2800_rfcsr_write(rt2x00dev, 23, 0x00); 6465 rt2800_rfcsr_write(rt2x00dev, 23, 0x00);
6468 rt2800_rfcsr_write(rt2x00dev, 24, 0x00); 6466 rt2800_rfcsr_write(rt2x00dev, 24, 0x00);
6469 if (rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5390F)) 6467 if (rt2x00_is_usb(rt2x00dev) &&
6468 rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5390F))
6470 rt2800_rfcsr_write(rt2x00dev, 25, 0x80); 6469 rt2800_rfcsr_write(rt2x00dev, 25, 0x80);
6471 else 6470 else
6472 rt2800_rfcsr_write(rt2x00dev, 25, 0xc0); 6471 rt2800_rfcsr_write(rt2x00dev, 25, 0xc0);
@@ -6486,10 +6485,7 @@ static void rt2800_init_rfcsr_5390(struct rt2x00_dev *rt2x00dev)
6486 rt2800_rfcsr_write(rt2x00dev, 38, 0x85); 6485 rt2800_rfcsr_write(rt2x00dev, 38, 0x85);
6487 rt2800_rfcsr_write(rt2x00dev, 39, 0x1b); 6486 rt2800_rfcsr_write(rt2x00dev, 39, 0x1b);
6488 6487
6489 if (rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5390F)) 6488 rt2800_rfcsr_write(rt2x00dev, 40, 0x0b);
6490 rt2800_rfcsr_write(rt2x00dev, 40, 0x0b);
6491 else
6492 rt2800_rfcsr_write(rt2x00dev, 40, 0x4b);
6493 rt2800_rfcsr_write(rt2x00dev, 41, 0xbb); 6489 rt2800_rfcsr_write(rt2x00dev, 41, 0xbb);
6494 rt2800_rfcsr_write(rt2x00dev, 42, 0xd2); 6490 rt2800_rfcsr_write(rt2x00dev, 42, 0xd2);
6495 rt2800_rfcsr_write(rt2x00dev, 43, 0x9a); 6491 rt2800_rfcsr_write(rt2x00dev, 43, 0x9a);
@@ -6510,16 +6506,26 @@ static void rt2800_init_rfcsr_5390(struct rt2x00_dev *rt2x00dev)
6510 rt2800_rfcsr_write(rt2x00dev, 53, 0x84); 6506 rt2800_rfcsr_write(rt2x00dev, 53, 0x84);
6511 rt2800_rfcsr_write(rt2x00dev, 54, 0x78); 6507 rt2800_rfcsr_write(rt2x00dev, 54, 0x78);
6512 rt2800_rfcsr_write(rt2x00dev, 55, 0x44); 6508 rt2800_rfcsr_write(rt2x00dev, 55, 0x44);
6513 rt2800_rfcsr_write(rt2x00dev, 56, 0x22); 6509 if (rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5390F))
6510 rt2800_rfcsr_write(rt2x00dev, 56, 0x42);
6511 else
6512 rt2800_rfcsr_write(rt2x00dev, 56, 0x22);
6514 rt2800_rfcsr_write(rt2x00dev, 57, 0x80); 6513 rt2800_rfcsr_write(rt2x00dev, 57, 0x80);
6515 rt2800_rfcsr_write(rt2x00dev, 58, 0x7f); 6514 rt2800_rfcsr_write(rt2x00dev, 58, 0x7f);
6516 rt2800_rfcsr_write(rt2x00dev, 59, 0x8f); 6515 rt2800_rfcsr_write(rt2x00dev, 59, 0x8f);
6517 6516
6518 rt2800_rfcsr_write(rt2x00dev, 60, 0x45); 6517 rt2800_rfcsr_write(rt2x00dev, 60, 0x45);
6519 if (rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5390F)) 6518 if (rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5390F)) {
6520 rt2800_rfcsr_write(rt2x00dev, 61, 0xd1); 6519 if (rt2x00_is_usb(rt2x00dev))
6521 else 6520 rt2800_rfcsr_write(rt2x00dev, 61, 0xd1);
6522 rt2800_rfcsr_write(rt2x00dev, 61, 0xdd); 6521 else
6522 rt2800_rfcsr_write(rt2x00dev, 61, 0xd5);
6523 } else {
6524 if (rt2x00_is_usb(rt2x00dev))
6525 rt2800_rfcsr_write(rt2x00dev, 61, 0xdd);
6526 else
6527 rt2800_rfcsr_write(rt2x00dev, 61, 0xb5);
6528 }
6523 rt2800_rfcsr_write(rt2x00dev, 62, 0x00); 6529 rt2800_rfcsr_write(rt2x00dev, 62, 0x00);
6524 rt2800_rfcsr_write(rt2x00dev, 63, 0x00); 6530 rt2800_rfcsr_write(rt2x00dev, 63, 0x00);
6525 6531
@@ -6602,7 +6608,6 @@ static void rt2800_init_rfcsr_5592(struct rt2x00_dev *rt2x00dev)
6602 6608
6603 rt2800_rfcsr_write(rt2x00dev, 1, 0x3F); 6609 rt2800_rfcsr_write(rt2x00dev, 1, 0x3F);
6604 rt2800_rfcsr_write(rt2x00dev, 3, 0x08); 6610 rt2800_rfcsr_write(rt2x00dev, 3, 0x08);
6605 rt2800_rfcsr_write(rt2x00dev, 3, 0x08);
6606 rt2800_rfcsr_write(rt2x00dev, 5, 0x10); 6611 rt2800_rfcsr_write(rt2x00dev, 5, 0x10);
6607 rt2800_rfcsr_write(rt2x00dev, 6, 0xE4); 6612 rt2800_rfcsr_write(rt2x00dev, 6, 0xE4);
6608 rt2800_rfcsr_write(rt2x00dev, 7, 0x00); 6613 rt2800_rfcsr_write(rt2x00dev, 7, 0x00);
@@ -7453,10 +7458,9 @@ static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
7453 u32 reg; 7458 u32 reg;
7454 7459
7455 /* 7460 /*
7456 * Disable powersaving as default on PCI devices. 7461 * Disable powersaving as default.
7457 */ 7462 */
7458 if (rt2x00_is_pci(rt2x00dev) || rt2x00_is_soc(rt2x00dev)) 7463 rt2x00dev->hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT;
7459 rt2x00dev->hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT;
7460 7464
7461 /* 7465 /*
7462 * Initialize all hw fields. 7466 * Initialize all hw fields.