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