diff mbox series

Fix malformed table error in gadget-testing.rst

Message ID 20240211101324.37266-1-shresthprasad7@gmail.com
State New
Headers show
Series Fix malformed table error in gadget-testing.rst | expand

Commit Message

Shresth Prasad Feb. 11, 2024, 10:13 a.m. UTC
I've replaced all tabs with 8 spaces in gadget-testing.rst so that the
document is easier to work with. This also fixes a malformed table error
emitted while compliling the docs.

Signed-off-by: Shresth Prasad <shresthprasad7@gmail.com>
---
 Documentation/usb/gadget-testing.rst | 554 +++++++++++++--------------
 1 file changed, 277 insertions(+), 277 deletions(-)

Comments

Greg Kroah-Hartman Feb. 11, 2024, 10:54 a.m. UTC | #1
On Sun, Feb 11, 2024 at 03:43:24PM +0530, Shresth Prasad wrote:
> I've replaced all tabs with 8 spaces in gadget-testing.rst so that the
> document is easier to work with. This also fixes a malformed table error
> emitted while compliling the docs.

Please no, tabs are tabs and we all know they are on the 8 character
boundry, so they can stay as-is.

sorry,

greg k-h
diff mbox series

Patch

diff --git a/Documentation/usb/gadget-testing.rst b/Documentation/usb/gadget-testing.rst
index 077dfac7ed98..824a5a47d115 100644
--- a/Documentation/usb/gadget-testing.rst
+++ b/Documentation/usb/gadget-testing.rst
@@ -41,7 +41,7 @@  Function-specific configfs interface
 The function name to use when creating the function directory is "acm".
 The ACM function provides just one attribute in its function directory:
 
-	port_num
+       port_num
 
 The attribute is read-only.
 
@@ -53,21 +53,21 @@  Testing the ACM function
 
 On the host::
 
-	cat > /dev/ttyACM<X>
+       cat > /dev/ttyACM<X>
 
 On the device::
 
-	cat /dev/ttyGS<Y>
+       cat /dev/ttyGS<Y>
 
 then the other way round
 
 On the device::
 
-	cat > /dev/ttyGS<Y>
+       cat > /dev/ttyGS<Y>
 
 On the host::
 
-	cat /dev/ttyACM<X>
+       cat /dev/ttyACM<X>
 
 2. ECM function
 ===============
@@ -80,15 +80,15 @@  Function-specific configfs interface
 The function name to use when creating the function directory is "ecm".
 The ECM function provides these attributes in its function directory:
 
-	=============== ==================================================
-	ifname		network device interface name associated with this
-			function instance
-	qmult		queue length multiplier for high and super speed
-	host_addr	MAC address of host's end of this
-			Ethernet over USB link
-	dev_addr	MAC address of device's end of this
-			Ethernet over USB link
-	=============== ==================================================
+       =============== ==================================================
+       ifname          network device interface name associated with this
+                       function instance
+       qmult           queue length multiplier for high and super speed
+       host_addr       MAC address of host's end of this
+                       Ethernet over USB link
+       dev_addr        MAC address of device's end of this
+                       Ethernet over USB link
+       =============== ==================================================
 
 and after creating the functions/ecm.<instance name> they contain default
 values: qmult is 5, dev_addr and host_addr are randomly selected.
@@ -103,11 +103,11 @@  Configure IP addresses of the device and the host. Then:
 
 On the device::
 
-	ping <host's IP>
+       ping <host's IP>
 
 On the host::
 
-	ping <device's IP>
+       ping <device's IP>
 
 3. ECM subset function
 ======================
@@ -120,15 +120,15 @@  Function-specific configfs interface
 The function name to use when creating the function directory is "geth".
 The ECM subset function provides these attributes in its function directory:
 
-	=============== ==================================================
-	ifname		network device interface name associated with this
-			function instance
-	qmult		queue length multiplier for high and super speed
-	host_addr	MAC address of host's end of this
-			Ethernet over USB link
-	dev_addr	MAC address of device's end of this
-			Ethernet over USB link
-	=============== ==================================================
+       =============== ==================================================
+       ifname          network device interface name associated with this
+                       function instance
+       qmult           queue length multiplier for high and super speed
+       host_addr       MAC address of host's end of this
+                       Ethernet over USB link
+       dev_addr        MAC address of device's end of this
+                       Ethernet over USB link
+       =============== ==================================================
 
 and after creating the functions/ecm.<instance name> they contain default
 values: qmult is 5, dev_addr and host_addr are randomly selected.
