Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp2806884pxb; Thu, 10 Feb 2022 06:05:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJx9eHwMGWywpi4NCuz1+HX9DasAGHVcdNEqTYpS+Qqasl7efitBetjuHNPtEhpNacBGnaD5 X-Received: by 2002:a17:90a:1984:: with SMTP id 4mr2957171pji.197.1644501957584; Thu, 10 Feb 2022 06:05:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644501957; cv=none; d=google.com; s=arc-20160816; b=pfcPHHiVeeYAf9Yizr6BI6S0bGdgITu9IVITcZ3x2L8kkhRNeXXS2HWWmFRcR4+ODz DJwctLVghQauWChWEceGOjR1R17oMt0B8GC09LBzKRCzdWt3Zc66EmaNfpaO9FzWMuro 0ox7wy3LBQesdYfGTVhFZkpowxPqLMPdYs1UtU+r72vcW/BFzkAz/pStJc9vNWK4eboI zprMCzoiAFFmc+QE+fHdEC6PSZFPwe5IPQbSb2kVwrkPbunbB4Zz86ASqwVLJVUTfszJ O3hQmO8KWQsa41JfkGN8xx/7yyzzLiLGACf0i+5Rc5MoppQmpQWv3Bbb2RIbmD7elIjz m3Pg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=wFiAtooQdjvK1j6XPTbSITaRo4bO8wxOevsQS3q66zs=; b=Q28Ccd/pQB1eTTYI83c1Uf8O8DIoGxG01iIokiL7haQERfdDlN5TAiy6lE0KKMEEWh C0rb/lwRldGkzSs3aDRjmN3fUhJRarESB9mWh5YWcTV47rKnBP0nPACeaXElc++x4A9s fE0n3cyjzCHvcRbzsA4O+qYtBm0KGzTeFLnqp0a0SG2J5tW0QYGHXSmkK0tDi0Gfs5zh Um/CcHKFT9Op4TLc+RxLBbBW/DoNdswcGser3sM7lnuEoTx9eJUXPs9gXglLspIkf8nn 5p/uAf0Pf7Y/O3r6BQCwwag9jfrRjC0gtgVpad84ZlzjA+miyaYyUA0kEWQkI/ZX7hkO 5DHQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=UdHTe0Gd; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 141si15783861pga.363.2022.02.10.06.05.40; Thu, 10 Feb 2022 06:05:57 -0800 (PST) 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=UdHTe0Gd; 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 S240268AbiBJKzX (ORCPT + 99 others); Thu, 10 Feb 2022 05:55:23 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:33572 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240231AbiBJKzW (ORCPT ); Thu, 10 Feb 2022 05:55:22 -0500 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2A486C24 for ; Thu, 10 Feb 2022 02:55:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1644490524; x=1676026524; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=uRRbslkySxYHqPWjzBuWVAPZZpAh6rtYQZifothcSNc=; b=UdHTe0Gde4HCkSCMKXiYKBU7+y/XIjp5D+w9V8rz+AJ9D/6bXRPWmPmo gQ5do46hQBJDhAkKRe40Pj+LQcDFQHp6umvwC1DncoDssBTyFjvAVUdfO M+RLDALLaIaPoBrxdB/CHh7ruqxwuqHLWDQFK8rbAbJ+jhBVTkgNyPjqt 6GYsgC5GOaFja2O1rkmingJq7jHjrl/gfzKwvUFCxtDNlMcD93OWk5Tvw R6w4/8njDlzzXNX4ISNurc2JdFd4F+a8JKEPWV0egZ0hNSdWaRbId+dtF zYRbKK9g2XGabcB5RNI1jLDMTmP+t3D2m+telY1PcOTKKIQlKFmQ6/rMG w==; X-IronPort-AV: E=McAfee;i="6200,9189,10253"; a="310202817" X-IronPort-AV: E=Sophos;i="5.88,358,1635231600"; d="scan'208";a="310202817" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2022 02:55:23 -0800 X-IronPort-AV: E=Sophos;i="5.88,358,1635231600"; d="scan'208";a="679106832" Received: from barabano-mobl.ccr.corp.intel.com (HELO pujfalus-desk.ger.corp.intel.com) ([10.252.41.18]) by fmsmga001-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2022 02:55:20 -0800 From: Peter Ujfalusi To: lgirdwood@gmail.com, broonie@kernel.org, pierre-louis.bossart@linux.intel.com, ranjani.sridharan@linux.intel.com Cc: alsa-devel@alsa-project.org, kai.vehmanen@linux.intel.com, daniel.baluta@nxp.com, tiwai@suse.com, linux-kernel@vger.kernel.org, fred.oh@linux.intel.com Subject: [PATCH 0/9] ASoC: SOF: IPC client infrastructure Date: Thu, 10 Feb 2022 12:55:10 +0200 Message-Id: <20220210105519.19795-1-peter.ujfalusi@linux.intel.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 Hi, The Linux SOF implementation is historically monolithic in a sense that all features accessible in the firmware can be used via the snd_sof_dev struct in one way or another. Support for features can not be added or removed runtime and with the current way of things it is hard if not impossible to implement support for dynamic feature support when based on the firmware manifest we can easily enable/access independent modules with the SOF. In order to be able to support such modularity this series introduces a small framework within SOF for client support using the Auxiliary bus. Client drivers can be removed runtime and later re-loaded if needed without affecting the core's behaviour, but it is the core's and the platform's duty to create the Auxiliary devices usable in the platform and via the firmware. There is still a need for SOF manifest update to convey information about features to really make the full dynamic client device creation. The series will introduce the core SOF client support and converts the generic ipc flood test, ipc message injector and the probes (Intel HDA only) to a client driver. Regards, Peter --- Peter Ujfalusi (8): ASoC: SOF: Drop unused DSP power states: D3_HOT and D3_COLD ASoC: SOF: Move the definition of enum sof_dsp_power_states to global header ASoC: SOF: ipc: Read and pass the whole message to handlers for IPC events ASoC: SOF: Split up utils.c into sof-utils and iomem-utils ASoC: SOF: Introduce IPC SOF client support ASoC: SOF: sof-client: Add support for clients not managed by pm framework ASoC: SOF: Convert the generic IPC message injector into SOF client ASoC: SOF: Convert the generic probe support to SOF client Ranjani Sridharan (1): ASoC: SOF: Convert the generic IPC flood test into SOF client include/sound/sof.h | 8 + sound/soc/sof/Kconfig | 33 +- sound/soc/sof/Makefile | 15 +- sound/soc/sof/core.c | 50 +- sound/soc/sof/debug.c | 565 -------------- sound/soc/sof/intel/Kconfig | 19 +- sound/soc/sof/intel/apl.c | 13 +- sound/soc/sof/intel/cnl.c | 13 +- sound/soc/sof/intel/hda-dai.c | 19 - sound/soc/sof/intel/hda-dsp.c | 6 - sound/soc/sof/intel/hda-probes.c | 72 +- sound/soc/sof/intel/hda.c | 10 + sound/soc/sof/intel/hda.h | 49 +- sound/soc/sof/intel/icl.c | 13 +- sound/soc/sof/intel/tgl.c | 13 +- sound/soc/sof/{utils.c => iomem-utils.c} | 61 +- sound/soc/sof/ipc.c | 88 ++- sound/soc/sof/ops.h | 43 - sound/soc/sof/pcm.c | 7 +- sound/soc/sof/pm.c | 13 +- sound/soc/sof/sof-client-ipc-flood-test.c | 396 ++++++++++ sound/soc/sof/sof-client-ipc-msg-injector.c | 192 +++++ sound/soc/sof/sof-client-probes.c | 821 ++++++++++++++++++++ sound/soc/sof/sof-client-probes.h | 31 + sound/soc/sof/sof-client.c | 469 +++++++++++ sound/soc/sof/sof-client.h | 67 ++ sound/soc/sof/sof-priv.h | 139 ++-- sound/soc/sof/sof-probes.c | 364 --------- sound/soc/sof/sof-probes.h | 38 - sound/soc/sof/sof-utils.c | 77 ++ sound/soc/sof/sof-utils.h | 19 + sound/soc/sof/trace.c | 1 + 32 files changed, 2415 insertions(+), 1309 deletions(-) rename sound/soc/sof/{utils.c => iomem-utils.c} (59%) create mode 100644 sound/soc/sof/sof-client-ipc-flood-test.c create mode 100644 sound/soc/sof/sof-client-ipc-msg-injector.c create mode 100644 sound/soc/sof/sof-client-probes.c create mode 100644 sound/soc/sof/sof-client-probes.h create mode 100644 sound/soc/sof/sof-client.c create mode 100644 sound/soc/sof/sof-client.h delete mode 100644 sound/soc/sof/sof-probes.c delete mode 100644 sound/soc/sof/sof-probes.h create mode 100644 sound/soc/sof/sof-utils.c create mode 100644 sound/soc/sof/sof-utils.h -- 2.35.1