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

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

[media] af9035: minor changes for af9035_fc0011_tuner_callback()



Change function to use same logic than existing functions.
Debugs log writings are done in error case, earlier it was
just returning error code.

Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent dbac01ff
Loading
Loading
Loading
Loading
+46 −30
Original line number Diff line number Diff line
@@ -665,50 +665,66 @@ static int af9035_read_mac_address_it9135(struct dvb_usb_device *d, u8 mac[6])
static int af9035_fc0011_tuner_callback(struct dvb_usb_device *d,
		int cmd, int arg)
{
	int err;
	int ret;

	switch (cmd) {
	case FC0011_FE_CALLBACK_POWER:
		/* Tuner enable */
		err = af9035_wr_reg_mask(d, 0xd8eb, 1, 1);
		if (err)
			return err;
		err = af9035_wr_reg_mask(d, 0xd8ec, 1, 1);
		if (err)
			return err;
		err = af9035_wr_reg_mask(d, 0xd8ed, 1, 1);
		if (err)
			return err;
		ret = af9035_wr_reg_mask(d, 0xd8eb, 1, 1);
		if (ret < 0)
			goto err;

		ret = af9035_wr_reg_mask(d, 0xd8ec, 1, 1);
		if (ret < 0)
			goto err;

		ret = af9035_wr_reg_mask(d, 0xd8ed, 1, 1);
		if (ret < 0)
			goto err;

		/* LED */
		err = af9035_wr_reg_mask(d, 0xd8d0, 1, 1);
		if (err)
			return err;
		err = af9035_wr_reg_mask(d, 0xd8d1, 1, 1);
		if (err)
			return err;
		ret = af9035_wr_reg_mask(d, 0xd8d0, 1, 1);
		if (ret < 0)
			goto err;

		ret = af9035_wr_reg_mask(d, 0xd8d1, 1, 1);
		if (ret < 0)
			goto err;

		usleep_range(10000, 50000);
		break;
	case FC0011_FE_CALLBACK_RESET:
		err = af9035_wr_reg(d, 0xd8e9, 1);
		if (err)
			return err;
		err = af9035_wr_reg(d, 0xd8e8, 1);
		if (err)
			return err;
		err = af9035_wr_reg(d, 0xd8e7, 1);
		if (err)
			return err;
		ret = af9035_wr_reg(d, 0xd8e9, 1);
		if (ret < 0)
			goto err;

		ret = af9035_wr_reg(d, 0xd8e8, 1);
		if (ret < 0)
			goto err;

		ret = af9035_wr_reg(d, 0xd8e7, 1);
		if (ret < 0)
			goto err;

		usleep_range(10000, 20000);
		err = af9035_wr_reg(d, 0xd8e7, 0);
		if (err)
			return err;

		ret = af9035_wr_reg(d, 0xd8e7, 0);
		if (ret < 0)
			goto err;

		usleep_range(10000, 20000);
		break;
	default:
		return -EINVAL;
		ret = -EINVAL;
		goto err;
	}

	return 0;

err:
	pr_debug("%s: failed=%d\n", __func__, ret);

	return ret;
}

static int af9035_tuner_callback(struct dvb_usb_device *d, int cmd, int arg)