drivers/staging/rtl8723bs/hal/HalBtc8723b2Ant.c
Source file repositories/reference/linux-study-clean/drivers/staging/rtl8723bs/hal/HalBtc8723b2Ant.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/staging/rtl8723bs/hal/HalBtc8723b2Ant.c- Extension
.c- Size
- 82329 bytes
- Lines
- 2631
- Domain
- Driver Families
- Bucket
- drivers/staging
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
Mp_Precomp.h
Detected Declarations
function halbtc8723b2ant_BtRssiStatefunction halbtc8723b2ant_WifiRssiStatefunction halbtc8723b2ant_LimitedRxfunction halbtc8723b2ant_QueryBtInfofunction halbtc8723b2ant_IsWifiStatusChangedfunction halbtc8723b2ant_UpdateBtLinkInfofunction halbtc8723b2ant_ActionAlgorithmfunction halbtc8723b2ant_SetFwDacSwingLevelfunction halbtc8723b2ant_SetFwDecBtPwrfunction halbtc8723b2ant_DecBtPwrfunction halbtc8723b2ant_FwDacSwingLvlfunction halbtc8723b2ant_SetSwRfRxLpfCornerfunction halbtc8723b2ant_RfShrinkfunction halbtc8723b2ant_SetSwPenaltyTxRateAdaptivefunction halbtc8723b2ant_LowPenaltyRafunction halbtc8723b2ant_SetDacSwingRegfunction halbtc8723b2ant_SetSwFullTimeDacSwingfunction halbtc8723b2ant_DacSwingfunction halbtc8723b2ant_SetAgcTablefunction halbtc8723b2ant_AgcTablefunction halbtc8723b2ant_SetCoexTablefunction halbtc8723b2ant_CoexTablefunction halbtc8723b2ant_CoexTableWithTypefunction halbtc8723b2ant_SetFwIgnoreWlanActfunction halbtc8723b2ant_IgnoreWlanActfunction halbtc8723b2ant_SetFwPstdmafunction halbtc8723b2ant_SwMechanism1function halbtc8723b2ant_SwMechanism2function halbtc8723b2ant_SetAntPathfunction halbtc8723b2ant_PsTdmafunction halbtc8723b2ant_CoexAllOfffunction halbtc8723b2ant_InitCoexDmfunction halbtc8723b2ant_ActionBtInquiryfunction halbtc8723b2ant_IsCommonActionfunction halbtc8723b2ant_TdmaDurationAdjustfunction halbtc8723b2ant_ActionScofunction halbtc8723b2ant_ActionHidfunction halbtc8723b2ant_ActionA2dpfunction halbtc8723b2ant_ActionA2dpPanHsfunction halbtc8723b2ant_ActionPanEdrfunction halbtc8723b2ant_ActionPanHsfunction halbtc8723b2ant_ActionPanEdrA2dpfunction halbtc8723b2ant_ActionPanEdrHidfunction halbtc8723b2ant_ActionHidA2dpPanEdrfunction halbtc8723b2ant_ActionHidA2dpfunction halbtc8723b2ant_RunCoexistMechanismfunction halbtc8723b2ant_WifiOffHwCfgfunction halbtc8723b2ant_InitHwConfig
Annotated Snippet
if (btRssi >= (rssiThresh + BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT)) {
btRssiState = BTC_RSSI_STATE_HIGH;
} else {
btRssiState = BTC_RSSI_STATE_STAY_LOW;
}
} else {
if (btRssi < rssiThresh) {
btRssiState = BTC_RSSI_STATE_LOW;
} else {
btRssiState = BTC_RSSI_STATE_STAY_HIGH;
}
}
} else if (levelNum == 3) {
if (rssiThresh > rssiThresh1) {
return pCoexSta->preBtRssiState;
}
if (
(pCoexSta->preBtRssiState == BTC_RSSI_STATE_LOW) ||
(pCoexSta->preBtRssiState == BTC_RSSI_STATE_STAY_LOW)
) {
if (btRssi >= (rssiThresh + BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT)) {
btRssiState = BTC_RSSI_STATE_MEDIUM;
} else {
btRssiState = BTC_RSSI_STATE_STAY_LOW;
}
} else if (
(pCoexSta->preBtRssiState == BTC_RSSI_STATE_MEDIUM) ||
(pCoexSta->preBtRssiState == BTC_RSSI_STATE_STAY_MEDIUM)
) {
if (btRssi >= (rssiThresh1 + BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT)) {
btRssiState = BTC_RSSI_STATE_HIGH;
} else if (btRssi < rssiThresh) {
btRssiState = BTC_RSSI_STATE_LOW;
} else {
btRssiState = BTC_RSSI_STATE_STAY_MEDIUM;
}
} else {
if (btRssi < rssiThresh1) {
btRssiState = BTC_RSSI_STATE_MEDIUM;
} else {
btRssiState = BTC_RSSI_STATE_STAY_HIGH;
}
}
}
pCoexSta->preBtRssiState = btRssiState;
return btRssiState;
}
static u8 halbtc8723b2ant_WifiRssiState(
struct btc_coexist *pBtCoexist,
u8 index,
u8 levelNum,
u8 rssiThresh,
u8 rssiThresh1
)
{
s32 wifiRssi = 0;
u8 wifiRssiState = pCoexSta->preWifiRssiState[index];
pBtCoexist->fBtcGet(pBtCoexist, BTC_GET_S4_WIFI_RSSI, &wifiRssi);
if (levelNum == 2) {
if (
(pCoexSta->preWifiRssiState[index] == BTC_RSSI_STATE_LOW) ||
(pCoexSta->preWifiRssiState[index] == BTC_RSSI_STATE_STAY_LOW)
) {
if (wifiRssi >= (rssiThresh + BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT)) {
wifiRssiState = BTC_RSSI_STATE_HIGH;
} else {
wifiRssiState = BTC_RSSI_STATE_STAY_LOW;
}
} else {
if (wifiRssi < rssiThresh) {
wifiRssiState = BTC_RSSI_STATE_LOW;
} else {
wifiRssiState = BTC_RSSI_STATE_STAY_HIGH;
}
}
} else if (levelNum == 3) {
if (rssiThresh > rssiThresh1) {
return pCoexSta->preWifiRssiState[index];
}
if (
(pCoexSta->preWifiRssiState[index] == BTC_RSSI_STATE_LOW) ||
(pCoexSta->preWifiRssiState[index] == BTC_RSSI_STATE_STAY_LOW)
) {
Annotation
- Immediate include surface: `Mp_Precomp.h`.
- Detected declarations: `function halbtc8723b2ant_BtRssiState`, `function halbtc8723b2ant_WifiRssiState`, `function halbtc8723b2ant_LimitedRx`, `function halbtc8723b2ant_QueryBtInfo`, `function halbtc8723b2ant_IsWifiStatusChanged`, `function halbtc8723b2ant_UpdateBtLinkInfo`, `function halbtc8723b2ant_ActionAlgorithm`, `function halbtc8723b2ant_SetFwDacSwingLevel`, `function halbtc8723b2ant_SetFwDecBtPwr`, `function halbtc8723b2ant_DecBtPwr`.
- Atlas domain: Driver Families / drivers/staging.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.