Skip to content

Commit 16d98b5

Browse files
moore-brosnbd168
authored andcommitted
mt76: mt7921: rely on mcu_get_nic_capability
Rely on mcu_get_nic_capability to obtain Tx quota information for the SDIO device, get PHY capability, MAC address and then we can totally drop mt7921/eeprom.c and any unnecessary code. Noting that mt76_connac_mcu_get_nic_capability should be run before set flag MT76_STATE_MCU_RUNNING being set to setup the proper parameters like Tx quota control before the device is started to running. Tested-by: Deren Wu <[email protected]> Acked-by: Lorenzo Bianconi <[email protected]> Signed-off-by: Sean Wang <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
1 parent 8c94f0e commit 16d98b5

File tree

7 files changed

+10
-123
lines changed

7 files changed

+10
-123
lines changed

drivers/net/wireless/mediatek/mt76/mt7615/sdio_mcu.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ static int mt7663s_mcu_init_sched(struct mt7615_dev *dev)
2727
MT_HIF1_MIN_QUOTA);
2828
sdio->sched.ple_data_quota = mt76_get_field(dev, MT_PLE_PG_HIF0_GROUP,
2929
MT_HIF0_MIN_QUOTA);
30+
sdio->sched.pse_page_size = MT_PSE_PAGE_SZ;
3031
txdwcnt = mt76_get_field(dev, MT_PP_TXDWCNT,
3132
MT_PP_TXDWCNT_TX1_ADD_DW_CNT);
3233
sdio->sched.deficit = txdwcnt << 2;

drivers/net/wireless/mediatek/mt76/mt7921/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ obj-$(CONFIG_MT7921E) += mt7921e.o
55

66
CFLAGS_trace.o := -I$(src)
77

8-
mt7921-common-y := mac.o mcu.o eeprom.o main.o init.o debugfs.o trace.o
8+
mt7921-common-y := mac.o mcu.o main.o init.o debugfs.o trace.o
99
mt7921-common-$(CONFIG_NL80211_TESTMODE) += testmode.o
1010
mt7921e-y := pci.o pci_mac.o pci_mcu.o dma.o

drivers/net/wireless/mediatek/mt76/mt7921/eeprom.c

Lines changed: 0 additions & 101 deletions
This file was deleted.

drivers/net/wireless/mediatek/mt76/mt7921/init.c

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,6 @@ EXPORT_SYMBOL_GPL(mt7921_mac_init);
149149

150150
static int __mt7921_init_hardware(struct mt7921_dev *dev)
151151
{
152-
struct mt76_dev *mdev = &dev->mt76;
153152
int ret;
154153

155154
/* force firmware operation mode into normal state,
@@ -160,21 +159,14 @@ static int __mt7921_init_hardware(struct mt7921_dev *dev)
160159
if (ret)
161160
goto out;
162161

163-
ret = mt7921_eeprom_init(dev);
164-
if (ret)
165-
goto out;
162+
mt76_eeprom_override(&dev->mphy);
166163

167164
ret = mt7921_mcu_set_eeprom(dev);
168165
if (ret)
169166
goto out;
170167

171168
ret = mt7921_mac_init(dev);
172169
out:
173-
if (ret && mdev->eeprom.data) {
174-
devm_kfree(mdev->dev, mdev->eeprom.data);
175-
mdev->eeprom.data = NULL;
176-
}
177-
178170
return ret;
179171
}
180172

drivers/net/wireless/mediatek/mt76/mt7921/mcu.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -906,10 +906,12 @@ int mt7921_run_firmware(struct mt7921_dev *dev)
906906
if (err)
907907
return err;
908908

909-
set_bit(MT76_STATE_MCU_RUNNING, &dev->mphy.state);
910-
mt7921_mcu_fw_log_2_host(dev, 1);
909+
err = mt76_connac_mcu_get_nic_capability(&dev->mphy);
910+
if (err)
911+
return err;
911912

912-
return mt76_connac_mcu_get_nic_capability(&dev->mphy);
913+
set_bit(MT76_STATE_MCU_RUNNING, &dev->mphy.state);
914+
return mt7921_mcu_fw_log_2_host(dev, 1);
913915
}
914916
EXPORT_SYMBOL_GPL(mt7921_run_firmware);
915917

drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,6 @@ struct mt7921_dev {
156156
struct mt7921_phy phy;
157157
struct tasklet_struct irq_tasklet;
158158

159-
u16 chainmask;
160-
161159
struct work_struct reset_work;
162160
bool hw_full_reset:1;
163161
bool hw_init_done:1;
@@ -247,12 +245,6 @@ u32 mt7921_reg_map(struct mt7921_dev *dev, u32 addr);
247245
int __mt7921_start(struct mt7921_phy *phy);
248246
int mt7921_register_device(struct mt7921_dev *dev);
249247
void mt7921_unregister_device(struct mt7921_dev *dev);
250-
int mt7921_eeprom_init(struct mt7921_dev *dev);
251-
void mt7921_eeprom_parse_band_config(struct mt7921_phy *phy);
252-
int mt7921_eeprom_get_target_power(struct mt7921_dev *dev,
253-
struct ieee80211_channel *chan,
254-
u8 chain_idx);
255-
void mt7921_eeprom_init_sku(struct mt7921_dev *dev);
256248
int mt7921_dma_init(struct mt7921_dev *dev);
257249
int mt7921_wpdma_reset(struct mt7921_dev *dev, bool force);
258250
int mt7921_wpdma_reinit_cond(struct mt7921_dev *dev);

drivers/net/wireless/mediatek/mt76/sdio_txrx.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,8 @@ mt76s_tx_pick_quota(struct mt76_sdio *sdio, bool mcu, int buf_sz,
173173
{
174174
int pse_sz;
175175

176-
pse_sz = DIV_ROUND_UP(buf_sz + sdio->sched.deficit, MT_PSE_PAGE_SZ);
176+
pse_sz = DIV_ROUND_UP(buf_sz + sdio->sched.deficit,
177+
sdio->sched.pse_page_size);
177178

178179
if (mcu && sdio->hw_ver == MT76_CONNAC2_SDIO)
179180
pse_sz = 1;

0 commit comments

Comments
 (0)