[media] stv090x: Fix delivery system setting
authorMauro Carvalho Chehab <mchehab@osg.samsung.com>
Wed, 5 Nov 2014 11:20:48 +0000 (09:20 -0200)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Wed, 5 Nov 2014 11:23:05 +0000 (09:23 -0200)
As sparse complains:
drivers/media/dvb-frontends/stv090x.c:3471:30: warning: mixing different enum types
drivers/media/dvb-frontends/stv090x.c:3471:30:     int enum fe_delivery_system  versus
drivers/media/dvb-frontends/stv090x.c:3471:30:     int enum stv090x_delsys

There's actually an error when setting the delivery system on
stv090x_search(): it is using the DVBv5 macros as if they were
the stv090x ones.

Instead, we should convert between the two namespaces, returning
an error if an unsupported delivery system is requested.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/dvb-frontends/stv090x.c

index 93f4979ea6e970dcebc9dc7676425c2d56e8af1b..f8050b984a8f33cd86e6efb3d76def9caf9348b7 100644 (file)
@@ -3468,7 +3468,20 @@ static enum dvbfe_search stv090x_search(struct dvb_frontend *fe)
        if (props->frequency == 0)
                return DVBFE_ALGO_SEARCH_INVALID;
 
-       state->delsys = props->delivery_system;
+       switch (props->delivery_system) {
+       case SYS_DSS:
+               state->delsys = STV090x_DSS;
+               break;
+       case SYS_DVBS:
+               state->delsys = STV090x_DVBS1;
+               break;
+       case SYS_DVBS2:
+               state->delsys = STV090x_DVBS2;
+               break;
+       default:
+               return DVBFE_ALGO_SEARCH_INVALID;
+       }
+
        state->frequency = props->frequency;
        state->srate = props->symbol_rate;
        state->search_mode = STV090x_SEARCH_AUTO;