1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-20 00:44:05 +02:00

madwifi: fix antenna selection for ubnt loco2/loco5

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18853 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
nbd 2009-12-19 22:19:19 +00:00
parent f87f98d0c5
commit 013d58fbe3

View File

@ -88,6 +88,7 @@ enable_atheros() {
config_get antrx "$device" rxantenna config_get antrx "$device" rxantenna
config_get anttx "$device" txantenna config_get anttx "$device" txantenna
config_get_bool softled "$device" softled 1 config_get_bool softled "$device" softled 1
config_get antenna "$device" antenna
devname="$(cat /proc/sys/dev/$device/dev_name)" devname="$(cat /proc/sys/dev/$device/dev_name)"
local antgpio= local antgpio=
@ -96,6 +97,13 @@ enable_atheros() {
NanoStation2) antgpio=7; invert=1;; NanoStation2) antgpio=7; invert=1;;
NanoStation5) antgpio=1; invert=1;; NanoStation5) antgpio=1; invert=1;;
"NanoStation Loco2") antgpio=2;; "NanoStation Loco2") antgpio=2;;
"NanoStation Loco5")
case "$antenna" in
horizontal) antdiv=0; anttx=1; antrx=1;;
vertical) antdiv=0; anttx=2; antrx=2;;
*) antdiv=1; anttx=0; antrx=0;;
esac
;;
esac esac
if [ -n "$invert" ]; then if [ -n "$invert" ]; then
_set="clear" _set="clear"
@ -106,21 +114,33 @@ enable_atheros() {
fi fi
if [ -n "$antgpio" ]; then if [ -n "$antgpio" ]; then
softled=0 softled=0
config_get antenna "$device" antenna case "$devname" in
case "$antenna" in "NanoStation Loco2")
external) antdiv=0; antrx=1; anttx=1 ;; antdiv=0
horizontal) antdiv=0; antrx=1; anttx=1 ;; antrx=1
vertical) antdiv=0; antrx=2; anttx=2 ;; anttx=1
auto) antdiv=1; antrx=0; anttx=0 ;; case "$antenna" in
horizontal) gpioval=0;;
*) gpioval=1;;
esac
;;
*)
case "$antenna" in
external) antdiv=0; antrx=1; anttx=1; gpioval=1;;
horizontal) antdiv=0; antrx=1; anttx=1; gpioval=0;;
vertical) antdiv=0; antrx=2; anttx=2; gpioval=0;;
auto) antdiv=1; antrx=0; anttx=0; gpioval=0;;
esac
;;
esac esac
[ -x "$(which gpioctl 2>/dev/null)" ] || antenna= [ -x "$(which gpioctl 2>/dev/null)" ] || antenna=
gpioctl "dirout" "$antgpio" >/dev/null 2>&1 gpioctl "dirout" "$antgpio" >/dev/null 2>&1
case "$antenna" in case "$gpioval" in
horizontal|vertical|auto) 0)
gpioctl "$_clear" "$antgpio" >/dev/null 2>&1 gpioctl "$_clear" "$antgpio" >/dev/null 2>&1
;; ;;
external) 1)
gpioctl "$_set" "$antgpio" >/dev/null 2>&1 gpioctl "$_set" "$antgpio" >/dev/null 2>&1
;; ;;
esac esac
@ -358,6 +378,18 @@ detect_atheros() {
config_get type "$dev" type config_get type "$dev" type
devname="$(cat /proc/sys/dev/$dev/dev_name)" devname="$(cat /proc/sys/dev/$dev/dev_name)"
case "$devname" in case "$devname" in
"NanoStation Loco2")
EXTRA_DEV="
# Ubiquiti NanoStation Loco2 features
option antenna vertical # (horizontal|vertical)
"
;;
"NanoStation Loco5")
EXTRA_DEV="
# Ubiquiti NanoStation Loco5 features
option antenna auto # (auto|horizontal|vertical)
"
;;
NanoStation*) NanoStation*)
EXTRA_DEV=" EXTRA_DEV="
# Ubiquiti NanoStation features # Ubiquiti NanoStation features