#!/bin/sh
+RCAR_CAN=0
+CAN_BCM=0
+
if [ ! -e /sys/class/net/can1 ];then
lava-test-case show_can_modules --result skip
lava-test-case unload_can_raw_module --result skip
lava-test-case unload_c_can_module --result skipp
lava-test-case unload_can_dev_module --result skip
lava-test-case canconfig_can0 --result skip
- lava-test-case canconfig_can1 --result skip
lava-test-case load_can_module --result skip
lava-test-case load_can_raw_module --result skip
lava-test-case load_c_can_module --result skip
lava-test-case load_can_dev_module --result skip
lava-test-case canconfig_can0 --result skip
- lava-test-case canconfig_can1 --result skip
exit 0
fi
-lsmod | grep can
-if [ $? -eq 0 ];then
- lava-test-case show_can_modules --result pass
-else
- lava-test-case show_can_modules --result fail
-fi
-
-sleep 4
-rmmod can_raw
+# remove module "$1"
+remove_module() {
+ lsmod | grep -q "^$1[[:space:]]"
+ if [ $? -ne 0 ];then
+ lava-test-case unload_$1_module --result skip
+ return 0
+ fi
+ rmmod $1
+ if [ $? -eq 0 ];then
+ lava-test-case unload_$1_module --result pass
+ else
+ lava-test-case unload_$1_module --result fail
+ fi
+}
+
+modprobe_module() {
+ modprobe $1
+ if [ $? -eq 0 ];then
+ lava-test-case load_$1_module --result pass
+ else
+ lava-test-case load_$1_module --result fail
+ fi
+}
+
+remove_module can_raw
+
+# handle "rmmod: ERROR: Module can is in use by: can_bcm"
+lsmod | grep -q can_bcm
if [ $? -eq 0 ];then
- lava-test-case unload_can_raw_module --result pass
-else
- lava-test-case unload_can_raw_module --result fail
+ CAN_BCM=1
+ remove_module can_bcm
fi
-rmmod can
-if [ $? -eq 0 ];then
- lava-test-case unload_can_module --result pass
-else
- lava-test-case unload_can_module --result fail
-fi
+remove_module can
-rmmod c_can_platform
-if [ $? -eq 0 ];then
- lava-test-case unload_c_can_platform_module --result pass
-else
- lava-test-case unload_c_can_platform_module --result fail
-fi
+remove_module c_can_platform
-rmmod c_can
-if [ $? -eq 0 ];then
- lava-test-case unload_c_can_module --result pass
-else
- lava-test-case unload_c_can_module --result fail
-fi
+remove_module c_can
-rmmod can_dev
+lsmod | grep -q rcar_can
if [ $? -eq 0 ];then
- lava-test-case unload_can_dev_module --result pass
-else
- lava-test-case unload_can_dev_module --result fail
+ RCAR_CAN=1
+ remove_module rcar_can
fi
-sleep 5
+remove_module can_dev
-ip link set can0 type can bitrate 50000
+ip -V 2>&1 | grep -q -i BusyBox
if [ $? -eq 0 ];then
- lava-test-case canconfig_can0 --result fail
+ lava-test-case canconfig_can0 --result skip
else
- lava-test-case canconfig_can0 --result pass
+ ip link set can0 type can bitrate 50000
+ if [ $? -eq 0 ];then
+ lava-test-case canconfig_can0 --result fail
+ else
+ lava-test-case canconfig_can0 --result pass
+ fi
fi
-sleep 3
-
-ip link set can1 type can bitrate 50000
-if [ $? -eq 0 ];then
- lava-test-case canconfig_can1 --result fail
-else
- lava-test-case canconfig_can1 --result pass
-fi
+modprobe_module can
-sleep 5
+modprobe_module can_raw
-modprobe can
-if [ $? -eq 0 ];then
- lava-test-case load_can_module --result pass
-else
- lava-test-case load_can_module --result fail
-fi
+modprobe_module c_can
-modprobe can_raw
-x=$?
-sleep 5
-if [ $x -eq 0 ];then
- lava-test-case load_can_raw_module --result pass
-else
- lava-test-case load_can_raw_module --result fail
-fi
-sleep 3
+modprobe_module c_can_platform
-modprobe c_can
-if [ $? -eq 0 ];then
- lava-test-case load_c_can_module --result pass
-else
- lava-test-case load_c_can_module --result fail
-fi
+modprobe_module can_dev
-modprobe c_can_platform
-if [ $? -eq 0 ];then
- lava-test-case load_c_can_platform_module --result pass
-else
- lava-test-case load_c_can_platform_module --result fail
+if [ $RCAR_CAN -eq 1 ];then
+ modprobe_module rcar_can
fi
-modprobe can_dev
-if [ $? -eq 0 ];then
- lava-test-case load_can_dev_module --result pass
-else
- lava-test-case load_can_dev_module --result fail
+if [ $CAN_BCM -eq 1 ];then
+ modprobe_module can_bcm
fi
-sleep 5
-
#Make sure always that the can interface is down before
#starting the config step.
ip link set can0 down
-ip link set can1 down
-
-ip link set can0 type can bitrate 50000
-if [ $? -eq 0 ];then
- lava-test-case canconfig_can0 --result pass
-else
- lava-test-case canconfig_can0 --result fail
-fi
-sleep 3
-ip link set can1 type can bitrate 50000
+ip -V 2>&1 | grep -q -i BusyBox
if [ $? -eq 0 ];then
- lava-test-case canconfig_can1 --result pass
+ lava-test-case canconfig_can0 --result skip
else
- lava-test-case canconfig_can1 --result fail
+ ip link set can0 type can bitrate 50000
+ if [ $? -eq 0 ];then
+ lava-test-case canconfig_can0 --result pass
+ else
+ lava-test-case canconfig_can0 --result fail
+ fi
fi
sleep 3