Updating libertas wireless driver to latest version.
[openwrt/staging/florian.git] / package / libertas / src / if_sdio.c
index 85675c5fa4a23bdee21f54e2c7781d5a7a52edcd..5a828c7b4c2e45075e870c1d1a3357b776adced1 100644 (file)
@@ -19,7 +19,7 @@
  * current block size.
  *
  * As SDIO is still new to the kernel, it is unfortunately common with
  * current block size.
  *
  * As SDIO is still new to the kernel, it is unfortunately common with
- * bugs in the host controllers related to that. One such bug is that 
+ * bugs in the host controllers related to that. One such bug is that
  * controllers cannot do transfers that aren't a multiple of 4 bytes.
  * If you don't have time to fix the host controller driver, you can
  * work around the problem by modifying if_sdio_host_to_card() and
  * controllers cannot do transfers that aren't a multiple of 4 bytes.
  * If you don't have time to fix the host controller driver, you can
  * work around the problem by modifying if_sdio_host_to_card() and
@@ -136,12 +136,6 @@ static int if_sdio_handle_cmd(struct if_sdio_card *card,
 
        spin_lock_irqsave(&card->priv->driver_lock, flags);
 
 
        spin_lock_irqsave(&card->priv->driver_lock, flags);
 
-       if (!card->priv->cur_cmd) {
-               lbs_deb_sdio("discarding spurious response\n");
-               ret = 0;
-               goto out;
-       }
-
        if (size > LBS_CMD_BUFFER_SIZE) {
                lbs_deb_sdio("response packet too large (%d bytes)\n",
                        (int)size);
        if (size > LBS_CMD_BUFFER_SIZE) {
                lbs_deb_sdio("response packet too large (%d bytes)\n",
                        (int)size);
@@ -149,7 +143,7 @@ static int if_sdio_handle_cmd(struct if_sdio_card *card,
                goto out;
        }
 
                goto out;
        }
 
-       memcpy(card->priv->cur_cmd->cmdbuf, buffer, size);
+       memcpy(card->priv->upld_buf, buffer, size);
        card->priv->upld_len = size;
 
        card->int_cause |= MRVDRV_CMD_UPLD_RDY;
        card->priv->upld_len = size;
 
        card->int_cause |= MRVDRV_CMD_UPLD_RDY;