Commit f4730140 authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Felix Fietkau

mt76x0: align mt76x0u and mt76x0e fw version

Unify firmware version used on mt76x0e and mt76x0u drivers.
Fallback to mt7610u fw if mt7610e one is not available
Signed-off-by: default avatarLorenzo Bianconi <lorenzo.bianconi@redhat.com>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 64c6a54a
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
#define MT7610E_FIRMWARE "mediatek/mt7610e.bin" #define MT7610E_FIRMWARE "mediatek/mt7610e.bin"
#define MT7650E_FIRMWARE "mediatek/mt7650e.bin" #define MT7650E_FIRMWARE "mediatek/mt7650e.bin"
#define MT7610U_FIRMWARE "mediatek/mt7610u.bin"
#define MT_USB_AGGR_SIZE_LIMIT 21 /* * 1024B */ #define MT_USB_AGGR_SIZE_LIMIT 21 /* * 1024B */
#define MT_USB_AGGR_TIMEOUT 0x80 /* * 33ns */ #define MT_USB_AGGR_TIMEOUT 0x80 /* * 33ns */
......
...@@ -337,6 +337,8 @@ static int __maybe_unused mt76x0_resume(struct usb_interface *usb_intf) ...@@ -337,6 +337,8 @@ static int __maybe_unused mt76x0_resume(struct usb_interface *usb_intf)
} }
MODULE_DEVICE_TABLE(usb, mt76x0_device_table); MODULE_DEVICE_TABLE(usb, mt76x0_device_table);
MODULE_FIRMWARE(MT7610E_FIRMWARE);
MODULE_FIRMWARE(MT7610U_FIRMWARE);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
static struct usb_driver mt76x0_driver = { static struct usb_driver mt76x0_driver = {
......
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
#define MCU_FW_URB_MAX_PAYLOAD 0x38f8 #define MCU_FW_URB_MAX_PAYLOAD 0x38f8
#define MCU_FW_URB_SIZE (MCU_FW_URB_MAX_PAYLOAD + 12) #define MCU_FW_URB_SIZE (MCU_FW_URB_MAX_PAYLOAD + 12)
#define MT7610U_FIRMWARE "mediatek/mt7610u.bin"
static int static int
mt76x0u_upload_firmware(struct mt76x02_dev *dev, mt76x0u_upload_firmware(struct mt76x02_dev *dev,
...@@ -75,6 +74,24 @@ mt76x0u_upload_firmware(struct mt76x02_dev *dev, ...@@ -75,6 +74,24 @@ mt76x0u_upload_firmware(struct mt76x02_dev *dev,
return err; return err;
} }
static int mt76x0_get_firmware(struct mt76x02_dev *dev,
const struct firmware **fw)
{
int err;
/* try to load mt7610e fw if available
* otherwise fall back to mt7610u one
*/
err = firmware_request_nowarn(fw, MT7610E_FIRMWARE, dev->mt76.dev);
if (err) {
dev_info(dev->mt76.dev, "%s not found, switching to %s",
MT7610E_FIRMWARE, MT7610U_FIRMWARE);
return request_firmware(fw, MT7610U_FIRMWARE,
dev->mt76.dev);
}
return 0;
}
static int mt76x0u_load_firmware(struct mt76x02_dev *dev) static int mt76x0u_load_firmware(struct mt76x02_dev *dev)
{ {
const struct firmware *fw; const struct firmware *fw;
...@@ -88,7 +105,7 @@ static int mt76x0u_load_firmware(struct mt76x02_dev *dev) ...@@ -88,7 +105,7 @@ static int mt76x0u_load_firmware(struct mt76x02_dev *dev)
if (mt76x0_firmware_running(dev)) if (mt76x0_firmware_running(dev))
return 0; return 0;
ret = request_firmware(&fw, MT7610U_FIRMWARE, dev->mt76.dev); ret = mt76x0_get_firmware(dev, &fw);
if (ret) if (ret)
return ret; return ret;
...@@ -171,5 +188,3 @@ int mt76x0u_mcu_init(struct mt76x02_dev *dev) ...@@ -171,5 +188,3 @@ int mt76x0u_mcu_init(struct mt76x02_dev *dev)
return 0; return 0;
} }
MODULE_FIRMWARE(MT7610U_FIRMWARE);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment