diff options
author | Pali Rohár <pali.rohar@gmail.com> | 2014-11-21 17:16:44 +0100 |
---|---|---|
committer | Pali Rohár <pali.rohar@gmail.com> | 2014-11-21 17:16:44 +0100 |
commit | f1095777c6c92f284ba2a8eb8b08a21476e4cb5f (patch) | |
tree | 827c0397032edbed29835e95317f01ea0ca4fa3b /src/operations.c | |
parent | 6372323ee8d3f60d0668e0ed4f98cf8c8e06b9fa (diff) | |
download | 0xFFFF-f1095777c6c92f284ba2a8eb8b08a21476e4cb5f.tar.bz2 |
operations: Check for supported image types in dev_flash_image
Diffstat (limited to 'src/operations.c')
-rw-r--r-- | src/operations.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/operations.c b/src/operations.c index 6696fe1..10ad975 100644 --- a/src/operations.c +++ b/src/operations.c @@ -174,10 +174,15 @@ int dev_flash_image(struct device_info * dev, struct image * image) { enum usb_flash_protocol protocol = dev->usb->flash_device->protocol; - if ( protocol == FLASH_NOLO ) - return nolo_flash_image(dev->usb, image); - else if ( protocol == FLASH_MKII ) - return mkii_flash_image(dev->usb, image); + if ( protocol == FLASH_NOLO ) { + if ( image->type != IMAGE_MMC ) + return nolo_flash_image(dev->usb, image); + usb_switch_to_update(dev->usb); + return -EAGAIN; + } else if ( protocol == FLASH_MKII ) { + if ( dev->usb->data & (1 << image->type) ) + return mkii_flash_image(dev->usb, image); + } usb_switch_to_nolo(dev->usb); return -EAGAIN; |