# List of Servo v4 with known problems affecting USB3-to-DUT.
#
# Format: One Servo v4 serial number per line.  Blank lines and lines starting
# with # (pound sign) are ignored.
#
# Do NOT list Servos in Google's possession here.  Use the private overlay
# package for that.
#
# When a Servo is listed in multiple dut_usb3.{no,yes} files, the highest file
# in this list wins:
#
#   /etc/servos/dut_usb3.no
#   /etc/servos/dut_usb3.yes
#   /usr/share/servos/dut_usb3.no.*
#   /usr/share/servos/dut_usb3.yes.*


# TODO(b/163418494): Consider listing affected Servos that were distributed to Partners.
