V4L/DVB (6654): mt352: support oversampled IF input

Rework the input frequency calculation so that it produces the right values
when the ADC oversamples the IF input.

This means MT352 devices can now process a near-zero IF (according to the,
specs 4.57MHz is supported with the default crystal).

Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
Chris Pascoe 2007-11-20 02:49:41 -03:00 коммит произвёл Mauro Carvalho Chehab
Родитель 5ccaf90501
Коммит c6e62a3a39
1 изменённых файлов: 7 добавлений и 1 удалений

Просмотреть файл

@ -152,7 +152,13 @@ static void mt352_calc_input_freq(struct mt352_state* state,
if (state->config.if2) if (state->config.if2)
if2 = state->config.if2; if2 = state->config.if2;
ife = (2*adc_clock - if2); if (adc_clock >= if2 * 2)
ife = if2;
else {
ife = adc_clock - (if2 % adc_clock);
if (ife > adc_clock / 2)
ife = adc_clock - ife;
}
value = -16374 * ife / adc_clock; value = -16374 * ife / adc_clock;
dprintk("%s: if2 %d, ife %d, adc_clock %d => %d / 0x%x\n", dprintk("%s: if2 %d, ife %d, adc_clock %d => %d / 0x%x\n",
__FUNCTION__, if2, ife, adc_clock, value, value & 0x3fff); __FUNCTION__, if2, ife, adc_clock, value, value & 0x3fff);