Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp3968295img; Mon, 25 Mar 2019 23:45:55 -0700 (PDT) X-Google-Smtp-Source: APXvYqxCeh2OHJMPlP2t5ZZENU5TCBW4ljceQm3MhIcQmvgByZSn+xfoEZQJSL4Y5fQIOfkpm57i X-Received: by 2002:a63:c149:: with SMTP id p9mr26656949pgi.362.1553582755149; Mon, 25 Mar 2019 23:45:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553582755; cv=none; d=google.com; s=arc-20160816; b=IzHaT3fh7sYVqMrr9u20UC7MjM3DBSY91zr7iuLkhER9DAdBQkFjQtXHllq7qD27xm y3X8HFa2+gHBNOBKt9DxOJZ1QkdSEA6f75+1MfsUAURor9L1UebiG49m19pxCzCYTBXW Vu57HnydArpwNOwYlR0195/jt/K/BTxK3/6uBqSxhFXxOzCkeCUHRlZbCkZuR1Glb6Lz 7X2Q0ltYKkg4MWHwf4WvAxcK+tX845oPaqCNz2kTxqL9btAb7Thao+ZgyXpc6jXq6CE2 YwLNGlqj791jl042Ac/cOunXAn62twY05hL8p1M+4sNDkLeP28/xjOji5Mg9Zajgp5Pu quIw== 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=30m7SwC3wwtYQ0z4UVlNrDuTpfg0lQPYGIKm14k6HLM=; b=rq2dLIXw8lWXul6Xf++2f33hE9vfMKGmCYwCXMZixxeU7JyK61cIeXMAhnnlM/yDS/ C7rKp9l8KqPtbhlSvgsg5W53c1DdmYukTLzC4nHRWjzK9D9umFnxgLQh9tW9k4yoFkEo vgqI9MTe8SdPnArYedKp9DT1bFcwZaNWJQT1PAneodoFeySR0IJm10mqwwAZGE87SWfR //j5oi9LWntAcXa+LBfyt7NIygQNlKQBTNWjlXfcFzauspPRgY9RmfnMT3/XOE+bADN5 Coxjux4MWD7PrUjdO7wULBOnW4Zay23GTBADyOxIXNX4C/SN5zDGqpxSOg8Pfka1TRzb 333A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=GEqoD03J; 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 k185si7205172pgc.450.2019.03.25.23.45.40; Mon, 25 Mar 2019 23:45:55 -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=GEqoD03J; 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 S1731687AbfCZGfo (ORCPT + 99 others); Tue, 26 Mar 2019 02:35:44 -0400 Received: from mail.kernel.org ([198.145.29.99]:47550 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725535AbfCZGfm (ORCPT ); Tue, 26 Mar 2019 02:35:42 -0400 Received: from localhost (unknown [104.132.152.111]) (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 040BD2075E; Tue, 26 Mar 2019 06:35:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1553582140; bh=dAfwJoYAX+KopjHonuTt91w5tVc/SiHeui/2rHqUyzw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GEqoD03JJVapHOjKp0U9yW8ffqvlZubVdrhWRWWGLaCY/xATN/AkkXGFi1F58+KvQ NcCIJGGGwYOsbQsdzTV20h4hCgAKNByq6mRMOcNJmy+xiktKDeXzNahcPLRI2yhUYl 0PX4h2mNmMFh8N5ebdS5RH6kDjWg0aTV9lgrPcFg= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Takashi Sakamoto , Takashi Iwai Subject: [PATCH 4.19 02/45] ALSA: firewire-motu: use version field of unit directory to identify model Date: Tue, 26 Mar 2019 15:29:45 +0900 Message-Id: <20190326042702.822957994@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190326042702.565683325@linuxfoundation.org> References: <20190326042702.565683325@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. ------------------ From: Takashi Sakamoto commit 2d012c65a9ca26a0ef87ea0a42f1653dd37155f5 upstream. Current ALSA firewire-motu driver uses the value of 'model' field of unit directory in configuration ROM for modalias for MOTU FireWire models. However, as long as I checked, Pre8 and 828mk3(Hybrid) have the same value for the field (=0x100800). unit | version | model --------------- | --------- | ---------- 828mkII | 0x000003 | 0x101800 Traveler | 0x000009 | 0x107800 Pre8 | 0x00000f | 0x100800 <- 828mk3(FW) | 0x000015 | 0x106800 AudioExpress | 0x000033 | 0x104800 828mk3(Hybrid) | 0x000035 | 0x100800 <- When updating firmware for MOTU 8pre FireWire from v1.0.0 to v1.0.3, I got change of the value from 0x100800 to 0x103800. On the other hand, the value of 'version' field is fixed to 0x00000f. As a quick glance, the higher 12 bits of the value of 'version' field represent firmware version, while the lower 12 bits is unknown. By induction, the value of 'version' field represents actual model. This commit changes modalias to match the value of 'version' field, instead of 'model' field. For degug, long name of added sound card includes hexadecimal value of 'model' field. Fixes: 6c5e1ac0e144 ("ALSA: firewire-motu: add support for Motu Traveler") Signed-off-by: Takashi Sakamoto Cc: # v4.19+ Signed-off-by: Takashi Iwai Signed-off-by: Greg Kroah-Hartman --- sound/firewire/motu/motu.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) --- a/sound/firewire/motu/motu.c +++ b/sound/firewire/motu/motu.c @@ -36,7 +36,7 @@ static void name_card(struct snd_motu *m fw_csr_iterator_init(&it, motu->unit->directory); while (fw_csr_iterator_next(&it, &key, &val)) { switch (key) { - case CSR_VERSION: + case CSR_MODEL: version = val; break; } @@ -46,7 +46,7 @@ static void name_card(struct snd_motu *m strcpy(motu->card->shortname, motu->spec->name); strcpy(motu->card->mixername, motu->spec->name); snprintf(motu->card->longname, sizeof(motu->card->longname), - "MOTU %s (version:%d), GUID %08x%08x at %s, S%d", + "MOTU %s (version:%06x), GUID %08x%08x at %s, S%d", motu->spec->name, version, fw_dev->config_rom[3], fw_dev->config_rom[4], dev_name(&motu->unit->device), 100 << fw_dev->max_speed); @@ -258,20 +258,20 @@ static const struct snd_motu_spec motu_a #define SND_MOTU_DEV_ENTRY(model, data) \ { \ .match_flags = IEEE1394_MATCH_VENDOR_ID | \ - IEEE1394_MATCH_MODEL_ID | \ - IEEE1394_MATCH_SPECIFIER_ID, \ + IEEE1394_MATCH_SPECIFIER_ID | \ + IEEE1394_MATCH_VERSION, \ .vendor_id = OUI_MOTU, \ - .model_id = model, \ .specifier_id = OUI_MOTU, \ + .version = model, \ .driver_data = (kernel_ulong_t)data, \ } static const struct ieee1394_device_id motu_id_table[] = { - SND_MOTU_DEV_ENTRY(0x101800, &motu_828mk2), - SND_MOTU_DEV_ENTRY(0x107800, &snd_motu_spec_traveler), - SND_MOTU_DEV_ENTRY(0x106800, &motu_828mk3), /* FireWire only. */ - SND_MOTU_DEV_ENTRY(0x100800, &motu_828mk3), /* Hybrid. */ - SND_MOTU_DEV_ENTRY(0x104800, &motu_audio_express), + SND_MOTU_DEV_ENTRY(0x000003, &motu_828mk2), + SND_MOTU_DEV_ENTRY(0x000009, &snd_motu_spec_traveler), + 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), { } }; MODULE_DEVICE_TABLE(ieee1394, motu_id_table);