Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1022614yba; Thu, 4 Apr 2019 02:38:24 -0700 (PDT) X-Google-Smtp-Source: APXvYqy+A4mfoBRb1sD0LJgt6/tBiGu3Dyd+6Nro/49A2kyDeMs72xfz2ah4ZDgXcBEYbdMxV0ot X-Received: by 2002:a63:c746:: with SMTP id v6mr4686507pgg.401.1554370703978; Thu, 04 Apr 2019 02:38:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554370703; cv=none; d=google.com; s=arc-20160816; b=qzKLnfWC23lZ8hY3m8jEJCstc2IQSjNA0o1o0tnEMQm8RYR7/xF7J7kA67PIoQYMcD OxkjiycoZYxMydwBNjCVXKr1hTyVlFyHedX2foUaEzqJy04bZWJ4xNMHj8DeY3VAscqP SxYnJTY7PCk40+7cokbsmj+aqKpWx527rfCxQ6q7MwjPOFXmrDXrKTW7t8i6Q5EutwFg pyeXJeW7o9lQX69V7k3tP8ie6OorigtvmQs7rlHMuKrwjt9YSkEM4MZZgvDTmqSDz0A2 oTVOqT8Wmdv8inzhqai+wJVUOgsRmPR0sK0wpXwRwFUSOGW/qIWzqSZVAwI6ya/Gwj/i HJiw== 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=96VSbpOdyHCPl+6TlLnvkQvXDe+tARynOmdqYVbk/1o=; b=Oi/tu2fVdGBWMY4uYZqZGWGYijdO24EW2WeDWeq+Q6zcRnL7ZQwrj1Z8Mr7VvDkrve 3hfso++u7/HGWvrjE4G8u3iWaTuoa36+SyuCLsy030vabPpxP45MhwkTGGRkA2aj7w7I fsh1gHENM0d+/j3mliRxgW2osZve0pjRUcSsDG5w5Xdp1jzcTUVO70GPunCf2/3W16Zn vOi/f6D5Dsw6iRuhrhe1X1GVbn418FBpCl9P0l+7T7qibJq84+zs6kMGoc4pC5HGCHiP bHU0uVByEb2LPEwzte27hokzOYPcN63QRwiGJ6BBk9M2dY2sl6S69q1J1U2urEhqBmHQ ZkAg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=IYniwQHU; 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 t23si15908670pfa.64.2019.04.04.02.38.09; Thu, 04 Apr 2019 02:38:23 -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=IYniwQHU; 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 S1732312AbfDDJfd (ORCPT + 99 others); Thu, 4 Apr 2019 05:35:33 -0400 Received: from mail.kernel.org ([198.145.29.99]:44782 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731608AbfDDJGU (ORCPT ); Thu, 4 Apr 2019 05:06:20 -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 372AD2177E; Thu, 4 Apr 2019 09:06:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1554368779; bh=rPK7I67lM0ygVkCMJcpm2XeKjIagFFAzu5HqGT/KIE4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IYniwQHUryc0YgqCsGseHVFCLBT7oSL9yTqP61/ksEB6PGmQew8t/rCJy/Ir5ZQAz RamI5GdRODPeWY7brLiIUpWzrB4tvLyzJswXjqRCtV/qbJxvqj3w+2TmCXNH786z+/ yucSTAsZcJA9OGrT1zSSJvmNnb+RzLDS0s7KDy2c= 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 151/187] ALSA: dice: add support for Solid State Logic Duende Classic/Mini Date: Thu, 4 Apr 2019 10:48:08 +0200 Message-Id: <20190404084610.241308745@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190404084603.119654039@linuxfoundation.org> References: <20190404084603.119654039@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore 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 4.19-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit b2e9e1c8810ee05c95f4d55800b8afae70ab01b4 ] Duende Classic was produced by Solid State Logic in 2006, as a first model of Duende DSP series. The following model, Duende Mini was produced in 2008. They are designed to receive isochronous packets for PCM frames via IEEE 1394 bus, perform signal processing by downloaded program, then transfer isochronous packets for converted PCM frames. These two models includes the same embedded board, consists of several ICs below: - Texus Instruments Inc, TSB41AB3 for physical layer of IEEE 1394 bus - WaveFront semiconductor, DICE II STD ASIC for link/protocol layer - Altera MAX 3000A CPLD for programs - Analog devices, SHARC ADSP-21363 for signal processing (4 chips) This commit adds support for the two models to ALSA dice driver. Like support for the other devices, packet streaming is just available. Userspace applications should be developed if full features became available; e.g. program uploader and parameter controller. $ ./hinawa-config-rom-printer /dev/fw1 { 'bus-info': { 'adj': False, 'bmc': False, 'chip_ID': 349771402425, 'cmc': True, 'cyc_clk_acc': 255, 'generation': 1, 'imc': True, 'isc': True, 'link_spd': 2, 'max_ROM': 1, 'max_rec': 512, 'name': '1394', 'node_vendor_ID': 20674, 'pmc': False}, 'root-directory': [ ['VENDOR', 20674], ['DESCRIPTOR', 'Solid State Logic'], ['MODEL', 112], ['DESCRIPTOR', 'Duende board'], [ 'NODE_CAPABILITIES', { 'addressing': {'64': True, 'fix': True, 'prv': True}, 'misc': {'int': False, 'ms': False, 'spt': True}, 'state': { 'atn': False, 'ded': False, 'drq': True, 'elo': False, 'init': False, 'lst': True, 'off': False}, 'testing': {'bas': False, 'ext': False}}], [ 'UNIT', [ ['SPECIFIER_ID', 20674], ['VERSION', 1], ['MODEL', 112], ['DESCRIPTOR', 'Duende board']]]]} Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai Signed-off-by: Sasha Levin --- sound/firewire/dice/dice.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sound/firewire/dice/dice.c b/sound/firewire/dice/dice.c index 774eb2205668..3d600f498914 100644 --- a/sound/firewire/dice/dice.c +++ b/sound/firewire/dice/dice.c @@ -18,6 +18,7 @@ MODULE_LICENSE("GPL v2"); #define OUI_ALESIS 0x000595 #define OUI_MAUDIO 0x000d6c #define OUI_MYTEK 0x001ee8 +#define OUI_SSL 0x0050c2 // Actually ID reserved by IEEE. #define DICE_CATEGORY_ID 0x04 #define WEISS_CATEGORY_ID 0x00 @@ -216,7 +217,7 @@ static int dice_probe(struct fw_unit *unit, struct snd_dice *dice; int err; - if (!entry->driver_data) { + if (!entry->driver_data && entry->vendor_id != OUI_SSL) { err = check_dice_category(unit); if (err < 0) return -ENODEV; @@ -382,6 +383,15 @@ static const struct ieee1394_device_id dice_id_table[] = { .model_id = 0x000002, .driver_data = (kernel_ulong_t)snd_dice_detect_mytek_formats, }, + // Solid State Logic, Duende Classic and Mini. + // NOTE: each field of GUID in config ROM is not compliant to standard + // DICE scheme. + { + .match_flags = IEEE1394_MATCH_VENDOR_ID | + IEEE1394_MATCH_MODEL_ID, + .vendor_id = OUI_SSL, + .model_id = 0x000070, + }, { .match_flags = IEEE1394_MATCH_VERSION, .version = DICE_INTERFACE, -- 2.19.1