summary refs log tree commit diff
path: root/devices/src/virtio/gpu/mod.rs
diff options
context:
space:
mode:
authorGurchetan Singh <gurchetansingh@chromium.org>2020-01-22 17:59:22 -0800
committerCommit Bot <commit-bot@chromium.org>2020-03-23 20:37:12 +0000
commit83fc5c49ba930a62ef1f4d93bc2004d779b6d16f (patch)
tree514d89cc061e6b34acaf5cbe10c254368729976a /devices/src/virtio/gpu/mod.rs
parent151af70ac9778f5247f6fd58fe8b20c089604429 (diff)
downloadcrosvm-83fc5c49ba930a62ef1f4d93bc2004d779b6d16f.tar
crosvm-83fc5c49ba930a62ef1f4d93bc2004d779b6d16f.tar.gz
crosvm-83fc5c49ba930a62ef1f4d93bc2004d779b6d16f.tar.bz2
crosvm-83fc5c49ba930a62ef1f4d93bc2004d779b6d16f.tar.lz
crosvm-83fc5c49ba930a62ef1f4d93bc2004d779b6d16f.tar.xz
crosvm-83fc5c49ba930a62ef1f4d93bc2004d779b6d16f.tar.zst
crosvm-83fc5c49ba930a62ef1f4d93bc2004d779b6d16f.zip
devices: gpu: complete resource V2 rebase
* Remove RESOURCE_V2_UNREF
* Add RESOURCE_MAP/RESOURCE_UNMAP to enable resources without guest
  storage that don't need to be mapped directly either

BUG=chromium:924405
TEST=compile and test

Change-Id: I10d6cd120d86131fa7ed8917ddad25cdb99ae50c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2015587
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Auto-Submit: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Diffstat (limited to 'devices/src/virtio/gpu/mod.rs')
-rw-r--r--devices/src/virtio/gpu/mod.rs18
1 files changed, 12 insertions, 6 deletions
diff --git a/devices/src/virtio/gpu/mod.rs b/devices/src/virtio/gpu/mod.rs
index d211768..93d004f 100644
--- a/devices/src/virtio/gpu/mod.rs
+++ b/devices/src/virtio/gpu/mod.rs
@@ -284,14 +284,17 @@ trait Backend {
         _flags: u32,
         _size: u64,
         _memory_id: u64,
-        _pci_addr: u64,
         _vecs: Vec<(GuestAddress, usize)>,
         _mem: &GuestMemory,
     ) -> GpuResponse {
         GpuResponse::ErrUnspec
     }
 
-    fn resource_v2_unref(&mut self, _resource_id: u32) -> GpuResponse {
+    fn resource_map(&mut self, _resource_id: u32, _pci_addr: u64) -> GpuResponse {
+        GpuResponse::ErrUnspec
+    }
+
+    fn resource_unmap(&mut self, _resource_id: u32) -> GpuResponse {
         GpuResponse::ErrUnspec
     }
 }
@@ -606,7 +609,6 @@ impl Frontend {
                 let ctx_id = info.hdr.ctx_id.to_native();
                 let flags = info.flags.to_native();
                 let size = info.size.to_native();
-                let pci_addr = info.pci_addr.to_native();
                 let memory_id = info.memory_id.to_native();
                 let entry_count = info.nr_entries.to_native();
                 if entry_count > VIRTIO_GPU_MAX_IOVEC_ENTRIES
@@ -632,15 +634,19 @@ impl Frontend {
                     ctx_id,
                     flags,
                     size,
-                    pci_addr,
                     memory_id,
                     vecs,
                     mem,
                 )
             }
-            GpuCommand::ResourceV2Unref(info) => {
+            GpuCommand::ResourceMap(info) => {
+                let resource_id = info.resource_id.to_native();
+                let offset = info.offset.to_native();
+                self.backend.resource_map(resource_id, offset)
+            }
+            GpuCommand::ResourceUnmap(info) => {
                 let resource_id = info.resource_id.to_native();
-                self.backend.resource_v2_unref(resource_id)
+                self.backend.resource_unmap(resource_id)
             }
         }
     }