Re: [PATCH] Leadtek WinFast DTV-1800H support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am Sonntag, den 31.05.2009, 16:58 -0300 schrieb Mauro Carvalho Chehab:
> Em Sun, 31 May 2009 19:39:15 +0200
> "Miroslav  Šustek" <sustmidown@xxxxxxxxxx> escreveu:
> 
> > Trent Piepho <xyzzy <at> speakeasy.org> writes:
> > 
> > > Instead of raising the reset line here, why not change the gpio settings in
> > > the card definition to have it high? Change gpio1 for television to 0x7050
> > > and radio to 0x7010.
> > Personally, I don't know when these .gpioX members are used (before
> > firmware loads or after...).
> > But I assume that adding the high on reset pin shouldn't break anything,
> > so we can do this.
> > 
> > And shouldn't we put tuner reset pin to 0 when in composite and s-video mode?
> > These inputs don't use tuner or do they?
> > If I look in dmesg I can see that firmware is loaded into tuner even
> > when these modes are used (I'm using MPlayer to select the input).
> > And due to callbacks issued duting firmware loading, tuner is turned on
> > (reset pin = 1) no matter if it was turned off by .gpioX setting.
> > 
> > And shouldn't we use the mask bits [24:16] of MO_GPX_IO
> > in .gpioX members too? I know only few GPIO pins and the other I don't
> > know either what direction they should be. That means GPIO pins which
> > I don't know are set as Hi-Z = inputs... Now, when I think of that,
> > if it works it's safer when the other pins are in Hi-Z mode. Never mind.
> > 
> > >
> > > Then the reset can be done with:
> > >
> > > case XC2028_TUNER_RESET:
> > > /* GPIO 12 (xc3028 tuner reset) */
> > > cx_write(MO_GP1_IO, 0x101000);
> > > mdelay(50);
> > > cx_write(MO_GP1_IO, 0x101010);
> > > mdelay(50);
> > > return 0;
> > >
> > Earlier I was told to use 'cx_set' and 'cx_clear' because using 'cx_write'
> > is risky.
> > see here: http://www.spinics.net/lists/linux-dvb/msg29777.html
> > And when you are using 'cx_set' and 'cx_clear' you need 3 calls.
> > The first to set the direction bit, the second to set 0 on reset pin
> > and the third to set 1 on reset pin.
> > If you ask me which I think is nicer I'll tell you: that one with 'cx_write'.
> > If you ask me which one I want to use, I'll tell: I don't care. :)
> > 
> > > Though I have to wonder why each card needs its own xc2028 reset function.
> > > Shouldn't they all be the same other than what gpio they change?
> > My English goes lame here. Do you mean that reset function shouldn't use
> > GPIO at all?
> > 
> > >
> > > @@ -2882,6 +2946,16 @@
> > > cx_set(MO_GP0_IO, 0x00000080); /* 702 out of reset */
> > > udelay(1000);
> > > break;
> > > +
> > > + case CX88_BOARD_WINFAST_DTV1800H:
> > > + /* GPIO 12 (xc3028 tuner reset) */
> > > + cx_set(MO_GP1_IO, 0x1010);
> > > + mdelay(50);
> > > + cx_clear(MO_GP1_IO, 0x10);
> > > + mdelay(50);
> > > + cx_set(MO_GP1_IO, 0x10);
> > > + mdelay(50);
> > > + break;
> > > }
> > > }
> > >
> > > Couldn't you replace this with:
> > >
> > > case CX88_BOARD_WINFAST_DTV1800H:
> > > cx88_xc3028_winfast1800h_callback(code, XC2028_TUNER_RESET, 0);
> > > break;
> > Yes, this will do the same job.
> > I think that 'cx88_card_setup_pre_i2c' is to be called before any I2C
> > communication. The 'cx88_xc3028_winfast1800h_callback' (cx88_tuner_callback)
> > is meant to be used when tuner code (during firmware loading) needs it.
> > This is probably why others did it this way (these are separated issues
> > even if they do the same thing) and I only obey existing form.
> > 
> > I only want to finally add the support for this card.
> > You know many people (not developers) don't care "if this function is used
> > or that function is used twice, instead". They just want to install they distro
> > and watch the tv.
> > I classify myself as an programmer rather than ordinary user, so I care how
> > the code looks like. I'm open to the discussion about these things, but
> > this can take long time and I just want the card to be supported asap.
> > There are more cards which has code like this so if linuxtv developers realize
> > eg. to not use callbacks or use only cx_set and cx_clear (instead of cx_write)
> > they'll do it all at once (not every card separately).
> > 
> > I attached modified patch:
> > - .gpioX members of inputs which use tuner have reset pin 1 (tuner enabled)
> > - .gpioX members of inputs which don't use tuner have reset pin 0 (tuner disabled)
> > - resets (in callback and the one in pre_i2c) use only two 'cx_write' calls
> > 
> > I'm keeping the "tested-by" lines even if this modified version of patch wasn't
> > tested by those people (the previous version was). I trust this changes can't
> > break the functionality.
> > If you think it's too audacious then drop them.
> > 
> > It's on linuxtv developers which of these two patches will be chosen.
> 
> For the sake of not loosing this patch again, I've applied it as-is. I hope I
> got the latest version. It is hard to track patches that aren't got by patchwork.
> 
> I agree with Trent's proposals for optimizing the code: It is better to just
> call xc3028_winfast1800h_callback() if you ever need to reset xc3028 before the
> tuner driver. I suspect, however, that you don't need to do such reset, since
> the tuner driver will do it during its initialization, especially if you've
> properly initialized the gpio lines.
> 

Mauro,

it is also hard to track down whatever happens on your patchwork stuff.

I think we had enough cases for now and I know about more.

The absolute minimum is, that people see a reject message, if failing on
submitting patches.

Do you deny that?

To be honest, I'm slowly getting it sick.

Cheers,
Hermann






--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux