|
@@ -659,10 +659,11 @@ static void rxstate(struct musb *musb, struct musb_request *req)
|
|
if (request->actual < request->length) {
|
|
if (request->actual < request->length) {
|
|
int transfer_size = 0;
|
|
int transfer_size = 0;
|
|
#ifdef USE_MODE1
|
|
#ifdef USE_MODE1
|
|
- transfer_size = min(request->length,
|
|
|
|
|
|
+ transfer_size = min(request->length - request->actual,
|
|
channel->max_len);
|
|
channel->max_len);
|
|
#else
|
|
#else
|
|
- transfer_size = len;
|
|
|
|
|
|
+ transfer_size = min(request->length - request->actual,
|
|
|
|
+ (unsigned)len);
|
|
#endif
|
|
#endif
|
|
if (transfer_size <= musb_ep->packet_sz)
|
|
if (transfer_size <= musb_ep->packet_sz)
|
|
musb_ep->dma->desired_mode = 0;
|
|
musb_ep->dma->desired_mode = 0;
|