On Wed, Jan 03, 2024 at 03:54:29PM +0000, Mark Hills wrote:
The ScratchAmp worked perfectly with a quirk, but now that seems to have regressed and the device is no longer detected [1].
It's design is from 2002, based on class-compliant (Philips UDA1325H) chips. It hides itself behind a 'vendor specific' description, presumably as it was launched in a closed system with specific hardware and software for DJ'ing.
Hi Mark, great fan of your work with xwax here.
Perhaps adding USB_DEVICE_VENDOR_SPEC(0x103d, 0x0100) and USB_DEVICE_VENDOR_SPEC(0x103d, 0x0101) to quirks-table.h can do the trick?
Regards, Geraldo Nascimento
So this quirk was introduced in 2007:
+/* Stanton/N2IT Final Scratch v1 device ('Scratchamp') */ +{
- USB_DEVICE(0x103d, 0x0100),
.driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
.vendor_name = "Stanton",
.product_name = "ScratchAmp",
.ifnum = QUIRK_NO_INTERFACE
- }
+}, +{
- USB_DEVICE(0x103d, 0x0101),
.driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
.vendor_name = "Stanton",
.product_name = "ScratchAmp",
.ifnum = QUIRK_NO_INTERFACE
- }
+},
In a modern kernel, the (ineffective) quirk is now in sound/usb/card.c:
- /* Stanton/N2IT Final Scratch v1 device ('Scratchamp') */
- DEVICE_NAME(0x103d, 0x0100, "Stanton", "ScratchAmp"),
- DEVICE_NAME(0x103d, 0x0101, "Stanton", "ScratchAmp"),
Is there a functional difference between these quirks and/or any reason the device would no longer be detected?
I noted the commits went via use of QUIRK_RENAME_DEVICE(), perhaps misleading the refactoring to assume the quirk was purely a rename.
Below is an "lsusb" of the device, dated from 2008; I don't currently have access to my own device, or know exactly when this regressed.
Many thanks
[1] https://sourceforge.net/p/xwax/mailman/message/48496984/ [2] http://www.pogo.org.uk/~mark/linuxdj/scratchamp.html [3] https://finalscratch.sourceforge.net/innards/
-- Mark