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]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.