diff options
Diffstat (limited to 'drivers/media/dvb-core/dvb_frontend.c')
-rw-r--r-- | drivers/media/dvb-core/dvb_frontend.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/media/dvb-core/dvb_frontend.c b/drivers/media/dvb-core/dvb_frontend.c index 1f925e856974..6ce435ac866f 100644 --- a/drivers/media/dvb-core/dvb_frontend.c +++ b/drivers/media/dvb-core/dvb_frontend.c | |||
@@ -1279,7 +1279,7 @@ static int dtv_property_process_get(struct dvb_frontend *fe, | |||
1279 | switch(tvp->cmd) { | 1279 | switch(tvp->cmd) { |
1280 | case DTV_ENUM_DELSYS: | 1280 | case DTV_ENUM_DELSYS: |
1281 | ncaps = 0; | 1281 | ncaps = 0; |
1282 | while (fe->ops.delsys[ncaps] && ncaps < MAX_DELSYS) { | 1282 | while (ncaps < MAX_DELSYS && fe->ops.delsys[ncaps]) { |
1283 | tvp->u.buffer.data[ncaps] = fe->ops.delsys[ncaps]; | 1283 | tvp->u.buffer.data[ncaps] = fe->ops.delsys[ncaps]; |
1284 | ncaps++; | 1284 | ncaps++; |
1285 | } | 1285 | } |
@@ -1596,7 +1596,7 @@ static int dvbv5_set_delivery_system(struct dvb_frontend *fe, | |||
1596 | * supported | 1596 | * supported |
1597 | */ | 1597 | */ |
1598 | ncaps = 0; | 1598 | ncaps = 0; |
1599 | while (fe->ops.delsys[ncaps] && ncaps < MAX_DELSYS) { | 1599 | while (ncaps < MAX_DELSYS && fe->ops.delsys[ncaps]) { |
1600 | if (fe->ops.delsys[ncaps] == desired_system) { | 1600 | if (fe->ops.delsys[ncaps] == desired_system) { |
1601 | c->delivery_system = desired_system; | 1601 | c->delivery_system = desired_system; |
1602 | dev_dbg(fe->dvb->device, | 1602 | dev_dbg(fe->dvb->device, |
@@ -1628,7 +1628,7 @@ static int dvbv5_set_delivery_system(struct dvb_frontend *fe, | |||
1628 | * of the desired system | 1628 | * of the desired system |
1629 | */ | 1629 | */ |
1630 | ncaps = 0; | 1630 | ncaps = 0; |
1631 | while (fe->ops.delsys[ncaps] && ncaps < MAX_DELSYS) { | 1631 | while (ncaps < MAX_DELSYS && fe->ops.delsys[ncaps]) { |
1632 | if (dvbv3_type(fe->ops.delsys[ncaps]) == type) | 1632 | if (dvbv3_type(fe->ops.delsys[ncaps]) == type) |
1633 | delsys = fe->ops.delsys[ncaps]; | 1633 | delsys = fe->ops.delsys[ncaps]; |
1634 | ncaps++; | 1634 | ncaps++; |
@@ -1703,7 +1703,7 @@ static int dvbv3_set_delivery_system(struct dvb_frontend *fe) | |||
1703 | * DVBv3 standard | 1703 | * DVBv3 standard |
1704 | */ | 1704 | */ |
1705 | ncaps = 0; | 1705 | ncaps = 0; |
1706 | while (fe->ops.delsys[ncaps] && ncaps < MAX_DELSYS) { | 1706 | while (ncaps < MAX_DELSYS && fe->ops.delsys[ncaps]) { |
1707 | if (dvbv3_type(fe->ops.delsys[ncaps]) != DVBV3_UNKNOWN) { | 1707 | if (dvbv3_type(fe->ops.delsys[ncaps]) != DVBV3_UNKNOWN) { |
1708 | delsys = fe->ops.delsys[ncaps]; | 1708 | delsys = fe->ops.delsys[ncaps]; |
1709 | break; | 1709 | break; |
@@ -1882,6 +1882,8 @@ static int dtv_property_process_set(struct dvb_frontend *fe, | |||
1882 | c->lna = tvp->u.data; | 1882 | c->lna = tvp->u.data; |
1883 | if (fe->ops.set_lna) | 1883 | if (fe->ops.set_lna) |
1884 | r = fe->ops.set_lna(fe); | 1884 | r = fe->ops.set_lna(fe); |
1885 | if (r < 0) | ||
1886 | c->lna = LNA_AUTO; | ||
1885 | break; | 1887 | break; |
1886 | 1888 | ||
1887 | default: | 1889 | default: |