1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-09-04 18:22:02 +02:00

Merge branch 'master' of git://git.denx.de/u-boot-usb

- DFU / Thor fixes
This commit is contained in:
Tom Rini
2020-03-04 10:41:27 -05:00
2 changed files with 17 additions and 12 deletions

View File

@@ -596,6 +596,11 @@ dfu_handle(struct usb_function *f, const struct usb_ctrlrequest *ctrl)
debug("req_type: 0x%x ctrl->bRequest: 0x%x f_dfu->dfu_state: 0x%x\n", debug("req_type: 0x%x ctrl->bRequest: 0x%x f_dfu->dfu_state: 0x%x\n",
req_type, ctrl->bRequest, f_dfu->dfu_state); req_type, ctrl->bRequest, f_dfu->dfu_state);
#ifdef CONFIG_DFU_TIMEOUT
/* Forbid aborting by timeout. Next dfu command may update this */
dfu_set_timeout(0);
#endif
if (req_type == USB_TYPE_STANDARD) { if (req_type == USB_TYPE_STANDARD) {
if (ctrl->bRequest == USB_REQ_GET_DESCRIPTOR && if (ctrl->bRequest == USB_REQ_GET_DESCRIPTOR &&
(w_value >> 8) == DFU_DT_FUNC) { (w_value >> 8) == DFU_DT_FUNC) {

View File

@@ -174,7 +174,7 @@ static long long int download_head(unsigned long long total,
transfer_buffer, THOR_STORE_UNIT_SIZE, transfer_buffer, THOR_STORE_UNIT_SIZE,
(*cnt)++); (*cnt)++);
if (ret) { if (ret) {
pr_err("DFU write failed [%d] cnt: %d", pr_err("DFU write failed [%d] cnt: %d\n",
ret, *cnt); ret, *cnt);
return ret; return ret;
} }
@@ -224,14 +224,14 @@ static int download_tail(long long int left, int cnt)
transfer_buffer = dfu_get_buf(dfu_entity); transfer_buffer = dfu_get_buf(dfu_entity);
if (!transfer_buffer) { if (!transfer_buffer) {
pr_err("Transfer buffer not allocated!"); pr_err("Transfer buffer not allocated!\n");
return -ENXIO; return -ENXIO;
} }
if (left) { if (left) {
ret = dfu_write(dfu_entity, transfer_buffer, left, cnt++); ret = dfu_write(dfu_entity, transfer_buffer, left, cnt++);
if (ret) { if (ret) {
pr_err("DFU write failed [%d]: left: %llu", ret, left); pr_err("DFU write failed[%d]: left: %llu\n", ret, left);
return ret; return ret;
} }
} }
@@ -245,7 +245,7 @@ static int download_tail(long long int left, int cnt)
*/ */
ret = dfu_flush(dfu_entity, transfer_buffer, 0, cnt); ret = dfu_flush(dfu_entity, transfer_buffer, 0, cnt);
if (ret) if (ret)
pr_err("DFU flush failed!"); pr_err("DFU flush failed!\n");
return ret; return ret;
} }
@@ -290,7 +290,7 @@ static long long int process_rqt_download(const struct rqt_box *rqt)
alt_setting_num = dfu_get_alt(f_name); alt_setting_num = dfu_get_alt(f_name);
if (alt_setting_num < 0) { if (alt_setting_num < 0) {
pr_err("Alt setting [%d] to write not found!", pr_err("Alt setting [%d] to write not found!\n",
alt_setting_num); alt_setting_num);
rsp->ack = -ENODEV; rsp->ack = -ENODEV;
ret = rsp->ack; ret = rsp->ack;
@@ -316,7 +316,7 @@ static long long int process_rqt_download(const struct rqt_box *rqt)
debug("DL EXIT\n"); debug("DL EXIT\n");
break; break;
default: default:
pr_err("Operation not supported: %d", rqt->rqt_data); pr_err("Operation not supported: %d\n", rqt->rqt_data);
ret = -ENOTSUPP; ret = -ENOTSUPP;
} }
@@ -347,7 +347,7 @@ static int process_data(void)
puts("RQT: UPLOAD not supported!\n"); puts("RQT: UPLOAD not supported!\n");
break; break;
default: default:
pr_err("unknown request (%d)", rqt->rqt); pr_err("unknown request (%d)\n", rqt->rqt);
} }
return ret; return ret;
@@ -546,7 +546,7 @@ static int thor_rx_data(void)
status = usb_ep_queue(dev->out_ep, dev->out_req, 0); status = usb_ep_queue(dev->out_ep, dev->out_req, 0);
if (status) { if (status) {
pr_err("kill %s: resubmit %d bytes --> %d", pr_err("kill %s: resubmit %d bytes --> %d\n",
dev->out_ep->name, dev->out_req->length, status); dev->out_ep->name, dev->out_req->length, status);
usb_ep_set_halt(dev->out_ep); usb_ep_set_halt(dev->out_ep);
return -EAGAIN; return -EAGAIN;
@@ -580,7 +580,7 @@ static void thor_tx_data(unsigned char *data, int len)
status = usb_ep_queue(dev->in_ep, dev->in_req, 0); status = usb_ep_queue(dev->in_ep, dev->in_req, 0);
if (status) { if (status) {
pr_err("kill %s: resubmit %d bytes --> %d", pr_err("kill %s: resubmit %d bytes --> %d\n",
dev->in_ep->name, dev->in_req->length, status); dev->in_ep->name, dev->in_req->length, status);
usb_ep_set_halt(dev->in_ep); usb_ep_set_halt(dev->in_ep);
} }
@@ -613,7 +613,7 @@ static void thor_rx_tx_complete(struct usb_ep *ep, struct usb_request *req)
case -ESHUTDOWN: /* disconnect from host */ case -ESHUTDOWN: /* disconnect from host */
case -EREMOTEIO: /* short read */ case -EREMOTEIO: /* short read */
case -EOVERFLOW: case -EOVERFLOW:
pr_err("ERROR:%d", status); pr_err("ERROR:%d\n", status);
break; break;
} }
@@ -653,7 +653,7 @@ thor_func_setup(struct usb_function *f, const struct usb_ctrlrequest *ctrl)
break; break;
default: default:
pr_err("thor_setup: unknown request: %d", ctrl->bRequest); pr_err("thor_setup: unknown request: %d\n", ctrl->bRequest);
} }
if (value >= 0) { if (value >= 0) {
@@ -984,7 +984,7 @@ static int thor_func_set_alt(struct usb_function *f,
debug("Communication Data interface\n"); debug("Communication Data interface\n");
result = thor_eps_setup(f); result = thor_eps_setup(f);
if (result) if (result)
pr_err("%s: EPs setup failed!", __func__); pr_err("%s: EPs setup failed!\n", __func__);
dev->configuration_done = 1; dev->configuration_done = 1;
break; break;
} }