All of lore.kernel.org
 help / color / mirror / Atom feed
From: Trent Piepho <xyzzy@speakeasy.org>
To: Mauro Carvalho Chehab <mchehab@infradead.org>
Cc: Michael Krufky <mkrufky@linuxtv.org>,
	Hans Verkuil <hverkuil@xs4all.nl>, CityK <cityk@rogers.com>,
	hermann pitton <hermann-pitton@arcor.de>,
	V4L <video4linux-list@redhat.com>,
	Josh Borke <joshborke@gmail.com>,
	David Lonie <loniedavid@gmail.com>,
	linux-media@vger.kernel.org
Subject: Re: KWorld ATSC 115 all static
Date: Thu, 15 Jan 2009 10:33:15 -0800 (PST)	[thread overview]
Message-ID: <Pine.LNX.4.58.0901151009070.11165@shell2.speakeasy.net> (raw)
In-Reply-To: <20090115152955.38f40e4e@pedra.chehab.org>

On Thu, 15 Jan 2009, Mauro Carvalho Chehab wrote:
> It has nothing to do with the load order. It is related to i2c binding. With
> the current approach (before Hans patch), the i2c core will try to bind the
> tuner after having 2 conditions satisfied:
> 	1) I2C bus were registered;
> 	2) tuner code is available.
>
> So, if you load tuner before saa7134 (or have it compiled in-kernel), the code
> will try to probe tuners at the moment you register i2c bus. Otherwise, it will
> try to bind only when request_module is handled.
>
> Some devices with DVB has an internal i2c gate. For a subset of these, the i2c
> gate is inside the tuner. So, you need to bind the tuner device before probing
> for the frontends. On the other set of devices, the gate is inside the demod.
> So, you need to turn the i2c gate before running the i2c address seek for tuner.

I wonder if a better way to fix these problems is to use virtual I2C busses
for the gate?  When a device has some kind of i2c gate, it creates a new
I2C adapter for the devices behind the gate.  The code for this virtual i2c
adapter can just open the gate, pass of the request to the main i2c
adapter, then close the gate.  Creating a new i2c adapter should trigger
the i2c drivers that scan to do so and find new devices behind the gate.

It seems like this would solve the scan order problem, since the bus the
tuner/demod/whatever is on won't exist until the gate it is behind can be
properly controlled.

There are a number of additional benefits too.  There are many devices that
can be behind many different kinds of gates.  So we have all these gate
control functions that must be called manually from all over the place.
This adds bloat and developers are always forgetting to call them, which
doesn't cause any problem they notice because their card doesn't have a
gate.

With manual gate control, we must remember to close the gate when done with
the device.  But this isn't always done and the gate is left open.  These
gates are there for a reason, to shield RF devices from noise created by
the I2C bus, and so leaving them opens impairs RF performance.

