Lines Matching defs:mdev

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