[00/12] ALSA: firewire: configure interval of hw IRQ via ALSA PCM interface
mbox series

Message ID 20191017155424.885-1-o-takashi@sakamocchi.jp
Headers show
Series
  • ALSA: firewire: configure interval of hw IRQ via ALSA PCM interface
Related show

Message

Takashi Sakamoto Oct. 17, 2019, 3:54 p.m. UTC
Hi,

ALSA IEC 61883-1/6 packet streaming engine controls OHCI 1394 controller
to generate hardware IRQ for fixed number (=16) of isoc packets.
Additionally, the size of packet buffer is fixed for triple of interval
of hardware IRQ (=48).

This commit allows ALSA PCM applications to configure these parameters
by ALSA PCM interface. As a result, the size of PCM period is available
in the range between 125 usec and 64 msec (or 32 msec). The hardware
IRQ is scheduled for isoc packet which includes event across PCM period
boundary.

Takashi Sakamoto (12):
  ALSA: firewire-lib: use variable size of queue for isoc packets
    instead of fixed size
  ALSA: bebob: share PCM buffer size for both direction
  ALSA: fireworks: share PCM buffer size for both direction
  ALSA: oxfw: share PCM buffer size for both direction
  ALSA: dice: share PCM buffer size for both direction
  ALSA: firewire-digi00x: share PCM buffer size for both direction
  ALSA: firewire-tascam: share PCM buffer size for both direction
  ALSA: firewire-motu: share PCM buffer size for both direction
  ALSA: fireface: share PCM buffer size for both direction
  ALSA: firewire-lib: schedule hardware IRQ according to the size of PCM
    period
  ALSA: firewire-lib: tune the maximum available size of PCM period
  ALSA: firewire-lib: tune the minimum available size of PCM period

 sound/firewire/amdtp-stream.c               | 154 ++++++++++++++------
 sound/firewire/amdtp-stream.h               |   9 +-
 sound/firewire/bebob/bebob.h                |   3 +-
 sound/firewire/bebob/bebob_midi.c           |   2 +-
 sound/firewire/bebob/bebob_pcm.c            |  12 +-
 sound/firewire/bebob/bebob_stream.c         |   5 +-
 sound/firewire/dice/dice-midi.c             |   2 +-
 sound/firewire/dice/dice-pcm.c              |  20 ++-
 sound/firewire/dice/dice-stream.c           |   5 +-
 sound/firewire/dice/dice.h                  |   3 +-
 sound/firewire/digi00x/digi00x-midi.c       |   2 +-
 sound/firewire/digi00x/digi00x-pcm.c        |  12 +-
 sound/firewire/digi00x/digi00x-stream.c     |   5 +-
 sound/firewire/digi00x/digi00x.h            |   3 +-
 sound/firewire/fireface/ff-pcm.c            |  13 +-
 sound/firewire/fireface/ff-stream.c         |   5 +-
 sound/firewire/fireface/ff.h                |   3 +-
 sound/firewire/fireworks/fireworks.h        |   3 +-
 sound/firewire/fireworks/fireworks_midi.c   |   2 +-
 sound/firewire/fireworks/fireworks_pcm.c    |  12 +-
 sound/firewire/fireworks/fireworks_stream.c |   5 +-
 sound/firewire/motu/motu-midi.c             |   2 +-
 sound/firewire/motu/motu-pcm.c              |  12 +-
 sound/firewire/motu/motu-stream.c           |   5 +-
 sound/firewire/motu/motu.h                  |   3 +-
 sound/firewire/oxfw/oxfw-midi.c             |   4 +-
 sound/firewire/oxfw/oxfw-pcm.c              |  17 ++-
 sound/firewire/oxfw/oxfw-stream.c           |   5 +-
 sound/firewire/oxfw/oxfw.h                  |   3 +-
 sound/firewire/tascam/tascam-pcm.c          |  12 +-
 sound/firewire/tascam/tascam-stream.c       |   5 +-
 sound/firewire/tascam/tascam.h              |   3 +-
 32 files changed, 266 insertions(+), 85 deletions(-)

Comments

Takashi Iwai Oct. 18, 2019, 2:37 a.m. UTC | #1
On Thu, 17 Oct 2019 17:54:12 +0200,
Takashi Sakamoto wrote:
> 
> Hi,
> 
> ALSA IEC 61883-1/6 packet streaming engine controls OHCI 1394 controller
> to generate hardware IRQ for fixed number (=16) of isoc packets.
> Additionally, the size of packet buffer is fixed for triple of interval
> of hardware IRQ (=48).
> 
> This commit allows ALSA PCM applications to configure these parameters
> by ALSA PCM interface. As a result, the size of PCM period is available
> in the range between 125 usec and 64 msec (or 32 msec). The hardware
> IRQ is scheduled for isoc packet which includes event across PCM period
> boundary.
> 
> Takashi Sakamoto (12):
>   ALSA: firewire-lib: use variable size of queue for isoc packets
>     instead of fixed size
>   ALSA: bebob: share PCM buffer size for both direction
>   ALSA: fireworks: share PCM buffer size for both direction
>   ALSA: oxfw: share PCM buffer size for both direction
>   ALSA: dice: share PCM buffer size for both direction
>   ALSA: firewire-digi00x: share PCM buffer size for both direction
>   ALSA: firewire-tascam: share PCM buffer size for both direction
>   ALSA: firewire-motu: share PCM buffer size for both direction
>   ALSA: fireface: share PCM buffer size for both direction
>   ALSA: firewire-lib: schedule hardware IRQ according to the size of PCM
>     period
>   ALSA: firewire-lib: tune the maximum available size of PCM period
>   ALSA: firewire-lib: tune the minimum available size of PCM period

Applied all 12 patches now.  Thanks.


Takashi