summaryrefslogtreecommitdiff
path: root/usb/device/dfu/dfu_driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'usb/device/dfu/dfu_driver.c')
-rw-r--r--usb/device/dfu/dfu_driver.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/usb/device/dfu/dfu_driver.c b/usb/device/dfu/dfu_driver.c
index 53f690c..c6c1a18 100644
--- a/usb/device/dfu/dfu_driver.c
+++ b/usb/device/dfu/dfu_driver.c
@@ -37,6 +37,7 @@
/// Standard device driver instance.
static USBDDriver usbdDriver;
+static unsigned char if_altsettings[1];
__dfudata struct dfu dfu = {
.state = DFU_STATE_appIDLE,
@@ -99,7 +100,7 @@ static void dnload_cb(void *arg, unsigned char status, unsigned int transferred,
return;
}
- rc = USBDFU_handle_dnload(0, dfu.total_bytes, dfu_buf, transferred);
+ rc = USBDFU_handle_dnload(if_altsettings[0], dfu.total_bytes, dfu_buf, transferred);
switch (rc) {
case DFU_RET_ZLP:
dfu.total_bytes += transferred;
@@ -183,7 +184,7 @@ static int handle_upload(uint16_t val, uint16_t len, int first)
}
/* FIXME: altif */
- rc = USBDFU_handle_upload(0, dfu.total_bytes, dfu_buf, len);
+ rc = USBDFU_handle_upload(if_altsettings[0], dfu.total_bytes, dfu_buf, len);
if (rc < 0) {
TRACE_ERROR("application handle_upload() returned %d\n\r", rc);
return DFU_RET_STALL;
@@ -454,12 +455,12 @@ out:
}
}
-void USBDFU_Initialize(const USBDDriverDescriptors *pDescriptors, unsigned char *pInterfaces)
+void USBDFU_Initialize(const USBDDriverDescriptors *pDescriptors)
{
/* We already start in DFU idle mode */
dfu.state = DFU_STATE_dfuIDLE;
- USBDDriver_Initialize(&usbdDriver, pDescriptors, pInterfaces);
+ USBDDriver_Initialize(&usbdDriver, pDescriptors, if_altsettings);
USBD_Init();
}
personal git repositories of Harald Welte. Your mileage may vary