104 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/sh
 | |
| #
 | |
| # Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
 | |
| #
 | |
| # Redistribution and use in source and binary forms, with or without
 | |
| # modification, are permitted provided that the following conditions are met:
 | |
| #     * Redistributions of source code must retain the above copyright
 | |
| #       notice, this list of conditions and the following disclaimer.
 | |
| #     * Redistributions in binary form must reproduce the above copyright
 | |
| #       notice, this list of conditions and the following disclaimer in the
 | |
| #       documentation and/or other materials provided with the distribution.
 | |
| #     * Neither the name of The Linux Foundation nor the names of its
 | |
| #       contributors may be used to endorse or promote products derived from
 | |
| #       this software without specific prior written permission.
 | |
| #
 | |
| # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 | |
| # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
 | |
| # FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE DISCLAIMED.  IN NO
 | |
| # EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 | |
| # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 | |
| # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | |
| # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 | |
| # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | |
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 | |
| # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | |
| 
 | |
| # Starts the USB Android Gadget.
 | |
| 
 | |
| export KERNEL=`uname -r`
 | |
| export ODU="N"
 | |
| export ODU_EN="N"
 | |
| 
 | |
| case "$1" in
 | |
|   start)
 | |
| 
 | |
|         case $KERNEL in
 | |
|           3.*)
 | |
| 		case `source /usr/bin/usb/target` in
 | |
| 			*9x15* )
 | |
| 			# Nothing to do here for 9x15
 | |
| 			;;
 | |
| 			*9x25* )
 | |
| 			if [ -f /sys/module/usbnet/parameters/usbnet_odu ]
 | |
| 			then
 | |
| 				ODU=`cat /sys/module/usbnet/parameters/usbnet_odu`
 | |
| 			fi
 | |
| 			if [ -f /usr/bin/usb/odu ]
 | |
| 			then
 | |
| 				ODU_EN=`cat /usr/bin/usb/odu`
 | |
| 			fi
 | |
| 			echo "ODU supported=$ODU enabled=$ODU_EN"
 | |
| 
 | |
| 			#In case of ODU, don't unbind the HSIC device
 | |
| 			if [ "$ODU" == "Y" ] &&  [ "$ODU_EN" == "Y" ]
 | |
| 			then
 | |
| 				echo "EHCI HSIC device will be bound(odu=$ODU)"
 | |
| 				ln -fs /usr/bin/usb/compositions/901D \
 | |
| 				  /usr/bin/usb/boot_hsusb_composition
 | |
| 			else
 | |
| 			#In other cases (for WLAN) unbind HSIC by default
 | |
| 				echo "Shutdown EHCI HSIC device"
 | |
| 				echo msm_hsic_host > /sys/bus/platform/drivers/msm_hsic_host/unbind
 | |
| 			fi
 | |
| 			;;
 | |
| 		esac
 | |
| 
 | |
| 		# boot hsusb composition:
 | |
| 		if [ -d /sys/class/android_usb/android0 ]
 | |
| 		then
 | |
| 			/usr/bin/usb/boot_hsusb_composition n
 | |
| 		fi
 | |
| 
 | |
| 
 | |
| 		# boot hsic composition:
 | |
| 		if [ -d /sys/class/android_usb/android1 ]
 | |
| 		then
 | |
| 			/usr/bin/usb/boot_hsic_composition y
 | |
| 		fi
 | |
| 
 | |
| 		;;
 | |
|           2.*)
 | |
|                 # Nothing to do for 2.x kernels
 | |
|                 ;;
 | |
|           *)
 | |
|                 # Some other version of kernel?
 | |
|                 ;;
 | |
|         esac
 | |
|         ;;
 | |
| 
 | |
|   stop)
 | |
|         echo "Stopping USB Android Gadget"
 | |
|         ;;
 | |
| 
 | |
|   restart)
 | |
|         $0 stop
 | |
|         $0 start
 | |
|         ;;
 | |
|   *)
 | |
|         echo "Usage usb { start | stop | restart}" >&2
 | |
|         exit 1
 | |
|         ;;
 | |
| esac
 | |
| 
 | 
