> Hi all, > > I am trying to switch from madwifi to ath5k on AR2315 WiSoC (Fon > 2100A) using patches from Wojciech and Felix but at module loading > the > driver is not able to attach the HW. In particular it seems that > ath5k > is not capable to recognize the right mac/phy version/revision in the > ath5k_hw_init() > > ath5k phy0: Couldn't identify radio revision. > ar231x-wmac ar231x-wmac.0: failed to attach device, err=-19 > > I am not sure about the right values for these fields and so I used > the ones I obtained from madwifi-r3314 > > ah_devid 0x86 > ah_subvendorid 0x168c > ah_macVersion 0xb > ah_macRev 0x0 > ah_phyRev 0x48 > ah_analog5GhzRev 0x70 > > but now the driver hangs in ath5k_hw_post() because it seems it is > not > able to write correctly in the defined registers.
Can you check what ath5k_hw_read_srev(ah) (or ath5k_bus_read_srev(ah)) reads from board configuration? It has be valid because we cannot read registers until we reset and we need to know srev already before. For reset I have now checked with madwifi and there is a difference in enabling wmac ahb. Can you try following change and see if it helps? I have just copied code for waking up WMAC. Br, Wojtek --- diff --git a/drivers/net/wireless/ath/ath5k/ahb.c b/drivers/net/wireless/ath/ath5k/ahb.c index 707cde1..06c1b8b 100644 --- a/drivers/net/wireless/ath/ath5k/ahb.c +++ b/drivers/net/wireless/ath/ath5k/ahb.c @@ -132,6 +132,21 @@ static int ath_ahb_probe(struct platform_device *pdev) reg = __raw_readl((void __iomem *) AR5K_AR2315_BYTESWAP); reg |= AR5K_AR2315_BYTESWAP_WMAC; __raw_writel(reg, (void __iomem *) AR5K_AR2315_BYTESWAP); + + + /* wake up the MAC */ + /* NOTE: for the following write to succeed the + * RST_AHB_ARB_CTL should be set to 0. This driver + * assumes that the register has been set to 0 by boot loader + */ + reg = __raw_readl((void __iomem *) AR5K_AR2315_PCI_MAC_SCR); + reg = (reg & ~AR5K_AR2315_PCI_MAC_SCR_SLMODE_M) | + (AR5K_AR2315_PCI_MAC_SCR_SLM_FWAKE << AR5K_AR2315_PCI_MAC_SCR_SLMODE_S); + __raw_writel(reg, (void __iomem *) AR5K_AR2315_PCI_MAC_SCR); + + /* wait for the MAC to wakeup */ + while ( __raw_readl((void __iomem *) AR5K_AR2315_PCI_MAC_PCICFG) & AR5K_AR2315_PCI_MAC_PCICFG_SPWR_DN); + } else { /* Enable WMAC DMA access (assuming 5312 or 231x*/ /* TODO: check other platforms */ diff --git a/drivers/net/wireless/ath/ath5k/reg.h b/drivers/net/wireless/ath/ath5k/reg.h index 7ad05d4..9fc63a5 100644 --- a/drivers/net/wireless/ath/ath5k/reg.h +++ b/drivers/net/wireless/ath/ath5k/reg.h @@ -2587,3 +2587,12 @@ #define AR5K_AR2315_BYTESWAP 0xb100000c #define AR5K_AR2315_BYTESWAP_WMAC 0x00000002 + +#define AR5K_AR2315_PCI 0xb0100000 +#define AR5K_AR2315_PCI_MAC_SCR (AR5K_AR2315_PCI + 0x4004) +#define AR5K_AR2315_PCI_MAC_SCR_SLMODE_M 0x00030000 +#define AR5K_AR2315_PCI_MAC_SCR_SLMODE_S 16 +#define AR5K_AR2315_PCI_MAC_SCR_SLM_FWAKE 0 + +#define AR5K_AR2315_PCI_MAC_PCICFG (AR5K_AR2315_PCI + 0x4010) +#define AR5K_AR2315_PCI_MAC_PCICFG_SPWR_DN 0x00010000 --- > > Any idea about these issues? I am using OpenWrt trunk, > compat-wireless-2010-11-20, kernel 2.6.32.26. > > Best regards > > Lorenzo _______________________________________________ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel