From: "Eugene San (eugenesan)" <eugene...@gmail.com>
Signed-off-by: Eugene San (eugenesan) <eugene...@gmail.com> --- package/mac80211/Makefile | 4 +- .../701-mwl8k-firmware-reload-workaround.patch | 29 ++++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 package/mac80211/patches/701-mwl8k-firmware-reload-workaround.patch diff --git a/package/mac80211/Makefile b/package/mac80211/Makefile index e2942f8..3fdd691 100644 --- a/package/mac80211/Makefile +++ b/package/mac80211/Makefile @@ -1326,14 +1326,14 @@ define KernelPackage/ath9k-htc/install endef define KernelPackage/mwl8k/install - $(INSTALL_DIR) $(1)/lib/firmware + $(INSTALL_DIR) $(1)/lib/firmware/mwl8k/ $(INSTALL_DATA) \ $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8366_ap-2.fw \ $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8366.fw \ $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/helper_8366.fw \ $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8687.fw \ $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/helper_8687.fw \ - $(1)/lib/firmware/ + $(1)/lib/firmware/mwl8k/ endef define KernelPackage/net-ipw2100/install diff --git a/package/mac80211/patches/701-mwl8k-firmware-reload-workaround.patch b/package/mac80211/patches/701-mwl8k-firmware-reload-workaround.patch new file mode 100644 index 0000000..7c09699 --- /dev/null +++ b/package/mac80211/patches/701-mwl8k-firmware-reload-workaround.patch @@ -0,0 +1,29 @@ +--- a/drivers/net/wireless/mwl8k.c ++++ b/drivers/net/wireless/mwl8k.c +@@ -5470,7 +5470,7 @@ + */ + static int mwl8k_reload_firmware(struct ieee80211_hw *hw, char *fw_image) + { +- int i, rc = 0; ++ int i, rc, loops = 0; + struct mwl8k_priv *priv = hw->priv; + + mwl8k_stop(hw); +@@ -5479,7 +5479,16 @@ + for (i = 0; i < mwl8k_tx_queues(priv); i++) + mwl8k_txq_deinit(hw, i); + +- rc = mwl8k_init_firmware(hw, fw_image, false); ++ loops = 5; ++ do { ++ rc = mwl8k_init_firmware(hw, fw_image, false); ++ if (rc) ++ printk(KERN_WARNING "mwl8k: Failed to init firmware, will retry in 5 seconds @%s:%d.\n", __FUNCTION__, __LINE__); ++ else ++ break; ++ ++ msleep(5000); ++ } while (--loops); + if (rc) + goto fail; + -- 1.7.6 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel