|
@@ -306,9 +306,19 @@ int zd_op_start(struct ieee80211_hw *hw)
|
|
r = set_mc_hash(mac);
|
|
r = set_mc_hash(mac);
|
|
if (r)
|
|
if (r)
|
|
goto disable_int;
|
|
goto disable_int;
|
|
|
|
+
|
|
|
|
+ /* Wait after setting the multicast hash table and powering on
|
|
|
|
+ * the radio otherwise interface bring up will fail. This matches
|
|
|
|
+ * what the vendor driver did.
|
|
|
|
+ */
|
|
|
|
+ msleep(10);
|
|
|
|
+
|
|
r = zd_chip_switch_radio_on(chip);
|
|
r = zd_chip_switch_radio_on(chip);
|
|
- if (r < 0)
|
|
|
|
|
|
+ if (r < 0) {
|
|
|
|
+ dev_err(zd_chip_dev(chip),
|
|
|
|
+ "%s: failed to set radio on\n", __func__);
|
|
goto disable_int;
|
|
goto disable_int;
|
|
|
|
+ }
|
|
r = zd_chip_enable_rxtx(chip);
|
|
r = zd_chip_enable_rxtx(chip);
|
|
if (r < 0)
|
|
if (r < 0)
|
|
goto disable_radio;
|
|
goto disable_radio;
|