usb gadget 端点halt的产生

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/litao31415/article/details/79910734

发现某些U盘不是所有的scsi指令集都支持,对于不支持的指令,U盘会产生一个端点halt(stall),usb host会clean halt标志。

譬如如下的ReadFormatCapacity指令


gadget要主动产生stall的话可调用gadget.h里面的接口:

static inline int gadget_is_stall_supported(struct usb_gadget *g)
{
return !g->quirk_stall_not_supp;

}

static inline int usb_ep_set_halt(struct usb_ep *ep)

{
return ep->ops->set_halt(ep, 1);

}

static inline int usb_ep_clear_halt(struct usb_ep *ep)

{
return ep->ops->set_halt(ep, 0);

}

参考https://bbs.csdn.net/topics/330091625

以及《USB Mass Storage Class bulk_10.pdf》

猜你喜欢

转载自blog.csdn.net/litao31415/article/details/79910734