Skip to contentSkip to conversation

tda10023: fix wrong register assignment

PATCH New Mauro Carvalho Chehab 1 participant 1 message Nov 19, 2015

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 tda10023: fix wrong register assignment

Antti,

Could you please review this patch?

Thanks!
Mauro

Forwarded message:

Date: Tue, 8 Sep 2015 09:43:04 +0200
From: Manuel Kampert <[email protected]>
To: [email protected]
Subject: [PATCH] [media] tda10023: fix wrong register assignment

Register INTP1 (0x12) Bit POCLKP (bit 0) sets the output clock polarity of tda10023 . However, the driver tries to set the parallel output mode in this register which is not correct.

Parallel output mode is set on register INTP2 (0x20) INTPSEL (bit 1/0) .

Drivers affected by this patch are the anysee devices.

---

(quoted diff) +0 -0

b/drivers/media/dvb-frontends/tda10023.c

drivers/media/dvb-frontends/tda10023.c +0 -0
@@ -269,10 +269,9 @@ static int tda10023_init (struct dvb_frontend *fe)

/* 084 */ 0x02, 0xff, 0x93, /* AGCCONF1 IFS=1 KAGCIF=2 KAGCTUN=3 */ /* 087 */ 0x2d, 0xff, 0xf6, /* SWEEP SWPOS=1 SWDYN=7 SWSTEP=1 SWLEN=2 */ /* 090 */ 0x04, 0x10, 0x00, /* SWRAMP=1 */
-/* 093 */ 0x12, 0xff, TDA10023_OUTPUT_MODE_PARALLEL_B, /*
- INTP1 POCLKP=1 FEL=1 MFS=0 */
+/* 093 */ 0x12, 0xff, 0xa1, /* POCLKP=1 */
/* 096 */ 0x2b, 0x01, 0xa1, /* INTS1 */
-/* 099 */ 0x20, 0xff, 0x04, /* INTP2 SWAPP=? MSBFIRSTP=? INTPSEL=? */ +/* 099 */ 0x20, 0xff, TDA10023_OUTPUT_MODE_PARALLEL_B, /* INTPSEL=? */ /* 102 */ 0x2c, 0xff, 0x0d, /* INTP/S TRIP=0 TRIS=0 */
/* 105 */ 0xc4, 0xff, 0x00,
/* 108 */ 0xc3, 0x30, 0x00,
@@ -291,7 +290,7 @@ static int tda10023_init (struct dvb_frontend *fe) }

if (state->config->output_mode)
- tda10023_inittab[95] = state->config->output_mode;
+ tda10023_inittab[101] = state->config->output_mode;

tda10023_writetab(state, tda10023_inittab);

(quoted diff) +0 -0

b/drivers/media/dvb-frontends/tda1002x.h
index 0d33461..dc7258f 100644

drivers/media/dvb-frontends/tda1002x.h +0 -0
@@ -33,9 +33,9 @@ struct tda1002x_config {

};

enum tda10023_output_mode {
- TDA10023_OUTPUT_MODE_PARALLEL_A = 0xe0,
- TDA10023_OUTPUT_MODE_PARALLEL_B = 0xa1,
- TDA10023_OUTPUT_MODE_PARALLEL_C = 0xa0,
+ TDA10023_OUTPUT_MODE_PARALLEL_A = 0x04,
+ TDA10023_OUTPUT_MODE_PARALLEL_B = 0x05,
+ TDA10023_OUTPUT_MODE_PARALLEL_C = 0x06, TDA10023_OUTPUT_MODE_SERIAL, /* TODO: not implemented */ };

(quoted diff) +0 -0

b/drivers/media/usb/dvb-usb-v2/anysee.c
index ae917c0..698a1d2 100644

drivers/media/usb/dvb-usb-v2/anysee.c +0 -0
@@ -291,7 +291,6 @@ static struct tda10023_config anysee_tda10023_config = {

.pll_m = 11,
.pll_p = 3,
.pll_n = 1,
- .output_mode = TDA10023_OUTPUT_MODE_PARALLEL_C,
.deltaf = 0xfeeb,
};

@@ -327,7 +326,6 @@ static struct tda10023_config
anysee_tda10023_tda18212_config = {
.pll_m = 12,
.pll_p = 3,
.pll_n = 1,
- .output_mode = TDA10023_OUTPUT_MODE_PARALLEL_B,
.deltaf = 0xba02,
};

@@ -781,6 +779,11 @@ static int anysee_frontend_attach(struct dvb_usb_adapter *adap)
adap->fe[0] = dvb_attach(tda10023_attach, &anysee_tda10023_config, &d->i2c_adap, 0x48);

+ /* output clock polarity */
+ ret = anysee_write_reg(d, 0x12, 0xa0);
+ if (ret)
+ goto error;
+
break;
case ANYSEE_HW_507SI: /* 11 */
/* E30 S2 Plus */
@@ -846,6 +849,11 @@ static int anysee_frontend_attach(struct dvb_usb_adapter *adap)
adap->fe[0] = dvb_attach(tda10023_attach, &anysee_tda10023_config,
&d->i2c_adap, 0x48);
+
+ /* output clock polarity */
+ ret = anysee_write_reg(d, 0x12, 0xa0);
+ if (ret)
+ goto error;
}

/* break out if first frontend attaching fails */
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html