From patchwork Mon May 15 08:13:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93944 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6743792vqo; Mon, 15 May 2023 00:59:15 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6qqY+H8L7oxt0gsslCeUU0r6Fy7LA5Kx35eSELARGRp/SBR4hsF9Y2JYtKNGqcI6ZH7mIS X-Received: by 2002:a17:90b:203:b0:24e:5618:3ca0 with SMTP id fy3-20020a17090b020300b0024e56183ca0mr33272651pjb.10.1684137555459; Mon, 15 May 2023 00:59:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684137555; cv=none; d=google.com; s=arc-20160816; b=ftVXJUsn7um3NLpcYyeHhDcqyby9auk9ssDf+zJk99jeNtlNVn4RkqQvh47Fx122ji kDr95Zz7zRfrnOeHUGR0gxbymHzTidkDrZEVRSEX2Q/I6xfV7rmBrV78lpEIHLo2ZS4n q5iG2nWOMosLuy7OFyUbGR8SJBMuKNjy4WULBv5bdUT8WGG0Fi1DAg0pEtHqPCPVM7jN ciCvyVY5f0aV4y9ey1RPDAxeJj31qx856WA932Tqx4rwxmcG1DA35J2szLwouIwc4NQS KFxKnQTpHdoiapSRO4ASZCPUS/wB/9Ud5aQW9dmKdtZNbvD3XjRBdZPuBjp5JhrMg5YO DgdA== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=HGvoX7lczyV78ixl9xNBvUm2ilfATdKRkppWa5RZ2Eg=; b=gYEZK8EodWQV+Lg8upuGWjDcqZHaWEvo1gaAh7J63YjvN93RHlfcAUsaO9I8oypPgl vL2MvQ6Cv5PAP5HDlsCB7Pwdlz11FGZJia/2AXgmZTVR0X/5H+y17oT7uJTMN29S1Stt VZyJnK6zjEBDJ1gDL4hhDzQsaN4RcenC5PFUf0S0YZ6Qw8NVeh15IR+zB++Kez2wENAm zj7xZ06SCb3cLqTTud03BrRGOH3E3pTP9ny8pyER4OswYe1DiBpA9gt1F/7riaA14t1l K+nUthJtavO4OXLH3CBfq6/wKPF6aGX3D2Ms+5UEOQmkTmu3DZ0mGo4DXve+9JV3iNdU 2n4g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=iK0dDyeE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x1-20020a17090a8a8100b00252cd29d3d7si5910941pjn.189.2023.05.15.00.59.01; Mon, 15 May 2023 00:59:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=iK0dDyeE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229760AbjEOHwp (ORCPT + 99 others); Mon, 15 May 2023 03:52:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59370 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229898AbjEOHwd (ORCPT ); Mon, 15 May 2023 03:52:33 -0400 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C279E76 for ; Mon, 15 May 2023 00:52:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684137152; x=1715673152; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=SiCBDBnlz88gKGLR73uUCWFOWyCRfe4txr9qACADick=; b=iK0dDyeE7/IsaBANPNL5Zz0glSoC4QwiCchAdzi2I1CwNAd+y6NztTp5 iZfg9Uo96DcAKGCKxztCKWfyEHmO4C7eiiZg1RWZbQiDpX4He/TapP7cy Q6vHmMD2go5mDmb3EDiwsQgFqF/LSIPfjHrjHouFu2ORpIavANdm0SJoX AcIt435T+ADTS2wip/aL6AJtQjUPDKUXuY1FCLC6fzg2cSQ84OSwyFPeE PtC5rdJgYzGKaPnBCyUUGLtq5Jyo+30v3kT1eItWme8cSjOAHfmAALnwc YsO71ZBjExrWKn3269GqpxMq/b11dDWb4C8IwsHN3Q2T4idlY19plR6vJ Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="335676055" X-IronPort-AV: E=Sophos;i="5.99,276,1677571200"; d="scan'208";a="335676055" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2023 00:52:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="731550650" X-IronPort-AV: E=Sophos;i="5.99,276,1677571200"; d="scan'208";a="731550650" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 May 2023 00:52:30 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org Cc: vinod.koul@linaro.org, linux-kernel@vger.kernel.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH] soundwire: intel: read AC timing control register before updating it Date: Mon, 15 May 2023 16:13:01 +0800 Message-Id: <20230515081301.12921-1-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765946220867413284?= X-GMAIL-MSGID: =?utf-8?q?1765946220867413284?= From: Chao Song Start from ACE1.x, DOAISE is added to AC timing control register bit 5, it combines with DOAIS to get effective timing, and has the default value 1. The current code fills DOAIS, DACTQE and DODS bits to a variable initialized to zero, and updates the variable to AC timing control register. With this operation, We change DOAISE to 0, and force a much more aggressive timing. The timing is even unable to form a working waveform on SDA pin on Meteorlake. This patch uses read-modify-write operation for the AC timing control register access, thus makes sure those bits not supposed and intended to change are not touched. Signed-off-by: Chao Song Reviewed-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Signed-off-by: Bard Liao --- drivers/soundwire/intel.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c index 238acf5c97a9..8cd2c73ac66f 100644 --- a/drivers/soundwire/intel.c +++ b/drivers/soundwire/intel.c @@ -260,7 +260,7 @@ static void intel_shim_init(struct sdw_intel *sdw) { void __iomem *shim = sdw->link_res->shim; unsigned int link_id = sdw->instance; - u16 ioctl = 0, act = 0; + u16 ioctl = 0, act; /* Initialize Shim */ ioctl |= SDW_SHIM_IOCTL_BKE; @@ -281,6 +281,7 @@ static void intel_shim_init(struct sdw_intel *sdw) intel_shim_glue_to_master_ip(sdw); + act = intel_readw(shim, SDW_SHIM_CTMCTL(link_id)); u16p_replace_bits(&act, 0x1, SDW_SHIM_CTMCTL_DOAIS); act |= SDW_SHIM_CTMCTL_DACTQE; act |= SDW_SHIM_CTMCTL_DODS;