All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gabor Juhos <juhosg@openwrt.org>
To: ath9k-devel@lists.ath9k.org
Subject: [ath9k-devel] [RFC] ath9k: use correct init values for ar9100 devices
Date: Wed, 04 Mar 2009 14:41:47 +0100	[thread overview]
Message-ID: <49AE851B.2070709@openwrt.org> (raw)
In-Reply-To: <18862.1025.217829.656599@gargle.gargle.HOWL>

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

WARNING: multiple messages have this Message-ID (diff)
From: Gabor Juhos <juhosg@openwrt.org>
To: Sujith <Sujith.Manoharan@atheros.com>
Cc: "John W. Linville" <linville@tuxdriver.com>,
	"ath9k-devel@lists.ath9k.org" <ath9k-devel@lists.ath9k.org>,
	"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
	Imre Kaloz <kaloz@openwrt.org>
Subject: Re: [RFC] ath9k: use correct init values for ar9100 devices
Date: Wed, 04 Mar 2009 14:41:47 +0100	[thread overview]
Message-ID: <49AE851B.2070709@openwrt.org> (raw)
In-Reply-To: <18862.1025.217829.656599@gargle.gargle.HOWL>

Sujith =EDrta:
> 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 t=
hat the
>> ar5416 and ar9100 devices use the same initval arrays currently. I a=
ssume
>> that they requires different initialization, because we have differe=
nt
>> arrays for them.
>>
>=20
> Yep, this is a bug, and AR_SREV_9100_OR_LATER is probably wrong.

Ok.

>=20
>> Although I have no detailed knowledge about the evolution of the ath=
9k devices,
>> but the version checking macros for ther AR5416 cards seemed weird e=
nough, so I
>> have replaced them. Unfortunately, this leaded to very bad performan=
ce with the
>> ar5416 cards I have, but the driver was working on the ar913x boards=
=2E
>>
>> After some digging, I have found an interesting ifdef statement in S=
am's current
>> HAL. In his ar5416Common initval array, this ifdef conditionally sel=
ects the
>> right RTC register offsets for the ar5416/ar9100 devices. The strang=
e thing,
>> that in the ath9k driver the ar5416 specific RTC register offsets ar=
e used in
>> the ar5416Common_ar9100 array, while the ar9100 specific offsets are=
 used in the
>> ar5416Common.
>>
>=20
> I'll check the initval arrays and update.
>=20
>> +#define AR_SREV_5416(_ah) \
>> +       (((_ah)->hw_version.macVersion =3D=3D AR_SREV_VERSION_5416_P=
CIE) || \
>> +       ((_ah)->hw_version.macVersion =3D=3D AR_SREV_VERSION_5416_PC=
I))
>> +#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 >=3D 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 >=3D AR_SREV_REVISION_5416_22)))
>> +
>=20
> Hm, the 5416_V1, 5416_V2 macros have to check 3 different HW (5416, 9=
100, 9160).

I don't see any 5416_V1 macro here. The AR_SREV_5416 should check the s=
ilicon
revision of the AR5416 cards only. But if we would be consistent, we sh=
ould 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 91=
60 chips.

>=20
>> +#define AR_SREV_9100(ah) \
>> +       ((ah->hw_version.macVersion) =3D=3D AR_SREV_VERSION_9100)
>>  #define AR_SREV_9100_OR_LATER(_ah) \
>> -       (((_ah)->hw_version.macVersion >=3D AR_SREV_VERSION_5416_PCI=
E))
>> -#define AR_SREV_5416_20_OR_LATER(_ah) \
>> -       (((_ah)->hw_version.macVersion >=3D AR_SREV_VERSION_9160) ||=
 \
>> -               ((_ah)->hw_version.macRev >=3D AR_SREV_REVISION_5416=
_20))
>> -#define AR_SREV_5416_22_OR_LATER(_ah) \
>> -       (((_ah)->hw_version.macVersion >=3D AR_SREV_VERSION_9160) ||=
 \
>> -               ((_ah)->hw_version.macRev >=3D AR_SREV_REVISION_5416=
_22))
>> +       ((_ah)->hw_version.macVersion >=3D AR_SREV_VERSION_9100)
>> +
>>  #define AR_SREV_9160(_ah) \
>>         (((_ah)->hw_version.macVersion =3D=3D 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-wireles=
s" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2009-03-04 13:41 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-03 18:10 [ath9k-devel] [RFC] ath9k: use correct init values for ar9100 devices Gabor Juhos
2009-03-03 18:10 ` Gabor Juhos
2009-03-04  4:30 ` [ath9k-devel] " Sujith
2009-03-04  4:30   ` Sujith
2009-03-04  5:35   ` [ath9k-devel] " Sujith
2009-03-04  5:35     ` Sujith
2009-03-04 13:38     ` [ath9k-devel] " Gabor Juhos
2009-03-04 14:21       ` Sujith
2009-03-04 14:21         ` Sujith
2009-03-04 16:20         ` Gabor Juhos
2009-03-04 16:20           ` Gabor Juhos
2009-03-05  1:49           ` Sujith
2009-03-05  1:49             ` Sujith
2009-03-05 10:43             ` Gabor Juhos
2009-03-05 10:43               ` Gabor Juhos
2009-03-05 15:00               ` Sujith
2009-03-05 15:00                 ` Sujith
2009-03-04 13:41   ` Gabor Juhos [this message]
2009-03-04 13:41     ` Gabor Juhos
2009-03-04 14:29     ` [ath9k-devel] " Sujith
2009-03-04 14:29       ` Sujith
2009-03-04 14:57       ` Gabor Juhos
2009-03-04 14:57         ` Gabor Juhos
2009-03-05  1:51         ` Sujith
2009-03-05  1:51           ` Sujith
2009-03-05  2:15           ` Luis R. Rodriguez
2009-03-05  2:15             ` Luis R. Rodriguez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49AE851B.2070709@openwrt.org \
    --to=juhosg@openwrt.org \
    --cc=ath9k-devel@lists.ath9k.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.