#!/bin/sh
#
# Start pvr services...
#

sgxprepare () {
	modprobe pvrsrvkm

	pvr_maj=`grep "pvrsrvkm$" /proc/devices | cut -b1,2,3`
	bc_maj=`grep "bc" /proc/devices | cut -b1,2,3`

	if [ -e /dev/pvrsrvkm ] ; then
		rm -f /dev/pvrsrvkm
	fi

	mknod /dev/pvrsrvkm c $pvr_maj 0
	chmod 666 /dev/pvrsrvkm

	modprobe omaplfb
	modprobe bufferclass_ti

	SAVED_ESREVISION="xxx"
	if [ -e /etc/powervr-esrev ]; then
		SAVED_ESREVISION="$(cat /etc/powervr-esrev)"
	fi
}

sgxfinish () {
	if [ -e /etc/sgx_check ]; then
		SAVED_ESREVISION=xxxx
	fi

	if [ "${ES_REVISION}" != "${SAVED_ESREVISION}" ] ; then
		echo "Starting SGX fixup for ES${ES_REVISION}.x"
		cp -a /usr/lib/ES${ES_REVISION}.x/* /usr/lib
		echo "${ES_REVISION}" > /etc/powervr-esrev
		rm -f /etc/sgx_check
	fi
	/usr/bin/ES${ES_REVISION}.x/pvrsrvctl --start --no-module
}

case "$1" in
  start)
	echo "Loading SGX drivers..."
	if ! [ -e /proc/pvr ]; then
		sgxprepare

		MACH=$(uname -r | cut -d'-' -f2)
		if [ "$MACH" = "igep+" ]; then
			ES_REVISION=5
		else
			ES_REVISION=3
		fi

		sgxfinish
	fi
	;;
  stop)
	;;
  restart|reload)
	;;
  *)
	echo "Usage: $0 {start|stop|restart}"
	exit 1
esac

exit $?
