diff options
Diffstat (limited to 'drivers/net/wireless/orinoco/spectrum_cs.c')
| -rw-r--r-- | drivers/net/wireless/orinoco/spectrum_cs.c | 32 | 
1 files changed, 6 insertions, 26 deletions
| diff --git a/drivers/net/wireless/orinoco/spectrum_cs.c b/drivers/net/wireless/orinoco/spectrum_cs.c index 59bda240fdc2..b51a9adc80f6 100644 --- a/drivers/net/wireless/orinoco/spectrum_cs.c +++ b/drivers/net/wireless/orinoco/spectrum_cs.c @@ -57,7 +57,6 @@ MODULE_PARM_DESC(ignore_cis_vcc, "Allow voltage mismatch between card and socket   * struct orinoco_private */  struct orinoco_pccard {  	struct pcmcia_device	*p_dev; -	dev_node_t node;  };  /********************************************************************/ @@ -193,10 +192,6 @@ spectrum_cs_probe(struct pcmcia_device *link)  	card->p_dev = link;  	link->priv = priv; -	/* Interrupt setup */ -	link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING; -	link->irq.Handler = orinoco_interrupt; -  	/* General socket configuration defaults can go here.  In this  	 * client, we assume very little, and rely on the CIS for  	 * almost everything.  In most clients, many details (i.e., @@ -218,8 +213,7 @@ static void spectrum_cs_detach(struct pcmcia_device *link)  {  	struct orinoco_private *priv = link->priv; -	if (link->dev_node) -		orinoco_if_del(priv); +	orinoco_if_del(priv);  	spectrum_cs_release(link); @@ -304,7 +298,6 @@ static int  spectrum_cs_config(struct pcmcia_device *link)  {  	struct orinoco_private *priv = link->priv; -	struct orinoco_pccard *card = priv->card;  	hermes_t *hw = &priv->hw;  	int ret;  	void __iomem *mem; @@ -332,12 +325,7 @@ spectrum_cs_config(struct pcmcia_device *link)  		goto failed;  	} -	/* -	 * Allocate an interrupt line.  Note that this does not assign -	 * a handler to the interrupt, unless the 'Handler' member of -	 * the irq structure is initialized. -	 */ -	ret = pcmcia_request_irq(link, &link->irq); +	ret = pcmcia_request_irq(link, orinoco_interrupt);  	if (ret)  		goto failed; @@ -349,6 +337,7 @@ spectrum_cs_config(struct pcmcia_device *link)  		goto failed;  	hermes_struct_init(hw, mem, HERMES_16BIT_REGSPACING); +	hw->eeprom_pda = true;  	/*  	 * This actually configures the PCMCIA socket -- setting up @@ -359,9 +348,6 @@ spectrum_cs_config(struct pcmcia_device *link)  	if (ret)  		goto failed; -	/* Ok, we have the configuration, prepare to register the netdev */ -	card->node.major = card->node.minor = 0; -  	/* Reset card */  	if (spectrum_cs_hard_reset(priv) != 0)  		goto failed; @@ -374,17 +360,11 @@ spectrum_cs_config(struct pcmcia_device *link)  	/* Register an interface with the stack */  	if (orinoco_if_add(priv, link->io.BasePort1, -			   link->irq.AssignedIRQ) != 0) { +			   link->irq, NULL) != 0) {  		printk(KERN_ERR PFX "orinoco_if_add() failed\n");  		goto failed;  	} -	/* At this point, the dev_node_t structure(s) needs to be -	 * initialized and arranged in a linked list at link->dev_node. */ -	strcpy(card->node.dev_name, priv->ndev->name); -	link->dev_node = &card->node; /* link->dev_node being non-NULL is also -				       * used to indicate that the -				       * net_device has been registered */  	return 0;   failed: @@ -405,9 +385,9 @@ spectrum_cs_release(struct pcmcia_device *link)  	/* We're committed to taking the device away now, so mark the  	 * hardware as unavailable */ -	spin_lock_irqsave(&priv->lock, flags); +	priv->hw.ops->lock_irqsave(&priv->lock, &flags);  	priv->hw_unavailable++; -	spin_unlock_irqrestore(&priv->lock, flags); +	priv->hw.ops->unlock_irqrestore(&priv->lock, &flags);  	pcmcia_disable_device(link);  	if (priv->hw.iobase) | 
