Re: [BUG] mt7921e/MT7902: firmware programs near-zero Tx power for all 20/40 MHz rates -> assoc fails except at close range
Devin Wittmayer <[email protected]>
| Newsgroups | org.kernel.vger.linux-wireless |
|---|---|
| Message-ID | <[email protected]> |
Hi Pablo, On Sat, 2026-08-22 at 23:00 -0500, Pablo Diaz wrote: > Whether the BIOS tables are bogus or we mis-parse them, mt76 applies the > value with no sanity check. Only just came across this. Nice bit of digging, so here's the other half of it. Your -1 is the tell. Those tables are in half dB steps, so it's claiming minus half a dBm, and that isn't a cap anyone writes. Real entries in there are small positive numbers. What you're looking at is the driver reading bytes that aren't limits. Same flat 4 showed up on an ASUS laptop back in July, an MT7922 rather than your part. Turned out the country list on that thing said one table layout and the power tables were written in the other. Driver takes its version from the country list and reads everything with it, so both tables came out a byte off. There it landed on a zero. Yours coming out negative would be the same fault reading different rubbish. I sent a patch for it a couple of weeks ago. It throws out a table whose size doesn't match what the table says it holds, so a mismatched pair gets dropped and no limit gets applied at all. That machine's bytes and the walk through them are on the issue behind it, if you want something to compare yours to. https://lore.kernel.org/linux-wireless/[email protected]/ https://github.com/morrownr/mt76/issues/62 Whether it covers you comes down to whether your tables fail those checks. Your MTCL, MTGS and MTDS bytes would settle it either way. And if they come back well formed, then something else is driving it negative and I'd sooner go find that than clamp it. A bad parse lands on a plausible number as easily as an implausible one. Which, imo, is the version nobody ever notices. Devin