Re: [PATCH 4/5] hw: Remove Marvell 88W8618 devices
Philippe Mathieu-Daudé <[email protected]>
| Newsgroups | org.nongnu.qemu-arm,org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
On 19/8/26 20:54, Peter Maydell wrote: > The mv88w8618 ethernet and audio devices were used only by the > now-removed musicpal machine, so can also be deleted. > > Signed-off-by: Peter Maydell <[email protected]> > --- > hw/arm/Kconfig | 3 - > hw/audio/marvell_88w8618.c | 315 -------------------------- > hw/audio/meson.build | 1 - > hw/net/meson.build | 1 - > hw/net/mv88w8618_eth.c | 403 --------------------------------- > include/hw/net/mv88w8618_eth.h | 13 -- > 6 files changed, 736 deletions(-) > delete mode 100644 hw/audio/marvell_88w8618.c > delete mode 100644 hw/net/mv88w8618_eth.c > delete mode 100644 include/hw/net/mv88w8618_eth.h > -static void mv88w8618_audio_callback(void *opaque, int free_out, int free_in) > -{ > - mv88w8618_audio_state *s = opaque; > - int16_t *codec_buffer; > - QEMU_UNINITIALIZED int8_t buf[4096]; > - int8_t *mem_buffer; > - int pos, block_size; > - > - if (!(s->playback_mode & MP_AUDIO_PLAYBACK_EN)) { > - return; > - } > - if (s->playback_mode & MP_AUDIO_16BIT_SAMPLE) { > - free_out <<= 1; > - } > - if (!(s->playback_mode & MP_AUDIO_MONO)) { > - free_out <<= 1; > - } > - block_size = s->threshold / 2; > - if (free_out - s->last_free < block_size) { > - return; > - } > - if (block_size > 4096) { > - return; > - } > - physical_memory_read(s->target_buffer + s->play_pos, buf, block_size); > - mem_buffer = buf; > - if (s->playback_mode & MP_AUDIO_16BIT_SAMPLE) { > - if (s->playback_mode & MP_AUDIO_MONO) { > - codec_buffer = wm8750_dac_buffer(s->wm, block_size >> 1); > - for (pos = 0; pos < block_size; pos += 2) { > - *codec_buffer++ = *(int16_t *)mem_buffer; > - *codec_buffer++ = *(int16_t *)mem_buffer; There seems to be an endianness bug here. > - mem_buffer += 2; > - } > - } else { > - memcpy(wm8750_dac_buffer(s->wm, block_size >> 2), > - (uint32_t *)mem_buffer, block_size); > - } > - } else { > - if (s->playback_mode & MP_AUDIO_MONO) { > - codec_buffer = wm8750_dac_buffer(s->wm, block_size); > - for (pos = 0; pos < block_size; pos++) { > - *codec_buffer++ = cpu_to_le16(256 * *mem_buffer); > - *codec_buffer++ = cpu_to_le16(256 * *mem_buffer++); > - } > - } else { > - codec_buffer = wm8750_dac_buffer(s->wm, block_size >> 1); > - for (pos = 0; pos < block_size; pos += 2) { > - *codec_buffer++ = cpu_to_le16(256 * *mem_buffer++); > - *codec_buffer++ = cpu_to_le16(256 * *mem_buffer++); > - } > - } > - } > - wm8750_dac_commit(s->wm); > - > - s->last_free = free_out - block_size; > - > - if (s->play_pos == 0) { > - s->status |= MP_AUDIO_TX_HALF; > - s->play_pos = block_size; > - } else { > - s->status |= MP_AUDIO_TX_FULL; > - s->play_pos = 0; > - } > - > - if (s->status & s->irq_enable) { > - qemu_irq_raise(s->irq); > - } > -} Reviewed-by: Philippe Mathieu-Daudé <[email protected]>