Lines Matching full:mirror
157 VFIOConfigMirrorQuirk *mirror = opaque; in vfio_generic_quirk_mirror_read() local
158 VFIOPCIDevice *vdev = mirror->vdev; in vfio_generic_quirk_mirror_read()
162 (void)vfio_region_read(&vdev->bars[mirror->bar].region, in vfio_generic_quirk_mirror_read()
163 addr + mirror->offset, size); in vfio_generic_quirk_mirror_read()
165 addr += mirror->config_offset; in vfio_generic_quirk_mirror_read()
168 memory_region_name(mirror->mem), in vfio_generic_quirk_mirror_read()
176 VFIOConfigMirrorQuirk *mirror = opaque; in vfio_generic_quirk_mirror_write() local
177 VFIOPCIDevice *vdev = mirror->vdev; in vfio_generic_quirk_mirror_write()
179 addr += mirror->config_offset; in vfio_generic_quirk_mirror_write()
182 memory_region_name(mirror->mem), in vfio_generic_quirk_mirror_write()
391 * Newer ATI/AMD devices, including HD5450 and HD7850, have a mirror to PCI
443 * Trap the BAR2 MMIO mirror to config space as well.
448 VFIOConfigMirrorQuirk *mirror; in vfio_probe_ati_bar2_quirk() local
457 mirror = quirk->data = g_malloc0(sizeof(*mirror)); in vfio_probe_ati_bar2_quirk()
458 mirror->mem = quirk->mem; in vfio_probe_ati_bar2_quirk()
459 mirror->vdev = vdev; in vfio_probe_ati_bar2_quirk()
460 mirror->offset = 0x4000; in vfio_probe_ati_bar2_quirk()
461 mirror->bar = nr; in vfio_probe_ati_bar2_quirk()
463 memory_region_init_io(mirror->mem, OBJECT(vdev), in vfio_probe_ati_bar2_quirk()
464 &vfio_generic_mirror_quirk, mirror, in vfio_probe_ati_bar2_quirk()
467 mirror->offset, mirror->mem, 1); in vfio_probe_ati_bar2_quirk()
476 * I/O port BAR1 provides a window to a mirror of PCI config space located
489 * the mirror of PCI config space found at BAR0 offset 0x1800. The access
816 VFIOConfigMirrorQuirk *mirror = opaque; in vfio_nvidia_quirk_mirror_write() local
817 VFIOPCIDevice *vdev = mirror->vdev; in vfio_nvidia_quirk_mirror_write()
819 LastDataSet *last = (LastDataSet *)&mirror->data; in vfio_nvidia_quirk_mirror_write()
830 vfio_region_write(&vdev->bars[mirror->bar].region, in vfio_nvidia_quirk_mirror_write()
831 addr + mirror->offset, data, size); in vfio_nvidia_quirk_mirror_write()
860 ioeventfd = vfio_ioeventfd_init(vdev, mirror->mem, addr, size, in vfio_nvidia_quirk_mirror_write()
861 data, &vdev->bars[mirror->bar].region, in vfio_nvidia_quirk_mirror_write()
862 mirror->offset + addr, true); in vfio_nvidia_quirk_mirror_write()
887 VFIOConfigMirrorQuirk *mirror = quirk->data; in vfio_nvidia_bar0_quirk_reset() local
888 LastDataSet *last = (LastDataSet *)&mirror->data; in vfio_nvidia_bar0_quirk_reset()
898 VFIOConfigMirrorQuirk *mirror; in vfio_probe_nvidia_bar0_quirk() local
909 mirror = quirk->data = g_malloc0(sizeof(*mirror) + sizeof(LastDataSet)); in vfio_probe_nvidia_bar0_quirk()
910 mirror->mem = quirk->mem; in vfio_probe_nvidia_bar0_quirk()
911 mirror->vdev = vdev; in vfio_probe_nvidia_bar0_quirk()
912 mirror->offset = 0x88000; in vfio_probe_nvidia_bar0_quirk()
913 mirror->bar = nr; in vfio_probe_nvidia_bar0_quirk()
914 last = (LastDataSet *)&mirror->data; in vfio_probe_nvidia_bar0_quirk()
917 memory_region_init_io(mirror->mem, OBJECT(vdev), in vfio_probe_nvidia_bar0_quirk()
918 &vfio_nvidia_mirror_quirk, mirror, in vfio_probe_nvidia_bar0_quirk()
919 "vfio-nvidia-bar0-88000-mirror-quirk", in vfio_probe_nvidia_bar0_quirk()
922 mirror->offset, mirror->mem, 1); in vfio_probe_nvidia_bar0_quirk()
926 /* The 0x1800 offset mirror only seems to get used by legacy VGA */ in vfio_probe_nvidia_bar0_quirk()
930 mirror = quirk->data = g_malloc0(sizeof(*mirror) + sizeof(LastDataSet)); in vfio_probe_nvidia_bar0_quirk()
931 mirror->mem = quirk->mem; in vfio_probe_nvidia_bar0_quirk()
932 mirror->vdev = vdev; in vfio_probe_nvidia_bar0_quirk()
933 mirror->offset = 0x1800; in vfio_probe_nvidia_bar0_quirk()
934 mirror->bar = nr; in vfio_probe_nvidia_bar0_quirk()
935 last = (LastDataSet *)&mirror->data; in vfio_probe_nvidia_bar0_quirk()
938 memory_region_init_io(mirror->mem, OBJECT(vdev), in vfio_probe_nvidia_bar0_quirk()
939 &vfio_nvidia_mirror_quirk, mirror, in vfio_probe_nvidia_bar0_quirk()
940 "vfio-nvidia-bar0-1800-mirror-quirk", in vfio_probe_nvidia_bar0_quirk()
943 mirror->offset, mirror->mem, 1); in vfio_probe_nvidia_bar0_quirk()