usb: usbtest: support container id descriptor test
In Test 9 of usbtest module, it is used for performing chapter 9 tests N times. Container ID descriptor is one of the generic device-level capbility descriptors which added in section 9.6.2.3 of USB 3.0 spec. This patch adds to support getting Container ID descriptor test scenario for USB 3.0. Signed-off-by: Huang Rui <ray.huang@amd.com> Acked-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
b8fef79518
commit
8e29217f93
1 changed files with 27 additions and 0 deletions
|
@ -657,6 +657,25 @@ static int is_good_ss_cap(struct usbtest_dev *tdev, u8 *buf)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int is_good_con_id(struct usbtest_dev *tdev, u8 *buf)
|
||||||
|
{
|
||||||
|
struct usb_ss_container_id_descriptor *con_id;
|
||||||
|
|
||||||
|
con_id = (struct usb_ss_container_id_descriptor *) buf;
|
||||||
|
|
||||||
|
if (con_id->bLength != USB_DT_USB_SS_CONTN_ID_SIZE) {
|
||||||
|
ERROR(tdev, "bogus container id descriptor length\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (con_id->bReserved) { /* reserved == 0 */
|
||||||
|
ERROR(tdev, "reserved bits set\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* sanity test for standard requests working with usb_control_mesg() and some
|
/* sanity test for standard requests working with usb_control_mesg() and some
|
||||||
* of the utility functions which use it.
|
* of the utility functions which use it.
|
||||||
*
|
*
|
||||||
|
@ -810,6 +829,14 @@ static int ch9_postconfig(struct usbtest_dev *dev)
|
||||||
return -EDOM;
|
return -EDOM;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case CONTAINER_ID_TYPE:
|
||||||
|
if (buf + USB_DT_USB_SS_CONTN_ID_SIZE >
|
||||||
|
dev->buf + total ||
|
||||||
|
!is_good_con_id(dev, buf)) {
|
||||||
|
dev_err(&iface->dev, "bogus container id descriptor\n");
|
||||||
|
return -EDOM;
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue