#!/bin/sh
# insmod modules from current directory without having to install them first

sync

case "$1" in
    load)
	echo "Inserting V4L/DVB modules into kernel"
	modprobe i2c-core
	modprobe crc32
	modprobe firmware_class
	# make sure input stuff is there for IR remote controls
	modprobe evdev
	# video4linux
	insmod ./compat_ioctl32.ko
	insmod ./videodev.ko
	insmod ./v4l1-compat.ko
	insmod ./v4l2-common.ko
	insmod ./video-buf.ko
	insmod ./ir-common.ko
	insmod ./ir-kbd-i2c.ko
	insmod ./tuner.ko
	insmod ./tda9887.ko
	insmod ./tvaudio.ko
	insmod ./tveeprom.ko
	insmod ./tvmixer.ko
	insmod ./cs53l32a.ko
	insmod ./wm8775.ko
	insmod ./cx25840.ko
	insmod ./saa711x.ko
	insmod ./btcx-risc.ko
	insmod ./saa7127.ko
	insmod ./msp3400.ko
	insmod ./tvp5150.ko
	# DVB core
	insmod ./dvb-core.ko # dvb_net_debug=1
	# for hybrid cx88 and saa7134 cards
	insmod ./video-buf-dvb.ko
	# frontend drivers
	insmod ./dvb-pll.ko
	insmod ./ves1x93.ko
	insmod ./sp8870.ko
	insmod ./cx22700.ko
	insmod ./stv0299.ko
	insmod ./ves1820.ko
	insmod ./tda1004x.ko
	insmod ./tda10021.ko
	insmod ./dib3000-common.ko
	insmod ./dib3000mb.ko
	insmod ./dib3000mc.ko
	insmod ./l64781.ko
	insmod ./tda8083.ko
	insmod ./cx24110.ko
	insmod ./cx24123.ko
	insmod ./cx22702.ko
	insmod ./mt312.ko
	insmod ./mt352.ko
	insmod ./stv0297.ko
	insmod ./nxt200x.ko
	insmod ./lgdt330x.ko
	insmod ./nxt6000.ko
	insmod ./bcm3510.ko
	insmod ./s5h1420.ko
	insmod ./sp887x.ko
	insmod ./or51211.ko
	insmod ./or51132.ko
	insmod ./ttusbdecfe.ko
	# saa7146 based siemens/technotrend/hauppauge cards
	insmod ./saa7146.ko
	insmod ./saa7146_vv.ko
	insmod ./ttpci-eeprom.ko
	insmod ./dvb-ttpci.ko
	insmod ./budget-core.ko
	insmod ./budget.ko
	insmod ./budget-ci.ko
	insmod ./budget-av.ko
	# technotrend/hauppauge USB things
	insmod ./dvb-ttusb-budget.ko
	insmod ./ttusb_dec.ko

	# technisat skystar2
	insmod ./stv0297_cs2.ko
	insmod ./b2c2-flexcop.ko
	insmod ./b2c2-flexcop-usb.ko
	insmod ./b2c2-flexcop-pci.ko
	# terratec CinergyT2
	insmod ./cinergyT2.ko

	insmod ./dvb-usb.ko
	insmod ./dvb-usb-vp7045.ko
	insmod ./dvb-usb-dtt200u.ko

	insmod ./dvb-usb-dibusb-common.ko
	insmod ./dvb-usb-dibusb-mb.ko
	insmod ./dvb-usb-dibusb-mc.ko
	insmod ./dvb-usb-a800.ko
	insmod ./dvb-usb-nova-t-usb2.ko
	insmod ./dvb-usb-umt-010.ko
	insmod ./dvb-usb-digitv.ko
	insmod ./dvb-usb-cxusb.ko
	# bt8xx
	insmod ./bttv.ko
	insmod ./bt878.ko
	insmod ./dst.ko
	insmod ./dst_ca.ko
	insmod ./dvb-bt8xx.ko
	insmod ./saa6588.ko
	# conexant cx2388x
	insmod ./cx88xx.ko
	insmod ./cx8800.ko
	insmod ./cx8802.ko
	insmod ./cx88-vp3054-i2c.ko
	insmod ./cx88-dvb.ko
	insmod ./cx88-blackbird.ko
	insmod ./cx88-alsa.ko
	# phillips saa713x
	insmod ./saa7134.ko
	insmod ./saa7134-alsa.ko