@@ -143,11 +143,11 @@  Configure IP addresses of the device and the host. Then:
 
 On the device::
 
-	ping <host's IP>
+       ping <host's IP>
 
 On the host::
 
-	ping <device's IP>
+       ping <device's IP>
 
 4. EEM function
 ===============
@@ -160,15 +160,15 @@  Function-specific configfs interface
 The function name to use when creating the function directory is "eem".
 The EEM function provides these attributes in its function directory:
 
-	=============== ==================================================
-	ifname		network device interface name associated with this
-			function instance
-	qmult		queue length multiplier for high and super speed
-	host_addr	MAC address of host's end of this
-			Ethernet over USB link
-	dev_addr	MAC address of device's end of this
-			Ethernet over USB link
-	=============== ==================================================
+       =============== ==================================================
+       ifname          network device interface name associated with this
+                       function instance
+       qmult           queue length multiplier for high and super speed
+       host_addr       MAC address of host's end of this
+                       Ethernet over USB link
+       dev_addr        MAC address of device's end of this
+                       Ethernet over USB link
+       =============== ==================================================
 
 and after creating the functions/eem.<instance name> they contain default
 values: qmult is 5, dev_addr and host_addr are randomly selected.
@@ -183,11 +183,11 @@  Configure IP addresses of the device and the host. Then:
 
 On the device::
 
-	ping <host's IP>
+       ping <host's IP>
 
 On the host::
 
-	ping <device's IP>
+       ping <device's IP>
 
 5. FFS function
 ===============
@@ -224,13 +224,13 @@  Function-specific configfs interface
 The function name to use when creating the function directory is "hid".
 The HID function provides these attributes in its function directory:
 
-	=============== ===========================================
-	protocol	HID protocol to use
-	report_desc	data to be used in HID reports, except data
-			passed with /dev/hidg<X>
-	report_length	HID report length
-	subclass	HID subclass to use
-	=============== ===========================================
+       =============== ===========================================
+       protocol        HID protocol to use
+       report_desc     data to be used in HID reports, except data
+                       passed with /dev/hidg<X>
+       report_length   HID report length
+       subclass        HID subclass to use
+       =============== ===========================================
 
 For a keyboard the protocol and the subclass are 1, the report_length is 8,
 while the report_desc is::
@@ -257,7 +257,7 @@  Device:
 - run a program which writes to /dev/hidg<N>, e.g.
   a userspace program found in Documentation/usb/gadget_hid.rst::
 
-	$ ./hid_gadget_test /dev/hidg0 keyboard
+       $ ./hid_gadget_test /dev/hidg0 keyboard
 
 Host:
 
@@ -274,10 +274,10 @@  Function-specific configfs interface
 The function name to use when creating the function directory is "Loopback".
 The LOOPBACK function provides these attributes in its function directory:
 
-	=============== =======================
-	qlen		depth of loopback queue
-	bulk_buflen	buffer length
-	=============== =======================
+       =============== =======================
+       qlen            depth of loopback queue
+       bulk_buflen     buffer length
+       =============== =======================
 
 Testing the LOOPBACK function
 -----------------------------
@@ -298,20 +298,20 @@  The function name to use when creating the function directory is "mass_storage".
 The MASS STORAGE function provides these attributes in its directory:
 files:
 
-	=============== ==============================================
-	stall		Set to permit function to halt bulk endpoints.
-			Disabled on some USB devices known not to work
-			correctly. You should set it to true.
-	num_buffers	Number of pipeline buffers. Valid numbers
-			are 2..4. Available only if
-			CONFIG_USB_GADGET_DEBUG_FILES is set.
-	=============== ==============================================
+       =============== ==============================================
+       stall           Set to permit function to halt bulk endpoints.
+                       Disabled on some USB devices known not to work
+                       correctly. You should set it to true.
+       num_buffers     Number of pipeline buffers. Valid numbers
+                       are 2..4. Available only if
+                       CONFIG_USB_GADGET_DEBUG_FILES is set.
+       =============== ==============================================
 
 and a default lun.0 directory corresponding to SCSI LUN #0.
 
 A new lun can be added with mkdir::
 
-	$ mkdir functions/mass_storage.0/partition.5
+       $ mkdir functions/mass_storage.0/partition.5
 
 Lun numbering does not have to be continuous, except for lun #0 which is
 created by default. A maximum of 8 luns can be specified and they all must be
