All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Clemens Ladisch <clemens@ladisch.de>
Cc: Fedor Pikus <fedor_pikus@mentorg.com>,
	alsa-devel <alsa-devel@lists.sourceforge.net>
Subject: Re: USB Audio/Midiman - partial success
Date: Mon, 09 Sep 2002 20:30:47 +0200	[thread overview]
Message-ID: <s5hn0qryq08.wl@alsa2.suse.de> (raw)
In-Reply-To: <3D7CDE6D.85602095@ladisch.de>

At Mon, 09 Sep 2002 19:46:21 +0200,
Clemens Ladisch wrote:
> 
> Fedor G. Pikus wrote:
> > > > Why doesn't 48KHz work, and where are higher rates, where is 24bit
> > > > recording?
> > >
> > > These features should be available if the device has correct descriptors.
> > > Please post the output of lsusb.
> > 
> > Wow, that's a long output. Here is is:
> > ...
> 
> Let's make a nice table from this:
> 
> intf alt endpt  rate  bits
> 0    0   (control, pcm0)
> 1    0
> 1    3   out 3  8-48  24
> 1    4   out 3  8-44  16
> 2    0
> 2    3   in 5   8-48  24
> 2    4   in 5   8-44  16
> 3    0   (control, pcm1)
> 4    0
> 4    1   out 3  88-96 24
> 4    2   out 3  88-96 16
> 4    3   out 3  8-48  24
> 4    4   out 3  8-48  16
> 5    0
> 5    1   in 5   88-96 24
> 5    2   in 5   88-96 16
> 5    3   in 5   8-48  24
> 5    4   in 5   8-48  16
 
ah, that's really better to understand :)
is there any good text-format tool for usb descriptors except for
humanbeing?

> The good news is that 24 bits (S24_3LE) should work fine (up to 48 kHz).
> 
> The bad news is that this device appears to be broken by design.
> 
> There are two PCM devices, but both use the same endpoints.
> Consequently, when the driver wants to record from pcm1, it reads
> from endpoint 5, but the USB driver then searches for descriptors for
> EP 5 and finds those from pcm0 which do not have information about
> 88.2/96 kHz or 48 kHz at 16 bits.
 
usb-audio driver assigns the pcm stream per interface and holds the
format table for each stream statically, so theoretically, the driver
will be able to find the configuration.  but this doesn't help anyway
as you pointed if both use the same endpoint...

> It may be possible to fake better descriptors by adding a quirk and
> some code to the snd-usb-audio driver. I'm not sure whether the host
> controller driver had to be aware of the fake, too -- currently, the
> alternate settings 1 and 2 wouldn't be found, and wMaxPacketSize
> would be too small for 96 kHz.

it seems fine: 576 = 96 * 6 and 384 = 96 * 4 ?
 
> The two PCM devices cannot be used at the same time anyway, so I think
> creating a quirk for interface 0 which says "ignore this" could work.
> Takashi, any comments?

i think implementing a semaphore (or flag) for each endpoint would be
better, so that the driver can find generally double-endpoints
problem.


ciao,

Takashi


-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390

  reply	other threads:[~2002-09-09 18:30 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Pine.LNX.4.31.0209090841350.25400-100000@lorien.wv.mentorg.com>
2002-09-09 17:46 ` USB Audio/Midiman - partial success Clemens Ladisch
2002-09-09 18:30   ` Takashi Iwai [this message]
2002-09-10  8:58     ` Clemens Ladisch
2002-09-10 13:10       ` Takashi Iwai
2002-09-10 13:41         ` Patrick Shirkey
2002-09-12 15:30       ` Takashi Iwai
2002-09-12 22:34         ` Patrick Shirkey
2002-09-13  5:59         ` Patrick Shirkey
2002-09-13 11:30           ` Takashi Iwai
2002-09-13 14:30             ` Patrick Shirkey
     [not found]         ` <Pine.LNX.4.31.0209122304430.1450-100000@lorien.wv.mentorg.com>
2002-09-13 11:33           ` Takashi Iwai
     [not found] <Pine.LNX.4.31.0209132140320.13642-200000@lorien.wv.mentorg.com>
2002-09-16  7:05 ` Clemens Ladisch
     [not found] <Pine.LNX.4.31.0209160838270.10583-100000@lorien.wv.mentorg.com>
2002-09-17  7:29 ` Clemens Ladisch
     [not found] <Pine.LNX.4.31.0209172023540.4425-100000@lorien.wv.mentorg.com>
2002-09-18  9:25 ` Clemens Ladisch
     [not found] <Pine.LNX.4.31.0209191923430.30429-100000@lorien.wv.mentorg.com>
2002-09-20 10:04 ` Clemens Ladisch
     [not found] <Pine.LNX.4.31.0209220035210.4610-100000@lorien.wv.mentorg.com>
2002-09-23  9:12 ` Clemens Ladisch
     [not found]   ` <Pine.LNX.4.31.0209232104140.18815-100000@lorien.wv.mentorg.com>
2002-09-24 14:27     ` Takashi Iwai
     [not found]       ` <Pine.LNX.4.31.0209240835370.9799-100000@lorien.wv.mentorg.com>
2002-09-24 15:50         ` Takashi Iwai
     [not found]           ` <Pine.LNX.4.31.0209241952400.28299-100000@lorien.wv.mentorg.com>
2002-09-25 10:46             ` Takashi Iwai
     [not found] <Pine.LNX.4.31.0209252301320.29794-100000@lorien.wv.mentorg.com>
2002-09-26  7:47 ` Clemens Ladisch
2002-09-26 16:08   ` Takashi Iwai
     [not found]     ` <Pine.LNX.4.31.0209261234130.17593-100000@lorien.wv.mentorg.com>
2002-10-02 13:46       ` Takashi Iwai
     [not found]         ` <Pine.LNX.4.31.0210032253120.4068-100000@lorien.wv.mentorg.com>
2002-10-04 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=s5hn0qryq08.wl@alsa2.suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@lists.sourceforge.net \
    --cc=clemens@ladisch.de \
    --cc=fedor_pikus@mentorg.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.