]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/wireless/libertas/if_cs.c
Merge branch 'for-linus' of git://git.infradead.org/~dedekind/ubi-2.6
[linux-2.6-omap-h63xx.git] / drivers / net / wireless / libertas / if_cs.c
index 2acbe5dcff7de6d195397e972d7dedfede88e6ce..5a9cadb97503fbf6ab8b4ba68a18d7da4a5e2ed6 100644 (file)
@@ -249,14 +249,14 @@ static irqreturn_t if_cs_interrupt(int irq, void *data)
        lbs_deb_enter(LBS_DEB_CS);
 
        int_cause = if_cs_read16(card, IF_CS_C_INT_CAUSE);
-       if(int_cause == 0x0) {
+       if (int_cause == 0x0) {
                /* Not for us */
                return IRQ_NONE;
 
        } else if (int_cause == 0xffff) {
                /* Read in junk, the card has probably been removed */
                card->priv->surpriseremoved = 1;
-
+               return IRQ_HANDLED;
        } else {
                if (int_cause & IF_CS_H_IC_TX_OVER)
                        lbs_host_to_card_done(card->priv);
@@ -364,7 +364,7 @@ static int if_cs_receive_cmdres(struct lbs_private *priv, u8 *data, u32 *len)
        }
 
        *len = if_cs_read16(priv->card, IF_CS_C_CMD_LEN);
-       if ((*len == 0) || (*len > MRVDRV_SIZE_OF_CMD_BUFFER)) {
+       if ((*len == 0) || (*len > LBS_CMD_BUFFER_SIZE)) {
                lbs_pr_err("card cmd buffer has invalid # of bytes (%d)\n", *len);
                goto out;
        }
@@ -647,7 +647,6 @@ static int if_cs_get_int_status(struct lbs_private *priv, u8 *ireg)
        struct if_cs_card *card = (struct if_cs_card *)priv->card;
        int ret = 0;
        u16 int_cause;
-       u8 *cmdbuf;
        *ireg = 0;
 
        lbs_deb_enter(LBS_DEB_CS);
@@ -679,14 +678,7 @@ sbi_get_int_status_exit:
        /* Card has a command result for us */
        if (*ireg & IF_CS_C_S_CMD_UPLD_RDY) {
                spin_lock(&priv->driver_lock);
-               if (!priv->cur_cmd) {
-                       cmdbuf = priv->upld_buf;
-                       priv->hisregcpy &= ~IF_CS_C_S_RX_UPLD_RDY;
-               } else {
-                       cmdbuf = priv->cur_cmd->bufvirtualaddr;
-               }
-
-               ret = if_cs_receive_cmdres(priv, cmdbuf, &priv->upld_len);
+               ret = if_cs_receive_cmdres(priv, priv->upld_buf, &priv->upld_len);
                spin_unlock(&priv->driver_lock);
                if (ret < 0)
                        lbs_pr_err("could not receive cmd from card\n");
@@ -725,8 +717,8 @@ static void if_cs_release(struct pcmcia_device *p_dev)
 
        lbs_deb_enter(LBS_DEB_CS);
 
-       pcmcia_disable_device(p_dev);
        free_irq(p_dev->irq.AssignedIRQ, card);
+       pcmcia_disable_device(p_dev);
        if (card->iobase)
                ioport_unmap(card->iobase);