/* * Copyright (c) 2026 Ahmad Khalifa * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include int8_t r23b_get_rssi_cck(struct rtwn_softc *sc, void *physt) { struct r88e_rx_phystat *phy = (struct r88e_rx_phystat *)physt; int8_t lna_idx, vga_idx, rssi; lna_idx = (phy->agc_rpt & 0xe0) >> 5; vga_idx = (phy->agc_rpt & 0x1f); rssi = -2 * vga_idx; switch (lna_idx) { case 6: rssi -= 34; break; case 4: rssi -= 14; break; case 1: rssi += 6; break; case 0: rssi += 16; break; default: rssi = 0; break; } return (rssi); }