[linux-dvb] Support of Nova S SE DVB card missing
Oliver Endriss
o.endriss at gmx.de
Sun Aug 24 06:56:43 CEST 2008
Hi,
Oliver Endriss wrote:
> Patrick Boettcher wrote:
> > On Sat, 23 Aug 2008, Oliver Endriss wrote:
> > >> In addition (see my other mail in that thread), sending two independent
> > >> i2c_transfers which actually belong together is not really safe.
> > >
> > > The current code in the else path will *never* work, because the tuner
> > > does not support repeated start conditions. The problem is not the I2C
> > > master (saa7146/flexcop) but the I2C slave (s5h1420).
> >
> > Wouldn't it be more correct to have a flag signaling to the
> > i2c_tranfer-function that a repeated start is not wanted even though it is
> > two i2c-messages glued (which are interpreted today as a read with
> > repeated start).
>
> I remember that we had the same discussion for the stv0297 driver a long
> time ago.
See
http://linuxtv.org/pipermail/linux-dvb/2007-May/018122.html
for this interesting discussion.
Obviously the i2c maintainers were not willing to add the I2C_M_STOP
flag...
> For the stv0297 I have an experimental patch which intercepts the
> master_xfer routine, but this is not very nice either.
See attachment. It will probably not apply to the current tree, but you
should get the idea. Anyway, I don't want to add this crap to a frontend
driver. It does not fix the userspace issues anyway.
For now I suggest to use the good old double i2c_transfer() approach for
the budget driver.
Btw, I still do not understand how your repeated_start_workaround works.
struct i2c_msg msg[] = {
{ .addr = state->config->demod_address, .flags = 0, .buf = b, .len = 2 },
{ .addr = state->config->demod_address, .flags = 0, .buf = ®, .len = 1 },
{ .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = b, .len = 1 },
};
What does the flexcop master_xfer send over the i2c bus when it receives
these messages?
CU
Oliver
--
----------------------------------------------------------------
VDR Remote Plugin 0.4.0: http://www.escape-edv.de/endriss/vdr/
----------------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: stv0297_restart_workaround.diff
Type: text/x-diff
Size: 5077 bytes
Desc: not available
Url : http://www.linuxtv.org/pipermail/linux-dvb/attachments/20080824/c571ad1c/attachment-0001.diff
More information about the linux-dvb
mailing list