Staging: rtxxx0: remove private debugging ioctls

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Bartlomiej Zolnierkiewicz 2009-08-16 21:31:56 +02:00 committed by Greg Kroah-Hartman
parent c338d4d73e
commit a59601e4e7
2 changed files with 0 additions and 782 deletions

View File

@ -627,13 +627,6 @@ typedef struct _NDIS_802_11_CAPABILITY
#define RT_PRIV_IOCTL_EXT (SIOCIWFIRSTPRIV + 0x01) // Sync. with AP for wsc upnp daemon
#define RTPRIV_IOCTL_SET (SIOCIWFIRSTPRIV + 0x02)
#ifdef DBG
#define RTPRIV_IOCTL_BBP (SIOCIWFIRSTPRIV + 0x03)
#define RTPRIV_IOCTL_MAC (SIOCIWFIRSTPRIV + 0x05)
#define RTPRIV_IOCTL_RF (SIOCIWFIRSTPRIV + 0x13)
#define RTPRIV_IOCTL_E2P (SIOCIWFIRSTPRIV + 0x07)
#endif
#define RTPRIV_IOCTL_STATISTICS (SIOCIWFIRSTPRIV + 0x09)
#define RTPRIV_IOCTL_ADD_PMKID_CACHE (SIOCIWFIRSTPRIV + 0x0A)
#define RTPRIV_IOCTL_RADIUS_DATA (SIOCIWFIRSTPRIV + 0x0C)

View File

