All of lore.kernel.org
 help / color / mirror / Atom feed
From: Can Guo <cang@codeaurora.org>
To: Adrian Hunter <adrian.hunter@intel.com>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>,
	Ziqi Chen <ziqichen@codeaurora.org>,
	asutoshd@codeaurora.org, nguyenb@codeaurora.org,
	hongwus@codeaurora.org, rnayak@codeaurora.org,
	vinholikatti@gmail.com, jejb@linux.vnet.ibm.com,
	martin.petersen@oracle.com, linux-scsi@vger.kernel.org,
	kernel-team@android.com, saravanak@google.com,
	salyzyn@google.com, kwmad.kim@samsung.com,
	stanley.chu@mediatek.com, Alim Akhtar <alim.akhtar@samsung.com>,
	Avri Altman <avri.altman@wdc.com>,
	"James E.J. Bottomley" <jejb@linux.ibm.com>,
	Andy Gross <agross@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Bean Huo <beanhuo@micron.com>,
	Bart Van Assche <bvanassche@acm.org>,
	Satya Tangirala <satyat@google.com>,
	"moderated list:UNIVERSAL FLASH STORAGE HOST CONTROLLER
	DRIVER..."  <linux-mediatek@lists.infradead.org>,
	open list <linux-kernel@vger.kernel.org>,
	"open list:ARM/QUALCOMM SUPPORT" <linux-arm-msm@vger.kernel.org>,
	"moderated list:ARM/Mediatek SoC support" 
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH RFC v4 1/1] scsi: ufs: Fix ufs power down/on specs violation
Date: Tue, 05 Jan 2021 15:28:47 +0800	[thread overview]
Message-ID: <ff2c3c4379cb8bc41580d5615b01f86a@codeaurora.org> (raw)
In-Reply-To: <b82dd5f1-179c-6834-9d8f-88005b74ce51@intel.com>

On 2021-01-05 15:16, Adrian Hunter wrote:
> On 4/01/21 8:55 pm, Bjorn Andersson wrote:
>> On Mon 04 Jan 03:15 CST 2021, Adrian Hunter wrote:
>> 
>>> On 22/12/20 3:49 pm, Ziqi Chen wrote:
>>>> As per specs, e.g, JESD220E chapter 7.2, while powering
>>>> off/on the ufs device, RST_N signal and REF_CLK signal
>>>> should be between VSS(Ground) and VCCQ/VCCQ2.
>>>> 
>>>> To flexibly control device reset line, refactor the function
>>>> ufschd_vops_device_reset(sturct ufs_hba *hba) to ufshcd_
>>>> vops_device_reset(sturct ufs_hba *hba, bool asserted). The
>>>> new parameter "bool asserted" is used to separate device reset
>>>> line pulling down from pulling up.
>>> 
>>> This patch assumes the power is controlled by voltage regulators, but 
>>> for us
>>> it is controlled by firmware (ACPI), so it is not correct to change 
>>> RST_n
>>> for all host controllers as you are doing.
>>> 
>>> Also we might need to use a firmware interface for device reset, in 
>>> which
>>> case the 'asserted' value doe not make sense.
>>> 
>> 
>> Are you saying that the entire flip-flop-the-reset is a single 
>> firmware
>> operation in your case?
> 
> Yes
> 
>>                         If you look at the Mediatek driver, the
>> implementation of ufs_mtk_device_reset_ctrl() is a jump to firmware.
>> 
>> 
>> But perhaps "asserted" isn't the appropriate English word for saying
>> "the reset is in the resetting state"?
>> 
>> I just wanted to avoid the use of "high"/"lo" as if you look at the
>> Mediatek code they pass the expected line-level to the firmware, while
>> in the Qualcomm code we pass the logical state to the GPIO code which 
>> is
>> setup up as "active low" and thereby flip the meaning before hitting 
>> the
>> pad.
>> 
>>> Can we leave the device reset callback alone, and instead introduce a 
>>> new
>>> variant operation for setting RST_n to match voltage regulator power 
>>> changes?
>> 
>> Wouldn't this new function just have to look like the proposed 
>> patches?
>> In which case for existing platforms we'd have both?
>> 
>> How would you implement this, or would you simply skip implementing
>> this?
> 
> Functionally, doing a device reset is not the same as adjusting signal
> levels to meet power up/off ramp requirements.  However, the issue is 
> that
> we do not use regulators, so the power is not necessarily being changed 
> at
> those points, and we definitely do not want to reset instead of 
> entering
> DeepSleep for example.
> 
> Off the top of my head, I imagine something like a callback called
> ufshcd_vops_prepare_power_ramp(hba, bool on) which is called only if
> hba->vreg_info->vcc is not NULL.

