On 06/01/2011 08:18 PM, BjÃrn Mork wrote:
BjÃrn Mork<bjorn@xxxxxxx> writes:
diff --git a/drivers/media/video/em28xx/em28xx-dvb.c b/drivers/media/video/em28xx/em28xx-dvb.c
index 7904ca4..d994592 100644
--- a/drivers/media/video/em28xx/em28xx-dvb.c
+++ b/drivers/media/video/em28xx/em28xx-dvb.c
@@ -669,7 +669,8 @@ static int dvb_init(struct em28xx *dev)
&em28xx_cxd2820r_config,&dev->i2c_adap, NULL);
if (dvb->fe[0]) {
struct i2c_adapter *i2c_tuner;
- i2c_tuner = cxd2820r_get_tuner_i2c_adapter(dvb->fe[0]);
+ /* we don't really attach i2c_tuner. Just reusing the symbol logic */
+ i2c_tuner = dvb_attach(cxd2820r_get_tuner_i2c_adapter, dvb->fe[0]);
Except that this really messes up the reference count, and need to have
a matching symbol_put... So you should probably code it with
symbol_request()/symbol_put() if you want to go this way instead of
the dvb_attach shortcut .
There is some other FEs having also I2C adapter, I wonder how those
handle this situation. I looked example from cx24123 and s5h1420
drivers, both used by flexcop.
Did you see what is magic used those devices?
best regards,
Antti
--
http://palosaari.fi/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html