From: Antti Palosaari <crope@iki.fi>
To: Andrew de Quincey <adq_dvb@lidskialf.net>
Cc: linux-media@vger.kernel.org
Subject: Re: [patch] Fix AF9015 Dual tuner i2c write failures
Date: Sat, 05 Mar 2011 00:13:17 +0200 [thread overview]
Message-ID: <4D7163FD.9030604@iki.fi> (raw)
In-Reply-To: <AANLkTi=rcfL_pku9hhx68C_Fb_76KsW2Yy+Oys10a7+4@mail.gmail.com>
Wow, thanks!
On 03/04/2011 11:37 PM, Andrew de Quincey wrote:
> Hi, this has been annoying me for some time, so this evening I fixed
> it. If you use one of the above dual tuner devices (e.g. KWorld 399U),
> you get random tuning failures and i2c errors reported in dmesg such
> as:
[...]
> Adding a "bus lock" to af9015_i2c_xfer() will not work as demod/tuner
> accesses will take multiple i2c transactions.
>
> Therefore, the following patch overrides the dvb_frontend_ops
> functions to add a per-device lock around them: only one frontend can
> now use the i2c bus at a time. Testing with the scripts above shows
> this has eliminated the errors.
This have annoyed me too, but since it does not broken functionality
much I haven't put much effort for fixing it. I like that fix since it
is in AF9015 driver where it logically belongs to. But it looks still
rather complex. I see you have also considered "bus lock" to
af9015_i2c_xfer() which could be much smaller in code size (that's I
have tried to implement long time back).
I would like to ask if it possible to check I2C gate open / close inside
af9015_i2c_xfer() and lock according that? Something like:
typical command sequence:
>> FE0 open gate
>> FE0 write reg
>> FE0 close gate
>> FE1 open gate
>> FE1 read reg
>> FE1 close gate
if (locked == YES)
if (locked_by != caller FE)
return error locked by other FE
else (locked_by == caller FE)
allow reg access
if (gate close req)
locked = NO
locked_by = NONE
else (locked == NO)
locked = YES
locked_by = caller FE
allow reg access
Do you see it possible?
thanks
Antti
--
http://palosaari.fi/
next prev parent reply other threads:[~2011-03-04 22:13 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-04 21:37 [patch] Fix AF9015 Dual tuner i2c write failures Andrew de Quincey
2011-03-04 22:13 ` Antti Palosaari [this message]
2011-03-04 22:44 ` Andrew de Quincey
2011-03-04 22:59 ` Antti Palosaari
2011-03-04 23:11 ` Andrew de Quincey
2011-03-05 1:43 ` adq
2011-03-05 1:51 ` adq
2011-03-05 9:56 ` Antti Palosaari
[not found] ` <AANLkTi=YMtTbgwxNA1O6zp03OoeGKJvn8oYDB9kHjti1@mail.gmail.com>
2011-03-05 9:23 ` Antti Palosaari
2011-03-05 11:56 ` Andrew de Quincey
2011-03-05 11:55 ` adq
2011-03-06 11:56 ` adq
2011-03-06 12:24 ` adq
2011-03-06 13:04 ` Antti Palosaari
2011-03-06 13:08 ` adq
2011-03-06 13:24 ` adq
2011-03-07 18:26 ` adq
2011-03-07 22:12 ` adq
2011-03-18 15:46 ` Antti Palosaari
2011-03-21 20:11 ` adq
2011-04-02 1:24 ` adq
2011-04-02 8:20 ` Antti Palosaari
2011-04-02 11:06 ` adq
2011-04-02 11:15 ` adq
2011-04-02 12:18 ` Antti Palosaari
2011-04-02 13:45 ` adq
2011-04-02 17:24 ` Antti Palosaari
2011-03-05 10:49 ` Antti Palosaari
2011-03-22 9:00 ` Mauro Carvalho Chehab
2011-03-22 18:26 ` adq
2011-03-22 18:36 ` Mauro Carvalho Chehab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D7163FD.9030604@iki.fi \
--to=crope@iki.fi \
--cc=adq_dvb@lidskialf.net \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox