mirror of
				https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable.git
				synced 2025-11-04 07:44:51 +10:00 
			
		
		
		
	The section "19) Editor modelines and other cruft" in Documentation/process/coding-style.rst clearly says, "Do not include any of these in source files." I recently receive a patch to explicitly add a new one. Let's do treewide cleanups, otherwise some people follow the existing code and attempt to upstream their favoriate editor setups. It is even nicer if scripts/checkpatch.pl can check it. If we like to impose coding style in an editor-independent manner, I think editorconfig (patch [1]) is a saner solution. [1] https://lore.kernel.org/lkml/20200703073143.423557-1-danny@kdrag0n.dev/ Link: https://lkml.kernel.org/r/20210324054457.1477489-1-masahiroy@kernel.org Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> Reviewed-by: Miguel Ojeda <ojeda@kernel.org> [auxdisplay] Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
			
				
	
	
		
			275 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			275 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/sh
 | 
						|
# SPDX-License-Identifier: GPL-2.0
 | 
						|
#
 | 
						|
# test types can be passed on the command line:
 | 
						|
#
 | 
						|
# - control: any device can do this
 | 
						|
# - out, in:  out needs 'bulk sink' firmware, in needs 'bulk src'
 | 
						|
# - iso-out, iso-in:  out needs 'iso sink' firmware, in needs 'iso src'
 | 
						|
# - halt: needs bulk sink+src, tests halt set/clear from host
 | 
						|
# - unlink: needs bulk sink and/or src, test HCD unlink processing
 | 
						|
# - loop: needs firmware that will buffer N transfers
 | 
						|
#
 | 
						|
# run it for hours, days, weeks.
 | 
						|
#
 | 
						|
 | 
						|
#
 | 
						|
# this default provides a steady test load for a bulk device
 | 
						|
#
 | 
						|
TYPES='control out in'
 | 
						|
#TYPES='control out in halt'
 | 
						|
 | 
						|
#
 | 
						|
# to test HCD code
 | 
						|
#
 | 
						|
#  - include unlink tests
 | 
						|
#  - add some ${RANDOM}ness
 | 
						|
#  - connect several devices concurrently (same HC)
 | 
						|
#  - keep HC's IRQ lines busy with unrelated traffic (IDE, net, ...)
 | 
						|
#  - add other concurrent system loads
 | 
						|
#
 | 
						|
 | 
						|
declare -i COUNT BUFLEN
 | 
						|
 | 
						|
COUNT=50000
 | 
						|
BUFLEN=2048
 | 
						|
 | 
						|
# NOTE:  the 'in' and 'out' cases are usually bulk, but can be
 | 
						|
# set up to use interrupt transfers by 'usbtest' module options
 | 
						|
 | 
						|
 | 
						|
if [ "$DEVICE" = "" ]; then
 | 
						|
	echo "testing ALL recognized usbtest devices"
 | 
						|
	echo ""
 | 
						|
	TEST_ARGS="-a"
 | 
						|
else
 | 
						|
	TEST_ARGS=""
 | 
						|
fi
 | 
						|
 | 
						|
