|
@@ -333,6 +333,7 @@ static bool x6500_fpga_init(struct thr_info *thr)
|
|
|
jp = &fpga->jtag;
|
|
jp = &fpga->jtag;
|
|
|
jp->a = x6500->cgpu_data;
|
|
jp->a = x6500->cgpu_data;
|
|
|
x6500_jtag_set(jp, pinoffset);
|
|
x6500_jtag_set(jp, pinoffset);
|
|
|
|
|
+ thr->cgpu_data = fpga;
|
|
|
|
|
|
|
|
mutex_lock(&x6500->device_mutex);
|
|
mutex_lock(&x6500->device_mutex);
|
|
|
if (!jtag_reset(jp)) {
|
|
if (!jtag_reset(jp)) {
|
|
@@ -370,8 +371,6 @@ static bool x6500_fpga_init(struct thr_info *thr)
|
|
|
applog(LOG_DEBUG, "%s %u.%u: FPGA is already programmed :)",
|
|
applog(LOG_DEBUG, "%s %u.%u: FPGA is already programmed :)",
|
|
|
x6500->api->name, x6500->device_id, fpgaid);
|
|
x6500->api->name, x6500->device_id, fpgaid);
|
|
|
|
|
|
|
|
- thr->cgpu_data = fpga;
|
|
|
|
|
-
|
|
|
|
|
dclk_prepare(&fpga->dclk);
|
|
dclk_prepare(&fpga->dclk);
|
|
|
fpga->dclk.freqMaxM = X6500_MAXIMUM_CLOCK / 2;
|
|
fpga->dclk.freqMaxM = X6500_MAXIMUM_CLOCK / 2;
|
|
|
x6500_change_clock(thr, X6500_DEFAULT_CLOCK / 2);
|
|
x6500_change_clock(thr, X6500_DEFAULT_CLOCK / 2);
|