diff options
author | Jason Wang <jasowang@redhat.com> | 2021-06-02 05:15:34 +0300 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2021-07-08 14:49:01 +0300 |
commit | 0140b3d07617e71a8d9509776434ced107572fc8 (patch) | |
tree | efc7f7241de3ea804dfadc3b19ebb4da9b52b8dd /drivers | |
parent | 530a5678bc0083e84f99f38f77ced8fbb3d18434 (diff) | |
download | linux-0140b3d07617e71a8d9509776434ced107572fc8.tar.xz |
virtio-pci library: introduce vp_modern_get_driver_features()
This patch introduce a helper to get driver/guest features from the
device.
Signed-off-by: Jason Wang <jasowang@redhat.com>
Link: https://lore.kernel.org/r/20210602021536.39525-3-jasowang@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eli Cohen <elic@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/virtio/virtio_pci_modern_dev.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/virtio/virtio_pci_modern_dev.c b/drivers/virtio/virtio_pci_modern_dev.c index 54f297028586..e11ed748e661 100644 --- a/drivers/virtio/virtio_pci_modern_dev.c +++ b/drivers/virtio/virtio_pci_modern_dev.c @@ -384,6 +384,27 @@ u64 vp_modern_get_features(struct virtio_pci_modern_device *mdev) EXPORT_SYMBOL_GPL(vp_modern_get_features); /* + * vp_modern_get_driver_features - get driver features from device + * @mdev: the modern virtio-pci device + * + * Returns the driver features read from the device + */ +u64 vp_modern_get_driver_features(struct virtio_pci_modern_device *mdev) +{ + struct virtio_pci_common_cfg __iomem *cfg = mdev->common; + + u64 features; + + vp_iowrite32(0, &cfg->guest_feature_select); + features = vp_ioread32(&cfg->guest_feature); + vp_iowrite32(1, &cfg->guest_feature_select); + features |= ((u64)vp_ioread32(&cfg->guest_feature) << 32); + + return features; +} +EXPORT_SYMBOL_GPL(vp_modern_get_driver_features); + +/* * vp_modern_set_features - set features to device * @mdev: the modern virtio-pci device * @features: the features set to device |