|
|
@ -222,7 +222,6 @@ static struct usb_find_devices find_dev[] = { |
|
|
|
.idProduct = 0x6014, |
|
|
|
.idProduct = 0x6014, |
|
|
|
//.iManufacturer = "Butterfly Labs",
|
|
|
|
//.iManufacturer = "Butterfly Labs",
|
|
|
|
.iProduct = "BitFORCE SHA256 SC", |
|
|
|
.iProduct = "BitFORCE SHA256 SC", |
|
|
|
.kernel = 0, |
|
|
|
|
|
|
|
.config = 1, |
|
|
|
.config = 1, |
|
|
|
.timeout = BFLSC_TIMEOUT_MS, |
|
|
|
.timeout = BFLSC_TIMEOUT_MS, |
|
|
|
.latency = LATENCY_STD, |
|
|
|
.latency = LATENCY_STD, |
|
|
@ -237,7 +236,6 @@ static struct usb_find_devices find_dev[] = { |
|
|
|
.idProduct = 0x6014, |
|
|
|
.idProduct = 0x6014, |
|
|
|
.iManufacturer = "Butterfly Labs Inc.", |
|
|
|
.iManufacturer = "Butterfly Labs Inc.", |
|
|
|
.iProduct = "BitFORCE SHA256", |
|
|
|
.iProduct = "BitFORCE SHA256", |
|
|
|
.kernel = 0, |
|
|
|
|
|
|
|
.config = 1, |
|
|
|
.config = 1, |
|
|
|
.timeout = BITFORCE_TIMEOUT_MS, |
|
|
|
.timeout = BITFORCE_TIMEOUT_MS, |
|
|
|
.latency = LATENCY_STD, |
|
|
|
.latency = LATENCY_STD, |
|
|
@ -250,7 +248,6 @@ static struct usb_find_devices find_dev[] = { |
|
|
|
.ident = IDENT_MMQ, |
|
|
|
.ident = IDENT_MMQ, |
|
|
|
.idVendor = 0x1fc9, |
|
|
|
.idVendor = 0x1fc9, |
|
|
|
.idProduct = 0x0003, |
|
|
|
.idProduct = 0x0003, |
|
|
|
.kernel = 0, |
|
|
|
|
|
|
|
.config = 1, |
|
|
|
.config = 1, |
|
|
|
.timeout = MODMINER_TIMEOUT_MS, |
|
|
|
.timeout = MODMINER_TIMEOUT_MS, |
|
|
|
.latency = LATENCY_UNUSED, |
|
|
|
.latency = LATENCY_UNUSED, |
|
|
@ -265,7 +262,6 @@ static struct usb_find_devices find_dev[] = { |
|
|
|
.idProduct = 0x6001, |
|
|
|
.idProduct = 0x6001, |
|
|
|
.iManufacturer = "Burnin Electronics", |
|
|
|
.iManufacturer = "Burnin Electronics", |
|
|
|
.iProduct = "BitBurner", |
|
|
|
.iProduct = "BitBurner", |
|
|
|
.kernel = 0, |
|
|
|
|
|
|
|
.config = 1, |
|
|
|
.config = 1, |
|
|
|
.timeout = AVALON_TIMEOUT_MS, |
|
|
|
.timeout = AVALON_TIMEOUT_MS, |
|
|
|
.latency = 10, |
|
|
|
.latency = 10, |
|
|
@ -276,7 +272,6 @@ static struct usb_find_devices find_dev[] = { |
|
|
|
.ident = IDENT_AVA, |
|
|
|
.ident = IDENT_AVA, |
|
|
|
.idVendor = IDVENDOR_FTDI, |
|
|
|
.idVendor = IDVENDOR_FTDI, |
|
|
|
.idProduct = 0x6001, |
|
|
|
.idProduct = 0x6001, |
|
|
|
.kernel = 0, |
|
|
|
|
|
|
|
.config = 1, |
|
|
|
.config = 1, |
|
|
|
.timeout = AVALON_TIMEOUT_MS, |
|
|
|
.timeout = AVALON_TIMEOUT_MS, |
|
|
|
.latency = 10, |
|
|
|
.latency = 10, |
|
|
@ -289,7 +284,6 @@ static struct usb_find_devices find_dev[] = { |
|
|
|
.ident = IDENT_ICA, |
|
|
|
.ident = IDENT_ICA, |
|
|
|
.idVendor = 0x067b, |
|
|
|
.idVendor = 0x067b, |
|
|
|
.idProduct = 0x2303, |
|
|
|
.idProduct = 0x2303, |
|
|
|
.kernel = 0, |
|
|
|
|
|
|
|
.config = 1, |
|
|
|
.config = 1, |
|
|
|
.timeout = ICARUS_TIMEOUT_MS, |
|
|
|
.timeout = ICARUS_TIMEOUT_MS, |
|
|
|
.latency = LATENCY_UNUSED, |
|
|
|
.latency = LATENCY_UNUSED, |
|
|
@ -300,7 +294,6 @@ static struct usb_find_devices find_dev[] = { |
|
|
|
.ident = IDENT_AMU, |
|
|
|
.ident = IDENT_AMU, |
|
|
|
.idVendor = 0x10c4, |
|
|
|
.idVendor = 0x10c4, |
|
|
|
.idProduct = 0xea60, |
|
|
|
.idProduct = 0xea60, |
|
|
|
.kernel = 0, |
|
|
|
|
|
|
|
.config = 1, |
|
|
|
.config = 1, |
|
|
|
.timeout = ICARUS_TIMEOUT_MS, |
|
|
|
.timeout = ICARUS_TIMEOUT_MS, |
|
|
|
.latency = LATENCY_UNUSED, |
|
|
|
.latency = LATENCY_UNUSED, |
|
|
@ -312,7 +305,6 @@ static struct usb_find_devices find_dev[] = { |
|
|
|
.idVendor = IDVENDOR_FTDI, |
|
|
|
.idVendor = IDVENDOR_FTDI, |
|
|
|
.idProduct = 0x6001, |
|
|
|
.idProduct = 0x6001, |
|
|
|
.iProduct = "FT232R USB UART", |
|
|
|
.iProduct = "FT232R USB UART", |
|
|
|
.kernel = 0, |
|
|
|
|
|
|
|
.config = 1, |
|
|
|
.config = 1, |
|
|
|
.timeout = ICARUS_TIMEOUT_MS, |
|
|
|
.timeout = ICARUS_TIMEOUT_MS, |
|
|
|
.latency = LATENCY_STD, |
|
|
|
.latency = LATENCY_STD, |
|
|
@ -324,7 +316,6 @@ static struct usb_find_devices find_dev[] = { |
|
|
|
.ident = IDENT_LLT, |
|
|
|
.ident = IDENT_LLT, |
|
|
|
.idVendor = IDVENDOR_FTDI, |
|
|
|
.idVendor = IDVENDOR_FTDI, |
|
|
|
.idProduct = 0x6001, |
|
|
|
.idProduct = 0x6001, |
|
|
|
.kernel = 0, |
|
|
|
|
|
|
|
.config = 1, |
|
|
|
.config = 1, |
|
|
|
.timeout = ICARUS_TIMEOUT_MS, |
|
|
|
.timeout = ICARUS_TIMEOUT_MS, |
|
|
|
.latency = LATENCY_STD, |
|
|
|
.latency = LATENCY_STD, |
|
|
@ -336,7 +327,6 @@ static struct usb_find_devices find_dev[] = { |
|
|
|
.idVendor = IDVENDOR_FTDI, |
|
|
|
.idVendor = IDVENDOR_FTDI, |
|
|
|
.idProduct = 0x6014, |
|
|
|
.idProduct = 0x6014, |
|
|
|
.iProduct = "Cairnsmore1", |
|
|
|
.iProduct = "Cairnsmore1", |
|
|
|
.kernel = 0, |
|
|
|
|
|
|
|
.config = 1, |
|
|
|
.config = 1, |
|
|
|
.timeout = ICARUS_TIMEOUT_MS, |
|
|
|
.timeout = ICARUS_TIMEOUT_MS, |
|
|
|
.latency = LATENCY_STD, |
|
|
|
.latency = LATENCY_STD, |
|
|
@ -348,7 +338,6 @@ static struct usb_find_devices find_dev[] = { |
|
|
|
.idVendor = IDVENDOR_FTDI, |
|
|
|
.idVendor = IDVENDOR_FTDI, |
|
|
|
.idProduct = 0x8350, |
|
|
|
.idProduct = 0x8350, |
|
|
|
.iProduct = "Cairnsmore1", |
|
|
|
.iProduct = "Cairnsmore1", |
|
|
|
.kernel = 0, |
|
|
|
|
|
|
|
.config = 1, |
|
|
|
.config = 1, |
|
|
|
.timeout = ICARUS_TIMEOUT_MS, |
|
|
|
.timeout = ICARUS_TIMEOUT_MS, |
|
|
|
.latency = LATENCY_STD, |
|
|
|
.latency = LATENCY_STD, |
|
|
@ -363,7 +352,6 @@ static struct usb_find_devices find_dev[] = { |
|
|
|
.ident = IDENT_ZTX, |
|
|
|
.ident = IDENT_ZTX, |
|
|
|
.idVendor = 0x221a, |
|
|
|
.idVendor = 0x221a, |
|
|
|
.idProduct = 0x0100, |
|
|
|
.idProduct = 0x0100, |
|
|
|
.kernel = 0, |
|
|
|
|
|
|
|
.config = 1, |
|
|
|
.config = 1, |
|
|
|
.timeout = 100, |
|
|
|
.timeout = 100, |
|
|
|
.latency = LATENCY_UNUSED, |
|
|
|
.latency = LATENCY_UNUSED, |
|
|
@ -371,7 +359,7 @@ static struct usb_find_devices find_dev[] = { |
|
|
|
.intinfo_count = 0, |
|
|
|
.intinfo_count = 0, |
|
|
|
.intinfos = NULL }, |
|
|
|
.intinfos = NULL }, |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
{ DRV_LAST, NULL, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, NULL } |
|
|
|
{ DRV_LAST, NULL, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, NULL } |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
#ifdef USE_BFLSC |
|
|
|
#ifdef USE_BFLSC |
|
|
@ -1628,20 +1616,24 @@ static int _usb_init(struct cgpu_info *cgpu, struct libusb_device *dev, struct u |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#ifndef WIN32 |
|
|
|
#ifndef WIN32 |
|
|
|
if (libusb_kernel_driver_active(cgusb->handle, found->kernel) == 1) { |
|
|
|
for (ifinfo = 0; ifinfo < found->intinfo_count; ifinfo++) { |
|
|
|
|
|
|
|
int interface = found->intinfos[ifinfo].interface; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (libusb_kernel_driver_active(cgusb->handle, interface) == 1) { |
|
|
|
applog(LOG_DEBUG, "USB init, kernel attached ... %s", devstr); |
|
|
|
applog(LOG_DEBUG, "USB init, kernel attached ... %s", devstr); |
|
|
|
err = libusb_detach_kernel_driver(cgusb->handle, found->kernel); |
|
|
|
err = libusb_detach_kernel_driver(cgusb->handle, interface); |
|
|
|
if (err == 0) { |
|
|
|
if (err == 0) { |
|
|
|
applog(LOG_DEBUG, |
|
|
|
applog(LOG_DEBUG, |
|
|
|
"USB init, kernel detached successfully %s", |
|
|
|
"USB init, kernel detached interface %d successfully %s", |
|
|
|
devstr); |
|
|
|
interface, devstr); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
applog(LOG_WARNING, |
|
|
|
applog(LOG_WARNING, |
|
|
|
"USB init, kernel detach failed, err %d in use? %s", |
|
|
|
"USB init, kernel detach interface %d failed, err %d in use? %s", |
|
|
|
err, devstr); |
|
|
|
interface, err, devstr); |
|
|
|
goto cldame; |
|
|
|
goto cldame; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
if (found->iManufacturer) { |
|
|
|
if (found->iManufacturer) { |
|
|
|