Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3836372pxf; Mon, 29 Mar 2021 12:55:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxlM5Co40o46DePTkBv4v++TooLqK5Fy/hDet7laJ/3Nb52vFrutaF6r8sl0Qm7EXg7OHoW X-Received: by 2002:a05:6402:27d4:: with SMTP id c20mr30684338ede.271.1617047701464; Mon, 29 Mar 2021 12:55:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617047701; cv=none; d=google.com; s=arc-20160816; b=U+F28WkUoOnWpINga66Fv7CkwqsQ3ZtLK1JEycYD5bs7Av2rkNXPt7BxF2wtkGa9FG lwzbiHMvcdfH5gubJUHu7XPm7x5+fcymBKssycBeVmImKZTK6QFjOmHgrgpiA3p+3Rxv nOfj66Ygb5JaNrZDlJgO2lvpM8akNGvWaVh24ZaY+WcZ6eB+Ova5bMfR/kBum3oIU3nx ikzgdpxihBPg1BOkC8ovtZhogf2TJoE5XTKtd3NxDHD2e1axyjC9XdRh1mWyE5BbXZZk u5B6MxtkXpGALynEYSMP1GUQvwOq9HBIsWE8ltLuZlrLknglbubkauO60idlYwjb6odJ UKUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from:dmarc-filter :sender:dkim-signature; bh=ILpcC/45O6BYH3Fs0WBPgvv/ScmmEng5mDUsxp+BOpM=; b=IPixuE1cuIh31ipey3wdN97uQcG2LO7VwprJ4m4RX6cnc2HLB7u2K7N/PeHAXKueUI 9GkLG0UnDmp8/nngKU6fft1y0IjGRAZl6/HKU0aGRDDrg61bre1iObjrbRIw92YO49Sp eoJ5BB5EmojP2XyaFBq6FB477QsplxF1aAEGhgbqWJO7ANwEYz6QV0463fTQIYM42y3w tTOrcuhHb3RUeOJ5BYMdqxnL7cfnLVXwmfsfrAzX6dJExBiqdk8WaUrT5IpGPhI/n43+ mgjDWCjcfof5l+Bby+oGm1xrkj2aYpEDOQAeQrcJMx5T+ksJvFuo7cpuOgcHXzlniWG6 piwA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=ltUbcOaK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m19si13462925eds.451.2021.03.29.12.54.37; Mon, 29 Mar 2021 12:55:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=ltUbcOaK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231772AbhC2Txn (ORCPT + 99 others); Mon, 29 Mar 2021 15:53:43 -0400 Received: from so254-9.mailgun.net ([198.61.254.9]:13377 "EHLO so254-9.mailgun.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231371AbhC2TxS (ORCPT ); Mon, 29 Mar 2021 15:53:18 -0400 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1617047598; h=Message-Id: Date: Subject: Cc: To: From: Sender; bh=ILpcC/45O6BYH3Fs0WBPgvv/ScmmEng5mDUsxp+BOpM=; b=ltUbcOaKPFM8I1rADBfU/CMZFKMMYagez5QQ6rfDh8892PCF6sNHYHjnURxtxfa1YF7x5Xuk FtOv4aXXrHbncd3ZOYcC8CsRxVVJ789enHTfjAf7MqGFW7je7oLLyY3mJM8eIBEY77KoloLN qSholaxfNvqEgamjczPukQTT4KY= X-Mailgun-Sending-Ip: 198.61.254.9 X-Mailgun-Sid: WyI0MWYwYSIsICJsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnIiwgImJlOWU0YSJd Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by smtp-out-n06.prod.us-west-2.postgun.com with SMTP id 60623027876af85fc47c3b70 (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Mon, 29 Mar 2021 19:53:11 GMT Sender: bbhatt=codeaurora.org@mg.codeaurora.org Received: by smtp.codeaurora.org (Postfix, from userid 1001) id E2C26C43461; Mon, 29 Mar 2021 19:53:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-caf-mail-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=ALL_TRUSTED,BAYES_00,SPF_FAIL autolearn=no autolearn_force=no version=3.4.0 Received: from malabar-linux.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: bbhatt) by smtp.codeaurora.org (Postfix) with ESMTPSA id D4BEEC433C6; Mon, 29 Mar 2021 19:53:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org D4BEEC433C6 Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; spf=fail smtp.mailfrom=bbhatt@codeaurora.org From: Bhaumik Bhatt To: manivannan.sadhasivam@linaro.org Cc: linux-arm-msm@vger.kernel.org, hemantk@codeaurora.org, jhugo@codeaurora.org, linux-kernel@vger.kernel.org, carl.yin@quectel.com, naveen.kumar@quectel.com, loic.poulain@linaro.org, Bhaumik Bhatt Subject: [PATCH v5 0/2] Polling for MHI ready Date: Mon, 29 Mar 2021 12:53:01 -0700 Message-Id: <1617047583-12104-1-git-send-email-bbhatt@codeaurora.org> X-Mailer: git-send-email 2.7.4 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org v5: -Use fsleep in place of udelay or usleep_range to accommodate better delay use -Drop patch for polling during RDDM panic path as new API cannot be used there v4: -Added reviewed-by tag -Return appropriate error code from mhi_poll_reg_field() -Fixed bug where mhi_poll_reg_field() returns success if polling times out -Added an interval_us variable in mhi_ready_state_transition() v3: -Removed config changes that crept in in the first patch v2: -Addressed review comments -Introduce new patch for to use controller defined read_reg() for polling -Add usage in RDDM download panic path as well Use polling instead of interrupt driven approach to wait for MHI ready state. In certain devices, it is likely that there is no incoming MHI interrupt for a transition to MHI READY state. One such example is the move from Pass Through to an SBL or AMSS execution environment. In order to facilitate faster bootup times as there is no need to wait until timeout_ms completes, MHI host can poll every 25 milliseconds to check if device has entered MHI READY until a maximum timeout of twice the timeout_ms is reached. This patch series has been tested on an arm64 device. Bhaumik Bhatt (2): bus: mhi: core: Introduce internal register poll helper function bus: mhi: core: Move to polling method to wait for MHI ready drivers/bus/mhi/core/internal.h | 3 +++ drivers/bus/mhi/core/main.c | 23 +++++++++++++++++++++++ drivers/bus/mhi/core/pm.c | 32 +++++++++++++++----------------- 3 files changed, 41 insertions(+), 17 deletions(-) -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project