]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/net/wireless/broadcom/b43/dma.c
b43: fix DMA error related regression with proprietary firmware
[linux.git] / drivers / net / wireless / broadcom / b43 / dma.c
index 6b0e1ec346cb60aacd8076600033cf9ee554c462..d46d57b989aec0d1fa869128b62022b7be401892 100644 (file)
@@ -1518,13 +1518,15 @@ void b43_dma_handle_txstatus(struct b43_wldev *dev,
                        }
                } else {
                        /* More than a single header/data pair were missed.
-                        * Report this error, and reset the controller to
+                        * Report this error. If running with open-source
+                        * firmware, then reset the controller to
                         * revive operation.
                         */
                        b43dbg(dev->wl,
                               "Out of order TX status report on DMA ring %d. Expected %d, but got %d\n",
                               ring->index, firstused, slot);
-                       b43_controller_restart(dev, "Out of order TX");
+                       if (dev->fw.opensource)
+                               b43_controller_restart(dev, "Out of order TX");
                        return;
                }
        }