Lines Matching refs:dev
171 return ptdev->dev->msix.table_bar; in ptdev_msix_table_bar()
176 return ptdev->dev->msix.pba_bar; in ptdev_msix_pba_bar()
180 load_pci_rombar(struct vmctx *ctx, struct pci_vdev *dev, char *rom_file) in load_pci_rombar() argument
194 ptdev = (struct passthru_dev *) dev->arg; in load_pci_rombar()
231 pci_emul_alloc_bar(dev, PCI_ROMBAR, PCIBAR_ROM, rom_size); in load_pci_rombar()
234 bar_addr = dev->bar[PCI_ROMBAR].addr; in load_pci_rombar()
240 dev->bar[PCI_ROMBAR].addr = 0; in load_pci_rombar()
241 dev->bar[PCI_ROMBAR].size = 0; in load_pci_rombar()
244 pci_set_cfgdata32(dev, PCIR_BIOS, (bar_addr | PCIM_BIOS_ENABLE)); in load_pci_rombar()
257 release_pci_rombar(struct vmctx *ctx, struct pci_vdev *dev) in release_pci_rombar() argument
267 ptdev = (struct passthru_dev *) dev->arg; in release_pci_rombar()
269 rom_unmap.user_vm_pa = dev->bar[PCI_ROMBAR].addr; in release_pci_rombar()
270 rom_unmap.len = dev->bar[PCI_ROMBAR].size; in release_pci_rombar()
290 struct pci_vdev *dev; in cfginitbar() local
296 dev = ptdev->dev; in cfginitbar()
330 ptdev->sel.bus, ptdev->sel.dev, in cfginitbar()
338 ptdev->sel.bus, ptdev->sel.dev, in cfginitbar()
354 error = reserve_io_rgn(base, base + size - 1, i, PCIBAR_IO, dev); in cfginitbar()
359 error = pci_emul_alloc_pbar(dev, i, base, bartype, size); in cfginitbar()
371 vbar_lo32 = pci_get_cfgdata32(dev, PCIR_BAR(i)); in cfginitbar()
378 pci_set_cfgdata32(dev, PCIR_BAR(i), vbar_lo32); in cfginitbar()
414 ptdev->sel.dev = slot; in cfginit()
514 static bool is_intel_graphics_dev(struct pci_vdev *dev) in is_intel_graphics_dev() argument
519 ptdev = (struct passthru_dev *) dev->arg; in is_intel_graphics_dev()
525 if (pci_get_cfgdata16(dev, PCIR_VENDOR) != 0x8086) in is_intel_graphics_dev()
529 if (pci_get_cfgdata8(dev, PCIR_CLASS) != 0x3) in is_intel_graphics_dev()
656 pci_set_cfgdata32(ptdev->dev, PCIR_GEN11_BDSM_DW0, gpu_dsm_gpa | dsm_mask_val); in passthru_gpu_dsm_opregion()
658 pci_set_cfgdata32(ptdev->dev, PCIR_GEN11_BDSM_DW1, 0); in passthru_gpu_dsm_opregion()
668 pci_set_cfgdata32(ptdev->dev, PCIR_BDSM, gpu_dsm_gpa | dsm_mask_val); in passthru_gpu_dsm_opregion()
674 …pci_set_cfgdata32(ptdev->dev, PCIR_ASLS_CTL, gpu_opregion_gpa | (opregion_phys & ~PCIM_ASLS_OPREGI… in passthru_gpu_dsm_opregion()
715 passthru_init(struct vmctx *ctx, struct pci_vdev *dev, char *opts) in passthru_init() argument
819 if (phys_dev->bus == bus && phys_dev->dev == slot && in passthru_init()
835 dev->arg = ptdev; in passthru_init()
836 ptdev->dev = dev; in passthru_init()
842 pci_set_cfgdata16(dev, PCIR_MINGNT, in passthru_init()
852 pci_set_cfgdata16(dev, PCIR_VENDOR, vendor); in passthru_init()
853 pci_set_cfgdata16(dev, PCIR_DEVICE, device); in passthru_init()
854 pci_set_cfgdata8(dev, PCIR_CLASS, class); in passthru_init()
870 error = pci_emul_alloc_pbar(dev, vmsix_on_msi_bar_id, 0, PCIBAR_MEM32, 4096); in passthru_init()
885 load_pci_rombar(ctx, dev, rom_file); in passthru_init()
887 if (is_intel_graphics_dev(dev)) { in passthru_init()
905 pcidev.virt_bdf = PCI_BDF(dev->bus, dev->slot, dev->func); in passthru_init()
908 pcidev.bar[idx] = pci_get_cfgdata32(dev, PCIR_BAR(idx)); in passthru_init()
917 pci_lintr_request(dev); in passthru_init()
952 pcidev.intr_line = pci_get_cfgdata8(dev, PCIR_INTLINE); in passthru_init()
953 pcidev.intr_pin = pci_get_cfgdata8(dev, PCIR_INTPIN); in passthru_init()
973 passthru_deinit(struct vmctx *ctx, struct pci_vdev *dev, char *opts) in passthru_deinit() argument
976 uint16_t virt_bdf = PCI_BDF(dev->bus, dev->slot, dev->func); in passthru_deinit()
982 if (!dev->arg) { in passthru_deinit()
987 destory_io_rsvd_rgns(dev); in passthru_deinit()
989 ptdev = (struct passthru_dev *) dev->arg; in passthru_deinit()
992 virt_bdf, ptdev->phys_bdf, dev->lintr.ioapic_irq); in passthru_deinit()
993 if (dev->lintr.pin != 0) { in passthru_deinit()
994 vm_reset_ptdev_intx_info(ctx, virt_bdf, ptdev->phys_bdf, dev->lintr.ioapic_irq, false); in passthru_deinit()
998 release_pci_rombar(ctx, dev); in passthru_deinit()
1005 if (is_intel_graphics_dev(dev)) { in passthru_deinit()
1010 pcidev.virt_bdf = PCI_BDF(dev->bus, dev->slot, dev->func); in passthru_deinit()
1038 passthru_bind_irq(struct vmctx *ctx, struct pci_vdev *dev) in passthru_bind_irq() argument
1040 struct passthru_dev *ptdev = dev->arg; in passthru_bind_irq()
1041 uint16_t virt_bdf = PCI_BDF(dev->bus, dev->slot, dev->func); in passthru_bind_irq()
1046 if (dev->lintr.pin == 0) in passthru_bind_irq()
1050 dev->bus, dev->slot, dev->func); in passthru_bind_irq()
1052 dev->lintr.ioapic_irq, ptdev->phys_pin, in passthru_bind_irq()
1056 dev->lintr.ioapic_irq, ptdev->phys_pin, false); in passthru_bind_irq()
1060 passthru_cfgread(struct vmctx *ctx, int vcpu, struct pci_vdev *dev, in passthru_cfgread() argument
1063 struct passthru_dev *ptdev = dev->arg; in passthru_cfgread()
1066 *rv = pci_get_cfgdata32(dev, coff); in passthru_cfgread()
1068 *rv = pci_get_cfgdata32(dev, coff); in passthru_cfgread()
1076 passthru_cfgwrite(struct vmctx *ctx, int vcpu, struct pci_vdev *dev, in passthru_cfgwrite() argument
1079 struct passthru_dev *ptdev = dev->arg; in passthru_cfgwrite()
1088 bios_rom = (uint32_t) dev->bar[PCI_ROMBAR].size; in passthru_cfgwrite()
1090 pci_set_cfgdata32(dev, PCIR_BIOS, bios_rom); in passthru_cfgwrite()
1093 pci_set_cfgdata32(dev, PCIR_BIOS, val); in passthru_cfgwrite()
1098 bios_rom = (uint32_t) dev->bar[PCI_ROMBAR].addr; in passthru_cfgwrite()
1099 pci_set_cfgdata32(dev, PCIR_BIOS, (bios_rom | PCIR_BIOS)); in passthru_cfgwrite()
1101 val, dev->bus, dev->slot, dev->func); in passthru_cfgwrite()
1112 passthru_write(struct vmctx *ctx, int vcpu, struct pci_vdev *dev, int baridx, in passthru_write() argument
1118 passthru_read(struct vmctx *ctx, int vcpu, struct pci_vdev *dev, int baridx, in passthru_read() argument
1125 write_dsdt_xdci(struct pci_vdev *dev) in write_dsdt_xdci() argument
1128 dev->bus, in write_dsdt_xdci()
1129 dev->slot, in write_dsdt_xdci()
1130 dev->func); in write_dsdt_xdci()
1135 dsdt_line(" Name (_ADR, 0x%04X%04X)", dev->slot, dev->func); in write_dsdt_xdci()
1143 write_dsdt_hdac(struct pci_vdev *dev) in write_dsdt_hdac() argument
1146 dev->bus, in write_dsdt_hdac()
1147 dev->slot, in write_dsdt_hdac()
1148 dev->func); in write_dsdt_hdac()
1153 dsdt_line(" Name (_ADR, 0x%04X%04X)", dev->slot, dev->func); in write_dsdt_hdac()
1262 write_dsdt_hdas(struct pci_vdev *dev) in write_dsdt_hdas() argument
1265 dev->bus, in write_dsdt_hdas()
1266 dev->slot, in write_dsdt_hdas()
1267 dev->func); in write_dsdt_hdas()
1283 dsdt_line(" Name (_ADR, 0x%04X%04X)", dev->slot, dev->func); in write_dsdt_hdas()
1482 write_dsdt_ipu_i2c(struct pci_vdev *dev) in write_dsdt_ipu_i2c() argument
1485 dev->bus, dev->slot, dev->func); in write_dsdt_ipu_i2c()
1490 dsdt_line(" Name (_ADR, 0x%04X%04X)", dev->slot, dev->func); in write_dsdt_ipu_i2c()
1712 write_dsdt_urt1(struct pci_vdev *dev) in write_dsdt_urt1() argument
1715 dev->bus, in write_dsdt_urt1()
1716 dev->slot, in write_dsdt_urt1()
1717 dev->func); in write_dsdt_urt1()
1720 dsdt_line(" Name (_ADR, 0x%04X%04X)", dev->slot, dev->func); in write_dsdt_urt1()
1734 write_dsdt_sdc(struct pci_vdev *dev) in write_dsdt_sdc() argument
1737 dev->bus, in write_dsdt_sdc()
1738 dev->slot, in write_dsdt_sdc()
1739 dev->func); in write_dsdt_sdc()
1742 dsdt_line(" Name (_ADR, 0x%04X%04X)", dev->slot, dev->func); in write_dsdt_sdc()
1771 write_dsdt_tsn(struct pci_vdev *dev, uint16_t device) in write_dsdt_tsn() argument
1789 pr_info("write TSN-%x:%x.%x in dsdt for TSN-%d\n", dev->bus, dev->slot, dev->func, pcs_id); in write_dsdt_tsn()
1794 dsdt_line(" Name (_ADR, 0x%04X%04X)", dev->slot, dev->func); // _ADR: Address in write_dsdt_tsn()
1842 write_dsdt_file(struct pci_vdev *dev) in write_dsdt_file() argument
1851 ptdev = (struct passthru_dev *) dev->arg; in write_dsdt_file()
1870 passthru_write_dsdt(struct pci_vdev *dev) in passthru_write_dsdt() argument
1875 vendor = pci_get_cfgdata16(dev, PCIR_VENDOR); in passthru_write_dsdt()
1880 device = pci_get_cfgdata16(dev, PCIR_DEVICE); in passthru_write_dsdt()
1881 ptdev = (struct passthru_dev *) dev->arg; in passthru_write_dsdt()
1886 write_dsdt_xdci(dev); in passthru_write_dsdt()
1889 write_dsdt_hdac(dev); in passthru_write_dsdt()
1892 write_dsdt_hdas(dev); in passthru_write_dsdt()
1895 write_dsdt_ipu_i2c(dev); in passthru_write_dsdt()
1898 write_dsdt_urt1(dev); in passthru_write_dsdt()
1901 write_dsdt_sdc(dev); in passthru_write_dsdt()
1903 write_dsdt_tsn(dev, device); in passthru_write_dsdt()
1906 write_dsdt_file(dev); in passthru_write_dsdt()