Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp63991ybp; Thu, 3 Oct 2019 10:13:10 -0700 (PDT) X-Google-Smtp-Source: APXvYqzGTDasMs/K4aYgcNJmiuzl2LO4c9OrstvknZvOL8ZUOx4yt/4NPEzSSBRvreMXZ8924h4D X-Received: by 2002:a17:906:b283:: with SMTP id q3mr8809218ejz.7.1570122790196; Thu, 03 Oct 2019 10:13:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570122790; cv=none; d=google.com; s=arc-20160816; b=neIvzPI+AtZAr5s4ampunk2RzvQbMchZsG0971yhaUdFNmMO/c9R8pMipqyfQBsXmd Hphx4os+9LyX3YJz2eYWEuMujk7+nYfUfZcBcyYq2xaimDo3i10u0GYfypKjUvmDsKl2 4ciiRzEX43bthCUVFut5mnLzFeRQaEFbWfYhge+uh45yXq5aeA+Kip7p/81eXpLy3ncR Lquxcr/SmgNo5amOum95mmODVOslrF3u7Vf7UvymOclOSDvBNu9GyAAlUOIGGy4DP5Dt 2zmZVMmoH7bxUIV7UEKkbjiFZ7CT3zefiUBAquhxrc6fWVfyJqBLuWeMA1aJwUrwwc/b xPRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=iaLLlb74badUiH/aYunCo3u2moINDn1EciHUAi4V10A=; b=ITvnLycxItAKBdD4LRu1Pg8mSzN1IIbndP/MmG1MFRT9O/DQAFozkYJw3txqPAvFtJ Ww9N9kW4H/ptY617DTMjpLbR4di08hwG6H/Ion2hTasysowuu1+/ekI8624w3GsaYzXn O74zzRYFC+dbVXIciiTb3AghWyG00/0JkDjynxg0JoZL/odGfnh5EV9yXIDcYDuCS546 aJuC9W0b6uvu3S0nSC8D2wvweSkLw4n5Vw4EE3bTpQ+f19wR9d51rD059Gf7oJZKlFNv ClcGaT/PWsHMT27levG5wSgvXWNQa9LwOaNxOLcHCbqEi8EzQ+kGm8WLJDG39kRUJog/ Wmew== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="LsR/IUhT"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a7si1617144ejy.131.2019.10.03.10.12.45; Thu, 03 Oct 2019 10:13:10 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="LsR/IUhT"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391539AbfJCQcc (ORCPT + 99 others); Thu, 3 Oct 2019 12:32:32 -0400 Received: from mail.kernel.org ([198.145.29.99]:40074 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391930AbfJCQca (ORCPT ); Thu, 3 Oct 2019 12:32:30 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id B3B9F215EA; Thu, 3 Oct 2019 16:32:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570120349; bh=XhKIrUahQlqk4SXDAope8+7LBJRm3FUya3fBd/Mo1FA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LsR/IUhTfpJ/E58ECpIjgHDyFXY5qXvsHTq2CroXrYJUVr0/76jyXCyvEmkY9t7fe omvT8xC6fs4Ei/EpGrKs8OtmXM+Lg0wElie5IQdCWES4S5IHyxbt7StahB2Kp6AecN A+Z/AK3JAPujthpvhDXic9eM9f8KFKcgkFSexJFw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Takashi Sakamoto , Takashi Iwai , Sasha Levin Subject: [PATCH 5.2 162/313] ALSA: firewire-motu: add support for MOTU 4pre Date: Thu, 3 Oct 2019 17:52:20 +0200 Message-Id: <20191003154548.898994506@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191003154533.590915454@linuxfoundation.org> References: <20191003154533.590915454@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Takashi Sakamoto [ Upstream commit 6af86bdb8ad41f4cf1292d3b10857dc322758328 ] MOTU 4pre was launched in 2012 by MOTU, Inc. This commit allows userspace applications can transmit and receive PCM frames and MIDI messages for this model via ALSA PCM interface and RawMidi/Sequencer interfaces. The device supports MOTU protocol version 3. Unlike the other devices, the device is simply designed. The size of data block is fixed to 10 quadlets during available sampling rates (44.1 - 96.0 kHz). Each data block includes 1 source packet header, 2 data chunks for messages, 8 data chunks for PCM samples and 2 data chunks for padding to quadlet alignment. The device has no MIDI, optical, BNC and AES/EBU interfaces. Like support for the other MOTU devices, the quality of playback sound is not enough good with periodical noise yet. $ python2 crpp < ~/git/am-config-rom/motu/motu-4pre.img ROM header and bus information block ----------------------------------------------------------------- 400 041078cc bus_info_length 4, crc_length 16, crc 30924 404 31333934 bus_name "1394" 408 20ff7000 irmc 0, cmc 0, isc 1, bmc 0, cyc_clk_acc 255, max_rec 7 (256) 40c 0001f200 company_id 0001f2 | 410 000a41c5 device_id 00000a41c5 | EUI-64 0001f200000a41c5 root directory ----------------------------------------------------------------- 414 0004ef04 directory_length 4, crc 61188 418 030001f2 vendor 41c 0c0083c0 node capabilities per IEEE 1394 420 d1000002 --> unit directory at 428 424 8d000005 --> eui-64 leaf at 438 unit directory at 428 ----------------------------------------------------------------- 428 0003ceda directory_length 3, crc 52954 42c 120001f2 specifier id 430 13000045 version 434 17103800 model eui-64 leaf at 438 ----------------------------------------------------------------- 438 0002d248 leaf_length 2, crc 53832 43c 0001f200 company_id 0001f2 | 440 000a41c5 device_id 00000a41c5 | EUI-64 0001f200000a41c5 Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai Signed-off-by: Sasha Levin --- sound/firewire/motu/motu.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sound/firewire/motu/motu.c b/sound/firewire/motu/motu.c index 03cda2166ea3d..72908b4de77c0 100644 --- a/sound/firewire/motu/motu.c +++ b/sound/firewire/motu/motu.c @@ -247,6 +247,17 @@ static const struct snd_motu_spec motu_audio_express = { .analog_out_ports = 4, }; +static const struct snd_motu_spec motu_4pre = { + .name = "4pre", + .protocol = &snd_motu_protocol_v3, + .flags = SND_MOTU_SPEC_SUPPORT_CLOCK_X2 | + SND_MOTU_SPEC_TX_MICINST_CHUNK | + SND_MOTU_SPEC_TX_RETURN_CHUNK | + SND_MOTU_SPEC_RX_SEPARETED_MAIN, + .analog_in_ports = 2, + .analog_out_ports = 2, +}; + #define SND_MOTU_DEV_ENTRY(model, data) \ { \ .match_flags = IEEE1394_MATCH_VENDOR_ID | \ @@ -265,6 +276,7 @@ static const struct ieee1394_device_id motu_id_table[] = { SND_MOTU_DEV_ENTRY(0x000015, &motu_828mk3), /* FireWire only. */ SND_MOTU_DEV_ENTRY(0x000035, &motu_828mk3), /* Hybrid. */ SND_MOTU_DEV_ENTRY(0x000033, &motu_audio_express), + SND_MOTU_DEV_ENTRY(0x000045, &motu_4pre), { } }; MODULE_DEVICE_TABLE(ieee1394, motu_id_table); -- 2.20.1