Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[media] tua9001: remove media attach

We are using I2C client binding now, so remove old media attach.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>

authored by

Antti Palosaari and committed by
Mauro Carvalho Chehab
96676239 88ffe55a

+4 -104
+4 -84
drivers/media/tuners/tua9001.c
··· 47 47 return ret; 48 48 } 49 49 50 - static int tua9001_release(struct dvb_frontend *fe) 51 - { 52 - struct tua9001_priv *priv = fe->tuner_priv; 53 - int ret = 0; 54 - 55 - dev_dbg(&priv->i2c->dev, "%s:\n", __func__); 56 - 57 - if (fe->callback) 58 - ret = fe->callback(priv->i2c, DVB_FRONTEND_COMPONENT_TUNER, 59 - TUA9001_CMD_CEN, 0); 60 - 61 - kfree(fe->tuner_priv); 62 - fe->tuner_priv = NULL; 63 - 64 - return ret; 65 - } 66 - 67 50 static int tua9001_init(struct dvb_frontend *fe) 68 51 { 69 52 struct tua9001_priv *priv = fe->tuner_priv; ··· 79 96 goto err; 80 97 } 81 98 82 - if (fe->ops.i2c_gate_ctrl) 83 - fe->ops.i2c_gate_ctrl(fe, 1); /* open i2c-gate */ 84 - 85 99 for (i = 0; i < ARRAY_SIZE(data); i++) { 86 100 ret = tua9001_wr_reg(priv, data[i].reg, data[i].val); 87 101 if (ret < 0) 88 - goto err_i2c_gate_ctrl; 102 + goto err; 89 103 } 90 - 91 - err_i2c_gate_ctrl: 92 - if (fe->ops.i2c_gate_ctrl) 93 - fe->ops.i2c_gate_ctrl(fe, 0); /* close i2c-gate */ 94 104 err: 95 105 if (ret < 0) 96 106 dev_dbg(&priv->i2c->dev, "%s: failed=%d\n", __func__, ret); ··· 157 181 data[1].reg = 0x1f; 158 182 data[1].val = frequency; 159 183 160 - if (fe->ops.i2c_gate_ctrl) 161 - fe->ops.i2c_gate_ctrl(fe, 1); /* open i2c-gate */ 162 - 163 184 if (fe->callback) { 164 185 ret = fe->callback(priv->i2c, DVB_FRONTEND_COMPONENT_TUNER, 165 186 TUA9001_CMD_RXEN, 0); 166 187 if (ret < 0) 167 - goto err_i2c_gate_ctrl; 188 + goto err; 168 189 } 169 190 170 191 for (i = 0; i < ARRAY_SIZE(data); i++) { 171 192 ret = tua9001_wr_reg(priv, data[i].reg, data[i].val); 172 193 if (ret < 0) 173 - goto err_i2c_gate_ctrl; 194 + goto err; 174 195 } 175 196 176 197 if (fe->callback) { 177 198 ret = fe->callback(priv->i2c, DVB_FRONTEND_COMPONENT_TUNER, 178 199 TUA9001_CMD_RXEN, 1); 179 200 if (ret < 0) 180 - goto err_i2c_gate_ctrl; 201 + goto err; 181 202 } 182 - 183 - err_i2c_gate_ctrl: 184 - if (fe->ops.i2c_gate_ctrl) 185 - fe->ops.i2c_gate_ctrl(fe, 0); /* close i2c-gate */ 186 203 err: 187 204 if (ret < 0) 188 205 dev_dbg(&priv->i2c->dev, "%s: failed=%d\n", __func__, ret); ··· 203 234 .frequency_step = 0, 204 235 }, 205 236 206 - .release = tua9001_release, 207 - 208 237 .init = tua9001_init, 209 238 .sleep = tua9001_sleep, 210 239 .set_params = tua9001_set_params, 211 240 212 241 .get_if_frequency = tua9001_get_if_frequency, 213 242 }; 214 - 215 - struct dvb_frontend *tua9001_attach(struct dvb_frontend *fe, 216 - struct i2c_adapter *i2c, struct tua9001_config *cfg) 217 - { 218 - struct tua9001_priv *priv = NULL; 219 - int ret; 220 - 221 - priv = kzalloc(sizeof(struct tua9001_priv), GFP_KERNEL); 222 - if (priv == NULL) 223 - return NULL; 224 - 225 - priv->i2c_addr = cfg->i2c_addr; 226 - priv->i2c = i2c; 227 - 228 - if (fe->callback) { 229 - ret = fe->callback(priv->i2c, DVB_FRONTEND_COMPONENT_TUNER, 230 - TUA9001_CMD_CEN, 1); 231 - if (ret < 0) 232 - goto err; 233 - 234 - ret = fe->callback(priv->i2c, DVB_FRONTEND_COMPONENT_TUNER, 235 - TUA9001_CMD_RXEN, 0); 236 - if (ret < 0) 237 - goto err; 238 - 239 - ret = fe->callback(priv->i2c, DVB_FRONTEND_COMPONENT_TUNER, 240 - TUA9001_CMD_RESETN, 1); 241 - if (ret < 0) 242 - goto err; 243 - } 244 - 245 - dev_info(&priv->i2c->dev, 246 - "%s: Infineon TUA 9001 successfully attached\n", 247 - KBUILD_MODNAME); 248 - 249 - memcpy(&fe->ops.tuner_ops, &tua9001_tuner_ops, 250 - sizeof(struct dvb_tuner_ops)); 251 - 252 - fe->tuner_priv = priv; 253 - return fe; 254 - err: 255 - dev_dbg(&i2c->dev, "%s: failed=%d\n", __func__, ret); 256 - kfree(priv); 257 - return NULL; 258 - } 259 - EXPORT_SYMBOL(tua9001_attach); 260 243 261 244 static int tua9001_probe(struct i2c_client *client, 262 245 const struct i2c_device_id *id) ··· 252 331 fe->tuner_priv = dev; 253 332 memcpy(&fe->ops.tuner_ops, &tua9001_tuner_ops, 254 333 sizeof(struct dvb_tuner_ops)); 255 - fe->ops.tuner_ops.release = NULL; 256 334 i2c_set_clientdata(client, dev); 257 335 258 336 dev_info(&client->dev, "Infineon TUA 9001 successfully attached\n");
-20
drivers/media/tuners/tua9001.h
··· 21 21 #ifndef TUA9001_H 22 22 #define TUA9001_H 23 23 24 - #include <linux/kconfig.h> 25 24 #include "dvb_frontend.h" 26 25 27 26 /* ··· 34 35 */ 35 36 struct tua9001_platform_data { 36 37 struct dvb_frontend *dvb_frontend; 37 - }; 38 - 39 - struct tua9001_config { 40 - /* 41 - * I2C address 42 - */ 43 - u8 i2c_addr; 44 38 }; 45 39 46 40 /* ··· 55 63 #define TUA9001_CMD_CEN 0 56 64 #define TUA9001_CMD_RESETN 1 57 65 #define TUA9001_CMD_RXEN 2 58 - 59 - #if IS_REACHABLE(CONFIG_MEDIA_TUNER_TUA9001) 60 - extern struct dvb_frontend *tua9001_attach(struct dvb_frontend *fe, 61 - struct i2c_adapter *i2c, struct tua9001_config *cfg); 62 - #else 63 - static inline struct dvb_frontend *tua9001_attach(struct dvb_frontend *fe, 64 - struct i2c_adapter *i2c, struct tua9001_config *cfg) 65 - { 66 - printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 67 - return NULL; 68 - } 69 - #endif 70 66 71 67 #endif