Received: by 2002:a05:6a10:a841:0:0:0:0 with SMTP id d1csp2181871pxy; Sat, 24 Apr 2021 07:33:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzsKnH0KleIxGbqJ17hZKqvVVyjr9LTUtDARhjLWT54PiTJC9n/Dd7A7yIHRGGYg1vgQJoe X-Received: by 2002:a63:488:: with SMTP id 130mr8427048pge.359.1619274834916; Sat, 24 Apr 2021 07:33:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619274834; cv=none; d=google.com; s=arc-20160816; b=oTrbi4LHOkkAw5jfnaqP9w7x06OBs4G4UvL2jjd97Us+7SK5cSZ/kHpS6feyONWs+o tt9a2/o5ybFrMwm0eECW8KbyEhSEw/UINLzFl8LKEAIolYutqGwio6vrZKcmVx+fLsRu oUh/i9ezb014DDtVvUiVoggZs6ry3uB5Qs/vWd6fxNzhiMZF8juMA9omfyTIcYi9oGq4 ASGP9Z0rfctEZIG9kwWX5byg5ru0nPYS02egf6LoVAIHFpGHdGuo+oS9yFxmlUdjF4MY t93uIoX/Rojr2i8reEyZxMPe4hLrtnBnRh4a4sI7r3+WlMGQrAJBNPV+ukD+z0xXKV/z aaXA== 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=iSDBMw7lUXC0nxbFWkgwKdryX2zBWk3FQAlbk4Vd6ME=; b=zgJbfox4umjgQ2BDvL+0nOXPqyZT1ftwjJqcgZN188GQwjveTOAJyT3Bm6gU3DlMYn 1+28+sH+veaow7hy9bNb99qwXCwLtEjV9RobeU2toPEZwMCiJDWGzPq7JyaI3+gJaZKh +xTmBzg0/obwRsV62/twRS40uLXjbH5+1oC+BMwvujNo53RUrvfrPaB5At/pHfaGdRr6 kmmtUGXSrpYFjMRhzfuYe13ldG4/hXvk9hbribnZubEyM+T8rP/6IzYMqk57XIocX7ou DR1LVB3p3/kFKjEWPOkb0TY5E7oFPuqzXG62SV+i1HK6xO+CipsozRjRLzluOrhr6mQy p4Xg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cirrus.com header.s=PODMain02222019 header.b=AGwDhc+7; 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=REJECT sp=REJECT dis=NONE) header.from=cirrus.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h5si10610629pll.301.2021.04.24.07.33.42; Sat, 24 Apr 2021 07:33:54 -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=@cirrus.com header.s=PODMain02222019 header.b=AGwDhc+7; 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=REJECT sp=REJECT dis=NONE) header.from=cirrus.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232434AbhDXOdq (ORCPT + 99 others); Sat, 24 Apr 2021 10:33:46 -0400 Received: from mx0b-001ae601.pphosted.com ([67.231.152.168]:38306 "EHLO mx0b-001ae601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231940AbhDXOdm (ORCPT ); Sat, 24 Apr 2021 10:33:42 -0400 Received: from pps.filterd (m0077474.ppops.net [127.0.0.1]) by mx0b-001ae601.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 13OESTDJ031824; Sat, 24 Apr 2021 09:32:47 -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=iSDBMw7lUXC0nxbFWkgwKdryX2zBWk3FQAlbk4Vd6ME=; b=AGwDhc+7VkVEVi5OUQ+7m1w2MeCwJAmS1l+ssaFQ7bTc2bdqntKaEe1V21bGOCt0dHMe rp0YHrT2KeTZhN7w8qjqouCFvm39jotc7KHkoiG/pAQBUG5Eab6LxohbwAxl1KuyTyMa xOIFsH01tEhqd/Y+fwqFcIwZrNRFDY1Xccppu1ehShI+hqcGwCBPm+/r5LtX8c5hQPnw fIe6SMXhaY1zQiRZymcluKv7ee4T/xKROHSi6LJpSsFdIwHdPuFKCEvKpQQJ505fv+Rt Wlauok7umAgDOcnBs6gP+RLzgIvNuUDsiiF54gqtSZiDs+RWu/Xb2dMYu4uA12DDFaDG aA== Received: from ediex02.ad.cirrus.com ([87.246.76.36]) by mx0b-001ae601.pphosted.com with ESMTP id 384frs094x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Sat, 24 Apr 2021 09:32:47 -0500 Received: from EDIEX01.ad.cirrus.com (198.61.84.80) by EDIEX02.ad.cirrus.com (198.61.84.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Sat, 24 Apr 2021 15:32:45 +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.2242.4 via Frontend Transport; Sat, 24 Apr 2021 15:32:45 +0100 Received: from vitaly-Inspiron-5415.ad.cirrus.com (unknown [198.90.238.200]) by ediswmail.ad.cirrus.com (Postfix) with ESMTP id B680C11D6; Sat, 24 Apr 2021 14:32:45 +0000 (UTC) From: Vitaly Rodionov To: Jaroslav Kysela , Takashi Iwai CC: , , , Stefan Binding , You-Sheng Yang Subject: [PATCH v1 2/2] ALSA: hda/cirrus: Use CS8409 Equalizer to fix abnormal sounds on Bullseye Date: Sat, 24 Apr 2021 15:32:44 +0100 Message-ID: <20210424143244.639125-3-vitalyr@opensource.cirrus.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210424143244.639125-1-vitalyr@opensource.cirrus.com> References: <20210424143244.639125-1-vitalyr@opensource.cirrus.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-ORIG-GUID: xiwT5PQu4rn7s4ubWknFajiWxq315qrP X-Proofpoint-GUID: xiwT5PQu4rn7s4ubWknFajiWxq315qrP X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 clxscore=1015 spamscore=0 phishscore=0 lowpriorityscore=0 mlxlogscore=999 mlxscore=0 malwarescore=0 adultscore=0 bulkscore=0 suspectscore=0 impostorscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104240107 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Stefan Binding Tested on DELL Inspiron-3505, DELL Inspiron-3501, DELL Inspiron-3500 Signed-off-by: Stefan Binding Signed-off-by: Vitaly Rodionov BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1924997 Reported-and-tested-by: You-Sheng Yang --- sound/pci/hda/patch_cirrus.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/sound/pci/hda/patch_cirrus.c b/sound/pci/hda/patch_cirrus.c index d6cf93b7483c..82c5f0869684 100644 --- a/sound/pci/hda/patch_cirrus.c +++ b/sound/pci/hda/patch_cirrus.c @@ -1481,6 +1481,34 @@ static const struct cs8409_cir_param cs8409_cs42l42_hw_cfg[] = { {} /* Terminator */ }; +static const struct cs8409_cir_param cs8409_cs42l42_bullseye_atn[] = { + { 0x47, 0x65, 0x4000 }, /* EQ_SEL=1, EQ1/2_EN=0 */ + { 0x47, 0x64, 0x4000 }, /* +EQ_ACC */ + { 0x47, 0x65, 0x4010 }, /* +EQ2_EN */ + { 0x47, 0x63, 0x0647 }, /* EQ_DATA_HI=0x0647 */ + { 0x47, 0x64, 0xc0c7 }, /* +EQ_WRT, +EQ_ACC, EQ_ADR=0, EQ_DATA_LO=0x67 */ + { 0x47, 0x63, 0x0647 }, /* EQ_DATA_HI=0x0647 */ + { 0x47, 0x64, 0xc1c7 }, /* +EQ_WRT, +EQ_ACC, EQ_ADR=1, EQ_DATA_LO=0x67 */ + { 0x47, 0x63, 0xf370 }, /* EQ_DATA_HI=0xf370 */ + { 0x47, 0x64, 0xc271 }, /* +EQ_WRT, +EQ_ACC, EQ_ADR=2, EQ_DATA_LO=0x71 */ + { 0x47, 0x63, 0x1ef8 }, /* EQ_DATA_HI=0x1ef8 */ + { 0x47, 0x64, 0xc348 }, /* +EQ_WRT, +EQ_ACC, EQ_ADR=3, EQ_DATA_LO=0x48 */ + { 0x47, 0x63, 0xc110 }, /* EQ_DATA_HI=0xc110 */ + { 0x47, 0x64, 0xc45a }, /* +EQ_WRT, +EQ_ACC, EQ_ADR=4, EQ_DATA_LO=0x5a */ + { 0x47, 0x63, 0x1f29 }, /* EQ_DATA_HI=0x1f29 */ + { 0x47, 0x64, 0xc574 }, /* +EQ_WRT, +EQ_ACC, EQ_ADR=5, EQ_DATA_LO=0x74 */ + { 0x47, 0x63, 0x1d7a }, /* EQ_DATA_HI=0x1d7a */ + { 0x47, 0x64, 0xc653 }, /* +EQ_WRT, +EQ_ACC, EQ_ADR=6, EQ_DATA_LO=0x53 */ + { 0x47, 0x63, 0xc38c }, /* EQ_DATA_HI=0xc38c */ + { 0x47, 0x64, 0xc714 }, /* +EQ_WRT, +EQ_ACC, EQ_ADR=7, EQ_DATA_LO=0x14 */ + { 0x47, 0x63, 0x1ca3 }, /* EQ_DATA_HI=0x1ca3 */ + { 0x47, 0x64, 0xc8c7 }, /* +EQ_WRT, +EQ_ACC, EQ_ADR=8, EQ_DATA_LO=0xc7 */ + { 0x47, 0x63, 0xc38c }, /* EQ_DATA_HI=0xc38c */ + { 0x47, 0x64, 0xc914 }, /* +EQ_WRT, +EQ_ACC, EQ_ADR=9, EQ_DATA_LO=0x14 */ + { 0x47, 0x64, 0x0000 }, /* -EQ_ACC, -EQ_WRT */ + {} /* Terminator */ +}; + /** * cs8409_enable_i2c_clock - Enable I2C clocks * @codec: the codec instance @@ -2029,6 +2057,7 @@ static void cs8409_enable_ur(struct hda_codec *codec, int flag) static void cs8409_cs42l42_hw_init(struct hda_codec *codec) { const struct cs8409_cir_param *seq = cs8409_cs42l42_hw_cfg; + const struct cs8409_cir_param *seq_bullseye = cs8409_cs42l42_bullseye_atn; struct cs_spec *spec = codec->spec; if (spec->gpio_mask) { @@ -2043,6 +2072,10 @@ static void cs8409_cs42l42_hw_init(struct hda_codec *codec) for (; seq->nid; seq++) cs_vendor_coef_set(codec, seq->cir, seq->coeff); + if (codec->fixup_id == CS8409_BULLSEYE) + for (; seq_bullseye->nid; seq_bullseye++) + cs_vendor_coef_set(codec, seq_bullseye->cir, seq_bullseye->coeff); + /* Disable Unsolicited Response during boot */ cs8409_enable_ur(codec, 0); -- 2.25.1