[media] si2168: return error if set_frontend is called with invalid parameters
authorOlli Salonen <olli.salonen@iki.fi>
Fri, 16 Jan 2015 12:35:19 +0000 (09:35 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Tue, 3 Feb 2015 20:12:46 +0000 (18:12 -0200)
This patch should is based on Antti's silabs branch.

According to dvb-frontend.h set_frontend may be called with bandwidth_hz set to 0 if automatic bandwidth is required. Si2168 does not support automatic bandwidth and does not declare FE_CAN_BANDWIDTH_AUTO in caps.

This patch will change the behaviour in a way that EINVAL is returned if bandwidth_hz is 0.

Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/dvb-frontends/si2168.c

index 63341f485f9fbb929fd36d014f6fe7ab527ad2cc..5b5fd5db7b2c42507a73f99c45d549cdc090e70a 100644 (file)
@@ -180,7 +180,10 @@ static int si2168_set_frontend(struct dvb_frontend *fe)
                goto err;
        }
 
-       if (c->bandwidth_hz <= 5000000)
+       if (c->bandwidth_hz == 0) {
+               ret = -EINVAL;
+               goto err;
+       } else if (c->bandwidth_hz <= 5000000)
                bandwidth = 0x05;
        else if (c->bandwidth_hz <= 6000000)
                bandwidth = 0x06;