Hi Adrian,

I don't see you have the vops device_reset() implemented anywhere in
current code base, how is this change impacting you? Do I miss anything
or are you planning to push a change which implements device_reset() 
soon?

Thanks,
Can Guo.

WARNING: multiple messages have this Message-ID (diff)
From: Can Guo <cang@codeaurora.org>
To: Adrian Hunter <adrian.hunter@intel.com>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>,
	Alim Akhtar <alim.akhtar@samsung.com>,
	vinholikatti@gmail.com, Bean Huo <beanhuo@micron.com>,
	Satya Tangirala <satyat@google.com>,
	jejb@linux.vnet.ibm.com, Bart Van Assche <bvanassche@acm.org>,
	linux-scsi@vger.kernel.org, Ziqi Chen <ziqichen@codeaurora.org>,
	Andy Gross <agross@kernel.org>,
	kernel-team@android.com, salyzyn@google.com,
	"open list:ARM/QUALCOMM SUPPORT" <linux-arm-msm@vger.kernel.org>,
	"James E.J. Bottomley" <jejb@linux.ibm.com>,
	Avri Altman <avri.altman@wdc.com>,
	"moderated list:UNIVERSAL FLASH STORAGE HOST CONTROLLER
	DRIVER..." <linux-mediatek@lists.infradead.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	kwmad.kim@samsung.com, stanley.chu@mediatek.com,
	"moderated list:ARM/Mediatek SoC support"
	<linux-arm-kernel@lists.infradead.org>,
	rnayak@codeaurora.org, saravanak@google.com,
	martin.petersen@oracle.com, nguyenb@codeaurora.org,
	open list <linux-kernel@vger.kernel.org>,
	hongwus@codeaurora.org, asutoshd@codeaurora.org
Subject: Re: [PATCH RFC v4 1/1] scsi: ufs: Fix ufs power down/on specs violation
Date: Tue, 05 Jan 2021 15:28:47 +0800	[thread overview]
Message-ID: <ff2c3c4379cb8bc41580d5615b01f86a@codeaurora.org> (raw)
In-Reply-To: <b82dd5f1-179c-6834-9d8f-88005b74ce51@intel.com>

On 2021-01-05 15:16, Adrian Hunter wrote:
> On 4/01/21 8:55 pm, Bjorn Andersson wrote:
>> On Mon 04 Jan 03:15 CST 2021, Adrian Hunter wrote:
>> 
>>> On 22/12/20 3:49 pm, Ziqi Chen wrote:
>>>> As per specs, e.g, JESD220E chapter 7.2, while powering
>>>> off/on the ufs device, RST_N signal and REF_CLK signal
>>>> should be between VSS(Ground) and VCCQ/VCCQ2.
>>>> 
>>>> To flexibly control device reset line, refactor the function
>>>> ufschd_vops_device_reset(sturct ufs_hba *hba) to ufshcd_
>>>> vops_device_reset(sturct ufs_hba *hba, bool asserted). The
>>>> new parameter "bool asserted" is used to separate device reset
>>>> line pulling down from pulling up.
>>> 
>>> This patch assumes the power is controlled by voltage regulators, but 
>>> for us
>>> it is controlled by firmware (ACPI), so it is not correct to change 
>>> RST_n
>>> for all host controllers as you are doing.
>>> 
>>> Also we might need to use a firmware interface for device reset, in 
>>> which
>>> case the 'asserted' value doe not make sense.
>>> 
>> 
>> Are you saying that the entire flip-flop-the-reset is a single 
>> firmware
>> operation in your case?
> 
> Yes
> 
>>                         If you look at the Mediatek driver, the
>> implementation of ufs_mtk_device_reset_ctrl() is a jump to firmware.
>> 
>> 
>> But perhaps "asserted" isn't the appropriate English word for saying
>> "the reset is in the resetting state"?
>> 
>> I just wanted to avoid the use of "high"/"lo" as if you look at the
>> Mediatek code they pass the expected line-level to the firmware, while
>> in the Qualcomm code we pass the logical state to the GPIO code which 
>> is
>> setup up as "active low" and thereby flip the meaning before hitting 
>> the
>> pad.
>> 
>>> Can we leave the device reset callback alone, and instead introduce a 
>>> new
>>> variant operation for setting RST_n to match voltage regulator power 
>>> changes?
>> 
>> Wouldn't this new function just have to look like the proposed 
>> patches?
>> In which case for existing platforms we'd have both?
>> 
>> How would you implement this, or would you simply skip implementing
>> this?
> 
> Functionally, doing a device reset is not the same as adjusting signal
> levels to meet power up/off ramp requirements.  However, the issue is 
> that
> we do not use regulators, so the power is not necessarily being changed 
> at
> those points, and we definitely do not want to reset instead of 
> entering
> DeepSleep for example.
> 
> Off the top of my head, I imagine something like a callback called
> ufshcd_vops_prepare_power_ramp(hba, bool on) which is called only if
> hba->vreg_info->vcc is not NULL.

