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:
@@ -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) {
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user