Message ID | 1508947167-5304-4-git-send-email-mark.cave-ayland@ilande.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Mark, On 10/25/2017 12:59 PM, Mark Cave-Ayland wrote: > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > Reviewed-by: Artyom Tarasenko <atar4qemu@gmail.com> > --- > hw/dma/sparc32_dma.c | 34 ---------------------------------- > include/hw/sparc/sparc32_dma.h | 37 +++++++++++++++++++++++++++++++++++++ > 2 files changed, 37 insertions(+), 34 deletions(-) > > diff --git a/hw/dma/sparc32_dma.c b/hw/dma/sparc32_dma.c > index e4ff4a8..ae8fa06 100644 > --- a/hw/dma/sparc32_dma.c > +++ b/hw/dma/sparc32_dma.c > @@ -40,7 +40,6 @@ > * http://www.ibiblio.org/pub/historic-linux/early-ports/Sparc/NCR/DMA2.txt > */ > > -#define DMA_REGS 4 > #define DMA_SIZE (4 * sizeof(uint32_t)) Since you move this out, can you replace with: #define DMA_SIZE (DMA_REGS * sizeof(uint32_t)) > /* We need the mask, because one instance of the device is not page > aligned (ledma, start address 0x0010) */ > @@ -61,39 +60,6 @@ > /* XXX SCSI and ethernet should have different read-only bit masks */ > #define DMA_CSR_RO_MASK 0xfe000007 > > -#define TYPE_SPARC32_DMA_DEVICE "sparc32-dma-device" > -#define SPARC32_DMA_DEVICE(obj) OBJECT_CHECK(DMADeviceState, (obj), \ > - TYPE_SPARC32_DMA_DEVICE) > - > -typedef struct DMADeviceState DMADeviceState; > - > -struct DMADeviceState { > - SysBusDevice parent_obj; > - > - MemoryRegion iomem; > - uint32_t dmaregs[DMA_REGS]; > - qemu_irq irq; > - void *iommu; > - qemu_irq gpio[2]; OK to move until here to sparc32_dma.h However I don't like having now network/scsi fields mixed in sparc32_dma.h which is supposed to be device agnostic IMHO. So I'd rather keep this part here (from here ... > - uint32_t is_ledma; > -}; > - > -#define TYPE_SPARC32_ESPDMA_DEVICE "sparc32-espdma" > -#define SPARC32_ESPDMA_DEVICE(obj) OBJECT_CHECK(ESPDMADeviceState, (obj), \ > - TYPE_SPARC32_ESPDMA_DEVICE) > - > -typedef struct ESPDMADeviceState { > - DMADeviceState parent_obj; > -} ESPDMADeviceState; > - > -#define TYPE_SPARC32_LEDMA_DEVICE "sparc32-ledma" > -#define SPARC32_LEDMA_DEVICE(obj) OBJECT_CHECK(LEDMADeviceState, (obj), \ > - TYPE_SPARC32_LEDMA_DEVICE) > - > -typedef struct LEDMADeviceState { > - DMADeviceState parent_obj; > -} LEDMADeviceState; ... until here) Or move it to hw/sparc/sun4m.c (or maybe clever in "hw/sparc/sun4m_dma.h"). > - > enum { > GPIO_RESET = 0, > GPIO_DMA, > diff --git a/include/hw/sparc/sparc32_dma.h b/include/hw/sparc/sparc32_dma.h > index 9497b13..df7491d 100644 > --- a/include/hw/sparc/sparc32_dma.h > +++ b/include/hw/sparc/sparc32_dma.h > @@ -1,6 +1,43 @@ > #ifndef SPARC32_DMA_H > #define SPARC32_DMA_H > > +#include "hw/sysbus.h" > + > +#define DMA_REGS 4 > + > +#define TYPE_SPARC32_DMA_DEVICE "sparc32-dma-device" > +#define SPARC32_DMA_DEVICE(obj) OBJECT_CHECK(DMADeviceState, (obj), \ > + TYPE_SPARC32_DMA_DEVICE) > + > +typedef struct DMADeviceState DMADeviceState; > + > +struct DMADeviceState { > + SysBusDevice parent_obj; > + > + MemoryRegion iomem; > + uint32_t dmaregs[DMA_REGS]; > + qemu_irq irq; > + void *iommu; > + qemu_irq gpio[2]; }; [no ... > + uint32_t is_ledma; > +}; > + > +#define TYPE_SPARC32_ESPDMA_DEVICE "sparc32-espdma" > +#define SPARC32_ESPDMA_DEVICE(obj) OBJECT_CHECK(ESPDMADeviceState, (obj), \ > + TYPE_SPARC32_ESPDMA_DEVICE) > + > +typedef struct ESPDMADeviceState { > + DMADeviceState parent_obj; > +} ESPDMADeviceState; > + > +#define TYPE_SPARC32_LEDMA_DEVICE "sparc32-ledma" > +#define SPARC32_LEDMA_DEVICE(obj) OBJECT_CHECK(LEDMADeviceState, (obj), \ > + TYPE_SPARC32_LEDMA_DEVICE) > + > +typedef struct LEDMADeviceState { > + DMADeviceState parent_obj; > +} LEDMADeviceState; > + ... no] > /* sparc32_dma.c */ > void ledma_memory_read(void *opaque, hwaddr addr, > uint8_t *buf, int len, int do_bswap); > What do you think? Regards, Phil.
> diff --git a/hw/dma/sparc32_dma.c b/hw/dma/sparc32_dma.c > index e4ff4a8..ae8fa06 100644 > --- a/hw/dma/sparc32_dma.c > +++ b/hw/dma/sparc32_dma.c > @@ -40,7 +40,6 @@ > * http://www.ibiblio.org/pub/historic-linux/early-ports/Sparc/NCR/DMA2.txt > */ > > -#define DMA_REGS 4 > #define DMA_SIZE (4 * sizeof(uint32_t)) > /* We need the mask, because one instance of the device is not page > aligned (ledma, start address 0x0010) */ #define DMA_MAX_REG_OFFSET (2 * DMA_SIZE - 1) ^ You can also remove this > @@ -61,39 +60,6 @@ > /* XXX SCSI and ethernet should have different read-only bit masks */ > #define DMA_CSR_RO_MASK 0xfe000007
diff --git a/hw/dma/sparc32_dma.c b/hw/dma/sparc32_dma.c index e4ff4a8..ae8fa06 100644 --- a/hw/dma/sparc32_dma.c +++ b/hw/dma/sparc32_dma.c @@ -40,7 +40,6 @@ * http://www.ibiblio.org/pub/historic-linux/early-ports/Sparc/NCR/DMA2.txt */ -#define DMA_REGS 4 #define DMA_SIZE (4 * sizeof(uint32_t)) /* We need the mask, because one instance of the device is not page aligned (ledma, start address 0x0010) */ @@ -61,39 +60,6 @@ /* XXX SCSI and ethernet should have different read-only bit masks */ #define DMA_CSR_RO_MASK 0xfe000007 -#define TYPE_SPARC32_DMA_DEVICE "sparc32-dma-device" -#define SPARC32_DMA_DEVICE(obj) OBJECT_CHECK(DMADeviceState, (obj), \ - TYPE_SPARC32_DMA_DEVICE) - -typedef struct DMADeviceState DMADeviceState; - -struct DMADeviceState { - SysBusDevice parent_obj; - - MemoryRegion iomem; - uint32_t dmaregs[DMA_REGS]; - qemu_irq irq; - void *iommu; - qemu_irq gpio[2]; - uint32_t is_ledma; -}; - -#define TYPE_SPARC32_ESPDMA_DEVICE "sparc32-espdma" -#define SPARC32_ESPDMA_DEVICE(obj) OBJECT_CHECK(ESPDMADeviceState, (obj), \ - TYPE_SPARC32_ESPDMA_DEVICE) - -typedef struct ESPDMADeviceState { - DMADeviceState parent_obj; -} ESPDMADeviceState; - -#define TYPE_SPARC32_LEDMA_DEVICE "sparc32-ledma" -#define SPARC32_LEDMA_DEVICE(obj) OBJECT_CHECK(LEDMADeviceState, (obj), \ - TYPE_SPARC32_LEDMA_DEVICE) - -typedef struct LEDMADeviceState { - DMADeviceState parent_obj; -} LEDMADeviceState; - enum { GPIO_RESET = 0, GPIO_DMA, diff --git a/include/hw/sparc/sparc32_dma.h b/include/hw/sparc/sparc32_dma.h index 9497b13..df7491d 100644 --- a/include/hw/sparc/sparc32_dma.h +++ b/include/hw/sparc/sparc32_dma.h @@ -1,6 +1,43 @@ #ifndef SPARC32_DMA_H #define SPARC32_DMA_H +#include "hw/sysbus.h" + +#define DMA_REGS 4 + +#define TYPE_SPARC32_DMA_DEVICE "sparc32-dma-device" +#define SPARC32_DMA_DEVICE(obj) OBJECT_CHECK(DMADeviceState, (obj), \ + TYPE_SPARC32_DMA_DEVICE) + +typedef struct DMADeviceState DMADeviceState; + +struct DMADeviceState { + SysBusDevice parent_obj; + + MemoryRegion iomem; + uint32_t dmaregs[DMA_REGS]; + qemu_irq irq; + void *iommu; + qemu_irq gpio[2]; + uint32_t is_ledma; +}; + +#define TYPE_SPARC32_ESPDMA_DEVICE "sparc32-espdma" +#define SPARC32_ESPDMA_DEVICE(obj) OBJECT_CHECK(ESPDMADeviceState, (obj), \ + TYPE_SPARC32_ESPDMA_DEVICE) + +typedef struct ESPDMADeviceState { + DMADeviceState parent_obj; +} ESPDMADeviceState; + +#define TYPE_SPARC32_LEDMA_DEVICE "sparc32-ledma" +#define SPARC32_LEDMA_DEVICE(obj) OBJECT_CHECK(LEDMADeviceState, (obj), \ + TYPE_SPARC32_LEDMA_DEVICE) + +typedef struct LEDMADeviceState { + DMADeviceState parent_obj; +} LEDMADeviceState; + /* sparc32_dma.c */ void ledma_memory_read(void *opaque, hwaddr addr, uint8_t *buf, int len, int do_bswap);