>>>>> "Dave" == Dave Tubbs <dave.tubbs@xxxxxxxxxxxxxx> writes: Dave> From: Dave Tubbs <dave.tubbs@xxxxxxxxxxxxxx> Dave> Make sure each c67x00 TD has been executed or retry using the existing Dave> retry mechanism. Reference Cypress Semiconductor BIOS User's Manual 1.2, Dave> page 3-16 Dave> Signed-off-by: Dave Tubbs <dave.tubbs@xxxxxxxxxxxxxx> Dave> --- Dave> drivers/usb/c67x00/c67x00-sched.c | 6 ++++++ Dave> 1 files changed, 6 insertions(+), 0 deletions(-) Dave> diff --git a/drivers/usb/c67x00/c67x00-sched.c b/drivers/usb/c67x00/c67x00-sched.c Dave> index aa49162..dd5bdb4 100644 Dave> --- a/drivers/usb/c67x00/c67x00-sched.c Dave> +++ b/drivers/usb/c67x00/c67x00-sched.c Dave> @@ -1033,6 +1033,12 @@ static inline void c67x00_check_td_list(struct c67x00_hcd *c67x00) Dave> !td_acked(td)) Dave> goto cont; Dave> + /* at this point, there are no errors, but it's still possible that the Dave> + * td wasn't executed by the c67x00. Confirm it was executed or force a Dave> + * retry */ Dave> + if(((td->retry_cnt) & TD_RETRYCNTMASK_ACT_FLG) && (td->status == 0)) Dave> + goto cont; Dave> + Dave> /* Sequence ok and acked, don't need to fix toggle */ Dave> ack_ok = 1; This is still not aligned with the ack_ok below? -- Bye, Peter Korsgaard -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html