On Wed, Sep 25, 2019 at 08:13:09PM +0100, cho...@jtan.com wrote:
> Alexandre Ratchov writes:
> > On Wed, Sep 25, 2019 at 05:15:22PM +0100, cho...@jtan.com wrote:
> > > I have a similar problem to Alexander Hof with a presonus audio usb
> > > device, where attaching it reports 'only one AC iface allowed' and the
> > > device remains (apparently totally) inaccessible.
> > > 
> > > dmes and lsusb included below.
> > > 
> >
> > According to dmesg, this is 6.5, which doesn't contain the fix for
> > this problem. Could you try the device on a -current system?
> 
> I did look through the post 6.5 changes in CVS but couldn't see anything
> relevent, possibly for reasons that will become clear.
> 

This is the commit:

----------------------------
revision 1.142
date: 2019/05/09 06:58:13;  author: ratchov;  state: Exp;  lines: +5 -8;  
commitid: 3l3sLX3Zz5BTanPk;
Skip empty control interfaces when parsing descriptors.

Even if having multiple control interface descriptors is not allowed
by the UAC spec, there's no reason to stop as long as a proper control
interface was processed.
----------------------------

But there are fixes for other problems, so I'd suggest using 6.6

> > Programmable clocks are OK, the comment states that we don't support
> > multiple clock sources simultaneously. When audio starts, all parts of
> > the device must be clocked by the same clock source.
> >
> > Pro audio interfaces use necessarily a single clock because otherwise
> > they wouldn't be unstable in DAWs and/or for real-time effects.
> >
> > FWIW, I've never seen -- or even heard of -- devices using multiple
> > clock sources simultaneously.
> 
> Good, because that was a complete red herring. The _other_ instance of
> '%s: only one AC iface allowed' is the one associated with the fault, in
> uaudio_process_conf().

It was removed and the code fixed. The problem was that certain
devices with MIDI ports (like yours) may expose two Audio Control (aka
AC) interfaces one for audio and one (empty) for MIDI; this is not
allowed by the standard. The new code accepts multiple AC interfaces,
it picks the right one and ignores the empty ones.

> Perhaps the error message at the end of
> uaudio_process_ac() could read '%s: only one distinct clock source
> allowed'?

Actually we support multiple clock sources, but distinct sources may
not clock distinct parts of the device.

The "domain" word is the one used in the UAC specification; maybe too
technical, but it's exact. Note that there are few other
developper-centric messages, mainly to help improving the driver in
case certain "rare" devices pop-up one day.

Reply via email to