hc
2024-05-14 bedbef8ad3e75a304af6361af235302bcc61d06b
kernel/tools/testing/selftests/firmware/fw_lib.sh
....@@ -9,6 +9,12 @@
99 PROC_CONFIG="/proc/config.gz"
1010 TEST_DIR=$(dirname $0)
1111
12
+# We need to load a different file to test request_firmware_into_buf
13
+# I believe the issue is firmware loaded cached vs. non-cached
14
+# with same filename is bungled.
15
+# To reproduce rename this to test-firmware.bin
16
+TEST_FIRMWARE_INTO_BUF_FILENAME=test-firmware-into-buf.bin
17
+
1218 # Kselftest framework requirement - SKIP code is 4.
1319 ksft_skip=4
1420
....@@ -56,6 +62,7 @@
5662 {
5763 HAS_FW_LOADER_USER_HELPER="$(kconfig_has CONFIG_FW_LOADER_USER_HELPER=y)"
5864 HAS_FW_LOADER_USER_HELPER_FALLBACK="$(kconfig_has CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y)"
65
+ HAS_FW_LOADER_COMPRESS="$(kconfig_has CONFIG_FW_LOADER_COMPRESS=y)"
5966 PROC_FW_IGNORE_SYSFS_FALLBACK="0"
6067 PROC_FW_FORCE_SYSFS_FALLBACK="0"
6168
....@@ -90,6 +97,12 @@
9097 fi
9198
9299 OLD_FWPATH="$(cat /sys/module/firmware_class/parameters/path)"
100
+
101
+ if [ "$HAS_FW_LOADER_COMPRESS" = "yes" ]; then
102
+ if ! which xz 2> /dev/null > /dev/null; then
103
+ HAS_FW_LOADER_COMPRESS=""
104
+ fi
105
+ fi
93106 }
94107
95108 verify_reqs()
....@@ -107,6 +120,8 @@
107120 FWPATH=$(mktemp -d)
108121 FW="$FWPATH/test-firmware.bin"
109122 echo "ABCD0123" >"$FW"
123
+ FW_INTO_BUF="$FWPATH/$TEST_FIRMWARE_INTO_BUF_FILENAME"
124
+ echo "EFGH4567" >"$FW_INTO_BUF"
110125 NAME=$(basename "$FW")
111126 if [ "$TEST_REQS_FW_SET_CUSTOM_PATH" = "yes" ]; then
112127 echo -n "$FWPATH" >/sys/module/firmware_class/parameters/path
....@@ -174,6 +189,9 @@
174189 if [ -f $FW ]; then
175190 rm -f "$FW"
176191 fi
192
+ if [ -f $FW_INTO_BUF ]; then
193
+ rm -f "$FW_INTO_BUF"
194
+ fi
177195 if [ -d $FWPATH ]; then
178196 rm -rf "$FWPATH"
179197 fi