alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Steve Morris <morris@buinea.com>
Cc: alsa-devel@alsa-project.org, clemens@ladisch.de
Subject: Re: [alsa-devel] [PATCH 1/3] ALSA: bebob: expand sleep just after breaking connections for protocol version 1
Date: Fri, 27 Mar 2020 09:40:34 +0100	[thread overview]
Message-ID: <s5h7dz6fawt.wl-tiwai@suse.de> (raw)
In-Reply-To: <20200326214722.7xg2ffrzqrzq7edg@buinea.com>

On Thu, 26 Mar 2020 22:47:22 +0100,
Steve Morris wrote:
> 
> On Fri, Nov 01, 2019 at 10:13:21PM +0900, Takashi Sakamoto wrote:
> > As long as I investigated, some devices with BeBoB protocol version 1
> > can be freezed during several hundreds milliseconds after breaking
> > connections. When accessing during the freezed time, any transaction
> > is corrupted. In the worst case, the device is going to reboot.
> > 
> > I can see this issue in:
> >  * Roland FA-66
> >  * M-Audio FireWire Solo
> > 
> > This commit expands sleep just after breaking connections to avoid
> > the freezed time as much as possible. I note that the freeze/reboot
> > behaviour is similar to below models:
> >  * Focusrite Saffire Pro 10 I/O
> >  * Focusrite Saffire Pro 26 I/O
> > 
> > The above models certainly reboot after breaking connections.
> > 
> > Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
> > ---
> >  sound/firewire/bebob/bebob_stream.c | 11 ++++++-----
> >  1 file changed, 6 insertions(+), 5 deletions(-)
> > 
> > diff --git a/sound/firewire/bebob/bebob_stream.c b/sound/firewire/bebob/bebob_stream.c
> > index f7f0db5aa811..1b264d0d63eb 100644
> > --- a/sound/firewire/bebob/bebob_stream.c
> > +++ b/sound/firewire/bebob/bebob_stream.c
> > @@ -415,15 +415,16 @@ static int make_both_connections(struct snd_bebob *bebob)
> >  	return 0;
> >  }
> >  
> > -static void
> > -break_both_connections(struct snd_bebob *bebob)
> > +static void break_both_connections(struct snd_bebob *bebob)
> >  {
> >  	cmp_connection_break(&bebob->in_conn);
> >  	cmp_connection_break(&bebob->out_conn);
> >  
> > -	/* These models seems to be in transition state for a longer time. */
> > -	if (bebob->maudio_special_quirk != NULL)
> > -		msleep(200);
> > +	// These models seem to be in transition state for a longer time. When
> > +	// accessing in the state, any transactions is corrupted. In the worst
> > +	// case, the device is going to reboot.
> > +	if (bebob->version < 2)
> > +		msleep(600);
> >  }
> >  
> >  static int
> > -- 
> > 2.20.1
> > 
> > _______________________________________________
> > Alsa-devel mailing list
> > Alsa-devel@alsa-project.org
> > https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 
> This patch causes a reboot when I power on my Edirol FA-101. This is
> consistent behavior with kernels 5.5.1 - 5.5.11.
> 
> I've changed msleep(600) back to msleep(200) and rebuilt the module and
> I am once again able to power on and use the interface.
> 
> I am running Arch linux with 5.5.11-arch1-1 #1 SMP PREEMPT Sun, 22 Mar 2020 16:33:15 +0000 x86_64 GNU/Linux.
> 
> 
> I had previously posted to the list on Feb 19, 2020 with the subject:
> 
> sytem reboots when initializing Edirol FA-101 firewire audio interface
> 
> Please forgive any lapses in reporting protocol as I generally don't
> work at the kernel level. Hopefully this more specific report will help
> fix the issue.

This is weird.  If just changing the msleep value from 600 to 200
"fixes" the problem, it means that something is already fundamentally
broken...


Takashi

  reply	other threads:[~2020-03-27  8:41 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-01 13:13 [alsa-devel] [PATCH 0/3] ALSA: bebob: misc improvements for starting/stopping packet streaming Takashi Sakamoto
2019-11-01 13:13 ` [alsa-devel] [PATCH 1/3] ALSA: bebob: expand sleep just after breaking connections for protocol version 1 Takashi Sakamoto
2020-03-26 21:47   ` Steve Morris
2020-03-27  8:40     ` Takashi Iwai [this message]
2020-03-27 19:13       ` Steve Morris
2019-11-01 13:13 ` [alsa-devel] [PATCH 2/3] ALSA: bebob: expand delay of start for IR context just for version 3 firmware Takashi Sakamoto
2019-11-01 13:13 ` [alsa-devel] [PATCH 3/3] ALSA: bebob: link the order of establishing connections and Syt-match clock mode Takashi Sakamoto
2019-11-02  7:51 ` [alsa-devel] [PATCH 0/3] ALSA: bebob: misc improvements for starting/stopping packet streaming 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=s5h7dz6fawt.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=clemens@ladisch.de \
    --cc=morris@buinea.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).