From b91a7cb026124951a34e41f8481f1a4fb754983e Mon Sep 17 00:00:00 2001 From: Manu Abraham Date: Tue, 4 Mar 2008 19:19:58 -0300 Subject: [PATCH] V4L/DVB (9462): Allow specifying clock per device Optimizations galore: Blistering barnacles! The KNC1 and friends like 90 Mhz clock much better rather than running at a higher throttle, for almost similar hardware. he exact cause unknown, possibly due to a lower voltage applied for the demod power supply. Signed-off-by: Manu Abraham Signed-off-by: Mauro Carvalho Chehab --- drivers/media/dvb/frontends/stb0899_drv.c | 5 +++-- drivers/media/dvb/frontends/stb0899_drv.h | 2 ++ drivers/media/dvb/ttpci/budget-av.c | 3 +++ drivers/media/dvb/ttpci/budget-ci.c | 3 +++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/media/dvb/frontends/stb0899_drv.c b/drivers/media/dvb/frontends/stb0899_drv.c index deeec34..38d9fa9 100644 --- a/drivers/media/dvb/frontends/stb0899_drv.c +++ b/drivers/media/dvb/frontends/stb0899_drv.c @@ -1534,6 +1534,7 @@ static enum dvbfe_search stb0899_search(struct dvb_frontend *fe, struct dvbfe_pa struct stb0899_state *state = fe->demodulator_priv; struct stb0899_params *i_params = &state->params; struct stb0899_internal *internal = &state->internal; + struct stb0899_config *config = state->config; u32 SearchRange, gain; @@ -1575,9 +1576,9 @@ static enum dvbfe_search stb0899_search(struct dvb_frontend *fe, struct dvbfe_pa } if (i_params->srate <= 5000000) - stb0899_set_mclk(state, 76500000); + stb0899_set_mclk(state, config->lo_clk); else - stb0899_set_mclk(state, 99000000); + stb0899_set_mclk(state, config->hi_clk); switch (state->delsys) { case DVBFE_DELSYS_DVBS: diff --git a/drivers/media/dvb/frontends/stb0899_drv.h b/drivers/media/dvb/frontends/stb0899_drv.h index 45136d9..98b200c 100644 --- a/drivers/media/dvb/frontends/stb0899_drv.h +++ b/drivers/media/dvb/frontends/stb0899_drv.h @@ -117,6 +117,8 @@ struct stb0899_config { u8 out_rate_comp; u8 i2c_repeater; // int inversion; + int lo_clk; + int hi_clk; u32 esno_ave; u32 esno_quant; diff --git a/drivers/media/dvb/ttpci/budget-av.c b/drivers/media/dvb/ttpci/budget-av.c index 2412371..f996cef 100644 --- a/drivers/media/dvb/ttpci/budget-av.c +++ b/drivers/media/dvb/ttpci/budget-av.c @@ -1127,6 +1127,9 @@ static struct stb0899_config knc1_dvbs2_config = { .xtal_freq = 27000000, .inversion = IQ_SWAP_OFF, /* 1 */ + .lo_clk = 76500000, + .hi_clk = 90000000, + .esno_ave = STB0899_DVBS2_ESNO_AVE, .esno_quant = STB0899_DVBS2_ESNO_QUANT, .avframes_coarse = STB0899_DVBS2_AVFRAMES_COARSE, diff --git a/drivers/media/dvb/ttpci/budget-ci.c b/drivers/media/dvb/ttpci/budget-ci.c index ebe8210..497f584 100644 --- a/drivers/media/dvb/ttpci/budget-ci.c +++ b/drivers/media/dvb/ttpci/budget-ci.c @@ -1312,6 +1312,9 @@ static struct stb0899_config tt3200_config = { .xtal_freq = 27000000, .inversion = IQ_SWAP_ON, /* 1 */ + .lo_clk = 76500000, + .hi_clk = 99000000, + .esno_ave = STB0899_DVBS2_ESNO_AVE, .esno_quant = STB0899_DVBS2_ESNO_QUANT, .avframes_coarse = STB0899_DVBS2_AVFRAMES_COARSE, -- 2.7.4