Received: by 2002:a05:6602:2086:0:0:0:0 with SMTP id a6csp4669747ioa; Wed, 27 Apr 2022 08:35:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyxdK7MxUcd1mSRi/LM6AFC57E+9uw53bJzMub2vaoeO85aCp/rcAbk1Tujgkv35my/d7dD X-Received: by 2002:a63:6b08:0:b0:3aa:de0a:abfd with SMTP id g8-20020a636b08000000b003aade0aabfdmr20629441pgc.353.1651073750192; Wed, 27 Apr 2022 08:35:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651073750; cv=none; d=google.com; s=arc-20160816; b=H+jDU6uqZ868Jyq8CSGJtb6DPHxsKWhcgL/d8CckGT2eIfEj69E+YK1s3Gqm9W7ID8 9G6IRDAVYVoVBH6KgrWzE61jD4V+iQ/9AqLQvuohwT4lLRGHQJ2rwMdQbKOWFjCoo2JC qDMey8X+3Lr70xdW1JE/u5lWLz0CbIaMUhZ+MyDxswgxbwJYSBDUfJICFZyB6K1Zeoyt KciR+o4o2iiFwY7yJ2BYFbmABIJt7QAybw9vm5tsdWoiN5wgaWU9MCXp5rtVlzl5CNYV 9Dw8bU0GFlZ7ND7Yy2wn0fhLhei4AOBiahZpmEqt8pyIu3qYB2r2PTSJs9M/Nvtymk8X NK7A== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=F6O/y7p035Mu5OYvWeY4J7gr1WF5EWkOpBmOdLjL3dw=; b=oknWaHDhPGySq4uvRBaZFk6zwBmZsFDQE4TSSdaTvxMG/2VHGf9G50/zBowKY94Q5/ vnmUDBF1QNFVml6Vi+ObXFuPgp+uQTc/ZnieIyFDAvGcsJc58Y9bv6OIgEVqwPWUIz72 p+iHMi0wvsKQrRUi/IgKSuFvUBMM29qCXsrdL6C2J6ey0uCXEGa8oVHKLbShi89NFbsp C7c5E8Z5NxSWzfeEWBI1r7+7nG0bFN9DZ+uONV9dJihp4SgldN8kTje9BFocY8HHjSTH bVtQSXn6Xl0mDU67qW0CTp67keKuYSQRCEpQ1dzqbpDqj6TnSyM7hSp6fJNx37A5hmWd KHow== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cirrus.com header.s=PODMain02222019 header.b=bcyvjOxa; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=cirrus.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id z13-20020a17090a540d00b001bd14e030b0si1856847pjh.136.2022.04.27.08.35.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Apr 2022 08:35:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@cirrus.com header.s=PODMain02222019 header.b=bcyvjOxa; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=cirrus.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id B42A520D629; Wed, 27 Apr 2022 08:08:29 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239192AbiD0PLe (ORCPT + 99 others); Wed, 27 Apr 2022 11:11:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40524 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239048AbiD0PK6 (ORCPT ); Wed, 27 Apr 2022 11:10:58 -0400 Received: from mx0b-001ae601.pphosted.com (mx0b-001ae601.pphosted.com [67.231.152.168]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F20E733A27 for ; Wed, 27 Apr 2022 08:07:46 -0700 (PDT) Received: from pps.filterd (m0077474.ppops.net [127.0.0.1]) by mx0b-001ae601.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 23RBg6qH022428; Wed, 27 Apr 2022 10:07:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=PODMain02222019; bh=F6O/y7p035Mu5OYvWeY4J7gr1WF5EWkOpBmOdLjL3dw=; b=bcyvjOxaMXqLb9UBgPzAdW/h+KSmvV+GTHAugz89DWtmyB4OaRVdME25DIA0kiXWB7Zx 6xY3+69ehNpUGBUu7vxlgEwOmHuIe2rfujwOs8fx3JVRJY+TRFHJCLoBX5y8rg/j1H0O IH1B5eQyNIGbjPqBFOLvwgZ7RLjvvA/ZlKEM19FC6noaQwmUgT2PTvU5WoevaL7yIuBZ kt8kMna9vkoREcBPLRs9840+3GKMXGyQ7e7bv/7JKdOJ9GhdumChPHtU04jWvmrMblzp 2k2jeJe9vckbGAsvpoc1QrqJDQt97mCnsFfoWYIL33vlvubAyXwxOERSvqT9JEMe5Bs5 wQ== Received: from ediex01.ad.cirrus.com ([84.19.233.68]) by mx0b-001ae601.pphosted.com (PPS) with ESMTPS id 3fprt60xte-10 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Wed, 27 Apr 2022 10:07:38 -0500 Received: from EDIEX01.ad.cirrus.com (198.61.84.80) by EDIEX01.ad.cirrus.com (198.61.84.80) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Wed, 27 Apr 2022 16:07:28 +0100 Received: from ediswmail.ad.cirrus.com (198.61.86.93) by EDIEX01.ad.cirrus.com (198.61.84.80) with Microsoft SMTP Server id 15.1.2375.24 via Frontend Transport; Wed, 27 Apr 2022 16:07:28 +0100 Received: from vitaly-Legion-7-16ACHg6.ad.cirrus.com (unknown [198.90.238.170]) by ediswmail.ad.cirrus.com (Postfix) with ESMTP id 542BE478; Wed, 27 Apr 2022 15:07:28 +0000 (UTC) From: Vitaly Rodionov To: Jaroslav Kysela , Takashi Iwai , Mark Brown CC: , , , Stefan Binding Subject: [PATCH 14/26] ALSA: hda: cs35l41: Save Subsystem ID inside CS35L41 Driver Date: Wed, 27 Apr 2022 16:07:08 +0100 Message-ID: <20220427150720.9194-15-vitalyr@opensource.cirrus.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220427150720.9194-1-vitalyr@opensource.cirrus.com> References: <20220427150720.9194-1-vitalyr@opensource.cirrus.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-GUID: YTYVzHgJBcK053qpucOqWHlsN8jxNy6C X-Proofpoint-ORIG-GUID: YTYVzHgJBcK053qpucOqWHlsN8jxNy6C X-Proofpoint-Spam-Reason: safe X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Stefan Binding The Subsystem ID is read from the HDA driver, and will be used by the CS35L41 driver to be able to uniquely identify the laptop, which is required to be able to define firmware to be used by specific models. Signed-off-by: Stefan Binding Signed-off-by: Vitaly Rodionov --- sound/pci/hda/cs35l41_hda.c | 3 +++ sound/pci/hda/cs35l41_hda.h | 1 + sound/pci/hda/hda_component.h | 1 + sound/pci/hda/patch_realtek.c | 1 + 4 files changed, 6 insertions(+) diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c index fe2ba03e602b..c235b899aa04 100644 --- a/sound/pci/hda/cs35l41_hda.c +++ b/sound/pci/hda/cs35l41_hda.c @@ -346,6 +346,9 @@ static int cs35l41_hda_bind(struct device *dev, struct device *master, void *mas return -EBUSY; comps->dev = dev; + if (!cs35l41->acpi_subsystem_id) + cs35l41->acpi_subsystem_id = devm_kasprintf(dev, GFP_KERNEL, + "%.8x", comps->subsystem_id); cs35l41->codec = comps->codec; strscpy(comps->name, dev_name(dev), sizeof(comps->name)); comps->playback_hook = cs35l41_hda_playback_hook; diff --git a/sound/pci/hda/cs35l41_hda.h b/sound/pci/hda/cs35l41_hda.h index 03c5f14631dd..b8352088a5cb 100644 --- a/sound/pci/hda/cs35l41_hda.h +++ b/sound/pci/hda/cs35l41_hda.h @@ -42,6 +42,7 @@ struct cs35l41_hda { int channel_index; unsigned volatile long irq_errors; const char *amp_name; + const char *acpi_subsystem_id; struct regmap_irq_chip_data *irq_data; bool firmware_running; bool halo_initialized; diff --git a/sound/pci/hda/hda_component.h b/sound/pci/hda/hda_component.h index 534e845b9cd1..fa6df52e7855 100644 --- a/sound/pci/hda/hda_component.h +++ b/sound/pci/hda/hda_component.h @@ -14,6 +14,7 @@ struct hda_component { struct device *dev; char name[HDA_MAX_NAME_SIZE]; + int subsystem_id; struct hda_codec *codec; void (*playback_hook)(struct device *dev, int action); }; diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index f7f732efd42b..2d01c53282fd 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -6631,6 +6631,7 @@ static void cs35l41_generic_fixup(struct hda_codec *cdc, int action, const char if (!name) return; spec->comps[i].codec = cdc; + spec->comps[i].subsystem_id = cdc->core.subsystem_id; component_match_add(dev, &spec->match, component_compare_dev_name, name); } ret = component_master_add_with_match(dev, &comp_master_ops, spec->match); -- 2.32.0