Lines Matching refs:vdev
27 struct virtio_device *vdev; member
277 struct virtio_blk *vblk = vq->vdev->priv; in virtblk_done()
448 if (!virtio_has_feature(vblk->vdev, VIRTIO_BLK_F_SCSI)) in virtblk_ioctl()
463 err = virtio_config_val(vblk->vdev, VIRTIO_BLK_F_GEOMETRY, in virtblk_getgeo()
521 struct virtio_device *vdev = vblk->vdev; in virtblk_config_changed_work() local
532 vdev->config->get(vdev, offsetof(struct virtio_blk_config, capacity), in virtblk_config_changed_work()
537 dev_warn(&vdev->dev, "Capacity %llu too large: truncating\n", in virtblk_config_changed_work()
546 dev_notice(&vdev->dev, in virtblk_config_changed_work()
559 static void virtblk_config_changed(struct virtio_device *vdev) in virtblk_config_changed() argument
561 struct virtio_blk *vblk = vdev->priv; in virtblk_config_changed()
571 vblk->vq = virtio_find_single_vq(vblk->vdev, virtblk_done, "requests"); in init_vq()
606 static int virtblk_get_cache_mode(struct virtio_device *vdev) in virtblk_get_cache_mode() argument
611 err = virtio_config_val(vdev, VIRTIO_BLK_F_CONFIG_WCE, in virtblk_get_cache_mode()
615 writeback = virtio_has_feature(vdev, VIRTIO_BLK_F_WCE); in virtblk_get_cache_mode()
620 static void virtblk_update_cache_mode(struct virtio_device *vdev) in virtblk_update_cache_mode() argument
622 u8 writeback = virtblk_get_cache_mode(vdev); in virtblk_update_cache_mode()
623 struct virtio_blk *vblk = vdev->priv; in virtblk_update_cache_mode()
643 struct virtio_device *vdev = vblk->vdev; in virtblk_cache_type_store() local
647 BUG_ON(!virtio_has_feature(vblk->vdev, VIRTIO_BLK_F_CONFIG_WCE)); in virtblk_cache_type_store()
656 vdev->config->set(vdev, in virtblk_cache_type_store()
660 virtblk_update_cache_mode(vdev); in virtblk_cache_type_store()
670 u8 writeback = virtblk_get_cache_mode(vblk->vdev); in virtblk_cache_type_show()
683 static int virtblk_probe(struct virtio_device *vdev) in virtblk_probe() argument
702 err = virtio_config_val(vdev, VIRTIO_BLK_F_SEG_MAX, in virtblk_probe()
712 vdev->priv = vblk = kmalloc(sizeof(*vblk) + in virtblk_probe()
720 vblk->vdev = vdev; in virtblk_probe()
764 vblk->disk->driverfs_dev = &vdev->dev; in virtblk_probe()
768 virtblk_update_cache_mode(vdev); in virtblk_probe()
771 if (virtio_has_feature(vdev, VIRTIO_BLK_F_RO)) in virtblk_probe()
775 vdev->config->get(vdev, offsetof(struct virtio_blk_config, capacity), in virtblk_probe()
780 dev_warn(&vdev->dev, "Capacity %llu too large: truncating\n", in virtblk_probe()
797 err = virtio_config_val(vdev, VIRTIO_BLK_F_SIZE_MAX, in virtblk_probe()
806 err = virtio_config_val(vdev, VIRTIO_BLK_F_BLK_SIZE, in virtblk_probe()
815 err = virtio_config_val(vdev, VIRTIO_BLK_F_TOPOLOGY, in virtblk_probe()
822 err = virtio_config_val(vdev, VIRTIO_BLK_F_TOPOLOGY, in virtblk_probe()
828 err = virtio_config_val(vdev, VIRTIO_BLK_F_TOPOLOGY, in virtblk_probe()
834 err = virtio_config_val(vdev, VIRTIO_BLK_F_TOPOLOGY, in virtblk_probe()
845 if (virtio_has_feature(vdev, VIRTIO_BLK_F_CONFIG_WCE)) in virtblk_probe()
863 vdev->config->del_vqs(vdev); in virtblk_probe()
872 static void virtblk_remove(struct virtio_device *vdev) in virtblk_remove() argument
874 struct virtio_blk *vblk = vdev->priv; in virtblk_remove()
887 vdev->config->reset(vdev); in virtblk_remove()
894 vdev->config->del_vqs(vdev); in virtblk_remove()
903 static int virtblk_freeze(struct virtio_device *vdev) in virtblk_freeze() argument
905 struct virtio_blk *vblk = vdev->priv; in virtblk_freeze()
908 vdev->config->reset(vdev); in virtblk_freeze()
922 vdev->config->del_vqs(vdev); in virtblk_freeze()
926 static int virtblk_restore(struct virtio_device *vdev) in virtblk_restore() argument
928 struct virtio_blk *vblk = vdev->priv; in virtblk_restore()
932 ret = init_vq(vdev->priv); in virtblk_restore()