#!/bin/sh

if test "$UID" = "0"; then
	# running as root anyway, don't need sudo
	INSMOD="/sbin/insmod"
	RMMOD="/sbin/rmmod"
	MODPROBE="/sbin/modprobe"
else
	INSMOD="sudo /sbin/insmod"
	RMMOD="sudo /sbin/rmmod"
	MODPROBE="sudo /sbin/modprobe"
fi

# handy functions for rmmod/insmod
function xrmmod () {
	grep -qe "^$1" /proc/modules || return
	echo rmmod $1
	$RMMOD $1 || exit 1
}
function xinsmod () {
	echo insmod $*
	$INSMOD $* || exit 1
}
function xmodprobe () {
	echo modprobe $*
	$MODPROBE $* || exit 1
}

# prepare for crashing the box -- flush dirty buffers
sync; sleep 1; sync

# By default this doesn't load i2c modules.
# This also lists the audio modules that (might) work.

# kill old modules ...
xrmmod msp3400
xrmmod tea6300
xrmmod tda8425
xrmmod tuner
xrmmod bttv2
xrmmod v4l2-cc
xrmmod videodev
xmodprobe -r i2c-dev
xmodprobe -r i2c-algo-bit
xmodprobe -r i2c-core

# ... and load the new ones
xmodprobe i2c-core		i2c_debug=0
xmodprobe i2c-algo-bit		# bit_test=1 bit_scan=0
xmodprobe i2c-dev		# this is usually not needed
xinsmod v4l2/videodev.o
xinsmod v4l2/v4l2-cc.o
xinsmod btv/bttv2.o		# readahead=1 card=1 pll=0
xinsmod misc/tuner.o 		ignore=-1,0x69  afc=1 # type=5 
xinsmod audio/msp3400.o		# debug=1
#xinsmod audio/tda8425.o	debug=1
#xinsmod audio/tea6300.o	debug=1
