Hi, I've spoken with driver maintainer and he promised to look into it. We should see second part of patch as temporary solution before upstream fixes the issue.
On Tue, Aug 30, 2011 at 11:14, Florian Fainelli <[email protected]> wrote: > Hello, > > On Monday 29 August 2011 22:11:55 [email protected] wrote: > > From: "Eugene San (eugenesan)" <[email protected]> > > > > > > Signed-off-by: Eugene San (eugenesan) <[email protected]> > > --- > > 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 [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
