Lines Matching refs:nvdev
65 struct nvgrace_gpu_pci_core_device *nvdev = in nvgrace_gpu_init_fake_bar_emu_regs() local
69 nvdev->resmem.bar_val = 0; in nvgrace_gpu_init_fake_bar_emu_regs()
70 nvdev->usemem.bar_val = 0; in nvgrace_gpu_init_fake_bar_emu_regs()
76 struct nvgrace_gpu_pci_core_device *nvdev) in nvgrace_gpu_memregion() argument
79 return &nvdev->usemem; in nvgrace_gpu_memregion()
81 if (nvdev->resmem.memlength && index == RESMEM_REGION_INDEX) in nvgrace_gpu_memregion()
82 return &nvdev->resmem; in nvgrace_gpu_memregion()
91 struct nvgrace_gpu_pci_core_device *nvdev = in nvgrace_gpu_open_device() local
100 if (nvdev->usemem.memlength) { in nvgrace_gpu_open_device()
102 mutex_init(&nvdev->remap_lock); in nvgrace_gpu_open_device()
112 struct nvgrace_gpu_pci_core_device *nvdev = in nvgrace_gpu_close_device() local
117 if (nvdev->usemem.memaddr) { in nvgrace_gpu_close_device()
118 memunmap(nvdev->usemem.memaddr); in nvgrace_gpu_close_device()
119 nvdev->usemem.memaddr = NULL; in nvgrace_gpu_close_device()
123 if (nvdev->resmem.ioaddr) { in nvgrace_gpu_close_device()
124 iounmap(nvdev->resmem.ioaddr); in nvgrace_gpu_close_device()
125 nvdev->resmem.ioaddr = NULL; in nvgrace_gpu_close_device()
128 mutex_destroy(&nvdev->remap_lock); in nvgrace_gpu_close_device()
136 struct nvgrace_gpu_pci_core_device *nvdev = in nvgrace_gpu_mmap() local
147 memregion = nvgrace_gpu_memregion(index, nvdev); in nvgrace_gpu_mmap()
212 struct nvgrace_gpu_pci_core_device *nvdev = in nvgrace_gpu_ioctl_get_region_info() local
233 memregion = nvgrace_gpu_memregion(info.index, nvdev); in nvgrace_gpu_ioctl_get_region_info()
332 struct nvgrace_gpu_pci_core_device *nvdev = in nvgrace_gpu_read_config_emu() local
351 memregion = nvgrace_gpu_memregion(RESMEM_REGION_INDEX, nvdev); in nvgrace_gpu_read_config_emu()
357 memregion = nvgrace_gpu_memregion(USEMEM_REGION_INDEX, nvdev); in nvgrace_gpu_read_config_emu()
383 struct nvgrace_gpu_pci_core_device *nvdev = in nvgrace_gpu_write_config_emu() local
395 memregion = nvgrace_gpu_memregion(RESMEM_REGION_INDEX, nvdev); in nvgrace_gpu_write_config_emu()
399 memregion = nvgrace_gpu_memregion(USEMEM_REGION_INDEX, nvdev); in nvgrace_gpu_write_config_emu()
423 struct nvgrace_gpu_pci_core_device *nvdev) in nvgrace_gpu_map_device_mem() argument
428 memregion = nvgrace_gpu_memregion(index, nvdev); in nvgrace_gpu_map_device_mem()
432 mutex_lock(&nvdev->remap_lock); in nvgrace_gpu_map_device_mem()
449 mutex_unlock(&nvdev->remap_lock); in nvgrace_gpu_map_device_mem()
459 nvgrace_gpu_map_and_read(struct nvgrace_gpu_pci_core_device *nvdev, in nvgrace_gpu_map_and_read() argument
473 ret = nvgrace_gpu_map_device_mem(index, nvdev); in nvgrace_gpu_map_and_read()
479 (u8 *)nvdev->usemem.memaddr + offset, in nvgrace_gpu_map_and_read()
491 ret = vfio_pci_core_do_io_rw(&nvdev->core_device, false, in nvgrace_gpu_map_and_read()
492 nvdev->resmem.ioaddr, in nvgrace_gpu_map_and_read()
510 nvgrace_gpu_read_mem(struct nvgrace_gpu_pci_core_device *nvdev, in nvgrace_gpu_read_mem() argument
521 memregion = nvgrace_gpu_memregion(index, nvdev); in nvgrace_gpu_read_mem()
539 ret = nvgrace_gpu_map_and_read(nvdev, buf, mem_count, ppos); in nvgrace_gpu_read_mem()
563 struct nvgrace_gpu_pci_core_device *nvdev = in nvgrace_gpu_read() local
567 if (nvgrace_gpu_memregion(index, nvdev)) in nvgrace_gpu_read()
568 return nvgrace_gpu_read_mem(nvdev, buf, count, ppos); in nvgrace_gpu_read()
581 nvgrace_gpu_map_and_write(struct nvgrace_gpu_pci_core_device *nvdev, in nvgrace_gpu_map_and_write() argument
592 ret = nvgrace_gpu_map_device_mem(index, nvdev); in nvgrace_gpu_map_and_write()
597 if (copy_from_user((u8 *)nvdev->usemem.memaddr + pos, in nvgrace_gpu_map_and_write()
609 ret = vfio_pci_core_do_io_rw(&nvdev->core_device, false, in nvgrace_gpu_map_and_write()
610 nvdev->resmem.ioaddr, in nvgrace_gpu_map_and_write()
627 nvgrace_gpu_write_mem(struct nvgrace_gpu_pci_core_device *nvdev, in nvgrace_gpu_write_mem() argument
637 memregion = nvgrace_gpu_memregion(index, nvdev); in nvgrace_gpu_write_mem()
659 ret = nvgrace_gpu_map_and_write(nvdev, buf, mem_count, ppos); in nvgrace_gpu_write_mem()
672 struct nvgrace_gpu_pci_core_device *nvdev = in nvgrace_gpu_write() local
677 if (nvgrace_gpu_memregion(index, nvdev)) in nvgrace_gpu_write()
678 return nvgrace_gpu_write_mem(nvdev, count, ppos, buf); in nvgrace_gpu_write()
764 struct nvgrace_gpu_pci_core_device *nvdev, in nvgrace_gpu_init_nvdev_struct() argument
790 if (nvdev->has_mig_hw_bug) in nvgrace_gpu_init_nvdev_struct()
793 nvdev->usemem.memphys = memphys; in nvgrace_gpu_init_nvdev_struct()
802 &nvdev->usemem.memlength)) { in nvgrace_gpu_init_nvdev_struct()
811 nvdev->usemem.bar_size = roundup_pow_of_two(nvdev->usemem.memlength); in nvgrace_gpu_init_nvdev_struct()
819 if (!nvdev->has_mig_hw_bug) in nvgrace_gpu_init_nvdev_struct()
830 nvdev->usemem.memlength = round_down(nvdev->usemem.memlength, in nvgrace_gpu_init_nvdev_struct()
832 if (nvdev->usemem.memlength == 0) { in nvgrace_gpu_init_nvdev_struct()
837 if ((check_add_overflow(nvdev->usemem.memphys, in nvgrace_gpu_init_nvdev_struct()
838 nvdev->usemem.memlength, in nvgrace_gpu_init_nvdev_struct()
839 &nvdev->resmem.memphys)) || in nvgrace_gpu_init_nvdev_struct()
840 (check_sub_overflow(memlength, nvdev->usemem.memlength, in nvgrace_gpu_init_nvdev_struct()
841 &nvdev->resmem.memlength))) { in nvgrace_gpu_init_nvdev_struct()
850 nvdev->resmem.bar_size = roundup_pow_of_two(nvdev->resmem.memlength); in nvgrace_gpu_init_nvdev_struct()
938 struct nvgrace_gpu_pci_core_device *nvdev; in nvgrace_gpu_probe() local
950 nvdev = vfio_alloc_device(nvgrace_gpu_pci_core_device, core_device.vdev, in nvgrace_gpu_probe()
952 if (IS_ERR(nvdev)) in nvgrace_gpu_probe()
953 return PTR_ERR(nvdev); in nvgrace_gpu_probe()
955 dev_set_drvdata(&pdev->dev, &nvdev->core_device); in nvgrace_gpu_probe()
958 nvdev->has_mig_hw_bug = nvgrace_gpu_has_mig_hw_bug(pdev); in nvgrace_gpu_probe()
964 ret = nvgrace_gpu_init_nvdev_struct(pdev, nvdev, in nvgrace_gpu_probe()
970 ret = vfio_pci_core_register_device(&nvdev->core_device); in nvgrace_gpu_probe()
977 vfio_put_device(&nvdev->core_device.vdev); in nvgrace_gpu_probe()