Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp5643330img; Wed, 27 Mar 2019 12:18:08 -0700 (PDT) X-Google-Smtp-Source: APXvYqwa1VeROdXXURbYXbdlBMm4gJFTkDTSsZG62AQPNoA+nhH9YFc9e9l4dHmm3BYxTkSqwB5A X-Received: by 2002:a17:902:1a9:: with SMTP id b38mr38605335plb.37.1553714288901; Wed, 27 Mar 2019 12:18:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553714288; cv=none; d=google.com; s=arc-20160816; b=jQp8zAOPIuRvM1Zrr27Q2SntMuCyRGXaBGcfabFR1wR6NAHfUcLzSmQKHxXXiB1Y+b 7uMWdZdjqdeZ271hc5tZOcrTyZqFr6QXRqD9BYjkHKlsgF6ApXi+bbAH1f+0vm6H2hBa LEaCBGg/rr9PhHGvLZWv95LpKdGoE/NZEazU5GgkUbs9Hk0OcGV8RV1TRP8cJ7CraRsb TFHLZCFwauB6SrgRPhgZpSF9nCC7U6ccE71OWzNSEGoIXBTv35pEtg+sqSMjFzsg2cfg KUU79q6z21RcmHIHiNvGWQTrus/jTwlc7WzwpO3tmWwe7aekPHmhl8ONkberXhPIjiyb iV4g== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ZU1mXn7j+9q77ZrSt/RNd3y6Qp/S8lHgzYXCXMUSnkQ=; b=uAx5O4VWrJL8o+lBqkx3DB2A6lZK1pMVKgiwnwJldK+a2coMNdpgrtZFxoyiTb27nn hyvMdJjPh4GD0cR10IHF7gPH495DZdIT/amV3mX17JpLmKE70CUQ7hBy7ZiG0doDrpPe rRLu+BAbQaLWSv4wc13Cm7q94mjMggf9KakcmYh1V+1+uwmW9HVA+FOALrF2FchlnjBN BWOYU7381pyatPZspgQABo6zGmo3vH5cEZLnJFGwZuCokthA+NJEb8lRaGSeEpLZQhvk gTcrNLOdAXiXVusqBcdKRBr7LAuCxbRWhG5/y6PPkVKaG26EtfkbRmW5xFNRg4zF06zp cOfQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=RY7cmsCE; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h13si5933980pgr.133.2019.03.27.12.17.53; Wed, 27 Mar 2019 12:18:08 -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=RY7cmsCE; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388669AbfC0TRV (ORCPT + 99 others); Wed, 27 Mar 2019 15:17:21 -0400 Received: from mail.kernel.org ([198.145.29.99]:50616 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388414AbfC0SIu (ORCPT ); Wed, 27 Mar 2019 14:08:50 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6273521734; Wed, 27 Mar 2019 18:08:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1553710130; bh=yMITNGy/kMorXgfHSGTSNJD45OsqYKrkmRgAgPDkwgE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RY7cmsCEEDX/l6ZnIN0V8a31dY3boT0k7CNgBJrzQQSNlXtKl/PGKpq/dkyuHW5+i IhTqH6jDTKA1i7El2Qst5I8ZJjZIM0QURSFMp3m63C2nb9O41Pty5gK6jNkUxjqcA8 n0yDyuHXcHyxt8vE6zBlVEOy/rDPbBPFGge0L74Y= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Takashi Sakamoto , Takashi Iwai , Sasha Levin Subject: [PATCH AUTOSEL 5.0 208/262] ALSA: dice: add support for Solid State Logic Duende Classic/Mini Date: Wed, 27 Mar 2019 14:01:03 -0400 Message-Id: <20190327180158.10245-208-sashal@kernel.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190327180158.10245-1-sashal@kernel.org> References: <20190327180158.10245-1-sashal@kernel.org> MIME-Version: 1.0 X-Patchwork-Hint: Ignore 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 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 ed50b222d36e..eee184b05d93 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 @@ -196,7 +197,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; @@ -361,6 +362,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