devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

      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).