TX1 USB UVC gadget troubles

I’m trying to configure a TX1 to act as a webcam via the Linux USB gadget framework. (Jetson 28.latest, kernel 4.4). I made the obvious additions to /opt/nvidia/l4t-usb-device-mode/nv-l4t-usb-device-mode.sh for enabling the uvc webcam gadget, but am hitting the following problem (excerpt from dmesg):

[ 27.421305] configfs-gadget gadget: uvc_function_bind
[ 27.428859] configfs-gadget gadget: Unable to allocate streaming EP
[ 27.435150] configfs-gadget 700d0000.xudc: failed to start l4t: -22

Searching the message boards has left me a bit confused. It seems the OTG port on the TX1 should support USB2.0 speeds and functionality. Apparently there’s an XUDC controller which does not support streaming, but if I’m reading the posts correctly there’s another controller for the OTG which does?

Here are the additions I made to the script:

if [ ${enable_uvc} -eq 1 ]; then
        cfg_str="${cfg_str}+UVC"
        func=functions/uvc.usb0
        mkdir -p "${func}"
        ln -sf "${func}" "${cfg}"
fi

mkdir -p functions/uvc.usb0/control/header/h
cd functions/uvc.usb0/control/
ln -s header/h class/s
cd $GADGET_CONFIGFS_ROOT
mkdir -p functions/uvc.usb0/streaming/uncompressed/u/360p
cat <<EOF > functions/uvc.usb0/streaming/uncompressed/u/360p/dwFrameInterval
666666
1000000
5000000
EOF

mkdir -p functions/uvc.usb0/streaming/header/h
cd functions/uvc.usb0/streaming/header/h
ln -s ../../uncompressed/u
cd $GADGET_CONFIGFS_ROOT
pwd
cd functions/uvc.usb0/streaming/class/ss
ln -s ../../header/h
cd ../../../../../
ln -sf "${func}" "${cfg}"
fi

Questions:

  • Is isochronous mode supported on the TX1's OTG port?
  • Is there a different way I need to configure the system to get past this error?
  • Are there other logs / information I can supply to make this easier to debug?

Thank you.

The OTG port does not support isochronous mode when in device mode.