git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[pandora-kernel.git]
/
drivers
/
net
/
pcmcia
/
xirc2ps_cs.c
diff --git
a/drivers/net/pcmcia/xirc2ps_cs.c
b/drivers/net/pcmcia/xirc2ps_cs.c
index
62664c0
..
8478dca
100644
(file)
--- a/
drivers/net/pcmcia/xirc2ps_cs.c
+++ b/
drivers/net/pcmcia/xirc2ps_cs.c
@@
-308,7
+308,7
@@
static void xirc2ps_detach(struct pcmcia_device *p_dev);
* less on other parts of the kernel.
*/
* less on other parts of the kernel.
*/
-static irqreturn_t xirc2ps_interrupt(int irq, void *dev_id
, struct pt_regs *regs
);
+static irqreturn_t xirc2ps_interrupt(int irq, void *dev_id);
/****************
* A linked list of "instances" of the device. Each actual
/****************
* A linked list of "instances" of the device. Each actual
@@
-332,6
+332,7
@@
static irqreturn_t xirc2ps_interrupt(int irq, void *dev_id, struct pt_regs *regs
*/
typedef struct local_info_t {
*/
typedef struct local_info_t {
+ struct net_device *dev;
struct pcmcia_device *p_dev;
dev_node_t node;
struct net_device_stats stats;
struct pcmcia_device *p_dev;
dev_node_t node;
struct net_device_stats stats;
@@
-353,7
+354,7
@@
typedef struct local_info_t {
*/
static int do_start_xmit(struct sk_buff *skb, struct net_device *dev);
static void do_tx_timeout(struct net_device *dev);
*/
static int do_start_xmit(struct sk_buff *skb, struct net_device *dev);
static void do_tx_timeout(struct net_device *dev);
-static void xirc2ps_tx_timeout_task(
void *data
);
+static void xirc2ps_tx_timeout_task(
struct work_struct *work
);
static struct net_device_stats *do_get_stats(struct net_device *dev);
static void set_addresses(struct net_device *dev);
static void set_multicast_list(struct net_device *dev);
static struct net_device_stats *do_get_stats(struct net_device *dev);
static void set_addresses(struct net_device *dev);
static void set_multicast_list(struct net_device *dev);
@@
-567,6
+568,7
@@
xirc2ps_probe(struct pcmcia_device *link)
if (!dev)
return -ENOMEM;
local = netdev_priv(dev);
if (!dev)
return -ENOMEM;
local = netdev_priv(dev);
+ local->dev = dev;
local->p_dev = link;
link->priv = dev;
local->p_dev = link;
link->priv = dev;
@@
-591,7
+593,7
@@
xirc2ps_probe(struct pcmcia_device *link)
#ifdef HAVE_TX_TIMEOUT
dev->tx_timeout = do_tx_timeout;
dev->watchdog_timeo = TX_TIMEOUT;
#ifdef HAVE_TX_TIMEOUT
dev->tx_timeout = do_tx_timeout;
dev->watchdog_timeo = TX_TIMEOUT;
- INIT_WORK(&local->tx_timeout_task, xirc2ps_tx_timeout_task
, dev
);
+ INIT_WORK(&local->tx_timeout_task, xirc2ps_tx_timeout_task);
#endif
return xirc2ps_config(link);
#endif
return xirc2ps_config(link);
@@
-707,22
+709,11
@@
set_card_type(struct pcmcia_device *link, const void *s)
* Returns: true if this is a CE2
*/
static int
* Returns: true if this is a CE2
*/
static int
-has_ce2_string(struct pcmcia_device *
link
)
+has_ce2_string(struct pcmcia_device *
p_dev
)
{
{
- tuple_t tuple;
- cisparse_t parse;
- u_char buf[256];
-
- tuple.Attributes = 0;
- tuple.TupleData = buf;
- tuple.TupleDataMax = 254;
- tuple.TupleOffset = 0;
- tuple.DesiredTuple = CISTPL_VERS_1;
- if (!first_tuple(link, &tuple, &parse) && parse.version_1.ns > 2) {
- if (strstr(parse.version_1.str + parse.version_1.ofs[2], "CE2"))
- return 1;
- }
- return 0;
+ if (p_dev->prod_id[2] && strstr(p_dev->prod_id[2], "CE2"))
+ return 1;
+ return 0;
}
/****************
}
/****************
@@
-792,13
+783,6
@@
xirc2ps_config(struct pcmcia_device * link)
goto failure;
}
goto failure;
}
- /* get configuration stuff */
- tuple.DesiredTuple = CISTPL_CONFIG;
- if ((err=first_tuple(link, &tuple, &parse)))
- goto cis_error;
- link->conf.ConfigBase = parse.config.base;
- link->conf.Present = parse.config.rmask[0];
-
/* get the ethernet address from the CIS */
tuple.DesiredTuple = CISTPL_FUNCE;
for (err = first_tuple(link, &tuple, &parse); !err;
/* get the ethernet address from the CIS */
tuple.DesiredTuple = CISTPL_FUNCE;
for (err = first_tuple(link, &tuple, &parse); !err;
@@
-1062,8
+1046,6
@@
xirc2ps_config(struct pcmcia_device * link)
xirc2ps_release(link);
return -ENODEV;
xirc2ps_release(link);
return -ENODEV;
- cis_error:
- printk(KNOT_XIRC "unable to parse CIS\n");
failure:
return -ENODEV;
} /* xirc2ps_config */
failure:
return -ENODEV;
} /* xirc2ps_config */
@@
-1121,7
+1103,7
@@
static int xirc2ps_resume(struct pcmcia_device *link)
* This is the Interrupt service route.
*/
static irqreturn_t
* This is the Interrupt service route.
*/
static irqreturn_t
-xirc2ps_interrupt(int irq, void *dev_id
, struct pt_regs *regs
)
+xirc2ps_interrupt(int irq, void *dev_id)
{
struct net_device *dev = (struct net_device *)dev_id;
local_info_t *lp = netdev_priv(dev);
{
struct net_device *dev = (struct net_device *)dev_id;
local_info_t *lp = netdev_priv(dev);
@@
-1344,9
+1326,11
@@
xirc2ps_interrupt(int irq, void *dev_id, struct pt_regs *regs)
/*====================================================================*/
static void
/*====================================================================*/
static void
-xirc2ps_tx_timeout_task(
void *data
)
+xirc2ps_tx_timeout_task(
struct work_struct *work
)
{
{
- struct net_device *dev = data;
+ local_info_t *local =
+ container_of(work, local_info_t, tx_timeout_task);
+ struct net_device *dev = local->dev;
/* reset the card */
do_reset(dev,1);
dev->trans_start = jiffies;
/* reset the card */
do_reset(dev,1);
dev->trans_start = jiffies;