I attach a patch that leave the good values for both NOVA-T 500 and AverTV DVB-T USB 2.0. Jose Alberto El Sábado, 23 de Septiembre de 2006 12:29, Jose Alberto Reguero escribió: > El Viernes, 22 de Septiembre de 2006 08:58, Patrick Boettcher escribió: > > Hi, > > > > Mario, can you please try the attached patch and see, if this fixes your > > problem ? > > With this patch AverTV DVB-T USB 2.0 still don't work. > > Jose Alberto > > > Thanks Jose for finding it. I knew I would forget this thing when > > changing the set_pwm-function... > > > > Sorry, > > Patrick. > > > > -- > > Mail: patrick.boettcher@xxxxxxx > > WWW: http://www.wi-bw.tfh-wildau.de/~pboettch/ > > > > On Thu, 21 Sep 2006, Jose Alberto Reguero wrote: > > > El Miércoles, 20 de Septiembre de 2006 22:56, Mario Rossi escribió: > > > > I've tried with the new patches > > > > > > > > 1) module loading works fine now > > > > 2) I cannot tune or scan anything > > > > 3) make unload works fine > > > > > > Also AverTV DVB-T USB 2.0 don't work. > > > Looking at the code I thing that this changset: > > > > > > http://linuxtv.org/hg/v4l-dvb?cmd=changeset;node=51f233c864c5;style=git > > >we b > > > > > > breaks dib3000mc devices especialy this part: > > > > > > @@ -167,15 +150,18 @@ static int dib3000mc_set_timing(struct d > > > return 0; > > > } > > > -static int dib3000mc_setup_pwm3_state(struct dib3000mc_state *state) > > > -{ > > > +static int dib3000mc_setup_pwm_state(struct dib3000mc_state *state) > > > +{ > > > + u16 reg_51, reg_52 = state->cfg->agc->setup & 0xfefb; > > > if (state->cfg->pwm3_inversion) { > > > - dib3000mc_write_word(state, 51, (2 << 14) | (0 << 10) | (7 << 6) | (2 > > > << 2) | (2 << 0)); > > > - dib3000mc_write_word(state, 52, (0 << 8) | (5 << 5) | (1 << 4) | (1 > > > << 3) | (1 << 2) | (2 << 0)); > > > + reg_51 = (2 << 14) | (0 << 10) | (7 << 6) | (2 << 2) | (2 << 0); > > > + reg_52 |= (1 << 2); > > > } else { > > > - dib3000mc_write_word(state, 51, (2 << 14) | (4 << 10) | (7 << 6) | (2 > > > << 2) | (2 << 0)); > > > - dib3000mc_write_word(state, 52, (1 << 8) | (5 << 5) | (1 << 4) | (1 > > > << 3) | (0 << 2) | (2 << 0)); > > > - } > > > + reg_51 = (2 << 14) | (4 << 10) | (7 << 6) | (2 << 2) | (2 << 0); > > > + reg_52 |= (1 << 8); > > > + } > > > + dib3000mc_write_word(state, 51, reg_51); > > > + dib3000mc_write_word(state, 52, reg_52); > > > if (state->cfg->use_pwm3) > > > dib3000mc_write_word(state, 245, (1 << 3) | (1 << 0)); > > > > > > This change the values for reg_52 which are good for NOVA T 500 but are > > > not good for other devices. > > > > > > Jose Alberto > > > > > > > > > _______________________________________________ > > > linux-dvb mailing list > > > linux-dvb@xxxxxxxxxxx > > > http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb > > _______________________________________________ > linux-dvb mailing list > linux-dvb@xxxxxxxxxxx > http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
diff -r e0f7c5608bd9 linux/drivers/media/dvb/frontends/dib3000mc.c --- a/linux/drivers/media/dvb/frontends/dib3000mc.c Mon Sep 25 12:43:45 2006 -0300 +++ b/linux/drivers/media/dvb/frontends/dib3000mc.c Thu Sep 28 01:34:47 2006 +0200 @@ -152,13 +152,17 @@ static int dib3000mc_set_timing(struct d static int dib3000mc_setup_pwm_state(struct dib3000mc_state *state) { - u16 reg_51, reg_52 = state->cfg->agc->setup & 0xfefb; + u16 reg_51, reg_52 = state->cfg->agc->setup & 0xcefa; if (state->cfg->pwm3_inversion) { reg_51 = (2 << 14) | (0 << 10) | (7 << 6) | (2 << 2) | (2 << 0); reg_52 |= (1 << 2); + reg_52 |= (2 << 0); + reg_52 |= (5 << 5); } else { reg_51 = (2 << 14) | (4 << 10) | (7 << 6) | (2 << 2) | (2 << 0); reg_52 |= (1 << 8); + reg_52 |= (2 << 0); + reg_52 |= (5 << 5); } dib3000mc_write_word(state, 51, reg_51); dib3000mc_write_word(state, 52, reg_52);
_______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb