Linux bluetooth development
 help / color / mirror / Atom feed
From: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
To: linux-bluetooth@vger.kernel.org
Subject: [PATCH 0/5] [RFC] handling avdtp collisions
Date: Wed,  6 Apr 2011 14:00:32 +0300	[thread overview]
Message-ID: <1302087637-30131-1-git-send-email-luiz.dentz@gmail.com> (raw)

From: Luiz Augusto von Dentz <luiz.dentz-von@nokia.com>

This has been causing some problems with some devices, specially with
start and suspend commands which even when local endpoint handles it
nicelly (by accepting as a valid response) the remote stack may not
respond at all causing the resquest to timeout/abort.

The spec suggest the following about this:

"In case an INT receives a request for the same command that it is
expecting a response for, it may reject the command and may use a
random time offset for a retransmission to avoid deadlock."

But note that this is not possible for abort which cannot be rejected
and also may be too expensive in some cases e.g. switching a2dp to hfp
when a call is ringing.

So instead of doing this directly on avdtp levle as the spec suggest, I
suggest to let the local sep decide what to do with the command
indication and in case it accepts remove the pending request from the
queue so it doesn't timeout nor can be rejected.

Note that this doesn't change much the current implementation of local
sep, it was already accepting indication regardless of pending
requests, but with the proposed changes when a collision happen
callbacks are called and the indication is properly propagated to the
endpoints.

Luiz Augusto von Dentz (5):
  Add handling of avdtp command collision
  Fix handling of a2dp suspend indication
  Fix handling of a2dp open indication
  Fix handling of a2dp start indication
  Fix handling of a2dp abort indication

 audio/a2dp.c  |   62 ++++++++++++++++++++++++++++++++++++++++++---
 audio/avdtp.c |   78 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 2 files changed, 127 insertions(+), 13 deletions(-)


             reply	other threads:[~2011-04-06 11:00 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-06 11:00 Luiz Augusto von Dentz [this message]
2011-04-06 11:00 ` [PATCH 1/5] Add handling of avdtp command collision Luiz Augusto von Dentz
2011-04-06 11:00 ` [PATCH 2/5] Fix handling of a2dp suspend indication Luiz Augusto von Dentz
2011-04-06 11:00 ` [PATCH 3/5] Fix handling of a2dp open indication Luiz Augusto von Dentz
2011-04-06 11:00 ` [PATCH 4/5] Fix handling of a2dp start indication Luiz Augusto von Dentz
2011-04-06 11:00 ` [PATCH 5/5] Fix handling of a2dp abort indication Luiz Augusto von Dentz

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=1302087637-30131-1-git-send-email-luiz.dentz@gmail.com \
    --to=luiz.dentz@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    /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