Hello, On Monday 29 August 2011 22:11:55 eugene...@gmail.com wrote: > 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
The first patch looks obviously correct, what about sending the second upstream? > > 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; > + -- Florian _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel