Skip to content

Commit

Permalink
V4L/DVB (8466): cx23885: Bugfix - DVB Transport cards using DVB port …
Browse files Browse the repository at this point in the history
…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: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
  • Loading branch information
Steven Toth authored and Mauro Carvalho Chehab committed Jul 26, 2008
1 parent ecda596 commit 52ce27b
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions drivers/media/video/cx23885/cx23885-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1084,7 +1084,21 @@ static int cx23885_start_dma(struct cx23885_tsport *port,
cx_write(port->reg_gpcnt_ctl, 3);
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 = reg & ~0x1; /* Clear TS1_OE */
Expand Down Expand Up @@ -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_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);

Expand Down

0 comments on commit 52ce27b

Please sign in to comment.