#	insmod ./saa7134-oss.ko
	insmod ./saa7134-dvb.ko
	insmod ./saa7134-empress.ko

	insmod ./saa6752hs.ko
	insmod ./em28xx.ko
	echo
	;;
    debug)
	echo "Inserting V4L/DVB modules (debug) into kernel"
	modprobe i2c-core
	modprobe crc32
	modprobe firmware_class
	modprobe evdev
	insmod ./compat_ioctl32.ko
	insmod ./videodev.ko
	insmod ./v4l1-compat.ko
	insmod ./v4l2-common.ko
	insmod ./video-buf.ko
	insmod ./ir-common.ko
	insmod ./ir-kbd-i2c.ko
	insmod ./tuner.ko tuner_debug=1
	insmod ./tda9887.ko
	insmod ./tvaudio.ko
	insmod ./tveeprom.ko
	insmod ./tvmixer.ko
	insmod ./cs53l32a.ko
	insmod ./wm8775.ko
	insmod ./cx25840.ko
	insmod ./saa711x.ko
	insmod ./btcx-risc.ko
	insmod ./saa7127.ko
	insmod ./msp3400.ko
	insmod ./tvp5150.ko
	insmod ./dvb-core.ko cam_debug=1
	insmod ./video-buf-dvb.ko
	insmod ./dvb-pll.ko
	insmod ./ves1x93.ko
	insmod ./sp8870.ko
	insmod ./cx22700.ko
	insmod ./stv0299.ko
	insmod ./ves1820.ko
	insmod ./tda1004x.ko
	insmod ./tda10021.ko
	insmod ./dib3000-common.ko
	insmod ./dib3000mb.ko
	insmod ./dib3000mc.ko
	insmod ./l64781.ko
	insmod ./stv0297.ko
	insmod ./tda8083.ko
	insmod ./cx24110.ko
	insmod ./cx24123.ko
	insmod ./mt312.ko
	insmod ./mt352.ko
	insmod ./cx22702.ko
	insmod ./nxt200x.ko
	insmod ./lgdt330x.ko
	insmod ./nxt6000.ko
	insmod ./bcm3510.ko
	insmod ./s5h1420.ko
        insmod ./sp887x.ko
        insmod ./or51211.ko
        insmod ./or51132.ko
	insmod ./ttusbdecfe.ko
	insmod ./saa7146.ko
	insmod ./saa7146_vv.ko
	insmod ./ttpci-eeprom.ko
	insmod ./dvb-ttpci.ko debug=247
	insmod ./budget-core.ko
	insmod ./budget.ko
	insmod ./budget-ci.ko
	insmod ./budget-av.ko
	insmod ./dvb-ttusb-budget.ko
	insmod ./stv0297_cs2.ko
	insmod ./b2c2-flexcop.ko debug=0x01
	insmod ./b2c2-flexcop-usb.ko debug=0x01
	insmod ./b2c2-flexcop-pci.ko debug=0x01
	insmod ./ttusb_dec.ko
	insmod ./cinergyT2.ko

	insmod ./dvb-usb.ko debug=0x33
	insmod ./dvb-usb-vp7045.ko debug=0x03
	insmod ./dvb-usb-dtt200u.ko debug=0x03

	insmod ./dvb-usb-dibusb-common.ko debug=0x03
	insmod ./dvb-usb-dibusb-mb.ko
	insmod ./dvb-usb-dibusb-mc.ko
	insmod ./dvb-usb-a800.ko
	insmod ./dvb-usb-nova-t-usb2.ko
	insmod ./dvb-usb-umt-010.ko
	insmod ./dvb-usb-digitv.ko
	insmod ./dvb-usb-cxusb.ko

	insmod ./bttv.ko
	insmod ./bt878.ko
	insmod ./dst.ko
	insmod ./dst_ca.ko
	insmod ./dvb-bt8xx.ko
	insmod ./saa6588.ko

	insmod ./cx88xx.ko
	insmod ./cx8800.ko
	insmod ./cx8802.ko
	insmod ./cx88-vp3054-i2c.ko
	insmod ./cx88-dvb.ko
	insmod ./cx88-blackbird.ko
	insmod ./cx88-alsa.ko

	insmod ./saa7134.ko
	insmod ./saa7134-alsa.ko
	insmod ./saa7134-oss.ko
	insmod ./saa7134-dvb.ko
	insmod ./saa7134-empress.ko

	insmod ./saa6752hs.ko
	insmod ./em28xx.ko
	echo
	;;
    unload)
	echo "Removing V4L/DVB modules from kernel"
	rmmod b2c2-flexcop-usb b2c2-flexcop-pci b2c2-flexcop dvb-ttpci budget \
		budget-av budget-ci budget-core ttusb_dec dvb-ttusb-budget \
		ttpci-eeprom dvb-usb-nova-t-usb2.ko dvb-usb-a800.ko \
		dvb-usb-umt-010.ko dvb-usb-dibusb-mc.ko dvb-usb-dibusb-mb.ko\
		dvb-usb-dibusb-common.ko dvb-usb-vp7045.ko \
		dvb-usb-dtt200u.ko dvb-usb-digitv.ko dvb-usb-cxusb.ko \
		dvb-usb.ko
# video4linux cards
	rmmod cx88-alsa cx88-blackbird cx88-dvb cx88-vp3054-i2c cx8802 cx8800 \
		cx88xx saa7134-oss saa7134-alsa saa7134-empress saa7134-dvb \
		saa7134 dvb-bt8xx dst_ca dst bt878 bttv em28xx

# frontends
	rmmod dib3000mb dib3000mc dib3000_common nxt200x ves1x93 \
			sp8870 cx22700 stv0299 ves1820 cinergyT2 ttusbdecfe \
			tda1004x l64781 tda8083 cx24110 cx22702 stv0297 \
			tda10021 mt352 mt312 bcm3510 s5h1420 nxt6000 \
			stv0297_cs2 lgdt330x cx24123 sp887x or51211 or51132 \
			dvb-pll

# chips and helpers
	rmmod 	saa7127 msp3400 tvp5150 \
		saa6752hs saa6588 btcx-risc tveeprom tvaudio tda9887 tuner \
		ir-kbd-i2c ir-common cx25840 tvmixer cs53l32a wm8775 saa711x \
		saa7146_vv saa7146 video-buf-dvb video-buf \
		v4l2-common v4l1-compat dvb-core videodev compat_ioctl32

	echo
	;;
    reload)
	$0 unload && $0 load
	;;
    *)
	echo "Usage$0 {load|unload|debug|reload}"
	exit 1
esac

sync