summaryrefslogtreecommitdiff
path: root/recipes-core/udev/files/hotplug.sh
blob: 9d9fd89123587bcbac7f4a2b34e03d84315197c0 (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
#!/bin/sh
#
# Called from udev
#
# Set the read_ahead cache size of SD card on hotplug

SYSNAME=$(uname -n)
DISKNUM=$(echo $DEVNAME | sed -e 's/\(^.*\)\(.$\)/\2/')
DISKNAME=$(echo $DEVNAME | sed 's/.*\///g;s/p.*//g')
CORES=$(cat /proc/cpuinfo | grep processor | wc -l)

set_read_ahead_size () {
	if [ $DISKNUM == "0" ]; then #eMMC
		echo $1 > /sys/block/$DISKNAME/queue/read_ahead_kb
	else #SD card
		echo $2 > /sys/block/$DISKNAME/queue/read_ahead_kb
	fi
}

if [ "$ACTION" = "add" ] && [ -n "$DEVNAME" ] && [ "$DEVTYPE" = "disk" ]; then
	#Set read_ahead cache of mmcblk? SD card
	if test -e /sys/block/$DISKNAME/queue/read_ahead_kb
	then
		if [ $SYSNAME == "colibri-imx6" ]; then
			if [ $CORES -eq 1 ]; then #imx6s
				set_read_ahead_size 512 512
			else #imx6dl
				set_read_ahead_size 1024 512
			fi
		elif [ $SYSNAME == "apalis-imx6" ]; then
			if [ $CORES -eq 2 ]; then #imx6d
				set_read_ahead_size 1024 512
			else #imx6q
				set_read_ahead_size 1024 512
			fi
		elif [ $SYSNAME == "apalis-tk1" ]; then
			set_read_ahead_size 4096 1024
		else
			logger "sd_hotplug.sh" "System name not compatible"
		fi
	else
		logger "sd_hotplug" "No read_ahead_kb configuration file found"
    fi
fi