Lines Matching refs:mdev

22 vp_modern_map_capability(struct virtio_pci_modern_device *mdev, int off,  in vp_modern_map_capability()  argument
26 struct pci_dev *dev = mdev->pci_dev; in vp_modern_map_capability()
40 if (bar >= PCI_STD_NUM_BARS || !(mdev->modern_bars & (1 << bar))) { in vp_modern_map_capability()
215 int vp_modern_probe(struct virtio_pci_modern_device *mdev) in vp_modern_probe() argument
217 struct pci_dev *pci_dev = mdev->pci_dev; in vp_modern_probe()
225 if (mdev->device_id_check) { in vp_modern_probe()
226 devid = mdev->device_id_check(pci_dev); in vp_modern_probe()
229 mdev->id.device = devid; in vp_modern_probe()
239 mdev->id.device = pci_dev->subsystem_device; in vp_modern_probe()
242 mdev->id.device = pci_dev->device - 0x1040; in vp_modern_probe()
245 mdev->id.vendor = pci_dev->subsystem_vendor; in vp_modern_probe()
250 &mdev->modern_bars); in vp_modern_probe()
260 &mdev->modern_bars); in vp_modern_probe()
263 &mdev->modern_bars); in vp_modern_probe()
272 mdev->dma_mask ? : DMA_BIT_MASK(64)); in vp_modern_probe()
284 &mdev->modern_bars); in vp_modern_probe()
286 err = pci_request_selected_regions(pci_dev, mdev->modern_bars, in vp_modern_probe()
292 mdev->common = vp_modern_map_capability(mdev, common, in vp_modern_probe()
296 if (!mdev->common) in vp_modern_probe()
298 mdev->isr = vp_modern_map_capability(mdev, isr, sizeof(u8), 1, in vp_modern_probe()
301 if (!mdev->isr) in vp_modern_probe()
308 &mdev->notify_offset_multiplier); in vp_modern_probe()
325 mdev->notify_base = vp_modern_map_capability(mdev, notify, in vp_modern_probe()
328 &mdev->notify_len, in vp_modern_probe()
329 &mdev->notify_pa); in vp_modern_probe()
330 if (!mdev->notify_base) in vp_modern_probe()
333 mdev->notify_map_cap = notify; in vp_modern_probe()
340 mdev->device = vp_modern_map_capability(mdev, device, 0, 4, in vp_modern_probe()
342 &mdev->device_len, in vp_modern_probe()
344 if (!mdev->device) in vp_modern_probe()
351 if (mdev->notify_base) in vp_modern_probe()
352 pci_iounmap(pci_dev, mdev->notify_base); in vp_modern_probe()
354 pci_iounmap(pci_dev, mdev->isr); in vp_modern_probe()
356 pci_iounmap(pci_dev, mdev->common); in vp_modern_probe()
358 pci_release_selected_regions(pci_dev, mdev->modern_bars); in vp_modern_probe()
367 void vp_modern_remove(struct virtio_pci_modern_device *mdev) in vp_modern_remove() argument
369 struct pci_dev *pci_dev = mdev->pci_dev; in vp_modern_remove()
371 if (mdev->device) in vp_modern_remove()
372 pci_iounmap(pci_dev, mdev->device); in vp_modern_remove()
373 if (mdev->notify_base) in vp_modern_remove()
374 pci_iounmap(pci_dev, mdev->notify_base); in vp_modern_remove()
375 pci_iounmap(pci_dev, mdev->isr); in vp_modern_remove()
376 pci_iounmap(pci_dev, mdev->common); in vp_modern_remove()
377 pci_release_selected_regions(pci_dev, mdev->modern_bars); in vp_modern_remove()
387 u64 vp_modern_get_features(struct virtio_pci_modern_device *mdev) in vp_modern_get_features() argument
389 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_get_features()
408 u64 vp_modern_get_driver_features(struct virtio_pci_modern_device *mdev) in vp_modern_get_driver_features() argument
410 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_get_driver_features()
428 void vp_modern_set_features(struct virtio_pci_modern_device *mdev, in vp_modern_set_features() argument
431 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_set_features()
446 u32 vp_modern_generation(struct virtio_pci_modern_device *mdev) in vp_modern_generation() argument
448 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_generation()
460 u8 vp_modern_get_status(struct virtio_pci_modern_device *mdev) in vp_modern_get_status() argument
462 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_get_status()
473 void vp_modern_set_status(struct virtio_pci_modern_device *mdev, in vp_modern_set_status() argument
476 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_set_status()
492 int vp_modern_get_queue_reset(struct virtio_pci_modern_device *mdev, u16 index) in vp_modern_get_queue_reset() argument
496 cfg = (struct virtio_pci_modern_common_cfg __iomem *)mdev->common; in vp_modern_get_queue_reset()
508 void vp_modern_set_queue_reset(struct virtio_pci_modern_device *mdev, u16 index) in vp_modern_set_queue_reset() argument
512 cfg = (struct virtio_pci_modern_common_cfg __iomem *)mdev->common; in vp_modern_set_queue_reset()
533 u16 vp_modern_queue_vector(struct virtio_pci_modern_device *mdev, in vp_modern_queue_vector() argument
536 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_queue_vector()
552 u16 vp_modern_config_vector(struct virtio_pci_modern_device *mdev, in vp_modern_config_vector() argument
555 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_config_vector()
573 void vp_modern_queue_address(struct virtio_pci_modern_device *mdev, in vp_modern_queue_address() argument
577 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_queue_address()
596 void vp_modern_set_queue_enable(struct virtio_pci_modern_device *mdev, in vp_modern_set_queue_enable() argument
599 vp_iowrite16(index, &mdev->common->queue_select); in vp_modern_set_queue_enable()
600 vp_iowrite16(enable, &mdev->common->queue_enable); in vp_modern_set_queue_enable()
611 bool vp_modern_get_queue_enable(struct virtio_pci_modern_device *mdev, in vp_modern_get_queue_enable() argument
614 vp_iowrite16(index, &mdev->common->queue_select); in vp_modern_get_queue_enable()
616 return vp_ioread16(&mdev->common->queue_enable); in vp_modern_get_queue_enable()
626 void vp_modern_set_queue_size(struct virtio_pci_modern_device *mdev, in vp_modern_set_queue_size() argument
629 vp_iowrite16(index, &mdev->common->queue_select); in vp_modern_set_queue_size()
630 vp_iowrite16(size, &mdev->common->queue_size); in vp_modern_set_queue_size()
642 u16 vp_modern_get_queue_size(struct virtio_pci_modern_device *mdev, in vp_modern_get_queue_size() argument
645 vp_iowrite16(index, &mdev->common->queue_select); in vp_modern_get_queue_size()
647 return vp_ioread16(&mdev->common->queue_size); in vp_modern_get_queue_size()
658 u16 vp_modern_get_num_queues(struct virtio_pci_modern_device *mdev) in vp_modern_get_num_queues() argument
660 return vp_ioread16(&mdev->common->num_queues); in vp_modern_get_num_queues()
671 static u16 vp_modern_get_queue_notify_off(struct virtio_pci_modern_device *mdev, in vp_modern_get_queue_notify_off() argument
674 vp_iowrite16(index, &mdev->common->queue_select); in vp_modern_get_queue_notify_off()
676 return vp_ioread16(&mdev->common->queue_notify_off); in vp_modern_get_queue_notify_off()
688 void __iomem *vp_modern_map_vq_notify(struct virtio_pci_modern_device *mdev, in vp_modern_map_vq_notify() argument
691 u16 off = vp_modern_get_queue_notify_off(mdev, index); in vp_modern_map_vq_notify()
693 if (mdev->notify_base) { in vp_modern_map_vq_notify()
695 if ((u64)off * mdev->notify_offset_multiplier + 2 in vp_modern_map_vq_notify()
696 > mdev->notify_len) { in vp_modern_map_vq_notify()
697 dev_warn(&mdev->pci_dev->dev, in vp_modern_map_vq_notify()
700 off, mdev->notify_offset_multiplier, in vp_modern_map_vq_notify()
701 index, mdev->notify_len); in vp_modern_map_vq_notify()
705 *pa = mdev->notify_pa + in vp_modern_map_vq_notify()
706 off * mdev->notify_offset_multiplier; in vp_modern_map_vq_notify()
707 return mdev->notify_base + off * mdev->notify_offset_multiplier; in vp_modern_map_vq_notify()
709 return vp_modern_map_capability(mdev, in vp_modern_map_vq_notify()
710 mdev->notify_map_cap, 2, 2, in vp_modern_map_vq_notify()
711 off * mdev->notify_offset_multiplier, 2, in vp_modern_map_vq_notify()