mirror of https://github.com/ARMmbed/mbed-os.git
Fix for USB set_clear_feature_test for OSX
parent
f31eb68ec5
commit
49504d66ca
|
@ -491,11 +491,6 @@ def get_status_test(dev, log):
|
||||||
|
|
||||||
|
|
||||||
def set_clear_feature_test(dev, log):
|
def set_clear_feature_test(dev, log):
|
||||||
# The state of the Direction bit is ignored if the wLength field is zero,
|
|
||||||
# signifying there is no Data stage - see USB spec 9.3.1
|
|
||||||
# according to this SET/CLEAR_FEATURE ignores direction bits and should
|
|
||||||
# work for both CTRL_OUT and CTRL_IN
|
|
||||||
|
|
||||||
# Control OUT SET_FEATURE on endpoint - halt
|
# Control OUT SET_FEATURE on endpoint - halt
|
||||||
request_type = build_request_type(CTRL_OUT, CTRL_TYPE_STANDARD,
|
request_type = build_request_type(CTRL_OUT, CTRL_TYPE_STANDARD,
|
||||||
CTRL_RECIPIENT_ENDPOINT)
|
CTRL_RECIPIENT_ENDPOINT)
|
||||||
|
@ -544,55 +539,6 @@ def set_clear_feature_test(dev, log):
|
||||||
if(ret != 0):
|
if(ret != 0):
|
||||||
raise_unconditionally(lineno(), "endpoint unhalthalt failed")
|
raise_unconditionally(lineno(), "endpoint unhalthalt failed")
|
||||||
|
|
||||||
# retest for CTRL_IN
|
|
||||||
# Control IN SET_FEATURE on endpoint - halt
|
|
||||||
request_type = build_request_type(CTRL_IN, CTRL_TYPE_STANDARD,
|
|
||||||
CTRL_RECIPIENT_ENDPOINT)
|
|
||||||
request = REQUEST_SET_FEATURE
|
|
||||||
value = FEATURE_ENDPOINT_HALT
|
|
||||||
index = 1 # Endpoint index
|
|
||||||
length = 0 # Always 0 for this request
|
|
||||||
try:
|
|
||||||
dev.ctrl_transfer(request_type, request, value, index, length)
|
|
||||||
except usb.core.USBError:
|
|
||||||
raise_unconditionally(lineno(), "endpoint halt failed")
|
|
||||||
|
|
||||||
# check if endpoint was halted
|
|
||||||
request_type = build_request_type(CTRL_IN, CTRL_TYPE_STANDARD,
|
|
||||||
CTRL_RECIPIENT_ENDPOINT)
|
|
||||||
request = REQUEST_GET_STATUS
|
|
||||||
value = 0 # Always 0 for this request
|
|
||||||
index = 1 # Endpoint index
|
|
||||||
length = 2 # Always 2 for this request (size of return data)
|
|
||||||
ret = dev.ctrl_transfer(request_type, request, value, index, length)
|
|
||||||
ret = ret[0] | (ret[1] << 8)
|
|
||||||
if(ret != 1):
|
|
||||||
raise_unconditionally(lineno(), "endpoint was not halted")
|
|
||||||
|
|
||||||
# Control IN CLEAR_FEATURE on endpoint - unhalt
|
|
||||||
request_type = build_request_type(CTRL_IN, CTRL_TYPE_STANDARD,
|
|
||||||
CTRL_RECIPIENT_ENDPOINT)
|
|
||||||
request = REQUEST_CLEAR_FEATURE
|
|
||||||
value = FEATURE_ENDPOINT_HALT
|
|
||||||
index = 1 # Endpoint index
|
|
||||||
length = 0 # Always 0 for this request
|
|
||||||
try:
|
|
||||||
dev.ctrl_transfer(request_type, request, value, index, length)
|
|
||||||
except usb.core.USBError:
|
|
||||||
raise_unconditionally(lineno(), "endpoint was not unhalted")
|
|
||||||
|
|
||||||
# check if endpoint was unhalted
|
|
||||||
request_type = build_request_type(CTRL_IN, CTRL_TYPE_STANDARD,
|
|
||||||
CTRL_RECIPIENT_ENDPOINT)
|
|
||||||
request = REQUEST_GET_STATUS
|
|
||||||
value = 0 # Always 0 for this request
|
|
||||||
index = 1 # Endpoint index
|
|
||||||
length = 2 # Always 2 for this request (size of return data)
|
|
||||||
ret = dev.ctrl_transfer(request_type, request, value, index, length)
|
|
||||||
ret = ret[0]
|
|
||||||
if(ret != 0):
|
|
||||||
raise_unconditionally(lineno(), "endpoint unhalthalt failed")
|
|
||||||
|
|
||||||
|
|
||||||
def get_set_interface_test(dev, log):
|
def get_set_interface_test(dev, log):
|
||||||
# Control IN GET_INTERFACE
|
# Control IN GET_INTERFACE
|
||||||
|
|
Loading…
Reference in New Issue