Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3888740pxv; Mon, 19 Jul 2021 11:11:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy6rBwqA41INtda/GTAzp30HzJx6wSA50pNyB8lJ3gkdgQzi6zJA5Bt0aR7/pwQXvJTlLks X-Received: by 2002:aa7:c38d:: with SMTP id k13mr35691973edq.178.1626718277906; Mon, 19 Jul 2021 11:11:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626718277; cv=none; d=google.com; s=arc-20160816; b=q0G92JCokb9FkEr946tv5vgyGFDa5GDC+XFGrRPnkEzMeSTg3GKQv2gr7vy1yRuhi2 yV/qZtw4+Mu2L4Vn1vuqLWZJvtos8F4r+p3sU1ihfe0m6tv+tbWGGX8F7iv3f+JGK8H3 n9KynjSrkkL0t/nz3M2iyqgyLwB9iyFyQUgVGIM3sBbWfykD1OAMODR9AcbyOsL5F8FB VCn6g8nWZ6CNYFqgRGIuqMz4hQ2OCoNhfetvGVRe4yfGNcNk4oaYNHGqQfBbsPMLuawW Xyl42TBU9pD9W3qIaPg7l+aXFSW9x4FPTn6s4oBKYXmkgdKk6NLaxoYDmQdLpgSxXuCu aAvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=e+svfSdbU3uyWKuvb2WxZhtdAxAtzwG06VelJCNQ3RY=; b=kXCAxLruM0k/m2nMoZAGDwku6dECp/5250jTjUMqAE0A1hNuPh68ClcUizqAtHuBpq jznpBa0iraHt9iGJyZiCb9v7cQRiTdl/Ov2HY2E2jcepCxjOkxPe4MvqZF8lNigaPqPp uVa11fA28OT/t5vgiRJJt+Hr5HIw2BONz6M6fYXFxthjs5DjXM3o2zCjBthV3cAc4tSf +ugK6KXxDlIXC8q88QN/ch1MZ+A+CIpRZNP1YwDZrvhXIJHnD136rTYpru6wX8ISgAMj v+EYHh6q18pIzIa9WRbWnBqSTt+KYecRdeKe74+we60zyGWIaMQ31sDkveTUgFX5aJpL zo0A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=CuW8uY3l; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f11si22125762ejk.138.2021.07.19.11.10.54; Mon, 19 Jul 2021 11:11:17 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=CuW8uY3l; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1379124AbhGSR0k (ORCPT + 99 others); Mon, 19 Jul 2021 13:26:40 -0400 Received: from mail.kernel.org ([198.145.29.99]:42648 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1343861AbhGSPn7 (ORCPT ); Mon, 19 Jul 2021 11:43:59 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 4D5EA6141E; Mon, 19 Jul 2021 16:22:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626711763; bh=OZCGgr3XprkfVHRrqA7cgB8cdfnTEjpNRBiCCaIoY78=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CuW8uY3lGxUBansddGR3qM4BhEHEJ6teA11snCnKWpnnQ5xrzJLD6pookRxRO3Sc5 4U81fDEzuxCGCkB/7Snk+PL1RYz+l8Sk/j0+O2gu0cAmoSS05B86wOLGD2cFE9Plkw xbC5TJsP/ZdVHWNb3EMH+YrWVXPHMsW1lc7fxrGw= 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.12 124/292] ALSA: firewire-motu: fix detection for S/PDIF source on optical interface in v2 protocol Date: Mon, 19 Jul 2021 16:53:06 +0200 Message-Id: <20210719144946.563460126@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210719144942.514164272@linuxfoundation.org> References: <20210719144942.514164272@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Takashi Sakamoto [ Upstream commit fa4db23233eb912234bdfb0b26a38be079c6b5ea ] The devices in protocol version 2 has a register with flag for IEC 60958 signal detection as source of sampling clock without discrimination between coaxial and optical interfaces. On the other hand, current implementation of driver manage to interpret type of signal on optical interface instead. This commit fixes the detection of optical/coaxial interface for S/PDIF signal. Signed-off-by: Takashi Sakamoto Link: https://lore.kernel.org/r/20210623075941.72562-2-o-takashi@sakamocchi.jp Signed-off-by: Takashi Iwai Signed-off-by: Sasha Levin --- sound/firewire/motu/motu-protocol-v2.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/sound/firewire/motu/motu-protocol-v2.c b/sound/firewire/motu/motu-protocol-v2.c index 784073aa1026..f0a0ecad4d74 100644 --- a/sound/firewire/motu/motu-protocol-v2.c +++ b/sound/firewire/motu/motu-protocol-v2.c @@ -86,24 +86,23 @@ static int detect_clock_source_optical_model(struct snd_motu *motu, u32 data, *src = SND_MOTU_CLOCK_SOURCE_INTERNAL; break; case 1: + *src = SND_MOTU_CLOCK_SOURCE_ADAT_ON_OPT; + break; + case 2: { __be32 reg; // To check the configuration of optical interface. - int err = snd_motu_transaction_read(motu, V2_IN_OUT_CONF_OFFSET, - ®, sizeof(reg)); + int err = snd_motu_transaction_read(motu, V2_IN_OUT_CONF_OFFSET, ®, sizeof(reg)); if (err < 0) return err; - if (be32_to_cpu(reg) & 0x00000200) + if (((data & V2_OPT_IN_IFACE_MASK) >> V2_OPT_IN_IFACE_SHIFT) == V2_OPT_IFACE_MODE_SPDIF) *src = SND_MOTU_CLOCK_SOURCE_SPDIF_ON_OPT; else - *src = SND_MOTU_CLOCK_SOURCE_ADAT_ON_OPT; + *src = SND_MOTU_CLOCK_SOURCE_SPDIF_ON_COAX; break; } - case 2: - *src = SND_MOTU_CLOCK_SOURCE_SPDIF_ON_COAX; - break; case 3: *src = SND_MOTU_CLOCK_SOURCE_SPH; break; -- 2.30.2