[PATCH 1/2] ds3000: return meaningful return codes

2016-03-16 Thread Olli Salonen
The ds3000 driver returned 1 as an error code in many places.

Signed-off-by: Olli Salonen 
---
 drivers/media/dvb-frontends/ds3000.c | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/media/dvb-frontends/ds3000.c 
b/drivers/media/dvb-frontends/ds3000.c
index e8fc032..addffc3 100644
--- a/drivers/media/dvb-frontends/ds3000.c
+++ b/drivers/media/dvb-frontends/ds3000.c
@@ -458,7 +458,7 @@ static int ds3000_read_status(struct dvb_frontend *fe, enum 
fe_status *status)
 
break;
default:
-   return 1;
+   return -EINVAL;
}
 
if (state->config->set_lock_led)
@@ -528,7 +528,7 @@ static int ds3000_read_ber(struct dvb_frontend *fe, u32* 
ber)
*ber = 0x;
break;
default:
-   return 1;
+   return -EINVAL;
}
 
return 0;
@@ -623,7 +623,7 @@ static int ds3000_read_snr(struct dvb_frontend *fe, u16 
*snr)
snr_reading, *snr);
break;
default:
-   return 1;
+   return -EINVAL;
}
 
return 0;
@@ -661,7 +661,7 @@ static int ds3000_read_ucblocks(struct dvb_frontend *fe, 
u32 *ucblocks)
state->prevUCBS2 = _ucblocks;
break;
default:
-   return 1;
+   return -EINVAL;
}
 
return 0;
@@ -754,7 +754,7 @@ static int ds3000_send_diseqc_msg(struct dvb_frontend *fe,
data |= 0x80;
ds3000_writereg(state, 0xa2, data);
 
-   return 1;
+   return -ETIMEDOUT;
}
 
data = ds3000_readreg(state, 0xa2);
@@ -808,7 +808,7 @@ static int ds3000_diseqc_send_burst(struct dvb_frontend *fe,
data |= 0x80;
ds3000_writereg(state, 0xa2, data);
 
-   return 1;
+   return -ETIMEDOUT;
}
 
data = ds3000_readreg(state, 0xa2);
@@ -951,7 +951,7 @@ static int ds3000_set_frontend(struct dvb_frontend *fe)
ds3000_writereg(state, 0xfe, 0x98);
break;
default:
-   return 1;
+   return -EINVAL;
}
 
/* enable 27MHz clock output */
-- 
1.9.1

--
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


[PATCH 1/2] ds3000: return meaningful return codes

2016-03-16 Thread Olli Salonen
Return -EINVAL if ds3000_set_frontend is called with invalid parameters.

Signed-off-by: Olli Salonen 
---
 drivers/media/dvb-frontends/ds3000.c | 9 +
 1 file changed, 9 insertions(+)

diff --git a/drivers/media/dvb-frontends/ds3000.c 
b/drivers/media/dvb-frontends/ds3000.c
index addffc3..447b518 100644
--- a/drivers/media/dvb-frontends/ds3000.c
+++ b/drivers/media/dvb-frontends/ds3000.c
@@ -959,6 +959,15 @@ static int ds3000_set_frontend(struct dvb_frontend *fe)
/* enable ac coupling */
ds3000_writereg(state, 0x25, 0x8a);
 
+   if ((c->symbol_rate < ds3000_ops.info.symbol_rate_min) ||
+   (c->symbol_rate > ds3000_ops.info.symbol_rate_max)) {
+   dprintk("%s() symbol_rate %u out of range (%u ... %u)\n",
+   __func__, c->symbol_rate,
+   ds3000_ops.info.symbol_rate_min,
+   ds3000_ops.info.symbol_rate_max);
+   return -EINVAL;
+   }
+
/* enhance symbol rate performance */
if ((c->symbol_rate / 1000) <= 5000) {
value = 29777 / (c->symbol_rate / 1000) + 1;
-- 
1.9.1

--
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