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

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

V4L/DVB: af9013: af9013_read_status() refactoring



Function af9013_read_status() refactoring. Read lock bits in different
order to save count of register reads.

Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 737fabf0
Loading
Loading
Loading
Loading
+20 −16
Original line number Diff line number Diff line
@@ -1184,45 +1184,49 @@ static int af9013_read_status(struct dvb_frontend *fe, fe_status_t *status)
	u8 tmp;
	*status = 0;

	/* TPS lock */
	ret = af9013_read_reg_bits(state, 0xd330, 3, 1, &tmp);
	if (ret)
		goto error;
	if (tmp)
		*status |= FE_HAS_VITERBI | FE_HAS_CARRIER | FE_HAS_SIGNAL;

	/* MPEG2 lock */
	ret = af9013_read_reg_bits(state, 0xd507, 6, 1, &tmp);
	if (ret)
		goto error;
	if (tmp)
		*status |= FE_HAS_SYNC | FE_HAS_LOCK;
		*status |= FE_HAS_SIGNAL | FE_HAS_CARRIER | FE_HAS_VITERBI |
			FE_HAS_SYNC | FE_HAS_LOCK;

	if (!(*status & FE_HAS_SIGNAL)) {
		/* AGC lock */
		ret = af9013_read_reg_bits(state, 0xd1a0, 6, 1, &tmp);
	if (!*status) {
		/* TPS lock */
		ret = af9013_read_reg_bits(state, 0xd330, 3, 1, &tmp);
		if (ret)
			goto error;
		if (tmp)
			*status |= FE_HAS_SIGNAL;
			*status |= FE_HAS_SIGNAL | FE_HAS_CARRIER |
				FE_HAS_VITERBI;
	}

	if (!(*status & FE_HAS_CARRIER)) {
	if (!*status) {
		/* CFO lock */
		ret = af9013_read_reg_bits(state, 0xd333, 7, 1, &tmp);
		if (ret)
			goto error;
		if (tmp)
			*status |= FE_HAS_CARRIER;
			*status |= FE_HAS_SIGNAL | FE_HAS_CARRIER;
	}

	if (!(*status & FE_HAS_CARRIER)) {
	if (!*status) {
		/* SFOE lock */
		ret = af9013_read_reg_bits(state, 0xd334, 6, 1, &tmp);
		if (ret)
			goto error;
		if (tmp)
			*status |= FE_HAS_CARRIER;
			*status |= FE_HAS_SIGNAL | FE_HAS_CARRIER;
	}

	if (!*status) {
		/* AGC lock */
		ret = af9013_read_reg_bits(state, 0xd1a0, 6, 1, &tmp);
		if (ret)
			goto error;
		if (tmp)
			*status |= FE_HAS_SIGNAL;
	}

	ret = af9013_update_statistics(fe);