And when the gate is only controlled by the driver in the kernel, it is
hard to manually debug/test i2c devices from userspace with i2c-dev.

  reply	other threads:[~2009-01-15 18:33 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-15 14:01 KWorld ATSC 115 all static Hans Verkuil
2009-01-15 14:30 ` Michael Krufky
2009-01-15 17:29   ` Mauro Carvalho Chehab
2009-01-15 18:33     ` Trent Piepho [this message]
2009-01-16  2:02       ` Mauro Carvalho Chehab
     [not found]         ` <20090116110700.584ec052@hyperion.delvare>
     [not found]           ` <Pine.LNX.4.58.0901160424350.11165@shell2.speakeasy.net>
     [not found]             ` <20090116153257.0bd1c90f@hyperion.delvare>
2009-01-17 19:45               ` Trent Piepho
2009-01-18 10:08                 ` Jean Delvare
2009-01-15 23:11     ` hermann pitton
2009-01-16  1:39 ` CityK
2009-01-16  3:20   ` CityK
2009-01-16  3:38     ` Mauro Carvalho Chehab
2009-01-17 16:20     ` Hans Verkuil
2009-01-17 17:42       ` hermann pitton
2009-01-17 18:44         ` Michael Krufky
2009-01-17 19:16           ` hermann pitton
2009-01-18 18:10       ` CityK
     [not found]         ` <200901182011.11960.hverkuil@xs4all.nl>
2009-01-18 21:20           ` CityK
     [not found]             ` <200901182241.10047.hverkuil@xs4all.nl>
2009-01-18 23:36               ` CityK
2009-01-19 11:01                 ` Mauro Carvalho Chehab
     [not found]                 ` <200901190853.19327.hverkuil@xs4all.nl>
2009-01-19 11:08                   ` Mauro Carvalho Chehab
2009-01-19 17:16                     ` hermann pitton
2009-01-25 18:10                   ` CityK
2009-01-25 18:32                     ` CityK
2009-01-25 21:49                     ` Trent Piepho
2009-01-25 23:08                       ` hermann pitton
2009-01-25 23:35                       ` CityK
2009-01-26  0:45                         ` hermann pitton
2009-01-28  2:23                         ` Mauro Carvalho Chehab
2009-01-28  3:29                           ` hermann pitton
2009-01-29 23:44             ` CityK
2009-01-30  3:00               ` Mauro Carvalho Chehab
2009-01-19  0:38           ` Trent Piepho
2009-02-02 23:58         ` David Engel
2009-02-03  6:03           ` CityK
2009-02-03 14:02             ` Michael Krufky
2009-02-04  3:56               ` KWorld ATSC 115 all static ... Mike's clarification CityK
2009-02-03 17:22             ` KWorld ATSC 115 all static David Engel
2009-02-04  4:07               ` CityK
2009-02-05  2:55                 ` David Engel
2009-02-04  2:31             ` hermann pitton
2009-02-04  5:26               ` CityK
2009-02-05  1:22                 ` hermann pitton
2009-02-08 10:07                 ` Mauro Carvalho Chehab
2009-02-08 12:39                   ` Mauro Carvalho Chehab
2009-02-09  2:43             ` Mauro Carvalho Chehab
2009-02-09  2:43             ` Mauro Carvalho Chehab
2009-02-10  0:37               ` hermann pitton
2009-02-10  0:54                 ` hermann pitton
2009-02-10  1:31                   ` hermann pitton
2009-02-10  2:35                     ` Mauro Carvalho Chehab
2009-02-10  3:14                       ` hermann pitton
2009-02-10  3:43                         ` hermann pitton
2009-02-10  6:15                           ` Mauro Carvalho Chehab
2009-02-10 12:07                             ` Jonathan Isom
2009-02-10 12:27                               ` Mauro Carvalho Chehab
2009-02-10 12:48                                 ` Jonathan Isom
2009-02-10 19:02                                   ` Mauro Carvalho Chehab
2009-02-11  3:50                                 ` David Engel
2009-02-11  4:34                                   ` hermann pitton
2009-02-11  7:43                                   ` Mauro Carvalho Chehab
2009-02-11 23:21                                     ` David Engel
2009-02-13  3:07                                       ` David Engel
2009-02-13 11:04                                         ` Mauro Carvalho Chehab
2009-02-13 11:28                                           ` Mauro Carvalho Chehab
2009-02-13 20:28                                             ` David Engel
2009-02-13 20:35                                               ` Mauro Carvalho Chehab
2009-02-17 15:53                                               ` David Engel
2009-02-18  7:45                                                 ` Hans Verkuil
2009-02-18 15:26                                                   ` David Engel
2009-02-10  6:19                         ` Mauro Carvalho Chehab
2009-02-11  1:30                           ` hermann pitton
  -- strict thread matches above, loose matches on Subject: below --
2009-01-12  0:53 Josh Borke
2009-01-12  3:08 ` CityK
2009-01-12  5:19   ` Mauro Carvalho Chehab
2009-01-12  7:40     ` Hans Verkuil
2009-01-13  2:10       ` CityK
2009-01-13  3:17         ` hermann pitton
2009-01-14  4:41           ` CityK
2009-01-14  7:37             ` Hans Verkuil
2009-01-14 18:24               ` Hans Verkuil
2009-01-15  1:43                 ` hermann pitton
2009-01-15  5:01                 ` CityK
2009-01-15  7:27                   ` Hans Verkuil
2009-01-15 13:45                     ` Michael Krufky
2009-01-15  2:32             ` hermann pitton
2009-01-15  2:54               ` Mauro Carvalho Chehab
2009-01-15  3:15                 ` hermann pitton
2009-01-12  3:13 ` CityK

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=Pine.LNX.4.58.0901151009070.11165@shell2.speakeasy.net \
    --to=xyzzy@speakeasy.org \
    --cc=cityk@rogers.com \
    --cc=hermann-pitton@arcor.de \
    --cc=hverkuil@xs4all.nl \
    --cc=joshborke@gmail.com \
    --cc=linux-media@vger.kernel.org \
    --cc=loniedavid@gmail.com \
    --cc=mchehab@infradead.org \
    --cc=mkrufky@linuxtv.org \
    --cc=video4linux-list@redhat.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.