Received: by 2002:a05:7412:419a:b0:f3:1519:9f41 with SMTP id i26csp4793080rdh; Wed, 29 Nov 2023 10:46:12 -0800 (PST) X-Google-Smtp-Source: AGHT+IEnr4Y4KKcBMU8uqYcQ55vS8qj+oHiypUhYgRAHMsCa+L/cqCmRGjWo9d4VYA6JPN/LHld/ X-Received: by 2002:a05:6a21:3116:b0:187:8bd4:e1b6 with SMTP id yz22-20020a056a21311600b001878bd4e1b6mr19456310pzb.31.1701283572245; Wed, 29 Nov 2023 10:46:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701283572; cv=none; d=google.com; s=arc-20160816; b=jens8zFxMQa2MXTB4W6nZw77XacRV1i+ul7Fj6vSdbpwZ1unspVTkaeZXfscHy2Dru wqKd9BekxESChN2CXPV4EXCXmi2aRCGPJpAI5yJn4XsNX1PGFnK+SvaBCLO5fOI1H7Z7 +ak5Y9jQky6Iz89FN6o0gN///BpUiY43Uj8Kjb6Ib4UjHzXWUKy1hDp75ScNsjnxUnZ1 Ha4KCl3jwb7uhJ9ytSayTivb+3i4flgCTfw5n/9YixLErqprwPXIAN6zixpJvl4coYuG imb2Mdjm0jN/45lGXjiDExC4bs5/2X0yI4u/H7q/giaBq/+fyuetLmXtY2m4XBsF3Vak mvvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=m6hazDEYvS5AXfblaBOJudY+Nphq+vw+w5BBHVq2yYQ=; fh=2tBUf7Rs04vl4fURb9VWFfgt7zd5QJujEfc6m1Ccr20=; b=lnLvfa+Q4S3knckakj9YUqinU+WgqY41wYaoXZX1I7Zaq1gnFbojFlYsLmOtdEmbkd n8s4+mgVahMZKQ1S/XrgHiw3NDVPdxJVcAFgHDtTcF91EY1s1FjlQ3BoTlVFXaxpWy2T w0VH06kdVaGa4lB96SwsPEhXeXlU2jF8WAzM47R8YrFrhswffTtkLkbFpx6AGmQM+w35 2Sn3uaXxPxFPt0BDFT1C0cC//LaA8aIJNcnwN90bGPyC3SdqEa9QViJ/oxyEm0XAkgEX Dit8OHmOLLuK9FuEVqwUDdb6ZX2RTaWjeB8KZNKng1Hd9qpJudWy6XBXYium4p4MScT+ m1nA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=jRCEbeLw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 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 pete.vger.email (pete.vger.email. [2620:137:e000::3:6]) by mx.google.com with ESMTPS id i10-20020a17090a974a00b0026b365096e5si1815919pjw.53.2023.11.29.10.46.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Nov 2023 10:46:12 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) client-ip=2620:137:e000::3:6; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=jRCEbeLw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 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 (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id 2C4DC80C9A6F; Wed, 29 Nov 2023 10:46:08 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231509AbjK2Spl (ORCPT + 99 others); Wed, 29 Nov 2023 13:45:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59674 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231467AbjK2Spj (ORCPT ); Wed, 29 Nov 2023 13:45:39 -0500 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1519A1B4; Wed, 29 Nov 2023 10:45:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1701283545; x=1732819545; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=cKJeFNkIQAf+/tiMMgC+hJ3Nk+Hnaj6HJWSuL5lnedo=; b=jRCEbeLwuepAT3ho4szAd9g+6HYrPSUxEr+U6jLv4+DfNuNtHPq6IwLw OYQY7VKtgb/fOY9YhM0Zl5GahCfQD/XyvyRqk1X+QKIirurcKy8+wn+E4 sHiLLcfQKuUuSXo2ayKb+o0vXUFk11DSx+q6qrid0e1f67LOOv8fJ5Wif pa9Uk7oaeEu9MGlUVBfAIlIrwEp6V2BLfB7ko074ItTxfpLXG4sqsZDIS VlrCT4vUCflzMkfQlq/4WZDrkRkHNxudxzKmp5eZXDs9v0opS9wDqsDAd 7bN0e5dSSJyi0IGoIhDTxWj/sFg0uFZBGDK1tm3iq65zz04e7fwBv6EAl A==; X-IronPort-AV: E=McAfee;i="6600,9927,10909"; a="383602809" X-IronPort-AV: E=Sophos;i="6.04,237,1695711600"; d="scan'208";a="383602809" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Nov 2023 10:45:44 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10909"; a="942421675" X-IronPort-AV: E=Sophos;i="6.04,237,1695711600"; d="scan'208";a="942421675" Received: from caw1-mobl1.amr.corp.intel.com (HELO [10.255.229.136]) ([10.255.229.136]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Nov 2023 10:45:43 -0800 Message-ID: <3d36d707-86f7-44fe-a613-64e264bb53cd@linux.intel.com> Date: Wed, 29 Nov 2023 11:07:20 -0600 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] soundwire: qcom: allow multi-link on newer devices Content-Language: en-US To: Krzysztof Kozlowski , Andy Gross , Bjorn Andersson , Konrad Dybcio , Vinod Koul , Bard Liao , Sanyog Kale , linux-arm-msm@vger.kernel.org, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Cc: Mark Brown References: <20231128150049.412236-1-krzysztof.kozlowski@linaro.org> From: Pierre-Louis Bossart In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Wed, 29 Nov 2023 10:46:08 -0800 (PST) On 11/29/23 10:43, Krzysztof Kozlowski wrote: > On 28/11/2023 16:35, Pierre-Louis Bossart wrote: >>> static enum sdw_command_response qcom_swrm_xfer_msg(struct sdw_bus *bus, >>> struct sdw_msg *msg) >>> { >>> @@ -1078,6 +1090,7 @@ static const struct sdw_master_port_ops qcom_swrm_port_ops = { >>> }; >>> >>> static const struct sdw_master_ops qcom_swrm_ops = { >>> + .read_prop = qcom_swrm_read_prop, >> >> nit-pick: read_prop() literally means "read platform properties". >> >> The functionality implemented in this callback looks more like an >> initialization done in a probe, no? > > Yes, but multi_link is being set by sdw_bus_master_add() just before > calling read_prop(). It looks a bit odd, because "bus" comes from the > caller and is probably zero-ed already. Therefore I assumed the code did > it on purpose - ignored multi_link set before sdw_bus_master_add(), On the Intel side, there's a bit of luck here. The caller intel_link_probe() does not set the multi-link property, but it's set in intel_link_startup() *AFTER* reading the properties - but we don't have any properties related to multi-link, only the ability to discard specific links. >>> .xfer_msg = qcom_swrm_xfer_msg, >>> .pre_bank_switch = qcom_swrm_pre_bank_switch, >>> .post_bank_switch = qcom_swrm_post_bank_switch, >>> @@ -1196,6 +1209,15 @@ static int qcom_swrm_stream_alloc_ports(struct qcom_swrm_ctrl *ctrl, >>> >>> mutex_lock(&ctrl->port_lock); >>> list_for_each_entry(m_rt, &stream->master_list, stream_node) { >> >> just realizing this now, are you sure the 'port_lock' is the proper >> means to protecting the stream->master_list? I don't see this used >> anywhere else in stream.c. I think you need to use bus_lock. > > This is from ctrl, internal driver structure: > > struct qcom_swrm_ctrl *ctrl My point what that all other instances where list_for_each_entry() is used on stream->master list rely on the bus_lock. You may be fine in this specific case with a QCOM-specific lock, not sure if there's any risk. At any rate that is not introduced by this patch, so for now Reviewed-by: Pierre-Louis Bossart