On 09/28/2012 03:59 PM, Rémi Cardona wrote:
ds3000_readreg() returns negative values in case of i2c failures. The
old code would simply return 0 when failing to read the 0xb2 register,
misleading ds3000_initfe() into believing that the firmware had been
correctly loaded.
Signed-off-by: Rémi Cardona <remi.card...@smartjog.com>
Reviewed-by: Antti Palosaari <cr...@iki.fi>
---
drivers/media/dvb-frontends/ds3000.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/media/dvb-frontends/ds3000.c
b/drivers/media/dvb-frontends/ds3000.c
index 162faaf..59184a8 100644
--- a/drivers/media/dvb-frontends/ds3000.c
+++ b/drivers/media/dvb-frontends/ds3000.c
@@ -395,8 +395,13 @@ static int ds3000_firmware_ondemand(struct dvb_frontend
*fe)
dprintk("%s()\n", __func__);
- if (ds3000_readreg(state, 0xb2) <= 0)
+ ret = ds3000_readreg(state, 0xb2);
+ if (ret == 0) {
+ /* Firmware already uploaded, skipping */
return ret;
+ } else if (ret < 0) {
+ return ret;
+ }
/* Load firmware */
/* request the firmware, this will block until someone uploads it */
--
http://palosaari.fi/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html