diff --git a/cgminer.c b/cgminer.c index a57c25df..03a9b4dd 100644 --- a/cgminer.c +++ b/cgminer.c @@ -191,7 +191,6 @@ struct block { static struct block *blocks = NULL; -char *opt_kernel = NULL; char *opt_socks_proxy = NULL; static const char def_conf[] = "cgminer.conf"; @@ -2334,6 +2333,26 @@ void write_config(FILE *fcfg) for(i = 0; i < nDevs; i++) fprintf(fcfg, "%s%d", i > 0 ? "," : "", gpus[i].adl.targettemp); #endif + fputs("\",\n\"kernel\" : \"", fcfg); + for(i = 0; i < nDevs; i++) { + fprintf(fcfg, "%s", i > 0 ? "," : ""); + switch (gpus[i].kernel) { + case KL_NONE: // Shouldn't happen + break; + case KL_POCLBM: + fprintf(fcfg, "poclbm"); + break; + case KL_PHATK: + fprintf(fcfg, "phatk"); + break; + case KL_DIAKGCN: + fprintf(fcfg, "diakgcn"); + break; + case KL_DIABLO: + fprintf(fcfg, "diablo"); + break; + } + } fputs("\"", fcfg); #ifdef WANT_CPUMINE fputs(",\n", fcfg); @@ -2380,8 +2399,6 @@ void write_config(FILE *fcfg) if (opt_stderr_cmd && *opt_stderr_cmd) fprintf(fcfg, ",\n\"monitor\" : \"%s\"", opt_stderr_cmd); #endif // defined(unix) - if (opt_kernel && *opt_kernel) - fprintf(fcfg, ",\n\"kernel\" : \"%s\"", opt_kernel); if (opt_kernel_path && *opt_kernel_path) { char *kpath = strdup(opt_kernel_path); if (kpath[strlen(kpath)-1] == '/') diff --git a/ocl.c b/ocl.c index a9d048d2..d84d15ab 100644 --- a/ocl.c +++ b/ocl.c @@ -379,6 +379,7 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize) applog(LOG_INFO, "Selecting diablo kernel"); clState->chosen_kernel = KL_DIABLO; } + gpus[gpu].kernel = clState->chosen_kernel; } else clState->chosen_kernel = gpus[gpu].kernel;