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

Reply via email to