[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/3] hw/sd/pxa2xx_mmci: convert to SysBusDevice
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH 1/3] hw/sd/pxa2xx_mmci: convert to SysBusDevice object |
Date: |
Mon, 7 Sep 2015 17:42:13 +0100 |
On 7 September 2015 at 17:40, Markus Armbruster <address@hidden> wrote:
> Peter Maydell <address@hidden> writes:
>
>> Convert the pxa2xx_mmci device to be a sysbus device.
>> +static Property pxa2xx_mmci_properties[] = {
>> + /* Note: pointer property 'drive' may remain NULL, thus no need
>> + * for dc->cannot_instantiate_with_device_add_yet = true;
>> + * Unfortunately this can't be a DEFINE_PROP_DRIVE, because
>> + * setting a 'drive' property results in a call to blk_attach_dev()
>> + * attaching the BlockBackend to this device; that then means that
>> + * the call in sd_init() to blk_attach_dev_nofail() which tries to
>> + * attach the BlockBackend to the SD card object aborts.
>> + */
>> + DEFINE_PROP_PTR("drive", PXA2xxMMCIState, blk),
>> + DEFINE_PROP_END_OF_LIST(),
>> +};
>
> As far as I can tell, this problem is an artifact of our interface to
> the common sd-card code, namely sd_init(). sd_init() was made for the
> pre-qdev world: it creates and completely initializes the common
> SDState.
>
> In qdev, we do this in three separate steps: create, set properties,
> realize. Split up sd_init(), and the problem should go away.
Yes, but I don't really want to gate QOMification of mmc
controller devices on the more complicated problem of
QOMifying sd.c itself, especially since we already have several
QOMified mmc controllers...
thanks
-- PMM