Date: Mon, 9 May 2011 03:42:29 -0300 From: Marcel Bonnet <marcelbonnet@gmail.com> To: Hans Petter Selasky <hselasky@c2i.net> Cc: freebsd-multimedia@freebsd.org Subject: Re: uaudio, M-Audio FastTrack Pro device - sound distorted Message-ID: <BANLkTikszWeb_sBv%2B2h=_W7vibR%2BfCGqUA@mail.gmail.com> In-Reply-To: <201104270911.39988.hselasky@c2i.net> References: <BANLkTimAZtcpe2Ba5P0qsHKiH2-G691GCQ@mail.gmail.com> <201104260840.20985.hselasky@c2i.net> <BANLkTinyR=VzQeTtBDD9FSpb31TwviBKsg@mail.gmail.com> <201104270911.39988.hselasky@c2i.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 27 April 2011 04:11, Hans Petter Selasky <hselasky@c2i.net> wrote: > On Wednesday 27 April 2011 03:30:58 Marcel Bonnet wrote: > > On 26 April 2011 03:40, Hans Petter Selasky <hselasky@c2i.net> wrote: > > > On Monday 25 April 2011 23:04:38 Marcel Bonnet wrote: > > > > > or something? > > > > > > Then you also need to import the usb/quirk folder and related files and > > > possibly also usb/usbdevs > > > > Should I try import the files and try to make uaudio with that patch > after > > the trick with setting "sysctl hw.usb.uaudio.default_rate=44100" ? > > > > You could try to make a new quirk UQ_AU_44100KHZ_ONLY and send a patch for > that. > > --HPS > Hello. Sorry for the 12 days delay. And I hope I'm trying to improve the driver, instead of bother you with this problem (wich was solved with the sysctl trick, if you remember) Please look at these patchs. Am I on the right track? # usbconfig -d ugen0.3 dump_device_desc ugen0.3: <FastTrack Pro M-Audio> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0110 bDeviceClass = 0x0000 bDeviceSubClass = 0x0000 bDeviceProtocol = 0x0000 bMaxPacketSize0 = 0x0008 idVendor = 0x0763 idProduct = 0x2012 bcdDevice = 0x0100 iManufacturer = 0x0001 <M-Audio> iProduct = 0x0002 <FastTrack Pro> iSerialNumber = 0x0000 <no string> bNumConfigurations = 0x0002 I used that info for: Index: sys/dev/usb/quirk/usb_quirk.c =================================================================== --- sys/dev/usb/quirk/usb_quirk.c (revision 221419) +++ sys/dev/usb/quirk/usb_quirk.c (working copy) @@ -472,6 +472,9 @@ USB_QUIRK(ROLAND, SD20, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS), USB_QUIRK(ROLAND, SD80, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS), USB_QUIRK(ROLAND, UA700, 0x0000, 0xffff, UQ_AU_VENDOR_CLASS), + + /* Devices wich should work on 44100 Hz only */ + USB_QUIRK(MIDIMAN, FASTTRACKPRO, 0x0000, 0xffff, UQ_AU_44100HZ_ONLY), }; #undef USB_QUIRK_VP #undef USB_QUIRK @@ -483,6 +486,7 @@ [UQ_AU_INP_ASYNC] = "UQ_AU_INP_ASYNC", [UQ_AU_NO_FRAC] = "UQ_AU_NO_FRAC", [UQ_AU_NO_XU] = "UQ_AU_NO_XU", + [UQ_AU_44100HZ_ONLY] = "UQ_AU_44100HZ_ONLY", [UQ_BAD_ADC] = "UQ_BAD_ADC", [UQ_BAD_AUDIO] = "UQ_BAD_AUDIO", [UQ_BROKEN_BIDIR] = "UQ_BROKEN_BIDIR", Index: sys/dev/usb/quirk/usb_quirk.h =================================================================== --- sys/dev/usb/quirk/usb_quirk.h (revision 221419) +++ sys/dev/usb/quirk/usb_quirk.h (working copy) @@ -42,6 +42,7 @@ UQ_AU_INP_ASYNC, /* input is async despite claim of adaptive */ UQ_AU_NO_FRAC, /* don't adjust for fractional samples */ UQ_AU_NO_XU, /* audio device has broken extension unit */ + UQ_AU_44100HZ_ONLY, /* when the device works well with "sysctl hw.usb.uaudio.default_rate=44100" */ UQ_BAD_ADC, /* bad audio spec version number */ UQ_BAD_AUDIO, /* device claims audio class, but isn't */ UQ_BROKEN_BIDIR, /* printer has broken bidir mode */ Index: sys/dev/usb/usbdevs =================================================================== --- sys/dev/usb/usbdevs (revision 221419) +++ sys/dev/usb/usbdevs (working copy) @@ -2120,6 +2120,10 @@ /* Matrix Orbital products */ product MATRIXORBITAL MOUA 0x0153 Martrix Orbital MOU-Axxxx LCD displays +/* M-Audio products : same ID as MIDIMAN. the Manufacturer is M-Audio for both. */ +//product MAUDIO FASTTRACKPRO 0x2012 FastTrack Pro +product MIDIMAN FASTTRACKPRO 0x2012 M-Audio FastTrack Pro + /* MCT Corp. */ product MCT HUB0100 0x0100 Hub product MCT DU_H3SP_USB232 0x0200 D-Link DU-H3SP USB BAY Hub And with uaudio.c I was trying a test to find out if the quirk works, like: static int uaudio_attach(device_t dev) ... //TEST if (usb_test_quirk(uaa, UQ_AU_44100HZ_ONLY)) device_printf(dev, "44100 HZ ONLY"); else device_printf(dev, "NOT 44100 HZ ONLY"); ... The result was "NOT 44100 HZ ONLY" when I attached the usb device. Am I doing right? Or maybe I entered the wrong ids on usbdevs or the wrong range (0x0000, 0xffff) for usb_quirck.c ? I imagine that, if this test works, this one should be used at the part of the code when the driver decide to change or not to change the sample rate. Then finally send you all tested patches. Cheers. -- Marcel Bonnet
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTikszWeb_sBv%2B2h=_W7vibR%2BfCGqUA>