Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ac7a24fb authored by Antti Palosaari's avatar Antti Palosaari Committed by Mauro Carvalho Chehab
Browse files

[media] em28xx: convert tda18212 tuner to I2C client



Used tda18212 tuner is implemented as a I2C driver. Use em28xx
tuner I2C client for tda18212 driver.

Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent f80f2ae2
Loading
Loading
Loading
Loading
+26 −6
Original line number Diff line number Diff line
@@ -373,7 +373,6 @@ static struct tda18271_config kworld_ub435q_v2_config = {
};

static struct tda18212_config kworld_ub435q_v3_config = {
	.i2c_address	= 0x60,
	.if_atsc_vsb	= 3600,
	.if_atsc_qam	= 3600,
};
@@ -1437,6 +1436,15 @@ static int em28xx_dvb_init(struct em28xx *dev)
		}
		break;
	case EM2874_BOARD_KWORLD_UB435Q_V3:
	{
		struct i2c_client *client;
		struct i2c_adapter *adapter = &dev->i2c_adap[dev->def_i2c_bus];
		struct i2c_board_info board_info = {
			.type = "tda18212",
			.addr = 0x60,
			.platform_data = &kworld_ub435q_v3_config,
		};

		dvb->fe[0] = dvb_attach(lgdt3305_attach,
					&em2874_lgdt3305_nogate_dev,
					&dev->i2c_adap[dev->def_i2c_bus]);
@@ -1445,14 +1453,26 @@ static int em28xx_dvb_init(struct em28xx *dev)
			goto out_free;
		}

		/* Attach the demodulator. */
		if (!dvb_attach(tda18212_attach, dvb->fe[0],
				&dev->i2c_adap[dev->def_i2c_bus],
				&kworld_ub435q_v3_config)) {
			result = -EINVAL;
		/* attach tuner */
		kworld_ub435q_v3_config.fe = dvb->fe[0];
		request_module("tda18212");
		client = i2c_new_device(adapter, &board_info);
		if (client == NULL || client->dev.driver == NULL) {
			dvb_frontend_detach(dvb->fe[0]);
			result = -ENODEV;
			goto out_free;
		}

		if (!try_module_get(client->dev.driver->owner)) {
			i2c_unregister_device(client);
			dvb_frontend_detach(dvb->fe[0]);
			result = -ENODEV;
			goto out_free;
		}

		dvb->i2c_client_tuner = client;
		break;
	}
	case EM2874_BOARD_PCTV_HD_MINI_80E:
		dvb->fe[0] = dvb_attach(drx39xxj_attach, &dev->i2c_adap[dev->def_i2c_bus]);
		if (dvb->fe[0] != NULL) {