[{"id":3675612,"web_url":"http://patchwork.ozlabs.org/comment/3675612/","msgid":"<CAKmqyKNm+sfmP03ppX=KYpFkAxUtWNsd=aC6vYCxSwcCtY2WfQ@mail.gmail.com>","list_archive_url":null,"date":"2026-04-10T02:30:59","subject":"Re: [PATCH qemu v2 2/7] ot_uart: move to new reset API","submitter":{"id":64571,"url":"http://patchwork.ozlabs.org/api/people/64571/","name":"Alistair Francis","email":"alistair23@gmail.com"},"content":"On Thu, Apr 9, 2026 at 5:42 AM ~lexbaileylowrisc\n<lexbaileylowrisc@git.sr.ht> wrote:\n>\n> From: Lex Bailey <lex.bailey@lowrisc.org>\n>\n> switch from legacy_reset to new ResettableClass for OpenTitan UART device\n>\n> Signed-off-by: Lex Bailey <lex.bailey@lowrisc.org>\n> ---\n>  hw/char/ot_uart.c         | 16 +++++++++++++---\n>  include/hw/char/ot_uart.h |  8 +++++++-\n>  2 files changed, 20 insertions(+), 4 deletions(-)\n>\n> diff --git a/hw/char/ot_uart.c b/hw/char/ot_uart.c\n> index b3eb619641..2cf0d73cf5 100644\n> --- a/hw/char/ot_uart.c\n> +++ b/hw/char/ot_uart.c\n> @@ -227,9 +227,14 @@ static void uart_write_tx_fifo(OtUARTState *s, const uint8_t *buf,\n>                (s->char_tx_time * 4));\n>  }\n>\n> -static void ot_uart_reset(DeviceState *dev)\n> +static void ot_uart_reset_enter(Object *obj, ResetType type)\n>  {\n> -    OtUARTState *s = OT_UART(dev);\n> +    OtUARTClass *c = OT_UART_GET_CLASS(obj);\n> +    OtUARTState *s = OT_UART(obj);\n> +\n> +    if (c->parent_phases.enter) {\n> +        c->parent_phases.enter(obj, type);\n> +    }\n>\n>      s->uart_intr_state = 0x00000000;\n>      s->uart_intr_state = 0x00000000;\n> @@ -545,11 +550,15 @@ static void ot_uart_class_init(ObjectClass *klass, const void *data)\n>  {\n>      DeviceClass *dc = DEVICE_CLASS(klass);\n>\n> -    device_class_set_legacy_reset(dc, ot_uart_reset);\n>      dc->realize = ot_uart_realize;\n>      dc->vmsd = &vmstate_ot_uart;\n>      device_class_set_props(dc, ot_uart_properties);\n>      set_bit(DEVICE_CATEGORY_INPUT, dc->categories);\n> +\n> +    ResettableClass *rc = RESETTABLE_CLASS(klass);\n> +    OtUARTClass *uc = OT_UART_CLASS(klass);\n\nPlease don't mix statements and declarations within blocks [1],\ncheckpatch should catch this\n\n1: https://qemu-project.gitlab.io/qemu/devel/style.html#declarations\n\nAlistair\n\n> +    resettable_class_set_parent_phases(rc, &ot_uart_reset_enter, NULL, NULL,\n> +                                       &uc->parent_phases);\n>  }\n>\n>  static const TypeInfo ot_uart_info = {\n> @@ -557,6 +566,7 @@ static const TypeInfo ot_uart_info = {\n>      .parent        = TYPE_SYS_BUS_DEVICE,\n>      .instance_size = sizeof(OtUARTState),\n>      .instance_init = ot_uart_init,\n> +    .class_size    = sizeof(OtUARTClass),\n>      .class_init    = ot_uart_class_init,\n>  };\n>\n> diff --git a/include/hw/char/ot_uart.h b/include/hw/char/ot_uart.h\n> index 517324b65d..fee2128f90 100644\n> --- a/include/hw/char/ot_uart.h\n> +++ b/include/hw/char/ot_uart.h\n> @@ -34,7 +34,7 @@\n>  #define OT_UART_CLOCK 50000000 /* 50MHz clock */\n>\n>  #define TYPE_OT_UART \"ot-uart\"\n> -OBJECT_DECLARE_SIMPLE_TYPE(OtUARTState, OT_UART)\n> +OBJECT_DECLARE_TYPE(OtUARTState, OtUARTClass, OT_UART)\n>\n>  struct OtUARTState {\n>      /* <private> */\n> @@ -70,4 +70,10 @@ struct OtUARTState {\n>      qemu_irq tx_empty;\n>      qemu_irq rx_overflow;\n>  };\n> +\n> +struct OtUARTClass {\n> +    SysBusDeviceClass parent_class;\n> +    ResettablePhases parent_phases;\n> +};\n> +\n>  #endif /* HW_OT_UART_H */\n> --\n> 2.49.1\n>\n>","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=s2bT+3Kj;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fsLR93Q2sz20HT\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 12:31:49 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wB1ed-000735-EG; Thu, 09 Apr 2026 22:31:31 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <alistair23@gmail.com>)\n id 1wB1ec-00072p-Ln\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 22:31:30 -0400","from mail-ej1-x633.google.com ([2a00:1450:4864:20::633])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <alistair23@gmail.com>)\n id 1wB1ea-0003sO-Oz\n for qemu-devel@nongnu.org; Thu, 09 Apr 2026 22:31:30 -0400","by mail-ej1-x633.google.com with SMTP id\n a640c23a62f3a-b9c6680aaf8so276821066b.3\n for <qemu-devel@nongnu.org>; Thu, 09 Apr 2026 19:31:28 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; t=1775788287; cv=none;\n d=google.com; s=arc-20240605;\n b=PQKS26b0pAmt+w+dSfgGMislxkpFI7Wcq6bY1AcLjbPymEJWxmb7HNlj5YkveNGj6M\n 3hX0onB8Ex9O5hYouBMThXqZwCoCwDp03O39bgK9/tkMN4YcxeAb4k8ibN/LiRwwVdOd\n gbzgdofnmoLruorRWm+J1aj19MlY5R7xtcLEp6aOVS2hCUFVEFSGnOWbNN6ZfaqZjqJf\n E1cAhnm37Jk4Wh2OSeatNSdVhTjBovuGp4dQZ4sAaYg/g5YVkpZRa4/R4rar8WjUKrz5\n w+mWpMy7ki79BhAxOi+fok91ur0HKN+58vFZedOLppN4ya6kXGEdqTN6K0Gf1Y1prnER\n vhzg==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:dkim-signature;\n bh=3/21UvvO9MdYyve3WyY4fMrFfsuCfOEeHAv3MzJltdE=;\n fh=nHYu2bbFcBp4p/R+Jf0YC0yaNlRc1NVy95yctbCi8iE=;\n b=HqthizPmKNIReOBKCBRosVq6r/vtKnZbLPm6IwO76lljY0Tq7PLyzQcNX7ej33WO1C\n uizTew4z8T0ZDlC7wlAewitNmbI613KjSZoxGpUFpbwMmQqBZo+EqTjdnWuLGgzE0LtC\n 06naY157ArmhuWuEI6XW0HSROh3Z7zWKf9iw+5wmU195uZuZ3vFgyYYd26AGYUMPE/PK\n SeGMaAC2YULmPhYoonQqt3i2SMPKOMYadBqnCpAI7cN+TA0V+ny/NDfmdtnJcmztQ6gG\n GK5xTnGJjj3RNaZ1E7cdyNMG7s7D8BZomQm5bcw8OmnF6FurQ5adzcf+4WIDJL6Fp71o\n vgBg==; darn=nongnu.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775788287; x=1776393087; darn=nongnu.org;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=3/21UvvO9MdYyve3WyY4fMrFfsuCfOEeHAv3MzJltdE=;\n b=s2bT+3KjNmB7KJwhv1WtSq2957cx5WeCo3AmXFoWE4Dl7iRxDXeTYqDsk4gj1ADZjT\n VR01q1vJR6Glt/OAtbh8BxrYW1CWe/1+jGmnv3VsZf2SokPHRDZk01/dCx6m30lai7Sz\n 7jEGlo/zN1tTxLij9TK07ToRkiziTVecPsUshVEnf2pBucKGlJjLUhrcgsC//ijZz0Db\n 1ell8qPfgNR8+nMxozLzkmh56B1vRfYmwEVZH9qg3aFMrBWaEhcL0vqUc4Hie7hhzBm1\n NZ355K6Q+ZkVzMkQU5txHoWsEpmG/5hn5bmRMcybOxmkIsMzzSS9OUvV13CDeAFCVyiv\n XnKg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775788287; x=1776393087;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=3/21UvvO9MdYyve3WyY4fMrFfsuCfOEeHAv3MzJltdE=;\n b=fTpw/Dka0FOGXObwo5ie+OcuPN5prLvd8b1Sp2VgFBtdsNEsCXqGaa2KCsR2im97Fm\n krR4zDxz6zFwgVrsPANZa2FEw+X+m7pPO4kgpDff3Cxj0anhON18+vA9S9wMxOJkNhFN\n dLHN11hLVwzF+x4GibnJIbxLq/HWRpWvv5/oz4v+v+enb31bpkfX6EAatdJLIrfprQd+\n jnxGYC/X9Jb8ggx22PHnUM8mNDhRsNq7EVO9kVgcus3lENz7yj0y4nnFZ8V4n+mcClgt\n n1Y2noeP80i+6SkexUChQ94gVazFdnrfDGTCj6RspHaPXrwyBsnidPobMYHF7Hux0XVK\n 08wQ==","X-Forwarded-Encrypted":"i=1;\n AJvYcCXnx8CruQ9dnjJj4EfNzKLtAA0k5wx5sFu8lN2X1jdVmOlSSPtK2r9+qLecz53MDuJXEKRS8m0Q4yaE@nongnu.org","X-Gm-Message-State":"AOJu0Yx4Ly0J+jkbWu5zX/IVbjADaK4YdA+MnaSoD3XBAtvQuI6pj/GF\n FHyw702fr1Z2AD2l4AxyfD03R6IvMg7jXesMp3lralbFBaMHnrb1EgS/a1Q8H7gH6xo2Pnv7/12\n jaFQ/8eBBpZ1X9Ps1/bDbEHlaDaQ4Uqw=","X-Gm-Gg":"AeBDieuO7N8OlWeS0O3xKQ61cwIvGfVZHac6gnolY2/nxh1cfOf2mSn7rR9xPpx0gxF\n umfLrf4x2VTpdIzvZGjHAJNpexrAu+FNiIP2fV3N6nQATrBsQEUIDt0uzh0qgSKaujwkF1e/UlG\n iULb2XybZzXIp0GI0ZAkNJ66mya09WTMgLgz1bVJaiqFcFU8od+WPwtMaLjzowLEaLaTGoam+bu\n +uSfHYwjmNGD7pGzQ48XGTTI8USmflV1WYRQQcoYbJgPItOLPtm2CpdFzJPfXFz5Cm3dU6Pg8ai\n 0A8VLRcK9wQ0Hh5P8yb4VAzY4JvKMvwejg4tRg==","X-Received":"by 2002:a17:907:d06:b0:b97:ce8f:b9db with SMTP id\n a640c23a62f3a-b9d7243ee6cmr82390766b.10.1775788286597; Thu, 09 Apr 2026\n 19:31:26 -0700 (PDT)","MIME-Version":"1.0","References":"<177564643888.23414.7922925369077631439-0@git.sr.ht>\n <177564643888.23414.7922925369077631439-2@git.sr.ht>","In-Reply-To":"<177564643888.23414.7922925369077631439-2@git.sr.ht>","From":"Alistair Francis <alistair23@gmail.com>","Date":"Fri, 10 Apr 2026 12:30:59 +1000","X-Gm-Features":"AQROBzAL7CIt6-uaSSckwaX_4F0kTwgHVS0Bp-ddypQ5EpbVvB0OORHySxlki-w","Message-ID":"\n <CAKmqyKNm+sfmP03ppX=KYpFkAxUtWNsd=aC6vYCxSwcCtY2WfQ@mail.gmail.com>","Subject":"Re: [PATCH qemu v2 2/7] ot_uart: move to new reset API","To":"\"~lexbaileylowrisc\" <lex.bailey@lowrisc.org>","Cc":"qemu-riscv@nongnu.org, Alistair Francis <Alistair.Francis@wdc.com>,\n  Paolo Bonzini <pbonzini@redhat.com>,\n =?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>,\n  Palmer Dabbelt <palmer@dabbelt.com>, Weiwei Li <liwei1518@gmail.com>,\n  Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>,\n Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,\n  Chao Liu <chao.liu.zevorn@gmail.com>, qemu-devel@nongnu.org,\n  Amit Kumar-Hermosillo <amitkh@google.com>, nabihestefan@google.com","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","Received-SPF":"pass client-ip=2a00:1450:4864:20::633;\n envelope-from=alistair23@gmail.com; helo=mail-ej1-x633.google.com","X-Spam_score_int":"-17","X-Spam_score":"-1.8","X-Spam_bar":"-","X-Spam_report":"(-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}}]