[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 08/17] uhci: Add uhci_read_td() helper function
From: |
Hans de Goede |
Subject: |
[Qemu-devel] [PATCH 08/17] uhci: Add uhci_read_td() helper function |
Date: |
Wed, 24 Oct 2012 18:31:11 +0200 |
Signed-off-by: Hans de Goede <address@hidden>
---
hw/usb/hcd-uhci.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/hw/usb/hcd-uhci.c b/hw/usb/hcd-uhci.c
index 7589a5b..6d2db7f 100644
--- a/hw/usb/hcd-uhci.c
+++ b/hw/usb/hcd-uhci.c
@@ -693,6 +693,15 @@ static USBDevice *uhci_find_device(UHCIState *s, uint8_t
addr)
return NULL;
}
+static void uhci_read_td(UHCIState *s, UHCI_TD *td, uint32_t link)
+{
+ pci_dma_read(&s->dev, link & ~0xf, td, sizeof(*td));
+ le32_to_cpus(&td->link);
+ le32_to_cpus(&td->ctrl);
+ le32_to_cpus(&td->token);
+ le32_to_cpus(&td->buffer);
+}
+
static int uhci_complete_td(UHCIState *s, UHCI_TD *td, UHCIAsync *async,
uint32_t *int_mask)
{
int len = 0, max_len, err, ret;
@@ -941,11 +950,7 @@ static void uhci_fill_queue(UHCIState *s, UHCI_TD *td,
struct USBEndpoint *ep)
int ret;
while (is_valid(plink)) {
- pci_dma_read(&s->dev, plink & ~0xf, &ptd, sizeof(ptd));
- le32_to_cpus(&ptd.link);
- le32_to_cpus(&ptd.ctrl);
- le32_to_cpus(&ptd.token);
- le32_to_cpus(&ptd.buffer);
+ uhci_read_td(s, &ptd, plink);
if (!(ptd.ctrl & TD_CTRL_ACTIVE)) {
break;
}
@@ -1031,11 +1036,7 @@ static void uhci_process_frame(UHCIState *s)
}
/* TD */
- pci_dma_read(&s->dev, link & ~0xf, &td, sizeof(td));
- le32_to_cpus(&td.link);
- le32_to_cpus(&td.ctrl);
- le32_to_cpus(&td.token);
- le32_to_cpus(&td.buffer);
+ uhci_read_td(s, &td, link);
trace_usb_uhci_td_load(curr_qh & ~0xf, link & ~0xf, td.ctrl, td.token);
old_td_ctrl = td.ctrl;
--
1.7.12.1
- [Qemu-devel] uhci: Cleanups, fixes and improvements, Hans de Goede, 2012/10/24
- [Qemu-devel] [PATCH 01/17] usb: Enforce iso endpoints never returing USB_RET_ASYNC, Hans de Goede, 2012/10/24
- [Qemu-devel] [PATCH 02/17] uhci: No need to handle async completion of isoc packets, Hans de Goede, 2012/10/24
- [Qemu-devel] [PATCH 07/17] uhci: Rename UHCIAsync->td to UHCIAsync->td_addr, Hans de Goede, 2012/10/24
- [Qemu-devel] [PATCH 06/17] uhci: Move emptying of the queue's asyncs' queue to uhci_queue_free, Hans de Goede, 2012/10/24
- [Qemu-devel] [PATCH 04/17] uhci: Don't retry on error, Hans de Goede, 2012/10/24
- [Qemu-devel] [PATCH 09/17] uhci: Make uhci_fill_queue() actually operate on an UHCIQueue, Hans de Goede, 2012/10/24
- [Qemu-devel] [PATCH 05/17] uhci: Drop unnecessary forward declaration of some static functions, Hans de Goede, 2012/10/24
- [Qemu-devel] [PATCH 08/17] uhci: Add uhci_read_td() helper function,
Hans de Goede <=
- [Qemu-devel] [PATCH 03/17] uhci: cleanup: Add an unlink call to uhci_async_cancel(), Hans de Goede, 2012/10/24
- [Qemu-devel] [PATCH 11/17] uhci: Immediately free queues on device disconnect, Hans de Goede, 2012/10/24
- [Qemu-devel] [PATCH 13/17] uhci: Detect guest td re-use, Hans de Goede, 2012/10/24
- [Qemu-devel] [PATCH 12/17] uhci: Verify queue has not been changed by guest, Hans de Goede, 2012/10/24
- [Qemu-devel] [PATCH 10/17] uhci: Store ep in UHCIQueue, Hans de Goede, 2012/10/24
- [Qemu-devel] [PATCH 14/17] uhci: When the guest marks a pending td non-active, cancel the queue, Hans de Goede, 2012/10/24
- [Qemu-devel] [PATCH 17/17] uhci: Use only one queue for ctrl endpoints, Hans de Goede, 2012/10/24
- [Qemu-devel] [PATCH 16/17] uhci: Retry to fill the queue while waiting for td completion, Hans de Goede, 2012/10/24
- [Qemu-devel] [PATCH 15/17] uhci: Always mark a queue valid when we encounter it, Hans de Goede, 2012/10/24
- Re: [Qemu-devel] uhci: Cleanups, fixes and improvements, Gerd Hoffmann, 2012/10/25