From patchwork Thu Jul 13 07:10:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna chaitanya chundru X-Patchwork-Id: 119578 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1642623vqm; Thu, 13 Jul 2023 00:12:15 -0700 (PDT) X-Google-Smtp-Source: APBJJlE2sOSGIsGI3N6OPxDZfeEiF8Zn6vICxP0wGl8FWV4jaKRCRwX311RTuDlCID3dbHOdiNt9 X-Received: by 2002:a17:907:3e88:b0:993:f9d8:9fd0 with SMTP id hs8-20020a1709073e8800b00993f9d89fd0mr6539282ejc.1.1689232335467; Thu, 13 Jul 2023 00:12:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689232335; cv=none; d=google.com; s=arc-20160816; b=shCJCju9wy1m3qO/xb6JIFnejdBJmWWGeSnCYSe1hS/l4o8wOvhyyewiVZ9dOYmpGo 2W2CRnAsL92IkZIHHW4jrpf1IXSnZZb+h75eE7ZJ9FCl9iTJ7qXBrHPWAF1TGyCr3FdW UctUwNQWth30ENKXi+yaDsF+tSLJIHvwz7kCHNLlvnTnstwXi5kZ/WA40350yw4lT8zA gpEWVDp7vFSJhggG+4sflXkPrDGP4smlQTWn3IWftgQty4U9Mp37kwjfDf8Zo0v/XsRs jrndQyc7EzzywmrjZXq77Ykm4S/2+GSmkVtNbDo88tKmE6+DSAyeZNmY39lYPKJVtS7j lQkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=1DTdMrzLKr0yyzqfvIKYaB8YU3KPbZ9q75yXg4kY8ig=; fh=NyRME7HRy9hd3RkjapzkOw4sgEfQ9Q51WNmQIaUFdvI=; b=vykleFBlCcqpw5HL7H0hk3fu80qpogIYFuUFd9kqUkAUk8dO1v4TFFKLV1fcI7qyfe eS9rglLdU83J0mZEJUe3rzPm09745GvpxxZrUI8mE8y/AGVid+kwjatRktnOkSmohG58 36cwewZj1poqtwBR6CzR5oHtJb7+snmxLSPGaVy0Z2Rz4t85fHisLAxNqGUIPBrDuZOu BLNjDGsHS5OOZBQ+RWGrHmWsESAzjelBso4RvtkGm/Sqo3JxM575yEIitOOLNlHbrHig 1kQ280XW+JWIrXQCCcfV6beXKq3pEfqE6lqOM1JuL3PhZV2OWyaY66ea5l5Ggzw+BX0Q dS1Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=DUy+N28f; 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=quicinc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id gl5-20020a170906e0c500b00992bfd14c42si6252482ejb.949.2023.07.13.00.11.51; Thu, 13 Jul 2023 00:12: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=@quicinc.com header.s=qcppdkim1 header.b=DUy+N28f; 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=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234177AbjGMHKk (ORCPT + 99 others); Thu, 13 Jul 2023 03:10:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36342 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234139AbjGMHKf (ORCPT ); Thu, 13 Jul 2023 03:10:35 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E4A571FC0; Thu, 13 Jul 2023 00:10:33 -0700 (PDT) Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36D6qXWB025696; Thu, 13 Jul 2023 07:10:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=qcppdkim1; bh=1DTdMrzLKr0yyzqfvIKYaB8YU3KPbZ9q75yXg4kY8ig=; b=DUy+N28f/GSuY48PKYxZlTD9R4rVxGufHK9j/6S4vxIQXl2UuPyknMnRgqwDXVl4odoV bhNVfV2mFzd6mmbUbLk9EYit1wwEASXH2KBVhWTbqffI44VsLeixmMsSjJVDkGy9qaNu BdJxZBS5aEa6Cx9waLsVlMEYFb1ME4C9vEUWwMY7h102/K/yekQukldb08t0/Fd2TI7u MG1fFC6NZMnmpbJvEqcYu6g6wwr4/CeSdxvqvd0vOSHGgKyHuUoSQKQZiS6KbU1WEBka OrW1kHPnhLlk2hl44tBUAxSDqGwSwGKMUoxS/KgLoQMcBPCSakPvN3RXehOhBBj0Eb0R EA== Received: from apblrppmta01.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com [103.229.18.19]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3rsgarb9mp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 07:10:26 +0000 Received: from pps.filterd (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTP id 36D7AMiS030166; Thu, 13 Jul 2023 07:10:22 GMT Received: from pps.reinject (localhost [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTPS id 3rq0vkymh1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 13 Jul 2023 07:10:22 +0000 Received: from APBLRPPMTA01.qualcomm.com (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 36D7AM63030152; Thu, 13 Jul 2023 07:10:22 GMT Received: from hu-sgudaval-hyd.qualcomm.com (hu-krichai-hyd.qualcomm.com [10.213.110.112]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTP id 36D7ALR7030145; Thu, 13 Jul 2023 07:10:22 +0000 Received: by hu-sgudaval-hyd.qualcomm.com (Postfix, from userid 4058933) id 31CE947B2; Thu, 13 Jul 2023 12:40:21 +0530 (+0530) From: Krishna chaitanya chundru To: manivannan.sadhasivam@linaro.org Cc: 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, Krishna chaitanya chundru , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84?= =?utf-8?q?ski?= , Manivannan Sadhasivam , Kishon Vijay Abraham I , Bjorn Helgaas , Jonathan Corbet , linux-doc@vger.kernel.org (open list:DOCUMENTATION) Subject: [PATCH v4 1/9] PCI: endpoint: Add D-state change notifier support Date: Thu, 13 Jul 2023 12:40:10 +0530 Message-Id: <1689232218-28265-2-git-send-email-quic_krichai@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> References: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: uWhroULhYFjrNeXGOOnCwZAj6_Sr0tse X-Proofpoint-ORIG-GUID: uWhroULhYFjrNeXGOOnCwZAj6_Sr0tse X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-13_04,2023-07-11_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 suspectscore=0 mlxlogscore=855 spamscore=0 priorityscore=1501 impostorscore=0 phishscore=0 clxscore=1015 adultscore=0 malwarescore=0 lowpriorityscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307130061 X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_LOW,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: INBOX X-GMAIL-THRID: 1771288485774252063 X-GMAIL-MSGID: 1771288485774252063 Add support to notify the EPF device about the D-state change event from the EPC device. Signed-off-by: Krishna chaitanya chundru --- Documentation/PCI/endpoint/pci-endpoint.rst | 5 +++++ drivers/pci/endpoint/pci-epc-core.c | 27 +++++++++++++++++++++++++++ include/linux/pci-epc.h | 1 + include/linux/pci-epf.h | 1 + 4 files changed, 34 insertions(+) diff --git a/Documentation/PCI/endpoint/pci-endpoint.rst b/Documentation/PCI/endpoint/pci-endpoint.rst index 4f5622a..3a54713 100644 --- a/Documentation/PCI/endpoint/pci-endpoint.rst +++ b/Documentation/PCI/endpoint/pci-endpoint.rst @@ -78,6 +78,11 @@ by the PCI controller driver. Cleanup the pci_epc_mem structure allocated during pci_epc_mem_init(). +* pci_epc_dstate_notity() + + In order to notify all the function devices that the EPC device has + changed its D-state. + EPC APIs for the PCI Endpoint Function Driver ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/drivers/pci/endpoint/pci-epc-core.c b/drivers/pci/endpoint/pci-epc-core.c index 6c54fa5..ea76baf 100644 --- a/drivers/pci/endpoint/pci-epc-core.c +++ b/drivers/pci/endpoint/pci-epc-core.c @@ -785,6 +785,33 @@ void pci_epc_bme_notify(struct pci_epc *epc) EXPORT_SYMBOL_GPL(pci_epc_bme_notify); /** + * pci_epc_dstate_notity() - Notify the EPF device that EPC device D-state + * has changed + * @epc: the EPC device which has change in D-state + * @state: the changed D-state + * + * Invoke to Notify the EPF device that the EPC device has D-state has + * changed. + */ +void pci_epc_dstate_notity(struct pci_epc *epc, pci_power_t state) +{ + struct pci_epf *epf; + + if (!epc || IS_ERR(epc)) + return; + + mutex_lock(&epc->list_lock); + list_for_each_entry(epf, &epc->pci_epf, list) { + mutex_lock(&epf->lock); + if (epf->event_ops && epf->event_ops->dstate_notify) + epf->event_ops->dstate_notify(epf, state); + mutex_unlock(&epf->lock); + } + mutex_unlock(&epc->list_lock); +} +EXPORT_SYMBOL_GPL(pci_epc_dstate_notity); + +/** * pci_epc_destroy() - destroy the EPC device * @epc: the EPC device that has to be destroyed * diff --git a/include/linux/pci-epc.h b/include/linux/pci-epc.h index 5cb6940..26a1108 100644 --- a/include/linux/pci-epc.h +++ b/include/linux/pci-epc.h @@ -251,4 +251,5 @@ void __iomem *pci_epc_mem_alloc_addr(struct pci_epc *epc, phys_addr_t *phys_addr, size_t size); void pci_epc_mem_free_addr(struct pci_epc *epc, phys_addr_t phys_addr, void __iomem *virt_addr, size_t size); +void pci_epc_dstate_change(struct pci_epc *epc, pci_power_t state); #endif /* __LINUX_PCI_EPC_H */ diff --git a/include/linux/pci-epf.h b/include/linux/pci-epf.h index 3f44b6a..529075b 100644 --- a/include/linux/pci-epf.h +++ b/include/linux/pci-epf.h @@ -79,6 +79,7 @@ struct pci_epc_event_ops { int (*link_up)(struct pci_epf *epf); int (*link_down)(struct pci_epf *epf); int (*bme)(struct pci_epf *epf); + int (*dstate_notify)(struct pci_epf *epf, pci_power_t state); }; /** From patchwork Thu Jul 13 07:10:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna chaitanya chundru X-Patchwork-Id: 119577 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1642571vqm; Thu, 13 Jul 2023 00:12:11 -0700 (PDT) X-Google-Smtp-Source: APBJJlHZOXsYno25Vh3JWJSe3KTHiYB/xhrIvn85YU+MyiY17Yl5Il2W7u0I97pTItZEbMllq0il X-Received: by 2002:a17:906:10d2:b0:991:37d2:c9ea with SMTP id v18-20020a17090610d200b0099137d2c9eamr628563ejv.6.1689232330979; Thu, 13 Jul 2023 00:12:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689232330; cv=none; d=google.com; s=arc-20160816; b=dG2mphXYpOE8mUORWr/zD7X+9HRrq6JAtZW3KfWv6UU1fII6DT4khHOO19y2I3SzXq lcUTj7Y1azBnmmEbOxav51e+60CXl8PeFiEIAIfj0HEA/66WeltIRjIhekQJRx66mm7b MwBw1p9QR39UzIUjmEZbty7Q/lfPWnyFjmb/4Luyt4GDdfQJA2w7qXFv1aYqWrvN622d bK8K4wZpsuLoRB3ms5wpqzoELEIMbi2pt338wFCyRGZAUnj+WQBi4P/oMRZf7ML5NT++ H6BauFYDl2/bFJjIM/WNC/z9nuu0JJFvHU6Dzbr1UeiLj/sAxsiAyI3clloF13mity0X KKUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=T9H/joa8i3z+04yWseOBwYveNeLbratgjd+8XxajjYM=; fh=YGwQkGPlUGKIFct+ZojP5owKVkfEOhHMSUOncW4VrC4=; b=nAPxOVyFuk0CJd2YvfUQnIfwTUlI0I0YjISVlyFElNgnNgPLiG+gaoQ48yxu8G6JEg 5if+JWcgS5pdrfdXYemcoIXdLXjI7pnY6VEoUneDB6NQrZ9h6zetFpRaS6hGHmZxKm0Z 2tDmxJ2vhMm01ul00c1MaUyWU+OBuDfj/jIarLrVhxS3q06ovGDUr7Licgmamb4sOY4W hM9nCQ+UiKOgWiOvpPZs7f8Q+aIWXudmi3I4kIXQ8nsUPNWg4ilX7Ww++S3PWpdepLWw d+sFpfBf7P/ieq2TbDT/p5LXSbXbGkCnswOgcpi/GU48JSzjlFgcV8+jTHIpcBk+A0Mo v1Ag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=k5mEecWL; 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=quicinc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l20-20020a1709066b9400b0099307123b55si7136370ejr.76.2023.07.13.00.11.45; Thu, 13 Jul 2023 00:12: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=@quicinc.com header.s=qcppdkim1 header.b=k5mEecWL; 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=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234168AbjGMHKi (ORCPT + 99 others); Thu, 13 Jul 2023 03:10:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36354 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234149AbjGMHKd (ORCPT ); Thu, 13 Jul 2023 03:10:33 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8C56C119; Thu, 13 Jul 2023 00:10:32 -0700 (PDT) Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36D5QCOs006157; Thu, 13 Jul 2023 07:10:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=qcppdkim1; bh=T9H/joa8i3z+04yWseOBwYveNeLbratgjd+8XxajjYM=; b=k5mEecWLJZF2lgBJ5VXcRO3vOAJO5MXNQrzmecEfPGhir7iuRj+VjQtQwHxNYBBr6qZA 2L1BQJFyK1vLAKg/alwmE+oGrTzKHJIrDuPlimY29o6iKJgDXH6VSkVzZyEahpM1vIBT zHSkKX7PEgwZ9QkBZzHec2CGDHqJSYKMgl+EkWO74Cx2upHtj4uKkNcSh+O3BMwur5/j DkxtgBEZvZMFwt73kQc5b3oq4Aiqe5m/7l8u191BE6+pOhMcZ6plxA1UHj6Cwsj9JsxH BC+8yG+cx0rO24QaV248EkXG56NlxZIy4A6MYiL9Fa5BQJ33G64I4zpUT8PDkX998H6g 5A== Received: from apblrppmta01.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com [103.229.18.19]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3rt3f00vsp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 07:10:25 +0000 Received: from pps.filterd (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTP id 36D7AMpg030167; Thu, 13 Jul 2023 07:10:22 GMT Received: from pps.reinject (localhost [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTPS id 3rq0vkymh3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 13 Jul 2023 07:10:22 +0000 Received: from APBLRPPMTA01.qualcomm.com (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 36D7AM99030157; Thu, 13 Jul 2023 07:10:22 GMT Received: from hu-sgudaval-hyd.qualcomm.com (hu-krichai-hyd.qualcomm.com [10.213.110.112]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTP id 36D7ALIm030149; Thu, 13 Jul 2023 07:10:22 +0000 Received: by hu-sgudaval-hyd.qualcomm.com (Postfix, from userid 4058933) id 6211047BB; Thu, 13 Jul 2023 12:40:21 +0530 (+0530) From: Krishna chaitanya chundru To: manivannan.sadhasivam@linaro.org Cc: 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, Krishna chaitanya chundru , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84?= =?utf-8?q?ski?= , Rob Herring , Bjorn Helgaas Subject: [PATCH v4 2/9] PCI: qcom-ep: Add support for D-state change notification Date: Thu, 13 Jul 2023 12:40:11 +0530 Message-Id: <1689232218-28265-3-git-send-email-quic_krichai@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> References: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: HkmAFijEPS4aW-7xLYeo_r8C5bnpWiFN X-Proofpoint-ORIG-GUID: HkmAFijEPS4aW-7xLYeo_r8C5bnpWiFN X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-13_04,2023-07-11_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 bulkscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 priorityscore=1501 mlxlogscore=886 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307130061 X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_LOW,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: INBOX X-GMAIL-THRID: 1771288480961576902 X-GMAIL-MSGID: 1771288480961576902 Add support to pass D-state change notification to Endpoint function driver. Signed-off-by: Krishna chaitanya chundru Reviewed-by: Manivannan Sadhasivam --- drivers/pci/controller/dwc/pcie-qcom-ep.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/pci/controller/dwc/pcie-qcom-ep.c b/drivers/pci/controller/dwc/pcie-qcom-ep.c index 0fe7f06..66fd421 100644 --- a/drivers/pci/controller/dwc/pcie-qcom-ep.c +++ b/drivers/pci/controller/dwc/pcie-qcom-ep.c @@ -561,6 +561,7 @@ static irqreturn_t qcom_pcie_ep_global_irq_thread(int irq, void *data) struct device *dev = pci->dev; u32 status = readl_relaxed(pcie_ep->parf + PARF_INT_ALL_STATUS); u32 mask = readl_relaxed(pcie_ep->parf + PARF_INT_ALL_MASK); + pci_power_t state; u32 dstate, val; writel_relaxed(status, pcie_ep->parf + PARF_INT_ALL_CLEAR); @@ -583,11 +584,16 @@ static irqreturn_t qcom_pcie_ep_global_irq_thread(int irq, void *data) dstate = dw_pcie_readl_dbi(pci, DBI_CON_STATUS) & DBI_CON_STATUS_POWER_STATE_MASK; dev_dbg(dev, "Received D%d state event\n", dstate); + state = dstate; if (dstate == 3) { val = readl_relaxed(pcie_ep->parf + PARF_PM_CTRL); val |= PARF_PM_CTRL_REQ_EXIT_L1; writel_relaxed(val, pcie_ep->parf + PARF_PM_CTRL); + state = PCI_D3hot; + if (gpiod_get_value(pcie_ep->reset)) + state = PCI_D3cold; } + pci_epc_dstate_notify(pci->ep.epc, state); } else if (FIELD_GET(PARF_INT_ALL_LINK_UP, status)) { dev_dbg(dev, "Received Linkup event. Enumeration complete!\n"); dw_pcie_ep_linkup(&pci->ep); From patchwork Thu Jul 13 07:10:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna chaitanya chundru X-Patchwork-Id: 119592 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1647884vqm; Thu, 13 Jul 2023 00:25:09 -0700 (PDT) X-Google-Smtp-Source: APBJJlFXQqSthbAbXphWk/h8uncOiDq133ig7kil4AnSi49OpdoLZMutUj3YudooGZtanFx2Fwpp X-Received: by 2002:aa7:cfcd:0:b0:514:9929:1b01 with SMTP id r13-20020aa7cfcd000000b0051499291b01mr970619edy.8.1689233108976; Thu, 13 Jul 2023 00:25:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689233108; cv=none; d=google.com; s=arc-20160816; b=XSVaJt0gTH+7+0KljvymU1HQ5JPGdXezfyRKD7go2Mx+Xwp9EJlxSwzH/MDyjIh9Uw oJZh8/wGIMYFQ246sb/bg4inmERC6bcWZibyRp1J9WclhBv05xQxHw/TEYv7y7QnPcWg lFq7S6aHLmpCOpydfTfGqlpa2PuInAJJFE9+OBDuIPqTgaLa/iifLIKHZpY1zGze0eqT 1rcQUGGCD0hnhRyzEh0VCgS8QFpvg7O3ftNBYJGAh5rP8D2+iUJu2VJwnkXEAajVik9W DHEUBCmlqbV0LUiQz47aKXL7W4zE++i5JakquyhQN5BIvXYTnQzlv5aBH7aat79gbWLu LmcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=iv9VMeggZweWL3QOIkADDj2WzrjlhjhC5j1kulPSJ7c=; fh=mo08ARgMWVLkOXQO+n9fXCAyH6rFBGHgOh2lu+mOKe8=; b=Koq1YGTpFEdXECCUjWjoSiwo0SNFxqhLDu1RLBKSo9nuxYR+zkok97Jz68cX7B1oFk fiwkXe7kxO1K6UnHsqI0Bablq0m5lN0njA8cLHAaIGalYm7ax15fdMDzgiU/mKPucaqA 34I+4iu2udy0YAue99KowmsE2PdcT69j8t0LXR7Bw7qQ0/Cc3CPoc80eRWU2f3ZNnUdB S5ds4LEVmo0fuqvTv0FUwTeHiliyU1DhbPWF4aVqgSHB5ALoXcE/wahRQUAH7ZSr2aVa QZYw1BR9q0c31km1W94rmSbPNRc921X8sRKGv3MRpFE7w2zMmHo7vSEnKahE6WgfExB2 3gWQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=gtCdxhPg; 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=quicinc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x26-20020aa7d6da000000b0051e0591969dsi6371035edr.345.2023.07.13.00.24.45; Thu, 13 Jul 2023 00:25:08 -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=@quicinc.com header.s=qcppdkim1 header.b=gtCdxhPg; 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=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234237AbjGMHK5 (ORCPT + 99 others); Thu, 13 Jul 2023 03:10:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36644 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234180AbjGMHKr (ORCPT ); Thu, 13 Jul 2023 03:10:47 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 175AA212B; Thu, 13 Jul 2023 00:10:39 -0700 (PDT) Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36D5BExj018681; Thu, 13 Jul 2023 07:10:30 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=qcppdkim1; bh=iv9VMeggZweWL3QOIkADDj2WzrjlhjhC5j1kulPSJ7c=; b=gtCdxhPg+9VEksJ/0PlRl6HBkNSZnWmXHhwOxLZvH7QcSpv1G0X/Ab4iRbxWOkNJeRu2 nKb9RabvN/5uFF3bS+RjUJAYvvosEx4E7gK0Y+GR5dznN91y6YDNMssk6Jd/uBOg7N9f qpDcbpDMy6w4n7nlsvcYdBbOn1votgMeOqkOlUY269wctarXqiTwm2R1DbqxUwFYUYZ0 s++VLEC5tc6ZRPIIhe9cw9QJSbnvrWSYzmh71MgVk74SxeeK1Fq9ckrQQUUgDC4pM3bF FWanCjs47aLjdogwBhOU8hWNd6qOrImkLG/kSqtDQzNgrwQT5UbGGEkHeC+rWNvKw22R VQ== Received: from apblrppmta01.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com [103.229.18.19]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3rt3qfguw6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 07:10:30 +0000 Received: from pps.filterd (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTP id 36D7AQLm030210; Thu, 13 Jul 2023 07:10:26 GMT Received: from pps.reinject (localhost [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTPS id 3rq0vkymhq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 13 Jul 2023 07:10:26 +0000 Received: from APBLRPPMTA01.qualcomm.com (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 36D7AQAA030196; Thu, 13 Jul 2023 07:10:26 GMT Received: from hu-sgudaval-hyd.qualcomm.com (hu-krichai-hyd.qualcomm.com [10.213.110.112]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTP id 36D7APOC030194; Thu, 13 Jul 2023 07:10:26 +0000 Received: by hu-sgudaval-hyd.qualcomm.com (Postfix, from userid 4058933) id 46B4147AD; Thu, 13 Jul 2023 12:40:25 +0530 (+0530) From: Krishna chaitanya chundru To: manivannan.sadhasivam@linaro.org Cc: 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, Krishna chaitanya chundru , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84?= =?utf-8?q?ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Jeffrey Hugo , mhi@lists.linux.dev (open list:MHI BUS) Subject: [PATCH v4 3/9] PCI: epf-mhi: Add support for handling D-state notify from EPC Date: Thu, 13 Jul 2023 12:40:12 +0530 Message-Id: <1689232218-28265-4-git-send-email-quic_krichai@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> References: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: ZPkHoeyBi-N2ftytMKAd0llsQjP6yA45 X-Proofpoint-GUID: ZPkHoeyBi-N2ftytMKAd0llsQjP6yA45 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-13_04,2023-07-11_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 bulkscore=0 mlxscore=0 suspectscore=0 adultscore=0 priorityscore=1501 mlxlogscore=773 phishscore=0 malwarescore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307130061 X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_LOW,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: INBOX X-GMAIL-THRID: 1771289296055105549 X-GMAIL-MSGID: 1771289296055105549 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; + + 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; From patchwork Thu Jul 13 07:10:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna chaitanya chundru X-Patchwork-Id: 119579 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1643227vqm; Thu, 13 Jul 2023 00:13:47 -0700 (PDT) X-Google-Smtp-Source: APBJJlEgWLnPsIij1L9kkyxRYwcy8WjkorCForYEYTVSEWIT2edsnBHyfuAeIgjvOysNCp4i+noK X-Received: by 2002:a05:6402:2809:b0:51e:5e3d:cb92 with SMTP id h9-20020a056402280900b0051e5e3dcb92mr5869944ede.16.1689232426964; Thu, 13 Jul 2023 00:13:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689232426; cv=none; d=google.com; s=arc-20160816; b=DiFXMi00gmWSm/GLyNpSXHYmNU2fjOuIP+pVHlEMJHvrLBuAu4m2r0BaojE46DYGHb RejQ+fIxHawAgspDAUKjWLE4MclCGPZtEhn8d1B9PBZo56DYZw8WMdTQjwGgp8eYNic+ H/Lxi7cD5pdyuQ2eC6iDUljlDNrFsVNQQ/e7C3qpkuXyVM0oCJ/uqUy4k6PkLtuw72Ze 1ULydt15hxbHx19E3J8rakJcH992lz69KtXWLPo7ZMyZ4sy9aq6xR3/TUysALnDTb1aw BQKkgMpTX86jO/oJ6BNz63Of0QrSvzrd0AjTvRKwMk0ifDmp/T5nacwXElnELTORx04Q qsDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=Th449/IbmKpfLvLcCpwNm4V2rmIZbJUdLkYDeQXFsjM=; fh=YGwQkGPlUGKIFct+ZojP5owKVkfEOhHMSUOncW4VrC4=; b=Kv/bDA8zDK2SC+sXFBRTtDKw3BsIhlgeNrdx7xcTfFk+7EIWb/ZjyGR2g0fyjeCuJC 6xiEtZpFqHcZsDok0vgUpFKUjdIU7x9EAncaz6Wownm1ZpZ9yiZXrS4SqyyCYz24MR0+ 0wQgYDAkxrMHOOcUWGWzc9OFrOLzB5Yp0QABc0N1Qs8NZ21spnG+qCohPDdFQ360LWV7 dH9XTCg+1ftuOTiPfHWDp7iOLH65G/ypVGP97ZOtLaa1zay7RE60JcwxgJaYrMRDU1hW k9CzRGWs2GaFmzR2QAKTFvtGdivJYmwkjU1iJ3DKtSJuVtPKQFriiBkS25TqMuuYbMAN EDWg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=a2ic52s5; 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=quicinc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l16-20020a056402125000b00514b3d55fe0si6730288edw.289.2023.07.13.00.13.22; Thu, 13 Jul 2023 00:13:46 -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=@quicinc.com header.s=qcppdkim1 header.b=a2ic52s5; 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=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234233AbjGMHKz (ORCPT + 99 others); Thu, 13 Jul 2023 03:10:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36488 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234176AbjGMHKk (ORCPT ); Thu, 13 Jul 2023 03:10:40 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3D9231FEA; Thu, 13 Jul 2023 00:10:38 -0700 (PDT) Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36D5Be6m025642; Thu, 13 Jul 2023 07:10:30 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=qcppdkim1; bh=Th449/IbmKpfLvLcCpwNm4V2rmIZbJUdLkYDeQXFsjM=; b=a2ic52s5NMRkBRKnBZYgkAIcMe6cEFTISrex7eiaMjOKt0iFJ1aVQ+Gb622VkE0viavl MO6jWqlxJ/Dz4cV+bnSi65SaRK9QPAT5DJA9ACPkUA/R2Ygo+U2vqxQoUUCnMfVH+dhL a115/5PUryaFmqznue0h4PWIkxS402CbpvBcPDRFx5oZk76yHPLmlEA/qJd/fUsZXWhI mmpwqfqo0H3Wp6GViZN0eJ73jEhsGpZv7Xd/hdn/HjY3/nhQVVH6eFQGBE7Ce/Plr9j5 KIoL8OQwuMrTmOPaEjLBprQehSQQ3PMUQyZe+otWKGKzHYgz4ofngkxL1rOX0YRoyTo6 Sg== Received: from apblrppmta01.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com [103.229.18.19]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3rt73tghm7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 07:10:30 +0000 Received: from pps.filterd (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTP id 36D7AQgp030209; Thu, 13 Jul 2023 07:10:26 GMT Received: from pps.reinject (localhost [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTPS id 3rq0vkymhs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 13 Jul 2023 07:10:26 +0000 Received: from APBLRPPMTA01.qualcomm.com (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 36D7AQEA030201; Thu, 13 Jul 2023 07:10:26 GMT Received: from hu-sgudaval-hyd.qualcomm.com (hu-krichai-hyd.qualcomm.com [10.213.110.112]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTP id 36D7APwO030195; Thu, 13 Jul 2023 07:10:26 +0000 Received: by hu-sgudaval-hyd.qualcomm.com (Postfix, from userid 4058933) id 77E0947B2; Thu, 13 Jul 2023 12:40:25 +0530 (+0530) From: Krishna chaitanya chundru To: manivannan.sadhasivam@linaro.org Cc: 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, Krishna chaitanya chundru , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84?= =?utf-8?q?ski?= , Rob Herring , Bjorn Helgaas Subject: [PATCH v4 4/9] PCI: qcom-ep: Update the D-state log Date: Thu, 13 Jul 2023 12:40:13 +0530 Message-Id: <1689232218-28265-5-git-send-email-quic_krichai@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> References: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: jaMr-kkjVLGtxq2RWqS_59YJ3XJ-kzm6 X-Proofpoint-GUID: jaMr-kkjVLGtxq2RWqS_59YJ3XJ-kzm6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-13_04,2023-07-11_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 phishscore=0 malwarescore=0 priorityscore=1501 mlxlogscore=882 suspectscore=0 adultscore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307130061 X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_LOW,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: INBOX X-GMAIL-THRID: 1771288580980609765 X-GMAIL-MSGID: 1771288580980609765 Updated the D-state log which prints in D-state in string format. Signed-off-by: Krishna chaitanya chundru --- drivers/pci/controller/dwc/pcie-qcom-ep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/controller/dwc/pcie-qcom-ep.c b/drivers/pci/controller/dwc/pcie-qcom-ep.c index 66fd421..75ab6d6 100644 --- a/drivers/pci/controller/dwc/pcie-qcom-ep.c +++ b/drivers/pci/controller/dwc/pcie-qcom-ep.c @@ -583,7 +583,6 @@ static irqreturn_t qcom_pcie_ep_global_irq_thread(int irq, void *data) } else if (FIELD_GET(PARF_INT_ALL_DSTATE_CHANGE, status)) { dstate = dw_pcie_readl_dbi(pci, DBI_CON_STATUS) & DBI_CON_STATUS_POWER_STATE_MASK; - dev_dbg(dev, "Received D%d state event\n", dstate); state = dstate; if (dstate == 3) { val = readl_relaxed(pcie_ep->parf + PARF_PM_CTRL); @@ -593,6 +592,7 @@ static irqreturn_t qcom_pcie_ep_global_irq_thread(int irq, void *data) if (gpiod_get_value(pcie_ep->reset)) state = PCI_D3cold; } + dev_dbg(dev, "Received D-state:%s event\n", pci_power_name(state)); pci_epc_dstate_notify(pci->ep.epc, state); } else if (FIELD_GET(PARF_INT_ALL_LINK_UP, status)) { dev_dbg(dev, "Received Linkup event. Enumeration complete!\n"); From patchwork Thu Jul 13 07:10:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna chaitanya chundru X-Patchwork-Id: 119589 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1647575vqm; Thu, 13 Jul 2023 00:24:19 -0700 (PDT) X-Google-Smtp-Source: APBJJlETMz9MCmN9YoXDuOOFKn586P6l/HpbTkVX1e/fUPf7xwmxll0fBFKmjtMRjxiUALCa62XW X-Received: by 2002:a17:906:74d2:b0:993:f4cd:34dd with SMTP id z18-20020a17090674d200b00993f4cd34ddmr1402127ejl.34.1689233059503; Thu, 13 Jul 2023 00:24:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689233059; cv=none; d=google.com; s=arc-20160816; b=js4bFFq03NcAVMg7ogxS1mm9pcwYqLVoH1xqt/qwN7SxdvkTxichr7m4fyBLmsADiE HsKnwmeTODdZttp9GM7TPFYiDlxDvXIUWmVl1bcN8UL2rTeZHNi2s1DTXqEmDdGK2TDd FzF4AG/RLSizClipM5YrXxL3uY3e13f1Yw3N5SUxYoyU5RWnKEY102+sNadMFp6z+dlD 0nI2RwDaaAsORSJl+wy6T5wHkJt5VlKuofEilattOLliLXIU1PbfVQkxZMG2p5dhq2IB 80jmuFudt1MjRauhz1eGD5qtkPo9mwbRuvZpeF5BElKLBUcxN+s1rJOYbSnJyCszrxdM FdvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=MiCrbQvU07WEeqPZ2HgxSUUeLEYFWznoyTZWxjfVLhQ=; fh=NyRME7HRy9hd3RkjapzkOw4sgEfQ9Q51WNmQIaUFdvI=; b=Np+hdki3Jqh4Rl494vIjmewf7Qkx7LKUt8k6hZzaMLfmbr9Whmq3A2h5BgL2CsEBB8 67E6eV9nY+tczt75A3a3AO8fTyFJBY19U0i9GIxQhvg+qIZNMCi3B8ZzkZQufzKaGFBX voDVVxMtwkwVss+QwRYXatuWat2I14vrKtL9KwU9IgBx9OS1EF/QOvYbS2Li3yfdxsi4 KG1Zql8bkjL0WxO3eShzblhg0mMa6GOYHPD1sa//w/0GfoLPgz5b/2Y4d0qTQHqx/xUJ k1oVSzgC9nY2T9g/5fs2gtd/vBCTT+ZNjMVdXdP4VpkTVHsbRrnQlHBipS97dCQ4Ymoc hgAQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=DRru9uAa; 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=quicinc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r7-20020a170906280700b00993b3881ecdsi6657970ejc.687.2023.07.13.00.23.55; Thu, 13 Jul 2023 00:24: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=@quicinc.com header.s=qcppdkim1 header.b=DRru9uAa; 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=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234225AbjGMHKw (ORCPT + 99 others); Thu, 13 Jul 2023 03:10:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36500 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234178AbjGMHKk (ORCPT ); Thu, 13 Jul 2023 03:10:40 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 096C51FC0; Thu, 13 Jul 2023 00:10:38 -0700 (PDT) Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36D5QF2C011282; Thu, 13 Jul 2023 07:10:31 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=qcppdkim1; bh=MiCrbQvU07WEeqPZ2HgxSUUeLEYFWznoyTZWxjfVLhQ=; b=DRru9uAaLpdd2q0yFGVrwYAv9DzhuiMxI6yhFdT40op4Yred8XOeRNN9aUIGLiSzh2Hx +kS6Jf9THtWPecjqTMUOL2E7MizvvSNvmn1JkWU2qseevPqQFIftNtiaTmVSo6SqLyJG Tf2xEjVlIeZePFupU7VLoWyOVz7H+BbS9ZBNpeWeSKfv/BwTTJPvMrcRRIgEeeTRLLxi s0mgYiND4dTadrWDV30w6TMgEcHDJVANgNNDgqcj+CN2S6+Dv4apZWQnAhP1761JoMFW rijtS/D4GJO/H/ouv36zdIKCtrF3S5Z/FFxtP6NDSZhlKIOPQhimdDUImRzfcj50rZdB /w== Received: from apblrppmta01.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com [103.229.18.19]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3rsgarb9mt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 07:10:30 +0000 Received: from pps.filterd (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTP id 36D7ARW5030237; Thu, 13 Jul 2023 07:10:27 GMT Received: from pps.reinject (localhost [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTPS id 3rq0vkymj0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 13 Jul 2023 07:10:27 +0000 Received: from APBLRPPMTA01.qualcomm.com (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 36D7AQw7030219; Thu, 13 Jul 2023 07:10:26 GMT Received: from hu-sgudaval-hyd.qualcomm.com (hu-krichai-hyd.qualcomm.com [10.213.110.112]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTP id 36D7AQTY030208; Thu, 13 Jul 2023 07:10:26 +0000 Received: by hu-sgudaval-hyd.qualcomm.com (Postfix, from userid 4058933) id CC3D647BB; Thu, 13 Jul 2023 12:40:25 +0530 (+0530) From: Krishna chaitanya chundru To: manivannan.sadhasivam@linaro.org Cc: 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, Krishna chaitanya chundru , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84?= =?utf-8?q?ski?= , Manivannan Sadhasivam , Kishon Vijay Abraham I , Bjorn Helgaas , Jonathan Corbet , linux-doc@vger.kernel.org (open list:DOCUMENTATION) Subject: [PATCH v4 5/9] PCI: endpoint: Add wakeup host API to EPC core Date: Thu, 13 Jul 2023 12:40:14 +0530 Message-Id: <1689232218-28265-6-git-send-email-quic_krichai@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> References: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: 9VF1uqnsfauY6smXlnx6UX9gfVfYJK0a X-Proofpoint-ORIG-GUID: 9VF1uqnsfauY6smXlnx6UX9gfVfYJK0a X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-13_04,2023-07-11_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 suspectscore=0 mlxlogscore=777 spamscore=0 priorityscore=1501 impostorscore=0 phishscore=0 clxscore=1015 adultscore=0 malwarescore=0 lowpriorityscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307130061 X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_LOW,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: INBOX X-GMAIL-THRID: 1771289244599694636 X-GMAIL-MSGID: 1771289244599694636 Endpoint cannot send any data/MSI when the D-state is in D3cold or D3hot. Endpoint needs to wake up the host to bring the D-state to D0. Endpoint can toggle wake signal when the D-state is in D3cold and vaux is not supplied or can send inband PME. To support this add wakeup_host() callback to the EPC core. Signed-off-by: Krishna chaitanya chundru --- Documentation/PCI/endpoint/pci-endpoint.rst | 6 ++++++ drivers/pci/endpoint/pci-epc-core.c | 31 +++++++++++++++++++++++++++++ include/linux/pci-epc.h | 11 ++++++++++ 3 files changed, 48 insertions(+) diff --git a/Documentation/PCI/endpoint/pci-endpoint.rst b/Documentation/PCI/endpoint/pci-endpoint.rst index 3a54713..eb79b77 100644 --- a/Documentation/PCI/endpoint/pci-endpoint.rst +++ b/Documentation/PCI/endpoint/pci-endpoint.rst @@ -53,6 +53,7 @@ by the PCI controller driver. * raise_irq: ops to raise a legacy, MSI or MSI-X interrupt * start: ops to start the PCI link * stop: ops to stop the PCI link + * wakeup_host: ops to wakeup host The PCI controller driver can then create a new EPC device by invoking devm_pci_epc_create()/pci_epc_create(). @@ -122,6 +123,11 @@ by the PCI endpoint function driver. The PCI endpoint function driver should use pci_epc_mem_free_addr() to free the memory space allocated using pci_epc_mem_alloc_addr(). +* pci_epc_wakeup_host() + + The PCI endpoint function driver should use pci_epc_wakeup_host() to wakeup + host. + Other EPC APIs ~~~~~~~~~~~~~~ diff --git a/drivers/pci/endpoint/pci-epc-core.c b/drivers/pci/endpoint/pci-epc-core.c index ea76baf..b419eff 100644 --- a/drivers/pci/endpoint/pci-epc-core.c +++ b/drivers/pci/endpoint/pci-epc-core.c @@ -167,6 +167,37 @@ const struct pci_epc_features *pci_epc_get_features(struct pci_epc *epc, EXPORT_SYMBOL_GPL(pci_epc_get_features); /** + * pci_epc_wakeup_host() - Wakeup the host + * @epc: the EPC device which has to wakeup the host + * @func_no: the physical endpoint function number in the EPC device + * @vfunc_no: the virtual endpoint function number in the physical function + * @type: specify the type of wakeup: WAKEUP_FROM_D3COLD, WAKEUP_FROM_D3HOT + * + * Invoke to wakeup host + */ +bool pci_epc_wakeup_host(struct pci_epc *epc, u8 func_no, u8 vfunc_no, + enum pci_epc_wakeup_host_type type) +{ + int ret; + + if (IS_ERR_OR_NULL(epc) || func_no >= epc->max_functions) + return false; + + if (vfunc_no > 0 && (!epc->max_vfs || vfunc_no > epc->max_vfs[func_no])) + return false; + + if (!epc->ops->wakeup_host) + return true; + + mutex_lock(&epc->lock); + ret = epc->ops->wakeup_host(epc, func_no, vfunc_no, type); + mutex_unlock(&epc->lock); + + return ret; +} +EXPORT_SYMBOL_GPL(pci_epc_wakeup_host); + +/** * pci_epc_stop() - stop the PCI link * @epc: the link of the EPC device that has to be stopped * diff --git a/include/linux/pci-epc.h b/include/linux/pci-epc.h index 26a1108..d262179 100644 --- a/include/linux/pci-epc.h +++ b/include/linux/pci-epc.h @@ -26,6 +26,12 @@ enum pci_epc_irq_type { PCI_EPC_IRQ_MSIX, }; +enum pci_epc_wakeup_host_type { + PCI_WAKEUP_UNKNOWN, + PCI_WAKEUP_SEND_PME, + PCI_WAKEUP_TOGGLE_WAKE, +}; + static inline const char * pci_epc_interface_string(enum pci_epc_interface_type type) { @@ -59,6 +65,7 @@ pci_epc_interface_string(enum pci_epc_interface_type type) * @start: ops to start the PCI link * @stop: ops to stop the PCI link * @get_features: ops to get the features supported by the EPC + * @wakeup_host: ops to wakeup the host * @owner: the module owner containing the ops */ struct pci_epc_ops { @@ -88,6 +95,8 @@ struct pci_epc_ops { void (*stop)(struct pci_epc *epc); const struct pci_epc_features* (*get_features)(struct pci_epc *epc, u8 func_no, u8 vfunc_no); + bool (*wakeup_host)(struct pci_epc *epc, u8 func_no, u8 vfunc_no, + enum pci_epc_wakeup_host_type type); struct module *owner; }; @@ -234,6 +243,8 @@ int pci_epc_start(struct pci_epc *epc); void pci_epc_stop(struct pci_epc *epc); const struct pci_epc_features *pci_epc_get_features(struct pci_epc *epc, u8 func_no, u8 vfunc_no); +bool pci_epc_wakeup_host(struct pci_epc *epc, u8 func_no, u8 vfunc_no, + enum pci_epc_wakeup_host_type type); enum pci_barno pci_epc_get_first_free_bar(const struct pci_epc_features *epc_features); enum pci_barno pci_epc_get_next_free_bar(const struct pci_epc_features From patchwork Thu Jul 13 07:10:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna chaitanya chundru X-Patchwork-Id: 119584 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1647257vqm; Thu, 13 Jul 2023 00:23:32 -0700 (PDT) X-Google-Smtp-Source: APBJJlEQcAzYbLgYPXiFloDgtI4Q70BVIjiG+MWUJ7eVuXlMAoEbipei09K6CDhRtmEecfgLLUb1 X-Received: by 2002:a2e:91c7:0:b0:2b7:16ba:89ea with SMTP id u7-20020a2e91c7000000b002b716ba89eamr623533ljg.26.1689233012590; Thu, 13 Jul 2023 00:23:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689233012; cv=none; d=google.com; s=arc-20160816; b=WXzW3Mgtp7pqb2SqQN6sYWz8WRlu15vRwkT7tXRIhYC6JwBIrKWUy65AmW/bMEhKIQ l4MotwIaeexFZMrjWM7T9wZi7as9ParaYtgH7CT8Uwa8gEvHZIRCt+Uo/Um/hpoQI5tG 3BgEI0GuNHJOwGbpfWKWW1sTl8C77dmT76aT26CVWTyyyqVFKe+8hoV9rMidEHQwYgn4 FRBxXq/IKK6llW9MRgIzugjqtC8AR6zbPFOP57dSmLvVo7UqHVsccZcVOAOKIhiTXzsq 0tzB6xkxWqwX3sT6UUWZ1YUBK5plNnmbEmaTm/h5/tCnJwsQHttBkPwE9M5Nt8rvW9wn Gp8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=QvfoQtSP9N2Cw4Yp/CahnNM4dH6c+kEZWtqNjOhDWeU=; fh=3UIF8hfLdAXKHHPfcEH67rBTnKlEQAFr+JHqr2Gj+Ok=; b=BWKEVlFCSYI56fWR5aO6TPkG4hSMaFh7JkCr24Bi6/F+TwEVxYjo5IvmcwpEcdwdXc vPPqvtWf1qlAWwoHhLAqNJffTLMM9IqWpdHGIC6uFkYfiyI3m5utL5phoAg0POljZLLC xUmh70ZWuDPEeCZtrURzo+cZqWF53l6uFiBFBHDSgqhboFWuBgcMxCQwnPWVusaU9X4w ME+fYExVbJ6H8mQBlH1hDS+9ximVo1tAUzjQB08jGHM5M/u6tx8JGRQm3tPnnBfV8qwE AzQwhJ2iG4IZpTLlHa2xKgETFdOIn8xGs0eic689/FdUk+d7/9881McPYvAe/mmYMNOB a3fw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=TUIN7JvX; 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=quicinc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j11-20020a17090686cb00b0098d861f6513si8183947ejy.68.2023.07.13.00.23.08; Thu, 13 Jul 2023 00:23:32 -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=@quicinc.com header.s=qcppdkim1 header.b=TUIN7JvX; 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=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234207AbjGMHK7 (ORCPT + 99 others); Thu, 13 Jul 2023 03:10:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36684 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234195AbjGMHKs (ORCPT ); Thu, 13 Jul 2023 03:10:48 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E3D7B2682; Thu, 13 Jul 2023 00:10:40 -0700 (PDT) Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36D5PP5S005651; Thu, 13 Jul 2023 07:10:31 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=qcppdkim1; bh=QvfoQtSP9N2Cw4Yp/CahnNM4dH6c+kEZWtqNjOhDWeU=; b=TUIN7JvXfxooPMJVkvAIVSbdsjdWpY0jZ4pVVQzuBHB2rVyTtjijPuZ7JKhk6hz8HIoK lcFSsN6VeP4z/7u1mK5n4wq8T/rEQ3sok5ynUDyMZqux4AI7OFhYSglrNI/9DDx2ANm7 dnOD7U5o367X7Zde9EfcXIp7azM36LRzg8/I7p4GdZuwkDgERV+rHVh/Aj1CGHgd1CsD vCKaDhjaV1oVk/AAo/miY+sUS7rfu0y0Xw+r1+cnt8AJeNksjoE+OQ+SQSjo/w72PzWZ E05tUKfeFjMdzf7E5ebeyJyNhQOknW7Wd/jyMIgoBWh7Xfe87yiSvlXwWnrNocdNoRdm Bw== Received: from apblrppmta01.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com [103.229.18.19]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3rt3f00vst-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 07:10:30 +0000 Received: from pps.filterd (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTP id 36D7AMaA030169; Thu, 13 Jul 2023 07:10:27 GMT Received: from pps.reinject (localhost [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTPS id 3rq0vkymj2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 13 Jul 2023 07:10:27 +0000 Received: from APBLRPPMTA01.qualcomm.com (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 36D7AQWX030224; Thu, 13 Jul 2023 07:10:26 GMT Received: from hu-sgudaval-hyd.qualcomm.com (hu-krichai-hyd.qualcomm.com [10.213.110.112]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTP id 36D7AQc7030211; Thu, 13 Jul 2023 07:10:26 +0000 Received: by hu-sgudaval-hyd.qualcomm.com (Postfix, from userid 4058933) id 18D1147C7; Thu, 13 Jul 2023 12:40:26 +0530 (+0530) From: Krishna chaitanya chundru To: manivannan.sadhasivam@linaro.org Cc: 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, Krishna chaitanya chundru , Jingoo Han , Gustavo Pimentel , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84?= =?utf-8?q?ski?= , Rob Herring , Bjorn Helgaas Subject: [PATCH v4 6/9] PCI: dwc: Add wakeup host op to pci_epc_ops Date: Thu, 13 Jul 2023 12:40:15 +0530 Message-Id: <1689232218-28265-7-git-send-email-quic_krichai@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> References: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: TL0aICV_JKwvl-FUcigl_GyScZZa1X3m X-Proofpoint-ORIG-GUID: TL0aICV_JKwvl-FUcigl_GyScZZa1X3m X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-13_04,2023-07-11_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 bulkscore=0 phishscore=0 mlxscore=0 spamscore=0 adultscore=0 priorityscore=1501 mlxlogscore=762 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307130061 X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_LOW,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: INBOX X-GMAIL-THRID: 1771289195133350232 X-GMAIL-MSGID: 1771289195133350232 Add wakeup host op to wake up host from D3cold or D3hot. Signed-off-by: Krishna chaitanya chundru --- drivers/pci/controller/dwc/pcie-designware-ep.c | 12 ++++++++++++ drivers/pci/controller/dwc/pcie-designware.h | 3 +++ 2 files changed, 15 insertions(+) diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c index f9182f8..f61b172 100644 --- a/drivers/pci/controller/dwc/pcie-designware-ep.c +++ b/drivers/pci/controller/dwc/pcie-designware-ep.c @@ -463,6 +463,17 @@ dw_pcie_ep_get_features(struct pci_epc *epc, u8 func_no, u8 vfunc_no) return ep->ops->get_features(ep); } +static bool dw_pcie_ep_wakeup_host(struct pci_epc *epc, u8 func_no, u8 vfunc_no, + enum pci_epc_wakeup_host_type type) +{ + struct dw_pcie_ep *ep = epc_get_drvdata(epc); + + if (!ep->ops->wakeup_host) + return false; + + return ep->ops->wakeup_host(ep, func_no, type); +} + static const struct pci_epc_ops epc_ops = { .write_header = dw_pcie_ep_write_header, .set_bar = dw_pcie_ep_set_bar, @@ -477,6 +488,7 @@ static const struct pci_epc_ops epc_ops = { .start = dw_pcie_ep_start, .stop = dw_pcie_ep_stop, .get_features = dw_pcie_ep_get_features, + .wakeup_host = dw_pcie_ep_wakeup_host, }; int dw_pcie_ep_raise_legacy_irq(struct dw_pcie_ep *ep, u8 func_no) diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h index 6156606..9417651 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -330,6 +330,9 @@ struct dw_pcie_ep_ops { * driver. */ unsigned int (*func_conf_select)(struct dw_pcie_ep *ep, u8 func_no); + + bool (*wakeup_host)(struct dw_pcie_ep *ep, u8 func_no, + enum pci_epc_wakeup_host_type type); }; struct dw_pcie_ep_func { From patchwork Thu Jul 13 07:10:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna chaitanya chundru X-Patchwork-Id: 119593 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1648399vqm; Thu, 13 Jul 2023 00:26:35 -0700 (PDT) X-Google-Smtp-Source: APBJJlGqadxRLY3uFTahdVW4igw3uHH4fOHojrQVrKr2LPMKrfu1GNw35dxfRfe9dXm7ujSJ49xT X-Received: by 2002:aa7:c6d3:0:b0:51d:9905:6f60 with SMTP id b19-20020aa7c6d3000000b0051d99056f60mr959275eds.41.1689233195732; Thu, 13 Jul 2023 00:26:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689233195; cv=none; d=google.com; s=arc-20160816; b=ohNX/W3jLM2FBns9fxLqLFh958A+FmSrgj7AW0LBBxz/1MsH1f6LsjfoXLjPK55Uav +oiuTRICcGUrbyTuwNK8cdFN1cTYgWucvKWxFXyFsqe38qg3DkfwyYdCbbxUH24Gug/9 XruHarYjOli4aGbkOhGmc+vY0/ybKJjtcA+GK7JbxOeDdnYwqPrWL1oO0xNSbQWjL9lv gP/l89RC+/OYrOvtNS5Y7K6CS5MypHHPcrgHB2zRQM0o+GJNnugPejKazdOG1Oh3HYqW KaOH4tKzdAE9Cmq4QwD5/jC2oAf8pDrTZVs26rAsQSuXThaBvRt5kzzUVKW/N6wk4hbj RXxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=ek5WLwSvjXSVCr9SmWwANF2/cFWSzE8fMO2GvxyqURo=; fh=YGwQkGPlUGKIFct+ZojP5owKVkfEOhHMSUOncW4VrC4=; b=I5lQwfANP2GCKut7dM0q6hFDV7V0kqM8H6K9r2uOeQustTvOOyobA8ol6KRJZLAB/R pkdbXO7Ez9bqMfSPJ3cc+b/BmNLc8j+yM1HMFzRgD/gGD3Fmz7xBVsS149uwaZHGHJWj 8aMLNfs6cD5ZdIiC2tZxCIHHAx+8B3nl7hKxnE47mp2T4yZBx9fxs3U0/6GC47qFHv+y SgtmbUC/T40gECbfoOqUCeObUoB5QX4YAOSpAAG77xJg1TdpVYMC3q9kS4QX4LfWMfGR 0GoC8eRpouIVmNBfokYvsQu4w0FNKalWUqInum0hAG9bAGgOMuHCjhhCsl3Lg9axssgp MxUw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=nau+A1pP; 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=quicinc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r24-20020aa7c158000000b0051a596271a7si6423092edp.459.2023.07.13.00.26.10; Thu, 13 Jul 2023 00:26:35 -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=@quicinc.com header.s=qcppdkim1 header.b=nau+A1pP; 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=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234197AbjGMHKt (ORCPT + 99 others); Thu, 13 Jul 2023 03:10:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36428 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234170AbjGMHKi (ORCPT ); Thu, 13 Jul 2023 03:10:38 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 968B11BF0; Thu, 13 Jul 2023 00:10:37 -0700 (PDT) Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36D73e6M031273; Thu, 13 Jul 2023 07:10:31 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=qcppdkim1; bh=ek5WLwSvjXSVCr9SmWwANF2/cFWSzE8fMO2GvxyqURo=; b=nau+A1pPSZ4FItATw3m1bTXvQXybs+eQ64jluOXVcmCDv35IBVNKuXRRrtTsKXNlz0AB 0zpkNr9Zvl6+q5RkMXFjl0DbAwMn4HuNlB9Q8M4vNHviY5cQSpeW5FJR5XLsNFKUfJFA TVxZ3Odrs5I5hAjPt6XVbTyBzaHh34lxjfZr1ZZgM093cnYJmk83gUmV4aFRGhTBxyeV kRbZg105JK5+e7Ky80l3LGPL5+26BQ0dBOVg/zB9o8uXa+038V0ri4Zyy7NB0w0TbmVy tXHgc8WPMRm9c6zTDzOjJMCAg14ZQhGLHZvdiwn4aAjGflckbXQYIYc53wf1x9cdo8ay 3g== Received: from apblrppmta01.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com [103.229.18.19]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3rt3qfguw7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 07:10:30 +0000 Received: from pps.filterd (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTP id 36D7AMpi030167; Thu, 13 Jul 2023 07:10:27 GMT Received: from pps.reinject (localhost [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTPS id 3rq0vkymj8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 13 Jul 2023 07:10:27 +0000 Received: from APBLRPPMTA01.qualcomm.com (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 36D7AM65030152; Thu, 13 Jul 2023 07:10:27 GMT Received: from hu-sgudaval-hyd.qualcomm.com (hu-krichai-hyd.qualcomm.com [10.213.110.112]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTP id 36D7AQh8030218; Thu, 13 Jul 2023 07:10:27 +0000 Received: by hu-sgudaval-hyd.qualcomm.com (Postfix, from userid 4058933) id 4A38047AD; Thu, 13 Jul 2023 12:40:26 +0530 (+0530) From: Krishna chaitanya chundru To: manivannan.sadhasivam@linaro.org Cc: 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, Krishna chaitanya chundru , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84?= =?utf-8?q?ski?= , Rob Herring , Bjorn Helgaas Subject: [PATCH v4 7/9] PCI: qcom-ep: Add wake up host op to dw_pcie_ep_ops Date: Thu, 13 Jul 2023 12:40:16 +0530 Message-Id: <1689232218-28265-8-git-send-email-quic_krichai@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> References: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: RyRawv_cGTgpQvoGveRdG9e9tsZogUI7 X-Proofpoint-GUID: RyRawv_cGTgpQvoGveRdG9e9tsZogUI7 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-13_04,2023-07-11_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 bulkscore=0 mlxscore=0 suspectscore=0 adultscore=0 priorityscore=1501 mlxlogscore=999 phishscore=0 malwarescore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307130061 X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_LOW,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: INBOX X-GMAIL-THRID: 1771289387495782841 X-GMAIL-MSGID: 1771289387495782841 Add wakeup host op to dw_pcie_ep_ops to wake up host. If the wakeup type is PME, then trigger inband PME by writing to the PARF PARF_PM_CTRL register, otherwise toggle #WAKE. Signed-off-by: Krishna chaitanya chundru --- drivers/pci/controller/dwc/pcie-qcom-ep.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/drivers/pci/controller/dwc/pcie-qcom-ep.c b/drivers/pci/controller/dwc/pcie-qcom-ep.c index 75ab6d6..6472554 100644 --- a/drivers/pci/controller/dwc/pcie-qcom-ep.c +++ b/drivers/pci/controller/dwc/pcie-qcom-ep.c @@ -89,6 +89,7 @@ /* PARF_PM_CTRL register fields */ #define PARF_PM_CTRL_REQ_EXIT_L1 BIT(1) #define PARF_PM_CTRL_READY_ENTR_L23 BIT(2) +#define PARF_PM_CTRL_XMT_PME BIT(4) #define PARF_PM_CTRL_REQ_NOT_ENTR_L1 BIT(5) /* PARF_MHI_CLOCK_RESET_CTRL fields */ @@ -729,10 +730,37 @@ static void qcom_pcie_ep_init(struct dw_pcie_ep *ep) dw_pcie_ep_reset_bar(pci, bar); } +static bool qcom_pcie_ep_wakeup_host(struct dw_pcie_ep *ep, u8 func_no, + enum pci_epc_wakeup_host_type type) +{ + struct dw_pcie *pci = to_dw_pcie_from_ep(ep); + struct qcom_pcie_ep *pcie_ep = to_pcie_ep(pci); + struct device *dev = pci->dev; + u32 val; + + if (type == PCI_WAKEUP_TOGGLE_WAKE) { + dev_dbg(dev, "Waking up the host by toggling WAKE#\n"); + gpiod_set_value_cansleep(pcie_ep->wake, 1); + usleep_range(WAKE_DELAY_US, WAKE_DELAY_US + 500); + gpiod_set_value_cansleep(pcie_ep->wake, 0); + + } else if (type == PCI_WAKEUP_SEND_PME) { + dev_dbg(dev, "Waking up the host using PME\n"); + val = readl_relaxed(pcie_ep->parf + PARF_PM_CTRL); + writel_relaxed(val | PARF_PM_CTRL_XMT_PME, pcie_ep->parf + PARF_PM_CTRL); + writel_relaxed(val, pcie_ep->parf + PARF_PM_CTRL); + + } else + return false; + + return true; +} + static const struct dw_pcie_ep_ops pci_ep_ops = { .ep_init = qcom_pcie_ep_init, .raise_irq = qcom_pcie_ep_raise_irq, .get_features = qcom_pcie_epc_get_features, + .wakeup_host = qcom_pcie_ep_wakeup_host, }; static int qcom_pcie_ep_probe(struct platform_device *pdev) From patchwork Thu Jul 13 07:10:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna chaitanya chundru X-Patchwork-Id: 119588 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1647327vqm; Thu, 13 Jul 2023 00:23:44 -0700 (PDT) X-Google-Smtp-Source: APBJJlFqwn3OettX3heUrOlmL+V7rrdbV/E+wPSiUJNxk2fo8hZT7q3iJs7eVTzyLrVwxwv03bHx X-Received: by 2002:a05:6402:2037:b0:51e:ca7:a107 with SMTP id ay23-20020a056402203700b0051e0ca7a107mr949808edb.31.1689233023952; Thu, 13 Jul 2023 00:23:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689233023; cv=none; d=google.com; s=arc-20160816; b=NXuz3I0JRUuGOZspeDC0Uuj9X2hD6cc/YOF/PDPbDPeUiMrxIjta17Les3Ys7eSnmO Eg4xMFpVW6N4JHHZOyFTv2Efrur18yZ8nRItH6+O5DUAxWFiBpDma/n2iRAMgvGVMGnV xbQUPfDpklbDBQYNZOaaBObVF0qFUNYnGSOI0L3RCJiiwrcF6GiTh1lF14E1I5vgTGPU GllXRhzrkp4eSZ98H7be/RaRgFnn5Cy8amkK2thfHs74VjQx250oc4l1IxeNxc1NXKDS QBmAP06lrEg3P4dZZUsUXK6V6K+nnm0wzaL+vEw5PNoLv4atKIf6zBvXliQQMT1/5sqJ HtiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=tpdKDEoaQ0kT9zIG5U80ilbe+cXM+o/eRRMFz9g9sH4=; fh=mo08ARgMWVLkOXQO+n9fXCAyH6rFBGHgOh2lu+mOKe8=; b=no/NRxFNs/qxNcY1309ScCL9GKD4fI0Ri3N6lFWy12dTLB9r2puOpRnBkJ+IR0pjds sbE744RBqqd8r7M+NmoPU8p9W8A0amIiCchT4HdvsK7/Ci/yc6Fvw3mKVW+16HmhW0mt Lc0JfPKpsHF6G4HZ6hVtunY7kM7hBYtd1iElh1QPPS62tCOWBKNHQsKIWJh8EJ/08lOM W7kj1XRz7CoGtKVL+hFDWlXkReBSgLydnT7PCOLniEXa4aeZqQJVPSj4wezaF4AQobXk EI1StXZvjNfYmJIXNU+Zs0jdPYkwbpI06KQzmLHg0Q9uYl40EFGb6DIoJoqhI1dVxjf+ NxnQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=DCB6S+ho; 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=quicinc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e9-20020a50fb89000000b0051e10d0092esi6525437edq.485.2023.07.13.00.23.20; Thu, 13 Jul 2023 00:23:43 -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=@quicinc.com header.s=qcppdkim1 header.b=DCB6S+ho; 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=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234265AbjGMHLF (ORCPT + 99 others); Thu, 13 Jul 2023 03:11:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36642 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234203AbjGMHKt (ORCPT ); Thu, 13 Jul 2023 03:10:49 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3BCC62684; Thu, 13 Jul 2023 00:10:41 -0700 (PDT) Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36D4TVGe005937; Thu, 13 Jul 2023 07:10:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=qcppdkim1; bh=tpdKDEoaQ0kT9zIG5U80ilbe+cXM+o/eRRMFz9g9sH4=; b=DCB6S+hoyHjbdqSn2q22vr3ciCTz+MTYw7vhXdSyY+5N0X7k+D7ep3uNOZNwbBfEVbM9 YMP3AgPAfpeE6MAt6eTef2+P+WoJNa3OQ+RFXo2B4/3eRTgSoMLnX8mHs2tpSmgptnH0 xoQNkwpU5oWkFZ2KdH/PTcibX++LWDjQuAEteN628j7tk4N71o8mhkKnG6IdjaW5jBoo 8HlDAn+hQl7JbRv9BSYvdeEpUYegnal2TwUZIZJLde9Xvzq8GbAR8jDhRiwuYhFneljl X0IC7XAt40LMPCBLaYMPNdfd9o8VSxOVV2sT1a0TqHe+UibD4EIatBLvGnwbvyjHptSQ ew== Received: from apblrppmta01.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com [103.229.18.19]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3rsgarb9mv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 07:10:33 +0000 Received: from pps.filterd (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTP id 36D7ARW6030237; Thu, 13 Jul 2023 07:10:29 GMT Received: from pps.reinject (localhost [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTPS id 3rq0vkymjk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 13 Jul 2023 07:10:29 +0000 Received: from APBLRPPMTA01.qualcomm.com (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 36D7AM9B030157; Thu, 13 Jul 2023 07:10:29 GMT Received: from hu-sgudaval-hyd.qualcomm.com (hu-krichai-hyd.qualcomm.com [10.213.110.112]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTP id 36D7ASCn030265; Thu, 13 Jul 2023 07:10:29 +0000 Received: by hu-sgudaval-hyd.qualcomm.com (Postfix, from userid 4058933) id 6C44247AD; Thu, 13 Jul 2023 12:40:28 +0530 (+0530) From: Krishna chaitanya chundru To: manivannan.sadhasivam@linaro.org Cc: 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, Krishna chaitanya chundru , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84?= =?utf-8?q?ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Jeffrey Hugo , mhi@lists.linux.dev (open list:MHI BUS) Subject: [PATCH v4 8/9] PCI: epf-mhi: Add wakeup host op Date: Thu, 13 Jul 2023 12:40:17 +0530 Message-Id: <1689232218-28265-9-git-send-email-quic_krichai@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> References: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: C5PbraqfonTo5BDjU6-krxjR73IRsEz3 X-Proofpoint-ORIG-GUID: C5PbraqfonTo5BDjU6-krxjR73IRsEz3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-13_04,2023-07-11_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 suspectscore=0 mlxlogscore=791 spamscore=0 priorityscore=1501 impostorscore=0 phishscore=0 clxscore=1015 adultscore=0 malwarescore=0 lowpriorityscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307130061 X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_LOW,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: INBOX X-GMAIL-THRID: 1771289207365008574 X-GMAIL-MSGID: 1771289207365008574 Add wakeup host op for MHI EPF. If the D-state is in D3cold toggle wake signal, otherwise send PME. Signed-off-by: Krishna chaitanya chundru --- drivers/pci/endpoint/functions/pci-epf-mhi.c | 16 ++++++++++++++++ include/linux/mhi_ep.h | 1 + 2 files changed, 17 insertions(+) diff --git a/drivers/pci/endpoint/functions/pci-epf-mhi.c b/drivers/pci/endpoint/functions/pci-epf-mhi.c index ee91bfc..b608505 100644 --- a/drivers/pci/endpoint/functions/pci-epf-mhi.c +++ b/drivers/pci/endpoint/functions/pci-epf-mhi.c @@ -237,6 +237,21 @@ static int pci_epf_mhi_write_to_host(struct mhi_ep_cntrl *mhi_cntrl, return 0; } +static int pci_epf_mhi_wakeup_host(struct mhi_ep_cntrl *mhi_cntrl) +{ + struct pci_epf_mhi *epf_mhi = to_epf_mhi(mhi_cntrl); + struct pci_epf *epf = epf_mhi->epf; + enum pci_epc_wakeup_host_type type; + struct pci_epc *epc = epf->epc; + + type = PCI_WAKEUP_SEND_PME; + if (mhi_cntrl->dstate == PCI_D3cold) + type = PCI_WAKEUP_TOGGLE_WAKE; + + return pci_epc_wakeup_host(epc, epf->func_no, epf->vfunc_no, type); + +} + static int pci_epf_mhi_core_init(struct pci_epf *epf) { struct pci_epf_mhi *epf_mhi = epf_get_drvdata(epf); @@ -293,6 +308,7 @@ static int pci_epf_mhi_link_up(struct pci_epf *epf) mhi_cntrl->unmap_free = pci_epf_mhi_unmap_free; mhi_cntrl->read_from_host = pci_epf_mhi_read_from_host; mhi_cntrl->write_to_host = pci_epf_mhi_write_to_host; + mhi_cntrl->wakeup_host = pci_epf_mhi_wakeup_host; /* Register the MHI EP controller */ ret = mhi_ep_register_controller(mhi_cntrl, info->config); diff --git a/include/linux/mhi_ep.h b/include/linux/mhi_ep.h index c3a0685..e353c429 100644 --- a/include/linux/mhi_ep.h +++ b/include/linux/mhi_ep.h @@ -137,6 +137,7 @@ struct mhi_ep_cntrl { void __iomem *virt, size_t size); int (*read_from_host)(struct mhi_ep_cntrl *mhi_cntrl, u64 from, void *to, size_t size); int (*write_to_host)(struct mhi_ep_cntrl *mhi_cntrl, void *from, u64 to, size_t size); + int (*wakeup_host)(struct mhi_ep_cntrl *mhi_cntrl); enum mhi_state mhi_state; From patchwork Thu Jul 13 07:10:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna chaitanya chundru X-Patchwork-Id: 119587 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1647317vqm; Thu, 13 Jul 2023 00:23:41 -0700 (PDT) X-Google-Smtp-Source: APBJJlFT6jp+8LbbCoxXGl4vFmnYcv7+E60Dk7rOUqbh1lO0k0bLR8kGNR4nEz+mwIMwvbvhHSJb X-Received: by 2002:a05:6402:1a30:b0:51d:9b4d:66bd with SMTP id be16-20020a0564021a3000b0051d9b4d66bdmr995447edb.9.1689233021503; Thu, 13 Jul 2023 00:23:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689233021; cv=none; d=google.com; s=arc-20160816; b=y1vsDvLFvZaRRnnmRT41YE+S3vfHPX3tyv+tMrHFWKPWIgnl5UIHNpazJ4v30HNGYf WNm9vddiJ7UJQNEJe/NQky6uAbperWYs3j4ElL5BHD9HeWB0lL98nQD/myz18kdxEQKp uQd367O1+AOYQT7bTY+eJr+aWLoUgoU8LeoOY+dGOm8+nvAMGK/ElLjme/yvP8IbCfzw kbi+g87Xm/KqRGzjS2tpQvrK75GjH3es1khPyFs+tJUkcvEE+IYpAreEUX1c4bZNGK6v K8mBO+PDsJPyeMynQdulXlaqnOQJJsPF1fdvYGTlARBXs67ScQyiE95yEJ4t8u41xbAT FcHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=Bvs+jW+/RxKB8/3YmBJO4p8PBgsIEcxq3wMOfwo8eik=; fh=lRKqV11wuxh4K/krk4QTEFfDlml6ivuIGc9XlZKzTIo=; b=0u3ed2eRueYQaTs/zCv4W0x1X2BArdIJ2g7YljyP26WLZNg26C6mVgpWKOSEE83GBR KY4SxwGwaS+mYHJOyVRpMfO2wRRT4E3PXW7usoeezxRlRc0b8iJISQ7nkyIgoD/q543m c8mSpaG5pFabWzA5S/bBhTANdx5vpvGo6LJQupvDqdIKOelt61YE5n60dPiAnGy6uLr/ gYmPogdkHHtCeE6kxGWrpcRwrkyG2D0D9rSdDKHdTSk5Mzr0bR57kZPrmxIS1I5Kl/we fCi7PUYKg9W6Ev63BPs7wSxMBr92nmx5fndfcskWKbX0gEjDLPuFqalQ9c9hy8M17asB xoHg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=Ar99mLwy; 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=quicinc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l13-20020a056402124d00b0051e2767612esi6902001edw.328.2023.07.13.00.23.18; Thu, 13 Jul 2023 00:23: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=@quicinc.com header.s=qcppdkim1 header.b=Ar99mLwy; 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=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234039AbjGMHLI (ORCPT + 99 others); Thu, 13 Jul 2023 03:11:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36720 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234210AbjGMHKu (ORCPT ); Thu, 13 Jul 2023 03:10:50 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DFB0B2691; Thu, 13 Jul 2023 00:10:43 -0700 (PDT) Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36D4oi6S001504; Thu, 13 Jul 2023 07:10:35 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=qcppdkim1; bh=Bvs+jW+/RxKB8/3YmBJO4p8PBgsIEcxq3wMOfwo8eik=; b=Ar99mLwyuVXK7EaD1rHnbAJZv55HoAUyQS3sjV/GaeyMdfc17vi01PvCf1tq6GCR6OB8 SY/V+xtPBKbKQAW0dIgVJqNgfAvB4fv+fybhW0dMRfvwKA0VK/f9lU4twBPyepV7+GjK b4bBbZMnwvY5VwXLOzteeATXFRth/QuH3SG3stEprUQbQ1KOmU98Z+D1RyDcOdRxCDpz kW0/j0hU5zHH+41XrhtRmRF+eoU0gUa0IYsajzh4iTu2BqeO1DJf2qfs6XcqzMGY1rP4 OrzCWaijca63+3wVrtkS5ur548QTKXckwt0bv3pJIuxrZrLUQeJTqZ70lGkBB26Hm38O vg== Received: from apblrppmta01.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com [103.229.18.19]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3rt89trdy6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 07:10:34 +0000 Received: from pps.filterd (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTP id 36D7ARW7030237; Thu, 13 Jul 2023 07:10:31 GMT Received: from pps.reinject (localhost [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTPS id 3rq0vkymjw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 13 Jul 2023 07:10:31 +0000 Received: from APBLRPPMTA01.qualcomm.com (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 36D7AVm5030282; Thu, 13 Jul 2023 07:10:31 GMT Received: from hu-sgudaval-hyd.qualcomm.com (hu-krichai-hyd.qualcomm.com [10.213.110.112]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTP id 36D7AUd5030281; Thu, 13 Jul 2023 07:10:31 +0000 Received: by hu-sgudaval-hyd.qualcomm.com (Postfix, from userid 4058933) id 4820347AD; Thu, 13 Jul 2023 12:40:30 +0530 (+0530) From: Krishna chaitanya chundru To: manivannan.sadhasivam@linaro.org Cc: 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, Krishna chaitanya chundru , Manivannan Sadhasivam , Jeffrey Hugo , Greg Kroah-Hartman , Dan Carpenter , "Rafael J. Wysocki" , mhi@lists.linux.dev (open list:MHI BUS) Subject: [PATCH v4 9/9] bus: mhi: ep: wake up host if the MHI state is in M3 Date: Thu, 13 Jul 2023 12:40:18 +0530 Message-Id: <1689232218-28265-10-git-send-email-quic_krichai@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> References: <1689232218-28265-1-git-send-email-quic_krichai@quicinc.com> X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: T15qBKJN9ulkBy-q7XDfJZotAgGCN3OB X-Proofpoint-GUID: T15qBKJN9ulkBy-q7XDfJZotAgGCN3OB X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-13_04,2023-07-11_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 spamscore=0 adultscore=0 mlxscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1015 mlxlogscore=966 suspectscore=0 priorityscore=1501 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307130061 X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_LOW,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: INBOX X-GMAIL-THRID: 1771289204728990035 X-GMAIL-MSGID: 1771289204728990035 If the MHI state is in M3 then the most probably the host kept the device in D3 hot or D3 cold, due to that endpoint transctions will not be read by the host, so endpoint wakes up host to bring the host to D0 which eventually bring back the MHI state to M0. Signed-off-by: Krishna chaitanya chundru --- drivers/bus/mhi/ep/main.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/drivers/bus/mhi/ep/main.c b/drivers/bus/mhi/ep/main.c index 6008818..46a888e 100644 --- a/drivers/bus/mhi/ep/main.c +++ b/drivers/bus/mhi/ep/main.c @@ -25,6 +25,26 @@ static DEFINE_IDA(mhi_ep_cntrl_ida); static int mhi_ep_create_device(struct mhi_ep_cntrl *mhi_cntrl, u32 ch_id); static int mhi_ep_destroy_device(struct device *dev, void *data); +static int mhi_ep_wake_host(struct mhi_ep_cntrl *mhi_cntrl) +{ + enum mhi_state state; + bool mhi_reset; + u32 count = 0; + + mhi_cntrl->wakeup_host(mhi_cntrl); + + /* Wait for Host to set the M0 state */ + while (count++ < M0_WAIT_COUNT) { + msleep(M0_WAIT_DELAY_MS); + + mhi_ep_mmio_get_mhi_state(mhi_cntrl, &state, &mhi_reset); + if (state == MHI_STATE_M0) + return 0; + } + + return -ENODEV; +} + static int mhi_ep_send_event(struct mhi_ep_cntrl *mhi_cntrl, u32 ring_idx, struct mhi_ring_element *el, bool bei) { @@ -464,6 +484,13 @@ int mhi_ep_queue_skb(struct mhi_ep_device *mhi_dev, struct sk_buff *skb) buf_left = skb->len; ring = &mhi_cntrl->mhi_chan[mhi_chan->chan].ring; + if (mhi_cntrl->mhi_state == MHI_STATE_M3) { + if (mhi_ep_wake_host(mhi_cntrl)) { + dev_err(dev, "Failed to wakeup host\n"); + return -ENODEV; + } + } + mutex_lock(&mhi_chan->lock); do {