Lines Matching refs:ah

32 static void ar5212ConfigPCIE(struct ath_hal *ah, HAL_BOOL restore,
34 static void ar5212DisablePCIE(struct ath_hal *ah);
183 ar5212GetRadioRev(struct ath_hal *ah) in ar5212GetRadioRev() argument
189 OS_REG_WRITE(ah, AR_PHY(0x34), 0x00001c16); in ar5212GetRadioRev()
191 OS_REG_WRITE(ah, AR_PHY(0x20), 0x00010000); in ar5212GetRadioRev()
192 val = (OS_REG_READ(ah, AR_PHY(256)) >> 24) & 0xff; in ar5212GetRadioRev()
198 ar5212AniSetup(struct ath_hal *ah) in ar5212AniSetup() argument
218 if (AH_PRIVATE(ah)->ah_macVersion < AR_SREV_VERSION_GRIFFIN) { in ar5212AniSetup()
222 ar5212AniAttach(ah, &tmp, &tmp, AH_TRUE); in ar5212AniSetup()
224 ar5212AniAttach(ah, &aniparams, &aniparams, AH_TRUE); in ar5212AniSetup()
227 AH5212(ah)->ah_aniControl = ar5212AniControl; in ar5212AniSetup()
240 struct ath_hal *ah; in ar5212InitState() local
242 ah = &ahp->ah_priv.h; in ar5212InitState()
245 ah->ah_sc = sc; in ar5212InitState()
246 ah->ah_st = st; in ar5212InitState()
247 ah->ah_sh = sh; in ar5212InitState()
249 ah->ah_devid = devid; /* NB: for alq */ in ar5212InitState()
250 AH_PRIVATE(ah)->ah_devid = devid; in ar5212InitState()
251 AH_PRIVATE(ah)->ah_subvendorid = 0; /* XXX */ in ar5212InitState()
253 AH_PRIVATE(ah)->ah_powerLimit = MAX_RATE_POWER; in ar5212InitState()
254 AH_PRIVATE(ah)->ah_tpScale = HAL_TP_SCALE_MAX; /* no scaling */ in ar5212InitState()
324 #define AH_EEPROM_PROTECT(ah) \ in ar5212Attach() argument
325 (AH_PRIVATE(ah)->ah_ispcie)? AR_EEPROM_PROTECT_PCIE : AR_EEPROM_PROTECT) in ar5212Attach()
327 struct ath_hal *ah; in ar5212Attach() local
345 ah = &ahp->ah_priv.h; in ar5212Attach()
347 if (!ar5212SetPowerMode(ah, HAL_PM_AWAKE, AH_TRUE)) { in ar5212Attach()
348 HALDEBUG(ah, HAL_DEBUG_ANY, "%s: couldn't wakeup chip\n", in ar5212Attach()
354 val = OS_REG_READ(ah, AR_SREV) & AR_SREV_ID; in ar5212Attach()
355 AH_PRIVATE(ah)->ah_macVersion = val >> AR_SREV_ID_S; in ar5212Attach()
356 AH_PRIVATE(ah)->ah_macRev = val & AR_SREV_REVISION; in ar5212Attach()
357 AH_PRIVATE(ah)->ah_ispcie = IS_5424(ah) || IS_2425(ah); in ar5212Attach()
359 if (!ar5212IsMacSupported(AH_PRIVATE(ah)->ah_macVersion, AH_PRIVATE(ah)->ah_macRev)) { in ar5212Attach()
360 HALDEBUG(ah, HAL_DEBUG_ANY, in ar5212Attach()
362 __func__, AH_PRIVATE(ah)->ah_macVersion, in ar5212Attach()
363 AH_PRIVATE(ah)->ah_macRev); in ar5212Attach()
372 if (!ar5212ChipReset(ah, AH_NULL)) { /* reset chip */ in ar5212Attach()
373 HALDEBUG(ah, HAL_DEBUG_ANY, "%s: chip reset failed\n", __func__); in ar5212Attach()
378 AH_PRIVATE(ah)->ah_phyRev = OS_REG_READ(ah, AR_PHY_CHIP_ID); in ar5212Attach()
380 if (AH_PRIVATE(ah)->ah_ispcie) { in ar5212Attach()
382 ath_hal_configPCIE(ah, AH_FALSE, AH_FALSE); in ar5212Attach()
385 if (!ar5212ChipTest(ah)) { in ar5212Attach()
386 HALDEBUG(ah, HAL_DEBUG_ANY, "%s: hardware self-test failed\n", in ar5212Attach()
393 if (AH_PRIVATE(ah)->ah_macVersion >= AR_SREV_VERSION_VENICE) in ar5212Attach()
394 OS_REG_SET_BIT(ah, AR_PCICFG, AR_PCICFG_RETRYFIXEN); in ar5212Attach()
400 OS_REG_WRITE(ah, AR_PHY(0), 0x00000007); in ar5212Attach()
403 AH_PRIVATE(ah)->ah_analog5GhzRev = ar5212GetRadioRev(ah); in ar5212Attach()
405 rf = ath_hal_rfprobe(ah, &ecode); in ar5212Attach()
410 switch (AH_PRIVATE(ah)->ah_analog5GhzRev & AR_RADIO_SREV_MAJOR) { in ar5212Attach()
420 if (AH_PRIVATE(ah)->ah_analog5GhzRev == 0) { in ar5212Attach()
429 if (AH_PRIVATE(ah)->ah_macVersion == AR_SREV_VERSION_VENICE && in ar5212Attach()
430 AH_PRIVATE(ah)->ah_macRev == AR_SREV_HAINAN && in ar5212Attach()
431 AH_PRIVATE(ah)->ah_phyRev == AR_PHYREV_HAINAN) { in ar5212Attach()
432 AH_PRIVATE(ah)->ah_analog5GhzRev = AR_ANALOG5REV_HAINAN; in ar5212Attach()
435 if (IS_2413(ah)) { /* Griffin */ in ar5212Attach()
436 AH_PRIVATE(ah)->ah_analog5GhzRev = in ar5212Attach()
440 if (IS_5413(ah)) { /* Eagle */ in ar5212Attach()
441 AH_PRIVATE(ah)->ah_analog5GhzRev = in ar5212Attach()
445 if (IS_2425(ah) || IS_2417(ah)) {/* Swan or Nala */ in ar5212Attach()
446 AH_PRIVATE(ah)->ah_analog5GhzRev = in ar5212Attach()
452 HALDEBUG(ah, HAL_DEBUG_ANY, in ar5212Attach()
455 __func__, AH_PRIVATE(ah)->ah_analog5GhzRev); in ar5212Attach()
460 if (IS_RAD5112_REV1(ah)) { in ar5212Attach()
461 HALDEBUG(ah, HAL_DEBUG_ANY, in ar5212Attach()
464 AH_PRIVATE(ah)->ah_analog5GhzRev); in ar5212Attach()
469 val = OS_REG_READ(ah, AR_PCICFG); in ar5212Attach()
472 if (!AH_PRIVATE(ah)->ah_ispcie) { in ar5212Attach()
473 HALDEBUG(ah, HAL_DEBUG_ANY, in ar5212Attach()
482 HALDEBUG(ah, HAL_DEBUG_ANY, in ar5212Attach()
488 HALDEBUG(ah, HAL_DEBUG_ANY, in ar5212Attach()
494 ecode = ath_hal_legacyEepromAttach(ah); in ar5212Attach()
498 ahp->ah_isHb63 = IS_2425(ah) && ath_hal_eepromGetFlag(ah, AR_EEP_ISTALON); in ar5212Attach()
503 if (ath_hal_eepromGetFlag(ah, AR_EEP_BMODE) && in ar5212Attach()
504 (AH_PRIVATE(ah)->ah_analog5GhzRev & 0xF0) == AR_RAD5111_SREV_MAJOR) { in ar5212Attach()
509 OS_REG_WRITE(ah, AR_PHY(0), 0x00004007); in ar5212Attach()
511 AH_PRIVATE(ah)->ah_analog2GhzRev = ar5212GetRadioRev(ah); in ar5212Attach()
514 OS_REG_WRITE(ah, AR_PHY(0), 0x00000007); in ar5212Attach()
516 if ((AH_PRIVATE(ah)->ah_analog2GhzRev & 0xF0) != AR_RAD2111_SREV_MAJOR) { in ar5212Attach()
517 HALDEBUG(ah, HAL_DEBUG_ANY, in ar5212Attach()
520 AH_PRIVATE(ah)->ah_analog2GhzRev); in ar5212Attach()
526 ecode = ath_hal_eepromGet(ah, AR_EEP_REGDMN_0, &eeval); in ar5212Attach()
528 HALDEBUG(ah, HAL_DEBUG_ANY, in ar5212Attach()
533 AH_PRIVATE(ah)->ah_currentRD = eeval; in ar5212Attach()
539 if (!ar5212FillCapabilityInfo(ah)) { in ar5212Attach()
540 HALDEBUG(ah, HAL_DEBUG_ANY, in ar5212Attach()
546 if (!rf->attach(ah, &ecode)) { in ar5212Attach()
547 HALDEBUG(ah, HAL_DEBUG_ANY, "%s: RF setup failed, status %u\n", in ar5212Attach()
555 AH_PRIVATE(ah)->ah_getNfAdjust = ahp->ah_rfHal->getNfAdjust; in ar5212Attach()
558 ar5212InitializeGainValues(ah); in ar5212Attach()
560 ecode = ath_hal_eepromGet(ah, AR_EEP_MACADDR, ahp->ah_macaddr); in ar5212Attach()
562 HALDEBUG(ah, HAL_DEBUG_ANY, in ar5212Attach()
567 ar5212AniSetup(ah); in ar5212Attach()
569 ar5212InitNfCalHistBuffer(ah); in ar5212Attach()
573 HALDEBUG(ah, HAL_DEBUG_ATTACH, "%s: return\n", __func__); in ar5212Attach()
575 return ah; in ar5212Attach()
587 ar5212Detach(struct ath_hal *ah) in ar5212Detach() argument
589 HALDEBUG(ah, HAL_DEBUG_ATTACH, "%s:\n", __func__); in ar5212Detach()
591 HALASSERT(ah != AH_NULL); in ar5212Detach()
592 HALASSERT(ah->ah_magic == AR5212_MAGIC); in ar5212Detach()
594 ar5212AniDetach(ah); in ar5212Detach()
595 ar5212RfDetach(ah); in ar5212Detach()
596 ar5212Disable(ah); in ar5212Detach()
597 ar5212SetPowerMode(ah, HAL_PM_FULL_SLEEP, AH_TRUE); in ar5212Detach()
599 ath_hal_eepromDetach(ah); in ar5212Detach()
600 ath_hal_free(ah); in ar5212Detach()
604 ar5212ChipTest(struct ath_hal *ah) in ar5212ChipTest() argument
617 regHold[i] = OS_REG_READ(ah, addr); in ar5212ChipTest()
620 OS_REG_WRITE(ah, addr, wrData); in ar5212ChipTest()
621 rdData = OS_REG_READ(ah, addr); in ar5212ChipTest()
623 HALDEBUG(ah, HAL_DEBUG_ANY, in ar5212ChipTest()
631 OS_REG_WRITE(ah, addr, wrData); in ar5212ChipTest()
632 rdData = OS_REG_READ(ah, addr); in ar5212ChipTest()
634 HALDEBUG(ah, HAL_DEBUG_ANY, in ar5212ChipTest()
640 OS_REG_WRITE(ah, regAddr[i], regHold[i]); in ar5212ChipTest()
650 ar5212GetChannelEdges(struct ath_hal *ah, in ar5212GetChannelEdges() argument
659 (ath_hal_eepromGetFlag(ah, AR_EEP_BMODE) || in ar5212GetChannelEdges()
660 ath_hal_eepromGetFlag(ah, AR_EEP_GMODE))) { in ar5212GetChannelEdges()
678 ar5212ConfigPCIE(struct ath_hal *ah, HAL_BOOL restore, HAL_BOOL power_off) in ar5212ConfigPCIE() argument
680 OS_REG_WRITE(ah, AR_PCIE_SERDES, 0x9248fc00); in ar5212ConfigPCIE()
681 OS_REG_WRITE(ah, AR_PCIE_SERDES, 0x24924924); in ar5212ConfigPCIE()
684 OS_REG_WRITE(ah, AR_PCIE_SERDES, 0x28000039); in ar5212ConfigPCIE()
685 OS_REG_WRITE(ah, AR_PCIE_SERDES, 0x53160824); in ar5212ConfigPCIE()
686 OS_REG_WRITE(ah, AR_PCIE_SERDES, 0xe5980579); in ar5212ConfigPCIE()
689 OS_REG_WRITE(ah, AR_PCIE_SERDES, 0x001defff); in ar5212ConfigPCIE()
690 OS_REG_WRITE(ah, AR_PCIE_SERDES, 0x1aaabe40); in ar5212ConfigPCIE()
691 OS_REG_WRITE(ah, AR_PCIE_SERDES, 0xbe105554); in ar5212ConfigPCIE()
692 OS_REG_WRITE(ah, AR_PCIE_SERDES, 0x000e3007); in ar5212ConfigPCIE()
695 OS_REG_WRITE(ah, AR_PCIE_SERDES2, 0x00000000); in ar5212ConfigPCIE()
699 ar5212DisablePCIE(struct ath_hal *ah) in ar5212DisablePCIE() argument
710 ar5212FillCapabilityInfo(struct ath_hal *ah) in ar5212FillCapabilityInfo() argument
713 #define IS_GRIFFIN_LITE(ah) \ in ar5212FillCapabilityInfo() argument
714 (AH_PRIVATE(ah)->ah_macVersion == AR_SREV_VERSION_GRIFFIN && \ in ar5212FillCapabilityInfo()
715 AH_PRIVATE(ah)->ah_macRev == AR_SREV_GRIFFIN_LITE) in ar5212FillCapabilityInfo()
716 #define IS_COBRA(ah) \ in ar5212FillCapabilityInfo() argument
717 (AH_PRIVATE(ah)->ah_macVersion == AR_SREV_VERSION_COBRA) in ar5212FillCapabilityInfo()
718 #define IS_2112(ah) \ in ar5212FillCapabilityInfo() argument
719 ((AH_PRIVATE(ah)->ah_analog5GhzRev & 0xF0) == AR_RAD2112_SREV_MAJOR) in ar5212FillCapabilityInfo()
721 struct ath_hal_private *ahpriv = AH_PRIVATE(ah); in ar5212FillCapabilityInfo()
726 if (ath_hal_eepromGet(ah, AR_EEP_OPCAP, &capField) != HAL_OK) { in ar5212FillCapabilityInfo()
727 HALDEBUG(ah, HAL_DEBUG_ANY, in ar5212FillCapabilityInfo()
731 if (IS_2112(ah)) in ar5212FillCapabilityInfo()
732 ath_hal_eepromSet(ah, AR_EEP_AMODE, AH_FALSE); in ar5212FillCapabilityInfo()
733 if (capField == 0 && IS_GRIFFIN_LITE(ah)) { in ar5212FillCapabilityInfo()
737 ath_hal_eepromSet(ah, AR_EEP_COMPRESS, AH_FALSE); in ar5212FillCapabilityInfo()
738 ath_hal_eepromSet(ah, AR_EEP_FASTFRAME, AH_FALSE); in ar5212FillCapabilityInfo()
739 ath_hal_eepromSet(ah, AR_EEP_TURBO5DISABLE, AH_TRUE); in ar5212FillCapabilityInfo()
740 ath_hal_eepromSet(ah, AR_EEP_TURBO2DISABLE, AH_TRUE); in ar5212FillCapabilityInfo()
741 HALDEBUG(ah, HAL_DEBUG_ATTACH, in ar5212FillCapabilityInfo()
754 HALDEBUG(ah, HAL_DEBUG_ATTACH, "%s: regdomain mapped to 0x%x\n", in ar5212FillCapabilityInfo()
758 if (AH_PRIVATE(ah)->ah_macVersion == AR_SREV_2417 || in ar5212FillCapabilityInfo()
759 AH_PRIVATE(ah)->ah_macVersion == AR_SREV_2425) { in ar5212FillCapabilityInfo()
760 HALDEBUG(ah, HAL_DEBUG_ATTACH, in ar5212FillCapabilityInfo()
763 ath_hal_eepromSet(ah, AR_EEP_BMODE, AH_TRUE); in ar5212FillCapabilityInfo()
764 ath_hal_eepromSet(ah, AR_EEP_COMPRESS, AH_FALSE); in ar5212FillCapabilityInfo()
765 ath_hal_eepromSet(ah, AR_EEP_FASTFRAME, AH_FALSE); in ar5212FillCapabilityInfo()
766 ath_hal_eepromSet(ah, AR_EEP_TURBO5DISABLE, AH_TRUE); in ar5212FillCapabilityInfo()
767 ath_hal_eepromSet(ah, AR_EEP_TURBO2DISABLE, AH_TRUE); in ar5212FillCapabilityInfo()
772 if (ath_hal_eepromGetFlag(ah, AR_EEP_AMODE)) { in ar5212FillCapabilityInfo()
774 if (!ath_hal_eepromGetFlag(ah, AR_EEP_TURBO5DISABLE)) in ar5212FillCapabilityInfo()
777 if (ath_hal_eepromGetFlag(ah, AR_EEP_BMODE)) in ar5212FillCapabilityInfo()
779 if (ath_hal_eepromGetFlag(ah, AR_EEP_GMODE) && in ar5212FillCapabilityInfo()
782 if (!ath_hal_eepromGetFlag(ah, AR_EEP_TURBO2DISABLE)) in ar5212FillCapabilityInfo()
788 if (IS_RAD5112_ANY(ah) || IS_5413(ah) || IS_2425(ah) || IS_2417(ah)) in ar5212FillCapabilityInfo()
811 if (AH_RADIO_MAJOR(ah) == AR_RAD5111_SREV_MAJOR) { in ar5212FillCapabilityInfo()
821 (ath_hal_eepromGetFlag(ah, AR_EEP_AES) && in ar5212FillCapabilityInfo()
822 ((AH_PRIVATE(ah)->ah_macVersion > AR_SREV_VERSION_VENICE) || in ar5212FillCapabilityInfo()
823 ((AH_PRIVATE(ah)->ah_macVersion == AR_SREV_VERSION_VENICE) && in ar5212FillCapabilityInfo()
824 (AH_PRIVATE(ah)->ah_macRev >= AR_SREV_VERSION_OAHU)))); in ar5212FillCapabilityInfo()
828 pCap->halMicAesCcmSupport = ath_hal_eepromGetFlag(ah, AR_EEP_AES); in ar5212FillCapabilityInfo()
833 if (AH_PRIVATE(ah)->ah_macVersion >= AR_SREV_VERSION_GRIFFIN) in ar5212FillCapabilityInfo()
840 if (ahpriv->ah_macRev > 1 || IS_COBRA(ah)) { in ar5212FillCapabilityInfo()
842 ath_hal_eepromGetFlag(ah, AR_EEP_COMPRESS) && in ar5212FillCapabilityInfo()
844 pCap->halBurstSupport = ath_hal_eepromGetFlag(ah, AR_EEP_BURST); in ar5212FillCapabilityInfo()
846 ath_hal_eepromGetFlag(ah, AR_EEP_FASTFRAME) && in ar5212FillCapabilityInfo()
864 if (ath_hal_eepromGet(ah, AR_EEP_MAXQCU, &val) == HAL_OK) in ar5212FillCapabilityInfo()
869 if (ath_hal_eepromGet(ah, AR_EEP_KCENTRIES, &val) == HAL_OK) in ar5212FillCapabilityInfo()
883 if (ath_hal_eepromGetFlag(ah, AR_EEP_RFKILL) && in ar5212FillCapabilityInfo()
884 ath_hal_eepromGet(ah, AR_EEP_RFSILENT, &ahpriv->ah_rfsilent) == HAL_OK) { in ar5212FillCapabilityInfo()
892 (AH_PRIVATE(ah)->ah_macVersion < AR_SREV_VERSION_VENICE); in ar5212FillCapabilityInfo()
895 if ((AH_PRIVATE(ah)->ah_macVersion == AR_SREV_VERSION_VENICE && in ar5212FillCapabilityInfo()
896 AH_PRIVATE(ah)->ah_macRev == AR_SREV_HAINAN) || in ar5212FillCapabilityInfo()
897 AH_PRIVATE(ah)->ah_macVersion > AR_SREV_VERSION_VENICE) { in ar5212FillCapabilityInfo()
913 if (AH_PRIVATE(ah)->ah_macVersion < AR_SREV_VERSION_GRIFFIN) in ar5212FillCapabilityInfo()