gnss: sirf: fix activation retry handling
Fix activation helper which would return -ETIMEDOUT even if the last
retry attempt was successful.
Also change the semantics of the retries variable so that it actually
holds the number of retries (rather than tries).
Fixes: d2efbbd18b
("gnss: add driver for sirfstar-based receivers")
Cc: stable <stable@vger.kernel.org> # 4.19
Signed-off-by: Johan Hovold <johan@kernel.org>
This commit is contained in:
@@ -168,7 +168,7 @@ static int sirf_set_active(struct sirf_data *data, bool active)
|
|||||||
else
|
else
|
||||||
timeout = SIRF_HIBERNATE_TIMEOUT;
|
timeout = SIRF_HIBERNATE_TIMEOUT;
|
||||||
|
|
||||||
while (retries-- > 0) {
|
do {
|
||||||
sirf_pulse_on_off(data);
|
sirf_pulse_on_off(data);
|
||||||
ret = sirf_wait_for_power_state(data, active, timeout);
|
ret = sirf_wait_for_power_state(data, active, timeout);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
@@ -179,9 +179,9 @@ static int sirf_set_active(struct sirf_data *data, bool active)
|
|||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
} while (retries--);
|
||||||
|
|
||||||
if (retries == 0)
|
if (retries < 0)
|
||||||
return -ETIMEDOUT;
|
return -ETIMEDOUT;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Reference in New Issue
Block a user