Commit a33b8ab8 authored by Felix Fietkau's avatar Felix Fietkau
Browse files

mt76: move tx tasklet to struct mt76_dev



Allows it to be scheduled from core code

Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent db9f11d3
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -386,7 +386,6 @@ struct mt76_usb {
	u8 data[32];

	struct tasklet_struct rx_tasklet;
	struct tasklet_struct tx_tasklet;
	struct delayed_work stat_work;

	u8 out_ep[__MT_EP_OUT_MAX];
@@ -448,6 +447,8 @@ struct mt76_dev {
	const struct mt76_queue_ops *queue_ops;
	int tx_dma_idx[4];

	struct tasklet_struct tx_tasklet;

	wait_queue_head_t tx_wait;
	struct sk_buff_head status_list;

+1 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ irqreturn_t mt7603_irq_handler(int irq, void *dev_instance)

	if (intr & MT_INT_TX_DONE_ALL) {
		mt7603_irq_disable(dev, MT_INT_TX_DONE_ALL);
		tasklet_schedule(&dev->tx_tasklet);
		tasklet_schedule(&dev->mt76.tx_tasklet);
	}

	if (intr & MT_INT_RX_DONE(0)) {
+2 −2
Original line number Diff line number Diff line
@@ -164,7 +164,7 @@ int mt7603_dma_init(struct mt7603_dev *dev)
	init_waitqueue_head(&dev->mt76.mmio.mcu.wait);
	skb_queue_head_init(&dev->mt76.mmio.mcu.res_q);

	tasklet_init(&dev->tx_tasklet, mt7603_tx_tasklet, (unsigned long)dev);
	tasklet_init(&dev->mt76.tx_tasklet, mt7603_tx_tasklet, (unsigned long)dev);

	mt76_clear(dev, MT_WPDMA_GLO_CFG,
		   MT_WPDMA_GLO_CFG_TX_DMA_EN |
@@ -224,6 +224,6 @@ void mt7603_dma_cleanup(struct mt7603_dev *dev)
		   MT_WPDMA_GLO_CFG_RX_DMA_EN |
		   MT_WPDMA_GLO_CFG_TX_WRITEBACK_DONE);

	tasklet_kill(&dev->tx_tasklet);
	tasklet_kill(&dev->mt76.tx_tasklet);
	mt76_dma_cleanup(&dev->mt76);
}
+3 −3
Original line number Diff line number Diff line
@@ -1277,7 +1277,7 @@ static void mt7603_mac_watchdog_reset(struct mt7603_dev *dev)
	/* lock/unlock all queues to ensure that no tx is pending */
	mt76_txq_schedule_all(&dev->mt76);

	tasklet_disable(&dev->tx_tasklet);
	tasklet_disable(&dev->mt76.tx_tasklet);
	tasklet_disable(&dev->pre_tbtt_tasklet);
	napi_disable(&dev->mt76.napi[0]);
	napi_disable(&dev->mt76.napi[1]);
@@ -1324,8 +1324,8 @@ skip_dma_reset:
	clear_bit(MT76_RESET, &dev->mt76.state);
	mutex_unlock(&dev->mt76.mutex);

	tasklet_enable(&dev->tx_tasklet);
	tasklet_schedule(&dev->tx_tasklet);
	tasklet_enable(&dev->mt76.tx_tasklet);
	tasklet_schedule(&dev->mt76.tx_tasklet);

	tasklet_enable(&dev->pre_tbtt_tasklet);
	mt7603_beacon_set_timer(dev, -1, beacon_int);
+0 −1
Original line number Diff line number Diff line
@@ -145,7 +145,6 @@ struct mt7603_dev {
	unsigned int reset_cause[__RESET_CAUSE_MAX];

	struct delayed_work mac_work;
	struct tasklet_struct tx_tasklet;
	struct tasklet_struct pre_tbtt_tasklet;
};

Loading