Browse Source

opencl: Avoid duplicating kernel_interfaces mapping in select_kernel

Luke Dashjr 11 years ago
parent
commit
104d8d3472
2 changed files with 6 additions and 12 deletions
  1. 3 12
      driver-opencl.c
  2. 3 0
      miner.h

+ 3 - 12
driver-opencl.c

@@ -383,18 +383,9 @@ _SET_INT_LIST(thread_concurrency, true, thread_concurrency)
 
 
 enum cl_kernels select_kernel(const char * const arg)
 enum cl_kernels select_kernel(const char * const arg)
 {
 {
-	if (!strcmp(arg, "diablo"))
-		return KL_DIABLO;
-	if (!strcmp(arg, "diakgcn"))
-		return KL_DIAKGCN;
-	if (!strcmp(arg, "poclbm"))
-		return KL_POCLBM;
-	if (!strcmp(arg, "phatk"))
-		return KL_PHATK;
-#ifdef USE_SCRYPT
-	if (!strcmp(arg, "scrypt"))
-		return KL_SCRYPT;
-#endif
+	for (unsigned i = 0; i < (unsigned)OPENCL_KERNEL_INTERFACE_COUNT; ++i)
+		if (!strcasecmp(arg, kernel_interfaces[i].kiname))
+			return i;
 	return KL_NONE;
 	return KL_NONE;
 }
 }
 
 

+ 3 - 0
miner.h

@@ -376,7 +376,10 @@ enum cl_kernels {
 	KL_PHATK,
 	KL_PHATK,
 	KL_DIAKGCN,
 	KL_DIAKGCN,
 	KL_DIABLO,
 	KL_DIABLO,
+#ifdef USE_SCRYPT
 	KL_SCRYPT,
 	KL_SCRYPT,
+#endif
+	OPENCL_KERNEL_INTERFACE_COUNT,
 };
 };
 
 
 enum dev_reason {
 enum dev_reason {