Commit 37426fb6 authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Felix Fietkau
Browse files

mt76: move mac_work in mt76_dev



Move mac_work delayed work in mt76_dev data structure since
it is used by all drivers and it will be reused adding mac work to
mt7615

Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 41634aa8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -448,6 +448,7 @@ struct mt76_dev {
	int tx_dma_idx[4];

	struct tasklet_struct tx_tasklet;
	struct delayed_work mac_work;

	wait_queue_head_t tx_wait;
	struct sk_buff_head status_list;
+1 −1
Original line number Diff line number Diff line
@@ -513,7 +513,7 @@ int mt7603_register_device(struct mt7603_dev *dev)

	spin_lock_init(&dev->ps_lock);

	INIT_DELAYED_WORK(&dev->mac_work, mt7603_mac_work);
	INIT_DELAYED_WORK(&dev->mt76.mac_work, mt7603_mac_work);
	tasklet_init(&dev->pre_tbtt_tasklet, mt7603_pre_tbtt_tasklet,
		     (unsigned long)dev);

+2 −2
Original line number Diff line number Diff line
@@ -1667,7 +1667,7 @@ out:
void mt7603_mac_work(struct work_struct *work)
{
	struct mt7603_dev *dev = container_of(work, struct mt7603_dev,
					      mac_work.work);
					      mt76.mac_work.work);
	bool reset = false;

	mt76_tx_status_check(&dev->mt76, NULL, false);
@@ -1720,6 +1720,6 @@ void mt7603_mac_work(struct work_struct *work)
	if (reset)
		mt7603_mac_watchdog_reset(dev);

	ieee80211_queue_delayed_work(mt76_hw(dev), &dev->mac_work,
	ieee80211_queue_delayed_work(mt76_hw(dev), &dev->mt76.mac_work,
				     msecs_to_jiffies(MT7603_WATCHDOG_TIME));
}
+5 −5
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ mt7603_start(struct ieee80211_hw *hw)
	mt7603_mac_start(dev);
	dev->survey_time = ktime_get_boottime();
	set_bit(MT76_STATE_RUNNING, &dev->mt76.state);
	mt7603_mac_work(&dev->mac_work.work);
	mt7603_mac_work(&dev->mt76.mac_work.work);

	return 0;
}
@@ -27,7 +27,7 @@ mt7603_stop(struct ieee80211_hw *hw)
	struct mt7603_dev *dev = hw->priv;

	clear_bit(MT76_STATE_RUNNING, &dev->mt76.state);
	cancel_delayed_work_sync(&dev->mac_work);
	cancel_delayed_work_sync(&dev->mt76.mac_work);
	mt7603_mac_stop(dev);
}

@@ -132,7 +132,7 @@ mt7603_set_channel(struct mt7603_dev *dev, struct cfg80211_chan_def *def)
	u8 bw = MT_BW_20;
	bool failed = false;

	cancel_delayed_work_sync(&dev->mac_work);
	cancel_delayed_work_sync(&dev->mt76.mac_work);

	mutex_lock(&dev->mt76.mutex);
	set_bit(MT76_RESET, &dev->mt76.state);
@@ -171,7 +171,7 @@ mt7603_set_channel(struct mt7603_dev *dev, struct cfg80211_chan_def *def)

	mt76_txq_schedule_all(&dev->mt76);

	ieee80211_queue_delayed_work(mt76_hw(dev), &dev->mac_work,
	ieee80211_queue_delayed_work(mt76_hw(dev), &dev->mt76.mac_work,
				     MT7603_WATCHDOG_TIME);

	/* reset channel stats */
@@ -189,7 +189,7 @@ out:
	mutex_unlock(&dev->mt76.mutex);

	if (failed)
		mt7603_mac_work(&dev->mac_work.work);
		mt7603_mac_work(&dev->mt76.mac_work.work);

	return ret;
}
+0 −1
Original line number Diff line number Diff line
@@ -144,7 +144,6 @@ struct mt7603_dev {

	unsigned int reset_cause[__RESET_CAUSE_MAX];

	struct delayed_work mac_work;
	struct tasklet_struct pre_tbtt_tasklet;
};

Loading