qemu/hw/display
Paolo Bonzini fe04f0b4a1 hw/display/xlnx_dp: Move problematic code from instance_init to realize
aux_create_slave() calls qdev_init_nofail() which in turn "realizes"
the corresponding object. This is unlike qdev_create(), and it is wrong
because qdev_init_nofail() must not be called from an instance_init
function.  Move qdev_init_nofail() and the subsequent aux_map_slave into
the caller's realize function.

There are two more bugs that needs to be fixed here, too, where the
objects are created but not added as children.  Therefore when
you call object_unparent on them, nothing happens.

In particular dpcd and edid give you an infinite loop in bus_unparent,
because device_unparent is not called and does not remove them from
the list of devices on the bus.

Reported-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-id: 1531745974-17187-17-git-send-email-thuth@redhat.com
[thuth: Added Paolo's fixup for the dpcd and edid unparenting]
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2018-07-17 13:12:49 +01:00
..
ads7846.c ssi: change ssi_slave_init to be a realize ops 2016-07-04 13:15:22 +01:00
bcm2835_fb.c display: use local path for local headers 2018-06-01 19:20:37 +03:00
blizzard.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
bochs-display.c * IEC units series (Philippe) 2018-07-02 19:07:19 +01:00
cg3.c memory: hide memory_region_sync_dirty_bitmap behind DirtyBitmapSnapshot 2018-02-13 16:15:09 +01:00
cirrus_vga_rop2.h cirrus: fix PUTPIXEL macro 2017-03-27 12:14:45 +02:00
cirrus_vga_rop.h cirrus: fix off-by-one in cirrus_bitblt_rop_bkwd_transp_*_16 2017-03-17 10:23:44 +01:00
cirrus_vga.c vga: disable global_vmstate, virtio-gpu scanout tracking fixes. 2018-07-03 21:09:27 +01:00
dpcd.c maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +01:00
exynos4210_fimd.c memory: hide memory_region_sync_dirty_bitmap behind DirtyBitmapSnapshot 2018-02-13 16:15:09 +01:00
framebuffer.c memory: hide memory_region_sync_dirty_bitmap behind DirtyBitmapSnapshot 2018-02-13 16:15:09 +01:00
framebuffer.h framebuffer: set DIRTY_MEMORY_VGA on RAM that is used for the framebuffer 2015-07-24 13:57:45 +02:00
g364fb.c hw/display: Use the IEC binary prefix definitions 2018-07-02 15:41:13 +02:00
jazz_led.c jazz_led: fix bad snprintf 2017-05-10 10:19:24 +03:00
Makefile.objs hw/display: add standalone ramfb device 2018-06-18 11:22:15 +02:00
milkymist-tmu2.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
milkymist-vgafb_template.h milkymist-vgafb: swap pixel data in source buffer 2014-02-04 19:34:30 +01:00
milkymist-vgafb.c milkymist: update specification URLs 2016-06-20 18:12:04 +02:00
omap_dss.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
omap_lcd_template.h omap_lcdc: Remove support for DEPTH != 32 2016-05-12 13:22:24 +01:00
omap_lcdc.c omap_lcdc: Remove support for DEPTH != 32 2016-05-12 13:22:24 +01:00
pl110_template.h display: avoid multi-statement macro 2014-01-31 14:47:33 +00:00
pl110.c pl110: Implement vertical compare/next base interrupts 2018-01-25 11:45:30 +00:00
pxa2xx_lcd.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
pxa2xx_template.h display: avoid multi-statement macro 2014-01-31 14:47:33 +00:00
qxl-logger.c hw/display: Clean up includes 2016-01-29 15:07:24 +00:00
qxl-render.c qxl: fix local renderer crash 2018-05-07 11:47:57 +02:00
qxl.c vga: disable global_vmstate, virtio-gpu scanout tracking fixes. 2018-07-03 21:09:27 +01:00
qxl.h Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
ramfb-standalone.c hw/display: add standalone ramfb device 2018-06-18 11:22:15 +02:00
ramfb.c ramfb: enable vgabios 2018-07-02 17:21:52 +02:00
sii9022.c hw/sii9022: Add support for Silicon Image SII9022 2018-03-01 11:13:36 +00:00
sm501_template.h sm501: Misc clean ups 2017-04-24 12:32:12 +01:00
sm501.c sm501: Fix warning about unreachable code 2018-07-16 11:19:10 +10:00
ssd0303.c hw/i2c: Use DeviceClass::realize instead of I2CSlaveClass::init 2018-06-01 15:14:31 +02:00
ssd0323.c vmstateify ssd0323 display 2016-09-22 18:13:08 +01:00
tc6393xb_template.h display: avoid multi-statement macro 2014-01-31 14:47:33 +00:00
tc6393xb.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
tcx.c memory: hide memory_region_sync_dirty_bitmap behind DirtyBitmapSnapshot 2018-02-13 16:15:09 +01:00
trace-events hw/sii9022: Add support for Silicon Image SII9022 2018-03-01 11:13:36 +00:00
vga_int.h vga: disable global_vmstate for 3.0+ machine types 2018-07-03 11:19:49 +02:00
vga_regs.h hw/display/vga: "vga.h" only contains registers defs, rename it "vga_regs.h" 2017-12-18 17:07:02 +03:00
vga-helpers.h vga: stop passing pointers to vga_draw_line* functions 2017-09-01 13:52:43 +02:00
vga-isa-mm.c vga: disable global_vmstate, virtio-gpu scanout tracking fixes. 2018-07-03 21:09:27 +01:00
vga-isa.c vga: disable global_vmstate for 3.0+ machine types 2018-07-03 11:19:49 +02:00
vga-pci.c vga: disable global_vmstate for 3.0+ machine types 2018-07-03 11:19:49 +02:00
vga.c vga: disable global_vmstate, virtio-gpu scanout tracking fixes. 2018-07-03 21:09:27 +01:00
virtio-gpu-3d.c virtio-gpu-3d: add support for second capability set (v4) 2018-02-26 13:41:34 +01:00
virtio-gpu-pci.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
virtio-gpu.c vga: disable global_vmstate, virtio-gpu scanout tracking fixes. 2018-07-03 21:09:27 +01:00
virtio-vga.c vga: disable global_vmstate for 3.0+ machine types 2018-07-03 11:19:49 +02:00
vmware_vga.c vga: disable global_vmstate, virtio-gpu scanout tracking fixes. 2018-07-03 21:09:27 +01:00
xenfb.c hw/display: Use the IEC binary prefix definitions 2018-07-02 15:41:13 +02:00
xlnx_dp.c hw/display/xlnx_dp: Move problematic code from instance_init to realize 2018-07-17 13:12:49 +01:00