Hi Ulrich-san again, > From: Yoshihiro Shimoda, Sent: Tuesday, August 3, 2021 8:17 PM > > So, I'll test this patch with my test environment tomorrow. Unfortunately, this patch failed on mmc_test driver. I'm not sure, but perhaps we have a potential issue on runtime PM with SDHI driver? < My environment > - H3 ES3.0 Salvator-XS - kernel v5.14-rc2 - buildroot v2020.02.10 < How to test > # mount -t debugfs none /sys/kernel/debug # ./bind.sh mmc0:0001 # ./test.sh mmc0 mmc0;0001 38 38 # ./test.sh mmc0 mmc0;0001 38 38 CAUTION: The mmc_test driver will overwrite any data of the device.. < Results > - When I tested on an eMMC, the issue happened. -- But, when I tested on a sd card, the issue didn't happen. - The mmc_test failed after test case 38. -- After that, I could not recover the device even if I issued test case 45(Reset). -- Once the test case 38 was OK, but after that, any test case failed. - When I changed the latency value via sysfs as 100, the issue didn't happen. # echo 100 > /sys/devices/platform/soc/ee140000.mmc/power/pm_qos_resume_latency_us < Issue > # ./test.sh mmc0 mmc0:0001 38 38 [ 90.688971] mmc0: Starting tests of card mmc0:0001... [ 90.718703] mmc0: Test case 38. Write performance with non-blocking req 4k to 4MB... [ 90.762127] [mmc_test_rw_multiple] error [ 90.770964] mmc0: Result: ERROR (-84) [ 90.779551] mmc0: Tests completed. < My scripts > --- bind.sh --- #!/bin/sh if [ $# -ne 2 ]; then echo "[dev] [bind or unbind]" echo "dev list (for bind)" ls -la /sys/bus/mmc/drivers/mmcblk echo "dev list (for unbind)" ls -la /sys/bus/mmc/drivers/mmc_test exit fi if [ $2 = "bind" ]; then echo $1 > /sys/bus/mmc/drivers/mmcblk/unbind echo $1 > /sys/bus/mmc/drivers/mmc_test/bind elif [ $2 = "unbind" ]; then echo $1 > /sys/bus/mmc/drivers/mmc_test/unbind echo $1 > /sys/bus/mmc/drivers/mmcblk/bind fi --------------- --- test.sh --- #!/bin/sh if [ $# -ne 4 ]; then echo "[dev base] [dev] [start] [end]" if [ $# -eq 2 ]; then echo "testlist" cat /sys/kernel/debug/$1/$2/testlist fi exit fi dev_base=$1 dev=$2 start=$3 end=$4 i=$start while [ $i -le $end ] ; do echo $i > /sys/kernel/debug/$dev_base/$dev/test sleep 1 i=`expr $i + 1` done --------------- Best regards, Yoshihiro Shimoda