Skip to content

Commit

Permalink
V4L/DVB: dib7000p: add disable sample and hold, and diversity delay p…
Browse files Browse the repository at this point in the history
…arameter

This patch improves the overall driver performance in
diversity-reception scenarios.

Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr>
Cc: stable@kernel.org
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Olivier Grenie authored and Mauro Carvalho Chehab committed Sep 28, 2010
1 parent 90e12ce commit 970d14c
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 1 deletion.
1 change: 1 addition & 0 deletions drivers/media/dvb/dvb-usb/dib0700_devices.c
Original file line number Diff line number Diff line change
Expand Up @@ -956,6 +956,7 @@ static struct dib7000p_config dib7770p_dib7000p_config = {

.hostbus_diversity = 1,
.enable_current_mirror = 1,
.disable_sample_and_hold = 0,
};

static int stk7770p_frontend_attach(struct dvb_usb_adapter *adap)
Expand Down
6 changes: 5 additions & 1 deletion drivers/media/dvb/frontends/dib7000p.c
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,7 @@ static void dib7000p_set_adc_state(struct dib7000p_state *state, enum dibx000_ad

// dprintk( "908: %x, 909: %x\n", reg_908, reg_909);

reg_909 |= (state->cfg.disable_sample_and_hold & 1) << 4;
reg_908 |= (state->cfg.enable_current_mirror & 1) << 7;

dib7000p_write_word(state, 908, reg_908);
Expand Down Expand Up @@ -780,7 +781,10 @@ static void dib7000p_set_channel(struct dib7000p_state *state, struct dvb_fronte
default:
case GUARD_INTERVAL_1_32: value *= 1; break;
}
state->div_sync_wait = (value * 3) / 2 + 32; // add 50% SFN margin + compensate for one DVSY-fifo TODO
if (state->cfg.diversity_delay == 0)
state->div_sync_wait = (value * 3) / 2 + 48; // add 50% SFN margin + compensate for one DVSY-fifo
else
state->div_sync_wait = (value * 3) / 2 + state->cfg.diversity_delay; // add 50% SFN margin + compensate for one DVSY-fifo

/* deactive the possibility of diversity reception if extended interleaver */
state->div_force_off = !1 && ch->u.ofdm.transmission_mode != TRANSMISSION_MODE_8K;
Expand Down
2 changes: 2 additions & 0 deletions drivers/media/dvb/frontends/dib7000p.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,10 @@ struct dib7000p_config {
int (*agc_control) (struct dvb_frontend *, u8 before);

u8 output_mode;
u8 disable_sample_and_hold : 1;

u8 enable_current_mirror : 1;
u8 diversity_delay;

};

Expand Down

0 comments on commit 970d14c

Please sign in to comment.