#!/bin/bash
#
# Copyright 2007	Luis R. Rodriguez <mcgrof@winlab.rutgers.edu>
#
# Makes sure either b43, b43legacy (new mac80211 drivers) or bcm43xx 
# is enabled to be used. This allows us to choose any driver without 
# blacklisting each other.

. /usr/lib/compat-wireless/modlib.sh

if [[ $UID -ne 0 ]]; then
	echo "Run with root privileges"
	exit
fi

B43S="b43 b43legacy"
B43_OLD="bcm43xx"

# Appended to module file at the end when we want to ignore one
USAGE="Usage: $0 [ b43 | bcm43xx ]"

function enable_b43 {
	module_disable $B43_OLD
	for i in $B43S; do
		module_enable $i
	done
}

# Default behavior: disables the old bcm43xx driver and enables b43
# and b43legacy
if [ $# -eq 0 ]; then
	enable_b43
	exit
elif [ $# -ne 1 ]; then
	echo "$USAGE"
	exit
fi

MODULE=$1
if [ "$MODULE" == "bcm43xx" ]; then
	for i in $B43S; do
		module_disable $i
	done
	module_enable $B43_OLD
elif [ "$MODULE" == "b43" ]; then
	enable_b43
else
	echo "$USAGE"
	exit
fi
