diff options
Diffstat (limited to 'drivers/staging/vt6656/main_usb.c')
-rw-r--r-- | drivers/staging/vt6656/main_usb.c | 530 |
1 files changed, 274 insertions, 256 deletions
diff --git a/drivers/staging/vt6656/main_usb.c b/drivers/staging/vt6656/main_usb.c index f33086d..d5f53e1 100644 --- a/drivers/staging/vt6656/main_usb.c +++ b/drivers/staging/vt6656/main_usb.c @@ -73,15 +73,16 @@ #include "iowpa.h" /*--------------------- Static Definitions -------------------------*/ -//static int msglevel =MSG_LEVEL_DEBUG; +/* static int msglevel = MSG_LEVEL_DEBUG; */ static int msglevel =MSG_LEVEL_INFO; -// -// Define module options -// +/* + * define module options + */ -// Version Information -#define DRIVER_AUTHOR "VIA Networking Technologies, Inc., <lyndonchen@vntek.com.tw>" +/* version information */ +#define DRIVER_AUTHOR \ + "VIA Networking Technologies, Inc., <lyndonchen@vntek.com.tw>" MODULE_AUTHOR(DRIVER_AUTHOR); MODULE_LICENSE("GPL"); MODULE_DESCRIPTION(DEVICE_FULL_DRV_NAM); @@ -184,16 +185,16 @@ DEVICE_PARAM(BasebandType, "baseband type"); DEVICE_PARAM(b80211hEnable, "802.11h mode"); -// -// Static vars definitions -// +/* + * Static vars definitions + */ static struct usb_device_id vt6656_table[] = { {USB_DEVICE(VNT_USB_VENDOR_ID, VNT_USB_PRODUCT_ID)}, {} }; -// Frequency list (map channels to frequencies) +/* frequency list (map channels to frequencies) */ /* static const long frequency_list[] = { 2412, 2417, 2422, 2427, 2432, 2437, 2442, 2447, 2452, 2457, 2462, 2467, 2472, 2484, @@ -225,26 +226,27 @@ static void device_set_multi(struct net_device *dev); static int device_close(struct net_device *dev); static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); -static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType); -static BOOL device_init_defrag_cb(PSDevice pDevice); -static void device_init_diversity_timer(PSDevice pDevice); +static int device_init_registers(struct vnt_private *pDevice, + DEVICE_INIT_TYPE InitType); +static bool device_init_defrag_cb(struct vnt_private *pDevice); +static void device_init_diversity_timer(struct vnt_private *pDevice); static int device_dma0_tx_80211(struct sk_buff *skb, struct net_device *dev); static int ethtool_ioctl(struct net_device *dev, void *useraddr); -static void device_free_tx_bufs(PSDevice pDevice); -static void device_free_rx_bufs(PSDevice pDevice); -static void device_free_int_bufs(PSDevice pDevice); -static void device_free_frag_bufs(PSDevice pDevice); -static BOOL device_alloc_bufs(PSDevice pDevice); - -static int Read_config_file(PSDevice pDevice); -static unsigned char *Config_FileOperation(PSDevice pDevice); +static void device_free_tx_bufs(struct vnt_private *pDevice); +static void device_free_rx_bufs(struct vnt_private *pDevice); +static void device_free_int_bufs(struct vnt_private *pDevice); +static void device_free_frag_bufs(struct vnt_private *pDevice); +static bool device_alloc_bufs(struct vnt_private *pDevice); + +static int Read_config_file(struct vnt_private *pDevice); +static unsigned char *Config_FileOperation(struct vnt_private *pDevice); static int Config_FileGetParameter(unsigned char *string, unsigned char *dest, unsigned char *source); -static void usb_device_reset(PSDevice pDevice); +static void usb_device_reset(struct vnt_private *pDevice); @@ -254,7 +256,7 @@ static void usb_device_reset(PSDevice pDevice); static void -device_set_options(PSDevice pDevice) { +device_set_options(struct vnt_private *pDevice) { BYTE abyBroadcastAddr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; BYTE abySNAP_RFC1042[ETH_ALEN] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0x00}; @@ -277,22 +279,22 @@ device_set_options(PSDevice pDevice) { pDevice->b11hEnable = X80211h_MODE_DEF; pDevice->eOPMode = OP_MODE_DEF; pDevice->uConnectionRate = DATA_RATE_DEF; - if (pDevice->uConnectionRate < RATE_AUTO) pDevice->bFixRate = TRUE; + if (pDevice->uConnectionRate < RATE_AUTO) pDevice->bFixRate = true; pDevice->byBBType = BBP_TYPE_DEF; pDevice->byPacketType = pDevice->byBBType; pDevice->byAutoFBCtrl = AUTO_FB_0; - pDevice->bUpdateBBVGA = TRUE; + pDevice->bUpdateBBVGA = true; pDevice->byFOETuning = 0; pDevice->byAutoPwrTunning = 0; pDevice->wCTSDuration = 0; pDevice->byPreambleType = 0; - pDevice->bExistSWNetAddr = FALSE; -// pDevice->bDiversityRegCtlON = TRUE; - pDevice->bDiversityRegCtlON = FALSE; + pDevice->bExistSWNetAddr = false; + /* pDevice->bDiversityRegCtlON = true; */ + pDevice->bDiversityRegCtlON = false; } -static void device_init_diversity_timer(PSDevice pDevice) +static void device_init_diversity_timer(struct vnt_private *pDevice) { init_timer(&pDevice->TimerSQ3Tmax1); pDevice->TimerSQ3Tmax1.data = (unsigned long)pDevice; @@ -313,25 +315,25 @@ static void device_init_diversity_timer(PSDevice pDevice) } -// -// Initialization of MAC & BBP registers -// +/* + * initialization of MAC & BBP registers + */ -static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType) +static int device_init_registers(struct vnt_private *pDevice, + DEVICE_INIT_TYPE InitType) { - u8 abyBroadcastAddr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; - u8 abySNAP_RFC1042[ETH_ALEN] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0x00}; - u8 abySNAP_Bridgetunnel[ETH_ALEN] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0xF8}; - BYTE byAntenna; - unsigned int ii; - CMD_CARD_INIT sInitCmd; - int ntStatus = STATUS_SUCCESS; - RSP_CARD_INIT sInitRsp; - PSMgmtObject pMgmt = &(pDevice->sMgmtObj); - BYTE byTmp; - BYTE byCalibTXIQ = 0; - BYTE byCalibTXDC = 0; - BYTE byCalibRXIQ = 0; + struct vnt_manager *pMgmt = &pDevice->vnt_mgmt; + u8 abyBroadcastAddr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; + u8 abySNAP_RFC1042[ETH_ALEN] = {0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00}; + u8 abySNAP_Bridgetunnel[ETH_ALEN] + = {0xaa, 0xaa, 0x03, 0x00, 0x00, 0xf8}; + u8 byAntenna; + int ii; + CMD_CARD_INIT sInitCmd; + int ntStatus = STATUS_SUCCESS; + RSP_CARD_INIT sInitRsp; + u8 byTmp; + u8 byCalibTXIQ = 0, byCalibTXDC = 0, byCalibRXIQ = 0; DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "---->INIbInitAdapter. [%d][%d]\n", InitType, pDevice->byPacketType); spin_lock_irq(&pDevice->lock); @@ -343,24 +345,24 @@ static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType) ETH_ALEN); if ( !FIRMWAREbCheckVersion(pDevice) ) { - if (FIRMWAREbDownload(pDevice) == TRUE) { - if (FIRMWAREbBrach2Sram(pDevice) == FALSE) { + if (FIRMWAREbDownload(pDevice) == true) { + if (FIRMWAREbBrach2Sram(pDevice) == false) { DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" FIRMWAREbBrach2Sram fail \n"); spin_unlock_irq(&pDevice->lock); - return FALSE; + return false; } } else { DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" FIRMWAREbDownload fail \n"); spin_unlock_irq(&pDevice->lock); - return FALSE; + return false; } } if ( !BBbVT3184Init(pDevice) ) { DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" BBbVT3184Init fail \n"); spin_unlock_irq(&pDevice->lock); - return FALSE; + return false; } } @@ -371,7 +373,7 @@ static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType) sInitCmd.byShortRetryLimit = pDevice->byShortRetryLimit; sInitCmd.byLongRetryLimit = pDevice->byLongRetryLimit; - //issue Card_init command to device + /* issue card_init command to device */ ntStatus = CONTROLnsRequestOut(pDevice, MESSAGE_TYPE_CARDINIT, 0, @@ -382,7 +384,7 @@ static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType) if ( ntStatus != STATUS_SUCCESS ) { DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" Issue Card init fail \n"); spin_unlock_irq(&pDevice->lock); - return FALSE; + return false; } if (InitType == DEVICE_INIT_COLD) { @@ -391,10 +393,10 @@ static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType) if (ntStatus != STATUS_SUCCESS) { DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Cardinit request in status fail!\n"); spin_unlock_irq(&pDevice->lock); - return FALSE; + return false; } - //Local ID for AES functions + /* local ID for AES functions */ ntStatus = CONTROLnsRequestIn(pDevice, MESSAGE_TYPE_READ, MAC_REG_LOCALID, @@ -404,15 +406,17 @@ static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType) if ( ntStatus != STATUS_SUCCESS ) { spin_unlock_irq(&pDevice->lock); - return FALSE; + return false; } - // Do MACbSoftwareReset in MACvInitialize - // force CCK - pDevice->bCCK = TRUE; - pDevice->bProtectMode = FALSE; //Only used in 11g type, sync with ERP IE - pDevice->bNonERPPresent = FALSE; - pDevice->bBarkerPreambleMd = FALSE; + /* do MACbSoftwareReset in MACvInitialize */ + + /* force CCK */ + pDevice->bCCK = true; + pDevice->bProtectMode = false; + /* only used in 11g type, sync with ERP IE */ + pDevice->bNonERPPresent = false; + pDevice->bBarkerPreambleMd = false; if ( pDevice->bFixRate ) { pDevice->wCurrentRate = (WORD) pDevice->uConnectionRate; } else { @@ -426,13 +430,14 @@ static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType) pDevice->byTopOFDMBasicRate = RATE_24M; pDevice->byTopCCKBasicRate = RATE_1M; - pDevice->byRevId = 0; //Target to IF pin while programming to RF chip. + pDevice->byRevId = 0; + /* target to IF pin while programming to RF chip */ pDevice->byCurPwr = 0xFF; pDevice->byCCKPwr = pDevice->abyEEPROM[EEP_OFS_PWR_CCK]; pDevice->byOFDMPwrG = pDevice->abyEEPROM[EEP_OFS_PWR_OFDMG]; - // Load power Table - for (ii=0;ii<14;ii++) { + /* load power table */ + for (ii = 0; ii < 14; ii++) { pDevice->abyCCKPwrTbl[ii] = pDevice->abyEEPROM[ii + EEP_OFS_CCK_PWR_TBL]; if (pDevice->abyCCKPwrTbl[ii] == 0) pDevice->abyCCKPwrTbl[ii] = pDevice->byCCKPwr; @@ -441,8 +446,10 @@ static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType) pDevice->abyOFDMPwrTbl[ii] = pDevice->byOFDMPwrG; } - //original zonetype is USA,but customize zonetype is europe, - // then need recover 12,13 ,14 channel with 11 channel + /* + * original zonetype is USA, but custom zonetype is Europe, + * then need to recover 12, 13, 14 channels with 11 channel + */ if(((pDevice->abyEEPROM[EEP_OFS_ZONETYPE] == ZoneType_Japan) || (pDevice->abyEEPROM[EEP_OFS_ZONETYPE] == ZoneType_Europe))&& (pDevice->byOriginalZonetype == ZoneType_USA)) { @@ -452,25 +459,24 @@ static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType) } } - //{{ RobertYu: 20041124 - pDevice->byOFDMPwrA = 0x34; // same as RFbMA2829SelectChannel - // Load OFDM A Power Table - for (ii=0;ii<CB_MAX_CHANNEL_5G;ii++) { //RobertYu:20041224, bug using CB_MAX_CHANNEL + pDevice->byOFDMPwrA = 0x34; /* same as RFbMA2829SelectChannel */ + + /* load OFDM A power table */ + for (ii = 0; ii < CB_MAX_CHANNEL_5G; ii++) { pDevice->abyOFDMAPwrTbl[ii] = pDevice->abyEEPROM[ii + EEP_OFS_OFDMA_PWR_TBL]; if (pDevice->abyOFDMAPwrTbl[ii] == 0) pDevice->abyOFDMAPwrTbl[ii] = pDevice->byOFDMPwrA; } - //}} RobertYu byAntenna = pDevice->abyEEPROM[EEP_OFS_ANTENNA]; if (byAntenna & EEP_ANTINV) - pDevice->bTxRxAntInv = TRUE; + pDevice->bTxRxAntInv = true; else - pDevice->bTxRxAntInv = FALSE; + pDevice->bTxRxAntInv = false; byAntenna &= (EEP_ANTENNA_AUX | EEP_ANTENNA_MAIN); - if (byAntenna == 0) // if not set default is All + if (byAntenna == 0) /* if not set default is both */ byAntenna = (EEP_ANTENNA_AUX | EEP_ANTENNA_MAIN); if (byAntenna == (EEP_ANTENNA_AUX | EEP_ANTENNA_MAIN)) { @@ -478,29 +484,29 @@ static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType) pDevice->byTxAntennaMode = ANT_B; pDevice->dwTxAntennaSel = 1; pDevice->dwRxAntennaSel = 1; - if (pDevice->bTxRxAntInv == TRUE) + if (pDevice->bTxRxAntInv == true) pDevice->byRxAntennaMode = ANT_A; else pDevice->byRxAntennaMode = ANT_B; if (pDevice->bDiversityRegCtlON) - pDevice->bDiversityEnable = TRUE; + pDevice->bDiversityEnable = true; else - pDevice->bDiversityEnable = FALSE; + pDevice->bDiversityEnable = false; } else { - pDevice->bDiversityEnable = FALSE; + pDevice->bDiversityEnable = false; pDevice->byAntennaCount = 1; pDevice->dwTxAntennaSel = 0; pDevice->dwRxAntennaSel = 0; if (byAntenna & EEP_ANTENNA_AUX) { pDevice->byTxAntennaMode = ANT_A; - if (pDevice->bTxRxAntInv == TRUE) + if (pDevice->bTxRxAntInv == true) pDevice->byRxAntennaMode = ANT_B; else pDevice->byRxAntennaMode = ANT_A; } else { pDevice->byTxAntennaMode = ANT_B; - if (pDevice->bTxRxAntInv == TRUE) + if (pDevice->bTxRxAntInv == true) pDevice->byRxAntennaMode = ANT_A; else pDevice->byRxAntennaMode = ANT_B; @@ -512,35 +518,34 @@ static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType) pDevice->byTMax2 = 4; pDevice->ulSQ3TH = 0; pDevice->byTMax3 = 64; - // ----------------------------------------------------------------- - //Get Auto Fall Back Type + /* get Auto Fall Back type */ pDevice->byAutoFBCtrl = AUTO_FB_0; - // Set SCAN Time + /* set SCAN Time */ pDevice->uScanTime = WLAN_SCAN_MINITIME; - // default Auto Mode - //pDevice->NetworkType = Ndis802_11Automode; + /* default Auto Mode */ + /* pDevice->NetworkType = Ndis802_11Automode; */ pDevice->eConfigPHYMode = PHY_TYPE_AUTO; pDevice->byBBType = BB_TYPE_11G; - // initialize BBP registers + /* initialize BBP registers */ pDevice->ulTxPower = 25; - // Get Channel range + /* get channel range */ pDevice->byMinChannel = 1; pDevice->byMaxChannel = CB_MAX_CHANNEL; - // Get RFType + /* get RFType */ pDevice->byRFType = sInitRsp.byRFType; if ((pDevice->byRFType & RF_EMU) != 0) { - // force change RevID for VT3253 emu - pDevice->byRevId = 0x80; + /* force change RevID for VT3253 emu */ + pDevice->byRevId = 0x80; } - // Load EEPROM calibrated vt3266 parameters + /* load vt3266 calibration parameters in EEPROM */ if (pDevice->byRFType == RF_VT3226D0) { if((pDevice->abyEEPROM[EEP_OFS_MAJOR_VER] == 0x1) && (pDevice->abyEEPROM[EEP_OFS_MINOR_VER] >= 0x4)) { @@ -548,13 +553,32 @@ static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType) byCalibTXDC = pDevice->abyEEPROM[EEP_OFS_CALIB_TX_DC]; byCalibRXIQ = pDevice->abyEEPROM[EEP_OFS_CALIB_RX_IQ]; if( (byCalibTXIQ || byCalibTXDC || byCalibRXIQ) ) { - ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0xFF, 0x03); // CR255, Set BB to support TX/RX IQ and DC compensation Mode - ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0xFB, byCalibTXIQ); // CR251, TX I/Q Imbalance Calibration - ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0xFC, byCalibTXDC); // CR252, TX DC-Offset Calibration - ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0xFD, byCalibRXIQ); // CR253, RX I/Q Imbalance Calibration + /* CR255, enable TX/RX IQ and DC compensation mode */ + ControlvWriteByte(pDevice, + MESSAGE_REQUEST_BBREG, + 0xFF, + 0x03); + /* CR251, TX I/Q Imbalance Calibration */ + ControlvWriteByte(pDevice, + MESSAGE_REQUEST_BBREG, + 0xFB, + byCalibTXIQ); + /* CR252, TX DC-Offset Calibration */ + ControlvWriteByte(pDevice, + MESSAGE_REQUEST_BBREG, + 0xFC, + byCalibTXDC); + /* CR253, RX I/Q Imbalance Calibration */ + ControlvWriteByte(pDevice, + MESSAGE_REQUEST_BBREG, + 0xFD, + byCalibRXIQ); } else { - // turn off BB Calibration compensation - ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0xFF, 0x0); // CR255 + /* CR255, turn off BB Calibration compensation */ + ControlvWriteByte(pDevice, + MESSAGE_REQUEST_BBREG, + 0xFF, + 0x0); } } } @@ -563,26 +587,27 @@ static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType) pMgmt->uIBSSChannel = pDevice->uChannel; CARDbSetMediaChannel(pDevice, pMgmt->uCurrChannel); - // get Permanent network address + /* get permanent network address */ memcpy(pDevice->abyPermanentNetAddr,&(sInitRsp.byNetAddr[0]),6); memcpy(pDevice->abyCurrentNetAddr, pDevice->abyPermanentNetAddr, ETH_ALEN); - // if exist SW network address, use SW network address. - + /* if exist SW network address, use it */ DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Network address = %pM\n", pDevice->abyCurrentNetAddr); } - // Set BB and packet type at the same time. - // Set Short Slot Time, xIFS, and RSPINF. + /* + * set BB and packet type at the same time + * set Short Slot Time, xIFS, and RSPINF + */ if (pDevice->byBBType == BB_TYPE_11A) { CARDbAddBasicRate(pDevice, RATE_6M); - pDevice->bShortSlotTime = TRUE; + pDevice->bShortSlotTime = true; } else { CARDbAddBasicRate(pDevice, RATE_1M); - pDevice->bShortSlotTime = FALSE; + pDevice->bShortSlotTime = false; } BBvSetShortSlotTime(pDevice); CARDvSetBSSMode(pDevice); @@ -594,7 +619,7 @@ static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType) } pDevice->byRadioCtl = pDevice->abyEEPROM[EEP_OFS_RADIOCTL]; - pDevice->bHWRadioOff = FALSE; + pDevice->bHWRadioOff = false; if ( (pDevice->byRadioCtl & EEP_RADIOCTL_ENABLE) != 0 ) { ntStatus = CONTROLnsRequestIn(pDevice, MESSAGE_TYPE_READ, @@ -605,23 +630,23 @@ static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType) if ( ntStatus != STATUS_SUCCESS ) { spin_unlock_irq(&pDevice->lock); - return FALSE; + return false; } if ( (byTmp & GPIO3_DATA) == 0 ) { - pDevice->bHWRadioOff = TRUE; + pDevice->bHWRadioOff = true; MACvRegBitsOn(pDevice,MAC_REG_GPIOCTL1,GPIO3_INTMD); } else { MACvRegBitsOff(pDevice,MAC_REG_GPIOCTL1,GPIO3_INTMD); - pDevice->bHWRadioOff = FALSE; + pDevice->bHWRadioOff = false; } - } //EEP_RADIOCTL_ENABLE + } ControlvMaskByte(pDevice,MESSAGE_REQUEST_MACREG,MAC_REG_PAPEDELAY,LEDSTS_TMLEN,0x38); ControlvMaskByte(pDevice,MESSAGE_REQUEST_MACREG,MAC_REG_PAPEDELAY,LEDSTS_STS,LEDSTS_SLOW); MACvRegBitsOn(pDevice,MAC_REG_GPIOCTL0,0x01); - if ((pDevice->bHWRadioOff == TRUE) || (pDevice->bRadioControlOff == TRUE)) { + if ((pDevice->bHWRadioOff == true) || (pDevice->bRadioControlOff == true)) { CARDbRadioPowerOff(pDevice); } else { CARDbRadioPowerOn(pDevice); @@ -629,14 +654,14 @@ static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType) spin_unlock_irq(&pDevice->lock); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"<----INIbInitAdapter Exit\n"); - return TRUE; + return true; } #ifdef CONFIG_PM /* Minimal support for suspend and resume */ static int vt6656_suspend(struct usb_interface *intf, pm_message_t message) { - PSDevice device = usb_get_intfdata(intf); + struct vnt_private *device = usb_get_intfdata(intf); if (!device || !device->dev) return -ENODEV; @@ -651,7 +676,7 @@ static int vt6656_suspend(struct usb_interface *intf, pm_message_t message) static int vt6656_resume(struct usb_interface *intf) { - PSDevice device = usb_get_intfdata(intf); + struct vnt_private *device = usb_get_intfdata(intf); if (!device || !device->dev) return -ENODEV; @@ -682,13 +707,13 @@ vt6656_probe(struct usb_interface *intf, const struct usb_device_id *id) struct usb_device *udev = interface_to_usbdev(intf); int rc = 0; struct net_device *netdev = NULL; - PSDevice pDevice = NULL; + struct vnt_private *pDevice; printk(KERN_NOTICE "%s Ver. %s\n", DEVICE_FULL_DRV_NAM, DEVICE_VERSION); printk(KERN_NOTICE "Copyright (c) 2004 VIA Networking Technologies, Inc.\n"); udev = usb_get_dev(udev); - netdev = alloc_etherdev(sizeof(DEVICE_INFO)); + netdev = alloc_etherdev(sizeof(struct vnt_private)); if (!netdev) { printk(KERN_ERR DEVICE_NAME ": allocate net device failed\n"); rc = -ENOMEM; @@ -696,7 +721,7 @@ vt6656_probe(struct usb_interface *intf, const struct usb_device_id *id) } pDevice = netdev_priv(netdev); - memset(pDevice, 0, sizeof(DEVICE_INFO)); + memset(pDevice, 0, sizeof(struct vnt_private)); pDevice->dev = netdev; pDevice->usb = udev; @@ -705,7 +730,7 @@ vt6656_probe(struct usb_interface *intf, const struct usb_device_id *id) spin_lock_init(&pDevice->lock); pDevice->tx_80211 = device_dma0_tx_80211; - pDevice->sMgmtObj.pAdapter = (void *) pDevice; + pDevice->vnt_mgmt.pAdapter = (void *) pDevice; netdev->netdev_ops = &device_netdev_ops; netdev->wireless_handlers = @@ -732,7 +757,7 @@ err_nomem: return rc; } -static void device_free_tx_bufs(PSDevice pDevice) +static void device_free_tx_bufs(struct vnt_private *pDevice) { PUSB_SEND_CONTEXT pTxContext; int ii; @@ -740,7 +765,7 @@ static void device_free_tx_bufs(PSDevice pDevice) for (ii = 0; ii < pDevice->cbTD; ii++) { pTxContext = pDevice->apTD[ii]; - //de-allocate URBs + /* deallocate URBs */ if (pTxContext->pUrb) { usb_kill_urb(pTxContext->pUrb); usb_free_urb(pTxContext->pUrb); @@ -751,7 +776,7 @@ static void device_free_tx_bufs(PSDevice pDevice) } -static void device_free_rx_bufs(PSDevice pDevice) +static void device_free_rx_bufs(struct vnt_private *pDevice) { PRCB pRCB; int ii; @@ -759,12 +784,12 @@ static void device_free_rx_bufs(PSDevice pDevice) for (ii = 0; ii < pDevice->cbRD; ii++) { pRCB = pDevice->apRCB[ii]; - //de-allocate URBs + /* deallocate URBs */ if (pRCB->pUrb) { usb_kill_urb(pRCB->pUrb); usb_free_urb(pRCB->pUrb); } - //de-allocate skb + /* deallocate skb */ if (pRCB->skb) dev_kfree_skb(pRCB->skb); } @@ -773,7 +798,7 @@ static void device_free_rx_bufs(PSDevice pDevice) return; } -static void usb_device_reset(PSDevice pDevice) +static void usb_device_reset(struct vnt_private *pDevice) { int status; status = usb_reset_device(pDevice->usb); @@ -782,14 +807,15 @@ static void usb_device_reset(PSDevice pDevice) return ; } -static void device_free_int_bufs(PSDevice pDevice) +static void device_free_int_bufs(struct vnt_private *pDevice) { kfree(pDevice->intBuf.pDataBuf); return; } -static BOOL device_alloc_bufs(PSDevice pDevice) { +static bool device_alloc_bufs(struct vnt_private *pDevice) +{ PUSB_SEND_CONTEXT pTxContext; PRCB pRCB; @@ -805,16 +831,16 @@ static BOOL device_alloc_bufs(PSDevice pDevice) { } pDevice->apTD[ii] = pTxContext; pTxContext->pDevice = (void *) pDevice; - //allocate URBs + /* allocate URBs */ pTxContext->pUrb = usb_alloc_urb(0, GFP_ATOMIC); if (pTxContext->pUrb == NULL) { DBG_PRT(MSG_LEVEL_ERR,KERN_ERR "alloc tx urb failed\n"); goto free_tx; } - pTxContext->bBoolInUse = FALSE; + pTxContext->bBoolInUse = false; } - // allocate rcb mem + /* allocate RCB mem */ pDevice->pRCBMem = kzalloc((sizeof(RCB) * pDevice->cbRD), GFP_KERNEL); if (pDevice->pRCBMem == NULL) { DBG_PRT(MSG_LEVEL_ERR,KERN_ERR "%s : alloc rx usb context failed\n", pDevice->dev->name); @@ -833,7 +859,7 @@ static BOOL device_alloc_bufs(PSDevice pDevice) { pDevice->apRCB[ii] = pRCB; pRCB->pDevice = (void *) pDevice; - //allocate URBs + /* allocate URBs */ pRCB->pUrb = usb_alloc_urb(0, GFP_ATOMIC); if (pRCB->pUrb == NULL) { @@ -846,7 +872,7 @@ static BOOL device_alloc_bufs(PSDevice pDevice) { goto free_rx_tx; } pRCB->skb->dev = pDevice->dev; - pRCB->bBoolInUse = FALSE; + pRCB->bBoolInUse = false; EnqueueRCB(pDevice->FirstRecvFreeList, pDevice->LastRecvFreeList, pRCB); pDevice->NumRecvFreeList++; pRCB++; @@ -874,7 +900,7 @@ static BOOL device_alloc_bufs(PSDevice pDevice) { goto free_rx_tx; } - return TRUE; + return true; free_rx_tx: device_free_rx_bufs(pDevice); @@ -882,15 +908,16 @@ free_rx_tx: free_tx: device_free_tx_bufs(pDevice); - return FALSE; + return false; } -static BOOL device_init_defrag_cb(PSDevice pDevice) { - int i; - PSDeFragControlBlock pDeF; +static bool device_init_defrag_cb(struct vnt_private *pDevice) +{ + int i; + PSDeFragControlBlock pDeF; /* Init the fragment ctl entries */ for (i = 0; i < CB_MAX_RX_FRAG; i++) { @@ -903,18 +930,19 @@ static BOOL device_init_defrag_cb(PSDevice pDevice) { } pDevice->cbDFCB = CB_MAX_RX_FRAG; pDevice->cbFreeDFCB = pDevice->cbDFCB; - return TRUE; + return true; free_frag: device_free_frag_bufs(pDevice); - return FALSE; + return false; } -static void device_free_frag_bufs(PSDevice pDevice) { - PSDeFragControlBlock pDeF; - int i; +static void device_free_frag_bufs(struct vnt_private *pDevice) +{ + PSDeFragControlBlock pDeF; + int i; for (i = 0; i < CB_MAX_RX_FRAG; i++) { @@ -927,36 +955,39 @@ static void device_free_frag_bufs(PSDevice pDevice) { -BOOL device_alloc_frag_buf(PSDevice pDevice, PSDeFragControlBlock pDeF) { +int device_alloc_frag_buf(struct vnt_private *pDevice, + PSDeFragControlBlock pDeF) +{ pDeF->skb = dev_alloc_skb((int)pDevice->rx_buf_sz); if (pDeF->skb == NULL) - return FALSE; + return false; ASSERT(pDeF->skb); pDeF->skb->dev = pDevice->dev; - return TRUE; + return true; } /*-----------------------------------------------------------------*/ -static int device_open(struct net_device *dev) { - PSDevice pDevice=(PSDevice) netdev_priv(dev); +static int device_open(struct net_device *dev) +{ + struct vnt_private *pDevice = netdev_priv(dev); - pDevice->fWPA_Authened = FALSE; + pDevice->fWPA_Authened = false; DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " device_open...\n"); pDevice->rx_buf_sz = MAX_TOTAL_SIZE_WITH_ALL_HEADERS; - if (device_alloc_bufs(pDevice) == FALSE) { + if (device_alloc_bufs(pDevice) == false) { DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " device_alloc_bufs fail... \n"); return -ENOMEM; } - if (device_init_defrag_cb(pDevice)== FALSE) { + if (device_init_defrag_cb(pDevice)== false) { DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " Initial defragment cb fail \n"); goto free_rx_tx; } @@ -967,25 +998,26 @@ static int device_open(struct net_device *dev) { MP_SET_FLAG(pDevice, fMP_POST_READS); MP_SET_FLAG(pDevice, fMP_POST_WRITES); - //read config file + /* read config file */ Read_config_file(pDevice); - if (device_init_registers(pDevice, DEVICE_INIT_COLD) == FALSE) { + if (device_init_registers(pDevice, DEVICE_INIT_COLD) == false) { DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " init register fail\n"); goto free_all; } device_set_multi(pDevice->dev); - // Init for Key Management + /* init for key management */ KeyvInitTable(pDevice,&pDevice->sKey); - memcpy(pDevice->sMgmtObj.abyMACAddr, pDevice->abyCurrentNetAddr, ETH_ALEN); + memcpy(pDevice->vnt_mgmt.abyMACAddr, + pDevice->abyCurrentNetAddr, ETH_ALEN); memcpy(pDevice->dev->dev_addr, pDevice->abyCurrentNetAddr, ETH_ALEN); - pDevice->bStopTx0Pkt = FALSE; - pDevice->bStopDataPkt = FALSE; - pDevice->bRoaming = FALSE; - pDevice->bIsRoaming = FALSE; - pDevice->bEnableRoaming = FALSE; + pDevice->bStopTx0Pkt = false; + pDevice->bStopDataPkt = false; + pDevice->bRoaming = false; + pDevice->bIsRoaming = false; + pDevice->bEnableRoaming = false; if (pDevice->bDiversityRegCtlON) { device_init_diversity_timer(pDevice); } @@ -994,27 +1026,27 @@ static int device_open(struct net_device *dev) { tasklet_init(&pDevice->RxMngWorkItem, (void *)RXvMngWorkItem, (unsigned long)pDevice); tasklet_init(&pDevice->ReadWorkItem, (void *)RXvWorkItem, (unsigned long)pDevice); tasklet_init(&pDevice->EventWorkItem, (void *)INTvWorkItem, (unsigned long)pDevice); - add_timer(&(pDevice->sMgmtObj.sTimerSecondCallback)); - pDevice->int_interval = 100; //Max 100 microframes. + add_timer(&pDevice->vnt_mgmt.sTimerSecondCallback); + pDevice->int_interval = 100; /* max 100 microframes */ pDevice->eEncryptionStatus = Ndis802_11EncryptionDisabled; - pDevice->bIsRxWorkItemQueued = TRUE; - pDevice->fKillEventPollingThread = FALSE; - pDevice->bEventAvailable = FALSE; + pDevice->bIsRxWorkItemQueued = true; + pDevice->fKillEventPollingThread = false; + pDevice->bEventAvailable = false; - pDevice->bWPADEVUp = FALSE; - pDevice->bwextstep0 = FALSE; - pDevice->bwextstep1 = FALSE; - pDevice->bwextstep2 = FALSE; - pDevice->bwextstep3 = FALSE; - pDevice->bWPASuppWextEnabled = FALSE; + pDevice->bWPADEVUp = false; + pDevice->bwextstep0 = false; + pDevice->bwextstep1 = false; + pDevice->bwextstep2 = false; + pDevice->bwextstep3 = false; + pDevice->bWPASuppWextEnabled = false; pDevice->byReAssocCount = 0; RXvWorkItem(pDevice); INTvWorkItem(pDevice); - // Patch: if WEP key already set by iwconfig but device not yet open - if ((pDevice->bEncryptionEnable == TRUE) && (pDevice->bTransmitKey == TRUE)) { + /* if WEP key already set by iwconfig but device not yet open */ + if ((pDevice->bEncryptionEnable == true) && (pDevice->bTransmitKey == true)) { spin_lock_irq(&pDevice->lock); KeybSetDefaultKey( pDevice, &(pDevice->sKey), @@ -1028,14 +1060,10 @@ static int device_open(struct net_device *dev) { pDevice->eEncryptionStatus = Ndis802_11Encryption1Enabled; } - if (pDevice->sMgmtObj.eConfigMode == WMAC_CONFIG_AP) { + if (pDevice->vnt_mgmt.eConfigMode == WMAC_CONFIG_AP) bScheduleCommand((void *) pDevice, WLAN_CMD_RUN_AP, NULL); - } - else { - //mike:mark@2008-11-10 - bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL); - /* bScheduleCommand((void *) pDevice, WLAN_CMD_SSID, NULL); */ - } + else + bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL); netif_stop_queue(pDevice->dev); @@ -1061,13 +1089,13 @@ free_rx_tx: -static int device_close(struct net_device *dev) { - PSDevice pDevice=(PSDevice) netdev_priv(dev); - PSMgmtObject pMgmt = &(pDevice->sMgmtObj); - - int uu; +static int device_close(struct net_device *dev) +{ + struct vnt_private *pDevice = netdev_priv(dev); + struct vnt_manager *pMgmt = &pDevice->vnt_mgmt; + int uu; - DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "device_close1 \n"); + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "device_close1\n"); if (pDevice == NULL) return -ENODEV; @@ -1078,22 +1106,22 @@ static int device_close(struct net_device *dev) { memset(pMgmt->abyDesireSSID, 0, WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1); - pMgmt->bShareKeyAlgorithm = FALSE; - pDevice->bEncryptionEnable = FALSE; + pMgmt->bShareKeyAlgorithm = false; + pDevice->bEncryptionEnable = false; pDevice->eEncryptionStatus = Ndis802_11EncryptionDisabled; spin_lock_irq(&pDevice->lock); for (uu = 0; uu < MAX_KEY_TABLE; uu++) MACvDisableKeyEntry(pDevice,uu); spin_unlock_irq(&pDevice->lock); - if ((pDevice->flags & DEVICE_FLAGS_UNPLUG) == FALSE) { + if ((pDevice->flags & DEVICE_FLAGS_UNPLUG) == false) { MACbShutdown(pDevice); } netif_stop_queue(pDevice->dev); MP_SET_FLAG(pDevice, fMP_DISCONNECTED); MP_CLEAR_FLAG(pDevice, fMP_POST_WRITES); MP_CLEAR_FLAG(pDevice, fMP_POST_READS); - pDevice->fKillEventPollingThread = TRUE; + pDevice->fKillEventPollingThread = true; del_timer(&pDevice->sTimerCommand); del_timer(&pMgmt->sTimerSecondCallback); @@ -1108,11 +1136,11 @@ static int device_close(struct net_device *dev) { tasklet_kill(&pDevice->ReadWorkItem); tasklet_kill(&pDevice->EventWorkItem); - pDevice->bRoaming = FALSE; - pDevice->bIsRoaming = FALSE; - pDevice->bEnableRoaming = FALSE; - pDevice->bCmdRunning = FALSE; - pDevice->bLinkPass = FALSE; + pDevice->bRoaming = false; + pDevice->bIsRoaming = false; + pDevice->bEnableRoaming = false; + pDevice->bCmdRunning = false; + pDevice->bLinkPass = false; memset(pMgmt->abyCurrBSSID, 0, 6); pMgmt->eCurrState = WMAC_STATE_IDLE; @@ -1136,7 +1164,7 @@ static int device_close(struct net_device *dev) { static void vt6656_disconnect(struct usb_interface *intf) { - PSDevice device = usb_get_intfdata(intf); + struct vnt_private *device = usb_get_intfdata(intf); if (!device) return; @@ -1156,7 +1184,7 @@ static void vt6656_disconnect(struct usb_interface *intf) static int device_dma0_tx_80211(struct sk_buff *skb, struct net_device *dev) { - PSDevice pDevice = netdev_priv(dev); + struct vnt_private *pDevice = netdev_priv(dev); spin_lock_irq(&pDevice->lock); @@ -1172,7 +1200,7 @@ static int device_dma0_tx_80211(struct sk_buff *skb, struct net_device *dev) static int device_xmit(struct sk_buff *skb, struct net_device *dev) { - PSDevice pDevice = netdev_priv(dev); + struct vnt_private *pDevice = netdev_priv(dev); struct net_device_stats *stats = &pDevice->stats; spin_lock_irq(&pDevice->lock); @@ -1217,7 +1245,7 @@ static inline u32 ether_crc(int length, unsigned char *data) return crc; } -//find out the start position of str2 from str1 +/* find out the start position of str2 from str1 */ static unsigned char *kstrstr(const unsigned char *str1, const unsigned char *str2) { int str1_len = strlen(str1); @@ -1246,37 +1274,37 @@ static int Config_FileGetParameter(unsigned char *string, strcat(buf1, "="); source+=strlen(buf1); -//find target string start point + /* find target string start point */ start_p = kstrstr(source,buf1); if (start_p == NULL) - return FALSE; + return false; -//check if current config line is marked by "#" ?? + /* check if current config line is marked by "#" */ for (ii = 1; ; ii++) { if (memcmp(start_p - ii, "\n", 1) == 0) break; if (memcmp(start_p - ii, "#", 1) == 0) - return FALSE; + return false; } -//find target string end point + /* find target string end point */ end_p = kstrstr(start_p,"\n"); - if (end_p == NULL) { //can't find "\n",but don't care - end_p=start_p+strlen(start_p); //no include "\n" - } + if (end_p == NULL) { /* can't find "\n", but don't care */ + end_p = start_p + strlen(start_p); /* no include "\n" */ + } memset(buf2,0,100); - memcpy(buf2,start_p,end_p-start_p); //get the target line + memcpy(buf2, start_p, end_p-start_p); /* get the target line */ buf2[end_p-start_p]='\0'; - //find value + /* find value */ start_p = kstrstr(buf2,"="); if (start_p == NULL) - return FALSE; + return false; memset(buf1,0,100); strcpy(buf1,start_p+1); - //except space + /* except space */ tmp_p = buf1; while(*tmp_p != 0x00) { if(*tmp_p==' ') @@ -1286,29 +1314,22 @@ static int Config_FileGetParameter(unsigned char *string, } memcpy(dest,tmp_p,strlen(tmp_p)); - return TRUE; + return true; } -//if read fail,return NULL,or return data pointer; -static unsigned char *Config_FileOperation(PSDevice pDevice) +/* if read fails, return NULL, or return data pointer */ +static unsigned char *Config_FileOperation(struct vnt_private *pDevice) { unsigned char *config_path = CONFIG_PATH; unsigned char *buffer = NULL; struct file *filp=NULL; mm_segment_t old_fs = get_fs(); - //int oldfsuid=0,oldfsgid=0; + int result = 0; set_fs (KERNEL_DS); - /* Can't do this anymore, so we rely on correct filesystem permissions: - //Make sure a caller can read or write power as root - oldfsuid=current->fsuid; - oldfsgid=current->fsgid; - current->fsuid = 0; - current->fsgid = 0; - */ - - //open file + + /* open file */ filp = filp_open(config_path, O_RDWR, 0); if (IS_ERR(filp)) { printk("Config_FileOperation file Not exist\n"); @@ -1341,11 +1362,6 @@ error1: error2: set_fs (old_fs); - /* - current->fsuid=oldfsuid; - current->fsgid=oldfsgid; - */ - if(result!=0) { kfree(buffer); buffer=NULL; @@ -1353,13 +1369,14 @@ if(result!=0) { return buffer; } -//return --->-1:fail; >=0:successful -static int Read_config_file(PSDevice pDevice) { - int result = 0; - unsigned char tmpbuffer[100]; - unsigned char *buffer = NULL; +/* return --->-1:fail; >=0:successful */ +static int Read_config_file(struct vnt_private *pDevice) +{ + int result = 0; + unsigned char tmpbuffer[100]; + unsigned char *buffer = NULL; - //init config setting + /* init config setting */ pDevice->config_file.ZoneType = -1; pDevice->config_file.eAuthenMode = -1; pDevice->config_file.eEncryptionStatus = -1; @@ -1370,10 +1387,10 @@ static int Read_config_file(PSDevice pDevice) { return result; } -//get zonetype +/* get zonetype */ { memset(tmpbuffer,0,sizeof(tmpbuffer)); - if(Config_FileGetParameter("ZONETYPE",tmpbuffer,buffer) ==TRUE) { + if(Config_FileGetParameter("ZONETYPE",tmpbuffer,buffer) ==true) { if(memcmp(tmpbuffer,"USA",3)==0) { pDevice->config_file.ZoneType=ZoneType_USA; } @@ -1389,15 +1406,15 @@ static int Read_config_file(PSDevice pDevice) { } } -//get other parameter +/* get other parameter */ { memset(tmpbuffer,0,sizeof(tmpbuffer)); - if(Config_FileGetParameter("AUTHENMODE",tmpbuffer,buffer)==TRUE) { + if(Config_FileGetParameter("AUTHENMODE",tmpbuffer,buffer)==true) { pDevice->config_file.eAuthenMode = (int) simple_strtol(tmpbuffer, NULL, 10); } memset(tmpbuffer,0,sizeof(tmpbuffer)); - if(Config_FileGetParameter("ENCRYPTIONMODE",tmpbuffer,buffer)==TRUE) { + if(Config_FileGetParameter("ENCRYPTIONMODE",tmpbuffer,buffer)==true) { pDevice->config_file.eEncryptionStatus= (int) simple_strtol(tmpbuffer, NULL, 10); } } @@ -1406,15 +1423,16 @@ static int Read_config_file(PSDevice pDevice) { return result; } -static void device_set_multi(struct net_device *dev) { - PSDevice pDevice = (PSDevice) netdev_priv(dev); - PSMgmtObject pMgmt = &(pDevice->sMgmtObj); - u32 mc_filter[2]; - int ii; - struct netdev_hw_addr *ha; - BYTE pbyData[8] = {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; - BYTE byTmpMode = 0; - int rc; +static void device_set_multi(struct net_device *dev) +{ + struct vnt_private *pDevice = netdev_priv(dev); + struct vnt_manager *pMgmt = &pDevice->vnt_mgmt; + struct netdev_hw_addr *ha; + u32 mc_filter[2]; + int ii; + u8 pbyData[8] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; + u8 byTmpMode = 0; + int rc; spin_lock_irq(&pDevice->lock); @@ -1429,9 +1447,9 @@ static void device_set_multi(struct net_device *dev) { DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "pDevice->byRxMode in= %x\n", pDevice->byRxMode); - if (dev->flags & IFF_PROMISC) { // Set promiscuous. + if (dev->flags & IFF_PROMISC) { /* set promiscuous mode */ DBG_PRT(MSG_LEVEL_ERR,KERN_NOTICE "%s: Promiscuous mode enabled.\n", dev->name); - // Unconditionally log net taps. + /* unconditionally log net taps */ pDevice->byRxMode |= (RCR_MULTICAST|RCR_BROADCAST|RCR_UNICAST); } else if ((netdev_mc_count(dev) > pDevice->multicast_limit) || @@ -1460,7 +1478,10 @@ static void device_set_multi(struct net_device *dev) { } if (pMgmt->eConfigMode == WMAC_CONFIG_AP) { - // If AP mode, don't enable RCR_UNICAST. Since hw only compare addr1 with local mac. + /* + * If AP mode, don't enable RCR_UNICAST since HW only compares + * addr1 with local MAC + */ pDevice->byRxMode |= (RCR_MULTICAST|RCR_BROADCAST); pDevice->byRxMode &= ~(RCR_UNICAST); } @@ -1472,14 +1493,14 @@ static void device_set_multi(struct net_device *dev) { static struct net_device_stats *device_get_stats(struct net_device *dev) { - PSDevice pDevice=(PSDevice) netdev_priv(dev); + struct vnt_private *pDevice = netdev_priv(dev); - return &pDevice->stats; + return &pDevice->stats; } static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) { - PSDevice pDevice = (PSDevice)netdev_priv(dev); + struct vnt_private *pDevice = netdev_priv(dev); struct iwreq *wrq = (struct iwreq *) rq; int rc = 0; @@ -1524,9 +1545,6 @@ static int ethtool_ioctl(struct net_device *dev, void *useraddr) return -EOPNOTSUPP; } - -/*------------------------------------------------------------------*/ - MODULE_DEVICE_TABLE(usb, vt6656_table); static struct usb_driver vt6656_driver = { |