Hi Wojciech,

>> 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.
>

>From ath5k_bus_read_srev() I obtain:

ath5k_hw_init[143]: ah->ah_mac_srev 0x86        ah->ah_version 0x2
ath5k_hw_init[159]: ah->ah_mac_version 0x8      ah->ah_mac_revision 0x6
ath5k_hw_init[169]: ah->ah_phy_revision 0x1     ah->ah_phy 0x9800
ah->ah_radio_5ghz_revision 0x0

but if I do not overwrite these values with ones from madwifi the
system hangs in ath5k_hw_init()

"ath5k phy0: Couldn't identify radio revision.
ar231x-wmac ar231x-wmac.0: failed to attach device, err=-19"

However if I modify mac/phy version/revision in ath5k_hw_init the
system is not able to write and read coherently in ath5k_hw_post()
also with your latest patch.

> 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
>

I am going to bisect the issue in more detail by next few days

Best regards

Lorenzo
_______________________________________________
ath5k-devel mailing list
ath5k-devel@lists.ath5k.org
https://lists.ath5k.org/mailman/listinfo/ath5k-devel

Reply via email to