1 /******************************************************************************
2 * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
4 * Based on the r8180 driver, which is:
5 * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of version 2 of the GNU General Public License as
8 * published by the Free Software Foundation.
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
19 * The full GNU General Public License is included in this distribution in the
20 * file called LICENSE.
22 * Contact Information:
23 * wlanfae <wlanfae@realtek.com>
24 ******************************************************************************/
25 #include "rtl_debug.h"
27 #include "r8192E_phy.h"
28 #include "r8192E_phyreg.h"
29 #include "r8190P_rtl8256.h" /* RTL8225 Radio frontend */
30 #include "r8192E_cmdpkt.h"
32 u32 rt_global_debug_component = \
35 /*------------------Declare variable-----------------------*/
36 u32 DBGP_Type[DBGP_TYPE_MAX];
38 /*-----------------------------------------------------------------------------
39 * Function: DBGP_Flag_Init
41 * Overview: Refresh all debug print control flag content to zero.
51 * 10/20/2006 MHC Create Version 0.
53 *---------------------------------------------------------------------------*/
54 void rtl8192_dbgp_flag_init(struct net_device *dev)
58 for (i = 0; i < DBGP_TYPE_MAX; i++)
64 } /* DBGP_Flag_Init */
66 /* this is only for debugging */
67 void print_buffer(u32 *buffer, int len)
72 printk("ASCII BUFFER DUMP (len: %x):\n",len);
77 printk("\nBINARY BUFFER DUMP (len: %x):\n",len);
85 /* this is only for debug */
86 void dump_eprom(struct net_device *dev)
90 for (i = 0; i < 0xff; i++) {
91 RT_TRACE(COMP_INIT, "EEPROM addr %x : %x", i, eprom_read(dev,i));
95 /* this is only for debug */
96 void rtl8192_dump_reg(struct net_device *dev)
102 RT_TRACE(COMP_INIT, "Dumping NIC register map");
104 for (n = 0; n <= max; ) {
105 printk( "\nD: %2x> ", n);
106 for (i = 0; i < 16 && n <= max; i++, n++)
107 printk("%2x ", read_nic_byte(dev, n));
112 /****************************************************************************
113 -----------------------------PROCFS STUFF-------------------------
114 *****************************************************************************/
115 /*This part is related to PROC, which will record some statistics. */
116 static struct proc_dir_entry *rtl8192_proc = NULL;
118 static int proc_get_stats_ap(char *page, char **start,
119 off_t offset, int count,
120 int *eof, void *data)
122 struct net_device *dev = data;
123 struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
124 struct rtllib_device *ieee = priv->rtllib;
125 struct rtllib_network *target;
129 list_for_each_entry(target, &ieee->network_list, list) {
131 len += snprintf(page + len, count - len,
132 "%s ", target->ssid);
134 if (target->wpa_ie_len>0 || target->rsn_ie_len>0){
135 len += snprintf(page + len, count - len,
139 len += snprintf(page + len, count - len,
149 static int proc_get_registers_0(char *page, char **start,
150 off_t offset, int count,
151 int *eof, void *data)
153 struct net_device *dev = data;
162 len += snprintf(page + len, count - len,
163 "\n####################page %x##################\n ", (page0>>8));
164 len += snprintf(page + len, count - len,
165 "\nD: OF > 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F");
168 len += snprintf(page + len, count - len, "\nD: %2x > ",n);
169 for (i=0;i<16 && n<=max;n++,i++)
170 len += snprintf(page + len, count - len,
171 "%2.2x ",read_nic_byte(dev,(page0|n)));
174 len += snprintf(page + len, count - len,"\n");
179 static int proc_get_registers_1(char *page, char **start,
180 off_t offset, int count,
181 int *eof, void *data)
183 struct net_device *dev = data;
191 /* This dump the current register page */
192 len += snprintf(page + len, count - len,
193 "\n####################page %x##################\n ", (page0>>8));
194 len += snprintf(page + len, count - len,
195 "\nD: OF > 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F");
198 len += snprintf(page + len, count - len,
200 for (i=0;i<16 && n<=max;i++,n++)
201 len += snprintf(page + len, count - len,
202 "%2.2x ",read_nic_byte(dev,(page0|n)));
204 len += snprintf(page + len, count - len,"\n");
209 static int proc_get_registers_2(char *page, char **start,
210 off_t offset, int count,
211 int *eof, void *data)
213 struct net_device *dev = data;
221 /* This dump the current register page */
222 len += snprintf(page + len, count - len,
223 "\n####################page %x##################\n ", (page0>>8));
224 len += snprintf(page + len, count - len,
225 "\nD: OF > 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F");
228 len += snprintf(page + len, count - len,
230 for (i=0;i<16 && n<=max;i++,n++)
231 len += snprintf(page + len, count - len,
232 "%2.2x ",read_nic_byte(dev,(page0|n)));
234 len += snprintf(page + len, count - len,"\n");
239 static int proc_get_registers_3(char *page, char **start,
240 off_t offset, int count,
241 int *eof, void *data)
243 struct net_device *dev = data;
251 /* This dump the current register page */
252 len += snprintf(page + len, count - len,
253 "\n####################page %x##################\n ", (page0>>8));
254 len += snprintf(page + len, count - len,
255 "\nD: OF > 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F");
258 len += snprintf(page + len, count - len,
260 for (i=0;i<16 && n<=max;i++,n++)
261 len += snprintf(page + len, count - len,
262 "%2.2x ",read_nic_byte(dev,(page0|n)));
264 len += snprintf(page + len, count - len,"\n");
269 static int proc_get_registers_4(char *page, char **start,
270 off_t offset, int count,
271 int *eof, void *data)
273 struct net_device *dev = data;
281 /* This dump the current register page */
282 len += snprintf(page + len, count - len,
283 "\n####################page %x##################\n ", (page0>>8));
284 len += snprintf(page + len, count - len,
285 "\nD: OF > 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F");
288 len += snprintf(page + len, count - len,
290 for (i=0;i<16 && n<=max;i++,n++)
291 len += snprintf(page + len, count - len,
292 "%2.2x ",read_nic_byte(dev,(page0|n)));
294 len += snprintf(page + len, count - len,"\n");
299 static int proc_get_registers_5(char *page, char **start,
300 off_t offset, int count,
301 int *eof, void *data)
303 struct net_device *dev = data;
311 /* This dump the current register page */
312 len += snprintf(page + len, count - len,
313 "\n####################page %x##################\n ", (page0>>8));
314 len += snprintf(page + len, count - len,
315 "\nD: OF > 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F");
318 len += snprintf(page + len, count - len,
320 for (i=0;i<16 && n<=max;i++,n++)
321 len += snprintf(page + len, count - len,
322 "%2.2x ",read_nic_byte(dev,(page0|n)));
324 len += snprintf(page + len, count - len,"\n");
329 static int proc_get_registers_6(char *page, char **start,
330 off_t offset, int count,
331 int *eof, void *data)
333 struct net_device *dev = data;
341 /* This dump the current register page */
342 len += snprintf(page + len, count - len,
343 "\n####################page %x##################\n ", (page0>>8));
344 len += snprintf(page + len, count - len,
345 "\nD: OF > 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F");
348 len += snprintf(page + len, count - len,
350 for (i=0;i<16 && n<=max;i++,n++)
351 len += snprintf(page + len, count - len,
352 "%2.2x ",read_nic_byte(dev,(page0|n)));
354 len += snprintf(page + len, count - len,"\n");
359 static int proc_get_registers_7(char *page, char **start,
360 off_t offset, int count,
361 int *eof, void *data)
363 struct net_device *dev = data;
371 /* This dump the current register page */
372 len += snprintf(page + len, count - len,
373 "\n####################page %x##################\n ", (page0>>8));
374 len += snprintf(page + len, count - len,
375 "\nD: OF > 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F");
378 len += snprintf(page + len, count - len,
380 for (i=0;i<16 && n<=max;i++,n++)
381 len += snprintf(page + len, count - len,
382 "%2.2x ",read_nic_byte(dev,(page0|n)));
384 len += snprintf(page + len, count - len,"\n");
389 static int proc_get_registers_8(char *page, char **start,
390 off_t offset, int count,
391 int *eof, void *data)
393 struct net_device *dev = data;
401 /* This dump the current register page */
402 len += snprintf(page + len, count - len,
403 "\n####################page %x##################\n ", (page0>>8));
406 len += snprintf(page + len, count - len, "\nD: %2x > ",n);
407 for (i=0;i<4 && n<=max;n+=4,i++)
408 len += snprintf(page + len, count - len,
409 "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord));
411 len += snprintf(page + len, count - len,"\n");
416 static int proc_get_registers_9(char *page, char **start,
417 off_t offset, int count,
418 int *eof, void *data)
420 struct net_device *dev = data;
428 /* This dump the current register page */
429 len += snprintf(page + len, count - len,
430 "\n####################page %x##################\n ", (page0>>8));
433 len += snprintf(page + len, count - len, "\nD: %2x > ",n);
434 for (i=0;i<4 && n<=max;n+=4,i++)
435 len += snprintf(page + len, count - len,
436 "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord));
438 len += snprintf(page + len, count - len,"\n");
442 static int proc_get_registers_a(char *page, char **start,
443 off_t offset, int count,
444 int *eof, void *data)
446 struct net_device *dev = data;
454 /* This dump the current register page */
455 len += snprintf(page + len, count - len,
456 "\n####################page %x##################\n ", (page0>>8));
459 len += snprintf(page + len, count - len, "\nD: %2x > ",n);
460 for (i=0;i<4 && n<=max;n+=4,i++)
461 len += snprintf(page + len, count - len,
462 "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord));
464 len += snprintf(page + len, count - len,"\n");
468 static int proc_get_registers_b(char *page, char **start,
469 off_t offset, int count,
470 int *eof, void *data)
472 struct net_device *dev = data;
480 /* This dump the current register page */
481 len += snprintf(page + len, count - len,
482 "\n####################page %x##################\n ", (page0>>8));
485 len += snprintf(page + len, count - len, "\nD: %2x > ",n);
486 for (i=0;i<4 && n<=max;n+=4,i++)
487 len += snprintf(page + len, count - len,
488 "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord));
490 len += snprintf(page + len, count - len,"\n");
494 static int proc_get_registers_c(char *page, char **start,
495 off_t offset, int count,
496 int *eof, void *data)
498 struct net_device *dev = data;
506 /* This dump the current register page */
507 len += snprintf(page + len, count - len,
508 "\n####################page %x##################\n ", (page0>>8));
511 len += snprintf(page + len, count - len, "\nD: %2x > ",n);
512 for (i=0;i<4 && n<=max;n+=4,i++)
513 len += snprintf(page + len, count - len,
514 "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord));
516 len += snprintf(page + len, count - len,"\n");
520 static int proc_get_registers_d(char *page, char **start,
521 off_t offset, int count,
522 int *eof, void *data)
524 struct net_device *dev = data;
532 /* This dump the current register page */
533 len += snprintf(page + len, count - len,
534 "\n####################page %x##################\n ", (page0>>8));
537 len += snprintf(page + len, count - len, "\nD: %2x > ",n);
538 for (i=0;i<4 && n<=max;n+=4,i++)
539 len += snprintf(page + len, count - len,
540 "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord));
542 len += snprintf(page + len, count - len,"\n");
546 static int proc_get_registers_e(char *page, char **start,
547 off_t offset, int count,
548 int *eof, void *data)
550 struct net_device *dev = data;
558 /* This dump the current register page */
559 len += snprintf(page + len, count - len,
560 "\n####################page %x##################\n ", (page0>>8));
563 len += snprintf(page + len, count - len, "\nD: %2x > ",n);
564 for (i=0;i<4 && n<=max;n+=4,i++)
565 len += snprintf(page + len, count - len,
566 "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord));
568 len += snprintf(page + len, count - len,"\n");
573 static int proc_get_reg_rf_a(char *page, char **start,
574 off_t offset, int count,
575 int *eof, void *data)
577 struct net_device *dev = data;
584 /* This dump the current register page */
585 len += snprintf(page + len, count - len,
586 "\n#################### RF-A ##################\n ");
589 len += snprintf(page + len, count - len, "\nD: %2x > ",n);
590 for (i=0;i<4 && n<=max;n+=4,i++)
591 len += snprintf(page + len, count - len,
592 "%8.8x ",rtl8192_phy_QueryRFReg(dev, (enum rf90_radio_path)RF90_PATH_A,n, bMaskDWord));
594 len += snprintf(page + len, count - len,"\n");
599 static int proc_get_reg_rf_b(char *page, char **start,
600 off_t offset, int count,
601 int *eof, void *data)
603 struct net_device *dev = data;
610 /* This dump the current register page */
611 len += snprintf(page + len, count - len,
612 "\n#################### RF-B ##################\n ");
615 len += snprintf(page + len, count - len, "\nD: %2x > ",n);
616 for (i=0;i<4 && n<=max;n+=4,i++)
617 len += snprintf(page + len, count - len,
618 "%8.8x ",rtl8192_phy_QueryRFReg(dev, (enum rf90_radio_path)RF90_PATH_B, n, bMaskDWord));
620 len += snprintf(page + len, count - len,"\n");
625 static int proc_get_reg_rf_c(char *page, char **start,
626 off_t offset, int count,
627 int *eof, void *data)
629 struct net_device *dev = data;
636 /* This dump the current register page */
637 len += snprintf(page + len, count - len,
638 "\n#################### RF-C ##################\n ");
641 len += snprintf(page + len, count - len, "\nD: %2x > ",n);
642 for (i=0;i<4 && n<=max;n+=4,i++)
643 len += snprintf(page + len, count - len,
644 "%8.8x ",rtl8192_phy_QueryRFReg(dev, (enum rf90_radio_path)RF90_PATH_C, n, bMaskDWord));
646 len += snprintf(page + len, count - len,"\n");
651 static int proc_get_reg_rf_d(char *page, char **start,
652 off_t offset, int count,
653 int *eof, void *data)
655 struct net_device *dev = data;
662 /* This dump the current register page */
663 len += snprintf(page + len, count - len,
664 "\n#################### RF-D ##################\n ");
667 len += snprintf(page + len, count - len, "\nD: %2x > ",n);
668 for (i=0;i<4 && n<=max;n+=4,i++)
669 len += snprintf(page + len, count - len,
670 "%8.8x ",rtl8192_phy_QueryRFReg(dev, (enum rf90_radio_path)RF90_PATH_D, n, bMaskDWord));
672 len += snprintf(page + len, count - len,"\n");
677 static int proc_get_cam_register_1(char *page, char **start,
678 off_t offset, int count,
679 int *eof, void *data)
681 struct net_device *dev = data;
682 u32 target_command=0;
683 u32 target_content=0;
689 /* This dump the current register page */
690 len += snprintf(page + len, count - len,
691 "\n#################### SECURITY CAM (0-10) ##################\n ");
694 len += snprintf(page + len, count - len, "\nD: %2x > ",j);
695 for (entry_i=0;entry_i<CAM_CONTENT_COUNT;entry_i++)
697 target_command= entry_i+CAM_CONTENT_COUNT*j;
698 target_command= target_command | BIT31;
702 ulStatus = read_nic_dword(dev, RWCAM);
703 if (ulStatus & BIT31){
710 write_nic_dword(dev, RWCAM, target_command);
711 target_content = read_nic_dword(dev, RCAMO);
712 len += snprintf(page + len, count - len,"%8.8x ",target_content);
716 len += snprintf(page + len, count - len,"\n");
721 static int proc_get_cam_register_2(char *page, char **start,
722 off_t offset, int count,
723 int *eof, void *data)
725 struct net_device *dev = data;
726 u32 target_command=0;
727 u32 target_content=0;
733 /* This dump the current register page */
734 len += snprintf(page + len, count - len,
735 "\n#################### SECURITY CAM (11-21) ##################\n ");
736 for (j=11; j<22; j++)
738 len += snprintf(page + len, count - len, "\nD: %2x > ",j);
739 for (entry_i=0;entry_i<CAM_CONTENT_COUNT;entry_i++)
741 target_command= entry_i+CAM_CONTENT_COUNT*j;
742 target_command= target_command | BIT31;
746 ulStatus = read_nic_dword(dev, RWCAM);
747 if (ulStatus & BIT31){
754 write_nic_dword(dev, RWCAM, target_command);
755 target_content = read_nic_dword(dev, RCAMO);
756 len += snprintf(page + len, count - len,"%8.8x ",target_content);
760 len += snprintf(page + len, count - len,"\n");
765 static int proc_get_cam_register_3(char *page, char **start,
766 off_t offset, int count,
767 int *eof, void *data)
769 struct net_device *dev = data;
770 u32 target_command=0;
771 u32 target_content=0;
777 /* This dump the current register page */
778 len += snprintf(page + len, count - len,
779 "\n#################### SECURITY CAM (22-31) ##################\n ");
780 for (j=22; j<TOTAL_CAM_ENTRY; j++)
782 len += snprintf(page + len, count - len, "\nD: %2x > ",j);
783 for (entry_i=0;entry_i<CAM_CONTENT_COUNT;entry_i++)
785 target_command= entry_i+CAM_CONTENT_COUNT*j;
786 target_command= target_command | BIT31;
790 ulStatus = read_nic_dword(dev, RWCAM);
791 if (ulStatus & BIT31){
798 write_nic_dword(dev, RWCAM, target_command);
799 target_content = read_nic_dword(dev, RCAMO);
800 len += snprintf(page + len, count - len,"%8.8x ",target_content);
804 len += snprintf(page + len, count - len,"\n");
808 static int proc_get_stats_tx(char *page, char **start,
809 off_t offset, int count,
810 int *eof, void *data)
812 struct net_device *dev = data;
813 struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
817 len += snprintf(page + len, count - len,
818 "TX VI priority ok int: %lu\n"
819 "TX VO priority ok int: %lu\n"
820 "TX BE priority ok int: %lu\n"
821 "TX BK priority ok int: %lu\n"
822 "TX MANAGE priority ok int: %lu\n"
823 "TX BEACON priority ok int: %lu\n"
824 "TX BEACON priority error int: %lu\n"
825 "TX CMDPKT priority ok int: %lu\n"
826 "TX queue stopped?: %d\n"
827 "TX fifo overflow: %lu\n"
828 "TX total data packets %lu\n"
829 "TX total data bytes :%lu\n",
830 priv->stats.txviokint,
831 priv->stats.txvookint,
832 priv->stats.txbeokint,
833 priv->stats.txbkokint,
834 priv->stats.txmanageokint,
835 priv->stats.txbeaconokint,
836 priv->stats.txbeaconerr,
837 priv->stats.txcmdpktokint,
838 netif_queue_stopped(dev),
839 priv->stats.txoverflow,
840 priv->rtllib->stats.tx_packets,
841 priv->rtllib->stats.tx_bytes
852 static int proc_get_stats_rx(char *page, char **start,
853 off_t offset, int count,
854 int *eof, void *data)
856 struct net_device *dev = data;
857 struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
861 len += snprintf(page + len, count - len,
863 "RX data crc err: %lu\n"
864 "RX mgmt crc err: %lu\n"
866 "RX rx overflow error: %lu\n",
868 priv->stats.rxdatacrcerr,
869 priv->stats.rxmgmtcrcerr,
871 priv->stats.rxoverflow);
877 void rtl8192_proc_module_init(void)
879 RT_TRACE(COMP_INIT, "Initializing proc filesystem");
880 rtl8192_proc=create_proc_entry(DRV_NAME, S_IFDIR, init_net.proc_net);
884 void rtl8192_proc_module_remove(void)
886 remove_proc_entry(DRV_NAME, init_net.proc_net);
890 void rtl8192_proc_remove_one(struct net_device *dev)
892 struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
894 printk("dev name %s\n",dev->name);
897 remove_proc_entry("stats-tx", priv->dir_dev);
898 remove_proc_entry("stats-rx", priv->dir_dev);
899 remove_proc_entry("stats-ap", priv->dir_dev);
900 remove_proc_entry("registers-0", priv->dir_dev);
901 remove_proc_entry("registers-1", priv->dir_dev);
902 remove_proc_entry("registers-2", priv->dir_dev);
903 remove_proc_entry("registers-3", priv->dir_dev);
904 remove_proc_entry("registers-4", priv->dir_dev);
905 remove_proc_entry("registers-5", priv->dir_dev);
906 remove_proc_entry("registers-6", priv->dir_dev);
907 remove_proc_entry("registers-7", priv->dir_dev);
908 remove_proc_entry("registers-8", priv->dir_dev);
909 remove_proc_entry("registers-9", priv->dir_dev);
910 remove_proc_entry("registers-a", priv->dir_dev);
911 remove_proc_entry("registers-b", priv->dir_dev);
912 remove_proc_entry("registers-c", priv->dir_dev);
913 remove_proc_entry("registers-d", priv->dir_dev);
914 remove_proc_entry("registers-e", priv->dir_dev);
915 remove_proc_entry("RF-A", priv->dir_dev);
916 remove_proc_entry("RF-B", priv->dir_dev);
917 remove_proc_entry("RF-C", priv->dir_dev);
918 remove_proc_entry("RF-D", priv->dir_dev);
919 remove_proc_entry("SEC-CAM-1", priv->dir_dev);
920 remove_proc_entry("SEC-CAM-2", priv->dir_dev);
921 remove_proc_entry("SEC-CAM-3", priv->dir_dev);
922 remove_proc_entry("wlan0", rtl8192_proc);
923 priv->dir_dev = NULL;
928 void rtl8192_proc_init_one(struct net_device *dev)
930 struct proc_dir_entry *e;
931 struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
932 priv->dir_dev = create_proc_entry(dev->name,
933 S_IFDIR | S_IRUGO | S_IXUGO,
935 if (!priv->dir_dev) {
936 RT_TRACE(COMP_ERR, "Unable to initialize /proc/net/rtl8192/%s\n",
940 e = create_proc_read_entry("stats-rx", S_IFREG | S_IRUGO,
941 priv->dir_dev, proc_get_stats_rx, dev);
944 RT_TRACE(COMP_ERR,"Unable to initialize "
945 "/proc/net/rtl8192/%s/stats-rx\n",
950 e = create_proc_read_entry("stats-tx", S_IFREG | S_IRUGO,
951 priv->dir_dev, proc_get_stats_tx, dev);
954 RT_TRACE(COMP_ERR, "Unable to initialize "
955 "/proc/net/rtl8192/%s/stats-tx\n",
959 e = create_proc_read_entry("stats-ap", S_IFREG | S_IRUGO,
960 priv->dir_dev, proc_get_stats_ap, dev);
963 RT_TRACE(COMP_ERR, "Unable to initialize "
964 "/proc/net/rtl8192/%s/stats-ap\n",
968 e = create_proc_read_entry("registers-0", S_IFREG | S_IRUGO,
969 priv->dir_dev, proc_get_registers_0, dev);
971 RT_TRACE(COMP_ERR, "Unable to initialize "
972 "/proc/net/rtl8192/%s/registers-0\n",
975 e = create_proc_read_entry("registers-1", S_IFREG | S_IRUGO,
976 priv->dir_dev, proc_get_registers_1, dev);
978 RT_TRACE(COMP_ERR, "Unable to initialize "
979 "/proc/net/rtl8192/%s/registers-1\n",
982 e = create_proc_read_entry("registers-2", S_IFREG | S_IRUGO,
983 priv->dir_dev, proc_get_registers_2, dev);
985 RT_TRACE(COMP_ERR, "Unable to initialize "
986 "/proc/net/rtl8192/%s/registers-2\n",
989 e = create_proc_read_entry("registers-3", S_IFREG | S_IRUGO,
990 priv->dir_dev, proc_get_registers_3, dev);
992 RT_TRACE(COMP_ERR, "Unable to initialize "
993 "/proc/net/rtl8192/%s/registers-3\n",
996 e = create_proc_read_entry("registers-4", S_IFREG | S_IRUGO,
997 priv->dir_dev, proc_get_registers_4, dev);
999 RT_TRACE(COMP_ERR, "Unable to initialize "
1000 "/proc/net/rtl8192/%s/registers-4\n",
1003 e = create_proc_read_entry("registers-5", S_IFREG | S_IRUGO,
1004 priv->dir_dev, proc_get_registers_5, dev);
1006 RT_TRACE(COMP_ERR, "Unable to initialize "
1007 "/proc/net/rtl8192/%s/registers-5\n",
1010 e = create_proc_read_entry("registers-6", S_IFREG | S_IRUGO,
1011 priv->dir_dev, proc_get_registers_6, dev);
1013 RT_TRACE(COMP_ERR, "Unable to initialize "
1014 "/proc/net/rtl8192/%s/registers-6\n",
1017 e = create_proc_read_entry("registers-7", S_IFREG | S_IRUGO,
1018 priv->dir_dev, proc_get_registers_7, dev);
1020 RT_TRACE(COMP_ERR, "Unable to initialize "
1021 "/proc/net/rtl8192/%s/registers-7\n",
1024 e = create_proc_read_entry("registers-8", S_IFREG | S_IRUGO,
1025 priv->dir_dev, proc_get_registers_8, dev);
1027 RT_TRACE(COMP_ERR, "Unable to initialize "
1028 "/proc/net/rtl8192/%s/registers-8\n",
1031 e = create_proc_read_entry("registers-9", S_IFREG | S_IRUGO,
1032 priv->dir_dev, proc_get_registers_9, dev);
1034 RT_TRACE(COMP_ERR, "Unable to initialize "
1035 "/proc/net/rtl8192/%s/registers-9\n",
1038 e = create_proc_read_entry("registers-a", S_IFREG | S_IRUGO,
1039 priv->dir_dev, proc_get_registers_a, dev);
1041 RT_TRACE(COMP_ERR, "Unable to initialize "
1042 "/proc/net/rtl8192/%s/registers-a\n",
1045 e = create_proc_read_entry("registers-b", S_IFREG | S_IRUGO,
1046 priv->dir_dev, proc_get_registers_b, dev);
1048 RT_TRACE(COMP_ERR, "Unable to initialize "
1049 "/proc/net/rtl8192/%s/registers-b\n",
1052 e = create_proc_read_entry("registers-c", S_IFREG | S_IRUGO,
1053 priv->dir_dev, proc_get_registers_c, dev);
1055 RT_TRACE(COMP_ERR, "Unable to initialize "
1056 "/proc/net/rtl8192/%s/registers-c\n",
1059 e = create_proc_read_entry("registers-d", S_IFREG | S_IRUGO,
1060 priv->dir_dev, proc_get_registers_d, dev);
1062 RT_TRACE(COMP_ERR, "Unable to initialize "
1063 "/proc/net/rtl8192/%s/registers-d\n",
1066 e = create_proc_read_entry("registers-e", S_IFREG | S_IRUGO,
1067 priv->dir_dev, proc_get_registers_e, dev);
1069 RT_TRACE(COMP_ERR, "Unable to initialize "
1070 "/proc/net/rtl8192/%s/registers-e\n",
1073 e = create_proc_read_entry("RF-A", S_IFREG | S_IRUGO,
1074 priv->dir_dev, proc_get_reg_rf_a, dev);
1076 RT_TRACE(COMP_ERR, "Unable to initialize "
1077 "/proc/net/rtl8192/%s/RF-A\n",
1080 e = create_proc_read_entry("RF-B", S_IFREG | S_IRUGO,
1081 priv->dir_dev, proc_get_reg_rf_b, dev);
1083 RT_TRACE(COMP_ERR, "Unable to initialize "
1084 "/proc/net/rtl8192/%s/RF-B\n",
1087 e = create_proc_read_entry("RF-C", S_IFREG | S_IRUGO,
1088 priv->dir_dev, proc_get_reg_rf_c, dev);
1090 RT_TRACE(COMP_ERR, "Unable to initialize "
1091 "/proc/net/rtl8192/%s/RF-C\n",
1094 e = create_proc_read_entry("RF-D", S_IFREG | S_IRUGO,
1095 priv->dir_dev, proc_get_reg_rf_d, dev);
1097 RT_TRACE(COMP_ERR, "Unable to initialize "
1098 "/proc/net/rtl8192/%s/RF-D\n",
1101 e = create_proc_read_entry("SEC-CAM-1", S_IFREG | S_IRUGO,
1102 priv->dir_dev, proc_get_cam_register_1, dev);
1104 RT_TRACE(COMP_ERR, "Unable to initialize "
1105 "/proc/net/rtl8192/%s/SEC-CAM-1\n",
1108 e = create_proc_read_entry("SEC-CAM-2", S_IFREG | S_IRUGO,
1109 priv->dir_dev, proc_get_cam_register_2, dev);
1111 RT_TRACE(COMP_ERR, "Unable to initialize "
1112 "/proc/net/rtl8192/%s/SEC-CAM-2\n",
1115 e = create_proc_read_entry("SEC-CAM-3", S_IFREG | S_IRUGO,
1116 priv->dir_dev, proc_get_cam_register_3, dev);
1118 RT_TRACE(COMP_ERR, "Unable to initialize "
1119 "/proc/net/rtl8192/%s/SEC-CAM-3\n",