Revision b2d9dfe9

b/hw/net/xilinx_axienet.c
853 853
    .cleanup = eth_cleanup,
854 854
};
855 855

  
856
static int xilinx_enet_init(SysBusDevice *dev)
856
static void xilinx_enet_realize(DeviceState *dev, Error **errp)
857 857
{
858 858
    XilinxAXIEnet *s = XILINX_AXI_ENET(dev);
859 859

  
860
    sysbus_init_irq(dev, &s->irq);
861

  
862
    memory_region_init_io(&s->iomem, &enet_ops, s, "enet", 0x40000);
863
    sysbus_init_mmio(dev, &s->iomem);
864

  
865 860
    qemu_macaddr_default_if_unset(&s->conf.macaddr);
866 861
    s->nic = qemu_new_nic(&net_xilinx_enet_info, &s->conf,
867
                          object_get_typename(OBJECT(dev)), dev->qdev.id, s);
862
                          object_get_typename(OBJECT(dev)), dev->id, s);
868 863
    qemu_format_nic_info_str(qemu_get_queue(s->nic), s->conf.macaddr.a);
869 864

  
870 865
    tdk_init(&s->TEMAC.phy);
......
873 868
    s->TEMAC.parent = s;
874 869

  
875 870
    s->rxmem = g_malloc(s->c_rxmem);
876

  
877
    return 0;
878 871
}
879 872

  
880
static void xilinx_enet_initfn(Object *obj)
873
static void xilinx_enet_init(Object *obj)
881 874
{
882 875
    XilinxAXIEnet *s = XILINX_AXI_ENET(obj);
876
    SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
883 877
    Error *errp = NULL;
884 878

  
885 879
    object_property_add_link(obj, "axistream-connected", TYPE_STREAM_SLAVE,
886 880
                             (Object **) &s->tx_dev, &errp);
887 881
    assert_no_error(errp);
882

  
883
    sysbus_init_irq(sbd, &s->irq);
884

  
885
    memory_region_init_io(&s->iomem, &enet_ops, s, "enet", 0x40000);
886
    sysbus_init_mmio(sbd, &s->iomem);
888 887
}
889 888

  
890 889
static Property xilinx_enet_properties[] = {
......
898 897
static void xilinx_enet_class_init(ObjectClass *klass, void *data)
899 898
{
900 899
    DeviceClass *dc = DEVICE_CLASS(klass);
901
    SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
902 900
    StreamSlaveClass *ssc = STREAM_SLAVE_CLASS(klass);
903 901

  
904
    k->init = xilinx_enet_init;
902
    dc->realize = xilinx_enet_realize;
905 903
    dc->props = xilinx_enet_properties;
906 904
    dc->reset = xilinx_axienet_reset;
907 905
    ssc->push = axienet_stream_push;
......
912 910
    .parent        = TYPE_SYS_BUS_DEVICE,
913 911
    .instance_size = sizeof(XilinxAXIEnet),
914 912
    .class_init    = xilinx_enet_class_init,
915
    .instance_init = xilinx_enet_initfn,
913
    .instance_init = xilinx_enet_init,
916 914
    .interfaces = (InterfaceInfo[]) {
917 915
            { TYPE_STREAM_SLAVE },
918 916
            { }

Also available in: Unified diff