From: Stefan Ringel <[email protected]>
Signed-off-by: Stefan Ringel <[email protected]>
---
drivers/media/common/tuners/mt2063.c | 585 ----------------------------------
1 files changed, 0 insertions(+), 585 deletions(-)
diff --git a/drivers/media/common/tuners/mt2063.c
b/drivers/media/common/tuners/mt2063.c
index a79e4ef..ee59ebe 100644
--- a/drivers/media/common/tuners/mt2063.c
+++ b/drivers/media/common/tuners/mt2063.c
@@ -41,15 +41,6 @@ static LIST_HEAD(hybrid_tuner_instance_list);
* 2 additional calculating, result etc.
* 3 maximum debug information
-/* positive error codes used internally */
-
-/* Info: Unavoidable LO-related spur may be present in the output */
-#define MT2063_SPUR_PRESENT_ERR (0x00800000)
-
-/* Info: Mask of bits used for # of LO-related spurs that were avoided during
tuning */
-#define MT2063_SPUR_CNT_MASK (0x001f0000)
-#define MT2063_SPUR_SHIFT (16)
-
/* Info: Upconverter frequency is out of range (may be reason for
MT_UPC_UNLOCK) */
#define MT2063_UPC_RANGE (0x04000000)
@@ -69,61 +60,6 @@ if (debug >= level)
\
printk(KERN_DEBUG "mt2063 %s: " fmt, __func__, ##arg); \
} while (0)
-/* DECT Frequency Avoidance */
-#define MT2063_DECT_AVOID_US_FREQS 0x00000001
-
-#define MT2063_DECT_AVOID_EURO_FREQS 0x00000002
-
-#define MT2063_EXCLUDE_US_DECT_FREQUENCIES(s) (((s) &
MT2063_DECT_AVOID_US_FREQS) != 0)
-
-#define MT2063_EXCLUDE_EURO_DECT_FREQUENCIES(s) (((s) &
MT2063_DECT_AVOID_EURO_FREQS) != 0)
-
-enum MT2063_DECT_Avoid_Type {
- MT2063_NO_DECT_AVOIDANCE = 0, /* Do not
create DECT exclusion zones. */
- MT2063_AVOID_US_DECT = MT2063_DECT_AVOID_US_FREQS, /* Avoid US
DECT frequencies. */
- MT2063_AVOID_EURO_DECT = MT2063_DECT_AVOID_EURO_FREQS, /* Avoid
European DECT frequencies. */
- MT2063_AVOID_BOTH /* Avoid both
regions. Not typically used. */
-};
-
-#define MT2063_MAX_ZONES 48
-
-struct MT2063_ExclZone_t {
- u32 min_;
- u32 max_;
- struct MT2063_ExclZone_t *next_;
-};
-
-/*
- * Structure of data needed for Spur Avoidance
- */
-struct MT2063_AvoidSpursData_t {
- u32 f_ref;
- u32 f_in;
- u32 f_LO1;
- u32 f_if1_Center;
- u32 f_if1_Request;
- u32 f_if1_bw;
- u32 f_LO2;
- u32 f_out;
- u32 f_out_bw;
- u32 f_LO1_Step;
- u32 f_LO2_Step;
- u32 f_LO1_FracN_Avoid;
- u32 f_LO2_FracN_Avoid;
- u32 f_zif_bw;
- u32 f_min_LO_Separation;
- u32 maxH1;
- u32 maxH2;
- enum MT2063_DECT_Avoid_Type avoidDECT;
- u32 bSpurPresent;
- u32 bSpurAvoided;
- u32 nSpursFound;
- u32 nZones;
- struct MT2063_ExclZone_t *freeZones;
- struct MT2063_ExclZone_t *usedZones;
- struct MT2063_ExclZone_t MT2063_ExclZones[MT2063_MAX_ZONES];
-};
-
/*
* Parameter for function MT2063_SetPowerMask that specifies the power down
* of various sections of the MT2063.
@@ -375,351 +311,20 @@ static int MT2063_Sleep(struct dvb_frontend *fe)
-/*
- * MT_ChooseFirstIF - Choose the best available 1st IF
- * If f_Desired is not excluded, choose that first.
- * Otherwise, return the value closest to f_Center that is
- * not excluded
- */
-static u32 MT2063_ChooseFirstIF(struct MT2063_AvoidSpursData_t *pAS_Info)
-{
- /*
- * Update "f_Desired" to be the nearest "combinational-multiple" of
- * "f_LO1_Step".
- * The resulting number, F_LO1 must be a multiple of f_LO1_Step.
- * And F_LO1 is the arithmetic sum of f_in + f_Center.
- * Neither f_in, nor f_Center must be a multiple of f_LO1_Step.
- * However, the sum must be.
- */
- const u32 f_Desired =
- pAS_Info->f_LO1_Step *
- ((pAS_Info->f_if1_Request + pAS_Info->f_in +
- pAS_Info->f_LO1_Step / 2) / pAS_Info->f_LO1_Step) -
- pAS_Info->f_in;
- const u32 f_Step =
- (pAS_Info->f_LO1_Step >
- pAS_Info->f_LO2_Step) ? pAS_Info->f_LO1_Step : pAS_Info->
- f_LO2_Step;
- u32 f_Center;
- s32 i;
- s32 j = 0;
- u32 bDesiredExcluded = 0;
- u32 bZeroExcluded = 0;
- s32 tmpMin, tmpMax;
- s32 bestDiff;
- struct MT2063_ExclZone_t *pNode = pAS_Info->usedZones;
- struct MT2063_FIFZone_t zones[MT2063_MAX_ZONES];
-
- dprintk(2, "\n");
-
- if (pAS_Info->nZones == 0)
- return f_Desired;
- /*
- * f_Center needs to be an integer multiple of f_Step away
- * from f_Desired
- */
- if (pAS_Info->f_if1_Center > f_Desired)
- f_Center =
- f_Desired +
- f_Step *
- ((pAS_Info->f_if1_Center - f_Desired +
- f_Step / 2) / f_Step);
else
- f_Center =
- f_Desired -
- f_Step *
- ((f_Desired - pAS_Info->f_if1_Center +
- f_Step / 2) / f_Step);
-
- /*
- * Take MT_ExclZones, center around f_Center and change the
- * resolution to f_Step
- */
- while (pNode != NULL) {
- /* floor function */
- tmpMin =
- floor((s32) (pNode->min_ - f_Center), (s32) f_Step);
-
- /* ceil function */
- tmpMax =
- ceil((s32) (pNode->max_ - f_Center), (s32) f_Step);
-
- if ((pNode->min_ < f_Desired) && (pNode->max_ > f_Desired))
- bDesiredExcluded = 1;
-
- if ((tmpMin < 0) && (tmpMax > 0))
- bZeroExcluded = 1;
-
- /* See if this zone overlaps the previous */
- if ((j > 0) && (tmpMin < zones[j - 1].max_))
- zones[j - 1].max_ = tmpMax;
- else {
- /* Add new zone */
- zones[j].min_ = tmpMin;
- zones[j].max_ = tmpMax;
- j++;
- }
- pNode = pNode->next_;
- }
- /*
- * If the desired is okay, return with it
- */
- if (bDesiredExcluded == 0)
- return f_Desired;
-
- /*
- * If the desired is excluded and the center is okay, return with it
- */
- if (bZeroExcluded == 0)
- return f_Center;
-
- /* Find the value closest to 0 (f_Center) */
- bestDiff = zones[0].min_;
- for (i = 0; i < j; i++) {
- if (abs(zones[i].min_) < abs(bestDiff))
- bestDiff = zones[i].min_;
- if (abs(zones[i].max_) < abs(bestDiff))
- bestDiff = zones[i].max_;
- }
-
- if (bestDiff < 0)
- return f_Center - ((u32) (-bestDiff) * f_Step);
-
- return f_Center + (bestDiff * f_Step);
-}
-
-/**
- * gcd() - Uses Euclid's algorithm
- *
- * @u, @v: Unsigned values whose GCD is desired.
- *
- * Returns THE greatest common divisor of u and v, if either value is 0,
- * the other value is returned as the result.
- */
-static u32 MT2063_gcd(u32 u, u32 v)
-{
- u32 r;
-
- while (v != 0) {
- r = u % v;
- u = v;
- v = r;
- }
-
- return u;
-}
-
-/**
- * IsSpurInBand() - Checks to see if a spur will be present within the IF's
- * bandwidth. (fIFOut +/- fIFBW, -fIFOut +/- fIFBW)
- *
- * ma mb mc md
- * <--+-+-+-------------------+-------------------+-+-+-->
- * | ^ 0 ^ |
- * ^ b=-fIFOut+fIFBW/2 -b=+fIFOut-fIFBW/2 ^
- * a=-fIFOut-fIFBW/2 -a=+fIFOut+fIFBW/2
- *
- * Note that some equations are doubled to prevent round-off
- * problems when calculating fIFBW/2
- *
- * @pAS_Info: Avoid Spurs information block
- * @fm: If spur, amount f_IF1 has to move negative
- * @fp: If spur, amount f_IF1 has to move positive
- *
- * Returns 1 if an LO spur would be present, otherwise 0.
- */
-static u32 IsSpurInBand(struct MT2063_AvoidSpursData_t *pAS_Info,
- u32 *fm, u32 * fp)
-{
- /*
- ** Calculate LO frequency settings.
- */
- u32 n, n0;
- const u32 f_LO1 = pAS_Info->f_LO1;
- const u32 f_LO2 = pAS_Info->f_LO2;
- const u32 d = pAS_Info->f_out + pAS_Info->f_out_bw / 2;
- const u32 c = d - pAS_Info->f_out_bw;
- const u32 f = pAS_Info->f_zif_bw / 2;
- const u32 f_Scale = (f_LO1 / (UINT_MAX / 2 / pAS_Info->maxH1)) + 1;
- s32 f_nsLO1, f_nsLO2;
- s32 f_Spur;
- u32 ma, mb, mc, md, me, mf;
- u32 lo_gcd, gd_Scale, gc_Scale, gf_Scale, hgds, hgfs, hgcs;
-
- dprintk(2, "\n");
-
- *fm = 0;
-
- /*
- ** For each edge (d, c & f), calculate a scale, based on the gcd
- ** of f_LO1, f_LO2 and the edge value. Use the larger of this
- ** gcd-based scale factor or f_Scale.
- */
- lo_gcd = MT2063_gcd(f_LO1, f_LO2);
- gd_Scale = max((u32) MT2063_gcd(lo_gcd, d), f_Scale);
- hgds = gd_Scale / 2;
- gc_Scale = max((u32) MT2063_gcd(lo_gcd, c), f_Scale);
- hgcs = gc_Scale / 2;
- gf_Scale = max((u32) MT2063_gcd(lo_gcd, f), f_Scale);
- hgfs = gf_Scale / 2;
-
- n0 = DIV_ROUND_UP(f_LO2 - d, f_LO1 - f_LO2);
-
- /* Check out all multiples of LO1 from n0 to m_maxLOSpurHarmonic */
- for (n = n0; n <= pAS_Info->maxH1; ++n) {
- md = (n * ((f_LO1 + hgds) / gd_Scale) -
- ((d + hgds) / gd_Scale)) / ((f_LO2 + hgds) / gd_Scale);
-
- /* If # fLO2 harmonics > m_maxLOSpurHarmonic, then no spurs
present */
- if (md >= pAS_Info->maxH1)
- break;
-
- ma = (n * ((f_LO1 + hgds) / gd_Scale) +
- ((d + hgds) / gd_Scale)) / ((f_LO2 + hgds) / gd_Scale);
-
- /* If no spurs between +/- (f_out + f_IFBW/2), then try next
harmonic */
- if (md == ma)
- continue;
-
- mc = (n * ((f_LO1 + hgcs) / gc_Scale) -
- ((c + hgcs) / gc_Scale)) / ((f_LO2 + hgcs) / gc_Scale);
- if (mc != md) {
- f_nsLO1 = (s32) (n * (f_LO1 / gc_Scale));
- f_nsLO2 = (s32) (mc * (f_LO2 / gc_Scale));
- f_Spur =
- (gc_Scale * (f_nsLO1 - f_nsLO2)) +
- n * (f_LO1 % gc_Scale) - mc * (f_LO2 % gc_Scale);
-
- *fp = ((f_Spur - (s32) c) / (mc - n)) + 1;
- *fm = (((s32) d - f_Spur) / (mc - n)) + 1;
- return 1;
- }
-
- /* Location of Zero-IF-spur to be checked */
- me = (n * ((f_LO1 + hgfs) / gf_Scale) +
- ((f + hgfs) / gf_Scale)) / ((f_LO2 + hgfs) / gf_Scale);
- mf = (n * ((f_LO1 + hgfs) / gf_Scale) -
- ((f + hgfs) / gf_Scale)) / ((f_LO2 + hgfs) / gf_Scale);
- if (me != mf) {
- f_nsLO1 = n * (f_LO1 / gf_Scale);
- f_nsLO2 = me * (f_LO2 / gf_Scale);
- f_Spur =
- (gf_Scale * (f_nsLO1 - f_nsLO2)) +
- n * (f_LO1 % gf_Scale) - me * (f_LO2 % gf_Scale);
-
- *fp = ((f_Spur + (s32) f) / (me - n)) + 1;
- *fm = (((s32) f - f_Spur) / (me - n)) + 1;
- return 1;
- }
-
- mb = (n * ((f_LO1 + hgcs) / gc_Scale) +
- ((c + hgcs) / gc_Scale)) / ((f_LO2 + hgcs) / gc_Scale);
- if (ma != mb) {
- f_nsLO1 = n * (f_LO1 / gc_Scale);
- f_nsLO2 = ma * (f_LO2 / gc_Scale);
- f_Spur =
- (gc_Scale * (f_nsLO1 - f_nsLO2)) +
- n * (f_LO1 % gc_Scale) - ma * (f_LO2 % gc_Scale);
-
- *fp = (((s32) d + f_Spur) / (ma - n)) + 1;
- *fm = (-(f_Spur + (s32) c) / (ma - n)) + 1;
- return 1;
- }
- }
- /* No spurs found */
return 0;
}
-/*
- * MT_AvoidSpurs() - Main entry point to avoid spurs.
- * Checks for existing spurs in present LO1, LO2 freqs
- * and if present, chooses spur-free LO1, LO2 combination
- * that tunes the same input/output frequencies.
- */
-static u32 MT2063_AvoidSpurs(struct MT2063_AvoidSpursData_t *pAS_Info)
-{
- u32 status = 0;
- u32 fm, fp; /* restricted range on LO's */
- pAS_Info->bSpurAvoided = 0;
- pAS_Info->nSpursFound = 0;
- dprintk(2, "\n");
- if (pAS_Info->maxH1 == 0)
- return 0;
/*
- * Avoid LO Generated Spurs
*
- * Make sure that have no LO-related spurs within the IF output
- * bandwidth.
*
- * If there is an LO spur in this band, start at the current IF1
frequency
- * and work out until we find a spur-free frequency or run up against
the
- * 1st IF SAW band edge. Use temporary copies of fLO1 and fLO2 so that
they
- * will be unchanged if a spur-free setting is not found.
*/
- pAS_Info->bSpurPresent = IsSpurInBand(pAS_Info, &fm, &fp);
- if (pAS_Info->bSpurPresent) {
- u32 zfIF1 = pAS_Info->f_LO1 - pAS_Info->f_in; /* current
attempt at a 1st IF */
- u32 zfLO1 = pAS_Info->f_LO1; /* current attempt at an LO1
freq */
- u32 zfLO2 = pAS_Info->f_LO2; /* current attempt at an LO2
freq */
- u32 delta_IF1;
- u32 new_IF1;
-
- /*
- ** Spur was found, attempt to find a spur-free 1st IF
- */
- do {
- pAS_Info->nSpursFound++;
-
-
- /* Choose next IF1 that is closest to f_IF1_CENTER
*/
- new_IF1 = MT2063_ChooseFirstIF(pAS_Info);
-
- if (new_IF1 > zfIF1) {
- pAS_Info->f_LO1 += (new_IF1 - zfIF1);
- pAS_Info->f_LO2 += (new_IF1 - zfIF1);
- } else {
- pAS_Info->f_LO1 -= (zfIF1 - new_IF1);
- pAS_Info->f_LO2 -= (zfIF1 - new_IF1);
- }
- zfIF1 = new_IF1;
-
- if (zfIF1 > pAS_Info->f_if1_Center)
- delta_IF1 = zfIF1 - pAS_Info->f_if1_Center;
- else
- delta_IF1 = pAS_Info->f_if1_Center - zfIF1;
-
- pAS_Info->bSpurPresent = IsSpurInBand(pAS_Info, &fm,
&fp);
- /*
- * Continue while the new 1st IF is still within the 1st IF
bandwidth
- * and there is a spur in the band (again)
- */
- } while ((2 * delta_IF1 + pAS_Info->f_out_bw <=
pAS_Info->f_if1_bw) && pAS_Info->bSpurPresent);
-
- /*
- * Use the LO-spur free values found. If the search went all
- * the way to the 1st IF band edge and always found spurs, just
- * leave the original choice. It's as "good" as any other.
- */
- if (pAS_Info->bSpurPresent == 1) {
- status |= MT2063_SPUR_PRESENT_ERR;
- pAS_Info->f_LO1 = zfLO1;
- pAS_Info->f_LO2 = zfLO2;
- } else
- pAS_Info->bSpurAvoided = 1;
- }
-
- status |=
- ((pAS_Info->
- nSpursFound << MT2063_SPUR_SHIFT) & MT2063_SPUR_CNT_MASK);
-
- return status;
-}
/*
* Constants used by the tuning algorithm
@@ -1229,133 +834,13 @@ static u32 MT2063_SoftwareShutdown(struct mt2063_state
*state, u8 Shutdown)
return status;
}
-static u32 MT2063_Round_fLO(u32 f_LO, u32 f_LO_Step, u32 f_ref)
-{
- return f_ref * (f_LO / f_ref)
- + f_LO_Step * (((f_LO % f_ref) + (f_LO_Step / 2)) / f_LO_Step);
-}
-/**
- * fLO_FractionalTerm() - Calculates the portion contributed by FracN / denom.
- * This function preserves maximum precision without
- * risk of overflow. It accurately calculates
- * f_ref * num / denom to within 1 HZ with fixed math.
- *
- * @num : Fractional portion of the multiplier
- * @denom: denominator portion of the ratio
- * @f_Ref: SRO frequency.
- *
- * This calculation handles f_ref as two separate 14-bit fields.
- * Therefore, a maximum value of 2^28-1 may safely be used for f_ref.
- * This is the genesis of the magic number "14" and the magic mask value of
- * 0x03FFF.
- *
- * This routine successfully handles denom values up to and including 2^18.
- * Returns: f_ref * num / denom
- */
-static u32 MT2063_fLO_FractionalTerm(u32 f_ref, u32 num, u32 denom)
-{
- u32 t1 = (f_ref >> 14) * num;
- u32 term1 = t1 / denom;
- u32 loss = t1 % denom;
- u32 term2 =
- (((f_ref & 0x00003FFF) * num + (loss << 14)) + (denom / 2)) / denom;
- return (term1 << 14) + term2;
-}
-/*
- * CalcLO1Mult()- Calculates Integer divider value and the numerator
- * value for a FracN PLL.
- *
- * This function assumes that the f_LO and f_Ref are
- * evenly divisible by f_LO_Step.
- *
- * @Div: OUTPUT: Whole number portion of the multiplier
- * @FracN: OUTPUT: Fractional portion of the multiplier
- * @f_LO: desired LO frequency.
- * @f_LO_Step: Minimum step size for the LO (in Hz).
- * @f_Ref: SRO frequency.
- * @f_Avoid: Range of PLL frequencies to avoid near integer multiples
- * of f_Ref (in Hz).
- *
- * Returns: Recalculated LO frequency.
- */
-static u32 MT2063_CalcLO1Mult(u32 *Div,
- u32 *FracN,
- u32 f_LO,
- u32 f_LO_Step, u32 f_Ref)
-{
- /* Calculate the whole number portion of the divider */
- *Div = f_LO / f_Ref;
-
- /* Calculate the numerator value (round to nearest f_LO_Step) */
- *FracN =
- (64 * (((f_LO % f_Ref) + (f_LO_Step / 2)) / f_LO_Step) +
- (f_Ref / f_LO_Step / 2)) / (f_Ref / f_LO_Step);
-
- return (f_Ref * (*Div)) + MT2063_fLO_FractionalTerm(f_Ref, *FracN, 64);
-}
-
-/**
- * CalcLO2Mult() - Calculates Integer divider value and the numerator
- * value for a FracN PLL.
- *
- * This function assumes that the f_LO and f_Ref are
- * evenly divisible by f_LO_Step.
- *
- * @Div: OUTPUT: Whole number portion of the multiplier
- * @FracN: OUTPUT: Fractional portion of the multiplier
- * @f_LO: desired LO frequency.
- * @f_LO_Step: Minimum step size for the LO (in Hz).
- * @f_Ref: SRO frequency.
- * @f_Avoid: Range of PLL frequencies to avoid near
- * integer multiples of f_Ref (in Hz).
- *
- * Returns: Recalculated LO frequency.
- */
-static u32 MT2063_CalcLO2Mult(u32 *Div,
- u32 *FracN,
- u32 f_LO,
- u32 f_LO_Step, u32 f_Ref)
-{
- /* Calculate the whole number portion of the divider */
- *Div = f_LO / f_Ref;
-
- /* Calculate the numerator value (round to nearest f_LO_Step) */
- *FracN =
- (8191 * (((f_LO % f_Ref) + (f_LO_Step / 2)) / f_LO_Step) +
- (f_Ref / f_LO_Step / 2)) / (f_Ref / f_LO_Step);
- return (f_Ref * (*Div)) + MT2063_fLO_FractionalTerm(f_Ref, *FracN,
- 8191);
}
-/*
- * FindClearTuneFilter() - Calculate the corrrect ClearTune filter to be
- * used for a given input frequency.
- *
- * @state: ptr to tuner data structure
- * @f_in: RF input center frequency (in Hz).
- *
- * Returns: ClearTune filter number (0-31)
- */
-static u32 FindClearTuneFilter(struct mt2063_state *state, u32 f_in)
{
- u32 RFBand;
- u32 idx; /* index loop */
- /*
- ** Find RF Band setting
- */
- RFBand = 31; /* def when f_in > all */
- for (idx = 0; idx < 31; ++idx) {
- if (state->CTFiltMax[idx] >= f_in) {
- RFBand = idx;
- break;
- }
- }
- return RFBand;
-}
/*
* MT2063_Tune() - Change the tuner's tuned frequency to RFin.
@@ -1402,7 +887,6 @@ static u32 MT2063_Tune(struct mt2063_state *state, u32
f_in)
mt2063_setreg(state, MT2063_REG_CTUNE_CTRL, val);
}
val = state->reg[MT2063_REG_CTUNE_OV];
- RFBand = FindClearTuneFilter(state, f_in);
state->reg[MT2063_REG_CTUNE_OV] =
(u8) ((state->reg[MT2063_REG_CTUNE_OV] & ~0x1F)
| RFBand);
@@ -1426,43 +910,6 @@ static u32 MT2063_Tune(struct mt2063_state *state, u32
f_in)
* Assign in the requested values
*/
state->AS_Data.f_in = f_in;
- /* Request a 1st IF such that LO1 is on a step size */
- state->AS_Data.f_if1_Request =
- MT2063_Round_fLO(state->AS_Data.f_if1_Request + f_in,
- state->AS_Data.f_LO1_Step,
- state->AS_Data.f_ref) - f_in;
-
-
- f_IF1 = MT2063_ChooseFirstIF(&state->AS_Data);
-
- state->AS_Data.f_LO1 =
- MT2063_Round_fLO(f_IF1 + f_in, state->AS_Data.f_LO1_Step,
- state->AS_Data.f_ref);
-
- state->AS_Data.f_LO2 =
- MT2063_Round_fLO(state->AS_Data.f_LO1 - state->AS_Data.f_out - f_in,
- state->AS_Data.f_LO2_Step, state->AS_Data.f_ref);
-
- /*
- * Check for any LO spurs in the output bandwidth and adjust
- * the LO settings to avoid them if needed
- */
- status |= MT2063_AvoidSpurs(&state->AS_Data);
- /*
- * MT_AvoidSpurs spurs may have changed the LO1 & LO2 values.
- * Recalculate the LO frequencies and the values to be placed
- * in the tuning registers.
- */
- state->AS_Data.f_LO1 =
- MT2063_CalcLO1Mult(&LO1, &Num1, state->AS_Data.f_LO1,
- state->AS_Data.f_LO1_Step, state->AS_Data.f_ref);
- state->AS_Data.f_LO2 =
- MT2063_Round_fLO(state->AS_Data.f_LO1 - state->AS_Data.f_out - f_in,
- state->AS_Data.f_LO2_Step, state->AS_Data.f_ref);
- state->AS_Data.f_LO2 =
- MT2063_CalcLO2Mult(&LO2, &Num2, state->AS_Data.f_LO2,
- state->AS_Data.f_LO2_Step, state->AS_Data.f_ref);
-
/*
* Check the upconverter and downconverter frequency ranges
*/
@@ -1763,38 +1210,6 @@ static int mt2063_init(struct dvb_frontend *fe)
state->AS_Data.avoidDECT = MT2063_AVOID_BOTH;
state->ctfilt_sw = 0;
- state->CTFiltMax[0] = 69230000;
- state->CTFiltMax[1] = 105770000;
- state->CTFiltMax[2] = 140350000;
- state->CTFiltMax[3] = 177110000;
- state->CTFiltMax[4] = 212860000;
- state->CTFiltMax[5] = 241130000;
- state->CTFiltMax[6] = 274370000;
- state->CTFiltMax[7] = 309820000;
- state->CTFiltMax[8] = 342450000;
- state->CTFiltMax[9] = 378870000;
- state->CTFiltMax[10] = 416210000;
- state->CTFiltMax[11] = 456500000;
- state->CTFiltMax[12] = 495790000;
- state->CTFiltMax[13] = 534530000;
- state->CTFiltMax[14] = 572610000;
- state->CTFiltMax[15] = 598970000;
- state->CTFiltMax[16] = 635910000;
- state->CTFiltMax[17] = 672130000;
- state->CTFiltMax[18] = 714840000;
- state->CTFiltMax[19] = 739660000;
- state->CTFiltMax[20] = 770410000;
- state->CTFiltMax[21] = 814660000;
- state->CTFiltMax[22] = 846950000;
- state->CTFiltMax[23] = 867820000;
- state->CTFiltMax[24] = 915980000;
- state->CTFiltMax[25] = 947450000;
- state->CTFiltMax[26] = 983110000;
- state->CTFiltMax[27] = 1021630000;
- state->CTFiltMax[28] = 1061870000;
- state->CTFiltMax[29] = 1098330000;
- state->CTFiltMax[30] = 1138990000;
-
/*
** Fetch the FCU osc value and use it and the fRef value to
** scale all of the Band Max values
--
1.7.7.6
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html