From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932491AbbIXBiv (ORCPT ); Wed, 23 Sep 2015 21:38:51 -0400 Received: from mail-by2on0104.outbound.protection.outlook.com ([207.46.100.104]:49819 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932311AbbIXBiY (ORCPT ); Wed, 23 Sep 2015 21:38:24 -0400 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=freescale.com; samsung.com; dkim=none (message not signed) header.d=none;samsung.com; dmarc=none action=none header.from=freescale.com; Date: Thu, 24 Sep 2015 09:38:08 +0800 From: Peter Chen To: "Felipe F. Tonello" CC: , , "Greg Kroah-Hartman" , Felipe Balbi , Andrzej Pietrasiewicz Subject: Re: [PATCH v2 2/3] usb: gadget: f_midi: free usb request when done Message-ID: <20150924013807.GC10369@shlinux2> References: <1443009704-30320-1-git-send-email-eu@felipetonello.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <1443009704-30320-1-git-send-email-eu@felipetonello.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD031;1:aemphE1cwqoTaQ+pqGO4Rdpj1RpWskCFDvuc4cWg5w3fDNlBUEbJGDlFgGzUztkVm3mERgSlJiAWqESpkl1El6zo3m3ZHcVSTxSyAxyOFxfwU9rzdAPSdhWGVkMXCCJh2sz81f396CVgyungSMxBYf0TzD7Qp4X9fLoYx96l3R5sOtb64WgrPhpghFSIFZKHjVjOmjF/pDxBPArylYoLXYRwauEkWb1Yt6ZTQqfCceu+z9I96UcuEFtX0v2PB0uwztYMeqvuLit7F2im4oVo0hBmUidyTYyHotvoVYgDoaBcovuWYhYMeOKkb7v6PA2CnkCja31Bpyc5DADdTxwE1pq5NUGDImTEahOSjBMJ2pRtq35KDD3fr6D/6V3mYvWR X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(1110001)(1109001)(339900001)(189002)(24454002)(199003)(19580395003)(68736005)(19580405001)(189998001)(76176999)(77096005)(5007970100001)(85426001)(77156002)(83506001)(64706001)(110136002)(86362001)(5001960100002)(62966003)(33716001)(2950100001)(50986999)(46406003)(92566002)(105606002)(50466002)(87936001)(54356999)(33656002)(5001860100001)(106466001)(11100500001)(4001350100001)(5001830100001)(97736004)(81156007)(6806005)(23726002)(47776003)(46102003)(4001540100001)(104016004)(97756001);DIR:OUT;SFP:1102;SCL:1;SRVR:BN3PR0301MB1265;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1265;2:HPFXnNpH4MYn8aG4bhTXPs+WBSupzlybuWKi1gM9qVm3RVqsvUuGSf5423hb3iooT400YvctYHbgXRR86jwPZxaGiYGWVCmf5Ud/1bPbq19zouQBbVsFqWH29US65XLqc2jL5mYRNXxZTh96dt7bCO3iurTt+fhYMHTLSxGpmdw=;3:sadVh75TBa+fbXF6XcrYPlEIS+xAKeLNskOlPvT+bs5gVzFjNugW8byDJB0M9AX0O+YQjh+YvhIduBM/j6QxDkAQCLmkSSHD+/LnupRFek5T/j8PsqloPcSct3X6rdeOdMz55rpYIjVx06ySEL60ePkvEN9U/iT6A8n7i45CZPPa2LG2fUAZT2/tG2/PCIFEZVY1J/WjViW9+lDkQllUR9jthTN8hSyEiMlcAhzJnwM=;25:x77IIA6L4wEPdfeCjIl88PFYl/N7u88ROn6Es6DC1tPQfFB+ArEVv8LNSRiSNafpawM1+ljy14Zo+mEQZR8JWnADQvmVjoiJ3nt44rZ76x7nxyFjWW0BhM+Fu7SRikkaHCa0rKjFOdfWe1MGsg8YK7GAPq1yYstuqyQ3APptQf+GztuAG5z/grV0XR99AzTRwgsVZ5ohxNW0aeRuysVQ7pO51tMgJjBTQ0Pt4nBMw9qBmSdLa38kV7bD2UyCOpK7T/0LD/MWNvnJcU+tFO2NcA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0301MB1265; X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1265;20:UobvJkMHAJzhpgW/tiQSKbfJGKIxJev7P4sAK2luxu9d9JnMMOaPZoPgmI0AzkYTFwBOtTlto6Qvky3icS3mTqCXPU6SsY0GOdguOhq7p4Lu5PiXw3R7Lb4W+h5hor7o99vWgkYcoumYsutUXYMeGzHnZnf6JfGAIpjdSm7f2NuW2X8GbzauJUCMksCIztqp4q1btYlx327fKbXwD6GHl0cLMagb29E9QVgvhqyW8r0FVUPn+KbhEaEZAxLbiIZFJy3EaBcDT6UgG19ZChKG/tzKp5nDOfGnxola6EsnCC9gcyR8bceOrsgrSJS1K0qDZmAqZFOtSdl4U8huTalbPn1XAcQyyWX6DwOuus4goF8=;4:njZwHFaet1Flv916/w+A8N93F4gbEp40H/cg2s23lgts4Vua3/kTAdouiVzHtXtmhU9Mm38cidjkdI4ipg31OCjacKd1uXuQWjybg8JTcCYA6oEreTyTjHsttGM4SVIvFeIYWsG8I0tGnyzzvLZ8xrmoCR4v/pMllxZuS24ClNlaw4J7whCFtcIK8Bb3AvTU4ie31U3rWUbNzW1TrH0Gju8x9kgTNxalZLk6lyKW/OtpWB8c8zDScoYLZr6K9uMveohSRAVE5Z+Oonf5sStU9fXSln9f7UeOwer1e4Cu4x15isa0GMi8a1n7nZpriFw0skKNJRZ4yrC1x42VWDjOTeocoGju0q+qsahT7uqRyPo= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(3002001);SRVR:BN3PR0301MB1265;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0301MB1265; X-Forefront-PRVS: 070912876F X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN3PR0301MB1265;23:kYX7srF5auziCPuSPX+b64oC6SG+JjiFcOw9EaD?= =?us-ascii?Q?0YJN+7kPsnLk6nxBY9S7OyBEYwktRMOLqIQ98AF0c00V/QzsJsS8MjkKJD2t?= =?us-ascii?Q?Xzo0bNuytS5AnrWMg4AwfIfVjIENYMPFAnPDsANOhgUVo9nbzu7cEVCjgXgp?= =?us-ascii?Q?z6rsJGLv2HTiBuA6cVgXqJN2IZ0iORlUfkVd+neojEonMe6Y/1fRGGk43OzW?= =?us-ascii?Q?yiOC9Rb0iwuyQREthpCnSL9kQ8dIYK4shb9lgBb/shJtgsAITpAWsj8ky6vX?= =?us-ascii?Q?O/qjp8p0ZFeTiCyvDJUgMAMhM21ft7yfoBnFuek3m98il1zbcHY3/AcxHq6d?= =?us-ascii?Q?B4kFGEl/ykT2wr3aHpE2U1ge/K+G5pTQTxINfcHIb5/SKNy66ufAGGstEdO4?= =?us-ascii?Q?KPJ5SBZgYY6EpzQAgPS6gtGbtQnkyOS2qI3XkbWUNVFU8xUYfKRubovjdUPK?= =?us-ascii?Q?V4INLUPeLUpJAQKe6oi7LjFmz6ksaoEKR70OkM1bHiOED4Jzg6oMGG0Rbs+8?= =?us-ascii?Q?Ym7hs4sVwLUAqwjXx9sHcCNEgL3sMbugf9jIsnmiuyuqTOTxM9QSgRjkxV9j?= =?us-ascii?Q?Xh3nSHw33ZpetCSL2YrvmJ/lXNTrIXV8StrWmwpMxbNvFtVCfDEVlifVVToD?= =?us-ascii?Q?rGTWaHI9qKCayGr8l2IDJK/gVYhhytQS0iwWjnP3D65LwxdfIuq4BJX2mOka?= =?us-ascii?Q?aXN48HzA0O58vUyih8tgJ0vLWAcA58OvoOvfhg3RCbjX2WkLeWDDkgZPBy44?= =?us-ascii?Q?slUIi4UgyWej7Z6lYk2axmZjo2b5/KcrTSLHQE6qeVXKrzBP6lv0FvD45IXO?= =?us-ascii?Q?5brTXkxO3c+HMr4zNhUP1SrjrZfozKkNMLaun7ETAhEWjub0tox1qnMQQAZ7?= =?us-ascii?Q?knJa4DJPyJQjCgQzZwqrtsBr7NI+NlI8HQ6RVXMAzbjPoca6oXmPE0vLDeud?= =?us-ascii?Q?mt2UhjPr58toqAM37lwaXbSrZnScf5X6HUXoPAFX9p0wa+zw1yR7NwZXBz2K?= =?us-ascii?Q?9br8b8QYihXD/KEpjhopM6+euqWoa150u4P5A/J3BfCWDkQ67yP8RnOcepd4?= =?us-ascii?Q?mSLDtwcOPA3Oi7Bun9xBaxF0RLSWWclIj5g6v8XJ0yYtqK4CgCZ7DCiCXdXJ?= =?us-ascii?Q?4lb8BpbFEGvKwL4ZLIxq+9l53aPZyQESkyfmfMRVi8J88Zt8YqgNpVGUtL42?= =?us-ascii?Q?pPnYLpnV5vuzD31zsq871itYnrQUlUNbdPBGPLXMtrIimt74hI3HMCQC8dMy?= =?us-ascii?Q?Y+6/IKRqTU81M2lHaIM8=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1265;5:eZP3GFXHIWl0yl4N5/uxqmKKbubHFhHa4v9UdbalT+j0EbRR59CITP7KO8l8VlAk4u3saPQsWrErcRJzcEBAaPt1N3WpaHbw0BgCtqmJiOFf0kpGipZ2B+8fPlgxcJEuO6WwGy9VE+IuSOe9JkuExA==;24:xVMuPGIulvAYmmVwq3wD2OV9pd8w1D7nREUtVem9zTpOVOMaGE+ZrK0EevyRe3r/5Kp6QbnbA1BrpWiFzUfryGiR4KnEAq7tZiA6Yuhas+w=;20:UYSVUdeSqZvGwAzdYyWn9aqnUvVujLgoFWNgwCT7Pwn2gPnyLjdnieDSfg/+vORULfofsQwbU5kGnbcX+W1ssA== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Sep 2015 01:38:20.2614 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0301MB1265 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Sep 23, 2015 at 01:01:44PM +0100, Felipe F. Tonello wrote: > req->actual == req->length means that there is no data left to enqueue, > so free the request. > > Signed-off-by: Felipe F. Tonello > --- > > Changes in v2: > * Re enqueue not fully completed requests, instead of read ALSA buffers. > > drivers/usb/gadget/function/f_midi.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c > index edb84ca..62356cf 100644 > --- a/drivers/usb/gadget/function/f_midi.c > +++ b/drivers/usb/gadget/function/f_midi.c > @@ -256,10 +256,12 @@ f_midi_complete(struct usb_ep *ep, struct usb_request *req) > /* We received stuff. req is queued again, below */ > f_midi_handle_out_data(ep, req); > } else if (ep == midi->in_ep) { > - /* Our transmit completed. See if there's more to go. > - * f_midi_transmit eats req, don't queue it again. */ > - f_midi_transmit(midi, req); > - return; > + /* Our transmit completed. If there is no more to go, > + don't queue it again. */ > + if (req->actual == req->length) { > + free_ep_req(ep, req); > + return; > + } I find f_midi_transmit will judge if there are more data, if without data, it will free the request. Besides, does one trigger only do one transfer? Sorry, I can't make my aplaymidi to receive data, probably due to hardware without midi support? root@imx6qpsabreauto:~# aplaymidi ALSA lib /var/lib/jenkins/workspace/fido-3.14.28-X11-consolidated_new/temp_build_dir/build_all/tmp/work/cortexa9hf-vfp-neon-mx6qdl-poky-linux-gnueabi/alsa-lib/1.0.28-r0/alsa-lib-1.0.28/src/seq/seq_hw.c:457:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory Cannot open sequencer - No such file or directory -- Best Regards, Peter Chen