Please note: This project is no longer active. The website is kept online for historic purposes only.
If you´re looking for a Linux driver for your Atheros WLAN device, you should continue here .

Ticket #2130 (assigned defect)

Opened 13 years ago

Last modified 13 years ago

Wrongly limited frequency usage in new HAL

Reported by: Assigned to: proski (accepted)
Priority: major Milestone:
Component: madwifi-hal-testing Version: trunk
Keywords: HAL indoor outdoor frequency restriction Cc:
Patch is attached: 0 Pending: 0


since the HAL 2008-08-15, the frequency usage is strictly limited in an uncomfortable way that prevents using new HAL in scenarios when one card is configured to receive at outdoor 5GHz frequencies and the second card is transmitting at indoor 5GHz frequencies (e.g. Local indoor 5GHz AP receiving connectivity from outdoor 5GHz long-distance link). With the HAL 2008-05-28 everything works as expected. Managed mode card receives at outdoor frequencies 5.5-5.7 GHz and master mode indoor AP transmits at indoor frequency 5.26 GHz. This is for countrycode=276. With the new HAL When you modprobe ath_pci with countrycode=276 without outdoor parameter, only indoor frequencies are available and therefore Managed mode card is not able to connect to the outdoor AP. With outdoor=1, we must use outdoor frequency for indoor local AP thus wasting frequency spectrum by not using frequencies available for indoor 5GHz. Nevertheless there is a risk of overlaping two outdoor frequencies since the outdoor incoming link can switch frequency randomly.

The solution would be to preserve-restore the behavior of the old HAL to allow automatic indoor/outdoor frequencies available simultaneously and remove outdoor module parameter or introduce a sysctl parameter which is able to change the frequency range (indoor/outdoor usage) of a card on-the-fly. The cards used in this scenario are Wistron CM9 cards (AR5213). The other cards (Mikrotik R52 - AR5414) have also been tested.

Change History

(follow-up: ↓ 3 ) 11/10/08 14:37:35 changed by proski

Is version "2008-09-09" affected?

11/11/08 04:25:54 changed by proski

  • status changed from new to assigned.
  • owner changed from nbd to proski.

The outdoor parameter is used in ath_hal_init_channels(), which is used only once for the device during initialization. Implementing a per-device sysctl would require that ath_hal_init_channels() is rerun if the outdoor parameter changes. It may or may not work, but I would prefer that we don't mess with the order of HAL calls. It could reinitialize something in HAL that we don't want to be reinitialized.

The way to use different settings for different cards is to load the driver, unbind one of the devices from the driver using sysctl, change the global parameter and bind the device. While it's not exactly a trivial procedure for beginners, it's not something beginners should do.

The whole purpose of HAL is to prevent unintentional incorrect use of frequencies. HAL is doing it right by allowing only indoor of only outdoor frequencies. Having an indoor and an outdoor antenna on the same system is an advanced problem. It's solvable, but HAL doesn't have to make it easy.

Likewise, you could put an AP on the border and ask HAL to support two countrycodes. HAL is not supposed to let you do that. But if you really want, you can.

(in reply to: ↑ 1 ) 11/11/08 06:25:50 changed by mrenzmann

Replying to proski:

Is version "2008-09-09" affected?

For the sake of completeness: reporter answered by e-mail.