2024-02-11 10:15:35

by Shresth Prasad

[permalink] [raw]
Subject: [PATCH] Fix malformed table error in gadget-testing.rst

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 <[email protected]>
---
Documentation/usb/gadget-testing.rst | 554 +++++++++++++--------------
1 file changed, 277 insertions(+), 277 deletions(-)

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
--
2.43.0



2024-02-11 10:54:52

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] Fix malformed table error in gadget-testing.rst

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

2024-02-11 12:55:42

by Shresth Prasad

[permalink] [raw]
Subject: Re: [PATCH] Fix malformed table error in gadget-testing.rst

I see, sorry about that. I will try some other way to fix the error.

Also, as mentioned in this thread: https://lore.kernel.org/all/[email protected]/ has the patch already been applied, fixing the issue?

Regards,
Shresth

2024-02-11 16:06:42

by Shresth Prasad

[permalink] [raw]
Subject: Re: [PATCH] Fix malformed table error in gadget-testing.rst

My bad, I should have checked beforehand. Thank you for your help.

Regards,
Shresth

2024-02-11 20:58:20

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] Fix malformed table error in gadget-testing.rst

On Sun, Feb 11, 2024 at 06:24:24PM +0530, Shresth Prasad wrote:
> I see, sorry about that. I will try some other way to fix the error.

What error, sorry I see no context here (remember, some of us get 1000+
emails a day to do something with, context is key...)

> Also, as mentioned in this thread: https://lore.kernel.org/all/[email protected]/ has the patch already been applied, fixing the issue?

What issue? Always look in linux-next to see what has been accepted by
maintainers as that tree merges all of them together daily.

thanks,

greg k-h

2024-02-12 05:49:17

by Shresth Prasad

[permalink] [raw]
Subject: Re: [PATCH] Fix malformed table error in gadget-testing.rst

> What error, sorry I see no context here (remember, > some of us get 1000+
> emails a day to do something with, context is key... )
I see, I'll keep that in mind. There was a warning being thrown out about a malformed table in gadget-testing.rst, which I foolishly thought I could fix by replacing all the tabs with spaces.

The thread mentioned previously attributed this warning to the table begin/end line segments being too short for the word "max_segment_size". I hadn't noticed that it had already been merged as I was only looking at the mainline kernel tree.

Regards,
Shresth

2024-02-12 07:21:22

by Ricardo B. Marliere

[permalink] [raw]
Subject: Re: [PATCH] Fix malformed table error in gadget-testing.rst

Hi Shresth,

On 11 Feb 18:24, Shresth Prasad wrote:
> I see, sorry about that. I will try some other way to fix the error.
>
> Also, as mentioned in this thread: https://lore.kernel.org/all/[email protected]/ has the patch already been applied, fixing the issue?

Yes, that seems to be the case. In the future, make sure to split your
patches into individual "logical" changes. In this case you would have
one patch to fix the warnings and another to change tabs to space (even
though this should not be done, as you know now).

Refer to https://www.kernel.org/doc/html/latest/process/submitting-patches.html

Best regards,
- Ricardo.



>
> Regards,
> Shresth
>