From: Takashi Sakamoto <o-takashi@sakamocchi.jp>
To: Rolf Anderegg <rolf.anderegg@weiss.ch>
Cc: alsa-devel@alsa-project.org, Michele Perrone <michele.perrone@weiss.ch>
Subject: Re: ALSA: dice: improve support for Weiss devices
Date: Tue, 5 Sep 2023 10:20:28 +0900 [thread overview]
Message-ID: <20230905012028.GA262570@workstation.local> (raw)
In-Reply-To: <d102d417-c34d-b4f5-f037-e5460c01ea58@weiss.ch>
Hi Rolf,
On Mon, Sep 04, 2023 at 06:00:24PM +0200, Rolf Anderegg wrote:
> Hi Takashi,
>
> Glad that we could be of help.
> We checked this on the firmware side and yes, we can confirm that the
> Weiss MAN301 is the only device with AV/C protocol (using vendor dependent
> commands).
OK. It is good firmware design to make snd-dice-ctl-service simpler.
> We are deploying a small set of commands in order to probe and control
> the parameters on the MAN301:
>
> WEISS_CMD_ID_DEV_CONST:
> probe the number of parameters
>
> WEISS_CMD_ID_PARAM_OP:
> read/write to a parameter
>
> WEISS_CMD_ID_PARAM_INFO:
> read parameter info (index, type, iface type, name)
>
> WEISS_CMD_ID_ENUM_ITEM_INFO:
> read parameter enum type info
>
> This allows us to populate and control snd-control instances that represent
> the device's featured parameters [1].
>
> How would you like to proceed for `snd-firewire-ctl-services`?
> We can start by giving you the output of `amixer contents` for the MAN301,
> so you see all the controls and their possible values (see below).
Great. In my current plan for snd-dice-ctl-service, action items would
be enumerated in below:
1. Add support for all of models except for MA301 (need additional work to
current MR to exclude MA301)
2. implement the vendor dependent command to `firewire-dice-protocols`
crate[2] with dependency on `ta1394_avc_general` crate[3]
3. implement the control primitives to `firewire-dice-protocols` in the
fasion of hard-code
4. Add support for MA301
The reason of hard-code against your implementation in dice-avc.c is
to express hardware specification in code. FireWire audio devices are
nowadays not updated anymore, and I think the explicit control primitives
is helpful to remaining users.
[1] https://github.com/alsa-project/snd-firewire-ctl-services/pull/175
[2] https://crates.io/crates/firewire-dice-protocols
[3] https://docs.rs/ta1394-avc-general/latest/ta1394_avc_general/
> Let us know if there's any additional information we can provide.
If the control primitives have been changed (newly added or abandoned)
between several firmware versions, I would like you to inform it to me.
> Kind regards,
> Rolf Anderegg
>
>
> [1] https://github.com/weiss-engineering/snd-dice/blob/avc/dice-avc.c
Thanks for your delivery of useful information for Weiss models. It is
my pleasure to maintain Linux systems to use them for 6 more years.
Regards
Takashi Sakamoto
> --
> $ amixer contents
> numid=3,iface=CARD,name='Dual Wire Mode Switch'
> ; type=BOOLEAN,access=rw------,values=1
> : values=off
> numid=4,iface=CARD,name='Dual Wire Word Clock Half Rate Switch'
> ; type=BOOLEAN,access=rw------,values=1
> : values=off
> numid=1,iface=CARD,name='Sync source'
> ; type=ENUMERATED,access=rw------,values=1,items=13
> ; Item #0 'AES1'
> ; Item #1 'AES2'
> ; Item #2 'AES3'
> ; Item #3 'AES4'
> ; Item #4 'AES'
> ; Item #5 'ADAT'
> ; Item #6 'TDIF'
> ; Item #7 'Wordclock'
> ; Item #8 'ARX1'
> ; Item #9 'ARX2'
> ; Item #10 'ARX3'
> ; Item #11 'ARX4'
> ; Item #12 'Internal'
> : values=2
> numid=10,iface=MIXER,name='DAC::Analog Output Level'
> ; type=ENUMERATED,access=rw------,values=1,items=4
> ; Item #0 '0 dB'
> ; Item #1 '-10 dB'
> ; Item #2 '-20 dB'
> ; Item #3 '-30 dB'
> : values=1
> numid=8,iface=MIXER,name='DAC::DAC Filter Type'
> ; type=ENUMERATED,access=rw------,values=1,items=2
> ; Item #0 'A'
> ; Item #1 'B'
> : values=0
> numid=9,iface=MIXER,name='DAC::DAC Output Playback Switch'
> ; type=BOOLEAN,access=rw------,values=1
> : values=on
> numid=7,iface=MIXER,name='DAC::DAC Polarity Inversion Playback Switch'
> ; type=BOOLEAN,access=rw------,values=1
> : values=off
> numid=2,iface=MIXER,name='Digital Input Capture Route'
> ; type=ENUMERATED,access=rw------,values=1,items=3
> ; Item #0 'AES/EBU (XLR)'
> ; Item #1 'S/PDIF (RCA)'
> ; Item #2 'S/PDIF (TOS)'
> : values=2
> numid=6,iface=MIXER,name='RCA::RCA Output Playback Switch'
> ; type=BOOLEAN,access=rw------,values=1
> : values=on
> numid=5,iface=MIXER,name='XLR::XLR Output Playback Switch'
> ; type=BOOLEAN,access=rw------,values=1
> : values=on
>
> On 31.08.23 15:28, Takashi Sakamoto wrote:
> > Hi Michele,
> >
> > Thanks for your contribution of configuration ROM for Weiss models[1].
> > I'm sorry for my little reaction but currently I'm working for Debian ITP
> > to linux-firewire-utils package[2][3].
> >
> > As a quick glance, all of configuration ROMs except for Weiss MAN301
> > include single unit directory, while the exception includes two unit
> > directories; 1394TA AV/C protocol and TCAT protocol. It means that
> > the vendor-dependent AV/C command[4] is implemented in MAN301, but not
> > in the others. Then I would like to figure out whether it is correct or
> > not. If it is unique for MAN301, the implementation of control service
> > can be simpler to support the command just for MAN301.
> >
> > [1] https://github.com/takaswie/am-config-roms/pull/5
> > [2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050551
> > [3] https://mentors.debian.net/package/linux-firewire-utils/
> > [4] https://github.com/weiss-engineering/snd-dice/blob/avc/dice-avc.c
> >
> >
> > Regards
> >
> > Takashi Sakamoto
next prev parent reply other threads:[~2023-09-05 1:21 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-28 9:16 [PATCH] ALSA: dice: add stream format parameters for Weiss devices Michele Perrone
2023-07-28 13:13 ` Takashi Sakamoto
2023-07-31 8:09 ` Michele Perrone
2023-07-31 14:06 ` Takashi Sakamoto
2023-08-08 8:34 ` Michele Perrone
2023-08-08 15:25 ` Takashi Sakamoto
2023-08-16 13:05 ` ALSA: dice: improve support " Michele Perrone
2023-08-18 13:13 ` Takashi Sakamoto
2023-08-18 13:23 ` Michele Perrone
2023-08-22 13:58 ` Takashi Sakamoto
2023-08-31 13:28 ` Takashi Sakamoto
2023-09-04 16:00 ` Rolf Anderegg
2023-09-05 1:20 ` Takashi Sakamoto [this message]
2023-09-05 8:57 ` Rolf Anderegg
2023-09-05 23:54 ` INT203 and DAC1 (Re: [PATCH] ALSA: dice: add stream format parameters for Weiss devices) Takashi Sakamoto
2023-09-16 9:18 ` Michele Perrone
2023-09-17 2:55 ` Takashi Sakamoto
2023-09-18 13:19 ` MAN301 external clock issues " Michele Perrone
2023-09-19 14:09 ` Takashi Sakamoto
2024-01-21 14:07 ` MAN301 internal routing " Takashi Sakamoto
2024-01-21 14:30 ` Takashi Sakamoto
2024-02-15 12:04 ` Takashi Sakamoto
2024-02-26 16:06 ` Michele Perrone
2024-02-27 23:54 ` Takashi Sakamoto
2024-02-28 8:14 ` Rolf Anderegg
2024-02-28 8:32 ` Rolf Anderegg
2024-02-28 23:28 ` Takashi Sakamoto
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=20230905012028.GA262570@workstation.local \
--to=o-takashi@sakamocchi.jp \
--cc=alsa-devel@alsa-project.org \
--cc=michele.perrone@weiss.ch \
--cc=rolf.anderegg@weiss.ch \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.