Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752666AbcCGIzj (ORCPT ); Mon, 7 Mar 2016 03:55:39 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:60970 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752196AbcCGIzX (ORCPT ); Mon, 7 Mar 2016 03:55:23 -0500 Message-ID: In-Reply-To: <1457265358-31635-17-git-send-email-ygardi@codeaurora.org> References: <1457265358-31635-1-git-send-email-ygardi@codeaurora.org> <1457265358-31635-17-git-send-email-ygardi@codeaurora.org> Date: Mon, 7 Mar 2016 08:55:21 -0000 Subject: Re: [PATCH v6 16/17] scsi: ufs-qcom: enable/disable the device ref clock From: "Gilad Broner" To: "Yaniv Gardi" Cc: james.bottomley@hansenpartnership.com, linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, linux-arm-msm@vger.kernel.org, santoshsy@gmail.com, linux-scsi-owner@vger.kernel.org, ygardi@codeaurora.org, "Vinayak Holikatti" , "James E.J. Bottomley" , "Martin K. Petersen" User-Agent: SquirrelMail/1.4.22-4.el6 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7BIT X-Priority: 3 (Normal) Importance: Normal Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3259 Lines: 97 Reviewed-by: Gilad Broner > This change enables the device ref clock before changing to HS mode > and disables it if entered to PWM mode. > > Signed-off-by: Yaniv Gardi > > --- > drivers/scsi/ufs/ufs-qcom.c | 12 ++++++++++++ > drivers/scsi/ufs/ufshcd.h | 9 +++++++++ > 2 files changed, 21 insertions(+) > > diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c > index 966bacf..849fcf3 100644 > --- a/drivers/scsi/ufs/ufs-qcom.c > +++ b/drivers/scsi/ufs/ufs-qcom.c > @@ -980,6 +980,10 @@ static int ufs_qcom_pwr_change_notify(struct ufs_hba > *hba, > goto out; > } > > + /* enable the device ref clock before changing to HS mode */ > + if (!ufshcd_is_hs_mode(&hba->pwr_info) && > + ufshcd_is_hs_mode(dev_req_params)) > + ufs_qcom_dev_ref_clk_ctrl(host, true); > break; > case POST_CHANGE: > if (ufs_qcom_cfg_timers(hba, dev_req_params->gear_rx, > @@ -1007,6 +1011,11 @@ static int ufs_qcom_pwr_change_notify(struct > ufs_hba *hba, > memcpy(&host->dev_req_params, > dev_req_params, sizeof(*dev_req_params)); > ufs_qcom_update_bus_bw_vote(host); > + > + /* disable the device ref clock if entered PWM mode */ > + if (ufshcd_is_hs_mode(&hba->pwr_info) && > + !ufshcd_is_hs_mode(dev_req_params)) > + ufs_qcom_dev_ref_clk_ctrl(host, false); > break; > default: > ret = -EINVAL; > @@ -1108,6 +1117,9 @@ static int ufs_qcom_setup_clocks(struct ufs_hba > *hba, bool on) > ufs_qcom_phy_disable_iface_clk(host->generic_phy); > goto out; > } > + /* enable the device ref clock for HS mode*/ > + if (ufshcd_is_hs_mode(&hba->pwr_info)) > + ufs_qcom_dev_ref_clk_ctrl(host, true); > vote = host->bus_vote.saved_vote; > if (vote == host->bus_vote.min_bw_vote) > ufs_qcom_update_bus_bw_vote(host); > diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h > index 41d9bfd..4bb6566 100644 > --- a/drivers/scsi/ufs/ufshcd.h > +++ b/drivers/scsi/ufs/ufshcd.h > @@ -54,6 +54,7 @@ > #include > #include > #include > +#include "unipro.h" > > #include > #include > @@ -689,6 +690,14 @@ static inline int ufshcd_dme_peer_get(struct ufs_hba > *hba, > > int ufshcd_read_device_desc(struct ufs_hba *hba, u8 *buf, u32 size); > > +static inline bool ufshcd_is_hs_mode(struct ufs_pa_layer_attr *pwr_info) > +{ > + return (pwr_info->pwr_rx == FAST_MODE || > + pwr_info->pwr_rx == FASTAUTO_MODE) && > + (pwr_info->pwr_tx == FAST_MODE || > + pwr_info->pwr_tx == FASTAUTO_MODE); > +} > + > #define ASCII_STD true > > int ufshcd_read_string_desc(struct ufs_hba *hba, int desc_index, u8 *buf, > -- > 1.8.5.2 > > -- > QUALCOMM ISRAEL, on behalf of Qualcomm Innovation Center, Inc. is a member > of Code Aurora Forum, hosted by The Linux Foundation > -- > To unsubscribe from this list: send the line "unsubscribe linux-scsi" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- Qualcomm Israel, on behalf of Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project