@@ -321,26 +321,26 @@  although it is not mandatory.
 
 In each lun directory there are the following attribute files:
 
-	=============== ==============================================
-	file		The path to the backing file for the LUN.
-			Required if LUN is not marked as removable.
-	ro		Flag specifying access to the LUN shall be
-			read-only. This is implied if CD-ROM emulation
-			is enabled as well as when it was impossible
-			to open "filename" in R/W mode.
-	removable	Flag specifying that LUN shall be indicated as
-			being removable.
-	cdrom		Flag specifying that LUN shall be reported as
-			being a CD-ROM.
-	nofua		Flag specifying that FUA flag
-			in SCSI WRITE(10,12)
-	forced_eject	This write-only file is useful only when
-			the function is active. It causes the backing
-			file to be forcibly detached from the LUN,
-			regardless of whether the host has allowed it.
-			Any non-zero number of bytes written will
-			result in ejection.
-	=============== ==============================================
+       =============== ==============================================
+       file            The path to the backing file for the LUN.
+                       Required if LUN is not marked as removable.
+       ro              Flag specifying access to the LUN shall be
+                       read-only. This is implied if CD-ROM emulation
+                       is enabled as well as when it was impossible
+                       to open "filename" in R/W mode.
+       removable       Flag specifying that LUN shall be indicated as
+                       being removable.
+       cdrom           Flag specifying that LUN shall be reported as
+                       being a CD-ROM.
+       nofua           Flag specifying that FUA flag
+                       in SCSI WRITE(10,12)
+       forced_eject    This write-only file is useful only when
+                       the function is active. It causes the backing
+                       file to be forcibly detached from the LUN,
+                       regardless of whether the host has allowed it.
+                       Any non-zero number of bytes written will
+                       result in ejection.
+       =============== ==============================================
 
 Testing the MASS STORAGE function
 ---------------------------------
@@ -360,14 +360,14 @@  Function-specific configfs interface
 The function name to use when creating the function directory is "midi".
 The MIDI function provides these attributes in its function directory:
 
-	=============== ====================================
-	buflen		MIDI buffer length
-	id		ID string for the USB MIDI adapter
-	in_ports	number of MIDI input ports
-	index		index value for the USB MIDI adapter
-	out_ports	number of MIDI output ports
-	qlen		USB read request queue length
-	=============== ====================================
+       =============== ====================================
+       buflen          MIDI buffer length
+       id              ID string for the USB MIDI adapter
+       in_ports        number of MIDI input ports
+       index           index value for the USB MIDI adapter
+       out_ports       number of MIDI output ports
+       qlen            USB read request queue length
+       =============== ====================================
 
 Testing the MIDI function
 -------------------------
@@ -448,17 +448,17 @@  Function-specific configfs interface
 The function name to use when creating the function directory is "ncm".
 The NCM function provides these attributes in its function directory:
 
-	======================= ==================================================
-	ifname			network device interface name associated with this
-				function instance
-	qmult			queue length multiplier for high and super speed
-	host_addr		MAC address of host's end of this
-				Ethernet over USB link
-	dev_addr		MAC address of device's end of this
-				Ethernet over USB link
-	max_segment_size	Segment size required for P2P connections. This
-				will set MTU to 14 bytes
-	======================= ==================================================
+       ======================= ==================================================
+       ifname                  network device interface name associated with this
+                               function instance
+       qmult                   queue length multiplier for high and super speed
+       host_addr               MAC address of host's end of this
+                               Ethernet over USB link
+       dev_addr                MAC address of device's end of this
+                               Ethernet over USB link
+       max_segment_size        Segment size required for P2P connections. This
+                               will set MTU to 14 bytes
+       ======================= ==================================================
 
 and after creating the functions/ncm.<instance name> they contain default
 values: qmult is 5, dev_addr and host_addr are randomly selected.
@@ -473,11 +473,11 @@  Configure IP addresses of the device and the host. Then:
 
 On the device::
 
-	ping <host's IP>
+       ping <host's IP>
 
 On the host::
 
-	ping <device's IP>
+       ping <device's IP>
 
 11. OBEX function
 =================
@@ -490,7 +490,7 @@  Function-specific configfs interface
 The function name to use when creating the function directory is "obex".
 The OBEX function provides just one attribute in its function directory:
 
-	port_num
+       port_num
 
 The attribute is read-only.
 
@@ -501,16 +501,16 @@  Testing the OBEX function
 
 On device::
 
-	seriald -f /dev/ttyGS<Y> -s 1024
+       seriald -f /dev/ttyGS<Y> -s 1024
 
 On host::
 
-	serialc -v <vendorID> -p <productID> -i<interface#> -a1 -s1024 \
-                -t<out endpoint addr> -r<in endpoint addr>
+       serialc -v <vendorID> -p <productID> -i<interface#> -a1 -s1024 \
+               -t<out endpoint addr> -r<in endpoint addr>
 
 where seriald and serialc are Felipe's utilities found here:
 
-	https://github.com/felipebalbi/usb-tools.git master
+       https://github.com/felipebalbi/usb-tools.git master
 
 12. PHONET function
 ===================
@@ -523,10 +523,10 @@  Function-specific configfs interface
 The function name to use when creating the function directory is "phonet".
 The PHONET function provides just one attribute in its function directory:
 
-	=============== ==================================================
-	ifname		network device interface name associated with this
-			function instance
-	=============== ==================================================
+       =============== ==================================================
+       ifname          network device interface name associated with this
+                       function instance
+       =============== ==================================================
 
 Testing the PHONET function
 ---------------------------
@@ -543,39 +543,39 @@  git://git.gitorious.org/meego-cellular/phonet-utils.git
 
 On the host::
 
-	$ ./phonet -a 0x10 -i usbpn0
-	$ ./pnroute add 0x6c usbpn0
-	$./pnroute add 0x10 usbpn0
-	$ ifconfig usbpn0 up
+       $ ./phonet -a 0x10 -i usbpn0
+       $ ./pnroute add 0x6c usbpn0
+       $./pnroute add 0x10 usbpn0
+       $ ifconfig usbpn0 up
 
 On the device::
 
-	$ ./phonet -a 0x6c -i upnlink0
-	$ ./pnroute add 0x10 upnlink0
-	$ ifconfig upnlink0 up
+       $ ./phonet -a 0x6c -i upnlink0
+       $ ./pnroute add 0x10 upnlink0
+       $ ifconfig upnlink0 up
 
 Then a test program can be used::
 
-	http://www.spinics.net/lists/linux-usb/msg85690.html
+       http://www.spinics.net/lists/linux-usb/msg85690.html
 
 On the device::
 
-	$ ./pnxmit -a 0x6c -r
+       $ ./pnxmit -a 0x6c -r
 
 On the host::
 
-	$ ./pnxmit -a 0x10 -s 0x6c
+       $ ./pnxmit -a 0x10 -s 0x6c
 
 As a result some data should be sent from host to device.
 Then the other way round:
 
 On the host::
 
-	$ ./pnxmit -a 0x10 -r
+       $ ./pnxmit -a 0x10 -r
 
 On the device::
 
-	$ ./pnxmit -a 0x6c -s 0x10
+       $ ./pnxmit -a 0x6c -s 0x10
 
 13. RNDIS function
 ==================
@@ -588,15 +588,15 @@  Function-specific configfs interface
 The function name to use when creating the function directory is "rndis".
 The RNDIS function provides these attributes in its function directory:
 
-	=============== ==================================================
-	ifname		network device interface name associated with this
-			function instance
-	qmult		queue length multiplier for high and super speed
-	host_addr	MAC address of host's end of this
-			Ethernet over USB link
-	dev_addr	MAC address of device's end of this
-			Ethernet over USB link
-	=============== ==================================================
+       =============== ==================================================
+       ifname          network device interface name associated with this
+                       function instance
+       qmult           queue length multiplier for high and super speed
+       host_addr       MAC address of host's end of this
+                       Ethernet over USB link
+       dev_addr        MAC address of device's end of this
+                       Ethernet over USB link
+       =============== ==================================================
 
 and after creating the functions/rndis.<instance name> they contain default
 values: qmult is 5, dev_addr and host_addr are randomly selected.
@@ -611,11 +611,11 @@  Configure IP addresses of the device and the host. Then:
 
 On the device::
 
-	ping <host's IP>
+       ping <host's IP>
 
 On the host::
 
-	ping <device's IP>
+       ping <device's IP>
 
 14. SERIAL function
 ===================
@@ -628,7 +628,7 @@  Function-specific configfs interface
 The function name to use when creating the function directory is "gser".
 The SERIAL function provides just one attribute in its function directory:
 
-	port_num
+       port_num
 
 The attribute is read-only.
 
@@ -639,26 +639,26 @@  Testing the SERIAL function
 
 On host::
 
-	insmod usbserial
-	echo VID PID >/sys/bus/usb-serial/drivers/generic/new_id
+       insmod usbserial
+       echo VID PID >/sys/bus/usb-serial/drivers/generic/new_id
 
 On host::
 
-	cat > /dev/ttyUSB<X>
+       cat > /dev/ttyUSB<X>
 
 On target::
 
-	cat /dev/ttyGS<Y>
+       cat /dev/ttyGS<Y>
 
 then the other way round
 
 On target::
 
-	cat > /dev/ttyGS<Y>
+       cat > /dev/ttyGS<Y>
 
 On host::
 
-	cat /dev/ttyUSB<X>
+       cat /dev/ttyUSB<X>
 
 15. SOURCESINK function
 =======================
@@ -671,16 +671,16 @@  Function-specific configfs interface
 The function name to use when creating the function directory is "SourceSink".
 The SOURCESINK function provides these attributes in its function directory:
 
-	=============== ==================================
-	pattern		0 (all zeros), 1 (mod63), 2 (none)
-	isoc_interval	1..16
-	isoc_maxpacket	0 - 1023 (fs), 0 - 1024 (hs/ss)
-	isoc_mult	0..2 (hs/ss only)
-	isoc_maxburst	0..15 (ss only)
-	bulk_buflen	buffer length
-	bulk_qlen	depth of queue for bulk
-	iso_qlen	depth of queue for iso
-	=============== ==================================
+       =============== ==================================
+       pattern         0 (all zeros), 1 (mod63), 2 (none)
+       isoc_interval   1..16
+       isoc_maxpacket  0 - 1023 (fs), 0 - 1024 (hs/ss)
+       isoc_mult       0..2 (hs/ss only)
+       isoc_maxburst   0..15 (ss only)
+       bulk_buflen     buffer length
+       bulk_qlen       depth of queue for bulk
+       iso_qlen        depth of queue for iso
+       =============== ==================================
 
 Testing the SOURCESINK function
 -------------------------------
@@ -702,14 +702,14 @@  The function name to use when creating the function directory
 is "uac1_legacy".
 The uac1 function provides these attributes in its function directory:
 
-	=============== ====================================
-	audio_buf_size	audio buffer size
-	fn_cap		capture pcm device file name
-	fn_cntl		control device file name
-	fn_play		playback pcm device file name
-	req_buf_size	ISO OUT endpoint request buffer size
-	req_count	ISO OUT endpoint request count
-	=============== ====================================
+       =============== ====================================
+       audio_buf_size  audio buffer size
+       fn_cap          capture pcm device file name
+       fn_cntl         control device file name
+       fn_play         playback pcm device file name
+       req_buf_size    ISO OUT endpoint request buffer size
+       req_count       ISO OUT endpoint request count
+       =============== ====================================
 
 The attributes have sane default values.
 
@@ -720,7 +720,7 @@  device: run the gadget
 
 host::
 
-	aplay -l # should list our USB Audio Gadget
+       aplay -l # should list our USB Audio Gadget
 
 17. UAC2 function
 =================
@@ -733,33 +733,33 @@  Function-specific configfs interface
 The function name to use when creating the function directory is "uac2".
 The uac2 function provides these attributes in its function directory:
 
