From: Takashi Iwai <tiwai@suse.de>
To: Daniel Kaehn <kaehndan@gmail.com>
Cc: tiwai@suse.com, robh@kernel.org, alsa-devel@alsa-project.org,
devicetree@vger.kernel.org
Subject: Re: [PATCH v7 0/2] Add generic serial MIDI driver using serial bus API
Date: Thu, 12 May 2022 11:55:02 +0200 [thread overview]
Message-ID: <s5htu9vdqix.wl-tiwai@suse.de> (raw)
In-Reply-To: <20220509145933.1161526-1-kaehndan@gmail.com>
On Mon, 09 May 2022 16:59:31 +0200,
Daniel Kaehn wrote:
>
> Generic serial MIDI driver adding support for using serial devices
> compatible with the serial bus as raw MIDI devices, allowing using
> additional serial devices not compatible with the existing
> serial-u16550 driver. Supports only setting standard serial baudrates on
> the underlying serial device; however, the underlying serial device can
> be configured so that a requested 38.4 kBaud is actually the standard MIDI
> 31.25 kBaud. Supports DeviceTree configuration.
>
> Changes in v7:
> - Separate examples in dt-binding to remove need to specify unit name
> (fixing dt_binding_check error)
>
> Changes in v6:
> - Change compatible "serialmidi" -> serial-midi"
> - Default current-speed to 38400 (closest baud to MIDI standard speed)
> - Appropriately stop reading or writing MIDI if input or output
> _trigger() is called with a parameter of zero, respectively
> - Zero out corresponding triggered state on close to ensure input and
> output closing results in the serial port being closed
> - Fix order of operations in _probe()
> - Remove "DEBUG" literal from debug messages
> - Remove unused dt-parsing patch checking for existence of node
> - Whitespace / tabbing fixes / improvements
>
> Changes in v5:
> - Reword description in dt-binding for clarity
> - Change 'speed' dt property to standard 'current-speed'
> - Move MIDI output loop onto workqueue (since this could loop quite a while,
> if ALSA provides a continuous stream of bytes)
> - Add tx_state bit flags to snd_serial_generic struct
> - Safegard critical section in tx_work with atomic bit ops on tx_state
> - Switch operations on filemode to use atomic bit ops
>
> Changes in v4:
> - Fix regressed typo - Correct 3.84 kBaud -> 38.4 kBaud in DT & Kconfig
> (sorry about spam - noticed after sending v3 and didn't want to let
> the error sit around for too long)
>
> Changes in v3:
> - Replace use of snd_printk() with dev_* alternatives
> - Removed unnecessary initialization of err variables
> - Replaced instances of `== SERIAL_MODE_NOT_OPENED` with zero check
> - Loop on output_write to completely fill output buffer if data available
> - Depend on CONFIG_OF in Kconfig
> - Replace use of devm_kzalloc() with extra_size allocation in snd_devm_card_new()
> - Use module_serdev_device_driver() instead of module_init() and module_exit(0)
>
> Changes in v2:
> - Fix 'snd_serial_generic_write_wakeup' missing static keyword
> - Correct 3.125 kBaud > 31.25 kBaud in documentation for MIDI
>
>
> The need for this driver arose from a project using a Raspberry Pi4 which
> needed to receive and send raw MIDI with low latency. The pl011 UART
> used is not compatible with the existing serial MIDI driver made for
> u16550-style devices. Using a userspace program such as ttymidi to feed
> input from the TTY device to a virtual ALSA MIDI device was functional,
> but not ideal.
>
> I am not sure if a MIDI driver needing the mentioned 'hack' to clock
> 38.4 kBaud down to the standard MIDI baud is permissible in the mainline
> kernel, but am submitting nevertheless in case it is useful. To my knowledge,
> it doesn't seem that there would be any way for this driver to manually
> configure a serial port to 31.25 kBaud using the serial bus API (please
> correct me f I'm wrong). In my use case, I am actually configuring one port
> to run at 115.2 kBaud for faster communication with a custom onboard MIDI controller.
>
> Daniel Kaehn (2):
> dt-bindings: sound: Add generic serial MIDI device
> Add generic serial MIDI driver using serial bus API
Now applied both patches to for-next branch.
thanks,
Takashi
prev parent reply other threads:[~2022-05-12 9:55 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-09 14:59 [PATCH v7 0/2] Add generic serial MIDI driver using serial bus API Daniel Kaehn
2022-05-09 14:59 ` [PATCH v7 1/2] dt-bindings: sound: Add generic serial MIDI device Daniel Kaehn
2022-05-11 14:28 ` Rob Herring
2022-05-09 14:59 ` [PATCH v7 2/2] Add generic serial MIDI driver using serial bus API Daniel Kaehn
2022-05-11 14:28 ` Rob Herring
2022-05-12 9:55 ` Takashi Iwai [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=s5htu9vdqix.wl-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=alsa-devel@alsa-project.org \
--cc=devicetree@vger.kernel.org \
--cc=kaehndan@gmail.com \
--cc=robh@kernel.org \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).