USB_CLR_FEATURE(9F)     Kernel Functions for Drivers     USB_CLR_FEATURE(9F)
NAME
       usb_clr_feature - Clear feature of USB device, interface or endpoint
SYNOPSIS
       #include <sys/usb/usba.h>       
int usb_clr_feature(
dev_info_t *dip,            
uint_t request_type, 
uint_t feature,            
uint_t which, 
usb_flags_t flags,            
void (*callback) (usb_pipe_handle_t 
pipe_handle,            
usb_opaque_t callback_arg, 
int rval, 
usb_cb_flags_t flags),            
usb_opaque_t callback_arg);
INTERFACE LEVEL
       illumos DDI specific (illumos DDI)
PARAMETERS
       dip                       Pointer to the device's dev_info structure.       
pipe_handle                       Pipe handle to device, device interface or endpoint.       
request_type                       bmRequestType to be used.  One of the following:
                       USB_DEV_REQ_RCPT_DEV - Clear feature on device.
                       USB_DEV_REQ_RCPT_IF - Clear feature on interface.
                       USB_DEV_REQ_RCPT_EP - Clear feature on endpoint.       
feature                       Feature to be cleared. Can be any device-defined
                       device-, interface-, or endpoint-specific feature,
                       including the following which are defined in the 
USB                       2.0 specification:
                       USB_EP_HALT - Clear a HALT on an endpoint.
                       USB_DEV_REMOTE_WAKEUP - Clear REMOTE_WAKEUP on a
                       device.
                       USB_DEV_TEST_MODE - Clear TEST_MODE on a device.       
which                Device, interface or endpoint on which to  clear the
                feature. One of:
                  Interface number, for interfaces.
                  Endpoint number, for endpoints.
                  0 for devices.       
flags                       USB_FLAGS_SLEEP is the only flag recognized. Wait for
                       completion and do not call callback.       
callback                       Callback handler to notify of asynchronous
                       completion.       
callback_arg                       Second argument passed to callback handler.
DESCRIPTION
       The 
usb_clr_feature() function clears a specific feature of a device,
       interface or endpoint. This function always blocks and waits for
       resources if not available, regardless of the flags argument.
       This call blocks for completion if USB_FLAGS_SLEEP is set in flags.
       It returns immediately and calls the callback upon completion if
       USB_FLAGS_SLEEP is not set.
RETURN VALUES
       USB_SUCCESS                              Feature was successfully cleared.       
USB_INVALID_ARGS                              dip argument is NULL.       
USB_INVALID_PIPE                              pipe_handle argument is NULL       
USB_INVALID_CONTEXT                              Called from interrupt context with
                              USB_FLAGS_SLEEP flag set.       
USB_FAILURE                              Clearing of feature was unsuccessful.
CONTEXT
       May always be called from user or kernel context. May be called from
       interrupt context only if USB_FLAGS_SLEEP is not set in flags.
       If the USB_CB_ASYNC_REQ_FAILED bit is clear in usb_cb_flags_t, the
       callback, if supplied, can block because it is executing in  kernel
       context. Otherwise the callback cannot block. Please see       
usb_callback_flags(9S) for more information on callbacks.
EXAMPLES
         if (usb_clr_feature(dip, pipe_handle, USB_DEV_REQ_RCPT_EP,
                USB_EP_HALT, data_endpoint_num, 0) == USB_FAILURE) {
                    cmn_err (CE_WARN,
                        "%s%d: Error clearing halt condition on data endpoint %d.",
                        ddi_driver_name(dip), ddi_get_instance(dip),
                        data_endpoint_num);
            }
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-------------------+
       |  ATTRIBUTE TYPE    |  ATTRIBUTE VALUE  |
       +--------------------+-------------------+
       |Architecture        | PCI-based systems |
       +--------------------+-------------------+
       |Interface stability | Committed         |
       +--------------------+-------------------+
SEE ALSO
       attributes(7), 
usb_get_status(9F), 
usb_pipe_get_state(9F),       
usb_pipe_reset(9F), 
usb_callback_flags(9S)                              February 9, 2004           USB_CLR_FEATURE(9F)