-	================ ====================================================
-	c_chmask         capture channel mask
-	c_srate          list of capture sampling rates (comma-separated)
-	c_ssize          capture sample size (bytes)
-	c_sync           capture synchronization type (async/adaptive)
-	c_mute_present   capture mute control enable
-	c_volume_present capture volume control enable
-	c_volume_min     capture volume control min value (in 1/256 dB)
-	c_volume_max     capture volume control max value (in 1/256 dB)
-	c_volume_res     capture volume control resolution (in 1/256 dB)
-	c_hs_bint        capture bInterval for HS/SS (1-4: fixed, 0: auto)
-	fb_max           maximum extra bandwidth in async mode
-	p_chmask         playback channel mask
-	p_srate          list of playback sampling rates (comma-separated)
-	p_ssize          playback sample size (bytes)
-	p_mute_present   playback mute control enable
-	p_volume_present playback volume control enable
-	p_volume_min     playback volume control min value (in 1/256 dB)
-	p_volume_max     playback volume control max value (in 1/256 dB)
-	p_volume_res     playback volume control resolution (in 1/256 dB)
-	p_hs_bint        playback bInterval for HS/SS (1-4: fixed, 0: auto)
-	req_number       the number of pre-allocated request for both capture
-	                 and playback
-	function_name    name of the interface
-	c_terminal_type  code of the capture terminal type
-	p_terminal_type  code of the playback terminal type
-	================ ====================================================
+       ================ ====================================================
+       c_chmask         capture channel mask
+       c_srate          list of capture sampling rates (comma-separated)
+       c_ssize          capture sample size (bytes)
+       c_sync           capture synchronization type (async/adaptive)
+       c_mute_present   capture mute control enable
+       c_volume_present capture volume control enable
+       c_volume_min     capture volume control min value (in 1/256 dB)
+       c_volume_max     capture volume control max value (in 1/256 dB)
+       c_volume_res     capture volume control resolution (in 1/256 dB)
+       c_hs_bint        capture bInterval for HS/SS (1-4: fixed, 0: auto)
+       fb_max           maximum extra bandwidth in async mode
+       p_chmask         playback channel mask
+       p_srate          list of playback sampling rates (comma-separated)
+       p_ssize          playback sample size (bytes)
+       p_mute_present   playback mute control enable
+       p_volume_present playback volume control enable
+       p_volume_min     playback volume control min value (in 1/256 dB)
+       p_volume_max     playback volume control max value (in 1/256 dB)
+       p_volume_res     playback volume control resolution (in 1/256 dB)
+       p_hs_bint        playback bInterval for HS/SS (1-4: fixed, 0: auto)
+       req_number       the number of pre-allocated request for both capture
+                        and playback
+       function_name    name of the interface
+       c_terminal_type  code of the capture terminal type
+       p_terminal_type  code of the playback terminal type
+       ================ ====================================================
 
 The attributes have sane default values.
 
@@ -774,12 +774,12 @@  sends a stream of audio data to/from the host. In order to
 actually hear something at the device side, a command similar
 to this must be used at the device side::
 
-	$ arecord -f dat -t wav -D hw:2,0 | aplay -D hw:0,0 &
+       $ arecord -f dat -t wav -D hw:2,0 | aplay -D hw:0,0 &
 
 e.g.::
 
-	$ arecord -f dat -t wav -D hw:CARD=UAC2Gadget,DEV=0 | \
-	  aplay -D default:CARD=OdroidU3
+       $ arecord -f dat -t wav -D hw:CARD=UAC2Gadget,DEV=0 | \
+         aplay -D default:CARD=OdroidU3
 
 18. UVC function
 ================
@@ -792,30 +792,30 @@  Function-specific configfs interface
 The function name to use when creating the function directory is "uvc".
 The uvc function provides these attributes in its function directory:
 
-	=================== ================================================
-	streaming_interval  interval for polling endpoint for data transfers
-	streaming_maxburst  bMaxBurst for super speed companion descriptor
-	streaming_maxpacket maximum packet size this endpoint is capable of
-			    sending or receiving when this configuration is
-			    selected
-	function_name       name of the interface
-	=================== ================================================
+       =================== ================================================
+       streaming_interval  interval for polling endpoint for data transfers
+       streaming_maxburst  bMaxBurst for super speed companion descriptor
+       streaming_maxpacket maximum packet size this endpoint is capable of
+                           sending or receiving when this configuration is
+                           selected
+       function_name       name of the interface
+       =================== ================================================
 
 There are also "control" and "streaming" subdirectories, each of which contain
 a number of their subdirectories. There are some sane defaults provided, but
 the user must provide the following:
 
-	================== ====================================================
-	control header     create in control/header, link from control/class/fs
-			   and/or control/class/ss
-	streaming header   create in streaming/header, link from
-			   streaming/class/fs and/or streaming/class/hs and/or
-			   streaming/class/ss
-	format description create in streaming/mjpeg and/or
-			   streaming/uncompressed
-	frame description  create in streaming/mjpeg/<format> and/or in
-			   streaming/uncompressed/<format>
-	================== ====================================================
+       ================== ====================================================
+       control header     create in control/header, link from control/class/fs
+                          and/or control/class/ss
+       streaming header   create in streaming/header, link from
+                          streaming/class/fs and/or streaming/class/hs and/or
+                          streaming/class/ss
+       format description create in streaming/mjpeg and/or
+                          streaming/uncompressed
+       frame description  create in streaming/mjpeg/<format> and/or in
+                          streaming/uncompressed/<format>
+       ================== ====================================================
 
 Each frame description contains frame interval specification, and each
 such specification consists of a number of lines with an interval value
@@ -851,15 +851,15 @@  device: run the gadget, modprobe vivid::
   # uvc-gadget -u /dev/video<uvc video node #> -v /dev/video<vivid video node #>
 
 where uvc-gadget is this program:
