Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp676137ybh; Tue, 10 Mar 2020 06:17:55 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvl+Vy51L1V+gfI64lGFBFSpfGlM1pyWfjcF+OAbxygCKs1o2Z34aYloH+iFD1GTh4I0p/b X-Received: by 2002:a9d:64cd:: with SMTP id n13mr17074943otl.274.1583846274916; Tue, 10 Mar 2020 06:17:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1583846274; cv=none; d=google.com; s=arc-20160816; b=Rug0EMPvQ9Xoim3dDo6Bld/+8aEukG0JmeaD8T9VtGRs7KrLvi6V+w+maLArQNwSrT EYIhZlULOFAq70Ry10JenmCDi5Hq6bAoiQmZalKWqlsbbgF1YDmApZCALoLw/NQ6rtdj yY6JFoel89HehR39C3D5loSm4wB2EYHSLYjReLO+Im9IdAc/fLJP0FAqqO7TzAhpY7qe eFosZb36PrcuZLaKw9PIIGnr+bXLMf/sjq34lISFEk/QNIA++wjLJwDfnUtmFNFDM/IQ OApVki3P63T4dPl4bisLrU8iOrjN//4PQcx42yY1I8aCfaavRb3rRzMHwhY4ooQerEAR tnrQ== 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=1jsLdnxrPQcdDRGHtsNDS8Yo+kzTEY+91/GUrc2tPm4=; b=nSbJGL/j7c72xKHvcWZv85xID/WezhRT+Fak8xz7XGt1gu/Ilz+YMoum/XeDsa7gDK 2VZtT6Mu04LU+bxrEo725iKr8gR7jz/ZlD1wlLQRHUu+6LBHMh3D6JwReVIYDT1cUFbu 0HFDFpajXsBpYpf/FoVtSdrxQryMaAwqBYmNrlwTa++LtbGqRX5KCh5CzhEYgPUDs492 l3QzWovuwIglqHrva9pupIOJN+g/SLUIRucAyCG4gSUDE5CkNONSQloiIx4p7RwwPZ3q 1eKyQbnCA1d2YSnXJncHMII2C6ZHL6BH0GDCzVvMLwIJyDU7H78AC4S+RYseMuy/Ecoa bBLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=EptAk6H6; 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 d10si7430793oti.226.2020.03.10.06.17.42; Tue, 10 Mar 2020 06:17:54 -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=EptAk6H6; 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 S1731546AbgCJNMN (ORCPT + 99 others); Tue, 10 Mar 2020 09:12:13 -0400 Received: from mail.kernel.org ([198.145.29.99]:34300 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731539AbgCJNMM (ORCPT ); Tue, 10 Mar 2020 09:12:12 -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 CFF7520409; Tue, 10 Mar 2020 13:12:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1583845932; bh=ssKvFUgnI1L6vedipqOf+KiYAXpk4XNBlD8QG1x3TBg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EptAk6H63AjxDHLj+KxiIhWzC1cBnoz133pt2Hp+kH8itHvEFpxiIjtDP2MQyPhWL Jr+GBwExJ2zpF2xyEhJAAqZ+2AXmU9yhzsr5YM8g1miSOe1gQ3ppcu8qJ8DVhe+So6 JvTmkkU62HSv/M3bSj1go0d2XfZT/FnNUgGTmoFM= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Kai Vehmanen , Ranjani Sridharan , Pierre-Louis Bossart , Takashi Iwai , Mark Brown , Sasha Levin Subject: [PATCH 4.19 07/86] ALSA: hda: do not override bus codec_mask in link_get() Date: Tue, 10 Mar 2020 13:44:31 +0100 Message-Id: <20200310124531.200272158@linuxfoundation.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200310124530.808338541@linuxfoundation.org> References: <20200310124530.808338541@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: Kai Vehmanen [ Upstream commit 43bcb1c0507858cdc95e425017dcc33f8105df39 ] snd_hdac_ext_bus_link_get() does not work correctly in case there are multiple codecs on the bus. It unconditionally resets the bus->codec_mask value. As per documentation in hdaudio.h and existing use in client code, this field should be used to store bit flag of detected codecs on the bus. By overwriting value of the codec_mask, information on all detected codecs is lost. No current user of hdac is impacted, but use of bus->codec_mask is planned in future patches for SOF. Signed-off-by: Kai Vehmanen Reviewed-by: Ranjani Sridharan Reviewed-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Link: https://lore.kernel.org/r/20200206200223.7715-1-kai.vehmanen@linux.intel.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- sound/hda/ext/hdac_ext_controller.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sound/hda/ext/hdac_ext_controller.c b/sound/hda/ext/hdac_ext_controller.c index 60cb00fd0c693..84b44cdae28a1 100644 --- a/sound/hda/ext/hdac_ext_controller.c +++ b/sound/hda/ext/hdac_ext_controller.c @@ -262,6 +262,7 @@ EXPORT_SYMBOL_GPL(snd_hdac_ext_bus_link_power_down_all); int snd_hdac_ext_bus_link_get(struct hdac_bus *bus, struct hdac_ext_link *link) { + unsigned long codec_mask; int ret = 0; mutex_lock(&bus->lock); @@ -283,9 +284,11 @@ int snd_hdac_ext_bus_link_get(struct hdac_bus *bus, * HDA spec section 4.3 - Codec Discovery */ udelay(521); - bus->codec_mask = snd_hdac_chip_readw(bus, STATESTS); - dev_dbg(bus->dev, "codec_mask = 0x%lx\n", bus->codec_mask); - snd_hdac_chip_writew(bus, STATESTS, bus->codec_mask); + codec_mask = snd_hdac_chip_readw(bus, STATESTS); + dev_dbg(bus->dev, "codec_mask = 0x%lx\n", codec_mask); + snd_hdac_chip_writew(bus, STATESTS, codec_mask); + if (!bus->codec_mask) + bus->codec_mask = codec_mask; } mutex_unlock(&bus->lock); -- 2.20.1