From patchwork Tue Mar 14 01:53:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 69229 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1513309wrd; Mon, 13 Mar 2023 19:00:48 -0700 (PDT) X-Google-Smtp-Source: AK7set+wswCzcKcmGJMmZl3kGLfbKrMk2uq3NGiXadzf+qzmWNIuKz+J0uyAJp2E/XXNp3cKOQpe X-Received: by 2002:a05:6102:3174:b0:414:673b:195d with SMTP id l20-20020a056102317400b00414673b195dmr18126436vsm.31.1678759247936; Mon, 13 Mar 2023 19:00:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678759247; cv=none; d=google.com; s=arc-20160816; b=KyhNq0f19/bIedmjswG6vgPvjNZFXF94bCNVekI0eNzUwUMesbpnWDcerEQUeM6g48 3dHhuFfqvCLd0Hi8/ndpmYbXZZ4p1bW1MYLcHFf1L0cYF1Ad1XAONEsIn9Z1dksWU1cB 5UdEGtL+UKBrEldiJlCof+lNtLROc5RiEPwxd0ZjYUcVpYnWxs/aKdECa/S+95x7Z2zS HlsNQlQnDDQuEajENDo2HYsOHBq/XHWcxy9UE4FwhS0rMx9hgOI7TPxNTYXCm9BHnndk np+cHmTZDXJbYWF+AUt2M2UeiaiOELOdY9i0nPV95LD+Mljyjlf2+QnGqoeb+yWgtjq+ ynLw== 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=6Y3/P8n4eNB10vjJpCn1q9aj7cvIaC0rqJln9n0vQ5U=; b=dpI9EySJIYTAhm2SYNu0WzfZhzRcunj5h4SL3Ts9nHFjh8fZ2BCF269rJYOAhmERsi KoC3I+IQUmSIN4T6NtAHPvtd5z/7FO9f2bLOOEFdPriXThEFzTygcgKm0Ai0Zpnu7e5n UNL0eu2Pp8zfKHKnO49UZxE5LjsKO+tBx8WY4RoP5EwQBqvVhtCGjTogZ3FAFohSvbKe vQc4PkdTS7crZMwdTzkvUCvQpkpiMD/IJnfcVneAkT84iy51m0TwFjrmuZy3UXJJTuW5 ddXbR6/Z0HX+JAqQqTVEQO77F4Nm5+B7N6VWtg4kCd1kG1SIEPbIs4x8wUGZuvstSOMG MJsQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=bZIRtRRo; 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 s14-20020a67eace000000b00425903444aesi527748vso.305.2023.03.13.19.00.33; Mon, 13 Mar 2023 19:00:47 -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=bZIRtRRo; 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 S230187AbjCNBlO (ORCPT + 99 others); Mon, 13 Mar 2023 21:41:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33298 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229636AbjCNBlN (ORCPT ); Mon, 13 Mar 2023 21:41:13 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1EE4A72B10 for ; Mon, 13 Mar 2023 18:41:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678758072; x=1710294072; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=vr8Kw7ba92HG1JhiR1fBD72PK2abpi9TsV7vewjYowA=; b=bZIRtRRooWMT3Q3vmwi8/KxsAQIxHwtVfYyi4soqKQhW+3oZ14Qp3u0/ aD+uKJuAQ3MWusN1AUt01khcBCAlS8rklusQVV1Meba0AI2ZQp6fBY85W 3vYlHud088JoxPGiKEMz2+Ry+3RJxXB3zn4lMm3o7+5ejDEBh+5uPk/1Q sdKhySkOhWn6qRfSf4ovh/XUog1zA72qEligd4JMnE6lmJas5q+m51SBt JKJWNM6LtTgw6+lSjKxEAiWubv+6dkLzym8QvOjTe939LB3OZmI6nLyj7 MlBjIF8SV5wvZy7jpT/3Rt8FNGF6PjrXhw5WqBGtvOg0gNjiw1Cp60txL Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="316949206" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="316949206" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="711327326" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="711327326" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:06 -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 01/16] soundwire: intel: move common definitions to header file Date: Tue, 14 Mar 2023 09:53:55 +0800 Message-Id: <20230314015410.487311-2-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> References: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED 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?1760306657322920113?= X-GMAIL-MSGID: =?utf-8?q?1760306657322920113?= From: Pierre-Louis Bossart Prepare for reused for addition of new hardware Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Signed-off-by: Bard Liao --- drivers/soundwire/intel.c | 32 -------------------------------- drivers/soundwire/intel.h | 29 +++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 32 deletions(-) diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c index 2651767272c7..20067f9cd128 100644 --- a/drivers/soundwire/intel.c +++ b/drivers/soundwire/intel.c @@ -19,38 +19,6 @@ #include "bus.h" #include "intel.h" - -enum intel_pdi_type { - INTEL_PDI_IN = 0, - INTEL_PDI_OUT = 1, - INTEL_PDI_BD = 2, -}; - -#define cdns_to_intel(_cdns) container_of(_cdns, struct sdw_intel, cdns) - -/* - * Read, write helpers for HW registers - */ -static inline int intel_readl(void __iomem *base, int offset) -{ - return readl(base + offset); -} - -static inline void intel_writel(void __iomem *base, int offset, int value) -{ - writel(value, base + offset); -} - -static inline u16 intel_readw(void __iomem *base, int offset) -{ - return readw(base + offset); -} - -static inline void intel_writew(void __iomem *base, int offset, u16 value) -{ - writew(value, base + offset); -} - static int intel_wait_bit(void __iomem *base, int offset, u32 mask, u32 target) { int timeout = 10; diff --git a/drivers/soundwire/intel.h b/drivers/soundwire/intel.h index de9883313c8f..089c41babfc1 100644 --- a/drivers/soundwire/intel.h +++ b/drivers/soundwire/intel.h @@ -50,6 +50,35 @@ struct sdw_intel { #endif }; +enum intel_pdi_type { + INTEL_PDI_IN = 0, + INTEL_PDI_OUT = 1, + INTEL_PDI_BD = 2, +}; + +/* + * Read, write helpers for HW registers + */ +static inline int intel_readl(void __iomem *base, int offset) +{ + return readl(base + offset); +} + +static inline void intel_writel(void __iomem *base, int offset, int value) +{ + writel(value, base + offset); +} + +static inline u16 intel_readw(void __iomem *base, int offset) +{ + return readw(base + offset); +} + +static inline void intel_writew(void __iomem *base, int offset, u16 value) +{ + writew(value, base + offset); +} + #define cdns_to_intel(_cdns) container_of(_cdns, struct sdw_intel, cdns) #define INTEL_MASTER_RESET_ITERATIONS 10 From patchwork Tue Mar 14 01:53:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 69228 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1513166wrd; Mon, 13 Mar 2023 19:00:29 -0700 (PDT) X-Google-Smtp-Source: AK7set+m0OS9i+OEpH2Z+24dFYjjSWDGQvtkcU5tws5G3SpN+PZ5AsOYtrAnpwlLsS7S52WMdpIt X-Received: by 2002:a05:6102:338b:b0:41f:50fd:bcf with SMTP id i11-20020a056102338b00b0041f50fd0bcfmr17491123vsh.7.1678759228773; Mon, 13 Mar 2023 19:00:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678759228; cv=none; d=google.com; s=arc-20160816; b=qrppvkeE5ez0qWDVnCteALvBcWYTyrcwLrHbXhhWli51QCnA5z48gyBoGxezoyTPwM keFrBOQUUljsunchLFzTGHroNK6D0u3dUI95fUSgtoivUZqb5dMn02e6cCjykwWDpqUv yCd/klF3BzPcaoI3A5zErHf1oshMywlidKOGoYQvv3EVIlxIPlHVX2N9Jlbr0R0OJ4MA AhAYK1fk7bOHIiLXNmNmmZRNPpMzXyrqUB4nmTDUrZeRmejPOvNbKCwNg7NvBEuIms1s Bo7JmIb+w3QSdFQUYzGx1YjbyqF6H9jVCvrdeFNBW2MOpDK0Rl7YA4cmBHV5stGAZaWK TSqQ== 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=YasmG754iHIA0UbfxWJmS7zugi04RHifFIixS5nWwYQ=; b=vi4otA6qzwPtR7FLthAMZlReObd/DHULINKe5If6Vfk+NPpc+k1b312XxHnezoZNn4 jUTwjB/FLsTxMhbYm8L9rNleR9M0ABPNwLRgg8nH+bvRChUn+pQwLwVm+I/blK0xmybx 2T97fP9dBnJ7lYJwT4rbYPA813TFPAUol+kDERnRQJHaCOWtIQY+vQOkLaJYMyWJyled pvWIuni7H6Wfn+9n4AaxCHjQ1EcvnooZU2I5umpQVzcVc2DelI+0yBC9a6z4k0bM41nB cmx3NOh1VB4QvvFIQ4JNT/mqSF+/DK0DElGHF+m2iJFlNJ0ykAXs9xaETbkta+zDRo9A AHjg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=LxCUU1SK; 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 i12-20020ab063cc000000b00755b50d6a61si534357uap.44.2023.03.13.19.00.13; Mon, 13 Mar 2023 19:00:28 -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=LxCUU1SK; 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 S230223AbjCNBlQ (ORCPT + 99 others); Mon, 13 Mar 2023 21:41:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33304 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230038AbjCNBlO (ORCPT ); Mon, 13 Mar 2023 21:41:14 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 751AF733BE for ; Mon, 13 Mar 2023 18:41:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678758073; x=1710294073; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=PGk3sCWW4GKxrRnzP/5NGc1o5+9sx46cLfioCRVccX4=; b=LxCUU1SK+lq9BJHu/fVJ9TSC7rn/7UCYpwDMhhtC7Spg1+/OK8nNcWCV LBaeYcT1jkGXeJuijNFGAu37gmy+hBx/c5oGUprWnzJeDpXKqbvZRydqi 8SUXlLmZPR+Ugc/WG7hWcF4p2/g7zWhdbcEWBxT6aiq0pHLJd2yt2y6cO InRHdeoyOB0Y9IAKzF1ooAD5BHb7/vIanCVuLZkfPNE9enPYJCm1UD/Qr 3P+HFpnrNTfvO22tKYGlCzI6EmaDs6P2gAOvyONncB5EASYhRV4FJpdsU qmtD3t4BhkFZ5MJsG5q49U6CkCgCBJH+iLOJiYk9Ao2tTNYirI02pdMGc Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="316949219" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="316949219" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="711327350" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="711327350" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:08 -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 02/16] soundwire: intel: remove stale/misleading comment Date: Tue, 14 Mar 2023 09:53:56 +0800 Message-Id: <20230314015410.487311-3-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> References: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED 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?1760306637045634150?= X-GMAIL-MSGID: =?utf-8?q?1760306637045634150?= From: Pierre-Louis Bossart The PDIs don't really have a notion of rates and formats, only channels are relevant. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Signed-off-by: Bard Liao --- drivers/soundwire/intel.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c index 20067f9cd128..924dff670170 100644 --- a/drivers/soundwire/intel.c +++ b/drivers/soundwire/intel.c @@ -1056,7 +1056,6 @@ static int intel_create_dai(struct sdw_cdns *cdns, if (num == 0) return 0; - /* TODO: Read supported rates/formats from hardware */ for (i = off; i < (off + num); i++) { dais[i].name = devm_kasprintf(cdns->dev, GFP_KERNEL, "SDW%d Pin%d", From patchwork Tue Mar 14 01:53:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 69230 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1513524wrd; Mon, 13 Mar 2023 19:01:17 -0700 (PDT) X-Google-Smtp-Source: AK7set8XSgFAWIBrMA466V+AubxqNgXfn/rpgorvLdH05VnHpZOiUWbWNI/1tR3m9U66QUdhwIy/ X-Received: by 2002:a05:6102:2925:b0:411:a11c:e1ed with SMTP id cz37-20020a056102292500b00411a11ce1edmr14501328vsb.17.1678759277483; Mon, 13 Mar 2023 19:01:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678759277; cv=none; d=google.com; s=arc-20160816; b=QtgsDuADWrB6yRLujzlfc54BD5bWuygCk8oW1bybEXVXwm5MlexCrkZf5zJU2kpl2P BzOR8ZE+mz3QYaRWKc3sLM/Kj9VZwWrtrpbNiCm5ynxJUUXzRxEfPFkIMAO4FXx09A17 oE91OKmWrAZzCuNeoMUL4XS0oSOUJmOBH/ImAV2pUG6zc+XqZ1xUQaN/AsV+Wlsd0UEA DXwRoce+QuSgP897wL450KCSOVXTDAcNr0Pcr76vcAgd/qGwLf7I1hWD1KFFzw8sJ0iL trY1zJGNN5qiV69JMr9whNqY5bwJcxdA9LopR/u0f8bzcULc2JktUcy0AMLJ+GsoTVOE 4ixA== 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=r+sIM1G+nQqckedhG2lB0gAMacZbzVq5FmrL/ooISP0=; b=t71ShO4qshm/e3kRjpuRCMSkUUCpK2MPNDswMeZiO74JBt1P0TIjUz4MOhJzD05pd/ 9BnT4tKwVOge5APfQZyfeRic+rNWHpWUet85aj8XVKHynyxXlE0hCdVYnSlXhOrFwors 6nEMNoQeuksAT9sFuOjAkzfKFSjrJgz5bf+zYaaIpzpYtjr/8GwBdJWmLVALpJs5w10k Ujh3/6Vn68uOq7rIal1OVOb5AR6WOoZ+xJ3uIflzfjJEwmdwCq2UaQT5sQ8uyUeYNUCc 3kAdwmal5KUbiJLv/FvmzB4Z2yTuWDdrOyvUQ0/zv9MD8EbbzaBViKbGyYyvqsKoBvMS gHcA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=chgk4FBq; 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 p5-20020ab07445000000b0068a363f3edasi602460uaq.74.2023.03.13.19.01.03; Mon, 13 Mar 2023 19:01:17 -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=chgk4FBq; 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 S230231AbjCNBlT (ORCPT + 99 others); Mon, 13 Mar 2023 21:41:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33314 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230212AbjCNBlO (ORCPT ); Mon, 13 Mar 2023 21:41:14 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1CB8C72B10 for ; Mon, 13 Mar 2023 18:41:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678758074; x=1710294074; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=r4jXVCJhzsOs1ZDy2WVg/GiSmTDBrRuP65jWFiuOPLM=; b=chgk4FBqhOLKxBgJLvaXPc+Bu3qLybq5H50srnKAirS4IHo5pZXD1QNA AoqJhOLUX1xTf2+KNO9l32pRpPE2DvhVzxpvENGklL6SJNnv8TUYoHgrP BX2+Mq9sgvyCwUFwI5r2io03CGkqofrSI90R3Tp/UKX2uxB0Vnf9CdUdZ VP/gBO/BkRfu7jODA6JclsEOuQuSsS3Jud5j89YKK3C/PVIJIHKVWY3s2 yhExEEUfahxb1wj3hB2k9cXwfHpRbg/O9sdw7mr78a6YqP/r21X0nOp3K hnGMQ7I1RMY9/0A+0LXDH6L+DjNZ2olq6UhsVQniciuLw8cFSeQRB5K38 A==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="316949226" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="316949226" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:12 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="711327372" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="711327372" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:10 -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 03/16] soundwire: intel: remove PDI-level restrictions on rates and formats Date: Tue, 14 Mar 2023 09:53:57 +0800 Message-Id: <20230314015410.487311-4-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> References: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED 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?1760306688162266055?= X-GMAIL-MSGID: =?utf-8?q?1760306688162266055?= From: Pierre-Louis Bossart This is not relevant and not aligned with hardware definitions. In addition, we've tested higher resolution formats so this is ignored at a higher level. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Signed-off-by: Bard Liao --- drivers/soundwire/intel.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c index 924dff670170..6c17baab7923 100644 --- a/drivers/soundwire/intel.c +++ b/drivers/soundwire/intel.c @@ -1066,15 +1066,11 @@ static int intel_create_dai(struct sdw_cdns *cdns, if (type == INTEL_PDI_BD || type == INTEL_PDI_OUT) { dais[i].playback.channels_min = 1; dais[i].playback.channels_max = max_ch; - dais[i].playback.rates = SNDRV_PCM_RATE_48000; - dais[i].playback.formats = SNDRV_PCM_FMTBIT_S16_LE; } if (type == INTEL_PDI_BD || type == INTEL_PDI_IN) { dais[i].capture.channels_min = 1; dais[i].capture.channels_max = max_ch; - dais[i].capture.rates = SNDRV_PCM_RATE_48000; - dais[i].capture.formats = SNDRV_PCM_FMTBIT_S16_LE; } dais[i].ops = &intel_pcm_dai_ops; From patchwork Tue Mar 14 01:53:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 69231 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1513600wrd; Mon, 13 Mar 2023 19:01:28 -0700 (PDT) X-Google-Smtp-Source: AK7set/YDsdESDmIIiZ2yphUGouKY4W7VxI5f/0cI3dEzyiZEtahBAU6VHXothMQma49Oke/iGMa X-Received: by 2002:a05:6102:390b:b0:40e:5d46:d297 with SMTP id e11-20020a056102390b00b0040e5d46d297mr23447883vsu.17.1678759288008; Mon, 13 Mar 2023 19:01:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678759287; cv=none; d=google.com; s=arc-20160816; b=vBpv6SyTQU7v9hGEqkkrlrHinD5vfov3BgrM63TAomvTT8yO2z77OF8ssmAwxnpqB0 25k7qd1oOZUnB2uHLDrDmyp0IbbZlq3/lRU9nRiH4Eea4AtJ/g0x3LbQQpoqVJ3MyWVL GyHp4xV3uNpH4e+7j5yg+i0etfjhtozZ3CXv3Vz3hO0Q2Ky1hBQ+8LOYlH5yzl4Ejlrn JJo4FukqFP2ZQbK5DMxWWNykSocjnFViKEf/BKeDB51J9MxD5ItyswRbkE+cGopY/eeb d9aj2BjBJymETPUdr503ue16PEj6WMZzA0p4UvZMutefPksPRtkdZen/Fbs3kLuKKG0m O2XA== 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=9U4WPaGmoxfHrmlhWImlEX85SLcpGRA5gIaeCI+7L50=; b=IwAE40NiLqLFBU4hhUp3ZNHvjg/Nngu6ELBuYsWWEf7RCQTSrn+SEiHeO8F/EzqtDu tAoqW+uKEQnUA2XZxWPmeT7wjx4LFEEbglM72p5w/aAu+TpdL91O0AE8s1eFPCJO8wgk 0TEDLatPeDrkGSD0lUaU4WplwwdbjgUnuXpTaQKg/pGeO9rtlOKv2UWUsfHwloBFOHM7 exrNwIblD6hqneTgie8/V4YViokVwdjFs3Ka+od+SFEc/5MV2rutBcx3PdyjFbbF52Js 2wZ192B4bHJQWVmfjR24SllslWDes5t3dYthoqnM1dN/njtQW+tzt0WAf8EJmbK7tHJl eKoQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=PE3jgalQ; 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 d16-20020a67e410000000b00423dfe3d420si578475vsf.639.2023.03.13.19.01.13; Mon, 13 Mar 2023 19:01:27 -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=PE3jgalQ; 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 S230230AbjCNBlV (ORCPT + 99 others); Mon, 13 Mar 2023 21:41:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33334 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230220AbjCNBlQ (ORCPT ); Mon, 13 Mar 2023 21:41:16 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 24C8972B10 for ; Mon, 13 Mar 2023 18:41:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678758075; x=1710294075; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=E1vpSUnv0GpopyC7lDUkDQqhHE9rQzhik8od9N+jq4w=; b=PE3jgalQU8e0GMhkr9L3f4Dq94oqJ9+73GQmk0LYzODp+nUN/4PD2f2M u9SuT+7xdbGaa3N/NVuh2i2W9DqjKplHjA+KSAiO7bF5AvVoJypSTtsWO MbKkQHx98aaQkAJ0qyuGkaTJ94C/XEIYOGMK6ZFs+/vrZSrSJt8zemVkx iL5aUaUQXlwgalTzt0O1VlggXYJqrza+L9yHYH3jx0c1KFjZOjwuVHjqY W+eUQFwiqPBULwi0Dq4DcehMjZ/oVwF11VMBqGeVOG1jogHdO6LCFutpa d+MYJLIS/7l0I9wLHq7NXq4OjdU+hHDb5icbA3dza17ZhfGvXJ6Yu+9uV w==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="316949233" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="316949233" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="711327386" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="711327386" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:12 -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 04/16] soundwire: intel: remove useless abstraction Date: Tue, 14 Mar 2023 09:53:58 +0800 Message-Id: <20230314015410.487311-5-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> References: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED 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?1760306699100046678?= X-GMAIL-MSGID: =?utf-8?q?1760306699100046678?= From: Pierre-Louis Bossart PDM is supported in the hardware but never enabled: there are no known PDM-based devices. We can directly call the PCM helper. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Signed-off-by: Bard Liao --- drivers/soundwire/intel.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c index 6c17baab7923..2c1c905f8889 100644 --- a/drivers/soundwire/intel.c +++ b/drivers/soundwire/intel.c @@ -586,13 +586,6 @@ static int intel_pdi_stream_ch_update(struct sdw_intel *sdw, return 0; } -static int intel_pdi_ch_update(struct sdw_intel *sdw) -{ - intel_pdi_stream_ch_update(sdw, &sdw->cdns.pcm); - - return 0; -} - static void intel_pdi_shim_configure(struct sdw_intel *sdw, struct sdw_cdns_pdi *pdi) { @@ -1094,7 +1087,7 @@ static int intel_register_dai(struct sdw_intel *sdw) if (ret) return ret; - intel_pdi_ch_update(sdw); + intel_pdi_stream_ch_update(sdw, &sdw->cdns.pcm); /* DAIs are created based on total number of PDIs supported */ num_dai = cdns->pcm.num_pdi; From patchwork Tue Mar 14 01:53:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 69233 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1513617wrd; Mon, 13 Mar 2023 19:01:34 -0700 (PDT) X-Google-Smtp-Source: AK7set+JmM9xbsIkSHK1qfqRiKkCDkN12Lyr1kBP+OEHOSwTcOFAL6j2bFnC0J/bp4v3o4z1IhXz X-Received: by 2002:a05:6102:3b01:b0:3eb:4440:ca72 with SMTP id x1-20020a0561023b0100b003eb4440ca72mr17248836vsu.9.1678759294335; Mon, 13 Mar 2023 19:01:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678759294; cv=none; d=google.com; s=arc-20160816; b=YhOzG9vyxfgxzuN0TJwZyBOXG3y77/Al6erBovqTaNoWPwznCQ1o6y8X5I5ADwZKHj RAU4N5IZ6SHxA/xjbseSTTRNUJbkeitKJkTzRwM85w5D6SVGLoqnjKhaN2k8OW8ZHYxT RuxQpIbZfoSFK5cShT/yj0omcgwxCLfh5lCACIoxM9OepTRF7Mb34xZpGkYFjRqkpwf5 W7anLaypZ6QoJsL/VOQ+LM6lhpcgVZnlZKTsgBjCAUuLzqyG6/yiU3aCb+qvOTfIJMfA l/R6DMDWG/U9kU1kDqWhKUC2hyBhH5QC5uY4zkINsVcn6lsmQ+wU8+YcBAWy9GqPmJqE HrNg== 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=peLQYuyEFw+ri7pZOi+SfwWFsId1/iSI3lirckHDjyI=; b=oSYn6SLhTjZCVHm/xhk/AQxF+vb/FthJ6N2yf92MrOU9INqTwD3JfZnJxjDTbyIP0/ Hbvca4CSCftQRpzdB5ygOXQ2J1oIqQ6fldbL3wBplzRSrCje+mUmM3vlSPqM207EJZLv oI7rsJ27KqA96LymQ6bZADymoIj7ondgiWqiK5wrQVlfKz+Lsbe0FAnIPnm+VbqUdU1b JQuMz1VXN7lADXBeCJ7mg3caJISm+19nZEkRSaclmb11HTj3TlWx1z5euJCsBhgggz50 JXwgGcq4+h1J2EIfXYNme6WEw70qCqpqecRL/3SLqG18NcNtoCZqIHfdG3BjsyrxywaR q9/w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=YLUnoCe8; 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 y11-20020a67f24b000000b0042587bbedc0si625885vsm.148.2023.03.13.19.01.19; Mon, 13 Mar 2023 19:01:34 -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=YLUnoCe8; 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 S230240AbjCNBlX (ORCPT + 99 others); Mon, 13 Mar 2023 21:41:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33378 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230228AbjCNBlS (ORCPT ); Mon, 13 Mar 2023 21:41:18 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D412474336 for ; Mon, 13 Mar 2023 18:41:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678758076; x=1710294076; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=hZc2EGLHxJx9i0Pailyxx3z91nn/GaDqbMywZWeyhkI=; b=YLUnoCe8xt5wcRgld27H58jEcQOyK3Ck3OK8afCg2a7WDDJp56Jlx0uH zy+P4siAoUA7rwMXtPKmJOcI3S3Zbkhc9NwLNI9GhNHbCm9Asy9tiyCys MbUdGADjePEi2ZxqtFSIZ6ZRHCIPvGLf/yp/9oWqHtQV4Nh5XLaYkTKM0 2GBEPFGJvhfxFTGke+5ELuoP4G5VConNR1TXeX6RHn67MHNBKJAGOeuj6 GyLtdYZsBKKtyzAZEoG2A+6/f/5S+CwN6QhZTnkqnr3oLbZz36P6QZLIG eBVPFmXeyaXM5H4855oPDlUBRNp+T3JWS6ic2SEnWYrpeWTFjZ270SNxZ g==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="316949239" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="316949239" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="711327399" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="711327399" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:14 -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 05/16] soundwire: intel: simplify sync_go sequence Date: Tue, 14 Mar 2023 09:53:59 +0800 Message-Id: <20230314015410.487311-6-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> References: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED 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?1760306705623654581?= X-GMAIL-MSGID: =?utf-8?q?1760306705623654581?= From: Pierre-Louis Bossart In the existing code, the SHIM_SYNC::SYNC_GO bit is set, and the code waits for it to return to zero. That second wait part is just wrong: the SYNC_GO bit is *write-only* so there's no way to know if it's cleared by hardware. The code works because the value for a read-only bit is zero, but that's really just luck. Simplify the sequence to a plain read-modify-write. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Signed-off-by: Bard Liao --- drivers/soundwire/intel.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c index 2c1c905f8889..6fdb10117e59 100644 --- a/drivers/soundwire/intel.c +++ b/drivers/soundwire/intel.c @@ -475,7 +475,6 @@ static int intel_shim_sync_go_unlocked(struct sdw_intel *sdw) { void __iomem *shim = sdw->link_res->shim; u32 sync_reg; - int ret; /* Read SYNC register */ sync_reg = intel_readl(shim, SDW_SHIM_SYNC); @@ -487,13 +486,9 @@ static int intel_shim_sync_go_unlocked(struct sdw_intel *sdw) */ sync_reg |= SDW_SHIM_SYNC_SYNCGO; - ret = intel_clear_bit(shim, SDW_SHIM_SYNC, sync_reg, - SDW_SHIM_SYNC_SYNCGO); + intel_writel(shim, SDW_SHIM_SYNC, sync_reg); - if (ret < 0) - dev_err(sdw->cdns.dev, "SyncGO clear failed: %d\n", ret); - - return ret; + return 0; } static int intel_shim_sync_go(struct sdw_intel *sdw) From patchwork Tue Mar 14 01:54:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 69235 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1513657wrd; Mon, 13 Mar 2023 19:01:39 -0700 (PDT) X-Google-Smtp-Source: AK7set+3Q0LVWvDrR4pmw6RSWB4VvD1YKeP7qTYZTa4NfEOyrkXUyFa+fZU4QinTeRQl9tRE4KI7 X-Received: by 2002:a05:6102:3038:b0:415:4610:77fa with SMTP id v24-20020a056102303800b00415461077famr19031814vsa.25.1678759299451; Mon, 13 Mar 2023 19:01:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678759299; cv=none; d=google.com; s=arc-20160816; b=Cg9Y1bUGFbN/XW1uPkQGrBO9w3VP8sAAhGXPw15IFjGW8MXmgEUXK8UQYAZzTGwdcr NKZrZ9UZJOh7FxvMBoL9VVjqkrmfhk+0YPN6Y+JPPweEXxlxU1+yi7bhseDGLxNFaok9 SgajaLAZ5O3K9BX6eoxFO0fifz+Kng9kQb42vGxUu3lqQAooxQ9qG2Svb8et1ILROg/Y v6xMhV0nGUW/XetcSdiyRGt+D8Ls/JVL3e0DH07El6v4i4yCRlsZ1aQC2zLXkDL+ljDz cD8bxx9EK7Qm3SMGZd0aJJEn21jDTpji8ar1EoS65rNrecCObqBYMtdgh3dj3dXOxN/Y sOWQ== 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=/yR+Iz0Kt5Y7it2/zjTeJB5dj9x4Tg03Yu7ZCV1d2kY=; b=G5qVgKHZ9+3NxcQDP5oUV+/nUTrQ4JkLnDDUc9KIuKMANa3vVtRBcmSjzX4B3WkBxu SoSnraRe2XHy0E6wQRkMRN2vKiKgShs7jPeyvVaHGFLg37KEtsEXAv82sFbl5doa/PYc ULKEIOOfjB8V6B46B84LP5QVedAHbZoXBGe2bHFJtcX5zylfKcKxXfHqr5Bwun4QV84z K6ovWd8uMWWOOlJDTf+uf+rtYcaK1PR3HsbeHf+2Oq3i+F2weMRjeZFfIbxB84EzwAsi D48QvRbmxCRwjE/Z+9Oe/azhNsK3JLUG+eHBtDejMBEk4Uu8W/R4b08HUDlbLU60tNAD 8oWg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="BYFw/6t3"; 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 b13-20020ab0664d000000b0068a5b4f945bsi628284uaq.5.2023.03.13.19.01.23; Mon, 13 Mar 2023 19:01:39 -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="BYFw/6t3"; 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 S230265AbjCNBlZ (ORCPT + 99 others); Mon, 13 Mar 2023 21:41:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33416 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230233AbjCNBlT (ORCPT ); Mon, 13 Mar 2023 21:41:19 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D89C67431C for ; Mon, 13 Mar 2023 18:41:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678758078; x=1710294078; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=gHC1L9M9Gcn75VIlZPVSTJ0/8DWLLL6154TEcRehIwE=; b=BYFw/6t3UT9sOboM+k3iaZ0H4sBiYSwdja/9/hQbdhhwIFPhfAR77BBf oP0Osisldmi+cu/miJ89h0t2wSN311xBD9+lJWvGWaxSxdX9ws34psUBq tRruiwz4c2dWQpA/BbKzUOA9nc1nxzo+fnzFQpVoG88gVBLPqeQIahHge SY/NpxfaCR7IYXAvy8KCyr+GN/KtZnhoscujEhFKA1XXJ2DrS43ewjYcg XSJy87wQPowl9oBThwhQsYz8SJUVSyLaa3800iHTRsaqCho6FlIF3KLYw j7pv3e+ylZihQrdTFScKiYDmNOrZ+bz9UwxqRON9X8C1q/EMRx1la5NKa A==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="316949250" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="316949250" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="711327422" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="711327422" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:16 -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 06/16] soundwire: intel: add sync_arm/sync_go to ops Date: Tue, 14 Mar 2023 09:54:00 +0800 Message-Id: <20230314015410.487311-7-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> References: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED 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?1760306710928555691?= X-GMAIL-MSGID: =?utf-8?q?1760306710928555691?= From: Pierre-Louis Bossart The bus start/stop sequences can be reused between platforms if we add a couple of new callbacks. In following patches the code will be moved to a shared file. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Signed-off-by: Bard Liao --- drivers/soundwire/intel.c | 16 ++++++++++------ drivers/soundwire/intel.h | 20 ++++++++++++++++++++ include/linux/soundwire/sdw_intel.h | 8 ++++++++ 3 files changed, 38 insertions(+), 6 deletions(-) diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c index 6fdb10117e59..902934cbb27b 100644 --- a/drivers/soundwire/intel.c +++ b/drivers/soundwire/intel.c @@ -686,7 +686,7 @@ static int intel_pre_bank_switch(struct sdw_intel *sdw) if (!bus->multi_link) return 0; - intel_shim_sync_arm(sdw); + sdw_intel_sync_arm(sdw); return 0; } @@ -720,7 +720,7 @@ static int intel_post_bank_switch(struct sdw_intel *sdw) goto unlock; } - ret = intel_shim_sync_go_unlocked(sdw); + ret = sdw_intel_sync_go_unlocked(sdw); unlock: mutex_unlock(sdw->link_res->shim_lock); @@ -1140,7 +1140,7 @@ static int intel_start_bus(struct sdw_intel *sdw) * gsync is enabled */ if (bus->multi_link) - intel_shim_sync_arm(sdw); + sdw_intel_sync_arm(sdw); ret = sdw_cdns_init(cdns); if (ret < 0) { @@ -1155,7 +1155,7 @@ static int intel_start_bus(struct sdw_intel *sdw) } if (bus->multi_link) { - ret = intel_shim_sync_go(sdw); + ret = sdw_intel_sync_go(sdw); if (ret < 0) { dev_err(dev, "%s: sync go failed: %d\n", __func__, ret); goto err_interrupt; @@ -1210,7 +1210,7 @@ static int intel_start_bus_after_reset(struct sdw_intel *sdw) * timeouts when gsync is enabled */ if (bus->multi_link) - intel_shim_sync_arm(sdw); + sdw_intel_sync_arm(sdw); /* * Re-initialize the IP since it was powered-off @@ -1239,7 +1239,7 @@ static int intel_start_bus_after_reset(struct sdw_intel *sdw) } if (bus->multi_link) { - ret = intel_shim_sync_go(sdw); + ret = sdw_intel_sync_go(sdw); if (ret < 0) { dev_err(sdw->cdns.dev, "sync go failed during resume\n"); goto err_interrupt; @@ -1342,6 +1342,10 @@ const struct sdw_intel_hw_ops sdw_intel_cnl_hw_ops = { .pre_bank_switch = intel_pre_bank_switch, .post_bank_switch = intel_post_bank_switch, + + .sync_arm = intel_shim_sync_arm, + .sync_go_unlocked = intel_shim_sync_go_unlocked, + .sync_go = intel_shim_sync_go, }; EXPORT_SYMBOL_NS(sdw_intel_cnl_hw_ops, SOUNDWIRE_INTEL); diff --git a/drivers/soundwire/intel.h b/drivers/soundwire/intel.h index 089c41babfc1..28b21a92e28b 100644 --- a/drivers/soundwire/intel.h +++ b/drivers/soundwire/intel.h @@ -167,4 +167,24 @@ static inline void sdw_intel_shim_wake(struct sdw_intel *sdw, bool wake_enable) SDW_INTEL_OPS(sdw, shim_wake)(sdw, wake_enable); } +static inline void sdw_intel_sync_arm(struct sdw_intel *sdw) +{ + if (SDW_INTEL_CHECK_OPS(sdw, sync_arm)) + SDW_INTEL_OPS(sdw, sync_arm)(sdw); +} + +static inline int sdw_intel_sync_go_unlocked(struct sdw_intel *sdw) +{ + if (SDW_INTEL_CHECK_OPS(sdw, sync_go_unlocked)) + return SDW_INTEL_OPS(sdw, sync_go_unlocked)(sdw); + return -ENOTSUPP; +} + +static inline int sdw_intel_sync_go(struct sdw_intel *sdw) +{ + if (SDW_INTEL_CHECK_OPS(sdw, sync_go)) + return SDW_INTEL_OPS(sdw, sync_go)(sdw); + return -ENOTSUPP; +} + #endif /* __SDW_INTEL_LOCAL_H */ diff --git a/include/linux/soundwire/sdw_intel.h b/include/linux/soundwire/sdw_intel.h index 91f0dc564fe5..06fa30929ebd 100644 --- a/include/linux/soundwire/sdw_intel.h +++ b/include/linux/soundwire/sdw_intel.h @@ -309,6 +309,10 @@ struct sdw_intel; * @shim_wake: enable/disable in-band wake management * @pre_bank_switch: helper for bus management * @post_bank_switch: helper for bus management + * @sync_arm: helper for multi-link synchronization + * @sync_go_unlocked: helper for multi-link synchronization - + * shim_lock is assumed to be locked at higher level + * @sync_go: helper for multi-link synchronization */ struct sdw_intel_hw_ops { void (*debugfs_init)(struct sdw_intel *sdw); @@ -330,6 +334,10 @@ struct sdw_intel_hw_ops { int (*pre_bank_switch)(struct sdw_intel *sdw); int (*post_bank_switch)(struct sdw_intel *sdw); + + void (*sync_arm)(struct sdw_intel *sdw); + int (*sync_go_unlocked)(struct sdw_intel *sdw); + int (*sync_go)(struct sdw_intel *sdw); }; extern const struct sdw_intel_hw_ops sdw_intel_cnl_hw_ops; From patchwork Tue Mar 14 01:54: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: 69234 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1513660wrd; Mon, 13 Mar 2023 19:01:39 -0700 (PDT) X-Google-Smtp-Source: AK7set8g8dp9UkPYuf584rDIFV9J/0uqT2OWSAIqs/qSQvgmtX1WxkAt3KBtK3zcmw2dhn0dXQxI X-Received: by 2002:a1f:2cd5:0:b0:432:c55:49e8 with SMTP id s204-20020a1f2cd5000000b004320c5549e8mr2182106vks.9.1678759299604; Mon, 13 Mar 2023 19:01:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678759299; cv=none; d=google.com; s=arc-20160816; b=QeJoAX8MCrm4stt1rdoqZSLajJWgR2Hcou0kxAvtnYr93+fHXa0334ZwKTonD/Y9wS +tL2jHFsTXx2QCKxM7ISLdHF9YoyAh0c/O4+A2I2/9y+CTIMBMCnYIeJmFnm73y1M5ee tlyQ7CVLKSgxifSc91YaO1joXpcKkqXndNOQQkz/1XfcS6C589+4EX7+hSxL9S8o3wZH rioqDFFvE0hWQLTYb0rLpaxKJ7++ttMuXwR3ubrbEepngjX65cT0IbMdo/Fra6X1kcZo Dg5qPxhjzt8QiKtUij103CBw3k9hJO15J2pX8cFPhijULHu187FGLJ4dsVEXd0E48pVR MxnQ== 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=4RUIA15zOTEwQb6S66AdGWwcK7qCCwnlafozv8c+eLE=; b=N7OAZ8S9WJKaDW17Q523i5XnsY4wY3k7/JEHSZuvsTkGlR4nZNXknt+OfFGtFvGfwN JjnluGQedPcVOZLmYLWaFEz+kXzPza45jZA+EZaOGOI7JRfKh2fqw7Qd8iox1GBxD9vb mxPmk7eqVpOd9Ak1u2cFvEDGsEHvD9rhTajUly36KCKlmGRRH47j8ojWKe66uC7Uax2d KdZO1l60yJnhsGE5cKJQ9avK2m+isapwTwi9Tpuhy/UHd8j0az7fQPNiLKomIih5ze4l tHXrS1vkRf10n5JYYrCXsp4mXhBk2CzqofE9npO61n6S3Utv9uLqal8qIjyrhGwooqkp m5Vg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=DyVDBKDc; 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 q205-20020a1f2ad6000000b004018f2834a5si781864vkq.71.2023.03.13.19.01.24; Mon, 13 Mar 2023 19:01:39 -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=DyVDBKDc; 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 S229670AbjCNBld (ORCPT + 99 others); Mon, 13 Mar 2023 21:41:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33544 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230263AbjCNBlZ (ORCPT ); Mon, 13 Mar 2023 21:41:25 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 224E172B10 for ; Mon, 13 Mar 2023 18:41:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678758085; x=1710294085; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=2J/lbv6Wvy/4qm3q1nHlORWUYNqsoXkS5u9Wi+zdC3Q=; b=DyVDBKDc6i8/s3hfzeIAKaUKW2QyUV1CD5sW7tCka9ct2hVvc7lckQsW VFO0DuirfT64E7fhjZuqf73SBGYIrbAVT4giY+KqWY6MhTBvyG7P3yq/Y brYUaTV3rlZV5+DxY0AYDcOjbGgzV9cGOXPBo6WMGoqtGKk+Ctgo3Map9 sJTgMmV8NZI46rbUReV0jOPX1LoKZ6kls5VmtbBsJUg9hq5xneBe07Liq ESFU59vi71h73Ao1ffGNzylTAkn6sMJQif8iAYPRCp2xNz1c6yvgTzFFT CuX6A2NQrTKn4apfyJc6XWafxIuPgjx1FBLY6VR76bOhR5IK9kyNnIsbi Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="316949257" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="316949257" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="711327439" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="711327439" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:18 -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 07/16] soundwire: intel: use indirection before moving bus start/stop sequences Date: Tue, 14 Mar 2023 09:54:01 +0800 Message-Id: <20230314015410.487311-8-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> References: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED 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?1760306711272018081?= X-GMAIL-MSGID: =?utf-8?q?1760306711272018081?= From: Pierre-Louis Bossart There was no benefit to using the existing abstraction, but since we are going to move the code make sure we do use the ops. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Signed-off-by: Bard Liao --- drivers/soundwire/intel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c index 902934cbb27b..8395a20e5739 100644 --- a/drivers/soundwire/intel.c +++ b/drivers/soundwire/intel.c @@ -1311,13 +1311,13 @@ static int intel_stop_bus(struct sdw_intel *sdw, bool clock_stop) return ret; } - ret = intel_link_power_down(sdw); + ret = sdw_intel_link_power_down(sdw); if (ret) { dev_err(dev, "%s: Link power down failed: %d\n", __func__, ret); return ret; } - intel_shim_wake(sdw, wake_enable); + sdw_intel_shim_wake(sdw, wake_enable); return 0; } From patchwork Tue Mar 14 01:54:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 69250 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1519166wrd; Mon, 13 Mar 2023 19:18:39 -0700 (PDT) X-Google-Smtp-Source: AK7set/yLT9qKC61uqazK2bFvceL7b5w/rvJUNdCOrjeXo3oyflhW240UP9TiKdRurpctWn8AJxn X-Received: by 2002:a17:903:1d2:b0:19c:d97f:5d1a with SMTP id e18-20020a17090301d200b0019cd97f5d1amr46885575plh.55.1678760319172; Mon, 13 Mar 2023 19:18:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678760319; cv=none; d=google.com; s=arc-20160816; b=top702GyYuNgxMdk/yhW9/1RtZYhbLzrre3onqXzaD86Tn56zOWXrn0MRbDOEOTf2v izU9XdnJ1m2/xvePlR1DY9tGzHvIk79RfIgI/C7k8u9VRa5obbCwuiIkvM39SpRf8317 P5P2NqILRK059ISv1gDmVol7Pw5Q7Sp1IHC0Uijcd2bM4oZDOGJTy9IYnQ37AQp7XGz1 kWhmmC1WlFGiJh4sk21uDtIr4U1ytnICmX1o5Uck9hYfn2wdOiq56BQ4w13ceY8jZcxY aRnJw0qkxjBfNSIJyskNJxsLPGms6RQTUm6wPDolQztEA5c+FUD8TDB2VXlZzMCN1Ymm YDpg== 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=WPI8qMzlJVWGOjMucWER1qD2mGGU6QqA5CuKcjvGrLE=; b=YgDyl4jsGBYaxobBLIn+8NciAW6GFAItGTMo129ZEMjD2KA2nvAA2CbJ5snFZ1/wWI 6DnRf7gj6J9/1kOU1vhTYbWIBRCwHigFTP54IGmHr97uuK+W/27qbncwkR2gzeHMaBFN o3W97sQ9dWxez3ar/YcStcMuPCmd7LNax3PFTuEIwCuHr01tphtnkLRxw6wSaYwwsk2+ K7Xob5kB57dNLO93esTGDqtBcmZDit2AQNbLX19tmVGRqBRu/uByfMpwkj3yp+jjP61u daP2bXwaLnb/fhz7N9fd/foUgVstOww06AErJCT5m/u8GNl+iHvO4EgPk/mn755Qva8E vqgg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="Q/yhQcy8"; 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 n12-20020a1709026a8c00b0019f2506251dsi1194402plk.190.2023.03.13.19.18.23; Mon, 13 Mar 2023 19:18:39 -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="Q/yhQcy8"; 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 S230282AbjCNBle (ORCPT + 99 others); Mon, 13 Mar 2023 21:41:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33584 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229573AbjCNBl1 (ORCPT ); Mon, 13 Mar 2023 21:41:27 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E41CD7431C for ; Mon, 13 Mar 2023 18:41:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678758085; x=1710294085; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Vepzt9Zc2Bh5rbiChvEscf+RR1gwoyN+wIZaDpk0cM4=; b=Q/yhQcy8jZK49IWmUjBE6XzuVENgLZMHfkGRRmkItu/3rQ5stH8tglwM YAPSyffPduxQIkcpVSXp03rUC8S8vaCst50qnZyMSVQIJMs4Dbdydvyhj MzsluVOw6H7dh+RauoWLt0sV+QLacrxNcUA1MzYA9rWOZo/o1CtfAqtCs 03Rc4yOtolcR17e7GyFdZZ3LKJVr/aPx0TTcIio3YjfU9YEGpV2V1NHJK qETm1Q/1m5gwoEHiyHU81PXrdT+P9BoxGFohoVNyQz52kU95GPA7rGXal wqLTtilLVwoJxGV9v4TPI1QuTgjs+z1hvFvBI2WyREr/cO50PphpL19cE A==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="316949265" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="316949265" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="711327459" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="711327459" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:20 -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 08/16] soundwire: intel: move bus common sequences to different file Date: Tue, 14 Mar 2023 09:54:02 +0800 Message-Id: <20230314015410.487311-9-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> References: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED 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?1760307780357433199?= X-GMAIL-MSGID: =?utf-8?q?1760307780357433199?= From: Pierre-Louis Bossart Now that the bus start/stop/clock_stop sequences use the ops, we can move them to a different file to reuse them. Note that we could in theory remove the abstraction for all those sequences and directly call the functions in intel_auxdevice.c. To allow for more flexibility and have means to special-case new platforms, we decided to keep the abstraction. If in time it becomes clear there is no benefit the abstraction will be simplified. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Signed-off-by: Bard Liao --- drivers/soundwire/Makefile | 3 +- drivers/soundwire/intel.c | 199 ------------------------- drivers/soundwire/intel.h | 7 + drivers/soundwire/intel_bus_common.c | 210 +++++++++++++++++++++++++++ 4 files changed, 219 insertions(+), 200 deletions(-) create mode 100644 drivers/soundwire/intel_bus_common.c diff --git a/drivers/soundwire/Makefile b/drivers/soundwire/Makefile index ca97414ada70..8038e840ac5b 100644 --- a/drivers/soundwire/Makefile +++ b/drivers/soundwire/Makefile @@ -20,7 +20,8 @@ soundwire-cadence-y := cadence_master.o obj-$(CONFIG_SOUNDWIRE_CADENCE) += soundwire-cadence.o #Intel driver -soundwire-intel-y := intel.o intel_auxdevice.o intel_init.o dmi-quirks.o +soundwire-intel-y := intel.o intel_auxdevice.o intel_init.o dmi-quirks.o \ + intel_bus_common.o obj-$(CONFIG_SOUNDWIRE_INTEL) += soundwire-intel.o #Qualcomm driver diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c index 8395a20e5739..77d698908595 100644 --- a/drivers/soundwire/intel.c +++ b/drivers/soundwire/intel.c @@ -1122,205 +1122,6 @@ static int intel_register_dai(struct sdw_intel *sdw) dais, num_dai); } -static int intel_start_bus(struct sdw_intel *sdw) -{ - struct device *dev = sdw->cdns.dev; - struct sdw_cdns *cdns = &sdw->cdns; - struct sdw_bus *bus = &cdns->bus; - int ret; - - ret = sdw_cdns_enable_interrupt(cdns, true); - if (ret < 0) { - dev_err(dev, "%s: cannot enable interrupts: %d\n", __func__, ret); - return ret; - } - - /* - * follow recommended programming flows to avoid timeouts when - * gsync is enabled - */ - if (bus->multi_link) - sdw_intel_sync_arm(sdw); - - ret = sdw_cdns_init(cdns); - if (ret < 0) { - dev_err(dev, "%s: unable to initialize Cadence IP: %d\n", __func__, ret); - goto err_interrupt; - } - - ret = sdw_cdns_exit_reset(cdns); - if (ret < 0) { - dev_err(dev, "%s: unable to exit bus reset sequence: %d\n", __func__, ret); - goto err_interrupt; - } - - if (bus->multi_link) { - ret = sdw_intel_sync_go(sdw); - if (ret < 0) { - dev_err(dev, "%s: sync go failed: %d\n", __func__, ret); - goto err_interrupt; - } - } - sdw_cdns_check_self_clearing_bits(cdns, __func__, - true, INTEL_MASTER_RESET_ITERATIONS); - - return 0; - -err_interrupt: - sdw_cdns_enable_interrupt(cdns, false); - return ret; -} - -static int intel_start_bus_after_reset(struct sdw_intel *sdw) -{ - struct device *dev = sdw->cdns.dev; - struct sdw_cdns *cdns = &sdw->cdns; - struct sdw_bus *bus = &cdns->bus; - bool clock_stop0; - int status; - int ret; - - /* - * An exception condition occurs for the CLK_STOP_BUS_RESET - * case if one or more masters remain active. In this condition, - * all the masters are powered on for they are in the same power - * domain. Master can preserve its context for clock stop0, so - * there is no need to clear slave status and reset bus. - */ - clock_stop0 = sdw_cdns_is_clock_stop(&sdw->cdns); - - if (!clock_stop0) { - - /* - * make sure all Slaves are tagged as UNATTACHED and - * provide reason for reinitialization - */ - - status = SDW_UNATTACH_REQUEST_MASTER_RESET; - sdw_clear_slave_status(bus, status); - - ret = sdw_cdns_enable_interrupt(cdns, true); - if (ret < 0) { - dev_err(dev, "cannot enable interrupts during resume\n"); - return ret; - } - - /* - * follow recommended programming flows to avoid - * timeouts when gsync is enabled - */ - if (bus->multi_link) - sdw_intel_sync_arm(sdw); - - /* - * Re-initialize the IP since it was powered-off - */ - sdw_cdns_init(&sdw->cdns); - - } else { - ret = sdw_cdns_enable_interrupt(cdns, true); - if (ret < 0) { - dev_err(dev, "cannot enable interrupts during resume\n"); - return ret; - } - } - - ret = sdw_cdns_clock_restart(cdns, !clock_stop0); - if (ret < 0) { - dev_err(dev, "unable to restart clock during resume\n"); - goto err_interrupt; - } - - if (!clock_stop0) { - ret = sdw_cdns_exit_reset(cdns); - if (ret < 0) { - dev_err(dev, "unable to exit bus reset sequence during resume\n"); - goto err_interrupt; - } - - if (bus->multi_link) { - ret = sdw_intel_sync_go(sdw); - if (ret < 0) { - dev_err(sdw->cdns.dev, "sync go failed during resume\n"); - goto err_interrupt; - } - } - } - sdw_cdns_check_self_clearing_bits(cdns, __func__, true, INTEL_MASTER_RESET_ITERATIONS); - - return 0; - -err_interrupt: - sdw_cdns_enable_interrupt(cdns, false); - return ret; -} - -static void intel_check_clock_stop(struct sdw_intel *sdw) -{ - struct device *dev = sdw->cdns.dev; - bool clock_stop0; - - clock_stop0 = sdw_cdns_is_clock_stop(&sdw->cdns); - if (!clock_stop0) - dev_err(dev, "%s: invalid configuration, clock was not stopped\n", __func__); -} - -static int intel_start_bus_after_clock_stop(struct sdw_intel *sdw) -{ - struct device *dev = sdw->cdns.dev; - struct sdw_cdns *cdns = &sdw->cdns; - int ret; - - ret = sdw_cdns_enable_interrupt(cdns, true); - if (ret < 0) { - dev_err(dev, "%s: cannot enable interrupts: %d\n", __func__, ret); - return ret; - } - - ret = sdw_cdns_clock_restart(cdns, false); - if (ret < 0) { - dev_err(dev, "%s: unable to restart clock: %d\n", __func__, ret); - sdw_cdns_enable_interrupt(cdns, false); - return ret; - } - - sdw_cdns_check_self_clearing_bits(cdns, "intel_resume_runtime no_quirks", - true, INTEL_MASTER_RESET_ITERATIONS); - - return 0; -} - -static int intel_stop_bus(struct sdw_intel *sdw, bool clock_stop) -{ - struct device *dev = sdw->cdns.dev; - struct sdw_cdns *cdns = &sdw->cdns; - bool wake_enable = false; - int ret; - - if (clock_stop) { - ret = sdw_cdns_clock_stop(cdns, true); - if (ret < 0) - dev_err(dev, "%s: cannot stop clock: %d\n", __func__, ret); - else - wake_enable = true; - } - - ret = sdw_cdns_enable_interrupt(cdns, false); - if (ret < 0) { - dev_err(dev, "%s: cannot disable interrupts: %d\n", __func__, ret); - return ret; - } - - ret = sdw_intel_link_power_down(sdw); - if (ret) { - dev_err(dev, "%s: Link power down failed: %d\n", __func__, ret); - return ret; - } - - sdw_intel_shim_wake(sdw, wake_enable); - - return 0; -} const struct sdw_intel_hw_ops sdw_intel_cnl_hw_ops = { .debugfs_init = intel_debugfs_init, diff --git a/drivers/soundwire/intel.h b/drivers/soundwire/intel.h index 28b21a92e28b..abd1a500defa 100644 --- a/drivers/soundwire/intel.h +++ b/drivers/soundwire/intel.h @@ -187,4 +187,11 @@ static inline int sdw_intel_sync_go(struct sdw_intel *sdw) return -ENOTSUPP; } +/* common bus management */ +int intel_start_bus(struct sdw_intel *sdw); +int intel_start_bus_after_reset(struct sdw_intel *sdw); +void intel_check_clock_stop(struct sdw_intel *sdw); +int intel_start_bus_after_clock_stop(struct sdw_intel *sdw); +int intel_stop_bus(struct sdw_intel *sdw, bool clock_stop); + #endif /* __SDW_INTEL_LOCAL_H */ diff --git a/drivers/soundwire/intel_bus_common.c b/drivers/soundwire/intel_bus_common.c new file mode 100644 index 000000000000..9a06ab58018b --- /dev/null +++ b/drivers/soundwire/intel_bus_common.c @@ -0,0 +1,210 @@ +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) +// Copyright(c) 2015-2023 Intel Corporation. All rights reserved. + +#include +#include +#include +#include +#include "cadence_master.h" +#include "bus.h" +#include "intel.h" + +int intel_start_bus(struct sdw_intel *sdw) +{ + struct device *dev = sdw->cdns.dev; + struct sdw_cdns *cdns = &sdw->cdns; + struct sdw_bus *bus = &cdns->bus; + int ret; + + ret = sdw_cdns_enable_interrupt(cdns, true); + if (ret < 0) { + dev_err(dev, "%s: cannot enable interrupts: %d\n", __func__, ret); + return ret; + } + + /* + * follow recommended programming flows to avoid timeouts when + * gsync is enabled + */ + if (bus->multi_link) + sdw_intel_sync_arm(sdw); + + ret = sdw_cdns_init(cdns); + if (ret < 0) { + dev_err(dev, "%s: unable to initialize Cadence IP: %d\n", __func__, ret); + goto err_interrupt; + } + + ret = sdw_cdns_exit_reset(cdns); + if (ret < 0) { + dev_err(dev, "%s: unable to exit bus reset sequence: %d\n", __func__, ret); + goto err_interrupt; + } + + if (bus->multi_link) { + ret = sdw_intel_sync_go(sdw); + if (ret < 0) { + dev_err(dev, "%s: sync go failed: %d\n", __func__, ret); + goto err_interrupt; + } + } + sdw_cdns_check_self_clearing_bits(cdns, __func__, + true, INTEL_MASTER_RESET_ITERATIONS); + + return 0; + +err_interrupt: + sdw_cdns_enable_interrupt(cdns, false); + return ret; +} + +int intel_start_bus_after_reset(struct sdw_intel *sdw) +{ + struct device *dev = sdw->cdns.dev; + struct sdw_cdns *cdns = &sdw->cdns; + struct sdw_bus *bus = &cdns->bus; + bool clock_stop0; + int status; + int ret; + + /* + * An exception condition occurs for the CLK_STOP_BUS_RESET + * case if one or more masters remain active. In this condition, + * all the masters are powered on for they are in the same power + * domain. Master can preserve its context for clock stop0, so + * there is no need to clear slave status and reset bus. + */ + clock_stop0 = sdw_cdns_is_clock_stop(&sdw->cdns); + + if (!clock_stop0) { + + /* + * make sure all Slaves are tagged as UNATTACHED and + * provide reason for reinitialization + */ + + status = SDW_UNATTACH_REQUEST_MASTER_RESET; + sdw_clear_slave_status(bus, status); + + ret = sdw_cdns_enable_interrupt(cdns, true); + if (ret < 0) { + dev_err(dev, "cannot enable interrupts during resume\n"); + return ret; + } + + /* + * follow recommended programming flows to avoid + * timeouts when gsync is enabled + */ + if (bus->multi_link) + sdw_intel_sync_arm(sdw); + + /* + * Re-initialize the IP since it was powered-off + */ + sdw_cdns_init(&sdw->cdns); + + } else { + ret = sdw_cdns_enable_interrupt(cdns, true); + if (ret < 0) { + dev_err(dev, "cannot enable interrupts during resume\n"); + return ret; + } + } + + ret = sdw_cdns_clock_restart(cdns, !clock_stop0); + if (ret < 0) { + dev_err(dev, "unable to restart clock during resume\n"); + goto err_interrupt; + } + + if (!clock_stop0) { + ret = sdw_cdns_exit_reset(cdns); + if (ret < 0) { + dev_err(dev, "unable to exit bus reset sequence during resume\n"); + goto err_interrupt; + } + + if (bus->multi_link) { + ret = sdw_intel_sync_go(sdw); + if (ret < 0) { + dev_err(sdw->cdns.dev, "sync go failed during resume\n"); + goto err_interrupt; + } + } + } + sdw_cdns_check_self_clearing_bits(cdns, __func__, true, INTEL_MASTER_RESET_ITERATIONS); + + return 0; + +err_interrupt: + sdw_cdns_enable_interrupt(cdns, false); + return ret; +} + +void intel_check_clock_stop(struct sdw_intel *sdw) +{ + struct device *dev = sdw->cdns.dev; + bool clock_stop0; + + clock_stop0 = sdw_cdns_is_clock_stop(&sdw->cdns); + if (!clock_stop0) + dev_err(dev, "%s: invalid configuration, clock was not stopped\n", __func__); +} + +int intel_start_bus_after_clock_stop(struct sdw_intel *sdw) +{ + struct device *dev = sdw->cdns.dev; + struct sdw_cdns *cdns = &sdw->cdns; + int ret; + + ret = sdw_cdns_enable_interrupt(cdns, true); + if (ret < 0) { + dev_err(dev, "%s: cannot enable interrupts: %d\n", __func__, ret); + return ret; + } + + ret = sdw_cdns_clock_restart(cdns, false); + if (ret < 0) { + dev_err(dev, "%s: unable to restart clock: %d\n", __func__, ret); + sdw_cdns_enable_interrupt(cdns, false); + return ret; + } + + sdw_cdns_check_self_clearing_bits(cdns, "intel_resume_runtime no_quirks", + true, INTEL_MASTER_RESET_ITERATIONS); + + return 0; +} + +int intel_stop_bus(struct sdw_intel *sdw, bool clock_stop) +{ + struct device *dev = sdw->cdns.dev; + struct sdw_cdns *cdns = &sdw->cdns; + bool wake_enable = false; + int ret; + + if (clock_stop) { + ret = sdw_cdns_clock_stop(cdns, true); + if (ret < 0) + dev_err(dev, "%s: cannot stop clock: %d\n", __func__, ret); + else + wake_enable = true; + } + + ret = sdw_cdns_enable_interrupt(cdns, false); + if (ret < 0) { + dev_err(dev, "%s: cannot disable interrupts: %d\n", __func__, ret); + return ret; + } + + ret = sdw_intel_link_power_down(sdw); + if (ret) { + dev_err(dev, "%s: Link power down failed: %d\n", __func__, ret); + return ret; + } + + sdw_intel_shim_wake(sdw, wake_enable); + + return 0; +} From patchwork Tue Mar 14 01:54:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 69237 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1513793wrd; Mon, 13 Mar 2023 19:01:56 -0700 (PDT) X-Google-Smtp-Source: AK7set/gsDlVZyHToBM56wZba0idxNBs3Y8H97w+qYJxg5yMjsy5pfyxM4Vbn0tRodkP1H/xnj8Z X-Received: by 2002:a05:6102:5113:b0:421:c588:4d68 with SMTP id bm19-20020a056102511300b00421c5884d68mr22481038vsb.19.1678759315734; Mon, 13 Mar 2023 19:01:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678759315; cv=none; d=google.com; s=arc-20160816; b=fxTyVs5H9zDaNnwhOJnL/BTeUkFOUgA7d5s7+CyWxcc8o1WEYqbhTUc6TobHLQ4job tuRzuf0V7IxsGdSjAnq3emIrX5c2LuImOtw4MMSnY2smwqTchqtlmkPA62bnR8um3SDE jQqfuXRKgafAU3fTXTXdV8VuMemHWBGfwdIpblt+k+xX75CSOyeeiQhG+IR310X9u0+G Tmq+4TAFEAgGy7+snAMWOzpoGyWkyrAjzjB8MYPuphgeO8sUgEP/p2KUqedQGCLTAAPL eMiiR0gCuMpJ/RtXfqdGbIFYlPO7r0xM86Q1aj2md1lc9kOl/XUACxR4azzNTd6WEL76 aLyw== 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=nqnJ7HU+JLUuC9Npux7MMbKNAQvejHV/1AEZKu7uoXo=; b=wCabbejUwmbheU/6B/FP5N5zZ3SLBdFSG8kgNaXxWb9UkhDF6Yo9DicmlUKL3WG6qf TrMdH/SC9epryiRbP80GB+H/QcOSbKgu0jB5dWgjby5xL5043URWG/n+w5H41glNNLKm lDhn9IDdMB6pGHWvlW+MBTZB6wPWGLvkUjxCP7OidNR3BteaDtmVouIwW+1xr4PItiO+ 5ZVVxhd6ghY37fUbgFplQrOd2cd5EXxf2QfZt0lOHpeDYhcQZoQo6zp8VMlGwyhDFlzs 6o4zZeXSXDsM5uWaSrmLvAYWPyqy9yHNF8oaxdpmDApvwS3SuhguwwAL+RY4CrzPW6I8 eD/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=T1WYL4lo; 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 e13-20020a056102354d00b00425a26e9ec3si575048vss.121.2023.03.13.19.01.39; Mon, 13 Mar 2023 19:01:55 -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=T1WYL4lo; 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 S230305AbjCNBlh (ORCPT + 99 others); Mon, 13 Mar 2023 21:41:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33704 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230220AbjCNBlb (ORCPT ); Mon, 13 Mar 2023 21:41:31 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1BAEB75840 for ; Mon, 13 Mar 2023 18:41:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678758087; x=1710294087; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=pL6YG6BMqzUVh4Kle1zgXWisMHBEcSc8c1jkWgAQStg=; b=T1WYL4loQLCeJfAZpDjI+MqegirUC2zt5YHyTaxzFlL3kuWpRUVU+KK9 2JTfTkZSUj+2QTULXtuqeju/ddYkZN64njUgTRF6GCt4b2OAaGI1Z31DX tryJSIMZpoLGDefsGiyLp6rYaYf/9hJSwVAftFozKroG2o1CxuRdu5wDx U3zRdkIjOq2nGPBD/Nndw84vukKd8vU6mIYVXbGZa0x3MS4+xT9Y+tMIq W140jck7tmH9Vfesm2s60AQN80FhZLU13bXr3IAsAa1nieSZIJEnOVlUE mF9cNZBMw7DaT6vAO45ynhl5qo7GWkCw9/VTbcIvHAopwCEpD395BVMIN A==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="316949276" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="316949276" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="711327475" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="711327475" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:22 -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 09/16] soundwire: intel: add abstraction for cmdsync check Date: Tue, 14 Mar 2023 09:54:03 +0800 Message-Id: <20230314015410.487311-10-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> References: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED 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?1760306728367993346?= X-GMAIL-MSGID: =?utf-8?q?1760306728367993346?= From: Pierre-Louis Bossart If we add one more callback, we can have common bank switch sequences between old and new hardware: the only difference is where the CMDSYNC register is located. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Signed-off-by: Bard Liao --- drivers/soundwire/intel.c | 24 +++++++++++++----------- drivers/soundwire/intel.h | 7 +++++++ include/linux/soundwire/sdw_intel.h | 3 +++ 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c index 77d698908595..1131ecb4b5e7 100644 --- a/drivers/soundwire/intel.c +++ b/drivers/soundwire/intel.c @@ -325,6 +325,15 @@ static void intel_shim_wake(struct sdw_intel *sdw, bool wake_enable) mutex_unlock(sdw->link_res->shim_lock); } +static bool intel_check_cmdsync_unlocked(struct sdw_intel *sdw) +{ + void __iomem *shim = sdw->link_res->shim; + int sync_reg; + + sync_reg = intel_readl(shim, SDW_SHIM_SYNC); + return !!(sync_reg & SDW_SHIM_SYNC_CMDSYNC_MASK); +} + static int intel_link_power_up(struct sdw_intel *sdw) { unsigned int link_id = sdw->instance; @@ -695,8 +704,7 @@ static int intel_post_bank_switch(struct sdw_intel *sdw) { struct sdw_cdns *cdns = &sdw->cdns; struct sdw_bus *bus = &cdns->bus; - void __iomem *shim = sdw->link_res->shim; - int sync_reg, ret; + int ret = 0; /* Write to register only for multi-link */ if (!bus->multi_link) @@ -704,9 +712,6 @@ static int intel_post_bank_switch(struct sdw_intel *sdw) mutex_lock(sdw->link_res->shim_lock); - /* Read SYNC register */ - sync_reg = intel_readl(shim, SDW_SHIM_SYNC); - /* * post_bank_switch() ops is called from the bus in loop for * all the Masters in the steam with the expectation that @@ -715,13 +720,9 @@ static int intel_post_bank_switch(struct sdw_intel *sdw) * * So, set the SYNCGO bit only if CMDSYNC bit is set for any Master. */ - if (!(sync_reg & SDW_SHIM_SYNC_CMDSYNC_MASK)) { - ret = 0; - goto unlock; - } + if (sdw_intel_sync_check_cmdsync_unlocked(sdw)) + ret = sdw_intel_sync_go_unlocked(sdw); - ret = sdw_intel_sync_go_unlocked(sdw); -unlock: mutex_unlock(sdw->link_res->shim_lock); if (ret < 0) @@ -1147,6 +1148,7 @@ const struct sdw_intel_hw_ops sdw_intel_cnl_hw_ops = { .sync_arm = intel_shim_sync_arm, .sync_go_unlocked = intel_shim_sync_go_unlocked, .sync_go = intel_shim_sync_go, + .sync_check_cmdsync_unlocked = intel_check_cmdsync_unlocked, }; EXPORT_SYMBOL_NS(sdw_intel_cnl_hw_ops, SOUNDWIRE_INTEL); diff --git a/drivers/soundwire/intel.h b/drivers/soundwire/intel.h index abd1a500defa..7a69cf755954 100644 --- a/drivers/soundwire/intel.h +++ b/drivers/soundwire/intel.h @@ -187,6 +187,13 @@ static inline int sdw_intel_sync_go(struct sdw_intel *sdw) return -ENOTSUPP; } +static inline bool sdw_intel_sync_check_cmdsync_unlocked(struct sdw_intel *sdw) +{ + if (SDW_INTEL_CHECK_OPS(sdw, sync_check_cmdsync_unlocked)) + return SDW_INTEL_OPS(sdw, sync_check_cmdsync_unlocked)(sdw); + return false; +} + /* common bus management */ int intel_start_bus(struct sdw_intel *sdw); int intel_start_bus_after_reset(struct sdw_intel *sdw); diff --git a/include/linux/soundwire/sdw_intel.h b/include/linux/soundwire/sdw_intel.h index 06fa30929ebd..207701aeeb47 100644 --- a/include/linux/soundwire/sdw_intel.h +++ b/include/linux/soundwire/sdw_intel.h @@ -313,6 +313,8 @@ struct sdw_intel; * @sync_go_unlocked: helper for multi-link synchronization - * shim_lock is assumed to be locked at higher level * @sync_go: helper for multi-link synchronization + * @sync_check_cmdsync_unlocked: helper for multi-link synchronization + * and bank switch - shim_lock is assumed to be locked at higher level */ struct sdw_intel_hw_ops { void (*debugfs_init)(struct sdw_intel *sdw); @@ -338,6 +340,7 @@ struct sdw_intel_hw_ops { void (*sync_arm)(struct sdw_intel *sdw); int (*sync_go_unlocked)(struct sdw_intel *sdw); int (*sync_go)(struct sdw_intel *sdw); + bool (*sync_check_cmdsync_unlocked)(struct sdw_intel *sdw); }; extern const struct sdw_intel_hw_ops sdw_intel_cnl_hw_ops; From patchwork Tue Mar 14 01:54:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 69249 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1517264wrd; Mon, 13 Mar 2023 19:12:41 -0700 (PDT) X-Google-Smtp-Source: AK7set9gSsbOwYNeozu7bCZNsSHv2QSmdynzvbz31vx1QCV7l0CRfSISy5DqTV+Ho9CS9ZvMZN5c X-Received: by 2002:a05:6a20:6a1b:b0:cd:2d12:8176 with SMTP id p27-20020a056a206a1b00b000cd2d128176mr36280573pzk.19.1678759961063; Mon, 13 Mar 2023 19:12:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678759961; cv=none; d=google.com; s=arc-20160816; b=azCLTwwPMX5KVgKYqhhLWZLEXfZxw/3V8aiMA2LgrIoyJR0p09COh9lfAHq+QqsQgJ uqeBrKoqIBkyjT9zeipoMup0C1t3YrXTABLQUXyuos3BSx+B1ZH5uDPJeJpQYBjg7nP8 8caygGEaq8N+oOLIQbgT5xs1TWC3+fWTWFKG6lry5wv02QWx9m2qh26ATyAx551+62sl ousByAqo3TFCk5GALHQkz8WKsZzvE7ODMQtCRXkAPijMyxSsFKvLJRBRjRb1krnEfHeY jTOlXahrPALzO2q9h+0e8K0+Qd7VHg3F+5rUzHDuHPj4BVWSp2PI1aSqjUD7a7EPBkl7 XSgA== 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=8Y71c4HGbc7ZpRDc/K0Ubquzh9X1esC4kZzIfJvKb1c=; b=VhR+O4dLxKGUDwgxAMzmB5+XEB64e8cRWPo/RVqmbVWZ14ZFabp+cDpx1N6nsq4ENa fBMly770XmIhBiTwNMQrMEDvakLtyKzdY4/YnNqW6hM6Z23rpfEm5bLex9yUDtR2/SyX nBXl51rEC+I1uPUGg7kFkmb5Agkot5k2WtaFuLt+dSBEUch83bwNFdHxt456rJPtyAT5 STWqkVcVITOSbVu3HCF0gre2rjIyKU7QNDdHIUtvWlCIKtm0lgTcZpzPb1IFc+cPui2x 9FyEsT4pnhmkS78WWn7HLFvIpQR3nc5kWzUqXgz9iMRXhc+fNicCTXB22NQEP5ysiLhc gfxA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=bBNXTRfq; 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 h7-20020a631207000000b004ff6eee7176si1082599pgl.261.2023.03.13.19.12.28; Mon, 13 Mar 2023 19:12:41 -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=bBNXTRfq; 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 S230320AbjCNBll (ORCPT + 99 others); Mon, 13 Mar 2023 21:41:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33716 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230274AbjCNBlb (ORCPT ); Mon, 13 Mar 2023 21:41:31 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DC6817A90B for ; Mon, 13 Mar 2023 18:41:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678758087; x=1710294087; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=GNGs5CqhpeSutHJ3ZnJS8u0595Z/RX0QA49udnu9oCc=; b=bBNXTRfqg1+9CMaZsz0sspgQeh3rPL2pnDY5JfuLMMzFwp9YoO+fj3gZ QtAc07u01KENX9F578gbau6G89ag7limvGueILkdaEGOTG7lidM5kITfd no/wy6ZpZ666jGW5gtt1YXRU43NsM/4oXp1EdO+9lvzLHesPiFtBBsBpu g1jy6qWeGwshKerttXDkTMSNUXL5PXGoHjWu62UpmOCX6Fd5JuIwksxfO pPlc8QCikZu9lno4RMMEuIGh/ibly5tmKqxbfMpf9Dew8LZO8gGFdBSTz QoBt9Cs/QZVGPSOINjdLbbZ5JOOIgduwzz+urgvippA9eVB9YqbOWfucy A==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="316949281" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="316949281" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="711327485" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="711327485" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:24 -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 10/16] soundwire: intel: move bank switch routine to common intel_bus_common.c Date: Tue, 14 Mar 2023 09:54:04 +0800 Message-Id: <20230314015410.487311-11-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> References: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED 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?1760307404661197687?= X-GMAIL-MSGID: =?utf-8?q?1760307404661197687?= From: Pierre-Louis Bossart No functionality change, just moving the routines to a common file so that they can be used for new hardware. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Signed-off-by: Bard Liao --- drivers/soundwire/intel.c | 49 ---------------------------- drivers/soundwire/intel.h | 4 +++ drivers/soundwire/intel_bus_common.c | 49 ++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+), 49 deletions(-) diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c index 1131ecb4b5e7..046c67a2a39b 100644 --- a/drivers/soundwire/intel.c +++ b/drivers/soundwire/intel.c @@ -682,55 +682,6 @@ static int intel_free_stream(struct sdw_intel *sdw, return 0; } -/* - * bank switch routines - */ - -static int intel_pre_bank_switch(struct sdw_intel *sdw) -{ - struct sdw_cdns *cdns = &sdw->cdns; - struct sdw_bus *bus = &cdns->bus; - - /* Write to register only for multi-link */ - if (!bus->multi_link) - return 0; - - sdw_intel_sync_arm(sdw); - - return 0; -} - -static int intel_post_bank_switch(struct sdw_intel *sdw) -{ - struct sdw_cdns *cdns = &sdw->cdns; - struct sdw_bus *bus = &cdns->bus; - int ret = 0; - - /* Write to register only for multi-link */ - if (!bus->multi_link) - return 0; - - mutex_lock(sdw->link_res->shim_lock); - - /* - * post_bank_switch() ops is called from the bus in loop for - * all the Masters in the steam with the expectation that - * we trigger the bankswitch for the only first Master in the list - * and do nothing for the other Masters - * - * So, set the SYNCGO bit only if CMDSYNC bit is set for any Master. - */ - if (sdw_intel_sync_check_cmdsync_unlocked(sdw)) - ret = sdw_intel_sync_go_unlocked(sdw); - - mutex_unlock(sdw->link_res->shim_lock); - - if (ret < 0) - dev_err(sdw->cdns.dev, "Post bank switch failed: %d\n", ret); - - return ret; -} - /* * DAI routines */ diff --git a/drivers/soundwire/intel.h b/drivers/soundwire/intel.h index 7a69cf755954..09d479f2c77b 100644 --- a/drivers/soundwire/intel.h +++ b/drivers/soundwire/intel.h @@ -201,4 +201,8 @@ void intel_check_clock_stop(struct sdw_intel *sdw); int intel_start_bus_after_clock_stop(struct sdw_intel *sdw); int intel_stop_bus(struct sdw_intel *sdw, bool clock_stop); +/* common bank switch routines */ +int intel_pre_bank_switch(struct sdw_intel *sdw); +int intel_post_bank_switch(struct sdw_intel *sdw); + #endif /* __SDW_INTEL_LOCAL_H */ diff --git a/drivers/soundwire/intel_bus_common.c b/drivers/soundwire/intel_bus_common.c index 9a06ab58018b..f180e3bea989 100644 --- a/drivers/soundwire/intel_bus_common.c +++ b/drivers/soundwire/intel_bus_common.c @@ -208,3 +208,52 @@ int intel_stop_bus(struct sdw_intel *sdw, bool clock_stop) return 0; } + +/* + * bank switch routines + */ + +int intel_pre_bank_switch(struct sdw_intel *sdw) +{ + struct sdw_cdns *cdns = &sdw->cdns; + struct sdw_bus *bus = &cdns->bus; + + /* Write to register only for multi-link */ + if (!bus->multi_link) + return 0; + + sdw_intel_sync_arm(sdw); + + return 0; +} + +int intel_post_bank_switch(struct sdw_intel *sdw) +{ + struct sdw_cdns *cdns = &sdw->cdns; + struct sdw_bus *bus = &cdns->bus; + int ret = 0; + + /* Write to register only for multi-link */ + if (!bus->multi_link) + return 0; + + mutex_lock(sdw->link_res->shim_lock); + + /* + * post_bank_switch() ops is called from the bus in loop for + * all the Masters in the steam with the expectation that + * we trigger the bankswitch for the only first Master in the list + * and do nothing for the other Masters + * + * So, set the SYNCGO bit only if CMDSYNC bit is set for any Master. + */ + if (sdw_intel_sync_check_cmdsync_unlocked(sdw)) + ret = sdw_intel_sync_go_unlocked(sdw); + + mutex_unlock(sdw->link_res->shim_lock); + + if (ret < 0) + dev_err(sdw->cdns.dev, "Post bank switch failed: %d\n", ret); + + return ret; +} From patchwork Tue Mar 14 01:54:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 69232 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1513603wrd; Mon, 13 Mar 2023 19:01:29 -0700 (PDT) X-Google-Smtp-Source: AK7set8fyFHWAJOAC2sbzG9vDd19E/CbMV0Yd2sLLWviztyvGJmZUGAgkss7HkquRKIsmAtCx1VL X-Received: by 2002:a05:6122:17a9:b0:411:b190:fdef with SMTP id o41-20020a05612217a900b00411b190fdefmr20038101vkf.13.1678759289283; Mon, 13 Mar 2023 19:01:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678759289; cv=none; d=google.com; s=arc-20160816; b=nN1rfaaKDQReD2Vg3GNpTLxo+N2douTJt5yXlsP+s1BBJtnTnVGQ2c8Se0pAkKbNbt D5qJAbIC9jOaq51K09iQPO12VxMhcN8PqfoMP53oOdafgdone4fRj5+B+VMhWGbmJcms YU+WKy3ED2KMtqK1JVaIcuWd28RSCj7ZUB5MEU0GQ6/80jtlmJIGvRXBPuJ8V8LDhY44 jyPoTsUn7Tte3ijpbsxQbcUIKw3SW546Q+OxFszA+NHJy57wiYahELWuAEIZ13wI9Yb+ irU3JejIzqvVTjVn5UkoRNim6/wz5H2dX21FLJlfEvpAuCDJsOdJz2AHSg909Eyy2LAh CQJQ== 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=sY5LPUbcFHhxV18B5YEOwIBEvHrdoKnubAKMlnpC3Yw=; b=ssETaBVjJhuUJw7LhVcpmGWIig1mH3sGqi1yczZI4MeyscsWeFjImXk3R8pZieE2aa PIsOZ/RO+e6ruIAvDfjc1OYqqMjD2uBj19XPA1NtjE453zD+5woukEqsCL7OkSqkSIaj IYKS3VnIE/cLiNAg/B/KjvF4pITHdF5906tADsUrSKWgY3rUpIAW5zoDD29uept0KnjF 4yK3cl5MCmyOxkZbsauPODiZadnLzcXnal6L8Btn12xeUg0AmVfV1GHhHWS4sl/nGUPc gElBTD9vaTT8Dl46Vbut8SRX1S5EtQ1RVPO8oY3jwq6hFwmXF85SJI3YITwHAARuDkIt TkEA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=PZuC4jsk; 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 206-20020a1f01d7000000b0041342205847si694708vkb.254.2023.03.13.19.01.14; Mon, 13 Mar 2023 19:01:29 -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=PZuC4jsk; 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 S230338AbjCNBlo (ORCPT + 99 others); Mon, 13 Mar 2023 21:41:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33720 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230281AbjCNBlb (ORCPT ); Mon, 13 Mar 2023 21:41:31 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0200A7C97D for ; Mon, 13 Mar 2023 18:41:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678758088; x=1710294088; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=az/KB86lRG095DZZ6RuZwSVMJqq3LS8MNxe03npvozo=; b=PZuC4jsk/73D62JxIedVWv5WCuASRZDkdRDxOcvSxzp9NeLYMzp+uMhy vRoaoyrCxKORhzDMkmU8ILpNbfLmmrfhWe1dJEg1bLBOI3S62sjz5j5i+ KX93DoqkMGU90palzH3cnYhxRsX0hkX15+WrBCt6UStDJ9Qmen+ndUijy tp69rRLW49IHIf6vVxLkFeKuUtfNXYzx0ENwgoNck91x3/lhnjH1rIqLP dBqKHePyB6Z1UXC3k7DOhnC/kj/+yX9/H+ZsU7JWAF953WvXGMtzJ1jps gbnwOQmARY8iEphBa7prZ5qlD5pq5p7oj6PTiotZb7RMMi5i9ZLb8cVJo A==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="316949285" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="316949285" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="711327495" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="711327495" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:26 -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 11/16] soundwire: cadence: remove CDNS_MCP_CONFIG_SSPMOD Date: Tue, 14 Mar 2023 09:54:05 +0800 Message-Id: <20230314015410.487311-12-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> References: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED 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?1760306700203211693?= X-GMAIL-MSGID: =?utf-8?q?1760306700203211693?= From: Pierre-Louis Bossart This field is not used, and its definition is not aligned with the hardware specification. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Signed-off-by: Bard Liao --- drivers/soundwire/cadence_master.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/soundwire/cadence_master.c b/drivers/soundwire/cadence_master.c index e835dabb516c..4f34fc72dbd5 100644 --- a/drivers/soundwire/cadence_master.c +++ b/drivers/soundwire/cadence_master.c @@ -33,7 +33,6 @@ MODULE_PARM_DESC(cdns_mcp_int_mask, "Cadence MCP IntMask"); #define CDNS_MCP_CONFIG_MMASTER BIT(7) #define CDNS_MCP_CONFIG_BUS_REL BIT(6) #define CDNS_MCP_CONFIG_SNIFFER BIT(5) -#define CDNS_MCP_CONFIG_SSPMOD BIT(4) #define CDNS_MCP_CONFIG_CMD BIT(3) #define CDNS_MCP_CONFIG_OP GENMASK(2, 0) #define CDNS_MCP_CONFIG_OP_NORMAL 0 From patchwork Tue Mar 14 01:54:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 69241 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1514168wrd; Mon, 13 Mar 2023 19:02:58 -0700 (PDT) X-Google-Smtp-Source: AK7set/Lc9vMJnz6w7k2+xYvd1F6n/3XwmQBXQBe2xo6FHclt/JyhXcr8Z7On/2lRauwg+CxYss0 X-Received: by 2002:a05:6102:b07:b0:3fe:21e2:b6ad with SMTP id b7-20020a0561020b0700b003fe21e2b6admr11662359vst.28.1678759378416; Mon, 13 Mar 2023 19:02:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678759378; cv=none; d=google.com; s=arc-20160816; b=un6QIPH2cK3i/bpNnWZczQopHpCrPZ7QW6bUFz5Z80DHVQfEOL69ufMkKJIGFHQ4YO shA2QzaWyvqAaIB2Fnwmo3vAk0pmfGn5rBTDzc/ed8ffYcEGU3tN46jZCzzVkM+VzX5X sAOj4XROuIf2mvaZkdlML4sX/Ph4VCQi+v670ckzN4vFwCFdGamAS0vJsXbHaD4BBMd7 U7iiMy1QsJkqSSPimWoa91KxsVOtZ6unE/+KeEjskAKr19tLEg9XNvNqb+ngxY7dGnxI qRX+OrSNyL10kyBBFhFLtgKWBECZWYWnVzPAJowOLrFzOJUFQ2g3fD/bHhpslWQL3TXK ER+A== 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=xp2IIPJFL5RjK4hph0naxdTVTCFi/a8/UMSd39KIqZw=; b=nJ92/J9Szqd59fiJVi8oeUC+A/eD2ZWmbOrvVIwCjBjc0t6af0gBUuCyNlI2ej88+J FntORfJij376aNUn3sIvYWG+mZZcpIpR5r7wgFgR7G6m+qS4FwIpH7ad3/IS9+0EhpSF jfs2s6Nc+RYt9pRGRNxTDr0+32jqrPD0ndL3WhSOfLit4jjJ8HpjBXXDbGZkvPr21zni Om6OdlmUL9H1e2weRcvegBhTF16Gt5eGKWmLvQ7ANbhhHSk2CxwQz1WIrS59JBxk6zg+ 2Vys4aYFjp55/Lve9Ms8lnnBnNqtWjXGgju2LlazefzenPkDSNINZG+ZvNhnCGvAE7jz 2HGQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=h5gH+6+D; 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 p25-20020a67fc59000000b0041f51e33945si605295vsq.201.2023.03.13.19.02.43; Mon, 13 Mar 2023 19:02:58 -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=h5gH+6+D; 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 S230346AbjCNBlq (ORCPT + 99 others); Mon, 13 Mar 2023 21:41:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33704 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230287AbjCNBlc (ORCPT ); Mon, 13 Mar 2023 21:41:32 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D290E7D0BE for ; Mon, 13 Mar 2023 18:41:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678758090; x=1710294090; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=NA2gNysK23O2yyiWZ9WhH+HonzPAPVODm9Os9DBHBa4=; b=h5gH+6+Df/g2dFh9FvFSxbKXtiiu6y0srHw6TpGvw1IbUpktUaN+rEXG D7YiqrN315ciwDfH/xGGtxAgyqrf++fqh3yKL5zNw9eWZqoianqauDmXJ YkU5GRmOHPBF1hdLV9haFoAp+CWVe8/OhEskg8XLyT8r+ZqZbMK9WiEc1 sdWDv4/nxSTsKG0w8K6Tk1g7i4UjC+gmm3GPNZHgKk4U48eCec/s9ypkZ ZkeARtu/Fw2+GBfA4HkHISnxHf/J/8eG1qrPQkQ4Y2flzkGMz2l8FetdM 9rJT9sw+VowfhjzS1e4d8Cu2GKh9OyIa+MX9QzsMipfNv28eCFDyFUDSh Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="316949293" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="316949293" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:30 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="711327521" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="711327521" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:28 -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 12/16] soundwire: cadence: add helpers to access IP_MCP registers Date: Tue, 14 Mar 2023 09:54:06 +0800 Message-Id: <20230314015410.487311-13-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> References: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED 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?1760306793471440116?= X-GMAIL-MSGID: =?utf-8?q?1760306793471440116?= From: Pierre-Louis Bossart The latest Cadence IP splits some of the existing registers into two, separated by a fixed offset. The bitfields themselves remain at the same position, so we can use new helpers to dynamically add the fixed offset. For example, the existing MCP_CONFIG is now split in two with MCP_CONFIG and IP_MCP_CONFIG (the naming comes directly from the design document). This patch adds helpers to access registers with the IP_ prefix. The addition of the 'ip' prefix for helpers, registers and bitfields is intentional to help reviewers spot any mistake. For existing solutions, the offset is exactly zero so there's no functional change - the MCP_CONFIG and IP_MCP_CONFIG are aliased to the same address. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Signed-off-by: Bard Liao --- drivers/soundwire/cadence_master.c | 16 ++++++++++++++++ drivers/soundwire/cadence_master.h | 3 +++ 2 files changed, 19 insertions(+) diff --git a/drivers/soundwire/cadence_master.c b/drivers/soundwire/cadence_master.c index 4f34fc72dbd5..4461a7fa4124 100644 --- a/drivers/soundwire/cadence_master.c +++ b/drivers/soundwire/cadence_master.c @@ -205,6 +205,16 @@ static inline void cdns_writel(struct sdw_cdns *cdns, int offset, u32 value) writel(value, cdns->registers + offset); } +static inline u32 cdns_ip_readl(struct sdw_cdns *cdns, int offset) +{ + return cdns_readl(cdns, cdns->ip_offset + offset); +} + +static inline void cdns_ip_writel(struct sdw_cdns *cdns, int offset, u32 value) +{ + return cdns_writel(cdns, cdns->ip_offset + offset, value); +} + static inline void cdns_updatel(struct sdw_cdns *cdns, int offset, u32 mask, u32 val) { @@ -215,6 +225,12 @@ static inline void cdns_updatel(struct sdw_cdns *cdns, cdns_writel(cdns, offset, tmp); } +static inline void cdns_ip_updatel(struct sdw_cdns *cdns, + int offset, u32 mask, u32 val) +{ + cdns_updatel(cdns, cdns->ip_offset + offset, mask, val); +} + static int cdns_set_wait(struct sdw_cdns *cdns, int offset, u32 mask, u32 value) { int timeout = 10; diff --git a/drivers/soundwire/cadence_master.h b/drivers/soundwire/cadence_master.h index dec0b4f993c1..b653734085d9 100644 --- a/drivers/soundwire/cadence_master.h +++ b/drivers/soundwire/cadence_master.h @@ -107,6 +107,7 @@ struct sdw_cdns_dai_runtime { * @dev: Linux device * @bus: Bus handle * @instance: instance number + * @ip_offset: version-dependent offset to access IP_MCP registers and fields * @response_buf: SoundWire response buffer * @tx_complete: Tx completion * @ports: Data ports @@ -122,6 +123,8 @@ struct sdw_cdns { struct sdw_bus bus; unsigned int instance; + u32 ip_offset; + /* * The datasheet says the RX FIFO AVAIL can be 2 entries more * than the FIFO capacity, so allow for this. From patchwork Tue Mar 14 01:54:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 69236 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1513768wrd; Mon, 13 Mar 2023 19:01:52 -0700 (PDT) X-Google-Smtp-Source: AK7set8NrJZV6PWojdhIZibEnEPsLQmjGIulflLwGYMhQ/mre5iKixs1ZX+l1gY3Z7XdU2eoOMC1 X-Received: by 2002:a05:6102:3383:b0:422:1e62:1c29 with SMTP id i3-20020a056102338300b004221e621c29mr9291866vsh.4.1678759312352; Mon, 13 Mar 2023 19:01:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678759312; cv=none; d=google.com; s=arc-20160816; b=rv1r8wCQQKW/Zz7nsgdotJ+jNDZ/YVWFcxaSP+ICHDVaM5Ajjk/yEySWdBJ4zMqJxf ks+4a2ncbmfewOnVYqfvdoDXMq5auCnv/NGU9t9i9iuYXvZZ5y/BWWmdPnjKCZtY3Ds0 QMSS1qDqlLTYrmNbvaJ2/1rAGrgeVLOVrJ6W62Q+0ir81pqcPoC8jleK7Trzbnv1JGj0 fN18ESce1rYFoY9b/QVR9dlwjZ5DfrCi/ZSvq2UQkSwQOAPgc49kZy6vseq+w/x8sq2D N8MkU2J61/JSHRMPF2z6bLKOMqbjsqcCeO83iE7T6QXI7zdCmF8/8ky5FiJtVf7JsWaT M4rw== 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=x1nYtceJGTQrLYyGQX0r23sIs9j7IiGg0FjDs3W12GE=; b=w1a2eRoKEodZDK/iOUTdj0qXr5ORzCViub4yJ5hSRPTtgKq8f6z++gvq1cQ8Fycro0 tgxfH18ayBAAl/hT34x9FYRkgrIa1eU9K9egT97YuuREMGO14aMpmoVIh7FMHEseV0c4 6rCezQT9EdlLxEqUGSf6nY2hdWBnzzvxLHBueMAYLVvsJBQZEatjo1iOolCVIC3tjV53 y9nTWD0cGKR0hE2JtfwGhMzkuQNyKGNl3iS8sgD2qiXPvNorQ28WXGVKoTHt6XDVlf1F XJoeTgiIAYxFqE4opvtc13c+YNM9YJ4roOhYEO5ih6I1asaaIs6+4W1nUWhK1g18129n 5ygA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=NoWaqASG; 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 t4-20020a67c784000000b00412566ea65fsi505797vsk.719.2023.03.13.19.01.37; Mon, 13 Mar 2023 19:01:52 -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=NoWaqASG; 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 S230356AbjCNBlt (ORCPT + 99 others); Mon, 13 Mar 2023 21:41:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33808 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230290AbjCNBlf (ORCPT ); Mon, 13 Mar 2023 21:41:35 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9651D74329 for ; Mon, 13 Mar 2023 18:41: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=1678758092; x=1710294092; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=sfcPRhRXNlasOblxff/iVuz7QEMX0M7uX02RWVIo8Q4=; b=NoWaqASGTFEwpH0w5jlls4CB61ZwRznfwGsmK94A7qGKK8atNizruwzN b3FmTAncOgod5rryt1w83JMJCJPOBxrNihmYU/XPiclp1SQ/PD/8dYbdu bx+2gDtnPUA6Xu2PWeJRgYlO+mMzI3b/F1M2cl0kTi3yzstnJ0OAF30At lpQxSPrXOQkQu0d13poHZtdwYC/8NRI2YQhJbA7C0lC/2u6jH02kuJlb3 GHYAWu/IFyAIBnM+UZsx1lAfv/fhoUiKPgfms7uBWLscV4j6JW3od2TMT yxra5v1kmk5spIuwomLHk8L9Xlu2SwQoqGn3RJ7Nx0oz8QJ9MhRB/Sdv1 w==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="316949302" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="316949302" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="711327538" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="711327538" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41: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 13/16] soundwire: cadence: split access to IP_MCP_CONFIG fields Date: Tue, 14 Mar 2023 09:54:07 +0800 Message-Id: <20230314015410.487311-14-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> References: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED 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?1760306724363464695?= X-GMAIL-MSGID: =?utf-8?q?1760306724363464695?= From: Pierre-Louis Bossart The latest Cadence IP splits the MCP_CONFIG fields in two registers: MCP_CONFIG and IP_MCP_CONFIG. Rename the relevant fields and change the access methods used for those fields. For existing solutions, this is an iso-functionality change. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Signed-off-by: Bard Liao --- drivers/soundwire/cadence_master.c | 47 +++++++++++++++++------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/drivers/soundwire/cadence_master.c b/drivers/soundwire/cadence_master.c index 4461a7fa4124..f7499e126404 100644 --- a/drivers/soundwire/cadence_master.c +++ b/drivers/soundwire/cadence_master.c @@ -27,15 +27,17 @@ module_param_named(cnds_mcp_int_mask, interrupt_mask, int, 0444); MODULE_PARM_DESC(cdns_mcp_int_mask, "Cadence MCP IntMask"); #define CDNS_MCP_CONFIG 0x0 - -#define CDNS_MCP_CONFIG_MCMD_RETRY GENMASK(27, 24) -#define CDNS_MCP_CONFIG_MPREQ_DELAY GENMASK(20, 16) -#define CDNS_MCP_CONFIG_MMASTER BIT(7) #define CDNS_MCP_CONFIG_BUS_REL BIT(6) -#define CDNS_MCP_CONFIG_SNIFFER BIT(5) -#define CDNS_MCP_CONFIG_CMD BIT(3) -#define CDNS_MCP_CONFIG_OP GENMASK(2, 0) -#define CDNS_MCP_CONFIG_OP_NORMAL 0 + +#define CDNS_IP_MCP_CONFIG 0x0 /* IP offset added at run-time */ + +#define CDNS_IP_MCP_CONFIG_MCMD_RETRY GENMASK(27, 24) +#define CDNS_IP_MCP_CONFIG_MPREQ_DELAY GENMASK(20, 16) +#define CDNS_IP_MCP_CONFIG_MMASTER BIT(7) +#define CDNS_IP_MCP_CONFIG_SNIFFER BIT(5) +#define CDNS_IP_MCP_CONFIG_CMD BIT(3) +#define CDNS_IP_MCP_CONFIG_OP GENMASK(2, 0) +#define CDNS_IP_MCP_CONFIG_OP_NORMAL 0 #define CDNS_MCP_CONTROL 0x4 @@ -1348,28 +1350,33 @@ int sdw_cdns_init(struct sdw_cdns *cdns) /* Configure mcp config */ val = cdns_readl(cdns, CDNS_MCP_CONFIG); + /* Disable auto bus release */ + val &= ~CDNS_MCP_CONFIG_BUS_REL; + + cdns_writel(cdns, CDNS_MCP_CONFIG, val); + + /* Configure IP mcp config */ + val = cdns_ip_readl(cdns, CDNS_IP_MCP_CONFIG); + /* enable bus operations with clock and data */ - val &= ~CDNS_MCP_CONFIG_OP; - val |= CDNS_MCP_CONFIG_OP_NORMAL; + val &= ~CDNS_IP_MCP_CONFIG_OP; + val |= CDNS_IP_MCP_CONFIG_OP_NORMAL; /* Set cmd mode for Tx and Rx cmds */ - val &= ~CDNS_MCP_CONFIG_CMD; + val &= ~CDNS_IP_MCP_CONFIG_CMD; /* Disable sniffer mode */ - val &= ~CDNS_MCP_CONFIG_SNIFFER; - - /* Disable auto bus release */ - val &= ~CDNS_MCP_CONFIG_BUS_REL; + val &= ~CDNS_IP_MCP_CONFIG_SNIFFER; if (cdns->bus.multi_link) /* Set Multi-master mode to take gsync into account */ - val |= CDNS_MCP_CONFIG_MMASTER; + val |= CDNS_IP_MCP_CONFIG_MMASTER; /* leave frame delay to hardware default of 0x1F */ /* leave command retry to hardware default of 0 */ - cdns_writel(cdns, CDNS_MCP_CONFIG, val); + cdns_ip_writel(cdns, CDNS_IP_MCP_CONFIG, val); /* changes will be committed later */ return 0; @@ -1683,9 +1690,9 @@ int sdw_cdns_clock_restart(struct sdw_cdns *cdns, bool bus_reset) if (!bus_reset) { /* enable bus operations with clock and data */ - cdns_updatel(cdns, CDNS_MCP_CONFIG, - CDNS_MCP_CONFIG_OP, - CDNS_MCP_CONFIG_OP_NORMAL); + cdns_ip_updatel(cdns, CDNS_IP_MCP_CONFIG, + CDNS_IP_MCP_CONFIG_OP, + CDNS_IP_MCP_CONFIG_OP_NORMAL); ret = cdns_config_update(cdns); if (ret < 0) { From patchwork Tue Mar 14 01:54:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 69238 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1513826wrd; Mon, 13 Mar 2023 19:02:01 -0700 (PDT) X-Google-Smtp-Source: AK7set+yxaRJJFWW4aNpk3CqbDtWOkH+E41J0vX5SiK157b2YvgrFefGBEc1q3SEzqG0TZj84sCR X-Received: by 2002:a05:6102:d92:b0:3f9:f521:9551 with SMTP id d18-20020a0561020d9200b003f9f5219551mr21774946vst.34.1678759321235; Mon, 13 Mar 2023 19:02:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678759321; cv=none; d=google.com; s=arc-20160816; b=IWhuLMhfYHz6PMCkdEokZJEadFF/Xeu3zoP0Jg90+RY0NqnNUjThIh/F8TJDBvdNhv TuWPwyX05mo1uY/bSsljXQK+CXmi77CppKRRDsB4p7lIqzBMaXH4EfbyR9YDWbxTQCw7 X8Pg6Qg53Iuz+q5ptIByCmB2k8p1T4dDMCvnHLaohD1k3YZel0zh9R4Xm+zQCRCegjog VlZ8Zv4DHafGkNs7KieItsNF1KNxDMlZFP9/GJ7oex730jVnMs1WaMQ9wmaIHlSz7Lf1 Q8VJLs6LKLmPqiF1u19ZzXS9F0NEB8eJe/GbtWVzm4wO6TBEjtxWEKQuB9LRJwxbyzcW 6Zkw== 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=4J5BX+qlWI7X0hs+u1Ub5i7jfFQARlrmfsWeNw1kWjY=; b=HGrr8pwxI6GKI6yrYnRmBQjK1oqxeyvbRxbuDGqI11LGFKHikaZVvdCvq3+y+lybib eFj11FA7LdurPWa/l01XYNSOCn5fEZfmZ2rQVbov1F2vsa3gz7PDXDaXGL7ejaiYryVK E4b6x9EWz0El8uiPJEsXfR76+qL7hizsLmmENfvjbr3A2tc9WK3IytSQ+xAZCiyYGy0J WSlTSDx++tynFfEK+78lIBBHVs1DaKD3rMq5ZSLcVNEGAaNuMVrdUm3NbxSb/PdeC6GT bK5GURawvoBKlZJpTUaSbzfPEzDNZIHmxxPvxhqR/SoN+T/VR1th6d6KiXdpropaBURz 4HJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=m1bp2It4; 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 m5-20020a67bb05000000b004122c871844si543454vsn.496.2023.03.13.19.01.46; Mon, 13 Mar 2023 19:02:01 -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=m1bp2It4; 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 S230355AbjCNBlx (ORCPT + 99 others); Mon, 13 Mar 2023 21:41:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33938 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230313AbjCNBlk (ORCPT ); Mon, 13 Mar 2023 21:41:40 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 790067C3D3 for ; Mon, 13 Mar 2023 18:41:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678758095; x=1710294095; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=BsMbslJQaFseT5Cv+EGJHhXHzftwhtvi7GC9ZvR/ymM=; b=m1bp2It4vTCpkr56OW22LIEhKVe/skzDlNNDsUKsphbvV5SsIsPK1+sL oMIMm/DmTALdgF7mTTjJdv7mupx+0lpEZr5sGsPNFk/121LUjgqnP7V0N 9JhDjtnNfeyXG32AR3SlLW7XzV/3uiEs7O9JY63qupqvpM+g/znKvg/XA h0SsSkoAJEcng/BSALWEGv+j6C4I5tFTgjbHOXnZVT0Bc4DbU8e9mWXrO 5o3qkfaiOJ4fApW3EUfIst7KnUmfcVJP53XCJv6mRXHKTVfTTqlYp77a4 Of+EyMqvWH2E0t1zipUFoc6aaA7ccTGchueZHXWBuGf0QtB94gpkp0mpb Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="316949310" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="316949310" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="711327558" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="711327558" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:32 -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 14/16] soundwire: cadence: split access to IP_MCP_CONTROL fields Date: Tue, 14 Mar 2023 09:54:08 +0800 Message-Id: <20230314015410.487311-15-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> References: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED 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?1760306733948770716?= X-GMAIL-MSGID: =?utf-8?q?1760306733948770716?= From: Pierre-Louis Bossart The latest Cadence IP splits the MCP_CONTROL fields in two registers: MCP_CONTROL and IP_MCP_CONTROL. Rename the relevant fields and change the access methods used for those fields. For existing solutions, this is an iso-functionality change. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Signed-off-by: Bard Liao --- drivers/soundwire/cadence_master.c | 41 ++++++++++++++++++------------ 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/drivers/soundwire/cadence_master.c b/drivers/soundwire/cadence_master.c index f7499e126404..4c82712944b9 100644 --- a/drivers/soundwire/cadence_master.c +++ b/drivers/soundwire/cadence_master.c @@ -41,15 +41,18 @@ MODULE_PARM_DESC(cdns_mcp_int_mask, "Cadence MCP IntMask"); #define CDNS_MCP_CONTROL 0x4 -#define CDNS_MCP_CONTROL_RST_DELAY GENMASK(10, 8) #define CDNS_MCP_CONTROL_CMD_RST BIT(7) #define CDNS_MCP_CONTROL_SOFT_RST BIT(6) -#define CDNS_MCP_CONTROL_SW_RST BIT(5) #define CDNS_MCP_CONTROL_HW_RST BIT(4) -#define CDNS_MCP_CONTROL_CLK_PAUSE BIT(3) #define CDNS_MCP_CONTROL_CLK_STOP_CLR BIT(2) -#define CDNS_MCP_CONTROL_CMD_ACCEPT BIT(1) -#define CDNS_MCP_CONTROL_BLOCK_WAKEUP BIT(0) + +#define CDNS_IP_MCP_CONTROL 0x4 /* IP offset added at run-time */ + +#define CDNS_IP_MCP_CONTROL_RST_DELAY GENMASK(10, 8) +#define CDNS_IP_MCP_CONTROL_SW_RST BIT(5) +#define CDNS_IP_MCP_CONTROL_CLK_PAUSE BIT(3) +#define CDNS_IP_MCP_CONTROL_CMD_ACCEPT BIT(1) +#define CDNS_IP_MCP_CONTROL_BLOCK_WAKEUP BIT(0) #define CDNS_MCP_CMDCTRL 0x8 @@ -1050,6 +1053,7 @@ static void cdns_update_slave_status_work(struct work_struct *work) void sdw_cdns_check_self_clearing_bits(struct sdw_cdns *cdns, const char *string, bool initial_delay, int reset_iterations) { + u32 ip_mcp_control; u32 mcp_control; u32 mcp_config_update; int i; @@ -1057,6 +1061,12 @@ void sdw_cdns_check_self_clearing_bits(struct sdw_cdns *cdns, const char *string if (initial_delay) usleep_range(1000, 1500); + ip_mcp_control = cdns_ip_readl(cdns, CDNS_IP_MCP_CONTROL); + + /* the following bits should be cleared immediately */ + if (ip_mcp_control & CDNS_IP_MCP_CONTROL_SW_RST) + dev_err(cdns->dev, "%s failed: IP_MCP_CONTROL_SW_RST is not cleared\n", string); + mcp_control = cdns_readl(cdns, CDNS_MCP_CONTROL); /* the following bits should be cleared immediately */ @@ -1064,10 +1074,9 @@ void sdw_cdns_check_self_clearing_bits(struct sdw_cdns *cdns, const char *string dev_err(cdns->dev, "%s failed: MCP_CONTROL_CMD_RST is not cleared\n", string); if (mcp_control & CDNS_MCP_CONTROL_SOFT_RST) dev_err(cdns->dev, "%s failed: MCP_CONTROL_SOFT_RST is not cleared\n", string); - if (mcp_control & CDNS_MCP_CONTROL_SW_RST) - dev_err(cdns->dev, "%s failed: MCP_CONTROL_SW_RST is not cleared\n", string); if (mcp_control & CDNS_MCP_CONTROL_CLK_STOP_CLR) dev_err(cdns->dev, "%s failed: MCP_CONTROL_CLK_STOP_CLR is not cleared\n", string); + mcp_config_update = cdns_readl(cdns, CDNS_MCP_CONFIG_UPDATE); if (mcp_config_update & CDNS_MCP_CONFIG_UPDATE_BIT) dev_err(cdns->dev, "%s failed: MCP_CONFIG_UPDATE_BIT is not cleared\n", string); @@ -1344,8 +1353,8 @@ int sdw_cdns_init(struct sdw_cdns *cdns) CDNS_MCP_CONTROL_CMD_RST); /* Set cmd accept mode */ - cdns_updatel(cdns, CDNS_MCP_CONTROL, CDNS_MCP_CONTROL_CMD_ACCEPT, - CDNS_MCP_CONTROL_CMD_ACCEPT); + cdns_ip_updatel(cdns, CDNS_IP_MCP_CONTROL, CDNS_IP_MCP_CONTROL_CMD_ACCEPT, + CDNS_IP_MCP_CONTROL_CMD_ACCEPT); /* Configure mcp config */ val = cdns_readl(cdns, CDNS_MCP_CONFIG); @@ -1606,9 +1615,9 @@ int sdw_cdns_clock_stop(struct sdw_cdns *cdns, bool block_wake) * in clock stop state */ if (block_wake) - cdns_updatel(cdns, CDNS_MCP_CONTROL, - CDNS_MCP_CONTROL_BLOCK_WAKEUP, - CDNS_MCP_CONTROL_BLOCK_WAKEUP); + cdns_ip_updatel(cdns, CDNS_IP_MCP_CONTROL, + CDNS_IP_MCP_CONTROL_BLOCK_WAKEUP, + CDNS_IP_MCP_CONTROL_BLOCK_WAKEUP); list_for_each_entry(slave, &cdns->bus.slaves, node) { if (slave->status == SDW_SLAVE_ATTACHED || @@ -1681,11 +1690,11 @@ int sdw_cdns_clock_restart(struct sdw_cdns *cdns, bool bus_reset) return ret; } - cdns_updatel(cdns, CDNS_MCP_CONTROL, - CDNS_MCP_CONTROL_BLOCK_WAKEUP, 0); + cdns_ip_updatel(cdns, CDNS_IP_MCP_CONTROL, + CDNS_IP_MCP_CONTROL_BLOCK_WAKEUP, 0); - cdns_updatel(cdns, CDNS_MCP_CONTROL, CDNS_MCP_CONTROL_CMD_ACCEPT, - CDNS_MCP_CONTROL_CMD_ACCEPT); + cdns_ip_updatel(cdns, CDNS_IP_MCP_CONTROL, CDNS_IP_MCP_CONTROL_CMD_ACCEPT, + CDNS_IP_MCP_CONTROL_CMD_ACCEPT); if (!bus_reset) { From patchwork Tue Mar 14 01:54:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 69239 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1513922wrd; Mon, 13 Mar 2023 19:02:16 -0700 (PDT) X-Google-Smtp-Source: AK7set9VXdeLEnBoTLe3yeay2+sYr7bU13ukeTcJzkZbQl2EUxl3Wi4Mq6AC28rwjw+c7316+VnV X-Received: by 2002:a05:6102:340a:b0:41f:53e7:f4fc with SMTP id p10-20020a056102340a00b0041f53e7f4fcmr17144007vsi.13.1678759335972; Mon, 13 Mar 2023 19:02:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678759335; cv=none; d=google.com; s=arc-20160816; b=qt9UpTi0w4chXwHyHtmPoYZ9Kd7kkEpo3F2xsFCrtIbwPYD+5d9RHT5b23UqP0kDOv IlTLV7q232yrj3aM/hi95QFaH8YQwQ1HA9GRgZPKNvL4ByoiqUkgEYLEdvqzCq8lJiR3 xB3k+e8uQSROONfFtvTUpxozY2aVugukw7ESnsRDVccGh9YaaYTJmHq751fZXrTpUv4O FWIx3kVbION/4DqXbnZcTCLYQOM81BYdqAPGCqVtIxO0lGNOzs9N9jLpP+AdT6bafE2k UMBLxfY4SN5M1b30MCRVL+TaEXJnrSUcswE/+SMF8SW2hQwuAtjQOtUs7zfEfNsqEKSs D+8g== 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=R4w2QMxbOO+7aT9WvEE4F2T4zCpwjav1qC6ZsM4xP3A=; b=zllVexrbx9MGdrEb53kUMu8r8R5ITtaAtx9LQidP2eTH9ZLxMNhgHZLNJ4ESZvrR/h c+rBBr+1tzbSlm6oTgcwBpr8RhvSVYWTnSVp7D03srFeUbIofsSvxmFNxWKf4gCaEEdH dW3wPL5yr4VQYYRzWY6z/bnIQiwRzrLTo3JngkAcOQitXAsafZqUztZjotsWM944ELk5 KaqrExbgr8Nlv5KfgL3sHpPjHUtFkojN2kGESx6ZWN8rzhC038reaTOFpff+8lrk6Q6J a8KRZJXL4yE1HDb0WwdiFW1+bCmrk60SRYno2tGs2pG4SUaGXnG7yZhSFJ4ZOul2UjFE u5yw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=QFj3vGB0; 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 d16-20020a67e410000000b00423dfe3d420si578475vsf.639.2023.03.13.19.02.00; Mon, 13 Mar 2023 19:02: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=QFj3vGB0; 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 S230410AbjCNBl4 (ORCPT + 99 others); Mon, 13 Mar 2023 21:41:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33958 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230325AbjCNBll (ORCPT ); Mon, 13 Mar 2023 21:41:41 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 696C872B10 for ; Mon, 13 Mar 2023 18:41:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678758097; x=1710294097; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=wQHje0SaVUOSrY4QPSqRiDq9cs1tJEQsHuQNuafDUnw=; b=QFj3vGB08PApW2yDtjIDHO0XA/m30fOpX34woiaKYiwkCF/ngGSZhqHp FtXMl6EsmTcAvSvEZTNaZV9EApSTLWqHDOv2DELwJMVTpuUoDvFjVPyO4 kcBC2nlinndIzhznnTecvbclAKmu8vmykXCwjmMrlm1ZhMoIblXCLqfEZ MqvNc4CF9C1W2cipMWEn+dUD/CVv2/0ni0fGXTwILTTfZ/mt+HComW3wX WYnCZXpePAN3zZk3xic5sPDTJbPJzvSzW5H00HBYaOCiWxYR/NTyyFIjL 5ai65oJWoGjjK08uJrtjSn2w1LRyYXh3MLb2l3i32hTO0b5ks83eMAjAF w==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="316949315" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="316949315" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="711327575" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="711327575" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:34 -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 15/16] soundwire: cadence: split access to IP_MCP_CMDCTRL fields Date: Tue, 14 Mar 2023 09:54:09 +0800 Message-Id: <20230314015410.487311-16-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> References: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED 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?1760306749884963290?= X-GMAIL-MSGID: =?utf-8?q?1760306749884963290?= From: Pierre-Louis Bossart The latest Cadence IP splits the MCP_CMDCTRL fields in two registers: MCP_CMDCTRL and IP_MCP_CMDCTRL. Rename the relevant fields and change the access methods used for those fields. In practice we only use the Parity error insertion in IP_CMD_CTRL. For existing solutions, this is an iso-functionality change. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Signed-off-by: Bard Liao --- drivers/soundwire/cadence_master.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/soundwire/cadence_master.c b/drivers/soundwire/cadence_master.c index 4c82712944b9..5128923f051e 100644 --- a/drivers/soundwire/cadence_master.c +++ b/drivers/soundwire/cadence_master.c @@ -54,9 +54,9 @@ MODULE_PARM_DESC(cdns_mcp_int_mask, "Cadence MCP IntMask"); #define CDNS_IP_MCP_CONTROL_CMD_ACCEPT BIT(1) #define CDNS_IP_MCP_CONTROL_BLOCK_WAKEUP BIT(0) -#define CDNS_MCP_CMDCTRL 0x8 +#define CDNS_IP_MCP_CMDCTRL 0x8 /* IP offset added at run-time */ -#define CDNS_MCP_CMDCTRL_INSERT_PARITY_ERR BIT(2) +#define CDNS_IP_MCP_CMDCTRL_INSERT_PARITY_ERR BIT(2) #define CDNS_MCP_SSPSTAT 0xC #define CDNS_MCP_FRAME_SHAPE 0x10 @@ -428,9 +428,9 @@ static int cdns_parity_error_injection(void *data, u64 value) mutex_lock(&bus->bus_lock); /* program hardware to inject parity error */ - cdns_updatel(cdns, CDNS_MCP_CMDCTRL, - CDNS_MCP_CMDCTRL_INSERT_PARITY_ERR, - CDNS_MCP_CMDCTRL_INSERT_PARITY_ERR); + cdns_ip_updatel(cdns, CDNS_IP_MCP_CMDCTRL, + CDNS_IP_MCP_CMDCTRL_INSERT_PARITY_ERR, + CDNS_IP_MCP_CMDCTRL_INSERT_PARITY_ERR); /* commit changes */ cdns_updatel(cdns, CDNS_MCP_CONFIG_UPDATE, @@ -442,9 +442,9 @@ static int cdns_parity_error_injection(void *data, u64 value) dev_info(cdns->dev, "parity error injection, read: %d\n", ret); /* program hardware to disable parity error */ - cdns_updatel(cdns, CDNS_MCP_CMDCTRL, - CDNS_MCP_CMDCTRL_INSERT_PARITY_ERR, - 0); + cdns_ip_updatel(cdns, CDNS_IP_MCP_CMDCTRL, + CDNS_IP_MCP_CMDCTRL_INSERT_PARITY_ERR, + 0); /* commit changes */ cdns_updatel(cdns, CDNS_MCP_CONFIG_UPDATE, From patchwork Tue Mar 14 01:54:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 69240 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1513939wrd; Mon, 13 Mar 2023 19:02:18 -0700 (PDT) X-Google-Smtp-Source: AK7set9LHEIJGfyjTuLsKO7lHvps0Tzl4M2iDbSvX/0y/h4VG0NZPHd7bvIAZKE/9/EVnCPCo02O X-Received: by 2002:a05:6122:883:b0:401:c7c8:4605 with SMTP id 3-20020a056122088300b00401c7c84605mr21844991vkf.14.1678759338419; Mon, 13 Mar 2023 19:02:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678759338; cv=none; d=google.com; s=arc-20160816; b=W/G/+VCdjg9VDxx/azxgukwc25307Mb0/pFu/RVukHgbXohtvL2rmjVrPr5hnlCH5c xpsIm8C1MNAWgEUctvruNeRaULHVdqJ/MTfA5m5OdjiTMGp69aBrw2EOfZMtEI+sRuq1 dpRkGgQKc1+bsfmPUk+0vWBsDGMVj757fkIsCSOQ6N7LJD6VhMVUERJuK9/23i2B1mjg uw5WwRSGYIPg1ZvCb8Xat0KRY/KRkBnQVmYvvD90OcQjHn/RqdlKNgsvKjLM6IFrln5N R/qE8Qa3EZa4ennCmrhV4Le+er9ts8RN7QmgF+h9XKg6/l3EYIYV3BB7YWLPCWpXhTJt lgNw== 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=nm3CCZyzFzZ5eS7iiQd1xZQEUk2/ufIsPEMfjFdYbjA=; b=zon6ByjM8H9NBuOqgX3FqMVf6sK3T4c9xvQMXi+2n6TVp6tes4onSI/t1W9QiM3kbi n7BlEyJe0p91qEWWafWA7EvBq4D8p8vOHjXYvG811w067T+3XVrCXFFSbX7YiXYVbVKt L9tSbmxAGBxesEBZY7cWKkZhhgXhFJNkvxQhs2U5jdlIHsYWn+ClJa2EQ38k2n6DGCcz Oaxmh+sFenD6cCpUpiw1CKROsDqBln8AYLpcIhXalFrebFwXsqaPRJgUvf3lrdJu8xeg mGaux9RIjipkAVN1itUO/M2Ga7zCCOblMl7SAxrEeZszFiIjvlboo+W9oTqMdC+7WLxx VnqA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=PqG01Xx5; 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 m8-20020a05612210e800b003e16970f58dsi770248vko.6.2023.03.13.19.02.03; Mon, 13 Mar 2023 19:02:18 -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=PqG01Xx5; 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 S230423AbjCNBmA (ORCPT + 99 others); Mon, 13 Mar 2023 21:42:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34020 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230337AbjCNBln (ORCPT ); Mon, 13 Mar 2023 21:41:43 -0400 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 88FA478C8C for ; Mon, 13 Mar 2023 18:41:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678758098; x=1710294098; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Hzzq3OtEkkrFejYuV+z4cdtj/Bawg/u7wQf4bCyiLzc=; b=PqG01Xx5UsS22Ou+ccm5zel+vedWJi+N8A+VAT4nUAcqyXjU07KiXLYr cAT0iqX8i0fwl+f4+Id5hoP+VrZVlt8bq3ki7rjGP6OHfYDCleTBYAN5W pKm+CFXhYSKEs+WWsNoMc1fuB2f5RUHwNUifcAmwG9yZFHDOFNdJKuXyV 7DiOO+SC5c4EJslBtAcchMUjR8LpOVF9Zf6wQy4dbkxRwtaHKLAbiUGxk lMnrphczwsVZ774DeNEc//O2TG+eTnM0PZHQB0L7ootV3Nl7I+uh69ETf ABG1Q0zUg3F44f9jgD9NxZG5dBNwIGAtwFTPmULdVHsemhcrwbde6JZMY Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="316949324" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="316949324" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:38 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="711327601" X-IronPort-AV: E=Sophos;i="5.98,258,1673942400"; d="scan'208";a="711327601" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Mar 2023 18:41:36 -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 16/16] soundwire: cadence: change access to IP_MCP_CMD_BASE Date: Tue, 14 Mar 2023 09:54:10 +0800 Message-Id: <20230314015410.487311-17-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> References: <20230314015410.487311-1-yung-chuan.liao@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED 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?1760306752047598561?= X-GMAIL-MSGID: =?utf-8?q?1760306752047598561?= From: Pierre-Louis Bossart The latest Cadence IP moves MCP_CMD_BASE and MCP_CMD_RESP to the IP_MCP_CMD_BASE and IP_MCP_CMD_RESP registers located in different area and accessed with a fixed offset. Unlike other patches, the fields are not renamed to avoid a very invasive and low-value set of changes. For existing solutions, this is an iso-functionality change. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Signed-off-by: Bard Liao --- drivers/soundwire/cadence_master.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/soundwire/cadence_master.c b/drivers/soundwire/cadence_master.c index 5128923f051e..39502bc75712 100644 --- a/drivers/soundwire/cadence_master.c +++ b/drivers/soundwire/cadence_master.c @@ -129,8 +129,8 @@ MODULE_PARM_DESC(cdns_mcp_int_mask, "Cadence MCP IntMask"); #define CDNS_MCP_FIFOSTAT 0x7C #define CDNS_MCP_RX_FIFO_AVAIL GENMASK(5, 0) -#define CDNS_MCP_CMD_BASE 0x80 -#define CDNS_MCP_RESP_BASE 0x80 +#define CDNS_IP_MCP_CMD_BASE 0x80 /* IP offset added at run-time */ +#define CDNS_IP_MCP_RESP_BASE 0x80 /* IP offset added at run-time */ /* FIFO can hold 8 commands */ #define CDNS_MCP_CMD_LEN 8 #define CDNS_MCP_CMD_WORD_LEN 0x4 @@ -590,10 +590,10 @@ static void cdns_read_response(struct sdw_cdns *cdns) num_resp = ARRAY_SIZE(cdns->response_buf); } - cmd_base = CDNS_MCP_CMD_BASE; + cmd_base = CDNS_IP_MCP_CMD_BASE; for (i = 0; i < num_resp; i++) { - cdns->response_buf[i] = cdns_readl(cdns, cmd_base); + cdns->response_buf[i] = cdns_ip_readl(cdns, cmd_base); cmd_base += CDNS_MCP_CMD_WORD_LEN; } } @@ -612,7 +612,7 @@ _cdns_xfer_msg(struct sdw_cdns *cdns, struct sdw_msg *msg, int cmd, cdns->msg_count = count; } - base = CDNS_MCP_CMD_BASE; + base = CDNS_IP_MCP_CMD_BASE; addr = msg->addr + offset; for (i = 0; i < count; i++) { @@ -625,7 +625,7 @@ _cdns_xfer_msg(struct sdw_cdns *cdns, struct sdw_msg *msg, int cmd, data |= msg->buf[i + offset]; data |= FIELD_PREP(CDNS_MCP_CMD_SSP_TAG, msg->ssp_sync); - cdns_writel(cdns, base, data); + cdns_ip_writel(cdns, base, data); base += CDNS_MCP_CMD_WORD_LEN; } @@ -673,10 +673,10 @@ cdns_program_scp_addr(struct sdw_cdns *cdns, struct sdw_msg *msg) data[0] |= msg->addr_page1; data[1] |= msg->addr_page2; - base = CDNS_MCP_CMD_BASE; - cdns_writel(cdns, base, data[0]); + base = CDNS_IP_MCP_CMD_BASE; + cdns_ip_writel(cdns, base, data[0]); base += CDNS_MCP_CMD_WORD_LEN; - cdns_writel(cdns, base, data[1]); + cdns_ip_writel(cdns, base, data[1]); time = wait_for_completion_timeout(&cdns->tx_complete, msecs_to_jiffies(CDNS_TX_TIMEOUT));