Commit 7572f9c5 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

[media] mb86a20s: add support for serial streams

By comparing the traffic between Pixelview (cx23102-based and Kworld
(saa7134-based), the only difference is at register 0xd5. After some
tests, It seems that it is used to change mode between serial and parallel.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 55fa288d
...@@ -43,10 +43,6 @@ struct mb86a20s_state { ...@@ -43,10 +43,6 @@ struct mb86a20s_state {
const struct mb86a20s_config *config; const struct mb86a20s_config *config;
struct dvb_frontend frontend; struct dvb_frontend frontend;
}; };
struct regdata { struct regdata {
...@@ -175,7 +171,7 @@ static struct regdata mb86a20s_init[] = { ...@@ -175,7 +171,7 @@ static struct regdata mb86a20s_init[] = {
{ 0x45, 0x04 }, { 0x45, 0x04 },
{ 0x48, 0x04 }, { 0x48, 0x04 },
{ 0x50, 0xd5 }, { 0x50, 0xd5 },
{ 0x51, 0x01 }, { 0x51, 0x01 }, /* Serial */
{ 0x50, 0xd6 }, { 0x50, 0xd6 },
{ 0x51, 0x1f }, { 0x51, 0x1f },
{ 0x50, 0xd2 }, { 0x50, 0xd2 },
...@@ -376,6 +372,7 @@ static int mb86a20s_initfe(struct dvb_frontend *fe) ...@@ -376,6 +372,7 @@ static int mb86a20s_initfe(struct dvb_frontend *fe)
{ {
struct mb86a20s_state *state = fe->demodulator_priv; struct mb86a20s_state *state = fe->demodulator_priv;
int rc; int rc;
u8 regD5 = 1;
dprintk("\n"); dprintk("\n");
...@@ -384,6 +381,17 @@ static int mb86a20s_initfe(struct dvb_frontend *fe) ...@@ -384,6 +381,17 @@ static int mb86a20s_initfe(struct dvb_frontend *fe)
if (rc < 0) if (rc < 0)
return rc; return rc;
if (!state->config->is_serial) {
regD5 &= ~1;
rc = mb86a20s_writereg(state, 0x50, 0xd5);
if (rc < 0)
return rc;
rc = mb86a20s_writereg(state, 0x51, regD5);
if (rc < 0)
return rc;
}
return 0; return 0;
} }
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
struct mb86a20s_config { struct mb86a20s_config {
u8 demod_address; u8 demod_address;
bool is_serial;
}; };
#if defined(CONFIG_DVB_MB86A20S) || (defined(CONFIG_DVB_MB86A20S_MODULE) \ #if defined(CONFIG_DVB_MB86A20S) || (defined(CONFIG_DVB_MB86A20S_MODULE) \
......
...@@ -143,6 +143,7 @@ static struct tda18271_config hcw_tda18271_config = { ...@@ -143,6 +143,7 @@ static struct tda18271_config hcw_tda18271_config = {
static const struct mb86a20s_config pv_mb86a20s_config = { static const struct mb86a20s_config pv_mb86a20s_config = {
.demod_address = 0x10, .demod_address = 0x10,
.is_serial = true,
}; };
static struct tda18271_config pv_tda18271_config = { static struct tda18271_config pv_tda18271_config = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment