On Fri, 12 Feb 2021 at 22:27, Jeffrey Hugo <jhugo@xxxxxxxxxxxxxx> wrote: > > The check to see if we have reset the device after detecting syserr at > power_up is inverted. wait_for_event_timeout() returns 0 on failure, > and a positive value on success. The check is looking for non-zero > as a failure, which is likely to incorrectly cause a device init failure > if syserr was detected at power_up. Fix this. > > Fixes: e18d4e9fa79b ("bus: mhi: core: Handle syserr during power_up") > Signed-off-by: Jeffrey Hugo <jhugo@xxxxxxxxxxxxxx> Reviewed-by: Loic Poulain <loic.poulain@xxxxxxxxxx> > --- > drivers/bus/mhi/core/pm.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/bus/mhi/core/pm.c b/drivers/bus/mhi/core/pm.c > index 681960c..36ab7aa 100644 > --- a/drivers/bus/mhi/core/pm.c > +++ b/drivers/bus/mhi/core/pm.c > @@ -1092,7 +1092,7 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl) > &val) || > !val, > msecs_to_jiffies(mhi_cntrl->timeout_ms)); > - if (ret) { > + if (!ret) { > ret = -EIO; > dev_info(dev, "Failed to reset MHI due to syserr state\n"); > goto error_bhi_offset; > -- > Qualcomm Technologies, Inc. is a member of the > Code Aurora Forum, a Linux Foundation Collaborative Project. >