9
0
Fork 0

Merge branch 'for-next/dfu'

This commit is contained in:
Sascha Hauer 2014-03-07 09:24:40 +01:00
commit fbf087808b
4 changed files with 16 additions and 5 deletions

View File

@ -101,7 +101,7 @@ static int do_dfu(int argc, char *argv[])
char *manufacturer = "barebox";
const char *productname = barebox_get_model();
u16 idVendor = 0, idProduct = 0;
int ret;
while((opt = getopt(argc, argv, "m:p:V:P:")) > 0) {
switch(opt) {
@ -134,6 +134,7 @@ static int do_dfu(int argc, char *argv[])
dfu_alts = xrealloc(dfu_alts, sizeof(*dfu_alts) * (n + 1));
if (dfu_do_parse_one(argstr, &endptr, &dfu_alts[n])) {
printf("parse error\n");
ret = -EINVAL;
goto out;
}
argstr = endptr;
@ -147,7 +148,7 @@ static int do_dfu(int argc, char *argv[])
pdata.idVendor = idVendor;
pdata.idProduct = idProduct;
usb_dfu_register(&pdata);
ret = usb_dfu_register(&pdata);
out:
while (n) {
@ -155,8 +156,10 @@ out:
free(dfu_alts[n].name);
free(dfu_alts[n].dev);
};
free(dfu_alts);
return 1;
return ret;
}
BAREBOX_CMD_HELP_START(dfu)

View File

@ -1327,7 +1327,7 @@ int usb_gadget_poll(void)
u32 value;
if (!udc->udp_baseaddr)
return 0;
return -ENODEV;
value = gpio_get_value(udc->board.vbus_pin);
value ^= udc->board.vbus_active_low;

View File

@ -682,6 +682,8 @@ static struct usb_composite_driver dfu_driver = {
int usb_dfu_register(struct usb_dfu_pdata *pdata)
{
int ret;
dfu_devs = pdata->alts;
dfu_num_alt = pdata->num_alts;
dfu_dev_descriptor.idVendor = pdata->idVendor;
@ -692,7 +694,10 @@ int usb_dfu_register(struct usb_dfu_pdata *pdata)
usb_composite_register(&dfu_driver);
while (1) {
usb_gadget_poll();
ret = usb_gadget_poll();
if (ret < 0)
return ret;
if (ctrlc() || dfudetach)
goto out;
}

View File

@ -1938,6 +1938,9 @@ int usb_gadget_poll(void)
u32 irq_src;
int status = 0;
if (!udc)
return -ENODEV;
/* Disable ISR for OTG host mode */
if (udc->stopped)
return -EIO;