diff mbox

mwifiex: Trigger a card reset on "DNLD_CMD: host to card failed".

Message ID 2350188.9S0zOEq5AR@r90b40zn (mailing list archive)
State Changes Requested
Delegated to: Kalle Valo
Headers show

Commit Message

Florian Achleitner April 16, 2015, 9:14 a.m. UTC
Whenever this problem occurs, the driver can not continue. Thus,
trigger a card reset to restart the module firmware. Other firmware
communication issues are resolved by this last resort.
Also dump registers, to eventually allow some diagnostics.

Signed-off-by: Florian Achleitner <flo@fopen.at>
---

This works well at least for us.

 drivers/net/wireless/mwifiex/cmdevt.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Kalle Valo May 9, 2015, 1:35 p.m. UTC | #1
Florian Achleitner <flo@fopen.at> writes:

> Whenever this problem occurs, the driver can not continue. Thus,
> trigger a card reset to restart the module firmware. Other firmware
> communication issues are resolved by this last resort.
> Also dump registers, to eventually allow some diagnostics.
>
> Signed-off-by: Florian Achleitner <flo@fopen.at>

Doesn't apply to wireless-drivers-next.git. Can you rebase, please?
Florian Achleitner May 9, 2015, 4:18 p.m. UTC | #2
On Saturday 09 May 2015 16:35:03 Kalle Valo wrote:
> Florian Achleitner <flo@fopen.at> writes:
> > Whenever this problem occurs, the driver can not continue. Thus,
> > trigger a card reset to restart the module firmware. Other firmware
> > communication issues are resolved by this last resort.
> > Also dump registers, to eventually allow some diagnostics.
> > 
> > Signed-off-by: Florian Achleitner <flo@fopen.at>
> 
> Doesn't apply to wireless-drivers-next.git. Can you rebase, please?

Please drop my patch! We agreed that it likely tries to fix a problem actually 
caused in MMC system.

Florian
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Kalle Valo May 11, 2015, 6:35 a.m. UTC | #3
Florian Achleitner <flo@fopen.at> writes:

> On Saturday 09 May 2015 16:35:03 Kalle Valo wrote:
>> Florian Achleitner <flo@fopen.at> writes:
>> > Whenever this problem occurs, the driver can not continue. Thus,
>> > trigger a card reset to restart the module firmware. Other firmware
>> > communication issues are resolved by this last resort.
>> > Also dump registers, to eventually allow some diagnostics.
>> > 
>> > Signed-off-by: Florian Achleitner <flo@fopen.at>
>> 
>> Doesn't apply to wireless-drivers-next.git. Can you rebase, please?
>
> Please drop my patch! We agreed that it likely tries to fix a problem actually 
> caused in MMC system.

Sorry, I had missed that as patchwork didn't contain anything. In the
future it's a good idea to reply to the patch and say something like
"Kalle, please drop this because of foo". That way I see it in
patchwork:

https://patchwork.kernel.org/patch/6224961/
diff mbox

Patch

diff --git a/drivers/net/wireless/mwifiex/cmdevt.c b/drivers/net/wireless/mwifiex/cmdevt.c
index c5a14ff..410f4f2 100644
--- a/drivers/net/wireless/mwifiex/cmdevt.c
+++ b/drivers/net/wireless/mwifiex/cmdevt.c
@@ -233,6 +233,12 @@  static int mwifiex_dnld_cmd_to_fw(struct mwifiex_private *priv,
                spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
 
                adapter->dbg.num_cmd_host_to_card_failure++;
+
+               if (adapter->if_ops.fw_dump)
+                       adapter->if_ops.fw_dump(adapter);
+
+               if (adapter->if_ops.card_reset)
+                       adapter->if_ops.card_reset(adapter);
                return -1;
        }