USB: s3c-hsotg: Only load packet per fifo write
Limit the IN FIFO write to a single packet per attempt at writing, as per the specifications and ensure that we don't return fifo-full so that we can continue writing packets if we have the space. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
10aebc772a
commit
03e10e5ab5
|
@ -538,6 +538,17 @@ static int s3c_hsotg_write_fifo(struct s3c_hsotg *hsotg,
|
|||
if (can_write > 512)
|
||||
can_write = 512;
|
||||
|
||||
/* limit the write to one max-packet size worth of data, but allow
|
||||
* the transfer to return that it did not run out of fifo space
|
||||
* doing it. */
|
||||
if (to_write > hs_ep->ep.maxpacket) {
|
||||
to_write = hs_ep->ep.maxpacket;
|
||||
|
||||
s3c_hsotg_en_gsint(hsotg,
|
||||
periodic ? S3C_GINTSTS_PTxFEmp :
|
||||
S3C_GINTSTS_NPTxFEmp);
|
||||
}
|
||||
|
||||
/* see if we can write data */
|
||||
|
||||
if (to_write > can_write) {
|
||||
|
|
Loading…
Reference in New Issue