Received: by 2002:a05:6358:c692:b0:131:369:b2a3 with SMTP id fe18csp6048005rwb; Tue, 1 Aug 2023 11:26:29 -0700 (PDT) X-Google-Smtp-Source: APBJJlHZoB1HHFQRUjZVsYtDvzT9EucCzERx0d/Ui8X+DSFjssZ72LeIuxiXsx0sjrs71vytwH19 X-Received: by 2002:a17:906:224b:b0:992:a80e:e5bd with SMTP id 11-20020a170906224b00b00992a80ee5bdmr3272571ejr.48.1690914389553; Tue, 01 Aug 2023 11:26:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690914389; cv=none; d=google.com; s=arc-20160816; b=p7EDO8PiYbO/AyAfSosw4qKvrQ0cvPwWDfMz9m4RrDoPDGWJ9xNTNSayt3ZwIc15JR l0XqK/eCQQ3LLsUL24G7Ojns8Wg0w/EQJIr6c2R71vUEaiE4NgnQa6LHKHnZOG11w9z4 iNWBTHDZHePqxN5VQJO/bY0eJhcL0lMkPA317mug+ZTy6WIpZig0zNA48kIUz8wOsWkB xywlJLjfFUkS1PfJ0/0mWOjJ0VvwNvExx7SWw7kQBY3wfrrjNnMR8+eOJAfbaDM/Pvaa ehCWnkle2zjhOkVPVbCX79q9mtmsQaU62pzwPSs5B0UdMJ4Zw9omvFoJ+jbEx+3SXUys Cm3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=iiQRjm4QK0WLqg6kQJdysuLWlR7lwW7uNQsm5S+5uD8=; fh=uNAaHkOOGZlxIIEBj5yei+e+TdyNFwHBGyGQEcbZDcs=; b=Xl+p3hpvBTa89JHtD5ljC5DttTB1Wt2hM2kTpmRN8hBpnPokiO06xSzjdgzamjmCDR iWPOkv9E2zPjNu+VDYtyBeH39N6kcVQbt7ixytvhHTuvv00N5hisVygFBnbBglHrMznV jY4k68DDYC7dW1no+2/hBKCwGFEG81oFVYLk9NVqoXgBY23okW2ZxRF0cGX6RdmjC5SY hVrsSJefK8WOwI6FgcsHOTA7x+xaW/TfBdt1li4TwIgL/uSTMqH+1/Arq8kDrvgMKhLv IEKZ8Rb2DDcau3bIF0BAA8ZJgoEcp42hTVQYAeit0uEcj30pCeJiYQFof9YUsIdsJBZw s5Lg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=XTg8Ytjp; 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=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id pg15-20020a170907204f00b0099bcb187a0bsi8168675ejb.387.2023.08.01.11.26.03; Tue, 01 Aug 2023 11:26: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=@kernel.org header.s=k20201202 header.b=XTg8Ytjp; 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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234388AbjHARWB (ORCPT + 99 others); Tue, 1 Aug 2023 13:22:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60254 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229887AbjHARWA (ORCPT ); Tue, 1 Aug 2023 13:22:00 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2FB7B211E; Tue, 1 Aug 2023 10:21:59 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id C1DCF6154F; Tue, 1 Aug 2023 17:21:58 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A6C27C433C7; Tue, 1 Aug 2023 17:21:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1690910518; bh=FvTrayG0aB9pBS56Qi18iMvVg3XJECQTzUNoJcvfVxY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=XTg8YtjpaBdEyllcrmu65iWMgj74xz2mpu+ThdUY8cWF+84k4nm+EiWPIwktyvaO/ OD5Y+be8QlhnRdR+PCnVwUmUtBME8/DE1nSc2FIRxIflgSBdWYFTwqT4aBTvf4snXb O1gVgPwUxCgUS8rEJv7BLxEReymjCD7vzvKhFWiatvEdLrQofd1eE6plTSVs1s74/A 6Ma9EuBOspIfKipNOb7U62xfz5hgp1Hg3spssqoMfzA39l4DwDnCoJhHQQ0sYi8HU2 wBUXqAkLOo5D9dpFQ5aT4L3TAh6VlWzc9s+tdXWoelzuH5TIhitkStIEEQcQmPxIXh kFLYI0QlKRiZw== Date: Tue, 1 Aug 2023 22:51:42 +0530 From: Manivannan Sadhasivam To: Krishna Chaitanya Chundru Cc: manivannan.sadhasivam@linaro.org, helgaas@kernel.org, linux-pci@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, quic_vbadigan@quicinc.com, quic_nitegupt@quicinc.com, quic_skananth@quicinc.com, quic_ramkri@quicinc.com, krzysztof.kozlowski@linaro.org, Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Jeffrey Hugo , "open list:MHI BUS" Subject: Re: [PATCH v4 3/9] PCI: epf-mhi: Add support for handling D-state notify from EPC Message-ID: <20230801172142.GA76659@thinkpad> References: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> <1689232218-28265-4-git-send-email-quic_krichai@quicinc.com> <20230728040949.GF4433@thinkpad> <1cfa6656-8130-ce1d-e28e-3665f12cc76a@quicinc.com> <0a6ca984-9797-88b1-ae12-c64916f6c61c@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <0a6ca984-9797-88b1-ae12-c64916f6c61c@quicinc.com> X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,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 On Tue, Aug 01, 2023 at 10:31:42AM +0530, Krishna Chaitanya Chundru wrote: > > On 7/31/2023 11:05 AM, Krishna Chaitanya Chundru wrote: > > > > On 7/28/2023 9:39 AM, Manivannan Sadhasivam wrote: > > > On Thu, Jul 13, 2023 at 12:40:12PM +0530, Krishna chaitanya chundru > > > wrote: > > > > Add support for handling D-state notify for MHI EPF. > > > > > > > > Signed-off-by: Krishna chaitanya chundru > > > > --- > > > >   drivers/pci/endpoint/functions/pci-epf-mhi.c | 11 +++++++++++ > > > >   include/linux/mhi_ep.h                       |  3 +++ > > > >   2 files changed, 14 insertions(+) > > > > > > > > diff --git a/drivers/pci/endpoint/functions/pci-epf-mhi.c > > > > b/drivers/pci/endpoint/functions/pci-epf-mhi.c > > > > index 9c1f5a1..ee91bfc 100644 > > > > --- a/drivers/pci/endpoint/functions/pci-epf-mhi.c > > > > +++ b/drivers/pci/endpoint/functions/pci-epf-mhi.c > > > > @@ -339,6 +339,16 @@ static int pci_epf_mhi_bme(struct pci_epf *epf) > > > >       return 0; > > > >   } > > > >   +static int pci_epf_mhi_dstate_notify(struct pci_epf *epf, > > > > pci_power_t state) > > > > +{ > > > > +    struct pci_epf_mhi *epf_mhi = epf_get_drvdata(epf); > > > > +    struct mhi_ep_cntrl *mhi_cntrl = &epf_mhi->mhi_cntrl; > > > > + > > > > +    mhi_cntrl->dstate = state; > > > Where is this variable being used? Also, don't we need any locking? > > > > > > - Mani > > > > we are using this variable in wakeup host op which is introduced on > > patch [PATCH v4 8/9] PCI: epf-mhi: Add wakeup host op > > > > I will add lock in my next series. > > > > - KC > > Mani, as this is being called from IRQ context do we need to add any lock > here. > Notifiers are invoked in process context. And here, the context doesn't matter as either way you need locking to prevent concurrent access to dstate variable. But I think it is safe to ignore lock for now provided that wakeup_host callback is only called while MHI is in M3 state. Even if dstate changes while processing wakeup_host, it won't affect the behavior. - Mani > - KC > > > > > > > > > > + > > > > +    return 0; > > > > +} > > > > + > > > >   static int pci_epf_mhi_bind(struct pci_epf *epf) > > > >   { > > > >       struct pci_epf_mhi *epf_mhi = epf_get_drvdata(epf); > > > > @@ -394,6 +404,7 @@ static struct pci_epc_event_ops > > > > pci_epf_mhi_event_ops = { > > > >       .link_up = pci_epf_mhi_link_up, > > > >       .link_down = pci_epf_mhi_link_down, > > > >       .bme = pci_epf_mhi_bme, > > > > +    .dstate_notify = pci_epf_mhi_dstate_notify, > > > >   }; > > > >     static int pci_epf_mhi_probe(struct pci_epf *epf, > > > > diff --git a/include/linux/mhi_ep.h b/include/linux/mhi_ep.h > > > > index f198a8a..c3a0685 100644 > > > > --- a/include/linux/mhi_ep.h > > > > +++ b/include/linux/mhi_ep.h > > > > @@ -8,6 +8,7 @@ > > > >     #include > > > >   #include > > > > +#include > > > >     #define MHI_EP_DEFAULT_MTU 0x8000 > > > >   @@ -139,6 +140,8 @@ struct mhi_ep_cntrl { > > > >         enum mhi_state mhi_state; > > > >   +    pci_power_t dstate; > > > > + > > > >       u32 max_chan; > > > >       u32 mru; > > > >       u32 event_rings; > > > > -- > > > > 2.7.4 > > > > > > -- மணிவண்ணன் சதாசிவம்