On Wed, 20 May 2026 at 17:33, Philippe Mathieu-Daudé <[email protected]> wrote: > > Hi Yucai, > > On 27/4/26 14:47, Peter Maydell wrote: > > +static void imx6ul_lcdif_class_init(ObjectClass *klass, const void *data) > > +{ > > + DeviceClass *dc = DEVICE_CLASS(klass); > > + > > + dc->realize = imx6ul_lcdif_realize; > > + dc->unrealize = imx6ul_lcdif_unrealize; > > + dc->vmsd = &vmstate_imx6ul_lcdif; > > + device_class_set_legacy_reset(dc, imx6ul_lcdif_reset); > > Please do not use the legacy API. See for example this commit > to convert to the newer API: > https://gitlab.com/qemu-project/qemu/-/commit/ce788d3740f
There's not really a problem with continuing to use the legacy reset API for this kind of "leaf class" device. It has identical semantics to just providing a 3-phase "hold" reset method, the compatibility-code is trivial and not a big maintenance burden, and we're unlikely to convert all 400+ existing users. (Unless somebody figures out a Coccinelle script for it, in which case it's just one more file being autoconverted. IIRC the hitch I ran into was that you need to determine whether the reset function is called by any other code -- those are probably not autoconvertible in the way "function only used as the argument to device_class_legacy_reset()" could be.) thanks -- PMM
