Browse Source

Add complete close sequence to bf1 as it happens on serial.

nfactor-troky
Con Kolivas 11 years ago
parent
commit
f6e475d4fb
  1. 25
      driver-bitfury.c

25
driver-bitfury.c

@ -14,26 +14,30 @@ @@ -14,26 +14,30 @@
struct device_drv bitfury_drv;
static void bitfury_empty_buffer(struct cgpu_info *bitfury)
{
char buf[512];
int amount;
do {
usb_read(bitfury, buf, 512, &amount, C_PING);
} while (amount);
}
static void bitfury_open(struct cgpu_info *bitfury)
{
/* Magic open sequence */
usb_transfer(bitfury, 0x21, 0x22, 0x0003, 0, C_BFO_OPEN);
bitfury_empty_buffer(bitfury);
}
static void bitfury_close(struct cgpu_info *bitfury)
{
/* Magic close sequence */
usb_transfer(bitfury, 0x21, 0x22, 0, 0, C_BFO_CLOSE);
}
static void bitfury_empty_buffer(struct cgpu_info *bitfury)
{
char buf[512];
int amount;
do {
usb_read(bitfury, buf, 512, &amount, C_PING);
} while (amount);
bitfury_empty_buffer(bitfury);
usb_transfer(bitfury, 0x23, 0x08, 0x9053, 1, C_BFO_CLOSE);
bitfury_empty_buffer(bitfury);
}
static void bitfury_identify(struct cgpu_info *bitfury)
@ -64,7 +68,6 @@ static bool bitfury_detect_one(struct libusb_device *dev, struct usb_find_device @@ -64,7 +68,6 @@ static bool bitfury_detect_one(struct libusb_device *dev, struct usb_find_device
quit(1, "Failed to calloc info in bitfury_detect_one");
bitfury->device_data = info;
bitfury_empty_buffer(bitfury);
usb_buffer_enable(bitfury);
bitfury_open(bitfury);

Loading…
Cancel
Save