1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-11 07:17:58 +00:00

libztex: use a function for the twice called firmware reset code

This commit is contained in:
Denis Ahrens 2012-12-09 12:06:42 +01:00
parent 9b1d0c9d95
commit f5a575966c

View File

@ -100,6 +100,19 @@ enum check_result
CHECK_RESCAN, CHECK_RESCAN,
}; };
static bool libztex_firmwareReset(struct libusb_device_handle *hndl, bool enable)
{
uint8_t reset = enable;
int cnt = libusb_control_transfer(hndl, 0x40, 0xA0, 0xE600, 0, &reset, 1, 1000);
if (cnt < 0)
{
applog(LOG_ERR, "Ztex reset %d failed: %s", libusb_error_name(cnt), enable);
return 1;
}
return 0;
}
static enum check_result libztex_checkDevice(struct libusb_device *dev) static enum check_result libztex_checkDevice(struct libusb_device *dev)
{ {
FILE *fp = NULL; FILE *fp = NULL;
@ -245,14 +258,8 @@ static enum check_result libztex_checkDevice(struct libusb_device *dev)
goto done; goto done;
} }
// reset 1 if (libztex_firmwareReset(hndl, true))
buf[0] = 1;
cnt = libusb_control_transfer(hndl, 0x40, 0xA0, 0xE600, 0, buf, 1,1000);
if (cnt < 0)
{
applog(LOG_ERR, "Ztex reset 1 failed: %s", libusb_error_name(cnt));
goto done; goto done;
}
for (i = 0; i < length; i+= 256) { for (i = 0; i < length; i+= 256) {
// firmware wants data in small chunks like 256 bytes // firmware wants data in small chunks like 256 bytes
@ -265,14 +272,8 @@ static enum check_result libztex_checkDevice(struct libusb_device *dev)
} }
} }
// reset 0 if (libztex_firmwareReset(hndl, false))
buf[0] = 0;
err = libusb_control_transfer(hndl, 0x40, 0xA0, 0xE600, 0, buf, 1,1000);
if (err < 0)
{
applog(LOG_ERR, "Ztex reset 0 failed: %s", libusb_error_name(err));
goto done; goto done;
}
applog(LOG_ERR, "Ztex device: succesfully wrote firmware"); applog(LOG_ERR, "Ztex device: succesfully wrote firmware");
ret = CHECK_RESCAN; ret = CHECK_RESCAN;