]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
ufs: core: remove link_startup_again logic
authorNeil Armstrong <neil.armstrong@linaro.org>
Mon, 30 Sep 2024 12:44:34 +0000 (14:44 +0200)
committerNeil Armstrong <neil.armstrong@linaro.org>
Mon, 14 Oct 2024 06:55:28 +0000 (08:55 +0200)
The link_startup_again logic was added in Linux to handle device
that were set in LinkDown state, which should not be the case since U-boot
doesn't set LinkDown state are init, and Linux sets the device active
in ufshcd_init() for the first link startup.

ufshcd_set_ufs_dev_active(hba) is called at ufshcd_init() right before
scheduling an ufshcd_async_scan that will call ufshcd_device_init() then ufshcd_link_startup().

The comment in probe says:
    /*
     * We are assuming that device wasn't put in sleep/power-down
     * state exclusively during the boot stage before kernel.
     * This assumption helps avoid doing link startup twice during
     * ufshcd_probe_hba().
     */
we can assume the same from U-Boot.

While it worked to far, it breaks link startup for Qualcomm Controllers v5,
let's just remove the logic.

Tested-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Tested-by: Julius Lehmann <lehmanju@devpi.de>
Link: https://lore.kernel.org/r/20240930-topic-ufs-enhancements-v3-12-58234f84ab89@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
drivers/ufs/ufs.c

index d2df5c26f76b7b736a932e8dcf3781dde84b1c38..e34e458622408af6ae49e5734102e07b43ebfb51 100644 (file)
@@ -462,9 +462,7 @@ static int ufshcd_link_startup(struct ufs_hba *hba)
 {
        int ret;
        int retries = DME_LINKSTARTUP_RETRIES;
-       bool link_startup_again = true;
 
-link_startup:
        do {
                ufshcd_ops_link_startup_notify(hba, PRE_CHANGE);
 
@@ -490,12 +488,6 @@ link_startup:
                /* failed to get the link up... retire */
                goto out;
 
-       if (link_startup_again) {
-               link_startup_again = false;
-               retries = DME_LINKSTARTUP_RETRIES;
-               goto link_startup;
-       }
-
        /* Mark that link is up in PWM-G1, 1-lane, SLOW-AUTO mode */
        ufshcd_init_pwr_info(hba);