Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp72691ybp; Thu, 3 Oct 2019 10:20:06 -0700 (PDT) X-Google-Smtp-Source: APXvYqyYE4axyF8xK/E2v5EMmqexSdCvZjT97Fw+AViPEyaXmPdioHQkuZc5BlRRTAafKl40kT8v X-Received: by 2002:a17:906:1e16:: with SMTP id g22mr8816961ejj.14.1570123206215; Thu, 03 Oct 2019 10:20:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570123206; cv=none; d=google.com; s=arc-20160816; b=v3xRd21gE0hwMi8xzxi9BRxReg/U2o+r1ndBW9fyTde+wkDj9QijPD/Hf+3+RR4TKy nvMKeA5w9Rx/8r0JcbGoPRkNqIsaVg/JnYO5Dja2l04PTH1PIaWqZ5xpdfQ5ckr6Xf3v BkEC/Uh2qzfhvXhjYEBg/1FvzjLWQOmBvprVN4SIeRG7qUi0sB+G59fhTt4QMyRdS7Go Lr9lsH6qoGW6Q2XLczdCWuXSxj2GYN9JcDL9MEkXLfKX+8mNmxxB3nc3gfEaCyEw4P1l jwnrGeWQWoTSLo1fYxbAmWEik8zKgA6wR5qQqRMr96K8/Na/RHWoYXG9OvLizZYwKynV WlhA== 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=/5qwC5C9y7wRRpht8SYZ4T3VSBF0GsD3xEr+E5ZBv2k=; b=VxY7MBlCqbA/s1YDzqk6VPn1a2Ut/6SwHWHS86nyJ9+sQoRq8woCWsK++ZZw6IPUnm LPoRSCJz01jgjC2r3l10ZNAERZjS7Lq3IQcv3jb0wGqJOsMR4pfS67YHPR8He4evy3Yz pYf9s/BvahO8XwFyfjVJ1sthTXvXCYDR4Tf5r/HncY9gxWpQxhhbubODZ2/lbpnnA8ZE gkjUKxJ3stqI/jhKks+B0Mlv4gZId9he3cLG9lNoC6wgXGf3Sb1E7QPBDVXCQSfICydl Co1kJoOqRZsGWUjsRBr8R6G4VtyXna8b1yE5+n8Vm+QLzPfUBprc3eE0A2bph3XVzeap YWgQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=KXyZR3gS; 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 g21si1796294edm.116.2019.10.03.10.19.41; Thu, 03 Oct 2019 10:20:06 -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=KXyZR3gS; 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 S2391189AbfJCRSS (ORCPT + 99 others); Thu, 3 Oct 2019 13:18:18 -0400 Received: from mail.kernel.org ([198.145.29.99]:49500 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390111AbfJCQVR (ORCPT ); Thu, 3 Oct 2019 12:21:17 -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 3EFA420659; Thu, 3 Oct 2019 16:21:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570119676; bh=he2fSWT0lK2X9kFtyxSOoobrU3yzNlikOysYtfV1KiE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KXyZR3gSIsBQhY4RfwDWbfOtIags9I5mZ+ngNkvBCEwLz3s5x8noSW7fM6dN4lLX9 iwU8JVxfbyinG31rpRI6XOpqEoJE78xOeSLNJkFPL7zGIj6FFSTGl1ysDyF32er5JA 47GYHIFmLPtGjp7HmrvhT5JTtwlVz9ufPsioxhUE= 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 4.19 115/211] ALSA: firewire-motu: add support for MOTU 4pre Date: Thu, 3 Oct 2019 17:53:01 +0200 Message-Id: <20191003154513.729144694@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191003154447.010950442@linuxfoundation.org> References: <20191003154447.010950442@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 743015e87a960..e240fdfcae31d 100644 --- a/sound/firewire/motu/motu.c +++ b/sound/firewire/motu/motu.c @@ -255,6 +255,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 | \ @@ -272,6 +283,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