[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 1/7] usb/hcd-xhci: Make dma read/writes hooks pci free
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v4 1/7] usb/hcd-xhci: Make dma read/writes hooks pci free |
Date: |
Tue, 8 Sep 2020 12:30:17 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 |
>> On 8/28/20 9:19 PM, Sai Pavan Boddu wrote:
>>> This patch starts making the hcd-xhci.c pci free, as part of this
>>> restructuring dma read/writes are handled without passing pci object.
>>>
>>> Signed-off-by: Sai Pavan Boddu <sai.pavan.boddu@xilinx.com>
>>> ---
>>> hw/usb/hcd-xhci.c | 24 +++++++++++------------- hw/usb/hcd-xhci.h |
>>> 3 +++
>>> 2 files changed, 14 insertions(+), 13 deletions(-)
>>>
[...]
>>> --- a/hw/usb/hcd-xhci.h
>>> +++ b/hw/usb/hcd-xhci.h
>>> @@ -22,6 +22,8 @@
>>> #ifndef HW_USB_HCD_XHCI_H
>>> #define HW_USB_HCD_XHCI_H
>>>
>>> +#include "sysemu/dma.h"
>>
>> AddressSpace is forward-declared in "qemu/typedefs.h", so no need to
>> include it here (yes in the sources including hcd-xhci.h).
> [Sai Pavan Boddu] Yes you are right!, but without this " dma_addr_t " is
> undefined.
> At this point of the patch, hcd-xhci.h is compiled along with pci.h which
> would provide 'dma_addr_t', but when we strip the pci wrapper around hcd-xhci
> we would miss it. Let me know, if its good to add later in the patch series
> when the split happens.
OK :( I'd prefer to only include "sysemu/dma.h" in hw/usb/hcd-xhci.c.
Cc'ing David who added dma_addr_t in commit e5332e6334f
("iommu: Introduce IOMMU emulation infrastructure"), it
might be simpler to move its declaration to "qemu/typedefs.h"
too.
So no change needed for this patch.
>
> Regards,
> Sai Pavan
>>
>> With that fixed:
>> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>>
>>> +
>>> #define TYPE_XHCI "base-xhci"
>>> #define TYPE_NEC_XHCI "nec-usb-xhci"
>>> #define TYPE_QEMU_XHCI "qemu-xhci"
>>> @@ -189,6 +191,7 @@ struct XHCIState {
>>>
>>> USBBus bus;
>>> MemoryRegion mem;
>>> + AddressSpace *as;
>>> MemoryRegion mem_cap;
>>> MemoryRegion mem_oper;
>>> MemoryRegion mem_runtime;
>>>
>