Search Linux Wireless

Re: [RFC] ath9k: use correct init values for ar9100 devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sujith írta:
> Gabor Juhos wrote:
>> 1. In some cases the ethernet interface goes down for a short time
>> after'ifconfig wlan0 up'.
>> 2. Sometimes the device simply reboots itself after 'ifconfig wlan0 up'.
>>
>> After I have added some printk statements into the code, I noticed that the
>> ar5416 and ar9100 devices use the same initval arrays currently. I assume
>> that they requires different initialization, because we have different
>> arrays for them.
>>
> 
> Yep, this is a bug, and AR_SREV_9100_OR_LATER is probably wrong.

Ok.

> 
>> Although I have no detailed knowledge about the evolution of the ath9k devices,
>> but the version checking macros for ther AR5416 cards seemed weird enough, so I
>> have replaced them. Unfortunately, this leaded to very bad performance with the
>> ar5416 cards I have, but the driver was working on the ar913x boards.
>>
>> After some digging, I have found an interesting ifdef statement in Sam's current
>> HAL. In his ar5416Common initval array, this ifdef conditionally selects the
>> right RTC register offsets for the ar5416/ar9100 devices. The strange thing,
>> that in the ath9k driver the ar5416 specific RTC register offsets are used in
>> the ar5416Common_ar9100 array, while the ar9100 specific offsets are used in the
>> ar5416Common.
>>
> 
> I'll check the initval arrays and update.
> 
>> +#define AR_SREV_5416(_ah) \
>> +       (((_ah)->hw_version.macVersion == AR_SREV_VERSION_5416_PCIE) || \
>> +       ((_ah)->hw_version.macVersion == AR_SREV_VERSION_5416_PCI))
>> +#define AR_SREV_5416_V20_OR_LATER(_ah) \
>> +       (((_ah)->hw_version.macVersion > AR_SREV_VERSION_5416_PCIE) || \
>> +       ((AR_SREV_5416(_ah)) && \
>> +       ((_ah)->hw_version.macRev >= AR_SREV_REVISION_5416_20)))
>> +#define AR_SREV_5416_V22_OR_LATER(_ah) \
>> +       (((_ah)->hw_version.macVersion > AR_SREV_VERSION_5416_PCIE) || \
>> +       ((AR_SREV_5416(_ah)) && \
>> +       ((_ah)->hw_version.macRev >= AR_SREV_REVISION_5416_22)))
>> +
> 
> Hm, the 5416_V1, 5416_V2 macros have to check 3 different HW (5416, 9100, 9160).

I don't see any 5416_V1 macro here. The AR_SREV_5416 should check the silicon
revision of the AR5416 cards only. But if we would be consistent, we should have
a _V10_OR_LATER although i don't see where it would be useful. The _V20_OR_LATER
and the _V22_OR_LATER macro I proposed above will cover the 9100 and 9160 chips.

> 
>> +#define AR_SREV_9100(ah) \
>> +       ((ah->hw_version.macVersion) == AR_SREV_VERSION_9100)
>>  #define AR_SREV_9100_OR_LATER(_ah) \
>> -       (((_ah)->hw_version.macVersion >= AR_SREV_VERSION_5416_PCIE))
>> -#define AR_SREV_5416_20_OR_LATER(_ah) \
>> -       (((_ah)->hw_version.macVersion >= AR_SREV_VERSION_9160) || \
>> -               ((_ah)->hw_version.macRev >= AR_SREV_REVISION_5416_20))
>> -#define AR_SREV_5416_22_OR_LATER(_ah) \
>> -       (((_ah)->hw_version.macVersion >= AR_SREV_VERSION_9160) || \
>> -               ((_ah)->hw_version.macRev >= AR_SREV_REVISION_5416_22))
>> +       ((_ah)->hw_version.macVersion >= AR_SREV_VERSION_9100)
>> +
>>  #define AR_SREV_9160(_ah) \
>>         (((_ah)->hw_version.macVersion == AR_SREV_VERSION_9160))
>>  #define AR_SREV_9160_10_OR_LATER(_ah) \
>> --
>> 1.5.3.2
>>

Regards,
Gabor
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux