From 885d2a1e8d97f91f6cc9e65a7d29ba21913477d9 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 7 Dec 2015 16:55:53 +0100 Subject: [PATCH] mt7603: implement firmware selection based on hw rev Signed-off-by: Felix Fietkau --- mt7603.h | 5 +++++ mt7603_mcu.c | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/mt7603.h b/mt7603.h index 7c4beb90..9fb9bea9 100644 --- a/mt7603.h +++ b/mt7603.h @@ -20,6 +20,11 @@ #define MT7603_FIRMWARE_E1 "mt7603_e1.bin" #define MT7603_FIRMWARE_E2 "mt7603_e2.bin" +enum { + MT7603_REV_E1 = 0x00, + MT7603_REV_E2 = 0x10 +}; + enum mt7603_txq_id { MT_TXQ_VO = IEEE80211_AC_VO, MT_TXQ_VI = IEEE80211_AC_VI, diff --git a/mt7603_mcu.c b/mt7603_mcu.c index 167bc2d0..f741ae14 100644 --- a/mt7603_mcu.c +++ b/mt7603_mcu.c @@ -189,11 +189,17 @@ mt7603_load_firmware(struct mt7603_dev *dev) { const struct firmware *fw; const struct mt7603_fw_trailer *hdr; + const char *firmware; int dl_len; u32 val; int ret; - ret = request_firmware(&fw, MT7603_FIRMWARE_E2, dev->mt76.dev); + if (mt76xx_rev(dev) < MT7603_REV_E2) + firmware = MT7603_FIRMWARE_E1; + else + firmware = MT7603_FIRMWARE_E2; + + ret = request_firmware(&fw, firmware, dev->mt76.dev); if (ret) return ret;