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