Hello, Based on an initial draft from Othmar Pasteka, this series QOM'ifies MicroDrive. As a prerequisite, PCMCIA must be QOM'ified as pointed out by Peter. We can then finally drop ide_init2_with_non_qdev_drives(), as desired by Markus for his IDE refactorings. As a final touch, pxa2xx_pcmcia is made a SysBusDevice.
A for-1.6 patch to fix an assertion while inspecting the QOM composition tree was sent out separately. QOM'ifying the PXA2xx SoCs to replace pxa2xx_pcmcia_init() and other helpers is left as follow-up. We probably also want to move "info pcmcia" HMP out of vl.c but I'm not sure in which form we want to keep PCMCIASocket? A SysBusDevice subtype would seem easiest for our current use case, but there are also PCI-CardBus bridges IIRC. PCMCIASocket::card_string should probably be a property of PCMCIACardState, accessed through a link<pcmcia-card> property. Markus, unfortunately git am --3way didn't work for your old IDE patches. Please rebase them on this series yourself, thanks. Regards, Andreas >From Othmar's draft patch: * Dropped unused MicroDriveClass. * Kept IRQ allocation where it was - it's ugly either way. * Rebased onto ide_bus_new() change: 1 slot, so 1 IDE device. * Updated dscm1xxxx_init() to use the new QOM type. * Distinguished between microdrive and dscm1xxxx types. * QOM'ified PCMCIA and made MicroDrive a PCMCIA Card rather than SysBusDevice. * Fixed typo in PXA2xx API. * QOM'ified PXA2xx PCMCIA controller. >From Markus' IDE series: * Instead of breaking ide_init2_with_non_qdev_drives(), dropped it after converting last remaining pre-qdev IDE device. Cc: Markus Armbruster <arm...@redhat.com> Cc: Kevin Wolf <kw...@redhat.com> Cc: Othmar Pesteka <past...@kabsi.at> Cc: Peter Maydell <peter.mayd...@linaro.org> Cc: Anthony Liguori <anth...@codemonkey.ws> Andreas Färber (5): pxa: Fix typo "dettach" pcmcia: QOM'ify PCMCIACardState and MicroDriveState microdrive: Coding Style cleanups ide: Drop ide_init2_with_non_qdev_drives() pcmcia/pxa2xx: QOM'ify PXA2xxPCMCIAState hw/Makefile.objs | 1 + hw/ide/core.c | 49 ------ hw/ide/internal.h | 2 - hw/ide/microdrive.c | 226 +++++++++++++++++++-------- hw/misc/Makefile.objs | 1 - hw/pcmcia/Makefile.objs | 2 + hw/pcmcia/pcmcia.c | 24 +++ hw/{misc/pxa2xx_pcmcia.c => pcmcia/pxa2xx.c} | 130 +++++++++++---- include/hw/arm/pxa.h | 2 +- include/hw/pcmcia.h | 46 ++++-- 10 files changed, 322 insertions(+), 161 deletions(-) create mode 100644 hw/pcmcia/Makefile.objs create mode 100644 hw/pcmcia/pcmcia.c rename hw/{misc/pxa2xx_pcmcia.c => pcmcia/pxa2xx.c} (61%) -- 1.8.1.4