diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-08-05 13:16:30 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-08-13 15:34:03 -0400 |
commit | 9adf6132dca24240fbc26c6e5e095734fa366341 (patch) | |
tree | e0943e05a17373f0442f340373b44382140ef241 /drivers/media/dvb | |
parent | 727b81da25dd7a7374837c0d0e6189bb3f6ae202 (diff) |
[media] dvb: get rid of fe_ioctl_override callback
This callback were meant to allow overriding a FE callback, before its
call, but it is not really needed, as the callback can be intercepted
after tuner attachment.
Worse than that, only DVBv3 calls are intercepted this way, so a DVBv5
application will produce different effects than a DVBv3 one.
So, get rid of it.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Acked-by: Antti Palosaari <crope@iki.fi>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Diffstat (limited to 'drivers/media/dvb')
-rw-r--r-- | drivers/media/dvb/dvb-core/dvb_frontend.c | 13 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-core/dvbdev.h | 21 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb-v2/dvb_usb.h | 3 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb-v2/dvb_usb_core.c | 2 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb-v2/mxl111sf.c | 30 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb/dvb-usb-dvb.c | 1 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb/dvb-usb.h | 2 |
7 files changed, 2 insertions, 70 deletions
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c index 3a0f24547196..12e5eb1fff76 100644 --- a/drivers/media/dvb/dvb-core/dvb_frontend.c +++ b/drivers/media/dvb/dvb-core/dvb_frontend.c | |||
@@ -2060,18 +2060,7 @@ static int dvb_frontend_ioctl_legacy(struct file *file, | |||
2060 | struct dvb_frontend *fe = dvbdev->priv; | 2060 | struct dvb_frontend *fe = dvbdev->priv; |
2061 | struct dvb_frontend_private *fepriv = fe->frontend_priv; | 2061 | struct dvb_frontend_private *fepriv = fe->frontend_priv; |
2062 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; | 2062 | struct dtv_frontend_properties *c = &fe->dtv_property_cache; |
2063 | int cb_err, err = -EOPNOTSUPP; | 2063 | int err = -EOPNOTSUPP; |
2064 | |||
2065 | if (fe->dvb->fe_ioctl_override) { | ||
2066 | cb_err = fe->dvb->fe_ioctl_override(fe, cmd, parg, | ||
2067 | DVB_FE_IOCTL_PRE); | ||
2068 | if (cb_err < 0) | ||
2069 | return cb_err; | ||
2070 | if (cb_err > 0) | ||
2071 | return 0; | ||
2072 | /* fe_ioctl_override returning 0 allows | ||
2073 | * dvb-core to continue handling the ioctl */ | ||
2074 | } | ||
2075 | 2064 | ||
2076 | switch (cmd) { | 2065 | switch (cmd) { |
2077 | case FE_GET_INFO: { | 2066 | case FE_GET_INFO: { |
diff --git a/drivers/media/dvb/dvb-core/dvbdev.h b/drivers/media/dvb/dvb-core/dvbdev.h index 3b2c137b182c..93a9470d3f0c 100644 --- a/drivers/media/dvb/dvb-core/dvbdev.h +++ b/drivers/media/dvb/dvb-core/dvbdev.h | |||
@@ -71,27 +71,6 @@ struct dvb_adapter { | |||
71 | int mfe_shared; /* indicates mutually exclusive frontends */ | 71 | int mfe_shared; /* indicates mutually exclusive frontends */ |
72 | struct dvb_device *mfe_dvbdev; /* frontend device in use */ | 72 | struct dvb_device *mfe_dvbdev; /* frontend device in use */ |
73 | struct mutex mfe_lock; /* access lock for thread creation */ | 73 | struct mutex mfe_lock; /* access lock for thread creation */ |
74 | |||
75 | /* Allow the adapter/bridge driver to perform an action before and/or | ||
76 | * after the core handles an ioctl: | ||
77 | * | ||
78 | * DVB_FE_IOCTL_PRE indicates that the ioctl has not yet been handled. | ||
79 | * | ||
80 | * When DVB_FE_IOCTL_PRE is passed to the callback as the stage arg: | ||
81 | * | ||
82 | * return 0 to allow dvb-core to handle the ioctl. | ||
83 | * return a positive int to prevent dvb-core from handling the ioctl, | ||
84 | * and exit without error. | ||
85 | * return a negative int to prevent dvb-core from handling the ioctl, | ||
86 | * and return that value as an error. | ||
87 | * | ||
88 | * WARNING: Don't use it on newer drivers: this only affects DVBv3 | ||
89 | * calls, and should be removed soon. | ||
90 | */ | ||
91 | #define DVB_FE_IOCTL_PRE 0 | ||
92 | int (*fe_ioctl_override)(struct dvb_frontend *fe, | ||
93 | unsigned int cmd, void *parg, | ||
94 | unsigned int stage); | ||
95 | }; | 74 | }; |
96 | 75 | ||
97 | 76 | ||
diff --git a/drivers/media/dvb/dvb-usb-v2/dvb_usb.h b/drivers/media/dvb/dvb-usb-v2/dvb_usb.h index 773817b5fe06..79b3b8b6750d 100644 --- a/drivers/media/dvb/dvb-usb-v2/dvb_usb.h +++ b/drivers/media/dvb/dvb-usb-v2/dvb_usb.h | |||
@@ -206,7 +206,6 @@ struct dvb_usb_adapter_properties { | |||
206 | * @tuner_attach: called to attach the possible tuners | 206 | * @tuner_attach: called to attach the possible tuners |
207 | * @frontend_ctrl: called to power on/off active frontend | 207 | * @frontend_ctrl: called to power on/off active frontend |
208 | * @streaming_ctrl: called to start/stop the usb streaming of adapter | 208 | * @streaming_ctrl: called to start/stop the usb streaming of adapter |
209 | * @fe_ioctl_override: frontend ioctl override. avoid using that is possible | ||
210 | * @init: called after adapters are created in order to finalize device | 209 | * @init: called after adapters are created in order to finalize device |
211 | * configuration | 210 | * configuration |
212 | * @exit: called when driver is unloaded | 211 | * @exit: called when driver is unloaded |
@@ -247,8 +246,6 @@ struct dvb_usb_device_properties { | |||
247 | int (*tuner_attach) (struct dvb_usb_adapter *); | 246 | int (*tuner_attach) (struct dvb_usb_adapter *); |
248 | int (*frontend_ctrl) (struct dvb_frontend *, int); | 247 | int (*frontend_ctrl) (struct dvb_frontend *, int); |
249 | int (*streaming_ctrl) (struct dvb_frontend *, int); | 248 | int (*streaming_ctrl) (struct dvb_frontend *, int); |
250 | int (*fe_ioctl_override) (struct dvb_frontend *, | ||
251 | unsigned int, void *, unsigned int); | ||
252 | int (*init) (struct dvb_usb_device *); | 249 | int (*init) (struct dvb_usb_device *); |
253 | void (*exit) (struct dvb_usb_device *); | 250 | void (*exit) (struct dvb_usb_device *); |
254 | int (*get_rc_config) (struct dvb_usb_device *, struct dvb_usb_rc *); | 251 | int (*get_rc_config) (struct dvb_usb_device *, struct dvb_usb_rc *); |
diff --git a/drivers/media/dvb/dvb-usb-v2/dvb_usb_core.c b/drivers/media/dvb/dvb-usb-v2/dvb_usb_core.c index 3224621e1f32..a72f9c7de682 100644 --- a/drivers/media/dvb/dvb-usb-v2/dvb_usb_core.c +++ b/drivers/media/dvb/dvb-usb-v2/dvb_usb_core.c | |||
@@ -703,8 +703,6 @@ static int dvb_usbv2_adapter_init(struct dvb_usb_device *d) | |||
703 | /* use exclusive FE lock if there is multiple shared FEs */ | 703 | /* use exclusive FE lock if there is multiple shared FEs */ |
704 | if (adap->fe[1]) | 704 | if (adap->fe[1]) |
705 | adap->dvb_adap.mfe_shared = 1; | 705 | adap->dvb_adap.mfe_shared = 1; |
706 | |||
707 | adap->dvb_adap.fe_ioctl_override = d->props->fe_ioctl_override; | ||
708 | } | 706 | } |
709 | 707 | ||
710 | return 0; | 708 | return 0; |
diff --git a/drivers/media/dvb/dvb-usb-v2/mxl111sf.c b/drivers/media/dvb/dvb-usb-v2/mxl111sf.c index 861e0ae2abc5..efdcb15358f1 100644 --- a/drivers/media/dvb/dvb-usb-v2/mxl111sf.c +++ b/drivers/media/dvb/dvb-usb-v2/mxl111sf.c | |||
@@ -874,34 +874,12 @@ static int mxl111sf_attach_tuner(struct dvb_usb_adapter *adap) | |||
874 | if (dvb_attach(mxl111sf_tuner_attach, adap->fe[i], state, | 874 | if (dvb_attach(mxl111sf_tuner_attach, adap->fe[i], state, |
875 | &mxl_tuner_config) == NULL) | 875 | &mxl_tuner_config) == NULL) |
876 | return -EIO; | 876 | return -EIO; |
877 | adap->fe[i]->ops.read_signal_strength = adap->fe[i]->ops.tuner_ops.get_rf_strength; | ||
877 | } | 878 | } |
878 | 879 | ||
879 | return 0; | 880 | return 0; |
880 | } | 881 | } |
881 | 882 | ||
882 | static int mxl111sf_fe_ioctl_override(struct dvb_frontend *fe, | ||
883 | unsigned int cmd, void *parg, | ||
884 | unsigned int stage) | ||
885 | { | ||
886 | int err = 0; | ||
887 | |||
888 | switch (stage) { | ||
889 | case DVB_FE_IOCTL_PRE: | ||
890 | |||
891 | switch (cmd) { | ||
892 | case FE_READ_SIGNAL_STRENGTH: | ||
893 | err = fe->ops.tuner_ops.get_rf_strength(fe, parg); | ||
894 | /* If no error occurs, prevent dvb-core from handling | ||
895 | * this IOCTL, otherwise return the error */ | ||
896 | if (0 == err) | ||
897 | err = 1; | ||
898 | break; | ||
899 | } | ||
900 | break; | ||
901 | } | ||
902 | return err; | ||
903 | }; | ||
904 | |||
905 | static u32 mxl111sf_i2c_func(struct i2c_adapter *adapter) | 883 | static u32 mxl111sf_i2c_func(struct i2c_adapter *adapter) |
906 | { | 884 | { |
907 | return I2C_FUNC_I2C; | 885 | return I2C_FUNC_I2C; |
@@ -1082,7 +1060,6 @@ static struct dvb_usb_device_properties mxl111sf_props_dvbt = { | |||
1082 | .init = mxl111sf_init, | 1060 | .init = mxl111sf_init, |
1083 | .streaming_ctrl = mxl111sf_ep4_streaming_ctrl, | 1061 | .streaming_ctrl = mxl111sf_ep4_streaming_ctrl, |
1084 | .get_stream_config = mxl111sf_get_stream_config_dvbt, | 1062 | .get_stream_config = mxl111sf_get_stream_config_dvbt, |
1085 | .fe_ioctl_override = mxl111sf_fe_ioctl_override, | ||
1086 | 1063 | ||
1087 | .num_adapters = 1, | 1064 | .num_adapters = 1, |
1088 | .adapter = { | 1065 | .adapter = { |
@@ -1124,7 +1101,6 @@ static struct dvb_usb_device_properties mxl111sf_props_atsc = { | |||
1124 | .init = mxl111sf_init, | 1101 | .init = mxl111sf_init, |
1125 | .streaming_ctrl = mxl111sf_ep6_streaming_ctrl, | 1102 | .streaming_ctrl = mxl111sf_ep6_streaming_ctrl, |
1126 | .get_stream_config = mxl111sf_get_stream_config_atsc, | 1103 | .get_stream_config = mxl111sf_get_stream_config_atsc, |
1127 | .fe_ioctl_override = mxl111sf_fe_ioctl_override, | ||
1128 | 1104 | ||
1129 | .num_adapters = 1, | 1105 | .num_adapters = 1, |
1130 | .adapter = { | 1106 | .adapter = { |
@@ -1166,7 +1142,6 @@ static struct dvb_usb_device_properties mxl111sf_props_mh = { | |||
1166 | .init = mxl111sf_init, | 1142 | .init = mxl111sf_init, |
1167 | .streaming_ctrl = mxl111sf_ep5_streaming_ctrl, | 1143 | .streaming_ctrl = mxl111sf_ep5_streaming_ctrl, |
1168 | .get_stream_config = mxl111sf_get_stream_config_mh, | 1144 | .get_stream_config = mxl111sf_get_stream_config_mh, |
1169 | .fe_ioctl_override = mxl111sf_fe_ioctl_override, | ||
1170 | 1145 | ||
1171 | .num_adapters = 1, | 1146 | .num_adapters = 1, |
1172 | .adapter = { | 1147 | .adapter = { |
@@ -1235,7 +1210,6 @@ static struct dvb_usb_device_properties mxl111sf_props_atsc_mh = { | |||
1235 | .init = mxl111sf_init, | 1210 | .init = mxl111sf_init, |
1236 | .streaming_ctrl = mxl111sf_streaming_ctrl_atsc_mh, | 1211 | .streaming_ctrl = mxl111sf_streaming_ctrl_atsc_mh, |
1237 | .get_stream_config = mxl111sf_get_stream_config_atsc_mh, | 1212 | .get_stream_config = mxl111sf_get_stream_config_atsc_mh, |
1238 | .fe_ioctl_override = mxl111sf_fe_ioctl_override, | ||
1239 | 1213 | ||
1240 | .num_adapters = 1, | 1214 | .num_adapters = 1, |
1241 | .adapter = { | 1215 | .adapter = { |
@@ -1314,7 +1288,6 @@ static struct dvb_usb_device_properties mxl111sf_props_mercury = { | |||
1314 | .init = mxl111sf_init, | 1288 | .init = mxl111sf_init, |
1315 | .streaming_ctrl = mxl111sf_streaming_ctrl_mercury, | 1289 | .streaming_ctrl = mxl111sf_streaming_ctrl_mercury, |
1316 | .get_stream_config = mxl111sf_get_stream_config_mercury, | 1290 | .get_stream_config = mxl111sf_get_stream_config_mercury, |
1317 | .fe_ioctl_override = mxl111sf_fe_ioctl_override, | ||
1318 | 1291 | ||
1319 | .num_adapters = 1, | 1292 | .num_adapters = 1, |
1320 | .adapter = { | 1293 | .adapter = { |
@@ -1385,7 +1358,6 @@ static struct dvb_usb_device_properties mxl111sf_props_mercury_mh = { | |||
1385 | .init = mxl111sf_init, | 1358 | .init = mxl111sf_init, |
1386 | .streaming_ctrl = mxl111sf_streaming_ctrl_mercury_mh, | 1359 | .streaming_ctrl = mxl111sf_streaming_ctrl_mercury_mh, |
1387 | .get_stream_config = mxl111sf_get_stream_config_mercury_mh, | 1360 | .get_stream_config = mxl111sf_get_stream_config_mercury_mh, |
1388 | .fe_ioctl_override = mxl111sf_fe_ioctl_override, | ||
1389 | 1361 | ||
1390 | .num_adapters = 1, | 1362 | .num_adapters = 1, |
1391 | .adapter = { | 1363 | .adapter = { |
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c b/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c index ddf282f355b3..719413b15f20 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c +++ b/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c | |||
@@ -106,7 +106,6 @@ int dvb_usb_adapter_dvb_init(struct dvb_usb_adapter *adap, short *adapter_nums) | |||
106 | goto err; | 106 | goto err; |
107 | } | 107 | } |
108 | adap->dvb_adap.priv = adap; | 108 | adap->dvb_adap.priv = adap; |
109 | adap->dvb_adap.fe_ioctl_override = adap->props.fe_ioctl_override; | ||
110 | 109 | ||
111 | if (adap->dev->props.read_mac_address) { | 110 | if (adap->dev->props.read_mac_address) { |
112 | if (adap->dev->props.read_mac_address(adap->dev,adap->dvb_adap.proposed_mac) == 0) | 111 | if (adap->dev->props.read_mac_address(adap->dev,adap->dvb_adap.proposed_mac) == 0) |
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb.h b/drivers/media/dvb/dvb-usb/dvb-usb.h index 99f94409efa1..aab0f99bc892 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb.h +++ b/drivers/media/dvb/dvb-usb/dvb-usb.h | |||
@@ -162,8 +162,6 @@ struct dvb_usb_adapter_properties { | |||
162 | int size_of_priv; | 162 | int size_of_priv; |
163 | 163 | ||
164 | int (*frontend_ctrl) (struct dvb_frontend *, int); | 164 | int (*frontend_ctrl) (struct dvb_frontend *, int); |
165 | int (*fe_ioctl_override) (struct dvb_frontend *, | ||
166 | unsigned int, void *, unsigned int); | ||
167 | 165 | ||
168 | int num_frontends; | 166 | int num_frontends; |
169 | struct dvb_usb_adapter_fe_properties fe[MAX_NO_OF_FE_PER_ADAP]; | 167 | struct dvb_usb_adapter_fe_properties fe[MAX_NO_OF_FE_PER_ADAP]; |