Lines Matching full:dev

18     QVirtioPCIDevice *dev = container_of(d, QVirtioPCIDevice, vdev);  in config_readb()  local
19 return qpci_io_readb(dev->pdev, dev->bar, dev->device_cfg_offset + addr); in config_readb()
24 QVirtioPCIDevice *dev = container_of(d, QVirtioPCIDevice, vdev); in config_readw() local
25 return qpci_io_readw(dev->pdev, dev->bar, dev->device_cfg_offset + addr); in config_readw()
30 QVirtioPCIDevice *dev = container_of(d, QVirtioPCIDevice, vdev); in config_readl() local
31 return qpci_io_readl(dev->pdev, dev->bar, dev->device_cfg_offset + addr); in config_readl()
36 QVirtioPCIDevice *dev = container_of(d, QVirtioPCIDevice, vdev); in config_readq() local
37 return qpci_io_readq(dev->pdev, dev->bar, dev->device_cfg_offset + addr); in config_readq()
42 QVirtioPCIDevice *dev = container_of(d, QVirtioPCIDevice, vdev); in get_features() local
45 qpci_io_writel(dev->pdev, dev->bar, dev->common_cfg_offset + in get_features()
49 lo = qpci_io_readl(dev->pdev, dev->bar, dev->common_cfg_offset + in get_features()
52 qpci_io_writel(dev->pdev, dev->bar, dev->common_cfg_offset + in get_features()
56 hi = qpci_io_readl(dev->pdev, dev->bar, dev->common_cfg_offset + in get_features()
64 QVirtioPCIDevice *dev = container_of(d, QVirtioPCIDevice, vdev); in set_features() local
69 qpci_io_writel(dev->pdev, dev->bar, dev->common_cfg_offset + in set_features()
73 qpci_io_writel(dev->pdev, dev->bar, dev->common_cfg_offset + in set_features()
77 qpci_io_writel(dev->pdev, dev->bar, dev->common_cfg_offset + in set_features()
81 qpci_io_writel(dev->pdev, dev->bar, dev->common_cfg_offset + in set_features()
89 QVirtioPCIDevice *dev = container_of(d, QVirtioPCIDevice, vdev); in get_guest_features() local
92 qpci_io_writel(dev->pdev, dev->bar, dev->common_cfg_offset + in get_guest_features()
96 lo = qpci_io_readl(dev->pdev, dev->bar, dev->common_cfg_offset + in get_guest_features()
99 qpci_io_writel(dev->pdev, dev->bar, dev->common_cfg_offset + in get_guest_features()
103 hi = qpci_io_readl(dev->pdev, dev->bar, dev->common_cfg_offset + in get_guest_features()
111 QVirtioPCIDevice *dev = container_of(d, QVirtioPCIDevice, vdev); in get_status() local
113 return qpci_io_readb(dev->pdev, dev->bar, dev->common_cfg_offset + in get_status()
120 QVirtioPCIDevice *dev = container_of(d, QVirtioPCIDevice, vdev); in set_status() local
122 return qpci_io_writeb(dev->pdev, dev->bar, dev->common_cfg_offset + in set_status()
128 static bool get_msix_status(QVirtioPCIDevice *dev, uint32_t msix_entry, in get_msix_status() argument
134 if (qpci_msix_masked(dev->pdev, msix_entry)) { in get_msix_status()
136 return qpci_msix_pending(dev->pdev, msix_entry); in get_msix_status()
139 data = qtest_readl(dev->pdev->bus->qts, msix_addr); in get_msix_status()
141 qtest_writel(dev->pdev->bus->qts, msix_addr, 0); in get_msix_status()
150 QVirtioPCIDevice *dev = container_of(d, QVirtioPCIDevice, vdev); in get_queue_isr_status() local
152 if (dev->pdev->msix_enabled) { in get_queue_isr_status()
155 return get_msix_status(dev, vqpci->msix_entry, vqpci->msix_addr, in get_queue_isr_status()
159 return qpci_io_readb(dev->pdev, dev->bar, dev->isr_cfg_offset) & 1; in get_queue_isr_status()
164 QVirtioPCIDevice *dev = container_of(d, QVirtioPCIDevice, vdev); in get_config_isr_status() local
166 if (dev->pdev->msix_enabled) { in get_config_isr_status()
167 return get_msix_status(dev, dev->config_msix_entry, in get_config_isr_status()
168 dev->config_msix_addr, dev->config_msix_data); in get_config_isr_status()
171 return qpci_io_readb(dev->pdev, dev->bar, dev->isr_cfg_offset) & 2; in get_config_isr_status()
185 QVirtioPCIDevice *dev = container_of(d, QVirtioPCIDevice, vdev); in queue_select() local
187 qpci_io_writew(dev->pdev, dev->bar, dev->common_cfg_offset + in queue_select()
194 QVirtioPCIDevice *dev = container_of(d, QVirtioPCIDevice, vdev); in get_queue_size() local
196 return qpci_io_readw(dev->pdev, dev->bar, dev->common_cfg_offset + in get_queue_size()
202 QVirtioPCIDevice *dev = container_of(d, QVirtioPCIDevice, vdev); in set_queue_address() local
204 qpci_io_writel(dev->pdev, dev->bar, dev->common_cfg_offset + in set_queue_address()
207 qpci_io_writel(dev->pdev, dev->bar, dev->common_cfg_offset + in set_queue_address()
211 qpci_io_writel(dev->pdev, dev->bar, dev->common_cfg_offset + in set_queue_address()
214 qpci_io_writel(dev->pdev, dev->bar, dev->common_cfg_offset + in set_queue_address()
218 qpci_io_writel(dev->pdev, dev->bar, dev->common_cfg_offset + in set_queue_address()
221 qpci_io_writel(dev->pdev, dev->bar, dev->common_cfg_offset + in set_queue_address()
229 QVirtioPCIDevice *dev = container_of(d, QVirtioPCIDevice, vdev); in virtqueue_setup() local
237 notify_off = qpci_io_readw(dev->pdev, dev->bar, dev->common_cfg_offset + in virtqueue_setup()
241 vqpci->notify_offset = dev->notify_cfg_offset + in virtqueue_setup()
242 notify_off * dev->notify_off_multiplier; in virtqueue_setup()
244 qpci_io_writew(dev->pdev, dev->bar, dev->common_cfg_offset + in virtqueue_setup()
252 QVirtioPCIDevice *dev = container_of(d, QVirtioPCIDevice, vdev); in virtqueue_kick() local
255 qpci_io_writew(dev->pdev, dev->bar, vqpci->notify_offset, vq->index); in virtqueue_kick()
310 static bool probe_device_type(QVirtioPCIDevice *dev) in probe_device_type() argument
316 vendor_id = qpci_config_readw(dev->pdev, PCI_VENDOR_ID); in probe_device_type()
325 device_id = qpci_config_readw(dev->pdev, PCI_DEVICE_ID); in probe_device_type()
339 dev->vdev.device_type = qpci_config_readw(dev->pdev, PCI_SUBSYSTEM_ID); in probe_device_type()
345 dev->vdev.device_type = device_id - 0x1040; in probe_device_type()
352 static bool find_structure(QVirtioPCIDevice *dev, uint8_t cfg_type, in find_structure() argument
358 while ((addr = qpci_find_capability(dev->pdev, PCI_CAP_ID_VNDR, in find_structure()
362 type = qpci_config_readb(dev->pdev, in find_structure()
368 *bar = qpci_config_readb(dev->pdev, in find_structure()
370 *offset = qpci_config_readl(dev->pdev, in find_structure()
372 *length = qpci_config_readl(dev->pdev, in find_structure()
384 static bool probe_device_layout(QVirtioPCIDevice *dev) in probe_device_layout() argument
395 if (!find_structure(dev, VIRTIO_PCI_CAP_COMMON_CFG, &bar, in probe_device_layout()
396 &dev->common_cfg_offset, &length, NULL)) { in probe_device_layout()
399 dev->bar_idx = bar; in probe_device_layout()
401 if (!find_structure(dev, VIRTIO_PCI_CAP_NOTIFY_CFG, &bar, in probe_device_layout()
402 &dev->notify_cfg_offset, &length, &cfg_addr)) { in probe_device_layout()
405 g_assert_cmphex(bar, ==, dev->bar_idx); in probe_device_layout()
407 dev->notify_off_multiplier = qpci_config_readl(dev->pdev, in probe_device_layout()
411 if (!find_structure(dev, VIRTIO_PCI_CAP_ISR_CFG, &bar, in probe_device_layout()
412 &dev->isr_cfg_offset, &length, NULL)) { in probe_device_layout()
415 g_assert_cmphex(bar, ==, dev->bar_idx); in probe_device_layout()
417 if (!find_structure(dev, VIRTIO_PCI_CAP_DEVICE_CFG, &bar, in probe_device_layout()
418 &dev->device_cfg_offset, &length, NULL)) { in probe_device_layout()
421 g_assert_cmphex(bar, ==, dev->bar_idx); in probe_device_layout()
427 bool qvirtio_pci_init_virtio_1(QVirtioPCIDevice *dev) in qvirtio_pci_init_virtio_1() argument
429 if (!probe_device_type(dev)) { in qvirtio_pci_init_virtio_1()
433 if (!probe_device_layout(dev)) { in qvirtio_pci_init_virtio_1()
437 dev->vdev.bus = &qvirtio_pci_virtio_1; in qvirtio_pci_init_virtio_1()
438 dev->msix_ops = &qvirtio_pci_msix_ops_virtio_1; in qvirtio_pci_init_virtio_1()
439 dev->vdev.big_endian = false; in qvirtio_pci_init_virtio_1()