Merge branch 'regulator-5.14' into regulator-5.15
[linux-2.6-microblaze.git] / drivers / soundwire / stream.c
index 1eaedaa..1a18308 100644 (file)
@@ -422,7 +422,6 @@ static int sdw_prep_deprep_slave_ports(struct sdw_bus *bus,
        struct completion *port_ready;
        struct sdw_dpn_prop *dpn_prop;
        struct sdw_prepare_ch prep_ch;
-       unsigned int time_left;
        bool intr = false;
        int ret = 0, val;
        u32 addr;
@@ -479,15 +478,15 @@ static int sdw_prep_deprep_slave_ports(struct sdw_bus *bus,
 
                /* Wait for completion on port ready */
                port_ready = &s_rt->slave->port_ready[prep_ch.num];
-               time_left = wait_for_completion_timeout(port_ready,
-                               msecs_to_jiffies(dpn_prop->ch_prep_timeout));
+               wait_for_completion_timeout(port_ready,
+                       msecs_to_jiffies(dpn_prop->ch_prep_timeout));
 
                val = sdw_read(s_rt->slave, SDW_DPN_PREPARESTATUS(p_rt->num));
-               val &= p_rt->ch_mask;
-               if (!time_left || val) {
+               if ((val < 0) || (val & p_rt->ch_mask)) {
+                       ret = (val < 0) ? val : -ETIMEDOUT;
                        dev_err(&s_rt->slave->dev,
-                               "Chn prep failed for port:%d\n", prep_ch.num);
-                       return -ETIMEDOUT;
+                               "Chn prep failed for port %d: %d\n", prep_ch.num, ret);
+                       return ret;
                }
        }