From f0d80326ec3eec64881dc1b0ea6eaf8ae7126ce0 Mon Sep 17 00:00:00 2001
From: Tony Butler <spudz76@gmail.com>
Date: Wed, 26 May 2021 07:00:18 -0600
Subject: [PATCH] Add Ellesmere correctly (still just a Polaris alias)

---
 src/backend/opencl/generators/ocl_generic_rx_generator.cpp | 1 +
 src/backend/opencl/runners/OclAstroBWTRunner.cpp           | 1 +
 src/backend/opencl/wrappers/OclDevice.cpp                  | 6 +++++-
 src/backend/opencl/wrappers/OclDevice.h                    | 1 +
 4 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/backend/opencl/generators/ocl_generic_rx_generator.cpp b/src/backend/opencl/generators/ocl_generic_rx_generator.cpp
index fa65fb43e..d175a6b2e 100644
--- a/src/backend/opencl/generators/ocl_generic_rx_generator.cpp
+++ b/src/backend/opencl/generators/ocl_generic_rx_generator.cpp
@@ -53,6 +53,7 @@ bool ocl_generic_rx_generator(const OclDevice &device, const Algorithm &algorith
 
     switch (device.type()) {
     case OclDevice::Baffin:
+    case OclDevice::Ellesmere:
     case OclDevice::Polaris:
     case OclDevice::Lexa:
     case OclDevice::Vega_10:
diff --git a/src/backend/opencl/runners/OclAstroBWTRunner.cpp b/src/backend/opencl/runners/OclAstroBWTRunner.cpp
index 7470fd62d..76b1107c9 100644
--- a/src/backend/opencl/runners/OclAstroBWTRunner.cpp
+++ b/src/backend/opencl/runners/OclAstroBWTRunner.cpp
@@ -46,6 +46,7 @@ xmrig::OclAstroBWTRunner::OclAstroBWTRunner(size_t index, const OclLaunchData &d
     switch (data.device.type())
     {
     case OclDevice::Baffin:
+    case OclDevice::Ellesmere:
     case OclDevice::Polaris:
     case OclDevice::Lexa:
     case OclDevice::Vega_10:
diff --git a/src/backend/opencl/wrappers/OclDevice.cpp b/src/backend/opencl/wrappers/OclDevice.cpp
index 7fc7d3025..ff18a788f 100644
--- a/src/backend/opencl/wrappers/OclDevice.cpp
+++ b/src/backend/opencl/wrappers/OclDevice.cpp
@@ -224,7 +224,11 @@ static OclDevice::Type getType(const String &name, const OclVendor platformVendo
         return OclDevice::Baffin;
     }
 
-    if (name == "gfx803" || name.contains("polaris") || name == "Ellesmere") {
+    if (name.contains("Ellesmere")) {
+        return OclDevice::Ellesmere;
+    }
+
+    if (name == "gfx803" || name.contains("polaris")) {
         return OclDevice::Polaris;
     }
 
diff --git a/src/backend/opencl/wrappers/OclDevice.h b/src/backend/opencl/wrappers/OclDevice.h
index 65aa74c1f..7e9e4155f 100644
--- a/src/backend/opencl/wrappers/OclDevice.h
+++ b/src/backend/opencl/wrappers/OclDevice.h
@@ -45,6 +45,7 @@ public:
     enum Type {
         Unknown,
         Baffin,
+        Ellesmere,
         Polaris,
         Lexa,
         Vega_10,