Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp3162267pxb; Mon, 1 Mar 2021 03:17:04 -0800 (PST) X-Google-Smtp-Source: ABdhPJzAhETeubGzKGloz1hqB29gYEa3tnEV0Efk5NtXlV8u+6iXieP4V5reBTL+w6MNBxDMIxeI X-Received: by 2002:a17:906:1e50:: with SMTP id i16mr15247982ejj.466.1614597424432; Mon, 01 Mar 2021 03:17:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614597424; cv=none; d=google.com; s=arc-20160816; b=C4xdCX3cadjgKQ6dFI4MQwuAlHEIZ9p49dmsKyQWRs339XBjC4rtz+3TvSClBw6jas n3d4JMa/uKMQSo144tUa3BTRafTTJODQBvcC42I80SosKfuRKB8VWSOPXICTau9PYEcr hfCNA5Y3actf0vlwLM7i0hdoAxmNmKQuO70j/Zbbp8/ovKQlBE3Zwh4hF7Z7PfsRHglp S6BJDRAA8v5cctJG4/cCO04hxYNv4xBLsvT7bJ5Dyxsb2oS12/47asdxLKOQMHmmfOTq xZjc4SCRZOoA5Ywy9+/Kxm6snDVYZrUayNv8xRNjJhOXcbXGnIwuo+3xnHh8zbzBKZSh TZtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:user-agent:message-id:in-reply-to :date:references:subject:cc:to:from:dmarc-filter:sender :dkim-signature; bh=+MIq16Ym9wWPNOeiUqUDLShHL7b+FQRIUIsXH27WoAs=; b=GXOEZ7HSXCUBcd1gKrX6ZaIUNIHUGogA5lFyjDxCsPbv5JAT7XHQPGWlRa0Ts3FWe2 DjWnNHuafR2SQ/2P+CupPxbyYjTSlR6s6tzyIkyMvVHTbg3DOyRrKuJ7kAgJUtpIuJ+4 dFD6syIAaEymvuXPslBPSSsYS4S+DyIIEel+uDVvkF38Men9GWtfe3u3dcqroPGdzw9G ewO/1bfmnprNUiqfSnUU+ZiYWzUls3TG08W7iivdRjBciIA157n5yCDI+rPRxlv1ommZ ey2tnLAJLVUEFR4IIxwSVdmf0jkw91VGxE5ZN0gNE4dwno2IuIpXPy9koJ2UZK3Tssl1 XVNg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=DiQmDdgC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id lg14si6563717ejb.6.2021.03.01.03.16.41; Mon, 01 Mar 2021 03:17:04 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=DiQmDdgC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231784AbhCALPw (ORCPT + 99 others); Mon, 1 Mar 2021 06:15:52 -0500 Received: from z11.mailgun.us ([104.130.96.11]:54770 "EHLO z11.mailgun.us" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231473AbhCALPv (ORCPT ); Mon, 1 Mar 2021 06:15:51 -0500 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1614597331; h=Content-Type: MIME-Version: Message-ID: In-Reply-To: Date: References: Subject: Cc: To: From: Sender; bh=+MIq16Ym9wWPNOeiUqUDLShHL7b+FQRIUIsXH27WoAs=; b=DiQmDdgCqj8LwlMvJzUMCCf2OJtScGgSubH3aCLn6dfxbYRSAi2xAzCOwTA5NdG7fjVBOUxz 3vUoDwUln8iK7qOsLZ93WpfjutTgaSZPOOtDJxlpBEUW5AqP3xRoGXrRVGoXf2VGG8k+zSvZ BYn7O+MG69qAS3YS68Ac52J+ChM= X-Mailgun-Sending-Ip: 104.130.96.11 X-Mailgun-Sid: WyI0MWYwYSIsICJsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnIiwgImJlOWU0YSJd Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by smtp-out-n01.prod.us-west-2.postgun.com with SMTP id 603ccc8f8f0d5ba6c593a35f (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Mon, 01 Mar 2021 11:14:23 GMT Sender: kvalo=codeaurora.org@mg.codeaurora.org Received: by smtp.codeaurora.org (Postfix, from userid 1001) id 84147C433CA; Mon, 1 Mar 2021 11:14:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-caf-mail-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=ALL_TRUSTED,BAYES_00,SPF_FAIL autolearn=no autolearn_force=no version=3.4.0 Received: from tynnyri.adurom.net (tynnyri.adurom.net [51.15.11.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: kvalo) by smtp.codeaurora.org (Postfix) with ESMTPSA id D52D2C433C6; Mon, 1 Mar 2021 11:14:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org D52D2C433C6 Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; spf=fail smtp.mailfrom=kvalo@codeaurora.org From: Kalle Valo To: Manivannan Sadhasivam Cc: Gokul Sriram Palanisamy , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, jhugo@codeaurora.org, hemantk@codeaurora.org, sricharan@codeaurora.org, ath11k@lists.infradead.org Subject: Re: [PATCH v2] bus: mhi: core: Add unique qrtr node id support References: <1614336169-31467-1-git-send-email-gokulsri@codeaurora.org> <1614336169-31467-2-git-send-email-gokulsri@codeaurora.org> <20210226145245.GB70936@thinkpad> Date: Mon, 01 Mar 2021 13:14:14 +0200 In-Reply-To: <20210226145245.GB70936@thinkpad> (Manivannan Sadhasivam's message of "Fri, 26 Feb 2021 20:22:45 +0530") Message-ID: <87k0qrceih.fsf@tynnyri.adurom.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org + ath11k list Manivannan Sadhasivam writes: > On Fri, Feb 26, 2021 at 04:12:49PM +0530, Gokul Sriram Palanisamy wrote: >> On platforms with two or more identical mhi >> devices, qmi service will run with identical >> qrtr-node-id. Because of this identical ID, >> host qrtr-lookup cannot register more than one >> qmi service with identical node ID. Ultimately, >> only one qmi service will be avilable for the >> underlying drivers to communicate with. >> >> On QCN9000, it implements a unique qrtr-node-id >> and qmi instance ID using a unique instance ID >> written to a debug register from host driver >> soon after SBL is loaded. >> >> This change generates a unique instance ID from >> PCIe domain number and bus number, writes to the >> given debug register just after SBL is loaded so >> that it is available for FW when the QMI service >> is spawned. >> >> sample: >> root@OpenWrt:/# qrtr-lookup >> Service Version Instance Node Port >> 15 1 0 8 1 Test service >> 69 1 8 8 2 ATH10k WLAN firmware service >> 15 1 0 24 1 Test service >> 69 1 24 24 2 ATH10k WLAN firmware service >> >> Here 8 and 24 on column 3 (QMI Instance ID) >> and 4 (QRTR Node ID) are the node IDs that >> is unique per mhi device. >> >> Signed-off-by: Gokul Sriram Palanisamy >> --- >> drivers/bus/mhi/core/boot.c | 14 ++++++++++++++ >> 1 file changed, 14 insertions(+) >> >> diff --git a/drivers/bus/mhi/core/boot.c b/drivers/bus/mhi/core/boot.c >> index c2546bf..5e5dad5 100644 >> --- a/drivers/bus/mhi/core/boot.c >> +++ b/drivers/bus/mhi/core/boot.c >> @@ -16,8 +16,12 @@ >> #include >> #include >> #include >> +#include >> #include "internal.h" >> >> +#define QRTR_INSTANCE_MASK 0x000000FF >> +#define QRTR_INSTANCE_SHIFT 0 >> + >> /* Setup RDDM vector table for RDDM transfer and program RXVEC */ >> void mhi_rddm_prepare(struct mhi_controller *mhi_cntrl, >> struct image_info *img_info) >> @@ -391,6 +395,9 @@ void mhi_fw_load_handler(struct mhi_controller *mhi_cntrl) >> const struct firmware *firmware = NULL; >> struct image_info *image_info; >> struct device *dev = &mhi_cntrl->mhi_dev->dev; >> + struct pci_dev *pci_dev = to_pci_dev(mhi_cntrl->cntrl_dev); >> + struct pci_bus *bus = pci_dev->bus; >> + uint32_t instance; >> const char *fw_name; >> void *buf; >> dma_addr_t dma_addr; >> @@ -466,6 +473,13 @@ void mhi_fw_load_handler(struct mhi_controller *mhi_cntrl) >> return; >> } >> >> + instance = ((pci_domain_nr(bus) & 0xF) << 4) | (bus->number & 0xF); >> + instance &= QRTR_INSTANCE_MASK; >> + >> + mhi_write_reg_field(mhi_cntrl, mhi_cntrl->bhi, >> + BHI_ERRDBG2, QRTR_INSTANCE_MASK, >> + QRTR_INSTANCE_SHIFT, instance); > > You cannot not do this in MHI stack. Why can't you do this in the MHI controller > specific to QCN9000? And btw, is QCN9000 supported in mainline? I'm not sure what QCN9000 means but I'm guessing it's QCN9074. We have initial QCN9074 support in ath11k but there are some issues still so it's not enabled by default (yet): https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=ath-next&id=4e80946197a83a6115e308334618449b77696d6a And I suspect we have this same qrtr issue with any ath11k PCI device, including QCA6390, so this is not a QCN9074 specific problem. BTW Gokul, please always CC the ath11k list when submitting patches which are related to ath11k. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches