ALSA: usb-audio: Add basic capture support for Pioneer DJ DJM-250MK2
This patch extends support for DJM-250MK2 and allows recording. However, DVS is not possible yet (see the comment in code). Signed-off-by: František Kučera <franta-linux@frantovo.cz> Cc: <stable@vger.kernel.org> Link: https://lore.kernel.org/r/20200825153113.6352-1-konference@frantovo.cz Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
7c5b892e08
commit
14335d8b9e
|
@ -375,6 +375,7 @@ static int set_sync_ep_implicit_fb_quirk(struct snd_usb_substream *subs,
|
|||
ifnum = 2;
|
||||
goto add_sync_ep_from_ifnum;
|
||||
case USB_ID(0x2b73, 0x000a): /* Pioneer DJ DJM-900NXS2 */
|
||||
case USB_ID(0x2b73, 0x0017): /* Pioneer DJ DJM-250MK2 */
|
||||
ep = 0x82;
|
||||
ifnum = 0;
|
||||
goto add_sync_ep_from_ifnum;
|
||||
|
|
|
@ -3559,14 +3559,40 @@ AU0828_DEVICE(0x2040, 0x7270, "Hauppauge", "HVR-950Q"),
|
|||
{
|
||||
/*
|
||||
* Pioneer DJ DJM-250MK2
|
||||
* PCM is 8 channels out @ 48 fixed (endpoints 0x01).
|
||||
* The output from computer to the mixer is usable.
|
||||
* PCM is 8 channels out @ 48 fixed (endpoint 0x01)
|
||||
* and 8 channels in @ 48 fixed (endpoint 0x82).
|
||||
*
|
||||
* The input (phono or line to computer) is not working.
|
||||
* It should be at endpoint 0x82 and probably also 8 channels,
|
||||
* but it seems that it works only with Pioneer proprietary software.
|
||||
* Even on officially supported OS, the Audacity was unable to record
|
||||
* and Mixxx to recognize the control vinyls.
|
||||
* Both playback and recording is working, even simultaneously.
|
||||
*
|
||||
* Playback channels could be mapped to:
|
||||
* - CH1
|
||||
* - CH2
|
||||
* - AUX
|
||||
*
|
||||
* Recording channels could be mapped to:
|
||||
* - Post CH1 Fader
|
||||
* - Post CH2 Fader
|
||||
* - Cross Fader A
|
||||
* - Cross Fader B
|
||||
* - MIC
|
||||
* - AUX
|
||||
* - REC OUT
|
||||
*
|
||||
* There is remaining problem with recording directly from PHONO/LINE.
|
||||
* If we map a channel to:
|
||||
* - CH1 Control Tone PHONO
|
||||
* - CH1 Control Tone LINE
|
||||
* - CH2 Control Tone PHONO
|
||||
* - CH2 Control Tone LINE
|
||||
* it is silent.
|
||||
* There is no signal even on other operating systems with official drivers.
|
||||
* The signal appears only when a supported application is started.
|
||||
* This needs to be investigated yet...
|
||||
* (there is quite a lot communication on the USB in both directions)
|
||||
*
|
||||
* In current version this mixer could be used for playback
|
||||
* and for recording from vinyls (through Post CH* Fader)
|
||||
* but not for DVS (Digital Vinyl Systems) like in Mixxx.
|
||||
*/
|
||||
USB_DEVICE_VENDOR_SPEC(0x2b73, 0x0017),
|
||||
.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
|
||||
|
@ -3590,6 +3616,26 @@ AU0828_DEVICE(0x2040, 0x7270, "Hauppauge", "HVR-950Q"),
|
|||
.rate_max = 48000,
|
||||
.nr_rates = 1,
|
||||
.rate_table = (unsigned int[]) { 48000 }
|
||||
}
|
||||
},
|
||||
{
|
||||
.ifnum = 0,
|
||||
.type = QUIRK_AUDIO_FIXED_ENDPOINT,
|
||||
.data = &(const struct audioformat) {
|
||||
.formats = SNDRV_PCM_FMTBIT_S24_3LE,
|
||||
.channels = 8, // inputs
|
||||
.iface = 0,
|
||||
.altsetting = 1,
|
||||
.altset_idx = 1,
|
||||
.endpoint = 0x82,
|
||||
.ep_attr = USB_ENDPOINT_XFER_ISOC|
|
||||
USB_ENDPOINT_SYNC_ASYNC|
|
||||
USB_ENDPOINT_USAGE_IMPLICIT_FB,
|
||||
.rates = SNDRV_PCM_RATE_48000,
|
||||
.rate_min = 48000,
|
||||
.rate_max = 48000,
|
||||
.nr_rates = 1,
|
||||
.rate_table = (unsigned int[]) { 48000 }
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
@ -1503,6 +1503,7 @@ void snd_usb_set_format_quirk(struct snd_usb_substream *subs,
|
|||
set_format_emu_quirk(subs, fmt);
|
||||
break;
|
||||
case USB_ID(0x2b73, 0x000a): /* Pioneer DJ DJM-900NXS2 */
|
||||
case USB_ID(0x2b73, 0x0017): /* Pioneer DJ DJM-250MK2 */
|
||||
pioneer_djm_set_format_quirk(subs);
|
||||
break;
|
||||
case USB_ID(0x534d, 0x2109): /* MacroSilicon MS2109 */
|
||||
|
|
Loading…
Reference in New Issue