All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gurchetan Singh <gurchetansingh@chromium.org>
To: dri-devel@lists.freedesktop.org
Cc: kraxel@redhat.com
Subject: [PATCH v4 09/19] drm/virtio: implement blob resources: probe for host visible region
Date: Wed, 23 Sep 2020 17:32:04 -0700	[thread overview]
Message-ID: <20200924003214.662-9-gurchetansingh@chromium.org> (raw)
In-Reply-To: <20200924003214.662-1-gurchetansingh@chromium.org>

From: Gerd Hoffmann <kraxel@redhat.com>

The availability of the host visible region means host 3D
allocations can be directly mapped in the guest.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Co-developed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Signed-off-by: Gurchetan Singh <gurchetansingh@chromium.org>
Acked-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 drivers/gpu/drm/virtio/virtgpu_debugfs.c |  5 +++++
 drivers/gpu/drm/virtio/virtgpu_drv.h     |  2 ++
 drivers/gpu/drm/virtio/virtgpu_kms.c     | 20 ++++++++++++++++++--
 3 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/virtio/virtgpu_debugfs.c b/drivers/gpu/drm/virtio/virtgpu_debugfs.c
index 6b9b8376613f0..a2cdd267914ac 100644
--- a/drivers/gpu/drm/virtio/virtgpu_debugfs.c
+++ b/drivers/gpu/drm/virtio/virtgpu_debugfs.c
@@ -52,6 +52,11 @@ static int virtio_gpu_features(struct seq_file *m, void *data)
 	virtio_add_bool(m, "blob resources", vgdev->has_resource_blob);
 	virtio_add_int(m, "cap sets", vgdev->num_capsets);
 	virtio_add_int(m, "scanouts", vgdev->num_scanouts);
+	if (vgdev->host_visible_region.len) {
+		seq_printf(m, "%-16s : 0x%lx +0x%lx\n", "host visible region",
+			   (unsigned long)vgdev->host_visible_region.addr,
+			   (unsigned long)vgdev->host_visible_region.len);
+	}
 	return 0;
 }
 
diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virtio/virtgpu_drv.h
index b53478a6a3c08..391637f0b362d 100644
--- a/drivers/gpu/drm/virtio/virtgpu_drv.h
+++ b/drivers/gpu/drm/virtio/virtgpu_drv.h
@@ -209,6 +209,8 @@ struct virtio_gpu_device {
 	bool has_indirect;
 	bool has_resource_assign_uuid;
 	bool has_resource_blob;
+	bool has_host_visible;
+	struct virtio_shm_region host_visible_region;
 
 	struct work_struct config_changed_work;
 
diff --git a/drivers/gpu/drm/virtio/virtgpu_kms.c b/drivers/gpu/drm/virtio/virtgpu_kms.c
index 0678e56100dae..e17d3f5a0b54e 100644
--- a/drivers/gpu/drm/virtio/virtgpu_kms.c
+++ b/drivers/gpu/drm/virtio/virtgpu_kms.c
@@ -155,11 +155,27 @@ int virtio_gpu_init(struct drm_device *dev)
 	if (virtio_has_feature(vgdev->vdev, VIRTIO_GPU_F_RESOURCE_BLOB)) {
 		vgdev->has_resource_blob = true;
 	}
+	if (virtio_get_shm_region(vgdev->vdev, &vgdev->host_visible_region,
+				  VIRTIO_GPU_SHM_ID_HOST_VISIBLE)) {
+		if (!devm_request_mem_region(&vgdev->vdev->dev,
+					     vgdev->host_visible_region.addr,
+					     vgdev->host_visible_region.len,
+					     dev_name(&vgdev->vdev->dev))) {
+			DRM_ERROR("Could not reserve host visible region\n");
+			goto err_vqs;
+		}
+
+		DRM_INFO("Host memory window: 0x%lx +0x%lx\n",
+			 (unsigned long)vgdev->host_visible_region.addr,
+			 (unsigned long)vgdev->host_visible_region.len);
+		vgdev->has_host_visible = true;
+	}
 
-	DRM_INFO("features: %cvirgl %cedid %cresource_blob\n",
+	DRM_INFO("features: %cvirgl %cedid %cresource_blob %chost_visible\n",
 		 vgdev->has_virgl_3d    ? '+' : '-',
 		 vgdev->has_edid        ? '+' : '-',
-		 vgdev->has_resource_blob ? '+' : '-');
+		 vgdev->has_resource_blob ? '+' : '-',
+		 vgdev->has_host_visible ? '+' : '-');
 
 	ret = virtio_find_vqs(vgdev->vdev, 2, vqs, callbacks, names, NULL);
 	if (ret) {
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2020-09-24  0:32 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-24  0:31 [PATCH v4 01/19] drm/virtio: blob prep: refactor getting pages and attaching backing Gurchetan Singh
2020-09-24  0:31 ` [PATCH v4 02/19] drm/virtio: blob prep: make CPU responses more generic Gurchetan Singh
2020-09-24  0:31 ` [PATCH v4 03/19] virtio-gpu api: blob resources Gurchetan Singh
2020-09-24  0:31 ` [PATCH v4 04/19] virtio-gpu api: host visible feature Gurchetan Singh
2020-09-24  0:32 ` [PATCH v4 05/19] drm/virtgpu api: blob resources Gurchetan Singh
2020-09-24  0:32 ` [PATCH v4 06/19] drm/virtgpu api: host visible feature Gurchetan Singh
2020-09-24  0:32 ` [PATCH v4 07/19] drm/virtgpu api: cross-device feature Gurchetan Singh
2020-09-24  0:32 ` [PATCH v4 08/19] drm/virtio: implement blob resources: probe for the feature Gurchetan Singh
2020-09-24  0:32 ` Gurchetan Singh [this message]
2020-09-24  0:32 ` [PATCH v4 10/19] drm/virtio: implement blob resources: expose virtio_gpu_resource_id_get Gurchetan Singh
2020-09-24  0:32 ` [PATCH v4 11/19] drm/virtio: implement blob resources: add new fields to internal structs Gurchetan Singh
2020-09-24  0:32 ` [PATCH v4 12/19] drm/virtio: implement blob resources: implement vram object Gurchetan Singh
2020-09-24  0:32 ` [PATCH v4 13/19] drm/virtio: implement blob resources: hypercall interface Gurchetan Singh
2020-09-24  0:32 ` [PATCH v4 14/19] drm/virtio: implement blob resources: blob display integration Gurchetan Singh
2020-09-24  0:32 ` [PATCH v4 15/19] drm/virtio: implement blob resources: refactor UUID code somewhat Gurchetan Singh
2020-09-24  0:32 ` [PATCH v4 16/19] drm/virtio: implement blob resources: fix stride discrepancy Gurchetan Singh
2020-09-24  0:32 ` [PATCH v4 17/19] drm/virtio: implement blob resources: report blob mem to userspace Gurchetan Singh
2020-09-24  0:32 ` [PATCH v4 18/19] drm/virtio: implement blob resources: resource create blob ioctl Gurchetan Singh
2020-09-24  0:32 ` [PATCH v4 19/19] drm/virtio: advertise features to userspace Gurchetan Singh
2020-09-29  9:32 ` [PATCH v4 01/19] drm/virtio: blob prep: refactor getting pages and attaching backing Gerd Hoffmann
2020-09-29 21:56   ` Gurchetan Singh
  -- strict thread matches above, loose matches on Subject: below --
2020-09-17  9:40 [PATCH v3 09/19] drm/virtio: implement blob resources: probe for host visible region Gerd Hoffmann
2020-09-17 22:25 ` [PATCH v4 " Gurchetan Singh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200924003214.662-9-gurchetansingh@chromium.org \
    --to=gurchetansingh@chromium.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=kraxel@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.