Re: [PATCH 1/2] ALSA: usb-audio: Add quirk for RME Digiface USB

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]




On 9/2/24 3:10 PM, Takashi Iwai wrote:
> On Sun, 01 Sep 2024 23:31:50 +0200,
> Asahi Lina wrote:
>>
>> From: Cyan Nyan <cyan.vtb@xxxxxxxxx>
>>
>> Add trivial support for audio streaming on the RME Digiface USB. Binds
>> only to the first interface to allow userspace to directly drive the
>> complex I/O and matrix mixer controls.
>>
>> Signed-off-by: Cyan Nyan <cyan.vtb@xxxxxxxxx>
>> [Lina: Added 2x/4x sample rate support & boot/format quirks]
>> Co-developed-by: Asahi Lina <lina@xxxxxxxxxxxxx>
>> Signed-off-by: Asahi Lina <lina@xxxxxxxxxxxxx>
>> ---
>>  sound/usb/quirks-table.h | 190 ++++++++++++++++++++++++++++++++++++++++++++++-
>>  sound/usb/quirks.c       |  58 +++++++++++++++
>>  2 files changed, 247 insertions(+), 1 deletion(-)
>>
>> diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
>> index 73abc38a5400..47fd18791396 100644
>> --- a/sound/usb/quirks-table.h
>> +++ b/sound/usb/quirks-table.h
>> @@ -4546,6 +4546,194 @@ YAMAHA_DEVICE(0x7010, "UB99"),
>>  		}
>>  	}
>>  },
>> -
>> +{
>> +	/* Only claim interface 0 */
>> +	.match_flags = USB_DEVICE_ID_MATCH_VENDOR |
>> +		       USB_DEVICE_ID_MATCH_PRODUCT |
>> +		       USB_DEVICE_ID_MATCH_INT_CLASS |
>> +		       USB_DEVICE_ID_MATCH_INT_NUMBER,
>> +	.idVendor = 0x2a39,
>> +	.idProduct = 0x3f8c,
>> +	.bInterfaceClass = USB_CLASS_VENDOR_SPEC,
>> +	.bInterfaceNumber = 0,
>> +	.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
>> +		.ifnum = QUIRK_ANY_INTERFACE,
>> +		.type = QUIRK_COMPOSITE,
> (snip)
> 
> Recently the quirk tables are rewritten with macros.
> See the commit d79e13f8e8abb5cd3a2a0f9fc9bc3fc750c5b06f
>     ALSA: usb-audio: Replace complex quirk lines with macros
> in for-next branch of sound.git tree.
> 
> Could you try to apply to your new entries, too?

Sure! Note that I open-coded the USB match because I need to add
USB_DEVICE_ID_MATCH_INT_NUMBER (to stop the driver from binding to and
claiming all interfaces, QUIRK_DATA_IGNORE() is not enough for that).
Should I leave it like that (since it's the only case so far) or do you
want me to introduce another macro for that case?

I'll rewrite the quirk info stuff with the macros for v2. I'll also
remove USB_ENDPOINT_USAGE_IMPLICIT_FB since I'm pretty sure that does
nothing here (at first I thought I could get it to pick up the implicit
FB with that but I ended up having to specify the sync/implicit_fb stuff
explicitly).

~~ Lina




[Index of Archives]     [Pulseaudio]     [Linux Audio Users]     [ALSA Devel]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux