From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58003) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aDpHp-0003BD-4q for qemu-devel@nongnu.org; Tue, 29 Dec 2015 03:05:42 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aDpHm-0001da-P7 for qemu-devel@nongnu.org; Tue, 29 Dec 2015 03:05:41 -0500 Received: from smtp5-g21.free.fr ([2a01:e0c:1:1599::14]:55751) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aDpHm-0001dQ-J9 for qemu-devel@nongnu.org; Tue, 29 Dec 2015 03:05:38 -0500 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Tue, 29 Dec 2015 09:04:52 +0100 Message-Id: <1451376295-28834-16-git-send-email-hpoussin@reactos.org> In-Reply-To: <1451376295-28834-1-git-send-email-hpoussin@reactos.org> References: <1451376295-28834-1-git-send-email-hpoussin@reactos.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH 14/17] cs4231a: use IsaDma interface instead of global DMA_* functions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Gerd Hoffmann , "Michael S. Tsirkin" Signed-off-by: Herv=C3=A9 Poussineau --- hw/audio/cs4231a.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/hw/audio/cs4231a.c b/hw/audio/cs4231a.c index f96f561..d84f83f 100644 --- a/hw/audio/cs4231a.c +++ b/hw/audio/cs4231a.c @@ -69,6 +69,7 @@ typedef struct CSState { uint32_t irq; uint32_t dma; uint32_t port; + IsaDma *isa_dma; int shift; int dma_running; int audio_free; @@ -264,6 +265,7 @@ static void cs_reset_voices (CSState *s, uint32_t val= ) { int xtal; struct audsettings as; + IsaDmaClass *k =3D ISADMA_GET_CLASS(s->isa_dma); =20 #ifdef DEBUG_XLAW if (val =3D=3D 0 || val =3D=3D 32) @@ -327,7 +329,7 @@ static void cs_reset_voices (CSState *s, uint32_t val= ) =20 if (s->dregs[Interface_Configuration] & PEN) { if (!s->dma_running) { - DMA_hold_DREQ (s->dma); + k->hold_DREQ(s->isa_dma, s->dma); AUD_set_active_out (s->voice, 1); s->transferred =3D 0; } @@ -335,7 +337,7 @@ static void cs_reset_voices (CSState *s, uint32_t val= ) } else { if (s->dma_running) { - DMA_release_DREQ (s->dma); + k->release_DREQ(s->isa_dma, s->dma); AUD_set_active_out (s->voice, 0); } s->dma_running =3D 0; @@ -344,7 +346,7 @@ static void cs_reset_voices (CSState *s, uint32_t val= ) =20 error: if (s->dma_running) { - DMA_release_DREQ (s->dma); + k->release_DREQ(s->isa_dma, s->dma); AUD_set_active_out (s->voice, 0); } } @@ -452,7 +454,8 @@ static void cs_write (void *opaque, hwaddr addr, } else { if (s->dma_running) { - DMA_release_DREQ (s->dma); + IsaDmaClass *k =3D ISADMA_GET_CLASS(s->isa_dma); + k->release_DREQ(s->isa_dma, s->dma); AUD_set_active_out (s->voice, 0); s->dma_running =3D 0; } @@ -517,6 +520,7 @@ static int cs_write_audio (CSState *s, int nchan, int= dma_pos, { int temp, net; uint8_t tmpbuf[4096]; + IsaDmaClass *k =3D ISADMA_GET_CLASS(s->isa_dma); =20 temp =3D len; net =3D 0; @@ -531,7 +535,7 @@ static int cs_write_audio (CSState *s, int nchan, int= dma_pos, to_copy =3D sizeof (tmpbuf); } =20 - copied =3D DMA_read_memory (nchan, tmpbuf, dma_pos, to_copy); + copied =3D k->read_memory(s->isa_dma, nchan, tmpbuf, dma_pos, to= _copy); if (s->tab) { int i; int16_t linbuf[4096]; @@ -599,7 +603,8 @@ static int cs4231a_pre_load (void *opaque) CSState *s =3D opaque; =20 if (s->dma_running) { - DMA_release_DREQ (s->dma); + IsaDmaClass *k =3D ISADMA_GET_CLASS(s->isa_dma); + k->release_DREQ(s->isa_dma, s->dma); AUD_set_active_out (s->voice, 0); } s->dma_running =3D 0; @@ -655,13 +660,15 @@ static void cs4231a_realizefn (DeviceState *dev, Er= ror **errp) { ISADevice *d =3D ISA_DEVICE (dev); CSState *s =3D CS4231A (dev); + IsaDmaClass *k; =20 isa_init_irq (d, &s->pic, s->irq); + s->isa_dma =3D isa_get_dma(isa_bus_from_device(d), s->dma); + k =3D ISADMA_GET_CLASS(s->isa_dma); + k->register_channel(s->isa_dma, s->dma, cs_dma_read, s); =20 isa_register_ioport (d, &s->ioports, s->port); =20 - DMA_register_channel (s->dma, cs_dma_read, s); - AUD_register_card ("cs4231a", &s->card); } =20 --=20 2.1.4