@ -93,23 +93,6 @@ struct iw_priv_args privtab[] = {
#endif
/* --- sub-ioctls relations --- */
#ifdef DBG
{ RTPRIV_IOCTL_BBP,
IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK,
"bbp"},
{ RTPRIV_IOCTL_MAC,
IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | 1024,
"mac"},
#ifdef RT30xx
{ RTPRIV_IOCTL_RF,
IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK,
"rf"},
#endif // RT30xx //
{ RTPRIV_IOCTL_E2P,
IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | 1024,
"e2p"},
#endif /* DBG */
{ RTPRIV_IOCTL_STATISTICS,
0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK,
"stat"},
@ -173,29 +156,6 @@ INT Set_Wpa_Support(
IN PRTMP_ADAPTER pAd,
IN PUCHAR arg);
#ifdef DBG
#if !defined(RT2860) && !defined(RT30xx)
VOID RTMPIoctlBBP(
IN PRTMP_ADAPTER pAdapter,
IN struct iwreq *wrq);
#endif
VOID RTMPIoctlMAC(
IN PRTMP_ADAPTER pAdapter,
IN struct iwreq *wrq);
VOID RTMPIoctlE2PROM(
IN PRTMP_ADAPTER pAdapter,
IN struct iwreq *wrq);
#ifdef RT30xx
VOID RTMPIoctlRF(
IN PRTMP_ADAPTER pAdapter,
IN struct iwreq *wrq);
#endif // RT30xx //
#endif // DBG //
NDIS_STATUS RTMPWPANoneAddKeyProc(
IN PRTMP_ADAPTER pAd,
IN PVOID pBuf);
@ -2543,138 +2503,6 @@ int rt_ioctl_siwpmksa(struct net_device *dev,
return 0;
}
#ifdef DBG
static int
rt_private_ioctl_bbp(struct net_device *dev, struct iw_request_info *info,
struct iw_point *wrq, char *extra)
{
CHAR *this_char;
CHAR *value = NULL;
UCHAR regBBP = 0;
UINT32 bbpId;
UINT32 bbpValue;
BOOLEAN bIsPrintAllBBP = FALSE;
INT Status = 0;
PRTMP_ADAPTER pAdapter = dev->ml_priv;
memset(extra, 0x00, IW_PRIV_SIZE_MASK);
if (wrq->length > 1) //No parameters.
{
sprintf(extra, "\n");
//Parsing Read or Write
this_char = wrq->pointer;
DBGPRINT(RT_DEBUG_TRACE, ("this_char=%s\n", this_char));
if (!*this_char)
goto next;
if ((value = rtstrchr(this_char, '=')) != NULL)
*value++ = 0;
if (!value || !*value)
{ //Read
DBGPRINT(RT_DEBUG_TRACE, ("this_char=%s, value=%s\n", this_char, value));
if (sscanf(this_char, "%d", &(bbpId)) == 1)
{
#ifndef RT30xx
if (bbpId <= 136)
#endif // RT30xx //
#ifdef RT30xx
if (bbpId <= 138) // edit by johnli, RF power sequence setup, add BBP R138 for ADC dynamic on/off control
#endif // RT30xx //
{
{
RTMP_BBP_IO_READ8_BY_REG_ID(pAdapter, bbpId, &regBBP);
}
sprintf(extra+strlen(extra), "R%02d[0x%02X]:%02X\n", bbpId, bbpId*2, regBBP);
wrq->length = strlen(extra) + 1; // 1: size of '\0'
DBGPRINT(RT_DEBUG_TRACE, ("msg=%s\n", extra));
}
else
{//Invalid parametes, so default printk all bbp
bIsPrintAllBBP = TRUE;
goto next;
}
}
else
{ //Invalid parametes, so default printk all bbp
bIsPrintAllBBP = TRUE;
goto next;
}
}
else
{ //Write
if ((sscanf(this_char, "%d", &(bbpId)) == 1) && (sscanf(value, "%x", &(bbpValue)) == 1))
{
#ifndef RT30xx
if (bbpId <= 136)
#endif // RT30xx //
#ifdef RT30xx
if (bbpId <= 138) // edit by johnli, RF power sequence setup, add BBP R138 for ADC dynamic on/off control
#endif // RT30xx //
{
{
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAdapter, bbpId, bbpValue);
//Read it back for showing
RTMP_BBP_IO_READ8_BY_REG_ID(pAdapter, bbpId, &regBBP);
}
sprintf(extra+strlen(extra), "R%02d[0x%02X]:%02X\n", bbpId, bbpId*2, regBBP);
wrq->length = strlen(extra) + 1; // 1: size of '\0'
DBGPRINT(RT_DEBUG_TRACE, ("msg=%s\n", extra));
}
else
{//Invalid parametes, so default printk all bbp
bIsPrintAllBBP = TRUE;
goto next;
}
}
else
{ //Invalid parametes, so default printk all bbp
bIsPrintAllBBP = TRUE;
goto next;
}
}
}
else
bIsPrintAllBBP = TRUE;
next:
if (bIsPrintAllBBP)
{
memset(extra, 0x00, IW_PRIV_SIZE_MASK);
sprintf(extra, "\n");
#ifndef RT30xx
for (bbpId = 0; bbpId <= 136; bbpId++)
#endif // RT30xx //
#ifdef RT30xx
for (bbpId = 0; bbpId <= 138; bbpId++) // edit by johnli, RF power sequence setup, add BBP R138 for ADC dynamic on/off control
#endif // RT30xx //
{
if (strlen(extra) >= (IW_PRIV_SIZE_MASK - 10))
break;
RTMP_BBP_IO_READ8_BY_REG_ID(pAdapter, bbpId, &regBBP);
#ifndef RT30xx
sprintf(extra+strlen(extra), "R%02d[0x%02X]:%02X ", bbpId, bbpId*2, regBBP);
if (bbpId%5 == 4)
sprintf(extra+strlen(extra), "\n");
#endif
#ifdef RT30xx
sprintf(extra+strlen(extra), "%03d = %02X\n", bbpId, regBBP); // edit by johnli, change display format
#endif
}
wrq->length = strlen(extra) + 1; // 1: size of '\0'
DBGPRINT(RT_DEBUG_TRACE, ("wrq->length = %d\n", wrq->length));
}
DBGPRINT(RT_DEBUG_TRACE, ("<==rt_private_ioctl_bbp\n\n"));
return Status;
}
#endif // DBG //
int rt_ioctl_siwrate(struct net_device *dev,
struct iw_request_info *info,
union iwreq_data *wrqu, char *extra)
@ -2848,11 +2676,7 @@ static const iw_handler rt_priv_handlers[] = {
(iw_handler) NULL, /* + 0x00 */
(iw_handler) NULL, /* + 0x01 */
(iw_handler) rt_ioctl_setparam, /* + 0x02 */
#ifdef DBG
(iw_handler) rt_private_ioctl_bbp, /* + 0x03 */
#else
(iw_handler) NULL, /* + 0x03 */
#endif
(iw_handler) NULL, /* + 0x04 */
(iw_handler) NULL, /* + 0x05 */
(iw_handler) NULL, /* + 0x06 */
@ -4911,19 +4735,6 @@ INT rt28xx_sta_ioctl(
case RTPRIV_IOCTL_GSITESURVEY:
RTMPIoctlGetSiteSurvey(pAd, wrq);
break;
#ifdef DBG
case RTPRIV_IOCTL_MAC:
RTMPIoctlMAC(pAd, wrq);
break;
case RTPRIV_IOCTL_E2P:
RTMPIoctlE2PROM(pAd, wrq);
break;
#ifdef RT30xx
case RTPRIV_IOCTL_RF:
RTMPIoctlRF(pAd, wrq);
break;
#endif // RT30xx //
#endif // DBG //
case SIOCETHTOOL:
break;
default:
@ -5822,592 +5633,6 @@ INT Set_Wpa_Support(
return TRUE;
}
#ifdef DBG
/*
==========================================================================
Description:
Read / Write MAC
Arguments:
pAdapter Pointer to our adapter
wrq Pointer to the ioctl argument
Return Value:
None
Note:
Usage:
1.) iwpriv ra0 mac 0 ==> read MAC where Addr=0x0
2.) iwpriv ra0 mac 0=12 ==> write MAC where Addr=0x0, value=12
==========================================================================
*/
VOID RTMPIoctlMAC(
IN PRTMP_ADAPTER pAdapter,
IN struct iwreq *wrq)
{
CHAR *this_char;
CHAR *value;
INT j = 0, k = 0;
CHAR msg[1024];
CHAR arg[255];
ULONG macAddr = 0;
UCHAR temp[16], temp2[16];
UINT32 macValue = 0;
INT Status;
#ifdef RT30xx
BOOLEAN bIsPrintAllMAC = FALSE;
#endif
memset(msg, 0x00, 1024);
if (wrq->u.data.length > 1) //No parameters.
{
Status = copy_from_user(arg, wrq->u.data.pointer, (wrq->u.data.length > 255) ? 255 : wrq->u.data.length);
sprintf(msg, "\n");
//Parsing Read or Write
this_char = arg;
if (!*this_char)
goto next;
if ((value = rtstrchr(this_char, '=')) != NULL)
*value++ = 0;
if (!value || !*value)
{ //Read
// Sanity check
if(strlen(this_char) > 4)
goto next;
j = strlen(this_char);
while(j-- > 0)
{
if(this_char[j] > 'f' || this_char[j] < '0')
return;
}
// Mac Addr
k = j = strlen(this_char);
while(j-- > 0)
{
this_char[4-k+j] = this_char[j];
}
while(k < 4)
this_char[3-k++]='0';
this_char[4]='\0';
if(strlen(this_char) == 4)
{
AtoH(this_char, temp, 2);
macAddr = *temp*256 + temp[1];
if (macAddr < 0xFFFF)
{
RTMP_IO_READ32(pAdapter, macAddr, &macValue);
DBGPRINT(RT_DEBUG_TRACE, ("MacAddr=%lx, MacValue=%x\n", macAddr, macValue));
sprintf(msg+strlen(msg), "[0x%08lX]:%08X ", macAddr , macValue);
}
else
#ifndef RT30xx
{//Invalid parametes, so default printk all bbp
#endif
#ifdef RT30xx
{//Invalid parametes, so default printk all mac
bIsPrintAllMAC = TRUE;
#endif
goto next;
}
}
}
else
{ //Write
memcpy(&temp2, value, strlen(value));
temp2[strlen(value)] = '\0';
// Sanity check
if((strlen(this_char) > 4) || strlen(temp2) > 8)
goto next;
j = strlen(this_char);
while(j-- > 0)
{
if(this_char[j] > 'f' || this_char[j] < '0')
return;
}
j = strlen(temp2);
while(j-- > 0)
{
if(temp2[j] > 'f' || temp2[j] < '0')
return;
}
//MAC Addr
k = j = strlen(this_char);
while(j-- > 0)
{
this_char[4-k+j] = this_char[j];
}
while(k < 4)
this_char[3-k++]='0';
this_char[4]='\0';
//MAC value
k = j = strlen(temp2);
while(j-- > 0)
{
temp2[8-k+j] = temp2[j];
}
while(k < 8)
temp2[7-k++]='0';
temp2[8]='\0';
{
AtoH(this_char, temp, 2);
macAddr = *temp*256 + temp[1];
AtoH(temp2, temp, 4);
macValue = *temp*256*256*256 + temp[1]*256*256 + temp[2]*256 + temp[3];
// debug mode
if (macAddr == (HW_DEBUG_SETTING_BASE + 4))
{
// 0x2bf4: byte0 non-zero: enable R17 tuning, 0: disable R17 tuning
if (macValue & 0x000000ff)
{
pAdapter->BbpTuning.bEnable = TRUE;
DBGPRINT(RT_DEBUG_TRACE,("turn on R17 tuning\n"));
}
else
{
UCHAR R66;
pAdapter->BbpTuning.bEnable = FALSE;
R66 = 0x26 + GET_LNA_GAIN(pAdapter);
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAdapter, BBP_R66, (0x26 + GET_LNA_GAIN(pAdapter)));
DBGPRINT(RT_DEBUG_TRACE,("turn off R17 tuning, restore to 0x%02x\n", R66));
}
return;
}
DBGPRINT(RT_DEBUG_TRACE, ("MacAddr=%02lx, MacValue=0x%x\n", macAddr, macValue));
RTMP_IO_WRITE32(pAdapter, macAddr, macValue);
sprintf(msg+strlen(msg), "[0x%08lX]:%08X ", macAddr, macValue);
}
}
}
#ifdef RT30xx
else
bIsPrintAllMAC = TRUE;
#endif
next:
#ifdef RT30xx
if (bIsPrintAllMAC)
{
struct file *file_w;
PCHAR fileName = "MacDump.txt";
mm_segment_t orig_fs;
orig_fs = get_fs();
set_fs(KERNEL_DS);
// open file
file_w = filp_open(fileName, O_WRONLY|O_CREAT, 0);
if (IS_ERR(file_w))
{
DBGPRINT(RT_DEBUG_TRACE, ("-->2) %s: Error %ld opening %s\n", __func__, -PTR_ERR(file_w), fileName));
}
else
{
if (file_w->f_op && file_w->f_op->write)
{
file_w->f_pos = 0;
macAddr = 0x1000;
while (macAddr <= 0x1800)
{
RTMP_IO_READ32(pAdapter, macAddr, &macValue);
sprintf(msg, "%08lx = %08X\n", macAddr, macValue);
// write data to file
file_w->f_op->write(file_w, msg, strlen(msg), &file_w->f_pos);
printk("%s", msg);
macAddr += 4;
}
sprintf(msg, "\nDump all MAC values to %s\n", fileName);
}
filp_close(file_w, NULL);
}
set_fs(orig_fs);
}
#endif /* RT30xx */
if(strlen(msg) == 1)
sprintf(msg+strlen(msg), "===>Error command format!");
// Copy the information into the user buffer
wrq->u.data.length = strlen(msg);
Status = copy_to_user(wrq->u.data.pointer, msg, wrq->u.data.length);
DBGPRINT(RT_DEBUG_TRACE, ("<==RTMPIoctlMAC\n\n"));
}
/*
==========================================================================
Description:
Read / Write E2PROM
Arguments:
pAdapter Pointer to our adapter
wrq Pointer to the ioctl argument
Return Value:
None
Note:
Usage:
1.) iwpriv ra0 e2p 0 ==> read E2PROM where Addr=0x0
2.) iwpriv ra0 e2p 0=1234 ==> write E2PROM where Addr=0x0, value=1234
==========================================================================
*/
VOID RTMPIoctlE2PROM(
IN PRTMP_ADAPTER pAdapter,
IN struct iwreq *wrq)
{
CHAR *this_char;
CHAR *value;
INT j = 0, k = 0;
CHAR msg[1024];
CHAR arg[255];
USHORT eepAddr = 0;
UCHAR temp[16], temp2[16];
USHORT eepValue;
int Status;
#ifdef RT30xx
BOOLEAN bIsPrintAllE2P = FALSE;
#endif
memset(msg, 0x00, 1024);
if (wrq->u.data.length > 1) //No parameters.
{
Status = copy_from_user(arg, wrq->u.data.pointer, (wrq->u.data.length > 255) ? 255 : wrq->u.data.length);
sprintf(msg, "\n");
//Parsing Read or Write
this_char = arg;
if (!*this_char)
goto next;
if ((value = rtstrchr(this_char, '=')) != NULL)
*value++ = 0;
if (!value || !*value)
{ //Read
// Sanity check
if(strlen(this_char) > 4)
goto next;
j = strlen(this_char);
while(j-- > 0)
{
if(this_char[j] > 'f' || this_char[j] < '0')
return;
}
// E2PROM addr
k = j = strlen(this_char);
while(j-- > 0)
{
this_char[4-k+j] = this_char[j];
}
while(k < 4)
this_char[3-k++]='0';
this_char[4]='\0';
if(strlen(this_char) == 4)
{
AtoH(this_char, temp, 2);
eepAddr = *temp*256 + temp[1];
if (eepAddr < 0xFFFF)
{
RT28xx_EEPROM_READ16(pAdapter, eepAddr, eepValue);
sprintf(msg+strlen(msg), "[0x%04X]:0x%04X ", eepAddr , eepValue);
}
else
{//Invalid parametes, so default printk all bbp
#ifdef RT30xx
bIsPrintAllE2P = TRUE;
#endif
goto next;
}
}
}
else
{ //Write
memcpy(&temp2, value, strlen(value));
temp2[strlen(value)] = '\0';
// Sanity check
if((strlen(this_char) > 4) || strlen(temp2) > 8)
goto next;
j = strlen(this_char);
while(j-- > 0)
{
if(this_char[j] > 'f' || this_char[j] < '0')
return;
}
j = strlen(temp2);
while(j-- > 0)
{
if(temp2[j] > 'f' || temp2[j] < '0')
return;
}
//MAC Addr
k = j = strlen(this_char);
while(j-- > 0)
{
this_char[4-k+j] = this_char[j];
}
while(k < 4)
this_char[3-k++]='0';
this_char[4]='\0';
//MAC value
k = j = strlen(temp2);
while(j-- > 0)
{
temp2[4-k+j] = temp2[j];
}
while(k < 4)
temp2[3-k++]='0';
temp2[4]='\0';
AtoH(this_char, temp, 2);
eepAddr = *temp*256 + temp[1];
AtoH(temp2, temp, 2);
eepValue = *temp*256 + temp[1];
RT28xx_EEPROM_WRITE16(pAdapter, eepAddr, eepValue);
sprintf(msg+strlen(msg), "[0x%02X]:%02X ", eepAddr, eepValue);
}
}
#ifdef RT30xx
else
bIsPrintAllE2P = TRUE;
#endif
next:
#ifdef RT30xx
if (bIsPrintAllE2P)
{
struct file *file_w;
PCHAR fileName = "EEPROMDump.txt";
mm_segment_t orig_fs;
orig_fs = get_fs();
set_fs(KERNEL_DS);
// open file
file_w = filp_open(fileName, O_WRONLY|O_CREAT, 0);
if (IS_ERR(file_w))
{
DBGPRINT(RT_DEBUG_TRACE, ("-->2) %s: Error %ld opening %s\n", __func__, -PTR_ERR(file_w), fileName));
}
else
{
if (file_w->f_op && file_w->f_op->write)
{
file_w->f_pos = 0;
eepAddr = 0x00;
while (eepAddr <= 0xFE)
{
RT28xx_EEPROM_READ16(pAdapter, eepAddr, eepValue);
sprintf(msg, "%08x = %04x\n", eepAddr , eepValue);
// write data to file
file_w->f_op->write(file_w, msg, strlen(msg), &file_w->f_pos);
printk("%s", msg);
eepAddr += 2;
}
sprintf(msg, "\nDump all EEPROM values to %s\n", fileName);
}
filp_close(file_w, NULL);
}
set_fs(orig_fs);
}
#endif /* RT30xx */
if(strlen(msg) == 1)
sprintf(msg+strlen(msg), "===>Error command format!");
// Copy the information into the user buffer
wrq->u.data.length = strlen(msg);
Status = copy_to_user(wrq->u.data.pointer, msg, wrq->u.data.length);
DBGPRINT(RT_DEBUG_TRACE, ("<==RTMPIoctlE2PROM\n"));
}
#ifdef RT30xx
/*
==========================================================================
Description:
Read / Write RF register
Arguments:
pAdapter Pointer to our adapter
wrq Pointer to the ioctl argument
Return Value:
None
Note:
Usage:
1.) iwpriv ra0 rf ==> read all RF registers
2.) iwpriv ra0 rf 1 ==> read RF where RegID=1
3.) iwpriv ra0 rf 1=10 ==> write RF R1=0x10
==========================================================================
*/
VOID RTMPIoctlRF(
IN PRTMP_ADAPTER pAdapter,
IN struct iwreq *wrq)
{
CHAR *this_char;
CHAR *value;
UCHAR regRF = 0;
CHAR msg[2048];
CHAR arg[255];
INT rfId;
LONG rfValue;
int Status;
BOOLEAN bIsPrintAllRF = FALSE;
memset(msg, 0x00, 2048);
if (wrq->u.data.length > 1) //No parameters.
{
Status = copy_from_user(arg, wrq->u.data.pointer, (wrq->u.data.length > 255) ? 255 : wrq->u.data.length);
sprintf(msg, "\n");
//Parsing Read or Write
this_char = arg;
if (!*this_char)
goto next;
if ((value = strchr(this_char, '=')) != NULL)
*value++ = 0;
if (!value || !*value)
{ //Read
if (sscanf(this_char, "%d", &(rfId)) == 1)
{
if (rfId <= 31)
{
// In RT2860 ATE mode, we do not load 8051 firmware.
//We must access RF directly.
// For RT2870 ATE mode, ATE_RF_IO_WRITE8(/READ8)_BY_REG_ID are redefined.
// according to Andy, Gary, David require.
// the command rf shall read rf register directly for dubug.
// BBP_IO_READ8_BY_REG_ID(pAdapter, bbpId, &regBBP);
RT30xxReadRFRegister(pAdapter, rfId, &regRF);
sprintf(msg+strlen(msg), "R%02d[0x%02x]:%02X ", rfId, rfId*2, regRF);
}
else
{//Invalid parametes, so default printk all RF
bIsPrintAllRF = TRUE;
goto next;
}
}
else
{ //Invalid parametes, so default printk all RF
bIsPrintAllRF = TRUE;
goto next;
}
}
else
{ //Write
if ((sscanf(this_char, "%d", &(rfId)) == 1) && (sscanf(value, "%lx", &(rfValue)) == 1))
{
if (rfId <= 31)
{
// In RT2860 ATE mode, we do not load 8051 firmware.
// We should access RF registers directly.
// For RT2870 ATE mode, ATE_RF_IO_WRITE8/READ8_BY_REG_ID are redefined.
{
// according to Andy, Gary, David require.
// the command RF shall read/write RF register directly for dubug.
//BBP_IO_READ8_BY_REG_ID(pAdapter, bbpId, &regBBP);
//BBP_IO_WRITE8_BY_REG_ID(pAdapter, (UCHAR)bbpId,(UCHAR) bbpValue);
RT30xxReadRFRegister(pAdapter, rfId, &regRF);
RT30xxWriteRFRegister(pAdapter, (UCHAR)rfId,(UCHAR) rfValue);
//Read it back for showing
//BBP_IO_READ8_BY_REG_ID(pAdapter, bbpId, &regBBP);
RT30xxReadRFRegister(pAdapter, rfId, &regRF);
sprintf(msg+strlen(msg), "R%02d[0x%02X]:%02X\n", rfId, rfId*2, regRF);
}
}
else
{//Invalid parametes, so default printk all RF
bIsPrintAllRF = TRUE;
}
}
else
{ //Invalid parametes, so default printk all RF
bIsPrintAllRF = TRUE;
}
}
}
else
bIsPrintAllRF = TRUE;
next:
if (bIsPrintAllRF)
{
memset(msg, 0x00, 2048);
sprintf(msg, "\n");
for (rfId = 0; rfId <= 31; rfId++)
{
// according to Andy, Gary, David require.
// the command RF shall read/write RF register directly for dubug.
RT30xxReadRFRegister(pAdapter, rfId, &regRF);
sprintf(msg+strlen(msg), "%03d = %02X\n", rfId, regRF);
}
// Copy the information into the user buffer
DBGPRINT(RT_DEBUG_TRACE, ("strlen(msg)=%d\n", (UINT32)strlen(msg)));
wrq->u.data.length = strlen(msg);
if (copy_to_user(wrq->u.data.pointer, msg, wrq->u.data.length))
{
DBGPRINT(RT_DEBUG_TRACE, ("%s: copy_to_user() fail\n", __func__));
}
}
else
{
if(strlen(msg) == 1)
sprintf(msg+strlen(msg), "===>Error command format!");
DBGPRINT(RT_DEBUG_TRACE, ("copy to user [msg=%s]\n", msg));
// Copy the information into the user buffer
DBGPRINT(RT_DEBUG_TRACE, ("strlen(msg) =%d\n", (UINT32)strlen(msg)));
// Copy the information into the user buffer
wrq->u.data.length = strlen(msg);
Status = copy_to_user(wrq->u.data.pointer, msg, wrq->u.data.length);
}
DBGPRINT(RT_DEBUG_TRACE, ("<==RTMPIoctlRF\n\n"));
}
#endif // RT30xx //
#endif // DBG //
INT Set_TGnWifiTest_Proc(
IN PRTMP_ADAPTER pAd,
IN PUCHAR arg)