Commit 61a1f99d authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Felix Fietkau
Browse files

mt76: mt7921: allow chip reset during device restart



Disable chip full reset just during device probing but allow
it during hw restart.

Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent a27238a0
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -236,7 +236,13 @@ int mt7921_register_device(struct mt7921_dev *dev)
	if (ret)
		return ret;

	return mt76_connac_mcu_set_deep_sleep(&dev->mt76, dev->pm.ds_enable);
	ret = mt76_connac_mcu_set_deep_sleep(&dev->mt76, dev->pm.ds_enable);
	if (ret)
		return ret;

	dev->hw_init_done = true;

	return 0;
}

void mt7921_unregister_device(struct mt7921_dev *dev)
+5 −3
Original line number Diff line number Diff line
@@ -1390,10 +1390,12 @@ void mt7921_reset(struct mt76_dev *mdev)
{
	struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76);

	if (!test_bit(MT76_STATE_RUNNING, &dev->mphy.state))
	if (!dev->hw_init_done)
		return;

	if (dev->hw_full_reset)
		return;

	if (!dev->hw_full_reset)
	queue_work(dev->mt76.wq, &dev->reset_work);
}

+2 −1
Original line number Diff line number Diff line
@@ -160,7 +160,8 @@ struct mt7921_dev {
	u16 chainmask;

	struct work_struct reset_work;
	bool hw_full_reset;
	bool hw_full_reset:1;
	bool hw_init_done:1;

	struct list_head sta_poll_list;
	spinlock_t sta_poll_lock;