-	http://git.ideasonboard.org/uvc-gadget.git
+       http://git.ideasonboard.org/uvc-gadget.git
 
 with these patches:
 
-	http://www.spinics.net/lists/linux-usb/msg99220.html
+       http://www.spinics.net/lists/linux-usb/msg99220.html
 
 host::
 
-	luvcview -f yuv
+       luvcview -f yuv
 
 19. PRINTER function
 ====================
@@ -872,10 +872,10 @@  Function-specific configfs interface
 The function name to use when creating the function directory is "printer".
 The printer function provides these attributes in its function directory:
 
-	==========	===========================================
-	pnp_string	Data to be passed to the host in pnp string
-	q_len		Number of requests per endpoint
-	==========	===========================================
+       ==========      ===========================================
+       pnp_string      Data to be passed to the host in pnp string
+       q_len           Number of requests per endpoint
+       ==========      ===========================================
 
 Testing the PRINTER function
 ----------------------------
@@ -884,7 +884,7 @@  The most basic testing:
 
 device: run the gadget::
 
-	# ls -l /devices/virtual/usb_printer_gadget/
+       # ls -l /devices/virtual/usb_printer_gadget/
 
 should show g_printer<number>.
 
@@ -898,19 +898,19 @@  host->device transmission:
 
 device::
 
-	# cat /dev/g_printer<number>
+       # cat /dev/g_printer<number>
 
 host::
 
-	# cat > /dev/usb/lp0
+       # cat > /dev/usb/lp0
 
 device->host transmission::
 
-	# cat > /dev/g_printer<number>
+       # cat > /dev/g_printer<number>
 
 host::
 
-	# cat /dev/usb/lp0
+       # cat /dev/usb/lp0
 
 More advanced testing can be done with the prn_example
 described in Documentation/usb/gadget_printer.rst.
@@ -929,27 +929,27 @@  Function-specific configfs interface
 The function name to use when creating the function directory is "uac1".
 The uac1 function provides these attributes in its function directory:
 
-	================ ====================================================
-	c_chmask         capture channel mask
-	c_srate          list of capture sampling rates (comma-separated)
-	c_ssize          capture sample size (bytes)
-	c_mute_present   capture mute control enable
-	c_volume_present capture volume control enable
-	c_volume_min     capture volume control min value (in 1/256 dB)
-	c_volume_max     capture volume control max value (in 1/256 dB)
-	c_volume_res     capture volume control resolution (in 1/256 dB)
-	p_chmask         playback channel mask
-	p_srate          list of playback sampling rates (comma-separated)
-	p_ssize          playback sample size (bytes)
-	p_mute_present   playback mute control enable
-	p_volume_present playback volume control enable
-	p_volume_min     playback volume control min value (in 1/256 dB)
-	p_volume_max     playback volume control max value (in 1/256 dB)
-	p_volume_res     playback volume control resolution (in 1/256 dB)
-	req_number       the number of pre-allocated requests for both capture
-	                 and playback
-	function_name    name of the interface
-	================ ====================================================
+       ================ ====================================================
+       c_chmask         capture channel mask
+       c_srate          list of capture sampling rates (comma-separated)
+       c_ssize          capture sample size (bytes)
+       c_mute_present   capture mute control enable
+       c_volume_present capture volume control enable
+       c_volume_min     capture volume control min value (in 1/256 dB)
+       c_volume_max     capture volume control max value (in 1/256 dB)
+       c_volume_res     capture volume control resolution (in 1/256 dB)
+       p_chmask         playback channel mask
+       p_srate          list of playback sampling rates (comma-separated)
+       p_ssize          playback sample size (bytes)
+       p_mute_present   playback mute control enable
+       p_volume_present playback volume control enable
+       p_volume_min     playback volume control min value (in 1/256 dB)
+       p_volume_max     playback volume control max value (in 1/256 dB)
+       p_volume_res     playback volume control resolution (in 1/256 dB)
+       req_number       the number of pre-allocated requests for both capture
+                        and playback
+       function_name    name of the interface
+       ================ ====================================================
 
 The attributes have sane default values.
 
@@ -964,12 +964,12 @@  sends a stream of audio data to/from the host. In order to
 actually hear something at the device side, a command similar
 to this must be used at the device side::
 
-	$ arecord -f dat -t wav -D hw:2,0 | aplay -D hw:0,0 &
+       $ arecord -f dat -t wav -D hw:2,0 | aplay -D hw:0,0 &
 
 e.g.::
 
