All of lore.kernel.org
 help / color / mirror / Atom feed
From: Can Guo <can.guo@oss.qualcomm.com>
To: Bean Huo <beanhuo@iokpp.de>,
	avri.altman@wdc.com, bvanassche@acm.org, beanhuo@micron.com,
	peter.wang@mediatek.com, martin.petersen@oracle.com,
	mani@kernel.org
Cc: linux-scsi@vger.kernel.org, Alim Akhtar <alim.akhtar@samsung.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	"Bao D. Nguyen" <quic_nguyenb@quicinc.com>,
	Adrian Hunter <adrian.hunter@intel.com>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v4 07/12] scsi: ufs: core: Add support to retrain TX Equalization via debugfs
Date: Mon, 23 Mar 2026 14:13:43 +0800	[thread overview]
Message-ID: <7747227e-0667-445c-a2e9-c92b273ea8de@oss.qualcomm.com> (raw)
In-Reply-To: <7ef32c7c4f9c2220b04e9d0ce55d45a7e3373da8.camel@iokpp.de>



On 3/22/2026 9:36 PM, Bean Huo wrote:
> On Fri, 2026-03-20 at 20:10 -0700, Can Guo wrote:
>> +/**
>> + * ufshcd_retrain_tx_eq - Retrain TX Equalization and apply new settings
>> + * @hba: per-adapter instance
>> + * @gear: target High-Speed (HS) gear for retraining
>> + *
>> + * This function initiates a refresh of the TX Equalization settings for a
>> + * specific HS gear. It scales the clocks to maximum frequency, negotiates
>> the
>> + * power mode with the device, retrains TX EQ and applies new TX EQ settings
>> + * by conducting a Power Mode change.
>> + *
>> + * Returns 0 on success, non-zero error code otherwise
>> + */
>> +int ufshcd_retrain_tx_eq(struct ufs_hba *hba, u32 gear)
>> +{
>> +       struct ufs_pa_layer_attr new_pwr_info, final_params = {};
>> +       int ret;
>> +
>> +       if (!ufshcd_is_tx_eq_supported(hba) || !use_adaptive_txeq)
>> +               return -EOPNOTSUPP;
>> +
>> +       if (gear < adaptive_txeq_gear)
>> +               return -ERANGE;
>> +
>> +       ufshcd_hold(hba);
>> +
>> +       ret = ufshcd_pause_command_processing(hba, 1 * USEC_PER_SEC);
>> +       if (ret) {
>> +               ufshcd_release(hba);
>> +               return ret;
>> +       }
>> +
>> +       /* scale up clocks to max frequency before TX EQTR */
>> +       if (ufshcd_is_clkscaling_supported(hba))
>> +               ufshcd_scale_clks(hba, ULONG_MAX, true);
>> +
>> +       new_pwr_info = hba->pwr_info;
>> +       new_pwr_info.gear_tx = gear;
>> +       new_pwr_info.gear_rx = gear;
>> +
>> +       ret = ufshcd_vops_negotiate_pwr_mode(hba, &new_pwr_info,
>> &final_params);
>> +       if (ret)
>> +               memcpy(&final_params, &new_pwr_info, sizeof(final_params));
>> +
>> +       if (final_params.gear_tx != gear) {
>> +               dev_err(hba->dev, "Negotiated Gear (%u) does not match target
>> Gear (%u)\n",
>> +                       final_params.gear_tx, gear);\
> might be ret = -EINVAL; before goto?
You are right, let me add it in next version.

Thanks,
Can Guo.
>
>
>> +               goto out;
>> +       }


  reply	other threads:[~2026-03-23  6:13 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-21  3:10 [PATCH v4 00/12] scsi: ufs: Add TX Equalization support for UFS 5.0 Can Guo
2026-03-21  3:10 ` [PATCH v4 01/12] scsi: ufs: core: Introduce a new ufshcd vops negotiate_pwr_mode() Can Guo
2026-03-23  9:10   ` Bean Huo
2026-03-21  3:10 ` [PATCH v4 02/12] scsi: ufs: core: Pass force_pmc to ufshcd_config_pwr_mode() as a parameter Can Guo
2026-03-23  9:11   ` Bean Huo
2026-03-21  3:10 ` [PATCH v4 03/12] scsi: ufs: core: Add UFS_HS_G6 and UFS_HS_GEAR_MAX to enum ufs_hs_gear_tag Can Guo
2026-03-23  9:11   ` Bean Huo
2026-03-21  3:10 ` [PATCH v4 04/12] scsi: ufs: core: Add support for TX Equalization Can Guo
2026-03-22  9:48   ` Bean Huo
2026-03-22 14:26     ` Bean Huo
2026-03-23  6:05       ` Can Guo
2026-03-23  9:15   ` Bean Huo
2026-03-24  7:46   ` Peter Wang (王信友)
2026-03-24 10:09     ` Can Guo
2026-03-24 11:54       ` Peter Wang (王信友)
2026-03-24 12:32         ` Can Guo
2026-03-21  3:10 ` [PATCH v4 05/12] scsi: ufs: core: Add debugfs entries for TX Equalization params Can Guo
2026-03-23  9:16   ` Bean Huo
2026-03-21  3:10 ` [PATCH v4 06/12] scsi: ufs: core: Add helpers to pause and resume command processing Can Guo
2026-03-23  9:17   ` Bean Huo
2026-08-13 22:29   ` sashiko-bot
2026-03-21  3:10 ` [PATCH v4 07/12] scsi: ufs: core: Add support to retrain TX Equalization via debugfs Can Guo
2026-03-22 13:36   ` Bean Huo
2026-03-23  6:13     ` Can Guo [this message]
2026-03-23  9:21   ` Bean Huo
2026-03-21  3:10 ` [PATCH v4 08/12] scsi: ufs: ufs-qcom: Fixup PAM-4 TX L0_L1_L2_L3 adaptation pattern length Can Guo
2026-03-23  9:22   ` Bean Huo
2026-03-21  3:10 ` [PATCH v4 09/12] scsi: ufs: ufs-qcom: Implement vops tx_eqtr_notify() Can Guo
2026-03-23  9:23   ` Bean Huo
2026-03-21  3:10 ` [PATCH v4 10/12] scsi: ufs: ufs-qcom: Implement vops get_rx_fom() Can Guo
2026-03-23  9:24   ` Bean Huo
2026-03-21  3:10 ` [PATCH v4 11/12] scsi: ufs: ufs-qcom: Implement vops apply_tx_eqtr_settings() Can Guo
2026-03-23  9:24   ` Bean Huo
2026-03-21  3:10 ` [PATCH v4 12/12] scsi: ufs: ufs-qcom: Enable TX Equalization Can Guo
2026-03-23  9:25   ` Bean Huo
2026-03-23 16:50 ` [PATCH v4 00/12] scsi: ufs: Add TX Equalization support for UFS 5.0 Bart Van Assche

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=7747227e-0667-445c-a2e9-c92b273ea8de@oss.qualcomm.com \
    --to=can.guo@oss.qualcomm.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=adrian.hunter@intel.com \
    --cc=alim.akhtar@samsung.com \
    --cc=avri.altman@wdc.com \
    --cc=beanhuo@iokpp.de \
    --cc=beanhuo@micron.com \
    --cc=bvanassche@acm.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=mani@kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=peter.wang@mediatek.com \
    --cc=quic_nguyenb@quicinc.com \
    /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.