--- mcu.c 2018-07-19 15:35:58.000000000 +0200 +++ mcu.c_patch 2019-04-17 21:28:42.601761181 +0200 @@ -18,6 +18,8 @@ #include #include #include +// patch - add module param +#include #include "mt7601u.h" #include "dma.h" @@ -29,6 +31,17 @@ #define MCU_FW_URB_SIZE (MCU_FW_URB_MAX_PAYLOAD + 12) #define MCU_RESP_URB_SIZE 1024 +/* + patch - module prm - vnd_reset + Some mt7601u devices are unable to + respond after vendor_reset is called, + therefore adding this option to turn off + reset. Usually the dongle loads OK if + reset is bypassed +*/ +static int vnd_reset = 1; // reset by default +module_param(vnd_reset,int,0660); + static inline int firmware_running(struct mt7601u_dev *dev) { return mt7601u_rr(dev, MT_MCU_COM_REG0) == 1; @@ -451,7 +464,10 @@ mt7601u_wr(dev, 0x94c, 0); mt7601u_wr(dev, MT_FCE_PSE_CTRL, 0); - mt7601u_vendor_reset(dev); + // patch + if ( vnd_reset == 1 ){ + mt7601u_vendor_reset(dev); + } msleep(5); mt7601u_wr(dev, 0xa44, 0);