From patchwork Mon May 15 07:10:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93910 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6726610vqo; Mon, 15 May 2023 00:15:19 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5FLVe9dcbEp+K4zIOTApCQgO9sFFrpvDn1u2Ut68jNoZwWk0XLsRtKFnyUl9CdPidH3qjO X-Received: by 2002:a17:90a:70cf:b0:24e:59d2:6f with SMTP id a15-20020a17090a70cf00b0024e59d2006fmr32097076pjm.11.1684134919697; Mon, 15 May 2023 00:15:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684134919; cv=none; d=google.com; s=arc-20160816; b=He6baBC+vhJLSqN9IACHIecwRujQ9shQfSDqGxha9SR2MFBq91eyzru+UJzraINwMk qGRSxaHv+egvWvuvdv3oCda7MXjhm2sOoF+F7smI3oaCpliwI3qdojRaPOTKbTzRFkLN BhW8k8g3vrlZRnDl82R9MtL1vD+q65vownGKdri77BOaCskFoK8tMwii743MF8AkG50G IwSvC3H4ajBdDfozA0FCwwZMsC11rRdfJ35yJ8ZsWplIVb0boDBgP3UwulLMQavbpozF zIzT+fup8t6dOQfU44p8HlJWpG7qMqWwmyqqyo4C+zDtGieQe315aRRF26e1whvBb7q8 NyWA== 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=emZrwLCSsaZMRCUlhi8AQftQjxi0vnjqW+I+HA5FJV4=; b=H45L+SFo0LtbtNmWGioggXWxRO/DhqHNwcPKzjr4mun4ELMNuZid/YE/sReGQbD/9v p+mW3DuhhRS604CbOG7sEWXmythjGtSrxYv3zLpP/dT0VxNxAG6vXaqC3QkBDD+6E9C6 Mc9WWixtP1Un98+BNk3WHkqtrgTW83JfuXtdQaDoStEglXRVCZ0jUUW5W/5t8ZuJ3e5q bd6l/CI16GUztXPipDm8VDWWqu2CRLOQg3iN48og287UKviGQ15/5rVXBrQzFXfcVUZv obuU92te1MXfrmIliaCPkr9Ow/wUKFts4FfibhpOe4Lwd6btKkSlDauOJ6qYdoz6iaf/ uozg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=N97dpRR1; 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 u1-20020a17090adb4100b002501d633225si24787023pjx.11.2023.05.15.00.15.03; Mon, 15 May 2023 00:15:19 -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=N97dpRR1; 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 S240108AbjEOGu0 (ORCPT + 99 others); Mon, 15 May 2023 02:50:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46442 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239097AbjEOGuY (ORCPT ); Mon, 15 May 2023 02:50:24 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EAB818F for ; Sun, 14 May 2023 23:50:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133423; x=1715669423; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ulAOPJpFKU1kbrYfiKz1ABKjFv/hYupKOQurQHC/rd0=; b=N97dpRR1MiDhi1Vydoi8otmJatInDRA/mskAFBGQuslNhrt03WAV2e9k EAn7vOQ2XpUMeXO+jP98XihdIQYSRpfegBaT2uiqQ5HbbZfpS41Zi+wfs XmY+Q/KIw2YWTZq6z4aeqwnYVPPCZcXO8iOqD0KSIkQSajXb4x1ZDHTqz iXI8OeU97IZUcQnwCrQmPpMFpmqOjziT7qIV/eRfSf3NsZ8o9hbc45OU8 bYWe7pPdkP19YhYJl9NOoCXkvLi2v7UcBHCOqlLsmcmoyAfqfdUbvosgZ 5p/vlBoN61WEYJl1OvRo7UhhvOzL1Vy/zzX75H48s09sY4p3RcmS2yrMs A==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966250" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966250" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908576" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908576" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:21 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 01/26] ASoC: SOF: Intel: shim: add enum for ACE 2.0 IP used in LunarLake Date: Mon, 15 May 2023 15:10:17 +0800 Message-Id: <20230515071042.2038-2-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765943457893069065?= X-GMAIL-MSGID: =?utf-8?q?1765943457893069065?= From: Pierre-Louis Bossart Add the new enum needed for SoundWire IP selection. The LunarLake PCI descriptors and DSP parts will be added at a later time. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao Acked-by: Mark Brown --- sound/soc/sof/intel/shim.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sound/soc/sof/intel/shim.h b/sound/soc/sof/intel/shim.h index 48428ccbcfe0..207df48e27cf 100644 --- a/sound/soc/sof/intel/shim.h +++ b/sound/soc/sof/intel/shim.h @@ -21,6 +21,7 @@ enum sof_intel_hw_ip_version { SOF_INTEL_CAVS_2_0, /* IceLake, JasperLake */ SOF_INTEL_CAVS_2_5, /* TigerLake, AlderLake */ SOF_INTEL_ACE_1_0, /* MeteorLake */ + SOF_INTEL_ACE_2_0, /* LunarLake */ }; /* From patchwork Mon May 15 07:10:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93905 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6723231vqo; Mon, 15 May 2023 00:08:21 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7/KoMpkuVFSF5w4FD4j+7GEaSGcO7XCgL1G0yxTq6bWQW/GM2bjBgEieCWi1TZqffGHGO2 X-Received: by 2002:a17:903:32cb:b0:1ac:94a9:941a with SMTP id i11-20020a17090332cb00b001ac94a9941amr27255366plr.30.1684134501176; Mon, 15 May 2023 00:08:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684134501; cv=none; d=google.com; s=arc-20160816; b=c4rpb0MKZsCIP7VyG4bbIlLsN/zS2iy+3SSMV9bDpreXURK5H9RPlFt/G6QXxtdeVn ED8HEkSTbcjSbZJc7KMSkaM0QeRziQGGe2/pAJqLVij8gDsmg4Pn4QGuTGamYF0q8Ncc G6vGB2TPy5nGKvUceSc/aXaZUrGsJEUxDfV+TRWQNeb7HhdheV7MkSgslcemZGS//uF8 MuUON6WqdflVMhuaV3Jvf8PQxb8sE65NRuRNgZ77SLSyt8gHkMTZcyxl1dYlbb4fnMb6 Pn48recYDDfRgM2Insm842HKTvQUhIWPwWru68+rbfLKvHkWf6hSFDzexvv0c38K2k6v DcFw== 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=IZ0mGxaLYGOffziYtAZK5gSywCy0C41cgOE4ff2V4QY=; b=v7Yo2Sek1+VfDK0W4UaXAMGUUij4CudgDUmxr/eYH7891Tj0x0oUxsUKX2wUu9WOlU m5dv2X4tmNtPXqmnmg5V6mYXXlsC+Cwslqk6SXSS/2iEekhzf76qmqIJjSAWjELxcrUD /5F4AvlApcBD9jT+r0RI7qAEe6//xa7LwuU3OZYOuGnyzc4sTmv9rGLscXzq2DNHu34e rCFPg4OJIFMQryfeHezQn32fFYq2iVq+FbVeEUCIGjiJ4wTiKrB/vfiAAfq+WKDdlJRS 0woD9vO0wPDMlG5R3VygJxtsxbBXm2SfrABFJ41x3C2qQ8pMhSH+wbr+yG3jx8qww5lJ MVpg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=kpCJI9b9; 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 b5-20020a170902d88500b001ac7ea55768si15337311plz.499.2023.05.15.00.08.06; Mon, 15 May 2023 00:08:21 -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=kpCJI9b9; 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 S240137AbjEOGua (ORCPT + 99 others); Mon, 15 May 2023 02:50:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46514 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239097AbjEOGu2 (ORCPT ); Mon, 15 May 2023 02:50:28 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DD1BFE71 for ; Sun, 14 May 2023 23:50: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=1684133426; x=1715669426; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=yZvrzQd70YjHlJlmhsCqEtarCH/SM9v+ndjTDzenB98=; b=kpCJI9b9pJBj8t6ZtHkcaJB5mdcYYlhzZg2OkEF/tslXwD5HJOfWkRM1 RegfLP1Xr2dvUQYEVx/lVGXMwMDuFna58gtrSpMwEtTmLIXBbH+rQ8QNc 1um6mc36yr/qhfX2GbGO9DpGkcxvgW4fziJdrCrzenhHtCcQGuBP0J8K5 uof7dwIIyvJxOg5cULqTlo3IElicGJywNHq75UkL2UA7ttAfuKAXCijWv QHDYojaypa5C44sCWU49F1F2kD1Nt6OvxUDm1ZZzTfoDbNvT++IimNzeg mVUihhis5/QpzbIsG5ILD1fhMAJvVBjzReRCSxwvC1G8lmTvCi1z6f88q w==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966273" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966273" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908595" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908595" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:23 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 02/26] soundwire: intel: add ACE2.x SHIM definitions Date: Mon, 15 May 2023 15:10:18 +0800 Message-Id: <20230515071042.2038-3-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765943018575506900?= X-GMAIL-MSGID: =?utf-8?q?1765943018575506900?= From: Pierre-Louis Bossart With the HDaudio extended link integration, the SHIM and IP registers are split in blocks a) SHIM generic registers b) IP registers (same offsets for Cadence IP as before) c) SHIM vendor-specific registers Add offsets and definitions as defined in the hardware specifications. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- include/linux/soundwire/sdw_intel.h | 75 +++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/include/linux/soundwire/sdw_intel.h b/include/linux/soundwire/sdw_intel.h index 207701aeeb47..8e6183e029fa 100644 --- a/include/linux/soundwire/sdw_intel.h +++ b/include/linux/soundwire/sdw_intel.h @@ -7,6 +7,10 @@ #include #include +/********************************************************************* + * cAVS and ACE1.x definitions + *********************************************************************/ + #define SDW_SHIM_BASE 0x2C000 #define SDW_ALH_BASE 0x2C800 #define SDW_SHIM_BASE_ACE 0x38000 @@ -101,6 +105,77 @@ #define SDW_ALH_STRMZCFG_DMAT GENMASK(7, 0) #define SDW_ALH_STRMZCFG_CHN GENMASK(19, 16) +/********************************************************************* + * ACE2.x definitions for SHIM registers - only accessible when the + * HDAudio extended link LCTL.SPA/CPA = 1. + *********************************************************************/ +/* x variable is link index */ +#define SDW_SHIM2_GENERIC_BASE(x) (0x00030000 + 0x8000 * (x)) +#define SDW_IP_BASE(x) (0x00030100 + 0x8000 * (x)) +#define SDW_SHIM2_VS_BASE(x) (0x00036000 + 0x8000 * (x)) + +/* SHIM2 Generic Registers */ +/* Read-only capabilities */ +#define SDW_SHIM2_LECAP 0x00 +#define SDW_SHIM2_LECAP_HDS BIT(0) /* unset -> Host mode */ +#define SDW_SHIM2_LECAP_MLC GENMASK(3, 1) /* Number of Lanes */ + +/* PCM Stream capabilities */ +#define SDW_SHIM2_PCMSCAP 0x10 +#define SDW_SHIM2_PCMSCAP_ISS GENMASK(3, 0) /* Input-only streams */ +#define SDW_SHIM2_PCMSCAP_OSS GENMASK(7, 4) /* Output-only streams */ +#define SDW_SHIM2_PCMSCAP_BSS GENMASK(12, 8) /* Bidirectional streams */ + +/* Read-only PCM Stream Channel Count, y variable is stream */ +#define SDW_SHIM2_PCMSYCHC(y) (0x14 + (0x4 * (y))) +#define SDW_SHIM2_PCMSYCHC_CS GENMASK(3, 0) /* Channels Supported */ + +/* PCM Stream Channel Map */ +#define SDW_SHIM2_PCMSYCHM(y) (0x16 + (0x4 * (y))) +#define SDW_SHIM2_PCMSYCHM_LCHAN GENMASK(3, 0) /* Lowest channel used by the FIFO port */ +#define SDW_SHIM2_PCMSYCHM_HCHAN GENMASK(7, 4) /* Lowest channel used by the FIFO port */ +#define SDW_SHIM2_PCMSYCHM_STRM GENMASK(13, 8) /* HDaudio stream tag */ +#define SDW_SHIM2_PCMSYCHM_DIR BIT(15) /* HDaudio stream direction */ + +/* SHIM2 vendor-specific registers */ +#define SDW_SHIM2_INTEL_VS_LVSCTL 0x04 +#define SDW_SHIM2_INTEL_VS_LVSCTL_FCG BIT(26) +#define SDW_SHIM2_INTEL_VS_LVSCTL_MLCS GENMASK(29, 27) +#define SDW_SHIM2_INTEL_VS_LVSCTL_DCGD BIT(30) +#define SDW_SHIM2_INTEL_VS_LVSCTL_ICGD BIT(31) + +#define SDW_SHIM2_MLCS_XTAL_CLK 0x0 +#define SDW_SHIM2_MLCS_CARDINAL_CLK 0x1 +#define SDW_SHIM2_MLCS_AUDIO_PLL_CLK 0x2 +#define SDW_SHIM2_MLCS_MCLK_INPUT_CLK 0x3 +#define SDW_SHIM2_MLCS_WOV_RING_OSC_CLK 0x4 + +#define SDW_SHIM2_INTEL_VS_WAKEEN 0x08 +#define SDW_SHIM2_INTEL_VS_WAKEEN_PWE BIT(0) + +#define SDW_SHIM2_INTEL_VS_WAKESTS 0x0A +#define SDW_SHIM2_INTEL_VS_WAKEEN_PWS BIT(0) + +#define SDW_SHIM2_INTEL_VS_IOCTL 0x0C +#define SDW_SHIM2_INTEL_VS_IOCTL_MIF BIT(0) +#define SDW_SHIM2_INTEL_VS_IOCTL_CO BIT(1) +#define SDW_SHIM2_INTEL_VS_IOCTL_COE BIT(2) +#define SDW_SHIM2_INTEL_VS_IOCTL_DO BIT(3) +#define SDW_SHIM2_INTEL_VS_IOCTL_DOE BIT(4) +#define SDW_SHIM2_INTEL_VS_IOCTL_BKE BIT(5) +#define SDW_SHIM2_INTEL_VS_IOCTL_WPDD BIT(6) +#define SDW_SHIM2_INTEL_VS_IOCTL_ODC BIT(7) +#define SDW_SHIM2_INTEL_VS_IOCTL_CIBD BIT(8) +#define SDW_SHIM2_INTEL_VS_IOCTL_DIBD BIT(9) +#define SDW_SHIM2_INTEL_VS_IOCTL_HAMIFD BIT(10) + +#define SDW_SHIM2_INTEL_VS_ACTMCTL 0x0E +#define SDW_SHIM2_INTEL_VS_ACTMCTL_DACTQE BIT(0) +#define SDW_SHIM2_INTEL_VS_ACTMCTL_DODS BIT(1) +#define SDW_SHIM2_INTEL_VS_ACTMCTL_DODSE BIT(2) +#define SDW_SHIM2_INTEL_VS_ACTMCTL_DOAIS GENMASK(4, 3) +#define SDW_SHIM2_INTEL_VS_ACTMCTL_DOAISE BIT(5) + /** * struct sdw_intel_stream_params_data: configuration passed during * the @params_stream callback, e.g. for interaction with DSP From patchwork Mon May 15 07:10:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93934 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6732020vqo; Mon, 15 May 2023 00:27:15 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5ti1rmNlAEwg3ph5FeDHl7A0EKNgJBDD2ejJda2l6Ph2MFd85i4ILbTLdKL1M9DHXx+G94 X-Received: by 2002:a05:6a20:7d82:b0:103:4c5d:667a with SMTP id v2-20020a056a207d8200b001034c5d667amr21574037pzj.4.1684135635401; Mon, 15 May 2023 00:27:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684135635; cv=none; d=google.com; s=arc-20160816; b=bxPv+5ceOm/+Z4RMac2hIrOKP8Npg59Pgy3VjolbTMtQGWyI/PNHSZF+mK0FjgWEVx +925GIzB4J8V9S9tgqthzuwEX6PSU9cZbKiSdbKa8WwwyN4G+cfC5Qq87alqKb9V0FDu 6X72WUgTtGxg+avGjzzNEuNCWqEzalzSb2Qnu9sLqmdJUs05UuP3FkO/+EI+80ihx92n BY4OQjJTtqqiHa5sz1P78m6VpPCzHjnGQ38OF6VPEQ1XWba8+6H2i0BR25SK01/Zaxoh UDD7tm8aHnwzoU0QXRhNMGaOliLLLp/WvvLwgVcnkY+/Wuk8fQAs+G3b2pHD1U/RKVm2 xB2A== 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=9w2gf/1EYi0dB0UBiPRpwCsJTnEoZ8pawAISGr6zUTs=; b=k2Gb7oDIc4+gaaCWmVtaEG1SJMmeUEyQ2soIMrbw4fvgZVLmjnd5WRdYaUjrXGlFRX TBPU5/D6/wVDo6xs8gpbZLLUsvW0kSbiSenjC8DAkEqRIHJ1eAohShtsZs+779StqKOt O9wK0bAi7FhinW4o9oCfcpVaWXPlAWC3yQjcMcao0ESgugfI5bClwSvgOHWWyeU8PXpE cxrK9N5gzB8fIZsSac8zeyHRoXkjx88uccXycdvc1WIOJ0SkguJg7cxx2KNhsDiEk/yL Ltg2zHqpZwFzEJA85znuCzzGPWmwPFk0JU2HUVxyLVe81pWrzjsTHCtVHKaev6q0ORtG T/oQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=N6Z7XoIM; 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 w20-20020a63af14000000b0052cb473f95esi15845756pge.214.2023.05.15.00.26.39; Mon, 15 May 2023 00:27: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=N6Z7XoIM; 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 S240150AbjEOGud (ORCPT + 99 others); Mon, 15 May 2023 02:50:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46584 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240120AbjEOGua (ORCPT ); Mon, 15 May 2023 02:50:30 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1E457C2 for ; Sun, 14 May 2023 23:50:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133429; x=1715669429; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=8qoVMqaRyRfqkzBoyYI1vRz26d5h32BGobLS43A08RI=; b=N6Z7XoIMGyCWCuLOWheLG2Qa9nvBJRgvmhtSmIxDLEnoRvod7d9A7YFR A31DNoxNzaf//JTEoM9xqraH0Jcbm+AEtv9ojWxmWKTLxKjGN7ETSkQZc Ofn6NJH/LqTYbn29OIoiKYdNFIzEecvMBzmDv2o/VVff+c4pVC5dDVJ+4 ofu2Nx0ZU63fISX7zpIiDKAKJY4ApUtgWLPTQbtg2PTTuFFvwmZo0Eu9q b3NJgksVG5i7vLvMVWdXVPjVbaCbZew1SAGCNl2lsYwGyAUwBPp5vIYQd /GHk/SYbkly5LGEO5ezhdl1Ie3eNLAyZkvJm5RPusX3wPJB+Z7iskUctD g==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966288" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966288" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908603" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908603" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:26 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 03/26] soundwire: intel_ace2x: add empty new ops for LunarLake Date: Mon, 15 May 2023 15:10:19 +0800 Message-Id: <20230515071042.2038-4-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765944207745228583?= X-GMAIL-MSGID: =?utf-8?q?1765944207745228583?= From: Pierre-Louis Bossart The register map and programming sequences for the ACE2.x IP are completely different and need to be abstracted with a different set of callbacks. This initial patch adds a new file, follow-up patches will add each required callback. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/Makefile | 2 +- drivers/soundwire/intel_ace2x.c | 19 +++++++++++++++++++ include/linux/soundwire/sdw_intel.h | 1 + 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 drivers/soundwire/intel_ace2x.c diff --git a/drivers/soundwire/Makefile b/drivers/soundwire/Makefile index 925566ff4272..5d612c9b6362 100644 --- a/drivers/soundwire/Makefile +++ b/drivers/soundwire/Makefile @@ -24,7 +24,7 @@ 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_ace2x.o intel_auxdevice.o intel_init.o dmi-quirks.o \ intel_bus_common.o obj-$(CONFIG_SOUNDWIRE_INTEL) += soundwire-intel.o diff --git a/drivers/soundwire/intel_ace2x.c b/drivers/soundwire/intel_ace2x.c new file mode 100644 index 000000000000..623e4fd7db91 --- /dev/null +++ b/drivers/soundwire/intel_ace2x.c @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) +// Copyright(c) 2023 Intel Corporation. All rights reserved. + +/* + * Soundwire Intel ops for LunarLake + */ + +#include +#include +#include +#include +#include +#include "cadence_master.h" +#include "bus.h" +#include "intel.h" + +const struct sdw_intel_hw_ops sdw_intel_lnl_hw_ops = { +}; +EXPORT_SYMBOL_NS(sdw_intel_lnl_hw_ops, SOUNDWIRE_INTEL); diff --git a/include/linux/soundwire/sdw_intel.h b/include/linux/soundwire/sdw_intel.h index 8e6183e029fa..66687e83a94f 100644 --- a/include/linux/soundwire/sdw_intel.h +++ b/include/linux/soundwire/sdw_intel.h @@ -419,5 +419,6 @@ struct sdw_intel_hw_ops { }; extern const struct sdw_intel_hw_ops sdw_intel_cnl_hw_ops; +extern const struct sdw_intel_hw_ops sdw_intel_lnl_hw_ops; #endif From patchwork Mon May 15 07:10:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93902 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6721138vqo; Mon, 15 May 2023 00:04:36 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4SfjJv9URnPsk3fbD4sZIqaS35XnGwtZM3H0yQ0/DgYOo4EnyCakwlHCfhnDnRzu7umNrH X-Received: by 2002:a17:90a:d252:b0:250:1d63:3227 with SMTP id o18-20020a17090ad25200b002501d633227mr32837003pjw.10.1684134276090; Mon, 15 May 2023 00:04:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684134276; cv=none; d=google.com; s=arc-20160816; b=jxO3gP0/a7t1CMR5IQDo3vdBHUapdQzD3F5PONCtUwN5KLhgkrLXKrQphneKteqg4O BCJrA7m8tO6zFWobxo7LaMu3pMcJL7kQLPj27pc6+lgPDFGue0cKyYqKgYqMiuhX71yF 97BwyANDg3GHPmftHoZoCrfSYfqYJkod8Vq42Z7DJ6ccei51wHjid18ilpCizCnNIw6d 96oawhKPjnZmRvIgHG3Ams10PyjMpZEMpuTYgBEgycwn1ATowf/OrUBgzKBiK5utzezS xwxQ5HXShxaLmTmJx8S6nqLw85qjyVMC8FhfNkf9MzsVuZ0Q7hJrS2Wj6j/URZsLOIp7 AlgA== 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=2ORBBafmHCiWNfho5VCGWcfGzBHmq9hxtPd8U78cI6g=; b=bV0ISlWNf6XUBoHukGPHScMcScM8EIvwar4ST7W4M/S1n/AnseKJXZ/kXGJDcSIJk1 /mBG4VlzTTtOiO0lz7qGcQnH3xBPBMD45x5+0e/XFAqMTIBF8d/lgOL0iYOmUV5PR3KZ H4iF5NVkZ6YHWCpen9Od1KeBjXEfW9bttq7QInwGBGSWoHaL1GNTb/MwA9lo4VA1gekK p7uppFEkisPgpc5fOQba34H2BsnfGaHloTWZ2N1d97gHwjsGhf+8vMyQamREDWCRgoq0 5n7JNFj7Ow4OAsWS/CmzbBLudxG+2tiSN4JzgIRkQXS6MFiDMZ1V62elDeoCEIjWJhtF pzjA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=Cqe9DJft; 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 h6-20020a17090ac38600b0024ddf3f8a0bsi8538373pjt.82.2023.05.15.00.04.21; Mon, 15 May 2023 00:04:36 -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=Cqe9DJft; 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 S240188AbjEOGui (ORCPT + 99 others); Mon, 15 May 2023 02:50:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46622 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240145AbjEOGue (ORCPT ); Mon, 15 May 2023 02:50:34 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EC61D10EF for ; Sun, 14 May 2023 23:50:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133431; x=1715669431; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=kmDbCUIES+5ZVKXI71LGbR/AUG9G2hwf5/ixjyhOExs=; b=Cqe9DJftSm9NWlLYnOPKR/KfhojTVNW8jicZkte96+tbyLyr0kjnOG+v N7k2dXcsnORXhbhHIJ3VM13eaBxerQP4lZrtKadnAmdER5K4z2aacfA/d jEyzoNxDZev7gS6FZ8v9bwS3tJcH6J+KTbkwR8qMmoubZtgQowg/oGbdE hgpoyPJ4hTgeoIzeYWoihV7E60c3/pArGi32i1MpfE/yPFvmcJRfXSX13 cWEEDQM0Z9fSLsr4iDGSQIhlQZZk9aGLq0kBshHNe9aX9n+bIL1wZOX5g g+7x6Lufxjh7+YdBzPmXUOr2VYSqjMbt1vYdap+Lpi+qnyi2GRY2fV/Hq g==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966301" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966301" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908617" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908617" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:28 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 04/26] soundwire/ASOC: Intel: update offsets for LunarLake Date: Mon, 15 May 2023 15:10:20 +0800 Message-Id: <20230515071042.2038-5-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765942782454486872?= X-GMAIL-MSGID: =?utf-8?q?1765942782454486872?= From: Pierre-Louis Bossart The previous settings are not applicable, use a flag to determine what the register layout is. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao Acked-by: Mark Brown --- drivers/soundwire/intel.h | 2 ++ drivers/soundwire/intel_init.c | 14 ++++++++++---- include/linux/soundwire/sdw_intel.h | 2 ++ sound/soc/sof/intel/hda.c | 21 +++++++++++++++++---- 4 files changed, 31 insertions(+), 8 deletions(-) diff --git a/drivers/soundwire/intel.h b/drivers/soundwire/intel.h index 09d479f2c77b..51aa42a5a824 100644 --- a/drivers/soundwire/intel.h +++ b/drivers/soundwire/intel.h @@ -11,6 +11,7 @@ * @mmio_base: mmio base of SoundWire registers * @registers: Link IO registers base * @shim: Audio shim pointer + * @shim_vs: Audio vendor-specific shim pointer * @alh: ALH (Audio Link Hub) pointer * @irq: Interrupt line * @ops: Shim callback ops @@ -28,6 +29,7 @@ struct sdw_intel_link_res { void __iomem *mmio_base; /* not strictly needed, useful for debug */ void __iomem *registers; void __iomem *shim; + void __iomem *shim_vs; void __iomem *alh; int irq; const struct sdw_intel_ops *ops; diff --git a/drivers/soundwire/intel_init.c b/drivers/soundwire/intel_init.c index cbe56b993c6c..e0023af9e0e1 100644 --- a/drivers/soundwire/intel_init.c +++ b/drivers/soundwire/intel_init.c @@ -63,10 +63,16 @@ static struct sdw_intel_link_dev *intel_link_dev_register(struct sdw_intel_res * link = &ldev->link_res; link->hw_ops = res->hw_ops; link->mmio_base = res->mmio_base; - link->registers = res->mmio_base + SDW_LINK_BASE - + (SDW_LINK_SIZE * link_id); - link->shim = res->mmio_base + res->shim_base; - link->alh = res->mmio_base + res->alh_base; + if (!res->ext) { + link->registers = res->mmio_base + SDW_LINK_BASE + + (SDW_LINK_SIZE * link_id); + link->shim = res->mmio_base + res->shim_base; + link->alh = res->mmio_base + res->alh_base; + } else { + link->registers = res->mmio_base + SDW_IP_BASE(link_id); + link->shim = res->mmio_base + SDW_SHIM2_GENERIC_BASE(link_id); + link->shim_vs = res->mmio_base + SDW_SHIM2_VS_BASE(link_id); + } link->ops = res->ops; link->dev = res->dev; diff --git a/include/linux/soundwire/sdw_intel.h b/include/linux/soundwire/sdw_intel.h index 66687e83a94f..88eb5bf98140 100644 --- a/include/linux/soundwire/sdw_intel.h +++ b/include/linux/soundwire/sdw_intel.h @@ -323,6 +323,7 @@ struct sdw_intel_ctx { * DSP driver. The quirks are common for all links for now. * @shim_base: sdw shim base. * @alh_base: sdw alh base. + * @ext: extended HDaudio link support */ struct sdw_intel_res { const struct sdw_intel_hw_ops *hw_ops; @@ -337,6 +338,7 @@ struct sdw_intel_res { u32 clock_stop_quirks; u32 shim_base; u32 alh_base; + bool ext; }; /* diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c index 3153e21f100a..793baf60c78b 100644 --- a/sound/soc/sof/intel/hda.c +++ b/sound/soc/sof/intel/hda.c @@ -158,6 +158,7 @@ static int hda_sdw_acpi_scan(struct snd_sof_dev *sdev) static int hda_sdw_probe(struct snd_sof_dev *sdev) { + const struct sof_intel_dsp_desc *chip; struct sof_intel_hda_dev *hdev; struct sdw_intel_res res; void *sdw; @@ -166,10 +167,22 @@ static int hda_sdw_probe(struct snd_sof_dev *sdev) memset(&res, 0, sizeof(res)); - res.hw_ops = &sdw_intel_cnl_hw_ops; - res.mmio_base = sdev->bar[HDA_DSP_BAR]; - res.shim_base = hdev->desc->sdw_shim_base; - res.alh_base = hdev->desc->sdw_alh_base; + chip = get_chip_info(sdev->pdata); + if (chip->hw_ip_version < SOF_INTEL_ACE_2_0) { + res.mmio_base = sdev->bar[HDA_DSP_BAR]; + res.hw_ops = &sdw_intel_cnl_hw_ops; + res.shim_base = hdev->desc->sdw_shim_base; + res.alh_base = hdev->desc->sdw_alh_base; + res.ext = false; + } else { + res.mmio_base = sdev->bar[HDA_DSP_HDA_BAR]; + /* + * the SHIM and SoundWire register offsets are link-specific + * and will be determined when adding auxiliary devices + */ + res.hw_ops = &sdw_intel_lnl_hw_ops; + res.ext = true; + } res.irq = sdev->ipc_irq; res.handle = hdev->info.handle; res.parent = sdev->dev; From patchwork Mon May 15 07:10:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93919 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6727325vqo; Mon, 15 May 2023 00:16:49 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5mjTjrkdoZ/MWMZDq2Ubf9Id9jYluqyjyCdv/3TiUURklfcJJGC1J7rptWkA0CWz9Q/y3c X-Received: by 2002:a17:90a:8049:b0:24d:e929:56cf with SMTP id e9-20020a17090a804900b0024de92956cfmr32378748pjw.39.1684135009003; Mon, 15 May 2023 00:16:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684135008; cv=none; d=google.com; s=arc-20160816; b=dJd2j79nA1p4GvkaudQKzcnflbWluDjNyaOocURyu2irfNj0BB9ozNOLUgi1i3Zn2/ pTHMXs3WeDdzP7aI69CZ3lvMBaZzd1ZjAuzIq8emay1t0uuDNqEx73SOClJyUm98i43b N+M81kVI9yoi+8pzhuopLXDaRiBRWw4hMlZmQ5i1oZfx8EvKdHh3L5hW8U89Hs0+AQt5 C1MrYIYDP3rhjAZDYB1jITb0alkUSqK89djTu6TnPWqRwL8qwUiIsvzx7Yjcv8bbX+3b RUB8h2xXBuLuBYejR0v1gQceD2lYtAgest98XEwqmyMG6cIiPk4aaiO8V6URf2v60EeZ fusg== 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=sjJOEen/mUEUkNulnnUL2exfxVwewOM28in0E8shdwA=; b=wDZGnguh67i2FdfbLeErqs8VzsL79pzYHbpDEK1McyJ3ALAsZLI+O9Aqin65YBbWxJ BB++mt7XSQ78qkbgnwU7W6qU+MB9VqN6fEWPcVDo0F9fkdJrE4b21fxdUootceJIgUCv P0DhcvBtJo19kxg5dCvzMX6Lu6mXekSWQT6o/olIIX4793FLcy2y7JDLRyEfEa5CnZvi 0LaGvSE0/LEu8h4q4COXWtdMY6ib/rUDt34RGlFZvSLYtfCT1/TzJqf5UeM6mEA5AaAn I6fR2pCOe3dXuwVaX5DyW29LqyN4pN3Agnm1FBrt0rnZx0O2QevZ6YViB/603iMygn+o 14wA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=VEak6Fos; 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 v1-20020a637a01000000b00517f0c53072si16504438pgc.170.2023.05.15.00.16.36; Mon, 15 May 2023 00:16:48 -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=VEak6Fos; 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 S240202AbjEOGus (ORCPT + 99 others); Mon, 15 May 2023 02:50:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46858 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240197AbjEOGul (ORCPT ); Mon, 15 May 2023 02:50:41 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 257C7173F for ; Sun, 14 May 2023 23:50: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=1684133434; x=1715669434; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=jzpdfZmzNrU6pw0ISN0oU8vFcN6tRPXs+SPemPddfJg=; b=VEak6Fosbpog38/D+V1nBYZantSpZ5Qwqi0jt2etvleSDHJNby4e3UBs wYwhFwhFe+UQv3GFcLSQYNYU1m4KXKP12jKiTdi0QDL9M5cxl7NBUTdi1 ccI/l4Z5tPPqBVTBA0NbXH2paphEL3NXLXxWAZItEQlLpeolQYDp8OxC+ 8HNqFNbphcGhWoovsBbbIJDawbvqATH4stiHiTaSReTLkBipLZsJyJy5G JFbRGt3BDhMTBwf5oi7TgC8tmyaTI3fIaKCveycUWVF91hj78i1tEtpro 2NJOrTgHM1cnECRYUUhGhqBfeM08Zb9nF0bn+G7BcNDWWNTgaM0+XY3bx w==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966308" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966308" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908629" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908629" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:31 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 05/26] soundwire: intel/cadence: set ip_offset at run-time Date: Mon, 15 May 2023 15:10:21 +0800 Message-Id: <20230515071042.2038-6-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765943551170727434?= X-GMAIL-MSGID: =?utf-8?q?1765943551170727434?= From: Pierre-Louis Bossart Select relevant ip-offset depending on hardware version. This offset is used to access MCP_ or IP_MCP_ registers with a fixed offset. For existing platforms, the offset is exactly zero. Starting with LunarLake, the offset is 0x4000. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/cadence_master.h | 2 ++ drivers/soundwire/intel.h | 2 ++ drivers/soundwire/intel_auxdevice.c | 1 + drivers/soundwire/intel_init.c | 2 ++ 4 files changed, 7 insertions(+) diff --git a/drivers/soundwire/cadence_master.h b/drivers/soundwire/cadence_master.h index 27c56274217f..86a450b1cbda 100644 --- a/drivers/soundwire/cadence_master.h +++ b/drivers/soundwire/cadence_master.h @@ -14,6 +14,8 @@ */ #define CDNS_MCP_IP_MAX_CMD_LEN 32 +#define SDW_CADENCE_MCP_IP_OFFSET 0x4000 + /** * struct sdw_cdns_pdi: PDI (Physical Data Interface) instance * diff --git a/drivers/soundwire/intel.h b/drivers/soundwire/intel.h index 51aa42a5a824..1b23292bb8be 100644 --- a/drivers/soundwire/intel.h +++ b/drivers/soundwire/intel.h @@ -10,6 +10,7 @@ * @hw_ops: platform-specific ops * @mmio_base: mmio base of SoundWire registers * @registers: Link IO registers base + * @ip_offset: offset for MCP_IP registers * @shim: Audio shim pointer * @shim_vs: Audio vendor-specific shim pointer * @alh: ALH (Audio Link Hub) pointer @@ -28,6 +29,7 @@ struct sdw_intel_link_res { void __iomem *mmio_base; /* not strictly needed, useful for debug */ void __iomem *registers; + u32 ip_offset; void __iomem *shim; void __iomem *shim_vs; void __iomem *alh; diff --git a/drivers/soundwire/intel_auxdevice.c b/drivers/soundwire/intel_auxdevice.c index b21e86084f7b..fcdf4f2d60e3 100644 --- a/drivers/soundwire/intel_auxdevice.c +++ b/drivers/soundwire/intel_auxdevice.c @@ -144,6 +144,7 @@ static int intel_link_probe(struct auxiliary_device *auxdev, sdw->link_res = &ldev->link_res; cdns->dev = dev; cdns->registers = sdw->link_res->registers; + cdns->ip_offset = sdw->link_res->ip_offset; cdns->instance = sdw->instance; cdns->msg_count = 0; diff --git a/drivers/soundwire/intel_init.c b/drivers/soundwire/intel_init.c index e0023af9e0e1..43d339c6bcee 100644 --- a/drivers/soundwire/intel_init.c +++ b/drivers/soundwire/intel_init.c @@ -66,10 +66,12 @@ static struct sdw_intel_link_dev *intel_link_dev_register(struct sdw_intel_res * if (!res->ext) { link->registers = res->mmio_base + SDW_LINK_BASE + (SDW_LINK_SIZE * link_id); + link->ip_offset = 0; link->shim = res->mmio_base + res->shim_base; link->alh = res->mmio_base + res->alh_base; } else { link->registers = res->mmio_base + SDW_IP_BASE(link_id); + link->ip_offset = SDW_CADENCE_MCP_IP_OFFSET; link->shim = res->mmio_base + SDW_SHIM2_GENERIC_BASE(link_id); link->shim_vs = res->mmio_base + SDW_SHIM2_VS_BASE(link_id); } From patchwork Mon May 15 07:10:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93896 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6720143vqo; Mon, 15 May 2023 00:02:47 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4WYydBP1/NWKZC59g2zfHEAGbjxDO42MhxgODr4kUHnGjjIosRTdjDRutV8OCN5Bmt4q1i X-Received: by 2002:a05:6a00:17a3:b0:636:f5f4:5308 with SMTP id s35-20020a056a0017a300b00636f5f45308mr46357935pfg.7.1684134167340; Mon, 15 May 2023 00:02:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684134167; cv=none; d=google.com; s=arc-20160816; b=evMpy1CIi1aysAMdl8aGChdGdbpG88w1ZLmjtkp+uru0ZfYGlPdXVzz5tQ7a8sliMh dQDwpTlqy/FydcLJcqn0XJwo2sNVCK5GWVGR4iCgB9Tul4VLhfpz6dapvZ23Eb/JBoXi 4RzoZfXUavDxQpuY0EsdF22+yo1fwZYJFh96UsnhQJ9Y91cLZIioALtmkiHE6d0NgeGG E70jOAKjwCjTLWxKSMZhjJIthxpQFjPyBboR+zWxi7GxWTaSX9MdcJQpUrz3Yv4MITSF gdDUIy3J9tw+RcsEDOkOHQI96F2Dm6yFpixS56UGKhuPXq7kmqItG8ZnU1RJu9HMzOCB YaQg== 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=LI+SlmHiIWQo5zcz6KR7g4k9ybTiiToFoUz9HGLQ2wY=; b=k2/29dJ8I9WPp73ipTRPOVpBUNuZmEt3j/nNOCcvAwk90kEfaVHLCpP+TXE6HTDqGw +v1m7KcScEEGfi+SfzmLVfauI+VFNPbbIFovqjqEfdzSen90MwKBdes6BA0gNiC0KjOJ udFdxLWYzg8iQEPMnM76N4/twPEwCyzla0JM0jeCendM7lqRq3pWNakEeBrN4FniyWFJ tiExZF0or5xW9Th60REUNusbdhxp95zbOSoqFGAczJTskbmEcwh75cCY7iuQIy4gdgvX DyOXMH9wurPY9OHKbiTyV5hlWLg4wVLQgIbZ6z3zcDDBBdA94POGWANRhWx+kUly/Pv7 65zw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=TxaZ0l8w; 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 y76-20020a62644f000000b0063b82925d69si16482048pfb.337.2023.05.15.00.02.20; Mon, 15 May 2023 00:02: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=TxaZ0l8w; 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 S240199AbjEOGu4 (ORCPT + 99 others); Mon, 15 May 2023 02:50:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47348 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240241AbjEOGur (ORCPT ); Mon, 15 May 2023 02:50:47 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5728E1BE4 for ; Sun, 14 May 2023 23:50:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133436; x=1715669436; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=aAq1nEu0w9jquwDbM8Ql9Dgc92dfowXErHtU9iHqtg8=; b=TxaZ0l8wg/g2jE/7zo9RI6M0iFjVo5bXlw3Hveecx4e3ZlwzGMXyZQJ0 47JjznsyZTyoE1doqL5agoWLlfRVrBnZyDGCwfaHMW+b4lhb2w2iZuubM dVztqYchRLcEMcYwgFbQPJ47C6nuwx6zESnyTKCz4XAxzQYBskrIX8RT0 SnHOtlkaG1obMLVDny7hDjP/gkFEK2CvsFw1Lo4Rsv0NzatosQeX6oMAU C7Y/RS4y8Lu4Di6kht2Iid0RKRCEPUKJ65+w/muv6oT2boGhVrsOj6Mg4 Jx3HmQ65monnG3E6nA5h+L/mrgmfvvgNiKYP1ghy9O0U4Iil0z41IAS5u A==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966321" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966321" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908635" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908635" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:33 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 06/26] ASoC/soundwire: intel: pass hdac_bus pointer for link management Date: Mon, 15 May 2023 15:10:22 +0800 Message-Id: <20230515071042.2038-7-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765942668646730606?= X-GMAIL-MSGID: =?utf-8?q?1765942668646730606?= From: Pierre-Louis Bossart The hdac_bus pointer is used to access the extended link information and handle power management. Pass it from the SOF driver down to the auxiliary devices. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao Acked-by: Mark Brown --- drivers/soundwire/intel.h | 4 ++++ drivers/soundwire/intel_init.c | 2 ++ include/linux/soundwire/sdw_intel.h | 4 ++++ sound/soc/sof/intel/hda.c | 1 + 4 files changed, 11 insertions(+) diff --git a/drivers/soundwire/intel.h b/drivers/soundwire/intel.h index 1b23292bb8be..cf9db4906de4 100644 --- a/drivers/soundwire/intel.h +++ b/drivers/soundwire/intel.h @@ -4,6 +4,8 @@ #ifndef __SDW_INTEL_LOCAL_H #define __SDW_INTEL_LOCAL_H +struct hdac_bus; + /** * struct sdw_intel_link_res - Soundwire Intel link resource structure, * typically populated by the controller driver. @@ -23,6 +25,7 @@ * @link_mask: global mask needed for power-up/down sequences * @cdns: Cadence master descriptor * @list: used to walk-through all masters exposed by the same controller + * @hbus: hdac_bus pointer, needed for power management */ struct sdw_intel_link_res { const struct sdw_intel_hw_ops *hw_ops; @@ -42,6 +45,7 @@ struct sdw_intel_link_res { u32 link_mask; struct sdw_cdns *cdns; struct list_head list; + struct hdac_bus *hbus; }; struct sdw_intel { diff --git a/drivers/soundwire/intel_init.c b/drivers/soundwire/intel_init.c index 43d339c6bcee..c918d2b81cc3 100644 --- a/drivers/soundwire/intel_init.c +++ b/drivers/soundwire/intel_init.c @@ -84,6 +84,8 @@ static struct sdw_intel_link_dev *intel_link_dev_register(struct sdw_intel_res * link->shim_mask = &ctx->shim_mask; link->link_mask = ctx->link_mask; + link->hbus = res->hbus; + /* now follow the two-step init/add sequence */ ret = auxiliary_device_init(auxdev); if (ret < 0) { diff --git a/include/linux/soundwire/sdw_intel.h b/include/linux/soundwire/sdw_intel.h index 88eb5bf98140..c4281aa06e2e 100644 --- a/include/linux/soundwire/sdw_intel.h +++ b/include/linux/soundwire/sdw_intel.h @@ -269,6 +269,8 @@ struct sdw_intel_slave_id { struct sdw_slave_id id; }; +struct hdac_bus; + /** * struct sdw_intel_ctx - context allocated by the controller * driver probe @@ -324,6 +326,7 @@ struct sdw_intel_ctx { * @shim_base: sdw shim base. * @alh_base: sdw alh base. * @ext: extended HDaudio link support + * @hbus: hdac_bus pointer, needed for power management */ struct sdw_intel_res { const struct sdw_intel_hw_ops *hw_ops; @@ -339,6 +342,7 @@ struct sdw_intel_res { u32 shim_base; u32 alh_base; bool ext; + struct hdac_bus *hbus; }; /* diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c index 793baf60c78b..4d48f4018617 100644 --- a/sound/soc/sof/intel/hda.c +++ b/sound/soc/sof/intel/hda.c @@ -189,6 +189,7 @@ static int hda_sdw_probe(struct snd_sof_dev *sdev) res.ops = &sdw_callback; res.dev = sdev->dev; res.clock_stop_quirks = sdw_clock_stop_quirks; + res.hbus = sof_to_bus(sdev); /* * ops and arg fields are not populated for now, From patchwork Mon May 15 07:10:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93923 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6727560vqo; Mon, 15 May 2023 00:17:16 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5l0gIRG1KdRyM5UE+puM1PtAwLUN691tBDxoElGz399ErtdbCWBz7mU/ug7qTJJR5x2TFb X-Received: by 2002:a17:90a:df0f:b0:250:c353:8bc3 with SMTP id gp15-20020a17090adf0f00b00250c3538bc3mr17659438pjb.49.1684135036314; Mon, 15 May 2023 00:17:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684135036; cv=none; d=google.com; s=arc-20160816; b=XOeAX2IVcmk51XzHGztH+rftSMy3Vh741JaXXVwIyKtf214JXX7XGMmdkaxioSrHh1 8O/M6M0QnSELGySORgHqbZH67pXEJ91x9KPjc23+dzxtiu96Xq5AfEQrUktXl+spHoG3 venUwZRqsu1D2c4sc/ITAtHqRDN2HmOoz6TseNxnCKDLAdQV8VqCw9N68Soj2pNBvwyj UhxTY8ttbopTyVQv798GrY53nKAahjrRmHXUzAUtjNh7vnrxJBdrWZ6O7fZqth/hxOd2 aJUhJfOCRi8B6vQZZQ/HuwO76wwULopJOqHRFmxJqjp8QXSUBANMbBjoS0oxi0qkcP78 2khw== 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=egEOeknk3ct5mrQBAPnSZnHykbXok01mTcCxV3XOUdI=; b=obW4AaiSY3aMM8L3KmdxQUhRw5pW++AXdl40D68lb+FRMEdQFGJlCf633WOa3Qj3d6 jDuh1On+29pbn+9CFBczGA+cUR2X/q3rvO545mhIjkN9B1L6LWhCZ7e/Qy9ihlmc2++i cY3fRB36dstxfUu5UU3QGpq/YiH9mIGBovmq9rMiA9/7XvrakuluVZpI3WrhopS5CETe ZV4aXswAFTQNy7+7o7Zwhe3LVDjH7H709AfYXKR55uHtAQCNK0B68u3snfds0YIQdp75 gN14BG8Ud1CQ3fBsZQBINurm6UAbMpt8APfWAsXYetHJFOHJzFls6GWJAMOw/Z8YIbCn gD1g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=G9lxGxSw; 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 x36-20020a17090a6c2700b00233e301c780si29236677pjj.31.2023.05.15.00.17.04; Mon, 15 May 2023 00:17:16 -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=G9lxGxSw; 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 S240309AbjEOGu6 (ORCPT + 99 others); Mon, 15 May 2023 02:50:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47372 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240170AbjEOGus (ORCPT ); Mon, 15 May 2023 02:50:48 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7CDE72699 for ; Sun, 14 May 2023 23:50: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=1684133438; x=1715669438; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=xKsOmGgpfRTaoYi/C0Rex9lD4JYFMvLzVqkjtEvqo9k=; b=G9lxGxSw372a26MCw7DfcNPWonstBGIqWG1Rvv0liJ+h1tginpiDrVKY YVbasQqng62u0zT33XIEtAB/KoJdN1goq3YFListrqGYT/EXNoVOUXSd7 h5dtdFVl2wETI1ymY1yQZdmFlf9OZ7XejBMVJzQIUXzWWuHN7HxIeNbsE ZkU0Fh/z3/OAjzSZZGfaxxLkC0X4uaXMGwjdaDZYbQb/wn0qbIANCRzif 3Br/5IVqnsF+fZkoHINikTUfsLZg1n/yACQmO5PPvT/lToI1/NIZHfnA2 LuLlKa0jj/LGI8Q3s7DeOg98iBh0o1s3cLbmR32f37Xq14AV3qMytz13a A==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966331" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966331" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:38 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908641" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908641" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:35 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 07/26] soundwire: intel: add eml_lock in the interface for new platforms Date: Mon, 15 May 2023 15:10:23 +0800 Message-Id: <20230515071042.2038-8-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765943579736229875?= X-GMAIL-MSGID: =?utf-8?q?1765943579736229875?= From: Pierre-Louis Bossart In existing Intel/SoundWire systems, all the SoundWire configuration is 'self-contained', with the 'shim_lock' mutex used to protect access to shared registers in multi-link configurations. With the move of part of the SoundWire registers to the HDaudio multi-link structure, we need a unified lock. The hda-mlink implementation provides an 'eml_lock' that is used to protect shared registers such as LCTL and LSYNC, we can pass it to the SoundWire side. There is no issue with possible dangling pointers since the SoundWire auxiliary devices are children of the PCI device, so the 'eml_lock' cannot be removed while the SoundWire side is in use. This patch only adds the interface for now. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- include/linux/soundwire/sdw_intel.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/linux/soundwire/sdw_intel.h b/include/linux/soundwire/sdw_intel.h index c4281aa06e2e..bafc6f2554b0 100644 --- a/include/linux/soundwire/sdw_intel.h +++ b/include/linux/soundwire/sdw_intel.h @@ -327,6 +327,8 @@ struct sdw_intel_ctx { * @alh_base: sdw alh base. * @ext: extended HDaudio link support * @hbus: hdac_bus pointer, needed for power management + * @eml_lock: mutex protecting shared registers in the HDaudio multi-link + * space */ struct sdw_intel_res { const struct sdw_intel_hw_ops *hw_ops; @@ -343,6 +345,7 @@ struct sdw_intel_res { u32 alh_base; bool ext; struct hdac_bus *hbus; + struct mutex *eml_lock; }; /* From patchwork Mon May 15 07:10:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93921 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6727374vqo; Mon, 15 May 2023 00:16:53 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4vF8cqyvncXVV79pXcNh1h+5UOL7hvEU1a9oRJjX8Yd8rwtZImJr22hgSsLezBzby/xvlo X-Received: by 2002:a05:6a20:8e09:b0:100:9eff:9b95 with SMTP id y9-20020a056a208e0900b001009eff9b95mr33042893pzj.18.1684135013512; Mon, 15 May 2023 00:16:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684135013; cv=none; d=google.com; s=arc-20160816; b=1EL1reZG/5KSC8bqYvIJU43ftxB2JidWz8AAVzRUFfeg7SnikEN6krk990/oMt5QXG ePoMYSLCQzEIqEGWaliULdUGsFxhI42mvCTEG6nbD0n3ve1717M1IqOGNlaAmfaPP0Zl UiQty+qAI8KFmJZVAcQD6WlX4BJZdFtyYcYUFXRLsQiH2at5XLP9/M2nbs5JPx17xWyt B8ayNLOIRNrywaXvFYHyJCGmTnrH2s9AxGdRnH6UlHTO4TxXRKcgeCOKQSqxXLrQ9tB9 IkMUamkINAzOHCZZXfsTxroj1ML+pB0UlMqyLfxKnAJ7OUylW8+n6hmQpOTu7RXNYeAh 5w9A== 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=t4AFYyimFhMeVzeDN2ziarB/OBJQJvBNjK+277Cavig=; b=zs7Fi0lCsU24Nudhw5g/8qAURyecHpORecO7F6K1CyKS+tHBEI2OLEn3eW6Ju4+rov tMHVKMJntlOyYCjdUBI89lf4RrpGCYNtuRbe3qbqQ6CJ7p4ecJv9XjmCagIVCbueSkPb Gs745dPaIPVJwzlF0AbLz7+boie1wpznb9TEZ2P8TVeE+/wG6gyi/5KxedeZ3mBQkyzd Pp/AahDybyuq5qAOCubffIntbaWtlDGyw1v/hGpg66Qx0V9vQFfLAz8yjJtlw6Gt9F3M +q5t8hoP0HBb93yU9CBUMOBRB4YLypMCUrtsOfW//ccFJ4jA3N7sTvV7Sjo0vYIfoRu3 tifQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=Ku+Jk3cp; 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 g126-20020a636b84000000b0050ac7d1b32asi14370747pgc.603.2023.05.15.00.16.41; Mon, 15 May 2023 00:16:53 -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=Ku+Jk3cp; 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 S240259AbjEOGvQ (ORCPT + 99 others); Mon, 15 May 2023 02:51:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46706 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240308AbjEOGu6 (ORCPT ); Mon, 15 May 2023 02:50:58 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 98DAB2D45 for ; Sun, 14 May 2023 23:50:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133443; x=1715669443; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=nQ5bs2pm3yyJqyCctssYUsybKhCJPd02FInwiNQFhys=; b=Ku+Jk3cpmKBW7YdsC390nU5nJxA1iLNaMF4K1Als9La6rR18PGOCJdDV qpGK3keqMzWf3GV2emWwhGArEy6p8mJ2vb5a5NTI/TbOdUH+jB9JlRiip aifLn5KFLtR0ZpkOXEmmNArxgRgOWCKt6cMcI95cABBjrDc8KZv01hjr4 6M3wjnkY6YOx+5FviQp1GT1BaXFGCrimHD0IPpflouuIC1F9LO5zUXWsP j+8Cej99ncBQFO4Z9tTSILX9G39Lh/ulOQ+r+ZUQNA7C3OXnnNwp0V506 DIuN1qsRwVeKAZw1Np7x0eNteyd9u4m2ZbFk81DFse76G5BeLst+hyoZF Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966344" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966344" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908651" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908651" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:38 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 08/26] ASoC: SOF: Intel: hda: retrieve SoundWire eml_lock and pass pointer Date: Mon, 15 May 2023 15:10:24 +0800 Message-Id: <20230515071042.2038-9-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765943556155850097?= X-GMAIL-MSGID: =?utf-8?q?1765943556155850097?= From: Pierre-Louis Bossart Use new helper and interface to make sure the HDaudio and SoundWire parts use the same mutex when accessing shared registers. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao Acked-by: Mark Brown --- sound/soc/sof/intel/hda.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c index 4d48f4018617..388e41057172 100644 --- a/sound/soc/sof/intel/hda.c +++ b/sound/soc/sof/intel/hda.c @@ -175,6 +175,15 @@ static int hda_sdw_probe(struct snd_sof_dev *sdev) res.alh_base = hdev->desc->sdw_alh_base; res.ext = false; } else { + /* + * retrieve eml_lock needed to protect shared registers + * in the HDaudio multi-link areas + */ + res.eml_lock = hdac_bus_eml_get_mutex(sof_to_bus(sdev), true, + AZX_REG_ML_LEPTR_ID_SDW); + if (!res.eml_lock) + return -ENODEV; + res.mmio_base = sdev->bar[HDA_DSP_HDA_BAR]; /* * the SHIM and SoundWire register offsets are link-specific From patchwork Mon May 15 07:10:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93898 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6720546vqo; Mon, 15 May 2023 00:03:29 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ51JH3n1422cE40TOoHX5JcK3G/R1thDVMTrzrDj6ZuG8yNC0reweSMtE/Wy9c16AA8YsvJ X-Received: by 2002:a05:6a20:7d82:b0:103:4c5d:667a with SMTP id v2-20020a056a207d8200b001034c5d667amr21502923pzj.4.1684134209421; Mon, 15 May 2023 00:03:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684134209; cv=none; d=google.com; s=arc-20160816; b=BgqPRDHp7pzMUDaDVKUvjiZyJRxvWvTh9aPjZ2XhPVQ+JaoGNxV+QTLc7olJFyLpNI QxoviFAMefLpHcXdXX9XGH3xiwb2LhlWVuZ3/4VE9WlMcxiqX3h3zZOkTg4+R4ypp84q sLpdXVsucMIheTPHQCrvwuatthVJuTxNdBvIPLLPKxvxl8q2mlJSEfl0Pjqn2TZMFR5h hB9Q++xiZgAASELd1V0xValUi6judOFNt3D5hfL68E84zfikIt34IjK3iQykpq5wpSy7 0c1iqPVYtKeTHRDGHJnQzG2kF6KVoVw+aF31K/UJ2EnkYMEbpHQyZ12j4MdLNHppeElF 9sog== 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=2tjFx+EwjF46txVH0aaI6m4KnUrp3qhDO7HaUj8kOKg=; b=RC6MqmP64LGm/GyGGZOHaGd/ZZtv/2AfPGfK/pwsXWF1/MApXvjzhfdU+nb5OIff41 1bmpNYKQK73eMQNVb1gtA+3rJfnJtNBQKIiXoa2sdpEVO9aMjYEha40QGXgSF8OIRvjn /N8V0pF9nbEVzlHGCXM6WSMA+k0APzZY/WJ44HErGYVhPndn3Ed1Eh8SlfjqmfFlmbBO +BCZUqpPczy/n/c+LonHpiQZhoM3lsonBHzUxDXVnQWiaPTCETFGw3lkhLy3WNc3V2OR TMXjoXdClnP6tNKuclf7LpgqSDKzpgMWVIXnF7cGTR/yDWDQ0peJpS9wKfTEVV4Jn61X C+Cg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=jmf9OMQ7; 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 x185-20020a6386c2000000b00528c6c2ea96si2148801pgd.306.2023.05.15.00.03.16; Mon, 15 May 2023 00:03: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=jmf9OMQ7; 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 S240335AbjEOGvZ (ORCPT + 99 others); Mon, 15 May 2023 02:51:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47122 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240214AbjEOGvJ (ORCPT ); Mon, 15 May 2023 02:51:09 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3FB891986 for ; Sun, 14 May 2023 23:50:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133446; x=1715669446; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Dypjg8PFg6rfCWgJzAX1z/pRx6Y007Vaip829IVJOYA=; b=jmf9OMQ7uKtPrWJNxaXvo2FyfcUbeIRE3Ui7j71r0Wd/nvVyNpVljkKp eIUnZNiMzfSZGvPx8sVlzQondHdWDWQBR1d4mI95YbiyHYrQQ2SAPCwy2 jE50s84+RZU9DUNFUa6z7Qhcu+JIa0D4RGIUdqmzAjHobVjlG3EocidDn 84xFGSEuH9M7lw/LCdrUDzI0WaVfnQKM/LDrqu9FoBYvL9Qgh8DCVbDNr DU9hnzO5Cje+8Ry57RY8Bf0xAJq0HYcSFeLENjbh7xGASeYa0XLI71spa BFE/Ss2ypkspST5TTPt2c6HERvNahIafSrIiAj/fM2Xv8Z7ptUmPIQrVn Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966358" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966358" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908670" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908670" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:40 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 09/26] soundwire: intel_init: use eml_lock parameter Date: Mon, 15 May 2023 15:10:25 +0800 Message-Id: <20230515071042.2038-10-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765942712672880996?= X-GMAIL-MSGID: =?utf-8?q?1765942712672880996?= From: Pierre-Louis Bossart Now that the ASoC/SOF/HDAudio parts has retrieved the mutex and set the parameter, we can use it to share the same synchronization across the two domains. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/intel_init.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/soundwire/intel_init.c b/drivers/soundwire/intel_init.c index c918d2b81cc3..534c8795e7e8 100644 --- a/drivers/soundwire/intel_init.c +++ b/drivers/soundwire/intel_init.c @@ -69,18 +69,19 @@ static struct sdw_intel_link_dev *intel_link_dev_register(struct sdw_intel_res * link->ip_offset = 0; link->shim = res->mmio_base + res->shim_base; link->alh = res->mmio_base + res->alh_base; + link->shim_lock = &ctx->shim_lock; } else { link->registers = res->mmio_base + SDW_IP_BASE(link_id); link->ip_offset = SDW_CADENCE_MCP_IP_OFFSET; link->shim = res->mmio_base + SDW_SHIM2_GENERIC_BASE(link_id); link->shim_vs = res->mmio_base + SDW_SHIM2_VS_BASE(link_id); + link->shim_lock = res->eml_lock; } link->ops = res->ops; link->dev = res->dev; link->clock_stop_quirks = res->clock_stop_quirks; - link->shim_lock = &ctx->shim_lock; link->shim_mask = &ctx->shim_mask; link->link_mask = ctx->link_mask; From patchwork Mon May 15 07:10:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93920 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6727333vqo; Mon, 15 May 2023 00:16:50 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ79rIQN1F5A19wG8zQG6aEsxmWXLyyTJdKQCYnX3aasR4PlOXg8rbvdw6fcqHHULl2HUC+P X-Received: by 2002:a05:6a00:80c:b0:64c:b45e:bcbf with SMTP id m12-20020a056a00080c00b0064cb45ebcbfmr230721pfk.4.1684135009989; Mon, 15 May 2023 00:16:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684135009; cv=none; d=google.com; s=arc-20160816; b=PWJdcyk1n4cQolVa1YeuRtnFU73v1sfgnKOotIea7mPJ2JptT4jLikwl/ZKddhqYkW SpgQ4NNeZRi6vMsZ3Gw+YP93WmQGUyUcU3srvkAsQF2ImK5ceDPzr4indFI6WZk0XczW m/OFJ52U4Dm/6YrdNMwJZ7AKRhD1hGpMSgLOQuyvcTY7/5Q5shS/ksSehANqGJDh+fLS 75mh3uevgYrXN5CboMCWLKYORVUsMmMKwqUwdo0EzgwSOKCzAlojuxVdVwNB28v6f+jf MS/YfzXuPoNStwdCSWS7RsYSkGUwEj0IaMaET+Yoy16VqJKcu7/VVkyIqVhqhIdvGh7l t3eA== 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=8G6WWSA6CDO3v2LsuIxw1lXIFXFQZY/vq0dRg5A0p3c=; b=WLkkmAV+Uo7OUG4OgT95mPMbn6siq+h3Zdsir9ISNcbXuWQTx0fyFgfBhPXZonEM6N 3mAVtBdMP67cHH2V4eqXNt8kchPybcNl4kUOHknyutuAcN4iV6vaataD+q6I/F5Lhd1E 1YRpkeslisMKtMrvUE/fUOaAm+osr8XQB9D8MKSVU+G27yabft18mXcu+5XvRuDkykkP ow1H0sE5DmGw80CJCwAq4ntfneR5EcUbF66oOWZQtsRi4rTyhbmQPWBuz8w0PGOTwYIO BEqgwErjwU8AeQsU18nuRGz/jEzw2XLrTKP0kpXX0HxMeFBux94SvNYrr2/VfmrRXtXj LWtw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=IEBtRTUF; 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 t15-20020a63780f000000b00524da606617si15564548pgc.233.2023.05.15.00.16.37; Mon, 15 May 2023 00:16:49 -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=IEBtRTUF; 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 S240319AbjEOGve (ORCPT + 99 others); Mon, 15 May 2023 02:51:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48086 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240313AbjEOGvT (ORCPT ); Mon, 15 May 2023 02:51:19 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E6354E6A for ; Sun, 14 May 2023 23:50:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133454; x=1715669454; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=XvfbnjlaB9am2ZcV6awW54L+055YaQ1c356nRelvRBE=; b=IEBtRTUFI7ECuLyh940lMPK4IuGiyCWkA8Wv2HbojdfE09EHcyJjEvxY TPup89r7SZd4v8C9NC8o26uAgQ6V3CnSjOg+zrxiM3XM++1ycfo+mutOs UGnXc3/sWlSC4HUsQf8IpDOAYcbeZW3n/ehocYGfUqs0g7QAI/Jo8n9gB uOry/qH7lZu+JHKFeiTkJ0oUqddE8mgt/cjLU/TJdHyeNQoplDVjahyfS jnVvbvLdtBMqMoj2Q+dqTgzyTZ84bWn14OeSFwXQDaQcpCG9QrkZzjw9W Z6CxKYtyi/7r40nAIf2ojH6aJFioRO3ZwTh6njkBu3v6EsMXTOUror9rU w==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966370" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966370" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908683" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908683" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:42 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 10/26] soundwire: intel_ace2x: add debugfs support Date: Mon, 15 May 2023 15:10:26 +0800 Message-Id: <20230515071042.2038-11-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765943552452424557?= X-GMAIL-MSGID: =?utf-8?q?1765943552452424557?= From: Pierre-Louis Bossart Add access to registers in SHIM and SHIM_VS (vendor-specific) areas. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/Makefile | 3 +- drivers/soundwire/intel.h | 8 ++ drivers/soundwire/intel_ace2x.c | 2 + drivers/soundwire/intel_ace2x_debugfs.c | 147 ++++++++++++++++++++++++ 4 files changed, 159 insertions(+), 1 deletion(-) create mode 100644 drivers/soundwire/intel_ace2x_debugfs.c diff --git a/drivers/soundwire/Makefile b/drivers/soundwire/Makefile index 5d612c9b6362..c3d3ab3262d3 100644 --- a/drivers/soundwire/Makefile +++ b/drivers/soundwire/Makefile @@ -24,7 +24,8 @@ soundwire-cadence-y := cadence_master.o obj-$(CONFIG_SOUNDWIRE_CADENCE) += soundwire-cadence.o #Intel driver -soundwire-intel-y := intel.o intel_ace2x.o intel_auxdevice.o intel_init.o dmi-quirks.o \ +soundwire-intel-y := intel.o intel_ace2x.o intel_ace2x_debugfs.o \ + intel_auxdevice.o intel_init.o dmi-quirks.o \ intel_bus_common.o obj-$(CONFIG_SOUNDWIRE_INTEL) += soundwire-intel.o diff --git a/drivers/soundwire/intel.h b/drivers/soundwire/intel.h index cf9db4906de4..511932c55216 100644 --- a/drivers/soundwire/intel.h +++ b/drivers/soundwire/intel.h @@ -95,6 +95,14 @@ static inline void intel_writew(void __iomem *base, int offset, u16 value) (sdw)->link_res->hw_ops->cb) #define SDW_INTEL_OPS(sdw, cb) ((sdw)->link_res->hw_ops->cb) +#ifdef CONFIG_DEBUG_FS +void intel_ace2x_debugfs_init(struct sdw_intel *sdw); +void intel_ace2x_debugfs_exit(struct sdw_intel *sdw); +#else +static inline void intel_ace2x_debugfs_init(struct sdw_intel *sdw) {} +static inline void intel_ace2x_debugfs_exit(struct sdw_intel *sdw) {} +#endif + static inline void sdw_intel_debugfs_init(struct sdw_intel *sdw) { if (SDW_INTEL_CHECK_OPS(sdw, debugfs_init)) diff --git a/drivers/soundwire/intel_ace2x.c b/drivers/soundwire/intel_ace2x.c index 623e4fd7db91..1c47bb2adb93 100644 --- a/drivers/soundwire/intel_ace2x.c +++ b/drivers/soundwire/intel_ace2x.c @@ -15,5 +15,7 @@ #include "intel.h" const struct sdw_intel_hw_ops sdw_intel_lnl_hw_ops = { + .debugfs_init = intel_ace2x_debugfs_init, + .debugfs_exit = intel_ace2x_debugfs_exit, }; EXPORT_SYMBOL_NS(sdw_intel_lnl_hw_ops, SOUNDWIRE_INTEL); diff --git a/drivers/soundwire/intel_ace2x_debugfs.c b/drivers/soundwire/intel_ace2x_debugfs.c new file mode 100644 index 000000000000..3d24661ffd37 --- /dev/null +++ b/drivers/soundwire/intel_ace2x_debugfs.c @@ -0,0 +1,147 @@ +// SPDX-License-Identifier: GPL-2.0-only +// Copyright(c) 2023 Intel Corporation. All rights reserved. + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "bus.h" +#include "cadence_master.h" +#include "intel.h" + +/* + * debugfs + */ +#ifdef CONFIG_DEBUG_FS + +#define RD_BUF (2 * PAGE_SIZE) + +static ssize_t intel_sprintf(void __iomem *mem, bool l, + char *buf, size_t pos, unsigned int reg) +{ + int value; + + if (l) + value = intel_readl(mem, reg); + else + value = intel_readw(mem, reg); + + return scnprintf(buf + pos, RD_BUF - pos, "%4x\t%4x\n", reg, value); +} + +static int intel_reg_show(struct seq_file *s_file, void *data) +{ + struct sdw_intel *sdw = s_file->private; + void __iomem *s = sdw->link_res->shim; + void __iomem *vs_s = sdw->link_res->shim_vs; + ssize_t ret; + u32 pcm_cap; + int pcm_bd; + char *buf; + int j; + + buf = kzalloc(RD_BUF, GFP_KERNEL); + if (!buf) + return -ENOMEM; + + ret = scnprintf(buf, RD_BUF, "Register Value\n"); + ret += scnprintf(buf + ret, RD_BUF - ret, "\nShim\n"); + + ret += intel_sprintf(s, true, buf, ret, SDW_SHIM2_LECAP); + ret += intel_sprintf(s, false, buf, ret, SDW_SHIM2_PCMSCAP); + + pcm_cap = intel_readw(s, SDW_SHIM2_PCMSCAP); + pcm_bd = FIELD_GET(SDW_SHIM2_PCMSCAP_BSS, pcm_cap); + + for (j = 0; j < pcm_bd; j++) { + ret += intel_sprintf(s, false, buf, ret, + SDW_SHIM2_PCMSYCHM(j)); + ret += intel_sprintf(s, false, buf, ret, + SDW_SHIM2_PCMSYCHC(j)); + } + + ret += scnprintf(buf + ret, RD_BUF - ret, "\nVS CLK controls\n"); + ret += intel_sprintf(vs_s, true, buf, ret, SDW_SHIM2_INTEL_VS_LVSCTL); + + ret += scnprintf(buf + ret, RD_BUF - ret, "\nVS Wake registers\n"); + ret += intel_sprintf(vs_s, false, buf, ret, SDW_SHIM2_INTEL_VS_WAKEEN); + ret += intel_sprintf(vs_s, false, buf, ret, SDW_SHIM2_INTEL_VS_WAKESTS); + + ret += scnprintf(buf + ret, RD_BUF - ret, "\nVS IOCTL, ACTMCTL\n"); + ret += intel_sprintf(vs_s, false, buf, ret, SDW_SHIM2_INTEL_VS_IOCTL); + ret += intel_sprintf(vs_s, false, buf, ret, SDW_SHIM2_INTEL_VS_ACTMCTL); + + seq_printf(s_file, "%s", buf); + kfree(buf); + + return 0; +} +DEFINE_SHOW_ATTRIBUTE(intel_reg); + +static int intel_set_m_datamode(void *data, u64 value) +{ + struct sdw_intel *sdw = data; + struct sdw_bus *bus = &sdw->cdns.bus; + + if (value > SDW_PORT_DATA_MODE_STATIC_1) + return -EINVAL; + + /* Userspace changed the hardware state behind the kernel's back */ + add_taint(TAINT_USER, LOCKDEP_STILL_OK); + + bus->params.m_data_mode = value; + + return 0; +} +DEFINE_DEBUGFS_ATTRIBUTE(intel_set_m_datamode_fops, NULL, + intel_set_m_datamode, "%llu\n"); + +static int intel_set_s_datamode(void *data, u64 value) +{ + struct sdw_intel *sdw = data; + struct sdw_bus *bus = &sdw->cdns.bus; + + if (value > SDW_PORT_DATA_MODE_STATIC_1) + return -EINVAL; + + /* Userspace changed the hardware state behind the kernel's back */ + add_taint(TAINT_USER, LOCKDEP_STILL_OK); + + bus->params.s_data_mode = value; + + return 0; +} +DEFINE_DEBUGFS_ATTRIBUTE(intel_set_s_datamode_fops, NULL, + intel_set_s_datamode, "%llu\n"); + +void intel_ace2x_debugfs_init(struct sdw_intel *sdw) +{ + struct dentry *root = sdw->cdns.bus.debugfs; + + if (!root) + return; + + sdw->debugfs = debugfs_create_dir("intel-sdw", root); + + debugfs_create_file("intel-registers", 0400, sdw->debugfs, sdw, + &intel_reg_fops); + + debugfs_create_file("intel-m-datamode", 0200, sdw->debugfs, sdw, + &intel_set_m_datamode_fops); + + debugfs_create_file("intel-s-datamode", 0200, sdw->debugfs, sdw, + &intel_set_s_datamode_fops); + + sdw_cdns_debugfs_init(&sdw->cdns, sdw->debugfs); +} + +void intel_ace2x_debugfs_exit(struct sdw_intel *sdw) +{ + debugfs_remove_recursive(sdw->debugfs); +} +#endif /* CONFIG_DEBUG_FS */ From patchwork Mon May 15 07:10:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93904 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6722933vqo; Mon, 15 May 2023 00:07:43 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6l0EiLjfy3mvl2xrYxcsJLAGHMyrXeeMV9w3bEIxPx6ezylNCS2jFLI1DH7z/sdsqNnihK X-Received: by 2002:a05:6a00:168b:b0:63d:2d7d:b6f2 with SMTP id k11-20020a056a00168b00b0063d2d7db6f2mr43525118pfc.4.1684134462977; Mon, 15 May 2023 00:07:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684134462; cv=none; d=google.com; s=arc-20160816; b=HWHM9NAIZoxRwTuAhuZ7C97tDo1G/mJY7QfCG91A0pOFp7IhiiD9gv7SEYoL/MqT5V LFy5Mb3Hp7zEQ5sf4o/UXsDhd5YsdDG+Hpmp63iNZsFqf69C9t2GBWrDUtmV3Xf3zn/z tD17fj1lf9LsnEjAiwV626qhF8R/86dh/p4EPmgEGv8v9SYMNSLXyPfKSJHZUNvrJXsS vxbtavXOpVG/SP1XY3IhxEq8ZK/Rsw+4HUHkxavmDyy7JNhGOTybsdesZHRGwrGBIy67 TCLK60vQrWw6ThFzW8g5iXZxLyCq9e05djAnh1xg0qMhtz/LUsvIzmsyZofoJk3EyGko XoUg== 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=b8/+lkGQ4xQ4v5F5224EhB8/afRLlGzzTSmckQo4XHE=; b=NNHDMNb8g3HU56hSBECoDq1qVaTkd9JNIx1SjF5QvwqDuwjGugGazfXSvVMEQoYZm7 QPPeZZ5Nc3P/+Hqq0yoASqN3ZKZ3vrvt+uX/rsISwbN/87pj8BO3C/DCm4KqdbFaKbUZ RGvLNAq6h1in/3Zz2v+/B5E4CXSAs8oQkQMV50G/988y6rOgTiiUWS3A4TQ0T0xocMeF y4EBrbTvG6eRziuEAs40CXtnFQVBe41YUoBMPNBOQJM7tS1YRhc8qqCTpE1L9iIp0n/N oMymMrTInzFHaoDNnv59GNuUG/es0X2HGMVMccdzzYbDp1kA5RIRoyjMyFXqYmNP6bjX ObMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=Jdxs3TBc; 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 b19-20020aa79513000000b00625559a78a2si16176329pfp.107.2023.05.15.00.07.28; Mon, 15 May 2023 00:07:42 -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=Jdxs3TBc; 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 S240360AbjEOGvi (ORCPT + 99 others); Mon, 15 May 2023 02:51:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47422 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240366AbjEOGvY (ORCPT ); Mon, 15 May 2023 02:51:24 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AE5512684 for ; Sun, 14 May 2023 23:50:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133458; x=1715669458; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=zfPDFAUHD0yEFTAl6FmNYsvKI40bPenFTeUs36GSzIY=; b=Jdxs3TBck9QVe9l8Y9bzOVtPFLEbll9RrBaJ6UaNWVxy85WG1U1haccE eMf0Y0FcSlvoNo7iJY5vjs1vBCJi2+nfunSv/qGr/jLukmqpCKCGluz+E 2buV0+4uEMrg72GaOkNamEpoZ1i2AUcrVTwzvrcMUjH3z0aJKOcflA4nJ 4mSTnBmTOOI0rFkIaCqROjSNAo5SFRCih99N+gVygr6Q3p7Xmfw1DkyuZ KVj5fnnAM1RmQja+irj/bAW5lGTdBOp0UX4A0s+zz7A+RNX0qN9jRgV0E RniUYmcg5WPd4dLXmFayVSHNuXevun+JjZuLZ6gfQaa0RmCOKGHz+fMxO A==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966377" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966377" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908697" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908697" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:45 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 11/26] soundwire: intel_ace2x: add link power-up/down helpers Date: Mon, 15 May 2023 15:10:27 +0800 Message-Id: <20230515071042.2038-12-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765942978198590649?= X-GMAIL-MSGID: =?utf-8?q?1765942978198590649?= From: Pierre-Louis Bossart only power-up/down for now, the frequency is not set. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/intel_ace2x.c | 50 +++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/drivers/soundwire/intel_ace2x.c b/drivers/soundwire/intel_ace2x.c index 1c47bb2adb93..5b6a608e63ba 100644 --- a/drivers/soundwire/intel_ace2x.c +++ b/drivers/soundwire/intel_ace2x.c @@ -10,12 +10,62 @@ #include #include #include +#include #include "cadence_master.h" #include "bus.h" #include "intel.h" +static int intel_link_power_up(struct sdw_intel *sdw) +{ + int ret; + + mutex_lock(sdw->link_res->shim_lock); + + ret = hdac_bus_eml_sdw_power_up_unlocked(sdw->link_res->hbus, sdw->instance); + if (ret < 0) { + dev_err(sdw->cdns.dev, "%s: hdac_bus_eml_sdw_power_up failed: %d\n", + __func__, ret); + goto out; + } + + sdw->cdns.link_up = true; +out: + mutex_unlock(sdw->link_res->shim_lock); + + return ret; +} + +static int intel_link_power_down(struct sdw_intel *sdw) +{ + int ret; + + mutex_lock(sdw->link_res->shim_lock); + + sdw->cdns.link_up = false; + + ret = hdac_bus_eml_sdw_power_down_unlocked(sdw->link_res->hbus, sdw->instance); + if (ret < 0) { + dev_err(sdw->cdns.dev, "%s: hdac_bus_eml_sdw_power_down failed: %d\n", + __func__, ret); + + /* + * we leave the sdw->cdns.link_up flag as false since we've disabled + * the link at this point and cannot handle interrupts any longer. + */ + } + + mutex_unlock(sdw->link_res->shim_lock); + + return ret; +} + const struct sdw_intel_hw_ops sdw_intel_lnl_hw_ops = { .debugfs_init = intel_ace2x_debugfs_init, .debugfs_exit = intel_ace2x_debugfs_exit, + + .link_power_up = intel_link_power_up, + .link_power_down = intel_link_power_down, }; EXPORT_SYMBOL_NS(sdw_intel_lnl_hw_ops, SOUNDWIRE_INTEL); + +MODULE_IMPORT_NS(SND_SOC_SOF_HDA_MLINK); From patchwork Mon May 15 07:10:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93939 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6733805vqo; Mon, 15 May 2023 00:31:45 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5h6VS5weTUi/dnpFHKQQ/i4Ya51YREM4yA3r72/O6rRAL8bNCIYl8SoRb1t4hf7gNwwJ62 X-Received: by 2002:a17:903:32c5:b0:1aa:e5cd:647a with SMTP id i5-20020a17090332c500b001aae5cd647amr46044597plr.23.1684135905164; Mon, 15 May 2023 00:31:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684135905; cv=none; d=google.com; s=arc-20160816; b=JOOg/QA/EQp/9yIq33HNbPzoSkUdvGDsiOUIJJGzLG/pLHn6gzuFBIRD1ZXWNfHJ1q 3ckP4h5jkPP1HEJmvRodwuDbWyuw/Uh3xkj64kK0Md0ZhQej3FHrUSNjcfBB1EvE9NjI fCPce9h8nqtyDSk+mMo4BkWJzfRNS4o08V6E5WqBRuKTOk5N5kSAFhKPJ9rzohQ3Plbh m25/T9YhfxSuyeK8k1S7AfrNpdkeHTarZJhTkX8XFuSJ86bf539mIsVUD2f0g1Pho0Op vOG8+lxyvRIJ1ZQ9DCfME7tenXRrFsU8VPvXOGY0N+tUcvSxMj9RNA0ULjzJ8gb0xOzV 3KMw== 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=WGGXlQghPSdmVTg9Bhhj5B+HROJoHvXLSMO0L97gHWQ=; b=axMKM42ge5ZpQ5M14CEx2cRGf2ccTT6j+qBFo20iDcLdU0MWORpyliSk7XmAYRGCa4 XNqpxmxp7uMp3a31AG/Qucd+d/3ASwRAjHEH3Roq+J1pWS4GqhN7HE76eu5qjf7jTnNM AME5wDSdIf46DWrR8UsES6YjhrqQrQhQL+8VxjmKtebMeRTuMPWc4P1DmCGXpD0T3Hko wUJvLO/lALP1aI7M37eiyFBS0ZH+hmNjT2OnzmZW3OF+Y6aSk+hmVCjMQZj95PiyH/ly ZGG11z/S6BDYYFm/5Ci1n1MmEJTTnNBLWPlxSpxUZeoWWw6Nn5ULgeIxKo+0bEYCxmuR 55Yg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=Jyb9vydA; 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 d2-20020a170902aa8200b001aaf5dcd774si15040401plr.173.2023.05.15.00.31.33; Mon, 15 May 2023 00:31:45 -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=Jyb9vydA; 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 S240239AbjEOGvr (ORCPT + 99 others); Mon, 15 May 2023 02:51:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48298 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240355AbjEOGv3 (ORCPT ); Mon, 15 May 2023 02:51:29 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 98AA72D7F for ; Sun, 14 May 2023 23:51:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133465; x=1715669465; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=aNL2KliVK/W0PGGaQa+13McnVurhskx2OOU+yOO7uSY=; b=Jyb9vydAHkPvidL3mW6nWVqQt+eC6/rkl3l/LwJ24StHAjz9q6s1l2kX 2VXSoXSXXDJz5yAAkJtVAz3SWx0iqtVKxeq79hptwzTUWfwJUB9tdTeg6 aC2Pc35LhLU1eO5fgv0q+4LOzoyCH5PnRyT0G4YGPgBnS58wQ+egVo1Xt NXxPHp8sG0CjpGmLeLXpMukulznFsX5dA3Jc33IZV1QJRwH/aVJU8GTV2 fD16utJpen7huF4KwByKHZmEiE7Mador/9Aqwmd+LnOtY5PoVdgcm3h/E EC5Mn0c6CWWr5n/zke/Mxxa13a7+Cdh0hHCn3BC/N7D5ij1oJPkuHUsTn w==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966393" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966393" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:49 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908711" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908711" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:47 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 12/26] soundwire: intel_ace2x: set SYNCPRD before powering-up Date: Mon, 15 May 2023 15:10:28 +0800 Message-Id: <20230515071042.2038-13-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765944490498021672?= X-GMAIL-MSGID: =?utf-8?q?1765944490498021672?= From: Pierre-Louis Bossart The registers used for multi-link synchronization are no longer in the SHIM but in the HDaudio multi-link capability space. Use helpers to configure the SYNCPRD value, and wait for SYNCPU to change after powering-up. Note that the SYNCPRD value is shared between all sublinks, for obvious reasons if those links are supposed to be synchronized. The value of SYNCPRD is programmed only once for all sublinks. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/intel_ace2x.c | 42 +++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/drivers/soundwire/intel_ace2x.c b/drivers/soundwire/intel_ace2x.c index 5b6a608e63ba..01668246b7ba 100644 --- a/drivers/soundwire/intel_ace2x.c +++ b/drivers/soundwire/intel_ace2x.c @@ -17,17 +17,51 @@ static int intel_link_power_up(struct sdw_intel *sdw) { + struct sdw_bus *bus = &sdw->cdns.bus; + struct sdw_master_prop *prop = &bus->prop; + u32 *shim_mask = sdw->link_res->shim_mask; + unsigned int link_id = sdw->instance; + u32 syncprd; int ret; mutex_lock(sdw->link_res->shim_lock); - ret = hdac_bus_eml_sdw_power_up_unlocked(sdw->link_res->hbus, sdw->instance); + if (!*shim_mask) { + /* we first need to program the SyncPRD/CPU registers */ + dev_dbg(sdw->cdns.dev, "first link up, programming SYNCPRD\n"); + + if (prop->mclk_freq % 6000000) + syncprd = SDW_SHIM_SYNC_SYNCPRD_VAL_38_4; + else + syncprd = SDW_SHIM_SYNC_SYNCPRD_VAL_24; + + ret = hdac_bus_eml_sdw_set_syncprd_unlocked(sdw->link_res->hbus, syncprd); + if (ret < 0) { + dev_err(sdw->cdns.dev, "%s: hdac_bus_eml_sdw_set_syncprd failed: %d\n", + __func__, ret); + goto out; + } + } + + ret = hdac_bus_eml_sdw_power_up_unlocked(sdw->link_res->hbus, link_id); if (ret < 0) { dev_err(sdw->cdns.dev, "%s: hdac_bus_eml_sdw_power_up failed: %d\n", __func__, ret); goto out; } + if (!*shim_mask) { + /* SYNCPU will change once link is active */ + ret = hdac_bus_eml_sdw_wait_syncpu_unlocked(sdw->link_res->hbus); + if (ret < 0) { + dev_err(sdw->cdns.dev, "%s: hdac_bus_eml_sdw_wait_syncpu failed: %d\n", + __func__, ret); + goto out; + } + } + + *shim_mask |= BIT(link_id); + sdw->cdns.link_up = true; out: mutex_unlock(sdw->link_res->shim_lock); @@ -37,13 +71,17 @@ static int intel_link_power_up(struct sdw_intel *sdw) static int intel_link_power_down(struct sdw_intel *sdw) { + u32 *shim_mask = sdw->link_res->shim_mask; + unsigned int link_id = sdw->instance; int ret; mutex_lock(sdw->link_res->shim_lock); sdw->cdns.link_up = false; - ret = hdac_bus_eml_sdw_power_down_unlocked(sdw->link_res->hbus, sdw->instance); + *shim_mask &= ~BIT(link_id); + + ret = hdac_bus_eml_sdw_power_down_unlocked(sdw->link_res->hbus, link_id); if (ret < 0) { dev_err(sdw->cdns.dev, "%s: hdac_bus_eml_sdw_power_down failed: %d\n", __func__, ret); From patchwork Mon May 15 07:10:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93908 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6726130vqo; Mon, 15 May 2023 00:14:19 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7gwsQNfHri85sy67VNY2Zmt+WNXvaq+BaQfmWgNOUZOuTxe7YaxOYjoMfP/ydy9dKpp9+p X-Received: by 2002:a17:902:d2c4:b0:1ad:cef8:f913 with SMTP id n4-20020a170902d2c400b001adcef8f913mr15817020plc.44.1684134859359; Mon, 15 May 2023 00:14:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684134859; cv=none; d=google.com; s=arc-20160816; b=ZEiwuRbA0qIzk5QsdkDc4hKAWo9h9orJIemZuFXsrtkrUd3KFxn7ksH1KlyxjAkUzr KDsCqxO1BrOvt/A1RlhS8DM3Wt0/fO5kIe1ivhrlwUfmiuqvYCJv2ZvuVVA/uinGFbpb 78/xVnUo373rPoJiHxz3S/FtQu6CoIfdm8wH3jTX1mUlU7ZyvpPiGKRMorW/fDX1wT09 f9A9cO0hJa1uT1UXi9oCR3IZ7gT4se5NfUdMPPA7a90vKY7q3Dl+jbZQvHwwcMgjzg0w LMFHJ1Ypl7socHAdyRUIGmtU1JuDfOz6v6Qx0mmYE6gLLfjVm4Fx/aTc9LZ9JSmxYX12 OcoA== 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=wu7uyeRggKxs6RRio4FUbDPBaFaikyMpt0UMKj2E4QA=; b=HIT6KpPI7r5X7U+2OzAVljvOGQobQ45B1mXMNFMQouaUkP2wqIM0Be7W/sI4b93r8r 1GL+ZzDGubldc0oZAtGmZ5AK6aD4PzcOQP00pqRmPDOfvVwbE1zFM7IVYcVG/+3Df/nW O2gk1atmSMib4X3xn/hJRabuD//nf0Jrw6uh0UNUDrTJi3nc3hSKr8XY2SdXlMLVgq7F QqeFfYBxbzbZhh4g43it/z+NOB4xQdSLszvzNjlfs6wBdpoCscBuHZ7srS0JuVa3WKAw jfQPrw2h/hiJ5evUElNTP5irlDkndXo2XL2zvkVCsST4M+htp8kyAQzelWmVflIxBw8N YYrA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=XOoAOqhA; 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 r18-20020a170902be1200b001a6f0e81ec7si14823873pls.237.2023.05.15.00.14.07; Mon, 15 May 2023 00:14:19 -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=XOoAOqhA; 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 S240446AbjEOGwD (ORCPT + 99 others); Mon, 15 May 2023 02:52:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47940 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240381AbjEOGvn (ORCPT ); Mon, 15 May 2023 02:51:43 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3D05826A0 for ; Sun, 14 May 2023 23:51:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133479; x=1715669479; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=kjKTx32w9YdnZJ7K83qEoOALY8hrbkCtcZcfoAY0U2Q=; b=XOoAOqhASP1RI3fzose7GyGXWxHigv1+KNYVl6Q8/c7BR7ePF2dnbJHl ySW1+Y8++rLTUsudUdTj8xRj6PmboT+KuDOZS6Swq0arFv8kJD5j/uewC IBDdYMv1/REb69pLfjqOMeiG2K42Of94xvqMGsJHMqRHAXWe+HV81gYoB QrZtK3S4xXCchER7OK/bJ2l8eR6y44djpt+Q3LdfX6bUdLehHMiwqN4zo eI/Cf1vMXzlBiUqa/3KEXuWYnO8WSxeuAIfMujymvMcLkoH2nOOKIPa4u Utt/EUkNDFFnD7vNjgtFOyGXX7bnS4f4AUMK0kpKCWBgQanyueOi+JkTU Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966408" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966408" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908716" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908716" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:49 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 13/26] soundwire: intel_ace2x: configure link PHY Date: Mon, 15 May 2023 15:10:29 +0800 Message-Id: <20230515071042.2038-14-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765943394655496333?= X-GMAIL-MSGID: =?utf-8?q?1765943394655496333?= From: Pierre-Louis Bossart Unlike previous hardware generations, the glue-to-master transition is not managed by software, instead the transitions are managed as part of the power-up/down sequences controlled by SPA/CPA bits. The only thing that's required is to configure the link PHY for 'normal' operation instead of the PHY test mode. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/intel_ace2x.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/soundwire/intel_ace2x.c b/drivers/soundwire/intel_ace2x.c index 01668246b7ba..5deff32976f1 100644 --- a/drivers/soundwire/intel_ace2x.c +++ b/drivers/soundwire/intel_ace2x.c @@ -15,6 +15,22 @@ #include "bus.h" #include "intel.h" +/* + * shim vendor-specific (vs) ops + */ + +static void intel_shim_vs_init(struct sdw_intel *sdw) +{ + void __iomem *shim_vs = sdw->link_res->shim_vs; + u16 act = 0; + + u16p_replace_bits(&act, 0x1, SDW_SHIM2_INTEL_VS_ACTMCTL_DOAIS); + act |= SDW_SHIM2_INTEL_VS_ACTMCTL_DACTQE; + act |= SDW_SHIM2_INTEL_VS_ACTMCTL_DODS; + intel_writew(shim_vs, SDW_SHIM2_INTEL_VS_ACTMCTL, act); + usleep_range(10, 15); +} + static int intel_link_power_up(struct sdw_intel *sdw) { struct sdw_bus *bus = &sdw->cdns.bus; @@ -63,6 +79,9 @@ static int intel_link_power_up(struct sdw_intel *sdw) *shim_mask |= BIT(link_id); sdw->cdns.link_up = true; + + intel_shim_vs_init(sdw); + out: mutex_unlock(sdw->link_res->shim_lock); From patchwork Mon May 15 07:10:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93914 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6726818vqo; Mon, 15 May 2023 00:15:49 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5nFXktbQm3BmYP4WbM1VYN1XytWtFgdSsxW9KUb+qY2vTmoySQOKGyaPZU5yK/YXPUtBqM X-Received: by 2002:a05:6a20:258d:b0:106:4197:b7ff with SMTP id k13-20020a056a20258d00b001064197b7ffmr1560198pzd.30.1684134949217; Mon, 15 May 2023 00:15:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684134949; cv=none; d=google.com; s=arc-20160816; b=kWwPeq8LmKrBPctTGRskZt7qtjOhfh7uwi6c9xQHePcTKsBkDHGrsn48aNA9oHDi42 cW8q4c59w1PVB9MKNAbSE3FkT5TqgXZbChqj8jI6jc6eSdLTrOKk71irzNMDU9u+XdzU NAXVUzkMNyZrmj3AEoRLnxtj7HDv8EQqlE2s/I6IYrKizPrK8TU1nmj2c0gdLT4u6DKk iyoBCAtou5ie+IIu2N1yTb2vbJ54NCdw1eOc3424iJ/azERJerrG0RXgF8zOjOjDcaP0 1YBwVI0dLFk8JxfrxnUKsQnRs8b74a/m5pgRCIuX+opcZNs9DIL7s1x7Frpbd/wWrfJf wWpA== 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=4E9YcUoN5h07+n9SM8RGgKUv4AWgGav8tw8XYW3AGtY=; b=plU0Xw2781Y5flwkOv6U+AEUaTLN11cLqkcqfq2NHjCHaluhpVZ6WFn0QTqCZpRObL inM141cqlSw2sZAdIQxoMZ0FxzbYZqKM/R+kyTKuUOTTggmpYFeUch438BAHIKmkMOG7 Mu5SOtxi0O9UielDJHOyRIH42Iu1x6IAaRTwkvpSHsMaorfGaVYQwp+ZMw5nYk7d2oTv jrRFTOVI35S7Jn/2j9UWExkzSuF/RxKUY8MJgEWpHOXf6f6lloc05bWzXKYRV8sByGQs LaEqWDl8TaWp0fIfs4MHsXgh9hfVhJIwbrIJqPvML3qFhCgvSsBAQRyjpX5AkP3K0wdk MZFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=oARujuJ+; 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 s71-20020a63774a000000b0053076900facsi10705628pgc.864.2023.05.15.00.15.36; Mon, 15 May 2023 00:15:49 -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=oARujuJ+; 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 S240292AbjEOGwL (ORCPT + 99 others); Mon, 15 May 2023 02:52:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48926 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240275AbjEOGvr (ORCPT ); Mon, 15 May 2023 02:51:47 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0AE031BC2 for ; Sun, 14 May 2023 23:51:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133484; x=1715669484; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=+NUsvy+Y8PVO2h/Op18ecWWhry3F8Mgpf7FkeQTkvn0=; b=oARujuJ+JNIYigcwMM9TinWyrrchY4iTywsHA4KrBm4aIDoWLarJoJL8 1a/5vkkh6pg4i++D/eTSvah2MFVm9j9wciu4b9ZSmF/TQlW2YiFey+Nyy N1fUzfEFcX2eEDL+zmQYO8iySB0Nk/j7dFk5qgVRBWH/sSciWHiQZkFQt 1amy+QAX9HYwJ6+Q2Ilc3AhiS+jOkSuXFagPQUm0qJoeGuF0mKnjyUIJp Y8AudIgok3E6qQX1kon7MNNuNKzF+wS8BjtfQxLHWWOGKcsBUv8HVilr8 ArHL9GTYKZ3SfqYIIXr4W7IRDIu98FmebmZz/iagltB+QYRtZ/Tk+aDTw g==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966431" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966431" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:54 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908730" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908730" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:52 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 14/26] soundwire: intel_ace2x: add DAI registration Date: Mon, 15 May 2023 15:10:30 +0800 Message-Id: <20230515071042.2038-15-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765943488418950195?= X-GMAIL-MSGID: =?utf-8?q?1765943488418950195?= From: Pierre-Louis Bossart The code is similar to the previous implementation, the only difference is that the PDI descriptors are now in different areas. Using common helpers proves tricky with multiple changed registers, workarounds that are no longer necessary. It's simpler to duplicate the intel_register_dai() function rather than try to add multiple levels of abstraction and indirections. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/intel_ace2x.c | 161 ++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) diff --git a/drivers/soundwire/intel_ace2x.c b/drivers/soundwire/intel_ace2x.c index 5deff32976f1..d6d5e6e070f4 100644 --- a/drivers/soundwire/intel_ace2x.c +++ b/drivers/soundwire/intel_ace2x.c @@ -116,10 +116,171 @@ static int intel_link_power_down(struct sdw_intel *sdw) return ret; } +/* + * DAI operations + */ +static const struct snd_soc_dai_ops intel_pcm_dai_ops = { +}; + +static const struct snd_soc_component_driver dai_component = { + .name = "soundwire", +}; + +/* + * PDI routines + */ +static void intel_pdi_init(struct sdw_intel *sdw, + struct sdw_cdns_stream_config *config) +{ + void __iomem *shim = sdw->link_res->shim; + int pcm_cap; + + /* PCM Stream Capability */ + pcm_cap = intel_readw(shim, SDW_SHIM2_PCMSCAP); + + config->pcm_bd = FIELD_GET(SDW_SHIM2_PCMSCAP_BSS, pcm_cap); + config->pcm_in = FIELD_GET(SDW_SHIM2_PCMSCAP_ISS, pcm_cap); + config->pcm_out = FIELD_GET(SDW_SHIM2_PCMSCAP_ISS, pcm_cap); + + dev_dbg(sdw->cdns.dev, "PCM cap bd:%d in:%d out:%d\n", + config->pcm_bd, config->pcm_in, config->pcm_out); +} + +static int +intel_pdi_get_ch_cap(struct sdw_intel *sdw, unsigned int pdi_num) +{ + void __iomem *shim = sdw->link_res->shim; + + /* zero based values for channel count in register */ + return intel_readw(shim, SDW_SHIM2_PCMSYCHC(pdi_num)) + 1; +} + +static void intel_pdi_get_ch_update(struct sdw_intel *sdw, + struct sdw_cdns_pdi *pdi, + unsigned int num_pdi, + unsigned int *num_ch) +{ + int ch_count = 0; + int i; + + for (i = 0; i < num_pdi; i++) { + pdi->ch_count = intel_pdi_get_ch_cap(sdw, pdi->num); + ch_count += pdi->ch_count; + pdi++; + } + + *num_ch = ch_count; +} + +static void intel_pdi_stream_ch_update(struct sdw_intel *sdw, + struct sdw_cdns_streams *stream) +{ + intel_pdi_get_ch_update(sdw, stream->bd, stream->num_bd, + &stream->num_ch_bd); + + intel_pdi_get_ch_update(sdw, stream->in, stream->num_in, + &stream->num_ch_in); + + intel_pdi_get_ch_update(sdw, stream->out, stream->num_out, + &stream->num_ch_out); +} + +static int intel_create_dai(struct sdw_cdns *cdns, + struct snd_soc_dai_driver *dais, + enum intel_pdi_type type, + u32 num, u32 off, u32 max_ch) +{ + int i; + + if (!num) + return 0; + + for (i = off; i < (off + num); i++) { + dais[i].name = devm_kasprintf(cdns->dev, GFP_KERNEL, + "SDW%d Pin%d", + cdns->instance, i); + if (!dais[i].name) + return -ENOMEM; + + if (type == INTEL_PDI_BD || type == INTEL_PDI_OUT) { + dais[i].playback.channels_min = 1; + dais[i].playback.channels_max = max_ch; + } + + if (type == INTEL_PDI_BD || type == INTEL_PDI_IN) { + dais[i].capture.channels_min = 1; + dais[i].capture.channels_max = max_ch; + } + + dais[i].ops = &intel_pcm_dai_ops; + } + + return 0; +} + +static int intel_register_dai(struct sdw_intel *sdw) +{ + struct sdw_cdns_dai_runtime **dai_runtime_array; + struct sdw_cdns_stream_config config; + struct sdw_cdns *cdns = &sdw->cdns; + struct sdw_cdns_streams *stream; + struct snd_soc_dai_driver *dais; + int num_dai; + int ret; + int off = 0; + + /* Read the PDI config and initialize cadence PDI */ + intel_pdi_init(sdw, &config); + ret = sdw_cdns_pdi_init(cdns, config); + if (ret) + return ret; + + 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; + + dai_runtime_array = devm_kcalloc(cdns->dev, num_dai, + sizeof(struct sdw_cdns_dai_runtime *), + GFP_KERNEL); + if (!dai_runtime_array) + return -ENOMEM; + cdns->dai_runtime_array = dai_runtime_array; + + dais = devm_kcalloc(cdns->dev, num_dai, sizeof(*dais), GFP_KERNEL); + if (!dais) + return -ENOMEM; + + /* Create PCM DAIs */ + stream = &cdns->pcm; + + ret = intel_create_dai(cdns, dais, INTEL_PDI_IN, cdns->pcm.num_in, + off, stream->num_ch_in); + if (ret) + return ret; + + off += cdns->pcm.num_in; + ret = intel_create_dai(cdns, dais, INTEL_PDI_OUT, cdns->pcm.num_out, + off, stream->num_ch_out); + if (ret) + return ret; + + off += cdns->pcm.num_out; + ret = intel_create_dai(cdns, dais, INTEL_PDI_BD, cdns->pcm.num_bd, + off, stream->num_ch_bd); + if (ret) + return ret; + + return devm_snd_soc_register_component(cdns->dev, &dai_component, + dais, num_dai); +} + const struct sdw_intel_hw_ops sdw_intel_lnl_hw_ops = { .debugfs_init = intel_ace2x_debugfs_init, .debugfs_exit = intel_ace2x_debugfs_exit, + .register_dai = intel_register_dai, + .link_power_up = intel_link_power_up, .link_power_down = intel_link_power_down, }; From patchwork Mon May 15 07:10:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93915 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6726908vqo; Mon, 15 May 2023 00:16:00 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5Vy2HmwHo7jJgZwTZDGNpWhGzOuL1CU0666tUui3n9jFU3DPd9SoA+94hNxYCFB6j01po2 X-Received: by 2002:a05:6a00:2e05:b0:63e:6b8a:7975 with SMTP id fc5-20020a056a002e0500b0063e6b8a7975mr40049302pfb.9.1684134959999; Mon, 15 May 2023 00:15:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684134959; cv=none; d=google.com; s=arc-20160816; b=PKQ3lAG6u1NIsUmZXy6Ui79/1lNw22LZWK8yJdekIJAzUvwUSENbyw0H6IvN+UzCmQ Re8EygUX0mGn1nN57cDBk5w3Hf27UkvazoOETIptfLZBgdxCaE6q6rA7dfGglYcbfPw4 povcF8SbPfJtir6urRpSgHiWdHKNN1mPaJLtCgbiJT47NRC0CN2P649BudywKK3utO0o QF5AkKVj5duUQUFc3xa6T8bTdiD2rKIlGXfGHWWWqcBUf7AjKVW3GrGPEr+pTLjwvzBW XecYyTwWquK+3MiT5C4vlsg2tD/D6K+Iepaq/Qm6LyriRph2QHEs/f15XSfGeIfSpTGl u4oA== 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=cE4yQdnF4vYtxmVNZ5ogMN6hmlaVotI7z6xYxCz7D6o=; b=UQE74aoXwmtND8fLkvInrH7v/xx41xC82yqmNFtLY6pkxXpUtPlBUtcGAYc3tl+hNA aHz3fAsgbdeElzB/mvjqiUwvcQspuPXZUWVo7rdzupKt/rwnJKPdWhD1u7k2zFGSaybX NDptqUh2jBiSvukxImjhg9G33lvYMmKVEf/aNIJkwgj7ZGS776xw9xSMxk+oDY1SDi9f 9HlMBXITh4imsBAlMnFsSfBVZGOCHf2o/+cVtLaVaQ8IgGEFWKnbAvUupSSt0DL1j2rl Oyv+Ln7TYJQjrAGQiK+H4Rl/eREjO+4Cmr1+glfnE/fsNKhzCC7z9X7gZTeQCtu8TUB0 ceUw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=S+NrvFbR; 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 g8-20020aa79f08000000b00645edbb3916si16830762pfr.37.2023.05.15.00.15.47; Mon, 15 May 2023 00:15:59 -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=S+NrvFbR; 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 S240365AbjEOGwO (ORCPT + 99 others); Mon, 15 May 2023 02:52:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49084 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240315AbjEOGvv (ORCPT ); Mon, 15 May 2023 02:51:51 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E7115171C for ; Sun, 14 May 2023 23:51:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133489; x=1715669489; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=wsFbcSJtx/AlSmGIw0DdUSJEopY6I39DINuaH9UuTy0=; b=S+NrvFbR0iDHJ5XGAcV6zcKUC6rqeVW1EuFQ5OBbsxGdvV3APGPQ+x/1 6h61y+zXBu6FZF536cbf5q9HBckn6uEXsubRnmaF6IDRtyjlXE1BpD1h1 hzOdysSETzY7UWw014WBKYtZRZ7/7JToO3EQ7NEBdYETZzef1JaXXH4iN w1V4pdsTQERQNGdf0nfq3mWul7lC3bIUigsbQk8KpSaxkUL0gWLzepxRb IMNpd3Ibw4nSswvB20i9fO4w+E8vLrF+kKZXbW1Qs6MHOV3jcj4xapuNU 9uApUMCyxHyiMn1MS8S3xtjZSi3s1j0G5CJQQOq2A0Hjv80sivUiSnOpM g==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966445" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966445" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:57 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908736" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908736" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:54 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 15/26] soundwire: intel_ace2x: add sync_arm/sync_go helpers Date: Mon, 15 May 2023 15:10:31 +0800 Message-Id: <20230515071042.2038-16-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765943499916828289?= X-GMAIL-MSGID: =?utf-8?q?1765943499916828289?= From: Pierre-Louis Bossart Same functionality as before, but with the registers moved to the HDaudio multi-link area. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/intel_ace2x.c | 39 +++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/drivers/soundwire/intel_ace2x.c b/drivers/soundwire/intel_ace2x.c index d6d5e6e070f4..20b8806f7de6 100644 --- a/drivers/soundwire/intel_ace2x.c +++ b/drivers/soundwire/intel_ace2x.c @@ -116,6 +116,41 @@ static int intel_link_power_down(struct sdw_intel *sdw) return ret; } +static void intel_sync_arm(struct sdw_intel *sdw) +{ + unsigned int link_id = sdw->instance; + + mutex_lock(sdw->link_res->shim_lock); + + hdac_bus_eml_sdw_sync_arm_unlocked(sdw->link_res->hbus, link_id); + + mutex_unlock(sdw->link_res->shim_lock); +} + +static int intel_sync_go_unlocked(struct sdw_intel *sdw) +{ + int ret; + + ret = hdac_bus_eml_sdw_sync_go_unlocked(sdw->link_res->hbus); + if (ret < 0) + dev_err(sdw->cdns.dev, "%s: SyncGO clear failed: %d\n", __func__, ret); + + return ret; +} + +static int intel_sync_go(struct sdw_intel *sdw) +{ + int ret; + + mutex_lock(sdw->link_res->shim_lock); + + ret = intel_sync_go_unlocked(sdw); + + mutex_unlock(sdw->link_res->shim_lock); + + return ret; +} + /* * DAI operations */ @@ -283,6 +318,10 @@ const struct sdw_intel_hw_ops sdw_intel_lnl_hw_ops = { .link_power_up = intel_link_power_up, .link_power_down = intel_link_power_down, + + .sync_arm = intel_sync_arm, + .sync_go_unlocked = intel_sync_go_unlocked, + .sync_go = intel_sync_go, }; EXPORT_SYMBOL_NS(sdw_intel_lnl_hw_ops, SOUNDWIRE_INTEL); From patchwork Mon May 15 07:10:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93903 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6722217vqo; Mon, 15 May 2023 00:06:22 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6Bu4JOrv/h5M84qgMmxe1+G7PdIzKXsQQ6P6hnihwSLYK3kxZMnvVwrFImD6C21T0rjdOn X-Received: by 2002:a05:6a20:8f28:b0:101:2160:ff8f with SMTP id b40-20020a056a208f2800b001012160ff8fmr28704385pzk.11.1684134382163; Mon, 15 May 2023 00:06:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684134382; cv=none; d=google.com; s=arc-20160816; b=FzmG+Dk/KkSACdabpp6s1BOVA29BIgPbNNpgVoQTfATPNBmUWRc1w1UsnuaymeDi3R MC6Lhf4WKbMortmejX+hOkUrAqzYn/il6jFiuZVCHagvwN9fSuvdu74Cwqb0cQLXRg7k fBU+narNU0QnF4KIvo+f0sADWJPfNgf+CyCwLccEvmeTEvp9EaqloguW2j5NXXPXY/Fu Hu8hchak0QpftlYA+ez1Wa/YKXrKWlZJSeGAPyK45nJ6XPKx1PaeqzUIozKqSpKLWqYa 5S2rUeuvI6/dFGi8MGeL9F26ghkszMN60YCXJw8gI3XSw3SsKWJkhNnBXVeh2eK7UYn/ ldaQ== 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=3asURzMTqvnGXTfpGr6HUR/6oBrdGQuFANnKp7iJJ5g=; b=PKRvpuzjOi6wlUYYxIAUedxwMakvLKF89pOLLmuNhTQ5h71wKm38GIUuggQN3VXZ6V +OGeupkuhd1Su7+pnm/+/P0X6wnbcA0CIri1cJQLgrJzUozxvk21N8A29fJgV27r9mcU yiw366JnUwo3Hi/pWbKT3+0Bsq58GLJ3xTz7twsuQl7UdtnXVGVGcqiftMa7UzNKzx4j dbJNVaBSqsITGYheWn9nfHfNH9jZ7ucs6dY4S/K6O26+j/Cdn8bpvRotNcYrgDB5OGSD UKUROIkRuiRs4DJZTkhA+2hQdAeex2Wxh4oJSg5axpmZMdR47eLQrpddzZ1zpwYASvlj Ur/A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=g4EB1dP6; 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 d187-20020a6336c4000000b005181ce23024si16561515pga.896.2023.05.15.00.06.09; Mon, 15 May 2023 00:06:22 -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=g4EB1dP6; 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 S240436AbjEOGw0 (ORCPT + 99 others); Mon, 15 May 2023 02:52:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49500 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238487AbjEOGwE (ORCPT ); Mon, 15 May 2023 02:52:04 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CD3E52D51 for ; Sun, 14 May 2023 23:51:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133503; x=1715669503; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=q80CBcxn2QOQK8sFpcJ2zT5Gn5sp4JMMdHxIOJazfZ4=; b=g4EB1dP6Opf3Znpafx6Mv0zO7rPg7lCCS/N8lK25F3wAO3UChXTHE0BW 8rRItxImrUeQ5DbiHhlVkrYk4uOSFiyKySGyyBKHUSCwq6S6eBAMkccS9 G9XL5a0253+fVyoFWSVydximG5vDrwsm623KaztyyfNcSU3fO+vVoPpQS fy2BC6hUqSq6T6fUc9GNMkCMpPXbb/RPsljdxvJWKH9XXAMa8hpeWRes0 iV7ZHoc+fkeEBaeSqUTSMwqpawx+VSQNHnlMSobBfaMIb6evKlzcLUYev VJ8oYAfaieqDEQQtItWPPl88DdYIyInuarJLjsYJ0sKk4khPWPHYBqFYc A==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966459" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966459" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908742" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908742" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:57 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 16/26] soundwire: intel_ace2x: use common helpers for bus start/stop Date: Mon, 15 May 2023 15:10:32 +0800 Message-Id: <20230515071042.2038-17-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765942894348108638?= X-GMAIL-MSGID: =?utf-8?q?1765942894348108638?= From: Pierre-Louis Bossart The sequences are so far identical, so the abstraction is a bit over-engineered. In time we will simplify if there is no need to special case or work-around programming sequences. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/intel_ace2x.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/soundwire/intel_ace2x.c b/drivers/soundwire/intel_ace2x.c index 20b8806f7de6..2e33e8a00b55 100644 --- a/drivers/soundwire/intel_ace2x.c +++ b/drivers/soundwire/intel_ace2x.c @@ -316,6 +316,12 @@ const struct sdw_intel_hw_ops sdw_intel_lnl_hw_ops = { .register_dai = intel_register_dai, + .check_clock_stop = intel_check_clock_stop, + .start_bus = intel_start_bus, + .start_bus_after_reset = intel_start_bus_after_reset, + .start_bus_after_clock_stop = intel_start_bus_after_clock_stop, + .stop_bus = intel_stop_bus, + .link_power_up = intel_link_power_up, .link_power_down = intel_link_power_down, From patchwork Mon May 15 07:10:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93917 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6727006vqo; Mon, 15 May 2023 00:16:10 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ53w69jT6J0C4cBYKiLlryaHZDpkBAKZixSNP7WUHJMpoLt3mLz6hX7xGaNF5nDI8ApL151 X-Received: by 2002:a17:90a:fd8e:b0:250:2922:1f3c with SMTP id cx14-20020a17090afd8e00b0025029221f3cmr34049252pjb.33.1684134970353; Mon, 15 May 2023 00:16:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684134970; cv=none; d=google.com; s=arc-20160816; b=KNExHpak6bI/92zZ+n75qAGCpoWw+ozVk+rCtJxP5o2LEUJM/LDnOo+zJiDQmi8eWV 6owgb1gYTHedLzxR4EH1oZ/drxTJM37Y9FIhu665wtfzrz8EeU78N1WwVkJ0SyxMQTt+ lysxSNjl0Q70Q5va2bR9XqFHoOYON5gzSCkJBBfQq+swplFZ2QyQpUVu98gVVw1v4lki 9CMQlNdVyMukizahBgcuCIXX/Wmv0/ABnyuvEsfkdUZQABk7N2Tl5oX9sMypjlF52qXT 3yKiVl9cqrONrc/krukfsP4p8OeTJbPP3Xp5YvQQUYUmVY6Z4dv/sVg6qLvvYb8yF0/v oqsQ== 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=TnGCqRNvSF7cM39BYxj+PHoEsbgY/zcrEgNOoMiMnJs=; b=wxz0O+ChwCjkAXnE8yjY4mwqE9Llad+K0BK1+gLKB99367sePlBsuIH8DRE4L+OO8l 378Y7gHbqszOVynVZ4jTGzmkJHBFnA+h1BE2XfwvrlyzNDvYGeZQJynm9Iab7CjNBV0n KixkY0ch6tSdL3f5kFOOckgyMWOxlUm7qaIvUCtdBaVqWP1KnmihFSdHBpsbVV13JgH4 +BLgzkjrpV9t5tYPF2pFXh9tv2RfTF53hQd210+yG5YE3vrc0DdFRoCjS4fk1KSFGAvZ szpGrDQSQP+vTl/oXLHV1xYE5fyyyuMpdfzfIImRsPtcwHPm4oZczLmavTwV9qKb0khk roXQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="WT6/sr+G"; 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 m2-20020a1709026bc200b001a4f1a956d8si12055211plt.57.2023.05.15.00.15.58; Mon, 15 May 2023 00:16:10 -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="WT6/sr+G"; 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 S240442AbjEOGwb (ORCPT + 99 others); Mon, 15 May 2023 02:52:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47670 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240454AbjEOGwK (ORCPT ); Mon, 15 May 2023 02:52:10 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D2D892101 for ; Sun, 14 May 2023 23:51:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133507; x=1715669507; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=zulnEGWCaE/ce7on2AHJOrEISXuutjX2aua9tmM2yVE=; b=WT6/sr+GjCk608Rgj65IJ2nebMUTwi178AL1Kp1f0n6v2MbpwaJEP69+ D97nwjSW6Nlv1JgEVQmmxBxYIRL6AaXmG9w3DJY1CL29wkSezALDU+zg/ ugze5Gt+PwEkCGMTX7A25yAw38flW3MjVsSmFgNlc1c/f4SzpiAMtvyKV GdVyQ5RSedoL/+7HziQ1dA9j9dntWeHwi6ntCTCoO2sBRdutciErm+XTT tzlo6SYj6xo4nGji2zm7u9TfJ6+oEupsU687RI48adLWrrweIq4Kk5Smw hC5SiIA7JOdrDLBKNDHptdJ4mG4UL3jA+aIAvEioEMdFAJFOnnHaLfyZz g==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966479" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966479" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908748" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908748" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:50:59 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 17/26] soundwire: intel_ace2x: enable wake support Date: Mon, 15 May 2023 15:10:33 +0800 Message-Id: <20230515071042.2038-18-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765943510558771010?= X-GMAIL-MSGID: =?utf-8?q?1765943510558771010?= From: Pierre-Louis Bossart The WAKEEN and WAKESTS registers were moved to the per-link SHIM_VS area. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/intel_ace2x.c | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/drivers/soundwire/intel_ace2x.c b/drivers/soundwire/intel_ace2x.c index 2e33e8a00b55..fe950b3ea3bc 100644 --- a/drivers/soundwire/intel_ace2x.c +++ b/drivers/soundwire/intel_ace2x.c @@ -31,6 +31,41 @@ static void intel_shim_vs_init(struct sdw_intel *sdw) usleep_range(10, 15); } +static int intel_shim_check_wake(struct sdw_intel *sdw) +{ + void __iomem *shim_vs; + u16 wake_sts; + + shim_vs = sdw->link_res->shim_vs; + wake_sts = intel_readw(shim_vs, SDW_SHIM2_INTEL_VS_WAKESTS); + + return wake_sts & SDW_SHIM2_INTEL_VS_WAKEEN_PWS; +} + +static void intel_shim_wake(struct sdw_intel *sdw, bool wake_enable) +{ + void __iomem *shim_vs = sdw->link_res->shim_vs; + u16 wake_en; + u16 wake_sts; + + wake_en = intel_readw(shim_vs, SDW_SHIM2_INTEL_VS_WAKEEN); + + if (wake_enable) { + /* Enable the wakeup */ + wake_en |= SDW_SHIM2_INTEL_VS_WAKEEN_PWE; + intel_writew(shim_vs, SDW_SHIM2_INTEL_VS_WAKEEN, wake_en); + } else { + /* Disable the wake up interrupt */ + wake_en &= ~SDW_SHIM2_INTEL_VS_WAKEEN_PWE; + intel_writew(shim_vs, SDW_SHIM2_INTEL_VS_WAKEEN, wake_en); + + /* Clear wake status (W1C) */ + wake_sts = intel_readw(shim_vs, SDW_SHIM2_INTEL_VS_WAKESTS); + wake_sts |= SDW_SHIM2_INTEL_VS_WAKEEN_PWS; + intel_writew(shim_vs, SDW_SHIM2_INTEL_VS_WAKESTS, wake_sts); + } +} + static int intel_link_power_up(struct sdw_intel *sdw) { struct sdw_bus *bus = &sdw->cdns.bus; @@ -325,6 +360,9 @@ const struct sdw_intel_hw_ops sdw_intel_lnl_hw_ops = { .link_power_up = intel_link_power_up, .link_power_down = intel_link_power_down, + .shim_check_wake = intel_shim_check_wake, + .shim_wake = intel_shim_wake, + .sync_arm = intel_sync_arm, .sync_go_unlocked = intel_sync_go_unlocked, .sync_go = intel_sync_go, From patchwork Mon May 15 07:10:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93897 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6720220vqo; Mon, 15 May 2023 00:02:55 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ51YVtQxMwFi7lNrzVCfdBwVSKUjEpWGetUNkyXP0ZpJQTyH9TQrBbH/ahT5oUnNunrtyGw X-Received: by 2002:a05:6a20:9381:b0:104:f534:6c8d with SMTP id x1-20020a056a20938100b00104f5346c8dmr9667283pzh.33.1684134174782; Mon, 15 May 2023 00:02:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684134174; cv=none; d=google.com; s=arc-20160816; b=syzqmIt0Y5HRz0B9DQQN57TLbuncZqGVpzzkPbUiTO+DD2Plbcp8Doj02q/6TKrB2T bIaZd2VviIJLKuidFzMkY7lKMs+urJ/8cgifEtMY0+gJI8/jY9bcn32hkDuMY9vjjd47 FUeLaSx/elmlVF9QT2cFubomxZpoYF2LpVLXsUlkeW+F+GQ3+RuHewqrEbaswSvq0rbn BYooWLBMPPSPlZP1LKWo1j3uypWgtvIO0MC3XqaM9rocA9wBiXtLqgYeHiyQ/vCGl5Ir S9yyKai+11kwutxwHvCLVz6jXNBynxjnxMKPbHzF+Z5laGUM0kfoMlplWUBMTtm8Ssau ui1Q== 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=diI9TDbycgsTT171qWrmSRo+0brr9Ti/ObaqmiVdUUk=; b=jDetbz081B7qJvXygJbZZCjtE5eyiev0vejT8oY5/0UoHsc7O1qDjUri4AliI03OwR YugCzsvlu7pG/tefl00LJYcVipoflI8Ux8dMvjYWdmWMKmARw9e4XT30LybyBXrLUjl9 QbtsxgXn7/+VPdPgKSj+6anAeAvp0GzDxpxmN3k4otcDeii0tapvsnjprGN95AfOIapW jfSbRc2T50U/XAuYWxzy1yCSv8uzXZtXzQoHt4PEIkzQZvlye1oxkuswflrhBOtut994 MFPlR0ePd6E+jaBFQFSxEKi37endYjTDLt/c/li5JYdFt3Wm5KKPjsvoDGPYOliWEOgT WYvg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="f8nvBV/c"; 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 x185-20020a6386c2000000b00528c6c2ea96si2148801pgd.306.2023.05.15.00.02.42; Mon, 15 May 2023 00:02:54 -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="f8nvBV/c"; 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 S240492AbjEOGwe (ORCPT + 99 others); Mon, 15 May 2023 02:52:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47418 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240298AbjEOGwL (ORCPT ); Mon, 15 May 2023 02:52:11 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7589826A1 for ; Sun, 14 May 2023 23:51:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133511; x=1715669511; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=SbHuuXPdMaBgfOruu1bZggLsJuDVCwmXsFFke6IavfA=; b=f8nvBV/cox3pzavCbuJ3tJVc39Ag23i/StR2+B4Buw8xWX97pSjQi0/H eBfjEBJS8mZa9wvRwrXSx/I+6EtSWot73Jyhgy/QJL10u3zRDuG+kvqUe u4HHpvd//jHYaU4MfDLFTu4H6sns0fF0Q64qzMGJXfDsdMOn+nUHd/FYr ySNyGvLmLU5VXi/BVQ5WOUtjMjIEpPJopiOnJ8GE1IGxMrDs0tpDzaThH c3mFXGxEZwj50sRa0VpQzFZPPoI7IV0k0r7iXSC3PU8vr+3Exp8QOcHI/ 0lhmGta2N9Whg16ZZ+xPhuxmKlSg91hlRsNvk2MYVLz/jVQ/BWemuWeAk w==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966491" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966491" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908759" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908759" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:01 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 18/26] soundwire: intel_ace2x: add check_cmdsync_unlocked helper Date: Mon, 15 May 2023 15:10:34 +0800 Message-Id: <20230515071042.2038-19-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765942676674803759?= X-GMAIL-MSGID: =?utf-8?q?1765942676674803759?= From: Pierre-Louis Bossart This is the last callback needed for all bus management routines on new hardware. Same concept as before, just different register. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/intel_ace2x.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/soundwire/intel_ace2x.c b/drivers/soundwire/intel_ace2x.c index fe950b3ea3bc..a12fee8a5bfa 100644 --- a/drivers/soundwire/intel_ace2x.c +++ b/drivers/soundwire/intel_ace2x.c @@ -186,6 +186,11 @@ static int intel_sync_go(struct sdw_intel *sdw) return ret; } +static bool intel_check_cmdsync_unlocked(struct sdw_intel *sdw) +{ + return hdac_bus_eml_sdw_check_cmdsync_unlocked(sdw->link_res->hbus); +} + /* * DAI operations */ @@ -366,6 +371,7 @@ const struct sdw_intel_hw_ops sdw_intel_lnl_hw_ops = { .sync_arm = intel_sync_arm, .sync_go_unlocked = intel_sync_go_unlocked, .sync_go = intel_sync_go, + .sync_check_cmdsync_unlocked = intel_check_cmdsync_unlocked, }; EXPORT_SYMBOL_NS(sdw_intel_lnl_hw_ops, SOUNDWIRE_INTEL); From patchwork Mon May 15 07:10:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93912 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6726765vqo; Mon, 15 May 2023 00:15:41 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7FWq/hgC2/FGRef3p7jQhCZ37qYhcROHT9B7JaNsjexujqRMtqHh0QHFE2Q4o23D3+q3uZ X-Received: by 2002:a05:6a00:cc8:b0:644:d220:64ac with SMTP id b8-20020a056a000cc800b00644d22064acmr42169358pfv.2.1684134941329; Mon, 15 May 2023 00:15:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684134941; cv=none; d=google.com; s=arc-20160816; b=N8+crpqhRTCqw5ClaWkNJ1F5gv8CRwDPFKacMgvC0AzJw1Q8aXpVE3xJOGOPYsDDHP xAWCXZjfS2H+Ga6FfSMjcnwxnYVnC+joDkgxjrJ/0VsQpn/8NiUaa63wxtx7zB4AEHbU wvMD0FsMQSTe94udrnpQq2d18t6OVRJoQVWXrpDCyFfNTD0dTDMBbAPGgKqkfu+d2HZC aZ06PHcTBhUUF8l3pxv1bSeV4iPUCDPpsfaHC1gLQoD4Q7Oh0eAWv2x00Mo3xKA/nkE3 D3iGa20kdmdj6Ihc/FyM9J3a5SF+vIRkP7tbayNs0XjAQ0yvDH3en1ajJlyiOSbijeFw TuPA== 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=O5LJTv9kLdksObckWMBDmSQCc3NgHWN3jEsiX/4GKa4=; b=Q89wXl1mUWa6X40CE+7yUhGL+wHkRgpHrPCEzWq2w6k4XxJzko08nAeFpl1NGnHn5o JIEtCMtE38W85WM3fkV+elcudm2/eckLBzZHj7iDPponekMcXcKp1Gj89o9bIIuSfQjn 4mAvsV77c003D/YkHlZhm3JfF+KP5B06+Uzocf6ncx8Yvw/daE06dMXmd6XftxWPoAQp OxlwK0Kn18zcWFhzbdludoA6RTzAFpds13B4Q3W0//iKG8UZuENm39wxBnbKAYeikOUi LnXUSLGNMpAe/ARmFPxvX70NjgSBVs2g/g4gO8NRrqHWIfBrJZ+yR7bqh1endt1ijZ8B fV2A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=eVbEupJD; 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 l185-20020a6388c2000000b005342480fcd2si1294223pgd.282.2023.05.15.00.15.28; Mon, 15 May 2023 00:15: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=eVbEupJD; 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 S240511AbjEOGwy (ORCPT + 99 others); Mon, 15 May 2023 02:52:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46884 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240155AbjEOGw0 (ORCPT ); Mon, 15 May 2023 02:52:26 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 919C7CF for ; Sun, 14 May 2023 23:52:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133522; x=1715669522; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=tzzjYf0orwaeoCq1YKwuJr6YmoUY5TgIK1ZLlpL2MUE=; b=eVbEupJDGvAFj9nZGf29U+K8mEsbKo3LQAdB5o3NKexwNHwuk6cYcGR0 1w74edPsabg7jitGmDqpZ/RVHZ/Biztw4B+MrHJf/x/JwX6JVzW215Mpw YuiY6T3HmUM6DEY4qHBgNCdWDckOg3/wNt/69D/IgsauNtdrAm/fKebT3 +RDkyBs1omgV2BNhV8emy6MBdMySndqxycw+IVIaN44/6MyU4Etyuh/rR BMZoa9nh9q6Pp2kzfBzjt4lTxQrFNdnIxLzEgbA+T4rCzZ4VcfJiT6Fhz wX/dBSADbJEWqHYsAGyUVYQifIa40iZANgW7QaqbNXnzcZaeSdxzKEbdQ Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966503" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966503" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:06 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908767" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908767" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:04 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 19/26] soundwire: bus: add new manager callback to deal with peripheral enumeration Date: Mon, 15 May 2023 15:10:35 +0800 Message-Id: <20230515071042.2038-20-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765943480546781618?= X-GMAIL-MSGID: =?utf-8?q?1765943480546781618?= From: Pierre-Louis Bossart When a peripheral reports as ATTACHED, the manager may need to follow a programming sequence, e.g. to assign DMA resources and/or assign a command queue for that peripheral. This patch adds an optional callback, which will be invoked every time the peripheral attaches. This might be overkill in some scenarios, and one could argue that this should be invoked only on the first attachment. The bus does not however track this first attachment with any existing state-mirroring variable, and using dev_num_sticky would not work across suspend-resume cycles. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/bus.c | 3 +++ include/linux/soundwire/sdw.h | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/soundwire/bus.c b/drivers/soundwire/bus.c index 338f4f0b5d0c..b44f8d0affa6 100644 --- a/drivers/soundwire/bus.c +++ b/drivers/soundwire/bus.c @@ -769,6 +769,9 @@ static int sdw_assign_device_num(struct sdw_slave *slave) /* After xfer of msg, restore dev_num */ slave->dev_num = slave->dev_num_sticky; + if (bus->ops && bus->ops->new_peripheral_assigned) + bus->ops->new_peripheral_assigned(bus, dev_num); + return 0; } diff --git a/include/linux/soundwire/sdw.h b/include/linux/soundwire/sdw.h index ef645de13ae9..c076a3f879b3 100644 --- a/include/linux/soundwire/sdw.h +++ b/include/linux/soundwire/sdw.h @@ -846,6 +846,7 @@ struct sdw_defer { * @post_bank_switch: Callback for post bank switch * @read_ping_status: Read status from PING frames, reported with two bits per Device. * Bits 31:24 are reserved. + * @new_peripheral_assigned: Callback to handle enumeration of new peripheral. */ struct sdw_master_ops { int (*read_prop)(struct sdw_bus *bus); @@ -860,7 +861,7 @@ struct sdw_master_ops { int (*pre_bank_switch)(struct sdw_bus *bus); int (*post_bank_switch)(struct sdw_bus *bus); u32 (*read_ping_status)(struct sdw_bus *bus); - + void (*new_peripheral_assigned)(struct sdw_bus *bus, int dev_num); }; /** From patchwork Mon May 15 07:10:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93935 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6732063vqo; Mon, 15 May 2023 00:27:22 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4FjOTkG6khOXJ2NhRxrNrdT7OTDh/NqM1Gk7BL9mJZxhKRQw6vO25zoKRXX5LxVKoxM72e X-Received: by 2002:a05:6a20:3d87:b0:101:e680:d423 with SMTP id s7-20020a056a203d8700b00101e680d423mr23440847pzi.28.1684135641913; Mon, 15 May 2023 00:27:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684135641; cv=none; d=google.com; s=arc-20160816; b=cl4PrTO2jgw42RBGtiw+vjdBmzv4yOhTFKrCXDa70hkiNsnZEastLU2IuKM0MHGFUp n9FjaloTy7WyVImFzHrfPOu8oNDHOysBlxIR3dSPJXMfoC5DKW4S9Fk0TpimReYZP+m/ tLasHXubK+TCXUyM9pM6O+YR80+1vVFDOIKHFa9Kl2KYf5OiYHoj8wJphjS+Zt42/7Wi vbFp18hO65RDBO33WDskQSYq4h7BlS2bzGjArAP3/LmCKeZU3dqbYqNz+R9UO2rNWGHg EgxHxed+pha7VX04ySq/vxaziMyPuBDqO3k2fZV4jgD4wN9Sjm2tjanZYKEbdoCcuiw5 9zMQ== 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=e9Ukv5SBRxcdsve+JSR/9DqK3CItAMt2QK3R71rnhqQ=; b=X/Dedtq/VDJXylCcsSEXnQP//kso39NXG0f3nwHDsh/QtilXpBGJJ7yfjJcP742EtV HqW9zCQD8kqBf/VZU6lJ8CJ8kNVOnCajmSKXBVfecqPq1fP3a50P7sdoCuIFvnMz5Tx9 DUWCdptIR3CqsknwPbmX1O0XbDdtBcd8bFu2lpkP+UYFdGaqe0kgrXztJEFcJWzjkaTN v6tSnqA83dM2h30KzgaKcocRhsQIqKYl/W+61F4L2pbAG3RsgQqfGCKf4KMLtKnSqpbj a8lVCHuwQrf/PAUUGQID7ULIQaZ18DHFFBzIaPX71XcCDG6J1qmxgXUr5eiYxsHo7gBx b6sA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=aytix35R; 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 v10-20020a63f20a000000b0053409545376si2773880pgh.686.2023.05.15.00.27.09; Mon, 15 May 2023 00:27:21 -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=aytix35R; 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 S240509AbjEOGxD (ORCPT + 99 others); Mon, 15 May 2023 02:53:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50114 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240488AbjEOGwe (ORCPT ); Mon, 15 May 2023 02:52:34 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4B480272A for ; Sun, 14 May 2023 23:52:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133529; x=1715669529; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=TlqOeHgkbXdW2xoR4RiQV11K0x6UxVbL1lj2WJsghI8=; b=aytix35Rc8UhIgIBHKjVwwQ+gNL3bkL4NpnK516DnVuCcXofYdJcvKLg H9yb2G8eadKzW0XMC5BoMuSZB7cNzqI2/u8rQYY/TSYqWYXrp3ktBfbly 9149z+vixYvxteeB1y/83c270oyzi7Thap4uQVYFwd+7EwJw/k8LjxfLV XWjyrkg/Z0W+E7O81PJ+jthCo2jrEetptQCXAKmJc+EweO7ZihTIuUyuS MZ7+45fMIlWLlnCKs7BBhNRbn99YnAF7u6q1vmqlmodkqR5m0nbiizjDA BokUCT2iw/exTBxOTQvCxWH1WOddTfL0s0riSH64gNTbuxd56tcmseHtD A==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966520" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966520" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908776" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908776" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:06 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 20/26] soundwire: intel_ace2x: add new_peripheral_assigned callback Date: Mon, 15 May 2023 15:10:36 +0800 Message-Id: <20230515071042.2038-21-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765944214629933837?= X-GMAIL-MSGID: =?utf-8?q?1765944214629933837?= From: Pierre-Louis Bossart Add the abstraction needed to only program the LSDIID registers for the HDaudio extended links. It's perfectly fine to program this register multiple times in case devices lose sync and reattach. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Péter Ujfalusi Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/intel_ace2x.c | 12 ++++++++++++ drivers/soundwire/intel_auxdevice.c | 16 ++++++++++++++++ include/linux/soundwire/sdw_intel.h | 3 +++ 3 files changed, 31 insertions(+) diff --git a/drivers/soundwire/intel_ace2x.c b/drivers/soundwire/intel_ace2x.c index a12fee8a5bfa..65deb4345354 100644 --- a/drivers/soundwire/intel_ace2x.c +++ b/drivers/soundwire/intel_ace2x.c @@ -350,6 +350,16 @@ static int intel_register_dai(struct sdw_intel *sdw) dais, num_dai); } +static void intel_program_sdi(struct sdw_intel *sdw, int dev_num) +{ + int ret; + + ret = hdac_bus_eml_sdw_set_lsdiid(sdw->link_res->hbus, sdw->instance, dev_num); + if (ret < 0) + dev_err(sdw->cdns.dev, "%s: could not set lsdiid for link %d %d\n", + __func__, sdw->instance, dev_num); +} + const struct sdw_intel_hw_ops sdw_intel_lnl_hw_ops = { .debugfs_init = intel_ace2x_debugfs_init, .debugfs_exit = intel_ace2x_debugfs_exit, @@ -372,6 +382,8 @@ const struct sdw_intel_hw_ops sdw_intel_lnl_hw_ops = { .sync_go_unlocked = intel_sync_go_unlocked, .sync_go = intel_sync_go, .sync_check_cmdsync_unlocked = intel_check_cmdsync_unlocked, + + .program_sdi = intel_program_sdi, }; EXPORT_SYMBOL_NS(sdw_intel_lnl_hw_ops, SOUNDWIRE_INTEL); diff --git a/drivers/soundwire/intel_auxdevice.c b/drivers/soundwire/intel_auxdevice.c index fcdf4f2d60e3..0daa6ca9a224 100644 --- a/drivers/soundwire/intel_auxdevice.c +++ b/drivers/soundwire/intel_auxdevice.c @@ -60,6 +60,21 @@ static int generic_post_bank_switch(struct sdw_bus *bus) return sdw->link_res->hw_ops->post_bank_switch(sdw); } +static void generic_new_peripheral_assigned(struct sdw_bus *bus, int dev_num) +{ + struct sdw_cdns *cdns = bus_to_cdns(bus); + struct sdw_intel *sdw = cdns_to_intel(cdns); + + /* paranoia check, this should never happen */ + if (dev_num < INTEL_DEV_NUM_IDA_MIN || dev_num > SDW_MAX_DEVICES) { + dev_err(bus->dev, "%s: invalid dev_num %d\n", __func__, dev_num); + return; + } + + if (sdw->link_res->hw_ops->program_sdi) + sdw->link_res->hw_ops->program_sdi(sdw, dev_num); +} + static int sdw_master_read_intel_prop(struct sdw_bus *bus) { struct sdw_master_prop *prop = &bus->prop; @@ -117,6 +132,7 @@ static struct sdw_master_ops sdw_intel_ops = { .pre_bank_switch = generic_pre_bank_switch, .post_bank_switch = generic_post_bank_switch, .read_ping_status = cdns_read_ping_status, + .new_peripheral_assigned = generic_new_peripheral_assigned, }; /* diff --git a/include/linux/soundwire/sdw_intel.h b/include/linux/soundwire/sdw_intel.h index bafc6f2554b0..1a8f32059cd8 100644 --- a/include/linux/soundwire/sdw_intel.h +++ b/include/linux/soundwire/sdw_intel.h @@ -399,6 +399,7 @@ struct sdw_intel; * @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 + * @program_sdi: helper for codec command/control based on dev_num */ struct sdw_intel_hw_ops { void (*debugfs_init)(struct sdw_intel *sdw); @@ -425,6 +426,8 @@ struct sdw_intel_hw_ops { int (*sync_go_unlocked)(struct sdw_intel *sdw); int (*sync_go)(struct sdw_intel *sdw); bool (*sync_check_cmdsync_unlocked)(struct sdw_intel *sdw); + + void (*program_sdi)(struct sdw_intel *sdw, int dev_num); }; extern const struct sdw_intel_hw_ops sdw_intel_cnl_hw_ops; From patchwork Mon May 15 07:10:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93909 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6726289vqo; Mon, 15 May 2023 00:14:41 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6wvWgmHAM2/hL1xwzUMF6I6oxEzBBFdVCzw4TIURLvUUGTX+frBIyQSCZTMybYKX4Z2NH9 X-Received: by 2002:a05:6a00:2d9a:b0:641:d9b:a458 with SMTP id fb26-20020a056a002d9a00b006410d9ba458mr43356999pfb.18.1684134881351; Mon, 15 May 2023 00:14:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684134881; cv=none; d=google.com; s=arc-20160816; b=nXZEo1NA6ZntLDzwyZPK/anzQq45NuYSUghpiyDgJX0zqtkqXz+uGjcMWChfBMlNBX 1dPXl6ZAUZd91Xe70mPA7uyAL2/btMJCpY7drXsXlhmhiKHmCqGFZH+33PB2ze28SYsQ Zi1hl3fLxA3X/91lk30RptY0MwSNXqkrsDS3a+0aH89X+f9DMUBDRsTuxYvMr8ysia6y EivcQZB2kobck2YOArVJKsgbEASUnPt4Y+wybn62v/RdGu7xSM4B8Dc/dyVT+hkF1585 xFke0U1JzHYg1ObJXYAWr4EnhzDbvU1Uyz0oXRhvI0oww6I9MLNFu0o6P5LRLXi3WjNg xUEQ== 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=pXz3Q+vA42HSE7UkQs89iJnc9Gh3lwXJIUdxZs7aGqo=; b=F2wcR+KYTjJIosPtxAsWS83rBs22KKIxuamAx4qc1bhnqPxJhKMcCddDBP4I7RqdFN dwjg6ftIZUDnsHBMwNLeUEcMTCCGNVvCq1jbgmfRwcL0dJWiYbvWGp3BxKaFZYMK2kVt s3JDvlbZDOepk0O6x6yrG8aODboV9xJlt7XT/CpyXIPsuDtHtLu+lMvWw3HuMty9ZUfH 3FUG5m/pTFY/Z01OGbGTLQqgCi1UoXoRmtpeQzQL7Ar4eRdzDljppNW5QlD4LEC58ECu NKJW6j/IfvOccwDe1RHAzX6nqYy4twvt/c18c9PUuARBCLI88Gf3D+PSz4iqHp2dfzQb kO5w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=jwdIjSu9; 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 t17-20020a639551000000b0050fad5c9f36si15363598pgn.354.2023.05.15.00.14.28; Mon, 15 May 2023 00:14: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=jwdIjSu9; 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 S234266AbjEOGxH (ORCPT + 99 others); Mon, 15 May 2023 02:53:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49142 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240313AbjEOGwl (ORCPT ); Mon, 15 May 2023 02:52:41 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B9D4B1A6 for ; Sun, 14 May 2023 23:52:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133530; x=1715669530; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=dP4H8fKlSakREtkAjsQMf+bbkPa/9U74r38JynphR7o=; b=jwdIjSu91vfWInVMxJLeGaYGs2yJFvCDK3eUbiimzWAtlmcNJT57oXOu Sh0biYabg2NhxmRmMlkzV/aEDF2Kr1QpeVg1MdfRUomXfZWIPPiYPPAP/ SsB85NbI2P1JqVnw5OrSSAFRdDl+Wb4qIKoIYEUtjwct7YhrpzugpNa01 IDxWT7AJCWu8ujJnOQfuLpCIM6kbrrP9Ygfa0Tu9dCZL2aMgpAJRK42pr CzHcEsxmmTK3c32Kaq7GQ8dKxRt7sISuoea52IBlFa9IXEu8IybmX+GBp wJuzThexOGwpRkp6tkkBV7zCmWWB7IomaPCR+L3VjXjVNWzEa59fIVov9 Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966535" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966535" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908779" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908779" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:08 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 21/26] soundwire: intel_ace2x: add pre/post bank switch callbacks Date: Mon, 15 May 2023 15:10:37 +0800 Message-Id: <20230515071042.2038-22-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765943417657167435?= X-GMAIL-MSGID: =?utf-8?q?1765943417657167435?= From: Pierre-Louis Bossart The .pre_ and .post_switch callbacks are mandatory. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/intel_ace2x.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/soundwire/intel_ace2x.c b/drivers/soundwire/intel_ace2x.c index 65deb4345354..1be0bea5f40f 100644 --- a/drivers/soundwire/intel_ace2x.c +++ b/drivers/soundwire/intel_ace2x.c @@ -378,6 +378,9 @@ const struct sdw_intel_hw_ops sdw_intel_lnl_hw_ops = { .shim_check_wake = intel_shim_check_wake, .shim_wake = intel_shim_wake, + .pre_bank_switch = intel_pre_bank_switch, + .post_bank_switch = intel_post_bank_switch, + .sync_arm = intel_sync_arm, .sync_go_unlocked = intel_sync_go_unlocked, .sync_go = intel_sync_go, From patchwork Mon May 15 07:10:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93913 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6726809vqo; Mon, 15 May 2023 00:15:48 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4vjRSy7kK0fyC03ZdbVGhcl8kD8y2BufXHPL3np/G1oTUDpERCF5/7W5uIjXtlF3si07ht X-Received: by 2002:a05:6a00:198a:b0:643:791b:892d with SMTP id d10-20020a056a00198a00b00643791b892dmr40788005pfl.18.1684134947825; Mon, 15 May 2023 00:15:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684134947; cv=none; d=google.com; s=arc-20160816; b=HdyQdPBCk2xn1G7eKebwmYVabib/uL2R0L0bLw2Q6ZE1hMOp4TcCuwiGiHeEMjjXNd IvCf2zSg6ovSLdpqhQRGXrnfj1cC1XVzJQDQNKLTINbagKqFrZmnWUFcp7M+lhVcfhwK e++xY4PWWU8qiZdazOyTu+MezslgwAHtZ87LxjJ5oHmdI+obiiX+v6/97a6wdli7rHTs gcZju8JU2w2AfoTvbezR5L6MQt/mQ69zw5JWOrJbV7CDvy9rnOQLk0jBCHJftMQnQrbl QB+f9cxm+zo8nNTQtHwWBmRqhhfAuPkj4upb0BRT97DRkinfCWx+wyQSraDgLdfPadfv JtqQ== 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=RXB1JoLMuCFixxZX4EzDqNa8gmVorrKNvX8yxr88TDU=; b=Y+4VOgD5vLP/CA2hOZSFIxnTuM5aO6FinJyyayng783s2b6Vj8nIK0PuLHvqxux6zt EbuPJoIrEcYRZoBVjHkzH6vpERgYBmpFTwzTM1c9APNhKOR3WgPzIcxxsJIrFBMmnLdo kYffivyKMtfJDyHQaP+z1b5oYAJV/ZTbtL4JQoGQwjnN/yDlATSQ2hUBOhfTFDqnlniv B9Mtx44xNrLjd1aLQW+KJnYF2TwqMKLEzShgd19RB+Q9gMpkd3AnZqmoRp0ndv52HJQf 7G7ahI+0FJGZ13Fh+CJfGOAD5hxw8XM0eQ4GOOhUPh9+qlM/rho3xTNfIuY4ncBipRTm giug== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=NBo7hZ3c; 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 67-20020a621946000000b0063f2827e1dasi16185193pfz.184.2023.05.15.00.15.35; Mon, 15 May 2023 00:15: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=NBo7hZ3c; 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 S240389AbjEOGxX (ORCPT + 99 others); Mon, 15 May 2023 02:53:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48136 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240388AbjEOGw5 (ORCPT ); Mon, 15 May 2023 02:52:57 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B1FAD213A for ; Sun, 14 May 2023 23:52: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=1684133546; x=1715669546; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=HnNtbwiDrZNBgzzJYA3WKKwmdCK9fTg/aHcJpktUXV0=; b=NBo7hZ3ca/ingSBlOPS7/FsOE+suGQJNhHVnjrj14Nf6VbWsA4VbziDW SQH/M67C3G5RpnZFlumtZ7p09Mv+AqbwmYkG+Z0IgzT79t2IsZNaRYamS kXvlyi+HjFhIwySMWQK5FZeQUIJ7CiJgfG+4ENY5uZUwXD9US5Ow03ZNn 9eoDPZeYgVi/zu/gRyFoNYOydGBaBV8Zy9ygF7+g+DxgdKobMOKIEsVjM Nc8B1dr/70tvobSfPRtnmDQEMSYGzDp3+bGF7otcILJffsO51k2vlOdvA vPRzU7wF/e4C1LfoxQ03h/Wo2oZK1WsoFvYPfMXmx0kqFIR4KkfnTubLQ w==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966545" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966545" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908784" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908784" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:11 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 22/26] ASoC: SOF/soundwire: re-add substream in params_stream structure Date: Mon, 15 May 2023 15:10:38 +0800 Message-Id: <20230515071042.2038-23-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765943487045315907?= X-GMAIL-MSGID: =?utf-8?q?1765943487045315907?= From: Pierre-Louis Bossart An earlier simplification to only pass the direction is no longer suitable, all the ACE2.x HDaudio DMA management relies on access to the substream structure. This patch is an iso-functionality change, the HDaudio DMA parts will be provided separately. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/intel.c | 8 ++++---- include/linux/soundwire/sdw_intel.h | 2 +- sound/soc/sof/intel/hda.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c index 238acf5c97a9..c8eb1ec512c4 100644 --- a/drivers/soundwire/intel.c +++ b/drivers/soundwire/intel.c @@ -643,7 +643,7 @@ intel_pdi_alh_configure(struct sdw_intel *sdw, struct sdw_cdns_pdi *pdi) } static int intel_params_stream(struct sdw_intel *sdw, - int stream, + struct snd_pcm_substream *substream, struct snd_soc_dai *dai, struct snd_pcm_hw_params *hw_params, int link_id, int alh_stream_id) @@ -651,7 +651,7 @@ static int intel_params_stream(struct sdw_intel *sdw, struct sdw_intel_link_res *res = sdw->link_res; struct sdw_intel_stream_params_data params_data; - params_data.stream = stream; /* direction */ + params_data.substream = substream; params_data.dai = dai; params_data.hw_params = hw_params; params_data.link_id = link_id; @@ -727,7 +727,7 @@ static int intel_hw_params(struct snd_pcm_substream *substream, dai_runtime->pdi = pdi; /* Inform DSP about PDI stream number */ - ret = intel_params_stream(sdw, substream->stream, dai, params, + ret = intel_params_stream(sdw, substream, dai, params, sdw->instance, pdi->intel_alh_id); if (ret) @@ -804,7 +804,7 @@ static int intel_prepare(struct snd_pcm_substream *substream, sdw_cdns_config_stream(cdns, ch, dir, dai_runtime->pdi); /* Inform DSP about PDI stream number */ - ret = intel_params_stream(sdw, substream->stream, dai, + ret = intel_params_stream(sdw, substream, dai, hw_params, sdw->instance, dai_runtime->pdi->intel_alh_id); diff --git a/include/linux/soundwire/sdw_intel.h b/include/linux/soundwire/sdw_intel.h index 1a8f32059cd8..ccb228eebc65 100644 --- a/include/linux/soundwire/sdw_intel.h +++ b/include/linux/soundwire/sdw_intel.h @@ -182,7 +182,7 @@ * firmware. */ struct sdw_intel_stream_params_data { - int stream; + struct snd_pcm_substream *substream; struct snd_soc_dai *dai; struct snd_pcm_hw_params *hw_params; int link_id; diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c index 388e41057172..511c927b6696 100644 --- a/sound/soc/sof/intel/hda.c +++ b/sound/soc/sof/intel/hda.c @@ -94,7 +94,7 @@ static int sdw_params_stream(struct device *dev, struct sdw_intel_stream_params_data *params_data) { struct snd_soc_dai *d = params_data->dai; - struct snd_soc_dapm_widget *w = snd_soc_dai_get_widget(d, params_data->stream); + struct snd_soc_dapm_widget *w = snd_soc_dai_get_widget(d, params_data->substream->stream); struct snd_sof_dai_config_data data = { 0 }; data.dai_index = (params_data->link_id << 8) | d->id; From patchwork Mon May 15 07:10:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93938 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6733061vqo; Mon, 15 May 2023 00:30:10 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5P51m++kN6DN5AyqwuvfZmtNzaiyAnCjY6ad4SCucLfbIDHCRlPCTX2VzHV4E2P/3l1h5f X-Received: by 2002:a17:902:ecc3:b0:1aa:f818:7a24 with SMTP id a3-20020a170902ecc300b001aaf8187a24mr42567910plh.1.1684135810305; Mon, 15 May 2023 00:30:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684135810; cv=none; d=google.com; s=arc-20160816; b=o1SZlRP+QcNFdEoMAJx2x8f/+/SaznapZyNLizcb84CnovXK+2VEA3KgGPU5JPtEfb Bj+1VctbDd1YlXSV7Ux53z8PR76T9zu8dRG6eH91OTcPtsxf14zjGo84BUy2NQtfGWHD Sdaj7q/OvK04ijc0T2Ufw68jPgRFgDcr4Wc48cKs8lQ6Z8hyjmmOugojLuCdjwZezcFd Q2HVepyL85HMW3yn7E4GIdmxxUBgSAOp8gm8DBr05jenXFWMFCw/TunpWpJvHfxrUPVK WRTll7CvaqYEDsljUldrYOhI/kX9UZ0thDRp4BzpBMqpeB9R76SDdyrLqoR7jRxPdeLg /P2A== 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=IkHn2Fo5zR6lgI6ib0J50GpEDESxs1CQPKHYm2ri3/I=; b=CDwfKOi87dLzEpoQgaiJCIS7lEQ4mCx7A+/4/D5SKezlBi9U/nK+SdcdP/FAA9p5Ml 3CJjZyy6iLTW0kU80xLviJoQRyc2zTL0yEW97z3l9QiXqgliQtgwvLcs910QV7e1DCCC mpYvDrnb5abaQnoE3mwhHWf27vej5CpceCz/G+eU1CGWO8ZEalTFOZp+CnY3e5W4Wy6n HgijHawjYB7IHMaXEZksP/Y3LYAUWNEH94JATauoLJXuAt6ypKI9oAPTuu+N6o7/LOHO 4IHa2ELu4NLbdUSmTmspauouq29YTpvnhdogkdrP7+gyQYaOcD0t73EpV9L6Bhh1DTgP c43g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=aDZrahoO; 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 e9-20020a17090301c900b001a6d4eab490si16674600plh.63.2023.05.15.00.29.57; Mon, 15 May 2023 00:30:10 -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=aDZrahoO; 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 S240315AbjEOGxd (ORCPT + 99 others); Mon, 15 May 2023 02:53:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48514 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240332AbjEOGxF (ORCPT ); Mon, 15 May 2023 02:53:05 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 75FDDC2 for ; Sun, 14 May 2023 23:52: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=1684133554; x=1715669554; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=P4I4WMgNIQxYQ334Q+vWNS1kymuWnkPuLaU0h554R2Q=; b=aDZrahoO9qnOb+BaXAlTuzRLwfI0qVsAhDMdk3DOkMQ+zWXbiHXcvsQq M0UjSt5pC86fuXEOMggx53gb6Pk4EgpRM78Zj1b44M4yxoOG/hPurNwuf GqA5cKqbQZkktwl0ErBMj1nfwACrJtpPOzC/EdjICw7DB2mw0/NZzWTBD spg1CRZ5/jUEOuJd8anikyLzCPNlQ8CFlFywLdxfOwdUMmxt17EB9VgVR QRF+zHVySEFIL4f2/zX4z++rHar90OC1zQ/AiM+8SfVX0a+VDMD/AdqcU pwvvrBl1T1K5c4blIW3gmZsNvWnVruq43WKcypxOUPKQbNtJmbfTEZcez Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966555" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966555" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:15 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908791" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908791" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:13 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 23/26] soundwire: intel: remove .trigger callback implementation Date: Mon, 15 May 2023 15:10:39 +0800 Message-Id: <20230515071042.2038-24-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765944391321532599?= X-GMAIL-MSGID: =?utf-8?q?1765944391321532599?= From: Pierre-Louis Bossart The interface is not needed for IPC3 solutions but will be needed with an updated parameter list for ACE2.x+IPC4 combinations. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/intel.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c index c8eb1ec512c4..15cecd2e062d 100644 --- a/drivers/soundwire/intel.c +++ b/drivers/soundwire/intel.c @@ -872,18 +872,9 @@ static int intel_trigger(struct snd_pcm_substream *substream, int cmd, struct sn { struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai); struct sdw_intel *sdw = cdns_to_intel(cdns); - struct sdw_intel_link_res *res = sdw->link_res; struct sdw_cdns_dai_runtime *dai_runtime; int ret = 0; - /* - * The .trigger callback is used to send required IPC to audio - * firmware. The .free_stream callback will still be called - * by intel_free_stream() in the TRIGGER_SUSPEND case. - */ - if (res->ops && res->ops->trigger) - res->ops->trigger(dai, cmd, substream->stream); - dai_runtime = cdns->dai_runtime_array[dai->id]; if (!dai_runtime) { dev_err(dai->dev, "failed to get dai runtime in %s\n", From patchwork Mon May 15 07:10:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93922 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6727472vqo; Mon, 15 May 2023 00:17:04 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6e/fN1mlhDC1YIQsWWtNfZFC4o5faH4dgglElGNj+7CLGC/kM3r6wVDfxNGJwbsyc6H2mj X-Received: by 2002:a17:90b:4c06:b0:246:5f9e:e4cf with SMTP id na6-20020a17090b4c0600b002465f9ee4cfmr32425434pjb.43.1684135023892; Mon, 15 May 2023 00:17:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684135023; cv=none; d=google.com; s=arc-20160816; b=HlfKZrBnsiiFQ1QNtFsKVde1KxIwWCrgwq3dvZyUAoO+E3rk6wxcgvxapOqekf6kY7 VjliDElrDTn+KI6Fjr3X2MXAmzBzpKviPw3SYRLVqbi79zaAKF4fyMLvflKgC+4d/RQW PIcPjm3giA7TbdOBFal6tayK0m2AbkfGE78qZSexYEJdOyXIoRtropQv9w5v6chsmnDQ ff2PkrtjPbaZlJ6ENvrlLGLE+9vaYBsxSYJMRRrRBqC97z5xxo8CajOrrjr0ggSHNrW1 Zwo4c97QOS3/5MZ99N3Fwq36a/GWMGgFuwGvam556wrH6XSIXeb8Iw/WGY1/hMVtg+6R WCcw== 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=9XHiSrH79GFg5aWff6pheaBn/7Bu4JXlxUi/y0t5N88=; b=zLBTz/hVYk6+YmXG8DHTE4ZJVs+JkfsiZBwPTanBTAt7v0g3qe0QIwKTfLf7RNMo7h phGp1hwVpSYGY5+PAyaM17EjbvIJz1oA0eKqYL+zq2vqKYMewKAC+a2E1ZcBpNw/2S57 QFO5tm27BmCJQwiuhhkr3gzpWjzfKcsVDyw/Ub6linFxeHvsWhldwZ6w1pZRrfP3sFpW 57EZls/yip4w2BhwDJyfYfpafdyZC234k7eCyY6SsVFvfuhCz9LmFZ+8Td4nSSOIAyjO S+INrQiquHxUp5KJKEMw25CwLjeH5E2iOU0m6DpjoCqWhhFmBB6zcWisGzPFLzx0Nj25 p9+w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=XeTbCYq8; 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 q8-20020a17090a430800b002507aba141asi18545945pjg.171.2023.05.15.00.16.51; Mon, 15 May 2023 00:17:03 -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=XeTbCYq8; 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 S239675AbjEOGxf (ORCPT + 99 others); Mon, 15 May 2023 02:53:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47122 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240396AbjEOGxF (ORCPT ); Mon, 15 May 2023 02:53:05 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 14323272C for ; Sun, 14 May 2023 23:52:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133555; x=1715669555; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=gTWQz2QeQjn75D2vv5OELRJszUtDKAo2vigeJ7CoI54=; b=XeTbCYq8S5ugbHl1ncKcdJRry9kAVdMaj7U6j+XiR3rwloSgPNBL7HFL /YXWZoZ2L+1rPUwDCJKYzORxD013HZUoOcruFhblcgv9td113QhLb0oEg JXpUf86DNexExhnWefZKnXGXeVTKTyr4QCgKISiyvgPZa3mW6dQTQINaj jGjWq+BxnpPincjwS9BCQpnRAAoQylUQyZBhd47P6eoT2BN6t/PzOBFHV I3TiJ2GFhXvhWyi19xDZ+lGelt+Nm9/BZpoiOXYzaILrQB3zFA05jK+xB HLSu/IrPEyXdw5qOhmJYcGpt8fxr5ua05sl3Ew7APcCdgQfZVBxzLIIz3 g==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966565" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966565" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908797" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908797" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:15 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 24/26] soundwire: intel: use substream for .trigger callback Date: Mon, 15 May 2023 15:10:40 +0800 Message-Id: <20230515071042.2038-25-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765943567056029215?= X-GMAIL-MSGID: =?utf-8?q?1765943567056029215?= From: Pierre-Louis Bossart The interface is not needed for IPC3 but will be needed for ACE2.x+IPC4 combinations, with the substream information passed as a parameter. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- include/linux/soundwire/sdw_intel.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/soundwire/sdw_intel.h b/include/linux/soundwire/sdw_intel.h index ccb228eebc65..9bd6885ee34d 100644 --- a/include/linux/soundwire/sdw_intel.h +++ b/include/linux/soundwire/sdw_intel.h @@ -209,7 +209,7 @@ struct sdw_intel_ops { struct sdw_intel_stream_params_data *params_data); int (*free_stream)(struct device *dev, struct sdw_intel_stream_free_data *free_data); - int (*trigger)(struct snd_soc_dai *dai, int cmd, int stream); + int (*trigger)(struct snd_pcm_substream *substream, int cmd, struct snd_soc_dai *dai); }; /** From patchwork Mon May 15 07:10:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93911 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6726641vqo; Mon, 15 May 2023 00:15:24 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4wFfpF1/9qmzyWehaQHR5Yytcy4BG01nKJg/rmr0qx1BU6EdQw1lfG2BMMghy7GEYTcXa0 X-Received: by 2002:a05:6a20:5481:b0:101:7ccd:e195 with SMTP id i1-20020a056a20548100b001017ccde195mr28796394pzk.8.1684134924416; Mon, 15 May 2023 00:15:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684134924; cv=none; d=google.com; s=arc-20160816; b=r92/cgVmWdRziZvaSU2kGAJ0qWSIbZaN9ECBUiKsaQO1BaRNdJrs3ud+dPAz6Ph3fP oilO3eVIboesCr5+3p9zGNDDnaJnwrthj1dck3brKy5zQjhyFpJRyULiRNrD5sdNwlnT wVrpynCu4Eu6JebIB4570oz5NEmfkedAN+3f6742+ffZcC1yzgTl5zLqCDYtYlIH+8wE 6hjbYg2EumEARRh5x5CJjEpCVcvJ7/gGoLdeGc9pbxJijOj6Yf/m4YHhI6ngFfHu1Awo kvE0TqHy36lh0Ym74j1MHIdceIVYWOllqbSR0sgRSdHyOEMDCBh1U/TpzTwldS9Pqe8w 0qEA== 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=uDZr0q/X8EKnooyAgJGKhjSlMK0j4y+P5EgqOY+yTAo=; b=NxkqtdPhJoajqjb1Rq7QhsfAFFaJmr7lofp9vFj8yl8fE/YU1MmHJiDrk8f6JzhIcZ R/KXzQyMaeelHiZJ9nNOAzFMlgDPQcgT25WmxVNEBx+ya8lWazSb0N5dLDmCMfzB4zUP LkaaHuz1+n1q+DCG2vE0u7Zd55MwchPCEmFN7bb++cszBdC2YddiKstQ9GNouzrw+5vp ABzYVeahOLJ5Ilvf8Fbl2HveKdjGcYTvcmffXh6+5L0kiJ+aDsnGbcdemEVzgxNjZtbn Wbj6OTZLiuhkDwiHGygZsTG9HZtZPo813rUewCDmDry63EX4weUdOBfWRbF0KKx+SWad KBrA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=edVJDUa+; 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 d187-20020a6336c4000000b005181ce23024si16561515pga.896.2023.05.15.00.15.11; Mon, 15 May 2023 00:15:24 -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=edVJDUa+; 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 S240388AbjEOGyM (ORCPT + 99 others); Mon, 15 May 2023 02:54:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50064 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240483AbjEOGxV (ORCPT ); Mon, 15 May 2023 02:53:21 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 83E3C199F for ; Sun, 14 May 2023 23:52:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133573; x=1715669573; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=7HU4GkkFBUz3CDwO3kK4aBa3k7/H20TmG32LVN6IOSQ=; b=edVJDUa+ozApmZ2dERc0R4BRi5Dt1XdVlwX2sVzxniuvnZxz22mHFQcR eaO+BQo8T0SvTULrLvUdwTGM/R5bKDmVYXC31uUgLZ3bcf46rsHw/ngBx 0txhXo39e4JKwuZSfoNGr5sIxS3Zl37a52VTwUbxVCYnmX4DF/dEqKPsj TujTdq4fzbyhqlAbGmEF653wdhmEM05Vm/TDL+McVVefmKXPypHNHnDip hTARD7cd1QXtgQaePgxc3PIQSNvJ5zUCSSIt0qcIh8UhiobPKSb2MmG2U qUC5zYjLNheuMWrkyUxlKYEwKcPESDu8TJRIyqp/rTV1fV+XcBErNFL5p A==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966573" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966573" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908802" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908802" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:18 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 25/26] soundwire: intel: remove .free callback implementation Date: Mon, 15 May 2023 15:10:41 +0800 Message-Id: <20230515071042.2038-26-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765943462769777744?= X-GMAIL-MSGID: =?utf-8?q?1765943462769777744?= From: Pierre-Louis Bossart The interface is not needed for IPC3 solution but will be needed with an updated parameter list for ACE2.x+IPC4 combinations. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- drivers/soundwire/intel.c | 37 +------------------------------------ 1 file changed, 1 insertion(+), 36 deletions(-) diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c index 15cecd2e062d..f52167aa48db 100644 --- a/drivers/soundwire/intel.c +++ b/drivers/soundwire/intel.c @@ -663,25 +663,6 @@ static int intel_params_stream(struct sdw_intel *sdw, return -EIO; } -static int intel_free_stream(struct sdw_intel *sdw, - int stream, - struct snd_soc_dai *dai, - int link_id) -{ - struct sdw_intel_link_res *res = sdw->link_res; - struct sdw_intel_stream_free_data free_data; - - free_data.stream = stream; /* direction */ - free_data.dai = dai; - free_data.link_id = link_id; - - if (res->ops && res->ops->free_stream && res->dev) - return res->ops->free_stream(res->dev, - &free_data); - - return 0; -} - /* * DAI routines */ @@ -817,7 +798,6 @@ static int intel_hw_free(struct snd_pcm_substream *substream, struct snd_soc_dai *dai) { struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai); - struct sdw_intel *sdw = cdns_to_intel(cdns); struct sdw_cdns_dai_runtime *dai_runtime; int ret; @@ -838,12 +818,6 @@ intel_hw_free(struct snd_pcm_substream *substream, struct snd_soc_dai *dai) return ret; } - ret = intel_free_stream(sdw, substream->stream, dai, sdw->instance); - if (ret < 0) { - dev_err(dai->dev, "intel_free_stream: failed %d\n", ret); - return ret; - } - dai_runtime->pdi = NULL; return 0; @@ -871,7 +845,6 @@ static void *intel_get_sdw_stream(struct snd_soc_dai *dai, static int intel_trigger(struct snd_pcm_substream *substream, int cmd, struct snd_soc_dai *dai) { struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai); - struct sdw_intel *sdw = cdns_to_intel(cdns); struct sdw_cdns_dai_runtime *dai_runtime; int ret = 0; @@ -894,7 +867,6 @@ static int intel_trigger(struct snd_pcm_substream *substream, int cmd, struct sn dai_runtime->suspended = true; - ret = intel_free_stream(sdw, substream->stream, dai, sdw->instance); break; case SNDRV_PCM_TRIGGER_PAUSE_PUSH: @@ -940,9 +912,7 @@ static int intel_component_dais_suspend(struct snd_soc_component *component) */ for_each_component_dais(component, dai) { struct sdw_cdns *cdns = snd_soc_dai_get_drvdata(dai); - struct sdw_intel *sdw = cdns_to_intel(cdns); struct sdw_cdns_dai_runtime *dai_runtime; - int ret; dai_runtime = cdns->dai_runtime_array[dai->id]; @@ -952,13 +922,8 @@ static int intel_component_dais_suspend(struct snd_soc_component *component) if (dai_runtime->suspended) continue; - if (dai_runtime->paused) { + if (dai_runtime->paused) dai_runtime->suspended = true; - - ret = intel_free_stream(sdw, dai_runtime->direction, dai, sdw->instance); - if (ret < 0) - return ret; - } } return 0; From patchwork Mon May 15 07:10:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bard Liao X-Patchwork-Id: 93907 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6725925vqo; Mon, 15 May 2023 00:13:53 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5yURk43q6+oeGQ/1Nqr8e0P4oIMrQL3IpM8smFGSofJ/fCoLBnhcwGaVoimCpvKUh0Dtuv X-Received: by 2002:a17:90b:3909:b0:24e:1144:ef52 with SMTP id ob9-20020a17090b390900b0024e1144ef52mr32113330pjb.11.1684134833027; Mon, 15 May 2023 00:13:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684134833; cv=none; d=google.com; s=arc-20160816; b=d2IerGCEtnXZ2geJe7qP1+FKYecD/WAXTByCxeSNRihW8E2P7OnzDS3CoXJT9LEWfE 6rrwfILzMyCzbl5ho4THheC3mPsGQw1Yrd7iaEnEKBPdjfcbMX98HYovbJAkeI338I/x dxZYtnxdNgj5rF/8LBrRHzrSI0LTqINVpZwosNcYIeTK/ArXDH+OX+4CwR61LtmsAFnF xEav3EjuK/+0oqdW4mF7OT6LjTyulyx4hvvjOfdkr6J12PH48DQY0uzf1W96KwK1OEWj xYtudrtRC/KfDiXfqghJtbbcWTdjbXHn7ZNsQTquiMw68OcE201GgyPLV6Zf6M4ce+Km /vKA== 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=ogz2bsVIOGcHeU4lZ4V7cu+In5XayQLa+/dhA5o5LYA=; b=RU+uVL+mtxDYfTxTsMvFvkes3Ul37N4lQ0krD4SRKdiYwbbsL+WS0q3M9xAWxKLya2 qkxCaSNNQHLXT75itr0q4YSjPjgyhLtecUAyy4/u8BdOo/+dyGFzkA0o8l2EeeGKzFNy x9iZib3mbRQ0BQ6XjcFITHW9ALIIkNz8bA8u4/ehOToUN67NgbRKtZo782oeGoXvT6Cx M5kNxpbnEXYSuGisZ8OF33qqYMYdjao6FvB5cqwg1GotrscZJtJkgH7Hk1hWH3GszHZk Ws6AUaQsjvQKYJ/ZZ2tVXwuVzvB8saBtOGVi8EDGYO5IsJGLeLTHS+TUXXcD6OXQTOhI wsiw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=HiBHaOit; 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 m24-20020a637118000000b00513128cd495si16003931pgc.730.2023.05.15.00.13.39; Mon, 15 May 2023 00:13:53 -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=HiBHaOit; 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 S238977AbjEOGyS (ORCPT + 99 others); Mon, 15 May 2023 02:54:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49314 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240357AbjEOGxd (ORCPT ); Mon, 15 May 2023 02:53:33 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DF1092D44 for ; Sun, 14 May 2023 23:53:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684133580; x=1715669580; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=QYZAt1KxA3N+7/ATQML8jtFQmvmyxEPDPbTILteD9jY=; b=HiBHaOit5S2w0qS3Oi90tDLT5TXhL+F3Pxc713JrW8y6Lv6PEV+RN6Fg YKHVKPFBWSqNeETiMlN0JDz0p7kJnz4SIAXWxbG6StexiXCjeDLtb4B7x 3gL6GUe9PanLau7YyBEP/BJwC2wAqKnMD5+422uwZPXcdvT4pRhE1fC4P eheCb2l60HOoKleCeAB/euAOmF8Q/CBC3EBcFYMR87GaJ1O0wo59GAJcL v7G8rE86/dNuIrpTEJuN5QMP8X/jeQSlsT89A2nADcXjD7E8t89KJbodn ID/362MC6Tqgk+MbziNNkrm9A1W21n/9YaXWODDhxAeOX4igwvwm21wdU A==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="349966586" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="349966586" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="694908807" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="694908807" Received: from bard-ubuntu.sh.intel.com ([10.239.185.57]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:51:20 -0700 From: Bard Liao To: alsa-devel@alsa-project.org, vkoul@kernel.org, broonie@kernel.org, tiwai@suse.de Cc: linux-kernel@vger.kernel.org, vinod.koul@linaro.org, pierre-louis.bossart@linux.intel.com, bard.liao@intel.com Subject: [PATCH v2 26/26] soundwire: intel: use substream for .free callback Date: Mon, 15 May 2023 15:10:42 +0800 Message-Id: <20230515071042.2038-27-yung-chuan.liao@linux.intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230515071042.2038-1-yung-chuan.liao@linux.intel.com> References: <20230515071042.2038-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_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765943366776444790?= X-GMAIL-MSGID: =?utf-8?q?1765943366776444790?= From: Pierre-Louis Bossart The interface is not needed for IPC3 but will be needed for ACE2.x+IPC4 combinations, with the substream information passed as a parameter. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Ranjani Sridharan Signed-off-by: Bard Liao --- include/linux/soundwire/sdw_intel.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/soundwire/sdw_intel.h b/include/linux/soundwire/sdw_intel.h index 9bd6885ee34d..11fc88fb0d78 100644 --- a/include/linux/soundwire/sdw_intel.h +++ b/include/linux/soundwire/sdw_intel.h @@ -195,7 +195,7 @@ struct sdw_intel_stream_params_data { * firmware. */ struct sdw_intel_stream_free_data { - int stream; + struct snd_pcm_substream *substream; struct snd_soc_dai *dai; int link_id; };