do_test ()
 | 
						|
{
 | 
						|
    if ! ./testusb $TEST_ARGS -s $BUFLEN -c $COUNT $* 2>/dev/null
 | 
						|
    then
 | 
						|
	echo "FAIL"
 | 
						|
	exit 1
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
ARGS="$*"
 | 
						|
 | 
						|
if [ "$ARGS" = "" ];
 | 
						|
then
 | 
						|
    ARGS="$TYPES"
 | 
						|
fi
 | 
						|
 | 
						|
# FIXME use /sys/bus/usb/device/$THIS/bConfigurationValue to
 | 
						|
# check and change configs
 | 
						|
 | 
						|
CONFIG=''
 | 
						|
 | 
						|
check_config ()
 | 
						|
{
 | 
						|
    if [ "$CONFIG" = "" ]; then
 | 
						|
	CONFIG=$1
 | 
						|
	echo "assuming $CONFIG configuration"
 | 
						|
	return
 | 
						|
    fi
 | 
						|
    if [ "$CONFIG" = $1 ]; then
 | 
						|
	return
 | 
						|
    fi
 | 
						|
 | 
						|
    echo "** device must be in $1 config, but it's $CONFIG instead"
 | 
						|
    exit 1
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
echo "TESTING:  $ARGS"
 | 
						|
 | 
						|
while : true
 | 
						|
do
 | 
						|
    echo $(date)
 | 
						|
 | 
						|
    for TYPE in $ARGS
 | 
						|
    do
 | 
						|
	# restore defaults
 | 
						|
	COUNT=5000
 | 
						|
	BUFLEN=2048
 | 
						|
 | 
						|
	# FIXME automatically multiply COUNT by 10 when
 | 
						|
	# /sys/bus/usb/device/$THIS/speed == "480"
 | 
						|
 | 
						|
#	COUNT=50000
 | 
						|
 | 
						|
	case $TYPE in
 | 
						|
	control)
 | 
						|
	    # any device, in any configuration, can use this.
 | 
						|
	    echo '** Control test cases:'
 | 
						|
 | 
						|
	    echo "test 9: ch9 postconfig"
 | 
						|
	    do_test -t 9 -c 5000
 | 
						|
	    echo "test 10: control queueing"
 | 
						|
	    do_test -t 10 -c 5000
 | 
						|
 | 
						|
	    # this relies on some vendor-specific commands
 | 
						|
	    echo "test 14: control writes"
 | 
						|
	    do_test -t 14 -c 15000 -s 256 -v 1
 | 
						|
 | 
						|
	    echo "test 21: control writes, unaligned"
 | 
						|
	    do_test -t 21 -c 100 -s 256 -v 1
 | 
						|
 | 
						|
	    ;;
 | 
						|
 | 
						|
	out)
 | 
						|
	    check_config sink-src
 | 
						|
	    echo '** Host Write (OUT) test cases:'
 | 
						|
 | 
						|
	    echo "test 1: $COUNT transfers, same size"
 | 
						|
	    do_test -t 1
 | 
						|
	    echo "test 3: $COUNT transfers, variable/short size"
 | 
						|
	    do_test -t 3 -v 421
 | 
						|
 | 
						|
	    COUNT=100
 | 
						|
	    echo "test 17: $COUNT transfers, unaligned DMA map by core"
 | 
						|
	    do_test -t 17
 | 
						|
 | 
						|
	    echo "test 19: $COUNT transfers, unaligned DMA map by usb_alloc_coherent"
 | 
						|
	    do_test -t 19
 | 
						|
 | 
						|
	    COUNT=2000
 | 
						|
	    echo "test 5: $COUNT scatterlists, same size entries"
 | 
						|
	    do_test -t 5
 | 
						|
 | 
						|
	    # try to trigger short OUT processing bugs
 | 
						|
	    echo "test 7a: $COUNT scatterlists, variable size/short entries"
 | 
						|
	    do_test -t 7 -v 579
 | 
						|
	    BUFLEN=4096
 | 
						|
	    echo "test 7b: $COUNT scatterlists, variable size/bigger entries"
 | 
						|
	    do_test -t 7 -v 41
 | 
						|
	    BUFLEN=64
 | 
						|
	    echo "test 7c: $COUNT scatterlists, variable size/micro entries"
 | 
						|
	    do_test -t 7 -v 63
 | 
						|
	    ;;
 | 
						|
 | 
						|
	iso-out)
 | 
						|
	    check_config sink-src
 | 
						|
	    echo '** Host ISOCHRONOUS Write (OUT) test cases:'
 | 
						|
 | 
						|
	    # at peak iso transfer rates:
 | 
						|
	    # - usb 2.0 high bandwidth, this is one frame.
 | 
						|
	    # - usb 1.1, it's twenty-four frames.
 | 
						|
	    BUFLEN=24500
 | 
						|
 | 
						|
	    COUNT=1000
 | 
						|
 | 
						|
