1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
|
/*
* Headler file defines some configure options and basic types
*
* $Id: 8192cd_cfg.h,v 1.59.2.26 2011/01/10 07:49:07 jerryko Exp $
*
* Copyright (c) 2009 Realtek Semiconductor Corp.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef _8192CD_CFG_H_
#define _8192CD_CFG_H_
//#define _LITTLE_ENDIAN_
//#define _BIG_ENDIAN_
#ifdef __MIPSEB__
#ifndef _BIG_ENDIAN_
#define _BIG_ENDIAN_
#endif
#ifdef _LITTLE_ENDIAN_
#undef _LITTLE_ENDIAN_
#endif
//### add by sen_liu 2011.4.14 CONFIG_NET_PCI defined in V2.4 and CONFIG_PCI
// define now to replace it. However,some modules still use CONFIG_NET_PCI
#ifdef CONFIG_PCI
#define CONFIG_NET_PCI
#endif
//### end
#endif //__MIPSEB__
#ifdef __KERNEL__
#include <linux/version.h>
#if LINUX_VERSION_CODE >= 0x020615 // linux 2.6.21
#define LINUX_2_6_21_
#endif
#if LINUX_VERSION_CODE >= 0x020616 // linux 2.6.22
#define LINUX_2_6_22_
#endif
#if LINUX_VERSION_CODE >= 0x020618 // linux 2.6.24
#define LINUX_2_6_24_
#endif
#if LINUX_VERSION_CODE >= 0x02061B // linux 2.6.27
#define LINUX_2_6_27_
#endif
#if LINUX_VERSION_CODE > 0x020600
#define __LINUX_2_6__
#endif
#ifdef LINUX_2_6_22_
#include <linux/autoconf.h>
#include <linux/jiffies.h>
#include <asm/param.h>
#else
#include <linux/config.h>
#endif
#endif // __KERNEL__
#ifdef __ECOS
#include <pkgconf/system.h>
#include <pkgconf/devs_eth_rltk_819x_wrapper.h>
#define CONFIG_RTL_819X
#define CONFIG_RTL8196C
#ifndef RTLPKG_DEVS_ETH_RLTK_819X_RX_ZERO_COPY
#define CONFIG_RTL8190_PRIV_SKB
#endif
#endif
/*
* Following Definition Sync 2.4/2.6 SDK Definitions
*/
#if !defined(__LINUX_2_6__)
#if defined(CONFIG_RTL8196B) || defined(CONFIG_RTL8196C) || defined(CONFIG_RTL8198)
#define CONFIG_RTL_819X
#endif
#if defined(CONFIG_RTL8198)
#define CONFIG_RTL_8198
#endif
#if defined(CONFIG_RTL8196C)
#define CONFIG_RTL_8196C
#endif
#define BSP_PCIE0_D_CFG0 PCIE0_D_CFG0
#define BSP_PCIE1_D_CFG0 PCIE0_D_CFG0
#define BSP_PCIE0_H_CFG PCIE0_H_CFG
#define BSP_PCIE0_H_EXT PCIE0_RC_EXT_BASE
#define BSP_PCIE0_H_MDIO (BSP_PCIE0_H_EXT + 0x00)
#define BSP_PCIE0_H_INTSTR (BSP_PCIE0_H_EXT + 0x04)
#define BSP_PCIE0_H_PWRCR (BSP_PCIE0_H_EXT + 0x08)
#define BSP_PCIE0_H_IPCFG (BSP_PCIE0_H_EXT + 0x0C)
#define BSP_PCIE0_H_MISC (BSP_PCIE0_H_EXT + 0x10)
#define BSP_PCIE1_H_CFG PCIE1_H_CFG
#define BSP_PCIE1_H_EXT PCIE1_RC_EXT_BASE
#define BSP_PCIE1_H_MDIO (BSP_PCIE1_H_EXT + 0x00)
#define BSP_PCIE1_H_INTSTR (BSP_PCIE1_H_EXT + 0x04)
#define BSP_PCIE1_H_PWRCR (BSP_PCIE1_H_EXT + 0x08)
#define BSP_PCIE1_H_IPCFG (BSP_PCIE1_H_EXT + 0x0C)
#define BSP_PCIE1_H_MISC (BSP_PCIE1_H_EXT + 0x10)
#endif // !defined(__LINUX_2_6__)
#ifndef CONFIG_RTL_8198_AP_ROOT
#define CONFIG_RTL_CUSTOM_PASSTHRU
#endif
#define CONFIG_RTL_CUSTOM_PASSTHRU
#if defined(CONFIG_RTL_CUSTOM_PASSTHRU)
#define CONFIG_RTL_CUSTOM_PASSTHRU_PPPOE
#define IP6_PASSTHRU_MASK 0x1
#if defined(CONFIG_RTL_CUSTOM_PASSTHRU_PPPOE)
#define PPPOE_PASSTHRU_MASK 0x1<<1
#endif
#if defined(CONFIG_RTL_92D_SUPPORT)
#define WISP_WLAN_IDX_MASK 0xF0
#define WISP_WLAN_IDX_RIGHT_SHIFT 4
#endif
#endif /* CONFIG_RTL_CUSTOM_PASSTHRU */
#if (defined(CONFIG_RTL_92C_SUPPORT)&&defined(CONFIG_RTL_92D_SUPPORT))||defined(CONFIG_RTL_92D_DMDP)||defined(CONFIG_RTL_DUAL_PCIESLOT_BIWLAN)
#define CONCURRENT_MODE
#ifdef CONFIG_RTL_92D_SMART_CONCURRENT
#define SMART_CONCURRENT_92D
#endif
#if defined(CONFIG_RTL_92D_DMDP) && !defined(CONFIG_RTL_DUAL_PCIESLOT_BIWLAN) && !defined(CONFIG_RTL_92C_SUPPORT) && !defined(CONFIG_RTL_DUAL_PCIESLOT_BIWLAN_D)
#define DUALBAND_ONLY
#endif
#endif
#if defined(CONFIG_RTL_92D_SUPPORT) && defined(CONFIG_RTL_8198)
/* Currenlty 98 support 92D should use pcie slot 1 */
#if defined(CONFIG_RTK_VOIP_BOARD)
#define RTL_USED_PCIE_SLOT 0
#else
#define RTL_USED_PCIE_SLOT 1
#endif /* CONFIG_RTK_VOIP_BOARD */
#else
#define RTL_USED_PCIE_SLOT 0
#endif
#if defined(CONFIG_RTL_8198)
#if defined(CONFIG_RTK_VOIP_BOARD)
#define RTL_MAX_PCIE_SLOT_NUM 1
#else
#define RTL_MAX_PCIE_SLOT_NUM 2
#endif /*CONFIG_RTK_VOIP_BOARD*/
#if defined(CONFIG_RTL_92D_SUPPORT)
#if defined(CONFIG_RTK_VOIP_BOARD)
#define RTL_USED_PCIE_SLOT 0
#else
#define RTL_USED_PCIE_SLOT 1
#endif /*ONFIG_RTK_VOIP_BOARD*/
#else /* defined(CONFIG_RTL_92D_SUPPORT) */
#define RTL_USED_PCIE_SLOT 0
#endif /* defined(CONFIG_RTL_92D_SUPPORT) */
#else /* defined(CONFIG_RTL_8198) */
#define RTL_MAX_PCIE_SLOT_NUM 1
#define RTL_USED_PCIE_SLOT 0
#endif /* defined(CONFIG_RTL_8198) */
#ifdef CONFIG_RTK_MESH
#include "mesh_ext/mesh_cfg.h"
#endif
#if defined(CONFIG_RTL8196B) || defined(CONFIG_RTL_819X)
#if defined(CONFIG_RTL8196B_AP_ROOT) || defined(CONFIG_RTL8196B_TR) || defined(CONFIG_RTL8196B_GW) || defined(CONFIG_RTL_8196C_GW) || defined(CONFIG_RTL_8198_GW) || defined(CONFIG_RTL8196B_KLD) || defined(CONFIG_RTL8196B_TLD) || defined(CONFIG_RTL8196C_AP_ROOT) || defined(CONFIG_RTL8196C_AP_HCM) || defined(CONFIG_RTL8198_AP_ROOT) || defined(CONFIG_RTL_8198_AP_ROOT) || defined(CONFIG_RTL8196C_CLIENT_ONLY) || defined(CONFIG_RTL_8198_NFBI_BOARD) || defined(CONFIG_RTL8196C_KLD) || defined(CONFIG_RTL8196C_EC) || defined(CONFIG_RTL_8196C_iNIC) || defined(CONFIG_RTL_8198_INBAND_AP)
#define USE_RTL8186_SDK
#endif
#endif
#if defined(_BIG_ENDIAN_) || defined(_LITTLE_ENDIAN_)
#elif defined(_BIG_ENDIAN_) && defined(_LITTLE_ENDIAN_)
#error "One one ENDIAN should be specified\n"
#else
#error "Please specify your ENDIAN type!\n"
#endif
#define PCI_CONFIG_COMMAND (wdev->conf_addr+4)
#define PCI_CONFIG_LATENCY (wdev->conf_addr+0x0c)
#define PCI_CONFIG_BASE0 (wdev->conf_addr+0x10)
#define PCI_CONFIG_BASE1 (wdev->conf_addr+0x18)
#define MAX_NUM(_x_, _y_) (((_x_)>(_y_))? (_x_) : (_y_))
#define MIN_NUM(_x_, _y_) (((_x_)<(_y_))? (_x_) : (_y_))
//-------------------------------------------------------------
// Driver version information
//-------------------------------------------------------------
#define DRV_VERSION_H 1
#define DRV_VERSION_L 6
#define DRV_RELDATE "2011-07-18"
#ifdef LINUX_2_6_22_
#define DRV_NAME "RTL8192C/RTL8188C"
#else
#define DRV_NAME "RTL8192C-RTL8188C"
#endif
//-------------------------------------------------------------
// Will check type for endian issue when access IO and memory
//-------------------------------------------------------------
#define CHECK_SWAP
//-------------------------------------------------------------
// Defined when include proc file system
//-------------------------------------------------------------
#define INCLUDE_PROC_FS
#if defined(CONFIG_PROC_FS) && defined(INCLUDE_PROC_FS)
#define _INCLUDE_PROC_FS_
#endif
//-------------------------------------------------------------
// Debug function
//-------------------------------------------------------------
//#define _DEBUG_RTL8192CD_ // defined when debug print is used
#define _IOCTL_DEBUG_CMD_ // defined when read/write register/memory command is used in ioctl
//-------------------------------------------------------------
// Defined when internal DRAM is used for sw encryption/decryption
//-------------------------------------------------------------
#ifdef __MIPSEB__
// disable internal ram for nat speedup
//#define _USE_DRAM_
#endif
//-------------------------------------------------------------
// Support 8188C/8192C test chip
//-------------------------------------------------------------
#if !defined(CONFIG_RTL8196B_GW_8M) //&&!defined(CONFIG_RTL_92D_SUPPORT)
#define TESTCHIP_SUPPORT
#endif
//-------------------------------------------------------------
// Support software tx queue
// ------------------------------------------------------------
#define SW_TX_QUEUE
#if defined(CONFIG_RTL_8198)
#define MAX_AGGR_NUM 16
#else
#define MAX_AGGR_NUM 8
#endif
#define MIN_AGGR_NUM 8
//-------------------------------------------------------------
// Support Tx Report
//-------------------------------------------------------------
//#ifndef CONFIG_RTL_92D_SUPPORT
#define TXREPORT
#ifdef TXREPORT
#define DETECT_STA_EXISTANCE
#endif
//#endif
//#define LEAVESTADETECT
//-------------------------------------------------------------
// PCIe power saving function
//-------------------------------------------------------------
#ifdef CONFIG_PCIE_POWER_SAVING
#if !defined(CONFIG_NET_PCI) && !defined(CONFIG_RTL_8196CS)
#define PCIE_POWER_SAVING
#endif
#if defined(CONFIG_RTL_92D_SUPPORT) && defined(CONFIG_RTL_92C_SUPPORT)
#undef PCIE_POWER_SAVING
#endif
#if defined(CONFIG_RTL_92D_SUPPORT) && defined(CONFIG_RTL_8198)
#undef PCIE_POWER_SAVING
#endif
#endif
#ifdef _SINUX_
#define PCIE_POWER_SAVING
#endif
#ifdef PCIE_POWER_SAVING
#define GPIO_WAKEPIN
#define FIB_96C
// #define PCIE_POWER_SAVING_DEBUG
// #define ASPM_ENABLE
#ifdef PCIE_POWER_SAVING_DEBUG
#define PCIE_L2_ENABLE
#endif
#define CONFIG_SLOT0H 0xb8b00000
#define CONFIG_SLOT0S 0xb8b10000
#define CONFIG_SLOT1H 0xb8b20000
#define CONFIG_SLOT1S 0xb8b30000
#if defined(CONFIG_RTL_8198)
#define CFG_92C_SLOTH CONFIG_SLOT0H
#define CFG_92C_SLOTS CONFIG_SLOT0S
#if (RTL_USED_PCIE_SLOT==1)
#define CFG_92D_SLOTH CONFIG_SLOT1H
#define CFG_92D_SLOTS CONFIG_SLOT1S
#else
#define CFG_92D_SLOTH CONFIG_SLOT0H
#define CFG_92D_SLOTS CONFIG_SLOT0S
#endif
#elif defined(CONFIG_RTL_8196C)
#define CFG_92C_SLOTH CONFIG_SLOT0H
#define CFG_92C_SLOTS CONFIG_SLOT0S
#define CFG_92D_SLOTH CONFIG_SLOT0H
#define CFG_92D_SLOTS CONFIG_SLOT0S
#endif
#endif
//-------------------------------------------------------------
// WDS function support
//-------------------------------------------------------------
#if defined(CONFIG_RTL_WDS_SUPPORT)
#define WDS
// #define LAZY_WDS
#endif
//-------------------------------------------------------------
// Pass EAP packet by event queue
//-------------------------------------------------------------
#define EAP_BY_QUEUE
#undef EAPOLSTART_BY_QUEUE // jimmylin: don't pass eapol-start up
// due to XP compatibility issue
//#define USE_CHAR_DEV
#define USE_PID_NOTIFY
//-------------------------------------------------------------
// WPA Supplicant
//-------------------------------------------------------------
//#define WIFI_WPAS
#ifdef WIFI_WPAS
#ifndef WIFI_HAPD
#define WIFI_HAPD
#endif
#ifndef CLIENT_MODE
#define CLIENT_MODE
#endif
#endif
//-------------------------------------------------------------
// Client mode function support
//-------------------------------------------------------------
#if defined(CONFIG_RTL_CLIENT_MODE_SUPPORT)
#define CLIENT_MODE
#endif
#ifdef CLIENT_MODE
#define RTK_BR_EXT // Enable NAT2.5 and MAC clone support
#define CL_IPV6_PASS // Enable IPV6 pass-through. RTK_BR_EXT must be defined
#endif
//-------------------------------------------------------------
// Defined when WPA2 is used
//-------------------------------------------------------------
#define RTL_WPA2
#define RTL_WPA2_PREAUTH
//-------------------------------------------------------------
// MP test
//-------------------------------------------------------------
#if !defined(CONFIG_RTL8196B_GW_8M) || defined(CONFIG_RTL8196B_GW_MP)
#define MP_TEST
#ifdef CONFIG_RTL_92D_SUPPORT
//#define TEMP_MP_92D
#endif
#endif
//-------------------------------------------------------------
// MIC error test
//-------------------------------------------------------------
//#define MICERR_TEST
//-------------------------------------------------------------
// Log event
//-------------------------------------------------------------
#define EVENT_LOG
//-------------------------------------------------------------
// Tx/Rx data path shortcut
//-------------------------------------------------------------
#define TX_SHORTCUT
#define RX_SHORTCUT
#if defined(CONFIG_RTK_MESH) && defined(RX_SHORTCUT)
#define RX_RL_SHORTCUT
#endif
#define BR_SHORTCUT
#if defined(CONFIG_RTK_MESH) && defined(TX_SHORTCUT)
#define MESH_TX_SHORTCUT
#endif
#define TX_SC_ENTRY_NUM 1
//-------------------------------------------------------------
// back to back test
//-------------------------------------------------------------
//#define B2B_TEST
//-------------------------------------------------------------
// enable e-fuse read write
//-------------------------------------------------------------
#ifdef CONFIG_ENABLE_EFUSE
#define EN_EFUSE
#endif
//-------------------------------------------------------------
// new Auto channel
//-------------------------------------------------------------
#define CONFIG_RTL_NEW_AUTOCH
//-------------------------------------------------------------
// new IQ calibration for 92c / 88c
//-------------------------------------------------------------
#define CONFIG_RTL_NEW_IQK
//-------------------------------------------------------------
// noise control
//-------------------------------------------------------------
#ifdef CONFIG_RTL_92C_SUPPORT
//#define CONFIG_RTL_NOISE_CONTROL_92C
#endif
//-------------------------------------------------------------
// Universal Repeater (support AP + Infra client concurrently)
//-------------------------------------------------------------
#if defined(CONFIG_RTL_REPEATER_MODE_SUPPORT)
#define UNIVERSAL_REPEATER
#endif
//-------------------------------------------------------------
// Check hangup for Tx queue
//-------------------------------------------------------------
#define CHECK_HANGUP
#ifdef CHECK_HANGUP
#define CHECK_TX_HANGUP
#define FAST_RECOVERY
#endif
//-------------------------------------------------------------
// DFS
//-------------------------------------------------------------
#ifdef CONFIG_RTL_DFS_SUPPORT
#define DFS
#endif
//-------------------------------------------------------------
// Driver based WPA PSK feature
//-------------------------------------------------------------
#define INCLUDE_WPA_PSK
//-------------------------------------------------------------
// RF Fine Tune
//-------------------------------------------------------------
//#define RF_FINETUNE
//-------------------------------------------------------------
// Wifi WMM
//-------------------------------------------------------------
#define WIFI_WMM
#ifdef WIFI_WMM
#define WMM_APSD // WMM Power Save
#define RTL_MANUAL_EDCA // manual EDCA parameter setting
#endif
//-------------------------------------------------------------
// Hostapd
//-------------------------------------------------------------
//#ifdef CONFIG_RTL_HOSTAPD_SUPPORT
//#define WIFI_HAPD
//#endif
#ifdef WIFI_HAPD
//#define HAPD_DRV_PSK_WPS
#ifndef CONFIG_RTL_COMAPI_WLTOOLS
#define CONFIG_RTL_COMAPI_WLTOOLS
#endif
#ifndef HAPD_DRV_PSK_WPS
#undef EAP_BY_QUEUE
#undef INCLUDE_WPA_PSK
#endif
#endif
//-------------------------------------------------------------
// IO mapping access
//-------------------------------------------------------------
//#define IO_MAPPING
//-------------------------------------------------------------
// Wifi Simple Config support
//-------------------------------------------------------------
#define WIFI_SIMPLE_CONFIG
/* WPS2DOTX */
#define WPS2DOTX
#define OUI_LEN 4
#ifdef WPS2DOTX
#define SUPPORT_PROBE_REQ_REASSEM //for AP mode
#define SUPPORT_PROBE_RSP_REASSEM // for STA mode
#define WPS2DOTX_DEBUG
#endif
#ifdef WPS2DOTX_DEBUG //0614 for wps2.0 trace
#define SECU_DEBUG(fmt, args...) printk("[secu]%s %d:"fmt, __FUNCTION__,__LINE__, ## args)
#define SME_DEBUG(fmt, args...) printk("[sme]%s %d:"fmt,__FUNCTION__ , __LINE__ , ## args)
#else
#define SECU_DEBUG(fmt, args...)
#define SME_DEBUG(fmt, args...)
#endif
/* WPS2DOTX */
//-------------------------------------------------------------
// Support Multiple BSSID
//-------------------------------------------------------------
#if defined(CONFIG_RTL_VAP_SUPPORT)
#define MBSSID
#endif
#ifdef MBSSID
#define RTL8192CD_NUM_VWLAN 4
//#define FW_SW_BEACON
#else
#ifdef CONFIG_RTL8671
#define RTL8192CD_NUM_VWLAN 0
#endif
#endif
//-------------------------------------------------------------
// Support Tx Descriptor Reservation for each interface
//-------------------------------------------------------------
#ifdef CONFIG_RTL_TX_RESERVE_DESC
#if defined(UNIVERSAL_REPEATER) || defined(MBSSID)
//#define RESERVE_TXDESC_FOR_EACH_IF
#endif
#endif
//-------------------------------------------------------------
// Group BandWidth Control
//-------------------------------------------------------------
//#define GBWC
//-------------------------------------------------------------
// Support 802.11 SNMP MIB
//-------------------------------------------------------------
//#define SUPPORT_SNMP_MIB
//-------------------------------------------------------------
// Driver-MAC loopback
//-------------------------------------------------------------
//#define DRVMAC_LB
//-------------------------------------------------------------
// Use perfomance profiling
//-------------------------------------------------------------
//#define PERF_DUMP
//-------------------------------------------------------------
// 1x1 Antenna Diversity
//-------------------------------------------------------------
#ifdef CONFIG_ANT_SWITCH
//#define SW_ANT_SWITCH
#define HW_ANT_SWITCH
#endif
//-------------------------------------------------------------
// WPAI performance issue
//-------------------------------------------------------------
#ifdef CONFIG_RTL_WAPI_SUPPORT
//#define IRAM_FOR_WIRELESS_AND_WAPI_PERFORMANCE
#if defined(CONFIG_RTL8192CD)
// if CONFIG_RTL_HW_WAPI_SUPPORT defined, { SWCRYPTO=1: sw wapi; SWCRYPTO=0: hw wapi. }
// if CONFIG_RTL_HW_WAPI_SUPPORT not defined, { SWCRYPTO=1: sw wapi; SWCRYPTO=0: should not be used! }
#define CONFIG_RTL_HW_WAPI_SUPPORT 1
#endif
#endif
//-------------------------------------------------------------
// Use local ring for pre-alloc Rx buffer.
// If no defined, will use kernel skb que
//-------------------------------------------------------------
#define RTK_QUE
//-------------------------------------------------------------
//Support IP multicast->unicast
//-------------------------------------------------------------
#define SUPPORT_TX_MCAST2UNI
//#define MCAST2UI_REFINE
#ifdef CLIENT_MODE
#define SUPPORT_RX_UNI2MCAST
#endif
/* for cameo feature*/
#ifdef CONFIG_RTL865X_CMO
#define IGMP_FILTER_CMO
#endif
// Support IPV6 multicast->unicast
#ifdef SUPPORT_TX_MCAST2UNI
#define TX_SUPPORT_IPV6_MCAST2UNI
#endif
//-------------------------------------------------------------
// Support USB tx rate adaptive
//-------------------------------------------------------------
// define it always for object code release
#ifdef CONFIG_USB
#define USB_PKT_RATE_CTRL_SUPPORT
#endif
//-------------------------------------------------------------
// Support Tx AMSDU
//-------------------------------------------------------------
//#define SUPPORT_TX_AMSDU
//-------------------------------------------------------------
// Mesh Network
//-------------------------------------------------------------
#ifdef CONFIG_RTK_MESH
#define _MESH_ACL_ENABLE_
/*need check Tx AMSDU dependency ; 8196B no support now */
#ifdef SUPPORT_TX_AMSDU
#define MESH_AMSDU
#endif
//#define MESH_ESTABLISH_RSSI_THRESHOLD
//#define MESH_BOOTSEQ_AUTH
#endif // CONFIG_RTK_MESH
//-------------------------------------------------------------
// Realtek proprietary wake up on wlan mode
//-------------------------------------------------------------
//#define RTK_WOW
//-------------------------------------------------------------
// Support 802.11d
//-------------------------------------------------------------
//#define DOT11D
//-------------------------------------------------------------
// Use static buffer for STA private buffer
//-------------------------------------------------------------
#if !defined(CONFIG_RTL8196B_GW_8M) && !defined(CONFIG_WIRELESS_LAN_MODULE)
#define PRIV_STA_BUF
#endif
//-------------------------------------------------------------
// Do not drop packet immediately when rx buffer empty
//-------------------------------------------------------------
#ifdef CONFIG_RTL8190_PRIV_SKB
#define DELAY_REFILL_RX_BUF
#endif
//-------------------------------------------------------------
// WiFi 11n 20/40 coexistence
//-------------------------------------------------------------
#define WIFI_11N_2040_COEXIST
//-------------------------------------------------------------
// Add TX power by command
//-------------------------------------------------------------
#define ADD_TX_POWER_BY_CMD
//-------------------------------------------------------------
// Merge firmware and phy parameter files into binary
//-------------------------------------------------------------
#define MERGE_FW
//-------------------------------------------------------------
// Do Rx process in tasklet
//-------------------------------------------------------------
//#define RX_TASKLET
//-------------------------------------------------------------
// Support external high power PA
//-------------------------------------------------------------
#ifdef CONFIG_HIGH_POWER_EXT_PA
#define HIGH_POWER_EXT_PA
#endif
//-------------------------------------------------------------
// Cache station info for bridge
//-------------------------------------------------------------
//#define RTL_CACHED_BR_STA
//-------------------------------------------------------------
// Use default keys of WEP (instead of keymapping keys)
//-------------------------------------------------------------
//#define USE_WEP_DEFAULT_KEY
//-------------------------------------------------------------
// Concurrent support up to 64 clients
//-------------------------------------------------------------
//#define STA_EXT
//-------------------------------------------------------------
// Auto test support
//-------------------------------------------------------------
#ifndef CONFIG_RTL_92D_SUPPORT
#define AUTO_TEST_SUPPORT
#endif
//-------------------------------------------------------------
// to prevent broadcast storm attacks
//-------------------------------------------------------------
#define PREVENT_BROADCAST_STORM 1
#ifdef PREVENT_BROADCAST_STORM
/*
* NOTE: The driver will skip the other broadcast packets if the system free memory is less than FREE_MEM_LOWER_BOUND
* and the broadcast packet amount is larger than BROADCAST_STORM_THRESHOLD in one second period.
*/
#define BROADCAST_STORM_THRESHOLD 8
#define FREE_MEM_LOWER_BOUND 800 //uint: KBytes
#endif
//-------------------------------------------------------------
// Video streaming refine
//-------------------------------------------------------------
#ifdef CONFIG_RTK_VLC_SPEEDUP_SUPPORT
#define VIDEO_STREAMING_REFINE
#endif
//-------------------------------------------------------------
// Rx buffer gather feature
//-------------------------------------------------------------
#define RX_BUFFER_GATHER
//-------------------------------------------------------------
// A4 client support
//-------------------------------------------------------------
//#define A4_STA
#if defined(A4_STA) && defined(WDS)
#error "A4_STA and WDS can't be used together\n"
#endif
//-------------------------------------------------------------
// Avoid deadlock for SMP(Symmetrical Multi-Processing) architecture
//-------------------------------------------------------------
//#define SMP_SYNC
//-------------------------------------------------------------
// NOT use Realtek specified BSP
//-------------------------------------------------------------
//#define NOT_RTK_BSP
//-------------------------------------------------------------
// No padding between members in the structure for specified CPU
//-------------------------------------------------------------
//#define PACK_STRUCTURE
/*********************************************************************/
/* some definitions in 8192cd driver, we set them as NULL definition */
/*********************************************************************/
#ifdef USE_RTL8186_SDK
#ifdef CONFIG_WIRELESS_LAN_MODULE
#define __DRAM_IN_865X
#define __IRAM_IN_865X
#else
#define __DRAM_IN_865X __attribute__ ((section(".dram-rtkwlan")))
#define __IRAM_IN_865X __attribute__ ((section(".iram-rtkwlan")))
#endif
#define RTL8190_DIRECT_RX /* For packet RX : directly receive the packet instead of queuing it */
#define RTL8190_ISR_RX /* process RXed packet in interrupt service routine: It become useful only when RTL8190_DIRECT_RX is defined */
#ifndef CONFIG_WIRELESS_LAN_MODULE
#ifndef CONCURRENT_MODE
#define RTL8192CD_VARIABLE_USED_DMEM /* Use DMEM for some critical variables */
#endif
#endif
#else // not USE_RTL8186_SDK
#define __DRAM_IN_865X
#define __IRAM_IN_865X
#endif
#undef __MIPS16
#if defined(CONFIG_WIRELESS_LAN_MODULE)
#define __MIPS16
#else
#define __MIPS16 __attribute__ ((mips16))
#endif
#ifdef IRAM_FOR_WIRELESS_AND_WAPI_PERFORMANCE
#define __IRAM_WLAN_HI __attribute__ ((section(".iram-wapi")))
#define __DRAM_WLAN_HI __attribute__ ((section(".dram-wapi")))
#endif
//-------------------------------------------------------------
// Kernel 2.6 specific config
//-------------------------------------------------------------
#ifdef __LINUX_2_6__
#define USE_RLX_BSP
#ifndef CONCURRENT_MODE
#define RTL8192CD_VARIABLE_USED_DMEM
#endif
#ifndef RX_TASKLET
#define RX_TASKLET
#endif
#endif
#if 0
//-------------------------------------------------------------
// TR define flag
//-------------------------------------------------------------
#if defined(CONFIG_RTL8196B_TR) || defined(CONFIG_RTL8196C_EC)
#ifndef INCLUDE_WPA_PSK
#define INCLUDE_WPA_PSK
#endif
#ifdef UNIVERSAL_REPEATER
#undef UNIVERSAL_REPEATER
#endif
#ifdef CLIENT_MODE
#undef CLIENT_MODE
#undef RTK_BR_EXT
#endif
#ifndef WIFI_SIMPLE_CONFIG
#define WIFI_SIMPLE_CONFIG
#endif
#ifdef GBWC
#undef GBWC
#endif
#ifdef SUPPORT_SNMP_MIB
#undef SUPPORT_SNMP_MIB
#endif
#endif // CONFIG_RTL8196B_TR
//-------------------------------------------------------------
// AC define flag
//-------------------------------------------------------------
#ifdef CONFIG_RTL865X_AC
#ifndef INCLUDE_WPA_PSK
#define INCLUDE_WPA_PSK
#endif
#ifdef UNIVERSAL_REPEATER
#undef UNIVERSAL_REPEATER
#endif
#ifdef CLIENT_MODE
#undef CLIENT_MODE
#undef RTK_BR_EXT
#endif
#ifndef WIFI_SIMPLE_CONFIG
#define WIFI_SIMPLE_CONFIG
#endif
#ifdef GBWC
#undef GBWC
#endif
#ifdef SUPPORT_SNMP_MIB
#undef SUPPORT_SNMP_MIB
#endif
#endif // CONFIG_RTL865X_AC
#endif //#if 0
//-------------------------------------------------------------
// Config Little Endian CPU
//-------------------------------------------------------------
#ifdef _LITTLE_ENDIAN_
#ifndef NOT_RTK_BSP
#define NOT_RTK_BSP
#endif
#ifndef CONFIG_WIRELESS_LAN_MODULE
#define CONFIG_WIRELESS_LAN_MODULE
#endif
#ifdef __MIPSEB__
#undef __MIPSEB__
#endif
#ifdef _BIG_ENDIAN_
#undef _BIG_ENDIAN_
#endif
#endif //_LITTLE_ENDIAN_
//-------------------------------------------------------------
// Config if NOT use Realtek specified BSP
//-------------------------------------------------------------
#ifdef NOT_RTK_BSP
#ifndef CONFIG_NET_PCI
#define CONFIG_NET_PCI
#endif
#ifndef __LINUX_2_6__
#define del_timer_sync del_timer
#endif
#if LINUX_VERSION_CODE >= 0x02061D // linux 2.6.29
#define NETDEV_NO_PRIV
#endif
#ifndef LINUX_2_6_22_
#define CONFIG_COMPAT_NET_DEV_OPS
#endif
#ifdef CONFIG_RTL_CUSTOM_PASSTHRU
#undef CONFIG_RTL_CUSTOM_PASSTHRU
#endif
#ifdef CONFIG_RTL_CUSTOM_PASSTHRU_PPPOE
#undef CONFIG_RTL_CUSTOM_PASSTHRU_PPPOE
#endif
#ifdef _USE_DRAM_
#undef _USE_DRAM_
#endif
#ifdef CHECK_SWAP
#undef CHECK_SWAP
#endif
#ifdef EVENT_LOG
#undef EVENT_LOG
#endif
#ifdef BR_SHORTCUT
#undef BR_SHORTCUT
#endif
#ifdef RTK_BR_EXT
#undef RTK_BR_EXT
#endif
#ifdef UNIVERSAL_REPEATER
#undef UNIVERSAL_REPEATER
#endif
#ifdef GBWC
#undef GBWC
#endif
#ifdef USE_IO_OPS
#undef USE_IO_OPS
#endif
#ifdef IO_MAPPING
#undef IO_MAPPING
#endif
#ifdef RTK_QUE
#undef RTK_QUE
#endif
#ifdef USE_RLX_BSP
#undef USE_RLX_BSP
#endif
#ifdef RX_BUFFER_GATHER
#undef RX_BUFFER_GATHER
#endif
#endif //NOT_RTK_BSP
//-------------------------------------------------------------
// Define flag of EC system
//-------------------------------------------------------------
#ifdef CONFIG_RTL8196C_EC
#ifndef USE_WEP_DEFAULT_KEY
#define USE_WEP_DEFAULT_KEY
#endif
#ifdef TESTCHIP_SUPPORT
#undef TESTCHIP_SUPPORT
#endif
#endif
//-------------------------------------------------------------
// MSC define flag
//-------------------------------------------------------------
#ifdef _SINUX_
#define CONFIG_MSC
#endif
#ifdef CONFIG_MSC
#define INCLUDE_WPS
#ifdef CHECK_HANGUP
#undef CHECK_HANGUP
#endif
#ifndef USE_WEP_DEFAULT_KEY //2010.4.23 Fred Fu open it to support wep key index 1 2 3
#define USE_WEP_DEFAULT_KEY
#endif
#ifdef WIFI_SIMPLE_CONFIG
#ifdef INCLUDE_WPS
#define USE_PORTING_OPENSSL
#endif
#endif
#endif
//-------------------------------------------------------------
// Define flag of 8672 system
//-------------------------------------------------------------
#ifdef CONFIG_RTL8672
#undef DRV_RELDATE
#define DRV_RELDATE "2009-11-18/2010-0104"
#ifndef RX_TASKLET
#define RX_TASKLET
#endif
#ifdef RTL8190_DIRECT_RX
#undef RTL8190_DIRECT_RX
#endif
#ifdef RTL8190_ISR_RX
#undef RTL8190_ISR_RX
#endif
#ifdef USE_RLX_BSP
#undef USE_RLX_BSP
#endif
#undef TX_SC_ENTRY_NUM
#define TX_SC_ENTRY_NUM 2
#ifdef __DRAM_IN_865X
#undef __DRAM_IN_865X
#endif
#define __DRAM_IN_865X __attribute__ ((section(".dram-rtkwlan")))
#ifdef __IRAM_IN_865X
#undef __IRAM_IN_865X
#endif
#define __IRAM_IN_865X __attribute__ ((section(".iram-rtkwlan")))
#ifdef __IRAM_IN_865X_HI
#undef __IRAM_IN_865X_HI
#endif
#define __IRAM_IN_865X_HI __attribute__ ((section(".iram-tx")))
#ifdef PCIE_POWER_SAVING
#undef PCIE_POWER_SAVING
#endif
#endif // CONFIG_RTL8672
//-------------------------------------------------------------
// Define flag of rtl8192d features
//-------------------------------------------------------------
#ifdef CONFIG_RTL_92D_SUPPORT
#define SW_LCK_92D
#ifdef CONFIG_TXPWR_LMT
#define TXPWR_LMT
#endif
#define RX_GAIN_TRACK_92D
//#define CONFIG_RTL_NOISE_CONTROL
#ifdef CONFIG_RTL_92D_DMDP
//#define NON_INTR_ANTDIV
#endif
//#ifdef CONFIG_RTL_92D_INT_PA
#define RTL8192D_INT_PA
//#endif
#endif
#if 0
//-------------------------------------------------------------
// TLD define flag
//-------------------------------------------------------------
#ifdef CONFIG_RTL8196B_TLD
#ifndef STA_EXT
#define STA_EXT
#endif
#ifdef GBWC
#undef GBWC
#endif
#ifdef SUPPORT_SNMP_MIB
#undef SUPPORT_SNMP_MIB
#endif
#ifdef DRVMAC_LB
#undef DRVMAC_LB
#endif
#ifdef HIGH_POWER_EXT_PA
#undef HIGH_POWER_EXT_PA
#endif
#ifdef ADD_TX_POWER_BY_CMD
#undef ADD_TX_POWER_BY_CMD
#endif
#endif // CONFIG_RTL8196B_TLD
#endif
//-------------------------------------------------------------
// KLD define flag
//-------------------------------------------------------------
#if defined(CONFIG_RTL8196C_KLD)
#ifndef INCLUDE_WPA_PSK
#define INCLUDE_WPA_PSK
#endif
#ifdef UNIVERSAL_REPEATER
#undef UNIVERSAL_REPEATER
#endif
#ifndef WIFI_SIMPLE_CONFIG
#define WIFI_SIMPLE_CONFIG
#endif
#ifdef GBWC
#undef GBWC
#endif
#ifdef SUPPORT_SNMP_MIB
#undef SUPPORT_SNMP_MIB
#endif
#ifdef DRVMAC_LB
#undef DRVMAC_LB
#endif
#ifdef MBSSID
#undef RTL8192CD_NUM_VWLAN
#define RTL8192CD_NUM_VWLAN 1
#endif
//#ifdef HIGH_POWER_EXT_PA
// #undef HIGH_POWER_EXT_PA
//#endif
//#ifdef ADD_TX_POWER_BY_CMD
// #undef ADD_TX_POWER_BY_CMD
//#endif
#endif // CONFIG_RTL8196C_KLD
//-------------------------------------------------------------
// Dependence check of define flag
//-------------------------------------------------------------
#if defined(B2B_TEST) && !defined(MP_TEST)
#error "Define flag error, MP_TEST is not defined!\n"
#endif
#if defined(UNIVERSAL_REPEATER) && !defined(CLIENT_MODE)
#error "Define flag error, CLIENT_MODE is not defined!\n"
#endif
/*=============================================================*/
/*------ Compiler Portability Macros --------------------------*/
/*=============================================================*/
#ifdef EVENT_LOG
extern int scrlog_printk(const char * fmt, ...);
#ifdef CONFIG_RTK_MESH
/*
* NOTE: dot1180211sInfo.log_enabled content from webpage MIB_LOG_ENABLED (bitmap) (in AP/goahead-2.1.1/LINUX/fmmgmt.c formSysLog)
*/
#define _LOG_MSG(fmt, args...) if (1 & GET_MIB(priv)->dot1180211sInfo.log_enabled) scrlog_printk(fmt, ## args)
#define LOG_MESH_MSG(fmt, args...) if (16 & GET_MIB(priv)->dot1180211sInfo.log_enabled) _LOG_MSG("%s: " fmt, priv->mesh_dev->name, ## args)
#else
#define _LOG_MSG(fmt, args...) scrlog_printk(fmt, ## args)
#endif
#if defined(CONFIG_RTL8196B_TR) || defined(CONFIG_RTL8196C_EC)
#define _NOTICE "NOTICElog_num:13;msg:"
#define _DROPT "DROPlog_num:13;msg:"
#define _SYSACT "SYSACTlog_num:13;msg:"
#define LOG_MSG_NOTICE(fmt, args...) _LOG_MSG("%s" fmt, _NOTICE, ## args)
#define LOG_MSG_DROP(fmt, args...) _LOG_MSG("%s" fmt, _DROPT, ## args)
#define LOG_MSG_SYSACT(fmt, args...) _LOG_MSG("%s" fmt, _SYSACT, ## args)
#define LOG_MSG(fmt, args...) {}
#define LOG_START_MSG() { \
char tmpbuf[10]; \
LOG_MSG_NOTICE("Access Point: %s started at channel %d;\n", \
priv->pmib->dot11StationConfigEntry.dot11DesiredSSID, \
priv->pmib->dot11RFEntry.dot11channel); \
if (priv->pmib->dot11StationConfigEntry.autoRate) \
strcpy(tmpbuf, "best"); \
else \
sprintf(tmpbuf, "%d", get_rate_from_bit_value(priv->pmib->dot11StationConfigEntry.fixedTxRate)/2); \
LOG_MSG_SYSACT("AP 2.4GHz mode Ready. Channel : %d TxRate : %s SSID : %s;\n", \
priv->pmib->dot11RFEntry.dot11channel, \
tmpbuf, priv->pmib->dot11StationConfigEntry.dot11DesiredSSID); \
}
#elif defined(CONFIG_RTL865X_AC) || defined(CONFIG_RTL865X_KLD) || defined(CONFIG_RTL8196B_KLD) || defined(CONFIG_RTL8196C_KLD)
#define _NOTICE "NOTICElog_num:13;msg:"
#define _DROPT "DROPlog_num:13;msg:"
#define _SYSACT "SYSACTlog_num:13;msg:"
#define LOG_MSG_NOTICE(fmt, args...) _LOG_MSG("%s" fmt, _NOTICE, ## args)
#define LOG_MSG_DROP(fmt, args...) _LOG_MSG("%s" fmt, _DROPT, ## args)
#define LOG_MSG_SYSACT(fmt, args...) _LOG_MSG("%s" fmt, _SYSACT, ## args)
#define LOG_MSG(fmt, args...) {}
#define LOG_START_MSG() { \
char tmpbuf[10]; \
LOG_MSG_NOTICE("Access Point: %s started at channel %d;\n", \
priv->pmib->dot11StationConfigEntry.dot11DesiredSSID, \
priv->pmib->dot11RFEntry.dot11channel); \
if (priv->pmib->dot11StationConfigEntry.autoRate) \
strcpy(tmpbuf, "best"); \
else \
sprintf(tmpbuf, "%d", get_rate_from_bit_value(priv->pmib->dot11StationConfigEntry.fixedTxRate)/2); \
LOG_MSG_SYSACT("AP 2.4GHz mode Ready. Channel : %d TxRate : %s SSID : %s;\n", \
priv->pmib->dot11RFEntry.dot11channel, \
tmpbuf, priv->pmib->dot11StationConfigEntry.dot11DesiredSSID); \
}
#elif defined(CONFIG_RTL8196B_TLD)
#define LOG_MSG_DEL(fmt, args...) _LOG_MSG(fmt, ## args)
#define LOG_MSG(fmt, args...) {}
#else
#define LOG_MSG(fmt, args...) _LOG_MSG("%s: "fmt, priv->dev->name, ## args)
#endif
#else
#if defined(__GNUC__) || defined(GREEN_HILL)
#define LOG_MSG(fmt, args...) {}
#else
#define LOG_MSG
#endif
#endif // EVENT_LOG
#ifdef _USE_DRAM_
#define DRAM_START_ADDR 0x81000000 // start address of internal data ram
#endif
#ifdef __GNUC__
#define __WLAN_ATTRIB_PACK__ __attribute__ ((packed))
#define __PACK
#endif
#ifdef __arm
#define __WLAN_ATTRIB_PACK__
#define __PACK __packed
#endif
#ifdef GREEN_HILL
#define __WLAN_ATTRIB_PACK__
#define __PACK
#endif
/*=============================================================*/
/*-----------_ Driver module flags ----------------------------*/
/*=============================================================*/
#ifdef CONFIG_WIRELESS_LAN_MODULE
#define MODULE_NAME "Realtek WirelessLan Driver"
#define MODULE_VERSION "v1.00"
#define MDL_DEVINIT
#define MDL_DEVEXIT
#define MDL_INIT
#define MDL_EXIT
#define MDL_DEVINITDATA
#else
#define MDL_DEVINIT __devinit
#define MDL_DEVEXIT __devexit
#define MDL_INIT __init
#define MDL_EXIT __exit
#define MDL_DEVINITDATA __devinitdata
#endif
/*=============================================================*/
/*----------- System configuration ----------------------------*/
/*=============================================================*/
#if defined(CONFIG_RTL8196B_GW_8M)
#define NUM_TX_DESC 200
#else
#if defined(CONFIG_RTL_8198)
#if defined(CONFIG_RTL_DUAL_PCIESLOT_BIWLAN_D)
#define NUM_TX_DESC 640
#else
#define NUM_TX_DESC 512
#endif
#else
#define NUM_TX_DESC 256 // kmalloc max size issue
#endif
#endif
#if defined(CONFIG_RTL_8198)
#if defined(CONFIG_RTL_DUAL_PCIESLOT_BIWLAN_D)
#define NUM_RX_DESC 256
#else
#define NUM_RX_DESC 128
#endif
#elif defined(CONFIG_RTL_92D_SUPPORT)
#define NUM_RX_DESC 80
#elif defined(__ECOS)
#define NUM_RX_DESC 64
#undef NUM_TX_DESC
#define NUM_TX_DESC 512
#else
#ifdef RX_BUFFER_GATHER
#define NUM_RX_DESC 64
#else
#define NUM_RX_DESC 32
#endif
#endif
#ifdef DELAY_REFILL_RX_BUF
#define REFILL_THRESHOLD NUM_RX_DESC
#endif
#define FW_NUM_STAT 32
#if (defined(CONFIG_RTL8196B_KLD) || defined(CONFIG_RTL8196C_KLD)) && defined(MBSSID)
#define NUM_CMD_DESC 2
#else
#define NUM_CMD_DESC 16
#endif
#ifdef STA_EXT
#define NUM_STAT 64
#else
#define NUM_STAT 31 //32
#endif
#define MAX_GUEST_NUM NUM_STAT
#define NUM_TXPKT_QUEUE 64
#define NUM_APSD_TXPKT_QUEUE 32
#define NUM_DZ_MGT_QUEUE 16
#define PRE_ALLOCATED_HDR NUM_TX_DESC
#ifdef DRVMAC_LB
#define PRE_ALLOCATED_MMPDU 32
#define PRE_ALLOCATED_BUFSIZE (2048/4) // 600 bytes long should be enough for mgt! Declare as unsigned int
#else
#define PRE_ALLOCATED_MMPDU 64
#define PRE_ALLOCATED_BUFSIZE ((600+128)/4) // 600 bytes long should be enough for mgt! Declare as unsigned int
#endif
#define MAX_BSS_NUM 64
#define MAX_NUM_WLANIF 4
#define WLAN_MISC_MAJOR 13
#define MAX_FRAG_COUNT 10
#define NUM_MP_SKB 32
#define SUPPORT_CH_NUM 59
// unit of time out: 10 msec
#define AUTH_TO RTL_SECONDS_TO_JIFFIES(5)
#define ASSOC_TO RTL_SECONDS_TO_JIFFIES(5)
#define FRAG_TO RTL_SECONDS_TO_JIFFIES(20)
#define SS_TO RTL_MILISECONDS_TO_JIFFIES(50)
#define SS_PSSV_TO RTL_MILISECONDS_TO_JIFFIES(120) // passive scan for 120 ms
#ifdef CONFIG_RTL_NEW_AUTOCH
#define SS_AUTO_CHNL_TO RTL_MILISECONDS_TO_JIFFIES(200)
#endif
#ifdef CONFIG_RTK_MESH
//GANTOE for automatic site survey 2008/12/10
#define SS_RAND_DEFER 300
#endif
#ifdef LINUX_2_6_22_
#define EXPIRE_TO RTL_SECONDS_TO_JIFFIES(1)
#else
#define EXPIRE_TO RTL_SECONDS_TO_JIFFIES(1)
#endif
#define REAUTH_TO RTL_SECONDS_TO_JIFFIES(5)
#define REASSOC_TO RTL_SECONDS_TO_JIFFIES(5)
#define REAUTH_LIMIT 6
#define REASSOC_LIMIT 6
#define DEFAULT_OLBC_EXPIRE 60
#define GBWC_TO RTL_MILISECONDS_TO_JIFFIES(250)
#ifdef __DRAYTEK_OS__
#define SS_COUNT 2
#else
#define SS_COUNT 3
#endif
#define TUPLE_WINDOW 64
#define RC_TIMER_NUM 64
#define RC_ENTRY_NUM 128
#define AMSDU_TIMER_NUM 64
#define AMPDU_TIMER_NUM 64
#define ROAMING_DECISION_PERIOD_INFRA 5
#define ROAMING_DECISION_PERIOD_ADHOC 10
#define ROAMING_DECISION_PERIOD_ARRAY (MAX_NUM(ROAMING_DECISION_PERIOD_ADHOC,ROAMING_DECISION_PERIOD_INFRA)+1)
#define ROAMING_THRESHOLD 1 // roaming will be triggered when rx
// beacon percentage is less than the value
#define FAST_ROAMING_THRESHOLD 40
/* below is for security.h */
#define MAXDATALEN 1560
#define MAXQUEUESIZE 8 //WPS2DOTX
#define MAXRSNIELEN 128
#define E_DOT11_2LARGE -1
#define E_DOT11_QFULL -2
#define E_DOT11_QEMPTY -3
#ifdef WIFI_SIMPLE_CONFIG
#define PROBEIELEN 260
#endif
// for SW LED
#define LED_MAX_PACKET_CNT_B 400
#define LED_MAX_PACKET_CNT_AG 1200
#define LED_MAX_SCALE 100
#define LED_NOBLINK_TIME RTL_SECONDS_TO_JIFFIES(11)/10 // time more than watchdog interval
#define LED_INTERVAL_TIME RTL_MILISECONDS_TO_JIFFIES(500) // 500ms
#define LED_ON_TIME RTL_MILISECONDS_TO_JIFFIES(40) // 40ms
#define LED_ON 0
#define LED_OFF 1
#define LED_0 0
#define LED_1 1
#define LED_2 2
// for counting association number
#define INCREASE 1
#define DECREASE 0
// DFS
#define CH_AVAIL_CHK_TO RTL_SECONDS_TO_JIFFIES(62) // 62 seconds
#define CH_AVAIL_CHK_TO_CE RTL_SECONDS_TO_JIFFIES(602) // 602 seconds
#ifdef RX_BUFFER_GATHER
#ifdef __LINUX_2_6__
#define MAX_SKB_BUF 2280
#else
#define MAX_SKB_BUF 2048
#endif
#define MAX_RX_BUF_LEN (MAX_SKB_BUF -sizeof(struct skb_shared_info) - 128)
#define MIN_RX_BUF_LEN MAX_RX_BUF_LEN
#else
#define MAX_RX_BUF_LEN 8400
#define MIN_RX_BUF_LEN 4400
#endif
/* for RTL865x suspend mode */
#define TP_HIGH_WATER_MARK 50 //80 /* unit: Mbps */
#define TP_LOW_WATER_MARK 30 //40 /* unit: Mbps */
#define FW_BOOT_SIZE 400
#define FW_MAIN_SIZE 52000
#define FW_DATA_SIZE 850
#define AGC_TAB_SIZE 1600
#define PHY_REG_SIZE 2048
#define MAC_REG_SIZE 1200
#ifdef CONFIG_RTL_92D_SUPPORT
#define PHY_REG_PG_SIZE 2560
#else
#define PHY_REG_PG_SIZE 256
#endif
#define PHY_REG_1T2R 256
#define PHY_REG_1T1R 256
#define FW_IMEM_SIZE 40*(1024)
#define FW_EMEM_SIZE 50*(1024)
#define FW_DMEM_SIZE 48
// for PCIe power saving
#define POWER_DOWN_T0 (10*HZ)
#define PKT_PAGE_SZ 128
#define TX_DESC_SZ 32
#ifdef SUPPORT_TX_MCAST2UNI
#define MAX_IP_MC_ENTRY 8
#endif
#define IQK_ADDA_REG_NUM 16
#define MAX_TOLERANCE 5
#define IQK_DELAY_TIME 1 //ms
#define IQK_MAC_REG_NUM 4
#define SKIP_MIC_NUM 300
//Analog Pre-distortion calibration
#define APK_BB_REG_NUM 5
#define APK_AFE_REG_NUM 16
#define APK_CURVE_REG_NUM 4
#define PATH_NUM 2
// for dynamic mechanism of reserving tx desc
#if defined(RESERVE_TXDESC_FOR_EACH_IF) && (defined(UNIVERSAL_REPEATER) || defined(MBSSID))
#define IF_TXDESC_UPPER_LIMIT 70 // percentage
#endif
// for dynamic mechanism of retry count
#define RETRY_TRSHLD_H 3750000
#define RETRY_TRSHLD_L 3125000
//-------------------------------------------------------------
// Define flag for 8M gateway configuration
//-------------------------------------------------------------
#if defined(CONFIG_RTL8196B_GW_8M)
//#ifdef MERGE_FW
// #undef MERGE_FW
//#endif
//#define DW_FW_BY_MALLOC_BUF
#ifdef MBSSID
#undef RTL8192CD_NUM_VWLAN
#define RTL8192CD_NUM_VWLAN 1
#endif
#undef NUM_STAT
#define NUM_STAT 16
#endif // CONFIG_RTL8196B_GW_8M
#if defined(CONFIG_RTL8196C_AP_ROOT) || defined(CONFIG_RTL8198_AP_ROOT)
#ifdef DOT11D
#undef DOT11D
#endif
#ifdef MBSSID
#undef RTL8192CD_NUM_VWLAN
#define RTL8192CD_NUM_VWLAN 1
#endif
#undef NUM_STAT
#define NUM_STAT 16
#endif //defined(CONFIG_RTL8196C_AP_ROOT)
#ifdef CONFIG_RTL_8198_NFBI_RTK_INBAND_AP //mark_nfbi_inband_ap
#ifdef MBSSID
#undef RTL8192CD_NUM_VWLAN
#define RTL8192CD_NUM_VWLAN 7
#endif
#endif
#if defined(CONFIG_RTL8196C_CLIENT_ONLY)
#ifdef DOT11D
#undef DOT11D
#endif
#endif
#ifdef CONCURRENT_MODE
#define NUM_WLAN_IFACE 2
#endif
#ifdef CONFIG_NET_PCI
#ifndef NUM_WLAN_IFACE
#define NUM_WLAN_IFACE 2
#endif
#endif
#if defined(CONFIG_RTL_92D_SUPPORT) && defined(CONFIG_USB_POWER_BUS)
#define USB_POWER_SUPPORT
#endif
#ifdef WIFI_SIMPLE_CONFIG
#define MAX_WSC_IE_LEN (256+128)
#define MAX_WSC_PROBE_STA 10
#endif
#ifdef CONFIG_WIRELESS_LAN_MODULE //BE_MODULE
#undef __DRAM_IN_865X
#undef __IRAM_IN_865X
#undef __MIPS16
#define __DRAM_IN_865X
#define __IRAM_IN_865X
#define __MIPS16
#undef BR_SHORTCUT
#undef CONFIG_RTL865X_ETH_PRIV_SKB
#undef CONFIG_RTL_ETH_PRIV_SKB
#undef CONFIG_RTK_VLAN_SUPPORT
#endif
#endif // _8192CD_CFG_H_
|