diff options
author | John W. Linville <linville@tuxdriver.com> | 2010-07-13 15:57:29 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-07-13 15:57:29 -0400 |
commit | e300d955debdadf599c36e47eb0bc16f5976215c (patch) | |
tree | 8fafcc789dc06e90665e6eee6388af228bbd2fd7 | |
parent | 242647bcf8464860f173f3d4d4ab3490d3558518 (diff) | |
parent | 815868e7b5c207ba42d5b317ccc51f8112732268 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
Conflicts:
drivers/net/wireless/wl12xx/wl1271_cmd.h
106 files changed, 9722 insertions, 8517 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 2ebb56710f4d..bb6493bfe08a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -313,11 +313,9 @@ S: Maintained | |||
313 | F: drivers/hwmon/adm1029.c | 313 | F: drivers/hwmon/adm1029.c |
314 | 314 | ||
315 | ADM8211 WIRELESS DRIVER | 315 | ADM8211 WIRELESS DRIVER |
316 | M: Michael Wu <flamingice@sourmilk.net> | ||
317 | L: linux-wireless@vger.kernel.org | 316 | L: linux-wireless@vger.kernel.org |
318 | W: http://linuxwireless.org/ | 317 | W: http://linuxwireless.org/ |
319 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/mwu/mac80211-drivers.git | 318 | S: Orphan |
320 | S: Maintained | ||
321 | F: drivers/net/wireless/adm8211.* | 319 | F: drivers/net/wireless/adm8211.* |
322 | 320 | ||
323 | ADT746X FAN DRIVER | 321 | ADT746X FAN DRIVER |
@@ -4251,10 +4249,9 @@ F: include/scsi/osd_* | |||
4251 | F: fs/exofs/ | 4249 | F: fs/exofs/ |
4252 | 4250 | ||
4253 | P54 WIRELESS DRIVER | 4251 | P54 WIRELESS DRIVER |
4254 | M: Michael Wu <flamingice@sourmilk.net> | 4252 | M: Christian Lamparter <chunkeey@googlemail.com> |
4255 | L: linux-wireless@vger.kernel.org | 4253 | L: linux-wireless@vger.kernel.org |
4256 | W: http://prism54.org | 4254 | W: http://wireless.kernel.org/en/users/Drivers/p54 |
4257 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/mwu/mac80211-drivers.git | ||
4258 | S: Maintained | 4255 | S: Maintained |
4259 | F: drivers/net/wireless/p54/ | 4256 | F: drivers/net/wireless/p54/ |
4260 | 4257 | ||
diff --git a/drivers/net/wireless/adm8211.c b/drivers/net/wireless/adm8211.c index 880ad9d170c2..bde2fa8bb639 100644 --- a/drivers/net/wireless/adm8211.c +++ b/drivers/net/wireless/adm8211.c | |||
@@ -1903,7 +1903,7 @@ static int __devinit adm8211_probe(struct pci_dev *pdev, | |||
1903 | if (err) { | 1903 | if (err) { |
1904 | printk(KERN_ERR "%s (adm8211): Cannot register device\n", | 1904 | printk(KERN_ERR "%s (adm8211): Cannot register device\n", |
1905 | pci_name(pdev)); | 1905 | pci_name(pdev)); |
1906 | goto err_free_desc; | 1906 | goto err_free_eeprom; |
1907 | } | 1907 | } |
1908 | 1908 | ||
1909 | printk(KERN_INFO "%s: hwaddr %pM, Rev 0x%02x\n", | 1909 | printk(KERN_INFO "%s: hwaddr %pM, Rev 0x%02x\n", |
@@ -1912,6 +1912,9 @@ static int __devinit adm8211_probe(struct pci_dev *pdev, | |||
1912 | 1912 | ||
1913 | return 0; | 1913 | return 0; |
1914 | 1914 | ||
1915 | err_free_eeprom: | ||
1916 | kfree(priv->eeprom); | ||
1917 | |||
1915 | err_free_desc: | 1918 | err_free_desc: |
1916 | pci_free_consistent(pdev, | 1919 | pci_free_consistent(pdev, |
1917 | sizeof(struct adm8211_desc) * priv->rx_ring_size + | 1920 | sizeof(struct adm8211_desc) * priv->rx_ring_size + |
diff --git a/drivers/net/wireless/ath/ath9k/ar5008_initvals.h b/drivers/net/wireless/ath/ath9k/ar5008_initvals.h index 025c31ac6146..36f7d0639db3 100644 --- a/drivers/net/wireless/ath/ath9k/ar5008_initvals.h +++ b/drivers/net/wireless/ath/ath9k/ar5008_initvals.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) 2008-2009 Atheros Communications Inc. | 2 | * Copyright (c) 2010 Atheros Communications Inc. |
3 | * | 3 | * |
4 | * Permission to use, copy, modify, and/or distribute this software for any | 4 | * Permission to use, copy, modify, and/or distribute this software for any |
5 | * purpose with or without fee is hereby granted, provided that the above | 5 | * purpose with or without fee is hereby granted, provided that the above |
@@ -14,729 +14,660 @@ | |||
14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #ifndef INITVALS_AR5008_H | ||
18 | #define INITVALS_AR5008_H | ||
19 | |||
20 | static const u32 ar5416Modes[][6] = { | 17 | static const u32 ar5416Modes[][6] = { |
21 | { 0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0 }, | 18 | {0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0}, |
22 | { 0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0 }, | 19 | {0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0}, |
23 | { 0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180 }, | 20 | {0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180}, |
24 | { 0x000010f0, 0x0000a000, 0x00014000, 0x00016000, 0x0000b000, 0x00014008 }, | 21 | {0x000010f0, 0x0000a000, 0x00014000, 0x00016000, 0x0000b000, 0x00014008}, |
25 | { 0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00, 0x06e006e0 }, | 22 | {0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00, 0x06e006e0}, |
26 | { 0x0000801c, 0x128d93a7, 0x128d93cf, 0x12e013d7, 0x12e013ab, 0x098813cf }, | 23 | {0x0000801c, 0x128d93a7, 0x128d93cf, 0x12e013d7, 0x12e013ab, 0x098813cf}, |
27 | { 0x00008120, 0x08f04800, 0x08f04800, 0x08f04810, 0x08f04810, 0x08f04810 }, | 24 | {0x00008120, 0x08f04800, 0x08f04800, 0x08f04810, 0x08f04810, 0x08f04810}, |
28 | { 0x000081d0, 0x00003210, 0x00003210, 0x0000320a, 0x0000320a, 0x0000320a }, | 25 | {0x000081d0, 0x00003210, 0x00003210, 0x0000320a, 0x0000320a, 0x0000320a}, |
29 | { 0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303 }, | 26 | {0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303}, |
30 | { 0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200 }, | 27 | {0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200}, |
31 | { 0x00009824, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }, | 28 | {0x00009824, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, |
32 | { 0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001 }, | 29 | {0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001}, |
33 | { 0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }, | 30 | {0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, |
34 | { 0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007 }, | 31 | {0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007}, |
35 | { 0x00009844, 0x1372161e, 0x1372161e, 0x137216a0, 0x137216a0, 0x137216a0 }, | 32 | {0x00009844, 0x1372161e, 0x1372161e, 0x137216a0, 0x137216a0, 0x137216a0}, |
36 | { 0x00009848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68 }, | 33 | {0x00009848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68}, |
37 | { 0x0000a848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68 }, | 34 | {0x0000a848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68}, |
38 | { 0x0000b848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68 }, | 35 | {0x0000b848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68}, |
39 | { 0x00009850, 0x6c48b4e0, 0x6d48b4e0, 0x6d48b0de, 0x6c48b0de, 0x6c48b0de }, | 36 | {0x00009850, 0x6c48b4e0, 0x6d48b4e0, 0x6d48b0de, 0x6c48b0de, 0x6c48b0de}, |
40 | { 0x00009858, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e }, | 37 | {0x00009858, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e}, |
41 | { 0x0000985c, 0x31395d5e, 0x3139605e, 0x3139605e, 0x31395d5e, 0x31395d5e }, | 38 | {0x0000985c, 0x31395d5e, 0x3139605e, 0x3139605e, 0x31395d5e, 0x31395d5e}, |
42 | { 0x00009860, 0x00049d18, 0x00049d18, 0x00049d18, 0x00049d18, 0x00049d18 }, | 39 | {0x00009860, 0x00049d18, 0x00049d18, 0x00049d18, 0x00049d18, 0x00049d18}, |
43 | { 0x00009864, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00 }, | 40 | {0x00009864, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00}, |
44 | { 0x00009868, 0x409a4190, 0x409a4190, 0x409a4190, 0x409a4190, 0x409a4190 }, | 41 | {0x00009868, 0x409a4190, 0x409a4190, 0x409a4190, 0x409a4190, 0x409a4190}, |
45 | { 0x0000986c, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081 }, | 42 | {0x0000986c, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081}, |
46 | { 0x00009914, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898, 0x000007d0 }, | 43 | {0x00009914, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898, 0x000007d0}, |
47 | { 0x00009918, 0x000001b8, 0x00000370, 0x00000268, 0x00000134, 0x00000134 }, | 44 | {0x00009918, 0x000001b8, 0x00000370, 0x00000268, 0x00000134, 0x00000134}, |
48 | { 0x00009924, 0xd0058a0b, 0xd0058a0b, 0xd0058a0b, 0xd0058a0b, 0xd0058a0b }, | 45 | {0x00009924, 0xd0058a0b, 0xd0058a0b, 0xd0058a0b, 0xd0058a0b, 0xd0058a0b}, |
49 | { 0x00009944, 0xffb81020, 0xffb81020, 0xffb81020, 0xffb81020, 0xffb81020 }, | 46 | {0x00009944, 0xffb81020, 0xffb81020, 0xffb81020, 0xffb81020, 0xffb81020}, |
50 | { 0x00009960, 0x00000900, 0x00000900, 0x00012d80, 0x00012d80, 0x00012d80 }, | 47 | {0x00009960, 0x00000900, 0x00000900, 0x00012d80, 0x00012d80, 0x00012d80}, |
51 | { 0x0000a960, 0x00000900, 0x00000900, 0x00012d80, 0x00012d80, 0x00012d80 }, | 48 | {0x0000a960, 0x00000900, 0x00000900, 0x00012d80, 0x00012d80, 0x00012d80}, |
52 | { 0x0000b960, 0x00000900, 0x00000900, 0x00012d80, 0x00012d80, 0x00012d80 }, | 49 | {0x0000b960, 0x00000900, 0x00000900, 0x00012d80, 0x00012d80, 0x00012d80}, |
53 | { 0x00009964, 0x00000000, 0x00000000, 0x00001120, 0x00001120, 0x00001120 }, | 50 | {0x00009964, 0x00000000, 0x00000000, 0x00001120, 0x00001120, 0x00001120}, |
54 | { 0x000099bc, 0x001a0a00, 0x001a0a00, 0x001a0a00, 0x001a0a00, 0x001a0a00 }, | 51 | {0x000099bc, 0x001a0a00, 0x001a0a00, 0x001a0a00, 0x001a0a00, 0x001a0a00}, |
55 | { 0x000099c0, 0x038919be, 0x038919be, 0x038919be, 0x038919be, 0x038919be }, | 52 | {0x000099c0, 0x038919be, 0x038919be, 0x038919be, 0x038919be, 0x038919be}, |
56 | { 0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77 }, | 53 | {0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77}, |
57 | { 0x000099c8, 0x6af6532c, 0x6af6532c, 0x6af6532c, 0x6af6532c, 0x6af6532c }, | 54 | {0x000099c8, 0x6af6532c, 0x6af6532c, 0x6af6532c, 0x6af6532c, 0x6af6532c}, |
58 | { 0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8 }, | 55 | {0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8}, |
59 | { 0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384 }, | 56 | {0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384}, |
60 | { 0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 57 | {0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
61 | { 0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 58 | {0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
62 | { 0x0000a204, 0x00000880, 0x00000880, 0x00000880, 0x00000880, 0x00000880 }, | 59 | {0x0000a204, 0x00000880, 0x00000880, 0x00000880, 0x00000880, 0x00000880}, |
63 | { 0x0000a208, 0xd6be4788, 0xd6be4788, 0xd03e4788, 0xd03e4788, 0xd03e4788 }, | 60 | {0x0000a208, 0xd6be4788, 0xd6be4788, 0xd03e4788, 0xd03e4788, 0xd03e4788}, |
64 | { 0x0000a20c, 0x002ec1e0, 0x002ec1e0, 0x002ac120, 0x002ac120, 0x002ac120 }, | 61 | {0x0000a20c, 0x002ec1e0, 0x002ec1e0, 0x002ac120, 0x002ac120, 0x002ac120}, |
65 | { 0x0000b20c, 0x002ec1e0, 0x002ec1e0, 0x002ac120, 0x002ac120, 0x002ac120 }, | 62 | {0x0000b20c, 0x002ec1e0, 0x002ec1e0, 0x002ac120, 0x002ac120, 0x002ac120}, |
66 | { 0x0000c20c, 0x002ec1e0, 0x002ec1e0, 0x002ac120, 0x002ac120, 0x002ac120 }, | 63 | {0x0000c20c, 0x002ec1e0, 0x002ec1e0, 0x002ac120, 0x002ac120, 0x002ac120}, |
67 | { 0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a }, | 64 | {0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a}, |
68 | { 0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000 }, | 65 | {0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000}, |
69 | { 0x0000a274, 0x0a1a9caa, 0x0a1a9caa, 0x0a1a7caa, 0x0a1a7caa, 0x0a1a7caa }, | 66 | {0x0000a274, 0x0a1a9caa, 0x0a1a9caa, 0x0a1a7caa, 0x0a1a7caa, 0x0a1a7caa}, |
70 | { 0x0000a300, 0x18010000, 0x18010000, 0x18010000, 0x18010000, 0x18010000 }, | 67 | {0x0000a300, 0x18010000, 0x18010000, 0x18010000, 0x18010000, 0x18010000}, |
71 | { 0x0000a304, 0x30032602, 0x30032602, 0x2e032402, 0x2e032402, 0x2e032402 }, | 68 | {0x0000a304, 0x30032602, 0x30032602, 0x2e032402, 0x2e032402, 0x2e032402}, |
72 | { 0x0000a308, 0x48073e06, 0x48073e06, 0x4a0a3c06, 0x4a0a3c06, 0x4a0a3c06 }, | 69 | {0x0000a308, 0x48073e06, 0x48073e06, 0x4a0a3c06, 0x4a0a3c06, 0x4a0a3c06}, |
73 | { 0x0000a30c, 0x560b4c0a, 0x560b4c0a, 0x621a540b, 0x621a540b, 0x621a540b }, | 70 | {0x0000a30c, 0x560b4c0a, 0x560b4c0a, 0x621a540b, 0x621a540b, 0x621a540b}, |
74 | { 0x0000a310, 0x641a600f, 0x641a600f, 0x764f6c1b, 0x764f6c1b, 0x764f6c1b }, | 71 | {0x0000a310, 0x641a600f, 0x641a600f, 0x764f6c1b, 0x764f6c1b, 0x764f6c1b}, |
75 | { 0x0000a314, 0x7a4f6e1b, 0x7a4f6e1b, 0x845b7a5a, 0x845b7a5a, 0x845b7a5a }, | 72 | {0x0000a314, 0x7a4f6e1b, 0x7a4f6e1b, 0x845b7a5a, 0x845b7a5a, 0x845b7a5a}, |
76 | { 0x0000a318, 0x8c5b7e5a, 0x8c5b7e5a, 0x950f8ccf, 0x950f8ccf, 0x950f8ccf }, | 73 | {0x0000a318, 0x8c5b7e5a, 0x8c5b7e5a, 0x950f8ccf, 0x950f8ccf, 0x950f8ccf}, |
77 | { 0x0000a31c, 0x9d0f96cf, 0x9d0f96cf, 0xa5cf9b4f, 0xa5cf9b4f, 0xa5cf9b4f }, | 74 | {0x0000a31c, 0x9d0f96cf, 0x9d0f96cf, 0xa5cf9b4f, 0xa5cf9b4f, 0xa5cf9b4f}, |
78 | { 0x0000a320, 0xb51fa69f, 0xb51fa69f, 0xbddfaf1f, 0xbddfaf1f, 0xbddfaf1f }, | 75 | {0x0000a320, 0xb51fa69f, 0xb51fa69f, 0xbddfaf1f, 0xbddfaf1f, 0xbddfaf1f}, |
79 | { 0x0000a324, 0xcb3fbd07, 0xcb3fbcbf, 0xd1ffc93f, 0xd1ffc93f, 0xd1ffc93f }, | 76 | {0x0000a324, 0xcb3fbd07, 0xcb3fbcbf, 0xd1ffc93f, 0xd1ffc93f, 0xd1ffc93f}, |
80 | { 0x0000a328, 0x0000d7bf, 0x0000d7bf, 0x00000000, 0x00000000, 0x00000000 }, | 77 | {0x0000a328, 0x0000d7bf, 0x0000d7bf, 0x00000000, 0x00000000, 0x00000000}, |
81 | { 0x0000a32c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 78 | {0x0000a32c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
82 | { 0x0000a330, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 79 | {0x0000a330, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
83 | { 0x0000a334, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 80 | {0x0000a334, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
84 | }; | 81 | }; |
85 | 82 | ||
86 | static const u32 ar5416Common[][2] = { | 83 | static const u32 ar5416Common[][2] = { |
87 | { 0x0000000c, 0x00000000 }, | 84 | /* Addr allmodes */ |
88 | { 0x00000030, 0x00020015 }, | 85 | {0x0000000c, 0x00000000}, |
89 | { 0x00000034, 0x00000005 }, | 86 | {0x00000030, 0x00020015}, |
90 | { 0x00000040, 0x00000000 }, | 87 | {0x00000034, 0x00000005}, |
91 | { 0x00000044, 0x00000008 }, | 88 | {0x00000040, 0x00000000}, |
92 | { 0x00000048, 0x00000008 }, | 89 | {0x00000044, 0x00000008}, |
93 | { 0x0000004c, 0x00000010 }, | 90 | {0x00000048, 0x00000008}, |
94 | { 0x00000050, 0x00000000 }, | 91 | {0x0000004c, 0x00000010}, |
95 | { 0x00000054, 0x0000001f }, | 92 | {0x00000050, 0x00000000}, |
96 | { 0x00000800, 0x00000000 }, | 93 | {0x00000054, 0x0000001f}, |
97 | { 0x00000804, 0x00000000 }, | 94 | {0x00000800, 0x00000000}, |
98 | { 0x00000808, 0x00000000 }, | 95 | {0x00000804, 0x00000000}, |
99 | { 0x0000080c, 0x00000000 }, | 96 | {0x00000808, 0x00000000}, |
100 | { 0x00000810, 0x00000000 }, | 97 | {0x0000080c, 0x00000000}, |
101 | { 0x00000814, 0x00000000 }, | 98 | {0x00000810, 0x00000000}, |
102 | { 0x00000818, 0x00000000 }, | 99 | {0x00000814, 0x00000000}, |
103 | { 0x0000081c, 0x00000000 }, | 100 | {0x00000818, 0x00000000}, |
104 | { 0x00000820, 0x00000000 }, | 101 | {0x0000081c, 0x00000000}, |
105 | { 0x00000824, 0x00000000 }, | 102 | {0x00000820, 0x00000000}, |
106 | { 0x00001040, 0x002ffc0f }, | 103 | {0x00000824, 0x00000000}, |
107 | { 0x00001044, 0x002ffc0f }, | 104 | {0x00001040, 0x002ffc0f}, |
108 | { 0x00001048, 0x002ffc0f }, | 105 | {0x00001044, 0x002ffc0f}, |
109 | { 0x0000104c, 0x002ffc0f }, | 106 | {0x00001048, 0x002ffc0f}, |
110 | { 0x00001050, 0x002ffc0f }, | 107 | {0x0000104c, 0x002ffc0f}, |
111 | { 0x00001054, 0x002ffc0f }, | 108 | {0x00001050, 0x002ffc0f}, |
112 | { 0x00001058, 0x002ffc0f }, | 109 | {0x00001054, 0x002ffc0f}, |
113 | { 0x0000105c, 0x002ffc0f }, | 110 | {0x00001058, 0x002ffc0f}, |
114 | { 0x00001060, 0x002ffc0f }, | 111 | {0x0000105c, 0x002ffc0f}, |
115 | { 0x00001064, 0x002ffc0f }, | 112 | {0x00001060, 0x002ffc0f}, |
116 | { 0x00001230, 0x00000000 }, | 113 | {0x00001064, 0x002ffc0f}, |
117 | { 0x00001270, 0x00000000 }, | 114 | {0x00001230, 0x00000000}, |
118 | { 0x00001038, 0x00000000 }, | 115 | {0x00001270, 0x00000000}, |
119 | { 0x00001078, 0x00000000 }, | 116 | {0x00001038, 0x00000000}, |
120 | { 0x000010b8, 0x00000000 }, | 117 | {0x00001078, 0x00000000}, |
121 | { 0x000010f8, 0x00000000 }, | 118 | {0x000010b8, 0x00000000}, |
122 | { 0x00001138, 0x00000000 }, | 119 | {0x000010f8, 0x00000000}, |
123 | { 0x00001178, 0x00000000 }, | 120 | {0x00001138, 0x00000000}, |
124 | { 0x000011b8, 0x00000000 }, | 121 | {0x00001178, 0x00000000}, |
125 | { 0x000011f8, 0x00000000 }, | 122 | {0x000011b8, 0x00000000}, |
126 | { 0x00001238, 0x00000000 }, | 123 | {0x000011f8, 0x00000000}, |
127 | { 0x00001278, 0x00000000 }, | 124 | {0x00001238, 0x00000000}, |
128 | { 0x000012b8, 0x00000000 }, | 125 | {0x00001278, 0x00000000}, |
129 | { 0x000012f8, 0x00000000 }, | 126 | {0x000012b8, 0x00000000}, |
130 | { 0x00001338, 0x00000000 }, | 127 | {0x000012f8, 0x00000000}, |
131 | { 0x00001378, 0x00000000 }, | 128 | {0x00001338, 0x00000000}, |
132 | { 0x000013b8, 0x00000000 }, | 129 | {0x00001378, 0x00000000}, |
133 | { 0x000013f8, 0x00000000 }, | 130 | {0x000013b8, 0x00000000}, |
134 | { 0x00001438, 0x00000000 }, | 131 | {0x000013f8, 0x00000000}, |
135 | { 0x00001478, 0x00000000 }, | 132 | {0x00001438, 0x00000000}, |
136 | { 0x000014b8, 0x00000000 }, | 133 | {0x00001478, 0x00000000}, |
137 | { 0x000014f8, 0x00000000 }, | 134 | {0x000014b8, 0x00000000}, |
138 | { 0x00001538, 0x00000000 }, | 135 | {0x000014f8, 0x00000000}, |
139 | { 0x00001578, 0x00000000 }, | 136 | {0x00001538, 0x00000000}, |
140 | { 0x000015b8, 0x00000000 }, | 137 | {0x00001578, 0x00000000}, |
141 | { 0x000015f8, 0x00000000 }, | 138 | {0x000015b8, 0x00000000}, |
142 | { 0x00001638, 0x00000000 }, | 139 | {0x000015f8, 0x00000000}, |
143 | { 0x00001678, 0x00000000 }, | 140 | {0x00001638, 0x00000000}, |
144 | { 0x000016b8, 0x00000000 }, | 141 | {0x00001678, 0x00000000}, |
145 | { 0x000016f8, 0x00000000 }, | 142 | {0x000016b8, 0x00000000}, |
146 | { 0x00001738, 0x00000000 }, | 143 | {0x000016f8, 0x00000000}, |
147 | { 0x00001778, 0x00000000 }, | 144 | {0x00001738, 0x00000000}, |
148 | { 0x000017b8, 0x00000000 }, | 145 | {0x00001778, 0x00000000}, |
149 | { 0x000017f8, 0x00000000 }, | 146 | {0x000017b8, 0x00000000}, |
150 | { 0x0000103c, 0x00000000 }, | 147 | {0x000017f8, 0x00000000}, |
151 | { 0x0000107c, 0x00000000 }, | 148 | {0x0000103c, 0x00000000}, |
152 | { 0x000010bc, 0x00000000 }, | 149 | {0x0000107c, 0x00000000}, |
153 | { 0x000010fc, 0x00000000 }, | 150 | {0x000010bc, 0x00000000}, |
154 | { 0x0000113c, 0x00000000 }, | 151 | {0x000010fc, 0x00000000}, |
155 | { 0x0000117c, 0x00000000 }, | 152 | {0x0000113c, 0x00000000}, |
156 | { 0x000011bc, 0x00000000 }, | 153 | {0x0000117c, 0x00000000}, |
157 | { 0x000011fc, 0x00000000 }, | 154 | {0x000011bc, 0x00000000}, |
158 | { 0x0000123c, 0x00000000 }, | 155 | {0x000011fc, 0x00000000}, |
159 | { 0x0000127c, 0x00000000 }, | 156 | {0x0000123c, 0x00000000}, |
160 | { 0x000012bc, 0x00000000 }, | 157 | {0x0000127c, 0x00000000}, |
161 | { 0x000012fc, 0x00000000 }, | 158 | {0x000012bc, 0x00000000}, |
162 | { 0x0000133c, 0x00000000 }, | 159 | {0x000012fc, 0x00000000}, |
163 | { 0x0000137c, 0x00000000 }, | 160 | {0x0000133c, 0x00000000}, |
164 | { 0x000013bc, 0x00000000 }, | 161 | {0x0000137c, 0x00000000}, |
165 | { 0x000013fc, 0x00000000 }, | 162 | {0x000013bc, 0x00000000}, |
166 | { 0x0000143c, 0x00000000 }, | 163 | {0x000013fc, 0x00000000}, |
167 | { 0x0000147c, 0x00000000 }, | 164 | {0x0000143c, 0x00000000}, |
168 | { 0x00004030, 0x00000002 }, | 165 | {0x0000147c, 0x00000000}, |
169 | { 0x0000403c, 0x00000002 }, | 166 | {0x00004030, 0x00000002}, |
170 | { 0x00007010, 0x00000000 }, | 167 | {0x0000403c, 0x00000002}, |
171 | { 0x00007038, 0x000004c2 }, | 168 | {0x00007010, 0x00000000}, |
172 | { 0x00008004, 0x00000000 }, | 169 | {0x00007038, 0x000004c2}, |
173 | { 0x00008008, 0x00000000 }, | 170 | {0x00008004, 0x00000000}, |
174 | { 0x0000800c, 0x00000000 }, | 171 | {0x00008008, 0x00000000}, |
175 | { 0x00008018, 0x00000700 }, | 172 | {0x0000800c, 0x00000000}, |
176 | { 0x00008020, 0x00000000 }, | 173 | {0x00008018, 0x00000700}, |
177 | { 0x00008038, 0x00000000 }, | 174 | {0x00008020, 0x00000000}, |
178 | { 0x0000803c, 0x00000000 }, | 175 | {0x00008038, 0x00000000}, |
179 | { 0x00008048, 0x40000000 }, | 176 | {0x0000803c, 0x00000000}, |
180 | { 0x00008054, 0x00000000 }, | 177 | {0x00008048, 0x40000000}, |
181 | { 0x00008058, 0x00000000 }, | 178 | {0x00008054, 0x00000000}, |
182 | { 0x0000805c, 0x000fc78f }, | 179 | {0x00008058, 0x00000000}, |
183 | { 0x00008060, 0x0000000f }, | 180 | {0x0000805c, 0x000fc78f}, |
184 | { 0x00008064, 0x00000000 }, | 181 | {0x00008060, 0x0000000f}, |
185 | { 0x000080c0, 0x2a82301a }, | 182 | {0x00008064, 0x00000000}, |
186 | { 0x000080c4, 0x05dc01e0 }, | 183 | {0x000080c0, 0x2a82301a}, |
187 | { 0x000080c8, 0x1f402710 }, | 184 | {0x000080c4, 0x05dc01e0}, |
188 | { 0x000080cc, 0x01f40000 }, | 185 | {0x000080c8, 0x1f402710}, |
189 | { 0x000080d0, 0x00001e00 }, | 186 | {0x000080cc, 0x01f40000}, |
190 | { 0x000080d4, 0x00000000 }, | 187 | {0x000080d0, 0x00001e00}, |
191 | { 0x000080d8, 0x00400000 }, | 188 | {0x000080d4, 0x00000000}, |
192 | { 0x000080e0, 0xffffffff }, | 189 | {0x000080d8, 0x00400000}, |
193 | { 0x000080e4, 0x0000ffff }, | 190 | {0x000080e0, 0xffffffff}, |
194 | { 0x000080e8, 0x003f3f3f }, | 191 | {0x000080e4, 0x0000ffff}, |
195 | { 0x000080ec, 0x00000000 }, | 192 | {0x000080e8, 0x003f3f3f}, |
196 | { 0x000080f0, 0x00000000 }, | 193 | {0x000080ec, 0x00000000}, |
197 | { 0x000080f4, 0x00000000 }, | 194 | {0x000080f0, 0x00000000}, |
198 | { 0x000080f8, 0x00000000 }, | 195 | {0x000080f4, 0x00000000}, |
199 | { 0x000080fc, 0x00020000 }, | 196 | {0x000080f8, 0x00000000}, |
200 | { 0x00008100, 0x00020000 }, | 197 | {0x000080fc, 0x00020000}, |
201 | { 0x00008104, 0x00000001 }, | 198 | {0x00008100, 0x00020000}, |
202 | { 0x00008108, 0x00000052 }, | 199 | {0x00008104, 0x00000001}, |
203 | { 0x0000810c, 0x00000000 }, | 200 | {0x00008108, 0x00000052}, |
204 | { 0x00008110, 0x00000168 }, | 201 | {0x0000810c, 0x00000000}, |
205 | { 0x00008118, 0x000100aa }, | 202 | {0x00008110, 0x00000168}, |
206 | { 0x0000811c, 0x00003210 }, | 203 | {0x00008118, 0x000100aa}, |
207 | { 0x00008124, 0x00000000 }, | 204 | {0x0000811c, 0x00003210}, |
208 | { 0x00008128, 0x00000000 }, | 205 | {0x00008124, 0x00000000}, |
209 | { 0x0000812c, 0x00000000 }, | 206 | {0x00008128, 0x00000000}, |
210 | { 0x00008130, 0x00000000 }, | 207 | {0x0000812c, 0x00000000}, |
211 | { 0x00008134, 0x00000000 }, | 208 | {0x00008130, 0x00000000}, |
212 | { 0x00008138, 0x00000000 }, | 209 | {0x00008134, 0x00000000}, |
213 | { 0x0000813c, 0x00000000 }, | 210 | {0x00008138, 0x00000000}, |
214 | { 0x00008144, 0xffffffff }, | 211 | {0x0000813c, 0x00000000}, |
215 | { 0x00008168, 0x00000000 }, | 212 | {0x00008144, 0xffffffff}, |
216 | { 0x0000816c, 0x00000000 }, | 213 | {0x00008168, 0x00000000}, |
217 | { 0x00008170, 0x32143320 }, | 214 | {0x0000816c, 0x00000000}, |
218 | { 0x00008174, 0xfaa4fa50 }, | 215 | {0x00008170, 0x32143320}, |
219 | { 0x00008178, 0x00000100 }, | 216 | {0x00008174, 0xfaa4fa50}, |
220 | { 0x0000817c, 0x00000000 }, | 217 | {0x00008178, 0x00000100}, |
221 | { 0x000081c4, 0x00000000 }, | 218 | {0x0000817c, 0x00000000}, |
222 | { 0x000081ec, 0x00000000 }, | 219 | {0x000081c4, 0x00000000}, |
223 | { 0x000081f0, 0x00000000 }, | 220 | {0x000081ec, 0x00000000}, |
224 | { 0x000081f4, 0x00000000 }, | 221 | {0x000081f0, 0x00000000}, |
225 | { 0x000081f8, 0x00000000 }, | 222 | {0x000081f4, 0x00000000}, |
226 | { 0x000081fc, 0x00000000 }, | 223 | {0x000081f8, 0x00000000}, |
227 | { 0x00008200, 0x00000000 }, | 224 | {0x000081fc, 0x00000000}, |
228 | { 0x00008204, 0x00000000 }, | 225 | {0x00008200, 0x00000000}, |
229 | { 0x00008208, 0x00000000 }, | 226 | {0x00008204, 0x00000000}, |
230 | { 0x0000820c, 0x00000000 }, | 227 | {0x00008208, 0x00000000}, |
231 | { 0x00008210, 0x00000000 }, | 228 | {0x0000820c, 0x00000000}, |
232 | { 0x00008214, 0x00000000 }, | 229 | {0x00008210, 0x00000000}, |
233 | { 0x00008218, 0x00000000 }, | 230 | {0x00008214, 0x00000000}, |
234 | { 0x0000821c, 0x00000000 }, | 231 | {0x00008218, 0x00000000}, |
235 | { 0x00008220, 0x00000000 }, | 232 | {0x0000821c, 0x00000000}, |
236 | { 0x00008224, 0x00000000 }, | 233 | {0x00008220, 0x00000000}, |
237 | { 0x00008228, 0x00000000 }, | 234 | {0x00008224, 0x00000000}, |
238 | { 0x0000822c, 0x00000000 }, | 235 | {0x00008228, 0x00000000}, |
239 | { 0x00008230, 0x00000000 }, | 236 | {0x0000822c, 0x00000000}, |
240 | { 0x00008234, 0x00000000 }, | 237 | {0x00008230, 0x00000000}, |
241 | { 0x00008238, 0x00000000 }, | 238 | {0x00008234, 0x00000000}, |
242 | { 0x0000823c, 0x00000000 }, | 239 | {0x00008238, 0x00000000}, |
243 | { 0x00008240, 0x00100000 }, | 240 | {0x0000823c, 0x00000000}, |
244 | { 0x00008244, 0x0010f400 }, | 241 | {0x00008240, 0x00100000}, |
245 | { 0x00008248, 0x00000100 }, | 242 | {0x00008244, 0x0010f400}, |
246 | { 0x0000824c, 0x0001e800 }, | 243 | {0x00008248, 0x00000100}, |
247 | { 0x00008250, 0x00000000 }, | 244 | {0x0000824c, 0x0001e800}, |
248 | { 0x00008254, 0x00000000 }, | 245 | {0x00008250, 0x00000000}, |
249 | { 0x00008258, 0x00000000 }, | 246 | {0x00008254, 0x00000000}, |
250 | { 0x0000825c, 0x400000ff }, | 247 | {0x00008258, 0x00000000}, |
251 | { 0x00008260, 0x00080922 }, | 248 | {0x0000825c, 0x400000ff}, |
252 | { 0x00008264, 0x88000010 }, | 249 | {0x00008260, 0x00080922}, |
253 | { 0x00008270, 0x00000000 }, | 250 | {0x00008264, 0x88000010}, |
254 | { 0x00008274, 0x40000000 }, | 251 | {0x00008270, 0x00000000}, |
255 | { 0x00008278, 0x003e4180 }, | 252 | {0x00008274, 0x40000000}, |
256 | { 0x0000827c, 0x00000000 }, | 253 | {0x00008278, 0x003e4180}, |
257 | { 0x00008284, 0x0000002c }, | 254 | {0x0000827c, 0x00000000}, |
258 | { 0x00008288, 0x0000002c }, | 255 | {0x00008284, 0x0000002c}, |
259 | { 0x0000828c, 0x00000000 }, | 256 | {0x00008288, 0x0000002c}, |
260 | { 0x00008294, 0x00000000 }, | 257 | {0x0000828c, 0x00000000}, |
261 | { 0x00008298, 0x00000000 }, | 258 | {0x00008294, 0x00000000}, |
262 | { 0x00008300, 0x00000000 }, | 259 | {0x00008298, 0x00000000}, |
263 | { 0x00008304, 0x00000000 }, | 260 | {0x00008300, 0x00000000}, |
264 | { 0x00008308, 0x00000000 }, | 261 | {0x00008304, 0x00000000}, |
265 | { 0x0000830c, 0x00000000 }, | 262 | {0x00008308, 0x00000000}, |
266 | { 0x00008310, 0x00000000 }, | 263 | {0x0000830c, 0x00000000}, |
267 | { 0x00008314, 0x00000000 }, | 264 | {0x00008310, 0x00000000}, |
268 | { 0x00008318, 0x00000000 }, | 265 | {0x00008314, 0x00000000}, |
269 | { 0x00008328, 0x00000000 }, | 266 | {0x00008318, 0x00000000}, |
270 | { 0x0000832c, 0x00000007 }, | 267 | {0x00008328, 0x00000000}, |
271 | { 0x00008330, 0x00000302 }, | 268 | {0x0000832c, 0x00000007}, |
272 | { 0x00008334, 0x00000e00 }, | 269 | {0x00008330, 0x00000302}, |
273 | { 0x00008338, 0x00070000 }, | 270 | {0x00008334, 0x00000e00}, |
274 | { 0x0000833c, 0x00000000 }, | 271 | {0x00008338, 0x00070000}, |
275 | { 0x00008340, 0x000107ff }, | 272 | {0x0000833c, 0x00000000}, |
276 | { 0x00009808, 0x00000000 }, | 273 | {0x00008340, 0x000107ff}, |
277 | { 0x0000980c, 0xad848e19 }, | 274 | {0x00009808, 0x00000000}, |
278 | { 0x00009810, 0x7d14e000 }, | 275 | {0x0000980c, 0xad848e19}, |
279 | { 0x00009814, 0x9c0a9f6b }, | 276 | {0x00009810, 0x7d14e000}, |
280 | { 0x0000981c, 0x00000000 }, | 277 | {0x00009814, 0x9c0a9f6b}, |
281 | { 0x0000982c, 0x0000a000 }, | 278 | {0x0000981c, 0x00000000}, |
282 | { 0x00009830, 0x00000000 }, | 279 | {0x0000982c, 0x0000a000}, |
283 | { 0x0000983c, 0x00200400 }, | 280 | {0x00009830, 0x00000000}, |
284 | { 0x00009840, 0x206a002e }, | 281 | {0x0000983c, 0x00200400}, |
285 | { 0x0000984c, 0x1284233c }, | 282 | {0x00009840, 0x206a002e}, |
286 | { 0x00009854, 0x00000859 }, | 283 | {0x0000984c, 0x1284233c}, |
287 | { 0x00009900, 0x00000000 }, | 284 | {0x00009854, 0x00000859}, |
288 | { 0x00009904, 0x00000000 }, | 285 | {0x00009900, 0x00000000}, |
289 | { 0x00009908, 0x00000000 }, | 286 | {0x00009904, 0x00000000}, |
290 | { 0x0000990c, 0x00000000 }, | 287 | {0x00009908, 0x00000000}, |
291 | { 0x0000991c, 0x10000fff }, | 288 | {0x0000990c, 0x00000000}, |
292 | { 0x00009920, 0x05100000 }, | 289 | {0x0000991c, 0x10000fff}, |
293 | { 0x0000a920, 0x05100000 }, | 290 | {0x00009920, 0x05100000}, |
294 | { 0x0000b920, 0x05100000 }, | 291 | {0x0000a920, 0x05100000}, |
295 | { 0x00009928, 0x00000001 }, | 292 | {0x0000b920, 0x05100000}, |
296 | { 0x0000992c, 0x00000004 }, | 293 | {0x00009928, 0x00000001}, |
297 | { 0x00009934, 0x1e1f2022 }, | 294 | {0x0000992c, 0x00000004}, |
298 | { 0x00009938, 0x0a0b0c0d }, | 295 | {0x00009934, 0x1e1f2022}, |
299 | { 0x0000993c, 0x00000000 }, | 296 | {0x00009938, 0x0a0b0c0d}, |
300 | { 0x00009948, 0x9280b212 }, | 297 | {0x0000993c, 0x00000000}, |
301 | { 0x0000994c, 0x00020028 }, | 298 | {0x00009948, 0x9280b212}, |
302 | { 0x00009954, 0x5d50e188 }, | 299 | {0x0000994c, 0x00020028}, |
303 | { 0x00009958, 0x00081fff }, | 300 | {0x00009954, 0x5d50e188}, |
304 | { 0x0000c95c, 0x004b6a8e }, | 301 | {0x00009958, 0x00081fff}, |
305 | { 0x0000c968, 0x000003ce }, | 302 | {0x0000c95c, 0x004b6a8e}, |
306 | { 0x00009970, 0x190fb515 }, | 303 | {0x0000c968, 0x000003ce}, |
307 | { 0x00009974, 0x00000000 }, | 304 | {0x00009970, 0x190fb515}, |
308 | { 0x00009978, 0x00000001 }, | 305 | {0x00009974, 0x00000000}, |
309 | { 0x0000997c, 0x00000000 }, | 306 | {0x00009978, 0x00000001}, |
310 | { 0x00009980, 0x00000000 }, | 307 | {0x0000997c, 0x00000000}, |
311 | { 0x00009984, 0x00000000 }, | 308 | {0x00009980, 0x00000000}, |
312 | { 0x00009988, 0x00000000 }, | 309 | {0x00009984, 0x00000000}, |
313 | { 0x0000998c, 0x00000000 }, | 310 | {0x00009988, 0x00000000}, |
314 | { 0x00009990, 0x00000000 }, | 311 | {0x0000998c, 0x00000000}, |
315 | { 0x00009994, 0x00000000 }, | 312 | {0x00009990, 0x00000000}, |
316 | { 0x00009998, 0x00000000 }, | 313 | {0x00009994, 0x00000000}, |
317 | { 0x0000999c, 0x00000000 }, | 314 | {0x00009998, 0x00000000}, |
318 | { 0x000099a0, 0x00000000 }, | 315 | {0x0000999c, 0x00000000}, |
319 | { 0x000099a4, 0x00000001 }, | 316 | {0x000099a0, 0x00000000}, |
320 | { 0x000099a8, 0x001fff00 }, | 317 | {0x000099a4, 0x00000001}, |
321 | { 0x000099ac, 0x00000000 }, | 318 | {0x000099a8, 0x001fff00}, |
322 | { 0x000099b0, 0x03051000 }, | 319 | {0x000099ac, 0x00000000}, |
323 | { 0x000099dc, 0x00000000 }, | 320 | {0x000099b0, 0x03051000}, |
324 | { 0x000099e0, 0x00000200 }, | 321 | {0x000099dc, 0x00000000}, |
325 | { 0x000099e4, 0xaaaaaaaa }, | 322 | {0x000099e0, 0x00000200}, |
326 | { 0x000099e8, 0x3c466478 }, | 323 | {0x000099e4, 0xaaaaaaaa}, |
327 | { 0x000099ec, 0x000000aa }, | 324 | {0x000099e8, 0x3c466478}, |
328 | { 0x000099fc, 0x00001042 }, | 325 | {0x000099ec, 0x000000aa}, |
329 | { 0x00009b00, 0x00000000 }, | 326 | {0x000099fc, 0x00001042}, |
330 | { 0x00009b04, 0x00000001 }, | 327 | {0x00009b00, 0x00000000}, |
331 | { 0x00009b08, 0x00000002 }, | 328 | {0x00009b04, 0x00000001}, |
332 | { 0x00009b0c, 0x00000003 }, | 329 | {0x00009b08, 0x00000002}, |
333 | { 0x00009b10, 0x00000004 }, | 330 | {0x00009b0c, 0x00000003}, |
334 | { 0x00009b14, 0x00000005 }, | 331 | {0x00009b10, 0x00000004}, |
335 | { 0x00009b18, 0x00000008 }, | 332 | {0x00009b14, 0x00000005}, |
336 | { 0x00009b1c, 0x00000009 }, | 333 | {0x00009b18, 0x00000008}, |
337 | { 0x00009b20, 0x0000000a }, | 334 | {0x00009b1c, 0x00000009}, |
338 | { 0x00009b24, 0x0000000b }, | 335 | {0x00009b20, 0x0000000a}, |
339 | { 0x00009b28, 0x0000000c }, | 336 | {0x00009b24, 0x0000000b}, |
340 | { 0x00009b2c, 0x0000000d }, | 337 | {0x00009b28, 0x0000000c}, |
341 | { 0x00009b30, 0x00000010 }, | 338 | {0x00009b2c, 0x0000000d}, |
342 | { 0x00009b34, 0x00000011 }, | 339 | {0x00009b30, 0x00000010}, |
343 | { 0x00009b38, 0x00000012 }, | 340 | {0x00009b34, 0x00000011}, |
344 | { 0x00009b3c, 0x00000013 }, | 341 | {0x00009b38, 0x00000012}, |
345 | { 0x00009b40, 0x00000014 }, | 342 | {0x00009b3c, 0x00000013}, |
346 | { 0x00009b44, 0x00000015 }, | 343 | {0x00009b40, 0x00000014}, |
347 | { 0x00009b48, 0x00000018 }, | 344 | {0x00009b44, 0x00000015}, |
348 | { 0x00009b4c, 0x00000019 }, | 345 | {0x00009b48, 0x00000018}, |
349 | { 0x00009b50, 0x0000001a }, | 346 | {0x00009b4c, 0x00000019}, |
350 | { 0x00009b54, 0x0000001b }, | 347 | {0x00009b50, 0x0000001a}, |
351 | { 0x00009b58, 0x0000001c }, | 348 | {0x00009b54, 0x0000001b}, |
352 | { 0x00009b5c, 0x0000001d }, | 349 | {0x00009b58, 0x0000001c}, |
353 | { 0x00009b60, 0x00000020 }, | 350 | {0x00009b5c, 0x0000001d}, |
354 | { 0x00009b64, 0x00000021 }, | 351 | {0x00009b60, 0x00000020}, |
355 | { 0x00009b68, 0x00000022 }, | 352 | {0x00009b64, 0x00000021}, |
356 | { 0x00009b6c, 0x00000023 }, | 353 | {0x00009b68, 0x00000022}, |
357 | { 0x00009b70, 0x00000024 }, | 354 | {0x00009b6c, 0x00000023}, |
358 | { 0x00009b74, 0x00000025 }, | 355 | {0x00009b70, 0x00000024}, |
359 | { 0x00009b78, 0x00000028 }, | 356 | {0x00009b74, 0x00000025}, |
360 | { 0x00009b7c, 0x00000029 }, | 357 | {0x00009b78, 0x00000028}, |
361 | { 0x00009b80, 0x0000002a }, | 358 | {0x00009b7c, 0x00000029}, |
362 | { 0x00009b84, 0x0000002b }, | 359 | {0x00009b80, 0x0000002a}, |
363 | { 0x00009b88, 0x0000002c }, | 360 | {0x00009b84, 0x0000002b}, |
364 | { 0x00009b8c, 0x0000002d }, | 361 | {0x00009b88, 0x0000002c}, |
365 | { 0x00009b90, 0x00000030 }, | 362 | {0x00009b8c, 0x0000002d}, |
366 | { 0x00009b94, 0x00000031 }, | 363 | {0x00009b90, 0x00000030}, |
367 | { 0x00009b98, 0x00000032 }, | 364 | {0x00009b94, 0x00000031}, |
368 | { 0x00009b9c, 0x00000033 }, | 365 | {0x00009b98, 0x00000032}, |
369 | { 0x00009ba0, 0x00000034 }, | 366 | {0x00009b9c, 0x00000033}, |
370 | { 0x00009ba4, 0x00000035 }, | 367 | {0x00009ba0, 0x00000034}, |
371 | { 0x00009ba8, 0x00000035 }, | 368 | {0x00009ba4, 0x00000035}, |
372 | { 0x00009bac, 0x00000035 }, | 369 | {0x00009ba8, 0x00000035}, |
373 | { 0x00009bb0, 0x00000035 }, | 370 | {0x00009bac, 0x00000035}, |
374 | { 0x00009bb4, 0x00000035 }, | 371 | {0x00009bb0, 0x00000035}, |
375 | { 0x00009bb8, 0x00000035 }, | 372 | {0x00009bb4, 0x00000035}, |
376 | { 0x00009bbc, 0x00000035 }, | 373 | {0x00009bb8, 0x00000035}, |
377 | { 0x00009bc0, 0x00000035 }, | 374 | {0x00009bbc, 0x00000035}, |
378 | { 0x00009bc4, 0x00000035 }, | 375 | {0x00009bc0, 0x00000035}, |
379 | { 0x00009bc8, 0x00000035 }, | 376 | {0x00009bc4, 0x00000035}, |
380 | { 0x00009bcc, 0x00000035 }, | 377 | {0x00009bc8, 0x00000035}, |
381 | { 0x00009bd0, 0x00000035 }, | 378 | {0x00009bcc, 0x00000035}, |
382 | { 0x00009bd4, 0x00000035 }, | 379 | {0x00009bd0, 0x00000035}, |
383 | { 0x00009bd8, 0x00000035 }, | 380 | {0x00009bd4, 0x00000035}, |
384 | { 0x00009bdc, 0x00000035 }, | 381 | {0x00009bd8, 0x00000035}, |
385 | { 0x00009be0, 0x00000035 }, | 382 | {0x00009bdc, 0x00000035}, |
386 | { 0x00009be4, 0x00000035 }, | 383 | {0x00009be0, 0x00000035}, |
387 | { 0x00009be8, 0x00000035 }, | 384 | {0x00009be4, 0x00000035}, |
388 | { 0x00009bec, 0x00000035 }, | 385 | {0x00009be8, 0x00000035}, |
389 | { 0x00009bf0, 0x00000035 }, | 386 | {0x00009bec, 0x00000035}, |
390 | { 0x00009bf4, 0x00000035 }, | 387 | {0x00009bf0, 0x00000035}, |
391 | { 0x00009bf8, 0x00000010 }, | 388 | {0x00009bf4, 0x00000035}, |
392 | { 0x00009bfc, 0x0000001a }, | 389 | {0x00009bf8, 0x00000010}, |
393 | { 0x0000a210, 0x40806333 }, | 390 | {0x00009bfc, 0x0000001a}, |
394 | { 0x0000a214, 0x00106c10 }, | 391 | {0x0000a210, 0x40806333}, |
395 | { 0x0000a218, 0x009c4060 }, | 392 | {0x0000a214, 0x00106c10}, |
396 | { 0x0000a220, 0x018830c6 }, | 393 | {0x0000a218, 0x009c4060}, |
397 | { 0x0000a224, 0x00000400 }, | 394 | {0x0000a220, 0x018830c6}, |
398 | { 0x0000a228, 0x00000bb5 }, | 395 | {0x0000a224, 0x00000400}, |
399 | { 0x0000a22c, 0x00000011 }, | 396 | {0x0000a228, 0x00000bb5}, |
400 | { 0x0000a234, 0x20202020 }, | 397 | {0x0000a22c, 0x00000011}, |
401 | { 0x0000a238, 0x20202020 }, | 398 | {0x0000a234, 0x20202020}, |
402 | { 0x0000a23c, 0x13c889af }, | 399 | {0x0000a238, 0x20202020}, |
403 | { 0x0000a240, 0x38490a20 }, | 400 | {0x0000a23c, 0x13c889af}, |
404 | { 0x0000a244, 0x00007bb6 }, | 401 | {0x0000a240, 0x38490a20}, |
405 | { 0x0000a248, 0x0fff3ffc }, | 402 | {0x0000a244, 0x00007bb6}, |
406 | { 0x0000a24c, 0x00000001 }, | 403 | {0x0000a248, 0x0fff3ffc}, |
407 | { 0x0000a250, 0x0000a000 }, | 404 | {0x0000a24c, 0x00000001}, |
408 | { 0x0000a254, 0x00000000 }, | 405 | {0x0000a250, 0x0000a000}, |
409 | { 0x0000a258, 0x0cc75380 }, | 406 | {0x0000a254, 0x00000000}, |
410 | { 0x0000a25c, 0x0f0f0f01 }, | 407 | {0x0000a258, 0x0cc75380}, |
411 | { 0x0000a260, 0xdfa91f01 }, | 408 | {0x0000a25c, 0x0f0f0f01}, |
412 | { 0x0000a268, 0x00000000 }, | 409 | {0x0000a260, 0xdfa91f01}, |
413 | { 0x0000a26c, 0x0e79e5c6 }, | 410 | {0x0000a268, 0x00000000}, |
414 | { 0x0000b26c, 0x0e79e5c6 }, | 411 | {0x0000a26c, 0x0e79e5c6}, |
415 | { 0x0000c26c, 0x0e79e5c6 }, | 412 | {0x0000b26c, 0x0e79e5c6}, |
416 | { 0x0000d270, 0x00820820 }, | 413 | {0x0000c26c, 0x0e79e5c6}, |
417 | { 0x0000a278, 0x1ce739ce }, | 414 | {0x0000d270, 0x00820820}, |
418 | { 0x0000a27c, 0x051701ce }, | 415 | {0x0000a278, 0x1ce739ce}, |
419 | { 0x0000a338, 0x00000000 }, | 416 | {0x0000a27c, 0x051701ce}, |
420 | { 0x0000a33c, 0x00000000 }, | 417 | {0x0000a338, 0x00000000}, |
421 | { 0x0000a340, 0x00000000 }, | 418 | {0x0000a33c, 0x00000000}, |
422 | { 0x0000a344, 0x00000000 }, | 419 | {0x0000a340, 0x00000000}, |
423 | { 0x0000a348, 0x3fffffff }, | 420 | {0x0000a344, 0x00000000}, |
424 | { 0x0000a34c, 0x3fffffff }, | 421 | {0x0000a348, 0x3fffffff}, |
425 | { 0x0000a350, 0x3fffffff }, | 422 | {0x0000a34c, 0x3fffffff}, |
426 | { 0x0000a354, 0x0003ffff }, | 423 | {0x0000a350, 0x3fffffff}, |
427 | { 0x0000a358, 0x79a8aa1f }, | 424 | {0x0000a354, 0x0003ffff}, |
428 | { 0x0000d35c, 0x07ffffef }, | 425 | {0x0000a358, 0x79a8aa1f}, |
429 | { 0x0000d360, 0x0fffffe7 }, | 426 | {0x0000d35c, 0x07ffffef}, |
430 | { 0x0000d364, 0x17ffffe5 }, | 427 | {0x0000d360, 0x0fffffe7}, |
431 | { 0x0000d368, 0x1fffffe4 }, | 428 | {0x0000d364, 0x17ffffe5}, |
432 | { 0x0000d36c, 0x37ffffe3 }, | 429 | {0x0000d368, 0x1fffffe4}, |
433 | { 0x0000d370, 0x3fffffe3 }, | 430 | {0x0000d36c, 0x37ffffe3}, |
434 | { 0x0000d374, 0x57ffffe3 }, | 431 | {0x0000d370, 0x3fffffe3}, |
435 | { 0x0000d378, 0x5fffffe2 }, | 432 | {0x0000d374, 0x57ffffe3}, |
436 | { 0x0000d37c, 0x7fffffe2 }, | 433 | {0x0000d378, 0x5fffffe2}, |
437 | { 0x0000d380, 0x7f3c7bba }, | 434 | {0x0000d37c, 0x7fffffe2}, |
438 | { 0x0000d384, 0xf3307ff0 }, | 435 | {0x0000d380, 0x7f3c7bba}, |
439 | { 0x0000a388, 0x08000000 }, | 436 | {0x0000d384, 0xf3307ff0}, |
440 | { 0x0000a38c, 0x20202020 }, | 437 | {0x0000a388, 0x08000000}, |
441 | { 0x0000a390, 0x20202020 }, | 438 | {0x0000a38c, 0x20202020}, |
442 | { 0x0000a394, 0x1ce739ce }, | 439 | {0x0000a390, 0x20202020}, |
443 | { 0x0000a398, 0x000001ce }, | 440 | {0x0000a394, 0x1ce739ce}, |
444 | { 0x0000a39c, 0x00000001 }, | 441 | {0x0000a398, 0x000001ce}, |
445 | { 0x0000a3a0, 0x00000000 }, | 442 | {0x0000a39c, 0x00000001}, |
446 | { 0x0000a3a4, 0x00000000 }, | 443 | {0x0000a3a0, 0x00000000}, |
447 | { 0x0000a3a8, 0x00000000 }, | 444 | {0x0000a3a4, 0x00000000}, |
448 | { 0x0000a3ac, 0x00000000 }, | 445 | {0x0000a3a8, 0x00000000}, |
449 | { 0x0000a3b0, 0x00000000 }, | 446 | {0x0000a3ac, 0x00000000}, |
450 | { 0x0000a3b4, 0x00000000 }, | 447 | {0x0000a3b0, 0x00000000}, |
451 | { 0x0000a3b8, 0x00000000 }, | 448 | {0x0000a3b4, 0x00000000}, |
452 | { 0x0000a3bc, 0x00000000 }, | 449 | {0x0000a3b8, 0x00000000}, |
453 | { 0x0000a3c0, 0x00000000 }, | 450 | {0x0000a3bc, 0x00000000}, |
454 | { 0x0000a3c4, 0x00000000 }, | 451 | {0x0000a3c0, 0x00000000}, |
455 | { 0x0000a3c8, 0x00000246 }, | 452 | {0x0000a3c4, 0x00000000}, |
456 | { 0x0000a3cc, 0x20202020 }, | 453 | {0x0000a3c8, 0x00000246}, |
457 | { 0x0000a3d0, 0x20202020 }, | 454 | {0x0000a3cc, 0x20202020}, |
458 | { 0x0000a3d4, 0x20202020 }, | 455 | {0x0000a3d0, 0x20202020}, |
459 | { 0x0000a3dc, 0x1ce739ce }, | 456 | {0x0000a3d4, 0x20202020}, |
460 | { 0x0000a3e0, 0x000001ce }, | 457 | {0x0000a3dc, 0x1ce739ce}, |
458 | {0x0000a3e0, 0x000001ce}, | ||
461 | }; | 459 | }; |
462 | 460 | ||
463 | static const u32 ar5416Bank0[][2] = { | 461 | static const u32 ar5416Bank0[][2] = { |
464 | { 0x000098b0, 0x1e5795e5 }, | 462 | /* Addr allmodes */ |
465 | { 0x000098e0, 0x02008020 }, | 463 | {0x000098b0, 0x1e5795e5}, |
464 | {0x000098e0, 0x02008020}, | ||
466 | }; | 465 | }; |
467 | 466 | ||
468 | static const u32 ar5416BB_RfGain[][3] = { | 467 | static const u32 ar5416BB_RfGain[][3] = { |
469 | { 0x00009a00, 0x00000000, 0x00000000 }, | 468 | /* Addr 5G_HT20 5G_HT40 */ |
470 | { 0x00009a04, 0x00000040, 0x00000040 }, | 469 | {0x00009a00, 0x00000000, 0x00000000}, |
471 | { 0x00009a08, 0x00000080, 0x00000080 }, | 470 | {0x00009a04, 0x00000040, 0x00000040}, |
472 | { 0x00009a0c, 0x000001a1, 0x00000141 }, | 471 | {0x00009a08, 0x00000080, 0x00000080}, |
473 | { 0x00009a10, 0x000001e1, 0x00000181 }, | 472 | {0x00009a0c, 0x000001a1, 0x00000141}, |
474 | { 0x00009a14, 0x00000021, 0x000001c1 }, | 473 | {0x00009a10, 0x000001e1, 0x00000181}, |
475 | { 0x00009a18, 0x00000061, 0x00000001 }, | 474 | {0x00009a14, 0x00000021, 0x000001c1}, |
476 | { 0x00009a1c, 0x00000168, 0x00000041 }, | 475 | {0x00009a18, 0x00000061, 0x00000001}, |
477 | { 0x00009a20, 0x000001a8, 0x000001a8 }, | 476 | {0x00009a1c, 0x00000168, 0x00000041}, |
478 | { 0x00009a24, 0x000001e8, 0x000001e8 }, | 477 | {0x00009a20, 0x000001a8, 0x000001a8}, |
479 | { 0x00009a28, 0x00000028, 0x00000028 }, | 478 | {0x00009a24, 0x000001e8, 0x000001e8}, |
480 | { 0x00009a2c, 0x00000068, 0x00000068 }, | 479 | {0x00009a28, 0x00000028, 0x00000028}, |
481 | { 0x00009a30, 0x00000189, 0x000000a8 }, | 480 | {0x00009a2c, 0x00000068, 0x00000068}, |
482 | { 0x00009a34, 0x000001c9, 0x00000169 }, | 481 | {0x00009a30, 0x00000189, 0x000000a8}, |
483 | { 0x00009a38, 0x00000009, 0x000001a9 }, | 482 | {0x00009a34, 0x000001c9, 0x00000169}, |
484 | { 0x00009a3c, 0x00000049, 0x000001e9 }, | 483 | {0x00009a38, 0x00000009, 0x000001a9}, |
485 | { 0x00009a40, 0x00000089, 0x00000029 }, | 484 | {0x00009a3c, 0x00000049, 0x000001e9}, |
486 | { 0x00009a44, 0x00000170, 0x00000069 }, | 485 | {0x00009a40, 0x00000089, 0x00000029}, |
487 | { 0x00009a48, 0x000001b0, 0x00000190 }, | 486 | {0x00009a44, 0x00000170, 0x00000069}, |
488 | { 0x00009a4c, 0x000001f0, 0x000001d0 }, | 487 | {0x00009a48, 0x000001b0, 0x00000190}, |
489 | { 0x00009a50, 0x00000030, 0x00000010 }, | 488 | {0x00009a4c, 0x000001f0, 0x000001d0}, |
490 | { 0x00009a54, 0x00000070, 0x00000050 }, | 489 | {0x00009a50, 0x00000030, 0x00000010}, |
491 | { 0x00009a58, 0x00000191, 0x00000090 }, | 490 | {0x00009a54, 0x00000070, 0x00000050}, |
492 | { 0x00009a5c, 0x000001d1, 0x00000151 }, | 491 | {0x00009a58, 0x00000191, 0x00000090}, |
493 | { 0x00009a60, 0x00000011, 0x00000191 }, | 492 | {0x00009a5c, 0x000001d1, 0x00000151}, |
494 | { 0x00009a64, 0x00000051, 0x000001d1 }, | 493 | {0x00009a60, 0x00000011, 0x00000191}, |
495 | { 0x00009a68, 0x00000091, 0x00000011 }, | 494 | {0x00009a64, 0x00000051, 0x000001d1}, |
496 | { 0x00009a6c, 0x000001b8, 0x00000051 }, | 495 | {0x00009a68, 0x00000091, 0x00000011}, |
497 | { 0x00009a70, 0x000001f8, 0x00000198 }, | 496 | {0x00009a6c, 0x000001b8, 0x00000051}, |
498 | { 0x00009a74, 0x00000038, 0x000001d8 }, | 497 | {0x00009a70, 0x000001f8, 0x00000198}, |
499 | { 0x00009a78, 0x00000078, 0x00000018 }, | 498 | {0x00009a74, 0x00000038, 0x000001d8}, |
500 | { 0x00009a7c, 0x00000199, 0x00000058 }, | 499 | {0x00009a78, 0x00000078, 0x00000018}, |
501 | { 0x00009a80, 0x000001d9, 0x00000098 }, | 500 | {0x00009a7c, 0x00000199, 0x00000058}, |
502 | { 0x00009a84, 0x00000019, 0x00000159 }, | 501 | {0x00009a80, 0x000001d9, 0x00000098}, |
503 | { 0x00009a88, 0x00000059, 0x00000199 }, | 502 | {0x00009a84, 0x00000019, 0x00000159}, |
504 | { 0x00009a8c, 0x00000099, 0x000001d9 }, | 503 | {0x00009a88, 0x00000059, 0x00000199}, |
505 | { 0x00009a90, 0x000000d9, 0x00000019 }, | 504 | {0x00009a8c, 0x00000099, 0x000001d9}, |
506 | { 0x00009a94, 0x000000f9, 0x00000059 }, | 505 | {0x00009a90, 0x000000d9, 0x00000019}, |
507 | { 0x00009a98, 0x000000f9, 0x00000099 }, | 506 | {0x00009a94, 0x000000f9, 0x00000059}, |
508 | { 0x00009a9c, 0x000000f9, 0x000000d9 }, | 507 | {0x00009a98, 0x000000f9, 0x00000099}, |
509 | { 0x00009aa0, 0x000000f9, 0x000000f9 }, | 508 | {0x00009a9c, 0x000000f9, 0x000000d9}, |
510 | { 0x00009aa4, 0x000000f9, 0x000000f9 }, | 509 | {0x00009aa0, 0x000000f9, 0x000000f9}, |
511 | { 0x00009aa8, 0x000000f9, 0x000000f9 }, | 510 | {0x00009aa4, 0x000000f9, 0x000000f9}, |
512 | { 0x00009aac, 0x000000f9, 0x000000f9 }, | 511 | {0x00009aa8, 0x000000f9, 0x000000f9}, |
513 | { 0x00009ab0, 0x000000f9, 0x000000f9 }, | 512 | {0x00009aac, 0x000000f9, 0x000000f9}, |
514 | { 0x00009ab4, 0x000000f9, 0x000000f9 }, | 513 | {0x00009ab0, 0x000000f9, 0x000000f9}, |
515 | { 0x00009ab8, 0x000000f9, 0x000000f9 }, | 514 | {0x00009ab4, 0x000000f9, 0x000000f9}, |
516 | { 0x00009abc, 0x000000f9, 0x000000f9 }, | 515 | {0x00009ab8, 0x000000f9, 0x000000f9}, |
517 | { 0x00009ac0, 0x000000f9, 0x000000f9 }, | 516 | {0x00009abc, 0x000000f9, 0x000000f9}, |
518 | { 0x00009ac4, 0x000000f9, 0x000000f9 }, | 517 | {0x00009ac0, 0x000000f9, 0x000000f9}, |
519 | { 0x00009ac8, 0x000000f9, 0x000000f9 }, | 518 | {0x00009ac4, 0x000000f9, 0x000000f9}, |
520 | { 0x00009acc, 0x000000f9, 0x000000f9 }, | 519 | {0x00009ac8, 0x000000f9, 0x000000f9}, |
521 | { 0x00009ad0, 0x000000f9, 0x000000f9 }, | 520 | {0x00009acc, 0x000000f9, 0x000000f9}, |
522 | { 0x00009ad4, 0x000000f9, 0x000000f9 }, | 521 | {0x00009ad0, 0x000000f9, 0x000000f9}, |
523 | { 0x00009ad8, 0x000000f9, 0x000000f9 }, | 522 | {0x00009ad4, 0x000000f9, 0x000000f9}, |
524 | { 0x00009adc, 0x000000f9, 0x000000f9 }, | 523 | {0x00009ad8, 0x000000f9, 0x000000f9}, |
525 | { 0x00009ae0, 0x000000f9, 0x000000f9 }, | 524 | {0x00009adc, 0x000000f9, 0x000000f9}, |
526 | { 0x00009ae4, 0x000000f9, 0x000000f9 }, | 525 | {0x00009ae0, 0x000000f9, 0x000000f9}, |
527 | { 0x00009ae8, 0x000000f9, 0x000000f9 }, | 526 | {0x00009ae4, 0x000000f9, 0x000000f9}, |
528 | { 0x00009aec, 0x000000f9, 0x000000f9 }, | 527 | {0x00009ae8, 0x000000f9, 0x000000f9}, |
529 | { 0x00009af0, 0x000000f9, 0x000000f9 }, | 528 | {0x00009aec, 0x000000f9, 0x000000f9}, |
530 | { 0x00009af4, 0x000000f9, 0x000000f9 }, | 529 | {0x00009af0, 0x000000f9, 0x000000f9}, |
531 | { 0x00009af8, 0x000000f9, 0x000000f9 }, | 530 | {0x00009af4, 0x000000f9, 0x000000f9}, |
532 | { 0x00009afc, 0x000000f9, 0x000000f9 }, | 531 | {0x00009af8, 0x000000f9, 0x000000f9}, |
532 | {0x00009afc, 0x000000f9, 0x000000f9}, | ||
533 | }; | 533 | }; |
534 | 534 | ||
535 | static const u32 ar5416Bank1[][2] = { | 535 | static const u32 ar5416Bank1[][2] = { |
536 | { 0x000098b0, 0x02108421 }, | 536 | /* Addr allmodes */ |
537 | { 0x000098ec, 0x00000008 }, | 537 | {0x000098b0, 0x02108421}, |
538 | {0x000098ec, 0x00000008}, | ||
538 | }; | 539 | }; |
539 | 540 | ||
540 | static const u32 ar5416Bank2[][2] = { | 541 | static const u32 ar5416Bank2[][2] = { |
541 | { 0x000098b0, 0x0e73ff17 }, | 542 | /* Addr allmodes */ |
542 | { 0x000098e0, 0x00000420 }, | 543 | {0x000098b0, 0x0e73ff17}, |
544 | {0x000098e0, 0x00000420}, | ||
543 | }; | 545 | }; |
544 | 546 | ||
545 | static const u32 ar5416Bank3[][3] = { | 547 | static const u32 ar5416Bank3[][3] = { |
546 | { 0x000098f0, 0x01400018, 0x01c00018 }, | 548 | /* Addr 5G_HT20 5G_HT40 */ |
549 | {0x000098f0, 0x01400018, 0x01c00018}, | ||
547 | }; | 550 | }; |
548 | 551 | ||
549 | static const u32 ar5416Bank6[][3] = { | 552 | static const u32 ar5416Bank6[][3] = { |
550 | 553 | /* Addr 5G_HT20 5G_HT40 */ | |
551 | { 0x0000989c, 0x00000000, 0x00000000 }, | 554 | {0x0000989c, 0x00000000, 0x00000000}, |
552 | { 0x0000989c, 0x00000000, 0x00000000 }, | 555 | {0x0000989c, 0x00000000, 0x00000000}, |
553 | { 0x0000989c, 0x00000000, 0x00000000 }, | 556 | {0x0000989c, 0x00000000, 0x00000000}, |
554 | { 0x0000989c, 0x00e00000, 0x00e00000 }, | 557 | {0x0000989c, 0x00e00000, 0x00e00000}, |
555 | { 0x0000989c, 0x005e0000, 0x005e0000 }, | 558 | {0x0000989c, 0x005e0000, 0x005e0000}, |
556 | { 0x0000989c, 0x00120000, 0x00120000 }, | 559 | {0x0000989c, 0x00120000, 0x00120000}, |
557 | { 0x0000989c, 0x00620000, 0x00620000 }, | 560 | {0x0000989c, 0x00620000, 0x00620000}, |
558 | { 0x0000989c, 0x00020000, 0x00020000 }, | 561 | {0x0000989c, 0x00020000, 0x00020000}, |
559 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 562 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
560 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 563 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
561 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 564 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
562 | { 0x0000989c, 0x40ff0000, 0x40ff0000 }, | 565 | {0x0000989c, 0x40ff0000, 0x40ff0000}, |
563 | { 0x0000989c, 0x005f0000, 0x005f0000 }, | 566 | {0x0000989c, 0x005f0000, 0x005f0000}, |
564 | { 0x0000989c, 0x00870000, 0x00870000 }, | 567 | {0x0000989c, 0x00870000, 0x00870000}, |
565 | { 0x0000989c, 0x00f90000, 0x00f90000 }, | 568 | {0x0000989c, 0x00f90000, 0x00f90000}, |
566 | { 0x0000989c, 0x007b0000, 0x007b0000 }, | 569 | {0x0000989c, 0x007b0000, 0x007b0000}, |
567 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 570 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
568 | { 0x0000989c, 0x00f50000, 0x00f50000 }, | 571 | {0x0000989c, 0x00f50000, 0x00f50000}, |
569 | { 0x0000989c, 0x00dc0000, 0x00dc0000 }, | 572 | {0x0000989c, 0x00dc0000, 0x00dc0000}, |
570 | { 0x0000989c, 0x00110000, 0x00110000 }, | 573 | {0x0000989c, 0x00110000, 0x00110000}, |
571 | { 0x0000989c, 0x006100a8, 0x006100a8 }, | 574 | {0x0000989c, 0x006100a8, 0x006100a8}, |
572 | { 0x0000989c, 0x004210a2, 0x004210a2 }, | 575 | {0x0000989c, 0x004210a2, 0x004210a2}, |
573 | { 0x0000989c, 0x0014008f, 0x0014008f }, | 576 | {0x0000989c, 0x0014008f, 0x0014008f}, |
574 | { 0x0000989c, 0x00c40003, 0x00c40003 }, | 577 | {0x0000989c, 0x00c40003, 0x00c40003}, |
575 | { 0x0000989c, 0x003000f2, 0x003000f2 }, | 578 | {0x0000989c, 0x003000f2, 0x003000f2}, |
576 | { 0x0000989c, 0x00440016, 0x00440016 }, | 579 | {0x0000989c, 0x00440016, 0x00440016}, |
577 | { 0x0000989c, 0x00410040, 0x00410040 }, | 580 | {0x0000989c, 0x00410040, 0x00410040}, |
578 | { 0x0000989c, 0x0001805e, 0x0001805e }, | 581 | {0x0000989c, 0x0001805e, 0x0001805e}, |
579 | { 0x0000989c, 0x0000c0ab, 0x0000c0ab }, | 582 | {0x0000989c, 0x0000c0ab, 0x0000c0ab}, |
580 | { 0x0000989c, 0x000000f1, 0x000000f1 }, | 583 | {0x0000989c, 0x000000f1, 0x000000f1}, |
581 | { 0x0000989c, 0x00002081, 0x00002081 }, | 584 | {0x0000989c, 0x00002081, 0x00002081}, |
582 | { 0x0000989c, 0x000000d4, 0x000000d4 }, | 585 | {0x0000989c, 0x000000d4, 0x000000d4}, |
583 | { 0x000098d0, 0x0000000f, 0x0010000f }, | 586 | {0x000098d0, 0x0000000f, 0x0010000f}, |
584 | }; | 587 | }; |
585 | 588 | ||
586 | static const u32 ar5416Bank6TPC[][3] = { | 589 | static const u32 ar5416Bank6TPC[][3] = { |
587 | { 0x0000989c, 0x00000000, 0x00000000 }, | 590 | /* Addr 5G_HT20 5G_HT40 */ |
588 | { 0x0000989c, 0x00000000, 0x00000000 }, | 591 | {0x0000989c, 0x00000000, 0x00000000}, |
589 | { 0x0000989c, 0x00000000, 0x00000000 }, | 592 | {0x0000989c, 0x00000000, 0x00000000}, |
590 | { 0x0000989c, 0x00e00000, 0x00e00000 }, | 593 | {0x0000989c, 0x00000000, 0x00000000}, |
591 | { 0x0000989c, 0x005e0000, 0x005e0000 }, | 594 | {0x0000989c, 0x00e00000, 0x00e00000}, |
592 | { 0x0000989c, 0x00120000, 0x00120000 }, | 595 | {0x0000989c, 0x005e0000, 0x005e0000}, |
593 | { 0x0000989c, 0x00620000, 0x00620000 }, | 596 | {0x0000989c, 0x00120000, 0x00120000}, |
594 | { 0x0000989c, 0x00020000, 0x00020000 }, | 597 | {0x0000989c, 0x00620000, 0x00620000}, |
595 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 598 | {0x0000989c, 0x00020000, 0x00020000}, |
596 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 599 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
597 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 600 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
598 | { 0x0000989c, 0x40ff0000, 0x40ff0000 }, | 601 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
599 | { 0x0000989c, 0x005f0000, 0x005f0000 }, | 602 | {0x0000989c, 0x40ff0000, 0x40ff0000}, |
600 | { 0x0000989c, 0x00870000, 0x00870000 }, | 603 | {0x0000989c, 0x005f0000, 0x005f0000}, |
601 | { 0x0000989c, 0x00f90000, 0x00f90000 }, | 604 | {0x0000989c, 0x00870000, 0x00870000}, |
602 | { 0x0000989c, 0x007b0000, 0x007b0000 }, | 605 | {0x0000989c, 0x00f90000, 0x00f90000}, |
603 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 606 | {0x0000989c, 0x007b0000, 0x007b0000}, |
604 | { 0x0000989c, 0x00f50000, 0x00f50000 }, | 607 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
605 | { 0x0000989c, 0x00dc0000, 0x00dc0000 }, | 608 | {0x0000989c, 0x00f50000, 0x00f50000}, |
606 | { 0x0000989c, 0x00110000, 0x00110000 }, | 609 | {0x0000989c, 0x00dc0000, 0x00dc0000}, |
607 | { 0x0000989c, 0x006100a8, 0x006100a8 }, | 610 | {0x0000989c, 0x00110000, 0x00110000}, |
608 | { 0x0000989c, 0x00423022, 0x00423022 }, | 611 | {0x0000989c, 0x006100a8, 0x006100a8}, |
609 | { 0x0000989c, 0x201400df, 0x201400df }, | 612 | {0x0000989c, 0x00423022, 0x00423022}, |
610 | { 0x0000989c, 0x00c40002, 0x00c40002 }, | 613 | {0x0000989c, 0x201400df, 0x201400df}, |
611 | { 0x0000989c, 0x003000f2, 0x003000f2 }, | 614 | {0x0000989c, 0x00c40002, 0x00c40002}, |
612 | { 0x0000989c, 0x00440016, 0x00440016 }, | 615 | {0x0000989c, 0x003000f2, 0x003000f2}, |
613 | { 0x0000989c, 0x00410040, 0x00410040 }, | 616 | {0x0000989c, 0x00440016, 0x00440016}, |
614 | { 0x0000989c, 0x0001805e, 0x0001805e }, | 617 | {0x0000989c, 0x00410040, 0x00410040}, |
615 | { 0x0000989c, 0x0000c0ab, 0x0000c0ab }, | 618 | {0x0000989c, 0x0001805e, 0x0001805e}, |
616 | { 0x0000989c, 0x000000e1, 0x000000e1 }, | 619 | {0x0000989c, 0x0000c0ab, 0x0000c0ab}, |
617 | { 0x0000989c, 0x00007081, 0x00007081 }, | 620 | {0x0000989c, 0x000000e1, 0x000000e1}, |
618 | { 0x0000989c, 0x000000d4, 0x000000d4 }, | 621 | {0x0000989c, 0x00007081, 0x00007081}, |
619 | { 0x000098d0, 0x0000000f, 0x0010000f }, | 622 | {0x0000989c, 0x000000d4, 0x000000d4}, |
623 | {0x000098d0, 0x0000000f, 0x0010000f}, | ||
620 | }; | 624 | }; |
621 | 625 | ||
622 | static const u32 ar5416Bank7[][2] = { | 626 | static const u32 ar5416Bank7[][2] = { |
623 | { 0x0000989c, 0x00000500 }, | 627 | /* Addr allmodes */ |
624 | { 0x0000989c, 0x00000800 }, | 628 | {0x0000989c, 0x00000500}, |
625 | { 0x000098cc, 0x0000000e }, | 629 | {0x0000989c, 0x00000800}, |
630 | {0x000098cc, 0x0000000e}, | ||
626 | }; | 631 | }; |
627 | 632 | ||
628 | static const u32 ar5416Addac[][2] = { | 633 | static const u32 ar5416Addac[][2] = { |
629 | {0x0000989c, 0x00000000 }, | 634 | /* Addr allmodes */ |
630 | {0x0000989c, 0x00000003 }, | 635 | {0x0000989c, 0x00000000}, |
631 | {0x0000989c, 0x00000000 }, | 636 | {0x0000989c, 0x00000003}, |
632 | {0x0000989c, 0x0000000c }, | 637 | {0x0000989c, 0x00000000}, |
633 | {0x0000989c, 0x00000000 }, | 638 | {0x0000989c, 0x0000000c}, |
634 | {0x0000989c, 0x00000030 }, | 639 | {0x0000989c, 0x00000000}, |
635 | {0x0000989c, 0x00000000 }, | 640 | {0x0000989c, 0x00000030}, |
636 | {0x0000989c, 0x00000000 }, | 641 | {0x0000989c, 0x00000000}, |
637 | {0x0000989c, 0x00000000 }, | 642 | {0x0000989c, 0x00000000}, |
638 | {0x0000989c, 0x00000000 }, | 643 | {0x0000989c, 0x00000000}, |
639 | {0x0000989c, 0x00000000 }, | 644 | {0x0000989c, 0x00000000}, |
640 | {0x0000989c, 0x00000000 }, | 645 | {0x0000989c, 0x00000000}, |
641 | {0x0000989c, 0x00000000 }, | 646 | {0x0000989c, 0x00000000}, |
642 | {0x0000989c, 0x00000000 }, | 647 | {0x0000989c, 0x00000000}, |
643 | {0x0000989c, 0x00000000 }, | 648 | {0x0000989c, 0x00000000}, |
644 | {0x0000989c, 0x00000000 }, | 649 | {0x0000989c, 0x00000000}, |
645 | {0x0000989c, 0x00000000 }, | 650 | {0x0000989c, 0x00000000}, |
646 | {0x0000989c, 0x00000000 }, | 651 | {0x0000989c, 0x00000000}, |
647 | {0x0000989c, 0x00000060 }, | 652 | {0x0000989c, 0x00000000}, |
648 | {0x0000989c, 0x00000000 }, | 653 | {0x0000989c, 0x00000060}, |
649 | {0x0000989c, 0x00000000 }, | 654 | {0x0000989c, 0x00000000}, |
650 | {0x0000989c, 0x00000000 }, | 655 | {0x0000989c, 0x00000000}, |
651 | {0x0000989c, 0x00000000 }, | 656 | {0x0000989c, 0x00000000}, |
652 | {0x0000989c, 0x00000000 }, | 657 | {0x0000989c, 0x00000000}, |
653 | {0x0000989c, 0x00000000 }, | 658 | {0x0000989c, 0x00000000}, |
654 | {0x0000989c, 0x00000000 }, | 659 | {0x0000989c, 0x00000000}, |
655 | {0x0000989c, 0x00000000 }, | 660 | {0x0000989c, 0x00000000}, |
656 | {0x0000989c, 0x00000000 }, | 661 | {0x0000989c, 0x00000000}, |
657 | {0x0000989c, 0x00000000 }, | 662 | {0x0000989c, 0x00000000}, |
658 | {0x0000989c, 0x00000000 }, | 663 | {0x0000989c, 0x00000000}, |
659 | {0x0000989c, 0x00000000 }, | 664 | {0x0000989c, 0x00000000}, |
660 | {0x0000989c, 0x00000058 }, | 665 | {0x0000989c, 0x00000000}, |
661 | {0x0000989c, 0x00000000 }, | 666 | {0x0000989c, 0x00000058}, |
662 | {0x0000989c, 0x00000000 }, | 667 | {0x0000989c, 0x00000000}, |
663 | {0x0000989c, 0x00000000 }, | 668 | {0x0000989c, 0x00000000}, |
664 | {0x0000989c, 0x00000000 }, | 669 | {0x0000989c, 0x00000000}, |
665 | {0x000098cc, 0x00000000 }, | 670 | {0x0000989c, 0x00000000}, |
666 | }; | 671 | {0x000098cc, 0x00000000}, |
667 | |||
668 | static const u32 ar5416Modes_9100[][6] = { | ||
669 | { 0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0 }, | ||
670 | { 0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0 }, | ||
671 | { 0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180 }, | ||
672 | { 0x000010f0, 0x0000a000, 0x00014000, 0x00016000, 0x0000b000, 0x00014008 }, | ||
673 | { 0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00, 0x06e006e0 }, | ||
674 | { 0x0000801c, 0x128d93a7, 0x128d93cf, 0x12e013d7, 0x12e013ab, 0x098813cf }, | ||
675 | { 0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303 }, | ||
676 | { 0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200 }, | ||
677 | { 0x00009824, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }, | ||
678 | { 0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001 }, | ||
679 | { 0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }, | ||
680 | { 0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007 }, | ||
681 | { 0x00009844, 0x0372161e, 0x0372161e, 0x037216a0, 0x037216a0, 0x037216a0 }, | ||
682 | { 0x00009848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68 }, | ||
683 | { 0x0000a848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68 }, | ||
684 | { 0x0000b848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68 }, | ||
685 | { 0x00009850, 0x6d48b4e2, 0x6d48b4e2, 0x6d48b0e2, 0x6d48b0e2, 0x6d48b0e2 }, | ||
686 | { 0x00009858, 0x7ec82d2e, 0x7ec82d2e, 0x7ec86d2e, 0x7ec84d2e, 0x7ec82d2e }, | ||
687 | { 0x0000985c, 0x3139605e, 0x3139605e, 0x3139605e, 0x3139605e, 0x3139605e }, | ||
688 | { 0x00009860, 0x00048d18, 0x00048d18, 0x00048d20, 0x00048d20, 0x00048d18 }, | ||
689 | { 0x0000c864, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00 }, | ||
690 | { 0x00009868, 0x409a40d0, 0x409a40d0, 0x409a40d0, 0x409a40d0, 0x409a40d0 }, | ||
691 | { 0x0000986c, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081 }, | ||
692 | { 0x00009914, 0x000007d0, 0x000007d0, 0x00000898, 0x00000898, 0x000007d0 }, | ||
693 | { 0x00009918, 0x0000000a, 0x00000014, 0x00000016, 0x0000000b, 0x00000016 }, | ||
694 | { 0x00009924, 0xd00a8a07, 0xd00a8a07, 0xd00a8a11, 0xd00a8a0d, 0xd00a8a0d }, | ||
695 | { 0x00009940, 0x00754604, 0x00754604, 0xfff81204, 0xfff81204, 0xfff81204 }, | ||
696 | { 0x00009944, 0xdfb81020, 0xdfb81020, 0xdfb81020, 0xdfb81020, 0xdfb81020 }, | ||
697 | { 0x00009954, 0x5f3ca3de, 0x5f3ca3de, 0xe250a51e, 0xe250a51e, 0xe250a51e }, | ||
698 | { 0x00009958, 0x2108ecff, 0x2108ecff, 0x3388ffff, 0x3388ffff, 0x3388ffff }, | ||
699 | #ifdef TB243 | ||
700 | { 0x00009960, 0x00000900, 0x00000900, 0x00009b40, 0x00009b40, 0x00012d80 }, | ||
701 | { 0x0000a960, 0x00000900, 0x00000900, 0x00009b40, 0x00009b40, 0x00012d80 }, | ||
702 | { 0x0000b960, 0x00000900, 0x00000900, 0x00009b40, 0x00009b40, 0x00012d80 }, | ||
703 | { 0x00009964, 0x00000000, 0x00000000, 0x00002210, 0x00002210, 0x00001120 }, | ||
704 | #else | ||
705 | { 0x00009960, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0 }, | ||
706 | { 0x0000a960, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0 }, | ||
707 | { 0x0000b960, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0 }, | ||
708 | { 0x00009964, 0x00001120, 0x00001120, 0x00001120, 0x00001120, 0x00001120 }, | ||
709 | #endif | ||
710 | { 0x0000c9bc, 0x001a0600, 0x001a0600, 0x001a1000, 0x001a0c00, 0x001a0c00 }, | ||
711 | { 0x000099c0, 0x038919be, 0x038919be, 0x038919be, 0x038919be, 0x038919be }, | ||
712 | { 0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77 }, | ||
713 | { 0x000099c8, 0x60f65329, 0x60f65329, 0x60f65329, 0x60f65329, 0x60f65329 }, | ||
714 | { 0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8 }, | ||
715 | { 0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384 }, | ||
716 | { 0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | ||
717 | { 0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | ||
718 | { 0x0000a204, 0x00000880, 0x00000880, 0x00000880, 0x00000880, 0x00000880 }, | ||
719 | { 0x0000a208, 0xd6be4788, 0xd6be4788, 0xd03e4788, 0xd03e4788, 0xd03e4788 }, | ||
720 | { 0x0000a20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120 }, | ||
721 | { 0x0000b20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120 }, | ||
722 | { 0x0000c20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120 }, | ||
723 | { 0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a }, | ||
724 | { 0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000 }, | ||
725 | { 0x0000a274, 0x0a1a9caa, 0x0a1a9caa, 0x0a1a7caa, 0x0a1a7caa, 0x0a1a7caa }, | ||
726 | { 0x0000a300, 0x18010000, 0x18010000, 0x18010000, 0x18010000, 0x18010000 }, | ||
727 | { 0x0000a304, 0x30032602, 0x30032602, 0x2e032402, 0x2e032402, 0x2e032402 }, | ||
728 | { 0x0000a308, 0x48073e06, 0x48073e06, 0x4a0a3c06, 0x4a0a3c06, 0x4a0a3c06 }, | ||
729 | { 0x0000a30c, 0x560b4c0a, 0x560b4c0a, 0x621a540b, 0x621a540b, 0x621a540b }, | ||
730 | { 0x0000a310, 0x641a600f, 0x641a600f, 0x764f6c1b, 0x764f6c1b, 0x764f6c1b }, | ||
731 | { 0x0000a314, 0x7a4f6e1b, 0x7a4f6e1b, 0x845b7a5a, 0x845b7a5a, 0x845b7a5a }, | ||
732 | { 0x0000a318, 0x8c5b7e5a, 0x8c5b7e5a, 0x950f8ccf, 0x950f8ccf, 0x950f8ccf }, | ||
733 | { 0x0000a31c, 0x9d0f96cf, 0x9d0f96cf, 0xa5cf9b4f, 0xa5cf9b4f, 0xa5cf9b4f }, | ||
734 | { 0x0000a320, 0xb51fa69f, 0xb51fa69f, 0xbddfaf1f, 0xbddfaf1f, 0xbddfaf1f }, | ||
735 | { 0x0000a324, 0xcb3fbd07, 0xcb3fbcbf, 0xd1ffc93f, 0xd1ffc93f, 0xd1ffc93f }, | ||
736 | { 0x0000a328, 0x0000d7bf, 0x0000d7bf, 0x00000000, 0x00000000, 0x00000000 }, | ||
737 | { 0x0000a32c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | ||
738 | { 0x0000a330, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | ||
739 | { 0x0000a334, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | ||
740 | }; | 672 | }; |
741 | 673 | ||
742 | #endif /* INITVALS_AR5008_H */ | ||
diff --git a/drivers/net/wireless/ath/ath9k/ar5008_phy.c b/drivers/net/wireless/ath/ath9k/ar5008_phy.c index ee34a495b0be..4a910b78de52 100644 --- a/drivers/net/wireless/ath/ath9k/ar5008_phy.c +++ b/drivers/net/wireless/ath/ath9k/ar5008_phy.c | |||
@@ -1495,121 +1495,25 @@ static bool ar5008_hw_ani_control_new(struct ath_hw *ah, | |||
1495 | static void ar5008_hw_do_getnf(struct ath_hw *ah, | 1495 | static void ar5008_hw_do_getnf(struct ath_hw *ah, |
1496 | int16_t nfarray[NUM_NF_READINGS]) | 1496 | int16_t nfarray[NUM_NF_READINGS]) |
1497 | { | 1497 | { |
1498 | struct ath_common *common = ath9k_hw_common(ah); | ||
1499 | int16_t nf; | 1498 | int16_t nf; |
1500 | 1499 | ||
1501 | nf = MS(REG_READ(ah, AR_PHY_CCA), AR_PHY_MINCCA_PWR); | 1500 | nf = MS(REG_READ(ah, AR_PHY_CCA), AR_PHY_MINCCA_PWR); |
1502 | if (nf & 0x100) | 1501 | nfarray[0] = sign_extend(nf, 9); |
1503 | nf = 0 - ((nf ^ 0x1ff) + 1); | ||
1504 | ath_print(common, ATH_DBG_CALIBRATE, | ||
1505 | "NF calibrated [ctl] [chain 0] is %d\n", nf); | ||
1506 | nfarray[0] = nf; | ||
1507 | 1502 | ||
1508 | nf = MS(REG_READ(ah, AR_PHY_CH1_CCA), AR_PHY_CH1_MINCCA_PWR); | 1503 | nf = MS(REG_READ(ah, AR_PHY_CH1_CCA), AR_PHY_CH1_MINCCA_PWR); |
1509 | if (nf & 0x100) | 1504 | nfarray[1] = sign_extend(nf, 9); |
1510 | nf = 0 - ((nf ^ 0x1ff) + 1); | ||
1511 | ath_print(common, ATH_DBG_CALIBRATE, | ||
1512 | "NF calibrated [ctl] [chain 1] is %d\n", nf); | ||
1513 | nfarray[1] = nf; | ||
1514 | 1505 | ||
1515 | nf = MS(REG_READ(ah, AR_PHY_CH2_CCA), AR_PHY_CH2_MINCCA_PWR); | 1506 | nf = MS(REG_READ(ah, AR_PHY_CH2_CCA), AR_PHY_CH2_MINCCA_PWR); |
1516 | if (nf & 0x100) | 1507 | nfarray[2] = sign_extend(nf, 9); |
1517 | nf = 0 - ((nf ^ 0x1ff) + 1); | ||
1518 | ath_print(common, ATH_DBG_CALIBRATE, | ||
1519 | "NF calibrated [ctl] [chain 2] is %d\n", nf); | ||
1520 | nfarray[2] = nf; | ||
1521 | 1508 | ||
1522 | nf = MS(REG_READ(ah, AR_PHY_EXT_CCA), AR_PHY_EXT_MINCCA_PWR); | 1509 | nf = MS(REG_READ(ah, AR_PHY_EXT_CCA), AR_PHY_EXT_MINCCA_PWR); |
1523 | if (nf & 0x100) | 1510 | nfarray[3] = sign_extend(nf, 9); |
1524 | nf = 0 - ((nf ^ 0x1ff) + 1); | ||
1525 | ath_print(common, ATH_DBG_CALIBRATE, | ||
1526 | "NF calibrated [ext] [chain 0] is %d\n", nf); | ||
1527 | nfarray[3] = nf; | ||
1528 | 1511 | ||
1529 | nf = MS(REG_READ(ah, AR_PHY_CH1_EXT_CCA), AR_PHY_CH1_EXT_MINCCA_PWR); | 1512 | nf = MS(REG_READ(ah, AR_PHY_CH1_EXT_CCA), AR_PHY_CH1_EXT_MINCCA_PWR); |
1530 | if (nf & 0x100) | 1513 | nfarray[4] = sign_extend(nf, 9); |
1531 | nf = 0 - ((nf ^ 0x1ff) + 1); | ||
1532 | ath_print(common, ATH_DBG_CALIBRATE, | ||
1533 | "NF calibrated [ext] [chain 1] is %d\n", nf); | ||
1534 | nfarray[4] = nf; | ||
1535 | 1514 | ||
1536 | nf = MS(REG_READ(ah, AR_PHY_CH2_EXT_CCA), AR_PHY_CH2_EXT_MINCCA_PWR); | 1515 | nf = MS(REG_READ(ah, AR_PHY_CH2_EXT_CCA), AR_PHY_CH2_EXT_MINCCA_PWR); |
1537 | if (nf & 0x100) | 1516 | nfarray[5] = sign_extend(nf, 9); |
1538 | nf = 0 - ((nf ^ 0x1ff) + 1); | ||
1539 | ath_print(common, ATH_DBG_CALIBRATE, | ||
1540 | "NF calibrated [ext] [chain 2] is %d\n", nf); | ||
1541 | nfarray[5] = nf; | ||
1542 | } | ||
1543 | |||
1544 | static void ar5008_hw_loadnf(struct ath_hw *ah, struct ath9k_channel *chan) | ||
1545 | { | ||
1546 | struct ath9k_nfcal_hist *h; | ||
1547 | int i, j; | ||
1548 | int32_t val; | ||
1549 | const u32 ar5416_cca_regs[6] = { | ||
1550 | AR_PHY_CCA, | ||
1551 | AR_PHY_CH1_CCA, | ||
1552 | AR_PHY_CH2_CCA, | ||
1553 | AR_PHY_EXT_CCA, | ||
1554 | AR_PHY_CH1_EXT_CCA, | ||
1555 | AR_PHY_CH2_EXT_CCA | ||
1556 | }; | ||
1557 | u8 chainmask, rx_chain_status; | ||
1558 | |||
1559 | rx_chain_status = REG_READ(ah, AR_PHY_RX_CHAINMASK); | ||
1560 | if (AR_SREV_9285(ah) || AR_SREV_9271(ah)) | ||
1561 | chainmask = 0x9; | ||
1562 | else if (AR_SREV_9280(ah) || AR_SREV_9287(ah)) { | ||
1563 | if ((rx_chain_status & 0x2) || (rx_chain_status & 0x4)) | ||
1564 | chainmask = 0x1B; | ||
1565 | else | ||
1566 | chainmask = 0x09; | ||
1567 | } else { | ||
1568 | if (rx_chain_status & 0x4) | ||
1569 | chainmask = 0x3F; | ||
1570 | else if (rx_chain_status & 0x2) | ||
1571 | chainmask = 0x1B; | ||
1572 | else | ||
1573 | chainmask = 0x09; | ||
1574 | } | ||
1575 | |||
1576 | h = ah->nfCalHist; | ||
1577 | |||
1578 | for (i = 0; i < NUM_NF_READINGS; i++) { | ||
1579 | if (chainmask & (1 << i)) { | ||
1580 | val = REG_READ(ah, ar5416_cca_regs[i]); | ||
1581 | val &= 0xFFFFFE00; | ||
1582 | val |= (((u32) (h[i].privNF) << 1) & 0x1ff); | ||
1583 | REG_WRITE(ah, ar5416_cca_regs[i], val); | ||
1584 | } | ||
1585 | } | ||
1586 | |||
1587 | REG_CLR_BIT(ah, AR_PHY_AGC_CONTROL, | ||
1588 | AR_PHY_AGC_CONTROL_ENABLE_NF); | ||
1589 | REG_CLR_BIT(ah, AR_PHY_AGC_CONTROL, | ||
1590 | AR_PHY_AGC_CONTROL_NO_UPDATE_NF); | ||
1591 | REG_SET_BIT(ah, AR_PHY_AGC_CONTROL, AR_PHY_AGC_CONTROL_NF); | ||
1592 | |||
1593 | for (j = 0; j < 5; j++) { | ||
1594 | if ((REG_READ(ah, AR_PHY_AGC_CONTROL) & | ||
1595 | AR_PHY_AGC_CONTROL_NF) == 0) | ||
1596 | break; | ||
1597 | udelay(50); | ||
1598 | } | ||
1599 | |||
1600 | ENABLE_REGWRITE_BUFFER(ah); | ||
1601 | |||
1602 | for (i = 0; i < NUM_NF_READINGS; i++) { | ||
1603 | if (chainmask & (1 << i)) { | ||
1604 | val = REG_READ(ah, ar5416_cca_regs[i]); | ||
1605 | val &= 0xFFFFFE00; | ||
1606 | val |= (((u32) (-50) << 1) & 0x1ff); | ||
1607 | REG_WRITE(ah, ar5416_cca_regs[i], val); | ||
1608 | } | ||
1609 | } | ||
1610 | |||
1611 | REGWRITE_BUFFER_FLUSH(ah); | ||
1612 | DISABLE_REGWRITE_BUFFER(ah); | ||
1613 | } | 1517 | } |
1614 | 1518 | ||
1615 | /* | 1519 | /* |
@@ -1676,10 +1580,27 @@ static void ar5008_hw_ani_cache_ini_regs(struct ath_hw *ah) | |||
1676 | aniState->cycleCount = 0; | 1580 | aniState->cycleCount = 0; |
1677 | } | 1581 | } |
1678 | 1582 | ||
1583 | static void ar5008_hw_set_nf_limits(struct ath_hw *ah) | ||
1584 | { | ||
1585 | ah->nf_2g.max = AR_PHY_CCA_MAX_GOOD_VAL_5416_2GHZ; | ||
1586 | ah->nf_2g.min = AR_PHY_CCA_MIN_GOOD_VAL_5416_2GHZ; | ||
1587 | ah->nf_2g.nominal = AR_PHY_CCA_NOM_VAL_5416_2GHZ; | ||
1588 | ah->nf_5g.max = AR_PHY_CCA_MAX_GOOD_VAL_5416_5GHZ; | ||
1589 | ah->nf_5g.min = AR_PHY_CCA_MIN_GOOD_VAL_5416_5GHZ; | ||
1590 | ah->nf_5g.nominal = AR_PHY_CCA_NOM_VAL_5416_5GHZ; | ||
1591 | } | ||
1679 | 1592 | ||
1680 | void ar5008_hw_attach_phy_ops(struct ath_hw *ah) | 1593 | void ar5008_hw_attach_phy_ops(struct ath_hw *ah) |
1681 | { | 1594 | { |
1682 | struct ath_hw_private_ops *priv_ops = ath9k_hw_private_ops(ah); | 1595 | struct ath_hw_private_ops *priv_ops = ath9k_hw_private_ops(ah); |
1596 | const u32 ar5416_cca_regs[6] = { | ||
1597 | AR_PHY_CCA, | ||
1598 | AR_PHY_CH1_CCA, | ||
1599 | AR_PHY_CH2_CCA, | ||
1600 | AR_PHY_EXT_CCA, | ||
1601 | AR_PHY_CH1_EXT_CCA, | ||
1602 | AR_PHY_CH2_EXT_CCA | ||
1603 | }; | ||
1683 | 1604 | ||
1684 | priv_ops->rf_set_freq = ar5008_hw_set_channel; | 1605 | priv_ops->rf_set_freq = ar5008_hw_set_channel; |
1685 | priv_ops->spur_mitigate_freq = ar5008_hw_spur_mitigate; | 1606 | priv_ops->spur_mitigate_freq = ar5008_hw_spur_mitigate; |
@@ -1699,7 +1620,6 @@ void ar5008_hw_attach_phy_ops(struct ath_hw *ah) | |||
1699 | priv_ops->restore_chainmask = ar5008_restore_chainmask; | 1620 | priv_ops->restore_chainmask = ar5008_restore_chainmask; |
1700 | priv_ops->set_diversity = ar5008_set_diversity; | 1621 | priv_ops->set_diversity = ar5008_set_diversity; |
1701 | priv_ops->do_getnf = ar5008_hw_do_getnf; | 1622 | priv_ops->do_getnf = ar5008_hw_do_getnf; |
1702 | priv_ops->loadnf = ar5008_hw_loadnf; | ||
1703 | 1623 | ||
1704 | if (modparam_force_new_ani) { | 1624 | if (modparam_force_new_ani) { |
1705 | priv_ops->ani_control = ar5008_hw_ani_control_new; | 1625 | priv_ops->ani_control = ar5008_hw_ani_control_new; |
@@ -1713,4 +1633,7 @@ void ar5008_hw_attach_phy_ops(struct ath_hw *ah) | |||
1713 | priv_ops->compute_pll_control = ar9160_hw_compute_pll_control; | 1633 | priv_ops->compute_pll_control = ar9160_hw_compute_pll_control; |
1714 | else | 1634 | else |
1715 | priv_ops->compute_pll_control = ar5008_hw_compute_pll_control; | 1635 | priv_ops->compute_pll_control = ar5008_hw_compute_pll_control; |
1636 | |||
1637 | ar5008_hw_set_nf_limits(ah); | ||
1638 | memcpy(ah->nf_regs, ar5416_cca_regs, sizeof(ah->nf_regs)); | ||
1716 | } | 1639 | } |
diff --git a/drivers/net/wireless/ath/ath9k/ar9001_initvals.h b/drivers/net/wireless/ath/ath9k/ar9001_initvals.h index 0b94bd385b0a..69a94c7e45cb 100644 --- a/drivers/net/wireless/ath/ath9k/ar9001_initvals.h +++ b/drivers/net/wireless/ath/ath9k/ar9001_initvals.h | |||
@@ -1,1254 +1,1357 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2010 Atheros Communications Inc. | ||
3 | * | ||
4 | * Permission to use, copy, modify, and/or distribute this software for any | ||
5 | * purpose with or without fee is hereby granted, provided that the above | ||
6 | * copyright notice and this permission notice appear in all copies. | ||
7 | * | ||
8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
15 | */ | ||
16 | |||
17 | static const u32 ar5416Modes_9100[][6] = { | ||
18 | {0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0}, | ||
19 | {0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0}, | ||
20 | {0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180}, | ||
21 | {0x000010f0, 0x0000a000, 0x00014000, 0x00016000, 0x0000b000, 0x00014008}, | ||
22 | {0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00, 0x06e006e0}, | ||
23 | {0x0000801c, 0x128d93a7, 0x128d93cf, 0x12e013d7, 0x12e013ab, 0x098813cf}, | ||
24 | {0x00008120, 0x08f04800, 0x08f04800, 0x08f04810, 0x08f04810, 0x08f04810}, | ||
25 | {0x000081d0, 0x00003210, 0x00003210, 0x0000320a, 0x0000320a, 0x0000320a}, | ||
26 | {0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303}, | ||
27 | {0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200}, | ||
28 | {0x00009824, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, | ||
29 | {0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001}, | ||
30 | {0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, | ||
31 | {0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007}, | ||
32 | {0x00009844, 0x0372161e, 0x0372161e, 0x037216a0, 0x037216a0, 0x037216a0}, | ||
33 | {0x00009848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68}, | ||
34 | {0x0000a848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68}, | ||
35 | {0x0000b848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68}, | ||
36 | {0x00009850, 0x6c48b4e2, 0x6d48b4e2, 0x6d48b0e2, 0x6c48b0e2, 0x6c48b0e2}, | ||
37 | {0x00009858, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e}, | ||
38 | {0x0000985c, 0x31395d5e, 0x3139605e, 0x3139605e, 0x31395d5e, 0x31395d5e}, | ||
39 | {0x00009860, 0x00048d18, 0x00048d18, 0x00048d20, 0x00048d20, 0x00048d18}, | ||
40 | {0x0000c864, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00}, | ||
41 | {0x00009868, 0x409a40d0, 0x409a40d0, 0x409a40d0, 0x409a40d0, 0x409a40d0}, | ||
42 | {0x0000986c, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081}, | ||
43 | {0x00009914, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898, 0x000007d0}, | ||
44 | {0x00009918, 0x0000000a, 0x00000014, 0x00000016, 0x0000000b, 0x00000016}, | ||
45 | {0x00009924, 0xd00a8a07, 0xd00a8a07, 0xd00a8a0d, 0xd00a8a0d, 0xd00a8a0d}, | ||
46 | {0x00009940, 0x00750604, 0x00754604, 0xfff81204, 0xfff81204, 0xfff81204}, | ||
47 | {0x00009944, 0xdfb81020, 0xdfb81020, 0xdfb81020, 0xdfb81020, 0xdfb81020}, | ||
48 | {0x00009954, 0x5f3ca3de, 0x5f3ca3de, 0xe250a51e, 0xe250a51e, 0xe250a51e}, | ||
49 | {0x00009958, 0x2108ecff, 0x2108ecff, 0x3388ffff, 0x3388ffff, 0x3388ffff}, | ||
50 | {0x00009960, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0}, | ||
51 | {0x0000a960, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0}, | ||
52 | {0x0000b960, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0}, | ||
53 | {0x00009964, 0x00001120, 0x00001120, 0x00001120, 0x00001120, 0x00001120}, | ||
54 | {0x0000c9bc, 0x001a0600, 0x001a0600, 0x001a1000, 0x001a0c00, 0x001a0c00}, | ||
55 | {0x000099c0, 0x038919be, 0x038919be, 0x038919be, 0x038919be, 0x038919be}, | ||
56 | {0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77}, | ||
57 | {0x000099c8, 0x6af65329, 0x6af65329, 0x6af65329, 0x6af65329, 0x6af65329}, | ||
58 | {0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8}, | ||
59 | {0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384}, | ||
60 | {0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, | ||
61 | {0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, | ||
62 | {0x0000a204, 0x00000880, 0x00000880, 0x00000880, 0x00000880, 0x00000880}, | ||
63 | {0x0000a208, 0xd6be4788, 0xd6be4788, 0xd03e4788, 0xd03e4788, 0xd03e4788}, | ||
64 | {0x0000a20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120}, | ||
65 | {0x0000b20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120}, | ||
66 | {0x0000c20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120}, | ||
67 | {0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a}, | ||
68 | {0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000}, | ||
69 | {0x0000a274, 0x0a1a9caa, 0x0a1a9caa, 0x0a1a7caa, 0x0a1a7caa, 0x0a1a7caa}, | ||
70 | {0x0000a300, 0x18010000, 0x18010000, 0x18010000, 0x18010000, 0x18010000}, | ||
71 | {0x0000a304, 0x30032602, 0x30032602, 0x2e032402, 0x2e032402, 0x2e032402}, | ||
72 | {0x0000a308, 0x48073e06, 0x48073e06, 0x4a0a3c06, 0x4a0a3c06, 0x4a0a3c06}, | ||
73 | {0x0000a30c, 0x560b4c0a, 0x560b4c0a, 0x621a540b, 0x621a540b, 0x621a540b}, | ||
74 | {0x0000a310, 0x641a600f, 0x641a600f, 0x764f6c1b, 0x764f6c1b, 0x764f6c1b}, | ||
75 | {0x0000a314, 0x7a4f6e1b, 0x7a4f6e1b, 0x845b7a5a, 0x845b7a5a, 0x845b7a5a}, | ||
76 | {0x0000a318, 0x8c5b7e5a, 0x8c5b7e5a, 0x950f8ccf, 0x950f8ccf, 0x950f8ccf}, | ||
77 | {0x0000a31c, 0x9d0f96cf, 0x9d0f96cf, 0xa5cf9b4f, 0xa5cf9b4f, 0xa5cf9b4f}, | ||
78 | {0x0000a320, 0xb51fa69f, 0xb51fa69f, 0xbddfaf1f, 0xbddfaf1f, 0xbddfaf1f}, | ||
79 | {0x0000a324, 0xcb3fbd07, 0xcb3fbcbf, 0xd1ffc93f, 0xd1ffc93f, 0xd1ffc93f}, | ||
80 | {0x0000a328, 0x0000d7bf, 0x0000d7bf, 0x00000000, 0x00000000, 0x00000000}, | ||
81 | {0x0000a32c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, | ||
82 | {0x0000a330, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, | ||
83 | {0x0000a334, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, | ||
84 | }; | ||
1 | 85 | ||
2 | static const u32 ar5416Common_9100[][2] = { | 86 | static const u32 ar5416Common_9100[][2] = { |
3 | { 0x0000000c, 0x00000000 }, | 87 | /* Addr allmodes */ |
4 | { 0x00000030, 0x00020015 }, | 88 | {0x0000000c, 0x00000000}, |
5 | { 0x00000034, 0x00000005 }, | 89 | {0x00000030, 0x00020015}, |
6 | { 0x00000040, 0x00000000 }, | 90 | {0x00000034, 0x00000005}, |
7 | { 0x00000044, 0x00000008 }, | 91 | {0x00000040, 0x00000000}, |
8 | { 0x00000048, 0x00000008 }, | 92 | {0x00000044, 0x00000008}, |
9 | { 0x0000004c, 0x00000010 }, | 93 | {0x00000048, 0x00000008}, |
10 | { 0x00000050, 0x00000000 }, | 94 | {0x0000004c, 0x00000010}, |
11 | { 0x00000054, 0x0000001f }, | 95 | {0x00000050, 0x00000000}, |
12 | { 0x00000800, 0x00000000 }, | 96 | {0x00000054, 0x0000001f}, |
13 | { 0x00000804, 0x00000000 }, | 97 | {0x00000800, 0x00000000}, |
14 | { 0x00000808, 0x00000000 }, | 98 | {0x00000804, 0x00000000}, |
15 | { 0x0000080c, 0x00000000 }, | 99 | {0x00000808, 0x00000000}, |
16 | { 0x00000810, 0x00000000 }, | 100 | {0x0000080c, 0x00000000}, |
17 | { 0x00000814, 0x00000000 }, | 101 | {0x00000810, 0x00000000}, |
18 | { 0x00000818, 0x00000000 }, | 102 | {0x00000814, 0x00000000}, |
19 | { 0x0000081c, 0x00000000 }, | 103 | {0x00000818, 0x00000000}, |
20 | { 0x00000820, 0x00000000 }, | 104 | {0x0000081c, 0x00000000}, |
21 | { 0x00000824, 0x00000000 }, | 105 | {0x00000820, 0x00000000}, |
22 | { 0x00001040, 0x002ffc0f }, | 106 | {0x00000824, 0x00000000}, |
23 | { 0x00001044, 0x002ffc0f }, | 107 | {0x00001040, 0x002ffc0f}, |
24 | { 0x00001048, 0x002ffc0f }, | 108 | {0x00001044, 0x002ffc0f}, |
25 | { 0x0000104c, 0x002ffc0f }, | 109 | {0x00001048, 0x002ffc0f}, |
26 | { 0x00001050, 0x002ffc0f }, | 110 | {0x0000104c, 0x002ffc0f}, |
27 | { 0x00001054, 0x002ffc0f }, | 111 | {0x00001050, 0x002ffc0f}, |
28 | { 0x00001058, 0x002ffc0f }, | 112 | {0x00001054, 0x002ffc0f}, |
29 | { 0x0000105c, 0x002ffc0f }, | 113 | {0x00001058, 0x002ffc0f}, |
30 | { 0x00001060, 0x002ffc0f }, | 114 | {0x0000105c, 0x002ffc0f}, |
31 | { 0x00001064, 0x002ffc0f }, | 115 | {0x00001060, 0x002ffc0f}, |
32 | { 0x00001230, 0x00000000 }, | 116 | {0x00001064, 0x002ffc0f}, |
33 | { 0x00001270, 0x00000000 }, | 117 | {0x00001230, 0x00000000}, |
34 | { 0x00001038, 0x00000000 }, | 118 | {0x00001270, 0x00000000}, |
35 | { 0x00001078, 0x00000000 }, | 119 | {0x00001038, 0x00000000}, |
36 | { 0x000010b8, 0x00000000 }, | 120 | {0x00001078, 0x00000000}, |
37 | { 0x000010f8, 0x00000000 }, | 121 | {0x000010b8, 0x00000000}, |
38 | { 0x00001138, 0x00000000 }, | 122 | {0x000010f8, 0x00000000}, |
39 | { 0x00001178, 0x00000000 }, | 123 | {0x00001138, 0x00000000}, |
40 | { 0x000011b8, 0x00000000 }, | 124 | {0x00001178, 0x00000000}, |
41 | { 0x000011f8, 0x00000000 }, | 125 | {0x000011b8, 0x00000000}, |
42 | { 0x00001238, 0x00000000 }, | 126 | {0x000011f8, 0x00000000}, |
43 | { 0x00001278, 0x00000000 }, | 127 | {0x00001238, 0x00000000}, |
44 | { 0x000012b8, 0x00000000 }, | 128 | {0x00001278, 0x00000000}, |
45 | { 0x000012f8, 0x00000000 }, | 129 | {0x000012b8, 0x00000000}, |
46 | { 0x00001338, 0x00000000 }, | 130 | {0x000012f8, 0x00000000}, |
47 | { 0x00001378, 0x00000000 }, | 131 | {0x00001338, 0x00000000}, |
48 | { 0x000013b8, 0x00000000 }, | 132 | {0x00001378, 0x00000000}, |
49 | { 0x000013f8, 0x00000000 }, | 133 | {0x000013b8, 0x00000000}, |
50 | { 0x00001438, 0x00000000 }, | 134 | {0x000013f8, 0x00000000}, |
51 | { 0x00001478, 0x00000000 }, | 135 | {0x00001438, 0x00000000}, |
52 | { 0x000014b8, 0x00000000 }, | 136 | {0x00001478, 0x00000000}, |
53 | { 0x000014f8, 0x00000000 }, | 137 | {0x000014b8, 0x00000000}, |
54 | { 0x00001538, 0x00000000 }, | 138 | {0x000014f8, 0x00000000}, |
55 | { 0x00001578, 0x00000000 }, | 139 | {0x00001538, 0x00000000}, |
56 | { 0x000015b8, 0x00000000 }, | 140 | {0x00001578, 0x00000000}, |
57 | { 0x000015f8, 0x00000000 }, | 141 | {0x000015b8, 0x00000000}, |
58 | { 0x00001638, 0x00000000 }, | 142 | {0x000015f8, 0x00000000}, |
59 | { 0x00001678, 0x00000000 }, | 143 | {0x00001638, 0x00000000}, |
60 | { 0x000016b8, 0x00000000 }, | 144 | {0x00001678, 0x00000000}, |
61 | { 0x000016f8, 0x00000000 }, | 145 | {0x000016b8, 0x00000000}, |
62 | { 0x00001738, 0x00000000 }, | 146 | {0x000016f8, 0x00000000}, |
63 | { 0x00001778, 0x00000000 }, | 147 | {0x00001738, 0x00000000}, |
64 | { 0x000017b8, 0x00000000 }, | 148 | {0x00001778, 0x00000000}, |
65 | { 0x000017f8, 0x00000000 }, | 149 | {0x000017b8, 0x00000000}, |
66 | { 0x0000103c, 0x00000000 }, | 150 | {0x000017f8, 0x00000000}, |
67 | { 0x0000107c, 0x00000000 }, | 151 | {0x0000103c, 0x00000000}, |
68 | { 0x000010bc, 0x00000000 }, | 152 | {0x0000107c, 0x00000000}, |
69 | { 0x000010fc, 0x00000000 }, | 153 | {0x000010bc, 0x00000000}, |
70 | { 0x0000113c, 0x00000000 }, | 154 | {0x000010fc, 0x00000000}, |
71 | { 0x0000117c, 0x00000000 }, | 155 | {0x0000113c, 0x00000000}, |
72 | { 0x000011bc, 0x00000000 }, | 156 | {0x0000117c, 0x00000000}, |
73 | { 0x000011fc, 0x00000000 }, | 157 | {0x000011bc, 0x00000000}, |
74 | { 0x0000123c, 0x00000000 }, | 158 | {0x000011fc, 0x00000000}, |
75 | { 0x0000127c, 0x00000000 }, | 159 | {0x0000123c, 0x00000000}, |
76 | { 0x000012bc, 0x00000000 }, | 160 | {0x0000127c, 0x00000000}, |
77 | { 0x000012fc, 0x00000000 }, | 161 | {0x000012bc, 0x00000000}, |
78 | { 0x0000133c, 0x00000000 }, | 162 | {0x000012fc, 0x00000000}, |
79 | { 0x0000137c, 0x00000000 }, | 163 | {0x0000133c, 0x00000000}, |
80 | { 0x000013bc, 0x00000000 }, | 164 | {0x0000137c, 0x00000000}, |
81 | { 0x000013fc, 0x00000000 }, | 165 | {0x000013bc, 0x00000000}, |
82 | { 0x0000143c, 0x00000000 }, | 166 | {0x000013fc, 0x00000000}, |
83 | { 0x0000147c, 0x00000000 }, | 167 | {0x0000143c, 0x00000000}, |
84 | { 0x00020010, 0x00000003 }, | 168 | {0x0000147c, 0x00000000}, |
85 | { 0x00020038, 0x000004c2 }, | 169 | {0x00020010, 0x00000003}, |
86 | { 0x00008004, 0x00000000 }, | 170 | {0x00020038, 0x000004c2}, |
87 | { 0x00008008, 0x00000000 }, | 171 | {0x00008004, 0x00000000}, |
88 | { 0x0000800c, 0x00000000 }, | 172 | {0x00008008, 0x00000000}, |
89 | { 0x00008018, 0x00000700 }, | 173 | {0x0000800c, 0x00000000}, |
90 | { 0x00008020, 0x00000000 }, | 174 | {0x00008018, 0x00000700}, |
91 | { 0x00008038, 0x00000000 }, | 175 | {0x00008020, 0x00000000}, |
92 | { 0x0000803c, 0x00000000 }, | 176 | {0x00008038, 0x00000000}, |
93 | { 0x00008048, 0x40000000 }, | 177 | {0x0000803c, 0x00000000}, |
94 | { 0x00008054, 0x00004000 }, | 178 | {0x00008048, 0x40000000}, |
95 | { 0x00008058, 0x00000000 }, | 179 | {0x00008054, 0x00004000}, |
96 | { 0x0000805c, 0x000fc78f }, | 180 | {0x00008058, 0x00000000}, |
97 | { 0x00008060, 0x0000000f }, | 181 | {0x0000805c, 0x000fc78f}, |
98 | { 0x00008064, 0x00000000 }, | 182 | {0x00008060, 0x0000000f}, |
99 | { 0x000080c0, 0x2a82301a }, | 183 | {0x00008064, 0x00000000}, |
100 | { 0x000080c4, 0x05dc01e0 }, | 184 | {0x000080c0, 0x2a82301a}, |
101 | { 0x000080c8, 0x1f402710 }, | 185 | {0x000080c4, 0x05dc01e0}, |
102 | { 0x000080cc, 0x01f40000 }, | 186 | {0x000080c8, 0x1f402710}, |
103 | { 0x000080d0, 0x00001e00 }, | 187 | {0x000080cc, 0x01f40000}, |
104 | { 0x000080d4, 0x00000000 }, | 188 | {0x000080d0, 0x00001e00}, |
105 | { 0x000080d8, 0x00400000 }, | 189 | {0x000080d4, 0x00000000}, |
106 | { 0x000080e0, 0xffffffff }, | 190 | {0x000080d8, 0x00400000}, |
107 | { 0x000080e4, 0x0000ffff }, | 191 | {0x000080e0, 0xffffffff}, |
108 | { 0x000080e8, 0x003f3f3f }, | 192 | {0x000080e4, 0x0000ffff}, |
109 | { 0x000080ec, 0x00000000 }, | 193 | {0x000080e8, 0x003f3f3f}, |
110 | { 0x000080f0, 0x00000000 }, | 194 | {0x000080ec, 0x00000000}, |
111 | { 0x000080f4, 0x00000000 }, | 195 | {0x000080f0, 0x00000000}, |
112 | { 0x000080f8, 0x00000000 }, | 196 | {0x000080f4, 0x00000000}, |
113 | { 0x000080fc, 0x00020000 }, | 197 | {0x000080f8, 0x00000000}, |
114 | { 0x00008100, 0x00020000 }, | 198 | {0x000080fc, 0x00020000}, |
115 | { 0x00008104, 0x00000001 }, | 199 | {0x00008100, 0x00020000}, |
116 | { 0x00008108, 0x00000052 }, | 200 | {0x00008104, 0x00000001}, |
117 | { 0x0000810c, 0x00000000 }, | 201 | {0x00008108, 0x00000052}, |
118 | { 0x00008110, 0x00000168 }, | 202 | {0x0000810c, 0x00000000}, |
119 | { 0x00008118, 0x000100aa }, | 203 | {0x00008110, 0x00000168}, |
120 | { 0x0000811c, 0x00003210 }, | 204 | {0x00008118, 0x000100aa}, |
121 | { 0x00008120, 0x08f04800 }, | 205 | {0x0000811c, 0x00003210}, |
122 | { 0x00008124, 0x00000000 }, | 206 | {0x00008120, 0x08f04800}, |
123 | { 0x00008128, 0x00000000 }, | 207 | {0x00008124, 0x00000000}, |
124 | { 0x0000812c, 0x00000000 }, | 208 | {0x00008128, 0x00000000}, |
125 | { 0x00008130, 0x00000000 }, | 209 | {0x0000812c, 0x00000000}, |
126 | { 0x00008134, 0x00000000 }, | 210 | {0x00008130, 0x00000000}, |
127 | { 0x00008138, 0x00000000 }, | 211 | {0x00008134, 0x00000000}, |
128 | { 0x0000813c, 0x00000000 }, | 212 | {0x00008138, 0x00000000}, |
129 | { 0x00008144, 0x00000000 }, | 213 | {0x0000813c, 0x00000000}, |
130 | { 0x00008168, 0x00000000 }, | 214 | {0x00008144, 0x00000000}, |
131 | { 0x0000816c, 0x00000000 }, | 215 | {0x00008168, 0x00000000}, |
132 | { 0x00008170, 0x32143320 }, | 216 | {0x0000816c, 0x00000000}, |
133 | { 0x00008174, 0xfaa4fa50 }, | 217 | {0x00008170, 0x32143320}, |
134 | { 0x00008178, 0x00000100 }, | 218 | {0x00008174, 0xfaa4fa50}, |
135 | { 0x0000817c, 0x00000000 }, | 219 | {0x00008178, 0x00000100}, |
136 | { 0x000081c4, 0x00000000 }, | 220 | {0x0000817c, 0x00000000}, |
137 | { 0x000081d0, 0x00003210 }, | 221 | {0x000081c4, 0x00000000}, |
138 | { 0x000081ec, 0x00000000 }, | 222 | {0x000081d0, 0x00003210}, |
139 | { 0x000081f0, 0x00000000 }, | 223 | {0x000081ec, 0x00000000}, |
140 | { 0x000081f4, 0x00000000 }, | 224 | {0x000081f0, 0x00000000}, |
141 | { 0x000081f8, 0x00000000 }, | 225 | {0x000081f4, 0x00000000}, |
142 | { 0x000081fc, 0x00000000 }, | 226 | {0x000081f8, 0x00000000}, |
143 | { 0x00008200, 0x00000000 }, | 227 | {0x000081fc, 0x00000000}, |
144 | { 0x00008204, 0x00000000 }, | 228 | {0x00008200, 0x00000000}, |
145 | { 0x00008208, 0x00000000 }, | 229 | {0x00008204, 0x00000000}, |
146 | { 0x0000820c, 0x00000000 }, | 230 | {0x00008208, 0x00000000}, |
147 | { 0x00008210, 0x00000000 }, | 231 | {0x0000820c, 0x00000000}, |
148 | { 0x00008214, 0x00000000 }, | 232 | {0x00008210, 0x00000000}, |
149 | { 0x00008218, 0x00000000 }, | 233 | {0x00008214, 0x00000000}, |
150 | { 0x0000821c, 0x00000000 }, | 234 | {0x00008218, 0x00000000}, |
151 | { 0x00008220, 0x00000000 }, | 235 | {0x0000821c, 0x00000000}, |
152 | { 0x00008224, 0x00000000 }, | 236 | {0x00008220, 0x00000000}, |
153 | { 0x00008228, 0x00000000 }, | 237 | {0x00008224, 0x00000000}, |
154 | { 0x0000822c, 0x00000000 }, | 238 | {0x00008228, 0x00000000}, |
155 | { 0x00008230, 0x00000000 }, | 239 | {0x0000822c, 0x00000000}, |
156 | { 0x00008234, 0x00000000 }, | 240 | {0x00008230, 0x00000000}, |
157 | { 0x00008238, 0x00000000 }, | 241 | {0x00008234, 0x00000000}, |
158 | { 0x0000823c, 0x00000000 }, | 242 | {0x00008238, 0x00000000}, |
159 | { 0x00008240, 0x00100000 }, | 243 | {0x0000823c, 0x00000000}, |
160 | { 0x00008244, 0x0010f400 }, | 244 | {0x00008240, 0x00100000}, |
161 | { 0x00008248, 0x00000100 }, | 245 | {0x00008244, 0x0010f400}, |
162 | { 0x0000824c, 0x0001e800 }, | 246 | {0x00008248, 0x00000100}, |
163 | { 0x00008250, 0x00000000 }, | 247 | {0x0000824c, 0x0001e800}, |
164 | { 0x00008254, 0x00000000 }, | 248 | {0x00008250, 0x00000000}, |
165 | { 0x00008258, 0x00000000 }, | 249 | {0x00008254, 0x00000000}, |
166 | { 0x0000825c, 0x400000ff }, | 250 | {0x00008258, 0x00000000}, |
167 | { 0x00008260, 0x00080922 }, | 251 | {0x0000825c, 0x400000ff}, |
168 | { 0x00008270, 0x00000000 }, | 252 | {0x00008260, 0x00080922}, |
169 | { 0x00008274, 0x40000000 }, | 253 | {0x00008270, 0x00000000}, |
170 | { 0x00008278, 0x003e4180 }, | 254 | {0x00008274, 0x40000000}, |
171 | { 0x0000827c, 0x00000000 }, | 255 | {0x00008278, 0x003e4180}, |
172 | { 0x00008284, 0x0000002c }, | 256 | {0x0000827c, 0x00000000}, |
173 | { 0x00008288, 0x0000002c }, | 257 | {0x00008284, 0x0000002c}, |
174 | { 0x0000828c, 0x00000000 }, | 258 | {0x00008288, 0x0000002c}, |
175 | { 0x00008294, 0x00000000 }, | 259 | {0x0000828c, 0x00000000}, |
176 | { 0x00008298, 0x00000000 }, | 260 | {0x00008294, 0x00000000}, |
177 | { 0x00008300, 0x00000000 }, | 261 | {0x00008298, 0x00000000}, |
178 | { 0x00008304, 0x00000000 }, | 262 | {0x00008300, 0x00000000}, |
179 | { 0x00008308, 0x00000000 }, | 263 | {0x00008304, 0x00000000}, |
180 | { 0x0000830c, 0x00000000 }, | 264 | {0x00008308, 0x00000000}, |
181 | { 0x00008310, 0x00000000 }, | 265 | {0x0000830c, 0x00000000}, |
182 | { 0x00008314, 0x00000000 }, | 266 | {0x00008310, 0x00000000}, |
183 | { 0x00008318, 0x00000000 }, | 267 | {0x00008314, 0x00000000}, |
184 | { 0x00008328, 0x00000000 }, | 268 | {0x00008318, 0x00000000}, |
185 | { 0x0000832c, 0x00000007 }, | 269 | {0x00008328, 0x00000000}, |
186 | { 0x00008330, 0x00000302 }, | 270 | {0x0000832c, 0x00000007}, |
187 | { 0x00008334, 0x00000e00 }, | 271 | {0x00008330, 0x00000302}, |
188 | { 0x00008338, 0x00000000 }, | 272 | {0x00008334, 0x00000e00}, |
189 | { 0x0000833c, 0x00000000 }, | 273 | {0x00008338, 0x00000000}, |
190 | { 0x00008340, 0x000107ff }, | 274 | {0x0000833c, 0x00000000}, |
191 | { 0x00009808, 0x00000000 }, | 275 | {0x00008340, 0x000107ff}, |
192 | { 0x0000980c, 0xad848e19 }, | 276 | {0x00009808, 0x00000000}, |
193 | { 0x00009810, 0x7d14e000 }, | 277 | {0x0000980c, 0xad848e19}, |
194 | { 0x00009814, 0x9c0a9f6b }, | 278 | {0x00009810, 0x7d14e000}, |
195 | { 0x0000981c, 0x00000000 }, | 279 | {0x00009814, 0x9c0a9f6b}, |
196 | { 0x0000982c, 0x0000a000 }, | 280 | {0x0000981c, 0x00000000}, |
197 | { 0x00009830, 0x00000000 }, | 281 | {0x0000982c, 0x0000a000}, |
198 | { 0x0000983c, 0x00200400 }, | 282 | {0x00009830, 0x00000000}, |
199 | { 0x00009840, 0x206a01ae }, | 283 | {0x0000983c, 0x00200400}, |
200 | { 0x0000984c, 0x1284233c }, | 284 | {0x00009840, 0x206a01ae}, |
201 | { 0x00009854, 0x00000859 }, | 285 | {0x0000984c, 0x1284233c}, |
202 | { 0x00009900, 0x00000000 }, | 286 | {0x00009854, 0x00000859}, |
203 | { 0x00009904, 0x00000000 }, | 287 | {0x00009900, 0x00000000}, |
204 | { 0x00009908, 0x00000000 }, | 288 | {0x00009904, 0x00000000}, |
205 | { 0x0000990c, 0x00000000 }, | 289 | {0x00009908, 0x00000000}, |
206 | { 0x0000991c, 0x10000fff }, | 290 | {0x0000990c, 0x00000000}, |
207 | { 0x00009920, 0x05100000 }, | 291 | {0x0000991c, 0x10000fff}, |
208 | { 0x0000a920, 0x05100000 }, | 292 | {0x00009920, 0x05100000}, |
209 | { 0x0000b920, 0x05100000 }, | 293 | {0x0000a920, 0x05100000}, |
210 | { 0x00009928, 0x00000001 }, | 294 | {0x0000b920, 0x05100000}, |
211 | { 0x0000992c, 0x00000004 }, | 295 | {0x00009928, 0x00000001}, |
212 | { 0x00009934, 0x1e1f2022 }, | 296 | {0x0000992c, 0x00000004}, |
213 | { 0x00009938, 0x0a0b0c0d }, | 297 | {0x00009934, 0x1e1f2022}, |
214 | { 0x0000993c, 0x00000000 }, | 298 | {0x00009938, 0x0a0b0c0d}, |
215 | { 0x00009948, 0x9280b212 }, | 299 | {0x0000993c, 0x00000000}, |
216 | { 0x0000994c, 0x00020028 }, | 300 | {0x00009948, 0x9280b212}, |
217 | { 0x0000c95c, 0x004b6a8e }, | 301 | {0x0000994c, 0x00020028}, |
218 | { 0x0000c968, 0x000003ce }, | 302 | {0x0000c95c, 0x004b6a8e}, |
219 | { 0x00009970, 0x190fb515 }, | 303 | {0x0000c968, 0x000003ce}, |
220 | { 0x00009974, 0x00000000 }, | 304 | {0x00009970, 0x190fb515}, |
221 | { 0x00009978, 0x00000001 }, | 305 | {0x00009974, 0x00000000}, |
222 | { 0x0000997c, 0x00000000 }, | 306 | {0x00009978, 0x00000001}, |
223 | { 0x00009980, 0x00000000 }, | 307 | {0x0000997c, 0x00000000}, |
224 | { 0x00009984, 0x00000000 }, | 308 | {0x00009980, 0x00000000}, |
225 | { 0x00009988, 0x00000000 }, | 309 | {0x00009984, 0x00000000}, |
226 | { 0x0000998c, 0x00000000 }, | 310 | {0x00009988, 0x00000000}, |
227 | { 0x00009990, 0x00000000 }, | 311 | {0x0000998c, 0x00000000}, |
228 | { 0x00009994, 0x00000000 }, | 312 | {0x00009990, 0x00000000}, |
229 | { 0x00009998, 0x00000000 }, | 313 | {0x00009994, 0x00000000}, |
230 | { 0x0000999c, 0x00000000 }, | 314 | {0x00009998, 0x00000000}, |
231 | { 0x000099a0, 0x00000000 }, | 315 | {0x0000999c, 0x00000000}, |
232 | { 0x000099a4, 0x00000001 }, | 316 | {0x000099a0, 0x00000000}, |
233 | { 0x000099a8, 0x201fff00 }, | 317 | {0x000099a4, 0x00000001}, |
234 | { 0x000099ac, 0x006f0000 }, | 318 | {0x000099a8, 0x201fff00}, |
235 | { 0x000099b0, 0x03051000 }, | 319 | {0x000099ac, 0x006f0000}, |
236 | { 0x000099dc, 0x00000000 }, | 320 | {0x000099b0, 0x03051000}, |
237 | { 0x000099e0, 0x00000200 }, | 321 | {0x000099dc, 0x00000000}, |
238 | { 0x000099e4, 0xaaaaaaaa }, | 322 | {0x000099e0, 0x00000200}, |
239 | { 0x000099e8, 0x3c466478 }, | 323 | {0x000099e4, 0xaaaaaaaa}, |
240 | { 0x000099ec, 0x0cc80caa }, | 324 | {0x000099e8, 0x3c466478}, |
241 | { 0x000099fc, 0x00001042 }, | 325 | {0x000099ec, 0x0cc80caa}, |
242 | { 0x00009b00, 0x00000000 }, | 326 | {0x000099fc, 0x00001042}, |
243 | { 0x00009b04, 0x00000001 }, | 327 | {0x00009b00, 0x00000000}, |
244 | { 0x00009b08, 0x00000002 }, | 328 | {0x00009b04, 0x00000001}, |
245 | { 0x00009b0c, 0x00000003 }, | 329 | {0x00009b08, 0x00000002}, |
246 | { 0x00009b10, 0x00000004 }, | 330 | {0x00009b0c, 0x00000003}, |
247 | { 0x00009b14, 0x00000005 }, | 331 | {0x00009b10, 0x00000004}, |
248 | { 0x00009b18, 0x00000008 }, | 332 | {0x00009b14, 0x00000005}, |
249 | { 0x00009b1c, 0x00000009 }, | 333 | {0x00009b18, 0x00000008}, |
250 | { 0x00009b20, 0x0000000a }, | 334 | {0x00009b1c, 0x00000009}, |
251 | { 0x00009b24, 0x0000000b }, | 335 | {0x00009b20, 0x0000000a}, |
252 | { 0x00009b28, 0x0000000c }, | 336 | {0x00009b24, 0x0000000b}, |
253 | { 0x00009b2c, 0x0000000d }, | 337 | {0x00009b28, 0x0000000c}, |
254 | { 0x00009b30, 0x00000010 }, | 338 | {0x00009b2c, 0x0000000d}, |
255 | { 0x00009b34, 0x00000011 }, | 339 | {0x00009b30, 0x00000010}, |
256 | { 0x00009b38, 0x00000012 }, | 340 | {0x00009b34, 0x00000011}, |
257 | { 0x00009b3c, 0x00000013 }, | 341 | {0x00009b38, 0x00000012}, |
258 | { 0x00009b40, 0x00000014 }, | 342 | {0x00009b3c, 0x00000013}, |
259 | { 0x00009b44, 0x00000015 }, | 343 | {0x00009b40, 0x00000014}, |
260 | { 0x00009b48, 0x00000018 }, | 344 | {0x00009b44, 0x00000015}, |
261 | { 0x00009b4c, 0x00000019 }, | 345 | {0x00009b48, 0x00000018}, |
262 | { 0x00009b50, 0x0000001a }, | 346 | {0x00009b4c, 0x00000019}, |
263 | { 0x00009b54, 0x0000001b }, | 347 | {0x00009b50, 0x0000001a}, |
264 | { 0x00009b58, 0x0000001c }, | 348 | {0x00009b54, 0x0000001b}, |
265 | { 0x00009b5c, 0x0000001d }, | 349 | {0x00009b58, 0x0000001c}, |
266 | { 0x00009b60, 0x00000020 }, | 350 | {0x00009b5c, 0x0000001d}, |
267 | { 0x00009b64, 0x00000021 }, | 351 | {0x00009b60, 0x00000020}, |
268 | { 0x00009b68, 0x00000022 }, | 352 | {0x00009b64, 0x00000021}, |
269 | { 0x00009b6c, 0x00000023 }, | 353 | {0x00009b68, 0x00000022}, |
270 | { 0x00009b70, 0x00000024 }, | 354 | {0x00009b6c, 0x00000023}, |
271 | { 0x00009b74, 0x00000025 }, | 355 | {0x00009b70, 0x00000024}, |
272 | { 0x00009b78, 0x00000028 }, | 356 | {0x00009b74, 0x00000025}, |
273 | { 0x00009b7c, 0x00000029 }, | 357 | {0x00009b78, 0x00000028}, |
274 | { 0x00009b80, 0x0000002a }, | 358 | {0x00009b7c, 0x00000029}, |
275 | { 0x00009b84, 0x0000002b }, | 359 | {0x00009b80, 0x0000002a}, |
276 | { 0x00009b88, 0x0000002c }, | 360 | {0x00009b84, 0x0000002b}, |
277 | { 0x00009b8c, 0x0000002d }, | 361 | {0x00009b88, 0x0000002c}, |
278 | { 0x00009b90, 0x00000030 }, | 362 | {0x00009b8c, 0x0000002d}, |
279 | { 0x00009b94, 0x00000031 }, | 363 | {0x00009b90, 0x00000030}, |
280 | { 0x00009b98, 0x00000032 }, | 364 | {0x00009b94, 0x00000031}, |
281 | { 0x00009b9c, 0x00000033 }, | 365 | {0x00009b98, 0x00000032}, |
282 | { 0x00009ba0, 0x00000034 }, | 366 | {0x00009b9c, 0x00000033}, |
283 | { 0x00009ba4, 0x00000035 }, | 367 | {0x00009ba0, 0x00000034}, |
284 | { 0x00009ba8, 0x00000035 }, | 368 | {0x00009ba4, 0x00000035}, |
285 | { 0x00009bac, 0x00000035 }, | 369 | {0x00009ba8, 0x00000035}, |
286 | { 0x00009bb0, 0x00000035 }, | 370 | {0x00009bac, 0x00000035}, |
287 | { 0x00009bb4, 0x00000035 }, | 371 | {0x00009bb0, 0x00000035}, |
288 | { 0x00009bb8, 0x00000035 }, | 372 | {0x00009bb4, 0x00000035}, |
289 | { 0x00009bbc, 0x00000035 }, | 373 | {0x00009bb8, 0x00000035}, |
290 | { 0x00009bc0, 0x00000035 }, | 374 | {0x00009bbc, 0x00000035}, |
291 | { 0x00009bc4, 0x00000035 }, | 375 | {0x00009bc0, 0x00000035}, |
292 | { 0x00009bc8, 0x00000035 }, | 376 | {0x00009bc4, 0x00000035}, |
293 | { 0x00009bcc, 0x00000035 }, | 377 | {0x00009bc8, 0x00000035}, |
294 | { 0x00009bd0, 0x00000035 }, | 378 | {0x00009bcc, 0x00000035}, |
295 | { 0x00009bd4, 0x00000035 }, | 379 | {0x00009bd0, 0x00000035}, |
296 | { 0x00009bd8, 0x00000035 }, | 380 | {0x00009bd4, 0x00000035}, |
297 | { 0x00009bdc, 0x00000035 }, | 381 | {0x00009bd8, 0x00000035}, |
298 | { 0x00009be0, 0x00000035 }, | 382 | {0x00009bdc, 0x00000035}, |
299 | { 0x00009be4, 0x00000035 }, | 383 | {0x00009be0, 0x00000035}, |
300 | { 0x00009be8, 0x00000035 }, | 384 | {0x00009be4, 0x00000035}, |
301 | { 0x00009bec, 0x00000035 }, | 385 | {0x00009be8, 0x00000035}, |
302 | { 0x00009bf0, 0x00000035 }, | 386 | {0x00009bec, 0x00000035}, |
303 | { 0x00009bf4, 0x00000035 }, | 387 | {0x00009bf0, 0x00000035}, |
304 | { 0x00009bf8, 0x00000010 }, | 388 | {0x00009bf4, 0x00000035}, |
305 | { 0x00009bfc, 0x0000001a }, | 389 | {0x00009bf8, 0x00000010}, |
306 | { 0x0000a210, 0x40806333 }, | 390 | {0x00009bfc, 0x0000001a}, |
307 | { 0x0000a214, 0x00106c10 }, | 391 | {0x0000a210, 0x40806333}, |
308 | { 0x0000a218, 0x009c4060 }, | 392 | {0x0000a214, 0x00106c10}, |
309 | { 0x0000a220, 0x018830c6 }, | 393 | {0x0000a218, 0x009c4060}, |
310 | { 0x0000a224, 0x00000400 }, | 394 | {0x0000a220, 0x018830c6}, |
311 | { 0x0000a228, 0x001a0bb5 }, | 395 | {0x0000a224, 0x00000400}, |
312 | { 0x0000a22c, 0x00000000 }, | 396 | {0x0000a228, 0x001a0bb5}, |
313 | { 0x0000a234, 0x20202020 }, | 397 | {0x0000a22c, 0x00000000}, |
314 | { 0x0000a238, 0x20202020 }, | 398 | {0x0000a234, 0x20202020}, |
315 | { 0x0000a23c, 0x13c889ae }, | 399 | {0x0000a238, 0x20202020}, |
316 | { 0x0000a240, 0x38490a20 }, | 400 | {0x0000a23c, 0x13c889af}, |
317 | { 0x0000a244, 0x00007bb6 }, | 401 | {0x0000a240, 0x38490a20}, |
318 | { 0x0000a248, 0x0fff3ffc }, | 402 | {0x0000a244, 0x00007bb6}, |
319 | { 0x0000a24c, 0x00000001 }, | 403 | {0x0000a248, 0x0fff3ffc}, |
320 | { 0x0000a250, 0x0000a000 }, | 404 | {0x0000a24c, 0x00000001}, |
321 | { 0x0000a254, 0x00000000 }, | 405 | {0x0000a250, 0x0000e000}, |
322 | { 0x0000a258, 0x0cc75380 }, | 406 | {0x0000a254, 0x00000000}, |
323 | { 0x0000a25c, 0x0f0f0f01 }, | 407 | {0x0000a258, 0x0cc75380}, |
324 | { 0x0000a260, 0xdfa91f01 }, | 408 | {0x0000a25c, 0x0f0f0f01}, |
325 | { 0x0000a268, 0x00000001 }, | 409 | {0x0000a260, 0xdfa91f01}, |
326 | { 0x0000a26c, 0x0ebae9c6 }, | 410 | {0x0000a268, 0x00000001}, |
327 | { 0x0000b26c, 0x0ebae9c6 }, | 411 | {0x0000a26c, 0x0ebae9c6}, |
328 | { 0x0000c26c, 0x0ebae9c6 }, | 412 | {0x0000b26c, 0x0ebae9c6}, |
329 | { 0x0000d270, 0x00820820 }, | 413 | {0x0000c26c, 0x0ebae9c6}, |
330 | { 0x0000a278, 0x1ce739ce }, | 414 | {0x0000d270, 0x00820820}, |
331 | { 0x0000a27c, 0x050701ce }, | 415 | {0x0000a278, 0x1ce739ce}, |
332 | { 0x0000a338, 0x00000000 }, | 416 | {0x0000a27c, 0x050701ce}, |
333 | { 0x0000a33c, 0x00000000 }, | 417 | {0x0000a338, 0x00000000}, |
334 | { 0x0000a340, 0x00000000 }, | 418 | {0x0000a33c, 0x00000000}, |
335 | { 0x0000a344, 0x00000000 }, | 419 | {0x0000a340, 0x00000000}, |
336 | { 0x0000a348, 0x3fffffff }, | 420 | {0x0000a344, 0x00000000}, |
337 | { 0x0000a34c, 0x3fffffff }, | 421 | {0x0000a348, 0x3fffffff}, |
338 | { 0x0000a350, 0x3fffffff }, | 422 | {0x0000a34c, 0x3fffffff}, |
339 | { 0x0000a354, 0x0003ffff }, | 423 | {0x0000a350, 0x3fffffff}, |
340 | { 0x0000a358, 0x79a8aa33 }, | 424 | {0x0000a354, 0x0003ffff}, |
341 | { 0x0000d35c, 0x07ffffef }, | 425 | {0x0000a358, 0x79a8aa33}, |
342 | { 0x0000d360, 0x0fffffe7 }, | 426 | {0x0000d35c, 0x07ffffef}, |
343 | { 0x0000d364, 0x17ffffe5 }, | 427 | {0x0000d360, 0x0fffffe7}, |
344 | { 0x0000d368, 0x1fffffe4 }, | 428 | {0x0000d364, 0x17ffffe5}, |
345 | { 0x0000d36c, 0x37ffffe3 }, | 429 | {0x0000d368, 0x1fffffe4}, |
346 | { 0x0000d370, 0x3fffffe3 }, | 430 | {0x0000d36c, 0x37ffffe3}, |
347 | { 0x0000d374, 0x57ffffe3 }, | 431 | {0x0000d370, 0x3fffffe3}, |
348 | { 0x0000d378, 0x5fffffe2 }, | 432 | {0x0000d374, 0x57ffffe3}, |
349 | { 0x0000d37c, 0x7fffffe2 }, | 433 | {0x0000d378, 0x5fffffe2}, |
350 | { 0x0000d380, 0x7f3c7bba }, | 434 | {0x0000d37c, 0x7fffffe2}, |
351 | { 0x0000d384, 0xf3307ff0 }, | 435 | {0x0000d380, 0x7f3c7bba}, |
352 | { 0x0000a388, 0x0c000000 }, | 436 | {0x0000d384, 0xf3307ff0}, |
353 | { 0x0000a38c, 0x20202020 }, | 437 | {0x0000a388, 0x0c000000}, |
354 | { 0x0000a390, 0x20202020 }, | 438 | {0x0000a38c, 0x20202020}, |
355 | { 0x0000a394, 0x1ce739ce }, | 439 | {0x0000a390, 0x20202020}, |
356 | { 0x0000a398, 0x000001ce }, | 440 | {0x0000a394, 0x1ce739ce}, |
357 | { 0x0000a39c, 0x00000001 }, | 441 | {0x0000a398, 0x000001ce}, |
358 | { 0x0000a3a0, 0x00000000 }, | 442 | {0x0000a39c, 0x00000001}, |
359 | { 0x0000a3a4, 0x00000000 }, | 443 | {0x0000a3a0, 0x00000000}, |
360 | { 0x0000a3a8, 0x00000000 }, | 444 | {0x0000a3a4, 0x00000000}, |
361 | { 0x0000a3ac, 0x00000000 }, | 445 | {0x0000a3a8, 0x00000000}, |
362 | { 0x0000a3b0, 0x00000000 }, | 446 | {0x0000a3ac, 0x00000000}, |
363 | { 0x0000a3b4, 0x00000000 }, | 447 | {0x0000a3b0, 0x00000000}, |
364 | { 0x0000a3b8, 0x00000000 }, | 448 | {0x0000a3b4, 0x00000000}, |
365 | { 0x0000a3bc, 0x00000000 }, | 449 | {0x0000a3b8, 0x00000000}, |
366 | { 0x0000a3c0, 0x00000000 }, | 450 | {0x0000a3bc, 0x00000000}, |
367 | { 0x0000a3c4, 0x00000000 }, | 451 | {0x0000a3c0, 0x00000000}, |
368 | { 0x0000a3c8, 0x00000246 }, | 452 | {0x0000a3c4, 0x00000000}, |
369 | { 0x0000a3cc, 0x20202020 }, | 453 | {0x0000a3c8, 0x00000246}, |
370 | { 0x0000a3d0, 0x20202020 }, | 454 | {0x0000a3cc, 0x20202020}, |
371 | { 0x0000a3d4, 0x20202020 }, | 455 | {0x0000a3d0, 0x20202020}, |
372 | { 0x0000a3dc, 0x1ce739ce }, | 456 | {0x0000a3d4, 0x20202020}, |
373 | { 0x0000a3e0, 0x000001ce }, | 457 | {0x0000a3dc, 0x1ce739ce}, |
458 | {0x0000a3e0, 0x000001ce}, | ||
374 | }; | 459 | }; |
375 | 460 | ||
376 | static const u32 ar5416Bank0_9100[][2] = { | 461 | static const u32 ar5416Bank0_9100[][2] = { |
377 | { 0x000098b0, 0x1e5795e5 }, | 462 | /* Addr allmodes */ |
378 | { 0x000098e0, 0x02008020 }, | 463 | {0x000098b0, 0x1e5795e5}, |
464 | {0x000098e0, 0x02008020}, | ||
379 | }; | 465 | }; |
380 | 466 | ||
381 | static const u32 ar5416BB_RfGain_9100[][3] = { | 467 | static const u32 ar5416BB_RfGain_9100[][3] = { |
382 | { 0x00009a00, 0x00000000, 0x00000000 }, | 468 | /* Addr 5G_HT20 5G_HT40 */ |
383 | { 0x00009a04, 0x00000040, 0x00000040 }, | 469 | {0x00009a00, 0x00000000, 0x00000000}, |
384 | { 0x00009a08, 0x00000080, 0x00000080 }, | 470 | {0x00009a04, 0x00000040, 0x00000040}, |
385 | { 0x00009a0c, 0x000001a1, 0x00000141 }, | 471 | {0x00009a08, 0x00000080, 0x00000080}, |
386 | { 0x00009a10, 0x000001e1, 0x00000181 }, | 472 | {0x00009a0c, 0x000001a1, 0x00000141}, |
387 | { 0x00009a14, 0x00000021, 0x000001c1 }, | 473 | {0x00009a10, 0x000001e1, 0x00000181}, |
388 | { 0x00009a18, 0x00000061, 0x00000001 }, | 474 | {0x00009a14, 0x00000021, 0x000001c1}, |
389 | { 0x00009a1c, 0x00000168, 0x00000041 }, | 475 | {0x00009a18, 0x00000061, 0x00000001}, |
390 | { 0x00009a20, 0x000001a8, 0x000001a8 }, | 476 | {0x00009a1c, 0x00000168, 0x00000041}, |
391 | { 0x00009a24, 0x000001e8, 0x000001e8 }, | 477 | {0x00009a20, 0x000001a8, 0x000001a8}, |
392 | { 0x00009a28, 0x00000028, 0x00000028 }, | 478 | {0x00009a24, 0x000001e8, 0x000001e8}, |
393 | { 0x00009a2c, 0x00000068, 0x00000068 }, | 479 | {0x00009a28, 0x00000028, 0x00000028}, |
394 | { 0x00009a30, 0x00000189, 0x000000a8 }, | 480 | {0x00009a2c, 0x00000068, 0x00000068}, |
395 | { 0x00009a34, 0x000001c9, 0x00000169 }, | 481 | {0x00009a30, 0x00000189, 0x000000a8}, |
396 | { 0x00009a38, 0x00000009, 0x000001a9 }, | 482 | {0x00009a34, 0x000001c9, 0x00000169}, |
397 | { 0x00009a3c, 0x00000049, 0x000001e9 }, | 483 | {0x00009a38, 0x00000009, 0x000001a9}, |
398 | { 0x00009a40, 0x00000089, 0x00000029 }, | 484 | {0x00009a3c, 0x00000049, 0x000001e9}, |
399 | { 0x00009a44, 0x00000170, 0x00000069 }, | 485 | {0x00009a40, 0x00000089, 0x00000029}, |
400 | { 0x00009a48, 0x000001b0, 0x00000190 }, | 486 | {0x00009a44, 0x00000170, 0x00000069}, |
401 | { 0x00009a4c, 0x000001f0, 0x000001d0 }, | 487 | {0x00009a48, 0x000001b0, 0x00000190}, |
402 | { 0x00009a50, 0x00000030, 0x00000010 }, | 488 | {0x00009a4c, 0x000001f0, 0x000001d0}, |
403 | { 0x00009a54, 0x00000070, 0x00000050 }, | 489 | {0x00009a50, 0x00000030, 0x00000010}, |
404 | { 0x00009a58, 0x00000191, 0x00000090 }, | 490 | {0x00009a54, 0x00000070, 0x00000050}, |
405 | { 0x00009a5c, 0x000001d1, 0x00000151 }, | 491 | {0x00009a58, 0x00000191, 0x00000090}, |
406 | { 0x00009a60, 0x00000011, 0x00000191 }, | 492 | {0x00009a5c, 0x000001d1, 0x00000151}, |
407 | { 0x00009a64, 0x00000051, 0x000001d1 }, | 493 | {0x00009a60, 0x00000011, 0x00000191}, |
408 | { 0x00009a68, 0x00000091, 0x00000011 }, | 494 | {0x00009a64, 0x00000051, 0x000001d1}, |
409 | { 0x00009a6c, 0x000001b8, 0x00000051 }, | 495 | {0x00009a68, 0x00000091, 0x00000011}, |
410 | { 0x00009a70, 0x000001f8, 0x00000198 }, | 496 | {0x00009a6c, 0x000001b8, 0x00000051}, |
411 | { 0x00009a74, 0x00000038, 0x000001d8 }, | 497 | {0x00009a70, 0x000001f8, 0x00000198}, |
412 | { 0x00009a78, 0x00000078, 0x00000018 }, | 498 | {0x00009a74, 0x00000038, 0x000001d8}, |
413 | { 0x00009a7c, 0x00000199, 0x00000058 }, | 499 | {0x00009a78, 0x00000078, 0x00000018}, |
414 | { 0x00009a80, 0x000001d9, 0x00000098 }, | 500 | {0x00009a7c, 0x00000199, 0x00000058}, |
415 | { 0x00009a84, 0x00000019, 0x00000159 }, | 501 | {0x00009a80, 0x000001d9, 0x00000098}, |
416 | { 0x00009a88, 0x00000059, 0x00000199 }, | 502 | {0x00009a84, 0x00000019, 0x00000159}, |
417 | { 0x00009a8c, 0x00000099, 0x000001d9 }, | 503 | {0x00009a88, 0x00000059, 0x00000199}, |
418 | { 0x00009a90, 0x000000d9, 0x00000019 }, | 504 | {0x00009a8c, 0x00000099, 0x000001d9}, |
419 | { 0x00009a94, 0x000000f9, 0x00000059 }, | 505 | {0x00009a90, 0x000000d9, 0x00000019}, |
420 | { 0x00009a98, 0x000000f9, 0x00000099 }, | 506 | {0x00009a94, 0x000000f9, 0x00000059}, |
421 | { 0x00009a9c, 0x000000f9, 0x000000d9 }, | 507 | {0x00009a98, 0x000000f9, 0x00000099}, |
422 | { 0x00009aa0, 0x000000f9, 0x000000f9 }, | 508 | {0x00009a9c, 0x000000f9, 0x000000d9}, |
423 | { 0x00009aa4, 0x000000f9, 0x000000f9 }, | 509 | {0x00009aa0, 0x000000f9, 0x000000f9}, |
424 | { 0x00009aa8, 0x000000f9, 0x000000f9 }, | 510 | {0x00009aa4, 0x000000f9, 0x000000f9}, |
425 | { 0x00009aac, 0x000000f9, 0x000000f9 }, | 511 | {0x00009aa8, 0x000000f9, 0x000000f9}, |
426 | { 0x00009ab0, 0x000000f9, 0x000000f9 }, | 512 | {0x00009aac, 0x000000f9, 0x000000f9}, |
427 | { 0x00009ab4, 0x000000f9, 0x000000f9 }, | 513 | {0x00009ab0, 0x000000f9, 0x000000f9}, |
428 | { 0x00009ab8, 0x000000f9, 0x000000f9 }, | 514 | {0x00009ab4, 0x000000f9, 0x000000f9}, |
429 | { 0x00009abc, 0x000000f9, 0x000000f9 }, | 515 | {0x00009ab8, 0x000000f9, 0x000000f9}, |
430 | { 0x00009ac0, 0x000000f9, 0x000000f9 }, | 516 | {0x00009abc, 0x000000f9, 0x000000f9}, |
431 | { 0x00009ac4, 0x000000f9, 0x000000f9 }, | 517 | {0x00009ac0, 0x000000f9, 0x000000f9}, |
432 | { 0x00009ac8, 0x000000f9, 0x000000f9 }, | 518 | {0x00009ac4, 0x000000f9, 0x000000f9}, |
433 | { 0x00009acc, 0x000000f9, 0x000000f9 }, | 519 | {0x00009ac8, 0x000000f9, 0x000000f9}, |
434 | { 0x00009ad0, 0x000000f9, 0x000000f9 }, | 520 | {0x00009acc, 0x000000f9, 0x000000f9}, |
435 | { 0x00009ad4, 0x000000f9, 0x000000f9 }, | 521 | {0x00009ad0, 0x000000f9, 0x000000f9}, |
436 | { 0x00009ad8, 0x000000f9, 0x000000f9 }, | 522 | {0x00009ad4, 0x000000f9, 0x000000f9}, |
437 | { 0x00009adc, 0x000000f9, 0x000000f9 }, | 523 | {0x00009ad8, 0x000000f9, 0x000000f9}, |
438 | { 0x00009ae0, 0x000000f9, 0x000000f9 }, | 524 | {0x00009adc, 0x000000f9, 0x000000f9}, |
439 | { 0x00009ae4, 0x000000f9, 0x000000f9 }, | 525 | {0x00009ae0, 0x000000f9, 0x000000f9}, |
440 | { 0x00009ae8, 0x000000f9, 0x000000f9 }, | 526 | {0x00009ae4, 0x000000f9, 0x000000f9}, |
441 | { 0x00009aec, 0x000000f9, 0x000000f9 }, | 527 | {0x00009ae8, 0x000000f9, 0x000000f9}, |
442 | { 0x00009af0, 0x000000f9, 0x000000f9 }, | 528 | {0x00009aec, 0x000000f9, 0x000000f9}, |
443 | { 0x00009af4, 0x000000f9, 0x000000f9 }, | 529 | {0x00009af0, 0x000000f9, 0x000000f9}, |
444 | { 0x00009af8, 0x000000f9, 0x000000f9 }, | 530 | {0x00009af4, 0x000000f9, 0x000000f9}, |
445 | { 0x00009afc, 0x000000f9, 0x000000f9 }, | 531 | {0x00009af8, 0x000000f9, 0x000000f9}, |
532 | {0x00009afc, 0x000000f9, 0x000000f9}, | ||
446 | }; | 533 | }; |
447 | 534 | ||
448 | static const u32 ar5416Bank1_9100[][2] = { | 535 | static const u32 ar5416Bank1_9100[][2] = { |
449 | { 0x000098b0, 0x02108421}, | 536 | /* Addr allmodes */ |
450 | { 0x000098ec, 0x00000008}, | 537 | {0x000098b0, 0x02108421}, |
538 | {0x000098ec, 0x00000008}, | ||
451 | }; | 539 | }; |
452 | 540 | ||
453 | static const u32 ar5416Bank2_9100[][2] = { | 541 | static const u32 ar5416Bank2_9100[][2] = { |
454 | { 0x000098b0, 0x0e73ff17}, | 542 | /* Addr allmodes */ |
455 | { 0x000098e0, 0x00000420}, | 543 | {0x000098b0, 0x0e73ff17}, |
544 | {0x000098e0, 0x00000420}, | ||
456 | }; | 545 | }; |
457 | 546 | ||
458 | static const u32 ar5416Bank3_9100[][3] = { | 547 | static const u32 ar5416Bank3_9100[][3] = { |
459 | { 0x000098f0, 0x01400018, 0x01c00018 }, | 548 | /* Addr 5G_HT20 5G_HT40 */ |
549 | {0x000098f0, 0x01400018, 0x01c00018}, | ||
460 | }; | 550 | }; |
461 | 551 | ||
462 | static const u32 ar5416Bank6_9100[][3] = { | 552 | static const u32 ar5416Bank6_9100[][3] = { |
463 | 553 | /* Addr 5G_HT20 5G_HT40 */ | |
464 | { 0x0000989c, 0x00000000, 0x00000000 }, | 554 | {0x0000989c, 0x00000000, 0x00000000}, |
465 | { 0x0000989c, 0x00000000, 0x00000000 }, | 555 | {0x0000989c, 0x00000000, 0x00000000}, |
466 | { 0x0000989c, 0x00000000, 0x00000000 }, | 556 | {0x0000989c, 0x00000000, 0x00000000}, |
467 | { 0x0000989c, 0x00e00000, 0x00e00000 }, | 557 | {0x0000989c, 0x00e00000, 0x00e00000}, |
468 | { 0x0000989c, 0x005e0000, 0x005e0000 }, | 558 | {0x0000989c, 0x005e0000, 0x005e0000}, |
469 | { 0x0000989c, 0x00120000, 0x00120000 }, | 559 | {0x0000989c, 0x00120000, 0x00120000}, |
470 | { 0x0000989c, 0x00620000, 0x00620000 }, | 560 | {0x0000989c, 0x00620000, 0x00620000}, |
471 | { 0x0000989c, 0x00020000, 0x00020000 }, | 561 | {0x0000989c, 0x00020000, 0x00020000}, |
472 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 562 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
473 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 563 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
474 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 564 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
475 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 565 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
476 | { 0x0000989c, 0x005f0000, 0x005f0000 }, | 566 | {0x0000989c, 0x005f0000, 0x005f0000}, |
477 | { 0x0000989c, 0x00870000, 0x00870000 }, | 567 | {0x0000989c, 0x00870000, 0x00870000}, |
478 | { 0x0000989c, 0x00f90000, 0x00f90000 }, | 568 | {0x0000989c, 0x00f90000, 0x00f90000}, |
479 | { 0x0000989c, 0x007b0000, 0x007b0000 }, | 569 | {0x0000989c, 0x007b0000, 0x007b0000}, |
480 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 570 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
481 | { 0x0000989c, 0x00f50000, 0x00f50000 }, | 571 | {0x0000989c, 0x00f50000, 0x00f50000}, |
482 | { 0x0000989c, 0x00dc0000, 0x00dc0000 }, | 572 | {0x0000989c, 0x00dc0000, 0x00dc0000}, |
483 | { 0x0000989c, 0x00110000, 0x00110000 }, | 573 | {0x0000989c, 0x00110000, 0x00110000}, |
484 | { 0x0000989c, 0x006100a8, 0x006100a8 }, | 574 | {0x0000989c, 0x006100a8, 0x006100a8}, |
485 | { 0x0000989c, 0x004210a2, 0x004210a2 }, | 575 | {0x0000989c, 0x004210a2, 0x004210a2}, |
486 | { 0x0000989c, 0x0014000f, 0x0014000f }, | 576 | {0x0000989c, 0x0014000f, 0x0014000f}, |
487 | { 0x0000989c, 0x00c40002, 0x00c40002 }, | 577 | {0x0000989c, 0x00c40002, 0x00c40002}, |
488 | { 0x0000989c, 0x003000f2, 0x003000f2 }, | 578 | {0x0000989c, 0x003000f2, 0x003000f2}, |
489 | { 0x0000989c, 0x00440016, 0x00440016 }, | 579 | {0x0000989c, 0x00440016, 0x00440016}, |
490 | { 0x0000989c, 0x00410040, 0x00410040 }, | 580 | {0x0000989c, 0x00410040, 0x00410040}, |
491 | { 0x0000989c, 0x000180d6, 0x000180d6 }, | 581 | {0x0000989c, 0x000180d6, 0x000180d6}, |
492 | { 0x0000989c, 0x0000c0aa, 0x0000c0aa }, | 582 | {0x0000989c, 0x0000c0aa, 0x0000c0aa}, |
493 | { 0x0000989c, 0x000000b1, 0x000000b1 }, | 583 | {0x0000989c, 0x000000b1, 0x000000b1}, |
494 | { 0x0000989c, 0x00002000, 0x00002000 }, | 584 | {0x0000989c, 0x00002000, 0x00002000}, |
495 | { 0x0000989c, 0x000000d4, 0x000000d4 }, | 585 | {0x0000989c, 0x000000d4, 0x000000d4}, |
496 | { 0x000098d0, 0x0000000f, 0x0010000f }, | 586 | {0x000098d0, 0x0000000f, 0x0010000f}, |
497 | }; | 587 | }; |
498 | 588 | ||
499 | |||
500 | static const u32 ar5416Bank6TPC_9100[][3] = { | 589 | static const u32 ar5416Bank6TPC_9100[][3] = { |
501 | 590 | /* Addr 5G_HT20 5G_HT40 */ | |
502 | { 0x0000989c, 0x00000000, 0x00000000 }, | 591 | {0x0000989c, 0x00000000, 0x00000000}, |
503 | { 0x0000989c, 0x00000000, 0x00000000 }, | 592 | {0x0000989c, 0x00000000, 0x00000000}, |
504 | { 0x0000989c, 0x00000000, 0x00000000 }, | 593 | {0x0000989c, 0x00000000, 0x00000000}, |
505 | { 0x0000989c, 0x00e00000, 0x00e00000 }, | 594 | {0x0000989c, 0x00e00000, 0x00e00000}, |
506 | { 0x0000989c, 0x005e0000, 0x005e0000 }, | 595 | {0x0000989c, 0x005e0000, 0x005e0000}, |
507 | { 0x0000989c, 0x00120000, 0x00120000 }, | 596 | {0x0000989c, 0x00120000, 0x00120000}, |
508 | { 0x0000989c, 0x00620000, 0x00620000 }, | 597 | {0x0000989c, 0x00620000, 0x00620000}, |
509 | { 0x0000989c, 0x00020000, 0x00020000 }, | 598 | {0x0000989c, 0x00020000, 0x00020000}, |
510 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 599 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
511 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 600 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
512 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 601 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
513 | { 0x0000989c, 0x40ff0000, 0x40ff0000 }, | 602 | {0x0000989c, 0x40ff0000, 0x40ff0000}, |
514 | { 0x0000989c, 0x005f0000, 0x005f0000 }, | 603 | {0x0000989c, 0x005f0000, 0x005f0000}, |
515 | { 0x0000989c, 0x00870000, 0x00870000 }, | 604 | {0x0000989c, 0x00870000, 0x00870000}, |
516 | { 0x0000989c, 0x00f90000, 0x00f90000 }, | 605 | {0x0000989c, 0x00f90000, 0x00f90000}, |
517 | { 0x0000989c, 0x007b0000, 0x007b0000 }, | 606 | {0x0000989c, 0x007b0000, 0x007b0000}, |
518 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 607 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
519 | { 0x0000989c, 0x00f50000, 0x00f50000 }, | 608 | {0x0000989c, 0x00f50000, 0x00f50000}, |
520 | { 0x0000989c, 0x00dc0000, 0x00dc0000 }, | 609 | {0x0000989c, 0x00dc0000, 0x00dc0000}, |
521 | { 0x0000989c, 0x00110000, 0x00110000 }, | 610 | {0x0000989c, 0x00110000, 0x00110000}, |
522 | { 0x0000989c, 0x006100a8, 0x006100a8 }, | 611 | {0x0000989c, 0x006100a8, 0x006100a8}, |
523 | { 0x0000989c, 0x00423022, 0x00423022 }, | 612 | {0x0000989c, 0x00423022, 0x00423022}, |
524 | { 0x0000989c, 0x2014008f, 0x2014008f }, | 613 | {0x0000989c, 0x2014008f, 0x2014008f}, |
525 | { 0x0000989c, 0x00c40002, 0x00c40002 }, | 614 | {0x0000989c, 0x00c40002, 0x00c40002}, |
526 | { 0x0000989c, 0x003000f2, 0x003000f2 }, | 615 | {0x0000989c, 0x003000f2, 0x003000f2}, |
527 | { 0x0000989c, 0x00440016, 0x00440016 }, | 616 | {0x0000989c, 0x00440016, 0x00440016}, |
528 | { 0x0000989c, 0x00410040, 0x00410040 }, | 617 | {0x0000989c, 0x00410040, 0x00410040}, |
529 | { 0x0000989c, 0x0001805e, 0x0001805e }, | 618 | {0x0000989c, 0x0001805e, 0x0001805e}, |
530 | { 0x0000989c, 0x0000c0ab, 0x0000c0ab }, | 619 | {0x0000989c, 0x0000c0ab, 0x0000c0ab}, |
531 | { 0x0000989c, 0x000000e1, 0x000000e1 }, | 620 | {0x0000989c, 0x000000e1, 0x000000e1}, |
532 | { 0x0000989c, 0x00007080, 0x00007080 }, | 621 | {0x0000989c, 0x00007080, 0x00007080}, |
533 | { 0x0000989c, 0x000000d4, 0x000000d4 }, | 622 | {0x0000989c, 0x000000d4, 0x000000d4}, |
534 | { 0x000098d0, 0x0000000f, 0x0010000f }, | 623 | {0x000098d0, 0x0000000f, 0x0010000f}, |
535 | }; | 624 | }; |
536 | 625 | ||
537 | static const u32 ar5416Bank7_9100[][2] = { | 626 | static const u32 ar5416Bank7_9100[][2] = { |
538 | { 0x0000989c, 0x00000500 }, | 627 | /* Addr allmodes */ |
539 | { 0x0000989c, 0x00000800 }, | 628 | {0x0000989c, 0x00000500}, |
540 | { 0x000098cc, 0x0000000e }, | 629 | {0x0000989c, 0x00000800}, |
630 | {0x000098cc, 0x0000000e}, | ||
541 | }; | 631 | }; |
542 | 632 | ||
543 | static const u32 ar5416Addac_9100[][2] = { | 633 | static const u32 ar5416Addac_9100[][2] = { |
544 | {0x0000989c, 0x00000000 }, | 634 | /* Addr allmodes */ |
545 | {0x0000989c, 0x00000000 }, | 635 | {0x0000989c, 0x00000000}, |
546 | {0x0000989c, 0x00000000 }, | 636 | {0x0000989c, 0x00000000}, |
547 | {0x0000989c, 0x00000000 }, | 637 | {0x0000989c, 0x00000000}, |
548 | {0x0000989c, 0x00000000 }, | 638 | {0x0000989c, 0x00000000}, |
549 | {0x0000989c, 0x00000000 }, | 639 | {0x0000989c, 0x00000000}, |
550 | {0x0000989c, 0x00000000 }, | 640 | {0x0000989c, 0x00000000}, |
551 | {0x0000989c, 0x00000010 }, | 641 | {0x0000989c, 0x00000000}, |
552 | {0x0000989c, 0x00000000 }, | 642 | {0x0000989c, 0x00000010}, |
553 | {0x0000989c, 0x00000000 }, | 643 | {0x0000989c, 0x00000000}, |
554 | {0x0000989c, 0x00000000 }, | 644 | {0x0000989c, 0x00000000}, |
555 | {0x0000989c, 0x00000000 }, | 645 | {0x0000989c, 0x00000000}, |
556 | {0x0000989c, 0x00000000 }, | 646 | {0x0000989c, 0x00000000}, |
557 | {0x0000989c, 0x00000000 }, | 647 | {0x0000989c, 0x00000000}, |
558 | {0x0000989c, 0x00000000 }, | 648 | {0x0000989c, 0x00000000}, |
559 | {0x0000989c, 0x00000000 }, | 649 | {0x0000989c, 0x00000000}, |
560 | {0x0000989c, 0x00000000 }, | 650 | {0x0000989c, 0x00000000}, |
561 | {0x0000989c, 0x00000000 }, | 651 | {0x0000989c, 0x00000000}, |
562 | {0x0000989c, 0x00000000 }, | 652 | {0x0000989c, 0x00000000}, |
563 | {0x0000989c, 0x00000000 }, | 653 | {0x0000989c, 0x00000000}, |
564 | {0x0000989c, 0x00000000 }, | 654 | {0x0000989c, 0x00000000}, |
565 | {0x0000989c, 0x000000c0 }, | 655 | {0x0000989c, 0x00000000}, |
566 | {0x0000989c, 0x00000015 }, | 656 | {0x0000989c, 0x000000c0}, |
567 | {0x0000989c, 0x00000000 }, | 657 | {0x0000989c, 0x00000015}, |
568 | {0x0000989c, 0x00000000 }, | 658 | {0x0000989c, 0x00000000}, |
569 | {0x0000989c, 0x00000000 }, | 659 | {0x0000989c, 0x00000000}, |
570 | {0x0000989c, 0x00000000 }, | 660 | {0x0000989c, 0x00000000}, |
571 | {0x0000989c, 0x00000000 }, | 661 | {0x0000989c, 0x00000000}, |
572 | {0x0000989c, 0x00000000 }, | 662 | {0x0000989c, 0x00000000}, |
573 | {0x0000989c, 0x00000000 }, | 663 | {0x0000989c, 0x00000000}, |
574 | {0x0000989c, 0x00000000 }, | 664 | {0x0000989c, 0x00000000}, |
575 | {0x000098cc, 0x00000000 }, | 665 | {0x0000989c, 0x00000000}, |
666 | {0x000098cc, 0x00000000}, | ||
576 | }; | 667 | }; |
577 | 668 | ||
578 | static const u32 ar5416Modes_9160[][6] = { | 669 | static const u32 ar5416Modes_9160[][6] = { |
579 | { 0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0 }, | 670 | {0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0}, |
580 | { 0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0 }, | 671 | {0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0}, |
581 | { 0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180 }, | 672 | {0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180}, |
582 | { 0x000010f0, 0x0000a000, 0x00014000, 0x00016000, 0x0000b000, 0x00014008 }, | 673 | {0x000010f0, 0x0000a000, 0x00014000, 0x00016000, 0x0000b000, 0x00014008}, |
583 | { 0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00, 0x06e006e0 }, | 674 | {0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00, 0x06e006e0}, |
584 | { 0x0000801c, 0x128d93a7, 0x128d93cf, 0x12e013d7, 0x12e013ab, 0x098813cf }, | 675 | {0x0000801c, 0x128d93a7, 0x128d93cf, 0x12e013d7, 0x12e013ab, 0x098813cf}, |
585 | { 0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303 }, | 676 | {0x00008120, 0x08f04800, 0x08f04800, 0x08f04810, 0x08f04810, 0x08f04810}, |
586 | { 0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200 }, | 677 | {0x000081d0, 0x00003210, 0x00003210, 0x0000320a, 0x0000320a, 0x0000320a}, |
587 | { 0x00009824, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }, | 678 | {0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303}, |
588 | { 0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001 }, | 679 | {0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200}, |
589 | { 0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }, | 680 | {0x00009824, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, |
590 | { 0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007 }, | 681 | {0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001}, |
591 | { 0x00009844, 0x0372161e, 0x0372161e, 0x037216a0, 0x037216a0, 0x037216a0 }, | 682 | {0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, |
592 | { 0x00009848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68 }, | 683 | {0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007}, |
593 | { 0x0000a848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68 }, | 684 | {0x00009844, 0x0372161e, 0x0372161e, 0x037216a0, 0x037216a0, 0x037216a0}, |
594 | { 0x0000b848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68 }, | 685 | {0x00009848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68}, |
595 | { 0x00009850, 0x6c48b4e2, 0x6c48b4e2, 0x6c48b0e2, 0x6c48b0e2, 0x6c48b0e2 }, | 686 | {0x0000a848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68}, |
596 | { 0x00009858, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e }, | 687 | {0x0000b848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68}, |
597 | { 0x0000985c, 0x31395d5e, 0x31395d5e, 0x31395d5e, 0x31395d5e, 0x31395d5e }, | 688 | {0x00009850, 0x6c48b4e2, 0x6d48b4e2, 0x6d48b0e2, 0x6c48b0e2, 0x6c48b0e2}, |
598 | { 0x00009860, 0x00048d18, 0x00048d18, 0x00048d20, 0x00048d20, 0x00048d18 }, | 689 | {0x00009858, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e}, |
599 | { 0x0000c864, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00 }, | 690 | {0x0000985c, 0x31395d5e, 0x3139605e, 0x3139605e, 0x31395d5e, 0x31395d5e}, |
600 | { 0x00009868, 0x409a40d0, 0x409a40d0, 0x409a40d0, 0x409a40d0, 0x409a40d0 }, | 691 | {0x00009860, 0x00048d18, 0x00048d18, 0x00048d20, 0x00048d20, 0x00048d18}, |
601 | { 0x0000986c, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081 }, | 692 | {0x00009864, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00}, |
602 | { 0x00009914, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898, 0x000007d0 }, | 693 | {0x00009868, 0x409a40d0, 0x409a40d0, 0x409a40d0, 0x409a40d0, 0x409a40d0}, |
603 | { 0x00009918, 0x0000000a, 0x00000014, 0x00000016, 0x0000000b, 0x00000016 }, | 694 | {0x0000986c, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081}, |
604 | { 0x00009924, 0xd00a8a07, 0xd00a8a07, 0xd00a8a0d, 0xd00a8a0d, 0xd00a8a0d }, | 695 | {0x00009914, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898, 0x000007d0}, |
605 | { 0x00009944, 0xffb81020, 0xffb81020, 0xffb81020, 0xffb81020, 0xffb81020 }, | 696 | {0x00009918, 0x0000000a, 0x00000014, 0x00000016, 0x0000000b, 0x00000016}, |
606 | { 0x00009960, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40 }, | 697 | {0x00009924, 0xd00a8a07, 0xd00a8a07, 0xd00a8a0d, 0xd00a8a0d, 0xd00a8a0d}, |
607 | { 0x0000a960, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40 }, | 698 | {0x00009944, 0xffb81020, 0xffb81020, 0xffb81020, 0xffb81020, 0xffb81020}, |
608 | { 0x0000b960, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40 }, | 699 | {0x00009960, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40}, |
609 | { 0x00009964, 0x00001120, 0x00001120, 0x00001120, 0x00001120, 0x00001120 }, | 700 | {0x0000a960, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40}, |
610 | { 0x0000c968, 0x000003b5, 0x000003b5, 0x000003ce, 0x000003ce, 0x000003ce }, | 701 | {0x0000b960, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40, 0x00009b40}, |
611 | { 0x0000c9bc, 0x001a0600, 0x001a0600, 0x001a0c00, 0x001a0c00, 0x001a0c00 }, | 702 | {0x00009964, 0x00001120, 0x00001120, 0x00001120, 0x00001120, 0x00001120}, |
612 | { 0x000099c0, 0x038919be, 0x038919be, 0x038919be, 0x038919be, 0x038919be }, | 703 | {0x0000c968, 0x000003b5, 0x000003b5, 0x000003ce, 0x000003ce, 0x000003ce}, |
613 | { 0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77 }, | 704 | {0x000099bc, 0x001a0600, 0x001a0600, 0x001a0c00, 0x001a0c00, 0x001a0c00}, |
614 | { 0x000099c8, 0x60f65329, 0x60f65329, 0x60f65329, 0x60f65329, 0x60f65329 }, | 705 | {0x000099c0, 0x038919be, 0x038919be, 0x038919be, 0x038919be, 0x038919be}, |
615 | { 0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8 }, | 706 | {0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77}, |
616 | { 0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384 }, | 707 | {0x000099c8, 0x6af65329, 0x6af65329, 0x6af65329, 0x6af65329, 0x6af65329}, |
617 | { 0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 708 | {0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8}, |
618 | { 0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 709 | {0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384}, |
619 | { 0x0000a204, 0x00000880, 0x00000880, 0x00000880, 0x00000880, 0x00000880 }, | 710 | {0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
620 | { 0x0000a208, 0xd6be4788, 0xd6be4788, 0xd03e4788, 0xd03e4788, 0xd03e4788 }, | 711 | {0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
621 | { 0x0000a20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120 }, | 712 | {0x0000a204, 0x00000880, 0x00000880, 0x00000880, 0x00000880, 0x00000880}, |
622 | { 0x0000b20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120 }, | 713 | {0x0000a208, 0xd6be4788, 0xd6be4788, 0xd03e4788, 0xd03e4788, 0xd03e4788}, |
623 | { 0x0000c20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120 }, | 714 | {0x0000a20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120}, |
624 | { 0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a }, | 715 | {0x0000b20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120}, |
625 | { 0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000 }, | 716 | {0x0000c20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120}, |
626 | { 0x0000a274, 0x0a1a9caa, 0x0a1a9caa, 0x0a1a7caa, 0x0a1a7caa, 0x0a1a7caa }, | 717 | {0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a}, |
627 | { 0x0000a300, 0x18010000, 0x18010000, 0x18010000, 0x18010000, 0x18010000 }, | 718 | {0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000}, |
628 | { 0x0000a304, 0x30032602, 0x30032602, 0x2e032402, 0x2e032402, 0x2e032402 }, | 719 | {0x0000a274, 0x0a1a9caa, 0x0a1a9caa, 0x0a1a7caa, 0x0a1a7caa, 0x0a1a7caa}, |
629 | { 0x0000a308, 0x48073e06, 0x48073e06, 0x4a0a3c06, 0x4a0a3c06, 0x4a0a3c06 }, | 720 | {0x0000a300, 0x18010000, 0x18010000, 0x18010000, 0x18010000, 0x18010000}, |
630 | { 0x0000a30c, 0x560b4c0a, 0x560b4c0a, 0x621a540b, 0x621a540b, 0x621a540b }, | 721 | {0x0000a304, 0x30032602, 0x30032602, 0x2e032402, 0x2e032402, 0x2e032402}, |
631 | { 0x0000a310, 0x641a600f, 0x641a600f, 0x764f6c1b, 0x764f6c1b, 0x764f6c1b }, | 722 | {0x0000a308, 0x48073e06, 0x48073e06, 0x4a0a3c06, 0x4a0a3c06, 0x4a0a3c06}, |
632 | { 0x0000a314, 0x7a4f6e1b, 0x7a4f6e1b, 0x845b7a5a, 0x845b7a5a, 0x845b7a5a }, | 723 | {0x0000a30c, 0x560b4c0a, 0x560b4c0a, 0x621a540b, 0x621a540b, 0x621a540b}, |
633 | { 0x0000a318, 0x8c5b7e5a, 0x8c5b7e5a, 0x950f8ccf, 0x950f8ccf, 0x950f8ccf }, | 724 | {0x0000a310, 0x641a600f, 0x641a600f, 0x764f6c1b, 0x764f6c1b, 0x764f6c1b}, |
634 | { 0x0000a31c, 0x9d0f96cf, 0x9d0f96cf, 0xa5cf9b4f, 0xa5cf9b4f, 0xa5cf9b4f }, | 725 | {0x0000a314, 0x7a4f6e1b, 0x7a4f6e1b, 0x845b7a5a, 0x845b7a5a, 0x845b7a5a}, |
635 | { 0x0000a320, 0xb51fa69f, 0xb51fa69f, 0xbddfaf1f, 0xbddfaf1f, 0xbddfaf1f }, | 726 | {0x0000a318, 0x8c5b7e5a, 0x8c5b7e5a, 0x950f8ccf, 0x950f8ccf, 0x950f8ccf}, |
636 | { 0x0000a324, 0xcb3fbd07, 0xcb3fbcbf, 0xd1ffc93f, 0xd1ffc93f, 0xd1ffc93f }, | 727 | {0x0000a31c, 0x9d0f96cf, 0x9d0f96cf, 0xa5cf9b4f, 0xa5cf9b4f, 0xa5cf9b4f}, |
637 | { 0x0000a328, 0x0000d7bf, 0x0000d7bf, 0x00000000, 0x00000000, 0x00000000 }, | 728 | {0x0000a320, 0xb51fa69f, 0xb51fa69f, 0xbddfaf1f, 0xbddfaf1f, 0xbddfaf1f}, |
638 | { 0x0000a32c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 729 | {0x0000a324, 0xcb3fbd07, 0xcb3fbcbf, 0xd1ffc93f, 0xd1ffc93f, 0xd1ffc93f}, |
639 | { 0x0000a330, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 730 | {0x0000a328, 0x0000d7bf, 0x0000d7bf, 0x00000000, 0x00000000, 0x00000000}, |
640 | { 0x0000a334, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 731 | {0x0000a32c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
732 | {0x0000a330, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, | ||
733 | {0x0000a334, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, | ||
641 | }; | 734 | }; |
642 | 735 | ||
643 | static const u32 ar5416Common_9160[][2] = { | 736 | static const u32 ar5416Common_9160[][2] = { |
644 | { 0x0000000c, 0x00000000 }, | 737 | /* Addr allmodes */ |
645 | { 0x00000030, 0x00020015 }, | 738 | {0x0000000c, 0x00000000}, |
646 | { 0x00000034, 0x00000005 }, | 739 | {0x00000030, 0x00020015}, |
647 | { 0x00000040, 0x00000000 }, | 740 | {0x00000034, 0x00000005}, |
648 | { 0x00000044, 0x00000008 }, | 741 | {0x00000040, 0x00000000}, |
649 | { 0x00000048, 0x00000008 }, | 742 | {0x00000044, 0x00000008}, |
650 | { 0x0000004c, 0x00000010 }, | 743 | {0x00000048, 0x00000008}, |
651 | { 0x00000050, 0x00000000 }, | 744 | {0x0000004c, 0x00000010}, |
652 | { 0x00000054, 0x0000001f }, | 745 | {0x00000050, 0x00000000}, |
653 | { 0x00000800, 0x00000000 }, | 746 | {0x00000054, 0x0000001f}, |
654 | { 0x00000804, 0x00000000 }, | 747 | {0x00000800, 0x00000000}, |
655 | { 0x00000808, 0x00000000 }, | 748 | {0x00000804, 0x00000000}, |
656 | { 0x0000080c, 0x00000000 }, | 749 | {0x00000808, 0x00000000}, |
657 | { 0x00000810, 0x00000000 }, | 750 | {0x0000080c, 0x00000000}, |
658 | { 0x00000814, 0x00000000 }, | 751 | {0x00000810, 0x00000000}, |
659 | { 0x00000818, 0x00000000 }, | 752 | {0x00000814, 0x00000000}, |
660 | { 0x0000081c, 0x00000000 }, | 753 | {0x00000818, 0x00000000}, |
661 | { 0x00000820, 0x00000000 }, | 754 | {0x0000081c, 0x00000000}, |
662 | { 0x00000824, 0x00000000 }, | 755 | {0x00000820, 0x00000000}, |
663 | { 0x00001040, 0x002ffc0f }, | 756 | {0x00000824, 0x00000000}, |
664 | { 0x00001044, 0x002ffc0f }, | 757 | {0x00001040, 0x002ffc0f}, |
665 | { 0x00001048, 0x002ffc0f }, | 758 | {0x00001044, 0x002ffc0f}, |
666 | { 0x0000104c, 0x002ffc0f }, | 759 | {0x00001048, 0x002ffc0f}, |
667 | { 0x00001050, 0x002ffc0f }, | 760 | {0x0000104c, 0x002ffc0f}, |
668 | { 0x00001054, 0x002ffc0f }, | 761 | {0x00001050, 0x002ffc0f}, |
669 | { 0x00001058, 0x002ffc0f }, | 762 | {0x00001054, 0x002ffc0f}, |
670 | { 0x0000105c, 0x002ffc0f }, | 763 | {0x00001058, 0x002ffc0f}, |
671 | { 0x00001060, 0x002ffc0f }, | 764 | {0x0000105c, 0x002ffc0f}, |
672 | { 0x00001064, 0x002ffc0f }, | 765 | {0x00001060, 0x002ffc0f}, |
673 | { 0x00001230, 0x00000000 }, | 766 | {0x00001064, 0x002ffc0f}, |
674 | { 0x00001270, 0x00000000 }, | 767 | {0x00001230, 0x00000000}, |
675 | { 0x00001038, 0x00000000 }, | 768 | {0x00001270, 0x00000000}, |
676 | { 0x00001078, 0x00000000 }, | 769 | {0x00001038, 0x00000000}, |
677 | { 0x000010b8, 0x00000000 }, | 770 | {0x00001078, 0x00000000}, |
678 | { 0x000010f8, 0x00000000 }, | 771 | {0x000010b8, 0x00000000}, |
679 | { 0x00001138, 0x00000000 }, | 772 | {0x000010f8, 0x00000000}, |
680 | { 0x00001178, 0x00000000 }, | 773 | {0x00001138, 0x00000000}, |
681 | { 0x000011b8, 0x00000000 }, | 774 | {0x00001178, 0x00000000}, |
682 | { 0x000011f8, 0x00000000 }, | 775 | {0x000011b8, 0x00000000}, |
683 | { 0x00001238, 0x00000000 }, | 776 | {0x000011f8, 0x00000000}, |
684 | { 0x00001278, 0x00000000 }, | 777 | {0x00001238, 0x00000000}, |
685 | { 0x000012b8, 0x00000000 }, | 778 | {0x00001278, 0x00000000}, |
686 | { 0x000012f8, 0x00000000 }, | 779 | {0x000012b8, 0x00000000}, |
687 | { 0x00001338, 0x00000000 }, | 780 | {0x000012f8, 0x00000000}, |
688 | { 0x00001378, 0x00000000 }, | 781 | {0x00001338, 0x00000000}, |
689 | { 0x000013b8, 0x00000000 }, | 782 | {0x00001378, 0x00000000}, |
690 | { 0x000013f8, 0x00000000 }, | 783 | {0x000013b8, 0x00000000}, |
691 | { 0x00001438, 0x00000000 }, | 784 | {0x000013f8, 0x00000000}, |
692 | { 0x00001478, 0x00000000 }, | 785 | {0x00001438, 0x00000000}, |
693 | { 0x000014b8, 0x00000000 }, | 786 | {0x00001478, 0x00000000}, |
694 | { 0x000014f8, 0x00000000 }, | 787 | {0x000014b8, 0x00000000}, |
695 | { 0x00001538, 0x00000000 }, | 788 | {0x000014f8, 0x00000000}, |
696 | { 0x00001578, 0x00000000 }, | 789 | {0x00001538, 0x00000000}, |
697 | { 0x000015b8, 0x00000000 }, | 790 | {0x00001578, 0x00000000}, |
698 | { 0x000015f8, 0x00000000 }, | 791 | {0x000015b8, 0x00000000}, |
699 | { 0x00001638, 0x00000000 }, | 792 | {0x000015f8, 0x00000000}, |
700 | { 0x00001678, 0x00000000 }, | 793 | {0x00001638, 0x00000000}, |
701 | { 0x000016b8, 0x00000000 }, | 794 | {0x00001678, 0x00000000}, |
702 | { 0x000016f8, 0x00000000 }, | 795 | {0x000016b8, 0x00000000}, |
703 | { 0x00001738, 0x00000000 }, | 796 | {0x000016f8, 0x00000000}, |
704 | { 0x00001778, 0x00000000 }, | 797 | {0x00001738, 0x00000000}, |
705 | { 0x000017b8, 0x00000000 }, | 798 | {0x00001778, 0x00000000}, |
706 | { 0x000017f8, 0x00000000 }, | 799 | {0x000017b8, 0x00000000}, |
707 | { 0x0000103c, 0x00000000 }, | 800 | {0x000017f8, 0x00000000}, |
708 | { 0x0000107c, 0x00000000 }, | 801 | {0x0000103c, 0x00000000}, |
709 | { 0x000010bc, 0x00000000 }, | 802 | {0x0000107c, 0x00000000}, |
710 | { 0x000010fc, 0x00000000 }, | 803 | {0x000010bc, 0x00000000}, |
711 | { 0x0000113c, 0x00000000 }, | 804 | {0x000010fc, 0x00000000}, |
712 | { 0x0000117c, 0x00000000 }, | 805 | {0x0000113c, 0x00000000}, |
713 | { 0x000011bc, 0x00000000 }, | 806 | {0x0000117c, 0x00000000}, |
714 | { 0x000011fc, 0x00000000 }, | 807 | {0x000011bc, 0x00000000}, |
715 | { 0x0000123c, 0x00000000 }, | 808 | {0x000011fc, 0x00000000}, |
716 | { 0x0000127c, 0x00000000 }, | 809 | {0x0000123c, 0x00000000}, |
717 | { 0x000012bc, 0x00000000 }, | 810 | {0x0000127c, 0x00000000}, |
718 | { 0x000012fc, 0x00000000 }, | 811 | {0x000012bc, 0x00000000}, |
719 | { 0x0000133c, 0x00000000 }, | 812 | {0x000012fc, 0x00000000}, |
720 | { 0x0000137c, 0x00000000 }, | 813 | {0x0000133c, 0x00000000}, |
721 | { 0x000013bc, 0x00000000 }, | 814 | {0x0000137c, 0x00000000}, |
722 | { 0x000013fc, 0x00000000 }, | 815 | {0x000013bc, 0x00000000}, |
723 | { 0x0000143c, 0x00000000 }, | 816 | {0x000013fc, 0x00000000}, |
724 | { 0x0000147c, 0x00000000 }, | 817 | {0x0000143c, 0x00000000}, |
725 | { 0x00004030, 0x00000002 }, | 818 | {0x0000147c, 0x00000000}, |
726 | { 0x0000403c, 0x00000002 }, | 819 | {0x00004030, 0x00000002}, |
727 | { 0x00007010, 0x00000020 }, | 820 | {0x0000403c, 0x00000002}, |
728 | { 0x00007038, 0x000004c2 }, | 821 | {0x00007010, 0x00000020}, |
729 | { 0x00008004, 0x00000000 }, | 822 | {0x00007038, 0x000004c2}, |
730 | { 0x00008008, 0x00000000 }, | 823 | {0x00008004, 0x00000000}, |
731 | { 0x0000800c, 0x00000000 }, | 824 | {0x00008008, 0x00000000}, |
732 | { 0x00008018, 0x00000700 }, | 825 | {0x0000800c, 0x00000000}, |
733 | { 0x00008020, 0x00000000 }, | 826 | {0x00008018, 0x00000700}, |
734 | { 0x00008038, 0x00000000 }, | 827 | {0x00008020, 0x00000000}, |
735 | { 0x0000803c, 0x00000000 }, | 828 | {0x00008038, 0x00000000}, |
736 | { 0x00008048, 0x40000000 }, | 829 | {0x0000803c, 0x00000000}, |
737 | { 0x00008054, 0x00000000 }, | 830 | {0x00008048, 0x40000000}, |
738 | { 0x00008058, 0x00000000 }, | 831 | {0x00008054, 0x00000000}, |
739 | { 0x0000805c, 0x000fc78f }, | 832 | {0x00008058, 0x00000000}, |
740 | { 0x00008060, 0x0000000f }, | 833 | {0x0000805c, 0x000fc78f}, |
741 | { 0x00008064, 0x00000000 }, | 834 | {0x00008060, 0x0000000f}, |
742 | { 0x000080c0, 0x2a82301a }, | 835 | {0x00008064, 0x00000000}, |
743 | { 0x000080c4, 0x05dc01e0 }, | 836 | {0x000080c0, 0x2a82301a}, |
744 | { 0x000080c8, 0x1f402710 }, | 837 | {0x000080c4, 0x05dc01e0}, |
745 | { 0x000080cc, 0x01f40000 }, | 838 | {0x000080c8, 0x1f402710}, |
746 | { 0x000080d0, 0x00001e00 }, | 839 | {0x000080cc, 0x01f40000}, |
747 | { 0x000080d4, 0x00000000 }, | 840 | {0x000080d0, 0x00001e00}, |
748 | { 0x000080d8, 0x00400000 }, | 841 | {0x000080d4, 0x00000000}, |
749 | { 0x000080e0, 0xffffffff }, | 842 | {0x000080d8, 0x00400000}, |
750 | { 0x000080e4, 0x0000ffff }, | 843 | {0x000080e0, 0xffffffff}, |
751 | { 0x000080e8, 0x003f3f3f }, | 844 | {0x000080e4, 0x0000ffff}, |
752 | { 0x000080ec, 0x00000000 }, | 845 | {0x000080e8, 0x003f3f3f}, |
753 | { 0x000080f0, 0x00000000 }, | 846 | {0x000080ec, 0x00000000}, |
754 | { 0x000080f4, 0x00000000 }, | 847 | {0x000080f0, 0x00000000}, |
755 | { 0x000080f8, 0x00000000 }, | 848 | {0x000080f4, 0x00000000}, |
756 | { 0x000080fc, 0x00020000 }, | 849 | {0x000080f8, 0x00000000}, |
757 | { 0x00008100, 0x00020000 }, | 850 | {0x000080fc, 0x00020000}, |
758 | { 0x00008104, 0x00000001 }, | 851 | {0x00008100, 0x00020000}, |
759 | { 0x00008108, 0x00000052 }, | 852 | {0x00008104, 0x00000001}, |
760 | { 0x0000810c, 0x00000000 }, | 853 | {0x00008108, 0x00000052}, |
761 | { 0x00008110, 0x00000168 }, | 854 | {0x0000810c, 0x00000000}, |
762 | { 0x00008118, 0x000100aa }, | 855 | {0x00008110, 0x00000168}, |
763 | { 0x0000811c, 0x00003210 }, | 856 | {0x00008118, 0x000100aa}, |
764 | { 0x00008120, 0x08f04800 }, | 857 | {0x0000811c, 0x00003210}, |
765 | { 0x00008124, 0x00000000 }, | 858 | {0x00008124, 0x00000000}, |
766 | { 0x00008128, 0x00000000 }, | 859 | {0x00008128, 0x00000000}, |
767 | { 0x0000812c, 0x00000000 }, | 860 | {0x0000812c, 0x00000000}, |
768 | { 0x00008130, 0x00000000 }, | 861 | {0x00008130, 0x00000000}, |
769 | { 0x00008134, 0x00000000 }, | 862 | {0x00008134, 0x00000000}, |
770 | { 0x00008138, 0x00000000 }, | 863 | {0x00008138, 0x00000000}, |
771 | { 0x0000813c, 0x00000000 }, | 864 | {0x0000813c, 0x00000000}, |
772 | { 0x00008144, 0xffffffff }, | 865 | {0x00008144, 0xffffffff}, |
773 | { 0x00008168, 0x00000000 }, | 866 | {0x00008168, 0x00000000}, |
774 | { 0x0000816c, 0x00000000 }, | 867 | {0x0000816c, 0x00000000}, |
775 | { 0x00008170, 0x32143320 }, | 868 | {0x00008170, 0x32143320}, |
776 | { 0x00008174, 0xfaa4fa50 }, | 869 | {0x00008174, 0xfaa4fa50}, |
777 | { 0x00008178, 0x00000100 }, | 870 | {0x00008178, 0x00000100}, |
778 | { 0x0000817c, 0x00000000 }, | 871 | {0x0000817c, 0x00000000}, |
779 | { 0x000081c4, 0x00000000 }, | 872 | {0x000081c4, 0x00000000}, |
780 | { 0x000081d0, 0x00003210 }, | 873 | {0x000081ec, 0x00000000}, |
781 | { 0x000081ec, 0x00000000 }, | 874 | {0x000081f0, 0x00000000}, |
782 | { 0x000081f0, 0x00000000 }, | 875 | {0x000081f4, 0x00000000}, |
783 | { 0x000081f4, 0x00000000 }, | 876 | {0x000081f8, 0x00000000}, |
784 | { 0x000081f8, 0x00000000 }, | 877 | {0x000081fc, 0x00000000}, |
785 | { 0x000081fc, 0x00000000 }, | 878 | {0x00008200, 0x00000000}, |
786 | { 0x00008200, 0x00000000 }, | 879 | {0x00008204, 0x00000000}, |
787 | { 0x00008204, 0x00000000 }, | 880 | {0x00008208, 0x00000000}, |
788 | { 0x00008208, 0x00000000 }, | 881 | {0x0000820c, 0x00000000}, |
789 | { 0x0000820c, 0x00000000 }, | 882 | {0x00008210, 0x00000000}, |
790 | { 0x00008210, 0x00000000 }, | 883 | {0x00008214, 0x00000000}, |
791 | { 0x00008214, 0x00000000 }, | 884 | {0x00008218, 0x00000000}, |
792 | { 0x00008218, 0x00000000 }, | 885 | {0x0000821c, 0x00000000}, |
793 | { 0x0000821c, 0x00000000 }, | 886 | {0x00008220, 0x00000000}, |
794 | { 0x00008220, 0x00000000 }, | 887 | {0x00008224, 0x00000000}, |
795 | { 0x00008224, 0x00000000 }, | 888 | {0x00008228, 0x00000000}, |
796 | { 0x00008228, 0x00000000 }, | 889 | {0x0000822c, 0x00000000}, |
797 | { 0x0000822c, 0x00000000 }, | 890 | {0x00008230, 0x00000000}, |
798 | { 0x00008230, 0x00000000 }, | 891 | {0x00008234, 0x00000000}, |
799 | { 0x00008234, 0x00000000 }, | 892 | {0x00008238, 0x00000000}, |
800 | { 0x00008238, 0x00000000 }, | 893 | {0x0000823c, 0x00000000}, |
801 | { 0x0000823c, 0x00000000 }, | 894 | {0x00008240, 0x00100000}, |
802 | { 0x00008240, 0x00100000 }, | 895 | {0x00008244, 0x0010f400}, |
803 | { 0x00008244, 0x0010f400 }, | 896 | {0x00008248, 0x00000100}, |
804 | { 0x00008248, 0x00000100 }, | 897 | {0x0000824c, 0x0001e800}, |
805 | { 0x0000824c, 0x0001e800 }, | 898 | {0x00008250, 0x00000000}, |
806 | { 0x00008250, 0x00000000 }, | 899 | {0x00008254, 0x00000000}, |
807 | { 0x00008254, 0x00000000 }, | 900 | {0x00008258, 0x00000000}, |
808 | { 0x00008258, 0x00000000 }, | 901 | {0x0000825c, 0x400000ff}, |
809 | { 0x0000825c, 0x400000ff }, | 902 | {0x00008260, 0x00080922}, |
810 | { 0x00008260, 0x00080922 }, | 903 | {0x00008264, 0x88a00010}, |
811 | { 0x00008270, 0x00000000 }, | 904 | {0x00008270, 0x00000000}, |
812 | { 0x00008274, 0x40000000 }, | 905 | {0x00008274, 0x40000000}, |
813 | { 0x00008278, 0x003e4180 }, | 906 | {0x00008278, 0x003e4180}, |
814 | { 0x0000827c, 0x00000000 }, | 907 | {0x0000827c, 0x00000000}, |
815 | { 0x00008284, 0x0000002c }, | 908 | {0x00008284, 0x0000002c}, |
816 | { 0x00008288, 0x0000002c }, | 909 | {0x00008288, 0x0000002c}, |
817 | { 0x0000828c, 0x00000000 }, | 910 | {0x0000828c, 0x00000000}, |
818 | { 0x00008294, 0x00000000 }, | 911 | {0x00008294, 0x00000000}, |
819 | { 0x00008298, 0x00000000 }, | 912 | {0x00008298, 0x00000000}, |
820 | { 0x00008300, 0x00000000 }, | 913 | {0x00008300, 0x00000000}, |
821 | { 0x00008304, 0x00000000 }, | 914 | {0x00008304, 0x00000000}, |
822 | { 0x00008308, 0x00000000 }, | 915 | {0x00008308, 0x00000000}, |
823 | { 0x0000830c, 0x00000000 }, | 916 | {0x0000830c, 0x00000000}, |
824 | { 0x00008310, 0x00000000 }, | 917 | {0x00008310, 0x00000000}, |
825 | { 0x00008314, 0x00000000 }, | 918 | {0x00008314, 0x00000000}, |
826 | { 0x00008318, 0x00000000 }, | 919 | {0x00008318, 0x00000000}, |
827 | { 0x00008328, 0x00000000 }, | 920 | {0x00008328, 0x00000000}, |
828 | { 0x0000832c, 0x00000007 }, | 921 | {0x0000832c, 0x00000007}, |
829 | { 0x00008330, 0x00000302 }, | 922 | {0x00008330, 0x00000302}, |
830 | { 0x00008334, 0x00000e00 }, | 923 | {0x00008334, 0x00000e00}, |
831 | { 0x00008338, 0x00ff0000 }, | 924 | {0x00008338, 0x00ff0000}, |
832 | { 0x0000833c, 0x00000000 }, | 925 | {0x0000833c, 0x00000000}, |
833 | { 0x00008340, 0x000107ff }, | 926 | {0x00008340, 0x000107ff}, |
834 | { 0x00009808, 0x00000000 }, | 927 | {0x00009808, 0x00000000}, |
835 | { 0x0000980c, 0xad848e19 }, | 928 | {0x0000980c, 0xad848e19}, |
836 | { 0x00009810, 0x7d14e000 }, | 929 | {0x00009810, 0x7d14e000}, |
837 | { 0x00009814, 0x9c0a9f6b }, | 930 | {0x00009814, 0x9c0a9f6b}, |
838 | { 0x0000981c, 0x00000000 }, | 931 | {0x0000981c, 0x00000000}, |
839 | { 0x0000982c, 0x0000a000 }, | 932 | {0x0000982c, 0x0000a000}, |
840 | { 0x00009830, 0x00000000 }, | 933 | {0x00009830, 0x00000000}, |
841 | { 0x0000983c, 0x00200400 }, | 934 | {0x0000983c, 0x00200400}, |
842 | { 0x00009840, 0x206a01ae }, | 935 | {0x00009840, 0x206a01ae}, |
843 | { 0x0000984c, 0x1284233c }, | 936 | {0x0000984c, 0x1284233c}, |
844 | { 0x00009854, 0x00000859 }, | 937 | {0x00009854, 0x00000859}, |
845 | { 0x00009900, 0x00000000 }, | 938 | {0x00009900, 0x00000000}, |
846 | { 0x00009904, 0x00000000 }, | 939 | {0x00009904, 0x00000000}, |
847 | { 0x00009908, 0x00000000 }, | 940 | {0x00009908, 0x00000000}, |
848 | { 0x0000990c, 0x00000000 }, | 941 | {0x0000990c, 0x00000000}, |
849 | { 0x0000991c, 0x10000fff }, | 942 | {0x0000991c, 0x10000fff}, |
850 | { 0x00009920, 0x05100000 }, | 943 | {0x00009920, 0x05100000}, |
851 | { 0x0000a920, 0x05100000 }, | 944 | {0x0000a920, 0x05100000}, |
852 | { 0x0000b920, 0x05100000 }, | 945 | {0x0000b920, 0x05100000}, |
853 | { 0x00009928, 0x00000001 }, | 946 | {0x00009928, 0x00000001}, |
854 | { 0x0000992c, 0x00000004 }, | 947 | {0x0000992c, 0x00000004}, |
855 | { 0x00009934, 0x1e1f2022 }, | 948 | {0x00009934, 0x1e1f2022}, |
856 | { 0x00009938, 0x0a0b0c0d }, | 949 | {0x00009938, 0x0a0b0c0d}, |
857 | { 0x0000993c, 0x00000000 }, | 950 | {0x0000993c, 0x00000000}, |
858 | { 0x00009948, 0x9280b212 }, | 951 | {0x00009948, 0x9280b212}, |
859 | { 0x0000994c, 0x00020028 }, | 952 | {0x0000994c, 0x00020028}, |
860 | { 0x00009954, 0x5f3ca3de }, | 953 | {0x00009954, 0x5f3ca3de}, |
861 | { 0x00009958, 0x2108ecff }, | 954 | {0x00009958, 0x2108ecff}, |
862 | { 0x00009940, 0x00750604 }, | 955 | {0x00009940, 0x00750604}, |
863 | { 0x0000c95c, 0x004b6a8e }, | 956 | {0x0000c95c, 0x004b6a8e}, |
864 | { 0x00009970, 0x190fb515 }, | 957 | {0x00009970, 0x190fb515}, |
865 | { 0x00009974, 0x00000000 }, | 958 | {0x00009974, 0x00000000}, |
866 | { 0x00009978, 0x00000001 }, | 959 | {0x00009978, 0x00000001}, |
867 | { 0x0000997c, 0x00000000 }, | 960 | {0x0000997c, 0x00000000}, |
868 | { 0x00009980, 0x00000000 }, | 961 | {0x00009980, 0x00000000}, |
869 | { 0x00009984, 0x00000000 }, | 962 | {0x00009984, 0x00000000}, |
870 | { 0x00009988, 0x00000000 }, | 963 | {0x00009988, 0x00000000}, |
871 | { 0x0000998c, 0x00000000 }, | 964 | {0x0000998c, 0x00000000}, |
872 | { 0x00009990, 0x00000000 }, | 965 | {0x00009990, 0x00000000}, |
873 | { 0x00009994, 0x00000000 }, | 966 | {0x00009994, 0x00000000}, |
874 | { 0x00009998, 0x00000000 }, | 967 | {0x00009998, 0x00000000}, |
875 | { 0x0000999c, 0x00000000 }, | 968 | {0x0000999c, 0x00000000}, |
876 | { 0x000099a0, 0x00000000 }, | 969 | {0x000099a0, 0x00000000}, |
877 | { 0x000099a4, 0x00000001 }, | 970 | {0x000099a4, 0x00000001}, |
878 | { 0x000099a8, 0x201fff00 }, | 971 | {0x000099a8, 0x201fff00}, |
879 | { 0x000099ac, 0x006f0000 }, | 972 | {0x000099ac, 0x006f0000}, |
880 | { 0x000099b0, 0x03051000 }, | 973 | {0x000099b0, 0x03051000}, |
881 | { 0x000099dc, 0x00000000 }, | 974 | {0x000099dc, 0x00000000}, |
882 | { 0x000099e0, 0x00000200 }, | 975 | {0x000099e0, 0x00000200}, |
883 | { 0x000099e4, 0xaaaaaaaa }, | 976 | {0x000099e4, 0xaaaaaaaa}, |
884 | { 0x000099e8, 0x3c466478 }, | 977 | {0x000099e8, 0x3c466478}, |
885 | { 0x000099ec, 0x0cc80caa }, | 978 | {0x000099ec, 0x0cc80caa}, |
886 | { 0x000099fc, 0x00001042 }, | 979 | {0x000099fc, 0x00001042}, |
887 | { 0x00009b00, 0x00000000 }, | 980 | {0x00009b00, 0x00000000}, |
888 | { 0x00009b04, 0x00000001 }, | 981 | {0x00009b04, 0x00000001}, |
889 | { 0x00009b08, 0x00000002 }, | 982 | {0x00009b08, 0x00000002}, |
890 | { 0x00009b0c, 0x00000003 }, | 983 | {0x00009b0c, 0x00000003}, |
891 | { 0x00009b10, 0x00000004 }, | 984 | {0x00009b10, 0x00000004}, |
892 | { 0x00009b14, 0x00000005 }, | 985 | {0x00009b14, 0x00000005}, |
893 | { 0x00009b18, 0x00000008 }, | 986 | {0x00009b18, 0x00000008}, |
894 | { 0x00009b1c, 0x00000009 }, | 987 | {0x00009b1c, 0x00000009}, |
895 | { 0x00009b20, 0x0000000a }, | 988 | {0x00009b20, 0x0000000a}, |
896 | { 0x00009b24, 0x0000000b }, | 989 | {0x00009b24, 0x0000000b}, |
897 | { 0x00009b28, 0x0000000c }, | 990 | {0x00009b28, 0x0000000c}, |
898 | { 0x00009b2c, 0x0000000d }, | 991 | {0x00009b2c, 0x0000000d}, |
899 | { 0x00009b30, 0x00000010 }, | 992 | {0x00009b30, 0x00000010}, |
900 | { 0x00009b34, 0x00000011 }, | 993 | {0x00009b34, 0x00000011}, |
901 | { 0x00009b38, 0x00000012 }, | 994 | {0x00009b38, 0x00000012}, |
902 | { 0x00009b3c, 0x00000013 }, | 995 | {0x00009b3c, 0x00000013}, |
903 | { 0x00009b40, 0x00000014 }, | 996 | {0x00009b40, 0x00000014}, |
904 | { 0x00009b44, 0x00000015 }, | 997 | {0x00009b44, 0x00000015}, |
905 | { 0x00009b48, 0x00000018 }, | 998 | {0x00009b48, 0x00000018}, |
906 | { 0x00009b4c, 0x00000019 }, | 999 | {0x00009b4c, 0x00000019}, |
907 | { 0x00009b50, 0x0000001a }, | 1000 | {0x00009b50, 0x0000001a}, |
908 | { 0x00009b54, 0x0000001b }, | 1001 | {0x00009b54, 0x0000001b}, |
909 | { 0x00009b58, 0x0000001c }, | 1002 | {0x00009b58, 0x0000001c}, |
910 | { 0x00009b5c, 0x0000001d }, | 1003 | {0x00009b5c, 0x0000001d}, |
911 | { 0x00009b60, 0x00000020 }, | 1004 | {0x00009b60, 0x00000020}, |
912 | { 0x00009b64, 0x00000021 }, | 1005 | {0x00009b64, 0x00000021}, |
913 | { 0x00009b68, 0x00000022 }, | 1006 | {0x00009b68, 0x00000022}, |
914 | { 0x00009b6c, 0x00000023 }, | 1007 | {0x00009b6c, 0x00000023}, |
915 | { 0x00009b70, 0x00000024 }, | 1008 | {0x00009b70, 0x00000024}, |
916 | { 0x00009b74, 0x00000025 }, | 1009 | {0x00009b74, 0x00000025}, |
917 | { 0x00009b78, 0x00000028 }, | 1010 | {0x00009b78, 0x00000028}, |
918 | { 0x00009b7c, 0x00000029 }, | 1011 | {0x00009b7c, 0x00000029}, |
919 | { 0x00009b80, 0x0000002a }, | 1012 | {0x00009b80, 0x0000002a}, |
920 | { 0x00009b84, 0x0000002b }, | 1013 | {0x00009b84, 0x0000002b}, |
921 | { 0x00009b88, 0x0000002c }, | 1014 | {0x00009b88, 0x0000002c}, |
922 | { 0x00009b8c, 0x0000002d }, | 1015 | {0x00009b8c, 0x0000002d}, |
923 | { 0x00009b90, 0x00000030 }, | 1016 | {0x00009b90, 0x00000030}, |
924 | { 0x00009b94, 0x00000031 }, | 1017 | {0x00009b94, 0x00000031}, |
925 | { 0x00009b98, 0x00000032 }, | 1018 | {0x00009b98, 0x00000032}, |
926 | { 0x00009b9c, 0x00000033 }, | 1019 | {0x00009b9c, 0x00000033}, |
927 | { 0x00009ba0, 0x00000034 }, | 1020 | {0x00009ba0, 0x00000034}, |
928 | { 0x00009ba4, 0x00000035 }, | 1021 | {0x00009ba4, 0x00000035}, |
929 | { 0x00009ba8, 0x00000035 }, | 1022 | {0x00009ba8, 0x00000035}, |
930 | { 0x00009bac, 0x00000035 }, | 1023 | {0x00009bac, 0x00000035}, |
931 | { 0x00009bb0, 0x00000035 }, | 1024 | {0x00009bb0, 0x00000035}, |
932 | { 0x00009bb4, 0x00000035 }, | 1025 | {0x00009bb4, 0x00000035}, |
933 | { 0x00009bb8, 0x00000035 }, | 1026 | {0x00009bb8, 0x00000035}, |
934 | { 0x00009bbc, 0x00000035 }, | 1027 | {0x00009bbc, 0x00000035}, |
935 | { 0x00009bc0, 0x00000035 }, | 1028 | {0x00009bc0, 0x00000035}, |
936 | { 0x00009bc4, 0x00000035 }, | 1029 | {0x00009bc4, 0x00000035}, |
937 | { 0x00009bc8, 0x00000035 }, | 1030 | {0x00009bc8, 0x00000035}, |
938 | { 0x00009bcc, 0x00000035 }, | 1031 | {0x00009bcc, 0x00000035}, |
939 | { 0x00009bd0, 0x00000035 }, | 1032 | {0x00009bd0, 0x00000035}, |
940 | { 0x00009bd4, 0x00000035 }, | 1033 | {0x00009bd4, 0x00000035}, |
941 | { 0x00009bd8, 0x00000035 }, | 1034 | {0x00009bd8, 0x00000035}, |
942 | { 0x00009bdc, 0x00000035 }, | 1035 | {0x00009bdc, 0x00000035}, |
943 | { 0x00009be0, 0x00000035 }, | 1036 | {0x00009be0, 0x00000035}, |
944 | { 0x00009be4, 0x00000035 }, | 1037 | {0x00009be4, 0x00000035}, |
945 | { 0x00009be8, 0x00000035 }, | 1038 | {0x00009be8, 0x00000035}, |
946 | { 0x00009bec, 0x00000035 }, | 1039 | {0x00009bec, 0x00000035}, |
947 | { 0x00009bf0, 0x00000035 }, | 1040 | {0x00009bf0, 0x00000035}, |
948 | { 0x00009bf4, 0x00000035 }, | 1041 | {0x00009bf4, 0x00000035}, |
949 | { 0x00009bf8, 0x00000010 }, | 1042 | {0x00009bf8, 0x00000010}, |
950 | { 0x00009bfc, 0x0000001a }, | 1043 | {0x00009bfc, 0x0000001a}, |
951 | { 0x0000a210, 0x40806333 }, | 1044 | {0x0000a210, 0x40806333}, |
952 | { 0x0000a214, 0x00106c10 }, | 1045 | {0x0000a214, 0x00106c10}, |
953 | { 0x0000a218, 0x009c4060 }, | 1046 | {0x0000a218, 0x009c4060}, |
954 | { 0x0000a220, 0x018830c6 }, | 1047 | {0x0000a220, 0x018830c6}, |
955 | { 0x0000a224, 0x00000400 }, | 1048 | {0x0000a224, 0x00000400}, |
956 | { 0x0000a228, 0x001a0bb5 }, | 1049 | {0x0000a228, 0x001a0bb5}, |
957 | { 0x0000a22c, 0x00000000 }, | 1050 | {0x0000a22c, 0x00000000}, |
958 | { 0x0000a234, 0x20202020 }, | 1051 | {0x0000a234, 0x20202020}, |
959 | { 0x0000a238, 0x20202020 }, | 1052 | {0x0000a238, 0x20202020}, |
960 | { 0x0000a23c, 0x13c889af }, | 1053 | {0x0000a23c, 0x13c889af}, |
961 | { 0x0000a240, 0x38490a20 }, | 1054 | {0x0000a240, 0x38490a20}, |
962 | { 0x0000a244, 0x00007bb6 }, | 1055 | {0x0000a244, 0x00007bb6}, |
963 | { 0x0000a248, 0x0fff3ffc }, | 1056 | {0x0000a248, 0x0fff3ffc}, |
964 | { 0x0000a24c, 0x00000001 }, | 1057 | {0x0000a24c, 0x00000001}, |
965 | { 0x0000a250, 0x0000e000 }, | 1058 | {0x0000a250, 0x0000e000}, |
966 | { 0x0000a254, 0x00000000 }, | 1059 | {0x0000a254, 0x00000000}, |
967 | { 0x0000a258, 0x0cc75380 }, | 1060 | {0x0000a258, 0x0cc75380}, |
968 | { 0x0000a25c, 0x0f0f0f01 }, | 1061 | {0x0000a25c, 0x0f0f0f01}, |
969 | { 0x0000a260, 0xdfa91f01 }, | 1062 | {0x0000a260, 0xdfa91f01}, |
970 | { 0x0000a268, 0x00000001 }, | 1063 | {0x0000a268, 0x00000001}, |
971 | { 0x0000a26c, 0x0ebae9c6 }, | 1064 | {0x0000a26c, 0x0e79e5c6}, |
972 | { 0x0000b26c, 0x0ebae9c6 }, | 1065 | {0x0000b26c, 0x0e79e5c6}, |
973 | { 0x0000c26c, 0x0ebae9c6 }, | 1066 | {0x0000c26c, 0x0e79e5c6}, |
974 | { 0x0000d270, 0x00820820 }, | 1067 | {0x0000d270, 0x00820820}, |
975 | { 0x0000a278, 0x1ce739ce }, | 1068 | {0x0000a278, 0x1ce739ce}, |
976 | { 0x0000a27c, 0x050701ce }, | 1069 | {0x0000a27c, 0x050701ce}, |
977 | { 0x0000a338, 0x00000000 }, | 1070 | {0x0000a338, 0x00000000}, |
978 | { 0x0000a33c, 0x00000000 }, | 1071 | {0x0000a33c, 0x00000000}, |
979 | { 0x0000a340, 0x00000000 }, | 1072 | {0x0000a340, 0x00000000}, |
980 | { 0x0000a344, 0x00000000 }, | 1073 | {0x0000a344, 0x00000000}, |
981 | { 0x0000a348, 0x3fffffff }, | 1074 | {0x0000a348, 0x3fffffff}, |
982 | { 0x0000a34c, 0x3fffffff }, | 1075 | {0x0000a34c, 0x3fffffff}, |
983 | { 0x0000a350, 0x3fffffff }, | 1076 | {0x0000a350, 0x3fffffff}, |
984 | { 0x0000a354, 0x0003ffff }, | 1077 | {0x0000a354, 0x0003ffff}, |
985 | { 0x0000a358, 0x79bfaa03 }, | 1078 | {0x0000a358, 0x79bfaa03}, |
986 | { 0x0000d35c, 0x07ffffef }, | 1079 | {0x0000d35c, 0x07ffffef}, |
987 | { 0x0000d360, 0x0fffffe7 }, | 1080 | {0x0000d360, 0x0fffffe7}, |
988 | { 0x0000d364, 0x17ffffe5 }, | 1081 | {0x0000d364, 0x17ffffe5}, |
989 | { 0x0000d368, 0x1fffffe4 }, | 1082 | {0x0000d368, 0x1fffffe4}, |
990 | { 0x0000d36c, 0x37ffffe3 }, | 1083 | {0x0000d36c, 0x37ffffe3}, |
991 | { 0x0000d370, 0x3fffffe3 }, | 1084 | {0x0000d370, 0x3fffffe3}, |
992 | { 0x0000d374, 0x57ffffe3 }, | 1085 | {0x0000d374, 0x57ffffe3}, |
993 | { 0x0000d378, 0x5fffffe2 }, | 1086 | {0x0000d378, 0x5fffffe2}, |
994 | { 0x0000d37c, 0x7fffffe2 }, | 1087 | {0x0000d37c, 0x7fffffe2}, |
995 | { 0x0000d380, 0x7f3c7bba }, | 1088 | {0x0000d380, 0x7f3c7bba}, |
996 | { 0x0000d384, 0xf3307ff0 }, | 1089 | {0x0000d384, 0xf3307ff0}, |
997 | { 0x0000a388, 0x0c000000 }, | 1090 | {0x0000a388, 0x0c000000}, |
998 | { 0x0000a38c, 0x20202020 }, | 1091 | {0x0000a38c, 0x20202020}, |
999 | { 0x0000a390, 0x20202020 }, | 1092 | {0x0000a390, 0x20202020}, |
1000 | { 0x0000a394, 0x1ce739ce }, | 1093 | {0x0000a394, 0x1ce739ce}, |
1001 | { 0x0000a398, 0x000001ce }, | 1094 | {0x0000a398, 0x000001ce}, |
1002 | { 0x0000a39c, 0x00000001 }, | 1095 | {0x0000a39c, 0x00000001}, |
1003 | { 0x0000a3a0, 0x00000000 }, | 1096 | {0x0000a3a0, 0x00000000}, |
1004 | { 0x0000a3a4, 0x00000000 }, | 1097 | {0x0000a3a4, 0x00000000}, |
1005 | { 0x0000a3a8, 0x00000000 }, | 1098 | {0x0000a3a8, 0x00000000}, |
1006 | { 0x0000a3ac, 0x00000000 }, | 1099 | {0x0000a3ac, 0x00000000}, |
1007 | { 0x0000a3b0, 0x00000000 }, | 1100 | {0x0000a3b0, 0x00000000}, |
1008 | { 0x0000a3b4, 0x00000000 }, | 1101 | {0x0000a3b4, 0x00000000}, |
1009 | { 0x0000a3b8, 0x00000000 }, | 1102 | {0x0000a3b8, 0x00000000}, |
1010 | { 0x0000a3bc, 0x00000000 }, | 1103 | {0x0000a3bc, 0x00000000}, |
1011 | { 0x0000a3c0, 0x00000000 }, | 1104 | {0x0000a3c0, 0x00000000}, |
1012 | { 0x0000a3c4, 0x00000000 }, | 1105 | {0x0000a3c4, 0x00000000}, |
1013 | { 0x0000a3c8, 0x00000246 }, | 1106 | {0x0000a3c8, 0x00000246}, |
1014 | { 0x0000a3cc, 0x20202020 }, | 1107 | {0x0000a3cc, 0x20202020}, |
1015 | { 0x0000a3d0, 0x20202020 }, | 1108 | {0x0000a3d0, 0x20202020}, |
1016 | { 0x0000a3d4, 0x20202020 }, | 1109 | {0x0000a3d4, 0x20202020}, |
1017 | { 0x0000a3dc, 0x1ce739ce }, | 1110 | {0x0000a3dc, 0x1ce739ce}, |
1018 | { 0x0000a3e0, 0x000001ce }, | 1111 | {0x0000a3e0, 0x000001ce}, |
1019 | }; | 1112 | }; |
1020 | 1113 | ||
1021 | static const u32 ar5416Bank0_9160[][2] = { | 1114 | static const u32 ar5416Bank0_9160[][2] = { |
1022 | { 0x000098b0, 0x1e5795e5 }, | 1115 | /* Addr allmodes */ |
1023 | { 0x000098e0, 0x02008020 }, | 1116 | {0x000098b0, 0x1e5795e5}, |
1117 | {0x000098e0, 0x02008020}, | ||
1024 | }; | 1118 | }; |
1025 | 1119 | ||
1026 | static const u32 ar5416BB_RfGain_9160[][3] = { | 1120 | static const u32 ar5416BB_RfGain_9160[][3] = { |
1027 | { 0x00009a00, 0x00000000, 0x00000000 }, | 1121 | /* Addr 5G_HT20 5G_HT40 */ |
1028 | { 0x00009a04, 0x00000040, 0x00000040 }, | 1122 | {0x00009a00, 0x00000000, 0x00000000}, |
1029 | { 0x00009a08, 0x00000080, 0x00000080 }, | 1123 | {0x00009a04, 0x00000040, 0x00000040}, |
1030 | { 0x00009a0c, 0x000001a1, 0x00000141 }, | 1124 | {0x00009a08, 0x00000080, 0x00000080}, |
1031 | { 0x00009a10, 0x000001e1, 0x00000181 }, | 1125 | {0x00009a0c, 0x000001a1, 0x00000141}, |
1032 | { 0x00009a14, 0x00000021, 0x000001c1 }, | 1126 | {0x00009a10, 0x000001e1, 0x00000181}, |
1033 | { 0x00009a18, 0x00000061, 0x00000001 }, | 1127 | {0x00009a14, 0x00000021, 0x000001c1}, |
1034 | { 0x00009a1c, 0x00000168, 0x00000041 }, | 1128 | {0x00009a18, 0x00000061, 0x00000001}, |
1035 | { 0x00009a20, 0x000001a8, 0x000001a8 }, | 1129 | {0x00009a1c, 0x00000168, 0x00000041}, |
1036 | { 0x00009a24, 0x000001e8, 0x000001e8 }, | 1130 | {0x00009a20, 0x000001a8, 0x000001a8}, |
1037 | { 0x00009a28, 0x00000028, 0x00000028 }, | 1131 | {0x00009a24, 0x000001e8, 0x000001e8}, |
1038 | { 0x00009a2c, 0x00000068, 0x00000068 }, | 1132 | {0x00009a28, 0x00000028, 0x00000028}, |
1039 | { 0x00009a30, 0x00000189, 0x000000a8 }, | 1133 | {0x00009a2c, 0x00000068, 0x00000068}, |
1040 | { 0x00009a34, 0x000001c9, 0x00000169 }, | 1134 | {0x00009a30, 0x00000189, 0x000000a8}, |
1041 | { 0x00009a38, 0x00000009, 0x000001a9 }, | 1135 | {0x00009a34, 0x000001c9, 0x00000169}, |
1042 | { 0x00009a3c, 0x00000049, 0x000001e9 }, | 1136 | {0x00009a38, 0x00000009, 0x000001a9}, |
1043 | { 0x00009a40, 0x00000089, 0x00000029 }, | 1137 | {0x00009a3c, 0x00000049, 0x000001e9}, |
1044 | { 0x00009a44, 0x00000170, 0x00000069 }, | 1138 | {0x00009a40, 0x00000089, 0x00000029}, |
1045 | { 0x00009a48, 0x000001b0, 0x00000190 }, | 1139 | {0x00009a44, 0x00000170, 0x00000069}, |
1046 | { 0x00009a4c, 0x000001f0, 0x000001d0 }, | 1140 | {0x00009a48, 0x000001b0, 0x00000190}, |
1047 | { 0x00009a50, 0x00000030, 0x00000010 }, | 1141 | {0x00009a4c, 0x000001f0, 0x000001d0}, |
1048 | { 0x00009a54, 0x00000070, 0x00000050 }, | 1142 | {0x00009a50, 0x00000030, 0x00000010}, |
1049 | { 0x00009a58, 0x00000191, 0x00000090 }, | 1143 | {0x00009a54, 0x00000070, 0x00000050}, |
1050 | { 0x00009a5c, 0x000001d1, 0x00000151 }, | 1144 | {0x00009a58, 0x00000191, 0x00000090}, |
1051 | { 0x00009a60, 0x00000011, 0x00000191 }, | 1145 | {0x00009a5c, 0x000001d1, 0x00000151}, |
1052 | { 0x00009a64, 0x00000051, 0x000001d1 }, | 1146 | {0x00009a60, 0x00000011, 0x00000191}, |
1053 | { 0x00009a68, 0x00000091, 0x00000011 }, | 1147 | {0x00009a64, 0x00000051, 0x000001d1}, |
1054 | { 0x00009a6c, 0x000001b8, 0x00000051 }, | 1148 | {0x00009a68, 0x00000091, 0x00000011}, |
1055 | { 0x00009a70, 0x000001f8, 0x00000198 }, | 1149 | {0x00009a6c, 0x000001b8, 0x00000051}, |
1056 | { 0x00009a74, 0x00000038, 0x000001d8 }, | 1150 | {0x00009a70, 0x000001f8, 0x00000198}, |
1057 | { 0x00009a78, 0x00000078, 0x00000018 }, | 1151 | {0x00009a74, 0x00000038, 0x000001d8}, |
1058 | { 0x00009a7c, 0x00000199, 0x00000058 }, | 1152 | {0x00009a78, 0x00000078, 0x00000018}, |
1059 | { 0x00009a80, 0x000001d9, 0x00000098 }, | 1153 | {0x00009a7c, 0x00000199, 0x00000058}, |
1060 | { 0x00009a84, 0x00000019, 0x00000159 }, | 1154 | {0x00009a80, 0x000001d9, 0x00000098}, |
1061 | { 0x00009a88, 0x00000059, 0x00000199 }, | 1155 | {0x00009a84, 0x00000019, 0x00000159}, |
1062 | { 0x00009a8c, 0x00000099, 0x000001d9 }, | 1156 | {0x00009a88, 0x00000059, 0x00000199}, |
1063 | { 0x00009a90, 0x000000d9, 0x00000019 }, | 1157 | {0x00009a8c, 0x00000099, 0x000001d9}, |
1064 | { 0x00009a94, 0x000000f9, 0x00000059 }, | 1158 | {0x00009a90, 0x000000d9, 0x00000019}, |
1065 | { 0x00009a98, 0x000000f9, 0x00000099 }, | 1159 | {0x00009a94, 0x000000f9, 0x00000059}, |
1066 | { 0x00009a9c, 0x000000f9, 0x000000d9 }, | 1160 | {0x00009a98, 0x000000f9, 0x00000099}, |
1067 | { 0x00009aa0, 0x000000f9, 0x000000f9 }, | 1161 | {0x00009a9c, 0x000000f9, 0x000000d9}, |
1068 | { 0x00009aa4, 0x000000f9, 0x000000f9 }, | 1162 | {0x00009aa0, 0x000000f9, 0x000000f9}, |
1069 | { 0x00009aa8, 0x000000f9, 0x000000f9 }, | 1163 | {0x00009aa4, 0x000000f9, 0x000000f9}, |
1070 | { 0x00009aac, 0x000000f9, 0x000000f9 }, | 1164 | {0x00009aa8, 0x000000f9, 0x000000f9}, |
1071 | { 0x00009ab0, 0x000000f9, 0x000000f9 }, | 1165 | {0x00009aac, 0x000000f9, 0x000000f9}, |
1072 | { 0x00009ab4, 0x000000f9, 0x000000f9 }, | 1166 | {0x00009ab0, 0x000000f9, 0x000000f9}, |
1073 | { 0x00009ab8, 0x000000f9, 0x000000f9 }, | 1167 | {0x00009ab4, 0x000000f9, 0x000000f9}, |
1074 | { 0x00009abc, 0x000000f9, 0x000000f9 }, | 1168 | {0x00009ab8, 0x000000f9, 0x000000f9}, |
1075 | { 0x00009ac0, 0x000000f9, 0x000000f9 }, | 1169 | {0x00009abc, 0x000000f9, 0x000000f9}, |
1076 | { 0x00009ac4, 0x000000f9, 0x000000f9 }, | 1170 | {0x00009ac0, 0x000000f9, 0x000000f9}, |
1077 | { 0x00009ac8, 0x000000f9, 0x000000f9 }, | 1171 | {0x00009ac4, 0x000000f9, 0x000000f9}, |
1078 | { 0x00009acc, 0x000000f9, 0x000000f9 }, | 1172 | {0x00009ac8, 0x000000f9, 0x000000f9}, |
1079 | { 0x00009ad0, 0x000000f9, 0x000000f9 }, | 1173 | {0x00009acc, 0x000000f9, 0x000000f9}, |
1080 | { 0x00009ad4, 0x000000f9, 0x000000f9 }, | 1174 | {0x00009ad0, 0x000000f9, 0x000000f9}, |
1081 | { 0x00009ad8, 0x000000f9, 0x000000f9 }, | 1175 | {0x00009ad4, 0x000000f9, 0x000000f9}, |
1082 | { 0x00009adc, 0x000000f9, 0x000000f9 }, | 1176 | {0x00009ad8, 0x000000f9, 0x000000f9}, |
1083 | { 0x00009ae0, 0x000000f9, 0x000000f9 }, | 1177 | {0x00009adc, 0x000000f9, 0x000000f9}, |
1084 | { 0x00009ae4, 0x000000f9, 0x000000f9 }, | 1178 | {0x00009ae0, 0x000000f9, 0x000000f9}, |
1085 | { 0x00009ae8, 0x000000f9, 0x000000f9 }, | 1179 | {0x00009ae4, 0x000000f9, 0x000000f9}, |
1086 | { 0x00009aec, 0x000000f9, 0x000000f9 }, | 1180 | {0x00009ae8, 0x000000f9, 0x000000f9}, |
1087 | { 0x00009af0, 0x000000f9, 0x000000f9 }, | 1181 | {0x00009aec, 0x000000f9, 0x000000f9}, |
1088 | { 0x00009af4, 0x000000f9, 0x000000f9 }, | 1182 | {0x00009af0, 0x000000f9, 0x000000f9}, |
1089 | { 0x00009af8, 0x000000f9, 0x000000f9 }, | 1183 | {0x00009af4, 0x000000f9, 0x000000f9}, |
1090 | { 0x00009afc, 0x000000f9, 0x000000f9 }, | 1184 | {0x00009af8, 0x000000f9, 0x000000f9}, |
1185 | {0x00009afc, 0x000000f9, 0x000000f9}, | ||
1091 | }; | 1186 | }; |
1092 | 1187 | ||
1093 | static const u32 ar5416Bank1_9160[][2] = { | 1188 | static const u32 ar5416Bank1_9160[][2] = { |
1094 | { 0x000098b0, 0x02108421 }, | 1189 | /* Addr allmodes */ |
1095 | { 0x000098ec, 0x00000008 }, | 1190 | {0x000098b0, 0x02108421}, |
1191 | {0x000098ec, 0x00000008}, | ||
1096 | }; | 1192 | }; |
1097 | 1193 | ||
1098 | static const u32 ar5416Bank2_9160[][2] = { | 1194 | static const u32 ar5416Bank2_9160[][2] = { |
1099 | { 0x000098b0, 0x0e73ff17 }, | 1195 | /* Addr allmodes */ |
1100 | { 0x000098e0, 0x00000420 }, | 1196 | {0x000098b0, 0x0e73ff17}, |
1197 | {0x000098e0, 0x00000420}, | ||
1101 | }; | 1198 | }; |
1102 | 1199 | ||
1103 | static const u32 ar5416Bank3_9160[][3] = { | 1200 | static const u32 ar5416Bank3_9160[][3] = { |
1104 | { 0x000098f0, 0x01400018, 0x01c00018 }, | 1201 | /* Addr 5G_HT20 5G_HT40 */ |
1202 | {0x000098f0, 0x01400018, 0x01c00018}, | ||
1105 | }; | 1203 | }; |
1106 | 1204 | ||
1107 | static const u32 ar5416Bank6_9160[][3] = { | 1205 | static const u32 ar5416Bank6_9160[][3] = { |
1108 | { 0x0000989c, 0x00000000, 0x00000000 }, | 1206 | /* Addr 5G_HT20 5G_HT40 */ |
1109 | { 0x0000989c, 0x00000000, 0x00000000 }, | 1207 | {0x0000989c, 0x00000000, 0x00000000}, |
1110 | { 0x0000989c, 0x00000000, 0x00000000 }, | 1208 | {0x0000989c, 0x00000000, 0x00000000}, |
1111 | { 0x0000989c, 0x00e00000, 0x00e00000 }, | 1209 | {0x0000989c, 0x00000000, 0x00000000}, |
1112 | { 0x0000989c, 0x005e0000, 0x005e0000 }, | 1210 | {0x0000989c, 0x00e00000, 0x00e00000}, |
1113 | { 0x0000989c, 0x00120000, 0x00120000 }, | 1211 | {0x0000989c, 0x005e0000, 0x005e0000}, |
1114 | { 0x0000989c, 0x00620000, 0x00620000 }, | 1212 | {0x0000989c, 0x00120000, 0x00120000}, |
1115 | { 0x0000989c, 0x00020000, 0x00020000 }, | 1213 | {0x0000989c, 0x00620000, 0x00620000}, |
1116 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 1214 | {0x0000989c, 0x00020000, 0x00020000}, |
1117 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 1215 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
1118 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 1216 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
1119 | { 0x0000989c, 0x40ff0000, 0x40ff0000 }, | 1217 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
1120 | { 0x0000989c, 0x005f0000, 0x005f0000 }, | 1218 | {0x0000989c, 0x40ff0000, 0x40ff0000}, |
1121 | { 0x0000989c, 0x00870000, 0x00870000 }, | 1219 | {0x0000989c, 0x005f0000, 0x005f0000}, |
1122 | { 0x0000989c, 0x00f90000, 0x00f90000 }, | 1220 | {0x0000989c, 0x00870000, 0x00870000}, |
1123 | { 0x0000989c, 0x007b0000, 0x007b0000 }, | 1221 | {0x0000989c, 0x00f90000, 0x00f90000}, |
1124 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 1222 | {0x0000989c, 0x007b0000, 0x007b0000}, |
1125 | { 0x0000989c, 0x00f50000, 0x00f50000 }, | 1223 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
1126 | { 0x0000989c, 0x00dc0000, 0x00dc0000 }, | 1224 | {0x0000989c, 0x00f50000, 0x00f50000}, |
1127 | { 0x0000989c, 0x00110000, 0x00110000 }, | 1225 | {0x0000989c, 0x00dc0000, 0x00dc0000}, |
1128 | { 0x0000989c, 0x006100a8, 0x006100a8 }, | 1226 | {0x0000989c, 0x00110000, 0x00110000}, |
1129 | { 0x0000989c, 0x004210a2, 0x004210a2 }, | 1227 | {0x0000989c, 0x006100a8, 0x006100a8}, |
1130 | { 0x0000989c, 0x0014008f, 0x0014008f }, | 1228 | {0x0000989c, 0x004210a2, 0x004210a2}, |
1131 | { 0x0000989c, 0x00c40003, 0x00c40003 }, | 1229 | {0x0000989c, 0x0014008f, 0x0014008f}, |
1132 | { 0x0000989c, 0x003000f2, 0x003000f2 }, | 1230 | {0x0000989c, 0x00c40003, 0x00c40003}, |
1133 | { 0x0000989c, 0x00440016, 0x00440016 }, | 1231 | {0x0000989c, 0x003000f2, 0x003000f2}, |
1134 | { 0x0000989c, 0x00410040, 0x00410040 }, | 1232 | {0x0000989c, 0x00440016, 0x00440016}, |
1135 | { 0x0000989c, 0x0001805e, 0x0001805e }, | 1233 | {0x0000989c, 0x00410040, 0x00410040}, |
1136 | { 0x0000989c, 0x0000c0ab, 0x0000c0ab }, | 1234 | {0x0000989c, 0x0001805e, 0x0001805e}, |
1137 | { 0x0000989c, 0x000000f1, 0x000000f1 }, | 1235 | {0x0000989c, 0x0000c0ab, 0x0000c0ab}, |
1138 | { 0x0000989c, 0x00002081, 0x00002081 }, | 1236 | {0x0000989c, 0x000000f1, 0x000000f1}, |
1139 | { 0x0000989c, 0x000000d4, 0x000000d4 }, | 1237 | {0x0000989c, 0x00002081, 0x00002081}, |
1140 | { 0x000098d0, 0x0000000f, 0x0010000f }, | 1238 | {0x0000989c, 0x000000d4, 0x000000d4}, |
1239 | {0x000098d0, 0x0000000f, 0x0010000f}, | ||
1141 | }; | 1240 | }; |
1142 | 1241 | ||
1143 | static const u32 ar5416Bank6TPC_9160[][3] = { | 1242 | static const u32 ar5416Bank6TPC_9160[][3] = { |
1144 | { 0x0000989c, 0x00000000, 0x00000000 }, | 1243 | /* Addr 5G_HT20 5G_HT40 */ |
1145 | { 0x0000989c, 0x00000000, 0x00000000 }, | 1244 | {0x0000989c, 0x00000000, 0x00000000}, |
1146 | { 0x0000989c, 0x00000000, 0x00000000 }, | 1245 | {0x0000989c, 0x00000000, 0x00000000}, |
1147 | { 0x0000989c, 0x00e00000, 0x00e00000 }, | 1246 | {0x0000989c, 0x00000000, 0x00000000}, |
1148 | { 0x0000989c, 0x005e0000, 0x005e0000 }, | 1247 | {0x0000989c, 0x00e00000, 0x00e00000}, |
1149 | { 0x0000989c, 0x00120000, 0x00120000 }, | 1248 | {0x0000989c, 0x005e0000, 0x005e0000}, |
1150 | { 0x0000989c, 0x00620000, 0x00620000 }, | 1249 | {0x0000989c, 0x00120000, 0x00120000}, |
1151 | { 0x0000989c, 0x00020000, 0x00020000 }, | 1250 | {0x0000989c, 0x00620000, 0x00620000}, |
1152 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 1251 | {0x0000989c, 0x00020000, 0x00020000}, |
1153 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 1252 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
1154 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 1253 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
1155 | { 0x0000989c, 0x40ff0000, 0x40ff0000 }, | 1254 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
1156 | { 0x0000989c, 0x005f0000, 0x005f0000 }, | 1255 | {0x0000989c, 0x40ff0000, 0x40ff0000}, |
1157 | { 0x0000989c, 0x00870000, 0x00870000 }, | 1256 | {0x0000989c, 0x005f0000, 0x005f0000}, |
1158 | { 0x0000989c, 0x00f90000, 0x00f90000 }, | 1257 | {0x0000989c, 0x00870000, 0x00870000}, |
1159 | { 0x0000989c, 0x007b0000, 0x007b0000 }, | 1258 | {0x0000989c, 0x00f90000, 0x00f90000}, |
1160 | { 0x0000989c, 0x00ff0000, 0x00ff0000 }, | 1259 | {0x0000989c, 0x007b0000, 0x007b0000}, |
1161 | { 0x0000989c, 0x00f50000, 0x00f50000 }, | 1260 | {0x0000989c, 0x00ff0000, 0x00ff0000}, |
1162 | { 0x0000989c, 0x00dc0000, 0x00dc0000 }, | 1261 | {0x0000989c, 0x00f50000, 0x00f50000}, |
1163 | { 0x0000989c, 0x00110000, 0x00110000 }, | 1262 | {0x0000989c, 0x00dc0000, 0x00dc0000}, |
1164 | { 0x0000989c, 0x006100a8, 0x006100a8 }, | 1263 | {0x0000989c, 0x00110000, 0x00110000}, |
1165 | { 0x0000989c, 0x00423022, 0x00423022 }, | 1264 | {0x0000989c, 0x006100a8, 0x006100a8}, |
1166 | { 0x0000989c, 0x2014008f, 0x2014008f }, | 1265 | {0x0000989c, 0x00423022, 0x00423022}, |
1167 | { 0x0000989c, 0x00c40002, 0x00c40002 }, | 1266 | {0x0000989c, 0x2014008f, 0x2014008f}, |
1168 | { 0x0000989c, 0x003000f2, 0x003000f2 }, | 1267 | {0x0000989c, 0x00c40002, 0x00c40002}, |
1169 | { 0x0000989c, 0x00440016, 0x00440016 }, | 1268 | {0x0000989c, 0x003000f2, 0x003000f2}, |
1170 | { 0x0000989c, 0x00410040, 0x00410040 }, | 1269 | {0x0000989c, 0x00440016, 0x00440016}, |
1171 | { 0x0000989c, 0x0001805e, 0x0001805e }, | 1270 | {0x0000989c, 0x00410040, 0x00410040}, |
1172 | { 0x0000989c, 0x0000c0ab, 0x0000c0ab }, | 1271 | {0x0000989c, 0x0001805e, 0x0001805e}, |
1173 | { 0x0000989c, 0x000000e1, 0x000000e1 }, | 1272 | {0x0000989c, 0x0000c0ab, 0x0000c0ab}, |
1174 | { 0x0000989c, 0x00007080, 0x00007080 }, | 1273 | {0x0000989c, 0x000000e1, 0x000000e1}, |
1175 | { 0x0000989c, 0x000000d4, 0x000000d4 }, | 1274 | {0x0000989c, 0x00007080, 0x00007080}, |
1176 | { 0x000098d0, 0x0000000f, 0x0010000f }, | 1275 | {0x0000989c, 0x000000d4, 0x000000d4}, |
1276 | {0x000098d0, 0x0000000f, 0x0010000f}, | ||
1177 | }; | 1277 | }; |
1178 | 1278 | ||
1179 | static const u32 ar5416Bank7_9160[][2] = { | 1279 | static const u32 ar5416Bank7_9160[][2] = { |
1180 | { 0x0000989c, 0x00000500 }, | 1280 | /* Addr allmodes */ |
1181 | { 0x0000989c, 0x00000800 }, | 1281 | {0x0000989c, 0x00000500}, |
1182 | { 0x000098cc, 0x0000000e }, | 1282 | {0x0000989c, 0x00000800}, |
1283 | {0x000098cc, 0x0000000e}, | ||
1183 | }; | 1284 | }; |
1184 | 1285 | ||
1185 | static const u32 ar5416Addac_9160[][2] = { | 1286 | static const u32 ar5416Addac_9160[][2] = { |
1186 | {0x0000989c, 0x00000000 }, | 1287 | /* Addr allmodes */ |
1187 | {0x0000989c, 0x00000000 }, | 1288 | {0x0000989c, 0x00000000}, |
1188 | {0x0000989c, 0x00000000 }, | 1289 | {0x0000989c, 0x00000000}, |
1189 | {0x0000989c, 0x00000000 }, | 1290 | {0x0000989c, 0x00000000}, |
1190 | {0x0000989c, 0x00000000 }, | 1291 | {0x0000989c, 0x00000000}, |
1191 | {0x0000989c, 0x00000000 }, | 1292 | {0x0000989c, 0x00000000}, |
1192 | {0x0000989c, 0x000000c0 }, | 1293 | {0x0000989c, 0x00000000}, |
1193 | {0x0000989c, 0x00000018 }, | 1294 | {0x0000989c, 0x000000c0}, |
1194 | {0x0000989c, 0x00000004 }, | 1295 | {0x0000989c, 0x00000018}, |
1195 | {0x0000989c, 0x00000000 }, | 1296 | {0x0000989c, 0x00000004}, |
1196 | {0x0000989c, 0x00000000 }, | 1297 | {0x0000989c, 0x00000000}, |
1197 | {0x0000989c, 0x00000000 }, | 1298 | {0x0000989c, 0x00000000}, |
1198 | {0x0000989c, 0x00000000 }, | 1299 | {0x0000989c, 0x00000000}, |
1199 | {0x0000989c, 0x00000000 }, | 1300 | {0x0000989c, 0x00000000}, |
1200 | {0x0000989c, 0x00000000 }, | 1301 | {0x0000989c, 0x00000000}, |
1201 | {0x0000989c, 0x00000000 }, | 1302 | {0x0000989c, 0x00000000}, |
1202 | {0x0000989c, 0x00000000 }, | 1303 | {0x0000989c, 0x00000000}, |
1203 | {0x0000989c, 0x00000000 }, | 1304 | {0x0000989c, 0x00000000}, |
1204 | {0x0000989c, 0x00000000 }, | 1305 | {0x0000989c, 0x00000000}, |
1205 | {0x0000989c, 0x00000000 }, | 1306 | {0x0000989c, 0x00000000}, |
1206 | {0x0000989c, 0x00000000 }, | 1307 | {0x0000989c, 0x00000000}, |
1207 | {0x0000989c, 0x000000c0 }, | 1308 | {0x0000989c, 0x00000000}, |
1208 | {0x0000989c, 0x00000019 }, | 1309 | {0x0000989c, 0x000000c0}, |
1209 | {0x0000989c, 0x00000004 }, | 1310 | {0x0000989c, 0x00000019}, |
1210 | {0x0000989c, 0x00000000 }, | 1311 | {0x0000989c, 0x00000004}, |
1211 | {0x0000989c, 0x00000000 }, | 1312 | {0x0000989c, 0x00000000}, |
1212 | {0x0000989c, 0x00000000 }, | 1313 | {0x0000989c, 0x00000000}, |
1213 | {0x0000989c, 0x00000004 }, | 1314 | {0x0000989c, 0x00000000}, |
1214 | {0x0000989c, 0x00000003 }, | 1315 | {0x0000989c, 0x00000004}, |
1215 | {0x0000989c, 0x00000008 }, | 1316 | {0x0000989c, 0x00000003}, |
1216 | {0x0000989c, 0x00000000 }, | 1317 | {0x0000989c, 0x00000008}, |
1217 | {0x000098cc, 0x00000000 }, | 1318 | {0x0000989c, 0x00000000}, |
1319 | {0x000098cc, 0x00000000}, | ||
1218 | }; | 1320 | }; |
1219 | 1321 | ||
1220 | static const u32 ar5416Addac_91601_1[][2] = { | 1322 | static const u32 ar5416Addac_9160_1_1[][2] = { |
1221 | {0x0000989c, 0x00000000 }, | 1323 | /* Addr allmodes */ |
1222 | {0x0000989c, 0x00000000 }, | 1324 | {0x0000989c, 0x00000000}, |
1223 | {0x0000989c, 0x00000000 }, | 1325 | {0x0000989c, 0x00000000}, |
1224 | {0x0000989c, 0x00000000 }, | 1326 | {0x0000989c, 0x00000000}, |
1225 | {0x0000989c, 0x00000000 }, | 1327 | {0x0000989c, 0x00000000}, |
1226 | {0x0000989c, 0x00000000 }, | 1328 | {0x0000989c, 0x00000000}, |
1227 | {0x0000989c, 0x000000c0 }, | 1329 | {0x0000989c, 0x00000000}, |
1228 | {0x0000989c, 0x00000018 }, | 1330 | {0x0000989c, 0x000000c0}, |
1229 | {0x0000989c, 0x00000004 }, | 1331 | {0x0000989c, 0x00000018}, |
1230 | {0x0000989c, 0x00000000 }, | 1332 | {0x0000989c, 0x00000004}, |
1231 | {0x0000989c, 0x00000000 }, | 1333 | {0x0000989c, 0x00000000}, |
1232 | {0x0000989c, 0x00000000 }, | 1334 | {0x0000989c, 0x00000000}, |
1233 | {0x0000989c, 0x00000000 }, | 1335 | {0x0000989c, 0x00000000}, |
1234 | {0x0000989c, 0x00000000 }, | 1336 | {0x0000989c, 0x00000000}, |
1235 | {0x0000989c, 0x00000000 }, | 1337 | {0x0000989c, 0x00000000}, |
1236 | {0x0000989c, 0x00000000 }, | 1338 | {0x0000989c, 0x00000000}, |
1237 | {0x0000989c, 0x00000000 }, | 1339 | {0x0000989c, 0x00000000}, |
1238 | {0x0000989c, 0x00000000 }, | 1340 | {0x0000989c, 0x00000000}, |
1239 | {0x0000989c, 0x00000000 }, | 1341 | {0x0000989c, 0x00000000}, |
1240 | {0x0000989c, 0x00000000 }, | 1342 | {0x0000989c, 0x00000000}, |
1241 | {0x0000989c, 0x00000000 }, | 1343 | {0x0000989c, 0x00000000}, |
1242 | {0x0000989c, 0x000000c0 }, | 1344 | {0x0000989c, 0x00000000}, |
1243 | {0x0000989c, 0x00000019 }, | 1345 | {0x0000989c, 0x000000c0}, |
1244 | {0x0000989c, 0x00000004 }, | 1346 | {0x0000989c, 0x00000019}, |
1245 | {0x0000989c, 0x00000000 }, | 1347 | {0x0000989c, 0x00000004}, |
1246 | {0x0000989c, 0x00000000 }, | 1348 | {0x0000989c, 0x00000000}, |
1247 | {0x0000989c, 0x00000000 }, | 1349 | {0x0000989c, 0x00000000}, |
1248 | {0x0000989c, 0x00000000 }, | 1350 | {0x0000989c, 0x00000000}, |
1249 | {0x0000989c, 0x00000000 }, | 1351 | {0x0000989c, 0x00000000}, |
1250 | {0x0000989c, 0x00000000 }, | 1352 | {0x0000989c, 0x00000000}, |
1251 | {0x0000989c, 0x00000000 }, | 1353 | {0x0000989c, 0x00000000}, |
1252 | {0x000098cc, 0x00000000 }, | 1354 | {0x0000989c, 0x00000000}, |
1355 | {0x000098cc, 0x00000000}, | ||
1253 | }; | 1356 | }; |
1254 | 1357 | ||
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_calib.c b/drivers/net/wireless/ath/ath9k/ar9002_calib.c index 5fdbb53b47e0..dabafb874c36 100644 --- a/drivers/net/wireless/ath/ath9k/ar9002_calib.c +++ b/drivers/net/wireless/ath/ath9k/ar9002_calib.c | |||
@@ -239,7 +239,7 @@ static void ar9002_hw_iqcalibrate(struct ath_hw *ah, u8 numChains) | |||
239 | if (qCoff > 15) | 239 | if (qCoff > 15) |
240 | qCoff = 15; | 240 | qCoff = 15; |
241 | else if (qCoff <= -16) | 241 | else if (qCoff <= -16) |
242 | qCoff = 16; | 242 | qCoff = -16; |
243 | 243 | ||
244 | ath_print(common, ATH_DBG_CALIBRATE, | 244 | ath_print(common, ATH_DBG_CALIBRATE, |
245 | "Chn %d : iCoff = 0x%x qCoff = 0x%x\n", | 245 | "Chn %d : iCoff = 0x%x qCoff = 0x%x\n", |
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_hw.c b/drivers/net/wireless/ath/ath9k/ar9002_hw.c index 0317ac9fc1b7..75b80d13ff91 100644 --- a/drivers/net/wireless/ath/ath9k/ar9002_hw.c +++ b/drivers/net/wireless/ath/ath9k/ar9002_hw.c | |||
@@ -179,8 +179,8 @@ static void ar9002_hw_init_mode_regs(struct ath_hw *ah) | |||
179 | ARRAY_SIZE(ar5416Bank7_9160), 2); | 179 | ARRAY_SIZE(ar5416Bank7_9160), 2); |
180 | if (AR_SREV_9160_11(ah)) { | 180 | if (AR_SREV_9160_11(ah)) { |
181 | INIT_INI_ARRAY(&ah->iniAddac, | 181 | INIT_INI_ARRAY(&ah->iniAddac, |
182 | ar5416Addac_91601_1, | 182 | ar5416Addac_9160_1_1, |
183 | ARRAY_SIZE(ar5416Addac_91601_1), 2); | 183 | ARRAY_SIZE(ar5416Addac_9160_1_1), 2); |
184 | } else { | 184 | } else { |
185 | INIT_INI_ARRAY(&ah->iniAddac, ar5416Addac_9160, | 185 | INIT_INI_ARRAY(&ah->iniAddac, ar5416Addac_9160, |
186 | ARRAY_SIZE(ar5416Addac_9160), 2); | 186 | ARRAY_SIZE(ar5416Addac_9160), 2); |
@@ -239,12 +239,12 @@ void ar9002_hw_cck_chan14_spread(struct ath_hw *ah) | |||
239 | { | 239 | { |
240 | if (AR_SREV_9287_11_OR_LATER(ah)) { | 240 | if (AR_SREV_9287_11_OR_LATER(ah)) { |
241 | INIT_INI_ARRAY(&ah->iniCckfirNormal, | 241 | INIT_INI_ARRAY(&ah->iniCckfirNormal, |
242 | ar9287Common_normal_cck_fir_coeff_92871_1, | 242 | ar9287Common_normal_cck_fir_coeff_9287_1_1, |
243 | ARRAY_SIZE(ar9287Common_normal_cck_fir_coeff_92871_1), | 243 | ARRAY_SIZE(ar9287Common_normal_cck_fir_coeff_9287_1_1), |
244 | 2); | 244 | 2); |
245 | INIT_INI_ARRAY(&ah->iniCckfirJapan2484, | 245 | INIT_INI_ARRAY(&ah->iniCckfirJapan2484, |
246 | ar9287Common_japan_2484_cck_fir_coeff_92871_1, | 246 | ar9287Common_japan_2484_cck_fir_coeff_9287_1_1, |
247 | ARRAY_SIZE(ar9287Common_japan_2484_cck_fir_coeff_92871_1), | 247 | ARRAY_SIZE(ar9287Common_japan_2484_cck_fir_coeff_9287_1_1), |
248 | 2); | 248 | 2); |
249 | } | 249 | } |
250 | } | 250 | } |
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_initvals.h b/drivers/net/wireless/ath/ath9k/ar9002_initvals.h index 8ab24ee8564b..13b5e484c2ef 100644 --- a/drivers/net/wireless/ath/ath9k/ar9002_initvals.h +++ b/drivers/net/wireless/ath/ath9k/ar9002_initvals.h | |||
@@ -14,5217 +14,5213 @@ | |||
14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #ifndef INITVALS_9002_10_H | ||
18 | #define INITVALS_9002_10_H | ||
19 | |||
20 | static const u32 ar9280Modes_9280[][6] = { | 17 | static const u32 ar9280Modes_9280[][6] = { |
21 | { 0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0 }, | 18 | {0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0}, |
22 | { 0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0 }, | 19 | {0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0}, |
23 | { 0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180 }, | 20 | {0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180}, |
24 | { 0x000010f0, 0x0000a000, 0x00014000, 0x00016000, 0x0000b000, 0x00014008 }, | 21 | {0x000010f0, 0x0000a000, 0x00014000, 0x00016000, 0x0000b000, 0x00014008}, |
25 | { 0x00008014, 0x03e803e8, 0x07d007d0, 0x10801080, 0x08400840, 0x06e006e0 }, | 22 | {0x00008014, 0x03e803e8, 0x07d007d0, 0x10801080, 0x08400840, 0x06e006e0}, |
26 | { 0x0000801c, 0x128d8027, 0x128d804f, 0x12e00057, 0x12e0002b, 0x0988004f }, | 23 | {0x0000801c, 0x128d8027, 0x128d804f, 0x12e00057, 0x12e0002b, 0x0988004f}, |
27 | { 0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303 }, | 24 | {0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303}, |
28 | { 0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200 }, | 25 | {0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200}, |
29 | { 0x00009824, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }, | 26 | {0x00009824, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, |
30 | { 0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001 }, | 27 | {0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001}, |
31 | { 0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }, | 28 | {0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, |
32 | { 0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007 }, | 29 | {0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007}, |
33 | { 0x00009844, 0x1372161e, 0x1372161e, 0x137216a0, 0x137216a0, 0x137216a0 }, | 30 | {0x00009844, 0x1372161e, 0x1372161e, 0x137216a0, 0x137216a0, 0x137216a0}, |
34 | { 0x00009848, 0x00028566, 0x00028566, 0x00028563, 0x00028563, 0x00028563 }, | 31 | {0x00009848, 0x00028566, 0x00028566, 0x00028563, 0x00028563, 0x00028563}, |
35 | { 0x0000a848, 0x00028566, 0x00028566, 0x00028563, 0x00028563, 0x00028563 }, | 32 | {0x0000a848, 0x00028566, 0x00028566, 0x00028563, 0x00028563, 0x00028563}, |
36 | { 0x00009850, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2 }, | 33 | {0x00009850, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2}, |
37 | { 0x00009858, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e }, | 34 | {0x00009858, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e}, |
38 | { 0x0000985c, 0x3139605e, 0x3139605e, 0x3139605e, 0x3139605e, 0x3139605e }, | 35 | {0x0000985c, 0x3139605e, 0x3139605e, 0x3139605e, 0x3139605e, 0x3139605e}, |
39 | { 0x00009860, 0x00049d18, 0x00049d18, 0x00049d20, 0x00049d20, 0x00049d18 }, | 36 | {0x00009860, 0x00049d18, 0x00049d18, 0x00049d20, 0x00049d20, 0x00049d18}, |
40 | { 0x0000c864, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00 }, | 37 | {0x0000c864, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00}, |
41 | { 0x00009868, 0x5ac64190, 0x5ac64190, 0x5ac64190, 0x5ac64190, 0x5ac64190 }, | 38 | {0x00009868, 0x5ac64190, 0x5ac64190, 0x5ac64190, 0x5ac64190, 0x5ac64190}, |
42 | { 0x0000986c, 0x06903081, 0x06903081, 0x06903881, 0x06903881, 0x06903881 }, | 39 | {0x0000986c, 0x06903081, 0x06903081, 0x06903881, 0x06903881, 0x06903881}, |
43 | { 0x00009914, 0x000007d0, 0x000007d0, 0x00000898, 0x00000898, 0x000007d0 }, | 40 | {0x00009914, 0x000007d0, 0x000007d0, 0x00000898, 0x00000898, 0x000007d0}, |
44 | { 0x00009918, 0x0000000a, 0x00000014, 0x00000016, 0x0000000b, 0x00000016 }, | 41 | {0x00009918, 0x0000000a, 0x00000014, 0x00000016, 0x0000000b, 0x00000016}, |
45 | { 0x00009924, 0xd00a8a07, 0xd00a8a07, 0xd00a8a0d, 0xd00a8a0d, 0xd00a8a0d }, | 42 | {0x00009924, 0xd00a8a07, 0xd00a8a07, 0xd00a8a0d, 0xd00a8a0d, 0xd00a8a0d}, |
46 | { 0x00009944, 0xdfbc1010, 0xdfbc1010, 0xdfbc1010, 0xdfbc1010, 0xdfbc1010 }, | 43 | {0x00009944, 0xdfbc1010, 0xdfbc1010, 0xdfbc1010, 0xdfbc1010, 0xdfbc1010}, |
47 | { 0x00009960, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010 }, | 44 | {0x00009960, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010}, |
48 | { 0x0000a960, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010 }, | 45 | {0x0000a960, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010}, |
49 | { 0x00009964, 0x00000210, 0x00000210, 0x00000210, 0x00000210, 0x00000210 }, | 46 | {0x00009964, 0x00000210, 0x00000210, 0x00000210, 0x00000210, 0x00000210}, |
50 | { 0x0000c9b8, 0x0000001a, 0x0000001a, 0x0000001a, 0x0000001a, 0x0000001a }, | 47 | {0x0000c9b8, 0x0000001a, 0x0000001a, 0x0000001a, 0x0000001a, 0x0000001a}, |
51 | { 0x0000c9bc, 0x00000600, 0x00000600, 0x00000c00, 0x00000c00, 0x00000c00 }, | 48 | {0x0000c9bc, 0x00000600, 0x00000600, 0x00000c00, 0x00000c00, 0x00000c00}, |
52 | { 0x000099c0, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4 }, | 49 | {0x000099c0, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4}, |
53 | { 0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77 }, | 50 | {0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77}, |
54 | { 0x000099c8, 0x60f6532c, 0x60f6532c, 0x60f6532c, 0x60f6532c, 0x60f6532c }, | 51 | {0x000099c8, 0x60f6532c, 0x60f6532c, 0x60f6532c, 0x60f6532c, 0x60f6532c}, |
55 | { 0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8 }, | 52 | {0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8}, |
56 | { 0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384 }, | 53 | {0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384}, |
57 | { 0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 54 | {0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
58 | { 0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 55 | {0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
59 | { 0x00009a00, 0x00008184, 0x00008184, 0x00000214, 0x00000214, 0x00000214 }, | 56 | {0x00009a00, 0x00008184, 0x00008184, 0x00000214, 0x00000214, 0x00000214}, |
60 | { 0x00009a04, 0x00008188, 0x00008188, 0x00000218, 0x00000218, 0x00000218 }, | 57 | {0x00009a04, 0x00008188, 0x00008188, 0x00000218, 0x00000218, 0x00000218}, |
61 | { 0x00009a08, 0x0000818c, 0x0000818c, 0x00000224, 0x00000224, 0x00000224 }, | 58 | {0x00009a08, 0x0000818c, 0x0000818c, 0x00000224, 0x00000224, 0x00000224}, |
62 | { 0x00009a0c, 0x00008190, 0x00008190, 0x00000228, 0x00000228, 0x00000228 }, | 59 | {0x00009a0c, 0x00008190, 0x00008190, 0x00000228, 0x00000228, 0x00000228}, |
63 | { 0x00009a10, 0x00008194, 0x00008194, 0x0000022c, 0x0000022c, 0x0000022c }, | 60 | {0x00009a10, 0x00008194, 0x00008194, 0x0000022c, 0x0000022c, 0x0000022c}, |
64 | { 0x00009a14, 0x00008200, 0x00008200, 0x00000230, 0x00000230, 0x00000230 }, | 61 | {0x00009a14, 0x00008200, 0x00008200, 0x00000230, 0x00000230, 0x00000230}, |
65 | { 0x00009a18, 0x00008204, 0x00008204, 0x000002a4, 0x000002a4, 0x000002a4 }, | 62 | {0x00009a18, 0x00008204, 0x00008204, 0x000002a4, 0x000002a4, 0x000002a4}, |
66 | { 0x00009a1c, 0x00008208, 0x00008208, 0x000002a8, 0x000002a8, 0x000002a8 }, | 63 | {0x00009a1c, 0x00008208, 0x00008208, 0x000002a8, 0x000002a8, 0x000002a8}, |
67 | { 0x00009a20, 0x0000820c, 0x0000820c, 0x000002ac, 0x000002ac, 0x000002ac }, | 64 | {0x00009a20, 0x0000820c, 0x0000820c, 0x000002ac, 0x000002ac, 0x000002ac}, |
68 | { 0x00009a24, 0x00008210, 0x00008210, 0x000002b0, 0x000002b0, 0x000002b0 }, | 65 | {0x00009a24, 0x00008210, 0x00008210, 0x000002b0, 0x000002b0, 0x000002b0}, |
69 | { 0x00009a28, 0x00008214, 0x00008214, 0x000002b4, 0x000002b4, 0x000002b4 }, | 66 | {0x00009a28, 0x00008214, 0x00008214, 0x000002b4, 0x000002b4, 0x000002b4}, |
70 | { 0x00009a2c, 0x00008280, 0x00008280, 0x000002b8, 0x000002b8, 0x000002b8 }, | 67 | {0x00009a2c, 0x00008280, 0x00008280, 0x000002b8, 0x000002b8, 0x000002b8}, |
71 | { 0x00009a30, 0x00008284, 0x00008284, 0x00000390, 0x00000390, 0x00000390 }, | 68 | {0x00009a30, 0x00008284, 0x00008284, 0x00000390, 0x00000390, 0x00000390}, |
72 | { 0x00009a34, 0x00008288, 0x00008288, 0x00000394, 0x00000394, 0x00000394 }, | 69 | {0x00009a34, 0x00008288, 0x00008288, 0x00000394, 0x00000394, 0x00000394}, |
73 | { 0x00009a38, 0x0000828c, 0x0000828c, 0x00000398, 0x00000398, 0x00000398 }, | 70 | {0x00009a38, 0x0000828c, 0x0000828c, 0x00000398, 0x00000398, 0x00000398}, |
74 | { 0x00009a3c, 0x00008290, 0x00008290, 0x00000334, 0x00000334, 0x00000334 }, | 71 | {0x00009a3c, 0x00008290, 0x00008290, 0x00000334, 0x00000334, 0x00000334}, |
75 | { 0x00009a40, 0x00008300, 0x00008300, 0x00000338, 0x00000338, 0x00000338 }, | 72 | {0x00009a40, 0x00008300, 0x00008300, 0x00000338, 0x00000338, 0x00000338}, |
76 | { 0x00009a44, 0x00008304, 0x00008304, 0x000003ac, 0x000003ac, 0x000003ac }, | 73 | {0x00009a44, 0x00008304, 0x00008304, 0x000003ac, 0x000003ac, 0x000003ac}, |
77 | { 0x00009a48, 0x00008308, 0x00008308, 0x000003b0, 0x000003b0, 0x000003b0 }, | 74 | {0x00009a48, 0x00008308, 0x00008308, 0x000003b0, 0x000003b0, 0x000003b0}, |
78 | { 0x00009a4c, 0x0000830c, 0x0000830c, 0x000003b4, 0x000003b4, 0x000003b4 }, | 75 | {0x00009a4c, 0x0000830c, 0x0000830c, 0x000003b4, 0x000003b4, 0x000003b4}, |
79 | { 0x00009a50, 0x00008310, 0x00008310, 0x000003b8, 0x000003b8, 0x000003b8 }, | 76 | {0x00009a50, 0x00008310, 0x00008310, 0x000003b8, 0x000003b8, 0x000003b8}, |
80 | { 0x00009a54, 0x00008314, 0x00008314, 0x000003a5, 0x000003a5, 0x000003a5 }, | 77 | {0x00009a54, 0x00008314, 0x00008314, 0x000003a5, 0x000003a5, 0x000003a5}, |
81 | { 0x00009a58, 0x00008380, 0x00008380, 0x000003a9, 0x000003a9, 0x000003a9 }, | 78 | {0x00009a58, 0x00008380, 0x00008380, 0x000003a9, 0x000003a9, 0x000003a9}, |
82 | { 0x00009a5c, 0x00008384, 0x00008384, 0x000003ad, 0x000003ad, 0x000003ad }, | 79 | {0x00009a5c, 0x00008384, 0x00008384, 0x000003ad, 0x000003ad, 0x000003ad}, |
83 | { 0x00009a60, 0x00008388, 0x00008388, 0x00008194, 0x00008194, 0x00008194 }, | 80 | {0x00009a60, 0x00008388, 0x00008388, 0x00008194, 0x00008194, 0x00008194}, |
84 | { 0x00009a64, 0x0000838c, 0x0000838c, 0x000081a0, 0x000081a0, 0x000081a0 }, | 81 | {0x00009a64, 0x0000838c, 0x0000838c, 0x000081a0, 0x000081a0, 0x000081a0}, |
85 | { 0x00009a68, 0x00008390, 0x00008390, 0x0000820c, 0x0000820c, 0x0000820c }, | 82 | {0x00009a68, 0x00008390, 0x00008390, 0x0000820c, 0x0000820c, 0x0000820c}, |
86 | { 0x00009a6c, 0x00008394, 0x00008394, 0x000081a8, 0x000081a8, 0x000081a8 }, | 83 | {0x00009a6c, 0x00008394, 0x00008394, 0x000081a8, 0x000081a8, 0x000081a8}, |
87 | { 0x00009a70, 0x0000a380, 0x0000a380, 0x00008284, 0x00008284, 0x00008284 }, | 84 | {0x00009a70, 0x0000a380, 0x0000a380, 0x00008284, 0x00008284, 0x00008284}, |
88 | { 0x00009a74, 0x0000a384, 0x0000a384, 0x00008288, 0x00008288, 0x00008288 }, | 85 | {0x00009a74, 0x0000a384, 0x0000a384, 0x00008288, 0x00008288, 0x00008288}, |
89 | { 0x00009a78, 0x0000a388, 0x0000a388, 0x00008224, 0x00008224, 0x00008224 }, | 86 | {0x00009a78, 0x0000a388, 0x0000a388, 0x00008224, 0x00008224, 0x00008224}, |
90 | { 0x00009a7c, 0x0000a38c, 0x0000a38c, 0x00008290, 0x00008290, 0x00008290 }, | 87 | {0x00009a7c, 0x0000a38c, 0x0000a38c, 0x00008290, 0x00008290, 0x00008290}, |
91 | { 0x00009a80, 0x0000a390, 0x0000a390, 0x00008300, 0x00008300, 0x00008300 }, | 88 | {0x00009a80, 0x0000a390, 0x0000a390, 0x00008300, 0x00008300, 0x00008300}, |
92 | { 0x00009a84, 0x0000a394, 0x0000a394, 0x00008304, 0x00008304, 0x00008304 }, | 89 | {0x00009a84, 0x0000a394, 0x0000a394, 0x00008304, 0x00008304, 0x00008304}, |
93 | { 0x00009a88, 0x0000a780, 0x0000a780, 0x00008308, 0x00008308, 0x00008308 }, | 90 | {0x00009a88, 0x0000a780, 0x0000a780, 0x00008308, 0x00008308, 0x00008308}, |
94 | { 0x00009a8c, 0x0000a784, 0x0000a784, 0x0000830c, 0x0000830c, 0x0000830c }, | 91 | {0x00009a8c, 0x0000a784, 0x0000a784, 0x0000830c, 0x0000830c, 0x0000830c}, |
95 | { 0x00009a90, 0x0000a788, 0x0000a788, 0x00008380, 0x00008380, 0x00008380 }, | 92 | {0x00009a90, 0x0000a788, 0x0000a788, 0x00008380, 0x00008380, 0x00008380}, |
96 | { 0x00009a94, 0x0000a78c, 0x0000a78c, 0x00008384, 0x00008384, 0x00008384 }, | 93 | {0x00009a94, 0x0000a78c, 0x0000a78c, 0x00008384, 0x00008384, 0x00008384}, |
97 | { 0x00009a98, 0x0000a790, 0x0000a790, 0x00008700, 0x00008700, 0x00008700 }, | 94 | {0x00009a98, 0x0000a790, 0x0000a790, 0x00008700, 0x00008700, 0x00008700}, |
98 | { 0x00009a9c, 0x0000a794, 0x0000a794, 0x00008704, 0x00008704, 0x00008704 }, | 95 | {0x00009a9c, 0x0000a794, 0x0000a794, 0x00008704, 0x00008704, 0x00008704}, |
99 | { 0x00009aa0, 0x0000ab84, 0x0000ab84, 0x00008708, 0x00008708, 0x00008708 }, | 96 | {0x00009aa0, 0x0000ab84, 0x0000ab84, 0x00008708, 0x00008708, 0x00008708}, |
100 | { 0x00009aa4, 0x0000ab88, 0x0000ab88, 0x0000870c, 0x0000870c, 0x0000870c }, | 97 | {0x00009aa4, 0x0000ab88, 0x0000ab88, 0x0000870c, 0x0000870c, 0x0000870c}, |
101 | { 0x00009aa8, 0x0000ab8c, 0x0000ab8c, 0x00008780, 0x00008780, 0x00008780 }, | 98 | {0x00009aa8, 0x0000ab8c, 0x0000ab8c, 0x00008780, 0x00008780, 0x00008780}, |
102 | { 0x00009aac, 0x0000ab90, 0x0000ab90, 0x00008784, 0x00008784, 0x00008784 }, | 99 | {0x00009aac, 0x0000ab90, 0x0000ab90, 0x00008784, 0x00008784, 0x00008784}, |
103 | { 0x00009ab0, 0x0000ab94, 0x0000ab94, 0x00008b00, 0x00008b00, 0x00008b00 }, | 100 | {0x00009ab0, 0x0000ab94, 0x0000ab94, 0x00008b00, 0x00008b00, 0x00008b00}, |
104 | { 0x00009ab4, 0x0000af80, 0x0000af80, 0x00008b04, 0x00008b04, 0x00008b04 }, | 101 | {0x00009ab4, 0x0000af80, 0x0000af80, 0x00008b04, 0x00008b04, 0x00008b04}, |
105 | { 0x00009ab8, 0x0000af84, 0x0000af84, 0x00008b08, 0x00008b08, 0x00008b08 }, | 102 | {0x00009ab8, 0x0000af84, 0x0000af84, 0x00008b08, 0x00008b08, 0x00008b08}, |
106 | { 0x00009abc, 0x0000af88, 0x0000af88, 0x00008b0c, 0x00008b0c, 0x00008b0c }, | 103 | {0x00009abc, 0x0000af88, 0x0000af88, 0x00008b0c, 0x00008b0c, 0x00008b0c}, |
107 | { 0x00009ac0, 0x0000af8c, 0x0000af8c, 0x00008b80, 0x00008b80, 0x00008b80 }, | 104 | {0x00009ac0, 0x0000af8c, 0x0000af8c, 0x00008b80, 0x00008b80, 0x00008b80}, |
108 | { 0x00009ac4, 0x0000af90, 0x0000af90, 0x00008b84, 0x00008b84, 0x00008b84 }, | 105 | {0x00009ac4, 0x0000af90, 0x0000af90, 0x00008b84, 0x00008b84, 0x00008b84}, |
109 | { 0x00009ac8, 0x0000af94, 0x0000af94, 0x00008b88, 0x00008b88, 0x00008b88 }, | 106 | {0x00009ac8, 0x0000af94, 0x0000af94, 0x00008b88, 0x00008b88, 0x00008b88}, |
110 | { 0x00009acc, 0x0000b380, 0x0000b380, 0x00008b8c, 0x00008b8c, 0x00008b8c }, | 107 | {0x00009acc, 0x0000b380, 0x0000b380, 0x00008b8c, 0x00008b8c, 0x00008b8c}, |
111 | { 0x00009ad0, 0x0000b384, 0x0000b384, 0x00008b90, 0x00008b90, 0x00008b90 }, | 108 | {0x00009ad0, 0x0000b384, 0x0000b384, 0x00008b90, 0x00008b90, 0x00008b90}, |
112 | { 0x00009ad4, 0x0000b388, 0x0000b388, 0x00008f80, 0x00008f80, 0x00008f80 }, | 109 | {0x00009ad4, 0x0000b388, 0x0000b388, 0x00008f80, 0x00008f80, 0x00008f80}, |
113 | { 0x00009ad8, 0x0000b38c, 0x0000b38c, 0x00008f84, 0x00008f84, 0x00008f84 }, | 110 | {0x00009ad8, 0x0000b38c, 0x0000b38c, 0x00008f84, 0x00008f84, 0x00008f84}, |
114 | { 0x00009adc, 0x0000b390, 0x0000b390, 0x00008f88, 0x00008f88, 0x00008f88 }, | 111 | {0x00009adc, 0x0000b390, 0x0000b390, 0x00008f88, 0x00008f88, 0x00008f88}, |
115 | { 0x00009ae0, 0x0000b394, 0x0000b394, 0x00008f8c, 0x00008f8c, 0x00008f8c }, | 112 | {0x00009ae0, 0x0000b394, 0x0000b394, 0x00008f8c, 0x00008f8c, 0x00008f8c}, |
116 | { 0x00009ae4, 0x0000b398, 0x0000b398, 0x00008f90, 0x00008f90, 0x00008f90 }, | 113 | {0x00009ae4, 0x0000b398, 0x0000b398, 0x00008f90, 0x00008f90, 0x00008f90}, |
117 | { 0x00009ae8, 0x0000b780, 0x0000b780, 0x0000930c, 0x0000930c, 0x0000930c }, | 114 | {0x00009ae8, 0x0000b780, 0x0000b780, 0x0000930c, 0x0000930c, 0x0000930c}, |
118 | { 0x00009aec, 0x0000b784, 0x0000b784, 0x00009310, 0x00009310, 0x00009310 }, | 115 | {0x00009aec, 0x0000b784, 0x0000b784, 0x00009310, 0x00009310, 0x00009310}, |
119 | { 0x00009af0, 0x0000b788, 0x0000b788, 0x00009384, 0x00009384, 0x00009384 }, | 116 | {0x00009af0, 0x0000b788, 0x0000b788, 0x00009384, 0x00009384, 0x00009384}, |
120 | { 0x00009af4, 0x0000b78c, 0x0000b78c, 0x00009388, 0x00009388, 0x00009388 }, | 117 | {0x00009af4, 0x0000b78c, 0x0000b78c, 0x00009388, 0x00009388, 0x00009388}, |
121 | { 0x00009af8, 0x0000b790, 0x0000b790, 0x00009324, 0x00009324, 0x00009324 }, | 118 | {0x00009af8, 0x0000b790, 0x0000b790, 0x00009324, 0x00009324, 0x00009324}, |
122 | { 0x00009afc, 0x0000b794, 0x0000b794, 0x00009704, 0x00009704, 0x00009704 }, | 119 | {0x00009afc, 0x0000b794, 0x0000b794, 0x00009704, 0x00009704, 0x00009704}, |
123 | { 0x00009b00, 0x0000b798, 0x0000b798, 0x000096a4, 0x000096a4, 0x000096a4 }, | 120 | {0x00009b00, 0x0000b798, 0x0000b798, 0x000096a4, 0x000096a4, 0x000096a4}, |
124 | { 0x00009b04, 0x0000d784, 0x0000d784, 0x000096a8, 0x000096a8, 0x000096a8 }, | 121 | {0x00009b04, 0x0000d784, 0x0000d784, 0x000096a8, 0x000096a8, 0x000096a8}, |
125 | { 0x00009b08, 0x0000d788, 0x0000d788, 0x00009710, 0x00009710, 0x00009710 }, | 122 | {0x00009b08, 0x0000d788, 0x0000d788, 0x00009710, 0x00009710, 0x00009710}, |
126 | { 0x00009b0c, 0x0000d78c, 0x0000d78c, 0x00009714, 0x00009714, 0x00009714 }, | 123 | {0x00009b0c, 0x0000d78c, 0x0000d78c, 0x00009714, 0x00009714, 0x00009714}, |
127 | { 0x00009b10, 0x0000d790, 0x0000d790, 0x00009720, 0x00009720, 0x00009720 }, | 124 | {0x00009b10, 0x0000d790, 0x0000d790, 0x00009720, 0x00009720, 0x00009720}, |
128 | { 0x00009b14, 0x0000f780, 0x0000f780, 0x00009724, 0x00009724, 0x00009724 }, | 125 | {0x00009b14, 0x0000f780, 0x0000f780, 0x00009724, 0x00009724, 0x00009724}, |
129 | { 0x00009b18, 0x0000f784, 0x0000f784, 0x00009728, 0x00009728, 0x00009728 }, | 126 | {0x00009b18, 0x0000f784, 0x0000f784, 0x00009728, 0x00009728, 0x00009728}, |
130 | { 0x00009b1c, 0x0000f788, 0x0000f788, 0x0000972c, 0x0000972c, 0x0000972c }, | 127 | {0x00009b1c, 0x0000f788, 0x0000f788, 0x0000972c, 0x0000972c, 0x0000972c}, |
131 | { 0x00009b20, 0x0000f78c, 0x0000f78c, 0x000097a0, 0x000097a0, 0x000097a0 }, | 128 | {0x00009b20, 0x0000f78c, 0x0000f78c, 0x000097a0, 0x000097a0, 0x000097a0}, |
132 | { 0x00009b24, 0x0000f790, 0x0000f790, 0x000097a4, 0x000097a4, 0x000097a4 }, | 129 | {0x00009b24, 0x0000f790, 0x0000f790, 0x000097a4, 0x000097a4, 0x000097a4}, |
133 | { 0x00009b28, 0x0000f794, 0x0000f794, 0x000097a8, 0x000097a8, 0x000097a8 }, | 130 | {0x00009b28, 0x0000f794, 0x0000f794, 0x000097a8, 0x000097a8, 0x000097a8}, |
134 | { 0x00009b2c, 0x0000f7a4, 0x0000f7a4, 0x000097b0, 0x000097b0, 0x000097b0 }, | 131 | {0x00009b2c, 0x0000f7a4, 0x0000f7a4, 0x000097b0, 0x000097b0, 0x000097b0}, |
135 | { 0x00009b30, 0x0000f7a8, 0x0000f7a8, 0x000097b4, 0x000097b4, 0x000097b4 }, | 132 | {0x00009b30, 0x0000f7a8, 0x0000f7a8, 0x000097b4, 0x000097b4, 0x000097b4}, |
136 | { 0x00009b34, 0x0000f7ac, 0x0000f7ac, 0x000097b8, 0x000097b8, 0x000097b8 }, | 133 | {0x00009b34, 0x0000f7ac, 0x0000f7ac, 0x000097b8, 0x000097b8, 0x000097b8}, |
137 | { 0x00009b38, 0x0000f7b0, 0x0000f7b0, 0x000097a5, 0x000097a5, 0x000097a5 }, | 134 | {0x00009b38, 0x0000f7b0, 0x0000f7b0, 0x000097a5, 0x000097a5, 0x000097a5}, |
138 | { 0x00009b3c, 0x0000f7b4, 0x0000f7b4, 0x000097a9, 0x000097a9, 0x000097a9 }, | 135 | {0x00009b3c, 0x0000f7b4, 0x0000f7b4, 0x000097a9, 0x000097a9, 0x000097a9}, |
139 | { 0x00009b40, 0x0000f7a1, 0x0000f7a1, 0x000097ad, 0x000097ad, 0x000097ad }, | 136 | {0x00009b40, 0x0000f7a1, 0x0000f7a1, 0x000097ad, 0x000097ad, 0x000097ad}, |
140 | { 0x00009b44, 0x0000f7a5, 0x0000f7a5, 0x000097b1, 0x000097b1, 0x000097b1 }, | 137 | {0x00009b44, 0x0000f7a5, 0x0000f7a5, 0x000097b1, 0x000097b1, 0x000097b1}, |
141 | { 0x00009b48, 0x0000f7a9, 0x0000f7a9, 0x000097b5, 0x000097b5, 0x000097b5 }, | 138 | {0x00009b48, 0x0000f7a9, 0x0000f7a9, 0x000097b5, 0x000097b5, 0x000097b5}, |
142 | { 0x00009b4c, 0x0000f7ad, 0x0000f7ad, 0x000097b9, 0x000097b9, 0x000097b9 }, | 139 | {0x00009b4c, 0x0000f7ad, 0x0000f7ad, 0x000097b9, 0x000097b9, 0x000097b9}, |
143 | { 0x00009b50, 0x0000f7b1, 0x0000f7b1, 0x000097c5, 0x000097c5, 0x000097c5 }, | 140 | {0x00009b50, 0x0000f7b1, 0x0000f7b1, 0x000097c5, 0x000097c5, 0x000097c5}, |
144 | { 0x00009b54, 0x0000f7b5, 0x0000f7b5, 0x000097c9, 0x000097c9, 0x000097c9 }, | 141 | {0x00009b54, 0x0000f7b5, 0x0000f7b5, 0x000097c9, 0x000097c9, 0x000097c9}, |
145 | { 0x00009b58, 0x0000f7c5, 0x0000f7c5, 0x000097d1, 0x000097d1, 0x000097d1 }, | 142 | {0x00009b58, 0x0000f7c5, 0x0000f7c5, 0x000097d1, 0x000097d1, 0x000097d1}, |
146 | { 0x00009b5c, 0x0000f7c9, 0x0000f7c9, 0x000097d5, 0x000097d5, 0x000097d5 }, | 143 | {0x00009b5c, 0x0000f7c9, 0x0000f7c9, 0x000097d5, 0x000097d5, 0x000097d5}, |
147 | { 0x00009b60, 0x0000f7cd, 0x0000f7cd, 0x000097d9, 0x000097d9, 0x000097d9 }, | 144 | {0x00009b60, 0x0000f7cd, 0x0000f7cd, 0x000097d9, 0x000097d9, 0x000097d9}, |
148 | { 0x00009b64, 0x0000f7d1, 0x0000f7d1, 0x000097c6, 0x000097c6, 0x000097c6 }, | 145 | {0x00009b64, 0x0000f7d1, 0x0000f7d1, 0x000097c6, 0x000097c6, 0x000097c6}, |
149 | { 0x00009b68, 0x0000f7d5, 0x0000f7d5, 0x000097ca, 0x000097ca, 0x000097ca }, | 146 | {0x00009b68, 0x0000f7d5, 0x0000f7d5, 0x000097ca, 0x000097ca, 0x000097ca}, |
150 | { 0x00009b6c, 0x0000f7c2, 0x0000f7c2, 0x000097ce, 0x000097ce, 0x000097ce }, | 147 | {0x00009b6c, 0x0000f7c2, 0x0000f7c2, 0x000097ce, 0x000097ce, 0x000097ce}, |
151 | { 0x00009b70, 0x0000f7c6, 0x0000f7c6, 0x000097d2, 0x000097d2, 0x000097d2 }, | 148 | {0x00009b70, 0x0000f7c6, 0x0000f7c6, 0x000097d2, 0x000097d2, 0x000097d2}, |
152 | { 0x00009b74, 0x0000f7ca, 0x0000f7ca, 0x000097d6, 0x000097d6, 0x000097d6 }, | 149 | {0x00009b74, 0x0000f7ca, 0x0000f7ca, 0x000097d6, 0x000097d6, 0x000097d6}, |
153 | { 0x00009b78, 0x0000f7ce, 0x0000f7ce, 0x000097c3, 0x000097c3, 0x000097c3 }, | 150 | {0x00009b78, 0x0000f7ce, 0x0000f7ce, 0x000097c3, 0x000097c3, 0x000097c3}, |
154 | { 0x00009b7c, 0x0000f7d2, 0x0000f7d2, 0x000097c7, 0x000097c7, 0x000097c7 }, | 151 | {0x00009b7c, 0x0000f7d2, 0x0000f7d2, 0x000097c7, 0x000097c7, 0x000097c7}, |
155 | { 0x00009b80, 0x0000f7d6, 0x0000f7d6, 0x000097cb, 0x000097cb, 0x000097cb }, | 152 | {0x00009b80, 0x0000f7d6, 0x0000f7d6, 0x000097cb, 0x000097cb, 0x000097cb}, |
156 | { 0x00009b84, 0x0000f7c3, 0x0000f7c3, 0x000097cf, 0x000097cf, 0x000097cf }, | 153 | {0x00009b84, 0x0000f7c3, 0x0000f7c3, 0x000097cf, 0x000097cf, 0x000097cf}, |
157 | { 0x00009b88, 0x0000f7c7, 0x0000f7c7, 0x000097d7, 0x000097d7, 0x000097d7 }, | 154 | {0x00009b88, 0x0000f7c7, 0x0000f7c7, 0x000097d7, 0x000097d7, 0x000097d7}, |
158 | { 0x00009b8c, 0x0000f7cb, 0x0000f7cb, 0x000097db, 0x000097db, 0x000097db }, | 155 | {0x00009b8c, 0x0000f7cb, 0x0000f7cb, 0x000097db, 0x000097db, 0x000097db}, |
159 | { 0x00009b90, 0x0000f7d3, 0x0000f7d3, 0x000097db, 0x000097db, 0x000097db }, | 156 | {0x00009b90, 0x0000f7d3, 0x0000f7d3, 0x000097db, 0x000097db, 0x000097db}, |
160 | { 0x00009b94, 0x0000f7d7, 0x0000f7d7, 0x000097db, 0x000097db, 0x000097db }, | 157 | {0x00009b94, 0x0000f7d7, 0x0000f7d7, 0x000097db, 0x000097db, 0x000097db}, |
161 | { 0x00009b98, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 158 | {0x00009b98, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
162 | { 0x00009b9c, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 159 | {0x00009b9c, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
163 | { 0x00009ba0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 160 | {0x00009ba0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
164 | { 0x00009ba4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 161 | {0x00009ba4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
165 | { 0x00009ba8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 162 | {0x00009ba8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
166 | { 0x00009bac, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 163 | {0x00009bac, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
167 | { 0x00009bb0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 164 | {0x00009bb0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
168 | { 0x00009bb4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 165 | {0x00009bb4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
169 | { 0x00009bb8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 166 | {0x00009bb8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
170 | { 0x00009bbc, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 167 | {0x00009bbc, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
171 | { 0x00009bc0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 168 | {0x00009bc0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
172 | { 0x00009bc4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 169 | {0x00009bc4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
173 | { 0x00009bc8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 170 | {0x00009bc8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
174 | { 0x00009bcc, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 171 | {0x00009bcc, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
175 | { 0x00009bd0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 172 | {0x00009bd0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
176 | { 0x00009bd4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 173 | {0x00009bd4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
177 | { 0x00009bd8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 174 | {0x00009bd8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
178 | { 0x00009bdc, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 175 | {0x00009bdc, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
179 | { 0x00009be0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 176 | {0x00009be0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
180 | { 0x00009be4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 177 | {0x00009be4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
181 | { 0x00009be8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 178 | {0x00009be8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
182 | { 0x00009bec, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 179 | {0x00009bec, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
183 | { 0x00009bf0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 180 | {0x00009bf0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
184 | { 0x00009bf4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 181 | {0x00009bf4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
185 | { 0x00009bf8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 182 | {0x00009bf8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
186 | { 0x00009bfc, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 183 | {0x00009bfc, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
187 | { 0x0000a204, 0x00000444, 0x00000444, 0x00000444, 0x00000444, 0x00000444 }, | 184 | {0x0000a204, 0x00000444, 0x00000444, 0x00000444, 0x00000444, 0x00000444}, |
188 | { 0x0000a208, 0x803e4788, 0x803e4788, 0x803e4788, 0x803e4788, 0x803e4788 }, | 185 | {0x0000a208, 0x803e4788, 0x803e4788, 0x803e4788, 0x803e4788, 0x803e4788}, |
189 | { 0x0000a20c, 0x000c6019, 0x000c6019, 0x000c6019, 0x000c6019, 0x000c6019 }, | 186 | {0x0000a20c, 0x000c6019, 0x000c6019, 0x000c6019, 0x000c6019, 0x000c6019}, |
190 | { 0x0000b20c, 0x000c6019, 0x000c6019, 0x000c6019, 0x000c6019, 0x000c6019 }, | 187 | {0x0000b20c, 0x000c6019, 0x000c6019, 0x000c6019, 0x000c6019, 0x000c6019}, |
191 | { 0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a }, | 188 | {0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a}, |
192 | { 0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000 }, | 189 | {0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000}, |
193 | { 0x0000a274, 0x0a19c652, 0x0a19c652, 0x0a1aa652, 0x0a1aa652, 0x0a1aa652 }, | 190 | {0x0000a274, 0x0a19c652, 0x0a19c652, 0x0a1aa652, 0x0a1aa652, 0x0a1aa652}, |
194 | { 0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 191 | {0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
195 | { 0x0000a304, 0x00003002, 0x00003002, 0x00003002, 0x00003002, 0x00003002 }, | 192 | {0x0000a304, 0x00003002, 0x00003002, 0x00003002, 0x00003002, 0x00003002}, |
196 | { 0x0000a308, 0x00006004, 0x00006004, 0x00008009, 0x00008009, 0x00008009 }, | 193 | {0x0000a308, 0x00006004, 0x00006004, 0x00008009, 0x00008009, 0x00008009}, |
197 | { 0x0000a30c, 0x0000a006, 0x0000a006, 0x0000b00b, 0x0000b00b, 0x0000b00b }, | 194 | {0x0000a30c, 0x0000a006, 0x0000a006, 0x0000b00b, 0x0000b00b, 0x0000b00b}, |
198 | { 0x0000a310, 0x0000e012, 0x0000e012, 0x0000e012, 0x0000e012, 0x0000e012 }, | 195 | {0x0000a310, 0x0000e012, 0x0000e012, 0x0000e012, 0x0000e012, 0x0000e012}, |
199 | { 0x0000a314, 0x00011014, 0x00011014, 0x00012048, 0x00012048, 0x00012048 }, | 196 | {0x0000a314, 0x00011014, 0x00011014, 0x00012048, 0x00012048, 0x00012048}, |
200 | { 0x0000a318, 0x0001504a, 0x0001504a, 0x0001604a, 0x0001604a, 0x0001604a }, | 197 | {0x0000a318, 0x0001504a, 0x0001504a, 0x0001604a, 0x0001604a, 0x0001604a}, |
201 | { 0x0000a31c, 0x0001904c, 0x0001904c, 0x0001a211, 0x0001a211, 0x0001a211 }, | 198 | {0x0000a31c, 0x0001904c, 0x0001904c, 0x0001a211, 0x0001a211, 0x0001a211}, |
202 | { 0x0000a320, 0x0001c04e, 0x0001c04e, 0x0001e213, 0x0001e213, 0x0001e213 }, | 199 | {0x0000a320, 0x0001c04e, 0x0001c04e, 0x0001e213, 0x0001e213, 0x0001e213}, |
203 | { 0x0000a324, 0x00020092, 0x00020092, 0x0002121b, 0x0002121b, 0x0002121b }, | 200 | {0x0000a324, 0x00020092, 0x00020092, 0x0002121b, 0x0002121b, 0x0002121b}, |
204 | { 0x0000a328, 0x0002410a, 0x0002410a, 0x00024412, 0x00024412, 0x00024412 }, | 201 | {0x0000a328, 0x0002410a, 0x0002410a, 0x00024412, 0x00024412, 0x00024412}, |
205 | { 0x0000a32c, 0x0002710c, 0x0002710c, 0x00028414, 0x00028414, 0x00028414 }, | 202 | {0x0000a32c, 0x0002710c, 0x0002710c, 0x00028414, 0x00028414, 0x00028414}, |
206 | { 0x0000a330, 0x0002b18b, 0x0002b18b, 0x0002b44a, 0x0002b44a, 0x0002b44a }, | 203 | {0x0000a330, 0x0002b18b, 0x0002b18b, 0x0002b44a, 0x0002b44a, 0x0002b44a}, |
207 | { 0x0000a334, 0x0002e1cc, 0x0002e1cc, 0x00030649, 0x00030649, 0x00030649 }, | 204 | {0x0000a334, 0x0002e1cc, 0x0002e1cc, 0x00030649, 0x00030649, 0x00030649}, |
208 | { 0x0000a338, 0x000321ec, 0x000321ec, 0x0003364b, 0x0003364b, 0x0003364b }, | 205 | {0x0000a338, 0x000321ec, 0x000321ec, 0x0003364b, 0x0003364b, 0x0003364b}, |
209 | { 0x0000a33c, 0x000321ec, 0x000321ec, 0x00038a49, 0x00038a49, 0x00038a49 }, | 206 | {0x0000a33c, 0x000321ec, 0x000321ec, 0x00038a49, 0x00038a49, 0x00038a49}, |
210 | { 0x0000a340, 0x000321ec, 0x000321ec, 0x0003be48, 0x0003be48, 0x0003be48 }, | 207 | {0x0000a340, 0x000321ec, 0x000321ec, 0x0003be48, 0x0003be48, 0x0003be48}, |
211 | { 0x0000a344, 0x000321ec, 0x000321ec, 0x0003ee4a, 0x0003ee4a, 0x0003ee4a }, | 208 | {0x0000a344, 0x000321ec, 0x000321ec, 0x0003ee4a, 0x0003ee4a, 0x0003ee4a}, |
212 | { 0x0000a348, 0x000321ec, 0x000321ec, 0x00042e88, 0x00042e88, 0x00042e88 }, | 209 | {0x0000a348, 0x000321ec, 0x000321ec, 0x00042e88, 0x00042e88, 0x00042e88}, |
213 | { 0x0000a34c, 0x000321ec, 0x000321ec, 0x00046e8a, 0x00046e8a, 0x00046e8a }, | 210 | {0x0000a34c, 0x000321ec, 0x000321ec, 0x00046e8a, 0x00046e8a, 0x00046e8a}, |
214 | { 0x0000a350, 0x000321ec, 0x000321ec, 0x00049ec9, 0x00049ec9, 0x00049ec9 }, | 211 | {0x0000a350, 0x000321ec, 0x000321ec, 0x00049ec9, 0x00049ec9, 0x00049ec9}, |
215 | { 0x0000a354, 0x000321ec, 0x000321ec, 0x0004bf42, 0x0004bf42, 0x0004bf42 }, | 212 | {0x0000a354, 0x000321ec, 0x000321ec, 0x0004bf42, 0x0004bf42, 0x0004bf42}, |
216 | { 0x0000784c, 0x0e4f048c, 0x0e4f048c, 0x0e4d048c, 0x0e4d048c, 0x0e4d048c }, | 213 | {0x0000784c, 0x0e4f048c, 0x0e4f048c, 0x0e4d048c, 0x0e4d048c, 0x0e4d048c}, |
217 | { 0x00007854, 0x12031828, 0x12031828, 0x12035828, 0x12035828, 0x12035828 }, | 214 | {0x00007854, 0x12031828, 0x12031828, 0x12035828, 0x12035828, 0x12035828}, |
218 | { 0x00007870, 0x807ec400, 0x807ec400, 0x807ec000, 0x807ec000, 0x807ec000 }, | 215 | {0x00007870, 0x807ec400, 0x807ec400, 0x807ec000, 0x807ec000, 0x807ec000}, |
219 | { 0x0000788c, 0x00010000, 0x00010000, 0x00110000, 0x00110000, 0x00110000 }, | 216 | {0x0000788c, 0x00010000, 0x00010000, 0x00110000, 0x00110000, 0x00110000}, |
220 | }; | 217 | }; |
221 | 218 | ||
222 | static const u32 ar9280Common_9280[][2] = { | 219 | static const u32 ar9280Common_9280[][2] = { |
223 | { 0x0000000c, 0x00000000 }, | 220 | /* Addr allmodes */ |
224 | { 0x00000030, 0x00020015 }, | 221 | {0x0000000c, 0x00000000}, |
225 | { 0x00000034, 0x00000005 }, | 222 | {0x00000030, 0x00020015}, |
226 | { 0x00000040, 0x00000000 }, | 223 | {0x00000034, 0x00000005}, |
227 | { 0x00000044, 0x00000008 }, | 224 | {0x00000040, 0x00000000}, |
228 | { 0x00000048, 0x00000008 }, | 225 | {0x00000044, 0x00000008}, |
229 | { 0x0000004c, 0x00000010 }, | 226 | {0x00000048, 0x00000008}, |
230 | { 0x00000050, 0x00000000 }, | 227 | {0x0000004c, 0x00000010}, |
231 | { 0x00000054, 0x0000001f }, | 228 | {0x00000050, 0x00000000}, |
232 | { 0x00000800, 0x00000000 }, | 229 | {0x00000054, 0x0000001f}, |
233 | { 0x00000804, 0x00000000 }, | 230 | {0x00000800, 0x00000000}, |
234 | { 0x00000808, 0x00000000 }, | 231 | {0x00000804, 0x00000000}, |
235 | { 0x0000080c, 0x00000000 }, | 232 | {0x00000808, 0x00000000}, |
236 | { 0x00000810, 0x00000000 }, | 233 | {0x0000080c, 0x00000000}, |
237 | { 0x00000814, 0x00000000 }, | 234 | {0x00000810, 0x00000000}, |
238 | { 0x00000818, 0x00000000 }, | 235 | {0x00000814, 0x00000000}, |
239 | { 0x0000081c, 0x00000000 }, | 236 | {0x00000818, 0x00000000}, |
240 | { 0x00000820, 0x00000000 }, | 237 | {0x0000081c, 0x00000000}, |
241 | { 0x00000824, 0x00000000 }, | 238 | {0x00000820, 0x00000000}, |
242 | { 0x00001040, 0x002ffc0f }, | 239 | {0x00000824, 0x00000000}, |
243 | { 0x00001044, 0x002ffc0f }, | 240 | {0x00001040, 0x002ffc0f}, |
244 | { 0x00001048, 0x002ffc0f }, | 241 | {0x00001044, 0x002ffc0f}, |
245 | { 0x0000104c, 0x002ffc0f }, | 242 | {0x00001048, 0x002ffc0f}, |
246 | { 0x00001050, 0x002ffc0f }, | 243 | {0x0000104c, 0x002ffc0f}, |
247 | { 0x00001054, 0x002ffc0f }, | 244 | {0x00001050, 0x002ffc0f}, |
248 | { 0x00001058, 0x002ffc0f }, | 245 | {0x00001054, 0x002ffc0f}, |
249 | { 0x0000105c, 0x002ffc0f }, | 246 | {0x00001058, 0x002ffc0f}, |
250 | { 0x00001060, 0x002ffc0f }, | 247 | {0x0000105c, 0x002ffc0f}, |
251 | { 0x00001064, 0x002ffc0f }, | 248 | {0x00001060, 0x002ffc0f}, |
252 | { 0x00001230, 0x00000000 }, | 249 | {0x00001064, 0x002ffc0f}, |
253 | { 0x00001270, 0x00000000 }, | 250 | {0x00001230, 0x00000000}, |
254 | { 0x00001038, 0x00000000 }, | 251 | {0x00001270, 0x00000000}, |
255 | { 0x00001078, 0x00000000 }, | 252 | {0x00001038, 0x00000000}, |
256 | { 0x000010b8, 0x00000000 }, | 253 | {0x00001078, 0x00000000}, |
257 | { 0x000010f8, 0x00000000 }, | 254 | {0x000010b8, 0x00000000}, |
258 | { 0x00001138, 0x00000000 }, | 255 | {0x000010f8, 0x00000000}, |
259 | { 0x00001178, 0x00000000 }, | 256 | {0x00001138, 0x00000000}, |
260 | { 0x000011b8, 0x00000000 }, | 257 | {0x00001178, 0x00000000}, |
261 | { 0x000011f8, 0x00000000 }, | 258 | {0x000011b8, 0x00000000}, |
262 | { 0x00001238, 0x00000000 }, | 259 | {0x000011f8, 0x00000000}, |
263 | { 0x00001278, 0x00000000 }, | 260 | {0x00001238, 0x00000000}, |
264 | { 0x000012b8, 0x00000000 }, | 261 | {0x00001278, 0x00000000}, |
265 | { 0x000012f8, 0x00000000 }, | 262 | {0x000012b8, 0x00000000}, |
266 | { 0x00001338, 0x00000000 }, | 263 | {0x000012f8, 0x00000000}, |
267 | { 0x00001378, 0x00000000 }, | 264 | {0x00001338, 0x00000000}, |
268 | { 0x000013b8, 0x00000000 }, | 265 | {0x00001378, 0x00000000}, |
269 | { 0x000013f8, 0x00000000 }, | 266 | {0x000013b8, 0x00000000}, |
270 | { 0x00001438, 0x00000000 }, | 267 | {0x000013f8, 0x00000000}, |
271 | { 0x00001478, 0x00000000 }, | 268 | {0x00001438, 0x00000000}, |
272 | { 0x000014b8, 0x00000000 }, | 269 | {0x00001478, 0x00000000}, |
273 | { 0x000014f8, 0x00000000 }, | 270 | {0x000014b8, 0x00000000}, |
274 | { 0x00001538, 0x00000000 }, | 271 | {0x000014f8, 0x00000000}, |
275 | { 0x00001578, 0x00000000 }, | 272 | {0x00001538, 0x00000000}, |
276 | { 0x000015b8, 0x00000000 }, | 273 | {0x00001578, 0x00000000}, |
277 | { 0x000015f8, 0x00000000 }, | 274 | {0x000015b8, 0x00000000}, |
278 | { 0x00001638, 0x00000000 }, | 275 | {0x000015f8, 0x00000000}, |
279 | { 0x00001678, 0x00000000 }, | 276 | {0x00001638, 0x00000000}, |
280 | { 0x000016b8, 0x00000000 }, | 277 | {0x00001678, 0x00000000}, |
281 | { 0x000016f8, 0x00000000 }, | 278 | {0x000016b8, 0x00000000}, |
282 | { 0x00001738, 0x00000000 }, | 279 | {0x000016f8, 0x00000000}, |
283 | { 0x00001778, 0x00000000 }, | 280 | {0x00001738, 0x00000000}, |
284 | { 0x000017b8, 0x00000000 }, | 281 | {0x00001778, 0x00000000}, |
285 | { 0x000017f8, 0x00000000 }, | 282 | {0x000017b8, 0x00000000}, |
286 | { 0x0000103c, 0x00000000 }, | 283 | {0x000017f8, 0x00000000}, |
287 | { 0x0000107c, 0x00000000 }, | 284 | {0x0000103c, 0x00000000}, |
288 | { 0x000010bc, 0x00000000 }, | 285 | {0x0000107c, 0x00000000}, |
289 | { 0x000010fc, 0x00000000 }, | 286 | {0x000010bc, 0x00000000}, |
290 | { 0x0000113c, 0x00000000 }, | 287 | {0x000010fc, 0x00000000}, |
291 | { 0x0000117c, 0x00000000 }, | 288 | {0x0000113c, 0x00000000}, |
292 | { 0x000011bc, 0x00000000 }, | 289 | {0x0000117c, 0x00000000}, |
293 | { 0x000011fc, 0x00000000 }, | 290 | {0x000011bc, 0x00000000}, |
294 | { 0x0000123c, 0x00000000 }, | 291 | {0x000011fc, 0x00000000}, |
295 | { 0x0000127c, 0x00000000 }, | 292 | {0x0000123c, 0x00000000}, |
296 | { 0x000012bc, 0x00000000 }, | 293 | {0x0000127c, 0x00000000}, |
297 | { 0x000012fc, 0x00000000 }, | 294 | {0x000012bc, 0x00000000}, |
298 | { 0x0000133c, 0x00000000 }, | 295 | {0x000012fc, 0x00000000}, |
299 | { 0x0000137c, 0x00000000 }, | 296 | {0x0000133c, 0x00000000}, |
300 | { 0x000013bc, 0x00000000 }, | 297 | {0x0000137c, 0x00000000}, |
301 | { 0x000013fc, 0x00000000 }, | 298 | {0x000013bc, 0x00000000}, |
302 | { 0x0000143c, 0x00000000 }, | 299 | {0x000013fc, 0x00000000}, |
303 | { 0x0000147c, 0x00000000 }, | 300 | {0x0000143c, 0x00000000}, |
304 | { 0x00004030, 0x00000002 }, | 301 | {0x0000147c, 0x00000000}, |
305 | { 0x0000403c, 0x00000002 }, | 302 | {0x00004030, 0x00000002}, |
306 | { 0x00004024, 0x0000001f }, | 303 | {0x0000403c, 0x00000002}, |
307 | { 0x00007010, 0x00000033 }, | 304 | {0x00004024, 0x0000001f}, |
308 | { 0x00007038, 0x000004c2 }, | 305 | {0x00007010, 0x00000033}, |
309 | { 0x00008004, 0x00000000 }, | 306 | {0x00007038, 0x000004c2}, |
310 | { 0x00008008, 0x00000000 }, | 307 | {0x00008004, 0x00000000}, |
311 | { 0x0000800c, 0x00000000 }, | 308 | {0x00008008, 0x00000000}, |
312 | { 0x00008018, 0x00000700 }, | 309 | {0x0000800c, 0x00000000}, |
313 | { 0x00008020, 0x00000000 }, | 310 | {0x00008018, 0x00000700}, |
314 | { 0x00008038, 0x00000000 }, | 311 | {0x00008020, 0x00000000}, |
315 | { 0x0000803c, 0x00000000 }, | 312 | {0x00008038, 0x00000000}, |
316 | { 0x00008048, 0x40000000 }, | 313 | {0x0000803c, 0x00000000}, |
317 | { 0x00008054, 0x00000000 }, | 314 | {0x00008048, 0x40000000}, |
318 | { 0x00008058, 0x00000000 }, | 315 | {0x00008054, 0x00000000}, |
319 | { 0x0000805c, 0x000fc78f }, | 316 | {0x00008058, 0x00000000}, |
320 | { 0x00008060, 0x0000000f }, | 317 | {0x0000805c, 0x000fc78f}, |
321 | { 0x00008064, 0x00000000 }, | 318 | {0x00008060, 0x0000000f}, |
322 | { 0x00008070, 0x00000000 }, | 319 | {0x00008064, 0x00000000}, |
323 | { 0x000080c0, 0x2a82301a }, | 320 | {0x00008070, 0x00000000}, |
324 | { 0x000080c4, 0x05dc01e0 }, | 321 | {0x000080c0, 0x2a82301a}, |
325 | { 0x000080c8, 0x1f402710 }, | 322 | {0x000080c4, 0x05dc01e0}, |
326 | { 0x000080cc, 0x01f40000 }, | 323 | {0x000080c8, 0x1f402710}, |
327 | { 0x000080d0, 0x00001e00 }, | 324 | {0x000080cc, 0x01f40000}, |
328 | { 0x000080d4, 0x00000000 }, | 325 | {0x000080d0, 0x00001e00}, |
329 | { 0x000080d8, 0x00400000 }, | 326 | {0x000080d4, 0x00000000}, |
330 | { 0x000080e0, 0xffffffff }, | 327 | {0x000080d8, 0x00400000}, |
331 | { 0x000080e4, 0x0000ffff }, | 328 | {0x000080e0, 0xffffffff}, |
332 | { 0x000080e8, 0x003f3f3f }, | 329 | {0x000080e4, 0x0000ffff}, |
333 | { 0x000080ec, 0x00000000 }, | 330 | {0x000080e8, 0x003f3f3f}, |
334 | { 0x000080f0, 0x00000000 }, | 331 | {0x000080ec, 0x00000000}, |
335 | { 0x000080f4, 0x00000000 }, | 332 | {0x000080f0, 0x00000000}, |
336 | { 0x000080f8, 0x00000000 }, | 333 | {0x000080f4, 0x00000000}, |
337 | { 0x000080fc, 0x00020000 }, | 334 | {0x000080f8, 0x00000000}, |
338 | { 0x00008100, 0x00020000 }, | 335 | {0x000080fc, 0x00020000}, |
339 | { 0x00008104, 0x00000001 }, | 336 | {0x00008100, 0x00020000}, |
340 | { 0x00008108, 0x00000052 }, | 337 | {0x00008104, 0x00000001}, |
341 | { 0x0000810c, 0x00000000 }, | 338 | {0x00008108, 0x00000052}, |
342 | { 0x00008110, 0x00000168 }, | 339 | {0x0000810c, 0x00000000}, |
343 | { 0x00008118, 0x000100aa }, | 340 | {0x00008110, 0x00000168}, |
344 | { 0x0000811c, 0x00003210 }, | 341 | {0x00008118, 0x000100aa}, |
345 | { 0x00008120, 0x08f04800 }, | 342 | {0x0000811c, 0x00003210}, |
346 | { 0x00008124, 0x00000000 }, | 343 | {0x00008120, 0x08f04800}, |
347 | { 0x00008128, 0x00000000 }, | 344 | {0x00008124, 0x00000000}, |
348 | { 0x0000812c, 0x00000000 }, | 345 | {0x00008128, 0x00000000}, |
349 | { 0x00008130, 0x00000000 }, | 346 | {0x0000812c, 0x00000000}, |
350 | { 0x00008134, 0x00000000 }, | 347 | {0x00008130, 0x00000000}, |
351 | { 0x00008138, 0x00000000 }, | 348 | {0x00008134, 0x00000000}, |
352 | { 0x0000813c, 0x00000000 }, | 349 | {0x00008138, 0x00000000}, |
353 | { 0x00008144, 0x00000000 }, | 350 | {0x0000813c, 0x00000000}, |
354 | { 0x00008168, 0x00000000 }, | 351 | {0x00008144, 0x00000000}, |
355 | { 0x0000816c, 0x00000000 }, | 352 | {0x00008168, 0x00000000}, |
356 | { 0x00008170, 0x32143320 }, | 353 | {0x0000816c, 0x00000000}, |
357 | { 0x00008174, 0xfaa4fa50 }, | 354 | {0x00008170, 0x32143320}, |
358 | { 0x00008178, 0x00000100 }, | 355 | {0x00008174, 0xfaa4fa50}, |
359 | { 0x0000817c, 0x00000000 }, | 356 | {0x00008178, 0x00000100}, |
360 | { 0x000081c4, 0x00000000 }, | 357 | {0x0000817c, 0x00000000}, |
361 | { 0x000081d0, 0x00003210 }, | 358 | {0x000081c4, 0x00000000}, |
362 | { 0x000081ec, 0x00000000 }, | 359 | {0x000081d0, 0x00003210}, |
363 | { 0x000081f0, 0x00000000 }, | 360 | {0x000081ec, 0x00000000}, |
364 | { 0x000081f4, 0x00000000 }, | 361 | {0x000081f0, 0x00000000}, |
365 | { 0x000081f8, 0x00000000 }, | 362 | {0x000081f4, 0x00000000}, |
366 | { 0x000081fc, 0x00000000 }, | 363 | {0x000081f8, 0x00000000}, |
367 | { 0x00008200, 0x00000000 }, | 364 | {0x000081fc, 0x00000000}, |
368 | { 0x00008204, 0x00000000 }, | 365 | {0x00008200, 0x00000000}, |
369 | { 0x00008208, 0x00000000 }, | 366 | {0x00008204, 0x00000000}, |
370 | { 0x0000820c, 0x00000000 }, | 367 | {0x00008208, 0x00000000}, |
371 | { 0x00008210, 0x00000000 }, | 368 | {0x0000820c, 0x00000000}, |
372 | { 0x00008214, 0x00000000 }, | 369 | {0x00008210, 0x00000000}, |
373 | { 0x00008218, 0x00000000 }, | 370 | {0x00008214, 0x00000000}, |
374 | { 0x0000821c, 0x00000000 }, | 371 | {0x00008218, 0x00000000}, |
375 | { 0x00008220, 0x00000000 }, | 372 | {0x0000821c, 0x00000000}, |
376 | { 0x00008224, 0x00000000 }, | 373 | {0x00008220, 0x00000000}, |
377 | { 0x00008228, 0x00000000 }, | 374 | {0x00008224, 0x00000000}, |
378 | { 0x0000822c, 0x00000000 }, | 375 | {0x00008228, 0x00000000}, |
379 | { 0x00008230, 0x00000000 }, | 376 | {0x0000822c, 0x00000000}, |
380 | { 0x00008234, 0x00000000 }, | 377 | {0x00008230, 0x00000000}, |
381 | { 0x00008238, 0x00000000 }, | 378 | {0x00008234, 0x00000000}, |
382 | { 0x0000823c, 0x00000000 }, | 379 | {0x00008238, 0x00000000}, |
383 | { 0x00008240, 0x00100000 }, | 380 | {0x0000823c, 0x00000000}, |
384 | { 0x00008244, 0x0010f400 }, | 381 | {0x00008240, 0x00100000}, |
385 | { 0x00008248, 0x00000100 }, | 382 | {0x00008244, 0x0010f400}, |
386 | { 0x0000824c, 0x0001e800 }, | 383 | {0x00008248, 0x00000100}, |
387 | { 0x00008250, 0x00000000 }, | 384 | {0x0000824c, 0x0001e800}, |
388 | { 0x00008254, 0x00000000 }, | 385 | {0x00008250, 0x00000000}, |
389 | { 0x00008258, 0x00000000 }, | 386 | {0x00008254, 0x00000000}, |
390 | { 0x0000825c, 0x400000ff }, | 387 | {0x00008258, 0x00000000}, |
391 | { 0x00008260, 0x00080922 }, | 388 | {0x0000825c, 0x400000ff}, |
392 | { 0x00008270, 0x00000000 }, | 389 | {0x00008260, 0x00080922}, |
393 | { 0x00008274, 0x40000000 }, | 390 | {0x00008270, 0x00000000}, |
394 | { 0x00008278, 0x003e4180 }, | 391 | {0x00008274, 0x40000000}, |
395 | { 0x0000827c, 0x00000000 }, | 392 | {0x00008278, 0x003e4180}, |
396 | { 0x00008284, 0x0000002c }, | 393 | {0x0000827c, 0x00000000}, |
397 | { 0x00008288, 0x0000002c }, | 394 | {0x00008284, 0x0000002c}, |
398 | { 0x0000828c, 0x00000000 }, | 395 | {0x00008288, 0x0000002c}, |
399 | { 0x00008294, 0x00000000 }, | 396 | {0x0000828c, 0x00000000}, |
400 | { 0x00008298, 0x00000000 }, | 397 | {0x00008294, 0x00000000}, |
401 | { 0x00008300, 0x00000000 }, | 398 | {0x00008298, 0x00000000}, |
402 | { 0x00008304, 0x00000000 }, | 399 | {0x00008300, 0x00000000}, |
403 | { 0x00008308, 0x00000000 }, | 400 | {0x00008304, 0x00000000}, |
404 | { 0x0000830c, 0x00000000 }, | 401 | {0x00008308, 0x00000000}, |
405 | { 0x00008310, 0x00000000 }, | 402 | {0x0000830c, 0x00000000}, |
406 | { 0x00008314, 0x00000000 }, | 403 | {0x00008310, 0x00000000}, |
407 | { 0x00008318, 0x00000000 }, | 404 | {0x00008314, 0x00000000}, |
408 | { 0x00008328, 0x00000000 }, | 405 | {0x00008318, 0x00000000}, |
409 | { 0x0000832c, 0x00000007 }, | 406 | {0x00008328, 0x00000000}, |
410 | { 0x00008330, 0x00000302 }, | 407 | {0x0000832c, 0x00000007}, |
411 | { 0x00008334, 0x00000e00 }, | 408 | {0x00008330, 0x00000302}, |
412 | { 0x00008338, 0x00000000 }, | 409 | {0x00008334, 0x00000e00}, |
413 | { 0x0000833c, 0x00000000 }, | 410 | {0x00008338, 0x00000000}, |
414 | { 0x00008340, 0x000107ff }, | 411 | {0x0000833c, 0x00000000}, |
415 | { 0x00008344, 0x00000000 }, | 412 | {0x00008340, 0x000107ff}, |
416 | { 0x00009808, 0x00000000 }, | 413 | {0x00008344, 0x00000000}, |
417 | { 0x0000980c, 0xaf268e30 }, | 414 | {0x00009808, 0x00000000}, |
418 | { 0x00009810, 0xfd14e000 }, | 415 | {0x0000980c, 0xaf268e30}, |
419 | { 0x00009814, 0x9c0a9f6b }, | 416 | {0x00009810, 0xfd14e000}, |
420 | { 0x0000981c, 0x00000000 }, | 417 | {0x00009814, 0x9c0a9f6b}, |
421 | { 0x0000982c, 0x0000a000 }, | 418 | {0x0000981c, 0x00000000}, |
422 | { 0x00009830, 0x00000000 }, | 419 | {0x0000982c, 0x0000a000}, |
423 | { 0x0000983c, 0x00200400 }, | 420 | {0x00009830, 0x00000000}, |
424 | { 0x00009840, 0x206a01ae }, | 421 | {0x0000983c, 0x00200400}, |
425 | { 0x0000984c, 0x0040233c }, | 422 | {0x00009840, 0x206a01ae}, |
426 | { 0x0000a84c, 0x0040233c }, | 423 | {0x0000984c, 0x0040233c}, |
427 | { 0x00009854, 0x00000044 }, | 424 | {0x0000a84c, 0x0040233c}, |
428 | { 0x00009900, 0x00000000 }, | 425 | {0x00009854, 0x00000044}, |
429 | { 0x00009904, 0x00000000 }, | 426 | {0x00009900, 0x00000000}, |
430 | { 0x00009908, 0x00000000 }, | 427 | {0x00009904, 0x00000000}, |
431 | { 0x0000990c, 0x00000000 }, | 428 | {0x00009908, 0x00000000}, |
432 | { 0x0000991c, 0x10000fff }, | 429 | {0x0000990c, 0x00000000}, |
433 | { 0x00009920, 0x04900000 }, | 430 | {0x0000991c, 0x10000fff}, |
434 | { 0x0000a920, 0x04900000 }, | 431 | {0x00009920, 0x04900000}, |
435 | { 0x00009928, 0x00000001 }, | 432 | {0x0000a920, 0x04900000}, |
436 | { 0x0000992c, 0x00000004 }, | 433 | {0x00009928, 0x00000001}, |
437 | { 0x00009934, 0x1e1f2022 }, | 434 | {0x0000992c, 0x00000004}, |
438 | { 0x00009938, 0x0a0b0c0d }, | 435 | {0x00009934, 0x1e1f2022}, |
439 | { 0x0000993c, 0x00000000 }, | 436 | {0x00009938, 0x0a0b0c0d}, |
440 | { 0x00009948, 0x9280c00a }, | 437 | {0x0000993c, 0x00000000}, |
441 | { 0x0000994c, 0x00020028 }, | 438 | {0x00009948, 0x9280c00a}, |
442 | { 0x00009954, 0xe250a51e }, | 439 | {0x0000994c, 0x00020028}, |
443 | { 0x00009958, 0x3388ffff }, | 440 | {0x00009954, 0xe250a51e}, |
444 | { 0x00009940, 0x00781204 }, | 441 | {0x00009958, 0x3388ffff}, |
445 | { 0x0000c95c, 0x004b6a8e }, | 442 | {0x00009940, 0x00781204}, |
446 | { 0x0000c968, 0x000003ce }, | 443 | {0x0000c95c, 0x004b6a8e}, |
447 | { 0x00009970, 0x190fb514 }, | 444 | {0x0000c968, 0x000003ce}, |
448 | { 0x00009974, 0x00000000 }, | 445 | {0x00009970, 0x190fb514}, |
449 | { 0x00009978, 0x00000001 }, | 446 | {0x00009974, 0x00000000}, |
450 | { 0x0000997c, 0x00000000 }, | 447 | {0x00009978, 0x00000001}, |
451 | { 0x00009980, 0x00000000 }, | 448 | {0x0000997c, 0x00000000}, |
452 | { 0x00009984, 0x00000000 }, | 449 | {0x00009980, 0x00000000}, |
453 | { 0x00009988, 0x00000000 }, | 450 | {0x00009984, 0x00000000}, |
454 | { 0x0000998c, 0x00000000 }, | 451 | {0x00009988, 0x00000000}, |
455 | { 0x00009990, 0x00000000 }, | 452 | {0x0000998c, 0x00000000}, |
456 | { 0x00009994, 0x00000000 }, | 453 | {0x00009990, 0x00000000}, |
457 | { 0x00009998, 0x00000000 }, | 454 | {0x00009994, 0x00000000}, |
458 | { 0x0000999c, 0x00000000 }, | 455 | {0x00009998, 0x00000000}, |
459 | { 0x000099a0, 0x00000000 }, | 456 | {0x0000999c, 0x00000000}, |
460 | { 0x000099a4, 0x00000001 }, | 457 | {0x000099a0, 0x00000000}, |
461 | { 0x000099a8, 0x201fff00 }, | 458 | {0x000099a4, 0x00000001}, |
462 | { 0x000099ac, 0x006f00c4 }, | 459 | {0x000099a8, 0x201fff00}, |
463 | { 0x000099b0, 0x03051000 }, | 460 | {0x000099ac, 0x006f00c4}, |
464 | { 0x000099b4, 0x00000820 }, | 461 | {0x000099b0, 0x03051000}, |
465 | { 0x000099dc, 0x00000000 }, | 462 | {0x000099b4, 0x00000820}, |
466 | { 0x000099e0, 0x00000000 }, | 463 | {0x000099dc, 0x00000000}, |
467 | { 0x000099e4, 0xaaaaaaaa }, | 464 | {0x000099e0, 0x00000000}, |
468 | { 0x000099e8, 0x3c466478 }, | 465 | {0x000099e4, 0xaaaaaaaa}, |
469 | { 0x000099ec, 0x0cc80caa }, | 466 | {0x000099e8, 0x3c466478}, |
470 | { 0x000099fc, 0x00001042 }, | 467 | {0x000099ec, 0x0cc80caa}, |
471 | { 0x0000a210, 0x4080a333 }, | 468 | {0x000099fc, 0x00001042}, |
472 | { 0x0000a214, 0x40206c10 }, | 469 | {0x0000a210, 0x4080a333}, |
473 | { 0x0000a218, 0x009c4060 }, | 470 | {0x0000a214, 0x40206c10}, |
474 | { 0x0000a220, 0x01834061 }, | 471 | {0x0000a218, 0x009c4060}, |
475 | { 0x0000a224, 0x00000400 }, | 472 | {0x0000a220, 0x01834061}, |
476 | { 0x0000a228, 0x000003b5 }, | 473 | {0x0000a224, 0x00000400}, |
477 | { 0x0000a22c, 0x23277200 }, | 474 | {0x0000a228, 0x000003b5}, |
478 | { 0x0000a234, 0x20202020 }, | 475 | {0x0000a22c, 0x23277200}, |
479 | { 0x0000a238, 0x20202020 }, | 476 | {0x0000a234, 0x20202020}, |
480 | { 0x0000a23c, 0x13c889af }, | 477 | {0x0000a238, 0x20202020}, |
481 | { 0x0000a240, 0x38490a20 }, | 478 | {0x0000a23c, 0x13c889af}, |
482 | { 0x0000a244, 0x00007bb6 }, | 479 | {0x0000a240, 0x38490a20}, |
483 | { 0x0000a248, 0x0fff3ffc }, | 480 | {0x0000a244, 0x00007bb6}, |
484 | { 0x0000a24c, 0x00000001 }, | 481 | {0x0000a248, 0x0fff3ffc}, |
485 | { 0x0000a250, 0x001da000 }, | 482 | {0x0000a24c, 0x00000001}, |
486 | { 0x0000a254, 0x00000000 }, | 483 | {0x0000a250, 0x001da000}, |
487 | { 0x0000a258, 0x0cdbd380 }, | 484 | {0x0000a254, 0x00000000}, |
488 | { 0x0000a25c, 0x0f0f0f01 }, | 485 | {0x0000a258, 0x0cdbd380}, |
489 | { 0x0000a260, 0xdfa91f01 }, | 486 | {0x0000a25c, 0x0f0f0f01}, |
490 | { 0x0000a268, 0x00000000 }, | 487 | {0x0000a260, 0xdfa91f01}, |
491 | { 0x0000a26c, 0x0ebae9c6 }, | 488 | {0x0000a268, 0x00000000}, |
492 | { 0x0000b26c, 0x0ebae9c6 }, | 489 | {0x0000a26c, 0x0ebae9c6}, |
493 | { 0x0000d270, 0x00820820 }, | 490 | {0x0000b26c, 0x0ebae9c6}, |
494 | { 0x0000a278, 0x1ce739ce }, | 491 | {0x0000d270, 0x00820820}, |
495 | { 0x0000a27c, 0x050701ce }, | 492 | {0x0000a278, 0x1ce739ce}, |
496 | { 0x0000a358, 0x7999aa0f }, | 493 | {0x0000a27c, 0x050701ce}, |
497 | { 0x0000d35c, 0x07ffffef }, | 494 | {0x0000a358, 0x7999aa0f}, |
498 | { 0x0000d360, 0x0fffffe7 }, | 495 | {0x0000d35c, 0x07ffffef}, |
499 | { 0x0000d364, 0x17ffffe5 }, | 496 | {0x0000d360, 0x0fffffe7}, |
500 | { 0x0000d368, 0x1fffffe4 }, | 497 | {0x0000d364, 0x17ffffe5}, |
501 | { 0x0000d36c, 0x37ffffe3 }, | 498 | {0x0000d368, 0x1fffffe4}, |
502 | { 0x0000d370, 0x3fffffe3 }, | 499 | {0x0000d36c, 0x37ffffe3}, |
503 | { 0x0000d374, 0x57ffffe3 }, | 500 | {0x0000d370, 0x3fffffe3}, |
504 | { 0x0000d378, 0x5fffffe2 }, | 501 | {0x0000d374, 0x57ffffe3}, |
505 | { 0x0000d37c, 0x7fffffe2 }, | 502 | {0x0000d378, 0x5fffffe2}, |
506 | { 0x0000d380, 0x7f3c7bba }, | 503 | {0x0000d37c, 0x7fffffe2}, |
507 | { 0x0000d384, 0xf3307ff0 }, | 504 | {0x0000d380, 0x7f3c7bba}, |
508 | { 0x0000a388, 0x0c000000 }, | 505 | {0x0000d384, 0xf3307ff0}, |
509 | { 0x0000a38c, 0x20202020 }, | 506 | {0x0000a388, 0x0c000000}, |
510 | { 0x0000a390, 0x20202020 }, | 507 | {0x0000a38c, 0x20202020}, |
511 | { 0x0000a394, 0x1ce739ce }, | 508 | {0x0000a390, 0x20202020}, |
512 | { 0x0000a398, 0x000001ce }, | 509 | {0x0000a394, 0x1ce739ce}, |
513 | { 0x0000a39c, 0x00000001 }, | 510 | {0x0000a398, 0x000001ce}, |
514 | { 0x0000a3a0, 0x00000000 }, | 511 | {0x0000a39c, 0x00000001}, |
515 | { 0x0000a3a4, 0x00000000 }, | 512 | {0x0000a3a0, 0x00000000}, |
516 | { 0x0000a3a8, 0x00000000 }, | 513 | {0x0000a3a4, 0x00000000}, |
517 | { 0x0000a3ac, 0x00000000 }, | 514 | {0x0000a3a8, 0x00000000}, |
518 | { 0x0000a3b0, 0x00000000 }, | 515 | {0x0000a3ac, 0x00000000}, |
519 | { 0x0000a3b4, 0x00000000 }, | 516 | {0x0000a3b0, 0x00000000}, |
520 | { 0x0000a3b8, 0x00000000 }, | 517 | {0x0000a3b4, 0x00000000}, |
521 | { 0x0000a3bc, 0x00000000 }, | 518 | {0x0000a3b8, 0x00000000}, |
522 | { 0x0000a3c0, 0x00000000 }, | 519 | {0x0000a3bc, 0x00000000}, |
523 | { 0x0000a3c4, 0x00000000 }, | 520 | {0x0000a3c0, 0x00000000}, |
524 | { 0x0000a3c8, 0x00000246 }, | 521 | {0x0000a3c4, 0x00000000}, |
525 | { 0x0000a3cc, 0x20202020 }, | 522 | {0x0000a3c8, 0x00000246}, |
526 | { 0x0000a3d0, 0x20202020 }, | 523 | {0x0000a3cc, 0x20202020}, |
527 | { 0x0000a3d4, 0x20202020 }, | 524 | {0x0000a3d0, 0x20202020}, |
528 | { 0x0000a3dc, 0x1ce739ce }, | 525 | {0x0000a3d4, 0x20202020}, |
529 | { 0x0000a3e0, 0x000001ce }, | 526 | {0x0000a3dc, 0x1ce739ce}, |
530 | { 0x0000a3e4, 0x00000000 }, | 527 | {0x0000a3e0, 0x000001ce}, |
531 | { 0x0000a3e8, 0x18c43433 }, | 528 | {0x0000a3e4, 0x00000000}, |
532 | { 0x0000a3ec, 0x00f38081 }, | 529 | {0x0000a3e8, 0x18c43433}, |
533 | { 0x00007800, 0x00040000 }, | 530 | {0x0000a3ec, 0x00f38081}, |
534 | { 0x00007804, 0xdb005012 }, | 531 | {0x00007800, 0x00040000}, |
535 | { 0x00007808, 0x04924914 }, | 532 | {0x00007804, 0xdb005012}, |
536 | { 0x0000780c, 0x21084210 }, | 533 | {0x00007808, 0x04924914}, |
537 | { 0x00007810, 0x6d801300 }, | 534 | {0x0000780c, 0x21084210}, |
538 | { 0x00007814, 0x0019beff }, | 535 | {0x00007810, 0x6d801300}, |
539 | { 0x00007818, 0x07e40000 }, | 536 | {0x00007814, 0x0019beff}, |
540 | { 0x0000781c, 0x00492000 }, | 537 | {0x00007818, 0x07e40000}, |
541 | { 0x00007820, 0x92492480 }, | 538 | {0x0000781c, 0x00492000}, |
542 | { 0x00007824, 0x00040000 }, | 539 | {0x00007820, 0x92492480}, |
543 | { 0x00007828, 0xdb005012 }, | 540 | {0x00007824, 0x00040000}, |
544 | { 0x0000782c, 0x04924914 }, | 541 | {0x00007828, 0xdb005012}, |
545 | { 0x00007830, 0x21084210 }, | 542 | {0x0000782c, 0x04924914}, |
546 | { 0x00007834, 0x6d801300 }, | 543 | {0x00007830, 0x21084210}, |
547 | { 0x00007838, 0x0019beff }, | 544 | {0x00007834, 0x6d801300}, |
548 | { 0x0000783c, 0x07e40000 }, | 545 | {0x00007838, 0x0019beff}, |
549 | { 0x00007840, 0x00492000 }, | 546 | {0x0000783c, 0x07e40000}, |
550 | { 0x00007844, 0x92492480 }, | 547 | {0x00007840, 0x00492000}, |
551 | { 0x00007848, 0x00120000 }, | 548 | {0x00007844, 0x92492480}, |
552 | { 0x00007850, 0x54214514 }, | 549 | {0x00007848, 0x00120000}, |
553 | { 0x00007858, 0x92592692 }, | 550 | {0x00007850, 0x54214514}, |
554 | { 0x00007860, 0x52802000 }, | 551 | {0x00007858, 0x92592692}, |
555 | { 0x00007864, 0x0a8e370e }, | 552 | {0x00007860, 0x52802000}, |
556 | { 0x00007868, 0xc0102850 }, | 553 | {0x00007864, 0x0a8e370e}, |
557 | { 0x0000786c, 0x812d4000 }, | 554 | {0x00007868, 0xc0102850}, |
558 | { 0x00007874, 0x001b6db0 }, | 555 | {0x0000786c, 0x812d4000}, |
559 | { 0x00007878, 0x00376b63 }, | 556 | {0x00007874, 0x001b6db0}, |
560 | { 0x0000787c, 0x06db6db6 }, | 557 | {0x00007878, 0x00376b63}, |
561 | { 0x00007880, 0x006d8000 }, | 558 | {0x0000787c, 0x06db6db6}, |
562 | { 0x00007884, 0xffeffffe }, | 559 | {0x00007880, 0x006d8000}, |
563 | { 0x00007888, 0xffeffffe }, | 560 | {0x00007884, 0xffeffffe}, |
564 | { 0x00007890, 0x00060aeb }, | 561 | {0x00007888, 0xffeffffe}, |
565 | { 0x00007894, 0x5a108000 }, | 562 | {0x00007890, 0x00060aeb}, |
566 | { 0x00007898, 0x2a850160 }, | 563 | {0x00007894, 0x5a108000}, |
564 | {0x00007898, 0x2a850160}, | ||
567 | }; | 565 | }; |
568 | 566 | ||
569 | /* XXX 9280 2 */ | ||
570 | static const u32 ar9280Modes_9280_2[][6] = { | 567 | static const u32 ar9280Modes_9280_2[][6] = { |
571 | { 0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0 }, | 568 | {0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0}, |
572 | { 0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0 }, | 569 | {0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0}, |
573 | { 0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180 }, | 570 | {0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180}, |
574 | { 0x000010f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008 }, | 571 | {0x000010f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008}, |
575 | { 0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00, 0x06e006e0 }, | 572 | {0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00, 0x06e006e0}, |
576 | { 0x0000801c, 0x128d8027, 0x128d804f, 0x12e00057, 0x12e0002b, 0x0988004f }, | 573 | {0x0000801c, 0x128d8027, 0x128d804f, 0x12e00057, 0x12e0002b, 0x0988004f}, |
577 | { 0x00008120, 0x08f04800, 0x08f04800, 0x08f04810, 0x08f04810, 0x08f04810 }, | 574 | {0x00008120, 0x08f04800, 0x08f04800, 0x08f04810, 0x08f04810, 0x08f04810}, |
578 | { 0x000081d0, 0x00003210, 0x00003210, 0x0000320a, 0x0000320a, 0x0000320a }, | 575 | {0x000081d0, 0x00003210, 0x00003210, 0x0000320a, 0x0000320a, 0x0000320a}, |
579 | { 0x00008318, 0x00003e80, 0x00007d00, 0x00006880, 0x00003440, 0x00006880 }, | 576 | {0x00008318, 0x00003e80, 0x00007d00, 0x00006880, 0x00003440, 0x00006880}, |
580 | { 0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303 }, | 577 | {0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303}, |
581 | { 0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200 }, | 578 | {0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200}, |
582 | { 0x00009824, 0x01000e0e, 0x01000e0e, 0x01000e0e, 0x01000e0e, 0x01000e0e }, | 579 | {0x00009824, 0x01000e0e, 0x01000e0e, 0x01000e0e, 0x01000e0e, 0x01000e0e}, |
583 | { 0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001 }, | 580 | {0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001}, |
584 | { 0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }, | 581 | {0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, |
585 | { 0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007 }, | 582 | {0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007}, |
586 | { 0x00009840, 0x206a022e, 0x206a022e, 0x206a012e, 0x206a012e, 0x206a012e }, | 583 | {0x00009840, 0x206a022e, 0x206a022e, 0x206a012e, 0x206a012e, 0x206a012e}, |
587 | { 0x00009844, 0x0372161e, 0x0372161e, 0x037216a0, 0x037216a0, 0x037216a0 }, | 584 | {0x00009844, 0x0372161e, 0x0372161e, 0x037216a0, 0x037216a0, 0x037216a0}, |
588 | { 0x00009850, 0x6c4000e2, 0x6d4000e2, 0x6d4000e2, 0x6c4000e2, 0x6c4000e2 }, | 585 | {0x00009850, 0x6c4000e2, 0x6d4000e2, 0x6d4000e2, 0x6c4000e2, 0x6c4000e2}, |
589 | { 0x00009858, 0x7ec88d2e, 0x7ec88d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e }, | 586 | {0x00009858, 0x7ec88d2e, 0x7ec88d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e}, |
590 | { 0x0000985c, 0x31395d5e, 0x3139605e, 0x3139605e, 0x31395d5e, 0x31395d5e }, | 587 | {0x0000985c, 0x31395d5e, 0x3139605e, 0x3139605e, 0x31395d5e, 0x31395d5e}, |
591 | { 0x00009860, 0x00048d18, 0x00048d18, 0x00048d20, 0x00048d20, 0x00048d18 }, | 588 | {0x00009860, 0x00048d18, 0x00048d18, 0x00048d20, 0x00048d20, 0x00048d18}, |
592 | { 0x00009864, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00 }, | 589 | {0x00009864, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00}, |
593 | { 0x00009868, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0 }, | 590 | {0x00009868, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0}, |
594 | { 0x0000986c, 0x06903081, 0x06903081, 0x06903881, 0x06903881, 0x06903881 }, | 591 | {0x0000986c, 0x06903081, 0x06903081, 0x06903881, 0x06903881, 0x06903881}, |
595 | { 0x00009914, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898, 0x000007d0 }, | 592 | {0x00009914, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898, 0x000007d0}, |
596 | { 0x00009918, 0x0000000a, 0x00000014, 0x00000268, 0x0000000b, 0x00000016 }, | 593 | {0x00009918, 0x0000000a, 0x00000014, 0x00000268, 0x0000000b, 0x00000016}, |
597 | { 0x00009924, 0xd00a8a0b, 0xd00a8a0b, 0xd00a8a0d, 0xd00a8a0d, 0xd00a8a0d }, | 594 | {0x00009924, 0xd00a8a0b, 0xd00a8a0b, 0xd00a8a0d, 0xd00a8a0d, 0xd00a8a0d}, |
598 | { 0x00009944, 0xffbc1010, 0xffbc1010, 0xffbc1010, 0xffbc1010, 0xffbc1010 }, | 595 | {0x00009944, 0xffbc1010, 0xffbc1010, 0xffbc1010, 0xffbc1010, 0xffbc1010}, |
599 | { 0x00009960, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010 }, | 596 | {0x00009960, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010}, |
600 | { 0x0000a960, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010 }, | 597 | {0x0000a960, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010}, |
601 | { 0x00009964, 0x00000210, 0x00000210, 0x00000210, 0x00000210, 0x00000210 }, | 598 | {0x00009964, 0x00000210, 0x00000210, 0x00000210, 0x00000210, 0x00000210}, |
602 | { 0x0000c968, 0x000003b5, 0x000003b5, 0x000003ce, 0x000003ce, 0x000003ce }, | 599 | {0x0000c968, 0x000003b5, 0x000003b5, 0x000003ce, 0x000003ce, 0x000003ce}, |
603 | { 0x000099b8, 0x0000001c, 0x0000001c, 0x0000001c, 0x0000001c, 0x0000001c }, | 600 | {0x000099b8, 0x0000001c, 0x0000001c, 0x0000001c, 0x0000001c, 0x0000001c}, |
604 | { 0x000099bc, 0x00000a00, 0x00000a00, 0x00000c00, 0x00000c00, 0x00000c00 }, | 601 | {0x000099bc, 0x00000a00, 0x00000a00, 0x00000c00, 0x00000c00, 0x00000c00}, |
605 | { 0x000099c0, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4 }, | 602 | {0x000099c0, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4}, |
606 | { 0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77 }, | 603 | {0x0000a204, 0x00000444, 0x00000444, 0x00000444, 0x00000444, 0x00000444}, |
607 | { 0x000099c8, 0x60f65329, 0x60f65329, 0x60f65329, 0x60f65329, 0x60f65329 }, | 604 | {0x0000a20c, 0x00000014, 0x00000014, 0x0001f019, 0x0001f019, 0x0001f019}, |
608 | { 0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8 }, | 605 | {0x0000b20c, 0x00000014, 0x00000014, 0x0001f019, 0x0001f019, 0x0001f019}, |
609 | { 0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384 }, | 606 | {0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a}, |
610 | { 0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 607 | {0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000}, |
611 | { 0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 608 | {0x0000a23c, 0x13c88000, 0x13c88000, 0x13c88001, 0x13c88000, 0x13c88000}, |
612 | { 0x0000a204, 0x00000444, 0x00000444, 0x00000444, 0x00000444, 0x00000444 }, | 609 | {0x0000a250, 0x001ff000, 0x001ff000, 0x0004a000, 0x0004a000, 0x0004a000}, |
613 | { 0x0000a20c, 0x00000014, 0x00000014, 0x0001f019, 0x0001f019, 0x0001f019 }, | 610 | {0x0000a358, 0x7999aa02, 0x7999aa02, 0x7999aa0e, 0x7999aa0e, 0x7999aa0e}, |
614 | { 0x0000b20c, 0x00000014, 0x00000014, 0x0001f019, 0x0001f019, 0x0001f019 }, | 611 | {0x0000a388, 0x0c000000, 0x0c000000, 0x08000000, 0x0c000000, 0x0c000000}, |
615 | { 0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a }, | 612 | {0x0000a3d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
616 | { 0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000 }, | 613 | {0x00007894, 0x5a508000, 0x5a508000, 0x5a508000, 0x5a508000, 0x5a508000}, |
617 | { 0x0000a23c, 0x13c88000, 0x13c88000, 0x13c88001, 0x13c88000, 0x13c88000 }, | ||
618 | { 0x0000a250, 0x001ff000, 0x001ff000, 0x0004a000, 0x0004a000, 0x0004a000 }, | ||
619 | { 0x0000a358, 0x7999aa02, 0x7999aa02, 0x7999aa0e, 0x7999aa0e, 0x7999aa0e }, | ||
620 | { 0x0000a388, 0x0c000000, 0x0c000000, 0x08000000, 0x0c000000, 0x0c000000 }, | ||
621 | { 0x0000a3d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | ||
622 | { 0x00007894, 0x5a508000, 0x5a508000, 0x5a508000, 0x5a508000, 0x5a508000 }, | ||
623 | }; | 614 | }; |
624 | 615 | ||
625 | static const u32 ar9280Common_9280_2[][2] = { | 616 | static const u32 ar9280Common_9280_2[][2] = { |
626 | { 0x0000000c, 0x00000000 }, | 617 | /* Addr allmodes */ |
627 | { 0x00000030, 0x00020015 }, | 618 | {0x0000000c, 0x00000000}, |
628 | { 0x00000034, 0x00000005 }, | 619 | {0x00000030, 0x00020015}, |
629 | { 0x00000040, 0x00000000 }, | 620 | {0x00000034, 0x00000005}, |
630 | { 0x00000044, 0x00000008 }, | 621 | {0x00000040, 0x00000000}, |
631 | { 0x00000048, 0x00000008 }, | 622 | {0x00000044, 0x00000008}, |
632 | { 0x0000004c, 0x00000010 }, | 623 | {0x00000048, 0x00000008}, |
633 | { 0x00000050, 0x00000000 }, | 624 | {0x0000004c, 0x00000010}, |
634 | { 0x00000054, 0x0000001f }, | 625 | {0x00000050, 0x00000000}, |
635 | { 0x00000800, 0x00000000 }, | 626 | {0x00000054, 0x0000001f}, |
636 | { 0x00000804, 0x00000000 }, | 627 | {0x00000800, 0x00000000}, |
637 | { 0x00000808, 0x00000000 }, | 628 | {0x00000804, 0x00000000}, |
638 | { 0x0000080c, 0x00000000 }, | 629 | {0x00000808, 0x00000000}, |
639 | { 0x00000810, 0x00000000 }, | 630 | {0x0000080c, 0x00000000}, |
640 | { 0x00000814, 0x00000000 }, | 631 | {0x00000810, 0x00000000}, |
641 | { 0x00000818, 0x00000000 }, | 632 | {0x00000814, 0x00000000}, |
642 | { 0x0000081c, 0x00000000 }, | 633 | {0x00000818, 0x00000000}, |
643 | { 0x00000820, 0x00000000 }, | 634 | {0x0000081c, 0x00000000}, |
644 | { 0x00000824, 0x00000000 }, | 635 | {0x00000820, 0x00000000}, |
645 | { 0x00001040, 0x002ffc0f }, | 636 | {0x00000824, 0x00000000}, |
646 | { 0x00001044, 0x002ffc0f }, | 637 | {0x00001040, 0x002ffc0f}, |
647 | { 0x00001048, 0x002ffc0f }, | 638 | {0x00001044, 0x002ffc0f}, |
648 | { 0x0000104c, 0x002ffc0f }, | 639 | {0x00001048, 0x002ffc0f}, |
649 | { 0x00001050, 0x002ffc0f }, | 640 | {0x0000104c, 0x002ffc0f}, |
650 | { 0x00001054, 0x002ffc0f }, | 641 | {0x00001050, 0x002ffc0f}, |
651 | { 0x00001058, 0x002ffc0f }, | 642 | {0x00001054, 0x002ffc0f}, |
652 | { 0x0000105c, 0x002ffc0f }, | 643 | {0x00001058, 0x002ffc0f}, |
653 | { 0x00001060, 0x002ffc0f }, | 644 | {0x0000105c, 0x002ffc0f}, |
654 | { 0x00001064, 0x002ffc0f }, | 645 | {0x00001060, 0x002ffc0f}, |
655 | { 0x00001230, 0x00000000 }, | 646 | {0x00001064, 0x002ffc0f}, |
656 | { 0x00001270, 0x00000000 }, | 647 | {0x00001230, 0x00000000}, |
657 | { 0x00001038, 0x00000000 }, | 648 | {0x00001270, 0x00000000}, |
658 | { 0x00001078, 0x00000000 }, | 649 | {0x00001038, 0x00000000}, |
659 | { 0x000010b8, 0x00000000 }, | 650 | {0x00001078, 0x00000000}, |
660 | { 0x000010f8, 0x00000000 }, | 651 | {0x000010b8, 0x00000000}, |
661 | { 0x00001138, 0x00000000 }, | 652 | {0x000010f8, 0x00000000}, |
662 | { 0x00001178, 0x00000000 }, | 653 | {0x00001138, 0x00000000}, |
663 | { 0x000011b8, 0x00000000 }, | 654 | {0x00001178, 0x00000000}, |
664 | { 0x000011f8, 0x00000000 }, | 655 | {0x000011b8, 0x00000000}, |
665 | { 0x00001238, 0x00000000 }, | 656 | {0x000011f8, 0x00000000}, |
666 | { 0x00001278, 0x00000000 }, | 657 | {0x00001238, 0x00000000}, |
667 | { 0x000012b8, 0x00000000 }, | 658 | {0x00001278, 0x00000000}, |
668 | { 0x000012f8, 0x00000000 }, | 659 | {0x000012b8, 0x00000000}, |
669 | { 0x00001338, 0x00000000 }, | 660 | {0x000012f8, 0x00000000}, |
670 | { 0x00001378, 0x00000000 }, | 661 | {0x00001338, 0x00000000}, |
671 | { 0x000013b8, 0x00000000 }, | 662 | {0x00001378, 0x00000000}, |
672 | { 0x000013f8, 0x00000000 }, | 663 | {0x000013b8, 0x00000000}, |
673 | { 0x00001438, 0x00000000 }, | 664 | {0x000013f8, 0x00000000}, |
674 | { 0x00001478, 0x00000000 }, | 665 | {0x00001438, 0x00000000}, |
675 | { 0x000014b8, 0x00000000 }, | 666 | {0x00001478, 0x00000000}, |
676 | { 0x000014f8, 0x00000000 }, | 667 | {0x000014b8, 0x00000000}, |
677 | { 0x00001538, 0x00000000 }, | 668 | {0x000014f8, 0x00000000}, |
678 | { 0x00001578, 0x00000000 }, | 669 | {0x00001538, 0x00000000}, |
679 | { 0x000015b8, 0x00000000 }, | 670 | {0x00001578, 0x00000000}, |
680 | { 0x000015f8, 0x00000000 }, | 671 | {0x000015b8, 0x00000000}, |
681 | { 0x00001638, 0x00000000 }, | 672 | {0x000015f8, 0x00000000}, |
682 | { 0x00001678, 0x00000000 }, | 673 | {0x00001638, 0x00000000}, |
683 | { 0x000016b8, 0x00000000 }, | 674 | {0x00001678, 0x00000000}, |
684 | { 0x000016f8, 0x00000000 }, | 675 | {0x000016b8, 0x00000000}, |
685 | { 0x00001738, 0x00000000 }, | 676 | {0x000016f8, 0x00000000}, |
686 | { 0x00001778, 0x00000000 }, | 677 | {0x00001738, 0x00000000}, |
687 | { 0x000017b8, 0x00000000 }, | 678 | {0x00001778, 0x00000000}, |
688 | { 0x000017f8, 0x00000000 }, | 679 | {0x000017b8, 0x00000000}, |
689 | { 0x0000103c, 0x00000000 }, | 680 | {0x000017f8, 0x00000000}, |
690 | { 0x0000107c, 0x00000000 }, | 681 | {0x0000103c, 0x00000000}, |
691 | { 0x000010bc, 0x00000000 }, | 682 | {0x0000107c, 0x00000000}, |
692 | { 0x000010fc, 0x00000000 }, | 683 | {0x000010bc, 0x00000000}, |
693 | { 0x0000113c, 0x00000000 }, | 684 | {0x000010fc, 0x00000000}, |
694 | { 0x0000117c, 0x00000000 }, | 685 | {0x0000113c, 0x00000000}, |
695 | { 0x000011bc, 0x00000000 }, | 686 | {0x0000117c, 0x00000000}, |
696 | { 0x000011fc, 0x00000000 }, | 687 | {0x000011bc, 0x00000000}, |
697 | { 0x0000123c, 0x00000000 }, | 688 | {0x000011fc, 0x00000000}, |
698 | { 0x0000127c, 0x00000000 }, | 689 | {0x0000123c, 0x00000000}, |
699 | { 0x000012bc, 0x00000000 }, | 690 | {0x0000127c, 0x00000000}, |
700 | { 0x000012fc, 0x00000000 }, | 691 | {0x000012bc, 0x00000000}, |
701 | { 0x0000133c, 0x00000000 }, | 692 | {0x000012fc, 0x00000000}, |
702 | { 0x0000137c, 0x00000000 }, | 693 | {0x0000133c, 0x00000000}, |
703 | { 0x000013bc, 0x00000000 }, | 694 | {0x0000137c, 0x00000000}, |
704 | { 0x000013fc, 0x00000000 }, | 695 | {0x000013bc, 0x00000000}, |
705 | { 0x0000143c, 0x00000000 }, | 696 | {0x000013fc, 0x00000000}, |
706 | { 0x0000147c, 0x00000000 }, | 697 | {0x0000143c, 0x00000000}, |
707 | { 0x00004030, 0x00000002 }, | 698 | {0x0000147c, 0x00000000}, |
708 | { 0x0000403c, 0x00000002 }, | 699 | {0x00004030, 0x00000002}, |
709 | { 0x00004024, 0x0000001f }, | 700 | {0x0000403c, 0x00000002}, |
710 | { 0x00004060, 0x00000000 }, | 701 | {0x00004024, 0x0000001f}, |
711 | { 0x00004064, 0x00000000 }, | 702 | {0x00004060, 0x00000000}, |
712 | { 0x00007010, 0x00000033 }, | 703 | {0x00004064, 0x00000000}, |
713 | { 0x00007034, 0x00000002 }, | 704 | {0x00007010, 0x00000033}, |
714 | { 0x00007038, 0x000004c2 }, | 705 | {0x00007034, 0x00000002}, |
715 | { 0x00008004, 0x00000000 }, | 706 | {0x00007038, 0x000004c2}, |
716 | { 0x00008008, 0x00000000 }, | 707 | {0x00008004, 0x00000000}, |
717 | { 0x0000800c, 0x00000000 }, | 708 | {0x00008008, 0x00000000}, |
718 | { 0x00008018, 0x00000700 }, | 709 | {0x0000800c, 0x00000000}, |
719 | { 0x00008020, 0x00000000 }, | 710 | {0x00008018, 0x00000700}, |
720 | { 0x00008038, 0x00000000 }, | 711 | {0x00008020, 0x00000000}, |
721 | { 0x0000803c, 0x00000000 }, | 712 | {0x00008038, 0x00000000}, |
722 | { 0x00008048, 0x40000000 }, | 713 | {0x0000803c, 0x00000000}, |
723 | { 0x00008054, 0x00000000 }, | 714 | {0x00008048, 0x40000000}, |
724 | { 0x00008058, 0x00000000 }, | 715 | {0x00008054, 0x00000000}, |
725 | { 0x0000805c, 0x000fc78f }, | 716 | {0x00008058, 0x00000000}, |
726 | { 0x00008060, 0x0000000f }, | 717 | {0x0000805c, 0x000fc78f}, |
727 | { 0x00008064, 0x00000000 }, | 718 | {0x00008060, 0x0000000f}, |
728 | { 0x00008070, 0x00000000 }, | 719 | {0x00008064, 0x00000000}, |
729 | { 0x000080c0, 0x2a80001a }, | 720 | {0x00008070, 0x00000000}, |
730 | { 0x000080c4, 0x05dc01e0 }, | 721 | {0x000080c0, 0x2a80001a}, |
731 | { 0x000080c8, 0x1f402710 }, | 722 | {0x000080c4, 0x05dc01e0}, |
732 | { 0x000080cc, 0x01f40000 }, | 723 | {0x000080c8, 0x1f402710}, |
733 | { 0x000080d0, 0x00001e00 }, | 724 | {0x000080cc, 0x01f40000}, |
734 | { 0x000080d4, 0x00000000 }, | 725 | {0x000080d0, 0x00001e00}, |
735 | { 0x000080d8, 0x00400000 }, | 726 | {0x000080d4, 0x00000000}, |
736 | { 0x000080e0, 0xffffffff }, | 727 | {0x000080d8, 0x00400000}, |
737 | { 0x000080e4, 0x0000ffff }, | 728 | {0x000080e0, 0xffffffff}, |
738 | { 0x000080e8, 0x003f3f3f }, | 729 | {0x000080e4, 0x0000ffff}, |
739 | { 0x000080ec, 0x00000000 }, | 730 | {0x000080e8, 0x003f3f3f}, |
740 | { 0x000080f0, 0x00000000 }, | 731 | {0x000080ec, 0x00000000}, |
741 | { 0x000080f4, 0x00000000 }, | 732 | {0x000080f0, 0x00000000}, |
742 | { 0x000080f8, 0x00000000 }, | 733 | {0x000080f4, 0x00000000}, |
743 | { 0x000080fc, 0x00020000 }, | 734 | {0x000080f8, 0x00000000}, |
744 | { 0x00008100, 0x00020000 }, | 735 | {0x000080fc, 0x00020000}, |
745 | { 0x00008104, 0x00000001 }, | 736 | {0x00008100, 0x00020000}, |
746 | { 0x00008108, 0x00000052 }, | 737 | {0x00008104, 0x00000001}, |
747 | { 0x0000810c, 0x00000000 }, | 738 | {0x00008108, 0x00000052}, |
748 | { 0x00008110, 0x00000168 }, | 739 | {0x0000810c, 0x00000000}, |
749 | { 0x00008118, 0x000100aa }, | 740 | {0x00008110, 0x00000168}, |
750 | { 0x0000811c, 0x00003210 }, | 741 | {0x00008118, 0x000100aa}, |
751 | { 0x00008124, 0x00000000 }, | 742 | {0x0000811c, 0x00003210}, |
752 | { 0x00008128, 0x00000000 }, | 743 | {0x00008124, 0x00000000}, |
753 | { 0x0000812c, 0x00000000 }, | 744 | {0x00008128, 0x00000000}, |
754 | { 0x00008130, 0x00000000 }, | 745 | {0x0000812c, 0x00000000}, |
755 | { 0x00008134, 0x00000000 }, | 746 | {0x00008130, 0x00000000}, |
756 | { 0x00008138, 0x00000000 }, | 747 | {0x00008134, 0x00000000}, |
757 | { 0x0000813c, 0x00000000 }, | 748 | {0x00008138, 0x00000000}, |
758 | { 0x00008144, 0xffffffff }, | 749 | {0x0000813c, 0x00000000}, |
759 | { 0x00008168, 0x00000000 }, | 750 | {0x00008144, 0xffffffff}, |
760 | { 0x0000816c, 0x00000000 }, | 751 | {0x00008168, 0x00000000}, |
761 | { 0x00008170, 0x32143320 }, | 752 | {0x0000816c, 0x00000000}, |
762 | { 0x00008174, 0xfaa4fa50 }, | 753 | {0x00008170, 0x32143320}, |
763 | { 0x00008178, 0x00000100 }, | 754 | {0x00008174, 0xfaa4fa50}, |
764 | { 0x0000817c, 0x00000000 }, | 755 | {0x00008178, 0x00000100}, |
765 | { 0x000081c0, 0x00000000 }, | 756 | {0x0000817c, 0x00000000}, |
766 | { 0x000081ec, 0x00000000 }, | 757 | {0x000081c0, 0x00000000}, |
767 | { 0x000081f0, 0x00000000 }, | 758 | {0x000081ec, 0x00000000}, |
768 | { 0x000081f4, 0x00000000 }, | 759 | {0x000081f0, 0x00000000}, |
769 | { 0x000081f8, 0x00000000 }, | 760 | {0x000081f4, 0x00000000}, |
770 | { 0x000081fc, 0x00000000 }, | 761 | {0x000081f8, 0x00000000}, |
771 | { 0x00008200, 0x00000000 }, | 762 | {0x000081fc, 0x00000000}, |
772 | { 0x00008204, 0x00000000 }, | 763 | {0x00008200, 0x00000000}, |
773 | { 0x00008208, 0x00000000 }, | 764 | {0x00008204, 0x00000000}, |
774 | { 0x0000820c, 0x00000000 }, | 765 | {0x00008208, 0x00000000}, |
775 | { 0x00008210, 0x00000000 }, | 766 | {0x0000820c, 0x00000000}, |
776 | { 0x00008214, 0x00000000 }, | 767 | {0x00008210, 0x00000000}, |
777 | { 0x00008218, 0x00000000 }, | 768 | {0x00008214, 0x00000000}, |
778 | { 0x0000821c, 0x00000000 }, | 769 | {0x00008218, 0x00000000}, |
779 | { 0x00008220, 0x00000000 }, | 770 | {0x0000821c, 0x00000000}, |
780 | { 0x00008224, 0x00000000 }, | 771 | {0x00008220, 0x00000000}, |
781 | { 0x00008228, 0x00000000 }, | 772 | {0x00008224, 0x00000000}, |
782 | { 0x0000822c, 0x00000000 }, | 773 | {0x00008228, 0x00000000}, |
783 | { 0x00008230, 0x00000000 }, | 774 | {0x0000822c, 0x00000000}, |
784 | { 0x00008234, 0x00000000 }, | 775 | {0x00008230, 0x00000000}, |
785 | { 0x00008238, 0x00000000 }, | 776 | {0x00008234, 0x00000000}, |
786 | { 0x0000823c, 0x00000000 }, | 777 | {0x00008238, 0x00000000}, |
787 | { 0x00008240, 0x00100000 }, | 778 | {0x0000823c, 0x00000000}, |
788 | { 0x00008244, 0x0010f400 }, | 779 | {0x00008240, 0x00100000}, |
789 | { 0x00008248, 0x00000100 }, | 780 | {0x00008244, 0x0010f400}, |
790 | { 0x0000824c, 0x0001e800 }, | 781 | {0x00008248, 0x00000100}, |
791 | { 0x00008250, 0x00000000 }, | 782 | {0x0000824c, 0x0001e800}, |
792 | { 0x00008254, 0x00000000 }, | 783 | {0x00008250, 0x00000000}, |
793 | { 0x00008258, 0x00000000 }, | 784 | {0x00008254, 0x00000000}, |
794 | { 0x0000825c, 0x400000ff }, | 785 | {0x00008258, 0x00000000}, |
795 | { 0x00008260, 0x00080922 }, | 786 | {0x0000825c, 0x400000ff}, |
796 | { 0x00008264, 0x88a00010 }, | 787 | {0x00008260, 0x00080922}, |
797 | { 0x00008270, 0x00000000 }, | 788 | {0x00008264, 0x88a00010}, |
798 | { 0x00008274, 0x40000000 }, | 789 | {0x00008270, 0x00000000}, |
799 | { 0x00008278, 0x003e4180 }, | 790 | {0x00008274, 0x40000000}, |
800 | { 0x0000827c, 0x00000000 }, | 791 | {0x00008278, 0x003e4180}, |
801 | { 0x00008284, 0x0000002c }, | 792 | {0x0000827c, 0x00000000}, |
802 | { 0x00008288, 0x0000002c }, | 793 | {0x00008284, 0x0000002c}, |
803 | { 0x0000828c, 0x00000000 }, | 794 | {0x00008288, 0x0000002c}, |
804 | { 0x00008294, 0x00000000 }, | 795 | {0x0000828c, 0x00000000}, |
805 | { 0x00008298, 0x00000000 }, | 796 | {0x00008294, 0x00000000}, |
806 | { 0x0000829c, 0x00000000 }, | 797 | {0x00008298, 0x00000000}, |
807 | { 0x00008300, 0x00000040 }, | 798 | {0x0000829c, 0x00000000}, |
808 | { 0x00008314, 0x00000000 }, | 799 | {0x00008300, 0x00000040}, |
809 | { 0x00008328, 0x00000000 }, | 800 | {0x00008314, 0x00000000}, |
810 | { 0x0000832c, 0x00000007 }, | 801 | {0x00008328, 0x00000000}, |
811 | { 0x00008330, 0x00000302 }, | 802 | {0x0000832c, 0x00000007}, |
812 | { 0x00008334, 0x00000e00 }, | 803 | {0x00008330, 0x00000302}, |
813 | { 0x00008338, 0x00ff0000 }, | 804 | {0x00008334, 0x00000e00}, |
814 | { 0x0000833c, 0x00000000 }, | 805 | {0x00008338, 0x00ff0000}, |
815 | { 0x00008340, 0x000107ff }, | 806 | {0x0000833c, 0x00000000}, |
816 | { 0x00008344, 0x00481043 }, | 807 | {0x00008340, 0x000107ff}, |
817 | { 0x00009808, 0x00000000 }, | 808 | {0x00008344, 0x00481043}, |
818 | { 0x0000980c, 0xafa68e30 }, | 809 | {0x00009808, 0x00000000}, |
819 | { 0x00009810, 0xfd14e000 }, | 810 | {0x0000980c, 0xafa68e30}, |
820 | { 0x00009814, 0x9c0a9f6b }, | 811 | {0x00009810, 0xfd14e000}, |
821 | { 0x0000981c, 0x00000000 }, | 812 | {0x00009814, 0x9c0a9f6b}, |
822 | { 0x0000982c, 0x0000a000 }, | 813 | {0x0000981c, 0x00000000}, |
823 | { 0x00009830, 0x00000000 }, | 814 | {0x0000982c, 0x0000a000}, |
824 | { 0x0000983c, 0x00200400 }, | 815 | {0x00009830, 0x00000000}, |
825 | { 0x0000984c, 0x0040233c }, | 816 | {0x0000983c, 0x00200400}, |
826 | { 0x0000a84c, 0x0040233c }, | 817 | {0x0000984c, 0x0040233c}, |
827 | { 0x00009854, 0x00000044 }, | 818 | {0x0000a84c, 0x0040233c}, |
828 | { 0x00009900, 0x00000000 }, | 819 | {0x00009854, 0x00000044}, |
829 | { 0x00009904, 0x00000000 }, | 820 | {0x00009900, 0x00000000}, |
830 | { 0x00009908, 0x00000000 }, | 821 | {0x00009904, 0x00000000}, |
831 | { 0x0000990c, 0x00000000 }, | 822 | {0x00009908, 0x00000000}, |
832 | { 0x00009910, 0x01002310 }, | 823 | {0x0000990c, 0x00000000}, |
833 | { 0x0000991c, 0x10000fff }, | 824 | {0x00009910, 0x01002310}, |
834 | { 0x00009920, 0x04900000 }, | 825 | {0x0000991c, 0x10000fff}, |
835 | { 0x0000a920, 0x04900000 }, | 826 | {0x00009920, 0x04900000}, |
836 | { 0x00009928, 0x00000001 }, | 827 | {0x0000a920, 0x04900000}, |
837 | { 0x0000992c, 0x00000004 }, | 828 | {0x00009928, 0x00000001}, |
838 | { 0x00009934, 0x1e1f2022 }, | 829 | {0x0000992c, 0x00000004}, |
839 | { 0x00009938, 0x0a0b0c0d }, | 830 | {0x00009934, 0x1e1f2022}, |
840 | { 0x0000993c, 0x00000000 }, | 831 | {0x00009938, 0x0a0b0c0d}, |
841 | { 0x00009948, 0x9280c00a }, | 832 | {0x0000993c, 0x00000000}, |
842 | { 0x0000994c, 0x00020028 }, | 833 | {0x00009948, 0x9280c00a}, |
843 | { 0x00009954, 0x5f3ca3de }, | 834 | {0x0000994c, 0x00020028}, |
844 | { 0x00009958, 0x2108ecff }, | 835 | {0x00009954, 0x5f3ca3de}, |
845 | { 0x00009940, 0x14750604 }, | 836 | {0x00009958, 0x2108ecff}, |
846 | { 0x0000c95c, 0x004b6a8e }, | 837 | {0x00009940, 0x14750604}, |
847 | { 0x00009970, 0x190fb515 }, | 838 | {0x0000c95c, 0x004b6a8e}, |
848 | { 0x00009974, 0x00000000 }, | 839 | {0x00009970, 0x190fb514}, |
849 | { 0x00009978, 0x00000001 }, | 840 | {0x00009974, 0x00000000}, |
850 | { 0x0000997c, 0x00000000 }, | 841 | {0x00009978, 0x00000001}, |
851 | { 0x00009980, 0x00000000 }, | 842 | {0x0000997c, 0x00000000}, |
852 | { 0x00009984, 0x00000000 }, | 843 | {0x00009980, 0x00000000}, |
853 | { 0x00009988, 0x00000000 }, | 844 | {0x00009984, 0x00000000}, |
854 | { 0x0000998c, 0x00000000 }, | 845 | {0x00009988, 0x00000000}, |
855 | { 0x00009990, 0x00000000 }, | 846 | {0x0000998c, 0x00000000}, |
856 | { 0x00009994, 0x00000000 }, | 847 | {0x00009990, 0x00000000}, |
857 | { 0x00009998, 0x00000000 }, | 848 | {0x00009994, 0x00000000}, |
858 | { 0x0000999c, 0x00000000 }, | 849 | {0x00009998, 0x00000000}, |
859 | { 0x000099a0, 0x00000000 }, | 850 | {0x0000999c, 0x00000000}, |
860 | { 0x000099a4, 0x00000001 }, | 851 | {0x000099a0, 0x00000000}, |
861 | { 0x000099a8, 0x201fff00 }, | 852 | {0x000099a4, 0x00000001}, |
862 | { 0x000099ac, 0x006f0000 }, | 853 | {0x000099a8, 0x201fff00}, |
863 | { 0x000099b0, 0x03051000 }, | 854 | {0x000099ac, 0x006f0000}, |
864 | { 0x000099b4, 0x00000820 }, | 855 | {0x000099b0, 0x03051000}, |
865 | { 0x000099dc, 0x00000000 }, | 856 | {0x000099b4, 0x00000820}, |
866 | { 0x000099e0, 0x00000000 }, | 857 | {0x000099c4, 0x06336f77}, |
867 | { 0x000099e4, 0xaaaaaaaa }, | 858 | {0x000099c8, 0x6af6532f}, |
868 | { 0x000099e8, 0x3c466478 }, | 859 | {0x000099cc, 0x08f186c8}, |
869 | { 0x000099ec, 0x0cc80caa }, | 860 | {0x000099d0, 0x00046384}, |
870 | { 0x000099f0, 0x00000000 }, | 861 | {0x000099d4, 0x00000000}, |
871 | { 0x000099fc, 0x00001042 }, | 862 | {0x000099d8, 0x00000000}, |
872 | { 0x0000a208, 0x803e4788 }, | 863 | {0x000099dc, 0x00000000}, |
873 | { 0x0000a210, 0x4080a333 }, | 864 | {0x000099e0, 0x00000000}, |
874 | { 0x0000a214, 0x40206c10 }, | 865 | {0x000099e4, 0xaaaaaaaa}, |
875 | { 0x0000a218, 0x009c4060 }, | 866 | {0x000099e8, 0x3c466478}, |
876 | { 0x0000a220, 0x01834061 }, | 867 | {0x000099ec, 0x0cc80caa}, |
877 | { 0x0000a224, 0x00000400 }, | 868 | {0x000099f0, 0x00000000}, |
878 | { 0x0000a228, 0x000003b5 }, | 869 | {0x000099fc, 0x00001042}, |
879 | { 0x0000a22c, 0x233f7180 }, | 870 | {0x0000a208, 0x803e4788}, |
880 | { 0x0000a234, 0x20202020 }, | 871 | {0x0000a210, 0x4080a333}, |
881 | { 0x0000a238, 0x20202020 }, | 872 | {0x0000a214, 0x40206c10}, |
882 | { 0x0000a240, 0x38490a20 }, | 873 | {0x0000a218, 0x009c4060}, |
883 | { 0x0000a244, 0x00007bb6 }, | 874 | {0x0000a220, 0x01834061}, |
884 | { 0x0000a248, 0x0fff3ffc }, | 875 | {0x0000a224, 0x00000400}, |
885 | { 0x0000a24c, 0x00000000 }, | 876 | {0x0000a228, 0x000003b5}, |
886 | { 0x0000a254, 0x00000000 }, | 877 | {0x0000a22c, 0x233f7180}, |
887 | { 0x0000a258, 0x0cdbd380 }, | 878 | {0x0000a234, 0x20202020}, |
888 | { 0x0000a25c, 0x0f0f0f01 }, | 879 | {0x0000a238, 0x20202020}, |
889 | { 0x0000a260, 0xdfa91f01 }, | 880 | {0x0000a240, 0x38490a20}, |
890 | { 0x0000a268, 0x00000000 }, | 881 | {0x0000a244, 0x00007bb6}, |
891 | { 0x0000a26c, 0x0e79e5c6 }, | 882 | {0x0000a248, 0x0fff3ffc}, |
892 | { 0x0000b26c, 0x0e79e5c6 }, | 883 | {0x0000a24c, 0x00000000}, |
893 | { 0x0000d270, 0x00820820 }, | 884 | {0x0000a254, 0x00000000}, |
894 | { 0x0000a278, 0x1ce739ce }, | 885 | {0x0000a258, 0x0cdbd380}, |
895 | { 0x0000d35c, 0x07ffffef }, | 886 | {0x0000a25c, 0x0f0f0f01}, |
896 | { 0x0000d360, 0x0fffffe7 }, | 887 | {0x0000a260, 0xdfa91f01}, |
897 | { 0x0000d364, 0x17ffffe5 }, | 888 | {0x0000a268, 0x00000000}, |
898 | { 0x0000d368, 0x1fffffe4 }, | 889 | {0x0000a26c, 0x0e79e5c6}, |
899 | { 0x0000d36c, 0x37ffffe3 }, | 890 | {0x0000b26c, 0x0e79e5c6}, |
900 | { 0x0000d370, 0x3fffffe3 }, | 891 | {0x0000d270, 0x00820820}, |
901 | { 0x0000d374, 0x57ffffe3 }, | 892 | {0x0000a278, 0x1ce739ce}, |
902 | { 0x0000d378, 0x5fffffe2 }, | 893 | {0x0000d35c, 0x07ffffef}, |
903 | { 0x0000d37c, 0x7fffffe2 }, | 894 | {0x0000d360, 0x0fffffe7}, |
904 | { 0x0000d380, 0x7f3c7bba }, | 895 | {0x0000d364, 0x17ffffe5}, |
905 | { 0x0000d384, 0xf3307ff0 }, | 896 | {0x0000d368, 0x1fffffe4}, |
906 | { 0x0000a38c, 0x20202020 }, | 897 | {0x0000d36c, 0x37ffffe3}, |
907 | { 0x0000a390, 0x20202020 }, | 898 | {0x0000d370, 0x3fffffe3}, |
908 | { 0x0000a394, 0x1ce739ce }, | 899 | {0x0000d374, 0x57ffffe3}, |
909 | { 0x0000a398, 0x000001ce }, | 900 | {0x0000d378, 0x5fffffe2}, |
910 | { 0x0000a39c, 0x00000001 }, | 901 | {0x0000d37c, 0x7fffffe2}, |
911 | { 0x0000a3a0, 0x00000000 }, | 902 | {0x0000d380, 0x7f3c7bba}, |
912 | { 0x0000a3a4, 0x00000000 }, | 903 | {0x0000d384, 0xf3307ff0}, |
913 | { 0x0000a3a8, 0x00000000 }, | 904 | {0x0000a38c, 0x20202020}, |
914 | { 0x0000a3ac, 0x00000000 }, | 905 | {0x0000a390, 0x20202020}, |
915 | { 0x0000a3b0, 0x00000000 }, | 906 | {0x0000a394, 0x1ce739ce}, |
916 | { 0x0000a3b4, 0x00000000 }, | 907 | {0x0000a398, 0x000001ce}, |
917 | { 0x0000a3b8, 0x00000000 }, | 908 | {0x0000a39c, 0x00000001}, |
918 | { 0x0000a3bc, 0x00000000 }, | 909 | {0x0000a3a0, 0x00000000}, |
919 | { 0x0000a3c0, 0x00000000 }, | 910 | {0x0000a3a4, 0x00000000}, |
920 | { 0x0000a3c4, 0x00000000 }, | 911 | {0x0000a3a8, 0x00000000}, |
921 | { 0x0000a3c8, 0x00000246 }, | 912 | {0x0000a3ac, 0x00000000}, |
922 | { 0x0000a3cc, 0x20202020 }, | 913 | {0x0000a3b0, 0x00000000}, |
923 | { 0x0000a3d0, 0x20202020 }, | 914 | {0x0000a3b4, 0x00000000}, |
924 | { 0x0000a3d4, 0x20202020 }, | 915 | {0x0000a3b8, 0x00000000}, |
925 | { 0x0000a3dc, 0x1ce739ce }, | 916 | {0x0000a3bc, 0x00000000}, |
926 | { 0x0000a3e0, 0x000001ce }, | 917 | {0x0000a3c0, 0x00000000}, |
927 | { 0x0000a3e4, 0x00000000 }, | 918 | {0x0000a3c4, 0x00000000}, |
928 | { 0x0000a3e8, 0x18c43433 }, | 919 | {0x0000a3c8, 0x00000246}, |
929 | { 0x0000a3ec, 0x00f70081 }, | 920 | {0x0000a3cc, 0x20202020}, |
930 | { 0x00007800, 0x00040000 }, | 921 | {0x0000a3d0, 0x20202020}, |
931 | { 0x00007804, 0xdb005012 }, | 922 | {0x0000a3d4, 0x20202020}, |
932 | { 0x00007808, 0x04924914 }, | 923 | {0x0000a3dc, 0x1ce739ce}, |
933 | { 0x0000780c, 0x21084210 }, | 924 | {0x0000a3e0, 0x000001ce}, |
934 | { 0x00007810, 0x6d801300 }, | 925 | {0x0000a3e4, 0x00000000}, |
935 | { 0x00007818, 0x07e41000 }, | 926 | {0x0000a3e8, 0x18c43433}, |
936 | { 0x00007824, 0x00040000 }, | 927 | {0x00007800, 0x00040000}, |
937 | { 0x00007828, 0xdb005012 }, | 928 | {0x00007804, 0xdb005012}, |
938 | { 0x0000782c, 0x04924914 }, | 929 | {0x00007808, 0x04924914}, |
939 | { 0x00007830, 0x21084210 }, | 930 | {0x0000780c, 0x21084210}, |
940 | { 0x00007834, 0x6d801300 }, | 931 | {0x00007810, 0x6d801300}, |
941 | { 0x0000783c, 0x07e40000 }, | 932 | {0x00007818, 0x07e41000}, |
942 | { 0x00007848, 0x00100000 }, | 933 | {0x00007824, 0x00040000}, |
943 | { 0x0000784c, 0x773f0567 }, | 934 | {0x00007828, 0xdb005012}, |
944 | { 0x00007850, 0x54214514 }, | 935 | {0x0000782c, 0x04924914}, |
945 | { 0x00007854, 0x12035828 }, | 936 | {0x00007830, 0x21084210}, |
946 | { 0x00007858, 0x9259269a }, | 937 | {0x00007834, 0x6d801300}, |
947 | { 0x00007860, 0x52802000 }, | 938 | {0x0000783c, 0x07e40000}, |
948 | { 0x00007864, 0x0a8e370e }, | 939 | {0x00007848, 0x00100000}, |
949 | { 0x00007868, 0xc0102850 }, | 940 | {0x0000784c, 0x773f0567}, |
950 | { 0x0000786c, 0x812d4000 }, | 941 | {0x00007850, 0x54214514}, |
951 | { 0x00007870, 0x807ec400 }, | 942 | {0x00007854, 0x12035828}, |
952 | { 0x00007874, 0x001b6db0 }, | 943 | {0x00007858, 0x9259269a}, |
953 | { 0x00007878, 0x00376b63 }, | 944 | {0x00007860, 0x52802000}, |
954 | { 0x0000787c, 0x06db6db6 }, | 945 | {0x00007864, 0x0a8e370e}, |
955 | { 0x00007880, 0x006d8000 }, | 946 | {0x00007868, 0xc0102850}, |
956 | { 0x00007884, 0xffeffffe }, | 947 | {0x0000786c, 0x812d4000}, |
957 | { 0x00007888, 0xffeffffe }, | 948 | {0x00007870, 0x807ec400}, |
958 | { 0x0000788c, 0x00010000 }, | 949 | {0x00007874, 0x001b6db0}, |
959 | { 0x00007890, 0x02060aeb }, | 950 | {0x00007878, 0x00376b63}, |
960 | { 0x00007898, 0x2a850160 }, | 951 | {0x0000787c, 0x06db6db6}, |
952 | {0x00007880, 0x006d8000}, | ||
953 | {0x00007884, 0xffeffffe}, | ||
954 | {0x00007888, 0xffeffffe}, | ||
955 | {0x0000788c, 0x00010000}, | ||
956 | {0x00007890, 0x02060aeb}, | ||
957 | {0x00007898, 0x2a850160}, | ||
961 | }; | 958 | }; |
962 | 959 | ||
963 | static const u32 ar9280Modes_fast_clock_9280_2[][3] = { | 960 | static const u32 ar9280Modes_fast_clock_9280_2[][3] = { |
964 | { 0x00001030, 0x00000268, 0x000004d0 }, | 961 | /* Addr 5G_HT20 5G_HT40 */ |
965 | { 0x00001070, 0x0000018c, 0x00000318 }, | 962 | {0x00001030, 0x00000268, 0x000004d0}, |
966 | { 0x000010b0, 0x00000fd0, 0x00001fa0 }, | 963 | {0x00001070, 0x0000018c, 0x00000318}, |
967 | { 0x00008014, 0x044c044c, 0x08980898 }, | 964 | {0x000010b0, 0x00000fd0, 0x00001fa0}, |
968 | { 0x0000801c, 0x148ec02b, 0x148ec057 }, | 965 | {0x00008014, 0x044c044c, 0x08980898}, |
969 | { 0x00008318, 0x000044c0, 0x00008980 }, | 966 | {0x0000801c, 0x148ec02b, 0x148ec057}, |
970 | { 0x00009820, 0x02020200, 0x02020200 }, | 967 | {0x00008318, 0x000044c0, 0x00008980}, |
971 | { 0x00009824, 0x01000f0f, 0x01000f0f }, | 968 | {0x00009820, 0x02020200, 0x02020200}, |
972 | { 0x00009828, 0x0b020001, 0x0b020001 }, | 969 | {0x00009824, 0x01000f0f, 0x01000f0f}, |
973 | { 0x00009834, 0x00000f0f, 0x00000f0f }, | 970 | {0x00009828, 0x0b020001, 0x0b020001}, |
974 | { 0x00009844, 0x03721821, 0x03721821 }, | 971 | {0x00009834, 0x00000f0f, 0x00000f0f}, |
975 | { 0x00009914, 0x00000898, 0x00001130 }, | 972 | {0x00009844, 0x03721821, 0x03721821}, |
976 | { 0x00009918, 0x0000000b, 0x00000016 }, | 973 | {0x00009914, 0x00000898, 0x00001130}, |
974 | {0x00009918, 0x0000000b, 0x00000016}, | ||
977 | }; | 975 | }; |
978 | 976 | ||
979 | static const u32 ar9280Modes_backoff_23db_rxgain_9280_2[][6] = { | 977 | static const u32 ar9280Modes_backoff_23db_rxgain_9280_2[][6] = { |
980 | { 0x00009a00, 0x00008184, 0x00008184, 0x00000290, 0x00000290, 0x00000290 }, | 978 | {0x00009a00, 0x00008184, 0x00008184, 0x00000290, 0x00000290, 0x00000290}, |
981 | { 0x00009a04, 0x00008188, 0x00008188, 0x00000300, 0x00000300, 0x00000300 }, | 979 | {0x00009a04, 0x00008188, 0x00008188, 0x00000300, 0x00000300, 0x00000300}, |
982 | { 0x00009a08, 0x0000818c, 0x0000818c, 0x00000304, 0x00000304, 0x00000304 }, | 980 | {0x00009a08, 0x0000818c, 0x0000818c, 0x00000304, 0x00000304, 0x00000304}, |
983 | { 0x00009a0c, 0x00008190, 0x00008190, 0x00000308, 0x00000308, 0x00000308 }, | 981 | {0x00009a0c, 0x00008190, 0x00008190, 0x00000308, 0x00000308, 0x00000308}, |
984 | { 0x00009a10, 0x00008194, 0x00008194, 0x0000030c, 0x0000030c, 0x0000030c }, | 982 | {0x00009a10, 0x00008194, 0x00008194, 0x0000030c, 0x0000030c, 0x0000030c}, |
985 | { 0x00009a14, 0x00008200, 0x00008200, 0x00008000, 0x00008000, 0x00008000 }, | 983 | {0x00009a14, 0x00008200, 0x00008200, 0x00008000, 0x00008000, 0x00008000}, |
986 | { 0x00009a18, 0x00008204, 0x00008204, 0x00008004, 0x00008004, 0x00008004 }, | 984 | {0x00009a18, 0x00008204, 0x00008204, 0x00008004, 0x00008004, 0x00008004}, |
987 | { 0x00009a1c, 0x00008208, 0x00008208, 0x00008008, 0x00008008, 0x00008008 }, | 985 | {0x00009a1c, 0x00008208, 0x00008208, 0x00008008, 0x00008008, 0x00008008}, |
988 | { 0x00009a20, 0x0000820c, 0x0000820c, 0x0000800c, 0x0000800c, 0x0000800c }, | 986 | {0x00009a20, 0x0000820c, 0x0000820c, 0x0000800c, 0x0000800c, 0x0000800c}, |
989 | { 0x00009a24, 0x00008210, 0x00008210, 0x00008080, 0x00008080, 0x00008080 }, | 987 | {0x00009a24, 0x00008210, 0x00008210, 0x00008080, 0x00008080, 0x00008080}, |
990 | { 0x00009a28, 0x00008214, 0x00008214, 0x00008084, 0x00008084, 0x00008084 }, | 988 | {0x00009a28, 0x00008214, 0x00008214, 0x00008084, 0x00008084, 0x00008084}, |
991 | { 0x00009a2c, 0x00008280, 0x00008280, 0x00008088, 0x00008088, 0x00008088 }, | 989 | {0x00009a2c, 0x00008280, 0x00008280, 0x00008088, 0x00008088, 0x00008088}, |
992 | { 0x00009a30, 0x00008284, 0x00008284, 0x0000808c, 0x0000808c, 0x0000808c }, | 990 | {0x00009a30, 0x00008284, 0x00008284, 0x0000808c, 0x0000808c, 0x0000808c}, |
993 | { 0x00009a34, 0x00008288, 0x00008288, 0x00008100, 0x00008100, 0x00008100 }, | 991 | {0x00009a34, 0x00008288, 0x00008288, 0x00008100, 0x00008100, 0x00008100}, |
994 | { 0x00009a38, 0x0000828c, 0x0000828c, 0x00008104, 0x00008104, 0x00008104 }, | 992 | {0x00009a38, 0x0000828c, 0x0000828c, 0x00008104, 0x00008104, 0x00008104}, |
995 | { 0x00009a3c, 0x00008290, 0x00008290, 0x00008108, 0x00008108, 0x00008108 }, | 993 | {0x00009a3c, 0x00008290, 0x00008290, 0x00008108, 0x00008108, 0x00008108}, |
996 | { 0x00009a40, 0x00008300, 0x00008300, 0x0000810c, 0x0000810c, 0x0000810c }, | 994 | {0x00009a40, 0x00008300, 0x00008300, 0x0000810c, 0x0000810c, 0x0000810c}, |
997 | { 0x00009a44, 0x00008304, 0x00008304, 0x00008110, 0x00008110, 0x00008110 }, | 995 | {0x00009a44, 0x00008304, 0x00008304, 0x00008110, 0x00008110, 0x00008110}, |
998 | { 0x00009a48, 0x00008308, 0x00008308, 0x00008114, 0x00008114, 0x00008114 }, | 996 | {0x00009a48, 0x00008308, 0x00008308, 0x00008114, 0x00008114, 0x00008114}, |
999 | { 0x00009a4c, 0x0000830c, 0x0000830c, 0x00008180, 0x00008180, 0x00008180 }, | 997 | {0x00009a4c, 0x0000830c, 0x0000830c, 0x00008180, 0x00008180, 0x00008180}, |
1000 | { 0x00009a50, 0x00008310, 0x00008310, 0x00008184, 0x00008184, 0x00008184 }, | 998 | {0x00009a50, 0x00008310, 0x00008310, 0x00008184, 0x00008184, 0x00008184}, |
1001 | { 0x00009a54, 0x00008314, 0x00008314, 0x00008188, 0x00008188, 0x00008188 }, | 999 | {0x00009a54, 0x00008314, 0x00008314, 0x00008188, 0x00008188, 0x00008188}, |
1002 | { 0x00009a58, 0x00008380, 0x00008380, 0x0000818c, 0x0000818c, 0x0000818c }, | 1000 | {0x00009a58, 0x00008380, 0x00008380, 0x0000818c, 0x0000818c, 0x0000818c}, |
1003 | { 0x00009a5c, 0x00008384, 0x00008384, 0x00008190, 0x00008190, 0x00008190 }, | 1001 | {0x00009a5c, 0x00008384, 0x00008384, 0x00008190, 0x00008190, 0x00008190}, |
1004 | { 0x00009a60, 0x00008388, 0x00008388, 0x00008194, 0x00008194, 0x00008194 }, | 1002 | {0x00009a60, 0x00008388, 0x00008388, 0x00008194, 0x00008194, 0x00008194}, |
1005 | { 0x00009a64, 0x0000838c, 0x0000838c, 0x000081a0, 0x000081a0, 0x000081a0 }, | 1003 | {0x00009a64, 0x0000838c, 0x0000838c, 0x000081a0, 0x000081a0, 0x000081a0}, |
1006 | { 0x00009a68, 0x00008390, 0x00008390, 0x0000820c, 0x0000820c, 0x0000820c }, | 1004 | {0x00009a68, 0x00008390, 0x00008390, 0x0000820c, 0x0000820c, 0x0000820c}, |
1007 | { 0x00009a6c, 0x00008394, 0x00008394, 0x000081a8, 0x000081a8, 0x000081a8 }, | 1005 | {0x00009a6c, 0x00008394, 0x00008394, 0x000081a8, 0x000081a8, 0x000081a8}, |
1008 | { 0x00009a70, 0x0000a380, 0x0000a380, 0x00008284, 0x00008284, 0x00008284 }, | 1006 | {0x00009a70, 0x0000a380, 0x0000a380, 0x00008284, 0x00008284, 0x00008284}, |
1009 | { 0x00009a74, 0x0000a384, 0x0000a384, 0x00008288, 0x00008288, 0x00008288 }, | 1007 | {0x00009a74, 0x0000a384, 0x0000a384, 0x00008288, 0x00008288, 0x00008288}, |
1010 | { 0x00009a78, 0x0000a388, 0x0000a388, 0x00008224, 0x00008224, 0x00008224 }, | 1008 | {0x00009a78, 0x0000a388, 0x0000a388, 0x00008224, 0x00008224, 0x00008224}, |
1011 | { 0x00009a7c, 0x0000a38c, 0x0000a38c, 0x00008290, 0x00008290, 0x00008290 }, | 1009 | {0x00009a7c, 0x0000a38c, 0x0000a38c, 0x00008290, 0x00008290, 0x00008290}, |
1012 | { 0x00009a80, 0x0000a390, 0x0000a390, 0x00008300, 0x00008300, 0x00008300 }, | 1010 | {0x00009a80, 0x0000a390, 0x0000a390, 0x00008300, 0x00008300, 0x00008300}, |
1013 | { 0x00009a84, 0x0000a394, 0x0000a394, 0x00008304, 0x00008304, 0x00008304 }, | 1011 | {0x00009a84, 0x0000a394, 0x0000a394, 0x00008304, 0x00008304, 0x00008304}, |
1014 | { 0x00009a88, 0x0000a780, 0x0000a780, 0x00008308, 0x00008308, 0x00008308 }, | 1012 | {0x00009a88, 0x0000a780, 0x0000a780, 0x00008308, 0x00008308, 0x00008308}, |
1015 | { 0x00009a8c, 0x0000a784, 0x0000a784, 0x0000830c, 0x0000830c, 0x0000830c }, | 1013 | {0x00009a8c, 0x0000a784, 0x0000a784, 0x0000830c, 0x0000830c, 0x0000830c}, |
1016 | { 0x00009a90, 0x0000a788, 0x0000a788, 0x00008380, 0x00008380, 0x00008380 }, | 1014 | {0x00009a90, 0x0000a788, 0x0000a788, 0x00008380, 0x00008380, 0x00008380}, |
1017 | { 0x00009a94, 0x0000a78c, 0x0000a78c, 0x00008384, 0x00008384, 0x00008384 }, | 1015 | {0x00009a94, 0x0000a78c, 0x0000a78c, 0x00008384, 0x00008384, 0x00008384}, |
1018 | { 0x00009a98, 0x0000a790, 0x0000a790, 0x00008700, 0x00008700, 0x00008700 }, | 1016 | {0x00009a98, 0x0000a790, 0x0000a790, 0x00008700, 0x00008700, 0x00008700}, |
1019 | { 0x00009a9c, 0x0000a794, 0x0000a794, 0x00008704, 0x00008704, 0x00008704 }, | 1017 | {0x00009a9c, 0x0000a794, 0x0000a794, 0x00008704, 0x00008704, 0x00008704}, |
1020 | { 0x00009aa0, 0x0000ab84, 0x0000ab84, 0x00008708, 0x00008708, 0x00008708 }, | 1018 | {0x00009aa0, 0x0000ab84, 0x0000ab84, 0x00008708, 0x00008708, 0x00008708}, |
1021 | { 0x00009aa4, 0x0000ab88, 0x0000ab88, 0x0000870c, 0x0000870c, 0x0000870c }, | 1019 | {0x00009aa4, 0x0000ab88, 0x0000ab88, 0x0000870c, 0x0000870c, 0x0000870c}, |
1022 | { 0x00009aa8, 0x0000ab8c, 0x0000ab8c, 0x00008780, 0x00008780, 0x00008780 }, | 1020 | {0x00009aa8, 0x0000ab8c, 0x0000ab8c, 0x00008780, 0x00008780, 0x00008780}, |
1023 | { 0x00009aac, 0x0000ab90, 0x0000ab90, 0x00008784, 0x00008784, 0x00008784 }, | 1021 | {0x00009aac, 0x0000ab90, 0x0000ab90, 0x00008784, 0x00008784, 0x00008784}, |
1024 | { 0x00009ab0, 0x0000ab94, 0x0000ab94, 0x00008b00, 0x00008b00, 0x00008b00 }, | 1022 | {0x00009ab0, 0x0000ab94, 0x0000ab94, 0x00008b00, 0x00008b00, 0x00008b00}, |
1025 | { 0x00009ab4, 0x0000af80, 0x0000af80, 0x00008b04, 0x00008b04, 0x00008b04 }, | 1023 | {0x00009ab4, 0x0000af80, 0x0000af80, 0x00008b04, 0x00008b04, 0x00008b04}, |
1026 | { 0x00009ab8, 0x0000af84, 0x0000af84, 0x00008b08, 0x00008b08, 0x00008b08 }, | 1024 | {0x00009ab8, 0x0000af84, 0x0000af84, 0x00008b08, 0x00008b08, 0x00008b08}, |
1027 | { 0x00009abc, 0x0000af88, 0x0000af88, 0x00008b0c, 0x00008b0c, 0x00008b0c }, | 1025 | {0x00009abc, 0x0000af88, 0x0000af88, 0x00008b0c, 0x00008b0c, 0x00008b0c}, |
1028 | { 0x00009ac0, 0x0000af8c, 0x0000af8c, 0x00008b10, 0x00008b10, 0x00008b10 }, | 1026 | {0x00009ac0, 0x0000af8c, 0x0000af8c, 0x00008b10, 0x00008b10, 0x00008b10}, |
1029 | { 0x00009ac4, 0x0000af90, 0x0000af90, 0x00008b14, 0x00008b14, 0x00008b14 }, | 1027 | {0x00009ac4, 0x0000af90, 0x0000af90, 0x00008b80, 0x00008b80, 0x00008b80}, |
1030 | { 0x00009ac8, 0x0000af94, 0x0000af94, 0x00008b01, 0x00008b01, 0x00008b01 }, | 1028 | {0x00009ac8, 0x0000af94, 0x0000af94, 0x00008b84, 0x00008b84, 0x00008b84}, |
1031 | { 0x00009acc, 0x0000b380, 0x0000b380, 0x00008b05, 0x00008b05, 0x00008b05 }, | 1029 | {0x00009acc, 0x0000b380, 0x0000b380, 0x00008b88, 0x00008b88, 0x00008b88}, |
1032 | { 0x00009ad0, 0x0000b384, 0x0000b384, 0x00008b09, 0x00008b09, 0x00008b09 }, | 1030 | {0x00009ad0, 0x0000b384, 0x0000b384, 0x00008b8c, 0x00008b8c, 0x00008b8c}, |
1033 | { 0x00009ad4, 0x0000b388, 0x0000b388, 0x00008b0d, 0x00008b0d, 0x00008b0d }, | 1031 | {0x00009ad4, 0x0000b388, 0x0000b388, 0x00008b90, 0x00008b90, 0x00008b90}, |
1034 | { 0x00009ad8, 0x0000b38c, 0x0000b38c, 0x00008b11, 0x00008b11, 0x00008b11 }, | 1032 | {0x00009ad8, 0x0000b38c, 0x0000b38c, 0x00008b94, 0x00008b94, 0x00008b94}, |
1035 | { 0x00009adc, 0x0000b390, 0x0000b390, 0x00008b15, 0x00008b15, 0x00008b15 }, | 1033 | {0x00009adc, 0x0000b390, 0x0000b390, 0x00008b98, 0x00008b98, 0x00008b98}, |
1036 | { 0x00009ae0, 0x0000b394, 0x0000b394, 0x00008b02, 0x00008b02, 0x00008b02 }, | 1034 | {0x00009ae0, 0x0000b394, 0x0000b394, 0x00008ba4, 0x00008ba4, 0x00008ba4}, |
1037 | { 0x00009ae4, 0x0000b398, 0x0000b398, 0x00008b06, 0x00008b06, 0x00008b06 }, | 1035 | {0x00009ae4, 0x0000b398, 0x0000b398, 0x00008ba8, 0x00008ba8, 0x00008ba8}, |
1038 | { 0x00009ae8, 0x0000b780, 0x0000b780, 0x00008b0a, 0x00008b0a, 0x00008b0a }, | 1036 | {0x00009ae8, 0x0000b780, 0x0000b780, 0x00008bac, 0x00008bac, 0x00008bac}, |
1039 | { 0x00009aec, 0x0000b784, 0x0000b784, 0x00008b0e, 0x00008b0e, 0x00008b0e }, | 1037 | {0x00009aec, 0x0000b784, 0x0000b784, 0x00008bb0, 0x00008bb0, 0x00008bb0}, |
1040 | { 0x00009af0, 0x0000b788, 0x0000b788, 0x00008b12, 0x00008b12, 0x00008b12 }, | 1038 | {0x00009af0, 0x0000b788, 0x0000b788, 0x00008bb4, 0x00008bb4, 0x00008bb4}, |
1041 | { 0x00009af4, 0x0000b78c, 0x0000b78c, 0x00008b16, 0x00008b16, 0x00008b16 }, | 1039 | {0x00009af4, 0x0000b78c, 0x0000b78c, 0x00008ba1, 0x00008ba1, 0x00008ba1}, |
1042 | { 0x00009af8, 0x0000b790, 0x0000b790, 0x00008b03, 0x00008b03, 0x00008b03 }, | 1040 | {0x00009af8, 0x0000b790, 0x0000b790, 0x00008ba5, 0x00008ba5, 0x00008ba5}, |
1043 | { 0x00009afc, 0x0000b794, 0x0000b794, 0x00008b07, 0x00008b07, 0x00008b07 }, | 1041 | {0x00009afc, 0x0000b794, 0x0000b794, 0x00008ba9, 0x00008ba9, 0x00008ba9}, |
1044 | { 0x00009b00, 0x0000b798, 0x0000b798, 0x00008b0b, 0x00008b0b, 0x00008b0b }, | 1042 | {0x00009b00, 0x0000b798, 0x0000b798, 0x00008bad, 0x00008bad, 0x00008bad}, |
1045 | { 0x00009b04, 0x0000d784, 0x0000d784, 0x00008b0f, 0x00008b0f, 0x00008b0f }, | 1043 | {0x00009b04, 0x0000d784, 0x0000d784, 0x00008bb1, 0x00008bb1, 0x00008bb1}, |
1046 | { 0x00009b08, 0x0000d788, 0x0000d788, 0x00008b13, 0x00008b13, 0x00008b13 }, | 1044 | {0x00009b08, 0x0000d788, 0x0000d788, 0x00008bb5, 0x00008bb5, 0x00008bb5}, |
1047 | { 0x00009b0c, 0x0000d78c, 0x0000d78c, 0x00008b17, 0x00008b17, 0x00008b17 }, | 1045 | {0x00009b0c, 0x0000d78c, 0x0000d78c, 0x00008ba2, 0x00008ba2, 0x00008ba2}, |
1048 | { 0x00009b10, 0x0000d790, 0x0000d790, 0x00008b23, 0x00008b23, 0x00008b23 }, | 1046 | {0x00009b10, 0x0000d790, 0x0000d790, 0x00008ba6, 0x00008ba6, 0x00008ba6}, |
1049 | { 0x00009b14, 0x0000f780, 0x0000f780, 0x00008b27, 0x00008b27, 0x00008b27 }, | 1047 | {0x00009b14, 0x0000f780, 0x0000f780, 0x00008baa, 0x00008baa, 0x00008baa}, |
1050 | { 0x00009b18, 0x0000f784, 0x0000f784, 0x00008b2b, 0x00008b2b, 0x00008b2b }, | 1048 | {0x00009b18, 0x0000f784, 0x0000f784, 0x00008bae, 0x00008bae, 0x00008bae}, |
1051 | { 0x00009b1c, 0x0000f788, 0x0000f788, 0x00008b2f, 0x00008b2f, 0x00008b2f }, | 1049 | {0x00009b1c, 0x0000f788, 0x0000f788, 0x00008bb2, 0x00008bb2, 0x00008bb2}, |
1052 | { 0x00009b20, 0x0000f78c, 0x0000f78c, 0x00008b33, 0x00008b33, 0x00008b33 }, | 1050 | {0x00009b20, 0x0000f78c, 0x0000f78c, 0x00008bb6, 0x00008bb6, 0x00008bb6}, |
1053 | { 0x00009b24, 0x0000f790, 0x0000f790, 0x00008b37, 0x00008b37, 0x00008b37 }, | 1051 | {0x00009b24, 0x0000f790, 0x0000f790, 0x00008ba3, 0x00008ba3, 0x00008ba3}, |
1054 | { 0x00009b28, 0x0000f794, 0x0000f794, 0x00008b43, 0x00008b43, 0x00008b43 }, | 1052 | {0x00009b28, 0x0000f794, 0x0000f794, 0x00008ba7, 0x00008ba7, 0x00008ba7}, |
1055 | { 0x00009b2c, 0x0000f7a4, 0x0000f7a4, 0x00008b47, 0x00008b47, 0x00008b47 }, | 1053 | {0x00009b2c, 0x0000f7a4, 0x0000f7a4, 0x00008bab, 0x00008bab, 0x00008bab}, |
1056 | { 0x00009b30, 0x0000f7a8, 0x0000f7a8, 0x00008b4b, 0x00008b4b, 0x00008b4b }, | 1054 | {0x00009b30, 0x0000f7a8, 0x0000f7a8, 0x00008baf, 0x00008baf, 0x00008baf}, |
1057 | { 0x00009b34, 0x0000f7ac, 0x0000f7ac, 0x00008b4f, 0x00008b4f, 0x00008b4f }, | 1055 | {0x00009b34, 0x0000f7ac, 0x0000f7ac, 0x00008bb3, 0x00008bb3, 0x00008bb3}, |
1058 | { 0x00009b38, 0x0000f7b0, 0x0000f7b0, 0x00008b53, 0x00008b53, 0x00008b53 }, | 1056 | {0x00009b38, 0x0000f7b0, 0x0000f7b0, 0x00008bb7, 0x00008bb7, 0x00008bb7}, |
1059 | { 0x00009b3c, 0x0000f7b4, 0x0000f7b4, 0x00008b57, 0x00008b57, 0x00008b57 }, | 1057 | {0x00009b3c, 0x0000f7b4, 0x0000f7b4, 0x00008bc3, 0x00008bc3, 0x00008bc3}, |
1060 | { 0x00009b40, 0x0000f7a1, 0x0000f7a1, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1058 | {0x00009b40, 0x0000f7a1, 0x0000f7a1, 0x00008bc7, 0x00008bc7, 0x00008bc7}, |
1061 | { 0x00009b44, 0x0000f7a5, 0x0000f7a5, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1059 | {0x00009b44, 0x0000f7a5, 0x0000f7a5, 0x00008bcb, 0x00008bcb, 0x00008bcb}, |
1062 | { 0x00009b48, 0x0000f7a9, 0x0000f7a9, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1060 | {0x00009b48, 0x0000f7a9, 0x0000f7a9, 0x00008bcf, 0x00008bcf, 0x00008bcf}, |
1063 | { 0x00009b4c, 0x0000f7ad, 0x0000f7ad, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1061 | {0x00009b4c, 0x0000f7ad, 0x0000f7ad, 0x00008bd3, 0x00008bd3, 0x00008bd3}, |
1064 | { 0x00009b50, 0x0000f7b1, 0x0000f7b1, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1062 | {0x00009b50, 0x0000f7b1, 0x0000f7b1, 0x00008bd7, 0x00008bd7, 0x00008bd7}, |
1065 | { 0x00009b54, 0x0000f7b5, 0x0000f7b5, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1063 | {0x00009b54, 0x0000f7b5, 0x0000f7b5, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1066 | { 0x00009b58, 0x0000f7c5, 0x0000f7c5, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1064 | {0x00009b58, 0x0000f7c5, 0x0000f7c5, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1067 | { 0x00009b5c, 0x0000f7c9, 0x0000f7c9, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1065 | {0x00009b5c, 0x0000f7c9, 0x0000f7c9, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1068 | { 0x00009b60, 0x0000f7cd, 0x0000f7cd, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1066 | {0x00009b60, 0x0000f7cd, 0x0000f7cd, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1069 | { 0x00009b64, 0x0000f7d1, 0x0000f7d1, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1067 | {0x00009b64, 0x0000f7d1, 0x0000f7d1, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1070 | { 0x00009b68, 0x0000f7d5, 0x0000f7d5, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1068 | {0x00009b68, 0x0000f7d5, 0x0000f7d5, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1071 | { 0x00009b6c, 0x0000f7c2, 0x0000f7c2, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1069 | {0x00009b6c, 0x0000f7c2, 0x0000f7c2, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1072 | { 0x00009b70, 0x0000f7c6, 0x0000f7c6, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1070 | {0x00009b70, 0x0000f7c6, 0x0000f7c6, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1073 | { 0x00009b74, 0x0000f7ca, 0x0000f7ca, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1071 | {0x00009b74, 0x0000f7ca, 0x0000f7ca, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1074 | { 0x00009b78, 0x0000f7ce, 0x0000f7ce, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1072 | {0x00009b78, 0x0000f7ce, 0x0000f7ce, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1075 | { 0x00009b7c, 0x0000f7d2, 0x0000f7d2, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1073 | {0x00009b7c, 0x0000f7d2, 0x0000f7d2, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1076 | { 0x00009b80, 0x0000f7d6, 0x0000f7d6, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1074 | {0x00009b80, 0x0000f7d6, 0x0000f7d6, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1077 | { 0x00009b84, 0x0000f7c3, 0x0000f7c3, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1075 | {0x00009b84, 0x0000f7c3, 0x0000f7c3, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1078 | { 0x00009b88, 0x0000f7c7, 0x0000f7c7, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1076 | {0x00009b88, 0x0000f7c7, 0x0000f7c7, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1079 | { 0x00009b8c, 0x0000f7cb, 0x0000f7cb, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1077 | {0x00009b8c, 0x0000f7cb, 0x0000f7cb, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1080 | { 0x00009b90, 0x0000f7d3, 0x0000f7d3, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1078 | {0x00009b90, 0x0000f7d3, 0x0000f7d3, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1081 | { 0x00009b94, 0x0000f7d7, 0x0000f7d7, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1079 | {0x00009b94, 0x0000f7d7, 0x0000f7d7, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1082 | { 0x00009b98, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1080 | {0x00009b98, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1083 | { 0x00009b9c, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1081 | {0x00009b9c, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1084 | { 0x00009ba0, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1082 | {0x00009ba0, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1085 | { 0x00009ba4, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1083 | {0x00009ba4, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1086 | { 0x00009ba8, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1084 | {0x00009ba8, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1087 | { 0x00009bac, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1085 | {0x00009bac, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1088 | { 0x00009bb0, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1086 | {0x00009bb0, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1089 | { 0x00009bb4, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1087 | {0x00009bb4, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1090 | { 0x00009bb8, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1088 | {0x00009bb8, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1091 | { 0x00009bbc, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1089 | {0x00009bbc, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1092 | { 0x00009bc0, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1090 | {0x00009bc0, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1093 | { 0x00009bc4, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1091 | {0x00009bc4, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1094 | { 0x00009bc8, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1092 | {0x00009bc8, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1095 | { 0x00009bcc, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1093 | {0x00009bcc, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1096 | { 0x00009bd0, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1094 | {0x00009bd0, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1097 | { 0x00009bd4, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1095 | {0x00009bd4, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1098 | { 0x00009bd8, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1096 | {0x00009bd8, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1099 | { 0x00009bdc, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1097 | {0x00009bdc, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1100 | { 0x00009be0, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1098 | {0x00009be0, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1101 | { 0x00009be4, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1099 | {0x00009be4, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1102 | { 0x00009be8, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1100 | {0x00009be8, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1103 | { 0x00009bec, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1101 | {0x00009bec, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1104 | { 0x00009bf0, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1102 | {0x00009bf0, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1105 | { 0x00009bf4, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1103 | {0x00009bf4, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1106 | { 0x00009bf8, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1104 | {0x00009bf8, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1107 | { 0x00009bfc, 0x0000f7db, 0x0000f7db, 0x00008b5b, 0x00008b5b, 0x00008b5b }, | 1105 | {0x00009bfc, 0x0000f7db, 0x0000f7db, 0x00008bdb, 0x00008bdb, 0x00008bdb}, |
1108 | { 0x00009848, 0x00001066, 0x00001066, 0x00001050, 0x00001050, 0x00001050 }, | 1106 | {0x00009848, 0x00001066, 0x00001066, 0x00001055, 0x00001055, 0x00001055}, |
1109 | { 0x0000a848, 0x00001066, 0x00001066, 0x00001050, 0x00001050, 0x00001050 }, | 1107 | {0x0000a848, 0x00001066, 0x00001066, 0x00001055, 0x00001055, 0x00001055}, |
1110 | }; | 1108 | }; |
1111 | 1109 | ||
1112 | static const u32 ar9280Modes_original_rxgain_9280_2[][6] = { | 1110 | static const u32 ar9280Modes_original_rxgain_9280_2[][6] = { |
1113 | { 0x00009a00, 0x00008184, 0x00008184, 0x00000290, 0x00000290, 0x00000290 }, | 1111 | {0x00009a00, 0x00008184, 0x00008184, 0x00008000, 0x00008000, 0x00008000}, |
1114 | { 0x00009a04, 0x00008188, 0x00008188, 0x00000300, 0x00000300, 0x00000300 }, | 1112 | {0x00009a04, 0x00008188, 0x00008188, 0x00008000, 0x00008000, 0x00008000}, |
1115 | { 0x00009a08, 0x0000818c, 0x0000818c, 0x00000304, 0x00000304, 0x00000304 }, | 1113 | {0x00009a08, 0x0000818c, 0x0000818c, 0x00008000, 0x00008000, 0x00008000}, |
1116 | { 0x00009a0c, 0x00008190, 0x00008190, 0x00000308, 0x00000308, 0x00000308 }, | 1114 | {0x00009a0c, 0x00008190, 0x00008190, 0x00008000, 0x00008000, 0x00008000}, |
1117 | { 0x00009a10, 0x00008194, 0x00008194, 0x0000030c, 0x0000030c, 0x0000030c }, | 1115 | {0x00009a10, 0x00008194, 0x00008194, 0x00008000, 0x00008000, 0x00008000}, |
1118 | { 0x00009a14, 0x00008200, 0x00008200, 0x00008000, 0x00008000, 0x00008000 }, | 1116 | {0x00009a14, 0x00008200, 0x00008200, 0x00008000, 0x00008000, 0x00008000}, |
1119 | { 0x00009a18, 0x00008204, 0x00008204, 0x00008004, 0x00008004, 0x00008004 }, | 1117 | {0x00009a18, 0x00008204, 0x00008204, 0x00008004, 0x00008004, 0x00008004}, |
1120 | { 0x00009a1c, 0x00008208, 0x00008208, 0x00008008, 0x00008008, 0x00008008 }, | 1118 | {0x00009a1c, 0x00008208, 0x00008208, 0x00008008, 0x00008008, 0x00008008}, |
1121 | { 0x00009a20, 0x0000820c, 0x0000820c, 0x0000800c, 0x0000800c, 0x0000800c }, | 1119 | {0x00009a20, 0x0000820c, 0x0000820c, 0x0000800c, 0x0000800c, 0x0000800c}, |
1122 | { 0x00009a24, 0x00008210, 0x00008210, 0x00008080, 0x00008080, 0x00008080 }, | 1120 | {0x00009a24, 0x00008210, 0x00008210, 0x00008080, 0x00008080, 0x00008080}, |
1123 | { 0x00009a28, 0x00008214, 0x00008214, 0x00008084, 0x00008084, 0x00008084 }, | 1121 | {0x00009a28, 0x00008214, 0x00008214, 0x00008084, 0x00008084, 0x00008084}, |
1124 | { 0x00009a2c, 0x00008280, 0x00008280, 0x00008088, 0x00008088, 0x00008088 }, | 1122 | {0x00009a2c, 0x00008280, 0x00008280, 0x00008088, 0x00008088, 0x00008088}, |
1125 | { 0x00009a30, 0x00008284, 0x00008284, 0x0000808c, 0x0000808c, 0x0000808c }, | 1123 | {0x00009a30, 0x00008284, 0x00008284, 0x0000808c, 0x0000808c, 0x0000808c}, |
1126 | { 0x00009a34, 0x00008288, 0x00008288, 0x00008100, 0x00008100, 0x00008100 }, | 1124 | {0x00009a34, 0x00008288, 0x00008288, 0x00008100, 0x00008100, 0x00008100}, |
1127 | { 0x00009a38, 0x0000828c, 0x0000828c, 0x00008104, 0x00008104, 0x00008104 }, | 1125 | {0x00009a38, 0x0000828c, 0x0000828c, 0x00008104, 0x00008104, 0x00008104}, |
1128 | { 0x00009a3c, 0x00008290, 0x00008290, 0x00008108, 0x00008108, 0x00008108 }, | 1126 | {0x00009a3c, 0x00008290, 0x00008290, 0x00008108, 0x00008108, 0x00008108}, |
1129 | { 0x00009a40, 0x00008300, 0x00008300, 0x0000810c, 0x0000810c, 0x0000810c }, | 1127 | {0x00009a40, 0x00008300, 0x00008300, 0x0000810c, 0x0000810c, 0x0000810c}, |
1130 | { 0x00009a44, 0x00008304, 0x00008304, 0x00008110, 0x00008110, 0x00008110 }, | 1128 | {0x00009a44, 0x00008304, 0x00008304, 0x00008110, 0x00008110, 0x00008110}, |
1131 | { 0x00009a48, 0x00008308, 0x00008308, 0x00008114, 0x00008114, 0x00008114 }, | 1129 | {0x00009a48, 0x00008308, 0x00008308, 0x00008114, 0x00008114, 0x00008114}, |
1132 | { 0x00009a4c, 0x0000830c, 0x0000830c, 0x00008180, 0x00008180, 0x00008180 }, | 1130 | {0x00009a4c, 0x0000830c, 0x0000830c, 0x00008180, 0x00008180, 0x00008180}, |
1133 | { 0x00009a50, 0x00008310, 0x00008310, 0x00008184, 0x00008184, 0x00008184 }, | 1131 | {0x00009a50, 0x00008310, 0x00008310, 0x00008184, 0x00008184, 0x00008184}, |
1134 | { 0x00009a54, 0x00008314, 0x00008314, 0x00008188, 0x00008188, 0x00008188 }, | 1132 | {0x00009a54, 0x00008314, 0x00008314, 0x00008188, 0x00008188, 0x00008188}, |
1135 | { 0x00009a58, 0x00008380, 0x00008380, 0x0000818c, 0x0000818c, 0x0000818c }, | 1133 | {0x00009a58, 0x00008380, 0x00008380, 0x0000818c, 0x0000818c, 0x0000818c}, |
1136 | { 0x00009a5c, 0x00008384, 0x00008384, 0x00008190, 0x00008190, 0x00008190 }, | 1134 | {0x00009a5c, 0x00008384, 0x00008384, 0x00008190, 0x00008190, 0x00008190}, |
1137 | { 0x00009a60, 0x00008388, 0x00008388, 0x00008194, 0x00008194, 0x00008194 }, | 1135 | {0x00009a60, 0x00008388, 0x00008388, 0x00008194, 0x00008194, 0x00008194}, |
1138 | { 0x00009a64, 0x0000838c, 0x0000838c, 0x000081a0, 0x000081a0, 0x000081a0 }, | 1136 | {0x00009a64, 0x0000838c, 0x0000838c, 0x000081a0, 0x000081a0, 0x000081a0}, |
1139 | { 0x00009a68, 0x00008390, 0x00008390, 0x0000820c, 0x0000820c, 0x0000820c }, | 1137 | {0x00009a68, 0x00008390, 0x00008390, 0x0000820c, 0x0000820c, 0x0000820c}, |
1140 | { 0x00009a6c, 0x00008394, 0x00008394, 0x000081a8, 0x000081a8, 0x000081a8 }, | 1138 | {0x00009a6c, 0x00008394, 0x00008394, 0x000081a8, 0x000081a8, 0x000081a8}, |
1141 | { 0x00009a70, 0x0000a380, 0x0000a380, 0x00008284, 0x00008284, 0x00008284 }, | 1139 | {0x00009a70, 0x0000a380, 0x0000a380, 0x00008284, 0x00008284, 0x00008284}, |
1142 | { 0x00009a74, 0x0000a384, 0x0000a384, 0x00008288, 0x00008288, 0x00008288 }, | 1140 | {0x00009a74, 0x0000a384, 0x0000a384, 0x00008288, 0x00008288, 0x00008288}, |
1143 | { 0x00009a78, 0x0000a388, 0x0000a388, 0x00008224, 0x00008224, 0x00008224 }, | 1141 | {0x00009a78, 0x0000a388, 0x0000a388, 0x00008224, 0x00008224, 0x00008224}, |
1144 | { 0x00009a7c, 0x0000a38c, 0x0000a38c, 0x00008290, 0x00008290, 0x00008290 }, | 1142 | {0x00009a7c, 0x0000a38c, 0x0000a38c, 0x00008290, 0x00008290, 0x00008290}, |
1145 | { 0x00009a80, 0x0000a390, 0x0000a390, 0x00008300, 0x00008300, 0x00008300 }, | 1143 | {0x00009a80, 0x0000a390, 0x0000a390, 0x00008300, 0x00008300, 0x00008300}, |
1146 | { 0x00009a84, 0x0000a394, 0x0000a394, 0x00008304, 0x00008304, 0x00008304 }, | 1144 | {0x00009a84, 0x0000a394, 0x0000a394, 0x00008304, 0x00008304, 0x00008304}, |
1147 | { 0x00009a88, 0x0000a780, 0x0000a780, 0x00008308, 0x00008308, 0x00008308 }, | 1145 | {0x00009a88, 0x0000a780, 0x0000a780, 0x00008308, 0x00008308, 0x00008308}, |
1148 | { 0x00009a8c, 0x0000a784, 0x0000a784, 0x0000830c, 0x0000830c, 0x0000830c }, | 1146 | {0x00009a8c, 0x0000a784, 0x0000a784, 0x0000830c, 0x0000830c, 0x0000830c}, |
1149 | { 0x00009a90, 0x0000a788, 0x0000a788, 0x00008380, 0x00008380, 0x00008380 }, | 1147 | {0x00009a90, 0x0000a788, 0x0000a788, 0x00008380, 0x00008380, 0x00008380}, |
1150 | { 0x00009a94, 0x0000a78c, 0x0000a78c, 0x00008384, 0x00008384, 0x00008384 }, | 1148 | {0x00009a94, 0x0000a78c, 0x0000a78c, 0x00008384, 0x00008384, 0x00008384}, |
1151 | { 0x00009a98, 0x0000a790, 0x0000a790, 0x00008700, 0x00008700, 0x00008700 }, | 1149 | {0x00009a98, 0x0000a790, 0x0000a790, 0x00008700, 0x00008700, 0x00008700}, |
1152 | { 0x00009a9c, 0x0000a794, 0x0000a794, 0x00008704, 0x00008704, 0x00008704 }, | 1150 | {0x00009a9c, 0x0000a794, 0x0000a794, 0x00008704, 0x00008704, 0x00008704}, |
1153 | { 0x00009aa0, 0x0000ab84, 0x0000ab84, 0x00008708, 0x00008708, 0x00008708 }, | 1151 | {0x00009aa0, 0x0000ab84, 0x0000ab84, 0x00008708, 0x00008708, 0x00008708}, |
1154 | { 0x00009aa4, 0x0000ab88, 0x0000ab88, 0x0000870c, 0x0000870c, 0x0000870c }, | 1152 | {0x00009aa4, 0x0000ab88, 0x0000ab88, 0x0000870c, 0x0000870c, 0x0000870c}, |
1155 | { 0x00009aa8, 0x0000ab8c, 0x0000ab8c, 0x00008780, 0x00008780, 0x00008780 }, | 1153 | {0x00009aa8, 0x0000ab8c, 0x0000ab8c, 0x00008780, 0x00008780, 0x00008780}, |
1156 | { 0x00009aac, 0x0000ab90, 0x0000ab90, 0x00008784, 0x00008784, 0x00008784 }, | 1154 | {0x00009aac, 0x0000ab90, 0x0000ab90, 0x00008784, 0x00008784, 0x00008784}, |
1157 | { 0x00009ab0, 0x0000ab94, 0x0000ab94, 0x00008b00, 0x00008b00, 0x00008b00 }, | 1155 | {0x00009ab0, 0x0000ab94, 0x0000ab94, 0x00008b00, 0x00008b00, 0x00008b00}, |
1158 | { 0x00009ab4, 0x0000af80, 0x0000af80, 0x00008b04, 0x00008b04, 0x00008b04 }, | 1156 | {0x00009ab4, 0x0000af80, 0x0000af80, 0x00008b04, 0x00008b04, 0x00008b04}, |
1159 | { 0x00009ab8, 0x0000af84, 0x0000af84, 0x00008b08, 0x00008b08, 0x00008b08 }, | 1157 | {0x00009ab8, 0x0000af84, 0x0000af84, 0x00008b08, 0x00008b08, 0x00008b08}, |
1160 | { 0x00009abc, 0x0000af88, 0x0000af88, 0x00008b0c, 0x00008b0c, 0x00008b0c }, | 1158 | {0x00009abc, 0x0000af88, 0x0000af88, 0x00008b0c, 0x00008b0c, 0x00008b0c}, |
1161 | { 0x00009ac0, 0x0000af8c, 0x0000af8c, 0x00008b80, 0x00008b80, 0x00008b80 }, | 1159 | {0x00009ac0, 0x0000af8c, 0x0000af8c, 0x00008b80, 0x00008b80, 0x00008b80}, |
1162 | { 0x00009ac4, 0x0000af90, 0x0000af90, 0x00008b84, 0x00008b84, 0x00008b84 }, | 1160 | {0x00009ac4, 0x0000af90, 0x0000af90, 0x00008b84, 0x00008b84, 0x00008b84}, |
1163 | { 0x00009ac8, 0x0000af94, 0x0000af94, 0x00008b88, 0x00008b88, 0x00008b88 }, | 1161 | {0x00009ac8, 0x0000af94, 0x0000af94, 0x00008b88, 0x00008b88, 0x00008b88}, |
1164 | { 0x00009acc, 0x0000b380, 0x0000b380, 0x00008b8c, 0x00008b8c, 0x00008b8c }, | 1162 | {0x00009acc, 0x0000b380, 0x0000b380, 0x00008b8c, 0x00008b8c, 0x00008b8c}, |
1165 | { 0x00009ad0, 0x0000b384, 0x0000b384, 0x00008b90, 0x00008b90, 0x00008b90 }, | 1163 | {0x00009ad0, 0x0000b384, 0x0000b384, 0x00008b90, 0x00008b90, 0x00008b90}, |
1166 | { 0x00009ad4, 0x0000b388, 0x0000b388, 0x00008f80, 0x00008f80, 0x00008f80 }, | 1164 | {0x00009ad4, 0x0000b388, 0x0000b388, 0x00008f80, 0x00008f80, 0x00008f80}, |
1167 | { 0x00009ad8, 0x0000b38c, 0x0000b38c, 0x00008f84, 0x00008f84, 0x00008f84 }, | 1165 | {0x00009ad8, 0x0000b38c, 0x0000b38c, 0x00008f84, 0x00008f84, 0x00008f84}, |
1168 | { 0x00009adc, 0x0000b390, 0x0000b390, 0x00008f88, 0x00008f88, 0x00008f88 }, | 1166 | {0x00009adc, 0x0000b390, 0x0000b390, 0x00008f88, 0x00008f88, 0x00008f88}, |
1169 | { 0x00009ae0, 0x0000b394, 0x0000b394, 0x00008f8c, 0x00008f8c, 0x00008f8c }, | 1167 | {0x00009ae0, 0x0000b394, 0x0000b394, 0x00008f8c, 0x00008f8c, 0x00008f8c}, |
1170 | { 0x00009ae4, 0x0000b398, 0x0000b398, 0x00008f90, 0x00008f90, 0x00008f90 }, | 1168 | {0x00009ae4, 0x0000b398, 0x0000b398, 0x00008f90, 0x00008f90, 0x00008f90}, |
1171 | { 0x00009ae8, 0x0000b780, 0x0000b780, 0x0000930c, 0x0000930c, 0x0000930c }, | 1169 | {0x00009ae8, 0x0000b780, 0x0000b780, 0x0000930c, 0x0000930c, 0x0000930c}, |
1172 | { 0x00009aec, 0x0000b784, 0x0000b784, 0x00009310, 0x00009310, 0x00009310 }, | 1170 | {0x00009aec, 0x0000b784, 0x0000b784, 0x00009310, 0x00009310, 0x00009310}, |
1173 | { 0x00009af0, 0x0000b788, 0x0000b788, 0x00009384, 0x00009384, 0x00009384 }, | 1171 | {0x00009af0, 0x0000b788, 0x0000b788, 0x00009384, 0x00009384, 0x00009384}, |
1174 | { 0x00009af4, 0x0000b78c, 0x0000b78c, 0x00009388, 0x00009388, 0x00009388 }, | 1172 | {0x00009af4, 0x0000b78c, 0x0000b78c, 0x00009388, 0x00009388, 0x00009388}, |
1175 | { 0x00009af8, 0x0000b790, 0x0000b790, 0x00009324, 0x00009324, 0x00009324 }, | 1173 | {0x00009af8, 0x0000b790, 0x0000b790, 0x00009324, 0x00009324, 0x00009324}, |
1176 | { 0x00009afc, 0x0000b794, 0x0000b794, 0x00009704, 0x00009704, 0x00009704 }, | 1174 | {0x00009afc, 0x0000b794, 0x0000b794, 0x00009704, 0x00009704, 0x00009704}, |
1177 | { 0x00009b00, 0x0000b798, 0x0000b798, 0x000096a4, 0x000096a4, 0x000096a4 }, | 1175 | {0x00009b00, 0x0000b798, 0x0000b798, 0x000096a4, 0x000096a4, 0x000096a4}, |
1178 | { 0x00009b04, 0x0000d784, 0x0000d784, 0x000096a8, 0x000096a8, 0x000096a8 }, | 1176 | {0x00009b04, 0x0000d784, 0x0000d784, 0x000096a8, 0x000096a8, 0x000096a8}, |
1179 | { 0x00009b08, 0x0000d788, 0x0000d788, 0x00009710, 0x00009710, 0x00009710 }, | 1177 | {0x00009b08, 0x0000d788, 0x0000d788, 0x00009710, 0x00009710, 0x00009710}, |
1180 | { 0x00009b0c, 0x0000d78c, 0x0000d78c, 0x00009714, 0x00009714, 0x00009714 }, | 1178 | {0x00009b0c, 0x0000d78c, 0x0000d78c, 0x00009714, 0x00009714, 0x00009714}, |
1181 | { 0x00009b10, 0x0000d790, 0x0000d790, 0x00009720, 0x00009720, 0x00009720 }, | 1179 | {0x00009b10, 0x0000d790, 0x0000d790, 0x00009720, 0x00009720, 0x00009720}, |
1182 | { 0x00009b14, 0x0000f780, 0x0000f780, 0x00009724, 0x00009724, 0x00009724 }, | 1180 | {0x00009b14, 0x0000f780, 0x0000f780, 0x00009724, 0x00009724, 0x00009724}, |
1183 | { 0x00009b18, 0x0000f784, 0x0000f784, 0x00009728, 0x00009728, 0x00009728 }, | 1181 | {0x00009b18, 0x0000f784, 0x0000f784, 0x00009728, 0x00009728, 0x00009728}, |
1184 | { 0x00009b1c, 0x0000f788, 0x0000f788, 0x0000972c, 0x0000972c, 0x0000972c }, | 1182 | {0x00009b1c, 0x0000f788, 0x0000f788, 0x0000972c, 0x0000972c, 0x0000972c}, |
1185 | { 0x00009b20, 0x0000f78c, 0x0000f78c, 0x000097a0, 0x000097a0, 0x000097a0 }, | 1183 | {0x00009b20, 0x0000f78c, 0x0000f78c, 0x000097a0, 0x000097a0, 0x000097a0}, |
1186 | { 0x00009b24, 0x0000f790, 0x0000f790, 0x000097a4, 0x000097a4, 0x000097a4 }, | 1184 | {0x00009b24, 0x0000f790, 0x0000f790, 0x000097a4, 0x000097a4, 0x000097a4}, |
1187 | { 0x00009b28, 0x0000f794, 0x0000f794, 0x000097a8, 0x000097a8, 0x000097a8 }, | 1185 | {0x00009b28, 0x0000f794, 0x0000f794, 0x000097a8, 0x000097a8, 0x000097a8}, |
1188 | { 0x00009b2c, 0x0000f7a4, 0x0000f7a4, 0x000097b0, 0x000097b0, 0x000097b0 }, | 1186 | {0x00009b2c, 0x0000f7a4, 0x0000f7a4, 0x000097b0, 0x000097b0, 0x000097b0}, |
1189 | { 0x00009b30, 0x0000f7a8, 0x0000f7a8, 0x000097b4, 0x000097b4, 0x000097b4 }, | 1187 | {0x00009b30, 0x0000f7a8, 0x0000f7a8, 0x000097b4, 0x000097b4, 0x000097b4}, |
1190 | { 0x00009b34, 0x0000f7ac, 0x0000f7ac, 0x000097b8, 0x000097b8, 0x000097b8 }, | 1188 | {0x00009b34, 0x0000f7ac, 0x0000f7ac, 0x000097b8, 0x000097b8, 0x000097b8}, |
1191 | { 0x00009b38, 0x0000f7b0, 0x0000f7b0, 0x000097a5, 0x000097a5, 0x000097a5 }, | 1189 | {0x00009b38, 0x0000f7b0, 0x0000f7b0, 0x000097a5, 0x000097a5, 0x000097a5}, |
1192 | { 0x00009b3c, 0x0000f7b4, 0x0000f7b4, 0x000097a9, 0x000097a9, 0x000097a9 }, | 1190 | {0x00009b3c, 0x0000f7b4, 0x0000f7b4, 0x000097a9, 0x000097a9, 0x000097a9}, |
1193 | { 0x00009b40, 0x0000f7a1, 0x0000f7a1, 0x000097ad, 0x000097ad, 0x000097ad }, | 1191 | {0x00009b40, 0x0000f7a1, 0x0000f7a1, 0x000097ad, 0x000097ad, 0x000097ad}, |
1194 | { 0x00009b44, 0x0000f7a5, 0x0000f7a5, 0x000097b1, 0x000097b1, 0x000097b1 }, | 1192 | {0x00009b44, 0x0000f7a5, 0x0000f7a5, 0x000097b1, 0x000097b1, 0x000097b1}, |
1195 | { 0x00009b48, 0x0000f7a9, 0x0000f7a9, 0x000097b5, 0x000097b5, 0x000097b5 }, | 1193 | {0x00009b48, 0x0000f7a9, 0x0000f7a9, 0x000097b5, 0x000097b5, 0x000097b5}, |
1196 | { 0x00009b4c, 0x0000f7ad, 0x0000f7ad, 0x000097b9, 0x000097b9, 0x000097b9 }, | 1194 | {0x00009b4c, 0x0000f7ad, 0x0000f7ad, 0x000097b9, 0x000097b9, 0x000097b9}, |
1197 | { 0x00009b50, 0x0000f7b1, 0x0000f7b1, 0x000097c5, 0x000097c5, 0x000097c5 }, | 1195 | {0x00009b50, 0x0000f7b1, 0x0000f7b1, 0x000097c5, 0x000097c5, 0x000097c5}, |
1198 | { 0x00009b54, 0x0000f7b5, 0x0000f7b5, 0x000097c9, 0x000097c9, 0x000097c9 }, | 1196 | {0x00009b54, 0x0000f7b5, 0x0000f7b5, 0x000097c9, 0x000097c9, 0x000097c9}, |
1199 | { 0x00009b58, 0x0000f7c5, 0x0000f7c5, 0x000097d1, 0x000097d1, 0x000097d1 }, | 1197 | {0x00009b58, 0x0000f7c5, 0x0000f7c5, 0x000097d1, 0x000097d1, 0x000097d1}, |
1200 | { 0x00009b5c, 0x0000f7c9, 0x0000f7c9, 0x000097d5, 0x000097d5, 0x000097d5 }, | 1198 | {0x00009b5c, 0x0000f7c9, 0x0000f7c9, 0x000097d5, 0x000097d5, 0x000097d5}, |
1201 | { 0x00009b60, 0x0000f7cd, 0x0000f7cd, 0x000097d9, 0x000097d9, 0x000097d9 }, | 1199 | {0x00009b60, 0x0000f7cd, 0x0000f7cd, 0x000097d9, 0x000097d9, 0x000097d9}, |
1202 | { 0x00009b64, 0x0000f7d1, 0x0000f7d1, 0x000097c6, 0x000097c6, 0x000097c6 }, | 1200 | {0x00009b64, 0x0000f7d1, 0x0000f7d1, 0x000097c6, 0x000097c6, 0x000097c6}, |
1203 | { 0x00009b68, 0x0000f7d5, 0x0000f7d5, 0x000097ca, 0x000097ca, 0x000097ca }, | 1201 | {0x00009b68, 0x0000f7d5, 0x0000f7d5, 0x000097ca, 0x000097ca, 0x000097ca}, |
1204 | { 0x00009b6c, 0x0000f7c2, 0x0000f7c2, 0x000097ce, 0x000097ce, 0x000097ce }, | 1202 | {0x00009b6c, 0x0000f7c2, 0x0000f7c2, 0x000097ce, 0x000097ce, 0x000097ce}, |
1205 | { 0x00009b70, 0x0000f7c6, 0x0000f7c6, 0x000097d2, 0x000097d2, 0x000097d2 }, | 1203 | {0x00009b70, 0x0000f7c6, 0x0000f7c6, 0x000097d2, 0x000097d2, 0x000097d2}, |
1206 | { 0x00009b74, 0x0000f7ca, 0x0000f7ca, 0x000097d6, 0x000097d6, 0x000097d6 }, | 1204 | {0x00009b74, 0x0000f7ca, 0x0000f7ca, 0x000097d6, 0x000097d6, 0x000097d6}, |
1207 | { 0x00009b78, 0x0000f7ce, 0x0000f7ce, 0x000097c3, 0x000097c3, 0x000097c3 }, | 1205 | {0x00009b78, 0x0000f7ce, 0x0000f7ce, 0x000097c3, 0x000097c3, 0x000097c3}, |
1208 | { 0x00009b7c, 0x0000f7d2, 0x0000f7d2, 0x000097c7, 0x000097c7, 0x000097c7 }, | 1206 | {0x00009b7c, 0x0000f7d2, 0x0000f7d2, 0x000097c7, 0x000097c7, 0x000097c7}, |
1209 | { 0x00009b80, 0x0000f7d6, 0x0000f7d6, 0x000097cb, 0x000097cb, 0x000097cb }, | 1207 | {0x00009b80, 0x0000f7d6, 0x0000f7d6, 0x000097cb, 0x000097cb, 0x000097cb}, |
1210 | { 0x00009b84, 0x0000f7c3, 0x0000f7c3, 0x000097cf, 0x000097cf, 0x000097cf }, | 1208 | {0x00009b84, 0x0000f7c3, 0x0000f7c3, 0x000097cf, 0x000097cf, 0x000097cf}, |
1211 | { 0x00009b88, 0x0000f7c7, 0x0000f7c7, 0x000097d7, 0x000097d7, 0x000097d7 }, | 1209 | {0x00009b88, 0x0000f7c7, 0x0000f7c7, 0x000097d7, 0x000097d7, 0x000097d7}, |
1212 | { 0x00009b8c, 0x0000f7cb, 0x0000f7cb, 0x000097db, 0x000097db, 0x000097db }, | 1210 | {0x00009b8c, 0x0000f7cb, 0x0000f7cb, 0x000097db, 0x000097db, 0x000097db}, |
1213 | { 0x00009b90, 0x0000f7d3, 0x0000f7d3, 0x000097db, 0x000097db, 0x000097db }, | 1211 | {0x00009b90, 0x0000f7d3, 0x0000f7d3, 0x000097db, 0x000097db, 0x000097db}, |
1214 | { 0x00009b94, 0x0000f7d7, 0x0000f7d7, 0x000097db, 0x000097db, 0x000097db }, | 1212 | {0x00009b94, 0x0000f7d7, 0x0000f7d7, 0x000097db, 0x000097db, 0x000097db}, |
1215 | { 0x00009b98, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1213 | {0x00009b98, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1216 | { 0x00009b9c, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1214 | {0x00009b9c, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1217 | { 0x00009ba0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1215 | {0x00009ba0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1218 | { 0x00009ba4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1216 | {0x00009ba4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1219 | { 0x00009ba8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1217 | {0x00009ba8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1220 | { 0x00009bac, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1218 | {0x00009bac, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1221 | { 0x00009bb0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1219 | {0x00009bb0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1222 | { 0x00009bb4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1220 | {0x00009bb4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1223 | { 0x00009bb8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1221 | {0x00009bb8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1224 | { 0x00009bbc, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1222 | {0x00009bbc, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1225 | { 0x00009bc0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1223 | {0x00009bc0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1226 | { 0x00009bc4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1224 | {0x00009bc4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1227 | { 0x00009bc8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1225 | {0x00009bc8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1228 | { 0x00009bcc, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1226 | {0x00009bcc, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1229 | { 0x00009bd0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1227 | {0x00009bd0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1230 | { 0x00009bd4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1228 | {0x00009bd4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1231 | { 0x00009bd8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1229 | {0x00009bd8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1232 | { 0x00009bdc, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1230 | {0x00009bdc, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1233 | { 0x00009be0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1231 | {0x00009be0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1234 | { 0x00009be4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1232 | {0x00009be4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1235 | { 0x00009be8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1233 | {0x00009be8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1236 | { 0x00009bec, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1234 | {0x00009bec, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1237 | { 0x00009bf0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1235 | {0x00009bf0, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1238 | { 0x00009bf4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1236 | {0x00009bf4, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1239 | { 0x00009bf8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1237 | {0x00009bf8, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1240 | { 0x00009bfc, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db }, | 1238 | {0x00009bfc, 0x0000f7db, 0x0000f7db, 0x000097db, 0x000097db, 0x000097db}, |
1241 | { 0x00009848, 0x00001066, 0x00001066, 0x00001063, 0x00001063, 0x00001063 }, | 1239 | {0x00009848, 0x00001066, 0x00001066, 0x00001063, 0x00001063, 0x00001063}, |
1242 | { 0x0000a848, 0x00001066, 0x00001066, 0x00001063, 0x00001063, 0x00001063 }, | 1240 | {0x0000a848, 0x00001066, 0x00001066, 0x00001063, 0x00001063, 0x00001063}, |
1243 | }; | 1241 | }; |
1244 | 1242 | ||
1245 | static const u32 ar9280Modes_backoff_13db_rxgain_9280_2[][6] = { | 1243 | static const u32 ar9280Modes_backoff_13db_rxgain_9280_2[][6] = { |
1246 | { 0x00009a00, 0x00008184, 0x00008184, 0x00000290, 0x00000290, 0x00000290 }, | 1244 | {0x00009a00, 0x00008184, 0x00008184, 0x00000290, 0x00000290, 0x00000290}, |
1247 | { 0x00009a04, 0x00008188, 0x00008188, 0x00000300, 0x00000300, 0x00000300 }, | 1245 | {0x00009a04, 0x00008188, 0x00008188, 0x00000300, 0x00000300, 0x00000300}, |
1248 | { 0x00009a08, 0x0000818c, 0x0000818c, 0x00000304, 0x00000304, 0x00000304 }, | 1246 | {0x00009a08, 0x0000818c, 0x0000818c, 0x00000304, 0x00000304, 0x00000304}, |
1249 | { 0x00009a0c, 0x00008190, 0x00008190, 0x00000308, 0x00000308, 0x00000308 }, | 1247 | {0x00009a0c, 0x00008190, 0x00008190, 0x00000308, 0x00000308, 0x00000308}, |
1250 | { 0x00009a10, 0x00008194, 0x00008194, 0x0000030c, 0x0000030c, 0x0000030c }, | 1248 | {0x00009a10, 0x00008194, 0x00008194, 0x0000030c, 0x0000030c, 0x0000030c}, |
1251 | { 0x00009a14, 0x00008200, 0x00008200, 0x00008000, 0x00008000, 0x00008000 }, | 1249 | {0x00009a14, 0x00008200, 0x00008200, 0x00008000, 0x00008000, 0x00008000}, |
1252 | { 0x00009a18, 0x00008204, 0x00008204, 0x00008004, 0x00008004, 0x00008004 }, | 1250 | {0x00009a18, 0x00008204, 0x00008204, 0x00008004, 0x00008004, 0x00008004}, |
1253 | { 0x00009a1c, 0x00008208, 0x00008208, 0x00008008, 0x00008008, 0x00008008 }, | 1251 | {0x00009a1c, 0x00008208, 0x00008208, 0x00008008, 0x00008008, 0x00008008}, |
1254 | { 0x00009a20, 0x0000820c, 0x0000820c, 0x0000800c, 0x0000800c, 0x0000800c }, | 1252 | {0x00009a20, 0x0000820c, 0x0000820c, 0x0000800c, 0x0000800c, 0x0000800c}, |
1255 | { 0x00009a24, 0x00008210, 0x00008210, 0x00008080, 0x00008080, 0x00008080 }, | 1253 | {0x00009a24, 0x00008210, 0x00008210, 0x00008080, 0x00008080, 0x00008080}, |
1256 | { 0x00009a28, 0x00008214, 0x00008214, 0x00008084, 0x00008084, 0x00008084 }, | 1254 | {0x00009a28, 0x00008214, 0x00008214, 0x00008084, 0x00008084, 0x00008084}, |
1257 | { 0x00009a2c, 0x00008280, 0x00008280, 0x00008088, 0x00008088, 0x00008088 }, | 1255 | {0x00009a2c, 0x00008280, 0x00008280, 0x00008088, 0x00008088, 0x00008088}, |
1258 | { 0x00009a30, 0x00008284, 0x00008284, 0x0000808c, 0x0000808c, 0x0000808c }, | 1256 | {0x00009a30, 0x00008284, 0x00008284, 0x0000808c, 0x0000808c, 0x0000808c}, |
1259 | { 0x00009a34, 0x00008288, 0x00008288, 0x00008100, 0x00008100, 0x00008100 }, | 1257 | {0x00009a34, 0x00008288, 0x00008288, 0x00008100, 0x00008100, 0x00008100}, |
1260 | { 0x00009a38, 0x0000828c, 0x0000828c, 0x00008104, 0x00008104, 0x00008104 }, | 1258 | {0x00009a38, 0x0000828c, 0x0000828c, 0x00008104, 0x00008104, 0x00008104}, |
1261 | { 0x00009a3c, 0x00008290, 0x00008290, 0x00008108, 0x00008108, 0x00008108 }, | 1259 | {0x00009a3c, 0x00008290, 0x00008290, 0x00008108, 0x00008108, 0x00008108}, |
1262 | { 0x00009a40, 0x00008300, 0x00008300, 0x0000810c, 0x0000810c, 0x0000810c }, | 1260 | {0x00009a40, 0x00008300, 0x00008300, 0x0000810c, 0x0000810c, 0x0000810c}, |
1263 | { 0x00009a44, 0x00008304, 0x00008304, 0x00008110, 0x00008110, 0x00008110 }, | 1261 | {0x00009a44, 0x00008304, 0x00008304, 0x00008110, 0x00008110, 0x00008110}, |
1264 | { 0x00009a48, 0x00008308, 0x00008308, 0x00008114, 0x00008114, 0x00008114 }, | 1262 | {0x00009a48, 0x00008308, 0x00008308, 0x00008114, 0x00008114, 0x00008114}, |
1265 | { 0x00009a4c, 0x0000830c, 0x0000830c, 0x00008180, 0x00008180, 0x00008180 }, | 1263 | {0x00009a4c, 0x0000830c, 0x0000830c, 0x00008180, 0x00008180, 0x00008180}, |
1266 | { 0x00009a50, 0x00008310, 0x00008310, 0x00008184, 0x00008184, 0x00008184 }, | 1264 | {0x00009a50, 0x00008310, 0x00008310, 0x00008184, 0x00008184, 0x00008184}, |
1267 | { 0x00009a54, 0x00008314, 0x00008314, 0x00008188, 0x00008188, 0x00008188 }, | 1265 | {0x00009a54, 0x00008314, 0x00008314, 0x00008188, 0x00008188, 0x00008188}, |
1268 | { 0x00009a58, 0x00008380, 0x00008380, 0x0000818c, 0x0000818c, 0x0000818c }, | 1266 | {0x00009a58, 0x00008380, 0x00008380, 0x0000818c, 0x0000818c, 0x0000818c}, |
1269 | { 0x00009a5c, 0x00008384, 0x00008384, 0x00008190, 0x00008190, 0x00008190 }, | 1267 | {0x00009a5c, 0x00008384, 0x00008384, 0x00008190, 0x00008190, 0x00008190}, |
1270 | { 0x00009a60, 0x00008388, 0x00008388, 0x00008194, 0x00008194, 0x00008194 }, | 1268 | {0x00009a60, 0x00008388, 0x00008388, 0x00008194, 0x00008194, 0x00008194}, |
1271 | { 0x00009a64, 0x0000838c, 0x0000838c, 0x000081a0, 0x000081a0, 0x000081a0 }, | 1269 | {0x00009a64, 0x0000838c, 0x0000838c, 0x000081a0, 0x000081a0, 0x000081a0}, |
1272 | { 0x00009a68, 0x00008390, 0x00008390, 0x0000820c, 0x0000820c, 0x0000820c }, | 1270 | {0x00009a68, 0x00008390, 0x00008390, 0x0000820c, 0x0000820c, 0x0000820c}, |
1273 | { 0x00009a6c, 0x00008394, 0x00008394, 0x000081a8, 0x000081a8, 0x000081a8 }, | 1271 | {0x00009a6c, 0x00008394, 0x00008394, 0x000081a8, 0x000081a8, 0x000081a8}, |
1274 | { 0x00009a70, 0x0000a380, 0x0000a380, 0x00008284, 0x00008284, 0x00008284 }, | 1272 | {0x00009a70, 0x0000a380, 0x0000a380, 0x00008284, 0x00008284, 0x00008284}, |
1275 | { 0x00009a74, 0x0000a384, 0x0000a384, 0x00008288, 0x00008288, 0x00008288 }, | 1273 | {0x00009a74, 0x0000a384, 0x0000a384, 0x00008288, 0x00008288, 0x00008288}, |
1276 | { 0x00009a78, 0x0000a388, 0x0000a388, 0x00008224, 0x00008224, 0x00008224 }, | 1274 | {0x00009a78, 0x0000a388, 0x0000a388, 0x00008224, 0x00008224, 0x00008224}, |
1277 | { 0x00009a7c, 0x0000a38c, 0x0000a38c, 0x00008290, 0x00008290, 0x00008290 }, | 1275 | {0x00009a7c, 0x0000a38c, 0x0000a38c, 0x00008290, 0x00008290, 0x00008290}, |
1278 | { 0x00009a80, 0x0000a390, 0x0000a390, 0x00008300, 0x00008300, 0x00008300 }, | 1276 | {0x00009a80, 0x0000a390, 0x0000a390, 0x00008300, 0x00008300, 0x00008300}, |
1279 | { 0x00009a84, 0x0000a394, 0x0000a394, 0x00008304, 0x00008304, 0x00008304 }, | 1277 | {0x00009a84, 0x0000a394, 0x0000a394, 0x00008304, 0x00008304, 0x00008304}, |
1280 | { 0x00009a88, 0x0000a780, 0x0000a780, 0x00008308, 0x00008308, 0x00008308 }, | 1278 | {0x00009a88, 0x0000a780, 0x0000a780, 0x00008308, 0x00008308, 0x00008308}, |
1281 | { 0x00009a8c, 0x0000a784, 0x0000a784, 0x0000830c, 0x0000830c, 0x0000830c }, | 1279 | {0x00009a8c, 0x0000a784, 0x0000a784, 0x0000830c, 0x0000830c, 0x0000830c}, |
1282 | { 0x00009a90, 0x0000a788, 0x0000a788, 0x00008380, 0x00008380, 0x00008380 }, | 1280 | {0x00009a90, 0x0000a788, 0x0000a788, 0x00008380, 0x00008380, 0x00008380}, |
1283 | { 0x00009a94, 0x0000a78c, 0x0000a78c, 0x00008384, 0x00008384, 0x00008384 }, | 1281 | {0x00009a94, 0x0000a78c, 0x0000a78c, 0x00008384, 0x00008384, 0x00008384}, |
1284 | { 0x00009a98, 0x0000a790, 0x0000a790, 0x00008700, 0x00008700, 0x00008700 }, | 1282 | {0x00009a98, 0x0000a790, 0x0000a790, 0x00008700, 0x00008700, 0x00008700}, |
1285 | { 0x00009a9c, 0x0000a794, 0x0000a794, 0x00008704, 0x00008704, 0x00008704 }, | 1283 | {0x00009a9c, 0x0000a794, 0x0000a794, 0x00008704, 0x00008704, 0x00008704}, |
1286 | { 0x00009aa0, 0x0000ab84, 0x0000ab84, 0x00008708, 0x00008708, 0x00008708 }, | 1284 | {0x00009aa0, 0x0000ab84, 0x0000ab84, 0x00008708, 0x00008708, 0x00008708}, |
1287 | { 0x00009aa4, 0x0000ab88, 0x0000ab88, 0x0000870c, 0x0000870c, 0x0000870c }, | 1285 | {0x00009aa4, 0x0000ab88, 0x0000ab88, 0x0000870c, 0x0000870c, 0x0000870c}, |
1288 | { 0x00009aa8, 0x0000ab8c, 0x0000ab8c, 0x00008780, 0x00008780, 0x00008780 }, | 1286 | {0x00009aa8, 0x0000ab8c, 0x0000ab8c, 0x00008780, 0x00008780, 0x00008780}, |
1289 | { 0x00009aac, 0x0000ab90, 0x0000ab90, 0x00008784, 0x00008784, 0x00008784 }, | 1287 | {0x00009aac, 0x0000ab90, 0x0000ab90, 0x00008784, 0x00008784, 0x00008784}, |
1290 | { 0x00009ab0, 0x0000ab94, 0x0000ab94, 0x00008b00, 0x00008b00, 0x00008b00 }, | 1288 | {0x00009ab0, 0x0000ab94, 0x0000ab94, 0x00008b00, 0x00008b00, 0x00008b00}, |
1291 | { 0x00009ab4, 0x0000af80, 0x0000af80, 0x00008b04, 0x00008b04, 0x00008b04 }, | 1289 | {0x00009ab4, 0x0000af80, 0x0000af80, 0x00008b04, 0x00008b04, 0x00008b04}, |
1292 | { 0x00009ab8, 0x0000af84, 0x0000af84, 0x00008b08, 0x00008b08, 0x00008b08 }, | 1290 | {0x00009ab8, 0x0000af84, 0x0000af84, 0x00008b08, 0x00008b08, 0x00008b08}, |
1293 | { 0x00009abc, 0x0000af88, 0x0000af88, 0x00008b0c, 0x00008b0c, 0x00008b0c }, | 1291 | {0x00009abc, 0x0000af88, 0x0000af88, 0x00008b0c, 0x00008b0c, 0x00008b0c}, |
1294 | { 0x00009ac0, 0x0000af8c, 0x0000af8c, 0x00008b80, 0x00008b80, 0x00008b80 }, | 1292 | {0x00009ac0, 0x0000af8c, 0x0000af8c, 0x00008b80, 0x00008b80, 0x00008b80}, |
1295 | { 0x00009ac4, 0x0000af90, 0x0000af90, 0x00008b84, 0x00008b84, 0x00008b84 }, | 1293 | {0x00009ac4, 0x0000af90, 0x0000af90, 0x00008b84, 0x00008b84, 0x00008b84}, |
1296 | { 0x00009ac8, 0x0000af94, 0x0000af94, 0x00008b88, 0x00008b88, 0x00008b88 }, | 1294 | {0x00009ac8, 0x0000af94, 0x0000af94, 0x00008b88, 0x00008b88, 0x00008b88}, |
1297 | { 0x00009acc, 0x0000b380, 0x0000b380, 0x00008b8c, 0x00008b8c, 0x00008b8c }, | 1295 | {0x00009acc, 0x0000b380, 0x0000b380, 0x00008b8c, 0x00008b8c, 0x00008b8c}, |
1298 | { 0x00009ad0, 0x0000b384, 0x0000b384, 0x00008b90, 0x00008b90, 0x00008b90 }, | 1296 | {0x00009ad0, 0x0000b384, 0x0000b384, 0x00008b90, 0x00008b90, 0x00008b90}, |
1299 | { 0x00009ad4, 0x0000b388, 0x0000b388, 0x00008f80, 0x00008f80, 0x00008f80 }, | 1297 | {0x00009ad4, 0x0000b388, 0x0000b388, 0x00008f80, 0x00008f80, 0x00008f80}, |
1300 | { 0x00009ad8, 0x0000b38c, 0x0000b38c, 0x00008f84, 0x00008f84, 0x00008f84 }, | 1298 | {0x00009ad8, 0x0000b38c, 0x0000b38c, 0x00008f84, 0x00008f84, 0x00008f84}, |
1301 | { 0x00009adc, 0x0000b390, 0x0000b390, 0x00008f88, 0x00008f88, 0x00008f88 }, | 1299 | {0x00009adc, 0x0000b390, 0x0000b390, 0x00008f88, 0x00008f88, 0x00008f88}, |
1302 | { 0x00009ae0, 0x0000b394, 0x0000b394, 0x00008f8c, 0x00008f8c, 0x00008f8c }, | 1300 | {0x00009ae0, 0x0000b394, 0x0000b394, 0x00008f8c, 0x00008f8c, 0x00008f8c}, |
1303 | { 0x00009ae4, 0x0000b398, 0x0000b398, 0x00008f90, 0x00008f90, 0x00008f90 }, | 1301 | {0x00009ae4, 0x0000b398, 0x0000b398, 0x00008f90, 0x00008f90, 0x00008f90}, |
1304 | { 0x00009ae8, 0x0000b780, 0x0000b780, 0x00009310, 0x00009310, 0x00009310 }, | 1302 | {0x00009ae8, 0x0000b780, 0x0000b780, 0x00009310, 0x00009310, 0x00009310}, |
1305 | { 0x00009aec, 0x0000b784, 0x0000b784, 0x00009314, 0x00009314, 0x00009314 }, | 1303 | {0x00009aec, 0x0000b784, 0x0000b784, 0x00009314, 0x00009314, 0x00009314}, |
1306 | { 0x00009af0, 0x0000b788, 0x0000b788, 0x00009320, 0x00009320, 0x00009320 }, | 1304 | {0x00009af0, 0x0000b788, 0x0000b788, 0x00009320, 0x00009320, 0x00009320}, |
1307 | { 0x00009af4, 0x0000b78c, 0x0000b78c, 0x00009324, 0x00009324, 0x00009324 }, | 1305 | {0x00009af4, 0x0000b78c, 0x0000b78c, 0x00009324, 0x00009324, 0x00009324}, |
1308 | { 0x00009af8, 0x0000b790, 0x0000b790, 0x00009328, 0x00009328, 0x00009328 }, | 1306 | {0x00009af8, 0x0000b790, 0x0000b790, 0x00009328, 0x00009328, 0x00009328}, |
1309 | { 0x00009afc, 0x0000b794, 0x0000b794, 0x0000932c, 0x0000932c, 0x0000932c }, | 1307 | {0x00009afc, 0x0000b794, 0x0000b794, 0x0000932c, 0x0000932c, 0x0000932c}, |
1310 | { 0x00009b00, 0x0000b798, 0x0000b798, 0x00009330, 0x00009330, 0x00009330 }, | 1308 | {0x00009b00, 0x0000b798, 0x0000b798, 0x00009330, 0x00009330, 0x00009330}, |
1311 | { 0x00009b04, 0x0000d784, 0x0000d784, 0x00009334, 0x00009334, 0x00009334 }, | 1309 | {0x00009b04, 0x0000d784, 0x0000d784, 0x00009334, 0x00009334, 0x00009334}, |
1312 | { 0x00009b08, 0x0000d788, 0x0000d788, 0x00009321, 0x00009321, 0x00009321 }, | 1310 | {0x00009b08, 0x0000d788, 0x0000d788, 0x00009321, 0x00009321, 0x00009321}, |
1313 | { 0x00009b0c, 0x0000d78c, 0x0000d78c, 0x00009325, 0x00009325, 0x00009325 }, | 1311 | {0x00009b0c, 0x0000d78c, 0x0000d78c, 0x00009325, 0x00009325, 0x00009325}, |
1314 | { 0x00009b10, 0x0000d790, 0x0000d790, 0x00009329, 0x00009329, 0x00009329 }, | 1312 | {0x00009b10, 0x0000d790, 0x0000d790, 0x00009329, 0x00009329, 0x00009329}, |
1315 | { 0x00009b14, 0x0000f780, 0x0000f780, 0x0000932d, 0x0000932d, 0x0000932d }, | 1313 | {0x00009b14, 0x0000f780, 0x0000f780, 0x0000932d, 0x0000932d, 0x0000932d}, |
1316 | { 0x00009b18, 0x0000f784, 0x0000f784, 0x00009331, 0x00009331, 0x00009331 }, | 1314 | {0x00009b18, 0x0000f784, 0x0000f784, 0x00009331, 0x00009331, 0x00009331}, |
1317 | { 0x00009b1c, 0x0000f788, 0x0000f788, 0x00009335, 0x00009335, 0x00009335 }, | 1315 | {0x00009b1c, 0x0000f788, 0x0000f788, 0x00009335, 0x00009335, 0x00009335}, |
1318 | { 0x00009b20, 0x0000f78c, 0x0000f78c, 0x00009322, 0x00009322, 0x00009322 }, | 1316 | {0x00009b20, 0x0000f78c, 0x0000f78c, 0x00009322, 0x00009322, 0x00009322}, |
1319 | { 0x00009b24, 0x0000f790, 0x0000f790, 0x00009326, 0x00009326, 0x00009326 }, | 1317 | {0x00009b24, 0x0000f790, 0x0000f790, 0x00009326, 0x00009326, 0x00009326}, |
1320 | { 0x00009b28, 0x0000f794, 0x0000f794, 0x0000932a, 0x0000932a, 0x0000932a }, | 1318 | {0x00009b28, 0x0000f794, 0x0000f794, 0x0000932a, 0x0000932a, 0x0000932a}, |
1321 | { 0x00009b2c, 0x0000f7a4, 0x0000f7a4, 0x0000932e, 0x0000932e, 0x0000932e }, | 1319 | {0x00009b2c, 0x0000f7a4, 0x0000f7a4, 0x0000932e, 0x0000932e, 0x0000932e}, |
1322 | { 0x00009b30, 0x0000f7a8, 0x0000f7a8, 0x00009332, 0x00009332, 0x00009332 }, | 1320 | {0x00009b30, 0x0000f7a8, 0x0000f7a8, 0x00009332, 0x00009332, 0x00009332}, |
1323 | { 0x00009b34, 0x0000f7ac, 0x0000f7ac, 0x00009336, 0x00009336, 0x00009336 }, | 1321 | {0x00009b34, 0x0000f7ac, 0x0000f7ac, 0x00009336, 0x00009336, 0x00009336}, |
1324 | { 0x00009b38, 0x0000f7b0, 0x0000f7b0, 0x00009323, 0x00009323, 0x00009323 }, | 1322 | {0x00009b38, 0x0000f7b0, 0x0000f7b0, 0x00009323, 0x00009323, 0x00009323}, |
1325 | { 0x00009b3c, 0x0000f7b4, 0x0000f7b4, 0x00009327, 0x00009327, 0x00009327 }, | 1323 | {0x00009b3c, 0x0000f7b4, 0x0000f7b4, 0x00009327, 0x00009327, 0x00009327}, |
1326 | { 0x00009b40, 0x0000f7a1, 0x0000f7a1, 0x0000932b, 0x0000932b, 0x0000932b }, | 1324 | {0x00009b40, 0x0000f7a1, 0x0000f7a1, 0x0000932b, 0x0000932b, 0x0000932b}, |
1327 | { 0x00009b44, 0x0000f7a5, 0x0000f7a5, 0x0000932f, 0x0000932f, 0x0000932f }, | 1325 | {0x00009b44, 0x0000f7a5, 0x0000f7a5, 0x0000932f, 0x0000932f, 0x0000932f}, |
1328 | { 0x00009b48, 0x0000f7a9, 0x0000f7a9, 0x00009333, 0x00009333, 0x00009333 }, | 1326 | {0x00009b48, 0x0000f7a9, 0x0000f7a9, 0x00009333, 0x00009333, 0x00009333}, |
1329 | { 0x00009b4c, 0x0000f7ad, 0x0000f7ad, 0x00009337, 0x00009337, 0x00009337 }, | 1327 | {0x00009b4c, 0x0000f7ad, 0x0000f7ad, 0x00009337, 0x00009337, 0x00009337}, |
1330 | { 0x00009b50, 0x0000f7b1, 0x0000f7b1, 0x00009343, 0x00009343, 0x00009343 }, | 1328 | {0x00009b50, 0x0000f7b1, 0x0000f7b1, 0x00009343, 0x00009343, 0x00009343}, |
1331 | { 0x00009b54, 0x0000f7b5, 0x0000f7b5, 0x00009347, 0x00009347, 0x00009347 }, | 1329 | {0x00009b54, 0x0000f7b5, 0x0000f7b5, 0x00009347, 0x00009347, 0x00009347}, |
1332 | { 0x00009b58, 0x0000f7c5, 0x0000f7c5, 0x0000934b, 0x0000934b, 0x0000934b }, | 1330 | {0x00009b58, 0x0000f7c5, 0x0000f7c5, 0x0000934b, 0x0000934b, 0x0000934b}, |
1333 | { 0x00009b5c, 0x0000f7c9, 0x0000f7c9, 0x0000934f, 0x0000934f, 0x0000934f }, | 1331 | {0x00009b5c, 0x0000f7c9, 0x0000f7c9, 0x0000934f, 0x0000934f, 0x0000934f}, |
1334 | { 0x00009b60, 0x0000f7cd, 0x0000f7cd, 0x00009353, 0x00009353, 0x00009353 }, | 1332 | {0x00009b60, 0x0000f7cd, 0x0000f7cd, 0x00009353, 0x00009353, 0x00009353}, |
1335 | { 0x00009b64, 0x0000f7d1, 0x0000f7d1, 0x00009357, 0x00009357, 0x00009357 }, | 1333 | {0x00009b64, 0x0000f7d1, 0x0000f7d1, 0x00009357, 0x00009357, 0x00009357}, |
1336 | { 0x00009b68, 0x0000f7d5, 0x0000f7d5, 0x0000935b, 0x0000935b, 0x0000935b }, | 1334 | {0x00009b68, 0x0000f7d5, 0x0000f7d5, 0x0000935b, 0x0000935b, 0x0000935b}, |
1337 | { 0x00009b6c, 0x0000f7c2, 0x0000f7c2, 0x0000935b, 0x0000935b, 0x0000935b }, | 1335 | {0x00009b6c, 0x0000f7c2, 0x0000f7c2, 0x0000935b, 0x0000935b, 0x0000935b}, |
1338 | { 0x00009b70, 0x0000f7c6, 0x0000f7c6, 0x0000935b, 0x0000935b, 0x0000935b }, | 1336 | {0x00009b70, 0x0000f7c6, 0x0000f7c6, 0x0000935b, 0x0000935b, 0x0000935b}, |
1339 | { 0x00009b74, 0x0000f7ca, 0x0000f7ca, 0x0000935b, 0x0000935b, 0x0000935b }, | 1337 | {0x00009b74, 0x0000f7ca, 0x0000f7ca, 0x0000935b, 0x0000935b, 0x0000935b}, |
1340 | { 0x00009b78, 0x0000f7ce, 0x0000f7ce, 0x0000935b, 0x0000935b, 0x0000935b }, | 1338 | {0x00009b78, 0x0000f7ce, 0x0000f7ce, 0x0000935b, 0x0000935b, 0x0000935b}, |
1341 | { 0x00009b7c, 0x0000f7d2, 0x0000f7d2, 0x0000935b, 0x0000935b, 0x0000935b }, | 1339 | {0x00009b7c, 0x0000f7d2, 0x0000f7d2, 0x0000935b, 0x0000935b, 0x0000935b}, |
1342 | { 0x00009b80, 0x0000f7d6, 0x0000f7d6, 0x0000935b, 0x0000935b, 0x0000935b }, | 1340 | {0x00009b80, 0x0000f7d6, 0x0000f7d6, 0x0000935b, 0x0000935b, 0x0000935b}, |
1343 | { 0x00009b84, 0x0000f7c3, 0x0000f7c3, 0x0000935b, 0x0000935b, 0x0000935b }, | 1341 | {0x00009b84, 0x0000f7c3, 0x0000f7c3, 0x0000935b, 0x0000935b, 0x0000935b}, |
1344 | { 0x00009b88, 0x0000f7c7, 0x0000f7c7, 0x0000935b, 0x0000935b, 0x0000935b }, | 1342 | {0x00009b88, 0x0000f7c7, 0x0000f7c7, 0x0000935b, 0x0000935b, 0x0000935b}, |
1345 | { 0x00009b8c, 0x0000f7cb, 0x0000f7cb, 0x0000935b, 0x0000935b, 0x0000935b }, | 1343 | {0x00009b8c, 0x0000f7cb, 0x0000f7cb, 0x0000935b, 0x0000935b, 0x0000935b}, |
1346 | { 0x00009b90, 0x0000f7d3, 0x0000f7d3, 0x0000935b, 0x0000935b, 0x0000935b }, | 1344 | {0x00009b90, 0x0000f7d3, 0x0000f7d3, 0x0000935b, 0x0000935b, 0x0000935b}, |
1347 | { 0x00009b94, 0x0000f7d7, 0x0000f7d7, 0x0000935b, 0x0000935b, 0x0000935b }, | 1345 | {0x00009b94, 0x0000f7d7, 0x0000f7d7, 0x0000935b, 0x0000935b, 0x0000935b}, |
1348 | { 0x00009b98, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1346 | {0x00009b98, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1349 | { 0x00009b9c, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1347 | {0x00009b9c, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1350 | { 0x00009ba0, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1348 | {0x00009ba0, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1351 | { 0x00009ba4, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1349 | {0x00009ba4, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1352 | { 0x00009ba8, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1350 | {0x00009ba8, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1353 | { 0x00009bac, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1351 | {0x00009bac, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1354 | { 0x00009bb0, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1352 | {0x00009bb0, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1355 | { 0x00009bb4, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1353 | {0x00009bb4, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1356 | { 0x00009bb8, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1354 | {0x00009bb8, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1357 | { 0x00009bbc, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1355 | {0x00009bbc, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1358 | { 0x00009bc0, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1356 | {0x00009bc0, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1359 | { 0x00009bc4, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1357 | {0x00009bc4, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1360 | { 0x00009bc8, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1358 | {0x00009bc8, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1361 | { 0x00009bcc, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1359 | {0x00009bcc, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1362 | { 0x00009bd0, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1360 | {0x00009bd0, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1363 | { 0x00009bd4, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1361 | {0x00009bd4, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1364 | { 0x00009bd8, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1362 | {0x00009bd8, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1365 | { 0x00009bdc, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1363 | {0x00009bdc, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1366 | { 0x00009be0, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1364 | {0x00009be0, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1367 | { 0x00009be4, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1365 | {0x00009be4, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1368 | { 0x00009be8, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1366 | {0x00009be8, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1369 | { 0x00009bec, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1367 | {0x00009bec, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1370 | { 0x00009bf0, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1368 | {0x00009bf0, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1371 | { 0x00009bf4, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1369 | {0x00009bf4, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1372 | { 0x00009bf8, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1370 | {0x00009bf8, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1373 | { 0x00009bfc, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b }, | 1371 | {0x00009bfc, 0x0000f7db, 0x0000f7db, 0x0000935b, 0x0000935b, 0x0000935b}, |
1374 | { 0x00009848, 0x00001066, 0x00001066, 0x0000105a, 0x0000105a, 0x0000105a }, | 1372 | {0x00009848, 0x00001066, 0x00001066, 0x0000105a, 0x0000105a, 0x0000105a}, |
1375 | { 0x0000a848, 0x00001066, 0x00001066, 0x0000105a, 0x0000105a, 0x0000105a }, | 1373 | {0x0000a848, 0x00001066, 0x00001066, 0x0000105a, 0x0000105a, 0x0000105a}, |
1376 | }; | 1374 | }; |
1377 | 1375 | ||
1378 | static const u32 ar9280Modes_high_power_tx_gain_9280_2[][6] = { | 1376 | static const u32 ar9280Modes_high_power_tx_gain_9280_2[][6] = { |
1379 | { 0x0000a274, 0x0a19e652, 0x0a19e652, 0x0a1aa652, 0x0a1aa652, 0x0a1aa652 }, | 1377 | {0x0000a274, 0x0a19e652, 0x0a19e652, 0x0a1aa652, 0x0a1aa652, 0x0a1aa652}, |
1380 | { 0x0000a27c, 0x050739ce, 0x050739ce, 0x050739ce, 0x050739ce, 0x050739ce }, | 1378 | {0x0000a27c, 0x050739ce, 0x050739ce, 0x050739ce, 0x050739ce, 0x050739ce}, |
1381 | { 0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 1379 | {0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
1382 | { 0x0000a304, 0x00003002, 0x00003002, 0x00004002, 0x00004002, 0x00004002 }, | 1380 | {0x0000a304, 0x00003002, 0x00003002, 0x00004002, 0x00004002, 0x00004002}, |
1383 | { 0x0000a308, 0x00006004, 0x00006004, 0x00007008, 0x00007008, 0x00007008 }, | 1381 | {0x0000a308, 0x00006004, 0x00006004, 0x00007008, 0x00007008, 0x00007008}, |
1384 | { 0x0000a30c, 0x0000a006, 0x0000a006, 0x0000c010, 0x0000c010, 0x0000c010 }, | 1382 | {0x0000a30c, 0x0000a006, 0x0000a006, 0x0000c010, 0x0000c010, 0x0000c010}, |
1385 | { 0x0000a310, 0x0000e012, 0x0000e012, 0x00010012, 0x00010012, 0x00010012 }, | 1383 | {0x0000a310, 0x0000e012, 0x0000e012, 0x00010012, 0x00010012, 0x00010012}, |
1386 | { 0x0000a314, 0x00011014, 0x00011014, 0x00013014, 0x00013014, 0x00013014 }, | 1384 | {0x0000a314, 0x00011014, 0x00011014, 0x00013014, 0x00013014, 0x00013014}, |
1387 | { 0x0000a318, 0x0001504a, 0x0001504a, 0x0001820a, 0x0001820a, 0x0001820a }, | 1385 | {0x0000a318, 0x0001504a, 0x0001504a, 0x0001820a, 0x0001820a, 0x0001820a}, |
1388 | { 0x0000a31c, 0x0001904c, 0x0001904c, 0x0001b211, 0x0001b211, 0x0001b211 }, | 1386 | {0x0000a31c, 0x0001904c, 0x0001904c, 0x0001b211, 0x0001b211, 0x0001b211}, |
1389 | { 0x0000a320, 0x0001c04e, 0x0001c04e, 0x0001e213, 0x0001e213, 0x0001e213 }, | 1387 | {0x0000a320, 0x0001c04e, 0x0001c04e, 0x0001e213, 0x0001e213, 0x0001e213}, |
1390 | { 0x0000a324, 0x00021092, 0x00021092, 0x00022411, 0x00022411, 0x00022411 }, | 1388 | {0x0000a324, 0x00021092, 0x00021092, 0x00022411, 0x00022411, 0x00022411}, |
1391 | { 0x0000a328, 0x0002510a, 0x0002510a, 0x00025413, 0x00025413, 0x00025413 }, | 1389 | {0x0000a328, 0x0002510a, 0x0002510a, 0x00025413, 0x00025413, 0x00025413}, |
1392 | { 0x0000a32c, 0x0002910c, 0x0002910c, 0x00029811, 0x00029811, 0x00029811 }, | 1390 | {0x0000a32c, 0x0002910c, 0x0002910c, 0x00029811, 0x00029811, 0x00029811}, |
1393 | { 0x0000a330, 0x0002c18b, 0x0002c18b, 0x0002c813, 0x0002c813, 0x0002c813 }, | 1391 | {0x0000a330, 0x0002c18b, 0x0002c18b, 0x0002c813, 0x0002c813, 0x0002c813}, |
1394 | { 0x0000a334, 0x0002f1cc, 0x0002f1cc, 0x00030a14, 0x00030a14, 0x00030a14 }, | 1392 | {0x0000a334, 0x0002f1cc, 0x0002f1cc, 0x00030a14, 0x00030a14, 0x00030a14}, |
1395 | { 0x0000a338, 0x000321eb, 0x000321eb, 0x00035a50, 0x00035a50, 0x00035a50 }, | 1393 | {0x0000a338, 0x000321eb, 0x000321eb, 0x00035a50, 0x00035a50, 0x00035a50}, |
1396 | { 0x0000a33c, 0x000341ec, 0x000341ec, 0x00039c4c, 0x00039c4c, 0x00039c4c }, | 1394 | {0x0000a33c, 0x000341ec, 0x000341ec, 0x00039c4c, 0x00039c4c, 0x00039c4c}, |
1397 | { 0x0000a340, 0x000341ec, 0x000341ec, 0x0003de8a, 0x0003de8a, 0x0003de8a }, | 1395 | {0x0000a340, 0x000341ec, 0x000341ec, 0x0003de8a, 0x0003de8a, 0x0003de8a}, |
1398 | { 0x0000a344, 0x000341ec, 0x000341ec, 0x00042e92, 0x00042e92, 0x00042e92 }, | 1396 | {0x0000a344, 0x000341ec, 0x000341ec, 0x00042e92, 0x00042e92, 0x00042e92}, |
1399 | { 0x0000a348, 0x000341ec, 0x000341ec, 0x00046ed2, 0x00046ed2, 0x00046ed2 }, | 1397 | {0x0000a348, 0x000341ec, 0x000341ec, 0x00046ed2, 0x00046ed2, 0x00046ed2}, |
1400 | { 0x0000a34c, 0x000341ec, 0x000341ec, 0x0004bed5, 0x0004bed5, 0x0004bed5 }, | 1398 | {0x0000a34c, 0x000341ec, 0x000341ec, 0x0004bed5, 0x0004bed5, 0x0004bed5}, |
1401 | { 0x0000a350, 0x000341ec, 0x000341ec, 0x0004ff54, 0x0004ff54, 0x0004ff54 }, | 1399 | {0x0000a350, 0x000341ec, 0x000341ec, 0x0004ff54, 0x0004ff54, 0x0004ff54}, |
1402 | { 0x0000a354, 0x000341ec, 0x000341ec, 0x00055fd5, 0x00055fd5, 0x00055fd5 }, | 1400 | {0x0000a354, 0x000341ec, 0x000341ec, 0x00055fd5, 0x00055fd5, 0x00055fd5}, |
1403 | { 0x00007814, 0x00198eff, 0x00198eff, 0x00198eff, 0x00198eff, 0x00198eff }, | 1401 | {0x0000a3ec, 0x00f70081, 0x00f70081, 0x00f70081, 0x00f70081, 0x00f70081}, |
1404 | { 0x00007838, 0x00198eff, 0x00198eff, 0x00198eff, 0x00198eff, 0x00198eff }, | 1402 | {0x00007814, 0x00198eff, 0x00198eff, 0x00198eff, 0x00198eff, 0x00198eff}, |
1405 | { 0x0000781c, 0x00172000, 0x00172000, 0x00172000, 0x00172000, 0x00172000 }, | 1403 | {0x00007838, 0x00198eff, 0x00198eff, 0x00198eff, 0x00198eff, 0x00198eff}, |
1406 | { 0x00007840, 0x00172000, 0x00172000, 0x00172000, 0x00172000, 0x00172000 }, | 1404 | {0x0000781c, 0x00172000, 0x00172000, 0x00172000, 0x00172000, 0x00172000}, |
1407 | { 0x00007820, 0xf258a480, 0xf258a480, 0xf258a480, 0xf258a480, 0xf258a480 }, | 1405 | {0x00007840, 0x00172000, 0x00172000, 0x00172000, 0x00172000, 0x00172000}, |
1408 | { 0x00007844, 0xf258a480, 0xf258a480, 0xf258a480, 0xf258a480, 0xf258a480 }, | 1406 | {0x00007820, 0xf258a480, 0xf258a480, 0xf258a480, 0xf258a480, 0xf258a480}, |
1407 | {0x00007844, 0xf258a480, 0xf258a480, 0xf258a480, 0xf258a480, 0xf258a480}, | ||
1409 | }; | 1408 | }; |
1410 | 1409 | ||
1411 | static const u32 ar9280Modes_original_tx_gain_9280_2[][6] = { | 1410 | static const u32 ar9280Modes_original_tx_gain_9280_2[][6] = { |
1412 | { 0x0000a274, 0x0a19c652, 0x0a19c652, 0x0a1aa652, 0x0a1aa652, 0x0a1aa652 }, | 1411 | {0x0000a274, 0x0a19c652, 0x0a19c652, 0x0a1aa652, 0x0a1aa652, 0x0a1aa652}, |
1413 | { 0x0000a27c, 0x050701ce, 0x050701ce, 0x050701ce, 0x050701ce, 0x050701ce }, | 1412 | {0x0000a27c, 0x050701ce, 0x050701ce, 0x050701ce, 0x050701ce, 0x050701ce}, |
1414 | { 0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 1413 | {0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
1415 | { 0x0000a304, 0x00003002, 0x00003002, 0x00003002, 0x00003002, 0x00003002 }, | 1414 | {0x0000a304, 0x00003002, 0x00003002, 0x00003002, 0x00003002, 0x00003002}, |
1416 | { 0x0000a308, 0x00006004, 0x00006004, 0x00008009, 0x00008009, 0x00008009 }, | 1415 | {0x0000a308, 0x00006004, 0x00006004, 0x00008009, 0x00008009, 0x00008009}, |
1417 | { 0x0000a30c, 0x0000a006, 0x0000a006, 0x0000b00b, 0x0000b00b, 0x0000b00b }, | 1416 | {0x0000a30c, 0x0000a006, 0x0000a006, 0x0000b00b, 0x0000b00b, 0x0000b00b}, |
1418 | { 0x0000a310, 0x0000e012, 0x0000e012, 0x0000e012, 0x0000e012, 0x0000e012 }, | 1417 | {0x0000a310, 0x0000e012, 0x0000e012, 0x0000e012, 0x0000e012, 0x0000e012}, |
1419 | { 0x0000a314, 0x00011014, 0x00011014, 0x00012048, 0x00012048, 0x00012048 }, | 1418 | {0x0000a314, 0x00011014, 0x00011014, 0x00012048, 0x00012048, 0x00012048}, |
1420 | { 0x0000a318, 0x0001504a, 0x0001504a, 0x0001604a, 0x0001604a, 0x0001604a }, | 1419 | {0x0000a318, 0x0001504a, 0x0001504a, 0x0001604a, 0x0001604a, 0x0001604a}, |
1421 | { 0x0000a31c, 0x0001904c, 0x0001904c, 0x0001a211, 0x0001a211, 0x0001a211 }, | 1420 | {0x0000a31c, 0x0001904c, 0x0001904c, 0x0001a211, 0x0001a211, 0x0001a211}, |
1422 | { 0x0000a320, 0x0001c04e, 0x0001c04e, 0x0001e213, 0x0001e213, 0x0001e213 }, | 1421 | {0x0000a320, 0x0001c04e, 0x0001c04e, 0x0001e213, 0x0001e213, 0x0001e213}, |
1423 | { 0x0000a324, 0x00020092, 0x00020092, 0x0002121b, 0x0002121b, 0x0002121b }, | 1422 | {0x0000a324, 0x00020092, 0x00020092, 0x0002121b, 0x0002121b, 0x0002121b}, |
1424 | { 0x0000a328, 0x0002410a, 0x0002410a, 0x00024412, 0x00024412, 0x00024412 }, | 1423 | {0x0000a328, 0x0002410a, 0x0002410a, 0x00024412, 0x00024412, 0x00024412}, |
1425 | { 0x0000a32c, 0x0002710c, 0x0002710c, 0x00028414, 0x00028414, 0x00028414 }, | 1424 | {0x0000a32c, 0x0002710c, 0x0002710c, 0x00028414, 0x00028414, 0x00028414}, |
1426 | { 0x0000a330, 0x0002b18b, 0x0002b18b, 0x0002b44a, 0x0002b44a, 0x0002b44a }, | 1425 | {0x0000a330, 0x0002b18b, 0x0002b18b, 0x0002b44a, 0x0002b44a, 0x0002b44a}, |
1427 | { 0x0000a334, 0x0002e1cc, 0x0002e1cc, 0x00030649, 0x00030649, 0x00030649 }, | 1426 | {0x0000a334, 0x0002e1cc, 0x0002e1cc, 0x00030649, 0x00030649, 0x00030649}, |
1428 | { 0x0000a338, 0x000321ec, 0x000321ec, 0x0003364b, 0x0003364b, 0x0003364b }, | 1427 | {0x0000a338, 0x000321ec, 0x000321ec, 0x0003364b, 0x0003364b, 0x0003364b}, |
1429 | { 0x0000a33c, 0x000321ec, 0x000321ec, 0x00038a49, 0x00038a49, 0x00038a49 }, | 1428 | {0x0000a33c, 0x000321ec, 0x000321ec, 0x00038a49, 0x00038a49, 0x00038a49}, |
1430 | { 0x0000a340, 0x000321ec, 0x000321ec, 0x0003be48, 0x0003be48, 0x0003be48 }, | 1429 | {0x0000a340, 0x000321ec, 0x000321ec, 0x0003be48, 0x0003be48, 0x0003be48}, |
1431 | { 0x0000a344, 0x000321ec, 0x000321ec, 0x0003ee4a, 0x0003ee4a, 0x0003ee4a }, | 1430 | {0x0000a344, 0x000321ec, 0x000321ec, 0x0003ee4a, 0x0003ee4a, 0x0003ee4a}, |
1432 | { 0x0000a348, 0x000321ec, 0x000321ec, 0x00042e88, 0x00042e88, 0x00042e88 }, | 1431 | {0x0000a348, 0x000321ec, 0x000321ec, 0x00042e88, 0x00042e88, 0x00042e88}, |
1433 | { 0x0000a34c, 0x000321ec, 0x000321ec, 0x00046e8a, 0x00046e8a, 0x00046e8a }, | 1432 | {0x0000a34c, 0x000321ec, 0x000321ec, 0x00046e8a, 0x00046e8a, 0x00046e8a}, |
1434 | { 0x0000a350, 0x000321ec, 0x000321ec, 0x00049ec9, 0x00049ec9, 0x00049ec9 }, | 1433 | {0x0000a350, 0x000321ec, 0x000321ec, 0x00049ec9, 0x00049ec9, 0x00049ec9}, |
1435 | { 0x0000a354, 0x000321ec, 0x000321ec, 0x0004bf42, 0x0004bf42, 0x0004bf42 }, | 1434 | {0x0000a354, 0x000321ec, 0x000321ec, 0x0004bf42, 0x0004bf42, 0x0004bf42}, |
1436 | { 0x00007814, 0x0019beff, 0x0019beff, 0x0019beff, 0x0019beff, 0x0019beff }, | 1435 | {0x0000a3ec, 0x00f70081, 0x00f70081, 0x00f70081, 0x00f70081, 0x00f70081}, |
1437 | { 0x00007838, 0x0019beff, 0x0019beff, 0x0019beff, 0x0019beff, 0x0019beff }, | 1436 | {0x00007814, 0x0019beff, 0x0019beff, 0x0019beff, 0x0019beff, 0x0019beff}, |
1438 | { 0x0000781c, 0x00392000, 0x00392000, 0x00392000, 0x00392000, 0x00392000 }, | 1437 | {0x00007838, 0x0019beff, 0x0019beff, 0x0019beff, 0x0019beff, 0x0019beff}, |
1439 | { 0x00007840, 0x00392000, 0x00392000, 0x00392000, 0x00392000, 0x00392000 }, | 1438 | {0x0000781c, 0x00392000, 0x00392000, 0x00392000, 0x00392000, 0x00392000}, |
1440 | { 0x00007820, 0x92592480, 0x92592480, 0x92592480, 0x92592480, 0x92592480 }, | 1439 | {0x00007840, 0x00392000, 0x00392000, 0x00392000, 0x00392000, 0x00392000}, |
1441 | { 0x00007844, 0x92592480, 0x92592480, 0x92592480, 0x92592480, 0x92592480 }, | 1440 | {0x00007820, 0x92592480, 0x92592480, 0x92592480, 0x92592480, 0x92592480}, |
1441 | {0x00007844, 0x92592480, 0x92592480, 0x92592480, 0x92592480, 0x92592480}, | ||
1442 | }; | 1442 | }; |
1443 | 1443 | ||
1444 | static const u32 ar9280PciePhy_clkreq_off_L1_9280[][2] = { | 1444 | static const u32 ar9280PciePhy_clkreq_off_L1_9280[][2] = { |
1445 | {0x00004040, 0x9248fd00 }, | 1445 | /* Addr allmodes */ |
1446 | {0x00004040, 0x24924924 }, | 1446 | {0x00004040, 0x9248fd00}, |
1447 | {0x00004040, 0xa8000019 }, | 1447 | {0x00004040, 0x24924924}, |
1448 | {0x00004040, 0x13160820 }, | 1448 | {0x00004040, 0xa8000019}, |
1449 | {0x00004040, 0xe5980560 }, | 1449 | {0x00004040, 0x13160820}, |
1450 | {0x00004040, 0xc01dcffc }, | 1450 | {0x00004040, 0xe5980560}, |
1451 | {0x00004040, 0x1aaabe41 }, | 1451 | {0x00004040, 0xc01dcffc}, |
1452 | {0x00004040, 0xbe105554 }, | 1452 | {0x00004040, 0x1aaabe41}, |
1453 | {0x00004040, 0x00043007 }, | 1453 | {0x00004040, 0xbe105554}, |
1454 | {0x00004044, 0x00000000 }, | 1454 | {0x00004040, 0x00043007}, |
1455 | {0x00004044, 0x00000000}, | ||
1455 | }; | 1456 | }; |
1456 | 1457 | ||
1457 | static const u32 ar9280PciePhy_clkreq_always_on_L1_9280[][2] = { | 1458 | static const u32 ar9280PciePhy_clkreq_always_on_L1_9280[][2] = { |
1458 | {0x00004040, 0x9248fd00 }, | 1459 | /* Addr allmodes */ |
1459 | {0x00004040, 0x24924924 }, | 1460 | {0x00004040, 0x9248fd00}, |
1460 | {0x00004040, 0xa8000019 }, | 1461 | {0x00004040, 0x24924924}, |
1461 | {0x00004040, 0x13160820 }, | 1462 | {0x00004040, 0xa8000019}, |
1462 | {0x00004040, 0xe5980560 }, | 1463 | {0x00004040, 0x13160820}, |
1463 | {0x00004040, 0xc01dcffd }, | 1464 | {0x00004040, 0xe5980560}, |
1464 | {0x00004040, 0x1aaabe41 }, | 1465 | {0x00004040, 0xc01dcffd}, |
1465 | {0x00004040, 0xbe105554 }, | 1466 | {0x00004040, 0x1aaabe41}, |
1466 | {0x00004040, 0x00043007 }, | 1467 | {0x00004040, 0xbe105554}, |
1467 | {0x00004044, 0x00000000 }, | 1468 | {0x00004040, 0x00043007}, |
1469 | {0x00004044, 0x00000000}, | ||
1468 | }; | 1470 | }; |
1469 | 1471 | ||
1470 | /* AR9285 Revsion 10*/ | ||
1471 | static const u32 ar9285Modes_9285[][6] = { | 1472 | static const u32 ar9285Modes_9285[][6] = { |
1472 | { 0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0 }, | 1473 | {0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0}, |
1473 | { 0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0 }, | 1474 | {0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0}, |
1474 | { 0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180 }, | 1475 | {0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180}, |
1475 | { 0x000010f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008 }, | 1476 | {0x000010f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008}, |
1476 | { 0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00, 0x06e006e0 }, | 1477 | {0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00, 0x06e006e0}, |
1477 | { 0x0000801c, 0x128d8027, 0x128d804f, 0x12e00057, 0x12e0002b, 0x0988004f }, | 1478 | {0x0000801c, 0x128d8027, 0x128d804f, 0x12e00057, 0x12e0002b, 0x0988004f}, |
1478 | { 0x00008318, 0x00003e80, 0x00007d00, 0x00006880, 0x00003440, 0x00006880 }, | 1479 | {0x00008318, 0x00003e80, 0x00007d00, 0x00006880, 0x00003440, 0x00006880}, |
1479 | { 0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303 }, | 1480 | {0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303}, |
1480 | { 0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200 }, | 1481 | {0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200}, |
1481 | { 0x00009824, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }, | 1482 | {0x00009824, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, |
1482 | { 0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001 }, | 1483 | {0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001}, |
1483 | { 0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }, | 1484 | {0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, |
1484 | { 0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007 }, | 1485 | {0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007}, |
1485 | { 0x00009840, 0x206a012e, 0x206a012e, 0x206a012e, 0x206a012e, 0x206a012e }, | 1486 | {0x00009840, 0x206a012e, 0x206a012e, 0x206a012e, 0x206a012e, 0x206a012e}, |
1486 | { 0x00009844, 0x0372161e, 0x0372161e, 0x03720020, 0x03720020, 0x037216a0 }, | 1487 | {0x00009844, 0x0372161e, 0x0372161e, 0x03720020, 0x03720020, 0x037216a0}, |
1487 | { 0x00009848, 0x00001066, 0x00001066, 0x0000004e, 0x0000004e, 0x00001059 }, | 1488 | {0x00009848, 0x00001066, 0x00001066, 0x0000004e, 0x0000004e, 0x00001059}, |
1488 | { 0x00009850, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2 }, | 1489 | {0x00009850, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2}, |
1489 | { 0x00009858, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e }, | 1490 | {0x00009858, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e}, |
1490 | { 0x0000985c, 0x3139605e, 0x3139605e, 0x3136605e, 0x3136605e, 0x3139605e }, | 1491 | {0x0000985c, 0x3139605e, 0x3139605e, 0x3136605e, 0x3136605e, 0x3139605e}, |
1491 | { 0x00009860, 0x00058d18, 0x00058d18, 0x00058d20, 0x00058d20, 0x00058d18 }, | 1492 | {0x00009860, 0x00058d18, 0x00058d18, 0x00058d20, 0x00058d20, 0x00058d18}, |
1492 | { 0x00009864, 0x0000fe00, 0x0000fe00, 0x0001ce00, 0x0001ce00, 0x0001ce00 }, | 1493 | {0x00009864, 0x0000fe00, 0x0000fe00, 0x0001ce00, 0x0001ce00, 0x0001ce00}, |
1493 | { 0x00009868, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0 }, | 1494 | {0x00009868, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0}, |
1494 | { 0x0000986c, 0x06903081, 0x06903081, 0x06903881, 0x06903881, 0x06903881 }, | 1495 | {0x0000986c, 0x06903081, 0x06903081, 0x06903881, 0x06903881, 0x06903881}, |
1495 | { 0x00009914, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898, 0x000007d0 }, | 1496 | {0x00009914, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898, 0x000007d0}, |
1496 | { 0x00009918, 0x0000000a, 0x00000014, 0x00000016, 0x0000000b, 0x00000016 }, | 1497 | {0x00009918, 0x0000000a, 0x00000014, 0x00000016, 0x0000000b, 0x00000016}, |
1497 | { 0x00009924, 0xd00a8007, 0xd00a8007, 0xd00a800d, 0xd00a800d, 0xd00a800d }, | 1498 | {0x00009924, 0xd00a8007, 0xd00a8007, 0xd00a800d, 0xd00a800d, 0xd00a800d}, |
1498 | { 0x00009944, 0xdfbc1010, 0xdfbc1010, 0xdfbc1020, 0xdfbc1020, 0xdfbc1010 }, | 1499 | {0x00009944, 0xdfbc1010, 0xdfbc1010, 0xdfbc1020, 0xdfbc1020, 0xdfbc1010}, |
1499 | { 0x00009960, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 1500 | {0x00009960, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
1500 | { 0x00009964, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 1501 | {0x00009964, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
1501 | { 0x000099b8, 0x00cf4d1c, 0x00cf4d1c, 0x00cf4d1c, 0x00cf4d1c, 0x00cf4d1c }, | 1502 | {0x000099b8, 0x00cf4d1c, 0x00cf4d1c, 0x00cf4d1c, 0x00cf4d1c, 0x00cf4d1c}, |
1502 | { 0x000099bc, 0x00000600, 0x00000600, 0x00000c00, 0x00000c00, 0x00000c00 }, | 1503 | {0x000099bc, 0x00000600, 0x00000600, 0x00000c00, 0x00000c00, 0x00000c00}, |
1503 | { 0x000099c0, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4 }, | 1504 | {0x000099c0, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4}, |
1504 | { 0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77 }, | 1505 | {0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77}, |
1505 | { 0x000099c8, 0x60f65329, 0x60f65329, 0x60f65329, 0x60f65329, 0x60f65329 }, | 1506 | {0x000099c8, 0x60f65329, 0x60f65329, 0x60f65329, 0x60f65329, 0x60f65329}, |
1506 | { 0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8 }, | 1507 | {0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8}, |
1507 | { 0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384 }, | 1508 | {0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384}, |
1508 | { 0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 1509 | {0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
1509 | { 0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 1510 | {0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
1510 | { 0x00009a00, 0x00000000, 0x00000000, 0x00068084, 0x00068084, 0x00000000 }, | 1511 | {0x00009a00, 0x00000000, 0x00000000, 0x00068084, 0x00068084, 0x00000000}, |
1511 | { 0x00009a04, 0x00000000, 0x00000000, 0x00068088, 0x00068088, 0x00000000 }, | 1512 | {0x00009a04, 0x00000000, 0x00000000, 0x00068088, 0x00068088, 0x00000000}, |
1512 | { 0x00009a08, 0x00000000, 0x00000000, 0x0006808c, 0x0006808c, 0x00000000 }, | 1513 | {0x00009a08, 0x00000000, 0x00000000, 0x0006808c, 0x0006808c, 0x00000000}, |
1513 | { 0x00009a0c, 0x00000000, 0x00000000, 0x00068100, 0x00068100, 0x00000000 }, | 1514 | {0x00009a0c, 0x00000000, 0x00000000, 0x00068100, 0x00068100, 0x00000000}, |
1514 | { 0x00009a10, 0x00000000, 0x00000000, 0x00068104, 0x00068104, 0x00000000 }, | 1515 | {0x00009a10, 0x00000000, 0x00000000, 0x00068104, 0x00068104, 0x00000000}, |
1515 | { 0x00009a14, 0x00000000, 0x00000000, 0x00068108, 0x00068108, 0x00000000 }, | 1516 | {0x00009a14, 0x00000000, 0x00000000, 0x00068108, 0x00068108, 0x00000000}, |
1516 | { 0x00009a18, 0x00000000, 0x00000000, 0x0006810c, 0x0006810c, 0x00000000 }, | 1517 | {0x00009a18, 0x00000000, 0x00000000, 0x0006810c, 0x0006810c, 0x00000000}, |
1517 | { 0x00009a1c, 0x00000000, 0x00000000, 0x00068110, 0x00068110, 0x00000000 }, | 1518 | {0x00009a1c, 0x00000000, 0x00000000, 0x00068110, 0x00068110, 0x00000000}, |
1518 | { 0x00009a20, 0x00000000, 0x00000000, 0x00068114, 0x00068114, 0x00000000 }, | 1519 | {0x00009a20, 0x00000000, 0x00000000, 0x00068114, 0x00068114, 0x00000000}, |
1519 | { 0x00009a24, 0x00000000, 0x00000000, 0x00068180, 0x00068180, 0x00000000 }, | 1520 | {0x00009a24, 0x00000000, 0x00000000, 0x00068180, 0x00068180, 0x00000000}, |
1520 | { 0x00009a28, 0x00000000, 0x00000000, 0x00068184, 0x00068184, 0x00000000 }, | 1521 | {0x00009a28, 0x00000000, 0x00000000, 0x00068184, 0x00068184, 0x00000000}, |
1521 | { 0x00009a2c, 0x00000000, 0x00000000, 0x00068188, 0x00068188, 0x00000000 }, | 1522 | {0x00009a2c, 0x00000000, 0x00000000, 0x00068188, 0x00068188, 0x00000000}, |
1522 | { 0x00009a30, 0x00000000, 0x00000000, 0x0006818c, 0x0006818c, 0x00000000 }, | 1523 | {0x00009a30, 0x00000000, 0x00000000, 0x0006818c, 0x0006818c, 0x00000000}, |
1523 | { 0x00009a34, 0x00000000, 0x00000000, 0x00068190, 0x00068190, 0x00000000 }, | 1524 | {0x00009a34, 0x00000000, 0x00000000, 0x00068190, 0x00068190, 0x00000000}, |
1524 | { 0x00009a38, 0x00000000, 0x00000000, 0x00068194, 0x00068194, 0x00000000 }, | 1525 | {0x00009a38, 0x00000000, 0x00000000, 0x00068194, 0x00068194, 0x00000000}, |
1525 | { 0x00009a3c, 0x00000000, 0x00000000, 0x000681a0, 0x000681a0, 0x00000000 }, | 1526 | {0x00009a3c, 0x00000000, 0x00000000, 0x000681a0, 0x000681a0, 0x00000000}, |
1526 | { 0x00009a40, 0x00000000, 0x00000000, 0x0006820c, 0x0006820c, 0x00000000 }, | 1527 | {0x00009a40, 0x00000000, 0x00000000, 0x0006820c, 0x0006820c, 0x00000000}, |
1527 | { 0x00009a44, 0x00000000, 0x00000000, 0x000681a8, 0x000681a8, 0x00000000 }, | 1528 | {0x00009a44, 0x00000000, 0x00000000, 0x000681a8, 0x000681a8, 0x00000000}, |
1528 | { 0x00009a48, 0x00000000, 0x00000000, 0x00068284, 0x00068284, 0x00000000 }, | 1529 | {0x00009a48, 0x00000000, 0x00000000, 0x00068284, 0x00068284, 0x00000000}, |
1529 | { 0x00009a4c, 0x00000000, 0x00000000, 0x00068288, 0x00068288, 0x00000000 }, | 1530 | {0x00009a4c, 0x00000000, 0x00000000, 0x00068288, 0x00068288, 0x00000000}, |
1530 | { 0x00009a50, 0x00000000, 0x00000000, 0x00068220, 0x00068220, 0x00000000 }, | 1531 | {0x00009a50, 0x00000000, 0x00000000, 0x00068220, 0x00068220, 0x00000000}, |
1531 | { 0x00009a54, 0x00000000, 0x00000000, 0x00068290, 0x00068290, 0x00000000 }, | 1532 | {0x00009a54, 0x00000000, 0x00000000, 0x00068290, 0x00068290, 0x00000000}, |
1532 | { 0x00009a58, 0x00000000, 0x00000000, 0x00068300, 0x00068300, 0x00000000 }, | 1533 | {0x00009a58, 0x00000000, 0x00000000, 0x00068300, 0x00068300, 0x00000000}, |
1533 | { 0x00009a5c, 0x00000000, 0x00000000, 0x00068304, 0x00068304, 0x00000000 }, | 1534 | {0x00009a5c, 0x00000000, 0x00000000, 0x00068304, 0x00068304, 0x00000000}, |
1534 | { 0x00009a60, 0x00000000, 0x00000000, 0x00068308, 0x00068308, 0x00000000 }, | 1535 | {0x00009a60, 0x00000000, 0x00000000, 0x00068308, 0x00068308, 0x00000000}, |
1535 | { 0x00009a64, 0x00000000, 0x00000000, 0x0006830c, 0x0006830c, 0x00000000 }, | 1536 | {0x00009a64, 0x00000000, 0x00000000, 0x0006830c, 0x0006830c, 0x00000000}, |
1536 | { 0x00009a68, 0x00000000, 0x00000000, 0x00068380, 0x00068380, 0x00000000 }, | 1537 | {0x00009a68, 0x00000000, 0x00000000, 0x00068380, 0x00068380, 0x00000000}, |
1537 | { 0x00009a6c, 0x00000000, 0x00000000, 0x00068384, 0x00068384, 0x00000000 }, | 1538 | {0x00009a6c, 0x00000000, 0x00000000, 0x00068384, 0x00068384, 0x00000000}, |
1538 | { 0x00009a70, 0x00000000, 0x00000000, 0x00068700, 0x00068700, 0x00000000 }, | 1539 | {0x00009a70, 0x00000000, 0x00000000, 0x00068700, 0x00068700, 0x00000000}, |
1539 | { 0x00009a74, 0x00000000, 0x00000000, 0x00068704, 0x00068704, 0x00000000 }, | 1540 | {0x00009a74, 0x00000000, 0x00000000, 0x00068704, 0x00068704, 0x00000000}, |
1540 | { 0x00009a78, 0x00000000, 0x00000000, 0x00068708, 0x00068708, 0x00000000 }, | 1541 | {0x00009a78, 0x00000000, 0x00000000, 0x00068708, 0x00068708, 0x00000000}, |
1541 | { 0x00009a7c, 0x00000000, 0x00000000, 0x0006870c, 0x0006870c, 0x00000000 }, | 1542 | {0x00009a7c, 0x00000000, 0x00000000, 0x0006870c, 0x0006870c, 0x00000000}, |
1542 | { 0x00009a80, 0x00000000, 0x00000000, 0x00068780, 0x00068780, 0x00000000 }, | 1543 | {0x00009a80, 0x00000000, 0x00000000, 0x00068780, 0x00068780, 0x00000000}, |
1543 | { 0x00009a84, 0x00000000, 0x00000000, 0x00068784, 0x00068784, 0x00000000 }, | 1544 | {0x00009a84, 0x00000000, 0x00000000, 0x00068784, 0x00068784, 0x00000000}, |
1544 | { 0x00009a88, 0x00000000, 0x00000000, 0x00068b04, 0x00068b04, 0x00000000 }, | 1545 | {0x00009a88, 0x00000000, 0x00000000, 0x00068b04, 0x00068b04, 0x00000000}, |
1545 | { 0x00009a8c, 0x00000000, 0x00000000, 0x00068b08, 0x00068b08, 0x00000000 }, | 1546 | {0x00009a8c, 0x00000000, 0x00000000, 0x00068b08, 0x00068b08, 0x00000000}, |
1546 | { 0x00009a90, 0x00000000, 0x00000000, 0x00068b08, 0x00068b08, 0x00000000 }, | 1547 | {0x00009a90, 0x00000000, 0x00000000, 0x00068b08, 0x00068b08, 0x00000000}, |
1547 | { 0x00009a94, 0x00000000, 0x00000000, 0x00068b0c, 0x00068b0c, 0x00000000 }, | 1548 | {0x00009a94, 0x00000000, 0x00000000, 0x00068b0c, 0x00068b0c, 0x00000000}, |
1548 | { 0x00009a98, 0x00000000, 0x00000000, 0x00068b80, 0x00068b80, 0x00000000 }, | 1549 | {0x00009a98, 0x00000000, 0x00000000, 0x00068b80, 0x00068b80, 0x00000000}, |
1549 | { 0x00009a9c, 0x00000000, 0x00000000, 0x00068b84, 0x00068b84, 0x00000000 }, | 1550 | {0x00009a9c, 0x00000000, 0x00000000, 0x00068b84, 0x00068b84, 0x00000000}, |
1550 | { 0x00009aa0, 0x00000000, 0x00000000, 0x00068b88, 0x00068b88, 0x00000000 }, | 1551 | {0x00009aa0, 0x00000000, 0x00000000, 0x00068b88, 0x00068b88, 0x00000000}, |
1551 | { 0x00009aa4, 0x00000000, 0x00000000, 0x00068b8c, 0x00068b8c, 0x00000000 }, | 1552 | {0x00009aa4, 0x00000000, 0x00000000, 0x00068b8c, 0x00068b8c, 0x00000000}, |
1552 | { 0x00009aa8, 0x00000000, 0x00000000, 0x000b8b90, 0x000b8b90, 0x00000000 }, | 1553 | {0x00009aa8, 0x00000000, 0x00000000, 0x000b8b90, 0x000b8b90, 0x00000000}, |
1553 | { 0x00009aac, 0x00000000, 0x00000000, 0x000b8f80, 0x000b8f80, 0x00000000 }, | 1554 | {0x00009aac, 0x00000000, 0x00000000, 0x000b8f80, 0x000b8f80, 0x00000000}, |
1554 | { 0x00009ab0, 0x00000000, 0x00000000, 0x000b8f84, 0x000b8f84, 0x00000000 }, | 1555 | {0x00009ab0, 0x00000000, 0x00000000, 0x000b8f84, 0x000b8f84, 0x00000000}, |
1555 | { 0x00009ab4, 0x00000000, 0x00000000, 0x000b8f88, 0x000b8f88, 0x00000000 }, | 1556 | {0x00009ab4, 0x00000000, 0x00000000, 0x000b8f88, 0x000b8f88, 0x00000000}, |
1556 | { 0x00009ab8, 0x00000000, 0x00000000, 0x000b8f8c, 0x000b8f8c, 0x00000000 }, | 1557 | {0x00009ab8, 0x00000000, 0x00000000, 0x000b8f8c, 0x000b8f8c, 0x00000000}, |
1557 | { 0x00009abc, 0x00000000, 0x00000000, 0x000b8f90, 0x000b8f90, 0x00000000 }, | 1558 | {0x00009abc, 0x00000000, 0x00000000, 0x000b8f90, 0x000b8f90, 0x00000000}, |
1558 | { 0x00009ac0, 0x00000000, 0x00000000, 0x000bb30c, 0x000bb30c, 0x00000000 }, | 1559 | {0x00009ac0, 0x00000000, 0x00000000, 0x000bb30c, 0x000bb30c, 0x00000000}, |
1559 | { 0x00009ac4, 0x00000000, 0x00000000, 0x000bb310, 0x000bb310, 0x00000000 }, | 1560 | {0x00009ac4, 0x00000000, 0x00000000, 0x000bb310, 0x000bb310, 0x00000000}, |
1560 | { 0x00009ac8, 0x00000000, 0x00000000, 0x000bb384, 0x000bb384, 0x00000000 }, | 1561 | {0x00009ac8, 0x00000000, 0x00000000, 0x000bb384, 0x000bb384, 0x00000000}, |
1561 | { 0x00009acc, 0x00000000, 0x00000000, 0x000bb388, 0x000bb388, 0x00000000 }, | 1562 | {0x00009acc, 0x00000000, 0x00000000, 0x000bb388, 0x000bb388, 0x00000000}, |
1562 | { 0x00009ad0, 0x00000000, 0x00000000, 0x000bb324, 0x000bb324, 0x00000000 }, | 1563 | {0x00009ad0, 0x00000000, 0x00000000, 0x000bb324, 0x000bb324, 0x00000000}, |
1563 | { 0x00009ad4, 0x00000000, 0x00000000, 0x000bb704, 0x000bb704, 0x00000000 }, | 1564 | {0x00009ad4, 0x00000000, 0x00000000, 0x000bb704, 0x000bb704, 0x00000000}, |
1564 | { 0x00009ad8, 0x00000000, 0x00000000, 0x000f96a4, 0x000f96a4, 0x00000000 }, | 1565 | {0x00009ad8, 0x00000000, 0x00000000, 0x000f96a4, 0x000f96a4, 0x00000000}, |
1565 | { 0x00009adc, 0x00000000, 0x00000000, 0x000f96a8, 0x000f96a8, 0x00000000 }, | 1566 | {0x00009adc, 0x00000000, 0x00000000, 0x000f96a8, 0x000f96a8, 0x00000000}, |
1566 | { 0x00009ae0, 0x00000000, 0x00000000, 0x000f9710, 0x000f9710, 0x00000000 }, | 1567 | {0x00009ae0, 0x00000000, 0x00000000, 0x000f9710, 0x000f9710, 0x00000000}, |
1567 | { 0x00009ae4, 0x00000000, 0x00000000, 0x000f9714, 0x000f9714, 0x00000000 }, | 1568 | {0x00009ae4, 0x00000000, 0x00000000, 0x000f9714, 0x000f9714, 0x00000000}, |
1568 | { 0x00009ae8, 0x00000000, 0x00000000, 0x000f9720, 0x000f9720, 0x00000000 }, | 1569 | {0x00009ae8, 0x00000000, 0x00000000, 0x000f9720, 0x000f9720, 0x00000000}, |
1569 | { 0x00009aec, 0x00000000, 0x00000000, 0x000f9724, 0x000f9724, 0x00000000 }, | 1570 | {0x00009aec, 0x00000000, 0x00000000, 0x000f9724, 0x000f9724, 0x00000000}, |
1570 | { 0x00009af0, 0x00000000, 0x00000000, 0x000f9728, 0x000f9728, 0x00000000 }, | 1571 | {0x00009af0, 0x00000000, 0x00000000, 0x000f9728, 0x000f9728, 0x00000000}, |
1571 | { 0x00009af4, 0x00000000, 0x00000000, 0x000f972c, 0x000f972c, 0x00000000 }, | 1572 | {0x00009af4, 0x00000000, 0x00000000, 0x000f972c, 0x000f972c, 0x00000000}, |
1572 | { 0x00009af8, 0x00000000, 0x00000000, 0x000f97a0, 0x000f97a0, 0x00000000 }, | 1573 | {0x00009af8, 0x00000000, 0x00000000, 0x000f97a0, 0x000f97a0, 0x00000000}, |
1573 | { 0x00009afc, 0x00000000, 0x00000000, 0x000f97a4, 0x000f97a4, 0x00000000 }, | 1574 | {0x00009afc, 0x00000000, 0x00000000, 0x000f97a4, 0x000f97a4, 0x00000000}, |
1574 | { 0x00009b00, 0x00000000, 0x00000000, 0x000fb7a8, 0x000fb7a8, 0x00000000 }, | 1575 | {0x00009b00, 0x00000000, 0x00000000, 0x000fb7a8, 0x000fb7a8, 0x00000000}, |
1575 | { 0x00009b04, 0x00000000, 0x00000000, 0x000fb7b0, 0x000fb7b0, 0x00000000 }, | 1576 | {0x00009b04, 0x00000000, 0x00000000, 0x000fb7b0, 0x000fb7b0, 0x00000000}, |
1576 | { 0x00009b08, 0x00000000, 0x00000000, 0x000fb7b4, 0x000fb7b4, 0x00000000 }, | 1577 | {0x00009b08, 0x00000000, 0x00000000, 0x000fb7b4, 0x000fb7b4, 0x00000000}, |
1577 | { 0x00009b0c, 0x00000000, 0x00000000, 0x000fb7b8, 0x000fb7b8, 0x00000000 }, | 1578 | {0x00009b0c, 0x00000000, 0x00000000, 0x000fb7b8, 0x000fb7b8, 0x00000000}, |
1578 | { 0x00009b10, 0x00000000, 0x00000000, 0x000fb7a5, 0x000fb7a5, 0x00000000 }, | 1579 | {0x00009b10, 0x00000000, 0x00000000, 0x000fb7a5, 0x000fb7a5, 0x00000000}, |
1579 | { 0x00009b14, 0x00000000, 0x00000000, 0x000fb7a9, 0x000fb7a9, 0x00000000 }, | 1580 | {0x00009b14, 0x00000000, 0x00000000, 0x000fb7a9, 0x000fb7a9, 0x00000000}, |
1580 | { 0x00009b18, 0x00000000, 0x00000000, 0x000fb7ad, 0x000fb7ad, 0x00000000 }, | 1581 | {0x00009b18, 0x00000000, 0x00000000, 0x000fb7ad, 0x000fb7ad, 0x00000000}, |
1581 | { 0x00009b1c, 0x00000000, 0x00000000, 0x000fb7b1, 0x000fb7b1, 0x00000000 }, | 1582 | {0x00009b1c, 0x00000000, 0x00000000, 0x000fb7b1, 0x000fb7b1, 0x00000000}, |
1582 | { 0x00009b20, 0x00000000, 0x00000000, 0x000fb7b5, 0x000fb7b5, 0x00000000 }, | 1583 | {0x00009b20, 0x00000000, 0x00000000, 0x000fb7b5, 0x000fb7b5, 0x00000000}, |
1583 | { 0x00009b24, 0x00000000, 0x00000000, 0x000fb7b9, 0x000fb7b9, 0x00000000 }, | 1584 | {0x00009b24, 0x00000000, 0x00000000, 0x000fb7b9, 0x000fb7b9, 0x00000000}, |
1584 | { 0x00009b28, 0x00000000, 0x00000000, 0x000fb7c5, 0x000fb7c5, 0x00000000 }, | 1585 | {0x00009b28, 0x00000000, 0x00000000, 0x000fb7c5, 0x000fb7c5, 0x00000000}, |
1585 | { 0x00009b2c, 0x00000000, 0x00000000, 0x000fb7c9, 0x000fb7c9, 0x00000000 }, | 1586 | {0x00009b2c, 0x00000000, 0x00000000, 0x000fb7c9, 0x000fb7c9, 0x00000000}, |
1586 | { 0x00009b30, 0x00000000, 0x00000000, 0x000fb7d1, 0x000fb7d1, 0x00000000 }, | 1587 | {0x00009b30, 0x00000000, 0x00000000, 0x000fb7d1, 0x000fb7d1, 0x00000000}, |
1587 | { 0x00009b34, 0x00000000, 0x00000000, 0x000fb7d5, 0x000fb7d5, 0x00000000 }, | 1588 | {0x00009b34, 0x00000000, 0x00000000, 0x000fb7d5, 0x000fb7d5, 0x00000000}, |
1588 | { 0x00009b38, 0x00000000, 0x00000000, 0x000fb7d9, 0x000fb7d9, 0x00000000 }, | 1589 | {0x00009b38, 0x00000000, 0x00000000, 0x000fb7d9, 0x000fb7d9, 0x00000000}, |
1589 | { 0x00009b3c, 0x00000000, 0x00000000, 0x000fb7c6, 0x000fb7c6, 0x00000000 }, | 1590 | {0x00009b3c, 0x00000000, 0x00000000, 0x000fb7c6, 0x000fb7c6, 0x00000000}, |
1590 | { 0x00009b40, 0x00000000, 0x00000000, 0x000fb7ca, 0x000fb7ca, 0x00000000 }, | 1591 | {0x00009b40, 0x00000000, 0x00000000, 0x000fb7ca, 0x000fb7ca, 0x00000000}, |
1591 | { 0x00009b44, 0x00000000, 0x00000000, 0x000fb7ce, 0x000fb7ce, 0x00000000 }, | 1592 | {0x00009b44, 0x00000000, 0x00000000, 0x000fb7ce, 0x000fb7ce, 0x00000000}, |
1592 | { 0x00009b48, 0x00000000, 0x00000000, 0x000fb7d2, 0x000fb7d2, 0x00000000 }, | 1593 | {0x00009b48, 0x00000000, 0x00000000, 0x000fb7d2, 0x000fb7d2, 0x00000000}, |
1593 | { 0x00009b4c, 0x00000000, 0x00000000, 0x000fb7d6, 0x000fb7d6, 0x00000000 }, | 1594 | {0x00009b4c, 0x00000000, 0x00000000, 0x000fb7d6, 0x000fb7d6, 0x00000000}, |
1594 | { 0x00009b50, 0x00000000, 0x00000000, 0x000fb7c3, 0x000fb7c3, 0x00000000 }, | 1595 | {0x00009b50, 0x00000000, 0x00000000, 0x000fb7c3, 0x000fb7c3, 0x00000000}, |
1595 | { 0x00009b54, 0x00000000, 0x00000000, 0x000fb7c7, 0x000fb7c7, 0x00000000 }, | 1596 | {0x00009b54, 0x00000000, 0x00000000, 0x000fb7c7, 0x000fb7c7, 0x00000000}, |
1596 | { 0x00009b58, 0x00000000, 0x00000000, 0x000fb7cb, 0x000fb7cb, 0x00000000 }, | 1597 | {0x00009b58, 0x00000000, 0x00000000, 0x000fb7cb, 0x000fb7cb, 0x00000000}, |
1597 | { 0x00009b5c, 0x00000000, 0x00000000, 0x000fb7cf, 0x000fb7cf, 0x00000000 }, | 1598 | {0x00009b5c, 0x00000000, 0x00000000, 0x000fb7cf, 0x000fb7cf, 0x00000000}, |
1598 | { 0x00009b60, 0x00000000, 0x00000000, 0x000fb7d7, 0x000fb7d7, 0x00000000 }, | 1599 | {0x00009b60, 0x00000000, 0x00000000, 0x000fb7d7, 0x000fb7d7, 0x00000000}, |
1599 | { 0x00009b64, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1600 | {0x00009b64, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1600 | { 0x00009b68, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1601 | {0x00009b68, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1601 | { 0x00009b6c, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1602 | {0x00009b6c, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1602 | { 0x00009b70, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1603 | {0x00009b70, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1603 | { 0x00009b74, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1604 | {0x00009b74, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1604 | { 0x00009b78, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1605 | {0x00009b78, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1605 | { 0x00009b7c, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1606 | {0x00009b7c, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1606 | { 0x00009b80, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1607 | {0x00009b80, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1607 | { 0x00009b84, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1608 | {0x00009b84, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1608 | { 0x00009b88, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1609 | {0x00009b88, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1609 | { 0x00009b8c, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1610 | {0x00009b8c, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1610 | { 0x00009b90, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1611 | {0x00009b90, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1611 | { 0x00009b94, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1612 | {0x00009b94, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1612 | { 0x00009b98, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1613 | {0x00009b98, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1613 | { 0x00009b9c, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1614 | {0x00009b9c, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1614 | { 0x00009ba0, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1615 | {0x00009ba0, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1615 | { 0x00009ba4, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1616 | {0x00009ba4, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1616 | { 0x00009ba8, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1617 | {0x00009ba8, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1617 | { 0x00009bac, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1618 | {0x00009bac, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1618 | { 0x00009bb0, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1619 | {0x00009bb0, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1619 | { 0x00009bb4, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1620 | {0x00009bb4, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1620 | { 0x00009bb8, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1621 | {0x00009bb8, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1621 | { 0x00009bbc, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1622 | {0x00009bbc, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1622 | { 0x00009bc0, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1623 | {0x00009bc0, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1623 | { 0x00009bc4, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1624 | {0x00009bc4, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1624 | { 0x00009bc8, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1625 | {0x00009bc8, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1625 | { 0x00009bcc, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1626 | {0x00009bcc, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1626 | { 0x00009bd0, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1627 | {0x00009bd0, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1627 | { 0x00009bd4, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1628 | {0x00009bd4, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1628 | { 0x00009bd8, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1629 | {0x00009bd8, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1629 | { 0x00009bdc, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1630 | {0x00009bdc, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1630 | { 0x00009be0, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1631 | {0x00009be0, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1631 | { 0x00009be4, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1632 | {0x00009be4, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1632 | { 0x00009be8, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1633 | {0x00009be8, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1633 | { 0x00009bec, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1634 | {0x00009bec, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1634 | { 0x00009bf0, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1635 | {0x00009bf0, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1635 | { 0x00009bf4, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1636 | {0x00009bf4, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1636 | { 0x00009bf8, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1637 | {0x00009bf8, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1637 | { 0x00009bfc, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000 }, | 1638 | {0x00009bfc, 0x00000000, 0x00000000, 0x000fb7db, 0x000fb7db, 0x00000000}, |
1638 | { 0x0000aa00, 0x00000000, 0x00000000, 0x0006801c, 0x0006801c, 0x00000000 }, | 1639 | {0x0000aa00, 0x00000000, 0x00000000, 0x0006801c, 0x0006801c, 0x00000000}, |
1639 | { 0x0000aa04, 0x00000000, 0x00000000, 0x00068080, 0x00068080, 0x00000000 }, | 1640 | {0x0000aa04, 0x00000000, 0x00000000, 0x00068080, 0x00068080, 0x00000000}, |
1640 | { 0x0000aa08, 0x00000000, 0x00000000, 0x00068084, 0x00068084, 0x00000000 }, | 1641 | {0x0000aa08, 0x00000000, 0x00000000, 0x00068084, 0x00068084, 0x00000000}, |
1641 | { 0x0000aa0c, 0x00000000, 0x00000000, 0x00068088, 0x00068088, 0x00000000 }, | 1642 | {0x0000aa0c, 0x00000000, 0x00000000, 0x00068088, 0x00068088, 0x00000000}, |
1642 | { 0x0000aa10, 0x00000000, 0x00000000, 0x0006808c, 0x0006808c, 0x00000000 }, | 1643 | {0x0000aa10, 0x00000000, 0x00000000, 0x0006808c, 0x0006808c, 0x00000000}, |
1643 | { 0x0000aa14, 0x00000000, 0x00000000, 0x00068100, 0x00068100, 0x00000000 }, | 1644 | {0x0000aa14, 0x00000000, 0x00000000, 0x00068100, 0x00068100, 0x00000000}, |
1644 | { 0x0000aa18, 0x00000000, 0x00000000, 0x00068104, 0x00068104, 0x00000000 }, | 1645 | {0x0000aa18, 0x00000000, 0x00000000, 0x00068104, 0x00068104, 0x00000000}, |
1645 | { 0x0000aa1c, 0x00000000, 0x00000000, 0x00068108, 0x00068108, 0x00000000 }, | 1646 | {0x0000aa1c, 0x00000000, 0x00000000, 0x00068108, 0x00068108, 0x00000000}, |
1646 | { 0x0000aa20, 0x00000000, 0x00000000, 0x0006810c, 0x0006810c, 0x00000000 }, | 1647 | {0x0000aa20, 0x00000000, 0x00000000, 0x0006810c, 0x0006810c, 0x00000000}, |
1647 | { 0x0000aa24, 0x00000000, 0x00000000, 0x00068110, 0x00068110, 0x00000000 }, | 1648 | {0x0000aa24, 0x00000000, 0x00000000, 0x00068110, 0x00068110, 0x00000000}, |
1648 | { 0x0000aa28, 0x00000000, 0x00000000, 0x00068110, 0x00068110, 0x00000000 }, | 1649 | {0x0000aa28, 0x00000000, 0x00000000, 0x00068110, 0x00068110, 0x00000000}, |
1649 | { 0x0000aa2c, 0x00000000, 0x00000000, 0x00068180, 0x00068180, 0x00000000 }, | 1650 | {0x0000aa2c, 0x00000000, 0x00000000, 0x00068180, 0x00068180, 0x00000000}, |
1650 | { 0x0000aa30, 0x00000000, 0x00000000, 0x00068184, 0x00068184, 0x00000000 }, | 1651 | {0x0000aa30, 0x00000000, 0x00000000, 0x00068184, 0x00068184, 0x00000000}, |
1651 | { 0x0000aa34, 0x00000000, 0x00000000, 0x00068188, 0x00068188, 0x00000000 }, | 1652 | {0x0000aa34, 0x00000000, 0x00000000, 0x00068188, 0x00068188, 0x00000000}, |
1652 | { 0x0000aa38, 0x00000000, 0x00000000, 0x0006818c, 0x0006818c, 0x00000000 }, | 1653 | {0x0000aa38, 0x00000000, 0x00000000, 0x0006818c, 0x0006818c, 0x00000000}, |
1653 | { 0x0000aa3c, 0x00000000, 0x00000000, 0x00068190, 0x00068190, 0x00000000 }, | 1654 | {0x0000aa3c, 0x00000000, 0x00000000, 0x00068190, 0x00068190, 0x00000000}, |
1654 | { 0x0000aa40, 0x00000000, 0x00000000, 0x00068194, 0x00068194, 0x00000000 }, | 1655 | {0x0000aa40, 0x00000000, 0x00000000, 0x00068194, 0x00068194, 0x00000000}, |
1655 | { 0x0000aa44, 0x00000000, 0x00000000, 0x000681a0, 0x000681a0, 0x00000000 }, | 1656 | {0x0000aa44, 0x00000000, 0x00000000, 0x000681a0, 0x000681a0, 0x00000000}, |
1656 | { 0x0000aa48, 0x00000000, 0x00000000, 0x0006820c, 0x0006820c, 0x00000000 }, | 1657 | {0x0000aa48, 0x00000000, 0x00000000, 0x0006820c, 0x0006820c, 0x00000000}, |
1657 | { 0x0000aa4c, 0x00000000, 0x00000000, 0x000681a8, 0x000681a8, 0x00000000 }, | 1658 | {0x0000aa4c, 0x00000000, 0x00000000, 0x000681a8, 0x000681a8, 0x00000000}, |
1658 | { 0x0000aa50, 0x00000000, 0x00000000, 0x000681ac, 0x000681ac, 0x00000000 }, | 1659 | {0x0000aa50, 0x00000000, 0x00000000, 0x000681ac, 0x000681ac, 0x00000000}, |
1659 | { 0x0000aa54, 0x00000000, 0x00000000, 0x0006821c, 0x0006821c, 0x00000000 }, | 1660 | {0x0000aa54, 0x00000000, 0x00000000, 0x0006821c, 0x0006821c, 0x00000000}, |
1660 | { 0x0000aa58, 0x00000000, 0x00000000, 0x00068224, 0x00068224, 0x00000000 }, | 1661 | {0x0000aa58, 0x00000000, 0x00000000, 0x00068224, 0x00068224, 0x00000000}, |
1661 | { 0x0000aa5c, 0x00000000, 0x00000000, 0x00068290, 0x00068290, 0x00000000 }, | 1662 | {0x0000aa5c, 0x00000000, 0x00000000, 0x00068290, 0x00068290, 0x00000000}, |
1662 | { 0x0000aa60, 0x00000000, 0x00000000, 0x00068300, 0x00068300, 0x00000000 }, | 1663 | {0x0000aa60, 0x00000000, 0x00000000, 0x00068300, 0x00068300, 0x00000000}, |
1663 | { 0x0000aa64, 0x00000000, 0x00000000, 0x00068308, 0x00068308, 0x00000000 }, | 1664 | {0x0000aa64, 0x00000000, 0x00000000, 0x00068308, 0x00068308, 0x00000000}, |
1664 | { 0x0000aa68, 0x00000000, 0x00000000, 0x0006830c, 0x0006830c, 0x00000000 }, | 1665 | {0x0000aa68, 0x00000000, 0x00000000, 0x0006830c, 0x0006830c, 0x00000000}, |
1665 | { 0x0000aa6c, 0x00000000, 0x00000000, 0x00068310, 0x00068310, 0x00000000 }, | 1666 | {0x0000aa6c, 0x00000000, 0x00000000, 0x00068310, 0x00068310, 0x00000000}, |
1666 | { 0x0000aa70, 0x00000000, 0x00000000, 0x00068788, 0x00068788, 0x00000000 }, | 1667 | {0x0000aa70, 0x00000000, 0x00000000, 0x00068788, 0x00068788, 0x00000000}, |
1667 | { 0x0000aa74, 0x00000000, 0x00000000, 0x0006878c, 0x0006878c, 0x00000000 }, | 1668 | {0x0000aa74, 0x00000000, 0x00000000, 0x0006878c, 0x0006878c, 0x00000000}, |
1668 | { 0x0000aa78, 0x00000000, 0x00000000, 0x00068790, 0x00068790, 0x00000000 }, | 1669 | {0x0000aa78, 0x00000000, 0x00000000, 0x00068790, 0x00068790, 0x00000000}, |
1669 | { 0x0000aa7c, 0x00000000, 0x00000000, 0x00068794, 0x00068794, 0x00000000 }, | 1670 | {0x0000aa7c, 0x00000000, 0x00000000, 0x00068794, 0x00068794, 0x00000000}, |
1670 | { 0x0000aa80, 0x00000000, 0x00000000, 0x00068798, 0x00068798, 0x00000000 }, | 1671 | {0x0000aa80, 0x00000000, 0x00000000, 0x00068798, 0x00068798, 0x00000000}, |
1671 | { 0x0000aa84, 0x00000000, 0x00000000, 0x0006879c, 0x0006879c, 0x00000000 }, | 1672 | {0x0000aa84, 0x00000000, 0x00000000, 0x0006879c, 0x0006879c, 0x00000000}, |
1672 | { 0x0000aa88, 0x00000000, 0x00000000, 0x00068b89, 0x00068b89, 0x00000000 }, | 1673 | {0x0000aa88, 0x00000000, 0x00000000, 0x00068b89, 0x00068b89, 0x00000000}, |
1673 | { 0x0000aa8c, 0x00000000, 0x00000000, 0x00068b8d, 0x00068b8d, 0x00000000 }, | 1674 | {0x0000aa8c, 0x00000000, 0x00000000, 0x00068b8d, 0x00068b8d, 0x00000000}, |
1674 | { 0x0000aa90, 0x00000000, 0x00000000, 0x00068b91, 0x00068b91, 0x00000000 }, | 1675 | {0x0000aa90, 0x00000000, 0x00000000, 0x00068b91, 0x00068b91, 0x00000000}, |
1675 | { 0x0000aa94, 0x00000000, 0x00000000, 0x00068b95, 0x00068b95, 0x00000000 }, | 1676 | {0x0000aa94, 0x00000000, 0x00000000, 0x00068b95, 0x00068b95, 0x00000000}, |
1676 | { 0x0000aa98, 0x00000000, 0x00000000, 0x00068b99, 0x00068b99, 0x00000000 }, | 1677 | {0x0000aa98, 0x00000000, 0x00000000, 0x00068b99, 0x00068b99, 0x00000000}, |
1677 | { 0x0000aa9c, 0x00000000, 0x00000000, 0x00068ba5, 0x00068ba5, 0x00000000 }, | 1678 | {0x0000aa9c, 0x00000000, 0x00000000, 0x00068ba5, 0x00068ba5, 0x00000000}, |
1678 | { 0x0000aaa0, 0x00000000, 0x00000000, 0x00068ba9, 0x00068ba9, 0x00000000 }, | 1679 | {0x0000aaa0, 0x00000000, 0x00000000, 0x00068ba9, 0x00068ba9, 0x00000000}, |
1679 | { 0x0000aaa4, 0x00000000, 0x00000000, 0x00068bad, 0x00068bad, 0x00000000 }, | 1680 | {0x0000aaa4, 0x00000000, 0x00000000, 0x00068bad, 0x00068bad, 0x00000000}, |
1680 | { 0x0000aaa8, 0x00000000, 0x00000000, 0x000b8b0c, 0x000b8b0c, 0x00000000 }, | 1681 | {0x0000aaa8, 0x00000000, 0x00000000, 0x000b8b0c, 0x000b8b0c, 0x00000000}, |
1681 | { 0x0000aaac, 0x00000000, 0x00000000, 0x000b8f10, 0x000b8f10, 0x00000000 }, | 1682 | {0x0000aaac, 0x00000000, 0x00000000, 0x000b8f10, 0x000b8f10, 0x00000000}, |
1682 | { 0x0000aab0, 0x00000000, 0x00000000, 0x000b8f14, 0x000b8f14, 0x00000000 }, | 1683 | {0x0000aab0, 0x00000000, 0x00000000, 0x000b8f14, 0x000b8f14, 0x00000000}, |
1683 | { 0x0000aab4, 0x00000000, 0x00000000, 0x000b8f84, 0x000b8f84, 0x00000000 }, | 1684 | {0x0000aab4, 0x00000000, 0x00000000, 0x000b8f84, 0x000b8f84, 0x00000000}, |
1684 | { 0x0000aab8, 0x00000000, 0x00000000, 0x000b8f84, 0x000b8f84, 0x00000000 }, | 1685 | {0x0000aab8, 0x00000000, 0x00000000, 0x000b8f84, 0x000b8f84, 0x00000000}, |
1685 | { 0x0000aabc, 0x00000000, 0x00000000, 0x000b8f88, 0x000b8f88, 0x00000000 }, | 1686 | {0x0000aabc, 0x00000000, 0x00000000, 0x000b8f88, 0x000b8f88, 0x00000000}, |
1686 | { 0x0000aac0, 0x00000000, 0x00000000, 0x000bb380, 0x000bb380, 0x00000000 }, | 1687 | {0x0000aac0, 0x00000000, 0x00000000, 0x000bb380, 0x000bb380, 0x00000000}, |
1687 | { 0x0000aac4, 0x00000000, 0x00000000, 0x000bb384, 0x000bb384, 0x00000000 }, | 1688 | {0x0000aac4, 0x00000000, 0x00000000, 0x000bb384, 0x000bb384, 0x00000000}, |
1688 | { 0x0000aac8, 0x00000000, 0x00000000, 0x000bb388, 0x000bb388, 0x00000000 }, | 1689 | {0x0000aac8, 0x00000000, 0x00000000, 0x000bb388, 0x000bb388, 0x00000000}, |
1689 | { 0x0000aacc, 0x00000000, 0x00000000, 0x000bb38c, 0x000bb38c, 0x00000000 }, | 1690 | {0x0000aacc, 0x00000000, 0x00000000, 0x000bb38c, 0x000bb38c, 0x00000000}, |
1690 | { 0x0000aad0, 0x00000000, 0x00000000, 0x000bb394, 0x000bb394, 0x00000000 }, | 1691 | {0x0000aad0, 0x00000000, 0x00000000, 0x000bb394, 0x000bb394, 0x00000000}, |
1691 | { 0x0000aad4, 0x00000000, 0x00000000, 0x000bb798, 0x000bb798, 0x00000000 }, | 1692 | {0x0000aad4, 0x00000000, 0x00000000, 0x000bb798, 0x000bb798, 0x00000000}, |
1692 | { 0x0000aad8, 0x00000000, 0x00000000, 0x000f970c, 0x000f970c, 0x00000000 }, | 1693 | {0x0000aad8, 0x00000000, 0x00000000, 0x000f970c, 0x000f970c, 0x00000000}, |
1693 | { 0x0000aadc, 0x00000000, 0x00000000, 0x000f9710, 0x000f9710, 0x00000000 }, | 1694 | {0x0000aadc, 0x00000000, 0x00000000, 0x000f9710, 0x000f9710, 0x00000000}, |
1694 | { 0x0000aae0, 0x00000000, 0x00000000, 0x000f9714, 0x000f9714, 0x00000000 }, | 1695 | {0x0000aae0, 0x00000000, 0x00000000, 0x000f9714, 0x000f9714, 0x00000000}, |
1695 | { 0x0000aae4, 0x00000000, 0x00000000, 0x000f9718, 0x000f9718, 0x00000000 }, | 1696 | {0x0000aae4, 0x00000000, 0x00000000, 0x000f9718, 0x000f9718, 0x00000000}, |
1696 | { 0x0000aae8, 0x00000000, 0x00000000, 0x000f9705, 0x000f9705, 0x00000000 }, | 1697 | {0x0000aae8, 0x00000000, 0x00000000, 0x000f9705, 0x000f9705, 0x00000000}, |
1697 | { 0x0000aaec, 0x00000000, 0x00000000, 0x000f9709, 0x000f9709, 0x00000000 }, | 1698 | {0x0000aaec, 0x00000000, 0x00000000, 0x000f9709, 0x000f9709, 0x00000000}, |
1698 | { 0x0000aaf0, 0x00000000, 0x00000000, 0x000f970d, 0x000f970d, 0x00000000 }, | 1699 | {0x0000aaf0, 0x00000000, 0x00000000, 0x000f970d, 0x000f970d, 0x00000000}, |
1699 | { 0x0000aaf4, 0x00000000, 0x00000000, 0x000f9711, 0x000f9711, 0x00000000 }, | 1700 | {0x0000aaf4, 0x00000000, 0x00000000, 0x000f9711, 0x000f9711, 0x00000000}, |
1700 | { 0x0000aaf8, 0x00000000, 0x00000000, 0x000f9715, 0x000f9715, 0x00000000 }, | 1701 | {0x0000aaf8, 0x00000000, 0x00000000, 0x000f9715, 0x000f9715, 0x00000000}, |
1701 | { 0x0000aafc, 0x00000000, 0x00000000, 0x000f9719, 0x000f9719, 0x00000000 }, | 1702 | {0x0000aafc, 0x00000000, 0x00000000, 0x000f9719, 0x000f9719, 0x00000000}, |
1702 | { 0x0000ab00, 0x00000000, 0x00000000, 0x000fb7a4, 0x000fb7a4, 0x00000000 }, | 1703 | {0x0000ab00, 0x00000000, 0x00000000, 0x000fb7a4, 0x000fb7a4, 0x00000000}, |
1703 | { 0x0000ab04, 0x00000000, 0x00000000, 0x000fb7a8, 0x000fb7a8, 0x00000000 }, | 1704 | {0x0000ab04, 0x00000000, 0x00000000, 0x000fb7a8, 0x000fb7a8, 0x00000000}, |
1704 | { 0x0000ab08, 0x00000000, 0x00000000, 0x000fb7ac, 0x000fb7ac, 0x00000000 }, | 1705 | {0x0000ab08, 0x00000000, 0x00000000, 0x000fb7ac, 0x000fb7ac, 0x00000000}, |
1705 | { 0x0000ab0c, 0x00000000, 0x00000000, 0x000fb7ac, 0x000fb7ac, 0x00000000 }, | 1706 | {0x0000ab0c, 0x00000000, 0x00000000, 0x000fb7ac, 0x000fb7ac, 0x00000000}, |
1706 | { 0x0000ab10, 0x00000000, 0x00000000, 0x000fb7b0, 0x000fb7b0, 0x00000000 }, | 1707 | {0x0000ab10, 0x00000000, 0x00000000, 0x000fb7b0, 0x000fb7b0, 0x00000000}, |
1707 | { 0x0000ab14, 0x00000000, 0x00000000, 0x000fb7b8, 0x000fb7b8, 0x00000000 }, | 1708 | {0x0000ab14, 0x00000000, 0x00000000, 0x000fb7b8, 0x000fb7b8, 0x00000000}, |
1708 | { 0x0000ab18, 0x00000000, 0x00000000, 0x000fb7bc, 0x000fb7bc, 0x00000000 }, | 1709 | {0x0000ab18, 0x00000000, 0x00000000, 0x000fb7bc, 0x000fb7bc, 0x00000000}, |
1709 | { 0x0000ab1c, 0x00000000, 0x00000000, 0x000fb7a1, 0x000fb7a1, 0x00000000 }, | 1710 | {0x0000ab1c, 0x00000000, 0x00000000, 0x000fb7a1, 0x000fb7a1, 0x00000000}, |
1710 | { 0x0000ab20, 0x00000000, 0x00000000, 0x000fb7a5, 0x000fb7a5, 0x00000000 }, | 1711 | {0x0000ab20, 0x00000000, 0x00000000, 0x000fb7a5, 0x000fb7a5, 0x00000000}, |
1711 | { 0x0000ab24, 0x00000000, 0x00000000, 0x000fb7a9, 0x000fb7a9, 0x00000000 }, | 1712 | {0x0000ab24, 0x00000000, 0x00000000, 0x000fb7a9, 0x000fb7a9, 0x00000000}, |
1712 | { 0x0000ab28, 0x00000000, 0x00000000, 0x000fb7b1, 0x000fb7b1, 0x00000000 }, | 1713 | {0x0000ab28, 0x00000000, 0x00000000, 0x000fb7b1, 0x000fb7b1, 0x00000000}, |
1713 | { 0x0000ab2c, 0x00000000, 0x00000000, 0x000fb7b5, 0x000fb7b5, 0x00000000 }, | 1714 | {0x0000ab2c, 0x00000000, 0x00000000, 0x000fb7b5, 0x000fb7b5, 0x00000000}, |
1714 | { 0x0000ab30, 0x00000000, 0x00000000, 0x000fb7bd, 0x000fb7bd, 0x00000000 }, | 1715 | {0x0000ab30, 0x00000000, 0x00000000, 0x000fb7bd, 0x000fb7bd, 0x00000000}, |
1715 | { 0x0000ab34, 0x00000000, 0x00000000, 0x000fb7c9, 0x000fb7c9, 0x00000000 }, | 1716 | {0x0000ab34, 0x00000000, 0x00000000, 0x000fb7c9, 0x000fb7c9, 0x00000000}, |
1716 | { 0x0000ab38, 0x00000000, 0x00000000, 0x000fb7cd, 0x000fb7cd, 0x00000000 }, | 1717 | {0x0000ab38, 0x00000000, 0x00000000, 0x000fb7cd, 0x000fb7cd, 0x00000000}, |
1717 | { 0x0000ab3c, 0x00000000, 0x00000000, 0x000fb7d1, 0x000fb7d1, 0x00000000 }, | 1718 | {0x0000ab3c, 0x00000000, 0x00000000, 0x000fb7d1, 0x000fb7d1, 0x00000000}, |
1718 | { 0x0000ab40, 0x00000000, 0x00000000, 0x000fb7d9, 0x000fb7d9, 0x00000000 }, | 1719 | {0x0000ab40, 0x00000000, 0x00000000, 0x000fb7d9, 0x000fb7d9, 0x00000000}, |
1719 | { 0x0000ab44, 0x00000000, 0x00000000, 0x000fb7c2, 0x000fb7c2, 0x00000000 }, | 1720 | {0x0000ab44, 0x00000000, 0x00000000, 0x000fb7c2, 0x000fb7c2, 0x00000000}, |
1720 | { 0x0000ab48, 0x00000000, 0x00000000, 0x000fb7c6, 0x000fb7c6, 0x00000000 }, | 1721 | {0x0000ab48, 0x00000000, 0x00000000, 0x000fb7c6, 0x000fb7c6, 0x00000000}, |
1721 | { 0x0000ab4c, 0x00000000, 0x00000000, 0x000fb7ca, 0x000fb7ca, 0x00000000 }, | 1722 | {0x0000ab4c, 0x00000000, 0x00000000, 0x000fb7ca, 0x000fb7ca, 0x00000000}, |
1722 | { 0x0000ab50, 0x00000000, 0x00000000, 0x000fb7ce, 0x000fb7ce, 0x00000000 }, | 1723 | {0x0000ab50, 0x00000000, 0x00000000, 0x000fb7ce, 0x000fb7ce, 0x00000000}, |
1723 | { 0x0000ab54, 0x00000000, 0x00000000, 0x000fb7d2, 0x000fb7d2, 0x00000000 }, | 1724 | {0x0000ab54, 0x00000000, 0x00000000, 0x000fb7d2, 0x000fb7d2, 0x00000000}, |
1724 | { 0x0000ab58, 0x00000000, 0x00000000, 0x000fb7d6, 0x000fb7d6, 0x00000000 }, | 1725 | {0x0000ab58, 0x00000000, 0x00000000, 0x000fb7d6, 0x000fb7d6, 0x00000000}, |
1725 | { 0x0000ab5c, 0x00000000, 0x00000000, 0x000fb7c3, 0x000fb7c3, 0x00000000 }, | 1726 | {0x0000ab5c, 0x00000000, 0x00000000, 0x000fb7c3, 0x000fb7c3, 0x00000000}, |
1726 | { 0x0000ab60, 0x00000000, 0x00000000, 0x000fb7cb, 0x000fb7cb, 0x00000000 }, | 1727 | {0x0000ab60, 0x00000000, 0x00000000, 0x000fb7cb, 0x000fb7cb, 0x00000000}, |
1727 | { 0x0000ab64, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1728 | {0x0000ab64, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1728 | { 0x0000ab68, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1729 | {0x0000ab68, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1729 | { 0x0000ab6c, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1730 | {0x0000ab6c, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1730 | { 0x0000ab70, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1731 | {0x0000ab70, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1731 | { 0x0000ab74, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1732 | {0x0000ab74, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1732 | { 0x0000ab78, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1733 | {0x0000ab78, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1733 | { 0x0000ab7c, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1734 | {0x0000ab7c, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1734 | { 0x0000ab80, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1735 | {0x0000ab80, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1735 | { 0x0000ab84, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1736 | {0x0000ab84, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1736 | { 0x0000ab88, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1737 | {0x0000ab88, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1737 | { 0x0000ab8c, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1738 | {0x0000ab8c, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1738 | { 0x0000ab90, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1739 | {0x0000ab90, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1739 | { 0x0000ab94, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1740 | {0x0000ab94, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1740 | { 0x0000ab98, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1741 | {0x0000ab98, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1741 | { 0x0000ab9c, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1742 | {0x0000ab9c, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1742 | { 0x0000aba0, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1743 | {0x0000aba0, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1743 | { 0x0000aba4, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1744 | {0x0000aba4, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1744 | { 0x0000aba8, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1745 | {0x0000aba8, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1745 | { 0x0000abac, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1746 | {0x0000abac, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1746 | { 0x0000abb0, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1747 | {0x0000abb0, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1747 | { 0x0000abb4, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1748 | {0x0000abb4, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1748 | { 0x0000abb8, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1749 | {0x0000abb8, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1749 | { 0x0000abbc, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1750 | {0x0000abbc, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1750 | { 0x0000abc0, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1751 | {0x0000abc0, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1751 | { 0x0000abc4, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1752 | {0x0000abc4, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1752 | { 0x0000abc8, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1753 | {0x0000abc8, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1753 | { 0x0000abcc, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1754 | {0x0000abcc, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1754 | { 0x0000abd0, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1755 | {0x0000abd0, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1755 | { 0x0000abd4, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1756 | {0x0000abd4, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1756 | { 0x0000abd8, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1757 | {0x0000abd8, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1757 | { 0x0000abdc, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1758 | {0x0000abdc, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1758 | { 0x0000abe0, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1759 | {0x0000abe0, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1759 | { 0x0000abe4, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1760 | {0x0000abe4, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1760 | { 0x0000abe8, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1761 | {0x0000abe8, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1761 | { 0x0000abec, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1762 | {0x0000abec, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1762 | { 0x0000abf0, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1763 | {0x0000abf0, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1763 | { 0x0000abf4, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1764 | {0x0000abf4, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1764 | { 0x0000abf8, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1765 | {0x0000abf8, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1765 | { 0x0000abfc, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000 }, | 1766 | {0x0000abfc, 0x00000000, 0x00000000, 0x000fb7d3, 0x000fb7d3, 0x00000000}, |
1766 | { 0x0000a204, 0x00000004, 0x00000004, 0x00000004, 0x00000004, 0x00000004 }, | 1767 | {0x0000a204, 0x00000004, 0x00000004, 0x00000004, 0x00000004, 0x00000004}, |
1767 | { 0x0000a20c, 0x00000014, 0x00000014, 0x00000000, 0x00000000, 0x0001f000 }, | 1768 | {0x0000a20c, 0x00000014, 0x00000014, 0x00000000, 0x00000000, 0x0001f000}, |
1768 | { 0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a }, | 1769 | {0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a}, |
1769 | { 0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000 }, | 1770 | {0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000}, |
1770 | { 0x0000a250, 0x001ff000, 0x001ff000, 0x001ca000, 0x001ca000, 0x001da000 }, | 1771 | {0x0000a250, 0x001ff000, 0x001ff000, 0x001ca000, 0x001ca000, 0x001da000}, |
1771 | { 0x0000a274, 0x0a81c652, 0x0a81c652, 0x0a820652, 0x0a820652, 0x0a82a652 }, | 1772 | {0x0000a274, 0x0a81c652, 0x0a81c652, 0x0a820652, 0x0a820652, 0x0a82a652}, |
1772 | { 0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 1773 | {0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
1773 | { 0x0000a304, 0x00000000, 0x00000000, 0x00007201, 0x00007201, 0x00000000 }, | 1774 | {0x0000a304, 0x00000000, 0x00000000, 0x00007201, 0x00007201, 0x00000000}, |
1774 | { 0x0000a308, 0x00000000, 0x00000000, 0x00010408, 0x00010408, 0x00000000 }, | 1775 | {0x0000a308, 0x00000000, 0x00000000, 0x00010408, 0x00010408, 0x00000000}, |
1775 | { 0x0000a30c, 0x00000000, 0x00000000, 0x0001860a, 0x0001860a, 0x00000000 }, | 1776 | {0x0000a30c, 0x00000000, 0x00000000, 0x0001860a, 0x0001860a, 0x00000000}, |
1776 | { 0x0000a310, 0x00000000, 0x00000000, 0x00020818, 0x00020818, 0x00000000 }, | 1777 | {0x0000a310, 0x00000000, 0x00000000, 0x00020818, 0x00020818, 0x00000000}, |
1777 | { 0x0000a314, 0x00000000, 0x00000000, 0x00024858, 0x00024858, 0x00000000 }, | 1778 | {0x0000a314, 0x00000000, 0x00000000, 0x00024858, 0x00024858, 0x00000000}, |
1778 | { 0x0000a318, 0x00000000, 0x00000000, 0x00026859, 0x00026859, 0x00000000 }, | 1779 | {0x0000a318, 0x00000000, 0x00000000, 0x00026859, 0x00026859, 0x00000000}, |
1779 | { 0x0000a31c, 0x00000000, 0x00000000, 0x0002985b, 0x0002985b, 0x00000000 }, | 1780 | {0x0000a31c, 0x00000000, 0x00000000, 0x0002985b, 0x0002985b, 0x00000000}, |
1780 | { 0x0000a320, 0x00000000, 0x00000000, 0x0002c89a, 0x0002c89a, 0x00000000 }, | 1781 | {0x0000a320, 0x00000000, 0x00000000, 0x0002c89a, 0x0002c89a, 0x00000000}, |
1781 | { 0x0000a324, 0x00000000, 0x00000000, 0x0002e89b, 0x0002e89b, 0x00000000 }, | 1782 | {0x0000a324, 0x00000000, 0x00000000, 0x0002e89b, 0x0002e89b, 0x00000000}, |
1782 | { 0x0000a328, 0x00000000, 0x00000000, 0x0003089c, 0x0003089c, 0x00000000 }, | 1783 | {0x0000a328, 0x00000000, 0x00000000, 0x0003089c, 0x0003089c, 0x00000000}, |
1783 | { 0x0000a32c, 0x00000000, 0x00000000, 0x0003289d, 0x0003289d, 0x00000000 }, | 1784 | {0x0000a32c, 0x00000000, 0x00000000, 0x0003289d, 0x0003289d, 0x00000000}, |
1784 | { 0x0000a330, 0x00000000, 0x00000000, 0x0003489e, 0x0003489e, 0x00000000 }, | 1785 | {0x0000a330, 0x00000000, 0x00000000, 0x0003489e, 0x0003489e, 0x00000000}, |
1785 | { 0x0000a334, 0x00000000, 0x00000000, 0x000388de, 0x000388de, 0x00000000 }, | 1786 | {0x0000a334, 0x00000000, 0x00000000, 0x000388de, 0x000388de, 0x00000000}, |
1786 | { 0x0000a338, 0x00000000, 0x00000000, 0x0003b91e, 0x0003b91e, 0x00000000 }, | 1787 | {0x0000a338, 0x00000000, 0x00000000, 0x0003b91e, 0x0003b91e, 0x00000000}, |
1787 | { 0x0000a33c, 0x00000000, 0x00000000, 0x0003d95e, 0x0003d95e, 0x00000000 }, | 1788 | {0x0000a33c, 0x00000000, 0x00000000, 0x0003d95e, 0x0003d95e, 0x00000000}, |
1788 | { 0x0000a340, 0x00000000, 0x00000000, 0x000419df, 0x000419df, 0x00000000 }, | 1789 | {0x0000a340, 0x00000000, 0x00000000, 0x000419df, 0x000419df, 0x00000000}, |
1789 | { 0x0000a344, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 1790 | {0x0000a344, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
1790 | { 0x0000a358, 0x7999aa02, 0x7999aa02, 0x7999aa0e, 0x7999aa0e, 0x7999aa0e }, | 1791 | {0x0000a358, 0x7999aa02, 0x7999aa02, 0x7999aa0e, 0x7999aa0e, 0x7999aa0e}, |
1791 | }; | 1792 | }; |
1792 | 1793 | ||
1793 | static const u32 ar9285Common_9285[][2] = { | 1794 | static const u32 ar9285Common_9285[][2] = { |
1794 | { 0x0000000c, 0x00000000 }, | 1795 | /* Addr allmodes */ |
1795 | { 0x00000030, 0x00020045 }, | 1796 | {0x0000000c, 0x00000000}, |
1796 | { 0x00000034, 0x00000005 }, | 1797 | {0x00000030, 0x00020045}, |
1797 | { 0x00000040, 0x00000000 }, | 1798 | {0x00000034, 0x00000005}, |
1798 | { 0x00000044, 0x00000008 }, | 1799 | {0x00000040, 0x00000000}, |
1799 | { 0x00000048, 0x00000008 }, | 1800 | {0x00000044, 0x00000008}, |
1800 | { 0x0000004c, 0x00000010 }, | 1801 | {0x00000048, 0x00000008}, |
1801 | { 0x00000050, 0x00000000 }, | 1802 | {0x0000004c, 0x00000010}, |
1802 | { 0x00000054, 0x0000001f }, | 1803 | {0x00000050, 0x00000000}, |
1803 | { 0x00000800, 0x00000000 }, | 1804 | {0x00000054, 0x0000001f}, |
1804 | { 0x00000804, 0x00000000 }, | 1805 | {0x00000800, 0x00000000}, |
1805 | { 0x00000808, 0x00000000 }, | 1806 | {0x00000804, 0x00000000}, |
1806 | { 0x0000080c, 0x00000000 }, | 1807 | {0x00000808, 0x00000000}, |
1807 | { 0x00000810, 0x00000000 }, | 1808 | {0x0000080c, 0x00000000}, |
1808 | { 0x00000814, 0x00000000 }, | 1809 | {0x00000810, 0x00000000}, |
1809 | { 0x00000818, 0x00000000 }, | 1810 | {0x00000814, 0x00000000}, |
1810 | { 0x0000081c, 0x00000000 }, | 1811 | {0x00000818, 0x00000000}, |
1811 | { 0x00000820, 0x00000000 }, | 1812 | {0x0000081c, 0x00000000}, |
1812 | { 0x00000824, 0x00000000 }, | 1813 | {0x00000820, 0x00000000}, |
1813 | { 0x00001040, 0x002ffc0f }, | 1814 | {0x00000824, 0x00000000}, |
1814 | { 0x00001044, 0x002ffc0f }, | 1815 | {0x00001040, 0x002ffc0f}, |
1815 | { 0x00001048, 0x002ffc0f }, | 1816 | {0x00001044, 0x002ffc0f}, |
1816 | { 0x0000104c, 0x002ffc0f }, | 1817 | {0x00001048, 0x002ffc0f}, |
1817 | { 0x00001050, 0x002ffc0f }, | 1818 | {0x0000104c, 0x002ffc0f}, |
1818 | { 0x00001054, 0x002ffc0f }, | 1819 | {0x00001050, 0x002ffc0f}, |
1819 | { 0x00001058, 0x002ffc0f }, | 1820 | {0x00001054, 0x002ffc0f}, |
1820 | { 0x0000105c, 0x002ffc0f }, | 1821 | {0x00001058, 0x002ffc0f}, |
1821 | { 0x00001060, 0x002ffc0f }, | 1822 | {0x0000105c, 0x002ffc0f}, |
1822 | { 0x00001064, 0x002ffc0f }, | 1823 | {0x00001060, 0x002ffc0f}, |
1823 | { 0x00001230, 0x00000000 }, | 1824 | {0x00001064, 0x002ffc0f}, |
1824 | { 0x00001270, 0x00000000 }, | 1825 | {0x00001230, 0x00000000}, |
1825 | { 0x00001038, 0x00000000 }, | 1826 | {0x00001270, 0x00000000}, |
1826 | { 0x00001078, 0x00000000 }, | 1827 | {0x00001038, 0x00000000}, |
1827 | { 0x000010b8, 0x00000000 }, | 1828 | {0x00001078, 0x00000000}, |
1828 | { 0x000010f8, 0x00000000 }, | 1829 | {0x000010b8, 0x00000000}, |
1829 | { 0x00001138, 0x00000000 }, | 1830 | {0x000010f8, 0x00000000}, |
1830 | { 0x00001178, 0x00000000 }, | 1831 | {0x00001138, 0x00000000}, |
1831 | { 0x000011b8, 0x00000000 }, | 1832 | {0x00001178, 0x00000000}, |
1832 | { 0x000011f8, 0x00000000 }, | 1833 | {0x000011b8, 0x00000000}, |
1833 | { 0x00001238, 0x00000000 }, | 1834 | {0x000011f8, 0x00000000}, |
1834 | { 0x00001278, 0x00000000 }, | 1835 | {0x00001238, 0x00000000}, |
1835 | { 0x000012b8, 0x00000000 }, | 1836 | {0x00001278, 0x00000000}, |
1836 | { 0x000012f8, 0x00000000 }, | 1837 | {0x000012b8, 0x00000000}, |
1837 | { 0x00001338, 0x00000000 }, | 1838 | {0x000012f8, 0x00000000}, |
1838 | { 0x00001378, 0x00000000 }, | 1839 | {0x00001338, 0x00000000}, |
1839 | { 0x000013b8, 0x00000000 }, | 1840 | {0x00001378, 0x00000000}, |
1840 | { 0x000013f8, 0x00000000 }, | 1841 | {0x000013b8, 0x00000000}, |
1841 | { 0x00001438, 0x00000000 }, | 1842 | {0x000013f8, 0x00000000}, |
1842 | { 0x00001478, 0x00000000 }, | 1843 | {0x00001438, 0x00000000}, |
1843 | { 0x000014b8, 0x00000000 }, | 1844 | {0x00001478, 0x00000000}, |
1844 | { 0x000014f8, 0x00000000 }, | 1845 | {0x000014b8, 0x00000000}, |
1845 | { 0x00001538, 0x00000000 }, | 1846 | {0x000014f8, 0x00000000}, |
1846 | { 0x00001578, 0x00000000 }, | 1847 | {0x00001538, 0x00000000}, |
1847 | { 0x000015b8, 0x00000000 }, | 1848 | {0x00001578, 0x00000000}, |
1848 | { 0x000015f8, 0x00000000 }, | 1849 | {0x000015b8, 0x00000000}, |
1849 | { 0x00001638, 0x00000000 }, | 1850 | {0x000015f8, 0x00000000}, |
1850 | { 0x00001678, 0x00000000 }, | 1851 | {0x00001638, 0x00000000}, |
1851 | { 0x000016b8, 0x00000000 }, | 1852 | {0x00001678, 0x00000000}, |
1852 | { 0x000016f8, 0x00000000 }, | 1853 | {0x000016b8, 0x00000000}, |
1853 | { 0x00001738, 0x00000000 }, | 1854 | {0x000016f8, 0x00000000}, |
1854 | { 0x00001778, 0x00000000 }, | 1855 | {0x00001738, 0x00000000}, |
1855 | { 0x000017b8, 0x00000000 }, | 1856 | {0x00001778, 0x00000000}, |
1856 | { 0x000017f8, 0x00000000 }, | 1857 | {0x000017b8, 0x00000000}, |
1857 | { 0x0000103c, 0x00000000 }, | 1858 | {0x000017f8, 0x00000000}, |
1858 | { 0x0000107c, 0x00000000 }, | 1859 | {0x0000103c, 0x00000000}, |
1859 | { 0x000010bc, 0x00000000 }, | 1860 | {0x0000107c, 0x00000000}, |
1860 | { 0x000010fc, 0x00000000 }, | 1861 | {0x000010bc, 0x00000000}, |
1861 | { 0x0000113c, 0x00000000 }, | 1862 | {0x000010fc, 0x00000000}, |
1862 | { 0x0000117c, 0x00000000 }, | 1863 | {0x0000113c, 0x00000000}, |
1863 | { 0x000011bc, 0x00000000 }, | 1864 | {0x0000117c, 0x00000000}, |
1864 | { 0x000011fc, 0x00000000 }, | 1865 | {0x000011bc, 0x00000000}, |
1865 | { 0x0000123c, 0x00000000 }, | 1866 | {0x000011fc, 0x00000000}, |
1866 | { 0x0000127c, 0x00000000 }, | 1867 | {0x0000123c, 0x00000000}, |
1867 | { 0x000012bc, 0x00000000 }, | 1868 | {0x0000127c, 0x00000000}, |
1868 | { 0x000012fc, 0x00000000 }, | 1869 | {0x000012bc, 0x00000000}, |
1869 | { 0x0000133c, 0x00000000 }, | 1870 | {0x000012fc, 0x00000000}, |
1870 | { 0x0000137c, 0x00000000 }, | 1871 | {0x0000133c, 0x00000000}, |
1871 | { 0x000013bc, 0x00000000 }, | 1872 | {0x0000137c, 0x00000000}, |
1872 | { 0x000013fc, 0x00000000 }, | 1873 | {0x000013bc, 0x00000000}, |
1873 | { 0x0000143c, 0x00000000 }, | 1874 | {0x000013fc, 0x00000000}, |
1874 | { 0x0000147c, 0x00000000 }, | 1875 | {0x0000143c, 0x00000000}, |
1875 | { 0x00004030, 0x00000002 }, | 1876 | {0x0000147c, 0x00000000}, |
1876 | { 0x0000403c, 0x00000002 }, | 1877 | {0x00004030, 0x00000002}, |
1877 | { 0x00004024, 0x0000001f }, | 1878 | {0x0000403c, 0x00000002}, |
1878 | { 0x00004060, 0x00000000 }, | 1879 | {0x00004024, 0x0000001f}, |
1879 | { 0x00004064, 0x00000000 }, | 1880 | {0x00004060, 0x00000000}, |
1880 | { 0x00007010, 0x00000031 }, | 1881 | {0x00004064, 0x00000000}, |
1881 | { 0x00007034, 0x00000002 }, | 1882 | {0x00007010, 0x00000031}, |
1882 | { 0x00007038, 0x000004c2 }, | 1883 | {0x00007034, 0x00000002}, |
1883 | { 0x00008004, 0x00000000 }, | 1884 | {0x00007038, 0x000004c2}, |
1884 | { 0x00008008, 0x00000000 }, | 1885 | {0x00008004, 0x00000000}, |
1885 | { 0x0000800c, 0x00000000 }, | 1886 | {0x00008008, 0x00000000}, |
1886 | { 0x00008018, 0x00000700 }, | 1887 | {0x0000800c, 0x00000000}, |
1887 | { 0x00008020, 0x00000000 }, | 1888 | {0x00008018, 0x00000700}, |
1888 | { 0x00008038, 0x00000000 }, | 1889 | {0x00008020, 0x00000000}, |
1889 | { 0x0000803c, 0x00000000 }, | 1890 | {0x00008038, 0x00000000}, |
1890 | { 0x00008048, 0x00000000 }, | 1891 | {0x0000803c, 0x00000000}, |
1891 | { 0x00008054, 0x00000000 }, | 1892 | {0x00008048, 0x00000000}, |
1892 | { 0x00008058, 0x00000000 }, | 1893 | {0x00008054, 0x00000000}, |
1893 | { 0x0000805c, 0x000fc78f }, | 1894 | {0x00008058, 0x00000000}, |
1894 | { 0x00008060, 0x0000000f }, | 1895 | {0x0000805c, 0x000fc78f}, |
1895 | { 0x00008064, 0x00000000 }, | 1896 | {0x00008060, 0x0000000f}, |
1896 | { 0x00008070, 0x00000000 }, | 1897 | {0x00008064, 0x00000000}, |
1897 | { 0x000080c0, 0x2a80001a }, | 1898 | {0x00008070, 0x00000000}, |
1898 | { 0x000080c4, 0x05dc01e0 }, | 1899 | {0x000080c0, 0x2a80001a}, |
1899 | { 0x000080c8, 0x1f402710 }, | 1900 | {0x000080c4, 0x05dc01e0}, |
1900 | { 0x000080cc, 0x01f40000 }, | 1901 | {0x000080c8, 0x1f402710}, |
1901 | { 0x000080d0, 0x00001e00 }, | 1902 | {0x000080cc, 0x01f40000}, |
1902 | { 0x000080d4, 0x00000000 }, | 1903 | {0x000080d0, 0x00001e00}, |
1903 | { 0x000080d8, 0x00400000 }, | 1904 | {0x000080d4, 0x00000000}, |
1904 | { 0x000080e0, 0xffffffff }, | 1905 | {0x000080d8, 0x00400000}, |
1905 | { 0x000080e4, 0x0000ffff }, | 1906 | {0x000080e0, 0xffffffff}, |
1906 | { 0x000080e8, 0x003f3f3f }, | 1907 | {0x000080e4, 0x0000ffff}, |
1907 | { 0x000080ec, 0x00000000 }, | 1908 | {0x000080e8, 0x003f3f3f}, |
1908 | { 0x000080f0, 0x00000000 }, | 1909 | {0x000080ec, 0x00000000}, |
1909 | { 0x000080f4, 0x00000000 }, | 1910 | {0x000080f0, 0x00000000}, |
1910 | { 0x000080f8, 0x00000000 }, | 1911 | {0x000080f4, 0x00000000}, |
1911 | { 0x000080fc, 0x00020000 }, | 1912 | {0x000080f8, 0x00000000}, |
1912 | { 0x00008100, 0x00020000 }, | 1913 | {0x000080fc, 0x00020000}, |
1913 | { 0x00008104, 0x00000001 }, | 1914 | {0x00008100, 0x00020000}, |
1914 | { 0x00008108, 0x00000052 }, | 1915 | {0x00008104, 0x00000001}, |
1915 | { 0x0000810c, 0x00000000 }, | 1916 | {0x00008108, 0x00000052}, |
1916 | { 0x00008110, 0x00000168 }, | 1917 | {0x0000810c, 0x00000000}, |
1917 | { 0x00008118, 0x000100aa }, | 1918 | {0x00008110, 0x00000168}, |
1918 | { 0x0000811c, 0x00003210 }, | 1919 | {0x00008118, 0x000100aa}, |
1919 | { 0x00008120, 0x08f04800 }, | 1920 | {0x0000811c, 0x00003210}, |
1920 | { 0x00008124, 0x00000000 }, | 1921 | {0x00008120, 0x08f04800}, |
1921 | { 0x00008128, 0x00000000 }, | 1922 | {0x00008124, 0x00000000}, |
1922 | { 0x0000812c, 0x00000000 }, | 1923 | {0x00008128, 0x00000000}, |
1923 | { 0x00008130, 0x00000000 }, | 1924 | {0x0000812c, 0x00000000}, |
1924 | { 0x00008134, 0x00000000 }, | 1925 | {0x00008130, 0x00000000}, |
1925 | { 0x00008138, 0x00000000 }, | 1926 | {0x00008134, 0x00000000}, |
1926 | { 0x0000813c, 0x00000000 }, | 1927 | {0x00008138, 0x00000000}, |
1927 | { 0x00008144, 0x00000000 }, | 1928 | {0x0000813c, 0x00000000}, |
1928 | { 0x00008168, 0x00000000 }, | 1929 | {0x00008144, 0x00000000}, |
1929 | { 0x0000816c, 0x00000000 }, | 1930 | {0x00008168, 0x00000000}, |
1930 | { 0x00008170, 0x32143320 }, | 1931 | {0x0000816c, 0x00000000}, |
1931 | { 0x00008174, 0xfaa4fa50 }, | 1932 | {0x00008170, 0x32143320}, |
1932 | { 0x00008178, 0x00000100 }, | 1933 | {0x00008174, 0xfaa4fa50}, |
1933 | { 0x0000817c, 0x00000000 }, | 1934 | {0x00008178, 0x00000100}, |
1934 | { 0x000081c0, 0x00000000 }, | 1935 | {0x0000817c, 0x00000000}, |
1935 | { 0x000081d0, 0x00003210 }, | 1936 | {0x000081c0, 0x00000000}, |
1936 | { 0x000081ec, 0x00000000 }, | 1937 | {0x000081d0, 0x00003210}, |
1937 | { 0x000081f0, 0x00000000 }, | 1938 | {0x000081ec, 0x00000000}, |
1938 | { 0x000081f4, 0x00000000 }, | 1939 | {0x000081f0, 0x00000000}, |
1939 | { 0x000081f8, 0x00000000 }, | 1940 | {0x000081f4, 0x00000000}, |
1940 | { 0x000081fc, 0x00000000 }, | 1941 | {0x000081f8, 0x00000000}, |
1941 | { 0x00008200, 0x00000000 }, | 1942 | {0x000081fc, 0x00000000}, |
1942 | { 0x00008204, 0x00000000 }, | 1943 | {0x00008200, 0x00000000}, |
1943 | { 0x00008208, 0x00000000 }, | 1944 | {0x00008204, 0x00000000}, |
1944 | { 0x0000820c, 0x00000000 }, | 1945 | {0x00008208, 0x00000000}, |
1945 | { 0x00008210, 0x00000000 }, | 1946 | {0x0000820c, 0x00000000}, |
1946 | { 0x00008214, 0x00000000 }, | 1947 | {0x00008210, 0x00000000}, |
1947 | { 0x00008218, 0x00000000 }, | 1948 | {0x00008214, 0x00000000}, |
1948 | { 0x0000821c, 0x00000000 }, | 1949 | {0x00008218, 0x00000000}, |
1949 | { 0x00008220, 0x00000000 }, | 1950 | {0x0000821c, 0x00000000}, |
1950 | { 0x00008224, 0x00000000 }, | 1951 | {0x00008220, 0x00000000}, |
1951 | { 0x00008228, 0x00000000 }, | 1952 | {0x00008224, 0x00000000}, |
1952 | { 0x0000822c, 0x00000000 }, | 1953 | {0x00008228, 0x00000000}, |
1953 | { 0x00008230, 0x00000000 }, | 1954 | {0x0000822c, 0x00000000}, |
1954 | { 0x00008234, 0x00000000 }, | 1955 | {0x00008230, 0x00000000}, |
1955 | { 0x00008238, 0x00000000 }, | 1956 | {0x00008234, 0x00000000}, |
1956 | { 0x0000823c, 0x00000000 }, | 1957 | {0x00008238, 0x00000000}, |
1957 | { 0x00008240, 0x00100000 }, | 1958 | {0x0000823c, 0x00000000}, |
1958 | { 0x00008244, 0x0010f400 }, | 1959 | {0x00008240, 0x00100000}, |
1959 | { 0x00008248, 0x00000100 }, | 1960 | {0x00008244, 0x0010f400}, |
1960 | { 0x0000824c, 0x0001e800 }, | 1961 | {0x00008248, 0x00000100}, |
1961 | { 0x00008250, 0x00000000 }, | 1962 | {0x0000824c, 0x0001e800}, |
1962 | { 0x00008254, 0x00000000 }, | 1963 | {0x00008250, 0x00000000}, |
1963 | { 0x00008258, 0x00000000 }, | 1964 | {0x00008254, 0x00000000}, |
1964 | { 0x0000825c, 0x400000ff }, | 1965 | {0x00008258, 0x00000000}, |
1965 | { 0x00008260, 0x00080922 }, | 1966 | {0x0000825c, 0x400000ff}, |
1966 | { 0x00008264, 0x88a00010 }, | 1967 | {0x00008260, 0x00080922}, |
1967 | { 0x00008270, 0x00000000 }, | 1968 | {0x00008264, 0x88a00010}, |
1968 | { 0x00008274, 0x40000000 }, | 1969 | {0x00008270, 0x00000000}, |
1969 | { 0x00008278, 0x003e4180 }, | 1970 | {0x00008274, 0x40000000}, |
1970 | { 0x0000827c, 0x00000000 }, | 1971 | {0x00008278, 0x003e4180}, |
1971 | { 0x00008284, 0x0000002c }, | 1972 | {0x0000827c, 0x00000000}, |
1972 | { 0x00008288, 0x0000002c }, | 1973 | {0x00008284, 0x0000002c}, |
1973 | { 0x0000828c, 0x00000000 }, | 1974 | {0x00008288, 0x0000002c}, |
1974 | { 0x00008294, 0x00000000 }, | 1975 | {0x0000828c, 0x00000000}, |
1975 | { 0x00008298, 0x00000000 }, | 1976 | {0x00008294, 0x00000000}, |
1976 | { 0x0000829c, 0x00000000 }, | 1977 | {0x00008298, 0x00000000}, |
1977 | { 0x00008300, 0x00000040 }, | 1978 | {0x0000829c, 0x00000000}, |
1978 | { 0x00008314, 0x00000000 }, | 1979 | {0x00008300, 0x00000040}, |
1979 | { 0x00008328, 0x00000000 }, | 1980 | {0x00008314, 0x00000000}, |
1980 | { 0x0000832c, 0x00000001 }, | 1981 | {0x00008328, 0x00000000}, |
1981 | { 0x00008330, 0x00000302 }, | 1982 | {0x0000832c, 0x00000001}, |
1982 | { 0x00008334, 0x00000e00 }, | 1983 | {0x00008330, 0x00000302}, |
1983 | { 0x00008338, 0x00000000 }, | 1984 | {0x00008334, 0x00000e00}, |
1984 | { 0x0000833c, 0x00000000 }, | 1985 | {0x00008338, 0x00000000}, |
1985 | { 0x00008340, 0x00010380 }, | 1986 | {0x0000833c, 0x00000000}, |
1986 | { 0x00008344, 0x00481043 }, | 1987 | {0x00008340, 0x00010380}, |
1987 | { 0x00009808, 0x00000000 }, | 1988 | {0x00008344, 0x00481043}, |
1988 | { 0x0000980c, 0xafe68e30 }, | 1989 | {0x00009808, 0x00000000}, |
1989 | { 0x00009810, 0xfd14e000 }, | 1990 | {0x0000980c, 0xafe68e30}, |
1990 | { 0x00009814, 0x9c0a9f6b }, | 1991 | {0x00009810, 0xfd14e000}, |
1991 | { 0x0000981c, 0x00000000 }, | 1992 | {0x00009814, 0x9c0a9f6b}, |
1992 | { 0x0000982c, 0x0000a000 }, | 1993 | {0x0000981c, 0x00000000}, |
1993 | { 0x00009830, 0x00000000 }, | 1994 | {0x0000982c, 0x0000a000}, |
1994 | { 0x0000983c, 0x00200400 }, | 1995 | {0x00009830, 0x00000000}, |
1995 | { 0x0000984c, 0x0040233c }, | 1996 | {0x0000983c, 0x00200400}, |
1996 | { 0x00009854, 0x00000044 }, | 1997 | {0x0000984c, 0x0040233c}, |
1997 | { 0x00009900, 0x00000000 }, | 1998 | {0x00009854, 0x00000044}, |
1998 | { 0x00009904, 0x00000000 }, | 1999 | {0x00009900, 0x00000000}, |
1999 | { 0x00009908, 0x00000000 }, | 2000 | {0x00009904, 0x00000000}, |
2000 | { 0x0000990c, 0x00000000 }, | 2001 | {0x00009908, 0x00000000}, |
2001 | { 0x00009910, 0x01002310 }, | 2002 | {0x0000990c, 0x00000000}, |
2002 | { 0x0000991c, 0x10000fff }, | 2003 | {0x00009910, 0x01002310}, |
2003 | { 0x00009920, 0x04900000 }, | 2004 | {0x0000991c, 0x10000fff}, |
2004 | { 0x00009928, 0x00000001 }, | 2005 | {0x00009920, 0x04900000}, |
2005 | { 0x0000992c, 0x00000004 }, | 2006 | {0x00009928, 0x00000001}, |
2006 | { 0x00009934, 0x1e1f2022 }, | 2007 | {0x0000992c, 0x00000004}, |
2007 | { 0x00009938, 0x0a0b0c0d }, | 2008 | {0x00009934, 0x1e1f2022}, |
2008 | { 0x0000993c, 0x00000000 }, | 2009 | {0x00009938, 0x0a0b0c0d}, |
2009 | { 0x00009940, 0x14750604 }, | 2010 | {0x0000993c, 0x00000000}, |
2010 | { 0x00009948, 0x9280c00a }, | 2011 | {0x00009940, 0x14750604}, |
2011 | { 0x0000994c, 0x00020028 }, | 2012 | {0x00009948, 0x9280c00a}, |
2012 | { 0x00009954, 0x5f3ca3de }, | 2013 | {0x0000994c, 0x00020028}, |
2013 | { 0x00009958, 0x2108ecff }, | 2014 | {0x00009954, 0x5f3ca3de}, |
2014 | { 0x00009968, 0x000003ce }, | 2015 | {0x00009958, 0x2108ecff}, |
2015 | { 0x00009970, 0x1927b515 }, | 2016 | {0x00009968, 0x000003ce}, |
2016 | { 0x00009974, 0x00000000 }, | 2017 | {0x00009970, 0x1927b515}, |
2017 | { 0x00009978, 0x00000001 }, | 2018 | {0x00009974, 0x00000000}, |
2018 | { 0x0000997c, 0x00000000 }, | 2019 | {0x00009978, 0x00000001}, |
2019 | { 0x00009980, 0x00000000 }, | 2020 | {0x0000997c, 0x00000000}, |
2020 | { 0x00009984, 0x00000000 }, | 2021 | {0x00009980, 0x00000000}, |
2021 | { 0x00009988, 0x00000000 }, | 2022 | {0x00009984, 0x00000000}, |
2022 | { 0x0000998c, 0x00000000 }, | 2023 | {0x00009988, 0x00000000}, |
2023 | { 0x00009990, 0x00000000 }, | 2024 | {0x0000998c, 0x00000000}, |
2024 | { 0x00009994, 0x00000000 }, | 2025 | {0x00009990, 0x00000000}, |
2025 | { 0x00009998, 0x00000000 }, | 2026 | {0x00009994, 0x00000000}, |
2026 | { 0x0000999c, 0x00000000 }, | 2027 | {0x00009998, 0x00000000}, |
2027 | { 0x000099a0, 0x00000000 }, | 2028 | {0x0000999c, 0x00000000}, |
2028 | { 0x000099a4, 0x00000001 }, | 2029 | {0x000099a0, 0x00000000}, |
2029 | { 0x000099a8, 0x201fff00 }, | 2030 | {0x000099a4, 0x00000001}, |
2030 | { 0x000099ac, 0x2def0a00 }, | 2031 | {0x000099a8, 0x201fff00}, |
2031 | { 0x000099b0, 0x03051000 }, | 2032 | {0x000099ac, 0x2def0a00}, |
2032 | { 0x000099b4, 0x00000820 }, | 2033 | {0x000099b0, 0x03051000}, |
2033 | { 0x000099dc, 0x00000000 }, | 2034 | {0x000099b4, 0x00000820}, |
2034 | { 0x000099e0, 0x00000000 }, | 2035 | {0x000099dc, 0x00000000}, |
2035 | { 0x000099e4, 0xaaaaaaaa }, | 2036 | {0x000099e0, 0x00000000}, |
2036 | { 0x000099e8, 0x3c466478 }, | 2037 | {0x000099e4, 0xaaaaaaaa}, |
2037 | { 0x000099ec, 0x0cc80caa }, | 2038 | {0x000099e8, 0x3c466478}, |
2038 | { 0x000099f0, 0x00000000 }, | 2039 | {0x000099ec, 0x0cc80caa}, |
2039 | { 0x0000a208, 0x803e6788 }, | 2040 | {0x000099f0, 0x00000000}, |
2040 | { 0x0000a210, 0x4080a333 }, | 2041 | {0x0000a208, 0x803e6788}, |
2041 | { 0x0000a214, 0x00206c10 }, | 2042 | {0x0000a210, 0x4080a333}, |
2042 | { 0x0000a218, 0x009c4060 }, | 2043 | {0x0000a214, 0x00206c10}, |
2043 | { 0x0000a220, 0x01834061 }, | 2044 | {0x0000a218, 0x009c4060}, |
2044 | { 0x0000a224, 0x00000400 }, | 2045 | {0x0000a220, 0x01834061}, |
2045 | { 0x0000a228, 0x000003b5 }, | 2046 | {0x0000a224, 0x00000400}, |
2046 | { 0x0000a22c, 0x00000000 }, | 2047 | {0x0000a228, 0x000003b5}, |
2047 | { 0x0000a234, 0x20202020 }, | 2048 | {0x0000a22c, 0x00000000}, |
2048 | { 0x0000a238, 0x20202020 }, | 2049 | {0x0000a234, 0x20202020}, |
2049 | { 0x0000a244, 0x00000000 }, | 2050 | {0x0000a238, 0x20202020}, |
2050 | { 0x0000a248, 0xfffffffc }, | 2051 | {0x0000a244, 0x00000000}, |
2051 | { 0x0000a24c, 0x00000000 }, | 2052 | {0x0000a248, 0xfffffffc}, |
2052 | { 0x0000a254, 0x00000000 }, | 2053 | {0x0000a24c, 0x00000000}, |
2053 | { 0x0000a258, 0x0ccb5380 }, | 2054 | {0x0000a254, 0x00000000}, |
2054 | { 0x0000a25c, 0x15151501 }, | 2055 | {0x0000a258, 0x0ccb5380}, |
2055 | { 0x0000a260, 0xdfa90f01 }, | 2056 | {0x0000a25c, 0x15151501}, |
2056 | { 0x0000a268, 0x00000000 }, | 2057 | {0x0000a260, 0xdfa90f01}, |
2057 | { 0x0000a26c, 0x0ebae9e6 }, | 2058 | {0x0000a268, 0x00000000}, |
2058 | { 0x0000d270, 0x0d820820 }, | 2059 | {0x0000a26c, 0x0ebae9e6}, |
2059 | { 0x0000a278, 0x39ce739c }, | 2060 | {0x0000d270, 0x0d820820}, |
2060 | { 0x0000a27c, 0x050e039c }, | 2061 | {0x0000a278, 0x39ce739c}, |
2061 | { 0x0000d35c, 0x07ffffef }, | 2062 | {0x0000a27c, 0x050e039c}, |
2062 | { 0x0000d360, 0x0fffffe7 }, | 2063 | {0x0000d35c, 0x07ffffef}, |
2063 | { 0x0000d364, 0x17ffffe5 }, | 2064 | {0x0000d360, 0x0fffffe7}, |
2064 | { 0x0000d368, 0x1fffffe4 }, | 2065 | {0x0000d364, 0x17ffffe5}, |
2065 | { 0x0000d36c, 0x37ffffe3 }, | 2066 | {0x0000d368, 0x1fffffe4}, |
2066 | { 0x0000d370, 0x3fffffe3 }, | 2067 | {0x0000d36c, 0x37ffffe3}, |
2067 | { 0x0000d374, 0x57ffffe3 }, | 2068 | {0x0000d370, 0x3fffffe3}, |
2068 | { 0x0000d378, 0x5fffffe2 }, | 2069 | {0x0000d374, 0x57ffffe3}, |
2069 | { 0x0000d37c, 0x7fffffe2 }, | 2070 | {0x0000d378, 0x5fffffe2}, |
2070 | { 0x0000d380, 0x7f3c7bba }, | 2071 | {0x0000d37c, 0x7fffffe2}, |
2071 | { 0x0000d384, 0xf3307ff0 }, | 2072 | {0x0000d380, 0x7f3c7bba}, |
2072 | { 0x0000a388, 0x0c000000 }, | 2073 | {0x0000d384, 0xf3307ff0}, |
2073 | { 0x0000a38c, 0x20202020 }, | 2074 | {0x0000a388, 0x0c000000}, |
2074 | { 0x0000a390, 0x20202020 }, | 2075 | {0x0000a38c, 0x20202020}, |
2075 | { 0x0000a394, 0x39ce739c }, | 2076 | {0x0000a390, 0x20202020}, |
2076 | { 0x0000a398, 0x0000039c }, | 2077 | {0x0000a394, 0x39ce739c}, |
2077 | { 0x0000a39c, 0x00000001 }, | 2078 | {0x0000a398, 0x0000039c}, |
2078 | { 0x0000a3a0, 0x00000000 }, | 2079 | {0x0000a39c, 0x00000001}, |
2079 | { 0x0000a3a4, 0x00000000 }, | 2080 | {0x0000a3a0, 0x00000000}, |
2080 | { 0x0000a3a8, 0x00000000 }, | 2081 | {0x0000a3a4, 0x00000000}, |
2081 | { 0x0000a3ac, 0x00000000 }, | 2082 | {0x0000a3a8, 0x00000000}, |
2082 | { 0x0000a3b0, 0x00000000 }, | 2083 | {0x0000a3ac, 0x00000000}, |
2083 | { 0x0000a3b4, 0x00000000 }, | 2084 | {0x0000a3b0, 0x00000000}, |
2084 | { 0x0000a3b8, 0x00000000 }, | 2085 | {0x0000a3b4, 0x00000000}, |
2085 | { 0x0000a3bc, 0x00000000 }, | 2086 | {0x0000a3b8, 0x00000000}, |
2086 | { 0x0000a3c0, 0x00000000 }, | 2087 | {0x0000a3bc, 0x00000000}, |
2087 | { 0x0000a3c4, 0x00000000 }, | 2088 | {0x0000a3c0, 0x00000000}, |
2088 | { 0x0000a3cc, 0x20202020 }, | 2089 | {0x0000a3c4, 0x00000000}, |
2089 | { 0x0000a3d0, 0x20202020 }, | 2090 | {0x0000a3cc, 0x20202020}, |
2090 | { 0x0000a3d4, 0x20202020 }, | 2091 | {0x0000a3d0, 0x20202020}, |
2091 | { 0x0000a3dc, 0x39ce739c }, | 2092 | {0x0000a3d4, 0x20202020}, |
2092 | { 0x0000a3e0, 0x0000039c }, | 2093 | {0x0000a3dc, 0x39ce739c}, |
2093 | { 0x0000a3e4, 0x00000000 }, | 2094 | {0x0000a3e0, 0x0000039c}, |
2094 | { 0x0000a3e8, 0x18c43433 }, | 2095 | {0x0000a3e4, 0x00000000}, |
2095 | { 0x0000a3ec, 0x00f70081 }, | 2096 | {0x0000a3e8, 0x18c43433}, |
2096 | { 0x00007800, 0x00140000 }, | 2097 | {0x0000a3ec, 0x00f70081}, |
2097 | { 0x00007804, 0x0e4548d8 }, | 2098 | {0x00007800, 0x00140000}, |
2098 | { 0x00007808, 0x54214514 }, | 2099 | {0x00007804, 0x0e4548d8}, |
2099 | { 0x0000780c, 0x02025820 }, | 2100 | {0x00007808, 0x54214514}, |
2100 | { 0x00007810, 0x71c0d388 }, | 2101 | {0x0000780c, 0x02025820}, |
2101 | { 0x00007814, 0x924934a8 }, | 2102 | {0x00007810, 0x71c0d388}, |
2102 | { 0x0000781c, 0x00000000 }, | 2103 | {0x00007814, 0x924934a8}, |
2103 | { 0x00007820, 0x00000c04 }, | 2104 | {0x0000781c, 0x00000000}, |
2104 | { 0x00007824, 0x00d86fff }, | 2105 | {0x00007820, 0x00000c04}, |
2105 | { 0x00007828, 0x26d2491b }, | 2106 | {0x00007824, 0x00d86fff}, |
2106 | { 0x0000782c, 0x6e36d97b }, | 2107 | {0x00007828, 0x26d2491b}, |
2107 | { 0x00007830, 0xedb6d96c }, | 2108 | {0x0000782c, 0x6e36d97b}, |
2108 | { 0x00007834, 0x71400086 }, | 2109 | {0x00007830, 0xedb6d96c}, |
2109 | { 0x00007838, 0xfac68800 }, | 2110 | {0x00007834, 0x71400086}, |
2110 | { 0x0000783c, 0x0001fffe }, | 2111 | {0x00007838, 0xfac68800}, |
2111 | { 0x00007840, 0xffeb1a20 }, | 2112 | {0x0000783c, 0x0001fffe}, |
2112 | { 0x00007844, 0x000c0db6 }, | 2113 | {0x00007840, 0xffeb1a20}, |
2113 | { 0x00007848, 0x6db61b6f }, | 2114 | {0x00007844, 0x000c0db6}, |
2114 | { 0x0000784c, 0x6d9b66db }, | 2115 | {0x00007848, 0x6db61b6f}, |
2115 | { 0x00007850, 0x6d8c6dba }, | 2116 | {0x0000784c, 0x6d9b66db}, |
2116 | { 0x00007854, 0x00040000 }, | 2117 | {0x00007850, 0x6d8c6dba}, |
2117 | { 0x00007858, 0xdb003012 }, | 2118 | {0x00007854, 0x00040000}, |
2118 | { 0x0000785c, 0x04924914 }, | 2119 | {0x00007858, 0xdb003012}, |
2119 | { 0x00007860, 0x21084210 }, | 2120 | {0x0000785c, 0x04924914}, |
2120 | { 0x00007864, 0xf7d7ffde }, | 2121 | {0x00007860, 0x21084210}, |
2121 | { 0x00007868, 0xc2034080 }, | 2122 | {0x00007864, 0xf7d7ffde}, |
2122 | { 0x0000786c, 0x48609eb4 }, | 2123 | {0x00007868, 0xc2034080}, |
2123 | { 0x00007870, 0x10142c00 }, | 2124 | {0x0000786c, 0x48609eb4}, |
2125 | {0x00007870, 0x10142c00}, | ||
2124 | }; | 2126 | }; |
2125 | 2127 | ||
2126 | static const u32 ar9285PciePhy_clkreq_always_on_L1_9285[][2] = { | 2128 | static const u32 ar9285PciePhy_clkreq_always_on_L1_9285[][2] = { |
2127 | {0x00004040, 0x9248fd00 }, | 2129 | /* Addr allmodes */ |
2128 | {0x00004040, 0x24924924 }, | 2130 | {0x00004040, 0x9248fd00}, |
2129 | {0x00004040, 0xa8000019 }, | 2131 | {0x00004040, 0x24924924}, |
2130 | {0x00004040, 0x13160820 }, | 2132 | {0x00004040, 0xa8000019}, |
2131 | {0x00004040, 0xe5980560 }, | 2133 | {0x00004040, 0x13160820}, |
2132 | {0x00004040, 0xc01dcffd }, | 2134 | {0x00004040, 0xe5980560}, |
2133 | {0x00004040, 0x1aaabe41 }, | 2135 | {0x00004040, 0xc01dcffd}, |
2134 | {0x00004040, 0xbe105554 }, | 2136 | {0x00004040, 0x1aaabe41}, |
2135 | {0x00004040, 0x00043007 }, | 2137 | {0x00004040, 0xbe105554}, |
2136 | {0x00004044, 0x00000000 }, | 2138 | {0x00004040, 0x00043007}, |
2139 | {0x00004044, 0x00000000}, | ||
2137 | }; | 2140 | }; |
2138 | 2141 | ||
2139 | static const u32 ar9285PciePhy_clkreq_off_L1_9285[][2] = { | 2142 | static const u32 ar9285PciePhy_clkreq_off_L1_9285[][2] = { |
2140 | {0x00004040, 0x9248fd00 }, | 2143 | /* Addr allmodes */ |
2141 | {0x00004040, 0x24924924 }, | 2144 | {0x00004040, 0x9248fd00}, |
2142 | {0x00004040, 0xa8000019 }, | 2145 | {0x00004040, 0x24924924}, |
2143 | {0x00004040, 0x13160820 }, | 2146 | {0x00004040, 0xa8000019}, |
2144 | {0x00004040, 0xe5980560 }, | 2147 | {0x00004040, 0x13160820}, |
2145 | {0x00004040, 0xc01dcffc }, | 2148 | {0x00004040, 0xe5980560}, |
2146 | {0x00004040, 0x1aaabe41 }, | 2149 | {0x00004040, 0xc01dcffc}, |
2147 | {0x00004040, 0xbe105554 }, | 2150 | {0x00004040, 0x1aaabe41}, |
2148 | {0x00004040, 0x00043007 }, | 2151 | {0x00004040, 0xbe105554}, |
2149 | {0x00004044, 0x00000000 }, | 2152 | {0x00004040, 0x00043007}, |
2153 | {0x00004044, 0x00000000}, | ||
2150 | }; | 2154 | }; |
2151 | 2155 | ||
2152 | /* AR9285 v1_2 PCI Register Writes. Created: 04/13/09 */ | ||
2153 | static const u32 ar9285Modes_9285_1_2[][6] = { | 2156 | static const u32 ar9285Modes_9285_1_2[][6] = { |
2154 | /* Address 5G-HT20 5G-HT40 2G-HT40 2G-HT20 Turbo */ | 2157 | {0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0}, |
2155 | { 0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0 }, | 2158 | {0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0}, |
2156 | { 0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0 }, | 2159 | {0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180}, |
2157 | { 0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180 }, | 2160 | {0x000010f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008}, |
2158 | { 0x000010f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008 }, | 2161 | {0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00, 0x06e006e0}, |
2159 | { 0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00, 0x06e006e0 }, | 2162 | {0x0000801c, 0x128d8027, 0x128d804f, 0x12e00057, 0x12e0002b, 0x0988004f}, |
2160 | { 0x0000801c, 0x128d8027, 0x128d804f, 0x12e00057, 0x12e0002b, 0x0988004f }, | 2163 | {0x00008318, 0x00003e80, 0x00007d00, 0x00006880, 0x00003440, 0x00006880}, |
2161 | { 0x00008318, 0x00003e80, 0x00007d00, 0x00006880, 0x00003440, 0x00006880 }, | 2164 | {0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303}, |
2162 | { 0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303 }, | 2165 | {0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200}, |
2163 | { 0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200 }, | 2166 | {0x00009824, 0x01000e0e, 0x01000e0e, 0x01000e0e, 0x01000e0e, 0x01000e0e}, |
2164 | { 0x00009824, 0x01000e0e, 0x01000e0e, 0x01000e0e, 0x01000e0e, 0x01000e0e }, | 2167 | {0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001}, |
2165 | { 0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001 }, | 2168 | {0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, |
2166 | { 0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }, | 2169 | {0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007}, |
2167 | { 0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007 }, | 2170 | {0x00009840, 0x206a012e, 0x206a012e, 0x206a012e, 0x206a012e, 0x206a012e}, |
2168 | { 0x00009840, 0x206a012e, 0x206a012e, 0x206a012e, 0x206a012e, 0x206a012e }, | 2171 | {0x00009844, 0x0372161e, 0x0372161e, 0x03721620, 0x03721620, 0x037216a0}, |
2169 | { 0x00009844, 0x0372161e, 0x0372161e, 0x03721620, 0x03721620, 0x037216a0 }, | 2172 | {0x00009848, 0x00001066, 0x00001066, 0x00001053, 0x00001053, 0x00001059}, |
2170 | { 0x00009848, 0x00001066, 0x00001066, 0x00001053, 0x00001053, 0x00001059 }, | 2173 | {0x0000a848, 0x00001066, 0x00001066, 0x00001053, 0x00001053, 0x00001059}, |
2171 | { 0x0000a848, 0x00001066, 0x00001066, 0x00001053, 0x00001053, 0x00001059 }, | 2174 | {0x00009850, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2}, |
2172 | { 0x00009850, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2 }, | 2175 | {0x00009858, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e}, |
2173 | { 0x00009858, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e }, | 2176 | {0x0000985c, 0x3139605e, 0x3139605e, 0x3137605e, 0x3137605e, 0x3139605e}, |
2174 | { 0x0000985c, 0x3139605e, 0x3139605e, 0x3137605e, 0x3137605e, 0x3139605e }, | 2177 | {0x00009860, 0x00058d18, 0x00058d18, 0x00058d20, 0x00058d20, 0x00058d18}, |
2175 | { 0x00009860, 0x00058d18, 0x00058d18, 0x00058d20, 0x00058d20, 0x00058d18 }, | 2178 | {0x00009864, 0x0000fe00, 0x0000fe00, 0x0001ce00, 0x0001ce00, 0x0001ce00}, |
2176 | { 0x00009864, 0x0000fe00, 0x0000fe00, 0x0001ce00, 0x0001ce00, 0x0001ce00 }, | 2179 | {0x00009868, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0}, |
2177 | { 0x00009868, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0 }, | 2180 | {0x0000986c, 0x06903081, 0x06903081, 0x06903881, 0x06903881, 0x06903881}, |
2178 | { 0x0000986c, 0x06903081, 0x06903081, 0x06903881, 0x06903881, 0x06903881 }, | 2181 | {0x00009914, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898, 0x000007d0}, |
2179 | { 0x00009914, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898, 0x000007d0 }, | 2182 | {0x00009918, 0x0000000a, 0x00000014, 0x00000016, 0x0000000b, 0x00000016}, |
2180 | { 0x00009918, 0x0000000a, 0x00000014, 0x00000016, 0x0000000b, 0x00000016 }, | 2183 | {0x00009924, 0xd00a8007, 0xd00a8007, 0xd00a800d, 0xd00a800d, 0xd00a800d}, |
2181 | { 0x00009924, 0xd00a8007, 0xd00a8007, 0xd00a800d, 0xd00a800d, 0xd00a800d }, | 2184 | {0x00009944, 0xffbc1010, 0xffbc1010, 0xffbc1020, 0xffbc1020, 0xffbc1010}, |
2182 | { 0x00009944, 0xffbc1010, 0xffbc1010, 0xffbc1020, 0xffbc1020, 0xffbc1010 }, | 2185 | {0x00009960, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
2183 | { 0x00009960, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 2186 | {0x00009964, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
2184 | { 0x00009964, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 2187 | {0x000099b8, 0x0000421c, 0x0000421c, 0x0000421c, 0x0000421c, 0x0000421c}, |
2185 | { 0x000099b8, 0x0000421c, 0x0000421c, 0x0000421c, 0x0000421c, 0x0000421c }, | 2188 | {0x000099bc, 0x00000600, 0x00000600, 0x00000c00, 0x00000c00, 0x00000c00}, |
2186 | { 0x000099bc, 0x00000600, 0x00000600, 0x00000c00, 0x00000c00, 0x00000c00 }, | 2189 | {0x000099c0, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4}, |
2187 | { 0x000099c0, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4 }, | 2190 | {0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77}, |
2188 | { 0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77 }, | 2191 | {0x000099c8, 0x6af6532f, 0x6af6532f, 0x6af6532f, 0x6af6532f, 0x6af6532f}, |
2189 | { 0x000099c8, 0x6af6532f, 0x6af6532f, 0x6af6532f, 0x6af6532f, 0x6af6532f }, | 2192 | {0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8}, |
2190 | { 0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8 }, | 2193 | {0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384}, |
2191 | { 0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384 }, | 2194 | {0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
2192 | { 0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 2195 | {0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
2193 | { 0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 2196 | {0x00009a00, 0x00000000, 0x00000000, 0x00058084, 0x00058084, 0x00000000}, |
2194 | { 0x00009a00, 0x00000000, 0x00000000, 0x00058084, 0x00058084, 0x00000000 }, | 2197 | {0x00009a04, 0x00000000, 0x00000000, 0x00058088, 0x00058088, 0x00000000}, |
2195 | { 0x00009a04, 0x00000000, 0x00000000, 0x00058088, 0x00058088, 0x00000000 }, | 2198 | {0x00009a08, 0x00000000, 0x00000000, 0x0005808c, 0x0005808c, 0x00000000}, |
2196 | { 0x00009a08, 0x00000000, 0x00000000, 0x0005808c, 0x0005808c, 0x00000000 }, | 2199 | {0x00009a0c, 0x00000000, 0x00000000, 0x00058100, 0x00058100, 0x00000000}, |
2197 | { 0x00009a0c, 0x00000000, 0x00000000, 0x00058100, 0x00058100, 0x00000000 }, | 2200 | {0x00009a10, 0x00000000, 0x00000000, 0x00058104, 0x00058104, 0x00000000}, |
2198 | { 0x00009a10, 0x00000000, 0x00000000, 0x00058104, 0x00058104, 0x00000000 }, | 2201 | {0x00009a14, 0x00000000, 0x00000000, 0x00058108, 0x00058108, 0x00000000}, |
2199 | { 0x00009a14, 0x00000000, 0x00000000, 0x00058108, 0x00058108, 0x00000000 }, | 2202 | {0x00009a18, 0x00000000, 0x00000000, 0x0005810c, 0x0005810c, 0x00000000}, |
2200 | { 0x00009a18, 0x00000000, 0x00000000, 0x0005810c, 0x0005810c, 0x00000000 }, | 2203 | {0x00009a1c, 0x00000000, 0x00000000, 0x00058110, 0x00058110, 0x00000000}, |
2201 | { 0x00009a1c, 0x00000000, 0x00000000, 0x00058110, 0x00058110, 0x00000000 }, | 2204 | {0x00009a20, 0x00000000, 0x00000000, 0x00058114, 0x00058114, 0x00000000}, |
2202 | { 0x00009a20, 0x00000000, 0x00000000, 0x00058114, 0x00058114, 0x00000000 }, | 2205 | {0x00009a24, 0x00000000, 0x00000000, 0x00058180, 0x00058180, 0x00000000}, |
2203 | { 0x00009a24, 0x00000000, 0x00000000, 0x00058180, 0x00058180, 0x00000000 }, | 2206 | {0x00009a28, 0x00000000, 0x00000000, 0x00058184, 0x00058184, 0x00000000}, |
2204 | { 0x00009a28, 0x00000000, 0x00000000, 0x00058184, 0x00058184, 0x00000000 }, | 2207 | {0x00009a2c, 0x00000000, 0x00000000, 0x00058188, 0x00058188, 0x00000000}, |
2205 | { 0x00009a2c, 0x00000000, 0x00000000, 0x00058188, 0x00058188, 0x00000000 }, | 2208 | {0x00009a30, 0x00000000, 0x00000000, 0x0005818c, 0x0005818c, 0x00000000}, |
2206 | { 0x00009a30, 0x00000000, 0x00000000, 0x0005818c, 0x0005818c, 0x00000000 }, | 2209 | {0x00009a34, 0x00000000, 0x00000000, 0x00058190, 0x00058190, 0x00000000}, |
2207 | { 0x00009a34, 0x00000000, 0x00000000, 0x00058190, 0x00058190, 0x00000000 }, | 2210 | {0x00009a38, 0x00000000, 0x00000000, 0x00058194, 0x00058194, 0x00000000}, |
2208 | { 0x00009a38, 0x00000000, 0x00000000, 0x00058194, 0x00058194, 0x00000000 }, | 2211 | {0x00009a3c, 0x00000000, 0x00000000, 0x000581a0, 0x000581a0, 0x00000000}, |
2209 | { 0x00009a3c, 0x00000000, 0x00000000, 0x000581a0, 0x000581a0, 0x00000000 }, | 2212 | {0x00009a40, 0x00000000, 0x00000000, 0x0005820c, 0x0005820c, 0x00000000}, |
2210 | { 0x00009a40, 0x00000000, 0x00000000, 0x0005820c, 0x0005820c, 0x00000000 }, | 2213 | {0x00009a44, 0x00000000, 0x00000000, 0x000581a8, 0x000581a8, 0x00000000}, |
2211 | { 0x00009a44, 0x00000000, 0x00000000, 0x000581a8, 0x000581a8, 0x00000000 }, | 2214 | {0x00009a48, 0x00000000, 0x00000000, 0x00058284, 0x00058284, 0x00000000}, |
2212 | { 0x00009a48, 0x00000000, 0x00000000, 0x00058284, 0x00058284, 0x00000000 }, | 2215 | {0x00009a4c, 0x00000000, 0x00000000, 0x00058288, 0x00058288, 0x00000000}, |
2213 | { 0x00009a4c, 0x00000000, 0x00000000, 0x00058288, 0x00058288, 0x00000000 }, | 2216 | {0x00009a50, 0x00000000, 0x00000000, 0x00058224, 0x00058224, 0x00000000}, |
2214 | { 0x00009a50, 0x00000000, 0x00000000, 0x00058224, 0x00058224, 0x00000000 }, | 2217 | {0x00009a54, 0x00000000, 0x00000000, 0x00058290, 0x00058290, 0x00000000}, |
2215 | { 0x00009a54, 0x00000000, 0x00000000, 0x00058290, 0x00058290, 0x00000000 }, | 2218 | {0x00009a58, 0x00000000, 0x00000000, 0x00058300, 0x00058300, 0x00000000}, |
2216 | { 0x00009a58, 0x00000000, 0x00000000, 0x00058300, 0x00058300, 0x00000000 }, | 2219 | {0x00009a5c, 0x00000000, 0x00000000, 0x00058304, 0x00058304, 0x00000000}, |
2217 | { 0x00009a5c, 0x00000000, 0x00000000, 0x00058304, 0x00058304, 0x00000000 }, | 2220 | {0x00009a60, 0x00000000, 0x00000000, 0x00058308, 0x00058308, 0x00000000}, |
2218 | { 0x00009a60, 0x00000000, 0x00000000, 0x00058308, 0x00058308, 0x00000000 }, | 2221 | {0x00009a64, 0x00000000, 0x00000000, 0x0005830c, 0x0005830c, 0x00000000}, |
2219 | { 0x00009a64, 0x00000000, 0x00000000, 0x0005830c, 0x0005830c, 0x00000000 }, | 2222 | {0x00009a68, 0x00000000, 0x00000000, 0x00058380, 0x00058380, 0x00000000}, |
2220 | { 0x00009a68, 0x00000000, 0x00000000, 0x00058380, 0x00058380, 0x00000000 }, | 2223 | {0x00009a6c, 0x00000000, 0x00000000, 0x00058384, 0x00058384, 0x00000000}, |
2221 | { 0x00009a6c, 0x00000000, 0x00000000, 0x00058384, 0x00058384, 0x00000000 }, | 2224 | {0x00009a70, 0x00000000, 0x00000000, 0x00068700, 0x00068700, 0x00000000}, |
2222 | { 0x00009a70, 0x00000000, 0x00000000, 0x00068700, 0x00068700, 0x00000000 }, | 2225 | {0x00009a74, 0x00000000, 0x00000000, 0x00068704, 0x00068704, 0x00000000}, |
2223 | { 0x00009a74, 0x00000000, 0x00000000, 0x00068704, 0x00068704, 0x00000000 }, | 2226 | {0x00009a78, 0x00000000, 0x00000000, 0x00068708, 0x00068708, 0x00000000}, |
2224 | { 0x00009a78, 0x00000000, 0x00000000, 0x00068708, 0x00068708, 0x00000000 }, | 2227 | {0x00009a7c, 0x00000000, 0x00000000, 0x0006870c, 0x0006870c, 0x00000000}, |
2225 | { 0x00009a7c, 0x00000000, 0x00000000, 0x0006870c, 0x0006870c, 0x00000000 }, | 2228 | {0x00009a80, 0x00000000, 0x00000000, 0x00068780, 0x00068780, 0x00000000}, |
2226 | { 0x00009a80, 0x00000000, 0x00000000, 0x00068780, 0x00068780, 0x00000000 }, | 2229 | {0x00009a84, 0x00000000, 0x00000000, 0x00068784, 0x00068784, 0x00000000}, |
2227 | { 0x00009a84, 0x00000000, 0x00000000, 0x00068784, 0x00068784, 0x00000000 }, | 2230 | {0x00009a88, 0x00000000, 0x00000000, 0x00078b00, 0x00078b00, 0x00000000}, |
2228 | { 0x00009a88, 0x00000000, 0x00000000, 0x00078b00, 0x00078b00, 0x00000000 }, | 2231 | {0x00009a8c, 0x00000000, 0x00000000, 0x00078b04, 0x00078b04, 0x00000000}, |
2229 | { 0x00009a8c, 0x00000000, 0x00000000, 0x00078b04, 0x00078b04, 0x00000000 }, | 2232 | {0x00009a90, 0x00000000, 0x00000000, 0x00078b08, 0x00078b08, 0x00000000}, |
2230 | { 0x00009a90, 0x00000000, 0x00000000, 0x00078b08, 0x00078b08, 0x00000000 }, | 2233 | {0x00009a94, 0x00000000, 0x00000000, 0x00078b0c, 0x00078b0c, 0x00000000}, |
2231 | { 0x00009a94, 0x00000000, 0x00000000, 0x00078b0c, 0x00078b0c, 0x00000000 }, | 2234 | {0x00009a98, 0x00000000, 0x00000000, 0x00078b80, 0x00078b80, 0x00000000}, |
2232 | { 0x00009a98, 0x00000000, 0x00000000, 0x00078b80, 0x00078b80, 0x00000000 }, | 2235 | {0x00009a9c, 0x00000000, 0x00000000, 0x00078b84, 0x00078b84, 0x00000000}, |
2233 | { 0x00009a9c, 0x00000000, 0x00000000, 0x00078b84, 0x00078b84, 0x00000000 }, | 2236 | {0x00009aa0, 0x00000000, 0x00000000, 0x00078b88, 0x00078b88, 0x00000000}, |
2234 | { 0x00009aa0, 0x00000000, 0x00000000, 0x00078b88, 0x00078b88, 0x00000000 }, | 2237 | {0x00009aa4, 0x00000000, 0x00000000, 0x00078b8c, 0x00078b8c, 0x00000000}, |
2235 | { 0x00009aa4, 0x00000000, 0x00000000, 0x00078b8c, 0x00078b8c, 0x00000000 }, | 2238 | {0x00009aa8, 0x00000000, 0x00000000, 0x00078b90, 0x00078b90, 0x00000000}, |
2236 | { 0x00009aa8, 0x00000000, 0x00000000, 0x00078b90, 0x00078b90, 0x00000000 }, | 2239 | {0x00009aac, 0x00000000, 0x00000000, 0x000caf80, 0x000caf80, 0x00000000}, |
2237 | { 0x00009aac, 0x00000000, 0x00000000, 0x000caf80, 0x000caf80, 0x00000000 }, | 2240 | {0x00009ab0, 0x00000000, 0x00000000, 0x000caf84, 0x000caf84, 0x00000000}, |
2238 | { 0x00009ab0, 0x00000000, 0x00000000, 0x000caf84, 0x000caf84, 0x00000000 }, | 2241 | {0x00009ab4, 0x00000000, 0x00000000, 0x000caf88, 0x000caf88, 0x00000000}, |
2239 | { 0x00009ab4, 0x00000000, 0x00000000, 0x000caf88, 0x000caf88, 0x00000000 }, | 2242 | {0x00009ab8, 0x00000000, 0x00000000, 0x000caf8c, 0x000caf8c, 0x00000000}, |
2240 | { 0x00009ab8, 0x00000000, 0x00000000, 0x000caf8c, 0x000caf8c, 0x00000000 }, | 2243 | {0x00009abc, 0x00000000, 0x00000000, 0x000caf90, 0x000caf90, 0x00000000}, |
2241 | { 0x00009abc, 0x00000000, 0x00000000, 0x000caf90, 0x000caf90, 0x00000000 }, | 2244 | {0x00009ac0, 0x00000000, 0x00000000, 0x000db30c, 0x000db30c, 0x00000000}, |
2242 | { 0x00009ac0, 0x00000000, 0x00000000, 0x000db30c, 0x000db30c, 0x00000000 }, | 2245 | {0x00009ac4, 0x00000000, 0x00000000, 0x000db310, 0x000db310, 0x00000000}, |
2243 | { 0x00009ac4, 0x00000000, 0x00000000, 0x000db310, 0x000db310, 0x00000000 }, | 2246 | {0x00009ac8, 0x00000000, 0x00000000, 0x000db384, 0x000db384, 0x00000000}, |
2244 | { 0x00009ac8, 0x00000000, 0x00000000, 0x000db384, 0x000db384, 0x00000000 }, | 2247 | {0x00009acc, 0x00000000, 0x00000000, 0x000db388, 0x000db388, 0x00000000}, |
2245 | { 0x00009acc, 0x00000000, 0x00000000, 0x000db388, 0x000db388, 0x00000000 }, | 2248 | {0x00009ad0, 0x00000000, 0x00000000, 0x000db324, 0x000db324, 0x00000000}, |
2246 | { 0x00009ad0, 0x00000000, 0x00000000, 0x000db324, 0x000db324, 0x00000000 }, | 2249 | {0x00009ad4, 0x00000000, 0x00000000, 0x000eb704, 0x000eb704, 0x00000000}, |
2247 | { 0x00009ad4, 0x00000000, 0x00000000, 0x000eb704, 0x000eb704, 0x00000000 }, | 2250 | {0x00009ad8, 0x00000000, 0x00000000, 0x000eb6a4, 0x000eb6a4, 0x00000000}, |
2248 | { 0x00009ad8, 0x00000000, 0x00000000, 0x000eb6a4, 0x000eb6a4, 0x00000000 }, | 2251 | {0x00009adc, 0x00000000, 0x00000000, 0x000eb6a8, 0x000eb6a8, 0x00000000}, |
2249 | { 0x00009adc, 0x00000000, 0x00000000, 0x000eb6a8, 0x000eb6a8, 0x00000000 }, | 2252 | {0x00009ae0, 0x00000000, 0x00000000, 0x000eb710, 0x000eb710, 0x00000000}, |
2250 | { 0x00009ae0, 0x00000000, 0x00000000, 0x000eb710, 0x000eb710, 0x00000000 }, | 2253 | {0x00009ae4, 0x00000000, 0x00000000, 0x000eb714, 0x000eb714, 0x00000000}, |
2251 | { 0x00009ae4, 0x00000000, 0x00000000, 0x000eb714, 0x000eb714, 0x00000000 }, | 2254 | {0x00009ae8, 0x00000000, 0x00000000, 0x000eb720, 0x000eb720, 0x00000000}, |
2252 | { 0x00009ae8, 0x00000000, 0x00000000, 0x000eb720, 0x000eb720, 0x00000000 }, | 2255 | {0x00009aec, 0x00000000, 0x00000000, 0x000eb724, 0x000eb724, 0x00000000}, |
2253 | { 0x00009aec, 0x00000000, 0x00000000, 0x000eb724, 0x000eb724, 0x00000000 }, | 2256 | {0x00009af0, 0x00000000, 0x00000000, 0x000eb728, 0x000eb728, 0x00000000}, |
2254 | { 0x00009af0, 0x00000000, 0x00000000, 0x000eb728, 0x000eb728, 0x00000000 }, | 2257 | {0x00009af4, 0x00000000, 0x00000000, 0x000eb72c, 0x000eb72c, 0x00000000}, |
2255 | { 0x00009af4, 0x00000000, 0x00000000, 0x000eb72c, 0x000eb72c, 0x00000000 }, | 2258 | {0x00009af8, 0x00000000, 0x00000000, 0x000eb7a0, 0x000eb7a0, 0x00000000}, |
2256 | { 0x00009af8, 0x00000000, 0x00000000, 0x000eb7a0, 0x000eb7a0, 0x00000000 }, | 2259 | {0x00009afc, 0x00000000, 0x00000000, 0x000eb7a4, 0x000eb7a4, 0x00000000}, |
2257 | { 0x00009afc, 0x00000000, 0x00000000, 0x000eb7a4, 0x000eb7a4, 0x00000000 }, | 2260 | {0x00009b00, 0x00000000, 0x00000000, 0x000eb7a8, 0x000eb7a8, 0x00000000}, |
2258 | { 0x00009b00, 0x00000000, 0x00000000, 0x000eb7a8, 0x000eb7a8, 0x00000000 }, | 2261 | {0x00009b04, 0x00000000, 0x00000000, 0x000eb7b0, 0x000eb7b0, 0x00000000}, |
2259 | { 0x00009b04, 0x00000000, 0x00000000, 0x000eb7b0, 0x000eb7b0, 0x00000000 }, | 2262 | {0x00009b08, 0x00000000, 0x00000000, 0x000eb7b4, 0x000eb7b4, 0x00000000}, |
2260 | { 0x00009b08, 0x00000000, 0x00000000, 0x000eb7b4, 0x000eb7b4, 0x00000000 }, | 2263 | {0x00009b0c, 0x00000000, 0x00000000, 0x000eb7b8, 0x000eb7b8, 0x00000000}, |
2261 | { 0x00009b0c, 0x00000000, 0x00000000, 0x000eb7b8, 0x000eb7b8, 0x00000000 }, | 2264 | {0x00009b10, 0x00000000, 0x00000000, 0x000eb7a5, 0x000eb7a5, 0x00000000}, |
2262 | { 0x00009b10, 0x00000000, 0x00000000, 0x000eb7a5, 0x000eb7a5, 0x00000000 }, | 2265 | {0x00009b14, 0x00000000, 0x00000000, 0x000eb7a9, 0x000eb7a9, 0x00000000}, |
2263 | { 0x00009b14, 0x00000000, 0x00000000, 0x000eb7a9, 0x000eb7a9, 0x00000000 }, | 2266 | {0x00009b18, 0x00000000, 0x00000000, 0x000eb7ad, 0x000eb7ad, 0x00000000}, |
2264 | { 0x00009b18, 0x00000000, 0x00000000, 0x000eb7ad, 0x000eb7ad, 0x00000000 }, | 2267 | {0x00009b1c, 0x00000000, 0x00000000, 0x000eb7b1, 0x000eb7b1, 0x00000000}, |
2265 | { 0x00009b1c, 0x00000000, 0x00000000, 0x000eb7b1, 0x000eb7b1, 0x00000000 }, | 2268 | {0x00009b20, 0x00000000, 0x00000000, 0x000eb7b5, 0x000eb7b5, 0x00000000}, |
2266 | { 0x00009b20, 0x00000000, 0x00000000, 0x000eb7b5, 0x000eb7b5, 0x00000000 }, | 2269 | {0x00009b24, 0x00000000, 0x00000000, 0x000eb7b9, 0x000eb7b9, 0x00000000}, |
2267 | { 0x00009b24, 0x00000000, 0x00000000, 0x000eb7b9, 0x000eb7b9, 0x00000000 }, | 2270 | {0x00009b28, 0x00000000, 0x00000000, 0x000eb7c5, 0x000eb7c5, 0x00000000}, |
2268 | { 0x00009b28, 0x00000000, 0x00000000, 0x000eb7c5, 0x000eb7c5, 0x00000000 }, | 2271 | {0x00009b2c, 0x00000000, 0x00000000, 0x000eb7c9, 0x000eb7c9, 0x00000000}, |
2269 | { 0x00009b2c, 0x00000000, 0x00000000, 0x000eb7c9, 0x000eb7c9, 0x00000000 }, | 2272 | {0x00009b30, 0x00000000, 0x00000000, 0x000eb7d1, 0x000eb7d1, 0x00000000}, |
2270 | { 0x00009b30, 0x00000000, 0x00000000, 0x000eb7d1, 0x000eb7d1, 0x00000000 }, | 2273 | {0x00009b34, 0x00000000, 0x00000000, 0x000eb7d5, 0x000eb7d5, 0x00000000}, |
2271 | { 0x00009b34, 0x00000000, 0x00000000, 0x000eb7d5, 0x000eb7d5, 0x00000000 }, | 2274 | {0x00009b38, 0x00000000, 0x00000000, 0x000eb7d9, 0x000eb7d9, 0x00000000}, |
2272 | { 0x00009b38, 0x00000000, 0x00000000, 0x000eb7d9, 0x000eb7d9, 0x00000000 }, | 2275 | {0x00009b3c, 0x00000000, 0x00000000, 0x000eb7c6, 0x000eb7c6, 0x00000000}, |
2273 | { 0x00009b3c, 0x00000000, 0x00000000, 0x000eb7c6, 0x000eb7c6, 0x00000000 }, | 2276 | {0x00009b40, 0x00000000, 0x00000000, 0x000eb7ca, 0x000eb7ca, 0x00000000}, |
2274 | { 0x00009b40, 0x00000000, 0x00000000, 0x000eb7ca, 0x000eb7ca, 0x00000000 }, | 2277 | {0x00009b44, 0x00000000, 0x00000000, 0x000eb7ce, 0x000eb7ce, 0x00000000}, |
2275 | { 0x00009b44, 0x00000000, 0x00000000, 0x000eb7ce, 0x000eb7ce, 0x00000000 }, | 2278 | {0x00009b48, 0x00000000, 0x00000000, 0x000eb7d2, 0x000eb7d2, 0x00000000}, |
2276 | { 0x00009b48, 0x00000000, 0x00000000, 0x000eb7d2, 0x000eb7d2, 0x00000000 }, | 2279 | {0x00009b4c, 0x00000000, 0x00000000, 0x000eb7d6, 0x000eb7d6, 0x00000000}, |
2277 | { 0x00009b4c, 0x00000000, 0x00000000, 0x000eb7d6, 0x000eb7d6, 0x00000000 }, | 2280 | {0x00009b50, 0x00000000, 0x00000000, 0x000eb7c3, 0x000eb7c3, 0x00000000}, |
2278 | { 0x00009b50, 0x00000000, 0x00000000, 0x000eb7c3, 0x000eb7c3, 0x00000000 }, | 2281 | {0x00009b54, 0x00000000, 0x00000000, 0x000eb7c7, 0x000eb7c7, 0x00000000}, |
2279 | { 0x00009b54, 0x00000000, 0x00000000, 0x000eb7c7, 0x000eb7c7, 0x00000000 }, | 2282 | {0x00009b58, 0x00000000, 0x00000000, 0x000eb7cb, 0x000eb7cb, 0x00000000}, |
2280 | { 0x00009b58, 0x00000000, 0x00000000, 0x000eb7cb, 0x000eb7cb, 0x00000000 }, | 2283 | {0x00009b5c, 0x00000000, 0x00000000, 0x000eb7cf, 0x000eb7cf, 0x00000000}, |
2281 | { 0x00009b5c, 0x00000000, 0x00000000, 0x000eb7cf, 0x000eb7cf, 0x00000000 }, | 2284 | {0x00009b60, 0x00000000, 0x00000000, 0x000eb7d7, 0x000eb7d7, 0x00000000}, |
2282 | { 0x00009b60, 0x00000000, 0x00000000, 0x000eb7d7, 0x000eb7d7, 0x00000000 }, | 2285 | {0x00009b64, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2283 | { 0x00009b64, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2286 | {0x00009b68, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2284 | { 0x00009b68, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2287 | {0x00009b6c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2285 | { 0x00009b6c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2288 | {0x00009b70, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2286 | { 0x00009b70, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2289 | {0x00009b74, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2287 | { 0x00009b74, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2290 | {0x00009b78, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2288 | { 0x00009b78, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2291 | {0x00009b7c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2289 | { 0x00009b7c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2292 | {0x00009b80, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2290 | { 0x00009b80, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2293 | {0x00009b84, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2291 | { 0x00009b84, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2294 | {0x00009b88, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2292 | { 0x00009b88, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2295 | {0x00009b8c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2293 | { 0x00009b8c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2296 | {0x00009b90, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2294 | { 0x00009b90, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2297 | {0x00009b94, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2295 | { 0x00009b94, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2298 | {0x00009b98, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2296 | { 0x00009b98, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2299 | {0x00009b9c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2297 | { 0x00009b9c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2300 | {0x00009ba0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2298 | { 0x00009ba0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2301 | {0x00009ba4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2299 | { 0x00009ba4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2302 | {0x00009ba8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2300 | { 0x00009ba8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2303 | {0x00009bac, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2301 | { 0x00009bac, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2304 | {0x00009bb0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2302 | { 0x00009bb0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2305 | {0x00009bb4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2303 | { 0x00009bb4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2306 | {0x00009bb8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2304 | { 0x00009bb8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2307 | {0x00009bbc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2305 | { 0x00009bbc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2308 | {0x00009bc0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2306 | { 0x00009bc0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2309 | {0x00009bc4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2307 | { 0x00009bc4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2310 | {0x00009bc8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2308 | { 0x00009bc8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2311 | {0x00009bcc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2309 | { 0x00009bcc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2312 | {0x00009bd0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2310 | { 0x00009bd0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2313 | {0x00009bd4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2311 | { 0x00009bd4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2314 | {0x00009bd8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2312 | { 0x00009bd8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2315 | {0x00009bdc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2313 | { 0x00009bdc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2316 | {0x00009be0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2314 | { 0x00009be0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2317 | {0x00009be4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2315 | { 0x00009be4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2318 | {0x00009be8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2316 | { 0x00009be8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2319 | {0x00009bec, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2317 | { 0x00009bec, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2320 | {0x00009bf0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2318 | { 0x00009bf0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2321 | {0x00009bf4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2319 | { 0x00009bf4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2322 | {0x00009bf8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2320 | { 0x00009bf8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2323 | {0x00009bfc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2321 | { 0x00009bfc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2324 | {0x0000aa00, 0x00000000, 0x00000000, 0x00058084, 0x00058084, 0x00000000}, |
2322 | { 0x0000aa00, 0x00000000, 0x00000000, 0x00058084, 0x00058084, 0x00000000 }, | 2325 | {0x0000aa04, 0x00000000, 0x00000000, 0x00058088, 0x00058088, 0x00000000}, |
2323 | { 0x0000aa04, 0x00000000, 0x00000000, 0x00058088, 0x00058088, 0x00000000 }, | 2326 | {0x0000aa08, 0x00000000, 0x00000000, 0x0005808c, 0x0005808c, 0x00000000}, |
2324 | { 0x0000aa08, 0x00000000, 0x00000000, 0x0005808c, 0x0005808c, 0x00000000 }, | 2327 | {0x0000aa0c, 0x00000000, 0x00000000, 0x00058100, 0x00058100, 0x00000000}, |
2325 | { 0x0000aa0c, 0x00000000, 0x00000000, 0x00058100, 0x00058100, 0x00000000 }, | 2328 | {0x0000aa10, 0x00000000, 0x00000000, 0x00058104, 0x00058104, 0x00000000}, |
2326 | { 0x0000aa10, 0x00000000, 0x00000000, 0x00058104, 0x00058104, 0x00000000 }, | 2329 | {0x0000aa14, 0x00000000, 0x00000000, 0x00058108, 0x00058108, 0x00000000}, |
2327 | { 0x0000aa14, 0x00000000, 0x00000000, 0x00058108, 0x00058108, 0x00000000 }, | 2330 | {0x0000aa18, 0x00000000, 0x00000000, 0x0005810c, 0x0005810c, 0x00000000}, |
2328 | { 0x0000aa18, 0x00000000, 0x00000000, 0x0005810c, 0x0005810c, 0x00000000 }, | 2331 | {0x0000aa1c, 0x00000000, 0x00000000, 0x00058110, 0x00058110, 0x00000000}, |
2329 | { 0x0000aa1c, 0x00000000, 0x00000000, 0x00058110, 0x00058110, 0x00000000 }, | 2332 | {0x0000aa20, 0x00000000, 0x00000000, 0x00058114, 0x00058114, 0x00000000}, |
2330 | { 0x0000aa20, 0x00000000, 0x00000000, 0x00058114, 0x00058114, 0x00000000 }, | 2333 | {0x0000aa24, 0x00000000, 0x00000000, 0x00058180, 0x00058180, 0x00000000}, |
2331 | { 0x0000aa24, 0x00000000, 0x00000000, 0x00058180, 0x00058180, 0x00000000 }, | 2334 | {0x0000aa28, 0x00000000, 0x00000000, 0x00058184, 0x00058184, 0x00000000}, |
2332 | { 0x0000aa28, 0x00000000, 0x00000000, 0x00058184, 0x00058184, 0x00000000 }, | 2335 | {0x0000aa2c, 0x00000000, 0x00000000, 0x00058188, 0x00058188, 0x00000000}, |
2333 | { 0x0000aa2c, 0x00000000, 0x00000000, 0x00058188, 0x00058188, 0x00000000 }, | 2336 | {0x0000aa30, 0x00000000, 0x00000000, 0x0005818c, 0x0005818c, 0x00000000}, |
2334 | { 0x0000aa30, 0x00000000, 0x00000000, 0x0005818c, 0x0005818c, 0x00000000 }, | 2337 | {0x0000aa34, 0x00000000, 0x00000000, 0x00058190, 0x00058190, 0x00000000}, |
2335 | { 0x0000aa34, 0x00000000, 0x00000000, 0x00058190, 0x00058190, 0x00000000 }, | 2338 | {0x0000aa38, 0x00000000, 0x00000000, 0x00058194, 0x00058194, 0x00000000}, |
2336 | { 0x0000aa38, 0x00000000, 0x00000000, 0x00058194, 0x00058194, 0x00000000 }, | 2339 | {0x0000aa3c, 0x00000000, 0x00000000, 0x000581a0, 0x000581a0, 0x00000000}, |
2337 | { 0x0000aa3c, 0x00000000, 0x00000000, 0x000581a0, 0x000581a0, 0x00000000 }, | 2340 | {0x0000aa40, 0x00000000, 0x00000000, 0x0005820c, 0x0005820c, 0x00000000}, |
2338 | { 0x0000aa40, 0x00000000, 0x00000000, 0x0005820c, 0x0005820c, 0x00000000 }, | 2341 | {0x0000aa44, 0x00000000, 0x00000000, 0x000581a8, 0x000581a8, 0x00000000}, |
2339 | { 0x0000aa44, 0x00000000, 0x00000000, 0x000581a8, 0x000581a8, 0x00000000 }, | 2342 | {0x0000aa48, 0x00000000, 0x00000000, 0x00058284, 0x00058284, 0x00000000}, |
2340 | { 0x0000aa48, 0x00000000, 0x00000000, 0x00058284, 0x00058284, 0x00000000 }, | 2343 | {0x0000aa4c, 0x00000000, 0x00000000, 0x00058288, 0x00058288, 0x00000000}, |
2341 | { 0x0000aa4c, 0x00000000, 0x00000000, 0x00058288, 0x00058288, 0x00000000 }, | 2344 | {0x0000aa50, 0x00000000, 0x00000000, 0x00058224, 0x00058224, 0x00000000}, |
2342 | { 0x0000aa50, 0x00000000, 0x00000000, 0x00058224, 0x00058224, 0x00000000 }, | 2345 | {0x0000aa54, 0x00000000, 0x00000000, 0x00058290, 0x00058290, 0x00000000}, |
2343 | { 0x0000aa54, 0x00000000, 0x00000000, 0x00058290, 0x00058290, 0x00000000 }, | 2346 | {0x0000aa58, 0x00000000, 0x00000000, 0x00058300, 0x00058300, 0x00000000}, |
2344 | { 0x0000aa58, 0x00000000, 0x00000000, 0x00058300, 0x00058300, 0x00000000 }, | 2347 | {0x0000aa5c, 0x00000000, 0x00000000, 0x00058304, 0x00058304, 0x00000000}, |
2345 | { 0x0000aa5c, 0x00000000, 0x00000000, 0x00058304, 0x00058304, 0x00000000 }, | 2348 | {0x0000aa60, 0x00000000, 0x00000000, 0x00058308, 0x00058308, 0x00000000}, |
2346 | { 0x0000aa60, 0x00000000, 0x00000000, 0x00058308, 0x00058308, 0x00000000 }, | 2349 | {0x0000aa64, 0x00000000, 0x00000000, 0x0005830c, 0x0005830c, 0x00000000}, |
2347 | { 0x0000aa64, 0x00000000, 0x00000000, 0x0005830c, 0x0005830c, 0x00000000 }, | 2350 | {0x0000aa68, 0x00000000, 0x00000000, 0x00058380, 0x00058380, 0x00000000}, |
2348 | { 0x0000aa68, 0x00000000, 0x00000000, 0x00058380, 0x00058380, 0x00000000 }, | 2351 | {0x0000aa6c, 0x00000000, 0x00000000, 0x00058384, 0x00058384, 0x00000000}, |
2349 | { 0x0000aa6c, 0x00000000, 0x00000000, 0x00058384, 0x00058384, 0x00000000 }, | 2352 | {0x0000aa70, 0x00000000, 0x00000000, 0x00068700, 0x00068700, 0x00000000}, |
2350 | { 0x0000aa70, 0x00000000, 0x00000000, 0x00068700, 0x00068700, 0x00000000 }, | 2353 | {0x0000aa74, 0x00000000, 0x00000000, 0x00068704, 0x00068704, 0x00000000}, |
2351 | { 0x0000aa74, 0x00000000, 0x00000000, 0x00068704, 0x00068704, 0x00000000 }, | 2354 | {0x0000aa78, 0x00000000, 0x00000000, 0x00068708, 0x00068708, 0x00000000}, |
2352 | { 0x0000aa78, 0x00000000, 0x00000000, 0x00068708, 0x00068708, 0x00000000 }, | 2355 | {0x0000aa7c, 0x00000000, 0x00000000, 0x0006870c, 0x0006870c, 0x00000000}, |
2353 | { 0x0000aa7c, 0x00000000, 0x00000000, 0x0006870c, 0x0006870c, 0x00000000 }, | 2356 | {0x0000aa80, 0x00000000, 0x00000000, 0x00068780, 0x00068780, 0x00000000}, |
2354 | { 0x0000aa80, 0x00000000, 0x00000000, 0x00068780, 0x00068780, 0x00000000 }, | 2357 | {0x0000aa84, 0x00000000, 0x00000000, 0x00068784, 0x00068784, 0x00000000}, |
2355 | { 0x0000aa84, 0x00000000, 0x00000000, 0x00068784, 0x00068784, 0x00000000 }, | 2358 | {0x0000aa88, 0x00000000, 0x00000000, 0x00078b00, 0x00078b00, 0x00000000}, |
2356 | { 0x0000aa88, 0x00000000, 0x00000000, 0x00078b00, 0x00078b00, 0x00000000 }, | 2359 | {0x0000aa8c, 0x00000000, 0x00000000, 0x00078b04, 0x00078b04, 0x00000000}, |
2357 | { 0x0000aa8c, 0x00000000, 0x00000000, 0x00078b04, 0x00078b04, 0x00000000 }, | 2360 | {0x0000aa90, 0x00000000, 0x00000000, 0x00078b08, 0x00078b08, 0x00000000}, |
2358 | { 0x0000aa90, 0x00000000, 0x00000000, 0x00078b08, 0x00078b08, 0x00000000 }, | 2361 | {0x0000aa94, 0x00000000, 0x00000000, 0x00078b0c, 0x00078b0c, 0x00000000}, |
2359 | { 0x0000aa94, 0x00000000, 0x00000000, 0x00078b0c, 0x00078b0c, 0x00000000 }, | 2362 | {0x0000aa98, 0x00000000, 0x00000000, 0x00078b80, 0x00078b80, 0x00000000}, |
2360 | { 0x0000aa98, 0x00000000, 0x00000000, 0x00078b80, 0x00078b80, 0x00000000 }, | 2363 | {0x0000aa9c, 0x00000000, 0x00000000, 0x00078b84, 0x00078b84, 0x00000000}, |
2361 | { 0x0000aa9c, 0x00000000, 0x00000000, 0x00078b84, 0x00078b84, 0x00000000 }, | 2364 | {0x0000aaa0, 0x00000000, 0x00000000, 0x00078b88, 0x00078b88, 0x00000000}, |
2362 | { 0x0000aaa0, 0x00000000, 0x00000000, 0x00078b88, 0x00078b88, 0x00000000 }, | 2365 | {0x0000aaa4, 0x00000000, 0x00000000, 0x00078b8c, 0x00078b8c, 0x00000000}, |
2363 | { 0x0000aaa4, 0x00000000, 0x00000000, 0x00078b8c, 0x00078b8c, 0x00000000 }, | 2366 | {0x0000aaa8, 0x00000000, 0x00000000, 0x00078b90, 0x00078b90, 0x00000000}, |
2364 | { 0x0000aaa8, 0x00000000, 0x00000000, 0x00078b90, 0x00078b90, 0x00000000 }, | 2367 | {0x0000aaac, 0x00000000, 0x00000000, 0x000caf80, 0x000caf80, 0x00000000}, |
2365 | { 0x0000aaac, 0x00000000, 0x00000000, 0x000caf80, 0x000caf80, 0x00000000 }, | 2368 | {0x0000aab0, 0x00000000, 0x00000000, 0x000caf84, 0x000caf84, 0x00000000}, |
2366 | { 0x0000aab0, 0x00000000, 0x00000000, 0x000caf84, 0x000caf84, 0x00000000 }, | 2369 | {0x0000aab4, 0x00000000, 0x00000000, 0x000caf88, 0x000caf88, 0x00000000}, |
2367 | { 0x0000aab4, 0x00000000, 0x00000000, 0x000caf88, 0x000caf88, 0x00000000 }, | 2370 | {0x0000aab8, 0x00000000, 0x00000000, 0x000caf8c, 0x000caf8c, 0x00000000}, |
2368 | { 0x0000aab8, 0x00000000, 0x00000000, 0x000caf8c, 0x000caf8c, 0x00000000 }, | 2371 | {0x0000aabc, 0x00000000, 0x00000000, 0x000caf90, 0x000caf90, 0x00000000}, |
2369 | { 0x0000aabc, 0x00000000, 0x00000000, 0x000caf90, 0x000caf90, 0x00000000 }, | 2372 | {0x0000aac0, 0x00000000, 0x00000000, 0x000db30c, 0x000db30c, 0x00000000}, |
2370 | { 0x0000aac0, 0x00000000, 0x00000000, 0x000db30c, 0x000db30c, 0x00000000 }, | 2373 | {0x0000aac4, 0x00000000, 0x00000000, 0x000db310, 0x000db310, 0x00000000}, |
2371 | { 0x0000aac4, 0x00000000, 0x00000000, 0x000db310, 0x000db310, 0x00000000 }, | 2374 | {0x0000aac8, 0x00000000, 0x00000000, 0x000db384, 0x000db384, 0x00000000}, |
2372 | { 0x0000aac8, 0x00000000, 0x00000000, 0x000db384, 0x000db384, 0x00000000 }, | 2375 | {0x0000aacc, 0x00000000, 0x00000000, 0x000db388, 0x000db388, 0x00000000}, |
2373 | { 0x0000aacc, 0x00000000, 0x00000000, 0x000db388, 0x000db388, 0x00000000 }, | 2376 | {0x0000aad0, 0x00000000, 0x00000000, 0x000db324, 0x000db324, 0x00000000}, |
2374 | { 0x0000aad0, 0x00000000, 0x00000000, 0x000db324, 0x000db324, 0x00000000 }, | 2377 | {0x0000aad4, 0x00000000, 0x00000000, 0x000eb704, 0x000eb704, 0x00000000}, |
2375 | { 0x0000aad4, 0x00000000, 0x00000000, 0x000eb704, 0x000eb704, 0x00000000 }, | 2378 | {0x0000aad8, 0x00000000, 0x00000000, 0x000eb6a4, 0x000eb6a4, 0x00000000}, |
2376 | { 0x0000aad8, 0x00000000, 0x00000000, 0x000eb6a4, 0x000eb6a4, 0x00000000 }, | 2379 | {0x0000aadc, 0x00000000, 0x00000000, 0x000eb6a8, 0x000eb6a8, 0x00000000}, |
2377 | { 0x0000aadc, 0x00000000, 0x00000000, 0x000eb6a8, 0x000eb6a8, 0x00000000 }, | 2380 | {0x0000aae0, 0x00000000, 0x00000000, 0x000eb710, 0x000eb710, 0x00000000}, |
2378 | { 0x0000aae0, 0x00000000, 0x00000000, 0x000eb710, 0x000eb710, 0x00000000 }, | 2381 | {0x0000aae4, 0x00000000, 0x00000000, 0x000eb714, 0x000eb714, 0x00000000}, |
2379 | { 0x0000aae4, 0x00000000, 0x00000000, 0x000eb714, 0x000eb714, 0x00000000 }, | 2382 | {0x0000aae8, 0x00000000, 0x00000000, 0x000eb720, 0x000eb720, 0x00000000}, |
2380 | { 0x0000aae8, 0x00000000, 0x00000000, 0x000eb720, 0x000eb720, 0x00000000 }, | 2383 | {0x0000aaec, 0x00000000, 0x00000000, 0x000eb724, 0x000eb724, 0x00000000}, |
2381 | { 0x0000aaec, 0x00000000, 0x00000000, 0x000eb724, 0x000eb724, 0x00000000 }, | 2384 | {0x0000aaf0, 0x00000000, 0x00000000, 0x000eb728, 0x000eb728, 0x00000000}, |
2382 | { 0x0000aaf0, 0x00000000, 0x00000000, 0x000eb728, 0x000eb728, 0x00000000 }, | 2385 | {0x0000aaf4, 0x00000000, 0x00000000, 0x000eb72c, 0x000eb72c, 0x00000000}, |
2383 | { 0x0000aaf4, 0x00000000, 0x00000000, 0x000eb72c, 0x000eb72c, 0x00000000 }, | 2386 | {0x0000aaf8, 0x00000000, 0x00000000, 0x000eb7a0, 0x000eb7a0, 0x00000000}, |
2384 | { 0x0000aaf8, 0x00000000, 0x00000000, 0x000eb7a0, 0x000eb7a0, 0x00000000 }, | 2387 | {0x0000aafc, 0x00000000, 0x00000000, 0x000eb7a4, 0x000eb7a4, 0x00000000}, |
2385 | { 0x0000aafc, 0x00000000, 0x00000000, 0x000eb7a4, 0x000eb7a4, 0x00000000 }, | 2388 | {0x0000ab00, 0x00000000, 0x00000000, 0x000eb7a8, 0x000eb7a8, 0x00000000}, |
2386 | { 0x0000ab00, 0x00000000, 0x00000000, 0x000eb7a8, 0x000eb7a8, 0x00000000 }, | 2389 | {0x0000ab04, 0x00000000, 0x00000000, 0x000eb7b0, 0x000eb7b0, 0x00000000}, |
2387 | { 0x0000ab04, 0x00000000, 0x00000000, 0x000eb7b0, 0x000eb7b0, 0x00000000 }, | 2390 | {0x0000ab08, 0x00000000, 0x00000000, 0x000eb7b4, 0x000eb7b4, 0x00000000}, |
2388 | { 0x0000ab08, 0x00000000, 0x00000000, 0x000eb7b4, 0x000eb7b4, 0x00000000 }, | 2391 | {0x0000ab0c, 0x00000000, 0x00000000, 0x000eb7b8, 0x000eb7b8, 0x00000000}, |
2389 | { 0x0000ab0c, 0x00000000, 0x00000000, 0x000eb7b8, 0x000eb7b8, 0x00000000 }, | 2392 | {0x0000ab10, 0x00000000, 0x00000000, 0x000eb7a5, 0x000eb7a5, 0x00000000}, |
2390 | { 0x0000ab10, 0x00000000, 0x00000000, 0x000eb7a5, 0x000eb7a5, 0x00000000 }, | 2393 | {0x0000ab14, 0x00000000, 0x00000000, 0x000eb7a9, 0x000eb7a9, 0x00000000}, |
2391 | { 0x0000ab14, 0x00000000, 0x00000000, 0x000eb7a9, 0x000eb7a9, 0x00000000 }, | 2394 | {0x0000ab18, 0x00000000, 0x00000000, 0x000eb7ad, 0x000eb7ad, 0x00000000}, |
2392 | { 0x0000ab18, 0x00000000, 0x00000000, 0x000eb7ad, 0x000eb7ad, 0x00000000 }, | 2395 | {0x0000ab1c, 0x00000000, 0x00000000, 0x000eb7b1, 0x000eb7b1, 0x00000000}, |
2393 | { 0x0000ab1c, 0x00000000, 0x00000000, 0x000eb7b1, 0x000eb7b1, 0x00000000 }, | 2396 | {0x0000ab20, 0x00000000, 0x00000000, 0x000eb7b5, 0x000eb7b5, 0x00000000}, |
2394 | { 0x0000ab20, 0x00000000, 0x00000000, 0x000eb7b5, 0x000eb7b5, 0x00000000 }, | 2397 | {0x0000ab24, 0x00000000, 0x00000000, 0x000eb7b9, 0x000eb7b9, 0x00000000}, |
2395 | { 0x0000ab24, 0x00000000, 0x00000000, 0x000eb7b9, 0x000eb7b9, 0x00000000 }, | 2398 | {0x0000ab28, 0x00000000, 0x00000000, 0x000eb7c5, 0x000eb7c5, 0x00000000}, |
2396 | { 0x0000ab28, 0x00000000, 0x00000000, 0x000eb7c5, 0x000eb7c5, 0x00000000 }, | 2399 | {0x0000ab2c, 0x00000000, 0x00000000, 0x000eb7c9, 0x000eb7c9, 0x00000000}, |
2397 | { 0x0000ab2c, 0x00000000, 0x00000000, 0x000eb7c9, 0x000eb7c9, 0x00000000 }, | 2400 | {0x0000ab30, 0x00000000, 0x00000000, 0x000eb7d1, 0x000eb7d1, 0x00000000}, |
2398 | { 0x0000ab30, 0x00000000, 0x00000000, 0x000eb7d1, 0x000eb7d1, 0x00000000 }, | 2401 | {0x0000ab34, 0x00000000, 0x00000000, 0x000eb7d5, 0x000eb7d5, 0x00000000}, |
2399 | { 0x0000ab34, 0x00000000, 0x00000000, 0x000eb7d5, 0x000eb7d5, 0x00000000 }, | 2402 | {0x0000ab38, 0x00000000, 0x00000000, 0x000eb7d9, 0x000eb7d9, 0x00000000}, |
2400 | { 0x0000ab38, 0x00000000, 0x00000000, 0x000eb7d9, 0x000eb7d9, 0x00000000 }, | 2403 | {0x0000ab3c, 0x00000000, 0x00000000, 0x000eb7c6, 0x000eb7c6, 0x00000000}, |
2401 | { 0x0000ab3c, 0x00000000, 0x00000000, 0x000eb7c6, 0x000eb7c6, 0x00000000 }, | 2404 | {0x0000ab40, 0x00000000, 0x00000000, 0x000eb7ca, 0x000eb7ca, 0x00000000}, |
2402 | { 0x0000ab40, 0x00000000, 0x00000000, 0x000eb7ca, 0x000eb7ca, 0x00000000 }, | 2405 | {0x0000ab44, 0x00000000, 0x00000000, 0x000eb7ce, 0x000eb7ce, 0x00000000}, |
2403 | { 0x0000ab44, 0x00000000, 0x00000000, 0x000eb7ce, 0x000eb7ce, 0x00000000 }, | 2406 | {0x0000ab48, 0x00000000, 0x00000000, 0x000eb7d2, 0x000eb7d2, 0x00000000}, |
2404 | { 0x0000ab48, 0x00000000, 0x00000000, 0x000eb7d2, 0x000eb7d2, 0x00000000 }, | 2407 | {0x0000ab4c, 0x00000000, 0x00000000, 0x000eb7d6, 0x000eb7d6, 0x00000000}, |
2405 | { 0x0000ab4c, 0x00000000, 0x00000000, 0x000eb7d6, 0x000eb7d6, 0x00000000 }, | 2408 | {0x0000ab50, 0x00000000, 0x00000000, 0x000eb7c3, 0x000eb7c3, 0x00000000}, |
2406 | { 0x0000ab50, 0x00000000, 0x00000000, 0x000eb7c3, 0x000eb7c3, 0x00000000 }, | 2409 | {0x0000ab54, 0x00000000, 0x00000000, 0x000eb7c7, 0x000eb7c7, 0x00000000}, |
2407 | { 0x0000ab54, 0x00000000, 0x00000000, 0x000eb7c7, 0x000eb7c7, 0x00000000 }, | 2410 | {0x0000ab58, 0x00000000, 0x00000000, 0x000eb7cb, 0x000eb7cb, 0x00000000}, |
2408 | { 0x0000ab58, 0x00000000, 0x00000000, 0x000eb7cb, 0x000eb7cb, 0x00000000 }, | 2411 | {0x0000ab5c, 0x00000000, 0x00000000, 0x000eb7cf, 0x000eb7cf, 0x00000000}, |
2409 | { 0x0000ab5c, 0x00000000, 0x00000000, 0x000eb7cf, 0x000eb7cf, 0x00000000 }, | 2412 | {0x0000ab60, 0x00000000, 0x00000000, 0x000eb7d7, 0x000eb7d7, 0x00000000}, |
2410 | { 0x0000ab60, 0x00000000, 0x00000000, 0x000eb7d7, 0x000eb7d7, 0x00000000 }, | 2413 | {0x0000ab64, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2411 | { 0x0000ab64, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2414 | {0x0000ab68, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2412 | { 0x0000ab68, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2415 | {0x0000ab6c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2413 | { 0x0000ab6c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2416 | {0x0000ab70, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2414 | { 0x0000ab70, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2417 | {0x0000ab74, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2415 | { 0x0000ab74, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2418 | {0x0000ab78, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2416 | { 0x0000ab78, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2419 | {0x0000ab7c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2417 | { 0x0000ab7c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2420 | {0x0000ab80, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2418 | { 0x0000ab80, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2421 | {0x0000ab84, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2419 | { 0x0000ab84, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2422 | {0x0000ab88, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2420 | { 0x0000ab88, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2423 | {0x0000ab8c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2421 | { 0x0000ab8c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2424 | {0x0000ab90, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2422 | { 0x0000ab90, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2425 | {0x0000ab94, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2423 | { 0x0000ab94, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2426 | {0x0000ab98, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2424 | { 0x0000ab98, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2427 | {0x0000ab9c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2425 | { 0x0000ab9c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2428 | {0x0000aba0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2426 | { 0x0000aba0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2429 | {0x0000aba4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2427 | { 0x0000aba4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2430 | {0x0000aba8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2428 | { 0x0000aba8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2431 | {0x0000abac, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2429 | { 0x0000abac, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2432 | {0x0000abb0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2430 | { 0x0000abb0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2433 | {0x0000abb4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2431 | { 0x0000abb4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2434 | {0x0000abb8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2432 | { 0x0000abb8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2435 | {0x0000abbc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2433 | { 0x0000abbc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2436 | {0x0000abc0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2434 | { 0x0000abc0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2437 | {0x0000abc4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2435 | { 0x0000abc4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2438 | {0x0000abc8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2436 | { 0x0000abc8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2439 | {0x0000abcc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2437 | { 0x0000abcc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2440 | {0x0000abd0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2438 | { 0x0000abd0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2441 | {0x0000abd4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2439 | { 0x0000abd4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2442 | {0x0000abd8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2440 | { 0x0000abd8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2443 | {0x0000abdc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2441 | { 0x0000abdc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2444 | {0x0000abe0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2442 | { 0x0000abe0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2445 | {0x0000abe4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2443 | { 0x0000abe4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2446 | {0x0000abe8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2444 | { 0x0000abe8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2447 | {0x0000abec, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2445 | { 0x0000abec, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2448 | {0x0000abf0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2446 | { 0x0000abf0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2449 | {0x0000abf4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2447 | { 0x0000abf4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2450 | {0x0000abf8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2448 | { 0x0000abf8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2451 | {0x0000abfc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
2449 | { 0x0000abfc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 2452 | {0x0000a204, 0x00000004, 0x00000004, 0x00000004, 0x00000004, 0x00000004}, |
2450 | { 0x0000a204, 0x00000004, 0x00000004, 0x00000004, 0x00000004, 0x00000004 }, | 2453 | {0x0000a20c, 0x00000014, 0x00000014, 0x0001f000, 0x0001f000, 0x0001f000}, |
2451 | { 0x0000a20c, 0x00000014, 0x00000014, 0x0001f000, 0x0001f000, 0x0001f000 }, | 2454 | {0x0000b20c, 0x00000014, 0x00000014, 0x0001f000, 0x0001f000, 0x0001f000}, |
2452 | { 0x0000b20c, 0x00000014, 0x00000014, 0x0001f000, 0x0001f000, 0x0001f000 }, | 2455 | {0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a}, |
2453 | { 0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a }, | 2456 | {0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000}, |
2454 | { 0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000 }, | 2457 | {0x0000a250, 0x0004f000, 0x0004f000, 0x0004a000, 0x0004a000, 0x0004a000}, |
2455 | { 0x0000a250, 0x0004f000, 0x0004f000, 0x0004a000, 0x0004a000, 0x0004a000 }, | 2458 | {0x0000a358, 0x7999aa02, 0x7999aa02, 0x7999aa0e, 0x7999aa0e, 0x7999aa0e}, |
2456 | { 0x0000a358, 0x7999aa02, 0x7999aa02, 0x7999aa0e, 0x7999aa0e, 0x7999aa0e }, | ||
2457 | }; | 2459 | }; |
2458 | 2460 | ||
2459 | static const u32 ar9285Common_9285_1_2[][2] = { | 2461 | static const u32 ar9285Common_9285_1_2[][2] = { |
2460 | { 0x0000000c, 0x00000000 }, | 2462 | /* Addr allmodes */ |
2461 | { 0x00000030, 0x00020045 }, | 2463 | {0x0000000c, 0x00000000}, |
2462 | { 0x00000034, 0x00000005 }, | 2464 | {0x00000030, 0x00020045}, |
2463 | { 0x00000040, 0x00000000 }, | 2465 | {0x00000034, 0x00000005}, |
2464 | { 0x00000044, 0x00000008 }, | 2466 | {0x00000040, 0x00000000}, |
2465 | { 0x00000048, 0x00000008 }, | 2467 | {0x00000044, 0x00000008}, |
2466 | { 0x0000004c, 0x00000010 }, | 2468 | {0x00000048, 0x00000008}, |
2467 | { 0x00000050, 0x00000000 }, | 2469 | {0x0000004c, 0x00000010}, |
2468 | { 0x00000054, 0x0000001f }, | 2470 | {0x00000050, 0x00000000}, |
2469 | { 0x00000800, 0x00000000 }, | 2471 | {0x00000054, 0x0000001f}, |
2470 | { 0x00000804, 0x00000000 }, | 2472 | {0x00000800, 0x00000000}, |
2471 | { 0x00000808, 0x00000000 }, | 2473 | {0x00000804, 0x00000000}, |
2472 | { 0x0000080c, 0x00000000 }, | 2474 | {0x00000808, 0x00000000}, |
2473 | { 0x00000810, 0x00000000 }, | 2475 | {0x0000080c, 0x00000000}, |
2474 | { 0x00000814, 0x00000000 }, | 2476 | {0x00000810, 0x00000000}, |
2475 | { 0x00000818, 0x00000000 }, | 2477 | {0x00000814, 0x00000000}, |
2476 | { 0x0000081c, 0x00000000 }, | 2478 | {0x00000818, 0x00000000}, |
2477 | { 0x00000820, 0x00000000 }, | 2479 | {0x0000081c, 0x00000000}, |
2478 | { 0x00000824, 0x00000000 }, | 2480 | {0x00000820, 0x00000000}, |
2479 | { 0x00001040, 0x002ffc0f }, | 2481 | {0x00000824, 0x00000000}, |
2480 | { 0x00001044, 0x002ffc0f }, | 2482 | {0x00001040, 0x002ffc0f}, |
2481 | { 0x00001048, 0x002ffc0f }, | 2483 | {0x00001044, 0x002ffc0f}, |
2482 | { 0x0000104c, 0x002ffc0f }, | 2484 | {0x00001048, 0x002ffc0f}, |
2483 | { 0x00001050, 0x002ffc0f }, | 2485 | {0x0000104c, 0x002ffc0f}, |
2484 | { 0x00001054, 0x002ffc0f }, | 2486 | {0x00001050, 0x002ffc0f}, |
2485 | { 0x00001058, 0x002ffc0f }, | 2487 | {0x00001054, 0x002ffc0f}, |
2486 | { 0x0000105c, 0x002ffc0f }, | 2488 | {0x00001058, 0x002ffc0f}, |
2487 | { 0x00001060, 0x002ffc0f }, | 2489 | {0x0000105c, 0x002ffc0f}, |
2488 | { 0x00001064, 0x002ffc0f }, | 2490 | {0x00001060, 0x002ffc0f}, |
2489 | { 0x00001230, 0x00000000 }, | 2491 | {0x00001064, 0x002ffc0f}, |
2490 | { 0x00001270, 0x00000000 }, | 2492 | {0x00001230, 0x00000000}, |
2491 | { 0x00001038, 0x00000000 }, | 2493 | {0x00001270, 0x00000000}, |
2492 | { 0x00001078, 0x00000000 }, | 2494 | {0x00001038, 0x00000000}, |
2493 | { 0x000010b8, 0x00000000 }, | 2495 | {0x00001078, 0x00000000}, |
2494 | { 0x000010f8, 0x00000000 }, | 2496 | {0x000010b8, 0x00000000}, |
2495 | { 0x00001138, 0x00000000 }, | 2497 | {0x000010f8, 0x00000000}, |
2496 | { 0x00001178, 0x00000000 }, | 2498 | {0x00001138, 0x00000000}, |
2497 | { 0x000011b8, 0x00000000 }, | 2499 | {0x00001178, 0x00000000}, |
2498 | { 0x000011f8, 0x00000000 }, | 2500 | {0x000011b8, 0x00000000}, |
2499 | { 0x00001238, 0x00000000 }, | 2501 | {0x000011f8, 0x00000000}, |
2500 | { 0x00001278, 0x00000000 }, | 2502 | {0x00001238, 0x00000000}, |
2501 | { 0x000012b8, 0x00000000 }, | 2503 | {0x00001278, 0x00000000}, |
2502 | { 0x000012f8, 0x00000000 }, | 2504 | {0x000012b8, 0x00000000}, |
2503 | { 0x00001338, 0x00000000 }, | 2505 | {0x000012f8, 0x00000000}, |
2504 | { 0x00001378, 0x00000000 }, | 2506 | {0x00001338, 0x00000000}, |
2505 | { 0x000013b8, 0x00000000 }, | 2507 | {0x00001378, 0x00000000}, |
2506 | { 0x000013f8, 0x00000000 }, | 2508 | {0x000013b8, 0x00000000}, |
2507 | { 0x00001438, 0x00000000 }, | 2509 | {0x000013f8, 0x00000000}, |
2508 | { 0x00001478, 0x00000000 }, | 2510 | {0x00001438, 0x00000000}, |
2509 | { 0x000014b8, 0x00000000 }, | 2511 | {0x00001478, 0x00000000}, |
2510 | { 0x000014f8, 0x00000000 }, | 2512 | {0x000014b8, 0x00000000}, |
2511 | { 0x00001538, 0x00000000 }, | 2513 | {0x000014f8, 0x00000000}, |
2512 | { 0x00001578, 0x00000000 }, | 2514 | {0x00001538, 0x00000000}, |
2513 | { 0x000015b8, 0x00000000 }, | 2515 | {0x00001578, 0x00000000}, |
2514 | { 0x000015f8, 0x00000000 }, | 2516 | {0x000015b8, 0x00000000}, |
2515 | { 0x00001638, 0x00000000 }, | 2517 | {0x000015f8, 0x00000000}, |
2516 | { 0x00001678, 0x00000000 }, | 2518 | {0x00001638, 0x00000000}, |
2517 | { 0x000016b8, 0x00000000 }, | 2519 | {0x00001678, 0x00000000}, |
2518 | { 0x000016f8, 0x00000000 }, | 2520 | {0x000016b8, 0x00000000}, |
2519 | { 0x00001738, 0x00000000 }, | 2521 | {0x000016f8, 0x00000000}, |
2520 | { 0x00001778, 0x00000000 }, | 2522 | {0x00001738, 0x00000000}, |
2521 | { 0x000017b8, 0x00000000 }, | 2523 | {0x00001778, 0x00000000}, |
2522 | { 0x000017f8, 0x00000000 }, | 2524 | {0x000017b8, 0x00000000}, |
2523 | { 0x0000103c, 0x00000000 }, | 2525 | {0x000017f8, 0x00000000}, |
2524 | { 0x0000107c, 0x00000000 }, | 2526 | {0x0000103c, 0x00000000}, |
2525 | { 0x000010bc, 0x00000000 }, | 2527 | {0x0000107c, 0x00000000}, |
2526 | { 0x000010fc, 0x00000000 }, | 2528 | {0x000010bc, 0x00000000}, |
2527 | { 0x0000113c, 0x00000000 }, | 2529 | {0x000010fc, 0x00000000}, |
2528 | { 0x0000117c, 0x00000000 }, | 2530 | {0x0000113c, 0x00000000}, |
2529 | { 0x000011bc, 0x00000000 }, | 2531 | {0x0000117c, 0x00000000}, |
2530 | { 0x000011fc, 0x00000000 }, | 2532 | {0x000011bc, 0x00000000}, |
2531 | { 0x0000123c, 0x00000000 }, | 2533 | {0x000011fc, 0x00000000}, |
2532 | { 0x0000127c, 0x00000000 }, | 2534 | {0x0000123c, 0x00000000}, |
2533 | { 0x000012bc, 0x00000000 }, | 2535 | {0x0000127c, 0x00000000}, |
2534 | { 0x000012fc, 0x00000000 }, | 2536 | {0x000012bc, 0x00000000}, |
2535 | { 0x0000133c, 0x00000000 }, | 2537 | {0x000012fc, 0x00000000}, |
2536 | { 0x0000137c, 0x00000000 }, | 2538 | {0x0000133c, 0x00000000}, |
2537 | { 0x000013bc, 0x00000000 }, | 2539 | {0x0000137c, 0x00000000}, |
2538 | { 0x000013fc, 0x00000000 }, | 2540 | {0x000013bc, 0x00000000}, |
2539 | { 0x0000143c, 0x00000000 }, | 2541 | {0x000013fc, 0x00000000}, |
2540 | { 0x0000147c, 0x00000000 }, | 2542 | {0x0000143c, 0x00000000}, |
2541 | { 0x00004030, 0x00000002 }, | 2543 | {0x0000147c, 0x00000000}, |
2542 | { 0x0000403c, 0x00000002 }, | 2544 | {0x00004030, 0x00000002}, |
2543 | { 0x00004024, 0x0000001f }, | 2545 | {0x0000403c, 0x00000002}, |
2544 | { 0x00004060, 0x00000000 }, | 2546 | {0x00004024, 0x0000001f}, |
2545 | { 0x00004064, 0x00000000 }, | 2547 | {0x00004060, 0x00000000}, |
2546 | { 0x00007010, 0x00000031 }, | 2548 | {0x00004064, 0x00000000}, |
2547 | { 0x00007034, 0x00000002 }, | 2549 | {0x00007010, 0x00000031}, |
2548 | { 0x00007038, 0x000004c2 }, | 2550 | {0x00007034, 0x00000002}, |
2549 | { 0x00008004, 0x00000000 }, | 2551 | {0x00007038, 0x000004c2}, |
2550 | { 0x00008008, 0x00000000 }, | 2552 | {0x00008004, 0x00000000}, |
2551 | { 0x0000800c, 0x00000000 }, | 2553 | {0x00008008, 0x00000000}, |
2552 | { 0x00008018, 0x00000700 }, | 2554 | {0x0000800c, 0x00000000}, |
2553 | { 0x00008020, 0x00000000 }, | 2555 | {0x00008018, 0x00000700}, |
2554 | { 0x00008038, 0x00000000 }, | 2556 | {0x00008020, 0x00000000}, |
2555 | { 0x0000803c, 0x00000000 }, | 2557 | {0x00008038, 0x00000000}, |
2556 | { 0x00008048, 0x00000000 }, | 2558 | {0x0000803c, 0x00000000}, |
2557 | { 0x00008054, 0x00000000 }, | 2559 | {0x00008048, 0x00000000}, |
2558 | { 0x00008058, 0x00000000 }, | 2560 | {0x00008054, 0x00000000}, |
2559 | { 0x0000805c, 0x000fc78f }, | 2561 | {0x00008058, 0x00000000}, |
2560 | { 0x00008060, 0x0000000f }, | 2562 | {0x0000805c, 0x000fc78f}, |
2561 | { 0x00008064, 0x00000000 }, | 2563 | {0x00008060, 0x0000000f}, |
2562 | { 0x00008070, 0x00000000 }, | 2564 | {0x00008064, 0x00000000}, |
2563 | { 0x000080c0, 0x2a80001a }, | 2565 | {0x00008070, 0x00000000}, |
2564 | { 0x000080c4, 0x05dc01e0 }, | 2566 | {0x000080c0, 0x2a80001a}, |
2565 | { 0x000080c8, 0x1f402710 }, | 2567 | {0x000080c4, 0x05dc01e0}, |
2566 | { 0x000080cc, 0x01f40000 }, | 2568 | {0x000080c8, 0x1f402710}, |
2567 | { 0x000080d0, 0x00001e00 }, | 2569 | {0x000080cc, 0x01f40000}, |
2568 | { 0x000080d4, 0x00000000 }, | 2570 | {0x000080d0, 0x00001e00}, |
2569 | { 0x000080d8, 0x00400000 }, | 2571 | {0x000080d4, 0x00000000}, |
2570 | { 0x000080e0, 0xffffffff }, | 2572 | {0x000080d8, 0x00400000}, |
2571 | { 0x000080e4, 0x0000ffff }, | 2573 | {0x000080e0, 0xffffffff}, |
2572 | { 0x000080e8, 0x003f3f3f }, | 2574 | {0x000080e4, 0x0000ffff}, |
2573 | { 0x000080ec, 0x00000000 }, | 2575 | {0x000080e8, 0x003f3f3f}, |
2574 | { 0x000080f0, 0x00000000 }, | 2576 | {0x000080ec, 0x00000000}, |
2575 | { 0x000080f4, 0x00000000 }, | 2577 | {0x000080f0, 0x00000000}, |
2576 | { 0x000080f8, 0x00000000 }, | 2578 | {0x000080f4, 0x00000000}, |
2577 | { 0x000080fc, 0x00020000 }, | 2579 | {0x000080f8, 0x00000000}, |
2578 | { 0x00008100, 0x00020000 }, | 2580 | {0x000080fc, 0x00020000}, |
2579 | { 0x00008104, 0x00000001 }, | 2581 | {0x00008100, 0x00020000}, |
2580 | { 0x00008108, 0x00000052 }, | 2582 | {0x00008104, 0x00000001}, |
2581 | { 0x0000810c, 0x00000000 }, | 2583 | {0x00008108, 0x00000052}, |
2582 | { 0x00008110, 0x00000168 }, | 2584 | {0x0000810c, 0x00000000}, |
2583 | { 0x00008118, 0x000100aa }, | 2585 | {0x00008110, 0x00000168}, |
2584 | { 0x0000811c, 0x00003210 }, | 2586 | {0x00008118, 0x000100aa}, |
2585 | { 0x00008120, 0x08f04810 }, | 2587 | {0x0000811c, 0x00003210}, |
2586 | { 0x00008124, 0x00000000 }, | 2588 | {0x00008120, 0x08f04810}, |
2587 | { 0x00008128, 0x00000000 }, | 2589 | {0x00008124, 0x00000000}, |
2588 | { 0x0000812c, 0x00000000 }, | 2590 | {0x00008128, 0x00000000}, |
2589 | { 0x00008130, 0x00000000 }, | 2591 | {0x0000812c, 0x00000000}, |
2590 | { 0x00008134, 0x00000000 }, | 2592 | {0x00008130, 0x00000000}, |
2591 | { 0x00008138, 0x00000000 }, | 2593 | {0x00008134, 0x00000000}, |
2592 | { 0x0000813c, 0x00000000 }, | 2594 | {0x00008138, 0x00000000}, |
2593 | { 0x00008144, 0xffffffff }, | 2595 | {0x0000813c, 0x00000000}, |
2594 | { 0x00008168, 0x00000000 }, | 2596 | {0x00008144, 0xffffffff}, |
2595 | { 0x0000816c, 0x00000000 }, | 2597 | {0x00008168, 0x00000000}, |
2596 | { 0x00008170, 0x32143320 }, | 2598 | {0x0000816c, 0x00000000}, |
2597 | { 0x00008174, 0xfaa4fa50 }, | 2599 | {0x00008170, 0x32143320}, |
2598 | { 0x00008178, 0x00000100 }, | 2600 | {0x00008174, 0xfaa4fa50}, |
2599 | { 0x0000817c, 0x00000000 }, | 2601 | {0x00008178, 0x00000100}, |
2600 | { 0x000081c0, 0x00000000 }, | 2602 | {0x0000817c, 0x00000000}, |
2601 | { 0x000081d0, 0x0000320a }, | 2603 | {0x000081c0, 0x00000000}, |
2602 | { 0x000081ec, 0x00000000 }, | 2604 | {0x000081d0, 0x0000320a}, |
2603 | { 0x000081f0, 0x00000000 }, | 2605 | {0x000081ec, 0x00000000}, |
2604 | { 0x000081f4, 0x00000000 }, | 2606 | {0x000081f0, 0x00000000}, |
2605 | { 0x000081f8, 0x00000000 }, | 2607 | {0x000081f4, 0x00000000}, |
2606 | { 0x000081fc, 0x00000000 }, | 2608 | {0x000081f8, 0x00000000}, |
2607 | { 0x00008200, 0x00000000 }, | 2609 | {0x000081fc, 0x00000000}, |
2608 | { 0x00008204, 0x00000000 }, | 2610 | {0x00008200, 0x00000000}, |
2609 | { 0x00008208, 0x00000000 }, | 2611 | {0x00008204, 0x00000000}, |
2610 | { 0x0000820c, 0x00000000 }, | 2612 | {0x00008208, 0x00000000}, |
2611 | { 0x00008210, 0x00000000 }, | 2613 | {0x0000820c, 0x00000000}, |
2612 | { 0x00008214, 0x00000000 }, | 2614 | {0x00008210, 0x00000000}, |
2613 | { 0x00008218, 0x00000000 }, | 2615 | {0x00008214, 0x00000000}, |
2614 | { 0x0000821c, 0x00000000 }, | 2616 | {0x00008218, 0x00000000}, |
2615 | { 0x00008220, 0x00000000 }, | 2617 | {0x0000821c, 0x00000000}, |
2616 | { 0x00008224, 0x00000000 }, | 2618 | {0x00008220, 0x00000000}, |
2617 | { 0x00008228, 0x00000000 }, | 2619 | {0x00008224, 0x00000000}, |
2618 | { 0x0000822c, 0x00000000 }, | 2620 | {0x00008228, 0x00000000}, |
2619 | { 0x00008230, 0x00000000 }, | 2621 | {0x0000822c, 0x00000000}, |
2620 | { 0x00008234, 0x00000000 }, | 2622 | {0x00008230, 0x00000000}, |
2621 | { 0x00008238, 0x00000000 }, | 2623 | {0x00008234, 0x00000000}, |
2622 | { 0x0000823c, 0x00000000 }, | 2624 | {0x00008238, 0x00000000}, |
2623 | { 0x00008240, 0x00100000 }, | 2625 | {0x0000823c, 0x00000000}, |
2624 | { 0x00008244, 0x0010f400 }, | 2626 | {0x00008240, 0x00100000}, |
2625 | { 0x00008248, 0x00000100 }, | 2627 | {0x00008244, 0x0010f400}, |
2626 | { 0x0000824c, 0x0001e800 }, | 2628 | {0x00008248, 0x00000100}, |
2627 | { 0x00008250, 0x00000000 }, | 2629 | {0x0000824c, 0x0001e800}, |
2628 | { 0x00008254, 0x00000000 }, | 2630 | {0x00008250, 0x00000000}, |
2629 | { 0x00008258, 0x00000000 }, | 2631 | {0x00008254, 0x00000000}, |
2630 | { 0x0000825c, 0x400000ff }, | 2632 | {0x00008258, 0x00000000}, |
2631 | { 0x00008260, 0x00080922 }, | 2633 | {0x0000825c, 0x400000ff}, |
2632 | { 0x00008264, 0x88a00010 }, | 2634 | {0x00008260, 0x00080922}, |
2633 | { 0x00008270, 0x00000000 }, | 2635 | {0x00008264, 0x88a00010}, |
2634 | { 0x00008274, 0x40000000 }, | 2636 | {0x00008270, 0x00000000}, |
2635 | { 0x00008278, 0x003e4180 }, | 2637 | {0x00008274, 0x40000000}, |
2636 | { 0x0000827c, 0x00000000 }, | 2638 | {0x00008278, 0x003e4180}, |
2637 | { 0x00008284, 0x0000002c }, | 2639 | {0x0000827c, 0x00000000}, |
2638 | { 0x00008288, 0x0000002c }, | 2640 | {0x00008284, 0x0000002c}, |
2639 | { 0x0000828c, 0x00000000 }, | 2641 | {0x00008288, 0x0000002c}, |
2640 | { 0x00008294, 0x00000000 }, | 2642 | {0x0000828c, 0x00000000}, |
2641 | { 0x00008298, 0x00000000 }, | 2643 | {0x00008294, 0x00000000}, |
2642 | { 0x0000829c, 0x00000000 }, | 2644 | {0x00008298, 0x00000000}, |
2643 | { 0x00008300, 0x00000040 }, | 2645 | {0x0000829c, 0x00000000}, |
2644 | { 0x00008314, 0x00000000 }, | 2646 | {0x00008300, 0x00000040}, |
2645 | { 0x00008328, 0x00000000 }, | 2647 | {0x00008314, 0x00000000}, |
2646 | { 0x0000832c, 0x00000001 }, | 2648 | {0x00008328, 0x00000000}, |
2647 | { 0x00008330, 0x00000302 }, | 2649 | {0x0000832c, 0x00000001}, |
2648 | { 0x00008334, 0x00000e00 }, | 2650 | {0x00008330, 0x00000302}, |
2649 | { 0x00008338, 0x00ff0000 }, | 2651 | {0x00008334, 0x00000e00}, |
2650 | { 0x0000833c, 0x00000000 }, | 2652 | {0x00008338, 0x00ff0000}, |
2651 | { 0x00008340, 0x00010380 }, | 2653 | {0x0000833c, 0x00000000}, |
2652 | { 0x00008344, 0x00481043 }, | 2654 | {0x00008340, 0x00010380}, |
2653 | { 0x00009808, 0x00000000 }, | 2655 | {0x00008344, 0x00481043}, |
2654 | { 0x0000980c, 0xafe68e30 }, | 2656 | {0x00009808, 0x00000000}, |
2655 | { 0x00009810, 0xfd14e000 }, | 2657 | {0x0000980c, 0xafe68e30}, |
2656 | { 0x00009814, 0x9c0a9f6b }, | 2658 | {0x00009810, 0xfd14e000}, |
2657 | { 0x0000981c, 0x00000000 }, | 2659 | {0x00009814, 0x9c0a9f6b}, |
2658 | { 0x0000982c, 0x0000a000 }, | 2660 | {0x0000981c, 0x00000000}, |
2659 | { 0x00009830, 0x00000000 }, | 2661 | {0x0000982c, 0x0000a000}, |
2660 | { 0x0000983c, 0x00200400 }, | 2662 | {0x00009830, 0x00000000}, |
2661 | { 0x0000984c, 0x0040233c }, | 2663 | {0x0000983c, 0x00200400}, |
2662 | { 0x00009854, 0x00000044 }, | 2664 | {0x0000984c, 0x0040233c}, |
2663 | { 0x00009900, 0x00000000 }, | 2665 | {0x00009854, 0x00000044}, |
2664 | { 0x00009904, 0x00000000 }, | 2666 | {0x00009900, 0x00000000}, |
2665 | { 0x00009908, 0x00000000 }, | 2667 | {0x00009904, 0x00000000}, |
2666 | { 0x0000990c, 0x00000000 }, | 2668 | {0x00009908, 0x00000000}, |
2667 | { 0x00009910, 0x01002310 }, | 2669 | {0x0000990c, 0x00000000}, |
2668 | { 0x0000991c, 0x10000fff }, | 2670 | {0x00009910, 0x01002310}, |
2669 | { 0x00009920, 0x04900000 }, | 2671 | {0x0000991c, 0x10000fff}, |
2670 | { 0x00009928, 0x00000001 }, | 2672 | {0x00009920, 0x04900000}, |
2671 | { 0x0000992c, 0x00000004 }, | 2673 | {0x00009928, 0x00000001}, |
2672 | { 0x00009934, 0x1e1f2022 }, | 2674 | {0x0000992c, 0x00000004}, |
2673 | { 0x00009938, 0x0a0b0c0d }, | 2675 | {0x00009934, 0x1e1f2022}, |
2674 | { 0x0000993c, 0x00000000 }, | 2676 | {0x00009938, 0x0a0b0c0d}, |
2675 | { 0x00009940, 0x14750604 }, | 2677 | {0x0000993c, 0x00000000}, |
2676 | { 0x00009948, 0x9280c00a }, | 2678 | {0x00009940, 0x14750604}, |
2677 | { 0x0000994c, 0x00020028 }, | 2679 | {0x00009948, 0x9280c00a}, |
2678 | { 0x00009954, 0x5f3ca3de }, | 2680 | {0x0000994c, 0x00020028}, |
2679 | { 0x00009958, 0x2108ecff }, | 2681 | {0x00009954, 0x5f3ca3de}, |
2680 | { 0x00009968, 0x000003ce }, | 2682 | {0x00009958, 0x2108ecff}, |
2681 | { 0x00009970, 0x192bb514 }, | 2683 | {0x00009968, 0x000003ce}, |
2682 | { 0x00009974, 0x00000000 }, | 2684 | {0x00009970, 0x192bb514}, |
2683 | { 0x00009978, 0x00000001 }, | 2685 | {0x00009974, 0x00000000}, |
2684 | { 0x0000997c, 0x00000000 }, | 2686 | {0x00009978, 0x00000001}, |
2685 | { 0x00009980, 0x00000000 }, | 2687 | {0x0000997c, 0x00000000}, |
2686 | { 0x00009984, 0x00000000 }, | 2688 | {0x00009980, 0x00000000}, |
2687 | { 0x00009988, 0x00000000 }, | 2689 | {0x00009984, 0x00000000}, |
2688 | { 0x0000998c, 0x00000000 }, | 2690 | {0x00009988, 0x00000000}, |
2689 | { 0x00009990, 0x00000000 }, | 2691 | {0x0000998c, 0x00000000}, |
2690 | { 0x00009994, 0x00000000 }, | 2692 | {0x00009990, 0x00000000}, |
2691 | { 0x00009998, 0x00000000 }, | 2693 | {0x00009994, 0x00000000}, |
2692 | { 0x0000999c, 0x00000000 }, | 2694 | {0x00009998, 0x00000000}, |
2693 | { 0x000099a0, 0x00000000 }, | 2695 | {0x0000999c, 0x00000000}, |
2694 | { 0x000099a4, 0x00000001 }, | 2696 | {0x000099a0, 0x00000000}, |
2695 | { 0x000099a8, 0x201fff00 }, | 2697 | {0x000099a4, 0x00000001}, |
2696 | { 0x000099ac, 0x2def0400 }, | 2698 | {0x000099a8, 0x201fff00}, |
2697 | { 0x000099b0, 0x03051000 }, | 2699 | {0x000099ac, 0x2def0400}, |
2698 | { 0x000099b4, 0x00000820 }, | 2700 | {0x000099b0, 0x03051000}, |
2699 | { 0x000099dc, 0x00000000 }, | 2701 | {0x000099b4, 0x00000820}, |
2700 | { 0x000099e0, 0x00000000 }, | 2702 | {0x000099dc, 0x00000000}, |
2701 | { 0x000099e4, 0xaaaaaaaa }, | 2703 | {0x000099e0, 0x00000000}, |
2702 | { 0x000099e8, 0x3c466478 }, | 2704 | {0x000099e4, 0xaaaaaaaa}, |
2703 | { 0x000099ec, 0x0cc80caa }, | 2705 | {0x000099e8, 0x3c466478}, |
2704 | { 0x000099f0, 0x00000000 }, | 2706 | {0x000099ec, 0x0cc80caa}, |
2705 | { 0x0000a208, 0x803e68c8 }, | 2707 | {0x000099f0, 0x00000000}, |
2706 | { 0x0000a210, 0x4080a333 }, | 2708 | {0x0000a208, 0x803e68c8}, |
2707 | { 0x0000a214, 0x00206c10 }, | 2709 | {0x0000a210, 0x4080a333}, |
2708 | { 0x0000a218, 0x009c4060 }, | 2710 | {0x0000a214, 0x00206c10}, |
2709 | { 0x0000a220, 0x01834061 }, | 2711 | {0x0000a218, 0x009c4060}, |
2710 | { 0x0000a224, 0x00000400 }, | 2712 | {0x0000a220, 0x01834061}, |
2711 | { 0x0000a228, 0x000003b5 }, | 2713 | {0x0000a224, 0x00000400}, |
2712 | { 0x0000a22c, 0x00000000 }, | 2714 | {0x0000a228, 0x000003b5}, |
2713 | { 0x0000a234, 0x20202020 }, | 2715 | {0x0000a22c, 0x00000000}, |
2714 | { 0x0000a238, 0x20202020 }, | 2716 | {0x0000a234, 0x20202020}, |
2715 | { 0x0000a244, 0x00000000 }, | 2717 | {0x0000a238, 0x20202020}, |
2716 | { 0x0000a248, 0xfffffffc }, | 2718 | {0x0000a244, 0x00000000}, |
2717 | { 0x0000a24c, 0x00000000 }, | 2719 | {0x0000a248, 0xfffffffc}, |
2718 | { 0x0000a254, 0x00000000 }, | 2720 | {0x0000a24c, 0x00000000}, |
2719 | { 0x0000a258, 0x0ccb5380 }, | 2721 | {0x0000a254, 0x00000000}, |
2720 | { 0x0000a25c, 0x15151501 }, | 2722 | {0x0000a258, 0x0ccb5380}, |
2721 | { 0x0000a260, 0xdfa90f01 }, | 2723 | {0x0000a25c, 0x15151501}, |
2722 | { 0x0000a268, 0x00000000 }, | 2724 | {0x0000a260, 0xdfa90f01}, |
2723 | { 0x0000a26c, 0x0ebae9e6 }, | 2725 | {0x0000a268, 0x00000000}, |
2724 | { 0x0000d270, 0x0d820820 }, | 2726 | {0x0000a26c, 0x0ebae9e6}, |
2725 | { 0x0000d35c, 0x07ffffef }, | 2727 | {0x0000d270, 0x0d820820}, |
2726 | { 0x0000d360, 0x0fffffe7 }, | 2728 | {0x0000d35c, 0x07ffffef}, |
2727 | { 0x0000d364, 0x17ffffe5 }, | 2729 | {0x0000d360, 0x0fffffe7}, |
2728 | { 0x0000d368, 0x1fffffe4 }, | 2730 | {0x0000d364, 0x17ffffe5}, |
2729 | { 0x0000d36c, 0x37ffffe3 }, | 2731 | {0x0000d368, 0x1fffffe4}, |
2730 | { 0x0000d370, 0x3fffffe3 }, | 2732 | {0x0000d36c, 0x37ffffe3}, |
2731 | { 0x0000d374, 0x57ffffe3 }, | 2733 | {0x0000d370, 0x3fffffe3}, |
2732 | { 0x0000d378, 0x5fffffe2 }, | 2734 | {0x0000d374, 0x57ffffe3}, |
2733 | { 0x0000d37c, 0x7fffffe2 }, | 2735 | {0x0000d378, 0x5fffffe2}, |
2734 | { 0x0000d380, 0x7f3c7bba }, | 2736 | {0x0000d37c, 0x7fffffe2}, |
2735 | { 0x0000d384, 0xf3307ff0 }, | 2737 | {0x0000d380, 0x7f3c7bba}, |
2736 | { 0x0000a388, 0x0c000000 }, | 2738 | {0x0000d384, 0xf3307ff0}, |
2737 | { 0x0000a38c, 0x20202020 }, | 2739 | {0x0000a388, 0x0c000000}, |
2738 | { 0x0000a390, 0x20202020 }, | 2740 | {0x0000a38c, 0x20202020}, |
2739 | { 0x0000a39c, 0x00000001 }, | 2741 | {0x0000a390, 0x20202020}, |
2740 | { 0x0000a3a0, 0x00000000 }, | 2742 | {0x0000a39c, 0x00000001}, |
2741 | { 0x0000a3a4, 0x00000000 }, | 2743 | {0x0000a3a0, 0x00000000}, |
2742 | { 0x0000a3a8, 0x00000000 }, | 2744 | {0x0000a3a4, 0x00000000}, |
2743 | { 0x0000a3ac, 0x00000000 }, | 2745 | {0x0000a3a8, 0x00000000}, |
2744 | { 0x0000a3b0, 0x00000000 }, | 2746 | {0x0000a3ac, 0x00000000}, |
2745 | { 0x0000a3b4, 0x00000000 }, | 2747 | {0x0000a3b0, 0x00000000}, |
2746 | { 0x0000a3b8, 0x00000000 }, | 2748 | {0x0000a3b4, 0x00000000}, |
2747 | { 0x0000a3bc, 0x00000000 }, | 2749 | {0x0000a3b8, 0x00000000}, |
2748 | { 0x0000a3c0, 0x00000000 }, | 2750 | {0x0000a3bc, 0x00000000}, |
2749 | { 0x0000a3c4, 0x00000000 }, | 2751 | {0x0000a3c0, 0x00000000}, |
2750 | { 0x0000a3cc, 0x20202020 }, | 2752 | {0x0000a3c4, 0x00000000}, |
2751 | { 0x0000a3d0, 0x20202020 }, | 2753 | {0x0000a3cc, 0x20202020}, |
2752 | { 0x0000a3d4, 0x20202020 }, | 2754 | {0x0000a3d0, 0x20202020}, |
2753 | { 0x0000a3e4, 0x00000000 }, | 2755 | {0x0000a3d4, 0x20202020}, |
2754 | { 0x0000a3e8, 0x18c43433 }, | 2756 | {0x0000a3e4, 0x00000000}, |
2755 | { 0x0000a3ec, 0x00f70081 }, | 2757 | {0x0000a3e8, 0x18c43433}, |
2756 | { 0x00007800, 0x00140000 }, | 2758 | {0x0000a3ec, 0x00f70081}, |
2757 | { 0x00007804, 0x0e4548d8 }, | 2759 | {0x00007800, 0x00140000}, |
2758 | { 0x00007808, 0x54214514 }, | 2760 | {0x00007804, 0x0e4548d8}, |
2759 | { 0x0000780c, 0x02025830 }, | 2761 | {0x00007808, 0x54214514}, |
2760 | { 0x00007810, 0x71c0d388 }, | 2762 | {0x0000780c, 0x02025830}, |
2761 | { 0x0000781c, 0x00000000 }, | 2763 | {0x00007810, 0x71c0d388}, |
2762 | { 0x00007824, 0x00d86fff }, | 2764 | {0x0000781c, 0x00000000}, |
2763 | { 0x0000782c, 0x6e36d97b }, | 2765 | {0x00007824, 0x00d86fff}, |
2764 | { 0x00007834, 0x71400087 }, | 2766 | {0x0000782c, 0x6e36d97b}, |
2765 | { 0x00007844, 0x000c0db6 }, | 2767 | {0x00007834, 0x71400087}, |
2766 | { 0x00007848, 0x6db6246f }, | 2768 | {0x00007844, 0x000c0db6}, |
2767 | { 0x0000784c, 0x6d9b66db }, | 2769 | {0x00007848, 0x6db6246f}, |
2768 | { 0x00007850, 0x6d8c6dba }, | 2770 | {0x0000784c, 0x6d9b66db}, |
2769 | { 0x00007854, 0x00040000 }, | 2771 | {0x00007850, 0x6d8c6dba}, |
2770 | { 0x00007858, 0xdb003012 }, | 2772 | {0x00007854, 0x00040000}, |
2771 | { 0x0000785c, 0x04924914 }, | 2773 | {0x00007858, 0xdb003012}, |
2772 | { 0x00007860, 0x21084210 }, | 2774 | {0x0000785c, 0x04924914}, |
2773 | { 0x00007864, 0xf7d7ffde }, | 2775 | {0x00007860, 0x21084210}, |
2774 | { 0x00007868, 0xc2034080 }, | 2776 | {0x00007864, 0xf7d7ffde}, |
2775 | { 0x00007870, 0x10142c00 }, | 2777 | {0x00007868, 0xc2034080}, |
2778 | {0x00007870, 0x10142c00}, | ||
2776 | }; | 2779 | }; |
2777 | 2780 | ||
2778 | static const u32 ar9285Modes_high_power_tx_gain_9285_1_2[][6] = { | 2781 | static const u32 ar9285Modes_high_power_tx_gain_9285_1_2[][6] = { |
2779 | /* Address 5G-HT20 5G-HT40 2G-HT40 2G-HT20 Turbo */ | 2782 | {0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
2780 | { 0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 2783 | {0x0000a304, 0x00000000, 0x00000000, 0x00006200, 0x00006200, 0x00000000}, |
2781 | { 0x0000a304, 0x00000000, 0x00000000, 0x00006200, 0x00006200, 0x00000000 }, | 2784 | {0x0000a308, 0x00000000, 0x00000000, 0x00008201, 0x00008201, 0x00000000}, |
2782 | { 0x0000a308, 0x00000000, 0x00000000, 0x00008201, 0x00008201, 0x00000000 }, | 2785 | {0x0000a30c, 0x00000000, 0x00000000, 0x0000b240, 0x0000b240, 0x00000000}, |
2783 | { 0x0000a30c, 0x00000000, 0x00000000, 0x0000b240, 0x0000b240, 0x00000000 }, | 2786 | {0x0000a310, 0x00000000, 0x00000000, 0x0000d241, 0x0000d241, 0x00000000}, |
2784 | { 0x0000a310, 0x00000000, 0x00000000, 0x0000d241, 0x0000d241, 0x00000000 }, | 2787 | {0x0000a314, 0x00000000, 0x00000000, 0x0000f600, 0x0000f600, 0x00000000}, |
2785 | { 0x0000a314, 0x00000000, 0x00000000, 0x0000f600, 0x0000f600, 0x00000000 }, | 2788 | {0x0000a318, 0x00000000, 0x00000000, 0x00012800, 0x00012800, 0x00000000}, |
2786 | { 0x0000a318, 0x00000000, 0x00000000, 0x00012800, 0x00012800, 0x00000000 }, | 2789 | {0x0000a31c, 0x00000000, 0x00000000, 0x00016802, 0x00016802, 0x00000000}, |
2787 | { 0x0000a31c, 0x00000000, 0x00000000, 0x00016802, 0x00016802, 0x00000000 }, | 2790 | {0x0000a320, 0x00000000, 0x00000000, 0x0001b805, 0x0001b805, 0x00000000}, |
2788 | { 0x0000a320, 0x00000000, 0x00000000, 0x0001b805, 0x0001b805, 0x00000000 }, | 2791 | {0x0000a324, 0x00000000, 0x00000000, 0x00021a80, 0x00021a80, 0x00000000}, |
2789 | { 0x0000a324, 0x00000000, 0x00000000, 0x00021a80, 0x00021a80, 0x00000000 }, | 2792 | {0x0000a328, 0x00000000, 0x00000000, 0x00028b00, 0x00028b00, 0x00000000}, |
2790 | { 0x0000a328, 0x00000000, 0x00000000, 0x00028b00, 0x00028b00, 0x00000000 }, | 2793 | {0x0000a32c, 0x00000000, 0x00000000, 0x0002ab40, 0x0002ab40, 0x00000000}, |
2791 | { 0x0000a32c, 0x00000000, 0x00000000, 0x0002ab40, 0x0002ab40, 0x00000000 }, | 2794 | {0x0000a330, 0x00000000, 0x00000000, 0x0002cd80, 0x0002cd80, 0x00000000}, |
2792 | { 0x0000a330, 0x00000000, 0x00000000, 0x0002cd80, 0x0002cd80, 0x00000000 }, | 2795 | {0x0000a334, 0x00000000, 0x00000000, 0x00033d82, 0x00033d82, 0x00000000}, |
2793 | { 0x0000a334, 0x00000000, 0x00000000, 0x00033d82, 0x00033d82, 0x00000000 }, | 2796 | {0x0000a338, 0x0003891e, 0x0003891e, 0x0003891e, 0x0003891e, 0x00000000}, |
2794 | { 0x0000a338, 0x0003891e, 0x0003891e, 0x0003891e, 0x0003891e, 0x00000000 }, | 2797 | {0x0000a33c, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x00000000}, |
2795 | { 0x0000a33c, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x00000000 }, | 2798 | {0x0000a340, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2796 | { 0x0000a340, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2799 | {0x0000a344, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2797 | { 0x0000a344, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2800 | {0x0000a348, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2798 | { 0x0000a348, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2801 | {0x0000a34c, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2799 | { 0x0000a34c, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2802 | {0x0000a350, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2800 | { 0x0000a350, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2803 | {0x0000a354, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2801 | { 0x0000a354, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2804 | {0x00007814, 0x924934a8, 0x924934a8, 0x924934a8, 0x924934a8, 0x924934a8}, |
2802 | { 0x00007814, 0x924934a8, 0x924934a8, 0x924934a8, 0x924934a8, 0x924934a8 }, | 2805 | {0x00007828, 0x26d2491b, 0x26d2491b, 0x26d2491b, 0x26d2491b, 0x26d2491b}, |
2803 | { 0x00007828, 0x26d2491b, 0x26d2491b, 0x26d2491b, 0x26d2491b, 0x26d2491b }, | 2806 | {0x00007830, 0xedb6d96e, 0xedb6d96e, 0xedb6d96e, 0xedb6d96e, 0xedb6d96e}, |
2804 | { 0x00007830, 0xedb6d96e, 0xedb6d96e, 0xedb6d96e, 0xedb6d96e, 0xedb6d96e }, | 2807 | {0x00007838, 0xfac68803, 0xfac68803, 0xfac68803, 0xfac68803, 0xfac68803}, |
2805 | { 0x00007838, 0xfac68803, 0xfac68803, 0xfac68803, 0xfac68803, 0xfac68803 }, | 2808 | {0x0000783c, 0x0001fffe, 0x0001fffe, 0x0001fffe, 0x0001fffe, 0x0001fffe}, |
2806 | { 0x0000783c, 0x0001fffe, 0x0001fffe, 0x0001fffe, 0x0001fffe, 0x0001fffe }, | 2809 | {0x00007840, 0xffeb1a20, 0xffeb1a20, 0xffeb1a20, 0xffeb1a20, 0xffeb1a20}, |
2807 | { 0x00007840, 0xffeb1a20, 0xffeb1a20, 0xffeb1a20, 0xffeb1a20, 0xffeb1a20 }, | 2810 | {0x0000786c, 0x08609ebe, 0x08609ebe, 0x08609ebe, 0x08609ebe, 0x08609ebe}, |
2808 | { 0x0000786c, 0x08609ebe, 0x08609ebe, 0x08609ebe, 0x08609ebe, 0x08609ebe }, | 2811 | {0x00007820, 0x00000c00, 0x00000c00, 0x00000c00, 0x00000c00, 0x00000c00}, |
2809 | { 0x00007820, 0x00000c00, 0x00000c00, 0x00000c00, 0x00000c00, 0x00000c00 }, | 2812 | {0x0000a274, 0x0a22a652, 0x0a22a652, 0x0a216652, 0x0a216652, 0x0a22a652}, |
2810 | { 0x0000a274, 0x0a22a652, 0x0a22a652, 0x0a216652, 0x0a216652, 0x0a22a652 }, | 2813 | {0x0000a278, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7}, |
2811 | { 0x0000a278, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7 }, | 2814 | {0x0000a27c, 0x050380e7, 0x050380e7, 0x050380e7, 0x050380e7, 0x050380e7}, |
2812 | { 0x0000a27c, 0x050380e7, 0x050380e7, 0x050380e7, 0x050380e7, 0x050380e7 }, | 2815 | {0x0000a394, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7}, |
2813 | { 0x0000a394, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7 }, | 2816 | {0x0000a398, 0x000000e7, 0x000000e7, 0x000000e7, 0x000000e7, 0x000000e7}, |
2814 | { 0x0000a398, 0x000000e7, 0x000000e7, 0x000000e7, 0x000000e7, 0x000000e7 }, | 2817 | {0x0000a3dc, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7}, |
2815 | { 0x0000a3dc, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7 }, | 2818 | {0x0000a3e0, 0x000000e7, 0x000000e7, 0x000000e7, 0x000000e7, 0x000000e7}, |
2816 | { 0x0000a3e0, 0x000000e7, 0x000000e7, 0x000000e7, 0x000000e7, 0x000000e7 }, | ||
2817 | }; | 2819 | }; |
2818 | 2820 | ||
2819 | static const u32 ar9285Modes_original_tx_gain_9285_1_2[][6] = { | 2821 | static const u32 ar9285Modes_original_tx_gain_9285_1_2[][6] = { |
2820 | /* Address 5G-HT20 5G-HT40 2G-HT40 2G-HT20 Turbo */ | 2822 | {0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
2821 | { 0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 2823 | {0x0000a304, 0x00000000, 0x00000000, 0x00009200, 0x00009200, 0x00000000}, |
2822 | { 0x0000a304, 0x00000000, 0x00000000, 0x00009200, 0x00009200, 0x00000000 }, | 2824 | {0x0000a308, 0x00000000, 0x00000000, 0x00010208, 0x00010208, 0x00000000}, |
2823 | { 0x0000a308, 0x00000000, 0x00000000, 0x00010208, 0x00010208, 0x00000000 }, | 2825 | {0x0000a30c, 0x00000000, 0x00000000, 0x00019608, 0x00019608, 0x00000000}, |
2824 | { 0x0000a30c, 0x00000000, 0x00000000, 0x00019608, 0x00019608, 0x00000000 }, | 2826 | {0x0000a310, 0x00000000, 0x00000000, 0x00022618, 0x00022618, 0x00000000}, |
2825 | { 0x0000a310, 0x00000000, 0x00000000, 0x00022618, 0x00022618, 0x00000000 }, | 2827 | {0x0000a314, 0x00000000, 0x00000000, 0x0002a6c9, 0x0002a6c9, 0x00000000}, |
2826 | { 0x0000a314, 0x00000000, 0x00000000, 0x0002a6c9, 0x0002a6c9, 0x00000000 }, | 2828 | {0x0000a318, 0x00000000, 0x00000000, 0x00031710, 0x00031710, 0x00000000}, |
2827 | { 0x0000a318, 0x00000000, 0x00000000, 0x00031710, 0x00031710, 0x00000000 }, | 2829 | {0x0000a31c, 0x00000000, 0x00000000, 0x00035718, 0x00035718, 0x00000000}, |
2828 | { 0x0000a31c, 0x00000000, 0x00000000, 0x00035718, 0x00035718, 0x00000000 }, | 2830 | {0x0000a320, 0x00000000, 0x00000000, 0x00038758, 0x00038758, 0x00000000}, |
2829 | { 0x0000a320, 0x00000000, 0x00000000, 0x00038758, 0x00038758, 0x00000000 }, | 2831 | {0x0000a324, 0x00000000, 0x00000000, 0x0003c75a, 0x0003c75a, 0x00000000}, |
2830 | { 0x0000a324, 0x00000000, 0x00000000, 0x0003c75a, 0x0003c75a, 0x00000000 }, | 2832 | {0x0000a328, 0x00000000, 0x00000000, 0x0004075c, 0x0004075c, 0x00000000}, |
2831 | { 0x0000a328, 0x00000000, 0x00000000, 0x0004075c, 0x0004075c, 0x00000000 }, | 2833 | {0x0000a32c, 0x00000000, 0x00000000, 0x0004475e, 0x0004475e, 0x00000000}, |
2832 | { 0x0000a32c, 0x00000000, 0x00000000, 0x0004475e, 0x0004475e, 0x00000000 }, | 2834 | {0x0000a330, 0x00000000, 0x00000000, 0x0004679f, 0x0004679f, 0x00000000}, |
2833 | { 0x0000a330, 0x00000000, 0x00000000, 0x0004679f, 0x0004679f, 0x00000000 }, | 2835 | {0x0000a334, 0x00000000, 0x00000000, 0x000487df, 0x000487df, 0x00000000}, |
2834 | { 0x0000a334, 0x00000000, 0x00000000, 0x000487df, 0x000487df, 0x00000000 }, | 2836 | {0x0000a338, 0x0003891e, 0x0003891e, 0x0003891e, 0x0003891e, 0x00000000}, |
2835 | { 0x0000a338, 0x0003891e, 0x0003891e, 0x0003891e, 0x0003891e, 0x00000000 }, | 2837 | {0x0000a33c, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x00000000}, |
2836 | { 0x0000a33c, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x00000000 }, | 2838 | {0x0000a340, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2837 | { 0x0000a340, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2839 | {0x0000a344, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2838 | { 0x0000a344, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2840 | {0x0000a348, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2839 | { 0x0000a348, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2841 | {0x0000a34c, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2840 | { 0x0000a34c, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2842 | {0x0000a350, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2841 | { 0x0000a350, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2843 | {0x0000a354, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2842 | { 0x0000a354, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2844 | {0x00007814, 0x924934a8, 0x924934a8, 0x924934a8, 0x924934a8, 0x924934a8}, |
2843 | { 0x00007814, 0x924934a8, 0x924934a8, 0x924934a8, 0x924934a8, 0x924934a8 }, | 2845 | {0x00007828, 0x26d2491b, 0x26d2491b, 0x26d2491b, 0x26d2491b, 0x26d2491b}, |
2844 | { 0x00007828, 0x26d2491b, 0x26d2491b, 0x26d2491b, 0x26d2491b, 0x26d2491b }, | 2846 | {0x00007830, 0xedb6d96e, 0xedb6d96e, 0xedb6d96e, 0xedb6d96e, 0xedb6d96e}, |
2845 | { 0x00007830, 0xedb6d96e, 0xedb6d96e, 0xedb6d96e, 0xedb6d96e, 0xedb6d96e }, | 2847 | {0x00007838, 0xfac68801, 0xfac68801, 0xfac68801, 0xfac68801, 0xfac68801}, |
2846 | { 0x00007838, 0xfac68801, 0xfac68801, 0xfac68801, 0xfac68801, 0xfac68801 }, | 2848 | {0x0000783c, 0x0001fffe, 0x0001fffe, 0x0001fffe, 0x0001fffe, 0x0001fffe}, |
2847 | { 0x0000783c, 0x0001fffe, 0x0001fffe, 0x0001fffe, 0x0001fffe, 0x0001fffe }, | 2849 | {0x00007840, 0xffeb1a20, 0xffeb1a20, 0xffeb1a20, 0xffeb1a20, 0xffeb1a20}, |
2848 | { 0x00007840, 0xffeb1a20, 0xffeb1a20, 0xffeb1a20, 0xffeb1a20, 0xffeb1a20 }, | 2850 | {0x0000786c, 0x48609eb4, 0x48609eb4, 0x48609eb4, 0x48609eb4, 0x48609eb4}, |
2849 | { 0x0000786c, 0x48609eb4, 0x48609eb4, 0x48609eb4, 0x48609eb4, 0x48609eb4 }, | 2851 | {0x00007820, 0x00000c04, 0x00000c04, 0x00000c04, 0x00000c04, 0x00000c04}, |
2850 | { 0x00007820, 0x00000c04, 0x00000c04, 0x00000c04, 0x00000c04, 0x00000c04 }, | 2852 | {0x0000a274, 0x0a21c652, 0x0a21c652, 0x0a21a652, 0x0a21a652, 0x0a22a652}, |
2851 | { 0x0000a274, 0x0a21c652, 0x0a21c652, 0x0a21a652, 0x0a21a652, 0x0a22a652 }, | 2853 | {0x0000a278, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c}, |
2852 | { 0x0000a278, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c }, | 2854 | {0x0000a27c, 0x050e039c, 0x050e039c, 0x050e039c, 0x050e039c, 0x050e039c}, |
2853 | { 0x0000a27c, 0x050e039c, 0x050e039c, 0x050e039c, 0x050e039c, 0x050e039c }, | 2855 | {0x0000a394, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c}, |
2854 | { 0x0000a394, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c }, | 2856 | {0x0000a398, 0x0000039c, 0x0000039c, 0x0000039c, 0x0000039c, 0x0000039c}, |
2855 | { 0x0000a398, 0x0000039c, 0x0000039c, 0x0000039c, 0x0000039c, 0x0000039c }, | 2857 | {0x0000a3dc, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c}, |
2856 | { 0x0000a3dc, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c }, | 2858 | {0x0000a3e0, 0x0000039c, 0x0000039c, 0x0000039c, 0x0000039c, 0x0000039c}, |
2857 | { 0x0000a3e0, 0x0000039c, 0x0000039c, 0x0000039c, 0x0000039c, 0x0000039c }, | ||
2858 | }; | 2859 | }; |
2859 | 2860 | ||
2860 | static const u32 ar9285Modes_XE2_0_normal_power[][6] = { | 2861 | static const u32 ar9285Modes_XE2_0_normal_power[][6] = { |
2861 | { 0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 2862 | {0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
2862 | { 0x0000a304, 0x00000000, 0x00000000, 0x00009200, 0x00009200, 0x00000000 }, | 2863 | {0x0000a304, 0x00000000, 0x00000000, 0x00009200, 0x00009200, 0x00000000}, |
2863 | { 0x0000a308, 0x00000000, 0x00000000, 0x00010208, 0x00010208, 0x00000000 }, | 2864 | {0x0000a308, 0x00000000, 0x00000000, 0x00010208, 0x00010208, 0x00000000}, |
2864 | { 0x0000a30c, 0x00000000, 0x00000000, 0x00019608, 0x00019608, 0x00000000 }, | 2865 | {0x0000a30c, 0x00000000, 0x00000000, 0x00019608, 0x00019608, 0x00000000}, |
2865 | { 0x0000a310, 0x00000000, 0x00000000, 0x00022618, 0x00022618, 0x00000000 }, | 2866 | {0x0000a310, 0x00000000, 0x00000000, 0x00022618, 0x00022618, 0x00000000}, |
2866 | { 0x0000a314, 0x00000000, 0x00000000, 0x0002a6c9, 0x0002a6c9, 0x00000000 }, | 2867 | {0x0000a314, 0x00000000, 0x00000000, 0x0002a6c9, 0x0002a6c9, 0x00000000}, |
2867 | { 0x0000a318, 0x00000000, 0x00000000, 0x00031710, 0x00031710, 0x00000000 }, | 2868 | {0x0000a318, 0x00000000, 0x00000000, 0x00031710, 0x00031710, 0x00000000}, |
2868 | { 0x0000a31c, 0x00000000, 0x00000000, 0x00035718, 0x00035718, 0x00000000 }, | 2869 | {0x0000a31c, 0x00000000, 0x00000000, 0x00035718, 0x00035718, 0x00000000}, |
2869 | { 0x0000a320, 0x00000000, 0x00000000, 0x00038758, 0x00038758, 0x00000000 }, | 2870 | {0x0000a320, 0x00000000, 0x00000000, 0x00038758, 0x00038758, 0x00000000}, |
2870 | { 0x0000a324, 0x00000000, 0x00000000, 0x0003c75a, 0x0003c75a, 0x00000000 }, | 2871 | {0x0000a324, 0x00000000, 0x00000000, 0x0003c75a, 0x0003c75a, 0x00000000}, |
2871 | { 0x0000a328, 0x00000000, 0x00000000, 0x0004075c, 0x0004075c, 0x00000000 }, | 2872 | {0x0000a328, 0x00000000, 0x00000000, 0x0004075c, 0x0004075c, 0x00000000}, |
2872 | { 0x0000a32c, 0x00000000, 0x00000000, 0x0004475e, 0x0004475e, 0x00000000 }, | 2873 | {0x0000a32c, 0x00000000, 0x00000000, 0x0004475e, 0x0004475e, 0x00000000}, |
2873 | { 0x0000a330, 0x00000000, 0x00000000, 0x0004679f, 0x0004679f, 0x00000000 }, | 2874 | {0x0000a330, 0x00000000, 0x00000000, 0x0004679f, 0x0004679f, 0x00000000}, |
2874 | { 0x0000a334, 0x00000000, 0x00000000, 0x000487df, 0x000487df, 0x00000000 }, | 2875 | {0x0000a334, 0x00000000, 0x00000000, 0x000487df, 0x000487df, 0x00000000}, |
2875 | { 0x0000a338, 0x0003891e, 0x0003891e, 0x0003891e, 0x0003891e, 0x00000000 }, | 2876 | {0x0000a338, 0x0003891e, 0x0003891e, 0x0003891e, 0x0003891e, 0x00000000}, |
2876 | { 0x0000a33c, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x00000000 }, | 2877 | {0x0000a33c, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x00000000}, |
2877 | { 0x0000a340, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2878 | {0x0000a340, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2878 | { 0x0000a344, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2879 | {0x0000a344, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2879 | { 0x0000a348, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2880 | {0x0000a348, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2880 | { 0x0000a34c, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2881 | {0x0000a34c, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2881 | { 0x0000a350, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2882 | {0x0000a350, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2882 | { 0x0000a354, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2883 | {0x0000a354, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2883 | { 0x00007814, 0x92497ca8, 0x92497ca8, 0x92497ca8, 0x92497ca8, 0x92497ca8 }, | 2884 | {0x00007814, 0x92497ca8, 0x92497ca8, 0x92497ca8, 0x92497ca8, 0x92497ca8}, |
2884 | { 0x00007828, 0x4ad2491b, 0x4ad2491b, 0x2ad2491b, 0x4ad2491b, 0x4ad2491b }, | 2885 | {0x00007828, 0x4ad2491b, 0x4ad2491b, 0x2ad2491b, 0x4ad2491b, 0x4ad2491b}, |
2885 | { 0x00007830, 0xedb6da6e, 0xedb6da6e, 0xedb6da6e, 0xedb6da6e, 0xedb6dbae }, | 2886 | {0x00007830, 0xedb6da6e, 0xedb6da6e, 0xedb6da6e, 0xedb6da6e, 0xedb6dbae}, |
2886 | { 0x00007838, 0xdac71441, 0xdac71441, 0xdac71441, 0xdac71441, 0xdac71441 }, | 2887 | {0x00007838, 0xdac71441, 0xdac71441, 0xdac71441, 0xdac71441, 0xdac71441}, |
2887 | { 0x0000783c, 0x2481f6fe, 0x2481f6fe, 0x2481f6fe, 0x2481f6fe, 0x2481f6fe }, | 2888 | {0x0000783c, 0x2481f6fe, 0x2481f6fe, 0x2481f6fe, 0x2481f6fe, 0x2481f6fe}, |
2888 | { 0x00007840, 0xba5f638c, 0xba5f638c, 0xba5f638c, 0xba5f638c, 0xba5f638c }, | 2889 | {0x00007840, 0xba5f638c, 0xba5f638c, 0xba5f638c, 0xba5f638c, 0xba5f638c}, |
2889 | { 0x0000786c, 0x48609eb4, 0x48609eb4, 0x48609eb4, 0x48609eb4, 0x48609eb4 }, | 2890 | {0x0000786c, 0x48609eb4, 0x48609eb4, 0x48609eb4, 0x48609eb4, 0x48609eb4}, |
2890 | { 0x00007820, 0x00000c04, 0x00000c04, 0x00000c04, 0x00000c04, 0x00000c04 }, | 2891 | {0x00007820, 0x00000c04, 0x00000c04, 0x00000c04, 0x00000c04, 0x00000c04}, |
2891 | { 0x0000a274, 0x0a21c652, 0x0a21c652, 0x0a21a652, 0x0a21a652, 0x0a22a652 }, | 2892 | {0x0000a274, 0x0a21c652, 0x0a21c652, 0x0a21a652, 0x0a21a652, 0x0a22a652}, |
2892 | { 0x0000a278, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c }, | 2893 | {0x0000a278, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c}, |
2893 | { 0x0000a27c, 0x050e039c, 0x050e039c, 0x050e039c, 0x050e039c, 0x050e039c }, | 2894 | {0x0000a27c, 0x050e039c, 0x050e039c, 0x050e039c, 0x050e039c, 0x050e039c}, |
2894 | { 0x0000a394, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c }, | 2895 | {0x0000a394, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c}, |
2895 | { 0x0000a398, 0x0000039c, 0x0000039c, 0x0000039c, 0x0000039c, 0x0000039c }, | 2896 | {0x0000a398, 0x0000039c, 0x0000039c, 0x0000039c, 0x0000039c, 0x0000039c}, |
2896 | { 0x0000a3dc, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c }, | 2897 | {0x0000a3dc, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c, 0x39ce739c}, |
2897 | { 0x0000a3e0, 0x0000039c, 0x0000039c, 0x0000039c, 0x0000039c, 0x0000039c }, | 2898 | {0x0000a3e0, 0x0000039c, 0x0000039c, 0x0000039c, 0x0000039c, 0x0000039c}, |
2898 | }; | 2899 | }; |
2899 | 2900 | ||
2900 | static const u32 ar9285Modes_XE2_0_high_power[][6] = { | 2901 | static const u32 ar9285Modes_XE2_0_high_power[][6] = { |
2901 | { 0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 2902 | {0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
2902 | { 0x0000a304, 0x00000000, 0x00000000, 0x00006200, 0x00006200, 0x00000000 }, | 2903 | {0x0000a304, 0x00000000, 0x00000000, 0x00006200, 0x00006200, 0x00000000}, |
2903 | { 0x0000a308, 0x00000000, 0x00000000, 0x00008201, 0x00008201, 0x00000000 }, | 2904 | {0x0000a308, 0x00000000, 0x00000000, 0x00008201, 0x00008201, 0x00000000}, |
2904 | { 0x0000a30c, 0x00000000, 0x00000000, 0x0000b240, 0x0000b240, 0x00000000 }, | 2905 | {0x0000a30c, 0x00000000, 0x00000000, 0x0000b240, 0x0000b240, 0x00000000}, |
2905 | { 0x0000a310, 0x00000000, 0x00000000, 0x0000d241, 0x0000d241, 0x00000000 }, | 2906 | {0x0000a310, 0x00000000, 0x00000000, 0x0000d241, 0x0000d241, 0x00000000}, |
2906 | { 0x0000a314, 0x00000000, 0x00000000, 0x0000f600, 0x0000f600, 0x00000000 }, | 2907 | {0x0000a314, 0x00000000, 0x00000000, 0x0000f600, 0x0000f600, 0x00000000}, |
2907 | { 0x0000a318, 0x00000000, 0x00000000, 0x00012800, 0x00012800, 0x00000000 }, | 2908 | {0x0000a318, 0x00000000, 0x00000000, 0x00012800, 0x00012800, 0x00000000}, |
2908 | { 0x0000a31c, 0x00000000, 0x00000000, 0x00016802, 0x00016802, 0x00000000 }, | 2909 | {0x0000a31c, 0x00000000, 0x00000000, 0x00016802, 0x00016802, 0x00000000}, |
2909 | { 0x0000a320, 0x00000000, 0x00000000, 0x0001b805, 0x0001b805, 0x00000000 }, | 2910 | {0x0000a320, 0x00000000, 0x00000000, 0x0001b805, 0x0001b805, 0x00000000}, |
2910 | { 0x0000a324, 0x00000000, 0x00000000, 0x00021a80, 0x00021a80, 0x00000000 }, | 2911 | {0x0000a324, 0x00000000, 0x00000000, 0x00021a80, 0x00021a80, 0x00000000}, |
2911 | { 0x0000a328, 0x00000000, 0x00000000, 0x00028b00, 0x00028b00, 0x00000000 }, | 2912 | {0x0000a328, 0x00000000, 0x00000000, 0x00028b00, 0x00028b00, 0x00000000}, |
2912 | { 0x0000a32c, 0x00000000, 0x00000000, 0x0002ab40, 0x0002ab40, 0x00000000 }, | 2913 | {0x0000a32c, 0x00000000, 0x00000000, 0x0002ab40, 0x0002ab40, 0x00000000}, |
2913 | { 0x0000a330, 0x00000000, 0x00000000, 0x0002cd80, 0x0002cd80, 0x00000000 }, | 2914 | {0x0000a330, 0x00000000, 0x00000000, 0x0002cd80, 0x0002cd80, 0x00000000}, |
2914 | { 0x0000a334, 0x00000000, 0x00000000, 0x00033d82, 0x00033d82, 0x00000000 }, | 2915 | {0x0000a334, 0x00000000, 0x00000000, 0x00033d82, 0x00033d82, 0x00000000}, |
2915 | { 0x0000a338, 0x0003891e, 0x0003891e, 0x0003891e, 0x0003891e, 0x00000000 }, | 2916 | {0x0000a338, 0x0003891e, 0x0003891e, 0x0003891e, 0x0003891e, 0x00000000}, |
2916 | { 0x0000a33c, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x00000000 }, | 2917 | {0x0000a33c, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x00000000}, |
2917 | { 0x0000a340, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2918 | {0x0000a340, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2918 | { 0x0000a344, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2919 | {0x0000a344, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2919 | { 0x0000a348, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2920 | {0x0000a348, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2920 | { 0x0000a34c, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2921 | {0x0000a34c, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2921 | { 0x0000a350, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2922 | {0x0000a350, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2922 | { 0x0000a354, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 2923 | {0x0000a354, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
2923 | { 0x00007814, 0x92497ca8, 0x92497ca8, 0x92497ca8, 0x92497ca8, 0x92497ca8 }, | 2924 | {0x00007814, 0x92497ca8, 0x92497ca8, 0x92497ca8, 0x92497ca8, 0x92497ca8}, |
2924 | { 0x00007828, 0x4ad2491b, 0x4ad2491b, 0x2ad2491b, 0x4ad2491b, 0x4ad2491b }, | 2925 | {0x00007828, 0x4ad2491b, 0x4ad2491b, 0x2ad2491b, 0x4ad2491b, 0x4ad2491b}, |
2925 | { 0x00007830, 0xedb6da6e, 0xedb6da6e, 0xedb6da6e, 0xedb6da6e, 0xedb6da6e }, | 2926 | {0x00007830, 0xedb6da6e, 0xedb6da6e, 0xedb6da6e, 0xedb6da6e, 0xedb6da6e}, |
2926 | { 0x00007838, 0xdac71443, 0xdac71443, 0xdac71443, 0xdac71443, 0xdac71443 }, | 2927 | {0x00007838, 0xdac71443, 0xdac71443, 0xdac71443, 0xdac71443, 0xdac71443}, |
2927 | { 0x0000783c, 0x2481f6fe, 0x2481f6fe, 0x2481f6fe, 0x2481f6fe, 0x2481f6fe }, | 2928 | {0x0000783c, 0x2481f6fe, 0x2481f6fe, 0x2481f6fe, 0x2481f6fe, 0x2481f6fe}, |
2928 | { 0x00007840, 0xba5f638c, 0xba5f638c, 0xba5f638c, 0xba5f638c, 0xba5f638c }, | 2929 | {0x00007840, 0xba5f638c, 0xba5f638c, 0xba5f638c, 0xba5f638c, 0xba5f638c}, |
2929 | { 0x0000786c, 0x08609ebe, 0x08609ebe, 0x08609ebe, 0x08609ebe, 0x08609ebe }, | 2930 | {0x0000786c, 0x08609ebe, 0x08609ebe, 0x08609ebe, 0x08609ebe, 0x08609ebe}, |
2930 | { 0x00007820, 0x00000c00, 0x00000c00, 0x00000c00, 0x00000c00, 0x00000c00 }, | 2931 | {0x00007820, 0x00000c00, 0x00000c00, 0x00000c00, 0x00000c00, 0x00000c00}, |
2931 | { 0x0000a274, 0x0a22a652, 0x0a22a652, 0x0a216652, 0x0a216652, 0x0a22a652 }, | 2932 | {0x0000a274, 0x0a22a652, 0x0a22a652, 0x0a216652, 0x0a216652, 0x0a22a652}, |
2932 | { 0x0000a278, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7 }, | 2933 | {0x0000a278, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7}, |
2933 | { 0x0000a27c, 0x050380e7, 0x050380e7, 0x050380e7, 0x050380e7, 0x050380e7 }, | 2934 | {0x0000a27c, 0x050380e7, 0x050380e7, 0x050380e7, 0x050380e7, 0x050380e7}, |
2934 | { 0x0000a394, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7 }, | 2935 | {0x0000a394, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7}, |
2935 | { 0x0000a398, 0x000000e7, 0x000000e7, 0x000000e7, 0x000000e7, 0x000000e7 }, | 2936 | {0x0000a398, 0x000000e7, 0x000000e7, 0x000000e7, 0x000000e7, 0x000000e7}, |
2936 | { 0x0000a3dc, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7 }, | 2937 | {0x0000a3dc, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7}, |
2937 | { 0x0000a3e0, 0x000000e7, 0x000000e7, 0x000000e7, 0x000000e7, 0x000000e7 }, | 2938 | {0x0000a3e0, 0x000000e7, 0x000000e7, 0x000000e7, 0x000000e7, 0x000000e7}, |
2938 | }; | 2939 | }; |
2939 | 2940 | ||
2940 | static const u32 ar9285PciePhy_clkreq_always_on_L1_9285_1_2[][2] = { | 2941 | static const u32 ar9285PciePhy_clkreq_always_on_L1_9285_1_2[][2] = { |
2941 | {0x00004040, 0x9248fd00 }, | 2942 | /* Addr allmodes */ |
2942 | {0x00004040, 0x24924924 }, | 2943 | {0x00004040, 0x9248fd00}, |
2943 | {0x00004040, 0xa8000019 }, | 2944 | {0x00004040, 0x24924924}, |
2944 | {0x00004040, 0x13160820 }, | 2945 | {0x00004040, 0xa8000019}, |
2945 | {0x00004040, 0xe5980560 }, | 2946 | {0x00004040, 0x13160820}, |
2946 | {0x00004040, 0xc01dcffd }, | 2947 | {0x00004040, 0xe5980560}, |
2947 | {0x00004040, 0x1aaabe41 }, | 2948 | {0x00004040, 0xc01dcffd}, |
2948 | {0x00004040, 0xbe105554 }, | 2949 | {0x00004040, 0x1aaabe41}, |
2949 | {0x00004040, 0x00043007 }, | 2950 | {0x00004040, 0xbe105554}, |
2950 | {0x00004044, 0x00000000 }, | 2951 | {0x00004040, 0x00043007}, |
2952 | {0x00004044, 0x00000000}, | ||
2951 | }; | 2953 | }; |
2952 | 2954 | ||
2953 | static const u32 ar9285PciePhy_clkreq_off_L1_9285_1_2[][2] = { | 2955 | static const u32 ar9285PciePhy_clkreq_off_L1_9285_1_2[][2] = { |
2954 | {0x00004040, 0x9248fd00 }, | 2956 | /* Addr allmodes */ |
2955 | {0x00004040, 0x24924924 }, | 2957 | {0x00004040, 0x9248fd00}, |
2956 | {0x00004040, 0xa8000019 }, | 2958 | {0x00004040, 0x24924924}, |
2957 | {0x00004040, 0x13160820 }, | 2959 | {0x00004040, 0xa8000019}, |
2958 | {0x00004040, 0xe5980560 }, | 2960 | {0x00004040, 0x13160820}, |
2959 | {0x00004040, 0xc01dcffc }, | 2961 | {0x00004040, 0xe5980560}, |
2960 | {0x00004040, 0x1aaabe41 }, | 2962 | {0x00004040, 0xc01dcffc}, |
2961 | {0x00004040, 0xbe105554 }, | 2963 | {0x00004040, 0x1aaabe41}, |
2962 | {0x00004040, 0x00043007 }, | 2964 | {0x00004040, 0xbe105554}, |
2963 | {0x00004044, 0x00000000 }, | 2965 | {0x00004040, 0x00043007}, |
2966 | {0x00004044, 0x00000000}, | ||
2964 | }; | 2967 | }; |
2965 | 2968 | ||
2966 | /* AR9287 Revision 10 */ | ||
2967 | static const u32 ar9287Modes_9287_1_0[][6] = { | 2969 | static const u32 ar9287Modes_9287_1_0[][6] = { |
2968 | /* Address 5G-HT20 5G-HT40 2G-HT40 2G-HT20 Turbo */ | 2970 | {0x00001030, 0x00000000, 0x00000000, 0x000002c0, 0x00000160, 0x000001e0}, |
2969 | { 0x00001030, 0x00000000, 0x00000000, 0x000002c0, 0x00000160, 0x000001e0 }, | 2971 | {0x00001070, 0x00000000, 0x00000000, 0x00000318, 0x0000018c, 0x000001e0}, |
2970 | { 0x00001070, 0x00000000, 0x00000000, 0x00000318, 0x0000018c, 0x000001e0 }, | 2972 | {0x000010b0, 0x00000000, 0x00000000, 0x00007c70, 0x00003e38, 0x00001180}, |
2971 | { 0x000010b0, 0x00000000, 0x00000000, 0x00007c70, 0x00003e38, 0x00001180 }, | 2973 | {0x000010f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008}, |
2972 | { 0x000010f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008 }, | 2974 | {0x00008014, 0x00000000, 0x00000000, 0x10801600, 0x08400b00, 0x06e006e0}, |
2973 | { 0x00008014, 0x00000000, 0x00000000, 0x10801600, 0x08400b00, 0x06e006e0 }, | 2975 | {0x0000801c, 0x00000000, 0x00000000, 0x12e00057, 0x12e0002b, 0x0988004f}, |
2974 | { 0x0000801c, 0x00000000, 0x00000000, 0x12e00057, 0x12e0002b, 0x0988004f }, | 2976 | {0x00008120, 0x08f04800, 0x08f04800, 0x08f04810, 0x08f04810, 0x08f04810}, |
2975 | { 0x00008120, 0x08f04800, 0x08f04800, 0x08f04810, 0x08f04810, 0x08f04810 }, | 2977 | {0x000081d0, 0x00003200, 0x00003200, 0x0000320a, 0x0000320a, 0x0000320a}, |
2976 | { 0x000081d0, 0x00003200, 0x00003200, 0x0000320a, 0x0000320a, 0x0000320a }, | 2978 | {0x00008318, 0x00000000, 0x00000000, 0x00006880, 0x00003440, 0x00006880}, |
2977 | { 0x00008318, 0x00000000, 0x00000000, 0x00006880, 0x00003440, 0x00006880 }, | 2979 | {0x00009804, 0x00000000, 0x00000000, 0x000003c4, 0x00000300, 0x00000303}, |
2978 | { 0x00009804, 0x00000000, 0x00000000, 0x000003c4, 0x00000300, 0x00000303 }, | 2980 | {0x00009820, 0x00000000, 0x00000000, 0x02020200, 0x02020200, 0x02020200}, |
2979 | { 0x00009820, 0x00000000, 0x00000000, 0x02020200, 0x02020200, 0x02020200 }, | 2981 | {0x00009824, 0x00000000, 0x00000000, 0x01000e0e, 0x01000e0e, 0x01000e0e}, |
2980 | { 0x00009824, 0x00000000, 0x00000000, 0x01000e0e, 0x01000e0e, 0x01000e0e }, | 2982 | {0x00009828, 0x00000000, 0x00000000, 0x0a020001, 0x0a020001, 0x0a020001}, |
2981 | { 0x00009828, 0x00000000, 0x00000000, 0x0a020001, 0x0a020001, 0x0a020001 }, | 2983 | {0x00009834, 0x00000000, 0x00000000, 0x00000e0e, 0x00000e0e, 0x00000e0e}, |
2982 | { 0x00009834, 0x00000000, 0x00000000, 0x00000e0e, 0x00000e0e, 0x00000e0e }, | 2984 | {0x00009838, 0x00000003, 0x00000003, 0x00000007, 0x00000007, 0x00000007}, |
2983 | { 0x00009838, 0x00000003, 0x00000003, 0x00000007, 0x00000007, 0x00000007 }, | 2985 | {0x00009840, 0x206a002e, 0x206a002e, 0x206a012e, 0x206a012e, 0x206a012e}, |
2984 | { 0x00009840, 0x206a002e, 0x206a002e, 0x206a012e, 0x206a012e, 0x206a012e }, | 2986 | {0x00009844, 0x03720000, 0x03720000, 0x037216a0, 0x037216a0, 0x037216a0}, |
2985 | { 0x00009844, 0x03720000, 0x03720000, 0x037216a0, 0x037216a0, 0x037216a0 }, | 2987 | {0x00009850, 0x60000000, 0x60000000, 0x6d4000e2, 0x6c4000e2, 0x6c4000e2}, |
2986 | { 0x00009850, 0x60000000, 0x60000000, 0x6d4000e2, 0x6c4000e2, 0x6c4000e2 }, | 2988 | {0x00009858, 0x7c000d00, 0x7c000d00, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e}, |
2987 | { 0x00009858, 0x7c000d00, 0x7c000d00, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e }, | 2989 | {0x0000985c, 0x3100005e, 0x3100005e, 0x3139605e, 0x31395d5e, 0x31395d5e}, |
2988 | { 0x0000985c, 0x3100005e, 0x3100005e, 0x3139605e, 0x31395d5e, 0x31395d5e }, | 2990 | {0x00009860, 0x00058d00, 0x00058d00, 0x00058d20, 0x00058d20, 0x00058d18}, |
2989 | { 0x00009860, 0x00058d00, 0x00058d00, 0x00058d20, 0x00058d20, 0x00058d18 }, | 2991 | {0x00009864, 0x00000e00, 0x00000e00, 0x0001ce00, 0x0001ce00, 0x0001ce00}, |
2990 | { 0x00009864, 0x00000e00, 0x00000e00, 0x0001ce00, 0x0001ce00, 0x0001ce00 }, | 2992 | {0x00009868, 0x000040c0, 0x000040c0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0}, |
2991 | { 0x00009868, 0x000040c0, 0x000040c0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0 }, | 2993 | {0x0000986c, 0x00000080, 0x00000080, 0x06903881, 0x06903881, 0x06903881}, |
2992 | { 0x0000986c, 0x00000080, 0x00000080, 0x06903881, 0x06903881, 0x06903881 }, | 2994 | {0x00009914, 0x00000000, 0x00000000, 0x00001130, 0x00000898, 0x000007d0}, |
2993 | { 0x00009914, 0x00000000, 0x00000000, 0x00001130, 0x00000898, 0x000007d0 }, | 2995 | {0x00009918, 0x00000000, 0x00000000, 0x00000016, 0x0000000b, 0x00000016}, |
2994 | { 0x00009918, 0x00000000, 0x00000000, 0x00000016, 0x0000000b, 0x00000016 }, | 2996 | {0x00009924, 0xd00a8a01, 0xd00a8a01, 0xd00a8a0d, 0xd00a8a0d, 0xd00a8a0d}, |
2995 | { 0x00009924, 0xd00a8a01, 0xd00a8a01, 0xd00a8a0d, 0xd00a8a0d, 0xd00a8a0d }, | 2997 | {0x00009944, 0xefbc0000, 0xefbc0000, 0xefbc1010, 0xefbc1010, 0xefbc1010}, |
2996 | { 0x00009944, 0xefbc0000, 0xefbc0000, 0xefbc1010, 0xefbc1010, 0xefbc1010 }, | 2998 | {0x00009960, 0x00000000, 0x00000000, 0x00000010, 0x00000010, 0x00000010}, |
2997 | { 0x00009960, 0x00000000, 0x00000000, 0x00000010, 0x00000010, 0x00000010 }, | 2999 | {0x0000a960, 0x00000000, 0x00000000, 0x00000010, 0x00000010, 0x00000010}, |
2998 | { 0x0000a960, 0x00000000, 0x00000000, 0x00000010, 0x00000010, 0x00000010 }, | 3000 | {0x00009964, 0x00000000, 0x00000000, 0x00000210, 0x00000210, 0x00000210}, |
2999 | { 0x00009964, 0x00000000, 0x00000000, 0x00000210, 0x00000210, 0x00000210 }, | 3001 | {0x0000c968, 0x00000200, 0x00000200, 0x000003ce, 0x000003ce, 0x000003ce}, |
3000 | { 0x0000c968, 0x00000200, 0x00000200, 0x000003ce, 0x000003ce, 0x000003ce }, | 3002 | {0x000099b8, 0x00000000, 0x00000000, 0x0000001c, 0x0000001c, 0x0000001c}, |
3001 | { 0x000099b8, 0x00000000, 0x00000000, 0x0000001c, 0x0000001c, 0x0000001c }, | 3003 | {0x000099bc, 0x00000000, 0x00000000, 0x00000c00, 0x00000c00, 0x00000c00}, |
3002 | { 0x000099bc, 0x00000000, 0x00000000, 0x00000c00, 0x00000c00, 0x00000c00 }, | 3004 | {0x000099c0, 0x00000000, 0x00000000, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4}, |
3003 | { 0x000099c0, 0x00000000, 0x00000000, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4 }, | 3005 | {0x0000a204, 0x00000440, 0x00000440, 0x00000444, 0x00000444, 0x00000444}, |
3004 | { 0x0000a204, 0x00000440, 0x00000440, 0x00000444, 0x00000444, 0x00000444 }, | 3006 | {0x0000a20c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
3005 | { 0x0000a20c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 3007 | {0x0000b20c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
3006 | { 0x0000b20c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 3008 | {0x0000a21c, 0x1803800a, 0x1803800a, 0x1883800a, 0x1883800a, 0x1883800a}, |
3007 | { 0x0000a21c, 0x1803800a, 0x1803800a, 0x1883800a, 0x1883800a, 0x1883800a }, | 3009 | {0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000}, |
3008 | { 0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000 }, | 3010 | {0x0000a250, 0x00000000, 0x00000000, 0x0004a000, 0x0004a000, 0x0004a000}, |
3009 | { 0x0000a250, 0x00000000, 0x00000000, 0x0004a000, 0x0004a000, 0x0004a000 }, | 3011 | {0x0000a358, 0x7999aa02, 0x7999aa02, 0x7999aa0e, 0x7999aa0e, 0x7999aa0e}, |
3010 | { 0x0000a358, 0x7999aa02, 0x7999aa02, 0x7999aa0e, 0x7999aa0e, 0x7999aa0e }, | 3012 | {0x0000a3d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
3011 | { 0x0000a3d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | ||
3012 | }; | 3013 | }; |
3013 | 3014 | ||
3014 | static const u32 ar9287Common_9287_1_0[][2] = { | 3015 | static const u32 ar9287Common_9287_1_0[][2] = { |
3015 | { 0x0000000c, 0x00000000 }, | 3016 | /* Addr allmodes */ |
3016 | { 0x00000030, 0x00020015 }, | 3017 | {0x0000000c, 0x00000000}, |
3017 | { 0x00000034, 0x00000005 }, | 3018 | {0x00000030, 0x00020015}, |
3018 | { 0x00000040, 0x00000000 }, | 3019 | {0x00000034, 0x00000005}, |
3019 | { 0x00000044, 0x00000008 }, | 3020 | {0x00000040, 0x00000000}, |
3020 | { 0x00000048, 0x00000008 }, | 3021 | {0x00000044, 0x00000008}, |
3021 | { 0x0000004c, 0x00000010 }, | 3022 | {0x00000048, 0x00000008}, |
3022 | { 0x00000050, 0x00000000 }, | 3023 | {0x0000004c, 0x00000010}, |
3023 | { 0x00000054, 0x0000001f }, | 3024 | {0x00000050, 0x00000000}, |
3024 | { 0x00000800, 0x00000000 }, | 3025 | {0x00000054, 0x0000001f}, |
3025 | { 0x00000804, 0x00000000 }, | 3026 | {0x00000800, 0x00000000}, |
3026 | { 0x00000808, 0x00000000 }, | 3027 | {0x00000804, 0x00000000}, |
3027 | { 0x0000080c, 0x00000000 }, | 3028 | {0x00000808, 0x00000000}, |
3028 | { 0x00000810, 0x00000000 }, | 3029 | {0x0000080c, 0x00000000}, |
3029 | { 0x00000814, 0x00000000 }, | 3030 | {0x00000810, 0x00000000}, |
3030 | { 0x00000818, 0x00000000 }, | 3031 | {0x00000814, 0x00000000}, |
3031 | { 0x0000081c, 0x00000000 }, | 3032 | {0x00000818, 0x00000000}, |
3032 | { 0x00000820, 0x00000000 }, | 3033 | {0x0000081c, 0x00000000}, |
3033 | { 0x00000824, 0x00000000 }, | 3034 | {0x00000820, 0x00000000}, |
3034 | { 0x00001040, 0x002ffc0f }, | 3035 | {0x00000824, 0x00000000}, |
3035 | { 0x00001044, 0x002ffc0f }, | 3036 | {0x00001040, 0x002ffc0f}, |
3036 | { 0x00001048, 0x002ffc0f }, | 3037 | {0x00001044, 0x002ffc0f}, |
3037 | { 0x0000104c, 0x002ffc0f }, | 3038 | {0x00001048, 0x002ffc0f}, |
3038 | { 0x00001050, 0x002ffc0f }, | 3039 | {0x0000104c, 0x002ffc0f}, |
3039 | { 0x00001054, 0x002ffc0f }, | 3040 | {0x00001050, 0x002ffc0f}, |
3040 | { 0x00001058, 0x002ffc0f }, | 3041 | {0x00001054, 0x002ffc0f}, |
3041 | { 0x0000105c, 0x002ffc0f }, | 3042 | {0x00001058, 0x002ffc0f}, |
3042 | { 0x00001060, 0x002ffc0f }, | 3043 | {0x0000105c, 0x002ffc0f}, |
3043 | { 0x00001064, 0x002ffc0f }, | 3044 | {0x00001060, 0x002ffc0f}, |
3044 | { 0x00001230, 0x00000000 }, | 3045 | {0x00001064, 0x002ffc0f}, |
3045 | { 0x00001270, 0x00000000 }, | 3046 | {0x00001230, 0x00000000}, |
3046 | { 0x00001038, 0x00000000 }, | 3047 | {0x00001270, 0x00000000}, |
3047 | { 0x00001078, 0x00000000 }, | 3048 | {0x00001038, 0x00000000}, |
3048 | { 0x000010b8, 0x00000000 }, | 3049 | {0x00001078, 0x00000000}, |
3049 | { 0x000010f8, 0x00000000 }, | 3050 | {0x000010b8, 0x00000000}, |
3050 | { 0x00001138, 0x00000000 }, | 3051 | {0x000010f8, 0x00000000}, |
3051 | { 0x00001178, 0x00000000 }, | 3052 | {0x00001138, 0x00000000}, |
3052 | { 0x000011b8, 0x00000000 }, | 3053 | {0x00001178, 0x00000000}, |
3053 | { 0x000011f8, 0x00000000 }, | 3054 | {0x000011b8, 0x00000000}, |
3054 | { 0x00001238, 0x00000000 }, | 3055 | {0x000011f8, 0x00000000}, |
3055 | { 0x00001278, 0x00000000 }, | 3056 | {0x00001238, 0x00000000}, |
3056 | { 0x000012b8, 0x00000000 }, | 3057 | {0x00001278, 0x00000000}, |
3057 | { 0x000012f8, 0x00000000 }, | 3058 | {0x000012b8, 0x00000000}, |
3058 | { 0x00001338, 0x00000000 }, | 3059 | {0x000012f8, 0x00000000}, |
3059 | { 0x00001378, 0x00000000 }, | 3060 | {0x00001338, 0x00000000}, |
3060 | { 0x000013b8, 0x00000000 }, | 3061 | {0x00001378, 0x00000000}, |
3061 | { 0x000013f8, 0x00000000 }, | 3062 | {0x000013b8, 0x00000000}, |
3062 | { 0x00001438, 0x00000000 }, | 3063 | {0x000013f8, 0x00000000}, |
3063 | { 0x00001478, 0x00000000 }, | 3064 | {0x00001438, 0x00000000}, |
3064 | { 0x000014b8, 0x00000000 }, | 3065 | {0x00001478, 0x00000000}, |
3065 | { 0x000014f8, 0x00000000 }, | 3066 | {0x000014b8, 0x00000000}, |
3066 | { 0x00001538, 0x00000000 }, | 3067 | {0x000014f8, 0x00000000}, |
3067 | { 0x00001578, 0x00000000 }, | 3068 | {0x00001538, 0x00000000}, |
3068 | { 0x000015b8, 0x00000000 }, | 3069 | {0x00001578, 0x00000000}, |
3069 | { 0x000015f8, 0x00000000 }, | 3070 | {0x000015b8, 0x00000000}, |
3070 | { 0x00001638, 0x00000000 }, | 3071 | {0x000015f8, 0x00000000}, |
3071 | { 0x00001678, 0x00000000 }, | 3072 | {0x00001638, 0x00000000}, |
3072 | { 0x000016b8, 0x00000000 }, | 3073 | {0x00001678, 0x00000000}, |
3073 | { 0x000016f8, 0x00000000 }, | 3074 | {0x000016b8, 0x00000000}, |
3074 | { 0x00001738, 0x00000000 }, | 3075 | {0x000016f8, 0x00000000}, |
3075 | { 0x00001778, 0x00000000 }, | 3076 | {0x00001738, 0x00000000}, |
3076 | { 0x000017b8, 0x00000000 }, | 3077 | {0x00001778, 0x00000000}, |
3077 | { 0x000017f8, 0x00000000 }, | 3078 | {0x000017b8, 0x00000000}, |
3078 | { 0x0000103c, 0x00000000 }, | 3079 | {0x000017f8, 0x00000000}, |
3079 | { 0x0000107c, 0x00000000 }, | 3080 | {0x0000103c, 0x00000000}, |
3080 | { 0x000010bc, 0x00000000 }, | 3081 | {0x0000107c, 0x00000000}, |
3081 | { 0x000010fc, 0x00000000 }, | 3082 | {0x000010bc, 0x00000000}, |
3082 | { 0x0000113c, 0x00000000 }, | 3083 | {0x000010fc, 0x00000000}, |
3083 | { 0x0000117c, 0x00000000 }, | 3084 | {0x0000113c, 0x00000000}, |
3084 | { 0x000011bc, 0x00000000 }, | 3085 | {0x0000117c, 0x00000000}, |
3085 | { 0x000011fc, 0x00000000 }, | 3086 | {0x000011bc, 0x00000000}, |
3086 | { 0x0000123c, 0x00000000 }, | 3087 | {0x000011fc, 0x00000000}, |
3087 | { 0x0000127c, 0x00000000 }, | 3088 | {0x0000123c, 0x00000000}, |
3088 | { 0x000012bc, 0x00000000 }, | 3089 | {0x0000127c, 0x00000000}, |
3089 | { 0x000012fc, 0x00000000 }, | 3090 | {0x000012bc, 0x00000000}, |
3090 | { 0x0000133c, 0x00000000 }, | 3091 | {0x000012fc, 0x00000000}, |
3091 | { 0x0000137c, 0x00000000 }, | 3092 | {0x0000133c, 0x00000000}, |
3092 | { 0x000013bc, 0x00000000 }, | 3093 | {0x0000137c, 0x00000000}, |
3093 | { 0x000013fc, 0x00000000 }, | 3094 | {0x000013bc, 0x00000000}, |
3094 | { 0x0000143c, 0x00000000 }, | 3095 | {0x000013fc, 0x00000000}, |
3095 | { 0x0000147c, 0x00000000 }, | 3096 | {0x0000143c, 0x00000000}, |
3096 | { 0x00004030, 0x00000002 }, | 3097 | {0x0000147c, 0x00000000}, |
3097 | { 0x0000403c, 0x00000002 }, | 3098 | {0x00004030, 0x00000002}, |
3098 | { 0x00004024, 0x0000001f }, | 3099 | {0x0000403c, 0x00000002}, |
3099 | { 0x00004060, 0x00000000 }, | 3100 | {0x00004024, 0x0000001f}, |
3100 | { 0x00004064, 0x00000000 }, | 3101 | {0x00004060, 0x00000000}, |
3101 | { 0x00007010, 0x00000033 }, | 3102 | {0x00004064, 0x00000000}, |
3102 | { 0x00007020, 0x00000000 }, | 3103 | {0x00007010, 0x00000033}, |
3103 | { 0x00007034, 0x00000002 }, | 3104 | {0x00007020, 0x00000000}, |
3104 | { 0x00007038, 0x000004c2 }, | 3105 | {0x00007034, 0x00000002}, |
3105 | { 0x00008004, 0x00000000 }, | 3106 | {0x00007038, 0x000004c2}, |
3106 | { 0x00008008, 0x00000000 }, | 3107 | {0x00008004, 0x00000000}, |
3107 | { 0x0000800c, 0x00000000 }, | 3108 | {0x00008008, 0x00000000}, |
3108 | { 0x00008018, 0x00000700 }, | 3109 | {0x0000800c, 0x00000000}, |
3109 | { 0x00008020, 0x00000000 }, | 3110 | {0x00008018, 0x00000700}, |
3110 | { 0x00008038, 0x00000000 }, | 3111 | {0x00008020, 0x00000000}, |
3111 | { 0x0000803c, 0x00000000 }, | 3112 | {0x00008038, 0x00000000}, |
3112 | { 0x00008048, 0x40000000 }, | 3113 | {0x0000803c, 0x00000000}, |
3113 | { 0x00008054, 0x00000000 }, | 3114 | {0x00008048, 0x40000000}, |
3114 | { 0x00008058, 0x00000000 }, | 3115 | {0x00008054, 0x00000000}, |
3115 | { 0x0000805c, 0x000fc78f }, | 3116 | {0x00008058, 0x00000000}, |
3116 | { 0x00008060, 0x0000000f }, | 3117 | {0x0000805c, 0x000fc78f}, |
3117 | { 0x00008064, 0x00000000 }, | 3118 | {0x00008060, 0x0000000f}, |
3118 | { 0x00008070, 0x00000000 }, | 3119 | {0x00008064, 0x00000000}, |
3119 | { 0x000080c0, 0x2a80001a }, | 3120 | {0x00008070, 0x00000000}, |
3120 | { 0x000080c4, 0x05dc01e0 }, | 3121 | {0x000080c0, 0x2a80001a}, |
3121 | { 0x000080c8, 0x1f402710 }, | 3122 | {0x000080c4, 0x05dc01e0}, |
3122 | { 0x000080cc, 0x01f40000 }, | 3123 | {0x000080c8, 0x1f402710}, |
3123 | { 0x000080d0, 0x00001e00 }, | 3124 | {0x000080cc, 0x01f40000}, |
3124 | { 0x000080d4, 0x00000000 }, | 3125 | {0x000080d0, 0x00001e00}, |
3125 | { 0x000080d8, 0x00400000 }, | 3126 | {0x000080d4, 0x00000000}, |
3126 | { 0x000080e0, 0xffffffff }, | 3127 | {0x000080d8, 0x00400000}, |
3127 | { 0x000080e4, 0x0000ffff }, | 3128 | {0x000080e0, 0xffffffff}, |
3128 | { 0x000080e8, 0x003f3f3f }, | 3129 | {0x000080e4, 0x0000ffff}, |
3129 | { 0x000080ec, 0x00000000 }, | 3130 | {0x000080e8, 0x003f3f3f}, |
3130 | { 0x000080f0, 0x00000000 }, | 3131 | {0x000080ec, 0x00000000}, |
3131 | { 0x000080f4, 0x00000000 }, | 3132 | {0x000080f0, 0x00000000}, |
3132 | { 0x000080f8, 0x00000000 }, | 3133 | {0x000080f4, 0x00000000}, |
3133 | { 0x000080fc, 0x00020000 }, | 3134 | {0x000080f8, 0x00000000}, |
3134 | { 0x00008100, 0x00020000 }, | 3135 | {0x000080fc, 0x00020000}, |
3135 | { 0x00008104, 0x00000001 }, | 3136 | {0x00008100, 0x00020000}, |
3136 | { 0x00008108, 0x00000052 }, | 3137 | {0x00008104, 0x00000001}, |
3137 | { 0x0000810c, 0x00000000 }, | 3138 | {0x00008108, 0x00000052}, |
3138 | { 0x00008110, 0x00000168 }, | 3139 | {0x0000810c, 0x00000000}, |
3139 | { 0x00008118, 0x000100aa }, | 3140 | {0x00008110, 0x00000168}, |
3140 | { 0x0000811c, 0x00003210 }, | 3141 | {0x00008118, 0x000100aa}, |
3141 | { 0x00008124, 0x00000000 }, | 3142 | {0x0000811c, 0x00003210}, |
3142 | { 0x00008128, 0x00000000 }, | 3143 | {0x00008124, 0x00000000}, |
3143 | { 0x0000812c, 0x00000000 }, | 3144 | {0x00008128, 0x00000000}, |
3144 | { 0x00008130, 0x00000000 }, | 3145 | {0x0000812c, 0x00000000}, |
3145 | { 0x00008134, 0x00000000 }, | 3146 | {0x00008130, 0x00000000}, |
3146 | { 0x00008138, 0x00000000 }, | 3147 | {0x00008134, 0x00000000}, |
3147 | { 0x0000813c, 0x00000000 }, | 3148 | {0x00008138, 0x00000000}, |
3148 | { 0x00008144, 0xffffffff }, | 3149 | {0x0000813c, 0x00000000}, |
3149 | { 0x00008168, 0x00000000 }, | 3150 | {0x00008144, 0xffffffff}, |
3150 | { 0x0000816c, 0x00000000 }, | 3151 | {0x00008168, 0x00000000}, |
3151 | { 0x00008170, 0x18487320 }, | 3152 | {0x0000816c, 0x00000000}, |
3152 | { 0x00008174, 0xfaa4fa50 }, | 3153 | {0x00008170, 0x18487320}, |
3153 | { 0x00008178, 0x00000100 }, | 3154 | {0x00008174, 0xfaa4fa50}, |
3154 | { 0x0000817c, 0x00000000 }, | 3155 | {0x00008178, 0x00000100}, |
3155 | { 0x000081c0, 0x00000000 }, | 3156 | {0x0000817c, 0x00000000}, |
3156 | { 0x000081c4, 0x00000000 }, | 3157 | {0x000081c0, 0x00000000}, |
3157 | { 0x000081d4, 0x00000000 }, | 3158 | {0x000081c4, 0x00000000}, |
3158 | { 0x000081ec, 0x00000000 }, | 3159 | {0x000081d4, 0x00000000}, |
3159 | { 0x000081f0, 0x00000000 }, | 3160 | {0x000081ec, 0x00000000}, |
3160 | { 0x000081f4, 0x00000000 }, | 3161 | {0x000081f0, 0x00000000}, |
3161 | { 0x000081f8, 0x00000000 }, | 3162 | {0x000081f4, 0x00000000}, |
3162 | { 0x000081fc, 0x00000000 }, | 3163 | {0x000081f8, 0x00000000}, |
3163 | { 0x00008200, 0x00000000 }, | 3164 | {0x000081fc, 0x00000000}, |
3164 | { 0x00008204, 0x00000000 }, | 3165 | {0x00008200, 0x00000000}, |
3165 | { 0x00008208, 0x00000000 }, | 3166 | {0x00008204, 0x00000000}, |
3166 | { 0x0000820c, 0x00000000 }, | 3167 | {0x00008208, 0x00000000}, |
3167 | { 0x00008210, 0x00000000 }, | 3168 | {0x0000820c, 0x00000000}, |
3168 | { 0x00008214, 0x00000000 }, | 3169 | {0x00008210, 0x00000000}, |
3169 | { 0x00008218, 0x00000000 }, | 3170 | {0x00008214, 0x00000000}, |
3170 | { 0x0000821c, 0x00000000 }, | 3171 | {0x00008218, 0x00000000}, |
3171 | { 0x00008220, 0x00000000 }, | 3172 | {0x0000821c, 0x00000000}, |
3172 | { 0x00008224, 0x00000000 }, | 3173 | {0x00008220, 0x00000000}, |
3173 | { 0x00008228, 0x00000000 }, | 3174 | {0x00008224, 0x00000000}, |
3174 | { 0x0000822c, 0x00000000 }, | 3175 | {0x00008228, 0x00000000}, |
3175 | { 0x00008230, 0x00000000 }, | 3176 | {0x0000822c, 0x00000000}, |
3176 | { 0x00008234, 0x00000000 }, | 3177 | {0x00008230, 0x00000000}, |
3177 | { 0x00008238, 0x00000000 }, | 3178 | {0x00008234, 0x00000000}, |
3178 | { 0x0000823c, 0x00000000 }, | 3179 | {0x00008238, 0x00000000}, |
3179 | { 0x00008240, 0x00100000 }, | 3180 | {0x0000823c, 0x00000000}, |
3180 | { 0x00008244, 0x0010f400 }, | 3181 | {0x00008240, 0x00100000}, |
3181 | { 0x00008248, 0x00000100 }, | 3182 | {0x00008244, 0x0010f400}, |
3182 | { 0x0000824c, 0x0001e800 }, | 3183 | {0x00008248, 0x00000100}, |
3183 | { 0x00008250, 0x00000000 }, | 3184 | {0x0000824c, 0x0001e800}, |
3184 | { 0x00008254, 0x00000000 }, | 3185 | {0x00008250, 0x00000000}, |
3185 | { 0x00008258, 0x00000000 }, | 3186 | {0x00008254, 0x00000000}, |
3186 | { 0x0000825c, 0x400000ff }, | 3187 | {0x00008258, 0x00000000}, |
3187 | { 0x00008260, 0x00080922 }, | 3188 | {0x0000825c, 0x400000ff}, |
3188 | { 0x00008264, 0x88a00010 }, | 3189 | {0x00008260, 0x00080922}, |
3189 | { 0x00008270, 0x00000000 }, | 3190 | {0x00008264, 0x88a00010}, |
3190 | { 0x00008274, 0x40000000 }, | 3191 | {0x00008270, 0x00000000}, |
3191 | { 0x00008278, 0x003e4180 }, | 3192 | {0x00008274, 0x40000000}, |
3192 | { 0x0000827c, 0x00000000 }, | 3193 | {0x00008278, 0x003e4180}, |
3193 | { 0x00008284, 0x0000002c }, | 3194 | {0x0000827c, 0x00000000}, |
3194 | { 0x00008288, 0x0000002c }, | 3195 | {0x00008284, 0x0000002c}, |
3195 | { 0x0000828c, 0x000000ff }, | 3196 | {0x00008288, 0x0000002c}, |
3196 | { 0x00008294, 0x00000000 }, | 3197 | {0x0000828c, 0x000000ff}, |
3197 | { 0x00008298, 0x00000000 }, | 3198 | {0x00008294, 0x00000000}, |
3198 | { 0x0000829c, 0x00000000 }, | 3199 | {0x00008298, 0x00000000}, |
3199 | { 0x00008300, 0x00000040 }, | 3200 | {0x0000829c, 0x00000000}, |
3200 | { 0x00008314, 0x00000000 }, | 3201 | {0x00008300, 0x00000040}, |
3201 | { 0x00008328, 0x00000000 }, | 3202 | {0x00008314, 0x00000000}, |
3202 | { 0x0000832c, 0x00000007 }, | 3203 | {0x00008328, 0x00000000}, |
3203 | { 0x00008330, 0x00000302 }, | 3204 | {0x0000832c, 0x00000007}, |
3204 | { 0x00008334, 0x00000e00 }, | 3205 | {0x00008330, 0x00000302}, |
3205 | { 0x00008338, 0x00ff0000 }, | 3206 | {0x00008334, 0x00000e00}, |
3206 | { 0x0000833c, 0x00000000 }, | 3207 | {0x00008338, 0x00ff0000}, |
3207 | { 0x00008340, 0x000107ff }, | 3208 | {0x0000833c, 0x00000000}, |
3208 | { 0x00008344, 0x01c81043 }, | 3209 | {0x00008340, 0x000107ff}, |
3209 | { 0x00008360, 0xffffffff }, | 3210 | {0x00008344, 0x01c81043}, |
3210 | { 0x00008364, 0xffffffff }, | 3211 | {0x00008360, 0xffffffff}, |
3211 | { 0x00008368, 0x00000000 }, | 3212 | {0x00008364, 0xffffffff}, |
3212 | { 0x00008370, 0x00000000 }, | 3213 | {0x00008368, 0x00000000}, |
3213 | { 0x00008374, 0x000000ff }, | 3214 | {0x00008370, 0x00000000}, |
3214 | { 0x00008378, 0x00000000 }, | 3215 | {0x00008374, 0x000000ff}, |
3215 | { 0x0000837c, 0x00000000 }, | 3216 | {0x00008378, 0x00000000}, |
3216 | { 0x00008380, 0xffffffff }, | 3217 | {0x0000837c, 0x00000000}, |
3217 | { 0x00008384, 0xffffffff }, | 3218 | {0x00008380, 0xffffffff}, |
3218 | { 0x00008390, 0x0fffffff }, | 3219 | {0x00008384, 0xffffffff}, |
3219 | { 0x00008394, 0x0fffffff }, | 3220 | {0x00008390, 0x0fffffff}, |
3220 | { 0x00008398, 0x00000000 }, | 3221 | {0x00008394, 0x0fffffff}, |
3221 | { 0x0000839c, 0x00000000 }, | 3222 | {0x00008398, 0x00000000}, |
3222 | { 0x000083a0, 0x00000000 }, | 3223 | {0x0000839c, 0x00000000}, |
3223 | { 0x00009808, 0x00000000 }, | 3224 | {0x000083a0, 0x00000000}, |
3224 | { 0x0000980c, 0xafe68e30 }, | 3225 | {0x00009808, 0x00000000}, |
3225 | { 0x00009810, 0xfd14e000 }, | 3226 | {0x0000980c, 0xafe68e30}, |
3226 | { 0x00009814, 0x9c0a9f6b }, | 3227 | {0x00009810, 0xfd14e000}, |
3227 | { 0x0000981c, 0x00000000 }, | 3228 | {0x00009814, 0x9c0a9f6b}, |
3228 | { 0x0000982c, 0x0000a000 }, | 3229 | {0x0000981c, 0x00000000}, |
3229 | { 0x00009830, 0x00000000 }, | 3230 | {0x0000982c, 0x0000a000}, |
3230 | { 0x0000983c, 0x00200400 }, | 3231 | {0x00009830, 0x00000000}, |
3231 | { 0x0000984c, 0x0040233c }, | 3232 | {0x0000983c, 0x00200400}, |
3232 | { 0x0000a84c, 0x0040233c }, | 3233 | {0x0000984c, 0x0040233c}, |
3233 | { 0x00009854, 0x00000044 }, | 3234 | {0x0000a84c, 0x0040233c}, |
3234 | { 0x00009900, 0x00000000 }, | 3235 | {0x00009854, 0x00000044}, |
3235 | { 0x00009904, 0x00000000 }, | 3236 | {0x00009900, 0x00000000}, |
3236 | { 0x00009908, 0x00000000 }, | 3237 | {0x00009904, 0x00000000}, |
3237 | { 0x0000990c, 0x00000000 }, | 3238 | {0x00009908, 0x00000000}, |
3238 | { 0x00009910, 0x10002310 }, | 3239 | {0x0000990c, 0x00000000}, |
3239 | { 0x0000991c, 0x10000fff }, | 3240 | {0x00009910, 0x10002310}, |
3240 | { 0x00009920, 0x04900000 }, | 3241 | {0x0000991c, 0x10000fff}, |
3241 | { 0x0000a920, 0x04900000 }, | 3242 | {0x00009920, 0x04900000}, |
3242 | { 0x00009928, 0x00000001 }, | 3243 | {0x0000a920, 0x04900000}, |
3243 | { 0x0000992c, 0x00000004 }, | 3244 | {0x00009928, 0x00000001}, |
3244 | { 0x00009930, 0x00000000 }, | 3245 | {0x0000992c, 0x00000004}, |
3245 | { 0x0000a930, 0x00000000 }, | 3246 | {0x00009930, 0x00000000}, |
3246 | { 0x00009934, 0x1e1f2022 }, | 3247 | {0x0000a930, 0x00000000}, |
3247 | { 0x00009938, 0x0a0b0c0d }, | 3248 | {0x00009934, 0x1e1f2022}, |
3248 | { 0x0000993c, 0x00000000 }, | 3249 | {0x00009938, 0x0a0b0c0d}, |
3249 | { 0x00009948, 0x9280c00a }, | 3250 | {0x0000993c, 0x00000000}, |
3250 | { 0x0000994c, 0x00020028 }, | 3251 | {0x00009948, 0x9280c00a}, |
3251 | { 0x00009954, 0x5f3ca3de }, | 3252 | {0x0000994c, 0x00020028}, |
3252 | { 0x00009958, 0x0108ecff }, | 3253 | {0x00009954, 0x5f3ca3de}, |
3253 | { 0x00009940, 0x14750604 }, | 3254 | {0x00009958, 0x0108ecff}, |
3254 | { 0x0000c95c, 0x004b6a8e }, | 3255 | {0x00009940, 0x14750604}, |
3255 | { 0x00009970, 0x990bb515 }, | 3256 | {0x0000c95c, 0x004b6a8e}, |
3256 | { 0x00009974, 0x00000000 }, | 3257 | {0x00009970, 0x990bb515}, |
3257 | { 0x00009978, 0x00000001 }, | 3258 | {0x00009974, 0x00000000}, |
3258 | { 0x0000997c, 0x00000000 }, | 3259 | {0x00009978, 0x00000001}, |
3259 | { 0x000099a0, 0x00000000 }, | 3260 | {0x0000997c, 0x00000000}, |
3260 | { 0x000099a4, 0x00000001 }, | 3261 | {0x000099a0, 0x00000000}, |
3261 | { 0x000099a8, 0x201fff00 }, | 3262 | {0x000099a4, 0x00000001}, |
3262 | { 0x000099ac, 0x0c6f0000 }, | 3263 | {0x000099a8, 0x201fff00}, |
3263 | { 0x000099b0, 0x03051000 }, | 3264 | {0x000099ac, 0x0c6f0000}, |
3264 | { 0x000099b4, 0x00000820 }, | 3265 | {0x000099b0, 0x03051000}, |
3265 | { 0x000099c4, 0x06336f77 }, | 3266 | {0x000099b4, 0x00000820}, |
3266 | { 0x000099c8, 0x6af65329 }, | 3267 | {0x000099c4, 0x06336f77}, |
3267 | { 0x000099cc, 0x08f186c8 }, | 3268 | {0x000099c8, 0x6af65329}, |
3268 | { 0x000099d0, 0x00046384 }, | 3269 | {0x000099cc, 0x08f186c8}, |
3269 | { 0x000099dc, 0x00000000 }, | 3270 | {0x000099d0, 0x00046384}, |
3270 | { 0x000099e0, 0x00000000 }, | 3271 | {0x000099dc, 0x00000000}, |
3271 | { 0x000099e4, 0xaaaaaaaa }, | 3272 | {0x000099e0, 0x00000000}, |
3272 | { 0x000099e8, 0x3c466478 }, | 3273 | {0x000099e4, 0xaaaaaaaa}, |
3273 | { 0x000099ec, 0x0cc80caa }, | 3274 | {0x000099e8, 0x3c466478}, |
3274 | { 0x000099f0, 0x00000000 }, | 3275 | {0x000099ec, 0x0cc80caa}, |
3275 | { 0x000099fc, 0x00001042 }, | 3276 | {0x000099f0, 0x00000000}, |
3276 | { 0x0000a1f4, 0x00fffeff }, | 3277 | {0x000099fc, 0x00001042}, |
3277 | { 0x0000a1f8, 0x00f5f9ff }, | 3278 | {0x0000a1f4, 0x00fffeff}, |
3278 | { 0x0000a1fc, 0xb79f6427 }, | 3279 | {0x0000a1f8, 0x00f5f9ff}, |
3279 | { 0x0000a208, 0x803e4788 }, | 3280 | {0x0000a1fc, 0xb79f6427}, |
3280 | { 0x0000a210, 0x4080a333 }, | 3281 | {0x0000a208, 0x803e4788}, |
3281 | { 0x0000a214, 0x40206c10 }, | 3282 | {0x0000a210, 0x4080a333}, |
3282 | { 0x0000a218, 0x009c4060 }, | 3283 | {0x0000a214, 0x40206c10}, |
3283 | { 0x0000a220, 0x01834061 }, | 3284 | {0x0000a218, 0x009c4060}, |
3284 | { 0x0000a224, 0x00000400 }, | 3285 | {0x0000a220, 0x01834061}, |
3285 | { 0x0000a228, 0x000003b5 }, | 3286 | {0x0000a224, 0x00000400}, |
3286 | { 0x0000a22c, 0x233f7180 }, | 3287 | {0x0000a228, 0x000003b5}, |
3287 | { 0x0000a234, 0x20202020 }, | 3288 | {0x0000a22c, 0x233f7180}, |
3288 | { 0x0000a238, 0x20202020 }, | 3289 | {0x0000a234, 0x20202020}, |
3289 | { 0x0000a23c, 0x13c889af }, | 3290 | {0x0000a238, 0x20202020}, |
3290 | { 0x0000a240, 0x38490a20 }, | 3291 | {0x0000a23c, 0x13c889af}, |
3291 | { 0x0000a244, 0x00000000 }, | 3292 | {0x0000a240, 0x38490a20}, |
3292 | { 0x0000a248, 0xfffffffc }, | 3293 | {0x0000a244, 0x00000000}, |
3293 | { 0x0000a24c, 0x00000000 }, | 3294 | {0x0000a248, 0xfffffffc}, |
3294 | { 0x0000a254, 0x00000000 }, | 3295 | {0x0000a24c, 0x00000000}, |
3295 | { 0x0000a258, 0x0cdbd380 }, | 3296 | {0x0000a254, 0x00000000}, |
3296 | { 0x0000a25c, 0x0f0f0f01 }, | 3297 | {0x0000a258, 0x0cdbd380}, |
3297 | { 0x0000a260, 0xdfa91f01 }, | 3298 | {0x0000a25c, 0x0f0f0f01}, |
3298 | { 0x0000a264, 0x00418a11 }, | 3299 | {0x0000a260, 0xdfa91f01}, |
3299 | { 0x0000b264, 0x00418a11 }, | 3300 | {0x0000a264, 0x00418a11}, |
3300 | { 0x0000a268, 0x00000000 }, | 3301 | {0x0000b264, 0x00418a11}, |
3301 | { 0x0000a26c, 0x0e79e5c6 }, | 3302 | {0x0000a268, 0x00000000}, |
3302 | { 0x0000b26c, 0x0e79e5c6 }, | 3303 | {0x0000a26c, 0x0e79e5c6}, |
3303 | { 0x0000d270, 0x00820820 }, | 3304 | {0x0000b26c, 0x0e79e5c6}, |
3304 | { 0x0000a278, 0x1ce739ce }, | 3305 | {0x0000d270, 0x00820820}, |
3305 | { 0x0000a27c, 0x050701ce }, | 3306 | {0x0000a278, 0x1ce739ce}, |
3306 | { 0x0000d35c, 0x07ffffef }, | 3307 | {0x0000a27c, 0x050701ce}, |
3307 | { 0x0000d360, 0x0fffffe7 }, | 3308 | {0x0000d35c, 0x07ffffef}, |
3308 | { 0x0000d364, 0x17ffffe5 }, | 3309 | {0x0000d360, 0x0fffffe7}, |
3309 | { 0x0000d368, 0x1fffffe4 }, | 3310 | {0x0000d364, 0x17ffffe5}, |
3310 | { 0x0000d36c, 0x37ffffe3 }, | 3311 | {0x0000d368, 0x1fffffe4}, |
3311 | { 0x0000d370, 0x3fffffe3 }, | 3312 | {0x0000d36c, 0x37ffffe3}, |
3312 | { 0x0000d374, 0x57ffffe3 }, | 3313 | {0x0000d370, 0x3fffffe3}, |
3313 | { 0x0000d378, 0x5fffffe2 }, | 3314 | {0x0000d374, 0x57ffffe3}, |
3314 | { 0x0000d37c, 0x7fffffe2 }, | 3315 | {0x0000d378, 0x5fffffe2}, |
3315 | { 0x0000d380, 0x7f3c7bba }, | 3316 | {0x0000d37c, 0x7fffffe2}, |
3316 | { 0x0000d384, 0xf3307ff0 }, | 3317 | {0x0000d380, 0x7f3c7bba}, |
3317 | { 0x0000a388, 0x0c000000 }, | 3318 | {0x0000d384, 0xf3307ff0}, |
3318 | { 0x0000a38c, 0x20202020 }, | 3319 | {0x0000a388, 0x0c000000}, |
3319 | { 0x0000a390, 0x20202020 }, | 3320 | {0x0000a38c, 0x20202020}, |
3320 | { 0x0000a394, 0x1ce739ce }, | 3321 | {0x0000a390, 0x20202020}, |
3321 | { 0x0000a398, 0x000001ce }, | 3322 | {0x0000a394, 0x1ce739ce}, |
3322 | { 0x0000b398, 0x000001ce }, | 3323 | {0x0000a398, 0x000001ce}, |
3323 | { 0x0000a39c, 0x00000001 }, | 3324 | {0x0000b398, 0x000001ce}, |
3324 | { 0x0000a3c8, 0x00000246 }, | 3325 | {0x0000a39c, 0x00000001}, |
3325 | { 0x0000a3cc, 0x20202020 }, | 3326 | {0x0000a3c8, 0x00000246}, |
3326 | { 0x0000a3d0, 0x20202020 }, | 3327 | {0x0000a3cc, 0x20202020}, |
3327 | { 0x0000a3d4, 0x20202020 }, | 3328 | {0x0000a3d0, 0x20202020}, |
3328 | { 0x0000a3dc, 0x1ce739ce }, | 3329 | {0x0000a3d4, 0x20202020}, |
3329 | { 0x0000a3e0, 0x000001ce }, | 3330 | {0x0000a3dc, 0x1ce739ce}, |
3330 | { 0x0000a3e4, 0x00000000 }, | 3331 | {0x0000a3e0, 0x000001ce}, |
3331 | { 0x0000a3e8, 0x18c43433 }, | 3332 | {0x0000a3e4, 0x00000000}, |
3332 | { 0x0000a3ec, 0x00f70081 }, | 3333 | {0x0000a3e8, 0x18c43433}, |
3333 | { 0x0000a3f0, 0x01036a1e }, | 3334 | {0x0000a3ec, 0x00f70081}, |
3334 | { 0x0000a3f4, 0x00000000 }, | 3335 | {0x0000a3f0, 0x01036a1e}, |
3335 | { 0x0000b3f4, 0x00000000 }, | 3336 | {0x0000a3f4, 0x00000000}, |
3336 | { 0x0000a7d8, 0x00000001 }, | 3337 | {0x0000b3f4, 0x00000000}, |
3337 | { 0x00007800, 0x00000800 }, | 3338 | {0x0000a7d8, 0x00000001}, |
3338 | { 0x00007804, 0x6c35ffb0 }, | 3339 | {0x00007800, 0x00000800}, |
3339 | { 0x00007808, 0x6db6c000 }, | 3340 | {0x00007804, 0x6c35ffb0}, |
3340 | { 0x0000780c, 0x6db6cb30 }, | 3341 | {0x00007808, 0x6db6c000}, |
3341 | { 0x00007810, 0x6db6cb6c }, | 3342 | {0x0000780c, 0x6db6cb30}, |
3342 | { 0x00007814, 0x0501e200 }, | 3343 | {0x00007810, 0x6db6cb6c}, |
3343 | { 0x00007818, 0x0094128d }, | 3344 | {0x00007814, 0x0501e200}, |
3344 | { 0x0000781c, 0x976ee392 }, | 3345 | {0x00007818, 0x0094128d}, |
3345 | { 0x00007820, 0xf75ff6fc }, | 3346 | {0x0000781c, 0x976ee392}, |
3346 | { 0x00007824, 0x00040000 }, | 3347 | {0x00007820, 0xf75ff6fc}, |
3347 | { 0x00007828, 0xdb003012 }, | 3348 | {0x00007824, 0x00040000}, |
3348 | { 0x0000782c, 0x04924914 }, | 3349 | {0x00007828, 0xdb003012}, |
3349 | { 0x00007830, 0x21084210 }, | 3350 | {0x0000782c, 0x04924914}, |
3350 | { 0x00007834, 0x00140000 }, | 3351 | {0x00007830, 0x21084210}, |
3351 | { 0x00007838, 0x0e4548d8 }, | 3352 | {0x00007834, 0x00140000}, |
3352 | { 0x0000783c, 0x54214514 }, | 3353 | {0x00007838, 0x0e4548d8}, |
3353 | { 0x00007840, 0x02025820 }, | 3354 | {0x0000783c, 0x54214514}, |
3354 | { 0x00007844, 0x71c0d388 }, | 3355 | {0x00007840, 0x02025820}, |
3355 | { 0x00007848, 0x934934a8 }, | 3356 | {0x00007844, 0x71c0d388}, |
3356 | { 0x00007850, 0x00000000 }, | 3357 | {0x00007848, 0x934934a8}, |
3357 | { 0x00007854, 0x00000800 }, | 3358 | {0x00007850, 0x00000000}, |
3358 | { 0x00007858, 0x6c35ffb0 }, | 3359 | {0x00007854, 0x00000800}, |
3359 | { 0x0000785c, 0x6db6c000 }, | 3360 | {0x00007858, 0x6c35ffb0}, |
3360 | { 0x00007860, 0x6db6cb2c }, | 3361 | {0x0000785c, 0x6db6c000}, |
3361 | { 0x00007864, 0x6db6cb6c }, | 3362 | {0x00007860, 0x6db6cb2c}, |
3362 | { 0x00007868, 0x0501e200 }, | 3363 | {0x00007864, 0x6db6cb6c}, |
3363 | { 0x0000786c, 0x0094128d }, | 3364 | {0x00007868, 0x0501e200}, |
3364 | { 0x00007870, 0x976ee392 }, | 3365 | {0x0000786c, 0x0094128d}, |
3365 | { 0x00007874, 0xf75ff6fc }, | 3366 | {0x00007870, 0x976ee392}, |
3366 | { 0x00007878, 0x00040000 }, | 3367 | {0x00007874, 0xf75ff6fc}, |
3367 | { 0x0000787c, 0xdb003012 }, | 3368 | {0x00007878, 0x00040000}, |
3368 | { 0x00007880, 0x04924914 }, | 3369 | {0x0000787c, 0xdb003012}, |
3369 | { 0x00007884, 0x21084210 }, | 3370 | {0x00007880, 0x04924914}, |
3370 | { 0x00007888, 0x001b6db0 }, | 3371 | {0x00007884, 0x21084210}, |
3371 | { 0x0000788c, 0x00376b63 }, | 3372 | {0x00007888, 0x001b6db0}, |
3372 | { 0x00007890, 0x06db6db6 }, | 3373 | {0x0000788c, 0x00376b63}, |
3373 | { 0x00007894, 0x006d8000 }, | 3374 | {0x00007890, 0x06db6db6}, |
3374 | { 0x00007898, 0x48100000 }, | 3375 | {0x00007894, 0x006d8000}, |
3375 | { 0x0000789c, 0x00000000 }, | 3376 | {0x00007898, 0x48100000}, |
3376 | { 0x000078a0, 0x08000000 }, | 3377 | {0x0000789c, 0x00000000}, |
3377 | { 0x000078a4, 0x0007ffd8 }, | 3378 | {0x000078a0, 0x08000000}, |
3378 | { 0x000078a8, 0x0007ffd8 }, | 3379 | {0x000078a4, 0x0007ffd8}, |
3379 | { 0x000078ac, 0x001c0020 }, | 3380 | {0x000078a8, 0x0007ffd8}, |
3380 | { 0x000078b0, 0x000611eb }, | 3381 | {0x000078ac, 0x001c0020}, |
3381 | { 0x000078b4, 0x40008080 }, | 3382 | {0x000078b0, 0x000611eb}, |
3382 | { 0x000078b8, 0x2a850160 }, | 3383 | {0x000078b4, 0x40008080}, |
3384 | {0x000078b8, 0x2a850160}, | ||
3383 | }; | 3385 | }; |
3384 | 3386 | ||
3385 | static const u32 ar9287Modes_tx_gain_9287_1_0[][6] = { | 3387 | static const u32 ar9287Modes_tx_gain_9287_1_0[][6] = { |
3386 | /* Address 5G-HT20 5G-HT40 2G-HT40 2G-HT20 Turbo */ | 3388 | {0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
3387 | { 0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 3389 | {0x0000a304, 0x00000000, 0x00000000, 0x00004002, 0x00004002, 0x00004002}, |
3388 | { 0x0000a304, 0x00000000, 0x00000000, 0x00004002, 0x00004002, 0x00004002 }, | 3390 | {0x0000a308, 0x00000000, 0x00000000, 0x00008004, 0x00008004, 0x00008004}, |
3389 | { 0x0000a308, 0x00000000, 0x00000000, 0x00008004, 0x00008004, 0x00008004 }, | 3391 | {0x0000a30c, 0x00000000, 0x00000000, 0x0000c00a, 0x0000c00a, 0x0000c00a}, |
3390 | { 0x0000a30c, 0x00000000, 0x00000000, 0x0000c00a, 0x0000c00a, 0x0000c00a }, | 3392 | {0x0000a310, 0x00000000, 0x00000000, 0x0001000c, 0x0001000c, 0x0001000c}, |
3391 | { 0x0000a310, 0x00000000, 0x00000000, 0x0001000c, 0x0001000c, 0x0001000c }, | 3393 | {0x0000a314, 0x00000000, 0x00000000, 0x0001420b, 0x0001420b, 0x0001420b}, |
3392 | { 0x0000a314, 0x00000000, 0x00000000, 0x0001420b, 0x0001420b, 0x0001420b }, | 3394 | {0x0000a318, 0x00000000, 0x00000000, 0x0001824a, 0x0001824a, 0x0001824a}, |
3393 | { 0x0000a318, 0x00000000, 0x00000000, 0x0001824a, 0x0001824a, 0x0001824a }, | 3395 | {0x0000a31c, 0x00000000, 0x00000000, 0x0001c44a, 0x0001c44a, 0x0001c44a}, |
3394 | { 0x0000a31c, 0x00000000, 0x00000000, 0x0001c44a, 0x0001c44a, 0x0001c44a }, | 3396 | {0x0000a320, 0x00000000, 0x00000000, 0x0002064a, 0x0002064a, 0x0002064a}, |
3395 | { 0x0000a320, 0x00000000, 0x00000000, 0x0002064a, 0x0002064a, 0x0002064a }, | 3397 | {0x0000a324, 0x00000000, 0x00000000, 0x0002484a, 0x0002484a, 0x0002484a}, |
3396 | { 0x0000a324, 0x00000000, 0x00000000, 0x0002484a, 0x0002484a, 0x0002484a }, | 3398 | {0x0000a328, 0x00000000, 0x00000000, 0x00028a4a, 0x00028a4a, 0x00028a4a}, |
3397 | { 0x0000a328, 0x00000000, 0x00000000, 0x00028a4a, 0x00028a4a, 0x00028a4a }, | 3399 | {0x0000a32c, 0x00000000, 0x00000000, 0x0002cc4a, 0x0002cc4a, 0x0002cc4a}, |
3398 | { 0x0000a32c, 0x00000000, 0x00000000, 0x0002cc4a, 0x0002cc4a, 0x0002cc4a }, | 3400 | {0x0000a330, 0x00000000, 0x00000000, 0x00030e4a, 0x00030e4a, 0x00030e4a}, |
3399 | { 0x0000a330, 0x00000000, 0x00000000, 0x00030e4a, 0x00030e4a, 0x00030e4a }, | 3401 | {0x0000a334, 0x00000000, 0x00000000, 0x00034e8a, 0x00034e8a, 0x00034e8a}, |
3400 | { 0x0000a334, 0x00000000, 0x00000000, 0x00034e8a, 0x00034e8a, 0x00034e8a }, | 3402 | {0x0000a338, 0x00000000, 0x00000000, 0x00038e8c, 0x00038e8c, 0x00038e8c}, |
3401 | { 0x0000a338, 0x00000000, 0x00000000, 0x00038e8c, 0x00038e8c, 0x00038e8c }, | 3403 | {0x0000a33c, 0x00000000, 0x00000000, 0x0003cecc, 0x0003cecc, 0x0003cecc}, |
3402 | { 0x0000a33c, 0x00000000, 0x00000000, 0x0003cecc, 0x0003cecc, 0x0003cecc }, | 3404 | {0x0000a340, 0x00000000, 0x00000000, 0x00040ed4, 0x00040ed4, 0x00040ed4}, |
3403 | { 0x0000a340, 0x00000000, 0x00000000, 0x00040ed4, 0x00040ed4, 0x00040ed4 }, | 3405 | {0x0000a344, 0x00000000, 0x00000000, 0x00044edc, 0x00044edc, 0x00044edc}, |
3404 | { 0x0000a344, 0x00000000, 0x00000000, 0x00044edc, 0x00044edc, 0x00044edc }, | 3406 | {0x0000a348, 0x00000000, 0x00000000, 0x00048ede, 0x00048ede, 0x00048ede}, |
3405 | { 0x0000a348, 0x00000000, 0x00000000, 0x00048ede, 0x00048ede, 0x00048ede }, | 3407 | {0x0000a34c, 0x00000000, 0x00000000, 0x0004cf1e, 0x0004cf1e, 0x0004cf1e}, |
3406 | { 0x0000a34c, 0x00000000, 0x00000000, 0x0004cf1e, 0x0004cf1e, 0x0004cf1e }, | 3408 | {0x0000a350, 0x00000000, 0x00000000, 0x00050f5e, 0x00050f5e, 0x00050f5e}, |
3407 | { 0x0000a350, 0x00000000, 0x00000000, 0x00050f5e, 0x00050f5e, 0x00050f5e }, | 3409 | {0x0000a354, 0x00000000, 0x00000000, 0x00054f9e, 0x00054f9e, 0x00054f9e}, |
3408 | { 0x0000a354, 0x00000000, 0x00000000, 0x00054f9e, 0x00054f9e, 0x00054f9e }, | 3410 | {0x0000a780, 0x00000000, 0x00000000, 0x00000060, 0x00000060, 0x00000060}, |
3409 | { 0x0000a780, 0x00000000, 0x00000000, 0x00000060, 0x00000060, 0x00000060 }, | 3411 | {0x0000a784, 0x00000000, 0x00000000, 0x00004062, 0x00004062, 0x00004062}, |
3410 | { 0x0000a784, 0x00000000, 0x00000000, 0x00004062, 0x00004062, 0x00004062 }, | 3412 | {0x0000a788, 0x00000000, 0x00000000, 0x00008064, 0x00008064, 0x00008064}, |
3411 | { 0x0000a788, 0x00000000, 0x00000000, 0x00008064, 0x00008064, 0x00008064 }, | 3413 | {0x0000a78c, 0x00000000, 0x00000000, 0x0000c0a4, 0x0000c0a4, 0x0000c0a4}, |
3412 | { 0x0000a78c, 0x00000000, 0x00000000, 0x0000c0a4, 0x0000c0a4, 0x0000c0a4 }, | 3414 | {0x0000a790, 0x00000000, 0x00000000, 0x000100b0, 0x000100b0, 0x000100b0}, |
3413 | { 0x0000a790, 0x00000000, 0x00000000, 0x000100b0, 0x000100b0, 0x000100b0 }, | 3415 | {0x0000a794, 0x00000000, 0x00000000, 0x000140b2, 0x000140b2, 0x000140b2}, |
3414 | { 0x0000a794, 0x00000000, 0x00000000, 0x000140b2, 0x000140b2, 0x000140b2 }, | 3416 | {0x0000a798, 0x00000000, 0x00000000, 0x000180b4, 0x000180b4, 0x000180b4}, |
3415 | { 0x0000a798, 0x00000000, 0x00000000, 0x000180b4, 0x000180b4, 0x000180b4 }, | 3417 | {0x0000a79c, 0x00000000, 0x00000000, 0x0001c0f4, 0x0001c0f4, 0x0001c0f4}, |
3416 | { 0x0000a79c, 0x00000000, 0x00000000, 0x0001c0f4, 0x0001c0f4, 0x0001c0f4 }, | 3418 | {0x0000a7a0, 0x00000000, 0x00000000, 0x00020134, 0x00020134, 0x00020134}, |
3417 | { 0x0000a7a0, 0x00000000, 0x00000000, 0x00020134, 0x00020134, 0x00020134 }, | 3419 | {0x0000a7a4, 0x00000000, 0x00000000, 0x000240fe, 0x000240fe, 0x000240fe}, |
3418 | { 0x0000a7a4, 0x00000000, 0x00000000, 0x000240fe, 0x000240fe, 0x000240fe }, | 3420 | {0x0000a7a8, 0x00000000, 0x00000000, 0x0002813e, 0x0002813e, 0x0002813e}, |
3419 | { 0x0000a7a8, 0x00000000, 0x00000000, 0x0002813e, 0x0002813e, 0x0002813e }, | 3421 | {0x0000a7ac, 0x00000000, 0x00000000, 0x0002c17e, 0x0002c17e, 0x0002c17e}, |
3420 | { 0x0000a7ac, 0x00000000, 0x00000000, 0x0002c17e, 0x0002c17e, 0x0002c17e }, | 3422 | {0x0000a7b0, 0x00000000, 0x00000000, 0x000301be, 0x000301be, 0x000301be}, |
3421 | { 0x0000a7b0, 0x00000000, 0x00000000, 0x000301be, 0x000301be, 0x000301be }, | 3423 | {0x0000a7b4, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe}, |
3422 | { 0x0000a7b4, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe }, | 3424 | {0x0000a7b8, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe}, |
3423 | { 0x0000a7b8, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe }, | 3425 | {0x0000a7bc, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe}, |
3424 | { 0x0000a7bc, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe }, | 3426 | {0x0000a7c0, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe}, |
3425 | { 0x0000a7c0, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe }, | 3427 | {0x0000a7c4, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe}, |
3426 | { 0x0000a7c4, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe }, | 3428 | {0x0000a7c8, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe}, |
3427 | { 0x0000a7c8, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe }, | 3429 | {0x0000a7cc, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe}, |
3428 | { 0x0000a7cc, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe }, | 3430 | {0x0000a7d0, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe}, |
3429 | { 0x0000a7d0, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe }, | 3431 | {0x0000a7d4, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe}, |
3430 | { 0x0000a7d4, 0x00000000, 0x00000000, 0x000341fe, 0x000341fe, 0x000341fe }, | 3432 | {0x0000a274, 0x0a180000, 0x0a180000, 0x0a1aa000, 0x0a1aa000, 0x0a1aa000}, |
3431 | { 0x0000a274, 0x0a180000, 0x0a180000, 0x0a1aa000, 0x0a1aa000, 0x0a1aa000 }, | ||
3432 | }; | 3433 | }; |
3433 | 3434 | ||
3434 | |||
3435 | static const u32 ar9287Modes_rx_gain_9287_1_0[][6] = { | 3435 | static const u32 ar9287Modes_rx_gain_9287_1_0[][6] = { |
3436 | /* Address 5G-HT20 5G-HT40 2G-HT40 2G-HT20 Turbo */ | 3436 | {0x00009a00, 0x00000000, 0x00000000, 0x0000a120, 0x0000a120, 0x0000a120}, |
3437 | { 0x00009a00, 0x00000000, 0x00000000, 0x0000a120, 0x0000a120, 0x0000a120 }, | 3437 | {0x00009a04, 0x00000000, 0x00000000, 0x0000a124, 0x0000a124, 0x0000a124}, |
3438 | { 0x00009a04, 0x00000000, 0x00000000, 0x0000a124, 0x0000a124, 0x0000a124 }, | 3438 | {0x00009a08, 0x00000000, 0x00000000, 0x0000a128, 0x0000a128, 0x0000a128}, |
3439 | { 0x00009a08, 0x00000000, 0x00000000, 0x0000a128, 0x0000a128, 0x0000a128 }, | 3439 | {0x00009a0c, 0x00000000, 0x00000000, 0x0000a12c, 0x0000a12c, 0x0000a12c}, |
3440 | { 0x00009a0c, 0x00000000, 0x00000000, 0x0000a12c, 0x0000a12c, 0x0000a12c }, | 3440 | {0x00009a10, 0x00000000, 0x00000000, 0x0000a130, 0x0000a130, 0x0000a130}, |
3441 | { 0x00009a10, 0x00000000, 0x00000000, 0x0000a130, 0x0000a130, 0x0000a130 }, | 3441 | {0x00009a14, 0x00000000, 0x00000000, 0x0000a194, 0x0000a194, 0x0000a194}, |
3442 | { 0x00009a14, 0x00000000, 0x00000000, 0x0000a194, 0x0000a194, 0x0000a194 }, | 3442 | {0x00009a18, 0x00000000, 0x00000000, 0x0000a198, 0x0000a198, 0x0000a198}, |
3443 | { 0x00009a18, 0x00000000, 0x00000000, 0x0000a198, 0x0000a198, 0x0000a198 }, | 3443 | {0x00009a1c, 0x00000000, 0x00000000, 0x0000a20c, 0x0000a20c, 0x0000a20c}, |
3444 | { 0x00009a1c, 0x00000000, 0x00000000, 0x0000a20c, 0x0000a20c, 0x0000a20c }, | 3444 | {0x00009a20, 0x00000000, 0x00000000, 0x0000a210, 0x0000a210, 0x0000a210}, |
3445 | { 0x00009a20, 0x00000000, 0x00000000, 0x0000a210, 0x0000a210, 0x0000a210 }, | 3445 | {0x00009a24, 0x00000000, 0x00000000, 0x0000a284, 0x0000a284, 0x0000a284}, |
3446 | { 0x00009a24, 0x00000000, 0x00000000, 0x0000a284, 0x0000a284, 0x0000a284 }, | 3446 | {0x00009a28, 0x00000000, 0x00000000, 0x0000a288, 0x0000a288, 0x0000a288}, |
3447 | { 0x00009a28, 0x00000000, 0x00000000, 0x0000a288, 0x0000a288, 0x0000a288 }, | 3447 | {0x00009a2c, 0x00000000, 0x00000000, 0x0000a28c, 0x0000a28c, 0x0000a28c}, |
3448 | { 0x00009a2c, 0x00000000, 0x00000000, 0x0000a28c, 0x0000a28c, 0x0000a28c }, | 3448 | {0x00009a30, 0x00000000, 0x00000000, 0x0000a290, 0x0000a290, 0x0000a290}, |
3449 | { 0x00009a30, 0x00000000, 0x00000000, 0x0000a290, 0x0000a290, 0x0000a290 }, | 3449 | {0x00009a34, 0x00000000, 0x00000000, 0x0000a294, 0x0000a294, 0x0000a294}, |
3450 | { 0x00009a34, 0x00000000, 0x00000000, 0x0000a294, 0x0000a294, 0x0000a294 }, | 3450 | {0x00009a38, 0x00000000, 0x00000000, 0x0000a2a0, 0x0000a2a0, 0x0000a2a0}, |
3451 | { 0x00009a38, 0x00000000, 0x00000000, 0x0000a2a0, 0x0000a2a0, 0x0000a2a0 }, | 3451 | {0x00009a3c, 0x00000000, 0x00000000, 0x0000a2a4, 0x0000a2a4, 0x0000a2a4}, |
3452 | { 0x00009a3c, 0x00000000, 0x00000000, 0x0000a2a4, 0x0000a2a4, 0x0000a2a4 }, | 3452 | {0x00009a40, 0x00000000, 0x00000000, 0x0000a2a8, 0x0000a2a8, 0x0000a2a8}, |
3453 | { 0x00009a40, 0x00000000, 0x00000000, 0x0000a2a8, 0x0000a2a8, 0x0000a2a8 }, | 3453 | {0x00009a44, 0x00000000, 0x00000000, 0x0000a2ac, 0x0000a2ac, 0x0000a2ac}, |
3454 | { 0x00009a44, 0x00000000, 0x00000000, 0x0000a2ac, 0x0000a2ac, 0x0000a2ac }, | 3454 | {0x00009a48, 0x00000000, 0x00000000, 0x0000a2b0, 0x0000a2b0, 0x0000a2b0}, |
3455 | { 0x00009a48, 0x00000000, 0x00000000, 0x0000a2b0, 0x0000a2b0, 0x0000a2b0 }, | 3455 | {0x00009a4c, 0x00000000, 0x00000000, 0x0000a2b4, 0x0000a2b4, 0x0000a2b4}, |
3456 | { 0x00009a4c, 0x00000000, 0x00000000, 0x0000a2b4, 0x0000a2b4, 0x0000a2b4 }, | 3456 | {0x00009a50, 0x00000000, 0x00000000, 0x0000a2b8, 0x0000a2b8, 0x0000a2b8}, |
3457 | { 0x00009a50, 0x00000000, 0x00000000, 0x0000a2b8, 0x0000a2b8, 0x0000a2b8 }, | 3457 | {0x00009a54, 0x00000000, 0x00000000, 0x0000a2c4, 0x0000a2c4, 0x0000a2c4}, |
3458 | { 0x00009a54, 0x00000000, 0x00000000, 0x0000a2c4, 0x0000a2c4, 0x0000a2c4 }, | 3458 | {0x00009a58, 0x00000000, 0x00000000, 0x0000a708, 0x0000a708, 0x0000a708}, |
3459 | { 0x00009a58, 0x00000000, 0x00000000, 0x0000a708, 0x0000a708, 0x0000a708 }, | 3459 | {0x00009a5c, 0x00000000, 0x00000000, 0x0000a70c, 0x0000a70c, 0x0000a70c}, |
3460 | { 0x00009a5c, 0x00000000, 0x00000000, 0x0000a70c, 0x0000a70c, 0x0000a70c }, | 3460 | {0x00009a60, 0x00000000, 0x00000000, 0x0000a710, 0x0000a710, 0x0000a710}, |
3461 | { 0x00009a60, 0x00000000, 0x00000000, 0x0000a710, 0x0000a710, 0x0000a710 }, | 3461 | {0x00009a64, 0x00000000, 0x00000000, 0x0000ab04, 0x0000ab04, 0x0000ab04}, |
3462 | { 0x00009a64, 0x00000000, 0x00000000, 0x0000ab04, 0x0000ab04, 0x0000ab04 }, | 3462 | {0x00009a68, 0x00000000, 0x00000000, 0x0000ab08, 0x0000ab08, 0x0000ab08}, |
3463 | { 0x00009a68, 0x00000000, 0x00000000, 0x0000ab08, 0x0000ab08, 0x0000ab08 }, | 3463 | {0x00009a6c, 0x00000000, 0x00000000, 0x0000ab0c, 0x0000ab0c, 0x0000ab0c}, |
3464 | { 0x00009a6c, 0x00000000, 0x00000000, 0x0000ab0c, 0x0000ab0c, 0x0000ab0c }, | 3464 | {0x00009a70, 0x00000000, 0x00000000, 0x0000ab10, 0x0000ab10, 0x0000ab10}, |
3465 | { 0x00009a70, 0x00000000, 0x00000000, 0x0000ab10, 0x0000ab10, 0x0000ab10 }, | 3465 | {0x00009a74, 0x00000000, 0x00000000, 0x0000ab14, 0x0000ab14, 0x0000ab14}, |
3466 | { 0x00009a74, 0x00000000, 0x00000000, 0x0000ab14, 0x0000ab14, 0x0000ab14 }, | 3466 | {0x00009a78, 0x00000000, 0x00000000, 0x0000ab18, 0x0000ab18, 0x0000ab18}, |
3467 | { 0x00009a78, 0x00000000, 0x00000000, 0x0000ab18, 0x0000ab18, 0x0000ab18 }, | 3467 | {0x00009a7c, 0x00000000, 0x00000000, 0x0000ab8c, 0x0000ab8c, 0x0000ab8c}, |
3468 | { 0x00009a7c, 0x00000000, 0x00000000, 0x0000ab8c, 0x0000ab8c, 0x0000ab8c }, | 3468 | {0x00009a80, 0x00000000, 0x00000000, 0x0000ab90, 0x0000ab90, 0x0000ab90}, |
3469 | { 0x00009a80, 0x00000000, 0x00000000, 0x0000ab90, 0x0000ab90, 0x0000ab90 }, | 3469 | {0x00009a84, 0x00000000, 0x00000000, 0x0000ab94, 0x0000ab94, 0x0000ab94}, |
3470 | { 0x00009a84, 0x00000000, 0x00000000, 0x0000ab94, 0x0000ab94, 0x0000ab94 }, | 3470 | {0x00009a88, 0x00000000, 0x00000000, 0x0000ab98, 0x0000ab98, 0x0000ab98}, |
3471 | { 0x00009a88, 0x00000000, 0x00000000, 0x0000ab98, 0x0000ab98, 0x0000ab98 }, | 3471 | {0x00009a8c, 0x00000000, 0x00000000, 0x0000aba4, 0x0000aba4, 0x0000aba4}, |
3472 | { 0x00009a8c, 0x00000000, 0x00000000, 0x0000aba4, 0x0000aba4, 0x0000aba4 }, | 3472 | {0x00009a90, 0x00000000, 0x00000000, 0x0000aba8, 0x0000aba8, 0x0000aba8}, |
3473 | { 0x00009a90, 0x00000000, 0x00000000, 0x0000aba8, 0x0000aba8, 0x0000aba8 }, | 3473 | {0x00009a94, 0x00000000, 0x00000000, 0x0000cb04, 0x0000cb04, 0x0000cb04}, |
3474 | { 0x00009a94, 0x00000000, 0x00000000, 0x0000cb04, 0x0000cb04, 0x0000cb04 }, | 3474 | {0x00009a98, 0x00000000, 0x00000000, 0x0000cb08, 0x0000cb08, 0x0000cb08}, |
3475 | { 0x00009a98, 0x00000000, 0x00000000, 0x0000cb08, 0x0000cb08, 0x0000cb08 }, | 3475 | {0x00009a9c, 0x00000000, 0x00000000, 0x0000cb0c, 0x0000cb0c, 0x0000cb0c}, |
3476 | { 0x00009a9c, 0x00000000, 0x00000000, 0x0000cb0c, 0x0000cb0c, 0x0000cb0c }, | 3476 | {0x00009aa0, 0x00000000, 0x00000000, 0x0000cb10, 0x0000cb10, 0x0000cb10}, |
3477 | { 0x00009aa0, 0x00000000, 0x00000000, 0x0000cb10, 0x0000cb10, 0x0000cb10 }, | 3477 | {0x00009aa4, 0x00000000, 0x00000000, 0x0000cb14, 0x0000cb14, 0x0000cb14}, |
3478 | { 0x00009aa4, 0x00000000, 0x00000000, 0x0000cb14, 0x0000cb14, 0x0000cb14 }, | 3478 | {0x00009aa8, 0x00000000, 0x00000000, 0x0000cb18, 0x0000cb18, 0x0000cb18}, |
3479 | { 0x00009aa8, 0x00000000, 0x00000000, 0x0000cb18, 0x0000cb18, 0x0000cb18 }, | 3479 | {0x00009aac, 0x00000000, 0x00000000, 0x0000cb8c, 0x0000cb8c, 0x0000cb8c}, |
3480 | { 0x00009aac, 0x00000000, 0x00000000, 0x0000cb8c, 0x0000cb8c, 0x0000cb8c }, | 3480 | {0x00009ab0, 0x00000000, 0x00000000, 0x0000cb90, 0x0000cb90, 0x0000cb90}, |
3481 | { 0x00009ab0, 0x00000000, 0x00000000, 0x0000cb90, 0x0000cb90, 0x0000cb90 }, | 3481 | {0x00009ab4, 0x00000000, 0x00000000, 0x0000cf18, 0x0000cf18, 0x0000cf18}, |
3482 | { 0x00009ab4, 0x00000000, 0x00000000, 0x0000cf18, 0x0000cf18, 0x0000cf18 }, | 3482 | {0x00009ab8, 0x00000000, 0x00000000, 0x0000cf24, 0x0000cf24, 0x0000cf24}, |
3483 | { 0x00009ab8, 0x00000000, 0x00000000, 0x0000cf24, 0x0000cf24, 0x0000cf24 }, | 3483 | {0x00009abc, 0x00000000, 0x00000000, 0x0000cf28, 0x0000cf28, 0x0000cf28}, |
3484 | { 0x00009abc, 0x00000000, 0x00000000, 0x0000cf28, 0x0000cf28, 0x0000cf28 }, | 3484 | {0x00009ac0, 0x00000000, 0x00000000, 0x0000d314, 0x0000d314, 0x0000d314}, |
3485 | { 0x00009ac0, 0x00000000, 0x00000000, 0x0000d314, 0x0000d314, 0x0000d314 }, | 3485 | {0x00009ac4, 0x00000000, 0x00000000, 0x0000d318, 0x0000d318, 0x0000d318}, |
3486 | { 0x00009ac4, 0x00000000, 0x00000000, 0x0000d318, 0x0000d318, 0x0000d318 }, | 3486 | {0x00009ac8, 0x00000000, 0x00000000, 0x0000d38c, 0x0000d38c, 0x0000d38c}, |
3487 | { 0x00009ac8, 0x00000000, 0x00000000, 0x0000d38c, 0x0000d38c, 0x0000d38c }, | 3487 | {0x00009acc, 0x00000000, 0x00000000, 0x0000d390, 0x0000d390, 0x0000d390}, |
3488 | { 0x00009acc, 0x00000000, 0x00000000, 0x0000d390, 0x0000d390, 0x0000d390 }, | 3488 | {0x00009ad0, 0x00000000, 0x00000000, 0x0000d394, 0x0000d394, 0x0000d394}, |
3489 | { 0x00009ad0, 0x00000000, 0x00000000, 0x0000d394, 0x0000d394, 0x0000d394 }, | 3489 | {0x00009ad4, 0x00000000, 0x00000000, 0x0000d398, 0x0000d398, 0x0000d398}, |
3490 | { 0x00009ad4, 0x00000000, 0x00000000, 0x0000d398, 0x0000d398, 0x0000d398 }, | 3490 | {0x00009ad8, 0x00000000, 0x00000000, 0x0000d3a4, 0x0000d3a4, 0x0000d3a4}, |
3491 | { 0x00009ad8, 0x00000000, 0x00000000, 0x0000d3a4, 0x0000d3a4, 0x0000d3a4 }, | 3491 | {0x00009adc, 0x00000000, 0x00000000, 0x0000d3a8, 0x0000d3a8, 0x0000d3a8}, |
3492 | { 0x00009adc, 0x00000000, 0x00000000, 0x0000d3a8, 0x0000d3a8, 0x0000d3a8 }, | 3492 | {0x00009ae0, 0x00000000, 0x00000000, 0x0000d3ac, 0x0000d3ac, 0x0000d3ac}, |
3493 | { 0x00009ae0, 0x00000000, 0x00000000, 0x0000d3ac, 0x0000d3ac, 0x0000d3ac }, | 3493 | {0x00009ae4, 0x00000000, 0x00000000, 0x0000d3b0, 0x0000d3b0, 0x0000d3b0}, |
3494 | { 0x00009ae4, 0x00000000, 0x00000000, 0x0000d3b0, 0x0000d3b0, 0x0000d3b0 }, | 3494 | {0x00009ae8, 0x00000000, 0x00000000, 0x0000f380, 0x0000f380, 0x0000f380}, |
3495 | { 0x00009ae8, 0x00000000, 0x00000000, 0x0000f380, 0x0000f380, 0x0000f380 }, | 3495 | {0x00009aec, 0x00000000, 0x00000000, 0x0000f384, 0x0000f384, 0x0000f384}, |
3496 | { 0x00009aec, 0x00000000, 0x00000000, 0x0000f384, 0x0000f384, 0x0000f384 }, | 3496 | {0x00009af0, 0x00000000, 0x00000000, 0x0000f388, 0x0000f388, 0x0000f388}, |
3497 | { 0x00009af0, 0x00000000, 0x00000000, 0x0000f388, 0x0000f388, 0x0000f388 }, | 3497 | {0x00009af4, 0x00000000, 0x00000000, 0x0000f710, 0x0000f710, 0x0000f710}, |
3498 | { 0x00009af4, 0x00000000, 0x00000000, 0x0000f710, 0x0000f710, 0x0000f710 }, | 3498 | {0x00009af8, 0x00000000, 0x00000000, 0x0000f714, 0x0000f714, 0x0000f714}, |
3499 | { 0x00009af8, 0x00000000, 0x00000000, 0x0000f714, 0x0000f714, 0x0000f714 }, | 3499 | {0x00009afc, 0x00000000, 0x00000000, 0x0000f718, 0x0000f718, 0x0000f718}, |
3500 | { 0x00009afc, 0x00000000, 0x00000000, 0x0000f718, 0x0000f718, 0x0000f718 }, | 3500 | {0x00009b00, 0x00000000, 0x00000000, 0x0000fb10, 0x0000fb10, 0x0000fb10}, |
3501 | { 0x00009b00, 0x00000000, 0x00000000, 0x0000fb10, 0x0000fb10, 0x0000fb10 }, | 3501 | {0x00009b04, 0x00000000, 0x00000000, 0x0000fb14, 0x0000fb14, 0x0000fb14}, |
3502 | { 0x00009b04, 0x00000000, 0x00000000, 0x0000fb14, 0x0000fb14, 0x0000fb14 }, | 3502 | {0x00009b08, 0x00000000, 0x00000000, 0x0000fb18, 0x0000fb18, 0x0000fb18}, |
3503 | { 0x00009b08, 0x00000000, 0x00000000, 0x0000fb18, 0x0000fb18, 0x0000fb18 }, | 3503 | {0x00009b0c, 0x00000000, 0x00000000, 0x0000fb8c, 0x0000fb8c, 0x0000fb8c}, |
3504 | { 0x00009b0c, 0x00000000, 0x00000000, 0x0000fb8c, 0x0000fb8c, 0x0000fb8c }, | 3504 | {0x00009b10, 0x00000000, 0x00000000, 0x0000fb90, 0x0000fb90, 0x0000fb90}, |
3505 | { 0x00009b10, 0x00000000, 0x00000000, 0x0000fb90, 0x0000fb90, 0x0000fb90 }, | 3505 | {0x00009b14, 0x00000000, 0x00000000, 0x0000fb94, 0x0000fb94, 0x0000fb94}, |
3506 | { 0x00009b14, 0x00000000, 0x00000000, 0x0000fb94, 0x0000fb94, 0x0000fb94 }, | 3506 | {0x00009b18, 0x00000000, 0x00000000, 0x0000ff8c, 0x0000ff8c, 0x0000ff8c}, |
3507 | { 0x00009b18, 0x00000000, 0x00000000, 0x0000ff8c, 0x0000ff8c, 0x0000ff8c }, | 3507 | {0x00009b1c, 0x00000000, 0x00000000, 0x0000ff90, 0x0000ff90, 0x0000ff90}, |
3508 | { 0x00009b1c, 0x00000000, 0x00000000, 0x0000ff90, 0x0000ff90, 0x0000ff90 }, | 3508 | {0x00009b20, 0x00000000, 0x00000000, 0x0000ff94, 0x0000ff94, 0x0000ff94}, |
3509 | { 0x00009b20, 0x00000000, 0x00000000, 0x0000ff94, 0x0000ff94, 0x0000ff94 }, | 3509 | {0x00009b24, 0x00000000, 0x00000000, 0x0000ffa0, 0x0000ffa0, 0x0000ffa0}, |
3510 | { 0x00009b24, 0x00000000, 0x00000000, 0x0000ffa0, 0x0000ffa0, 0x0000ffa0 }, | 3510 | {0x00009b28, 0x00000000, 0x00000000, 0x0000ffa4, 0x0000ffa4, 0x0000ffa4}, |
3511 | { 0x00009b28, 0x00000000, 0x00000000, 0x0000ffa4, 0x0000ffa4, 0x0000ffa4 }, | 3511 | {0x00009b2c, 0x00000000, 0x00000000, 0x0000ffa8, 0x0000ffa8, 0x0000ffa8}, |
3512 | { 0x00009b2c, 0x00000000, 0x00000000, 0x0000ffa8, 0x0000ffa8, 0x0000ffa8 }, | 3512 | {0x00009b30, 0x00000000, 0x00000000, 0x0000ffac, 0x0000ffac, 0x0000ffac}, |
3513 | { 0x00009b30, 0x00000000, 0x00000000, 0x0000ffac, 0x0000ffac, 0x0000ffac }, | 3513 | {0x00009b34, 0x00000000, 0x00000000, 0x0000ffb0, 0x0000ffb0, 0x0000ffb0}, |
3514 | { 0x00009b34, 0x00000000, 0x00000000, 0x0000ffb0, 0x0000ffb0, 0x0000ffb0 }, | 3514 | {0x00009b38, 0x00000000, 0x00000000, 0x0000ffb4, 0x0000ffb4, 0x0000ffb4}, |
3515 | { 0x00009b38, 0x00000000, 0x00000000, 0x0000ffb4, 0x0000ffb4, 0x0000ffb4 }, | 3515 | {0x00009b3c, 0x00000000, 0x00000000, 0x0000ffa1, 0x0000ffa1, 0x0000ffa1}, |
3516 | { 0x00009b3c, 0x00000000, 0x00000000, 0x0000ffa1, 0x0000ffa1, 0x0000ffa1 }, | 3516 | {0x00009b40, 0x00000000, 0x00000000, 0x0000ffa5, 0x0000ffa5, 0x0000ffa5}, |
3517 | { 0x00009b40, 0x00000000, 0x00000000, 0x0000ffa5, 0x0000ffa5, 0x0000ffa5 }, | 3517 | {0x00009b44, 0x00000000, 0x00000000, 0x0000ffa9, 0x0000ffa9, 0x0000ffa9}, |
3518 | { 0x00009b44, 0x00000000, 0x00000000, 0x0000ffa9, 0x0000ffa9, 0x0000ffa9 }, | 3518 | {0x00009b48, 0x00000000, 0x00000000, 0x0000ffad, 0x0000ffad, 0x0000ffad}, |
3519 | { 0x00009b48, 0x00000000, 0x00000000, 0x0000ffad, 0x0000ffad, 0x0000ffad }, | 3519 | {0x00009b4c, 0x00000000, 0x00000000, 0x0000ffb1, 0x0000ffb1, 0x0000ffb1}, |
3520 | { 0x00009b4c, 0x00000000, 0x00000000, 0x0000ffb1, 0x0000ffb1, 0x0000ffb1 }, | 3520 | {0x00009b50, 0x00000000, 0x00000000, 0x0000ffb5, 0x0000ffb5, 0x0000ffb5}, |
3521 | { 0x00009b50, 0x00000000, 0x00000000, 0x0000ffb5, 0x0000ffb5, 0x0000ffb5 }, | 3521 | {0x00009b54, 0x00000000, 0x00000000, 0x0000ffb9, 0x0000ffb9, 0x0000ffb9}, |
3522 | { 0x00009b54, 0x00000000, 0x00000000, 0x0000ffb9, 0x0000ffb9, 0x0000ffb9 }, | 3522 | {0x00009b58, 0x00000000, 0x00000000, 0x0000ffc5, 0x0000ffc5, 0x0000ffc5}, |
3523 | { 0x00009b58, 0x00000000, 0x00000000, 0x0000ffc5, 0x0000ffc5, 0x0000ffc5 }, | 3523 | {0x00009b5c, 0x00000000, 0x00000000, 0x0000ffc9, 0x0000ffc9, 0x0000ffc9}, |
3524 | { 0x00009b5c, 0x00000000, 0x00000000, 0x0000ffc9, 0x0000ffc9, 0x0000ffc9 }, | 3524 | {0x00009b60, 0x00000000, 0x00000000, 0x0000ffcd, 0x0000ffcd, 0x0000ffcd}, |
3525 | { 0x00009b60, 0x00000000, 0x00000000, 0x0000ffcd, 0x0000ffcd, 0x0000ffcd }, | 3525 | {0x00009b64, 0x00000000, 0x00000000, 0x0000ffd1, 0x0000ffd1, 0x0000ffd1}, |
3526 | { 0x00009b64, 0x00000000, 0x00000000, 0x0000ffd1, 0x0000ffd1, 0x0000ffd1 }, | 3526 | {0x00009b68, 0x00000000, 0x00000000, 0x0000ffd5, 0x0000ffd5, 0x0000ffd5}, |
3527 | { 0x00009b68, 0x00000000, 0x00000000, 0x0000ffd5, 0x0000ffd5, 0x0000ffd5 }, | 3527 | {0x00009b6c, 0x00000000, 0x00000000, 0x0000ffc2, 0x0000ffc2, 0x0000ffc2}, |
3528 | { 0x00009b6c, 0x00000000, 0x00000000, 0x0000ffc2, 0x0000ffc2, 0x0000ffc2 }, | 3528 | {0x00009b70, 0x00000000, 0x00000000, 0x0000ffc6, 0x0000ffc6, 0x0000ffc6}, |
3529 | { 0x00009b70, 0x00000000, 0x00000000, 0x0000ffc6, 0x0000ffc6, 0x0000ffc6 }, | 3529 | {0x00009b74, 0x00000000, 0x00000000, 0x0000ffca, 0x0000ffca, 0x0000ffca}, |
3530 | { 0x00009b74, 0x00000000, 0x00000000, 0x0000ffca, 0x0000ffca, 0x0000ffca }, | 3530 | {0x00009b78, 0x00000000, 0x00000000, 0x0000ffce, 0x0000ffce, 0x0000ffce}, |
3531 | { 0x00009b78, 0x00000000, 0x00000000, 0x0000ffce, 0x0000ffce, 0x0000ffce }, | 3531 | {0x00009b7c, 0x00000000, 0x00000000, 0x0000ffd2, 0x0000ffd2, 0x0000ffd2}, |
3532 | { 0x00009b7c, 0x00000000, 0x00000000, 0x0000ffd2, 0x0000ffd2, 0x0000ffd2 }, | 3532 | {0x00009b80, 0x00000000, 0x00000000, 0x0000ffd6, 0x0000ffd6, 0x0000ffd6}, |
3533 | { 0x00009b80, 0x00000000, 0x00000000, 0x0000ffd6, 0x0000ffd6, 0x0000ffd6 }, | 3533 | {0x00009b84, 0x00000000, 0x00000000, 0x0000ffda, 0x0000ffda, 0x0000ffda}, |
3534 | { 0x00009b84, 0x00000000, 0x00000000, 0x0000ffda, 0x0000ffda, 0x0000ffda }, | 3534 | {0x00009b88, 0x00000000, 0x00000000, 0x0000ffc7, 0x0000ffc7, 0x0000ffc7}, |
3535 | { 0x00009b88, 0x00000000, 0x00000000, 0x0000ffc7, 0x0000ffc7, 0x0000ffc7 }, | 3535 | {0x00009b8c, 0x00000000, 0x00000000, 0x0000ffcb, 0x0000ffcb, 0x0000ffcb}, |
3536 | { 0x00009b8c, 0x00000000, 0x00000000, 0x0000ffcb, 0x0000ffcb, 0x0000ffcb }, | 3536 | {0x00009b90, 0x00000000, 0x00000000, 0x0000ffcf, 0x0000ffcf, 0x0000ffcf}, |
3537 | { 0x00009b90, 0x00000000, 0x00000000, 0x0000ffcf, 0x0000ffcf, 0x0000ffcf }, | 3537 | {0x00009b94, 0x00000000, 0x00000000, 0x0000ffd3, 0x0000ffd3, 0x0000ffd3}, |
3538 | { 0x00009b94, 0x00000000, 0x00000000, 0x0000ffd3, 0x0000ffd3, 0x0000ffd3 }, | 3538 | {0x00009b98, 0x00000000, 0x00000000, 0x0000ffd7, 0x0000ffd7, 0x0000ffd7}, |
3539 | { 0x00009b98, 0x00000000, 0x00000000, 0x0000ffd7, 0x0000ffd7, 0x0000ffd7 }, | 3539 | {0x00009b9c, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3540 | { 0x00009b9c, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3540 | {0x00009ba0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3541 | { 0x00009ba0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3541 | {0x00009ba4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3542 | { 0x00009ba4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3542 | {0x00009ba8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3543 | { 0x00009ba8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3543 | {0x00009bac, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3544 | { 0x00009bac, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3544 | {0x00009bb0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3545 | { 0x00009bb0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3545 | {0x00009bb4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3546 | { 0x00009bb4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3546 | {0x00009bb8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3547 | { 0x00009bb8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3547 | {0x00009bbc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3548 | { 0x00009bbc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3548 | {0x00009bc0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3549 | { 0x00009bc0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3549 | {0x00009bc4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3550 | { 0x00009bc4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3550 | {0x00009bc8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3551 | { 0x00009bc8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3551 | {0x00009bcc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3552 | { 0x00009bcc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3552 | {0x00009bd0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3553 | { 0x00009bd0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3553 | {0x00009bd4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3554 | { 0x00009bd4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3554 | {0x00009bd8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3555 | { 0x00009bd8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3555 | {0x00009bdc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3556 | { 0x00009bdc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3556 | {0x00009be0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3557 | { 0x00009be0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3557 | {0x00009be4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3558 | { 0x00009be4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3558 | {0x00009be8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3559 | { 0x00009be8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3559 | {0x00009bec, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3560 | { 0x00009bec, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3560 | {0x00009bf0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3561 | { 0x00009bf0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3561 | {0x00009bf4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3562 | { 0x00009bf4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3562 | {0x00009bf8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3563 | { 0x00009bf8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3563 | {0x00009bfc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3564 | { 0x00009bfc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3564 | {0x0000aa00, 0x00000000, 0x00000000, 0x0000a120, 0x0000a120, 0x0000a120}, |
3565 | { 0x0000aa00, 0x00000000, 0x00000000, 0x0000a120, 0x0000a120, 0x0000a120 }, | 3565 | {0x0000aa04, 0x00000000, 0x00000000, 0x0000a124, 0x0000a124, 0x0000a124}, |
3566 | { 0x0000aa04, 0x00000000, 0x00000000, 0x0000a124, 0x0000a124, 0x0000a124 }, | 3566 | {0x0000aa08, 0x00000000, 0x00000000, 0x0000a128, 0x0000a128, 0x0000a128}, |
3567 | { 0x0000aa08, 0x00000000, 0x00000000, 0x0000a128, 0x0000a128, 0x0000a128 }, | 3567 | {0x0000aa0c, 0x00000000, 0x00000000, 0x0000a12c, 0x0000a12c, 0x0000a12c}, |
3568 | { 0x0000aa0c, 0x00000000, 0x00000000, 0x0000a12c, 0x0000a12c, 0x0000a12c }, | 3568 | {0x0000aa10, 0x00000000, 0x00000000, 0x0000a130, 0x0000a130, 0x0000a130}, |
3569 | { 0x0000aa10, 0x00000000, 0x00000000, 0x0000a130, 0x0000a130, 0x0000a130 }, | 3569 | {0x0000aa14, 0x00000000, 0x00000000, 0x0000a194, 0x0000a194, 0x0000a194}, |
3570 | { 0x0000aa14, 0x00000000, 0x00000000, 0x0000a194, 0x0000a194, 0x0000a194 }, | 3570 | {0x0000aa18, 0x00000000, 0x00000000, 0x0000a198, 0x0000a198, 0x0000a198}, |
3571 | { 0x0000aa18, 0x00000000, 0x00000000, 0x0000a198, 0x0000a198, 0x0000a198 }, | 3571 | {0x0000aa1c, 0x00000000, 0x00000000, 0x0000a20c, 0x0000a20c, 0x0000a20c}, |
3572 | { 0x0000aa1c, 0x00000000, 0x00000000, 0x0000a20c, 0x0000a20c, 0x0000a20c }, | 3572 | {0x0000aa20, 0x00000000, 0x00000000, 0x0000a210, 0x0000a210, 0x0000a210}, |
3573 | { 0x0000aa20, 0x00000000, 0x00000000, 0x0000a210, 0x0000a210, 0x0000a210 }, | 3573 | {0x0000aa24, 0x00000000, 0x00000000, 0x0000a284, 0x0000a284, 0x0000a284}, |
3574 | { 0x0000aa24, 0x00000000, 0x00000000, 0x0000a284, 0x0000a284, 0x0000a284 }, | 3574 | {0x0000aa28, 0x00000000, 0x00000000, 0x0000a288, 0x0000a288, 0x0000a288}, |
3575 | { 0x0000aa28, 0x00000000, 0x00000000, 0x0000a288, 0x0000a288, 0x0000a288 }, | 3575 | {0x0000aa2c, 0x00000000, 0x00000000, 0x0000a28c, 0x0000a28c, 0x0000a28c}, |
3576 | { 0x0000aa2c, 0x00000000, 0x00000000, 0x0000a28c, 0x0000a28c, 0x0000a28c }, | 3576 | {0x0000aa30, 0x00000000, 0x00000000, 0x0000a290, 0x0000a290, 0x0000a290}, |
3577 | { 0x0000aa30, 0x00000000, 0x00000000, 0x0000a290, 0x0000a290, 0x0000a290 }, | 3577 | {0x0000aa34, 0x00000000, 0x00000000, 0x0000a294, 0x0000a294, 0x0000a294}, |
3578 | { 0x0000aa34, 0x00000000, 0x00000000, 0x0000a294, 0x0000a294, 0x0000a294 }, | 3578 | {0x0000aa38, 0x00000000, 0x00000000, 0x0000a2a0, 0x0000a2a0, 0x0000a2a0}, |
3579 | { 0x0000aa38, 0x00000000, 0x00000000, 0x0000a2a0, 0x0000a2a0, 0x0000a2a0 }, | 3579 | {0x0000aa3c, 0x00000000, 0x00000000, 0x0000a2a4, 0x0000a2a4, 0x0000a2a4}, |
3580 | { 0x0000aa3c, 0x00000000, 0x00000000, 0x0000a2a4, 0x0000a2a4, 0x0000a2a4 }, | 3580 | {0x0000aa40, 0x00000000, 0x00000000, 0x0000a2a8, 0x0000a2a8, 0x0000a2a8}, |
3581 | { 0x0000aa40, 0x00000000, 0x00000000, 0x0000a2a8, 0x0000a2a8, 0x0000a2a8 }, | 3581 | {0x0000aa44, 0x00000000, 0x00000000, 0x0000a2ac, 0x0000a2ac, 0x0000a2ac}, |
3582 | { 0x0000aa44, 0x00000000, 0x00000000, 0x0000a2ac, 0x0000a2ac, 0x0000a2ac }, | 3582 | {0x0000aa48, 0x00000000, 0x00000000, 0x0000a2b0, 0x0000a2b0, 0x0000a2b0}, |
3583 | { 0x0000aa48, 0x00000000, 0x00000000, 0x0000a2b0, 0x0000a2b0, 0x0000a2b0 }, | 3583 | {0x0000aa4c, 0x00000000, 0x00000000, 0x0000a2b4, 0x0000a2b4, 0x0000a2b4}, |
3584 | { 0x0000aa4c, 0x00000000, 0x00000000, 0x0000a2b4, 0x0000a2b4, 0x0000a2b4 }, | 3584 | {0x0000aa50, 0x00000000, 0x00000000, 0x0000a2b8, 0x0000a2b8, 0x0000a2b8}, |
3585 | { 0x0000aa50, 0x00000000, 0x00000000, 0x0000a2b8, 0x0000a2b8, 0x0000a2b8 }, | 3585 | {0x0000aa54, 0x00000000, 0x00000000, 0x0000a2c4, 0x0000a2c4, 0x0000a2c4}, |
3586 | { 0x0000aa54, 0x00000000, 0x00000000, 0x0000a2c4, 0x0000a2c4, 0x0000a2c4 }, | 3586 | {0x0000aa58, 0x00000000, 0x00000000, 0x0000a708, 0x0000a708, 0x0000a708}, |
3587 | { 0x0000aa58, 0x00000000, 0x00000000, 0x0000a708, 0x0000a708, 0x0000a708 }, | 3587 | {0x0000aa5c, 0x00000000, 0x00000000, 0x0000a70c, 0x0000a70c, 0x0000a70c}, |
3588 | { 0x0000aa5c, 0x00000000, 0x00000000, 0x0000a70c, 0x0000a70c, 0x0000a70c }, | 3588 | {0x0000aa60, 0x00000000, 0x00000000, 0x0000a710, 0x0000a710, 0x0000a710}, |
3589 | { 0x0000aa60, 0x00000000, 0x00000000, 0x0000a710, 0x0000a710, 0x0000a710 }, | 3589 | {0x0000aa64, 0x00000000, 0x00000000, 0x0000ab04, 0x0000ab04, 0x0000ab04}, |
3590 | { 0x0000aa64, 0x00000000, 0x00000000, 0x0000ab04, 0x0000ab04, 0x0000ab04 }, | 3590 | {0x0000aa68, 0x00000000, 0x00000000, 0x0000ab08, 0x0000ab08, 0x0000ab08}, |
3591 | { 0x0000aa68, 0x00000000, 0x00000000, 0x0000ab08, 0x0000ab08, 0x0000ab08 }, | 3591 | {0x0000aa6c, 0x00000000, 0x00000000, 0x0000ab0c, 0x0000ab0c, 0x0000ab0c}, |
3592 | { 0x0000aa6c, 0x00000000, 0x00000000, 0x0000ab0c, 0x0000ab0c, 0x0000ab0c }, | 3592 | {0x0000aa70, 0x00000000, 0x00000000, 0x0000ab10, 0x0000ab10, 0x0000ab10}, |
3593 | { 0x0000aa70, 0x00000000, 0x00000000, 0x0000ab10, 0x0000ab10, 0x0000ab10 }, | 3593 | {0x0000aa74, 0x00000000, 0x00000000, 0x0000ab14, 0x0000ab14, 0x0000ab14}, |
3594 | { 0x0000aa74, 0x00000000, 0x00000000, 0x0000ab14, 0x0000ab14, 0x0000ab14 }, | 3594 | {0x0000aa78, 0x00000000, 0x00000000, 0x0000ab18, 0x0000ab18, 0x0000ab18}, |
3595 | { 0x0000aa78, 0x00000000, 0x00000000, 0x0000ab18, 0x0000ab18, 0x0000ab18 }, | 3595 | {0x0000aa7c, 0x00000000, 0x00000000, 0x0000ab8c, 0x0000ab8c, 0x0000ab8c}, |
3596 | { 0x0000aa7c, 0x00000000, 0x00000000, 0x0000ab8c, 0x0000ab8c, 0x0000ab8c }, | 3596 | {0x0000aa80, 0x00000000, 0x00000000, 0x0000ab90, 0x0000ab90, 0x0000ab90}, |
3597 | { 0x0000aa80, 0x00000000, 0x00000000, 0x0000ab90, 0x0000ab90, 0x0000ab90 }, | 3597 | {0x0000aa84, 0x00000000, 0x00000000, 0x0000ab94, 0x0000ab94, 0x0000ab94}, |
3598 | { 0x0000aa84, 0x00000000, 0x00000000, 0x0000ab94, 0x0000ab94, 0x0000ab94 }, | 3598 | {0x0000aa88, 0x00000000, 0x00000000, 0x0000ab98, 0x0000ab98, 0x0000ab98}, |
3599 | { 0x0000aa88, 0x00000000, 0x00000000, 0x0000ab98, 0x0000ab98, 0x0000ab98 }, | 3599 | {0x0000aa8c, 0x00000000, 0x00000000, 0x0000aba4, 0x0000aba4, 0x0000aba4}, |
3600 | { 0x0000aa8c, 0x00000000, 0x00000000, 0x0000aba4, 0x0000aba4, 0x0000aba4 }, | 3600 | {0x0000aa90, 0x00000000, 0x00000000, 0x0000aba8, 0x0000aba8, 0x0000aba8}, |
3601 | { 0x0000aa90, 0x00000000, 0x00000000, 0x0000aba8, 0x0000aba8, 0x0000aba8 }, | 3601 | {0x0000aa94, 0x00000000, 0x00000000, 0x0000cb04, 0x0000cb04, 0x0000cb04}, |
3602 | { 0x0000aa94, 0x00000000, 0x00000000, 0x0000cb04, 0x0000cb04, 0x0000cb04 }, | 3602 | {0x0000aa98, 0x00000000, 0x00000000, 0x0000cb08, 0x0000cb08, 0x0000cb08}, |
3603 | { 0x0000aa98, 0x00000000, 0x00000000, 0x0000cb08, 0x0000cb08, 0x0000cb08 }, | 3603 | {0x0000aa9c, 0x00000000, 0x00000000, 0x0000cb0c, 0x0000cb0c, 0x0000cb0c}, |
3604 | { 0x0000aa9c, 0x00000000, 0x00000000, 0x0000cb0c, 0x0000cb0c, 0x0000cb0c }, | 3604 | {0x0000aaa0, 0x00000000, 0x00000000, 0x0000cb10, 0x0000cb10, 0x0000cb10}, |
3605 | { 0x0000aaa0, 0x00000000, 0x00000000, 0x0000cb10, 0x0000cb10, 0x0000cb10 }, | 3605 | {0x0000aaa4, 0x00000000, 0x00000000, 0x0000cb14, 0x0000cb14, 0x0000cb14}, |
3606 | { 0x0000aaa4, 0x00000000, 0x00000000, 0x0000cb14, 0x0000cb14, 0x0000cb14 }, | 3606 | {0x0000aaa8, 0x00000000, 0x00000000, 0x0000cb18, 0x0000cb18, 0x0000cb18}, |
3607 | { 0x0000aaa8, 0x00000000, 0x00000000, 0x0000cb18, 0x0000cb18, 0x0000cb18 }, | 3607 | {0x0000aaac, 0x00000000, 0x00000000, 0x0000cb8c, 0x0000cb8c, 0x0000cb8c}, |
3608 | { 0x0000aaac, 0x00000000, 0x00000000, 0x0000cb8c, 0x0000cb8c, 0x0000cb8c }, | 3608 | {0x0000aab0, 0x00000000, 0x00000000, 0x0000cb90, 0x0000cb90, 0x0000cb90}, |
3609 | { 0x0000aab0, 0x00000000, 0x00000000, 0x0000cb90, 0x0000cb90, 0x0000cb90 }, | 3609 | {0x0000aab4, 0x00000000, 0x00000000, 0x0000cf18, 0x0000cf18, 0x0000cf18}, |
3610 | { 0x0000aab4, 0x00000000, 0x00000000, 0x0000cf18, 0x0000cf18, 0x0000cf18 }, | 3610 | {0x0000aab8, 0x00000000, 0x00000000, 0x0000cf24, 0x0000cf24, 0x0000cf24}, |
3611 | { 0x0000aab8, 0x00000000, 0x00000000, 0x0000cf24, 0x0000cf24, 0x0000cf24 }, | 3611 | {0x0000aabc, 0x00000000, 0x00000000, 0x0000cf28, 0x0000cf28, 0x0000cf28}, |
3612 | { 0x0000aabc, 0x00000000, 0x00000000, 0x0000cf28, 0x0000cf28, 0x0000cf28 }, | 3612 | {0x0000aac0, 0x00000000, 0x00000000, 0x0000d314, 0x0000d314, 0x0000d314}, |
3613 | { 0x0000aac0, 0x00000000, 0x00000000, 0x0000d314, 0x0000d314, 0x0000d314 }, | 3613 | {0x0000aac4, 0x00000000, 0x00000000, 0x0000d318, 0x0000d318, 0x0000d318}, |
3614 | { 0x0000aac4, 0x00000000, 0x00000000, 0x0000d318, 0x0000d318, 0x0000d318 }, | 3614 | {0x0000aac8, 0x00000000, 0x00000000, 0x0000d38c, 0x0000d38c, 0x0000d38c}, |
3615 | { 0x0000aac8, 0x00000000, 0x00000000, 0x0000d38c, 0x0000d38c, 0x0000d38c }, | 3615 | {0x0000aacc, 0x00000000, 0x00000000, 0x0000d390, 0x0000d390, 0x0000d390}, |
3616 | { 0x0000aacc, 0x00000000, 0x00000000, 0x0000d390, 0x0000d390, 0x0000d390 }, | 3616 | {0x0000aad0, 0x00000000, 0x00000000, 0x0000d394, 0x0000d394, 0x0000d394}, |
3617 | { 0x0000aad0, 0x00000000, 0x00000000, 0x0000d394, 0x0000d394, 0x0000d394 }, | 3617 | {0x0000aad4, 0x00000000, 0x00000000, 0x0000d398, 0x0000d398, 0x0000d398}, |
3618 | { 0x0000aad4, 0x00000000, 0x00000000, 0x0000d398, 0x0000d398, 0x0000d398 }, | 3618 | {0x0000aad8, 0x00000000, 0x00000000, 0x0000d3a4, 0x0000d3a4, 0x0000d3a4}, |
3619 | { 0x0000aad8, 0x00000000, 0x00000000, 0x0000d3a4, 0x0000d3a4, 0x0000d3a4 }, | 3619 | {0x0000aadc, 0x00000000, 0x00000000, 0x0000d3a8, 0x0000d3a8, 0x0000d3a8}, |
3620 | { 0x0000aadc, 0x00000000, 0x00000000, 0x0000d3a8, 0x0000d3a8, 0x0000d3a8 }, | 3620 | {0x0000aae0, 0x00000000, 0x00000000, 0x0000d3ac, 0x0000d3ac, 0x0000d3ac}, |
3621 | { 0x0000aae0, 0x00000000, 0x00000000, 0x0000d3ac, 0x0000d3ac, 0x0000d3ac }, | 3621 | {0x0000aae4, 0x00000000, 0x00000000, 0x0000d3b0, 0x0000d3b0, 0x0000d3b0}, |
3622 | { 0x0000aae4, 0x00000000, 0x00000000, 0x0000d3b0, 0x0000d3b0, 0x0000d3b0 }, | 3622 | {0x0000aae8, 0x00000000, 0x00000000, 0x0000f380, 0x0000f380, 0x0000f380}, |
3623 | { 0x0000aae8, 0x00000000, 0x00000000, 0x0000f380, 0x0000f380, 0x0000f380 }, | 3623 | {0x0000aaec, 0x00000000, 0x00000000, 0x0000f384, 0x0000f384, 0x0000f384}, |
3624 | { 0x0000aaec, 0x00000000, 0x00000000, 0x0000f384, 0x0000f384, 0x0000f384 }, | 3624 | {0x0000aaf0, 0x00000000, 0x00000000, 0x0000f388, 0x0000f388, 0x0000f388}, |
3625 | { 0x0000aaf0, 0x00000000, 0x00000000, 0x0000f388, 0x0000f388, 0x0000f388 }, | 3625 | {0x0000aaf4, 0x00000000, 0x00000000, 0x0000f710, 0x0000f710, 0x0000f710}, |
3626 | { 0x0000aaf4, 0x00000000, 0x00000000, 0x0000f710, 0x0000f710, 0x0000f710 }, | 3626 | {0x0000aaf8, 0x00000000, 0x00000000, 0x0000f714, 0x0000f714, 0x0000f714}, |
3627 | { 0x0000aaf8, 0x00000000, 0x00000000, 0x0000f714, 0x0000f714, 0x0000f714 }, | 3627 | {0x0000aafc, 0x00000000, 0x00000000, 0x0000f718, 0x0000f718, 0x0000f718}, |
3628 | { 0x0000aafc, 0x00000000, 0x00000000, 0x0000f718, 0x0000f718, 0x0000f718 }, | 3628 | {0x0000ab00, 0x00000000, 0x00000000, 0x0000fb10, 0x0000fb10, 0x0000fb10}, |
3629 | { 0x0000ab00, 0x00000000, 0x00000000, 0x0000fb10, 0x0000fb10, 0x0000fb10 }, | 3629 | {0x0000ab04, 0x00000000, 0x00000000, 0x0000fb14, 0x0000fb14, 0x0000fb14}, |
3630 | { 0x0000ab04, 0x00000000, 0x00000000, 0x0000fb14, 0x0000fb14, 0x0000fb14 }, | 3630 | {0x0000ab08, 0x00000000, 0x00000000, 0x0000fb18, 0x0000fb18, 0x0000fb18}, |
3631 | { 0x0000ab08, 0x00000000, 0x00000000, 0x0000fb18, 0x0000fb18, 0x0000fb18 }, | 3631 | {0x0000ab0c, 0x00000000, 0x00000000, 0x0000fb8c, 0x0000fb8c, 0x0000fb8c}, |
3632 | { 0x0000ab0c, 0x00000000, 0x00000000, 0x0000fb8c, 0x0000fb8c, 0x0000fb8c }, | 3632 | {0x0000ab10, 0x00000000, 0x00000000, 0x0000fb90, 0x0000fb90, 0x0000fb90}, |
3633 | { 0x0000ab10, 0x00000000, 0x00000000, 0x0000fb90, 0x0000fb90, 0x0000fb90 }, | 3633 | {0x0000ab14, 0x00000000, 0x00000000, 0x0000fb94, 0x0000fb94, 0x0000fb94}, |
3634 | { 0x0000ab14, 0x00000000, 0x00000000, 0x0000fb94, 0x0000fb94, 0x0000fb94 }, | 3634 | {0x0000ab18, 0x00000000, 0x00000000, 0x0000ff8c, 0x0000ff8c, 0x0000ff8c}, |
3635 | { 0x0000ab18, 0x00000000, 0x00000000, 0x0000ff8c, 0x0000ff8c, 0x0000ff8c }, | 3635 | {0x0000ab1c, 0x00000000, 0x00000000, 0x0000ff90, 0x0000ff90, 0x0000ff90}, |
3636 | { 0x0000ab1c, 0x00000000, 0x00000000, 0x0000ff90, 0x0000ff90, 0x0000ff90 }, | 3636 | {0x0000ab20, 0x00000000, 0x00000000, 0x0000ff94, 0x0000ff94, 0x0000ff94}, |
3637 | { 0x0000ab20, 0x00000000, 0x00000000, 0x0000ff94, 0x0000ff94, 0x0000ff94 }, | 3637 | {0x0000ab24, 0x00000000, 0x00000000, 0x0000ffa0, 0x0000ffa0, 0x0000ffa0}, |
3638 | { 0x0000ab24, 0x00000000, 0x00000000, 0x0000ffa0, 0x0000ffa0, 0x0000ffa0 }, | 3638 | {0x0000ab28, 0x00000000, 0x00000000, 0x0000ffa4, 0x0000ffa4, 0x0000ffa4}, |
3639 | { 0x0000ab28, 0x00000000, 0x00000000, 0x0000ffa4, 0x0000ffa4, 0x0000ffa4 }, | 3639 | {0x0000ab2c, 0x00000000, 0x00000000, 0x0000ffa8, 0x0000ffa8, 0x0000ffa8}, |
3640 | { 0x0000ab2c, 0x00000000, 0x00000000, 0x0000ffa8, 0x0000ffa8, 0x0000ffa8 }, | 3640 | {0x0000ab30, 0x00000000, 0x00000000, 0x0000ffac, 0x0000ffac, 0x0000ffac}, |
3641 | { 0x0000ab30, 0x00000000, 0x00000000, 0x0000ffac, 0x0000ffac, 0x0000ffac }, | 3641 | {0x0000ab34, 0x00000000, 0x00000000, 0x0000ffb0, 0x0000ffb0, 0x0000ffb0}, |
3642 | { 0x0000ab34, 0x00000000, 0x00000000, 0x0000ffb0, 0x0000ffb0, 0x0000ffb0 }, | 3642 | {0x0000ab38, 0x00000000, 0x00000000, 0x0000ffb4, 0x0000ffb4, 0x0000ffb4}, |
3643 | { 0x0000ab38, 0x00000000, 0x00000000, 0x0000ffb4, 0x0000ffb4, 0x0000ffb4 }, | 3643 | {0x0000ab3c, 0x00000000, 0x00000000, 0x0000ffa1, 0x0000ffa1, 0x0000ffa1}, |
3644 | { 0x0000ab3c, 0x00000000, 0x00000000, 0x0000ffa1, 0x0000ffa1, 0x0000ffa1 }, | 3644 | {0x0000ab40, 0x00000000, 0x00000000, 0x0000ffa5, 0x0000ffa5, 0x0000ffa5}, |
3645 | { 0x0000ab40, 0x00000000, 0x00000000, 0x0000ffa5, 0x0000ffa5, 0x0000ffa5 }, | 3645 | {0x0000ab44, 0x00000000, 0x00000000, 0x0000ffa9, 0x0000ffa9, 0x0000ffa9}, |
3646 | { 0x0000ab44, 0x00000000, 0x00000000, 0x0000ffa9, 0x0000ffa9, 0x0000ffa9 }, | 3646 | {0x0000ab48, 0x00000000, 0x00000000, 0x0000ffad, 0x0000ffad, 0x0000ffad}, |
3647 | { 0x0000ab48, 0x00000000, 0x00000000, 0x0000ffad, 0x0000ffad, 0x0000ffad }, | 3647 | {0x0000ab4c, 0x00000000, 0x00000000, 0x0000ffb1, 0x0000ffb1, 0x0000ffb1}, |
3648 | { 0x0000ab4c, 0x00000000, 0x00000000, 0x0000ffb1, 0x0000ffb1, 0x0000ffb1 }, | 3648 | {0x0000ab50, 0x00000000, 0x00000000, 0x0000ffb5, 0x0000ffb5, 0x0000ffb5}, |
3649 | { 0x0000ab50, 0x00000000, 0x00000000, 0x0000ffb5, 0x0000ffb5, 0x0000ffb5 }, | 3649 | {0x0000ab54, 0x00000000, 0x00000000, 0x0000ffb9, 0x0000ffb9, 0x0000ffb9}, |
3650 | { 0x0000ab54, 0x00000000, 0x00000000, 0x0000ffb9, 0x0000ffb9, 0x0000ffb9 }, | 3650 | {0x0000ab58, 0x00000000, 0x00000000, 0x0000ffc5, 0x0000ffc5, 0x0000ffc5}, |
3651 | { 0x0000ab58, 0x00000000, 0x00000000, 0x0000ffc5, 0x0000ffc5, 0x0000ffc5 }, | 3651 | {0x0000ab5c, 0x00000000, 0x00000000, 0x0000ffc9, 0x0000ffc9, 0x0000ffc9}, |
3652 | { 0x0000ab5c, 0x00000000, 0x00000000, 0x0000ffc9, 0x0000ffc9, 0x0000ffc9 }, | 3652 | {0x0000ab60, 0x00000000, 0x00000000, 0x0000ffcd, 0x0000ffcd, 0x0000ffcd}, |
3653 | { 0x0000ab60, 0x00000000, 0x00000000, 0x0000ffcd, 0x0000ffcd, 0x0000ffcd }, | 3653 | {0x0000ab64, 0x00000000, 0x00000000, 0x0000ffd1, 0x0000ffd1, 0x0000ffd1}, |
3654 | { 0x0000ab64, 0x00000000, 0x00000000, 0x0000ffd1, 0x0000ffd1, 0x0000ffd1 }, | 3654 | {0x0000ab68, 0x00000000, 0x00000000, 0x0000ffd5, 0x0000ffd5, 0x0000ffd5}, |
3655 | { 0x0000ab68, 0x00000000, 0x00000000, 0x0000ffd5, 0x0000ffd5, 0x0000ffd5 }, | 3655 | {0x0000ab6c, 0x00000000, 0x00000000, 0x0000ffc2, 0x0000ffc2, 0x0000ffc2}, |
3656 | { 0x0000ab6c, 0x00000000, 0x00000000, 0x0000ffc2, 0x0000ffc2, 0x0000ffc2 }, | 3656 | {0x0000ab70, 0x00000000, 0x00000000, 0x0000ffc6, 0x0000ffc6, 0x0000ffc6}, |
3657 | { 0x0000ab70, 0x00000000, 0x00000000, 0x0000ffc6, 0x0000ffc6, 0x0000ffc6 }, | 3657 | {0x0000ab74, 0x00000000, 0x00000000, 0x0000ffca, 0x0000ffca, 0x0000ffca}, |
3658 | { 0x0000ab74, 0x00000000, 0x00000000, 0x0000ffca, 0x0000ffca, 0x0000ffca }, | 3658 | {0x0000ab78, 0x00000000, 0x00000000, 0x0000ffce, 0x0000ffce, 0x0000ffce}, |
3659 | { 0x0000ab78, 0x00000000, 0x00000000, 0x0000ffce, 0x0000ffce, 0x0000ffce }, | 3659 | {0x0000ab7c, 0x00000000, 0x00000000, 0x0000ffd2, 0x0000ffd2, 0x0000ffd2}, |
3660 | { 0x0000ab7c, 0x00000000, 0x00000000, 0x0000ffd2, 0x0000ffd2, 0x0000ffd2 }, | 3660 | {0x0000ab80, 0x00000000, 0x00000000, 0x0000ffd6, 0x0000ffd6, 0x0000ffd6}, |
3661 | { 0x0000ab80, 0x00000000, 0x00000000, 0x0000ffd6, 0x0000ffd6, 0x0000ffd6 }, | 3661 | {0x0000ab84, 0x00000000, 0x00000000, 0x0000ffda, 0x0000ffda, 0x0000ffda}, |
3662 | { 0x0000ab84, 0x00000000, 0x00000000, 0x0000ffda, 0x0000ffda, 0x0000ffda }, | 3662 | {0x0000ab88, 0x00000000, 0x00000000, 0x0000ffc7, 0x0000ffc7, 0x0000ffc7}, |
3663 | { 0x0000ab88, 0x00000000, 0x00000000, 0x0000ffc7, 0x0000ffc7, 0x0000ffc7 }, | 3663 | {0x0000ab8c, 0x00000000, 0x00000000, 0x0000ffcb, 0x0000ffcb, 0x0000ffcb}, |
3664 | { 0x0000ab8c, 0x00000000, 0x00000000, 0x0000ffcb, 0x0000ffcb, 0x0000ffcb }, | 3664 | {0x0000ab90, 0x00000000, 0x00000000, 0x0000ffcf, 0x0000ffcf, 0x0000ffcf}, |
3665 | { 0x0000ab90, 0x00000000, 0x00000000, 0x0000ffcf, 0x0000ffcf, 0x0000ffcf }, | 3665 | {0x0000ab94, 0x00000000, 0x00000000, 0x0000ffd3, 0x0000ffd3, 0x0000ffd3}, |
3666 | { 0x0000ab94, 0x00000000, 0x00000000, 0x0000ffd3, 0x0000ffd3, 0x0000ffd3 }, | 3666 | {0x0000ab98, 0x00000000, 0x00000000, 0x0000ffd7, 0x0000ffd7, 0x0000ffd7}, |
3667 | { 0x0000ab98, 0x00000000, 0x00000000, 0x0000ffd7, 0x0000ffd7, 0x0000ffd7 }, | 3667 | {0x0000ab9c, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3668 | { 0x0000ab9c, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3668 | {0x0000aba0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3669 | { 0x0000aba0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3669 | {0x0000aba4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3670 | { 0x0000aba4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3670 | {0x0000aba8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3671 | { 0x0000aba8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3671 | {0x0000abac, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3672 | { 0x0000abac, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3672 | {0x0000abb0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3673 | { 0x0000abb0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3673 | {0x0000abb4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3674 | { 0x0000abb4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3674 | {0x0000abb8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3675 | { 0x0000abb8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3675 | {0x0000abbc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3676 | { 0x0000abbc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3676 | {0x0000abc0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3677 | { 0x0000abc0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3677 | {0x0000abc4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3678 | { 0x0000abc4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3678 | {0x0000abc8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3679 | { 0x0000abc8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3679 | {0x0000abcc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3680 | { 0x0000abcc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3680 | {0x0000abd0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3681 | { 0x0000abd0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3681 | {0x0000abd4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3682 | { 0x0000abd4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3682 | {0x0000abd8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3683 | { 0x0000abd8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3683 | {0x0000abdc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3684 | { 0x0000abdc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3684 | {0x0000abe0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3685 | { 0x0000abe0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3685 | {0x0000abe4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3686 | { 0x0000abe4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3686 | {0x0000abe8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3687 | { 0x0000abe8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3687 | {0x0000abec, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3688 | { 0x0000abec, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3688 | {0x0000abf0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3689 | { 0x0000abf0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3689 | {0x0000abf4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3690 | { 0x0000abf4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3690 | {0x0000abf8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3691 | { 0x0000abf8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3691 | {0x0000abfc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
3692 | { 0x0000abfc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 3692 | {0x00009848, 0x00000000, 0x00000000, 0x00001067, 0x00001067, 0x00001067}, |
3693 | { 0x00009848, 0x00000000, 0x00000000, 0x00001067, 0x00001067, 0x00001067 }, | 3693 | {0x0000a848, 0x00000000, 0x00000000, 0x00001067, 0x00001067, 0x00001067}, |
3694 | { 0x0000a848, 0x00000000, 0x00000000, 0x00001067, 0x00001067, 0x00001067 }, | ||
3695 | }; | 3694 | }; |
3696 | 3695 | ||
3697 | static const u32 ar9287PciePhy_clkreq_always_on_L1_9287_1_0[][2] = { | 3696 | static const u32 ar9287PciePhy_clkreq_always_on_L1_9287_1_0[][2] = { |
3698 | {0x00004040, 0x9248fd00 }, | 3697 | /* Addr allmodes */ |
3699 | {0x00004040, 0x24924924 }, | 3698 | {0x00004040, 0x9248fd00}, |
3700 | {0x00004040, 0xa8000019 }, | 3699 | {0x00004040, 0x24924924}, |
3701 | {0x00004040, 0x13160820 }, | 3700 | {0x00004040, 0xa8000019}, |
3702 | {0x00004040, 0xe5980560 }, | 3701 | {0x00004040, 0x13160820}, |
3703 | {0x00004040, 0xc01dcffd }, | 3702 | {0x00004040, 0xe5980560}, |
3704 | {0x00004040, 0x1aaabe41 }, | 3703 | {0x00004040, 0xc01dcffd}, |
3705 | {0x00004040, 0xbe105554 }, | 3704 | {0x00004040, 0x1aaabe41}, |
3706 | {0x00004040, 0x00043007 }, | 3705 | {0x00004040, 0xbe105554}, |
3707 | {0x00004044, 0x00000000 }, | 3706 | {0x00004040, 0x00043007}, |
3707 | {0x00004044, 0x00000000}, | ||
3708 | }; | 3708 | }; |
3709 | 3709 | ||
3710 | static const u32 ar9287PciePhy_clkreq_off_L1_9287_1_0[][2] = { | 3710 | static const u32 ar9287PciePhy_clkreq_off_L1_9287_1_0[][2] = { |
3711 | {0x00004040, 0x9248fd00 }, | 3711 | /* Addr allmodes */ |
3712 | {0x00004040, 0x24924924 }, | 3712 | {0x00004040, 0x9248fd00}, |
3713 | {0x00004040, 0xa8000019 }, | 3713 | {0x00004040, 0x24924924}, |
3714 | {0x00004040, 0x13160820 }, | 3714 | {0x00004040, 0xa8000019}, |
3715 | {0x00004040, 0xe5980560 }, | 3715 | {0x00004040, 0x13160820}, |
3716 | {0x00004040, 0xc01dcffc }, | 3716 | {0x00004040, 0xe5980560}, |
3717 | {0x00004040, 0x1aaabe41 }, | 3717 | {0x00004040, 0xc01dcffc}, |
3718 | {0x00004040, 0xbe105554 }, | 3718 | {0x00004040, 0x1aaabe41}, |
3719 | {0x00004040, 0x00043007 }, | 3719 | {0x00004040, 0xbe105554}, |
3720 | {0x00004044, 0x00000000 }, | 3720 | {0x00004040, 0x00043007}, |
3721 | {0x00004044, 0x00000000}, | ||
3721 | }; | 3722 | }; |
3722 | 3723 | ||
3723 | /* AR9287 Revision 11 */ | ||
3724 | |||
3725 | static const u32 ar9287Modes_9287_1_1[][6] = { | 3724 | static const u32 ar9287Modes_9287_1_1[][6] = { |
3726 | /* Address 5G-HT20 5G-HT40 2G-HT40 2G-HT20 Turbo */ | 3725 | {0x00001030, 0x00000000, 0x00000000, 0x000002c0, 0x00000160, 0x000001e0}, |
3727 | { 0x00001030, 0x00000000, 0x00000000, 0x000002c0, 0x00000160, 0x000001e0 }, | 3726 | {0x00001070, 0x00000000, 0x00000000, 0x00000318, 0x0000018c, 0x000001e0}, |
3728 | { 0x00001070, 0x00000000, 0x00000000, 0x00000318, 0x0000018c, 0x000001e0 }, | 3727 | {0x000010b0, 0x00000000, 0x00000000, 0x00007c70, 0x00003e38, 0x00001180}, |
3729 | { 0x000010b0, 0x00000000, 0x00000000, 0x00007c70, 0x00003e38, 0x00001180 }, | 3728 | {0x000010f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008}, |
3730 | { 0x000010f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008 }, | 3729 | {0x00008014, 0x00000000, 0x00000000, 0x10801600, 0x08400b00, 0x06e006e0}, |
3731 | { 0x00008014, 0x00000000, 0x00000000, 0x10801600, 0x08400b00, 0x06e006e0 }, | 3730 | {0x0000801c, 0x00000000, 0x00000000, 0x12e00057, 0x12e0002b, 0x0988004f}, |
3732 | { 0x0000801c, 0x00000000, 0x00000000, 0x12e00057, 0x12e0002b, 0x0988004f }, | 3731 | {0x00008120, 0x08f04800, 0x08f04800, 0x08f04810, 0x08f04810, 0x08f04810}, |
3733 | { 0x00008120, 0x08f04800, 0x08f04800, 0x08f04810, 0x08f04810, 0x08f04810 }, | 3732 | {0x000081d0, 0x00003200, 0x00003200, 0x0000320a, 0x0000320a, 0x0000320a}, |
3734 | { 0x000081d0, 0x00003200, 0x00003200, 0x0000320a, 0x0000320a, 0x0000320a }, | 3733 | {0x00008318, 0x00000000, 0x00000000, 0x00006880, 0x00003440, 0x00006880}, |
3735 | { 0x00008318, 0x00000000, 0x00000000, 0x00006880, 0x00003440, 0x00006880 }, | 3734 | {0x00009804, 0x00000000, 0x00000000, 0x000003c4, 0x00000300, 0x00000303}, |
3736 | { 0x00009804, 0x00000000, 0x00000000, 0x000003c4, 0x00000300, 0x00000303 }, | 3735 | {0x00009820, 0x00000000, 0x00000000, 0x02020200, 0x02020200, 0x02020200}, |
3737 | { 0x00009820, 0x00000000, 0x00000000, 0x02020200, 0x02020200, 0x02020200 }, | 3736 | {0x00009824, 0x00000000, 0x00000000, 0x01000e0e, 0x01000e0e, 0x01000e0e}, |
3738 | { 0x00009824, 0x00000000, 0x00000000, 0x01000e0e, 0x01000e0e, 0x01000e0e }, | 3737 | {0x00009828, 0x00000000, 0x00000000, 0x3a020001, 0x3a020001, 0x3a020001}, |
3739 | { 0x00009828, 0x00000000, 0x00000000, 0x3a020001, 0x3a020001, 0x3a020001 }, | 3738 | {0x00009834, 0x00000000, 0x00000000, 0x00000e0e, 0x00000e0e, 0x00000e0e}, |
3740 | { 0x00009834, 0x00000000, 0x00000000, 0x00000e0e, 0x00000e0e, 0x00000e0e }, | 3739 | {0x00009838, 0x00000003, 0x00000003, 0x00000007, 0x00000007, 0x00000007}, |
3741 | { 0x00009838, 0x00000003, 0x00000003, 0x00000007, 0x00000007, 0x00000007 }, | 3740 | {0x00009840, 0x206a002e, 0x206a002e, 0x206a012e, 0x206a012e, 0x206a012e}, |
3742 | { 0x00009840, 0x206a002e, 0x206a002e, 0x206a012e, 0x206a012e, 0x206a012e }, | 3741 | {0x00009844, 0x03720000, 0x03720000, 0x037216a0, 0x037216a0, 0x037216a0}, |
3743 | { 0x00009844, 0x03720000, 0x03720000, 0x037216a0, 0x037216a0, 0x037216a0 }, | 3742 | {0x00009850, 0x60000000, 0x60000000, 0x6d4000e2, 0x6c4000e2, 0x6c4000e2}, |
3744 | { 0x00009850, 0x60000000, 0x60000000, 0x6d4000e2, 0x6c4000e2, 0x6c4000e2 }, | 3743 | {0x00009858, 0x7c000d00, 0x7c000d00, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e}, |
3745 | { 0x00009858, 0x7c000d00, 0x7c000d00, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e }, | 3744 | {0x0000985c, 0x3100005e, 0x3100005e, 0x3139605e, 0x31395d5e, 0x31395d5e}, |
3746 | { 0x0000985c, 0x3100005e, 0x3100005e, 0x3139605e, 0x31395d5e, 0x31395d5e }, | 3745 | {0x00009860, 0x00058d00, 0x00058d00, 0x00058d20, 0x00058d20, 0x00058d18}, |
3747 | { 0x00009860, 0x00058d00, 0x00058d00, 0x00058d20, 0x00058d20, 0x00058d18 }, | 3746 | {0x00009864, 0x00000e00, 0x00000e00, 0x0001ce00, 0x0001ce00, 0x0001ce00}, |
3748 | { 0x00009864, 0x00000e00, 0x00000e00, 0x0001ce00, 0x0001ce00, 0x0001ce00 }, | 3747 | {0x00009868, 0x000040c0, 0x000040c0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0}, |
3749 | { 0x00009868, 0x000040c0, 0x000040c0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0 }, | 3748 | {0x0000986c, 0x00000080, 0x00000080, 0x06903881, 0x06903881, 0x06903881}, |
3750 | { 0x0000986c, 0x00000080, 0x00000080, 0x06903881, 0x06903881, 0x06903881 }, | 3749 | {0x00009914, 0x00000000, 0x00000000, 0x00001130, 0x00000898, 0x000007d0}, |
3751 | { 0x00009914, 0x00000000, 0x00000000, 0x00001130, 0x00000898, 0x000007d0 }, | 3750 | {0x00009918, 0x00000000, 0x00000000, 0x00000016, 0x0000000b, 0x00000016}, |
3752 | { 0x00009918, 0x00000000, 0x00000000, 0x00000016, 0x0000000b, 0x00000016 }, | 3751 | {0x00009924, 0xd00a8a01, 0xd00a8a01, 0xd00a8a0d, 0xd00a8a0d, 0xd00a8a0d}, |
3753 | { 0x00009924, 0xd00a8a01, 0xd00a8a01, 0xd00a8a0d, 0xd00a8a0d, 0xd00a8a0d }, | 3752 | {0x00009944, 0xefbc0000, 0xefbc0000, 0xefbc1010, 0xefbc1010, 0xefbc1010}, |
3754 | { 0x00009944, 0xefbc0000, 0xefbc0000, 0xefbc1010, 0xefbc1010, 0xefbc1010 }, | 3753 | {0x00009960, 0x00000000, 0x00000000, 0x00000010, 0x00000010, 0x00000010}, |
3755 | { 0x00009960, 0x00000000, 0x00000000, 0x00000010, 0x00000010, 0x00000010 }, | 3754 | {0x0000a960, 0x00000000, 0x00000000, 0x00000010, 0x00000010, 0x00000010}, |
3756 | { 0x0000a960, 0x00000000, 0x00000000, 0x00000010, 0x00000010, 0x00000010 }, | 3755 | {0x00009964, 0x00000000, 0x00000000, 0x00000210, 0x00000210, 0x00000210}, |
3757 | { 0x00009964, 0x00000000, 0x00000000, 0x00000210, 0x00000210, 0x00000210 }, | 3756 | {0x0000c968, 0x00000200, 0x00000200, 0x000003ce, 0x000003ce, 0x000003ce}, |
3758 | { 0x0000c968, 0x00000200, 0x00000200, 0x000003ce, 0x000003ce, 0x000003ce }, | 3757 | {0x000099b8, 0x00000000, 0x00000000, 0x0000001c, 0x0000001c, 0x0000001c}, |
3759 | { 0x000099b8, 0x00000000, 0x00000000, 0x0000001c, 0x0000001c, 0x0000001c }, | 3758 | {0x000099bc, 0x00000000, 0x00000000, 0x00000c00, 0x00000c00, 0x00000c00}, |
3760 | { 0x000099bc, 0x00000000, 0x00000000, 0x00000c00, 0x00000c00, 0x00000c00 }, | 3759 | {0x000099c0, 0x00000000, 0x00000000, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4}, |
3761 | { 0x000099c0, 0x00000000, 0x00000000, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4 }, | 3760 | {0x0000a204, 0x00000440, 0x00000440, 0x00000444, 0x00000444, 0x00000444}, |
3762 | { 0x0000a204, 0x00000440, 0x00000440, 0x00000444, 0x00000444, 0x00000444 }, | 3761 | {0x0000a20c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
3763 | { 0x0000a20c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 3762 | {0x0000b20c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
3764 | { 0x0000b20c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 3763 | {0x0000a21c, 0x1803800a, 0x1803800a, 0x1883800a, 0x1883800a, 0x1883800a}, |
3765 | { 0x0000a21c, 0x1803800a, 0x1803800a, 0x1883800a, 0x1883800a, 0x1883800a }, | 3764 | {0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000}, |
3766 | { 0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000 }, | 3765 | {0x0000a250, 0x00000000, 0x00000000, 0x0004a000, 0x0004a000, 0x0004a000}, |
3767 | { 0x0000a250, 0x00000000, 0x00000000, 0x0004a000, 0x0004a000, 0x0004a000 }, | 3766 | {0x0000a358, 0x7999aa02, 0x7999aa02, 0x7999aa0e, 0x7999aa0e, 0x7999aa0e}, |
3768 | { 0x0000a358, 0x7999aa02, 0x7999aa02, 0x7999aa0e, 0x7999aa0e, 0x7999aa0e }, | 3767 | {0x0000a3d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
3769 | { 0x0000a3d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | ||
3770 | }; | 3768 | }; |
3771 | 3769 | ||
3772 | static const u32 ar9287Common_9287_1_1[][2] = { | 3770 | static const u32 ar9287Common_9287_1_1[][2] = { |
3773 | { 0x0000000c, 0x00000000 }, | 3771 | /* Addr allmodes */ |
3774 | { 0x00000030, 0x00020015 }, | 3772 | {0x0000000c, 0x00000000}, |
3775 | { 0x00000034, 0x00000005 }, | 3773 | {0x00000030, 0x00020015}, |
3776 | { 0x00000040, 0x00000000 }, | 3774 | {0x00000034, 0x00000005}, |
3777 | { 0x00000044, 0x00000008 }, | 3775 | {0x00000040, 0x00000000}, |
3778 | { 0x00000048, 0x00000008 }, | 3776 | {0x00000044, 0x00000008}, |
3779 | { 0x0000004c, 0x00000010 }, | 3777 | {0x00000048, 0x00000008}, |
3780 | { 0x00000050, 0x00000000 }, | 3778 | {0x0000004c, 0x00000010}, |
3781 | { 0x00000054, 0x0000001f }, | 3779 | {0x00000050, 0x00000000}, |
3782 | { 0x00000800, 0x00000000 }, | 3780 | {0x00000054, 0x0000001f}, |
3783 | { 0x00000804, 0x00000000 }, | 3781 | {0x00000800, 0x00000000}, |
3784 | { 0x00000808, 0x00000000 }, | 3782 | {0x00000804, 0x00000000}, |
3785 | { 0x0000080c, 0x00000000 }, | 3783 | {0x00000808, 0x00000000}, |
3786 | { 0x00000810, 0x00000000 }, | 3784 | {0x0000080c, 0x00000000}, |
3787 | { 0x00000814, 0x00000000 }, | 3785 | {0x00000810, 0x00000000}, |
3788 | { 0x00000818, 0x00000000 }, | 3786 | {0x00000814, 0x00000000}, |
3789 | { 0x0000081c, 0x00000000 }, | 3787 | {0x00000818, 0x00000000}, |
3790 | { 0x00000820, 0x00000000 }, | 3788 | {0x0000081c, 0x00000000}, |
3791 | { 0x00000824, 0x00000000 }, | 3789 | {0x00000820, 0x00000000}, |
3792 | { 0x00001040, 0x002ffc0f }, | 3790 | {0x00000824, 0x00000000}, |
3793 | { 0x00001044, 0x002ffc0f }, | 3791 | {0x00001040, 0x002ffc0f}, |
3794 | { 0x00001048, 0x002ffc0f }, | 3792 | {0x00001044, 0x002ffc0f}, |
3795 | { 0x0000104c, 0x002ffc0f }, | 3793 | {0x00001048, 0x002ffc0f}, |
3796 | { 0x00001050, 0x002ffc0f }, | 3794 | {0x0000104c, 0x002ffc0f}, |
3797 | { 0x00001054, 0x002ffc0f }, | 3795 | {0x00001050, 0x002ffc0f}, |
3798 | { 0x00001058, 0x002ffc0f }, | 3796 | {0x00001054, 0x002ffc0f}, |
3799 | { 0x0000105c, 0x002ffc0f }, | 3797 | {0x00001058, 0x002ffc0f}, |
3800 | { 0x00001060, 0x002ffc0f }, | 3798 | {0x0000105c, 0x002ffc0f}, |
3801 | { 0x00001064, 0x002ffc0f }, | 3799 | {0x00001060, 0x002ffc0f}, |
3802 | { 0x00001230, 0x00000000 }, | 3800 | {0x00001064, 0x002ffc0f}, |
3803 | { 0x00001270, 0x00000000 }, | 3801 | {0x00001230, 0x00000000}, |
3804 | { 0x00001038, 0x00000000 }, | 3802 | {0x00001270, 0x00000000}, |
3805 | { 0x00001078, 0x00000000 }, | 3803 | {0x00001038, 0x00000000}, |
3806 | { 0x000010b8, 0x00000000 }, | 3804 | {0x00001078, 0x00000000}, |
3807 | { 0x000010f8, 0x00000000 }, | 3805 | {0x000010b8, 0x00000000}, |
3808 | { 0x00001138, 0x00000000 }, | 3806 | {0x000010f8, 0x00000000}, |
3809 | { 0x00001178, 0x00000000 }, | 3807 | {0x00001138, 0x00000000}, |
3810 | { 0x000011b8, 0x00000000 }, | 3808 | {0x00001178, 0x00000000}, |
3811 | { 0x000011f8, 0x00000000 }, | 3809 | {0x000011b8, 0x00000000}, |
3812 | { 0x00001238, 0x00000000 }, | 3810 | {0x000011f8, 0x00000000}, |
3813 | { 0x00001278, 0x00000000 }, | 3811 | {0x00001238, 0x00000000}, |
3814 | { 0x000012b8, 0x00000000 }, | 3812 | {0x00001278, 0x00000000}, |
3815 | { 0x000012f8, 0x00000000 }, | 3813 | {0x000012b8, 0x00000000}, |
3816 | { 0x00001338, 0x00000000 }, | 3814 | {0x000012f8, 0x00000000}, |
3817 | { 0x00001378, 0x00000000 }, | 3815 | {0x00001338, 0x00000000}, |
3818 | { 0x000013b8, 0x00000000 }, | 3816 | {0x00001378, 0x00000000}, |
3819 | { 0x000013f8, 0x00000000 }, | 3817 | {0x000013b8, 0x00000000}, |
3820 | { 0x00001438, 0x00000000 }, | 3818 | {0x000013f8, 0x00000000}, |
3821 | { 0x00001478, 0x00000000 }, | 3819 | {0x00001438, 0x00000000}, |
3822 | { 0x000014b8, 0x00000000 }, | 3820 | {0x00001478, 0x00000000}, |
3823 | { 0x000014f8, 0x00000000 }, | 3821 | {0x000014b8, 0x00000000}, |
3824 | { 0x00001538, 0x00000000 }, | 3822 | {0x000014f8, 0x00000000}, |
3825 | { 0x00001578, 0x00000000 }, | 3823 | {0x00001538, 0x00000000}, |
3826 | { 0x000015b8, 0x00000000 }, | 3824 | {0x00001578, 0x00000000}, |
3827 | { 0x000015f8, 0x00000000 }, | 3825 | {0x000015b8, 0x00000000}, |
3828 | { 0x00001638, 0x00000000 }, | 3826 | {0x000015f8, 0x00000000}, |
3829 | { 0x00001678, 0x00000000 }, | 3827 | {0x00001638, 0x00000000}, |
3830 | { 0x000016b8, 0x00000000 }, | 3828 | {0x00001678, 0x00000000}, |
3831 | { 0x000016f8, 0x00000000 }, | 3829 | {0x000016b8, 0x00000000}, |
3832 | { 0x00001738, 0x00000000 }, | 3830 | {0x000016f8, 0x00000000}, |
3833 | { 0x00001778, 0x00000000 }, | 3831 | {0x00001738, 0x00000000}, |
3834 | { 0x000017b8, 0x00000000 }, | 3832 | {0x00001778, 0x00000000}, |
3835 | { 0x000017f8, 0x00000000 }, | 3833 | {0x000017b8, 0x00000000}, |
3836 | { 0x0000103c, 0x00000000 }, | 3834 | {0x000017f8, 0x00000000}, |
3837 | { 0x0000107c, 0x00000000 }, | 3835 | {0x0000103c, 0x00000000}, |
3838 | { 0x000010bc, 0x00000000 }, | 3836 | {0x0000107c, 0x00000000}, |
3839 | { 0x000010fc, 0x00000000 }, | 3837 | {0x000010bc, 0x00000000}, |
3840 | { 0x0000113c, 0x00000000 }, | 3838 | {0x000010fc, 0x00000000}, |
3841 | { 0x0000117c, 0x00000000 }, | 3839 | {0x0000113c, 0x00000000}, |
3842 | { 0x000011bc, 0x00000000 }, | 3840 | {0x0000117c, 0x00000000}, |
3843 | { 0x000011fc, 0x00000000 }, | 3841 | {0x000011bc, 0x00000000}, |
3844 | { 0x0000123c, 0x00000000 }, | 3842 | {0x000011fc, 0x00000000}, |
3845 | { 0x0000127c, 0x00000000 }, | 3843 | {0x0000123c, 0x00000000}, |
3846 | { 0x000012bc, 0x00000000 }, | 3844 | {0x0000127c, 0x00000000}, |
3847 | { 0x000012fc, 0x00000000 }, | 3845 | {0x000012bc, 0x00000000}, |
3848 | { 0x0000133c, 0x00000000 }, | 3846 | {0x000012fc, 0x00000000}, |
3849 | { 0x0000137c, 0x00000000 }, | 3847 | {0x0000133c, 0x00000000}, |
3850 | { 0x000013bc, 0x00000000 }, | 3848 | {0x0000137c, 0x00000000}, |
3851 | { 0x000013fc, 0x00000000 }, | 3849 | {0x000013bc, 0x00000000}, |
3852 | { 0x0000143c, 0x00000000 }, | 3850 | {0x000013fc, 0x00000000}, |
3853 | { 0x0000147c, 0x00000000 }, | 3851 | {0x0000143c, 0x00000000}, |
3854 | { 0x00004030, 0x00000002 }, | 3852 | {0x0000147c, 0x00000000}, |
3855 | { 0x0000403c, 0x00000002 }, | 3853 | {0x00004030, 0x00000002}, |
3856 | { 0x00004024, 0x0000001f }, | 3854 | {0x0000403c, 0x00000002}, |
3857 | { 0x00004060, 0x00000000 }, | 3855 | {0x00004024, 0x0000001f}, |
3858 | { 0x00004064, 0x00000000 }, | 3856 | {0x00004060, 0x00000000}, |
3859 | { 0x00007010, 0x00000033 }, | 3857 | {0x00004064, 0x00000000}, |
3860 | { 0x00007020, 0x00000000 }, | 3858 | {0x00007010, 0x00000033}, |
3861 | { 0x00007034, 0x00000002 }, | 3859 | {0x00007020, 0x00000000}, |
3862 | { 0x00007038, 0x000004c2 }, | 3860 | {0x00007034, 0x00000002}, |
3863 | { 0x00008004, 0x00000000 }, | 3861 | {0x00007038, 0x000004c2}, |
3864 | { 0x00008008, 0x00000000 }, | 3862 | {0x00008004, 0x00000000}, |
3865 | { 0x0000800c, 0x00000000 }, | 3863 | {0x00008008, 0x00000000}, |
3866 | { 0x00008018, 0x00000700 }, | 3864 | {0x0000800c, 0x00000000}, |
3867 | { 0x00008020, 0x00000000 }, | 3865 | {0x00008018, 0x00000700}, |
3868 | { 0x00008038, 0x00000000 }, | 3866 | {0x00008020, 0x00000000}, |
3869 | { 0x0000803c, 0x00000000 }, | 3867 | {0x00008038, 0x00000000}, |
3870 | { 0x00008048, 0x40000000 }, | 3868 | {0x0000803c, 0x00000000}, |
3871 | { 0x00008054, 0x00000000 }, | 3869 | {0x00008048, 0x40000000}, |
3872 | { 0x00008058, 0x00000000 }, | 3870 | {0x00008054, 0x00000000}, |
3873 | { 0x0000805c, 0x000fc78f }, | 3871 | {0x00008058, 0x00000000}, |
3874 | { 0x00008060, 0x0000000f }, | 3872 | {0x0000805c, 0x000fc78f}, |
3875 | { 0x00008064, 0x00000000 }, | 3873 | {0x00008060, 0x0000000f}, |
3876 | { 0x00008070, 0x00000000 }, | 3874 | {0x00008064, 0x00000000}, |
3877 | { 0x000080c0, 0x2a80001a }, | 3875 | {0x00008070, 0x00000000}, |
3878 | { 0x000080c4, 0x05dc01e0 }, | 3876 | {0x000080c0, 0x2a80001a}, |
3879 | { 0x000080c8, 0x1f402710 }, | 3877 | {0x000080c4, 0x05dc01e0}, |
3880 | { 0x000080cc, 0x01f40000 }, | 3878 | {0x000080c8, 0x1f402710}, |
3881 | { 0x000080d0, 0x00001e00 }, | 3879 | {0x000080cc, 0x01f40000}, |
3882 | { 0x000080d4, 0x00000000 }, | 3880 | {0x000080d0, 0x00001e00}, |
3883 | { 0x000080d8, 0x00400000 }, | 3881 | {0x000080d4, 0x00000000}, |
3884 | { 0x000080e0, 0xffffffff }, | 3882 | {0x000080d8, 0x00400000}, |
3885 | { 0x000080e4, 0x0000ffff }, | 3883 | {0x000080e0, 0xffffffff}, |
3886 | { 0x000080e8, 0x003f3f3f }, | 3884 | {0x000080e4, 0x0000ffff}, |
3887 | { 0x000080ec, 0x00000000 }, | 3885 | {0x000080e8, 0x003f3f3f}, |
3888 | { 0x000080f0, 0x00000000 }, | 3886 | {0x000080ec, 0x00000000}, |
3889 | { 0x000080f4, 0x00000000 }, | 3887 | {0x000080f0, 0x00000000}, |
3890 | { 0x000080f8, 0x00000000 }, | 3888 | {0x000080f4, 0x00000000}, |
3891 | { 0x000080fc, 0x00020000 }, | 3889 | {0x000080f8, 0x00000000}, |
3892 | { 0x00008100, 0x00020000 }, | 3890 | {0x000080fc, 0x00020000}, |
3893 | { 0x00008104, 0x00000001 }, | 3891 | {0x00008100, 0x00020000}, |
3894 | { 0x00008108, 0x00000052 }, | 3892 | {0x00008104, 0x00000001}, |
3895 | { 0x0000810c, 0x00000000 }, | 3893 | {0x00008108, 0x00000052}, |
3896 | { 0x00008110, 0x00000168 }, | 3894 | {0x0000810c, 0x00000000}, |
3897 | { 0x00008118, 0x000100aa }, | 3895 | {0x00008110, 0x00000168}, |
3898 | { 0x0000811c, 0x00003210 }, | 3896 | {0x00008118, 0x000100aa}, |
3899 | { 0x00008124, 0x00000000 }, | 3897 | {0x0000811c, 0x00003210}, |
3900 | { 0x00008128, 0x00000000 }, | 3898 | {0x00008124, 0x00000000}, |
3901 | { 0x0000812c, 0x00000000 }, | 3899 | {0x00008128, 0x00000000}, |
3902 | { 0x00008130, 0x00000000 }, | 3900 | {0x0000812c, 0x00000000}, |
3903 | { 0x00008134, 0x00000000 }, | 3901 | {0x00008130, 0x00000000}, |
3904 | { 0x00008138, 0x00000000 }, | 3902 | {0x00008134, 0x00000000}, |
3905 | { 0x0000813c, 0x00000000 }, | 3903 | {0x00008138, 0x00000000}, |
3906 | { 0x00008144, 0xffffffff }, | 3904 | {0x0000813c, 0x00000000}, |
3907 | { 0x00008168, 0x00000000 }, | 3905 | {0x00008144, 0xffffffff}, |
3908 | { 0x0000816c, 0x00000000 }, | 3906 | {0x00008168, 0x00000000}, |
3909 | { 0x00008170, 0x18487320 }, | 3907 | {0x0000816c, 0x00000000}, |
3910 | { 0x00008174, 0xfaa4fa50 }, | 3908 | {0x00008170, 0x18487320}, |
3911 | { 0x00008178, 0x00000100 }, | 3909 | {0x00008174, 0xfaa4fa50}, |
3912 | { 0x0000817c, 0x00000000 }, | 3910 | {0x00008178, 0x00000100}, |
3913 | { 0x000081c0, 0x00000000 }, | 3911 | {0x0000817c, 0x00000000}, |
3914 | { 0x000081c4, 0x00000000 }, | 3912 | {0x000081c0, 0x00000000}, |
3915 | { 0x000081d4, 0x00000000 }, | 3913 | {0x000081c4, 0x00000000}, |
3916 | { 0x000081ec, 0x00000000 }, | 3914 | {0x000081d4, 0x00000000}, |
3917 | { 0x000081f0, 0x00000000 }, | 3915 | {0x000081ec, 0x00000000}, |
3918 | { 0x000081f4, 0x00000000 }, | 3916 | {0x000081f0, 0x00000000}, |
3919 | { 0x000081f8, 0x00000000 }, | 3917 | {0x000081f4, 0x00000000}, |
3920 | { 0x000081fc, 0x00000000 }, | 3918 | {0x000081f8, 0x00000000}, |
3921 | { 0x00008200, 0x00000000 }, | 3919 | {0x000081fc, 0x00000000}, |
3922 | { 0x00008204, 0x00000000 }, | 3920 | {0x00008200, 0x00000000}, |
3923 | { 0x00008208, 0x00000000 }, | 3921 | {0x00008204, 0x00000000}, |
3924 | { 0x0000820c, 0x00000000 }, | 3922 | {0x00008208, 0x00000000}, |
3925 | { 0x00008210, 0x00000000 }, | 3923 | {0x0000820c, 0x00000000}, |
3926 | { 0x00008214, 0x00000000 }, | 3924 | {0x00008210, 0x00000000}, |
3927 | { 0x00008218, 0x00000000 }, | 3925 | {0x00008214, 0x00000000}, |
3928 | { 0x0000821c, 0x00000000 }, | 3926 | {0x00008218, 0x00000000}, |
3929 | { 0x00008220, 0x00000000 }, | 3927 | {0x0000821c, 0x00000000}, |
3930 | { 0x00008224, 0x00000000 }, | 3928 | {0x00008220, 0x00000000}, |
3931 | { 0x00008228, 0x00000000 }, | 3929 | {0x00008224, 0x00000000}, |
3932 | { 0x0000822c, 0x00000000 }, | 3930 | {0x00008228, 0x00000000}, |
3933 | { 0x00008230, 0x00000000 }, | 3931 | {0x0000822c, 0x00000000}, |
3934 | { 0x00008234, 0x00000000 }, | 3932 | {0x00008230, 0x00000000}, |
3935 | { 0x00008238, 0x00000000 }, | 3933 | {0x00008234, 0x00000000}, |
3936 | { 0x0000823c, 0x00000000 }, | 3934 | {0x00008238, 0x00000000}, |
3937 | { 0x00008240, 0x00100000 }, | 3935 | {0x0000823c, 0x00000000}, |
3938 | { 0x00008244, 0x0010f400 }, | 3936 | {0x00008240, 0x00100000}, |
3939 | { 0x00008248, 0x00000100 }, | 3937 | {0x00008244, 0x0010f400}, |
3940 | { 0x0000824c, 0x0001e800 }, | 3938 | {0x00008248, 0x00000100}, |
3941 | { 0x00008250, 0x00000000 }, | 3939 | {0x0000824c, 0x0001e800}, |
3942 | { 0x00008254, 0x00000000 }, | 3940 | {0x00008250, 0x00000000}, |
3943 | { 0x00008258, 0x00000000 }, | 3941 | {0x00008254, 0x00000000}, |
3944 | { 0x0000825c, 0x400000ff }, | 3942 | {0x00008258, 0x00000000}, |
3945 | { 0x00008260, 0x00080922 }, | 3943 | {0x0000825c, 0x400000ff}, |
3946 | { 0x00008264, 0x88a00010 }, | 3944 | {0x00008260, 0x00080922}, |
3947 | { 0x00008270, 0x00000000 }, | 3945 | {0x00008264, 0x88a00010}, |
3948 | { 0x00008274, 0x40000000 }, | 3946 | {0x00008270, 0x00000000}, |
3949 | { 0x00008278, 0x003e4180 }, | 3947 | {0x00008274, 0x40000000}, |
3950 | { 0x0000827c, 0x00000000 }, | 3948 | {0x00008278, 0x003e4180}, |
3951 | { 0x00008284, 0x0000002c }, | 3949 | {0x0000827c, 0x00000000}, |
3952 | { 0x00008288, 0x0000002c }, | 3950 | {0x00008284, 0x0000002c}, |
3953 | { 0x0000828c, 0x000000ff }, | 3951 | {0x00008288, 0x0000002c}, |
3954 | { 0x00008294, 0x00000000 }, | 3952 | {0x0000828c, 0x000000ff}, |
3955 | { 0x00008298, 0x00000000 }, | 3953 | {0x00008294, 0x00000000}, |
3956 | { 0x0000829c, 0x00000000 }, | 3954 | {0x00008298, 0x00000000}, |
3957 | { 0x00008300, 0x00000040 }, | 3955 | {0x0000829c, 0x00000000}, |
3958 | { 0x00008314, 0x00000000 }, | 3956 | {0x00008300, 0x00000040}, |
3959 | { 0x00008328, 0x00000000 }, | 3957 | {0x00008314, 0x00000000}, |
3960 | { 0x0000832c, 0x00000007 }, | 3958 | {0x00008328, 0x00000000}, |
3961 | { 0x00008330, 0x00000302 }, | 3959 | {0x0000832c, 0x00000007}, |
3962 | { 0x00008334, 0x00000e00 }, | 3960 | {0x00008330, 0x00000302}, |
3963 | { 0x00008338, 0x00ff0000 }, | 3961 | {0x00008334, 0x00000e00}, |
3964 | { 0x0000833c, 0x00000000 }, | 3962 | {0x00008338, 0x00ff0000}, |
3965 | { 0x00008340, 0x000107ff }, | 3963 | {0x0000833c, 0x00000000}, |
3966 | { 0x00008344, 0x01c81043 }, | 3964 | {0x00008340, 0x000107ff}, |
3967 | { 0x00008360, 0xffffffff }, | 3965 | {0x00008344, 0x01c81043}, |
3968 | { 0x00008364, 0xffffffff }, | 3966 | {0x00008360, 0xffffffff}, |
3969 | { 0x00008368, 0x00000000 }, | 3967 | {0x00008364, 0xffffffff}, |
3970 | { 0x00008370, 0x00000000 }, | 3968 | {0x00008368, 0x00000000}, |
3971 | { 0x00008374, 0x000000ff }, | 3969 | {0x00008370, 0x00000000}, |
3972 | { 0x00008378, 0x00000000 }, | 3970 | {0x00008374, 0x000000ff}, |
3973 | { 0x0000837c, 0x00000000 }, | 3971 | {0x00008378, 0x00000000}, |
3974 | { 0x00008380, 0xffffffff }, | 3972 | {0x0000837c, 0x00000000}, |
3975 | { 0x00008384, 0xffffffff }, | 3973 | {0x00008380, 0xffffffff}, |
3976 | { 0x00008390, 0x0fffffff }, | 3974 | {0x00008384, 0xffffffff}, |
3977 | { 0x00008394, 0x0fffffff }, | 3975 | {0x00008390, 0x0fffffff}, |
3978 | { 0x00008398, 0x00000000 }, | 3976 | {0x00008394, 0x0fffffff}, |
3979 | { 0x0000839c, 0x00000000 }, | 3977 | {0x00008398, 0x00000000}, |
3980 | { 0x000083a0, 0x00000000 }, | 3978 | {0x0000839c, 0x00000000}, |
3981 | { 0x00009808, 0x00000000 }, | 3979 | {0x000083a0, 0x00000000}, |
3982 | { 0x0000980c, 0xafe68e30 }, | 3980 | {0x00009808, 0x00000000}, |
3983 | { 0x00009810, 0xfd14e000 }, | 3981 | {0x0000980c, 0xafe68e30}, |
3984 | { 0x00009814, 0x9c0a9f6b }, | 3982 | {0x00009810, 0xfd14e000}, |
3985 | { 0x0000981c, 0x00000000 }, | 3983 | {0x00009814, 0x9c0a9f6b}, |
3986 | { 0x0000982c, 0x0000a000 }, | 3984 | {0x0000981c, 0x00000000}, |
3987 | { 0x00009830, 0x00000000 }, | 3985 | {0x0000982c, 0x0000a000}, |
3988 | { 0x0000983c, 0x00200400 }, | 3986 | {0x00009830, 0x00000000}, |
3989 | { 0x0000984c, 0x0040233c }, | 3987 | {0x0000983c, 0x00200400}, |
3990 | { 0x0000a84c, 0x0040233c }, | 3988 | {0x0000984c, 0x0040233c}, |
3991 | { 0x00009854, 0x00000044 }, | 3989 | {0x0000a84c, 0x0040233c}, |
3992 | { 0x00009900, 0x00000000 }, | 3990 | {0x00009854, 0x00000044}, |
3993 | { 0x00009904, 0x00000000 }, | 3991 | {0x00009900, 0x00000000}, |
3994 | { 0x00009908, 0x00000000 }, | 3992 | {0x00009904, 0x00000000}, |
3995 | { 0x0000990c, 0x00000000 }, | 3993 | {0x00009908, 0x00000000}, |
3996 | { 0x00009910, 0x10002310 }, | 3994 | {0x0000990c, 0x00000000}, |
3997 | { 0x0000991c, 0x10000fff }, | 3995 | {0x00009910, 0x10002310}, |
3998 | { 0x00009920, 0x04900000 }, | 3996 | {0x0000991c, 0x10000fff}, |
3999 | { 0x0000a920, 0x04900000 }, | 3997 | {0x00009920, 0x04900000}, |
4000 | { 0x00009928, 0x00000001 }, | 3998 | {0x0000a920, 0x04900000}, |
4001 | { 0x0000992c, 0x00000004 }, | 3999 | {0x00009928, 0x00000001}, |
4002 | { 0x00009930, 0x00000000 }, | 4000 | {0x0000992c, 0x00000004}, |
4003 | { 0x0000a930, 0x00000000 }, | 4001 | {0x00009930, 0x00000000}, |
4004 | { 0x00009934, 0x1e1f2022 }, | 4002 | {0x0000a930, 0x00000000}, |
4005 | { 0x00009938, 0x0a0b0c0d }, | 4003 | {0x00009934, 0x1e1f2022}, |
4006 | { 0x0000993c, 0x00000000 }, | 4004 | {0x00009938, 0x0a0b0c0d}, |
4007 | { 0x00009948, 0x9280c00a }, | 4005 | {0x0000993c, 0x00000000}, |
4008 | { 0x0000994c, 0x00020028 }, | 4006 | {0x00009948, 0x9280c00a}, |
4009 | { 0x00009954, 0x5f3ca3de }, | 4007 | {0x0000994c, 0x00020028}, |
4010 | { 0x00009958, 0x0108ecff }, | 4008 | {0x00009954, 0x5f3ca3de}, |
4011 | { 0x00009940, 0x14750604 }, | 4009 | {0x00009958, 0x0108ecff}, |
4012 | { 0x0000c95c, 0x004b6a8e }, | 4010 | {0x00009940, 0x14750604}, |
4013 | { 0x00009970, 0x990bb514 }, | 4011 | {0x0000c95c, 0x004b6a8e}, |
4014 | { 0x00009974, 0x00000000 }, | 4012 | {0x00009970, 0x990bb514}, |
4015 | { 0x00009978, 0x00000001 }, | 4013 | {0x00009974, 0x00000000}, |
4016 | { 0x0000997c, 0x00000000 }, | 4014 | {0x00009978, 0x00000001}, |
4017 | { 0x000099a0, 0x00000000 }, | 4015 | {0x0000997c, 0x00000000}, |
4018 | { 0x000099a4, 0x00000001 }, | 4016 | {0x000099a0, 0x00000000}, |
4019 | { 0x000099a8, 0x201fff00 }, | 4017 | {0x000099a4, 0x00000001}, |
4020 | { 0x000099ac, 0x0c6f0000 }, | 4018 | {0x000099a8, 0x201fff00}, |
4021 | { 0x000099b0, 0x03051000 }, | 4019 | {0x000099ac, 0x0c6f0000}, |
4022 | { 0x000099b4, 0x00000820 }, | 4020 | {0x000099b0, 0x03051000}, |
4023 | { 0x000099c4, 0x06336f77 }, | 4021 | {0x000099b4, 0x00000820}, |
4024 | { 0x000099c8, 0x6af6532f }, | 4022 | {0x000099c4, 0x06336f77}, |
4025 | { 0x000099cc, 0x08f186c8 }, | 4023 | {0x000099c8, 0x6af6532f}, |
4026 | { 0x000099d0, 0x00046384 }, | 4024 | {0x000099cc, 0x08f186c8}, |
4027 | { 0x000099dc, 0x00000000 }, | 4025 | {0x000099d0, 0x00046384}, |
4028 | { 0x000099e0, 0x00000000 }, | 4026 | {0x000099dc, 0x00000000}, |
4029 | { 0x000099e4, 0xaaaaaaaa }, | 4027 | {0x000099e0, 0x00000000}, |
4030 | { 0x000099e8, 0x3c466478 }, | 4028 | {0x000099e4, 0xaaaaaaaa}, |
4031 | { 0x000099ec, 0x0cc80caa }, | 4029 | {0x000099e8, 0x3c466478}, |
4032 | { 0x000099f0, 0x00000000 }, | 4030 | {0x000099ec, 0x0cc80caa}, |
4033 | { 0x000099fc, 0x00001042 }, | 4031 | {0x000099f0, 0x00000000}, |
4034 | { 0x0000a208, 0x803e4788 }, | 4032 | {0x000099fc, 0x00001042}, |
4035 | { 0x0000a210, 0x4080a333 }, | 4033 | {0x0000a208, 0x803e4788}, |
4036 | { 0x0000a214, 0x40206c10 }, | 4034 | {0x0000a210, 0x4080a333}, |
4037 | { 0x0000a218, 0x009c4060 }, | 4035 | {0x0000a214, 0x40206c10}, |
4038 | { 0x0000a220, 0x01834061 }, | 4036 | {0x0000a218, 0x009c4060}, |
4039 | { 0x0000a224, 0x00000400 }, | 4037 | {0x0000a220, 0x01834061}, |
4040 | { 0x0000a228, 0x000003b5 }, | 4038 | {0x0000a224, 0x00000400}, |
4041 | { 0x0000a22c, 0x233f7180 }, | 4039 | {0x0000a228, 0x000003b5}, |
4042 | { 0x0000a234, 0x20202020 }, | 4040 | {0x0000a22c, 0x233f7180}, |
4043 | { 0x0000a238, 0x20202020 }, | 4041 | {0x0000a234, 0x20202020}, |
4044 | { 0x0000a23c, 0x13c889af }, | 4042 | {0x0000a238, 0x20202020}, |
4045 | { 0x0000a240, 0x38490a20 }, | 4043 | {0x0000a23c, 0x13c889af}, |
4046 | { 0x0000a244, 0x00000000 }, | 4044 | {0x0000a240, 0x38490a20}, |
4047 | { 0x0000a248, 0xfffffffc }, | 4045 | {0x0000a244, 0x00000000}, |
4048 | { 0x0000a24c, 0x00000000 }, | 4046 | {0x0000a248, 0xfffffffc}, |
4049 | { 0x0000a254, 0x00000000 }, | 4047 | {0x0000a24c, 0x00000000}, |
4050 | { 0x0000a258, 0x0cdbd380 }, | 4048 | {0x0000a254, 0x00000000}, |
4051 | { 0x0000a25c, 0x0f0f0f01 }, | 4049 | {0x0000a258, 0x0cdbd380}, |
4052 | { 0x0000a260, 0xdfa91f01 }, | 4050 | {0x0000a25c, 0x0f0f0f01}, |
4053 | { 0x0000a264, 0x00418a11 }, | 4051 | {0x0000a260, 0xdfa91f01}, |
4054 | { 0x0000b264, 0x00418a11 }, | 4052 | {0x0000a264, 0x00418a11}, |
4055 | { 0x0000a268, 0x00000000 }, | 4053 | {0x0000b264, 0x00418a11}, |
4056 | { 0x0000a26c, 0x0e79e5c6 }, | 4054 | {0x0000a268, 0x00000000}, |
4057 | { 0x0000b26c, 0x0e79e5c6 }, | 4055 | {0x0000a26c, 0x0e79e5c6}, |
4058 | { 0x0000d270, 0x00820820 }, | 4056 | {0x0000b26c, 0x0e79e5c6}, |
4059 | { 0x0000a278, 0x1ce739ce }, | 4057 | {0x0000d270, 0x00820820}, |
4060 | { 0x0000a27c, 0x050701ce }, | 4058 | {0x0000a278, 0x1ce739ce}, |
4061 | { 0x0000d35c, 0x07ffffef }, | 4059 | {0x0000a27c, 0x050701ce}, |
4062 | { 0x0000d360, 0x0fffffe7 }, | 4060 | {0x0000d35c, 0x07ffffef}, |
4063 | { 0x0000d364, 0x17ffffe5 }, | 4061 | {0x0000d360, 0x0fffffe7}, |
4064 | { 0x0000d368, 0x1fffffe4 }, | 4062 | {0x0000d364, 0x17ffffe5}, |
4065 | { 0x0000d36c, 0x37ffffe3 }, | 4063 | {0x0000d368, 0x1fffffe4}, |
4066 | { 0x0000d370, 0x3fffffe3 }, | 4064 | {0x0000d36c, 0x37ffffe3}, |
4067 | { 0x0000d374, 0x57ffffe3 }, | 4065 | {0x0000d370, 0x3fffffe3}, |
4068 | { 0x0000d378, 0x5fffffe2 }, | 4066 | {0x0000d374, 0x57ffffe3}, |
4069 | { 0x0000d37c, 0x7fffffe2 }, | 4067 | {0x0000d378, 0x5fffffe2}, |
4070 | { 0x0000d380, 0x7f3c7bba }, | 4068 | {0x0000d37c, 0x7fffffe2}, |
4071 | { 0x0000d384, 0xf3307ff0 }, | 4069 | {0x0000d380, 0x7f3c7bba}, |
4072 | { 0x0000a388, 0x0c000000 }, | 4070 | {0x0000d384, 0xf3307ff0}, |
4073 | { 0x0000a38c, 0x20202020 }, | 4071 | {0x0000a388, 0x0c000000}, |
4074 | { 0x0000a390, 0x20202020 }, | 4072 | {0x0000a38c, 0x20202020}, |
4075 | { 0x0000a394, 0x1ce739ce }, | 4073 | {0x0000a390, 0x20202020}, |
4076 | { 0x0000a398, 0x000001ce }, | 4074 | {0x0000a394, 0x1ce739ce}, |
4077 | { 0x0000b398, 0x000001ce }, | 4075 | {0x0000a398, 0x000001ce}, |
4078 | { 0x0000a39c, 0x00000001 }, | 4076 | {0x0000b398, 0x000001ce}, |
4079 | { 0x0000a3c8, 0x00000246 }, | 4077 | {0x0000a39c, 0x00000001}, |
4080 | { 0x0000a3cc, 0x20202020 }, | 4078 | {0x0000a3c8, 0x00000246}, |
4081 | { 0x0000a3d0, 0x20202020 }, | 4079 | {0x0000a3cc, 0x20202020}, |
4082 | { 0x0000a3d4, 0x20202020 }, | 4080 | {0x0000a3d0, 0x20202020}, |
4083 | { 0x0000a3dc, 0x1ce739ce }, | 4081 | {0x0000a3d4, 0x20202020}, |
4084 | { 0x0000a3e0, 0x000001ce }, | 4082 | {0x0000a3dc, 0x1ce739ce}, |
4085 | { 0x0000a3e4, 0x00000000 }, | 4083 | {0x0000a3e0, 0x000001ce}, |
4086 | { 0x0000a3e8, 0x18c43433 }, | 4084 | {0x0000a3e4, 0x00000000}, |
4087 | { 0x0000a3ec, 0x00f70081 }, | 4085 | {0x0000a3e8, 0x18c43433}, |
4088 | { 0x0000a3f0, 0x01036a1e }, | 4086 | {0x0000a3ec, 0x00f70081}, |
4089 | { 0x0000a3f4, 0x00000000 }, | 4087 | {0x0000a3f0, 0x01036a1e}, |
4090 | { 0x0000b3f4, 0x00000000 }, | 4088 | {0x0000a3f4, 0x00000000}, |
4091 | { 0x0000a7d8, 0x000003f1 }, | 4089 | {0x0000b3f4, 0x00000000}, |
4092 | { 0x00007800, 0x00000800 }, | 4090 | {0x0000a7d8, 0x000003f1}, |
4093 | { 0x00007804, 0x6c35ffd2 }, | 4091 | {0x00007800, 0x00000800}, |
4094 | { 0x00007808, 0x6db6c000 }, | 4092 | {0x00007804, 0x6c35ffd2}, |
4095 | { 0x0000780c, 0x6db6cb30 }, | 4093 | {0x00007808, 0x6db6c000}, |
4096 | { 0x00007810, 0x6db6cb6c }, | 4094 | {0x0000780c, 0x6db6cb30}, |
4097 | { 0x00007814, 0x0501e200 }, | 4095 | {0x00007810, 0x6db6cb6c}, |
4098 | { 0x00007818, 0x0094128d }, | 4096 | {0x00007814, 0x0501e200}, |
4099 | { 0x0000781c, 0x976ee392 }, | 4097 | {0x00007818, 0x0094128d}, |
4100 | { 0x00007820, 0xf75ff6fc }, | 4098 | {0x0000781c, 0x976ee392}, |
4101 | { 0x00007824, 0x00040000 }, | 4099 | {0x00007820, 0xf75ff6fc}, |
4102 | { 0x00007828, 0xdb003012 }, | 4100 | {0x00007824, 0x00040000}, |
4103 | { 0x0000782c, 0x04924914 }, | 4101 | {0x00007828, 0xdb003012}, |
4104 | { 0x00007830, 0x21084210 }, | 4102 | {0x0000782c, 0x04924914}, |
4105 | { 0x00007834, 0x00140000 }, | 4103 | {0x00007830, 0x21084210}, |
4106 | { 0x00007838, 0x0e4548d8 }, | 4104 | {0x00007834, 0x00140000}, |
4107 | { 0x0000783c, 0x54214514 }, | 4105 | {0x00007838, 0x0e4548d8}, |
4108 | { 0x00007840, 0x02025830 }, | 4106 | {0x0000783c, 0x54214514}, |
4109 | { 0x00007844, 0x71c0d388 }, | 4107 | {0x00007840, 0x02025830}, |
4110 | { 0x00007848, 0x934934a8 }, | 4108 | {0x00007844, 0x71c0d388}, |
4111 | { 0x00007850, 0x00000000 }, | 4109 | {0x00007848, 0x934934a8}, |
4112 | { 0x00007854, 0x00000800 }, | 4110 | {0x00007850, 0x00000000}, |
4113 | { 0x00007858, 0x6c35ffd2 }, | 4111 | {0x00007854, 0x00000800}, |
4114 | { 0x0000785c, 0x6db6c000 }, | 4112 | {0x00007858, 0x6c35ffd2}, |
4115 | { 0x00007860, 0x6db6cb30 }, | 4113 | {0x0000785c, 0x6db6c000}, |
4116 | { 0x00007864, 0x6db6cb6c }, | 4114 | {0x00007860, 0x6db6cb30}, |
4117 | { 0x00007868, 0x0501e200 }, | 4115 | {0x00007864, 0x6db6cb6c}, |
4118 | { 0x0000786c, 0x0094128d }, | 4116 | {0x00007868, 0x0501e200}, |
4119 | { 0x00007870, 0x976ee392 }, | 4117 | {0x0000786c, 0x0094128d}, |
4120 | { 0x00007874, 0xf75ff6fc }, | 4118 | {0x00007870, 0x976ee392}, |
4121 | { 0x00007878, 0x00040000 }, | 4119 | {0x00007874, 0xf75ff6fc}, |
4122 | { 0x0000787c, 0xdb003012 }, | 4120 | {0x00007878, 0x00040000}, |
4123 | { 0x00007880, 0x04924914 }, | 4121 | {0x0000787c, 0xdb003012}, |
4124 | { 0x00007884, 0x21084210 }, | 4122 | {0x00007880, 0x04924914}, |
4125 | { 0x00007888, 0x001b6db0 }, | 4123 | {0x00007884, 0x21084210}, |
4126 | { 0x0000788c, 0x00376b63 }, | 4124 | {0x00007888, 0x001b6db0}, |
4127 | { 0x00007890, 0x06db6db6 }, | 4125 | {0x0000788c, 0x00376b63}, |
4128 | { 0x00007894, 0x006d8000 }, | 4126 | {0x00007890, 0x06db6db6}, |
4129 | { 0x00007898, 0x48100000 }, | 4127 | {0x00007894, 0x006d8000}, |
4130 | { 0x0000789c, 0x00000000 }, | 4128 | {0x00007898, 0x48100000}, |
4131 | { 0x000078a0, 0x08000000 }, | 4129 | {0x0000789c, 0x00000000}, |
4132 | { 0x000078a4, 0x0007ffd8 }, | 4130 | {0x000078a0, 0x08000000}, |
4133 | { 0x000078a8, 0x0007ffd8 }, | 4131 | {0x000078a4, 0x0007ffd8}, |
4134 | { 0x000078ac, 0x001c0020 }, | 4132 | {0x000078a8, 0x0007ffd8}, |
4135 | { 0x000078b0, 0x00060aeb }, | 4133 | {0x000078ac, 0x001c0020}, |
4136 | { 0x000078b4, 0x40008080 }, | 4134 | {0x000078b0, 0x00060aeb}, |
4137 | { 0x000078b8, 0x2a850160 }, | 4135 | {0x000078b4, 0x40008080}, |
4136 | {0x000078b8, 0x2a850160}, | ||
4138 | }; | 4137 | }; |
4139 | 4138 | ||
4140 | /* | 4139 | static const u32 ar9287Common_normal_cck_fir_coeff_9287_1_1[][2] = { |
4141 | * For Japanese regulatory requirements, 2484 MHz requires the following three | 4140 | /* Addr allmodes */ |
4142 | * registers be programmed differently from the channel between 2412 and | 4141 | {0x0000a1f4, 0x00fffeff}, |
4143 | * 2472 MHz. | 4142 | {0x0000a1f8, 0x00f5f9ff}, |
4144 | */ | 4143 | {0x0000a1fc, 0xb79f6427}, |
4145 | static const u32 ar9287Common_normal_cck_fir_coeff_92871_1[][2] = { | ||
4146 | { 0x0000a1f4, 0x00fffeff }, | ||
4147 | { 0x0000a1f8, 0x00f5f9ff }, | ||
4148 | { 0x0000a1fc, 0xb79f6427 }, | ||
4149 | }; | 4144 | }; |
4150 | 4145 | ||
4151 | static const u32 ar9287Common_japan_2484_cck_fir_coeff_92871_1[][2] = { | 4146 | static const u32 ar9287Common_japan_2484_cck_fir_coeff_9287_1_1[][2] = { |
4152 | { 0x0000a1f4, 0x00000000 }, | 4147 | /* Addr allmodes */ |
4153 | { 0x0000a1f8, 0xefff0301 }, | 4148 | {0x0000a1f4, 0x00000000}, |
4154 | { 0x0000a1fc, 0xca9228ee }, | 4149 | {0x0000a1f8, 0xefff0301}, |
4150 | {0x0000a1fc, 0xca9228ee}, | ||
4155 | }; | 4151 | }; |
4156 | 4152 | ||
4157 | static const u32 ar9287Modes_tx_gain_9287_1_1[][6] = { | 4153 | static const u32 ar9287Modes_tx_gain_9287_1_1[][6] = { |
4158 | /* Address 5G-HT20 5G-HT40 2G-HT40 2G-HT20 Turbo */ | 4154 | {0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
4159 | { 0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 4155 | {0x0000a304, 0x00000000, 0x00000000, 0x00004002, 0x00004002, 0x00004002}, |
4160 | { 0x0000a304, 0x00000000, 0x00000000, 0x00004002, 0x00004002, 0x00004002 }, | 4156 | {0x0000a308, 0x00000000, 0x00000000, 0x00008004, 0x00008004, 0x00008004}, |
4161 | { 0x0000a308, 0x00000000, 0x00000000, 0x00008004, 0x00008004, 0x00008004 }, | 4157 | {0x0000a30c, 0x00000000, 0x00000000, 0x0000c00a, 0x0000c00a, 0x0000c00a}, |
4162 | { 0x0000a30c, 0x00000000, 0x00000000, 0x0000c00a, 0x0000c00a, 0x0000c00a }, | 4158 | {0x0000a310, 0x00000000, 0x00000000, 0x0001000c, 0x0001000c, 0x0001000c}, |
4163 | { 0x0000a310, 0x00000000, 0x00000000, 0x0001000c, 0x0001000c, 0x0001000c }, | 4159 | {0x0000a314, 0x00000000, 0x00000000, 0x0001420b, 0x0001420b, 0x0001420b}, |
4164 | { 0x0000a314, 0x00000000, 0x00000000, 0x0001420b, 0x0001420b, 0x0001420b }, | 4160 | {0x0000a318, 0x00000000, 0x00000000, 0x0001824a, 0x0001824a, 0x0001824a}, |
4165 | { 0x0000a318, 0x00000000, 0x00000000, 0x0001824a, 0x0001824a, 0x0001824a }, | 4161 | {0x0000a31c, 0x00000000, 0x00000000, 0x0001c44a, 0x0001c44a, 0x0001c44a}, |
4166 | { 0x0000a31c, 0x00000000, 0x00000000, 0x0001c44a, 0x0001c44a, 0x0001c44a }, | 4162 | {0x0000a320, 0x00000000, 0x00000000, 0x0002064a, 0x0002064a, 0x0002064a}, |
4167 | { 0x0000a320, 0x00000000, 0x00000000, 0x0002064a, 0x0002064a, 0x0002064a }, | 4163 | {0x0000a324, 0x00000000, 0x00000000, 0x0002484a, 0x0002484a, 0x0002484a}, |
4168 | { 0x0000a324, 0x00000000, 0x00000000, 0x0002484a, 0x0002484a, 0x0002484a }, | 4164 | {0x0000a328, 0x00000000, 0x00000000, 0x00028a4a, 0x00028a4a, 0x00028a4a}, |
4169 | { 0x0000a328, 0x00000000, 0x00000000, 0x00028a4a, 0x00028a4a, 0x00028a4a }, | 4165 | {0x0000a32c, 0x00000000, 0x00000000, 0x0002cc4a, 0x0002cc4a, 0x0002cc4a}, |
4170 | { 0x0000a32c, 0x00000000, 0x00000000, 0x0002cc4a, 0x0002cc4a, 0x0002cc4a }, | 4166 | {0x0000a330, 0x00000000, 0x00000000, 0x00030e4a, 0x00030e4a, 0x00030e4a}, |
4171 | { 0x0000a330, 0x00000000, 0x00000000, 0x00030e4a, 0x00030e4a, 0x00030e4a }, | 4167 | {0x0000a334, 0x00000000, 0x00000000, 0x00034e8a, 0x00034e8a, 0x00034e8a}, |
4172 | { 0x0000a334, 0x00000000, 0x00000000, 0x00034e8a, 0x00034e8a, 0x00034e8a }, | 4168 | {0x0000a338, 0x00000000, 0x00000000, 0x00038e8c, 0x00038e8c, 0x00038e8c}, |
4173 | { 0x0000a338, 0x00000000, 0x00000000, 0x00038e8c, 0x00038e8c, 0x00038e8c }, | 4169 | {0x0000a33c, 0x00000000, 0x00000000, 0x0003cecc, 0x0003cecc, 0x0003cecc}, |
4174 | { 0x0000a33c, 0x00000000, 0x00000000, 0x0003cecc, 0x0003cecc, 0x0003cecc }, | 4170 | {0x0000a340, 0x00000000, 0x00000000, 0x00040ed4, 0x00040ed4, 0x00040ed4}, |
4175 | { 0x0000a340, 0x00000000, 0x00000000, 0x00040ed4, 0x00040ed4, 0x00040ed4 }, | 4171 | {0x0000a344, 0x00000000, 0x00000000, 0x00044edc, 0x00044edc, 0x00044edc}, |
4176 | { 0x0000a344, 0x00000000, 0x00000000, 0x00044edc, 0x00044edc, 0x00044edc }, | 4172 | {0x0000a348, 0x00000000, 0x00000000, 0x00048ede, 0x00048ede, 0x00048ede}, |
4177 | { 0x0000a348, 0x00000000, 0x00000000, 0x00048ede, 0x00048ede, 0x00048ede }, | 4173 | {0x0000a34c, 0x00000000, 0x00000000, 0x0004cf1e, 0x0004cf1e, 0x0004cf1e}, |
4178 | { 0x0000a34c, 0x00000000, 0x00000000, 0x0004cf1e, 0x0004cf1e, 0x0004cf1e }, | 4174 | {0x0000a350, 0x00000000, 0x00000000, 0x00050f5e, 0x00050f5e, 0x00050f5e}, |
4179 | { 0x0000a350, 0x00000000, 0x00000000, 0x00050f5e, 0x00050f5e, 0x00050f5e }, | 4175 | {0x0000a354, 0x00000000, 0x00000000, 0x00054f9e, 0x00054f9e, 0x00054f9e}, |
4180 | { 0x0000a354, 0x00000000, 0x00000000, 0x00054f9e, 0x00054f9e, 0x00054f9e }, | 4176 | {0x0000a780, 0x00000000, 0x00000000, 0x00000062, 0x00000062, 0x00000062}, |
4181 | { 0x0000a780, 0x00000000, 0x00000000, 0x00000062, 0x00000062, 0x00000062 }, | 4177 | {0x0000a784, 0x00000000, 0x00000000, 0x00004064, 0x00004064, 0x00004064}, |
4182 | { 0x0000a784, 0x00000000, 0x00000000, 0x00004064, 0x00004064, 0x00004064 }, | 4178 | {0x0000a788, 0x00000000, 0x00000000, 0x000080a4, 0x000080a4, 0x000080a4}, |
4183 | { 0x0000a788, 0x00000000, 0x00000000, 0x000080a4, 0x000080a4, 0x000080a4 }, | 4179 | {0x0000a78c, 0x00000000, 0x00000000, 0x0000c0aa, 0x0000c0aa, 0x0000c0aa}, |
4184 | { 0x0000a78c, 0x00000000, 0x00000000, 0x0000c0aa, 0x0000c0aa, 0x0000c0aa }, | 4180 | {0x0000a790, 0x00000000, 0x00000000, 0x000100ac, 0x000100ac, 0x000100ac}, |
4185 | { 0x0000a790, 0x00000000, 0x00000000, 0x000100ac, 0x000100ac, 0x000100ac }, | 4181 | {0x0000a794, 0x00000000, 0x00000000, 0x000140b4, 0x000140b4, 0x000140b4}, |
4186 | { 0x0000a794, 0x00000000, 0x00000000, 0x000140b4, 0x000140b4, 0x000140b4 }, | 4182 | {0x0000a798, 0x00000000, 0x00000000, 0x000180f4, 0x000180f4, 0x000180f4}, |
4187 | { 0x0000a798, 0x00000000, 0x00000000, 0x000180f4, 0x000180f4, 0x000180f4 }, | 4183 | {0x0000a79c, 0x00000000, 0x00000000, 0x0001c134, 0x0001c134, 0x0001c134}, |
4188 | { 0x0000a79c, 0x00000000, 0x00000000, 0x0001c134, 0x0001c134, 0x0001c134 }, | 4184 | {0x0000a7a0, 0x00000000, 0x00000000, 0x00020174, 0x00020174, 0x00020174}, |
4189 | { 0x0000a7a0, 0x00000000, 0x00000000, 0x00020174, 0x00020174, 0x00020174 }, | 4185 | {0x0000a7a4, 0x00000000, 0x00000000, 0x0002417c, 0x0002417c, 0x0002417c}, |
4190 | { 0x0000a7a4, 0x00000000, 0x00000000, 0x0002417c, 0x0002417c, 0x0002417c }, | 4186 | {0x0000a7a8, 0x00000000, 0x00000000, 0x0002817e, 0x0002817e, 0x0002817e}, |
4191 | { 0x0000a7a8, 0x00000000, 0x00000000, 0x0002817e, 0x0002817e, 0x0002817e }, | 4187 | {0x0000a7ac, 0x00000000, 0x00000000, 0x0002c1be, 0x0002c1be, 0x0002c1be}, |
4192 | { 0x0000a7ac, 0x00000000, 0x00000000, 0x0002c1be, 0x0002c1be, 0x0002c1be }, | 4188 | {0x0000a7b0, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe}, |
4193 | { 0x0000a7b0, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe }, | 4189 | {0x0000a7b4, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe}, |
4194 | { 0x0000a7b4, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe }, | 4190 | {0x0000a7b8, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe}, |
4195 | { 0x0000a7b8, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe }, | 4191 | {0x0000a7bc, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe}, |
4196 | { 0x0000a7bc, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe }, | 4192 | {0x0000a7c0, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe}, |
4197 | { 0x0000a7c0, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe }, | 4193 | {0x0000a7c4, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe}, |
4198 | { 0x0000a7c4, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe }, | 4194 | {0x0000a7c8, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe}, |
4199 | { 0x0000a7c8, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe }, | 4195 | {0x0000a7cc, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe}, |
4200 | { 0x0000a7cc, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe }, | 4196 | {0x0000a7d0, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe}, |
4201 | { 0x0000a7d0, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe }, | 4197 | {0x0000a7d4, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe}, |
4202 | { 0x0000a7d4, 0x00000000, 0x00000000, 0x000301fe, 0x000301fe, 0x000301fe }, | 4198 | {0x0000a274, 0x0a180000, 0x0a180000, 0x0a1aa000, 0x0a1aa000, 0x0a1aa000}, |
4203 | { 0x0000a274, 0x0a180000, 0x0a180000, 0x0a1aa000, 0x0a1aa000, 0x0a1aa000 }, | ||
4204 | }; | 4199 | }; |
4205 | 4200 | ||
4206 | static const u32 ar9287Modes_rx_gain_9287_1_1[][6] = { | 4201 | static const u32 ar9287Modes_rx_gain_9287_1_1[][6] = { |
4207 | /* Address 5G-HT20 5G-HT40 2G-HT40 2G-HT20 Turbo */ | 4202 | {0x00009a00, 0x00000000, 0x00000000, 0x0000a120, 0x0000a120, 0x0000a120}, |
4208 | { 0x00009a00, 0x00000000, 0x00000000, 0x0000a120, 0x0000a120, 0x0000a120 }, | 4203 | {0x00009a04, 0x00000000, 0x00000000, 0x0000a124, 0x0000a124, 0x0000a124}, |
4209 | { 0x00009a04, 0x00000000, 0x00000000, 0x0000a124, 0x0000a124, 0x0000a124 }, | 4204 | {0x00009a08, 0x00000000, 0x00000000, 0x0000a128, 0x0000a128, 0x0000a128}, |
4210 | { 0x00009a08, 0x00000000, 0x00000000, 0x0000a128, 0x0000a128, 0x0000a128 }, | 4205 | {0x00009a0c, 0x00000000, 0x00000000, 0x0000a12c, 0x0000a12c, 0x0000a12c}, |
4211 | { 0x00009a0c, 0x00000000, 0x00000000, 0x0000a12c, 0x0000a12c, 0x0000a12c }, | 4206 | {0x00009a10, 0x00000000, 0x00000000, 0x0000a130, 0x0000a130, 0x0000a130}, |
4212 | { 0x00009a10, 0x00000000, 0x00000000, 0x0000a130, 0x0000a130, 0x0000a130 }, | 4207 | {0x00009a14, 0x00000000, 0x00000000, 0x0000a194, 0x0000a194, 0x0000a194}, |
4213 | { 0x00009a14, 0x00000000, 0x00000000, 0x0000a194, 0x0000a194, 0x0000a194 }, | 4208 | {0x00009a18, 0x00000000, 0x00000000, 0x0000a198, 0x0000a198, 0x0000a198}, |
4214 | { 0x00009a18, 0x00000000, 0x00000000, 0x0000a198, 0x0000a198, 0x0000a198 }, | 4209 | {0x00009a1c, 0x00000000, 0x00000000, 0x0000a20c, 0x0000a20c, 0x0000a20c}, |
4215 | { 0x00009a1c, 0x00000000, 0x00000000, 0x0000a20c, 0x0000a20c, 0x0000a20c }, | 4210 | {0x00009a20, 0x00000000, 0x00000000, 0x0000a210, 0x0000a210, 0x0000a210}, |
4216 | { 0x00009a20, 0x00000000, 0x00000000, 0x0000a210, 0x0000a210, 0x0000a210 }, | 4211 | {0x00009a24, 0x00000000, 0x00000000, 0x0000a284, 0x0000a284, 0x0000a284}, |
4217 | { 0x00009a24, 0x00000000, 0x00000000, 0x0000a284, 0x0000a284, 0x0000a284 }, | 4212 | {0x00009a28, 0x00000000, 0x00000000, 0x0000a288, 0x0000a288, 0x0000a288}, |
4218 | { 0x00009a28, 0x00000000, 0x00000000, 0x0000a288, 0x0000a288, 0x0000a288 }, | 4213 | {0x00009a2c, 0x00000000, 0x00000000, 0x0000a28c, 0x0000a28c, 0x0000a28c}, |
4219 | { 0x00009a2c, 0x00000000, 0x00000000, 0x0000a28c, 0x0000a28c, 0x0000a28c }, | 4214 | {0x00009a30, 0x00000000, 0x00000000, 0x0000a290, 0x0000a290, 0x0000a290}, |
4220 | { 0x00009a30, 0x00000000, 0x00000000, 0x0000a290, 0x0000a290, 0x0000a290 }, | 4215 | {0x00009a34, 0x00000000, 0x00000000, 0x0000a294, 0x0000a294, 0x0000a294}, |
4221 | { 0x00009a34, 0x00000000, 0x00000000, 0x0000a294, 0x0000a294, 0x0000a294 }, | 4216 | {0x00009a38, 0x00000000, 0x00000000, 0x0000a2a0, 0x0000a2a0, 0x0000a2a0}, |
4222 | { 0x00009a38, 0x00000000, 0x00000000, 0x0000a2a0, 0x0000a2a0, 0x0000a2a0 }, | 4217 | {0x00009a3c, 0x00000000, 0x00000000, 0x0000a2a4, 0x0000a2a4, 0x0000a2a4}, |
4223 | { 0x00009a3c, 0x00000000, 0x00000000, 0x0000a2a4, 0x0000a2a4, 0x0000a2a4 }, | 4218 | {0x00009a40, 0x00000000, 0x00000000, 0x0000a2a8, 0x0000a2a8, 0x0000a2a8}, |
4224 | { 0x00009a40, 0x00000000, 0x00000000, 0x0000a2a8, 0x0000a2a8, 0x0000a2a8 }, | 4219 | {0x00009a44, 0x00000000, 0x00000000, 0x0000a2ac, 0x0000a2ac, 0x0000a2ac}, |
4225 | { 0x00009a44, 0x00000000, 0x00000000, 0x0000a2ac, 0x0000a2ac, 0x0000a2ac }, | 4220 | {0x00009a48, 0x00000000, 0x00000000, 0x0000a2b0, 0x0000a2b0, 0x0000a2b0}, |
4226 | { 0x00009a48, 0x00000000, 0x00000000, 0x0000a2b0, 0x0000a2b0, 0x0000a2b0 }, | 4221 | {0x00009a4c, 0x00000000, 0x00000000, 0x0000a2b4, 0x0000a2b4, 0x0000a2b4}, |
4227 | { 0x00009a4c, 0x00000000, 0x00000000, 0x0000a2b4, 0x0000a2b4, 0x0000a2b4 }, | 4222 | {0x00009a50, 0x00000000, 0x00000000, 0x0000a2b8, 0x0000a2b8, 0x0000a2b8}, |
4228 | { 0x00009a50, 0x00000000, 0x00000000, 0x0000a2b8, 0x0000a2b8, 0x0000a2b8 }, | 4223 | {0x00009a54, 0x00000000, 0x00000000, 0x0000a2c4, 0x0000a2c4, 0x0000a2c4}, |
4229 | { 0x00009a54, 0x00000000, 0x00000000, 0x0000a2c4, 0x0000a2c4, 0x0000a2c4 }, | 4224 | {0x00009a58, 0x00000000, 0x00000000, 0x0000a708, 0x0000a708, 0x0000a708}, |
4230 | { 0x00009a58, 0x00000000, 0x00000000, 0x0000a708, 0x0000a708, 0x0000a708 }, | 4225 | {0x00009a5c, 0x00000000, 0x00000000, 0x0000a70c, 0x0000a70c, 0x0000a70c}, |
4231 | { 0x00009a5c, 0x00000000, 0x00000000, 0x0000a70c, 0x0000a70c, 0x0000a70c }, | 4226 | {0x00009a60, 0x00000000, 0x00000000, 0x0000a710, 0x0000a710, 0x0000a710}, |
4232 | { 0x00009a60, 0x00000000, 0x00000000, 0x0000a710, 0x0000a710, 0x0000a710 }, | 4227 | {0x00009a64, 0x00000000, 0x00000000, 0x0000ab04, 0x0000ab04, 0x0000ab04}, |
4233 | { 0x00009a64, 0x00000000, 0x00000000, 0x0000ab04, 0x0000ab04, 0x0000ab04 }, | 4228 | {0x00009a68, 0x00000000, 0x00000000, 0x0000ab08, 0x0000ab08, 0x0000ab08}, |
4234 | { 0x00009a68, 0x00000000, 0x00000000, 0x0000ab08, 0x0000ab08, 0x0000ab08 }, | 4229 | {0x00009a6c, 0x00000000, 0x00000000, 0x0000ab0c, 0x0000ab0c, 0x0000ab0c}, |
4235 | { 0x00009a6c, 0x00000000, 0x00000000, 0x0000ab0c, 0x0000ab0c, 0x0000ab0c }, | 4230 | {0x00009a70, 0x00000000, 0x00000000, 0x0000ab10, 0x0000ab10, 0x0000ab10}, |
4236 | { 0x00009a70, 0x00000000, 0x00000000, 0x0000ab10, 0x0000ab10, 0x0000ab10 }, | 4231 | {0x00009a74, 0x00000000, 0x00000000, 0x0000ab14, 0x0000ab14, 0x0000ab14}, |
4237 | { 0x00009a74, 0x00000000, 0x00000000, 0x0000ab14, 0x0000ab14, 0x0000ab14 }, | 4232 | {0x00009a78, 0x00000000, 0x00000000, 0x0000ab18, 0x0000ab18, 0x0000ab18}, |
4238 | { 0x00009a78, 0x00000000, 0x00000000, 0x0000ab18, 0x0000ab18, 0x0000ab18 }, | 4233 | {0x00009a7c, 0x00000000, 0x00000000, 0x0000ab8c, 0x0000ab8c, 0x0000ab8c}, |
4239 | { 0x00009a7c, 0x00000000, 0x00000000, 0x0000ab8c, 0x0000ab8c, 0x0000ab8c }, | 4234 | {0x00009a80, 0x00000000, 0x00000000, 0x0000ab90, 0x0000ab90, 0x0000ab90}, |
4240 | { 0x00009a80, 0x00000000, 0x00000000, 0x0000ab90, 0x0000ab90, 0x0000ab90 }, | 4235 | {0x00009a84, 0x00000000, 0x00000000, 0x0000ab94, 0x0000ab94, 0x0000ab94}, |
4241 | { 0x00009a84, 0x00000000, 0x00000000, 0x0000ab94, 0x0000ab94, 0x0000ab94 }, | 4236 | {0x00009a88, 0x00000000, 0x00000000, 0x0000ab98, 0x0000ab98, 0x0000ab98}, |
4242 | { 0x00009a88, 0x00000000, 0x00000000, 0x0000ab98, 0x0000ab98, 0x0000ab98 }, | 4237 | {0x00009a8c, 0x00000000, 0x00000000, 0x0000aba4, 0x0000aba4, 0x0000aba4}, |
4243 | { 0x00009a8c, 0x00000000, 0x00000000, 0x0000aba4, 0x0000aba4, 0x0000aba4 }, | 4238 | {0x00009a90, 0x00000000, 0x00000000, 0x0000aba8, 0x0000aba8, 0x0000aba8}, |
4244 | { 0x00009a90, 0x00000000, 0x00000000, 0x0000aba8, 0x0000aba8, 0x0000aba8 }, | 4239 | {0x00009a94, 0x00000000, 0x00000000, 0x0000cb04, 0x0000cb04, 0x0000cb04}, |
4245 | { 0x00009a94, 0x00000000, 0x00000000, 0x0000cb04, 0x0000cb04, 0x0000cb04 }, | 4240 | {0x00009a98, 0x00000000, 0x00000000, 0x0000cb08, 0x0000cb08, 0x0000cb08}, |
4246 | { 0x00009a98, 0x00000000, 0x00000000, 0x0000cb08, 0x0000cb08, 0x0000cb08 }, | 4241 | {0x00009a9c, 0x00000000, 0x00000000, 0x0000cb0c, 0x0000cb0c, 0x0000cb0c}, |
4247 | { 0x00009a9c, 0x00000000, 0x00000000, 0x0000cb0c, 0x0000cb0c, 0x0000cb0c }, | 4242 | {0x00009aa0, 0x00000000, 0x00000000, 0x0000cb10, 0x0000cb10, 0x0000cb10}, |
4248 | { 0x00009aa0, 0x00000000, 0x00000000, 0x0000cb10, 0x0000cb10, 0x0000cb10 }, | 4243 | {0x00009aa4, 0x00000000, 0x00000000, 0x0000cb14, 0x0000cb14, 0x0000cb14}, |
4249 | { 0x00009aa4, 0x00000000, 0x00000000, 0x0000cb14, 0x0000cb14, 0x0000cb14 }, | 4244 | {0x00009aa8, 0x00000000, 0x00000000, 0x0000cb18, 0x0000cb18, 0x0000cb18}, |
4250 | { 0x00009aa8, 0x00000000, 0x00000000, 0x0000cb18, 0x0000cb18, 0x0000cb18 }, | 4245 | {0x00009aac, 0x00000000, 0x00000000, 0x0000cb8c, 0x0000cb8c, 0x0000cb8c}, |
4251 | { 0x00009aac, 0x00000000, 0x00000000, 0x0000cb8c, 0x0000cb8c, 0x0000cb8c }, | 4246 | {0x00009ab0, 0x00000000, 0x00000000, 0x0000cb90, 0x0000cb90, 0x0000cb90}, |
4252 | { 0x00009ab0, 0x00000000, 0x00000000, 0x0000cb90, 0x0000cb90, 0x0000cb90 }, | 4247 | {0x00009ab4, 0x00000000, 0x00000000, 0x0000cf18, 0x0000cf18, 0x0000cf18}, |
4253 | { 0x00009ab4, 0x00000000, 0x00000000, 0x0000cf18, 0x0000cf18, 0x0000cf18 }, | 4248 | {0x00009ab8, 0x00000000, 0x00000000, 0x0000cf24, 0x0000cf24, 0x0000cf24}, |
4254 | { 0x00009ab8, 0x00000000, 0x00000000, 0x0000cf24, 0x0000cf24, 0x0000cf24 }, | 4249 | {0x00009abc, 0x00000000, 0x00000000, 0x0000cf28, 0x0000cf28, 0x0000cf28}, |
4255 | { 0x00009abc, 0x00000000, 0x00000000, 0x0000cf28, 0x0000cf28, 0x0000cf28 }, | 4250 | {0x00009ac0, 0x00000000, 0x00000000, 0x0000d314, 0x0000d314, 0x0000d314}, |
4256 | { 0x00009ac0, 0x00000000, 0x00000000, 0x0000d314, 0x0000d314, 0x0000d314 }, | 4251 | {0x00009ac4, 0x00000000, 0x00000000, 0x0000d318, 0x0000d318, 0x0000d318}, |
4257 | { 0x00009ac4, 0x00000000, 0x00000000, 0x0000d318, 0x0000d318, 0x0000d318 }, | 4252 | {0x00009ac8, 0x00000000, 0x00000000, 0x0000d38c, 0x0000d38c, 0x0000d38c}, |
4258 | { 0x00009ac8, 0x00000000, 0x00000000, 0x0000d38c, 0x0000d38c, 0x0000d38c }, | 4253 | {0x00009acc, 0x00000000, 0x00000000, 0x0000d390, 0x0000d390, 0x0000d390}, |
4259 | { 0x00009acc, 0x00000000, 0x00000000, 0x0000d390, 0x0000d390, 0x0000d390 }, | 4254 | {0x00009ad0, 0x00000000, 0x00000000, 0x0000d394, 0x0000d394, 0x0000d394}, |
4260 | { 0x00009ad0, 0x00000000, 0x00000000, 0x0000d394, 0x0000d394, 0x0000d394 }, | 4255 | {0x00009ad4, 0x00000000, 0x00000000, 0x0000d398, 0x0000d398, 0x0000d398}, |
4261 | { 0x00009ad4, 0x00000000, 0x00000000, 0x0000d398, 0x0000d398, 0x0000d398 }, | 4256 | {0x00009ad8, 0x00000000, 0x00000000, 0x0000d3a4, 0x0000d3a4, 0x0000d3a4}, |
4262 | { 0x00009ad8, 0x00000000, 0x00000000, 0x0000d3a4, 0x0000d3a4, 0x0000d3a4 }, | 4257 | {0x00009adc, 0x00000000, 0x00000000, 0x0000d3a8, 0x0000d3a8, 0x0000d3a8}, |
4263 | { 0x00009adc, 0x00000000, 0x00000000, 0x0000d3a8, 0x0000d3a8, 0x0000d3a8 }, | 4258 | {0x00009ae0, 0x00000000, 0x00000000, 0x0000d3ac, 0x0000d3ac, 0x0000d3ac}, |
4264 | { 0x00009ae0, 0x00000000, 0x00000000, 0x0000d3ac, 0x0000d3ac, 0x0000d3ac }, | 4259 | {0x00009ae4, 0x00000000, 0x00000000, 0x0000d3b0, 0x0000d3b0, 0x0000d3b0}, |
4265 | { 0x00009ae4, 0x00000000, 0x00000000, 0x0000d3b0, 0x0000d3b0, 0x0000d3b0 }, | 4260 | {0x00009ae8, 0x00000000, 0x00000000, 0x0000f380, 0x0000f380, 0x0000f380}, |
4266 | { 0x00009ae8, 0x00000000, 0x00000000, 0x0000f380, 0x0000f380, 0x0000f380 }, | 4261 | {0x00009aec, 0x00000000, 0x00000000, 0x0000f384, 0x0000f384, 0x0000f384}, |
4267 | { 0x00009aec, 0x00000000, 0x00000000, 0x0000f384, 0x0000f384, 0x0000f384 }, | 4262 | {0x00009af0, 0x00000000, 0x00000000, 0x0000f388, 0x0000f388, 0x0000f388}, |
4268 | { 0x00009af0, 0x00000000, 0x00000000, 0x0000f388, 0x0000f388, 0x0000f388 }, | 4263 | {0x00009af4, 0x00000000, 0x00000000, 0x0000f710, 0x0000f710, 0x0000f710}, |
4269 | { 0x00009af4, 0x00000000, 0x00000000, 0x0000f710, 0x0000f710, 0x0000f710 }, | 4264 | {0x00009af8, 0x00000000, 0x00000000, 0x0000f714, 0x0000f714, 0x0000f714}, |
4270 | { 0x00009af8, 0x00000000, 0x00000000, 0x0000f714, 0x0000f714, 0x0000f714 }, | 4265 | {0x00009afc, 0x00000000, 0x00000000, 0x0000f718, 0x0000f718, 0x0000f718}, |
4271 | { 0x00009afc, 0x00000000, 0x00000000, 0x0000f718, 0x0000f718, 0x0000f718 }, | 4266 | {0x00009b00, 0x00000000, 0x00000000, 0x0000fb10, 0x0000fb10, 0x0000fb10}, |
4272 | { 0x00009b00, 0x00000000, 0x00000000, 0x0000fb10, 0x0000fb10, 0x0000fb10 }, | 4267 | {0x00009b04, 0x00000000, 0x00000000, 0x0000fb14, 0x0000fb14, 0x0000fb14}, |
4273 | { 0x00009b04, 0x00000000, 0x00000000, 0x0000fb14, 0x0000fb14, 0x0000fb14 }, | 4268 | {0x00009b08, 0x00000000, 0x00000000, 0x0000fb18, 0x0000fb18, 0x0000fb18}, |
4274 | { 0x00009b08, 0x00000000, 0x00000000, 0x0000fb18, 0x0000fb18, 0x0000fb18 }, | 4269 | {0x00009b0c, 0x00000000, 0x00000000, 0x0000fb8c, 0x0000fb8c, 0x0000fb8c}, |
4275 | { 0x00009b0c, 0x00000000, 0x00000000, 0x0000fb8c, 0x0000fb8c, 0x0000fb8c }, | 4270 | {0x00009b10, 0x00000000, 0x00000000, 0x0000fb90, 0x0000fb90, 0x0000fb90}, |
4276 | { 0x00009b10, 0x00000000, 0x00000000, 0x0000fb90, 0x0000fb90, 0x0000fb90 }, | 4271 | {0x00009b14, 0x00000000, 0x00000000, 0x0000fb94, 0x0000fb94, 0x0000fb94}, |
4277 | { 0x00009b14, 0x00000000, 0x00000000, 0x0000fb94, 0x0000fb94, 0x0000fb94 }, | 4272 | {0x00009b18, 0x00000000, 0x00000000, 0x0000ff8c, 0x0000ff8c, 0x0000ff8c}, |
4278 | { 0x00009b18, 0x00000000, 0x00000000, 0x0000ff8c, 0x0000ff8c, 0x0000ff8c }, | 4273 | {0x00009b1c, 0x00000000, 0x00000000, 0x0000ff90, 0x0000ff90, 0x0000ff90}, |
4279 | { 0x00009b1c, 0x00000000, 0x00000000, 0x0000ff90, 0x0000ff90, 0x0000ff90 }, | 4274 | {0x00009b20, 0x00000000, 0x00000000, 0x0000ff94, 0x0000ff94, 0x0000ff94}, |
4280 | { 0x00009b20, 0x00000000, 0x00000000, 0x0000ff94, 0x0000ff94, 0x0000ff94 }, | 4275 | {0x00009b24, 0x00000000, 0x00000000, 0x0000ffa0, 0x0000ffa0, 0x0000ffa0}, |
4281 | { 0x00009b24, 0x00000000, 0x00000000, 0x0000ffa0, 0x0000ffa0, 0x0000ffa0 }, | 4276 | {0x00009b28, 0x00000000, 0x00000000, 0x0000ffa4, 0x0000ffa4, 0x0000ffa4}, |
4282 | { 0x00009b28, 0x00000000, 0x00000000, 0x0000ffa4, 0x0000ffa4, 0x0000ffa4 }, | 4277 | {0x00009b2c, 0x00000000, 0x00000000, 0x0000ffa8, 0x0000ffa8, 0x0000ffa8}, |
4283 | { 0x00009b2c, 0x00000000, 0x00000000, 0x0000ffa8, 0x0000ffa8, 0x0000ffa8 }, | 4278 | {0x00009b30, 0x00000000, 0x00000000, 0x0000ffac, 0x0000ffac, 0x0000ffac}, |
4284 | { 0x00009b30, 0x00000000, 0x00000000, 0x0000ffac, 0x0000ffac, 0x0000ffac }, | 4279 | {0x00009b34, 0x00000000, 0x00000000, 0x0000ffb0, 0x0000ffb0, 0x0000ffb0}, |
4285 | { 0x00009b34, 0x00000000, 0x00000000, 0x0000ffb0, 0x0000ffb0, 0x0000ffb0 }, | 4280 | {0x00009b38, 0x00000000, 0x00000000, 0x0000ffb4, 0x0000ffb4, 0x0000ffb4}, |
4286 | { 0x00009b38, 0x00000000, 0x00000000, 0x0000ffb4, 0x0000ffb4, 0x0000ffb4 }, | 4281 | {0x00009b3c, 0x00000000, 0x00000000, 0x0000ffa1, 0x0000ffa1, 0x0000ffa1}, |
4287 | { 0x00009b3c, 0x00000000, 0x00000000, 0x0000ffa1, 0x0000ffa1, 0x0000ffa1 }, | 4282 | {0x00009b40, 0x00000000, 0x00000000, 0x0000ffa5, 0x0000ffa5, 0x0000ffa5}, |
4288 | { 0x00009b40, 0x00000000, 0x00000000, 0x0000ffa5, 0x0000ffa5, 0x0000ffa5 }, | 4283 | {0x00009b44, 0x00000000, 0x00000000, 0x0000ffa9, 0x0000ffa9, 0x0000ffa9}, |
4289 | { 0x00009b44, 0x00000000, 0x00000000, 0x0000ffa9, 0x0000ffa9, 0x0000ffa9 }, | 4284 | {0x00009b48, 0x00000000, 0x00000000, 0x0000ffad, 0x0000ffad, 0x0000ffad}, |
4290 | { 0x00009b48, 0x00000000, 0x00000000, 0x0000ffad, 0x0000ffad, 0x0000ffad }, | 4285 | {0x00009b4c, 0x00000000, 0x00000000, 0x0000ffb1, 0x0000ffb1, 0x0000ffb1}, |
4291 | { 0x00009b4c, 0x00000000, 0x00000000, 0x0000ffb1, 0x0000ffb1, 0x0000ffb1 }, | 4286 | {0x00009b50, 0x00000000, 0x00000000, 0x0000ffb5, 0x0000ffb5, 0x0000ffb5}, |
4292 | { 0x00009b50, 0x00000000, 0x00000000, 0x0000ffb5, 0x0000ffb5, 0x0000ffb5 }, | 4287 | {0x00009b54, 0x00000000, 0x00000000, 0x0000ffb9, 0x0000ffb9, 0x0000ffb9}, |
4293 | { 0x00009b54, 0x00000000, 0x00000000, 0x0000ffb9, 0x0000ffb9, 0x0000ffb9 }, | 4288 | {0x00009b58, 0x00000000, 0x00000000, 0x0000ffc5, 0x0000ffc5, 0x0000ffc5}, |
4294 | { 0x00009b58, 0x00000000, 0x00000000, 0x0000ffc5, 0x0000ffc5, 0x0000ffc5 }, | 4289 | {0x00009b5c, 0x00000000, 0x00000000, 0x0000ffc9, 0x0000ffc9, 0x0000ffc9}, |
4295 | { 0x00009b5c, 0x00000000, 0x00000000, 0x0000ffc9, 0x0000ffc9, 0x0000ffc9 }, | 4290 | {0x00009b60, 0x00000000, 0x00000000, 0x0000ffcd, 0x0000ffcd, 0x0000ffcd}, |
4296 | { 0x00009b60, 0x00000000, 0x00000000, 0x0000ffcd, 0x0000ffcd, 0x0000ffcd }, | 4291 | {0x00009b64, 0x00000000, 0x00000000, 0x0000ffd1, 0x0000ffd1, 0x0000ffd1}, |
4297 | { 0x00009b64, 0x00000000, 0x00000000, 0x0000ffd1, 0x0000ffd1, 0x0000ffd1 }, | 4292 | {0x00009b68, 0x00000000, 0x00000000, 0x0000ffd5, 0x0000ffd5, 0x0000ffd5}, |
4298 | { 0x00009b68, 0x00000000, 0x00000000, 0x0000ffd5, 0x0000ffd5, 0x0000ffd5 }, | 4293 | {0x00009b6c, 0x00000000, 0x00000000, 0x0000ffc2, 0x0000ffc2, 0x0000ffc2}, |
4299 | { 0x00009b6c, 0x00000000, 0x00000000, 0x0000ffc2, 0x0000ffc2, 0x0000ffc2 }, | 4294 | {0x00009b70, 0x00000000, 0x00000000, 0x0000ffc6, 0x0000ffc6, 0x0000ffc6}, |
4300 | { 0x00009b70, 0x00000000, 0x00000000, 0x0000ffc6, 0x0000ffc6, 0x0000ffc6 }, | 4295 | {0x00009b74, 0x00000000, 0x00000000, 0x0000ffca, 0x0000ffca, 0x0000ffca}, |
4301 | { 0x00009b74, 0x00000000, 0x00000000, 0x0000ffca, 0x0000ffca, 0x0000ffca }, | 4296 | {0x00009b78, 0x00000000, 0x00000000, 0x0000ffce, 0x0000ffce, 0x0000ffce}, |
4302 | { 0x00009b78, 0x00000000, 0x00000000, 0x0000ffce, 0x0000ffce, 0x0000ffce }, | 4297 | {0x00009b7c, 0x00000000, 0x00000000, 0x0000ffd2, 0x0000ffd2, 0x0000ffd2}, |
4303 | { 0x00009b7c, 0x00000000, 0x00000000, 0x0000ffd2, 0x0000ffd2, 0x0000ffd2 }, | 4298 | {0x00009b80, 0x00000000, 0x00000000, 0x0000ffd6, 0x0000ffd6, 0x0000ffd6}, |
4304 | { 0x00009b80, 0x00000000, 0x00000000, 0x0000ffd6, 0x0000ffd6, 0x0000ffd6 }, | 4299 | {0x00009b84, 0x00000000, 0x00000000, 0x0000ffda, 0x0000ffda, 0x0000ffda}, |
4305 | { 0x00009b84, 0x00000000, 0x00000000, 0x0000ffda, 0x0000ffda, 0x0000ffda }, | 4300 | {0x00009b88, 0x00000000, 0x00000000, 0x0000ffc7, 0x0000ffc7, 0x0000ffc7}, |
4306 | { 0x00009b88, 0x00000000, 0x00000000, 0x0000ffc7, 0x0000ffc7, 0x0000ffc7 }, | 4301 | {0x00009b8c, 0x00000000, 0x00000000, 0x0000ffcb, 0x0000ffcb, 0x0000ffcb}, |
4307 | { 0x00009b8c, 0x00000000, 0x00000000, 0x0000ffcb, 0x0000ffcb, 0x0000ffcb }, | 4302 | {0x00009b90, 0x00000000, 0x00000000, 0x0000ffcf, 0x0000ffcf, 0x0000ffcf}, |
4308 | { 0x00009b90, 0x00000000, 0x00000000, 0x0000ffcf, 0x0000ffcf, 0x0000ffcf }, | 4303 | {0x00009b94, 0x00000000, 0x00000000, 0x0000ffd3, 0x0000ffd3, 0x0000ffd3}, |
4309 | { 0x00009b94, 0x00000000, 0x00000000, 0x0000ffd3, 0x0000ffd3, 0x0000ffd3 }, | 4304 | {0x00009b98, 0x00000000, 0x00000000, 0x0000ffd7, 0x0000ffd7, 0x0000ffd7}, |
4310 | { 0x00009b98, 0x00000000, 0x00000000, 0x0000ffd7, 0x0000ffd7, 0x0000ffd7 }, | 4305 | {0x00009b9c, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4311 | { 0x00009b9c, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4306 | {0x00009ba0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4312 | { 0x00009ba0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4307 | {0x00009ba4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4313 | { 0x00009ba4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4308 | {0x00009ba8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4314 | { 0x00009ba8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4309 | {0x00009bac, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4315 | { 0x00009bac, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4310 | {0x00009bb0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4316 | { 0x00009bb0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4311 | {0x00009bb4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4317 | { 0x00009bb4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4312 | {0x00009bb8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4318 | { 0x00009bb8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4313 | {0x00009bbc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4319 | { 0x00009bbc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4314 | {0x00009bc0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4320 | { 0x00009bc0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4315 | {0x00009bc4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4321 | { 0x00009bc4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4316 | {0x00009bc8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4322 | { 0x00009bc8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4317 | {0x00009bcc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4323 | { 0x00009bcc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4318 | {0x00009bd0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4324 | { 0x00009bd0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4319 | {0x00009bd4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4325 | { 0x00009bd4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4320 | {0x00009bd8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4326 | { 0x00009bd8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4321 | {0x00009bdc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4327 | { 0x00009bdc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4322 | {0x00009be0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4328 | { 0x00009be0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4323 | {0x00009be4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4329 | { 0x00009be4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4324 | {0x00009be8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4330 | { 0x00009be8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4325 | {0x00009bec, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4331 | { 0x00009bec, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4326 | {0x00009bf0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4332 | { 0x00009bf0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4327 | {0x00009bf4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4333 | { 0x00009bf4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4328 | {0x00009bf8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4334 | { 0x00009bf8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4329 | {0x00009bfc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4335 | { 0x00009bfc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4330 | {0x0000aa00, 0x00000000, 0x00000000, 0x0000a120, 0x0000a120, 0x0000a120}, |
4336 | { 0x0000aa00, 0x00000000, 0x00000000, 0x0000a120, 0x0000a120, 0x0000a120 }, | 4331 | {0x0000aa04, 0x00000000, 0x00000000, 0x0000a124, 0x0000a124, 0x0000a124}, |
4337 | { 0x0000aa04, 0x00000000, 0x00000000, 0x0000a124, 0x0000a124, 0x0000a124 }, | 4332 | {0x0000aa08, 0x00000000, 0x00000000, 0x0000a128, 0x0000a128, 0x0000a128}, |
4338 | { 0x0000aa08, 0x00000000, 0x00000000, 0x0000a128, 0x0000a128, 0x0000a128 }, | 4333 | {0x0000aa0c, 0x00000000, 0x00000000, 0x0000a12c, 0x0000a12c, 0x0000a12c}, |
4339 | { 0x0000aa0c, 0x00000000, 0x00000000, 0x0000a12c, 0x0000a12c, 0x0000a12c }, | 4334 | {0x0000aa10, 0x00000000, 0x00000000, 0x0000a130, 0x0000a130, 0x0000a130}, |
4340 | { 0x0000aa10, 0x00000000, 0x00000000, 0x0000a130, 0x0000a130, 0x0000a130 }, | 4335 | {0x0000aa14, 0x00000000, 0x00000000, 0x0000a194, 0x0000a194, 0x0000a194}, |
4341 | { 0x0000aa14, 0x00000000, 0x00000000, 0x0000a194, 0x0000a194, 0x0000a194 }, | 4336 | {0x0000aa18, 0x00000000, 0x00000000, 0x0000a198, 0x0000a198, 0x0000a198}, |
4342 | { 0x0000aa18, 0x00000000, 0x00000000, 0x0000a198, 0x0000a198, 0x0000a198 }, | 4337 | {0x0000aa1c, 0x00000000, 0x00000000, 0x0000a20c, 0x0000a20c, 0x0000a20c}, |
4343 | { 0x0000aa1c, 0x00000000, 0x00000000, 0x0000a20c, 0x0000a20c, 0x0000a20c }, | 4338 | {0x0000aa20, 0x00000000, 0x00000000, 0x0000a210, 0x0000a210, 0x0000a210}, |
4344 | { 0x0000aa20, 0x00000000, 0x00000000, 0x0000a210, 0x0000a210, 0x0000a210 }, | 4339 | {0x0000aa24, 0x00000000, 0x00000000, 0x0000a284, 0x0000a284, 0x0000a284}, |
4345 | { 0x0000aa24, 0x00000000, 0x00000000, 0x0000a284, 0x0000a284, 0x0000a284 }, | 4340 | {0x0000aa28, 0x00000000, 0x00000000, 0x0000a288, 0x0000a288, 0x0000a288}, |
4346 | { 0x0000aa28, 0x00000000, 0x00000000, 0x0000a288, 0x0000a288, 0x0000a288 }, | 4341 | {0x0000aa2c, 0x00000000, 0x00000000, 0x0000a28c, 0x0000a28c, 0x0000a28c}, |
4347 | { 0x0000aa2c, 0x00000000, 0x00000000, 0x0000a28c, 0x0000a28c, 0x0000a28c }, | 4342 | {0x0000aa30, 0x00000000, 0x00000000, 0x0000a290, 0x0000a290, 0x0000a290}, |
4348 | { 0x0000aa30, 0x00000000, 0x00000000, 0x0000a290, 0x0000a290, 0x0000a290 }, | 4343 | {0x0000aa34, 0x00000000, 0x00000000, 0x0000a294, 0x0000a294, 0x0000a294}, |
4349 | { 0x0000aa34, 0x00000000, 0x00000000, 0x0000a294, 0x0000a294, 0x0000a294 }, | 4344 | {0x0000aa38, 0x00000000, 0x00000000, 0x0000a2a0, 0x0000a2a0, 0x0000a2a0}, |
4350 | { 0x0000aa38, 0x00000000, 0x00000000, 0x0000a2a0, 0x0000a2a0, 0x0000a2a0 }, | 4345 | {0x0000aa3c, 0x00000000, 0x00000000, 0x0000a2a4, 0x0000a2a4, 0x0000a2a4}, |
4351 | { 0x0000aa3c, 0x00000000, 0x00000000, 0x0000a2a4, 0x0000a2a4, 0x0000a2a4 }, | 4346 | {0x0000aa40, 0x00000000, 0x00000000, 0x0000a2a8, 0x0000a2a8, 0x0000a2a8}, |
4352 | { 0x0000aa40, 0x00000000, 0x00000000, 0x0000a2a8, 0x0000a2a8, 0x0000a2a8 }, | 4347 | {0x0000aa44, 0x00000000, 0x00000000, 0x0000a2ac, 0x0000a2ac, 0x0000a2ac}, |
4353 | { 0x0000aa44, 0x00000000, 0x00000000, 0x0000a2ac, 0x0000a2ac, 0x0000a2ac }, | 4348 | {0x0000aa48, 0x00000000, 0x00000000, 0x0000a2b0, 0x0000a2b0, 0x0000a2b0}, |
4354 | { 0x0000aa48, 0x00000000, 0x00000000, 0x0000a2b0, 0x0000a2b0, 0x0000a2b0 }, | 4349 | {0x0000aa4c, 0x00000000, 0x00000000, 0x0000a2b4, 0x0000a2b4, 0x0000a2b4}, |
4355 | { 0x0000aa4c, 0x00000000, 0x00000000, 0x0000a2b4, 0x0000a2b4, 0x0000a2b4 }, | 4350 | {0x0000aa50, 0x00000000, 0x00000000, 0x0000a2b8, 0x0000a2b8, 0x0000a2b8}, |
4356 | { 0x0000aa50, 0x00000000, 0x00000000, 0x0000a2b8, 0x0000a2b8, 0x0000a2b8 }, | 4351 | {0x0000aa54, 0x00000000, 0x00000000, 0x0000a2c4, 0x0000a2c4, 0x0000a2c4}, |
4357 | { 0x0000aa54, 0x00000000, 0x00000000, 0x0000a2c4, 0x0000a2c4, 0x0000a2c4 }, | 4352 | {0x0000aa58, 0x00000000, 0x00000000, 0x0000a708, 0x0000a708, 0x0000a708}, |
4358 | { 0x0000aa58, 0x00000000, 0x00000000, 0x0000a708, 0x0000a708, 0x0000a708 }, | 4353 | {0x0000aa5c, 0x00000000, 0x00000000, 0x0000a70c, 0x0000a70c, 0x0000a70c}, |
4359 | { 0x0000aa5c, 0x00000000, 0x00000000, 0x0000a70c, 0x0000a70c, 0x0000a70c }, | 4354 | {0x0000aa60, 0x00000000, 0x00000000, 0x0000a710, 0x0000a710, 0x0000a710}, |
4360 | { 0x0000aa60, 0x00000000, 0x00000000, 0x0000a710, 0x0000a710, 0x0000a710 }, | 4355 | {0x0000aa64, 0x00000000, 0x00000000, 0x0000ab04, 0x0000ab04, 0x0000ab04}, |
4361 | { 0x0000aa64, 0x00000000, 0x00000000, 0x0000ab04, 0x0000ab04, 0x0000ab04 }, | 4356 | {0x0000aa68, 0x00000000, 0x00000000, 0x0000ab08, 0x0000ab08, 0x0000ab08}, |
4362 | { 0x0000aa68, 0x00000000, 0x00000000, 0x0000ab08, 0x0000ab08, 0x0000ab08 }, | 4357 | {0x0000aa6c, 0x00000000, 0x00000000, 0x0000ab0c, 0x0000ab0c, 0x0000ab0c}, |
4363 | { 0x0000aa6c, 0x00000000, 0x00000000, 0x0000ab0c, 0x0000ab0c, 0x0000ab0c }, | 4358 | {0x0000aa70, 0x00000000, 0x00000000, 0x0000ab10, 0x0000ab10, 0x0000ab10}, |
4364 | { 0x0000aa70, 0x00000000, 0x00000000, 0x0000ab10, 0x0000ab10, 0x0000ab10 }, | 4359 | {0x0000aa74, 0x00000000, 0x00000000, 0x0000ab14, 0x0000ab14, 0x0000ab14}, |
4365 | { 0x0000aa74, 0x00000000, 0x00000000, 0x0000ab14, 0x0000ab14, 0x0000ab14 }, | 4360 | {0x0000aa78, 0x00000000, 0x00000000, 0x0000ab18, 0x0000ab18, 0x0000ab18}, |
4366 | { 0x0000aa78, 0x00000000, 0x00000000, 0x0000ab18, 0x0000ab18, 0x0000ab18 }, | 4361 | {0x0000aa7c, 0x00000000, 0x00000000, 0x0000ab8c, 0x0000ab8c, 0x0000ab8c}, |
4367 | { 0x0000aa7c, 0x00000000, 0x00000000, 0x0000ab8c, 0x0000ab8c, 0x0000ab8c }, | 4362 | {0x0000aa80, 0x00000000, 0x00000000, 0x0000ab90, 0x0000ab90, 0x0000ab90}, |
4368 | { 0x0000aa80, 0x00000000, 0x00000000, 0x0000ab90, 0x0000ab90, 0x0000ab90 }, | 4363 | {0x0000aa84, 0x00000000, 0x00000000, 0x0000ab94, 0x0000ab94, 0x0000ab94}, |
4369 | { 0x0000aa84, 0x00000000, 0x00000000, 0x0000ab94, 0x0000ab94, 0x0000ab94 }, | 4364 | {0x0000aa88, 0x00000000, 0x00000000, 0x0000ab98, 0x0000ab98, 0x0000ab98}, |
4370 | { 0x0000aa88, 0x00000000, 0x00000000, 0x0000ab98, 0x0000ab98, 0x0000ab98 }, | 4365 | {0x0000aa8c, 0x00000000, 0x00000000, 0x0000aba4, 0x0000aba4, 0x0000aba4}, |
4371 | { 0x0000aa8c, 0x00000000, 0x00000000, 0x0000aba4, 0x0000aba4, 0x0000aba4 }, | 4366 | {0x0000aa90, 0x00000000, 0x00000000, 0x0000aba8, 0x0000aba8, 0x0000aba8}, |
4372 | { 0x0000aa90, 0x00000000, 0x00000000, 0x0000aba8, 0x0000aba8, 0x0000aba8 }, | 4367 | {0x0000aa94, 0x00000000, 0x00000000, 0x0000cb04, 0x0000cb04, 0x0000cb04}, |
4373 | { 0x0000aa94, 0x00000000, 0x00000000, 0x0000cb04, 0x0000cb04, 0x0000cb04 }, | 4368 | {0x0000aa98, 0x00000000, 0x00000000, 0x0000cb08, 0x0000cb08, 0x0000cb08}, |
4374 | { 0x0000aa98, 0x00000000, 0x00000000, 0x0000cb08, 0x0000cb08, 0x0000cb08 }, | 4369 | {0x0000aa9c, 0x00000000, 0x00000000, 0x0000cb0c, 0x0000cb0c, 0x0000cb0c}, |
4375 | { 0x0000aa9c, 0x00000000, 0x00000000, 0x0000cb0c, 0x0000cb0c, 0x0000cb0c }, | 4370 | {0x0000aaa0, 0x00000000, 0x00000000, 0x0000cb10, 0x0000cb10, 0x0000cb10}, |
4376 | { 0x0000aaa0, 0x00000000, 0x00000000, 0x0000cb10, 0x0000cb10, 0x0000cb10 }, | 4371 | {0x0000aaa4, 0x00000000, 0x00000000, 0x0000cb14, 0x0000cb14, 0x0000cb14}, |
4377 | { 0x0000aaa4, 0x00000000, 0x00000000, 0x0000cb14, 0x0000cb14, 0x0000cb14 }, | 4372 | {0x0000aaa8, 0x00000000, 0x00000000, 0x0000cb18, 0x0000cb18, 0x0000cb18}, |
4378 | { 0x0000aaa8, 0x00000000, 0x00000000, 0x0000cb18, 0x0000cb18, 0x0000cb18 }, | 4373 | {0x0000aaac, 0x00000000, 0x00000000, 0x0000cb8c, 0x0000cb8c, 0x0000cb8c}, |
4379 | { 0x0000aaac, 0x00000000, 0x00000000, 0x0000cb8c, 0x0000cb8c, 0x0000cb8c }, | 4374 | {0x0000aab0, 0x00000000, 0x00000000, 0x0000cb90, 0x0000cb90, 0x0000cb90}, |
4380 | { 0x0000aab0, 0x00000000, 0x00000000, 0x0000cb90, 0x0000cb90, 0x0000cb90 }, | 4375 | {0x0000aab4, 0x00000000, 0x00000000, 0x0000cf18, 0x0000cf18, 0x0000cf18}, |
4381 | { 0x0000aab4, 0x00000000, 0x00000000, 0x0000cf18, 0x0000cf18, 0x0000cf18 }, | 4376 | {0x0000aab8, 0x00000000, 0x00000000, 0x0000cf24, 0x0000cf24, 0x0000cf24}, |
4382 | { 0x0000aab8, 0x00000000, 0x00000000, 0x0000cf24, 0x0000cf24, 0x0000cf24 }, | 4377 | {0x0000aabc, 0x00000000, 0x00000000, 0x0000cf28, 0x0000cf28, 0x0000cf28}, |
4383 | { 0x0000aabc, 0x00000000, 0x00000000, 0x0000cf28, 0x0000cf28, 0x0000cf28 }, | 4378 | {0x0000aac0, 0x00000000, 0x00000000, 0x0000d314, 0x0000d314, 0x0000d314}, |
4384 | { 0x0000aac0, 0x00000000, 0x00000000, 0x0000d314, 0x0000d314, 0x0000d314 }, | 4379 | {0x0000aac4, 0x00000000, 0x00000000, 0x0000d318, 0x0000d318, 0x0000d318}, |
4385 | { 0x0000aac4, 0x00000000, 0x00000000, 0x0000d318, 0x0000d318, 0x0000d318 }, | 4380 | {0x0000aac8, 0x00000000, 0x00000000, 0x0000d38c, 0x0000d38c, 0x0000d38c}, |
4386 | { 0x0000aac8, 0x00000000, 0x00000000, 0x0000d38c, 0x0000d38c, 0x0000d38c }, | 4381 | {0x0000aacc, 0x00000000, 0x00000000, 0x0000d390, 0x0000d390, 0x0000d390}, |
4387 | { 0x0000aacc, 0x00000000, 0x00000000, 0x0000d390, 0x0000d390, 0x0000d390 }, | 4382 | {0x0000aad0, 0x00000000, 0x00000000, 0x0000d394, 0x0000d394, 0x0000d394}, |
4388 | { 0x0000aad0, 0x00000000, 0x00000000, 0x0000d394, 0x0000d394, 0x0000d394 }, | 4383 | {0x0000aad4, 0x00000000, 0x00000000, 0x0000d398, 0x0000d398, 0x0000d398}, |
4389 | { 0x0000aad4, 0x00000000, 0x00000000, 0x0000d398, 0x0000d398, 0x0000d398 }, | 4384 | {0x0000aad8, 0x00000000, 0x00000000, 0x0000d3a4, 0x0000d3a4, 0x0000d3a4}, |
4390 | { 0x0000aad8, 0x00000000, 0x00000000, 0x0000d3a4, 0x0000d3a4, 0x0000d3a4 }, | 4385 | {0x0000aadc, 0x00000000, 0x00000000, 0x0000d3a8, 0x0000d3a8, 0x0000d3a8}, |
4391 | { 0x0000aadc, 0x00000000, 0x00000000, 0x0000d3a8, 0x0000d3a8, 0x0000d3a8 }, | 4386 | {0x0000aae0, 0x00000000, 0x00000000, 0x0000d3ac, 0x0000d3ac, 0x0000d3ac}, |
4392 | { 0x0000aae0, 0x00000000, 0x00000000, 0x0000d3ac, 0x0000d3ac, 0x0000d3ac }, | 4387 | {0x0000aae4, 0x00000000, 0x00000000, 0x0000d3b0, 0x0000d3b0, 0x0000d3b0}, |
4393 | { 0x0000aae4, 0x00000000, 0x00000000, 0x0000d3b0, 0x0000d3b0, 0x0000d3b0 }, | 4388 | {0x0000aae8, 0x00000000, 0x00000000, 0x0000f380, 0x0000f380, 0x0000f380}, |
4394 | { 0x0000aae8, 0x00000000, 0x00000000, 0x0000f380, 0x0000f380, 0x0000f380 }, | 4389 | {0x0000aaec, 0x00000000, 0x00000000, 0x0000f384, 0x0000f384, 0x0000f384}, |
4395 | { 0x0000aaec, 0x00000000, 0x00000000, 0x0000f384, 0x0000f384, 0x0000f384 }, | 4390 | {0x0000aaf0, 0x00000000, 0x00000000, 0x0000f388, 0x0000f388, 0x0000f388}, |
4396 | { 0x0000aaf0, 0x00000000, 0x00000000, 0x0000f388, 0x0000f388, 0x0000f388 }, | 4391 | {0x0000aaf4, 0x00000000, 0x00000000, 0x0000f710, 0x0000f710, 0x0000f710}, |
4397 | { 0x0000aaf4, 0x00000000, 0x00000000, 0x0000f710, 0x0000f710, 0x0000f710 }, | 4392 | {0x0000aaf8, 0x00000000, 0x00000000, 0x0000f714, 0x0000f714, 0x0000f714}, |
4398 | { 0x0000aaf8, 0x00000000, 0x00000000, 0x0000f714, 0x0000f714, 0x0000f714 }, | 4393 | {0x0000aafc, 0x00000000, 0x00000000, 0x0000f718, 0x0000f718, 0x0000f718}, |
4399 | { 0x0000aafc, 0x00000000, 0x00000000, 0x0000f718, 0x0000f718, 0x0000f718 }, | 4394 | {0x0000ab00, 0x00000000, 0x00000000, 0x0000fb10, 0x0000fb10, 0x0000fb10}, |
4400 | { 0x0000ab00, 0x00000000, 0x00000000, 0x0000fb10, 0x0000fb10, 0x0000fb10 }, | 4395 | {0x0000ab04, 0x00000000, 0x00000000, 0x0000fb14, 0x0000fb14, 0x0000fb14}, |
4401 | { 0x0000ab04, 0x00000000, 0x00000000, 0x0000fb14, 0x0000fb14, 0x0000fb14 }, | 4396 | {0x0000ab08, 0x00000000, 0x00000000, 0x0000fb18, 0x0000fb18, 0x0000fb18}, |
4402 | { 0x0000ab08, 0x00000000, 0x00000000, 0x0000fb18, 0x0000fb18, 0x0000fb18 }, | 4397 | {0x0000ab0c, 0x00000000, 0x00000000, 0x0000fb8c, 0x0000fb8c, 0x0000fb8c}, |
4403 | { 0x0000ab0c, 0x00000000, 0x00000000, 0x0000fb8c, 0x0000fb8c, 0x0000fb8c }, | 4398 | {0x0000ab10, 0x00000000, 0x00000000, 0x0000fb90, 0x0000fb90, 0x0000fb90}, |
4404 | { 0x0000ab10, 0x00000000, 0x00000000, 0x0000fb90, 0x0000fb90, 0x0000fb90 }, | 4399 | {0x0000ab14, 0x00000000, 0x00000000, 0x0000fb94, 0x0000fb94, 0x0000fb94}, |
4405 | { 0x0000ab14, 0x00000000, 0x00000000, 0x0000fb94, 0x0000fb94, 0x0000fb94 }, | 4400 | {0x0000ab18, 0x00000000, 0x00000000, 0x0000ff8c, 0x0000ff8c, 0x0000ff8c}, |
4406 | { 0x0000ab18, 0x00000000, 0x00000000, 0x0000ff8c, 0x0000ff8c, 0x0000ff8c }, | 4401 | {0x0000ab1c, 0x00000000, 0x00000000, 0x0000ff90, 0x0000ff90, 0x0000ff90}, |
4407 | { 0x0000ab1c, 0x00000000, 0x00000000, 0x0000ff90, 0x0000ff90, 0x0000ff90 }, | 4402 | {0x0000ab20, 0x00000000, 0x00000000, 0x0000ff94, 0x0000ff94, 0x0000ff94}, |
4408 | { 0x0000ab20, 0x00000000, 0x00000000, 0x0000ff94, 0x0000ff94, 0x0000ff94 }, | 4403 | {0x0000ab24, 0x00000000, 0x00000000, 0x0000ffa0, 0x0000ffa0, 0x0000ffa0}, |
4409 | { 0x0000ab24, 0x00000000, 0x00000000, 0x0000ffa0, 0x0000ffa0, 0x0000ffa0 }, | 4404 | {0x0000ab28, 0x00000000, 0x00000000, 0x0000ffa4, 0x0000ffa4, 0x0000ffa4}, |
4410 | { 0x0000ab28, 0x00000000, 0x00000000, 0x0000ffa4, 0x0000ffa4, 0x0000ffa4 }, | 4405 | {0x0000ab2c, 0x00000000, 0x00000000, 0x0000ffa8, 0x0000ffa8, 0x0000ffa8}, |
4411 | { 0x0000ab2c, 0x00000000, 0x00000000, 0x0000ffa8, 0x0000ffa8, 0x0000ffa8 }, | 4406 | {0x0000ab30, 0x00000000, 0x00000000, 0x0000ffac, 0x0000ffac, 0x0000ffac}, |
4412 | { 0x0000ab30, 0x00000000, 0x00000000, 0x0000ffac, 0x0000ffac, 0x0000ffac }, | 4407 | {0x0000ab34, 0x00000000, 0x00000000, 0x0000ffb0, 0x0000ffb0, 0x0000ffb0}, |
4413 | { 0x0000ab34, 0x00000000, 0x00000000, 0x0000ffb0, 0x0000ffb0, 0x0000ffb0 }, | 4408 | {0x0000ab38, 0x00000000, 0x00000000, 0x0000ffb4, 0x0000ffb4, 0x0000ffb4}, |
4414 | { 0x0000ab38, 0x00000000, 0x00000000, 0x0000ffb4, 0x0000ffb4, 0x0000ffb4 }, | 4409 | {0x0000ab3c, 0x00000000, 0x00000000, 0x0000ffa1, 0x0000ffa1, 0x0000ffa1}, |
4415 | { 0x0000ab3c, 0x00000000, 0x00000000, 0x0000ffa1, 0x0000ffa1, 0x0000ffa1 }, | 4410 | {0x0000ab40, 0x00000000, 0x00000000, 0x0000ffa5, 0x0000ffa5, 0x0000ffa5}, |
4416 | { 0x0000ab40, 0x00000000, 0x00000000, 0x0000ffa5, 0x0000ffa5, 0x0000ffa5 }, | 4411 | {0x0000ab44, 0x00000000, 0x00000000, 0x0000ffa9, 0x0000ffa9, 0x0000ffa9}, |
4417 | { 0x0000ab44, 0x00000000, 0x00000000, 0x0000ffa9, 0x0000ffa9, 0x0000ffa9 }, | 4412 | {0x0000ab48, 0x00000000, 0x00000000, 0x0000ffad, 0x0000ffad, 0x0000ffad}, |
4418 | { 0x0000ab48, 0x00000000, 0x00000000, 0x0000ffad, 0x0000ffad, 0x0000ffad }, | 4413 | {0x0000ab4c, 0x00000000, 0x00000000, 0x0000ffb1, 0x0000ffb1, 0x0000ffb1}, |
4419 | { 0x0000ab4c, 0x00000000, 0x00000000, 0x0000ffb1, 0x0000ffb1, 0x0000ffb1 }, | 4414 | {0x0000ab50, 0x00000000, 0x00000000, 0x0000ffb5, 0x0000ffb5, 0x0000ffb5}, |
4420 | { 0x0000ab50, 0x00000000, 0x00000000, 0x0000ffb5, 0x0000ffb5, 0x0000ffb5 }, | 4415 | {0x0000ab54, 0x00000000, 0x00000000, 0x0000ffb9, 0x0000ffb9, 0x0000ffb9}, |
4421 | { 0x0000ab54, 0x00000000, 0x00000000, 0x0000ffb9, 0x0000ffb9, 0x0000ffb9 }, | 4416 | {0x0000ab58, 0x00000000, 0x00000000, 0x0000ffc5, 0x0000ffc5, 0x0000ffc5}, |
4422 | { 0x0000ab58, 0x00000000, 0x00000000, 0x0000ffc5, 0x0000ffc5, 0x0000ffc5 }, | 4417 | {0x0000ab5c, 0x00000000, 0x00000000, 0x0000ffc9, 0x0000ffc9, 0x0000ffc9}, |
4423 | { 0x0000ab5c, 0x00000000, 0x00000000, 0x0000ffc9, 0x0000ffc9, 0x0000ffc9 }, | 4418 | {0x0000ab60, 0x00000000, 0x00000000, 0x0000ffcd, 0x0000ffcd, 0x0000ffcd}, |
4424 | { 0x0000ab60, 0x00000000, 0x00000000, 0x0000ffcd, 0x0000ffcd, 0x0000ffcd }, | 4419 | {0x0000ab64, 0x00000000, 0x00000000, 0x0000ffd1, 0x0000ffd1, 0x0000ffd1}, |
4425 | { 0x0000ab64, 0x00000000, 0x00000000, 0x0000ffd1, 0x0000ffd1, 0x0000ffd1 }, | 4420 | {0x0000ab68, 0x00000000, 0x00000000, 0x0000ffd5, 0x0000ffd5, 0x0000ffd5}, |
4426 | { 0x0000ab68, 0x00000000, 0x00000000, 0x0000ffd5, 0x0000ffd5, 0x0000ffd5 }, | 4421 | {0x0000ab6c, 0x00000000, 0x00000000, 0x0000ffc2, 0x0000ffc2, 0x0000ffc2}, |
4427 | { 0x0000ab6c, 0x00000000, 0x00000000, 0x0000ffc2, 0x0000ffc2, 0x0000ffc2 }, | 4422 | {0x0000ab70, 0x00000000, 0x00000000, 0x0000ffc6, 0x0000ffc6, 0x0000ffc6}, |
4428 | { 0x0000ab70, 0x00000000, 0x00000000, 0x0000ffc6, 0x0000ffc6, 0x0000ffc6 }, | 4423 | {0x0000ab74, 0x00000000, 0x00000000, 0x0000ffca, 0x0000ffca, 0x0000ffca}, |
4429 | { 0x0000ab74, 0x00000000, 0x00000000, 0x0000ffca, 0x0000ffca, 0x0000ffca }, | 4424 | {0x0000ab78, 0x00000000, 0x00000000, 0x0000ffce, 0x0000ffce, 0x0000ffce}, |
4430 | { 0x0000ab78, 0x00000000, 0x00000000, 0x0000ffce, 0x0000ffce, 0x0000ffce }, | 4425 | {0x0000ab7c, 0x00000000, 0x00000000, 0x0000ffd2, 0x0000ffd2, 0x0000ffd2}, |
4431 | { 0x0000ab7c, 0x00000000, 0x00000000, 0x0000ffd2, 0x0000ffd2, 0x0000ffd2 }, | 4426 | {0x0000ab80, 0x00000000, 0x00000000, 0x0000ffd6, 0x0000ffd6, 0x0000ffd6}, |
4432 | { 0x0000ab80, 0x00000000, 0x00000000, 0x0000ffd6, 0x0000ffd6, 0x0000ffd6 }, | 4427 | {0x0000ab84, 0x00000000, 0x00000000, 0x0000ffda, 0x0000ffda, 0x0000ffda}, |
4433 | { 0x0000ab84, 0x00000000, 0x00000000, 0x0000ffda, 0x0000ffda, 0x0000ffda }, | 4428 | {0x0000ab88, 0x00000000, 0x00000000, 0x0000ffc7, 0x0000ffc7, 0x0000ffc7}, |
4434 | { 0x0000ab88, 0x00000000, 0x00000000, 0x0000ffc7, 0x0000ffc7, 0x0000ffc7 }, | 4429 | {0x0000ab8c, 0x00000000, 0x00000000, 0x0000ffcb, 0x0000ffcb, 0x0000ffcb}, |
4435 | { 0x0000ab8c, 0x00000000, 0x00000000, 0x0000ffcb, 0x0000ffcb, 0x0000ffcb }, | 4430 | {0x0000ab90, 0x00000000, 0x00000000, 0x0000ffcf, 0x0000ffcf, 0x0000ffcf}, |
4436 | { 0x0000ab90, 0x00000000, 0x00000000, 0x0000ffcf, 0x0000ffcf, 0x0000ffcf }, | 4431 | {0x0000ab94, 0x00000000, 0x00000000, 0x0000ffd3, 0x0000ffd3, 0x0000ffd3}, |
4437 | { 0x0000ab94, 0x00000000, 0x00000000, 0x0000ffd3, 0x0000ffd3, 0x0000ffd3 }, | 4432 | {0x0000ab98, 0x00000000, 0x00000000, 0x0000ffd7, 0x0000ffd7, 0x0000ffd7}, |
4438 | { 0x0000ab98, 0x00000000, 0x00000000, 0x0000ffd7, 0x0000ffd7, 0x0000ffd7 }, | 4433 | {0x0000ab9c, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4439 | { 0x0000ab9c, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4434 | {0x0000aba0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4440 | { 0x0000aba0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4435 | {0x0000aba4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4441 | { 0x0000aba4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4436 | {0x0000aba8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4442 | { 0x0000aba8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4437 | {0x0000abac, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4443 | { 0x0000abac, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4438 | {0x0000abb0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4444 | { 0x0000abb0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4439 | {0x0000abb4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4445 | { 0x0000abb4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4440 | {0x0000abb8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4446 | { 0x0000abb8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4441 | {0x0000abbc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4447 | { 0x0000abbc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4442 | {0x0000abc0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4448 | { 0x0000abc0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4443 | {0x0000abc4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4449 | { 0x0000abc4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4444 | {0x0000abc8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4450 | { 0x0000abc8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4445 | {0x0000abcc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4451 | { 0x0000abcc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4446 | {0x0000abd0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4452 | { 0x0000abd0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4447 | {0x0000abd4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4453 | { 0x0000abd4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4448 | {0x0000abd8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4454 | { 0x0000abd8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4449 | {0x0000abdc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4455 | { 0x0000abdc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4450 | {0x0000abe0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4456 | { 0x0000abe0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4451 | {0x0000abe4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4457 | { 0x0000abe4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4452 | {0x0000abe8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4458 | { 0x0000abe8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4453 | {0x0000abec, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4459 | { 0x0000abec, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4454 | {0x0000abf0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4460 | { 0x0000abf0, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4455 | {0x0000abf4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4461 | { 0x0000abf4, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4456 | {0x0000abf8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4462 | { 0x0000abf8, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4457 | {0x0000abfc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb}, |
4463 | { 0x0000abfc, 0x00000000, 0x00000000, 0x0000ffdb, 0x0000ffdb, 0x0000ffdb }, | 4458 | {0x00009848, 0x00000000, 0x00000000, 0x00001067, 0x00001067, 0x00001067}, |
4464 | { 0x00009848, 0x00000000, 0x00000000, 0x00001067, 0x00001067, 0x00001067 }, | 4459 | {0x0000a848, 0x00000000, 0x00000000, 0x00001067, 0x00001067, 0x00001067}, |
4465 | { 0x0000a848, 0x00000000, 0x00000000, 0x00001067, 0x00001067, 0x00001067 }, | ||
4466 | }; | 4460 | }; |
4467 | 4461 | ||
4468 | static const u32 ar9287PciePhy_clkreq_always_on_L1_9287_1_1[][2] = { | 4462 | static const u32 ar9287PciePhy_clkreq_always_on_L1_9287_1_1[][2] = { |
4469 | {0x00004040, 0x9248fd00 }, | 4463 | /* Addr allmodes */ |
4470 | {0x00004040, 0x24924924 }, | 4464 | {0x00004040, 0x9248fd00}, |
4471 | {0x00004040, 0xa8000019 }, | 4465 | {0x00004040, 0x24924924}, |
4472 | {0x00004040, 0x13160820 }, | 4466 | {0x00004040, 0xa8000019}, |
4473 | {0x00004040, 0xe5980560 }, | 4467 | {0x00004040, 0x13160820}, |
4474 | {0x00004040, 0xc01dcffd }, | 4468 | {0x00004040, 0xe5980560}, |
4475 | {0x00004040, 0x1aaabe41 }, | 4469 | {0x00004040, 0xc01dcffd}, |
4476 | {0x00004040, 0xbe105554 }, | 4470 | {0x00004040, 0x1aaabe41}, |
4477 | {0x00004040, 0x00043007 }, | 4471 | {0x00004040, 0xbe105554}, |
4478 | {0x00004044, 0x00000000 }, | 4472 | {0x00004040, 0x00043007}, |
4473 | {0x00004044, 0x00000000}, | ||
4479 | }; | 4474 | }; |
4480 | 4475 | ||
4481 | static const u32 ar9287PciePhy_clkreq_off_L1_9287_1_1[][2] = { | 4476 | static const u32 ar9287PciePhy_clkreq_off_L1_9287_1_1[][2] = { |
4482 | {0x00004040, 0x9248fd00 }, | 4477 | /* Addr allmodes */ |
4483 | {0x00004040, 0x24924924 }, | 4478 | {0x00004040, 0x9248fd00}, |
4484 | {0x00004040, 0xa8000019 }, | 4479 | {0x00004040, 0x24924924}, |
4485 | {0x00004040, 0x13160820 }, | 4480 | {0x00004040, 0xa8000019}, |
4486 | {0x00004040, 0xe5980560 }, | 4481 | {0x00004040, 0x13160820}, |
4487 | {0x00004040, 0xc01dcffc }, | 4482 | {0x00004040, 0xe5980560}, |
4488 | {0x00004040, 0x1aaabe41 }, | 4483 | {0x00004040, 0xc01dcffc}, |
4489 | {0x00004040, 0xbe105554 }, | 4484 | {0x00004040, 0x1aaabe41}, |
4490 | {0x00004040, 0x00043007 }, | 4485 | {0x00004040, 0xbe105554}, |
4491 | {0x00004044, 0x00000000 }, | 4486 | {0x00004040, 0x00043007}, |
4487 | {0x00004044, 0x00000000}, | ||
4492 | }; | 4488 | }; |
4493 | 4489 | ||
4494 | |||
4495 | /* AR9271 initialization values automaticaly created: 03/31/10 */ | ||
4496 | static const u32 ar9271Modes_9271[][6] = { | 4490 | static const u32 ar9271Modes_9271[][6] = { |
4497 | { 0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0 }, | 4491 | {0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0}, |
4498 | { 0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0 }, | 4492 | {0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0}, |
4499 | { 0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180 }, | 4493 | {0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180}, |
4500 | { 0x000010f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008 }, | 4494 | {0x000010f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008}, |
4501 | { 0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00, 0x06e006e0 }, | 4495 | {0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00, 0x06e006e0}, |
4502 | { 0x0000801c, 0x128d8027, 0x128d804f, 0x12e00057, 0x12e0002b, 0x0988004f }, | 4496 | {0x0000801c, 0x128d8027, 0x128d804f, 0x12e00057, 0x12e0002b, 0x0988004f}, |
4503 | { 0x00008318, 0x00003e80, 0x00007d00, 0x00006880, 0x00003440, 0x00006880 }, | 4497 | {0x00008318, 0x00003e80, 0x00007d00, 0x00006880, 0x00003440, 0x00006880}, |
4504 | { 0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303 }, | 4498 | {0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303}, |
4505 | { 0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200 }, | 4499 | {0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200}, |
4506 | { 0x00009824, 0x01000e0e, 0x01000e0e, 0x01000e0e, 0x01000e0e, 0x01000e0e }, | 4500 | {0x00009824, 0x01000e0e, 0x01000e0e, 0x01000e0e, 0x01000e0e, 0x01000e0e}, |
4507 | { 0x00009828, 0x3a020001, 0x3a020001, 0x3a020001, 0x3a020001, 0x3a020001 }, | 4501 | {0x00009828, 0x3a020001, 0x3a020001, 0x3a020001, 0x3a020001, 0x3a020001}, |
4508 | { 0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }, | 4502 | {0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, |
4509 | { 0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007 }, | 4503 | {0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007}, |
4510 | { 0x00009840, 0x206a012e, 0x206a012e, 0x206a012e, 0x206a012e, 0x206a012e }, | 4504 | {0x00009840, 0x206a012e, 0x206a012e, 0x206a012e, 0x206a012e, 0x206a012e}, |
4511 | { 0x00009844, 0x0372161e, 0x0372161e, 0x03721620, 0x03721620, 0x037216a0 }, | 4505 | {0x00009844, 0x0372161e, 0x0372161e, 0x03721620, 0x03721620, 0x037216a0}, |
4512 | { 0x00009848, 0x00001066, 0x00001066, 0x00001053, 0x00001053, 0x00001059 }, | 4506 | {0x00009848, 0x00001066, 0x00001066, 0x00001053, 0x00001053, 0x00001059}, |
4513 | { 0x0000a848, 0x00001066, 0x00001066, 0x00001053, 0x00001053, 0x00001059 }, | 4507 | {0x0000a848, 0x00001066, 0x00001066, 0x00001053, 0x00001053, 0x00001059}, |
4514 | { 0x00009850, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2 }, | 4508 | {0x00009850, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2}, |
4515 | { 0x00009858, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e }, | 4509 | {0x00009858, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e}, |
4516 | { 0x0000985c, 0x3139605e, 0x3139605e, 0x3137605e, 0x3137605e, 0x3139605e }, | 4510 | {0x0000985c, 0x3139605e, 0x3139605e, 0x3137605e, 0x3137605e, 0x3139605e}, |
4517 | { 0x00009860, 0x00058d18, 0x00058d18, 0x00058d18, 0x00058d18, 0x00058d18 }, | 4511 | {0x00009860, 0x00058d18, 0x00058d18, 0x00058d18, 0x00058d18, 0x00058d18}, |
4518 | { 0x00009864, 0x0000fe00, 0x0000fe00, 0x0001ce00, 0x0001ce00, 0x0001ce00 }, | 4512 | {0x00009864, 0x0000fe00, 0x0000fe00, 0x0001ce00, 0x0001ce00, 0x0001ce00}, |
4519 | { 0x00009868, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0 }, | 4513 | {0x00009868, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0}, |
4520 | { 0x0000986c, 0x06903081, 0x06903081, 0x06903881, 0x06903881, 0x06903881 }, | 4514 | {0x0000986c, 0x06903081, 0x06903081, 0x06903881, 0x06903881, 0x06903881}, |
4521 | { 0x00009910, 0x30002310, 0x30002310, 0x30002310, 0x30002310, 0x30002310 }, | 4515 | {0x00009910, 0x30002310, 0x30002310, 0x30002310, 0x30002310, 0x30002310}, |
4522 | { 0x00009914, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898, 0x000007d0 }, | 4516 | {0x00009914, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898, 0x000007d0}, |
4523 | { 0x00009918, 0x0000000a, 0x00000014, 0x00000016, 0x0000000b, 0x00000016 }, | 4517 | {0x00009918, 0x0000000a, 0x00000014, 0x00000016, 0x0000000b, 0x00000016}, |
4524 | { 0x00009924, 0xd00a8007, 0xd00a8007, 0xd00a800d, 0xd00a800d, 0xd00a800d }, | 4518 | {0x00009924, 0xd00a8007, 0xd00a8007, 0xd00a800d, 0xd00a800d, 0xd00a800d}, |
4525 | { 0x00009944, 0xffbc1010, 0xffbc1010, 0xffbc1020, 0xffbc1020, 0xffbc1010 }, | 4519 | {0x00009944, 0xffbc1010, 0xffbc1010, 0xffbc1020, 0xffbc1020, 0xffbc1010}, |
4526 | { 0x00009960, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 4520 | {0x00009960, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
4527 | { 0x00009964, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 4521 | {0x00009964, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
4528 | { 0x000099b8, 0x0000421c, 0x0000421c, 0x0000421c, 0x0000421c, 0x0000421c }, | 4522 | {0x000099b8, 0x0000421c, 0x0000421c, 0x0000421c, 0x0000421c, 0x0000421c}, |
4529 | { 0x000099bc, 0x00000600, 0x00000600, 0x00000c00, 0x00000c00, 0x00000c00 }, | 4523 | {0x000099bc, 0x00000600, 0x00000600, 0x00000c00, 0x00000c00, 0x00000c00}, |
4530 | { 0x000099c0, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4 }, | 4524 | {0x000099c0, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4}, |
4531 | { 0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77 }, | 4525 | {0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77}, |
4532 | { 0x000099c8, 0x6af6532f, 0x6af6532f, 0x6af6532f, 0x6af6532f, 0x6af6532f }, | 4526 | {0x000099c8, 0x6af6532f, 0x6af6532f, 0x6af6532f, 0x6af6532f, 0x6af6532f}, |
4533 | { 0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8 }, | 4527 | {0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8}, |
4534 | { 0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384 }, | 4528 | {0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384}, |
4535 | { 0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 4529 | {0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
4536 | { 0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 4530 | {0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
4537 | { 0x00009a00, 0x00000000, 0x00000000, 0x00058084, 0x00058084, 0x00000000 }, | 4531 | {0x00009a00, 0x00000000, 0x00000000, 0x00058084, 0x00058084, 0x00000000}, |
4538 | { 0x00009a04, 0x00000000, 0x00000000, 0x00058088, 0x00058088, 0x00000000 }, | 4532 | {0x00009a04, 0x00000000, 0x00000000, 0x00058088, 0x00058088, 0x00000000}, |
4539 | { 0x00009a08, 0x00000000, 0x00000000, 0x0005808c, 0x0005808c, 0x00000000 }, | 4533 | {0x00009a08, 0x00000000, 0x00000000, 0x0005808c, 0x0005808c, 0x00000000}, |
4540 | { 0x00009a0c, 0x00000000, 0x00000000, 0x00058100, 0x00058100, 0x00000000 }, | 4534 | {0x00009a0c, 0x00000000, 0x00000000, 0x00058100, 0x00058100, 0x00000000}, |
4541 | { 0x00009a10, 0x00000000, 0x00000000, 0x00058104, 0x00058104, 0x00000000 }, | 4535 | {0x00009a10, 0x00000000, 0x00000000, 0x00058104, 0x00058104, 0x00000000}, |
4542 | { 0x00009a14, 0x00000000, 0x00000000, 0x00058108, 0x00058108, 0x00000000 }, | 4536 | {0x00009a14, 0x00000000, 0x00000000, 0x00058108, 0x00058108, 0x00000000}, |
4543 | { 0x00009a18, 0x00000000, 0x00000000, 0x0005810c, 0x0005810c, 0x00000000 }, | 4537 | {0x00009a18, 0x00000000, 0x00000000, 0x0005810c, 0x0005810c, 0x00000000}, |
4544 | { 0x00009a1c, 0x00000000, 0x00000000, 0x00058110, 0x00058110, 0x00000000 }, | 4538 | {0x00009a1c, 0x00000000, 0x00000000, 0x00058110, 0x00058110, 0x00000000}, |
4545 | { 0x00009a20, 0x00000000, 0x00000000, 0x00058114, 0x00058114, 0x00000000 }, | 4539 | {0x00009a20, 0x00000000, 0x00000000, 0x00058114, 0x00058114, 0x00000000}, |
4546 | { 0x00009a24, 0x00000000, 0x00000000, 0x00058180, 0x00058180, 0x00000000 }, | 4540 | {0x00009a24, 0x00000000, 0x00000000, 0x00058180, 0x00058180, 0x00000000}, |
4547 | { 0x00009a28, 0x00000000, 0x00000000, 0x00058184, 0x00058184, 0x00000000 }, | 4541 | {0x00009a28, 0x00000000, 0x00000000, 0x00058184, 0x00058184, 0x00000000}, |
4548 | { 0x00009a2c, 0x00000000, 0x00000000, 0x00058188, 0x00058188, 0x00000000 }, | 4542 | {0x00009a2c, 0x00000000, 0x00000000, 0x00058188, 0x00058188, 0x00000000}, |
4549 | { 0x00009a30, 0x00000000, 0x00000000, 0x0005818c, 0x0005818c, 0x00000000 }, | 4543 | {0x00009a30, 0x00000000, 0x00000000, 0x0005818c, 0x0005818c, 0x00000000}, |
4550 | { 0x00009a34, 0x00000000, 0x00000000, 0x00058190, 0x00058190, 0x00000000 }, | 4544 | {0x00009a34, 0x00000000, 0x00000000, 0x00058190, 0x00058190, 0x00000000}, |
4551 | { 0x00009a38, 0x00000000, 0x00000000, 0x00058194, 0x00058194, 0x00000000 }, | 4545 | {0x00009a38, 0x00000000, 0x00000000, 0x00058194, 0x00058194, 0x00000000}, |
4552 | { 0x00009a3c, 0x00000000, 0x00000000, 0x000581a0, 0x000581a0, 0x00000000 }, | 4546 | {0x00009a3c, 0x00000000, 0x00000000, 0x000581a0, 0x000581a0, 0x00000000}, |
4553 | { 0x00009a40, 0x00000000, 0x00000000, 0x0005820c, 0x0005820c, 0x00000000 }, | 4547 | {0x00009a40, 0x00000000, 0x00000000, 0x0005820c, 0x0005820c, 0x00000000}, |
4554 | { 0x00009a44, 0x00000000, 0x00000000, 0x000581a8, 0x000581a8, 0x00000000 }, | 4548 | {0x00009a44, 0x00000000, 0x00000000, 0x000581a8, 0x000581a8, 0x00000000}, |
4555 | { 0x00009a48, 0x00000000, 0x00000000, 0x00058284, 0x00058284, 0x00000000 }, | 4549 | {0x00009a48, 0x00000000, 0x00000000, 0x00058284, 0x00058284, 0x00000000}, |
4556 | { 0x00009a4c, 0x00000000, 0x00000000, 0x00058288, 0x00058288, 0x00000000 }, | 4550 | {0x00009a4c, 0x00000000, 0x00000000, 0x00058288, 0x00058288, 0x00000000}, |
4557 | { 0x00009a50, 0x00000000, 0x00000000, 0x00058224, 0x00058224, 0x00000000 }, | 4551 | {0x00009a50, 0x00000000, 0x00000000, 0x00058224, 0x00058224, 0x00000000}, |
4558 | { 0x00009a54, 0x00000000, 0x00000000, 0x00058290, 0x00058290, 0x00000000 }, | 4552 | {0x00009a54, 0x00000000, 0x00000000, 0x00058290, 0x00058290, 0x00000000}, |
4559 | { 0x00009a58, 0x00000000, 0x00000000, 0x00058300, 0x00058300, 0x00000000 }, | 4553 | {0x00009a58, 0x00000000, 0x00000000, 0x00058300, 0x00058300, 0x00000000}, |
4560 | { 0x00009a5c, 0x00000000, 0x00000000, 0x00058304, 0x00058304, 0x00000000 }, | 4554 | {0x00009a5c, 0x00000000, 0x00000000, 0x00058304, 0x00058304, 0x00000000}, |
4561 | { 0x00009a60, 0x00000000, 0x00000000, 0x00058308, 0x00058308, 0x00000000 }, | 4555 | {0x00009a60, 0x00000000, 0x00000000, 0x00058308, 0x00058308, 0x00000000}, |
4562 | { 0x00009a64, 0x00000000, 0x00000000, 0x0005830c, 0x0005830c, 0x00000000 }, | 4556 | {0x00009a64, 0x00000000, 0x00000000, 0x0005830c, 0x0005830c, 0x00000000}, |
4563 | { 0x00009a68, 0x00000000, 0x00000000, 0x00058380, 0x00058380, 0x00000000 }, | 4557 | {0x00009a68, 0x00000000, 0x00000000, 0x00058380, 0x00058380, 0x00000000}, |
4564 | { 0x00009a6c, 0x00000000, 0x00000000, 0x00058384, 0x00058384, 0x00000000 }, | 4558 | {0x00009a6c, 0x00000000, 0x00000000, 0x00058384, 0x00058384, 0x00000000}, |
4565 | { 0x00009a70, 0x00000000, 0x00000000, 0x00068700, 0x00068700, 0x00000000 }, | 4559 | {0x00009a70, 0x00000000, 0x00000000, 0x00068700, 0x00068700, 0x00000000}, |
4566 | { 0x00009a74, 0x00000000, 0x00000000, 0x00068704, 0x00068704, 0x00000000 }, | 4560 | {0x00009a74, 0x00000000, 0x00000000, 0x00068704, 0x00068704, 0x00000000}, |
4567 | { 0x00009a78, 0x00000000, 0x00000000, 0x00068708, 0x00068708, 0x00000000 }, | 4561 | {0x00009a78, 0x00000000, 0x00000000, 0x00068708, 0x00068708, 0x00000000}, |
4568 | { 0x00009a7c, 0x00000000, 0x00000000, 0x0006870c, 0x0006870c, 0x00000000 }, | 4562 | {0x00009a7c, 0x00000000, 0x00000000, 0x0006870c, 0x0006870c, 0x00000000}, |
4569 | { 0x00009a80, 0x00000000, 0x00000000, 0x00068780, 0x00068780, 0x00000000 }, | 4563 | {0x00009a80, 0x00000000, 0x00000000, 0x00068780, 0x00068780, 0x00000000}, |
4570 | { 0x00009a84, 0x00000000, 0x00000000, 0x00068784, 0x00068784, 0x00000000 }, | 4564 | {0x00009a84, 0x00000000, 0x00000000, 0x00068784, 0x00068784, 0x00000000}, |
4571 | { 0x00009a88, 0x00000000, 0x00000000, 0x00078b00, 0x00078b00, 0x00000000 }, | 4565 | {0x00009a88, 0x00000000, 0x00000000, 0x00078b00, 0x00078b00, 0x00000000}, |
4572 | { 0x00009a8c, 0x00000000, 0x00000000, 0x00078b04, 0x00078b04, 0x00000000 }, | 4566 | {0x00009a8c, 0x00000000, 0x00000000, 0x00078b04, 0x00078b04, 0x00000000}, |
4573 | { 0x00009a90, 0x00000000, 0x00000000, 0x00078b08, 0x00078b08, 0x00000000 }, | 4567 | {0x00009a90, 0x00000000, 0x00000000, 0x00078b08, 0x00078b08, 0x00000000}, |
4574 | { 0x00009a94, 0x00000000, 0x00000000, 0x00078b0c, 0x00078b0c, 0x00000000 }, | 4568 | {0x00009a94, 0x00000000, 0x00000000, 0x00078b0c, 0x00078b0c, 0x00000000}, |
4575 | { 0x00009a98, 0x00000000, 0x00000000, 0x00078b80, 0x00078b80, 0x00000000 }, | 4569 | {0x00009a98, 0x00000000, 0x00000000, 0x00078b80, 0x00078b80, 0x00000000}, |
4576 | { 0x00009a9c, 0x00000000, 0x00000000, 0x00078b84, 0x00078b84, 0x00000000 }, | 4570 | {0x00009a9c, 0x00000000, 0x00000000, 0x00078b84, 0x00078b84, 0x00000000}, |
4577 | { 0x00009aa0, 0x00000000, 0x00000000, 0x00078b88, 0x00078b88, 0x00000000 }, | 4571 | {0x00009aa0, 0x00000000, 0x00000000, 0x00078b88, 0x00078b88, 0x00000000}, |
4578 | { 0x00009aa4, 0x00000000, 0x00000000, 0x00078b8c, 0x00078b8c, 0x00000000 }, | 4572 | {0x00009aa4, 0x00000000, 0x00000000, 0x00078b8c, 0x00078b8c, 0x00000000}, |
4579 | { 0x00009aa8, 0x00000000, 0x00000000, 0x00078b90, 0x00078b90, 0x00000000 }, | 4573 | {0x00009aa8, 0x00000000, 0x00000000, 0x00078b90, 0x00078b90, 0x00000000}, |
4580 | { 0x00009aac, 0x00000000, 0x00000000, 0x000caf80, 0x000caf80, 0x00000000 }, | 4574 | {0x00009aac, 0x00000000, 0x00000000, 0x000caf80, 0x000caf80, 0x00000000}, |
4581 | { 0x00009ab0, 0x00000000, 0x00000000, 0x000caf84, 0x000caf84, 0x00000000 }, | 4575 | {0x00009ab0, 0x00000000, 0x00000000, 0x000caf84, 0x000caf84, 0x00000000}, |
4582 | { 0x00009ab4, 0x00000000, 0x00000000, 0x000caf88, 0x000caf88, 0x00000000 }, | 4576 | {0x00009ab4, 0x00000000, 0x00000000, 0x000caf88, 0x000caf88, 0x00000000}, |
4583 | { 0x00009ab8, 0x00000000, 0x00000000, 0x000caf8c, 0x000caf8c, 0x00000000 }, | 4577 | {0x00009ab8, 0x00000000, 0x00000000, 0x000caf8c, 0x000caf8c, 0x00000000}, |
4584 | { 0x00009abc, 0x00000000, 0x00000000, 0x000caf90, 0x000caf90, 0x00000000 }, | 4578 | {0x00009abc, 0x00000000, 0x00000000, 0x000caf90, 0x000caf90, 0x00000000}, |
4585 | { 0x00009ac0, 0x00000000, 0x00000000, 0x000db30c, 0x000db30c, 0x00000000 }, | 4579 | {0x00009ac0, 0x00000000, 0x00000000, 0x000db30c, 0x000db30c, 0x00000000}, |
4586 | { 0x00009ac4, 0x00000000, 0x00000000, 0x000db310, 0x000db310, 0x00000000 }, | 4580 | {0x00009ac4, 0x00000000, 0x00000000, 0x000db310, 0x000db310, 0x00000000}, |
4587 | { 0x00009ac8, 0x00000000, 0x00000000, 0x000db384, 0x000db384, 0x00000000 }, | 4581 | {0x00009ac8, 0x00000000, 0x00000000, 0x000db384, 0x000db384, 0x00000000}, |
4588 | { 0x00009acc, 0x00000000, 0x00000000, 0x000db388, 0x000db388, 0x00000000 }, | 4582 | {0x00009acc, 0x00000000, 0x00000000, 0x000db388, 0x000db388, 0x00000000}, |
4589 | { 0x00009ad0, 0x00000000, 0x00000000, 0x000db324, 0x000db324, 0x00000000 }, | 4583 | {0x00009ad0, 0x00000000, 0x00000000, 0x000db324, 0x000db324, 0x00000000}, |
4590 | { 0x00009ad4, 0x00000000, 0x00000000, 0x000eb704, 0x000eb704, 0x00000000 }, | 4584 | {0x00009ad4, 0x00000000, 0x00000000, 0x000eb704, 0x000eb704, 0x00000000}, |
4591 | { 0x00009ad8, 0x00000000, 0x00000000, 0x000eb6a4, 0x000eb6a4, 0x00000000 }, | 4585 | {0x00009ad8, 0x00000000, 0x00000000, 0x000eb6a4, 0x000eb6a4, 0x00000000}, |
4592 | { 0x00009adc, 0x00000000, 0x00000000, 0x000eb6a8, 0x000eb6a8, 0x00000000 }, | 4586 | {0x00009adc, 0x00000000, 0x00000000, 0x000eb6a8, 0x000eb6a8, 0x00000000}, |
4593 | { 0x00009ae0, 0x00000000, 0x00000000, 0x000eb710, 0x000eb710, 0x00000000 }, | 4587 | {0x00009ae0, 0x00000000, 0x00000000, 0x000eb710, 0x000eb710, 0x00000000}, |
4594 | { 0x00009ae4, 0x00000000, 0x00000000, 0x000eb714, 0x000eb714, 0x00000000 }, | 4588 | {0x00009ae4, 0x00000000, 0x00000000, 0x000eb714, 0x000eb714, 0x00000000}, |
4595 | { 0x00009ae8, 0x00000000, 0x00000000, 0x000eb720, 0x000eb720, 0x00000000 }, | 4589 | {0x00009ae8, 0x00000000, 0x00000000, 0x000eb720, 0x000eb720, 0x00000000}, |
4596 | { 0x00009aec, 0x00000000, 0x00000000, 0x000eb724, 0x000eb724, 0x00000000 }, | 4590 | {0x00009aec, 0x00000000, 0x00000000, 0x000eb724, 0x000eb724, 0x00000000}, |
4597 | { 0x00009af0, 0x00000000, 0x00000000, 0x000eb728, 0x000eb728, 0x00000000 }, | 4591 | {0x00009af0, 0x00000000, 0x00000000, 0x000eb728, 0x000eb728, 0x00000000}, |
4598 | { 0x00009af4, 0x00000000, 0x00000000, 0x000eb72c, 0x000eb72c, 0x00000000 }, | 4592 | {0x00009af4, 0x00000000, 0x00000000, 0x000eb72c, 0x000eb72c, 0x00000000}, |
4599 | { 0x00009af8, 0x00000000, 0x00000000, 0x000eb7a0, 0x000eb7a0, 0x00000000 }, | 4593 | {0x00009af8, 0x00000000, 0x00000000, 0x000eb7a0, 0x000eb7a0, 0x00000000}, |
4600 | { 0x00009afc, 0x00000000, 0x00000000, 0x000eb7a4, 0x000eb7a4, 0x00000000 }, | 4594 | {0x00009afc, 0x00000000, 0x00000000, 0x000eb7a4, 0x000eb7a4, 0x00000000}, |
4601 | { 0x00009b00, 0x00000000, 0x00000000, 0x000eb7a8, 0x000eb7a8, 0x00000000 }, | 4595 | {0x00009b00, 0x00000000, 0x00000000, 0x000eb7a8, 0x000eb7a8, 0x00000000}, |
4602 | { 0x00009b04, 0x00000000, 0x00000000, 0x000eb7b0, 0x000eb7b0, 0x00000000 }, | 4596 | {0x00009b04, 0x00000000, 0x00000000, 0x000eb7b0, 0x000eb7b0, 0x00000000}, |
4603 | { 0x00009b08, 0x00000000, 0x00000000, 0x000eb7b4, 0x000eb7b4, 0x00000000 }, | 4597 | {0x00009b08, 0x00000000, 0x00000000, 0x000eb7b4, 0x000eb7b4, 0x00000000}, |
4604 | { 0x00009b0c, 0x00000000, 0x00000000, 0x000eb7b8, 0x000eb7b8, 0x00000000 }, | 4598 | {0x00009b0c, 0x00000000, 0x00000000, 0x000eb7b8, 0x000eb7b8, 0x00000000}, |
4605 | { 0x00009b10, 0x00000000, 0x00000000, 0x000eb7a5, 0x000eb7a5, 0x00000000 }, | 4599 | {0x00009b10, 0x00000000, 0x00000000, 0x000eb7a5, 0x000eb7a5, 0x00000000}, |
4606 | { 0x00009b14, 0x00000000, 0x00000000, 0x000eb7a9, 0x000eb7a9, 0x00000000 }, | 4600 | {0x00009b14, 0x00000000, 0x00000000, 0x000eb7a9, 0x000eb7a9, 0x00000000}, |
4607 | { 0x00009b18, 0x00000000, 0x00000000, 0x000eb7ad, 0x000eb7ad, 0x00000000 }, | 4601 | {0x00009b18, 0x00000000, 0x00000000, 0x000eb7ad, 0x000eb7ad, 0x00000000}, |
4608 | { 0x00009b1c, 0x00000000, 0x00000000, 0x000eb7b1, 0x000eb7b1, 0x00000000 }, | 4602 | {0x00009b1c, 0x00000000, 0x00000000, 0x000eb7b1, 0x000eb7b1, 0x00000000}, |
4609 | { 0x00009b20, 0x00000000, 0x00000000, 0x000eb7b5, 0x000eb7b5, 0x00000000 }, | 4603 | {0x00009b20, 0x00000000, 0x00000000, 0x000eb7b5, 0x000eb7b5, 0x00000000}, |
4610 | { 0x00009b24, 0x00000000, 0x00000000, 0x000eb7b9, 0x000eb7b9, 0x00000000 }, | 4604 | {0x00009b24, 0x00000000, 0x00000000, 0x000eb7b9, 0x000eb7b9, 0x00000000}, |
4611 | { 0x00009b28, 0x00000000, 0x00000000, 0x000eb7c5, 0x000eb7c5, 0x00000000 }, | 4605 | {0x00009b28, 0x00000000, 0x00000000, 0x000eb7c5, 0x000eb7c5, 0x00000000}, |
4612 | { 0x00009b2c, 0x00000000, 0x00000000, 0x000eb7c9, 0x000eb7c9, 0x00000000 }, | 4606 | {0x00009b2c, 0x00000000, 0x00000000, 0x000eb7c9, 0x000eb7c9, 0x00000000}, |
4613 | { 0x00009b30, 0x00000000, 0x00000000, 0x000eb7d1, 0x000eb7d1, 0x00000000 }, | 4607 | {0x00009b30, 0x00000000, 0x00000000, 0x000eb7d1, 0x000eb7d1, 0x00000000}, |
4614 | { 0x00009b34, 0x00000000, 0x00000000, 0x000eb7d5, 0x000eb7d5, 0x00000000 }, | 4608 | {0x00009b34, 0x00000000, 0x00000000, 0x000eb7d5, 0x000eb7d5, 0x00000000}, |
4615 | { 0x00009b38, 0x00000000, 0x00000000, 0x000eb7d9, 0x000eb7d9, 0x00000000 }, | 4609 | {0x00009b38, 0x00000000, 0x00000000, 0x000eb7d9, 0x000eb7d9, 0x00000000}, |
4616 | { 0x00009b3c, 0x00000000, 0x00000000, 0x000eb7c6, 0x000eb7c6, 0x00000000 }, | 4610 | {0x00009b3c, 0x00000000, 0x00000000, 0x000eb7c6, 0x000eb7c6, 0x00000000}, |
4617 | { 0x00009b40, 0x00000000, 0x00000000, 0x000eb7ca, 0x000eb7ca, 0x00000000 }, | 4611 | {0x00009b40, 0x00000000, 0x00000000, 0x000eb7ca, 0x000eb7ca, 0x00000000}, |
4618 | { 0x00009b44, 0x00000000, 0x00000000, 0x000eb7ce, 0x000eb7ce, 0x00000000 }, | 4612 | {0x00009b44, 0x00000000, 0x00000000, 0x000eb7ce, 0x000eb7ce, 0x00000000}, |
4619 | { 0x00009b48, 0x00000000, 0x00000000, 0x000eb7d2, 0x000eb7d2, 0x00000000 }, | 4613 | {0x00009b48, 0x00000000, 0x00000000, 0x000eb7d2, 0x000eb7d2, 0x00000000}, |
4620 | { 0x00009b4c, 0x00000000, 0x00000000, 0x000eb7d6, 0x000eb7d6, 0x00000000 }, | 4614 | {0x00009b4c, 0x00000000, 0x00000000, 0x000eb7d6, 0x000eb7d6, 0x00000000}, |
4621 | { 0x00009b50, 0x00000000, 0x00000000, 0x000eb7c3, 0x000eb7c3, 0x00000000 }, | 4615 | {0x00009b50, 0x00000000, 0x00000000, 0x000eb7c3, 0x000eb7c3, 0x00000000}, |
4622 | { 0x00009b54, 0x00000000, 0x00000000, 0x000eb7c7, 0x000eb7c7, 0x00000000 }, | 4616 | {0x00009b54, 0x00000000, 0x00000000, 0x000eb7c7, 0x000eb7c7, 0x00000000}, |
4623 | { 0x00009b58, 0x00000000, 0x00000000, 0x000eb7cb, 0x000eb7cb, 0x00000000 }, | 4617 | {0x00009b58, 0x00000000, 0x00000000, 0x000eb7cb, 0x000eb7cb, 0x00000000}, |
4624 | { 0x00009b5c, 0x00000000, 0x00000000, 0x000eb7cf, 0x000eb7cf, 0x00000000 }, | 4618 | {0x00009b5c, 0x00000000, 0x00000000, 0x000eb7cf, 0x000eb7cf, 0x00000000}, |
4625 | { 0x00009b60, 0x00000000, 0x00000000, 0x000eb7d7, 0x000eb7d7, 0x00000000 }, | 4619 | {0x00009b60, 0x00000000, 0x00000000, 0x000eb7d7, 0x000eb7d7, 0x00000000}, |
4626 | { 0x00009b64, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4620 | {0x00009b64, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4627 | { 0x00009b68, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4621 | {0x00009b68, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4628 | { 0x00009b6c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4622 | {0x00009b6c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4629 | { 0x00009b70, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4623 | {0x00009b70, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4630 | { 0x00009b74, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4624 | {0x00009b74, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4631 | { 0x00009b78, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4625 | {0x00009b78, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4632 | { 0x00009b7c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4626 | {0x00009b7c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4633 | { 0x00009b80, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4627 | {0x00009b80, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4634 | { 0x00009b84, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4628 | {0x00009b84, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4635 | { 0x00009b88, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4629 | {0x00009b88, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4636 | { 0x00009b8c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4630 | {0x00009b8c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4637 | { 0x00009b90, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4631 | {0x00009b90, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4638 | { 0x00009b94, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4632 | {0x00009b94, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4639 | { 0x00009b98, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4633 | {0x00009b98, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4640 | { 0x00009b9c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4634 | {0x00009b9c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4641 | { 0x00009ba0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4635 | {0x00009ba0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4642 | { 0x00009ba4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4636 | {0x00009ba4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4643 | { 0x00009ba8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4637 | {0x00009ba8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4644 | { 0x00009bac, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4638 | {0x00009bac, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4645 | { 0x00009bb0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4639 | {0x00009bb0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4646 | { 0x00009bb4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4640 | {0x00009bb4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4647 | { 0x00009bb8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4641 | {0x00009bb8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4648 | { 0x00009bbc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4642 | {0x00009bbc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4649 | { 0x00009bc0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4643 | {0x00009bc0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4650 | { 0x00009bc4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4644 | {0x00009bc4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4651 | { 0x00009bc8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4645 | {0x00009bc8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4652 | { 0x00009bcc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4646 | {0x00009bcc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4653 | { 0x00009bd0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4647 | {0x00009bd0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4654 | { 0x00009bd4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4648 | {0x00009bd4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4655 | { 0x00009bd8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4649 | {0x00009bd8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4656 | { 0x00009bdc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4650 | {0x00009bdc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4657 | { 0x00009be0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4651 | {0x00009be0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4658 | { 0x00009be4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4652 | {0x00009be4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4659 | { 0x00009be8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4653 | {0x00009be8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4660 | { 0x00009bec, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4654 | {0x00009bec, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4661 | { 0x00009bf0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4655 | {0x00009bf0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4662 | { 0x00009bf4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4656 | {0x00009bf4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4663 | { 0x00009bf8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4657 | {0x00009bf8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4664 | { 0x00009bfc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4658 | {0x00009bfc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4665 | { 0x0000aa00, 0x00000000, 0x00000000, 0x00058084, 0x00058084, 0x00000000 }, | 4659 | {0x0000aa00, 0x00000000, 0x00000000, 0x00058084, 0x00058084, 0x00000000}, |
4666 | { 0x0000aa04, 0x00000000, 0x00000000, 0x00058088, 0x00058088, 0x00000000 }, | 4660 | {0x0000aa04, 0x00000000, 0x00000000, 0x00058088, 0x00058088, 0x00000000}, |
4667 | { 0x0000aa08, 0x00000000, 0x00000000, 0x0005808c, 0x0005808c, 0x00000000 }, | 4661 | {0x0000aa08, 0x00000000, 0x00000000, 0x0005808c, 0x0005808c, 0x00000000}, |
4668 | { 0x0000aa0c, 0x00000000, 0x00000000, 0x00058100, 0x00058100, 0x00000000 }, | 4662 | {0x0000aa0c, 0x00000000, 0x00000000, 0x00058100, 0x00058100, 0x00000000}, |
4669 | { 0x0000aa10, 0x00000000, 0x00000000, 0x00058104, 0x00058104, 0x00000000 }, | 4663 | {0x0000aa10, 0x00000000, 0x00000000, 0x00058104, 0x00058104, 0x00000000}, |
4670 | { 0x0000aa14, 0x00000000, 0x00000000, 0x00058108, 0x00058108, 0x00000000 }, | 4664 | {0x0000aa14, 0x00000000, 0x00000000, 0x00058108, 0x00058108, 0x00000000}, |
4671 | { 0x0000aa18, 0x00000000, 0x00000000, 0x0005810c, 0x0005810c, 0x00000000 }, | 4665 | {0x0000aa18, 0x00000000, 0x00000000, 0x0005810c, 0x0005810c, 0x00000000}, |
4672 | { 0x0000aa1c, 0x00000000, 0x00000000, 0x00058110, 0x00058110, 0x00000000 }, | 4666 | {0x0000aa1c, 0x00000000, 0x00000000, 0x00058110, 0x00058110, 0x00000000}, |
4673 | { 0x0000aa20, 0x00000000, 0x00000000, 0x00058114, 0x00058114, 0x00000000 }, | 4667 | {0x0000aa20, 0x00000000, 0x00000000, 0x00058114, 0x00058114, 0x00000000}, |
4674 | { 0x0000aa24, 0x00000000, 0x00000000, 0x00058180, 0x00058180, 0x00000000 }, | 4668 | {0x0000aa24, 0x00000000, 0x00000000, 0x00058180, 0x00058180, 0x00000000}, |
4675 | { 0x0000aa28, 0x00000000, 0x00000000, 0x00058184, 0x00058184, 0x00000000 }, | 4669 | {0x0000aa28, 0x00000000, 0x00000000, 0x00058184, 0x00058184, 0x00000000}, |
4676 | { 0x0000aa2c, 0x00000000, 0x00000000, 0x00058188, 0x00058188, 0x00000000 }, | 4670 | {0x0000aa2c, 0x00000000, 0x00000000, 0x00058188, 0x00058188, 0x00000000}, |
4677 | { 0x0000aa30, 0x00000000, 0x00000000, 0x0005818c, 0x0005818c, 0x00000000 }, | 4671 | {0x0000aa30, 0x00000000, 0x00000000, 0x0005818c, 0x0005818c, 0x00000000}, |
4678 | { 0x0000aa34, 0x00000000, 0x00000000, 0x00058190, 0x00058190, 0x00000000 }, | 4672 | {0x0000aa34, 0x00000000, 0x00000000, 0x00058190, 0x00058190, 0x00000000}, |
4679 | { 0x0000aa38, 0x00000000, 0x00000000, 0x00058194, 0x00058194, 0x00000000 }, | 4673 | {0x0000aa38, 0x00000000, 0x00000000, 0x00058194, 0x00058194, 0x00000000}, |
4680 | { 0x0000aa3c, 0x00000000, 0x00000000, 0x000581a0, 0x000581a0, 0x00000000 }, | 4674 | {0x0000aa3c, 0x00000000, 0x00000000, 0x000581a0, 0x000581a0, 0x00000000}, |
4681 | { 0x0000aa40, 0x00000000, 0x00000000, 0x0005820c, 0x0005820c, 0x00000000 }, | 4675 | {0x0000aa40, 0x00000000, 0x00000000, 0x0005820c, 0x0005820c, 0x00000000}, |
4682 | { 0x0000aa44, 0x00000000, 0x00000000, 0x000581a8, 0x000581a8, 0x00000000 }, | 4676 | {0x0000aa44, 0x00000000, 0x00000000, 0x000581a8, 0x000581a8, 0x00000000}, |
4683 | { 0x0000aa48, 0x00000000, 0x00000000, 0x00058284, 0x00058284, 0x00000000 }, | 4677 | {0x0000aa48, 0x00000000, 0x00000000, 0x00058284, 0x00058284, 0x00000000}, |
4684 | { 0x0000aa4c, 0x00000000, 0x00000000, 0x00058288, 0x00058288, 0x00000000 }, | 4678 | {0x0000aa4c, 0x00000000, 0x00000000, 0x00058288, 0x00058288, 0x00000000}, |
4685 | { 0x0000aa50, 0x00000000, 0x00000000, 0x00058224, 0x00058224, 0x00000000 }, | 4679 | {0x0000aa50, 0x00000000, 0x00000000, 0x00058224, 0x00058224, 0x00000000}, |
4686 | { 0x0000aa54, 0x00000000, 0x00000000, 0x00058290, 0x00058290, 0x00000000 }, | 4680 | {0x0000aa54, 0x00000000, 0x00000000, 0x00058290, 0x00058290, 0x00000000}, |
4687 | { 0x0000aa58, 0x00000000, 0x00000000, 0x00058300, 0x00058300, 0x00000000 }, | 4681 | {0x0000aa58, 0x00000000, 0x00000000, 0x00058300, 0x00058300, 0x00000000}, |
4688 | { 0x0000aa5c, 0x00000000, 0x00000000, 0x00058304, 0x00058304, 0x00000000 }, | 4682 | {0x0000aa5c, 0x00000000, 0x00000000, 0x00058304, 0x00058304, 0x00000000}, |
4689 | { 0x0000aa60, 0x00000000, 0x00000000, 0x00058308, 0x00058308, 0x00000000 }, | 4683 | {0x0000aa60, 0x00000000, 0x00000000, 0x00058308, 0x00058308, 0x00000000}, |
4690 | { 0x0000aa64, 0x00000000, 0x00000000, 0x0005830c, 0x0005830c, 0x00000000 }, | 4684 | {0x0000aa64, 0x00000000, 0x00000000, 0x0005830c, 0x0005830c, 0x00000000}, |
4691 | { 0x0000aa68, 0x00000000, 0x00000000, 0x00058380, 0x00058380, 0x00000000 }, | 4685 | {0x0000aa68, 0x00000000, 0x00000000, 0x00058380, 0x00058380, 0x00000000}, |
4692 | { 0x0000aa6c, 0x00000000, 0x00000000, 0x00058384, 0x00058384, 0x00000000 }, | 4686 | {0x0000aa6c, 0x00000000, 0x00000000, 0x00058384, 0x00058384, 0x00000000}, |
4693 | { 0x0000aa70, 0x00000000, 0x00000000, 0x00068700, 0x00068700, 0x00000000 }, | 4687 | {0x0000aa70, 0x00000000, 0x00000000, 0x00068700, 0x00068700, 0x00000000}, |
4694 | { 0x0000aa74, 0x00000000, 0x00000000, 0x00068704, 0x00068704, 0x00000000 }, | 4688 | {0x0000aa74, 0x00000000, 0x00000000, 0x00068704, 0x00068704, 0x00000000}, |
4695 | { 0x0000aa78, 0x00000000, 0x00000000, 0x00068708, 0x00068708, 0x00000000 }, | 4689 | {0x0000aa78, 0x00000000, 0x00000000, 0x00068708, 0x00068708, 0x00000000}, |
4696 | { 0x0000aa7c, 0x00000000, 0x00000000, 0x0006870c, 0x0006870c, 0x00000000 }, | 4690 | {0x0000aa7c, 0x00000000, 0x00000000, 0x0006870c, 0x0006870c, 0x00000000}, |
4697 | { 0x0000aa80, 0x00000000, 0x00000000, 0x00068780, 0x00068780, 0x00000000 }, | 4691 | {0x0000aa80, 0x00000000, 0x00000000, 0x00068780, 0x00068780, 0x00000000}, |
4698 | { 0x0000aa84, 0x00000000, 0x00000000, 0x00068784, 0x00068784, 0x00000000 }, | 4692 | {0x0000aa84, 0x00000000, 0x00000000, 0x00068784, 0x00068784, 0x00000000}, |
4699 | { 0x0000aa88, 0x00000000, 0x00000000, 0x00078b00, 0x00078b00, 0x00000000 }, | 4693 | {0x0000aa88, 0x00000000, 0x00000000, 0x00078b00, 0x00078b00, 0x00000000}, |
4700 | { 0x0000aa8c, 0x00000000, 0x00000000, 0x00078b04, 0x00078b04, 0x00000000 }, | 4694 | {0x0000aa8c, 0x00000000, 0x00000000, 0x00078b04, 0x00078b04, 0x00000000}, |
4701 | { 0x0000aa90, 0x00000000, 0x00000000, 0x00078b08, 0x00078b08, 0x00000000 }, | 4695 | {0x0000aa90, 0x00000000, 0x00000000, 0x00078b08, 0x00078b08, 0x00000000}, |
4702 | { 0x0000aa94, 0x00000000, 0x00000000, 0x00078b0c, 0x00078b0c, 0x00000000 }, | 4696 | {0x0000aa94, 0x00000000, 0x00000000, 0x00078b0c, 0x00078b0c, 0x00000000}, |
4703 | { 0x0000aa98, 0x00000000, 0x00000000, 0x00078b80, 0x00078b80, 0x00000000 }, | 4697 | {0x0000aa98, 0x00000000, 0x00000000, 0x00078b80, 0x00078b80, 0x00000000}, |
4704 | { 0x0000aa9c, 0x00000000, 0x00000000, 0x00078b84, 0x00078b84, 0x00000000 }, | 4698 | {0x0000aa9c, 0x00000000, 0x00000000, 0x00078b84, 0x00078b84, 0x00000000}, |
4705 | { 0x0000aaa0, 0x00000000, 0x00000000, 0x00078b88, 0x00078b88, 0x00000000 }, | 4699 | {0x0000aaa0, 0x00000000, 0x00000000, 0x00078b88, 0x00078b88, 0x00000000}, |
4706 | { 0x0000aaa4, 0x00000000, 0x00000000, 0x00078b8c, 0x00078b8c, 0x00000000 }, | 4700 | {0x0000aaa4, 0x00000000, 0x00000000, 0x00078b8c, 0x00078b8c, 0x00000000}, |
4707 | { 0x0000aaa8, 0x00000000, 0x00000000, 0x00078b90, 0x00078b90, 0x00000000 }, | 4701 | {0x0000aaa8, 0x00000000, 0x00000000, 0x00078b90, 0x00078b90, 0x00000000}, |
4708 | { 0x0000aaac, 0x00000000, 0x00000000, 0x000caf80, 0x000caf80, 0x00000000 }, | 4702 | {0x0000aaac, 0x00000000, 0x00000000, 0x000caf80, 0x000caf80, 0x00000000}, |
4709 | { 0x0000aab0, 0x00000000, 0x00000000, 0x000caf84, 0x000caf84, 0x00000000 }, | 4703 | {0x0000aab0, 0x00000000, 0x00000000, 0x000caf84, 0x000caf84, 0x00000000}, |
4710 | { 0x0000aab4, 0x00000000, 0x00000000, 0x000caf88, 0x000caf88, 0x00000000 }, | 4704 | {0x0000aab4, 0x00000000, 0x00000000, 0x000caf88, 0x000caf88, 0x00000000}, |
4711 | { 0x0000aab8, 0x00000000, 0x00000000, 0x000caf8c, 0x000caf8c, 0x00000000 }, | 4705 | {0x0000aab8, 0x00000000, 0x00000000, 0x000caf8c, 0x000caf8c, 0x00000000}, |
4712 | { 0x0000aabc, 0x00000000, 0x00000000, 0x000caf90, 0x000caf90, 0x00000000 }, | 4706 | {0x0000aabc, 0x00000000, 0x00000000, 0x000caf90, 0x000caf90, 0x00000000}, |
4713 | { 0x0000aac0, 0x00000000, 0x00000000, 0x000db30c, 0x000db30c, 0x00000000 }, | 4707 | {0x0000aac0, 0x00000000, 0x00000000, 0x000db30c, 0x000db30c, 0x00000000}, |
4714 | { 0x0000aac4, 0x00000000, 0x00000000, 0x000db310, 0x000db310, 0x00000000 }, | 4708 | {0x0000aac4, 0x00000000, 0x00000000, 0x000db310, 0x000db310, 0x00000000}, |
4715 | { 0x0000aac8, 0x00000000, 0x00000000, 0x000db384, 0x000db384, 0x00000000 }, | 4709 | {0x0000aac8, 0x00000000, 0x00000000, 0x000db384, 0x000db384, 0x00000000}, |
4716 | { 0x0000aacc, 0x00000000, 0x00000000, 0x000db388, 0x000db388, 0x00000000 }, | 4710 | {0x0000aacc, 0x00000000, 0x00000000, 0x000db388, 0x000db388, 0x00000000}, |
4717 | { 0x0000aad0, 0x00000000, 0x00000000, 0x000db324, 0x000db324, 0x00000000 }, | 4711 | {0x0000aad0, 0x00000000, 0x00000000, 0x000db324, 0x000db324, 0x00000000}, |
4718 | { 0x0000aad4, 0x00000000, 0x00000000, 0x000eb704, 0x000eb704, 0x00000000 }, | 4712 | {0x0000aad4, 0x00000000, 0x00000000, 0x000eb704, 0x000eb704, 0x00000000}, |
4719 | { 0x0000aad8, 0x00000000, 0x00000000, 0x000eb6a4, 0x000eb6a4, 0x00000000 }, | 4713 | {0x0000aad8, 0x00000000, 0x00000000, 0x000eb6a4, 0x000eb6a4, 0x00000000}, |
4720 | { 0x0000aadc, 0x00000000, 0x00000000, 0x000eb6a8, 0x000eb6a8, 0x00000000 }, | 4714 | {0x0000aadc, 0x00000000, 0x00000000, 0x000eb6a8, 0x000eb6a8, 0x00000000}, |
4721 | { 0x0000aae0, 0x00000000, 0x00000000, 0x000eb710, 0x000eb710, 0x00000000 }, | 4715 | {0x0000aae0, 0x00000000, 0x00000000, 0x000eb710, 0x000eb710, 0x00000000}, |
4722 | { 0x0000aae4, 0x00000000, 0x00000000, 0x000eb714, 0x000eb714, 0x00000000 }, | 4716 | {0x0000aae4, 0x00000000, 0x00000000, 0x000eb714, 0x000eb714, 0x00000000}, |
4723 | { 0x0000aae8, 0x00000000, 0x00000000, 0x000eb720, 0x000eb720, 0x00000000 }, | 4717 | {0x0000aae8, 0x00000000, 0x00000000, 0x000eb720, 0x000eb720, 0x00000000}, |
4724 | { 0x0000aaec, 0x00000000, 0x00000000, 0x000eb724, 0x000eb724, 0x00000000 }, | 4718 | {0x0000aaec, 0x00000000, 0x00000000, 0x000eb724, 0x000eb724, 0x00000000}, |
4725 | { 0x0000aaf0, 0x00000000, 0x00000000, 0x000eb728, 0x000eb728, 0x00000000 }, | 4719 | {0x0000aaf0, 0x00000000, 0x00000000, 0x000eb728, 0x000eb728, 0x00000000}, |
4726 | { 0x0000aaf4, 0x00000000, 0x00000000, 0x000eb72c, 0x000eb72c, 0x00000000 }, | 4720 | {0x0000aaf4, 0x00000000, 0x00000000, 0x000eb72c, 0x000eb72c, 0x00000000}, |
4727 | { 0x0000aaf8, 0x00000000, 0x00000000, 0x000eb7a0, 0x000eb7a0, 0x00000000 }, | 4721 | {0x0000aaf8, 0x00000000, 0x00000000, 0x000eb7a0, 0x000eb7a0, 0x00000000}, |
4728 | { 0x0000aafc, 0x00000000, 0x00000000, 0x000eb7a4, 0x000eb7a4, 0x00000000 }, | 4722 | {0x0000aafc, 0x00000000, 0x00000000, 0x000eb7a4, 0x000eb7a4, 0x00000000}, |
4729 | { 0x0000ab00, 0x00000000, 0x00000000, 0x000eb7a8, 0x000eb7a8, 0x00000000 }, | 4723 | {0x0000ab00, 0x00000000, 0x00000000, 0x000eb7a8, 0x000eb7a8, 0x00000000}, |
4730 | { 0x0000ab04, 0x00000000, 0x00000000, 0x000eb7b0, 0x000eb7b0, 0x00000000 }, | 4724 | {0x0000ab04, 0x00000000, 0x00000000, 0x000eb7b0, 0x000eb7b0, 0x00000000}, |
4731 | { 0x0000ab08, 0x00000000, 0x00000000, 0x000eb7b4, 0x000eb7b4, 0x00000000 }, | 4725 | {0x0000ab08, 0x00000000, 0x00000000, 0x000eb7b4, 0x000eb7b4, 0x00000000}, |
4732 | { 0x0000ab0c, 0x00000000, 0x00000000, 0x000eb7b8, 0x000eb7b8, 0x00000000 }, | 4726 | {0x0000ab0c, 0x00000000, 0x00000000, 0x000eb7b8, 0x000eb7b8, 0x00000000}, |
4733 | { 0x0000ab10, 0x00000000, 0x00000000, 0x000eb7a5, 0x000eb7a5, 0x00000000 }, | 4727 | {0x0000ab10, 0x00000000, 0x00000000, 0x000eb7a5, 0x000eb7a5, 0x00000000}, |
4734 | { 0x0000ab14, 0x00000000, 0x00000000, 0x000eb7a9, 0x000eb7a9, 0x00000000 }, | 4728 | {0x0000ab14, 0x00000000, 0x00000000, 0x000eb7a9, 0x000eb7a9, 0x00000000}, |
4735 | { 0x0000ab18, 0x00000000, 0x00000000, 0x000eb7ad, 0x000eb7ad, 0x00000000 }, | 4729 | {0x0000ab18, 0x00000000, 0x00000000, 0x000eb7ad, 0x000eb7ad, 0x00000000}, |
4736 | { 0x0000ab1c, 0x00000000, 0x00000000, 0x000eb7b1, 0x000eb7b1, 0x00000000 }, | 4730 | {0x0000ab1c, 0x00000000, 0x00000000, 0x000eb7b1, 0x000eb7b1, 0x00000000}, |
4737 | { 0x0000ab20, 0x00000000, 0x00000000, 0x000eb7b5, 0x000eb7b5, 0x00000000 }, | 4731 | {0x0000ab20, 0x00000000, 0x00000000, 0x000eb7b5, 0x000eb7b5, 0x00000000}, |
4738 | { 0x0000ab24, 0x00000000, 0x00000000, 0x000eb7b9, 0x000eb7b9, 0x00000000 }, | 4732 | {0x0000ab24, 0x00000000, 0x00000000, 0x000eb7b9, 0x000eb7b9, 0x00000000}, |
4739 | { 0x0000ab28, 0x00000000, 0x00000000, 0x000eb7c5, 0x000eb7c5, 0x00000000 }, | 4733 | {0x0000ab28, 0x00000000, 0x00000000, 0x000eb7c5, 0x000eb7c5, 0x00000000}, |
4740 | { 0x0000ab2c, 0x00000000, 0x00000000, 0x000eb7c9, 0x000eb7c9, 0x00000000 }, | 4734 | {0x0000ab2c, 0x00000000, 0x00000000, 0x000eb7c9, 0x000eb7c9, 0x00000000}, |
4741 | { 0x0000ab30, 0x00000000, 0x00000000, 0x000eb7d1, 0x000eb7d1, 0x00000000 }, | 4735 | {0x0000ab30, 0x00000000, 0x00000000, 0x000eb7d1, 0x000eb7d1, 0x00000000}, |
4742 | { 0x0000ab34, 0x00000000, 0x00000000, 0x000eb7d5, 0x000eb7d5, 0x00000000 }, | 4736 | {0x0000ab34, 0x00000000, 0x00000000, 0x000eb7d5, 0x000eb7d5, 0x00000000}, |
4743 | { 0x0000ab38, 0x00000000, 0x00000000, 0x000eb7d9, 0x000eb7d9, 0x00000000 }, | 4737 | {0x0000ab38, 0x00000000, 0x00000000, 0x000eb7d9, 0x000eb7d9, 0x00000000}, |
4744 | { 0x0000ab3c, 0x00000000, 0x00000000, 0x000eb7c6, 0x000eb7c6, 0x00000000 }, | 4738 | {0x0000ab3c, 0x00000000, 0x00000000, 0x000eb7c6, 0x000eb7c6, 0x00000000}, |
4745 | { 0x0000ab40, 0x00000000, 0x00000000, 0x000eb7ca, 0x000eb7ca, 0x00000000 }, | 4739 | {0x0000ab40, 0x00000000, 0x00000000, 0x000eb7ca, 0x000eb7ca, 0x00000000}, |
4746 | { 0x0000ab44, 0x00000000, 0x00000000, 0x000eb7ce, 0x000eb7ce, 0x00000000 }, | 4740 | {0x0000ab44, 0x00000000, 0x00000000, 0x000eb7ce, 0x000eb7ce, 0x00000000}, |
4747 | { 0x0000ab48, 0x00000000, 0x00000000, 0x000eb7d2, 0x000eb7d2, 0x00000000 }, | 4741 | {0x0000ab48, 0x00000000, 0x00000000, 0x000eb7d2, 0x000eb7d2, 0x00000000}, |
4748 | { 0x0000ab4c, 0x00000000, 0x00000000, 0x000eb7d6, 0x000eb7d6, 0x00000000 }, | 4742 | {0x0000ab4c, 0x00000000, 0x00000000, 0x000eb7d6, 0x000eb7d6, 0x00000000}, |
4749 | { 0x0000ab50, 0x00000000, 0x00000000, 0x000eb7c3, 0x000eb7c3, 0x00000000 }, | 4743 | {0x0000ab50, 0x00000000, 0x00000000, 0x000eb7c3, 0x000eb7c3, 0x00000000}, |
4750 | { 0x0000ab54, 0x00000000, 0x00000000, 0x000eb7c7, 0x000eb7c7, 0x00000000 }, | 4744 | {0x0000ab54, 0x00000000, 0x00000000, 0x000eb7c7, 0x000eb7c7, 0x00000000}, |
4751 | { 0x0000ab58, 0x00000000, 0x00000000, 0x000eb7cb, 0x000eb7cb, 0x00000000 }, | 4745 | {0x0000ab58, 0x00000000, 0x00000000, 0x000eb7cb, 0x000eb7cb, 0x00000000}, |
4752 | { 0x0000ab5c, 0x00000000, 0x00000000, 0x000eb7cf, 0x000eb7cf, 0x00000000 }, | 4746 | {0x0000ab5c, 0x00000000, 0x00000000, 0x000eb7cf, 0x000eb7cf, 0x00000000}, |
4753 | { 0x0000ab60, 0x00000000, 0x00000000, 0x000eb7d7, 0x000eb7d7, 0x00000000 }, | 4747 | {0x0000ab60, 0x00000000, 0x00000000, 0x000eb7d7, 0x000eb7d7, 0x00000000}, |
4754 | { 0x0000ab64, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4748 | {0x0000ab64, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4755 | { 0x0000ab68, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4749 | {0x0000ab68, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4756 | { 0x0000ab6c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4750 | {0x0000ab6c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4757 | { 0x0000ab70, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4751 | {0x0000ab70, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4758 | { 0x0000ab74, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4752 | {0x0000ab74, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4759 | { 0x0000ab78, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4753 | {0x0000ab78, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4760 | { 0x0000ab7c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4754 | {0x0000ab7c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4761 | { 0x0000ab80, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4755 | {0x0000ab80, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4762 | { 0x0000ab84, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4756 | {0x0000ab84, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4763 | { 0x0000ab88, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4757 | {0x0000ab88, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4764 | { 0x0000ab8c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4758 | {0x0000ab8c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4765 | { 0x0000ab90, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4759 | {0x0000ab90, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4766 | { 0x0000ab94, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4760 | {0x0000ab94, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4767 | { 0x0000ab98, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4761 | {0x0000ab98, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4768 | { 0x0000ab9c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4762 | {0x0000ab9c, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4769 | { 0x0000aba0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4763 | {0x0000aba0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4770 | { 0x0000aba4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4764 | {0x0000aba4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4771 | { 0x0000aba8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4765 | {0x0000aba8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4772 | { 0x0000abac, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4766 | {0x0000abac, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4773 | { 0x0000abb0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4767 | {0x0000abb0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4774 | { 0x0000abb4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4768 | {0x0000abb4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4775 | { 0x0000abb8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4769 | {0x0000abb8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4776 | { 0x0000abbc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4770 | {0x0000abbc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4777 | { 0x0000abc0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4771 | {0x0000abc0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4778 | { 0x0000abc4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4772 | {0x0000abc4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4779 | { 0x0000abc8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4773 | {0x0000abc8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4780 | { 0x0000abcc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4774 | {0x0000abcc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4781 | { 0x0000abd0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4775 | {0x0000abd0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4782 | { 0x0000abd4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4776 | {0x0000abd4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4783 | { 0x0000abd8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4777 | {0x0000abd8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4784 | { 0x0000abdc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4778 | {0x0000abdc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4785 | { 0x0000abe0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4779 | {0x0000abe0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4786 | { 0x0000abe4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4780 | {0x0000abe4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4787 | { 0x0000abe8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4781 | {0x0000abe8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4788 | { 0x0000abec, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4782 | {0x0000abec, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4789 | { 0x0000abf0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4783 | {0x0000abf0, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4790 | { 0x0000abf4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4784 | {0x0000abf4, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4791 | { 0x0000abf8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4785 | {0x0000abf8, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4792 | { 0x0000abfc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000 }, | 4786 | {0x0000abfc, 0x00000000, 0x00000000, 0x000eb7db, 0x000eb7db, 0x00000000}, |
4793 | { 0x0000a204, 0x00000004, 0x00000004, 0x00000004, 0x00000004, 0x00000004 }, | 4787 | {0x0000a204, 0x00000004, 0x00000004, 0x00000004, 0x00000004, 0x00000004}, |
4794 | { 0x0000a20c, 0x00000014, 0x00000014, 0x0001f000, 0x0001f000, 0x0001f000 }, | 4788 | {0x0000a20c, 0x00000014, 0x00000014, 0x0001f000, 0x0001f000, 0x0001f000}, |
4795 | { 0x0000b20c, 0x00000014, 0x00000014, 0x0001f000, 0x0001f000, 0x0001f000 }, | 4789 | {0x0000b20c, 0x00000014, 0x00000014, 0x0001f000, 0x0001f000, 0x0001f000}, |
4796 | { 0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a }, | 4790 | {0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a}, |
4797 | { 0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000 }, | 4791 | {0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000}, |
4798 | { 0x0000a250, 0x0004f000, 0x0004f000, 0x0004a000, 0x0004a000, 0x0004a000 }, | 4792 | {0x0000a250, 0x0004f000, 0x0004f000, 0x0004a000, 0x0004a000, 0x0004a000}, |
4799 | { 0x0000a358, 0x7999aa02, 0x7999aa02, 0x7999aa0e, 0x7999aa0e, 0x7999aa0e }, | 4793 | {0x0000a358, 0x7999aa02, 0x7999aa02, 0x7999aa0e, 0x7999aa0e, 0x7999aa0e}, |
4800 | }; | 4794 | }; |
4801 | 4795 | ||
4802 | static const u32 ar9271Common_9271[][2] = { | 4796 | static const u32 ar9271Common_9271[][2] = { |
4803 | { 0x0000000c, 0x00000000 }, | 4797 | /* Addr allmodes */ |
4804 | { 0x00000030, 0x00020045 }, | 4798 | {0x0000000c, 0x00000000}, |
4805 | { 0x00000034, 0x00000005 }, | 4799 | {0x00000030, 0x00020045}, |
4806 | { 0x00000040, 0x00000000 }, | 4800 | {0x00000034, 0x00000005}, |
4807 | { 0x00000044, 0x00000008 }, | 4801 | {0x00000040, 0x00000000}, |
4808 | { 0x00000048, 0x00000008 }, | 4802 | {0x00000044, 0x00000008}, |
4809 | { 0x0000004c, 0x00000010 }, | 4803 | {0x00000048, 0x00000008}, |
4810 | { 0x00000050, 0x00000000 }, | 4804 | {0x0000004c, 0x00000010}, |
4811 | { 0x00000054, 0x0000001f }, | 4805 | {0x00000050, 0x00000000}, |
4812 | { 0x00000800, 0x00000000 }, | 4806 | {0x00000054, 0x0000001f}, |
4813 | { 0x00000804, 0x00000000 }, | 4807 | {0x00000800, 0x00000000}, |
4814 | { 0x00000808, 0x00000000 }, | 4808 | {0x00000804, 0x00000000}, |
4815 | { 0x0000080c, 0x00000000 }, | 4809 | {0x00000808, 0x00000000}, |
4816 | { 0x00000810, 0x00000000 }, | 4810 | {0x0000080c, 0x00000000}, |
4817 | { 0x00000814, 0x00000000 }, | 4811 | {0x00000810, 0x00000000}, |
4818 | { 0x00000818, 0x00000000 }, | 4812 | {0x00000814, 0x00000000}, |
4819 | { 0x0000081c, 0x00000000 }, | 4813 | {0x00000818, 0x00000000}, |
4820 | { 0x00000820, 0x00000000 }, | 4814 | {0x0000081c, 0x00000000}, |
4821 | { 0x00000824, 0x00000000 }, | 4815 | {0x00000820, 0x00000000}, |
4822 | { 0x00001040, 0x002ffc0f }, | 4816 | {0x00000824, 0x00000000}, |
4823 | { 0x00001044, 0x002ffc0f }, | 4817 | {0x00001040, 0x002ffc0f}, |
4824 | { 0x00001048, 0x002ffc0f }, | 4818 | {0x00001044, 0x002ffc0f}, |
4825 | { 0x0000104c, 0x002ffc0f }, | 4819 | {0x00001048, 0x002ffc0f}, |
4826 | { 0x00001050, 0x002ffc0f }, | 4820 | {0x0000104c, 0x002ffc0f}, |
4827 | { 0x00001054, 0x002ffc0f }, | 4821 | {0x00001050, 0x002ffc0f}, |
4828 | { 0x00001058, 0x002ffc0f }, | 4822 | {0x00001054, 0x002ffc0f}, |
4829 | { 0x0000105c, 0x002ffc0f }, | 4823 | {0x00001058, 0x002ffc0f}, |
4830 | { 0x00001060, 0x002ffc0f }, | 4824 | {0x0000105c, 0x002ffc0f}, |
4831 | { 0x00001064, 0x002ffc0f }, | 4825 | {0x00001060, 0x002ffc0f}, |
4832 | { 0x00001230, 0x00000000 }, | 4826 | {0x00001064, 0x002ffc0f}, |
4833 | { 0x00001270, 0x00000000 }, | 4827 | {0x00001230, 0x00000000}, |
4834 | { 0x00001038, 0x00000000 }, | 4828 | {0x00001270, 0x00000000}, |
4835 | { 0x00001078, 0x00000000 }, | 4829 | {0x00001038, 0x00000000}, |
4836 | { 0x000010b8, 0x00000000 }, | 4830 | {0x00001078, 0x00000000}, |
4837 | { 0x000010f8, 0x00000000 }, | 4831 | {0x000010b8, 0x00000000}, |
4838 | { 0x00001138, 0x00000000 }, | 4832 | {0x000010f8, 0x00000000}, |
4839 | { 0x00001178, 0x00000000 }, | 4833 | {0x00001138, 0x00000000}, |
4840 | { 0x000011b8, 0x00000000 }, | 4834 | {0x00001178, 0x00000000}, |
4841 | { 0x000011f8, 0x00000000 }, | 4835 | {0x000011b8, 0x00000000}, |
4842 | { 0x00001238, 0x00000000 }, | 4836 | {0x000011f8, 0x00000000}, |
4843 | { 0x00001278, 0x00000000 }, | 4837 | {0x00001238, 0x00000000}, |
4844 | { 0x000012b8, 0x00000000 }, | 4838 | {0x00001278, 0x00000000}, |
4845 | { 0x000012f8, 0x00000000 }, | 4839 | {0x000012b8, 0x00000000}, |
4846 | { 0x00001338, 0x00000000 }, | 4840 | {0x000012f8, 0x00000000}, |
4847 | { 0x00001378, 0x00000000 }, | 4841 | {0x00001338, 0x00000000}, |
4848 | { 0x000013b8, 0x00000000 }, | 4842 | {0x00001378, 0x00000000}, |
4849 | { 0x000013f8, 0x00000000 }, | 4843 | {0x000013b8, 0x00000000}, |
4850 | { 0x00001438, 0x00000000 }, | 4844 | {0x000013f8, 0x00000000}, |
4851 | { 0x00001478, 0x00000000 }, | 4845 | {0x00001438, 0x00000000}, |
4852 | { 0x000014b8, 0x00000000 }, | 4846 | {0x00001478, 0x00000000}, |
4853 | { 0x000014f8, 0x00000000 }, | 4847 | {0x000014b8, 0x00000000}, |
4854 | { 0x00001538, 0x00000000 }, | 4848 | {0x000014f8, 0x00000000}, |
4855 | { 0x00001578, 0x00000000 }, | 4849 | {0x00001538, 0x00000000}, |
4856 | { 0x000015b8, 0x00000000 }, | 4850 | {0x00001578, 0x00000000}, |
4857 | { 0x000015f8, 0x00000000 }, | 4851 | {0x000015b8, 0x00000000}, |
4858 | { 0x00001638, 0x00000000 }, | 4852 | {0x000015f8, 0x00000000}, |
4859 | { 0x00001678, 0x00000000 }, | 4853 | {0x00001638, 0x00000000}, |
4860 | { 0x000016b8, 0x00000000 }, | 4854 | {0x00001678, 0x00000000}, |
4861 | { 0x000016f8, 0x00000000 }, | 4855 | {0x000016b8, 0x00000000}, |
4862 | { 0x00001738, 0x00000000 }, | 4856 | {0x000016f8, 0x00000000}, |
4863 | { 0x00001778, 0x00000000 }, | 4857 | {0x00001738, 0x00000000}, |
4864 | { 0x000017b8, 0x00000000 }, | 4858 | {0x00001778, 0x00000000}, |
4865 | { 0x000017f8, 0x00000000 }, | 4859 | {0x000017b8, 0x00000000}, |
4866 | { 0x0000103c, 0x00000000 }, | 4860 | {0x000017f8, 0x00000000}, |
4867 | { 0x0000107c, 0x00000000 }, | 4861 | {0x0000103c, 0x00000000}, |
4868 | { 0x000010bc, 0x00000000 }, | 4862 | {0x0000107c, 0x00000000}, |
4869 | { 0x000010fc, 0x00000000 }, | 4863 | {0x000010bc, 0x00000000}, |
4870 | { 0x0000113c, 0x00000000 }, | 4864 | {0x000010fc, 0x00000000}, |
4871 | { 0x0000117c, 0x00000000 }, | 4865 | {0x0000113c, 0x00000000}, |
4872 | { 0x000011bc, 0x00000000 }, | 4866 | {0x0000117c, 0x00000000}, |
4873 | { 0x000011fc, 0x00000000 }, | 4867 | {0x000011bc, 0x00000000}, |
4874 | { 0x0000123c, 0x00000000 }, | 4868 | {0x000011fc, 0x00000000}, |
4875 | { 0x0000127c, 0x00000000 }, | 4869 | {0x0000123c, 0x00000000}, |
4876 | { 0x000012bc, 0x00000000 }, | 4870 | {0x0000127c, 0x00000000}, |
4877 | { 0x000012fc, 0x00000000 }, | 4871 | {0x000012bc, 0x00000000}, |
4878 | { 0x0000133c, 0x00000000 }, | 4872 | {0x000012fc, 0x00000000}, |
4879 | { 0x0000137c, 0x00000000 }, | 4873 | {0x0000133c, 0x00000000}, |
4880 | { 0x000013bc, 0x00000000 }, | 4874 | {0x0000137c, 0x00000000}, |
4881 | { 0x000013fc, 0x00000000 }, | 4875 | {0x000013bc, 0x00000000}, |
4882 | { 0x0000143c, 0x00000000 }, | 4876 | {0x000013fc, 0x00000000}, |
4883 | { 0x0000147c, 0x00000000 }, | 4877 | {0x0000143c, 0x00000000}, |
4884 | { 0x00004030, 0x00000002 }, | 4878 | {0x0000147c, 0x00000000}, |
4885 | { 0x0000403c, 0x00000002 }, | 4879 | {0x00004030, 0x00000002}, |
4886 | { 0x00004024, 0x0000001f }, | 4880 | {0x0000403c, 0x00000002}, |
4887 | { 0x00004060, 0x00000000 }, | 4881 | {0x00004024, 0x0000001f}, |
4888 | { 0x00004064, 0x00000000 }, | 4882 | {0x00004060, 0x00000000}, |
4889 | { 0x00008004, 0x00000000 }, | 4883 | {0x00004064, 0x00000000}, |
4890 | { 0x00008008, 0x00000000 }, | 4884 | {0x00008004, 0x00000000}, |
4891 | { 0x0000800c, 0x00000000 }, | 4885 | {0x00008008, 0x00000000}, |
4892 | { 0x00008018, 0x00000700 }, | 4886 | {0x0000800c, 0x00000000}, |
4893 | { 0x00008020, 0x00000000 }, | 4887 | {0x00008018, 0x00000700}, |
4894 | { 0x00008038, 0x00000000 }, | 4888 | {0x00008020, 0x00000000}, |
4895 | { 0x0000803c, 0x00000000 }, | 4889 | {0x00008038, 0x00000000}, |
4896 | { 0x00008048, 0x00000000 }, | 4890 | {0x0000803c, 0x00000000}, |
4897 | { 0x00008054, 0x00000000 }, | 4891 | {0x00008048, 0x00000000}, |
4898 | { 0x00008058, 0x00000000 }, | 4892 | {0x00008054, 0x00000000}, |
4899 | { 0x0000805c, 0x000fc78f }, | 4893 | {0x00008058, 0x00000000}, |
4900 | { 0x00008060, 0x0000000f }, | 4894 | {0x0000805c, 0x000fc78f}, |
4901 | { 0x00008064, 0x00000000 }, | 4895 | {0x00008060, 0x0000000f}, |
4902 | { 0x00008070, 0x00000000 }, | 4896 | {0x00008064, 0x00000000}, |
4903 | { 0x000080b0, 0x00000000 }, | 4897 | {0x00008070, 0x00000000}, |
4904 | { 0x000080b4, 0x00000000 }, | 4898 | {0x000080b0, 0x00000000}, |
4905 | { 0x000080b8, 0x00000000 }, | 4899 | {0x000080b4, 0x00000000}, |
4906 | { 0x000080bc, 0x00000000 }, | 4900 | {0x000080b8, 0x00000000}, |
4907 | { 0x000080c0, 0x2a80001a }, | 4901 | {0x000080bc, 0x00000000}, |
4908 | { 0x000080c4, 0x05dc01e0 }, | 4902 | {0x000080c0, 0x2a80001a}, |
4909 | { 0x000080c8, 0x1f402710 }, | 4903 | {0x000080c4, 0x05dc01e0}, |
4910 | { 0x000080cc, 0x01f40000 }, | 4904 | {0x000080c8, 0x1f402710}, |
4911 | { 0x000080d0, 0x00001e00 }, | 4905 | {0x000080cc, 0x01f40000}, |
4912 | { 0x000080d4, 0x00000000 }, | 4906 | {0x000080d0, 0x00001e00}, |
4913 | { 0x000080d8, 0x00400000 }, | 4907 | {0x000080d4, 0x00000000}, |
4914 | { 0x000080e0, 0xffffffff }, | 4908 | {0x000080d8, 0x00400000}, |
4915 | { 0x000080e4, 0x0000ffff }, | 4909 | {0x000080e0, 0xffffffff}, |
4916 | { 0x000080e8, 0x003f3f3f }, | 4910 | {0x000080e4, 0x0000ffff}, |
4917 | { 0x000080ec, 0x00000000 }, | 4911 | {0x000080e8, 0x003f3f3f}, |
4918 | { 0x000080f0, 0x00000000 }, | 4912 | {0x000080ec, 0x00000000}, |
4919 | { 0x000080f4, 0x00000000 }, | 4913 | {0x000080f0, 0x00000000}, |
4920 | { 0x000080f8, 0x00000000 }, | 4914 | {0x000080f4, 0x00000000}, |
4921 | { 0x000080fc, 0x00020000 }, | 4915 | {0x000080f8, 0x00000000}, |
4922 | { 0x00008100, 0x00020000 }, | 4916 | {0x000080fc, 0x00020000}, |
4923 | { 0x00008104, 0x00000001 }, | 4917 | {0x00008100, 0x00020000}, |
4924 | { 0x00008108, 0x00000052 }, | 4918 | {0x00008104, 0x00000001}, |
4925 | { 0x0000810c, 0x00000000 }, | 4919 | {0x00008108, 0x00000052}, |
4926 | { 0x00008110, 0x00000168 }, | 4920 | {0x0000810c, 0x00000000}, |
4927 | { 0x00008118, 0x000100aa }, | 4921 | {0x00008110, 0x00000168}, |
4928 | { 0x0000811c, 0x00003210 }, | 4922 | {0x00008118, 0x000100aa}, |
4929 | { 0x00008120, 0x08f04810 }, | 4923 | {0x0000811c, 0x00003210}, |
4930 | { 0x00008124, 0x00000000 }, | 4924 | {0x00008120, 0x08f04810}, |
4931 | { 0x00008128, 0x00000000 }, | 4925 | {0x00008124, 0x00000000}, |
4932 | { 0x0000812c, 0x00000000 }, | 4926 | {0x00008128, 0x00000000}, |
4933 | { 0x00008130, 0x00000000 }, | 4927 | {0x0000812c, 0x00000000}, |
4934 | { 0x00008134, 0x00000000 }, | 4928 | {0x00008130, 0x00000000}, |
4935 | { 0x00008138, 0x00000000 }, | 4929 | {0x00008134, 0x00000000}, |
4936 | { 0x0000813c, 0x00000000 }, | 4930 | {0x00008138, 0x00000000}, |
4937 | { 0x00008144, 0xffffffff }, | 4931 | {0x0000813c, 0x00000000}, |
4938 | { 0x00008168, 0x00000000 }, | 4932 | {0x00008144, 0xffffffff}, |
4939 | { 0x0000816c, 0x00000000 }, | 4933 | {0x00008168, 0x00000000}, |
4940 | { 0x00008170, 0x32143320 }, | 4934 | {0x0000816c, 0x00000000}, |
4941 | { 0x00008174, 0xfaa4fa50 }, | 4935 | {0x00008170, 0x32143320}, |
4942 | { 0x00008178, 0x00000100 }, | 4936 | {0x00008174, 0xfaa4fa50}, |
4943 | { 0x0000817c, 0x00000000 }, | 4937 | {0x00008178, 0x00000100}, |
4944 | { 0x000081c0, 0x00000000 }, | 4938 | {0x0000817c, 0x00000000}, |
4945 | { 0x000081d0, 0x0000320a }, | 4939 | {0x000081c0, 0x00000000}, |
4946 | { 0x000081ec, 0x00000000 }, | 4940 | {0x000081d0, 0x0000320a}, |
4947 | { 0x000081f0, 0x00000000 }, | 4941 | {0x000081ec, 0x00000000}, |
4948 | { 0x000081f4, 0x00000000 }, | 4942 | {0x000081f0, 0x00000000}, |
4949 | { 0x000081f8, 0x00000000 }, | 4943 | {0x000081f4, 0x00000000}, |
4950 | { 0x000081fc, 0x00000000 }, | 4944 | {0x000081f8, 0x00000000}, |
4951 | { 0x00008200, 0x00000000 }, | 4945 | {0x000081fc, 0x00000000}, |
4952 | { 0x00008204, 0x00000000 }, | 4946 | {0x00008200, 0x00000000}, |
4953 | { 0x00008208, 0x00000000 }, | 4947 | {0x00008204, 0x00000000}, |
4954 | { 0x0000820c, 0x00000000 }, | 4948 | {0x00008208, 0x00000000}, |
4955 | { 0x00008210, 0x00000000 }, | 4949 | {0x0000820c, 0x00000000}, |
4956 | { 0x00008214, 0x00000000 }, | 4950 | {0x00008210, 0x00000000}, |
4957 | { 0x00008218, 0x00000000 }, | 4951 | {0x00008214, 0x00000000}, |
4958 | { 0x0000821c, 0x00000000 }, | 4952 | {0x00008218, 0x00000000}, |
4959 | { 0x00008220, 0x00000000 }, | 4953 | {0x0000821c, 0x00000000}, |
4960 | { 0x00008224, 0x00000000 }, | 4954 | {0x00008220, 0x00000000}, |
4961 | { 0x00008228, 0x00000000 }, | 4955 | {0x00008224, 0x00000000}, |
4962 | { 0x0000822c, 0x00000000 }, | 4956 | {0x00008228, 0x00000000}, |
4963 | { 0x00008230, 0x00000000 }, | 4957 | {0x0000822c, 0x00000000}, |
4964 | { 0x00008234, 0x00000000 }, | 4958 | {0x00008230, 0x00000000}, |
4965 | { 0x00008238, 0x00000000 }, | 4959 | {0x00008234, 0x00000000}, |
4966 | { 0x0000823c, 0x00000000 }, | 4960 | {0x00008238, 0x00000000}, |
4967 | { 0x00008240, 0x00100000 }, | 4961 | {0x0000823c, 0x00000000}, |
4968 | { 0x00008244, 0x0010f400 }, | 4962 | {0x00008240, 0x00100000}, |
4969 | { 0x00008248, 0x00000100 }, | 4963 | {0x00008244, 0x0010f400}, |
4970 | { 0x0000824c, 0x0001e800 }, | 4964 | {0x00008248, 0x00000100}, |
4971 | { 0x00008250, 0x00000000 }, | 4965 | {0x0000824c, 0x0001e800}, |
4972 | { 0x00008254, 0x00000000 }, | 4966 | {0x00008250, 0x00000000}, |
4973 | { 0x00008258, 0x00000000 }, | 4967 | {0x00008254, 0x00000000}, |
4974 | { 0x0000825c, 0x400000ff }, | 4968 | {0x00008258, 0x00000000}, |
4975 | { 0x00008260, 0x00080922 }, | 4969 | {0x0000825c, 0x400000ff}, |
4976 | { 0x00008264, 0x88a00010 }, | 4970 | {0x00008260, 0x00080922}, |
4977 | { 0x00008270, 0x00000000 }, | 4971 | {0x00008264, 0x88a00010}, |
4978 | { 0x00008274, 0x40000000 }, | 4972 | {0x00008270, 0x00000000}, |
4979 | { 0x00008278, 0x003e4180 }, | 4973 | {0x00008274, 0x40000000}, |
4980 | { 0x0000827c, 0x00000000 }, | 4974 | {0x00008278, 0x003e4180}, |
4981 | { 0x00008284, 0x0000002c }, | 4975 | {0x0000827c, 0x00000000}, |
4982 | { 0x00008288, 0x0000002c }, | 4976 | {0x00008284, 0x0000002c}, |
4983 | { 0x0000828c, 0x00000000 }, | 4977 | {0x00008288, 0x0000002c}, |
4984 | { 0x00008294, 0x00000000 }, | 4978 | {0x0000828c, 0x00000000}, |
4985 | { 0x00008298, 0x00000000 }, | 4979 | {0x00008294, 0x00000000}, |
4986 | { 0x0000829c, 0x00000000 }, | 4980 | {0x00008298, 0x00000000}, |
4987 | { 0x00008300, 0x00000040 }, | 4981 | {0x0000829c, 0x00000000}, |
4988 | { 0x00008314, 0x00000000 }, | 4982 | {0x00008300, 0x00000040}, |
4989 | { 0x00008328, 0x00000000 }, | 4983 | {0x00008314, 0x00000000}, |
4990 | { 0x0000832c, 0x00000001 }, | 4984 | {0x00008328, 0x00000000}, |
4991 | { 0x00008330, 0x00000302 }, | 4985 | {0x0000832c, 0x00000001}, |
4992 | { 0x00008334, 0x00000e00 }, | 4986 | {0x00008330, 0x00000302}, |
4993 | { 0x00008338, 0x00ff0000 }, | 4987 | {0x00008334, 0x00000e00}, |
4994 | { 0x0000833c, 0x00000000 }, | 4988 | {0x00008338, 0x00ff0000}, |
4995 | { 0x00008340, 0x00010380 }, | 4989 | {0x0000833c, 0x00000000}, |
4996 | { 0x00008344, 0x00581043 }, | 4990 | {0x00008340, 0x00010380}, |
4997 | { 0x00007010, 0x00000030 }, | 4991 | {0x00008344, 0x00581043}, |
4998 | { 0x00007034, 0x00000002 }, | 4992 | {0x00007010, 0x00000030}, |
4999 | { 0x00007038, 0x000004c2 }, | 4993 | {0x00007034, 0x00000002}, |
5000 | { 0x00007800, 0x00140000 }, | 4994 | {0x00007038, 0x000004c2}, |
5001 | { 0x00007804, 0x0e4548d8 }, | 4995 | {0x00007800, 0x00140000}, |
5002 | { 0x00007808, 0x54214514 }, | 4996 | {0x00007804, 0x0e4548d8}, |
5003 | { 0x0000780c, 0x02025820 }, | 4997 | {0x00007808, 0x54214514}, |
5004 | { 0x00007810, 0x71c0d388 }, | 4998 | {0x0000780c, 0x02025820}, |
5005 | { 0x00007814, 0x924934a8 }, | 4999 | {0x00007810, 0x71c0d388}, |
5006 | { 0x0000781c, 0x00000000 }, | 5000 | {0x00007814, 0x924934a8}, |
5007 | { 0x00007828, 0x66964300 }, | 5001 | {0x0000781c, 0x00000000}, |
5008 | { 0x0000782c, 0x8db6d961 }, | 5002 | {0x00007828, 0x66964300}, |
5009 | { 0x00007830, 0x8db6d96c }, | 5003 | {0x0000782c, 0x8db6d961}, |
5010 | { 0x00007834, 0x6140008b }, | 5004 | {0x00007830, 0x8db6d96c}, |
5011 | { 0x0000783c, 0x72ee0a72 }, | 5005 | {0x00007834, 0x6140008b}, |
5012 | { 0x00007840, 0xbbfffffc }, | 5006 | {0x0000783c, 0x72ee0a72}, |
5013 | { 0x00007844, 0x000c0db6 }, | 5007 | {0x00007840, 0xbbfffffc}, |
5014 | { 0x00007848, 0x6db6246f }, | 5008 | {0x00007844, 0x000c0db6}, |
5015 | { 0x0000784c, 0x6d9b66db }, | 5009 | {0x00007848, 0x6db6246f}, |
5016 | { 0x00007850, 0x6d8c6dba }, | 5010 | {0x0000784c, 0x6d9b66db}, |
5017 | { 0x00007854, 0x00040000 }, | 5011 | {0x00007850, 0x6d8c6dba}, |
5018 | { 0x00007858, 0xdb003012 }, | 5012 | {0x00007854, 0x00040000}, |
5019 | { 0x0000785c, 0x04924914 }, | 5013 | {0x00007858, 0xdb003012}, |
5020 | { 0x00007860, 0x21084210 }, | 5014 | {0x0000785c, 0x04924914}, |
5021 | { 0x00007864, 0xf7d7ffde }, | 5015 | {0x00007860, 0x21084210}, |
5022 | { 0x00007868, 0xc2034080 }, | 5016 | {0x00007864, 0xf7d7ffde}, |
5023 | { 0x00007870, 0x10142c00 }, | 5017 | {0x00007868, 0xc2034080}, |
5024 | { 0x00009808, 0x00000000 }, | 5018 | {0x00007870, 0x10142c00}, |
5025 | { 0x0000980c, 0xafe68e30 }, | 5019 | {0x00009808, 0x00000000}, |
5026 | { 0x00009810, 0xfd14e000 }, | 5020 | {0x0000980c, 0xafe68e30}, |
5027 | { 0x00009814, 0x9c0a9f6b }, | 5021 | {0x00009810, 0xfd14e000}, |
5028 | { 0x0000981c, 0x00000000 }, | 5022 | {0x00009814, 0x9c0a9f6b}, |
5029 | { 0x0000982c, 0x0000a000 }, | 5023 | {0x0000981c, 0x00000000}, |
5030 | { 0x00009830, 0x00000000 }, | 5024 | {0x0000982c, 0x0000a000}, |
5031 | { 0x0000983c, 0x00200400 }, | 5025 | {0x00009830, 0x00000000}, |
5032 | { 0x0000984c, 0x0040233c }, | 5026 | {0x0000983c, 0x00200400}, |
5033 | { 0x00009854, 0x00000044 }, | 5027 | {0x0000984c, 0x0040233c}, |
5034 | { 0x00009900, 0x00000000 }, | 5028 | {0x00009854, 0x00000044}, |
5035 | { 0x00009904, 0x00000000 }, | 5029 | {0x00009900, 0x00000000}, |
5036 | { 0x00009908, 0x00000000 }, | 5030 | {0x00009904, 0x00000000}, |
5037 | { 0x0000990c, 0x00000000 }, | 5031 | {0x00009908, 0x00000000}, |
5038 | { 0x0000991c, 0x10000fff }, | 5032 | {0x0000990c, 0x00000000}, |
5039 | { 0x00009920, 0x04900000 }, | 5033 | {0x0000991c, 0x10000fff}, |
5040 | { 0x00009928, 0x00000001 }, | 5034 | {0x00009920, 0x04900000}, |
5041 | { 0x0000992c, 0x00000004 }, | 5035 | {0x00009928, 0x00000001}, |
5042 | { 0x00009934, 0x1e1f2022 }, | 5036 | {0x0000992c, 0x00000004}, |
5043 | { 0x00009938, 0x0a0b0c0d }, | 5037 | {0x00009934, 0x1e1f2022}, |
5044 | { 0x0000993c, 0x00000000 }, | 5038 | {0x00009938, 0x0a0b0c0d}, |
5045 | { 0x00009940, 0x14750604 }, | 5039 | {0x0000993c, 0x00000000}, |
5046 | { 0x00009948, 0x9280c00a }, | 5040 | {0x00009940, 0x14750604}, |
5047 | { 0x0000994c, 0x00020028 }, | 5041 | {0x00009948, 0x9280c00a}, |
5048 | { 0x00009954, 0x5f3ca3de }, | 5042 | {0x0000994c, 0x00020028}, |
5049 | { 0x00009958, 0x0108ecff }, | 5043 | {0x00009954, 0x5f3ca3de}, |
5050 | { 0x00009968, 0x000003ce }, | 5044 | {0x00009958, 0x0108ecff}, |
5051 | { 0x00009970, 0x192bb514 }, | 5045 | {0x00009968, 0x000003ce}, |
5052 | { 0x00009974, 0x00000000 }, | 5046 | {0x00009970, 0x192bb514}, |
5053 | { 0x00009978, 0x00000001 }, | 5047 | {0x00009974, 0x00000000}, |
5054 | { 0x0000997c, 0x00000000 }, | 5048 | {0x00009978, 0x00000001}, |
5055 | { 0x00009980, 0x00000000 }, | 5049 | {0x0000997c, 0x00000000}, |
5056 | { 0x00009984, 0x00000000 }, | 5050 | {0x00009980, 0x00000000}, |
5057 | { 0x00009988, 0x00000000 }, | 5051 | {0x00009984, 0x00000000}, |
5058 | { 0x0000998c, 0x00000000 }, | 5052 | {0x00009988, 0x00000000}, |
5059 | { 0x00009990, 0x00000000 }, | 5053 | {0x0000998c, 0x00000000}, |
5060 | { 0x00009994, 0x00000000 }, | 5054 | {0x00009990, 0x00000000}, |
5061 | { 0x00009998, 0x00000000 }, | 5055 | {0x00009994, 0x00000000}, |
5062 | { 0x0000999c, 0x00000000 }, | 5056 | {0x00009998, 0x00000000}, |
5063 | { 0x000099a0, 0x00000000 }, | 5057 | {0x0000999c, 0x00000000}, |
5064 | { 0x000099a4, 0x00000001 }, | 5058 | {0x000099a0, 0x00000000}, |
5065 | { 0x000099a8, 0x201fff00 }, | 5059 | {0x000099a4, 0x00000001}, |
5066 | { 0x000099ac, 0x2def0400 }, | 5060 | {0x000099a8, 0x201fff00}, |
5067 | { 0x000099b0, 0x03051000 }, | 5061 | {0x000099ac, 0x2def0400}, |
5068 | { 0x000099b4, 0x00000820 }, | 5062 | {0x000099b0, 0x03051000}, |
5069 | { 0x000099dc, 0x00000000 }, | 5063 | {0x000099b4, 0x00000820}, |
5070 | { 0x000099e0, 0x00000000 }, | 5064 | {0x000099dc, 0x00000000}, |
5071 | { 0x000099e4, 0xaaaaaaaa }, | 5065 | {0x000099e0, 0x00000000}, |
5072 | { 0x000099e8, 0x3c466478 }, | 5066 | {0x000099e4, 0xaaaaaaaa}, |
5073 | { 0x000099ec, 0x0cc80caa }, | 5067 | {0x000099e8, 0x3c466478}, |
5074 | { 0x000099f0, 0x00000000 }, | 5068 | {0x000099ec, 0x0cc80caa}, |
5075 | { 0x0000a208, 0x803e68c8 }, | 5069 | {0x000099f0, 0x00000000}, |
5076 | { 0x0000a210, 0x4080a333 }, | 5070 | {0x0000a208, 0x803e68c8}, |
5077 | { 0x0000a214, 0x00206c10 }, | 5071 | {0x0000a210, 0x4080a333}, |
5078 | { 0x0000a218, 0x009c4060 }, | 5072 | {0x0000a214, 0x00206c10}, |
5079 | { 0x0000a220, 0x01834061 }, | 5073 | {0x0000a218, 0x009c4060}, |
5080 | { 0x0000a224, 0x00000400 }, | 5074 | {0x0000a220, 0x01834061}, |
5081 | { 0x0000a228, 0x000003b5 }, | 5075 | {0x0000a224, 0x00000400}, |
5082 | { 0x0000a22c, 0x00000000 }, | 5076 | {0x0000a228, 0x000003b5}, |
5083 | { 0x0000a234, 0x20202020 }, | 5077 | {0x0000a22c, 0x00000000}, |
5084 | { 0x0000a238, 0x20202020 }, | 5078 | {0x0000a234, 0x20202020}, |
5085 | { 0x0000a244, 0x00000000 }, | 5079 | {0x0000a238, 0x20202020}, |
5086 | { 0x0000a248, 0xfffffffc }, | 5080 | {0x0000a244, 0x00000000}, |
5087 | { 0x0000a24c, 0x00000000 }, | 5081 | {0x0000a248, 0xfffffffc}, |
5088 | { 0x0000a254, 0x00000000 }, | 5082 | {0x0000a24c, 0x00000000}, |
5089 | { 0x0000a258, 0x0ccb5380 }, | 5083 | {0x0000a254, 0x00000000}, |
5090 | { 0x0000a25c, 0x15151501 }, | 5084 | {0x0000a258, 0x0ccb5380}, |
5091 | { 0x0000a260, 0xdfa90f01 }, | 5085 | {0x0000a25c, 0x15151501}, |
5092 | { 0x0000a268, 0x00000000 }, | 5086 | {0x0000a260, 0xdfa90f01}, |
5093 | { 0x0000a26c, 0x0ebae9e6 }, | 5087 | {0x0000a268, 0x00000000}, |
5094 | { 0x0000a388, 0x0c000000 }, | 5088 | {0x0000a26c, 0x0ebae9e6}, |
5095 | { 0x0000a38c, 0x20202020 }, | 5089 | {0x0000a388, 0x0c000000}, |
5096 | { 0x0000a390, 0x20202020 }, | 5090 | {0x0000a38c, 0x20202020}, |
5097 | { 0x0000a39c, 0x00000001 }, | 5091 | {0x0000a390, 0x20202020}, |
5098 | { 0x0000a3a0, 0x00000000 }, | 5092 | {0x0000a39c, 0x00000001}, |
5099 | { 0x0000a3a4, 0x00000000 }, | 5093 | {0x0000a3a0, 0x00000000}, |
5100 | { 0x0000a3a8, 0x00000000 }, | 5094 | {0x0000a3a4, 0x00000000}, |
5101 | { 0x0000a3ac, 0x00000000 }, | 5095 | {0x0000a3a8, 0x00000000}, |
5102 | { 0x0000a3b0, 0x00000000 }, | 5096 | {0x0000a3ac, 0x00000000}, |
5103 | { 0x0000a3b4, 0x00000000 }, | 5097 | {0x0000a3b0, 0x00000000}, |
5104 | { 0x0000a3b8, 0x00000000 }, | 5098 | {0x0000a3b4, 0x00000000}, |
5105 | { 0x0000a3bc, 0x00000000 }, | 5099 | {0x0000a3b8, 0x00000000}, |
5106 | { 0x0000a3c0, 0x00000000 }, | 5100 | {0x0000a3bc, 0x00000000}, |
5107 | { 0x0000a3c4, 0x00000000 }, | 5101 | {0x0000a3c0, 0x00000000}, |
5108 | { 0x0000a3cc, 0x20202020 }, | 5102 | {0x0000a3c4, 0x00000000}, |
5109 | { 0x0000a3d0, 0x20202020 }, | 5103 | {0x0000a3cc, 0x20202020}, |
5110 | { 0x0000a3d4, 0x20202020 }, | 5104 | {0x0000a3d0, 0x20202020}, |
5111 | { 0x0000a3e4, 0x00000000 }, | 5105 | {0x0000a3d4, 0x20202020}, |
5112 | { 0x0000a3e8, 0x18c43433 }, | 5106 | {0x0000a3e4, 0x00000000}, |
5113 | { 0x0000a3ec, 0x00f70081 }, | 5107 | {0x0000a3e8, 0x18c43433}, |
5114 | { 0x0000a3f0, 0x01036a2f }, | 5108 | {0x0000a3ec, 0x00f70081}, |
5115 | { 0x0000a3f4, 0x00000000 }, | 5109 | {0x0000a3f0, 0x01036a2f}, |
5116 | { 0x0000d270, 0x0d820820 }, | 5110 | {0x0000a3f4, 0x00000000}, |
5117 | { 0x0000d35c, 0x07ffffef }, | 5111 | {0x0000d270, 0x0d820820}, |
5118 | { 0x0000d360, 0x0fffffe7 }, | 5112 | {0x0000d35c, 0x07ffffef}, |
5119 | { 0x0000d364, 0x17ffffe5 }, | 5113 | {0x0000d360, 0x0fffffe7}, |
5120 | { 0x0000d368, 0x1fffffe4 }, | 5114 | {0x0000d364, 0x17ffffe5}, |
5121 | { 0x0000d36c, 0x37ffffe3 }, | 5115 | {0x0000d368, 0x1fffffe4}, |
5122 | { 0x0000d370, 0x3fffffe3 }, | 5116 | {0x0000d36c, 0x37ffffe3}, |
5123 | { 0x0000d374, 0x57ffffe3 }, | 5117 | {0x0000d370, 0x3fffffe3}, |
5124 | { 0x0000d378, 0x5fffffe2 }, | 5118 | {0x0000d374, 0x57ffffe3}, |
5125 | { 0x0000d37c, 0x7fffffe2 }, | 5119 | {0x0000d378, 0x5fffffe2}, |
5126 | { 0x0000d380, 0x7f3c7bba }, | 5120 | {0x0000d37c, 0x7fffffe2}, |
5127 | { 0x0000d384, 0xf3307ff0 }, | 5121 | {0x0000d380, 0x7f3c7bba}, |
5122 | {0x0000d384, 0xf3307ff0}, | ||
5128 | }; | 5123 | }; |
5129 | 5124 | ||
5130 | static const u32 ar9271Common_normal_cck_fir_coeff_9271[][2] = { | 5125 | static const u32 ar9271Common_normal_cck_fir_coeff_9271[][2] = { |
5131 | { 0x0000a1f4, 0x00fffeff }, | 5126 | /* Addr allmodes */ |
5132 | { 0x0000a1f8, 0x00f5f9ff }, | 5127 | {0x0000a1f4, 0x00fffeff}, |
5133 | { 0x0000a1fc, 0xb79f6427 }, | 5128 | {0x0000a1f8, 0x00f5f9ff}, |
5129 | {0x0000a1fc, 0xb79f6427}, | ||
5134 | }; | 5130 | }; |
5135 | 5131 | ||
5136 | static const u32 ar9271Common_japan_2484_cck_fir_coeff_9271[][2] = { | 5132 | static const u32 ar9271Common_japan_2484_cck_fir_coeff_9271[][2] = { |
5137 | { 0x0000a1f4, 0x00000000 }, | 5133 | /* Addr allmodes */ |
5138 | { 0x0000a1f8, 0xefff0301 }, | 5134 | {0x0000a1f4, 0x00000000}, |
5139 | { 0x0000a1fc, 0xca9228ee }, | 5135 | {0x0000a1f8, 0xefff0301}, |
5136 | {0x0000a1fc, 0xca9228ee}, | ||
5140 | }; | 5137 | }; |
5141 | 5138 | ||
5142 | static const u32 ar9271Modes_9271_1_0_only[][6] = { | 5139 | static const u32 ar9271Modes_9271_1_0_only[][6] = { |
5143 | { 0x00009910, 0x30002311, 0x30002311, 0x30002311, 0x30002311, 0x30002311 }, | 5140 | {0x00009910, 0x30002311, 0x30002311, 0x30002311, 0x30002311, 0x30002311}, |
5144 | { 0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001 }, | 5141 | {0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001}, |
5145 | }; | 5142 | }; |
5146 | 5143 | ||
5147 | static const u32 ar9271Modes_9271_ANI_reg[][6] = { | 5144 | static const u32 ar9271Modes_9271_ANI_reg[][6] = { |
5148 | { 0x00009850, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2 }, | 5145 | {0x00009850, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2, 0x6d4000e2}, |
5149 | { 0x0000985c, 0x3139605e, 0x3139605e, 0x3137605e, 0x3137605e, 0x3139605e }, | 5146 | {0x0000985c, 0x3139605e, 0x3139605e, 0x3137605e, 0x3137605e, 0x3139605e}, |
5150 | { 0x00009858, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e }, | 5147 | {0x00009858, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e, 0x7ec84d2e}, |
5151 | { 0x0000986c, 0x06903881, 0x06903881, 0x06903881, 0x06903881, 0x06903881 }, | 5148 | {0x0000986c, 0x06903881, 0x06903881, 0x06903881, 0x06903881, 0x06903881}, |
5152 | { 0x00009868, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0 }, | 5149 | {0x00009868, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0}, |
5153 | { 0x0000a208, 0x803e68c8, 0x803e68c8, 0x803e68c8, 0x803e68c8, 0x803e68c8 }, | 5150 | {0x0000a208, 0x803e68c8, 0x803e68c8, 0x803e68c8, 0x803e68c8, 0x803e68c8}, |
5154 | { 0x00009924, 0xd00a8007, 0xd00a8007, 0xd00a800d, 0xd00a800d, 0xd00a800d }, | 5151 | {0x00009924, 0xd00a8007, 0xd00a8007, 0xd00a800d, 0xd00a800d, 0xd00a800d}, |
5155 | { 0x000099c0, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4 }, | 5152 | {0x000099c0, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4}, |
5156 | }; | 5153 | }; |
5157 | 5154 | ||
5158 | static const u32 ar9271Modes_normal_power_tx_gain_9271[][6] = { | 5155 | static const u32 ar9271Modes_normal_power_tx_gain_9271[][6] = { |
5159 | { 0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, | 5156 | {0x0000a300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, |
5160 | { 0x0000a304, 0x00000000, 0x00000000, 0x00009200, 0x00009200, 0x00000000 }, | 5157 | {0x0000a304, 0x00000000, 0x00000000, 0x00009200, 0x00009200, 0x00000000}, |
5161 | { 0x0000a308, 0x00000000, 0x00000000, 0x00010208, 0x00010208, 0x00000000 }, | 5158 | {0x0000a308, 0x00000000, 0x00000000, 0x00010208, 0x00010208, 0x00000000}, |
5162 | { 0x0000a30c, 0x00000000, 0x00000000, 0x00019608, 0x00019608, 0x00000000 }, | 5159 | {0x0000a30c, 0x00000000, 0x00000000, 0x00019608, 0x00019608, 0x00000000}, |
5163 | { 0x0000a310, 0x00000000, 0x00000000, 0x0001e610, 0x0001e610, 0x00000000 }, | 5160 | {0x0000a310, 0x00000000, 0x00000000, 0x0001e610, 0x0001e610, 0x00000000}, |
5164 | { 0x0000a314, 0x00000000, 0x00000000, 0x0002d6d0, 0x0002d6d0, 0x00000000 }, | 5161 | {0x0000a314, 0x00000000, 0x00000000, 0x0002d6d0, 0x0002d6d0, 0x00000000}, |
5165 | { 0x0000a318, 0x00000000, 0x00000000, 0x00039758, 0x00039758, 0x00000000 }, | 5162 | {0x0000a318, 0x00000000, 0x00000000, 0x00039758, 0x00039758, 0x00000000}, |
5166 | { 0x0000a31c, 0x00000000, 0x00000000, 0x0003b759, 0x0003b759, 0x00000000 }, | 5163 | {0x0000a31c, 0x00000000, 0x00000000, 0x0003b759, 0x0003b759, 0x00000000}, |
5167 | { 0x0000a320, 0x00000000, 0x00000000, 0x0003d75a, 0x0003d75a, 0x00000000 }, | 5164 | {0x0000a320, 0x00000000, 0x00000000, 0x0003d75a, 0x0003d75a, 0x00000000}, |
5168 | { 0x0000a324, 0x00000000, 0x00000000, 0x0004175c, 0x0004175c, 0x00000000 }, | 5165 | {0x0000a324, 0x00000000, 0x00000000, 0x0004175c, 0x0004175c, 0x00000000}, |
5169 | { 0x0000a328, 0x00000000, 0x00000000, 0x0004575e, 0x0004575e, 0x00000000 }, | 5166 | {0x0000a328, 0x00000000, 0x00000000, 0x0004575e, 0x0004575e, 0x00000000}, |
5170 | { 0x0000a32c, 0x00000000, 0x00000000, 0x0004979f, 0x0004979f, 0x00000000 }, | 5167 | {0x0000a32c, 0x00000000, 0x00000000, 0x0004979f, 0x0004979f, 0x00000000}, |
5171 | { 0x0000a330, 0x00000000, 0x00000000, 0x0004d7df, 0x0004d7df, 0x00000000 }, | 5168 | {0x0000a330, 0x00000000, 0x00000000, 0x0004d7df, 0x0004d7df, 0x00000000}, |
5172 | { 0x0000a334, 0x000368de, 0x000368de, 0x000368de, 0x000368de, 0x00000000 }, | 5169 | {0x0000a334, 0x000368de, 0x000368de, 0x000368de, 0x000368de, 0x00000000}, |
5173 | { 0x0000a338, 0x0003891e, 0x0003891e, 0x0003891e, 0x0003891e, 0x00000000 }, | 5170 | {0x0000a338, 0x0003891e, 0x0003891e, 0x0003891e, 0x0003891e, 0x00000000}, |
5174 | { 0x0000a33c, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x00000000 }, | 5171 | {0x0000a33c, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x00000000}, |
5175 | { 0x0000a340, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 5172 | {0x0000a340, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
5176 | { 0x0000a344, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 5173 | {0x0000a344, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
5177 | { 0x0000a348, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 5174 | {0x0000a348, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
5178 | { 0x0000a34c, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 5175 | {0x0000a34c, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
5179 | { 0x0000a350, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 5176 | {0x0000a350, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
5180 | { 0x0000a354, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 5177 | {0x0000a354, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
5181 | { 0x00007838, 0x00000029, 0x00000029, 0x00000029, 0x00000029, 0x00000029 }, | 5178 | {0x00007838, 0x00000029, 0x00000029, 0x00000029, 0x00000029, 0x00000029}, |
5182 | { 0x00007824, 0x00d8abff, 0x00d8abff, 0x00d8abff, 0x00d8abff, 0x00d8abff }, | 5179 | {0x00007824, 0x00d8abff, 0x00d8abff, 0x00d8abff, 0x00d8abff, 0x00d8abff}, |
5183 | { 0x0000786c, 0x48609eb4, 0x48609eb4, 0x48609eb4, 0x48609eb4, 0x48609eb4 }, | 5180 | {0x0000786c, 0x48609eb4, 0x48609eb4, 0x48609eb4, 0x48609eb4, 0x48609eb4}, |
5184 | { 0x00007820, 0x00000c04, 0x00000c04, 0x00000c04, 0x00000c04, 0x00000c04 }, | 5181 | {0x00007820, 0x00000c04, 0x00000c04, 0x00000c04, 0x00000c04, 0x00000c04}, |
5185 | { 0x0000a274, 0x0a21c652, 0x0a21c652, 0x0a218652, 0x0a218652, 0x0a22a652 }, | 5182 | {0x0000a274, 0x0a21c652, 0x0a21c652, 0x0a218652, 0x0a218652, 0x0a22a652}, |
5186 | { 0x0000a278, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd }, | 5183 | {0x0000a278, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd}, |
5187 | { 0x0000a27c, 0x050e83bd, 0x050e83bd, 0x050e83bd, 0x050e83bd, 0x050e83bd }, | 5184 | {0x0000a27c, 0x050e83bd, 0x050e83bd, 0x050e83bd, 0x050e83bd, 0x050e83bd}, |
5188 | { 0x0000a394, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd }, | 5185 | {0x0000a394, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd}, |
5189 | { 0x0000a398, 0x000003bd, 0x000003bd, 0x000003bd, 0x000003bd, 0x000003bd }, | 5186 | {0x0000a398, 0x000003bd, 0x000003bd, 0x000003bd, 0x000003bd, 0x000003bd}, |
5190 | { 0x0000a3dc, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd }, | 5187 | {0x0000a3dc, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd, 0x3bdef7bd}, |
5191 | { 0x0000a3e0, 0x000003bd, 0x000003bd, 0x000003bd, 0x000003bd, 0x000003bd }, | 5188 | {0x0000a3e0, 0x000003bd, 0x000003bd, 0x000003bd, 0x000003bd, 0x000003bd}, |
5192 | }; | 5189 | }; |
5193 | 5190 | ||
5194 | static const u32 ar9271Modes_high_power_tx_gain_9271[][6] = { | 5191 | static const u32 ar9271Modes_high_power_tx_gain_9271[][6] = { |
5195 | { 0x0000a300, 0x00000000, 0x00000000, 0x00010000, 0x00010000, 0x00000000 }, | 5192 | {0x0000a300, 0x00000000, 0x00000000, 0x00010000, 0x00010000, 0x00000000}, |
5196 | { 0x0000a304, 0x00000000, 0x00000000, 0x00016200, 0x00016200, 0x00000000 }, | 5193 | {0x0000a304, 0x00000000, 0x00000000, 0x00016200, 0x00016200, 0x00000000}, |
5197 | { 0x0000a308, 0x00000000, 0x00000000, 0x00018201, 0x00018201, 0x00000000 }, | 5194 | {0x0000a308, 0x00000000, 0x00000000, 0x00018201, 0x00018201, 0x00000000}, |
5198 | { 0x0000a30c, 0x00000000, 0x00000000, 0x0001b240, 0x0001b240, 0x00000000 }, | 5195 | {0x0000a30c, 0x00000000, 0x00000000, 0x0001b240, 0x0001b240, 0x00000000}, |
5199 | { 0x0000a310, 0x00000000, 0x00000000, 0x0001d241, 0x0001d241, 0x00000000 }, | 5196 | {0x0000a310, 0x00000000, 0x00000000, 0x0001d241, 0x0001d241, 0x00000000}, |
5200 | { 0x0000a314, 0x00000000, 0x00000000, 0x0001f600, 0x0001f600, 0x00000000 }, | 5197 | {0x0000a314, 0x00000000, 0x00000000, 0x0001f600, 0x0001f600, 0x00000000}, |
5201 | { 0x0000a318, 0x00000000, 0x00000000, 0x00022800, 0x00022800, 0x00000000 }, | 5198 | {0x0000a318, 0x00000000, 0x00000000, 0x00022800, 0x00022800, 0x00000000}, |
5202 | { 0x0000a31c, 0x00000000, 0x00000000, 0x00026802, 0x00026802, 0x00000000 }, | 5199 | {0x0000a31c, 0x00000000, 0x00000000, 0x00026802, 0x00026802, 0x00000000}, |
5203 | { 0x0000a320, 0x00000000, 0x00000000, 0x0002b805, 0x0002b805, 0x00000000 }, | 5200 | {0x0000a320, 0x00000000, 0x00000000, 0x0002b805, 0x0002b805, 0x00000000}, |
5204 | { 0x0000a324, 0x00000000, 0x00000000, 0x0002ea41, 0x0002ea41, 0x00000000 }, | 5201 | {0x0000a324, 0x00000000, 0x00000000, 0x0002ea41, 0x0002ea41, 0x00000000}, |
5205 | { 0x0000a328, 0x00000000, 0x00000000, 0x00038b00, 0x00038b00, 0x00000000 }, | 5202 | {0x0000a328, 0x00000000, 0x00000000, 0x00038b00, 0x00038b00, 0x00000000}, |
5206 | { 0x0000a32c, 0x00000000, 0x00000000, 0x0003ab40, 0x0003ab40, 0x00000000 }, | 5203 | {0x0000a32c, 0x00000000, 0x00000000, 0x0003ab40, 0x0003ab40, 0x00000000}, |
5207 | { 0x0000a330, 0x00000000, 0x00000000, 0x0003cd80, 0x0003cd80, 0x00000000 }, | 5204 | {0x0000a330, 0x00000000, 0x00000000, 0x0003cd80, 0x0003cd80, 0x00000000}, |
5208 | { 0x0000a334, 0x000368de, 0x000368de, 0x000368de, 0x000368de, 0x00000000 }, | 5205 | {0x0000a334, 0x000368de, 0x000368de, 0x000368de, 0x000368de, 0x00000000}, |
5209 | { 0x0000a338, 0x0003891e, 0x0003891e, 0x0003891e, 0x0003891e, 0x00000000 }, | 5206 | {0x0000a338, 0x0003891e, 0x0003891e, 0x0003891e, 0x0003891e, 0x00000000}, |
5210 | { 0x0000a33c, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x00000000 }, | 5207 | {0x0000a33c, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x0003a95e, 0x00000000}, |
5211 | { 0x0000a340, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 5208 | {0x0000a340, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
5212 | { 0x0000a344, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 5209 | {0x0000a344, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
5213 | { 0x0000a348, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 5210 | {0x0000a348, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
5214 | { 0x0000a34c, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 5211 | {0x0000a34c, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
5215 | { 0x0000a350, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 5212 | {0x0000a350, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
5216 | { 0x0000a354, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000 }, | 5213 | {0x0000a354, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x0003e9df, 0x00000000}, |
5217 | { 0x00007838, 0x0000002b, 0x0000002b, 0x0000002b, 0x0000002b, 0x0000002b }, | 5214 | {0x00007838, 0x0000002b, 0x0000002b, 0x0000002b, 0x0000002b, 0x0000002b}, |
5218 | { 0x00007824, 0x00d8a7ff, 0x00d8a7ff, 0x00d8a7ff, 0x00d8a7ff, 0x00d8a7ff }, | 5215 | {0x00007824, 0x00d8a7ff, 0x00d8a7ff, 0x00d8a7ff, 0x00d8a7ff, 0x00d8a7ff}, |
5219 | { 0x0000786c, 0x08609eb6, 0x08609eb6, 0x08609eba, 0x08609eba, 0x08609eb6 }, | 5216 | {0x0000786c, 0x08609eb6, 0x08609eb6, 0x08609eba, 0x08609eba, 0x08609eb6}, |
5220 | { 0x00007820, 0x00000c00, 0x00000c00, 0x00000c00, 0x00000c00, 0x00000c00 }, | 5217 | {0x00007820, 0x00000c00, 0x00000c00, 0x00000c00, 0x00000c00, 0x00000c00}, |
5221 | { 0x0000a274, 0x0a22a652, 0x0a22a652, 0x0a214652, 0x0a214652, 0x0a22a652 }, | 5218 | {0x0000a274, 0x0a22a652, 0x0a22a652, 0x0a214652, 0x0a214652, 0x0a22a652}, |
5222 | { 0x0000a278, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7 }, | 5219 | {0x0000a278, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7, 0x0e739ce7}, |
5223 | { 0x0000a27c, 0x05018063, 0x05038063, 0x05018063, 0x05018063, 0x05018063 }, | 5220 | {0x0000a27c, 0x05018063, 0x05038063, 0x05018063, 0x05018063, 0x05018063}, |
5224 | { 0x0000a394, 0x06318c63, 0x06318c63, 0x06318c63, 0x06318c63, 0x06318c63 }, | 5221 | {0x0000a394, 0x06318c63, 0x06318c63, 0x06318c63, 0x06318c63, 0x06318c63}, |
5225 | { 0x0000a398, 0x00000063, 0x00000063, 0x00000063, 0x00000063, 0x00000063 }, | 5222 | {0x0000a398, 0x00000063, 0x00000063, 0x00000063, 0x00000063, 0x00000063}, |
5226 | { 0x0000a3dc, 0x06318c63, 0x06318c63, 0x06318c63, 0x06318c63, 0x06318c63 }, | 5223 | {0x0000a3dc, 0x06318c63, 0x06318c63, 0x06318c63, 0x06318c63, 0x06318c63}, |
5227 | { 0x0000a3e0, 0x00000063, 0x00000063, 0x00000063, 0x00000063, 0x00000063 }, | 5224 | {0x0000a3e0, 0x00000063, 0x00000063, 0x00000063, 0x00000063, 0x00000063}, |
5228 | }; | 5225 | }; |
5229 | 5226 | ||
5230 | #endif /* INITVALS_9002_10_H */ | ||
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_mac.c b/drivers/net/wireless/ath/ath9k/ar9002_mac.c index 2be20d2070c4..50dda394f8be 100644 --- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c +++ b/drivers/net/wireless/ath/ath9k/ar9002_mac.c | |||
@@ -287,6 +287,7 @@ static int ar9002_hw_proc_txdesc(struct ath_hw *ah, void *ds, | |||
287 | ts->ts_shortretry = MS(ads->ds_txstatus1, AR_RTSFailCnt); | 287 | ts->ts_shortretry = MS(ads->ds_txstatus1, AR_RTSFailCnt); |
288 | ts->ts_longretry = MS(ads->ds_txstatus1, AR_DataFailCnt); | 288 | ts->ts_longretry = MS(ads->ds_txstatus1, AR_DataFailCnt); |
289 | ts->ts_virtcol = MS(ads->ds_txstatus1, AR_VirtRetryCnt); | 289 | ts->ts_virtcol = MS(ads->ds_txstatus1, AR_VirtRetryCnt); |
290 | ts->tid = MS(ads->ds_txstatus9, AR_TxTid); | ||
290 | ts->ts_antenna = 0; | 291 | ts->ts_antenna = 0; |
291 | 292 | ||
292 | return 0; | 293 | return 0; |
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_phy.c b/drivers/net/wireless/ath/ath9k/ar9002_phy.c index ed314e89bfe1..4922b8d4a938 100644 --- a/drivers/net/wireless/ath/ath9k/ar9002_phy.c +++ b/drivers/net/wireless/ath/ath9k/ar9002_phy.c | |||
@@ -471,52 +471,45 @@ static u32 ar9002_hw_compute_pll_control(struct ath_hw *ah, | |||
471 | static void ar9002_hw_do_getnf(struct ath_hw *ah, | 471 | static void ar9002_hw_do_getnf(struct ath_hw *ah, |
472 | int16_t nfarray[NUM_NF_READINGS]) | 472 | int16_t nfarray[NUM_NF_READINGS]) |
473 | { | 473 | { |
474 | struct ath_common *common = ath9k_hw_common(ah); | ||
475 | int16_t nf; | 474 | int16_t nf; |
476 | 475 | ||
477 | nf = MS(REG_READ(ah, AR_PHY_CCA), AR9280_PHY_MINCCA_PWR); | 476 | nf = MS(REG_READ(ah, AR_PHY_CCA), AR9280_PHY_MINCCA_PWR); |
478 | 477 | nfarray[0] = sign_extend(nf, 9); | |
479 | if (nf & 0x100) | ||
480 | nf = 0 - ((nf ^ 0x1ff) + 1); | ||
481 | ath_print(common, ATH_DBG_CALIBRATE, | ||
482 | "NF calibrated [ctl] [chain 0] is %d\n", nf); | ||
483 | |||
484 | if (AR_SREV_9271(ah) && (nf >= -114)) | ||
485 | nf = -116; | ||
486 | |||
487 | nfarray[0] = nf; | ||
488 | |||
489 | if (!AR_SREV_9285(ah) && !AR_SREV_9271(ah)) { | ||
490 | nf = MS(REG_READ(ah, AR_PHY_CH1_CCA), | ||
491 | AR9280_PHY_CH1_MINCCA_PWR); | ||
492 | |||
493 | if (nf & 0x100) | ||
494 | nf = 0 - ((nf ^ 0x1ff) + 1); | ||
495 | ath_print(common, ATH_DBG_CALIBRATE, | ||
496 | "NF calibrated [ctl] [chain 1] is %d\n", nf); | ||
497 | nfarray[1] = nf; | ||
498 | } | ||
499 | 478 | ||
500 | nf = MS(REG_READ(ah, AR_PHY_EXT_CCA), AR9280_PHY_EXT_MINCCA_PWR); | 479 | nf = MS(REG_READ(ah, AR_PHY_EXT_CCA), AR9280_PHY_EXT_MINCCA_PWR); |
501 | if (nf & 0x100) | 480 | nfarray[3] = sign_extend(nf, 9); |
502 | nf = 0 - ((nf ^ 0x1ff) + 1); | ||
503 | ath_print(common, ATH_DBG_CALIBRATE, | ||
504 | "NF calibrated [ext] [chain 0] is %d\n", nf); | ||
505 | 481 | ||
506 | if (AR_SREV_9271(ah) && (nf >= -114)) | 482 | if (AR_SREV_9285(ah) || AR_SREV_9271(ah)) |
507 | nf = -116; | 483 | return; |
508 | 484 | ||
509 | nfarray[3] = nf; | 485 | nf = MS(REG_READ(ah, AR_PHY_CH1_CCA), AR9280_PHY_CH1_MINCCA_PWR); |
486 | nfarray[1] = sign_extend(nf, 9); | ||
510 | 487 | ||
511 | if (!AR_SREV_9285(ah) && !AR_SREV_9271(ah)) { | 488 | nf = MS(REG_READ(ah, AR_PHY_CH1_EXT_CCA), AR9280_PHY_CH1_EXT_MINCCA_PWR); |
512 | nf = MS(REG_READ(ah, AR_PHY_CH1_EXT_CCA), | 489 | nfarray[4] = sign_extend(nf, 9); |
513 | AR9280_PHY_CH1_EXT_MINCCA_PWR); | 490 | } |
514 | 491 | ||
515 | if (nf & 0x100) | 492 | static void ar9002_hw_set_nf_limits(struct ath_hw *ah) |
516 | nf = 0 - ((nf ^ 0x1ff) + 1); | 493 | { |
517 | ath_print(common, ATH_DBG_CALIBRATE, | 494 | if (AR_SREV_9285(ah)) { |
518 | "NF calibrated [ext] [chain 1] is %d\n", nf); | 495 | ah->nf_2g.max = AR_PHY_CCA_MAX_GOOD_VAL_9285_2GHZ; |
519 | nfarray[4] = nf; | 496 | ah->nf_2g.min = AR_PHY_CCA_MIN_GOOD_VAL_9285_2GHZ; |
497 | ah->nf_2g.nominal = AR_PHY_CCA_NOM_VAL_9285_2GHZ; | ||
498 | } else if (AR_SREV_9287(ah)) { | ||
499 | ah->nf_2g.max = AR_PHY_CCA_MAX_GOOD_VAL_9287_2GHZ; | ||
500 | ah->nf_2g.min = AR_PHY_CCA_MIN_GOOD_VAL_9287_2GHZ; | ||
501 | ah->nf_2g.nominal = AR_PHY_CCA_NOM_VAL_9287_2GHZ; | ||
502 | } else if (AR_SREV_9271(ah)) { | ||
503 | ah->nf_2g.max = AR_PHY_CCA_MAX_GOOD_VAL_9271_2GHZ; | ||
504 | ah->nf_2g.min = AR_PHY_CCA_MIN_GOOD_VAL_9271_2GHZ; | ||
505 | ah->nf_2g.nominal = AR_PHY_CCA_NOM_VAL_9271_2GHZ; | ||
506 | } else { | ||
507 | ah->nf_2g.max = AR_PHY_CCA_MAX_GOOD_VAL_9280_2GHZ; | ||
508 | ah->nf_2g.min = AR_PHY_CCA_MIN_GOOD_VAL_9280_2GHZ; | ||
509 | ah->nf_2g.nominal = AR_PHY_CCA_NOM_VAL_9280_2GHZ; | ||
510 | ah->nf_5g.max = AR_PHY_CCA_MAX_GOOD_VAL_9280_5GHZ; | ||
511 | ah->nf_5g.min = AR_PHY_CCA_MIN_GOOD_VAL_9280_5GHZ; | ||
512 | ah->nf_5g.nominal = AR_PHY_CCA_NOM_VAL_9280_5GHZ; | ||
520 | } | 513 | } |
521 | } | 514 | } |
522 | 515 | ||
@@ -532,4 +525,6 @@ void ar9002_hw_attach_phy_ops(struct ath_hw *ah) | |||
532 | priv_ops->olc_init = ar9002_olc_init; | 525 | priv_ops->olc_init = ar9002_olc_init; |
533 | priv_ops->compute_pll_control = ar9002_hw_compute_pll_control; | 526 | priv_ops->compute_pll_control = ar9002_hw_compute_pll_control; |
534 | priv_ops->do_getnf = ar9002_hw_do_getnf; | 527 | priv_ops->do_getnf = ar9002_hw_do_getnf; |
528 | |||
529 | ar9002_hw_set_nf_limits(ah); | ||
535 | } | 530 | } |
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_phy.h b/drivers/net/wireless/ath/ath9k/ar9002_phy.h index ce8bb001c6d1..c5151a4dd10b 100644 --- a/drivers/net/wireless/ath/ath9k/ar9002_phy.h +++ b/drivers/net/wireless/ath/ath9k/ar9002_phy.h | |||
@@ -576,4 +576,30 @@ | |||
576 | #define AR_PHY_CH2_EXT_MINCCA_PWR 0xFF800000 | 576 | #define AR_PHY_CH2_EXT_MINCCA_PWR 0xFF800000 |
577 | #define AR_PHY_CH2_EXT_MINCCA_PWR_S 23 | 577 | #define AR_PHY_CH2_EXT_MINCCA_PWR_S 23 |
578 | 578 | ||
579 | #define AR_PHY_CCA_NOM_VAL_5416_2GHZ -90 | ||
580 | #define AR_PHY_CCA_NOM_VAL_5416_5GHZ -100 | ||
581 | #define AR_PHY_CCA_MIN_GOOD_VAL_5416_2GHZ -100 | ||
582 | #define AR_PHY_CCA_MIN_GOOD_VAL_5416_5GHZ -110 | ||
583 | #define AR_PHY_CCA_MAX_GOOD_VAL_5416_2GHZ -80 | ||
584 | #define AR_PHY_CCA_MAX_GOOD_VAL_5416_5GHZ -90 | ||
585 | |||
586 | #define AR_PHY_CCA_NOM_VAL_9280_2GHZ -112 | ||
587 | #define AR_PHY_CCA_NOM_VAL_9280_5GHZ -112 | ||
588 | #define AR_PHY_CCA_MIN_GOOD_VAL_9280_2GHZ -127 | ||
589 | #define AR_PHY_CCA_MIN_GOOD_VAL_9280_5GHZ -122 | ||
590 | #define AR_PHY_CCA_MAX_GOOD_VAL_9280_2GHZ -97 | ||
591 | #define AR_PHY_CCA_MAX_GOOD_VAL_9280_5GHZ -102 | ||
592 | |||
593 | #define AR_PHY_CCA_NOM_VAL_9285_2GHZ -118 | ||
594 | #define AR_PHY_CCA_MIN_GOOD_VAL_9285_2GHZ -127 | ||
595 | #define AR_PHY_CCA_MAX_GOOD_VAL_9285_2GHZ -108 | ||
596 | |||
597 | #define AR_PHY_CCA_NOM_VAL_9271_2GHZ -118 | ||
598 | #define AR_PHY_CCA_MIN_GOOD_VAL_9271_2GHZ -127 | ||
599 | #define AR_PHY_CCA_MAX_GOOD_VAL_9271_2GHZ -116 | ||
600 | |||
601 | #define AR_PHY_CCA_NOM_VAL_9287_2GHZ -120 | ||
602 | #define AR_PHY_CCA_MIN_GOOD_VAL_9287_2GHZ -127 | ||
603 | #define AR_PHY_CCA_MAX_GOOD_VAL_9287_2GHZ -110 | ||
604 | |||
579 | #endif | 605 | #endif |
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c index 343c9a427acb..ace8d2678b18 100644 --- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c +++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c | |||
@@ -951,7 +951,7 @@ static u8 ath9k_hw_ar9300_get_num_ant_config(struct ath_hw *ah, | |||
951 | return 1; | 951 | return 1; |
952 | } | 952 | } |
953 | 953 | ||
954 | static u16 ath9k_hw_ar9300_get_eeprom_antenna_cfg(struct ath_hw *ah, | 954 | static u32 ath9k_hw_ar9300_get_eeprom_antenna_cfg(struct ath_hw *ah, |
955 | struct ath9k_channel *chan) | 955 | struct ath9k_channel *chan) |
956 | { | 956 | { |
957 | return -EINVAL; | 957 | return -EINVAL; |
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_mac.h b/drivers/net/wireless/ath/ath9k/ar9003_mac.h index f76f27d16f77..9f2cea70a840 100644 --- a/drivers/net/wireless/ath/ath9k/ar9003_mac.h +++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.h | |||
@@ -33,9 +33,6 @@ | |||
33 | #define AR_TxDescId_S 16 | 33 | #define AR_TxDescId_S 16 |
34 | #define AR_TxPtrChkSum 0x0000ffff | 34 | #define AR_TxPtrChkSum 0x0000ffff |
35 | 35 | ||
36 | #define AR_TxTid 0xf0000000 | ||
37 | #define AR_TxTid_S 28 | ||
38 | |||
39 | #define AR_LowRxChain 0x00004000 | 36 | #define AR_LowRxChain 0x00004000 |
40 | 37 | ||
41 | #define AR_Not_Sounding 0x20000000 | 38 | #define AR_Not_Sounding 0x20000000 |
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_phy.c b/drivers/net/wireless/ath/ath9k/ar9003_phy.c index 19bc05c41136..7c93338540ae 100644 --- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c +++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c | |||
@@ -1015,213 +1015,38 @@ static bool ar9003_hw_ani_control(struct ath_hw *ah, | |||
1015 | return true; | 1015 | return true; |
1016 | } | 1016 | } |
1017 | 1017 | ||
1018 | static void ar9003_hw_nf_sanitize_2g(struct ath_hw *ah, s16 *nf) | ||
1019 | { | ||
1020 | struct ath_common *common = ath9k_hw_common(ah); | ||
1021 | |||
1022 | if (*nf > ah->nf_2g_max) { | ||
1023 | ath_print(common, ATH_DBG_CALIBRATE, | ||
1024 | "2 GHz NF (%d) > MAX (%d), " | ||
1025 | "correcting to MAX", | ||
1026 | *nf, ah->nf_2g_max); | ||
1027 | *nf = ah->nf_2g_max; | ||
1028 | } else if (*nf < ah->nf_2g_min) { | ||
1029 | ath_print(common, ATH_DBG_CALIBRATE, | ||
1030 | "2 GHz NF (%d) < MIN (%d), " | ||
1031 | "correcting to MIN", | ||
1032 | *nf, ah->nf_2g_min); | ||
1033 | *nf = ah->nf_2g_min; | ||
1034 | } | ||
1035 | } | ||
1036 | |||
1037 | static void ar9003_hw_nf_sanitize_5g(struct ath_hw *ah, s16 *nf) | ||
1038 | { | ||
1039 | struct ath_common *common = ath9k_hw_common(ah); | ||
1040 | |||
1041 | if (*nf > ah->nf_5g_max) { | ||
1042 | ath_print(common, ATH_DBG_CALIBRATE, | ||
1043 | "5 GHz NF (%d) > MAX (%d), " | ||
1044 | "correcting to MAX", | ||
1045 | *nf, ah->nf_5g_max); | ||
1046 | *nf = ah->nf_5g_max; | ||
1047 | } else if (*nf < ah->nf_5g_min) { | ||
1048 | ath_print(common, ATH_DBG_CALIBRATE, | ||
1049 | "5 GHz NF (%d) < MIN (%d), " | ||
1050 | "correcting to MIN", | ||
1051 | *nf, ah->nf_5g_min); | ||
1052 | *nf = ah->nf_5g_min; | ||
1053 | } | ||
1054 | } | ||
1055 | |||
1056 | static void ar9003_hw_nf_sanitize(struct ath_hw *ah, s16 *nf) | ||
1057 | { | ||
1058 | if (IS_CHAN_2GHZ(ah->curchan)) | ||
1059 | ar9003_hw_nf_sanitize_2g(ah, nf); | ||
1060 | else | ||
1061 | ar9003_hw_nf_sanitize_5g(ah, nf); | ||
1062 | } | ||
1063 | |||
1064 | static void ar9003_hw_do_getnf(struct ath_hw *ah, | 1018 | static void ar9003_hw_do_getnf(struct ath_hw *ah, |
1065 | int16_t nfarray[NUM_NF_READINGS]) | 1019 | int16_t nfarray[NUM_NF_READINGS]) |
1066 | { | 1020 | { |
1067 | struct ath_common *common = ath9k_hw_common(ah); | ||
1068 | int16_t nf; | 1021 | int16_t nf; |
1069 | 1022 | ||
1070 | nf = MS(REG_READ(ah, AR_PHY_CCA_0), AR_PHY_MINCCA_PWR); | 1023 | nf = MS(REG_READ(ah, AR_PHY_CCA_0), AR_PHY_MINCCA_PWR); |
1071 | if (nf & 0x100) | 1024 | nfarray[0] = sign_extend(nf, 9); |
1072 | nf = 0 - ((nf ^ 0x1ff) + 1); | ||
1073 | ar9003_hw_nf_sanitize(ah, &nf); | ||
1074 | ath_print(common, ATH_DBG_CALIBRATE, | ||
1075 | "NF calibrated [ctl] [chain 0] is %d\n", nf); | ||
1076 | nfarray[0] = nf; | ||
1077 | 1025 | ||
1078 | nf = MS(REG_READ(ah, AR_PHY_CCA_1), AR_PHY_CH1_MINCCA_PWR); | 1026 | nf = MS(REG_READ(ah, AR_PHY_CCA_1), AR_PHY_CH1_MINCCA_PWR); |
1079 | if (nf & 0x100) | 1027 | nfarray[1] = sign_extend(nf, 9); |
1080 | nf = 0 - ((nf ^ 0x1ff) + 1); | ||
1081 | ar9003_hw_nf_sanitize(ah, &nf); | ||
1082 | ath_print(common, ATH_DBG_CALIBRATE, | ||
1083 | "NF calibrated [ctl] [chain 1] is %d\n", nf); | ||
1084 | nfarray[1] = nf; | ||
1085 | 1028 | ||
1086 | nf = MS(REG_READ(ah, AR_PHY_CCA_2), AR_PHY_CH2_MINCCA_PWR); | 1029 | nf = MS(REG_READ(ah, AR_PHY_CCA_2), AR_PHY_CH2_MINCCA_PWR); |
1087 | if (nf & 0x100) | 1030 | nfarray[2] = sign_extend(nf, 9); |
1088 | nf = 0 - ((nf ^ 0x1ff) + 1); | ||
1089 | ar9003_hw_nf_sanitize(ah, &nf); | ||
1090 | ath_print(common, ATH_DBG_CALIBRATE, | ||
1091 | "NF calibrated [ctl] [chain 2] is %d\n", nf); | ||
1092 | nfarray[2] = nf; | ||
1093 | 1031 | ||
1094 | nf = MS(REG_READ(ah, AR_PHY_EXT_CCA), AR_PHY_EXT_MINCCA_PWR); | 1032 | nf = MS(REG_READ(ah, AR_PHY_EXT_CCA), AR_PHY_EXT_MINCCA_PWR); |
1095 | if (nf & 0x100) | 1033 | nfarray[3] = sign_extend(nf, 9); |
1096 | nf = 0 - ((nf ^ 0x1ff) + 1); | ||
1097 | ar9003_hw_nf_sanitize(ah, &nf); | ||
1098 | ath_print(common, ATH_DBG_CALIBRATE, | ||
1099 | "NF calibrated [ext] [chain 0] is %d\n", nf); | ||
1100 | nfarray[3] = nf; | ||
1101 | 1034 | ||
1102 | nf = MS(REG_READ(ah, AR_PHY_EXT_CCA_1), AR_PHY_CH1_EXT_MINCCA_PWR); | 1035 | nf = MS(REG_READ(ah, AR_PHY_EXT_CCA_1), AR_PHY_CH1_EXT_MINCCA_PWR); |
1103 | if (nf & 0x100) | 1036 | nfarray[4] = sign_extend(nf, 9); |
1104 | nf = 0 - ((nf ^ 0x1ff) + 1); | ||
1105 | ar9003_hw_nf_sanitize(ah, &nf); | ||
1106 | ath_print(common, ATH_DBG_CALIBRATE, | ||
1107 | "NF calibrated [ext] [chain 1] is %d\n", nf); | ||
1108 | nfarray[4] = nf; | ||
1109 | 1037 | ||
1110 | nf = MS(REG_READ(ah, AR_PHY_EXT_CCA_2), AR_PHY_CH2_EXT_MINCCA_PWR); | 1038 | nf = MS(REG_READ(ah, AR_PHY_EXT_CCA_2), AR_PHY_CH2_EXT_MINCCA_PWR); |
1111 | if (nf & 0x100) | 1039 | nfarray[5] = sign_extend(nf, 9); |
1112 | nf = 0 - ((nf ^ 0x1ff) + 1); | ||
1113 | ar9003_hw_nf_sanitize(ah, &nf); | ||
1114 | ath_print(common, ATH_DBG_CALIBRATE, | ||
1115 | "NF calibrated [ext] [chain 2] is %d\n", nf); | ||
1116 | nfarray[5] = nf; | ||
1117 | } | 1040 | } |
1118 | 1041 | ||
1119 | void ar9003_hw_set_nf_limits(struct ath_hw *ah) | 1042 | static void ar9003_hw_set_nf_limits(struct ath_hw *ah) |
1120 | { | 1043 | { |
1121 | ah->nf_2g_max = AR_PHY_CCA_MAX_GOOD_VAL_9300_2GHZ; | 1044 | ah->nf_2g.max = AR_PHY_CCA_MAX_GOOD_VAL_9300_2GHZ; |
1122 | ah->nf_2g_min = AR_PHY_CCA_MIN_GOOD_VAL_9300_2GHZ; | 1045 | ah->nf_2g.min = AR_PHY_CCA_MIN_GOOD_VAL_9300_2GHZ; |
1123 | ah->nf_5g_max = AR_PHY_CCA_MAX_GOOD_VAL_9300_5GHZ; | 1046 | ah->nf_2g.nominal = AR_PHY_CCA_NOM_VAL_9300_2GHZ; |
1124 | ah->nf_5g_min = AR_PHY_CCA_MIN_GOOD_VAL_9300_5GHZ; | 1047 | ah->nf_5g.max = AR_PHY_CCA_MAX_GOOD_VAL_9300_5GHZ; |
1125 | } | 1048 | ah->nf_5g.min = AR_PHY_CCA_MIN_GOOD_VAL_9300_5GHZ; |
1126 | 1049 | ah->nf_5g.nominal = AR_PHY_CCA_NOM_VAL_9300_5GHZ; | |
1127 | /* | ||
1128 | * Find out which of the RX chains are enabled | ||
1129 | */ | ||
1130 | static u32 ar9003_hw_get_rx_chainmask(struct ath_hw *ah) | ||
1131 | { | ||
1132 | u32 chain = REG_READ(ah, AR_PHY_RX_CHAINMASK); | ||
1133 | /* | ||
1134 | * The bits [2:0] indicate the rx chain mask and are to be | ||
1135 | * interpreted as follows: | ||
1136 | * 00x => Only chain 0 is enabled | ||
1137 | * 01x => Chain 1 and 0 enabled | ||
1138 | * 1xx => Chain 2,1 and 0 enabled | ||
1139 | */ | ||
1140 | return chain & 0x7; | ||
1141 | } | ||
1142 | |||
1143 | static void ar9003_hw_loadnf(struct ath_hw *ah, struct ath9k_channel *chan) | ||
1144 | { | ||
1145 | struct ath9k_nfcal_hist *h; | ||
1146 | unsigned i, j; | ||
1147 | int32_t val; | ||
1148 | const u32 ar9300_cca_regs[6] = { | ||
1149 | AR_PHY_CCA_0, | ||
1150 | AR_PHY_CCA_1, | ||
1151 | AR_PHY_CCA_2, | ||
1152 | AR_PHY_EXT_CCA, | ||
1153 | AR_PHY_EXT_CCA_1, | ||
1154 | AR_PHY_EXT_CCA_2, | ||
1155 | }; | ||
1156 | u8 chainmask, rx_chain_status; | ||
1157 | struct ath_common *common = ath9k_hw_common(ah); | ||
1158 | |||
1159 | rx_chain_status = ar9003_hw_get_rx_chainmask(ah); | ||
1160 | |||
1161 | chainmask = 0x3F; | ||
1162 | h = ah->nfCalHist; | ||
1163 | |||
1164 | for (i = 0; i < NUM_NF_READINGS; i++) { | ||
1165 | if (chainmask & (1 << i)) { | ||
1166 | val = REG_READ(ah, ar9300_cca_regs[i]); | ||
1167 | val &= 0xFFFFFE00; | ||
1168 | val |= (((u32) (h[i].privNF) << 1) & 0x1ff); | ||
1169 | REG_WRITE(ah, ar9300_cca_regs[i], val); | ||
1170 | } | ||
1171 | } | ||
1172 | |||
1173 | /* | ||
1174 | * Load software filtered NF value into baseband internal minCCApwr | ||
1175 | * variable. | ||
1176 | */ | ||
1177 | REG_CLR_BIT(ah, AR_PHY_AGC_CONTROL, | ||
1178 | AR_PHY_AGC_CONTROL_ENABLE_NF); | ||
1179 | REG_CLR_BIT(ah, AR_PHY_AGC_CONTROL, | ||
1180 | AR_PHY_AGC_CONTROL_NO_UPDATE_NF); | ||
1181 | REG_SET_BIT(ah, AR_PHY_AGC_CONTROL, AR_PHY_AGC_CONTROL_NF); | ||
1182 | |||
1183 | /* | ||
1184 | * Wait for load to complete, should be fast, a few 10s of us. | ||
1185 | * The max delay was changed from an original 250us to 10000us | ||
1186 | * since 250us often results in NF load timeout and causes deaf | ||
1187 | * condition during stress testing 12/12/2009 | ||
1188 | */ | ||
1189 | for (j = 0; j < 1000; j++) { | ||
1190 | if ((REG_READ(ah, AR_PHY_AGC_CONTROL) & | ||
1191 | AR_PHY_AGC_CONTROL_NF) == 0) | ||
1192 | break; | ||
1193 | udelay(10); | ||
1194 | } | ||
1195 | |||
1196 | /* | ||
1197 | * We timed out waiting for the noisefloor to load, probably due to an | ||
1198 | * in-progress rx. Simply return here and allow the load plenty of time | ||
1199 | * to complete before the next calibration interval. We need to avoid | ||
1200 | * trying to load -50 (which happens below) while the previous load is | ||
1201 | * still in progress as this can cause rx deafness. Instead by returning | ||
1202 | * here, the baseband nf cal will just be capped by our present | ||
1203 | * noisefloor until the next calibration timer. | ||
1204 | */ | ||
1205 | if (j == 1000) { | ||
1206 | ath_print(common, ATH_DBG_ANY, "Timeout while waiting for nf " | ||
1207 | "to load: AR_PHY_AGC_CONTROL=0x%x\n", | ||
1208 | REG_READ(ah, AR_PHY_AGC_CONTROL)); | ||
1209 | return; | ||
1210 | } | ||
1211 | |||
1212 | /* | ||
1213 | * Restore maxCCAPower register parameter again so that we're not capped | ||
1214 | * by the median we just loaded. This will be initial (and max) value | ||
1215 | * of next noise floor calibration the baseband does. | ||
1216 | */ | ||
1217 | for (i = 0; i < NUM_NF_READINGS; i++) { | ||
1218 | if (chainmask & (1 << i)) { | ||
1219 | val = REG_READ(ah, ar9300_cca_regs[i]); | ||
1220 | val &= 0xFFFFFE00; | ||
1221 | val |= (((u32) (-50) << 1) & 0x1ff); | ||
1222 | REG_WRITE(ah, ar9300_cca_regs[i], val); | ||
1223 | } | ||
1224 | } | ||
1225 | } | 1050 | } |
1226 | 1051 | ||
1227 | /* | 1052 | /* |
@@ -1291,6 +1116,14 @@ static void ar9003_hw_ani_cache_ini_regs(struct ath_hw *ah) | |||
1291 | void ar9003_hw_attach_phy_ops(struct ath_hw *ah) | 1116 | void ar9003_hw_attach_phy_ops(struct ath_hw *ah) |
1292 | { | 1117 | { |
1293 | struct ath_hw_private_ops *priv_ops = ath9k_hw_private_ops(ah); | 1118 | struct ath_hw_private_ops *priv_ops = ath9k_hw_private_ops(ah); |
1119 | const u32 ar9300_cca_regs[6] = { | ||
1120 | AR_PHY_CCA_0, | ||
1121 | AR_PHY_CCA_1, | ||
1122 | AR_PHY_CCA_2, | ||
1123 | AR_PHY_EXT_CCA, | ||
1124 | AR_PHY_EXT_CCA_1, | ||
1125 | AR_PHY_EXT_CCA_2, | ||
1126 | }; | ||
1294 | 1127 | ||
1295 | priv_ops->rf_set_freq = ar9003_hw_set_channel; | 1128 | priv_ops->rf_set_freq = ar9003_hw_set_channel; |
1296 | priv_ops->spur_mitigate_freq = ar9003_hw_spur_mitigate; | 1129 | priv_ops->spur_mitigate_freq = ar9003_hw_spur_mitigate; |
@@ -1307,8 +1140,10 @@ void ar9003_hw_attach_phy_ops(struct ath_hw *ah) | |||
1307 | priv_ops->set_diversity = ar9003_hw_set_diversity; | 1140 | priv_ops->set_diversity = ar9003_hw_set_diversity; |
1308 | priv_ops->ani_control = ar9003_hw_ani_control; | 1141 | priv_ops->ani_control = ar9003_hw_ani_control; |
1309 | priv_ops->do_getnf = ar9003_hw_do_getnf; | 1142 | priv_ops->do_getnf = ar9003_hw_do_getnf; |
1310 | priv_ops->loadnf = ar9003_hw_loadnf; | ||
1311 | priv_ops->ani_cache_ini_regs = ar9003_hw_ani_cache_ini_regs; | 1143 | priv_ops->ani_cache_ini_regs = ar9003_hw_ani_cache_ini_regs; |
1144 | |||
1145 | ar9003_hw_set_nf_limits(ah); | ||
1146 | memcpy(ah->nf_regs, ar9300_cca_regs, sizeof(ah->nf_regs)); | ||
1312 | } | 1147 | } |
1313 | 1148 | ||
1314 | void ar9003_hw_bb_watchdog_config(struct ath_hw *ah) | 1149 | void ar9003_hw_bb_watchdog_config(struct ath_hw *ah) |
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h index 72d5e52abb8f..6e486a508edb 100644 --- a/drivers/net/wireless/ath/ath9k/ath9k.h +++ b/drivers/net/wireless/ath/ath9k/ath9k.h | |||
@@ -428,6 +428,7 @@ int ath_beaconq_config(struct ath_softc *sc); | |||
428 | 428 | ||
429 | #define ATH_PAPRD_TIMEOUT 100 /* msecs */ | 429 | #define ATH_PAPRD_TIMEOUT 100 /* msecs */ |
430 | 430 | ||
431 | void ath_hw_check(struct work_struct *work); | ||
431 | void ath_paprd_calibrate(struct work_struct *work); | 432 | void ath_paprd_calibrate(struct work_struct *work); |
432 | void ath_ani_calibrate(unsigned long data); | 433 | void ath_ani_calibrate(unsigned long data); |
433 | 434 | ||
@@ -562,6 +563,7 @@ struct ath_softc { | |||
562 | spinlock_t sc_pm_lock; | 563 | spinlock_t sc_pm_lock; |
563 | struct mutex mutex; | 564 | struct mutex mutex; |
564 | struct work_struct paprd_work; | 565 | struct work_struct paprd_work; |
566 | struct work_struct hw_check_work; | ||
565 | struct completion paprd_complete; | 567 | struct completion paprd_complete; |
566 | 568 | ||
567 | u32 intrstatus; | 569 | u32 intrstatus; |
diff --git a/drivers/net/wireless/ath/ath9k/calib.c b/drivers/net/wireless/ath/ath9k/calib.c index 07b8fa6fb62f..7f4c55f90e74 100644 --- a/drivers/net/wireless/ath/ath9k/calib.c +++ b/drivers/net/wireless/ath/ath9k/calib.c | |||
@@ -74,13 +74,8 @@ static void ath9k_hw_update_nfcal_hist_buffer(struct ath9k_nfcal_hist *h, | |||
74 | h[i].currIndex = 0; | 74 | h[i].currIndex = 0; |
75 | 75 | ||
76 | if (h[i].invalidNFcount > 0) { | 76 | if (h[i].invalidNFcount > 0) { |
77 | if (nfarray[i] < AR_PHY_CCA_MIN_BAD_VALUE || | 77 | h[i].invalidNFcount--; |
78 | nfarray[i] > AR_PHY_CCA_MAX_HIGH_VALUE) { | 78 | h[i].privNF = nfarray[i]; |
79 | h[i].invalidNFcount = ATH9K_NF_CAL_HIST_MAX; | ||
80 | } else { | ||
81 | h[i].invalidNFcount--; | ||
82 | h[i].privNF = nfarray[i]; | ||
83 | } | ||
84 | } else { | 79 | } else { |
85 | h[i].privNF = | 80 | h[i].privNF = |
86 | ath9k_hw_get_nf_hist_mid(h[i].nfCalBuffer); | 81 | ath9k_hw_get_nf_hist_mid(h[i].nfCalBuffer); |
@@ -172,6 +167,133 @@ void ath9k_hw_start_nfcal(struct ath_hw *ah) | |||
172 | REG_SET_BIT(ah, AR_PHY_AGC_CONTROL, AR_PHY_AGC_CONTROL_NF); | 167 | REG_SET_BIT(ah, AR_PHY_AGC_CONTROL, AR_PHY_AGC_CONTROL_NF); |
173 | } | 168 | } |
174 | 169 | ||
170 | void ath9k_hw_loadnf(struct ath_hw *ah, struct ath9k_channel *chan) | ||
171 | { | ||
172 | struct ath9k_nfcal_hist *h; | ||
173 | unsigned i, j; | ||
174 | int32_t val; | ||
175 | u8 chainmask; | ||
176 | struct ath_common *common = ath9k_hw_common(ah); | ||
177 | |||
178 | if (AR_SREV_9300_20_OR_LATER(ah)) | ||
179 | chainmask = 0x3F; | ||
180 | else if (AR_SREV_9285(ah) || AR_SREV_9271(ah)) | ||
181 | chainmask = 0x9; | ||
182 | else if (AR_SREV_9280(ah) || AR_SREV_9287(ah)) { | ||
183 | if ((ah->rxchainmask & 0x2) || (ah->rxchainmask & 0x4)) | ||
184 | chainmask = 0x1B; | ||
185 | else | ||
186 | chainmask = 0x09; | ||
187 | } else { | ||
188 | if (ah->rxchainmask & 0x4) | ||
189 | chainmask = 0x3F; | ||
190 | else if (ah->rxchainmask & 0x2) | ||
191 | chainmask = 0x1B; | ||
192 | else | ||
193 | chainmask = 0x09; | ||
194 | } | ||
195 | h = ah->nfCalHist; | ||
196 | |||
197 | for (i = 0; i < NUM_NF_READINGS; i++) { | ||
198 | if (chainmask & (1 << i)) { | ||
199 | val = REG_READ(ah, ah->nf_regs[i]); | ||
200 | val &= 0xFFFFFE00; | ||
201 | val |= (((u32) (h[i].privNF) << 1) & 0x1ff); | ||
202 | REG_WRITE(ah, ah->nf_regs[i], val); | ||
203 | } | ||
204 | } | ||
205 | |||
206 | /* | ||
207 | * Load software filtered NF value into baseband internal minCCApwr | ||
208 | * variable. | ||
209 | */ | ||
210 | REG_CLR_BIT(ah, AR_PHY_AGC_CONTROL, | ||
211 | AR_PHY_AGC_CONTROL_ENABLE_NF); | ||
212 | REG_CLR_BIT(ah, AR_PHY_AGC_CONTROL, | ||
213 | AR_PHY_AGC_CONTROL_NO_UPDATE_NF); | ||
214 | REG_SET_BIT(ah, AR_PHY_AGC_CONTROL, AR_PHY_AGC_CONTROL_NF); | ||
215 | |||
216 | /* | ||
217 | * Wait for load to complete, should be fast, a few 10s of us. | ||
218 | * The max delay was changed from an original 250us to 10000us | ||
219 | * since 250us often results in NF load timeout and causes deaf | ||
220 | * condition during stress testing 12/12/2009 | ||
221 | */ | ||
222 | for (j = 0; j < 1000; j++) { | ||
223 | if ((REG_READ(ah, AR_PHY_AGC_CONTROL) & | ||
224 | AR_PHY_AGC_CONTROL_NF) == 0) | ||
225 | break; | ||
226 | udelay(10); | ||
227 | } | ||
228 | |||
229 | /* | ||
230 | * We timed out waiting for the noisefloor to load, probably due to an | ||
231 | * in-progress rx. Simply return here and allow the load plenty of time | ||
232 | * to complete before the next calibration interval. We need to avoid | ||
233 | * trying to load -50 (which happens below) while the previous load is | ||
234 | * still in progress as this can cause rx deafness. Instead by returning | ||
235 | * here, the baseband nf cal will just be capped by our present | ||
236 | * noisefloor until the next calibration timer. | ||
237 | */ | ||
238 | if (j == 1000) { | ||
239 | ath_print(common, ATH_DBG_ANY, "Timeout while waiting for nf " | ||
240 | "to load: AR_PHY_AGC_CONTROL=0x%x\n", | ||
241 | REG_READ(ah, AR_PHY_AGC_CONTROL)); | ||
242 | return; | ||
243 | } | ||
244 | |||
245 | /* | ||
246 | * Restore maxCCAPower register parameter again so that we're not capped | ||
247 | * by the median we just loaded. This will be initial (and max) value | ||
248 | * of next noise floor calibration the baseband does. | ||
249 | */ | ||
250 | ENABLE_REGWRITE_BUFFER(ah); | ||
251 | for (i = 0; i < NUM_NF_READINGS; i++) { | ||
252 | if (chainmask & (1 << i)) { | ||
253 | val = REG_READ(ah, ah->nf_regs[i]); | ||
254 | val &= 0xFFFFFE00; | ||
255 | val |= (((u32) (-50) << 1) & 0x1ff); | ||
256 | REG_WRITE(ah, ah->nf_regs[i], val); | ||
257 | } | ||
258 | } | ||
259 | REGWRITE_BUFFER_FLUSH(ah); | ||
260 | DISABLE_REGWRITE_BUFFER(ah); | ||
261 | } | ||
262 | |||
263 | |||
264 | static void ath9k_hw_nf_sanitize(struct ath_hw *ah, s16 *nf) | ||
265 | { | ||
266 | struct ath_common *common = ath9k_hw_common(ah); | ||
267 | struct ath_nf_limits *limit; | ||
268 | int i; | ||
269 | |||
270 | if (IS_CHAN_2GHZ(ah->curchan)) | ||
271 | limit = &ah->nf_2g; | ||
272 | else | ||
273 | limit = &ah->nf_5g; | ||
274 | |||
275 | for (i = 0; i < NUM_NF_READINGS; i++) { | ||
276 | if (!nf[i]) | ||
277 | continue; | ||
278 | |||
279 | ath_print(common, ATH_DBG_CALIBRATE, | ||
280 | "NF calibrated [%s] [chain %d] is %d\n", | ||
281 | (i > 3 ? "ext" : "ctl"), i % 3, nf[i]); | ||
282 | |||
283 | if (nf[i] > limit->max) { | ||
284 | ath_print(common, ATH_DBG_CALIBRATE, | ||
285 | "NF[%d] (%d) > MAX (%d), correcting to MAX", | ||
286 | i, nf[i], limit->max); | ||
287 | nf[i] = limit->max; | ||
288 | } else if (nf[i] < limit->min) { | ||
289 | ath_print(common, ATH_DBG_CALIBRATE, | ||
290 | "NF[%d] (%d) < MIN (%d), correcting to NOM", | ||
291 | i, nf[i], limit->min); | ||
292 | nf[i] = limit->nominal; | ||
293 | } | ||
294 | } | ||
295 | } | ||
296 | |||
175 | int16_t ath9k_hw_getnf(struct ath_hw *ah, | 297 | int16_t ath9k_hw_getnf(struct ath_hw *ah, |
176 | struct ath9k_channel *chan) | 298 | struct ath9k_channel *chan) |
177 | { | 299 | { |
@@ -190,6 +312,7 @@ int16_t ath9k_hw_getnf(struct ath_hw *ah, | |||
190 | return chan->rawNoiseFloor; | 312 | return chan->rawNoiseFloor; |
191 | } else { | 313 | } else { |
192 | ath9k_hw_do_getnf(ah, nfarray); | 314 | ath9k_hw_do_getnf(ah, nfarray); |
315 | ath9k_hw_nf_sanitize(ah, nfarray); | ||
193 | nf = nfarray[0]; | 316 | nf = nfarray[0]; |
194 | if (ath9k_hw_get_nf_thresh(ah, c->band, &nfThresh) | 317 | if (ath9k_hw_get_nf_thresh(ah, c->band, &nfThresh) |
195 | && nf > nfThresh) { | 318 | && nf > nfThresh) { |
@@ -211,25 +334,21 @@ int16_t ath9k_hw_getnf(struct ath_hw *ah, | |||
211 | 334 | ||
212 | void ath9k_init_nfcal_hist_buffer(struct ath_hw *ah) | 335 | void ath9k_init_nfcal_hist_buffer(struct ath_hw *ah) |
213 | { | 336 | { |
337 | struct ath_nf_limits *limit; | ||
214 | int i, j; | 338 | int i, j; |
215 | s16 noise_floor; | ||
216 | 339 | ||
217 | if (AR_SREV_9280(ah)) | 340 | if (!ah->curchan || IS_CHAN_2GHZ(ah->curchan)) |
218 | noise_floor = AR_PHY_CCA_MAX_AR9280_GOOD_VALUE; | 341 | limit = &ah->nf_2g; |
219 | else if (AR_SREV_9285(ah) || AR_SREV_9271(ah)) | ||
220 | noise_floor = AR_PHY_CCA_MAX_AR9285_GOOD_VALUE; | ||
221 | else if (AR_SREV_9287(ah)) | ||
222 | noise_floor = AR_PHY_CCA_MAX_AR9287_GOOD_VALUE; | ||
223 | else | 342 | else |
224 | noise_floor = AR_PHY_CCA_MAX_AR5416_GOOD_VALUE; | 343 | limit = &ah->nf_5g; |
225 | 344 | ||
226 | for (i = 0; i < NUM_NF_READINGS; i++) { | 345 | for (i = 0; i < NUM_NF_READINGS; i++) { |
227 | ah->nfCalHist[i].currIndex = 0; | 346 | ah->nfCalHist[i].currIndex = 0; |
228 | ah->nfCalHist[i].privNF = noise_floor; | 347 | ah->nfCalHist[i].privNF = limit->nominal; |
229 | ah->nfCalHist[i].invalidNFcount = | 348 | ah->nfCalHist[i].invalidNFcount = |
230 | AR_PHY_CCA_FILTERWINDOW_LENGTH; | 349 | AR_PHY_CCA_FILTERWINDOW_LENGTH; |
231 | for (j = 0; j < ATH9K_NF_CAL_HIST_MAX; j++) { | 350 | for (j = 0; j < ATH9K_NF_CAL_HIST_MAX; j++) { |
232 | ah->nfCalHist[i].nfCalBuffer[j] = noise_floor; | 351 | ah->nfCalHist[i].nfCalBuffer[j] = limit->nominal; |
233 | } | 352 | } |
234 | } | 353 | } |
235 | } | 354 | } |
diff --git a/drivers/net/wireless/ath/ath9k/calib.h b/drivers/net/wireless/ath/ath9k/calib.h index 24538bdb9126..cd60d09cdda7 100644 --- a/drivers/net/wireless/ath/ath9k/calib.h +++ b/drivers/net/wireless/ath/ath9k/calib.h | |||
@@ -19,12 +19,6 @@ | |||
19 | 19 | ||
20 | #include "hw.h" | 20 | #include "hw.h" |
21 | 21 | ||
22 | #define AR_PHY_CCA_MAX_AR5416_GOOD_VALUE -85 | ||
23 | #define AR_PHY_CCA_MAX_AR9280_GOOD_VALUE -112 | ||
24 | #define AR_PHY_CCA_MAX_AR9285_GOOD_VALUE -118 | ||
25 | #define AR_PHY_CCA_MAX_AR9287_GOOD_VALUE -118 | ||
26 | #define AR_PHY_CCA_MAX_HIGH_VALUE -62 | ||
27 | #define AR_PHY_CCA_MIN_BAD_VALUE -140 | ||
28 | #define AR_PHY_CCA_FILTERWINDOW_LENGTH_INIT 3 | 22 | #define AR_PHY_CCA_FILTERWINDOW_LENGTH_INIT 3 |
29 | #define AR_PHY_CCA_FILTERWINDOW_LENGTH 5 | 23 | #define AR_PHY_CCA_FILTERWINDOW_LENGTH 5 |
30 | 24 | ||
@@ -115,6 +109,7 @@ struct ath9k_pacal_info{ | |||
115 | 109 | ||
116 | bool ath9k_hw_reset_calvalid(struct ath_hw *ah); | 110 | bool ath9k_hw_reset_calvalid(struct ath_hw *ah); |
117 | void ath9k_hw_start_nfcal(struct ath_hw *ah); | 111 | void ath9k_hw_start_nfcal(struct ath_hw *ah); |
112 | void ath9k_hw_loadnf(struct ath_hw *ah, struct ath9k_channel *chan); | ||
118 | int16_t ath9k_hw_getnf(struct ath_hw *ah, | 113 | int16_t ath9k_hw_getnf(struct ath_hw *ah, |
119 | struct ath9k_channel *chan); | 114 | struct ath9k_channel *chan); |
120 | void ath9k_init_nfcal_hist_buffer(struct ath_hw *ah); | 115 | void ath9k_init_nfcal_hist_buffer(struct ath_hw *ah); |
diff --git a/drivers/net/wireless/ath/ath9k/common.c b/drivers/net/wireless/ath/ath9k/common.c index 16e2849f644d..c86f7d3593ab 100644 --- a/drivers/net/wireless/ath/ath9k/common.c +++ b/drivers/net/wireless/ath/ath9k/common.c | |||
@@ -319,6 +319,10 @@ int ath9k_cmn_key_config(struct ath_common *common, | |||
319 | idx = ath_reserve_key_cache_slot(common, key->alg); | 319 | idx = ath_reserve_key_cache_slot(common, key->alg); |
320 | break; | 320 | break; |
321 | case NL80211_IFTYPE_ADHOC: | 321 | case NL80211_IFTYPE_ADHOC: |
322 | if (!sta) { | ||
323 | idx = key->keyidx; | ||
324 | break; | ||
325 | } | ||
322 | memcpy(gmac, sta->addr, ETH_ALEN); | 326 | memcpy(gmac, sta->addr, ETH_ALEN); |
323 | gmac[0] |= 0x01; | 327 | gmac[0] |= 0x01; |
324 | mac = gmac; | 328 | mac = gmac; |
diff --git a/drivers/net/wireless/ath/ath9k/eeprom.h b/drivers/net/wireless/ath/ath9k/eeprom.h index bdd8aa054b80..8750c558c221 100644 --- a/drivers/net/wireless/ath/ath9k/eeprom.h +++ b/drivers/net/wireless/ath/ath9k/eeprom.h | |||
@@ -670,7 +670,7 @@ struct eeprom_ops { | |||
670 | int (*get_eeprom_ver)(struct ath_hw *hw); | 670 | int (*get_eeprom_ver)(struct ath_hw *hw); |
671 | int (*get_eeprom_rev)(struct ath_hw *hw); | 671 | int (*get_eeprom_rev)(struct ath_hw *hw); |
672 | u8 (*get_num_ant_config)(struct ath_hw *hw, enum ieee80211_band band); | 672 | u8 (*get_num_ant_config)(struct ath_hw *hw, enum ieee80211_band band); |
673 | u16 (*get_eeprom_antenna_cfg)(struct ath_hw *hw, | 673 | u32 (*get_eeprom_antenna_cfg)(struct ath_hw *hw, |
674 | struct ath9k_channel *chan); | 674 | struct ath9k_channel *chan); |
675 | void (*set_board_values)(struct ath_hw *hw, struct ath9k_channel *chan); | 675 | void (*set_board_values)(struct ath_hw *hw, struct ath9k_channel *chan); |
676 | void (*set_addac)(struct ath_hw *hw, struct ath9k_channel *chan); | 676 | void (*set_addac)(struct ath_hw *hw, struct ath9k_channel *chan); |
diff --git a/drivers/net/wireless/ath/ath9k/eeprom_4k.c b/drivers/net/wireless/ath/ath9k/eeprom_4k.c index e25a2abbf561..afafc4d4b8fb 100644 --- a/drivers/net/wireless/ath/ath9k/eeprom_4k.c +++ b/drivers/net/wireless/ath/ath9k/eeprom_4k.c | |||
@@ -1150,13 +1150,13 @@ static void ath9k_hw_4k_set_board_values(struct ath_hw *ah, | |||
1150 | } | 1150 | } |
1151 | } | 1151 | } |
1152 | 1152 | ||
1153 | static u16 ath9k_hw_4k_get_eeprom_antenna_cfg(struct ath_hw *ah, | 1153 | static u32 ath9k_hw_4k_get_eeprom_antenna_cfg(struct ath_hw *ah, |
1154 | struct ath9k_channel *chan) | 1154 | struct ath9k_channel *chan) |
1155 | { | 1155 | { |
1156 | struct ar5416_eeprom_4k *eep = &ah->eeprom.map4k; | 1156 | struct ar5416_eeprom_4k *eep = &ah->eeprom.map4k; |
1157 | struct modal_eep_4k_header *pModal = &eep->modalHeader; | 1157 | struct modal_eep_4k_header *pModal = &eep->modalHeader; |
1158 | 1158 | ||
1159 | return pModal->antCtrlCommon & 0xFFFF; | 1159 | return pModal->antCtrlCommon; |
1160 | } | 1160 | } |
1161 | 1161 | ||
1162 | static u8 ath9k_hw_4k_get_num_ant_config(struct ath_hw *ah, | 1162 | static u8 ath9k_hw_4k_get_num_ant_config(struct ath_hw *ah, |
diff --git a/drivers/net/wireless/ath/ath9k/eeprom_9287.c b/drivers/net/wireless/ath/ath9k/eeprom_9287.c index 39a41053705f..37207dfd1799 100644 --- a/drivers/net/wireless/ath/ath9k/eeprom_9287.c +++ b/drivers/net/wireless/ath/ath9k/eeprom_9287.c | |||
@@ -1130,13 +1130,13 @@ static u8 ath9k_hw_ar9287_get_num_ant_config(struct ath_hw *ah, | |||
1130 | return 1; | 1130 | return 1; |
1131 | } | 1131 | } |
1132 | 1132 | ||
1133 | static u16 ath9k_hw_ar9287_get_eeprom_antenna_cfg(struct ath_hw *ah, | 1133 | static u32 ath9k_hw_ar9287_get_eeprom_antenna_cfg(struct ath_hw *ah, |
1134 | struct ath9k_channel *chan) | 1134 | struct ath9k_channel *chan) |
1135 | { | 1135 | { |
1136 | struct ar9287_eeprom *eep = &ah->eeprom.map9287; | 1136 | struct ar9287_eeprom *eep = &ah->eeprom.map9287; |
1137 | struct modal_eep_ar9287_header *pModal = &eep->modalHeader; | 1137 | struct modal_eep_ar9287_header *pModal = &eep->modalHeader; |
1138 | 1138 | ||
1139 | return pModal->antCtrlCommon & 0xFFFF; | 1139 | return pModal->antCtrlCommon; |
1140 | } | 1140 | } |
1141 | 1141 | ||
1142 | static u16 ath9k_hw_ar9287_get_spur_channel(struct ath_hw *ah, | 1142 | static u16 ath9k_hw_ar9287_get_spur_channel(struct ath_hw *ah, |
diff --git a/drivers/net/wireless/ath/ath9k/eeprom_def.c b/drivers/net/wireless/ath/ath9k/eeprom_def.c index 77b1433312cc..02e6c2a55fe4 100644 --- a/drivers/net/wireless/ath/ath9k/eeprom_def.c +++ b/drivers/net/wireless/ath/ath9k/eeprom_def.c | |||
@@ -730,7 +730,7 @@ static void ath9k_hw_get_def_gain_boundaries_pdadcs(struct ath_hw *ah, | |||
730 | vpdTableI[i][sizeCurrVpdTable - 2]); | 730 | vpdTableI[i][sizeCurrVpdTable - 2]); |
731 | vpdStep = (int16_t)((vpdStep < 1) ? 1 : vpdStep); | 731 | vpdStep = (int16_t)((vpdStep < 1) ? 1 : vpdStep); |
732 | 732 | ||
733 | if (tgtIndex > maxIndex) { | 733 | if (tgtIndex >= maxIndex) { |
734 | while ((ss <= tgtIndex) && | 734 | while ((ss <= tgtIndex) && |
735 | (k < (AR5416_NUM_PDADC_VALUES - 1))) { | 735 | (k < (AR5416_NUM_PDADC_VALUES - 1))) { |
736 | tmpVal = (int16_t)((vpdTableI[i][sizeCurrVpdTable - 1] + | 736 | tmpVal = (int16_t)((vpdTableI[i][sizeCurrVpdTable - 1] + |
@@ -1438,14 +1438,14 @@ static u8 ath9k_hw_def_get_num_ant_config(struct ath_hw *ah, | |||
1438 | return num_ant_config; | 1438 | return num_ant_config; |
1439 | } | 1439 | } |
1440 | 1440 | ||
1441 | static u16 ath9k_hw_def_get_eeprom_antenna_cfg(struct ath_hw *ah, | 1441 | static u32 ath9k_hw_def_get_eeprom_antenna_cfg(struct ath_hw *ah, |
1442 | struct ath9k_channel *chan) | 1442 | struct ath9k_channel *chan) |
1443 | { | 1443 | { |
1444 | struct ar5416_eeprom_def *eep = &ah->eeprom.def; | 1444 | struct ar5416_eeprom_def *eep = &ah->eeprom.def; |
1445 | struct modal_eep_header *pModal = | 1445 | struct modal_eep_header *pModal = |
1446 | &(eep->modalHeader[IS_CHAN_2GHZ(chan)]); | 1446 | &(eep->modalHeader[IS_CHAN_2GHZ(chan)]); |
1447 | 1447 | ||
1448 | return pModal->antCtrlCommon & 0xFFFF; | 1448 | return pModal->antCtrlCommon; |
1449 | } | 1449 | } |
1450 | 1450 | ||
1451 | static u16 ath9k_hw_def_get_spur_channel(struct ath_hw *ah, u16 i, bool is2GHz) | 1451 | static u16 ath9k_hw_def_get_spur_channel(struct ath_hw *ah, u16 i, bool is2GHz) |
diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c index ad9134bddd1e..61c1bee3f26a 100644 --- a/drivers/net/wireless/ath/ath9k/hif_usb.c +++ b/drivers/net/wireless/ath/ath9k/hif_usb.c | |||
@@ -745,13 +745,17 @@ static int ath9k_hif_usb_alloc_urbs(struct hif_device_usb *hif_dev) | |||
745 | 745 | ||
746 | /* RX */ | 746 | /* RX */ |
747 | if (ath9k_hif_usb_alloc_rx_urbs(hif_dev) < 0) | 747 | if (ath9k_hif_usb_alloc_rx_urbs(hif_dev) < 0) |
748 | goto err; | 748 | goto err_rx; |
749 | 749 | ||
750 | /* Register Read */ | 750 | /* Register Read */ |
751 | if (ath9k_hif_usb_alloc_reg_in_urb(hif_dev) < 0) | 751 | if (ath9k_hif_usb_alloc_reg_in_urb(hif_dev) < 0) |
752 | goto err; | 752 | goto err_reg; |
753 | 753 | ||
754 | return 0; | 754 | return 0; |
755 | err_reg: | ||
756 | ath9k_hif_usb_dealloc_rx_urbs(hif_dev); | ||
757 | err_rx: | ||
758 | ath9k_hif_usb_dealloc_tx_urbs(hif_dev); | ||
755 | err: | 759 | err: |
756 | return -ENOMEM; | 760 | return -ENOMEM; |
757 | } | 761 | } |
diff --git a/drivers/net/wireless/ath/ath9k/hw-ops.h b/drivers/net/wireless/ath/ath9k/hw-ops.h index 381da6c93b14..ffecbadaea4a 100644 --- a/drivers/net/wireless/ath/ath9k/hw-ops.h +++ b/drivers/net/wireless/ath/ath9k/hw-ops.h | |||
@@ -264,12 +264,6 @@ static inline void ath9k_hw_do_getnf(struct ath_hw *ah, | |||
264 | ath9k_hw_private_ops(ah)->do_getnf(ah, nfarray); | 264 | ath9k_hw_private_ops(ah)->do_getnf(ah, nfarray); |
265 | } | 265 | } |
266 | 266 | ||
267 | static inline void ath9k_hw_loadnf(struct ath_hw *ah, | ||
268 | struct ath9k_channel *chan) | ||
269 | { | ||
270 | ath9k_hw_private_ops(ah)->loadnf(ah, chan); | ||
271 | } | ||
272 | |||
273 | static inline bool ath9k_hw_init_cal(struct ath_hw *ah, | 267 | static inline bool ath9k_hw_init_cal(struct ath_hw *ah, |
274 | struct ath9k_channel *chan) | 268 | struct ath9k_channel *chan) |
275 | { | 269 | { |
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c index 3ed5c9ec7bc1..2f83f975b891 100644 --- a/drivers/net/wireless/ath/ath9k/hw.c +++ b/drivers/net/wireless/ath/ath9k/hw.c | |||
@@ -609,9 +609,6 @@ static int __ath9k_hw_init(struct ath_hw *ah) | |||
609 | else | 609 | else |
610 | ah->tx_trig_level = (AR_FTRIG_512B >> AR_FTRIG_S); | 610 | ah->tx_trig_level = (AR_FTRIG_512B >> AR_FTRIG_S); |
611 | 611 | ||
612 | if (AR_SREV_9300_20_OR_LATER(ah)) | ||
613 | ar9003_hw_set_nf_limits(ah); | ||
614 | |||
615 | ath9k_init_nfcal_hist_buffer(ah); | 612 | ath9k_init_nfcal_hist_buffer(ah); |
616 | ah->bb_watchdog_timeout_ms = 25; | 613 | ah->bb_watchdog_timeout_ms = 25; |
617 | 614 | ||
@@ -1235,9 +1232,11 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan, | |||
1235 | 1232 | ||
1236 | if (!ah->chip_fullsleep) { | 1233 | if (!ah->chip_fullsleep) { |
1237 | ath9k_hw_abortpcurecv(ah); | 1234 | ath9k_hw_abortpcurecv(ah); |
1238 | if (!ath9k_hw_stopdmarecv(ah)) | 1235 | if (!ath9k_hw_stopdmarecv(ah)) { |
1239 | ath_print(common, ATH_DBG_XMIT, | 1236 | ath_print(common, ATH_DBG_XMIT, |
1240 | "Failed to stop receive dma\n"); | 1237 | "Failed to stop receive dma\n"); |
1238 | bChannelChange = false; | ||
1239 | } | ||
1241 | } | 1240 | } |
1242 | 1241 | ||
1243 | if (!ath9k_hw_setpower(ah, ATH9K_PM_AWAKE)) | 1242 | if (!ath9k_hw_setpower(ah, ATH9K_PM_AWAKE)) |
diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h index bb99e2e1f943..2d30efc0b94f 100644 --- a/drivers/net/wireless/ath/ath9k/hw.h +++ b/drivers/net/wireless/ath/ath9k/hw.h | |||
@@ -510,7 +510,6 @@ struct ath_gen_timer_table { | |||
510 | * AR_RTC_PLL_CONTROL for a given channel | 510 | * AR_RTC_PLL_CONTROL for a given channel |
511 | * @setup_calibration: set up calibration | 511 | * @setup_calibration: set up calibration |
512 | * @iscal_supported: used to query if a type of calibration is supported | 512 | * @iscal_supported: used to query if a type of calibration is supported |
513 | * @loadnf: load noise floor read from each chain on the CCA registers | ||
514 | * | 513 | * |
515 | * @ani_reset: reset ANI parameters to default values | 514 | * @ani_reset: reset ANI parameters to default values |
516 | * @ani_lower_immunity: lower the noise immunity level. The level controls | 515 | * @ani_lower_immunity: lower the noise immunity level. The level controls |
@@ -564,7 +563,6 @@ struct ath_hw_private_ops { | |||
564 | bool (*ani_control)(struct ath_hw *ah, enum ath9k_ani_cmd cmd, | 563 | bool (*ani_control)(struct ath_hw *ah, enum ath9k_ani_cmd cmd, |
565 | int param); | 564 | int param); |
566 | void (*do_getnf)(struct ath_hw *ah, int16_t nfarray[NUM_NF_READINGS]); | 565 | void (*do_getnf)(struct ath_hw *ah, int16_t nfarray[NUM_NF_READINGS]); |
567 | void (*loadnf)(struct ath_hw *ah, struct ath9k_channel *chan); | ||
568 | 566 | ||
569 | /* ANI */ | 567 | /* ANI */ |
570 | void (*ani_reset)(struct ath_hw *ah, bool is_scanning); | 568 | void (*ani_reset)(struct ath_hw *ah, bool is_scanning); |
@@ -630,6 +628,12 @@ struct ath_hw_ops { | |||
630 | void (*ani_monitor)(struct ath_hw *ah, struct ath9k_channel *chan); | 628 | void (*ani_monitor)(struct ath_hw *ah, struct ath9k_channel *chan); |
631 | }; | 629 | }; |
632 | 630 | ||
631 | struct ath_nf_limits { | ||
632 | s16 max; | ||
633 | s16 min; | ||
634 | s16 nominal; | ||
635 | }; | ||
636 | |||
633 | struct ath_hw { | 637 | struct ath_hw { |
634 | struct ieee80211_hw *hw; | 638 | struct ieee80211_hw *hw; |
635 | struct ath_common common; | 639 | struct ath_common common; |
@@ -651,10 +655,10 @@ struct ath_hw { | |||
651 | bool is_pciexpress; | 655 | bool is_pciexpress; |
652 | bool need_an_top2_fixup; | 656 | bool need_an_top2_fixup; |
653 | u16 tx_trig_level; | 657 | u16 tx_trig_level; |
654 | s16 nf_2g_max; | 658 | |
655 | s16 nf_2g_min; | 659 | u32 nf_regs[6]; |
656 | s16 nf_5g_max; | 660 | struct ath_nf_limits nf_2g; |
657 | s16 nf_5g_min; | 661 | struct ath_nf_limits nf_5g; |
658 | u16 rfsilent; | 662 | u16 rfsilent; |
659 | u32 rfkill_gpio; | 663 | u32 rfkill_gpio; |
660 | u32 rfkill_polarity; | 664 | u32 rfkill_polarity; |
@@ -848,6 +852,12 @@ static inline struct ath_hw_ops *ath9k_hw_ops(struct ath_hw *ah) | |||
848 | return &ah->ops; | 852 | return &ah->ops; |
849 | } | 853 | } |
850 | 854 | ||
855 | static inline int sign_extend(int val, const int nbits) | ||
856 | { | ||
857 | int order = BIT(nbits-1); | ||
858 | return (val ^ order) - order; | ||
859 | } | ||
860 | |||
851 | /* Initialization, Detach, Reset */ | 861 | /* Initialization, Detach, Reset */ |
852 | const char *ath9k_hw_probe(u16 vendorid, u16 devid); | 862 | const char *ath9k_hw_probe(u16 vendorid, u16 devid); |
853 | void ath9k_hw_deinit(struct ath_hw *ah); | 863 | void ath9k_hw_deinit(struct ath_hw *ah); |
@@ -943,7 +953,6 @@ void ar9002_hw_enable_wep_aggregation(struct ath_hw *ah); | |||
943 | * Code specific to AR9003, we stuff these here to avoid callbacks | 953 | * Code specific to AR9003, we stuff these here to avoid callbacks |
944 | * for older families | 954 | * for older families |
945 | */ | 955 | */ |
946 | void ar9003_hw_set_nf_limits(struct ath_hw *ah); | ||
947 | void ar9003_hw_bb_watchdog_config(struct ath_hw *ah); | 956 | void ar9003_hw_bb_watchdog_config(struct ath_hw *ah); |
948 | void ar9003_hw_bb_watchdog_read(struct ath_hw *ah); | 957 | void ar9003_hw_bb_watchdog_read(struct ath_hw *ah); |
949 | void ar9003_hw_bb_watchdog_dbg_info(struct ath_hw *ah); | 958 | void ar9003_hw_bb_watchdog_dbg_info(struct ath_hw *ah); |
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c index 8700e3dc53cf..fe730cb16ec2 100644 --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c | |||
@@ -718,6 +718,7 @@ int ath9k_init_device(u16 devid, struct ath_softc *sc, u16 subsysid, | |||
718 | goto error_world; | 718 | goto error_world; |
719 | } | 719 | } |
720 | 720 | ||
721 | INIT_WORK(&sc->hw_check_work, ath_hw_check); | ||
721 | INIT_WORK(&sc->paprd_work, ath_paprd_calibrate); | 722 | INIT_WORK(&sc->paprd_work, ath_paprd_calibrate); |
722 | INIT_WORK(&sc->chan_work, ath9k_wiphy_chan_work); | 723 | INIT_WORK(&sc->chan_work, ath9k_wiphy_chan_work); |
723 | INIT_DELAYED_WORK(&sc->wiphy_work, ath9k_wiphy_work); | 724 | INIT_DELAYED_WORK(&sc->wiphy_work, ath9k_wiphy_work); |
diff --git a/drivers/net/wireless/ath/ath9k/mac.h b/drivers/net/wireless/ath/ath9k/mac.h index 7559fb2b28a5..2633896d3998 100644 --- a/drivers/net/wireless/ath/ath9k/mac.h +++ b/drivers/net/wireless/ath/ath9k/mac.h | |||
@@ -485,6 +485,9 @@ struct ar5416_desc { | |||
485 | #define AR_TxRSSICombined 0xff000000 | 485 | #define AR_TxRSSICombined 0xff000000 |
486 | #define AR_TxRSSICombined_S 24 | 486 | #define AR_TxRSSICombined_S 24 |
487 | 487 | ||
488 | #define AR_TxTid 0xf0000000 | ||
489 | #define AR_TxTid_S 28 | ||
490 | |||
488 | #define AR_TxEVM0 ds_txstatus5 | 491 | #define AR_TxEVM0 ds_txstatus5 |
489 | #define AR_TxEVM1 ds_txstatus6 | 492 | #define AR_TxEVM1 ds_txstatus6 |
490 | #define AR_TxEVM2 ds_txstatus7 | 493 | #define AR_TxEVM2 ds_txstatus7 |
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index efbf53534ade..4c0831ff6e92 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c | |||
@@ -515,6 +515,25 @@ static void ath_node_detach(struct ath_softc *sc, struct ieee80211_sta *sta) | |||
515 | ath_tx_node_cleanup(sc, an); | 515 | ath_tx_node_cleanup(sc, an); |
516 | } | 516 | } |
517 | 517 | ||
518 | void ath_hw_check(struct work_struct *work) | ||
519 | { | ||
520 | struct ath_softc *sc = container_of(work, struct ath_softc, hw_check_work); | ||
521 | int i; | ||
522 | |||
523 | ath9k_ps_wakeup(sc); | ||
524 | |||
525 | for (i = 0; i < 3; i++) { | ||
526 | if (ath9k_hw_check_alive(sc->sc_ah)) | ||
527 | goto out; | ||
528 | |||
529 | msleep(1); | ||
530 | } | ||
531 | ath_reset(sc, false); | ||
532 | |||
533 | out: | ||
534 | ath9k_ps_restore(sc); | ||
535 | } | ||
536 | |||
518 | void ath9k_tasklet(unsigned long data) | 537 | void ath9k_tasklet(unsigned long data) |
519 | { | 538 | { |
520 | struct ath_softc *sc = (struct ath_softc *)data; | 539 | struct ath_softc *sc = (struct ath_softc *)data; |
@@ -526,13 +545,15 @@ void ath9k_tasklet(unsigned long data) | |||
526 | 545 | ||
527 | ath9k_ps_wakeup(sc); | 546 | ath9k_ps_wakeup(sc); |
528 | 547 | ||
529 | if ((status & ATH9K_INT_FATAL) || | 548 | if (status & ATH9K_INT_FATAL) { |
530 | !ath9k_hw_check_alive(ah)) { | ||
531 | ath_reset(sc, false); | 549 | ath_reset(sc, false); |
532 | ath9k_ps_restore(sc); | 550 | ath9k_ps_restore(sc); |
533 | return; | 551 | return; |
534 | } | 552 | } |
535 | 553 | ||
554 | if (!ath9k_hw_check_alive(ah)) | ||
555 | ieee80211_queue_work(sc->hw, &sc->hw_check_work); | ||
556 | |||
536 | if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) | 557 | if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) |
537 | rxmask = (ATH9K_INT_RXHP | ATH9K_INT_RXLP | ATH9K_INT_RXEOL | | 558 | rxmask = (ATH9K_INT_RXHP | ATH9K_INT_RXLP | ATH9K_INT_RXEOL | |
538 | ATH9K_INT_RXORN); | 559 | ATH9K_INT_RXORN); |
@@ -1253,6 +1274,7 @@ static void ath9k_stop(struct ieee80211_hw *hw) | |||
1253 | 1274 | ||
1254 | cancel_delayed_work_sync(&sc->tx_complete_work); | 1275 | cancel_delayed_work_sync(&sc->tx_complete_work); |
1255 | cancel_work_sync(&sc->paprd_work); | 1276 | cancel_work_sync(&sc->paprd_work); |
1277 | cancel_work_sync(&sc->hw_check_work); | ||
1256 | 1278 | ||
1257 | if (!sc->num_sec_wiphy) { | 1279 | if (!sc->num_sec_wiphy) { |
1258 | cancel_delayed_work_sync(&sc->wiphy_work); | 1280 | cancel_delayed_work_sync(&sc->wiphy_work); |
@@ -1976,6 +1998,7 @@ static void ath9k_sw_scan_start(struct ieee80211_hw *hw) | |||
1976 | sc->sc_flags |= SC_OP_SCANNING; | 1998 | sc->sc_flags |= SC_OP_SCANNING; |
1977 | del_timer_sync(&common->ani.timer); | 1999 | del_timer_sync(&common->ani.timer); |
1978 | cancel_work_sync(&sc->paprd_work); | 2000 | cancel_work_sync(&sc->paprd_work); |
2001 | cancel_work_sync(&sc->hw_check_work); | ||
1979 | cancel_delayed_work_sync(&sc->tx_complete_work); | 2002 | cancel_delayed_work_sync(&sc->tx_complete_work); |
1980 | mutex_unlock(&sc->mutex); | 2003 | mutex_unlock(&sc->mutex); |
1981 | } | 2004 | } |
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c index c3681a1dc941..bd52ac111795 100644 --- a/drivers/net/wireless/ath/ath9k/xmit.c +++ b/drivers/net/wireless/ath/ath9k/xmit.c | |||
@@ -329,6 +329,7 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq, | |||
329 | int isaggr, txfail, txpending, sendbar = 0, needreset = 0, nbad = 0; | 329 | int isaggr, txfail, txpending, sendbar = 0, needreset = 0, nbad = 0; |
330 | bool rc_update = true; | 330 | bool rc_update = true; |
331 | struct ieee80211_tx_rate rates[4]; | 331 | struct ieee80211_tx_rate rates[4]; |
332 | unsigned long flags; | ||
332 | 333 | ||
333 | skb = bf->bf_mpdu; | 334 | skb = bf->bf_mpdu; |
334 | hdr = (struct ieee80211_hdr *)skb->data; | 335 | hdr = (struct ieee80211_hdr *)skb->data; |
@@ -344,12 +345,24 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq, | |||
344 | sta = ieee80211_find_sta_by_hw(hw, hdr->addr1); | 345 | sta = ieee80211_find_sta_by_hw(hw, hdr->addr1); |
345 | if (!sta) { | 346 | if (!sta) { |
346 | rcu_read_unlock(); | 347 | rcu_read_unlock(); |
348 | |||
349 | spin_lock_irqsave(&sc->tx.txbuflock, flags); | ||
350 | list_splice_tail_init(bf_q, &sc->tx.txbuf); | ||
351 | spin_unlock_irqrestore(&sc->tx.txbuflock, flags); | ||
347 | return; | 352 | return; |
348 | } | 353 | } |
349 | 354 | ||
350 | an = (struct ath_node *)sta->drv_priv; | 355 | an = (struct ath_node *)sta->drv_priv; |
351 | tid = ATH_AN_2_TID(an, bf->bf_tidno); | 356 | tid = ATH_AN_2_TID(an, bf->bf_tidno); |
352 | 357 | ||
358 | /* | ||
359 | * The hardware occasionally sends a tx status for the wrong TID. | ||
360 | * In this case, the BA status cannot be considered valid and all | ||
361 | * subframes need to be retransmitted | ||
362 | */ | ||
363 | if (bf->bf_tidno != ts->tid) | ||
364 | txok = false; | ||
365 | |||
353 | isaggr = bf_isaggr(bf); | 366 | isaggr = bf_isaggr(bf); |
354 | memset(ba, 0, WME_BA_BMP_SIZE >> 3); | 367 | memset(ba, 0, WME_BA_BMP_SIZE >> 3); |
355 | 368 | ||
@@ -2430,37 +2443,37 @@ void ath_tx_node_init(struct ath_softc *sc, struct ath_node *an) | |||
2430 | 2443 | ||
2431 | void ath_tx_node_cleanup(struct ath_softc *sc, struct ath_node *an) | 2444 | void ath_tx_node_cleanup(struct ath_softc *sc, struct ath_node *an) |
2432 | { | 2445 | { |
2433 | int i; | 2446 | struct ath_atx_ac *ac; |
2434 | struct ath_atx_ac *ac, *ac_tmp; | 2447 | struct ath_atx_tid *tid; |
2435 | struct ath_atx_tid *tid, *tid_tmp; | ||
2436 | struct ath_txq *txq; | 2448 | struct ath_txq *txq; |
2449 | int i, tidno; | ||
2437 | 2450 | ||
2438 | for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++) { | 2451 | for (tidno = 0, tid = &an->tid[tidno]; |
2439 | if (ATH_TXQ_SETUP(sc, i)) { | 2452 | tidno < WME_NUM_TID; tidno++, tid++) { |
2440 | txq = &sc->tx.txq[i]; | 2453 | i = tid->ac->qnum; |
2441 | 2454 | ||
2442 | spin_lock_bh(&txq->axq_lock); | 2455 | if (!ATH_TXQ_SETUP(sc, i)) |
2456 | continue; | ||
2443 | 2457 | ||
2444 | list_for_each_entry_safe(ac, | 2458 | txq = &sc->tx.txq[i]; |
2445 | ac_tmp, &txq->axq_acq, list) { | 2459 | ac = tid->ac; |
2446 | tid = list_first_entry(&ac->tid_q, | ||
2447 | struct ath_atx_tid, list); | ||
2448 | if (tid && tid->an != an) | ||
2449 | continue; | ||
2450 | list_del(&ac->list); | ||
2451 | ac->sched = false; | ||
2452 | |||
2453 | list_for_each_entry_safe(tid, | ||
2454 | tid_tmp, &ac->tid_q, list) { | ||
2455 | list_del(&tid->list); | ||
2456 | tid->sched = false; | ||
2457 | ath_tid_drain(sc, txq, tid); | ||
2458 | tid->state &= ~AGGR_ADDBA_COMPLETE; | ||
2459 | tid->state &= ~AGGR_CLEANUP; | ||
2460 | } | ||
2461 | } | ||
2462 | 2460 | ||
2463 | spin_unlock_bh(&txq->axq_lock); | 2461 | spin_lock_bh(&txq->axq_lock); |
2462 | |||
2463 | if (tid->sched) { | ||
2464 | list_del(&tid->list); | ||
2465 | tid->sched = false; | ||
2464 | } | 2466 | } |
2467 | |||
2468 | if (ac->sched) { | ||
2469 | list_del(&ac->list); | ||
2470 | tid->ac->sched = false; | ||
2471 | } | ||
2472 | |||
2473 | ath_tid_drain(sc, txq, tid); | ||
2474 | tid->state &= ~AGGR_ADDBA_COMPLETE; | ||
2475 | tid->state &= ~AGGR_CLEANUP; | ||
2476 | |||
2477 | spin_unlock_bh(&txq->axq_lock); | ||
2465 | } | 2478 | } |
2466 | } | 2479 | } |
diff --git a/drivers/net/wireless/hostap/hostap_main.c b/drivers/net/wireless/hostap/hostap_main.c index eaee84b55887..25a2722c8a98 100644 --- a/drivers/net/wireless/hostap/hostap_main.c +++ b/drivers/net/wireless/hostap/hostap_main.c | |||
@@ -186,7 +186,7 @@ int prism2_wds_add(local_info_t *local, u8 *remote_addr, | |||
186 | return -ENOBUFS; | 186 | return -ENOBUFS; |
187 | 187 | ||
188 | /* verify that there is room for wds# postfix in the interface name */ | 188 | /* verify that there is room for wds# postfix in the interface name */ |
189 | if (strlen(local->dev->name) > IFNAMSIZ - 5) { | 189 | if (strlen(local->dev->name) >= IFNAMSIZ - 5) { |
190 | printk(KERN_DEBUG "'%s' too long base device name\n", | 190 | printk(KERN_DEBUG "'%s' too long base device name\n", |
191 | local->dev->name); | 191 | local->dev->name); |
192 | return -EINVAL; | 192 | return -EINVAL; |
diff --git a/drivers/net/wireless/iwlwifi/Kconfig b/drivers/net/wireless/iwlwifi/Kconfig index 6491e27baac5..a51e4da1bdfc 100644 --- a/drivers/net/wireless/iwlwifi/Kconfig +++ b/drivers/net/wireless/iwlwifi/Kconfig | |||
@@ -87,10 +87,15 @@ config IWL4965 | |||
87 | This option enables support for Intel Wireless WiFi Link 4965AGN | 87 | This option enables support for Intel Wireless WiFi Link 4965AGN |
88 | 88 | ||
89 | config IWL5000 | 89 | config IWL5000 |
90 | bool "Intel Wireless WiFi 5000AGN; Intel WiFi Link 1000, 6000, and 6050 Series" | 90 | bool "Intel Wireless-N/Advanced-N/Ultimate-N WiFi Link" |
91 | depends on IWLAGN | 91 | depends on IWLAGN |
92 | ---help--- | 92 | ---help--- |
93 | This option enables support for Intel Wireless WiFi Link 5000AGN Family | 93 | This option enables support for use with the following hardware: |
94 | Intel Wireless WiFi Link 6250AGN Adapter | ||
95 | Intel 6000 Series Wi-Fi Adapters (6200AGN and 6300AGN) | ||
96 | Intel WiFi Link 1000BGN | ||
97 | Intel Wireless WiFi 5150AGN | ||
98 | Intel Wireless WiFi 5100AGN, 5300AGN, and 5350AGN | ||
94 | 99 | ||
95 | config IWL3945 | 100 | config IWL3945 |
96 | tristate "Intel PRO/Wireless 3945ABG/BG Network Connection (iwl3945)" | 101 | tristate "Intel PRO/Wireless 3945ABG/BG Network Connection (iwl3945)" |
diff --git a/drivers/net/wireless/iwlwifi/iwl-1000.c b/drivers/net/wireless/iwlwifi/iwl-1000.c index 1daf159914ad..c281d07ec5e5 100644 --- a/drivers/net/wireless/iwlwifi/iwl-1000.c +++ b/drivers/net/wireless/iwlwifi/iwl-1000.c | |||
@@ -129,8 +129,8 @@ static int iwl1000_hw_set_hw_params(struct iwl_priv *priv) | |||
129 | priv->cfg->num_of_queues * | 129 | priv->cfg->num_of_queues * |
130 | sizeof(struct iwlagn_scd_bc_tbl); | 130 | sizeof(struct iwlagn_scd_bc_tbl); |
131 | priv->hw_params.tfd_size = sizeof(struct iwl_tfd); | 131 | priv->hw_params.tfd_size = sizeof(struct iwl_tfd); |
132 | priv->hw_params.max_stations = IWL5000_STATION_COUNT; | 132 | priv->hw_params.max_stations = IWLAGN_STATION_COUNT; |
133 | priv->hw_params.bcast_sta_id = IWL5000_BROADCAST_ID; | 133 | priv->hw_params.bcast_sta_id = IWLAGN_BROADCAST_ID; |
134 | 134 | ||
135 | priv->hw_params.max_data_size = IWLAGN_RTC_DATA_SIZE; | 135 | priv->hw_params.max_data_size = IWLAGN_RTC_DATA_SIZE; |
136 | priv->hw_params.max_inst_size = IWLAGN_RTC_INST_SIZE; | 136 | priv->hw_params.max_inst_size = IWLAGN_RTC_INST_SIZE; |
@@ -226,6 +226,8 @@ static struct iwl_lib_ops iwl1000_lib = { | |||
226 | .recover_from_tx_stall = iwl_bg_monitor_recover, | 226 | .recover_from_tx_stall = iwl_bg_monitor_recover, |
227 | .check_plcp_health = iwl_good_plcp_health, | 227 | .check_plcp_health = iwl_good_plcp_health, |
228 | .check_ack_health = iwl_good_ack_health, | 228 | .check_ack_health = iwl_good_ack_health, |
229 | .txfifo_flush = iwlagn_txfifo_flush, | ||
230 | .dev_txfifo_flush = iwlagn_dev_txfifo_flush, | ||
229 | }; | 231 | }; |
230 | 232 | ||
231 | static const struct iwl_ops iwl1000_ops = { | 233 | static const struct iwl_ops iwl1000_ops = { |
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c index b8f3e20f2c80..7d89d99ce19c 100644 --- a/drivers/net/wireless/iwlwifi/iwl-5000.c +++ b/drivers/net/wireless/iwlwifi/iwl-5000.c | |||
@@ -179,8 +179,8 @@ static int iwl5000_hw_set_hw_params(struct iwl_priv *priv) | |||
179 | priv->cfg->num_of_queues * | 179 | priv->cfg->num_of_queues * |
180 | sizeof(struct iwlagn_scd_bc_tbl); | 180 | sizeof(struct iwlagn_scd_bc_tbl); |
181 | priv->hw_params.tfd_size = sizeof(struct iwl_tfd); | 181 | priv->hw_params.tfd_size = sizeof(struct iwl_tfd); |
182 | priv->hw_params.max_stations = IWL5000_STATION_COUNT; | 182 | priv->hw_params.max_stations = IWLAGN_STATION_COUNT; |
183 | priv->hw_params.bcast_sta_id = IWL5000_BROADCAST_ID; | 183 | priv->hw_params.bcast_sta_id = IWLAGN_BROADCAST_ID; |
184 | 184 | ||
185 | priv->hw_params.max_data_size = IWLAGN_RTC_DATA_SIZE; | 185 | priv->hw_params.max_data_size = IWLAGN_RTC_DATA_SIZE; |
186 | priv->hw_params.max_inst_size = IWLAGN_RTC_INST_SIZE; | 186 | priv->hw_params.max_inst_size = IWLAGN_RTC_INST_SIZE; |
@@ -226,8 +226,8 @@ static int iwl5150_hw_set_hw_params(struct iwl_priv *priv) | |||
226 | priv->cfg->num_of_queues * | 226 | priv->cfg->num_of_queues * |
227 | sizeof(struct iwlagn_scd_bc_tbl); | 227 | sizeof(struct iwlagn_scd_bc_tbl); |
228 | priv->hw_params.tfd_size = sizeof(struct iwl_tfd); | 228 | priv->hw_params.tfd_size = sizeof(struct iwl_tfd); |
229 | priv->hw_params.max_stations = IWL5000_STATION_COUNT; | 229 | priv->hw_params.max_stations = IWLAGN_STATION_COUNT; |
230 | priv->hw_params.bcast_sta_id = IWL5000_BROADCAST_ID; | 230 | priv->hw_params.bcast_sta_id = IWLAGN_BROADCAST_ID; |
231 | 231 | ||
232 | priv->hw_params.max_data_size = IWLAGN_RTC_DATA_SIZE; | 232 | priv->hw_params.max_data_size = IWLAGN_RTC_DATA_SIZE; |
233 | priv->hw_params.max_inst_size = IWLAGN_RTC_INST_SIZE; | 233 | priv->hw_params.max_inst_size = IWLAGN_RTC_INST_SIZE; |
@@ -402,6 +402,8 @@ static struct iwl_lib_ops iwl5000_lib = { | |||
402 | .recover_from_tx_stall = iwl_bg_monitor_recover, | 402 | .recover_from_tx_stall = iwl_bg_monitor_recover, |
403 | .check_plcp_health = iwl_good_plcp_health, | 403 | .check_plcp_health = iwl_good_plcp_health, |
404 | .check_ack_health = iwl_good_ack_health, | 404 | .check_ack_health = iwl_good_ack_health, |
405 | .txfifo_flush = iwlagn_txfifo_flush, | ||
406 | .dev_txfifo_flush = iwlagn_dev_txfifo_flush, | ||
405 | }; | 407 | }; |
406 | 408 | ||
407 | static struct iwl_lib_ops iwl5150_lib = { | 409 | static struct iwl_lib_ops iwl5150_lib = { |
@@ -465,6 +467,8 @@ static struct iwl_lib_ops iwl5150_lib = { | |||
465 | .recover_from_tx_stall = iwl_bg_monitor_recover, | 467 | .recover_from_tx_stall = iwl_bg_monitor_recover, |
466 | .check_plcp_health = iwl_good_plcp_health, | 468 | .check_plcp_health = iwl_good_plcp_health, |
467 | .check_ack_health = iwl_good_ack_health, | 469 | .check_ack_health = iwl_good_ack_health, |
470 | .txfifo_flush = iwlagn_txfifo_flush, | ||
471 | .dev_txfifo_flush = iwlagn_dev_txfifo_flush, | ||
468 | }; | 472 | }; |
469 | 473 | ||
470 | static const struct iwl_ops iwl5000_ops = { | 474 | static const struct iwl_ops iwl5000_ops = { |
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c index 8577664da77c..095521952bbe 100644 --- a/drivers/net/wireless/iwlwifi/iwl-6000.c +++ b/drivers/net/wireless/iwlwifi/iwl-6000.c | |||
@@ -160,8 +160,8 @@ static int iwl6000_hw_set_hw_params(struct iwl_priv *priv) | |||
160 | priv->cfg->num_of_queues * | 160 | priv->cfg->num_of_queues * |
161 | sizeof(struct iwlagn_scd_bc_tbl); | 161 | sizeof(struct iwlagn_scd_bc_tbl); |
162 | priv->hw_params.tfd_size = sizeof(struct iwl_tfd); | 162 | priv->hw_params.tfd_size = sizeof(struct iwl_tfd); |
163 | priv->hw_params.max_stations = IWL5000_STATION_COUNT; | 163 | priv->hw_params.max_stations = IWLAGN_STATION_COUNT; |
164 | priv->hw_params.bcast_sta_id = IWL5000_BROADCAST_ID; | 164 | priv->hw_params.bcast_sta_id = IWLAGN_BROADCAST_ID; |
165 | 165 | ||
166 | priv->hw_params.max_data_size = IWL60_RTC_DATA_SIZE; | 166 | priv->hw_params.max_data_size = IWL60_RTC_DATA_SIZE; |
167 | priv->hw_params.max_inst_size = IWL60_RTC_INST_SIZE; | 167 | priv->hw_params.max_inst_size = IWL60_RTC_INST_SIZE; |
@@ -327,6 +327,8 @@ static struct iwl_lib_ops iwl6000_lib = { | |||
327 | .recover_from_tx_stall = iwl_bg_monitor_recover, | 327 | .recover_from_tx_stall = iwl_bg_monitor_recover, |
328 | .check_plcp_health = iwl_good_plcp_health, | 328 | .check_plcp_health = iwl_good_plcp_health, |
329 | .check_ack_health = iwl_good_ack_health, | 329 | .check_ack_health = iwl_good_ack_health, |
330 | .txfifo_flush = iwlagn_txfifo_flush, | ||
331 | .dev_txfifo_flush = iwlagn_dev_txfifo_flush, | ||
330 | }; | 332 | }; |
331 | 333 | ||
332 | static const struct iwl_ops iwl6000_ops = { | 334 | static const struct iwl_ops iwl6000_ops = { |
@@ -827,6 +829,44 @@ struct iwl_cfg iwl6050_2agn_cfg = { | |||
827 | .need_dc_calib = true, | 829 | .need_dc_calib = true, |
828 | }; | 830 | }; |
829 | 831 | ||
832 | struct iwl_cfg iwl6050g2_bgn_cfg = { | ||
833 | .name = "6050 Series 1x2 BGN Gen2", | ||
834 | .fw_name_pre = IWL6050_FW_PRE, | ||
835 | .ucode_api_max = IWL6050_UCODE_API_MAX, | ||
836 | .ucode_api_min = IWL6050_UCODE_API_MIN, | ||
837 | .sku = IWL_SKU_G|IWL_SKU_N, | ||
838 | .ops = &iwl6000_ops, | ||
839 | .eeprom_size = OTP_LOW_IMAGE_SIZE, | ||
840 | .eeprom_ver = EEPROM_6050G2_EEPROM_VERSION, | ||
841 | .eeprom_calib_ver = EEPROM_6050G2_TX_POWER_VERSION, | ||
842 | .num_of_queues = IWLAGN_NUM_QUEUES, | ||
843 | .num_of_ampdu_queues = IWLAGN_NUM_AMPDU_QUEUES, | ||
844 | .mod_params = &iwlagn_mod_params, | ||
845 | .valid_tx_ant = ANT_A, | ||
846 | .valid_rx_ant = ANT_AB, | ||
847 | .pll_cfg_val = 0, | ||
848 | .set_l0s = true, | ||
849 | .use_bsm = false, | ||
850 | .pa_type = IWL_PA_SYSTEM, | ||
851 | .max_ll_items = OTP_MAX_LL_ITEMS_6x50, | ||
852 | .shadow_ram_support = true, | ||
853 | .ht_greenfield_support = true, | ||
854 | .led_compensation = 51, | ||
855 | .use_rts_for_ht = true, /* use rts/cts protection */ | ||
856 | .chain_noise_num_beacons = IWL_CAL_NUM_BEACONS, | ||
857 | .supports_idle = true, | ||
858 | .adv_thermal_throttle = true, | ||
859 | .support_ct_kill_exit = true, | ||
860 | .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, | ||
861 | .chain_noise_scale = 1500, | ||
862 | .monitor_recover_period = IWL_MONITORING_PERIOD, | ||
863 | .max_event_log_size = 1024, | ||
864 | .ucode_tracing = true, | ||
865 | .sensitivity_calib_by_driver = true, | ||
866 | .chain_noise_calib_by_driver = true, | ||
867 | .need_dc_calib = true, | ||
868 | }; | ||
869 | |||
830 | struct iwl_cfg iwl6050_2abg_cfg = { | 870 | struct iwl_cfg iwl6050_2abg_cfg = { |
831 | .name = "Intel(R) Centrino(R) Advanced-N + WiMAX 6250 ABG", | 871 | .name = "Intel(R) Centrino(R) Advanced-N + WiMAX 6250 ABG", |
832 | .fw_name_pre = IWL6050_FW_PRE, | 872 | .fw_name_pre = IWL6050_FW_PRE, |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-calib.c b/drivers/net/wireless/iwlwifi/iwl-agn-calib.c index eb052b05e790..90033e8752bb 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-calib.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-calib.c | |||
@@ -409,46 +409,34 @@ static int iwl_sens_auto_corr_ofdm(struct iwl_priv *priv, | |||
409 | return 0; | 409 | return 0; |
410 | } | 410 | } |
411 | 411 | ||
412 | /* Prepare a SENSITIVITY_CMD, send to uCode if values have changed */ | 412 | static void iwl_prepare_legacy_sensitivity_tbl(struct iwl_priv *priv, |
413 | static int iwl_sensitivity_write(struct iwl_priv *priv) | 413 | struct iwl_sensitivity_data *data, |
414 | __le16 *tbl) | ||
414 | { | 415 | { |
415 | struct iwl_sensitivity_cmd cmd ; | 416 | tbl[HD_AUTO_CORR32_X4_TH_ADD_MIN_INDEX] = |
416 | struct iwl_sensitivity_data *data = NULL; | ||
417 | struct iwl_host_cmd cmd_out = { | ||
418 | .id = SENSITIVITY_CMD, | ||
419 | .len = sizeof(struct iwl_sensitivity_cmd), | ||
420 | .flags = CMD_ASYNC, | ||
421 | .data = &cmd, | ||
422 | }; | ||
423 | |||
424 | data = &(priv->sensitivity_data); | ||
425 | |||
426 | memset(&cmd, 0, sizeof(cmd)); | ||
427 | |||
428 | cmd.table[HD_AUTO_CORR32_X4_TH_ADD_MIN_INDEX] = | ||
429 | cpu_to_le16((u16)data->auto_corr_ofdm); | 417 | cpu_to_le16((u16)data->auto_corr_ofdm); |
430 | cmd.table[HD_AUTO_CORR32_X4_TH_ADD_MIN_MRC_INDEX] = | 418 | tbl[HD_AUTO_CORR32_X4_TH_ADD_MIN_MRC_INDEX] = |
431 | cpu_to_le16((u16)data->auto_corr_ofdm_mrc); | 419 | cpu_to_le16((u16)data->auto_corr_ofdm_mrc); |
432 | cmd.table[HD_AUTO_CORR32_X1_TH_ADD_MIN_INDEX] = | 420 | tbl[HD_AUTO_CORR32_X1_TH_ADD_MIN_INDEX] = |
433 | cpu_to_le16((u16)data->auto_corr_ofdm_x1); | 421 | cpu_to_le16((u16)data->auto_corr_ofdm_x1); |
434 | cmd.table[HD_AUTO_CORR32_X1_TH_ADD_MIN_MRC_INDEX] = | 422 | tbl[HD_AUTO_CORR32_X1_TH_ADD_MIN_MRC_INDEX] = |
435 | cpu_to_le16((u16)data->auto_corr_ofdm_mrc_x1); | 423 | cpu_to_le16((u16)data->auto_corr_ofdm_mrc_x1); |
436 | 424 | ||
437 | cmd.table[HD_AUTO_CORR40_X4_TH_ADD_MIN_INDEX] = | 425 | tbl[HD_AUTO_CORR40_X4_TH_ADD_MIN_INDEX] = |
438 | cpu_to_le16((u16)data->auto_corr_cck); | 426 | cpu_to_le16((u16)data->auto_corr_cck); |
439 | cmd.table[HD_AUTO_CORR40_X4_TH_ADD_MIN_MRC_INDEX] = | 427 | tbl[HD_AUTO_CORR40_X4_TH_ADD_MIN_MRC_INDEX] = |
440 | cpu_to_le16((u16)data->auto_corr_cck_mrc); | 428 | cpu_to_le16((u16)data->auto_corr_cck_mrc); |
441 | 429 | ||
442 | cmd.table[HD_MIN_ENERGY_CCK_DET_INDEX] = | 430 | tbl[HD_MIN_ENERGY_CCK_DET_INDEX] = |
443 | cpu_to_le16((u16)data->nrg_th_cck); | 431 | cpu_to_le16((u16)data->nrg_th_cck); |
444 | cmd.table[HD_MIN_ENERGY_OFDM_DET_INDEX] = | 432 | tbl[HD_MIN_ENERGY_OFDM_DET_INDEX] = |
445 | cpu_to_le16((u16)data->nrg_th_ofdm); | 433 | cpu_to_le16((u16)data->nrg_th_ofdm); |
446 | 434 | ||
447 | cmd.table[HD_BARKER_CORR_TH_ADD_MIN_INDEX] = | 435 | tbl[HD_BARKER_CORR_TH_ADD_MIN_INDEX] = |
448 | cpu_to_le16(data->barker_corr_th_min); | 436 | cpu_to_le16(data->barker_corr_th_min); |
449 | cmd.table[HD_BARKER_CORR_TH_ADD_MIN_MRC_INDEX] = | 437 | tbl[HD_BARKER_CORR_TH_ADD_MIN_MRC_INDEX] = |
450 | cpu_to_le16(data->barker_corr_th_min_mrc); | 438 | cpu_to_le16(data->barker_corr_th_min_mrc); |
451 | cmd.table[HD_OFDM_ENERGY_TH_IN_INDEX] = | 439 | tbl[HD_OFDM_ENERGY_TH_IN_INDEX] = |
452 | cpu_to_le16(data->nrg_th_cca); | 440 | cpu_to_le16(data->nrg_th_cca); |
453 | 441 | ||
454 | IWL_DEBUG_CALIB(priv, "ofdm: ac %u mrc %u x1 %u mrc_x1 %u thresh %u\n", | 442 | IWL_DEBUG_CALIB(priv, "ofdm: ac %u mrc %u x1 %u mrc_x1 %u thresh %u\n", |
@@ -459,6 +447,25 @@ static int iwl_sensitivity_write(struct iwl_priv *priv) | |||
459 | IWL_DEBUG_CALIB(priv, "cck: ac %u mrc %u thresh %u\n", | 447 | IWL_DEBUG_CALIB(priv, "cck: ac %u mrc %u thresh %u\n", |
460 | data->auto_corr_cck, data->auto_corr_cck_mrc, | 448 | data->auto_corr_cck, data->auto_corr_cck_mrc, |
461 | data->nrg_th_cck); | 449 | data->nrg_th_cck); |
450 | } | ||
451 | |||
452 | /* Prepare a SENSITIVITY_CMD, send to uCode if values have changed */ | ||
453 | static int iwl_sensitivity_write(struct iwl_priv *priv) | ||
454 | { | ||
455 | struct iwl_sensitivity_cmd cmd; | ||
456 | struct iwl_sensitivity_data *data = NULL; | ||
457 | struct iwl_host_cmd cmd_out = { | ||
458 | .id = SENSITIVITY_CMD, | ||
459 | .len = sizeof(struct iwl_sensitivity_cmd), | ||
460 | .flags = CMD_ASYNC, | ||
461 | .data = &cmd, | ||
462 | }; | ||
463 | |||
464 | data = &(priv->sensitivity_data); | ||
465 | |||
466 | memset(&cmd, 0, sizeof(cmd)); | ||
467 | |||
468 | iwl_prepare_legacy_sensitivity_tbl(priv, data, &cmd.table[0]); | ||
462 | 469 | ||
463 | /* Update uCode's "work" table, and copy it to DSP */ | 470 | /* Update uCode's "work" table, and copy it to DSP */ |
464 | cmd.control = SENSITIVITY_CMD_CONTROL_WORK_TABLE; | 471 | cmd.control = SENSITIVITY_CMD_CONTROL_WORK_TABLE; |
@@ -477,6 +484,70 @@ static int iwl_sensitivity_write(struct iwl_priv *priv) | |||
477 | return iwl_send_cmd(priv, &cmd_out); | 484 | return iwl_send_cmd(priv, &cmd_out); |
478 | } | 485 | } |
479 | 486 | ||
487 | /* Prepare a SENSITIVITY_CMD, send to uCode if values have changed */ | ||
488 | static int iwl_enhance_sensitivity_write(struct iwl_priv *priv) | ||
489 | { | ||
490 | struct iwl_enhance_sensitivity_cmd cmd; | ||
491 | struct iwl_sensitivity_data *data = NULL; | ||
492 | struct iwl_host_cmd cmd_out = { | ||
493 | .id = SENSITIVITY_CMD, | ||
494 | .len = sizeof(struct iwl_enhance_sensitivity_cmd), | ||
495 | .flags = CMD_ASYNC, | ||
496 | .data = &cmd, | ||
497 | }; | ||
498 | |||
499 | data = &(priv->sensitivity_data); | ||
500 | |||
501 | memset(&cmd, 0, sizeof(cmd)); | ||
502 | |||
503 | iwl_prepare_legacy_sensitivity_tbl(priv, data, &cmd.enhance_table[0]); | ||
504 | |||
505 | cmd.enhance_table[HD_INA_NON_SQUARE_DET_OFDM_INDEX] = | ||
506 | HD_INA_NON_SQUARE_DET_OFDM_DATA; | ||
507 | cmd.enhance_table[HD_INA_NON_SQUARE_DET_CCK_INDEX] = | ||
508 | HD_INA_NON_SQUARE_DET_CCK_DATA; | ||
509 | cmd.enhance_table[HD_CORR_11_INSTEAD_OF_CORR_9_EN_INDEX] = | ||
510 | HD_CORR_11_INSTEAD_OF_CORR_9_EN_DATA; | ||
511 | cmd.enhance_table[HD_OFDM_NON_SQUARE_DET_SLOPE_MRC_INDEX] = | ||
512 | HD_OFDM_NON_SQUARE_DET_SLOPE_MRC_DATA; | ||
513 | cmd.enhance_table[HD_OFDM_NON_SQUARE_DET_INTERCEPT_MRC_INDEX] = | ||
514 | HD_OFDM_NON_SQUARE_DET_INTERCEPT_MRC_DATA; | ||
515 | cmd.enhance_table[HD_OFDM_NON_SQUARE_DET_SLOPE_INDEX] = | ||
516 | HD_OFDM_NON_SQUARE_DET_SLOPE_DATA; | ||
517 | cmd.enhance_table[HD_OFDM_NON_SQUARE_DET_INTERCEPT_INDEX] = | ||
518 | HD_OFDM_NON_SQUARE_DET_INTERCEPT_DATA; | ||
519 | cmd.enhance_table[HD_CCK_NON_SQUARE_DET_SLOPE_MRC_INDEX] = | ||
520 | HD_CCK_NON_SQUARE_DET_SLOPE_MRC_DATA; | ||
521 | cmd.enhance_table[HD_CCK_NON_SQUARE_DET_INTERCEPT_MRC_INDEX] = | ||
522 | HD_CCK_NON_SQUARE_DET_INTERCEPT_MRC_DATA; | ||
523 | cmd.enhance_table[HD_CCK_NON_SQUARE_DET_SLOPE_INDEX] = | ||
524 | HD_CCK_NON_SQUARE_DET_SLOPE_DATA; | ||
525 | cmd.enhance_table[HD_CCK_NON_SQUARE_DET_INTERCEPT_INDEX] = | ||
526 | HD_CCK_NON_SQUARE_DET_INTERCEPT_DATA; | ||
527 | |||
528 | /* Update uCode's "work" table, and copy it to DSP */ | ||
529 | cmd.control = SENSITIVITY_CMD_CONTROL_WORK_TABLE; | ||
530 | |||
531 | /* Don't send command to uCode if nothing has changed */ | ||
532 | if (!memcmp(&cmd.enhance_table[0], &(priv->sensitivity_tbl[0]), | ||
533 | sizeof(u16)*HD_TABLE_SIZE) && | ||
534 | !memcmp(&cmd.enhance_table[HD_INA_NON_SQUARE_DET_OFDM_INDEX], | ||
535 | &(priv->enhance_sensitivity_tbl[0]), | ||
536 | sizeof(u16)*ENHANCE_HD_TABLE_ENTRIES)) { | ||
537 | IWL_DEBUG_CALIB(priv, "No change in SENSITIVITY_CMD\n"); | ||
538 | return 0; | ||
539 | } | ||
540 | |||
541 | /* Copy table for comparison next time */ | ||
542 | memcpy(&(priv->sensitivity_tbl[0]), &(cmd.enhance_table[0]), | ||
543 | sizeof(u16)*HD_TABLE_SIZE); | ||
544 | memcpy(&(priv->enhance_sensitivity_tbl[0]), | ||
545 | &(cmd.enhance_table[HD_INA_NON_SQUARE_DET_OFDM_INDEX]), | ||
546 | sizeof(u16)*ENHANCE_HD_TABLE_ENTRIES); | ||
547 | |||
548 | return iwl_send_cmd(priv, &cmd_out); | ||
549 | } | ||
550 | |||
480 | void iwl_init_sensitivity(struct iwl_priv *priv) | 551 | void iwl_init_sensitivity(struct iwl_priv *priv) |
481 | { | 552 | { |
482 | int ret = 0; | 553 | int ret = 0; |
@@ -527,7 +598,10 @@ void iwl_init_sensitivity(struct iwl_priv *priv) | |||
527 | data->last_bad_plcp_cnt_cck = 0; | 598 | data->last_bad_plcp_cnt_cck = 0; |
528 | data->last_fa_cnt_cck = 0; | 599 | data->last_fa_cnt_cck = 0; |
529 | 600 | ||
530 | ret |= iwl_sensitivity_write(priv); | 601 | if (priv->enhance_sensitivity_table) |
602 | ret |= iwl_enhance_sensitivity_write(priv); | ||
603 | else | ||
604 | ret |= iwl_sensitivity_write(priv); | ||
531 | IWL_DEBUG_CALIB(priv, "<<return 0x%X\n", ret); | 605 | IWL_DEBUG_CALIB(priv, "<<return 0x%X\n", ret); |
532 | } | 606 | } |
533 | 607 | ||
@@ -633,7 +707,10 @@ void iwl_sensitivity_calibration(struct iwl_priv *priv, | |||
633 | 707 | ||
634 | iwl_sens_auto_corr_ofdm(priv, norm_fa_ofdm, rx_enable_time); | 708 | iwl_sens_auto_corr_ofdm(priv, norm_fa_ofdm, rx_enable_time); |
635 | iwl_sens_energy_cck(priv, norm_fa_cck, rx_enable_time, &statis); | 709 | iwl_sens_energy_cck(priv, norm_fa_cck, rx_enable_time, &statis); |
636 | iwl_sensitivity_write(priv); | 710 | if (priv->enhance_sensitivity_table) |
711 | iwl_enhance_sensitivity_write(priv); | ||
712 | else | ||
713 | iwl_sensitivity_write(priv); | ||
637 | } | 714 | } |
638 | 715 | ||
639 | static inline u8 find_first_chain(u8 mask) | 716 | static inline u8 find_first_chain(u8 mask) |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c index 5f1e7d802cbf..74623e0d535f 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c | |||
@@ -205,7 +205,9 @@ void iwl_check_abort_status(struct iwl_priv *priv, | |||
205 | u8 frame_count, u32 status) | 205 | u8 frame_count, u32 status) |
206 | { | 206 | { |
207 | if (frame_count == 1 && status == TX_STATUS_FAIL_RFKILL_FLUSH) { | 207 | if (frame_count == 1 && status == TX_STATUS_FAIL_RFKILL_FLUSH) { |
208 | IWL_ERR(priv, "TODO: Implement Tx flush command!!!\n"); | 208 | IWL_ERR(priv, "Tx flush command to flush out all frames\n"); |
209 | if (!test_bit(STATUS_EXIT_PENDING, &priv->status)) | ||
210 | queue_work(priv->workqueue, &priv->tx_flush); | ||
209 | } | 211 | } |
210 | } | 212 | } |
211 | 213 | ||
@@ -1435,3 +1437,81 @@ void iwl_free_tfds_in_queue(struct iwl_priv *priv, | |||
1435 | priv->stations[sta_id].tid[tid].tfds_in_queue = 0; | 1437 | priv->stations[sta_id].tid[tid].tfds_in_queue = 0; |
1436 | } | 1438 | } |
1437 | } | 1439 | } |
1440 | |||
1441 | #define IWL_FLUSH_WAIT_MS 2000 | ||
1442 | |||
1443 | int iwlagn_wait_tx_queue_empty(struct iwl_priv *priv) | ||
1444 | { | ||
1445 | struct iwl_tx_queue *txq; | ||
1446 | struct iwl_queue *q; | ||
1447 | int cnt; | ||
1448 | unsigned long now = jiffies; | ||
1449 | int ret = 0; | ||
1450 | |||
1451 | /* waiting for all the tx frames complete might take a while */ | ||
1452 | for (cnt = 0; cnt < priv->hw_params.max_txq_num; cnt++) { | ||
1453 | if (cnt == IWL_CMD_QUEUE_NUM) | ||
1454 | continue; | ||
1455 | txq = &priv->txq[cnt]; | ||
1456 | q = &txq->q; | ||
1457 | while (q->read_ptr != q->write_ptr && !time_after(jiffies, | ||
1458 | now + msecs_to_jiffies(IWL_FLUSH_WAIT_MS))) | ||
1459 | msleep(1); | ||
1460 | |||
1461 | if (q->read_ptr != q->write_ptr) { | ||
1462 | IWL_ERR(priv, "fail to flush all tx fifo queues\n"); | ||
1463 | ret = -ETIMEDOUT; | ||
1464 | break; | ||
1465 | } | ||
1466 | } | ||
1467 | return ret; | ||
1468 | } | ||
1469 | |||
1470 | #define IWL_TX_QUEUE_MSK 0xfffff | ||
1471 | |||
1472 | /** | ||
1473 | * iwlagn_txfifo_flush: send REPLY_TXFIFO_FLUSH command to uCode | ||
1474 | * | ||
1475 | * pre-requirements: | ||
1476 | * 1. acquire mutex before calling | ||
1477 | * 2. make sure rf is on and not in exit state | ||
1478 | */ | ||
1479 | int iwlagn_txfifo_flush(struct iwl_priv *priv, u16 flush_control) | ||
1480 | { | ||
1481 | struct iwl_txfifo_flush_cmd flush_cmd; | ||
1482 | struct iwl_host_cmd cmd = { | ||
1483 | .id = REPLY_TXFIFO_FLUSH, | ||
1484 | .len = sizeof(struct iwl_txfifo_flush_cmd), | ||
1485 | .flags = CMD_SYNC, | ||
1486 | .data = &flush_cmd, | ||
1487 | }; | ||
1488 | |||
1489 | might_sleep(); | ||
1490 | |||
1491 | memset(&flush_cmd, 0, sizeof(flush_cmd)); | ||
1492 | flush_cmd.fifo_control = IWL_TX_FIFO_VO_MSK | IWL_TX_FIFO_VI_MSK | | ||
1493 | IWL_TX_FIFO_BE_MSK | IWL_TX_FIFO_BK_MSK; | ||
1494 | if (priv->cfg->sku & IWL_SKU_N) | ||
1495 | flush_cmd.fifo_control |= IWL_AGG_TX_QUEUE_MSK; | ||
1496 | |||
1497 | IWL_DEBUG_INFO(priv, "fifo queue control: 0X%x\n", | ||
1498 | flush_cmd.fifo_control); | ||
1499 | flush_cmd.flush_control = cpu_to_le16(flush_control); | ||
1500 | |||
1501 | return iwl_send_cmd(priv, &cmd); | ||
1502 | } | ||
1503 | |||
1504 | void iwlagn_dev_txfifo_flush(struct iwl_priv *priv, u16 flush_control) | ||
1505 | { | ||
1506 | mutex_lock(&priv->mutex); | ||
1507 | ieee80211_stop_queues(priv->hw); | ||
1508 | if (priv->cfg->ops->lib->txfifo_flush(priv, IWL_DROP_ALL)) { | ||
1509 | IWL_ERR(priv, "flush request fail\n"); | ||
1510 | goto done; | ||
1511 | } | ||
1512 | IWL_DEBUG_INFO(priv, "wait transmit/flush all frames\n"); | ||
1513 | iwlagn_wait_tx_queue_empty(priv); | ||
1514 | done: | ||
1515 | ieee80211_wake_queues(priv->hw); | ||
1516 | mutex_unlock(&priv->mutex); | ||
1517 | } | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c index 2573234e4db1..55a1b31fd09a 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c | |||
@@ -950,9 +950,12 @@ void iwlagn_txq_ctx_stop(struct iwl_priv *priv) | |||
950 | /* Stop each Tx DMA channel, and wait for it to be idle */ | 950 | /* Stop each Tx DMA channel, and wait for it to be idle */ |
951 | for (ch = 0; ch < priv->hw_params.dma_chnl_num; ch++) { | 951 | for (ch = 0; ch < priv->hw_params.dma_chnl_num; ch++) { |
952 | iwl_write_direct32(priv, FH_TCSR_CHNL_TX_CONFIG_REG(ch), 0x0); | 952 | iwl_write_direct32(priv, FH_TCSR_CHNL_TX_CONFIG_REG(ch), 0x0); |
953 | iwl_poll_direct_bit(priv, FH_TSSR_TX_STATUS_REG, | 953 | if (iwl_poll_direct_bit(priv, FH_TSSR_TX_STATUS_REG, |
954 | FH_TSSR_TX_STATUS_REG_MSK_CHNL_IDLE(ch), | 954 | FH_TSSR_TX_STATUS_REG_MSK_CHNL_IDLE(ch), |
955 | 1000); | 955 | 1000)) |
956 | IWL_ERR(priv, "Failing on timeout while stopping" | ||
957 | " DMA channel %d [0x%08x]", ch, | ||
958 | iwl_read_direct32(priv, FH_TSSR_TX_STATUS_REG)); | ||
956 | } | 959 | } |
957 | spin_unlock_irqrestore(&priv->lock, flags); | 960 | spin_unlock_irqrestore(&priv->lock, flags); |
958 | } | 961 | } |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index 3368cfd25a99..7391c63fb024 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
@@ -859,6 +859,24 @@ int iwl_set_pwr_src(struct iwl_priv *priv, enum iwl_pwr_src src) | |||
859 | return 0; | 859 | return 0; |
860 | } | 860 | } |
861 | 861 | ||
862 | static void iwl_bg_tx_flush(struct work_struct *work) | ||
863 | { | ||
864 | struct iwl_priv *priv = | ||
865 | container_of(work, struct iwl_priv, tx_flush); | ||
866 | |||
867 | if (test_bit(STATUS_EXIT_PENDING, &priv->status)) | ||
868 | return; | ||
869 | |||
870 | /* do nothing if rf-kill is on */ | ||
871 | if (!iwl_is_ready_rf(priv)) | ||
872 | return; | ||
873 | |||
874 | if (priv->cfg->ops->lib->txfifo_flush) { | ||
875 | IWL_DEBUG_INFO(priv, "device request: flush all tx frames\n"); | ||
876 | iwlagn_dev_txfifo_flush(priv, IWL_DROP_ALL); | ||
877 | } | ||
878 | } | ||
879 | |||
862 | /** | 880 | /** |
863 | * iwl_setup_rx_handlers - Initialize Rx handler callbacks | 881 | * iwl_setup_rx_handlers - Initialize Rx handler callbacks |
864 | * | 882 | * |
@@ -1806,12 +1824,21 @@ static int iwlagn_load_firmware(struct iwl_priv *priv, | |||
1806 | const u8 *data; | 1824 | const u8 *data; |
1807 | int wanted_alternative = iwlagn_wanted_ucode_alternative, tmp; | 1825 | int wanted_alternative = iwlagn_wanted_ucode_alternative, tmp; |
1808 | u64 alternatives; | 1826 | u64 alternatives; |
1827 | u32 tlv_len; | ||
1828 | enum iwl_ucode_tlv_type tlv_type; | ||
1829 | const u8 *tlv_data; | ||
1830 | int ret = 0; | ||
1809 | 1831 | ||
1810 | if (len < sizeof(*ucode)) | 1832 | if (len < sizeof(*ucode)) { |
1833 | IWL_ERR(priv, "uCode has invalid length: %zd\n", len); | ||
1811 | return -EINVAL; | 1834 | return -EINVAL; |
1835 | } | ||
1812 | 1836 | ||
1813 | if (ucode->magic != cpu_to_le32(IWL_TLV_UCODE_MAGIC)) | 1837 | if (ucode->magic != cpu_to_le32(IWL_TLV_UCODE_MAGIC)) { |
1838 | IWL_ERR(priv, "invalid uCode magic: 0X%x\n", | ||
1839 | le32_to_cpu(ucode->magic)); | ||
1814 | return -EINVAL; | 1840 | return -EINVAL; |
1841 | } | ||
1815 | 1842 | ||
1816 | /* | 1843 | /* |
1817 | * Check which alternatives are present, and "downgrade" | 1844 | * Check which alternatives are present, and "downgrade" |
@@ -1836,11 +1863,9 @@ static int iwlagn_load_firmware(struct iwl_priv *priv, | |||
1836 | 1863 | ||
1837 | len -= sizeof(*ucode); | 1864 | len -= sizeof(*ucode); |
1838 | 1865 | ||
1839 | while (len >= sizeof(*tlv)) { | 1866 | while (len >= sizeof(*tlv) && !ret) { |
1840 | u32 tlv_len; | ||
1841 | enum iwl_ucode_tlv_type tlv_type; | ||
1842 | u16 tlv_alt; | 1867 | u16 tlv_alt; |
1843 | const u8 *tlv_data; | 1868 | u32 fixed_tlv_size = 4; |
1844 | 1869 | ||
1845 | len -= sizeof(*tlv); | 1870 | len -= sizeof(*tlv); |
1846 | tlv = (void *)data; | 1871 | tlv = (void *)data; |
@@ -1850,8 +1875,11 @@ static int iwlagn_load_firmware(struct iwl_priv *priv, | |||
1850 | tlv_alt = le16_to_cpu(tlv->alternative); | 1875 | tlv_alt = le16_to_cpu(tlv->alternative); |
1851 | tlv_data = tlv->data; | 1876 | tlv_data = tlv->data; |
1852 | 1877 | ||
1853 | if (len < tlv_len) | 1878 | if (len < tlv_len) { |
1879 | IWL_ERR(priv, "invalid TLV len: %zd/%u\n", | ||
1880 | len, tlv_len); | ||
1854 | return -EINVAL; | 1881 | return -EINVAL; |
1882 | } | ||
1855 | len -= ALIGN(tlv_len, 4); | 1883 | len -= ALIGN(tlv_len, 4); |
1856 | data += sizeof(*tlv) + ALIGN(tlv_len, 4); | 1884 | data += sizeof(*tlv) + ALIGN(tlv_len, 4); |
1857 | 1885 | ||
@@ -1885,56 +1913,77 @@ static int iwlagn_load_firmware(struct iwl_priv *priv, | |||
1885 | pieces->boot_size = tlv_len; | 1913 | pieces->boot_size = tlv_len; |
1886 | break; | 1914 | break; |
1887 | case IWL_UCODE_TLV_PROBE_MAX_LEN: | 1915 | case IWL_UCODE_TLV_PROBE_MAX_LEN: |
1888 | if (tlv_len != 4) | 1916 | if (tlv_len != fixed_tlv_size) |
1889 | return -EINVAL; | 1917 | ret = -EINVAL; |
1890 | capa->max_probe_length = | 1918 | else |
1891 | le32_to_cpup((__le32 *)tlv_data); | 1919 | capa->max_probe_length = |
1920 | le32_to_cpup((__le32 *)tlv_data); | ||
1892 | break; | 1921 | break; |
1893 | case IWL_UCODE_TLV_INIT_EVTLOG_PTR: | 1922 | case IWL_UCODE_TLV_INIT_EVTLOG_PTR: |
1894 | if (tlv_len != 4) | 1923 | if (tlv_len != fixed_tlv_size) |
1895 | return -EINVAL; | 1924 | ret = -EINVAL; |
1896 | pieces->init_evtlog_ptr = | 1925 | else |
1897 | le32_to_cpup((__le32 *)tlv_data); | 1926 | pieces->init_evtlog_ptr = |
1927 | le32_to_cpup((__le32 *)tlv_data); | ||
1898 | break; | 1928 | break; |
1899 | case IWL_UCODE_TLV_INIT_EVTLOG_SIZE: | 1929 | case IWL_UCODE_TLV_INIT_EVTLOG_SIZE: |
1900 | if (tlv_len != 4) | 1930 | if (tlv_len != fixed_tlv_size) |
1901 | return -EINVAL; | 1931 | ret = -EINVAL; |
1902 | pieces->init_evtlog_size = | 1932 | else |
1903 | le32_to_cpup((__le32 *)tlv_data); | 1933 | pieces->init_evtlog_size = |
1934 | le32_to_cpup((__le32 *)tlv_data); | ||
1904 | break; | 1935 | break; |
1905 | case IWL_UCODE_TLV_INIT_ERRLOG_PTR: | 1936 | case IWL_UCODE_TLV_INIT_ERRLOG_PTR: |
1906 | if (tlv_len != 4) | 1937 | if (tlv_len != fixed_tlv_size) |
1907 | return -EINVAL; | 1938 | ret = -EINVAL; |
1908 | pieces->init_errlog_ptr = | 1939 | else |
1909 | le32_to_cpup((__le32 *)tlv_data); | 1940 | pieces->init_errlog_ptr = |
1941 | le32_to_cpup((__le32 *)tlv_data); | ||
1910 | break; | 1942 | break; |
1911 | case IWL_UCODE_TLV_RUNT_EVTLOG_PTR: | 1943 | case IWL_UCODE_TLV_RUNT_EVTLOG_PTR: |
1912 | if (tlv_len != 4) | 1944 | if (tlv_len != fixed_tlv_size) |
1913 | return -EINVAL; | 1945 | ret = -EINVAL; |
1914 | pieces->inst_evtlog_ptr = | 1946 | else |
1915 | le32_to_cpup((__le32 *)tlv_data); | 1947 | pieces->inst_evtlog_ptr = |
1948 | le32_to_cpup((__le32 *)tlv_data); | ||
1916 | break; | 1949 | break; |
1917 | case IWL_UCODE_TLV_RUNT_EVTLOG_SIZE: | 1950 | case IWL_UCODE_TLV_RUNT_EVTLOG_SIZE: |
1918 | if (tlv_len != 4) | 1951 | if (tlv_len != fixed_tlv_size) |
1919 | return -EINVAL; | 1952 | ret = -EINVAL; |
1920 | pieces->inst_evtlog_size = | 1953 | else |
1921 | le32_to_cpup((__le32 *)tlv_data); | 1954 | pieces->inst_evtlog_size = |
1955 | le32_to_cpup((__le32 *)tlv_data); | ||
1922 | break; | 1956 | break; |
1923 | case IWL_UCODE_TLV_RUNT_ERRLOG_PTR: | 1957 | case IWL_UCODE_TLV_RUNT_ERRLOG_PTR: |
1924 | if (tlv_len != 4) | 1958 | if (tlv_len != fixed_tlv_size) |
1925 | return -EINVAL; | 1959 | ret = -EINVAL; |
1926 | pieces->inst_errlog_ptr = | 1960 | else |
1927 | le32_to_cpup((__le32 *)tlv_data); | 1961 | pieces->inst_errlog_ptr = |
1962 | le32_to_cpup((__le32 *)tlv_data); | ||
1963 | break; | ||
1964 | case IWL_UCODE_TLV_ENHANCE_SENS_TBL: | ||
1965 | if (tlv_len) | ||
1966 | ret = -EINVAL; | ||
1967 | else | ||
1968 | priv->enhance_sensitivity_table = true; | ||
1928 | break; | 1969 | break; |
1929 | default: | 1970 | default: |
1971 | IWL_WARN(priv, "unknown TLV: %d\n", tlv_type); | ||
1930 | break; | 1972 | break; |
1931 | } | 1973 | } |
1932 | } | 1974 | } |
1933 | 1975 | ||
1934 | if (len) | 1976 | if (len) { |
1935 | return -EINVAL; | 1977 | IWL_ERR(priv, "invalid TLV after parsing: %zd\n", len); |
1978 | iwl_print_hex_dump(priv, IWL_DL_FW, (u8 *)data, len); | ||
1979 | ret = -EINVAL; | ||
1980 | } else if (ret) { | ||
1981 | IWL_ERR(priv, "TLV %d has invalid size: %u\n", | ||
1982 | tlv_type, tlv_len); | ||
1983 | iwl_print_hex_dump(priv, IWL_DL_FW, (u8 *)tlv_data, tlv_len); | ||
1984 | } | ||
1936 | 1985 | ||
1937 | return 0; | 1986 | return ret; |
1938 | } | 1987 | } |
1939 | 1988 | ||
1940 | /** | 1989 | /** |
@@ -2247,17 +2296,41 @@ static const char *desc_lookup_text[] = { | |||
2247 | "DEBUG_1", | 2296 | "DEBUG_1", |
2248 | "DEBUG_2", | 2297 | "DEBUG_2", |
2249 | "DEBUG_3", | 2298 | "DEBUG_3", |
2250 | "ADVANCED SYSASSERT" | ||
2251 | }; | 2299 | }; |
2252 | 2300 | ||
2253 | static const char *desc_lookup(int i) | 2301 | static struct { char *name; u8 num; } advanced_lookup[] = { |
2302 | { "NMI_INTERRUPT_WDG", 0x34 }, | ||
2303 | { "SYSASSERT", 0x35 }, | ||
2304 | { "UCODE_VERSION_MISMATCH", 0x37 }, | ||
2305 | { "BAD_COMMAND", 0x38 }, | ||
2306 | { "NMI_INTERRUPT_DATA_ACTION_PT", 0x3C }, | ||
2307 | { "FATAL_ERROR", 0x3D }, | ||
2308 | { "NMI_TRM_HW_ERR", 0x46 }, | ||
2309 | { "NMI_INTERRUPT_TRM", 0x4C }, | ||
2310 | { "NMI_INTERRUPT_BREAK_POINT", 0x54 }, | ||
2311 | { "NMI_INTERRUPT_WDG_RXF_FULL", 0x5C }, | ||
2312 | { "NMI_INTERRUPT_WDG_NO_RBD_RXF_FULL", 0x64 }, | ||
2313 | { "NMI_INTERRUPT_HOST", 0x66 }, | ||
2314 | { "NMI_INTERRUPT_ACTION_PT", 0x7C }, | ||
2315 | { "NMI_INTERRUPT_UNKNOWN", 0x84 }, | ||
2316 | { "NMI_INTERRUPT_INST_ACTION_PT", 0x86 }, | ||
2317 | { "ADVANCED_SYSASSERT", 0 }, | ||
2318 | }; | ||
2319 | |||
2320 | static const char *desc_lookup(u32 num) | ||
2254 | { | 2321 | { |
2255 | int max = ARRAY_SIZE(desc_lookup_text) - 1; | 2322 | int i; |
2323 | int max = ARRAY_SIZE(desc_lookup_text); | ||
2256 | 2324 | ||
2257 | if (i < 0 || i > max) | 2325 | if (num < max) |
2258 | i = max; | 2326 | return desc_lookup_text[num]; |
2259 | 2327 | ||
2260 | return desc_lookup_text[i]; | 2328 | max = ARRAY_SIZE(advanced_lookup) - 1; |
2329 | for (i = 0; i < max; i++) { | ||
2330 | if (advanced_lookup[i].num == num) | ||
2331 | break;; | ||
2332 | } | ||
2333 | return advanced_lookup[i].name; | ||
2261 | } | 2334 | } |
2262 | 2335 | ||
2263 | #define ERROR_START_OFFSET (1 * sizeof(u32)) | 2336 | #define ERROR_START_OFFSET (1 * sizeof(u32)) |
@@ -3614,6 +3687,44 @@ out_exit: | |||
3614 | IWL_DEBUG_MAC80211(priv, "leave\n"); | 3687 | IWL_DEBUG_MAC80211(priv, "leave\n"); |
3615 | } | 3688 | } |
3616 | 3689 | ||
3690 | static void iwl_mac_flush(struct ieee80211_hw *hw, bool drop) | ||
3691 | { | ||
3692 | struct iwl_priv *priv = hw->priv; | ||
3693 | |||
3694 | mutex_lock(&priv->mutex); | ||
3695 | IWL_DEBUG_MAC80211(priv, "enter\n"); | ||
3696 | |||
3697 | /* do not support "flush" */ | ||
3698 | if (!priv->cfg->ops->lib->txfifo_flush) | ||
3699 | goto done; | ||
3700 | |||
3701 | if (test_bit(STATUS_EXIT_PENDING, &priv->status)) { | ||
3702 | IWL_DEBUG_TX(priv, "Aborting flush due to device shutdown\n"); | ||
3703 | goto done; | ||
3704 | } | ||
3705 | if (iwl_is_rfkill(priv)) { | ||
3706 | IWL_DEBUG_TX(priv, "Aborting flush due to RF Kill\n"); | ||
3707 | goto done; | ||
3708 | } | ||
3709 | |||
3710 | /* | ||
3711 | * mac80211 will not push any more frames for transmit | ||
3712 | * until the flush is completed | ||
3713 | */ | ||
3714 | if (drop) { | ||
3715 | IWL_DEBUG_MAC80211(priv, "send flush command\n"); | ||
3716 | if (priv->cfg->ops->lib->txfifo_flush(priv, IWL_DROP_ALL)) { | ||
3717 | IWL_ERR(priv, "flush request fail\n"); | ||
3718 | goto done; | ||
3719 | } | ||
3720 | } | ||
3721 | IWL_DEBUG_MAC80211(priv, "wait transmit/flush all frames\n"); | ||
3722 | iwlagn_wait_tx_queue_empty(priv); | ||
3723 | done: | ||
3724 | mutex_unlock(&priv->mutex); | ||
3725 | IWL_DEBUG_MAC80211(priv, "leave\n"); | ||
3726 | } | ||
3727 | |||
3617 | /***************************************************************************** | 3728 | /***************************************************************************** |
3618 | * | 3729 | * |
3619 | * driver setup and teardown | 3730 | * driver setup and teardown |
@@ -3630,6 +3741,7 @@ static void iwl_setup_deferred_work(struct iwl_priv *priv) | |||
3630 | INIT_WORK(&priv->rx_replenish, iwl_bg_rx_replenish); | 3741 | INIT_WORK(&priv->rx_replenish, iwl_bg_rx_replenish); |
3631 | INIT_WORK(&priv->beacon_update, iwl_bg_beacon_update); | 3742 | INIT_WORK(&priv->beacon_update, iwl_bg_beacon_update); |
3632 | INIT_WORK(&priv->run_time_calib_work, iwl_bg_run_time_calib_work); | 3743 | INIT_WORK(&priv->run_time_calib_work, iwl_bg_run_time_calib_work); |
3744 | INIT_WORK(&priv->tx_flush, iwl_bg_tx_flush); | ||
3633 | INIT_DELAYED_WORK(&priv->init_alive_start, iwl_bg_init_alive_start); | 3745 | INIT_DELAYED_WORK(&priv->init_alive_start, iwl_bg_init_alive_start); |
3634 | INIT_DELAYED_WORK(&priv->alive_start, iwl_bg_alive_start); | 3746 | INIT_DELAYED_WORK(&priv->alive_start, iwl_bg_alive_start); |
3635 | 3747 | ||
@@ -3787,6 +3899,7 @@ static struct ieee80211_ops iwl_hw_ops = { | |||
3787 | .sta_add = iwlagn_mac_sta_add, | 3899 | .sta_add = iwlagn_mac_sta_add, |
3788 | .sta_remove = iwl_mac_sta_remove, | 3900 | .sta_remove = iwl_mac_sta_remove, |
3789 | .channel_switch = iwl_mac_channel_switch, | 3901 | .channel_switch = iwl_mac_channel_switch, |
3902 | .flush = iwl_mac_flush, | ||
3790 | }; | 3903 | }; |
3791 | 3904 | ||
3792 | static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | 3905 | static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) |
@@ -4234,6 +4347,14 @@ static DEFINE_PCI_DEVICE_TABLE(iwl_hw_card_ids) = { | |||
4234 | {IWL_PCI_DEVICE(0x0089, 0x1311, iwl6050_2agn_cfg)}, | 4347 | {IWL_PCI_DEVICE(0x0089, 0x1311, iwl6050_2agn_cfg)}, |
4235 | {IWL_PCI_DEVICE(0x0089, 0x1316, iwl6050_2abg_cfg)}, | 4348 | {IWL_PCI_DEVICE(0x0089, 0x1316, iwl6050_2abg_cfg)}, |
4236 | 4349 | ||
4350 | /* 6x50 WiFi/WiMax Series Gen2 */ | ||
4351 | {IWL_PCI_DEVICE(0x0885, 0x1305, iwl6050g2_bgn_cfg)}, | ||
4352 | {IWL_PCI_DEVICE(0x0885, 0x1306, iwl6050g2_bgn_cfg)}, | ||
4353 | {IWL_PCI_DEVICE(0x0885, 0x1325, iwl6050g2_bgn_cfg)}, | ||
4354 | {IWL_PCI_DEVICE(0x0885, 0x1326, iwl6050g2_bgn_cfg)}, | ||
4355 | {IWL_PCI_DEVICE(0x0886, 0x1315, iwl6050g2_bgn_cfg)}, | ||
4356 | {IWL_PCI_DEVICE(0x0886, 0x1316, iwl6050g2_bgn_cfg)}, | ||
4357 | |||
4237 | /* 1000 Series WiFi */ | 4358 | /* 1000 Series WiFi */ |
4238 | {IWL_PCI_DEVICE(0x0083, 0x1205, iwl1000_bgn_cfg)}, | 4359 | {IWL_PCI_DEVICE(0x0083, 0x1205, iwl1000_bgn_cfg)}, |
4239 | {IWL_PCI_DEVICE(0x0083, 0x1305, iwl1000_bgn_cfg)}, | 4360 | {IWL_PCI_DEVICE(0x0083, 0x1305, iwl1000_bgn_cfg)}, |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.h b/drivers/net/wireless/iwlwifi/iwl-agn.h index be9d298cae2c..cc6464dc72e5 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.h +++ b/drivers/net/wireless/iwlwifi/iwl-agn.h | |||
@@ -89,6 +89,7 @@ extern struct iwl_cfg iwl6000i_2bg_cfg; | |||
89 | extern struct iwl_cfg iwl6000_3agn_cfg; | 89 | extern struct iwl_cfg iwl6000_3agn_cfg; |
90 | extern struct iwl_cfg iwl6050_2agn_cfg; | 90 | extern struct iwl_cfg iwl6050_2agn_cfg; |
91 | extern struct iwl_cfg iwl6050_2abg_cfg; | 91 | extern struct iwl_cfg iwl6050_2abg_cfg; |
92 | extern struct iwl_cfg iwl6050g2_bgn_cfg; | ||
92 | extern struct iwl_cfg iwl1000_bgn_cfg; | 93 | extern struct iwl_cfg iwl1000_bgn_cfg; |
93 | extern struct iwl_cfg iwl1000_bg_cfg; | 94 | extern struct iwl_cfg iwl1000_bg_cfg; |
94 | 95 | ||
@@ -147,6 +148,9 @@ const u8 *iwlagn_eeprom_query_addr(const struct iwl_priv *priv, | |||
147 | void iwlagn_rx_queue_reset(struct iwl_priv *priv, struct iwl_rx_queue *rxq); | 148 | void iwlagn_rx_queue_reset(struct iwl_priv *priv, struct iwl_rx_queue *rxq); |
148 | int iwlagn_rx_init(struct iwl_priv *priv, struct iwl_rx_queue *rxq); | 149 | int iwlagn_rx_init(struct iwl_priv *priv, struct iwl_rx_queue *rxq); |
149 | int iwlagn_hw_nic_init(struct iwl_priv *priv); | 150 | int iwlagn_hw_nic_init(struct iwl_priv *priv); |
151 | int iwlagn_wait_tx_queue_empty(struct iwl_priv *priv); | ||
152 | int iwlagn_txfifo_flush(struct iwl_priv *priv, u16 flush_control); | ||
153 | void iwlagn_dev_txfifo_flush(struct iwl_priv *priv, u16 flush_control); | ||
150 | 154 | ||
151 | /* rx */ | 155 | /* rx */ |
152 | void iwlagn_rx_queue_restock(struct iwl_priv *priv); | 156 | void iwlagn_rx_queue_restock(struct iwl_priv *priv); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h index acf8e980b1fe..8d2db9d22045 100644 --- a/drivers/net/wireless/iwlwifi/iwl-commands.h +++ b/drivers/net/wireless/iwlwifi/iwl-commands.h | |||
@@ -97,6 +97,7 @@ enum { | |||
97 | REPLY_ADD_STA = 0x18, | 97 | REPLY_ADD_STA = 0x18, |
98 | REPLY_REMOVE_STA = 0x19, | 98 | REPLY_REMOVE_STA = 0x19, |
99 | REPLY_REMOVE_ALL_STA = 0x1a, /* not used */ | 99 | REPLY_REMOVE_ALL_STA = 0x1a, /* not used */ |
100 | REPLY_TXFIFO_FLUSH = 0x1e, | ||
100 | 101 | ||
101 | /* Security */ | 102 | /* Security */ |
102 | REPLY_WEPKEY = 0x20, | 103 | REPLY_WEPKEY = 0x20, |
@@ -957,8 +958,8 @@ struct iwl_qosparam_cmd { | |||
957 | #define IWL3945_STATION_COUNT 25 | 958 | #define IWL3945_STATION_COUNT 25 |
958 | #define IWL4965_BROADCAST_ID 31 | 959 | #define IWL4965_BROADCAST_ID 31 |
959 | #define IWL4965_STATION_COUNT 32 | 960 | #define IWL4965_STATION_COUNT 32 |
960 | #define IWL5000_BROADCAST_ID 15 | 961 | #define IWLAGN_BROADCAST_ID 15 |
961 | #define IWL5000_STATION_COUNT 16 | 962 | #define IWLAGN_STATION_COUNT 16 |
962 | 963 | ||
963 | #define IWL_STATION_COUNT 32 /* MAX(3945,4965)*/ | 964 | #define IWL_STATION_COUNT 32 /* MAX(3945,4965)*/ |
964 | #define IWL_INVALID_STATION 255 | 965 | #define IWL_INVALID_STATION 255 |
@@ -1209,6 +1210,43 @@ struct iwl_rem_sta_cmd { | |||
1209 | u8 reserved2[2]; | 1210 | u8 reserved2[2]; |
1210 | } __packed; | 1211 | } __packed; |
1211 | 1212 | ||
1213 | #define IWL_TX_FIFO_BK_MSK cpu_to_le32(BIT(0)) | ||
1214 | #define IWL_TX_FIFO_BE_MSK cpu_to_le32(BIT(1)) | ||
1215 | #define IWL_TX_FIFO_VI_MSK cpu_to_le32(BIT(2)) | ||
1216 | #define IWL_TX_FIFO_VO_MSK cpu_to_le32(BIT(3)) | ||
1217 | #define IWL_AGG_TX_QUEUE_MSK cpu_to_le32(0xffc00) | ||
1218 | |||
1219 | #define IWL_DROP_SINGLE 0 | ||
1220 | #define IWL_DROP_SELECTED 1 | ||
1221 | #define IWL_DROP_ALL 2 | ||
1222 | |||
1223 | /* | ||
1224 | * REPLY_TXFIFO_FLUSH = 0x1e(command and response) | ||
1225 | * | ||
1226 | * When using full FIFO flush this command checks the scheduler HW block WR/RD | ||
1227 | * pointers to check if all the frames were transferred by DMA into the | ||
1228 | * relevant TX FIFO queue. Only when the DMA is finished and the queue is | ||
1229 | * empty the command can finish. | ||
1230 | * This command is used to flush the TXFIFO from transmit commands, it may | ||
1231 | * operate on single or multiple queues, the command queue can't be flushed by | ||
1232 | * this command. The command response is returned when all the queue flush | ||
1233 | * operations are done. Each TX command flushed return response with the FLUSH | ||
1234 | * status set in the TX response status. When FIFO flush operation is used, | ||
1235 | * the flush operation ends when both the scheduler DMA done and TXFIFO empty | ||
1236 | * are set. | ||
1237 | * | ||
1238 | * @fifo_control: bit mask for which queues to flush | ||
1239 | * @flush_control: flush controls | ||
1240 | * 0: Dump single MSDU | ||
1241 | * 1: Dump multiple MSDU according to PS, INVALID STA, TTL, TID disable. | ||
1242 | * 2: Dump all FIFO | ||
1243 | */ | ||
1244 | struct iwl_txfifo_flush_cmd { | ||
1245 | __le32 fifo_control; | ||
1246 | __le16 flush_control; | ||
1247 | __le16 reserved; | ||
1248 | } __attribute__ ((packed)); | ||
1249 | |||
1212 | /* | 1250 | /* |
1213 | * REPLY_WEP_KEY = 0x20 | 1251 | * REPLY_WEP_KEY = 0x20 |
1214 | */ | 1252 | */ |
@@ -3452,6 +3490,41 @@ struct iwl_missed_beacon_notif { | |||
3452 | #define HD_AUTO_CORR40_X4_TH_ADD_MIN_INDEX (9) | 3490 | #define HD_AUTO_CORR40_X4_TH_ADD_MIN_INDEX (9) |
3453 | #define HD_OFDM_ENERGY_TH_IN_INDEX (10) | 3491 | #define HD_OFDM_ENERGY_TH_IN_INDEX (10) |
3454 | 3492 | ||
3493 | /* | ||
3494 | * Additional table entries in enhance SENSITIVITY_CMD | ||
3495 | */ | ||
3496 | #define HD_INA_NON_SQUARE_DET_OFDM_INDEX (11) | ||
3497 | #define HD_INA_NON_SQUARE_DET_CCK_INDEX (12) | ||
3498 | #define HD_CORR_11_INSTEAD_OF_CORR_9_EN_INDEX (13) | ||
3499 | #define HD_OFDM_NON_SQUARE_DET_SLOPE_MRC_INDEX (14) | ||
3500 | #define HD_OFDM_NON_SQUARE_DET_INTERCEPT_MRC_INDEX (15) | ||
3501 | #define HD_OFDM_NON_SQUARE_DET_SLOPE_INDEX (16) | ||
3502 | #define HD_OFDM_NON_SQUARE_DET_INTERCEPT_INDEX (17) | ||
3503 | #define HD_CCK_NON_SQUARE_DET_SLOPE_MRC_INDEX (18) | ||
3504 | #define HD_CCK_NON_SQUARE_DET_INTERCEPT_MRC_INDEX (19) | ||
3505 | #define HD_CCK_NON_SQUARE_DET_SLOPE_INDEX (20) | ||
3506 | #define HD_CCK_NON_SQUARE_DET_INTERCEPT_INDEX (21) | ||
3507 | #define HD_RESERVED (22) | ||
3508 | |||
3509 | /* number of entries for enhanced tbl */ | ||
3510 | #define ENHANCE_HD_TABLE_SIZE (23) | ||
3511 | |||
3512 | /* number of additional entries for enhanced tbl */ | ||
3513 | #define ENHANCE_HD_TABLE_ENTRIES (ENHANCE_HD_TABLE_SIZE - HD_TABLE_SIZE) | ||
3514 | |||
3515 | #define HD_INA_NON_SQUARE_DET_OFDM_DATA cpu_to_le16(0) | ||
3516 | #define HD_INA_NON_SQUARE_DET_CCK_DATA cpu_to_le16(0) | ||
3517 | #define HD_CORR_11_INSTEAD_OF_CORR_9_EN_DATA cpu_to_le16(0) | ||
3518 | #define HD_OFDM_NON_SQUARE_DET_SLOPE_MRC_DATA cpu_to_le16(668) | ||
3519 | #define HD_OFDM_NON_SQUARE_DET_INTERCEPT_MRC_DATA cpu_to_le16(4) | ||
3520 | #define HD_OFDM_NON_SQUARE_DET_SLOPE_DATA cpu_to_le16(486) | ||
3521 | #define HD_OFDM_NON_SQUARE_DET_INTERCEPT_DATA cpu_to_le16(37) | ||
3522 | #define HD_CCK_NON_SQUARE_DET_SLOPE_MRC_DATA cpu_to_le16(853) | ||
3523 | #define HD_CCK_NON_SQUARE_DET_INTERCEPT_MRC_DATA cpu_to_le16(4) | ||
3524 | #define HD_CCK_NON_SQUARE_DET_SLOPE_DATA cpu_to_le16(476) | ||
3525 | #define HD_CCK_NON_SQUARE_DET_INTERCEPT_DATA cpu_to_le16(99) | ||
3526 | |||
3527 | |||
3455 | /* Control field in struct iwl_sensitivity_cmd */ | 3528 | /* Control field in struct iwl_sensitivity_cmd */ |
3456 | #define SENSITIVITY_CMD_CONTROL_DEFAULT_TABLE cpu_to_le16(0) | 3529 | #define SENSITIVITY_CMD_CONTROL_DEFAULT_TABLE cpu_to_le16(0) |
3457 | #define SENSITIVITY_CMD_CONTROL_WORK_TABLE cpu_to_le16(1) | 3530 | #define SENSITIVITY_CMD_CONTROL_WORK_TABLE cpu_to_le16(1) |
@@ -3468,6 +3541,14 @@ struct iwl_sensitivity_cmd { | |||
3468 | __le16 table[HD_TABLE_SIZE]; /* use HD_* as index */ | 3541 | __le16 table[HD_TABLE_SIZE]; /* use HD_* as index */ |
3469 | } __packed; | 3542 | } __packed; |
3470 | 3543 | ||
3544 | /* | ||
3545 | * | ||
3546 | */ | ||
3547 | struct iwl_enhance_sensitivity_cmd { | ||
3548 | __le16 control; /* always use "1" */ | ||
3549 | __le16 enhance_table[ENHANCE_HD_TABLE_SIZE]; /* use HD_* as index */ | ||
3550 | } __attribute__ ((packed)); | ||
3551 | |||
3471 | 3552 | ||
3472 | /** | 3553 | /** |
3473 | * REPLY_PHY_CALIBRATION_CMD = 0xb0 (command, has simple generic response) | 3554 | * REPLY_PHY_CALIBRATION_CMD = 0xb0 (command, has simple generic response) |
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c index a56fb466d0b6..f73eb08a9494 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.c +++ b/drivers/net/wireless/iwlwifi/iwl-core.c | |||
@@ -2627,7 +2627,7 @@ static void iwl_force_rf_reset(struct iwl_priv *priv) | |||
2627 | } | 2627 | } |
2628 | 2628 | ||
2629 | 2629 | ||
2630 | int iwl_force_reset(struct iwl_priv *priv, int mode) | 2630 | int iwl_force_reset(struct iwl_priv *priv, int mode, bool external) |
2631 | { | 2631 | { |
2632 | struct iwl_force_reset *force_reset; | 2632 | struct iwl_force_reset *force_reset; |
2633 | 2633 | ||
@@ -2640,12 +2640,14 @@ int iwl_force_reset(struct iwl_priv *priv, int mode) | |||
2640 | } | 2640 | } |
2641 | force_reset = &priv->force_reset[mode]; | 2641 | force_reset = &priv->force_reset[mode]; |
2642 | force_reset->reset_request_count++; | 2642 | force_reset->reset_request_count++; |
2643 | if (force_reset->last_force_reset_jiffies && | 2643 | if (!external) { |
2644 | time_after(force_reset->last_force_reset_jiffies + | 2644 | if (force_reset->last_force_reset_jiffies && |
2645 | force_reset->reset_duration, jiffies)) { | 2645 | time_after(force_reset->last_force_reset_jiffies + |
2646 | IWL_DEBUG_INFO(priv, "force reset rejected\n"); | 2646 | force_reset->reset_duration, jiffies)) { |
2647 | force_reset->reset_reject_count++; | 2647 | IWL_DEBUG_INFO(priv, "force reset rejected\n"); |
2648 | return -EAGAIN; | 2648 | force_reset->reset_reject_count++; |
2649 | return -EAGAIN; | ||
2650 | } | ||
2649 | } | 2651 | } |
2650 | force_reset->reset_success_count++; | 2652 | force_reset->reset_success_count++; |
2651 | force_reset->last_force_reset_jiffies = jiffies; | 2653 | force_reset->last_force_reset_jiffies = jiffies; |
@@ -2655,6 +2657,19 @@ int iwl_force_reset(struct iwl_priv *priv, int mode) | |||
2655 | iwl_force_rf_reset(priv); | 2657 | iwl_force_rf_reset(priv); |
2656 | break; | 2658 | break; |
2657 | case IWL_FW_RESET: | 2659 | case IWL_FW_RESET: |
2660 | /* | ||
2661 | * if the request is from external(ex: debugfs), | ||
2662 | * then always perform the request in regardless the module | ||
2663 | * parameter setting | ||
2664 | * if the request is from internal (uCode error or driver | ||
2665 | * detect failure), then fw_restart module parameter | ||
2666 | * need to be check before performing firmware reload | ||
2667 | */ | ||
2668 | if (!external && !priv->cfg->mod_params->restart_fw) { | ||
2669 | IWL_DEBUG_INFO(priv, "Cancel firmware reload based on " | ||
2670 | "module parameter setting\n"); | ||
2671 | break; | ||
2672 | } | ||
2658 | IWL_ERR(priv, "On demand firmware reload\n"); | 2673 | IWL_ERR(priv, "On demand firmware reload\n"); |
2659 | /* Set the FW error flag -- cleared on iwl_down */ | 2674 | /* Set the FW error flag -- cleared on iwl_down */ |
2660 | set_bit(STATUS_FW_ERROR, &priv->status); | 2675 | set_bit(STATUS_FW_ERROR, &priv->status); |
@@ -2713,7 +2728,7 @@ static int iwl_check_stuck_queue(struct iwl_priv *priv, int cnt) | |||
2713 | "queue %d stuck %d time. Fw reload.\n", | 2728 | "queue %d stuck %d time. Fw reload.\n", |
2714 | q->id, q->repeat_same_read_ptr); | 2729 | q->id, q->repeat_same_read_ptr); |
2715 | q->repeat_same_read_ptr = 0; | 2730 | q->repeat_same_read_ptr = 0; |
2716 | iwl_force_reset(priv, IWL_FW_RESET); | 2731 | iwl_force_reset(priv, IWL_FW_RESET, false); |
2717 | } else { | 2732 | } else { |
2718 | q->repeat_same_read_ptr++; | 2733 | q->repeat_same_read_ptr++; |
2719 | IWL_DEBUG_RADIO(priv, | 2734 | IWL_DEBUG_RADIO(priv, |
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h index 15930e064022..fcbba3d604de 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.h +++ b/drivers/net/wireless/iwlwifi/iwl-core.h | |||
@@ -205,6 +205,9 @@ struct iwl_lib_ops { | |||
205 | /* check for ack health */ | 205 | /* check for ack health */ |
206 | bool (*check_ack_health)(struct iwl_priv *priv, | 206 | bool (*check_ack_health)(struct iwl_priv *priv, |
207 | struct iwl_rx_packet *pkt); | 207 | struct iwl_rx_packet *pkt); |
208 | int (*txfifo_flush)(struct iwl_priv *priv, u16 flush_control); | ||
209 | void (*dev_txfifo_flush)(struct iwl_priv *priv, u16 flush_control); | ||
210 | |||
208 | struct iwl_debugfs_ops debugfs_ops; | 211 | struct iwl_debugfs_ops debugfs_ops; |
209 | }; | 212 | }; |
210 | 213 | ||
@@ -525,7 +528,7 @@ int iwl_mac_hw_scan(struct ieee80211_hw *hw, | |||
525 | struct cfg80211_scan_request *req); | 528 | struct cfg80211_scan_request *req); |
526 | void iwl_bg_start_internal_scan(struct work_struct *work); | 529 | void iwl_bg_start_internal_scan(struct work_struct *work); |
527 | void iwl_internal_short_hw_scan(struct iwl_priv *priv); | 530 | void iwl_internal_short_hw_scan(struct iwl_priv *priv); |
528 | int iwl_force_reset(struct iwl_priv *priv, int mode); | 531 | int iwl_force_reset(struct iwl_priv *priv, int mode, bool external); |
529 | u16 iwl_fill_probe_req(struct iwl_priv *priv, struct ieee80211_mgmt *frame, | 532 | u16 iwl_fill_probe_req(struct iwl_priv *priv, struct ieee80211_mgmt *frame, |
530 | const u8 *ta, const u8 *ie, int ie_len, int left); | 533 | const u8 *ta, const u8 *ie, int ie_len, int left); |
531 | void iwl_setup_rx_scan_handlers(struct iwl_priv *priv); | 534 | void iwl_setup_rx_scan_handlers(struct iwl_priv *priv); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-csr.h b/drivers/net/wireless/iwlwifi/iwl-csr.h index 254c35ae8b38..ecf98e7ac4ed 100644 --- a/drivers/net/wireless/iwlwifi/iwl-csr.h +++ b/drivers/net/wireless/iwlwifi/iwl-csr.h | |||
@@ -298,6 +298,7 @@ | |||
298 | #define CSR_HW_REV_TYPE_1000 (0x0000060) | 298 | #define CSR_HW_REV_TYPE_1000 (0x0000060) |
299 | #define CSR_HW_REV_TYPE_6x00 (0x0000070) | 299 | #define CSR_HW_REV_TYPE_6x00 (0x0000070) |
300 | #define CSR_HW_REV_TYPE_6x50 (0x0000080) | 300 | #define CSR_HW_REV_TYPE_6x50 (0x0000080) |
301 | #define CSR_HW_REV_TYPE_6x50g2 (0x0000084) | ||
301 | #define CSR_HW_REV_TYPE_6x00g2 (0x00000B0) | 302 | #define CSR_HW_REV_TYPE_6x00g2 (0x00000B0) |
302 | #define CSR_HW_REV_TYPE_NONE (0x00000F0) | 303 | #define CSR_HW_REV_TYPE_NONE (0x00000F0) |
303 | 304 | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl-debugfs.c b/drivers/net/wireless/iwlwifi/iwl-debugfs.c index 7d9ffc1575de..088a2c13f59b 100644 --- a/drivers/net/wireless/iwlwifi/iwl-debugfs.c +++ b/drivers/net/wireless/iwlwifi/iwl-debugfs.c | |||
@@ -1487,7 +1487,7 @@ static ssize_t iwl_dbgfs_force_reset_write(struct file *file, | |||
1487 | switch (reset) { | 1487 | switch (reset) { |
1488 | case IWL_RF_RESET: | 1488 | case IWL_RF_RESET: |
1489 | case IWL_FW_RESET: | 1489 | case IWL_FW_RESET: |
1490 | ret = iwl_force_reset(priv, reset); | 1490 | ret = iwl_force_reset(priv, reset, true); |
1491 | break; | 1491 | break; |
1492 | default: | 1492 | default: |
1493 | return -EINVAL; | 1493 | return -EINVAL; |
@@ -1495,6 +1495,30 @@ static ssize_t iwl_dbgfs_force_reset_write(struct file *file, | |||
1495 | return ret ? ret : count; | 1495 | return ret ? ret : count; |
1496 | } | 1496 | } |
1497 | 1497 | ||
1498 | static ssize_t iwl_dbgfs_txfifo_flush_write(struct file *file, | ||
1499 | const char __user *user_buf, | ||
1500 | size_t count, loff_t *ppos) { | ||
1501 | |||
1502 | struct iwl_priv *priv = file->private_data; | ||
1503 | char buf[8]; | ||
1504 | int buf_size; | ||
1505 | int flush; | ||
1506 | |||
1507 | memset(buf, 0, sizeof(buf)); | ||
1508 | buf_size = min(count, sizeof(buf) - 1); | ||
1509 | if (copy_from_user(buf, user_buf, buf_size)) | ||
1510 | return -EFAULT; | ||
1511 | if (sscanf(buf, "%d", &flush) != 1) | ||
1512 | return -EINVAL; | ||
1513 | |||
1514 | if (iwl_is_rfkill(priv)) | ||
1515 | return -EFAULT; | ||
1516 | |||
1517 | priv->cfg->ops->lib->dev_txfifo_flush(priv, IWL_DROP_ALL); | ||
1518 | |||
1519 | return count; | ||
1520 | } | ||
1521 | |||
1498 | DEBUGFS_READ_FILE_OPS(rx_statistics); | 1522 | DEBUGFS_READ_FILE_OPS(rx_statistics); |
1499 | DEBUGFS_READ_FILE_OPS(tx_statistics); | 1523 | DEBUGFS_READ_FILE_OPS(tx_statistics); |
1500 | DEBUGFS_READ_WRITE_FILE_OPS(traffic_log); | 1524 | DEBUGFS_READ_WRITE_FILE_OPS(traffic_log); |
@@ -1516,6 +1540,7 @@ DEBUGFS_READ_WRITE_FILE_OPS(plcp_delta); | |||
1516 | DEBUGFS_READ_WRITE_FILE_OPS(force_reset); | 1540 | DEBUGFS_READ_WRITE_FILE_OPS(force_reset); |
1517 | DEBUGFS_READ_FILE_OPS(rxon_flags); | 1541 | DEBUGFS_READ_FILE_OPS(rxon_flags); |
1518 | DEBUGFS_READ_FILE_OPS(rxon_filter_flags); | 1542 | DEBUGFS_READ_FILE_OPS(rxon_filter_flags); |
1543 | DEBUGFS_WRITE_FILE_OPS(txfifo_flush); | ||
1519 | 1544 | ||
1520 | /* | 1545 | /* |
1521 | * Create the debugfs files and directories | 1546 | * Create the debugfs files and directories |
@@ -1574,6 +1599,8 @@ int iwl_dbgfs_register(struct iwl_priv *priv, const char *name) | |||
1574 | DEBUGFS_ADD_FILE(ucode_rx_stats, dir_debug, S_IRUSR); | 1599 | DEBUGFS_ADD_FILE(ucode_rx_stats, dir_debug, S_IRUSR); |
1575 | DEBUGFS_ADD_FILE(ucode_tx_stats, dir_debug, S_IRUSR); | 1600 | DEBUGFS_ADD_FILE(ucode_tx_stats, dir_debug, S_IRUSR); |
1576 | DEBUGFS_ADD_FILE(ucode_general_stats, dir_debug, S_IRUSR); | 1601 | DEBUGFS_ADD_FILE(ucode_general_stats, dir_debug, S_IRUSR); |
1602 | if (priv->cfg->ops->lib->dev_txfifo_flush) | ||
1603 | DEBUGFS_ADD_FILE(txfifo_flush, dir_debug, S_IWUSR); | ||
1577 | 1604 | ||
1578 | if (priv->cfg->sensitivity_calib_by_driver) | 1605 | if (priv->cfg->sensitivity_calib_by_driver) |
1579 | DEBUGFS_ADD_FILE(sensitivity, dir_debug, S_IRUSR); | 1606 | DEBUGFS_ADD_FILE(sensitivity, dir_debug, S_IRUSR); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h index 728752aa1bb5..c4dba62b74af 100644 --- a/drivers/net/wireless/iwlwifi/iwl-dev.h +++ b/drivers/net/wireless/iwlwifi/iwl-dev.h | |||
@@ -570,6 +570,7 @@ enum iwl_ucode_tlv_type { | |||
570 | IWL_UCODE_TLV_INIT_EVTLOG_PTR = 11, | 570 | IWL_UCODE_TLV_INIT_EVTLOG_PTR = 11, |
571 | IWL_UCODE_TLV_INIT_EVTLOG_SIZE = 12, | 571 | IWL_UCODE_TLV_INIT_EVTLOG_SIZE = 12, |
572 | IWL_UCODE_TLV_INIT_ERRLOG_PTR = 13, | 572 | IWL_UCODE_TLV_INIT_ERRLOG_PTR = 13, |
573 | IWL_UCODE_TLV_ENHANCE_SENS_TBL = 14, | ||
573 | }; | 574 | }; |
574 | 575 | ||
575 | struct iwl_ucode_tlv { | 576 | struct iwl_ucode_tlv { |
@@ -1193,7 +1194,9 @@ struct iwl_priv { | |||
1193 | u8 start_calib; | 1194 | u8 start_calib; |
1194 | struct iwl_sensitivity_data sensitivity_data; | 1195 | struct iwl_sensitivity_data sensitivity_data; |
1195 | struct iwl_chain_noise_data chain_noise_data; | 1196 | struct iwl_chain_noise_data chain_noise_data; |
1197 | bool enhance_sensitivity_table; | ||
1196 | __le16 sensitivity_tbl[HD_TABLE_SIZE]; | 1198 | __le16 sensitivity_tbl[HD_TABLE_SIZE]; |
1199 | __le16 enhance_sensitivity_tbl[ENHANCE_HD_TABLE_ENTRIES]; | ||
1197 | 1200 | ||
1198 | struct iwl_ht_config current_ht_config; | 1201 | struct iwl_ht_config current_ht_config; |
1199 | 1202 | ||
@@ -1345,6 +1348,7 @@ struct iwl_priv { | |||
1345 | struct work_struct ct_enter; | 1348 | struct work_struct ct_enter; |
1346 | struct work_struct ct_exit; | 1349 | struct work_struct ct_exit; |
1347 | struct work_struct start_internal_scan; | 1350 | struct work_struct start_internal_scan; |
1351 | struct work_struct tx_flush; | ||
1348 | 1352 | ||
1349 | struct tasklet_struct irq_tasklet; | 1353 | struct tasklet_struct irq_tasklet; |
1350 | 1354 | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.h b/drivers/net/wireless/iwlwifi/iwl-eeprom.h index 5488006491a2..3452dfa7b571 100644 --- a/drivers/net/wireless/iwlwifi/iwl-eeprom.h +++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.h | |||
@@ -276,6 +276,10 @@ struct iwl_eeprom_enhanced_txpwr { | |||
276 | #define EEPROM_6050_TX_POWER_VERSION (4) | 276 | #define EEPROM_6050_TX_POWER_VERSION (4) |
277 | #define EEPROM_6050_EEPROM_VERSION (0x532) | 277 | #define EEPROM_6050_EEPROM_VERSION (0x532) |
278 | 278 | ||
279 | /* 6x50g2 Specific */ | ||
280 | #define EEPROM_6050G2_TX_POWER_VERSION (6) | ||
281 | #define EEPROM_6050G2_EEPROM_VERSION (0x553) | ||
282 | |||
279 | /* 6x00g2 Specific */ | 283 | /* 6x00g2 Specific */ |
280 | #define EEPROM_6000G2_TX_POWER_VERSION (6) | 284 | #define EEPROM_6000G2_TX_POWER_VERSION (6) |
281 | #define EEPROM_6000G2_EEPROM_VERSION (0x709) | 285 | #define EEPROM_6000G2_EEPROM_VERSION (0x709) |
diff --git a/drivers/net/wireless/iwlwifi/iwl-fh.h b/drivers/net/wireless/iwlwifi/iwl-fh.h index a3fcbb5f2c70..55b8370bc6d4 100644 --- a/drivers/net/wireless/iwlwifi/iwl-fh.h +++ b/drivers/net/wireless/iwlwifi/iwl-fh.h | |||
@@ -398,12 +398,7 @@ | |||
398 | */ | 398 | */ |
399 | #define FH_TSSR_TX_ERROR_REG (FH_TSSR_LOWER_BOUND + 0x018) | 399 | #define FH_TSSR_TX_ERROR_REG (FH_TSSR_LOWER_BOUND + 0x018) |
400 | 400 | ||
401 | #define FH_TSSR_TX_STATUS_REG_BIT_BUFS_EMPTY(_chnl) ((1 << (_chnl)) << 24) | 401 | #define FH_TSSR_TX_STATUS_REG_MSK_CHNL_IDLE(_chnl) ((1 << (_chnl)) << 16) |
402 | #define FH_TSSR_TX_STATUS_REG_BIT_NO_PEND_REQ(_chnl) ((1 << (_chnl)) << 16) | ||
403 | |||
404 | #define FH_TSSR_TX_STATUS_REG_MSK_CHNL_IDLE(_chnl) \ | ||
405 | (FH_TSSR_TX_STATUS_REG_BIT_BUFS_EMPTY(_chnl) | \ | ||
406 | FH_TSSR_TX_STATUS_REG_BIT_NO_PEND_REQ(_chnl)) | ||
407 | 402 | ||
408 | /* Tx service channels */ | 403 | /* Tx service channels */ |
409 | #define FH_SRVC_CHNL (9) | 404 | #define FH_SRVC_CHNL (9) |
diff --git a/drivers/net/wireless/iwlwifi/iwl-hcmd.c b/drivers/net/wireless/iwlwifi/iwl-hcmd.c index 51f89e7ba681..258d059ef41f 100644 --- a/drivers/net/wireless/iwlwifi/iwl-hcmd.c +++ b/drivers/net/wireless/iwlwifi/iwl-hcmd.c | |||
@@ -49,6 +49,7 @@ const char *get_cmd_string(u8 cmd) | |||
49 | IWL_CMD(REPLY_ADD_STA); | 49 | IWL_CMD(REPLY_ADD_STA); |
50 | IWL_CMD(REPLY_REMOVE_STA); | 50 | IWL_CMD(REPLY_REMOVE_STA); |
51 | IWL_CMD(REPLY_REMOVE_ALL_STA); | 51 | IWL_CMD(REPLY_REMOVE_ALL_STA); |
52 | IWL_CMD(REPLY_TXFIFO_FLUSH); | ||
52 | IWL_CMD(REPLY_WEPKEY); | 53 | IWL_CMD(REPLY_WEPKEY); |
53 | IWL_CMD(REPLY_3945_RX); | 54 | IWL_CMD(REPLY_3945_RX); |
54 | IWL_CMD(REPLY_TX); | 55 | IWL_CMD(REPLY_TX); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-rx.c b/drivers/net/wireless/iwlwifi/iwl-rx.c index b437f317b979..79773e353baa 100644 --- a/drivers/net/wireless/iwlwifi/iwl-rx.c +++ b/drivers/net/wireless/iwlwifi/iwl-rx.c | |||
@@ -238,7 +238,7 @@ void iwl_recover_from_statistics(struct iwl_priv *priv, | |||
238 | */ | 238 | */ |
239 | IWL_ERR(priv, "low ack count detected, " | 239 | IWL_ERR(priv, "low ack count detected, " |
240 | "restart firmware\n"); | 240 | "restart firmware\n"); |
241 | if (!iwl_force_reset(priv, IWL_FW_RESET)) | 241 | if (!iwl_force_reset(priv, IWL_FW_RESET, false)) |
242 | return; | 242 | return; |
243 | } | 243 | } |
244 | } | 244 | } |
@@ -249,7 +249,7 @@ void iwl_recover_from_statistics(struct iwl_priv *priv, | |||
249 | * high plcp error detected | 249 | * high plcp error detected |
250 | * reset Radio | 250 | * reset Radio |
251 | */ | 251 | */ |
252 | iwl_force_reset(priv, IWL_RF_RESET); | 252 | iwl_force_reset(priv, IWL_RF_RESET, false); |
253 | } | 253 | } |
254 | } | 254 | } |
255 | } | 255 | } |
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.h b/drivers/net/wireless/iwlwifi/iwl-sta.h index ba95b1a590a5..d38a350ba0bd 100644 --- a/drivers/net/wireless/iwlwifi/iwl-sta.h +++ b/drivers/net/wireless/iwlwifi/iwl-sta.h | |||
@@ -98,6 +98,17 @@ static inline void iwl_clear_driver_stations(struct iwl_priv *priv) | |||
98 | spin_lock_irqsave(&priv->sta_lock, flags); | 98 | spin_lock_irqsave(&priv->sta_lock, flags); |
99 | memset(priv->stations, 0, sizeof(priv->stations)); | 99 | memset(priv->stations, 0, sizeof(priv->stations)); |
100 | priv->num_stations = 0; | 100 | priv->num_stations = 0; |
101 | |||
102 | /* | ||
103 | * Remove all key information that is not stored as part of station | ||
104 | * information since mac80211 may not have had a | ||
105 | * chance to remove all the keys. When device is reconfigured by | ||
106 | * mac80211 after an error all keys will be reconfigured. | ||
107 | */ | ||
108 | priv->ucode_key_table = 0; | ||
109 | priv->key_mapping_key = 0; | ||
110 | memset(priv->wep_keys, 0, sizeof(priv->wep_keys)); | ||
111 | |||
101 | spin_unlock_irqrestore(&priv->sta_lock, flags); | 112 | spin_unlock_irqrestore(&priv->sta_lock, flags); |
102 | } | 113 | } |
103 | 114 | ||
diff --git a/drivers/net/wireless/libertas/README b/drivers/net/wireless/libertas/README index 2726c044430f..60fd1afe89ac 100644 --- a/drivers/net/wireless/libertas/README +++ b/drivers/net/wireless/libertas/README | |||
@@ -226,6 +226,18 @@ setuserscan | |||
226 | All entries in the scan table (not just the new scan data when keep=1) | 226 | All entries in the scan table (not just the new scan data when keep=1) |
227 | will be displayed upon completion by use of the getscantable ioctl. | 227 | will be displayed upon completion by use of the getscantable ioctl. |
228 | 228 | ||
229 | hostsleep | ||
230 | This command is used to enable/disable host sleep. | ||
231 | Note: Host sleep parameters should be configured using | ||
232 | "ethtool -s ethX wol X" command before enabling host sleep. | ||
233 | |||
234 | Path: /sys/kernel/debug/libertas_wireless/ethX/ | ||
235 | |||
236 | Usage: | ||
237 | cat hostsleep: reads the current hostsleep state | ||
238 | echo "1" > hostsleep : enable host sleep. | ||
239 | echo "0" > hostsleep : disable host sleep | ||
240 | |||
229 | ======================== | 241 | ======================== |
230 | IWCONFIG COMMANDS | 242 | IWCONFIG COMMANDS |
231 | ======================== | 243 | ======================== |
diff --git a/drivers/net/wireless/libertas/cmd.c b/drivers/net/wireless/libertas/cmd.c index 6c8a9d952a01..749fbde4fd54 100644 --- a/drivers/net/wireless/libertas/cmd.c +++ b/drivers/net/wireless/libertas/cmd.c | |||
@@ -181,7 +181,7 @@ static int lbs_ret_host_sleep_cfg(struct lbs_private *priv, unsigned long dummy, | |||
181 | struct cmd_header *resp) | 181 | struct cmd_header *resp) |
182 | { | 182 | { |
183 | lbs_deb_enter(LBS_DEB_CMD); | 183 | lbs_deb_enter(LBS_DEB_CMD); |
184 | if (priv->wol_criteria == EHS_REMOVE_WAKEUP) { | 184 | if (priv->is_host_sleep_activated) { |
185 | priv->is_host_sleep_configured = 0; | 185 | priv->is_host_sleep_configured = 0; |
186 | if (priv->psstate == PS_STATE_FULL_POWER) { | 186 | if (priv->psstate == PS_STATE_FULL_POWER) { |
187 | priv->is_host_sleep_activated = 0; | 187 | priv->is_host_sleep_activated = 0; |
@@ -361,6 +361,65 @@ int lbs_set_deep_sleep(struct lbs_private *priv, int deep_sleep) | |||
361 | return ret; | 361 | return ret; |
362 | } | 362 | } |
363 | 363 | ||
364 | static int lbs_ret_host_sleep_activate(struct lbs_private *priv, | ||
365 | unsigned long dummy, | ||
366 | struct cmd_header *cmd) | ||
367 | { | ||
368 | lbs_deb_enter(LBS_DEB_FW); | ||
369 | priv->is_host_sleep_activated = 1; | ||
370 | wake_up_interruptible(&priv->host_sleep_q); | ||
371 | lbs_deb_leave(LBS_DEB_FW); | ||
372 | return 0; | ||
373 | } | ||
374 | |||
375 | int lbs_set_host_sleep(struct lbs_private *priv, int host_sleep) | ||
376 | { | ||
377 | struct cmd_header cmd; | ||
378 | int ret = 0; | ||
379 | uint32_t criteria = EHS_REMOVE_WAKEUP; | ||
380 | |||
381 | lbs_deb_enter(LBS_DEB_CMD); | ||
382 | |||
383 | if (host_sleep) { | ||
384 | if (priv->is_host_sleep_activated != 1) { | ||
385 | memset(&cmd, 0, sizeof(cmd)); | ||
386 | ret = lbs_host_sleep_cfg(priv, priv->wol_criteria, | ||
387 | (struct wol_config *)NULL); | ||
388 | if (ret) { | ||
389 | lbs_pr_info("Host sleep configuration failed: " | ||
390 | "%d\n", ret); | ||
391 | return ret; | ||
392 | } | ||
393 | if (priv->psstate == PS_STATE_FULL_POWER) { | ||
394 | ret = __lbs_cmd(priv, | ||
395 | CMD_802_11_HOST_SLEEP_ACTIVATE, | ||
396 | &cmd, | ||
397 | sizeof(cmd), | ||
398 | lbs_ret_host_sleep_activate, 0); | ||
399 | if (ret) | ||
400 | lbs_pr_info("HOST_SLEEP_ACTIVATE " | ||
401 | "failed: %d\n", ret); | ||
402 | } | ||
403 | |||
404 | if (!wait_event_interruptible_timeout( | ||
405 | priv->host_sleep_q, | ||
406 | priv->is_host_sleep_activated, | ||
407 | (10 * HZ))) { | ||
408 | lbs_pr_err("host_sleep_q: timer expired\n"); | ||
409 | ret = -1; | ||
410 | } | ||
411 | } else { | ||
412 | lbs_pr_err("host sleep: already enabled\n"); | ||
413 | } | ||
414 | } else { | ||
415 | if (priv->is_host_sleep_activated) | ||
416 | ret = lbs_host_sleep_cfg(priv, criteria, | ||
417 | (struct wol_config *)NULL); | ||
418 | } | ||
419 | |||
420 | return ret; | ||
421 | } | ||
422 | |||
364 | /** | 423 | /** |
365 | * @brief Set an SNMP MIB value | 424 | * @brief Set an SNMP MIB value |
366 | * | 425 | * |
diff --git a/drivers/net/wireless/libertas/cmd.h b/drivers/net/wireless/libertas/cmd.h index cb4138a55fdf..386e565d99ad 100644 --- a/drivers/net/wireless/libertas/cmd.h +++ b/drivers/net/wireless/libertas/cmd.h | |||
@@ -127,4 +127,6 @@ int lbs_set_tx_power(struct lbs_private *priv, s16 dbm); | |||
127 | 127 | ||
128 | int lbs_set_deep_sleep(struct lbs_private *priv, int deep_sleep); | 128 | int lbs_set_deep_sleep(struct lbs_private *priv, int deep_sleep); |
129 | 129 | ||
130 | int lbs_set_host_sleep(struct lbs_private *priv, int host_sleep); | ||
131 | |||
130 | #endif /* _LBS_CMD_H */ | 132 | #endif /* _LBS_CMD_H */ |
diff --git a/drivers/net/wireless/libertas/debugfs.c b/drivers/net/wireless/libertas/debugfs.c index 17367463c855..acaf81164624 100644 --- a/drivers/net/wireless/libertas/debugfs.c +++ b/drivers/net/wireless/libertas/debugfs.c | |||
@@ -124,6 +124,70 @@ out_unlock: | |||
124 | return ret; | 124 | return ret; |
125 | } | 125 | } |
126 | 126 | ||
127 | static ssize_t lbs_host_sleep_write(struct file *file, | ||
128 | const char __user *user_buf, size_t count, | ||
129 | loff_t *ppos) | ||
130 | { | ||
131 | struct lbs_private *priv = file->private_data; | ||
132 | ssize_t buf_size, ret; | ||
133 | int host_sleep; | ||
134 | unsigned long addr = get_zeroed_page(GFP_KERNEL); | ||
135 | char *buf = (char *)addr; | ||
136 | if (!buf) | ||
137 | return -ENOMEM; | ||
138 | |||
139 | buf_size = min(count, len - 1); | ||
140 | if (copy_from_user(buf, user_buf, buf_size)) { | ||
141 | ret = -EFAULT; | ||
142 | goto out_unlock; | ||
143 | } | ||
144 | ret = sscanf(buf, "%d", &host_sleep); | ||
145 | if (ret != 1) { | ||
146 | ret = -EINVAL; | ||
147 | goto out_unlock; | ||
148 | } | ||
149 | |||
150 | if (host_sleep == 0) | ||
151 | ret = lbs_set_host_sleep(priv, 0); | ||
152 | else if (host_sleep == 1) { | ||
153 | if (priv->wol_criteria == EHS_REMOVE_WAKEUP) { | ||
154 | lbs_pr_info("wake parameters not configured"); | ||
155 | ret = -EINVAL; | ||
156 | goto out_unlock; | ||
157 | } | ||
158 | ret = lbs_set_host_sleep(priv, 1); | ||
159 | } else { | ||
160 | lbs_pr_err("invalid option\n"); | ||
161 | ret = -EINVAL; | ||
162 | } | ||
163 | |||
164 | if (!ret) | ||
165 | ret = count; | ||
166 | |||
167 | out_unlock: | ||
168 | free_page(addr); | ||
169 | return ret; | ||
170 | } | ||
171 | |||
172 | static ssize_t lbs_host_sleep_read(struct file *file, char __user *userbuf, | ||
173 | size_t count, loff_t *ppos) | ||
174 | { | ||
175 | struct lbs_private *priv = file->private_data; | ||
176 | ssize_t ret; | ||
177 | size_t pos = 0; | ||
178 | unsigned long addr = get_zeroed_page(GFP_KERNEL); | ||
179 | char *buf = (char *)addr; | ||
180 | if (!buf) | ||
181 | return -ENOMEM; | ||
182 | |||
183 | pos += snprintf(buf, len, "%d\n", priv->is_host_sleep_activated); | ||
184 | |||
185 | ret = simple_read_from_buffer(userbuf, count, ppos, buf, pos); | ||
186 | |||
187 | free_page(addr); | ||
188 | return ret; | ||
189 | } | ||
190 | |||
127 | /* | 191 | /* |
128 | * When calling CMD_802_11_SUBSCRIBE_EVENT with CMD_ACT_GET, me might | 192 | * When calling CMD_802_11_SUBSCRIBE_EVENT with CMD_ACT_GET, me might |
129 | * get a bunch of vendor-specific TLVs (a.k.a. IEs) back from the | 193 | * get a bunch of vendor-specific TLVs (a.k.a. IEs) back from the |
@@ -675,6 +739,8 @@ static const struct lbs_debugfs_files debugfs_files[] = { | |||
675 | { "info", 0444, FOPS(lbs_dev_info, write_file_dummy), }, | 739 | { "info", 0444, FOPS(lbs_dev_info, write_file_dummy), }, |
676 | { "sleepparams", 0644, FOPS(lbs_sleepparams_read, | 740 | { "sleepparams", 0644, FOPS(lbs_sleepparams_read, |
677 | lbs_sleepparams_write), }, | 741 | lbs_sleepparams_write), }, |
742 | { "hostsleep", 0644, FOPS(lbs_host_sleep_read, | ||
743 | lbs_host_sleep_write), }, | ||
678 | }; | 744 | }; |
679 | 745 | ||
680 | static const struct lbs_debugfs_files debugfs_events_files[] = { | 746 | static const struct lbs_debugfs_files debugfs_events_files[] = { |
diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c index b519fc70f04f..2a0b590a93f1 100644 --- a/drivers/net/wireless/libertas/main.c +++ b/drivers/net/wireless/libertas/main.c | |||
@@ -544,20 +544,8 @@ static int lbs_thread(void *data) | |||
544 | return 0; | 544 | return 0; |
545 | } | 545 | } |
546 | 546 | ||
547 | static int lbs_ret_host_sleep_activate(struct lbs_private *priv, | ||
548 | unsigned long dummy, | ||
549 | struct cmd_header *cmd) | ||
550 | { | ||
551 | lbs_deb_enter(LBS_DEB_FW); | ||
552 | priv->is_host_sleep_activated = 1; | ||
553 | wake_up_interruptible(&priv->host_sleep_q); | ||
554 | lbs_deb_leave(LBS_DEB_FW); | ||
555 | return 0; | ||
556 | } | ||
557 | |||
558 | int lbs_suspend(struct lbs_private *priv) | 547 | int lbs_suspend(struct lbs_private *priv) |
559 | { | 548 | { |
560 | struct cmd_header cmd; | ||
561 | int ret; | 549 | int ret; |
562 | 550 | ||
563 | lbs_deb_enter(LBS_DEB_FW); | 551 | lbs_deb_enter(LBS_DEB_FW); |
@@ -571,25 +559,8 @@ int lbs_suspend(struct lbs_private *priv) | |||
571 | priv->deep_sleep_required = 1; | 559 | priv->deep_sleep_required = 1; |
572 | } | 560 | } |
573 | 561 | ||
574 | memset(&cmd, 0, sizeof(cmd)); | 562 | ret = lbs_set_host_sleep(priv, 1); |
575 | ret = lbs_host_sleep_cfg(priv, priv->wol_criteria, | ||
576 | (struct wol_config *)NULL); | ||
577 | if (ret) { | ||
578 | lbs_pr_info("Host sleep configuration failed: %d\n", ret); | ||
579 | return ret; | ||
580 | } | ||
581 | if (priv->psstate == PS_STATE_FULL_POWER) { | ||
582 | ret = __lbs_cmd(priv, CMD_802_11_HOST_SLEEP_ACTIVATE, &cmd, | ||
583 | sizeof(cmd), lbs_ret_host_sleep_activate, 0); | ||
584 | if (ret) | ||
585 | lbs_pr_info("HOST_SLEEP_ACTIVATE failed: %d\n", ret); | ||
586 | } | ||
587 | 563 | ||
588 | if (!wait_event_interruptible_timeout(priv->host_sleep_q, | ||
589 | priv->is_host_sleep_activated, (10 * HZ))) { | ||
590 | lbs_pr_err("host_sleep_q: timer expired\n"); | ||
591 | ret = -1; | ||
592 | } | ||
593 | netif_device_detach(priv->dev); | 564 | netif_device_detach(priv->dev); |
594 | if (priv->mesh_dev) | 565 | if (priv->mesh_dev) |
595 | netif_device_detach(priv->mesh_dev); | 566 | netif_device_detach(priv->mesh_dev); |
@@ -602,11 +573,10 @@ EXPORT_SYMBOL_GPL(lbs_suspend); | |||
602 | int lbs_resume(struct lbs_private *priv) | 573 | int lbs_resume(struct lbs_private *priv) |
603 | { | 574 | { |
604 | int ret; | 575 | int ret; |
605 | uint32_t criteria = EHS_REMOVE_WAKEUP; | ||
606 | 576 | ||
607 | lbs_deb_enter(LBS_DEB_FW); | 577 | lbs_deb_enter(LBS_DEB_FW); |
608 | 578 | ||
609 | ret = lbs_host_sleep_cfg(priv, criteria, (struct wol_config *)NULL); | 579 | ret = lbs_set_host_sleep(priv, 0); |
610 | 580 | ||
611 | netif_device_attach(priv->dev); | 581 | netif_device_attach(priv->dev); |
612 | if (priv->mesh_dev) | 582 | if (priv->mesh_dev) |
diff --git a/drivers/net/wireless/prism54/isl_ioctl.c b/drivers/net/wireless/prism54/isl_ioctl.c index 912fdc022d08..77cd65db8500 100644 --- a/drivers/net/wireless/prism54/isl_ioctl.c +++ b/drivers/net/wireless/prism54/isl_ioctl.c | |||
@@ -2067,7 +2067,7 @@ send_simple_event(islpci_private *priv, const char *str) | |||
2067 | memptr = kmalloc(IW_CUSTOM_MAX, GFP_KERNEL); | 2067 | memptr = kmalloc(IW_CUSTOM_MAX, GFP_KERNEL); |
2068 | if (!memptr) | 2068 | if (!memptr) |
2069 | return; | 2069 | return; |
2070 | BUG_ON(n > IW_CUSTOM_MAX); | 2070 | BUG_ON(n >= IW_CUSTOM_MAX); |
2071 | wrqu.data.pointer = memptr; | 2071 | wrqu.data.pointer = memptr; |
2072 | wrqu.data.length = n; | 2072 | wrqu.data.length = n; |
2073 | strcpy(memptr, str); | 2073 | strcpy(memptr, str); |
diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c index 3bedf566c8ee..5063e01410e5 100644 --- a/drivers/net/wireless/rt2x00/rt2400pci.c +++ b/drivers/net/wireless/rt2x00/rt2400pci.c | |||
@@ -586,9 +586,11 @@ static void rt2400pci_link_stats(struct rt2x00_dev *rt2x00dev, | |||
586 | static inline void rt2400pci_set_vgc(struct rt2x00_dev *rt2x00dev, | 586 | static inline void rt2400pci_set_vgc(struct rt2x00_dev *rt2x00dev, |
587 | struct link_qual *qual, u8 vgc_level) | 587 | struct link_qual *qual, u8 vgc_level) |
588 | { | 588 | { |
589 | rt2400pci_bbp_write(rt2x00dev, 13, vgc_level); | 589 | if (qual->vgc_level_reg != vgc_level) { |
590 | qual->vgc_level = vgc_level; | 590 | rt2400pci_bbp_write(rt2x00dev, 13, vgc_level); |
591 | qual->vgc_level_reg = vgc_level; | 591 | qual->vgc_level = vgc_level; |
592 | qual->vgc_level_reg = vgc_level; | ||
593 | } | ||
592 | } | 594 | } |
593 | 595 | ||
594 | static void rt2400pci_reset_tuner(struct rt2x00_dev *rt2x00dev, | 596 | static void rt2400pci_reset_tuner(struct rt2x00_dev *rt2x00dev, |
@@ -877,7 +879,8 @@ static void rt2400pci_toggle_rx(struct rt2x00_dev *rt2x00dev, | |||
877 | static void rt2400pci_toggle_irq(struct rt2x00_dev *rt2x00dev, | 879 | static void rt2400pci_toggle_irq(struct rt2x00_dev *rt2x00dev, |
878 | enum dev_state state) | 880 | enum dev_state state) |
879 | { | 881 | { |
880 | int mask = (state == STATE_RADIO_IRQ_OFF); | 882 | int mask = (state == STATE_RADIO_IRQ_OFF) || |
883 | (state == STATE_RADIO_IRQ_OFF_ISR); | ||
881 | u32 reg; | 884 | u32 reg; |
882 | 885 | ||
883 | /* | 886 | /* |
@@ -978,7 +981,9 @@ static int rt2400pci_set_device_state(struct rt2x00_dev *rt2x00dev, | |||
978 | rt2400pci_toggle_rx(rt2x00dev, state); | 981 | rt2400pci_toggle_rx(rt2x00dev, state); |
979 | break; | 982 | break; |
980 | case STATE_RADIO_IRQ_ON: | 983 | case STATE_RADIO_IRQ_ON: |
984 | case STATE_RADIO_IRQ_ON_ISR: | ||
981 | case STATE_RADIO_IRQ_OFF: | 985 | case STATE_RADIO_IRQ_OFF: |
986 | case STATE_RADIO_IRQ_OFF_ISR: | ||
982 | rt2400pci_toggle_irq(rt2x00dev, state); | 987 | rt2400pci_toggle_irq(rt2x00dev, state); |
983 | break; | 988 | break; |
984 | case STATE_DEEP_SLEEP: | 989 | case STATE_DEEP_SLEEP: |
@@ -1233,23 +1238,10 @@ static void rt2400pci_txdone(struct rt2x00_dev *rt2x00dev, | |||
1233 | } | 1238 | } |
1234 | } | 1239 | } |
1235 | 1240 | ||
1236 | static irqreturn_t rt2400pci_interrupt(int irq, void *dev_instance) | 1241 | static irqreturn_t rt2400pci_interrupt_thread(int irq, void *dev_instance) |
1237 | { | 1242 | { |
1238 | struct rt2x00_dev *rt2x00dev = dev_instance; | 1243 | struct rt2x00_dev *rt2x00dev = dev_instance; |
1239 | u32 reg; | 1244 | u32 reg = rt2x00dev->irqvalue[0]; |
1240 | |||
1241 | /* | ||
1242 | * Get the interrupt sources & saved to local variable. | ||
1243 | * Write register value back to clear pending interrupts. | ||
1244 | */ | ||
1245 | rt2x00pci_register_read(rt2x00dev, CSR7, ®); | ||
1246 | rt2x00pci_register_write(rt2x00dev, CSR7, reg); | ||
1247 | |||
1248 | if (!reg) | ||
1249 | return IRQ_NONE; | ||
1250 | |||
1251 | if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) | ||
1252 | return IRQ_HANDLED; | ||
1253 | 1245 | ||
1254 | /* | 1246 | /* |
1255 | * Handle interrupts, walk through all bits | 1247 | * Handle interrupts, walk through all bits |
@@ -1287,9 +1279,40 @@ static irqreturn_t rt2400pci_interrupt(int irq, void *dev_instance) | |||
1287 | if (rt2x00_get_field32(reg, CSR7_TXDONE_TXRING)) | 1279 | if (rt2x00_get_field32(reg, CSR7_TXDONE_TXRING)) |
1288 | rt2400pci_txdone(rt2x00dev, QID_AC_BK); | 1280 | rt2400pci_txdone(rt2x00dev, QID_AC_BK); |
1289 | 1281 | ||
1282 | /* Enable interrupts again. */ | ||
1283 | rt2x00dev->ops->lib->set_device_state(rt2x00dev, | ||
1284 | STATE_RADIO_IRQ_ON_ISR); | ||
1290 | return IRQ_HANDLED; | 1285 | return IRQ_HANDLED; |
1291 | } | 1286 | } |
1292 | 1287 | ||
1288 | static irqreturn_t rt2400pci_interrupt(int irq, void *dev_instance) | ||
1289 | { | ||
1290 | struct rt2x00_dev *rt2x00dev = dev_instance; | ||
1291 | u32 reg; | ||
1292 | |||
1293 | /* | ||
1294 | * Get the interrupt sources & saved to local variable. | ||
1295 | * Write register value back to clear pending interrupts. | ||
1296 | */ | ||
1297 | rt2x00pci_register_read(rt2x00dev, CSR7, ®); | ||
1298 | rt2x00pci_register_write(rt2x00dev, CSR7, reg); | ||
1299 | |||
1300 | if (!reg) | ||
1301 | return IRQ_NONE; | ||
1302 | |||
1303 | if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) | ||
1304 | return IRQ_HANDLED; | ||
1305 | |||
1306 | /* Store irqvalues for use in the interrupt thread. */ | ||
1307 | rt2x00dev->irqvalue[0] = reg; | ||
1308 | |||
1309 | /* Disable interrupts, will be enabled again in the interrupt thread. */ | ||
1310 | rt2x00dev->ops->lib->set_device_state(rt2x00dev, | ||
1311 | STATE_RADIO_IRQ_OFF_ISR); | ||
1312 | |||
1313 | return IRQ_WAKE_THREAD; | ||
1314 | } | ||
1315 | |||
1293 | /* | 1316 | /* |
1294 | * Device probe functions. | 1317 | * Device probe functions. |
1295 | */ | 1318 | */ |
@@ -1399,8 +1422,8 @@ static int rt2400pci_init_eeprom(struct rt2x00_dev *rt2x00dev) | |||
1399 | /* | 1422 | /* |
1400 | * Check if the BBP tuning should be enabled. | 1423 | * Check if the BBP tuning should be enabled. |
1401 | */ | 1424 | */ |
1402 | if (!rt2x00_get_field16(eeprom, EEPROM_ANTENNA_RX_AGCVGC_TUNING)) | 1425 | if (rt2x00_get_field16(eeprom, EEPROM_ANTENNA_RX_AGCVGC_TUNING)) |
1403 | __set_bit(CONFIG_DISABLE_LINK_TUNING, &rt2x00dev->flags); | 1426 | __set_bit(DRIVER_SUPPORT_LINK_TUNING, &rt2x00dev->flags); |
1404 | 1427 | ||
1405 | return 0; | 1428 | return 0; |
1406 | } | 1429 | } |
@@ -1566,7 +1589,8 @@ static const struct ieee80211_ops rt2400pci_mac80211_ops = { | |||
1566 | .remove_interface = rt2x00mac_remove_interface, | 1589 | .remove_interface = rt2x00mac_remove_interface, |
1567 | .config = rt2x00mac_config, | 1590 | .config = rt2x00mac_config, |
1568 | .configure_filter = rt2x00mac_configure_filter, | 1591 | .configure_filter = rt2x00mac_configure_filter, |
1569 | .set_tim = rt2x00mac_set_tim, | 1592 | .sw_scan_start = rt2x00mac_sw_scan_start, |
1593 | .sw_scan_complete = rt2x00mac_sw_scan_complete, | ||
1570 | .get_stats = rt2x00mac_get_stats, | 1594 | .get_stats = rt2x00mac_get_stats, |
1571 | .bss_info_changed = rt2x00mac_bss_info_changed, | 1595 | .bss_info_changed = rt2x00mac_bss_info_changed, |
1572 | .conf_tx = rt2400pci_conf_tx, | 1596 | .conf_tx = rt2400pci_conf_tx, |
@@ -1577,6 +1601,7 @@ static const struct ieee80211_ops rt2400pci_mac80211_ops = { | |||
1577 | 1601 | ||
1578 | static const struct rt2x00lib_ops rt2400pci_rt2x00_ops = { | 1602 | static const struct rt2x00lib_ops rt2400pci_rt2x00_ops = { |
1579 | .irq_handler = rt2400pci_interrupt, | 1603 | .irq_handler = rt2400pci_interrupt, |
1604 | .irq_handler_thread = rt2400pci_interrupt_thread, | ||
1580 | .probe_hw = rt2400pci_probe_hw, | 1605 | .probe_hw = rt2400pci_probe_hw, |
1581 | .initialize = rt2x00pci_initialize, | 1606 | .initialize = rt2x00pci_initialize, |
1582 | .uninitialize = rt2x00pci_uninitialize, | 1607 | .uninitialize = rt2x00pci_uninitialize, |
diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c index 69d231d83952..c2a555d5376b 100644 --- a/drivers/net/wireless/rt2x00/rt2500pci.c +++ b/drivers/net/wireless/rt2x00/rt2500pci.c | |||
@@ -626,6 +626,7 @@ static inline void rt2500pci_set_vgc(struct rt2x00_dev *rt2x00dev, | |||
626 | { | 626 | { |
627 | if (qual->vgc_level_reg != vgc_level) { | 627 | if (qual->vgc_level_reg != vgc_level) { |
628 | rt2500pci_bbp_write(rt2x00dev, 17, vgc_level); | 628 | rt2500pci_bbp_write(rt2x00dev, 17, vgc_level); |
629 | qual->vgc_level = vgc_level; | ||
629 | qual->vgc_level_reg = vgc_level; | 630 | qual->vgc_level_reg = vgc_level; |
630 | } | 631 | } |
631 | } | 632 | } |
@@ -700,13 +701,10 @@ dynamic_cca_tune: | |||
700 | * R17 is inside the dynamic tuning range, | 701 | * R17 is inside the dynamic tuning range, |
701 | * start tuning the link based on the false cca counter. | 702 | * start tuning the link based on the false cca counter. |
702 | */ | 703 | */ |
703 | if (qual->false_cca > 512 && qual->vgc_level_reg < 0x40) { | 704 | if (qual->false_cca > 512 && qual->vgc_level_reg < 0x40) |
704 | rt2500pci_set_vgc(rt2x00dev, qual, ++qual->vgc_level_reg); | 705 | rt2500pci_set_vgc(rt2x00dev, qual, ++qual->vgc_level_reg); |
705 | qual->vgc_level = qual->vgc_level_reg; | 706 | else if (qual->false_cca < 100 && qual->vgc_level_reg > 0x32) |
706 | } else if (qual->false_cca < 100 && qual->vgc_level_reg > 0x32) { | ||
707 | rt2500pci_set_vgc(rt2x00dev, qual, --qual->vgc_level_reg); | 707 | rt2500pci_set_vgc(rt2x00dev, qual, --qual->vgc_level_reg); |
708 | qual->vgc_level = qual->vgc_level_reg; | ||
709 | } | ||
710 | } | 708 | } |
711 | 709 | ||
712 | /* | 710 | /* |
@@ -1035,7 +1033,8 @@ static void rt2500pci_toggle_rx(struct rt2x00_dev *rt2x00dev, | |||
1035 | static void rt2500pci_toggle_irq(struct rt2x00_dev *rt2x00dev, | 1033 | static void rt2500pci_toggle_irq(struct rt2x00_dev *rt2x00dev, |
1036 | enum dev_state state) | 1034 | enum dev_state state) |
1037 | { | 1035 | { |
1038 | int mask = (state == STATE_RADIO_IRQ_OFF); | 1036 | int mask = (state == STATE_RADIO_IRQ_OFF) || |
1037 | (state == STATE_RADIO_IRQ_OFF_ISR); | ||
1039 | u32 reg; | 1038 | u32 reg; |
1040 | 1039 | ||
1041 | /* | 1040 | /* |
@@ -1136,7 +1135,9 @@ static int rt2500pci_set_device_state(struct rt2x00_dev *rt2x00dev, | |||
1136 | rt2500pci_toggle_rx(rt2x00dev, state); | 1135 | rt2500pci_toggle_rx(rt2x00dev, state); |
1137 | break; | 1136 | break; |
1138 | case STATE_RADIO_IRQ_ON: | 1137 | case STATE_RADIO_IRQ_ON: |
1138 | case STATE_RADIO_IRQ_ON_ISR: | ||
1139 | case STATE_RADIO_IRQ_OFF: | 1139 | case STATE_RADIO_IRQ_OFF: |
1140 | case STATE_RADIO_IRQ_OFF_ISR: | ||
1140 | rt2500pci_toggle_irq(rt2x00dev, state); | 1141 | rt2500pci_toggle_irq(rt2x00dev, state); |
1141 | break; | 1142 | break; |
1142 | case STATE_DEEP_SLEEP: | 1143 | case STATE_DEEP_SLEEP: |
@@ -1369,23 +1370,10 @@ static void rt2500pci_txdone(struct rt2x00_dev *rt2x00dev, | |||
1369 | } | 1370 | } |
1370 | } | 1371 | } |
1371 | 1372 | ||
1372 | static irqreturn_t rt2500pci_interrupt(int irq, void *dev_instance) | 1373 | static irqreturn_t rt2500pci_interrupt_thread(int irq, void *dev_instance) |
1373 | { | 1374 | { |
1374 | struct rt2x00_dev *rt2x00dev = dev_instance; | 1375 | struct rt2x00_dev *rt2x00dev = dev_instance; |
1375 | u32 reg; | 1376 | u32 reg = rt2x00dev->irqvalue[0]; |
1376 | |||
1377 | /* | ||
1378 | * Get the interrupt sources & saved to local variable. | ||
1379 | * Write register value back to clear pending interrupts. | ||
1380 | */ | ||
1381 | rt2x00pci_register_read(rt2x00dev, CSR7, ®); | ||
1382 | rt2x00pci_register_write(rt2x00dev, CSR7, reg); | ||
1383 | |||
1384 | if (!reg) | ||
1385 | return IRQ_NONE; | ||
1386 | |||
1387 | if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) | ||
1388 | return IRQ_HANDLED; | ||
1389 | 1377 | ||
1390 | /* | 1378 | /* |
1391 | * Handle interrupts, walk through all bits | 1379 | * Handle interrupts, walk through all bits |
@@ -1423,9 +1411,41 @@ static irqreturn_t rt2500pci_interrupt(int irq, void *dev_instance) | |||
1423 | if (rt2x00_get_field32(reg, CSR7_TXDONE_TXRING)) | 1411 | if (rt2x00_get_field32(reg, CSR7_TXDONE_TXRING)) |
1424 | rt2500pci_txdone(rt2x00dev, QID_AC_BK); | 1412 | rt2500pci_txdone(rt2x00dev, QID_AC_BK); |
1425 | 1413 | ||
1414 | /* Enable interrupts again. */ | ||
1415 | rt2x00dev->ops->lib->set_device_state(rt2x00dev, | ||
1416 | STATE_RADIO_IRQ_ON_ISR); | ||
1417 | |||
1426 | return IRQ_HANDLED; | 1418 | return IRQ_HANDLED; |
1427 | } | 1419 | } |
1428 | 1420 | ||
1421 | static irqreturn_t rt2500pci_interrupt(int irq, void *dev_instance) | ||
1422 | { | ||
1423 | struct rt2x00_dev *rt2x00dev = dev_instance; | ||
1424 | u32 reg; | ||
1425 | |||
1426 | /* | ||
1427 | * Get the interrupt sources & saved to local variable. | ||
1428 | * Write register value back to clear pending interrupts. | ||
1429 | */ | ||
1430 | rt2x00pci_register_read(rt2x00dev, CSR7, ®); | ||
1431 | rt2x00pci_register_write(rt2x00dev, CSR7, reg); | ||
1432 | |||
1433 | if (!reg) | ||
1434 | return IRQ_NONE; | ||
1435 | |||
1436 | if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) | ||
1437 | return IRQ_HANDLED; | ||
1438 | |||
1439 | /* Store irqvalues for use in the interrupt thread. */ | ||
1440 | rt2x00dev->irqvalue[0] = reg; | ||
1441 | |||
1442 | /* Disable interrupts, will be enabled again in the interrupt thread. */ | ||
1443 | rt2x00dev->ops->lib->set_device_state(rt2x00dev, | ||
1444 | STATE_RADIO_IRQ_OFF_ISR); | ||
1445 | |||
1446 | return IRQ_WAKE_THREAD; | ||
1447 | } | ||
1448 | |||
1429 | /* | 1449 | /* |
1430 | * Device probe functions. | 1450 | * Device probe functions. |
1431 | */ | 1451 | */ |
@@ -1557,9 +1577,8 @@ static int rt2500pci_init_eeprom(struct rt2x00_dev *rt2x00dev) | |||
1557 | * Check if the BBP tuning should be enabled. | 1577 | * Check if the BBP tuning should be enabled. |
1558 | */ | 1578 | */ |
1559 | rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC, &eeprom); | 1579 | rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC, &eeprom); |
1560 | 1580 | if (!rt2x00_get_field16(eeprom, EEPROM_NIC_DYN_BBP_TUNE)) | |
1561 | if (rt2x00_get_field16(eeprom, EEPROM_NIC_DYN_BBP_TUNE)) | 1581 | __set_bit(DRIVER_SUPPORT_LINK_TUNING, &rt2x00dev->flags); |
1562 | __set_bit(CONFIG_DISABLE_LINK_TUNING, &rt2x00dev->flags); | ||
1563 | 1582 | ||
1564 | /* | 1583 | /* |
1565 | * Read the RSSI <-> dBm offset information. | 1584 | * Read the RSSI <-> dBm offset information. |
@@ -1864,7 +1883,8 @@ static const struct ieee80211_ops rt2500pci_mac80211_ops = { | |||
1864 | .remove_interface = rt2x00mac_remove_interface, | 1883 | .remove_interface = rt2x00mac_remove_interface, |
1865 | .config = rt2x00mac_config, | 1884 | .config = rt2x00mac_config, |
1866 | .configure_filter = rt2x00mac_configure_filter, | 1885 | .configure_filter = rt2x00mac_configure_filter, |
1867 | .set_tim = rt2x00mac_set_tim, | 1886 | .sw_scan_start = rt2x00mac_sw_scan_start, |
1887 | .sw_scan_complete = rt2x00mac_sw_scan_complete, | ||
1868 | .get_stats = rt2x00mac_get_stats, | 1888 | .get_stats = rt2x00mac_get_stats, |
1869 | .bss_info_changed = rt2x00mac_bss_info_changed, | 1889 | .bss_info_changed = rt2x00mac_bss_info_changed, |
1870 | .conf_tx = rt2x00mac_conf_tx, | 1890 | .conf_tx = rt2x00mac_conf_tx, |
@@ -1875,6 +1895,7 @@ static const struct ieee80211_ops rt2500pci_mac80211_ops = { | |||
1875 | 1895 | ||
1876 | static const struct rt2x00lib_ops rt2500pci_rt2x00_ops = { | 1896 | static const struct rt2x00lib_ops rt2500pci_rt2x00_ops = { |
1877 | .irq_handler = rt2500pci_interrupt, | 1897 | .irq_handler = rt2500pci_interrupt, |
1898 | .irq_handler_thread = rt2500pci_interrupt_thread, | ||
1878 | .probe_hw = rt2500pci_probe_hw, | 1899 | .probe_hw = rt2500pci_probe_hw, |
1879 | .initialize = rt2x00pci_initialize, | 1900 | .initialize = rt2x00pci_initialize, |
1880 | .uninitialize = rt2x00pci_uninitialize, | 1901 | .uninitialize = rt2x00pci_uninitialize, |
diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c index 44205526013f..242d59558b79 100644 --- a/drivers/net/wireless/rt2x00/rt2500usb.c +++ b/drivers/net/wireless/rt2x00/rt2500usb.c | |||
@@ -1004,7 +1004,9 @@ static int rt2500usb_set_device_state(struct rt2x00_dev *rt2x00dev, | |||
1004 | rt2500usb_toggle_rx(rt2x00dev, state); | 1004 | rt2500usb_toggle_rx(rt2x00dev, state); |
1005 | break; | 1005 | break; |
1006 | case STATE_RADIO_IRQ_ON: | 1006 | case STATE_RADIO_IRQ_ON: |
1007 | case STATE_RADIO_IRQ_ON_ISR: | ||
1007 | case STATE_RADIO_IRQ_OFF: | 1008 | case STATE_RADIO_IRQ_OFF: |
1009 | case STATE_RADIO_IRQ_OFF_ISR: | ||
1008 | /* No support, but no error either */ | 1010 | /* No support, but no error either */ |
1009 | break; | 1011 | break; |
1010 | case STATE_DEEP_SLEEP: | 1012 | case STATE_DEEP_SLEEP: |
@@ -1471,13 +1473,6 @@ static int rt2500usb_init_eeprom(struct rt2x00_dev *rt2x00dev) | |||
1471 | __set_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags); | 1473 | __set_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags); |
1472 | 1474 | ||
1473 | /* | 1475 | /* |
1474 | * Check if the BBP tuning should be disabled. | ||
1475 | */ | ||
1476 | rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC, &eeprom); | ||
1477 | if (rt2x00_get_field16(eeprom, EEPROM_NIC_DYN_BBP_TUNE)) | ||
1478 | __set_bit(CONFIG_DISABLE_LINK_TUNING, &rt2x00dev->flags); | ||
1479 | |||
1480 | /* | ||
1481 | * Read the RSSI <-> dBm offset information. | 1476 | * Read the RSSI <-> dBm offset information. |
1482 | */ | 1477 | */ |
1483 | rt2x00_eeprom_read(rt2x00dev, EEPROM_CALIBRATE_OFFSET, &eeprom); | 1478 | rt2x00_eeprom_read(rt2x00dev, EEPROM_CALIBRATE_OFFSET, &eeprom); |
@@ -1743,7 +1738,7 @@ static int rt2500usb_probe_hw(struct rt2x00_dev *rt2x00dev) | |||
1743 | __set_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags); | 1738 | __set_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags); |
1744 | __set_bit(DRIVER_REQUIRE_COPY_IV, &rt2x00dev->flags); | 1739 | __set_bit(DRIVER_REQUIRE_COPY_IV, &rt2x00dev->flags); |
1745 | } | 1740 | } |
1746 | __set_bit(CONFIG_DISABLE_LINK_TUNING, &rt2x00dev->flags); | 1741 | __set_bit(DRIVER_SUPPORT_WATCHDOG, &rt2x00dev->flags); |
1747 | 1742 | ||
1748 | /* | 1743 | /* |
1749 | * Set the rssi offset. | 1744 | * Set the rssi offset. |
@@ -1763,6 +1758,8 @@ static const struct ieee80211_ops rt2500usb_mac80211_ops = { | |||
1763 | .configure_filter = rt2x00mac_configure_filter, | 1758 | .configure_filter = rt2x00mac_configure_filter, |
1764 | .set_tim = rt2x00mac_set_tim, | 1759 | .set_tim = rt2x00mac_set_tim, |
1765 | .set_key = rt2x00mac_set_key, | 1760 | .set_key = rt2x00mac_set_key, |
1761 | .sw_scan_start = rt2x00mac_sw_scan_start, | ||
1762 | .sw_scan_complete = rt2x00mac_sw_scan_complete, | ||
1766 | .get_stats = rt2x00mac_get_stats, | 1763 | .get_stats = rt2x00mac_get_stats, |
1767 | .bss_info_changed = rt2x00mac_bss_info_changed, | 1764 | .bss_info_changed = rt2x00mac_bss_info_changed, |
1768 | .conf_tx = rt2x00mac_conf_tx, | 1765 | .conf_tx = rt2x00mac_conf_tx, |
@@ -1778,6 +1775,7 @@ static const struct rt2x00lib_ops rt2500usb_rt2x00_ops = { | |||
1778 | .rfkill_poll = rt2500usb_rfkill_poll, | 1775 | .rfkill_poll = rt2500usb_rfkill_poll, |
1779 | .link_stats = rt2500usb_link_stats, | 1776 | .link_stats = rt2500usb_link_stats, |
1780 | .reset_tuner = rt2500usb_reset_tuner, | 1777 | .reset_tuner = rt2500usb_reset_tuner, |
1778 | .watchdog = rt2x00usb_watchdog, | ||
1781 | .write_tx_desc = rt2500usb_write_tx_desc, | 1779 | .write_tx_desc = rt2500usb_write_tx_desc, |
1782 | .write_beacon = rt2500usb_write_beacon, | 1780 | .write_beacon = rt2500usb_write_beacon, |
1783 | .get_tx_data_len = rt2500usb_get_tx_data_len, | 1781 | .get_tx_data_len = rt2500usb_get_tx_data_len, |
diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h index 552f9f4c73d6..ed4ebcdde7c9 100644 --- a/drivers/net/wireless/rt2x00/rt2800.h +++ b/drivers/net/wireless/rt2x00/rt2800.h | |||
@@ -74,7 +74,7 @@ | |||
74 | * Signal information. | 74 | * Signal information. |
75 | * Default offset is required for RSSI <-> dBm conversion. | 75 | * Default offset is required for RSSI <-> dBm conversion. |
76 | */ | 76 | */ |
77 | #define DEFAULT_RSSI_OFFSET 120 /* FIXME */ | 77 | #define DEFAULT_RSSI_OFFSET 120 |
78 | 78 | ||
79 | /* | 79 | /* |
80 | * Register layout information. | 80 | * Register layout information. |
@@ -719,14 +719,20 @@ | |||
719 | #define TBTT_TIMER 0x1124 | 719 | #define TBTT_TIMER 0x1124 |
720 | 720 | ||
721 | /* | 721 | /* |
722 | * INT_TIMER_CFG: | 722 | * INT_TIMER_CFG: timer configuration |
723 | * PRE_TBTT_TIMER: leadtime to tbtt for pretbtt interrupt in units of 1/16 TU | ||
724 | * GP_TIMER: period of general purpose timer in units of 1/16 TU | ||
723 | */ | 725 | */ |
724 | #define INT_TIMER_CFG 0x1128 | 726 | #define INT_TIMER_CFG 0x1128 |
727 | #define INT_TIMER_CFG_PRE_TBTT_TIMER FIELD32(0x0000ffff) | ||
728 | #define INT_TIMER_CFG_GP_TIMER FIELD32(0xffff0000) | ||
725 | 729 | ||
726 | /* | 730 | /* |
727 | * INT_TIMER_EN: GP-timer and pre-tbtt Int enable | 731 | * INT_TIMER_EN: GP-timer and pre-tbtt Int enable |
728 | */ | 732 | */ |
729 | #define INT_TIMER_EN 0x112c | 733 | #define INT_TIMER_EN 0x112c |
734 | #define INT_TIMER_EN_PRE_TBTT_TIMER FIELD32(0x00000001) | ||
735 | #define INT_TIMER_EN_GP_TIMER FIELD32(0x00000002) | ||
730 | 736 | ||
731 | /* | 737 | /* |
732 | * CH_IDLE_STA: channel idle time | 738 | * CH_IDLE_STA: channel idle time |
@@ -803,6 +809,18 @@ | |||
803 | #define EDCA_TID_AC_MAP 0x1310 | 809 | #define EDCA_TID_AC_MAP 0x1310 |
804 | 810 | ||
805 | /* | 811 | /* |
812 | * TX_PWR_CFG: | ||
813 | */ | ||
814 | #define TX_PWR_CFG_RATE0 FIELD32(0x0000000f) | ||
815 | #define TX_PWR_CFG_RATE1 FIELD32(0x000000f0) | ||
816 | #define TX_PWR_CFG_RATE2 FIELD32(0x00000f00) | ||
817 | #define TX_PWR_CFG_RATE3 FIELD32(0x0000f000) | ||
818 | #define TX_PWR_CFG_RATE4 FIELD32(0x000f0000) | ||
819 | #define TX_PWR_CFG_RATE5 FIELD32(0x00f00000) | ||
820 | #define TX_PWR_CFG_RATE6 FIELD32(0x0f000000) | ||
821 | #define TX_PWR_CFG_RATE7 FIELD32(0xf0000000) | ||
822 | |||
823 | /* | ||
806 | * TX_PWR_CFG_0: | 824 | * TX_PWR_CFG_0: |
807 | */ | 825 | */ |
808 | #define TX_PWR_CFG_0 0x1314 | 826 | #define TX_PWR_CFG_0 0x1314 |
@@ -1853,9 +1871,15 @@ struct mac_iveiv_entry { | |||
1853 | #define EEPROM_TXPOWER_A_2 FIELD16(0xff00) | 1871 | #define EEPROM_TXPOWER_A_2 FIELD16(0xff00) |
1854 | 1872 | ||
1855 | /* | 1873 | /* |
1856 | * EEPROM TXpower byrate: 20MHZ power | 1874 | * EEPROM TXPOWER by rate: tx power per tx rate for HT20 mode |
1857 | */ | 1875 | */ |
1858 | #define EEPROM_TXPOWER_BYRATE 0x006f | 1876 | #define EEPROM_TXPOWER_BYRATE 0x006f |
1877 | #define EEPROM_TXPOWER_BYRATE_SIZE 9 | ||
1878 | |||
1879 | #define EEPROM_TXPOWER_BYRATE_RATE0 FIELD16(0x000f) | ||
1880 | #define EEPROM_TXPOWER_BYRATE_RATE1 FIELD16(0x00f0) | ||
1881 | #define EEPROM_TXPOWER_BYRATE_RATE2 FIELD16(0x0f00) | ||
1882 | #define EEPROM_TXPOWER_BYRATE_RATE3 FIELD16(0xf000) | ||
1859 | 1883 | ||
1860 | /* | 1884 | /* |
1861 | * EEPROM BBP. | 1885 | * EEPROM BBP. |
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c index d3cf0cc39500..b66e0fd8f0fa 100644 --- a/drivers/net/wireless/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/rt2x00/rt2800lib.c | |||
@@ -33,6 +33,7 @@ | |||
33 | Abstract: rt2800 generic device routines. | 33 | Abstract: rt2800 generic device routines. |
34 | */ | 34 | */ |
35 | 35 | ||
36 | #include <linux/crc-ccitt.h> | ||
36 | #include <linux/kernel.h> | 37 | #include <linux/kernel.h> |
37 | #include <linux/module.h> | 38 | #include <linux/module.h> |
38 | #include <linux/slab.h> | 39 | #include <linux/slab.h> |
@@ -272,6 +273,160 @@ int rt2800_wait_wpdma_ready(struct rt2x00_dev *rt2x00dev) | |||
272 | } | 273 | } |
273 | EXPORT_SYMBOL_GPL(rt2800_wait_wpdma_ready); | 274 | EXPORT_SYMBOL_GPL(rt2800_wait_wpdma_ready); |
274 | 275 | ||
276 | static bool rt2800_check_firmware_crc(const u8 *data, const size_t len) | ||
277 | { | ||
278 | u16 fw_crc; | ||
279 | u16 crc; | ||
280 | |||
281 | /* | ||
282 | * The last 2 bytes in the firmware array are the crc checksum itself, | ||
283 | * this means that we should never pass those 2 bytes to the crc | ||
284 | * algorithm. | ||
285 | */ | ||
286 | fw_crc = (data[len - 2] << 8 | data[len - 1]); | ||
287 | |||
288 | /* | ||
289 | * Use the crc ccitt algorithm. | ||
290 | * This will return the same value as the legacy driver which | ||
291 | * used bit ordering reversion on the both the firmware bytes | ||
292 | * before input input as well as on the final output. | ||
293 | * Obviously using crc ccitt directly is much more efficient. | ||
294 | */ | ||
295 | crc = crc_ccitt(~0, data, len - 2); | ||
296 | |||
297 | /* | ||
298 | * There is a small difference between the crc-itu-t + bitrev and | ||
299 | * the crc-ccitt crc calculation. In the latter method the 2 bytes | ||
300 | * will be swapped, use swab16 to convert the crc to the correct | ||
301 | * value. | ||
302 | */ | ||
303 | crc = swab16(crc); | ||
304 | |||
305 | return fw_crc == crc; | ||
306 | } | ||
307 | |||
308 | int rt2800_check_firmware(struct rt2x00_dev *rt2x00dev, | ||
309 | const u8 *data, const size_t len) | ||
310 | { | ||
311 | size_t offset = 0; | ||
312 | size_t fw_len; | ||
313 | bool multiple; | ||
314 | |||
315 | /* | ||
316 | * PCI(e) & SOC devices require firmware with a length | ||
317 | * of 8kb. USB devices require firmware files with a length | ||
318 | * of 4kb. Certain USB chipsets however require different firmware, | ||
319 | * which Ralink only provides attached to the original firmware | ||
320 | * file. Thus for USB devices, firmware files have a length | ||
321 | * which is a multiple of 4kb. | ||
322 | */ | ||
323 | if (rt2x00_is_usb(rt2x00dev)) { | ||
324 | fw_len = 4096; | ||
325 | multiple = true; | ||
326 | } else { | ||
327 | fw_len = 8192; | ||
328 | multiple = true; | ||
329 | } | ||
330 | |||
331 | /* | ||
332 | * Validate the firmware length | ||
333 | */ | ||
334 | if (len != fw_len && (!multiple || (len % fw_len) != 0)) | ||
335 | return FW_BAD_LENGTH; | ||
336 | |||
337 | /* | ||
338 | * Check if the chipset requires one of the upper parts | ||
339 | * of the firmware. | ||
340 | */ | ||
341 | if (rt2x00_is_usb(rt2x00dev) && | ||
342 | !rt2x00_rt(rt2x00dev, RT2860) && | ||
343 | !rt2x00_rt(rt2x00dev, RT2872) && | ||
344 | !rt2x00_rt(rt2x00dev, RT3070) && | ||
345 | ((len / fw_len) == 1)) | ||
346 | return FW_BAD_VERSION; | ||
347 | |||
348 | /* | ||
349 | * 8kb firmware files must be checked as if it were | ||
350 | * 2 separate firmware files. | ||
351 | */ | ||
352 | while (offset < len) { | ||
353 | if (!rt2800_check_firmware_crc(data + offset, fw_len)) | ||
354 | return FW_BAD_CRC; | ||
355 | |||
356 | offset += fw_len; | ||
357 | } | ||
358 | |||
359 | return FW_OK; | ||
360 | } | ||
361 | EXPORT_SYMBOL_GPL(rt2800_check_firmware); | ||
362 | |||
363 | int rt2800_load_firmware(struct rt2x00_dev *rt2x00dev, | ||
364 | const u8 *data, const size_t len) | ||
365 | { | ||
366 | unsigned int i; | ||
367 | u32 reg; | ||
368 | |||
369 | /* | ||
370 | * Wait for stable hardware. | ||
371 | */ | ||
372 | for (i = 0; i < REGISTER_BUSY_COUNT; i++) { | ||
373 | rt2800_register_read(rt2x00dev, MAC_CSR0, ®); | ||
374 | if (reg && reg != ~0) | ||
375 | break; | ||
376 | msleep(1); | ||
377 | } | ||
378 | |||
379 | if (i == REGISTER_BUSY_COUNT) { | ||
380 | ERROR(rt2x00dev, "Unstable hardware.\n"); | ||
381 | return -EBUSY; | ||
382 | } | ||
383 | |||
384 | if (rt2x00_is_pci(rt2x00dev)) | ||
385 | rt2800_register_write(rt2x00dev, PWR_PIN_CFG, 0x00000002); | ||
386 | |||
387 | /* | ||
388 | * Disable DMA, will be reenabled later when enabling | ||
389 | * the radio. | ||
390 | */ | ||
391 | rt2800_register_read(rt2x00dev, WPDMA_GLO_CFG, ®); | ||
392 | rt2x00_set_field32(®, WPDMA_GLO_CFG_ENABLE_TX_DMA, 0); | ||
393 | rt2x00_set_field32(®, WPDMA_GLO_CFG_TX_DMA_BUSY, 0); | ||
394 | rt2x00_set_field32(®, WPDMA_GLO_CFG_ENABLE_RX_DMA, 0); | ||
395 | rt2x00_set_field32(®, WPDMA_GLO_CFG_RX_DMA_BUSY, 0); | ||
396 | rt2x00_set_field32(®, WPDMA_GLO_CFG_TX_WRITEBACK_DONE, 1); | ||
397 | rt2800_register_write(rt2x00dev, WPDMA_GLO_CFG, reg); | ||
398 | |||
399 | /* | ||
400 | * Write firmware to the device. | ||
401 | */ | ||
402 | rt2800_drv_write_firmware(rt2x00dev, data, len); | ||
403 | |||
404 | /* | ||
405 | * Wait for device to stabilize. | ||
406 | */ | ||
407 | for (i = 0; i < REGISTER_BUSY_COUNT; i++) { | ||
408 | rt2800_register_read(rt2x00dev, PBF_SYS_CTRL, ®); | ||
409 | if (rt2x00_get_field32(reg, PBF_SYS_CTRL_READY)) | ||
410 | break; | ||
411 | msleep(1); | ||
412 | } | ||
413 | |||
414 | if (i == REGISTER_BUSY_COUNT) { | ||
415 | ERROR(rt2x00dev, "PBF system register not ready.\n"); | ||
416 | return -EBUSY; | ||
417 | } | ||
418 | |||
419 | /* | ||
420 | * Initialize firmware. | ||
421 | */ | ||
422 | rt2800_register_write(rt2x00dev, H2M_BBP_AGENT, 0); | ||
423 | rt2800_register_write(rt2x00dev, H2M_MAILBOX_CSR, 0); | ||
424 | msleep(1); | ||
425 | |||
426 | return 0; | ||
427 | } | ||
428 | EXPORT_SYMBOL_GPL(rt2800_load_firmware); | ||
429 | |||
275 | void rt2800_write_txwi(__le32 *txwi, struct txentry_desc *txdesc) | 430 | void rt2800_write_txwi(__le32 *txwi, struct txentry_desc *txdesc) |
276 | { | 431 | { |
277 | u32 word; | 432 | u32 word; |
@@ -325,9 +480,53 @@ void rt2800_write_txwi(__le32 *txwi, struct txentry_desc *txdesc) | |||
325 | } | 480 | } |
326 | EXPORT_SYMBOL_GPL(rt2800_write_txwi); | 481 | EXPORT_SYMBOL_GPL(rt2800_write_txwi); |
327 | 482 | ||
328 | void rt2800_process_rxwi(struct sk_buff *skb, struct rxdone_entry_desc *rxdesc) | 483 | static int rt2800_agc_to_rssi(struct rt2x00_dev *rt2x00dev, int rxwi_w2) |
329 | { | 484 | { |
330 | __le32 *rxwi = (__le32 *) skb->data; | 485 | int rssi0 = rt2x00_get_field32(rxwi_w2, RXWI_W2_RSSI0); |
486 | int rssi1 = rt2x00_get_field32(rxwi_w2, RXWI_W2_RSSI1); | ||
487 | int rssi2 = rt2x00_get_field32(rxwi_w2, RXWI_W2_RSSI2); | ||
488 | u16 eeprom; | ||
489 | u8 offset0; | ||
490 | u8 offset1; | ||
491 | u8 offset2; | ||
492 | |||
493 | if (rt2x00dev->rx_status.band == IEEE80211_BAND_2GHZ) { | ||
494 | rt2x00_eeprom_read(rt2x00dev, EEPROM_RSSI_BG, &eeprom); | ||
495 | offset0 = rt2x00_get_field16(eeprom, EEPROM_RSSI_BG_OFFSET0); | ||
496 | offset1 = rt2x00_get_field16(eeprom, EEPROM_RSSI_BG_OFFSET1); | ||
497 | rt2x00_eeprom_read(rt2x00dev, EEPROM_RSSI_BG2, &eeprom); | ||
498 | offset2 = rt2x00_get_field16(eeprom, EEPROM_RSSI_BG2_OFFSET2); | ||
499 | } else { | ||
500 | rt2x00_eeprom_read(rt2x00dev, EEPROM_RSSI_A, &eeprom); | ||
501 | offset0 = rt2x00_get_field16(eeprom, EEPROM_RSSI_A_OFFSET0); | ||
502 | offset1 = rt2x00_get_field16(eeprom, EEPROM_RSSI_A_OFFSET1); | ||
503 | rt2x00_eeprom_read(rt2x00dev, EEPROM_RSSI_A2, &eeprom); | ||
504 | offset2 = rt2x00_get_field16(eeprom, EEPROM_RSSI_A2_OFFSET2); | ||
505 | } | ||
506 | |||
507 | /* | ||
508 | * Convert the value from the descriptor into the RSSI value | ||
509 | * If the value in the descriptor is 0, it is considered invalid | ||
510 | * and the default (extremely low) rssi value is assumed | ||
511 | */ | ||
512 | rssi0 = (rssi0) ? (-12 - offset0 - rt2x00dev->lna_gain - rssi0) : -128; | ||
513 | rssi1 = (rssi1) ? (-12 - offset1 - rt2x00dev->lna_gain - rssi1) : -128; | ||
514 | rssi2 = (rssi2) ? (-12 - offset2 - rt2x00dev->lna_gain - rssi2) : -128; | ||
515 | |||
516 | /* | ||
517 | * mac80211 only accepts a single RSSI value. Calculating the | ||
518 | * average doesn't deliver a fair answer either since -60:-60 would | ||
519 | * be considered equally good as -50:-70 while the second is the one | ||
520 | * which gives less energy... | ||
521 | */ | ||
522 | rssi0 = max(rssi0, rssi1); | ||
523 | return max(rssi0, rssi2); | ||
524 | } | ||
525 | |||
526 | void rt2800_process_rxwi(struct queue_entry *entry, | ||
527 | struct rxdone_entry_desc *rxdesc) | ||
528 | { | ||
529 | __le32 *rxwi = (__le32 *) entry->skb->data; | ||
331 | u32 word; | 530 | u32 word; |
332 | 531 | ||
333 | rt2x00_desc_read(rxwi, 0, &word); | 532 | rt2x00_desc_read(rxwi, 0, &word); |
@@ -358,14 +557,15 @@ void rt2800_process_rxwi(struct sk_buff *skb, struct rxdone_entry_desc *rxdesc) | |||
358 | 557 | ||
359 | rt2x00_desc_read(rxwi, 2, &word); | 558 | rt2x00_desc_read(rxwi, 2, &word); |
360 | 559 | ||
361 | rxdesc->rssi = | 560 | /* |
362 | (rt2x00_get_field32(word, RXWI_W2_RSSI0) + | 561 | * Convert descriptor AGC value to RSSI value. |
363 | rt2x00_get_field32(word, RXWI_W2_RSSI1)) / 2; | 562 | */ |
563 | rxdesc->rssi = rt2800_agc_to_rssi(entry->queue->rt2x00dev, word); | ||
364 | 564 | ||
365 | /* | 565 | /* |
366 | * Remove RXWI descriptor from start of buffer. | 566 | * Remove RXWI descriptor from start of buffer. |
367 | */ | 567 | */ |
368 | skb_pull(skb, RXWI_DESC_SIZE); | 568 | skb_pull(entry->skb, RXWI_DESC_SIZE); |
369 | } | 569 | } |
370 | EXPORT_SYMBOL_GPL(rt2800_process_rxwi); | 570 | EXPORT_SYMBOL_GPL(rt2800_process_rxwi); |
371 | 571 | ||
@@ -428,7 +628,7 @@ void rt2800_write_beacon(struct queue_entry *entry, struct txentry_desc *txdesc) | |||
428 | dev_kfree_skb_any(entry->skb); | 628 | dev_kfree_skb_any(entry->skb); |
429 | entry->skb = NULL; | 629 | entry->skb = NULL; |
430 | } | 630 | } |
431 | EXPORT_SYMBOL(rt2800_write_beacon); | 631 | EXPORT_SYMBOL_GPL(rt2800_write_beacon); |
432 | 632 | ||
433 | static void inline rt2800_clear_beacon(struct rt2x00_dev *rt2x00dev, | 633 | static void inline rt2800_clear_beacon(struct rt2x00_dev *rt2x00dev, |
434 | unsigned int beacon_base) | 634 | unsigned int beacon_base) |
@@ -760,8 +960,18 @@ void rt2800_config_intf(struct rt2x00_dev *rt2x00dev, struct rt2x00_intf *intf, | |||
760 | rt2x00_set_field32(®, BCN_TIME_CFG_TSF_TICKING, 1); | 960 | rt2x00_set_field32(®, BCN_TIME_CFG_TSF_TICKING, 1); |
761 | rt2x00_set_field32(®, BCN_TIME_CFG_TSF_SYNC, conf->sync); | 961 | rt2x00_set_field32(®, BCN_TIME_CFG_TSF_SYNC, conf->sync); |
762 | rt2x00_set_field32(®, BCN_TIME_CFG_TBTT_ENABLE, | 962 | rt2x00_set_field32(®, BCN_TIME_CFG_TBTT_ENABLE, |
763 | (conf->sync == TSF_SYNC_BEACON)); | 963 | (conf->sync == TSF_SYNC_ADHOC || |
964 | conf->sync == TSF_SYNC_AP_NONE)); | ||
764 | rt2800_register_write(rt2x00dev, BCN_TIME_CFG, reg); | 965 | rt2800_register_write(rt2x00dev, BCN_TIME_CFG, reg); |
966 | |||
967 | /* | ||
968 | * Enable pre tbtt interrupt for beaconing modes | ||
969 | */ | ||
970 | rt2800_register_read(rt2x00dev, INT_TIMER_EN, ®); | ||
971 | rt2x00_set_field32(®, INT_TIMER_EN_PRE_TBTT_TIMER, | ||
972 | (conf->sync == TSF_SYNC_AP_NONE)); | ||
973 | rt2800_register_write(rt2x00dev, INT_TIMER_EN, reg); | ||
974 | |||
765 | } | 975 | } |
766 | 976 | ||
767 | if (flags & CONFIG_UPDATE_MAC) { | 977 | if (flags & CONFIG_UPDATE_MAC) { |
@@ -1086,66 +1296,115 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev, | |||
1086 | } | 1296 | } |
1087 | 1297 | ||
1088 | static void rt2800_config_txpower(struct rt2x00_dev *rt2x00dev, | 1298 | static void rt2800_config_txpower(struct rt2x00_dev *rt2x00dev, |
1089 | const int txpower) | 1299 | const int max_txpower) |
1090 | { | 1300 | { |
1301 | u8 txpower; | ||
1302 | u8 max_value = (u8)max_txpower; | ||
1303 | u16 eeprom; | ||
1304 | int i; | ||
1091 | u32 reg; | 1305 | u32 reg; |
1092 | u32 value = TXPOWER_G_TO_DEV(txpower); | ||
1093 | u8 r1; | 1306 | u8 r1; |
1307 | u32 offset; | ||
1094 | 1308 | ||
1309 | /* | ||
1310 | * set to normal tx power mode: +/- 0dBm | ||
1311 | */ | ||
1095 | rt2800_bbp_read(rt2x00dev, 1, &r1); | 1312 | rt2800_bbp_read(rt2x00dev, 1, &r1); |
1096 | rt2x00_set_field8(&r1, BBP1_TX_POWER, 0); | 1313 | rt2x00_set_field8(&r1, BBP1_TX_POWER, 0); |
1097 | rt2800_bbp_write(rt2x00dev, 1, r1); | 1314 | rt2800_bbp_write(rt2x00dev, 1, r1); |
1098 | 1315 | ||
1099 | rt2800_register_read(rt2x00dev, TX_PWR_CFG_0, ®); | 1316 | /* |
1100 | rt2x00_set_field32(®, TX_PWR_CFG_0_1MBS, value); | 1317 | * The eeprom contains the tx power values for each rate. These |
1101 | rt2x00_set_field32(®, TX_PWR_CFG_0_2MBS, value); | 1318 | * values map to 100% tx power. Each 16bit word contains four tx |
1102 | rt2x00_set_field32(®, TX_PWR_CFG_0_55MBS, value); | 1319 | * power values and the order is the same as used in the TX_PWR_CFG |
1103 | rt2x00_set_field32(®, TX_PWR_CFG_0_11MBS, value); | 1320 | * registers. |
1104 | rt2x00_set_field32(®, TX_PWR_CFG_0_6MBS, value); | 1321 | */ |
1105 | rt2x00_set_field32(®, TX_PWR_CFG_0_9MBS, value); | 1322 | offset = TX_PWR_CFG_0; |
1106 | rt2x00_set_field32(®, TX_PWR_CFG_0_12MBS, value); | 1323 | |
1107 | rt2x00_set_field32(®, TX_PWR_CFG_0_18MBS, value); | 1324 | for (i = 0; i < EEPROM_TXPOWER_BYRATE_SIZE; i += 2) { |
1108 | rt2800_register_write(rt2x00dev, TX_PWR_CFG_0, reg); | 1325 | /* just to be safe */ |
1109 | 1326 | if (offset > TX_PWR_CFG_4) | |
1110 | rt2800_register_read(rt2x00dev, TX_PWR_CFG_1, ®); | 1327 | break; |
1111 | rt2x00_set_field32(®, TX_PWR_CFG_1_24MBS, value); | 1328 | |
1112 | rt2x00_set_field32(®, TX_PWR_CFG_1_36MBS, value); | 1329 | rt2800_register_read(rt2x00dev, offset, ®); |
1113 | rt2x00_set_field32(®, TX_PWR_CFG_1_48MBS, value); | 1330 | |
1114 | rt2x00_set_field32(®, TX_PWR_CFG_1_54MBS, value); | 1331 | /* read the next four txpower values */ |
1115 | rt2x00_set_field32(®, TX_PWR_CFG_1_MCS0, value); | 1332 | rt2x00_eeprom_read(rt2x00dev, EEPROM_TXPOWER_BYRATE + i, |
1116 | rt2x00_set_field32(®, TX_PWR_CFG_1_MCS1, value); | 1333 | &eeprom); |
1117 | rt2x00_set_field32(®, TX_PWR_CFG_1_MCS2, value); | 1334 | |
1118 | rt2x00_set_field32(®, TX_PWR_CFG_1_MCS3, value); | 1335 | /* TX_PWR_CFG_0: 1MBS, TX_PWR_CFG_1: 24MBS, |
1119 | rt2800_register_write(rt2x00dev, TX_PWR_CFG_1, reg); | 1336 | * TX_PWR_CFG_2: MCS4, TX_PWR_CFG_3: MCS12, |
1120 | 1337 | * TX_PWR_CFG_4: unknown */ | |
1121 | rt2800_register_read(rt2x00dev, TX_PWR_CFG_2, ®); | 1338 | txpower = rt2x00_get_field16(eeprom, |
1122 | rt2x00_set_field32(®, TX_PWR_CFG_2_MCS4, value); | 1339 | EEPROM_TXPOWER_BYRATE_RATE0); |
1123 | rt2x00_set_field32(®, TX_PWR_CFG_2_MCS5, value); | 1340 | rt2x00_set_field32(®, TX_PWR_CFG_RATE0, |
1124 | rt2x00_set_field32(®, TX_PWR_CFG_2_MCS6, value); | 1341 | min(txpower, max_value)); |
1125 | rt2x00_set_field32(®, TX_PWR_CFG_2_MCS7, value); | 1342 | |
1126 | rt2x00_set_field32(®, TX_PWR_CFG_2_MCS8, value); | 1343 | /* TX_PWR_CFG_0: 2MBS, TX_PWR_CFG_1: 36MBS, |
1127 | rt2x00_set_field32(®, TX_PWR_CFG_2_MCS9, value); | 1344 | * TX_PWR_CFG_2: MCS5, TX_PWR_CFG_3: MCS13, |
1128 | rt2x00_set_field32(®, TX_PWR_CFG_2_MCS10, value); | 1345 | * TX_PWR_CFG_4: unknown */ |
1129 | rt2x00_set_field32(®, TX_PWR_CFG_2_MCS11, value); | 1346 | txpower = rt2x00_get_field16(eeprom, |
1130 | rt2800_register_write(rt2x00dev, TX_PWR_CFG_2, reg); | 1347 | EEPROM_TXPOWER_BYRATE_RATE1); |
1131 | 1348 | rt2x00_set_field32(®, TX_PWR_CFG_RATE1, | |
1132 | rt2800_register_read(rt2x00dev, TX_PWR_CFG_3, ®); | 1349 | min(txpower, max_value)); |
1133 | rt2x00_set_field32(®, TX_PWR_CFG_3_MCS12, value); | 1350 | |
1134 | rt2x00_set_field32(®, TX_PWR_CFG_3_MCS13, value); | 1351 | /* TX_PWR_CFG_0: 55MBS, TX_PWR_CFG_1: 48MBS, |
1135 | rt2x00_set_field32(®, TX_PWR_CFG_3_MCS14, value); | 1352 | * TX_PWR_CFG_2: MCS6, TX_PWR_CFG_3: MCS14, |
1136 | rt2x00_set_field32(®, TX_PWR_CFG_3_MCS15, value); | 1353 | * TX_PWR_CFG_4: unknown */ |
1137 | rt2x00_set_field32(®, TX_PWR_CFG_3_UKNOWN1, value); | 1354 | txpower = rt2x00_get_field16(eeprom, |
1138 | rt2x00_set_field32(®, TX_PWR_CFG_3_UKNOWN2, value); | 1355 | EEPROM_TXPOWER_BYRATE_RATE2); |
1139 | rt2x00_set_field32(®, TX_PWR_CFG_3_UKNOWN3, value); | 1356 | rt2x00_set_field32(®, TX_PWR_CFG_RATE2, |
1140 | rt2x00_set_field32(®, TX_PWR_CFG_3_UKNOWN4, value); | 1357 | min(txpower, max_value)); |
1141 | rt2800_register_write(rt2x00dev, TX_PWR_CFG_3, reg); | 1358 | |
1142 | 1359 | /* TX_PWR_CFG_0: 11MBS, TX_PWR_CFG_1: 54MBS, | |
1143 | rt2800_register_read(rt2x00dev, TX_PWR_CFG_4, ®); | 1360 | * TX_PWR_CFG_2: MCS7, TX_PWR_CFG_3: MCS15, |
1144 | rt2x00_set_field32(®, TX_PWR_CFG_4_UKNOWN5, value); | 1361 | * TX_PWR_CFG_4: unknown */ |
1145 | rt2x00_set_field32(®, TX_PWR_CFG_4_UKNOWN6, value); | 1362 | txpower = rt2x00_get_field16(eeprom, |
1146 | rt2x00_set_field32(®, TX_PWR_CFG_4_UKNOWN7, value); | 1363 | EEPROM_TXPOWER_BYRATE_RATE3); |
1147 | rt2x00_set_field32(®, TX_PWR_CFG_4_UKNOWN8, value); | 1364 | rt2x00_set_field32(®, TX_PWR_CFG_RATE3, |
1148 | rt2800_register_write(rt2x00dev, TX_PWR_CFG_4, reg); | 1365 | min(txpower, max_value)); |
1366 | |||
1367 | /* read the next four txpower values */ | ||
1368 | rt2x00_eeprom_read(rt2x00dev, EEPROM_TXPOWER_BYRATE + i + 1, | ||
1369 | &eeprom); | ||
1370 | |||
1371 | /* TX_PWR_CFG_0: 6MBS, TX_PWR_CFG_1: MCS0, | ||
1372 | * TX_PWR_CFG_2: MCS8, TX_PWR_CFG_3: unknown, | ||
1373 | * TX_PWR_CFG_4: unknown */ | ||
1374 | txpower = rt2x00_get_field16(eeprom, | ||
1375 | EEPROM_TXPOWER_BYRATE_RATE0); | ||
1376 | rt2x00_set_field32(®, TX_PWR_CFG_RATE4, | ||
1377 | min(txpower, max_value)); | ||
1378 | |||
1379 | /* TX_PWR_CFG_0: 9MBS, TX_PWR_CFG_1: MCS1, | ||
1380 | * TX_PWR_CFG_2: MCS9, TX_PWR_CFG_3: unknown, | ||
1381 | * TX_PWR_CFG_4: unknown */ | ||
1382 | txpower = rt2x00_get_field16(eeprom, | ||
1383 | EEPROM_TXPOWER_BYRATE_RATE1); | ||
1384 | rt2x00_set_field32(®, TX_PWR_CFG_RATE5, | ||
1385 | min(txpower, max_value)); | ||
1386 | |||
1387 | /* TX_PWR_CFG_0: 12MBS, TX_PWR_CFG_1: MCS2, | ||
1388 | * TX_PWR_CFG_2: MCS10, TX_PWR_CFG_3: unknown, | ||
1389 | * TX_PWR_CFG_4: unknown */ | ||
1390 | txpower = rt2x00_get_field16(eeprom, | ||
1391 | EEPROM_TXPOWER_BYRATE_RATE2); | ||
1392 | rt2x00_set_field32(®, TX_PWR_CFG_RATE6, | ||
1393 | min(txpower, max_value)); | ||
1394 | |||
1395 | /* TX_PWR_CFG_0: 18MBS, TX_PWR_CFG_1: MCS3, | ||
1396 | * TX_PWR_CFG_2: MCS11, TX_PWR_CFG_3: unknown, | ||
1397 | * TX_PWR_CFG_4: unknown */ | ||
1398 | txpower = rt2x00_get_field16(eeprom, | ||
1399 | EEPROM_TXPOWER_BYRATE_RATE3); | ||
1400 | rt2x00_set_field32(®, TX_PWR_CFG_RATE7, | ||
1401 | min(txpower, max_value)); | ||
1402 | |||
1403 | rt2800_register_write(rt2x00dev, offset, reg); | ||
1404 | |||
1405 | /* next TX_PWR_CFG register */ | ||
1406 | offset += 4; | ||
1407 | } | ||
1149 | } | 1408 | } |
1150 | 1409 | ||
1151 | static void rt2800_config_retry_limit(struct rt2x00_dev *rt2x00dev, | 1410 | static void rt2800_config_retry_limit(struct rt2x00_dev *rt2x00dev, |
@@ -1316,7 +1575,7 @@ int rt2800_init_registers(struct rt2x00_dev *rt2x00dev) | |||
1316 | rt2800_register_write(rt2x00dev, MAC_SYS_CTRL, 0x00000000); | 1575 | rt2800_register_write(rt2x00dev, MAC_SYS_CTRL, 0x00000000); |
1317 | 1576 | ||
1318 | rt2800_register_read(rt2x00dev, BCN_TIME_CFG, ®); | 1577 | rt2800_register_read(rt2x00dev, BCN_TIME_CFG, ®); |
1319 | rt2x00_set_field32(®, BCN_TIME_CFG_BEACON_INTERVAL, 0); | 1578 | rt2x00_set_field32(®, BCN_TIME_CFG_BEACON_INTERVAL, 1600); |
1320 | rt2x00_set_field32(®, BCN_TIME_CFG_TSF_TICKING, 0); | 1579 | rt2x00_set_field32(®, BCN_TIME_CFG_TSF_TICKING, 0); |
1321 | rt2x00_set_field32(®, BCN_TIME_CFG_TSF_SYNC, 0); | 1580 | rt2x00_set_field32(®, BCN_TIME_CFG_TSF_SYNC, 0); |
1322 | rt2x00_set_field32(®, BCN_TIME_CFG_TBTT_ENABLE, 0); | 1581 | rt2x00_set_field32(®, BCN_TIME_CFG_TBTT_ENABLE, 0); |
@@ -1638,6 +1897,13 @@ int rt2800_init_registers(struct rt2x00_dev *rt2x00dev) | |||
1638 | rt2800_register_read(rt2x00dev, TX_STA_CNT1, ®); | 1897 | rt2800_register_read(rt2x00dev, TX_STA_CNT1, ®); |
1639 | rt2800_register_read(rt2x00dev, TX_STA_CNT2, ®); | 1898 | rt2800_register_read(rt2x00dev, TX_STA_CNT2, ®); |
1640 | 1899 | ||
1900 | /* | ||
1901 | * Setup leadtime for pre tbtt interrupt to 6ms | ||
1902 | */ | ||
1903 | rt2800_register_read(rt2x00dev, INT_TIMER_CFG, ®); | ||
1904 | rt2x00_set_field32(®, INT_TIMER_CFG_PRE_TBTT_TIMER, 6 << 4); | ||
1905 | rt2800_register_write(rt2x00dev, INT_TIMER_CFG, reg); | ||
1906 | |||
1641 | return 0; | 1907 | return 0; |
1642 | } | 1908 | } |
1643 | EXPORT_SYMBOL_GPL(rt2800_init_registers); | 1909 | EXPORT_SYMBOL_GPL(rt2800_init_registers); |
@@ -2630,8 +2896,8 @@ EXPORT_SYMBOL_GPL(rt2800_probe_hw_mode); | |||
2630 | /* | 2896 | /* |
2631 | * IEEE80211 stack callback functions. | 2897 | * IEEE80211 stack callback functions. |
2632 | */ | 2898 | */ |
2633 | static void rt2800_get_tkip_seq(struct ieee80211_hw *hw, u8 hw_key_idx, | 2899 | void rt2800_get_tkip_seq(struct ieee80211_hw *hw, u8 hw_key_idx, u32 *iv32, |
2634 | u32 *iv32, u16 *iv16) | 2900 | u16 *iv16) |
2635 | { | 2901 | { |
2636 | struct rt2x00_dev *rt2x00dev = hw->priv; | 2902 | struct rt2x00_dev *rt2x00dev = hw->priv; |
2637 | struct mac_iveiv_entry iveiv_entry; | 2903 | struct mac_iveiv_entry iveiv_entry; |
@@ -2644,8 +2910,9 @@ static void rt2800_get_tkip_seq(struct ieee80211_hw *hw, u8 hw_key_idx, | |||
2644 | memcpy(iv16, &iveiv_entry.iv[0], sizeof(*iv16)); | 2910 | memcpy(iv16, &iveiv_entry.iv[0], sizeof(*iv16)); |
2645 | memcpy(iv32, &iveiv_entry.iv[4], sizeof(*iv32)); | 2911 | memcpy(iv32, &iveiv_entry.iv[4], sizeof(*iv32)); |
2646 | } | 2912 | } |
2913 | EXPORT_SYMBOL_GPL(rt2800_get_tkip_seq); | ||
2647 | 2914 | ||
2648 | static int rt2800_set_rts_threshold(struct ieee80211_hw *hw, u32 value) | 2915 | int rt2800_set_rts_threshold(struct ieee80211_hw *hw, u32 value) |
2649 | { | 2916 | { |
2650 | struct rt2x00_dev *rt2x00dev = hw->priv; | 2917 | struct rt2x00_dev *rt2x00dev = hw->priv; |
2651 | u32 reg; | 2918 | u32 reg; |
@@ -2681,9 +2948,10 @@ static int rt2800_set_rts_threshold(struct ieee80211_hw *hw, u32 value) | |||
2681 | 2948 | ||
2682 | return 0; | 2949 | return 0; |
2683 | } | 2950 | } |
2951 | EXPORT_SYMBOL_GPL(rt2800_set_rts_threshold); | ||
2684 | 2952 | ||
2685 | static int rt2800_conf_tx(struct ieee80211_hw *hw, u16 queue_idx, | 2953 | int rt2800_conf_tx(struct ieee80211_hw *hw, u16 queue_idx, |
2686 | const struct ieee80211_tx_queue_params *params) | 2954 | const struct ieee80211_tx_queue_params *params) |
2687 | { | 2955 | { |
2688 | struct rt2x00_dev *rt2x00dev = hw->priv; | 2956 | struct rt2x00_dev *rt2x00dev = hw->priv; |
2689 | struct data_queue *queue; | 2957 | struct data_queue *queue; |
@@ -2748,8 +3016,9 @@ static int rt2800_conf_tx(struct ieee80211_hw *hw, u16 queue_idx, | |||
2748 | 3016 | ||
2749 | return 0; | 3017 | return 0; |
2750 | } | 3018 | } |
3019 | EXPORT_SYMBOL_GPL(rt2800_conf_tx); | ||
2751 | 3020 | ||
2752 | static u64 rt2800_get_tsf(struct ieee80211_hw *hw) | 3021 | u64 rt2800_get_tsf(struct ieee80211_hw *hw) |
2753 | { | 3022 | { |
2754 | struct rt2x00_dev *rt2x00dev = hw->priv; | 3023 | struct rt2x00_dev *rt2x00dev = hw->priv; |
2755 | u64 tsf; | 3024 | u64 tsf; |
@@ -2762,12 +3031,11 @@ static u64 rt2800_get_tsf(struct ieee80211_hw *hw) | |||
2762 | 3031 | ||
2763 | return tsf; | 3032 | return tsf; |
2764 | } | 3033 | } |
3034 | EXPORT_SYMBOL_GPL(rt2800_get_tsf); | ||
2765 | 3035 | ||
2766 | static int rt2800_ampdu_action(struct ieee80211_hw *hw, | 3036 | int rt2800_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, |
2767 | struct ieee80211_vif *vif, | 3037 | enum ieee80211_ampdu_mlme_action action, |
2768 | enum ieee80211_ampdu_mlme_action action, | 3038 | struct ieee80211_sta *sta, u16 tid, u16 *ssn) |
2769 | struct ieee80211_sta *sta, | ||
2770 | u16 tid, u16 *ssn) | ||
2771 | { | 3039 | { |
2772 | int ret = 0; | 3040 | int ret = 0; |
2773 | 3041 | ||
@@ -2791,27 +3059,7 @@ static int rt2800_ampdu_action(struct ieee80211_hw *hw, | |||
2791 | 3059 | ||
2792 | return ret; | 3060 | return ret; |
2793 | } | 3061 | } |
2794 | 3062 | EXPORT_SYMBOL_GPL(rt2800_ampdu_action); | |
2795 | const struct ieee80211_ops rt2800_mac80211_ops = { | ||
2796 | .tx = rt2x00mac_tx, | ||
2797 | .start = rt2x00mac_start, | ||
2798 | .stop = rt2x00mac_stop, | ||
2799 | .add_interface = rt2x00mac_add_interface, | ||
2800 | .remove_interface = rt2x00mac_remove_interface, | ||
2801 | .config = rt2x00mac_config, | ||
2802 | .configure_filter = rt2x00mac_configure_filter, | ||
2803 | .set_tim = rt2x00mac_set_tim, | ||
2804 | .set_key = rt2x00mac_set_key, | ||
2805 | .get_stats = rt2x00mac_get_stats, | ||
2806 | .get_tkip_seq = rt2800_get_tkip_seq, | ||
2807 | .set_rts_threshold = rt2800_set_rts_threshold, | ||
2808 | .bss_info_changed = rt2x00mac_bss_info_changed, | ||
2809 | .conf_tx = rt2800_conf_tx, | ||
2810 | .get_tsf = rt2800_get_tsf, | ||
2811 | .rfkill_poll = rt2x00mac_rfkill_poll, | ||
2812 | .ampdu_action = rt2800_ampdu_action, | ||
2813 | }; | ||
2814 | EXPORT_SYMBOL_GPL(rt2800_mac80211_ops); | ||
2815 | 3063 | ||
2816 | MODULE_AUTHOR(DRV_PROJECT ", Bartlomiej Zolnierkiewicz"); | 3064 | MODULE_AUTHOR(DRV_PROJECT ", Bartlomiej Zolnierkiewicz"); |
2817 | MODULE_VERSION(DRV_VERSION); | 3065 | MODULE_VERSION(DRV_VERSION); |
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.h b/drivers/net/wireless/rt2x00/rt2800lib.h index 8313dbf441a5..091641e3c5e2 100644 --- a/drivers/net/wireless/rt2x00/rt2800lib.h +++ b/drivers/net/wireless/rt2x00/rt2800lib.h | |||
@@ -41,6 +41,8 @@ struct rt2800_ops { | |||
41 | const unsigned int offset, | 41 | const unsigned int offset, |
42 | const struct rt2x00_field32 field, u32 *reg); | 42 | const struct rt2x00_field32 field, u32 *reg); |
43 | 43 | ||
44 | int (*drv_write_firmware)(struct rt2x00_dev *rt2x00dev, | ||
45 | const u8 *data, const size_t len); | ||
44 | int (*drv_init_registers)(struct rt2x00_dev *rt2x00dev); | 46 | int (*drv_init_registers)(struct rt2x00_dev *rt2x00dev); |
45 | }; | 47 | }; |
46 | 48 | ||
@@ -48,7 +50,7 @@ static inline void rt2800_register_read(struct rt2x00_dev *rt2x00dev, | |||
48 | const unsigned int offset, | 50 | const unsigned int offset, |
49 | u32 *value) | 51 | u32 *value) |
50 | { | 52 | { |
51 | const struct rt2800_ops *rt2800ops = rt2x00dev->priv; | 53 | const struct rt2800_ops *rt2800ops = rt2x00dev->ops->drv; |
52 | 54 | ||
53 | rt2800ops->register_read(rt2x00dev, offset, value); | 55 | rt2800ops->register_read(rt2x00dev, offset, value); |
54 | } | 56 | } |
@@ -57,7 +59,7 @@ static inline void rt2800_register_read_lock(struct rt2x00_dev *rt2x00dev, | |||
57 | const unsigned int offset, | 59 | const unsigned int offset, |
58 | u32 *value) | 60 | u32 *value) |
59 | { | 61 | { |
60 | const struct rt2800_ops *rt2800ops = rt2x00dev->priv; | 62 | const struct rt2800_ops *rt2800ops = rt2x00dev->ops->drv; |
61 | 63 | ||
62 | rt2800ops->register_read_lock(rt2x00dev, offset, value); | 64 | rt2800ops->register_read_lock(rt2x00dev, offset, value); |
63 | } | 65 | } |
@@ -66,7 +68,7 @@ static inline void rt2800_register_write(struct rt2x00_dev *rt2x00dev, | |||
66 | const unsigned int offset, | 68 | const unsigned int offset, |
67 | u32 value) | 69 | u32 value) |
68 | { | 70 | { |
69 | const struct rt2800_ops *rt2800ops = rt2x00dev->priv; | 71 | const struct rt2800_ops *rt2800ops = rt2x00dev->ops->drv; |
70 | 72 | ||
71 | rt2800ops->register_write(rt2x00dev, offset, value); | 73 | rt2800ops->register_write(rt2x00dev, offset, value); |
72 | } | 74 | } |
@@ -75,7 +77,7 @@ static inline void rt2800_register_write_lock(struct rt2x00_dev *rt2x00dev, | |||
75 | const unsigned int offset, | 77 | const unsigned int offset, |
76 | u32 value) | 78 | u32 value) |
77 | { | 79 | { |
78 | const struct rt2800_ops *rt2800ops = rt2x00dev->priv; | 80 | const struct rt2800_ops *rt2800ops = rt2x00dev->ops->drv; |
79 | 81 | ||
80 | rt2800ops->register_write_lock(rt2x00dev, offset, value); | 82 | rt2800ops->register_write_lock(rt2x00dev, offset, value); |
81 | } | 83 | } |
@@ -84,7 +86,7 @@ static inline void rt2800_register_multiread(struct rt2x00_dev *rt2x00dev, | |||
84 | const unsigned int offset, | 86 | const unsigned int offset, |
85 | void *value, const u32 length) | 87 | void *value, const u32 length) |
86 | { | 88 | { |
87 | const struct rt2800_ops *rt2800ops = rt2x00dev->priv; | 89 | const struct rt2800_ops *rt2800ops = rt2x00dev->ops->drv; |
88 | 90 | ||
89 | rt2800ops->register_multiread(rt2x00dev, offset, value, length); | 91 | rt2800ops->register_multiread(rt2x00dev, offset, value, length); |
90 | } | 92 | } |
@@ -94,7 +96,7 @@ static inline void rt2800_register_multiwrite(struct rt2x00_dev *rt2x00dev, | |||
94 | const void *value, | 96 | const void *value, |
95 | const u32 length) | 97 | const u32 length) |
96 | { | 98 | { |
97 | const struct rt2800_ops *rt2800ops = rt2x00dev->priv; | 99 | const struct rt2800_ops *rt2800ops = rt2x00dev->ops->drv; |
98 | 100 | ||
99 | rt2800ops->register_multiwrite(rt2x00dev, offset, value, length); | 101 | rt2800ops->register_multiwrite(rt2x00dev, offset, value, length); |
100 | } | 102 | } |
@@ -104,14 +106,22 @@ static inline int rt2800_regbusy_read(struct rt2x00_dev *rt2x00dev, | |||
104 | const struct rt2x00_field32 field, | 106 | const struct rt2x00_field32 field, |
105 | u32 *reg) | 107 | u32 *reg) |
106 | { | 108 | { |
107 | const struct rt2800_ops *rt2800ops = rt2x00dev->priv; | 109 | const struct rt2800_ops *rt2800ops = rt2x00dev->ops->drv; |
108 | 110 | ||
109 | return rt2800ops->regbusy_read(rt2x00dev, offset, field, reg); | 111 | return rt2800ops->regbusy_read(rt2x00dev, offset, field, reg); |
110 | } | 112 | } |
111 | 113 | ||
114 | static inline int rt2800_drv_write_firmware(struct rt2x00_dev *rt2x00dev, | ||
115 | const u8 *data, const size_t len) | ||
116 | { | ||
117 | const struct rt2800_ops *rt2800ops = rt2x00dev->ops->drv; | ||
118 | |||
119 | return rt2800ops->drv_write_firmware(rt2x00dev, data, len); | ||
120 | } | ||
121 | |||
112 | static inline int rt2800_drv_init_registers(struct rt2x00_dev *rt2x00dev) | 122 | static inline int rt2800_drv_init_registers(struct rt2x00_dev *rt2x00dev) |
113 | { | 123 | { |
114 | const struct rt2800_ops *rt2800ops = rt2x00dev->priv; | 124 | const struct rt2800_ops *rt2800ops = rt2x00dev->ops->drv; |
115 | 125 | ||
116 | return rt2800ops->drv_init_registers(rt2x00dev); | 126 | return rt2800ops->drv_init_registers(rt2x00dev); |
117 | } | 127 | } |
@@ -120,8 +130,13 @@ void rt2800_mcu_request(struct rt2x00_dev *rt2x00dev, | |||
120 | const u8 command, const u8 token, | 130 | const u8 command, const u8 token, |
121 | const u8 arg0, const u8 arg1); | 131 | const u8 arg0, const u8 arg1); |
122 | 132 | ||
133 | int rt2800_check_firmware(struct rt2x00_dev *rt2x00dev, | ||
134 | const u8 *data, const size_t len); | ||
135 | int rt2800_load_firmware(struct rt2x00_dev *rt2x00dev, | ||
136 | const u8 *data, const size_t len); | ||
137 | |||
123 | void rt2800_write_txwi(__le32 *txwi, struct txentry_desc *txdesc); | 138 | void rt2800_write_txwi(__le32 *txwi, struct txentry_desc *txdesc); |
124 | void rt2800_process_rxwi(struct sk_buff *skb, struct rxdone_entry_desc *txdesc); | 139 | void rt2800_process_rxwi(struct queue_entry *entry, struct rxdone_entry_desc *txdesc); |
125 | 140 | ||
126 | void rt2800_write_beacon(struct queue_entry *entry, struct txentry_desc *txdesc); | 141 | void rt2800_write_beacon(struct queue_entry *entry, struct txentry_desc *txdesc); |
127 | 142 | ||
@@ -159,6 +174,14 @@ int rt2800_validate_eeprom(struct rt2x00_dev *rt2x00dev); | |||
159 | int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev); | 174 | int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev); |
160 | int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev); | 175 | int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev); |
161 | 176 | ||
162 | extern const struct ieee80211_ops rt2800_mac80211_ops; | 177 | void rt2800_get_tkip_seq(struct ieee80211_hw *hw, u8 hw_key_idx, u32 *iv32, |
178 | u16 *iv16); | ||
179 | int rt2800_set_rts_threshold(struct ieee80211_hw *hw, u32 value); | ||
180 | int rt2800_conf_tx(struct ieee80211_hw *hw, u16 queue_idx, | ||
181 | const struct ieee80211_tx_queue_params *params); | ||
182 | u64 rt2800_get_tsf(struct ieee80211_hw *hw); | ||
183 | int rt2800_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | ||
184 | enum ieee80211_ampdu_mlme_action action, | ||
185 | struct ieee80211_sta *sta, u16 tid, u16 *ssn); | ||
163 | 186 | ||
164 | #endif /* RT2800LIB_H */ | 187 | #endif /* RT2800LIB_H */ |
diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c index 6f11760117da..39b3846fa340 100644 --- a/drivers/net/wireless/rt2x00/rt2800pci.c +++ b/drivers/net/wireless/rt2x00/rt2800pci.c | |||
@@ -31,7 +31,6 @@ | |||
31 | Supported chipsets: RT2800E & RT2800ED. | 31 | Supported chipsets: RT2800E & RT2800ED. |
32 | */ | 32 | */ |
33 | 33 | ||
34 | #include <linux/crc-ccitt.h> | ||
35 | #include <linux/delay.h> | 34 | #include <linux/delay.h> |
36 | #include <linux/etherdevice.h> | 35 | #include <linux/etherdevice.h> |
37 | #include <linux/init.h> | 36 | #include <linux/init.h> |
@@ -192,82 +191,14 @@ static char *rt2800pci_get_firmware_name(struct rt2x00_dev *rt2x00dev) | |||
192 | return FIRMWARE_RT2860; | 191 | return FIRMWARE_RT2860; |
193 | } | 192 | } |
194 | 193 | ||
195 | static int rt2800pci_check_firmware(struct rt2x00_dev *rt2x00dev, | 194 | static int rt2800pci_write_firmware(struct rt2x00_dev *rt2x00dev, |
196 | const u8 *data, const size_t len) | 195 | const u8 *data, const size_t len) |
197 | { | 196 | { |
198 | u16 fw_crc; | ||
199 | u16 crc; | ||
200 | |||
201 | /* | ||
202 | * Only support 8kb firmware files. | ||
203 | */ | ||
204 | if (len != 8192) | ||
205 | return FW_BAD_LENGTH; | ||
206 | |||
207 | /* | ||
208 | * The last 2 bytes in the firmware array are the crc checksum itself, | ||
209 | * this means that we should never pass those 2 bytes to the crc | ||
210 | * algorithm. | ||
211 | */ | ||
212 | fw_crc = (data[len - 2] << 8 | data[len - 1]); | ||
213 | |||
214 | /* | ||
215 | * Use the crc ccitt algorithm. | ||
216 | * This will return the same value as the legacy driver which | ||
217 | * used bit ordering reversion on the both the firmware bytes | ||
218 | * before input input as well as on the final output. | ||
219 | * Obviously using crc ccitt directly is much more efficient. | ||
220 | */ | ||
221 | crc = crc_ccitt(~0, data, len - 2); | ||
222 | |||
223 | /* | ||
224 | * There is a small difference between the crc-itu-t + bitrev and | ||
225 | * the crc-ccitt crc calculation. In the latter method the 2 bytes | ||
226 | * will be swapped, use swab16 to convert the crc to the correct | ||
227 | * value. | ||
228 | */ | ||
229 | crc = swab16(crc); | ||
230 | |||
231 | return (fw_crc == crc) ? FW_OK : FW_BAD_CRC; | ||
232 | } | ||
233 | |||
234 | static int rt2800pci_load_firmware(struct rt2x00_dev *rt2x00dev, | ||
235 | const u8 *data, const size_t len) | ||
236 | { | ||
237 | unsigned int i; | ||
238 | u32 reg; | 197 | u32 reg; |
239 | 198 | ||
240 | /* | ||
241 | * Wait for stable hardware. | ||
242 | */ | ||
243 | for (i = 0; i < REGISTER_BUSY_COUNT; i++) { | ||
244 | rt2800_register_read(rt2x00dev, MAC_CSR0, ®); | ||
245 | if (reg && reg != ~0) | ||
246 | break; | ||
247 | msleep(1); | ||
248 | } | ||
249 | |||
250 | if (i == REGISTER_BUSY_COUNT) { | ||
251 | ERROR(rt2x00dev, "Unstable hardware.\n"); | ||
252 | return -EBUSY; | ||
253 | } | ||
254 | |||
255 | rt2800_register_write(rt2x00dev, PWR_PIN_CFG, 0x00000002); | ||
256 | rt2800_register_write(rt2x00dev, AUTOWAKEUP_CFG, 0x00000000); | 199 | rt2800_register_write(rt2x00dev, AUTOWAKEUP_CFG, 0x00000000); |
257 | 200 | ||
258 | /* | 201 | /* |
259 | * Disable DMA, will be reenabled later when enabling | ||
260 | * the radio. | ||
261 | */ | ||
262 | rt2800_register_read(rt2x00dev, WPDMA_GLO_CFG, ®); | ||
263 | rt2x00_set_field32(®, WPDMA_GLO_CFG_ENABLE_TX_DMA, 0); | ||
264 | rt2x00_set_field32(®, WPDMA_GLO_CFG_TX_DMA_BUSY, 0); | ||
265 | rt2x00_set_field32(®, WPDMA_GLO_CFG_ENABLE_RX_DMA, 0); | ||
266 | rt2x00_set_field32(®, WPDMA_GLO_CFG_RX_DMA_BUSY, 0); | ||
267 | rt2x00_set_field32(®, WPDMA_GLO_CFG_TX_WRITEBACK_DONE, 1); | ||
268 | rt2800_register_write(rt2x00dev, WPDMA_GLO_CFG, reg); | ||
269 | |||
270 | /* | ||
271 | * enable Host program ram write selection | 202 | * enable Host program ram write selection |
272 | */ | 203 | */ |
273 | reg = 0; | 204 | reg = 0; |
@@ -278,34 +209,11 @@ static int rt2800pci_load_firmware(struct rt2x00_dev *rt2x00dev, | |||
278 | * Write firmware to device. | 209 | * Write firmware to device. |
279 | */ | 210 | */ |
280 | rt2800_register_multiwrite(rt2x00dev, FIRMWARE_IMAGE_BASE, | 211 | rt2800_register_multiwrite(rt2x00dev, FIRMWARE_IMAGE_BASE, |
281 | data, len); | 212 | data, len); |
282 | 213 | ||
283 | rt2800_register_write(rt2x00dev, PBF_SYS_CTRL, 0x00000); | 214 | rt2800_register_write(rt2x00dev, PBF_SYS_CTRL, 0x00000); |
284 | rt2800_register_write(rt2x00dev, PBF_SYS_CTRL, 0x00001); | 215 | rt2800_register_write(rt2x00dev, PBF_SYS_CTRL, 0x00001); |
285 | 216 | ||
286 | /* | ||
287 | * Wait for device to stabilize. | ||
288 | */ | ||
289 | for (i = 0; i < REGISTER_BUSY_COUNT; i++) { | ||
290 | rt2800_register_read(rt2x00dev, PBF_SYS_CTRL, ®); | ||
291 | if (rt2x00_get_field32(reg, PBF_SYS_CTRL_READY)) | ||
292 | break; | ||
293 | msleep(1); | ||
294 | } | ||
295 | |||
296 | if (i == REGISTER_BUSY_COUNT) { | ||
297 | ERROR(rt2x00dev, "PBF system register not ready.\n"); | ||
298 | return -EBUSY; | ||
299 | } | ||
300 | |||
301 | /* | ||
302 | * Disable interrupts | ||
303 | */ | ||
304 | rt2x00dev->ops->lib->set_device_state(rt2x00dev, STATE_RADIO_IRQ_OFF); | ||
305 | |||
306 | /* | ||
307 | * Initialize BBP R/W access agent | ||
308 | */ | ||
309 | rt2800_register_write(rt2x00dev, H2M_BBP_AGENT, 0); | 217 | rt2800_register_write(rt2x00dev, H2M_BBP_AGENT, 0); |
310 | rt2800_register_write(rt2x00dev, H2M_MAILBOX_CSR, 0); | 218 | rt2800_register_write(rt2x00dev, H2M_MAILBOX_CSR, 0); |
311 | 219 | ||
@@ -422,7 +330,8 @@ static void rt2800pci_toggle_rx(struct rt2x00_dev *rt2x00dev, | |||
422 | static void rt2800pci_toggle_irq(struct rt2x00_dev *rt2x00dev, | 330 | static void rt2800pci_toggle_irq(struct rt2x00_dev *rt2x00dev, |
423 | enum dev_state state) | 331 | enum dev_state state) |
424 | { | 332 | { |
425 | int mask = (state == STATE_RADIO_IRQ_ON); | 333 | int mask = (state == STATE_RADIO_IRQ_ON) || |
334 | (state == STATE_RADIO_IRQ_ON_ISR); | ||
426 | u32 reg; | 335 | u32 reg; |
427 | 336 | ||
428 | /* | 337 | /* |
@@ -631,7 +540,9 @@ static int rt2800pci_set_device_state(struct rt2x00_dev *rt2x00dev, | |||
631 | rt2800pci_toggle_rx(rt2x00dev, state); | 540 | rt2800pci_toggle_rx(rt2x00dev, state); |
632 | break; | 541 | break; |
633 | case STATE_RADIO_IRQ_ON: | 542 | case STATE_RADIO_IRQ_ON: |
543 | case STATE_RADIO_IRQ_ON_ISR: | ||
634 | case STATE_RADIO_IRQ_OFF: | 544 | case STATE_RADIO_IRQ_OFF: |
545 | case STATE_RADIO_IRQ_OFF_ISR: | ||
635 | rt2800pci_toggle_irq(rt2x00dev, state); | 546 | rt2800pci_toggle_irq(rt2x00dev, state); |
636 | break; | 547 | break; |
637 | case STATE_DEEP_SLEEP: | 548 | case STATE_DEEP_SLEEP: |
@@ -805,7 +716,7 @@ static void rt2800pci_fill_rxdone(struct queue_entry *entry, | |||
805 | /* | 716 | /* |
806 | * Process the RXWI structure that is at the start of the buffer. | 717 | * Process the RXWI structure that is at the start of the buffer. |
807 | */ | 718 | */ |
808 | rt2800_process_rxwi(entry->skb, rxdesc); | 719 | rt2800_process_rxwi(entry, rxdesc); |
809 | 720 | ||
810 | /* | 721 | /* |
811 | * Set RX IDX in register to inform hardware that we have handled | 722 | * Set RX IDX in register to inform hardware that we have handled |
@@ -929,42 +840,74 @@ static void rt2800pci_wakeup(struct rt2x00_dev *rt2x00dev) | |||
929 | rt2800_config(rt2x00dev, &libconf, IEEE80211_CONF_CHANGE_PS); | 840 | rt2800_config(rt2x00dev, &libconf, IEEE80211_CONF_CHANGE_PS); |
930 | } | 841 | } |
931 | 842 | ||
932 | static irqreturn_t rt2800pci_interrupt(int irq, void *dev_instance) | 843 | static irqreturn_t rt2800pci_interrupt_thread(int irq, void *dev_instance) |
933 | { | 844 | { |
934 | struct rt2x00_dev *rt2x00dev = dev_instance; | 845 | struct rt2x00_dev *rt2x00dev = dev_instance; |
935 | u32 reg; | 846 | u32 reg = rt2x00dev->irqvalue[0]; |
936 | |||
937 | /* Read status and ACK all interrupts */ | ||
938 | rt2800_register_read(rt2x00dev, INT_SOURCE_CSR, ®); | ||
939 | rt2800_register_write(rt2x00dev, INT_SOURCE_CSR, reg); | ||
940 | 847 | ||
941 | if (!reg) | 848 | /* |
942 | return IRQ_NONE; | 849 | * 1 - Pre TBTT interrupt. |
850 | */ | ||
851 | if (rt2x00_get_field32(reg, INT_SOURCE_CSR_PRE_TBTT)) | ||
852 | rt2x00lib_pretbtt(rt2x00dev); | ||
943 | 853 | ||
944 | if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) | 854 | /* |
945 | return IRQ_HANDLED; | 855 | * 2 - Beacondone interrupt. |
856 | */ | ||
857 | if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TBTT)) | ||
858 | rt2x00lib_beacondone(rt2x00dev); | ||
946 | 859 | ||
947 | /* | 860 | /* |
948 | * 1 - Rx ring done interrupt. | 861 | * 3 - Rx ring done interrupt. |
949 | */ | 862 | */ |
950 | if (rt2x00_get_field32(reg, INT_SOURCE_CSR_RX_DONE)) | 863 | if (rt2x00_get_field32(reg, INT_SOURCE_CSR_RX_DONE)) |
951 | rt2x00pci_rxdone(rt2x00dev); | 864 | rt2x00pci_rxdone(rt2x00dev); |
952 | 865 | ||
866 | /* | ||
867 | * 4 - Tx done interrupt. | ||
868 | */ | ||
953 | if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TX_FIFO_STATUS)) | 869 | if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TX_FIFO_STATUS)) |
954 | rt2800pci_txdone(rt2x00dev); | 870 | rt2800pci_txdone(rt2x00dev); |
955 | 871 | ||
956 | /* | 872 | /* |
957 | * Current beacon was sent out, fetch the next one | 873 | * 5 - Auto wakeup interrupt. |
958 | */ | 874 | */ |
959 | if (rt2x00_get_field32(reg, INT_SOURCE_CSR_TBTT)) | ||
960 | rt2x00lib_beacondone(rt2x00dev); | ||
961 | |||
962 | if (rt2x00_get_field32(reg, INT_SOURCE_CSR_AUTO_WAKEUP)) | 875 | if (rt2x00_get_field32(reg, INT_SOURCE_CSR_AUTO_WAKEUP)) |
963 | rt2800pci_wakeup(rt2x00dev); | 876 | rt2800pci_wakeup(rt2x00dev); |
964 | 877 | ||
878 | /* Enable interrupts again. */ | ||
879 | rt2x00dev->ops->lib->set_device_state(rt2x00dev, | ||
880 | STATE_RADIO_IRQ_ON_ISR); | ||
881 | |||
965 | return IRQ_HANDLED; | 882 | return IRQ_HANDLED; |
966 | } | 883 | } |
967 | 884 | ||
885 | static irqreturn_t rt2800pci_interrupt(int irq, void *dev_instance) | ||
886 | { | ||
887 | struct rt2x00_dev *rt2x00dev = dev_instance; | ||
888 | u32 reg; | ||
889 | |||
890 | /* Read status and ACK all interrupts */ | ||
891 | rt2800_register_read(rt2x00dev, INT_SOURCE_CSR, ®); | ||
892 | rt2800_register_write(rt2x00dev, INT_SOURCE_CSR, reg); | ||
893 | |||
894 | if (!reg) | ||
895 | return IRQ_NONE; | ||
896 | |||
897 | if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) | ||
898 | return IRQ_HANDLED; | ||
899 | |||
900 | /* Store irqvalue for use in the interrupt thread. */ | ||
901 | rt2x00dev->irqvalue[0] = reg; | ||
902 | |||
903 | /* Disable interrupts, will be enabled again in the interrupt thread. */ | ||
904 | rt2x00dev->ops->lib->set_device_state(rt2x00dev, | ||
905 | STATE_RADIO_IRQ_OFF_ISR); | ||
906 | |||
907 | |||
908 | return IRQ_WAKE_THREAD; | ||
909 | } | ||
910 | |||
968 | /* | 911 | /* |
969 | * Device probe functions. | 912 | * Device probe functions. |
970 | */ | 913 | */ |
@@ -983,26 +926,10 @@ static int rt2800pci_validate_eeprom(struct rt2x00_dev *rt2x00dev) | |||
983 | return rt2800_validate_eeprom(rt2x00dev); | 926 | return rt2800_validate_eeprom(rt2x00dev); |
984 | } | 927 | } |
985 | 928 | ||
986 | static const struct rt2800_ops rt2800pci_rt2800_ops = { | ||
987 | .register_read = rt2x00pci_register_read, | ||
988 | .register_read_lock = rt2x00pci_register_read, /* same for PCI */ | ||
989 | .register_write = rt2x00pci_register_write, | ||
990 | .register_write_lock = rt2x00pci_register_write, /* same for PCI */ | ||
991 | |||
992 | .register_multiread = rt2x00pci_register_multiread, | ||
993 | .register_multiwrite = rt2x00pci_register_multiwrite, | ||
994 | |||
995 | .regbusy_read = rt2x00pci_regbusy_read, | ||
996 | |||
997 | .drv_init_registers = rt2800pci_init_registers, | ||
998 | }; | ||
999 | |||
1000 | static int rt2800pci_probe_hw(struct rt2x00_dev *rt2x00dev) | 929 | static int rt2800pci_probe_hw(struct rt2x00_dev *rt2x00dev) |
1001 | { | 930 | { |
1002 | int retval; | 931 | int retval; |
1003 | 932 | ||
1004 | rt2x00dev->priv = (void *)&rt2800pci_rt2800_ops; | ||
1005 | |||
1006 | /* | 933 | /* |
1007 | * Allocate eeprom data. | 934 | * Allocate eeprom data. |
1008 | */ | 935 | */ |
@@ -1029,6 +956,12 @@ static int rt2800pci_probe_hw(struct rt2x00_dev *rt2x00dev) | |||
1029 | __set_bit(DRIVER_SUPPORT_CONTROL_FILTER_PSPOLL, &rt2x00dev->flags); | 956 | __set_bit(DRIVER_SUPPORT_CONTROL_FILTER_PSPOLL, &rt2x00dev->flags); |
1030 | 957 | ||
1031 | /* | 958 | /* |
959 | * This device has a pre tbtt interrupt and thus fetches | ||
960 | * a new beacon directly prior to transmission. | ||
961 | */ | ||
962 | __set_bit(DRIVER_SUPPORT_PRE_TBTT_INTERRUPT, &rt2x00dev->flags); | ||
963 | |||
964 | /* | ||
1032 | * This device requires firmware. | 965 | * This device requires firmware. |
1033 | */ | 966 | */ |
1034 | if (!rt2x00_is_soc(rt2x00dev)) | 967 | if (!rt2x00_is_soc(rt2x00dev)) |
@@ -1037,6 +970,7 @@ static int rt2800pci_probe_hw(struct rt2x00_dev *rt2x00dev) | |||
1037 | __set_bit(DRIVER_REQUIRE_L2PAD, &rt2x00dev->flags); | 970 | __set_bit(DRIVER_REQUIRE_L2PAD, &rt2x00dev->flags); |
1038 | if (!modparam_nohwcrypt) | 971 | if (!modparam_nohwcrypt) |
1039 | __set_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags); | 972 | __set_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags); |
973 | __set_bit(DRIVER_SUPPORT_LINK_TUNING, &rt2x00dev->flags); | ||
1040 | 974 | ||
1041 | /* | 975 | /* |
1042 | * Set the rssi offset. | 976 | * Set the rssi offset. |
@@ -1046,12 +980,46 @@ static int rt2800pci_probe_hw(struct rt2x00_dev *rt2x00dev) | |||
1046 | return 0; | 980 | return 0; |
1047 | } | 981 | } |
1048 | 982 | ||
983 | static const struct ieee80211_ops rt2800pci_mac80211_ops = { | ||
984 | .tx = rt2x00mac_tx, | ||
985 | .start = rt2x00mac_start, | ||
986 | .stop = rt2x00mac_stop, | ||
987 | .add_interface = rt2x00mac_add_interface, | ||
988 | .remove_interface = rt2x00mac_remove_interface, | ||
989 | .config = rt2x00mac_config, | ||
990 | .configure_filter = rt2x00mac_configure_filter, | ||
991 | .set_key = rt2x00mac_set_key, | ||
992 | .sw_scan_start = rt2x00mac_sw_scan_start, | ||
993 | .sw_scan_complete = rt2x00mac_sw_scan_complete, | ||
994 | .get_stats = rt2x00mac_get_stats, | ||
995 | .get_tkip_seq = rt2800_get_tkip_seq, | ||
996 | .set_rts_threshold = rt2800_set_rts_threshold, | ||
997 | .bss_info_changed = rt2x00mac_bss_info_changed, | ||
998 | .conf_tx = rt2800_conf_tx, | ||
999 | .get_tsf = rt2800_get_tsf, | ||
1000 | .rfkill_poll = rt2x00mac_rfkill_poll, | ||
1001 | .ampdu_action = rt2800_ampdu_action, | ||
1002 | }; | ||
1003 | |||
1004 | static const struct rt2800_ops rt2800pci_rt2800_ops = { | ||
1005 | .register_read = rt2x00pci_register_read, | ||
1006 | .register_read_lock = rt2x00pci_register_read, /* same for PCI */ | ||
1007 | .register_write = rt2x00pci_register_write, | ||
1008 | .register_write_lock = rt2x00pci_register_write, /* same for PCI */ | ||
1009 | .register_multiread = rt2x00pci_register_multiread, | ||
1010 | .register_multiwrite = rt2x00pci_register_multiwrite, | ||
1011 | .regbusy_read = rt2x00pci_regbusy_read, | ||
1012 | .drv_write_firmware = rt2800pci_write_firmware, | ||
1013 | .drv_init_registers = rt2800pci_init_registers, | ||
1014 | }; | ||
1015 | |||
1049 | static const struct rt2x00lib_ops rt2800pci_rt2x00_ops = { | 1016 | static const struct rt2x00lib_ops rt2800pci_rt2x00_ops = { |
1050 | .irq_handler = rt2800pci_interrupt, | 1017 | .irq_handler = rt2800pci_interrupt, |
1018 | .irq_handler_thread = rt2800pci_interrupt_thread, | ||
1051 | .probe_hw = rt2800pci_probe_hw, | 1019 | .probe_hw = rt2800pci_probe_hw, |
1052 | .get_firmware_name = rt2800pci_get_firmware_name, | 1020 | .get_firmware_name = rt2800pci_get_firmware_name, |
1053 | .check_firmware = rt2800pci_check_firmware, | 1021 | .check_firmware = rt2800_check_firmware, |
1054 | .load_firmware = rt2800pci_load_firmware, | 1022 | .load_firmware = rt2800_load_firmware, |
1055 | .initialize = rt2x00pci_initialize, | 1023 | .initialize = rt2x00pci_initialize, |
1056 | .uninitialize = rt2x00pci_uninitialize, | 1024 | .uninitialize = rt2x00pci_uninitialize, |
1057 | .get_entry_state = rt2800pci_get_entry_state, | 1025 | .get_entry_state = rt2800pci_get_entry_state, |
@@ -1109,7 +1077,8 @@ static const struct rt2x00_ops rt2800pci_ops = { | |||
1109 | .tx = &rt2800pci_queue_tx, | 1077 | .tx = &rt2800pci_queue_tx, |
1110 | .bcn = &rt2800pci_queue_bcn, | 1078 | .bcn = &rt2800pci_queue_bcn, |
1111 | .lib = &rt2800pci_rt2x00_ops, | 1079 | .lib = &rt2800pci_rt2x00_ops, |
1112 | .hw = &rt2800_mac80211_ops, | 1080 | .drv = &rt2800pci_rt2800_ops, |
1081 | .hw = &rt2800pci_mac80211_ops, | ||
1113 | #ifdef CONFIG_RT2X00_LIB_DEBUGFS | 1082 | #ifdef CONFIG_RT2X00_LIB_DEBUGFS |
1114 | .debugfs = &rt2800_rt2x00debug, | 1083 | .debugfs = &rt2800_rt2x00debug, |
1115 | #endif /* CONFIG_RT2X00_LIB_DEBUGFS */ | 1084 | #endif /* CONFIG_RT2X00_LIB_DEBUGFS */ |
diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c index 4f85f7b42441..5a2dfe87c6b6 100644 --- a/drivers/net/wireless/rt2x00/rt2800usb.c +++ b/drivers/net/wireless/rt2x00/rt2800usb.c | |||
@@ -28,7 +28,6 @@ | |||
28 | Supported chipsets: RT2800U. | 28 | Supported chipsets: RT2800U. |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <linux/crc-ccitt.h> | ||
32 | #include <linux/delay.h> | 31 | #include <linux/delay.h> |
33 | #include <linux/etherdevice.h> | 32 | #include <linux/etherdevice.h> |
34 | #include <linux/init.h> | 33 | #include <linux/init.h> |
@@ -57,84 +56,10 @@ static char *rt2800usb_get_firmware_name(struct rt2x00_dev *rt2x00dev) | |||
57 | return FIRMWARE_RT2870; | 56 | return FIRMWARE_RT2870; |
58 | } | 57 | } |
59 | 58 | ||
60 | static bool rt2800usb_check_crc(const u8 *data, const size_t len) | 59 | static int rt2800usb_write_firmware(struct rt2x00_dev *rt2x00dev, |
61 | { | ||
62 | u16 fw_crc; | ||
63 | u16 crc; | ||
64 | |||
65 | /* | ||
66 | * The last 2 bytes in the firmware array are the crc checksum itself, | ||
67 | * this means that we should never pass those 2 bytes to the crc | ||
68 | * algorithm. | ||
69 | */ | ||
70 | fw_crc = (data[len - 2] << 8 | data[len - 1]); | ||
71 | |||
72 | /* | ||
73 | * Use the crc ccitt algorithm. | ||
74 | * This will return the same value as the legacy driver which | ||
75 | * used bit ordering reversion on the both the firmware bytes | ||
76 | * before input input as well as on the final output. | ||
77 | * Obviously using crc ccitt directly is much more efficient. | ||
78 | */ | ||
79 | crc = crc_ccitt(~0, data, len - 2); | ||
80 | |||
81 | /* | ||
82 | * There is a small difference between the crc-itu-t + bitrev and | ||
83 | * the crc-ccitt crc calculation. In the latter method the 2 bytes | ||
84 | * will be swapped, use swab16 to convert the crc to the correct | ||
85 | * value. | ||
86 | */ | ||
87 | crc = swab16(crc); | ||
88 | |||
89 | return fw_crc == crc; | ||
90 | } | ||
91 | |||
92 | static int rt2800usb_check_firmware(struct rt2x00_dev *rt2x00dev, | ||
93 | const u8 *data, const size_t len) | 60 | const u8 *data, const size_t len) |
94 | { | 61 | { |
95 | size_t offset = 0; | ||
96 | |||
97 | /* | ||
98 | * Firmware files: | ||
99 | * There are 2 variations of the rt2870 firmware. | ||
100 | * a) size: 4kb | ||
101 | * b) size: 8kb | ||
102 | * Note that (b) contains 2 separate firmware blobs of 4k | ||
103 | * within the file. The first blob is the same firmware as (a), | ||
104 | * but the second blob is for the additional chipsets. | ||
105 | */ | ||
106 | if (len != 4096 && len != 8192) | ||
107 | return FW_BAD_LENGTH; | ||
108 | |||
109 | /* | ||
110 | * Check if we need the upper 4kb firmware data or not. | ||
111 | */ | ||
112 | if ((len == 4096) && | ||
113 | !rt2x00_rt(rt2x00dev, RT2860) && | ||
114 | !rt2x00_rt(rt2x00dev, RT2872) && | ||
115 | !rt2x00_rt(rt2x00dev, RT3070)) | ||
116 | return FW_BAD_VERSION; | ||
117 | |||
118 | /* | ||
119 | * 8kb firmware files must be checked as if it were | ||
120 | * 2 separate firmware files. | ||
121 | */ | ||
122 | while (offset < len) { | ||
123 | if (!rt2800usb_check_crc(data + offset, 4096)) | ||
124 | return FW_BAD_CRC; | ||
125 | |||
126 | offset += 4096; | ||
127 | } | ||
128 | |||
129 | return FW_OK; | ||
130 | } | ||
131 | |||
132 | static int rt2800usb_load_firmware(struct rt2x00_dev *rt2x00dev, | ||
133 | const u8 *data, const size_t len) | ||
134 | { | ||
135 | unsigned int i; | ||
136 | int status; | 62 | int status; |
137 | u32 reg; | ||
138 | u32 offset; | 63 | u32 offset; |
139 | u32 length; | 64 | u32 length; |
140 | 65 | ||
@@ -152,21 +77,6 @@ static int rt2800usb_load_firmware(struct rt2x00_dev *rt2x00dev, | |||
152 | } | 77 | } |
153 | 78 | ||
154 | /* | 79 | /* |
155 | * Wait for stable hardware. | ||
156 | */ | ||
157 | for (i = 0; i < REGISTER_BUSY_COUNT; i++) { | ||
158 | rt2800_register_read(rt2x00dev, MAC_CSR0, ®); | ||
159 | if (reg && reg != ~0) | ||
160 | break; | ||
161 | msleep(1); | ||
162 | } | ||
163 | |||
164 | if (i == REGISTER_BUSY_COUNT) { | ||
165 | ERROR(rt2x00dev, "Unstable hardware.\n"); | ||
166 | return -EBUSY; | ||
167 | } | ||
168 | |||
169 | /* | ||
170 | * Write firmware to device. | 80 | * Write firmware to device. |
171 | */ | 81 | */ |
172 | rt2800_register_multiwrite(rt2x00dev, FIRMWARE_IMAGE_BASE, | 82 | rt2800_register_multiwrite(rt2x00dev, FIRMWARE_IMAGE_BASE, |
@@ -203,28 +113,6 @@ static int rt2800usb_load_firmware(struct rt2x00_dev *rt2x00dev, | |||
203 | udelay(10); | 113 | udelay(10); |
204 | } | 114 | } |
205 | 115 | ||
206 | /* | ||
207 | * Wait for device to stabilize. | ||
208 | */ | ||
209 | for (i = 0; i < REGISTER_BUSY_COUNT; i++) { | ||
210 | rt2800_register_read(rt2x00dev, PBF_SYS_CTRL, ®); | ||
211 | if (rt2x00_get_field32(reg, PBF_SYS_CTRL_READY)) | ||
212 | break; | ||
213 | msleep(1); | ||
214 | } | ||
215 | |||
216 | if (i == REGISTER_BUSY_COUNT) { | ||
217 | ERROR(rt2x00dev, "PBF system register not ready.\n"); | ||
218 | return -EBUSY; | ||
219 | } | ||
220 | |||
221 | /* | ||
222 | * Initialize firmware. | ||
223 | */ | ||
224 | rt2800_register_write(rt2x00dev, H2M_BBP_AGENT, 0); | ||
225 | rt2800_register_write(rt2x00dev, H2M_MAILBOX_CSR, 0); | ||
226 | msleep(1); | ||
227 | |||
228 | return 0; | 116 | return 0; |
229 | } | 117 | } |
230 | 118 | ||
@@ -406,7 +294,9 @@ static int rt2800usb_set_device_state(struct rt2x00_dev *rt2x00dev, | |||
406 | rt2800usb_toggle_rx(rt2x00dev, state); | 294 | rt2800usb_toggle_rx(rt2x00dev, state); |
407 | break; | 295 | break; |
408 | case STATE_RADIO_IRQ_ON: | 296 | case STATE_RADIO_IRQ_ON: |
297 | case STATE_RADIO_IRQ_ON_ISR: | ||
409 | case STATE_RADIO_IRQ_OFF: | 298 | case STATE_RADIO_IRQ_OFF: |
299 | case STATE_RADIO_IRQ_OFF_ISR: | ||
410 | /* No support, but no error either */ | 300 | /* No support, but no error either */ |
411 | break; | 301 | break; |
412 | case STATE_DEEP_SLEEP: | 302 | case STATE_DEEP_SLEEP: |
@@ -563,7 +453,7 @@ static void rt2800usb_fill_rxdone(struct queue_entry *entry, | |||
563 | /* | 453 | /* |
564 | * Process the RXWI structure. | 454 | * Process the RXWI structure. |
565 | */ | 455 | */ |
566 | rt2800_process_rxwi(entry->skb, rxdesc); | 456 | rt2800_process_rxwi(entry, rxdesc); |
567 | } | 457 | } |
568 | 458 | ||
569 | /* | 459 | /* |
@@ -580,26 +470,10 @@ static int rt2800usb_validate_eeprom(struct rt2x00_dev *rt2x00dev) | |||
580 | return rt2800_validate_eeprom(rt2x00dev); | 470 | return rt2800_validate_eeprom(rt2x00dev); |
581 | } | 471 | } |
582 | 472 | ||
583 | static const struct rt2800_ops rt2800usb_rt2800_ops = { | ||
584 | .register_read = rt2x00usb_register_read, | ||
585 | .register_read_lock = rt2x00usb_register_read_lock, | ||
586 | .register_write = rt2x00usb_register_write, | ||
587 | .register_write_lock = rt2x00usb_register_write_lock, | ||
588 | |||
589 | .register_multiread = rt2x00usb_register_multiread, | ||
590 | .register_multiwrite = rt2x00usb_register_multiwrite, | ||
591 | |||
592 | .regbusy_read = rt2x00usb_regbusy_read, | ||
593 | |||
594 | .drv_init_registers = rt2800usb_init_registers, | ||
595 | }; | ||
596 | |||
597 | static int rt2800usb_probe_hw(struct rt2x00_dev *rt2x00dev) | 473 | static int rt2800usb_probe_hw(struct rt2x00_dev *rt2x00dev) |
598 | { | 474 | { |
599 | int retval; | 475 | int retval; |
600 | 476 | ||
601 | rt2x00dev->priv = (void *)&rt2800usb_rt2800_ops; | ||
602 | |||
603 | /* | 477 | /* |
604 | * Allocate eeprom data. | 478 | * Allocate eeprom data. |
605 | */ | 479 | */ |
@@ -632,6 +506,8 @@ static int rt2800usb_probe_hw(struct rt2x00_dev *rt2x00dev) | |||
632 | __set_bit(DRIVER_REQUIRE_L2PAD, &rt2x00dev->flags); | 506 | __set_bit(DRIVER_REQUIRE_L2PAD, &rt2x00dev->flags); |
633 | if (!modparam_nohwcrypt) | 507 | if (!modparam_nohwcrypt) |
634 | __set_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags); | 508 | __set_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags); |
509 | __set_bit(DRIVER_SUPPORT_LINK_TUNING, &rt2x00dev->flags); | ||
510 | __set_bit(DRIVER_SUPPORT_WATCHDOG, &rt2x00dev->flags); | ||
635 | 511 | ||
636 | /* | 512 | /* |
637 | * Set the rssi offset. | 513 | * Set the rssi offset. |
@@ -641,11 +517,45 @@ static int rt2800usb_probe_hw(struct rt2x00_dev *rt2x00dev) | |||
641 | return 0; | 517 | return 0; |
642 | } | 518 | } |
643 | 519 | ||
520 | static const struct ieee80211_ops rt2800usb_mac80211_ops = { | ||
521 | .tx = rt2x00mac_tx, | ||
522 | .start = rt2x00mac_start, | ||
523 | .stop = rt2x00mac_stop, | ||
524 | .add_interface = rt2x00mac_add_interface, | ||
525 | .remove_interface = rt2x00mac_remove_interface, | ||
526 | .config = rt2x00mac_config, | ||
527 | .configure_filter = rt2x00mac_configure_filter, | ||
528 | .set_tim = rt2x00mac_set_tim, | ||
529 | .set_key = rt2x00mac_set_key, | ||
530 | .sw_scan_start = rt2x00mac_sw_scan_start, | ||
531 | .sw_scan_complete = rt2x00mac_sw_scan_complete, | ||
532 | .get_stats = rt2x00mac_get_stats, | ||
533 | .get_tkip_seq = rt2800_get_tkip_seq, | ||
534 | .set_rts_threshold = rt2800_set_rts_threshold, | ||
535 | .bss_info_changed = rt2x00mac_bss_info_changed, | ||
536 | .conf_tx = rt2800_conf_tx, | ||
537 | .get_tsf = rt2800_get_tsf, | ||
538 | .rfkill_poll = rt2x00mac_rfkill_poll, | ||
539 | .ampdu_action = rt2800_ampdu_action, | ||
540 | }; | ||
541 | |||
542 | static const struct rt2800_ops rt2800usb_rt2800_ops = { | ||
543 | .register_read = rt2x00usb_register_read, | ||
544 | .register_read_lock = rt2x00usb_register_read_lock, | ||
545 | .register_write = rt2x00usb_register_write, | ||
546 | .register_write_lock = rt2x00usb_register_write_lock, | ||
547 | .register_multiread = rt2x00usb_register_multiread, | ||
548 | .register_multiwrite = rt2x00usb_register_multiwrite, | ||
549 | .regbusy_read = rt2x00usb_regbusy_read, | ||
550 | .drv_write_firmware = rt2800usb_write_firmware, | ||
551 | .drv_init_registers = rt2800usb_init_registers, | ||
552 | }; | ||
553 | |||
644 | static const struct rt2x00lib_ops rt2800usb_rt2x00_ops = { | 554 | static const struct rt2x00lib_ops rt2800usb_rt2x00_ops = { |
645 | .probe_hw = rt2800usb_probe_hw, | 555 | .probe_hw = rt2800usb_probe_hw, |
646 | .get_firmware_name = rt2800usb_get_firmware_name, | 556 | .get_firmware_name = rt2800usb_get_firmware_name, |
647 | .check_firmware = rt2800usb_check_firmware, | 557 | .check_firmware = rt2800_check_firmware, |
648 | .load_firmware = rt2800usb_load_firmware, | 558 | .load_firmware = rt2800_load_firmware, |
649 | .initialize = rt2x00usb_initialize, | 559 | .initialize = rt2x00usb_initialize, |
650 | .uninitialize = rt2x00usb_uninitialize, | 560 | .uninitialize = rt2x00usb_uninitialize, |
651 | .clear_entry = rt2x00usb_clear_entry, | 561 | .clear_entry = rt2x00usb_clear_entry, |
@@ -654,6 +564,7 @@ static const struct rt2x00lib_ops rt2800usb_rt2x00_ops = { | |||
654 | .link_stats = rt2800_link_stats, | 564 | .link_stats = rt2800_link_stats, |
655 | .reset_tuner = rt2800_reset_tuner, | 565 | .reset_tuner = rt2800_reset_tuner, |
656 | .link_tuner = rt2800_link_tuner, | 566 | .link_tuner = rt2800_link_tuner, |
567 | .watchdog = rt2x00usb_watchdog, | ||
657 | .write_tx_desc = rt2800usb_write_tx_desc, | 568 | .write_tx_desc = rt2800usb_write_tx_desc, |
658 | .write_tx_data = rt2800usb_write_tx_data, | 569 | .write_tx_data = rt2800usb_write_tx_data, |
659 | .write_beacon = rt2800_write_beacon, | 570 | .write_beacon = rt2800_write_beacon, |
@@ -703,7 +614,8 @@ static const struct rt2x00_ops rt2800usb_ops = { | |||
703 | .tx = &rt2800usb_queue_tx, | 614 | .tx = &rt2800usb_queue_tx, |
704 | .bcn = &rt2800usb_queue_bcn, | 615 | .bcn = &rt2800usb_queue_bcn, |
705 | .lib = &rt2800usb_rt2x00_ops, | 616 | .lib = &rt2800usb_rt2x00_ops, |
706 | .hw = &rt2800_mac80211_ops, | 617 | .drv = &rt2800usb_rt2800_ops, |
618 | .hw = &rt2800usb_mac80211_ops, | ||
707 | #ifdef CONFIG_RT2X00_LIB_DEBUGFS | 619 | #ifdef CONFIG_RT2X00_LIB_DEBUGFS |
708 | .debugfs = &rt2800_rt2x00debug, | 620 | .debugfs = &rt2800_rt2x00debug, |
709 | #endif /* CONFIG_RT2X00_LIB_DEBUGFS */ | 621 | #endif /* CONFIG_RT2X00_LIB_DEBUGFS */ |
diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h index 788b0e452cc7..c21af38cc5af 100644 --- a/drivers/net/wireless/rt2x00/rt2x00.h +++ b/drivers/net/wireless/rt2x00/rt2x00.h | |||
@@ -332,6 +332,11 @@ struct link { | |||
332 | * Work structure for scheduling periodic link tuning. | 332 | * Work structure for scheduling periodic link tuning. |
333 | */ | 333 | */ |
334 | struct delayed_work work; | 334 | struct delayed_work work; |
335 | |||
336 | /* | ||
337 | * Work structure for scheduling periodic watchdog monitoring. | ||
338 | */ | ||
339 | struct delayed_work watchdog_work; | ||
335 | }; | 340 | }; |
336 | 341 | ||
337 | /* | 342 | /* |
@@ -510,6 +515,11 @@ struct rt2x00lib_ops { | |||
510 | irq_handler_t irq_handler; | 515 | irq_handler_t irq_handler; |
511 | 516 | ||
512 | /* | 517 | /* |
518 | * Threaded Interrupt handlers. | ||
519 | */ | ||
520 | irq_handler_t irq_handler_thread; | ||
521 | |||
522 | /* | ||
513 | * Device init handlers. | 523 | * Device init handlers. |
514 | */ | 524 | */ |
515 | int (*probe_hw) (struct rt2x00_dev *rt2x00dev); | 525 | int (*probe_hw) (struct rt2x00_dev *rt2x00dev); |
@@ -543,6 +553,7 @@ struct rt2x00lib_ops { | |||
543 | struct link_qual *qual); | 553 | struct link_qual *qual); |
544 | void (*link_tuner) (struct rt2x00_dev *rt2x00dev, | 554 | void (*link_tuner) (struct rt2x00_dev *rt2x00dev, |
545 | struct link_qual *qual, const u32 count); | 555 | struct link_qual *qual, const u32 count); |
556 | void (*watchdog) (struct rt2x00_dev *rt2x00dev); | ||
546 | 557 | ||
547 | /* | 558 | /* |
548 | * TX control handlers | 559 | * TX control handlers |
@@ -610,6 +621,7 @@ struct rt2x00_ops { | |||
610 | const struct data_queue_desc *bcn; | 621 | const struct data_queue_desc *bcn; |
611 | const struct data_queue_desc *atim; | 622 | const struct data_queue_desc *atim; |
612 | const struct rt2x00lib_ops *lib; | 623 | const struct rt2x00lib_ops *lib; |
624 | const void *drv; | ||
613 | const struct ieee80211_ops *hw; | 625 | const struct ieee80211_ops *hw; |
614 | #ifdef CONFIG_RT2X00_LIB_DEBUGFS | 626 | #ifdef CONFIG_RT2X00_LIB_DEBUGFS |
615 | const struct rt2x00debug *debugfs; | 627 | const struct rt2x00debug *debugfs; |
@@ -628,6 +640,7 @@ enum rt2x00_flags { | |||
628 | DEVICE_STATE_INITIALIZED, | 640 | DEVICE_STATE_INITIALIZED, |
629 | DEVICE_STATE_STARTED, | 641 | DEVICE_STATE_STARTED, |
630 | DEVICE_STATE_ENABLED_RADIO, | 642 | DEVICE_STATE_ENABLED_RADIO, |
643 | DEVICE_STATE_SCANNING, | ||
631 | 644 | ||
632 | /* | 645 | /* |
633 | * Driver requirements | 646 | * Driver requirements |
@@ -646,6 +659,9 @@ enum rt2x00_flags { | |||
646 | CONFIG_SUPPORT_HW_CRYPTO, | 659 | CONFIG_SUPPORT_HW_CRYPTO, |
647 | DRIVER_SUPPORT_CONTROL_FILTERS, | 660 | DRIVER_SUPPORT_CONTROL_FILTERS, |
648 | DRIVER_SUPPORT_CONTROL_FILTER_PSPOLL, | 661 | DRIVER_SUPPORT_CONTROL_FILTER_PSPOLL, |
662 | DRIVER_SUPPORT_PRE_TBTT_INTERRUPT, | ||
663 | DRIVER_SUPPORT_LINK_TUNING, | ||
664 | DRIVER_SUPPORT_WATCHDOG, | ||
649 | 665 | ||
650 | /* | 666 | /* |
651 | * Driver configuration | 667 | * Driver configuration |
@@ -655,7 +671,6 @@ enum rt2x00_flags { | |||
655 | CONFIG_EXTERNAL_LNA_A, | 671 | CONFIG_EXTERNAL_LNA_A, |
656 | CONFIG_EXTERNAL_LNA_BG, | 672 | CONFIG_EXTERNAL_LNA_BG, |
657 | CONFIG_DOUBLE_ANTENNA, | 673 | CONFIG_DOUBLE_ANTENNA, |
658 | CONFIG_DISABLE_LINK_TUNING, | ||
659 | CONFIG_CHANNEL_HT40, | 674 | CONFIG_CHANNEL_HT40, |
660 | }; | 675 | }; |
661 | 676 | ||
@@ -863,9 +878,10 @@ struct rt2x00_dev { | |||
863 | const struct firmware *fw; | 878 | const struct firmware *fw; |
864 | 879 | ||
865 | /* | 880 | /* |
866 | * Driver specific data. | 881 | * Interrupt values, stored between interrupt service routine |
882 | * and interrupt thread routine. | ||
867 | */ | 883 | */ |
868 | void *priv; | 884 | u32 irqvalue[2]; |
869 | }; | 885 | }; |
870 | 886 | ||
871 | /* | 887 | /* |
@@ -1052,6 +1068,7 @@ static inline void rt2x00debug_dump_frame(struct rt2x00_dev *rt2x00dev, | |||
1052 | * Interrupt context handlers. | 1068 | * Interrupt context handlers. |
1053 | */ | 1069 | */ |
1054 | void rt2x00lib_beacondone(struct rt2x00_dev *rt2x00dev); | 1070 | void rt2x00lib_beacondone(struct rt2x00_dev *rt2x00dev); |
1071 | void rt2x00lib_pretbtt(struct rt2x00_dev *rt2x00dev); | ||
1055 | void rt2x00lib_txdone(struct queue_entry *entry, | 1072 | void rt2x00lib_txdone(struct queue_entry *entry, |
1056 | struct txdone_entry_desc *txdesc); | 1073 | struct txdone_entry_desc *txdesc); |
1057 | void rt2x00lib_rxdone(struct rt2x00_dev *rt2x00dev, | 1074 | void rt2x00lib_rxdone(struct rt2x00_dev *rt2x00dev, |
@@ -1081,6 +1098,8 @@ int rt2x00mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, | |||
1081 | #else | 1098 | #else |
1082 | #define rt2x00mac_set_key NULL | 1099 | #define rt2x00mac_set_key NULL |
1083 | #endif /* CONFIG_RT2X00_LIB_CRYPTO */ | 1100 | #endif /* CONFIG_RT2X00_LIB_CRYPTO */ |
1101 | void rt2x00mac_sw_scan_start(struct ieee80211_hw *hw); | ||
1102 | void rt2x00mac_sw_scan_complete(struct ieee80211_hw *hw); | ||
1084 | int rt2x00mac_get_stats(struct ieee80211_hw *hw, | 1103 | int rt2x00mac_get_stats(struct ieee80211_hw *hw, |
1085 | struct ieee80211_low_level_stats *stats); | 1104 | struct ieee80211_low_level_stats *stats); |
1086 | void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw, | 1105 | void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw, |
diff --git a/drivers/net/wireless/rt2x00/rt2x00config.c b/drivers/net/wireless/rt2x00/rt2x00config.c index 8dbd634dae27..953dc4f2c6af 100644 --- a/drivers/net/wireless/rt2x00/rt2x00config.c +++ b/drivers/net/wireless/rt2x00/rt2x00config.c | |||
@@ -41,10 +41,12 @@ void rt2x00lib_config_intf(struct rt2x00_dev *rt2x00dev, | |||
41 | 41 | ||
42 | switch (type) { | 42 | switch (type) { |
43 | case NL80211_IFTYPE_ADHOC: | 43 | case NL80211_IFTYPE_ADHOC: |
44 | conf.sync = TSF_SYNC_ADHOC; | ||
45 | break; | ||
44 | case NL80211_IFTYPE_AP: | 46 | case NL80211_IFTYPE_AP: |
45 | case NL80211_IFTYPE_MESH_POINT: | 47 | case NL80211_IFTYPE_MESH_POINT: |
46 | case NL80211_IFTYPE_WDS: | 48 | case NL80211_IFTYPE_WDS: |
47 | conf.sync = TSF_SYNC_BEACON; | 49 | conf.sync = TSF_SYNC_AP_NONE; |
48 | break; | 50 | break; |
49 | case NL80211_IFTYPE_STATION: | 51 | case NL80211_IFTYPE_STATION: |
50 | conf.sync = TSF_SYNC_INFRA; | 52 | conf.sync = TSF_SYNC_INFRA; |
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index 12ee7bdedd02..f59b9f7226a8 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c | |||
@@ -70,6 +70,11 @@ int rt2x00lib_enable_radio(struct rt2x00_dev *rt2x00dev) | |||
70 | rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON); | 70 | rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON); |
71 | 71 | ||
72 | /* | 72 | /* |
73 | * Start watchdog monitoring. | ||
74 | */ | ||
75 | rt2x00link_start_watchdog(rt2x00dev); | ||
76 | |||
77 | /* | ||
73 | * Start the TX queues. | 78 | * Start the TX queues. |
74 | */ | 79 | */ |
75 | ieee80211_wake_queues(rt2x00dev->hw); | 80 | ieee80211_wake_queues(rt2x00dev->hw); |
@@ -89,6 +94,11 @@ void rt2x00lib_disable_radio(struct rt2x00_dev *rt2x00dev) | |||
89 | rt2x00queue_stop_queues(rt2x00dev); | 94 | rt2x00queue_stop_queues(rt2x00dev); |
90 | 95 | ||
91 | /* | 96 | /* |
97 | * Stop watchdog monitoring. | ||
98 | */ | ||
99 | rt2x00link_stop_watchdog(rt2x00dev); | ||
100 | |||
101 | /* | ||
92 | * Disable RX. | 102 | * Disable RX. |
93 | */ | 103 | */ |
94 | rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_OFF); | 104 | rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_OFF); |
@@ -168,10 +178,32 @@ static void rt2x00lib_intf_scheduled(struct work_struct *work) | |||
168 | /* | 178 | /* |
169 | * Interrupt context handlers. | 179 | * Interrupt context handlers. |
170 | */ | 180 | */ |
171 | static void rt2x00lib_beacondone_iter(void *data, u8 *mac, | 181 | static void rt2x00lib_bc_buffer_iter(void *data, u8 *mac, |
172 | struct ieee80211_vif *vif) | 182 | struct ieee80211_vif *vif) |
173 | { | 183 | { |
174 | struct rt2x00_intf *intf = vif_to_intf(vif); | 184 | struct rt2x00_dev *rt2x00dev = data; |
185 | struct sk_buff *skb; | ||
186 | |||
187 | /* | ||
188 | * Only AP mode interfaces do broad- and multicast buffering | ||
189 | */ | ||
190 | if (vif->type != NL80211_IFTYPE_AP) | ||
191 | return; | ||
192 | |||
193 | /* | ||
194 | * Send out buffered broad- and multicast frames | ||
195 | */ | ||
196 | skb = ieee80211_get_buffered_bc(rt2x00dev->hw, vif); | ||
197 | while (skb) { | ||
198 | rt2x00mac_tx(rt2x00dev->hw, skb); | ||
199 | skb = ieee80211_get_buffered_bc(rt2x00dev->hw, vif); | ||
200 | } | ||
201 | } | ||
202 | |||
203 | static void rt2x00lib_beaconupdate_iter(void *data, u8 *mac, | ||
204 | struct ieee80211_vif *vif) | ||
205 | { | ||
206 | struct rt2x00_dev *rt2x00dev = data; | ||
175 | 207 | ||
176 | if (vif->type != NL80211_IFTYPE_AP && | 208 | if (vif->type != NL80211_IFTYPE_AP && |
177 | vif->type != NL80211_IFTYPE_ADHOC && | 209 | vif->type != NL80211_IFTYPE_ADHOC && |
@@ -179,9 +211,7 @@ static void rt2x00lib_beacondone_iter(void *data, u8 *mac, | |||
179 | vif->type != NL80211_IFTYPE_WDS) | 211 | vif->type != NL80211_IFTYPE_WDS) |
180 | return; | 212 | return; |
181 | 213 | ||
182 | spin_lock(&intf->lock); | 214 | rt2x00queue_update_beacon(rt2x00dev, vif, true); |
183 | intf->delayed_flags |= DELAYED_UPDATE_BEACON; | ||
184 | spin_unlock(&intf->lock); | ||
185 | } | 215 | } |
186 | 216 | ||
187 | void rt2x00lib_beacondone(struct rt2x00_dev *rt2x00dev) | 217 | void rt2x00lib_beacondone(struct rt2x00_dev *rt2x00dev) |
@@ -189,14 +219,37 @@ void rt2x00lib_beacondone(struct rt2x00_dev *rt2x00dev) | |||
189 | if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) | 219 | if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) |
190 | return; | 220 | return; |
191 | 221 | ||
192 | ieee80211_iterate_active_interfaces_atomic(rt2x00dev->hw, | 222 | /* send buffered bc/mc frames out for every bssid */ |
193 | rt2x00lib_beacondone_iter, | 223 | ieee80211_iterate_active_interfaces(rt2x00dev->hw, |
194 | rt2x00dev); | 224 | rt2x00lib_bc_buffer_iter, |
225 | rt2x00dev); | ||
226 | /* | ||
227 | * Devices with pre tbtt interrupt don't need to update the beacon | ||
228 | * here as they will fetch the next beacon directly prior to | ||
229 | * transmission. | ||
230 | */ | ||
231 | if (test_bit(DRIVER_SUPPORT_PRE_TBTT_INTERRUPT, &rt2x00dev->flags)) | ||
232 | return; | ||
195 | 233 | ||
196 | ieee80211_queue_work(rt2x00dev->hw, &rt2x00dev->intf_work); | 234 | /* fetch next beacon */ |
235 | ieee80211_iterate_active_interfaces(rt2x00dev->hw, | ||
236 | rt2x00lib_beaconupdate_iter, | ||
237 | rt2x00dev); | ||
197 | } | 238 | } |
198 | EXPORT_SYMBOL_GPL(rt2x00lib_beacondone); | 239 | EXPORT_SYMBOL_GPL(rt2x00lib_beacondone); |
199 | 240 | ||
241 | void rt2x00lib_pretbtt(struct rt2x00_dev *rt2x00dev) | ||
242 | { | ||
243 | if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) | ||
244 | return; | ||
245 | |||
246 | /* fetch next beacon */ | ||
247 | ieee80211_iterate_active_interfaces(rt2x00dev->hw, | ||
248 | rt2x00lib_beaconupdate_iter, | ||
249 | rt2x00dev); | ||
250 | } | ||
251 | EXPORT_SYMBOL_GPL(rt2x00lib_pretbtt); | ||
252 | |||
200 | void rt2x00lib_txdone(struct queue_entry *entry, | 253 | void rt2x00lib_txdone(struct queue_entry *entry, |
201 | struct txdone_entry_desc *txdesc) | 254 | struct txdone_entry_desc *txdesc) |
202 | { | 255 | { |
@@ -330,9 +383,17 @@ void rt2x00lib_txdone(struct queue_entry *entry, | |||
330 | * send the status report back. | 383 | * send the status report back. |
331 | */ | 384 | */ |
332 | if (!(skbdesc_flags & SKBDESC_NOT_MAC80211)) | 385 | if (!(skbdesc_flags & SKBDESC_NOT_MAC80211)) |
333 | ieee80211_tx_status_irqsafe(rt2x00dev->hw, entry->skb); | 386 | /* |
387 | * Only PCI and SOC devices process the tx status in process | ||
388 | * context. Hence use ieee80211_tx_status for PCI and SOC | ||
389 | * devices and stick to ieee80211_tx_status_irqsafe for USB. | ||
390 | */ | ||
391 | if (rt2x00_is_usb(rt2x00dev)) | ||
392 | ieee80211_tx_status_irqsafe(rt2x00dev->hw, entry->skb); | ||
393 | else | ||
394 | ieee80211_tx_status(rt2x00dev->hw, entry->skb); | ||
334 | else | 395 | else |
335 | dev_kfree_skb_irq(entry->skb); | 396 | dev_kfree_skb_any(entry->skb); |
336 | 397 | ||
337 | /* | 398 | /* |
338 | * Make this entry available for reuse. | 399 | * Make this entry available for reuse. |
@@ -479,7 +540,16 @@ void rt2x00lib_rxdone(struct rt2x00_dev *rt2x00dev, | |||
479 | */ | 540 | */ |
480 | rt2x00debug_dump_frame(rt2x00dev, DUMP_FRAME_RXDONE, entry->skb); | 541 | rt2x00debug_dump_frame(rt2x00dev, DUMP_FRAME_RXDONE, entry->skb); |
481 | memcpy(IEEE80211_SKB_RXCB(entry->skb), rx_status, sizeof(*rx_status)); | 542 | memcpy(IEEE80211_SKB_RXCB(entry->skb), rx_status, sizeof(*rx_status)); |
482 | ieee80211_rx_irqsafe(rt2x00dev->hw, entry->skb); | 543 | |
544 | /* | ||
545 | * Currently only PCI and SOC devices handle rx interrupts in process | ||
546 | * context. Hence, use ieee80211_rx_irqsafe for USB and ieee80211_rx_ni | ||
547 | * for PCI and SOC devices. | ||
548 | */ | ||
549 | if (rt2x00_is_usb(rt2x00dev)) | ||
550 | ieee80211_rx_irqsafe(rt2x00dev->hw, entry->skb); | ||
551 | else | ||
552 | ieee80211_rx_ni(rt2x00dev->hw, entry->skb); | ||
483 | 553 | ||
484 | /* | 554 | /* |
485 | * Replace the skb with the freshly allocated one. | 555 | * Replace the skb with the freshly allocated one. |
diff --git a/drivers/net/wireless/rt2x00/rt2x00lib.h b/drivers/net/wireless/rt2x00/rt2x00lib.h index ed27de1de57b..dc5c6574aaf4 100644 --- a/drivers/net/wireless/rt2x00/rt2x00lib.h +++ b/drivers/net/wireless/rt2x00/rt2x00lib.h | |||
@@ -30,6 +30,7 @@ | |||
30 | /* | 30 | /* |
31 | * Interval defines | 31 | * Interval defines |
32 | */ | 32 | */ |
33 | #define WATCHDOG_INTERVAL round_jiffies_relative(HZ) | ||
33 | #define LINK_TUNE_INTERVAL round_jiffies_relative(HZ) | 34 | #define LINK_TUNE_INTERVAL round_jiffies_relative(HZ) |
34 | 35 | ||
35 | /* | 36 | /* |
@@ -257,11 +258,30 @@ void rt2x00link_stop_tuner(struct rt2x00_dev *rt2x00dev); | |||
257 | void rt2x00link_reset_tuner(struct rt2x00_dev *rt2x00dev, bool antenna); | 258 | void rt2x00link_reset_tuner(struct rt2x00_dev *rt2x00dev, bool antenna); |
258 | 259 | ||
259 | /** | 260 | /** |
260 | * rt2x00link_register - Initialize link tuning functionality | 261 | * rt2x00link_start_watchdog - Start periodic watchdog monitoring |
261 | * @rt2x00dev: Pointer to &struct rt2x00_dev. | 262 | * @rt2x00dev: Pointer to &struct rt2x00_dev. |
262 | * | 263 | * |
263 | * Initialize work structure and all link tuning related | 264 | * This start the watchdog periodic work, this work will |
264 | * parameters. This will not start the link tuning process itself. | 265 | *be executed periodically until &rt2x00link_stop_watchdog has |
266 | * been called. | ||
267 | */ | ||
268 | void rt2x00link_start_watchdog(struct rt2x00_dev *rt2x00dev); | ||
269 | |||
270 | /** | ||
271 | * rt2x00link_stop_watchdog - Stop periodic watchdog monitoring | ||
272 | * @rt2x00dev: Pointer to &struct rt2x00_dev. | ||
273 | * | ||
274 | * After this function completed the watchdog monitoring will not | ||
275 | * be running until &rt2x00link_start_watchdog is called. | ||
276 | */ | ||
277 | void rt2x00link_stop_watchdog(struct rt2x00_dev *rt2x00dev); | ||
278 | |||
279 | /** | ||
280 | * rt2x00link_register - Initialize link tuning & watchdog functionality | ||
281 | * @rt2x00dev: Pointer to &struct rt2x00_dev. | ||
282 | * | ||
283 | * Initialize work structure and all link tuning and watchdog related | ||
284 | * parameters. This will not start the periodic work itself. | ||
265 | */ | 285 | */ |
266 | void rt2x00link_register(struct rt2x00_dev *rt2x00dev); | 286 | void rt2x00link_register(struct rt2x00_dev *rt2x00dev); |
267 | 287 | ||
diff --git a/drivers/net/wireless/rt2x00/rt2x00link.c b/drivers/net/wireless/rt2x00/rt2x00link.c index 2f8136cab7d8..666cef3f8472 100644 --- a/drivers/net/wireless/rt2x00/rt2x00link.c +++ b/drivers/net/wireless/rt2x00/rt2x00link.c | |||
@@ -278,6 +278,15 @@ void rt2x00link_start_tuner(struct rt2x00_dev *rt2x00dev) | |||
278 | if (!rt2x00dev->intf_sta_count) | 278 | if (!rt2x00dev->intf_sta_count) |
279 | return; | 279 | return; |
280 | 280 | ||
281 | /** | ||
282 | * While scanning, link tuning is disabled. By default | ||
283 | * the most sensitive settings will be used to make sure | ||
284 | * that all beacons and probe responses will be recieved | ||
285 | * during the scan. | ||
286 | */ | ||
287 | if (test_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags)) | ||
288 | return; | ||
289 | |||
281 | rt2x00link_reset_tuner(rt2x00dev, false); | 290 | rt2x00link_reset_tuner(rt2x00dev, false); |
282 | 291 | ||
283 | if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) | 292 | if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) |
@@ -293,6 +302,7 @@ void rt2x00link_stop_tuner(struct rt2x00_dev *rt2x00dev) | |||
293 | void rt2x00link_reset_tuner(struct rt2x00_dev *rt2x00dev, bool antenna) | 302 | void rt2x00link_reset_tuner(struct rt2x00_dev *rt2x00dev, bool antenna) |
294 | { | 303 | { |
295 | struct link_qual *qual = &rt2x00dev->link.qual; | 304 | struct link_qual *qual = &rt2x00dev->link.qual; |
305 | u8 vgc_level = qual->vgc_level_reg; | ||
296 | 306 | ||
297 | if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) | 307 | if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) |
298 | return; | 308 | return; |
@@ -309,6 +319,13 @@ void rt2x00link_reset_tuner(struct rt2x00_dev *rt2x00dev, bool antenna) | |||
309 | memset(qual, 0, sizeof(*qual)); | 319 | memset(qual, 0, sizeof(*qual)); |
310 | 320 | ||
311 | /* | 321 | /* |
322 | * Restore the VGC level as stored in the registers, | ||
323 | * the driver can use this to determine if the register | ||
324 | * must be updated during reset or not. | ||
325 | */ | ||
326 | qual->vgc_level_reg = vgc_level; | ||
327 | |||
328 | /* | ||
312 | * Reset the link tuner. | 329 | * Reset the link tuner. |
313 | */ | 330 | */ |
314 | rt2x00dev->ops->lib->reset_tuner(rt2x00dev, qual); | 331 | rt2x00dev->ops->lib->reset_tuner(rt2x00dev, qual); |
@@ -338,7 +355,8 @@ static void rt2x00link_tuner(struct work_struct *work) | |||
338 | * When the radio is shutting down we should | 355 | * When the radio is shutting down we should |
339 | * immediately cease all link tuning. | 356 | * immediately cease all link tuning. |
340 | */ | 357 | */ |
341 | if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) | 358 | if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags) || |
359 | test_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags)) | ||
342 | return; | 360 | return; |
343 | 361 | ||
344 | /* | 362 | /* |
@@ -359,10 +377,11 @@ static void rt2x00link_tuner(struct work_struct *work) | |||
359 | qual->rssi = link->avg_rssi.avg; | 377 | qual->rssi = link->avg_rssi.avg; |
360 | 378 | ||
361 | /* | 379 | /* |
362 | * Only perform the link tuning when Link tuning | 380 | * Check if link tuning is supported by the hardware, some hardware |
363 | * has been enabled (This could have been disabled from the EEPROM). | 381 | * do not support link tuning at all, while other devices can disable |
382 | * the feature from the EEPROM. | ||
364 | */ | 383 | */ |
365 | if (!test_bit(CONFIG_DISABLE_LINK_TUNING, &rt2x00dev->flags)) | 384 | if (test_bit(DRIVER_SUPPORT_LINK_TUNING, &rt2x00dev->flags)) |
366 | rt2x00dev->ops->lib->link_tuner(rt2x00dev, qual, link->count); | 385 | rt2x00dev->ops->lib->link_tuner(rt2x00dev, qual, link->count); |
367 | 386 | ||
368 | /* | 387 | /* |
@@ -388,7 +407,45 @@ static void rt2x00link_tuner(struct work_struct *work) | |||
388 | &link->work, LINK_TUNE_INTERVAL); | 407 | &link->work, LINK_TUNE_INTERVAL); |
389 | } | 408 | } |
390 | 409 | ||
410 | void rt2x00link_start_watchdog(struct rt2x00_dev *rt2x00dev) | ||
411 | { | ||
412 | struct link *link = &rt2x00dev->link; | ||
413 | |||
414 | if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags) || | ||
415 | !test_bit(DRIVER_SUPPORT_WATCHDOG, &rt2x00dev->flags)) | ||
416 | return; | ||
417 | |||
418 | ieee80211_queue_delayed_work(rt2x00dev->hw, | ||
419 | &link->watchdog_work, WATCHDOG_INTERVAL); | ||
420 | } | ||
421 | |||
422 | void rt2x00link_stop_watchdog(struct rt2x00_dev *rt2x00dev) | ||
423 | { | ||
424 | cancel_delayed_work_sync(&rt2x00dev->link.watchdog_work); | ||
425 | } | ||
426 | |||
427 | static void rt2x00link_watchdog(struct work_struct *work) | ||
428 | { | ||
429 | struct rt2x00_dev *rt2x00dev = | ||
430 | container_of(work, struct rt2x00_dev, link.watchdog_work.work); | ||
431 | struct link *link = &rt2x00dev->link; | ||
432 | |||
433 | /* | ||
434 | * When the radio is shutting down we should | ||
435 | * immediately cease the watchdog monitoring. | ||
436 | */ | ||
437 | if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) | ||
438 | return; | ||
439 | |||
440 | rt2x00dev->ops->lib->watchdog(rt2x00dev); | ||
441 | |||
442 | if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) | ||
443 | ieee80211_queue_delayed_work(rt2x00dev->hw, | ||
444 | &link->watchdog_work, WATCHDOG_INTERVAL); | ||
445 | } | ||
446 | |||
391 | void rt2x00link_register(struct rt2x00_dev *rt2x00dev) | 447 | void rt2x00link_register(struct rt2x00_dev *rt2x00dev) |
392 | { | 448 | { |
449 | INIT_DELAYED_WORK(&rt2x00dev->link.watchdog_work, rt2x00link_watchdog); | ||
393 | INIT_DELAYED_WORK(&rt2x00dev->link.work, rt2x00link_tuner); | 450 | INIT_DELAYED_WORK(&rt2x00dev->link.work, rt2x00link_tuner); |
394 | } | 451 | } |
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c index 3b838c0bf59f..4d8d2320c9fd 100644 --- a/drivers/net/wireless/rt2x00/rt2x00mac.c +++ b/drivers/net/wireless/rt2x00/rt2x00mac.c | |||
@@ -347,9 +347,11 @@ int rt2x00mac_config(struct ieee80211_hw *hw, u32 changed) | |||
347 | /* | 347 | /* |
348 | * Some configuration parameters (e.g. channel and antenna values) can | 348 | * Some configuration parameters (e.g. channel and antenna values) can |
349 | * only be set when the radio is enabled, but do require the RX to | 349 | * only be set when the radio is enabled, but do require the RX to |
350 | * be off. | 350 | * be off. During this period we should keep link tuning enabled, |
351 | * if for any reason the link tuner must be reset, this will be | ||
352 | * handled by rt2x00lib_config(). | ||
351 | */ | 353 | */ |
352 | rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_OFF); | 354 | rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_OFF_LINK); |
353 | 355 | ||
354 | /* | 356 | /* |
355 | * When we've just turned on the radio, we want to reprogram | 357 | * When we've just turned on the radio, we want to reprogram |
@@ -367,7 +369,7 @@ int rt2x00mac_config(struct ieee80211_hw *hw, u32 changed) | |||
367 | rt2x00lib_config_antenna(rt2x00dev, rt2x00dev->default_ant); | 369 | rt2x00lib_config_antenna(rt2x00dev, rt2x00dev->default_ant); |
368 | 370 | ||
369 | /* Turn RX back on */ | 371 | /* Turn RX back on */ |
370 | rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON); | 372 | rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON_LINK); |
371 | 373 | ||
372 | return 0; | 374 | return 0; |
373 | } | 375 | } |
@@ -431,12 +433,36 @@ void rt2x00mac_configure_filter(struct ieee80211_hw *hw, | |||
431 | } | 433 | } |
432 | EXPORT_SYMBOL_GPL(rt2x00mac_configure_filter); | 434 | EXPORT_SYMBOL_GPL(rt2x00mac_configure_filter); |
433 | 435 | ||
436 | static void rt2x00mac_set_tim_iter(void *data, u8 *mac, | ||
437 | struct ieee80211_vif *vif) | ||
438 | { | ||
439 | struct rt2x00_intf *intf = vif_to_intf(vif); | ||
440 | |||
441 | if (vif->type != NL80211_IFTYPE_AP && | ||
442 | vif->type != NL80211_IFTYPE_ADHOC && | ||
443 | vif->type != NL80211_IFTYPE_MESH_POINT && | ||
444 | vif->type != NL80211_IFTYPE_WDS) | ||
445 | return; | ||
446 | |||
447 | spin_lock(&intf->lock); | ||
448 | intf->delayed_flags |= DELAYED_UPDATE_BEACON; | ||
449 | spin_unlock(&intf->lock); | ||
450 | } | ||
451 | |||
434 | int rt2x00mac_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta, | 452 | int rt2x00mac_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta, |
435 | bool set) | 453 | bool set) |
436 | { | 454 | { |
437 | struct rt2x00_dev *rt2x00dev = hw->priv; | 455 | struct rt2x00_dev *rt2x00dev = hw->priv; |
438 | 456 | ||
439 | rt2x00lib_beacondone(rt2x00dev); | 457 | if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) |
458 | return 0; | ||
459 | |||
460 | ieee80211_iterate_active_interfaces_atomic(rt2x00dev->hw, | ||
461 | rt2x00mac_set_tim_iter, | ||
462 | rt2x00dev); | ||
463 | |||
464 | /* queue work to upodate the beacon template */ | ||
465 | ieee80211_queue_work(rt2x00dev->hw, &rt2x00dev->intf_work); | ||
440 | return 0; | 466 | return 0; |
441 | } | 467 | } |
442 | EXPORT_SYMBOL_GPL(rt2x00mac_set_tim); | 468 | EXPORT_SYMBOL_GPL(rt2x00mac_set_tim); |
@@ -540,6 +566,22 @@ int rt2x00mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, | |||
540 | EXPORT_SYMBOL_GPL(rt2x00mac_set_key); | 566 | EXPORT_SYMBOL_GPL(rt2x00mac_set_key); |
541 | #endif /* CONFIG_RT2X00_LIB_CRYPTO */ | 567 | #endif /* CONFIG_RT2X00_LIB_CRYPTO */ |
542 | 568 | ||
569 | void rt2x00mac_sw_scan_start(struct ieee80211_hw *hw) | ||
570 | { | ||
571 | struct rt2x00_dev *rt2x00dev = hw->priv; | ||
572 | __set_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags); | ||
573 | rt2x00link_stop_tuner(rt2x00dev); | ||
574 | } | ||
575 | EXPORT_SYMBOL_GPL(rt2x00mac_sw_scan_start); | ||
576 | |||
577 | void rt2x00mac_sw_scan_complete(struct ieee80211_hw *hw) | ||
578 | { | ||
579 | struct rt2x00_dev *rt2x00dev = hw->priv; | ||
580 | __clear_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags); | ||
581 | rt2x00link_start_tuner(rt2x00dev); | ||
582 | } | ||
583 | EXPORT_SYMBOL_GPL(rt2x00mac_sw_scan_complete); | ||
584 | |||
543 | int rt2x00mac_get_stats(struct ieee80211_hw *hw, | 585 | int rt2x00mac_get_stats(struct ieee80211_hw *hw, |
544 | struct ieee80211_low_level_stats *stats) | 586 | struct ieee80211_low_level_stats *stats) |
545 | { | 587 | { |
diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c index fc9da8358784..19b262e1ddbe 100644 --- a/drivers/net/wireless/rt2x00/rt2x00pci.c +++ b/drivers/net/wireless/rt2x00/rt2x00pci.c | |||
@@ -153,8 +153,10 @@ int rt2x00pci_initialize(struct rt2x00_dev *rt2x00dev) | |||
153 | /* | 153 | /* |
154 | * Register interrupt handler. | 154 | * Register interrupt handler. |
155 | */ | 155 | */ |
156 | status = request_irq(rt2x00dev->irq, rt2x00dev->ops->lib->irq_handler, | 156 | status = request_threaded_irq(rt2x00dev->irq, |
157 | IRQF_SHARED, rt2x00dev->name, rt2x00dev); | 157 | rt2x00dev->ops->lib->irq_handler, |
158 | rt2x00dev->ops->lib->irq_handler_thread, | ||
159 | IRQF_SHARED, rt2x00dev->name, rt2x00dev); | ||
158 | if (status) { | 160 | if (status) { |
159 | ERROR(rt2x00dev, "IRQ %d allocation failed (error %d).\n", | 161 | ERROR(rt2x00dev, "IRQ %d allocation failed (error %d).\n", |
160 | rt2x00dev->irq, status); | 162 | rt2x00dev->irq, status); |
diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c index 5097fe0f9f51..a3401d301058 100644 --- a/drivers/net/wireless/rt2x00/rt2x00queue.c +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c | |||
@@ -688,9 +688,11 @@ void rt2x00queue_index_inc(struct data_queue *queue, enum queue_index index) | |||
688 | 688 | ||
689 | if (index == Q_INDEX) { | 689 | if (index == Q_INDEX) { |
690 | queue->length++; | 690 | queue->length++; |
691 | queue->last_index = jiffies; | ||
691 | } else if (index == Q_INDEX_DONE) { | 692 | } else if (index == Q_INDEX_DONE) { |
692 | queue->length--; | 693 | queue->length--; |
693 | queue->count++; | 694 | queue->count++; |
695 | queue->last_index_done = jiffies; | ||
694 | } | 696 | } |
695 | 697 | ||
696 | spin_unlock_irqrestore(&queue->lock, irqflags); | 698 | spin_unlock_irqrestore(&queue->lock, irqflags); |
@@ -704,6 +706,8 @@ static void rt2x00queue_reset(struct data_queue *queue) | |||
704 | 706 | ||
705 | queue->count = 0; | 707 | queue->count = 0; |
706 | queue->length = 0; | 708 | queue->length = 0; |
709 | queue->last_index = jiffies; | ||
710 | queue->last_index_done = jiffies; | ||
707 | memset(queue->index, 0, sizeof(queue->index)); | 711 | memset(queue->index, 0, sizeof(queue->index)); |
708 | 712 | ||
709 | spin_unlock_irqrestore(&queue->lock, irqflags); | 713 | spin_unlock_irqrestore(&queue->lock, irqflags); |
diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.h b/drivers/net/wireless/rt2x00/rt2x00queue.h index bd54f55a8cb9..191e7775a9c0 100644 --- a/drivers/net/wireless/rt2x00/rt2x00queue.h +++ b/drivers/net/wireless/rt2x00/rt2x00queue.h | |||
@@ -446,6 +446,8 @@ struct data_queue { | |||
446 | enum data_queue_qid qid; | 446 | enum data_queue_qid qid; |
447 | 447 | ||
448 | spinlock_t lock; | 448 | spinlock_t lock; |
449 | unsigned long last_index; | ||
450 | unsigned long last_index_done; | ||
449 | unsigned int count; | 451 | unsigned int count; |
450 | unsigned short limit; | 452 | unsigned short limit; |
451 | unsigned short threshold; | 453 | unsigned short threshold; |
@@ -599,6 +601,15 @@ static inline int rt2x00queue_threshold(struct data_queue *queue) | |||
599 | } | 601 | } |
600 | 602 | ||
601 | /** | 603 | /** |
604 | * rt2x00queue_timeout - Check if a timeout occured for this queue | ||
605 | * @queue: Queue to check. | ||
606 | */ | ||
607 | static inline int rt2x00queue_timeout(struct data_queue *queue) | ||
608 | { | ||
609 | return time_after(queue->last_index, queue->last_index_done + (HZ / 10)); | ||
610 | } | ||
611 | |||
612 | /** | ||
602 | * _rt2x00_desc_read - Read a word from the hardware descriptor. | 613 | * _rt2x00_desc_read - Read a word from the hardware descriptor. |
603 | * @desc: Base descriptor address | 614 | * @desc: Base descriptor address |
604 | * @word: Word index from where the descriptor should be read. | 615 | * @word: Word index from where the descriptor should be read. |
diff --git a/drivers/net/wireless/rt2x00/rt2x00reg.h b/drivers/net/wireless/rt2x00/rt2x00reg.h index b9fe94873ee0..cef94621cef7 100644 --- a/drivers/net/wireless/rt2x00/rt2x00reg.h +++ b/drivers/net/wireless/rt2x00/rt2x00reg.h | |||
@@ -63,7 +63,8 @@ enum led_mode { | |||
63 | enum tsf_sync { | 63 | enum tsf_sync { |
64 | TSF_SYNC_NONE = 0, | 64 | TSF_SYNC_NONE = 0, |
65 | TSF_SYNC_INFRA = 1, | 65 | TSF_SYNC_INFRA = 1, |
66 | TSF_SYNC_BEACON = 2, | 66 | TSF_SYNC_ADHOC = 2, |
67 | TSF_SYNC_AP_NONE = 3, | ||
67 | }; | 68 | }; |
68 | 69 | ||
69 | /* | 70 | /* |
@@ -88,6 +89,8 @@ enum dev_state { | |||
88 | STATE_RADIO_RX_OFF_LINK, | 89 | STATE_RADIO_RX_OFF_LINK, |
89 | STATE_RADIO_IRQ_ON, | 90 | STATE_RADIO_IRQ_ON, |
90 | STATE_RADIO_IRQ_OFF, | 91 | STATE_RADIO_IRQ_OFF, |
92 | STATE_RADIO_IRQ_ON_ISR, | ||
93 | STATE_RADIO_IRQ_OFF_ISR, | ||
91 | }; | 94 | }; |
92 | 95 | ||
93 | /* | 96 | /* |
diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.c b/drivers/net/wireless/rt2x00/rt2x00usb.c index a22837c560fd..ff3a36622d1b 100644 --- a/drivers/net/wireless/rt2x00/rt2x00usb.c +++ b/drivers/net/wireless/rt2x00/rt2x00usb.c | |||
@@ -292,6 +292,56 @@ void rt2x00usb_kill_tx_queue(struct rt2x00_dev *rt2x00dev, | |||
292 | } | 292 | } |
293 | EXPORT_SYMBOL_GPL(rt2x00usb_kill_tx_queue); | 293 | EXPORT_SYMBOL_GPL(rt2x00usb_kill_tx_queue); |
294 | 294 | ||
295 | static void rt2x00usb_watchdog_reset_tx(struct data_queue *queue) | ||
296 | { | ||
297 | struct queue_entry_priv_usb *entry_priv; | ||
298 | unsigned short threshold = queue->threshold; | ||
299 | |||
300 | WARNING(queue->rt2x00dev, "TX queue %d timed out, invoke reset", queue->qid); | ||
301 | |||
302 | /* | ||
303 | * Temporarily disable the TX queue, this will force mac80211 | ||
304 | * to use the other queues until this queue has been restored. | ||
305 | * | ||
306 | * Set the queue threshold to the queue limit. This prevents the | ||
307 | * queue from being enabled during the txdone handler. | ||
308 | */ | ||
309 | queue->threshold = queue->limit; | ||
310 | ieee80211_stop_queue(queue->rt2x00dev->hw, queue->qid); | ||
311 | |||
312 | /* | ||
313 | * Reset all currently uploaded TX frames. | ||
314 | */ | ||
315 | while (!rt2x00queue_empty(queue)) { | ||
316 | entry_priv = rt2x00queue_get_entry(queue, Q_INDEX_DONE)->priv_data; | ||
317 | usb_kill_urb(entry_priv->urb); | ||
318 | |||
319 | /* | ||
320 | * We need a short delay here to wait for | ||
321 | * the URB to be canceled and invoked the tx_done handler. | ||
322 | */ | ||
323 | udelay(200); | ||
324 | } | ||
325 | |||
326 | /* | ||
327 | * The queue has been reset, and mac80211 is allowed to use the | ||
328 | * queue again. | ||
329 | */ | ||
330 | queue->threshold = threshold; | ||
331 | ieee80211_wake_queue(queue->rt2x00dev->hw, queue->qid); | ||
332 | } | ||
333 | |||
334 | void rt2x00usb_watchdog(struct rt2x00_dev *rt2x00dev) | ||
335 | { | ||
336 | struct data_queue *queue; | ||
337 | |||
338 | tx_queue_for_each(rt2x00dev, queue) { | ||
339 | if (rt2x00queue_timeout(queue)) | ||
340 | rt2x00usb_watchdog_reset_tx(queue); | ||
341 | } | ||
342 | } | ||
343 | EXPORT_SYMBOL_GPL(rt2x00usb_watchdog); | ||
344 | |||
295 | /* | 345 | /* |
296 | * RX data handlers. | 346 | * RX data handlers. |
297 | */ | 347 | */ |
diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.h b/drivers/net/wireless/rt2x00/rt2x00usb.h index 2b7a1889e72f..d3d3ddc40875 100644 --- a/drivers/net/wireless/rt2x00/rt2x00usb.h +++ b/drivers/net/wireless/rt2x00/rt2x00usb.h | |||
@@ -399,6 +399,16 @@ void rt2x00usb_kick_tx_queue(struct rt2x00_dev *rt2x00dev, | |||
399 | void rt2x00usb_kill_tx_queue(struct rt2x00_dev *rt2x00dev, | 399 | void rt2x00usb_kill_tx_queue(struct rt2x00_dev *rt2x00dev, |
400 | const enum data_queue_qid qid); | 400 | const enum data_queue_qid qid); |
401 | 401 | ||
402 | /** | ||
403 | * rt2x00usb_watchdog - Watchdog for USB communication | ||
404 | * @rt2x00dev: Pointer to &struct rt2x00_dev | ||
405 | * | ||
406 | * Check the health of the USB communication and determine | ||
407 | * if timeouts have occured. If this is the case, this function | ||
408 | * will reset all communication to restore functionality again. | ||
409 | */ | ||
410 | void rt2x00usb_watchdog(struct rt2x00_dev *rt2x00dev); | ||
411 | |||
402 | /* | 412 | /* |
403 | * Device initialization handlers. | 413 | * Device initialization handlers. |
404 | */ | 414 | */ |
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c index 0123fbc22ca2..e539c6cb636f 100644 --- a/drivers/net/wireless/rt2x00/rt61pci.c +++ b/drivers/net/wireless/rt2x00/rt61pci.c | |||
@@ -1622,7 +1622,8 @@ static void rt61pci_toggle_rx(struct rt2x00_dev *rt2x00dev, | |||
1622 | static void rt61pci_toggle_irq(struct rt2x00_dev *rt2x00dev, | 1622 | static void rt61pci_toggle_irq(struct rt2x00_dev *rt2x00dev, |
1623 | enum dev_state state) | 1623 | enum dev_state state) |
1624 | { | 1624 | { |
1625 | int mask = (state == STATE_RADIO_IRQ_OFF); | 1625 | int mask = (state == STATE_RADIO_IRQ_OFF) || |
1626 | (state == STATE_RADIO_IRQ_OFF_ISR); | ||
1626 | u32 reg; | 1627 | u32 reg; |
1627 | 1628 | ||
1628 | /* | 1629 | /* |
@@ -1739,7 +1740,9 @@ static int rt61pci_set_device_state(struct rt2x00_dev *rt2x00dev, | |||
1739 | rt61pci_toggle_rx(rt2x00dev, state); | 1740 | rt61pci_toggle_rx(rt2x00dev, state); |
1740 | break; | 1741 | break; |
1741 | case STATE_RADIO_IRQ_ON: | 1742 | case STATE_RADIO_IRQ_ON: |
1743 | case STATE_RADIO_IRQ_ON_ISR: | ||
1742 | case STATE_RADIO_IRQ_OFF: | 1744 | case STATE_RADIO_IRQ_OFF: |
1745 | case STATE_RADIO_IRQ_OFF_ISR: | ||
1743 | rt61pci_toggle_irq(rt2x00dev, state); | 1746 | rt61pci_toggle_irq(rt2x00dev, state); |
1744 | break; | 1747 | break; |
1745 | case STATE_DEEP_SLEEP: | 1748 | case STATE_DEEP_SLEEP: |
@@ -2147,27 +2150,11 @@ static void rt61pci_wakeup(struct rt2x00_dev *rt2x00dev) | |||
2147 | rt61pci_config(rt2x00dev, &libconf, IEEE80211_CONF_CHANGE_PS); | 2150 | rt61pci_config(rt2x00dev, &libconf, IEEE80211_CONF_CHANGE_PS); |
2148 | } | 2151 | } |
2149 | 2152 | ||
2150 | static irqreturn_t rt61pci_interrupt(int irq, void *dev_instance) | 2153 | static irqreturn_t rt61pci_interrupt_thread(int irq, void *dev_instance) |
2151 | { | 2154 | { |
2152 | struct rt2x00_dev *rt2x00dev = dev_instance; | 2155 | struct rt2x00_dev *rt2x00dev = dev_instance; |
2153 | u32 reg_mcu; | 2156 | u32 reg = rt2x00dev->irqvalue[0]; |
2154 | u32 reg; | 2157 | u32 reg_mcu = rt2x00dev->irqvalue[1]; |
2155 | |||
2156 | /* | ||
2157 | * Get the interrupt sources & saved to local variable. | ||
2158 | * Write register value back to clear pending interrupts. | ||
2159 | */ | ||
2160 | rt2x00pci_register_read(rt2x00dev, MCU_INT_SOURCE_CSR, ®_mcu); | ||
2161 | rt2x00pci_register_write(rt2x00dev, MCU_INT_SOURCE_CSR, reg_mcu); | ||
2162 | |||
2163 | rt2x00pci_register_read(rt2x00dev, INT_SOURCE_CSR, ®); | ||
2164 | rt2x00pci_register_write(rt2x00dev, INT_SOURCE_CSR, reg); | ||
2165 | |||
2166 | if (!reg && !reg_mcu) | ||
2167 | return IRQ_NONE; | ||
2168 | |||
2169 | if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) | ||
2170 | return IRQ_HANDLED; | ||
2171 | 2158 | ||
2172 | /* | 2159 | /* |
2173 | * Handle interrupts, walk through all bits | 2160 | * Handle interrupts, walk through all bits |
@@ -2206,9 +2193,45 @@ static irqreturn_t rt61pci_interrupt(int irq, void *dev_instance) | |||
2206 | if (rt2x00_get_field32(reg, INT_SOURCE_CSR_BEACON_DONE)) | 2193 | if (rt2x00_get_field32(reg, INT_SOURCE_CSR_BEACON_DONE)) |
2207 | rt2x00lib_beacondone(rt2x00dev); | 2194 | rt2x00lib_beacondone(rt2x00dev); |
2208 | 2195 | ||
2196 | /* Enable interrupts again. */ | ||
2197 | rt2x00dev->ops->lib->set_device_state(rt2x00dev, | ||
2198 | STATE_RADIO_IRQ_ON_ISR); | ||
2209 | return IRQ_HANDLED; | 2199 | return IRQ_HANDLED; |
2210 | } | 2200 | } |
2211 | 2201 | ||
2202 | |||
2203 | static irqreturn_t rt61pci_interrupt(int irq, void *dev_instance) | ||
2204 | { | ||
2205 | struct rt2x00_dev *rt2x00dev = dev_instance; | ||
2206 | u32 reg_mcu; | ||
2207 | u32 reg; | ||
2208 | |||
2209 | /* | ||
2210 | * Get the interrupt sources & saved to local variable. | ||
2211 | * Write register value back to clear pending interrupts. | ||
2212 | */ | ||
2213 | rt2x00pci_register_read(rt2x00dev, MCU_INT_SOURCE_CSR, ®_mcu); | ||
2214 | rt2x00pci_register_write(rt2x00dev, MCU_INT_SOURCE_CSR, reg_mcu); | ||
2215 | |||
2216 | rt2x00pci_register_read(rt2x00dev, INT_SOURCE_CSR, ®); | ||
2217 | rt2x00pci_register_write(rt2x00dev, INT_SOURCE_CSR, reg); | ||
2218 | |||
2219 | if (!reg && !reg_mcu) | ||
2220 | return IRQ_NONE; | ||
2221 | |||
2222 | if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags)) | ||
2223 | return IRQ_HANDLED; | ||
2224 | |||
2225 | /* Store irqvalues for use in the interrupt thread. */ | ||
2226 | rt2x00dev->irqvalue[0] = reg; | ||
2227 | rt2x00dev->irqvalue[1] = reg_mcu; | ||
2228 | |||
2229 | /* Disable interrupts, will be enabled again in the interrupt thread. */ | ||
2230 | rt2x00dev->ops->lib->set_device_state(rt2x00dev, | ||
2231 | STATE_RADIO_IRQ_OFF_ISR); | ||
2232 | return IRQ_WAKE_THREAD; | ||
2233 | } | ||
2234 | |||
2212 | /* | 2235 | /* |
2213 | * Device probe functions. | 2236 | * Device probe functions. |
2214 | */ | 2237 | */ |
@@ -2690,6 +2713,7 @@ static int rt61pci_probe_hw(struct rt2x00_dev *rt2x00dev) | |||
2690 | __set_bit(DRIVER_REQUIRE_DMA, &rt2x00dev->flags); | 2713 | __set_bit(DRIVER_REQUIRE_DMA, &rt2x00dev->flags); |
2691 | if (!modparam_nohwcrypt) | 2714 | if (!modparam_nohwcrypt) |
2692 | __set_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags); | 2715 | __set_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags); |
2716 | __set_bit(DRIVER_SUPPORT_LINK_TUNING, &rt2x00dev->flags); | ||
2693 | 2717 | ||
2694 | /* | 2718 | /* |
2695 | * Set the rssi offset. | 2719 | * Set the rssi offset. |
@@ -2781,8 +2805,9 @@ static const struct ieee80211_ops rt61pci_mac80211_ops = { | |||
2781 | .remove_interface = rt2x00mac_remove_interface, | 2805 | .remove_interface = rt2x00mac_remove_interface, |
2782 | .config = rt2x00mac_config, | 2806 | .config = rt2x00mac_config, |
2783 | .configure_filter = rt2x00mac_configure_filter, | 2807 | .configure_filter = rt2x00mac_configure_filter, |
2784 | .set_tim = rt2x00mac_set_tim, | ||
2785 | .set_key = rt2x00mac_set_key, | 2808 | .set_key = rt2x00mac_set_key, |
2809 | .sw_scan_start = rt2x00mac_sw_scan_start, | ||
2810 | .sw_scan_complete = rt2x00mac_sw_scan_complete, | ||
2786 | .get_stats = rt2x00mac_get_stats, | 2811 | .get_stats = rt2x00mac_get_stats, |
2787 | .bss_info_changed = rt2x00mac_bss_info_changed, | 2812 | .bss_info_changed = rt2x00mac_bss_info_changed, |
2788 | .conf_tx = rt61pci_conf_tx, | 2813 | .conf_tx = rt61pci_conf_tx, |
@@ -2792,6 +2817,7 @@ static const struct ieee80211_ops rt61pci_mac80211_ops = { | |||
2792 | 2817 | ||
2793 | static const struct rt2x00lib_ops rt61pci_rt2x00_ops = { | 2818 | static const struct rt2x00lib_ops rt61pci_rt2x00_ops = { |
2794 | .irq_handler = rt61pci_interrupt, | 2819 | .irq_handler = rt61pci_interrupt, |
2820 | .irq_handler_thread = rt61pci_interrupt_thread, | ||
2795 | .probe_hw = rt61pci_probe_hw, | 2821 | .probe_hw = rt61pci_probe_hw, |
2796 | .get_firmware_name = rt61pci_get_firmware_name, | 2822 | .get_firmware_name = rt61pci_get_firmware_name, |
2797 | .check_firmware = rt61pci_check_firmware, | 2823 | .check_firmware = rt61pci_check_firmware, |
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c index 286dd97e51d8..aa9de18fd410 100644 --- a/drivers/net/wireless/rt2x00/rt73usb.c +++ b/drivers/net/wireless/rt2x00/rt73usb.c | |||
@@ -1400,7 +1400,9 @@ static int rt73usb_set_device_state(struct rt2x00_dev *rt2x00dev, | |||
1400 | rt73usb_toggle_rx(rt2x00dev, state); | 1400 | rt73usb_toggle_rx(rt2x00dev, state); |
1401 | break; | 1401 | break; |
1402 | case STATE_RADIO_IRQ_ON: | 1402 | case STATE_RADIO_IRQ_ON: |
1403 | case STATE_RADIO_IRQ_ON_ISR: | ||
1403 | case STATE_RADIO_IRQ_OFF: | 1404 | case STATE_RADIO_IRQ_OFF: |
1405 | case STATE_RADIO_IRQ_OFF_ISR: | ||
1404 | /* No support, but no error either */ | 1406 | /* No support, but no error either */ |
1405 | break; | 1407 | break; |
1406 | case STATE_DEEP_SLEEP: | 1408 | case STATE_DEEP_SLEEP: |
@@ -2135,6 +2137,8 @@ static int rt73usb_probe_hw(struct rt2x00_dev *rt2x00dev) | |||
2135 | __set_bit(DRIVER_REQUIRE_FIRMWARE, &rt2x00dev->flags); | 2137 | __set_bit(DRIVER_REQUIRE_FIRMWARE, &rt2x00dev->flags); |
2136 | if (!modparam_nohwcrypt) | 2138 | if (!modparam_nohwcrypt) |
2137 | __set_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags); | 2139 | __set_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags); |
2140 | __set_bit(DRIVER_SUPPORT_LINK_TUNING, &rt2x00dev->flags); | ||
2141 | __set_bit(DRIVER_SUPPORT_WATCHDOG, &rt2x00dev->flags); | ||
2138 | 2142 | ||
2139 | /* | 2143 | /* |
2140 | * Set the rssi offset. | 2144 | * Set the rssi offset. |
@@ -2228,6 +2232,8 @@ static const struct ieee80211_ops rt73usb_mac80211_ops = { | |||
2228 | .configure_filter = rt2x00mac_configure_filter, | 2232 | .configure_filter = rt2x00mac_configure_filter, |
2229 | .set_tim = rt2x00mac_set_tim, | 2233 | .set_tim = rt2x00mac_set_tim, |
2230 | .set_key = rt2x00mac_set_key, | 2234 | .set_key = rt2x00mac_set_key, |
2235 | .sw_scan_start = rt2x00mac_sw_scan_start, | ||
2236 | .sw_scan_complete = rt2x00mac_sw_scan_complete, | ||
2231 | .get_stats = rt2x00mac_get_stats, | 2237 | .get_stats = rt2x00mac_get_stats, |
2232 | .bss_info_changed = rt2x00mac_bss_info_changed, | 2238 | .bss_info_changed = rt2x00mac_bss_info_changed, |
2233 | .conf_tx = rt73usb_conf_tx, | 2239 | .conf_tx = rt73usb_conf_tx, |
@@ -2248,6 +2254,7 @@ static const struct rt2x00lib_ops rt73usb_rt2x00_ops = { | |||
2248 | .link_stats = rt73usb_link_stats, | 2254 | .link_stats = rt73usb_link_stats, |
2249 | .reset_tuner = rt73usb_reset_tuner, | 2255 | .reset_tuner = rt73usb_reset_tuner, |
2250 | .link_tuner = rt73usb_link_tuner, | 2256 | .link_tuner = rt73usb_link_tuner, |
2257 | .watchdog = rt2x00usb_watchdog, | ||
2251 | .write_tx_desc = rt73usb_write_tx_desc, | 2258 | .write_tx_desc = rt73usb_write_tx_desc, |
2252 | .write_beacon = rt73usb_write_beacon, | 2259 | .write_beacon = rt73usb_write_beacon, |
2253 | .get_tx_data_len = rt73usb_get_tx_data_len, | 2260 | .get_tx_data_len = rt73usb_get_tx_data_len, |
diff --git a/drivers/net/wireless/wl12xx/Makefile b/drivers/net/wireless/wl12xx/Makefile index 27ddd2be0a91..078b4398ac1f 100644 --- a/drivers/net/wireless/wl12xx/Makefile +++ b/drivers/net/wireless/wl12xx/Makefile | |||
@@ -10,7 +10,7 @@ obj-$(CONFIG_WL1251_SDIO) += wl1251_sdio.o | |||
10 | wl1271-objs = wl1271_main.o wl1271_cmd.o wl1271_io.o \ | 10 | wl1271-objs = wl1271_main.o wl1271_cmd.o wl1271_io.o \ |
11 | wl1271_event.o wl1271_tx.o wl1271_rx.o \ | 11 | wl1271_event.o wl1271_tx.o wl1271_rx.o \ |
12 | wl1271_ps.o wl1271_acx.o wl1271_boot.o \ | 12 | wl1271_ps.o wl1271_acx.o wl1271_boot.o \ |
13 | wl1271_init.o wl1271_debugfs.o | 13 | wl1271_init.o wl1271_debugfs.o wl1271_scan.o |
14 | 14 | ||
15 | wl1271-$(CONFIG_NL80211_TESTMODE) += wl1271_testmode.o | 15 | wl1271-$(CONFIG_NL80211_TESTMODE) += wl1271_testmode.o |
16 | obj-$(CONFIG_WL1271) += wl1271.o | 16 | obj-$(CONFIG_WL1271) += wl1271.o |
diff --git a/drivers/net/wireless/wl12xx/wl1251_main.c b/drivers/net/wireless/wl12xx/wl1251_main.c index c8f268951e10..38f72f417183 100644 --- a/drivers/net/wireless/wl12xx/wl1251_main.c +++ b/drivers/net/wireless/wl12xx/wl1251_main.c | |||
@@ -1417,5 +1417,4 @@ EXPORT_SYMBOL_GPL(wl1251_free_hw); | |||
1417 | MODULE_DESCRIPTION("TI wl1251 Wireles LAN Driver Core"); | 1417 | MODULE_DESCRIPTION("TI wl1251 Wireles LAN Driver Core"); |
1418 | MODULE_LICENSE("GPL"); | 1418 | MODULE_LICENSE("GPL"); |
1419 | MODULE_AUTHOR("Kalle Valo <kalle.valo@nokia.com>"); | 1419 | MODULE_AUTHOR("Kalle Valo <kalle.valo@nokia.com>"); |
1420 | MODULE_ALIAS("spi:wl1251"); | ||
1421 | MODULE_FIRMWARE(WL1251_FW_NAME); | 1420 | MODULE_FIRMWARE(WL1251_FW_NAME); |
diff --git a/drivers/net/wireless/wl12xx/wl1251_spi.c b/drivers/net/wireless/wl12xx/wl1251_spi.c index e81474203a23..27fdfaaeb074 100644 --- a/drivers/net/wireless/wl12xx/wl1251_spi.c +++ b/drivers/net/wireless/wl12xx/wl1251_spi.c | |||
@@ -345,3 +345,4 @@ module_exit(wl1251_spi_exit); | |||
345 | 345 | ||
346 | MODULE_LICENSE("GPL"); | 346 | MODULE_LICENSE("GPL"); |
347 | MODULE_AUTHOR("Kalle Valo <kalle.valo@nokia.com>"); | 347 | MODULE_AUTHOR("Kalle Valo <kalle.valo@nokia.com>"); |
348 | MODULE_ALIAS("spi:wl1251"); | ||
diff --git a/drivers/net/wireless/wl12xx/wl1271.h b/drivers/net/wireless/wl12xx/wl1271.h index ec09f0d40ca2..53d47d7a2a1d 100644 --- a/drivers/net/wireless/wl12xx/wl1271.h +++ b/drivers/net/wireless/wl12xx/wl1271.h | |||
@@ -300,12 +300,10 @@ struct wl1271_rx_mem_pool_addr { | |||
300 | 300 | ||
301 | struct wl1271_scan { | 301 | struct wl1271_scan { |
302 | struct cfg80211_scan_request *req; | 302 | struct cfg80211_scan_request *req; |
303 | bool *scanned_ch; | ||
303 | u8 state; | 304 | u8 state; |
304 | u8 ssid[IW_ESSID_MAX_SIZE+1]; | 305 | u8 ssid[IW_ESSID_MAX_SIZE+1]; |
305 | size_t ssid_len; | 306 | size_t ssid_len; |
306 | u8 active; | ||
307 | u8 high_prio; | ||
308 | u8 probe_requests; | ||
309 | }; | 307 | }; |
310 | 308 | ||
311 | struct wl1271_if_operations { | 309 | struct wl1271_if_operations { |
@@ -343,14 +341,14 @@ struct wl1271 { | |||
343 | #define WL1271_FLAG_JOINED (2) | 341 | #define WL1271_FLAG_JOINED (2) |
344 | #define WL1271_FLAG_GPIO_POWER (3) | 342 | #define WL1271_FLAG_GPIO_POWER (3) |
345 | #define WL1271_FLAG_TX_QUEUE_STOPPED (4) | 343 | #define WL1271_FLAG_TX_QUEUE_STOPPED (4) |
346 | #define WL1271_FLAG_SCANNING (5) | 344 | #define WL1271_FLAG_IN_ELP (5) |
347 | #define WL1271_FLAG_IN_ELP (6) | 345 | #define WL1271_FLAG_PSM (6) |
348 | #define WL1271_FLAG_PSM (7) | 346 | #define WL1271_FLAG_PSM_REQUESTED (7) |
349 | #define WL1271_FLAG_PSM_REQUESTED (8) | 347 | #define WL1271_FLAG_IRQ_PENDING (8) |
350 | #define WL1271_FLAG_IRQ_PENDING (9) | 348 | #define WL1271_FLAG_IRQ_RUNNING (9) |
351 | #define WL1271_FLAG_IRQ_RUNNING (10) | 349 | #define WL1271_FLAG_IDLE (10) |
352 | #define WL1271_FLAG_IDLE (11) | 350 | #define WL1271_FLAG_IDLE_REQUESTED (11) |
353 | #define WL1271_FLAG_IDLE_REQUESTED (12) | 351 | #define WL1271_FLAG_PSPOLL_FAILURE (12) |
354 | unsigned long flags; | 352 | unsigned long flags; |
355 | 353 | ||
356 | struct wl1271_partition_set part; | 354 | struct wl1271_partition_set part; |
@@ -445,6 +443,10 @@ struct wl1271 { | |||
445 | 443 | ||
446 | struct completion *elp_compl; | 444 | struct completion *elp_compl; |
447 | struct delayed_work elp_work; | 445 | struct delayed_work elp_work; |
446 | struct delayed_work pspoll_work; | ||
447 | |||
448 | /* counter for ps-poll delivery failures */ | ||
449 | int ps_poll_failures; | ||
448 | 450 | ||
449 | /* retry counter for PSM entries */ | 451 | /* retry counter for PSM entries */ |
450 | u8 psm_entry_retry; | 452 | u8 psm_entry_retry; |
diff --git a/drivers/net/wireless/wl12xx/wl1271_acx.c b/drivers/net/wireless/wl12xx/wl1271_acx.c index e19e2f8f1e52..bb245f05af49 100644 --- a/drivers/net/wireless/wl12xx/wl1271_acx.c +++ b/drivers/net/wireless/wl12xx/wl1271_acx.c | |||
@@ -1075,8 +1075,7 @@ out: | |||
1075 | return ret; | 1075 | return ret; |
1076 | } | 1076 | } |
1077 | 1077 | ||
1078 | int wl1271_acx_arp_ip_filter(struct wl1271 *wl, bool enable, u8 *address, | 1078 | int wl1271_acx_arp_ip_filter(struct wl1271 *wl, bool enable, __be32 address) |
1079 | u8 version) | ||
1080 | { | 1079 | { |
1081 | struct wl1271_acx_arp_filter *acx; | 1080 | struct wl1271_acx_arp_filter *acx; |
1082 | int ret; | 1081 | int ret; |
@@ -1089,17 +1088,11 @@ int wl1271_acx_arp_ip_filter(struct wl1271 *wl, bool enable, u8 *address, | |||
1089 | goto out; | 1088 | goto out; |
1090 | } | 1089 | } |
1091 | 1090 | ||
1092 | acx->version = version; | 1091 | acx->version = ACX_IPV4_VERSION; |
1093 | acx->enable = enable; | 1092 | acx->enable = enable; |
1094 | 1093 | ||
1095 | if (enable == true) { | 1094 | if (enable == true) |
1096 | if (version == ACX_IPV4_VERSION) | 1095 | memcpy(acx->address, &address, ACX_IPV4_ADDR_SIZE); |
1097 | memcpy(acx->address, address, ACX_IPV4_ADDR_SIZE); | ||
1098 | else if (version == ACX_IPV6_VERSION) | ||
1099 | memcpy(acx->address, address, sizeof(acx->address)); | ||
1100 | else | ||
1101 | wl1271_error("Invalid IP version"); | ||
1102 | } | ||
1103 | 1096 | ||
1104 | ret = wl1271_cmd_configure(wl, ACX_ARP_IP_FILTER, | 1097 | ret = wl1271_cmd_configure(wl, ACX_ARP_IP_FILTER, |
1105 | acx, sizeof(*acx)); | 1098 | acx, sizeof(*acx)); |
@@ -1266,3 +1259,29 @@ out: | |||
1266 | kfree(acx); | 1259 | kfree(acx); |
1267 | return ret; | 1260 | return ret; |
1268 | } | 1261 | } |
1262 | |||
1263 | int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime) | ||
1264 | { | ||
1265 | struct wl1271_acx_fw_tsf_information *tsf_info; | ||
1266 | int ret; | ||
1267 | |||
1268 | tsf_info = kzalloc(sizeof(*tsf_info), GFP_KERNEL); | ||
1269 | if (!tsf_info) { | ||
1270 | ret = -ENOMEM; | ||
1271 | goto out; | ||
1272 | } | ||
1273 | |||
1274 | ret = wl1271_cmd_interrogate(wl, ACX_TSF_INFO, | ||
1275 | tsf_info, sizeof(*tsf_info)); | ||
1276 | if (ret < 0) { | ||
1277 | wl1271_warning("acx tsf info interrogate failed"); | ||
1278 | goto out; | ||
1279 | } | ||
1280 | |||
1281 | *mactime = le32_to_cpu(tsf_info->current_tsf_low) | | ||
1282 | ((u64) le32_to_cpu(tsf_info->current_tsf_high) << 32); | ||
1283 | |||
1284 | out: | ||
1285 | kfree(tsf_info); | ||
1286 | return ret; | ||
1287 | } | ||
diff --git a/drivers/net/wireless/wl12xx/wl1271_acx.h b/drivers/net/wireless/wl12xx/wl1271_acx.h index 4c87e601df2f..4235bc56f750 100644 --- a/drivers/net/wireless/wl12xx/wl1271_acx.h +++ b/drivers/net/wireless/wl12xx/wl1271_acx.h | |||
@@ -993,6 +993,17 @@ struct wl1271_acx_rssi_snr_avg_weights { | |||
993 | u8 snr_data; | 993 | u8 snr_data; |
994 | }; | 994 | }; |
995 | 995 | ||
996 | struct wl1271_acx_fw_tsf_information { | ||
997 | struct acx_header header; | ||
998 | |||
999 | __le32 current_tsf_high; | ||
1000 | __le32 current_tsf_low; | ||
1001 | __le32 last_bttt_high; | ||
1002 | __le32 last_tbtt_low; | ||
1003 | u8 last_dtim_count; | ||
1004 | u8 padding[3]; | ||
1005 | } __packed; | ||
1006 | |||
996 | enum { | 1007 | enum { |
997 | ACX_WAKE_UP_CONDITIONS = 0x0002, | 1008 | ACX_WAKE_UP_CONDITIONS = 0x0002, |
998 | ACX_MEM_CFG = 0x0003, | 1009 | ACX_MEM_CFG = 0x0003, |
@@ -1106,13 +1117,13 @@ int wl1271_acx_init_mem_config(struct wl1271 *wl); | |||
1106 | int wl1271_acx_init_rx_interrupt(struct wl1271 *wl); | 1117 | int wl1271_acx_init_rx_interrupt(struct wl1271 *wl); |
1107 | int wl1271_acx_smart_reflex(struct wl1271 *wl); | 1118 | int wl1271_acx_smart_reflex(struct wl1271 *wl); |
1108 | int wl1271_acx_bet_enable(struct wl1271 *wl, bool enable); | 1119 | int wl1271_acx_bet_enable(struct wl1271 *wl, bool enable); |
1109 | int wl1271_acx_arp_ip_filter(struct wl1271 *wl, bool enable, u8 *address, | 1120 | int wl1271_acx_arp_ip_filter(struct wl1271 *wl, bool enable, __be32 address); |
1110 | u8 version); | ||
1111 | int wl1271_acx_pm_config(struct wl1271 *wl); | 1121 | int wl1271_acx_pm_config(struct wl1271 *wl); |
1112 | int wl1271_acx_keep_alive_mode(struct wl1271 *wl, bool enable); | 1122 | int wl1271_acx_keep_alive_mode(struct wl1271 *wl, bool enable); |
1113 | int wl1271_acx_keep_alive_config(struct wl1271 *wl, u8 index, u8 tpl_valid); | 1123 | int wl1271_acx_keep_alive_config(struct wl1271 *wl, u8 index, u8 tpl_valid); |
1114 | int wl1271_acx_rssi_snr_trigger(struct wl1271 *wl, bool enable, | 1124 | int wl1271_acx_rssi_snr_trigger(struct wl1271 *wl, bool enable, |
1115 | s16 thold, u8 hyst); | 1125 | s16 thold, u8 hyst); |
1116 | int wl1271_acx_rssi_snr_avg_weights(struct wl1271 *wl); | 1126 | int wl1271_acx_rssi_snr_avg_weights(struct wl1271 *wl); |
1127 | int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime); | ||
1117 | 1128 | ||
1118 | #endif /* __WL1271_ACX_H__ */ | 1129 | #endif /* __WL1271_ACX_H__ */ |
diff --git a/drivers/net/wireless/wl12xx/wl1271_boot.c b/drivers/net/wireless/wl12xx/wl1271_boot.c index 1a36d8a2196e..f36430b0336d 100644 --- a/drivers/net/wireless/wl12xx/wl1271_boot.c +++ b/drivers/net/wireless/wl12xx/wl1271_boot.c | |||
@@ -414,7 +414,9 @@ static int wl1271_boot_run_firmware(struct wl1271 *wl) | |||
414 | PS_REPORT_EVENT_ID | | 414 | PS_REPORT_EVENT_ID | |
415 | JOIN_EVENT_COMPLETE_ID | | 415 | JOIN_EVENT_COMPLETE_ID | |
416 | DISCONNECT_EVENT_COMPLETE_ID | | 416 | DISCONNECT_EVENT_COMPLETE_ID | |
417 | RSSI_SNR_TRIGGER_0_EVENT_ID; | 417 | RSSI_SNR_TRIGGER_0_EVENT_ID | |
418 | PSPOLL_DELIVERY_FAILURE_EVENT_ID | | ||
419 | SOFT_GEMINI_SENSE_EVENT_ID; | ||
418 | 420 | ||
419 | ret = wl1271_event_unmask(wl); | 421 | ret = wl1271_event_unmask(wl); |
420 | if (ret < 0) { | 422 | if (ret < 0) { |
diff --git a/drivers/net/wireless/wl12xx/wl1271_cmd.c b/drivers/net/wireless/wl12xx/wl1271_cmd.c index 530678e45a13..ce503ddd5a41 100644 --- a/drivers/net/wireless/wl12xx/wl1271_cmd.c +++ b/drivers/net/wireless/wl12xx/wl1271_cmd.c | |||
@@ -104,100 +104,6 @@ out: | |||
104 | return ret; | 104 | return ret; |
105 | } | 105 | } |
106 | 106 | ||
107 | static int wl1271_cmd_cal_channel_tune(struct wl1271 *wl) | ||
108 | { | ||
109 | struct wl1271_cmd_cal_channel_tune *cmd; | ||
110 | int ret = 0; | ||
111 | |||
112 | cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); | ||
113 | if (!cmd) | ||
114 | return -ENOMEM; | ||
115 | |||
116 | cmd->test.id = TEST_CMD_CHANNEL_TUNE; | ||
117 | |||
118 | cmd->band = WL1271_CHANNEL_TUNE_BAND_2_4; | ||
119 | /* set up any channel, 7 is in the middle of the range */ | ||
120 | cmd->channel = 7; | ||
121 | |||
122 | ret = wl1271_cmd_test(wl, cmd, sizeof(*cmd), 0); | ||
123 | if (ret < 0) | ||
124 | wl1271_warning("TEST_CMD_CHANNEL_TUNE failed"); | ||
125 | |||
126 | kfree(cmd); | ||
127 | return ret; | ||
128 | } | ||
129 | |||
130 | static int wl1271_cmd_cal_update_ref_point(struct wl1271 *wl) | ||
131 | { | ||
132 | struct wl1271_cmd_cal_update_ref_point *cmd; | ||
133 | int ret = 0; | ||
134 | |||
135 | cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); | ||
136 | if (!cmd) | ||
137 | return -ENOMEM; | ||
138 | |||
139 | cmd->test.id = TEST_CMD_UPDATE_PD_REFERENCE_POINT; | ||
140 | |||
141 | /* FIXME: still waiting for the correct values */ | ||
142 | cmd->ref_power = 0; | ||
143 | cmd->ref_detector = 0; | ||
144 | |||
145 | cmd->sub_band = WL1271_PD_REFERENCE_POINT_BAND_B_G; | ||
146 | |||
147 | ret = wl1271_cmd_test(wl, cmd, sizeof(*cmd), 0); | ||
148 | if (ret < 0) | ||
149 | wl1271_warning("TEST_CMD_UPDATE_PD_REFERENCE_POINT failed"); | ||
150 | |||
151 | kfree(cmd); | ||
152 | return ret; | ||
153 | } | ||
154 | |||
155 | static int wl1271_cmd_cal_p2g(struct wl1271 *wl) | ||
156 | { | ||
157 | struct wl1271_cmd_cal_p2g *cmd; | ||
158 | int ret = 0; | ||
159 | |||
160 | cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); | ||
161 | if (!cmd) | ||
162 | return -ENOMEM; | ||
163 | |||
164 | cmd->test.id = TEST_CMD_P2G_CAL; | ||
165 | |||
166 | cmd->sub_band_mask = WL1271_CAL_P2G_BAND_B_G; | ||
167 | |||
168 | ret = wl1271_cmd_test(wl, cmd, sizeof(*cmd), 0); | ||
169 | if (ret < 0) | ||
170 | wl1271_warning("TEST_CMD_P2G_CAL failed"); | ||
171 | |||
172 | kfree(cmd); | ||
173 | return ret; | ||
174 | } | ||
175 | |||
176 | static int wl1271_cmd_cal(struct wl1271 *wl) | ||
177 | { | ||
178 | /* | ||
179 | * FIXME: we must make sure that we're not sleeping when calibration | ||
180 | * is done | ||
181 | */ | ||
182 | int ret; | ||
183 | |||
184 | wl1271_notice("performing tx calibration"); | ||
185 | |||
186 | ret = wl1271_cmd_cal_channel_tune(wl); | ||
187 | if (ret < 0) | ||
188 | return ret; | ||
189 | |||
190 | ret = wl1271_cmd_cal_update_ref_point(wl); | ||
191 | if (ret < 0) | ||
192 | return ret; | ||
193 | |||
194 | ret = wl1271_cmd_cal_p2g(wl); | ||
195 | if (ret < 0) | ||
196 | return ret; | ||
197 | |||
198 | return ret; | ||
199 | } | ||
200 | |||
201 | int wl1271_cmd_general_parms(struct wl1271 *wl) | 107 | int wl1271_cmd_general_parms(struct wl1271 *wl) |
202 | { | 108 | { |
203 | struct wl1271_general_parms_cmd *gen_parms; | 109 | struct wl1271_general_parms_cmd *gen_parms; |
@@ -226,7 +132,7 @@ int wl1271_cmd_general_parms(struct wl1271 *wl) | |||
226 | int wl1271_cmd_radio_parms(struct wl1271 *wl) | 132 | int wl1271_cmd_radio_parms(struct wl1271 *wl) |
227 | { | 133 | { |
228 | struct wl1271_radio_parms_cmd *radio_parms; | 134 | struct wl1271_radio_parms_cmd *radio_parms; |
229 | struct conf_radio_parms *rparam = &wl->conf.init.radioparam; | 135 | struct wl1271_ini_general_params *gp = &wl->nvs->general_params; |
230 | int ret; | 136 | int ret; |
231 | 137 | ||
232 | if (!wl->nvs) | 138 | if (!wl->nvs) |
@@ -242,7 +148,7 @@ int wl1271_cmd_radio_parms(struct wl1271 *wl) | |||
242 | memcpy(&radio_parms->static_params_2, &wl->nvs->stat_radio_params_2, | 148 | memcpy(&radio_parms->static_params_2, &wl->nvs->stat_radio_params_2, |
243 | sizeof(struct wl1271_ini_band_params_2)); | 149 | sizeof(struct wl1271_ini_band_params_2)); |
244 | memcpy(&radio_parms->dyn_params_2, | 150 | memcpy(&radio_parms->dyn_params_2, |
245 | &wl->nvs->dyn_radio_params_2[rparam->fem].params, | 151 | &wl->nvs->dyn_radio_params_2[gp->tx_bip_fem_manufacturer].params, |
246 | sizeof(struct wl1271_ini_fem_params_2)); | 152 | sizeof(struct wl1271_ini_fem_params_2)); |
247 | 153 | ||
248 | /* 5GHz parameters */ | 154 | /* 5GHz parameters */ |
@@ -250,7 +156,7 @@ int wl1271_cmd_radio_parms(struct wl1271 *wl) | |||
250 | &wl->nvs->stat_radio_params_5, | 156 | &wl->nvs->stat_radio_params_5, |
251 | sizeof(struct wl1271_ini_band_params_5)); | 157 | sizeof(struct wl1271_ini_band_params_5)); |
252 | memcpy(&radio_parms->dyn_params_5, | 158 | memcpy(&radio_parms->dyn_params_5, |
253 | &wl->nvs->dyn_radio_params_5[rparam->fem].params, | 159 | &wl->nvs->dyn_radio_params_5[gp->tx_bip_fem_manufacturer].params, |
254 | sizeof(struct wl1271_ini_fem_params_5)); | 160 | sizeof(struct wl1271_ini_fem_params_5)); |
255 | 161 | ||
256 | wl1271_dump(DEBUG_CMD, "TEST_CMD_INI_FILE_RADIO_PARAM: ", | 162 | wl1271_dump(DEBUG_CMD, "TEST_CMD_INI_FILE_RADIO_PARAM: ", |
@@ -295,20 +201,10 @@ static int wl1271_cmd_wait_for_event(struct wl1271 *wl, u32 mask) | |||
295 | 201 | ||
296 | int wl1271_cmd_join(struct wl1271 *wl, u8 bss_type) | 202 | int wl1271_cmd_join(struct wl1271 *wl, u8 bss_type) |
297 | { | 203 | { |
298 | static bool do_cal = true; | ||
299 | struct wl1271_cmd_join *join; | 204 | struct wl1271_cmd_join *join; |
300 | int ret, i; | 205 | int ret, i; |
301 | u8 *bssid; | 206 | u8 *bssid; |
302 | 207 | ||
303 | /* FIXME: remove when we get calibration from the factory */ | ||
304 | if (do_cal) { | ||
305 | ret = wl1271_cmd_cal(wl); | ||
306 | if (ret < 0) | ||
307 | wl1271_warning("couldn't calibrate"); | ||
308 | else | ||
309 | do_cal = false; | ||
310 | } | ||
311 | |||
312 | join = kzalloc(sizeof(*join), GFP_KERNEL); | 208 | join = kzalloc(sizeof(*join), GFP_KERNEL); |
313 | if (!join) { | 209 | if (!join) { |
314 | ret = -ENOMEM; | 210 | ret = -ENOMEM; |
@@ -567,142 +463,6 @@ out: | |||
567 | return ret; | 463 | return ret; |
568 | } | 464 | } |
569 | 465 | ||
570 | int wl1271_cmd_scan(struct wl1271 *wl, const u8 *ssid, size_t ssid_len, | ||
571 | struct cfg80211_scan_request *req, u8 active_scan, | ||
572 | u8 high_prio, u8 band, u8 probe_requests) | ||
573 | { | ||
574 | |||
575 | struct wl1271_cmd_trigger_scan_to *trigger = NULL; | ||
576 | struct wl1271_cmd_scan *params = NULL; | ||
577 | struct ieee80211_channel *channels; | ||
578 | u32 rate; | ||
579 | int i, j, n_ch, ret; | ||
580 | u16 scan_options = 0; | ||
581 | u8 ieee_band; | ||
582 | |||
583 | if (band == WL1271_SCAN_BAND_2_4_GHZ) { | ||
584 | ieee_band = IEEE80211_BAND_2GHZ; | ||
585 | rate = wl->conf.tx.basic_rate; | ||
586 | } else if (band == WL1271_SCAN_BAND_DUAL && wl1271_11a_enabled()) { | ||
587 | ieee_band = IEEE80211_BAND_2GHZ; | ||
588 | rate = wl->conf.tx.basic_rate; | ||
589 | } else if (band == WL1271_SCAN_BAND_5_GHZ && wl1271_11a_enabled()) { | ||
590 | ieee_band = IEEE80211_BAND_5GHZ; | ||
591 | rate = wl->conf.tx.basic_rate_5; | ||
592 | } else | ||
593 | return -EINVAL; | ||
594 | |||
595 | if (wl->hw->wiphy->bands[ieee_band]->channels == NULL) | ||
596 | return -EINVAL; | ||
597 | |||
598 | channels = wl->hw->wiphy->bands[ieee_band]->channels; | ||
599 | n_ch = wl->hw->wiphy->bands[ieee_band]->n_channels; | ||
600 | |||
601 | if (test_bit(WL1271_FLAG_SCANNING, &wl->flags)) | ||
602 | return -EINVAL; | ||
603 | |||
604 | params = kzalloc(sizeof(*params), GFP_KERNEL); | ||
605 | if (!params) | ||
606 | return -ENOMEM; | ||
607 | |||
608 | params->params.rx_config_options = cpu_to_le32(CFG_RX_ALL_GOOD); | ||
609 | params->params.rx_filter_options = | ||
610 | cpu_to_le32(CFG_RX_PRSP_EN | CFG_RX_MGMT_EN | CFG_RX_BCN_EN); | ||
611 | |||
612 | if (!active_scan) | ||
613 | scan_options |= WL1271_SCAN_OPT_PASSIVE; | ||
614 | if (high_prio) | ||
615 | scan_options |= WL1271_SCAN_OPT_PRIORITY_HIGH; | ||
616 | params->params.scan_options = cpu_to_le16(scan_options); | ||
617 | |||
618 | params->params.num_probe_requests = probe_requests; | ||
619 | params->params.tx_rate = cpu_to_le32(rate); | ||
620 | params->params.tid_trigger = 0; | ||
621 | params->params.scan_tag = WL1271_SCAN_DEFAULT_TAG; | ||
622 | |||
623 | if (band == WL1271_SCAN_BAND_DUAL) | ||
624 | params->params.band = WL1271_SCAN_BAND_2_4_GHZ; | ||
625 | else | ||
626 | params->params.band = band; | ||
627 | |||
628 | for (i = 0, j = 0; i < n_ch && i < WL1271_SCAN_MAX_CHANNELS; i++) { | ||
629 | if (!(channels[i].flags & IEEE80211_CHAN_DISABLED)) { | ||
630 | params->channels[j].min_duration = | ||
631 | cpu_to_le32(WL1271_SCAN_CHAN_MIN_DURATION); | ||
632 | params->channels[j].max_duration = | ||
633 | cpu_to_le32(WL1271_SCAN_CHAN_MAX_DURATION); | ||
634 | memset(¶ms->channels[j].bssid_lsb, 0xff, 4); | ||
635 | memset(¶ms->channels[j].bssid_msb, 0xff, 2); | ||
636 | params->channels[j].early_termination = 0; | ||
637 | params->channels[j].tx_power_att = | ||
638 | WL1271_SCAN_CURRENT_TX_PWR; | ||
639 | params->channels[j].channel = channels[i].hw_value; | ||
640 | j++; | ||
641 | } | ||
642 | } | ||
643 | |||
644 | params->params.num_channels = j; | ||
645 | |||
646 | if (ssid_len && ssid) { | ||
647 | params->params.ssid_len = ssid_len; | ||
648 | memcpy(params->params.ssid, ssid, ssid_len); | ||
649 | } | ||
650 | |||
651 | ret = wl1271_cmd_build_probe_req(wl, ssid, ssid_len, | ||
652 | req->ie, req->ie_len, ieee_band); | ||
653 | if (ret < 0) { | ||
654 | wl1271_error("PROBE request template failed"); | ||
655 | goto out; | ||
656 | } | ||
657 | |||
658 | trigger = kzalloc(sizeof(*trigger), GFP_KERNEL); | ||
659 | if (!trigger) { | ||
660 | ret = -ENOMEM; | ||
661 | goto out; | ||
662 | } | ||
663 | |||
664 | /* disable the timeout */ | ||
665 | trigger->timeout = 0; | ||
666 | |||
667 | ret = wl1271_cmd_send(wl, CMD_TRIGGER_SCAN_TO, trigger, | ||
668 | sizeof(*trigger), 0); | ||
669 | if (ret < 0) { | ||
670 | wl1271_error("trigger scan to failed for hw scan"); | ||
671 | goto out; | ||
672 | } | ||
673 | |||
674 | wl1271_dump(DEBUG_SCAN, "SCAN: ", params, sizeof(*params)); | ||
675 | |||
676 | set_bit(WL1271_FLAG_SCANNING, &wl->flags); | ||
677 | if (wl1271_11a_enabled()) { | ||
678 | wl->scan.state = band; | ||
679 | if (band == WL1271_SCAN_BAND_DUAL) { | ||
680 | wl->scan.active = active_scan; | ||
681 | wl->scan.high_prio = high_prio; | ||
682 | wl->scan.probe_requests = probe_requests; | ||
683 | if (ssid_len && ssid) { | ||
684 | wl->scan.ssid_len = ssid_len; | ||
685 | memcpy(wl->scan.ssid, ssid, ssid_len); | ||
686 | } else | ||
687 | wl->scan.ssid_len = 0; | ||
688 | wl->scan.req = req; | ||
689 | } else | ||
690 | wl->scan.req = NULL; | ||
691 | } | ||
692 | |||
693 | ret = wl1271_cmd_send(wl, CMD_SCAN, params, sizeof(*params), 0); | ||
694 | if (ret < 0) { | ||
695 | wl1271_error("SCAN failed"); | ||
696 | clear_bit(WL1271_FLAG_SCANNING, &wl->flags); | ||
697 | goto out; | ||
698 | } | ||
699 | |||
700 | out: | ||
701 | kfree(params); | ||
702 | kfree(trigger); | ||
703 | return ret; | ||
704 | } | ||
705 | |||
706 | int wl1271_cmd_template_set(struct wl1271 *wl, u16 template_id, | 466 | int wl1271_cmd_template_set(struct wl1271 *wl, u16 template_id, |
707 | void *buf, size_t buf_len, int index, u32 rates) | 467 | void *buf, size_t buf_len, int index, u32 rates) |
708 | { | 468 | { |
@@ -807,7 +567,7 @@ int wl1271_cmd_build_ps_poll(struct wl1271 *wl, u16 aid) | |||
807 | goto out; | 567 | goto out; |
808 | 568 | ||
809 | ret = wl1271_cmd_template_set(wl, CMD_TEMPL_PS_POLL, skb->data, | 569 | ret = wl1271_cmd_template_set(wl, CMD_TEMPL_PS_POLL, skb->data, |
810 | skb->len, 0, wl->basic_rate); | 570 | skb->len, 0, wl->basic_rate_set); |
811 | 571 | ||
812 | out: | 572 | out: |
813 | dev_kfree_skb(skb); | 573 | dev_kfree_skb(skb); |
diff --git a/drivers/net/wireless/wl12xx/wl1271_cmd.h b/drivers/net/wireless/wl12xx/wl1271_cmd.h index f5745d829c9b..af577ee8eb02 100644 --- a/drivers/net/wireless/wl12xx/wl1271_cmd.h +++ b/drivers/net/wireless/wl12xx/wl1271_cmd.h | |||
@@ -41,9 +41,6 @@ int wl1271_cmd_data_path(struct wl1271 *wl, bool enable); | |||
41 | int wl1271_cmd_ps_mode(struct wl1271 *wl, u8 ps_mode, bool send); | 41 | int wl1271_cmd_ps_mode(struct wl1271 *wl, u8 ps_mode, bool send); |
42 | int wl1271_cmd_read_memory(struct wl1271 *wl, u32 addr, void *answer, | 42 | int wl1271_cmd_read_memory(struct wl1271 *wl, u32 addr, void *answer, |
43 | size_t len); | 43 | size_t len); |
44 | int wl1271_cmd_scan(struct wl1271 *wl, const u8 *ssid, size_t ssid_len, | ||
45 | struct cfg80211_scan_request *req, u8 active_scan, | ||
46 | u8 high_prio, u8 band, u8 probe_requests); | ||
47 | int wl1271_cmd_template_set(struct wl1271 *wl, u16 template_id, | 44 | int wl1271_cmd_template_set(struct wl1271 *wl, u16 template_id, |
48 | void *buf, size_t buf_len, int index, u32 rates); | 45 | void *buf, size_t buf_len, int index, u32 rates); |
49 | int wl1271_cmd_build_null_data(struct wl1271 *wl); | 46 | int wl1271_cmd_build_null_data(struct wl1271 *wl); |
@@ -350,71 +347,6 @@ struct wl1271_cmd_set_keys { | |||
350 | __le32 ac_seq_num32[NUM_ACCESS_CATEGORIES_COPY]; | 347 | __le32 ac_seq_num32[NUM_ACCESS_CATEGORIES_COPY]; |
351 | } __packed; | 348 | } __packed; |
352 | 349 | ||
353 | |||
354 | #define WL1271_SCAN_MAX_CHANNELS 24 | ||
355 | #define WL1271_SCAN_DEFAULT_TAG 1 | ||
356 | #define WL1271_SCAN_CURRENT_TX_PWR 0 | ||
357 | #define WL1271_SCAN_OPT_ACTIVE 0 | ||
358 | #define WL1271_SCAN_OPT_PASSIVE 1 | ||
359 | #define WL1271_SCAN_OPT_PRIORITY_HIGH 4 | ||
360 | #define WL1271_SCAN_CHAN_MIN_DURATION 30000 /* TU */ | ||
361 | #define WL1271_SCAN_CHAN_MAX_DURATION 60000 /* TU */ | ||
362 | #define WL1271_SCAN_BAND_2_4_GHZ 0 | ||
363 | #define WL1271_SCAN_BAND_5_GHZ 1 | ||
364 | #define WL1271_SCAN_BAND_DUAL 2 | ||
365 | |||
366 | struct basic_scan_params { | ||
367 | __le32 rx_config_options; | ||
368 | __le32 rx_filter_options; | ||
369 | /* Scan option flags (WL1271_SCAN_OPT_*) */ | ||
370 | __le16 scan_options; | ||
371 | /* Number of scan channels in the list (maximum 30) */ | ||
372 | u8 num_channels; | ||
373 | /* This field indicates the number of probe requests to send | ||
374 | per channel for an active scan */ | ||
375 | u8 num_probe_requests; | ||
376 | /* Rate bit field for sending the probes */ | ||
377 | __le32 tx_rate; | ||
378 | u8 tid_trigger; | ||
379 | u8 ssid_len; | ||
380 | /* in order to align */ | ||
381 | u8 padding1[2]; | ||
382 | u8 ssid[IW_ESSID_MAX_SIZE]; | ||
383 | /* Band to scan */ | ||
384 | u8 band; | ||
385 | u8 use_ssid_list; | ||
386 | u8 scan_tag; | ||
387 | u8 padding2; | ||
388 | } __packed; | ||
389 | |||
390 | struct basic_scan_channel_params { | ||
391 | /* Duration in TU to wait for frames on a channel for active scan */ | ||
392 | __le32 min_duration; | ||
393 | __le32 max_duration; | ||
394 | __le32 bssid_lsb; | ||
395 | __le16 bssid_msb; | ||
396 | u8 early_termination; | ||
397 | u8 tx_power_att; | ||
398 | u8 channel; | ||
399 | /* FW internal use only! */ | ||
400 | u8 dfs_candidate; | ||
401 | u8 activity_detected; | ||
402 | u8 pad; | ||
403 | } __packed; | ||
404 | |||
405 | struct wl1271_cmd_scan { | ||
406 | struct wl1271_cmd_header header; | ||
407 | |||
408 | struct basic_scan_params params; | ||
409 | struct basic_scan_channel_params channels[WL1271_SCAN_MAX_CHANNELS]; | ||
410 | } __packed; | ||
411 | |||
412 | struct wl1271_cmd_trigger_scan_to { | ||
413 | struct wl1271_cmd_header header; | ||
414 | |||
415 | __le32 timeout; | ||
416 | } __packed; | ||
417 | |||
418 | struct wl1271_cmd_test_header { | 350 | struct wl1271_cmd_test_header { |
419 | u8 id; | 351 | u8 id; |
420 | u8 padding[3]; | 352 | u8 padding[3]; |
diff --git a/drivers/net/wireless/wl12xx/wl1271_conf.h b/drivers/net/wireless/wl12xx/wl1271_conf.h index d046d044b5bd..0435ffda8f73 100644 --- a/drivers/net/wireless/wl12xx/wl1271_conf.h +++ b/drivers/net/wireless/wl12xx/wl1271_conf.h | |||
@@ -874,6 +874,13 @@ struct conf_conn_settings { | |||
874 | u8 ps_poll_threshold; | 874 | u8 ps_poll_threshold; |
875 | 875 | ||
876 | /* | 876 | /* |
877 | * PS Poll failure recovery ACTIVE period length | ||
878 | * | ||
879 | * Range: u32 (ms) | ||
880 | */ | ||
881 | u32 ps_poll_recovery_period; | ||
882 | |||
883 | /* | ||
877 | * Configuration of signal average weights. | 884 | * Configuration of signal average weights. |
878 | */ | 885 | */ |
879 | struct conf_sig_weights sig_weights; | 886 | struct conf_sig_weights sig_weights; |
@@ -948,14 +955,6 @@ struct conf_radio_parms { | |||
948 | u8 fem; | 955 | u8 fem; |
949 | }; | 956 | }; |
950 | 957 | ||
951 | struct conf_init_settings { | ||
952 | /* | ||
953 | * Configure radio parameters. | ||
954 | */ | ||
955 | struct conf_radio_parms radioparam; | ||
956 | |||
957 | }; | ||
958 | |||
959 | struct conf_itrim_settings { | 958 | struct conf_itrim_settings { |
960 | /* enable dco itrim */ | 959 | /* enable dco itrim */ |
961 | u8 enable; | 960 | u8 enable; |
@@ -1022,7 +1021,6 @@ struct conf_drv_settings { | |||
1022 | struct conf_rx_settings rx; | 1021 | struct conf_rx_settings rx; |
1023 | struct conf_tx_settings tx; | 1022 | struct conf_tx_settings tx; |
1024 | struct conf_conn_settings conn; | 1023 | struct conf_conn_settings conn; |
1025 | struct conf_init_settings init; | ||
1026 | struct conf_itrim_settings itrim; | 1024 | struct conf_itrim_settings itrim; |
1027 | struct conf_pm_config_settings pm_config; | 1025 | struct conf_pm_config_settings pm_config; |
1028 | struct conf_roam_trigger_settings roam_trigger; | 1026 | struct conf_roam_trigger_settings roam_trigger; |
diff --git a/drivers/net/wireless/wl12xx/wl1271_event.c b/drivers/net/wireless/wl12xx/wl1271_event.c index ca52cdec7a8f..25ce2cd5e3f3 100644 --- a/drivers/net/wireless/wl12xx/wl1271_event.c +++ b/drivers/net/wireless/wl12xx/wl1271_event.c | |||
@@ -26,36 +26,64 @@ | |||
26 | #include "wl1271_io.h" | 26 | #include "wl1271_io.h" |
27 | #include "wl1271_event.h" | 27 | #include "wl1271_event.h" |
28 | #include "wl1271_ps.h" | 28 | #include "wl1271_ps.h" |
29 | #include "wl1271_scan.h" | ||
29 | #include "wl12xx_80211.h" | 30 | #include "wl12xx_80211.h" |
30 | 31 | ||
31 | static int wl1271_event_scan_complete(struct wl1271 *wl, | 32 | void wl1271_pspoll_work(struct work_struct *work) |
32 | struct event_mailbox *mbox) | ||
33 | { | 33 | { |
34 | wl1271_debug(DEBUG_EVENT, "status: 0x%x", | 34 | struct delayed_work *dwork; |
35 | mbox->scheduled_scan_status); | 35 | struct wl1271 *wl; |
36 | 36 | ||
37 | if (test_bit(WL1271_FLAG_SCANNING, &wl->flags)) { | 37 | dwork = container_of(work, struct delayed_work, work); |
38 | if (wl->scan.state == WL1271_SCAN_BAND_DUAL) { | 38 | wl = container_of(dwork, struct wl1271, pspoll_work); |
39 | /* 2.4 GHz band scanned, scan 5 GHz band, pretend | 39 | |
40 | * to the wl1271_cmd_scan function that we are not | 40 | wl1271_debug(DEBUG_EVENT, "pspoll work"); |
41 | * scanning as it checks that. | 41 | |
42 | */ | 42 | mutex_lock(&wl->mutex); |
43 | clear_bit(WL1271_FLAG_SCANNING, &wl->flags); | 43 | |
44 | /* FIXME: ie missing! */ | 44 | if (!test_and_clear_bit(WL1271_FLAG_PSPOLL_FAILURE, &wl->flags)) |
45 | wl1271_cmd_scan(wl, wl->scan.ssid, wl->scan.ssid_len, | 45 | goto out; |
46 | wl->scan.req, | 46 | |
47 | wl->scan.active, | 47 | if (!test_bit(WL1271_FLAG_STA_ASSOCIATED, &wl->flags)) |
48 | wl->scan.high_prio, | 48 | goto out; |
49 | WL1271_SCAN_BAND_5_GHZ, | 49 | |
50 | wl->scan.probe_requests); | 50 | /* |
51 | } else { | 51 | * if we end up here, then we were in powersave when the pspoll |
52 | mutex_unlock(&wl->mutex); | 52 | * delivery failure occurred, and no-one changed state since, so |
53 | ieee80211_scan_completed(wl->hw, false); | 53 | * we should go back to powersave. |
54 | mutex_lock(&wl->mutex); | 54 | */ |
55 | clear_bit(WL1271_FLAG_SCANNING, &wl->flags); | 55 | wl1271_ps_set_mode(wl, STATION_POWER_SAVE_MODE, true); |
56 | } | 56 | |
57 | out: | ||
58 | mutex_unlock(&wl->mutex); | ||
59 | }; | ||
60 | |||
61 | static void wl1271_event_pspoll_delivery_fail(struct wl1271 *wl) | ||
62 | { | ||
63 | int delay = wl->conf.conn.ps_poll_recovery_period; | ||
64 | int ret; | ||
65 | |||
66 | wl->ps_poll_failures++; | ||
67 | if (wl->ps_poll_failures == 1) | ||
68 | wl1271_info("AP with dysfunctional ps-poll, " | ||
69 | "trying to work around it."); | ||
70 | |||
71 | /* force active mode receive data from the AP */ | ||
72 | if (test_bit(WL1271_FLAG_PSM, &wl->flags)) { | ||
73 | ret = wl1271_ps_set_mode(wl, STATION_ACTIVE_MODE, true); | ||
74 | if (ret < 0) | ||
75 | return; | ||
76 | set_bit(WL1271_FLAG_PSPOLL_FAILURE, &wl->flags); | ||
77 | ieee80211_queue_delayed_work(wl->hw, &wl->pspoll_work, | ||
78 | msecs_to_jiffies(delay)); | ||
57 | } | 79 | } |
58 | return 0; | 80 | |
81 | /* | ||
82 | * If already in active mode, lets we should be getting data from | ||
83 | * the AP right away. If we enter PSM too fast after this, and data | ||
84 | * remains on the AP, we will get another event like this, and we'll | ||
85 | * go into active once more. | ||
86 | */ | ||
59 | } | 87 | } |
60 | 88 | ||
61 | static int wl1271_event_ps_report(struct wl1271 *wl, | 89 | static int wl1271_event_ps_report(struct wl1271 *wl, |
@@ -163,9 +191,19 @@ static int wl1271_event_process(struct wl1271 *wl, struct event_mailbox *mbox) | |||
163 | wl1271_debug(DEBUG_EVENT, "vector: 0x%x", vector); | 191 | wl1271_debug(DEBUG_EVENT, "vector: 0x%x", vector); |
164 | 192 | ||
165 | if (vector & SCAN_COMPLETE_EVENT_ID) { | 193 | if (vector & SCAN_COMPLETE_EVENT_ID) { |
166 | ret = wl1271_event_scan_complete(wl, mbox); | 194 | wl1271_debug(DEBUG_EVENT, "status: 0x%x", |
167 | if (ret < 0) | 195 | mbox->scheduled_scan_status); |
168 | return ret; | 196 | |
197 | wl1271_scan_stm(wl); | ||
198 | } | ||
199 | |||
200 | /* disable dynamic PS when requested by the firmware */ | ||
201 | if (vector & SOFT_GEMINI_SENSE_EVENT_ID && | ||
202 | wl->bss_type == BSS_TYPE_STA_BSS) { | ||
203 | if (mbox->soft_gemini_sense_info) | ||
204 | ieee80211_disable_dyn_ps(wl->vif); | ||
205 | else | ||
206 | ieee80211_enable_dyn_ps(wl->vif); | ||
169 | } | 207 | } |
170 | 208 | ||
171 | /* | 209 | /* |
@@ -191,6 +229,9 @@ static int wl1271_event_process(struct wl1271 *wl, struct event_mailbox *mbox) | |||
191 | return ret; | 229 | return ret; |
192 | } | 230 | } |
193 | 231 | ||
232 | if (vector & PSPOLL_DELIVERY_FAILURE_EVENT_ID) | ||
233 | wl1271_event_pspoll_delivery_fail(wl); | ||
234 | |||
194 | if (vector & RSSI_SNR_TRIGGER_0_EVENT_ID) { | 235 | if (vector & RSSI_SNR_TRIGGER_0_EVENT_ID) { |
195 | wl1271_debug(DEBUG_EVENT, "RSSI_SNR_TRIGGER_0_EVENT"); | 236 | wl1271_debug(DEBUG_EVENT, "RSSI_SNR_TRIGGER_0_EVENT"); |
196 | if (wl->vif) | 237 | if (wl->vif) |
diff --git a/drivers/net/wireless/wl12xx/wl1271_event.h b/drivers/net/wireless/wl12xx/wl1271_event.h index 43d5aeae1783..e4751667cf5e 100644 --- a/drivers/net/wireless/wl12xx/wl1271_event.h +++ b/drivers/net/wireless/wl12xx/wl1271_event.h | |||
@@ -121,5 +121,6 @@ struct event_mailbox { | |||
121 | int wl1271_event_unmask(struct wl1271 *wl); | 121 | int wl1271_event_unmask(struct wl1271 *wl); |
122 | void wl1271_event_mbox_config(struct wl1271 *wl); | 122 | void wl1271_event_mbox_config(struct wl1271 *wl); |
123 | int wl1271_event_handle(struct wl1271 *wl, u8 mbox); | 123 | int wl1271_event_handle(struct wl1271 *wl, u8 mbox); |
124 | void wl1271_pspoll_work(struct work_struct *work); | ||
124 | 125 | ||
125 | #endif | 126 | #endif |
diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c index 7a14da506d78..d30de58cef90 100644 --- a/drivers/net/wireless/wl12xx/wl1271_main.c +++ b/drivers/net/wireless/wl12xx/wl1271_main.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <linux/crc32.h> | 28 | #include <linux/crc32.h> |
29 | #include <linux/etherdevice.h> | 29 | #include <linux/etherdevice.h> |
30 | #include <linux/vmalloc.h> | 30 | #include <linux/vmalloc.h> |
31 | #include <linux/inetdevice.h> | ||
32 | #include <linux/platform_device.h> | 31 | #include <linux/platform_device.h> |
33 | #include <linux/slab.h> | 32 | #include <linux/slab.h> |
34 | 33 | ||
@@ -45,6 +44,7 @@ | |||
45 | #include "wl1271_cmd.h" | 44 | #include "wl1271_cmd.h" |
46 | #include "wl1271_boot.h" | 45 | #include "wl1271_boot.h" |
47 | #include "wl1271_testmode.h" | 46 | #include "wl1271_testmode.h" |
47 | #include "wl1271_scan.h" | ||
48 | 48 | ||
49 | #define WL1271_BOOT_RETRIES 3 | 49 | #define WL1271_BOOT_RETRIES 3 |
50 | 50 | ||
@@ -55,7 +55,7 @@ static struct conf_drv_settings default_conf = { | |||
55 | [CONF_SG_HV3_MAX_OVERRIDE] = 0, | 55 | [CONF_SG_HV3_MAX_OVERRIDE] = 0, |
56 | [CONF_SG_BT_NFS_SAMPLE_INTERVAL] = 400, | 56 | [CONF_SG_BT_NFS_SAMPLE_INTERVAL] = 400, |
57 | [CONF_SG_BT_LOAD_RATIO] = 50, | 57 | [CONF_SG_BT_LOAD_RATIO] = 50, |
58 | [CONF_SG_AUTO_PS_MODE] = 0, | 58 | [CONF_SG_AUTO_PS_MODE] = 1, |
59 | [CONF_SG_AUTO_SCAN_PROBE_REQ] = 170, | 59 | [CONF_SG_AUTO_SCAN_PROBE_REQ] = 170, |
60 | [CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_HV3] = 50, | 60 | [CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_HV3] = 50, |
61 | [CONF_SG_ANTENNA_CONFIGURATION] = 0, | 61 | [CONF_SG_ANTENNA_CONFIGURATION] = 0, |
@@ -234,18 +234,14 @@ static struct conf_drv_settings default_conf = { | |||
234 | .beacon_rx_timeout = 10000, | 234 | .beacon_rx_timeout = 10000, |
235 | .broadcast_timeout = 20000, | 235 | .broadcast_timeout = 20000, |
236 | .rx_broadcast_in_ps = 1, | 236 | .rx_broadcast_in_ps = 1, |
237 | .ps_poll_threshold = 20, | 237 | .ps_poll_threshold = 10, |
238 | .ps_poll_recovery_period = 700, | ||
238 | .bet_enable = CONF_BET_MODE_ENABLE, | 239 | .bet_enable = CONF_BET_MODE_ENABLE, |
239 | .bet_max_consecutive = 10, | 240 | .bet_max_consecutive = 10, |
240 | .psm_entry_retries = 3, | 241 | .psm_entry_retries = 3, |
241 | .keep_alive_interval = 55000, | 242 | .keep_alive_interval = 55000, |
242 | .max_listen_interval = 20, | 243 | .max_listen_interval = 20, |
243 | }, | 244 | }, |
244 | .init = { | ||
245 | .radioparam = { | ||
246 | .fem = 1, | ||
247 | } | ||
248 | }, | ||
249 | .itrim = { | 245 | .itrim = { |
250 | .enable = false, | 246 | .enable = false, |
251 | .timeout = 50000, | 247 | .timeout = 50000, |
@@ -818,93 +814,6 @@ static int wl1271_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb) | |||
818 | return NETDEV_TX_OK; | 814 | return NETDEV_TX_OK; |
819 | } | 815 | } |
820 | 816 | ||
821 | static int wl1271_dev_notify(struct notifier_block *me, unsigned long what, | ||
822 | void *arg) | ||
823 | { | ||
824 | struct net_device *dev; | ||
825 | struct wireless_dev *wdev; | ||
826 | struct wiphy *wiphy; | ||
827 | struct ieee80211_hw *hw; | ||
828 | struct wl1271 *wl; | ||
829 | struct wl1271 *wl_temp; | ||
830 | struct in_device *idev; | ||
831 | struct in_ifaddr *ifa = arg; | ||
832 | int ret = 0; | ||
833 | |||
834 | /* FIXME: this ugly function should probably be implemented in the | ||
835 | * mac80211, and here should only be a simple callback handling actual | ||
836 | * setting of the filters. Now we need to dig up references to | ||
837 | * various structures to gain access to what we need. | ||
838 | * Also, because of this, there is no "initial" setting of the filter | ||
839 | * in "op_start", because we don't want to dig up struct net_device | ||
840 | * there - the filter will be set upon first change of the interface | ||
841 | * IP address. */ | ||
842 | |||
843 | dev = ifa->ifa_dev->dev; | ||
844 | |||
845 | wdev = dev->ieee80211_ptr; | ||
846 | if (wdev == NULL) | ||
847 | return NOTIFY_DONE; | ||
848 | |||
849 | wiphy = wdev->wiphy; | ||
850 | if (wiphy == NULL) | ||
851 | return NOTIFY_DONE; | ||
852 | |||
853 | hw = wiphy_priv(wiphy); | ||
854 | if (hw == NULL) | ||
855 | return NOTIFY_DONE; | ||
856 | |||
857 | /* Check that the interface is one supported by this driver. */ | ||
858 | wl_temp = hw->priv; | ||
859 | list_for_each_entry(wl, &wl_list, list) { | ||
860 | if (wl == wl_temp) | ||
861 | break; | ||
862 | } | ||
863 | if (wl != wl_temp) | ||
864 | return NOTIFY_DONE; | ||
865 | |||
866 | /* Get the interface IP address for the device. "ifa" will become | ||
867 | NULL if: | ||
868 | - there is no IPV4 protocol address configured | ||
869 | - there are multiple (virtual) IPV4 addresses configured | ||
870 | When "ifa" is NULL, filtering will be disabled. | ||
871 | */ | ||
872 | ifa = NULL; | ||
873 | idev = dev->ip_ptr; | ||
874 | if (idev) | ||
875 | ifa = idev->ifa_list; | ||
876 | |||
877 | if (ifa && ifa->ifa_next) | ||
878 | ifa = NULL; | ||
879 | |||
880 | mutex_lock(&wl->mutex); | ||
881 | |||
882 | if (wl->state == WL1271_STATE_OFF) | ||
883 | goto out; | ||
884 | |||
885 | ret = wl1271_ps_elp_wakeup(wl, false); | ||
886 | if (ret < 0) | ||
887 | goto out; | ||
888 | if (ifa) | ||
889 | ret = wl1271_acx_arp_ip_filter(wl, true, | ||
890 | (u8 *)&ifa->ifa_address, | ||
891 | ACX_IPV4_VERSION); | ||
892 | else | ||
893 | ret = wl1271_acx_arp_ip_filter(wl, false, NULL, | ||
894 | ACX_IPV4_VERSION); | ||
895 | wl1271_ps_elp_sleep(wl); | ||
896 | |||
897 | out: | ||
898 | mutex_unlock(&wl->mutex); | ||
899 | |||
900 | return NOTIFY_OK; | ||
901 | } | ||
902 | |||
903 | static struct notifier_block wl1271_dev_notifier = { | ||
904 | .notifier_call = wl1271_dev_notify, | ||
905 | }; | ||
906 | |||
907 | |||
908 | static int wl1271_op_start(struct ieee80211_hw *hw) | 817 | static int wl1271_op_start(struct ieee80211_hw *hw) |
909 | { | 818 | { |
910 | wl1271_debug(DEBUG_MAC80211, "mac80211 start"); | 819 | wl1271_debug(DEBUG_MAC80211, "mac80211 start"); |
@@ -1008,10 +917,8 @@ power_off: | |||
1008 | out: | 917 | out: |
1009 | mutex_unlock(&wl->mutex); | 918 | mutex_unlock(&wl->mutex); |
1010 | 919 | ||
1011 | if (!ret) { | 920 | if (!ret) |
1012 | list_add(&wl->list, &wl_list); | 921 | list_add(&wl->list, &wl_list); |
1013 | register_inetaddr_notifier(&wl1271_dev_notifier); | ||
1014 | } | ||
1015 | 922 | ||
1016 | return ret; | 923 | return ret; |
1017 | } | 924 | } |
@@ -1022,8 +929,6 @@ static void wl1271_op_remove_interface(struct ieee80211_hw *hw, | |||
1022 | struct wl1271 *wl = hw->priv; | 929 | struct wl1271 *wl = hw->priv; |
1023 | int i; | 930 | int i; |
1024 | 931 | ||
1025 | unregister_inetaddr_notifier(&wl1271_dev_notifier); | ||
1026 | |||
1027 | mutex_lock(&wl->mutex); | 932 | mutex_lock(&wl->mutex); |
1028 | wl1271_debug(DEBUG_MAC80211, "mac80211 remove interface"); | 933 | wl1271_debug(DEBUG_MAC80211, "mac80211 remove interface"); |
1029 | 934 | ||
@@ -1033,10 +938,17 @@ static void wl1271_op_remove_interface(struct ieee80211_hw *hw, | |||
1033 | 938 | ||
1034 | WARN_ON(wl->state != WL1271_STATE_ON); | 939 | WARN_ON(wl->state != WL1271_STATE_ON); |
1035 | 940 | ||
1036 | if (test_and_clear_bit(WL1271_FLAG_SCANNING, &wl->flags)) { | 941 | /* enable dyn ps just in case (if left on due to fw crash etc) */ |
942 | if (wl->bss_type == BSS_TYPE_STA_BSS) | ||
943 | ieee80211_enable_dyn_ps(wl->vif); | ||
944 | |||
945 | if (wl->scan.state != WL1271_SCAN_STATE_IDLE) { | ||
1037 | mutex_unlock(&wl->mutex); | 946 | mutex_unlock(&wl->mutex); |
1038 | ieee80211_scan_completed(wl->hw, true); | 947 | ieee80211_scan_completed(wl->hw, true); |
1039 | mutex_lock(&wl->mutex); | 948 | mutex_lock(&wl->mutex); |
949 | wl->scan.state = WL1271_SCAN_STATE_IDLE; | ||
950 | kfree(wl->scan.scanned_ch); | ||
951 | wl->scan.scanned_ch = NULL; | ||
1040 | } | 952 | } |
1041 | 953 | ||
1042 | wl->state = WL1271_STATE_OFF; | 954 | wl->state = WL1271_STATE_OFF; |
@@ -1047,6 +959,7 @@ static void wl1271_op_remove_interface(struct ieee80211_hw *hw, | |||
1047 | 959 | ||
1048 | cancel_work_sync(&wl->irq_work); | 960 | cancel_work_sync(&wl->irq_work); |
1049 | cancel_work_sync(&wl->tx_work); | 961 | cancel_work_sync(&wl->tx_work); |
962 | cancel_delayed_work_sync(&wl->pspoll_work); | ||
1050 | 963 | ||
1051 | mutex_lock(&wl->mutex); | 964 | mutex_lock(&wl->mutex); |
1052 | 965 | ||
@@ -1352,6 +1265,13 @@ static int wl1271_op_config(struct ieee80211_hw *hw, u32 changed) | |||
1352 | wl1271_warning("idle mode change failed %d", ret); | 1265 | wl1271_warning("idle mode change failed %d", ret); |
1353 | } | 1266 | } |
1354 | 1267 | ||
1268 | /* | ||
1269 | * if mac80211 changes the PSM mode, make sure the mode is not | ||
1270 | * incorrectly changed after the pspoll failure active window. | ||
1271 | */ | ||
1272 | if (changed & IEEE80211_CONF_CHANGE_PS) | ||
1273 | clear_bit(WL1271_FLAG_PSPOLL_FAILURE, &wl->flags); | ||
1274 | |||
1355 | if (conf->flags & IEEE80211_CONF_PS && | 1275 | if (conf->flags & IEEE80211_CONF_PS && |
1356 | !test_bit(WL1271_FLAG_PSM_REQUESTED, &wl->flags)) { | 1276 | !test_bit(WL1271_FLAG_PSM_REQUESTED, &wl->flags)) { |
1357 | set_bit(WL1271_FLAG_PSM_REQUESTED, &wl->flags); | 1277 | set_bit(WL1271_FLAG_PSM_REQUESTED, &wl->flags); |
@@ -1634,11 +1554,9 @@ static int wl1271_op_hw_scan(struct ieee80211_hw *hw, | |||
1634 | goto out; | 1554 | goto out; |
1635 | 1555 | ||
1636 | if (wl1271_11a_enabled()) | 1556 | if (wl1271_11a_enabled()) |
1637 | ret = wl1271_cmd_scan(hw->priv, ssid, len, req, | 1557 | ret = wl1271_scan(hw->priv, ssid, len, req); |
1638 | 1, 0, WL1271_SCAN_BAND_DUAL, 3); | ||
1639 | else | 1558 | else |
1640 | ret = wl1271_cmd_scan(hw->priv, ssid, len, req, | 1559 | ret = wl1271_scan(hw->priv, ssid, len, req); |
1641 | 1, 0, WL1271_SCAN_BAND_2_4_GHZ, 3); | ||
1642 | 1560 | ||
1643 | wl1271_ps_elp_sleep(wl); | 1561 | wl1271_ps_elp_sleep(wl); |
1644 | 1562 | ||
@@ -1811,6 +1729,8 @@ static void wl1271_op_bss_info_changed(struct ieee80211_hw *hw, | |||
1811 | wl->aid = bss_conf->aid; | 1729 | wl->aid = bss_conf->aid; |
1812 | set_assoc = true; | 1730 | set_assoc = true; |
1813 | 1731 | ||
1732 | wl->ps_poll_failures = 0; | ||
1733 | |||
1814 | /* | 1734 | /* |
1815 | * use basic rates from AP, and determine lowest rate | 1735 | * use basic rates from AP, and determine lowest rate |
1816 | * to use with control frames. | 1736 | * to use with control frames. |
@@ -1860,6 +1780,9 @@ static void wl1271_op_bss_info_changed(struct ieee80211_hw *hw, | |||
1860 | clear_bit(WL1271_FLAG_STA_ASSOCIATED, &wl->flags); | 1780 | clear_bit(WL1271_FLAG_STA_ASSOCIATED, &wl->flags); |
1861 | wl->aid = 0; | 1781 | wl->aid = 0; |
1862 | 1782 | ||
1783 | /* re-enable dynamic ps - just in case */ | ||
1784 | ieee80211_enable_dyn_ps(wl->vif); | ||
1785 | |||
1863 | /* revert back to minimum rates for the current band */ | 1786 | /* revert back to minimum rates for the current band */ |
1864 | wl1271_set_band_rate(wl); | 1787 | wl1271_set_band_rate(wl); |
1865 | wl->basic_rate = wl1271_min_rate_get(wl); | 1788 | wl->basic_rate = wl1271_min_rate_get(wl); |
@@ -1908,6 +1831,19 @@ static void wl1271_op_bss_info_changed(struct ieee80211_hw *hw, | |||
1908 | } | 1831 | } |
1909 | } | 1832 | } |
1910 | 1833 | ||
1834 | if (changed & BSS_CHANGED_ARP_FILTER) { | ||
1835 | __be32 addr = bss_conf->arp_addr_list[0]; | ||
1836 | WARN_ON(wl->bss_type != BSS_TYPE_STA_BSS); | ||
1837 | |||
1838 | if (bss_conf->arp_addr_cnt == 1 && bss_conf->arp_filter_enabled) | ||
1839 | ret = wl1271_acx_arp_ip_filter(wl, true, addr); | ||
1840 | else | ||
1841 | ret = wl1271_acx_arp_ip_filter(wl, false, addr); | ||
1842 | |||
1843 | if (ret < 0) | ||
1844 | goto out_sleep; | ||
1845 | } | ||
1846 | |||
1911 | if (do_join) { | 1847 | if (do_join) { |
1912 | ret = wl1271_join(wl, set_assoc); | 1848 | ret = wl1271_join(wl, set_assoc); |
1913 | if (ret < 0) { | 1849 | if (ret < 0) { |
@@ -1966,6 +1902,32 @@ out: | |||
1966 | return ret; | 1902 | return ret; |
1967 | } | 1903 | } |
1968 | 1904 | ||
1905 | static u64 wl1271_op_get_tsf(struct ieee80211_hw *hw) | ||
1906 | { | ||
1907 | |||
1908 | struct wl1271 *wl = hw->priv; | ||
1909 | u64 mactime = ULLONG_MAX; | ||
1910 | int ret; | ||
1911 | |||
1912 | wl1271_debug(DEBUG_MAC80211, "mac80211 get tsf"); | ||
1913 | |||
1914 | mutex_lock(&wl->mutex); | ||
1915 | |||
1916 | ret = wl1271_ps_elp_wakeup(wl, false); | ||
1917 | if (ret < 0) | ||
1918 | goto out; | ||
1919 | |||
1920 | ret = wl1271_acx_tsf_info(wl, &mactime); | ||
1921 | if (ret < 0) | ||
1922 | goto out_sleep; | ||
1923 | |||
1924 | out_sleep: | ||
1925 | wl1271_ps_elp_sleep(wl); | ||
1926 | |||
1927 | out: | ||
1928 | mutex_unlock(&wl->mutex); | ||
1929 | return mactime; | ||
1930 | } | ||
1969 | 1931 | ||
1970 | /* can't be const, mac80211 writes to this */ | 1932 | /* can't be const, mac80211 writes to this */ |
1971 | static struct ieee80211_rate wl1271_rates[] = { | 1933 | static struct ieee80211_rate wl1271_rates[] = { |
@@ -2195,6 +2157,7 @@ static const struct ieee80211_ops wl1271_ops = { | |||
2195 | .bss_info_changed = wl1271_op_bss_info_changed, | 2157 | .bss_info_changed = wl1271_op_bss_info_changed, |
2196 | .set_rts_threshold = wl1271_op_set_rts_threshold, | 2158 | .set_rts_threshold = wl1271_op_set_rts_threshold, |
2197 | .conf_tx = wl1271_op_conf_tx, | 2159 | .conf_tx = wl1271_op_conf_tx, |
2160 | .get_tsf = wl1271_op_get_tsf, | ||
2198 | CFG80211_TESTMODE_CMD(wl1271_tm_cmd) | 2161 | CFG80211_TESTMODE_CMD(wl1271_tm_cmd) |
2199 | }; | 2162 | }; |
2200 | 2163 | ||
@@ -2407,6 +2370,7 @@ struct ieee80211_hw *wl1271_alloc_hw(void) | |||
2407 | skb_queue_head_init(&wl->tx_queue); | 2370 | skb_queue_head_init(&wl->tx_queue); |
2408 | 2371 | ||
2409 | INIT_DELAYED_WORK(&wl->elp_work, wl1271_elp_work); | 2372 | INIT_DELAYED_WORK(&wl->elp_work, wl1271_elp_work); |
2373 | INIT_DELAYED_WORK(&wl->pspoll_work, wl1271_pspoll_work); | ||
2410 | wl->channel = WL1271_DEFAULT_CHANNEL; | 2374 | wl->channel = WL1271_DEFAULT_CHANNEL; |
2411 | wl->beacon_int = WL1271_DEFAULT_BEACON_INT; | 2375 | wl->beacon_int = WL1271_DEFAULT_BEACON_INT; |
2412 | wl->default_key = 0; | 2376 | wl->default_key = 0; |
diff --git a/drivers/net/wireless/wl12xx/wl1271_rx.c b/drivers/net/wireless/wl12xx/wl1271_rx.c index b98fb643fab0..e98f22b3c3ba 100644 --- a/drivers/net/wireless/wl12xx/wl1271_rx.c +++ b/drivers/net/wireless/wl12xx/wl1271_rx.c | |||
@@ -53,12 +53,6 @@ static void wl1271_rx_status(struct wl1271 *wl, | |||
53 | status->band = wl->band; | 53 | status->band = wl->band; |
54 | status->rate_idx = wl1271_rate_to_idx(wl, desc->rate); | 54 | status->rate_idx = wl1271_rate_to_idx(wl, desc->rate); |
55 | 55 | ||
56 | /* | ||
57 | * FIXME: Add mactime handling. For IBSS (ad-hoc) we need to get the | ||
58 | * timestamp from the beacon (acx_tsf_info). In BSS mode (infra) we | ||
59 | * only need the mactime for monitor mode. For now the mactime is | ||
60 | * not valid, so RX_FLAG_TSFT should not be set | ||
61 | */ | ||
62 | status->signal = desc->rssi; | 56 | status->signal = desc->rssi; |
63 | 57 | ||
64 | status->freq = ieee80211_channel_to_frequency(desc->channel); | 58 | status->freq = ieee80211_channel_to_frequency(desc->channel); |
diff --git a/drivers/net/wireless/wl12xx/wl1271_scan.c b/drivers/net/wireless/wl12xx/wl1271_scan.c new file mode 100644 index 000000000000..fec43eed8c55 --- /dev/null +++ b/drivers/net/wireless/wl12xx/wl1271_scan.c | |||
@@ -0,0 +1,257 @@ | |||
1 | /* | ||
2 | * This file is part of wl1271 | ||
3 | * | ||
4 | * Copyright (C) 2009-2010 Nokia Corporation | ||
5 | * | ||
6 | * Contact: Luciano Coelho <luciano.coelho@nokia.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | ||
9 | * modify it under the terms of the GNU General Public License | ||
10 | * version 2 as published by the Free Software Foundation. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, but | ||
13 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
15 | * General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA | ||
20 | * 02110-1301 USA | ||
21 | * | ||
22 | */ | ||
23 | |||
24 | #include <linux/ieee80211.h> | ||
25 | |||
26 | #include "wl1271.h" | ||
27 | #include "wl1271_cmd.h" | ||
28 | #include "wl1271_scan.h" | ||
29 | #include "wl1271_acx.h" | ||
30 | |||
31 | static int wl1271_get_scan_channels(struct wl1271 *wl, | ||
32 | struct cfg80211_scan_request *req, | ||
33 | struct basic_scan_channel_params *channels, | ||
34 | enum ieee80211_band band, bool passive) | ||
35 | { | ||
36 | int i, j; | ||
37 | u32 flags; | ||
38 | |||
39 | for (i = 0, j = 0; | ||
40 | i < req->n_channels && j < WL1271_SCAN_MAX_CHANNELS; | ||
41 | i++) { | ||
42 | |||
43 | flags = req->channels[i]->flags; | ||
44 | |||
45 | if (!wl->scan.scanned_ch[i] && | ||
46 | !(flags & IEEE80211_CHAN_DISABLED) && | ||
47 | ((!!(flags & IEEE80211_CHAN_PASSIVE_SCAN)) == passive) && | ||
48 | (req->channels[i]->band == band)) { | ||
49 | |||
50 | wl1271_debug(DEBUG_SCAN, "band %d, center_freq %d ", | ||
51 | req->channels[i]->band, | ||
52 | req->channels[i]->center_freq); | ||
53 | wl1271_debug(DEBUG_SCAN, "hw_value %d, flags %X", | ||
54 | req->channels[i]->hw_value, | ||
55 | req->channels[i]->flags); | ||
56 | wl1271_debug(DEBUG_SCAN, | ||
57 | "max_antenna_gain %d, max_power %d", | ||
58 | req->channels[i]->max_antenna_gain, | ||
59 | req->channels[i]->max_power); | ||
60 | wl1271_debug(DEBUG_SCAN, "beacon_found %d", | ||
61 | req->channels[i]->beacon_found); | ||
62 | |||
63 | channels[j].min_duration = | ||
64 | cpu_to_le32(WL1271_SCAN_CHAN_MIN_DURATION); | ||
65 | channels[j].max_duration = | ||
66 | cpu_to_le32(WL1271_SCAN_CHAN_MAX_DURATION); | ||
67 | channels[j].early_termination = 0; | ||
68 | channels[j].tx_power_att = req->channels[i]->max_power; | ||
69 | channels[j].channel = req->channels[i]->hw_value; | ||
70 | |||
71 | memset(&channels[j].bssid_lsb, 0xff, 4); | ||
72 | memset(&channels[j].bssid_msb, 0xff, 2); | ||
73 | |||
74 | /* Mark the channels we already used */ | ||
75 | wl->scan.scanned_ch[i] = true; | ||
76 | |||
77 | j++; | ||
78 | } | ||
79 | } | ||
80 | |||
81 | return j; | ||
82 | } | ||
83 | |||
84 | #define WL1271_NOTHING_TO_SCAN 1 | ||
85 | |||
86 | static int wl1271_scan_send(struct wl1271 *wl, enum ieee80211_band band, | ||
87 | bool passive, u32 basic_rate) | ||
88 | { | ||
89 | struct wl1271_cmd_scan *cmd; | ||
90 | struct wl1271_cmd_trigger_scan_to *trigger; | ||
91 | int ret; | ||
92 | u16 scan_options = 0; | ||
93 | |||
94 | cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); | ||
95 | trigger = kzalloc(sizeof(*trigger), GFP_KERNEL); | ||
96 | if (!cmd || !trigger) { | ||
97 | ret = -ENOMEM; | ||
98 | goto out; | ||
99 | } | ||
100 | |||
101 | /* We always use high priority scans */ | ||
102 | scan_options = WL1271_SCAN_OPT_PRIORITY_HIGH; | ||
103 | if(passive) | ||
104 | scan_options |= WL1271_SCAN_OPT_PASSIVE; | ||
105 | cmd->params.scan_options = cpu_to_le16(scan_options); | ||
106 | |||
107 | cmd->params.n_ch = wl1271_get_scan_channels(wl, wl->scan.req, | ||
108 | cmd->channels, | ||
109 | band, passive); | ||
110 | if (cmd->params.n_ch == 0) { | ||
111 | ret = WL1271_NOTHING_TO_SCAN; | ||
112 | goto out; | ||
113 | } | ||
114 | |||
115 | cmd->params.tx_rate = cpu_to_le32(basic_rate); | ||
116 | cmd->params.rx_config_options = cpu_to_le32(CFG_RX_ALL_GOOD); | ||
117 | cmd->params.rx_filter_options = | ||
118 | cpu_to_le32(CFG_RX_PRSP_EN | CFG_RX_MGMT_EN | CFG_RX_BCN_EN); | ||
119 | |||
120 | cmd->params.n_probe_reqs = WL1271_SCAN_PROBE_REQS; | ||
121 | cmd->params.tx_rate = cpu_to_le32(basic_rate); | ||
122 | cmd->params.tid_trigger = 0; | ||
123 | cmd->params.scan_tag = WL1271_SCAN_DEFAULT_TAG; | ||
124 | |||
125 | if (band == IEEE80211_BAND_2GHZ) | ||
126 | cmd->params.band = WL1271_SCAN_BAND_2_4_GHZ; | ||
127 | else | ||
128 | cmd->params.band = WL1271_SCAN_BAND_5_GHZ; | ||
129 | |||
130 | if (wl->scan.ssid_len && wl->scan.ssid) { | ||
131 | cmd->params.ssid_len = wl->scan.ssid_len; | ||
132 | memcpy(cmd->params.ssid, wl->scan.ssid, wl->scan.ssid_len); | ||
133 | } | ||
134 | |||
135 | ret = wl1271_cmd_build_probe_req(wl, wl->scan.ssid, wl->scan.ssid_len, | ||
136 | wl->scan.req->ie, wl->scan.req->ie_len, | ||
137 | band); | ||
138 | if (ret < 0) { | ||
139 | wl1271_error("PROBE request template failed"); | ||
140 | goto out; | ||
141 | } | ||
142 | |||
143 | /* disable the timeout */ | ||
144 | trigger->timeout = 0; | ||
145 | ret = wl1271_cmd_send(wl, CMD_TRIGGER_SCAN_TO, trigger, | ||
146 | sizeof(*trigger), 0); | ||
147 | if (ret < 0) { | ||
148 | wl1271_error("trigger scan to failed for hw scan"); | ||
149 | goto out; | ||
150 | } | ||
151 | |||
152 | wl1271_dump(DEBUG_SCAN, "SCAN: ", cmd, sizeof(*cmd)); | ||
153 | |||
154 | ret = wl1271_cmd_send(wl, CMD_SCAN, cmd, sizeof(*cmd), 0); | ||
155 | if (ret < 0) { | ||
156 | wl1271_error("SCAN failed"); | ||
157 | goto out; | ||
158 | } | ||
159 | |||
160 | out: | ||
161 | kfree(cmd); | ||
162 | kfree(trigger); | ||
163 | return ret; | ||
164 | } | ||
165 | |||
166 | void wl1271_scan_stm(struct wl1271 *wl) | ||
167 | { | ||
168 | int ret; | ||
169 | |||
170 | switch (wl->scan.state) { | ||
171 | case WL1271_SCAN_STATE_IDLE: | ||
172 | break; | ||
173 | |||
174 | case WL1271_SCAN_STATE_2GHZ_ACTIVE: | ||
175 | ret = wl1271_scan_send(wl, IEEE80211_BAND_2GHZ, false, | ||
176 | wl->conf.tx.basic_rate); | ||
177 | if (ret == WL1271_NOTHING_TO_SCAN) { | ||
178 | wl->scan.state = WL1271_SCAN_STATE_2GHZ_PASSIVE; | ||
179 | wl1271_scan_stm(wl); | ||
180 | } | ||
181 | |||
182 | break; | ||
183 | |||
184 | case WL1271_SCAN_STATE_2GHZ_PASSIVE: | ||
185 | ret = wl1271_scan_send(wl, IEEE80211_BAND_2GHZ, true, | ||
186 | wl->conf.tx.basic_rate); | ||
187 | if (ret == WL1271_NOTHING_TO_SCAN) { | ||
188 | if (wl1271_11a_enabled()) | ||
189 | wl->scan.state = WL1271_SCAN_STATE_5GHZ_ACTIVE; | ||
190 | else | ||
191 | wl->scan.state = WL1271_SCAN_STATE_DONE; | ||
192 | wl1271_scan_stm(wl); | ||
193 | } | ||
194 | |||
195 | break; | ||
196 | |||
197 | case WL1271_SCAN_STATE_5GHZ_ACTIVE: | ||
198 | ret = wl1271_scan_send(wl, IEEE80211_BAND_5GHZ, false, | ||
199 | wl->conf.tx.basic_rate_5); | ||
200 | if (ret == WL1271_NOTHING_TO_SCAN) { | ||
201 | wl->scan.state = WL1271_SCAN_STATE_5GHZ_PASSIVE; | ||
202 | wl1271_scan_stm(wl); | ||
203 | } | ||
204 | |||
205 | break; | ||
206 | |||
207 | case WL1271_SCAN_STATE_5GHZ_PASSIVE: | ||
208 | ret = wl1271_scan_send(wl, IEEE80211_BAND_5GHZ, true, | ||
209 | wl->conf.tx.basic_rate_5); | ||
210 | if (ret == WL1271_NOTHING_TO_SCAN) { | ||
211 | wl->scan.state = WL1271_SCAN_STATE_DONE; | ||
212 | wl1271_scan_stm(wl); | ||
213 | } | ||
214 | |||
215 | break; | ||
216 | |||
217 | case WL1271_SCAN_STATE_DONE: | ||
218 | mutex_unlock(&wl->mutex); | ||
219 | ieee80211_scan_completed(wl->hw, false); | ||
220 | mutex_lock(&wl->mutex); | ||
221 | |||
222 | kfree(wl->scan.scanned_ch); | ||
223 | wl->scan.scanned_ch = NULL; | ||
224 | |||
225 | wl->scan.state = WL1271_SCAN_STATE_IDLE; | ||
226 | break; | ||
227 | |||
228 | default: | ||
229 | wl1271_error("invalid scan state"); | ||
230 | break; | ||
231 | } | ||
232 | } | ||
233 | |||
234 | int wl1271_scan(struct wl1271 *wl, const u8 *ssid, size_t ssid_len, | ||
235 | struct cfg80211_scan_request *req) | ||
236 | { | ||
237 | if (wl->scan.state != WL1271_SCAN_STATE_IDLE) | ||
238 | return -EBUSY; | ||
239 | |||
240 | wl->scan.state = WL1271_SCAN_STATE_2GHZ_ACTIVE; | ||
241 | |||
242 | if (ssid_len && ssid) { | ||
243 | wl->scan.ssid_len = ssid_len; | ||
244 | memcpy(wl->scan.ssid, ssid, ssid_len); | ||
245 | } else { | ||
246 | wl->scan.ssid_len = 0; | ||
247 | } | ||
248 | |||
249 | wl->scan.req = req; | ||
250 | |||
251 | wl->scan.scanned_ch = kzalloc(req->n_channels * | ||
252 | sizeof(*wl->scan.scanned_ch), | ||
253 | GFP_KERNEL); | ||
254 | wl1271_scan_stm(wl); | ||
255 | |||
256 | return 0; | ||
257 | } | ||
diff --git a/drivers/net/wireless/wl12xx/wl1271_scan.h b/drivers/net/wireless/wl12xx/wl1271_scan.h new file mode 100644 index 000000000000..f1815700f5f9 --- /dev/null +++ b/drivers/net/wireless/wl12xx/wl1271_scan.h | |||
@@ -0,0 +1,109 @@ | |||
1 | /* | ||
2 | * This file is part of wl1271 | ||
3 | * | ||
4 | * Copyright (C) 2009-2010 Nokia Corporation | ||
5 | * | ||
6 | * Contact: Luciano Coelho <luciano.coelho@nokia.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | ||
9 | * modify it under the terms of the GNU General Public License | ||
10 | * version 2 as published by the Free Software Foundation. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, but | ||
13 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
15 | * General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA | ||
20 | * 02110-1301 USA | ||
21 | * | ||
22 | */ | ||
23 | |||
24 | #ifndef __WL1271_SCAN_H__ | ||
25 | #define __WL1271_SCAN_H__ | ||
26 | |||
27 | #include "wl1271.h" | ||
28 | |||
29 | int wl1271_scan(struct wl1271 *wl, const u8 *ssid, size_t ssid_len, | ||
30 | struct cfg80211_scan_request *req); | ||
31 | int wl1271_scan_build_probe_req(struct wl1271 *wl, | ||
32 | const u8 *ssid, size_t ssid_len, | ||
33 | const u8 *ie, size_t ie_len, u8 band); | ||
34 | void wl1271_scan_stm(struct wl1271 *wl); | ||
35 | |||
36 | #define WL1271_SCAN_MAX_CHANNELS 24 | ||
37 | #define WL1271_SCAN_DEFAULT_TAG 1 | ||
38 | #define WL1271_SCAN_CURRENT_TX_PWR 0 | ||
39 | #define WL1271_SCAN_OPT_ACTIVE 0 | ||
40 | #define WL1271_SCAN_OPT_PASSIVE 1 | ||
41 | #define WL1271_SCAN_OPT_PRIORITY_HIGH 4 | ||
42 | #define WL1271_SCAN_CHAN_MIN_DURATION 30000 /* TU */ | ||
43 | #define WL1271_SCAN_CHAN_MAX_DURATION 60000 /* TU */ | ||
44 | #define WL1271_SCAN_BAND_2_4_GHZ 0 | ||
45 | #define WL1271_SCAN_BAND_5_GHZ 1 | ||
46 | #define WL1271_SCAN_PROBE_REQS 3 | ||
47 | |||
48 | enum { | ||
49 | WL1271_SCAN_STATE_IDLE, | ||
50 | WL1271_SCAN_STATE_2GHZ_ACTIVE, | ||
51 | WL1271_SCAN_STATE_2GHZ_PASSIVE, | ||
52 | WL1271_SCAN_STATE_5GHZ_ACTIVE, | ||
53 | WL1271_SCAN_STATE_5GHZ_PASSIVE, | ||
54 | WL1271_SCAN_STATE_DONE | ||
55 | }; | ||
56 | |||
57 | struct basic_scan_params { | ||
58 | __le32 rx_config_options; | ||
59 | __le32 rx_filter_options; | ||
60 | /* Scan option flags (WL1271_SCAN_OPT_*) */ | ||
61 | __le16 scan_options; | ||
62 | /* Number of scan channels in the list (maximum 30) */ | ||
63 | u8 n_ch; | ||
64 | /* This field indicates the number of probe requests to send | ||
65 | per channel for an active scan */ | ||
66 | u8 n_probe_reqs; | ||
67 | /* Rate bit field for sending the probes */ | ||
68 | __le32 tx_rate; | ||
69 | u8 tid_trigger; | ||
70 | u8 ssid_len; | ||
71 | /* in order to align */ | ||
72 | u8 padding1[2]; | ||
73 | u8 ssid[IW_ESSID_MAX_SIZE]; | ||
74 | /* Band to scan */ | ||
75 | u8 band; | ||
76 | u8 use_ssid_list; | ||
77 | u8 scan_tag; | ||
78 | u8 padding2; | ||
79 | } __packed; | ||
80 | |||
81 | struct basic_scan_channel_params { | ||
82 | /* Duration in TU to wait for frames on a channel for active scan */ | ||
83 | __le32 min_duration; | ||
84 | __le32 max_duration; | ||
85 | __le32 bssid_lsb; | ||
86 | __le16 bssid_msb; | ||
87 | u8 early_termination; | ||
88 | u8 tx_power_att; | ||
89 | u8 channel; | ||
90 | /* FW internal use only! */ | ||
91 | u8 dfs_candidate; | ||
92 | u8 activity_detected; | ||
93 | u8 pad; | ||
94 | } __packed; | ||
95 | |||
96 | struct wl1271_cmd_scan { | ||
97 | struct wl1271_cmd_header header; | ||
98 | |||
99 | struct basic_scan_params params; | ||
100 | struct basic_scan_channel_params channels[WL1271_SCAN_MAX_CHANNELS]; | ||
101 | } __packed; | ||
102 | |||
103 | struct wl1271_cmd_trigger_scan_to { | ||
104 | struct wl1271_cmd_header header; | ||
105 | |||
106 | __le32 timeout; | ||
107 | } __packed; | ||
108 | |||
109 | #endif /* __WL1271_SCAN_H__ */ | ||
diff --git a/drivers/net/wireless/wl12xx/wl1271_spi.c b/drivers/net/wireless/wl12xx/wl1271_spi.c index 5189b812f939..96d25fb50495 100644 --- a/drivers/net/wireless/wl12xx/wl1271_spi.c +++ b/drivers/net/wireless/wl12xx/wl1271_spi.c | |||
@@ -461,3 +461,4 @@ MODULE_LICENSE("GPL"); | |||
461 | MODULE_AUTHOR("Luciano Coelho <luciano.coelho@nokia.com>"); | 461 | MODULE_AUTHOR("Luciano Coelho <luciano.coelho@nokia.com>"); |
462 | MODULE_AUTHOR("Juuso Oikarinen <juuso.oikarinen@nokia.com>"); | 462 | MODULE_AUTHOR("Juuso Oikarinen <juuso.oikarinen@nokia.com>"); |
463 | MODULE_FIRMWARE(WL1271_FW_NAME); | 463 | MODULE_FIRMWARE(WL1271_FW_NAME); |
464 | MODULE_ALIAS("spi:wl1271"); | ||
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index 9eb02a340889..5e56e91c92c4 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c | |||
@@ -143,6 +143,11 @@ static int ieee80211_add_key(struct wiphy *wiphy, struct net_device *dev, | |||
143 | return -EINVAL; | 143 | return -EINVAL; |
144 | } | 144 | } |
145 | 145 | ||
146 | /* reject WEP and TKIP keys if WEP failed to initialize */ | ||
147 | if ((alg == ALG_WEP || alg == ALG_TKIP) && | ||
148 | IS_ERR(sdata->local->wep_tx_tfm)) | ||
149 | return -EINVAL; | ||
150 | |||
146 | key = ieee80211_key_alloc(alg, key_idx, params->key_len, params->key, | 151 | key = ieee80211_key_alloc(alg, key_idx, params->key_len, params->key, |
147 | params->seq_len, params->seq); | 152 | params->seq_len, params->seq); |
148 | if (!key) | 153 | if (!key) |
diff --git a/net/mac80211/main.c b/net/mac80211/main.c index edf7aff93268..0e95c750ded9 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c | |||
@@ -637,11 +637,9 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) | |||
637 | goto fail_sta_info; | 637 | goto fail_sta_info; |
638 | 638 | ||
639 | result = ieee80211_wep_init(local); | 639 | result = ieee80211_wep_init(local); |
640 | if (result < 0) { | 640 | if (result < 0) |
641 | printk(KERN_DEBUG "%s: Failed to initialize wep: %d\n", | 641 | printk(KERN_DEBUG "%s: Failed to initialize wep: %d\n", |
642 | wiphy_name(local->hw.wiphy), result); | 642 | wiphy_name(local->hw.wiphy), result); |
643 | goto fail_wep; | ||
644 | } | ||
645 | 643 | ||
646 | rtnl_lock(); | 644 | rtnl_lock(); |
647 | 645 | ||
@@ -694,7 +692,6 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) | |||
694 | fail_rate: | 692 | fail_rate: |
695 | rtnl_unlock(); | 693 | rtnl_unlock(); |
696 | ieee80211_wep_free(local); | 694 | ieee80211_wep_free(local); |
697 | fail_wep: | ||
698 | sta_info_stop(local); | 695 | sta_info_stop(local); |
699 | fail_sta_info: | 696 | fail_sta_info: |
700 | destroy_workqueue(local->workqueue); | 697 | destroy_workqueue(local->workqueue); |
diff --git a/net/mac80211/rc80211_minstrel_ht.c b/net/mac80211/rc80211_minstrel_ht.c index 52c85036660d..b5ace243546c 100644 --- a/net/mac80211/rc80211_minstrel_ht.c +++ b/net/mac80211/rc80211_minstrel_ht.c | |||
@@ -240,6 +240,7 @@ minstrel_ht_update_stats(struct minstrel_priv *mp, struct minstrel_ht_sta *mi) | |||
240 | MINSTREL_FRAC(3, 4)) || mr->probability > cur_prob) { | 240 | MINSTREL_FRAC(3, 4)) || mr->probability > cur_prob) { |
241 | mg->max_prob_rate = index; | 241 | mg->max_prob_rate = index; |
242 | cur_prob = mr->probability; | 242 | cur_prob = mr->probability; |
243 | cur_prob_tp = mr->cur_tp; | ||
243 | } | 244 | } |
244 | 245 | ||
245 | if (mr->cur_tp > cur_tp) { | 246 | if (mr->cur_tp > cur_tp) { |
@@ -275,6 +276,7 @@ minstrel_ht_update_stats(struct minstrel_priv *mp, struct minstrel_ht_sta *mi) | |||
275 | minstrel_mcs_groups[group].streams == 1) { | 276 | minstrel_mcs_groups[group].streams == 1) { |
276 | mi->max_prob_rate = mg->max_prob_rate; | 277 | mi->max_prob_rate = mg->max_prob_rate; |
277 | cur_prob = mr->cur_prob; | 278 | cur_prob = mr->cur_prob; |
279 | cur_prob_tp = mr->cur_tp; | ||
278 | } | 280 | } |
279 | 281 | ||
280 | mr = minstrel_get_ratestats(mi, mg->max_tp_rate); | 282 | mr = minstrel_get_ratestats(mi, mg->max_tp_rate); |
@@ -441,8 +443,8 @@ minstrel_ht_tx_status(void *priv, struct ieee80211_supported_band *sband, | |||
441 | minstrel_downgrade_rate(mi, &mi->max_tp_rate, true); | 443 | minstrel_downgrade_rate(mi, &mi->max_tp_rate, true); |
442 | 444 | ||
443 | rate2 = minstrel_get_ratestats(mi, mi->max_tp_rate2); | 445 | rate2 = minstrel_get_ratestats(mi, mi->max_tp_rate2); |
444 | if (rate->attempts > 30 && | 446 | if (rate2->attempts > 30 && |
445 | MINSTREL_FRAC(rate->success, rate->attempts) < | 447 | MINSTREL_FRAC(rate2->success, rate2->attempts) < |
446 | MINSTREL_FRAC(20, 100)) | 448 | MINSTREL_FRAC(20, 100)) |
447 | minstrel_downgrade_rate(mi, &mi->max_tp_rate2, false); | 449 | minstrel_downgrade_rate(mi, &mi->max_tp_rate2, false); |
448 | 450 | ||
diff --git a/net/mac80211/tkip.c b/net/mac80211/tkip.c index 7ef491e9d66d..e840c9cd46db 100644 --- a/net/mac80211/tkip.c +++ b/net/mac80211/tkip.c | |||
@@ -202,9 +202,9 @@ EXPORT_SYMBOL(ieee80211_get_tkip_key); | |||
202 | * @payload_len is the length of payload (_not_ including IV/ICV length). | 202 | * @payload_len is the length of payload (_not_ including IV/ICV length). |
203 | * @ta is the transmitter addresses. | 203 | * @ta is the transmitter addresses. |
204 | */ | 204 | */ |
205 | void ieee80211_tkip_encrypt_data(struct crypto_blkcipher *tfm, | 205 | int ieee80211_tkip_encrypt_data(struct crypto_blkcipher *tfm, |
206 | struct ieee80211_key *key, | 206 | struct ieee80211_key *key, |
207 | u8 *pos, size_t payload_len, u8 *ta) | 207 | u8 *pos, size_t payload_len, u8 *ta) |
208 | { | 208 | { |
209 | u8 rc4key[16]; | 209 | u8 rc4key[16]; |
210 | struct tkip_ctx *ctx = &key->u.tkip.tx; | 210 | struct tkip_ctx *ctx = &key->u.tkip.tx; |
@@ -216,7 +216,7 @@ void ieee80211_tkip_encrypt_data(struct crypto_blkcipher *tfm, | |||
216 | 216 | ||
217 | tkip_mixing_phase2(tk, ctx, ctx->iv16, rc4key); | 217 | tkip_mixing_phase2(tk, ctx, ctx->iv16, rc4key); |
218 | 218 | ||
219 | ieee80211_wep_encrypt_data(tfm, rc4key, 16, pos, payload_len); | 219 | return ieee80211_wep_encrypt_data(tfm, rc4key, 16, pos, payload_len); |
220 | } | 220 | } |
221 | 221 | ||
222 | /* Decrypt packet payload with TKIP using @key. @pos is a pointer to the | 222 | /* Decrypt packet payload with TKIP using @key. @pos is a pointer to the |
diff --git a/net/mac80211/tkip.h b/net/mac80211/tkip.h index d4714383f5fc..7e83dee976fa 100644 --- a/net/mac80211/tkip.h +++ b/net/mac80211/tkip.h | |||
@@ -15,7 +15,7 @@ | |||
15 | 15 | ||
16 | u8 *ieee80211_tkip_add_iv(u8 *pos, struct ieee80211_key *key, u16 iv16); | 16 | u8 *ieee80211_tkip_add_iv(u8 *pos, struct ieee80211_key *key, u16 iv16); |
17 | 17 | ||
18 | void ieee80211_tkip_encrypt_data(struct crypto_blkcipher *tfm, | 18 | int ieee80211_tkip_encrypt_data(struct crypto_blkcipher *tfm, |
19 | struct ieee80211_key *key, | 19 | struct ieee80211_key *key, |
20 | u8 *pos, size_t payload_len, u8 *ta); | 20 | u8 *pos, size_t payload_len, u8 *ta); |
21 | enum { | 21 | enum { |
diff --git a/net/mac80211/wep.c b/net/mac80211/wep.c index 5f3a4113bda1..6d133b6efce5 100644 --- a/net/mac80211/wep.c +++ b/net/mac80211/wep.c | |||
@@ -47,8 +47,10 @@ int ieee80211_wep_init(struct ieee80211_local *local) | |||
47 | 47 | ||
48 | void ieee80211_wep_free(struct ieee80211_local *local) | 48 | void ieee80211_wep_free(struct ieee80211_local *local) |
49 | { | 49 | { |
50 | crypto_free_blkcipher(local->wep_tx_tfm); | 50 | if (!IS_ERR(local->wep_tx_tfm)) |
51 | crypto_free_blkcipher(local->wep_rx_tfm); | 51 | crypto_free_blkcipher(local->wep_tx_tfm); |
52 | if (!IS_ERR(local->wep_rx_tfm)) | ||
53 | crypto_free_blkcipher(local->wep_rx_tfm); | ||
52 | } | 54 | } |
53 | 55 | ||
54 | static inline bool ieee80211_wep_weak_iv(u32 iv, int keylen) | 56 | static inline bool ieee80211_wep_weak_iv(u32 iv, int keylen) |
@@ -122,19 +124,24 @@ static void ieee80211_wep_remove_iv(struct ieee80211_local *local, | |||
122 | /* Perform WEP encryption using given key. data buffer must have tailroom | 124 | /* Perform WEP encryption using given key. data buffer must have tailroom |
123 | * for 4-byte ICV. data_len must not include this ICV. Note: this function | 125 | * for 4-byte ICV. data_len must not include this ICV. Note: this function |
124 | * does _not_ add IV. data = RC4(data | CRC32(data)) */ | 126 | * does _not_ add IV. data = RC4(data | CRC32(data)) */ |
125 | void ieee80211_wep_encrypt_data(struct crypto_blkcipher *tfm, u8 *rc4key, | 127 | int ieee80211_wep_encrypt_data(struct crypto_blkcipher *tfm, u8 *rc4key, |
126 | size_t klen, u8 *data, size_t data_len) | 128 | size_t klen, u8 *data, size_t data_len) |
127 | { | 129 | { |
128 | struct blkcipher_desc desc = { .tfm = tfm }; | 130 | struct blkcipher_desc desc = { .tfm = tfm }; |
129 | struct scatterlist sg; | 131 | struct scatterlist sg; |
130 | __le32 icv; | 132 | __le32 icv; |
131 | 133 | ||
134 | if (IS_ERR(tfm)) | ||
135 | return -1; | ||
136 | |||
132 | icv = cpu_to_le32(~crc32_le(~0, data, data_len)); | 137 | icv = cpu_to_le32(~crc32_le(~0, data, data_len)); |
133 | put_unaligned(icv, (__le32 *)(data + data_len)); | 138 | put_unaligned(icv, (__le32 *)(data + data_len)); |
134 | 139 | ||
135 | crypto_blkcipher_setkey(tfm, rc4key, klen); | 140 | crypto_blkcipher_setkey(tfm, rc4key, klen); |
136 | sg_init_one(&sg, data, data_len + WEP_ICV_LEN); | 141 | sg_init_one(&sg, data, data_len + WEP_ICV_LEN); |
137 | crypto_blkcipher_encrypt(&desc, &sg, &sg, sg.length); | 142 | crypto_blkcipher_encrypt(&desc, &sg, &sg, sg.length); |
143 | |||
144 | return 0; | ||
138 | } | 145 | } |
139 | 146 | ||
140 | 147 | ||
@@ -168,10 +175,8 @@ int ieee80211_wep_encrypt(struct ieee80211_local *local, | |||
168 | /* Add room for ICV */ | 175 | /* Add room for ICV */ |
169 | skb_put(skb, WEP_ICV_LEN); | 176 | skb_put(skb, WEP_ICV_LEN); |
170 | 177 | ||
171 | ieee80211_wep_encrypt_data(local->wep_tx_tfm, rc4key, keylen + 3, | 178 | return ieee80211_wep_encrypt_data(local->wep_tx_tfm, rc4key, keylen + 3, |
172 | iv + WEP_IV_LEN, len); | 179 | iv + WEP_IV_LEN, len); |
173 | |||
174 | return 0; | ||
175 | } | 180 | } |
176 | 181 | ||
177 | 182 | ||
@@ -185,6 +190,9 @@ int ieee80211_wep_decrypt_data(struct crypto_blkcipher *tfm, u8 *rc4key, | |||
185 | struct scatterlist sg; | 190 | struct scatterlist sg; |
186 | __le32 crc; | 191 | __le32 crc; |
187 | 192 | ||
193 | if (IS_ERR(tfm)) | ||
194 | return -1; | ||
195 | |||
188 | crypto_blkcipher_setkey(tfm, rc4key, klen); | 196 | crypto_blkcipher_setkey(tfm, rc4key, klen); |
189 | sg_init_one(&sg, data, data_len + WEP_ICV_LEN); | 197 | sg_init_one(&sg, data, data_len + WEP_ICV_LEN); |
190 | crypto_blkcipher_decrypt(&desc, &sg, &sg, sg.length); | 198 | crypto_blkcipher_decrypt(&desc, &sg, &sg, sg.length); |
diff --git a/net/mac80211/wep.h b/net/mac80211/wep.h index fe29d7e5759f..58654ee33518 100644 --- a/net/mac80211/wep.h +++ b/net/mac80211/wep.h | |||
@@ -18,7 +18,7 @@ | |||
18 | 18 | ||
19 | int ieee80211_wep_init(struct ieee80211_local *local); | 19 | int ieee80211_wep_init(struct ieee80211_local *local); |
20 | void ieee80211_wep_free(struct ieee80211_local *local); | 20 | void ieee80211_wep_free(struct ieee80211_local *local); |
21 | void ieee80211_wep_encrypt_data(struct crypto_blkcipher *tfm, u8 *rc4key, | 21 | int ieee80211_wep_encrypt_data(struct crypto_blkcipher *tfm, u8 *rc4key, |
22 | size_t klen, u8 *data, size_t data_len); | 22 | size_t klen, u8 *data, size_t data_len); |
23 | int ieee80211_wep_encrypt(struct ieee80211_local *local, | 23 | int ieee80211_wep_encrypt(struct ieee80211_local *local, |
24 | struct sk_buff *skb, | 24 | struct sk_buff *skb, |
diff --git a/net/mac80211/wpa.c b/net/mac80211/wpa.c index a14e67707476..8d59d27d887e 100644 --- a/net/mac80211/wpa.c +++ b/net/mac80211/wpa.c | |||
@@ -183,9 +183,8 @@ static int tkip_encrypt_skb(struct ieee80211_tx_data *tx, struct sk_buff *skb) | |||
183 | skb_put(skb, TKIP_ICV_LEN); | 183 | skb_put(skb, TKIP_ICV_LEN); |
184 | 184 | ||
185 | hdr = (struct ieee80211_hdr *) skb->data; | 185 | hdr = (struct ieee80211_hdr *) skb->data; |
186 | ieee80211_tkip_encrypt_data(tx->local->wep_tx_tfm, | 186 | return ieee80211_tkip_encrypt_data(tx->local->wep_tx_tfm, |
187 | key, pos, len, hdr->addr2); | 187 | key, pos, len, hdr->addr2); |
188 | return 0; | ||
189 | } | 188 | } |
190 | 189 | ||
191 | 190 | ||
diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c index 9f95354f859f..e74a1a2119d3 100644 --- a/net/wireless/mlme.c +++ b/net/wireless/mlme.c | |||
@@ -44,10 +44,10 @@ void cfg80211_send_rx_auth(struct net_device *dev, const u8 *buf, size_t len) | |||
44 | } | 44 | } |
45 | } | 45 | } |
46 | 46 | ||
47 | WARN_ON(!done); | 47 | if (done) { |
48 | 48 | nl80211_send_rx_auth(rdev, dev, buf, len, GFP_KERNEL); | |
49 | nl80211_send_rx_auth(rdev, dev, buf, len, GFP_KERNEL); | 49 | cfg80211_sme_rx_auth(dev, buf, len); |
50 | cfg80211_sme_rx_auth(dev, buf, len); | 50 | } |
51 | 51 | ||
52 | wdev_unlock(wdev); | 52 | wdev_unlock(wdev); |
53 | } | 53 | } |
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 85285b43d374..fbfac588297c 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c | |||
@@ -877,7 +877,7 @@ static int nl80211_set_wiphy(struct sk_buff *skb, struct genl_info *info) | |||
877 | int idx, mbm = 0; | 877 | int idx, mbm = 0; |
878 | 878 | ||
879 | if (!rdev->ops->set_tx_power) { | 879 | if (!rdev->ops->set_tx_power) { |
880 | return -EOPNOTSUPP; | 880 | result = -EOPNOTSUPP; |
881 | goto bad_res; | 881 | goto bad_res; |
882 | } | 882 | } |
883 | 883 | ||