{
        void __iomem *regs = priv->regs;
        dma_addr_t dma_addr;
-       int rc;
        int loops;
 
        dma_addr = pci_map_single(priv->pdev, data, length, PCI_DMA_TODEVICE);
        iowrite32(MWL8K_H2A_INT_DUMMY,
                regs + MWL8K_HIU_H2A_INTERRUPT_EVENTS);
 
-       rc = -ETIMEDOUT;
        loops = 1000;
        do {
                u32 int_code;
                int_code = ioread32(regs + MWL8K_HIU_INT_CODE);
                if (int_code == MWL8K_INT_CODE_CMD_FINISHED) {
                        iowrite32(0, regs + MWL8K_HIU_INT_CODE);
-                       rc = 0;
                        break;
                }
 
 
        pci_unmap_single(priv->pdev, dma_addr, length, PCI_DMA_TODEVICE);
 
-       /*
-        * Clear 'command done' interrupt bit.
-        */
-       loops = 1000;
-       do {
-               u32 status;
-
-               status = ioread32(priv->regs +
-                               MWL8K_HIU_A2H_INTERRUPT_STATUS);
-               if (status & MWL8K_A2H_INT_OPC_DONE) {
-                       iowrite32(~MWL8K_A2H_INT_OPC_DONE,
-                               priv->regs + MWL8K_HIU_A2H_INTERRUPT_STATUS);
-                       ioread32(priv->regs + MWL8K_HIU_A2H_INTERRUPT_STATUS);
-                       break;
-               }
-
-               udelay(1);
-       } while (--loops);
-
-       return rc;
+       return loops ? 0 : -ETIMEDOUT;
 }
 
 static int mwl8k_load_fw_image(struct mwl8k_priv *priv,