summaryrefslogtreecommitdiff
path: root/recipes-bsp/binary-drivers/linux-driver-package/nv
blob: 22216887d3da2f5044eca5beff05c422fe738cea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/bin/sh
#"NVIDIA specific init script"

nvexec() {
	# power state
	if [ -e /sys/power/state ]; then
		chmod 0666 /sys/power/state
	fi

	# Set minimum cpu freq.
	if [ -e /sys/devices/soc0/family ]; then
		SOCFAMILY="`cat /sys/devices/soc0/family`"
	fi

	if [ "$SOCFAMILY" = "Tegra13" ] &&
		[ -e /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq ]; then
		sudo bash -c "echo -n 510000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq"
	fi

	# CPU hotplugging
	if [ -d /sys/devices/system/cpu/cpuquiet/tegra_cpuquiet ] ; then
		echo 500 > /sys/devices/system/cpu/cpuquiet/tegra_cpuquiet/down_delay
		echo 1 > /sys/devices/system/cpu/cpuquiet/tegra_cpuquiet/enable
	elif [ -w /sys/module/cpu_tegra3/parameters/auto_hotplug ] ; then
		# compatibility for prior kernels without cpuquiet support
		echo 1 > /sys/module/cpu_tegra3/parameters/auto_hotplug
	fi

	# lp2 idle state
	if [ -e /sys/module/cpuidle/parameters/power_down_in_idle ] ; then
		echo "Y" > /sys/module/cpuidle/parameters/power_down_in_idle
	elif [ -e /sys/module/cpuidle/parameters/lp2_in_idle ] ; then
		# compatibility for prior kernels
		echo "Y" > /sys/module/cpuidle/parameters/lp2_in_idle
	fi

	#FIXME remove once kernel CL merges into main Bug 1231069
	for uartInst in 0 1 2 3
	do
		uartNode="/dev/ttyHS$uartInst"
		if [ -e "$uartNode" ]; then
			ln -s /dev/ttyHS$uartInst /dev/ttyTHS$uartInst
		fi
	done
	# remove power to dc.0 for jetson-tk1
	machine=`cat /sys/devices/soc0/machine`
	if [ "${machine}" = "jetson-tk1" ] ; then
		echo 4 > /sys/class/graphics/fb0/blank
		if [ -e /sys/devices/platform/tegra-otg/enable_device ] ; then
			echo 0 > /sys/devices/platform/tegra-otg/enable_device
		fi
		if [ -e /sys/devices/platform/tegra-otg/enable_host ] ; then
			echo 1 > /sys/devices/platform/tegra-otg/enable_host
		fi
	fi

	# CPU frequency governor
	if [ -e /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors ]; then
		read governors < /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
		case $governors in
			*interactive*)
				echo interactive > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
				if [ -e /sys/devices/system/cpu/cpufreq/interactive ] ; then
					echo "1224000" > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
					echo "95" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
					echo "20000" > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
				fi
					;;
			*)
					;;
		esac
	fi

	# CPU frequency boost on input event
	if [ -e /sys/module/input_cfboost/parameters/boost_freq ]; then
		echo "1224000" > /sys/module/input_cfboost/parameters/boost_freq
	fi
}

case "$1" in
  start)
    nvexec
    exit 0
    ;;
  *)
    exit 1
esac