Unify struct ft1000_info between ft1000-usb and ft1000-pcmcia and move it to
common ft1000.h.
ft1000-pcmcia seems to work. Please test ft1000-usb.
Signed-off-by: Ondrej Zary <[email protected]>
---
drivers/staging/ft1000/ft1000-pcmcia/ft1000.h | 33 +-----
drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c | 21 ++-
drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c | 10 +-
drivers/staging/ft1000/ft1000-usb/ft1000_debug.c | 147 ++++++++++----------
.../staging/ft1000/ft1000-usb/ft1000_download.c | 70 +++++-----
drivers/staging/ft1000/ft1000-usb/ft1000_hw.c | 99 +++++++-------
drivers/staging/ft1000/ft1000-usb/ft1000_proc.c | 4 +-
drivers/staging/ft1000/ft1000-usb/ft1000_usb.c | 30 ++--
drivers/staging/ft1000/ft1000-usb/ft1000_usb.h | 54 +------
drivers/staging/ft1000/ft1000.h | 35 +++++
10 files changed, 236 insertions(+), 267 deletions(-)
diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h b/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h
index adb436e..65f7ab6 100644
--- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h
+++ b/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h
@@ -31,41 +31,10 @@
#define SUCCESS 0x00
#define FAILURE 0x01
-struct ft1000_info {
- struct net_device_stats stats;
- u16 DrvErrNum;
- u16 AsicID;
+struct ft1000_pcmcia {
int PktIntfErr;
- int CardReady;
- int registered;
- int mediastate;
u16 packetseqnum;
- u8 squeseqnum; /* sequence number on slow queue */
- spinlock_t dpram_lock;
- u16 fifo_cnt;
- u8 DspVer[DSPVERSZ]; /* DSP version number */
- u8 HwSerNum[HWSERNUMSZ]; /* Hardware Serial Number */
- u8 Sku[SKUSZ]; /* SKU */
- u8 eui64[EUISZ]; /* EUI64 */
- time_t ConTm; /* Connection Time */
- u16 LedStat;
- u16 ConStat;
- u16 ProgConStat;
- u8 ProductMode[MODESZ];
- u8 RfCalVer[CALVERSZ];
- u8 RfCalDate[CALDATESZ];
- u16 DSP_TIME[4];
- struct list_head prov_list;
- u16 DSPInfoBlklen;
- int (*ft1000_reset)(void *);
void *link;
- u16 DSPInfoBlk[MAX_DSP_SESS_REC];
- union {
- u16 Rec[MAX_DSP_SESS_REC];
- u32 MagRec[MAX_DSP_SESS_REC/2];
- } DSPSess;
- struct proc_dir_entry *proc_ft1000;
- char netdevname[IFNAMSIZ];
};
struct pcmcia_device;
diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c
index 86a680c..3fd499f 100644
--- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c
+++ b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c
@@ -328,11 +328,12 @@ static void ft1000_disable_interrupts(struct net_device *dev)
static void ft1000_reset_asic(struct net_device *dev)
{
struct ft1000_info *info = netdev_priv(dev);
+ struct ft1000_pcmcia *pcmcia = info->priv;
u16 tempword;
DEBUG(1, "ft1000_hw:ft1000_reset_asic called\n");
- (*info->ft1000_reset) (info->link);
+ (*info->ft1000_reset) (pcmcia->link);
// Let's use the register provided by the Magnemite ASIC to reset the
// ASIC and DSP.
@@ -1397,12 +1398,13 @@ static int ft1000_parse_dpram_msg(struct net_device *dev)
static void ft1000_flush_fifo(struct net_device *dev, u16 DrvErrNum)
{
struct ft1000_info *info = netdev_priv(dev);
+ struct ft1000_pcmcia *pcmcia = info->priv;
u16 i;
u32 templong;
u16 tempword;
DEBUG(1, "ft1000:ft1000_hw:ft1000_flush_fifo called\n");
- if (info->PktIntfErr > MAX_PH_ERR) {
+ if (pcmcia->PktIntfErr > MAX_PH_ERR) {
if (info->AsicID == ELECTRABUZZ_ID) {
info->DSP_TIME[0] =
ft1000_read_dpram(dev, FT1000_DSP_TIMER0);
@@ -1491,7 +1493,7 @@ static void ft1000_flush_fifo(struct net_device *dev, u16 DrvErrNum)
FIFO_FLUSH_BADCNT;
} else {
// Let's assume that we really flush the FIFO
- info->PktIntfErr++;
+ pcmcia->PktIntfErr++;
return;
}
} else {
@@ -1522,7 +1524,7 @@ static void ft1000_flush_fifo(struct net_device *dev, u16 DrvErrNum)
DEBUG(0, "FT1000_REG_MAG_DFSR = 0x%x\n", tempword);
}
if (DrvErrNum) {
- info->PktIntfErr++;
+ pcmcia->PktIntfErr++;
}
}
}
@@ -1731,6 +1733,7 @@ static int ft1000_copy_up_pkt(struct net_device *dev)
static int ft1000_copy_down_pkt(struct net_device *dev, u16 * packet, u16 len)
{
struct ft1000_info *info = netdev_priv(dev);
+ struct ft1000_pcmcia *pcmcia = info->priv;
union {
struct pseudo_hdr blk;
u16 buff[sizeof(struct pseudo_hdr) >> 1];
@@ -1780,7 +1783,7 @@ static int ft1000_copy_down_pkt(struct net_device *dev, u16 * packet, u16 len)
pseudo.blk.control = 0;
pseudo.blk.rsvd1 = 0;
pseudo.blk.seq_num = 0;
- pseudo.blk.rsvd2 = info->packetseqnum++;
+ pseudo.blk.rsvd2 = pcmcia->packetseqnum++;
pseudo.blk.qos_class = 0;
/* Calculate pseudo header checksum */
pseudo.blk.checksum = pseudo.buff[0];
@@ -2058,6 +2061,8 @@ void stop_ft1000_card(struct net_device *dev)
kfree(ptr);
}
+ kfree(info->priv);
+
if (info->registered) {
unregister_netdev(dev);
info->registered = 0;
@@ -2100,6 +2105,7 @@ struct net_device *init_ft1000_card(struct pcmcia_device *link,
void *ft1000_reset)
{
struct ft1000_info *info;
+ struct ft1000_pcmcia *pcmcia;
struct net_device *dev;
static const struct net_device_ops ft1000ops = // Slavius 21.10.2009 due to kernel changes
@@ -2141,10 +2147,13 @@ struct net_device *init_ft1000_card(struct pcmcia_device *link,
memset(&info->stats, 0, sizeof(struct net_device_stats));
+ info->priv = kzalloc(sizeof(struct ft1000_pcmcia), GFP_KERNEL);
+ pcmcia = info->priv;
+ pcmcia->link = link;
+
spin_lock_init(&info->dpram_lock);
info->DrvErrNum = 0;
info->registered = 1;
- info->link = link;
info->ft1000_reset = ft1000_reset;
info->mediastate = 0;
info->fifo_cnt = 0;
diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c
index 72727c6..5337b41 100644
--- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c
+++ b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c
@@ -175,8 +175,8 @@ static int ft1000NotifyProc(struct notifier_block *this, unsigned long event,
switch (event) {
case NETDEV_CHANGENAME:
- remove_proc_entry(info->netdevname, info->proc_ft1000);
- create_proc_read_entry(dev->name, 0644, info->proc_ft1000,
+ remove_proc_entry(info->netdevname, info->ft1000_proc_dir);
+ create_proc_read_entry(dev->name, 0644, info->ft1000_proc_dir,
ft1000ReadProc, dev);
snprintf(info->netdevname, IFNAMSIZ, "%s", dev->name);
break;
@@ -194,8 +194,8 @@ void ft1000InitProc(struct net_device *dev)
info = netdev_priv(dev);
- info->proc_ft1000 = proc_mkdir(FT1000_PROC, init_net.proc_net);
- create_proc_read_entry(dev->name, 0644, info->proc_ft1000,
+ info->ft1000_proc_dir = proc_mkdir(FT1000_PROC, init_net.proc_net);
+ create_proc_read_entry(dev->name, 0644, info->ft1000_proc_dir,
ft1000ReadProc, dev);
snprintf(info->netdevname, IFNAMSIZ, "%s", dev->name);
register_netdevice_notifier(&ft1000_netdev_notifier);
@@ -207,7 +207,7 @@ void ft1000CleanupProc(struct net_device *dev)
info = netdev_priv(dev);
- remove_proc_entry(dev->name, info->proc_ft1000);
+ remove_proc_entry(dev->name, info->ft1000_proc_dir);
remove_proc_entry(FT1000_PROC, init_net.proc_net);
unregister_netdevice_notifier(&ft1000_netdev_notifier);
}
diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c b/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c
index 6d911fd..fb197ab 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c
@@ -139,27 +139,26 @@ void ft1000_free_buffer(struct dpram_blk *pdpram_blk, struct list_head *plist)
//---------------------------------------------------------------------------
int ft1000_create_dev(struct ft1000_device *dev)
{
- struct ft1000_info *info = netdev_priv(dev->net);
int result;
int i;
struct dentry *dir, *file;
struct ft1000_debug_dirs *tmp;
// make a new device name
- sprintf(info->DeviceName, "%s%d", "FT1000_", info->CardNumber);
+ sprintf(dev->DeviceName, "%s%d", "FT1000_", dev->CardNumber);
DEBUG("%s: number of instance = %d\n", __func__, ft1000_flarion_cnt);
- DEBUG("DeviceCreated = %x\n", info->DeviceCreated);
+ DEBUG("DeviceCreated = %x\n", dev->DeviceCreated);
- if (info->DeviceCreated)
+ if (dev->DeviceCreated)
{
- DEBUG("%s: \"%s\" already registered\n", __func__, info->DeviceName);
+ DEBUG("%s: \"%s\" already registered\n", __func__, dev->DeviceName);
return -EIO;
}
// register the device
- DEBUG("%s: \"%s\" debugfs device registration\n", __func__, info->DeviceName);
+ DEBUG("%s: \"%s\" debugfs device registration\n", __func__, dev->DeviceName);
tmp = kmalloc(sizeof(struct ft1000_debug_dirs), GFP_KERNEL);
if (tmp == NULL) {
@@ -167,7 +166,7 @@ int ft1000_create_dev(struct ft1000_device *dev)
goto fail;
}
- dir = debugfs_create_dir(info->DeviceName, NULL);
+ dir = debugfs_create_dir(dev->DeviceName, NULL);
if (IS_ERR(dir)) {
result = PTR_ERR(dir);
goto debug_dir_fail;
@@ -182,27 +181,27 @@ int ft1000_create_dev(struct ft1000_device *dev)
tmp->dent = dir;
tmp->file = file;
- tmp->int_number = info->CardNumber;
- list_add(&(tmp->list), &(info->nodes.list));
+ tmp->int_number = dev->CardNumber;
+ list_add(&(tmp->list), &(dev->nodes.list));
- DEBUG("%s: registered debugfs directory \"%s\"\n", __func__, info->DeviceName);
+ DEBUG("%s: registered debugfs directory \"%s\"\n", __func__, dev->DeviceName);
// initialize application information
- info->appcnt = 0;
+ dev->appcnt = 0;
for (i=0; i<MAX_NUM_APP; i++) {
- info->app_info[i].nTxMsg = 0;
- info->app_info[i].nRxMsg = 0;
- info->app_info[i].nTxMsgReject = 0;
- info->app_info[i].nRxMsgMiss = 0;
- info->app_info[i].fileobject = NULL;
- info->app_info[i].app_id = i+1;
- info->app_info[i].DspBCMsgFlag = 0;
- info->app_info[i].NumOfMsg = 0;
- init_waitqueue_head(&info->app_info[i].wait_dpram_msg);
- INIT_LIST_HEAD (&info->app_info[i].app_sqlist);
+ dev->app_info[i].nTxMsg = 0;
+ dev->app_info[i].nRxMsg = 0;
+ dev->app_info[i].nTxMsgReject = 0;
+ dev->app_info[i].nRxMsgMiss = 0;
+ dev->app_info[i].fileobject = NULL;
+ dev->app_info[i].app_id = i+1;
+ dev->app_info[i].DspBCMsgFlag = 0;
+ dev->app_info[i].NumOfMsg = 0;
+ init_waitqueue_head(&dev->app_info[i].wait_dpram_msg);
+ INIT_LIST_HEAD (&dev->app_info[i].app_sqlist);
}
- info->DeviceCreated = TRUE;
+ dev->DeviceCreated = TRUE;
ft1000_flarion_cnt++;
return 0;
@@ -225,9 +224,10 @@ fail:
// Notes: Only called by cleanup_module().
//
//---------------------------------------------------------------------------
-void ft1000_destroy_dev(struct net_device *dev)
+void ft1000_destroy_dev(struct net_device *netdev)
{
- struct ft1000_info *info = netdev_priv(dev);
+ struct ft1000_info *info = netdev_priv(netdev);
+ struct ft1000_device *dev = info->priv;
int i;
struct dpram_blk *pdpram_blk;
struct dpram_blk *ptr;
@@ -238,12 +238,12 @@ void ft1000_destroy_dev(struct net_device *dev)
- if (info->DeviceCreated)
+ if (dev->DeviceCreated)
{
ft1000_flarion_cnt--;
- list_for_each_safe(pos, q, &info->nodes.list) {
+ list_for_each_safe(pos, q, &dev->nodes.list) {
dir = list_entry(pos, struct ft1000_debug_dirs, list);
- if (dir->int_number == info->CardNumber) {
+ if (dir->int_number == dev->CardNumber) {
debugfs_remove(dir->file);
debugfs_remove(dir->dent);
list_del(pos);
@@ -251,17 +251,17 @@ void ft1000_destroy_dev(struct net_device *dev)
}
}
DEBUG("%s: unregistered device \"%s\"\n", __func__,
- info->DeviceName);
+ dev->DeviceName);
// Make sure we free any memory reserve for slow Queue
for (i=0; i<MAX_NUM_APP; i++) {
- while (list_empty(&info->app_info[i].app_sqlist) == 0) {
- pdpram_blk = list_entry(info->app_info[i].app_sqlist.next, struct dpram_blk, list);
+ while (list_empty(&dev->app_info[i].app_sqlist) == 0) {
+ pdpram_blk = list_entry(dev->app_info[i].app_sqlist.next, struct dpram_blk, list);
list_del(&pdpram_blk->list);
ft1000_free_buffer(pdpram_blk, &freercvpool);
}
- wake_up_interruptible(&info->app_info[i].wait_dpram_msg);
+ wake_up_interruptible(&dev->app_info[i].wait_dpram_msg);
}
// Remove buffer allocated for receive command data
@@ -273,7 +273,7 @@ void ft1000_destroy_dev(struct net_device *dev)
kfree(ptr);
}
}
- info->DeviceCreated = FALSE;
+ dev->DeviceCreated = FALSE;
}
@@ -301,17 +301,17 @@ static int ft1000_open (struct inode *inode, struct file *file)
info = file->private_data = netdev_priv(dev->net);
- DEBUG("f_owner = %p number of application = %d\n", (&file->f_owner), info->appcnt );
+ DEBUG("f_owner = %p number of application = %d\n", (&file->f_owner), dev->appcnt );
// Check if maximum number of application exceeded
- if (info->appcnt > MAX_NUM_APP) {
+ if (dev->appcnt > MAX_NUM_APP) {
DEBUG("Maximum number of application exceeded\n");
return -EACCES;
}
// Search for available application info block
for (i=0; i<MAX_NUM_APP; i++) {
- if ( (info->app_info[i].fileobject == NULL) ) {
+ if ( (dev->app_info[i].fileobject == NULL) ) {
break;
}
}
@@ -322,12 +322,12 @@ static int ft1000_open (struct inode *inode, struct file *file)
return -EACCES;
}
- info->appcnt++;
- info->app_info[i].fileobject = &file->f_owner;
- info->app_info[i].nTxMsg = 0;
- info->app_info[i].nRxMsg = 0;
- info->app_info[i].nTxMsgReject = 0;
- info->app_info[i].nRxMsgMiss = 0;
+ dev->appcnt++;
+ dev->app_info[i].fileobject = &file->f_owner;
+ dev->app_info[i].nTxMsg = 0;
+ dev->app_info[i].nRxMsg = 0;
+ dev->app_info[i].nTxMsgReject = 0;
+ dev->app_info[i].nRxMsgMiss = 0;
nonseekable_open(inode, file);
return 0;
@@ -347,8 +347,9 @@ static int ft1000_open (struct inode *inode, struct file *file)
static unsigned int ft1000_poll_dev(struct file *file, poll_table *wait)
{
- struct net_device *dev = file->private_data;
- struct ft1000_info *info;
+ struct net_device *netdev = file->private_data;
+ struct ft1000_info *info = netdev_priv(netdev);
+ struct ft1000_device *dev = info->priv;
int i;
//DEBUG("ft1000_poll_dev called\n");
@@ -357,12 +358,10 @@ static unsigned int ft1000_poll_dev(struct file *file, poll_table *wait)
return (-EBADF);
}
- info = netdev_priv(dev);
-
// Search for matching file object
for (i=0; i<MAX_NUM_APP; i++) {
- if ( info->app_info[i].fileobject == &file->f_owner) {
- //DEBUG("FT1000:ft1000_ioctl: Message is for AppId = %d\n", info->app_info[i].app_id);
+ if ( dev->app_info[i].fileobject == &file->f_owner) {
+ //DEBUG("FT1000:ft1000_ioctl: Message is for AppId = %d\n", dev->app_info[i].app_id);
break;
}
}
@@ -373,12 +372,12 @@ static unsigned int ft1000_poll_dev(struct file *file, poll_table *wait)
return ( -EACCES );
}
- if (list_empty(&info->app_info[i].app_sqlist) == 0) {
+ if (list_empty(&dev->app_info[i].app_sqlist) == 0) {
DEBUG("FT1000:ft1000_poll_dev:Message detected in slow queue\n");
return(POLLIN | POLLRDNORM | POLLPRI);
}
- poll_wait (file, &info->app_info[i].wait_dpram_msg, wait);
+ poll_wait (file, &dev->app_info[i].wait_dpram_msg, wait);
//DEBUG("FT1000:ft1000_poll_dev:Polling for data from DSP\n");
return (0);
@@ -428,7 +427,7 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
//DEBUG("FT1000:ft1000_ioctl:command = 0x%x argument = 0x%8x\n", command, (u32)argument);
info = file->private_data;
- ft1000dev = info->pFt1000Dev;
+ ft1000dev = info->priv;
cmd = _IOC_NR(command);
//DEBUG("FT1000:ft1000_ioctl:cmd = 0x%x\n", cmd);
@@ -444,8 +443,8 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
if (tempword == DSPBCMSGID) {
// Search for matching file object
for (i=0; i<MAX_NUM_APP; i++) {
- if ( info->app_info[i].fileobject == &file->f_owner) {
- info->app_info[i].DspBCMsgFlag = 1;
+ if (ft1000dev->app_info[i].fileobject == &file->f_owner) {
+ ft1000dev->app_info[i].DspBCMsgFlag = 1;
DEBUG("FT1000:ft1000_ioctl:Registered for broadcast messages\n");
break;
}
@@ -534,15 +533,15 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
return (-EBADF);
}
- if (info->DrvMsgPend) {
+ if (ft1000dev->DrvMsgPend) {
return (-ENOTTY);
}
- if ( (info->DspAsicReset) || (info->fProvComplete == 0) ) {
+ if (ft1000dev->fProvComplete == 0) {
return (-EACCES);
}
- info->fAppMsgPend = 1;
+ ft1000dev->fAppMsgPend = 1;
if (info->CardReady) {
@@ -571,7 +570,7 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
else {
// Check if this message came from a registered application
for (i=0; i<MAX_NUM_APP; i++) {
- if ( info->app_info[i].fileobject == &file->f_owner) {
+ if (ft1000dev->app_info[i].fileobject == &file->f_owner) {
break;
}
}
@@ -632,7 +631,7 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
// Insert slow queue sequence number
ppseudo_hdr->seq_num = info->squeseqnum++;
- ppseudo_hdr->portsrc = info->app_info[app_index].app_id;
+ ppseudo_hdr->portsrc = ft1000dev->app_info[app_index].app_id;
// Calculate new checksum
ppseudo_hdr->checksum = *pmsg++;
//DEBUG("checksum = 0x%x\n", ppseudo_hdr->checksum);
@@ -645,7 +644,7 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
card_send_command(ft1000dev,(unsigned short*)dpram_data,total_len+2);
- info->app_info[app_index].nTxMsg++;
+ ft1000dev->app_info[app_index].nTxMsg++;
}
else {
result = -EINVAL;
@@ -675,8 +674,8 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
// Search for matching file object
for (i=0; i<MAX_NUM_APP; i++) {
- if ( info->app_info[i].fileobject == &file->f_owner) {
- //DEBUG("FT1000:ft1000_ioctl: Message is for AppId = %d\n", info->app_info[i].app_id);
+ if (ft1000dev->app_info[i].fileobject == &file->f_owner) {
+ //DEBUG("FT1000:ft1000_ioctl: Message is for AppId = %d\n", ft1000dev->app_info[i].app_id);
break;
}
}
@@ -690,13 +689,13 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
result = 0;
pioctl_dpram = argp;
- if (list_empty(&info->app_info[i].app_sqlist) == 0) {
+ if (list_empty(&ft1000dev->app_info[i].app_sqlist) == 0) {
//DEBUG("FT1000:ft1000_ioctl:Message detected in slow queue\n");
spin_lock_irqsave(&free_buff_lock, flags);
- pdpram_blk = list_entry(info->app_info[i].app_sqlist.next, struct dpram_blk, list);
+ pdpram_blk = list_entry(ft1000dev->app_info[i].app_sqlist.next, struct dpram_blk, list);
list_del(&pdpram_blk->list);
- info->app_info[i].NumOfMsg--;
- //DEBUG("FT1000:ft1000_ioctl:NumOfMsg for app %d = %d\n", i, info->app_info[i].NumOfMsg);
+ ft1000dev->app_info[i].NumOfMsg--;
+ //DEBUG("FT1000:ft1000_ioctl:NumOfMsg for app %d = %d\n", i, ft1000dev->app_info[i].NumOfMsg);
spin_unlock_irqrestore(&free_buff_lock, flags);
msglen = ntohs(*(u16 *)pdpram_blk->pbuffer) + PSEUDOSZ;
result = get_user(msglen, &pioctl_dpram->total_len);
@@ -723,7 +722,7 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
result = -ENOTTY;
break;
}
- info->fAppMsgPend = 0;
+ ft1000dev->fAppMsgPend = 0;
return result;
}
@@ -741,6 +740,7 @@ static int ft1000_release (struct inode *inode, struct file *file)
{
struct ft1000_info *info;
struct net_device *dev;
+ struct ft1000_device *ft1000dev;
int i;
struct dpram_blk *pdpram_blk;
@@ -748,16 +748,17 @@ static int ft1000_release (struct inode *inode, struct file *file)
dev = file->private_data;
info = netdev_priv(dev);
+ ft1000dev = info->priv;
if (ft1000_flarion_cnt == 0) {
- info->appcnt--;
+ ft1000dev->appcnt--;
return (-EBADF);
}
// Search for matching file object
for (i=0; i<MAX_NUM_APP; i++) {
- if ( info->app_info[i].fileobject == &file->f_owner) {
- //DEBUG("FT1000:ft1000_ioctl: Message is for AppId = %d\n", info->app_info[i].app_id);
+ if ( ft1000dev->app_info[i].fileobject == &file->f_owner) {
+ //DEBUG("FT1000:ft1000_ioctl: Message is for AppId = %d\n", ft1000dev->app_info[i].app_id);
break;
}
}
@@ -765,17 +766,17 @@ static int ft1000_release (struct inode *inode, struct file *file)
if (i==MAX_NUM_APP)
return 0;
- while (list_empty(&info->app_info[i].app_sqlist) == 0) {
+ while (list_empty(&ft1000dev->app_info[i].app_sqlist) == 0) {
DEBUG("Remove and free memory queue up on slow queue\n");
- pdpram_blk = list_entry(info->app_info[i].app_sqlist.next, struct dpram_blk, list);
+ pdpram_blk = list_entry(ft1000dev->app_info[i].app_sqlist.next, struct dpram_blk, list);
list_del(&pdpram_blk->list);
ft1000_free_buffer(pdpram_blk, &freercvpool);
}
// initialize application information
- info->appcnt--;
- DEBUG("ft1000_chdev:%s:appcnt = %d\n", __FUNCTION__, info->appcnt);
- info->app_info[i].fileobject = NULL;
+ ft1000dev->appcnt--;
+ DEBUG("ft1000_chdev:%s:appcnt = %d\n", __FUNCTION__, ft1000dev->appcnt);
+ ft1000dev->app_info[i].fileobject = NULL;
return 0;
}
diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_download.c b/drivers/staging/ft1000/ft1000-usb/ft1000_download.c
index 1972b72..cc00e94 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_download.c
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_download.c
@@ -188,7 +188,6 @@ static u16 get_handshake(struct ft1000_device *ft1000dev, u16 expected_value)
u16 handshake;
int loopcnt;
u32 status = 0;
- struct ft1000_info *pft1000info = netdev_priv(ft1000dev->net);
loopcnt = 0;
@@ -196,10 +195,10 @@ static u16 get_handshake(struct ft1000_device *ft1000dev, u16 expected_value)
/* Need to clear downloader doorbell if Hartley ASIC */
status = ft1000_write_register(ft1000dev, FT1000_DB_DNLD_RX,
FT1000_REG_DOORBELL);
- if (pft1000info->fcodeldr) {
+ if (ft1000dev->fcodeldr) {
DEBUG(" get_handshake: fcodeldr is %d\n",
- pft1000info->fcodeldr);
- pft1000info->fcodeldr = 0;
+ ft1000dev->fcodeldr);
+ ft1000dev->fcodeldr = 0;
status = check_usb_db(ft1000dev);
if (status != STATUS_SUCCESS) {
DEBUG("get_handshake: check_usb_db failed\n");
@@ -270,29 +269,28 @@ static u16 get_handshake_usb(struct ft1000_device *ft1000dev, u16 expected_value
u16 temp;
u32 status = 0;
- struct ft1000_info *pft1000info = netdev_priv(ft1000dev->net);
loopcnt = 0;
handshake = 0;
while (loopcnt < 100) {
- if (pft1000info->usbboot == 2) {
+ if (ft1000dev->usbboot == 2) {
status = ft1000_read_dpram32(ft1000dev, 0,
- (u8 *)&(pft1000info->tempbuf[0]), 64);
+ (u8 *)&(ft1000dev->tempbuf[0]), 64);
for (temp = 0; temp < 16; temp++) {
DEBUG("tempbuf %d = 0x%x\n", temp,
- pft1000info->tempbuf[temp]);
+ ft1000dev->tempbuf[temp]);
}
status = ft1000_read_dpram16(ft1000dev,
DWNLD_MAG1_HANDSHAKE_LOC,
(u8 *)&handshake, 1);
DEBUG("handshake from read_dpram16 = 0x%x\n",
handshake);
- if (pft1000info->dspalive == pft1000info->tempbuf[6]) {
+ if (ft1000dev->dspalive == ft1000dev->tempbuf[6]) {
handshake = 0;
} else {
- handshake = pft1000info->tempbuf[1];
- pft1000info->dspalive =
- pft1000info->tempbuf[6];
+ handshake = ft1000dev->tempbuf[1];
+ ft1000dev->dspalive =
+ ft1000dev->tempbuf[6];
}
} else {
status = ft1000_read_dpram16(ft1000dev,
@@ -336,9 +334,8 @@ static u16 get_request_type(struct ft1000_device *ft1000dev)
u32 status;
u16 tempword;
u32 tempx;
- struct ft1000_info *pft1000info = netdev_priv(ft1000dev->net);
- if (pft1000info->bootmode == 1) {
+ if (ft1000dev->bootmode == 1) {
status = fix_ft1000_read_dpram32(ft1000dev,
DWNLD_MAG1_TYPE_LOC, (u8 *)&tempx);
tempx = ntohl(tempx);
@@ -360,16 +357,15 @@ static u16 get_request_type_usb(struct ft1000_device *ft1000dev)
u32 status;
u16 tempword;
u32 tempx;
- struct ft1000_info *pft1000info = netdev_priv(ft1000dev->net);
- if (pft1000info->bootmode == 1) {
+ if (ft1000dev->bootmode == 1) {
status = fix_ft1000_read_dpram32(ft1000dev,
DWNLD_MAG1_TYPE_LOC, (u8 *)&tempx);
tempx = ntohl(tempx);
} else {
- if (pft1000info->usbboot == 2) {
- tempx = pft1000info->tempbuf[2];
- tempword = pft1000info->tempbuf[3];
+ if (ft1000dev->usbboot == 2) {
+ tempx = ft1000dev->tempbuf[2];
+ tempword = ft1000dev->tempbuf[3];
} else {
tempx = 0;
status = ft1000_read_dpram16(ft1000dev,
@@ -401,9 +397,8 @@ static long get_request_value(struct ft1000_device *ft1000dev)
u32 value;
u16 tempword;
u32 status;
- struct ft1000_info *pft1000info = netdev_priv(ft1000dev->net);
- if (pft1000info->bootmode == 1) {
+ if (ft1000dev->bootmode == 1) {
status = fix_ft1000_read_dpram32(ft1000dev,
DWNLD_MAG1_SIZE_LOC, (u8 *)&value);
value = ntohl(value);
@@ -507,7 +502,6 @@ static u32 write_blk (struct ft1000_device *ft1000dev, u16 **pUsFile, u8 **pUcFi
u16 tempword;
u16 tempbuffer[64];
u16 resultbuffer[64];
- struct ft1000_info *pft1000info = netdev_priv(ft1000dev->net);
//DEBUG("FT1000:download:start word_length = %d\n",(int)word_length);
dpram = (u16)DWNLD_MAG1_PS_HDR_LOC;
@@ -548,7 +542,7 @@ static u32 write_blk (struct ft1000_device *ft1000dev, u16 **pUsFile, u8 **pUcFi
//DEBUG("write_blk: loopcnt is %d\n", loopcnt);
//DEBUG("write_blk: bootmode = %d\n", bootmode);
//DEBUG("write_blk: dpram = %x\n", dpram);
- if (pft1000info->bootmode == 0)
+ if (ft1000dev->bootmode == 0)
{
if (dpram >= 0x3F4)
Status = ft1000_write_dpram32 (ft1000dev, dpram, (u8 *)&tempbuffer[0], 8);
@@ -718,9 +712,9 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
DEBUG("Entered scram_dnldr...\n");
- pft1000info->fcodeldr = 0;
- pft1000info->usbboot = 0;
- pft1000info->dspalive = 0xffff;
+ ft1000dev->fcodeldr = 0;
+ ft1000dev->usbboot = 0;
+ ft1000dev->dspalive = 0xffff;
//
// Get version id of file, at first 4 bytes of file, for newer files.
@@ -745,7 +739,7 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
switch (state) {
case STATE_START_DWNLD:
DEBUG("FT1000:STATE_START_DWNLD\n");
- if (pft1000info->usbboot)
+ if (ft1000dev->usbboot)
handshake =
get_handshake_usb(ft1000dev,
HANDSHAKE_DSP_BL_READY);
@@ -771,7 +765,7 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
case STATE_BOOT_DWNLD:
DEBUG("FT1000:STATE_BOOT_DWNLD\n");
- pft1000info->bootmode = 1;
+ ft1000dev->bootmode = 1;
handshake = get_handshake(ft1000dev, HANDSHAKE_REQUEST);
if (handshake == HANDSHAKE_REQUEST) {
/*
@@ -797,7 +791,7 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
//DEBUG("FT1000:download:s_file = 0x%8x\n", (int)s_file);
//DEBUG("FT1000:download:c_file = 0x%8x\n", (int)c_file);
state = STATE_CODE_DWNLD;
- pft1000info->fcodeldr = 1;
+ ft1000dev->fcodeldr = 1;
break;
case REQUEST_CODE_SEGMENT:
//DEBUG("FT1000:REQUEST_CODE_SEGMENT\n");
@@ -842,7 +836,7 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
status = STATUS_FAILURE;
break;
}
- if (pft1000info->usbboot)
+ if (ft1000dev->usbboot)
put_handshake_usb(ft1000dev,
HANDSHAKE_RESPONSE);
else
@@ -858,8 +852,8 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
case STATE_CODE_DWNLD:
//DEBUG("FT1000:STATE_CODE_DWNLD\n");
- pft1000info->bootmode = 0;
- if (pft1000info->usbboot)
+ ft1000dev->bootmode = 0;
+ if (ft1000dev->usbboot)
handshake =
get_handshake_usb(ft1000dev,
HANDSHAKE_REQUEST);
@@ -870,7 +864,7 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
/*
* Get type associated with the request.
*/
- if (pft1000info->usbboot)
+ if (ft1000dev->usbboot)
request =
get_request_type_usb(ft1000dev);
else
@@ -916,7 +910,7 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
}
break;
case REQUEST_DONE_CL:
- pft1000info->usbboot = 3;
+ ft1000dev->usbboot = 3;
/* Reposition ptrs to beginning of provisioning section */
s_file =
(u16 *) (pFileStart +
@@ -965,9 +959,9 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
write_blk_fifo(ft1000dev, &s_file,
&c_file, word_length);
- if (pft1000info->usbboot == 0)
- pft1000info->usbboot++;
- if (pft1000info->usbboot == 1) {
+ if (ft1000dev->usbboot == 0)
+ ft1000dev->usbboot++;
+ if (ft1000dev->usbboot == 1) {
tempword = 0;
ft1000_write_dpram16(ft1000dev,
DWNLD_MAG1_PS_HDR_LOC,
@@ -1117,7 +1111,7 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
status = STATUS_FAILURE;
break;
}
- if (pft1000info->usbboot)
+ if (ft1000dev->usbboot)
put_handshake_usb(ft1000dev,
HANDSHAKE_RESPONSE);
else
diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
index 809fa48..bdfa3ed9 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
@@ -29,7 +29,7 @@
//#define JDEBUG
-static int ft1000_reset(struct net_device *ft1000dev);
+static int ft1000_reset(void *ft1000dev);
static int ft1000_submit_rx_urb(struct ft1000_info *info);
static int ft1000_start_xmit(struct sk_buff *skb, struct net_device *dev);
static int ft1000_open (struct net_device *dev);
@@ -588,7 +588,7 @@ int dsp_reload(struct ft1000_device *ft1000dev)
static void ft1000_reset_asic(struct net_device *dev)
{
struct ft1000_info *info = netdev_priv(dev);
- struct ft1000_device *ft1000dev = info->pFt1000Dev;
+ struct ft1000_device *ft1000dev = info->priv;
u16 tempword;
DEBUG("ft1000_hw:ft1000_reset_asic called\n");
@@ -627,15 +627,15 @@ static void ft1000_reset_asic(struct net_device *dev)
static int ft1000_reset_card(struct net_device *dev)
{
struct ft1000_info *info = netdev_priv(dev);
- struct ft1000_device *ft1000dev = info->pFt1000Dev;
+ struct ft1000_device *ft1000dev = info->priv;
u16 tempword;
struct prov_record *ptr;
DEBUG("ft1000_hw:ft1000_reset_card called.....\n");
- info->fCondResetPend = 1;
+ ft1000dev->fCondResetPend = 1;
info->CardReady = 0;
- info->fProvComplete = 0;
+ ft1000dev->fProvComplete = 0;
/* Make sure we free any memory reserve for provisioning */
while (list_empty(&info->prov_list) == 0) {
@@ -666,7 +666,7 @@ static int ft1000_reset_card(struct net_device *dev)
info->CardReady = 1;
- info->fCondResetPend = 0;
+ ft1000dev->fCondResetPend = 0;
return TRUE;
}
@@ -729,8 +729,8 @@ int init_ft1000_netdev(struct ft1000_device *ft1000dev)
goto err_net;
}
- pInfo->CardNumber = gCardIndex;
- DEBUG("card number = %d\n", pInfo->CardNumber);
+ ft1000dev->CardNumber = gCardIndex;
+ DEBUG("card number = %d\n", ft1000dev->CardNumber);
} else {
printk(KERN_ERR "ft1000: Invalid device name\n");
ret_val = -ENXIO;
@@ -740,27 +740,27 @@ int init_ft1000_netdev(struct ft1000_device *ft1000dev)
memset(&pInfo->stats, 0, sizeof(struct net_device_stats));
spin_lock_init(&pInfo->dpram_lock);
- pInfo->pFt1000Dev = ft1000dev;
+ pInfo->priv = ft1000dev;
pInfo->DrvErrNum = 0;
pInfo->registered = 1;
pInfo->ft1000_reset = ft1000_reset;
pInfo->mediastate = 0;
pInfo->fifo_cnt = 0;
- pInfo->DeviceCreated = FALSE;
+ ft1000dev->DeviceCreated = FALSE;
pInfo->CardReady = 0;
pInfo->DSP_TIME[0] = 0;
pInfo->DSP_TIME[1] = 0;
pInfo->DSP_TIME[2] = 0;
pInfo->DSP_TIME[3] = 0;
- pInfo->fAppMsgPend = 0;
- pInfo->fCondResetPend = 0;
- pInfo->usbboot = 0;
- pInfo->dspalive = 0;
- memset(&pInfo->tempbuf[0], 0, sizeof(pInfo->tempbuf));
+ ft1000dev->fAppMsgPend = 0;
+ ft1000dev->fCondResetPend = 0;
+ ft1000dev->usbboot = 0;
+ ft1000dev->dspalive = 0;
+ memset(&ft1000dev->tempbuf[0], 0, sizeof(ft1000dev->tempbuf));
INIT_LIST_HEAD(&pInfo->prov_list);
- INIT_LIST_HEAD(&pInfo->nodes.list);
+ INIT_LIST_HEAD(&ft1000dev->nodes.list);
netdev->netdev_ops = &ftnet_ops;
@@ -854,7 +854,7 @@ int reg_ft1000_netdev(struct ft1000_device *ft1000dev,
return 0;
}
-static int ft1000_reset(struct net_device *dev)
+int ft1000_reset(void *dev)
{
ft1000_reset_card(dev);
return 0;
@@ -902,7 +902,7 @@ static void ft1000_usb_transmit_complete(struct urb *urb)
static int ft1000_copy_down_pkt(struct net_device *netdev, u8 * packet, u16 len)
{
struct ft1000_info *pInfo = netdev_priv(netdev);
- struct ft1000_device *pFt1000Dev = pInfo->pFt1000Dev;
+ struct ft1000_device *pFt1000Dev = pInfo->priv;
int count, ret;
u8 *t;
@@ -981,7 +981,7 @@ static int ft1000_copy_down_pkt(struct net_device *netdev, u8 * packet, u16 len)
static int ft1000_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
struct ft1000_info *pInfo = netdev_priv(dev);
- struct ft1000_device *pFt1000Dev = pInfo->pFt1000Dev;
+ struct ft1000_device *pFt1000Dev = pInfo->priv;
u8 *pdata;
int maxlen, pipe;
@@ -1039,7 +1039,7 @@ err:
static int ft1000_copy_up_pkt(struct urb *urb)
{
struct ft1000_info *info = urb->context;
- struct ft1000_device *ft1000dev = info->pFt1000Dev;
+ struct ft1000_device *ft1000dev = info->priv;
struct net_device *net = ft1000dev->net;
u16 tempword;
@@ -1134,7 +1134,7 @@ static int ft1000_copy_up_pkt(struct urb *urb)
static int ft1000_submit_rx_urb(struct ft1000_info *info)
{
int result;
- struct ft1000_device *pFt1000Dev = info->pFt1000Dev;
+ struct ft1000_device *pFt1000Dev = info->priv;
if (pFt1000Dev->status & FT1000_STATUS_CLOSING) {
DEBUG("network driver is closed, return\n");
@@ -1179,8 +1179,6 @@ static int ft1000_open(struct net_device *dev)
struct ft1000_info *pInfo = netdev_priv(dev);
struct timeval tv;
- DEBUG("ft1000_open is called for card %d\n", pInfo->CardNumber);
-
pInfo->stats.rx_bytes = 0;
pInfo->stats.tx_bytes = 0;
pInfo->stats.rx_packets = 0;
@@ -1213,7 +1211,7 @@ static int ft1000_open(struct net_device *dev)
int ft1000_close(struct net_device *net)
{
struct ft1000_info *pInfo = netdev_priv(net);
- struct ft1000_device *ft1000dev = pInfo->pFt1000Dev;
+ struct ft1000_device *ft1000dev = pInfo->priv;
ft1000dev->status |= FT1000_STATUS_CLOSING;
@@ -1251,9 +1249,8 @@ static int ft1000_chkcard(struct ft1000_device *dev)
{
u16 tempword;
u16 status;
- struct ft1000_info *info = netdev_priv(dev->net);
- if (info->fCondResetPend) {
+ if (dev->fCondResetPend) {
DEBUG
("ft1000_hw:ft1000_chkcard:Card is being reset, return FALSE\n");
return TRUE;
@@ -1441,7 +1438,7 @@ static int ft1000_dsp_prov(void *arg)
msleep(100);
- info->fProvComplete = 1;
+ dev->fProvComplete = 1;
info->CardReady = 1;
return STATUS_SUCCESS;
@@ -1498,7 +1495,7 @@ static int ft1000_proc_drvmsg(struct ft1000_device *dev, u16 size)
if (pmediamsg->state) {
DEBUG("Media is up\n");
if (info->mediastate == 0) {
- if (info->NetDevRegDone) {
+ if (dev->NetDevRegDone) {
netif_wake_queue(dev->
net);
}
@@ -1508,7 +1505,7 @@ static int ft1000_proc_drvmsg(struct ft1000_device *dev, u16 size)
DEBUG("Media is down\n");
if (info->mediastate == 1) {
info->mediastate = 0;
- if (info->NetDevRegDone) {
+ if (dev->NetDevRegDone) {
}
info->ConTm = 0;
}
@@ -1567,12 +1564,12 @@ static int ft1000_proc_drvmsg(struct ft1000_device *dev, u16 size)
* Send provisioning data to DSP
*/
if (list_empty(&info->prov_list) == 0) {
- info->fProvComplete = 0;
+ dev->fProvComplete = 0;
status = ft1000_dsp_prov(dev);
if (status != STATUS_SUCCESS)
goto out;
} else {
- info->fProvComplete = 1;
+ dev->fProvComplete = 1;
status =
ft1000_write_register(dev, FT1000_DB_HB,
FT1000_REG_DOORBELL);
@@ -1605,7 +1602,7 @@ static int ft1000_proc_drvmsg(struct ft1000_device *dev, u16 size)
case DSP_GET_INFO:{
DEBUG("FT1000:drivermsg:Got DSP_GET_INFO\n");
/* copy dsp info block to dsp */
- info->DrvMsgPend = 1;
+ dev->DrvMsgPend = 1;
/* allow any outstanding ioctl to finish */
mdelay(10);
status =
@@ -1667,7 +1664,7 @@ static int ft1000_proc_drvmsg(struct ft1000_device *dev, u16 size)
status =
ft1000_write_register(dev, FT1000_DB_DPRAM_TX,
FT1000_REG_DOORBELL);
- info->DrvMsgPend = 0;
+ dev->DrvMsgPend = 0;
break;
}
@@ -1675,7 +1672,7 @@ static int ft1000_proc_drvmsg(struct ft1000_device *dev, u16 size)
case GET_DRV_ERR_RPT_MSG:{
DEBUG("FT1000:drivermsg:Got GET_DRV_ERR_RPT_MSG\n");
/* copy driver error message to dsp */
- info->DrvMsgPend = 1;
+ dev->DrvMsgPend = 1;
/* allow any outstanding ioctl to finish */
mdelay(10);
status =
@@ -1735,7 +1732,7 @@ static int ft1000_proc_drvmsg(struct ft1000_device *dev, u16 size)
(u16) (0x0012 + PSEUDOSZ));
info->DrvErrNum = 0;
}
- info->DrvMsgPend = 0;
+ dev->DrvMsgPend = 0;
break;
}
@@ -1804,8 +1801,8 @@ int ft1000_poll(void* dev_id)
// Check which application has registered for dsp broadcast messages
for (i=0; i<MAX_NUM_APP; i++) {
- if ( (info->app_info[i].DspBCMsgFlag) && (info->app_info[i].fileobject) &&
- (info->app_info[i].NumOfMsg < MAX_MSG_LIMIT) )
+ if ( (dev->app_info[i].DspBCMsgFlag) && (dev->app_info[i].fileobject) &&
+ (dev->app_info[i].NumOfMsg < MAX_MSG_LIMIT) )
{
nxtph = FT1000_DPRAM_RX_BASE + 2;
pdpram_blk = ft1000_get_buffer (&freercvpool);
@@ -1813,15 +1810,15 @@ int ft1000_poll(void* dev_id)
if ( ft1000_receive_cmd(dev, pdpram_blk->pbuffer, MAX_CMD_SQSIZE, &nxtph) ) {
ppseudo_hdr = (struct pseudo_hdr *)pdpram_blk->pbuffer;
// Put message into the appropriate application block
- info->app_info[i].nRxMsg++;
+ dev->app_info[i].nRxMsg++;
spin_lock_irqsave(&free_buff_lock, flags);
- list_add_tail(&pdpram_blk->list, &info->app_info[i].app_sqlist);
- info->app_info[i].NumOfMsg++;
+ list_add_tail(&pdpram_blk->list, &dev->app_info[i].app_sqlist);
+ dev->app_info[i].NumOfMsg++;
spin_unlock_irqrestore(&free_buff_lock, flags);
- wake_up_interruptible(&info->app_info[i].wait_dpram_msg);
+ wake_up_interruptible(&dev->app_info[i].wait_dpram_msg);
}
else {
- info->app_info[i].nRxMsgMiss++;
+ dev->app_info[i].nRxMsgMiss++;
// Put memory back to free pool
ft1000_free_buffer(pdpram_blk, &freercvpool);
DEBUG("pdpram_blk::ft1000_get_buffer NULL\n");
@@ -1829,7 +1826,7 @@ int ft1000_poll(void* dev_id)
}
else {
DEBUG("Out of memory in free receive command pool\n");
- info->app_info[i].nRxMsgMiss++;
+ dev->app_info[i].nRxMsgMiss++;
}
}
}
@@ -1842,7 +1839,7 @@ int ft1000_poll(void* dev_id)
ppseudo_hdr = (struct pseudo_hdr *)pdpram_blk->pbuffer;
// Search for correct application block
for (i=0; i<MAX_NUM_APP; i++) {
- if (info->app_info[i].app_id == ppseudo_hdr->portdest) {
+ if (dev->app_info[i].app_id == ppseudo_hdr->portdest) {
break;
}
}
@@ -1853,15 +1850,15 @@ int ft1000_poll(void* dev_id)
ft1000_free_buffer(pdpram_blk, &freercvpool);
}
else {
- if (info->app_info[i].NumOfMsg > MAX_MSG_LIMIT) {
+ if (dev->app_info[i].NumOfMsg > MAX_MSG_LIMIT) {
// Put memory back to free pool
ft1000_free_buffer(pdpram_blk, &freercvpool);
}
else {
- info->app_info[i].nRxMsg++;
+ dev->app_info[i].nRxMsg++;
// Put message into the appropriate application block
- list_add_tail(&pdpram_blk->list, &info->app_info[i].app_sqlist);
- info->app_info[i].NumOfMsg++;
+ list_add_tail(&pdpram_blk->list, &dev->app_info[i].app_sqlist);
+ dev->app_info[i].NumOfMsg++;
}
}
}
@@ -1921,7 +1918,7 @@ int ft1000_poll(void* dev_id)
else if (tempword & FT1000_DB_COND_RESET) {
DEBUG("ft1000_poll: FT1000_REG_DOORBELL message type: FT1000_DB_COND_RESET\n");
- if (info->fAppMsgPend == 0) {
+ if (dev->fAppMsgPend == 0) {
// Reset ASIC and DSP
status = ft1000_read_dpram16(dev, FT1000_MAG_DSP_TIMER0, (u8 *)&(info->DSP_TIME[0]), FT1000_MAG_DSP_TIMER0_INDX);
@@ -1934,8 +1931,8 @@ int ft1000_poll(void* dev_id)
info->ft1000_reset(dev->net);
}
else {
- info->fProvComplete = 0;
- info->fCondResetPend = 1;
+ dev->fProvComplete = 0;
+ dev->fCondResetPend = 1;
}
ft1000_write_register(dev, FT1000_DB_COND_RESET, FT1000_REG_DOORBELL);
diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_proc.c b/drivers/staging/ft1000/ft1000-usb/ft1000_proc.c
index 5ae3967..c290b66 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_proc.c
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_proc.c
@@ -94,11 +94,11 @@ ft1000ReadProc(char *page, char **start, off_t off, int count, int *eof,
if (info->ProgConStat != 0xFF) {
- ft1000_read_dpram16(info->pFt1000Dev, FT1000_MAG_DSP_LED,
+ ft1000_read_dpram16(info->priv, FT1000_MAG_DSP_LED,
(u8 *)&ledStat, FT1000_MAG_DSP_LED_INDX);
info->LedStat = ntohs(ledStat);
- ft1000_read_dpram16(info->pFt1000Dev, FT1000_MAG_DSP_CON_STATE,
+ ft1000_read_dpram16(info->priv, FT1000_MAG_DSP_CON_STATE,
(u8 *)&conStat, FT1000_MAG_DSP_CON_STATE_INDX);
info->ConStat = ntohs(conStat);
do_gettimeofday(&tv);
diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c
index b2ecd0e..e97fbc9 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c
@@ -171,11 +171,11 @@ static int ft1000_probe(struct usb_interface *interface,
}
gPollingfailed = FALSE;
- pft1000info->pPollThread =
+ ft1000dev->pPollThread =
kthread_run(ft1000_poll_thread, ft1000dev, "ft1000_poll");
- if (IS_ERR(pft1000info->pPollThread)) {
- ret = PTR_ERR(pft1000info->pPollThread);
+ if (IS_ERR(ft1000dev->pPollThread)) {
+ ret = PTR_ERR(ft1000dev->pPollThread);
goto err_load;
}
@@ -200,7 +200,7 @@ static int ft1000_probe(struct usb_interface *interface,
if (ret)
goto err_proc;
- pft1000info->NetDevRegDone = 1;
+ ft1000dev->NetDevRegDone = 1;
return 0;
@@ -208,7 +208,7 @@ err_proc:
unregister_netdev(ft1000dev->net);
free_netdev(ft1000dev->net);
err_thread:
- kthread_stop(pft1000info->pPollThread);
+ kthread_stop(ft1000dev->pPollThread);
err_load:
kfree(pFileStart);
err_fw:
@@ -219,6 +219,7 @@ err_fw:
static void ft1000_disconnect(struct usb_interface *interface)
{
struct ft1000_info *pft1000info;
+ struct ft1000_device *ft1000dev;
DEBUG("ft1000_disconnect is called\n");
@@ -226,28 +227,29 @@ static void ft1000_disconnect(struct usb_interface *interface)
DEBUG("In disconnect pft1000info=%p\n", pft1000info);
if (pft1000info) {
+ ft1000dev = pft1000info->priv;
ft1000_cleanup_proc(pft1000info);
- if (pft1000info->pPollThread)
- kthread_stop(pft1000info->pPollThread);
+ if (ft1000dev->pPollThread)
+ kthread_stop(ft1000dev->pPollThread);
DEBUG("ft1000_disconnect: threads are terminated\n");
- if (pft1000info->pFt1000Dev->net) {
+ if (ft1000dev->net) {
DEBUG("ft1000_disconnect: destroy char driver\n");
- ft1000_destroy_dev(pft1000info->pFt1000Dev->net);
- unregister_netdev(pft1000info->pFt1000Dev->net);
+ ft1000_destroy_dev(ft1000dev->net);
+ unregister_netdev(ft1000dev->net);
DEBUG
("ft1000_disconnect: network device unregistered\n");
- free_netdev(pft1000info->pFt1000Dev->net);
+ free_netdev(ft1000dev->net);
}
- usb_free_urb(pft1000info->pFt1000Dev->rx_urb);
- usb_free_urb(pft1000info->pFt1000Dev->tx_urb);
+ usb_free_urb(ft1000dev->rx_urb);
+ usb_free_urb(ft1000dev->tx_urb);
DEBUG("ft1000_disconnect: urb freed\n");
- kfree(pft1000info->pFt1000Dev);
+ kfree(ft1000dev);
}
kfree(pFileStart);
diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h
index 2aa6a1c..152fe84 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h
@@ -55,6 +55,13 @@ struct app_info_block {
#define MAX_BUF_SIZE 4096
+struct ft1000_debug_dirs {
+ struct list_head list;
+ struct dentry *dent;
+ struct dentry *file;
+ int int_number;
+};
+
struct ft1000_device {
struct usb_device *dev;
struct net_device *net;
@@ -69,71 +76,26 @@ struct ft1000_device {
u8 bulk_in_endpointAddr;
u8 bulk_out_endpointAddr;
-} __packed;
-
-struct ft1000_debug_dirs {
- struct list_head list;
- struct dentry *dent;
- struct dentry *file;
- int int_number;
-};
-
-struct ft1000_info {
- struct ft1000_device *pFt1000Dev;
- struct net_device_stats stats;
struct task_struct *pPollThread;
-
unsigned char fcodeldr;
unsigned char bootmode;
unsigned char usbboot;
unsigned short dspalive;
- u16 ASIC_ID;
bool fProvComplete;
bool fCondResetPend;
bool fAppMsgPend;
- u16 DrvErrNum;
- u16 AsicID;
- int DspAsicReset;
int DeviceCreated;
- int CardReady;
int NetDevRegDone;
u8 CardNumber;
u8 DeviceName[15];
struct ft1000_debug_dirs nodes;
- int registered;
- int mediastate;
- u8 squeseqnum; /* sequence number on slow queue */
- spinlock_t dpram_lock;
spinlock_t fifo_lock;
- u16 fifo_cnt;
- u8 DspVer[DSPVERSZ]; /* DSP version number */
- u8 HwSerNum[HWSERNUMSZ]; /* Hardware Serial Number */
- u8 Sku[SKUSZ]; /* SKU */
- u8 eui64[EUISZ]; /* EUI64 */
- time_t ConTm; /* Connection Time */
- u8 ProductMode[MODESZ];
- u8 RfCalVer[CALVERSZ];
- u8 RfCalDate[CALDATESZ];
- u16 DSP_TIME[4];
- u16 LedStat;
- u16 ConStat;
- u16 ProgConStat;
- struct list_head prov_list;
int appcnt;
struct app_info_block app_info[MAX_NUM_APP];
- u16 DSPInfoBlklen;
u16 DrvMsgPend;
- int (*ft1000_reset)(struct net_device *dev);
- u16 DSPInfoBlk[MAX_DSP_SESS_REC];
- union {
- u16 Rec[MAX_DSP_SESS_REC];
- u32 MagRec[MAX_DSP_SESS_REC/2];
- } DSPSess;
unsigned short tempbuf[32];
- char netdevname[IFNAMSIZ];
- struct proc_dir_entry *ft1000_proc_dir;
-};
+} __packed;
struct dpram_blk {
diff --git a/drivers/staging/ft1000/ft1000.h b/drivers/staging/ft1000/ft1000.h
index 03baa57..175abfa 100644
--- a/drivers/staging/ft1000/ft1000.h
+++ b/drivers/staging/ft1000/ft1000.h
@@ -250,3 +250,38 @@ struct prov_record {
struct list_head list;
u8 *pprov_data;
};
+
+struct ft1000_info {
+ void *priv;
+ struct net_device_stats stats;
+ u16 DrvErrNum;
+ u16 AsicID;
+ int CardReady;
+ int registered;
+ int mediastate;
+ u8 squeseqnum; /* sequence number on slow queue */
+ spinlock_t dpram_lock;
+ u16 fifo_cnt;
+ u8 DspVer[DSPVERSZ]; /* DSP version number */
+ u8 HwSerNum[HWSERNUMSZ]; /* Hardware Serial Number */
+ u8 Sku[SKUSZ]; /* SKU */
+ u8 eui64[EUISZ]; /* EUI64 */
+ time_t ConTm; /* Connection Time */
+ u8 ProductMode[MODESZ];
+ u8 RfCalVer[CALVERSZ];
+ u8 RfCalDate[CALDATESZ];
+ u16 DSP_TIME[4];
+ u16 LedStat;
+ u16 ConStat;
+ u16 ProgConStat;
+ struct list_head prov_list;
+ u16 DSPInfoBlklen;
+ int (*ft1000_reset)(void *);
+ u16 DSPInfoBlk[MAX_DSP_SESS_REC];
+ union {
+ u16 Rec[MAX_DSP_SESS_REC];
+ u32 MagRec[MAX_DSP_SESS_REC/2];
+ } DSPSess;
+ struct proc_dir_entry *ft1000_proc_dir;
+ char netdevname[IFNAMSIZ];
+};
--
Ondrej Zary
Hi Ondrej,
On Fri, Nov 9, 2012 at 10:42 PM, Ondrej Zary <[email protected]> wrote:
>
> Unify struct ft1000_info between ft1000-usb and ft1000-pcmcia and move it to
> common ft1000.h.
>
> ft1000-pcmcia seems to work. Please test ft1000-usb.
>
> Signed-off-by: Ondrej Zary <[email protected]>
> ---
> drivers/staging/ft1000/ft1000-pcmcia/ft1000.h | 33 +-----
> drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c | 21 ++-
> drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c | 10 +-
> drivers/staging/ft1000/ft1000-usb/ft1000_debug.c | 147 ++++++++++----------
> .../staging/ft1000/ft1000-usb/ft1000_download.c | 70 +++++-----
> drivers/staging/ft1000/ft1000-usb/ft1000_hw.c | 99 +++++++-------
> drivers/staging/ft1000/ft1000-usb/ft1000_proc.c | 4 +-
> drivers/staging/ft1000/ft1000-usb/ft1000_usb.c | 30 ++--
> drivers/staging/ft1000/ft1000-usb/ft1000_usb.h | 54 +------
> drivers/staging/ft1000/ft1000.h | 35 +++++
> 10 files changed, 236 insertions(+), 267 deletions(-)
>
> diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h b/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h
> index adb436e..65f7ab6 100644
> --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h
> +++ b/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h
> @@ -31,41 +31,10 @@
> #define SUCCESS 0x00
> #define FAILURE 0x01
>
> -struct ft1000_info {
> - struct net_device_stats stats;
> - u16 DrvErrNum;
> - u16 AsicID;
> +struct ft1000_pcmcia {
To be consistent can you please name also usb part not ft100_device
but e.g. ft1000_usb or something?
>
> int PktIntfErr;
> - int CardReady;
> - int registered;
> - int mediastate;
> u16 packetseqnum;
> - u8 squeseqnum; /* sequence number on slow queue */
> - spinlock_t dpram_lock;
> - u16 fifo_cnt;
> - u8 DspVer[DSPVERSZ]; /* DSP version number */
> - u8 HwSerNum[HWSERNUMSZ]; /* Hardware Serial Number */
> - u8 Sku[SKUSZ]; /* SKU */
> - u8 eui64[EUISZ]; /* EUI64 */
> - time_t ConTm; /* Connection Time */
> - u16 LedStat;
> - u16 ConStat;
> - u16 ProgConStat;
> - u8 ProductMode[MODESZ];
> - u8 RfCalVer[CALVERSZ];
> - u8 RfCalDate[CALDATESZ];
> - u16 DSP_TIME[4];
> - struct list_head prov_list;
> - u16 DSPInfoBlklen;
> - int (*ft1000_reset)(void *);
> void *link;
> - u16 DSPInfoBlk[MAX_DSP_SESS_REC];
> - union {
> - u16 Rec[MAX_DSP_SESS_REC];
> - u32 MagRec[MAX_DSP_SESS_REC/2];
> - } DSPSess;
> - struct proc_dir_entry *proc_ft1000;
> - char netdevname[IFNAMSIZ];
> };
>
> struct pcmcia_device;
> diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c
> index 86a680c..3fd499f 100644
> --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c
> +++ b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c
> @@ -328,11 +328,12 @@ static void ft1000_disable_interrupts(struct net_device *dev)
> static void ft1000_reset_asic(struct net_device *dev)
> {
> struct ft1000_info *info = netdev_priv(dev);
> + struct ft1000_pcmcia *pcmcia = info->priv;
> u16 tempword;
>
> DEBUG(1, "ft1000_hw:ft1000_reset_asic called\n");
>
> - (*info->ft1000_reset) (info->link);
> + (*info->ft1000_reset) (pcmcia->link);
>
> // Let's use the register provided by the Magnemite ASIC to reset the
> // ASIC and DSP.
> @@ -1397,12 +1398,13 @@ static int ft1000_parse_dpram_msg(struct net_device *dev)
> static void ft1000_flush_fifo(struct net_device *dev, u16 DrvErrNum)
> {
> struct ft1000_info *info = netdev_priv(dev);
> + struct ft1000_pcmcia *pcmcia = info->priv;
> u16 i;
> u32 templong;
> u16 tempword;
>
> DEBUG(1, "ft1000:ft1000_hw:ft1000_flush_fifo called\n");
> - if (info->PktIntfErr > MAX_PH_ERR) {
> + if (pcmcia->PktIntfErr > MAX_PH_ERR) {
> if (info->AsicID == ELECTRABUZZ_ID) {
> info->DSP_TIME[0] =
> ft1000_read_dpram(dev, FT1000_DSP_TIMER0);
> @@ -1491,7 +1493,7 @@ static void ft1000_flush_fifo(struct net_device *dev, u16 DrvErrNum)
> FIFO_FLUSH_BADCNT;
> } else {
> // Let's assume that we really flush the FIFO
> - info->PktIntfErr++;
> + pcmcia->PktIntfErr++;
> return;
> }
> } else {
> @@ -1522,7 +1524,7 @@ static void ft1000_flush_fifo(struct net_device *dev, u16 DrvErrNum)
> DEBUG(0, "FT1000_REG_MAG_DFSR = 0x%x\n", tempword);
> }
> if (DrvErrNum) {
> - info->PktIntfErr++;
> + pcmcia->PktIntfErr++;
> }
> }
> }
> @@ -1731,6 +1733,7 @@ static int ft1000_copy_up_pkt(struct net_device *dev)
> static int ft1000_copy_down_pkt(struct net_device *dev, u16 * packet, u16 len)
> {
> struct ft1000_info *info = netdev_priv(dev);
> + struct ft1000_pcmcia *pcmcia = info->priv;
> union {
> struct pseudo_hdr blk;
> u16 buff[sizeof(struct pseudo_hdr) >> 1];
> @@ -1780,7 +1783,7 @@ static int ft1000_copy_down_pkt(struct net_device *dev, u16 * packet, u16 len)
> pseudo.blk.control = 0;
> pseudo.blk.rsvd1 = 0;
> pseudo.blk.seq_num = 0;
> - pseudo.blk.rsvd2 = info->packetseqnum++;
> + pseudo.blk.rsvd2 = pcmcia->packetseqnum++;
> pseudo.blk.qos_class = 0;
> /* Calculate pseudo header checksum */
> pseudo.blk.checksum = pseudo.buff[0];
> @@ -2058,6 +2061,8 @@ void stop_ft1000_card(struct net_device *dev)
> kfree(ptr);
> }
>
> + kfree(info->priv);
> +
> if (info->registered) {
> unregister_netdev(dev);
> info->registered = 0;
> @@ -2100,6 +2105,7 @@ struct net_device *init_ft1000_card(struct pcmcia_device *link,
> void *ft1000_reset)
> {
> struct ft1000_info *info;
> + struct ft1000_pcmcia *pcmcia;
> struct net_device *dev;
>
> static const struct net_device_ops ft1000ops = // Slavius 21.10.2009 due to kernel changes
> @@ -2141,10 +2147,13 @@ struct net_device *init_ft1000_card(struct pcmcia_device *link,
>
> memset(&info->stats, 0, sizeof(struct net_device_stats));
>
> + info->priv = kzalloc(sizeof(struct ft1000_pcmcia), GFP_KERNEL);
> + pcmcia = info->priv;
> + pcmcia->link = link;
> +
> spin_lock_init(&info->dpram_lock);
> info->DrvErrNum = 0;
> info->registered = 1;
> - info->link = link;
> info->ft1000_reset = ft1000_reset;
> info->mediastate = 0;
> info->fifo_cnt = 0;
> diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c
> index 72727c6..5337b41 100644
> --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c
> +++ b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c
> @@ -175,8 +175,8 @@ static int ft1000NotifyProc(struct notifier_block *this, unsigned long event,
>
> switch (event) {
> case NETDEV_CHANGENAME:
> - remove_proc_entry(info->netdevname, info->proc_ft1000);
> - create_proc_read_entry(dev->name, 0644, info->proc_ft1000,
> + remove_proc_entry(info->netdevname, info->ft1000_proc_dir);
> + create_proc_read_entry(dev->name, 0644, info->ft1000_proc_dir,
> ft1000ReadProc, dev);
> snprintf(info->netdevname, IFNAMSIZ, "%s", dev->name);
> break;
> @@ -194,8 +194,8 @@ void ft1000InitProc(struct net_device *dev)
>
> info = netdev_priv(dev);
>
> - info->proc_ft1000 = proc_mkdir(FT1000_PROC, init_net.proc_net);
> - create_proc_read_entry(dev->name, 0644, info->proc_ft1000,
> + info->ft1000_proc_dir = proc_mkdir(FT1000_PROC, init_net.proc_net);
> + create_proc_read_entry(dev->name, 0644, info->ft1000_proc_dir,
> ft1000ReadProc, dev);
> snprintf(info->netdevname, IFNAMSIZ, "%s", dev->name);
> register_netdevice_notifier(&ft1000_netdev_notifier);
> @@ -207,7 +207,7 @@ void ft1000CleanupProc(struct net_device *dev)
>
> info = netdev_priv(dev);
>
> - remove_proc_entry(dev->name, info->proc_ft1000);
> + remove_proc_entry(dev->name, info->ft1000_proc_dir);
> remove_proc_entry(FT1000_PROC, init_net.proc_net);
> unregister_netdevice_notifier(&ft1000_netdev_notifier);
> }
> diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c b/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c
> index 6d911fd..fb197ab 100644
> --- a/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c
> +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c
> @@ -139,27 +139,26 @@ void ft1000_free_buffer(struct dpram_blk *pdpram_blk, struct list_head *plist)
> //---------------------------------------------------------------------------
> int ft1000_create_dev(struct ft1000_device *dev)
> {
> - struct ft1000_info *info = netdev_priv(dev->net);
> int result;
> int i;
> struct dentry *dir, *file;
> struct ft1000_debug_dirs *tmp;
>
> // make a new device name
> - sprintf(info->DeviceName, "%s%d", "FT1000_", info->CardNumber);
> + sprintf(dev->DeviceName, "%s%d", "FT1000_", dev->CardNumber);
>
> DEBUG("%s: number of instance = %d\n", __func__, ft1000_flarion_cnt);
> - DEBUG("DeviceCreated = %x\n", info->DeviceCreated);
> + DEBUG("DeviceCreated = %x\n", dev->DeviceCreated);
>
> - if (info->DeviceCreated)
> + if (dev->DeviceCreated)
> {
> - DEBUG("%s: \"%s\" already registered\n", __func__, info->DeviceName);
> + DEBUG("%s: \"%s\" already registered\n", __func__, dev->DeviceName);
> return -EIO;
> }
>
>
> // register the device
> - DEBUG("%s: \"%s\" debugfs device registration\n", __func__, info->DeviceName);
> + DEBUG("%s: \"%s\" debugfs device registration\n", __func__, dev->DeviceName);
>
> tmp = kmalloc(sizeof(struct ft1000_debug_dirs), GFP_KERNEL);
> if (tmp == NULL) {
> @@ -167,7 +166,7 @@ int ft1000_create_dev(struct ft1000_device *dev)
> goto fail;
> }
>
> - dir = debugfs_create_dir(info->DeviceName, NULL);
> + dir = debugfs_create_dir(dev->DeviceName, NULL);
> if (IS_ERR(dir)) {
> result = PTR_ERR(dir);
> goto debug_dir_fail;
> @@ -182,27 +181,27 @@ int ft1000_create_dev(struct ft1000_device *dev)
>
> tmp->dent = dir;
> tmp->file = file;
> - tmp->int_number = info->CardNumber;
> - list_add(&(tmp->list), &(info->nodes.list));
> + tmp->int_number = dev->CardNumber;
> + list_add(&(tmp->list), &(dev->nodes.list));
>
> - DEBUG("%s: registered debugfs directory \"%s\"\n", __func__, info->DeviceName);
> + DEBUG("%s: registered debugfs directory \"%s\"\n", __func__, dev->DeviceName);
>
> // initialize application information
> - info->appcnt = 0;
> + dev->appcnt = 0;
> for (i=0; i<MAX_NUM_APP; i++) {
> - info->app_info[i].nTxMsg = 0;
> - info->app_info[i].nRxMsg = 0;
> - info->app_info[i].nTxMsgReject = 0;
> - info->app_info[i].nRxMsgMiss = 0;
> - info->app_info[i].fileobject = NULL;
> - info->app_info[i].app_id = i+1;
> - info->app_info[i].DspBCMsgFlag = 0;
> - info->app_info[i].NumOfMsg = 0;
> - init_waitqueue_head(&info->app_info[i].wait_dpram_msg);
> - INIT_LIST_HEAD (&info->app_info[i].app_sqlist);
> + dev->app_info[i].nTxMsg = 0;
> + dev->app_info[i].nRxMsg = 0;
> + dev->app_info[i].nTxMsgReject = 0;
> + dev->app_info[i].nRxMsgMiss = 0;
> + dev->app_info[i].fileobject = NULL;
> + dev->app_info[i].app_id = i+1;
> + dev->app_info[i].DspBCMsgFlag = 0;
> + dev->app_info[i].NumOfMsg = 0;
> + init_waitqueue_head(&dev->app_info[i].wait_dpram_msg);
> + INIT_LIST_HEAD (&dev->app_info[i].app_sqlist);
> }
>
> - info->DeviceCreated = TRUE;
> + dev->DeviceCreated = TRUE;
> ft1000_flarion_cnt++;
>
> return 0;
> @@ -225,9 +224,10 @@ fail:
> // Notes: Only called by cleanup_module().
> //
> //---------------------------------------------------------------------------
> -void ft1000_destroy_dev(struct net_device *dev)
> +void ft1000_destroy_dev(struct net_device *netdev)
> {
> - struct ft1000_info *info = netdev_priv(dev);
> + struct ft1000_info *info = netdev_priv(netdev);
> + struct ft1000_device *dev = info->priv;
> int i;
> struct dpram_blk *pdpram_blk;
> struct dpram_blk *ptr;
> @@ -238,12 +238,12 @@ void ft1000_destroy_dev(struct net_device *dev)
>
>
>
> - if (info->DeviceCreated)
> + if (dev->DeviceCreated)
> {
> ft1000_flarion_cnt--;
> - list_for_each_safe(pos, q, &info->nodes.list) {
> + list_for_each_safe(pos, q, &dev->nodes.list) {
> dir = list_entry(pos, struct ft1000_debug_dirs, list);
> - if (dir->int_number == info->CardNumber) {
> + if (dir->int_number == dev->CardNumber) {
> debugfs_remove(dir->file);
> debugfs_remove(dir->dent);
> list_del(pos);
> @@ -251,17 +251,17 @@ void ft1000_destroy_dev(struct net_device *dev)
> }
> }
> DEBUG("%s: unregistered device \"%s\"\n", __func__,
> - info->DeviceName);
> + dev->DeviceName);
>
> // Make sure we free any memory reserve for slow Queue
> for (i=0; i<MAX_NUM_APP; i++) {
> - while (list_empty(&info->app_info[i].app_sqlist) == 0) {
> - pdpram_blk = list_entry(info->app_info[i].app_sqlist.next, struct dpram_blk, list);
> + while (list_empty(&dev->app_info[i].app_sqlist) == 0) {
> + pdpram_blk = list_entry(dev->app_info[i].app_sqlist.next, struct dpram_blk, list);
> list_del(&pdpram_blk->list);
> ft1000_free_buffer(pdpram_blk, &freercvpool);
>
> }
> - wake_up_interruptible(&info->app_info[i].wait_dpram_msg);
> + wake_up_interruptible(&dev->app_info[i].wait_dpram_msg);
> }
>
> // Remove buffer allocated for receive command data
> @@ -273,7 +273,7 @@ void ft1000_destroy_dev(struct net_device *dev)
> kfree(ptr);
> }
> }
> - info->DeviceCreated = FALSE;
> + dev->DeviceCreated = FALSE;
> }
>
>
> @@ -301,17 +301,17 @@ static int ft1000_open (struct inode *inode, struct file *file)
>
> info = file->private_data = netdev_priv(dev->net);
>
> - DEBUG("f_owner = %p number of application = %d\n", (&file->f_owner), info->appcnt );
> + DEBUG("f_owner = %p number of application = %d\n", (&file->f_owner), dev->appcnt );
>
> // Check if maximum number of application exceeded
> - if (info->appcnt > MAX_NUM_APP) {
> + if (dev->appcnt > MAX_NUM_APP) {
> DEBUG("Maximum number of application exceeded\n");
> return -EACCES;
> }
>
> // Search for available application info block
> for (i=0; i<MAX_NUM_APP; i++) {
> - if ( (info->app_info[i].fileobject == NULL) ) {
> + if ( (dev->app_info[i].fileobject == NULL) ) {
> break;
> }
> }
> @@ -322,12 +322,12 @@ static int ft1000_open (struct inode *inode, struct file *file)
> return -EACCES;
> }
>
> - info->appcnt++;
> - info->app_info[i].fileobject = &file->f_owner;
> - info->app_info[i].nTxMsg = 0;
> - info->app_info[i].nRxMsg = 0;
> - info->app_info[i].nTxMsgReject = 0;
> - info->app_info[i].nRxMsgMiss = 0;
> + dev->appcnt++;
> + dev->app_info[i].fileobject = &file->f_owner;
> + dev->app_info[i].nTxMsg = 0;
> + dev->app_info[i].nRxMsg = 0;
> + dev->app_info[i].nTxMsgReject = 0;
> + dev->app_info[i].nRxMsgMiss = 0;
>
> nonseekable_open(inode, file);
> return 0;
> @@ -347,8 +347,9 @@ static int ft1000_open (struct inode *inode, struct file *file)
>
> static unsigned int ft1000_poll_dev(struct file *file, poll_table *wait)
> {
> - struct net_device *dev = file->private_data;
> - struct ft1000_info *info;
> + struct net_device *netdev = file->private_data;
> + struct ft1000_info *info = netdev_priv(netdev);
> + struct ft1000_device *dev = info->priv;
> int i;
>
> //DEBUG("ft1000_poll_dev called\n");
> @@ -357,12 +358,10 @@ static unsigned int ft1000_poll_dev(struct file *file, poll_table *wait)
> return (-EBADF);
> }
>
> - info = netdev_priv(dev);
> -
> // Search for matching file object
> for (i=0; i<MAX_NUM_APP; i++) {
> - if ( info->app_info[i].fileobject == &file->f_owner) {
> - //DEBUG("FT1000:ft1000_ioctl: Message is for AppId = %d\n", info->app_info[i].app_id);
> + if ( dev->app_info[i].fileobject == &file->f_owner) {
> + //DEBUG("FT1000:ft1000_ioctl: Message is for AppId = %d\n", dev->app_info[i].app_id);
> break;
> }
> }
> @@ -373,12 +372,12 @@ static unsigned int ft1000_poll_dev(struct file *file, poll_table *wait)
> return ( -EACCES );
> }
>
> - if (list_empty(&info->app_info[i].app_sqlist) == 0) {
> + if (list_empty(&dev->app_info[i].app_sqlist) == 0) {
> DEBUG("FT1000:ft1000_poll_dev:Message detected in slow queue\n");
> return(POLLIN | POLLRDNORM | POLLPRI);
> }
>
> - poll_wait (file, &info->app_info[i].wait_dpram_msg, wait);
> + poll_wait (file, &dev->app_info[i].wait_dpram_msg, wait);
> //DEBUG("FT1000:ft1000_poll_dev:Polling for data from DSP\n");
>
> return (0);
> @@ -428,7 +427,7 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
> //DEBUG("FT1000:ft1000_ioctl:command = 0x%x argument = 0x%8x\n", command, (u32)argument);
>
> info = file->private_data;
> - ft1000dev = info->pFt1000Dev;
> + ft1000dev = info->priv;
> cmd = _IOC_NR(command);
> //DEBUG("FT1000:ft1000_ioctl:cmd = 0x%x\n", cmd);
>
> @@ -444,8 +443,8 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
> if (tempword == DSPBCMSGID) {
> // Search for matching file object
> for (i=0; i<MAX_NUM_APP; i++) {
> - if ( info->app_info[i].fileobject == &file->f_owner) {
> - info->app_info[i].DspBCMsgFlag = 1;
> + if (ft1000dev->app_info[i].fileobject == &file->f_owner) {
> + ft1000dev->app_info[i].DspBCMsgFlag = 1;
> DEBUG("FT1000:ft1000_ioctl:Registered for broadcast messages\n");
> break;
> }
> @@ -534,15 +533,15 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
> return (-EBADF);
> }
>
> - if (info->DrvMsgPend) {
> + if (ft1000dev->DrvMsgPend) {
> return (-ENOTTY);
> }
>
> - if ( (info->DspAsicReset) || (info->fProvComplete == 0) ) {
> + if (ft1000dev->fProvComplete == 0) {
> return (-EACCES);
> }
>
> - info->fAppMsgPend = 1;
> + ft1000dev->fAppMsgPend = 1;
>
> if (info->CardReady) {
>
> @@ -571,7 +570,7 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
> else {
> // Check if this message came from a registered application
> for (i=0; i<MAX_NUM_APP; i++) {
> - if ( info->app_info[i].fileobject == &file->f_owner) {
> + if (ft1000dev->app_info[i].fileobject == &file->f_owner) {
> break;
> }
> }
> @@ -632,7 +631,7 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
>
> // Insert slow queue sequence number
> ppseudo_hdr->seq_num = info->squeseqnum++;
> - ppseudo_hdr->portsrc = info->app_info[app_index].app_id;
> + ppseudo_hdr->portsrc = ft1000dev->app_info[app_index].app_id;
> // Calculate new checksum
> ppseudo_hdr->checksum = *pmsg++;
> //DEBUG("checksum = 0x%x\n", ppseudo_hdr->checksum);
> @@ -645,7 +644,7 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
> card_send_command(ft1000dev,(unsigned short*)dpram_data,total_len+2);
>
>
> - info->app_info[app_index].nTxMsg++;
> + ft1000dev->app_info[app_index].nTxMsg++;
> }
> else {
> result = -EINVAL;
> @@ -675,8 +674,8 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
>
> // Search for matching file object
> for (i=0; i<MAX_NUM_APP; i++) {
> - if ( info->app_info[i].fileobject == &file->f_owner) {
> - //DEBUG("FT1000:ft1000_ioctl: Message is for AppId = %d\n", info->app_info[i].app_id);
> + if (ft1000dev->app_info[i].fileobject == &file->f_owner) {
> + //DEBUG("FT1000:ft1000_ioctl: Message is for AppId = %d\n", ft1000dev->app_info[i].app_id);
> break;
> }
> }
> @@ -690,13 +689,13 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
>
> result = 0;
> pioctl_dpram = argp;
> - if (list_empty(&info->app_info[i].app_sqlist) == 0) {
> + if (list_empty(&ft1000dev->app_info[i].app_sqlist) == 0) {
> //DEBUG("FT1000:ft1000_ioctl:Message detected in slow queue\n");
> spin_lock_irqsave(&free_buff_lock, flags);
> - pdpram_blk = list_entry(info->app_info[i].app_sqlist.next, struct dpram_blk, list);
> + pdpram_blk = list_entry(ft1000dev->app_info[i].app_sqlist.next, struct dpram_blk, list);
> list_del(&pdpram_blk->list);
> - info->app_info[i].NumOfMsg--;
> - //DEBUG("FT1000:ft1000_ioctl:NumOfMsg for app %d = %d\n", i, info->app_info[i].NumOfMsg);
> + ft1000dev->app_info[i].NumOfMsg--;
> + //DEBUG("FT1000:ft1000_ioctl:NumOfMsg for app %d = %d\n", i, ft1000dev->app_info[i].NumOfMsg);
> spin_unlock_irqrestore(&free_buff_lock, flags);
> msglen = ntohs(*(u16 *)pdpram_blk->pbuffer) + PSEUDOSZ;
> result = get_user(msglen, &pioctl_dpram->total_len);
> @@ -723,7 +722,7 @@ static long ft1000_ioctl (struct file *file, unsigned int command,
> result = -ENOTTY;
> break;
> }
> - info->fAppMsgPend = 0;
> + ft1000dev->fAppMsgPend = 0;
> return result;
> }
>
> @@ -741,6 +740,7 @@ static int ft1000_release (struct inode *inode, struct file *file)
> {
> struct ft1000_info *info;
> struct net_device *dev;
> + struct ft1000_device *ft1000dev;
> int i;
> struct dpram_blk *pdpram_blk;
>
> @@ -748,16 +748,17 @@ static int ft1000_release (struct inode *inode, struct file *file)
>
> dev = file->private_data;
> info = netdev_priv(dev);
> + ft1000dev = info->priv;
>
> if (ft1000_flarion_cnt == 0) {
> - info->appcnt--;
> + ft1000dev->appcnt--;
> return (-EBADF);
> }
>
> // Search for matching file object
> for (i=0; i<MAX_NUM_APP; i++) {
> - if ( info->app_info[i].fileobject == &file->f_owner) {
> - //DEBUG("FT1000:ft1000_ioctl: Message is for AppId = %d\n", info->app_info[i].app_id);
> + if ( ft1000dev->app_info[i].fileobject == &file->f_owner) {
> + //DEBUG("FT1000:ft1000_ioctl: Message is for AppId = %d\n", ft1000dev->app_info[i].app_id);
> break;
> }
> }
> @@ -765,17 +766,17 @@ static int ft1000_release (struct inode *inode, struct file *file)
> if (i==MAX_NUM_APP)
> return 0;
>
> - while (list_empty(&info->app_info[i].app_sqlist) == 0) {
> + while (list_empty(&ft1000dev->app_info[i].app_sqlist) == 0) {
> DEBUG("Remove and free memory queue up on slow queue\n");
> - pdpram_blk = list_entry(info->app_info[i].app_sqlist.next, struct dpram_blk, list);
> + pdpram_blk = list_entry(ft1000dev->app_info[i].app_sqlist.next, struct dpram_blk, list);
> list_del(&pdpram_blk->list);
> ft1000_free_buffer(pdpram_blk, &freercvpool);
> }
>
> // initialize application information
> - info->appcnt--;
> - DEBUG("ft1000_chdev:%s:appcnt = %d\n", __FUNCTION__, info->appcnt);
> - info->app_info[i].fileobject = NULL;
> + ft1000dev->appcnt--;
> + DEBUG("ft1000_chdev:%s:appcnt = %d\n", __FUNCTION__, ft1000dev->appcnt);
> + ft1000dev->app_info[i].fileobject = NULL;
>
> return 0;
> }
> diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_download.c b/drivers/staging/ft1000/ft1000-usb/ft1000_download.c
> index 1972b72..cc00e94 100644
> --- a/drivers/staging/ft1000/ft1000-usb/ft1000_download.c
> +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_download.c
> @@ -188,7 +188,6 @@ static u16 get_handshake(struct ft1000_device *ft1000dev, u16 expected_value)
> u16 handshake;
> int loopcnt;
> u32 status = 0;
> - struct ft1000_info *pft1000info = netdev_priv(ft1000dev->net);
>
> loopcnt = 0;
>
> @@ -196,10 +195,10 @@ static u16 get_handshake(struct ft1000_device *ft1000dev, u16 expected_value)
> /* Need to clear downloader doorbell if Hartley ASIC */
> status = ft1000_write_register(ft1000dev, FT1000_DB_DNLD_RX,
> FT1000_REG_DOORBELL);
> - if (pft1000info->fcodeldr) {
> + if (ft1000dev->fcodeldr) {
> DEBUG(" get_handshake: fcodeldr is %d\n",
> - pft1000info->fcodeldr);
> - pft1000info->fcodeldr = 0;
> + ft1000dev->fcodeldr);
> + ft1000dev->fcodeldr = 0;
> status = check_usb_db(ft1000dev);
> if (status != STATUS_SUCCESS) {
> DEBUG("get_handshake: check_usb_db failed\n");
> @@ -270,29 +269,28 @@ static u16 get_handshake_usb(struct ft1000_device *ft1000dev, u16 expected_value
> u16 temp;
> u32 status = 0;
>
> - struct ft1000_info *pft1000info = netdev_priv(ft1000dev->net);
> loopcnt = 0;
> handshake = 0;
>
> while (loopcnt < 100) {
> - if (pft1000info->usbboot == 2) {
> + if (ft1000dev->usbboot == 2) {
> status = ft1000_read_dpram32(ft1000dev, 0,
> - (u8 *)&(pft1000info->tempbuf[0]), 64);
> + (u8 *)&(ft1000dev->tempbuf[0]), 64);
> for (temp = 0; temp < 16; temp++) {
> DEBUG("tempbuf %d = 0x%x\n", temp,
> - pft1000info->tempbuf[temp]);
> + ft1000dev->tempbuf[temp]);
> }
> status = ft1000_read_dpram16(ft1000dev,
> DWNLD_MAG1_HANDSHAKE_LOC,
> (u8 *)&handshake, 1);
> DEBUG("handshake from read_dpram16 = 0x%x\n",
> handshake);
> - if (pft1000info->dspalive == pft1000info->tempbuf[6]) {
> + if (ft1000dev->dspalive == ft1000dev->tempbuf[6]) {
> handshake = 0;
> } else {
> - handshake = pft1000info->tempbuf[1];
> - pft1000info->dspalive =
> - pft1000info->tempbuf[6];
> + handshake = ft1000dev->tempbuf[1];
> + ft1000dev->dspalive =
> + ft1000dev->tempbuf[6];
> }
> } else {
> status = ft1000_read_dpram16(ft1000dev,
> @@ -336,9 +334,8 @@ static u16 get_request_type(struct ft1000_device *ft1000dev)
> u32 status;
> u16 tempword;
> u32 tempx;
> - struct ft1000_info *pft1000info = netdev_priv(ft1000dev->net);
>
> - if (pft1000info->bootmode == 1) {
> + if (ft1000dev->bootmode == 1) {
> status = fix_ft1000_read_dpram32(ft1000dev,
> DWNLD_MAG1_TYPE_LOC, (u8 *)&tempx);
> tempx = ntohl(tempx);
> @@ -360,16 +357,15 @@ static u16 get_request_type_usb(struct ft1000_device *ft1000dev)
> u32 status;
> u16 tempword;
> u32 tempx;
> - struct ft1000_info *pft1000info = netdev_priv(ft1000dev->net);
>
> - if (pft1000info->bootmode == 1) {
> + if (ft1000dev->bootmode == 1) {
> status = fix_ft1000_read_dpram32(ft1000dev,
> DWNLD_MAG1_TYPE_LOC, (u8 *)&tempx);
> tempx = ntohl(tempx);
> } else {
> - if (pft1000info->usbboot == 2) {
> - tempx = pft1000info->tempbuf[2];
> - tempword = pft1000info->tempbuf[3];
> + if (ft1000dev->usbboot == 2) {
> + tempx = ft1000dev->tempbuf[2];
> + tempword = ft1000dev->tempbuf[3];
> } else {
> tempx = 0;
> status = ft1000_read_dpram16(ft1000dev,
> @@ -401,9 +397,8 @@ static long get_request_value(struct ft1000_device *ft1000dev)
> u32 value;
> u16 tempword;
> u32 status;
> - struct ft1000_info *pft1000info = netdev_priv(ft1000dev->net);
>
> - if (pft1000info->bootmode == 1) {
> + if (ft1000dev->bootmode == 1) {
> status = fix_ft1000_read_dpram32(ft1000dev,
> DWNLD_MAG1_SIZE_LOC, (u8 *)&value);
> value = ntohl(value);
> @@ -507,7 +502,6 @@ static u32 write_blk (struct ft1000_device *ft1000dev, u16 **pUsFile, u8 **pUcFi
> u16 tempword;
> u16 tempbuffer[64];
> u16 resultbuffer[64];
> - struct ft1000_info *pft1000info = netdev_priv(ft1000dev->net);
>
> //DEBUG("FT1000:download:start word_length = %d\n",(int)word_length);
> dpram = (u16)DWNLD_MAG1_PS_HDR_LOC;
> @@ -548,7 +542,7 @@ static u32 write_blk (struct ft1000_device *ft1000dev, u16 **pUsFile, u8 **pUcFi
> //DEBUG("write_blk: loopcnt is %d\n", loopcnt);
> //DEBUG("write_blk: bootmode = %d\n", bootmode);
> //DEBUG("write_blk: dpram = %x\n", dpram);
> - if (pft1000info->bootmode == 0)
> + if (ft1000dev->bootmode == 0)
> {
> if (dpram >= 0x3F4)
> Status = ft1000_write_dpram32 (ft1000dev, dpram, (u8 *)&tempbuffer[0], 8);
> @@ -718,9 +712,9 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
>
> DEBUG("Entered scram_dnldr...\n");
>
> - pft1000info->fcodeldr = 0;
> - pft1000info->usbboot = 0;
> - pft1000info->dspalive = 0xffff;
> + ft1000dev->fcodeldr = 0;
> + ft1000dev->usbboot = 0;
> + ft1000dev->dspalive = 0xffff;
>
> //
> // Get version id of file, at first 4 bytes of file, for newer files.
> @@ -745,7 +739,7 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
> switch (state) {
> case STATE_START_DWNLD:
> DEBUG("FT1000:STATE_START_DWNLD\n");
> - if (pft1000info->usbboot)
> + if (ft1000dev->usbboot)
> handshake =
> get_handshake_usb(ft1000dev,
> HANDSHAKE_DSP_BL_READY);
> @@ -771,7 +765,7 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
>
> case STATE_BOOT_DWNLD:
> DEBUG("FT1000:STATE_BOOT_DWNLD\n");
> - pft1000info->bootmode = 1;
> + ft1000dev->bootmode = 1;
> handshake = get_handshake(ft1000dev, HANDSHAKE_REQUEST);
> if (handshake == HANDSHAKE_REQUEST) {
> /*
> @@ -797,7 +791,7 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
> //DEBUG("FT1000:download:s_file = 0x%8x\n", (int)s_file);
> //DEBUG("FT1000:download:c_file = 0x%8x\n", (int)c_file);
> state = STATE_CODE_DWNLD;
> - pft1000info->fcodeldr = 1;
> + ft1000dev->fcodeldr = 1;
> break;
> case REQUEST_CODE_SEGMENT:
> //DEBUG("FT1000:REQUEST_CODE_SEGMENT\n");
> @@ -842,7 +836,7 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
> status = STATUS_FAILURE;
> break;
> }
> - if (pft1000info->usbboot)
> + if (ft1000dev->usbboot)
> put_handshake_usb(ft1000dev,
> HANDSHAKE_RESPONSE);
> else
> @@ -858,8 +852,8 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
>
> case STATE_CODE_DWNLD:
> //DEBUG("FT1000:STATE_CODE_DWNLD\n");
> - pft1000info->bootmode = 0;
> - if (pft1000info->usbboot)
> + ft1000dev->bootmode = 0;
> + if (ft1000dev->usbboot)
> handshake =
> get_handshake_usb(ft1000dev,
> HANDSHAKE_REQUEST);
> @@ -870,7 +864,7 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
> /*
> * Get type associated with the request.
> */
> - if (pft1000info->usbboot)
> + if (ft1000dev->usbboot)
> request =
> get_request_type_usb(ft1000dev);
> else
> @@ -916,7 +910,7 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
> }
> break;
> case REQUEST_DONE_CL:
> - pft1000info->usbboot = 3;
> + ft1000dev->usbboot = 3;
> /* Reposition ptrs to beginning of provisioning section */
> s_file =
> (u16 *) (pFileStart +
> @@ -965,9 +959,9 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
>
> write_blk_fifo(ft1000dev, &s_file,
> &c_file, word_length);
> - if (pft1000info->usbboot == 0)
> - pft1000info->usbboot++;
> - if (pft1000info->usbboot == 1) {
> + if (ft1000dev->usbboot == 0)
> + ft1000dev->usbboot++;
> + if (ft1000dev->usbboot == 1) {
> tempword = 0;
> ft1000_write_dpram16(ft1000dev,
> DWNLD_MAG1_PS_HDR_LOC,
> @@ -1117,7 +1111,7 @@ u16 scram_dnldr(struct ft1000_device *ft1000dev, void *pFileStart,
> status = STATUS_FAILURE;
> break;
> }
> - if (pft1000info->usbboot)
> + if (ft1000dev->usbboot)
> put_handshake_usb(ft1000dev,
> HANDSHAKE_RESPONSE);
> else
> diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
> index 809fa48..bdfa3ed9 100644
> --- a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
> +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
> @@ -29,7 +29,7 @@
>
> //#define JDEBUG
>
> -static int ft1000_reset(struct net_device *ft1000dev);
> +static int ft1000_reset(void *ft1000dev);
> static int ft1000_submit_rx_urb(struct ft1000_info *info);
> static int ft1000_start_xmit(struct sk_buff *skb, struct net_device *dev);
> static int ft1000_open (struct net_device *dev);
> @@ -588,7 +588,7 @@ int dsp_reload(struct ft1000_device *ft1000dev)
> static void ft1000_reset_asic(struct net_device *dev)
> {
> struct ft1000_info *info = netdev_priv(dev);
> - struct ft1000_device *ft1000dev = info->pFt1000Dev;
> + struct ft1000_device *ft1000dev = info->priv;
> u16 tempword;
>
> DEBUG("ft1000_hw:ft1000_reset_asic called\n");
> @@ -627,15 +627,15 @@ static void ft1000_reset_asic(struct net_device *dev)
> static int ft1000_reset_card(struct net_device *dev)
> {
> struct ft1000_info *info = netdev_priv(dev);
> - struct ft1000_device *ft1000dev = info->pFt1000Dev;
> + struct ft1000_device *ft1000dev = info->priv;
> u16 tempword;
> struct prov_record *ptr;
>
> DEBUG("ft1000_hw:ft1000_reset_card called.....\n");
>
> - info->fCondResetPend = 1;
> + ft1000dev->fCondResetPend = 1;
> info->CardReady = 0;
> - info->fProvComplete = 0;
> + ft1000dev->fProvComplete = 0;
>
> /* Make sure we free any memory reserve for provisioning */
> while (list_empty(&info->prov_list) == 0) {
> @@ -666,7 +666,7 @@ static int ft1000_reset_card(struct net_device *dev)
>
> info->CardReady = 1;
>
> - info->fCondResetPend = 0;
> + ft1000dev->fCondResetPend = 0;
>
> return TRUE;
> }
> @@ -729,8 +729,8 @@ int init_ft1000_netdev(struct ft1000_device *ft1000dev)
> goto err_net;
> }
>
> - pInfo->CardNumber = gCardIndex;
> - DEBUG("card number = %d\n", pInfo->CardNumber);
> + ft1000dev->CardNumber = gCardIndex;
> + DEBUG("card number = %d\n", ft1000dev->CardNumber);
> } else {
> printk(KERN_ERR "ft1000: Invalid device name\n");
> ret_val = -ENXIO;
> @@ -740,27 +740,27 @@ int init_ft1000_netdev(struct ft1000_device *ft1000dev)
> memset(&pInfo->stats, 0, sizeof(struct net_device_stats));
>
> spin_lock_init(&pInfo->dpram_lock);
> - pInfo->pFt1000Dev = ft1000dev;
> + pInfo->priv = ft1000dev;
> pInfo->DrvErrNum = 0;
> pInfo->registered = 1;
> pInfo->ft1000_reset = ft1000_reset;
> pInfo->mediastate = 0;
> pInfo->fifo_cnt = 0;
> - pInfo->DeviceCreated = FALSE;
> + ft1000dev->DeviceCreated = FALSE;
> pInfo->CardReady = 0;
> pInfo->DSP_TIME[0] = 0;
> pInfo->DSP_TIME[1] = 0;
> pInfo->DSP_TIME[2] = 0;
> pInfo->DSP_TIME[3] = 0;
> - pInfo->fAppMsgPend = 0;
> - pInfo->fCondResetPend = 0;
> - pInfo->usbboot = 0;
> - pInfo->dspalive = 0;
> - memset(&pInfo->tempbuf[0], 0, sizeof(pInfo->tempbuf));
> + ft1000dev->fAppMsgPend = 0;
> + ft1000dev->fCondResetPend = 0;
> + ft1000dev->usbboot = 0;
> + ft1000dev->dspalive = 0;
> + memset(&ft1000dev->tempbuf[0], 0, sizeof(ft1000dev->tempbuf));
>
> INIT_LIST_HEAD(&pInfo->prov_list);
>
> - INIT_LIST_HEAD(&pInfo->nodes.list);
> + INIT_LIST_HEAD(&ft1000dev->nodes.list);
>
> netdev->netdev_ops = &ftnet_ops;
>
> @@ -854,7 +854,7 @@ int reg_ft1000_netdev(struct ft1000_device *ft1000dev,
> return 0;
> }
>
> -static int ft1000_reset(struct net_device *dev)
> +int ft1000_reset(void *dev)
> {
> ft1000_reset_card(dev);
> return 0;
> @@ -902,7 +902,7 @@ static void ft1000_usb_transmit_complete(struct urb *urb)
> static int ft1000_copy_down_pkt(struct net_device *netdev, u8 * packet, u16 len)
> {
> struct ft1000_info *pInfo = netdev_priv(netdev);
> - struct ft1000_device *pFt1000Dev = pInfo->pFt1000Dev;
> + struct ft1000_device *pFt1000Dev = pInfo->priv;
>
> int count, ret;
> u8 *t;
> @@ -981,7 +981,7 @@ static int ft1000_copy_down_pkt(struct net_device *netdev, u8 * packet, u16 len)
> static int ft1000_start_xmit(struct sk_buff *skb, struct net_device *dev)
> {
> struct ft1000_info *pInfo = netdev_priv(dev);
> - struct ft1000_device *pFt1000Dev = pInfo->pFt1000Dev;
> + struct ft1000_device *pFt1000Dev = pInfo->priv;
> u8 *pdata;
> int maxlen, pipe;
>
> @@ -1039,7 +1039,7 @@ err:
> static int ft1000_copy_up_pkt(struct urb *urb)
> {
> struct ft1000_info *info = urb->context;
> - struct ft1000_device *ft1000dev = info->pFt1000Dev;
> + struct ft1000_device *ft1000dev = info->priv;
> struct net_device *net = ft1000dev->net;
>
> u16 tempword;
> @@ -1134,7 +1134,7 @@ static int ft1000_copy_up_pkt(struct urb *urb)
> static int ft1000_submit_rx_urb(struct ft1000_info *info)
> {
> int result;
> - struct ft1000_device *pFt1000Dev = info->pFt1000Dev;
> + struct ft1000_device *pFt1000Dev = info->priv;
>
> if (pFt1000Dev->status & FT1000_STATUS_CLOSING) {
> DEBUG("network driver is closed, return\n");
> @@ -1179,8 +1179,6 @@ static int ft1000_open(struct net_device *dev)
> struct ft1000_info *pInfo = netdev_priv(dev);
> struct timeval tv;
>
> - DEBUG("ft1000_open is called for card %d\n", pInfo->CardNumber);
^^^ Why removing this debug?
> -
> pInfo->stats.rx_bytes = 0;
> pInfo->stats.tx_bytes = 0;
> pInfo->stats.rx_packets = 0;
> @@ -1213,7 +1211,7 @@ static int ft1000_open(struct net_device *dev)
> int ft1000_close(struct net_device *net)
> {
> struct ft1000_info *pInfo = netdev_priv(net);
> - struct ft1000_device *ft1000dev = pInfo->pFt1000Dev;
> + struct ft1000_device *ft1000dev = pInfo->priv;
>
> ft1000dev->status |= FT1000_STATUS_CLOSING;
>
> @@ -1251,9 +1249,8 @@ static int ft1000_chkcard(struct ft1000_device *dev)
> {
> u16 tempword;
> u16 status;
> - struct ft1000_info *info = netdev_priv(dev->net);
>
> - if (info->fCondResetPend) {
> + if (dev->fCondResetPend) {
> DEBUG
> ("ft1000_hw:ft1000_chkcard:Card is being reset, return FALSE\n");
> return TRUE;
> @@ -1441,7 +1438,7 @@ static int ft1000_dsp_prov(void *arg)
>
> msleep(100);
>
> - info->fProvComplete = 1;
> + dev->fProvComplete = 1;
> info->CardReady = 1;
>
> return STATUS_SUCCESS;
> @@ -1498,7 +1495,7 @@ static int ft1000_proc_drvmsg(struct ft1000_device *dev, u16 size)
> if (pmediamsg->state) {
> DEBUG("Media is up\n");
> if (info->mediastate == 0) {
> - if (info->NetDevRegDone) {
> + if (dev->NetDevRegDone) {
> netif_wake_queue(dev->
> net);
> }
> @@ -1508,7 +1505,7 @@ static int ft1000_proc_drvmsg(struct ft1000_device *dev, u16 size)
> DEBUG("Media is down\n");
> if (info->mediastate == 1) {
> info->mediastate = 0;
> - if (info->NetDevRegDone) {
> + if (dev->NetDevRegDone) {
> }
> info->ConTm = 0;
> }
> @@ -1567,12 +1564,12 @@ static int ft1000_proc_drvmsg(struct ft1000_device *dev, u16 size)
> * Send provisioning data to DSP
> */
> if (list_empty(&info->prov_list) == 0) {
> - info->fProvComplete = 0;
> + dev->fProvComplete = 0;
> status = ft1000_dsp_prov(dev);
> if (status != STATUS_SUCCESS)
> goto out;
> } else {
> - info->fProvComplete = 1;
> + dev->fProvComplete = 1;
> status =
> ft1000_write_register(dev, FT1000_DB_HB,
> FT1000_REG_DOORBELL);
> @@ -1605,7 +1602,7 @@ static int ft1000_proc_drvmsg(struct ft1000_device *dev, u16 size)
> case DSP_GET_INFO:{
> DEBUG("FT1000:drivermsg:Got DSP_GET_INFO\n");
> /* copy dsp info block to dsp */
> - info->DrvMsgPend = 1;
> + dev->DrvMsgPend = 1;
> /* allow any outstanding ioctl to finish */
> mdelay(10);
> status =
> @@ -1667,7 +1664,7 @@ static int ft1000_proc_drvmsg(struct ft1000_device *dev, u16 size)
> status =
> ft1000_write_register(dev, FT1000_DB_DPRAM_TX,
> FT1000_REG_DOORBELL);
> - info->DrvMsgPend = 0;
> + dev->DrvMsgPend = 0;
>
> break;
> }
> @@ -1675,7 +1672,7 @@ static int ft1000_proc_drvmsg(struct ft1000_device *dev, u16 size)
> case GET_DRV_ERR_RPT_MSG:{
> DEBUG("FT1000:drivermsg:Got GET_DRV_ERR_RPT_MSG\n");
> /* copy driver error message to dsp */
> - info->DrvMsgPend = 1;
> + dev->DrvMsgPend = 1;
> /* allow any outstanding ioctl to finish */
> mdelay(10);
> status =
> @@ -1735,7 +1732,7 @@ static int ft1000_proc_drvmsg(struct ft1000_device *dev, u16 size)
> (u16) (0x0012 + PSEUDOSZ));
> info->DrvErrNum = 0;
> }
> - info->DrvMsgPend = 0;
> + dev->DrvMsgPend = 0;
>
> break;
> }
> @@ -1804,8 +1801,8 @@ int ft1000_poll(void* dev_id)
> // Check which application has registered for dsp broadcast messages
>
> for (i=0; i<MAX_NUM_APP; i++) {
> - if ( (info->app_info[i].DspBCMsgFlag) && (info->app_info[i].fileobject) &&
> - (info->app_info[i].NumOfMsg < MAX_MSG_LIMIT) )
> + if ( (dev->app_info[i].DspBCMsgFlag) && (dev->app_info[i].fileobject) &&
> + (dev->app_info[i].NumOfMsg < MAX_MSG_LIMIT) )
> {
> nxtph = FT1000_DPRAM_RX_BASE + 2;
> pdpram_blk = ft1000_get_buffer (&freercvpool);
> @@ -1813,15 +1810,15 @@ int ft1000_poll(void* dev_id)
> if ( ft1000_receive_cmd(dev, pdpram_blk->pbuffer, MAX_CMD_SQSIZE, &nxtph) ) {
> ppseudo_hdr = (struct pseudo_hdr *)pdpram_blk->pbuffer;
> // Put message into the appropriate application block
> - info->app_info[i].nRxMsg++;
> + dev->app_info[i].nRxMsg++;
> spin_lock_irqsave(&free_buff_lock, flags);
> - list_add_tail(&pdpram_blk->list, &info->app_info[i].app_sqlist);
> - info->app_info[i].NumOfMsg++;
> + list_add_tail(&pdpram_blk->list, &dev->app_info[i].app_sqlist);
> + dev->app_info[i].NumOfMsg++;
> spin_unlock_irqrestore(&free_buff_lock, flags);
> - wake_up_interruptible(&info->app_info[i].wait_dpram_msg);
> + wake_up_interruptible(&dev->app_info[i].wait_dpram_msg);
> }
> else {
> - info->app_info[i].nRxMsgMiss++;
> + dev->app_info[i].nRxMsgMiss++;
> // Put memory back to free pool
> ft1000_free_buffer(pdpram_blk, &freercvpool);
> DEBUG("pdpram_blk::ft1000_get_buffer NULL\n");
> @@ -1829,7 +1826,7 @@ int ft1000_poll(void* dev_id)
> }
> else {
> DEBUG("Out of memory in free receive command pool\n");
> - info->app_info[i].nRxMsgMiss++;
> + dev->app_info[i].nRxMsgMiss++;
> }
> }
> }
> @@ -1842,7 +1839,7 @@ int ft1000_poll(void* dev_id)
> ppseudo_hdr = (struct pseudo_hdr *)pdpram_blk->pbuffer;
> // Search for correct application block
> for (i=0; i<MAX_NUM_APP; i++) {
> - if (info->app_info[i].app_id == ppseudo_hdr->portdest) {
> + if (dev->app_info[i].app_id == ppseudo_hdr->portdest) {
> break;
> }
> }
> @@ -1853,15 +1850,15 @@ int ft1000_poll(void* dev_id)
> ft1000_free_buffer(pdpram_blk, &freercvpool);
> }
> else {
> - if (info->app_info[i].NumOfMsg > MAX_MSG_LIMIT) {
> + if (dev->app_info[i].NumOfMsg > MAX_MSG_LIMIT) {
> // Put memory back to free pool
> ft1000_free_buffer(pdpram_blk, &freercvpool);
> }
> else {
> - info->app_info[i].nRxMsg++;
> + dev->app_info[i].nRxMsg++;
> // Put message into the appropriate application block
> - list_add_tail(&pdpram_blk->list, &info->app_info[i].app_sqlist);
> - info->app_info[i].NumOfMsg++;
> + list_add_tail(&pdpram_blk->list, &dev->app_info[i].app_sqlist);
> + dev->app_info[i].NumOfMsg++;
> }
> }
> }
> @@ -1921,7 +1918,7 @@ int ft1000_poll(void* dev_id)
> else if (tempword & FT1000_DB_COND_RESET) {
> DEBUG("ft1000_poll: FT1000_REG_DOORBELL message type: FT1000_DB_COND_RESET\n");
>
> - if (info->fAppMsgPend == 0) {
> + if (dev->fAppMsgPend == 0) {
> // Reset ASIC and DSP
>
> status = ft1000_read_dpram16(dev, FT1000_MAG_DSP_TIMER0, (u8 *)&(info->DSP_TIME[0]), FT1000_MAG_DSP_TIMER0_INDX);
> @@ -1934,8 +1931,8 @@ int ft1000_poll(void* dev_id)
> info->ft1000_reset(dev->net);
> }
> else {
> - info->fProvComplete = 0;
> - info->fCondResetPend = 1;
> + dev->fProvComplete = 0;
> + dev->fCondResetPend = 1;
> }
>
> ft1000_write_register(dev, FT1000_DB_COND_RESET, FT1000_REG_DOORBELL);
> diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_proc.c b/drivers/staging/ft1000/ft1000-usb/ft1000_proc.c
> index 5ae3967..c290b66 100644
> --- a/drivers/staging/ft1000/ft1000-usb/ft1000_proc.c
> +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_proc.c
> @@ -94,11 +94,11 @@ ft1000ReadProc(char *page, char **start, off_t off, int count, int *eof,
>
>
> if (info->ProgConStat != 0xFF) {
> - ft1000_read_dpram16(info->pFt1000Dev, FT1000_MAG_DSP_LED,
> + ft1000_read_dpram16(info->priv, FT1000_MAG_DSP_LED,
> (u8 *)&ledStat, FT1000_MAG_DSP_LED_INDX);
> info->LedStat = ntohs(ledStat);
>
> - ft1000_read_dpram16(info->pFt1000Dev, FT1000_MAG_DSP_CON_STATE,
> + ft1000_read_dpram16(info->priv, FT1000_MAG_DSP_CON_STATE,
> (u8 *)&conStat, FT1000_MAG_DSP_CON_STATE_INDX);
> info->ConStat = ntohs(conStat);
> do_gettimeofday(&tv);
> diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c
> index b2ecd0e..e97fbc9 100644
> --- a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c
> +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c
> @@ -171,11 +171,11 @@ static int ft1000_probe(struct usb_interface *interface,
> }
>
> gPollingfailed = FALSE;
> - pft1000info->pPollThread =
> + ft1000dev->pPollThread =
> kthread_run(ft1000_poll_thread, ft1000dev, "ft1000_poll");
>
> - if (IS_ERR(pft1000info->pPollThread)) {
> - ret = PTR_ERR(pft1000info->pPollThread);
> + if (IS_ERR(ft1000dev->pPollThread)) {
> + ret = PTR_ERR(ft1000dev->pPollThread);
> goto err_load;
> }
>
> @@ -200,7 +200,7 @@ static int ft1000_probe(struct usb_interface *interface,
> if (ret)
> goto err_proc;
>
> - pft1000info->NetDevRegDone = 1;
> + ft1000dev->NetDevRegDone = 1;
>
> return 0;
>
> @@ -208,7 +208,7 @@ err_proc:
> unregister_netdev(ft1000dev->net);
> free_netdev(ft1000dev->net);
> err_thread:
> - kthread_stop(pft1000info->pPollThread);
> + kthread_stop(ft1000dev->pPollThread);
> err_load:
> kfree(pFileStart);
> err_fw:
> @@ -219,6 +219,7 @@ err_fw:
> static void ft1000_disconnect(struct usb_interface *interface)
> {
> struct ft1000_info *pft1000info;
> + struct ft1000_device *ft1000dev;
>
> DEBUG("ft1000_disconnect is called\n");
>
> @@ -226,28 +227,29 @@ static void ft1000_disconnect(struct usb_interface *interface)
> DEBUG("In disconnect pft1000info=%p\n", pft1000info);
>
> if (pft1000info) {
> + ft1000dev = pft1000info->priv;
> ft1000_cleanup_proc(pft1000info);
> - if (pft1000info->pPollThread)
> - kthread_stop(pft1000info->pPollThread);
> + if (ft1000dev->pPollThread)
> + kthread_stop(ft1000dev->pPollThread);
>
> DEBUG("ft1000_disconnect: threads are terminated\n");
>
> - if (pft1000info->pFt1000Dev->net) {
> + if (ft1000dev->net) {
> DEBUG("ft1000_disconnect: destroy char driver\n");
> - ft1000_destroy_dev(pft1000info->pFt1000Dev->net);
> - unregister_netdev(pft1000info->pFt1000Dev->net);
> + ft1000_destroy_dev(ft1000dev->net);
> + unregister_netdev(ft1000dev->net);
> DEBUG
> ("ft1000_disconnect: network device unregistered\n");
> - free_netdev(pft1000info->pFt1000Dev->net);
> + free_netdev(ft1000dev->net);
>
> }
>
> - usb_free_urb(pft1000info->pFt1000Dev->rx_urb);
> - usb_free_urb(pft1000info->pFt1000Dev->tx_urb);
> + usb_free_urb(ft1000dev->rx_urb);
> + usb_free_urb(ft1000dev->tx_urb);
>
> DEBUG("ft1000_disconnect: urb freed\n");
>
> - kfree(pft1000info->pFt1000Dev);
> + kfree(ft1000dev);
> }
> kfree(pFileStart);
>
> diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h
> index 2aa6a1c..152fe84 100644
> --- a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h
> +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h
> @@ -55,6 +55,13 @@ struct app_info_block {
>
> #define MAX_BUF_SIZE 4096
>
> +struct ft1000_debug_dirs {
> + struct list_head list;
> + struct dentry *dent;
> + struct dentry *file;
> + int int_number;
> +};
> +
> struct ft1000_device {
> struct usb_device *dev;
> struct net_device *net;
> @@ -69,71 +76,26 @@ struct ft1000_device {
>
> u8 bulk_in_endpointAddr;
> u8 bulk_out_endpointAddr;
> -} __packed;
> -
> -struct ft1000_debug_dirs {
> - struct list_head list;
> - struct dentry *dent;
> - struct dentry *file;
> - int int_number;
> -};
> -
> -struct ft1000_info {
> - struct ft1000_device *pFt1000Dev;
> - struct net_device_stats stats;
>
> struct task_struct *pPollThread;
> -
> unsigned char fcodeldr;
> unsigned char bootmode;
> unsigned char usbboot;
> unsigned short dspalive;
> - u16 ASIC_ID;
> bool fProvComplete;
> bool fCondResetPend;
> bool fAppMsgPend;
> - u16 DrvErrNum;
> - u16 AsicID;
> - int DspAsicReset;
> int DeviceCreated;
> - int CardReady;
> int NetDevRegDone;
> u8 CardNumber;
> u8 DeviceName[15];
> struct ft1000_debug_dirs nodes;
> - int registered;
> - int mediastate;
> - u8 squeseqnum; /* sequence number on slow queue */
> - spinlock_t dpram_lock;
> spinlock_t fifo_lock;
> - u16 fifo_cnt;
> - u8 DspVer[DSPVERSZ]; /* DSP version number */
> - u8 HwSerNum[HWSERNUMSZ]; /* Hardware Serial Number */
> - u8 Sku[SKUSZ]; /* SKU */
> - u8 eui64[EUISZ]; /* EUI64 */
> - time_t ConTm; /* Connection Time */
> - u8 ProductMode[MODESZ];
> - u8 RfCalVer[CALVERSZ];
> - u8 RfCalDate[CALDATESZ];
> - u16 DSP_TIME[4];
> - u16 LedStat;
> - u16 ConStat;
> - u16 ProgConStat;
> - struct list_head prov_list;
> int appcnt;
> struct app_info_block app_info[MAX_NUM_APP];
> - u16 DSPInfoBlklen;
> u16 DrvMsgPend;
> - int (*ft1000_reset)(struct net_device *dev);
> - u16 DSPInfoBlk[MAX_DSP_SESS_REC];
> - union {
> - u16 Rec[MAX_DSP_SESS_REC];
> - u32 MagRec[MAX_DSP_SESS_REC/2];
> - } DSPSess;
> unsigned short tempbuf[32];
> - char netdevname[IFNAMSIZ];
> - struct proc_dir_entry *ft1000_proc_dir;
> -};
> +} __packed;
>
>
> struct dpram_blk {
> diff --git a/drivers/staging/ft1000/ft1000.h b/drivers/staging/ft1000/ft1000.h
> index 03baa57..175abfa 100644
> --- a/drivers/staging/ft1000/ft1000.h
> +++ b/drivers/staging/ft1000/ft1000.h
> @@ -250,3 +250,38 @@ struct prov_record {
> struct list_head list;
> u8 *pprov_data;
> };
> +
> +struct ft1000_info {
> + void *priv;
> + struct net_device_stats stats;
> + u16 DrvErrNum;
> + u16 AsicID;
> + int CardReady;
> + int registered;
> + int mediastate;
> + u8 squeseqnum; /* sequence number on slow queue */
> + spinlock_t dpram_lock;
> + u16 fifo_cnt;
> + u8 DspVer[DSPVERSZ]; /* DSP version number */
> + u8 HwSerNum[HWSERNUMSZ]; /* Hardware Serial Number */
> + u8 Sku[SKUSZ]; /* SKU */
> + u8 eui64[EUISZ]; /* EUI64 */
> + time_t ConTm; /* Connection Time */
> + u8 ProductMode[MODESZ];
> + u8 RfCalVer[CALVERSZ];
> + u8 RfCalDate[CALDATESZ];
> + u16 DSP_TIME[4];
> + u16 LedStat;
> + u16 ConStat;
> + u16 ProgConStat;
> + struct list_head prov_list;
> + u16 DSPInfoBlklen;
> + int (*ft1000_reset)(void *);
> + u16 DSPInfoBlk[MAX_DSP_SESS_REC];
> + union {
> + u16 Rec[MAX_DSP_SESS_REC];
> + u32 MagRec[MAX_DSP_SESS_REC/2];
> + } DSPSess;
> + struct proc_dir_entry *ft1000_proc_dir;
> + char netdevname[IFNAMSIZ];
> +};
> --
> Ondrej Zary
Thanks,
Marek
--
as simple and primitive as possible
-------------------------------------------------
Marek Belisko - OPEN-NANDRA
Freelance Developer
Ruska Nova Ves 219 | Presov, 08005 Slovak Republic
Tel: +421 915 052 184
skype: marekwhite
twitter: #opennandra
web: http://open-nandra.com
On Monday 12 November 2012, Belisko Marek wrote:
> Hi Ondrej,
>
> On Fri, Nov 9, 2012 at 10:42 PM, Ondrej Zary <[email protected]>
wrote:
> > Unify struct ft1000_info between ft1000-usb and ft1000-pcmcia and move it
> > to common ft1000.h.
> >
> > ft1000-pcmcia seems to work. Please test ft1000-usb.
> >
> > Signed-off-by: Ondrej Zary <[email protected]>
> > ---
> > drivers/staging/ft1000/ft1000-pcmcia/ft1000.h | 33 +-----
> > drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c | 21 ++-
> > drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c | 10 +-
> > drivers/staging/ft1000/ft1000-usb/ft1000_debug.c | 147
> > ++++++++++---------- .../staging/ft1000/ft1000-usb/ft1000_download.c |
> > 70 +++++----- drivers/staging/ft1000/ft1000-usb/ft1000_hw.c | 99
> > +++++++------- drivers/staging/ft1000/ft1000-usb/ft1000_proc.c | 4
> > +-
> > drivers/staging/ft1000/ft1000-usb/ft1000_usb.c | 30 ++--
> > drivers/staging/ft1000/ft1000-usb/ft1000_usb.h | 54 +------
> > drivers/staging/ft1000/ft1000.h | 35 +++++
> > 10 files changed, 236 insertions(+), 267 deletions(-)
> >
> > diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h
> > b/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h index adb436e..65f7ab6
> > 100644
> > --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h
> > +++ b/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h
> > @@ -31,41 +31,10 @@
> > #define SUCCESS 0x00
> > #define FAILURE 0x01
> >
> > -struct ft1000_info {
> > - struct net_device_stats stats;
> > - u16 DrvErrNum;
> > - u16 AsicID;
> > +struct ft1000_pcmcia {
>
> To be consistent can you please name also usb part not ft100_device
> but e.g. ft1000_usb or something?
Yes, that's a good idea. I'd like to do that in a separate patch, this one is
already big enough.
> > @@ -1179,8 +1179,6 @@ static int ft1000_open(struct net_device *dev)
> > struct ft1000_info *pInfo = netdev_priv(dev);
> > struct timeval tv;
> >
> > - DEBUG("ft1000_open is called for card %d\n", pInfo->CardNumber);
>
> ^^^ Why removing this debug?
I don't remember exactly (this is from an old patch) but probably because I
didn't want to add code to reach CardNumber (which should be removed too).
The debug messages are a mess, some are completely useless, some should be
non-debug instead.
If you have the USB hardware, please test if this patch does not break
anything. I have only a PCMCIA card.
--
Ondrej Zary
On Tue, Nov 13, 2012 at 11:11 AM, Ondrej Zary
<[email protected]> wrote:
> On Monday 12 November 2012, Belisko Marek wrote:
>> Hi Ondrej,
>>
>> On Fri, Nov 9, 2012 at 10:42 PM, Ondrej Zary <[email protected]>
> wrote:
>> > Unify struct ft1000_info between ft1000-usb and ft1000-pcmcia and move it
>> > to common ft1000.h.
>> >
>> > ft1000-pcmcia seems to work. Please test ft1000-usb.
>> >
>> > Signed-off-by: Ondrej Zary <[email protected]>
>> > ---
>> > drivers/staging/ft1000/ft1000-pcmcia/ft1000.h | 33 +-----
>> > drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c | 21 ++-
>> > drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c | 10 +-
>> > drivers/staging/ft1000/ft1000-usb/ft1000_debug.c | 147
>> > ++++++++++---------- .../staging/ft1000/ft1000-usb/ft1000_download.c |
>> > 70 +++++----- drivers/staging/ft1000/ft1000-usb/ft1000_hw.c | 99
>> > +++++++------- drivers/staging/ft1000/ft1000-usb/ft1000_proc.c | 4
>> > +-
>> > drivers/staging/ft1000/ft1000-usb/ft1000_usb.c | 30 ++--
>> > drivers/staging/ft1000/ft1000-usb/ft1000_usb.h | 54 +------
>> > drivers/staging/ft1000/ft1000.h | 35 +++++
>> > 10 files changed, 236 insertions(+), 267 deletions(-)
>> >
>> > diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h
>> > b/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h index adb436e..65f7ab6
>> > 100644
>> > --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h
>> > +++ b/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h
>> > @@ -31,41 +31,10 @@
>> > #define SUCCESS 0x00
>> > #define FAILURE 0x01
>> >
>> > -struct ft1000_info {
>> > - struct net_device_stats stats;
>> > - u16 DrvErrNum;
>> > - u16 AsicID;
>> > +struct ft1000_pcmcia {
>>
>> To be consistent can you please name also usb part not ft100_device
>> but e.g. ft1000_usb or something?
>
> Yes, that's a good idea. I'd like to do that in a separate patch, this one is
> already big enough.
OK good idea.
>
>> > @@ -1179,8 +1179,6 @@ static int ft1000_open(struct net_device *dev)
>> > struct ft1000_info *pInfo = netdev_priv(dev);
>> > struct timeval tv;
>> >
>> > - DEBUG("ft1000_open is called for card %d\n", pInfo->CardNumber);
>>
>> ^^^ Why removing this debug?
>
> I don't remember exactly (this is from an old patch) but probably because I
> didn't want to add code to reach CardNumber (which should be removed too).
> The debug messages are a mess, some are completely useless, some should be
> non-debug instead.
There is rule one change one patch so please keep it there and remove
in separate patch.
>
> If you have the USB hardware, please test if this patch does not break
> anything. I have only a PCMCIA card.
I'll do testing on USB (waiting for HW to come ;))
>
> --
> Ondrej Zary
Cheers,
marek
--
as simple and primitive as possible
-------------------------------------------------
Marek Belisko - OPEN-NANDRA
Freelance Developer
Ruska Nova Ves 219 | Presov, 08005 Slovak Republic
Tel: +421 915 052 184
skype: marekwhite
twitter: #opennandra
web: http://open-nandra.com
Hi,
On Tue, Nov 13, 2012 at 12:32 PM, Belisko Marek <[email protected]> wrote:
> On Tue, Nov 13, 2012 at 11:11 AM, Ondrej Zary
> <[email protected]> wrote:
>> On Monday 12 November 2012, Belisko Marek wrote:
>>> Hi Ondrej,
>>>
>>> On Fri, Nov 9, 2012 at 10:42 PM, Ondrej Zary <[email protected]>
>> wrote:
>>> > Unify struct ft1000_info between ft1000-usb and ft1000-pcmcia and move it
>>> > to common ft1000.h.
>>> >
>>> > ft1000-pcmcia seems to work. Please test ft1000-usb.
>>> >
>>> > Signed-off-by: Ondrej Zary <[email protected]>
>>> > ---
>>> > drivers/staging/ft1000/ft1000-pcmcia/ft1000.h | 33 +-----
>>> > drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c | 21 ++-
>>> > drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c | 10 +-
>>> > drivers/staging/ft1000/ft1000-usb/ft1000_debug.c | 147
>>> > ++++++++++---------- .../staging/ft1000/ft1000-usb/ft1000_download.c |
>>> > 70 +++++----- drivers/staging/ft1000/ft1000-usb/ft1000_hw.c | 99
>>> > +++++++------- drivers/staging/ft1000/ft1000-usb/ft1000_proc.c | 4
>>> > +-
>>> > drivers/staging/ft1000/ft1000-usb/ft1000_usb.c | 30 ++--
>>> > drivers/staging/ft1000/ft1000-usb/ft1000_usb.h | 54 +------
>>> > drivers/staging/ft1000/ft1000.h | 35 +++++
>>> > 10 files changed, 236 insertions(+), 267 deletions(-)
>>> >
>>> > diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h
>>> > b/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h index adb436e..65f7ab6
>>> > 100644
>>> > --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h
>>> > +++ b/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h
>>> > @@ -31,41 +31,10 @@
>>> > #define SUCCESS 0x00
>>> > #define FAILURE 0x01
>>> >
>>> > -struct ft1000_info {
>>> > - struct net_device_stats stats;
>>> > - u16 DrvErrNum;
>>> > - u16 AsicID;
>>> > +struct ft1000_pcmcia {
>>>
>>> To be consistent can you please name also usb part not ft100_device
>>> but e.g. ft1000_usb or something?
>>
>> Yes, that's a good idea. I'd like to do that in a separate patch, this one is
>> already big enough.
> OK good idea.
>>
>>> > @@ -1179,8 +1179,6 @@ static int ft1000_open(struct net_device *dev)
>>> > struct ft1000_info *pInfo = netdev_priv(dev);
>>> > struct timeval tv;
>>> >
>>> > - DEBUG("ft1000_open is called for card %d\n", pInfo->CardNumber);
>>>
>>> ^^^ Why removing this debug?
>>
>> I don't remember exactly (this is from an old patch) but probably because I
>> didn't want to add code to reach CardNumber (which should be removed too).
>> The debug messages are a mess, some are completely useless, some should be
>> non-debug instead.
> There is rule one change one patch so please keep it there and remove
> in separate patch.
>>
>> If you have the USB hardware, please test if this patch does not break
>> anything. I have only a PCMCIA card.
> I'll do testing on USB (waiting for HW to come ;))
USB testing done. It's working good. Please update patch according comments
and re-send. Thanks.
>>
>> --
>> Ondrej Zary
>
> Cheers,
>
> marek
>
> --
> as simple and primitive as possible
> -------------------------------------------------
> Marek Belisko - OPEN-NANDRA
> Freelance Developer
>
> Ruska Nova Ves 219 | Presov, 08005 Slovak Republic
> Tel: +421 915 052 184
> skype: marekwhite
> twitter: #opennandra
> web: http://open-nandra.com
Marek
--
as simple and primitive as possible
-------------------------------------------------
Marek Belisko - OPEN-NANDRA
Freelance Developer
Ruska Nova Ves 219 | Presov, 08005 Slovak Republic
Tel: +421 915 052 184
skype: marekwhite
twitter: #opennandra
web: http://open-nandra.com