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

mt76: sdio: get rid of sched.lock

sched quota is now updated in mt7663s_txrx_worker so there is no more
need of sched.lock mutex
Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 1c79a190
...@@ -461,7 +461,6 @@ struct mt76_sdio { ...@@ -461,7 +461,6 @@ struct mt76_sdio {
void *intr_data; void *intr_data;
struct { struct {
struct mutex lock;
int pse_data_quota; int pse_data_quota;
int ple_data_quota; int ple_data_quota;
int pse_mcu_quota; int pse_mcu_quota;
......
...@@ -19,23 +19,18 @@ ...@@ -19,23 +19,18 @@
static int mt7663s_mcu_init_sched(struct mt7615_dev *dev) static int mt7663s_mcu_init_sched(struct mt7615_dev *dev)
{ {
struct mt76_sdio *sdio = &dev->mt76.sdio; struct mt76_sdio *sdio = &dev->mt76.sdio;
u32 pse0, ple, pse1, txdwcnt; u32 txdwcnt;
pse0 = mt76_get_field(dev, MT_PSE_PG_HIF0_GROUP, MT_HIF0_MIN_QUOTA); sdio->sched.pse_data_quota = mt76_get_field(dev, MT_PSE_PG_HIF0_GROUP,
pse1 = mt76_get_field(dev, MT_PSE_PG_HIF1_GROUP, MT_HIF1_MIN_QUOTA); MT_HIF0_MIN_QUOTA);
ple = mt76_get_field(dev, MT_PLE_PG_HIF0_GROUP, MT_HIF0_MIN_QUOTA); sdio->sched.pse_mcu_quota = mt76_get_field(dev, MT_PSE_PG_HIF1_GROUP,
MT_HIF1_MIN_QUOTA);
sdio->sched.ple_data_quota = mt76_get_field(dev, MT_PLE_PG_HIF0_GROUP,
MT_HIF0_MIN_QUOTA);
txdwcnt = mt76_get_field(dev, MT_PP_TXDWCNT, txdwcnt = mt76_get_field(dev, MT_PP_TXDWCNT,
MT_PP_TXDWCNT_TX1_ADD_DW_CNT); MT_PP_TXDWCNT_TX1_ADD_DW_CNT);
mutex_lock(&sdio->sched.lock);
sdio->sched.pse_data_quota = pse0;
sdio->sched.ple_data_quota = ple;
sdio->sched.pse_mcu_quota = pse1;
sdio->sched.deficit = txdwcnt << 2; sdio->sched.deficit = txdwcnt << 2;
mutex_unlock(&sdio->sched.lock);
return 0; return 0;
} }
......
...@@ -46,11 +46,9 @@ static int mt7663s_refill_sched_quota(struct mt76_dev *dev, u32 *data) ...@@ -46,11 +46,9 @@ static int mt7663s_refill_sched_quota(struct mt76_dev *dev, u32 *data)
if (!pse_data_quota && !ple_data_quota && !pse_mcu_quota) if (!pse_data_quota && !ple_data_quota && !pse_mcu_quota)
return 0; return 0;
mutex_lock(&sdio->sched.lock);
sdio->sched.pse_mcu_quota += pse_mcu_quota; sdio->sched.pse_mcu_quota += pse_mcu_quota;
sdio->sched.pse_data_quota += pse_data_quota; sdio->sched.pse_data_quota += pse_data_quota;
sdio->sched.ple_data_quota += ple_data_quota; sdio->sched.ple_data_quota += ple_data_quota;
mutex_unlock(&sdio->sched.lock);
return pse_data_quota + ple_data_quota + pse_mcu_quota; return pse_data_quota + ple_data_quota + pse_mcu_quota;
} }
...@@ -193,14 +191,12 @@ static int mt7663s_tx_pick_quota(struct mt76_sdio *sdio, enum mt76_txq_id qid, ...@@ -193,14 +191,12 @@ static int mt7663s_tx_pick_quota(struct mt76_sdio *sdio, enum mt76_txq_id qid,
static void mt7663s_tx_update_quota(struct mt76_sdio *sdio, enum mt76_txq_id qid, static void mt7663s_tx_update_quota(struct mt76_sdio *sdio, enum mt76_txq_id qid,
int pse_size, int ple_size) int pse_size, int ple_size)
{ {
mutex_lock(&sdio->sched.lock);
if (qid == MT_TXQ_MCU) { if (qid == MT_TXQ_MCU) {
sdio->sched.pse_mcu_quota -= pse_size; sdio->sched.pse_mcu_quota -= pse_size;
} else { } else {
sdio->sched.pse_data_quota -= pse_size; sdio->sched.pse_data_quota -= pse_size;
sdio->sched.ple_data_quota -= ple_size; sdio->sched.ple_data_quota -= ple_size;
} }
mutex_unlock(&sdio->sched.lock);
} }
static int __mt7663s_xmit_queue(struct mt76_dev *dev, u8 *data, int len) static int __mt7663s_xmit_queue(struct mt76_dev *dev, u8 *data, int len)
......
...@@ -350,7 +350,6 @@ int mt76s_init(struct mt76_dev *dev, struct sdio_func *func, ...@@ -350,7 +350,6 @@ int mt76s_init(struct mt76_dev *dev, struct sdio_func *func,
INIT_WORK(&sdio->stat_work, mt76s_tx_status_data); INIT_WORK(&sdio->stat_work, mt76s_tx_status_data);
mutex_init(&sdio->sched.lock);
dev->queue_ops = &sdio_queue_ops; dev->queue_ops = &sdio_queue_ops;
dev->bus = bus_ops; dev->bus = bus_ops;
dev->sdio.func = func; dev->sdio.func = func;
......
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