drivers/staging/rtl8723bs/hal/HalBtc8723b1Ant.c
Source file repositories/reference/linux-study-clean/drivers/staging/rtl8723bs/hal/HalBtc8723b1Ant.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/staging/rtl8723bs/hal/HalBtc8723b1Ant.c- Extension
.c- Size
- 75006 bytes
- Lines
- 2637
- 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 halbtc8723b1ant_BtRssiStatefunction halbtc8723b1ant_UpdateRaMaskfunction halbtc8723b1ant_AutoRateFallbackRetryfunction halbtc8723b1ant_RetryLimitfunction halbtc8723b1ant_AmpduMaxTimefunction halbtc8723b1ant_LimitedTxfunction halbtc8723b1ant_LimitedRxfunction halbtc8723b1ant_QueryBtInfofunction halbtc8723b1ant_MonitorBtCtrfunction halbtc8723b1ant_MonitorWiFiCtrfunction halbtc8723b1ant_IsWifiStatusChangedfunction halbtc8723b1ant_UpdateBtLinkInfofunction halbtc8723b1ant_ActionAlgorithmfunction halbtc8723b1ant_SetSwPenaltyTxRateAdaptivefunction halbtc8723b1ant_LowPenaltyRafunction halbtc8723b1ant_SetCoexTablefunction halbtc8723b1ant_CoexTablefunction halbtc8723b1ant_CoexTableWithTypefunction halbtc8723b1ant_SetFwIgnoreWlanActfunction halbtc8723b1ant_IgnoreWlanActfunction halbtc8723b1ant_SetLpsRpwmfunction halbtc8723b1ant_LpsRpwmfunction halbtc8723b1ant_SwMechanismfunction halbtc8723b1ant_SetAntPathfunction halbtc8723b1ant_SetFwPstdmafunction halbtc8723b1ant_PsTdmafunction halbtc8723b1ant_IsCommonActionfunction halbtc8723b1ant_TdmaDurationAdjustForAclfunction halbtc8723b1ant_PsTdmaCheckForPowerSaveStatefunction halbtc8723b1ant_PowerSaveStatefunction halbtc8723b1ant_ActionWifiMultiPortfunction halbtc8723b1ant_ActionHsfunction halbtc8723b1ant_ActionBtInquiryfunction halbtc8723b1ant_ActionBtScoHidOnlyBusyfunction halbtc8723b1ant_ActionWifiConnectedBtAclBusyfunction halbtc8723b1ant_ActionWifiNotConnectedfunction halbtc8723b1ant_ActionWifiNotConnectedScanfunction halbtc8723b1ant_ActionWifiNotConnectedAssoAuthfunction halbtc8723b1ant_ActionWifiConnectedScanfunction halbtc8723b1ant_ActionWifiConnectedSpecialPacketfunction halbtc8723b1ant_ActionWifiConnectedfunction halbtc8723b1ant_RunSwCoexistMechanismfunction halbtc8723b1ant_RunCoexistMechanismfunction halbtc8723b1ant_InitCoexDmfunction halbtc8723b1ant_InitHwConfigfunction EXhalbtc8723b1ant_PowerOnSettingfunction EXhalbtc8723b1ant_InitHwConfigfunction EXhalbtc8723b1ant_InitCoexDm
Annotated Snippet
switch (pCoexDm->curArfrType) {
case 0: /* normal mode */
pBtCoexist->fBtcWrite4Byte(
pBtCoexist, 0x430, pCoexDm->backupArfrCnt1
);
pBtCoexist->fBtcWrite4Byte(
pBtCoexist, 0x434, pCoexDm->backupArfrCnt2
);
break;
case 1:
pBtCoexist->fBtcGet(
pBtCoexist, BTC_GET_BL_WIFI_UNDER_B_MODE, &bWifiUnderBMode
);
if (bWifiUnderBMode) {
pBtCoexist->fBtcWrite4Byte(pBtCoexist, 0x430, 0x0);
pBtCoexist->fBtcWrite4Byte(pBtCoexist, 0x434, 0x01010101);
} else {
pBtCoexist->fBtcWrite4Byte(pBtCoexist, 0x430, 0x0);
pBtCoexist->fBtcWrite4Byte(pBtCoexist, 0x434, 0x04030201);
}
break;
default:
break;
}
}
pCoexDm->preArfrType = pCoexDm->curArfrType;
}
static void halbtc8723b1ant_RetryLimit(
struct btc_coexist *pBtCoexist, bool bForceExec, u8 type
)
{
pCoexDm->curRetryLimitType = type;
if (
bForceExec ||
(pCoexDm->preRetryLimitType != pCoexDm->curRetryLimitType)
) {
switch (pCoexDm->curRetryLimitType) {
case 0: /* normal mode */
pBtCoexist->fBtcWrite2Byte(
pBtCoexist, 0x42a, pCoexDm->backupRetryLimit
);
break;
case 1: /* retry limit =8 */
pBtCoexist->fBtcWrite2Byte(pBtCoexist, 0x42a, 0x0808);
break;
default:
break;
}
}
pCoexDm->preRetryLimitType = pCoexDm->curRetryLimitType;
}
static void halbtc8723b1ant_AmpduMaxTime(
struct btc_coexist *pBtCoexist, bool bForceExec, u8 type
)
{
pCoexDm->curAmpduTimeType = type;
if (
bForceExec || (pCoexDm->preAmpduTimeType != pCoexDm->curAmpduTimeType)
) {
switch (pCoexDm->curAmpduTimeType) {
case 0: /* normal mode */
pBtCoexist->fBtcWrite1Byte(
pBtCoexist, 0x456, pCoexDm->backupAmpduMaxTime
);
break;
case 1: /* AMPDU timw = 0x38 * 32us */
pBtCoexist->fBtcWrite1Byte(pBtCoexist, 0x456, 0x38);
break;
default:
break;
}
}
pCoexDm->preAmpduTimeType = pCoexDm->curAmpduTimeType;
}
static void halbtc8723b1ant_LimitedTx(
struct btc_coexist *pBtCoexist,
bool bForceExec,
u8 raMaskType,
u8 arfrType,
u8 retryLimitType,
u8 ampduTimeType
)
Annotation
- Immediate include surface: `Mp_Precomp.h`.
- Detected declarations: `function halbtc8723b1ant_BtRssiState`, `function halbtc8723b1ant_UpdateRaMask`, `function halbtc8723b1ant_AutoRateFallbackRetry`, `function halbtc8723b1ant_RetryLimit`, `function halbtc8723b1ant_AmpduMaxTime`, `function halbtc8723b1ant_LimitedTx`, `function halbtc8723b1ant_LimitedRx`, `function halbtc8723b1ant_QueryBtInfo`, `function halbtc8723b1ant_MonitorBtCtr`, `function halbtc8723b1ant_MonitorWiFiCtr`.
- 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.