Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 353880
b: refs/heads/master
c: 3aa2303
h: refs/heads/master
v: v3
  • Loading branch information
Ondrej Zary authored and Greg Kroah-Hartman committed Jan 7, 2013
1 parent 241a2e5 commit de4965a
Show file tree
Hide file tree
Showing 11 changed files with 239 additions and 267 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8d915d8c9b8c49ab4725e3d9a6d7b5a8b50751e7
refs/heads/master: 3aa2303a20e3aac5a8445777b665a433d60c2786
33 changes: 1 addition & 32 deletions trunk/drivers/staging/ft1000/ft1000-pcmcia/ft1000.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
21 changes: 15 additions & 6 deletions trunk/drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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++;
}
}
}
Expand Down Expand Up @@ -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];
Expand Down Expand Up @@ -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];
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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;
Expand Down
10 changes: 5 additions & 5 deletions trunk/drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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);
Expand All @@ -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);
}
Loading

0 comments on commit de4965a

Please sign in to comment.