Message ID | 20241025131442.112862-11-peter.griffin@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | UFS cleanups and enhancements to ufs-exynos for gs101 | expand |
On 10/25/24 2:14 PM, Peter Griffin wrote: > v1 of the patch which introduced the ufshcd_vops_hibern8_notify() callback > used a bool instead of an enum. In v2 this was updated to an enum based on > the review feedback in [1]. > > ufs-exynos hibernate calls have always been broken upstream as it follows > the v1 bool implementation. > > [1] https://patchwork.kernel.org/project/linux-scsi/patch/001f01d23994$719997c0$54ccc740$@samsung.com/ you can use the Link tag, Link: blabla [1] A Fixes tag and maybe Cc to stable? Or maybe you chose to not backport it intentionally, in which case you have to add: Cc: <stable+noautosel@kernel.org> # reason goes here, and must be present In order to avoid scripts queuing your patch. It contains "fix" in the subject, there's a high probability to be queued to stable. With these addressed: Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Hi Tudor, On Wed, 30 Oct 2024 at 12:00, Tudor Ambarus <tudor.ambarus@linaro.org> wrote: > > > > On 10/25/24 2:14 PM, Peter Griffin wrote: > > v1 of the patch which introduced the ufshcd_vops_hibern8_notify() callback > > used a bool instead of an enum. In v2 this was updated to an enum based on > > the review feedback in [1]. > > > > ufs-exynos hibernate calls have always been broken upstream as it follows > > the v1 bool implementation. > > > > [1] https://patchwork.kernel.org/project/linux-scsi/patch/001f01d23994$719997c0$54ccc740$@samsung.com/ > > you can use the Link tag, Link: blabla [1] Will fix in v3 > > A Fixes tag and maybe Cc to stable? Or maybe you chose to not backport > it intentionally, in which case you have to add: > Cc: <stable+noautosel@kernel.org> # reason goes here, and must be present I'll add a cc stable tag, as there is no reason not to backport this fix. > > In order to avoid scripts queuing your patch. It contains "fix" in the > subject, there's a high probability to be queued to stable. > > With these addressed: > Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org> Thanks for the reviews! Peter.
diff --git a/drivers/ufs/host/ufs-exynos.c b/drivers/ufs/host/ufs-exynos.c index fa4e61f152c4..3bbb71f7bae7 100644 --- a/drivers/ufs/host/ufs-exynos.c +++ b/drivers/ufs/host/ufs-exynos.c @@ -1529,12 +1529,12 @@ static void exynos_ufs_dev_hw_reset(struct ufs_hba *hba) hci_writel(ufs, 1 << 0, HCI_GPIO_OUT); } -static void exynos_ufs_pre_hibern8(struct ufs_hba *hba, u8 enter) +static void exynos_ufs_pre_hibern8(struct ufs_hba *hba, enum uic_cmd_dme cmd) { struct exynos_ufs *ufs = ufshcd_get_variant(hba); struct exynos_ufs_uic_attr *attr = ufs->drv_data->uic_attr; - if (!enter) { + if (cmd == UIC_CMD_DME_HIBER_EXIT) { if (ufs->opts & EXYNOS_UFS_OPT_BROKEN_AUTO_CLK_CTRL) exynos_ufs_disable_auto_ctrl_hcc(ufs); exynos_ufs_ungate_clks(ufs); @@ -1562,11 +1562,11 @@ static void exynos_ufs_pre_hibern8(struct ufs_hba *hba, u8 enter) } } -static void exynos_ufs_post_hibern8(struct ufs_hba *hba, u8 enter) +static void exynos_ufs_post_hibern8(struct ufs_hba *hba, enum uic_cmd_dme cmd) { struct exynos_ufs *ufs = ufshcd_get_variant(hba); - if (!enter) { + if (cmd == UIC_CMD_DME_HIBER_EXIT) { u32 cur_mode = 0; u32 pwrmode; @@ -1585,7 +1585,7 @@ static void exynos_ufs_post_hibern8(struct ufs_hba *hba, u8 enter) if (!(ufs->opts & EXYNOS_UFS_OPT_SKIP_CONNECTION_ESTAB)) exynos_ufs_establish_connt(ufs); - } else { + } else if (cmd == UIC_CMD_DME_HIBER_ENTER) { ufs->entry_hibern8_t = ktime_get(); exynos_ufs_gate_clks(ufs); if (ufs->opts & EXYNOS_UFS_OPT_BROKEN_AUTO_CLK_CTRL) @@ -1672,15 +1672,15 @@ static int exynos_ufs_pwr_change_notify(struct ufs_hba *hba, } static void exynos_ufs_hibern8_notify(struct ufs_hba *hba, - enum uic_cmd_dme enter, + enum uic_cmd_dme cmd, enum ufs_notify_change_status notify) { switch ((u8)notify) { case PRE_CHANGE: - exynos_ufs_pre_hibern8(hba, enter); + exynos_ufs_pre_hibern8(hba, cmd); break; case POST_CHANGE: - exynos_ufs_post_hibern8(hba, enter); + exynos_ufs_post_hibern8(hba, cmd); break; } }
v1 of the patch which introduced the ufshcd_vops_hibern8_notify() callback used a bool instead of an enum. In v2 this was updated to an enum based on the review feedback in [1]. ufs-exynos hibernate calls have always been broken upstream as it follows the v1 bool implementation. [1] https://patchwork.kernel.org/project/linux-scsi/patch/001f01d23994$719997c0$54ccc740$@samsung.com/ Signed-off-by: Peter Griffin <peter.griffin@linaro.org> --- --- drivers/ufs/host/ufs-exynos.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)