<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/net/wireless/mediatek/mt76/sdio.c, branch linux-6.9.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.9.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.9.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2024-06-27T11:52:14Z</updated>
<entry>
<title>wifi: mt76: mt7921s: fix potential hung tasks during chip recovery</title>
<updated>2024-06-27T11:52:14Z</updated>
<author>
<name>Leon Yen</name>
<email>leon.yen@mediatek.com</email>
</author>
<published>2024-03-07T09:46:32Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=e974dd4c22a23ec3ce579fb6d31a674ac0435da9'/>
<id>urn:sha1:e974dd4c22a23ec3ce579fb6d31a674ac0435da9</id>
<content type='text'>
[ Upstream commit ecf0b2b8a37c8464186620bef37812a117ff6366 ]

During chip recovery (e.g. chip reset), there is a possible situation that
kernel worker reset_work is holding the lock and waiting for kernel thread
stat_worker to be parked, while stat_worker is waiting for the release of
the same lock.
It causes a deadlock resulting in the dumping of hung tasks messages and
possible rebooting of the device.

This patch prevents the execution of stat_worker during the chip recovery.

Signed-off-by: Leon Yen &lt;leon.yen@mediatek.com&gt;
Signed-off-by: Ming Yen Hsieh &lt;MingYen.Hsieh@mediatek.com&gt;
Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>wifi: fill in MODULE_DESCRIPTION()s for mt76 drivers</title>
<updated>2024-01-31T16:32:33Z</updated>
<author>
<name>Breno Leitao</name>
<email>leitao@debian.org</email>
</author>
<published>2024-01-30T10:42:43Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f3f8f050316893fe2da523458ff7f5f6d61fb1a6'/>
<id>urn:sha1:f3f8f050316893fe2da523458ff7f5f6d61fb1a6</id>
<content type='text'>
W=1 builds now warn if module is built without a MODULE_DESCRIPTION().
Add descriptions to the MediaTek mt76 drivers.

Here is a sorted list of descriptions. It might make the reviewing
process easier.

	MODULE_DESCRIPTION("MediaTek MT7603E and MT76x8 wireless driver");
	MODULE_DESCRIPTION("MediaTek MT7615E and MT7663E wireless driver");
	MODULE_DESCRIPTION("MediaTek MT7615E MMIO helpers");
	MODULE_DESCRIPTION("MediaTek MT7663 SDIO/USB helpers");
	MODULE_DESCRIPTION("MediaTek MT7663S (SDIO) wireless driver");
	MODULE_DESCRIPTION("MediaTek MT7663U (USB) wireless driver");
	MODULE_DESCRIPTION("MediaTek MT76x02 helpers");
	MODULE_DESCRIPTION("MediaTek MT76x02 MCU helpers");
	MODULE_DESCRIPTION("MediaTek MT76x0E (PCIe) wireless driver");
	MODULE_DESCRIPTION("MediaTek MT76x0U (USB) wireless driver");
	MODULE_DESCRIPTION("MediaTek MT76x2 EEPROM helpers");
	MODULE_DESCRIPTION("MediaTek MT76x2E (PCIe) wireless driver");
	MODULE_DESCRIPTION("MediaTek MT76x2U (USB) wireless driver");
	MODULE_DESCRIPTION("MediaTek MT76x connac layer helpers");
	MODULE_DESCRIPTION("MediaTek MT76x EEPROM helpers");
	MODULE_DESCRIPTION("MediaTek MT76x helpers");
	MODULE_DESCRIPTION("MediaTek MT76x SDIO helpers");
	MODULE_DESCRIPTION("MediaTek MT76x USB helpers");
	MODULE_DESCRIPTION("MediaTek MT7915E MMIO helpers");
	MODULE_DESCRIPTION("MediaTek MT7921 core driver");
	MODULE_DESCRIPTION("MediaTek MT7921E (PCIe) wireless driver");
	MODULE_DESCRIPTION("MediaTek MT7921S (SDIO) wireless driver");
	MODULE_DESCRIPTION("MediaTek MT7921U (USB) wireless driver");
	MODULE_DESCRIPTION("MediaTek MT7925 core driver");
	MODULE_DESCRIPTION("MediaTek MT7925E (PCIe) wireless driver");
	MODULE_DESCRIPTION("MediaTek MT7925U (USB) wireless driver");
	MODULE_DESCRIPTION("MediaTek MT792x core driver");
	MODULE_DESCRIPTION("MediaTek MT792x USB helpers");
	MODULE_DESCRIPTION("MediaTek MT7996 MMIO helpers");