Hi Adrian,

I don't see you have the vops device_reset() implemented anywhere in
current code base, how is this change impacting you? Do I miss anything
or are you planning to push a change which implements device_reset() 
soon?

Thanks,
Can Guo.

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

  reply	other threads:[~2021-01-05  7:29 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20201222135020epcas2p1849e621559157e76a22b808e7a802400@epcas2p1.samsung.com>
2020-12-22 13:49 ` [PATCH RFC v4 1/1] scsi: ufs: Fix ufs power down/on specs violation Ziqi Chen
2020-12-22 13:49   ` Ziqi Chen
2020-12-22 13:49   ` Ziqi Chen
2020-12-23  4:34   ` Kiwoong Kim
2020-12-23  9:33   ` Stanley Chu
2020-12-23  9:33     ` Stanley Chu
2020-12-23  9:33     ` Stanley Chu
2020-12-23 12:17   ` Can Guo
2020-12-23 12:17     ` Can Guo
2020-12-23 20:45   ` Avri Altman
2020-12-23 20:45     ` Avri Altman
2020-12-23 20:45     ` Avri Altman
2020-12-24 15:35     ` ziqichen
2020-12-24 15:35       ` ziqichen
2020-12-28 17:55   ` Bjorn Andersson
2020-12-28 17:55     ` Bjorn Andersson
2020-12-28 17:55     ` Bjorn Andersson
2020-12-29  1:18     ` Can Guo
2020-12-29  1:18       ` Can Guo
2020-12-29  1:48       ` Can Guo
2020-12-29  1:48         ` Can Guo
2021-01-04 18:59         ` Bjorn Andersson
2021-01-04 18:59           ` Bjorn Andersson
2021-01-04 18:59           ` Bjorn Andersson
2021-01-04 18:57       ` Bjorn Andersson
2021-01-04 18:57         ` Bjorn Andersson
2021-01-04 18:57         ` Bjorn Andersson
2021-01-05  1:39         ` Can Guo
2021-01-05  1:39           ` Can Guo
2021-01-04  9:15   ` Adrian Hunter
2021-01-04  9:15     ` Adrian Hunter
2021-01-04  9:15     ` Adrian Hunter
2021-01-04 18:55     ` Bjorn Andersson
2021-01-04 18:55       ` Bjorn Andersson
2021-01-04 18:55       ` Bjorn Andersson
2021-01-05  7:16       ` Adrian Hunter
2021-01-05  7:16         ` Adrian Hunter
2021-01-05  7:16         ` Adrian Hunter
2021-01-05  7:28         ` Can Guo [this message]
2021-01-05  7:28           ` Can Guo
2021-01-05  7:33           ` Adrian Hunter
2021-01-05  7:33             ` Adrian Hunter
2021-01-05  7:33             ` Adrian Hunter
2021-01-05 10:06             ` Can Guo
2021-01-05 10:06               ` 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=ff2c3c4379cb8bc41580d5615b01f86a@codeaurora.org \
    --to=cang@codeaurora.org \
    --cc=adrian.hunter@intel.com \
    --cc=agross@kernel.org \
    --cc=alim.akhtar@samsung.com \
    --cc=asutoshd@codeaurora.org \
    --cc=avri.altman@wdc.com \
    --cc=beanhuo@micron.com \
    --cc=bjorn.andersson@linaro.org \
    --cc=bvanassche@acm.org \
    --cc=hongwus@codeaurora.org \
    --cc=jejb@linux.ibm.com \
    --cc=jejb@linux.vnet.ibm.com \
    --cc=kernel-team@android.com \
    --cc=kwmad.kim@samsung.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=matthias.bgg@gmail.com \
    --cc=nguyenb@codeaurora.org \
    --cc=rnayak@codeaurora.org \
    --cc=salyzyn@google.com \
    --cc=saravanak@google.com \
    --cc=satyat@google.com \
    --cc=stanley.chu@mediatek.com \
    --cc=vinholikatti@gmail.com \
    --cc=ziqichen@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.