Lines Matching refs:udev

105 static int virtio_pci_get_config(struct udevice *udev, unsigned int offset,  in virtio_pci_get_config()  argument
108 struct virtio_pci_priv *priv = dev_get_priv(udev); in virtio_pci_get_config()
141 static int virtio_pci_set_config(struct udevice *udev, unsigned int offset, in virtio_pci_set_config() argument
144 struct virtio_pci_priv *priv = dev_get_priv(udev); in virtio_pci_set_config()
177 static int virtio_pci_generation(struct udevice *udev, u32 *counter) in virtio_pci_generation() argument
179 struct virtio_pci_priv *priv = dev_get_priv(udev); in virtio_pci_generation()
186 static int virtio_pci_get_status(struct udevice *udev, u8 *status) in virtio_pci_get_status() argument
188 struct virtio_pci_priv *priv = dev_get_priv(udev); in virtio_pci_get_status()
195 static int virtio_pci_set_status(struct udevice *udev, u8 status) in virtio_pci_set_status() argument
197 struct virtio_pci_priv *priv = dev_get_priv(udev); in virtio_pci_set_status()
207 static int virtio_pci_reset(struct udevice *udev) in virtio_pci_reset() argument
209 struct virtio_pci_priv *priv = dev_get_priv(udev); in virtio_pci_reset()
226 static int virtio_pci_get_features(struct udevice *udev, u64 *features) in virtio_pci_get_features() argument
228 struct virtio_pci_priv *priv = dev_get_priv(udev); in virtio_pci_get_features()
238 static int virtio_pci_set_features(struct udevice *udev) in virtio_pci_set_features() argument
240 struct virtio_pci_priv *priv = dev_get_priv(udev); in virtio_pci_set_features()
241 struct virtio_dev_priv *uc_priv = dev_get_uclass_priv(udev); in virtio_pci_set_features()
243 if (!__virtio_test_bit(udev, VIRTIO_F_VERSION_1)) { in virtio_pci_set_features()
256 static struct virtqueue *virtio_pci_setup_vq(struct udevice *udev, in virtio_pci_setup_vq() argument
259 struct virtio_pci_priv *priv = dev_get_priv(udev); in virtio_pci_setup_vq()
278 printf("(%s): bad queue size %u", udev->name, num); in virtio_pci_setup_vq()
283 vq = vring_create_virtqueue(index, num, VIRTIO_PCI_VRING_ALIGN, udev); in virtio_pci_setup_vq()
325 static int virtio_pci_del_vqs(struct udevice *udev) in virtio_pci_del_vqs() argument
327 struct virtio_dev_priv *uc_priv = dev_get_uclass_priv(udev); in virtio_pci_del_vqs()
336 static int virtio_pci_find_vqs(struct udevice *udev, unsigned int nvqs, in virtio_pci_find_vqs() argument
342 vqs[i] = virtio_pci_setup_vq(udev, i); in virtio_pci_find_vqs()
344 virtio_pci_del_vqs(udev); in virtio_pci_find_vqs()
352 static int virtio_pci_notify(struct udevice *udev, struct virtqueue *vq) in virtio_pci_notify() argument
354 struct virtio_pci_priv *priv = dev_get_priv(udev); in virtio_pci_notify()
381 static int virtio_pci_find_capability(struct udevice *udev, u8 cfg_type) in virtio_pci_find_capability() argument
387 for (pos = dm_pci_find_capability(udev, PCI_CAP_ID_VNDR); in virtio_pci_find_capability()
389 pos = dm_pci_find_next_capability(udev, pos, PCI_CAP_ID_VNDR)) { in virtio_pci_find_capability()
391 dm_pci_read_config8(udev, offset, &type); in virtio_pci_find_capability()
393 dm_pci_read_config8(udev, offset, &bar); in virtio_pci_find_capability()
414 static void __iomem *virtio_pci_map_capability(struct udevice *udev, int off) in virtio_pci_map_capability() argument
425 dm_pci_read_config8(udev, offset, &bar); in virtio_pci_map_capability()
427 dm_pci_read_config32(udev, offset, &offset); in virtio_pci_map_capability()
435 base = dm_pci_read_bar32(udev, bar); in virtio_pci_map_capability()
441 static int virtio_pci_bind(struct udevice *udev) in virtio_pci_bind() argument
448 device_set_name(udev, name); in virtio_pci_bind()
453 static int virtio_pci_probe(struct udevice *udev) in virtio_pci_probe() argument
455 struct pci_child_platdata *pplat = dev_get_parent_platdata(udev); in virtio_pci_probe()
456 struct virtio_dev_priv *uc_priv = dev_get_uclass_priv(udev); in virtio_pci_probe()
457 struct virtio_pci_priv *priv = dev_get_priv(udev); in virtio_pci_probe()
468 dm_pci_read_config8(udev, PCI_REVISION_ID, &revision); in virtio_pci_probe()
472 dm_pci_read_config16(udev, PCI_SUBSYSTEM_VENDOR_ID, &subvendor); in virtio_pci_probe()
476 common = virtio_pci_find_capability(udev, VIRTIO_PCI_CAP_COMMON_CFG); in virtio_pci_probe()
478 printf("(%s): leaving for legacy driver\n", udev->name); in virtio_pci_probe()
483 notify = virtio_pci_find_capability(udev, VIRTIO_PCI_CAP_NOTIFY_CFG); in virtio_pci_probe()
485 printf("(%s): missing capabilities %i/%i\n", udev->name, in virtio_pci_probe()
494 device = virtio_pci_find_capability(udev, VIRTIO_PCI_CAP_DEVICE_CFG); in virtio_pci_probe()
497 dm_pci_read_config32(udev, offset, &priv->device_len); in virtio_pci_probe()
501 priv->common = virtio_pci_map_capability(udev, common); in virtio_pci_probe()
502 priv->notify_base = virtio_pci_map_capability(udev, notify); in virtio_pci_probe()
503 priv->device = virtio_pci_map_capability(udev, device); in virtio_pci_probe()
505 udev, priv->common, priv->notify_base, priv->device); in virtio_pci_probe()
510 dm_pci_read_config32(udev, offset, &priv->notify_offset_multiplier); in virtio_pci_probe()
512 debug("(%s): device (%d) vendor (%08x) version (%d)\n", udev->name, in virtio_pci_probe()