Lines Matching full:mdev

10  * @mdev: the modern virtio-pci device
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()
219 * @mdev: the modern virtio-pci device
223 int vp_modern_probe(struct virtio_pci_modern_device *mdev) in vp_modern_probe() argument
225 struct pci_dev *pci_dev = mdev->pci_dev; in vp_modern_probe()
233 if (mdev->device_id_check) { in vp_modern_probe()
234 devid = mdev->device_id_check(pci_dev); in vp_modern_probe()
237 mdev->id.device = devid; in vp_modern_probe()
247 mdev->id.device = pci_dev->subsystem_device; in vp_modern_probe()
250 mdev->id.device = pci_dev->device - 0x1040; in vp_modern_probe()
253 mdev->id.vendor = pci_dev->subsystem_vendor; in vp_modern_probe()
258 &mdev->modern_bars); in vp_modern_probe()
268 &mdev->modern_bars); in vp_modern_probe()
271 &mdev->modern_bars); in vp_modern_probe()
280 mdev->dma_mask ? : DMA_BIT_MASK(64)); in vp_modern_probe()
292 &mdev->modern_bars); in vp_modern_probe()
294 err = pci_request_selected_regions(pci_dev, mdev->modern_bars, in vp_modern_probe()
300 mdev->common = vp_modern_map_capability(mdev, common, in vp_modern_probe()
304 &mdev->common_len, NULL); in vp_modern_probe()
305 if (!mdev->common) in vp_modern_probe()
307 mdev->isr = vp_modern_map_capability(mdev, isr, sizeof(u8), 1, in vp_modern_probe()
310 if (!mdev->isr) in vp_modern_probe()
317 &mdev->notify_offset_multiplier); in vp_modern_probe()
334 mdev->notify_base = vp_modern_map_capability(mdev, notify, in vp_modern_probe()
337 &mdev->notify_len, in vp_modern_probe()
338 &mdev->notify_pa); in vp_modern_probe()
339 if (!mdev->notify_base) in vp_modern_probe()
342 mdev->notify_map_cap = notify; in vp_modern_probe()
349 mdev->device = vp_modern_map_capability(mdev, device, 0, 4, in vp_modern_probe()
351 &mdev->device_len, in vp_modern_probe()
353 if (!mdev->device) in vp_modern_probe()
360 if (mdev->notify_base) in vp_modern_probe()
361 pci_iounmap(pci_dev, mdev->notify_base); in vp_modern_probe()
363 pci_iounmap(pci_dev, mdev->isr); in vp_modern_probe()
365 pci_iounmap(pci_dev, mdev->common); in vp_modern_probe()
367 pci_release_selected_regions(pci_dev, mdev->modern_bars); in vp_modern_probe()
374 * @mdev: the modern virtio-pci device
376 void vp_modern_remove(struct virtio_pci_modern_device *mdev) in vp_modern_remove() argument
378 struct pci_dev *pci_dev = mdev->pci_dev; in vp_modern_remove()
380 if (mdev->device) in vp_modern_remove()
381 pci_iounmap(pci_dev, mdev->device); in vp_modern_remove()
382 if (mdev->notify_base) in vp_modern_remove()
383 pci_iounmap(pci_dev, mdev->notify_base); in vp_modern_remove()
384 pci_iounmap(pci_dev, mdev->isr); in vp_modern_remove()
385 pci_iounmap(pci_dev, mdev->common); in vp_modern_remove()
386 pci_release_selected_regions(pci_dev, mdev->modern_bars); in vp_modern_remove()
392 * @mdev: the modern virtio-pci device
397 void vp_modern_get_extended_features(struct virtio_pci_modern_device *mdev, in vp_modern_get_extended_features() argument
400 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_get_extended_features()
416 * @mdev: the modern virtio-pci device
423 vp_modern_get_driver_extended_features(struct virtio_pci_modern_device *mdev, in vp_modern_get_driver_extended_features() argument
426 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_get_driver_extended_features()
442 * @mdev: the modern virtio-pci device
445 void vp_modern_set_extended_features(struct virtio_pci_modern_device *mdev, in vp_modern_set_extended_features() argument
448 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_set_extended_features()
462 * @mdev: the modern virtio-pci device
466 u32 vp_modern_generation(struct virtio_pci_modern_device *mdev) in vp_modern_generation() argument
468 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_generation()
476 * @mdev: the modern virtio-pci device
480 u8 vp_modern_get_status(struct virtio_pci_modern_device *mdev) in vp_modern_get_status() argument
482 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_get_status()
490 * @mdev: the modern virtio-pci device
493 void vp_modern_set_status(struct virtio_pci_modern_device *mdev, in vp_modern_set_status() argument
496 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_set_status()
509 * @mdev: the modern virtio-pci device
512 int vp_modern_get_queue_reset(struct virtio_pci_modern_device *mdev, u16 index) in vp_modern_get_queue_reset() argument
516 cfg = (struct virtio_pci_modern_common_cfg __iomem *)mdev->common; in vp_modern_get_queue_reset()
525 * @mdev: the modern virtio-pci device
528 void vp_modern_set_queue_reset(struct virtio_pci_modern_device *mdev, u16 index) in vp_modern_set_queue_reset() argument
532 cfg = (struct virtio_pci_modern_common_cfg __iomem *)mdev->common; in vp_modern_set_queue_reset()
547 * @mdev: the modern virtio-pci device
553 u16 vp_modern_queue_vector(struct virtio_pci_modern_device *mdev, in vp_modern_queue_vector() argument
556 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_queue_vector()
567 * @mdev: the modern virtio-pci device
572 u16 vp_modern_config_vector(struct virtio_pci_modern_device *mdev, in vp_modern_config_vector() argument
575 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_config_vector()
587 * @mdev: the modern virtio-pci device
593 void vp_modern_queue_address(struct virtio_pci_modern_device *mdev, in vp_modern_queue_address() argument
597 struct virtio_pci_common_cfg __iomem *cfg = mdev->common; in vp_modern_queue_address()
612 * @mdev: the modern virtio-pci device
616 void vp_modern_set_queue_enable(struct virtio_pci_modern_device *mdev, in vp_modern_set_queue_enable() argument
619 vp_iowrite16(index, &mdev->common->queue_select); in vp_modern_set_queue_enable()
620 vp_iowrite16(enable, &mdev->common->queue_enable); in vp_modern_set_queue_enable()
626 * @mdev: the modern virtio-pci device
631 bool vp_modern_get_queue_enable(struct virtio_pci_modern_device *mdev, in vp_modern_get_queue_enable() argument
634 vp_iowrite16(index, &mdev->common->queue_select); in vp_modern_get_queue_enable()
636 return vp_ioread16(&mdev->common->queue_enable); in vp_modern_get_queue_enable()
642 * @mdev: the modern virtio-pci device
646 void vp_modern_set_queue_size(struct virtio_pci_modern_device *mdev, in vp_modern_set_queue_size() argument
649 vp_iowrite16(index, &mdev->common->queue_select); in vp_modern_set_queue_size()
650 vp_iowrite16(size, &mdev->common->queue_size); in vp_modern_set_queue_size()
657 * @mdev: the modern virtio-pci device
662 u16 vp_modern_get_queue_size(struct virtio_pci_modern_device *mdev, in vp_modern_get_queue_size() argument
665 vp_iowrite16(index, &mdev->common->queue_select); in vp_modern_get_queue_size()
667 return vp_ioread16(&mdev->common->queue_size); in vp_modern_get_queue_size()
674 * @mdev: the modern virtio-pci device
678 u16 vp_modern_get_num_queues(struct virtio_pci_modern_device *mdev) in vp_modern_get_num_queues() argument
680 return vp_ioread16(&mdev->common->num_queues); in vp_modern_get_num_queues()
686 * @mdev: the modern virtio-pci device
691 static u16 vp_modern_get_queue_notify_off(struct virtio_pci_modern_device *mdev, in vp_modern_get_queue_notify_off() argument
694 vp_iowrite16(index, &mdev->common->queue_select); in vp_modern_get_queue_notify_off()
696 return vp_ioread16(&mdev->common->queue_notify_off); in vp_modern_get_queue_notify_off()
702 * @mdev: the modern virtio-pci device
708 void __iomem *vp_modern_map_vq_notify(struct virtio_pci_modern_device *mdev, in vp_modern_map_vq_notify() argument
711 u16 off = vp_modern_get_queue_notify_off(mdev, index); in vp_modern_map_vq_notify()
713 if (mdev->notify_base) { in vp_modern_map_vq_notify()
715 if ((u64)off * mdev->notify_offset_multiplier + 2 in vp_modern_map_vq_notify()
716 > mdev->notify_len) { in vp_modern_map_vq_notify()
717 dev_warn(&mdev->pci_dev->dev, in vp_modern_map_vq_notify()
720 off, mdev->notify_offset_multiplier, in vp_modern_map_vq_notify()
721 index, mdev->notify_len); in vp_modern_map_vq_notify()
725 *pa = mdev->notify_pa + in vp_modern_map_vq_notify()
726 off * mdev->notify_offset_multiplier; in vp_modern_map_vq_notify()
727 return mdev->notify_base + off * mdev->notify_offset_multiplier; in vp_modern_map_vq_notify()
729 return vp_modern_map_capability(mdev, in vp_modern_map_vq_notify()
730 mdev->notify_map_cap, 2, 2, in vp_modern_map_vq_notify()
731 off * mdev->notify_offset_multiplier, 2, in vp_modern_map_vq_notify()
737 u16 vp_modern_avq_num(struct virtio_pci_modern_device *mdev) in vp_modern_avq_num() argument
741 cfg = (struct virtio_pci_modern_common_cfg __iomem *)mdev->common; in vp_modern_avq_num()
746 u16 vp_modern_avq_index(struct virtio_pci_modern_device *mdev) in vp_modern_avq_index() argument
750 cfg = (struct virtio_pci_modern_common_cfg __iomem *)mdev->common; in vp_modern_avq_index()