Fix OHCI ISO TD state never being written back.
authorJack Un <jack.un@gmail.com>
Sat, 9 Aug 2014 20:34:36 +0000 (23:34 +0300)
committerGerd Hoffmann <kraxel@redhat.com>
Fri, 29 Aug 2014 10:51:43 +0000 (12:51 +0200)
There appears to be typo in OHCI with isochronous transfers
resulting in isoch. transfer descriptor state never being written back.
The'put_words' function is in a OR statement hence it is never called.

Signed-off-by: Jack Un <jack.un@gmail.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/usb/hcd-ohci.c

index 13afdf5..cacf7b0 100644 (file)
@@ -619,8 +619,8 @@ static inline int ohci_put_td(OHCIState *ohci,
 static inline int ohci_put_iso_td(OHCIState *ohci,
                                   dma_addr_t addr, struct ohci_iso_td *td)
 {
-    return put_dwords(ohci, addr, (uint32_t *)td, 4 ||
-           put_words(ohci, addr + 16, td->offset, 8));
+    return put_dwords(ohci, addr, (uint32_t *)td, 4) ||
+           put_words(ohci, addr + 16, td->offset, 8);
 }
 
 static inline int ohci_put_hcca(OHCIState *ohci,