From patchwork Thu Jan 6 12:41:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Sauer X-Patchwork-Id: 530360 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 46282C433F5 for ; Thu, 6 Jan 2022 12:42:50 +0000 (UTC) Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 42B0518E4; Thu, 6 Jan 2022 13:41:58 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 42B0518E4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1641472968; bh=LotRBLbKIaT2cq1py77HT4aylym5EGz4bxaDCKTQlds=; h=From:To:Subject:Date:Cc:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From; b=Eh2Ss5MeKGrKIYtK++4UFRqjcVx5JIbPuOEh/YYn5ToCXGj7Kfn9ifnGKK2AStXJt KeEXVhOumt2PBTEg+JV96sf11o/NgZjROPtMOa8yTZisLNHaRGb+CpyUst/JBhv9Fz O8dpR39Ulai9pmewHqmFbi/VPErGFfzm1vzBF2C0= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id D561AF80121; Thu, 6 Jan 2022 13:41:57 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id E40A5F800BB; Thu, 6 Jan 2022 13:41:55 +0100 (CET) Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id C03AFF800BB for ; Thu, 6 Jan 2022 13:41:49 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz C03AFF800BB Authentication-Results: alsa1.perex.cz; dkim=pass (1024-bit key) header.d=gmx.net header.i=@gmx.net header.b="jv+Y278R" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1641472909; bh=LotRBLbKIaT2cq1py77HT4aylym5EGz4bxaDCKTQlds=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=jv+Y278RWATQYL5kDB3z7tMDBQL8BAlLVGfokGYFW2Y4eChJRCOSbaBs4WUZajZSm bmUpySiNMF5lrljoiSMAf5Xok1mRL65AU2BFtoPqOZVYUifWDhzewITI9WEzBCLWgS UNKj2qW0idGgG4COAyOmmVlGowbp/ZMttKsg9iJM= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from wave.lan ([95.91.248.70]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M4JmN-1n5j4O0o0v-000Jj5; Thu, 06 Jan 2022 13:41:49 +0100 From: Stefan Sauer To: alsa-devel@alsa-project.org Subject: [PATCH 1/2] ALSA: seq: virmidi: Add a drain operation Date: Thu, 6 Jan 2022 13:41:45 +0100 Message-Id: <20220106124145.17254-1-st_kost@gmx.de> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Provags-ID: V03:K1:hTw/pX0BEWdyjKPQcAaPTRylFtVBYkEwLQQaO9j2F++egiI/HX2 tvuj4R+MqebYI9vknkjN4j3lX6juPWXP6pVo69YTrIYgQVU2ytfqnEqFAfhjvWNgCHElsZN jvesCZYi+WB4m3s/Toj0GjIDVcbrRAGgq4e1AYbuBDAs1CJaGdm2up/2uOZRbjFyIBckqQI +y98YPIJn0MrHbjLcOmiA== X-UI-Out-Filterresults: notjunk:1;V03:K0:+g8pMnpKPos=:crazdNO6UIMF9p+4hzVMcy Yer0h0+k5bS4yvN5DJpd+6E1hbP3KHmXwo6zSICbJqFC2jXNJFGtwDoAnsIhTNWo9L5WRHCXj ILGua4QsLnAmc2IUUkWan2BW4ku93rNVBASWBTGRONkvID0GmUkq80pjJ8d1g1VucqwpjI3Nv 5AzumqvO13AUDw4sCD3YO1D6NbLoCBwXJtNo+4mbLhNLrCr+R8GuXJzkOJskDloG0VozjVBwm 66rWtElnD8ZLplBqsy/dlT1FF0uiaIF0jglawmMX/QbWoR0GepbP5jtw9iHCemGB2oBsHxsrM S8HWi61IqGx3g0iOoEihtmz2ksv7SsW3n+V2f/KrHuwuLh+rmJSFIJ3bQYmUsu/lGumwBJPhf Q2UOpaVKXzPX4/YxzG8d2XqW7aY0r/IzHq/XV09oBseU/XjlHz3yZp7H3/SRJcN38y+F7+L2S g9+Xr9c2liQjyf8GDVcXHUMJxNvKC0c7QC10QP7fMirNj/aSIJj/iMfLC3N8Q6bhDrAM4p2P0 ggfYUQPuSjJEd02yj/KbtNaQhCxE39h7OCPjNQX/k6y8YiVz9cio7WcaI9G0RD7fs7c5E9b5G QXI5hh52Ii81BD+mgfW3haCCJktcQTArGeYS6nEoN/vGFSMjfa/AWIuPU0igsg330HWTbs0ld wgFSOVPRbLhp3Cxtmqhya73f2sNe/QeywNKvhYVb3En7fSRG6Kz7GK1L9JBL/9h/immyIT6sc d03BTzxZwVw9lgfCdxAv3kkbY1cVkMzD/02bcSTTWoFF48Y1p4gk/cERWja+tPLuXWsP8o5OV OO5DDJalFp2Hnu4rWEA0FoN989M/E6D0RauyJhBVZ7vGSjrCR5kBotyjQ+av2ZpdkCrADsyv5 1QZGmnUgcrfMesrcKIEPvRhZ7NA3qCJ+GbDPjto6XYoDMLWe4c3IAW54LnbZo4eKGsXApLjK7 5/vUPKSXhjIrz4GEFoLyWAIetZD7ZY1YLj0yJqGcROGK4BZC368MWq/AOVdy7qMc/OWK2BhCP UUwyWwufQ8lORVTjBUNSf1ha/hv9hKgW2D92o8h7YBnFYF/9RB0spp6WNZc/3vWLtmVi+2t5k xsewfR4SvLNq90= Cc: Stefan Sauer X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" If a driver does not supply a drain operation for outputs, a default code path will execute msleep(50). Especially for a virtual midi device this severely limmits the throughput. This implementation for the virtual midi driver simply flushes the output workqueue. Signed-off-by: Stefan Sauer --- sound/core/seq/seq_virmidi.c | 11 +++++++++++ 1 file changed, 11 insertions(+) -- 2.34.1 diff --git a/sound/core/seq/seq_virmidi.c b/sound/core/seq/seq_virmidi.c index 4abc38c70cae..f5cae49500c8 100644 --- a/sound/core/seq/seq_virmidi.c +++ b/sound/core/seq/seq_virmidi.c @@ -262,6 +262,16 @@ static int snd_virmidi_output_close(struct snd_rawmidi_substream *substream) return 0; } +/* + * drain output work queue + */ +static void snd_virmidi_output_drain(struct snd_rawmidi_substream *substream) +{ + struct snd_virmidi *vmidi = substream->runtime->private_data; + + flush_work(&vmidi->output_work); +} + /* * subscribe callback - allow output to rawmidi device */ @@ -336,6 +346,7 @@ static const struct snd_rawmidi_ops snd_virmidi_output_ops = { .open = snd_virmidi_output_open, .close = snd_virmidi_output_close, .trigger = snd_virmidi_output_trigger, + .drain = snd_virmidi_output_drain, }; /* From patchwork Thu Jan 6 12:38:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Sauer X-Patchwork-Id: 530525 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D75CDC433EF for ; Thu, 6 Jan 2022 12:39:42 +0000 (UTC) Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 8C38018C4; Thu, 6 Jan 2022 13:38:50 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 8C38018C4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1641472780; bh=mHOlJaipswBgRC3zE4CDcDt7phcijeQAZ9WHCyZuXY8=; h=From:To:Subject:Date:Cc:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From; b=c/DjJi5WnI8bF98osYzavvb9M88ciVM87vg24zFlnDBEVqAYWcEOH/sfdc9hvDpaH r80qs7ae6dm1/tfO+YVSKGOhjvRCsEiJHpO8ICPWAKgMHhafeGBDawbYVfkvofG66o 0R3f5thNW8msxnweMi4BkXokmL2RAJVBINp4QImU= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 25951F800AE; Thu, 6 Jan 2022 13:38:50 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 2116CF80155; Thu, 6 Jan 2022 13:38:49 +0100 (CET) Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 2F638F800AE for ; Thu, 6 Jan 2022 13:38:41 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 2F638F800AE Authentication-Results: alsa1.perex.cz; dkim=pass (1024-bit key) header.d=gmx.net header.i=@gmx.net header.b="LskM8Mmy" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1641472721; bh=mHOlJaipswBgRC3zE4CDcDt7phcijeQAZ9WHCyZuXY8=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=LskM8MmyhxBlKKprXo0cr6zeYZ1lu24JXRRhViTu8XlmhVLdscYb0xBm2CJ3uKw0i oMr5iUt5Qg7HXuPSJp4zPlDJqv6iV4/3kP3j8ZiZXL49/3CjLTnCCpbdq20rOX07Fr YFHtA70p2uBrp47bYsdMVfjWdh+OOEggThqs0sfo= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from wave.lan ([95.91.248.70]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N2E1M-1mNm1O3i5W-013f3d; Thu, 06 Jan 2022 13:38:40 +0100 From: Stefan Sauer To: alsa-devel@alsa-project.org Subject: [PATCH 2/2] ALSA: virmidi: Remove duplicated code Date: Thu, 6 Jan 2022 13:38:21 +0100 Message-Id: <20220106123821.16691-1-st_kost@gmx.de> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Provags-ID: V03:K1:LibY9frHGRZ3vs1wdFQwTOLjHJCIpiOP32scdfw8jnJVgJuyydx eKsdw8VBTfyFpTJIWeDY/N9vdEOo8NhyIpj1U8uvBGmBa3PwlhmIeVEomdrlkbr/LAFqg3u pYQ609kBIaSBPljeqKz+lYEAWv3J+r+d1BWMxE5rYrdm3oaDbnKsd+8hO14PjI5u2ZzO2X5 Tz+42kHNKUMmCVe3q0+cg== X-UI-Out-Filterresults: notjunk:1;V03:K0:fAFnrM+ctpE=:MY9ORZ53XYLUbHSdwLMNSl 4BMZ0CGMAi8pKQsAjCnwFrgVPjVieGotKgP8fyTX8h8+jZdaqh0o8g7kYshwskpuAgdEAURyY bH2CyrnCPkk8nZOO77LPuZ9nEj8PLIQlNkPfuDOExuiHl2LMA65Urd7q9szaSW6D6K5tsyBXt TjqcocOuoLOUH+OBDiK83D6IHaQySPnZJ1ZcSZHcC4txAxDQK57afY6ShROIpYWgso72Id6Xk 0kjXnrFK9y2za/wmt1vyKZQdHAiN1LbyE7JKBa2fGfj2w6QFyo2VJ18GDRARgTKiiBihp1MI/ 73CjkMxFdzUDK0ZaZjngOdlmsyNOFEa02KgjAvdyBjayV/8YX2eLCbP9rZa0RucKQyxYAw4qO H2ZvzBySGqdaLnO7CBEhv9LKxpugJRsRzXd4A5aGQtltEHaG0AF5yEauiWmANudcQDPunXf/B evalpKQ6Jz7om5b+Y1WV6clT33/4skz65N6xIQS8oW2G2+c79aZFQ0vlf1MoSL67ONnKpdntM oKqcfzR2BKdUIX6stm6YTp7yVQqpCGzIZcJ6f6y61haJA6fHE3JqZ2RNh5iDrZubtCEqRbwZE PUSQdNHAMgV/8gJnfBadWen2pkhTXZr4QR8MmxCx559uAsyDLqYDqOE1FQBCbRfTeuj20NsxZ n2cSydm2UQpCnkxhyB+7gbUXWMLa6SQhAy/Rjn+ybiDtzeROk58CmMZlPZpY4dS8ckq1GAUD3 URm0kEtzlv8NCQMFEEg6Sz7L4o6SZL0r5pEAWdOx88hGIIeRCRoa509oQtuuWHIN/hkRRni4h /56NbInZUdkArGFOsG732L3pRzQqbKEjHGpQZFGN0Yo1leDRwUJthjok0nhHYAiCOyAPsMPfh x7+lNYON1zWTDZkAY7qgtd1sIPkA0V/sTalZzC4h7jNc86qgMWbHnSYHS38UEDVDBPZ35eSWN yAOqnNjD6/wHbOmQ20YO6DrwvhPUBNGbQaRVBJ10AImxC2d6rr6YvyQWyxeivck+DPqwqGduB 1Z6GNJTB+qywpVfNVrRmeuv5JTjkSSz81tufCHmySHoLl5L6raaJgs9SG6T3U8OhrEckILvfb tORDv7CmFsRrq4= Cc: Stefan Sauer X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" seq_virmidi.c: snd_virmidi_new() is already setting seq_mode to SNDRV_VIRMIDI_SEQ_DISPATCH. Signed-off-by: Stefan Sauer --- sound/drivers/virmidi.c | 3 --- 1 file changed, 3 deletions(-) -- 2.34.1 diff --git a/sound/drivers/virmidi.c b/sound/drivers/virmidi.c index 7f7eed6faaae..58012de90c38 100644 --- a/sound/drivers/virmidi.c +++ b/sound/drivers/virmidi.c @@ -90,15 +90,12 @@ static int snd_virmidi_probe(struct platform_device *devptr) } for (idx = 0; idx < midi_devs[dev]; idx++) { struct snd_rawmidi *rmidi; - struct snd_virmidi_dev *rdev; err = snd_virmidi_new(card, idx, &rmidi); if (err < 0) return err; - rdev = rmidi->private_data; vmidi->midi[idx] = rmidi; strcpy(rmidi->name, "Virtual Raw MIDI"); - rdev->seq_mode = SNDRV_VIRMIDI_SEQ_DISPATCH; } strcpy(card->driver, "VirMIDI");