From: Jose Vasconcellos <jose@vasmac.com>
To: BlueZ development <bluez-devel@lists.sourceforge.net>
Subject: Re: [Bluez-devel] [PATCH]Dynamic Alternate Setting patch (hci_usb.c)
Date: Tue, 24 Apr 2007 11:08:29 -0600 [thread overview]
Message-ID: <462E398D.1010909@vasmac.com> (raw)
In-Reply-To: <1177431197.18086.18.camel@localhost>
alok wrote:
> Jose,
>
> On Tue, 2007-04-24 at 09:27 -0600, Jose Vasconcellos wrote:
>
>> list subscribe wrote:
>>
>>> Jose,
>>>
>>> Hi Alok,
>>>
>>> This is a good start. There are a few other things to consider:
>>>
>>> * Are there error conditions in hci_usb_tx_complete that need to
>>> be handled?
>>>
>>>
>>> I am not sure what you mean. Since we don't flush submitted URBs,
>>> these URBs are handled like normal ones. If their status indicates
>>> error the error_tx count will be incremented. What error conditions
>>> are u pointing at?
>>>
>> The outstanding urbs are dequeued and put on a temporary list and
>> resubmitted
>> after changing the configuration. But there may be an active URB that is
>> being
>> transmitted that will be reported with an error status.
>> hci_usb_tx_complete will
>> release this urb so it can't be resubmitted. This may also result in a
>> small glitch
>> when switching to an alternate.
>>
>
> The submitted URBs are dequeued and put into a temporary list but are
> not resubmitted later . Rather after flushing the pending queue , the
> temporary list is appended to pending_queue.
> So after the setting is changed, we have some previous submitted URBs
> which are in the process of transmission followed by URBs which use the
> changed settings in the pending queue.
>
> If any urb reports an error, only the tx error count is incremented
> (hdev->stat.err_tx++).
> And all _urbs are unlinked (whether their urbs return error or not) and
> queued to the complete_q queue.
>
> I hope this answers your question.
>
My point is that it's possible that the active URBs that was cancelled
will end up in hci_usb_tx_complete with an error status. You must not
add this URB to the pending queue since the complete routine will
have released it.
>>> * How do you make sure data for different channels is interleaved?
>>>
>>>
>>> Well , since we know that there can be max 3 SCO channels , we can
>>> have 3 separate queues, and use a round robin method to send out the
>>> packets from the queues. i am not sure about this idea though. What
>>> do u think?
>>>
>> I think this is the right approach; I found that it's very important to
>> do the
>> interleaving properly. There is an issue if one of the queues is empty
>> (i.e. buffer underrun). What to do in that case? Send silence?
>>
> If u hit a underrun on one queue, u ignore that sco channel.What
> difference is it going to make if we sent silence packets on that
> channel?
> I am not sure about this. I have no expertise in audio. if someone can
> justify this solution i can implement it.
>
Since we're dealing with voice samples you may get some glitches.
Maybe this is not a big deal.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel
next prev parent reply other threads:[~2007-04-24 17:08 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-24 11:13 [Bluez-devel] [PATCH]Dynamic Alternate Setting patch (hci_usb.c) list subscribe
2007-04-24 13:15 ` Jose Vasconcellos
2007-04-24 15:08 ` list subscribe
2007-04-24 15:27 ` Jose Vasconcellos
2007-04-24 16:06 ` Marcel Holtmann
2007-04-24 16:13 ` alok
2007-04-24 17:08 ` Jose Vasconcellos [this message]
2007-04-24 18:38 ` Marcel Holtmann
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=462E398D.1010909@vasmac.com \
--to=jose@vasmac.com \
--cc=bluez-devel@lists.sourceforge.net \
/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