usb-epfifo: fix DATA0/DATA1 swaps for Tx
We were sometimes sending DATA0 instead of DATA1. Fix that. Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
parent
7d091a72b9
commit
eaa0d63ccb
@ -127,8 +127,8 @@ int usb_send(struct usb_device *dev, int epnum, const void *data, int total_coun
|
|||||||
int usb_wait_for_send_done(struct usb_device *dev) {
|
int usb_wait_for_send_done(struct usb_device *dev) {
|
||||||
while (current_data && current_length)
|
while (current_data && current_length)
|
||||||
usb_poll(dev);
|
usb_poll(dev);
|
||||||
while (usb_ep_0_in_respond_read() == EPF_ACK)
|
while ((usb_ep_0_in_dtb_read() & 1) == 1)
|
||||||
;
|
usb_poll(dev);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -185,6 +185,8 @@ int usb_irq_happened(void) {
|
|||||||
int usb_ack(struct usb_device *dev, int epnum) {
|
int usb_ack(struct usb_device *dev, int epnum) {
|
||||||
(void)dev;
|
(void)dev;
|
||||||
(void)epnum;
|
(void)epnum;
|
||||||
|
usb_ep_0_in_dtb_write(1);
|
||||||
|
usb_ep_0_out_dtb_write(1);
|
||||||
usb_ep_0_out_respond_write(EPF_ACK);
|
usb_ep_0_out_respond_write(EPF_ACK);
|
||||||
usb_ep_0_in_respond_write(EPF_ACK);
|
usb_ep_0_in_respond_write(EPF_ACK);
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user