-	$ arecord -f dat -t wav -D hw:CARD=UAC1Gadget,DEV=0 | \
-	  aplay -D default:CARD=OdroidU3
+       $ arecord -f dat -t wav -D hw:CARD=UAC1Gadget,DEV=0 | \
+         aplay -D default:CARD=OdroidU3
 
 
 21. MIDI2 function
@@ -988,49 +988,49 @@  The function name to use when creating the function directory is "midi2".
 The midi2 function provides these attributes in its function directory
 as the card top-level information:
 
-	=============	=================================================
-	process_ump	Bool flag to process UMP Stream messages (0 or 1)
-	static_block	Bool flag for static blocks (0 or 1)
-	iface_name	Optional interface name string
-	=============	=================================================
+       =============   =================================================
+       process_ump     Bool flag to process UMP Stream messages (0 or 1)
+       static_block    Bool flag for static blocks (0 or 1)
+       iface_name      Optional interface name string
+       =============   =================================================
 
 The directory contains a subdirectory "ep.0", and this provides the
 attributes for a UMP Endpoint (which is a pair of USB MIDI Endpoints):
 
-	=============	=================================================
-	protocol_caps	MIDI protocol capabilities;
-			1: MIDI 1.0, 2: MIDI 2.0, or 3: both protocols
-	protocol	Default MIDI protocol (either 1 or 2)
-	ep_name		UMP Endpoint name string
-	product_id	Product ID string
-	manufacturer	Manufacture ID number (24 bit)
-	family		Device family ID number (16 bit)
-	model		Device model ID number (16 bit)
-	sw_revision	Software revision (32 bit)
-	=============	=================================================
+       =============   =================================================
+       protocol_caps   MIDI protocol capabilities;
+                       1: MIDI 1.0, 2: MIDI 2.0, or 3: both protocols
+       protocol        Default MIDI protocol (either 1 or 2)
+       ep_name         UMP Endpoint name string
+       product_id      Product ID string
+       manufacturer    Manufacture ID number (24 bit)
+       family          Device family ID number (16 bit)
+       model           Device model ID number (16 bit)
+       sw_revision     Software revision (32 bit)
+       =============   =================================================
 
 Each Endpoint subdirectory contains a subdirectory "block.0", which
 represents the Function Block for Block 0 information.
 Its attributes are:
 
-	=================	===============================================
-	name			Function Block name string
-	direction		Direction of this FB
-				1: input, 2: output, or 3: bidirectional
-	first_group		The first UMP Group number (0-15)
-	num_groups		The number of groups in this FB (1-16)
-	midi1_first_group	The first UMP Group number for MIDI 1.0 (0-15)
-	midi1_num_groups	The number of groups for MIDI 1.0 (0-16)
-	ui_hint			UI-hint of this FB
-				0: unknown, 1: receiver, 2: sender, 3: both
-	midi_ci_verison		Supported MIDI-CI version number (8 bit)
-	is_midi1		Legacy MIDI 1.0 device (0-2)
-				0: MIDI 2.0 device,
-				1: MIDI 1.0 without restriction, or
-				2: MIDI 1.0 with low speed
-	sysex8_streams		Max number of SysEx8 streams (8 bit)
-	active			Bool flag for FB activity (0 or 1)
-	=================	===============================================
+       =================       ===============================================
+       name                    Function Block name string
+       direction               Direction of this FB
+                               1: input, 2: output, or 3: bidirectional
+       first_group             The first UMP Group number (0-15)
+       num_groups              The number of groups in this FB (1-16)
+       midi1_first_group       The first UMP Group number for MIDI 1.0 (0-15)
+       midi1_num_groups        The number of groups for MIDI 1.0 (0-16)
+       ui_hint                 UI-hint of this FB
+                               0: unknown, 1: receiver, 2: sender, 3: both
+       midi_ci_verison         Supported MIDI-CI version number (8 bit)
+       is_midi1                Legacy MIDI 1.0 device (0-2)
+                               0: MIDI 2.0 device,
+                               1: MIDI 1.0 without restriction, or
+                               2: MIDI 1.0 with low speed
+       sysex8_streams          Max number of SysEx8 streams (8 bit)
+       active                  Bool flag for FB activity (0 or 1)
+       =================       ===============================================
 
 If multiple Function Blocks are required, you can add more Function
 Blocks by creating subdirectories "block.<num>" with the corresponding