From 8c54ade3c20ce8ab8c419ddff28aa2b960638a2a Mon Sep 17 00:00:00 2001
From: foreman
Date: Thu, 7 Dec 2017 17:08:40 -0500
Subject: [PATCH] P4 to Git Change 1491909 by gandryey@gera-w8 on 2017/12/07
16:33:58
SWDEV-79445 - OCL generic changes and code clean-up
- Add device validation call for LiquidFlash library before usage.
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_lqdflash_amd.cpp#23 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#294 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/pro/prodevice.hpp#4 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/pro/prodriver.hpp#2 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#77 edit
[ROCm/clr commit: 0604712f5a8c89dfe320062081fd6306d3bfb4b2]
---
projects/clr/rocclr/runtime/device/device.hpp | 4 ++++
projects/clr/rocclr/runtime/device/rocm/pro/prodevice.hpp | 5 +++++
projects/clr/rocclr/runtime/device/rocm/pro/prodriver.hpp | 1 +
projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp | 1 +
4 files changed, 11 insertions(+)
diff --git a/projects/clr/rocclr/runtime/device/device.hpp b/projects/clr/rocclr/runtime/device/device.hpp
index 8d58fc5a32..c3f1cb2cd4 100644
--- a/projects/clr/rocclr/runtime/device/device.hpp
+++ b/projects/clr/rocclr/runtime/device/device.hpp
@@ -575,6 +575,10 @@ struct Info : public amd::EmbeddedObject {
size_t globalVariablePreferredTotalSize_;
//! Driver store location
char driverStore_[200];
+ //! Device ID
+ uint32_t pcieDeviceId_;
+ //! Revision ID
+ uint32_t pcieRevisionId_;
};
//! Device settings
diff --git a/projects/clr/rocclr/runtime/device/rocm/pro/prodevice.hpp b/projects/clr/rocclr/runtime/device/rocm/pro/prodevice.hpp
index 8e0b3370ce..a4a18fec4f 100644
--- a/projects/clr/rocclr/runtime/device/rocm/pro/prodevice.hpp
+++ b/projects/clr/rocclr/runtime/device/rocm/pro/prodevice.hpp
@@ -35,6 +35,11 @@ public:
virtual void* AllocDmaBuffer(
hsa_agent_t agent, size_t size, void** host_ptr) const override;
virtual void FreeDmaBuffer(void* ptr) const override;
+ virtual void GetAsicIdAndRevisionId(uint32_t* asic_id, uint32_t* rev_id) const override
+ {
+ *asic_id = gpu_info_.asic_id;
+ *rev_id = gpu_info_.pci_rev_id;
+ }
private:
static void* lib_drm_handle_;
diff --git a/projects/clr/rocclr/runtime/device/rocm/pro/prodriver.hpp b/projects/clr/rocclr/runtime/device/rocm/pro/prodriver.hpp
index 85feafbb9e..593e4e3922 100644
--- a/projects/clr/rocclr/runtime/device/rocm/pro/prodriver.hpp
+++ b/projects/clr/rocclr/runtime/device/rocm/pro/prodriver.hpp
@@ -22,6 +22,7 @@ public:
virtual void* AllocDmaBuffer(hsa_agent_t agent, size_t size, void** host_ptr) const = 0;
virtual void FreeDmaBuffer(void* ptr) const = 0;
+ virtual void GetAsicIdAndRevisionId(uint32_t* asic_id, uint32_t* rev_id) const = 0;
IProDevice() {}
virtual ~IProDevice() {}
diff --git a/projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp b/projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp
index 673d217c5e..1926f5323f 100644
--- a/projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp
+++ b/projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp
@@ -568,6 +568,7 @@ bool Device::create() {
if (pro_device_ != nullptr) {
pro_ena_ = true;
settings_->enableExtension(ClAMDLiquidFlash);
+ pro_device_->GetAsicIdAndRevisionId(&info_.pcieDeviceId_, &info_.pcieRevisionId_);
}
#endif