Loading drivers/usb/gadget/function/f_mtp.c +22 −5 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ #define STATE_ERROR 4 /* error from completion routine */ /* number of tx and rx requests to allocate */ #define TX_REQ_MAX 4 #define MTP_TX_REQ_MAX 8 #define RX_REQ_MAX 2 #define INTR_REQ_MAX 5 Loading @@ -76,6 +76,12 @@ unsigned int mtp_rx_req_len = MTP_BULK_BUFFER_SIZE; module_param(mtp_rx_req_len, uint, 0644); unsigned int mtp_tx_req_len = MTP_BULK_BUFFER_SIZE; module_param(mtp_tx_req_len, uint, 0644); unsigned int mtp_tx_reqs = MTP_TX_REQ_MAX; module_param(mtp_tx_reqs, uint, 0644); static const char mtp_shortname[] = DRIVER_NAME "_usb"; struct mtp_dev { Loading Loading @@ -503,11 +509,22 @@ static int mtp_create_bulk_endpoints(struct mtp_dev *dev, ep->driver_data = dev; /* claim the endpoint */ dev->ep_intr = ep; retry_tx_alloc: if (mtp_tx_req_len > MTP_BULK_BUFFER_SIZE) mtp_tx_reqs = 4; /* now allocate requests for our endpoints */ for (i = 0; i < TX_REQ_MAX; i++) { req = mtp_request_new(dev->ep_in, MTP_BULK_BUFFER_SIZE); if (!req) for (i = 0; i < mtp_tx_reqs; i++) { req = mtp_request_new(dev->ep_in, mtp_tx_req_len); if (!req) { if (mtp_tx_req_len <= MTP_BULK_BUFFER_SIZE) goto fail; while ((req = mtp_req_get(dev, &dev->tx_idle))) mtp_request_free(req, dev->ep_in); mtp_tx_req_len = MTP_BULK_BUFFER_SIZE; mtp_tx_reqs = MTP_TX_REQ_MAX; goto retry_tx_alloc; } req->complete = mtp_complete_in; mtp_req_put(dev, &dev->tx_idle, req); } Loading Loading
drivers/usb/gadget/function/f_mtp.c +22 −5 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ #define STATE_ERROR 4 /* error from completion routine */ /* number of tx and rx requests to allocate */ #define TX_REQ_MAX 4 #define MTP_TX_REQ_MAX 8 #define RX_REQ_MAX 2 #define INTR_REQ_MAX 5 Loading @@ -76,6 +76,12 @@ unsigned int mtp_rx_req_len = MTP_BULK_BUFFER_SIZE; module_param(mtp_rx_req_len, uint, 0644); unsigned int mtp_tx_req_len = MTP_BULK_BUFFER_SIZE; module_param(mtp_tx_req_len, uint, 0644); unsigned int mtp_tx_reqs = MTP_TX_REQ_MAX; module_param(mtp_tx_reqs, uint, 0644); static const char mtp_shortname[] = DRIVER_NAME "_usb"; struct mtp_dev { Loading Loading @@ -503,11 +509,22 @@ static int mtp_create_bulk_endpoints(struct mtp_dev *dev, ep->driver_data = dev; /* claim the endpoint */ dev->ep_intr = ep; retry_tx_alloc: if (mtp_tx_req_len > MTP_BULK_BUFFER_SIZE) mtp_tx_reqs = 4; /* now allocate requests for our endpoints */ for (i = 0; i < TX_REQ_MAX; i++) { req = mtp_request_new(dev->ep_in, MTP_BULK_BUFFER_SIZE); if (!req) for (i = 0; i < mtp_tx_reqs; i++) { req = mtp_request_new(dev->ep_in, mtp_tx_req_len); if (!req) { if (mtp_tx_req_len <= MTP_BULK_BUFFER_SIZE) goto fail; while ((req = mtp_req_get(dev, &dev->tx_idle))) mtp_request_free(req, dev->ep_in); mtp_tx_req_len = MTP_BULK_BUFFER_SIZE; mtp_tx_reqs = MTP_TX_REQ_MAX; goto retry_tx_alloc; } req->complete = mtp_complete_in; mtp_req_put(dev, &dev->tx_idle, req); } Loading