From d7f09d11781151f964c342f6be700a530b4eb888 Mon Sep 17 00:00:00 2001 From: svo Date: Thu, 7 Jan 2016 19:35:42 +0300 Subject: [PATCH] usb: Return configuration = 0 in Addressed state. This is as per USB 2.0 chapter 9 specifications, and enables passing of USB-IF Chapter 9 tests. --- lib/usb/usb_standard.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/usb/usb_standard.c b/lib/usb/usb_standard.c index 02cef621..5e851625 100644 --- a/lib/usb/usb_standard.c +++ b/lib/usb/usb_standard.c @@ -312,9 +312,13 @@ static int usb_standard_get_configuration(usbd_device *usbd_dev, if (*len > 1) { *len = 1; } - const struct usb_config_descriptor *cfg = - &usbd_dev->config[usbd_dev->current_config - 1]; - (*buf)[0] = cfg->bConfigurationValue; + if (usbd_dev->current_config > 0) { + const struct usb_config_descriptor *cfg = + &usbd_dev->config[usbd_dev->current_config - 1]; + (*buf)[0] = cfg->bConfigurationValue; + } else { + (*buf)[0] = 0; + } return 1; }