[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: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
55fa288dec
commit
7572f9c557
|
@ -43,10 +43,6 @@ struct mb86a20s_state {
|
|||
const struct mb86a20s_config *config;
|
||||
|
||||
struct dvb_frontend frontend;
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
struct regdata {
|
||||
|
@ -175,7 +171,7 @@ static struct regdata mb86a20s_init[] = {
|
|||
{ 0x45, 0x04 },
|
||||
{ 0x48, 0x04 },
|
||||
{ 0x50, 0xd5 },
|
||||
{ 0x51, 0x01 },
|
||||
{ 0x51, 0x01 }, /* Serial */
|
||||
{ 0x50, 0xd6 },
|
||||
{ 0x51, 0x1f },
|
||||
{ 0x50, 0xd2 },
|
||||
|
@ -376,6 +372,7 @@ static int mb86a20s_initfe(struct dvb_frontend *fe)
|
|||
{
|
||||
struct mb86a20s_state *state = fe->demodulator_priv;
|
||||
int rc;
|
||||
u8 regD5 = 1;
|
||||
|
||||
dprintk("\n");
|
||||
|
||||
|
@ -384,6 +381,17 @@ static int mb86a20s_initfe(struct dvb_frontend *fe)
|
|||
if (rc < 0)
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
|
||||
struct mb86a20s_config {
|
||||
u8 demod_address;
|
||||
bool is_serial;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DVB_MB86A20S) || (defined(CONFIG_DVB_MB86A20S_MODULE) \
|
||||
|
|
|
@ -143,6 +143,7 @@ static struct tda18271_config hcw_tda18271_config = {
|
|||
|
||||
static const struct mb86a20s_config pv_mb86a20s_config = {
|
||||
.demod_address = 0x10,
|
||||
.is_serial = true,
|
||||
};
|
||||
|
||||
static struct tda18271_config pv_tda18271_config = {
|
||||
|
|
Loading…
Reference in New Issue