Bug 290850 - rtw88: check calibration results vs. Linux
Summary: rtw88: check calibration results vs. Linux
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: wireless (show other bugs)
Version: CURRENT
Hardware: riscv Any
: --- Affects Only Me
Assignee: Bjoern A. Zeeb
URL:
Keywords:
Depends on:
Blocks: 273621
  Show dependency treegraph
 
Reported: 2025-11-06 22:53 UTC by Bjoern A. Zeeb
Modified: 2025-11-12 18:47 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bjoern A. Zeeb freebsd_committer freebsd_triage 2025-11-06 22:53:31 UTC
It seems on my three 8821, 8822b, 882c RF calibration upon mgd_prepare_tx in SCAN to AUTH fails (CH=100).

There is a caching mechanism which does not seem to help these 6s delay given it's the first time (see original commit from Realtek).

882c is different but essentially the same problem.  People may have seen the "unknown channel 234" (Reg18 0x000aeaea) there.
rtw8822c_set_channel_rf -> rtw_ops_mgd_prepare_tx -> rtw8822c_phy_calibration { rtw8822c_txgapk_save_all_tx_gain_table -> rtw8822c_txgapk }


Should boot a Linux with debug on on the same hardware and see if they also fail the same way or if this is a FreeBSD-only problem.
Also check 2.4Ghz and once avail with 11n/ac.
Comment 1 commit-hook freebsd_committer freebsd_triage 2025-11-10 19:55:21 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=b568711f8ef1afd7c86ea2d8bd2f94f399f54dc1

commit b568711f8ef1afd7c86ea2d8bd2f94f399f54dc1
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2025-11-10 19:41:08 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2025-11-10 19:41:08 +0000

    LinuxKPI: 802.11: clear CONF_IDLE earlier

    When starting to scan and ending a scan we clear/set the hardware to
    idle.  Similarly we set the hw to idle when we remove the channel
    context but when starting we only set it to non-idle when we went from
    assoc to run.  This apparently was not a problem most of the time
    as the switch from a failed hardware scan to a software scan was
    racing against net80211.  ad4ddc83ebf8 fixed that specifically for
    rtw88 and while we were more consistently scanning, this broke
    authentication as the setting of idle at the end of the scan was
    now happening reliably.  Move the unsetting of idle from assoc_to_run
    to scan_to_auth for when we  create the chanctx to keep it
    symmetrical.  This makes authentication work again for rtw88.

    This likely also fixes the problems in the listed PRs.

    iwlwifi(4) mvm and mld driver parts do not use this information at
    all and were never affected.

    Sponsored by:   The FreeBSD Foundation
    MFC after:      3 days
    Reported by:    Oleg Nauman (oleg.nauman gmail.com)
    PR:             290850, 288186, 281979
    PR:             272145 (the non skb-mem-limit parts)

 sys/compat/linuxkpi/common/src/linux_80211.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
Comment 2 Bjoern A. Zeeb freebsd_committer freebsd_triage 2025-11-10 19:58:26 UTC
I'll close this as it is essentially a side-effect of the problem now solved.
When we were marked IDLE we would go through this.

I'll keep one user-PR for tracking the MFCs.
Comment 3 commit-hook freebsd_committer freebsd_triage 2025-11-12 15:42:51 UTC
A commit in branch stable/15 references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=a77abd53e83c4357ad8a8006a6e89759e65e3a5b

commit a77abd53e83c4357ad8a8006a6e89759e65e3a5b
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2025-11-10 19:41:08 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2025-11-12 15:41:24 +0000

    LinuxKPI: 802.11: clear CONF_IDLE earlier

    When starting to scan and ending a scan we clear/set the hardware to
    idle.  Similarly we set the hw to idle when we remove the channel
    context but when starting we only set it to non-idle when we went from
    assoc to run.  This apparently was not a problem most of the time
    as the switch from a failed hardware scan to a software scan was
    racing against net80211.  ad4ddc83ebf8 fixed that specifically for
    rtw88 and while we were more consistently scanning, this broke
    authentication as the setting of idle at the end of the scan was
    now happening reliably.  Move the unsetting of idle from assoc_to_run
    to scan_to_auth for when we  create the chanctx to keep it
    symmetrical.  This makes authentication work again for rtw88 (though
    not for everyone due to other possible problems with net80211).

    This likely also fixes the problems in the listed PRs.

    iwlwifi(4) mvm and mld driver parts do not use this information at
    all and were never affected.

    Sponsored by:   The FreeBSD Foundation
    PR:             290850, 288186, 281979
    PR:             272145 (the non skb-mem-limit parts)

    (cherry picked from commit b568711f8ef1afd7c86ea2d8bd2f94f399f54dc1)

 sys/compat/linuxkpi/common/src/linux_80211.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
Comment 4 commit-hook freebsd_committer freebsd_triage 2025-11-12 18:47:31 UTC
A commit in branch releng/15.0 references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=f490eae83f7f90de8be5d1dea593227dbfb98f36

commit f490eae83f7f90de8be5d1dea593227dbfb98f36
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2025-11-10 19:41:08 +0000
Commit:     Colin Percival <cperciva@FreeBSD.org>
CommitDate: 2025-11-12 18:46:14 +0000

    LinuxKPI: 802.11: clear CONF_IDLE earlier

    When starting to scan and ending a scan we clear/set the hardware to
    idle.  Similarly we set the hw to idle when we remove the channel
    context but when starting we only set it to non-idle when we went from
    assoc to run.  This apparently was not a problem most of the time
    as the switch from a failed hardware scan to a software scan was
    racing against net80211.  ad4ddc83ebf8 fixed that specifically for
    rtw88 and while we were more consistently scanning, this broke
    authentication as the setting of idle at the end of the scan was
    now happening reliably.  Move the unsetting of idle from assoc_to_run
    to scan_to_auth for when we  create the chanctx to keep it
    symmetrical.  This makes authentication work again for rtw88 (though
    not for everyone due to other possible problems with net80211).

    This likely also fixes the problems in the listed PRs.

    iwlwifi(4) mvm and mld driver parts do not use this information at
    all and were never affected.

    Approved by:    re (cperciva)
    Sponsored by:   The FreeBSD Foundation
    PR:             290850, 288186, 281979
    PR:             272145 (the non skb-mem-limit parts)

    (cherry picked from commit b568711f8ef1afd7c86ea2d8bd2f94f399f54dc1)
    (cherry picked from commit a77abd53e83c4357ad8a8006a6e89759e65e3a5b)

 sys/compat/linuxkpi/common/src/linux_80211.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)