All of lore.kernel.org
 help / color / mirror / Atom feed
From: Can Guo <cang@codeaurora.org>
To: Avri Altman <Avri.Altman@wdc.com>
Cc: asutoshd@codeaurora.org, nguyenb@codeaurora.org,
	hongwus@codeaurora.org, rnayak@codeaurora.org,
	linux-scsi@vger.kernel.org, kernel-team@android.com,
	saravanak@google.com, salyzyn@google.com,
	Alim Akhtar <alim.akhtar@samsung.com>,
	"James E.J. Bottomley" <jejb@linux.ibm.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	Bean Huo <beanhuo@micron.com>,
	Stanley Chu <stanley.chu@mediatek.com>,
	Colin Ian King <colin.king@canonical.com>,
	Tomas Winkler <tomas.winkler@intel.com>,
	Bart Van Assche <bvanassche@acm.org>,
	Venkat Gopalakrishnan <venkatg@codeaurora.org>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 6/8] scsi: ufs: Add dev ref clock gating wait time support
Date: Thu, 06 Feb 2020 16:09:09 +0800	[thread overview]
Message-ID: <6222003c478f11ce6fb6564e722800a0@codeaurora.org> (raw)
In-Reply-To: <MN2PR04MB69914C6980E32674B38F9152FC1D0@MN2PR04MB6991.namprd04.prod.outlook.com>