# COUNT=10000
 | 
						|
 | 
						|
	    echo "test 15: $COUNT transfers, same size"
 | 
						|
	    # do_test -t 15 -g 3 -v 0
 | 
						|
	    BUFLEN=32768
 | 
						|
	    do_test -t 15 -g 8 -v 0
 | 
						|
 | 
						|
	    # FIXME it'd make sense to have an iso OUT test issuing
 | 
						|
	    # short writes on more packets than the last one
 | 
						|
 | 
						|
	    COUNT=100
 | 
						|
	    echo "test 22: $COUNT transfers, non aligned"
 | 
						|
	    do_test -t 22 -g 8 -v 0
 | 
						|
 | 
						|
	    ;;
 | 
						|
 | 
						|
	in)
 | 
						|
	    check_config sink-src
 | 
						|
	    echo '** Host Read (IN) test cases:'
 | 
						|
 | 
						|
	    # NOTE:  these "variable size" reads are just multiples
 | 
						|
	    # of 512 bytes, no EOVERFLOW testing is done yet
 | 
						|
 | 
						|
	    echo "test 2: $COUNT transfers, same size"
 | 
						|
	    do_test -t 2
 | 
						|
	    echo "test 4: $COUNT transfers, variable size"
 | 
						|
	    do_test -t 4
 | 
						|
 | 
						|
	    COUNT=100
 | 
						|
	    echo "test 18: $COUNT transfers, unaligned DMA map by core"
 | 
						|
	    do_test -t 18
 | 
						|
 | 
						|
	    echo "test 20: $COUNT transfers, unaligned DMA map by usb_alloc_coherent"
 | 
						|
	    do_test -t 20
 | 
						|
 | 
						|
	    COUNT=2000
 | 
						|
	    echo "test 6: $COUNT scatterlists, same size entries"
 | 
						|
	    do_test -t 6
 | 
						|
	    echo "test 8: $COUNT scatterlists, variable size entries"
 | 
						|
	    do_test -t 8
 | 
						|
	    ;;
 | 
						|
 | 
						|
	iso-in)
 | 
						|
	    check_config sink-src
 | 
						|
	    echo '** Host ISOCHRONOUS Read (IN) test cases:'
 | 
						|
 | 
						|
	    # at peak iso transfer rates:
 | 
						|
	    # - usb 2.0 high bandwidth, this is one frame.
 | 
						|
	    # - usb 1.1, it's twenty-four frames.
 | 
						|
	    BUFLEN=24500
 | 
						|
 | 
						|
	    COUNT=1000
 | 
						|
 | 
						|
# COUNT=10000
 | 
						|
 | 
						|
	    echo "test 16: $COUNT transfers, same size"
 | 
						|
	    # do_test -t 16 -g 3 -v 0
 | 
						|
	    BUFLEN=32768
 | 
						|
	    do_test -t 16 -g 8 -v 0
 | 
						|
 | 
						|
	    # FIXME since iso expects faults, it'd make sense
 | 
						|
	    # to have an iso IN test issuing short reads ...
 | 
						|
 | 
						|
	    COUNT=100
 | 
						|
	    echo "test 23: $COUNT transfers, unaligned"
 | 
						|
	    do_test -t 23 -g 8 -v 0
 | 
						|
 | 
						|
	    ;;
 | 
						|
 | 
						|
	halt)
 | 
						|
	    # NOTE:  sometimes hardware doesn't cooperate well with halting
 | 
						|
	    # endpoints from the host side.  so long as mass-storage class
 | 
						|
	    # firmware can halt them from the device, don't worry much if
 | 
						|
	    # you can't make this test work on your device.
 | 
						|
	    COUNT=2000
 | 
						|
	    echo "test 13: $COUNT halt set/clear"
 | 
						|
	    do_test -t 13
 | 
						|
	    ;;
 | 
						|
 | 
						|
	unlink)
 | 
						|
	    COUNT=2000
 | 
						|
	    echo "test 11: $COUNT read unlinks"
 | 
						|
	    do_test -t 11
 | 
						|
 | 
						|
	    echo "test 12: $COUNT write unlinks"
 | 
						|
	    do_test -t 12
 | 
						|
	    ;;
 | 
						|
 | 
						|
	loop)
 | 
						|
	    # defaults need too much buffering for ez-usb devices
 | 
						|
	    BUFLEN=2048
 | 
						|
	    COUNT=32
 | 
						|
 | 
						|
	    # modprobe g_zero qlen=$COUNT buflen=$BUFLEN loopdefault
 | 
						|
	    check_config loopback
 | 
						|
 | 
						|
	    # FIXME someone needs to write and merge a version of this
 | 
						|
 | 
						|
	    echo "write $COUNT buffers of $BUFLEN bytes, read them back"
 | 
						|
 | 
						|
	    echo "write $COUNT variable size buffers, read them back"
 | 
						|
 | 
						|
	    ;;
 | 
						|
 | 
						|
	*)
 | 
						|
	    echo "Don't understand test type $TYPE"
 | 
						|
	    exit 1;
 | 
						|
	esac
 | 
						|
	echo ''
 | 
						|
    done
 | 
						|
done
 |