From 017f77bbf75ef6c9b69188a150020013e6d5d8ad Mon Sep 17 00:00:00 2001 From: BALATON Zoltan Date: Fri, 29 Oct 2021 23:02:09 +0200 Subject: [PATCH] hw/char/sh_serial: Split off sh_serial_reset() from sh_serial_init() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daudé Message-Id: Signed-off-by: Philippe Mathieu-Daudé --- hw/char/sh_serial.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/hw/char/sh_serial.c b/hw/char/sh_serial.c index 5ee93dc732..80a548d19d 100644 --- a/hw/char/sh_serial.c +++ b/hw/char/sh_serial.c @@ -381,6 +381,25 @@ static const MemoryRegionOps sh_serial_ops = { .endianness = DEVICE_NATIVE_ENDIAN, }; +static void sh_serial_reset(SHSerialState *s) +{ + s->flags = SH_SERIAL_FLAG_TEND | SH_SERIAL_FLAG_TDE; + s->rtrg = 1; + + s->smr = 0; + s->brr = 0xff; + s->scr = 1 << 5; /* pretend that TX is enabled so early printk works */ + s->sptr = 0; + + if (s->feat & SH_SERIAL_FEAT_SCIF) { + s->fcr = 0; + } else { + s->dr = 0xff; + } + + sh_serial_clear_fifo(s); +} + void sh_serial_init(MemoryRegion *sysmem, hwaddr base, int feat, uint32_t freq, Chardev *chr, @@ -393,21 +412,7 @@ void sh_serial_init(MemoryRegion *sysmem, SHSerialState *s = g_malloc0(sizeof(*s)); s->feat = feat; - s->flags = SH_SERIAL_FLAG_TEND | SH_SERIAL_FLAG_TDE; - s->rtrg = 1; - - s->smr = 0; - s->brr = 0xff; - s->scr = 1 << 5; /* pretend that TX is enabled so early printk works */ - s->sptr = 0; - - if (feat & SH_SERIAL_FEAT_SCIF) { - s->fcr = 0; - } else { - s->dr = 0xff; - } - - sh_serial_clear_fifo(s); + sh_serial_reset(s); memory_region_init_io(&s->iomem, NULL, &sh_serial_ops, s, "serial", 0x100000000ULL);