Bug 216901
Summary: | MEDIATEK MT7922 PCIE - Unable to connect to wireless network | ||
---|---|---|---|
Product: | Drivers | Reporter: | Georg (g.wenzel) |
Component: | network-wireless | Assignee: | drivers_network-wireless (drivers_network-wireless) |
Status: | RESOLVED PATCH_ALREADY_AVAILABLE | ||
Severity: | blocking | CC: | regressions, spasswolf |
Priority: | P1 | ||
Hardware: | AMD | ||
OS: | Linux | ||
Kernel Version: | 6.2.0-rc1 & 6.2.0-rc2 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: | Log file |
Description
Georg
2023-01-08 10:23:14 UTC
Created attachment 303550 [details]
Log file
I had similar problems since linux-6.2-rc1. This solved this for me: diff --git a/drivers/net/wireless/mediatek/mt76/dma.c b/drivers/net/wireless/mediatek/mt76/dma.c index f795548562f5..f0b7ddd11d64 100644 --- a/drivers/net/wireless/mediatek/mt76/dma.c +++ b/drivers/net/wireless/mediatek/mt76/dma.c @@ -215,6 +215,11 @@ mt76_dma_add_buf(struct mt76_dev *dev, struct mt76_queue *q, u32 ctrl; int i, idx = -1; + if (txwi) { + q->entry[q->head].txwi = DMA_DUMMY_DATA; + q->entry[q->head].skip_buf0 = true; + } + for (i = 0; i < nbufs; i += 2, buf += 2) { u32 buf0 = buf[0].addr, buf1 = 0; @@ -238,11 +243,6 @@ mt76_dma_add_buf(struct mt76_dev *dev, struct mt76_queue *q, ctrl = FIELD_PREP(MT_DMA_CTL_SD_LEN0, buf[0].len) | MT_DMA_CTL_TO_HOST; } else { - if (txwi) { - q->entry[q->head].txwi = DMA_DUMMY_DATA; - q->entry[q->head].skip_buf0 = true; - } - if (buf[0].skip_unmap) entry->skip_buf0 = true; entry->skip_buf1 = i == nbufs - 1; Not my area of expertise, but I wonder if this is the same issue as this one: https://lore.kernel.org/all/CABXGCsMEnQd=gYKTd1knRsWuxCb=Etv5nAre+XJS_s5FgVteYA@mail.gmail.com/ There is a proposed fix here: https://lore.kernel.org/all/3cb53fbd-0bee-22f9-bba2-6ac4a87db521@nbd.name/ (In reply to spasswolf from comment #2) > I had similar problems since linux-6.2-rc1. This solved this for me: Did you report or submit this fix to the developers (who likely won't see anything that is discussed here by default). Hi Guys, Thank you for your prompt reply. Unfortunately no patch works for me. The codebase looks different and I can't migrate the patches. This patch should work for linux-6.2-rc3: diff -aur linux-6.2-rc3.old/drivers/net/wireless/mediatek/mt76/dma.c linux-6.2-rc3/drivers/net/wireless/mediatek/mt76/dma.c --- linux-6.2-rc3.old/drivers/net/wireless/mediatek/mt76/dma.c 2023-01-08 18:49:43.000000000 +0100 +++ linux-6.2-rc3/drivers/net/wireless/mediatek/mt76/dma.c 2023-01-09 22:07:29.533248047 +0100 @@ -215,6 +215,11 @@ u32 ctrl; int i, idx = -1; + if (txwi) { + q->entry[q->head].txwi = DMA_DUMMY_DATA; + q->entry[q->head].skip_buf0 = true; + } + for (i = 0; i < nbufs; i += 2, buf += 2) { u32 buf0 = buf[0].addr, buf1 = 0; @@ -238,11 +243,6 @@ ctrl = FIELD_PREP(MT_DMA_CTL_SD_LEN0, buf[0].len) | MT_DMA_CTL_TO_HOST; } else { - if (txwi) { - q->entry[q->head].txwi = DMA_DUMMY_DATA; - q->entry[q->head].skip_buf0 = true; - } - if (buf[0].skip_unmap) entry->skip_buf0 = true; entry->skip_buf1 = i == nbufs - 1; @Thorsten Lemhuis: Would the correct place be linux-wireless@vger.kernel.org? @spasswolf@web.de Many thanks you for your work. The patch works fine for me. (In reply to spasswolf from comment #5) > @Thorsten Lemhuis: Would the correct place be linux-wireless@vger.kernel.org? Kinda, but you needs to CC the maintainers as well. This explains the process: https://www.kernel.org/doc/html/latest/process/submitting-patches.html |