Signed-off-by: Breno Leitao &lt;leitao@debian.org&gt;
Signed-off-by: Kalle Valo &lt;kvalo@kernel.org&gt;
Link: https://msgid.link/20240130104243.3025393-10-leitao@debian.org
</content>
</entry>
<entry>
<title>wifi: mt76: mt7921s: fix workqueue problem causes STA association fail</title>
<updated>2023-12-07T17:50:22Z</updated>
<author>
<name>Wang Zhao</name>
<email>wang.zhao@mediatek.com</email>
</author>
<published>2023-11-17T12:54:49Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=92184eae1d5ad804884e2c6e289d885b9e3194d1'/>
<id>urn:sha1:92184eae1d5ad804884e2c6e289d885b9e3194d1</id>
<content type='text'>
The ieee80211_queue_work function queues work into the mac80211
local-&gt;workqueue, which is widely used for mac80211 internal
work processes. In the mt76 driver, both the mt76-sido-status and
mt76-sdio-net threads enqueue workers to the workqueue with this
function. However, in some cases, when two workers are enqueued
to the workqueue almost simultaneously, the second worker may not
be scheduled immediately and may get stuck for a while.
This can cause timing issues. To avoid these timing
conflicts caused by worker scheduling, replace the worker
with an independent thread.

Fixes: 48fab5bbef40 ("mt76: mt7921: introduce mt7921s support")
Signed-off-by: Wang Zhao &lt;wang.zhao@mediatek.com&gt;
Signed-off-by: Deren Wu &lt;deren.wu@mediatek.com&gt;
Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>wifi: mt76: add memory barrier to SDIO queue kick</title>
<updated>2023-02-03T13:47:17Z</updated>
<author>
<name>Deren Wu</name>
<email>deren.wu@mediatek.com</email>
</author>
<published>2023-01-15T04:44:57Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=5f54237ad798f41cb6a503271aa9ca47188cfb9b'/>
<id>urn:sha1:5f54237ad798f41cb6a503271aa9ca47188cfb9b</id>
<content type='text'>
Ensure the entry has been fully updated before SDIO bus worker access
it. This patch would fix potential memory risk in both mt7663s and
mt7921s.

Fixes: 764dee47e2c1 ("mt76: sdio: move common code in mt76_sdio module")
Signed-off-by: Deren Wu &lt;deren.wu@mediatek.com&gt;
Reviewed-by: AngeloGioacchino Del Regno &lt;angelogioacchino.delregno@collabora.com&gt;
Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>wifi: mt76: add info parameter to rx_skb signature</title>
<updated>2022-12-01T16:29:14Z</updated>
<author>
<name>Sujuan Chen</name>
<email>sujuan.chen@mediatek.com</email>
</author>
<published>2022-11-12T15:40:38Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c3137942771eceef923158980b6cccae572e81d1'/>
<id>urn:sha1:c3137942771eceef923158980b6cccae572e81d1</id>
<content type='text'>
This is a preliminary patch to introduce WED RX support for mt7915.

