|
@@ -503,11 +503,19 @@ static int mwifiex_usb_suspend(struct usb_interface *intf, pm_message_t message)
|
|
|
struct usb_tx_data_port *port;
|
|
|
int i, j;
|
|
|
|
|
|
- if (!card || !card->adapter) {
|
|
|
- pr_err("%s: card or card->adapter is NULL\n", __func__);
|
|
|
+ if (!card) {
|
|
|
+ dev_err(&intf->dev, "%s: card is NULL\n", __func__);
|
|
|
return 0;
|
|
|
}
|
|
|
+
|
|
|
+ /* Might still be loading firmware */
|
|
|
+ wait_for_completion(&card->fw_done);
|
|
|
+
|
|
|
adapter = card->adapter;
|
|
|
+ if (!adapter) {
|
|
|
+ dev_err(&intf->dev, "card is not valid\n");
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
|
|
|
if (unlikely(adapter->is_suspended))
|
|
|
mwifiex_dbg(adapter, WARN,
|