Commit 21eaee6a authored by Steven Toth's avatar Steven Toth Committed by Greg Kroah-Hartman

DVB: cx23885: DVB Transport cards using DVB port VIDB/TS1 did not stream

(cherry picked from commit 52ce27bf)

DVB: cx23885: DVB Transport cards using DVB port VIDB/TS1 did not stream

Certain DVB cards that have demodulators on TS1/VIDB were not
streaming packets.

This ensure the pin directions on PAD_CTRL are set correctly,
solving the issue.
Signed-off-by: default avatarSteven Toth <stoth@hauppauge.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent d44fda9d
...@@ -1084,7 +1084,21 @@ static int cx23885_start_dma(struct cx23885_tsport *port, ...@@ -1084,7 +1084,21 @@ static int cx23885_start_dma(struct cx23885_tsport *port,
cx_write(port->reg_gpcnt_ctl, 3); cx_write(port->reg_gpcnt_ctl, 3);
q->count = 1; q->count = 1;
if (cx23885_boards[dev->board].portb & CX23885_MPEG_ENCODER) { /* Set VIDB pins to input */
if (cx23885_boards[dev->board].portb == CX23885_MPEG_DVB) {
reg = cx_read(PAD_CTRL);
reg &= ~0x3; /* Clear TS1_OE & TS1_SOP_OE */
cx_write(PAD_CTRL, reg);
}
/* Set VIDC pins to input */
if (cx23885_boards[dev->board].portc == CX23885_MPEG_DVB) {
reg = cx_read(PAD_CTRL);
reg &= ~0x4; /* Clear TS2_SOP_OE */
cx_write(PAD_CTRL, reg);
}
if (cx23885_boards[dev->board].portb == CX23885_MPEG_ENCODER) {
reg = cx_read(PAD_CTRL); reg = cx_read(PAD_CTRL);
reg = reg & ~0x1; /* Clear TS1_OE */ reg = reg & ~0x1; /* Clear TS1_OE */
...@@ -1134,7 +1148,7 @@ static int cx23885_stop_dma(struct cx23885_tsport *port) ...@@ -1134,7 +1148,7 @@ static int cx23885_stop_dma(struct cx23885_tsport *port)
cx_clear(port->reg_ts_int_msk, port->ts_int_msk_val); cx_clear(port->reg_ts_int_msk, port->ts_int_msk_val);
cx_clear(port->reg_dma_ctl, port->dma_ctl_val); cx_clear(port->reg_dma_ctl, port->dma_ctl_val);
if (cx23885_boards[dev->board].portb & CX23885_MPEG_ENCODER) { if (cx23885_boards[dev->board].portb == CX23885_MPEG_ENCODER) {
reg = cx_read(PAD_CTRL); reg = cx_read(PAD_CTRL);
......
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