Tested-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
Co-developed-by: Lorenzo Bianconi &lt;lorenzo@kernel.org&gt;
Signed-off-by: Lorenzo Bianconi &lt;lorenzo@kernel.org&gt;
Signed-off-by: Sujuan Chen &lt;sujuan.chen@mediatek.com&gt;
Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>wifi: mt76: sdio: fix transmitting packet hangs</title>
<updated>2022-09-15T10:53:59Z</updated>
<author>
<name>YN Chen</name>
<email>yn.chen@mediatek.com</email>
</author>
<published>2022-07-22T21:59:23Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=250b1827205846ff346a76044955cb79d4963f70'/>
<id>urn:sha1:250b1827205846ff346a76044955cb79d4963f70</id>
<content type='text'>
Fix transmitting packets hangs with continuing to pull the pending packet
from mac80211 queues when receiving Tx status notification from the device.

Fixes: aac5104bf631 ("mt76: sdio: do not run mt76_txq_schedule directly")
Acked-by: Sean Wang &lt;sean.wang@mediatek.com&gt;
Signed-off-by: YN Chen &lt;yn.chen@mediatek.com&gt;
Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>wifi: mt76: sdio: poll sta stat when device transmits data</title>
<updated>2022-09-15T10:53:58Z</updated>
<author>
<name>Sean Wang</name>
<email>sean.wang@mediatek.com</email>
</author>
<published>2022-07-21T22:39:36Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=a323e5f041dd11af5e3de19ed7ea95a97d588c11'/>
<id>urn:sha1:a323e5f041dd11af5e3de19ed7ea95a97d588c11</id>
<content type='text'>
It is not meaningful to poll sta stat when there is no data traffic.
So polling sta stat when the device has transmitted data instead to save
CPU power.

That implies that it is unallowed the stat_work to work while MCU is being
initialized in the really early stage to fix the possible time to time MCU
initialization failure.

Fixes: d39b52e31aa6 ("mt76: introduce mt76_sdio module")
Signed-off-by: Sean Wang &lt;sean.wang@mediatek.com&gt;
Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>wifi: mt76: sdio: fix the deadlock caused by sdio-&gt;stat_work</title>
<updated>2022-09-15T10:53:58Z</updated>
<author>
<name>Sean Wang</name>
<email>sean.wang@mediatek.com</email>
</author>
<published>2022-07-21T22:39:35Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=e5d78fd998be94fb459a3d625df7367849b997b8'/>
<id>urn:sha1:e5d78fd998be94fb459a3d625df7367849b997b8</id>
<content type='text'>
Because wake_work and sdio-&gt;stat_work share the same workqueue mt76-&gt;wq,
if sdio-&gt;stat_work cannot acquire the mutex lock such as that was possibly
held up by [mt7615, mt7921]_mutex_acquire. Additionally, if
[mt7615, mt7921]_mutex_acquire was called by sdio-&gt;stat_work self, the wake
would be blocked by itself. Thus, we move the stat_work into
ieee80211_workqueue instead to break the deadlock.

Fixes: d39b52e31aa6 ("mt76: introduce mt76_sdio module")
Co-developed-by: YN Chen &lt;YN.Chen@mediatek.com&gt;
Signed-off-by: YN Chen &lt;YN.Chen@mediatek.com&gt;
Signed-off-by: Sean Wang &lt;sean.wang@mediatek.com&gt;
Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>mt76: remove q-&gt;qid</title>
<updated>2022-07-11T11:40:03Z</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@nbd.name</email>
</author>
<published>2022-07-03T18:59:05Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=bceb8b8ded9b2470c10a13e5446f2d5a8e178964'/>
<id>urn:sha1:bceb8b8ded9b2470c10a13e5446f2d5a8e178964</id>
<content type='text'>
It is no longer used

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>mt76: pass original queue id from __mt76_tx_queue_skb to the driver</title>
<updated>2022-07-11T11:40:03Z</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@nbd.name</email>
</author>
<published>2022-07-03T15:52:24Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=d08295f5be8e63e64f9e664572f1b582ede7958b'/>
<id>urn:sha1:d08295f5be8e63e64f9e664572f1b582ede7958b</id>
<content type='text'>
MT7615 and newer map multiple software tx queues to the hardware id

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
</feed>
