#!/bin/bash

. /usr/lib/pm-utils/functions

RETVAL=0
case "$1" in
	suspend|hibernate)
		# Unload camera-related modules so camera will be properly
		# re-initialized on resume/thaw
		modprobe -r uvcvideo
		modprobe -r ehci_hcd
		;;
	resume|thaw)

		# Reload camera-related modules on resume/thaw
		modprobe ehci_hcd
		modprobe uvcvideo

		# Wait for /dev/usb/hiddev0 to be created (in response to
		# loading ehci_hcd) so touchscreen can be properly re-
		# initialized by X on resume/thaw.  Wait a max of 15 seconds.
		sleep=0
		max=15


		while [[ $sleep -lt $max ]]
		do 
			if [ -e /dev/usb/hiddev0 ]; then
				# Sleep 1 more second just to be safe
				sleep 1
				break
			fi

  			sleep 1
 			sleep=$((sleep + 1))
		done

		;;
	*)
		;;
esac

exit $RETVAL