On 2020-02-06 15:57, Avri Altman wrote:
>> In UFS version 3.0, a newly added attribute bRefClkGatingWaitTime 
>> defines
>> the minimum time for which the reference clock is required by device 
>> during
>> transition to LS-MODE or HIBERN8 state. Make this change to reflect 
>> the new
>> requirement by adding delays before turning off the clock.
>> 
>> Signed-off-by: Can Guo <cang@codeaurora.org>
>> Reviewed-by: Asutosh Das <asutoshd@codeaurora.org>
>> Reviewed-by: Bean Huo <beanhuo@micron.com>
>> 
>> diff --git a/drivers/scsi/ufs/ufs.h b/drivers/scsi/ufs/ufs.h
>> index cfe3803..990cb48 100644
>> --- a/drivers/scsi/ufs/ufs.h
>> +++ b/drivers/scsi/ufs/ufs.h
>> @@ -167,6 +167,7 @@ enum attr_idn {
>>         QUERY_ATTR_IDN_FFU_STATUS               = 0x14,
>>         QUERY_ATTR_IDN_PSA_STATE                = 0x15,
>>         QUERY_ATTR_IDN_PSA_DATA_SIZE            = 0x16,
>> +       QUERY_ATTR_IDN_REF_CLK_GATING_WAIT_TIME = 0x17,
>>  };
>> 
>>  /* Descriptor idn for Query requests */
>> @@ -534,6 +535,8 @@ struct ufs_dev_info {
>>         u16 wmanufacturerid;
>>         /*UFS device Product Name */
>>         u8 *model;
>> +       u16 wspecversion;
>> +       u32 clk_gating_wait_us;
>>  };
>> 
>>  /**
>> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
>> index e8f7f9d..76beaf9 100644
>> --- a/drivers/scsi/ufs/ufshcd.c
>> +++ b/drivers/scsi/ufs/ufshcd.c
>> @@ -91,6 +91,9 @@
>>  /* default delay of autosuspend: 2000 ms */
>>  #define RPM_AUTOSUSPEND_DELAY_MS 2000
>> 
>> +/* Default value of wait time before gating device ref clock */
>> +#define UFSHCD_REF_CLK_GATING_WAIT_US 0xFF /* microsecs */
>> +
>>  #define ufshcd_toggle_vreg(_dev, _vreg, _on)                          
>>  \
>>         ({                                                             
>>  \
>>                 int _ret;                                              
>>  \
>> @@ -3281,6 +3284,29 @@ static inline int
>> ufshcd_read_unit_desc_param(struct ufs_hba *hba,
>>                                       param_offset, param_read_buf, 
>> param_size);
>>  }
>> 
>> +static int ufshcd_get_ref_clk_gating_wait(struct ufs_hba *hba)
>> +{
>> +       int err = 0;
>> +       u32 gating_wait = UFSHCD_REF_CLK_GATING_WAIT_US;
>> +
>> +       if (hba->dev_info.wspecversion >= 0x300) {
>> +               err = ufshcd_query_attr_retry(hba,
>> UPIU_QUERY_OPCODE_READ_ATTR,
>> +                               
>> QUERY_ATTR_IDN_REF_CLK_GATING_WAIT_TIME, 0, 0,
>> +                               &gating_wait);
>> +               if (err)
>> +                       dev_err(hba->dev, "Failed reading 
>> bRefClkGatingWait. err =
>> %d, use default %uus\n",
>> +                                        err, gating_wait);
>> +
>> +               if (gating_wait == 0) {
>> +                       gating_wait = UFSHCD_REF_CLK_GATING_WAIT_US;
>> +                       dev_err(hba->dev, "Undefined ref clk gating 
>> wait time, use
>> default %uus\n",
>> +                                        gating_wait);
>> +               }
> 
> You forgot to set
> hba->dev_info.clk_gating_wait_us = gating_wait
> 
> Thanks,
> Avri

oops, shall add it back. Thanks.

Can Guo

  reply	other threads:[~2020-02-06  8:09 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-06  6:56 [PATCH v6 0/8] UFS driver general fixes bundle 4 Can Guo
2020-02-06  6:56 ` [PATCH 1/8] scsi: ufs: Flush exception event before suspend Can Guo
2020-02-06  6:56 ` [PATCH 2/8] scsi: ufs: set load before setting voltage in regulators Can Guo
2020-02-06  6:56   ` Can Guo
2020-02-06  6:56   ` Can Guo
2020-02-06  6:56 ` [PATCH 3/8] scsi: ufs: Remove the check before call setup clock notify vops Can Guo
2020-02-06  6:56   ` Can Guo
2020-02-06  6:56   ` Can Guo
2020-02-06  6:56 ` [PATCH 4/8] scsi: ufs-qcom: Adjust bus bandwidth voting and unvoting Can Guo
2020-02-06  6:56 ` [PATCH 5/8] scsi: ufs: Fix ufshcd_hold() caused scheduling while atomic Can Guo
2020-02-06  6:56   ` Can Guo
2020-02-06  6:56   ` Can Guo
2020-02-06  6:56 ` [PATCH 6/8] scsi: ufs: Add dev ref clock gating wait time support Can Guo
2020-02-06  7:30   ` Stanley Chu
2020-02-06  7:47     ` Can Guo
2020-02-06  7:57   ` Avri Altman
2020-02-06  8:09     ` Can Guo [this message]
2020-02-06  6:56 ` [PATCH 7/8] scsi: ufs-qcom: Delay specific time before gate ref clk Can Guo
2020-02-06  6:56 ` [PATCH 8/8] scsi: ufs: Select INITIAL adapt for HS Gear4 Can Guo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6222003c478f11ce6fb6564e722800a0@codeaurora.org \
    --to=cang@codeaurora.org \
    --cc=Avri.Altman@wdc.com \
    --cc=alim.akhtar@samsung.com \
    --cc=asutoshd@codeaurora.org \
    --cc=beanhuo@micron.com \
    --cc=bvanassche@acm.org \
    --cc=colin.king@canonical.com \
    --cc=hongwus@codeaurora.org \
    --cc=jejb@linux.ibm.com \
    --cc=kernel-team@android.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=nguyenb@codeaurora.org \
    --cc=rnayak@codeaurora.org \
    --cc=salyzyn@google.com \
    --cc=saravanak@google.com \
    --cc=stanley.chu@mediatek.com \
    --cc=tomas.winkler@intel.com \
    --cc=venkatg@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.