Skip to contentSkip to conversation

Patch "[media] tda1004x: only update the frontend properties if locked" has been added to the 4.4-stable tree

PATCH [email protected] 1 participant 1 message Mar 1, 2016

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

[media] tda1004x: only update the frontend properties if locked

to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
tda1004x-only-update-the-frontend-properties-if-locked.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From e8beb02343e7582980c6705816cd957cf4f74c7a Mon Sep 17 00:00:00 2001

From: Mauro Carvalho Chehab <[email protected]>
Date: Wed, 3 Feb 2016 17:33:48 -0200
Subject: [media] tda1004x: only update the frontend properties if locked

From: Mauro Carvalho Chehab <[email protected]>

commit e8beb02343e7582980c6705816cd957cf4f74c7a upstream.

The tda1004x was updating the properties cache before locking. If the device is not locked, the data at the registers are just random values with no real meaning.

This caused the driver to fail with libdvbv5, as such library calls GET_PROPERTY from time to time, in order to return the DVB stats.

Tested with a saa7134 card 78:

	ASUSTeK P7131 Dual, vendor PCI ID: 1043:4862
---
 drivers/media/dvb-frontends/tda1004x.c |    9 +++++++++
 1 file changed, 9 insertions(+)
drivers/media/dvb-frontends/tda1004x.c +9 -0
@@ -903,9 +903,18 @@ static int tda1004x_get_fe(struct dvb_fr
 {
 	struct dtv_frontend_properties *fe_params = &fe->dtv_property_cache;
 	struct tda1004x_state* state = fe->demodulator_priv;
+	int status;
 
 	dprintk("%s\n", __func__);
 
+	status = tda1004x_read_byte(state, TDA1004X_STATUS_CD);
+	if (status == -1)
+		return -EIO;
+
+	/* Only update the properties cache if device is locked */
+	if (!(status & 8))
+		return 0;
+
 	// inversion status
 	fe_params->inversion = INVERSION_OFF;
 	if (tda1004x_read_byte(state, TDA1004X_CONFC1) & 0x20)

Patches currently in stable-queue which might be from [email protected] are

queue-4.4/rc-sunxi-cir-initialize-the-spinlock-properly.patch queue-4.4/tda1004x-only-update-the-frontend-properties-if-locked.patch queue-4.4/media-dvb-core-don-t-force-can_inversion_auto-in-oneshot-mode.patch queue-4.4/si2157-return-einval-if-firmware-blob-is-too-big.patch queue-4.4/gspca-ov534-topro-prevent-a-division-by-0.patch queue-4.4/vb2-fix-a-regression-in-poll-behavior-for-output-streams.patch