Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

scsi: ufs: exynos: Call phy_notify_state() from hibern8 callbacks

Notify the UFS phy of the hibern8 link state so that it can program the
appropriate values.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Link: https://patch.msgid.link/20260109-ufs-exynos-phy_notify_pmstate-v3-1-7eb692e271af@linaro.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

authored by

Peter Griffin and committed by
Martin K. Petersen
07959ef5 ee8112a2

+10
+10
drivers/ufs/host/ufs-exynos.c
··· 1568 1568 { 1569 1569 struct exynos_ufs *ufs = ufshcd_get_variant(hba); 1570 1570 struct exynos_ufs_uic_attr *attr = ufs->drv_data->uic_attr; 1571 + static const union phy_notify phystate = { 1572 + .ufs_state = PHY_UFS_HIBERN8_EXIT 1573 + }; 1571 1574 1572 1575 if (cmd == UIC_CMD_DME_HIBER_EXIT) { 1573 1576 if (ufs->opts & EXYNOS_UFS_OPT_BROKEN_AUTO_CLK_CTRL) 1574 1577 exynos_ufs_disable_auto_ctrl_hcc(ufs); 1575 1578 exynos_ufs_ungate_clks(ufs); 1579 + 1580 + phy_notify_state(ufs->phy, phystate); 1576 1581 1577 1582 if (ufs->opts & EXYNOS_UFS_OPT_USE_SW_HIBERN8_TIMER) { 1578 1583 static const unsigned int granularity_tbl[] = { ··· 1605 1600 static void exynos_ufs_post_hibern8(struct ufs_hba *hba, enum uic_cmd_dme cmd) 1606 1601 { 1607 1602 struct exynos_ufs *ufs = ufshcd_get_variant(hba); 1603 + static const union phy_notify phystate = { 1604 + .ufs_state = PHY_UFS_HIBERN8_ENTER 1605 + }; 1608 1606 1609 1607 if (cmd == UIC_CMD_DME_HIBER_ENTER) { 1610 1608 ufs->entry_hibern8_t = ktime_get(); 1611 1609 exynos_ufs_gate_clks(ufs); 1612 1610 if (ufs->opts & EXYNOS_UFS_OPT_BROKEN_AUTO_CLK_CTRL) 1613 1611 exynos_ufs_enable_auto_ctrl_hcc(ufs); 1612 + 1613 + phy_notify_state(ufs->phy, phystate); 1614 1614 } 1615 1615 } 1616 1616