Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Konstantinos Georgantas <k.georgantas@samsung.com>
To: alsa-devel@alsa-project.org
Subject: Audio usb switch to alternate setting 0
Date: Thu, 23 Jan 2014 20:31:04 +0100	[thread overview]
Message-ID: <52E16DF8.8000909@samsung.com> (raw)
In-Reply-To: <52DCF98A.4080509@zonque.org>

Hello!

On 01/20/2014 11:25 AM, Daniel Mack wrote:
> Hi,
>
> On 01/19/2014 02:50 PM, Konstantinos Georgantas wrote:
>> I am trying to control from the client side which Alternate Setting to
>> use. Basically I would like to be able to switch from Alternate Setting
>> 0 to 1 and vice versa so that I am not receiving any set interface
>> requests in the meantime. From the audio class 2.0 documentation I
>> understand that I should be able to do something like this by using the
>> active alternate setting control, and here comes my main problem.
> I'm not quite following from which side you're looking at the system,
> IOW, who should be "receiving" requests. Are you talking about the
> device or the host side?
As I see it generating an interrupt from the device to the host should 
"force" the host to "take appropriate action to reactivate the interface 
by switching to a valid Alternate Setting".
> As the spec says (5.2.6.1.1), such a control is read-only, and it "does
> not allow an interface to change from one active Alternate Setting to
> another without Host intervention". "The main purpose of this Control is
> to notify the Host (through an interrupt) that the last
> selected Alternate Setting is no longer valid.".
>
> Active alt setting switching is done implictly by (de)activating the PCM
> streams that are associated with them.
That is right! But what if someone tries to play music for example? The 
host will try to set Alternate Setting 1 again thinking that it is still 
active but in this case my device happens to be in sleep mode so it 
cannot reply to the usb_set_interface requests. I thought that if I 
indicated that only Alternate Setting 0 is active I would avoid this 
request. Am I right? Of course when waking up I could issue another 
interrupt indicating that my device activates again the Alternate 
Setting 1. Please correct me if I misunderstand something.
>> When I generate an interrupt to the interrupt endpoint I should expect a
>> GET request which I never see in the host side (hope I am right here).
>>
>> Here comes the interrupt:
>> interrupt->bInfo          = 0x00;
>> interrupt->bAttribute  = 0x01;
>> interrupt->wValue       = 0x0100;
>> interrupt->wIndex       = 0x0004;
>>
>> Could you please tell me if such a functionality is supported and how
>> the interrupt should look like?
> This type of interrupt is currently unsupported, but it should be easy
> to add. Note, however, that the only interesting use case is to tear the
> audio stream down and send active users XRUNs.
>
> Not sure if this is what you want.
>
> As always: patches are welcome :)
>
>
> Daniel
>
Absolutely! I can come up with a patch but I just want to be sure I have 
understood the spec in the right way :) Thanks for your help!

Kostas

  reply	other threads:[~2014-01-23 19:31 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-19 13:50 Audio usb switch to alternate setting 0 Konstantinos Georgantas
2014-01-20 10:25 ` Daniel Mack
2014-01-23 19:31   ` Konstantinos Georgantas [this message]
2014-01-24 23:21     ` Daniel Mack

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=52E16DF8.8000909@samsung.com \
    --to=k.georgantas@samsung.com \
    --cc=alsa-devel@alsa-project.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