From: Chris J Arges <chris.j.arges@canonical.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: Adam Goode <adam@spicenitz.org>,
alsa-devel@alsa-project.org, Robin Gareus <robin@gareus.org>
Subject: Re: Scarlett 18i8 hardware out of sync with AlsaMixer
Date: Wed, 27 May 2015 08:53:26 -0500 [thread overview]
Message-ID: <20150527135325.GA12862@canonical.com> (raw)
In-Reply-To: <s5hzj4q9mri.wl-tiwai@suse.de>
On Wed, May 27, 2015 at 03:24:17PM +0200, Takashi Iwai wrote:
> [Added more people to Cc]
>
> At Wed, 27 May 2015 08:55:21 -0400,
> Adam Goode wrote:
> >
> > The settings were not reset across a mem sleep (echo mem > /sys/power/state).
> >
> > Hard power off / power on does make the settings get out of sync.
>
Ok did some testing on my Scarlett 18i8:
suspend/resume -> settings not reset
poweroff/poweron -> settings not reset
unplug/replug usb -> settings not reset
powercycle unit -> settings not reset
Is there a more consistent method to trigger this issue?
In addition are you manually triggering 'alsactl restore/save' in this process?
I'll do some additional testing to see if I can trigger this.
> Then maybe the problem is that the device keeps the old setting while
> the driver resets to the default. I vaguely remember that scarlett
> could save the default state in a persistent area, and the original
> driver patch had a kctl to trigger it. We didn't take it because it
> might be dangerous.
>
>
The original issue was this:
Hey, as Tobias mentioned this is a HW saving (to the mixer's NVRAM)
function used for using the mixer disconnected from a computer. We
wouldn't want to continually write the NVRAM on every control update as
I'm unsure of how many write-cycles the device is capable of.
So if we wrote to NVRAM on each control update we might wear out the memory
very quickly. I think this functionality is more for using the device
disconnected from a computer.
> Takashi
>
>
> > Adam
> >
> >
> > On Wed, May 27, 2015 at 2:43 AM, Takashi Iwai <tiwai@suse.de> wrote:
> > > At Tue, 26 May 2015 21:39:22 -0400,
> > > Adam Goode wrote:
> > >>
> > >> Linux 4.0.2-300.fc22.x86_64
> > >>
> > >> Hi,
> > >>
> > >> I have the Scarlett 18i8 USB device that is supported by the new
> > >> scarlett_mixer.c code. I am happy to say that the mixer code works in
> > >> most cases. But under some conditions, I cannot get any sound out of
> > >> the device until I go and toggle the "Matrix 01 Input" and "Matrix 02
> > >> Input" enums up and then down (from PCM 1 and PCM 2). This appears to
> > >> me to be some kind of cache invalidation bug, where the device is out
> > >> of sync with kernel mixer state.
> > >>
> > >> I will take a look at the code myself at some point, but not for a
> > >> while. But I am happy to try patches if anyone comes up with anything
> > >> in the mean time.
> > >
Does this change anything (untested)? And are non-enum settings affected?
diff --git a/sound/usb/mixer_scarlett.c b/sound/usb/mixer_scarlett.c
index 7438e7c..ad4a452 100644
--- a/sound/usb/mixer_scarlett.c
+++ b/sound/usb/mixer_scarlett.c
@@ -438,11 +438,9 @@ static int scarlett_ctl_enum_put(struct snd_kcontrol *kctl,
val = ucontrol->value.integer.value[0];
val = val + opt->start;
- if (val != oval) {
- snd_usb_set_cur_mix_value(elem, 0, 0, val);
- return 1;
- }
- return 0;
+ /* always set cur mix value */
+ snd_usb_set_cur_mix_value(elem, 0, 0, val);
+ return 1;
}
static int scarlett_ctl_enum_resume(struct usb_mixer_elem_list *list)
--chris
> > > Does it happen after some S3/S4 or even during a normal operation
> > > without power-saving? The USB-audio device supports autopm, so this
> > > needs to be checked, too.
> > >
> > >
> > > Takashi
> >
>
next prev parent reply other threads:[~2015-05-27 13:53 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-27 1:39 Scarlett 18i8 hardware out of sync with AlsaMixer Adam Goode
2015-05-27 6:43 ` Takashi Iwai
2015-05-27 12:55 ` Adam Goode
2015-05-27 13:24 ` Takashi Iwai
2015-05-27 13:37 ` Adam Goode
2015-05-27 13:53 ` Chris J Arges [this message]
2015-06-09 21:44 ` Adam Goode
2015-06-10 4:24 ` Adam Goode
2015-06-13 23:03 ` Robin Gareus
2015-06-19 11:34 ` Takashi Iwai
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=20150527135325.GA12862@canonical.com \
--to=chris.j.arges@canonical.com \
--cc=adam@spicenitz.org \
--cc=alsa-devel@alsa-project.org \
--cc=robin@gareus.org \
--cc=tiwai@suse.de \
/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